var map;
var markers;
var divWait;

function reCenterMap(Lat,Lon,Zoom){
map.setCenter(new GLatLng(Lat,Lon), Zoom)
}



function getAbsoluteDivs()
{
    var arr = new Array();
    var all_divs = document.body.getElementsByTagName("DIV");
    var j = 0;

    for (i = 0; i < all_divs.length; i++)
        if (all_divs.item(i).style.position=='absolute')
        {
            arr[j] = all_divs.item(i);
            j++;
        }

    return arr;
}

function bringToFront(id)
{
    if (!document.getElementById ||
        !document.getElementsByTagName)
        return;

    var obj = document.getElementById(id);
    var divs = getAbsoluteDivs();
    var max_index = 0;
    var cur_index;

    // Compute the maximal z-index of
    // other absolute-positioned divs
    for (i = 0; i < divs.length; i++)
    {
        var item = divs[i];
        if (item == obj ||
            item.style.zIndex == '')
            continue;

        cur_index = parseInt(item.style.zIndex);
        if (max_index < cur_index)
        {
            max_index = cur_index;
        }
    }

    obj.style.zIndex = max_index + 1;
}

function sendToBack(id)
{
    if (!document.getElementById ||
        !document.getElementsByTagName)
        return;

    var obj = document.getElementById(id);
    var divs = getAbsoluteDivs();
    var min_index = 999999;
    var cur_index;

    if (divs.length < 2)
        return;

    // Compute the minimal z-index of
    // other absolute-positioned divs
    for (i = 0; i < divs.length; i++)
    {
        var item = divs[i];
        if (item == obj)
            continue;

        if (item.style.zIndex == '')
        {
            min_index = 0;
            break;
        }

        cur_index = parseInt(item.style.zIndex);
        if (min_index > cur_index)
        {
            min_index = cur_index;
        }

    }

    if (min_index > parseInt(obj.style.zIndex))
    {
        return;
    }

    obj.style.zIndex = 1;

    if (min_index > 1)
        return;

    var add = min_index == 0 ? 2 : 1;

    for (i = 0; i < divs.length; i++)
    {
        var item = divs[i];
        if (item == obj)
            continue;

        item.style.zIndex += add;
    }
}







function HideMapStatusBar() { 
if (document.getElementById) { // DOM3 = IE5, NS6 
document.getElementById('loading').style.visibility = 'hidden'; 
} 
else { 
if (document.layers) { // Netscape 4 
document.loading.visibility = 'hidden'; 
} 
else { // IE 4 
document.all.loading.style.visibility = 'hidden'; 
} 
} 
} 

function createMarker(point, insertHTML,Theicon) {
  var marker = new GMarker(point,Theicon);
  GEvent.addListener(marker, "click", function() {
//    marker.openInfoWindowHtml(index.asp);
    marker.openInfoWindowHtml("<b>" + insertHTML + "</b>");
  });
  return marker;
}

function ShowOffenderDetail(OffID) {
	var request = GXmlHttp.create();
//	request.open("GET", "/PredQuery.asp?LatCenter="+LatCenterMap+"&LonCenter="+LonCenterMap+"&Radius="+Radius, true);
	request.open("GET", "/OffProfile.asp?OID="+OffID, true);
	request.onreadystatechange = function() {
		if (request.readyState == 4) {
			//var xmlDoc = request.responseXML;
			document.getElementById('SponHTML').innerHTML = request.responseText
			ShowHelp(document.getElementById('hlpIPAddressRequest_divLink'))
			initializetabcontent("maintab")
		}
	}
	request.send(null);

}

function createSponserMarker(point, SponID,insertHTML,Theicon) {
  var marker = new GMarker(point,Theicon);
  GEvent.addListener(marker, "click", function() {
	document.getElementById('SponHTML').innerHTML = insertHTML
	ShowHelp(document.getElementById(SponID))
  });
  return marker;
}


