var InputFields = new Array("FullName", "Company", "Email", "Phone", "ProjectDescription");


function SubmitForm() {
	var errors = CheckFields();
	if (errors==0) {
	    HideElement("QueryForm");
	    HideElement("ErrorProcessing");
	    ShowElement("QuoteProcessing");
	    HideElement("QuoteSubmitted");
	    setTimeout("ProcessQuery();", 1000);
	} else {
	    ShowElement("QueryForm");
	}
}

var XmlHttpQuery;
function ProcessQuery() {
	try {
		var XmlRegisterDocument = new XmlDocument("RequestQuote");
		XmlRegisterDocument.AddData("FullName", GetRef("FullName").value);
		XmlRegisterDocument.AddData("Company", GetRef("Company").value);
		//XmlRegisterDocument.AddData("Email", GetRef("Email").value);
				XmlRegisterDocument.AddData("Email", GetRef("Email").value);
		XmlRegisterDocument.AddData("Phone", GetRef("Phone").value);
		XmlRegisterDocument.AddData("ProjectDescription", GetRef("ProjectDescription").value);
		XmlRegisterDocument.AddData("Marketting", GetRef("Marketting").value);
		
		var date = new Date();
		XmlHttpQuery = CreateXmlHttpRequest();
		XmlHttpQuery.open("POST", "Server/Processes.aspx?date="+date.toUTCString(), true);
		XmlHttpQuery.onreadystatechange = function() { 
			if  (XmlHttpQuery.readyState==4) {
				if (XmlHttpQuery.responseText.trim()=="OK") {
	                HideElement("QueryForm");
	                HideElement("ErrorProcessing");
	                HideElement("QuoteProcessing");
	                ShowElement("QuoteSubmitted");
				} else {
	                ShowElement("QueryForm");
	                ShowElement("ErrorProcessing");
	                HideElement("QuoteProcessing");
	                HideElement("QuoteSubmitted");
				}
			}
		}
		XmlHttpQuery.setRequestHeader("Content-Type", "text/xml");
		XmlHttpQuery.send(XmlRegisterDocument.Document);
	} catch (e) {
		alert (e + " " + e.description);
	}
}

function CheckFields() {
	var errorCount = 0;
	var emailError = false;
	try {
		var count = InputFields.length;
		var i;
		for (i=0; i<count; i++) {
			var inputField = GetRef(InputFields[i]);
			var inputFieldContainer = GetRef(InputFields[i]+"Data");
			var error = inputField.value.trim() == "";
			if (error) {
				errorCount++;
				inputFieldContainer.className = "Data Error";
			} else {
				inputFieldContainer.className = "Data";
				if (InputFields[i]=="Email") {
					if (inputField.value.trim().length>0) { // match(/[A-Za-z0-9_\.]+\@[A-Za-z0-9_\.]+\.[A-Za-z0-9_\.]+/)) {
						inputFieldContainer.className = "Data";
						GetRef("EMailErrorMessage").className = "Invisible";
					} else {
						inputFieldContainer.className = "Data Error";
						GetRef("EMailErrorMessage").className = "Visible";
						emailError = true;
					}
				}				
			}
		}
		
		var ErrorMessage = GetRef("ErrorMessage");
		if (errorCount>0) {
			ErrorMessage.className = "Error";
		} else {
			ErrorMessage.className = "Default";
		}
		
		if (emailError) { errorCount++; }
		
	} catch (e) {
		errorCount++;
	}
	return errorCount;
}