<!--
/***********************************************
* Required field(s) validation
***********************************************/

function validate_form(form) {
//-------- Check Form Information ------------------------------------------
	if (form.fname.value.length == 0) {
		alert("Please enter a Card Holder's First Name.");
		form.fname.focus();
		return false;
	}
	
	if (form.lname.value.length == 0) {
		alert("Please enter a Card Holder's Last Name.");
		form.lname.focus();
		return false;
	}

//--------- Check Email Format ------------------------------------------------
	var Email_Check = false;
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(form.email.value)){
		Email_Check = true;
	}

	if (!Email_Check) {
		alert("Email is a required field.");
		form.email.focus();
		return false;
	}

	if (form.password.value.length == 0 || form.password.value.length < 5) {
		alert("Your Password is blank or less than 5 characters, please enter a password of at least 5 characters.");
		form.password.focus();
		return false;
	}

	if (form.password.value != form.confirmpassword.value) {
		alert("Your Password and Confirm Password does not match, please re-enter.");
		form.password.focus();
		return false;
	}

	var radioSelected = false; 
	if (form.register.length == undefined) {
		if (form.register.checked) {
			radioSelected = true;
		}
	} else {
		for (var i=0; i < form.register.length; i++) { 
			if (form.register[i].checked) radioSelected = true; 
		}
	}

	if (!radioSelected) { 
		alert("Please select a radio button.");
		if (form.register.length == undefined) {
			form.register.focus();
		} else {
			form.register[0].focus();
		}
		return false; 
	}

	if (form.Billing_Address1.value.length == 0) {
		alert("Please enter a Billing Address.");
		form.Billing_Address1.focus();
		return false;
	}

	if (form.Billing_Phone.value.length == 0) {
		alert("Please enter a Contact Number.");
		form.Billing_Phone.focus();
		return false;
	}

	
	if (form.Billing_City.value.length == 0) {
		alert("Please enter a City/Town.");
		form.Billing_City.focus();
		return false;
	}
	
	if (form.Billing_State.value.length == 0) {
		alert("Please enter a State.");
		form.Billing_State.focus();
		return false;
	}

	if (form.Billing_Zipcode.value.length == 0) {
		alert("Please enter a Zipcode.");
		form.Billing_Zipcode.focus();
		return false;
	}

// ---------- Check Check Card Information -----------------------------
	if(form.cardtype.selectedIndex == 0) {
		alert("Please select a credit card type.");
		form.elements['cardtype'].focus();
		return false;
	}

	var ccnum= document.getElementById('cardnumber');
	if(!ccvalid(ccnum.value))
	{
		alert("Please enter a valid credit card.");
		form.cardnumber.focus();
		return false;
	}

	if(form.cvv2number.value.length < 3) {
		alert("Credit Card verification number must be at least 3 digits.");
		form.cvv2number.focus();
		return false;
	}

	if(form.expmon.selectedIndex == 0) {
		alert("Please select a expiration month.");
		form.elements['expmon'].focus();
		return false;
	}

	if(form.expyear.selectedIndex == 0) {
		alert("Please select a expiration year.");
		form.elements['expyear'].focus();
		return false;
	}

	return true;
}

function ccvalid(s) {
	var v = "0123456789";
	var w = "";
	for (i=0; i < s.length; i++) {
		x = s.charAt(i);
		if (v.indexOf(x,0) != -1)
		w += x;
	}
	j = w.length / 2;
	if (j < 6.5 || j > 8 || j == 7) return false;
	k = Math.floor(j);
	m = Math.ceil(j) - k;
	c = 0;
	for (i=0; i<k; i++) {
		a = w.charAt(i*2+m) * 2;
		c += a > 9 ? Math.floor(a/10 + a%10) : a;
	}
	for (i=0; i<k+m; i++) c += w.charAt(i*2+1-m) * 1;
	return (c%10 == 0);
}

// -->