function LoadMap(Lat,Lon,Zoom)
{
	if (GBrowserIsCompatible()) {
		//document.getElementById('loading').style.visibility = 'visible';							//show loading status bar
		//document.getElementById('loading').style.zIndex = 1; 
		
		map = new GMap2(document.getElementById("map"));
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		map.addControl(new GScaleControl());
		map.setCenter(new GLatLng(Lat,Lon), Zoom)
		map.enableContinuousZoom();
//		showError('Loading map, please stand by...');		
	}
}	
function DrawMarkers(LatHigh,LatLow,LonHigh,LonLow)
{
//	ShowWait();
	var iconSpon = new GIcon();
	iconSpon.image = "http://labs.google.com/ridefinder/images/mm_20_blue.png";
//	iconSpon.shadow = "http://labs.google.com/ridefinder/images/mm_20_blue.png";
	iconSpon.iconSize = new GSize(12, 20);
//	iconEmp.shadowSize = new GSize(22, 20);
	iconSpon.iconAnchor = new GPoint(6, 20);
	iconSpon.infoWindowAnchor = new GPoint(5, 1);

	var iconEmp = new GIcon();
	iconEmp.image = "http://labs.google.com/ridefinder/images/mm_20_yellow.png";
	//iconEmp.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
	iconEmp.iconSize = new GSize(12, 20);
	//iconEmp.shadowSize = new GSize(22, 20);
	iconEmp.iconAnchor = new GPoint(6, 20);
	iconEmp.infoWindowAnchor = new GPoint(5, 1);

	var iconHome = new GIcon();
	iconHome.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
	//iconHome.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
	iconHome.iconSize = new GSize(12, 20);
	//iconHome.shadowSize = new GSize(22, 20);
	iconHome.iconAnchor = new GPoint(6, 20);
	iconHome.infoWindowAnchor = new GPoint(5, 1);

	var iconCenter = new GIcon();
	iconCenter.image = "http://labs.google.com/ridefinder/images/mm_20_green.png";
	iconCenter.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
	iconCenter.iconSize = new GSize(12, 20);
	iconCenter.shadowSize = new GSize(22, 20);
	iconCenter.iconAnchor = new GPoint(6, 20);
	iconCenter.infoWindowAnchor = new GPoint(5, 1);

	var point = new GLatLng(LatCenterMap,LonCenterMap);
	var html = "Center of Map"
	// create the marker
	var marker = createMarker(point,html,iconCenter);
	map.addOverlay(marker);

	var request = GXmlHttp.create();
	request.open("GET", "/PredQuery.asp?LatCenter="+LatCenterMap+"&LonCenter="+LonCenterMap+"&Radius="+Radius, true);
	request.onreadystatechange = function() {
		if (request.readyState == 4) {
			var xmlDoc = request.responseXML;
			// obtain the array of markers and loop through it
			var markers = xmlDoc.documentElement.getElementsByTagName("marker");

			for (var i = 0; i < markers.length; i++) {
	            // obtain the attribues of each marker
				var lat = parseFloat(markers[i].getAttribute("lat"));
				var lng = parseFloat(markers[i].getAttribute("lng"));
				var adtype = markers[i].getAttribute("isres");
				var point = new GLatLng(lat,lng);
				// create the marker
			    if (adtype == 'H')
				    {
					var html = "<MKS><table><tr><td><img height='80' width='70' align=left src='"+markers[i].getAttribute("photourl")+"'></td><td><font face=Verdana size=2><B>"+markers[i].getAttribute("predname")+"</B><font face=Verdana size=1><br>"+markers[i].getAttribute("predaddress")+"<br>"+markers[i].getAttribute("predcsz")+"<br><br>Age : "+markers[i].getAttribute("predage")+"<br>Race : "+markers[i].getAttribute("predrace")+"<br></td></tr><tr></tr><td colspan=2><p align=center><a href=javascript:ShowOffenderDetail('"+markers[i].getAttribute("oid")+"')><img border=0 src=/images/OD.gif width=202 height=24></a></td></tr></table></MKS>"
					var marker = createMarker(point,html,iconHome);
					map.addOverlay(marker);
				    }
				else if (adtype == 'W')
				    {
					var html = "<MKS><table><tr><td><img height='80' width='70' align=left src='"+markers[i].getAttribute("photourl")+"'></td><td><font face=Verdana size=2><B>"+markers[i].getAttribute("predname")+"</B><font face=Verdana size=1><br>"+markers[i].getAttribute("predaddress")+"<br>"+markers[i].getAttribute("predcsz")+"<br><br>Age : "+markers[i].getAttribute("predage")+"<br>Race : "+markers[i].getAttribute("predrace")+"<br></td></tr><tr></tr><td colspan=2><p align=center><a href=javascript:ShowOffenderDetail('"+markers[i].getAttribute("oid")+"')><img border=0 src=/images/OD.gif width=202 height=24></a></td></tr></table></MKS>"
					var marker = createMarker(point,html,iconEmp);
					map.addOverlay(marker);
				    }
				else if (adtype == 'S')
				    {
					var html = "<table border='0' width='100%' id='table2' cellspacing='0' cellpadding='0'><tr><td width='29' valign='top'><p align='center'><font face='Verdana' size='2'><img border='0' src='images/BlueMark.gif' width='12' height='20'></font></td><td><font face='Verdana' size='2'>SafetyAlertNetwork.org is proud to recognize<b> Power One Mortgage </b> as a local donating sponsor of our service. It is contributions like theirs that make this service possible, please help us by supporting them if you have a need for their services.</font></td></tr></table></p><table border='0' width='100%' id='table1' cellspacing='0' cellpadding='0'><tr><td rowspan='4' width='120'><font face='Verdana' size='2'><img border='0' src='images/SponImages/PowerOne.gif' width='120' height='89'></font></td><td width='9'>&nbsp;</td><td rowspan='3'><dl><dt><b><font face='Verdana' size='2'>Power One Mortgage</font></b></dt><dt><font face='Verdana' size='2'>37677 Professional Center Dr. #100C</font></dt><dt><font face='Verdana' size='2'>Livonia, MI 48154</font></dt></dl></td></tr><tr><td width='9'>&nbsp;</td></tr><tr><td width='9'>&nbsp;</td></tr><tr><td width='9'>&nbsp;</td><td><font face='Verdana' size='2'>Phone : 1-800-888-8820</font></td></tr><tr><td colspan='3'><font face='Verdana' size='1'>&nbsp;&nbsp;</font></td></tr><tr><td colspan='3'><font face='Verdana' size='2'>Purchase or refinance, any credit the same programs as the big guys, without the huge overhead. Call me anytime, Alan Ross</font></td></tr></table><p align='center'><br>"
					var marker = createSponserMarker(point,"hlpIPAddressRequest_divLink",html,iconSpon);
					map.addOverlay(marker);
				    }
			}
			document.getElementById('PredFound').innerHTML = "Offenders found = "+i;
			document.getElementById('ShowText').innerHTML = MapTopLinksDiv
		}
	}
	request.send(null);
//	RemoveWait();
//	GDownloadUrl("http://www.acutesoft.com/PredQuery.asp?LonHigh="+LonHigh+"&LonLow="+LonLow+"&LatHigh="+LatHigh+"&LatLow="+LatLow, function(data, responseCode) {
//		var xml = GXml.parse(data);
//		markers = xml.documentElement.getElementsByTagName("marker");
//		for (var i = 0; i < markers.length; i++) {
//		    var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")));
//		    map.addOverlay(createMarker(point, markers[i].getAttribute("html"),icon));
//		}
//	});				
//HideMapStatusBar();
//bringToFront('map');
}
function ShowMapMessage(Mess) {
	document.getElementById('ShowText').innerHTML = Mess
}
function YahooGeoCode(Address,City,State,Zip) {
	var request = GXmlHttp.create();

	request.open("GET", "http://api.local.yahoo.com/MapsService/V1/geocode?appid=YahooDemo&street="+Address+"&city="+City+"&state="+State+"&zip="+Zip, true);
	request.onreadystatechange = function() {
		if (request.readyState == 4) {
			var xmlDoc = request.responseXML;
			// obtain the array of markers and loop through it
			var Res = xmlDoc.documentElement.getElementsByTagName("ResultSet");
			document.getElementById('test').innerHTML = Res
			var lat = parseFloat(markers[i].getAttribute("Latitude"));
			var adtype = markers[i].getAttribute("isres");
		}
	}
	request.send(null);
}

function ShowWait(){
    divWait = document.createElement("div");
    divWait.innerHTML = "<b>Loading Markers</b><br /><img src=\"wait.gif\" />";
    divWait.style.backgroundColor = 'White';
    divWait.style.border = "solid medium black";
    divWait.style.textAlign = 'center';
    divWait.style.padding = '5px';
    divWait.style.position = 'absolute';
    divWait.style.left = '200px';
    divWait.style.top = '200px';
    map.getContainer().appendChild(divWait);
}

function RemoveWait(){
	map.getContainer().removeChild(divWait);
	divWait = null;
}
