// JavaScript Document
var timerID = null;
var timerRunning = false;
var ambIndex = 0;
var polIndex = 0;
var agentIndex = 0;
var talkIndex = 0;
var map;-73.98147
var baseIcon;
var assets = new Array();
var amb = true;
var panoListener;
var addy = "info";
var domname = "streettrek";
var suffix = "com"

var ambulanceCoord = [[40.76054,-73.99770],[40.75994,-73.99621],[40.75916,-73.99450],[40.75867,-73.99331],[40.75815,-73.99197],[40.75741,-73.99047],[40.75554,-73.98578],[40.75498,-73.98459],[40.75428,-73.98269],[40.75316,-73.98000],[40.75174,-73.97687],[40.75092,-73.97482],[40.75200,-73.97352],[40.75323,-73.97251],[40.75424,-73.97188],[40.75741,-73.96957],[40.75897,-73.96860],[40.75886,-73.96856],[40.75949,-73.96968],[40.76005,-73.97128],[40.76080,-73.97289],[40.76240,-73.97672],[40.76449,-73.98161],[40.76523,-73.98347],[40.76609,-73.98533],[40.76728,-73.98824],[40.76840,-73.99085],[40.76900,-73.99226],[40.76758,-73.99342],[40.76568,-73.99469],[40.76233,-73.99722]];

var policeCoord = [[40.76151,-73.96864],[40.76041,-73.96572],[40.75918,-73.96292],[40.75841,-73.96100],[40.75763,-73.95916],[40.76019,-73.95676],[40.76294,-73.95390],[40.76653,-73.95082],[40.76717,-73.95249],[40.76797,-73.95436],[40.76944,-73.95778],[40.76847,-73.95854],[40.76776,-73.95905],[40.76719,-73.95948],[40.76653,-73.95994],[40.76525,-73.96087],[40.76405,-73.96178],[40.76397,-73.96180],[40.76215,-73.96314],[40.76120,-73.96381]];

var agentCoord = [[40.76654,-73.97270],[40.76614,-73.97257],[40.76862,-73.97306],[40.76899,-73.97299],[40.76959,-73.97220],[40.76978,-73.97332],[40.76937,-73.97494],[40.76749-73.97622],[40.76554,-73.97464],[40.76486,-73.97351],[40.76719,-73.97667],[40.76591,-73.97610],[40.76467,-73.97359]];

function initialize() {
	if (GBrowserIsCompatible()) {
	  	var m = document.getElementById("map_canvas");
		if (m)
		{
        	map = new GMap2(m);
			map.addControl(new GScaleControl());
			map.addControl(new GLargeMapControl());
			map.addControl(new GMapTypeControl());
        	map.setCenter(new GLatLng(40.76180, -73.98179), 14);
			baseIcon = new GIcon(G_DEFAULT_ICON);
			loadAsset("Officer",40.76795,-73.98187,"images/Police-officer.gif","Chief");
			loadAsset("Cop",40.75856,-73.97923,"images/Policeman.gif","Serg");
			loadAsset("Police",40.76151,-73.96864,"images/Police car.gif","425");
			loadAsset("Ambulance",40.76054,-73.99770,"images/Ambulance car.gif","780");			
			loadAsset("Agent",40.76654,-73.97270,"images/Agent.gif","007");								
			loadAsset("Ship",40.76626,-74.0040,"images/Sailing ship.gif","Star","Enterprise","border:1px #006699 solid;background-color:#CCFFFF;padding-left:3px; padding-right:3px; padding-bottom:2px; padding-top:1px;font-weight:bold;white-space: nowrap;font-family:Tahoma;font-size:12px;text-align:left");
			loadAsset("Pickup",40.75666,-74.00146,"images/Pick-up.gif","Pickup","Paul","border:1px #006699 solid;background-color:#CCCCCC;padding-left:3px; padding-right:3px; padding-bottom:2px; padding-top:1px;font-weight:bold;white-space: nowrap;font-family:Tahoma;font-size:12px;text-align:left");
			startTimer();
		}
		else
		{
			m = document.getElementById("map_small");
			{
				if (m)
				{
					map = new GMap2(m);
					map.addControl(new GSmallMapControl());
					map.setCenter(new GLatLng(40.62400,-73.92700), 14);
					baseIcon = new GIcon(G_DEFAULT_ICON);
					loadAsset("Comtran",40.62416,-73.92721,"images/PinBlue.gif","","Comtran Associates Inc.<br>1961 Utica Ave.<br>Brooklyn, NY 11234","border:1px #006699 solid;background-color:#FFFFFF;padding-left:3px; padding-right:3px; padding-bottom:2px; padding-top:1px;font-weight:bold;white-space: nowrap;font-family:Tahoma;font-size:10px;text-align:left");
				}
			}
		}
	}
}

