var map = null;
var xmlDoc;
var showVar = 0;
var posLat = 0;
			
function GetMap() {
	map = new VEMap('myMap');
	try{
		map.LoadMap();
	}catch(e){
		//Browser does not support SGV or VML
	}
	map.SetMapStyle(VEMapStyle.Hybrid);
	map.AttachEvent('onmousedown',GetPosition);
	map.AttachEvent('onmouseup',CheckPosition);
	map.AttachEvent('onchangeview',DoGetDMA);
	map.AttachEvent('onstartcontinuouspan',SetShowVar);
	map.SetCenter(new VELatLong(38.61687,-96.15234));
	map.HideDashboard();            				
	document.forms['frmMain'].listDMA.value = 0;
	document.forms['frmMain'].listRegion.value = 0;
	showVar = 1;
}   
function DoGetDMA() {
	GetDMA(0);
}
function GetPosition(e) {
	var center = map.GetCenter();
	posLat = center.Latitude;
}
function CheckPosition(e) {
	//Move to where user clicked on map, if they did not pan
	var center = map.GetCenter();
	if (posLat == center.Latitude) {
		map.SetCenter(e.view.LatLong);					
		map.SetZoomLevel(9);
	}
}
function GetDMA(logIt) {
				
	var center = map.GetCenter();
	var rect = map.GetMapView();
	var lat = center.Latitude;
	var lon = center.Longitude;
	var tla = rect.TopLeftLatLong.Latitude;
	var tlo = rect.TopLeftLatLong.Longitude;
	var bra = rect.BottomRightLatLong.Latitude;
	var bro = rect.BottomRightLatLong.Longitude;
				
	//We have to use MapX through asp/vb6 and not vb.net, as it has to be single threaded
	// code for IE
	if (window.ActiveXObject)
	{
		var XmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		XmlHttp.Open("GET", "GetDma.aspx?log=" + logIt + "&var=" + document.forms['frmMain'].listVar.value + "&lat=" + lat + "&lon=" + lon + "&tla=" + tla + "&tlo=" + tlo + "&bra=" + bra + "&bro=" + bro, false);
		XmlHttp.Send();
		var ret = XmlHttp.responseText;					
		xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async=false;
		xmlDoc.loadXML(ret);
		ProcessGetDMA();
	}
	// code for Mozilla, Firefox etc.
	else if (document.implementation && document.implementation.createDocument)
	{
		var XmlHttp = new XMLHttpRequest();
		XmlHttp.open("GET", "GetDma.aspx?log=" + logIt + "&var=" + document.forms['frmMain'].listVar.value + "&lat=" + lat + "&lon=" + lon + "&tla=" + tla + "&tlo=" + tlo + "&bra=" + bra + "&bro=" + bro, false);
		XmlHttp.send(null);
		var ret = XmlHttp.responseText;
		var parser = new DOMParser();
		xmlDoc=parser.parseFromString(ret,"text/xml");
		ProcessGetDMA();
	}
	else
	{
		alert('Your browser does not support this script.');
	}				
	SetZoom();
	if (showVar == 1) { 
		ShowInstructions();  
	} else
		ShowData();
}
function SetZoom() {
	var i;
	var img1 = new Image();
	var img2 = new Image();
	img1.src = "img/bar_select.gif";
	img2.src = "img/bar.gif";
	for (i = 1; i < 20; i++) {
		if (map.GetZoomLevel() == i) {
			eval('document.forms[0].bar' + i + '.src = img1.src');
		} else { 
			eval('document.forms[0].bar' + i + '.src = img2.src');
		}
	}				
}
function SetZoomLevel(bar) {
	var img1 = new Image();
	var img2 = new Image();
	img1.src = "img/bar_select.gif";
	img2.src = "img/bar.gif";
	if (map.GetZoomLevel() == bar) {
		eval('document.forms[0].bar' + bar + '.src = img1.src');
	} else { 
		eval('document.forms[0].bar' + bar + '.src = img2.src');
	}				
}
function ForceRefresh() {
	document.forms['frmMain'].listDMA.value = 0;
	document.forms['frmMain'].listRegion.value = 0;
	//Gets around a bug in VEMap where map.pan() doesn't fire the map changeview event
	var center = map.GetCenter();
	showVar = 0;
	map.SetCenter(new VELatLong(center.Latitude + 0.000001,center.Longitude + 0.000001));
}
function SetDMA() {
	// code for IE
	if (window.ActiveXObject)
	{
		var XmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		XmlHttp.Open("GET", "SetDma.aspx?dma=" + document.forms['frmMain'].listDMA.value, false);
		XmlHttp.Send();
		var ret = XmlHttp.responseText;					
		xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async=false;
		xmlDoc.loadXML(ret);
		ProcessSetDMA();
	}
	// code for Mozilla, Firefox etc.
	else if (document.implementation && document.implementation.createDocument)
	{
		var XmlHttp = new XMLHttpRequest();
		XmlHttp.open("GET", "SetDma.aspx?dma=" + document.forms['frmMain'].listDMA.value, false);
		XmlHttp.send(null);
		var ret = XmlHttp.responseText;
		var parser = new DOMParser();
		xmlDoc=parser.parseFromString(ret,"text/xml");
		ProcessSetDMA();
	}
	else
	{
		alert('Your browser cannot handle this script.');
	}
	document.forms['frmMain'].listRegion.value = 0;
}
function SetRegion() {
	// code for IE
	if (window.ActiveXObject)
	{
		var XmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		XmlHttp.Open("GET", "SetRegion.aspx?region=" + document.forms['frmMain'].listRegion.value, false);
		XmlHttp.Send();
		var ret = XmlHttp.responseText;					
		xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async=false;
		xmlDoc.loadXML(ret);
		ProcessSetRegion();
	}
	// code for Mozilla, Firefox etc.
	else if (document.implementation && document.implementation.createDocument)
	{
		var XmlHttp = new XMLHttpRequest();
		XmlHttp.open("GET", "SetRegion.aspx?region=" + document.forms['frmMain'].listRegion.value, false);
		XmlHttp.send(null);
		var ret = XmlHttp.responseText;
		var parser = new DOMParser();
		xmlDoc=parser.parseFromString(ret,"text/xml");
		ProcessSetRegion();
	}
	else
	{
		alert('Your browser cannot handle this script.');
	}
	document.forms['frmMain'].listDMA.value = 0;
}
function ProcessGetDMA() {
	//Do the data
	var dma = xmlDoc.getElementsByTagName("name")[0].firstChild.nodeValue;
	if (dma != 'NONE') {
		var id = xmlDoc.getElementsByTagName("id")[0].firstChild.nodeValue;
		var hhs = xmlDoc.getElementsByTagName("hhs")[0].firstChild.nodeValue;
		var spends = xmlDoc.getElementsByTagName("spends")[0].firstChild.nodeValue;
		var idx = xmlDoc.getElementsByTagName("idx")[0].firstChild.nodeValue;
		var idx_rank = xmlDoc.getElementsByTagName("idx_rank")[0].firstChild.nodeValue;
		var avginc = xmlDoc.getElementsByTagName("avginc")[0].firstChild.nodeValue;
		var avgspend = xmlDoc.getElementsByTagName("avgspend")[0].firstChild.nodeValue;
		var med1 = xmlDoc.getElementsByTagName("med1")[0].firstChild.nodeValue;
		var med2 = xmlDoc.getElementsByTagName("med2")[0].firstChild.nodeValue;
		var med3 = xmlDoc.getElementsByTagName("med3")[0].firstChild.nodeValue;
		var spd1 = xmlDoc.getElementsByTagName("spd1")[0].firstChild.nodeValue;
		var spd2 = xmlDoc.getElementsByTagName("spd2")[0].firstChild.nodeValue;
		var spd3 = xmlDoc.getElementsByTagName("spd3")[0].firstChild.nodeValue;

		document.getElementById('lblDma').innerHTML = dma;				
		document.getElementById('lblIndex').innerHTML = idx;				
		document.getElementById('lblSpends').innerHTML = 'This market has ' + spends;				
		document.getElementById('lblRank').innerHTML = idx_rank;				
		if (idx_rank <= 10) 
			document.getElementById('lblRank').style.color = '#880044';
		else if (idx_rank <= 25) 
			document.getElementById('lblRank').style.color = '#D7D733';
		else if (idx_rank <= 50) 
			document.getElementById('lblRank').style.color = '#C27D25';
		else if (idx_rank <= 100) 
			document.getElementById('lblRank').style.color = '#8D8F35';
		else 
			document.getElementById('lblRank').style.color = '#B68D7A';

		document.getElementById('lblId').value = id;				
		document.getElementById('lblDmaHhs').innerHTML = hhs;				
		document.getElementById('lblAvgInc').innerHTML = avginc;				
		document.getElementById('lblAvgSpend').innerHTML = avgspend;				
		document.getElementById('lblMed1').innerHTML = med1;				
		document.getElementById('lblMed2').innerHTML = med2;				
		document.getElementById('lblMed3').innerHTML = med3;				
		document.getElementById('lblSpd1').innerHTML = spd1;				
		document.getElementById('lblSpd2').innerHTML = spd2;				
		document.getElementById('lblSpd3').innerHTML = spd3;				
	}
	else {
		document.getElementById('lblDma').innerHTML = '';				
		document.getElementById('lblIndex').innerHTML = '';				
		document.getElementById('lblSpends').innerHTML = '';				
		document.getElementById('lblRank').innerHTML = '';				
		document.getElementById('lblDmaHhs').innerHTML = '';				
		document.getElementById('lblAvgInc').innerHTML = '';				
		document.getElementById('lblAvgSpend').innerHTML = '';				
		document.getElementById('lblMed1').innerHTML = '';				
		document.getElementById('lblMed2').innerHTML = '';				
		document.getElementById('lblMed3').innerHTML = '';				
		document.getElementById('lblSpd1').innerHTML = '';				
		document.getElementById('lblSpd2').innerHTML = '';				
		document.getElementById('lblSpd3').innerHTML = '';				
	}

	//Do the pushpins
	var i, n_elems;
	var elems_lat = xmlDoc.getElementsByTagName("lat"); 
	var elems_long = xmlDoc.getElementsByTagName("long"); 
	var elems_rank = xmlDoc.getElementsByTagName("rank"); 
	var elems_pin = xmlDoc.getElementsByTagName("pin"); 
	var elems_geo_name = xmlDoc.getElementsByTagName("geo_name"); 
	n_elems = elems_lat.length; 

	map.DeleteAllPushpins();
	for (i = 0; i < n_elems; i++) {
		var pin = new VEPushpin(i, new VELatLong(elems_lat[i].firstChild.nodeValue, 
			elems_long[i].firstChild.nodeValue), 'img/pin' + elems_pin[i].firstChild.nodeValue + '.gif', 
			elems_geo_name[i].firstChild.nodeValue, 'Rank: ' + elems_rank[i].firstChild.nodeValue);
		map.AddPushpin(pin);
	}
}
function ProcessSetDMA() {
	var lat = xmlDoc.getElementsByTagName("lat")[0].firstChild.nodeValue;
	var lon = xmlDoc.getElementsByTagName("long")[0].firstChild.nodeValue;
	if (lat != 0) {
		map.SetCenter(new VELatLong(lat,lon));
		showVar = 0;
		map.SetZoomLevel(9);
	}
}
function ProcessSetRegion() {
	var lat = xmlDoc.getElementsByTagName("lat")[0].firstChild.nodeValue;
	var lon = xmlDoc.getElementsByTagName("long")[0].firstChild.nodeValue;
	var zoom = xmlDoc.getElementsByTagName("zoom")[0].firstChild.nodeValue;
	if (lat != 0) {
		map.SetCenter(new VELatLong(lat,lon));
		showVar = 1;
		map.SetZoomLevel(zoom);
	}
}
function SetShowVar() {
	showVar = 0;
}
function ShowData() {
	var tbl  = document.getElementById('MainTable');
	tbl.rows[0].cells[2].style.display='block';
	tbl.rows[0].cells[3].style.display='none';
}
function ShowInstructions() {
	var tbl  = document.getElementById('MainTable');
	tbl.rows[0].cells[3].style.display='block';
	tbl.rows[0].cells[2].style.display='none';
}
function PrintReport() {
	var center = map.GetCenter();
	window.open('Output.aspx?dma=' + document.getElementById('lblId').value + '&var=' + document.forms['frmMain'].listVar.value + '&style=' + map.GetMapStyle() + '&zoom=' + map.GetZoomLevel() + '&lat=' + center.Latitude + '&lon=' + center.Longitude,'output_window','width=700,height=1000');
}

