//Script by Dennis
var tempFieldArray = "name,address,city,province,postalcode,country,phone,email".split(",");
var ns4 = (document.layers)? true:false
var ie4 = (document.all)? true:false

function Validate_Internet_Form(myFrmObj){
	if (lastCheck(myFrmObj)){
	
	document.videosalesform.action = "distribution_videosales.asp";
	document.videosalesform.target = "";
	
		var maxFormElements=myFrmObj.elements.length;
		var fieldList="";
		var selTitle=false;
		
		for (z = 0; z < maxFormElements; z++){
			if ((myFrmObj.elements[z].name.substr(0,6) == "total_")||(myFrmObj.elements[z].name.substr(0,9) == "quantity_")){
				if (ie4){myFrmObj.elements[z].style.backgroundColor = "#FFFFFF";}
				//--> Total & Quantity Validation
					if(myFrmObj.elements[z].value.length > 0){
						if((validateForNumber(myFrmObj.elements[z]))!==true){
							setFieldFocus(myFrmObj.elements[z]);
							return false;
						}
					}
			}else{
				//--> Title checkbox validation
				if(myFrmObj.elements[z].name.substr(0,13) == "chk_title_ID_"){
					if (myFrmObj.elements[z].checked == true){selTitle=true;}
				}
			}
		}

		//--> Final Title checkbox validation
		if(selTitle!=true){
			alert("You must check-off at least one title before submitting this form.\nThank you.");
		}else{
			return true;
		}
	}
	return false;
}

//This is used for form with captcha replacing above method for testing
function Validate_Internet_Form_New(myFrmObj){
	if (lastCheck(myFrmObj)){
	
	document.videosalesform.action = "distribution_videosales_c.asp";
	document.videosalesform.target = "";
	
		var maxFormElements=myFrmObj.elements.length;
		var fieldList="";
		var selTitle=false;
		
		for (z = 0; z < maxFormElements; z++){
			if ((myFrmObj.elements[z].name.substr(0,6) == "total_")||(myFrmObj.elements[z].name.substr(0,9) == "quantity_")){
				if (ie4){myFrmObj.elements[z].style.backgroundColor = "#FFFFFF";}
				//--> Total & Quantity Validation
					if(myFrmObj.elements[z].value.length > 0){
						if((validateForNumber(myFrmObj.elements[z]))!==true){
							setFieldFocus(myFrmObj.elements[z]);
							return false;
						}
					}
			}else{
				//--> Title checkbox validation
				if(myFrmObj.elements[z].name.substr(0,13) == "chk_title_ID_"){
					if (myFrmObj.elements[z].checked == true){selTitle=true;}
				}
			}
		}

		//--> Final Title checkbox validation
		if(selTitle!=true){
			alert("You must check-off at least one title before submitting this form.\nThank you.");
		}else{
			return true;
		}
	}
	return false;
}


//## Validate Form Elements ##
function lastCheck(formObj){
	var maxFormElements=formObj.elements.length;
	var fieldList="";
	var missinginfo="";
	for (y = 0; y < tempFieldArray.length; y++){
		for (z = 0; z < maxFormElements; z++){
			if (formObj.elements[z].name==tempFieldArray[y]){
				fieldList=(fieldList+tempFieldArray[y]+",");
			}
		}
	}

	var strLength = fieldList.length;
	var finalFieldArray=(fieldList.substring(0, (strLength) - 1)).split(",");
	var tempValue="";
	var tmpErrMsg="";
	var tempName="";
	
	//--> Mandatory field validation
	for (x = 0; x < finalFieldArray.length; x++){
		for (y = 0; y < tempFieldArray.length; y++){
			if (finalFieldArray[x]==tempFieldArray[y]){
				tempValue=formObj.elements[finalFieldArray[x]].value;
				tempName=formObj.elements[finalFieldArray[x]].name;
				//--> IF IE, RESET THE FIELD BACKGROUND COLOUR
				if (ie4){formObj.elements[finalFieldArray[x]].style.backgroundColor = "#FFFFFF";}
				//State, Date_Birth Drop-down lists
				if((tempValue=="")||(tempValue==false)||(tempValue==null)){
						alert("Please enter a value for this field.");
						setFieldFocus(formObj.elements[finalFieldArray[x]]);
						return false;
				}else{
					//--> EMAIL ADDRESS
					if(tempName=="email"){
						if(checkMail(tempValue)==false){
							alert("Your Email address appears to be invalid.\nPlease try again.");
							setFieldFocus(formObj.elements[finalFieldArray[x]]);
							return false;
						}
					}
					//--> PHONE NUMBERS (any "Phone" field!)
					else if (tempName.substr(0,5) == "phone"){
						if((validateForPhoneNumber(formObj.elements[finalFieldArray[x]]))!==true){
							setFieldFocus(formObj.elements[finalFieldArray[x]]);
							return false;
						}
					}
				}
			}
		tempValue="";
		}
	}
	return true;
}


