var regExpEmail = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
var regExpZip = /^\d{5}-\d{4}|\d{5}|[A-Z]\d[A-Z] \d[A-Z]\d$/;
var regExpP1 = /^[0-9]{3}$/;
var regExpP2 = /^[0-9]{4}$/;
var regExpCCNum = /^[0-9]{12,16}$/;
var regExpCvv = /^[0-9]{3,4}$/;
//var regExpCrd = /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}$/;
var regExpCrdMC = /^5[1-5][0-9]{14}$/;
var regExpCrdVS = /^4[0-9]{12}(?:[0-9]{3})?$/;
var regExpCrdAE = /^3[47][0-9]{13}$/;
var regExpCrdDS = /^6(?:011|5[0-9]{2})[0-9]{12}$/;

function validate()
{
	if(document.getElementById('order_name_first').value.replace(' ','')==''){
		alert('Please enter your first name');
		return false;
	}
	if(document.getElementById('order_name_last').value.replace(' ','')==''){
		alert('Please enter your last name');
		return false;
	}
	if(document.getElementById('order_address1').value.replace(' ','')==''){
		alert('Please enter your address');
		return false;
	}
	if(document.getElementById('order_city').value.replace(' ','')==''){
		alert('Please enter your city');
		return false;
	}
	var state = document.getElementById('order_state');
	if(state.options[state.selectedIndex].value=='0'){
		alert('Please select your state');
		return false;
	}
	//var zip = document.getElementById('order_zip').value.replace(' ','');
	var zip = document.getElementById('order_zip').value;
	     zip = zip.toUpperCase();
	if(regExpZip.test(zip)==false){
		alert('Please enter your zip code');
		return false;
	}
	var email = document.getElementById('order_email').value.replace(' ','');
	if(regExpEmail.test(email)==false){
		alert('Please enter your email address');
		return false;
	}
	var p1 = document.getElementById('order_phone1').value.replace(' ','');
	var p2 = document.getElementById('order_phone2').value.replace(' ','');
	var p3 = document.getElementById('order_phone3').value.replace(' ','');
	if(!regExpP1.test(p1) || !regExpP1.test(p2) || !regExpP2.test(p3)){
		alert('Please enter your phone number');
		return false;
	}

	return true;

}

function validatecc()
{
	if(document.getElementById('order_sfname').value.replace(' ','')==''){
		alert('Please enter shipping name');
		return false;
	}
	if(document.getElementById('order_slname').value.replace(' ','')==''){
		alert('Please enter shipping name');
		return false;
	}
	if(document.getElementById('order_saddress1').value.replace(' ','')==''){
		alert('Please enter shipping address');
		return false;
	}
	if(document.getElementById('order_scity').value.replace(' ','')==''){
		alert('Please enter shipping city');
		return false;
	}
	var state = document.getElementById('order_sstate');
	if(state.options[state.selectedIndex].value=='0'){
		alert('Please select shipping state');
		return false;
	}
	var zip = document.getElementById('order_szip').value.replace(' ','');
	if(regExpZip.test(zip)==false){
		alert('Please enter shipping zip code');
		return false;
	}

	var cctype = document.getElementById('order_cctype');
	if(cctype.options[cctype.selectedIndex].value==''){
		alert('Please select credit card type');
		return false;
	}

	var ccnum = document.getElementById('order_ccnum').value.replace(' ','');
	if(regExpCCNum.test(ccnum)==false){
		alert('The number entered is not a valid credit card number.\nPlease re-enter the credit card number.');
		return false;
	}

	var cvv = document.getElementById('order_cccvv').value.replace(' ','');
	if(regExpCvv.test(cvv)==false){
		alert('Please enter the Card Verification Number');
		return false;
	}
	
	var mo = document.getElementById('order_ccexpmo').options[document.getElementById('order_ccexpmo').selectedIndex].value;
	var yr = document.getElementById('order_ccexpyr').options[document.getElementById('order_ccexpyr').selectedIndex].value;
	var exp=new Date(); exp.setFullYear(yr,mo-1,31);
	var today = new Date();
	if(exp<today){
		alert('Please enter valid expiration date');
		return false;
	}	

	var ccorig = document.getElementById('order_ccname').value.replace(' ','');
	var ccname = document.getElementById('order_ccname').value;
	var chkname = ccname.length;
	
	  if (ccname == 0)
	   {
	    alert('Please enter the name as it appears on the credit card.');
		return false;
		//document.getElementById('order_ccname').focus();
	   }

	
	var cred = document.getElementById('order_ccnum').value.replace(' ','');
	var cctypenm = document.getElementById('order_cctype').value;
	switch (cctypenm)
	 {
		case "Visa":
		 if(regExpCrdVS.test(cred)==false){
			alert('That is not a correctly formatted Visa card number.\nPlease verify and re-enter credit card number');
			return false;
		 }
		break;
		case "MasterCard":
		 if(regExpCrdMC.test(cred)==false){
			alert('That is not a correctly formatted MasterCard card number.\nPlease verify and re-enter credit card number');
			return false;
		 }
		break;
		case "Amex":
		 if(regExpCrdAE.test(cred)==false){
			alert('That is not a correctly formatted American Express card number.\nPlease verify and re-enter credit card number');
			return false;
		 }
		break;
		case "Discover":
		 if(regExpCrdDS.test(cred)==false){
			alert('That is not a correctly formatted Discover card number.\nPlease verify and re-enter credit card number');
			return false;
		 }
		break;
		default: alert("Please select a credit card.");
		return false;
	} //end switch

	var credccv = document.getElementById('order_cccvv').value.replace(' ','');
	var cctype1 = document.getElementById('order_cctype').value;
	var cvn = credccv.length;
	
	if (cctype1 == "Amex")
	 {
	  if (cvn != 4)
	   {
	    alert('That number is not a valid American Express Card\nVerification Number. Please verify the number and re-enter.');
		return false;
	   }
	 }
	else
     {
	  if (cvn != 3)
	   {
	    alert('That number is not a valid Card Verification Number for\nyour type of credit card. Please verify the number and re-enter.');
		return false;
	   }
	 }

	return true;
	
} //end validatecc()

