<!--


function CheckRequired(formField, fieldLabel)
{
	var result = true;
	
	if (formField.value == "" ) {
		if ( fieldLabel != "" ) {		
			alert(fieldLabel + ' is required.  Please try again.');
			formField.focus();
		}
		result = false;
	}
	
	return result;
}

function CheckEmail(email)
{
	var emailvalid = true;

    emailvalid = ValidateString(email.value,rexEmail);
/**	if ((email.value.indexOf("@")) <= 0){
		emailvalid = false
	}

	if ((email.value.indexOf(".")) <= 0){
		emailvalid = false
	}

	if ((email.value.indexOf(",")) > 0){
		emailvalid = false
	}

	if ((email.value.indexOf("@.")) > 0){
		emailvalid = false
	}

	if ((email.value.indexOf(" ")) > 0){
		emailvalid = false
	} **/

	if (!emailvalid)
	{
		alert("Invalid E-mail address, please try again.");
		email.focus();
	}
		
	return emailvalid;
}

function CheckEmailNoMsg(email)
{
	var emailvalid = true;

    emailvalid = ValidateString(email.value,rexEmail);
/**	if ((email.value.indexOf("@")) <= 0){
		emailvalid = false
	}

	if ((email.value.indexOf(".")) <= 0){
		emailvalid = false
	}

	if ((email.value.indexOf(",")) > 0){
		emailvalid = false
	}

	if ((email.value.indexOf("@.")) > 0){
		emailvalid = false
	}

	if ((email.value.indexOf(" ")) > 0){
		emailvalid = false
	} **/

	return emailvalid;
}
function CheckPostalCode(formField)
{	//validates Canadian postal codes
	var pcPattern = new RegExp("[A-Za-z][0-9][A-Za-z] ?[0-9][A-Za-z][0-9]");
	var pc = new String(formField.value);
	if (pcPattern.test(pc)) {
		pc = pc.toUpperCase();
		if (pc.charAt(3) != " ")
			pc = pc.substr(0,3) + " " + pc.substr(3,3);
		formField.value = pc;
	}
	else  {
		alert("Please check the format of the postal code");
		formField.focus();
		return false;
	}
	
	return true;
}

function CheckZipCode(formField){	//validates US zip codes
	var message = "";
	if (formField.value != "") {
		var zipPattern = new RegExp("^\\d{5}$");
		if (zipPattern.test(formField.value)) {
			return true;
		}
		else {
			message = "Please check the format of the zip code";
		}
	}
	if (message != "") {
		alert(message);
		return false;
	}
	else {
		return true;
	}
}

function validatePostcode(postcode) {	// validates UK post codes
	var pattern = new RegExp("^([A-Za-z]{1,2}\\d{1,2}|[A-Z]{1,2}\\d{1}[A-Za-z]{1})([ ]{0,1})([ ]*|\\d{1}|\\d{1}[A-Za-z]{2})$");
	return pattern.test(postcode.toUpperCase());
}    

function CheckMessage(field,length,message)
{
	var result = true;
	
	if ((field.value.length) > length){	
		alert(message);
		field.focus();
		result = false;
	}
	
	return result;
}
function CheckZipCodeNoMsg(formField){
	if (formField.value != "") {
		var zipPattern = new RegExp("^\\d{5}$");
		if (zipPattern.test(formField.value)) {
			return true;
		}
		else {
			return false;
		}
	}
	else {
		return true;
	}
}
function CheckPOBox(addrField, msgFlag) {
	var POBoxPattern = new RegExp("box\\s+\\d+");
	if ( POBoxPattern.test(addrField.value.toLowerCase()) ) {
		if ( msgFlag == true ) {
			alert("Please enter a street address");
			addrField.focus();
		}
		return false;
	}
	return true;
}

