/*************************************************************************/
/**********************************BackEnd********************************/
/** ********************************************************************** */
var dealersFound = true;
// When selecting RAQ link from dealer results page the distance value is set as a URL parameter
// due that search by Bac code (the search done when selecting one singular dealer) does not retrieve
// the distance since no postal code or proximity values are needed.
// So this global variable will be set in jsp if the parameter exist and it will be used in this javascript
// if the value is not empty.
var dealerDistance=0;
var showLinks=false;
var flag = false

// Parse Dealer XML (Only parse)
// Para: xmlDom -> called by makerequest
function parseDealerComplete(xmlDoc) {
	parseDealer(xmlDoc);
	if (dealersFound){
		showDealers();
		$('zipchange').style.visibility='visible';
		showLinks = false;
		if (dealerData.length >= 4 && !flag)			
				$('sellAllDealersLink').setStyle('display','inline');					
		else
			$('sellAllDealersLink').setStyle('display','none');		
	}
	if(showLinks)	
		$('zipchange').style.visibility='hidden';	
	
}

// Insert Dealers (Make the Request throught makeRequest())
// Param Bac -> Id of the dealer - > get the rest of the information from the
// form
// Param Na -> Geth the infromation from the form
function insertDealers() {
	var locate_zip = $(LOCATE_ZIP);
	var zip_code = $(ZIP_CODE);
	DESIRED_COUNT_DEALER = MAX_DEALER_RESULT;
	zip_code.value = locate_zip.value;

	setDealerSelected(false);

	if(insertDealers.arguments[0] == "SEEALL")
		seeAllMode=true;
	else seeAllMode=false;

	if (insertDealers.arguments.length == 1
			&& insertDealers.arguments[0] != "SEEALL") {
		$(NAME_DIV_LOCATE_ZIPCODE).style.display = "none";
		showAdvanceSearch(false);
		$(NAME_DIV_DEALERS).style.display = "block";
		showDealerHeaderSelected(true);
		$(NAME_ZIP_CHANGE).style.visibility = "hidden";
		$(NAME_ZIP_CHANGE).style.display = "none";
		$(NAME_DIV_DEALERS).innerHTML = LOADING_IMG;
		var replaces = {
			SEARCHBYCITYSTATEPROXIMITY :SEARCH_BY_CITY_STATE_PROXIMITY_DEALER,
			SEARCHBYPOSTALCODEPROXIMITY :SEARCH_BY_POSTAL_CODE_PROXIMITY_DEALER,
			DESIREDCOUNT :DESIRED_COUNT_DEALER,
			BRANDID :BRANDIDSIF,
			BAC :insertDealers.arguments[0]
		};
		makeRequest(REQUEST_DEALER_URL
				+ REQUEST_DEALER_URL_PARAM_BAC.substitute(replaces),
				"parseDealerComplete", "xml", "dealerLoadFail");
		indexDealer = 0;
		return;
	}
	if (zip_code.value == "Zip" && !showDealerResultsForAdvanceSearch && $(RAQ_POP_ZIP)) {
		zip_code.value = $(RAQ_POP_ZIP).value;
	}
	if (showDealerResultsForAdvanceSearch || validateZip(zip_code.value)) {
		if (!showDealerResultsForAdvanceSearch) {
			setZipCodeData(zip_code.value);
		}
		// TODO: Added designed count.. move to appropriate place.
		if (insertDealers.arguments[0] != "SEEALL") {
			DESIRED_COUNT = DEFAULT_DESIRED_COUNT_DEALER_RESULT;
			$(NAME_SEE_ALL_LINK).setStyle('display','inline');
		} else {
			DESIRED_COUNT = MAX_DEALER_RESULT;
			$(NAME_SEE_ALL_LINK).setStyle('display','none');
		}

		if ($(NAME_DIV_ADVANCE_SEARCH).style.display == "block"
				&& $(FORM_DL_PROXIMITY).value != "") {
			SEARCH_BY_POSTAL_CODE_PROXIMITY_DEALER = $(FORM_DL_PROXIMITY).value			
			//DESIRED_COUNT = DESIRED_COUNT_DEALER;				
		}

		$(NAME_DIV_LOCATE_ZIPCODE).style.display = "none";
		showAdvanceSearch(false);
		$(NAME_DIV_DEALERS).style.display = "block";
		showDealerHeaderSelected(true);
		
		$(NAME_ZIP_CHANGE).style.visibility = "hidden";
		$(NAME_ZIP_CHANGE).style.display = "none";
		
		
			
		if (insertDealers.arguments[0] != "SEEALL"){
			$(NAME_DIV_DEALERS).innerHTML = LOADING_IMG;			
		}
		
		

		var DL_REQUEST_URL_PARAM = REQUEST_DEALER_URL_PARAM;

		if (showDealerResultsForAdvanceSearch) {
			if ($(FORM_DEALER_NAME_2).value != "") {
				var replaces = {
					SEARCHBYCITYSTATEPROXIMITY :SEARCH_BY_CITY_STATE_PROXIMITY_DEALER,
					SEARCHBYPOSTALCODEPROXIMITY :SEARCH_BY_POSTAL_CODE_PROXIMITY_DEALER,
					DESIREDCOUNT :DESIRED_COUNT,
					SEARCHTYPE :SEARCH_TYPE_DEALER_NAME,
					BRANDID :BRANDIDSIF,
					SEARCHBYVENDORCITYNAME :$(FORM_CITY_NAME_2).value,
					SEARCHBYVENDORSTATENAME :$(FORM_STATE_NAME_2).value,
					SEARCHBYVENDORVENDORNAME :$(FORM_DEALER_NAME_2).value
				};
				DL_REQUEST_URL_PARAM = REQUEST_DEALER_URL_PARAM_DEALER_NAME;
			} else {
				var replaces = {
					SEARCHBYCITYSTATEPROXIMITY :SEARCH_BY_CITY_STATE_PROXIMITY_DEALER,
					SEARCHBYPOSTALCODEPROXIMITY :SEARCH_BY_POSTAL_CODE_PROXIMITY_DEALER,
					DESIREDCOUNT :DESIRED_COUNT,
					SEARCHTYPE :SEARCH_TYPE_CITY_STATE,
					BRANDID :BRANDIDSIF,
					SEARCHBYCITYSTATECITYNAME :$(FORM_CITY_NAME_1).value,
					SEARCHBYCITYSTATESTATENAME :$(FORM_STATE_NAME_1).value
				};
				DL_REQUEST_URL_PARAM = REQUEST_DEALER_URL_PARAM_CITY_STATE;
			}
		} else {
			// standard zip search
			var replaces = {
				SEARCHBYCITYSTATEPROXIMITY :SEARCH_BY_CITY_STATE_PROXIMITY_DEALER,
				SEARCHBYPOSTALCODEPROXIMITY :SEARCH_BY_POSTAL_CODE_PROXIMITY_DEALER,
				DESIREDCOUNT :DESIRED_COUNT,
				SEARCHTYPE :SEARCH_TYPE_DEALER,
				BRANDID :BRANDIDSIF,
				ZIPCODE :getZipCodeData()
			};
		}
		makeRequest(REQUEST_DEALER_URL
				+ DL_REQUEST_URL_PARAM.substitute(replaces),
				"parseDealerComplete", "xml", "dealerLoadFail");
		
		showLinks=true;		
	}
}

