function validateChequeVisitor()
{
	var filter = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
    var phone_filter = new RegExp(/^([\d+])$/);
    var multilinechequedetails = $F('chequedetails');
   var singleLinechequedetails = multilinechequedetails.replace(new RegExp( "\\n", "g" ));
	
	if($F('chq_first_name') == "") 
	{
			alert("Please enter your first name");
			return false;
	}
	else if($F('chq_last_name') == "") 
	{
			alert("Please enter your last name");
			return false;
	}
	else if($F('chq_email') == "") 
	{
			alert("Please enter your email address");
			return false;
	}
	else if(filter.test($F('chq_email')) == false) 
	{
		alert("Please enter a valid email address");
		return false;
		
	}
	else if($F('chq_phone') == "") 
	{
			alert("Please enter your phone number");
			return false;
	}
	else if(checkInternationalPhone($F('chq_phone')) == false)
	{
		
		alert("Please enter a valid phone number");
		return false;
	}
	else if($F('chequedetails') == "") 
	{
			alert("Please enter your cheque details");
			return false;
	}
	/*else if(!isAlphanumeric(singleLinechequedetails)) 
	{
			alert("Please enter valid cheque details");
			return false;
	}*/
	
	else if($F('editaddress_chq') == "") 
	{
			alert("Please enter enter your billing address");
			return false;
	}
	else if($F('editcity_chq') == "") 
	{
			alert("Please enter enter your billing city");
			return false;
	}
	else if($F('editstate_chq') == "") 
	{
			alert("Please enter enter your billing state");
			return false;
	}
	else if($F('billingcountryforcheque') == "") 
	{
			alert("Please enter enter your billing country");
			return false;
	}
	
	else if($F('billingpostal_code_cqq') == "") 
	{
			alert("Please enter enter your billing postal code");
			return false;
	}
	else if($F('editaddress2_chq') == "") 
	{
			alert("Please enter enter your shipping address");
			return false;
	}
	else if($F('editshipcity_chq') == "") 
	{
			alert("Please enter enter your shipping city");
			return false;
	}
	else if($F('editshipstate_chq') == "") 
	{
			alert("Please enter enter your shipping state");
			return false;
	}
	else if($F('editcountrycheque') == "") 
	{
			alert("Please enter enter your shipping country");
			return false;
	}
	
	else if($F('shippingpostal_code_cqq') == "") 
	{
			alert("Please enter enter your shipping postal code");
			return false;
	}
	
	return true;
}

function validateCheque()
{
   var multilinechequedetails = $F('chequedetails');
   var singleLinechequedetails = multilinechequedetails.replace(new RegExp( "\\n", "g" ));
    
	if($F('chequedetails') == "") 
	{
			alert("Please enter your cheque details");
			return false;
	}
	/*else if(!isAlphanumeric(singleLinechequedetails)) 
	{
			alert("Please enter valid cheque details");
			return false;
	}*/
	else if($F('editaddress_chq') == "") 
	{
			alert("Please enter enter your billing address");
			return false;
	}
	else if($F('editcity_chq') == "") 
	{
			alert("Please enter enter your billing city");
			return false;
	}
	else if($F('editstate_chq') == "") 
	{
			alert("Please enter enter your billing state");
			return false;
	}
	else if($F('billingcountryforcheque') == "") 
	{
			alert("Please enter enter your billing country");
			return false;
	}
	else if($F('billingpostal_code_cqq') == "") 
	{
			alert("Please enter enter your billing postal code");
			return false;
	}
	else if($F('editaddress2_chq') == "") 
	{
			alert("Please enter enter your shipping address");
			return false;
	}
	else if($F('editshipcity_chq') == "") 
	{
			alert("Please enter enter your shipping city");
			return false;
	}
	else if($F('editshipstate_chq') == "") 
	{
			alert("Please enter enter your shipping state");
			return false;
	}
	else if($F('editcountrycheque') == "") 
	{
			alert("Please enter enter your shipping country");
			return false;
	}
	
	else if($F('shippingpostal_code_cqq') == "") 
	{
			alert("Please enter enter your shipping postal code");
			return false;
	}
	
	return true;
}

