var d = document;

function fRemoveNonNumeric(string){return string.replace(/[\D]+/g, "");}

function fCapitalize(string){
	var strChar, string = string.toLowerCase();
	for (var i = 1; i < string.length - 1; i++){
		strChar = string.charAt(i) + string.charAt(i+1);
		if(/(\s\w)|(-\w)/.test(strChar)){
			string = string.substring(0,i) + strChar.toUpperCase() + string.substring(i+2,string.length);
		}
		string = string.charAt(0).toUpperCase() + string.substring(1,string.length);
	}
	return string;
}


function fValidateEnquiry(){
	var errMessage = '';
	var n = d.getElementById('frmName').value;
	var p = d.getElementById('frmPhone').value;
	var p2 = d.getElementById('frmPhone2').value;
	var a = d.getElementById('frmAddress').value;
	var pc = d.getElementById('frmPostcode').value;
	var e = d.getElementById('frmEmail').value;
	var m = d.getElementById('frmMessage').value;
	var PhoneFilter = /^0\d{10}$/
	var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid
	var reg2 = /^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]*\.)+[a-zA-Z]{2,9})$/; // valid
	
	if(n == '')errMessage+='You must enter your Name.\n';
	if((!PhoneFilter.test(p)) && (!PhoneFilter.test(p2)) && (reg1.test(e) || !reg2.test(e))) {
		errMessage += 'You must enter a valid e-mail address or telephone number.\n';
	}
	if((!PhoneFilter.test(p)) && (p != '')) {
		errMessage += 'The daytime telephone number you have entered is invalid.\n';
	}
	if((!PhoneFilter.test(p2)) && (p2 != '')) {
		errMessage += 'The evening telephone number you have entered is invalid.\n';
	}
	if((reg1.test(e) || !reg2.test(e)) && (e != '')) {
		errMessage += 'The email address you have entered is invalid.\n';
	}
	if(m == '') errMessage += 'Please give us a brief message describing your enquiry.\n';
	
	if(errMessage != ''){
		alert('The information you have submitted is incomplete.\n\n' + errMessage + '\nPlease correct the errors above and re-submit the form.');
		return false;
	}else{
		return true;
	}
	
}


function fInitForm(){
	
	d.getElementById("frmName").onchange = function(){
		this.value = fCapitalize(this.value);
	}
	d.getElementById("frmPhone").onchange = function(){
		this.value = fRemoveNonNumeric(this.value);
	}
	d.getElementById("frmPhone2").onchange = function(){
		this.value = fRemoveNonNumeric(this.value);
	}
	d.getElementById("frmAddress").onchange = function(){
		this.value = fCapitalize(this.value);
	}
	d.getElementById("frmPostcode").onblur = function(){
		this.value = this.value.toUpperCase();
	}
	d.getElementById("frmEnquiry").onsubmit = function(){
		return fValidateEnquiry();
	}
}



window.onload = fInitForm;