/* This function validates if the 'required' form field has a value */
function validate_req(element,strErrorField,strErrorMsg)
{
	if( (eval(element.value.length) == 0) || (Trim(element.value).length == 0)) 
	{	
		add_error(element,strErrorField,strErrorMsg);
		return false;
	}
		
	return true;
}



function validate_requireSelected(element,strErrorField,strErrorMsg)
{
	var selectedIndex = element.selectedIndex;
	if (selectedIndex == 0) {
		add_error(element,strErrorField,strErrorMsg);
		return false;
	}
	return true;
}
/* This function validates if the default text is being submitted */
function validate_notdefault(element,strErrorField,strErrorMsg,defaulttext)
{
	if(element.value == defaulttext) 
	{
		add_error(element,strErrorField,strErrorMsg);
		return false;
	}
	return true;
}

/* This function validates the 'maxLength' feature of the value entered for a field */
function validate_maxlen(element,strErrorField,strErrorMsg,len)
{
	if(eval(element.value.length) > len) 
	{ 
		add_error(element,strErrorField,strErrorMsg);
		return false; 
	}
	return true;
}

/* This function validates the 'minLength' feature of the value entered for a field */
function validate_minlen(element,strErrorField,strErrorMsg,len)
{
	if(eval(element.value.length) < len) 
	{ 
		add_error(element,strErrorField,strErrorMsg);
		return false; 
	}
	return true;
}

/* This function validates if a form field has an alpha-numeric value */
function validate_alpha(element,strErrorField,strErrorMsg)
{
	var charpos = element.value.search("[^A-Za-z0-9]"); 
	if(element.value.length > 0 &&  charpos >= 0) 
	{ 
		add_error(element,strErrorField,strErrorMsg);
		return false; 
	}
	return true;
}


/* This function validates if a form field has an alpha-space value */
function validate_alphaspace(element,strErrorField,strErrorMsg)
{
	var charpos = element.value.search("[^A-Za-z\\s]"); 
	if(element.value.length > 0 &&  charpos >= 0) 
	{ 
		add_error(element,strErrorField,strErrorMsg);
		return false; 
	}
	return true;
}

/* This function validates if a form field has an alpha-numeric value in the position provided*/
function validate_alpha_inpos(element,strErrorField,strErrorMsg,pos)
{
	var charpos = element.value.substring(pos,pos+1).search("[^A-Za-z0-9]"); 
	if(element.value.length > 0 &&  charpos >= 0) 
	{ 
		add_error(element,strErrorField,strErrorMsg);
		return false; 
	}
	return true;
}

/* This function validates if a form field has an alphabetical value */
function validate_letter(element,strErrorField,strErrorMsg)
{
	var charpos = element.value.search("[^A-Za-z]"); 
	if(element.value.length > 0 &&  charpos >= 0) 
	{ 
		add_error(element,strErrorField,strErrorMsg);
		return false; 
	}
	return true;
}

/* This function validates if a form field has an numeric value, e.g. zip code, phone numbers */
function validate_numeric(element,strErrorField,strErrorMsg)
{
	var charpos = element.value.search("[^0-9]"); 
	if(element.value.length > 0 &&  charpos >= 0) 
	{
		add_error(element,strErrorField,strErrorMsg);
		return false; 
	}
	return true;
}

/* This function validates if the date entered is a future date, e.g. Credit Card Expiration Date */
function validate_date_greater(element,strErrorField,strErrorMsg,yearId,monthId,year2,month2)
{
	var yearElement =  document.getElementById(yearId);
	var monthElement =  document.getElementById(monthId);
	var yearNumber = eval(year2);
	var monthNumber = eval(month2);
	

	if (yearElement.value > yearNumber) return true;
		
	if (yearElement.value < yearNumber)
	{
		add_error(element,strErrorField,strErrorMsg);
		return false;
	}
	
	if (yearElement.value == year2 && monthElement.value < monthNumber)
	{
		add_error(element,strErrorField,strErrorMsg);
		return false;
	}
}