function validatePaypalVisitor(token)
{
	var filter = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
    var phone_filter = new RegExp(/^([\d+])$/);
 	
	if($F('paypal_first_name') == "") 
	{
			alert("Please enter your first name");
			return false;
	}
	else if($F('paypal_last_name') == "") 
	{
			alert("Please enter your last name");
			return false;
	}
	else if($F('paypal_email') == "") 
	{
			alert("Please enter your email address");
			return false;
	}
	else if(filter.test($F('paypal_email')) == false) 
	{
		alert("Please enter a valid email address");
		return false;
		
	}
	else if($F('paypal_phone') == "") 
	{
			alert("Please enter your phone number");
			return false;
	}
	else if(checkInternationalPhone($F('paypal_phone')) == false)
	{
		alert("Please enter a valid phone number");
		return false;
	}
	else if($F('editaddress_paypal') == "") 
	{
			alert("Please enter enter your billing address");
			return false;
	}
	else if($F('editcity_paypal') == "") 
	{
			alert("Please enter enter your billing city");
			return false;
	}
	else if($F('editstate_paypal') == "") 
	{
			alert("Please enter enter your billing state");
			return false;
	}
	else if($F('billingcountryforpaypal') == "") 
	{
			alert("Please enter enter your billing country");
			return false;
	}
	else if($F('billingpostal_code_paypal') == "") 
	{
			alert("Please enter enter your billing postal code");
			return false;
	}
	else if($F('editaddress2_paypal') == "") 
	{
			alert("Please enter enter your shipping address");
			return false;
	}
	else if($F('editcity_paypal2') == "") 
	{
			alert("Please enter enter your shipping city");
			return false;
	}
	else if($F('editstate_paypal2') == "") 
	{
			alert("Please enter enter your shipping state");
			return false;
	}
	else if($F('editcountrypaypal') == "") 
	{
			alert("Please enter enter your shipping country");
			return false;
	}
	else if($F('shippingpostal_code_paypal') == "") 
	{
			alert("Please enter enter your shipping postal code");
			return false;
	}
    var returl  =  	getBaseURL();			
    	returl	+=	'cart/checkOut?todo=itempay&paymentToken='
    				+token+'&countryforpaypal='+$F('editcountrypaypal')
    				+'&paypal_first_name='+$F('paypal_first_name')+'&paypal_last_name='+$F('paypal_last_name')
    				+'&paypal_email='+$F('paypal_email')
    				+'&paypal_phone='+$F('paypal_phone')+'&editaddress_paypal='+$F('editaddress_paypal')
    				+'&editaddress2_paypal='+$F('editaddress2_paypal')+'&editaddress_paypal2='+$F('editaddress_paypal2')
    				+'&editcity_paypal='+$F('editcity_paypal')
    				+'&editstate_paypal='+$F('editstate_paypal')
    				+'&billingcountryforpaypal='+$F('billingcountryforpaypal')
    				+'&billingpostal_code_paypal='+$F('billingpostal_code_paypal')
    				+'&editaddress2_paypal2='+$F('editaddress2_paypal2')
    				+'&editcity_paypal2='+$F('editcity_paypal2')
    				+'&editstate_paypal2='+$F('editstate_paypal2')
    				+'&shippingpostal_code_paypal='+$F('shippingpostal_code_paypal')
    				
    				;
	document.getElementById("return").value = returl;
	
	$('checkout_form').submit();
	//return true;
}

function getBaseURL() {
    var url = location.href;  // entire url including querystring - also: window.location.href;
    var baseURL = url.substring(0, url.indexOf('/', 14));


    if (baseURL.indexOf('http://localhost') != -1) {
        // Base Url for localhost
        var url = location.href;  // window.location.href;
        var pathname = location.pathname;  // window.location.pathname;
        var index1 = url.indexOf(pathname);
        var index2 = url.indexOf("/", index1 + 1);
        var baseLocalUrl = url.substr(0, index2);

        return baseLocalUrl + "/";
    }
    else {
        // Root Url for domain name
        return baseURL + "/";
    }

}

function validatePaypal()
{
	
	if($F('editaddress_paypal') == "") 
	{
			alert("Please enter enter your billing address");
			return false;
	}
	else if($F('editcity_paypal') == "") 
	{
			alert("Please enter enter your billing city");
			return false;
	}
	else if($F('editstate_paypal') == "") 
	{
			alert("Please enter enter your billing state");
			return false;
	}
	else if($F('billingcountryforpaypal') == "") 
	{
			alert("Please enter enter your billing country");
			return false;
	}
	else if($F('billingpostal_code_paypal') == "") 
	{
			alert("Please enter enter your billing postal code");
			return false;
	}
	else if($F('editaddress2_paypal') == "") 
	{
			alert("Please enter enter your shipping address");
			return false;
	}
	else if($F('editcity_paypal2') == "") 
	{
			alert("Please enter enter your shipping city");
			return false;
	}
	else if($F('editstate_paypal2') == "") 
	{
			alert("Please enter enter your shipping state");
			return false;
	}
	else if($F('editcountrypaypal') == "") 
	{
			alert("Please enter enter your shipping country");
			return false;
	}
	else if($F('shippingpostal_code_paypal') == "") 
	{
			alert("Please enter enter your shipping postal code");
			return false;
	}
	
	$('checkout_form').submit();
	//return true;
}


