/*
 * Title: Contact Validation AJAX
 * filename: validation.js
 *
 * Author: Brian Gebel
 * Date: 03/24/2010
 * Version: 1.1
 */
	
/*------------------------------------------------
	Validate Information Function
------------------------------------------------*/
	function validateForm(dataSource, divID) {
		
		// Error Variables
		var count = 0;
		var obj = document.getElementById(divID); // Gets targetDiv
		var tempTXT = "\n<p class='redtxt'>Errors!</p>\n"; // Holding String for XML elements
		
		//Input Variables
		var username = document.getElementById("username").value; // Gets username value
		var email = document.getElementById("email").value; // Gets email value
		var message = document.getElementById("message").value; // Gets message value
		var security = document.getElementById("security_q").value; // Gets security_q value
		
		if(username == "") {
			tempTXT += "<p class='redtxt'>Missing Required Field Name</p>\n";
			count = 1;	
		}
		if(email == "") {
			tempTXT += "<p class='redtxt'>Missing Required Field Email</p>\n";
			count = 1;	
		}
		if(message == "") {
			tempTXT += "<p class='redtxt'>Missing Required Field Message</p>\n";
			count = 1;	
		}
		if(security != 3) {
			tempTXT += "<p class='redtxt'>Invalid Security Code</p>\n";
			count = 1;	
		}
		
		// Error Print
		if (count == 1) { // If Error
			obj.innerHTML = tempTXT;
		} else { // Else send message
			
			// Clears any errors that were listed
			tempTXT = "";
			obj.innerHTML = tempTXT;
			
			// Calls Function to make HTTP request
			MakeRequest(dataSource, divID, username, email, message); 
		}
		return false;
	}
	
/*------------------------------------------------
	Makes Request Function
------------------------------------------------*/
	function MakeRequest(dataSource, divID, username, email, message) {
		
		// Instance Variables
		var params = "validationtype=ajax" +"&username=" + username + "&email=" + email + "&message=" + message;
  		var XMLHttpRequestObject = getXMLHttp();
		
		if (XMLHttpRequestObject) {
			
			// Opens dataSource and recives data
			XMLHttpRequestObject.open("POST", dataSource);
			
			// Post Headers
			XMLHttpRequestObject.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
			XMLHttpRequestObject.setRequestHeader("Content-length", params.length);
			XMLHttpRequestObject.setRequestHeader("Connection", "close");
			
			XMLHttpRequestObject.onreadystatechange = function() {
				if(XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
					HandleResponse(XMLHttpRequestObject.responseText, divID);
				}
			}
			XMLHttpRequestObject.send(params);
		}
	}

/*------------------------------------------------
	XML Http Request Function
------------------------------------------------*/
	function getXMLHttp() {
		
		// Instance Variables
		var XMLHttpRequestObject = false;
		
		// XML Request Based on Browser
		if (window.XMLHttpRequest) {
			XMLHttpRequestObject = new XMLHttpRequest();
		} else if (window.ActiveXObject) {
			XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
		}
		return XMLHttpRequestObject;
	}

/*------------------------------------------------
	Handles Response Function
------------------------------------------------*/
	function HandleResponse(response, divID) {
 		document.getElementById(divID).innerHTML = response;
	}
	
/*------------------------------------------------
	THE END
------------------------------------------------*/
