function load() {
	if (GBrowserIsCompatible()) {
		var map = new GMap2(document.getElementById("map"));
		var mapCenter = new GLatLng(startLat, startLng);
		map.setCenter(mapCenter,startZoom);
		map.setMapType(G_SATELLITE_MAP);
		map.addControl(new crMapControl());
		map.currentZoom = map.getZoom();
		if(window.DEBUG)GLog.write("Zoom is: "+map.currentZoom);
		//GEvent.addListener(map, "dragend", function() { mapPanEnd(map); });
		//GEvent.addListener(map, "zoomend", function() { mapZoomEnd(map); });
	}
	//window.DEBUG=1;
	if(window.DEBUG) GLog.write('start');

	//icons
	var icoBase = new GIcon();
	icoBase.iconSize = new GSize(30,38);
	icoBase.iconAnchor = new GPoint(13,38);
	var icoSolar = new GIcon(icoBase, 'images/ico_solar.gif');
	var icoWind = new GIcon(icoBase, 'images/ico_wind.gif');
	var icoISolar = new GIcon(icoBase, 'images/ico_solar_incent.gif');
	var icoIWind = new GIcon(icoBase, 'images/ico_wind_incent.gif');

	//markers
	map.markers = new Array();
	map.SOLAR=0;map.WIND=1;map.ISOLAR=2;map.IWIND=3;
	map.activePane = map.WIND;
	map.markers[map.SOLAR] = new GMarker(mapCenter, {icon: icoSolar, draggable: true, clickable: false, dragCrossMove: true}); GEvent.addListener(map.markers[map.SOLAR], "dragend", function() { crUpdateMarkerMove(map) });
	map.markers[map.WIND] = new GMarker(mapCenter, {icon: icoWind, draggable: true, clickable: false, dragCrossMove: true}); GEvent.addListener(map.markers[map.WIND], "dragend", function() { crUpdateMarkerMove(map) });
	map.markers[map.ISOLAR] = new GMarker(mapCenter, {icon: icoISolar, draggable: true, clickable: false, dragCrossMove: true}); GEvent.addListener(map.markers[map.ISOLAR], "dragend", function() { crUpdateMarkerMove(map) });
	map.markers[map.IWIND] = new GMarker(mapCenter, {icon: icoIWind, draggable: true, clickable: false, dragCrossMove: true}); GEvent.addListener(map.markers[map.IWIND], "dragend", function() { crUpdateMarkerMove(map) });
	for(m=0;m<4;m++){
		map.addOverlay(map.markers[m]);
		if(m!=map.activePane)
			map.markers[m].hide();
	}


	if(navigator.userAgent.indexOf("Safari")>=0){
		crUpdateMarkerMove(map);//for Safari
	}else{
		updateSite(map, document.getElementById('mapXML').innerHTML,0);
	}

	viewsDiv = document.getElementById('estimatorviews'); 
	for(v=0;v<viewsDiv.childNodes.length;v++){
		if(viewsDiv.childNodes[v].src && viewsDiv.childNodes[v].getAttribute('viewIndex'))
			GEvent.addDomListener(viewsDiv.childNodes[v], 'click', function(){vmc(this,map)});
	}

	if(window.DEBUG) GLog.write('end');
	
	//if(window.DEBUG) GLog.write("async_site_shapes.php?lat="+map.getCenter().lat()+"&lng="+map.getCenter().lng()+"&data_source="+ map.activePane +"&zoom=" + map.getZoom() + "&cbs="+Math.random());
	//GDownloadUrl("async_site_shapes.php?lat="+map.getCenter().lat()+"&lng="+map.getCenter().lng()+"&data_source="+ map.activePane +"&zoom=" + map.getZoom() + "&cbs="+Math.random(), function(mapXML, responseCode){updateShapes(map,mapXML, responseCode);});

	//if(window.DEBUG) GLog.write("async_site_blocks.php?lat="+map.getCenter().lat()+"&lng="+map.getCenter().lng()+"&data_source="+ map.activePane +"&zoom=" + map.getZoom() + "&cbs="+Math.random());
	//GDownloadUrl("async_site_blocks.php?lat="+map.getCenter().lat()+"&lng="+map.getCenter().lng()+"&data_source="+ map.activePane +"&zoom=" + map.getZoom() + "&cbs="+Math.random(), function(mapXML, responseCode){updateBlocks(map,mapXML, responseCode);});






	//Google Map Tiles
	map.tileLayerNames = new Array("solar", "hr_wind");
	toggleTileOverlay(map);


}
