// Main email function check
	function emailexists() {
		var email = document.getElementById("email1").value;
		var url = "ajax/getdata.cfm?checkemailexists=yes&"
			+ "email=" + email;
		createXMLHttpRequest();
		xmlHttp.onreadystatechange = handleemailChange;
		xmlHttp.open("GET", url, true);
		xmlHttp.send(null);
	}

// Email check state change
	function handleemailChange() {
		if(xmlHttp.readyState == 4) {
			if(xmlHttp.status == 200) {
				sendemailresult();
			}
		}
	}

// Email check result
	function sendemailresult() {
			var results1 = xmlHttp.responseXML.getElementsByTagName("customerid");
			var email = document.getElementById("email1").value;
			var mdiv = document.getElementById("emailmsg");
			verifyemail();
			if (results1.length > 1) {
				mdiv.className = "badvalue";
				 mdiv.innerHTML = " Account already exists";
			} else {
				mdiv.className = "goodvalue";
			 	mdiv.innerHTML = " Email valid";
			}
	}

// Create xml object
	var xmlHttp;
	function createXMLHttpRequest() {
		if (window.ActiveXObject) {
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
		else if (window.XMLHttpRequest) {
			xmlHttp = new XMLHttpRequest();
		}
	}

// Main zip code check
	function refreshModelList() {
		var zip = document.getElementById("zip").value;
		var country = (document.registerform.country.value.replace(/^\W+/,'')).replace(/\W+$/,'');
		var mdiv = document.getElementById("zipmsg");
		var mdiv1 = document.getElementById("statemsg");
		var mdiv2 = document.getElementById("suburbmsg");
		if(zip == "") {
			clearsuburbList();
			setnoresult();
			document.registerform.state.readOnly = false;
			if (country == "AUSTRALIA"){
				toggleField('showone',false);toggleField('showorders',true);
			} else {
				toggleField('showone',true); toggleField('showorders',false);
			}
			return;
		}
		if (country == "AUSTRALIA") 
			{
				document.registerform.intsuburb.value = "";
				var url = "ajax/getdata.cfm?register=yes&"
				+ createQueryString(zip) + "&ts=" + new Date().getTime();
				createXMLHttpRequest();
				xmlHttp.onreadystatechange = handleStateChange;
				xmlHttp.open("GET", url, true);
				xmlHttp.send(null);
			} else {
				
				noentry('Invalid Zip', 'zip', 'zipmsg', 1);
				 mdiv1.className = "blankvalue";
				 mdiv1.innerHTML = "";
				 mdiv2.className = "blankvalue";
				 mdiv2.innerHTML = "";
				toggleField('showone',true); toggleField('showorders',false);
				document.registerform.state.readOnly = false;
				clearsuburbList();
				return;
			}
	}

// zip create query for xml data
	function createQueryString(zip) {
		var queryString = "zip=" + zip;
		return queryString;
	}
	
// zip check state change
function handleStateChange() {
	if(xmlHttp.readyState == 4) {
		if(xmlHttp.status == 200) {
			updatesuburbList();
		}
	}
}

// zip update drop menu based on xml results
	function updatesuburbList() {
		clearsuburbList();
		var suburb = document.getElementById("suburb");
		var results = xmlHttp.responseXML.getElementsByTagName("thesuburb");
		var state = xmlHttp.responseXML.getElementsByTagName("state");
		var option = null;
		var mdiv = document.getElementById("zipmsg");
		var mdiv1 = document.getElementById("statemsg");
		var mdiv2 = document.getElementById("suburbmsg");
		if (results.length > 1 ) {
			toggleField('showone',false);toggleField('showorders',true);
			mdiv.className = "goodvalue";
			mdiv.innerHTML = " Post code Valid";
			mdiv1.className = "goodvalue";
			mdiv1.innerHTML = " State Valid";
			for(var i = 0; i < results.length; i++) {
				opt = document.createElement("option");
				
				opt_txt = document.createTextNode(results[i].firstChild.nodeValue);
				opt.appendChild(opt_txt);
				opt.setAttribute("value", results[i].firstChild.nodeValue);
				
				suburb.appendChild(opt);
			}
			document.registerform.state.readOnly = true;
			var state = (state[0].firstChild.nodeValue.replace(/^\W+/,'')).replace(/\W+$/,'');
			document.registerform.state.value = state;
		} else {
			 mdiv.className = "badvalue";
			 mdiv.innerHTML = " Not found - Enter manually";
			 mdiv1.className = "blankvalue";
			 mdiv1.innerHTML = "";
			 mdiv2.className = "blankvalue";
			 mdiv2.innerHTML = "";
			setnoresult();
			}
	}

	// clear zip drop down results
		function clearsuburbList() {
			var suburb = document.getElementById("suburb");
			while(suburb.childNodes.length > 0) {
				suburb.removeChild(suburb.childNodes[0]);
			}
	}

// validate change password form
function checkpass(form){
		
	 var oldpassword = document.getElementById("oldpassword");
	 var password1 = document.getElementById("password1");
	 var passwordrepeat = document.getElementById("passwordrepeat");
	 err=''
		if (password1.value !== passwordrepeat.value) {
			err="Please check your new Password matches: " +'\n'
		 }
		if (password1.value.length < 6){
			err="New Password must be at least 6 characters long: " +'\n'
		 }
		if (oldpassword.value.length < 1){
			err="Please enter old Password: " +'\n'
		 }
		if (err!=''){
		  alert(err)
		  return false;
		 }
	
		 return true
}
		
		


// zip change drop menu to txt box on no result
	function setnoresult() {
			toggleField('showone',true); toggleField('showorders',false);
			document.registerform.state.readOnly = false;
			document.registerform.state.value = '';
			clearsuburbList();
			return;
	}


// check various txt boxes for no input
	function noentry(message, textname, divthing, thelength) {
			var mdiv = document.getElementById(divthing);
			var textmessage = document.getElementById(textname);
		   // set the style on the div to invalid
		if (textmessage.value.length > thelength) {
			  mdiv.className = "goodvalue";
			   mdiv.innerHTML = " Appears Valid";
		   } else {
			   mdiv.className = "badvalue";
			   mdiv.innerHTML = message + " Invalid";
		   }
	}


// check phone number is numeric
	function IsNumeric(sText)
	{
	   var mdiv = document.getElementById("phonemsg");
	   var textmessage = document.getElementById("phone");
		  if(!ValidateNo(textmessage.value,"1234567890+- "))
			 {
			   mdiv.className = "badvalue";
			   mdiv.innerHTML = " Please only use numerical values";
			  } else if (textmessage.value.length < 10) {
				   mdiv.className = "badvalue";
				   mdiv.innerHTML = " Number must be at least 10 digits";
			 } else {
				 	mdiv.className = "goodvalue";
			   		mdiv.innerHTML = " Appears Valid";
			 }
	}
   
// check through string for intergers for phone number function   
	function ValidateNo(NumStr, String)
	{
		for(var Idx=0; Idx<NumStr.length; Idx++)
		{
			var Char = NumStr.charAt(Idx);
			var Match = false;
			for(var Idx1=0; Idx1<String.length; Idx1++)
			{
				if(Char == String.charAt (Idx1))
					Match = true;
			}
			if (!Match)
				return false;
		}
		return true;
	} 

// check password is valid and matches repeat password
	function checkpassword() {
			noentry('Not long enough - Password', 'password1', 'passwordmsg', 5);
			var mdiv = document.getElementById("passwordrepeatmsg");
			var password = document.getElementById("password1");
			var passwordrepeat = document.getElementById("passwordrepeat");
			if (password.value == passwordrepeat.value) {
			   mdiv.className = "goodvalue";
			   mdiv.innerHTML = " Password Matches";
		  	} else {
			   mdiv.className = "badvalue";
			   mdiv.innerHTML = " Passwords do not match";
		   }
	}

// check suburb option is select other than default
	function checkDropdown() {
		var mdiv = document.getElementById("suburbmsg");
		var textmessage = document.getElementById("suburb");
		if (textmessage.value == "Please Select") {
			mdiv.className = "badvalue";
			   mdiv.innerHTML = " You didn't choose an option";
		} else {
			   mdiv.className = "goodvalue";
			   mdiv.innerHTML = " Appears Valid";
		}    
	}    

// check email is valid address
	function checkemail (message, textname, divthing) {
		var mdiv = document.getElementById(divthing);
		var emailaddress = document.getElementById(textname);
			var error="";
			var invalid = " "; // Invalid character is a space
			var minLength = 5; // Minimum length
			var at="@"
			var dot="."
			var lat=emailaddress.value.indexOf(at)
			var lstr=emailaddress.value.length
			var ldot=emailaddress.value.indexOf(dot)
					<!--- Validate Email address !--->
			if (emailaddress.value.length < 1) {
				mdiv.className = "badvalue";
				mdiv.innerHTML = message + " Invalid";
			} else if (emailaddress.value.indexOf(at)==-1) {
				mdiv.className = "badvalue";
				mdiv.innerHTML = message + " Invalid - Must contain '@'";
			} else if (emailaddress.value.indexOf(at)==-1 || emailaddress.value.indexOf(at)==0 || emailaddress.value.indexOf(at)==lstr){
				mdiv.className = "badvalue";
				mdiv.innerHTML = message + " Invalid - Check address";
			} else if (emailaddress.value.indexOf(dot)==-1 || emailaddress.value.indexOf(dot)==0 || emailaddress.value.indexOf(dot)==lstr-1){
				mdiv.className = "badvalue";
				mdiv.innerHTML = message + " Invalid - Check address";
			} else if (emailaddress.value.indexOf(at,(lat+1))!=-1){
				mdiv.className = "badvalue";
				mdiv.innerHTML = message + " Invalid - Check address";
			} else if (emailaddress.value.substring(lat-1,lat)==dot || emailaddress.value.substring(lat+1,lat+2)==dot){
				mdiv.className = "badvalue";
				mdiv.innerHTML = message + " Invalid - Check address";
			} else if  (emailaddress.value.indexOf(dot,(lat+2))==-1){
				mdiv.className = "badvalue";
				mdiv.innerHTML = message + " Invalid";
			} else if  (emailaddress.value.indexOf(" ")!=-1){
				mdiv.className = "badvalue";
				mdiv.innerHTML = message + " Invalid - Spaces not allowed";
			} else {
				emailexists();
		    }
	}
	
//verify email matches
function verifyemail (message, textname, divthing) {
			var mdiv = document.getElementById("emailrepeatmsg");
			var email = document.getElementById("email1");
			var emailrepeat = document.getElementById("emailrepeat");
			if (email.value == emailrepeat.value) {
			   mdiv.className = "goodvalue";
			   mdiv.innerHTML = " Email Matches";
		  	} else {
			   mdiv.className = "badvalue";
			   mdiv.innerHTML = " Email does not match";
		   }
}





//  function to show / hide tables based on radio box 
if (document.getElementById) {standardDOMsupported = 1;}
if (document.all) {ieDOMsupported = 1;}
browserVersion = parseInt(navigator.appVersion);
if ((navigator.appName.indexOf('Netscape') != -1) && (browserVersion ==4)) {netscapeDOMsupported = 1;}


 function findDOM(objectId, wS) {
if (standardDOMsupported) return wS ? document.getElementById(objectId).style: document.getElementById(objectId);
if (ieDOMsupported) return wS ? document.all[objectId].style: document.all[objectId];
if (netscapeDOMsupported) return document.layers[objectId];
}
function toggleField(field,vis) {
var d = findDOM(field,1);
if (vis) {
  d.display = 'block';
} else {
  d.display = 'none';
}
}

function checkform (form) {
			var error="";

				   if (form.fname.value =="")
					{
						alert("Please provide your First Name:"); 
						form.fname.focus();
						return false;
					}
				   if (form.sname.value =="")
					{
						alert("Please provide your Surname:"); 
						form.sname.focus();
						return false;
					}
					
					
					if ((form.email) !== undefined) {
						var emailaddress=0;
						var invalid = " "; // Invalid character is a space
						emailaddress=form.email.value;
						<!--- Validate Email address !--->
						if (emailaddress == "") {
					   error = "You didn't enter an email address.\n";
					   alert(error);
					   form.email.focus();
					   return false
						}
						var at="@"
						var dot="."
						var lat=emailaddress.indexOf(at)
						var lstr=emailaddress.length
						var ldot=emailaddress.indexOf(dot)
						if (emailaddress.indexOf(at)==-1){
						   alert("Invalid E-mail Address");
							form.email.focus();
						   return false
						}
						if (emailaddress.indexOf(at)==-1 || emailaddress.indexOf(at)==0 || emailaddress.indexOf(at)==lstr){
						   alert("Invalid E-mail Address");
							form.email.focus();
						   return false
						}
						if (emailaddress.indexOf(dot)==-1 || emailaddress.indexOf(dot)==0 || emailaddress.indexOf(dot)==lstr){
							alert("Invalid E-mail Address");
							 form.email.focus();
							return false
						}
						 if (emailaddress.indexOf(at,(lat+1))!=-1){
							alert("Invalid E-mail Address");
							 form.email.focus();
							return false
						 }
						 if (emailaddress.substring(lat-1,lat)==dot || emailaddress.substring(lat+1,lat+2)==dot){
							alert("Invalid E-mail Address");
							 form.email.focus();
							return false
						 }
						 if (emailaddress.indexOf(dot,(lat+2))==-1){
							alert("Invalid E-mail Address");
							 form.email.focus();
							return false
						 }
						 if (emailaddress.indexOf(" ")!=-1){
							alert("Spaces not allowed in E-mail Address");
							 form.email.focus();
							return false
						 }
						if ((form.emailrepeat) !== undefined) {
						var e1 = form.email1.value;
						var e2 = form.emailrepeat.value;		
							
						if (e1 != e2) {
						error = "Please verify your Email address.\n";
							alert(error);
							form.emailrepeat.focus();
							return false
						}	
						}
					   if (form.phone.value =="")
						{
							alert("Please provide your Phone Number:"); 
							form.phone.focus();
							return false;
						}
					}
				   if (form.address1.value =="")
					{
						alert("Please provide your Address:"); 
						form.address1.focus();
						return false;
					}
					if (form.zip.value =="")
					{
						alert("Please provide your Post Code:"); 
						form.zip.focus();
						return false;
					}
					if (form.state.value =="")
					{
						alert("Please provide your State:"); 
						form.state.focus();
						return false;
					}
				   if (((form.suburb.value =="") && (form.intsuburb.value =="")) && (form.country.value == "AUSTRALIA") )
					{
						alert("Please provide your Suburb:"); 
						return false;
					}
					if(form.suburb.value == "Please Select"){
						alert("Please Select a Suburb:"); 
						form.suburb.focus();
						return false;
					} else if (form.suburb.value == "Please enter a post code"){
						alert("Please enter a valid Post Code:"); 
						form.suburb.focus();
						return false;
					} else if ((form.intsuburb.value =="") && (form.suburb.value == "Please Select") )
					{
						alert("Please enter a valid Post Code:"); 
						form.intsuburb.focus();
						return false;
					}
					if ((form.intsuburb.value =="") && (!(form.country.value == "AUSTRALIA")) )
						{
						alert("Please enter a Suburb/Town:"); 
						form.intsuburb.focus();
						return false;
						}

					if ((form.password1) !== undefined) {
						var minLength = 6; // Minimum length
						var pw1 = form.password1.value;
						var pw2 = form.passwordrepeat.value;
						if (pw1 == '' || pw2 == '') {
						error = "Please enter your password twice.\n";
							alert(error);
							form.password1.focus();
							return false
						}
						 
						 
							
						// check for minimum length
						if (form.password1.value.length < minLength) {
						error = 'Your password must be at least ' + minLength + ' characters long. Try again..\n';
							alert(error);
							form.password1.focus();
							return false
						}
						// check for spaces
						if (form.password1.value.indexOf(invalid) > -1) {
						error = "Sorry, spaces are not allowed in your password.\n";
						alert(error);
						form.password1.focus();
						return false
						}
						if (pw1 != pw2) {
						error = "You did not enter the same password twice. Please re-enter your password.\n";
						alert(error);
						form.password1.focus();
						return false
						}
						 return true
						
					}
}



function checkcontact (form) {


				   if (form.name.value =="")
					{
						alert("Please provide your Name:"); 
						form.name.focus();
						return false;
					}
					
				var emailFilter=/^.+@.+\..{2,3}$/;
				if (!(emailFilter.test(form.email.value))) { 
				   error = "Please enter a valid email address.\n";
				   alert(error);
				   form.email.focus();
			 	   return false
				}
			  
			//test email for illegal characters
				   var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/
					 if (form.email.value.match(illegalChars)) {
					  error = "The email address contains illegal characters.\n";
					  alert(error);
					  form.email.focus();
					  return false
				   }								
					
					if (form.comments.value =="")
					{
						alert("You must enter a message to send"); 
						form.comments.focus();
						return false;
					}
					
}



