﻿// JavaScript Document
/******* Virtual Earth *******/
	var map = null;
	var layerid=1;
	
	
	
    //set page event handlers for onload and unload
    if (window.attachEvent) 
    {
     window.attachEvent("onload", Page_Load);
     window.attachEvent("onunload", Page_Unload); 
    } 
    else 
    {
     window.addEventListener("DOMContentLoaded", Page_Load, false);
     window.addEventListener("unload", Page_Unload, false);
    }
    //load map    
    function Page_Load() 
    {
	    LoadTheMap();
	    map.SetZoomLevel(xzoom);
	    map.SetMapStyle(VEMapStyle.Hybrid);
	    document.getElementById("cameraHeader").innerHTML = xinittitle;
	    document.getElementById("fullViewImage").src = xinitimage;
	    document.getElementById("DOTLink").href = xdotlink;
	    document.getElementById("DOTName").innerHTML = xdotname;
	    document.getElementById("DOTLink").href = xdotlink;
	    document.getElementById("UpdateRate").innerHTML = xdottxt;
	}
    //Clean up all objects
    function Page_Unload() 
    {
        if (map!=null) 
        {
            map.Dispose();
            map = null;
        }
    }
	
	function pinHandler(e) {
		if (e.elementID != null){
			populateView ( (map.GetShapeByID(e.elementID) ).pinClickURL  );
			populateCameraHeader( (map.GetShapeByID(e.elementID) ).GetTitle());
		} else
			document.getElementById('resultDiv').innerHTML = e.eventName + " event occurred on map.";
	}
	
	function ShowTraffic() {
		map.LoadTraffic(true);
		//map.ShowTrafficLegend(440,2);
		//map.SetTrafficLegendText("Traffic Legend");
	}

	function ClearTraffic() {
		map.ClearTraffic();
	}
	
	function AddControl() {
		var el = document.createElement("div"); 
            	el.id = "mapdiv1";
            	el.style.top = "2px";
            	el.style.left = "458px";
				el.style.padding = "4px";   
            	el.style.border = "1px solid #ccc";
            	el.style.background = "#f7f7f7";
            	el.setAttribute('onmouseover', 'this.style.background="#eaeaea";');
            	el.setAttribute('onmouseout', 'this.style.background="#f7f7f7";');
            	el.innerHTML = "<a style=\"color:black;font-size:10px;text-decoration:none\" href=javascript:ShowTraffic();>Show Traffic</a>"; //el.id;  
		var ele = document.createElement("div"); 
            	ele.id = "mapdiv2";
            	ele.style.top = "2px";
            	ele.style.left = "530px";
				ele.style.padding = "4px";
            	ele.style.border = "1px solid #ccc";
            	ele.style.background = "#f7f7f7";
            	ele.setAttribute('onmouseover', 'this.style.background="#eaeaea";');
            	ele.setAttribute('onmouseout', 'this.style.background="#f7f7f7";');
            	ele.innerHTML = "<a style=\"color:black;font-size:10px;text-decoration:none\" href=javascript:ClearTraffic();>Clear Traffic</a>"; //ele.id;  
            map.AddControl(el);
			map.AddControl(ele);
         }
		 
	function GetMap() {
		map = new VEMap('myMap');
		map.SetDashboardSize(VEDashboardSize.Small);
		map.LoadMap();
		map.AttachEvent("onclick",pinHandler);
		AddMyLayer();
	}
		 
	function AddMyLayer() {
		var l = new VEShapeLayer();
		var veLayerSpec = new VEShapeSourceSpecification(VEDataType.GeoRSS, xurl, l);
		map.ImportShapeLayerData(veLayerSpec, onFeedLoad);
	}
	
	function onFeedLoad(layer) {
		var numShapes = layer.GetShapeCount();
		var shape_obj;
		for(var i=0; i < numShapes ; ++i) {
			shape_obj = layer.GetShapeByIndex(i);
			shape_obj.SetCustomIcon("<img src='"+shape_obj.IconId+"'/>");
			shape_obj.SetTitle(shape_obj.GetTitle())
			//shape_obj.SetDescription("<img src='"+shape_obj.GetMoreInfoURL()+"'width='150' height='102' />");
			//Saves the xml link before it is cleared out so we can use it for "pinHandler()"
			shape_obj.pinClickURL = shape_obj.GetMoreInfoURL();
			//Removes the link from the infobox
			shape_obj.SetMoreInfoURL();
		}
		map.SetZoomLevel(xzoom);
		AddControl();
		}
		
/******* Populates fullViewImage and refreshes *******/
	var refreshRate = setInterval("refreshView()", xrefresh);
	var viewURL = xinitimage;
	
	function refreshView() {
		var today=new Date();
		var time=today.getSeconds();
		var im = new Image();
		im = document.getElementById("fullViewImage");
		im.src = viewURL;
		document.getElementById("fullViewImage").src = im.src+'&'+time.valueOf();
	}
	
	function populateView(url) {
		clearInterval(refreshRate);
		viewURL = url;
		refreshRate = setInterval("refreshView()", xrefresh);
		document.getElementById("cameraImage").innerHTML = "<img id='fullViewImage' src='" + url + "' onerror='this.src=\"/images/camoff.gif\";' />";
	}
	
	function populateCameraHeader(cameraHeaderString) {
		document.getElementById("cameraHeader").innerHTML = cameraHeaderString;
	}
	
/******* Check Browsers Type *******/
	function browserversion()
{
   	   var ua = window.navigator.userAgent
	   var browser = ua.indexOf ( "MSIE" )
	   if ( browser > 0 )
		  return true
       else 
       {
       	  browser = navigator.userAgent.indexOf ("Firefox")
		  if (browser > 0 )
       	     return true
       	  else 
       	  	browser = navigator.userAgent.indexOf ("Safari")
       	  		if (browser > 0 )
       	     		return true
       	     	else
       	     	    return false
       }
}

function LoadTheMap()
	{
if (!browserversion())
	changeMap();
else
	GetMap();
	}
	

function changeMap()
{
document.getElementById('myMap').innerHTML="This site requires latest version of Microsoft Internet Explorer, Mozilla FireFox, or Google Chrome";
alert('This site requires latest version of Microsoft Internet Explorer, Mozilla FireFox, or Google Chrome');
}
