//********************************************************************
//*-------------------------------------------------------------------
//* Licensed Materials - Property of IBM
//*
//* WebSphere Commerce
//*
//* (c) Copyright International Business Machines Corporation. 2003
//*     All rights reserved.
//*
//* US Government Users Restricted Rights - Use, duplication or
//* disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
//*
//*-------------------------------------------------------------------
//*

//////////////////////////////////////////////////////////
// Checks whether a string contains a double byte character
// target = the string to be checked
//
// Return true if target contains a double byte char; false otherwise
//////////////////////////////////////////////////////////
function containsDoubleByte (target) {
     var str = new String(target);
     var oneByteMax = 0x007F;

     for (var i=0; i < str.length; i++){
        chr = str.charCodeAt(i);
        if (chr > oneByteMax) {return true;}
     }
     return false;
}

//////////////////////////////////////////////////////////
// A simple function to validate an email address
// It does not allow double byte characters
// strEmail = the email address string to be validated
//
// Return true if the email address is valid; false otherwise
//////////////////////////////////////////////////////////
function isValidEmail(strEmail){
	// check if email contains dbcs chars
	if (containsDoubleByte(strEmail)){
		return false;
	}
	
	if(strEmail.length == 0) {
		return true;
	} else if (strEmail.length < 5) {
             return false;
       	}else{
           	if (strEmail.indexOf(" ") > 0){
                      	return false;
               	}else{
                  	if (strEmail.indexOf("@") < 1) {
                            	return false;
                     	}else{
                           	if (strEmail.lastIndexOf(".") < (strEmail.indexOf("@") + 2)){
                                     	return false;
                                }else{
                                        if (strEmail.lastIndexOf(".") >= strEmail.length-2){
                                        	return false;
                                        }
                              	}
                       	}
              	}
       	}
      	return true;
}



//////////////////////////////////////////////////////////
// This function will count the number of bytes
// represented in a UTF-8 string
//
// arg1 = the UTF-16 string
// arg2 = the maximum number of bytes allowed in your input field
// Return false is this input string is larger then arg2
// Otherwise return true...
//////////////////////////////////////////////////////////
function isValidUTF8length(UTF16String, maxlength) {
    if (utf8StringByteLength(UTF16String) > maxlength) return false;
    else return true;
}

//////////////////////////////////////////////////////////
// This function will count the number of bytes
// represented in a UTF-8 string
//
// arg1 = the UTF-16 string you want a byte count of...
// Return the integer number of bytes represented in a UTF-8 string
//////////////////////////////////////////////////////////
function utf8StringByteLength(UTF16String) {
  if (UTF16String === null) return 0;
  var str = String(UTF16String);
  var oneByteMax = 0x007F;
  var twoByteMax = 0x07FF;
  var byteSize = str.length;

  for (i = 0; i < str.length; i++) {
    chr = str.charCodeAt(i);
    if (chr > oneByteMax) byteSize = byteSize + 1;
    if (chr > twoByteMax) byteSize = byteSize + 1;
  }  
  return byteSize;
}

function toNextField(x,y)
{
if(x.value.length==3)
  {
	y.focus();
  }
}
function validateInput(formId){
var valid=true;
var warn="";

			$("#"+formId+" input").each( function(id){
				
				
					
				if(this.type=='text' || this.type=='textbox'){
					var text= this.value;
						var addType="";
						var addNumber="";
						var name=this.name;
					if(this.name.indexOf("address2")<0&&this.name.indexOf("address_2")<0&&this.name.indexOf("s_address_2")<0&&this.name.indexOf("middle_initial")<0&&(this.value==null||this.value=="")){
						
						if(name.indexOf("b_")==0){
							 addType=" in billing address";
							name=name.substring(2);	 
						}
						if(name.indexOf("s_")==0){
							 addType=" in shipping address";
							name=name.substring(2);	 	 
						}
						if(!name.indexOf("_2")<0) {
							name=name.substring(0,name.indexOf("_2"));
							addNumber=" 2";
						}
						if(formId.indexOf("0")>0) addType = "in contact information ";
						if(name=="area_code"||name=="first_three"||name=="last_four") name="Phone number";
						name=name.replace("_"," ");
						name=name.replace(name.charAt(0),name.charAt(0).toUpperCase());
						
						alert(name+addNumber+" "+addType+" is a mandatory field!");
						valid= false;
						return valid;
					}
					
					if(this.name.indexOf("Email")>-1 || this.name.indexOf("email")>-1||this.name=="logonId"){
						if(!isValidEmail(this.value))  {
							alert("Your Email address is not valid! Please try again");
							valid= false;
							return valid;
						}
					}
					
					if(!validateInField(text)) {
						valid= false;
						return valid;
					}
				}
			});
			
			return valid;
		}
function rejectPOBoxAddress(address){
 var address1= address.toUpperCase();
 
 var isValid=true;
	if(address1.indexOf("P.O")>-1||address1.indexOf("PO BOX")>-1){
	 alert("P.O. Box address is not allowed. ");
	 isValid=false;
	}
	return isValid;

}
function validateInField(text){
 var isValid=true;
					if(text.indexOf("<") >-1) {
						alert("Your input may contains illegal Javascript! Please try again");
						isValid= false;
					}
					if(text.indexOf(">") >-1) {
						alert("Your input may contains illegal Javascript! Please try again");
						isValid= false;
					}
					if(text.indexOf("$(") >-1) {
						alert("Your input may contains illegal Javascript! Please try again");
						isValid=false;
					}
					if(text.indexOf("&") >-1) {
						alert("Your input may contains illegal SQL! Please try again");
						isValid= false;
					}
					if(text.indexOf("|")>-1) {
						alert("Your input may contains illegal SQL! Please try again");
						isValid= false;
					}
					if(text.indexOf("select ") >-1) {
						alert("Your input may contains illegal SQL! Please try again");
						isValid= false;
					}
					if(text.indexOf("delete ") >-1) {
						alert("Your input may contains illegal SQL! Please try again");
						isValid= false;
					}
					if(text.indexOf("insert ") >-1) {
						alert("Your input may contains illegal SQL! Please try again");
						isValid= false;
					}
					if(text.indexOf("drop ") >-1) {
						alert("Your input may contains illegal SQL! Please try again");
						isValid= false;
					}
					if(text.indexOf("alter ") >-1) {
						alert("Your input may contains illegal SQL! Please try again");
						isValid= false;
					}
					if(text.indexOf("create ") >-1) {
						alert("Your input may contains illegal SQL! Please try again");
						isValid= false;
					}
					if(text.indexOf("SELECT ") >-1) {
						alert("Your input may contains illegal SQL! Please try again");
						isValid= false;
					}
					if(text.indexOf("DELETE ") >-1) {
						alert("Your input may contains illegal SQL! Please try again");
						isValid= false;
					}
					if(text.indexOf("INSERT ") >-1) {
						alert("Your input may contains illegal SQL! Please try again");
						isValid=false;
					}
					if(text.indexOf("DROP ") >-1) {
						alert("Your input may contains illegal SQL! Please try again");
						isValid= false;
					}
					if(text.indexOf("ALTER ") >-1) {
						alert("Your input may contains illegal SQL! Please try again");
						isValid=false;
					}
					if(text.indexOf("CREATE ") >-1) {
						alert("Your input may contains illegal SQL! Please try again");
						isValid=false;
					}
					if(text.indexOf("\"") >-1) {
						alert("Double quote is not allowed!");
						isValid= false;
					}
					//alert("is valid: "+isValid);
					return isValid;
					
}

