var objZipCode = new Object();

function updateCount(data, isError) {
	if (cookiePopulation == true) {
		return;
	}

	if (data) {
		jQuery('#vehicleCount').empty();
		jQuery(data).find("//count").each( function() {
			jQuery('#vehicleCount').html(jQuery(this).text());
		});
	} else {
		var postParameters = serializeForm(jQuery('#searchForm'));
		jQuery.ajax( {
			type : "GET",
			dataType : "html",
			async : false,
			cache : false,
			data : postParameters,
			url : "count.ajax",
			success : function(data) {
				jQuery('#vehicleCount').empty();
				jQuery('#vehicleCount').hide();
				jQuery('#vehicleCount').html(data).fadeIn(3000);
			},
			error : function(oXHR, err, oExc) {
				if (isError == true)
					alert(err);
				else
					updateCount(data, true);
			}
		});
	}
}

function isValidZipCode() {
	var zipCode = jQuery("#txtZipCode").val();
	if (!zipCode || zipCode == '') {
		return true;
	}

	var valid = true;
	if (jQuery("#txtZipCode").val() && zipCode != objZipCode.text) {
		objZipCode.text = zipCode;
		jQuery("#txtZipCode").css('background-color', '#FFFFFF');
		var postParameters = "zipCode=" + zipCode;
		jQuery.ajax( {
			type : "GET",
			dataType : "html",
			cache : false,
			async : false,
			data : postParameters,
			url : "isValidZipCode.ajax",
			success : function(data) {
				if (data == 'true') {
					valid = true;
				} else {
					valid = false;
				}
			}
		});
		objZipCode.value = valid;
	}
	return objZipCode.value;
}

function updatePage(pageNumber, isError) {
	showLoading();
	var formParameters = serializeForm(jQuery('#searchForm'));
	var postParameters = formParameters + "&pageName="
			+ jQuery("#pageName").val() + "&pageNumber=" + pageNumber;
	jQuery.ajax( {
		type : "GET",
		async : false,
		cache : false,
		dataType : "html",
		data : postParameters,
		url : "results_resultsList_wrapper.ajax",
		success : function(data) {
			jQuery('#results_listContainer').fadeOut("normal", function() {
				jQuery('#results_resultsContainer').fadeOut("normal");
				jQuery(this).html(data);
				jQuery('#results_resultsContainer').fadeIn("normal");
				jQuery(this).fadeIn("normal");
				hideLoading();
				//
				// Update Context : Hack until we can update backend with these props
				ContextManager.pageNumber=jQuery("#currentPageCount").text();
				ContextManager.resultCount=jQuery("#resultCount").val();
				EventManager.publish({
					eventName:'com.cobaltgroup.ws.view.results.inventory'
				});
			});
		},
		error : function(oXHR, err, oExc) {
			if (isError == true)
				alert(err);
			else
				updatePage(pageNumber, true);
		}
	});
}

function updateViewsPerPage(vppCount, isError) {
	showLoading();
	var formParameters = serializeForm(jQuery('#searchForm'));
	var postParameters = formParameters + "&pageName="
			+ jQuery("#pageName").val() + "&viewsPerPage=" + vppCount;

	jQuery.ajax( {
		type : "GET",
		dataType : "html",
		async : false,
		data : postParameters,
		url : "results_resultsList_wrapper.ajax",
		success : function(data) {
			jQuery('#results_listContainer').fadeOut("normal", function() {
				jQuery('#results_resultsContainer').fadeOut("normal");
				jQuery(this).html(data);
				jQuery('#results_resultsContainer').fadeIn("normal");
				jQuery(this).fadeIn("normal");
				hideLoading();
			});
		},

		error : function(oXHR, err, oExc) {
			if (isError == true)
				alert(err);
			else
				updateViewsPerPage(vppCount, true)
		}
	});
}

function updateSort(sortType, sortDirection, selectIndex, isError) {
	var strSortDir = (sortDirection) ? sortDirection : "";
	jQuery('#sortCol').attr('value', sortType);
	jQuery('#selectIndex').attr('value', selectIndex);
	jQuery('#sortDir').attr('value', strSortDir);

	showLoading();
	var formParameters = serializeForm(jQuery('#searchForm'));
	var postParameters = formParameters + "&pageName="
			+ jQuery("#pageName").val();

	jQuery.ajax( {
		type : "GET",
		dataType : "html",
		cache : false,
		async : false,
		data : postParameters,
		url : "results_resultsList_wrapper.ajax",
		success : function(data) {
			jQuery('#results_listContainer').fadeOut("normal", function() {
				jQuery('#results_resultsContainer').fadeOut("normal");
				jQuery(this).html(data);
				jQuery('#results_resultsContainer').fadeIn("normal");
				jQuery(this).fadeIn("normal");
				hideLoading();
			});
		},

		error : function(oXHR, err, oExc) {
			if (isError == true)
				alert(err);
			else
				updateSort(sortType, sortDirection, selectIndex, true);
		}

	});
}

function incrementPage(which) {
	var nextPage = parseInt(jQuery('#currentPageCount').html()) + which;
	if ((nextPage != 0)
			&& (nextPage <= parseInt(jQuery('#totalPagesCount').html()))) {
		updatePage(nextPage, parseInt(jQuery('#vppCount').html()));
	}
};

function gotoPage(which) {
	updatePage(which, parseInt(jQuery('#vppCount').html()));
}

function serializeForm(theForm) {
	var formParameters = "";
	var escapedValue;
	var frmObjects = jQuery(theForm).formToArray();
	for (i = 0; i < frmObjects.length; i++) {

		if (frmObjects[i].name == "minMileage"
				|| frmObjects[i].name == "maxMileage"
				|| frmObjects[i].name == "minPrice"
				|| frmObjects[i].name == "maxPrice"
				|| frmObjects[i].name == "minMonthlyPayment"
				|| frmObjects[i].name == "maxMonthlyPayment")

		{
			var strminmaxvalue = frmObjects[i].value;
			strminmaxvalue = getvalWithoutComma(strminmaxvalue);
			escapedValue = escape(strminmaxvalue);
			escapedValue = escapedValue.replace("%A0", "");
		}
		else
		{
			escapedValue = escape(frmObjects[i].value);
		}
		formParameters = formParameters + frmObjects[i].name + "="
				+ escapedValue + "&";
	}
	return formParameters;
}

function getURLParam(strParamName) {

	var strReturn = "";

	var strHref = window.location.href;

	var bFound = false;

	var cmpstring = strParamName + "=";

	var cmplen = cmpstring.length;

	if (strHref.indexOf("?") > -1) {

		var strQueryString = strHref.substr(strHref.indexOf("?") + 1);

		var aQueryString = strQueryString.split("&");

		for ( var iParam = 0; iParam < aQueryString.length; iParam++) {

			if (aQueryString[iParam].substr(0, cmplen) == cmpstring) {

				var aParam = aQueryString[iParam].split("=");

				strReturn = aParam[1];

				bFound = true;

				break;

			}

		}

	}

	if (bFound == false)
		return null;

	return getEscapedValue(strReturn);

}

function getEscapedValue(strReturn) {

	if (strReturn.indexOf("+") != -1) {

		strReturn = strReturn.replace(/\+/g, " ");

	}

	strReturn = unescape(strReturn);

	return getElementText(strReturn);

}

