function number_format(n,t){return n.toFixed?n.toFixed(t):Math.round(n*Math.pow(iTen,t))/Math.pow(iTen,t)}function browserCheck(){iBrowser=returnDocument().getElementById?navigator.appName=="Netscape"&&parseInt(navigator.appVersion)>=5?1:0:-1}function setSelectedByValue(n,t){for(var i=0;i<n.options.length;){if(n.options[i].text==t){n.selectedIndex=i;break}i++}}function gmap_init(n,t,i,r,u,f){function w(n){for(var t,r=n+"=",u=document.cookie.split(";"),i=0;i<u.length;i++){for(t=u[i];t.charAt(0)===" ";)t=t.substring(1,t.length);if(t.indexOf(r)===0)return t.substring(r.length,t.length)}return null}function b(){var t=w("mapInit"),n;return t?(n=t.split(","),{lat:n[0],lng:n[1],zoom:parseInt(n[2])}):null}var o,y,p,h,e,c,l;browserCheck();o=b();t||i||r||!o||(i=o.lat,r=o.lng,t=o.zoom);var a=49.724479,v=-95.449218,s=3;u!=null&&(defaultFuel=u);f!=null&&(defaultTime=f);n&&(bGB=!0);i&&i!=0&&r&&r!=0&&s&&s!=0&&(a=i,v=r,s=t,initSearch=!0);y={getTileUrl:function(n,t){var i=__s2?"":"&c=1";return __s1+"?z="+t+"&x="+n.x+"&y="+n.y+i},tileSize:new google.maps.Size(256,256),maxZoom:8,minZoom:0,name:"TempMap",opacity:layerOpacity};p=new google.maps.ImageMapType(y);oGMap=new google.maps.Map(document.getElementById("map_canvas"),{zoom:s,center:new google.maps.LatLng(a,v),scaleControl:!0,streetViewControl:!1,mapTypeControl:!1});oGMap.overlayMapTypes.push(p);oGCoder=new google.maps.Geocoder;gWindow=new google.maps.InfoWindow({content:""});divNoneFound=document.createElement("div");divNoneFound.index=1;divNoneFound.innerHTML="No stations found";divNoneFound.id="none_found";divNa=document.createElement("div");divNa.index=1;divNa.innerHTML="Gas prices are for US and Canada only";divNa.id="no_na";divNa.style.display="none";document.getElementById("address").onkeydown=myCancelBubble;document.getElementById("address").onkeyup=myCancelBubble;document.getElementById("search").onclick=search;selectors=document.createElement("div");selectors.className="selectors";h=document.createElement("span");h.innerHTML="Fuel Type";e=document.createElement("select");e.id="fuel_type";e.appendChild(new Option("Regular","A"));e.appendChild(new Option("Midgrade","B"));e.appendChild(new Option("Premium","C"));e.appendChild(new Option("Diesel","D"));e.onchange=changeFuel;e.value=defaultFuel;setSelectedByValue(e,defaultFuel);selectors.appendChild(h);selectors.appendChild(e);tempLegend=document.createElement("div");tempLegend.style.margin="0 12px 12px 0";createLegend(tempLegend);c=document.createElement("div");createGBLogo(c);oGMap.controls[google.maps.ControlPosition.LEFT_BOTTOM].push(c);oGMap.controls[google.maps.ControlPosition.RIGHT_BOTTOM].push(tempLegend);google.maps.event.addListener(oGMap,"bounds_changed",function(){initSearch&&load();getShareUrl();google.maps.event.clearListeners(oGMap,"bounds_changed")});google.maps.event.addListener(oGMap,"idle",getShareUrl);google.maps.event.addListener(oGMap,"center_changed",function(){var n=new Date;n.setTime(n.getTime()+12e5);document.cookie="mapInit="+oGMap.getCenter().lat()+","+oGMap.getCenter().lng()+","+oGMap.getZoom()+"; expires="+n.toUTCString()});google.maps.event.addListener(oGMap,"zoom_changed",function(){gWindow.close();aPrevMarkers=[];aPrevMarkers=aMarkers;aMarkers=[];clear();adjustLegendByZoom();load()});google.maps.event.addListener(oGMap,"dragstart",function(){hideNa();$("#stationMap").hide()});google.maps.event.addListener(oGMap,"dragend",function(){load()});l=function(n){var i,r,t;gWindow.setContent('<div class="loading">Loading...<\/div>');i=n.latLng.lat();r=n.latLng.lng();gWindow.setPosition(n.latLng);oGMap.getZoom()<minZipZoom||!__s2&&oGMap.getZoom()<iZoom?(t={},t.lat=i,t.lng=r,t.usa=__s2,$.ajax({type:"POST",url:__s10,data:JSON.stringify(t),datatype:"json",contentType:"application/json; charset=utf-8",headers:GasBuddy.Token.generateHeader(),success:function(n){gcd_callback(n)},error:function(){}})):oGMap.getZoom()<iZoom&&(t={},t.lat=i,t.lng=r,t.usa=__s2,$.ajax({type:"POST",url:__s11,data:JSON.stringify(t),datatype:"json",contentType:"application/json; charset=utf-8",headers:GasBuddy.Token.generateHeader(),success:function(n){gzd_callback(n)},error:function(){}}))};google.maps.event.addListener(oGMap,"click",l);google.maps.event.addListener(oGMap,"rightclick",l);adjustLegendByZoom();CustomMarker.prototype=new google.maps.OverlayView;CustomMarker.prototype.draw=function(){var n=this,t=this.div,u,r,i;t&&(typeof n.args.marker_id!="undefined"&&(t.dataset.marker_id=n.args.marker_id),google.maps.event.addDomListener(t,"click",function(){google.maps.event.trigger(n,"click")}),typeof n.args.marker_id!="undefined"&&(t.dataset.marker_id=n.args.marker_id),u=this.getPanes(),u.overlayMouseTarget.appendChild(t));r=this.getProjection().fromLatLngToDivPixel(this.latlng);r&&(i={},i.width=-n.args.width/2,i.height=-n.args.height,t.style.left=r.x+i.width+"px",t.style.top=r.y+i.height+"px")};CustomMarker.prototype.remove=function(){this.div&&(this.div.parentNode.removeChild(this.div),this.div=null)};CustomMarker.prototype.getPosition=function(){return this.latlng}}function gcd_callback(n){n&&n.length>0?n[0]&&drawInfoWindow(n[0].Name,n[0].State,n[0].Price,n[0].Id,"County"):gWindow.close()}function gzd_callback(n){if(n&&n.length>0){if(n[0].Zip){var t=n[0].Zip;t.length==4&&(sZIPInfo="0"+sZIPInfo);drawInfoWindow(t,n[0].State,n[0].Price,t,"Zip")}}else gWindow.close()}function drawInfoWindow(n,t,i,r,u){var f=$("#average-info-window-template").html(),e=Handlebars.compile(f),o=e({Location:n,Price:i,Id:r,State:t,AreaType:u}).trim();gWindow.setContent(o);gWindow.open(oGMap)}function toggleZoomMessage(){oGMap.getZoom()<iZoom&&(divNoneFound.style.display="none",divNa.style.display="none")}function toggleNoneFound(){divNoneFound.style.display==""?hideNoneFound():showNoneFound()}function hideNoneFound(){divNoneFound.style.display="none"}function showNoneFound(){divNoneFound.style.display="";divNa.style.display="none";$("#notfound").slideUp();$(".searchNotification").slideDown()}function hideNa(){divNa.style.display="none"}function showNa(){$(".searchNotification").slideUp();$("#notfound").slideDown();divNa.style.display="";divNoneFound.style.display="none"}function changeFuel(){load()}function gLatLng(n,t){return new google.maps.LatLng(n,t)}function load(){var r,e,n;if(!isLoading&&($("#notfound").hide(),$("#bbError").hide(),r=oGMap.getZoom(),r>=iZoom)){isLoading=!0;$(".searchNotification").slideDown();var t=oGMap.getBounds(),u=defaultFuelId,f=$("#fuel_type_label"),i=f.find("input");i&&i.val()&&(u=i.val());e=$("#search-text").val();n={};n.fuelTypeId=u;n.minLat=t.getSouthWest().lat();n.maxLat=t.getNorthEast().lat();n.minLng=t.getSouthWest().lng();n.maxLng=t.getNorthEast().lng();n.width=$("#map_canvas").width();n.height=$("#map_canvas").height();n.minLat!=null&&n.maxLat!=null&&n.minLng!=null&&n.maxLng!=null?$.ajax({type:"POST",url:__s7,data:JSON.stringify(n),datatype:"json",contentType:"application/json; charset=utf-8",headers:GasBuddy.Token.generateHeader(),success:function(n){isLoading=!1;load_callback(n);!isLoading&&GasBuddy.User.getSortType()==GasBuddy.Enums.SortType.TOP_TIER&&n.primaryStations<=0&&n.secondaryStations<=0?writeErrorMsg("Sorry, No Top Tier Stations in the area."):$("#bbError").dequeue()},error:function(){isLoading=!1;$(".searchNotification").clearQueue().slideUp();$("#bbError").clearQueue().slideDown().delay(3e3).slideUp()}}):(isLoading=!1,$(".searchNotification").clearQueue().slideUp(),$("#bbError").clearQueue().slideDown().delay(3e3).slideUp())}}function writeErrorMsg(n){if(!isLoading){var t=$("#bbError"),i=t.find("span.searchNotificationText"),r=i.text();i.text(n);t.clearQueue().slideDown().delay(3e3).slideUp(function(){i.text(t.data("err-msg"))})}}function load_callback(n){var f,t,i;if($("#address").blur(),f=oGMap.getZoom(),f>=iZoom){if(n){aPrevMarkers=[];aPrevMarkers=aMarkers;aMarkers=[];var r=!1,u={},e=9999;for(cheapestStation={},t=n.primaryStations.length,t==0?showNoneFound():hideNoneFound(),t=n.secondaryStations.length,x=0;x<t;x++)n.secondaryStations[x].isPrimary=!1,i=addMarker(n.secondaryStations[x],!1),aMarkers.push(i),initStationId>0&&initStationId==n.secondaryStations[x].id&&(u=i,initStationId=0,r=!0);for(t=n.primaryStations.length,x=0;x<t;x++)n.primaryStations[x].isPrimary=!0,i=addMarker(n.primaryStations[x],!0),aMarkers.push(i),initStationId>0&&initStationId==n.primaryStations[x].id&&(u=i,initStationId=0,r=!0),parseFloat(n.primaryStations[x].price)<e&&(e=parseFloat(n.primaryStations[x].price),cheapestStation=n.primaryStations[x]);r&&(stationClick(u),r=!1)}$(".searchNotification").slideUp()}clear()}function formatTime(n,t){var u;if(t==0)return'<span class="tme">&nbsp;<\/span>';var i=parseInt(n.getHours()),f=n.getMinutes(),r="";return r=i>12?i-12:i==0?"12":i,r+=i>11?"PM":"AM",u=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"][n.getDay()]+" "+r,'<span class="tme">'+u+"<\/span>"}function setZ(n){return 1e4-parseFloat(n)*10}function addMarker(n,t){var i,u=new google.maps.LatLng(n.lat,n.lng),f,r;return n.brand_id>0?(n.primary=!0,div=this.div=document.createElement("div"),div.className=n.iscash?"brand-pin cash":"brand-pin",div.style.backgroundColor="#fff;",f=document.createElement("img"),f.src="https://images.gasbuddy.com/di/b/1/"+n.brand_id+".png?h=26&w=26",div.appendChild(f),r=document.createElement("p"),r.innerHTML=n.price,div.appendChild(r),div.style.zIndex=setZ(parseFloat(n.price)),i=n.iscash?new CustomMarker(u,oGMap,div,{item:n,width:42,height:62}):new CustomMarker(u,oGMap,div,{item:n,width:42,height:52})):t?(n.primary=!0,div=this.div=document.createElement("div"),div.className=n.iscash?"pin cash":"pin",div.id="mp"+n.id,r=document.createElement("p"),r.innerHTML=n.price,!isNaN(parseFloat(n.price))&&parseFloat(n.price)>=100&&(r.className="pin-small"),div.style.zIndex=isNaN(parseFloat(n.price))?1:setZ(parseFloat(n.price)),div.appendChild(r),i=new CustomMarker(u,oGMap,div,{item:n,width:34,height:27})):(n.primary=!1,div=this.div=document.createElement("div"),div.title=n.id,div.id="mp"+n.id,div.className=n.iscash?"pin small cash":"pin small",div.style.zIndex=1,i=new CustomMarker(u,oGMap,div,{item:n,width:18,height:18})),i.item=n,google.maps.event.addListener(i,"click",function(){stationClick(i)}),parseInt(getUrlVars().sid)==n.id&&google.maps.event.trigger(i,"click",{}),i}function stationClick(n){var r,t;if(!activeMarker.item||activeMarker.item.id!==n.item.id){activeMarker=n;$(".searchNotification").slideDown();clearStationOverlays();r=parseInt($("#mp"+n.item.id).css("z-index"));$("#mp"+n.item.id).addClass("selected");$("#mp"+n.item.id).css("z-index",r+1e4);var u=defaultFuelId,f=$("#fuel_type_label"),i=f.find("input");i&&i.val()&&(u=i.val());t={};t.id=n.item.id;t.fuelTypeId=u;$.ajax({type:"POST",url:__s9,data:JSON.stringify(t),datatype:"json",contentType:"application/json; charset=utf-8",headers:GasBuddy.Token.generateHeader(),success:function(n){click_callback(n);$(".searchNotification").slideUp()},error:function(){$(".searchNotification").slideUp();handleStationSearchError()}})}}function click_callback(n){n.prices.length>0?(n.station.currentPrice=n.prices[0],n.station.currentPrice.Price=GasBuddy.Format.Price.ByCountry({price:n.station.currentPrice.Price,country:n.station.Country})):(n.station.currentPrice={},n.station.currentPrice.Price=GasBuddy.Format.Price.defaultPrice,n.station.currentPrice.CarIcon="nocar.gif");StationOverlay(n.station);$("#stationMap").slideDown({duration:500,easing:"swing"})}function triggerGeoErrorMessage(n){$("#stationMap").slideUp();$("#geoError > div > .searchNotificationText").text(n).parent().parent().slideDown();setTimeout(function(){$("#geoError > div > .searchNotificationText").parent().parent().slideUp()},1e4)}function handleStationSearchError(){triggerGeoErrorMessage("An error occurred searching for station information. Please try again later.")}function clearStationOverlays(){$(".mapstaiton").slideUp(200,"",function(){$("#mp"+$(this).attr("gb-data")).removeClass("selected");var n=parseInt($("#mp"+$(this).attr("gb-data")).css("z-index"));$("#mp"+$(this).attr("gb-data")).css("z-index",n-1e4);$(this).remove()});aOverlays=[]}function priceClass(n,t){return t==0?" no":n.toLowerCase().indexOf("credit")!=-1?" credit":""}function formatPrice(n,t){return n==0?"---":n>10?n.toFixed(1):n.toFixed(2)+(t?"<sup>9<\/sup>":"")}function clear(){for(var n=0;n<aPrevMarkers.length;n++)aPrevMarkers[n].setMap(null);aPrevMarkers=[]}function search(){var n=document.getElementById("address").value;n.length>0?($("#notfound").hide(),$("#stationMap").hide(),gWindow.close(),oGCoder.geocode({address:n},function(n,t){if(t==google.maps.GeocoderStatus.OK){var i=!1;for(x=0;x<n[0].address_components.length;x++)n[0].address_components[x].types[0]=="country"&&(n[0].address_components[x].short_name=="US"||n[0].address_components[x].short_name=="CA")&&(i=!0);i?(hideNa(),oGMap.setCenter(n[0].geometry.location),oGMap.getZoom()<searchZoom&&oGMap.setZoom(searchZoom),load()):showNa()}else alert("Geocode was not successful for the following reason: "+t)})):($("#search").addClass("animated shake"),setTimeout(function(){$("#search").removeClass("animated shake")},1e3),$("#address").focus())}function myCancelBubble(n){var t=getEvent(n);t.cancelBubble=!0;iBrowser==1&&t.stopPropagation()}function getUrlVars(){for(var i=[],n,r=window.location.href.slice(window.location.href.indexOf("?")+1).split("&"),t=0;t<r.length;t++)n=r[t].split("="),i[n[0]]=n[1];return i}function adjustLegendByZoom(){oGMap.getZoom()<iZoom?(tempLegend.style.display="",selectors.style.display="none",$("#TR-stations-panel").hide()):(selectors.style.display="none",$("#TR-stations-panel").show(),tempLegend.style.display="none")}function createGBLogo(n){var t,i,r,u;n.index=1;t=document.createElement("div");t.style.textAlign="center";t.title="Gasbuddy.com";i=document.createElement("div");i.style.paddingLeft="5px";i.style.paddingRight="5px";r=document.createElement("a");r.href="https://www.gasbuddy.com";r.target="_blank";u=document.createElement("img");u.src="https://images.gasbuddy.com/images/websites/gasbuddy/gb-logo-horizontal.png";u.width="150";r.appendChild(u);i.appendChild(r);t.appendChild(i);n.appendChild(t)}function createLegend(n){var r=!__s2,u=10,v='<tr><td align="center" style="opacity:'+layerOpacity+";",y="height: ",p="px; background-color:",w='; width:25px;"><\/td><td style="font-family:Arial; font-weight:normal; font-size:11px;">&nbsp;',b="&nbsp;<\/td><\/tr>",c=0,f=0,s,i,e,o,h;r?(c=__s3,f=__s4):(c=__s5,f=__s6);var l=(f-c)/(u-2),a=198/(u+1),t=[];for(t.push('<table width="100%" cellpadding="0" cellspacing="0" border="0">'),t.push('<tr><td colspan="2" style="font-family:Arial; font-weight:normal; font-size:14px; color:#FFF; height:'),t.push(a),t.push('px; background-color:#18475B;" align="center">&nbsp;'),t.push(r?"c/L":"$/G"),t.push("<\/td><\/tr>"),s=r?1:2,i=0;i<u;){switch(i%u){case 0:sColor="#f0f921";break;case 1:sColor="#fdca26";break;case 2:sColor="#fb9f3a";break;case 3:sColor="#ed7953";break;case 4:sColor="#d8576b";break;case 5:sColor="#bd3786";break;case 6:sColor="#9c179e";break;case 7:sColor="#7201a8";break;case 8:sColor="#46039f";break;case 9:sColor="#0d0887"}i==0?(e=number_format(f-i*l,s),o=1e6):i==u-1?(e=-1,o=number_format(+c,s)):(e=number_format(f-i*l,s),o=number_format(f-(i-1)*l,s));h=[];h[i]=[1];h[i][0]=e;h[i][1]=o;h[i][2]=sColor;t.push(v);t.push(y);t.push(a);t.push(p);t.push(sColor);t.push(w);i==0?(t.push("> "),r||t.push("$"),t.push(e)):i==u-1?(t.push("< "),r||t.push("$"),t.push(o)):(r||t.push("$"),t.push(e),t.push(" - "),r||t.push("$"),t.push(o),t.push(b));i++}r&&(t.push(v),t.push(y),t.push(a),t.push(p),t.push("#000"),t.push(w),t.push("No Data"),t.push(b));t.push("<\/table>");n.style.border="0px solid #000";n.style.backgroundColor="#FFF";n.style.boxShadow="1px 2px 3px #C8CBBC";n.innerHTML=t.join("")}function CheapestStationOverlay(){var r=$("#map_canvas").position(),i=$("#map_canvas").width(),n=$("<div>").html("<div>cheapest station<\/div>"),t;return n.attr("id","ch"+cheapestStation.id),n.attr("gb-data",cheapestStation.id),t=parseInt(i/2)-300,n.css({bottom:20,left:t}),$(window).resize(function(){var t=$("#map_canvas").width(),i=parseInt(t/2)-300;n.css({bottom:20,left:i})}),$("#map_canvas").prepend(n),n}function StationOverlay(n){var s=$("#map_canvas").position(),r=$("#map_canvas").width(),u=$("#station-card-template").html(),f=Handlebars.compile(u),e=f([n]).trim(),t=$("<div>"),o,i;t.attr("id","so"+n.Id);t.attr("gb-data",n.Id);t.addClass("mapstaiton");o=parseInt(r/2)-300;$(window).resize(function(){var n=$("#map_canvas").width(),t=parseInt(n/2)-300});i=$("<table>").html(e);t.append(i);$("#stationMap").html(t);ratings.refresh&&ratings.refresh()}function calcRoute(n){typeof directionDisplay!="undefined"&&directionDisplay.setMap(null);directionDisplay=new google.maps.DirectionsRenderer;directionDisplay.setMap(oGMap);directionDisplay.setOptions({suppressMarkers:!0});stepDisplay=new google.maps.InfoWindow;navigator.geolocation?(browserSupportFlag=!0,navigator.geolocation.getCurrentPosition(function(t){var i,r,u;if(typeof n!="undefined"){for($("td > btn").animate({opacity:".25"}),i=0;i<markerArray.length;i++)markerArray[i].setMap(null);markerArray=[];r={origin:new google.maps.LatLng(t.coords.latitude,t.coords.longitude),destination:new google.maps.LatLng(n.A,n.F),travelMode:google.maps.TravelMode.DRIVING};u=new google.maps.DirectionsService;u.route(r,function(n,t){t==google.maps.DirectionsStatus.OK&&(directionDisplay.setDirections(n),showSteps(n))});$("td > btn").animate({opacity:"1"})}},function(){handleNoGeolocation(browserSupportFlag)})):(browserSupportFlag=!1,handleNoGeolocation(browserSupportFlag))}function currentLocation(){navigator.geolocation?(browserSupportFlag=!0,navigator.geolocation.getCurrentPosition(function(n){initialLocation=new google.maps.LatLng(n.coords.latitude,n.coords.longitude)},function(){handleNoGeolocation(browserSupportFlag)})):(browserSupportFlag=!1,handleNoGeolocation(browserSupportFlag))}function handleNoGeolocation(n){const t=n==!0?"Geolocation service failed. Please make sure your Geolocation service is turned on in this browser.":"Sorry, your browser doesn't support geolocation.";triggerGeoErrorMessage(t)}function showSteps(n){for(var r,i=n.routes[0].legs[0],t=0;t<i.steps.length;t++)r=new google.maps.Marker({position:i.steps[t].start_location,map:oGMap,zIndex:-2}),attachInstructionText(r,i.steps[t].instructions),markerArray[t]=r}function attachInstructionText(n,t){google.maps.event.addListener(n,"click",function(){stepDisplay.setContent(t);stepDisplay.open(oGMap,n)})}function CustomMarker(n,t,i,r){this.latlng=n;this.args=r;this.div=i;this.setMap(t)}function getShareUrl(){if(window&&oGMap){var t=oGMap.getCenter(),i=window.location.href.replace(/search=[^(&|$)]*\&?/g,""),n=i.replace(/lat=([-+]?[0-9]*\.?[0-9]+)/,"lat="+t.lat()).replace(/lng=([-+]?[0-9]*\.?[0-9]+)/,"lng="+t.lng()).replace(/z=([-+]?[0-9]*\.?[0-9]+)/,"z="+oGMap.getZoom());i.indexOf("lat=")<=-1&&(n=n+(n.toLowerCase().match(/gaspricemap[?&](.)/)?"&":"?")+"lat="+t.lat());i.indexOf("lng=")<=-1&&(n=n+(n.toLowerCase().match(/gaspricemap[?&]/)?"&":"?")+"lng="+t.lng());i.indexOf("z=")<=-1&&(n=n+(n.toLowerCase().match(/gaspricemap[?&]/)?"&":"?")+"z="+oGMap.getZoom());window.history.replaceState("","Gas Price Map",n)}}var oGMap,oGCoder,aMarkers=[],cheapestStation={},aOverlays=[],aPrevMarkers=[],gWindow,iZoom=11,searchZoom=13,minZipZoom=7,activeMarker={},defaultTime="24",defaultFuel="A",defaultFuelId=1,iBrowser=0,initSearch=!1,oQuery={},divNoneFound,divNa,initStationId=0,bGB=!1,selectors,tempLegend,layerOpacity=.8,isLoading=!1,getEvent=function(n){return window.event?window.event:n},returnDocument=function(n){return n?document.documentElement:document},stepDisplay,markerArray=[],browserSupportFlag=new Boolean,directionRenderer,initialLocation