var cm_http_request = false;

function callme_makePOSTRequest(url, parameters) {
  cm_http_request = false;
  if (window.XMLHttpRequest) { // Mozilla, Safari,...
	 cm_http_request = new XMLHttpRequest();
	 if (cm_http_request.overrideMimeType) {
		// set type accordingly to anticipated content type
		//cm_http_request.overrideMimeType('text/xml');
		cm_http_request.overrideMimeType('text/html');
	 }
  } else if (window.ActiveXObject) { // IE
	 try {
		cm_http_request = new ActiveXObject("Msxml2.XMLHTTP");
	 } catch (e) {
		try {
		   cm_http_request = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) {}
	 }
  }
  if (!cm_http_request) {
	 alert('Cannot create XMLHTTP instance.');
	 return false;
  }
  
  cm_http_request.onreadystatechange = callme_alertContents;
  cm_http_request.open('POST', url, true);
  cm_http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  cm_http_request.setRequestHeader("Content-length", parameters.length);
  cm_http_request.setRequestHeader("Connection", "close");
  cm_http_request.send(parameters);
  
  callme_send_email_loading();
}

function callme_hide_form(){
	clearInterval(intervalID);
    document.getElementById('screen').style.display = 'none';
    document.getElementById('call_me_form').style.display = 'none';
	callme_contact_clear_fields();
	callme_send_email_normal();
}

function callme_alertContents() {
  if (cm_http_request.readyState == 4) {
	 if (cm_http_request.status == 200) {
		result = cm_http_request.responseText;
		if (result != 'error') {
			callme_send_email_success();
			}
		else {
			alert('error returned');
			callme_send_email_error();
			}
	 } else {
		alert('bad 200: ' + cm_http_request.status);
		callme_send_email_error();
	 }
  }
}
	
function callme_send_email_normal() {
	document.getElementById("mt_send_callme_text").innerHTML = "";
	document.getElementById("mt_send_callme_indicator").className = "mt_send_callme_indicator_normal";
	document.getElementById("callme_header_message").innerHTML = 'Call Me Now';
	document.getElementById("send_callme_form_holder").style.display = '';
	document.getElementById("callme_loading").style.display = 'none';
	document.getElementById("callme_thankyou").style.display = 'none';
	document.getElementById("callme_error").style.display = 'none';
}
	
function callme_send_email_success() {
	document.getElementById("callme_header_message").innerHTML = 'Thank You';
	document.getElementById("callme_loading").style.display = 'none';
	document.getElementById("callme_error").style.display = 'none';
	document.getElementById("callme_thankyou").style.display = '';
	// Track this call me now conversion for the correct campaign its assigned to
	trackCampaignConversion('callmenowandcarfinder', 'CallMeNow');
}
	
function callme_send_email_error() {
	document.getElementById("callme_header_message").innerHTML = 'Error on Submission';
	document.getElementById("callme_loading").style.display = 'none';
	document.getElementById("callme_thankyou").style.display = 'none';
	document.getElementById("callme_error").style.display = '';
}

function callme_send_email_loading() {
	// show loading screen
	document.getElementById("send_callme_form_holder").style.display = 'none';
	document.getElementById("callme_loading").style.display = '';
}

function callme_contact_clear_fields() {
	document.getElementById("cmName").value = '';
	document.getElementById("cmEmail").value = '';
	document.getElementById("cmPhone").value = '';
	document.getElementById("cmComments").value = '';
	document.getElementById("cmLocation").selectedIndex = 0;
}

function callme_sendemail() {
	var mail_format_html, to_html,  subject, redirect,  first_name, email_address, phone_number, call_me_comments, alert_error, poststr, storeloc;
	
	// Customer data fields
	first_name = document.getElementById("cmName").value;
	email_address = document.getElementById("cmEmail").value;
	phone_number = document.getElementById("cmPhone").value;
	call_me_comments = document.getElementById("cmComments").value;
	storeloc = document.getElementById("cmLocation").options[document.getElementById("cmLocation").selectedIndex].value;
	// Lead mapping fields
	mail_format_html = document.getElementById("cmmail_format_html").value;
	mail_format_adf = document.getElementById("cmmail_format_adf").value;
	
	alert_error = "";

	if(first_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(phone_number.length < 2) {
		alert_error += "Please enter your phone number.\n";
	}
	
	if(alert_error.length > 0) {
		alert(alert_error);
	} 
	else {
			
		// prepare the post data
		poststr = "cmmail_format_html=" + escape(mail_format_html)
			+ "&cmName=" + encodeURI(first_name)
			+ "&cmEmail=" + encodeURI(email_address)
			+ "&cmPhone=" + encodeURI(phone_number)
			+ "&cmComments=" + encodeURI(call_me_comments)
			+ "&cmLocation=" + encodeURI(storeloc)
			+ "&cmmail_format_adf=" + escape(mail_format_adf);
			
		// Any default values or static hidden stuff here
		poststr = poststr + "&subject=" + encodeURI("Call Me Now")
				
		//alert(poststr);
		//location = '/inventory/email_callmenow.asp?' + poststr;
		callme_makePOSTRequest('/inventory/email_callmenow.asp', poststr);
	}
}