
	var map = null;
	var currentZoom=13;
	var scaleZoom=13;
    function initialize(lat,lng,zoom) {
      if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map_canvas"));
		
 		map.addControl(new GLargeMapControl3D());
  		map.addControl(new GMapTypeControl());
  		map.addControl(new GOverviewMapControl());
        map.setCenter(new GLatLng(lat, lng), zoom);
		currentZoom=zoom;
		//updateZoom();
		setMarkers();
		GEvent.addListener(map, "moveend", setMarkers);
		}
    }
	
	function zoomMap(newZoom)
	{	
		map.setZoom(newZoom);
		currentZoom=newZoom;
		updateZoom();
	}
	
	function zoomIn()
	{
		if (currentZoom<=15)
			zoomMap(currentZoom+2);
	}
	
	function zoomOut()
	{
		if (currentZoom>=11)
		zoomMap(currentZoom-2);
	}
	
	function moveMap(direction)
	{
		var x = 0; var y = 0;
		switch (direction)
		{
			case 'up' : {	y=+1;
							break;
			}
			case 'upandleft' : {
			
							y=+1;
							x=+1;
							break;
			}
			
			case 'left' : {	x=+1;
							break;
			}
			case 'downandleft' : {	x=+1;
									y=-1;
									break;
			}
			case 'down' : {	y=-1;
							break;
			}
			case 'downandright' : {	x=-1;
									y=-1;
									break;
			}
			case 'right' : {	x=-1;
								break;
			}
			case 'upandright' : {
			
							y=+1;
							x=-1;
							break;
			}
			
		
		}
		map.panDirection (x,y); 
		
	}
	
	function setMarkers(){
		var bounds = map.getBounds();
		var southWest = bounds.getSouthWest();
		var northEast = bounds.getNorthEast();
		var center = map.getCenter();
		var zoom = map.getZoom();
		
		map.clearOverlays();
		
		document.form1.southWest.value=southWest.lat() + ' ' + southWest.lng();
		document.form1.southEast.value=southWest.lat() + ' ' + northEast.lng();
		document.form1.northEast.value=northEast.lat() + ' ' + northEast.lng();
		document.form1.northWest.value=northEast.lat() + ' ' + southWest.lng();
		document.form1.centerLat.value=center.lat();
		document.form1.centerLong.value=center.lng();
		document.form1.zoom.value=zoom;
		document.getElementById('countPropertiesDiv').innerHTML='<img src="'+imagePath+'load_bar.gif">';		
		GDownloadUrl("map_search_results_all.php?"+parseForm('form1'), function(data, responseCode) {		 	
			//alert(data);
			if (data!='')
			{
				var xml = GXml.parse(data);
				var markers = xml.documentElement.getElementsByTagName("marker");
				
				if (markers.length>0)
				{
				 	var tabArray = new Array();
				  	var currentLatLong = '';
				  	var previousPoint = '';
					var iconTypesArray = new Array();
				  	var currentDepartment = '';
				  	var currentAvailability = '';
					var icon;
					
					for (var i=0; i<markers.length; i++) { // for each marker
								
						//if (currentLatLong!="" &&  currentLatLong!=(markers[i].getAttribute("lat")+' '+markers[i].getAttribute("lng"))) {
								
							
							//var marker = createMarker(previousPoint,tabArray.length,tabArray.join('|'),iconTypesArray,markers[i].getAttribute("propertyDepartment"));
							
							
							tabArray = [];
							iconTypesArray = [];
						//}
							
						var previousPoint = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
														parseFloat(markers[i].getAttribute("lng")));
						
						currentLatLong = (markers[i].getAttribute("lat")+' '+markers[i].getAttribute("lng"));
						
						tabArray.push(markers[i].getAttribute('profileID'));
						currentDepartment=markers[i].getAttribute('propertyDepartment');
						currentAvailability=markers[i].getAttribute('availability');
						/*switch  (currentDepartment)
						{
							case 'RS' : {	if (iconMode=='propertyTypeID')
											{
												if (!in_array(markers[i].getAttribute('propertyTypeID'), iconTypesArray))
													iconTypesArray.push(markers[i].getAttribute('propertyTypeID'));													
											}											
											break;	
							}
							case 'RL' : {	if (iconMode=='propertyTypeID')
											{
												if (!in_array(markers[i].getAttribute('propertyTypeID'), iconTypesArray))
													iconTypesArray.push(markers[i].getAttribute('propertyTypeID'));													
											}	
											break;	
							}							
						}*/
					
					var marker = createMarker(previousPoint,tabArray.length,tabArray.join('|'),iconTypesArray,currentDepartment,currentAvailability);
					 }
				 										
					
					 /*for (var i = 0; i < markers.length; i++) {
					var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
											parseFloat(markers[i].getAttribute("lng")));
					//map.addOverlay(new GMarker(point, icon));
					map.addOverlay(new GMarker(point));
					}*/
					if (i!=1) document.getElementById('countPropertiesDiv').innerHTML='Your Search Returned '+i+' Properties'; else 
					document.getElementById('countPropertiesDiv').innerHTML='Your Search Returned 1 Property';
				}
				else document.getElementById('countPropertiesDiv').innerHTML='Your Search Returned 0 Properties';
				
				var offices = xml.documentElement.getElementsByTagName("office");
				
				if (offices.length>0)
				{
				 	
					var icon;
					
					for (var i=0; i<offices.length; i++) { // for each marker
								
						var point = new GLatLng(parseFloat(getNodeValue(offices[i].getElementsByTagName("lat"))),
														parseFloat(getNodeValue(offices[i].getElementsByTagName("lng"))));
						var marker = new GMarker(point, icon); 
						var marker = createOfficeMarker(point,getNodeValue(offices[i].getElementsByTagName("id")),icon);
							
						
					 }
				}
				
				var searchLink = xml.documentElement.getElementsByTagName("searchLink")[0];				
				document.getElementById('countPropertiesDiv').innerHTML;
				document.getElementById('listButtonDiv').innerHTML='<div id="navTab" onMouseOver="this.id=\'navTabOn\'" onMouseOut="this.id=\'navTab\'" style="cursor:pointer;" onclick="location.href=\''+searchLink.getAttribute("href")+'\'">List View</div>';
			}
			else document.getElementById('countPropertiesDiv').innerHTML='0 properties';
		});
	}
		
		function createMarker(point,markerCount,profileIDs,iconTypesArray,currentDepartment,currentAvailability)
		{ //alert(currentDepartment);
			var iconMarker= '1';
			switch  (currentDepartment)
			{
				case 'RS' : {	
					switch  (currentAvailability)
					{
						case 'Sold' : {	
										iconMarker='Sold';										
										break;	
						}
						default : { iconMarker='Sales'; break; }										
					}
								break;	
				}
				case 'RL' : {
					switch  (currentAvailability)
					{
						case 'Let' : {	
										iconMarker='Let';										
										break;	
						}
						default : { iconMarker='Lettings'; break; }										
					}
								break;	
				}	
			}
			var marker = new GMarker(point, eval('icon'+iconMarker));
			var markerText='';
			if (markerCount==1)  markerText='1 Property'; else markerText=markerCount+' Properties';
			var tooltip = new Tooltip(marker,'<div style="background-color:#FFFFFF; border-color:#000000;width:80px; padding:5px; border:1px solid #ccc;">'+markerText+'</div>',4);
			marker.tooltip = tooltip;
			map.addOverlay(marker);
			/*Show overlay when hover over icon/*/
			//map.addOverlay(tooltip);
			/*end*/
			GEvent.addListener(marker,'mouseover',function(){
				this.tooltip.show();
			});
			GEvent.addListener(marker,'mouseout',function(){
				this.tooltip.hide();
			});
			 GEvent.addListener(marker, "click", function() {		
							showPropertyPanel(profileIDs); 	 
							showFullDetails(profileIDs); 	 
					  });
			
      }
	  
	  function createOfficeMarker(point,officeID)
		{
			var marker = new GMarker(point, iconoffice);			
			map.addOverlay(marker);
			GEvent.addListener(marker, "click", function() {		
							showOfficePanel(officeID); 	 
					  });
			
      }
	  

		
	/*-----------	Google Search Box -----------*/
		
	var geocoder = new GClientGeocoder();
	
	function showAddress(address) {
	  geocoder.getLatLng(
		address+', UK',
		function(point) {
		  if (!point) {
			alert(address + " not found");
		  } else {
			map.setCenter(point, currentZoom);
		  /*  var marker = new GMarker(point);
			map.addOverlay(marker);
			marker.openInfoWindowHtml(address);*/
		  }
		}
	  );
	}
	/*Show property panel, hide office & search panel*/
	function showPropertyPanel(profileIDs)
	{
			
		self.frames['propertyPanelIframe'].location.href='map_search_details.php?profileID='+profileIDs+'&currentPage=1';
		document.getElementById('searchPanelDiv').style.display='none';		
		document.getElementById('officePanelDiv').style.display='none';	
		document.getElementById('propertyPanelDiv').style.display='block';
	}
	
	function showFullDetails(profileIDs)
	{
			
		location.href='more_details.php?profileID='+profileIDs+'';
	}
	
	function showSearchPanel()
	{			
		self.frames['propertyPanelIframe'].location.href='about:blank';		
		self.frames['officePanelIframe'].location.href='about:blank';		
		document.getElementById('propertyPanelDiv').style.display='none';
		document.getElementById('officePanelDiv').style.display='none';	
		document.getElementById('searchPanelDiv').style.display='block';
	}
	
	function showOfficePanel(officeID)
	{
			
		self.frames['officePanelIframe'].location.href='office_details_panel.php?officeID='+officeID+'&p_department='+document.form1.p_department.value;
		document.getElementById('searchPanelDiv').style.display='none';		
		document.getElementById('propertyPanelDiv').style.display='none';
		document.getElementById('officePanelDiv').style.display='block';	
		
	}
	/*end*/