/* This function validates if the Month, Date and Year fields have a value, else shows the error message */
function validate_req_date(element,strErrorField,strErrorMsg,yearId,monthId,dateId)
{
	var monthElement = document.getElementById(monthId).value;
	var dateElement  = document.getElementById(dateId).value;
	var yearElement  = document.getElementById(yearId).value;
	
	if (monthElement == '' || dateElement == '' || yearElement == '')
	{
		add_error(element,strErrorField,strErrorMsg);
		return false;
	}
	
	return true;	
}

/* This function validates if the Month and Year fields have a value (typically the CC exp date), else shows the error message */
function validate_req_exp_date(element,strErrorField,strErrorMsg,yearId,monthId)
{
	var monthElement = document.getElementById(monthId).value;
	var yearElement  = document.getElementById(yearId).value;
	
	if (monthElement == '' || yearElement == '')
	{
		add_error(element,strErrorField,strErrorMsg);
		return false;
	}
	
	return true;	
}



/* This function validates if the checkbox is checked or not. If not, it shows the appropriate error */
function validate_checkbox(element,strErrorField,strErrorMsg)
{
	if(eval(!element.checked)) 
	{ 
		add_error(element,strErrorField,strErrorMsg);
		return false;
	}
	return true;


}

/* This function validates if two inputs are same or not, the actual element (emailaddress) and another input element (confirm email address) should be passed as an argument */
function validate_equal_values(element,strErrorField,strErrorMsg,equalElementId,equalElementDivId)
{
	var element1 = element.value;
	var equalElement = document.getElementById(equalElementId);
	if (!equalElement)
	{
		equalElement = document.getElementsByName(equalElementId)[0];
	}
	var element2 = equalElement.value;
	if(element1 != null)
		element1 = element1.toLowerCase();
	if(element2 != null)
		element2 = element2.toLowerCase();
	
	if (element1 != element2) {
		add_error(element,strErrorField,strErrorMsg);
		//add_error(element,equalElementDivId,'');
		return false;
	}
	return true;
}

/* This function validates the format of the email. If it is, it shows the appropriate error */
function validate_email(element,strErrorField,strErrorMsg)
{
	var validEmail = isValidEmail(element.value);

	if (validEmail == '11011' || validEmail == '11000') {
		add_error(element,strErrorField,strErrorMsg);
		return false;
	}

	return true;
}

/* This is used in CJI Catalog request / CJIEmailSignUp mobile emails, where email is not required. So 'empty email' validation is to be removed.
This function validates the format of the email. If it is wrong, it shows the appropriate error */

function validate_email_notReq(element,strErrorField,strErrorMsg)
{
	if (element.value == null || element.value == '') 
	{
		return true;
	}
	var validEmail = isValidEmail(element.value);
	if (validEmail == '11011' || validEmail == '11000') 
	{
		add_error(element,strErrorField,strErrorMsg);
		return false;
	}

	return true;
}

/* This function validates if the email is not an admin email. If it is, it shows the appropriate error */
function validate_adminemail(element,strErrorField,strErrorMsg)
{
	var validEmail = isValidEmail(element.value);

	if (validEmail == '11010') {
		add_error(element,strErrorField,strErrorMsg);
		return false;
	}

	return true;
}


/* This function validates if the zip code */
function validate_zip(element,strErrorField,strErrorMsg,countryRegionId)
{
	 v = element.value.toUpperCase();
    var regex = /(^\d{5}(\d{4})?([- |]\d{4})?$)/;
    
    if($(countryRegionId).value == 'CA')
    regex = /(^[A-Z]\d[A-Z]([ |])?\d[A-Z]\d$)/;
    
    
    if( regex.test(v)){        
        return true;
    }else{
    	add_error(element,strErrorField,strErrorMsg);
    }				
    return false;
}