//This function removes the last value of an array and then returns it
function removeLastValue(arrayData){
	newData=new Array();
	for(i=0; i<arrayData.length-1; i++)
        newData[i]=arrayData[i]

	return newData;
}

// Parse the xml from makerequest of dealer
// Param: Xml -> XmlDom from gAjaxTool
function parseDealer(xmlDoc) {
	data = new Array();
	var error = xmlDoc.getElementsByTagName("error");
	if (error.length > 0) {
		messageFailDealer(DEALER_PARSE_ERROR);
		$('sellAllDealersLink').setStyle('display','none');
		return;
	}
	var dealers = xmlDoc.getElementsByTagName("dealer");
	//Remove the see all link if there is less than 4 dealers
	if (dealers.length <= 4)
		$('sellAllDealersLink').style.display = "none";
	else {
		 if (!seeAllMode) {
		 	$('sellAllDealersLink').style.display = "inline";
		 	dealers = removeLastValue(dealers);

		 }
	}



	/*
	 * if(MAX_DEALER > dealers.length) bucle = dealers.length; else bucle =
	 * MAX_DEALER; if(bucle==0){ dealerData = null; return; }
	 */
	bucle = dealers.length;
	if (bucle == 0) {
		// messageFailDealer(DEALER_PARSE_ERROR);
//$(NAME_DIV_NO_DEALERS_FOUND_MSG).style.display = "block";
		dealerLoadFail();
		// $(NAME_DIV_LOCATE_ZIPCODE).style.display="block";
		// $(NAME_ZIP_CHANGE).style.display="block";
//showAdvanceSearch(true);
		dealersFound = false;
		return;
	} else {
		dealersFound = true;
		//$(NAME_DIV_NO_DEALERS_FOUND_MSG).style.display = "none";

	}
	for (i = 0; i < bucle; i++) {
		dealer = new Array();
		try {
			dealer[INDEX_DEALER_NAME] = dealers[i].getElementsByTagName('name')
					.item(0).childNodes.item(0).data;
		} catch (e) {
			dealer[INDEX_DEALER_NAME] = NA;
		}
		try {
			if (dealers[i].getElementsByTagName('distance').item(0).childNodes.item(0).data == "0.0") {
				dealer[INDEX_DEALER_DISTANCE] = dealerDistance;
			}else {
				dealer[INDEX_DEALER_DISTANCE] = dealers[i].getElementsByTagName('distance').item(0).childNodes.item(0).data;
			}
		} catch (e) {
			dealer[INDEX_DEALER_DISTANCE] = NA;
		}
		try {
			dealer[INDEX_DEALER_STREET] = dealers[i].getElementsByTagName('street').item(0).childNodes.item(0).data;
		} catch (e) {
			dealer[INDEX_DEALER_STREET] = NA;
		}
		try {
			dealer[INDEX_DEALER_CITY] = dealers[i].getElementsByTagName('city')
					.item(0).childNodes.item(0).data;
		} catch (e) {
			dealer[INDEX_DEALER_CITY] = NA;
		}
		try {
			dealer[INDEX_DEALER_REGION_CODE] = dealers[i].getElementsByTagName('regionCode').item(0).childNodes.item(0).data;
		} catch (e) {
			dealer[INDEX_DEALER_REGION_CODE] = NA;
		}
		try {
			dealer[INDEX_DEALER_POSTAL_CODE] = dealers[i].getElementsByTagName('postalcode').item(0).childNodes.item(0).data;
		} catch (e) {
			dealer[INDEX_DEALER_POSTAL_CODE] = NA;
		}
		try {
			dealer[INDEX_DEALER_MANAGER_NAME] = dealers[i]
					.getElementsByTagName('bpManagerName').item(0).childNodes
					.item(0).data;
		} catch (e) {
			dealer[INDEX_DEALER_MANAGER_NAME] = NA;
		}
		try {
			dealer[INDEX_DEALER_PHONE_NUMBER] = dealers[i]
					.getElementsByTagName('mainPhoneNumber').item(0).childNodes
					.item(0).data;
		} catch (e) {
			dealer[INDEX_DEALER_PHONE_NUMBER] = NA;
		}
		try {
			dealer[INDEX_DEALER_FAX_NUMBER] = dealers[i].getElementsByTagName('faxNumber').item(0).childNodes.item(0).data;
		} catch (e) {
			dealer[INDEX_DEALER_FAX_NUMBER] = NA;
		}
		try {
			dealer[INDEX_DEALER_MAP_URL] = dealers[i].getElementsByTagName('mapURL').item(0).childNodes.item(0).data;
		} catch (e) {
			dealer[INDEX_DEALER_MAP_URL] = NA;
		}
		try {
			dealer[INDEX_DEALER_DIRECTION_URL] = dealers[i]
					.getElementsByTagName('directionURL').item(0).childNodes
					.item(0).data;
		} catch (e) {
			dealer[INDEX_DEALER_DIRECTION_URL] = NA;
		}
		try {
			dealer[INDEX_DEALER_LATITUDE] = dealers[i].getElementsByTagName('latitude').item(0).childNodes.item(0).data;
		} catch (e) {
			dealer[INDEX_DEALER_LATITUDE] = 0;
		}
		try {
			dealer[INDEX_DEALER_LONGITUDE] = dealers[i].getElementsByTagName('longitude').item(0).childNodes.item(0).data;
		} catch (e) {
			dealer[INDEX_DEALER_LONGITUDE] = 0;
		}
		try {
			dealer[INDEX_DEALER_EMAIL] = dealers[i].getElementsByTagName('email').item(0).childNodes.item(0).data;
		} catch (e) {
			dealer[INDEX_DEALER_EMAIL] = NA;
		}
		try {
			dealer[INDEX_DEALER_BAC] = dealers[i].getElementsByTagName('bac')
					.item(0).childNodes.item(0).data;
		} catch (e) {
			dealer[INDEX_DEALER_BAC] = NA;
		}
		try {
			dealer[INDEX_DEALER_WEBSITE] = dealers[i].getElementsByTagName('website').item(0).childNodes.item(0).data;
		} catch (e) {
			dealer[INDEX_DEALER_WEBSITE] = NA;
		}
		try {
			dealer[INDEX_DEALER_TYPE] = dealers[i].getElementsByTagName('dealerType').item(0).childNodes.item(0).data;
		} catch (e) {
			dealer[INDEX_DEALER_TYPE] = NA;
		}
		data[i] = dealer;
	}
	dealerData = data;	
}

