﻿// JScript File
// Functions for generating maps for VE
var map = null;
var pinID = 1;
var layer;
var layerid=1;
// create a pageLoad() function that loads the map as we want it to appear
function pageLoad()
{
    showLoading();
    try
    {
        // This creates the new map
        map = new VEMap("map");
        // Now set up the dashboard we want to use
        //map.SetDashboardSize(VEDashboardSize.Small);
        // Try to load the map
        try
        {
            map.LoadMap();
        }catch(e)
        { }
        // Add our GeoRSS layer
        AddMyLayer(VEDataType.GeoRSS);
        // Make the map view zoom to show all locations
        map.SetMapView(layer.GetBoundingRectangle());
    }catch(e)
    { }
    finally {
        closeLoading();
    }
}
function AddMyLayer(type) {
    layer = new VEShapeLayer();
    var veLayerSpec = new VEShapeSourceSpecification(type,"../georss.ashx", layer);
    map.ImportShapeLayerData(veLayerSpec, onFeedLoad);
    layerid++;
}
function onFeedLoad(feed) {
    var numShapes = feed.GetShapeCount();
    for(var i = 0; i < numShapes; i++)
    {
        var s = feed.GetShapeByIndex(i);
        s.SetCustomIcon("<img src=\"../image/NWT%20Logo%2024x24(smallicon).gif\">");
        var tit = s.GetTitle();        
        var str = "<a href=\"javascript:showDirections(" + i + ");\">" + tit + "</a>";
        s.SetTitle(str);
    }
    //alert('RSS or Collection loaded. There are '+feed.length+' items in this list.');
}
function btnGetDirections_Click(sender,args) {
    if(document.getElementById("fromAddress").value == "") {
        alert("Please enter your address");
    }
    else {
        showLoading();
        var fromAddress = document.getElementById("fromAddress").value;
        var toAddress = document.getElementById("nwtAddress").value;
        map.HideAllShapeLayers();
        try {
            map.GetRoute(fromAddress,toAddress,null,null, gotRoute);
        }catch(e) {alert(e.message);closeLoading();}
    }
}
function gotRoute(route)
 {
   var routeinfo="<h3>Route info:</h3><p>";
    routeinfo+="Total distance: ";
    routeinfo+=   route.Itinerary.Distance+" ";
    routeinfo+=   route.Itinerary.DistanceUnit+"<br />";
    
    var steps="";
    var len = route.Itinerary.Segments.length;
    var i;
    for( i = 0; i < len;i++)
    {
         if(i != len - 1){
            steps+=route.Itinerary.Segments[i].Instruction+" -- (";
         }else{
            steps+= "Northwest Title " + route.Itinerary.Segments[i].Instruction+" -- (";
         }
         steps+=route.Itinerary.Segments[i].Distance+") ";
         steps+=route.Itinerary.DistanceUnit+"<br />";
         
    }    
    routeinfo+="</p><p>Steps:<br />"+steps+"</p><br /><div style=\"text-align:center;\"><a href=\"javascript:PrintThisPage('directions');\"><img name=\"printButton\" src=\"../PersistantImage.ashx?key=printbutton\" style=\"float:none;\" alt=\"Print Directions\" /></a></div>";
    //alert(routeinfo);
    var element = document.getElementById("directions")
    element.innerHTML = routeinfo;
    element.style.display = "block";
    element.style.visibility = "visible";
    closeLoading();
    element.focus();
 }
function showDirections(index) {
    var element = document.getElementById("middleMapDirBox");
    element.style.display = "block";
    element.style.visibility = "visible";
    var addr = document.getElementById("nwtAddress")
    var str = layer.GetShapeByIndex(index).GetDescription();
    var strarr = str.split("<br>");
    addr.value = strarr[0] + ", " + strarr[1];
    addr.visible = 'hidden';    
}
function showLoading() {
    var ld = document.getElementById("loading");
    ld.style.visibility = "visible";
    ld.style.display = "block";
}
function closeLoading() {
    var ld = document.getElementById("loading");
    ld.style.visibility = "hidden";
    ld.style.display = "none";
}