/* This function validates if the zip code is valid for either US or Canada */
function validate_zipUSCA(element,strErrorField,strErrorMsg)
{
		
       var re = /^((\d{5}([- ])\d{4})|(\d{5})|([AaBbCcEeGgHhJjKkLlMmNnPpRrSsTtVvXxYy]\d[A-Za-z]\s?\d[A-Za-z]\d))$/;
       if (re.test(element.value))
       {
    		return true;
    	
   		}
   		else
   		{
   			add_error(element,strErrorField,strErrorMsg);
   			return false;
   			
   		}

}

/* This function validates US zipcode */
function validate_zipUS(element,strErrorField,strErrorMsg)
{
	v = element.value.toUpperCase();
    var regex = /(^\d{5}(\d{4})?([- |]\d{4})?$)/;
      
    if( regex.test(v)){        
        return true;
    }else{
    	add_error(element,strErrorField,strErrorMsg);
    }				
    return false;
}

/* This function validates if the zip code valid, when Canada is selected  */
function validate_zipCA(element,strErrorField,strErrorMsg,countryRegionId)
{
	if ($(countryRegionId).value == 'CA')
	{
		if ( eval(element.value.length) != 7) 
		{ 
			add_error(element,strErrorField,strErrorMsg);			
			return false; 
		}
		
		var charpos =(element.value.substring(1,2)+element.value.substring(4,5)+element.value.substring(6,7)).search("[^0-9]");
		var noncharpos = (element.value.substring(0,1)+element.value.substring(2,3)+element.value.substring(5,6)).search("[^A-Za-z]");
		if ( charpos>0 || noncharpos>0 ||element.value.substring(3,4)!=' ')
		{
			add_error(element,strErrorField,strErrorMsg);				
			return false; 		
		}
	}
	return true;
}


/* This function validates the state dropdown */
function validate_reqFormValues(element,strErrorField,strErrorMsg,element1Id,element1DivId,element2Id,element2DivId)
{


/*form validation*/
     if(element.value.length==0 && Trim($(element1Id).value).length == 0 && $(element2Id).value == 'state')  
          {
          //alert("inside all 3 empty...strErrorMsg is -> "+strErrorMsg);
          add_shipToStoreError(strErrorField,strErrorMsg);
          add_shipToStoreError(element1DivId,'');
          add_shipToStoreError(element2DivId,'');	
          return false;
          }
/*zipcode validation*/
      else  if(element.value.length>0  && eval(element.value.length) < 5)   
          {
          add_shipToStoreError(strErrorField,_ERR_CHECKOUT_ADDRESS_SHIPTOSTORE_ZIPCODE_REQ);
          return false;
          }  
/*state validation*/			 
	  else	if(Trim($(element1Id).value).length > 0 &&  $(element2Id).value == 'state' && (element.value.length==0))  
				{
				add_shipToStoreError(element2DivId,_ERR_SHIP_TO_STORE_CITY_VALID);
				return false;
				}
				             
//city validation         
       	else if(($(element1Id).value.length) == 0  &&  ($(element2Id).value != 'state')	&& (element.value.length==0)) 
		{	 
			//add_shipToStoreError(element1Id,Error_StoreLocatorPanel_StateCity);
			//add_shipToStoreError(element1Id,strErrorMsg);
			//alert("inside city and state empty...strErrorMsg is -> "+strErrorMsg);
			add_shipToStoreError(strErrorField,strErrorMsg);
			add_shipToStoreError(element1DivId,'');
			 return false;
			 }
	return true;
}

/* Validates ship to store selected */
function validate_shipToStoreSelected(element,strErrorField,strErrorMsg)
{
		add_error(element,strErrorField,strErrorMsg);
		return false;
}

/* Validates if the SSN typed by user is 0000 */
function validate_invalidSSN(element,strErrorField,strErrorMsg)
{
	if (element.value == 0)
	{
		add_error(element,strErrorField,strErrorMsg);
		return false;
	}
	return true;
}