/** ********************************************************************** */
/** ********************************FrontEnd******************************* */
/** ********************************************************************** */

// Show Dealer on browser (Only Show)
// Param: Na -> get the information from the form
// If global dealers get only one, this should be show

function formatNumber(phone){
	var pho1 = phone.substring(0,3);
	var pho2 = phone.substring(3,6);
	var pho3 = phone.substring(6,10);
	
	return pho1 + "-" + pho2 + "-" + pho3;
}
function showDealers() {
	var htmlTmp = "";
	$(NAME_DIV_LOCATE_ZIPCODE).style.display = "none";
	showAdvanceSearch(false);
	$(NAME_DIV_DEALERS).style.display = "block";
	showDealerHeaderSelected(true);
	//Will hide the "Advance Search" and "See All" links if the dealer is known
	if(getURLParam(PARAM_BAC)!=""){
		$('zipchange').setStyle('visibility','hidden');
	}else{
		$('zipchange').setStyle('visibility','visible');
	}

	$(NAME_ZIP_CHANGE).style.display = "block";
	if (dealerData != null) {
		try {
			var htmlTmp = htmlTmp + "<ul id=\"dealersData\">";
			dealerCount = dealerData.length;
			// Show dealer record with Radion button.
			if (dealerData.length == 1) {
				if (getZipCodeData() == null) {
					setZipCodeData(dealerData[0][INDEX_DEALER_POSTAL_CODE],
							true);
					$(LOCATE_ZIP).value = getZipCodeData();
				}
				showDealerSelected(-1); // -1 is just indicator for showing
										// selected dealer. In actual it should
										// be 0
				switchWinddownYears(dealerData[0][INDEX_DEALER_TYPE]);

				// Following code return can be commented to show single dealer
				// in same pattern as regular result page - new RAQ changes.
				return;
			}
			var altCssClass = "";
			for (dI = 0; dI < dealerData.length; dI++) {
				tmpMsi = "";
				if ((dI+1)%2 != 0) {
					altCssClass = "class=\"altDealerRow " + dealerData[dI][INDEX_DEALER_TYPE] + "\"";
				} else {
					altCssClass = "class=\"" + dealerData[dI][INDEX_DEALER_TYPE] + "\"";
				}
				var selectedRadio = "";
				if (dealerData.length == 1)
				selectedRadio = "CHECKED";	
				var phone = dealerData[dI][INDEX_DEALER_PHONE_NUMBER];
				htmlTmp = htmlTmp
						+ "<TABLE id='tableSelectedDealer' "
						+ altCssClass
						+ ">"
						+ "<TR>"
						+ "<TD class='dealerListRadio' rowspan='5'>"
						+ "<span class='selectbutton'> <input type=\"radio\" value=\"\" id=\"selectedDealerID\" "
						+ " name=\"selectedDealerID\" value=\"selectedDealerID"
						+ i
						+ "\" "
						+ selectedRadio
						+ " onClick=\"switchWinddownYears(\'" + dealerData[dI][INDEX_DEALER_TYPE] + "\');" + "showDealerSelected("
						+ dI
						+ ");contactDealerTracking('"
						+ BRAND
						+ "','"
						+ brandObj
						+ "');\"></span>"
						+ "</TD>"
						+ "<TD valign='top' align='left' class='dealerNameTD'>"
						+ "<span class='dealername'>"
						+ dealerData[dI][INDEX_DEALER_NAME]
						+ "</span>"
						+ "</TD>"
						+ "</TR>"
						+ "<TR>"
						+ "<TD valign='top' align='left'>"
						+ " <span class='distance'>Distance:</span>"
						+ " <span>"
						+ format_number(dealerData[dI][INDEX_DEALER_DISTANCE],
								2) + " miles</span>" + "</TD>" + "</TR>"
						+ "<TR>" + "<TD valign='top' align='left'>"
						+ " <span class='address'>"
						+ dealerData[dI][INDEX_DEALER_STREET] + "</span>"
						+ " <span class='address'>"
						+ dealerData[dI][INDEX_DEALER_CITY] + ", "
						+ dealerData[dI][INDEX_DEALER_REGION_CODE] + " "
						+ dealerData[dI][INDEX_DEALER_POSTAL_CODE] + "</span>"
						+ "</TD>" + "</TR>" + "<TR>"
						+ "<TD valign='top' align='left' class='phoneTD'>"
						+ " <span class='phone'>"
						+ formatNumber(phone) + "</span>"
						+ "</TD>" + "</TR>" + "</TABLE>";
				/*
				 * htmlTmp = htmlTmp + "<li> <dl> <dt class='dealername'>
				 * <span>"+ dealerData[i][INDEX_DEALER_NAME]+"</span> (" +
				 * format_number(dealerData[i][INDEX_DEALER_DISTANCE],2) + "
				 * miles) " + tmpMsi + "</dt> " + "<dt class='address'>" +
				 * dealerData[i][INDEX_DEALER_STREET] + "</dt><dt class='address'>" +
				 * dealerData[i][INDEX_DEALER_CITY] + ", " +
				 * dealerData[i][INDEX_DEALER_REGION_CODE] + " " +
				 * dealerData[i][INDEX_DEALER_POSTAL_CODE] + "</dt><span
				 * class='selectbutton' style='{right:0px}'> <input
				 * type=\"button\" value=\"Select\"
				 * onClick=\"showDealerSelected(" + i +
				 * ");contactDealerTracking('"+BRAND+"','"+brandObj+"');\"></span></dt>" + "</dd> " + "</dl>
				 * </li> <li> <hr> </li>";
				 */
			}
			htmlTmp = htmlTmp + "</ul>";
			$(NAME_DIV_DEALERS).innerHTML = htmlTmp;
		} catch (e) {
			messageFailDealer(e.description);
		}
	} else {
		if (getURLParam(PARAM_BAC) != "") {
			messageFailDealer(DEALER_BAC_ERROR);
		} else {
			dealerLoadFail();
		}
	}
	if ($(NAME_DIV_DROPDOWNS).style.display=="none") { // There is a selected vehicle?
		switchWinddownDealers(SELECTED_YEAR);  // Then turn-off the Wind-Down dealers.
	} else if ($(SELECT_ID_YEAR).selectedIndex > 0) { // Year is selected then zip is put.
		switchWinddownDealers($(SELECT_ID_YEAR).value);
	}
}

