
      google.load("maps", "2");
      google.load("search", "1");

      // Call this function when the page has been loaded
      function initialize(xLat, yLon, zoomLevel, types) {
        var map = new google.maps.Map2(document.getElementById("map"));
        map.setCenter(new google.maps.LatLng(xLat, yLon), zoomLevel);
		//map.setCenter(new google.maps.LatLng(49.496, -89.47), 4);
		map.addControl(new GLargeMapControl());
		
		GEvent.addListener(map, "moveend", function() {
		   //alert("You moved the map.");
		  var lat = map.getCenter().lat(); 
		  var lng = map.getCenter().lng();
		  var mapZoom = map.getZoom();
		  var mapBounds = map.getBounds();
		  var southWest = mapBounds.getSouthWest();
  		  var northEast = mapBounds.getNorthEast();
		  var swX = southWest.lat();
		  var swY = southWest.lng();
		  var neX = northEast.lat();
		  var neY = northEast.lng();
		    document.getElementById('centerX').value = lat;
			document.getElementById('centerY').value = lng;
			document.getElementById('swX').value = swX;
			document.getElementById('swY').value = swY;
			document.getElementById('neX').value = neX;
			document.getElementById('neY').value = neY;
			document.getElementById('zoom').value = mapZoom;
			
			//write cookies to save the area the user wants to look at
			//createCookie('centerX',lat,120);
			//createCookie('centerY',lng,120);
			//createCookie('zoom',mapZoom,120);
			//read them back to ensure they loaded
			//alert (readCookie('centerX'));
		   
		});
		GEvent.addListener(map, "zoom", function() {
		   //alert("You zoomed the map.");
		  var lat = map.getCenter().lat(); 
		  var lng = map.getCenter().lng();
		  var mapBounds = map.getBounds();
		  var southWest = mapBounds.getSouthWest();
  		  var northEast = mapBounds.getNorthEast();
		  var swX = southWest.lat();
		  var swY = southWest.lng();
		  var neX = northEast.lat();
		  var neY = northEast.lng();
		    document.getElementById('centerX').value = lat;
			document.getElementById('centerY').value = lng;
			document.getElementById('swX').value = swX;
			document.getElementById('swY').value = swY;
			document.getElementById('neX').value = neX;
			document.getElementById('neY').value = neY;
			
			//write cookies to save the area the user wants to look at
			//createCookie('centerX',lat,120);
			//createCookie('centerY',lng,120);
			//createCookie('zoom',mapZoom,120);
			//read them back to ensure they loaded
			//alert (readCookie('centerX'));
		   
		});
		geocoder = new GClientGeocoder();
		
		

		//need to see what the zoom level is and get the appropriate flags
		//if zoom =3 show provinces
		//getProvinces.php and return an array with all active provinces
		
		
		//############----------------------------------------#####################//
		//THIS SET THE INITAL PROVINCE FLAGS
		new Ajax.Request("scripts/googleGetProvince.php", {
			method: 'get',
			parameters: {type: 'all'},
			onSuccess: function(transport) {
			//alert('this is within the ajax request\n\n'+transport.responseText);
			placeMarkersOne(transport.responseText);
			}  
		});
		
		function placeMarkersOne(arraySent) {	  
		  var myPoints = arraySent.split('|');
		  for (var i=0; i<myPoints.length; i++) {
			  	var myDigits = myPoints[i].split(',');
			  	var lat = parseFloat(myDigits[0]);
				var lng = parseFloat(myDigits[1]);
				var provID = String(myDigits[2]);
				
		  		var latlng = new GLatLng(parseFloat(lat),parseFloat(lng));
				var marker = new GMarker(latlng);
				//var tooltip = new Tooltip(marker,'HEB Grocery Store',4);
				//marker.tooltip = tooltip;
				//map.addOverlay(tooltip);
				map.addOverlay(createProvMarker(marker,provID));
				//map.addOverlay(tooltip);
		  	}		  
	  	}
		
		function createProvMarker(marker, provID) {
			
			GEvent.addListener(marker, "click", function() {
				//hideStuff();
				
				cityMarkers(provID);
				
				//marker.openInfoWindowHtml("Marker <b>" + String(ID) + "</b>");
  			});
  			
  			return marker;
		}
		
		//############----------------------------------------#####################//
		//THIS SETS THE CITY/AREA FLAGS
		function cityMarkers(provID) {
			//alert('cities');
			//## THIS UPDATES THE MAP ##//
			new Ajax.Request("scripts/googleGetCities.php", {
					method: 'get',
					parameters: {type: 'all',prov: provID},
					onSuccess: function(transport) {
					//alert('this is within the cityMarkers ajax request\n\n'+transport.responseText);
					map.clearOverlays(); 
					placeMarkersTwo(transport.responseText);
					mapZoomToAndCentre(6,provID);
					}  
			});
			//## THIS UPDATES THE LISITNGS ##//
			var lat = document.getElementById('centerX').value;
			var lng = document.getElementById('centerY').value;
			var swX = document.getElementById('swX').value;
			var swY = document.getElementById('swY').value;
			var neX = document.getElementById('neX').value;
			var neY = document.getElementById('neY').value;
			
			 var url = 'getCityPropByProvince.php';
     		 var pars = "prov="+provID+"&lat1="+swX+"&lon1="+(swY)+"&lat2="+neX+"&lon2="+(neY)+"&centX="+lat+"&centY="+(lng);
			 var target = 'latestListings';
			 var myAjax = new Ajax.Updater(target, url, {method: 'get', parameters: pars, 
				onSuccess: function(doSomething) {
				} 
			 });
		}
		
		function placeMarkersTwo(arraySent) {
		  var myPoints = arraySent.split('|');   
		  for (var i=0; i<myPoints.length; i++) {
			  	var myDigits = myPoints[i].split(',');
			  	var lat = parseFloat(myDigits[0]);
				var lng = parseFloat(myDigits[1]);
				var zoomTo = parseFloat(myDigits[2]);
				var provID = String(myDigits[3]);
				var cityID = String(myDigits[4]);
				
		  		var latlng = new GLatLng(parseFloat(lat),parseFloat(lng));
				var marker = new GMarker(latlng);
				map.addOverlay(createCityMarker(marker,provID,cityID));
		  	}
	  	}
		
		function createCityMarker(marker, provID, cityID) {
			
			GEvent.addListener(marker, "click", function() {
				addressMarkers(provID, cityID);		
				
				//marker.openInfoWindowHtml("Marker <b>" + String(ID) + "</b>");
  			});
  			return marker;
		}
		
		
		
		//############----------------------------------------#####################//
		//THIS SETS THE ADDRESS FLAGS
		function addressMarkers(provID, cityID) {
			//alert('addresses');
			//alert ('from with the addressMarkers'+cityID+'provID'+provID);
			map.clearOverlays(); 
			new Ajax.Request("scripts/googleGetAddress.php", {
					method: 'get',
					parameters: {city: cityID},
					onSuccess: function(transport) {
					//alert('this is within the ajax request\n\n'+transport.responseText);
					// ('from with the addressMarkers'+cityID+'provID'+provID);
					placeMarkersThree(transport.responseText);
					mapZoomToAndCentre(11,provID,cityID);
					
					}  
			});
			
			var lat = document.getElementById('centerX').value;
			var lng = document.getElementById('centerY').value;
			var swX = document.getElementById('swX').value;
			var swY = document.getElementById('swY').value;
			var neX = document.getElementById('neX').value;
			var neY = document.getElementById('neY').value;
			
			 var url = 'getAddressPropByCity.php';
     		 var pars = "city="+cityID+"&lat1="+swX+"&lon1="+(swY)+"&lat2="+neX+"&lon2="+(neY)+"&centX="+lat+"&centY="+(lng);
			 var target = 'latestListings';
			 var myAjax = new Ajax.Updater(target, url, {method: 'get', parameters: pars, 
				onSuccess: function(doSomething) {
				} 
			 });
		}
		
		function placeMarkersThree(arraySent) {	
		  var myPoints = arraySent.split('|');		   
		  for (var i=0; i<myPoints.length; i++) {
			  	var myDigits = myPoints[i].split(',');
			  	var lat = parseFloat(myDigits[0]);
				var lng = parseFloat(myDigits[1]);
				var provID = String(myDigits[2]);
				var cityID = String(myDigits[3]);
				var addressID = String(myDigits[4]);
				var area = String(myDigits[5]);
				
		  		var latlng = new GLatLng(parseFloat(lat),parseFloat(lng));
				var marker = new GMarker(latlng);
				map.addOverlay(createAddressMarker(marker,addressID, area));
		  	}		  
	  	}
		
		function createAddressMarker(marker, addressID) {
			
			GEvent.addListener(marker, "click", function() {
				//addressMarkers(provID);	
				//window.location.href='PropertyBook_ListingDetail.php?prID=+'addressID'+&amp;area=res&amp;frhp=Y';
				marker.openInfoWindowHtml("Marker <b>"+addressID+"</b>");
  			});
  			return marker;
		}
		
		
		
		
		function mapZoomToAndCentre(zoomLevel,provID,cityID) {
			//alert ('sendProv'+provID + 'sendCity'+cityID);
			if (provID == true) { var sendProv = provID; var moreZoom = 0; } else { var sendProv = "0";	var moreZoom = 0;}
			if (cityID > 0) { var sendCity = cityID; var moreZoom = 4;} else { var sendCity = "0";	var moreZoom = 0;}
			//alert ('sendProv'+sendProv + 'sendCity'+sendCity);
			
			new Ajax.Request("scripts/googleGetLatLonZoom.php", {
					method: 'get',
					parameters: {prov: sendProv, city: sendCity},
					onSuccess: function(transport) {
					//alert('this is within the ajax request\n\n'+transport.responseText);
					var arrayString = transport.responseText;
					var myPoints = arrayString.split(',');	
					var lat = parseFloat(myPoints[0]);
					var lon = parseFloat(myPoints[1]);
					var ZoomTo = parseFloat(myPoints[2])+parseFloat(moreZoom);
					//alert ('lat:'+lat+' lon:'+lon+' zoom:'+ZoomTo);
					map.setCenter(new GLatLng(lat, lon), ZoomTo);
					//placeMarkersThree(transport.responseText);
					//mapZoomToAndCentre(11,cityID, provID);
					
					}  
			});
			
			/*
			//alert (provID);
			if (provID == 1) {
				var ZoomTo = 6;
				var lat = 44.559;
				var lon = -79.980;
			} else if (provID == 467) {
				var ZoomTo = 11;
				var lat = 42.9624;
				var lon = -81.205;
			} else {
				var ZoomTo = 5;
				var lat = 45.813;
				var lon = -64.555;
			}
			map.setCenter(new GLatLng(lat, lon), ZoomTo);
			//return zoomLevel;
			*/
		}
		
		
      }
      google.setOnLoadCallback(initialize);
	  

	  function openMap() {
		  //alert ('foff');
		  var staths = document.getElementById('mapHolder').style.visibility;
		  //alert (staths);
		 if (staths == "collapse") {
			  document.getElementById('mapHolder').style.visibility = "visible";
		 } else {
			  document.getElementById('mapHolder').style.visibility = "collapse"  ;
		 }
		
	  }