/*
 * Title: Contact Validation AJAX
 * filename: validationQuote.js
 *
 * Author: Brian Gebel
 * Date: 05/10/2010
 * Version: 1.0
 */
	
/*------------------------------------------------
	Validate Information Function
------------------------------------------------*/
	function validateQuoteform(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 client_name = document.getElementById("client_name").value; // Gets username value
		var client_email = document.getElementById("client_email").value; // Gets email value
		var client_phone = document.getElementById("client_phone").value; // Gets phone value
		var travel_date = document.getElementById("travel_date").value; // Gets date value
		var num_pass = document.getElementById("num_pass").value; // Gets number of passengers value
		
		// Select Variables
		var event_type = document.getElementById("event_type").value; // Gets date value
		var pick_hr = document.getElementById("pick_hr").value; // Gets pickup hour value
		var pick_min = document.getElementById("pick_min").value; // Gets pickup min value
		var pick_day = document.getElementById("pick_day").value; // Gets pickup day value
		var vehicle = document.getElementById("vehicle").value; // Gets vehicle type
		
		// Textarea Variables
		var message = document.getElementById("message").value; // Gets message value
		
		// Security Question
		var security = document.getElementById("security_q").value; // Gets security_q value
		
		// Validate Form - Inputs
		if(client_name == "") {
			tempTXT += "<p class='redtxt'>Missing Required Field Client Name</p>\n";
			count = 1;	
		}
		if(client_email == "") {
			tempTXT += "<p class='redtxt'>Missing Required Field Client Email</p>\n";
			count = 1;	
		}
		if(client_phone == "") {
			tempTXT += "<p class='redtxt'>Missing Required Field Client Phone</p>\n";
			count = 1;	
		}
		if(travel_date == "") {
			tempTXT += "<p class='redtxt'>Missing Required Field Travel Date</p>\n";
			count = 1;	
		}
		if(num_pass == "") {
			tempTXT += "<p class='redtxt'>Missing Required Field Number of Passengers</p>\n";
			count = 1;	
		}
		
		// Validate Form - Select
		if(event_type == "") {
			tempTXT += "<p class='redtxt'>Missing Required Field Event Type</p>\n";
			count = 1;	
		}
		if(pick_hr == "" || pick_min == "" || pick_day == "") {
			tempTXT += "<p class='redtxt'>Missing Required Field Pick Up Time</p>\n";
			count = 1;	
		}
		if(vehicle == "") {
			tempTXT += "<p class='redtxt'>Missing Required Field Vehicle</p>\n";
			count = 1;	
		}
		
		// Validate Form - Textarea
		if(message == "") {
			tempTXT += "<p class='redtxt'>Missing Required Field Message</p>\n";
			count = 1;	
		}
		
		// Validate Form - Security
		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;
			
			// Places data in String
			var data = "validationtype=ajax" + "&client_name=" + client_name + "&client_email=" + client_email + "&client_phone=" + client_phone + "&travel_date=" + travel_date + "&num_pass=" + num_pass + "&event_type=" + event_type + "&pick_up=" + pick_hr + ":" + pick_min + pick_day + "&vehicle=" + vehicle +"&message=" + message + "&security=" + security;
			// Calls Function to make HTTP request
			MakeRequestQuote(dataSource, divID, data); 
		}
		return false;
	}
	
/*------------------------------------------------
	Makes Request Function
------------------------------------------------*/
	function MakeRequestQuote(dataSource, divID, data) {
		
		// Instance Variables
		var params = data;
  		var XMLHttpRequestObject = getXMLHttpQuote();
		
		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) {
					HandleResponseQuote(XMLHttpRequestObject.responseText, divID);
				}
			}
			XMLHttpRequestObject.send(params);
		}
	}

/*------------------------------------------------
	XML Http Request Function
------------------------------------------------*/
	function getXMLHttpQuote() {
		
		// 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 HandleResponseQuote(response, divID) {
 		document.getElementById(divID).innerHTML = response;
	}
	
/*------------------------------------------------
	THE END
------------------------------------------------*/
