
var error_msg;
var error_pt2;

function validate_form()
{
	//return true;
	error_msg = 'Please ::\n';
	
	match_emails();
	
	check_cvv();
	
	check_ibank();
	
	match_expiry();

	validate_email();
	
	validate_name();
	
	validate_statecityprov();
	
	validate_zip();
	
	validate_country();
	
	validate_dayphone();
	
	validate_nightphone();
	
	validate_cardnumber();
	
	check_product();
	
	check_shipping();
	
	if(error_msg!='Please ::\n')
	{
	   dispaly_error(error_msg);
	   return (false);
	}
	return true;
	
	
	

	
}
function validate_email()
{
	if(!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(document.Order.Email.value)))
		error_msg = error_msg + "\tRe-enter valid email address.\n";
		//error_msg = error_msg + "\tRe-enter valid email address.\n";verified-email-address
		
	/*if(!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(document.Order.verified_email_address.value)))
		error_msg = error_msg + "\tRe-enter valid verified email address.\n";*/
}

function dispaly_error(em)
{
	alert(em);
}

function validate_name()
{
	tname = Trim(document.Order.Name.value);
	if(tname=='')
		error_msg = error_msg + "\tEnter your Name.\n";
	else if(tname.indexOf(' ')==-1)
		error_msg = error_msg + "\tEnter both First and Last name.\n";
}

function validate_statecityprov()
{
	var street = Trim(document.Order.Street.value);
	var city = Trim(document.Order.City.value);
	var ProvinceState = Trim(document.Order.ProvinceState.value);
	
	if(street == '')
		error_msg = error_msg + "\tEnter your Street Address.\n";
	else if(street.indexOf(' ')==-1)
		error_msg = error_msg + "\tEnter complete street Address.\n";
	if(city == '')
		error_msg = error_msg + "\tEnter your City Address.\n";
	if(!(alpha(city)))
		error_msg = error_msg + "\tEnter valid City Address.\n";
	if(ProvinceState == '')
		error_msg = error_msg + "\tEnter your Province/State.\n";
	if(!(alpha(ProvinceState)))
		error_msg = error_msg + "\tEnter valid Province/State Address.\n";
}

function validate_zip()
{
	var zip=Trim(document.Order.Zip.value);
	if(zip=='')
		error_msg = error_msg + "\tEnter your Zip/Postal code.\n";
	else if(!(alphanumeric(zip)) || zip.length<4)
		error_msg = error_msg + "\tEnter valid Zip/Postal Code.\n";
}

function validate_country()
{
	var country = Trim(document.Order.Country.value);
	if(country.length<2)
		error_msg = error_msg + "\tEnter valid Country Name.\n";
	if(!(alpha(country)))
		error_msg = error_msg + "\tEnter valid Country Name.\n";
}

function validate_dayphone()
{
	if(!(numeric(document.Order.DaytimePhone.value)) || document.Order.DaytimePhone.value=='')
		error_msg = error_msg + "\tEnter valid Day-time Phone Number(10 digits ONLY with NO SPACES OR DASHES).\n";
}

function validate_nightphone()
{
	if(!(numeric(document.Order.NighttimePhone.value)) || document.Order.NighttimePhone.value=='')
		error_msg = error_msg + "\tEnter valid Night-time Phone Number(10 digits ONLY with NO SPACES OR DASHES).\n";
}

function validate_cardnumber()
{
	if(!(numeric(document.Order.Cardnumber.value))){
		error_msg = error_msg + "\tEnter valid Credit card number(Recheck numbers/ USE NO SPACES OR DASHES).\n";
	}
	else{
		var cardtype = document.Order.Cardtype.selectedIndex;
		if(cardtype == 2 && document.Order.Cardnumber.value.length!=15)
			error_msg = error_msg + "\t American Express card requires 15 digits (Also Recheck numbers/ USE NO SPACES OR DASHES).\n";
		if(cardtype != 2 && document.Order.Cardnumber.value.length!=16)
			error_msg = error_msg + "\t MASTERCARD, VISA and DISCOVER cards requires 16 digits (Also Recheck numbers/ USE NO SPACES OR DASHES).\n";
	}
}

function match_emails()
{
	var em1 = document.Order.Email.value;
	var em2 = document.Order.verified_email_address.value;
	if(em1 != em2)
		error_msg = error_msg + "\tMake sure the two email addresses match. Re-Check both locations on order form.\n";
}

var intCount = 0;
var arraySize = 30;
var arrQtys = new Array(arraySize);
function checkProduct(objPtr) {
	var qtyName = objPtr.name + "_Quantity";
	if (objPtr.checked) {
		arrQtys[intCount] = qtyName;
		intCount++;
	}
	else {
		for (i=0; i <arraySize; i++) {
			if (arrQtys[i] == qtyName) {
				arrQtys[i] = "";
				break;
			}
		}
		intCount--;
	}
	var temp = "";
	for (i=0; i <arraySize; i++) {
			temp = temp + arrQtys[i] + "\n";
		}
}

