function signIn() {
	var baseurl = "/used_cars/subscribe?";
	var settings = "TB_iframe=true&height=251&width=421&modal=true";
	tb_show("", baseurl+settings, "");
}

function signOut(){
	UsedCarSearchManager.signOut(signOutResponse);
}

function setupInit() {
	if (window.addEventListener) {
			window.addEventListener("load",init,false);
			document.addEventListener("DOMContentLoaded",init,false);
		} else if (window.attachEvent) {
			document.attachEvent("onreadystatechange",init);
			window.attachEvent("onload",init);
		} else {
			window.onload = init;
		}
}

function init() {
	if (arguments.callee.done) return;
	arguments.callee.done = true;
	DWREngine.setErrorHandler(writeError);

	var theQueryStr = location.search;
	if (theQueryStr.indexOf('zip')==-1) setPersistedZip();
	setSelectedMakeIndexFromCookie();
	if ($e('makeSelect').selectedIndex > 0) {
		UsedCarHomeManager.getAllModelsWithListings($e('makeSelect').value, populateModels);
		UsedCarHomeManager.getNumberOfListingsByMakeZip($e('makeSelect').value, $e('zipBox').value, setMakeCount);
	}
	if ($e("zipBox").focus) $e("zipBox").focus();
}

function writeError(errorMessage) {
	$e('errorMessage').setTextData(errorMessage);
}

function setPersistedZip() {
	zipv = getCookieValue("lastUserZip");
	if (zipv && zipv.trim()) {
		$e("zipBox").value = zipv;
	}
}

function persistZip() {
	zipval = $e("zipBox").value;
	if (zipval && (zipval.trim() != "")) {
		setPermCookie("lastUserZip",zipval);
	}
}

var zipEntered = false;
function checkZip(e) {
	zip = $e('zipBox').value;
	if (zip.length == 5) {
		zipEntered = true;
		if ($e('makeSelect').selectedIndex > 1) {
			UsedCarHomeManager.getNumberOfListingsByMakeZip($e('makeSelect').value, $e('zipBox').value, setMakeCount);
			if ($e('modelSelect').selectedIndex > 1) {
				UsedCarHomeManager.getNumberOfListingsByMakeModelZip($e('makeSelect').value, $e('modelSelect').value, $e('zipBox').value, setModelCount);
			}
		}
	} else {
		if (zipEntered) {
			zipEntered = false;
		}
	}
}

function clearZip() {
	if ($e('zipBox').maxLength > 5) {
		$e('zipBox').value = '';
		$e('zipBox').maxLength = 5;
	}
}

function setSelectedMakeIndexFromCookie() {
	lastMakeIndex = getCookieValue("lastMakeSelectedIndex");
	var makeSelector = $e('makeSelect');
	if (makeSelector && lastMakeIndex && (lastMakeIndex > 0)) {
		makeSelector.selectedIndex = parseInt(lastMakeIndex);
	}
}//setSelectedMakeIndexFromCookie

function calculateMakes(){
	if($e("makeCount")) {
		$e("makeCount").setTextData("");
	}
	if($e("makeLabel")) {
		$e('makeLabel').setTextData("");
	}
	if($e("modelSelect")) {
		$e('modelSelect').selectedIndex = 0;
	}
	
	if ($e('makeSelect').selectedIndex != 0) {
		setPermCookie("lastMakeSelectedIndex",$e('makeSelect').selectedIndex);
		if (zipEntered || $e('zipBox').value.length == 5) {
			UsedCarHomeManager.getNumberOfListingsByMakeZip($e('makeSelect').value, $e('zipBox').value, setMakeCount);
//		} else {
//			UsedCarHomeManager.getNumberOfListingsByMake($e('makeSelect').value, setMakeCount);
		}
	}
	UsedCarHomeManager.getAllModelsWithListings($e('makeSelect').value, populateModels);
}

function setMakeCount(countLocation) {
	var count;
	var location;
	if (countLocation) {
		count = countLocation.count;
		location = countLocation.location;
	} else {
		count = 0;
		location = '';
	}
	if ($e('makeSelect').selectedIndex > 0) {
		$e("makeCount").setTextData(IBDOM.Utils.getFormattedNumber(count));
		var makeName = new String( $e('makeSelect').options[$e('makeSelect').selectedIndex].value);
		if(count == 1) {
			label = makeName + ' ' + location;
		}
		else {
			label = makeName + (makeName.charAt(makeName.length-1) == 's' ? ' vehicles ' : 's ') + location;
		}
		
		$e('makeLabel').setTextData( label);
	} else {
		$e("makeCount").setTextData( '');
		$e('makeLabel').setTextData( '');
	}
}//setMakeCount

