	var firstTime = true;
	var goForm = false;

	function checkCompSelected() {

		x = document.getElementsByTagName("input");
		for (y = 0; y < x.length; y++) {
			if (x[y].type == "checkbox" && x[y].checked) {
				return true;
			}
		}
		return false;
	}

	function checkEnter(e) {

		if (!e) {
			e = window.event;
		}
		if (window.event) {
			keynum = e.keyCode;
		} else if (e.which) {
			keynum = e.which;
		}
		if (e.target) {
			targ = e.target.id;
		} else if (e.srcElement) {
			targ = e.srcElement.id;
		}
		if (keynum == 13) {
			goForm = true;
			validateZip();
			return false;
		} else {
			goForm = false;
			return true;
		}

	}

	function ClearList(OptionList, TitleName) {
		OptionList.length =	0;
		OptionList.options[0] =	new Option(TitleName, '0', true, true);
		mID = 0;
	}

	function checkLimit(list1, list2, l, h, ofs) {

		l *= 1; h *= 1;
		if (l>h) {
			list1.selectedIndex = list2.selectedIndex + ofs;
		}
	}

	function ChangeDivision() {

		ClearList(document.getElementById('searchform').modelid, 'ALL MODELS');
		LoadModels(document.getElementById('searchform').make.selectedIndex);
	}

	function deleteSearch(elID, el) {

		el.value = 'Removing...';
		var delSearch = getXMLHTTPObject();
		delSearch.onreadystatechange = function () {
			if (delSearch.readyState == 4 && delSearch.status == 200) {
				if (delSearch.responseText == 'success') {
					document.getElementById('valet2_' + elID).style.display = 'none';
				} else {
					showAlert('There was a problem removing the search. Please try again.');
					el.value = 'Remove';
				}
			} else if (delSearch.readyState == 4) {
				showAlert('There was a problem removing the search. Please try again.');
				el.value = 'Remove';
			}
		}
		var d = new Date();
		var t = d.getTime();
		var getVars = "v=" + elID + "&time=" + t + "&" + priv;
		delSearch.open("GET", "http" + s + "://" + document.domain + "/ajax/deletesearch.php?" + getVars, true);
		delSearch.send(null);
	}

	function executeSearch() {

		if (document.getElementById('zipmsg').innerHTML != 'Valid') {
			showAlert('Please enter a valid zip code.');
			return false;
		}
		var newH1 = document.createElement('h1');
		newH1.innerHTML = 'Please wait while we perform your search.';
		document.getElementById('Set_Prefs_Canvas').appendChild(newH1);
		document.getElementById('Set_Prefs').style.display = 'block';
		window.scrollTo(0,0);
		logSearch();
		return true;
	}

	function getResultCount() {

		if (document.getElementById('zipmsg').innerHTML != 'Valid') {
			return false;
		}
		document.getElementById('showcount').innerHTML = '[fetching results]'
		var rCount = getXMLHTTPObject();
		rCount.onreadystatechange = function () {
			if (rCount.readyState == 4 && rCount.status == 200) {
				document.getElementById('showcount').innerHTML = rCount.responseText;
			}
		}
		var getVars = "";
		getVars += "?makeselect=" + document.getElementById('makeselect').value;
		getVars += "&modelselect=" + document.getElementById('modelselect').value;
		getVars += "&lopriceselect=" + document.getElementById('lopriceselect').value;
		getVars += "&hipriceselect=" + document.getElementById('hipriceselect').value;
		getVars += "&stocknum=" + document.getElementById('stocknumber').value;
		if (!document.getElementById('loyearselect').disabled) {
			getVars += "&loyearselect=" + document.getElementById('loyearselect').value;
		}
		if (!document.getElementById('hiyearselect').disabled) {
			getVars += "&hiyearselect=" + document.getElementById('hiyearselect').value;
		}
		if (!document.getElementById('lomileselect').disabled) {
			getVars += "&lomileselect=" + document.getElementById('lomileselect').value;
		}
		if (!document.getElementById('himileselect').disabled) {
			getVars += "&himileselect=" + document.getElementById('himileselect').value;
		}
		if (!document.getElementById('keywords').disabled) {
			getVars += "&searchwords=" + document.getElementById('keywords').value;
		}
		if (!document.getElementById('bodystyleselect').disabled) {
			var styles = document.getElementById('bodystyleselect').options;
			for (var x = 0; x < styles.length; x++) {
				if (styles[x].selected) {
					getVars += "&styles[]=" + styles[x].value;
					if (styles[x].value == '-1') {
						break;
					}
				}
			}
		}
		if (!document.getElementById('colorselect').disabled) {
			var colors = document.getElementById('colorselect').options;
			for (var x = 0; x < colors.length; x++) {
				if (colors[x].selected) {
					getVars += "&extcolor[]=" + colors[x].value;
					if (colors[x].value == '-1') {
						break;
					}
				}
			}
		}
		if (document.getElementById('searchradius')) {
			getVars += "&originzip=" + document.getElementById('originzip').value;
			getVars += "&searchradius=" + document.getElementById('searchradius').value;
		}
		getVars += "&stype=" + document.getElementById('SearchType').value;
		var d = new Date()
		var t = d.getTime()
		getVars += "&t=" + t;
		rCount.open("GET","http" + s + "://" + document.domain + "/ajax/checkresults.php" + getVars,true);
		rCount.send(null);
	}

	function initSearch() {
		ChangeDivision();
	}

	function LoadModels(Index) {

		if (firstTime) {
			mID = modID;
			firstTime = false;
		}
		if (Index >	0) {
			var	CurrentModels = Models[Index - 1].split(',');
			var	CurrentModelIDs = ModelIDs[Index - 1].split(',');
			for	(var i = 0; i < CurrentModels.length; i++) {
				document.getElementById('searchform').modelid.options[i+1] = new Option(CurrentModels[i], CurrentModelIDs[i], false, false);
				if (CurrentModelIDs[i] == mID) {
					document.getElementById('searchform').modelid.options[i+1].selected = true;
				}
			}
		}
	}

	function logSearch() {

		var sLogger = getXMLHTTPObject();
		sLogger.onreadystatechange = function () {
			if (sLogger.readyState == 4 && sLogger.status == 200) {
			}
		}
		var getVars = "";
		getVars += "?make=" + document.getElementById('makeselect').value;
		getVars += "&modelid=" + document.getElementById('modelselect').value;
		getVars += "&lyear=" + document.getElementById('loyearselect').value;
		getVars += "&hyear=" + document.getElementById('hiyearselect').value;
		getVars += "&lprice=" + document.getElementById('lopriceselect').value;
		getVars += "&hprice=" + document.getElementById('hipriceselect').value;
		if (document.getElementById('originzip').value == '[not set]') {
			var zip = 0;
		} else {
			var zip = document.getElementById('originzip').value;
		}
		getVars += "&zip=" + zip;
		getVars += "&radius=" + document.getElementById('searchradius').value;
		getVars += "&stype=" + document.getElementById('SearchType').value;
		getVars += "&lmile=" + document.getElementById('lomileselect').value;
		getVars += "&hmile=" + document.getElementById('himileselect').value;
		var styles = document.getElementById('bodystyleselect').options;
		for (var x = 0; x < styles.length; x++) {
			if (styles[x].selected) {
				getVars += "&styles[]=" + styles[x].value;
				if (styles[x].value == '-1') {
					break;
				}
				}
		}
		var colors = document.getElementById('colorselect').options;
		for (var x = 0; x < colors.length; x++) {
			if (colors[x].selected) {
				getVars += "&extcolor[]=" + colors[x].value;
				if (colors[x].value == '-1') {
					break;
				}
			}
		}
		getVars += "&searchwords=" + document.getElementById('keywords').value;
		getVars += "&stocknum=" + document.getElementById('stocknumber').value;
		sLogger.open("GET","http" + s + "://" + document.domain + "/ajax/searchlog.php" + getVars,true);
		sLogger.send(null);
	}

	function resetSearchOptions() {

		document.getElementById('makeselect').selectedIndex = 0;
		document.getElementById('lopriceselect').selectedIndex = 0;
		document.getElementById('hipriceselect').selectedIndex = document.getElementById('hipriceselect').options.length - 1;
		document.getElementById('stocknumber').value = '';
		document.getElementById('loyearselect').selectedIndex = 0;
		document.getElementById('hiyearselect').selectedIndex = 0;
		document.getElementById('lomileselect').selectedIndex = 0;
		document.getElementById('himileselect').selectedIndex = document.getElementById('himileselect').options.length - 1;
		document.getElementById('keywords').value = '';
		document.getElementById('bodystyleselect').selectedIndex = 0;
		document.getElementById('colorselect').selectedIndex = 0;
		document.getElementById('SearchType').value = 1;
		mID = 0;
		ChangeDivision();
		showSearch('Used', document.getElementById('SearchUsed'));
		toggleMoreSearchOptions(0);
		getResultCount();
	}

	function saveSearchCriteria(e) {

		if (!e) {
			e = window.event;
		}
		if (!document.getElementById('searchname')) {
			return false;
		}
		if (document.getElementById('searchname').value.length == 0) {
			showAlert('Please enter a valid name for the new search.');
			return false;
		}
		if (!document.getElementById('searchname').value.match(/^[a-zA-Z0-9 \'-]+$/)) {
			showAlert('Please do not use any special characters in the search name.');
			return false;
		}
		var postVars = '&name=' + encodeURI(document.getElementById('searchname').value);
		postVars += "&make=" + document.getElementById('makeselect').value;
		postVars += "&makename=" + encodeURI(document.getElementById('makeselect').options[document.getElementById('makeselect').selectedIndex].text.replace(/ \(\d+\)/, ''));
		postVars += "&modelid=" + document.getElementById('modelselect').value;
		postVars += "&modelname=" + encodeURI(document.getElementById('modelselect').options[document.getElementById('modelselect').selectedIndex].text.replace(/ \(\d+\)/, ''));
		if (!document.getElementById('loyearselect').disabled) {
			postVars += "&lyear=" + document.getElementById('loyearselect').value;
		}
		if (!document.getElementById('hiyearselect').disabled) {
			postVars += "&hyear=" + document.getElementById('hiyearselect').value;
		}
		postVars += "&lprice=" + document.getElementById('lopriceselect').value;
		postVars += "&hprice=" + document.getElementById('hipriceselect').value;
		if (document.getElementById('originzip').value == '[not set]') {
			var zip = 0;
		} else {
			var zip = document.getElementById('originzip').value;
		}
		postVars += "&zip=" + zip;
		postVars += "&radius=" + document.getElementById('searchradius').value;
		postVars += "&stype=" + document.getElementById('SearchType').value;
		if (!document.getElementById('lomileselect').disabled) {
			postVars += "&lmile=" + document.getElementById('lomileselect').value;
		}
		if (!document.getElementById('himileselect').disabled) {
			postVars += "&hmile=" + document.getElementById('himileselect').value;
		}
		if (!document.getElementById('bodystyleselect').disabled) {
			var styles = document.getElementById('bodystyleselect').options;
			for (var x = 0; x < styles.length; x++) {
				if (styles[x].selected) {
					postVars += "&styles[]=" + styles[x].value;
					if (styles[x].value == '-1') {
						break;
					}
				}
			}
		}
		if (!document.getElementById('colorselect').disabled) {
			var colors = document.getElementById('colorselect').options;
			for (var x = 0; x < colors.length; x++) {
				if (colors[x].selected) {
					postVars += "&extcolor[]=" + colors[x].value;
					if (colors[x].value == '-1') {
						break;
					}
				}
			}
		}
		if (!document.getElementById('keywords').disabled) {
			postVars += "&searchwords=" + encodeURI(document.getElementById('keywords').value);
		}
		postVars += "&stocknum=" + encodeURI(document.getElementById('stocknumber').value);
		sendPlainForm('savenewsearch', postVars, 'Saving New Search', 'savesearch', e);
	}

	function showSearch(state, el) {

		el.blur();
		switch (state) {
			case 'New':
				if (document.getElementById('SearchType').value == 2) {
					document.getElementById('keywords').value = '';
				}
				document.getElementById('SearchType').value = 0;
				document.getElementById('SearchUsed').className = 'Tab';
				document.getElementById('SearchStock').className = 'Tab';
				document.getElementById('MakeModelCriteria').style.display = 'block';
				document.getElementById('PriceCriteria').style.display = 'block';
				document.getElementById('MileageCriteria').style.display = 'none';
				document.getElementById('ShowHideMoreCriteria').style.display = 'block';
				document.getElementById('StockNumCriteria').style.display = 'none';
				document.getElementById('SearchButton').src = '/assets/showbutton.php?t=Search+New&pt=14&w=160&cssseq=' + cssSeq + '&cssver=' + cssVer + '&' + priv;
				document.getElementById('SearchButton').onmouseout = function() {this.src = '/assets/showbutton.php?t=Search+New&pt=14&w=160&prefs=1*7*15&cssseq=' + cssSeq + '&cssver=' + cssVer + '&' + priv;}
				document.getElementById('SearchButton').onmouseover = function() {this.src = '/assets/showbutton.php?t=Search+New&pt=14&w=160&prefs=1*9*15&cssseq=' + cssSeq + '&cssver=' + cssVer + '&' + priv;}
				break;
			case 'Used':
				if (document.getElementById('SearchType').value == 2) {
					document.getElementById('keywords').value = '';
				}
				document.getElementById('SearchType').value = 1;
				document.getElementById('SearchNew').className = 'Tab';
				document.getElementById('SearchStock').className = 'Tab';
				document.getElementById('MakeModelCriteria').style.display = 'block';
				document.getElementById('PriceCriteria').style.display = 'block';
				document.getElementById('MileageCriteria').style.display = 'block';
				document.getElementById('ShowHideMoreCriteria').style.display = 'block';
				document.getElementById('MoreCriteria').style.display = (document.getElementById('ShowHideMoreCriteria').innerHTML == '- Use Less Options') ? ('block') : ('none');
				document.getElementById('StockNumCriteria').style.display = 'none';
				document.getElementById('SearchButton').src = '/assets/showbutton.php?t=Search+Used&pt=14&w=160&cssseq=' + cssSeq + '&cssver=' + cssVer + '&' + priv;
				document.getElementById('SearchButton').onmouseout = function() {this.src = '/assets/showbutton.php?t=Search+Used&pt=14&w=160&prefs=1*7*15&cssseq=' + cssSeq + '&cssver=' + cssVer + '&' + priv;}
				document.getElementById('SearchButton').onmouseover = function() {this.src = '/assets/showbutton.php?t=Search+Used&pt=14&w=160&prefs=1*9*15&cssseq=' + cssSeq + '&cssver=' + cssVer + '&' + priv;}
				break;
			case 'Stock':
				if (document.getElementById('SearchType').value != 2) {
					document.getElementById('keywords').value = '';
				}
				document.getElementById('SearchType').value = 2;
				document.getElementById('SearchNew').className = 'Tab';
				document.getElementById('SearchUsed').className = 'Tab';
				document.getElementById('MakeModelCriteria').style.display = 'none';
				document.getElementById('PriceCriteria').style.display = 'none';
				document.getElementById('MileageCriteria').style.display = 'none';
				document.getElementById('MoreCriteria').style.display = 'none';
				document.getElementById('ShowHideMoreCriteria').style.display = 'none';
				document.getElementById('StockNumCriteria').style.display = 'block';
				document.getElementById('SearchButton').src = '/assets/showbutton.php?t=Search+Stock%23&pt=14&w=160&cssseq=' + cssSeq + '&cssver=' + cssVer + '&' + priv;
				document.getElementById('SearchButton').onmouseout = function() {this.src = '/assets/showbutton.php?t=Search+Stock&pt=14&w=160&prefs=1*7*15&cssseq=' + cssSeq + '&cssver=' + cssVer + '&' + priv;}
				document.getElementById('SearchButton').onmouseover = function() {this.src = '/assets/showbutton.php?t=Search+Stock&pt=14&w=160&prefs=1*9*15&cssseq=' + cssSeq + '&cssver=' + cssVer + '&' + priv;}
				break;
		}
		el.className = 'TabSelected';
		document.getElementById(searchParent).className = document.getElementById(searchParent).className;
		getResultCount();
	}

	function toggleMoreSearchOptions(showHide) {

		switch (showHide) {
			case 0:
				document.getElementById('loyearselect').disabled = true;
				document.getElementById('hiyearselect').disabled = true;
				document.getElementById('lomileselect').disabled = true;
				document.getElementById('himileselect').disabled = true;
				document.getElementById('keywords').disabled = true;
				document.getElementById('bodystyleselect').disabled = true;
				document.getElementById('colorselect').disabled = true;
				document.getElementById('ShowHideMoreCriteria').innerHTML = '+ Show Advanced Options';
				document.getElementById('ShowHideMoreCriteria').href = 'javascript:toggleMoreSearchOptions(1)';
				document.getElementById('MoreCriteria').style.display = 'none';
				break;
			case 1:
				document.getElementById('loyearselect').disabled = false;
				document.getElementById('hiyearselect').disabled = false;
				document.getElementById('lomileselect').disabled = false;
				document.getElementById('himileselect').disabled = false;
				document.getElementById('keywords').disabled = false;
				document.getElementById('bodystyleselect').disabled = false;
				document.getElementById('colorselect').disabled = false;
				document.getElementById('ShowHideMoreCriteria').innerHTML = '- Hide Advanced Options';
				document.getElementById('ShowHideMoreCriteria').href = 'javascript:toggleMoreSearchOptions(0)';
				document.getElementById('MoreCriteria').style.display = 'block';
				break;
		}
		getResultCount();
	}

	function toggleSearchForm() {

		if (document.getElementById('Search_Box_Form') && document.getElementById('Search_Box_Toggle')) {
			switch (document.getElementById('Search_Box_Form').style.display) {
				case '':
				case 'block':
					document.getElementById('Search_Box_Form').style.display = 'none';
					document.getElementById('Search_Box_Toggle').value = 'Show';
					break;
				case 'none':
					document.getElementById('Search_Box_Form').style.display = 'block';
					document.getElementById('Search_Box_Toggle').value = 'Hide';
					break;
			}
		}
	}

	function toggleSearchResultHighlight(onOff, elID) {

		onOff = (onOff) ? ('On') : ('');
		//document.getElementById('Listing' + elID).className = 'ListingHighlight' + onOff;
		document.getElementById('Header' + elID).className = 'AdList' + onOff;
		document.getElementById('Price' + elID).className = 'Pop' + onOff;
		document.getElementById('CellPhone' + elID).className = 'RedPop' + onOff;
		if (document.getElementById('Email' + elID)) {
			document.getElementById('Email' + elID).className = 'RedPop' + onOff;
		}
		if (document.getElementById('MoreButton' + elID)) {
			document.getElementById('MoreButton' + elID).className = 'FakeButton' + onOff;
		}
	}

	function validateZip() {

		if (currZipCode == document.getElementById('originzip').value && currZipCode.match(/^\d+$/)) {
			document.getElementById('zipmsg').innerHTML = 'Valid';
			if (goForm) {
				document.getElementById('searchform').submit();
			} else {
				getResultCount();
			}
			return;
		}
		var zipCheck = getXMLHTTPObject();
		zipCheck.onreadystatechange = function () {
			if (zipCheck.readyState == 4 && zipCheck.status == 200) {
				switch (zipCheck.responseText) {
					case 'error':
						document.getElementById('zipmsg').innerHTML = 'Error!';
						document.getElementById('showcount').innerHTML = '[zip code required]'
						break;
					case 'invalid':
						document.getElementById('zipmsg').innerHTML = 'Invalid!';
						document.getElementById('showcount').innerHTML = '[zip code required]'
						break;
					case 'valid':
						document.getElementById('zipmsg').innerHTML = 'Valid';
						if (goForm) {
							document.getElementById('searchform').submit();
						} else {
							getResultCount();
						}
						break;
					case 'reset':
						document.getElementById('zipmsg').innerHTML = "REQUIRED!";
						document.getElementById('originzip').value = '[not set]';
						document.getElementById('showcount').innerHTML = '[zip code required]'
						break;
				}
			}
		}
		getVars = "?zip=" + document.getElementById('originzip').value + '&' + priv;
		zipCheck.open("GET","http" + s + "://" + document.domain + "/ajax/validatezip.php" + getVars,true);
		zipCheck.send(null);
	}