function check_product() {
	var productName, qtyName, qtyNameLower, strIndex, checkFlag;
	checkFlag = 0;
	//alert(Order.elements.length);
	for (i=0; i<document.Order.elements.length; i++) {
		qtyName = document.Order.elements[i].name;
		qtyNameLower = qtyName.toLowerCase();
		strIndex = qtyNameLower.indexOf("_quantity");
		if (strIndex != -1) {
			productName = qtyName.substring(0, strIndex);
			//alert(qtyName);
			//alert(productName);
			
			if (document.getElementById(productName).checked) {
				checkFlag++;
				if (!numeric(document.getElementById(qtyName).value) || document.getElementById(qtyName).value == 0||document.getElementById(qtyName).value.indexOf("-")!=-1) {
					error_msg = error_msg + "\tEnter valid quantity for the product(s) selected.\n";
					break;
				}
			}
		}
	}
	if (checkFlag == 0)
		error_msg = error_msg + "\tSelect a product.\n";
}

function check_shipping()
{
	var good=0;
	for(var test=0;test<6;test++){
		if(document.Order.shipping[test].checked){
			good++;
			break;
		}
	}
	if(good==0)
		error_msg = error_msg + "\tSelect a shipping charge type.\n";
}

function alphanumeric(alphane)
{
	var valid="#0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.- ";

    for (var i=0; i<alphane.length; i++) {
        if (valid.indexOf(alphane.charAt(i)) < 0) {
            return false;
        }
    }
	return true;

}

function alpha(alp)
{
	var validalpha = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.- ";
	
	for(var x=0; x<alp.length; x++)
	if(validalpha.indexOf(alp.charAt(x))<0)
		return false;
	return true;
}

function numeric(numer)
{
	var validnum = "0123456789.-";
	
	for(var x =0; x<numer.length; x++)
		if(validnum.indexOf(numer.charAt(x))<0)
			return false;
		return true;
}

function Trim(TRIM_VALUE)
{
	if(TRIM_VALUE.length < 1){
		return"";
	}
	TRIM_VALUE = RTrim(TRIM_VALUE);
	TRIM_VALUE = LTrim(TRIM_VALUE);
	if(TRIM_VALUE==""){
		return "";
	}
	else{
		return TRIM_VALUE;
	}
} 

function RTrim(VALUE)
{
	var w_space = String.fromCharCode(32);
	var v_length = VALUE.length;
	var strTemp = "";
	if(v_length < 0){
	return"";
	}
	var iTemp = v_length -1;
	
	while(iTemp > -1){
	if(VALUE.charAt(iTemp) == w_space){
	}
	else{
	strTemp = VALUE.substring(0,iTemp +1);
	break;
	}
	iTemp = iTemp-1;
	} //End While
	return strTemp;
} //End Function

function LTrim(VALUE)
{
	var w_space = String.fromCharCode(32);
	if(v_length < 1){
	return"";
	}
	var v_length = VALUE.length;
	var strTemp = "";
	
	var iTemp = 0;
	
	while(iTemp < v_length){
	if(VALUE.charAt(iTemp) == w_space){
	}
	else{
	strTemp = VALUE.substring(iTemp,v_length);
	break;
	}
	iTemp = iTemp + 1;
	} //End While
	return strTemp;
}

function check_cvv()
{
	var cvvno = document.Order.cvv.value;
	if(cvvno == '')
		error_msg = error_msg + "\tEnter CVV number.\n";
	else  if(!numeric(cvvno))
		error_msg = error_msg + "\tEnter valid CVV number.\n";
	else if(cvvno.length<3)
		error_msg = error_msg + "\tEnter valid CVV number.\n";
}

function check_ibank()
{
	var ibname = "issuing-bank-name";
	if(Trim(document.Order.issuing_bank_name.value)=='')
		error_msg = error_msg + "\tEnter name of the issuing bank.\n";
}

function match_expiry()
{
		var exmchk = Trim(document.Order.Expmonthchk.value);
		var exychk = Trim(document.Order.Expyearchk.value);
		//var leng = exdate.length;
		//var exmm = exdate.substr(0, 2);
		//var exyy = exdate.substr(3, 4);
		var exmm1 = document.Order.Expmonth.value;
		var exyy1 = document.Order.Expyear.value;
		if(exmm1!=exmchk || exychk!=exyy1){
			error_msg = error_msg + "\tThe expiry date did not match. Re-Check both locations on order form.\n"; }

}