// JavaScript Document
//<-------FORM VALIDATION AND CREDIT CARD VALIDATION SCRIPTS--------

function checkEmail(EmailtoCheck) {
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(EmailtoCheck)){
		return (true)
	}
	return (false)
}

function cleanString (str) {
	return str.replace(/[^\d]/g, "");
}

function checkPhone(string) {
		string = cleanString(string);
		if (string.length < 8){
			return false;
		}
		return true;
} 

function alltrim(str) {
	return str.replace(/^\s+|\s+$/g, '');
}

function cnvrt2Title(str) {
	return str.toLowerCase().replace(/\b[a-z]/g, cnvrt);

	function cnvrt() {
		return arguments[0].toUpperCase();
	}
}

function stripHTML(str){
	var re= /<\S[^><]*>/g
	return str.replace(re, "")
}

function fixString(str){
	str = alltrim(str);
	str = cnvrt2Title(str);
	str = stripHTML(str);
	return str;
}

function checkString(str){
	if (str.length > 2){
		return (true);
	}
	return (false);
}

function checkPostCode(PCtoCheck) {
	if (/^\d*$/.test(PCtoCheck) && (PCtoCheck.length > 2)){
		return (true)
	}
	return (false)
}

function ValidateForm(){
	var allok = true;
	var Email=document.getElementById('Email').value;
	var Phone=document.getElementById('Phone').value;
	var Mobile=document.getElementById('Mobile').value;
	var Firstname=document.getElementById('Firstname').value;
	var Surname=document.getElementById('Surname').value;
	var Address=document.getElementById('Address').value;
	var Suburb=document.getElementById('Suburb').value;
	var PostCode=document.getElementById('Postcode').value;
	Firstname = fixString(Firstname);
	Surname = fixString(Surname);
	Address = fixString(Address);
	Suburb = fixString(Suburb);
	
	var errorHTML = '';
	
	if (document.getElementById('Terms').checked == false) {
		errorHTML += 'Please accept the <Strong>terms and conditions</strong> before continuing.';
		allok = false;
	}
	if (checkEmail(Email)==false){
		errorHTML += '<br />'
		errorHTML += 'Your <Strong>email address</strong> is either empty, incomplete or typed incorrectly.';
		allok = false;
	}
	if (checkPhone(Phone)==false){
		errorHTML += '<br />'
		errorHTML += 'Your <Strong>phone number</strong> is either empty or incomplete.'
		allok = false;
	}
	if (checkString(Address)==false){
		errorHTML += '<br />'
		errorHTML += 'Your <Strong>address</strong> is either empty or incomplete.'
		allok = false;
	}
	if (checkString(Firstname)==false){
		errorHTML += '<br />'
		errorHTML += 'Your <Strong>firstname</strong> is either empty or incomplete.'
		allok = false;
	}
	if (checkString(Surname)==false){
		errorHTML += '<br />'
		errorHTML += 'Your <Strong>surname</strong> is either empty or incomplete.'
		allok = false;
	}
	if (checkString(Suburb)==false){
		errorHTML += '<br />'
		errorHTML += 'Your <Strong>suburb</strong> is either empty or incomplete.'
		allok = false;
	}

	if (checkPhone(Mobile)==false){
		errorHTML += '<br />'
		errorHTML += 'Your <Strong>mobile number</strong> is either empty or incomplete.'
		allok = false;
	}
	if (checkPostCode(PostCode)==false){
		errorHTML += '<br />'
		errorHTML += 'Your <Strong>postcode</strong> is incomplete or contains invalid characters.'
		allok = false;
	}

//credit card checks
		errorHTML += '<br /><br />'
		errorHTML += 'Please correct these issues, then try again.'

	if (allok == true) {
		document.frmContactUs.submit();
	} else {

		//alert (errorHTML);
		document.getElementById("Status").innerHTML = errorHTML;
	}

	return allok;
 }

