var gq_http_request = false;

function gq_makePOSTRequest(url, parameters) {
  gq_http_request = false;
  if (window.XMLHttpRequest) { // Mozilla, Safari,...
	 gq_http_request = new XMLHttpRequest();
	 if (gq_http_request.overrideMimeType) {
		// set type accordingly to anticipated content type
		//gq_http_request.overrideMimeType('text/xml');
		gq_http_request.overrideMimeType('text/html');
	 }
  } else if (window.ActiveXObject) { // IE
	 try {
		gq_http_request = new ActiveXObject("Msxml2.XMLHTTP");
	 } catch (e) {
		try {
		   gq_http_request = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) {}
	 }
  }
  if (!gq_http_request) {
	 alert('Cannot create XMLHTTP instance.');
	 return false;
  }
  
  gq_http_request.onreadystatechange = gq_alertContents;
  gq_http_request.open('POST', url, true);
  gq_http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  gq_http_request.setRequestHeader("Content-length", parameters.length);
  gq_http_request.setRequestHeader("Connection", "close");
  gq_http_request.send(parameters);
  
  gq_send_email_loading();
}

function gq_hide_form(){
	clearInterval(intervalID);
    document.getElementById('screen').style.display = 'none';
    document.getElementById('gq_form').style.display = 'none';
	gq_contact_clear_fields();
	gq_send_email_normal();
}

function gq_alertContents() {
  if (gq_http_request.readyState == 4) {
	 if (gq_http_request.status == 200) {
		result = gq_http_request.responseText;
		if (result != 'error') {
			gq_send_email_success();
			}
		else {
			alert('error returned');
			gq_send_email_error();
			}
	 } else {
		alert('bad 200: ' + gq_http_request.status);
		gq_send_email_error();
	 }
  }
}
	
function gq_send_email_normal() {
	document.getElementById("mt_send_gq_text").innerHTML = "";
	document.getElementById("mt_send_gq_indicator").className = "mt_send_gq_indicator_normal";
	document.getElementById("gq_header_message").innerHTML = 'GET A QUOTE';
	document.getElementById("send_gq_form_holder").style.display = '';
	document.getElementById("gq_loading").style.display = 'none';
	document.getElementById("gq_thankyou").style.display = 'none';
	document.getElementById("gq_error").style.display = 'none';
}
	
function gq_send_email_success() {
	document.getElementById("gq_header_message").innerHTML = 'Thank You';
	document.getElementById("gq_loading").style.display = 'none';
	document.getElementById("gq_error").style.display = 'none';
	document.getElementById("gq_thankyou").style.display = '';
}
	
function gq_send_email_error() {
	document.getElementById("gq_header_message").innerHTML = 'Error on Submission';
	document.getElementById("gq_loading").style.display = 'none';
	document.getElementById("gq_thankyou").style.display = 'none';
	document.getElementById("gq_error").style.display = '';
}

function gq_send_email_loading() {
	// show loading screen
	document.getElementById("send_gq_form_holder").style.display = 'none';
	document.getElementById("gq_loading").style.display = '';
}

function gq_contact_clear_fields() {
	document.getElementById("gqName").value = '';
	document.getElementById("gqEmail").value = '';
	document.getElementById("gqPhone").value = '';
	document.getElementById("gqComments").value = '';
}

function gq_sendemail() {
	var full_name, email_address, phone_number, gq_comments, alert_error, poststr, storeloc, credit;
	
	// Car info
	var vYear = document.getElementById("frmYear").value;
	var vMake = document.getElementById("frmMake").value;
	var vModel = document.getElementById("frmModel").value;
	var vTrim = document.getElementById("frmTrim").value;
	var vStock = document.getElementById("frmStock").value;
	var vVin = document.getElementById("frmVin").value;
	var vPrice = document.getElementById("frmPrice").value;
	var vSendto = document.getElementById("frmSendto").value;
	
	// Customer data fields
	credit = document.getElementById("gqCredit").value;
	full_name = document.getElementById("gqName").value;
	email_address = document.getElementById("gqEmail").value;
	phone_number = document.getElementById("gqPhone").value;
	gq_comments = document.getElementById("gqComments").value;
	storeloc = document.getElementById("gqLocation").value;
	
	alert_error = "";

	if(full_name.length < 2) {
		alert_error += "Please enter you name.\n";
	}
	if(email_address.length < 2) {
		alert_error += "Please enter your email address.\n";
	}
	else {
		if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email_address) == false){
			alert_error += "Email address is in an unacceptable format.\n";
		}
	}
	
	if(alert_error.length > 0) {
		alert(alert_error);
	} 
	else {
			
		// prepare the post data
		poststr = "gqName=" + encodeURI(full_name)
			+ "&gqEmail=" + encodeURI(email_address)
			+ "&gqPhone=" + encodeURI(phone_number)
			+ "&gqComments=" + encodeURI(gq_comments)
			+ "&gqLocation=" + encodeURI(storeloc)
			+ "&gqCredit=" + encodeURI(credit);
		
		// Hardcode values to pass
		poststr = poststr + "&formtype=getquote"
			+ "&year=" + encodeURI(vYear)
			+ "&make=" + encodeURI(vMake)
			+ "&model=" + encodeURI(vModel)
			+ "&trim=" + encodeURI(vTrim)
			+ "&stock=" + encodeURI(vStock)
			+ "&vin=" + encodeURI(vVin)
			+ "&sendto=" + encodeURI(vSendto)
			+ "&price=" + encodeURI(vPrice);
							
		//alert(poststr);
		//location = '/inventory/email.asp?' + poststr;
		gq_makePOSTRequest('/inventory/email.asp', poststr);
	}
}
