//Ajax stuff
function cityStateResponse() {
  if (requester.readyState == 4) {
    // Split the comma delimited response into an array
    results = requester.responseText.split(",");
	if(results[1] != undefined){
		document.getElementById('city').value = results[0];
		document.getElementById('state').value = results[1];
		if(document.getElementById("zipproblem"))
			hide("zipproblem");
	}
	hide("indicator");
  }
}
function updateCityState() {
var url = "/ajax/getcitystate.php?zip="; // The server-side script
if(document.getElementById("zip").value.length == 5){	
  if(checkAjax()){
	  show("indicator");
	  var zipValue = document.getElementById("zip").value;
	  doAjax(url + escape(zipValue), cityStateResponse);
	}
  }
}

function taxShipResponse() {
  if (requester.readyState == 4) {
    // Split the comma delimited response into an array
    results = requester.responseText.split(",");
	if(results[1] != undefined){
		taxamt = results[0] * document.getElementById("subtotal").value;
		taxamt = Math.round(taxamt*100)/100;
		var newtotal=0;
		newtotal = taxamt +  parseFloat(document.getElementById("subtotal").value) + parseInt(results[1]*100)/100;
		newtotal = Math.round(newtotal*100)/100;
		newtotal = dollarAmount(newtotal);
		results[1] = dollarAmount(results[1]);
		taxamt = dollarAmount(taxamt);
		hide("indicator");
		writeIt(taxamt, 'taxspan');
		writeIt(results[1], 'shipspan');		
		writeIt(newtotal, 'subtotaldiv');
	}
  }
}
function taxShip() {
var url = "/ajax/taxandship.cfm?zip="; // The server-side script
if(document.getElementById("zip").value.length >= 5){
  if(checkAjax()){
	  show("indicator");
	  var shipMethod = "GND";
	  var zipValue = document.getElementById("zip").value;
	  if(document.getElementById("SHIPSL_Code"))
	  shipMethod = document.getElementById("SHIPSL_Code").value;
	  //Math.random keeps IE from caching
	  ajaxurl = url + escape(zipValue) + "&SHIPSL_Code=" + shipMethod;
	  doAjax(ajaxurl, taxShipResponse);
	  }
  }
}
	




function searchNowResponse() {
    // Split the comma delimited response into an array
if (requester.readyState == 4) {
	results = requester.responseText;
	if(results != undefined && results.length > 0){
		writeIt(results, 'resultdiv');
	}
}
}
function runSearch() {
var url = "/ajax/search.php?query="; // The server-side script
	if(document.getElementById("searchinput").value.length > 1){
		doAjax(url + escape(document.getElementById("searchinput").value), searchNowResponse);
		document.getElementById("resultdiv").style.display="block";
		//window.setTimeout('document.getElementById("resultdiv").className="typed"', 350);
		}
	else{
		document.getElementById("resultdiv").style.display="none";
		}
}
function searchNow() {
	//document.getElementById("resultdiv").className="typing";
	writeIt('', 'resultdiv'); 
	runSearch();
}
	

function searchDealerNowResponse() {
    // Split the comma delimited response into an array
if (requester.readyState == 4) {
	results = requester.responseText;
	if(results != undefined && results.length > 0){
		writeIt(results, 'dealerdiv');
	}
}
}
function runDealerSearch() {
var url = "/ajax/searchDealers.php?query="; // The server-side script
	if(document.getElementById("dealer").value.length > 1){
		doAjax(url + escape(document.getElementById("dealer").value), searchDealerNowResponse);
		document.getElementById("dealerdiv").style.display="block";
		//window.setTimeout('document.getElementById("resultdiv").className="typed"', 350);
		}
	else{
		document.getElementById("dealerdiv").style.display="none";
		}
}
function searchDealer() {
	//document.getElementById("resultdiv").className="typing";
	writeIt('', 'dealerdiv'); 
	runDealerSearch();
}




function custExistsResponse() {
  if (requester.readyState == 4) {
    // Split the comma delimited response into an array
    results = requester.responseText;
	if(results != undefined && results.indexOf("yes") >= 0){
		tooltipMiddle = 'The email exists! You can login!';
		showToolTip('emailerror', tooltipMiddle);
		tooltipMiddle = '';
	}
  }
}
function custExists(email) {
var url = "/ajax/custexists.cfm?email=" + email; // The server-side script
var reply = doAjax(url, custExistsResponse);
}

////////////////////////
/////// AJAX Code v2 ///
////////////////////////

var requester = null;
// I run this check before every function that makes the page look different,
// like if it shows an indicator for example.
function checkAjax(){
	try {
		requester = new XMLHttpRequest();
	}
	catch (error) {
		try	{
			requester = new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch (error) {
			requester = null;	
			return false;
		}
	}
	return true;
}

function doAjax(ajaxurl, returnfunction) {
	// Check for running connections
	if(requester != null && requester.readyState != 0 && requester.readyState != 4)
	{
		requester.abort();
	}
	
	try {
    requester = new XMLHttpRequest();
	 }
	 catch (error)
	 {
	   try
	   {
		 requester = new ActiveXObject("Microsoft.XMLHTTP");
	   }
	   catch (error)
	   {
		 requester = null;	
		 return false;
	   }
	 }
	
	 requester.onreadystatechange = eval("returnfunction");
		if(ajaxurl.indexOf("?") > 0){
	 		requester.open("GET", ajaxurl + "&random=" + Math.random());
		}
		else {
	 		requester.open("GET", ajaxurl + "?random=" + Math.random());
		}
	 requester.send(null);
	
	 return true;
}
function onreadystatechangeReciept() {
  /* If XMLHR object has finished retrieving the data */
 if (requester.readyState == 4)
 {
   /* If the data was retrieved successfully */
   if (requester.status == 200)
   {
    
   }
   /* IE returns a status code of 0 on some occasions, so ignore this case */
   else if (requester.status != 0)
   {
     alert("There was an error while retrieving the URL: " + requester.statusText);
   }
 }

 return true;
}