function calculateModels(){
	if (zipEntered || $e('zipBox').value.length == 5) {
		UsedCarHomeManager.getNumberOfListingsByMakeModelZip($e('makeSelect').value, $e('modelSelect').value, $e('zipBox').value, setModelCount);
//	} else {
//		UsedCarHomeManager.getNumberOfListingsByMakeModel($e('makeSelect').value, $e('modelSelect').value, setModelCount);
	}
}

function setModelCount(countLocation) {
	var count;
	var location;
	if (countLocation) {
		count = countLocation.count;
		location = countLocation.location;
	} else {
		count = 0;
		location = '';
	}
	if ($e('modelSelect').selectedIndex > 0) {
		$e('modelCount').setTextData(IBDOM.Utils.getFormattedNumber(count));
		var modelName = new String( $e('modelSelect').options[$e('modelSelect').selectedIndex].value);
		if(count == 1) {
			label = modelName + ' ' + location;
		}
		else  {
			label = modelName + (modelName.charAt(modelName.length-1) == 's' ? ' vehicles ' : 's ') + location;
		}
		$e('modelLabel').setTextData( label);
	} else {
		$e('modelCount').setTextData( '');
		$e('modelLabel').setTextData( '');
	}
}//setModelCount

function populateModels(modelList) {
	populateSelect($e("modelSelect"),modelList);
	calculateModels();
}

IS_INIT = true;

function initMake() {
	if (IS_INIT && window.showMake) {
		IS_INIT = false;
		selectPullDownValue($e("makeSelect"),showMake);
	}
}

function populateMakes(makeList) {
	populateSelect($e("makeSelect"), makeList, null, null, null, initMake );	
	$e("makeSelect").options[0].text = "Select a Make";
}

function writeSkyScraperAd() {
	timestamp = (new Date()).getTime();
	document.write(
		IBDOM.Utils.getString([
			'<iframe src="//ad.doubleclick.net/adi/cdc_used_hp/;dcopt=ist;sz=300x195;ord=',
			timestamp,
			'?" width="300" height="195" marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="0" scrolling=no borderCOLOR="#000000">',
			'<script language="JavaScript" src="//ad.doubleclick.net/adj/cdc_used_hp/;dcopt=ist;sz=300x195;abr=!ie;ord=',
			timestamp,
			'?" type="text/javascript"></script>',
			'</iframe>'
		])
	);
}//writeSkyScraperAd

function writeEmbeddedMovie() {
document.write(
	IBDOM.Utils.getString([
		'<embed ',
		' src="'+imageUrlPrefix+'/usedcars/images/slots25.swf"',
		' quality="high"',
		'pluginspage="//www.macromedia.com/go/getflashplayer"',
		'type="application/x-shockwave-flash" width="300" height="228"></embed>'	
	])
);
}//writeEmbeddedMovie

function validateSearch(fObj) {
	fzip = fObj.zip.value;
	fzip = getStrippedWhite(fzip);
	fmakeidx = fObj.make.selectedIndex;
	valid = false;
	if (fzip && (fzip != "") && !isNaN(parseInt(fzip))) {
		// This was added to reduce stress on the DB.
		if (fmakeidx && (fmakeidx > 0)) {
			valid = true;
		} else {
			alert("Please select a specific make");
			fObj.make.focus();
			valid = false;
		}
	} else {
		alert("Please enter a valid Zip Code");
		fObj.zip.value = "";
		fObj.zip.focus();
		valid = false;
	}
	if (valid) {
		$e("whoIsTrusted").hide();
		$e("makeSelect").hide();
		$e("modelSelect").hide();
		showInterstitialScreen();
	}
	return valid;
}//validateSearch

function loadAdvancedSearch(form) {
	var make = $e('makeSelect').options[$e('makeSelect').selectedIndex].value;
	var model = $e('modelSelect').options[$e('modelSelect').selectedIndex].value;
	var zip = $e("zipBox").value;
	
	var queryString = "";
	if($e('makeSelect').selectedIndex != 0) queryString += (queryString.length == 0?"?":"&") + "make=" + make;
	if($e('modelSelect').selectedIndex != 0) queryString += (queryString.length == 0?"?":"&") + "model=" + model;
	if(zip.length != 0) queryString += (queryString.length == 0?"?":"&") + "zip=" + zip;
	
	window.location.href = "/used_cars/advanced_search" + queryString;
}