function externalLink(url) {
	window.open(BASE_CONTEXT
			+ '/pages/misc/instersticial/popupToExteriorLink.do?newURL=' + url);
}

// Show Selected Dealer
// Param: index -> show the deleares in the index of global array (Dealer)
function showDealerSelected(selected) {
	var selectedFlag = false;
	if (selected == -1) {
		selectedFlag = true;
		selected = 0;
	}
	$(NAME_DIV_LOCATE_ZIPCODE).style.display = "none";
	showAdvanceSearch(false);
	$(NAME_DIV_DEALERS).style.display = "block";
	showDealerHeaderSelected(true);
	// As per new RAQ do not show advance search if coming from vehicle locator.
	// alert(vin);
	var vin = getURLParam(PARAM_VIN);
	if (vin != "") {
		$(NAME_ZIP_CHANGE).style.visibility = "hidden";
		$(NAME_ZIP_CHANGE).style.display = "none";
	}
	var ButtonChangeDealer = "";
	if (vin == "") {
		if (dealerData.length > 4){
			/*ButtonChangeDealer = "<li><a href=\"#\" onclick=\"insertDealers()\" />Change Dealer</a></li>";
		else*/			
			if (selected == -1 )
			$("sellAllDealersLink").style.display = "inline";			
			ButtonChangeDealer = "<li><a href=\"#\" onclick=\"changeSelectedDealer()\" />Change Dealer</a></li>";
			
		}else{			
			if (selected == -1 )
				$("sellAllDealersLink").style.display = "none";				
		}
					
		
	}
	/*
	 * var website_direction = ""; if(dealerData[selected][INDEX_DEALER_WEBSITE] !=
	 * ""+NA){ website_direction += "<dt class='website'><a href='#'
	 * onclick=externalLink('"+dealerData[selected][INDEX_DEALER_WEBSITE]+"')>Website</a></dt>"; }
	 * website_direction += "<dt class='mapsDirection'><a
	 * href='"+BASE_CONTEXT+"/tools/dealerlocator/dealerdetail.do?latitude="+dealerData[selected][INDEX_DEALER_LATITUDE]+"&longitude="+-dealerData[selected][INDEX_DEALER_LONGITUDE]+"&searchType=SearchByVendorId&BAC_NUMBER="+dealerData[selected][INDEX_DEALER_BAC]+"'>Maps &
	 * Directions</a></dt>"
	 */
	if (selectedFlag) {
		// TODO: If dealer selection is not to be shown without radion.
		
		
		tmpMsi = "";

		var phone = dealerData[selected][INDEX_DEALER_PHONE_NUMBER];
		
		if(document.getElementById("linkBack").value == "dl"){
			$(NAME_DIV_DEALERS).innerHTML = "<dl id=\"dealersdealerData\"> <dt class='dealername'>"
				+ "<table id='tblDealerNameLink'><tr><td valign='top' align='left'><span>"
						+ dealerData[selected][INDEX_DEALER_NAME]
				+ "</span></td></tr></table></dt>"
				+ "<dt class='distance'>Distance: </dt> <dt class='distance' style='width:100%;float:left'>"
				+ dealerData[selected][INDEX_DEALER_DISTANCE]
				+ " miles</dt> "
				// + "<dt class='certifiedmanager'> GM Certified Internet
				// Manager: </dt> <dd class='certifiedmanager'>" +
				// dealerData[selected][INDEX_DEALER_MANAGER_NAME] + "</dd> "
				+ "<dt class='address'>"
				+ dealerData[selected][INDEX_DEALER_STREET]
				+ "</dt><dt class='address'>"
				+ dealerData[selected][INDEX_DEALER_CITY]
				+ ", "
				+ dealerData[selected][INDEX_DEALER_REGION_CODE]
				+ " "
				+ dealerData[selected][INDEX_DEALER_POSTAL_CODE]
				+ "</dt> "
				+ "<dt class='phone'> Phone: </dt> <dt class='phone' style='width:100%;float:left'>"
				+ formatNumber(phone)  + "</dt> "
				// + "<dt class='fax'> Fax: </dt> <dd class='fax'>" +
				// dealerData[selected][INDEX_DEALER_FAX_NUMBER] + "</dd>"
				// + website_direction
				+ ButtonChangeDealer + "</dl> </dt> </dl>";
			
		}else{
	   
	   var selectedRadio = "CHECKED";	
	   $(NAME_DIV_DEALERS).innerHTML ="<table id='tableSelectedDealer' style='margin-top:10px'>"						
						+ "<tr>"
						+ "<td class='dealerListRadio' rowspan='5' style='padding-left:20px;'>"
						+ "<span class='selectbutton'> <input type=\"radio\" value=\"\" id=\"selectedDealerID\" "
						+ " name=\"selectedDealerID\" value=\"selectedDealerID"
						+ i
						+ "\" "
						+ "checked=\"checked\""						
						+ "\"></span>"
						+ "</td>"
						+ "<td valign='top' align='left'>"
						+ "<dt class='dealername'>"
						+ "<table id='tblDealerNameLink'><tr><td valign='top' align='left'><span>"
						+ dealerData[selected][INDEX_DEALER_NAME]
						+ "</span></td></tr></table></dt>"
						+ "<dt class='distance'>Distance: </dt> <dd class='distance' style='width:100%;float:left'>"
						+ dealerData[selected][INDEX_DEALER_DISTANCE]
						+ " miles</dd> "
						// + "<dt class='certifiedmanager'> GM Certified Internet
						// Manager: </dt> <dd class='certifiedmanager'>" +
						// dealerData[selected][INDEX_DEALER_MANAGER_NAME] + "</dd> "
						+ "<dt class='address'>"
						+ dealerData[selected][INDEX_DEALER_STREET]
						+ "</dt><dt class='address'>"
						+ dealerData[selected][INDEX_DEALER_CITY]
						+ ", "
						+ dealerData[selected][INDEX_DEALER_REGION_CODE]
						+ " "
						+ dealerData[selected][INDEX_DEALER_POSTAL_CODE]
						+ "</dt> "
						+ "<dt class='phone'> Phone: </dt> <dd class='phone' style='width:100%;float:left'>"
						+ dealerData[selected][INDEX_DEALER_PHONE_NUMBER] + "</dd> "
						// + "<dt class='fax'> Fax: </dt> <dd class='fax'>" +
						// dealerData[selected][INDEX_DEALER_FAX_NUMBER] + "</dd>"
						// + website_direction
						+ ButtonChangeDealer + "</dl> </dt> </dl>"
						+ "</td>" + "</tr>" + "</table>";
		}
	}
	indexDealer = selected;
	setDealerSelected(true);
	/*
	 * if(dealerData[selected][INDEX_DEALER_EMAIL] != NA){ var replaces =
	 * {EMAIL: dealerData[selected][INDEX_DEALER_EMAIL]};
	 * $(EMAIL_GM_MANAGER).innerHTML =
	 * HTML_EMAIL_TO_MANAGER.substitute(replaces); }
	 */
	if (isRefreshVehicle()) {
		var pvc = getURLParam(PARAM_PVC);
		var year = getURLParam(PARAM_YEAR);
		setRefreshVehicle(false);
		if (pvc != "" && year != "") {
			SELECTED_PVC = pvc;
			SELECTED_YEAR = year;
			inserVehicle(year, pvc);
		}
	}

	// alert("Selected DL Data:"+dealerData[selected]);
}