/*
function toggleShipping(el)
{
	if(el.checked) 
		document.getElementById('ship_info').style.display = 'none';
	else 
		document.getElementById('ship_info').style.display = 'block';
}
*/
function toggleBillingCountry()
{
 var desiredForm = document.cust_info.order_country.value;
 if (desiredForm == "CA")
  {
   document.getElementById('bill_state_display').style.display='none';
   document.getElementById('bill_province_display').style.display='block';
  }
 else
 {
   document.getElementById('bill_province_display').style.display='none';
   document.getElementById('bill_state_display').style.display='block';
 }
}  //end toggleBillingCountry

function toggleShippingCountry()
{
 var desiredForm = document.shipaddrtable.order_scountry.value;
 if (desiredForm == "CA")
  {
   document.getElementById('ship_state_display').style.display='none';
   document.getElementById('ship_province_display').style.display='block';
  }
 else
 {
   document.getElementById('ship_province_display').style.display='none';
   document.getElementById('ship_state_display').style.display='block';
 }
}  //end toggleShippingCountry

window.onload = function()
{
	if(document.getElementById('ship_same'))
		toggleShipping(document.getElementById('ship_same'));
}


function haveCred()
{
	var cred = document.getElementById('order_ccnum').value.replace(' ','');
	var cctype = document.getElementById('order_cctype').value;
	switch (cctype)
	 {
		case "Visa":
		 if(regExpCrdVS.test(cred)==false){
			alert('That is not a correctly formatted Visa card number.\nPlease verify and re-enter credit card number');
			return false;
		 }
		break;
		case "MasterCard":
		 if(regExpCrdMC.test(cred)==false){
			alert('That is not a correctly formatted MasterCard card number.\nPlease verify and re-enter credit card number');
			return false;
		 }
		break;
		case "Amex":
		 if(regExpCrdAE.test(cred)==false){
			alert('That is not a correctly formatted American Express card number.\nPlease verify and re-enter credit card number');
			return false;
		 }
		break;
		case "Discover":
		 if(regExpCrdDS.test(cred)==false){
			alert('That is not a correctly formatted Discover card number.\nPlease verify and re-enter credit card number');
			return false;
		 }
		break;
		default: alert("Please select a credit card.");
	} //end switch
}  //end function haveCred

function cvnCheck()
{
	var cred = document.getElementById('order_cccvv').value.replace(' ','');
	var cctype = document.getElementById('order_cctype').value;
	var cvn = cred.length;
	
	if (cctype == "Amex")
	 {
	  if (cvn != 4)
	   {
	    alert('That number is not a valid American Express Card\nVerification Number. Please verify the number and re-enter.');
	   }
	 }
	else
     {
	  if (cvn != 3)
	   {
	    alert('That number is not a valid Card Verification Number for\nyour type of credit card. Please verify the number and re-enter.');
	   }
	 }
} //end cvnCheck

function chkName()
{
	var ccorig = document.getElementById('order_ccname').value.replace(' ','');
	var ccname = document.getElementById('order_ccname').value;
	var chkname = ccname.length;
	
	  if (ccname == 0)
	   {
	    alert('Please enter the name as it appears on the credit card.');
		//document.getElementById('order_ccname').focus();
	   }
} //end chkName

function chkInsure()
{
 if (document.shipaddrtable.insureship_option.checked == false)
  {
   document.getElementById('insurance').style.display = 'block';
   document.shipaddrtable.insurechoice.value = 1;
  }
 else
  {
   document.getElementById('insurance').style.display = 'none';
   document.shipaddrtable.insurechoice.value = 0;
  }
}


var Timer;
var TotalSeconds;

function CreateTimer(TimerID, Time) {
    Timer = document.getElementById(TimerID);
    TotalSeconds = Time;
    
    UpdateTimer()
    window.setTimeout("Tick()", 1000);
}

function Tick() {
    if (TotalSeconds <= 0) {
        //alert("Time's up!")
		document.getElementById('timerdiv').style.visibility = 'hidden';
        return;
    }

    TotalSeconds -= 1;
    UpdateTimer()
    window.setTimeout("Tick()", 1000);
}

function UpdateTimer() {
    var Seconds = TotalSeconds;
    
    var Minutes = Math.floor(Seconds / 60);
    Seconds -= Minutes * (60);


    var TimeStr = LeadingZero(Minutes) + ":" + LeadingZero(Seconds)


    Timer.innerHTML = "Click the button to the right within the next  <span style='color: #000;'>" + TimeStr +" </span>to save 50% on everything at Miracle of Aloe.com";
}


function LeadingZero(Time) {

    return (Time < 10) ? "0" + Time : + Time;

}


function moveMaxLength(field,nextField)
	{
		if(field.value.length >= field.maxLength)
			{
				document.getElementById(nextField).focus();
			}
	}

