var map;
var Zoom = init_zoom;
var donotquery=false;
function loadThis() {
	var URL='map/searchbound.php';
	var defaulIconLoc="/map/images/iconr.png";
	var iconLoc_small="/map/images/iconr_s.png";
	var iconLoc_medium="/map/images/iconr_m.png";

	
  if (new GBrowserIsCompatible()) {

		map = new GMap2(document.getElementById('map'));
		
		var baseIcon = new GIcon();
		baseIcon.iconSize = new GSize(12, 20);
		baseIcon.iconAnchor = new GPoint(9, 20);
		baseIcon.infoWindowAnchor = new GPoint(9, 2);

		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		map.addControl(new GOverviewMapControl(new GSize(150,80)));
		map.setCenter(new GLatLng(init_lat,init_lng), Zoom);
		
		GEvent.addListener(map, "click", function(marker,point) {
			if(marker!==null){
				if(document.getElementById('currZoom').value<11){
					var newpoint=marker.getPoint();
					donotquery=true;
					map.setCenter(newpoint);
				
					if(map.getZoom() >= 0 && map.getZoom() < 3){
						map.setZoom(3);
					}
					else if(map.getZoom() >= 3 && map.getZoom() <= 5){
						map.setZoom(6);
					}
					else if(map.getZoom() >= 6 && map.getZoom() <= 10){
						map.setZoom(11);
					}
					else{
						map.zoomIn();
					}
				}
			}
		});
		  
		GEvent.addListener(map, "moveend", function() {
											
			var om = new OverlayMessage(document.getElementById('map')); 
			bbox=map.getBounds();
			
			var latmin=bbox.getSouthWest().lat();
			var latmax=bbox.getNorthEast().lat();
			var lngmin=bbox.getSouthWest().lng();
			var lngmax=bbox.getNorthEast().lng();
			
			var prevlatmin=document.getElementById('latmin').value;
			var prevlatmax=document.getElementById('latmax').value;
			var prevlngmin=document.getElementById('lngmin').value;
			var prevlngmax=document.getElementById('lngmax').value;
		
			var doAgain=false;
			
			if(latmin<prevlatmin){
				doAgain=true;
				setBound(map);
			}
			if(latmax>prevlatmax){
				doAgain=true;
				setBound(map);
			}
			if(lngmin<prevlngmin){
				doAgain=true;
				setBound(map);
			}
			if(lngmax>prevlngmax){
				doAgain=true;
				setBound(map);
			}
			if(document.getElementById('currZoom').value!=map.getZoom()){
				doAgain=true;
				setBound(map);
			}
			
			if(donotquery){
				doAgain=false;
			}
				
			if(doAgain){				
				map.clearOverlays();
				om.Set("loading...");
				latmin=document.getElementById('latmin').value;
				latmax=document.getElementById('latmax').value;
				
				lngmin=document.getElementById('lngmin').value;
				lngmax=document.getElementById('lngmax').value;
				var searchBoundURL=URL+"?latmin="+latmin+"&latmax="+latmax+"&lngmin="+lngmin+"&lngmax="+lngmax+"&zoom="+map.getZoom();
				
				GDownloadUrl(searchBoundURL, function(data) {
					
					var xml = GXml.parse(data);
					
					if(xml.documentElement){//check to see if data was present in xml document
						var markers = xml.documentElement.getElementsByTagName("point");
						var icon = new GIcon(baseIcon);
						var numofMarkers=markers.length;
						for (var i = 0; i < numofMarkers; i++) {
							var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),parseFloat(markers[i].getAttribute("lng")));
							var _info 	= markers[i].getAttribute("info");
							var _type 	= markers[i].getAttribute("type");
							var _title 	= markers[i].getAttribute("title");
							var _icon 	= markers[i].getAttribute("icon");
							var _iconType 	= markers[i].getAttribute("icontype");
							var _ID 	= parseInt(markers[i].getAttribute("id"));
							if(_ID.length <= 0){
								_ID = 0;
							}
							
							if(_icon=="default"){

								if(_iconType=="small"){
									icon.image=iconLoc_small;
									icon.iconSize = new GSize(12, 20);
									icon.iconAnchor = new GPoint(9, 20);
								}
								else if(_iconType=="medium")
								{
									icon.image=iconLoc_medium;
									icon.iconSize = new GSize(15, 26);
									icon.iconAnchor = new GPoint(9, 26);
								}
								else{
									icon.image=defaulIconLoc;
									icon.iconSize = new GSize(20, 34);
									icon.iconAnchor = new GPoint(9, 34);
								}
															
								newmarker = new PdMarker(point,icon);
							}
							else
							{
								icon.image=_icon;
								newmarker = new PdMarker(point,icon);
							}
							newmarker.setTooltip(_title);
							if(_type=="user"){
								var html = _info;
								newmarker.setDetailWinHTML(html);
							}
							map.addOverlay(newmarker);
						}	
					}
					om.Clear(); // Clear the loading message
				});		
			}//end doagain
			donotquery=false;
		});
		map.setCenter(new GLatLng(init_lat,init_lng), Zoom);
   }
}

