window.onload = function()
{
	document.getElementById('order_province_display').selectedIndex=0;
	document.getElementById('order_state_display').selectedIndex=0;
	document.getElementById('order_country').selectedIndex=0;
	document.getElementById('order_province_display').style.display='none';
	document.getElementById('order_state_display').style.display='none';
	if(document.getElementById('ship_same'))
		toggleShipping(document.getElementById('ship_same'));
	onLoad="MM_CheckFlashVersion('8,0,0,0','Content on this page requires a newer version of Adobe Flash Player. Do you want to download it now?');"
}

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 regUSCAzip = /(^[ABCEGHJKLMNPRSTVXY]\d[ABCEGHJKLMNPRSTVWXYZ]( )?\d[ABCEGHJKLMNPRSTVWXYZ]\d$)|(^\d{5}(-\d{4})?$)/;
var regCDNzip = /[a-zA-Z][0-9][a-zA-Z](-| |)[0-9][a-zA-Z][0-9]/;
var regExpP1 = /^[0-9]{3}$/;
var regExpP2 = /^[0-9]{4}$/;
var regExpCCNum = /^[0-9]{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 country = document.getElementById('order_country').value;
	//alert(country);
	if (country == "US")
	 {
		var state = document.getElementById('order_state_display');
	    //alert(state.options[state.selectedIndex].value);
		if(state.options[state.selectedIndex].value==''){
			alert('Please select your state');
			return false;
		  }
	 }
	else
	 {
		var state = document.getElementById('order_province_display');
	    //alert(state.options[state.selectedIndex].value);
		if(state.options[state.selectedIndex].value==''){
			alert('Please select your province');
			return false;
		  }
	 }
	 
	var country = document.getElementById('order_country').value;
	//alert(country);
	if (country == "US")
	 {
		var zip = document.getElementById('order_zip').value;
	     zip = zip.toUpperCase();
		if(regExpZip.test(zip)==false){
			alert('Please enter your zip code');
			return false;
		}
	 }
	else
	 {
		var zip = document.getElementById('order_zip').value;
			 zip = zip.toUpperCase();
		if(regCDNzip.test(zip)==false){
			alert('Please enter your postal code');
			return false;
		}
	 }
/*
	//var zip = document.getElementById('order_zip').value.replace(' ','');
	var zip = document.getElementById('order_zip').value;
	     zip = zip.toUpperCase();
	if(regUSCAzip.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;
	}

/*	
	//shipping fields
	if(document.getElementById('ship_same').checked == false)
	{
		if(document.getElementById('order_sname_first').value.replace(' ','')==''){
			alert('Please enter shipping first name');
			return false;
		}
		if(document.getElementById('order_sname_last').value.replace(' ','')==''){
			alert('Please enter shipping last 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(' ','');
	         zip = zip.toUpperCase();
		if(regExpZip.test(zip)==false){
			alert('Please enter shipping zip code');
			return false;
		}
	}
*/
	return true;

} //end function validate()

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('Please enter numbers only for the credit card.\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 cvv code');
		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;
	}	
} //end function 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('order_state_display').style.display='none';
   document.getElementById('order_province_display').style.display='block';
   //document.getElementById('checkmark').style.cssFloat='right';
  }
 else
 {
   document.getElementById('order_province_display').style.display='none';
   document.getElementById('order_state_display').style.display='block';
   //document.getElementById('checkmark').style.cssFloat='right';
 }
}  //end toggleBillingCountry

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

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.insurechoice.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;
  }
} //end function chkInsure()
