var MANDATORY = 1;

var EMAIL = 2;

var fields = new Array("name", "email", "phone", "details");

var labels = new Array("Name", "Email", "Phone", "Details");

var valids = new Array(MANDATORY, EMAIL);



function validateMandatory(form, fieldName) {

	if ("" == form.elements[fieldName].value) {

		setClassName(fieldName, "invalid");

		return false;

	}

	setClassName(fieldName, "valid");

	return true;

}



function validateEmail(form, fieldName) {	

	if (validateMandatory(form, fieldName)) {

		var value = form.elements[fieldName].value;

		var index1 = value.indexOf("@");

		var index2 = value.indexOf(".");

		if (index1 > 0 && index2 > 0 && index2 < value.length - 1) {

			setClassName(fieldName, "valid");

			return true;

		}

	}



	setClassName(fieldName, "invalid");

	return false;	

}



function setClassName(fieldName, className) {

	document.getElementById("td_" + fieldName).setAttribute("class", className);

	document.getElementById("td_" + fieldName).setAttribute("className", className);

}



function validateField(form, fieldName, validationType) {

	switch (validationType) {

		case MANDATORY:

			return validateMandatory(form, fieldName);

		case EMAIL:

			return validateEmail(form, fieldName);

		default:

			return true;

	}

}



function validate() {

	var valid = true;

	var form = validate.arguments[0];

	for (var i = 0; i < valids.length; i++) {

		var validField = validateField(form, fields[i], valids[i]);

		valid = valid && validField; 

	}

	

	return valid;

}



function contactUs(formId) {

    

	if (validate(document.getElementById(formId))) {

		//message("", msg);

		//reset(formId);

		var ajaxRequest = getAjaxRequest();

		if (ajaxRequest) {

			ajaxRequest.open("POST", "contact.php", true);

			var form = document.getElementById(formId);

			var params = "fields=" + encodeURIComponent(fields.join("|"));

			params += "&labels=" + encodeURIComponent(labels.join("|"));

			for (var i = 0; i < fields.length; i++) {

				params += "&" + fields[i] + "=" + encodeURIComponent(form.elements[fields[i]].value);

			}

			//Send the proper header information along with the request

			ajaxRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

			ajaxRequest.setRequestHeader("Content-length", params.length);

			ajaxRequest.setRequestHeader("Connection", "close");



			ajaxRequest.onreadystatechange = function() {//Call a function when the state changes.

				if(ajaxRequest.readyState == 4) {

					if (ajaxRequest.status == 200) {

						message("", ajaxRequest.responseText);

						reset(formId);

					} else {

						message("", "Sorry <b>" + 

								form.elements[fields[0]].value + 

								"</b>!<br />Please try to contact us again later!");					

					}

				}

			}

			ajaxRequest.send(params);

			

		}

	} else {

		message("", "Invalid entries!");

	}

}



function reset(formId) {

	document.getElementById(formId).reset();

}



function getAjaxRequest() { 

	var ajaxRequest;  // The variable that makes Ajax possible!

	

	try{

		// Opera 8.0+, Firefox, Safari

		ajaxRequest = new XMLHttpRequest();

	} catch (e){

		// Internet Explorer Browsers

		try{

			ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");

		} catch (e) {

			try{

				ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");

			} catch (e){

				// Something went wrong

			}

		}

	}

	

	return ajaxRequest;

}



function message(title, message) {

	var msg = "<h3><center>Curtis &amp; Associates, P.A.</center></h3><p>" + message + "<p/>";

	document.getElementById("msg_title").innerHTML = title;

	document.getElementById("msg_message").innerHTML = msg;

	document.getElementById("msg_window").style.display = "block";

	window.setTimeout("hideMessage();", 5000);

}



function hideMessage() {

	document.getElementById("msg_window").style.display = "none";

}