// Change selected Dealer
// Param -Na > Show the dealer of the array
function changeSelectedDealer() {
	showDealers();
	setDealerSelected(false);
	checkToHidden();
}

// Fail ajax Request for Dealers
// Param: Na
function dealerLoadFail() {
	$(NAME_DIV_DEALERS).innerHTML = DEALER_LOAD_FAIL_MSG;
	$(NAME_DIV_LOCATE_ZIPCODE).style.display = "none";
	showAdvanceSearch(false);
	$(NAME_DIV_DEALERS).style.display = "block";
	$('zipchange').style.display = "block";
	$('zipchange').style.visibility = "visible";
	$('sellAllDealersLink').setStyle('display','none');
}

// Write any error on Dealers
// Param msg -> String of information to show
function messageFailDealer(msg) {
	$(NAME_DIV_DEALERS).innerHTML = msg;
}

function format_number(pnumber, decimals) {
	var num = new Number(parseFloat(pnumber));
	var fixed = num.toFixed(decimals);
	return fixed;
	/*
	 * if (isNaN(pnumber)) { return 0}; if (pnumber=='') { return 0};
	 *
	 * var snum = new String(pnumber); var sec = snum.split('.'); var whole =
	 * parseFloat(sec[0]); var result = '';
	 *
	 * if(sec.length > 1){ var dec = new String(sec[1]); dec =
	 * String(parseFloat(sec[1])/Math.pow(10,(dec.length - decimals))); dec =
	 * String(whole + Math.round(parseFloat(dec))/Math.pow(10,decimals)); var
	 * dot = dec.indexOf('.'); if(dot == -1){ dec += '.'; dot =
	 * dec.indexOf('.'); } while(dec.length <= dot + decimals) { dec += '0'; }
	 * result = dec; } else{ var dot; var dec = new String(whole); dec += '.';
	 * dot = dec.indexOf('.'); while(dec.length <= dot + decimals) { dec += '0'; }
	 * result = dec; } return result;
	 */
}

function showAdvanceSearch(flag) {
	if (flag) {
		$(NAME_DIV_LOCATE_ZIPCODE).setStyle('display', 'block');
		$(NAME_DIV_ADVANCE_SEARCH).setStyle('display', 'block');
		$(NAME_DIV_DEALERS).setStyle('display', 'none');
		$(NAME_DIV_ZIP_SEARCH_BTN).setStyle('display', 'none');
		$('advanceSearchLink').setStyle('visibility', 'hidden');
		showDealerHeaderSelected(false);
		try{
			$("sellAllDealersLink").setStyle('display', 'none');
		}catch(e){}
	} else {
		$(NAME_DIV_LOCATE_ZIPCODE).setStyle('display', 'none');
		$(NAME_DIV_ADVANCE_SEARCH).setStyle('display', 'none');
		$('advanceSearchLink').setStyle('visibility', 'visible');
	}
}

function showDealerHeaderSelected(flag) {
	if (flag) {
		$(NAME_HEADER_DEALER).style.display = "none";
		$(NAME_HEADER_SELECTED_DEALER).style.display = "block";
	} else {
		$(NAME_HEADER_DEALER).style.display = "block";
		$(NAME_HEADER_SELECTED_DEALER).style.display = "none";
	}
}
