var map = [];
var json = {};

function load() {
	
	  jah("data/directory.html","directory");
	  
}

function loadmap(){
	  
      if (GBrowserIsCompatible()) {
        geocoder = new GClientGeocoder();
	    map = new GMap2(document.getElementById("map"));	   
	    map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		map.addControl(new GScaleControl());
		panToBounds(json.north, json.south, json.east, json.west, 1);
		//map.setCenter(new GLatLng(38, -122.2), 7);
		map.addMapType(G_PHYSICAL_MAP);
		map.setMapType(G_HYBRID_MAP);
		map.enableContinuousZoom();
		map.enableScrollWheelZoom();
		
		var fireReq = "http://s3.amazonaws.com/enplan/fires/active.kmz";
		var firePer = new GGeoXml(fireReq);
		map.addOverlay(firePer);		
		
		var Modis2Req = "http://s3.amazonaws.com/enplan/fires/NCalModis2.kml";
		var Modis2Pts = new GGeoXml(Modis2Req);
		map.addOverlay(Modis2Pts);
        
        
        
        
        
		}		
}

function addressClick() {
	if (geocoder) {
      address = document.addressform.address.value;
      if (address){
	geocoder.getLatLng(address,function(point) {
				if (!point) {
					alert("Sorry, could not find: " + address);
				} else {
					map.setCenter(point, 12);
					var marker = new GMarker(point);
					map.addOverlay(marker);
					marker.openInfoWindowHtml(address);
				}
			}
		);
	}else{     
      document.addressform.address.style.fontStyle = "italic";
      document.addressform.address.style.color = "#a9a9a9";
      document.addressform.address.value = "Zoom to an address";
    }
}
}

	
function panToBounds(north, south, east, west, init){
	
	if (parseFloat(north) === 0) {
		north = 42;
		south = 32.5;
		east = -114;
		west = -125;
		}
    var sw = new GLatLng(parseFloat(south),parseFloat(west));
    var ne = new GLatLng(parseFloat(north), parseFloat(east));
    var center = new GLatLng();
    var bounds = new GLatLngBounds(sw, ne);
    center =  bounds.getCenter();
    var zoom = map.getBoundsZoomLevel(bounds, map.getSize());
    var startZoom = 8;
    if ((zoom > startZoom)&&(init == 1)) {zoom = startZoom;}
    map.setCenter(center, zoom);
}

function jah(url,target) {
    //Just Asynchronous HTML by Chris
    // native XMLHttpRequest object
    document.getElementById(target).innerHTML = 'Loading Fires...';
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        req.onreadystatechange = function() {jahDone(target);};
        req.open("GET", url, true);
        req.send(null);
    // IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            req.onreadystatechange = function() {jahDone(target);};
            req.open("GET", url, true);
            req.send();
        }
    }
}    

function jahDone(target) {
    // only if req is "loaded"
    if (req.readyState == 4) {
        // only if "OK"
        if (req.status == 200) {
            results = req.responseText;
            document.getElementById(target).innerHTML = results;
        } else {
            document.getElementById(target).innerHTML="Load error:\n" +
                req.statusText;
        }
        ajahx("data/extents.json");
    }
}

function ajahx(jurl) {
 
    
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        req.onreadystatechange = function() {ajahxDone();};
        req.open("GET", jurl, true);
        req.send(null);
    // IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            req.onreadystatechange = function() {ajahxDone();};
            req.open("GET", jurl, true);
            req.send();
        }
    }
}    

function ajahxDone() {
    // only if req is "loaded"
    if (req.readyState == 4) {
        // only if "OK"
        if (req.status == 200) {
            jresults = req.responseText;
            json = eval("("+(jresults)+")");  
            loadmap();
        }
    }
}

function resetBox(){
    if (document.addressform.address.value == "Zoom to an address or zip"){
		 document.addressform.address.value = "";
         document.addressform.address.style.fontStyle = "normal";
         document.addressform.address.style.color = "black";
      }
}
