
var PSECU=PSECU||{};PSECU.Maps=PSECU.Maps||{};PSECU.Maps={AmbiguousPanel:$("#AmbiguousPanel"),ResultsList:$("#ResultsList"),ResultsPanel:$("#ResultsPanel"),RoutePanel:$("#RoutePanel"),RouteResultsPanel:$("#RouteResultsPanel"),RouteResults:$("#RouteResults"),SearchMapPanel:$("#SearchMapPanel"),DirectionsMapPanel:$("#DirectionsMapPanel"),LoadingPanel:$("#LoadingPanel"),maxResults:350,locationPhotoPath:"/lib/img/ATM_Locations/",iconStar:new MQA.Icon("/lib/img/Maps/icons/star_redNice.gif",32,33),CoOpLink:$("CoOpLink"),CoOpHref:"/jump.aspx?url=http%3A//www.co-opfs.org/public/locators/atmlocator/searchresults.cfm%3Ffuseaction%3Ddisplay%26querytable%3DATM%26cu%3D0%26address%3D[ADDRESS]%26cuname%3D%26city%3D[CITY]%26queryOrder%3DDistance%26state%3D[STATE]%26country%3DUNITED+STATES%26queryRadius%3D10%26zip%3D[ZIP]%26maxresults%3D25%26x%3D37%26y%3D5"};function BuildPoiMap(){if(!PSECU.Maps.MapSearch){PSECU.Maps.MapSearch=new MQA.TileMap($(PSECU.Maps.SearchMapPanel)[0],9,new MQLatLng(40.2931,-76.884495),"map_search");PSECU.Maps.MapSearch.setSize(new MQA.Size(500,500));PSECU.Maps.MapSearch.addControl(new MQA.LargeZoomControl());myVControl=new MQA.ViewControl(PSECU.Maps.MapSearch);PSECU.Maps.MapSearch.addControl(myVControl,new MQA.MapCornerPlacement(MQA.MapCorner.BOTTOM_RIGHT,new MQA.Size(20,20)));}}
function geocode(addr,fnct){var geoExec=new MQExec(geocodeServer,serverPath,serverPort,proxyServer,proxyPath,proxyPort);PSECU.Maps.locationcollection=new MQLocationCollection();geoExec.geocode(addr,PSECU.Maps.locationcollection,null);if(PSECU.Maps.locationcollection.getSize()===0){return false;}
else if(PSECU.Maps.locationcollection.getSize()===1){if(PSECU.Maps.locationcollection.getAt(0).getResultCode().substring(0,2)!=="A1"){return PSECU.Maps.locationcollection.getAt(0);}
else{return false}}
else{buildAmbiguousList(fnct);return false;}}
function FindPoi(address){$("#AtmContentPanel").show();$(PSECU.Maps.LoadingPanel).show();var span,a,div,input,label,form;if(!PSECU.Maps.MapSearch){BuildPoiMap();}
if(!address){address=new MQSingleLineAddress();address.setAddress($("#txtAddress").attr("value"));}
var geoAddress=(address instanceof MQGeoAddress)?address:geocode(address,useAddress_search);if(!geoAddress){return false;}
PSECU.Maps.MapSearch.removeAllShapes();PSECU.Maps.MapSearch.removeRouteHighlight();$(PSECU.Maps.ResultsList).children().remove();PSECU.Maps.poiResults=new doSearch(geoAddress.getMQLatLng());ShowPoiResults(geoAddress,PSECU.Maps.poiResults);$(PSECU.Maps.RouteResultsPanel).hide();$(PSECU.Maps.RoutePanel).hide();$(PSECU.Maps.LoadingPanel).hide();$(PSECU.Maps.ResultsPanel).show();return false;}
function ShowPoiResults(geoAddr,poiResults){var span,li,a,div,p,label,img;$(PSECU.Maps.AmbiguousPanel).hide();$(PSECU.Maps.DirectionsMapPanel).hide();$(PSECU.Maps.ResultsPanel).show();$(PSECU.Maps.SearchMapPanel).show();var ul=PSECU.Maps.ResultsList;$(ul).hide();var coopHref=PSECU.Maps.CoOpHref;coopHref=coopHref.replace("[CITY]",encodeURIComponent(geoAddr.getCity()));coopHref=coopHref.replace("[ADDRESS]",encodeURIComponent(geoAddr.getStreet()));coopHref=coopHref.replace("[STATE]",encodeURIComponent(geoAddr.getState()));coopHref=coopHref.replace("[ZIP]",encodeURIComponent(geoAddr.getPostalCode()));PSECU.Maps.CoOpLink.href=coopHref;if(poiResults.length===0){$("#InstructionsPanel").hide();$("#NoResultsPanel").show();$("#NoResultsSearch").text(mqAddressToString(geoAddr));}
else{$("#InstructionsPanel").show();$("#NoResultsPanel").hide();for(var i=0;i<poiResults.length;i+=1){var li=$("<li />");$(ul).append(li);div=$("<div />").addClass("atmDetails");span=$("<span />").addClass("name");a=$("<a />").attr({id:poiResults[i].getId(),href:"javascript:void(0)"}).click(onPoiClick);var re=/branch|main office/i;var AtmName="";if(poiResults[i].getName().match(re)){AtmName+=poiResults[i].getField("CUNAME")+" ";}
AtmName+=poiResults[i].getName();a.text(AtmName);span.append(a);li.append(span);span=$("<span />").addClass("street").text(poiResults[i].getStreet());li.append(span.clone());div.append(span);span=$("<span />").addClass("cityStateZip").text(poiResults[i].getCityStatePostalCodeString());li.append(span.clone());div.append(span);if(poiResults[i].getField("ATMTYPE")){span=$("<span />").addClass("depositIcon").text("D");var AtmType=null;switch(poiResults[i].getField("ATMTYPE")){case"D":AtmType="Accepts Deposits";span.attr("title","Accepts Deposits");break;case"W":AtmType="Withdrawals Only";break;case"DNF":AtmType="Accepts Deposits (Non-Foreign)";span.attr("title","Accepts Deposits (Non-Foreign)");break;}
span=$("<div />").addClass("type");label=$("<label />").text("Type:");span.append(label).append(AtmType);li.append(span.clone());div.append(span);}
if(poiResults[i].getDistance()){span=$("<span />").addClass("distance").append(formatDistance(poiResults[i].getDistance())+" mi");li.append(span.clone());div.append(span);}
if(poiResults[i].getField("PHOTO")==="tr_du"){img=$("<img />").addClass("atmPhoto");if(poiResults[i].getField("PHOTO")=="tr_du"){img.attr("src",PSECU.Maps.locationPhotoPath+poiResults[i].getField("RECORDID")+".jpg");}
div.append(img);}
if(poiResults[i].getField("CUNAME")){label=$("<label />").text("ATM Owner:");span=$("<span />").append(label).addClass("owner").append(poiResults[i].getField("CUNAME"));div.append(span);}
if(poiResults[i].getField("LOCATION")){label=$("<label />").text("Location:");span=$("<span />").append(label).addClass("location").append(poiResults[i].getField("LOCATION"));div.append(span);}
if(poiResults[i].getField("HOURS")){label=$("<label />").text("Hours:");span=$("<span />").append(label).addClass("hours").append(poiResults[i].getField("HOURS"));div.append(span);}
a=$("<a />").addClass("directions").attr({id:"linkD"+i.toString(),href:"javascript:setDirections("+i.toString()+")"}).text("Directions");li.append(a.clone());div.append(a);var pnlClear=$("<div />").addClass("clear");li.append(pnlClear);var iconPin=new MQA.Icon("/lib/img/Maps/icons/star_redNice.gif",16,16);var poi=new MQA.Poi(poiResults[i].getMQLatLng(),iconPin);poi.setInfoTitleHTML(AtmName);poi.setInfoContentHTML(div.html());poi.setKey(poiResults[i].getId());PSECU.Maps.MapSearch.addPoi(poi);}
$(ul).show();}
var myPoint=new MQA.Poi(geoAddr.getMQLatLng());myPoint.setInfoTitleHTML("Starting Location");myPoint.setInfoContentHTML(mqAddressToString(geoAddr));myPoint.setKey('Origin');PSECU.Maps.MapSearch.addPoi(myPoint);PSECU.Maps.MapSearch.bestFit();}
function doSearch(LLobj){var searchExec=new MQExec(spatialServer,serverPath,serverPort,proxyServer,proxyPath,proxyPort);var sCriteria=new MQRadiusSearchCriteria();sCriteria.setMaxMatches(PSECU.Maps.maxResults);sCriteria.setRadius($('#radius option:selected').val());sCriteria.setCenter(LLobj);var dbLayerQueryCollection=new MQDBLayerQueryCollection();var dbLayerQuery=new MQDBLayerQuery();dbLayerQuery.setDBLayerName("MQA.MQ_34189_atm");dbLayerQueryCollection.add(dbLayerQuery);var searchResults=new MQFeatureCollection();searchExec.search(sCriteria,searchResults,'',dbLayerQueryCollection);if(searchResults.getSize()>0){var mqscFieldNames=new MQStringCollection("");var mqscRecIds=new MQStringCollection("");var mqrsResults=new MQRecordSet();for(var i=0;i<searchResults.getSize();i++){mqscRecIds.add(searchResults.getAt(i).getKey());}
searchExec.getRecordInfo(mqscFieldNames,dbLayerQuery,mqrsResults,mqscRecIds);var resultsArray=getResultsAsArray(mqrsResults,searchResults,false);}
return resultsArray;}
function useAddress_search(){var geoAddress=PSECU.Maps.locationcollection.getAt(parseInt($(this).attr("rel")));$("#txtAddress").attr("value",mqAddressToSingleLineString(geoAddress));FindPoi(geoAddress);}
function GetDirections(e){var txtStartAddress=$("#txtAddress_start").attr("value");if(StringFunctions.isBlank(txtStartAddress)){alert("City & State or Zip required!");return false;}
var addr=new MQSingleLineAddress();addr.setAddress(txtStartAddress);var geoAddress=geocode(addr,useAddress_directions);if(geoAddress){$(PSECU.Maps.SearchMapPanel).hide();$(PSECU.Maps.DirectionsMapPanel).show();BuildRouteMap();route(geoAddress,true,PSECU.Maps.map_directions);}
return false;}
function useAddress_directions(){var geoAddr=PSECU.Maps.locationcollection.getAt(parseInt($(this).attr("rel")));$(PSECU.Maps.SearchMapPanel).hide();$(PSECU.Maps.RoutePanel).show();$(PSECU.Maps.DirectionsMapPanel).show()
$("#txtAddress_start").attr("value",mqAddressToSingleLineString(geoAddr));BuildRouteMap();route(geoAddr,true,PSECU.Maps.map_directions);}
function setDirections(i){$(PSECU.Maps.RoutePanel).show();$(PSECU.Maps.ResultsPanel).hide();$('#txtAddress_start').attr("value",$('#txtAddress').attr("value"));var toAddress=PSECU.Maps.poiResults[i];if(toAddress){$("#pnlAddress_end").html(mqAddressToString(toAddress));endAddress=toAddress;}}
function BuildRouteMap(){if(!PSECU.Maps.map_directions){PSECU.Maps.map_directions=new MQA.TileMap($(PSECU.Maps.DirectionsMapPanel)[0],9,new MQLatLng(40.2931,-76.884495),"map_directions");PSECU.Maps.map_directions.setSize(new MQA.Size(500,500));PSECU.Maps.map_directions.addControl(new MQA.LargeZoomControl());myVControl=new MQA.ViewControl(PSECU.Maps.map_directions);PSECU.Maps.map_directions.addControl(myVControl,new MQA.MapCornerPlacement(MQA.MapCorner.BOTTOM_RIGHT,new MQA.Size(20,20)));}}
function displayRouteResults(routeResults,origAddress,destAddress){var a,b,div,span;$(PSECU.Maps.RouteResults).empty();div=$("<div />").addClass("EstimatedTimeHeader").text("Estimated Travel Time");$(PSECU.Maps.RouteResults).append(div);var est;if(routeResults.getTime()>3600)
est=formatTime(routeResults.getTime(),"%h hours %m minutes");else
est=formatTime(routeResults.getTime(),"%m minutes");est=est+" for "+formatDistance(routeResults.getDistance())+" miles of travel.";div=$("<div />").addClass("EstimatedTime").text(est);$(PSECU.Maps.RouteResults).append(div);var ol=$("<ol />").attr("id","listDirections");var trek,treks,maneuvers,maneuver,text;treks=routeResults.getTrekRoutes();for(var i=0;i<treks.getSize();i++){trek=treks.getAt(i);maneuvers=trek.getManeuvers();for(var j=0;j<maneuvers.getSize();j++){maneuver=maneuvers.getAt(j);li=$("<li />").addClass((j%2)?"":"alt");span=$("<span />").addClass("maneuver").text(maneuver.getNarrative());li.append(span);span=$("<span />").addClass("distance").text(formatDistance(maneuver.getDistance())+" mi");li.append(span);var pnlClear=$("<div />").addClass("clear");li.append(pnlClear);ol.append(li);}}
$(PSECU.Maps.RouteResults).append(ol);$(PSECU.Maps.ResultsPanel).hide();$(PSECU.Maps.AmbiguousPanel).hide();$(PSECU.Maps.RouteResultsPanel).show();return false;}
function resetSearchResults(){$(PSECU.Maps.ResultsPanel).show();$(PSECU.Maps.SearchMapPanel).show();$(PSECU.Maps.RouteResultsPanel).hide();$(PSECU.Maps.DirectionsMapPanel).hide();$(PSECU.Maps.RoutePanel).hide();}
function buildAmbiguousList(fnct){$(PSECU.Maps.ResultsPanel).hide();$(PSECU.Maps.RouteResultsPanel).hide();$(PSECU.Maps.RoutePanel).hide();$(PSECU.Maps.LoadingPanel).hide();$(PSECU.Maps.AmbiguousPanel).empty();$(PSECU.Maps.AmbiguousPanel).show();$("#AtmContentPanel").show();var locationcollection=PSECU.Maps.locationcollection;var h2=$("<h2 />").text("Multiple results found:");var div=$("<div />").addClass("pnlAmbiguousResults").append(h2);for(var i=0;i<locationcollection.getSize();i++){loc=locationcollection.getAt(i);var a=$("<a />").attr({href:"javascript:void(0)",rel:i.toString()}).click(fcnt);addressToString(loc,a.get(0));div.append(a);}
$(PSECU.Maps.AmbiguousPanel).append(div);}