function CheckAllCreditCards(formField, fieldLabel) {
	var ccnexists = false;
	var newMessage = formField.value.replace(/-/g, ""); // remove dashes
	//alert (formField.value);
	ccnexists = ValidateString(newMessage,rexAllCreditCards);
	//alert(ccnexists);
	if (ccnexists) {
	  formField.value = formField.value.replace(/-/g, "");
	  formField.value = formField.value.replace(/\d{1,16}/g, ""); // remove personal info
	  alert("Sorry, but your " + fieldLabel + " appeared to contain sensitive personal information such as credit/debit card number, social insurance number or similar data. Accordingly, the information which was identified has been removed. We ask that you please re-check your " + fieldLabel + " and click submit again.");
	  // alert("Please check the " + fieldLabel + " (credit card numbers and/or social security numbers are not allowed).");
	  formField.focus();	
	}
	return ccnexists;
}

function CheckSSN(formField, fieldLabel) {
	var ssnexists = false;
	//formField.value = formField.value.replace(/-/g, ""); // remove dashes
	//alert (formField.value);
	ssnexists = ValidateString(formField.value,rexSSN);
	//alert(ssnexists);
	if (ssnexists) {
		formField.value = formField.value.replace(/-/g, "");	
	    formField.value = formField.value.replace(/\d{1,9}/g, ""); // remove personal info	
	    alert("Sorry, but your " + fieldLabel + " appeared to contain sensitive personal information such as credit/debit card number, social insurance number or similar data. Accordingly, the information which was identified has been removed. We ask that you please re-check your " + fieldLabel + " and click submit again.");
	  // alert("Please check the " + fieldLabel + " (credit card numbers and/or social security numbers are not allowed).");
	  formField.focus();	
	}
	return ssnexists;
}

function CheckSIN(formField, fieldLabel) {
	var sinexists = false;
	//formField.value = formField.value.replace(/-/g, ""); // remove dashes
	//alert (formField.value);
	sinexists = ValidateString(formField.value,rexSIN);
	//alert(ssnexists);
	if (sinexists) {
		formField.value = formField.value.replace(/-/g, "");	
	    formField.value = formField.value.replace(/\d{1,9}/g, ""); // remove personal info
	   alert("Sorry, but your " + fieldLabel + " appeared to contain sensitive personal information such as credit/debit card number, social insurance number or similar data. Accordingly, the information which was identified has been removed. We ask that you please re-check your " + fieldLabel + " and click submit again.");
	  //alert("Please check the " + fieldLabel + " (credit card numbers and/or social insurance numbers are not allowed).");
	  formField.focus();	
	}
	return sinexists;
}

// Regex validations
var rexEmail = "^[A-Za-z0-9._%+'-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$";
var rexZip = "^\\d{5}$";
var rexCAPostalCode = "^[A-Za-z][0-9][A-Za-z] {0,1}[0-9][A-Za-z][0-9]$";
var rexFilter = "^[^<>{};\\\\/&=:%#@]*$";
var rexFormattedPhone = "^\\d{3}-\\d{3}-\\d{4}$";
var rexVisa = "4[0-9]{12}(?:[0-9]{3})?";
var rexMatercard = "5[1-5][0-9]{14}";
var rexAmex = "3[47][0-9]{13}";
var rexDiners = "3(?:0[0-5]|[68][0-9])[0-9]{11}";
var rexDiscover = "6(?:011|5[0-9]{2})[0-9]{12}";
var rexJCB = "(?:2131|1800|35\d{3})\d{11}";
var rexAllCreditCards = "(?: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}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})";
var rexSSN = "\\d{3}[- ]?\\d{2}[- ]?\\d{4}"; // USA
var rexSIN = "\\d{3}[- ]?\\d{3}[- ]?\\d{3}"; // Canada

function ValidateString(toValidate, expr) {
    var validator = new RegExp(expr);
    return validator.test(toValidate);
}
function ValidatePhoneNumber(areaCode, exchange, ext) {
    var res = true;
    var phone = areaCode + exchange + ext;
    if ( phone != "" ) {
        res = ValidateString(phone,"^\\d{10}$");
    }
    return res;
}
//-->

