	/*var idFrom = null;
	if(window.captureEvents){
		window.captureEvents(Event.MOUSEOVER);
		window.onmouseover=checkIdFrom;
	}
	else{
		document.onmouseover=checkIdFromIE;
	}

	function checkIdFromIE(){
		var reltg = (event.fromElement) ? event.fromElement : null;
		if (reltg!= null){
			idFrom = reltg.id;
		}
	}

	function checkIdFrom(e){
		var reltg = (e.relatedTarget) ? e.relatedTarget: null;
		if (reltg!= null){
			idFrom = reltg.id;
		}
	}

    function trackingFirstTime(){
	if((idFrom != "goodyearDiv")&&(idFrom != "goodyearImg") && (idFrom != "generalDiv")&&(idFrom != "generalImg") && (idFrom != "dunlopDiv") && (idFrom != "dunlopImg") && (idFrom != "firestoneDiv") && (idFrom != "firestoneImg") && (idFrom != "tireDiscounts") && (idFrom != "tiresOfferMain") && (idFrom!=""))
    	{
    		aloneTracking('DealerTireOfferExpand');
    	}
    }*/
	//end tracking tire offers

	function sortDealers(criteria){
		dealerMapper.sortDealers(criteria);
	}

	function refreshDealerResults(){
		//dealerMapper.dealerResults();
		dealerMapper.paintPins();
		dealerMapper.paintListScroll();
		dealerMapper.paintMapScroll();
	}

	function centerAndOpenInfo(){
		dealerMapper.centerAndOpenInfo(dealerMapper.dealerList[0]);
	}

	function printPage(){
		window.print();
		//trackPrintPage();
	}

	function getUrlParams(){
		var s = document.location.search;
    	if (s.startsWith("?")) s = s.substr(1);
    	return s.toQueryParams();
	}

	function getDMAParams(urlForDMA){
		var s = urlForDMA;
		if (s.startsWith("?")) s = s.substr(1);
    	return s.toQueryParams();
	}

	function getDealerSearchUrl(params){
		var newUrl = $H(params).toQueryString();
    	return "/dealersearch/searchResult.jsp?"+newUrl;
	}

	function reloadResultsAndMessage(params){
    	//loadResultsInNewWindow(params);
    	//dealerMapper.centerMapOnAddress(start, 11);

    	//closeAll();
    	dealerMapper.clearMarkers();
    	dealerMapper.dealerList = [];
    	dealerMapper.loadXMLDocWithParameters(params);
    }

    function loadResultsInNewWindow(params){
    	document.location.href = getDealerSearchUrl(params);
    }

	function setDefaultZoomLevel(){
		dealerMapper.defaultZoomLevel = dealerMapper.defaultZoom;
	}

    function showLoadingMessage(){
    	hideDiv("listScroll");
    	hideDiv("mapScroll");
    	showDiv("overlay");
    	showDiv("frameReport");
    }

    function hideLoadingMessage(){
    	hideDiv("frameReport");
    	hideDiv("overlay");
    	showDiv("mapScroll");
    	showDiv("listScroll");
    	showDiv("inner_wrap");
    	paintMasthead();
    }

    function updateZipCodeField(zipCodeValue){
    	document.forms.dealerFoundForm.SearchByPostalCodePostalCode.value = zipCodeValue;
    	document.forms.advanceSearchForm.SearchByPostalCodePostalCode.value = zipCodeValue;
    }

    function changeProgramCodeValue(radioButton){
    	programCodeRadio = radioButton.value;
		document.forms.refineResultsForm.programCode.value = radioButton.value;
		//if(radioButton.value == 'prs') loadBrands(true);
		//else loadBrands(false);
   	}

   	function loadBrands(isPRS){
   		var selectObj = document.getElementById("BRANDID");
		//clear
	  	for (i = selectObj.length - 1; i>=0; i--) {
	      	selectObj.remove(i);
	    }
		var y=0;

		selectObj.options[y++] = new Option("Choose a Brand", "none");
		selectObj.options[y++] = new Option("All Brands", "");
		selectObj.options[y++] = new Option("Buick", "BU");
		selectObj.options[y++] = new Option("Cadillac", "CA");
		selectObj.options[y++] = new Option("Chevrolet", "CH");
		selectObj.options[y++] = new Option("GMC", "GC");
		if(!isPRS){
			selectObj.options[y++] = new Option("HUMMER", "HM");
		}
		selectObj.options[y] = new Option("Pontiac", "PG");
   	}

   	 function showListViewByPage(pageNumber){
   	 	dealerMapper.currentPage = pageNumber;
   	 	dealerMapper.paintListScroll();
   	 }

   	 /*
	  * Switch Dealer views among 'listView', 'mapView', 'listByPageView'
	  */
	 function listViewByPage(source){
	 	if(source == 'backward'){
			dealerMapper.prevPageInListScroll();
	 	}
	 	else if(source == 'forward'){
	 		dealerMapper.nextPageInListScroll();
	 	}

	 	/*var currentPageNumber = dealerMapper.currentPage;

	 	var listAllView = $("listAllView");
	 	var mapView = $("mapView");
	 	var currentPageView = $("listPage-"+currentPageNumber);

	 	var style = listAllView.style;
	 	if(style != null){
	 		style.display = "none";
	 	}
	 	style = mapView.style;
	 	if(style != null){
	 		style.display = "none";
	 	}

		if(currentPageView != null){
		 	style = currentPageView.style;
		 	if(style != null){
		 		style.display = "none";
		 	}
		}

	 	if(source == 'backward'){
	 		if(dealerMapper.currentPage > 1){
	 			dealerMapper.currentPage--;
	 			updateListViewPages(-1, dealerMapper.currentPage);
	 		}
	 		else{
	 			dealerMapper.currentPage = 1;
	 		}
	 	}
	 	else if(source == 'forward'){
	 		if(dealerMapper.currentPage < dealerMapper.pages){
	 			dealerMapper.currentPage++;
	 			updateListViewPages(+1, dealerMapper.currentPage);
	 		}
	 		else{
				dealerMapper.currentPage = dealerMapper.pages;
	 		}
	 	}
	 	else{
	 		dealerMapper.currentPage = source;
	 	}
	 	currentPageView = $("listPage-"+dealerMapper.currentPage);
	 	style = currentPageView.style
	 	if(style != null){
	 		style.display = "block";
	 	}
	 	var listByPageView = $("listByPageView");
	 	style = listByPageView.style
	 	if(style != null){
	 		style.display = "block";
	 	}*/
	 }

	 function mapViewByPage(source){
	 	if(source == 'backward'){
	 		dealerMapper.prevPageInMapScroll();
	 	}
	 	else if(source == 'forward'){
	 		dealerMapper.nextPageInMapScroll();
	 	}

	 	/*var currentPageNumber = dealerMapper.currentMapPage;
	 	var dealerList = dealerMapper.dealerList;
	 	var children = $("mapScroll").childNodes;

	 	if(source == 'backward' || source == 'initial'){
	 		currentPageNumber = currentPageNumber <= 1 ? 1: currentPageNumber-1;
	 	}
	 	else if(source == 'forward'){
	 		currentPageNumber = currentPageNumber >= dealerMapper.pagesMap ? dealerMapper.pagesMap: currentPageNumber+1;
	 	}

	 	var minDealer = currentPageNumber <= 1 ? 1: (currentPageNumber - 1) * dealerMapper.dealersMapByPage + 1;
	 	if(minDealer > dealerList.length ){
	 		minDealer = dealerList.length
	 	}
	 	var maxDealer = currentPageNumber == dealerMapper.pagesMap ? dealerList.length: currentPageNumber * dealerMapper.dealersMapByPage;

	 	for(var index = 0; index < children.length; index++){
	 		var child = children[index];
	 		if(index+1 >= minDealer && index+1 <= maxDealer){
	 			child.style.display = "block";
	 		}
	 		else{
	 			child.style.display = "none";
	 		}
	 	}
	 	dealerMapper.currentMapPage = currentPageNumber;

	 	var message = "Showing " + minDealer + "-" + maxDealer + " Dealers of " + dealerList.length;

	 	$("showing-top").update(message);
	 	$("showing-bottom").update(message);

	 	if(source != 'initial'){
	 		var dealer = dealerMapper.dealerList[minDealer-1];
	 		if(isDmaPage == true){
	 			hideShowDealerInfo(dealer.markerNumber);
	 		}

	 		if (isDmaPage == true){
	 			dealerMapper.closeInfoWindow();
				dealerMapper.centerMap(dealer.point, dealerMapper.defaultZoomLevel);
			}
			else {
				dealerMapper.centerAndOpenInfo(dealer);
			}

	 	}*/
	 }

	 function updateListViewPages(action, pageNumber){
		 var min = 1;
		 var max = dealerMapper.pages;
		 var dealersByPage = dealerMapper.dealersByPage;

		 var element = $("pageNumberLink-" + pageNumber);
		 var style = element.style;
		 if(action == 1){
			if(style.display == 'none'){
				style.display = "block";
				var toHideNumber = pageNumber - dealersByPage;
				element = $("pageNumberLink-" + toHideNumber);
				if(element != null){
					element.style.display = "none";
				}
			}
		 }
		 else{
			 if(style.display == 'none'){
					style.display = "block";
					var toHideNumber = pageNumber + dealersByPage;
					element = $("pageNumberLink-" + toHideNumber);
					if(element != null){
						element.style.display = "none";
					}
				}
		 }
	 }

	 var helpBoxArray = new Array("CollisionBodyShop", "GMPerformanceParts","TireProgram", "floatingDiv", "EverydayValueDealer", "SaturnAuthorizedServiceProvider");
	 function showHideHelpBox(helpBoxId){
	 	hideHelpBoxes();
	 	showHideDiv(helpBoxId);
	 }

	 function hideHelpBoxes(){
	 	for (var i = 0; i < helpBoxArray.length; i++){
	 		hideDiv(helpBoxArray[i]);
	 	}
	 }

	var errorMessagesArray = new Array("cityStateAdvSearchError","noneAdvancedSearchError", "twoOrMoreAdvancedSearchError", "zipAdvancedSearchError", "invalidZip","refineSearchError");
	function hideErrorMessages(){
		for (var i = 0; i < errorMessagesArray.length; i++){
	 		hideDiv(errorMessagesArray[i]);
	 	}
	}

	function closeAll(){
		hideHelpBoxes();
		hideErrorMessages();
	}

	//Events in different buttons (close, open and sort)
	function openRefineSearch(){
		aloneTracking(searchRefinedLinkTracking);
		hideDiv('sort_dealer_select');
		showDiv('refineSearch');

	}

	function openAdvancedSearch(){
		aloneTracking(searchAdvancedLinkTracking);
		hideDiv('sort_dealer_select');
		showDiv('advancedSearch');
	}

	function closeRefineSearch(){
		closeAll();
		hideDiv('refineSearch');
		showDiv('sort_dealer_select');
	}

	function closeAdvancedSearch(){
		closeAll();
		hideDiv('advancedSearch');
		showDiv('sort_dealer_select');
	}

	function doRefineSearch(){
		closeRefineSearch();
		showLoadingMessage();
		sendparamtoflash();
		setDefaultZoomLevel();
		reloadResultsInRefine(document.forms.refineResultsForm);

		window.setTimeout(hideLoadingMessage, 3000);
	}

	function doAdvancedSearch(){
		setDefaultZoomLevel();
		if(reloadResultsInAdvancedSearch(document.forms.advanceSearchForm)){
			closeAdvancedSearch();
			showLoadingMessage();
		}
		window.setTimeout(hideLoadingMessage, 3000);
	}

	function doUpdateSearch(){
		hideDiv('invalidZip');
		if (zipCodeCheckForm (document.forms.dealerFoundForm) == true){
			showLoadingMessage();
			reloadResultsInUpdate(document.forms.dealerFoundForm);
			window.setTimeout(hideLoadingMessage, 3000);
		}
	}

	function doSort(){
		showLoadingMessage();
		alert($('sortDealerSelect').value);
		doSortBySelect($('sortDealerSelect').value);
	}

	function doSortBySelect(sortFilter){
		//showLoadingMessage();
		sortDealers(sortFilter);
		refreshDealerResults();
		//centerAndOpenInfo();
		window.setTimeout(hideLoadingMessage, 3000);
	}

	// Reload the map form the different forms
	var reZipCode = new RegExp(/(^\d{5}$)|(^\d{5}-\d{4}$)/);

	function reloadResultsInRefine(searchForm) {
    	var doSearch = true;
    	var params = getUrlParams();
		var isPontiac = false;
		/******/
			var programCodeRadio;
			programCodeRadio = get_radio_value("programCodeRadio")
			document.forms.refineResultsForm.programCode.value = programCodeRadio;

		/*****/
    	if (isDmaPage){
    		params = getDMAParams(dmaUrl);
    	}
    	else{
			updateZipCodeField(params.SearchByPostalCodePostalCode);
		}

		params.BRANDID = searchForm.BRANDID.value;

	    if(searchForm.BRANDID.value == "PG"){
	    	params.programCode = new Array();
	    	for (var i =0 ; i < searchForm.programCode.length; i++){
				if(i == 0){
					 params.rdoOffers = searchForm.programCode[i].value;
				}
	    		if (searchForm.programCode[i].value!="none"){
	    			params.programCode[i] = searchForm.programCode[i].value;
	    		}
	    		else{
	    			params.programCode[i]="";
	    		}
	    	}
	    	if(searchForm.bfuSearch != null){
	    		params.bfuSearch = searchForm.bfuSearch.value;
	    	}
			if(searchForm.BRANDID.value == "PG")
	    		isPontiac = true;
	    }
	    else {

	    	 params.programCode = searchForm.programCode.value;
			 params.rdoOffers = searchForm.programCode.value;
	    }

		hideDiv('refineSearchError');
		if (params.BRANDID == "none" && params.programCode == "none" ){
			showDiv('refineSearchError');
			doSearch = false;
		}

		if (params.BRANDID == "none"){
			params.BRANDID = "";
		}
		if (params.programCode == "none"){
			params.programCode = "";
		}
    	if (doSearch){
			if (isPontiac){
				loadResultsInNewWindow(params);
			}
			else {
				reloadResultsAndMessage(params);
			}
		}
	 }

	function reloadResultsInUpdate(searchForm) {

		var doSearch = true;
    	var params = getUrlParams();

    	if (isDmaPage){
    		params = getDMAParams(dmaUrl);
    	}

		updateZipCodeField(searchForm.SearchByPostalCodePostalCode.value);

		params.BRANDID = searchForm.BRANDID.value;
		params.programCode = searchForm.programCode.value;
 		params.SearchByPostalCodePostalCode = searchForm.SearchByPostalCodePostalCode.value;
   		params.SearchType = "ByPostalCode";

   		if(params.bfuSearch != null){
   			params.bfuSearch = "";
   		}

		//if (isDmaPage){
    		loadResultsInNewWindow(params);
    	//}
    	//else{
			//reloadResultsAndMessage(params);
		//}

	 }

	 function reloadResultsInAdvancedSearch(searchForm) {
	   	var doSearch = true;
    	var pair1 = 0;
    	var pair2 = 0;
    	var pair3 = 0;

    	var params = getUrlParams();

    	if (isDmaPage){
    		params = getDMAParams(dmaUrl);
    	}
		updateZipCodeField(searchForm.SearchByPostalCodePostalCode.value);

    	//SearchByPostalCodePostalCode
    	hideDiv('zipAdvancedSearchError');
   		if(searchForm.SearchByPostalCodePostalCode.value != "" && searchForm.SearchByPostalCodePostalCode.value != "Enter zip code" ){
    		params.SearchByPostalCodePostalCode = searchForm.SearchByPostalCodePostalCode.value;
    		params.SearchByPostalCodeProximity = searchForm.SearchByPostalCodeProximity.value;
    		params.SearchType = "ByPostalCode";
    		pair1=1;

    		if(!reZipCode.test(params.SearchByPostalCodePostalCode)){
    			showDiv('zipAdvancedSearchError');
    			doSearch = false;
    		}
    	}

    	//SearchByCityStateCityName
    	hideDiv('cityStateAdvSearchError');
   		if(searchForm.SearchByCityStateCityName.value != "" && searchForm.SearchByCityStateCityName.value != "Enter City"  ){
    		params.SearchByCityStateCityName = searchForm.SearchByCityStateCityName.value;
    		params.SearchByCityStateProximity = searchForm.SearchByCityStateProximity.value;
    		params.SearchByCityStateStateName = searchForm.state.value;
    		params.SearchType = "ByCityState";
    		pair2=1;

   			if(searchForm.state.value == ""){
   				showDiv('cityStateAdvSearchError');
   				doSearch = false;
   			}
    	}


    	//SearchByVendorVendorName
		if(searchForm.SearchByVendorVendorName.value != "" && searchForm.SearchByVendorVendorName.value != "Enter Dealer Name" ){
    		params.SearchByVendorVendorName = searchForm.SearchByVendorVendorName.value;
    		params.dealerstate = searchForm.dealerstate.value;
    		params.SearchType = "ByVendor";
    		pair3=1;
    	}

    	// check if select onlye one option in the search
    	hideDiv('twoOrMoreAdvancedSearchError');
    	hideDiv('noneAdvancedSearchError');

    	if (pair1 + pair2 + pair3 >1  && doSearch)
		{
			showDiv('twoOrMoreAdvancedSearchError');
			doSearch=false;
		}
		else if (pair1 + pair2 + pair3 <1  && doSearch) {
			showDiv('noneAdvancedSearchError');
			doSearch=false;
		}
		if (doSearch){
			//if (isDmaPage){
    			loadResultsInNewWindow(params);
	    	//}
	    	//else{
			//	reloadResultsAndMessage(params);
			//}
		}

		return doSearch;
    }

	// Close box when click outside
	function clickedOutsideElement(e, elemId) {

		if(!e)
			e=window.event;

	    var theElem = getEventTarget(e);

	    while(theElem != null) {
	        if(theElem.id == elemId)
	            return false;

	        theElem = theElem.offsetParent;
	    }

	    return true;
	}

	function getEventTarget(evt) {
	    var targ = (evt.target) ? evt.target : evt.srcElement;

	    if(targ != null) {
	        if(targ.nodeType == 3)
	            targ = targ.parentNode;
	    }

	    return targ;
	}

	document.onclick = function(e) {
		if(clickedOutsideElement(e,'floatingDiv')){
	        hideDiv('floatingDiv');
	    }

		if(clickedOutsideElement(e,'GoodwrenchGo')){
	        hideDiv('GoodwrenchGo');
	    }
		if(clickedOutsideElement(e,'GMPerformanceParts')){
	        hideDiv('GMPerformanceParts');
	    }

		if(clickedOutsideElement(e,'CollisionBodyShop')){
	        hideDiv('CollisionBodyShop');
	    }

	    if(clickedOutsideElement(e,'TireSalesService')){
	        hideDiv('TireSalesService');
	    }
	}