function validatePaymentVisitor() 
{
		
		var filter = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
    	var phone_filter = new RegExp(/^([\d+])$/);
    	var nameRegExp = /(\w+)\s(\w+)/;
		
		var expYear = $F('expyear');
		if($F('name') == "") {
			alert("Please enter your name i credit card");
			return false;
		}
		else if(!nameRegExp.test($F('name'))) {
			alert("Enter complete Valid name");
			return false;
		}
		
		else if($F('editcardtype') == 0) {
			alert("Please select your card type");
			return false;
		}else if($F('ccno') == "") {
			alert("Please enter a valid credit card number");
			isNumber($F('ccno'));
			return false;
		}else if(!isNumber($F('ccno'))) {
			alert("Please enter a valid credit card number");
			return false;
		}
		else if($F('cvcno') == "") {
			alert("Please enter a valid cvc no");
			return false;
		}
		else if(!isNumber($F('cvcno'))) {
			alert("Please enter a valid cvc no");
			return false;
		}
		else if($F('expmonth') == "") {
			alert("Please enter a valid card expiry month");
			return false;
		}
		else if(!isNumber($F('expmonth'))) {
			alert("Please enter a valid card expiry month");
			return false;
		}
		else if($F('expyear') == "") {
			alert("Please enter a valid card expiry year");
			return false;
		}
		else if(!isNumber($F('expyear'))) {
			alert("Please enter a valid card expiry year");
			return false;
		}
		else if(expYear.length < 4) {
			alert("Please enter a valid card expiry year");
			return false;
		}
		else if(!validateExperyDate($F('expmonth'),$F('expyear'))) {
			alert("Your card is expired");
			return false;
		}
		else if($F('credit_first_name') == "") 
		{
				alert("Please enter your first name");
				return false;
		}
		else if($F('credit_last_name') == "") 
		{
				alert("Please enter your last name");
				return false;
		}
		else if($F('credit_email') == "") 
		{
				alert("Please enter your email address");
				return false;
		}
		else if(filter.test($F('credit_email')) == false) 
		{
			alert("Please enter a valid email address");
			return false;
			
		}
		else if($F('credit_phone') == "") 
		{
				alert("Please enter your phone number");
				return false;
		}
		else if(checkInternationalPhone($F('credit_phone')) == false)
		{
			alert("Please enter a valid phone number");
			return false;
		}
		else if($F('editaddress1') == "") {
			alert("Please enter enter your billing address1");
			return false;
		}
		else if($F('editcity') == "") {
			alert("Please enter your billing city");
			return false;
		}
		else if($F('editstate') == "") {
			alert("Please enter your billing state");
			return false;
		}else if($F('editzip') == "") {
			alert("Please enter your billing zip code");
			return false;
		}else if((!hasSpecialCharactors($F('editzip')))) {
			alert("Please enter a valid billing zip code");
			return false;
		}else if($F('editcountry') == "") {
			alert("Please enter your country");
			return false;
		}
		else if($F('editaddress2') == "") {
			alert("Please enter enter your shipping address1");
			return false;
		}
		else if($F('crdt_ship_zip') == "") {
			alert("Please enter enter your shipping zip code");
			return false;
		}
		
		return true;
}



