﻿var proxyServerName = "";
var proxyServerPort = "";
var ProxyServerPath = "JSAPIProxyPage/proxy.aspx";
var routeServerName = "route.access.mapquest.com";
var routeServerPort = "80";
var routeServerPath = "mq";
var routeExec = new MQExec(routeServerName, routeServerPath, routeServerPort, proxyServerName, ProxyServerPath, proxyServerPort );
var resultPoint = null;
var myMap = null;
var dMap = null;
var destination = new MQGeoAddress();
var origin = new MQGeoAddress()

function startRouteMap()
{
	destination = new MQGeoAddress();
	origin = new MQGeoAddress()
	
	origin.setStreet(document.getElementById("street").value);
	origin.setCity(document.getElementById("city").value);
	origin.setState(document.getElementById("state").value);
	origin.setPostalCode(document.getElementById("zip").value);
	origin.setCountry("US");
	origin.setCounty(document.getElementById("county").value);
	origin.setGEFID(document.getElementById("gefid").value);
	origin.setMQLatLng(new MQLatLng(document.getElementById("lat").value, document.getElementById("lng").value));
	origin.setResultCode(document.getElementById("geocode").value);

	destination.setStreet(document.getElementById("street2").value);
	destination.setCity(document.getElementById("city2").value);
	destination.setState(document.getElementById("state2").value);
	destination.setPostalCode(document.getElementById("zip2").value);
	destination.setCountry("US");
	destination.setCounty(document.getElementById("county2").value);
	destination.setGEFID(document.getElementById("gefid2").value);
	destination.setMQLatLng(new MQLatLng(document.getElementById("lat2").value, document.getElementById("lng2").value));
	destination.setResultCode(document.getElementById("geocode2").value);

	RouteIt(origin, destination);
}

//function startMap(){getResultsPage(1);} // This gets overridden by the other pages
function startMap2(pagenum){getResultsPage(pagenum);}
function getResults() {getResultsPage(1);}
function prevPageMap(){GetXmlDocument(parseInt(document.getElementById(getClientId("PrevPage")).value));}
function nextPageMap(){GetXmlDocument(parseInt(document.getElementById(getClientId("NextPage")).value));}
function GetXmlDocument(page){Sovereign.AtmLocator.SovQueryService.GetXmlDocument(origin.getMQLatLng().getLatitude(), origin.getMQLatLng().getLongitude(), document.getElementById("radius").value, document.getElementById("selectedradio").value, page, OnSucceededWithContext, OnFailed, "XmlDocument");}
function OnSucceeded(result, eventArgs){}
function OnFailed(error){}
function getDirections(locid, lat, lon){location.href = "route.aspx?locid=" + locid;}

function getResultsPage(page) {
	origin = new MQGeoAddress()
	
	origin.setStreet(document.getElementById("street").value);
	origin.setCity(document.getElementById("city").value);
	origin.setState(document.getElementById("state").value);
	origin.setPostalCode(document.getElementById("zip").value);
	origin.setCountry("US");
	origin.setCounty(document.getElementById("county").value);
	origin.setGEFID(document.getElementById("gefid").value);
	origin.setMQLatLng(new MQLatLng(document.getElementById("lat").value, document.getElementById("lng").value));
	origin.setResultCode(document.getElementById("geocode").value);

	GetXmlDocument(page);
}

function getSelectedRadio(buttonGroup) {
   // returns the array number of the selected radio button or -1 if no button is selected
   if (buttonGroup[0]) { // if the button group is an array (one button is not an array)
	  for (var i=0; i<buttonGroup.length; i++) {
		 if (buttonGroup[i].checked) {
			return i;
		 }
	  }
   } else {
	  if (buttonGroup.checked) { return 0; } // if the one button is checked, return zero
   }
   // if we get to this point, no radio button is selected
   return -1;
}


function formatAddress(street, city, state, zip)
{
	state = state.trim();
	if (street == "" && city == "" && state == "") return "Zip: " + zip;
	if (street == "" && city == "") return zip + ", " + state;
	
	var output = "";
	if (street != "") output += street;
	if (street != "" && (city != "" || state != "" || zip != "")) output += "<br>";
	if (city != "")
	{
		output += city;
		if (state != "" || zip != "") output += ", ";
	}
	if (state != "") output += state;
	if (state != "" && zip != "") output += " ";
	output += zip;
	return output;
}

