					function signUp() {
						var dsi = document.getElementById("div_si");
						var dsi_text = document.getElementById("div_si_text");
						dsi.style.display = "none";
						dsi_text.style.display = "none";
						dsi_text.innerHTML = "";

						var dsu = document.getElementById("div_su");
						var dsu_text = document.getElementById("div_su_text");
						dsu.style.display = "inline";
						dsu_text.innerHTML = "";
						dsu_text.style.display = "inline";
					}

					function check() {
						var valid = true;

						var frm = document.getElementById("frm_su");

						//blank
						for (var lv=0; lv<frm.elements.length; lv++) {
							if ((frm.elements[lv].name != "frm_su_mname") && (frm.elements[lv].name != "frm_su_phone")) {
								if (frm.elements[lv].value == "") {
									valid = false;
									alert("The required fields can not be blank.");
									frm.elements[lv].focus();
									break;
								}
							}
						}

						//password match
						if (valid) {
							if (document.getElementById("frm_su_password").value != document.getElementById("frm_su_confirm_password").value) {
								valid = false;
								alert("The password fields do not match.");
								document.getElementById("frm_su_password").focus();
							}
						}

						//email match
						if (valid) {
							if (document.getElementById("frm_su_email").value != document.getElementById("frm_su_confirm_email").value) {
								valid = false;
								alert("The email fields do not match.");
								document.getElementById("frm_su_email").focus();
							}
						}


						if (valid) {
							sendRequestSignUp();
							return false;
						}
			
						return valid;
					}

					function check_si() {
						var valid = true;

						var frm = document.getElementById("frm_si");

						//blank
						for (var lv=0; lv<frm.elements.length; lv++) {
							if (frm.elements[lv].value == "") {
								valid = false;
								alert("The username and password can not be blank.");
								frm.elements[lv].focus();
								break;
							}
						}

						if (valid) {
							sendRequestSignIn();
							return false;
						}
			
						return valid;
					}

					function getRequestBodySignUp(oForm) {
						var aParams = new Array();

						for (var i=0 ; i < oForm.elements.length; i++) {
							var sParam = encodeURIComponent(oForm.elements[i].name);
							sParam += "=";
							sParam += encodeURIComponent(oForm.elements[i].value);
							aParams.push(sParam);
						}

						return aParams.join("&");
					}

					function sendRequestSignUp() {
						var div_su = document.getElementById("div_su");
						div_su.style.display = "none";
						
						var div_su_text = document.getElementById("div_su_text");
						div_su_text.style.display = "inline";
						
						div_su_text.innerHTML = "Validating....";

						var oForm = document.getElementById("frm_su");
						var sBody = getRequestBodySignUp(oForm);

						//alert(sBody);

						var oXmlHttp = zXmlHttp.createRequest();
						oXmlHttp.open("post", oForm.action, true);
						oXmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

						oXmlHttp.onreadystatechange = function () {
							if (oXmlHttp.readyState == 4) {
								if (oXmlHttp.status == 200) {
									//alert(oXmlHttp.responseText);
									saveResultSignUp(oXmlHttp.responseText);
								} else {
									saveResultSignUp("An error occurred: "+ oXmlHttp.statusText);
									div_su.style.display = "inline";
								}
							}
						};
						oXmlHttp.send(sBody);
					}

					function saveResultSignUp(validationText) {
						var div_su = document.getElementById("div_su");
						div_su.style.display = "none";
						
						var div_su_text = document.getElementById("div_su_text");
						div_su_text.innerHTML = "";
						div_su_text.style.display = "inline";
						
						
						if (validationText == 1) {
							div_su_text.innerHTML = "Account created. Please <a class='blue' href='cust-login.php'>click here</a> to log-in.";
						}
						else {
							div_su_text.innerHTML = validationText;
							div_su.style.display = "inline";
						}
					}

					function sendRequestSignIn() {
						var div_si = document.getElementById("div_si");
						div_si.style.display = "none";
						
						var div_si_text = document.getElementById("div_si_text");
						div_si_text.style.display = "inline";
						
						div_si_text.innerHTML = "Authenticating....";

						var oForm = document.getElementById("frm_si");
						var sBody = getRequestBodySignUp(oForm);

						//alert(sBody);

						var oXmlHttp = zXmlHttp.createRequest();
						oXmlHttp.open("post", oForm.action, true);
						oXmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

						oXmlHttp.onreadystatechange = function () {
							if (oXmlHttp.readyState == 4) {
								if (oXmlHttp.status == 200) {
									//alert(oXmlHttp.responseText);
									saveResultSignIn(oXmlHttp.responseText);
								} else {
									saveResultSignIn("An error occurred: "+ oXmlHttp.statusText);
									div_si.style.display = "inline";
								}
							}
						};
						oXmlHttp.send(sBody);
					}

					function saveResultSignIn(validationText) {
						//alert(validationText);
						var div_si = document.getElementById("div_si");
						div_si.style.display = "none";
						
						var div_si_text = document.getElementById("div_si_text");
						div_si_text.innerHTML = "";
						div_si_text.style.display = "inline";
						
						
						if (validationText == 1) {
							div_si_text.innerHTML = "Loading...";
							location.href='htt_estimator.php';
						}
						else {
							div_si_text.innerHTML = validationText;
							div_si.style.display = "inline";
						}
					}