/* Validate if the age is 18 based on the Date of Birth selected */
function validate_minimumAge(element,strErrorField,strErrorMsg,yearId,monthId,dateId)
{
	var monthElement = document.getElementById(monthId).value;
	var dateElement  = document.getElementById(dateId).value;
	var yearElement  = document.getElementById(yearId).value;
	var birthDate = new Date(yearElement + "/" + monthElement + "/" + dateElement);
	var minimumDate = new Date();
	minimumDate.setYear(minimumDate.getYear() - 18);
	if(minimumDate < birthDate)
	{
		add_error(element,strErrorField,strErrorMsg);
		return false;	
	}
	return true;
}

function isValidEmail(strEmail){
	var errorEmail = '';
	if (strEmail == null || strEmail == '') {
  		errorEmail = '11000';
		return errorEmail;
	}
		
	var str = strEmail;
  	var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)|(^\#)|(^\*)|(^\@)|(^\&)|(^\^)|(%)/; //not valid 
  	var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{1,3}|[0-9]{1,3})(\]?)$/; // valid
	var reg3 = /^www/;//not valid
	//var reg4 = /[^0-9](aol|yahoo|msn|hotmail)/;
	var reg4 = /^[0-9][a-zA-Z0-9\-\.]+\@(aol|yahoo|msn|hotmail)/;//not valid
	//As people generally know about some basic admin email addresses, they are not allowed.
	var reg5 = /^webmaster@|^administrator@|^support@|^admin@/; //not valid
	//Regular domain level checks & Country level domain checks
	var reg6 = /(\.aero|\.biz|\.cat|\.com|\.coop|\.edu|\.gov|\.info|\.int|\.jobs|\.mil|\.mobi|\.museum|\.name|\.net|\.org|\.pro|\.tel|\.travel|\.ac|\.ad|\.ae|\.af|\.ag|\.ai|\.al|\.am|\.an|\.ao|\.aq|\.ar|\.as|\.at|\.au|\.aw|\.ax|\.az|\.ba|\.bb|\.bd|\.be|\.bf|\.bg|\.bh|\.bi|\.bj|\.bm|\.bn|\.bo|\.br|\.bs|\.bt|\.bv|\.bw|\.by|\.bz|\.ca|\.cc|\.cd|\.cf|\.cg|\.ch|\.ci|\.ck|\.cl|\.cm|\.cn|\.co|\.cr|\.cu|\.cv|\.cx|\.cy|\.cz|\.de|\.dj|\.dk|\.dm|\.do|\.dz|\.ec|\.ee|\.eg|\.er|\.es|\.et|\.eu|\.fi|\.fj|\.fk|\.fm|\.fo|\.fr|\.ga|\.gb|\.gd|\.ge|\.gf|\.gg|\.gh|\.gi|\.gl|\.gm|\.gn|\.gp|\.gq|\.gr|\.gs|\.gt|\.gu|\.gw|\.gy|\.hk|\.hm|\.hn|\.hr|\.ht|\.hu|\.id|\.ie|\.il|\.im|\.in|\.io|\.iq|\.ir|\.is|\.it|\.je|\.jm|\.jo|\.jp|\.ke|\.kg|\.kh|\.ki|\.km|\.kn|\.kr|\.kw|\.ky|\.kz|\.la|\.lb|\.lc|\.li|\.lk|\.lr|\.ls|\.lt|\.lu|\.lv|\.ly|\.ma|\.mc|\.md|\.mg|\.mh|\.mk|\.ml|\.mm|\.mn|\.mo|\.mp|\.mq|\.mr|\.ms|\.mt|\.mu|\.mv|\.mw|\.mx|\.my|\.mz|\.na|\.nc|\.ne|\.nf|\.ng|\.ni|\.nl|\.no|\.np|\.nr|\.nu|\.nz|\.om|\.pa|\.pe|\.pf|\.pg|\.ph|\.pk|\.pl|\.pm|\.pn|\.pr|\.ps|\.pt|\.pw|\.py|\.qa|\.re|\.ro|\.ru|\.rw|\.sa|\.sb|\.sc|\.sd|\.se|\.sg|\.sh|\.si|\.sj|\.sk|\.sl|\.sm|\.sn|\.so|\.sr|\.st|\.su|\.sv|\.sy|\.sz|\.tc|\.td|\.tf|\.tg|\.th|\.tj|\.tk|\.tl|\.tm|\.tn|\.to|\.tp|\.tr|\.tt|\.tv|\.tw|\.tz|\.ua|\.ug|\.uk|\.um|\.us|\.uy|\.uz|\.va|\.vc|\.ve|\.vg|\.vi|\.vn|\.vu|\.wf|\.ws|\.ye|\.yt|\.yu|\.za|\.zm|\.zw)$/; //valid

  if (!reg1.test(str) && reg2.test(str) &&  !reg3.test(str) && !reg4.test(str.toLowerCase()) && !reg5.test(str.toLowerCase()) && reg6.test(str.toLowerCase())) { 
  		errorEmail = 'true';
    	return errorEmail;
 	} else {
 		errorEmail = '11000';
 		if (reg5.test(str.toLowerCase()))
 			errorEmail = '11010';
 		else if (!reg6.test(str.toLowerCase()))
 			errorEmail = '11011';
		return errorEmail;
	}
}


