// JavaScript Document

var request_location="explorer_ajax.php";
var overlays=[];
var imgbound=[];
var center_lat=[];
var center_lon=[];
var current_county=999;
var current_state=999;
var current_zip=999;
var request=null;
var sw;
var ne;

function create(target) {
	var map = new GMap2(document.getElementById(target));

	map.addControl(new GLargeMapControl());
	map.addControl(new GMapTypeControl());
	map.setCenter(new GLatLng(39.564148,-95.128352),4);
	
	return map;
}

function telmap_setcenter(map,lat,lon,zoom) {
	map.setCenter(new GLatLng(lat,lon),zoom);
}

function set_center(key,zip,zoom){
	if(zip > 0 ) {
		map.setCenter(new GLatLng(center_lat[key],center_lon[key]),zoom);
	}else{
		map.setCenter(imgbound[key].getCenter(),zoom);
	}	
}

function map_cleanup(map) {
	 for(var i in overlays) {
		if(overlays[i] != null) {
			overlays[i].remove();	
		}
	 }
}

function overlay(map,statefips,countyfips,zip,zm) {
		
	if(current_state == statefips &&
	   current_county == countyfips &&
	   (current_zip == zip || zip == "")) {
		return true;
	}else{
		current_state=statefips;
		current_county=countyfips;
		current_zip=zip;
	}
	   
     var request = GXmlHttp.create();

	 for(var i in overlays) {
		if(overlays[i] != null) {
			overlays[i].hide();
			map.removeOverlay(overlays[i]);
		}
	 }
 
      request.open("GET", map_ajax_location+"?c=map_overlay&state="+statefips+"&county="+countyfips+"&zip="+zip, true);
	  
      request.onreadystatechange = function() {	
        if (request.readyState == 4) {
          var xmlDoc = GXml.parse(request.responseText);

          var loc = xmlDoc.documentElement.getElementsByTagName("map");
		  
			for(var a = 0; a < loc.length; a++) {
				var img=loc[a].getElementsByTagName("img")[0].childNodes[0].nodeValue;
				var img_dir=loc[a].getElementsByTagName("img_dir")[0].childNodes[0].nodeValue;
				var south=loc[a].getElementsByTagName("south")[0].childNodes[0].nodeValue;
				var east=loc[a].getElementsByTagName("east")[0].childNodes[0].nodeValue;
				var north=loc[a].getElementsByTagName("north")[0].childNodes[0].nodeValue;
				var west=loc[a].getElementsByTagName("west")[0].childNodes[0].nodeValue;
				
				var overlaykey=img;
				var size=100;
				
				 if(overlays[overlaykey] != null) {
					overlays[overlaykey].show();
					map.addOverlay(overlays[overlaykey]);
					continue;
				}

				var sw = new GLatLng(south,west);
				var ne = new GLatLng(north,east);
				
				//var bound=new GLatLngBounds(sw,ne);
				
				//imgbound[overlaykey]=bound;
				
				imgbound[overlaykey]=new GLatLngBounds(sw,ne);

				if(zip > 0 ) {
					center_lat[overlaykey]=loc[a].getElementsByTagName("center_lat")[0].childNodes[0].nodeValue;
					center_lon[overlaykey]=loc[a].getElementsByTagName("center_lon")[0].childNodes[0].nodeValue;
				}

				overlays[overlaykey]=null;
				overlays[overlaykey]=EInsert.groundOverlay(img_dir+img,imgbound[overlaykey]);
				map.addOverlay(overlays[overlaykey]);
		
				//overlays[overlaykey].makeDraggable() 
			}

			if(statefips > 0) {
				set_center(overlaykey,zip,zm);	
			}else{
				// Kansas
				map.setCenter(new GLatLng(39.564148,-95.128352),zm);
			}
		}	
      }
	  request.send(null);
}