//Set variables at start
var isIE;
var oForm;
function init(){
	if(navigator.appName == "Microsoft Internet Explorer"){
		isIE = true;
		oForm = contact_form
	}else{
		isIE = false;
		oForm = document.forms.contact_form
	}
	oForm.name.select();
	oForm.name.focus();
}

function nameChange(oItem){
	sTest = oItem.value;
	if(isAlpha(sTest) == true){
		return true;
	}else{
		alert("Please only enter letters.");
		//oItem.value = '';
		oItem.select();
		oItem.focus();
		return false;
	}
}

function phoneChange(oItem){
	sTest = oItem.value;
	if(isPhone(sTest) == true){
		return true;
	}else{
		alert("Please enter valid characters.");
		//oItem.value = '';
		oItem.select();
		oItem.focus();
		return false;
	}
}

function emailChange(oItem){
	if(checkemail(oItem.value) == true){
		return true;
	}else{
		//oItem.value = '';
		oItem.select();
		oItem.focus();
		return false;
	}
}

function messageChange(oItem) {
	sInput = oItem.value;
	if (isAlphaNum(sInput) == true) {
		return true;
	}else{
		alert('No special characters allowed.\nUse only letters, numbers, commas and fullstops.');
		oItem.select();
		oItem.focus();
		return false;
	}
}

function timeChange(oItem){
	sTest = oItem.value;
	if(isTime(sTest)){
		return true;
	}else{
		alert("Please enter a valid time.");
		oItem.value = '';
		oItem.select();
		oItem.focus();
		return false;
	}
}

function submitCheck(){
	var doSubmit = true;
	var obj2;
	var sAlert;
		if (checkemail(oForm.email.value) != true) {
		doSubmit = false;
		obj2 = oForm.email;
		sAlert = '';
	}
	if (isPhone(oForm.phone.value) != true) {
		doSubmit = false;
	}
	if (isAlpha(oForm.name.value) != true) {
		doSubmit = false;
		obj2 = oForm.name;
		sAlert = 'name';
	}
	if (isAlphaNum(oForm.message.value) != true) {
		doSubmit = false;
		obj2 = oForm.message;
		sAlert = 'message.\n(No special characters allowed)';
	}
	if (oForm.message.value.toString().length < 5) {
		doSubmit = false;
		obj2 = oForm.message;
		sAlert = 'message.\n(Up to 500 characters.)';
	}
	if (oForm.message.value.toString().length > 500) {
		oForm.message.value = oForm.message.value.slice(0, 500);
	}
	
	if (doSubmit) {
		return true;
	}else{
		if (sAlert.length > 0){
			alert('Please enter a valid ' + sAlert + '.');
		}
		obj2.select();
		obj2.focus();
		return false;
	}
}

function isAlpha(sTest){
	var sValidChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.,'&()- ";
	return testCharsAllowed(sTest, sValidChars);
}

function isAlphaNum(sTest){
	var sValidChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.,'&()- ";
	return testCharsAllowed(sTest, sValidChars);
}

function isPhone(sTest){
	var sValidChars = "0123456789.,()+- ";
	return testCharsAllowed(sTest, sValidChars);
}

function isTime(sTest){
	var sValidChars = "1234567890.:";
	var bTest = testCharsAllowed(sTest, sValidChars);
	if (bTest == false) {
		return false;
	}else{
		if (isValidTime(sTest)) {
			return true;
		} else {
			return false;
		}
	}
}

function testCharsAllowed(sTest, sChars){
	var arrTextChars = sTest.split("");
	
	if (sTest.length == 0){
		return false;
	}else{
		for (var i=0; i< arrTextChars.length; i++){
			if (sChars.indexOf(arrTextChars[i]) == -1){
				return false;
			}
		}
	}
	return true;
}

var invalidaddress=new Array()
invalidaddress[0]=""
//extend or shorten this list if neccessary

var testresults
function checkemail(sTest){
	var invalidcheck=0;
	var str=sTest;
	var filter=/^(\w+(?:\.\w+)*)@((?:\w+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	if (filter.test(str)){
		var tempstring=str.split("@");
		tempstring=tempstring[1].split(".");
		for (i=0;i<invalidaddress.length;i++){
			if (tempstring[0]==invalidaddress[i])
				invalidcheck=1;
		}
		if (invalidcheck!=1){
			testresults=true;
		}
		else{
			alert("Sorry we can't send email to that address!");
			testresults=false;
		}
	}
	else{
		alert("Please enter a valid email address!");
		testresults=false;
	}
	return (testresults);
}

function isValidTime(S) {
  return /^([01]?[0-9]|[2][0-3])([:\.][0-5][0-9])?$/.test(S)
}