function validatePayment() 
{
		
		
		
		var expYear = $F('expyear');
		var nameRegExp = /(\w+)\s(\w+)/;
		
		if($F('name') == "") {
			alert("Please enter your name in credit card");
			return false;
		}
		else if(!nameRegExp.test($F('name'))) {
			alert("Enter complete valid name");
			return false;
		}
		else if($F('editcardtype') == 0) {
			alert("Please select your card type");
			return false;
		}else if($F('ccno') == "") {
			alert("Please enter a valid credit card number");
			isNumber($F('ccno'));
			return false;
		}else if(!isNumber($F('ccno'))) {
			alert("Please enter a valid credit card number");
			return false;
		}
		else if($F('cvcno') == "") {
			alert("Please enter a valid cvc no");
			return false;
		}
		else if(!isNumber($F('cvcno'))) {
			alert("Please enter a valid cvc no");
			return false;
		}
		else if($F('expmonth') == "") {
			alert("Please enter a valid card expiry month");
			return false;
		}
		else if(!isNumber($F('expmonth'))) {
			alert("Please enter a valid card expiry month");
			return false;
		}
		else if($F('expyear') == "") {
			alert("Please enter a valid card expiry year");
			return false;
		}
		else if(!isNumber($F('expyear'))) {
			alert("Please enter a valid card expiry year");
			return false;
		}
		else if(expYear.length < 4) {
			alert("Please enter a valid card expiry year");
			return false;
		}
		else if(!validateExperyDate($F('expmonth'),$F('expyear'))) {
			alert("Your card is expired");
			return false;
		}
		else if($F('editaddress1') == "") {
			alert("Please enter enter your billing address1");
			return false;
		}
		else if($F('editcity') == "") {
			alert("Please enter your  billing city");
			return false;
		}
		else if($F('editstate') == "") {
			alert("Please enter your billing  state");
			return false;
		}else if($F('editzip') == "") {
			alert("Please enter your billing zip code");
			return false;
		}else if((!hasSpecialCharactors($F('editzip')))) {
			alert("Please enter a valid billing zip code");
			return false;
		}else if($F('editcountry') == "") {
			alert("Please enter your country");
			return false;
		}
		else if($F('editaddress2') == "") {
			alert("Please enter enter your shipping address1");
			return false;
		}
		else if($F('crdt_ship_zip') == "") {
			alert("Please enter enter your shipping zip code");
			return false;
		}
		
		
		return true;
}
	
	function isAlphanumeric(alphane)
	{
		var numaric = alphane;
		
		for(var j=0; j<numaric.length; j++)
			{
			  var alphaa = numaric.charAt(j);
			  var hh = alphaa.charCodeAt(0);
			  if((hh > 47 && hh<58) || (hh > 64 && hh<91) || (hh > 96 && hh<123))
			  {
			  }else {
			  	return false;
			  }
			
	 		}
	  return true;
}
  
  function isNumber(num) {
		var testresult = false;
		var anum=/(^\d+$)|(^\d+\.\d+$)/
		if (anum.test(num))
			testresult = true;
		
		return testresult;
	}
	
	function hasSpecialCharactors(str){
		var iChars = "!@#$%^&*()+=-[]\\\';,./{}|\":<>?";

		  for (var i = 0; i < str.length; i++) {
			  	if (iChars.indexOf(str.charAt(i)) != -1) {
			  	  	return false;
			  	}
  			}
		return true;
	}
	
	function validateExperyDate(month,year){
		var d = new Date();
		var curr_month = d.getMonth();
		var curr_year = d.getFullYear();
		
		if(year < curr_year) {
			return false;
		}else if(year == curr_year && month < curr_month) {
			return false;
		}
		
		return true;
	}
	
	
	
	 /**
    * DHTML phone number validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
    */
    
    // Declaring required variables
    var digits = "0123456789";
    // non-digit characters which are allowed in phone numbers
    var phoneNumberDelimiters = "()- ";
    // characters which are allowed in international phone numbers
    // (a leading + is OK)
    var validWorldPhoneChars = phoneNumberDelimiters + "+";
    // Minimum no of digits in an international phone no.
    var minDigitsInIPhoneNumber = 10;
    
    function isInteger(s)
    {   var i;
    for (i = 0; i < s.length; i++)
    {   
    // Check that current character is number.
    var c = s.charAt(i);
    if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
    }
    function trim(s)
    {   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not a whitespace, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
    // Check that current character isn't whitespace.
    var c = s.charAt(i);
    if (c != " ") returnString += c;
    }
    return returnString;
    }
    function stripCharsInBag(s, bag)
    {   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
    // Check that current character isn't whitespace.
    var c = s.charAt(i);
    if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
    }
    
    function checkInternationalPhone(strPhone){
    var bracket=3
    strPhone=trim(strPhone)
    if(strPhone.indexOf("+")>1) return false
    if(strPhone.indexOf("-")!=-1)bracket=bracket+1
    if(strPhone.indexOf("(")!=-1 && strPhone.indexOf("(")>bracket)return false
    var brchr=strPhone.indexOf("(")
    if(strPhone.indexOf("(")!=-1 && strPhone.charAt(brchr+2)!=")")return false
    if(strPhone.indexOf("(")==-1 && strPhone.indexOf(")")!=-1)return false
    s=stripCharsInBag(strPhone,validWorldPhoneChars);
    return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
    }