/*----------Tool Tips-------------------------*/
/**
 * @author Marco Alionso Ramirez, marco@onemarco.com
 * @version 1.0
 * The Tooltip class is an addon designed for the Google
 * Maps GMarker class.
 */

/**
 * @constructor
 * @param {GMarker} marker
 * @param {String} text
 * @param {Number} padding
 */
function Tooltip(marker, text, padding){
	this.marker_ = marker;
	this.text_ = text;
	this.padding_ = padding;
}

Tooltip.prototype = new GOverlay();

Tooltip.prototype.initialize = function(map){
	var div = document.createElement("div");
	div.innerHTML=this.text_;
	div.className = 'tooltip';
	div.style.position = 'absolute';
	div.style.visibility = 'hidden';
	map.getPane(G_MAP_FLOAT_PANE).appendChild(div);
	this.map_ = map;
	this.div_ = div;
}

Tooltip.prototype.remove = function(){
	this.div_.parentNode.removeChild(this.div_);
}

Tooltip.prototype.copy = function(){
	return new Tooltip(this.marker_,this.text_,this.padding_);
}

Tooltip.prototype.redraw = function(force){
	if (!force) return;
	var markerPos = this.map_.fromLatLngToDivPixel(this.marker_.getPoint());
	var iconAnchor = this.marker_.getIcon().iconAnchor;
	var xPos = Math.round(markerPos.x - this.div_.clientWidth / 2);
	var yPos = markerPos.y - iconAnchor.y - this.div_.clientHeight - this.padding_;
	this.div_.style.top = yPos + 'px';
	this.div_.style.left = 50 + xPos + 'px';
}

Tooltip.prototype.show = function(){
	this.div_.style.visibility = 'visible';
}

Tooltip.prototype.hide = function(){
	this.div_.style.visibility = 'hidden';
}

/*------------get eml node value--------------*/
function getNodeValue(Element) {
if ((Element.length>0) && Element[0] && Element[0].firstChild && Element[0].firstChild.nodeValue)
   return Element[0].firstChild.nodeValue;
}