function getFlashMovie(movieName) {

 	var isIE = navigator.appName.indexOf("Microsoft") != -1;
 	return (isIE) ? window[movieName] :
 	document[movieName];
 }
function sendparamtoflash(){

	if (document.getElementById("parts").checked){
		rdoOffers = "gpp";
	}
	if (document.getElementById("tires").checked){
		rdoOffers = "tir";
	}
	if (document.getElementById("collision").checked){
		rdoOffers = "gac";
	}
	if (document.getElementById("everyday").checked){
		rdoOffers = "prs";
	}
	if (document.getElementById("saturnAuthServ").checked){
		rdoOffers = "saa";
	}
}

function openListTab(){
	switchTab('listView', 'mapView');
	switchTab('list_tab', 'map_tab');
	dealerMapper.paintListScroll();
}

function openMapTab(){
	switchTab('mapView', 'listView');
	switchTab('map_tab', 'list_tab');
	dealerMapper.paintPins();
	dealerMapper.paintMapScroll();
}

function viewAllOnList(){
	dealerMapper.paintAllListScroll();
}
 function get_radio_value(group) {

 	var rds = document.getElementsByName(group);
 	for (var i=0; i < rds.length; i++)    {
 		if (rds[i].checked)       {
 			var rad_val = rds[i].value;
 			return  rad_val;
 		}
 	}
 }