var gmarkers=[];var lastlinkid;var ctrCallback=1;var qsOptions=decodeURIComponent(getQuerystring("o","")).split(/,/);var ctrAddressess=0;function resize(){if(printMode!=="y"){$("#stationListContainer").height($(window).height()-$("#headerContainer").height()-$("#getDirContainer").height()-25);$("#sidebarContainer").height($("#stationListContainer").height()+$("#getDirContainer").height());$("#map1").height($("#sidebarContainer").height());$("#map1").width($(window).width()-$("#stationListContainer").width()-35)}}function removeElement(a){$("#"+a).remove();resize();var b=parseInt($("#theCount").val(),10)-1;$("#theCount").val(b);var c=0;$("div.routePoint").each(function(){$(this).html(String.fromCharCode("A".charCodeAt(0)+c));c=c+1});if(b===2){$("a[@id^=del]").hide()}}function addElement(){var f=parseInt($("#theValue").val(),10)+1;$("#theValue").val(f);var b=parseInt($("#theCount").val(),10);var a=String.fromCharCode("A".charCodeAt(0)+b);b=parseInt($("#theCount").val(),10)+1;$("#theCount").val(b);var c="divRoutePoint"+f;var h="uiRoutePoint"+f;var d="Hidden"+f;var g="lblDest"+f;var i="del"+f;var j="<div id="+c+"><div id='"+g+"' class='routePoint'>"+a+"</div><input type='text' name='"+h+"' id='"+h+"' class='routePointTextBox' onkeypress='myKeypressHandler(event)'/><input type='hidden' id='"+d+"' /><a tabindex='99' id='"+i+"' href=\"javascript:removeElement('"+c+"')\"'><img src='images/delete.jpg' alt='Delete Destination' id='B"+f+"' title='Delete this stop along the route.'/></a><br/></div>";$("#newRoutePoint").append(j);resize();if(b===3){$("a[@id^=del]").show()}var e="#"+h;$(e).focus()}function toggleRouteOptions(){$("#routeOptionsContainer").toggle();if($("#routeOptionsContainer").is(":visible")){$("#uiRouteOptions").text("Hide Options");$("input[@type=checkbox][@id^=uiRouteService][@checked]").attr("checked","")}else{$("#uiRouteOptions").text("Show Options")}resize()}function toggle_visibility(a){$("#"+a).toggle();resize()}function togglePlanARoute(){if($("#planARouteContainer").is(":visible")&&$("#routeOptionsContainer").is(":visible")){toggleRouteOptions()}toggle_visibility("planARouteContainer");if($("#planARouteContainer").is(":visible")){$("#uiPlanRouteText").show();$("#uiPlanRouteLink").hide();$("input[@type=text][@id^=uiRoutePoint]:first").focus()}else{$("#uiPlanRouteText").hide();$("#uiPlanRouteLink").show();$("#uiAddress").focus()}if(printMode==="y"){$("#uiPlanRouteLink").hide()}}function initializeFromQuerystring(){if(qsAddresses.length===1){$("#uiAddress").val(qsAddresses[0]);$.each(qsOptions,function(a,b){$("input[@type=checkbox][@id^=uiStationService][value="+b+"]").attr("checked",true)});$("#uiSearchRadius").val(getQuerystring("r","5"))}else{if(qsAddresses.length>1){$.each(qsAddresses,function(b,a){if(b>1){addElement()}$("#uiRoutePoint"+(b+1)).val(a)});$.each(qsOptions,function(a,b){$("input[@type=checkbox][@id^=uiRouteService][value="+b+"]").attr("checked",true)});$("#uiSearchRouteRadius").val(getQuerystring("r","1"));togglePlanARoute()}}$("#printSearchCriteria").html(decodeURIComponent(getQuerystring("a","")).replace(/;/g,"<br />to: "))}function myKeypressHandler(a){if(window.event){if(a.keyCode===13){$("#uiDir").click()}}else{if(a.which){if(a.which===13){$("#uiDir").click()}}}}function getZoom(a){switch(a){case"5":return 11;case"10":return 10;case"25":return 9;case"50":return 8;case"100":return 7;default:return 5}}function initMap(a,c,d){$.each(gmarkers,function(e,f){GEvent.clearListeners(f,"infowindowclose");$("#map1").jmap("RemoveMarker",f)});$.each(gmarkers,function(e,f){gmarkers.pop()});resize();$("ol#stationList li").remove();var b=getZoom(a);$("#directionsList").html("");$("#map1").jmap("init",{mapType:"map",mapCenter:[c,d],mapEnableGoogleBar:false,mapShowjMapsIcon:false,mapEnableType:true,mapZoom:b})}function addMarkerToList(a,b){gmarkers.push(a)}function mapPoints(d,f,c){var a=d+1;if(a>99){a=""}var g="images/markers/marker"+a+".png";var e=Mapifies.createIcon({iconImage:g,iconPrintImage:g,iconPrintMozImage:g,iconSize:new GSize(20,34),iconAnchor:new GPoint(9,34),iconInfoWindowAnchor:new GPoint(9,2),iconShadowSize:new GSize(0,0)});var b="<div class='stationListImage'><img src='"+g+"'\\></div><div class='stationListItem'><div class='infoTitle' id='link"+d+"'><a href=\"javascript:clickLink("+d+')">'+f.Name+"</a></div><div class='infoBody'>"+f.Address+"<br>"+f.City+", "+f.State+" "+f.Zip+"<br>"+f.Phone+"<br><br>"+f.Distance+" Mile(s)";if(printMode!=="y"){b=b+" <a href=\"javascript:AddStationStop('"+f.Address+", "+f.City+", "+f.State+" "+f.Zip+"',"+c+","+f.Distance+')">';if(c){b=b+"Add to Route</a>"}else{b=b+"Get Directions</a>"}}$("<li>"+b+"</div></div></li>").appendTo("ol#stationList");if(f.Attributes!==""){b=b+"<div class='infoSection'>Services Offered</div>"+f.Attributes.replace(/,/g,"<br/>")+"</div>"}$("#map1").jmap("AddMarker",{pointLatLng:[f.Latitude,f.Longitude],pointHTML:b,pointIcon:e},function(h,i){addMarkerToList(h,i)})}function toggleStationDirectionsLink(a){if(a){$("#uiDirectionsLnk").show();$("#uiStationsLnk").hide();$("#uiStationListLnk").hide()}else{$("#uiDirectionsLnk").hide();$("#uiStationsLnk").hide();$("#stationList").show();$("#uiStationListLnk").show()}}function loopStations(b,a){$.each(b.d,function(c,d){mapPoints(c,d,a);toggleStationDirectionsLink(a)})}function clearElement(){$("input[@type=checkbox][@id^=uiRouteService][@checked]").attr("checked","");$("#uiSearchRouteRadius").val(1);$("input[@type=text][@id^=uiRoutePoint]").val("");var a=1;$("div[@id^=divRoutePoint]").each(function(){if(a>2){removeElement($(this).attr("id"))}a=a+1});$("input[@type=text][@id^=Hidden]").val("");$("input[@type=text][@id^=Hidden]:first").val("0");$("input[@type=text][@id^=uiRoutePoint]:first").focus()}function addProximityCircle(i,b,h){var m=i;var f=[];var k=m/3963.189;var c=(Math.PI/180)*b;var e=(Math.PI/180)*h;for(var o=0;o<361;o++){var g=(Math.PI/180)*o;var l=Math.asin(Math.sin(c)*Math.cos(k)+Math.cos(c)*Math.sin(k)*Math.cos(g));var j=Math.atan2(Math.sin(g)*Math.sin(k)*Math.cos(c),Math.cos(k)-Math.sin(c)*Math.sin(l));var n=((e-j+Math.PI)%(2*Math.PI))-Math.PI;f.push([parseFloat(l*(180/Math.PI)),parseFloat(n*(180/Math.PI))])}$("#map1").jmap("AddPolygon",{polygonPoints:f,polygonFillOpacity:0.2,polygonFillColor:"#90e2fa",polygonStrokeWeight:1,polygonStrokeColor:"#5F9F9F"})}function setPrintLink(a,d,c){var b="StationFinderMap.aspx?p=y&r="+a+"&a="+d+"&o="+c;$("#uiPrintLink").attr("href",b)}function mapStations(d,e){var a=$("#uiSearchRadius").val();var b="";$("input[@type=checkbox][@checked]").each(function(){if(b===""){b=$(this).val()}else{b+=","+$(this).val()}});setPrintLink(a,$("#uiAddress").val(),b);var c="{sourcelat: "+d+", sourcelon: "+e+", radius: "+a+", attributes: '"+b+"'}";$.ajax({type:"POST",url:"http://www.marathonpetroleum.com/stationlocator2/Services/StationService.asmx/GetStations",data:c,contentType:"application/json; charset=utf-8",dataType:"json",success:function(f){loopStations(f,false);$("#loadmsg").hide();$("#messageContainer").hide();if($("#planARouteContainer").is(":visible")){clearElement();togglePlanARoute()}}});addProximityCircle(a,d,e)}function mapSearchPoint(c,b){var d=b.Point.coordinates[1];var e=b.Point.coordinates[0];var a=$("#uiSearchRadius").val();initMap(a,d,e);$("#map1").jmap("AddMarker",{pointLatLng:[d,e],pointHTML:b.address},function(f,g){mapStations(d,e)})}function selectAddress(a){$("#uiAddress").val(a);$("#uiGo").click()}function findSearchPoint(){$("#map1").jmap("SearchAddress",{query:$("#uiAddress").val(),returnType:"getLocations"},function(a,c){var d=Mapifies.SearchCode(a.Status.code);if(d.success&&a.Placemark.length>1){$("#directionsList").hide();$("#stationList").hide();$("#uiDirectionsLnk").hide();$("#uiStationsLnk").hide();$("#uiStationListLnk").hide();$("#loadmsg").hide();var b;var e="<br />Please select the correct address....<br /><ul>";$.each(a.Placemark,function(g,f){b=a.Placemark[g].address.replace(", USA","");e=e+"<li><a href=\"javascript:selectAddress('"+b+"')\">"+b+"</a></li><br />"});document.getElementById("messageContainer").innerHTML="";document.getElementById("messageContainer").innerHTML=e+"</ul>";$("#messageContainer").show()}else{if(d.success){$.each(a.Placemark,function(g,f){mapSearchPoint(g,f)})}else{alert("Address "+$("#uiAddress").val()+" was not found.");$("#loadmsg").hide()}}})}function getRoute(){var a=$("#uiSearchRouteRadius").val();var b="";var e="";var f="";var d="";firstAddress="#"+$("input[@type=text][@id^=uiRoutePoint]:first").attr("id");$("input[@type=text][@id^=uiRoutePoint]").each(function(){if($(this).val()!==""){if(e===""){e="from: "+$(this).val();d=$(this).val()}else{f=f+" to:"+$(this).val();d=d+";"+$(this).val()}}});$("input[@type=checkbox][@id^=uiRouteService][@checked]").each(function(){if(b===""){b=$(this).val()}else{b+=","+$(this).val()}});setPrintLink(a,d,b);if(e!==""&&f!==""){if(printMode!=="y"){$("#loadRoutemsg").show()}else{$("#loadmsg").show()}var c=e+" "+f;$("#map1").jmap("SearchAddress",{query:$(firstAddress).val(),returnType:"getLocations"},function(g,h){var i=Mapifies.SearchCode(g.Status.code);if(i.success){$.each(g.Placemark,function(l,k){var m=k.Point.coordinates[1];var n=k.Point.coordinates[0];var j=$("#uiSearchRouteRadius").val();initMap(j,m,n);$("#map1").jmap("SearchDirections",{query:c,panel:"#directionsList",getPolyline:true,getSteps:true,clearLastSearch:true},function(w){var o=Mapifies.SearchCode(w.getStatus().code);if(o.success){var z;var v;var B;var x=0;var s=1;$("input[@type=hidden][@id^=Hidden]").each(function(){if(s!==1){z=w.getRoute(s-2);v=z.getDistance().html;B=v.indexOf("&");v=v.substr(0,B);v=v.replace(/,/g,"");x=x+parseFloat(v);$(this).val(x)}s=s+1});var p=w.getPolyline();var q=p.getVertexCount();var u=[];var A=[];for(l=0;l<q-1;l++){u[l]=p.getVertex(l).lat().toFixed(5);A[l]=p.getVertex(l).lng().toFixed(5)}var y="{lats: '"+u+"', lngs: '"+A+"', radius: "+j+", attributes: '"+b+"'}";$.ajax({type:"POST",url:"http://www.marathonpetroleum.com/stationlocator2/Services/StationService.asmx/GetStationsOnRoute",data:y,contentType:"application/json; charset=utf-8",dataType:"json",success:function(C){loopStations(C,true);if(printMode!=="y"){$("#loadRoutemsg").hide()}else{$("#loadmsg").hide()}$("#messageContainer").hide();$("#directionsList").hide();$("#stationList").show()},error:function(C,E,D){alert(C.status+"||"+C.responseText)}})}else{if(printMode!=="y"){$("#loadRoutemsg").hide()}else{$("#loadmsg").hide()}var t=false;var r=1;ctrCallback=1;$("input[@type=text][@id^=uiRoutePoint]").each(function(){if($(this).val()!==""&&r!==1){var C=$(this).val();var D=new GClientGeocoder();D.getLatLng(C,function(E){ctrCallback++;if(!E){t=true;alert("Address: "+C+" was not found.")}else{if(ctrCallback==$("input[@type=text][@id^=uiRoutePoint]").size()&&!t){alert("Could not find an exact address match.")}}});D=null}r=r+1})}})})}else{alert("Address "+$(firstAddress).val()+" was not found.");if(printMode!=="y"){$("#loadRoutemsg").hide()}else{$("#loadmsg").hide()}}})}}function toggleStationOptions(){$("#stationOptionsContainer").toggle();if($("#stationOptionsContainer").is(":visible")){$("#uiStationOptions").text("Hide Options");$("input[@type=checkbox][@id^=uiStationService][@checked]").attr("checked","")}else{$("#uiStationOptions").text("Show Options")}resize()}function resetStationOptions(){$("#stationOptionsContainer").hide();$("#uiStationOptions").text("Show Options");$("input[@type=checkbox][@id^=uiStationService][@checked]").attr("checked","");$("#uiAddress").val("");$("#uiSearchRadius").val(5)}function clickLink(a){GEvent.trigger(gmarkers[a],"click");$("#link"+a).css("background-color","#E6E6FA");lastlinkid="#link"+a;GEvent.addListener(gmarkers[a],"infowindowclose",function(){$(lastlinkid).css("background-color","#ffffff")})}function AddStationStop(f,e,g){var c=false;if($("#planARouteContainer").is(":visible")===false){toggle_visibility("planARouteContainer")}var d=1;$("input[@type=text][@id^=uiRoutePoint]").each(function(){if(d===1&&$(this).val()===""){$(this).val($("#uiAddress").val())}if(d===2&&$(this).val()===""){$(this).val(f);c=true}d=d+1;if(d===3){return false}});if(c===false){addElement();var l;var h=false;var j;var b;var a;var i;var k;d=1;$("input[@type=text][@id^=uiRoutePoint]").each(function(){l=$(this).attr("id");if(e){j="#Hidden"+l.substr(12,l.length);if(g<$(j).val()||$(this).val()===""){if(h){b=a;a=$(this).val();$(this).val(b);i=k;k=$(j).val();$(j).val(i);if($(this).val()===""){return false}}else{h=true;a=$(this).val();$(this).val(f);k=$(j).val();$(j).val(g)}}}else{if($(this).val()===""){$(this).val(f);c=true;return false}}})}}function selectRouteAddress(a,b){var c="#"+b;$(c).val(a);$("#uiDir").click()}function nextloop(b,d,a,g){var e=Mapifies.SearchCode(b.Status.code);if(e.success&&b.Placemark.length>1){g=true;$("#directionsList").hide();$("#stationList").hide();$("#uiDirectionsLnk").hide();$("#uiStationsLnk").hide();$("#uiStationListLnk").hide();$("#loadmsg").hide();var c;var f="<br />Please select the correct address....<br /><ul>";$.each(b.Placemark,function(j,h){c=b.Placemark[j].address.replace(", USA","");f=f+"<li><a href=\"javascript:selectRouteAddress('"+c+"','"+a+"')\">"+c+"</a></li><br />"});document.getElementById("messageContainer").innerHTML="";document.getElementById("messageContainer").innerHTML=f+"</ul>";$("#messageContainer").show()}}function checkMultipleAddress(c,a,b){multipleAddress=false;if($(c).val()!==""){$("#map1").jmap("SearchAddress",{query:$(c).val(),returnType:"getLocations"},function(d,e){nextloop(d,e,a,multipleAddress);multipleAddress=true})}else{multipleAddress=true}}function showMultiAddress(){multipleAddress=false;$("input[@type=text][@id^=uiRoutePoint]").each(function(){checkMultipleAddress(this,this.id,ctrAddressess)})}function toggleStationsContainer(){$("#uiStationsLnk").toggle();$("#uiDirectionsLnk").toggle();$("#directionsList").toggle();$("#stationList").toggle()}$(document).ready(function(){initializeFromQuerystring();initMap("",41.0060503,-83.6561215);$("#uiGo").click(function(){if($("#uiAddress").val()!==""){$("#loadmsg").show();$("input[@type=checkbox][@id^=uiRouteService][@checked]").attr("checked","");findSearchPoint()}return false});var a;$("#uiDir").click(function(){resetStationOptions();showMultiAddress();getRoute();return false});if(qsAddresses.length===1){$("#uiGo").click()}else{if(qsAddresses.length>1){$("#uiDir").click()}}$("#uiAddress").keypress(function(b){if(b.keyCode===13){$("#uiGo").click()}});$("#uiAddress").focus()});