function OnSucceededWithContext(result, userContext, methodName)
{
	var output;
	var numMsgs = 0;		var resulthtml = '';	var branchdetail = '';	var resultnum = '';	var vlat = '';	var vlon = '';	pinid = 1;	
	var readResult;
//	try {
		var mapw = document.getElementById('mapWindow');
//		if (mapw == null) setTimeout(OnSucceededWithContext(result, userContext, methodName), 500);
//	} catch(e) {
//		setTimeout(OnSucceededWithContext(result, userContext, methodName), 500);
//	}
	
	if (userContext == "XmlDocument")
	{
		var ie = true;
		if (!document.all) ie = false;

		numMsgs = result.getElementsByTagName('message')[0].getElementsByTagName('numBranches')[0].firstChild.data;

		if(numMsgs<1){mapw.innerHTML = "";return;}			
		mapw.innerHTML = "";
		mapw.style.margin = "15px 0 10px 0";
		mapw.style.width = "558px";
		mapw.style.height = "340px";
		mapw.style.border = "solid 1px #d1cdc6";
		mapw.style.verticalAlign = "middle";
		
		myMap = new MQTileMap(mapw);
		if (document.getElementById("printversion").value != "True")
		{
			myLZControl = new MQLargeZoomControl(myMap);
			myMap.addControl(myLZControl, new MQMapCornerPlacement(MQMapCorner.TOP_LEFT));
			myVControl = new MQViewControl(myMap);
			myMap.addControl(myVControl, new MQMapCornerPlacement(MQMapCorner.TOP_RIGHT));
		}
		myMap.removeAllPois();

		var myPoint = new MQPoi(origin.getMQLatLng());	
		myPoint.setInfoTitleHTML("Origin: " + formatAddress(document.getElementById("street").value, document.getElementById("city").value, document.getElementById("state").value, document.getElementById("zip").value));
		myPoint.setInfoContentHTML('This is your origin');
		myPoint.setKey('Origin');
		myMap.addPoi(myPoint);

		//myMap.bestFit();	
	   	 					for(i=0; i < numMsgs; i++) 		{					if(ie){						vlat = result.getElementsByTagName('message')[0].getElementsByTagName('item')[i].getElementsByTagName('lat')[0].firstChild.text;			   
				vlon = result.getElementsByTagName('message')[0].getElementsByTagName('item')[i].getElementsByTagName('lon')[0].firstChild.text;				
				title = result.getElementsByTagName('message')[0].getElementsByTagName('item')[i].getElementsByTagName('title')[0].firstChild.text; 			   				branchdetail = result.getElementsByTagName('message')[0].getElementsByTagName('item')[i].getElementsByTagName('branchdetail')[0].firstChild.text; 				resultnum = result.getElementsByTagName('message')[0].getElementsByTagName('item')[i].getElementsByTagName('resultnum')[0].firstChild.text;	 			}			else{   				vlat = result.getElementsByTagName('message')[0].getElementsByTagName('item')[i].getElementsByTagName('lat')[0].firstChild.textContent;			   
				vlon = result.getElementsByTagName('message')[0].getElementsByTagName('item')[i].getElementsByTagName('lon')[0].firstChild.textContent;				
				title = result.getElementsByTagName('message')[0].getElementsByTagName('item')[i].getElementsByTagName('title')[0].firstChild.textContent; 			   				branchdetail = result.getElementsByTagName('message')[0].getElementsByTagName('item')[i].getElementsByTagName('branchdetail')[0].firstChild.textContent; 				resultnum = result.getElementsByTagName('message')[0].getElementsByTagName('item')[i].getElementsByTagName('resultnum')[0].firstChild.textContent;								}		  			var ltln = new MQLatLng();
			ltln.setLatLng(vlat, vlon);
							
			var myIcon = new MQMapIcon();
			myIcon.setImage("http://www.sovereignbank.com/img/c.gif",0,0,true,true);
			
			poi = new MQPoi(ltln);
			poi.setIcon(myIcon);
			poi.setInfoTitleHTML("<a href='#"+branchdetail+"' onclick=\"OpenPane(" + resultnum + ")\">"+resultnum+". "+ title+"</a>");
			poi.setInfoContentHTML("");
			poi.setLabel(resultnum, "modmq-poi-label");
			poi.setLabelVisible(true); 
			poi.setKey(pinid);
			myMap.addPoi(poi);
			pinid++;													}		myMap.bestFit();	}
}


function RouteIt(origin, destination)
{
//	try{
		var mapw = document.getElementById('mapWindow');
//		if (mapw == null) setTimeout(RouteIt(origin, destination), 500);
//	} catch(e) {
//		setTimeout(RouteIt(origin, destination), 500);
//	}

	mapw.innerHTML = "";
	mapw.style.margin = "10px 0 0 0";
	mapw.style.width = "558px";
	mapw.style.height = "340px";
	mapw.style.border = "solid 1px #d1cdc6";
	mapw.style.verticalAlign = "middle";
	
	var session = new MQSession();	
	var routeRes = new MQRouteResults();
	var wayPoints = new MQLocationCollection();
	var myBB = new MQRectLL(new MQLatLng(),new MQLatLng());

	wayPoints.add(origin);
	wayPoints.add(destination);

	var routeOpt = new MQRouteOptions();
	
	myMap = new MQTileMap(mapw);
	
	if (document.getElementById("printversion").value != "True")
	{
		myLZControl = new MQLargeZoomControl(myMap);
		myMap.addControl(myLZControl, new MQMapCornerPlacement(MQMapCorner.TOP_LEFT));
		myVControl = new MQViewControl(myMap);
		myMap.addControl(myVControl, new MQMapCornerPlacement(MQMapCorner.TOP_RIGHT));
	}
	myMap.removeAllPois();

	var sessId = routeExec.createSessionEx(session);
	routeExec.doRoute(wayPoints,routeOpt,routeRes,sessId,myBB);

	var myIconStart = new MQMapIcon();
	var myIconEnd = new MQMapIcon();
	myIconStart.setImage("http://img.mqcdn.com/mqsite/icon-dirs-start",32,17,true,true);
	myIconEnd.setImage("http://img.mqcdn.com/mqsite/icon-dirs-end",32,17,true,true);

	var poi = new MQPoi(origin.getMQLatLng());
	poi.setIcon(myIconStart);
	poi.setInfoTitleHTML("Origin: ");
	poi.setInfoContentHTML(formatAddress(document.getElementById("street").value, document.getElementById("city").value, document.getElementById("state").value, document.getElementById("zip").value));
	poi.setKey('Origin');
	myMap.addPoi(poi);

	var poi = new MQPoi(destination.getMQLatLng());
	poi.setIcon(myIconEnd);
	poi.setInfoTitleHTML("Destination: ");
	poi.setInfoContentHTML(formatAddress(document.getElementById("street2").value, document.getElementById("city2").value, document.getElementById("state2").value, document.getElementById("zip2").value));
	poi.setKey('Destination');
	myMap.addPoi(poi);

	myMap.addRouteHighlight(myBB,"http://map.access.mapquest.com",sessId,true);
}
