
/*
 * ASC.Chrysler.FAD.DealersMap
 *
 */
ASC.namespace('ASC.Chrysler.FAD.DealersMap');
ASC.Chrysler.FAD.DealersMap = ASC.extend(Ext.util.Observable,{
	moreInfoOffsetTop: 275,
	moreInfoOffsetLeft: 35,
	infoOffsetTop: 58,
	infoOffsetLeft: -45, 

	dealerData: null,
	dealerPageIndex:null,
	dealerPageSize:null,
	map: null,
	
	sniMenu: null,
	
	// Becomes true when user pushes the pin and gets reset to false on showMoreInfo popup.
	// This allows to differentiate between the click on the top buttons and pins on the map
	// in order to properly show View Dealer Site URL.
	pinPushed: false,      
	
	constructor: function (cfg)
	{
		ASC.Chrysler.FAD.DealersMap.superclass.constructor.apply(this);
		ASC.apply(this, cfg);
		this.addEvents({"clickMarker":true,
						"getDirections":true,
						"showMoreDealerInfo":true,
						"afterPushPin":true});
		if (GBrowserIsCompatible())
		{
			this.map = new GMap2(ASC.getEl(this.renderTo).dom); 
			this.map.setCenter(new GLatLng(this.lat, this.lng), this.zoom);
			/*
				CHRUAT-1165 - disable map dragging and don't display the controls (zooming and right upper corner menu)
			*/
			if( this.isPrint ){
				this.map.disableDragging();
				this.map.disableGoogleBar();
			}else{
				for(var i =0;i<this.controls.length;i++)
				{
					this.map.addControl(this.controls[i]);
				}
			}
		}
		this.markerTpls.init();
		this.initialFloatingMenu();
		
		var me = this;
		Ext.getBody().on('click', function () { 
			if (me.sniMenu) {
				me.sniMenu.hide();
			} 
		});		
		
		ASC.Chrysler.Cookies.onPreferredDealer(this.setPreferredDealer, this);
		
//		GEvent.addListener(this.map, 'click', function(overlay, point) {
//		      if (point) {
//		        alert('lat:' + point.y + '   ' + 'lng:' + point.x);
//		      }
//	    });
	},	
	initialFloatingMenu:function(){
		this.floatingMenu = new ASC.Chrysler.FloatingMenu({zipCode:Page.currentZipCode});
	},
	setData: function(dealerData)
	{
		this.dealerData = dealerData;		
		this.pushDealerPin();		
	},
	panTo: function(p)
	{		
		this.map.panTo(p);
		var show = Page.searchRadius >=25 ? false:true;
		for(var i=0;i<this.dealerData.length;i++)
		{
			this.showDealerInfo(i,show);
		}
	},
	/* show all dealer info push pin on the map */
	pushDealerPin: function()
	{		
		if(this.map)
		{
			this.clearAllMarker();
			for(var i=0;i<this.dealerData.length;i++)
			{
				var marker = new PdMarker(new GLatLng(this.dealerData[i].latitude, this.dealerData[i].longitude));	
				var icon = marker.getIcon();;
				icon.iconSize = new GSize(83, 53);		
				icon.iconAnchor = new GPoint(39, 53);
				icon.infoWindowAnchor = new GPoint(9, 2);		
				icon.image = ASC.cfg.getImgLocalePath()+"/fad/fad_map_view.gif";
				icon.shadow = null;
				
				this.map.addOverlay(marker);
				marker.setId(i);
				marker.setTooltipHiding(false);
				marker.setOpacity(100);
				marker.el = this;
				marker.dealerCode = this.dealerData[i].dealerCode;
				marker.dealerData = this.dealerData[i];				
				if(!this.isPrint)
				{		
					marker.setShowDetailOnClick(false);		
					var me = this;
					GEvent.addListener(marker, "click", function() {
							this.isClickEvent = true;
							//ASC.Chrysler.trackLinkMetrics('content','dealer_info');
							this.el.fireEvent("clickMarker",{xindex:this.getId()});
							this.detailOpen = false;					
						}
					);
					
					GEvent.addListener(marker, "mouseover", function() {
						
						if(Page.searchRadius >=25){
						
							var len = this.el.dealerData.length;
							  for(var i=0;i<len;i++)
							  {
								  this.el.showDealerInfo(i,false)
							  }
								this.el.showDealerInfo(this.getId(),true)
						}
						}
					);
					GEvent.addListener(marker, "mouseout", function() {
							//clicking on marker will fire mouseout event.
							if(this.isClickEvent)
							{
								this.isClickEvent = false;
								return;
							}
							/*if(Page.searchRadius >=25){
							  this.el.showDealerInfo(this.getId(),false);
							}*/
						}
					);
				}else{
					marker.setCursor("auto");
				}
			}
			this.map.zoomToMarkers();
			var show = Page.searchRadius >=25 ? false:true;
			for(var i=0;i<this.dealerData.length;i++)
			{
				
				this.showDealerInfo(i,show);
			}
		}
		this.fireEvent("afterPushPin");
	},
	clearAllMarker: function()
	{
		var marker = this.map.getFirstMarker();
		if(marker){
			do
			{
				marker.remove();
			}while(marker=this.map.getFirstMarker())
		}
	},
	/* show dealer info push pin*/
	/* id what is marker's id */
	showDealerInfo: function(id,isDisplay)
	{
		if (this.sniMenu) {
			this.sniMenu.hide();
		}
	 
		var marker = this.map.getMarkerById(id);
		if(!marker)
		{
			return;
		}
		marker.offsetTop = this.infoOffsetTop;
		marker.offsetLeft = this.infoOffsetLeft;
		marker.hideTooltip();
			  var infoHtml = this.markerTpls.markerTpl.applyTemplate({
				  name: this.dealerData[id].name,
				  city: this.dealerData[id].city,
				  state:this.dealerData[id].state,
				  zipCode:ASC.util.formatZipPostalCode(this.dealerData[id].zip),
				  dealerCode:this.dealerData[id].dealerCode,
				  order:id+1+((this.dealerPageIndex-1)*this.dealerPageSize),
				  isPrint:this.isPrint,
				  isDisplay:isDisplay
			  });			
			  marker.setTooltip(infoHtml);
			  marker.showTooltip();
			  marker.display(true);
			  marker.isMoreDealerInfo = false;
	},
	/* show more dealer info push pin after clicking INFO ON THIS DEALER or marker*/
	/* id what is marker's id */
	currentMarkerId:null,
	dealerHoursWidget:null,
	showMoreDealerInfo: function(id,dealerInfo)
	{		
	    if (!this.pinPushed) {
		    var miTpl = this.markerTpls.moreDealerInfoTpl;
		    var dealer = dealerInfo.dealer;
		    if (miTpl.isParticipatingDealer(dealer)) {
		       window.open(dealer.url);
		       return;
	        }else{
	        	window.open(ASC.cfg.getContextPath() + '/fad/moreDealerInfo.do?dealerCode='+dealer.dealerCode);
	        	return;
	        }
	    } 
        this.pinPushed = false;
	    
		var marker = this.map.getMarkerById(id);
		if(!marker)
		{
			return;
		}
		var p = this.map.fromLatLngToContainerPixel(marker.getPoint());
		p.x +=100;
		p.y -= 50;
		var pp = this.map.fromContainerPixelToLatLng(p);
		this.panTo(pp);
		marker.offsetTop = this.moreInfoOffsetTop;
		marker.offsetLeft = this.moreInfoOffsetLeft;
		marker.hideTooltip();
		var dealerHours =new Array();
		if(this.dealerHoursWidget)
		{ 
			this.dealerHoursWidget.dealerInfo = dealerInfo;
			dealerHours = this.dealerHoursWidget.recombineDealerHour();
		}
		var moreInfoHtml = this.markerTpls.moreDealerInfoTpl.applyTemplate({
			dealer: dealerInfo.dealer,
			id: id,
			distance: marker.dealerData.distance,
			hotDeals: marker.dealerData.hotDeals,
			newVehicleHours:dealerHours[Page.dealerInfoOption.New_Vehicle_Sales],
			usedVehicleHours:dealerHours[Page.dealerInfoOption.Used_Vehicle_Sales],
			serviceAndPartsHours:dealerHours[Page.dealerInfoOption.Service_Parts]
		});	
		marker.setTooltip(moreInfoHtml);
		marker.showTooltip();
		marker.display(false);
		marker.isMoreDealerInfo = true;
		this.rebuildFloatingMenuEvent();
		this.initPreferredDealer(dealerInfo.dealer.dealerCode, ASC.Chrysler.Cookies.getPreferredDealer());
		this.fireEvent("showMoreDealerInfo",{markerId: id});	
	},

	/* show get directions window */
	showGetDirections: function(id)
	{
		var marker = this.map.getMarkerById(id);
		this.showDealerInfo(id);
		//alert(marker.dealerData.zip);
		var html = this.markerTpls.getDirectionsTpl.applyTemplate({
			dealerItem: marker.dealerData,
			id: id,
			pageZip:Page.currentZipCode,
			pageCity:Page.centerCity,
			pageState:Page.centerState
		});	
		marker.setDetailWinHTML(html); 			
		marker.offsetTop = 200;
		marker.offsetLeft = 186;
		marker.detailOpen = false;
		marker.showDetailWin(true);
		this.initState(Page.centerState, id);
	},
	closeGetDirections:function(id)
	{
		if(this.dealerHoursWidget)
		{ 
			 this.pinPushed = true;
			 this.showMoreDealerInfo(id,this.dealerHoursWidget.dealerInfo);
		}
	}
	,
	initState:function(state,id)
	{
		if(state)
		{
		   var el = ASC.getEl("dir_state_"+id);
		   el.setValue(state);
		}
	},
	getDirections:function(id)
	{
		var obj = new Object();
		
		obj.address = ASC.getEl("dir_address_"+id).getValue();
		obj.city    = ASC.getEl("dir_city_"+id).getValue();
		obj.state   = ASC.getEl("dir_state_"+id).getValue();
		obj.zip     = ASC.getEl("dir_zip_"+id).getValue();
		obj.id  	= id;
		obj.distance = '';
		
		this.fireEvent("getDirections",obj);
	},
	showDirectionsErrorInfo:function(id,errorCode)
	{
		ASC.getEl("address_error_"+id).setDisplayed("none");
		ASC.getEl("search_error_"+id).setDisplayed('none');
		ASC.getEl("city_error_"+id).setDisplayed('none');
		ASC.getEl("zip_error_"+id).setDisplayed('none');
		if(errorCode)
		{
			switch(errorCode)
			{
			  case 1:
				ASC.getEl("address_error_"+id).setDisplayed("block");
				ASC.getEl("city_error_"+id).setDisplayed('block'); 
				break;
			  case 2:
				ASC.getEl("search_error_"+id).setDisplayed('block');
				break;
			  case 3:
				  ASC.getEl("zip_error_"+id).setDisplayed('block');
				break;
			}
		}
	},
	
	showWhatIsThis: function(e, anchorTarget)
	{
		Page.whatIsThis.show(anchorTarget);
	},
	
	setPreferredDealer: function(dealerCode, preferredDealerCode){
		if( dealerCode ){
			this.setPreferredDealerStyle(dealerCode,true,true);
			this.setPreferredDealerStyle(preferredDealerCode,false,false);	
			ASC.Chrysler.trackPageMetrics('/en/dealer_locator/preferred_dealer/'+dealerCode);
		}else{
			this.setPreferredDealerStyle(preferredDealerCode,false,true);
			ASC.Chrysler.trackPageMetrics('/en/dealer_locator/by_zip/'+preferredDealerCode);
		}
		this.initPreferredDealer(dealerCode, preferredDealerCode);
		Page.initShowMyPreferredDealer();
	},
	
	setAsPreferredDealer:function(dealerCode){
		var preferredDealerCode = ASC.Chrysler.getPreferredDealer();		
		if( (dealerCode && preferredDealerCode) && ((dealerCode != preferredDealerCode)||dealerCode == preferredDealerCode)){
			this.setPreferredDealerConfirm(dealerCode);
		}else{
			ASC.Chrysler.setBoundPreferredDealer(dealerCode);
		}		
	},
	
	setPreferredDealerConfirm: function(dealerCode){
		var preferredDealerCode = ASC.Chrysler.getPreferredDealer();
		Ext.Msg.confirm('', ASC.message('fad_findDealers_confirmPreferredDealer'), function(btn, text){
			    if (btn == 'yes'){
					ASC.Chrysler.setBoundPreferredDealer(dealerCode);
					if(dealerCode == preferredDealerCode){
						ASC.getEl('showMyPreferredDealer').setDisplayed('none');
					}
			    }
			},this);
	},
	
	setPreferredDealerStyle:function(dealerCode,isAdd,isSelect){
		
		var elPreferredDealer = ASC.getEl("preferredDealer"+dealerCode);
		var elPreferredDealerHeader = ASC.getEl("preferred_dealer_header_"+dealerCode);
		if(elPreferredDealer){
			if(isAdd){				
				ASC.util.removeClass(elPreferredDealer,"two_map_body_oneline_hidden");
				ASC.util.addClass(elPreferredDealer,"two_map_body_oneline");
			}else{
				ASC.util.removeClass(elPreferredDealer,"two_map_body_oneline");
				ASC.util.addClass(elPreferredDealer,"two_map_body_oneline_hidden");
			}	
		}
		if(elPreferredDealerHeader){
			if(isAdd){		
				if(isSelect){
					ASC.util.removeClass(elPreferredDealerHeader,"preferred_dealer_header_hidden_selected");
					ASC.util.addClass(elPreferredDealerHeader,"preferred_dealer_header_selected");
				}else{
					ASC.util.removeClass(elPreferredDealerHeader,"preferred_dealer_header_hidden");
					ASC.util.addClass(elPreferredDealerHeader,"preferred_dealer_header");
				}
			}else{	
				if(isSelect){
					ASC.util.removeClass(elPreferredDealerHeader,"preferred_dealer_header_selected");
					ASC.util.addClass(elPreferredDealerHeader,"preferred_dealer_header_hidden_selected");
				}else{
					ASC.util.removeClass(elPreferredDealerHeader,"preferred_dealer_header");
					ASC.util.addClass(elPreferredDealerHeader,"preferred_dealer_header_hidden");
				}
			}				
		}
			
	},
	
	initPreferredDealer:function(dealerCode, preferredDealerCode){
		var preferredDealerCode = ASC.Chrysler.getPreferredDealer();
		var preferredDealerEl = ASC.getEl("setPreferredDealer"+dealerCode);
		var dealerCode1 = dealerCode;
		if(!preferredDealerEl){
			preferredDealerEl = ASC.getEl("setPreferredDealer"+preferredDealerCode);
			dealerCode1 = preferredDealerCode;
		}
		if( preferredDealerEl ){
			if((!preferredDealerCode || preferredDealerCode == 'null' || preferredDealerCode == '' || !dealerCode || dealerCode == 'null' || dealerCode == '')){
				ASC.getEl("setPreferredDealer"+dealerCode1).setDisplayed('block');
				ASC.getEl("changeOrclearPreferredDealer"+dealerCode1).setDisplayed('none');
			}else{
				ASC.getEl("setPreferredDealer"+dealerCode1).setDisplayed('none');
				ASC.getEl("changeOrclearPreferredDealer"+dealerCode1).setDisplayed('block');			
			}	
		}	
	},
	/* all xtemplate object in markerTpls  */
	markerTpls: {	
		init: function()
		{
			this.initMarkerTpl();
			this.initMoreDealerInfoTpl();			
			this.initGetDirectionsTpl();
		},
		/*the template of deal info push pin  */
		initMarkerTpl: function()
		{
			this.markerTpl = new Ext.XTemplate(
					'<div style="{[values.isDisplay?\"display:block;\":\"display:none;\"]}" class="{[this.getClass(values.isPrint)]}" onmousedown="Page.stopEvent(event);" ondblclick="Page.stopEvent(event);">',
				    	'<div><img src="{[this.getImgLocalePath()]}/fad/fad_map_icon_15.gif" /></div>',
				        '<div class="four_map_body">',
			        		'<div id="preferredDealer{dealerCode}" class="{[this.getPreferredDealerStyle(values.dealerCode)]}">{[this.translate("fad_findDealers_preferredDealer")]}</div>',			        	
				        	'<div class="four_map_body_oneline">&nbsp;</div>',
				            '<div style="float:left;margin-left:7px;"><div class="number"><div class="number_num">{order}</div></div></div>',
				        	'<div style="margin-top:7px;"><div class="four_map_body_twoline">{name}</div></div>',
				            '<div style="clear:both; overflow:hidden; height:1px"></div>',
				            '<div class="four_map_body_threeline">{city:this.lowerCase},{state} {zipCode}</div>',
				            '<div class="four_map_body_empty">&nbsp;</div>',
				        '</div>',
				        '<div><img src="{[this.getImgLocalePath()]}/fad/fad_map_icon_11.gif"/></div>',
				    '</div>',{
						translate: function (key){
							return ASC.message(key);
						},
						lowerCase:function(str){
							return str.toLowerCase();
						},
						getImgLocalePath: function(){
							return ASC.cfg.getImgLocalePath();
						},
						getPreferredDealerStyle:function(dealerCode){
							var preferredDealerCode = ASC.Chrysler.getPreferredDealer();//ASC.Cookies.get("pd");
							//alert("cookie_pd_"+preferredDesalerCode);
							if(preferredDealerCode!=null && preferredDealerCode==dealerCode){
								return "two_map_body_oneline";
							}
							return "two_map_body_oneline_hidden";
						},
						getAllImgLocalePath: function(){
							return ASC.cfg.getContextPath() + "/resources/images/all/en";
						},
						
						/*CHRUAT-1165 - replace hand pointer cursor style with auto (arrow)*/
						getClass:function(isPrint){
							if( isPrint ){
								return "four_map_print";
							}
							return "four_map";
						}
					}
				);
			this.markerTpl.compile();
		},
		/*the template of more deal info push pin  */
		initMoreDealerInfoTpl: function()
		{
			this.moreDealerInfoTpl = new Ext.XTemplate(
				'<div class="bCard" onmousedown="Page.stopEvent(event);" ondblclick="Page.stopEvent(event);">',				    	
					'<div class="top">&nbsp;</div>',
			    	'<table class="card" border="0" cellpadding="0" cellspacing="0">',
				    	'<tr>',
				    		'<td class="leftEdge">&nbsp;</td>',				    		
					    	'<td class="body">',
						    	'<table class="tblDealer" border="0" cellpadding="0" cellspacing="0">',
						    		'<tr>',
								    	'<td class="dealerOverview">',					    	
									    	'<table border="0" cellpadding="0" cellspacing="0" style="margin: 0 2px;">',
									    		'<tr>',
									    			'<td class="number_selected">',									    	
												    	'<div class="number_num_selected">{[values.id + 1 + (Page.dealersData.pageIndex-1)*Page.dealersData.pageSize]}</div>',
									    			'</td>',
									    			'<td style="padding-left: 2px;">',
									    				
										    			'<label class="dealerName">{values.dealer.name}</label>',
										    			'<div class="dealerAddress">',
										    				'<tpl if="this.isValidDistance(distance)">',
										    					'<div class="dealerDistance">{distance} {[this.translate("fad_findDealers_distanceDesc")]}</div>',
										    				'</tpl>',
										    				'<tpl if="values.dealer.fiveStar == \'Y\'">',
								                        		'<div class="smallFiveStar" style="background:transparent url( {[ASC.cfg.getBaseIofUrl()]}?IMG=Fivestar.jpg&width=64 ) no-repeat scroll 0 0;"></div>',
								                        	'</tpl>',
								                        	'<div>{values.dealer.address1:this.subAndLowerCase}</div>',
								                        	'<div>{values.dealer.city:this.lowerCase}, {values.dealer.state}</div>',
								                        	'<div>{[this.formatZip(values.dealer.zip)]}</div>',								                        	
							    						'</div>',
							    						'<tpl if="values.dealer.dealerSitePointer == 3">',
								    						'<ul class="preferredDealer">',
								    							'<li id="setPreferredDealer{values.dealer.dealerCode}"><a href="javascript:ASC.Chrysler.trackLinkMetrics(\'dealer_specific_info\',\'set_preferred_dealer\'); Page.dealersMap.setAsPreferredDealer(\'{values.dealer.dealerCode}\');">{[this.translate("fad_findDealers_setPreferredDealer")]}</a></li>',
								    							'<li id="changeOrclearPreferredDealer{values.dealer.dealerCode}"><a href="javascript:Page.dealersMap.setAsPreferredDealer(\'{values.dealer.dealerCode}\');ASC.Chrysler.trackLinkMetrics(\'dealer_specific_info\',\'change_preferred_dealer\');">{[this.translate("fad_findDealers_changeOrclearPreferredDealer")]}</a></li>',
								    							'<li><a href="javascript:void(0)"  onclick="javascript:Page.dealersMap.showWhatIsThis(e,this);ASC.Chrysler.trackLinkMetrics(\'dealer_specific_info\',\'what_is_preferred_dealer\');">{[this.translate("fad_findDealers_whatIsThis")]}</a></li>',
							    							'</ul>',
							    						'</tpl>',						    							
									    			'</td>',
									    		'</tr>',
									    	'</table>',	
									    	'<table class="icons" border="0" cellpadding="0" cellspacing="0">',
			    								'<tr><td><img src="{[this.getImgLocalePath()]}/fad/fad_map_icon_04.gif"/></td><td><a href="javascript:Page.dealersMap.showGetDirections({id});ASC.Chrysler.trackLinkMetrics(\'dealer_specific_info\',\'get_directions\');">{[this.translate("fad_findDealers_getDirections")]}</a></td></tr>',
						                    	'<tr><td><img src="{[this.getImgLocalePath()]}/fad/fad_map_icon_05.gif"/></td><td><a href="javascript:Page.printDealerInfo(\'{values.dealer.dealerCode}\',\'{distance}\');ASC.Chrysler.trackLinkMetrics(\'dealer_specific_info\',\'print\');">{[this.translate("fad_findDealers_print")]}</a></td></tr>',
						                    '</table>',
							    		'</td><!-- end: dealerOverview -->',
								    	'<td id="dealerServices">',
								    		'<ul class="dealerTabs">',
									    		'<li id="newVehicleTab_{id}" class="active"><a href="javascript:Page.showDiv(\'div_newvehicle\',\'newVehicleTab\',\'{id}\');ASC.Chrysler.trackLinkMetrics(\'dealer_specific_info\',\'new_vehicle_sales_tab\');">{[this.translate("fad_findDealers_newVehicleSales")]}</a></li>',
						                        '<li id="usedVehicleTab_{id}"><a href="javascript:Page.showDiv(\'div_usedvehicle\',\'usedVehicleTab\',\'{id}\');ASC.Chrysler.trackLinkMetrics(\'dealer_specific_info\',\'used_vehicle_sales_tab\');">{[this.translate("fad_findDealers_usedVehicleSales")]}</a></li>',
						                        '<li id="servicePartsTab_{id}"><a href="javascript:Page.showDiv(\'div_serviceparts\',\'servicePartsTab\',\'{id}\');ASC.Chrysler.trackLinkMetrics(\'dealer_specific_info\',\'service_and_parts_tab\');">{[this.translate("fad_findDealers_servicesParts")]}</a></li>',
						                        '<li class="noTab"><a href="javascript:Page.dealersMap.showDealerInfo({id});Page.dealersList.unClickDealerInfo({id});" onclick="javascript:ASC.Chrysler.trackLinkMetrics(\'dealer_specific_info\',\'close\');"><span>Close</span> <img  src="{[this.getImgLocalePath()]}/fad/fad_map_icon_X03.gif"/></a></li>',
					                        '</ul>',
					                        
					                        '<div id="div_newvehicle_{id}" class="tabContent">',
					                        	'<div class="tabOverview">',
						                        	'<h6>{[this.translate("fad_findDealers_newVehicleSales")]}</h6>',
						                        	'<div>{[ASC.Chrysler.formatPhoneNumberUseHyphen(values.newVehicleHours.phone)]}</div>',
						                        							                        	
						                        	'<table class="hoursOfOperation" border="0" cellpadding="0" cellspacing="0">',
						                        		' <caption>{[this.translate("fad_findDealers_hours")]}:</caption>',
						                        	'<tpl for="values.newVehicleHours.dealerHours">',					                    	
						                        		'<tr>',
						                        			'<td>',
						                        				'{startDay} {[this.getInfo(values.startDay,values.endDay,"-")]} {[this.getInfo(values.startDay,values.endDay,"")]}',
						                        			'</td>',
						                    				'<td>{openTime}</td>',
						                    				'<td>{[this.getInfo(values.openTime,values.closedTime,"fad_findDealers_to")]}</td>',
						                    				'<td>{[this.getInfo(values.openTime,values.closedTime,"")]}</td>',	
						                    			'</tr>',	
						                        	'</tpl>',					                        
						                        	'</table>',
					                        	'</div><!-- end: tabOverview -->',
					                        	
					                        	'<div class="pnlBottomContent">',					                        	
						                        	'<div class="more_dealer_info_button">',
						                        	'<tpl if="!this.isParticipatingDealer(values.dealer)">',
						                        		'<a href="moreDealerInfo.do?dealerCode={[values.dealer.dealerCode]}&fromFadZip={Page.currentZipCode}&zipDistance={distance}&city={[Page.centerCity]}&state={[Page.centerState]}" onclick="ASC.Chrysler.trackLinkMetrics(\'new_vehicle_sales_tab\', \'visit_dealer_website\');">{[this.translate("fad_findDealers_moreDealerInfo")]}</a>',
						                        	'</tpl>',
						                        	'<tpl if="this.isParticipatingDealer(values.dealer)">',
						                        		'<a href="{[values.dealer.url]}" target="_blank" onclick="ASC.Chrysler.trackLinkMetrics(\'new_vehicle_sales_tab\', \'visit_dealer_website\');">{[this.translate("fad_findDealers_moreDealerInfo")]}</a>',
						                        	'</tpl>',
						                        	'</div>',
						                        	
						                        	'<table class="tblDealerBrands" border="0">',
						                        		'<tr>',
						                        			'<tpl if="values.hotDeals == \'Y\'"><td align="center"><img src="{[this.getImgLocalePath()]}/fad/fad_map_icon_09.gif"/></td></tpl>',
									                		'<tpl if="values.dealer.isDodge == \'Y\'"><td align="center"><img src="{[this.getAllImgLocalePath()]}/fad/ico_bcard_dodge.gif" /></td></tpl>',
						                					'<tpl if="values.dealer.isChrysler == \'Y\'"><td align="center"><img src="{[this.getAllImgLocalePath()]}/fad/ico_bcard_chrysler.gif" /></td></tpl>',
						                					'<tpl if="values.dealer.isJeep == \'Y\'"><td align="center"><img src="{[this.getAllImgLocalePath()]}/fad/ico_bcard_jeep.gif" /></td></tpl>',
							                			'</tr>',
							                		'</table>',
							                		'<tpl  if="values.hotDeals == \'Y\'">',
							                			'<div class="hotDeal">{[this.translate("fad_findDealers_checkOutBestDeals")]}</div>',
							                		'</tpl>',
					                        	'</div><!--end: pnlBottomContent -->',
					                        	
					                        	
					                        	'<tpl if="dealer.dealerSitePointer != 3">',
					                        		'<div id="nvs_panel" class="pnlDealerFeatures1" dealerCode="{values.dealer.dealerCode}" asc:dealerSitePointer="{values.dealer.dealerSitePointer}" asc:url="{values.dealer.url}" asc:ischrysler="{values.dealer.isChrysler}" asc:isdodge="{values.dealer.isDodge}" asc:isjeep="{values.dealer.isJeep}">',
						                    			'<div class="call_dealer">',
						                    				'<div class="call_dealer_text">{[this.translate("fad_hasNoWebToolsInfo")]}</div>',
							                    		'</div>',
							                    	'</div>',
						                    	'</tpl>',
						                    	'<tpl if="dealer.dealerSitePointer == 3">',
						                    		'<div id="nvs_panel" class="pnlDealerFeatures" dealerCode="{values.dealer.dealerCode}" asc:dealerSitePointer="{values.dealer.dealerSitePointer}" asc:url="{values.dealer.url}" asc:ischrysler="{values.dealer.isChrysler}" asc:isdodge="{values.dealer.isDodge}" asc:isjeep="{values.dealer.isJeep}">',
							                    		'<div class="dealerTools">',
							                    			'<div class="dealerList" id="nvs_gaq"><a href="javascript:void(0);" onclick="ASC.Chrysler.trackLinkMetrics(\'new_vehicle_sales_tab\',\'get_a_quote\');">{[this.translate("fad_findDealers_getAQuote")]}</a></div>',
							                    			'<div class="dealerList" id="nvs_sni"><a href="javascript:void(0);" id="searchNewInventoryLink" onclick="ASC.Chrysler.trackLinkMetrics(\'new_vehicle_sales_tab\',\'sni_list\');">{[this.translate("fad_findDealers_searchNewInventory")]}</a></div>',
							                    	/*
							                    			'<li><a href="{[this.getExternalUrlPath()]}?target=incentives&dealer_id={values.dealer.dealerCode}" onclick="javascript:ASC.Chrysler.trackLinkMetrics(\'new_vehicle_sales_tab\',\'current_incentives\');">{[this.translate("fad_findDealers_currentIncentives")]}</a></li>',
							                    			'<li id="nvs_brochure"><a href="javascript:void(0);" onclick="ASC.Chrysler.trackLinkMetrics(\'new_vehicle_sales_tab\',\'get_a_brochure\');">{[this.translate("fad_findDealers_getABrochure")]}</a></li>',						                    		
							                    	*/
							                    			'<div class="dealerList" id="nvs_testdrive"><a href="javascript:void(0);" onclick="ASC.Chrysler.trackLinkMetrics(\'new_vehicle_sales_tab\',\'schedule_a_test_drive\');">{[this.translate("fad_findDealers_getATestDrive")]}</a></div>',
							                    	/*
							                    		'<tpl if="values.dealer.email">',
							                    			'<li id="dealersInfoEmailNew"><a onclick="javascript:ASC.Chrysler.trackLinkMetrics(\'new_vehicle_sales_tab\',\'contact_us\');" href="mailto:{values.dealer.email};">{[this.translate("fad_findDealers_contactUs")]}</a></li>',
							                    		'</tpl>',
							                    	*/
							                    	/*
							                    			'<li><a href="javascript:Page.links.openEstimatePaymentsWindow();" onclick="ASC.Chrysler.trackLinkMetrics(\'new_vehicle_sales_tab\',\'estimate_payments\');">{[this.translate("fad_findDealers_estimatePayments")]}</a></li>',
							                    			'<li><a href="javascript:Page.applyForCredit(\'{values.dealer.dealerCode}\');" onclick="javascript:ASC.Chrysler.trackLinkMetrics(\'new_vehicle_sales_tab\',\'apply_for_credit\');">{[this.translate("fad_findDealers_applyForCredit")]}</a></li>',
							                    	*/
							                    		'</div>',
						                    		'</div><!-- end pnlDealerFeatures -->',						                    		
						                        '</tpl>',
					                        		                        	
					                        '</div><!-- end: div_newvehicle-->',
					                        
					                        '<div id="div_usedvehicle_{id}" class="tabContent" style="display:none;">',
					                        	'<div class="tabOverview">',
						                        	'<h6>{[this.translate("fad_findDealers_usedVehicleSales")]}</h6>',
						                        	'<div>{[ASC.Chrysler.formatPhoneNumberUseHyphen(values.usedVehicleHours.phone)]}</div>',
						                        							                        	
						                        	'<table class="hoursOfOperation" border="0" cellpadding="0" cellspacing="0">',
						                        		' <caption>{[this.translate("fad_findDealers_hours")]}:</caption>',
						                        	'<tpl for="values.usedVehicleHours.dealerHours">',					                    	
						                        		'<tr>',
						                        			'<td>',
						                        				'{startDay} {[this.getInfo(values.startDay,values.endDay,"-")]} {[this.getInfo(values.startDay,values.endDay,"")]}',
						                        			'</td>',
						                    				'<td>{openTime}</td>',
						                    				'<td>{[this.getInfo(values.openTime,values.closedTime,"fad_findDealers_to")]}</td>',
						                    				'<td>{[this.getInfo(values.openTime,values.closedTime,"")]}</td>',	
						                    			'</tr>',	
						                        	'</tpl>',					                        
						                        	'</table>',
					                        	'</div><!-- end: tabOverview -->',
					                        	
					                        	'<div class="pnlBottomContent">',					                        	
						                        	'<div class="more_dealer_info_button">',
						                        	'<tpl if="!this.isParticipatingDealer(values.dealer)">',
						                        		'<a href="moreDealerInfo.do?dealerCode={[values.dealer.dealerCode]}&fromFadZip={Page.currentZipCode}&zipDistance={distance}&city={[Page.centerCity]}&state={[Page.centerState]}" onclick="ASC.Chrysler.trackLinkMetrics(\'used_vehicle_sales_tab\', \'visit_dealer_website\');">{[this.translate("fad_findDealers_moreDealerInfo")]}</a>',
						                        	'</tpl>',
						                        	'<tpl if="this.isParticipatingDealer(values.dealer)">',
						                        		'<a href="{[values.dealer.url]}" target="_blank" onclick="ASC.Chrysler.trackLinkMetrics(\'used_vehicle_sales_tab\', \'visit_dealer_website\');">{[this.translate("fad_findDealers_moreDealerInfo")]}</a>',
						                        	'</tpl>',
						                        	'</div><!-- end: more_dealer_info_button -->',
						                        	
						                        	'<table class="tblDealerBrands" border="0">',
						                        		'<tr>',
						                        			'<tpl if="values.hotDeals == \'Y\'"><td align="center"><img src="{[this.getImgLocalePath()]}/fad/fad_map_icon_09.gif"/></td></tpl>',
									                		'<tpl if="values.dealer.isDodge == \'Y\'"><td align="center"><img src="{[this.getAllImgLocalePath()]}/fad/ico_bcard_dodge.gif" /></td></tpl>',
						                					'<tpl if="values.dealer.isChrysler == \'Y\'"><td align="center"><img src="{[this.getAllImgLocalePath()]}/fad/ico_bcard_chrysler.gif" /></td></tpl>',
						                					'<tpl if="values.dealer.isJeep == \'Y\'"><td align="center"><img src="{[this.getAllImgLocalePath()]}/fad/ico_bcard_jeep.gif" /></td></tpl>',
							                			'</tr>',
							                		'</table>',
							                		'<tpl  if="values.hotDeals == \'Y\'">',
							                			'<div class="hotDeal">{[this.translate("fad_findDealers_checkOutBestDeals")]}</div>',
							                		'</tpl>',
					                        	'</div><!--end: pnlBottomContent -->',
					                        	
					                        	'<tpl if="dealer.dealerSitePointer != 3">',
						                    		'<div class="pnlDealerFeatures1">',
						                    			'<div class="call_dealer">',
						                    				'<div class="call_dealer_text">{[this.translate("fad_hasNoWebToolsInfo")]}</div>',
							                    		'</div>',
							                    	'</div>',						                    	
						                    	'</tpl>',
						                    	'<tpl if="dealer.dealerSitePointer == 3">',
						                    		'<div class="pnlDealerFeatures">',
								                    	'<div class="dealerTools">',
									                       	'<div class="dealerList" id="uvs_gaq"><a href="javascript:void(0);" onclick="javascript:ASC.Chrysler.trackLinkMetrics(\'used_vehicle_sales_tab\',\'get_a_quote\');">{[this.translate("fad_findDealers_getAQuote")]}</a></div>',								                    
															'{[this.dealerSitePoint(values.dealer.dealerSitePointer, values.dealer.url, values.dealer.dealerCode, values.distance)]}',
									                    	'<div class="dealerList" id="uvs_testdrive"><a href="javascript:void(0);" onclick="javascript:ASC.Chrysler.trackLinkMetrics(\'used_vehicle_sales_tab\',\'schedule_a_test_drive\');">{[this.translate("fad_findDealers_getATestDrive")]}</a></div>',
									                    '</div>',
							                   		'</div><!-- end pnlDealerFeatures -->',
							                    '</tpl>',
											/*
							                    	'<tpl if="values.dealer.email">',
							                    		'<li id="dealersInfoEmailUsed"><a onclick="javascript:ASC.Chrysler.trackLinkMetrics(\'used_vehicle_sales_tab\',\'contact_us\');"  href="mailto:{values.dealer.email};">{[this.translate("fad_findDealers_contactUS")]}</a></li>',
							                    	'</tpl>',
											*/
					                        	
					                        '</div><!-- end: div_usedvehicle -->',
					                        					                        
					                        '<div id="div_serviceparts_{id}" class="tabContent" style="display:none;">',
					                        	'<div class="tabOverview">',
						                        	'<h6>{[this.translate("fad_findDealers_servicesParts")]}</h6>',
						                        	'<div>{[ASC.Chrysler.formatPhoneNumberUseHyphen(values.serviceAndPartsHours.phone)]}</div>',
						                        							                        	
						                        	'<table class="hoursOfOperation" border="0" cellpadding="0" cellspacing="0">',
						                        		' <caption>{[this.translate("fad_findDealers_hours")]}:</caption>',
						                        	'<tpl for="values.serviceAndPartsHours.dealerHours">',					                    	
						                        		'<tr>',
						                        			'<td>',
						                        				'{startDay} {[this.getInfo(values.startDay,values.endDay,"-")]} {[this.getInfo(values.startDay,values.endDay,"")]}',
						                        			'</td>',
						                    				'<td>{openTime}</td>',
						                    				'<td>{[this.getInfo(values.openTime,values.closedTime,"fad_findDealers_to")]}</td>',
						                    				'<td>{[this.getInfo(values.openTime,values.closedTime,"")]}</td>',	
						                    			'</tr>',	
						                        	'</tpl>',					                        
						                        	'</table>',
					                        	'</div><!-- end: tabOverview -->',
					                        	
					                        	'<div class="pnlBottomContent">',					                        	
						                        	'<div class="more_dealer_info_button">',
						                        	'<tpl if="!this.isParticipatingDealer(values.dealer)">',
						                        		'<a href="moreDealerInfo.do?dealerCode={[values.dealer.dealerCode]}&fromFadZip={Page.currentZipCode}&zipDistance={distance}&city={[Page.centerCity]}&state={[Page.centerState]}" onclick="ASC.Chrysler.trackLinkMetrics(\'service_and_parts_tab\', \'visit_dealer_website\');">{[this.translate("fad_findDealers_moreDealerInfo")]}</a>',
						                        	'</tpl>',
						                        	'<tpl if="this.isParticipatingDealer(values.dealer)">',
						                        		'<a href="{[values.dealer.url]}" target="_blank" onclick="ASC.Chrysler.trackLinkMetrics(\'service_and_parts_tab\', \'visit_dealer_website\');">{[this.translate("fad_findDealers_moreDealerInfo")]}</a>',
						                        	'</tpl>',
						                        	'</div><!-- end: more_dealer_info_button -->',
						                        	
						                        	'<table class="tblDealerBrands" border="0">',
						                        		'<tr>',
						                        			'<tpl if="values.hotDeals == \'Y\'"><td align="center"><img src="{[this.getImgLocalePath()]}/fad/fad_map_icon_09.gif"/></td></tpl>',
									                		'<tpl if="values.dealer.isDodge == \'Y\'"><td align="center"><img src="{[this.getAllImgLocalePath()]}/fad/ico_bcard_dodge.gif" /></td></tpl>',
						                					'<tpl if="values.dealer.isChrysler == \'Y\'"><td align="center"><img src="{[this.getAllImgLocalePath()]}/fad/ico_bcard_chrysler.gif" /></td></tpl>',
						                					'<tpl if="values.dealer.isJeep == \'Y\'"><td align="center"><img src="{[this.getAllImgLocalePath()]}/fad/ico_bcard_jeep.gif" /></td></tpl>',
							                			'</tr>',
							                		'</table>',
							                		'<tpl  if="values.hotDeals == \'Y\'">',
							                			'<div class="hotDeal">{[this.translate("fad_findDealers_checkOutBestDeals")]}</div>',
							                		'</tpl>',
					                        	'</div><!--end: pnlBottomContent -->',
					                        	
					                        	'<tpl if="dealer.dealerSitePointer != 3">',
						                    		'<div class="pnlDealerFeatures1">',
						                    			'<div class="call_dealer">',
						                    				'<div class="call_dealer_text">{[this.translate("fad_hasNoWebToolsInfo")]}</div>',
							                    		'</div>',
							                    	'</div>',						                    	
						                    	'</tpl>',
						                    	'<tpl if="values.dealer.email && dealer.dealerSitePointer == 3">',
						                    		'<div class="pnlDealerFeatures">',
								                    	'<div class="dealerTools">',							                    	
										                    '<div class="dealerList" id="dealersInfoEmailService"><a onclick="javascript:ASC.Chrysler.trackLinkMetrics(\'service_and_parts_tab\',\'contact_us\');" href="mailto:{values.dealer.email};">{[this.translate("fad_findDealers_contactUS")]}</a></div>',
								                    	'</div>',
													 '</div><!-- end pnlDealerFeatures -->',
							                    '</tpl>',	
							                    	
					                        '</div><!-- end: div_serviceparts -->',
					                        
								    	'</td><!--end: dealerServices -->',	
						    		'</tr>',
						    	'</table>',				    	
		    				'</td><!--end: body -->',
		    				'<td class="rightEdge">&nbsp;</td>',
				    	'</tr>',
			    	'</table>',
				    	
				    
					'<div class="bottom">&nbsp;</div>',    
				'</div>',{			
		    				dealerSitePoint: function(sitePointer, url, dealerCode, distance)
							{
								if(sitePointer==3 && url != ''){
									return '<div class="dealerList"><a target="_new" href="' +url + '/link?program=cllc&page=USED_INVENTORY" onclick="javascript:ASC.Chrysler.trackLinkMetrics(\'used_vehicle_sales_tab\',\'search_preowned\');">'+this.translate("fad_findDealers_searchPreOwned")+'</a></div>';		
								}
								return '<div class="dealerList"><a href="javascript:ASC.Chrysler.trackLinkMetrics(\'used_vehicle_sales_tab\',\'search_preowned\');Page.links.openPreOwenedWindow(\''+dealerCode+'\',\''+distance+'\');">'+this.translate("fad_findDealers_searchPreOwned")+'</a></div>'					
							},
										
							translate: function (key)
							{
								return ASC.message(key);
							},
							getImgLocalePath: function(){
								return ASC.cfg.getImgLocalePath();
							},
							getExternalUrlPath: function(){
								return  ASC.cfg.getBridgeUrl();
							},
							subAndLowerCase : function(str){
								if(str.length > 18)
								{
									str = str.toLowerCase();
									return str.substr(0,21) + '...';
								}
								else
								{
									return str.toLowerCase();
								}
							},
							lowerCase: function(str){
								return str.toLowerCase();
							},
							subStr: function (str)
							{
								if(str.length > 21)
								{
									return str.substr(0,21) + '...';
								}
								else
								{
									return str;
								}
							},
							formatZip: function(zip){
								return ASC.util.formatZipPostalCode(zip);
							},
							getInfo:function(star,end,info){
								var infoReturn = "&nbsp;";
								if(star!=end){
									if(info!=""){
										if(info!="-")
											infoReturn = this.translate(info);
										else
											infoReturn = info;
									}else{									
										infoReturn = end;
									}
								}
								return infoReturn;
							},
							getAllImgLocalePath: function(){
								return ASC.cfg.getContextPath() + "/resources/images/all/en";
							},
							getContextPath: function() {
								return ASC.cfg.getContextPath();
							},
							
							/**
							 * Returns true of it's a participating dealer that has a website
							 * @param {Object} dealer
							 */
							isParticipatingDealer: function (dealer) {
								return dealer.dealerSitePointer == '3'; 
							},
							
							/**
							 * @param {String} dname Dealer Domain Name
							 */
							getDealerSiteUrl: function (dname) {
								//Use a regular expression to ensure the domain name starts with
								//http(s)://  currently the webservice is not returning the http://
								//however that could change and this regEx will handle either
								var search = new RegExp('^(http(s?)://)?(.*)$');
								return dname.toLowerCase().replace(search, 'http$2://$3');
							},
							
							isValidDistance: function(distance){
								if( distance ){
									return true;
								}
								return false;
							}
						});		
			this.moreDealerInfoTpl.compile();	
		},
		/* the template of get directions */
		initGetDirectionsTpl: function()
		{
			this.getDirectionsTpl = new Ext.XTemplate(
					'<div class="popup_frame" onmousedown="Page.stopEvent(event);" ondblclick="Page.stopEvent(event);">',
				    	'<div class="popup_close"><a href="javascript:ASC.Chrysler.trackLinkMetrics(\'get_directions_window\',\'close\');Page.dealersMap.closeGetDirections({id});"><img src="{[this.getImgLocalePath()]}/fad//fad_icon_16.gif" /></a></div>',
				        '<div class="popup_title">{[this.translate("fad_findDealers_directions")]}</div>',
				        '<div class="popup_startingtitle">{[this.translate("fad_findDealers_startingLocation")]}</div>',
				        '<div class="popup_startingsubtitle">{[this.translate("fad_findDealers_enterMuchYouKnow")]}</div>',
				        '<div class="popup_address">{[this.translate("fad_findDealers_adress")]}&nbsp;<input id="dir_address_{id}" type="text" /></div>',				      
				        '<div class="popup_city">{[this.translate("fad_findDealers_city")]}&nbsp;<input id="dir_city_{id}" type="text" value="{pageCity}" />&nbsp;&nbsp;&nbsp;{[this.translate("fad_findDealers_state")]}&nbsp;<select id="dir_state_{id}" style="display:inline;"><option value=""></option>',
				        '<option value="AK">AK</option>', 
				        '<option value="AL">AL</option>', 
				        '<option value="AR">AR</option>', 
				        '<option value="AZ">AZ</option>', 
				        '<option value="CA">CA</option>', 
				        '<option value="CO">CO</option>', 
				        '<option value="CT">CT</option>', 
				        '<option value="DC">DC</option>', 
				        '<option value="DE">DE</option>', 
				        '<option value="FL">FL</option>', 
				        '<option value="GA">GA</option>', 
				        '<option value="HI">HI</option>', 
				        '<option value="IA">IA</option>', 
				        '<option value="ID">ID</option>', 
				        '<option value="IL">IL</option>', 
				        '<option value="IN">IN</option>', 
				        '<option value="KS">KS</option>', 
				        '<option value="KY">KY</option>', 
				        '<option value="LA">LA</option>', 
				        '<option value="MA">MA</option>', 
				        '<option value="MD">MD</option>', 
				        '<option value="ME">ME</option>', 
				        '<option value="MI">MI</option>', 
				        '<option value="MN">MN</option>', 
				        '<option value="MO">MO</option>', 
				        '<option value="MS">MS</option>', 
				        '<option value="MT">MT</option>', 
				        '<option value="NC">NC</option>', 
				        '<option value="ND">ND</option>', 
				        '<option value="NE">NE</option>', 
				        '<option value="NH">NH</option>', 
				        '<option value="NJ">NJ</option>', 
				        '<option value="NM">NM</option>', 
				        '<option value="NV">NV</option>', 
				        '<option value="NY">NY</option>', 
				        '<option value="OH">OH</option>', 
				        '<option value="OK">OK</option>', 
				        '<option value="OR">OR</option>', 
				        '<option value="PA">PA</option>', 
				        '<option value="RI">RI</option>', 
				        '<option value="SC">SC</option>', 
				        '<option value="SD">SD</option>', 
				        '<option value="TN">TN</option>', 
				        '<option value="TX">TX</option>', 
				        '<option value="UT">UT</option>', 
				        '<option value="VA">VA</option>', 
				        '<option value="VT">VT</option>', 
				        '<option value="WA">WA</option>', 
				        '<option value="WI">WI</option>', 
				        '<option value="WV">WV</option>', 
				        '<option value="WY">WY</option>',
				        '</select>&nbsp;&nbsp;ZIP&nbsp;<span style="display:inline;"><input id="dir_zip_{id}" type="text" value="{pageZip}"  maxlength="5" /></span></div>',
				        '<div style="display:none;color:red" id="address_error_{id}">{[this.translate("addressError")]}</div>',
				        '<div style="display:none;color:red" id="city_error_{id}">{[this.translate("cityError")]}</div>',
				        '<div style="display:none;color:red" id="search_error_{id}">{[this.translate("searchError")]}</div>',
				        '<div style="display:none;color:red" id="zip_error_{id}">{[this.translate("zipCode_invalidated")]}</div>',
				        '<div class="popup_end_frame">',
				        	'<div class="popup_end_title">{[this.translate("fad_findDealers_endingLocation")]}</div>',
				            '<div class="popup_end_subtitle">{values.dealerItem.name}</div>',
				            '<div class="popup_end_subtitle">{values.dealerItem.address1:this.lowerCase}</div>',
				            '<div class="popup_end_subtitle">{values.dealerItem.city:this.lowerCase}, {values.dealerItem.state} {[this.formatZip(values.dealerItem.zip)]}</div>',
				        '</div>',
				        '<div class="ad_popup_button"><a href="javascript:ASC.Chrysler.trackLinkMetrics(\'get_directions_window\',\'get_directions_button\');Page.getDirection({id},\'{values.dealerItem.dealerCode}\');">{[this.translate("fad_findDealers_getDirections")]}</a></div>',
				        '<div class="clear_float"></div>',
				    '</div>',{					
							translate: function (key)
							{
								return ASC.message(key);
							},
							lowerCase: function(str){
								return str.toLowerCase();
							},
							getImgLocalePath: function(){
								return ASC.cfg.getImgLocalePath();
							},
							formatZip: function(zip){
								return ASC.util.formatZipPostalCode(zip);
							}
					});
			this.getDirectionsTpl.compile();
		}
	},
	rebuildFloatingMenuEvent: function(){
    	
    	var elNvsPanel = ASC.getEl('nvs_panel');    	
    	var dealerCode = '';
    	var dealer = null;
    	
    	if (elNvsPanel) {
    		dealerCode = elNvsPanel.dom.getAttribute('dealerCode')||'';
    		
    		dealer = ASC.apply({ dealerCode: dealerCode }, {    		
    			isChrysler:elNvsPanel.dom.getAttribute('asc:ischrysler')||'N',
    			isDodge: elNvsPanel.dom.getAttribute('asc:isdodge')||'N',
    			isJeep: elNvsPanel.dom.getAttribute('asc:isjeep')||'N',
    			dealerSitePointer: elNvsPanel.dom.getAttribute('asc:dealerSitePointer')||'0',
    			url: elNvsPanel.dom.getAttribute('asc:url')||''    			
    		});
    	}
    	
    	//If the sni menu exists delete it and re-create it
    	if (this.sniMenu) {
    		this.sniMenu.destroy();
    		delete this.sniMenu;
    	}
    	    	
    	var elNvsSni = ASC.getEl('nvs_sni');
    		    	
    	if(elNvsSni){
    		//ASC.getEl('nvs_sni').on('click',this.toggleFloatingMenu,this,{type:'sni',dealerCode:dealerCode,anchorTarget:ASC.getEl('nvs_sni') });
    		if(this.multipleBrands(dealer)){
		   		this.sniMenu = new ASC.Chrysler.InterimDealer.SNIPanel({cls: 'a-sniPanel a-fad'}, dealer,elNvsSni);    		
		   		var me = this;
		   		me.sniMenu.hide();
		   		elNvsSni.on('click', function (evt, el) {				
					me.sniMenu.anchorTo(elNvsSni.dom, 'br', [me.sniMenu.el.getWidth() * -1, 0]);
					if (me.sniMenu.isVisible()){
						me.sniMenu.hide()
					}else{
						me.sniMenu.show();
					}
					//ASC.Chrysler.trackLinkMetrics('new_vehicle_sales', 'search_new_inventory');
							
					evt.stopPropagation();	
				});
			}else{
    			var url;
    			if(dealer.isJeep=='Y'){
    				if(dealer.url != '' && dealer.dealerSitePointer == 3){
    					url = dealer.url + '/link?program=cllc&page=NEW_INVENTORY&make=Jeep';
    				}else{
    					url = ASC.cfg.getBrandHostnameUrl('J') + '/sni/inventorySearch.do?dealerCode='+dealer.dealerCode+'&zipCode='+ASC.getEl('zipCode2').getValue();
    				}    				    				
    			}else if(dealer.isChrysler=='Y'){
    				if(dealer.url != '' && dealer.dealerSitePointer == 3){
    					url = dealer.url + '/link?program=cllc&page=NEW_INVENTORY&make=Chrysler';
    				}else{
    					url = ASC.cfg.getBrandHostnameUrl('C') + '/sni/inventorySearch.do?dealerCode='+dealer.dealerCode+'&zipCode='+ASC.getEl('zipCode2').getValue();
    				}    				    				
    			}else if(dealer.isDodge=='Y'){
    				if(dealer.url != '' && dealer.dealerSitePointer == 3){
    					url = dealer.url + '/link?program=cllc&page=NEW_INVENTORY&make=Dodge';
    				}else{
    					url = ASC.cfg.getBrandHostnameUrl('D') + '/sni/inventorySearch.do?dealerCode='+dealer.dealerCode+'&zipCode='+ASC.getEl('zipCode2').getValue();
    				}    				    				
    			}
    			ASC.getEl('searchNewInventoryLink').dom.href = url;
    			ASC.getEl('searchNewInventoryLink').dom.target="_new";
    		}    	
    	}
    	if(ASC.getEl('nvs_brochure')){ 
    		ASC.getEl('nvs_brochure').on('click',this.toggleFloatingMenu,this,{type:'brochure',dealerCode:dealerCode,anchorTarget:ASC.getEl('nvs_brochure')});
    	}
    	if(ASC.getEl('nvs_gaq') ){
    		//ASC.getEl('nvs_gaq').on('click',this.toggleFloatingMenu,this,{type:'gaq',dealerCode:dealerCode,anchorTarget:ASC.getEl('nvs_gaq')});
    		ASC.getEl('nvs_gaq').on('click',this.goToGAQ,this,{dealerCode:dealerCode});
    	}
    	if(ASC.getEl('nvs_testdrive')){
    		//ASC.getEl('nvs_testdrive').on('click',this.toggleFloatingMenu,this,{type:'testdrive',dealerCode:dealerCode,anchorTarget:ASC.getEl('nvs_testdrive')});
    		ASC.getEl('nvs_testdrive').on('click',this.goToSATD,this,{dealerCode:dealerCode});
    	}

    	if(ASC.getEl('uvs_gaq') ){
    		//ASC.getEl('uvs_gaq').on('click',this.toggleFloatingMenu,this,{type:'gaq',dealerCode:dealerCode,anchorTarget:ASC.getEl('uvs_gaq')});
    		ASC.getEl('uvs_gaq').on('click',this.goToGAQ,this,{dealerCode:dealerCode});
    	}
    	if(ASC.getEl('uvs_testdrive')){
    		//ASC.getEl('uvs_testdrive').on('click',this.toggleFloatingMenu,this,{type:'testdrive',dealerCode:dealerCode,anchorTarget:ASC.getEl('uvs_testdrive')});
    		ASC.getEl('uvs_testdrive').on('click',this.goToSATD,this,{dealerCode:dealerCode});
    	}    	
	},
	
	goToGAQ: function(evt,target,options){
		window.location.href = ASC.cfg.getBridgeUrl() + '?target=gaq&dealer_id='+options.dealerCode;
	},
	
	goToSATD: function(evt,target,options){
		window.location.href = ASC.cfg.getBridgeUrl() + '?target=testdrive&dealer_id='+options.dealerCode;
	},
	
	multipleBrands: function (dealer)
	{
		var numOfBrands = 0;
		if(dealer.isJeep=='Y'){
			numOfBrands++;
		}
		if(dealer.isChrysler=='Y'){
			numOfBrands++;
		}
		if(dealer.isDodge=='Y'){
			numOfBrands++;
		}
		return numOfBrands > 1 ? true : false;
	},
		
    toggleFloatingMenu:function(evt,target,options)
    {		
    	if (this.sniMenu) { 
    		this.sniMenu.hide(); 
    	}	
		this.floatingMenu.toggle(evt,target,options);
	}
});