
// validation routine for forms

function ValidateForm(objForm){
	var sAlertMessage="You must fill in the following boxes.\n\n";
	
	switch (objForm.name) {
		case "frmReview":
			if (objForm.title.value==""){
			sAlertMessage+="Title\n";
			}
			if (objForm.review.value==""){
			sAlertMessage+="Review\n";
			}
			break;
		case "frmOrderForm":
			if (objForm.FirstName.value==""){
			sAlertMessage+="First Name\n";
			}
			if (objForm.Surname.value==""){
			sAlertMessage+="Surname\n";
			}
			if (objForm.Address1.value==""){
			sAlertMessage+="Address1\n";
			}
			if (objForm.TownCity.value==""){
			sAlertMessage+="Town City\n";
			}
			if (objForm.PostCodeZipCode.value==""){
			sAlertMessage+="Post/Zip Code\n";
			}
			if (objForm.Country.value==""){
			sAlertMessage+="Country\n";
			}
			if (objForm.Email.value!=""&&checkEmail(objForm.Email.value, false)==false){
			sAlertMessage+="Valid Email Address\n";
			}
			if (objForm.CardType.value==""){
			sAlertMessage+="Card Type\n";
			}
			if (objForm.CardHolderName.value==""){
			sAlertMessage+="Card Holder Name\n";
			}
			if (objForm.CardNumber.value==""||IsNumeric(objForm.SecurityCode.value)==false||objForm.CardNumber.value.length!=16){
			sAlertMessage+="Valid Card Number\n";
			}
			if (objForm.SecurityCode.value==""&&objForm.CardType.value!="Switch"&&objForm.CardType.value!=""||IsNumeric(objForm.SecurityCode.value)==false){
			sAlertMessage+="Valid Security Code\n";
			}
			if (objForm.ExpiryDateMM.value==""||IsNumeric(objForm.ExpiryDateMM.value)==false){
			sAlertMessage+="Valid Expiry Month\n";
			}
			if (objForm.ExpiryDateYY.value==""||IsNumeric(objForm.ExpiryDateYY.value)==false){
			sAlertMessage+="Valid Expiry Year\n";
			}
			if (objForm.IssueNumber.value==""&&objForm.CardType.value=="Switch"&&IsNumeric(objForm.IssueNumber.value)==false){
			sAlertMessage+="Issue Number\n";
			}
			if (objForm.LegalAge.checked==false&&sAlertMessage=="You must fill in the following boxes.\n\n"){
			alert("You have confirm that you are of legal age by checking the 'Legal Age' checkbox before you are allowed to proceed");
			return false;
			}
			break;
		case "frmCheckout":
			if (objForm.OrderComplete.value=="false"){
				alert("Please make sure that a DVD format is selected were applicable.");
				return false;
			}
			break;
		default:
			alert("default");
			break;
	}
	if (sAlertMessage=="You must fill in the following boxes.\n\n"){
		sAlertMessage="";
	}
	if (sAlertMessage.length>>0){
		alert(sAlertMessage);
		return false;
	}
	else{
		return true;
	}
}


function checkEmail (strng, showalert) {
	var error="";
	if (strng == "") {
	   error = "You didn't enter an email address.\n";
	}

    var emailFilter=/^.+@.+\..{2,3}$/;
    if (!(emailFilter.test(strng))) { 
       error = "Please enter a valid email address.\n";
    }
    else {
		//test email for illegal characters
		var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/
		if (strng.match(illegalChars)) {
			error = "The email address contains illegal characters.\n";
		}
    }
    
    if (error!='') {
		if (showalert) {
			alert (error);
		}
    	return false;
    }
    else{
    	return true;
    } 
}

// password - between 6-8 chars, uppercase, lowercase, and numeral

function checkPassword (strng) {
	var error = "";
	if (strng == "") {
	   error = "You didn't enter a password.\n";
	}

    var illegalChars = /[\W_]/; // allow only letters and numbers
    
    if ((strng.length < 6) || (strng.length > 8)) {
		error = "The password is the wrong length.\n";
    }
	else if (illegalChars.test(strng)) {
		error = "The password contains illegal characters.\n";
    } 
    else if (!((strng.search(/(a-z)+/)) && (strng.search(/(A-Z)+/)) && (strng.search(/(0-9)+/)))) {
		error = "The password must contain at least one uppercase letter, one lowercase letter, and one numeral.\n";
    }  
	return error;    
}    

function confirmDelete(string) {
	return confirm("Are you sure that you wish to delete the " + string + "?");
}

// checks each character in the supplied variable to see if it a number
function IsNumeric(sText) {
	var ValidChars = "0123456789.";
	var IsNumber=true;
	var Char;
	
	for (i = 0; i < sText.length && IsNumber == true; i++) { 
		Char = sText.charAt(i); 
		if (ValidChars.indexOf(Char) == -1) {
			IsNumber = false;
		}
	}
	return IsNumber;
}

function confirmDVDFormat(objForm) {
	if (objForm.value==""){
		alert("Please select one of the DVD formats");
		return false;
	}
	return true;
}