/* 
	This function validates a 4 part phone where the format is (phone1) phone2 - phone3 EXT: phone4
	
	required - true if the phone number is a required field
	part1 - area code is 3 digits
	part2 - second part of phone number is 3 digits
	part3 - third part of phone number is 4 digits
	part4 - extension and never required
*/
function validate_phone_4part(element,strErrorField,strErrorMsg,required,part1,part2,part3,part4)
{
	var part1Element =  document.getElementById(part1);
	var part2Element =  document.getElementById(part2);
	var part3Element =  document.getElementById(part3);
	var part4Element =  document.getElementById(part4);

	if (required == "true")
	{
		if(eval(part1Element.value.length) != 3) 
		{
			add_error(element,strErrorField,strErrorMsg);
			return false;
		}
	
		if(eval(part2Element.value.length) != 3) 
		{
			add_error(element,strErrorField,strErrorMsg);
			return false;
		}
	
		if(eval(part3Element.value.length) != 4) 
		{
			add_error(element,strErrorField,strErrorMsg);
			return false;
		}
	}
	
	if(part1Element.value.length > 0 && part1Element.value.search("[^0-9]") >= 0) 
	{
		add_error(element,strErrorField,strErrorMsg);
		return false; 
	}

	if(part2Element.value.length > 0 && part2Element.value.search("[^0-9]") >= 0) 
	{
		add_error(element,strErrorField,strErrorMsg);
		return false; 
	}

	if(part3Element.value.length > 0 && part3Element.value.search("[^0-9]") >= 0) 
	{
		add_error(element,strErrorField,strErrorMsg);
		return false; 
	}

	if(part4Element.value.length > 0 && part4Element.value.search("[^0-9]") >= 0) 
	{
		add_error(element,strErrorField,strErrorMsg);
		return false; 
	}

	return true;


	return true;
}
function validate_phone_3part(element,strErrorField,strErrorMsg,required,part1,part2,part3)
{
	var part1Element =  document.getElementById(part1);
	var part2Element =  document.getElementById(part2);
	var part3Element =  document.getElementById(part3);


	if (required == "true")
	{
		if(eval(part1Element.value.length) != 3) 
		{
			add_error(element,strErrorField,strErrorMsg);
			return false;
		}
	
		if(eval(part2Element.value.length) != 3) 
		{
			add_error(element,strErrorField,strErrorMsg);
			return false;
		}
	
		if(eval(part3Element.value.length) != 4) 
		{
			add_error(element,strErrorField,strErrorMsg);
			return false;
		}
	}
	
	if(part1Element.value.length > 0 && part1Element.value.search("[^0-9]") >= 0) 
	{
		add_error(element,strErrorField,strErrorMsg);
		return false; 
	}

	if(part2Element.value.length > 0 && part2Element.value.search("[^0-9]") >= 0) 
	{
		add_error(element,strErrorField,strErrorMsg);
		return false; 
	}

	if(part3Element.value.length > 0 && part3Element.value.search("[^0-9]") >= 0) 
	{
		add_error(element,strErrorField,strErrorMsg);
		return false; 
	}

	

	return true;


	return true;
}

