// JavaScript Document
var http_request = false;
function makeRequest(url, callback_function, return_xml) {
	http_request = false;
  if (window.XMLHttpRequest) { // Mozilla, Safari,...
  	http_request = new XMLHttpRequest();
    if (http_request.overrideMimeType) 
    	{http_request.overrideMimeType('text/xml');}
  } 
  else if (window.ActiveXObject) { // IE
	    try {
	        http_request = new ActiveXObject("Msxml2.XMLHTTP");
	    } catch (e) {
	        try {
	            http_request = new ActiveXObject("Microsoft.XMLHTTP");
	        } catch (e) {}
	    }
	}
 	if (!http_request) {
		alert('Giving up :( Cannot create an XMLHTTP instance');
    return false;
  }
	http_request.onreadystatechange = function() {
  	if (http_request.readyState == 4) {
    	if (http_request.status == 200) {
      	if (return_xml) {
					eval(callback_function + '(http_request.responseXML)');
        } 
				else {
					eval(callback_function + '(http_request.responseText)');
        }
      } 
			else {
      	alert('There was a problem with the request.(Code: ' + http_request.status + ')');
      }
    }
  } 			
  http_request.open('GET', url, false);
  http_request.send(null);
}

function alertContents(text) {
	alert(text)
}

function fnGetQSModels(Make,DealerID) {
	if (Make != '') {
		//alert('/components/quicksearch.cfc?Method=fnGetDealerModels&Make='+Make+'&DealerID='+DealerID);
		document.quicksearch.hqsMake.value = Make;
		makeRequest('/components/quicksearch.cfc?Method=fnGetDealerModels&Make='+Make+'&DealerID='+DealerID, 'fnPopulateQSModels',true);
		return false;
	}
	else {
		document.quicksearch.model.length = 1;
		document.quicksearch.model[0].text = 'Select a Make';
		document.quicksearch.model[0].value = '';
	}
}

function fnPopulateQSModels(PassedXML) {
	var collection = PassedXML.getElementsByTagName('model')
	document.quicksearch.model.length = 1;
	document.quicksearch.model.length = collection.length + 1;
	document.quicksearch.model[0].text = 'All Models';
	document.quicksearch.model[0].value = '';
	for (i=0; i < collection.length; i++) {
		document.quicksearch.model[i+1].text = collection.item(i).firstChild.nodeValue;
		document.quicksearch.model[i+1].value = collection.item(i).firstChild.nodeValue;
	}
	document.quicksearch.model[0].selected = true;
}

function fnSubmitQSForm(a,b) {
	if (!valYr(a,b,'','')) {
		return false;
	}
	document.quicksearch.FromYear.value = document.quicksearch.ToYear.value;
	return true;
}

//Return only a valid year between 1900 and 2019
function valYr(Year, fieldID, sClass, sClassError)
{
	//Try to validate two digit input
	if ((Year.length == 2) && (Year > 15)) {
		var x = '19' + Year;
		document.getElementById(fieldID).value = x;
	} else if (Year.length == 2) {
		var x = '20' + Year;
		document.getElementById(fieldID).value = x;
	} else {
		var x = Year;
	}
	var filter = /(1{1}9{1}\d{2})|(2{1}0{1}(0{1}|1{1})\d{1})/;
	if (filter.test(x) || x==''){
		if (sClass != '') {
			document.getElementById(fieldID).className = sClass;
		}
		return true;
	} else {
		document.getElementById(fieldID).select();
		document.getElementById(fieldID).value = '';
		if (sClassError != '') {
			document.getElementById(fieldID).className = sClassError;
		}
		document.getElementById(fieldID).focus();
		return false;
	}
}

function fnInitPopulateQSModels() {
	//alert(document.quicksearch.hqsMake.value);
	if (document.quicksearch.hqsMake.value != '') {
		fnGetQSModels(document.quicksearch.hqsMake.value,document.quicksearch.DealerID.value);
		for (var i=0; i<document.quicksearch.model.length; ++i) {
				if (document.quicksearch.hqsModel.value == document.quicksearch.model[i].value) {
					//alert(document.quicksearch.model[i].value);
					document.quicksearch.model[i].selected = true;
				}
		}
	}
	//alert(document.quicksearch.hqsMake.value);
	//alert(document.quicksearch.hqsModel.value);
}
window.onload = new Function("fnInitPopulateQSModels();");