function getvalWithoutComma(strminmaxcommaval) {

	strminmaxcommaval = strminmaxcommaval + "";

	strminmaxcommaval = strminmaxcommaval.replace(/\D/g, "");

	strminmaxcommaval = strminmaxcommaval.replace("%2C", "");

	return strminmaxcommaval;

}

function getElementText(text) {

	text = text.replace(/\"/g, "&#34;");

	text = text.replace(/\'/g, "&#39;");

	return text;

}

Number.prototype.toFloor = function(num) {

	return Math.floor(this / num) * num;

}

Number.prototype.toCeil = function(num) {

	return Math.ceil(this / num) * num;

}

Number.prototype.toNearest = function(num) {

	return Math.round(this / num) * num;

}

jQuery('#crossClose').click(function(){
	jQuery('#crossClose').css('display','none');
	jQuery('#vppControl').removeAttr("disabled");
	jQuery('#vppControlBottom').removeAttr("disabled");
	Photos.getInstance().close();
});

function updateFilter(data) {

	if (!validateZip()) {

		return;

	}

	if (!isValidZipCode()) {

		jQuery("#txtZipCode").css('background-color', '#FFFF00');

		alert(jQuery("#txtZipCode").val() + INVALID_ZIP_CODE);

		return;

	}

	if (cookiePopulation == true) {

		return;

	}

	if (!validateStockOrVIN()) {

		return;

	}

	if (isResults) {
		jQuery('#sortCol').attr('value', '');
		jQuery('#selectIndex').attr('value', '');
		jQuery('#sortDir').attr('value', '');
		updateResults(data);

		updatePixelInformation();

	} else if (isVehicleDetails) {

		removeCommaChars();

		jQuery("#searchForm").submit();

	} else {

		updateCount(data);

	}

}

// Function to remove commas from Price, Monthly Payment and Mileage text boxes
// before submitting the form

function removeCommaChars() {

	if (priceRangePresent) {

		jQuery("#maxPrice").val(getvalWithoutComma(jQuery("#maxPrice").val()));

		jQuery("#minPrice").val(getvalWithoutComma(jQuery("#minPrice").val()));

	}

	if (monthlyRangePresent) {

		jQuery("#maxPayment").val(
				getvalWithoutComma(jQuery("#maxPayment").val()));

		jQuery("#minPayment").val(
				getvalWithoutComma(jQuery("#minPayment").val()));

	}

	if (mileageRangePresent) {

		jQuery("#maxMileage").val(
				getvalWithoutComma(jQuery("#maxMileage").val()));

		jQuery("#minMileage").val(
				getvalWithoutComma(jQuery("#minMileage").val()));

	}

}

function searchNewUsed() {

	if (priceRangePresent == true) {

		var minimumValue = Math.min(getvalWithoutComma(newRange[0]),
				getvalWithoutComma(usedRange[0]));

		var maximumValue = Math.max(getvalWithoutComma(newRange[1]),
				getvalWithoutComma(usedRange[1]));

		if (vsrMinPrice == 'null') {

			showmilesWithComma(parseInt(minimumValue), '#minPrice');

			showmilesWithComma(parseInt(maximumValue), '#maxPrice');

		}

		else {

			if (vsrMinPrice == '' && vsrMaxPrice == '') {

				vsrMinPrice = parseInt(getvalWithoutComma(minimumValue));

				vsrMaxPrice = parseInt(getvalWithoutComma(maximumValue));

			}

			showmilesWithComma(parseInt(vsrMinPrice), '#minPrice');

			showmilesWithComma(parseInt(vsrMaxPrice), '#maxPrice');

		}

		minimumPriceValue = minimumValue;

		maximumPriceValue = maximumValue;

	}

	if (yearRangePresent == true) {

		var minimumValue = Math.min(getvalWithoutComma(newRange[4]),
				getvalWithoutComma(usedRange[4]));

		var maximumValue = Math.max(getvalWithoutComma(newRange[5]),
				getvalWithoutComma(usedRange[5]));

		if (vsrMinYear == 'null') {

			jQuery('#minYear').val(minimumValue);

			jQuery('#maxYear').val(maximumValue);

		}

		else {

			if (vsrMinYear == '' && vsrMaxYear == '') {

				vsrMinYear = parseInt(minimumValue);

				vsrMaxYear = parseInt(maximumValue);

			}

			jQuery('#minYear').val(parseInt(vsrMinYear));

			jQuery('#maxYear').val(parseInt(vsrMaxYear));

		}

		minimumYearValue = minimumValue;

		maximumYearValue = maximumValue;

	}

	if (monthlyRangePresent == true) {

		var minimumValue = Math.min(getvalWithoutComma(newRange[2]),
				getvalWithoutComma(usedRange[2]));

		var maximumValue = Math.max(getvalWithoutComma(newRange[3]),
				getvalWithoutComma(usedRange[3]));

		if (vsrMinPayment == 'null') {

			showmilesWithComma(parseInt(minimumValue), '#minPayment');

			showmilesWithComma(parseInt(maximumValue), '#maxPayment');

		}

		else {

			if (vsrMinPayment == '' && vsrMaxPayment == '') {

				vsrMinPayment = parseInt(minimumValue);

				vsrMaxPayment = parseInt(maximumValue);

			}

			showmilesWithComma(parseInt(vsrMinPayment), '#minPayment');

			showmilesWithComma(parseInt(vsrMaxPayment), '#maxPayment');

		}

		minimumPaymentValue = minimumValue;

		maximumPaymentValue = maximumValue;

	}

	if (mileageRangePresent == true) {

		if (vsrMinMileage == 'null') {

			jQuery('#minMileage').val(usedRange[6]);

			jQuery('#maxMileage').val(usedRange[7]);

		}

		else {

			showmilesWithComma(parseInt(vsrMinMileage), '#minMileage');

			showmilesWithComma(parseInt(vsrMaxMileage), '#maxMileage');

		}

		minimumMileageValue = getvalWithoutComma(usedRange[6]);

		maximumMileageValue = getvalWithoutComma(usedRange[7]);

	}

	jQuery('#mileage').show();

	sliderMileageRange();

}

function searchNewCertified() {

	if (priceRangePresent == true) {

		var minimumValue = Math.min(getvalWithoutComma(newRange[0]),
				getvalWithoutComma(certifiedRange[0]));

		var maximumValue = Math.max(getvalWithoutComma(newRange[1]),
				getvalWithoutComma(certifiedRange[1]));

		if (vsrMinPrice == 'null') {

			showmilesWithComma(parseInt(minimumValue), '#minPrice');

			showmilesWithComma(parseInt(maximumValue), '#maxPrice');

		}

		else {

			if (vsrMinPrice == '' && vsrMaxPrice == '') {

				vsrMinPrice = parseInt(getvalWithoutComma(minimumValue));

				vsrMaxPrice = parseInt(getvalWithoutComma(maximumValue));

			}

			showmilesWithComma(parseInt(vsrMinPrice), '#minPrice');

			showmilesWithComma(parseInt(vsrMaxPrice), '#maxPrice');

		}

		minimumPriceValue = minimumValue;

		maximumPriceValue = maximumValue;

	}

	if (yearRangePresent == true) {

		var minimumValue = Math.min(getvalWithoutComma(newRange[4]),
				getvalWithoutComma(certifiedRange[4]));

		var maximumValue = Math.max(getvalWithoutComma(newRange[5]),
				getvalWithoutComma(certifiedRange[5]));

		if (vsrMinYear == 'null') {

			jQuery('#minYear').val(minimumValue);

			jQuery('#maxYear').val(maximumValue);

		}

		else {

			if (vsrMinYear == '' && vsrMaxYear == '') {

				vsrMinYear = parseInt(minimumValue);

				vsrMaxYear = parseInt(maximumValue);

			}

			jQuery('#minYear').val(parseInt(vsrMinYear));

			jQuery('#maxYear').val(parseInt(vsrMaxYear));

		}

		minimumYearValue = minimumValue;

		maximumYearValue = maximumValue;

	}

	if (monthlyRangePresent == true) {

		var minimumValue = Math.min(getvalWithoutComma(newRange[2]),
				getvalWithoutComma(certifiedRange[2]));

		var maximumValue = Math.max(getvalWithoutComma(newRange[3]),
				getvalWithoutComma(certifiedRange[3]));

		if (vsrMinPayment == 'null') {

			showmilesWithComma(parseInt(minimumValue), '#minPayment');

			showmilesWithComma(parseInt(maximumValue), '#maxPayment');

		}

		else {

			if (vsrMinPayment == '' && vsrMaxPayment == '') {

				vsrMinPayment = parseInt(minimumValue);

				vsrMaxPayment = parseInt(maximumValue);

			}

			showmilesWithComma(parseInt(vsrMinPayment), '#minPayment');

			showmilesWithComma(parseInt(vsrMaxPayment), '#maxPayment');

		}

		minimumPaymentValue = minimumValue;

		maximumPaymentValue = maximumValue;

	}

	if (mileageRangePresent == true) {

		if (vsrMinMileage == 'null') {

			jQuery('#minMileage').val(certifiedRange[6]);

			jQuery('#maxMileage').val(certifiedRange[7]);

		}

		else {

			showmilesWithComma(parseInt(vsrMinMileage), '#minMileage');

			showmilesWithComma(parseInt(vsrMaxMileage), '#maxMileage');

		}

		minimumMileageValue = getvalWithoutComma(certifiedRange[6]);

		maximumMileageValue = getvalWithoutComma(certifiedRange[7]);

	}

	jQuery('#mileage').show();

	sliderMileageRange();

}

function searchUsedCertified() {

	if (priceRangePresent == true) {

		var minimumValue = Math.min(getvalWithoutComma(usedRange[0]),
				getvalWithoutComma(certifiedRange[0]));

		var maximumValue = Math.max(getvalWithoutComma(usedRange[1]),
				getvalWithoutComma(certifiedRange[1]));

		if (vsrMinPrice == 'null') {

			showmilesWithComma(parseInt(minimumValue), '#minPrice');

			showmilesWithComma(parseInt(maximumValue), '#maxPrice');

		}

		else {

			if (vsrMinPrice == '' && vsrMaxPrice == '') {

				vsrMinPrice = parseInt(getvalWithoutComma(minimumValue));

				vsrMaxPrice = parseInt(getvalWithoutComma(maximumValue));

			}

			showmilesWithComma(parseInt(vsrMinPrice), '#minPrice');

			showmilesWithComma(parseInt(vsrMaxPrice), '#maxPrice');

		}

		minimumPriceValue = minimumValue;

		maximumPriceValue = maximumValue;

	}

	if (yearRangePresent == true) {

		var minimumValue = Math.min(getvalWithoutComma(usedRange[4]),
				getvalWithoutComma(certifiedRange[4]));

		var maximumValue = Math.max(getvalWithoutComma(usedRange[5]),
				getvalWithoutComma(certifiedRange[5]));

		if (vsrMinYear == 'null') {

			jQuery('#minYear').val(minimumValue);

			jQuery('#maxYear').val(maximumValue);

		}

		else {

			if (vsrMinYear == '' && vsrMaxYear == '') {

				vsrMinYear = parseInt(minimumValue);

				vsrMaxYear = parseInt(maximumValue);

			}

			jQuery('#minYear').val(parseInt(vsrMinYear));

			jQuery('#maxYear').val(parseInt(vsrMaxYear));

		}

		minimumYearValue = minimumValue;

		maximumYearValue = maximumValue;

	}

	if (monthlyRangePresent == true) {

		var minimumValue = Math.min(getvalWithoutComma(usedRange[2]),
				getvalWithoutComma(certifiedRange[2]));

		var maximumValue = Math.max(getvalWithoutComma(usedRange[3]),
				getvalWithoutComma(certifiedRange[3]));

		if (vsrMinPayment == 'null') {

			showmilesWithComma(parseInt(minimumValue), '#minPayment');

			showmilesWithComma(parseInt(maximumValue), '#maxPayment');

		}

		else {

			if (vsrMinPayment == '' && vsrMaxPayment == '') {

				vsrMinPayment = parseInt(minimumValue);

				vsrMaxPayment = parseInt(maximumValue);

			}

			showmilesWithComma(parseInt(vsrMinPayment), '#minPayment');

			showmilesWithComma(parseInt(vsrMaxPayment), '#maxPayment');

		}

		minimumPaymentValue = minimumValue;

		maximumPaymentValue = maximumValue;

	}

	if (mileageRangePresent == true) {

		var minimumValue = Math.min(getvalWithoutComma(usedRange[6]),
				getvalWithoutComma(certifiedRange[6]));

		var maximumValue = Math.max(getvalWithoutComma(usedRange[7]),
				getvalWithoutComma(certifiedRange[7]));

		if (vsrMinMileage == 'null') {

			showmilesWithComma(parseInt(minimumValue), '#minMileage');

			showmilesWithComma(parseInt(maximumValue), '#maxMileage');

		}

		else {

			showmilesWithComma(parseInt(vsrMinMileage), '#minMileage');

			showmilesWithComma(parseInt(vsrMaxMileage), '#maxMileage');

		}

		minimumMileageValue = minimumValue;

		maximumMileageValue = maximumValue;

	}

	jQuery('#mileage').show();

	sliderMileageRange();

}

function searchAll() {

	if (priceRangePresent == true) {

		if (vsrMinPrice == 'null') {

			jQuery('#minPrice').val(combinedRange[0]);

			jQuery('#maxPrice').val(combinedRange[1]);

		}

		else {

			if (vsrMinPrice == '' && vsrMaxPrice == '') {

				vsrMinPrice = parseInt(getvalWithoutComma(combinedRange[0]));

				vsrMaxPrice = parseInt(getvalWithoutComma(combinedRange[1]));

			}

			showmilesWithComma(parseInt(vsrMinPrice), '#minPrice');

			showmilesWithComma(parseInt(vsrMaxPrice), '#maxPrice');

		}

		minimumPriceValue = getvalWithoutComma(combinedRange[0]);

		maximumPriceValue = getvalWithoutComma(combinedRange[1]);

	}

	if (yearRangePresent == true) {

		if (vsrMinYear == 'null') {

			jQuery('#minYear').val(combinedRange[2]);

			jQuery('#maxYear').val(combinedRange[3]);

		}

		else {

			if (vsrMinYear == '' && vsrMaxYear == '') {

				vsrMinYear = parseInt(combinedRange[2]);

				vsrMaxYear = parseInt(combinedRange[3]);

			}

			jQuery('#minYear').val(parseInt(vsrMinYear));

			jQuery('#maxYear').val(parseInt(vsrMaxYear));

		}

		minimumYearValue = getvalWithoutComma(combinedRange[2]);

		maximumYearValue = getvalWithoutComma(combinedRange[3]);

	}

	if (monthlyRangePresent == true) {

		if (vsrMinPayment == 'null') {

			jQuery('#minPayment').val(usedRange[2]);

			jQuery('#maxPayment').val(usedRange[3]);

		}

		else {

			if (vsrMinPayment == '' && vsrMaxPayment == '') {

				vsrMinPayment = parseInt(getvalWithoutComma(combinedRange[4]));

				vsrMaxPayment = parseInt(getvalWithoutComma(combinedRange[5]));

			}

			showmilesWithComma(parseInt(vsrMinPayment), '#minPayment');

			showmilesWithComma(parseInt(vsrMaxPayment), '#maxPayment');

		}

		minimumPaymentValue = getvalWithoutComma(combinedRange[4]);

		maximumPaymentValue = getvalWithoutComma(combinedRange[5]);

	}

	if (mileageRangePresent == true) {

		if (vsrMinMileage == 'null') {

			jQuery('#minMileage').val(usedRange[6]);

			jQuery('#maxMileage').val(usedRange[7]);

		}

		else {

			showmilesWithComma(parseInt(vsrMinMileage), '#minMileage');

			showmilesWithComma(parseInt(vsrMaxMileage), '#maxMileage');

		}

		minimumMileageValue = getvalWithoutComma(usedRange[6]);

		maximumMileageValue = getvalWithoutComma(usedRange[7]);

	}

	jQuery('#mileage').show();

	sliderMileageRange();

}

function searchNew() {

	if (priceRangePresent == true) {

		if (vsrMinPrice == 'null') {

			jQuery('#minPrice').val(newRange[0]);

			jQuery('#maxPrice').val(newRange[1]);

		}

		else {

			if (vsrMinPrice == '' && vsrMaxPrice == '') {

				vsrMinPrice = parseInt(getvalWithoutComma(newRange[0]));

				vsrMaxPrice = parseInt(getvalWithoutComma(newRange[1]));

			}

			showmilesWithComma(parseInt(vsrMinPrice), '#minPrice');

			showmilesWithComma(parseInt(vsrMaxPrice), '#maxPrice');

		}

		minimumPriceValue = getvalWithoutComma(newRange[0]);

		maximumPriceValue = getvalWithoutComma(newRange[1]);

	}

	if (monthlyRangePresent == true) {

		if (vsrMinPayment == 'null') {

			jQuery('#minPayment').val(newRange[2]);

			jQuery('#maxPayment').val(newRange[3]);

		}

		else {

			if (vsrMinPayment == '' && vsrMaxPayment == '') {

				vsrMinPayment = parseInt(getvalWithoutComma(newRange[2]));

				vsrMaxPayment = parseInt(getvalWithoutComma(newRange[3]));

			}

			showmilesWithComma(parseInt(vsrMinPayment), '#minPayment');

			showmilesWithComma(parseInt(vsrMaxPayment), '#maxPayment');

		}

		minimumPaymentValue = getvalWithoutComma(newRange[2]);

		maximumPaymentValue = getvalWithoutComma(newRange[3]);

	}

	if (yearRangePresent == true) {

		if (vsrMinYear == 'null') {

			jQuery('#minYear').val(newRange[4]);

			jQuery('#maxYear').val(newRange[5]);

		}

		else {

			if (vsrMinYear == '' && vsrMaxYear == '') {

				vsrMinYear = parseInt(newRange[4]);

				vsrMaxYear = parseInt(newRange[5]);

			}

			jQuery('#minYear').val(parseInt(vsrMinYear));

			jQuery('#maxYear').val(parseInt(vsrMaxYear));

		}

		minimumYearValue = getvalWithoutComma(newRange[4]);

		maximumYearValue = getvalWithoutComma(newRange[5]);

	}

	jQuery('#mileage').hide();

}

function searchUsed() {

	if (priceRangePresent == true) {

		if (vsrMinPrice == 'null') {

			jQuery('#minPrice').val(usedRange[0]);

			jQuery('#maxPrice').val(usedRange[1]);

		}

		else {

			showmilesWithComma(parseInt(vsrMinPrice), '#minPrice');

			showmilesWithComma(parseInt(vsrMaxPrice), '#maxPrice');

		}

		minimumPriceValue = getvalWithoutComma(usedRange[0]);

		maximumPriceValue = getvalWithoutComma(usedRange[1]);

	}

	if (monthlyRangePresent == true) {

		if (vsrMinPayment == 'null') {

			jQuery('#minPayment').val(usedRange[2]);

			jQuery('#maxPayment').val(usedRange[3]);

		}

		else {

			showmilesWithComma(parseInt(vsrMinPayment), '#minPayment');

			showmilesWithComma(parseInt(vsrMaxPayment), '#maxPayment');

		}

		minimumPaymentValue = getvalWithoutComma(usedRange[2]);

		maximumPaymentValue = getvalWithoutComma(usedRange[3]);

	}

	if (yearRangePresent == true) {

		if (vsrMinYear == 'null') {

			jQuery('#minYear').val(usedRange[4]);

			jQuery('#maxYear').val(usedRange[5]);

		}

		else {

			jQuery('#minYear').val(parseInt(vsrMinYear));

			jQuery('#maxYear').val(parseInt(vsrMaxYear));

		}

		minimumYearValue = getvalWithoutComma(usedRange[4]);

		maximumYearValue = getvalWithoutComma(usedRange[5]);

	}

	if (mileageRangePresent == true) {

		if (vsrMinMileage == 'null') {

			jQuery('#minMileage').val(usedRange[6]);

			jQuery('#maxMileage').val(usedRange[7]);

		}

		else {

			showmilesWithComma(parseInt(vsrMinMileage), '#minMileage');

			showmilesWithComma(parseInt(vsrMaxMileage), '#maxMileage');

		}

		minimumMileageValue = getvalWithoutComma(usedRange[6]);

		maximumMileageValue = getvalWithoutComma(usedRange[7]);

	}

	jQuery('#mileage').show();

	sliderMileageRange();

}

function searchCertified() {

	if (priceRangePresent == true) {

		if (vsrMinPrice == 'null') {

			jQuery('#minPrice').val(certifiedRange[0]);

			jQuery('#maxPrice').val(certifiedRange[1]);

		}

		else {

			showmilesWithComma(parseInt(vsrMinPrice), '#minPrice');

			showmilesWithComma(parseInt(vsrMaxPrice), '#maxPrice');

		}

		minimumPriceValue = getvalWithoutComma(certifiedRange[0]);

		maximumPriceValue = getvalWithoutComma(certifiedRange[1]);

	}

	if (monthlyRangePresent == true) {

		if (vsrMinPayment == 'null') {

			jQuery('#minPayment').val(certifiedRange[2]);

			jQuery('#maxPayment').val(certifiedRange[3]);

		}

		else {

			showmilesWithComma(parseInt(vsrMinPayment), '#minPayment');

			showmilesWithComma(parseInt(vsrMaxPayment), '#maxPayment');

		}

		minimumPaymentValue = getvalWithoutComma(certifiedRange[2]);

		maximumPaymentValue = getvalWithoutComma(certifiedRange[3]);

	}

	if (yearRangePresent == true) {

		if (vsrMinYear == 'null') {

			jQuery('#minYear').val(certifiedRange[4]);

			jQuery('#maxYear').val(certifiedRange[5]);

		}

		else {

			jQuery('#minYear').val(parseInt(vsrMinYear));

			jQuery('#maxYear').val(parseInt(vsrMaxYear));

		}

		minimumYearValue = getvalWithoutComma(certifiedRange[4]);

		maximumYearValue = getvalWithoutComma(certifiedRange[5]);

	}

	if (mileageRangePresent == true) {

		if (vsrMinMileage == 'null') {

			jQuery('#minMileage').val(certifiedRange[6]);

			jQuery('#maxMileage').val(certifiedRange[7]);

		}

		else {

			showmilesWithComma(parseInt(vsrMinMileage), '#minMileage');

			showmilesWithComma(parseInt(vsrMaxMileage), '#maxMileage');

		}

		minimumMileageValue = getvalWithoutComma(certifiedRange[6]);

		maximumMileageValue = getvalWithoutComma(certifiedRange[7]);

	}

	jQuery('#mileage').show();

	sliderMileageRange();

}

function sliderPriceRange() {

	if (priceRangePresent == true) {

		priceRangeSlider = jQuery('#slider4').slider( {

			handle : 'div.indicator',

			minValue : minimumPriceValue,

			maxValue : maximumPriceValue,

			slide : function(e, ui) {

				if (e) {

					if (minimumPriceValue != maximumPriceValue) {

						if (ui.handle.id.indexOf('2') != -1) {

							jQuery('#maxPrice').val(parseInt(ui.values[1]));

							var maxPriceVal = (ui.values[1]);

							showmilesWithComma(maxPriceVal, "#maxPrice");

							jQuery("#indicator1").css('z-index', '2');

							jQuery("#indicator2").css('z-index', '10');

						}

						else

						if (ui.handle.id.indexOf('1') != -1) {

							jQuery('#minPrice').val(parseInt(ui.values[0]));

							var minPriceVal = (ui.values[0]);

							showmilesWithComma(minPriceVal, "#minPrice");

							jQuery("#indicator1").css('z-index', '10');

							jQuery("#indicator2").css('z-index', '2');

						}

					}

				}

			},

			change : function(e, ui) {

				if ((isResults == false) && (isVehicleDetails == false))

					updateCount();

				else

					updateFilter();

			},

			startValue : [ minimumPriceValue, maximumPriceValue ],

			stepping : 1000

		});

	}

}

function sliderYearRange() {

	if (yearRangePresent == true) {

		yearRangeSlider = jQuery('#slider5').slider( {

			handle : 'div.indicator',

			minValue : minimumYearValue,

			maxValue : maximumYearValue,

			slide : function(e, ui) {

				if (e) {

					if (minimumYearValue != maximumYearValue) {

						if (ui.handle.id.indexOf('4') != -1) {

							jQuery('#maxYear').val(parseInt(ui.values[1]));

							jQuery("#indicator3").css('z-index', '2');

							jQuery("#indicator4").css('z-index', '10');

						}

						else

						if (ui.handle.id.indexOf('3') != -1) {

							jQuery('#minYear').val(parseInt(ui.values[0]));

							jQuery("#indicator3").css('z-index', '10');

							jQuery("#indicator4").css('z-index', '2');

						}

					}

				}

			},

			change : function(e, ui) {

				if ((isResults == false) && (isVehicleDetails == false))

					updateCount();

				else

					updateFilter();

			},

			startValue : [ minimumYearValue, maximumYearValue ]

		});

	}

}

function sliderMileageRange() {

	if (mileageRangePresent == true) {

		mileageRangeSlider = jQuery('#slider6').slider( {

			handle : 'div.indicator',

			minValue : minimumMileageValue,

			maxValue : maximumMileageValue,

			slide : function(e, ui) {

				if (e) {

					if (minimumMileageValue != maximumMileageValue) {

						if (ui.handle.id.indexOf('6') != -1) {

							jQuery('#maxMileage').val(parseInt(ui.values[1]));

							var maxMilageVal = (ui.values[1]);

							showmilesWithComma(maxMilageVal, "#maxMileage");

							jQuery("#indicator5").css('z-index', '2');

							jQuery("#indicator6").css('z-index', '10');

						}

						else

						if (ui.handle.id.indexOf('5') != -1) {

							jQuery('#minMileage').val(parseInt(ui.values[0]));

							var minMilageVal = (ui.values[0]);

							showmilesWithComma(minMilageVal, "#minMileage");

							jQuery("#indicator5").css('z-index', '10');

							jQuery("#indicator6").css('z-index', '2');

						}

					}

				}

			},

			change : function(e, ui) {

				if ((isResults == false) && (isVehicleDetails == false))

					updateCount();

				else

					updateFilter();

			},

			startValue : [ minimumMileageValue, maximumMileageValue ],

			stepping : 1000

		});

	}

}

function sliderPaymentRange() {

	if (monthlyRangePresent == true) {

		paymentRangeSlider = jQuery('#slider7').slider( {

			handle : 'div.indicator',

			minValue : minimumPaymentValue,

			maxValue : maximumPaymentValue,

			slide : function(e, ui) {

				if (e) {

					if (minimumPaymentValue != maximumPaymentValue) {

						if (ui.handle.id.indexOf('8') != -1) {

							jQuery('#maxPayment').val(parseInt(ui.values[1]));

							var maxPayVal = (ui.values[1]);

							showmilesWithComma(maxPayVal, "#maxPayment");

							jQuery("#indicator7").css('z-index', '2');

							jQuery("#indicator8").css('z-index', '10');

						}

						else

						if (ui.handle.id.indexOf('7') != -1) {

							jQuery('#minPayment').val(parseInt(ui.values[0]));

							var minPayVal = (ui.values[0]);

							showmilesWithComma(minPayVal, "#minPayment");

							jQuery("#indicator7").css('z-index', '10');

							jQuery("#indicator8").css('z-index', '2');

						}

					}

				}

			},

			change : function(e, ui) {

				if ((isResults == false) && (isVehicleDetails == false))

					updateCount();

				else

					updateFilter();

			},

			startValue : [ minimumPaymentValue, maximumPaymentValue ],

			stepping : 25

		});

	}

}

function enableDisalblePriceSliderOnPageLoad() {

	if (minimumPriceValue != maximumPriceValue) {

		sliderPriceRange();

		jQuery('#minPrice').removeAttr('disabled');

		jQuery('#maxPrice').removeAttr('disabled');

	}

	else if (minimumPriceValue == maximumPriceValue) {

		maximumPriceValue = parseInt(minimumPriceValue) + 1;

		sliderPriceRange();

		priceRangeSlider.sliderDisable();

		jQuery('#minPrice').attr('disabled', 'true');

		jQuery('#maxPrice').attr('disabled', 'true');

	}

	priceRangeSlider.sliderMoveTo(parseInt(jQuery('#minPrice').val().replace(
			/\D/g, "")), '', true, '', 0);

	priceRangeSlider.sliderMoveTo(parseInt(jQuery('#maxPrice').val().replace(
			/\D/g, "")), '', true, '', 1);

}

function enableDisalbleYearSliderOnPageLoad() {

	if (minimumYearValue != maximumYearValue) {

		sliderYearRange();

		jQuery('#minYear').removeAttr('disabled');

		jQuery('#maxYear').removeAttr('disabled');

	}

	else if (minimumYearValue == maximumYearValue) {

		maximumYearValue = parseInt(minimumYearValue) + 1;

		sliderYearRange();

		yearRangeSlider.sliderDisable();

		jQuery('#minYear').attr('disabled', 'true');

		jQuery('#maxYear').attr('disabled', 'true');

	}

	yearRangeSlider.sliderMoveTo(parseInt(jQuery('#minYear').val().replace(
			/\D/g, "")), '', true, '', 0);

	yearRangeSlider.sliderMoveTo(parseInt(jQuery('#maxYear').val().replace(
			/\D/g, "")), '', true, '', 1);

}

function enableDisalblePaymentSliderOnPageLoad() {

	if (minimumPaymentValue != maximumPaymentValue) {

		sliderPaymentRange();

		jQuery('#minPayment').removeAttr('disabled');

		jQuery('#maxPayment').removeAttr('disabled');

	}

	else if (minimumPaymentValue == maximumPaymentValue) {

		maximumPaymentValue = parseInt(minimumPaymentValue) + 1;

		sliderPaymentRange();

		paymentRangeSlider.sliderDisable();

		jQuery('#minPayment').attr('disabled', 'true');

		jQuery('#maxPayment').attr('disabled', 'true');

	}

	paymentRangeSlider.sliderMoveTo(parseInt(jQuery('#minPayment').val()
			.replace(/\D/g, "")), '', true, '', 0);

	paymentRangeSlider.sliderMoveTo(parseInt(jQuery('#maxPayment').val()
			.replace(/\D/g, "")), '', true, '', 1);

}

function enableDisalbleMileageSliderOnPageLoad() {

	if (mileageRangePresent == true) {

		if (isResults == true || isVehicleDetails == true) {

			if (minimumMileageValue != maximumMileageValue) {

				sliderMileageRange();

				jQuery('#minMileage').removeAttr('disabled');

				jQuery('#maxMileage').removeAttr('disabled');

			}

			else if (minimumMileageValue == maximumMileageValue) {

				maximumMileageValue = parseInt(minimumMileageValue) + 1;

				sliderMileageRange();

				mileageRangeSlider.sliderDisable();

				jQuery('#minMileage').attr('disabled', 'true');

				jQuery('#maxMileage').attr('disabled', 'true');

			}

			mileageRangeSlider.sliderMoveTo(parseInt(jQuery('#minMileage')
					.val().replace(/\D/g, "")), '', true, '', 0);

			mileageRangeSlider.sliderMoveTo(parseInt(jQuery('#maxMileage')
					.val().replace(/\D/g, "")), '', true, '', 1);

		}

	}

}

function enableDisablePriceRangeSlider() {

	if (minimumPriceValue != maximumPriceValue) {

		priceRangeSlider.sliderDisable();

		sliderPriceRange();

		jQuery('#minPrice').removeAttr('disabled');

		jQuery('#maxPrice').removeAttr('disabled');

	}

	else if (minimumPriceValue == maximumPriceValue) {

		priceRangeSlider.sliderDisable();

		jQuery('#minPrice').attr('disabled', 'true');

		jQuery('#maxPrice').attr('disabled', 'true');

	}

}

function enableDisableYearRangeSlider() {

	if (minimumYearValue != maximumYearValue) {

		yearRangeSlider.sliderDisable();

		sliderYearRange();

		jQuery('#minYear').removeAttr('disabled');

		jQuery('#maxYear').removeAttr('disabled');

	}

	else if (minimumYearValue == maximumYearValue) {

		maximumYearValue = jQuery('#minYear').val() + 1;

		yearRangeSlider.sliderDisable();

		jQuery('#minYear').attr('disabled', 'true');

		jQuery('#maxYear').attr('disabled', 'true');

	}

}

function enableDisablePaymentRangeSlider() {

	if (minimumPaymentValue != maximumPaymentValue) {

		paymentRangeSlider.sliderDisable();

		sliderPaymentRange();

		jQuery('#minPayment').removeAttr('disabled');

		jQuery('#maxPayment').removeAttr('disabled');

	}

	else if (minimumPaymentValue == maximumPaymentValue) {

		maximumPaymentValue = jQuery('#minPayment').val() + 1;

		paymentRangeSlider.sliderDisable();

		jQuery('#minPayment').attr('disabled', 'true');

		jQuery('#maxPayment').attr('disabled', 'true');

	}

}

function enableDisableMileageRangeSlider() {

	if (mileageRangePresent == true) {

		if (isResults == true || isVehicleDetails == true) {

			if (minimumMileageValue != maximumMileageValue) {

				mileageRangeSlider.sliderDisable();

				sliderMileageRange();

				jQuery('#minMileage').removeAttr('disabled');

				jQuery('#maxMileage').removeAttr('disabled');

			}

			else if (minimumMileageValue == maximumMileageValue) {

				maximumMileageValue = jQuery('#minMileage').val() + 1;

				mileageRangeSlider.sliderDisable();

				jQuery('#minMileage').attr('disabled', 'true');

				jQuery('#maxMileage').attr('disabled', 'true');

			}

		}

	}

}

function showNumberWithComma(strregexp) {

	var strregexp = strregexp.toString();

	var objRegExp = new RegExp('(-?[0-9]+)([0-9]{3})');

	while (objRegExp.test(strregexp))

	{

		strregexp = strregexp.replace(objRegExp, '$1,$2');

	}

	return strregexp;

}

function identifyCheckboxConfiguration() {

	if (checkboxNew == false && checkboxUsed == false
			&& checkboxCertified == false) {

		compareVSRMinMaxPayment(combinedRange[4], combinedRange[4],
				combinedRange[5], combinedRange[5]);

		monthlyPaymentRange(combinedRange[4], combinedRange[4],
				combinedRange[5], combinedRange[5]);

	}

	else if (checkboxNew == true && checkboxUsed == true
			&& checkboxCertified == true) {

		if ((jQuery('#searchNew').attr('checked')
				&& jQuery('#searchUsed').attr('checked') && jQuery(
				'#searchCertified').attr('checked'))
				|| (!jQuery('#searchNew').attr('checked')
						&& !jQuery('#searchUsed').attr('checked') && !jQuery(
						'#searchCertified').attr('checked'))) {

			compareVSRMinMaxPayment(combinedRange[4], combinedRange[4],
					combinedRange[5], combinedRange[5]);

			monthlyPaymentRange(combinedRange[4], combinedRange[4],
					combinedRange[5], combinedRange[5]);

		}

		else if (jQuery('#searchNew').attr('checked')
				&& jQuery('#searchCertified').attr('checked')) {

			compareVSRMinMaxPayment(newRange[2], certifiedRange[2],
					newRange[3], certifiedRange[3]);

			monthlyPaymentRange(newRange[2], certifiedRange[2], newRange[3],
					certifiedRange[3]);

		}

		else if (jQuery('#searchCertified').attr('checked')
				&& jQuery('#searchUsed').attr('checked')) {

			compareVSRMinMaxPayment(usedRange[2], certifiedRange[2],
					usedRange[3], certifiedRange[3]);

			monthlyPaymentRange(usedRange[2], certifiedRange[2], usedRange[3],
					certifiedRange[3]);

		}

		else if (jQuery('#searchNew').attr('checked')
				&& jQuery('#searchUsed').attr('checked')) {

			compareVSRMinMaxPayment(newRange[2], usedRange[2], newRange[3],
					usedRange[3]);

			monthlyPaymentRange(newRange[2], usedRange[2], newRange[3],
					usedRange[3]);

		}

		else if (jQuery('#searchUsed').attr('checked')) {

			compareVSRMinMaxPayment(usedRange[2], usedRange[2], usedRange[3],
					usedRange[3]);

			monthlyPaymentRange(usedRange[2], usedRange[2], usedRange[3],
					usedRange[3]);

		}

		else if (jQuery('#searchCertified').attr('checked')) {

			compareVSRMinMaxPayment(certifiedRange[2], certifiedRange[2],
					certifiedRange[3], certifiedRange[3]);

			monthlyPaymentRange(certifiedRange[2], certifiedRange[2],
					certifiedRange[3], certifiedRange[3]);

		}

		else {

			compareVSRMinMaxPayment(newRange[2], newRange[2], newRange[3],
					newRange[3]);

			monthlyPaymentRange(newRange[2], newRange[2], newRange[3],
					newRange[3]);

		}

	}

	else if (checkboxNew == true && checkboxUsed == true) {

		if ((jQuery('#searchNew').attr('checked') && jQuery('#searchUsed')
				.attr('checked'))
				|| (!jQuery('#searchNew').attr('checked') && !jQuery(
						'#searchUsed').attr('checked'))) {

			compareVSRMinMaxPayment(newRange[2], usedRange[2], newRange[3],
					usedRange[3]);

			monthlyPaymentRange(newRange[2], usedRange[2], newRange[3],
					usedRange[3]);

		}

		else if (jQuery('#searchUsed').attr('checked')) {

			compareVSRMinMaxPayment(usedRange[2], usedRange[2], usedRange[3],
					usedRange[3]);

			monthlyPaymentRange(usedRange[2], usedRange[2], usedRange[3],
					usedRange[3]);

		}

		else if (jQuery('#searchNew').attr('checked')) {

			compareVSRMinMaxPayment(newRange[2], newRange[2], newRange[3],
					newRange[3]);

			monthlyPaymentRange(newRange[2], newRange[2], newRange[3],
					newRange[3]);

		}

	}

	else if (checkboxNew == true && checkboxCertified == true) {

		if ((jQuery('#searchNew').attr('checked') && jQuery('#searchCertified')
				.attr('checked'))
				|| (!jQuery('#searchNew').attr('checked') && !jQuery(
						'#searchCertified').attr('checked'))) {

			compareVSRMinMaxPayment(newRange[2], certifiedRange[2],
					newRange[3], certifiedRange[3]);

			monthlyPaymentRange(newRange[2], certifiedRange[2], newRange[3],
					certifiedRange[3]);

		}

		else if (jQuery('#searchCertified').attr('checked')) {

			compareVSRMinMaxPayment(certifiedRange[2], certifiedRange[2],
					certifiedRange[3], certifiedRange[3]);

			monthlyPaymentRange(certifiedRange[2], certifiedRange[2],
					certifiedRange[3], certifiedRange[3]);

		}

		else if (jQuery('#searchNew').attr('checked')) {

			compareVSRMinMaxPayment(newRange[2], newRange[2], newRange[3],
					newRange[3]);

			monthlyPaymentRange(newRange[2], newRange[2], newRange[3],
					newRange[3]);

		}

	}

	else if (checkboxUsed == true && checkboxCertified == true) {

		if ((jQuery('#searchUsed').attr('checked') && jQuery('#searchCertified')
				.attr('checked'))
				|| (!jQuery('#searchUsed').attr('checked') && !jQuery(
						'#searchCertified').attr('checked'))) {

			compareVSRMinMaxPayment(usedRange[2], certifiedRange[2],
					usedRange[3], certifiedRange[3]);

			monthlyPaymentRange(usedRange[2], certifiedRange[2], usedRange[3],
					certifiedRange[3]);

		}

		else if (jQuery('#searchCertified').attr('checked')) {

			compareVSRMinMaxPayment(certifiedRange[2], certifiedRange[2],
					certifiedRange[3], certifiedRange[3]);

			monthlyPaymentRange(certifiedRange[2], certifiedRange[2],
					certifiedRange[3], certifiedRange[3]);

		}

		else if (jQuery('#searchUsed').attr('checked')) {

			compareVSRMinMaxPayment(usedRange[2], usedRange[2], usedRange[3],
					usedRange[3]);

			monthlyPaymentRange(usedRange[2], usedRange[2], usedRange[3],
					usedRange[3]);

		}

	}

	else if (checkboxNew == true) {

		if (jQuery('#searchNew').attr('checked')
				|| !jQuery('#searchNew').attr('checked')) {

			compareVSRMinMaxPayment(newRange[2], newRange[2], newRange[3],
					newRange[3]);

			monthlyPaymentRange(newRange[2], newRange[2], newRange[3],
					newRange[3]);

		}

	}

	else if (checkboxUsed == true) {

		if (jQuery('#searchUsed').attr('checked')
				|| !jQuery('#searchUsed').attr('checked')) {

			compareVSRMinMaxPayment(usedRange[2], usedRange[2], usedRange[3],
					usedRange[3]);

			monthlyPaymentRange(usedRange[2], usedRange[2], usedRange[3],
					usedRange[3]);

		}

	}

	else if (checkboxCertified == true) {

		if (jQuery('#searchCertified').attr('checked')
				|| !jQuery('#searchCertified').attr('checked')) {

			compareVSRMinMaxPayment(certifiedRange[2], certifiedRange[2],
					certifiedRange[3], certifiedRange[3]);

			monthlyPaymentRange(certifiedRange[2], certifiedRange[2],
					certifiedRange[3], certifiedRange[3]);

		}

	}

}

function compareVSRMinMaxPayment(minPayment1, minPayment2, maxPayment1,
		maxPayment2) {

	if (vsrMinPayment != 'null') {

		vsrMinPayment = Math.min(getvalWithoutComma(minPayment1),
				getvalWithoutComma(minPayment2));

		vsrMaxPayment = Math.max(getvalWithoutComma(maxPayment1),
				getvalWithoutComma(maxPayment2));

	}

}

var someForm;

var missingFields = FormUtility.getMissingRequired(document.forms["search"]);

function validate(someForm) {

	FormUtility.resetErrors();

	var missingFields = FormUtility.getMissingRequired(someForm);

	if (missingFields.length)
		throw new MissingRequiredError(missingFields);

	var badFields = FormUtility.getBadlyFormatted(someForm);

	var interestField = someForm["apr"];

	var interestFieldValue = interestField.value;

	if (interestFieldValue > 100 || isNaN(interestFieldValue))
		badFields.push(someForm);

	if (missingFields.length || badFields.length) {

		BadFormatSliderError(badFields);

		resetTextBox("#apr_label", aprValue);

		resetTextBox("#defaultDownPayment_label", defaultPaymentvalue);

		resetTextBox("#tradeInValue_label", tradeInValue);

		return false;

	} else
		return true;

}

function BadFormatSliderError(fieldList) {

	for ( var i = 0; i < fieldList.length; i++) {

		var currElem = fieldList[i];

		hightlightTextBox("#" + currElem.id);

	}

	alert(ERRORMESSAGE_ENTER_REQUIRED_DATA);

}

function hightlightTextBox(txtBoxId) {

	var currentValue = jQuery(txtBoxId).val();

	if (isNaN(currentValue) || currentValue < 0)
		jQuery(txtBoxId).addClass("highlightcolor");

}

function resetTextBox(txtBoxId, defaultValue) {

	var currentValue = jQuery(txtBoxId).val();

	if (isNaN(currentValue) || currentValue < 0) {

		jQuery(txtBoxId).attr('value', defaultValue);

		jQuery(txtBoxId).removeClass("highlightcolor");

	}

}

function onChangeOfValue() {

	someForm = document.forms["search"];

	var valid = false;

	try {

		valid = validate(someForm);

	} catch (err) {

		handleException(err);

	} finally {

		return valid;

	}

}

function monthlyRangeSliderReset(xml) {

	jQuery(xml).find('new').each(
			function() {

				newRange[2] = showNumberWithComma(parseInt(jQuery(this).find(
						'min').text()));

				newRange[3] = showNumberWithComma(parseInt(jQuery(this).find(
						'max').text()));

			});

	jQuery(xml).find('certified').each(
			function() {

				certifiedRange[2] = showNumberWithComma(parseInt(jQuery(this)
						.find('min').text()));

				certifiedRange[3] = showNumberWithComma(parseInt(jQuery(this)
						.find('max').text()));

			});

	jQuery(xml).find('used').each(
			function() {

				usedRange[2] = showNumberWithComma(parseInt(jQuery(this).find(
						'min').text()));

				usedRange[3] = showNumberWithComma(parseInt(jQuery(this).find(
						'max').text()));

			});

	jQuery(xml).find('combined').each(
			function() {

				combinedRange[4] = showNumberWithComma(parseInt(jQuery(this)
						.find('min').text()));

				combinedRange[5] = showNumberWithComma(parseInt(jQuery(this)
						.find('max').text()));

			});

	identifyCheckboxConfiguration();

	enableDisablePaymentRangeSlider();

	if ((!isVehicleDetails) && (!isResults)
			&& (jQuery("#paymentRangeRadio").attr('checked')))
		updateFilter();

	else if (isResults)
		updateFilter();

	if (jQuery("#priceRangeRadio").attr('checked')) {

		jQuery("#searchByPaymentSliderContainer").hide();

	}

}

function paymentPopupCalcToPaymentCalc(xml) {

	if (isVehicleDetails && hasCalc) {

		jQuery('#loanTermSelect')
				.attr('value', jQuery('#numberOfMonths').val());

		jQuery('#interestRate_label').attr('value', jQuery('#apr_label').val());

		jQuery('#trade_label').attr('value',
				jQuery('#tradeInValue_label').val());

		if (!isNaN(jQuery(xml).find('downPayment').text())
				&& jQuery(xml).find('downPayment').text() > 0) {

			jQuery('#downPayment_label').attr('value',
					jQuery(xml).find('downPayment').text());

		} else {

			if (jQuery("#monthlyPaymentField").val() != '')
				calculateDownPayment();

		}

		initPaymentCalc();

		if (jQuery("#monthlyPaymentField").val() != '')
			PaymentCalculatorHandler.clickCalculate();

	}

}

var autoClickPaymentRadio = false;

jQuery("#reestimate").click(
		function(event) {

			if (onChangeOfValue()) {

				var defaultDownPayment = parseFloat(jQuery(
						"#defaultDownPayment_label").val().replace(",", ""));

				if (!defaultDownPayment) {

					jQuery("#defaultDownPayment_label").attr('value', 0);

					defaultDownPayment = 0;

				}

				var tradeInValue = parseFloat(jQuery("#tradeInValue_label")
						.val().replace(",", ""));

				if (!tradeInValue) {

					jQuery("#tradeInValue_label").attr('value', 0);

					tradeInValue = 0;

				}

				var numberOfMonths = parseInt(jQuery("#numberOfMonths").val());

				var apr = parseFloat(jQuery("#apr_label").val());

				disablePaymentFields();

				jQuery.ajax( {

					type : "POST",

					async : false,

					dataType : "xml",

					data : "downPayment=" + defaultDownPayment
							+ "&tradeInValue=" + tradeInValue
							+ "&numberOfMonths=" + numberOfMonths + "&apr="
							+ apr,

					url : "setMonthlyPayment.ajax",

					success : function(xml) {

						monthlyRangeSliderReset(xml);

						paymentPopupCalcToPaymentCalc(xml)

					}

				});

				if (jQuery("#priceRangeRadio").attr('checked')) {

					autoClickPaymentRadio = true;

					jQuery("#paymentRangeRadio").trigger('click');

				}

			}

		});

var vehicleDetails = {};

var vehicleDetails = {

	launchOnStarPopup : function(make, dealerCode, isnew, iscertified) {

		var url;
		var baseUrl = "http://www.onstar.com/us_english/jsp/popup/pre_owned_offer.jsp";

		if (isnew) {

			url = "http://www.onstar.com/us_english/jsp/services/index.jsp?make="
					+ make
					+ "&model=homepage&deepLink=overview&custom=lmg&bac="
					+ dealerCode;

			window.open(url, 'CbltOnStarWindow',
					'scrollbars=yes,width=700,height=500');

		}

		else if (!isnew) {

			if ((make == 'cadillac') && (iscertified)) {

				url = "http://onstar.com/us_english/jsp/popup/pre_owned_offer_cadillac.jsp?cmp=DLR_PREOWNED_CAD&bac="
						+ dealerCode;

			} else if (make == 'cadillac') {

				url = baseUrl + "?cmp=DLR_PREOWNED_CAD&bac=" + dealerCode;

			}

			else {

				url = baseUrl + "?bac=" + dealerCode;

			}

			window.open(url, 'CbltOnStarWindow',
					'scrollbars=yes,width=750,height=500');

		}

	}

};

function validateZip() {

	var zipCode = jQuery.trim(jQuery('#txtZipCode').val());

	if (zipCode == '') {

		jQuery("#txtZipCode").css('background-color', '#FFFFFF');

		jQuery('#txtZipCode').attr('value', '');

		return true;

	}

	var someForm = document.search;

	try {

		FormUtility.resetErrors();

		var badFields = FormUtility.getBadlyFormatted(someForm);

		if (badFields.length)
			throw new BadFormatError(badFields);

	} catch (err) {

		handleException(err);

		return false;

	}

	return true;

}

function validateStockOrVIN() {

	var stockOrVIN = jQuery.trim(jQuery('#stockOrVIN').val());

	if (stockOrVIN == '') {

		jQuery('#stockOrVIN').attr('value', '');

		jQuery("#stockOrVIN").css('background-color', '#FFFFFF');

		return true;

	}

	var someForm = document.search;

	try {

		FormUtility.resetErrors();

		var badFields = FormUtility.getBadlyFormatted(someForm);

		if (badFields.length)
			throw new BadFormatError(badFields);

	} catch (err) {

		handleException(err);

		return false;

	}

	return true;

}

// This code is added so that on clicking dgp SearchWidget the widget doesnt
// close

jQuery('#redesignedSearchWidget').click( function(e) {

	e.stopPropagation();

});
