
function CenterAndZoom(lon,lat,zoomLevel)
{
	map.SetCenterAndZoom(new VELatLong(lat,lon),zoomLevel);
}

function ClearSearchText()
{
	document.getElementById("ss").value = '';
}

function CreateMapTypeLink(mapType)
{
	zoomLevel = map.GetZoomLevel();
	switch(map.GetMapStyle())
	{
		case VEMapStyle.Aerial: 
			mapView = 1;
			break;
		case VEMapStyle.Hybrid: 
			mapView = 2;			
			break;
		case VEMapStyle.Birdseye: 
			mapView = 3;
			break;			
		default: 
			mapView = 0;
	}
	
	var locationParam;
	if(mapView == 3)
	{
		 var birdseye = map.GetBirdseyeScene();
		 locationParam = '&scene=' + birdseye.GetID();
	}
	else
	{
		var latlon = map.GetCenter();
		var lat = Math.round(latlon.Latitude * 100000) / 100000;
		var lon = Math.round(latlon.Longitude * 100000) / 100000;	
		locationParam = '&lat=' + lat + '&lon=' + lon;
	}
	
	var url = 'http://maps.weatherbug.com?zoom=' + zoomLevel + '&mv=' + mapView + '&mt=' + mapType + locationParam + '&u=' + document.getElementById('unitsSelected').value;
	
	return url;
}

function InitMap()
{
		map = new VEMap('myMap');
		if (VEMapStyle.Birdseye == 0)
		{
			map.LoadMap(null, 2, 0, false, VEMapMode.Mode2D, false);
			map.SetBirdseyeScene('-1');
		}
		else
		{
			var latlon = new VELatLong(38, -77);
			map.LoadMap(latlon, 2, 0, false, VEMapMode.Mode2D, false);		
		}
		
        map.AttachEvent("onendzoom", MarkMap);
        map.AttachEvent("onendpan", MarkMap);
        map.AttachEvent("onstartpan", ClearSearchText);
}

function SetNewLocation()
{
	ShowSearchResults(false);
	ShowZoomStatus(false);
	ShowSearchLocation(true);
	
	statList = new Array();
	
	var url = "GetLocation.aspx?ss=" + document.getElementById('ss').value;
		
	AwsSendAsyncGetReq(url,LocationResponse);
}

function ShowStationObs(show,hasCamera,x,y)
{
	var stationObs = document.getElementById('stationObsDiv');

	if( show )
	{
		var c = document.getElementById("myMap");
		var stationObsWidth = 225 + x;
		var mapWidth = c.offsetWidth - 30;	
		stationObs.style.left = (stationObsWidth > mapWidth ? mapWidth - 225 : x);
		
		var stationObsBottom = 250 + y;
		var mapHeight = c.offsetHeight + 105;
		if( hasCamera == '0' )
			stationObs.style.height = 250;
		else
			stationObs.style.height = 130 + 250;
			
		stationObs.style.top = (stationObsBottom > mapHeight ? (hasCamera == '0' ? mapHeight - 270 : mapHeight - 375) : y);	
	}
	stationObs.style.visibility = (show ? 'visible' : 'hidden');
}

function MarkMap(e)
{	
	if( !isAbleToGetData ) return;
	
	if( map.GetZoomLevel() > 7 || map.GetMapStyle() == VEMapStyle.Birdseye) 
		ShowZoomStatus(false);
	else
	{
		ShowZoomStatus(true);
			
		return;
	}
	ShowAddingStations(true);

	var c = document.getElementById("myMap");
	        
	var upperLeftLatLong = map.PixelToLatLong(new VEPixel(0,0));
	var lowerRightPixel = map.PixelToLatLong(new VEPixel(c.offsetWidth,c.offsetHeight));	
	var url = 'GetStations.aspx?t='+Math.random()+'&minlat='+lowerRightPixel.Latitude+'&maxlat='+upperLeftLatLong.Latitude+'&minlon='+upperLeftLatLong.Longitude+'&maxlon='+lowerRightPixel.Longitude;
	
	
	
	AwsSendAsyncGetReq(url,StationResponse);
}

function GetIconAwsStation()
{
	return 'images/AwsStation.gif';
}

function GetIconAwsStationWithCam()
{
	return 'images/AwsStationWithCam.gif';
}

function GetIconNwsStation()
{
	return 'images/NwsStation.gif';
}

function StationResponse()
{
	if( awsHttp.readyState != 4 ) return;
	
	var xmlDoc = awsHttp.responseXML;
	var markers = xmlDoc.getElementsByTagName('aws:station');
	if( markers.length == 0 ) markers = xmlDoc.getElementsByTagName('station');	
	
	var len = markers.length;
	var xyz = 0;
	
	
	var units = document.getElementById('unitsSelected').value;
	for(i = 0; i < len; i++ )
	{
		try
		{
			var isCreated = false;
			var currentStat = markers[i].getAttribute("id");
			for(j=0; j < statList.length;j++)
			{
				if(currentStat == statList[j])
				{
					isCreated = true;
					break;
				}
			}
			if( !isCreated )
			{
				var currentLat = markers[i].getAttribute("lat");
				var currentLon = markers[i].getAttribute("lon");		
				var currentZip = markers[i].getAttribute("zipcode")			
				var hasCamera = ( markers[i].getAttribute("has-camera") == "1" );
				
				
				var pinImage = GetIconAwsStation();
				if( hasCamera )
					pinImage = GetIconAwsStationWithCam();
				else if(markers[i].getAttribute("station-type") == "NWS")
					pinImage = GetIconNwsStation();
					
				var boxHeight = 250;
				if( hasCamera == '1' ) boxHeight += 130;			
				var	url = '<iframe scrolling="NO" frameborder="0" width="225" height="'+boxHeight+'" src="StationBalloon.aspx?units='+units+'&zip='+currentZip+'&hasCamera='+hasCamera+'&stat=' + currentStat + '&lat=' + currentLat + '&lon='+currentLon + '"></iframe>';				
				var pin = new VEPushpin(currentStat, new VELatLong(currentLat, currentLon), pinImage,null,url);
				map.AddPushpin(pin);			
				
				statList[statList.length] = currentStat;
				xyz++;
			}
		}
		catch(e)
		{}
	}	
	
		
	ShowAddingStations(false);
}