/* 
	This function validates a 3 part phone for CJI
	
	required - true if the phone number is a required field
	part1 - area code is 2-4 digits
	part2 - second part of phone number is 3 digits
	part3 - third part of phone number is 4 digits
*/
function validate_phone_3part_cji(element,strErrorField,strErrorMsg,required,part1,part2,part3)
{
	var part1Element =  document.getElementById(part1);
	var part2Element =  document.getElementById(part2);
	var part3Element =  document.getElementById(part3);


	if (required == "true")
	{
		if(eval(part1Element.value.length) < 2) 
		{
			add_error(element,strErrorField,strErrorMsg);
			return false;
		}
	
		if(eval(part2Element.value.length) < 1) 
		{
			add_error(element,strErrorField,strErrorMsg);
			return false;
		}
	
		if(eval(part3Element.value.length) != 4) 
		{
			add_error(element,strErrorField,strErrorMsg);
			return false;
		}
	}
	
	if(part1Element.value.length > 0 && part1Element.value.search("[^0-9]") >= 0) 
	{
		add_error(element,strErrorField,strErrorMsg);
		return false; 
	}

	if(part2Element.value.length > 0 && part2Element.value.search("[^0-9]") >= 0) 
	{
		add_error(element,strErrorField,strErrorMsg);
		return false; 
	}

	if(part3Element.value.length > 0 && part3Element.value.search("[^0-9]") >= 0) 
	{
		add_error(element,strErrorField,strErrorMsg);
		return false; 
	}

	

	return true;


	return true;
}

/* 
	This function validates a 3 part phone for China - CN
	
	required - true if the phone number is a required field
	part1 - area code is 3 digits
	part2 - second part of phone number is 4 digits
	part3 - third part of phone number is max 12 digits
*/

function validate_phone_3part_cn(element,strErrorField,strErrorMsg,required,part1,part2,part3)
{
	var part1Element =  document.getElementById(part1);
	var part2Element =  document.getElementById(part2);
	var part3Element =  document.getElementById(part3);

	if((part3Element.value.length == 0) || (part3Element.value.length < 7))
	{
		add_error(element,strErrorField,strErrorMsg);
		return false;
	}
	
	if((part1Element.value.length > 0) && (part1Element.value.length < 2)) 
	{
		add_error(element,strErrorField,strErrorMsg);
		return false;
	}
	
	if((part2Element.value.length > 0) && (part2Element.value.length < 2)) 
	{
		add_error(element,strErrorField,strErrorMsg);
		return false;
	}

	if(part1Element.value.length > 0 && part1Element.value.search("[^0-9]") >= 0) 
	{
		add_error(element,strErrorField,strErrorMsg);
		return false; 
	}

	if(part2Element.value.length > 0 && part2Element.value.search("[^0-9]") >= 0) 
	{
		add_error(element,strErrorField,strErrorMsg);
		return false; 
	}

	if(part3Element.value.length > 0 && part3Element.value.search("[^0-9]") >= 0) 
	{
		add_error(element,strErrorField,strErrorMsg);
		return false; 
	}

	return true;
}

/* 
	Title field validation for China
		
	required - true if the title is a required field
	title_ms - 'Ms.' title
	title_mr - 'Mr.' title
*/

function validate_title_cn(element,strErrorField,strErrorMsg,required,title_ms,title_mr)
{
	var title1 =  document.getElementById(title_ms);
	var title2 =  document.getElementById(title_mr);

	if(!(title1.checked) && !(title2.checked)) 
	{
		add_error(element,strErrorField,strErrorMsg);
		return false; 
	}

	return true;
}