function loadAsset(id,lat,lng,image,name,labelText,style)
{
	if (map)
	{
			var myicon = new GIcon(baseIcon,image);
			myicon.iconSize = new GSize(32,32);
			myicon.shadowSize = new GSize(0,0);
			myicon.iconAnchor = new GPoint(16,16);
			myicon.infoWindowAnchor = new GPoint(16, 16);
			var p = new GLatLng(lat,lng);
			var asset = new GMarker(p,{icon:myicon,title:name,autoPan:false});
			asset.id = id;
			if (!labelText)
			{
				labelText = name;
			}			
			var label = new ELabel(p,"<div>"+labelText+"</div>","",new GSize(-16,-18),80);			
			asset.label = label;
			map.addOverlay(asset);
			map.addOverlay(label);
			if (style)
			{
				label.setStyle(style);
				if (name == "")
				{
					label.hide();
					GEvent.addListener(asset,"mouseover",function(){asset.label.show();});
					GEvent.addListener(asset,"mouseout",function(){asset.label.hide();});
				}
			}
			else
			{
				label.setStyle("font-weight:bold;white-space: nowrap;font-family:Tahoma;font-size:12px");
			}
						
			GEvent.addListener(asset,"click",function(){getStreetView(asset);});			
			assets.push(asset);
	}
}
function getStreetView(mark)
{
	if (mark)
	{
		var latlng = mark.getLatLng();
		var client = new GStreetviewClient();
		client.getNearestPanoramaLatLng(latlng,function(lat_lng){onPanoRequest(mark,lat_lng);});
   }
}
function onPanoRequest(mark,lat_lng)
{
	if (mark)
	{
		if (lat_lng)
		{
			mark.openInfoWindowHtml("<div id='pano' style='width:300px; height:200px;'></div>");
			panoListener = GEvent.addListener(mark,"infowindowopen",function(){onInfoWindowOpen(lat_lng,mark);});			
		}
	}
}
function onInfoWindowOpen(lat_lng,mark)
{
	if (lat_lng)
	{
		var panorama = new GStreetviewPanorama(document.getElementById("pano"));
		if (panorama)
		{
			var pov = {yaw:190,pitch:-5,zoom:0};
			panorama.setLocationAndPOV(lat_lng,pov);
			if (panoListener){
				GEvent.removeListener(panoListener);
			}
		}
	}
}
function stopTimer (){
        if(timerRunning)
        	clearTimeout(timerID);
        	timerRunning = false;
}
function startTimer () {
        timerID = setTimeout("onTimer()",2500);
        timerRunning = true;
}
function onTimer()
{
	if (amb)
	{
		if (ambIndex < ambulanceCoord.length - 1)
		{
			ambIndex += 1;
		}
		else
		{
			ambIndex = 0;
		}
	}
	else
	{
		if (polIndex < policeCoord.length - 1)
		{
			polIndex += 1;
		}
		else
		{
			polIndex = 0;
		}
		if (agentIndex < agentCoord.length - 1)
		{
			agentIndex += 1;
		}
		else
		{
			agentIndex = 0;
		}
	}
	stopTimer();
	if (amb)
	{
		updateAssetPosition("Ambulance",ambulanceCoord[ambIndex][0],ambulanceCoord[ambIndex][1]);
		amb = false;
	}
	else
	{
		updateAssetPosition("Police",policeCoord[polIndex][0],policeCoord[polIndex][1]);
		updateAssetPosition("Agent",agentCoord[agentIndex][0],agentCoord[agentIndex][1]);
		amb = true;
	}
	if (talkIndex == 1)
	{
		updateTalking("Officer");
	}
	else if (talkIndex == 3)
	{
		updateTalking("Cop");
	}
	else if (talkIndex == 5)
	{
		updateTalking ("Police");
	}
	talkIndex += 1;
	if (talkIndex > 5)
	{
		talkIndex = 0;
	}
	startTimer();
}
function updateAssetPosition(id,lat,lon)
{
	try
	{
		for (var i in assets)
		{
			if (assets[i])
			{
				if (assets[i].id == id)
				{
					var p = new GLatLng(lat,lon);
					assets[i].setLatLng(p);
					if (assets[i].label)
					{
						assets[i].label.setPoint(p);
					}
					break;
				}
			}
		}
	}
	catch(err){}
}
function updateTalking(id)
{
	for (var i in assets)
	{
		if (assets[i])
		{
			if (assets[i].id == id)
			{
				if (assets[i].label)
				{
					assets[i].label.setStyle("border:1px #006699 solid;background-color:#FF6666;padding-left:3px; padding-right:3px; padding-bottom:2px; padding-top:1px;font-weight:bold;white-space: nowrap;font-family:Tahoma;font-size:10px;text-align:left");
				}
				else
				{
					assets[i].label.setStyle("font-weight:bold;white-space: nowrap;font-family:Tahoma;font-size:12px");
				}
			}
			if (i > 2)
			{
				break;
			}
		}
	}	
}
function requestExplorerDemo(addy,domname,suffix) {
var theaddress = (addy + "@" + domname + "." + suffix);
window.location = ("mailto:" + theaddress + "?subject=StreetTrek Explorer Demo Download&body=Company Name:%0AContact name:%0AEmail Address:%0A%0AYou may add additional information below the line%0A_____________________________________%0APhone number:%0AStreet Address:%0ACity:%0AState/Province:%0APostal code (ZIP):%0ACountry:");

}
function requestEmailGatewayDemo(addy,domname,suffix) {
var theaddress = (addy + "@" + domname + "." + suffix);
window.location = ("mailto:" + theaddress + "?subject=Simple Email Gateway Demo Download&body=Company Name:%0AContact name:%0AEmail Address:%0A%0AYou may add additional information below the line%0A_____________________________________%0APhone number:%0AStreet Address:%0ACity:%0AState/Province:%0APostal code (ZIP):%0ACountry:");

}