//## Number Validation ##
function validateForNumber(field) {
	var valid = "0123456789.";
	var ok = "yes";
	var temp;
	for (var i=0; i<field.value.length; i++) {
		temp = "" + field.value.substring(i, i+1);
		if (valid.indexOf(temp) == "-1") ok = "no";
	}
	if (ok == "no") {alert("Invalid entry!  Please enter a valid number.");}
	else{return true;}
	return false;
}

//## Number Validation ##
function validateForPhoneNumber(field) {
	var valid = "- ().0123456789";
	var ok = "yes";
	var temp;
	for (var i=0; i<field.value.length; i++) {
		temp = "" + field.value.substring(i, i+1);
		if (valid.indexOf(temp) == "-1") ok = "no";
	}
	if (ok == "no") {alert("Invalid entry!  Please enter a valid phone number.");}
	else{return true;}
	return false;
}

//## Email Validation ##
function checkMail(emailStr)
{
	var filter = /^[_A-Za-z0-9]+([_\.-][A-Za-z0-9]+)*@[A-Za-z0-9]+([_\.-][A-Za-z0-9]+)*\.([A-Za-z]){2,4}$/i;
	if(filter.test(emailStr)){return true;}
	return false;
}

//## Set Field Focus On Error ##
function setFieldFocus(myFieldObj){
	myFieldObj.focus();
	if((myFieldObj.type=="text")||(myFieldObj.type=="textarea")||(myFieldObj.type=="password")){myFieldObj.select();}
	if(ie4){myFieldObj.style.backgroundColor="#FFFF99";}
	return false;
}



var totalTracker = 0;

function recalcTotals(objInput,myFrmObj){
	var maxFormElements=myFrmObj.elements.length;
	totalTracker=0;
	//--> Update all the individual total fields
	for (z = 0; z < maxFormElements; z++){
		if ((myFrmObj.elements[z].name.substr(0,6) == "total_")||(myFrmObj.elements[z].name.substr(0,9) == "quantity_")){
				if((myFrmObj.elements[z].value=="")||(objInput.value.length < 1)){
					myFrmObj.elements[z].value=0;
				}
				if(myFrmObj.elements[z].value.length > 0){
				//Update the value of the toal fields
					document.videosalesform["total_"+objInput.name.substr(9,objInput.name.length)].value = (objInput.value * Math.round(document.videosalesform["qPrice_"+objInput.name.substr(9,objInput.name.length)].value*100)/100);
					if (myFrmObj.elements[z].name.substr(0,6) == "total_"){
						totalTracker = totalTracker + Math.round(myFrmObj.elements[z].value*100)/100;
					}
				}
		}
	}
	//--> Update the Grand Total Field
	document.videosalesform.total.value = Math.round(totalTracker*100)/100;
	document.videosalesform.totalFinal.value = Math.round(totalTracker*100)/100;
}

function orderCalculator(objInput,myFrmObj){
	// Check the selected field to see if it's a quantity field..</>
	if(objInput.name.substr(0,9) == "quantity_"){
		if (ie4){objInput.style.backgroundColor = "#FFFFFF";}
		if((objInput.value=="")||(objInput.value.length < 1)){
			objInput.value=0;
		}
		if(objInput.value.length > 0){
			if(validateForNumber(objInput)!==true){
				setFieldFocus(objInput);
			}else{
				//update the totals
				recalcTotals(objInput,myFrmObj);
			}
		}else{
			objInput.value=0;
			recalcTotals(objInput,myFrmObj);
		}
	}
}