/* 
	This function validates a 4 part phone where the format is (phone1) phone2 - phone3 EXT: phone4
	
	required - true if the phone number is a required field
	part1 - area code is 3 digits
	part2 - second part of phone number is 3 digits
	part3 - third part of phone number is 4 digits
	part4 - extension and never required
*/
function validate_phone_eachpart(element,strErrorField,strErrorMsg,required,part1,part2,part3,part4)
{
	var part1Element =  document.getElementById(part1);
	var part2Element =  document.getElementById(part2);
	var part3Element =  document.getElementById(part3);
	var part4Element =  document.getElementById(part4);

	if (required == "true")
	{
	if(eval(part1Element.value.length) == 0 &&  eval(part2Element.value.length) == 0 &&  eval(part3Element.value.length) ==0)
		{
			 
			return true;
		} 
		
		if(eval(part1Element.value.length) != 3 || eval(part2Element.value.length) != 3 || eval(part3Element.value.length) != 4)
		{
			add_error(element,strErrorField,strErrorMsg);
			return false;
		} 
	 return true;
	}
	
	 
}



/* 
	This function validates a 4 part phone where the format is (phone1) phone2 - phone3 EXT: phone4
	
	required - true if the phone number is a required field
	part1 - area code is 3 digits
	part2 - second part of phone number is 3 digits
	part3 - third part of phone number is 4 digits
	part4 - extension and never required
*/
function validate_phone_fullpart(element,strErrorField,strErrorMsg,required,part1,part2,part3,part4)
{
	var part1Element =  document.getElementById(part1);
	var part2Element =  document.getElementById(part2);
	var part3Element =  document.getElementById(part3);
	var part4Element =  document.getElementById(part4);

	if (required == "true")
	{
	if(eval(part1Element.value.length) == 0 &&  eval(part2Element.value.length) == 0 &&  eval(part3Element.value.length) ==0)
		{
			 
			add_error(element,strErrorField,strErrorMsg);
			return false;
		} 
		
		 
	 return true;
	}
	
	 
}

/* This function validates the credit card brand */
function validate_ccBrand(element,strErrorField,strErrorMsg)
{
      // American Express: length 15, prefix 34 or 37.
      //var amex = /^3[4,7]\d{13}$/;
      // Mastercard: length 16, prefix 51-55.
      //var mc = /^5[1-5]\d{14}$/;
      // Visa: length 13 or 16, prefix 4.
      //var visa = /^4(\d{12}|\d{15})$/;
      
      //if (!amex.test(element.value) && !mc.test(element.value) && !visa.test(element.value))
      if (getCreditCardType(element.value) == '')
	  {
		add_error(element,strErrorField,strErrorMsg);
		return false;
	  }
	  return true;
} 

/* This function validates the credit card number with the Luhn check*/
function validate_ccLuhn(element,strErrorField,strErrorMsg)
{
      if (!luhn_check(element.value))
	  {
		add_error(element,strErrorField,strErrorMsg);
		return false;
	  }
	  return true;
} 

/* This function validates the length of the ccid based on brand */
function validate_ccidLength(element,strErrorField,strErrorMsg,ccNum)
{
	var brand = getCreditCardType($(ccNum).value)
	var ccidlen = eval(element.value.length);
	
	if (!ccidLengthCheck(brand, ccidlen))
    {
		add_error(element,strErrorField,strErrorMsg);
		return false;
	}
	return true;
} 


function validate_search(element,strErrorField,strErrorMsg){
	
	var str = element.value;
	str = str.replace(/^\s*(.*?)\s*$/,"$1");
	
	
	if(eval(str.length) == 0 || eval(str.length) < 2) 
	{
	
		add_error(element,strErrorField,strErrorMsg);
		return false;
	}
	
	
	return true;
	

}



 