
function createInfoMarker(point, address, desc, icon, url) 
	{
	//alert(point + ' ' + address + ' ' + icon);
	var infoTabs = 
		[
  		new GInfoWindowTab("Address", address),
  		new GInfoWindowTab("Description", decodeURI(desc))
		];

	var marker = new GMarker(point, icon);
	GEvent.addListener(marker, "click",
			  function() 
				{
				if(url == "")
					{
					map.setCenter(point);
					map.setZoom(map.getZoom() + 1);
					}
				else
					{
					//marker.openInfoWindowTabsHtml(infoTabs);
					dosomeajax(address, url);
					element = document.getElementById('popup_content');
  					element = element.cloneNode(true);
					element.style.display = "";
  					map.openInfoWindowHtml(marker.getPoint(), element);
					}
				}
			);
	return marker;
	}
function dosomeajax(address, url)
	{
	var url = '/show_property_info.php';
	var pars = '&property_id=' + address;
	
	var myAjax = new Ajax.Updater
		(	
			'popup_content',
			url, 
			{		
			method: 'post', 
			parameters: pars
			}
		)
	
	//window.location = url;
	/*Dialog.alert
		(
			{
			url: '/show_property_info.php', 
			options: {method: 'post', parameters: '&property_id='+address}
			}, 
			{className: 'alphacube', width:750, height:580, okLabel: 'Close', buttonClass: ''}
		);*/
	}
function createmap()
	{
	var map = new GMap2(document.getElementById("map"));
	//map.addControl(new GSmallMapControl());
	map.addControl(new GMapTypeControl());
	map.addControl(new GLargeMapControl());
	map.addControl(new GScaleControl());
	return map;
	}
function setmapcenter(map, lon, lat)
	{
	map.setCenter(new GLatLng(lon, lat), 13);
	}
function setbounds()
	{
	var bounds;
	bounds = new GLatLngBounds();
	return bounds;
	}
function settype(name, title, value, width, height)
	{
	var type = new GIcon();
	if (name == 'house')
		{
		type.image = "/images/complete_map_icons/house.png";  
		type.iconSize = new GSize(17, 17);	
		type.iconAnchor = new GPoint(6, 20);
		}
	if (name == 'apartment')
		{
		type.image = "/images/complete_map_icons/apartment.png";  
		type.iconSize = new GSize(17, 17);	
		type.iconAnchor = new GPoint(6, 20);	
		}
	if (name == 'log-cabin')
		{
		type.image = "/images/complete_map_icons/log_cabin.png";  
		type.iconSize = new GSize(17, 13);	
		type.iconAnchor = new GPoint(6, 20);	
		}
	if (name == 'cottage')
		{
		type.image = "/images/complete_map_icons/cottage.png";  
		type.iconSize = new GSize(17, 17);	
		type.iconAnchor = new GPoint(6, 20);	
		}
	if (name == 'barn-conversion')
		{
		type.image = "/images/complete_map_icons/barn_conversion.png";  
		type.iconSize = new GSize(17, 17);	
		type.iconAnchor = new GPoint(6, 20);	
		}
	if (name == 'chalet')
		{
		type.image = "/images/complete_map_icons/chalet.png";  
		type.iconSize = new GSize(17, 17);	
		type.iconAnchor = new GPoint(6, 20);	
		}
	if ((name == 'region') || (name == 'postcode_area') || (name == 'postcode_area_numbers'))
		{
		type.image = "/generate_pointer_image.php?title=" + title + "&value=" + value + "&width=" + width + "&height=" + height;
		//type.iconSize = new GSize(width, height);	
		type.iconAnchor = new GPoint((width/2), (height/2));
		//alert(type.image + "\n\n" + type.iconSize + "\n\n" + type.iconAnchor)
		}
	type.infoWindowAnchor = new GPoint(5, 1);
	return type;
	}
function showAddress(map, address, desc, lon, lat, bounds, type, url)
	{
	//alert(map + ' ' + address + ' ' + desc + ' ' + lon + ' ' + lat);
	if (GBrowserIsCompatible()) 
		{
		var point = new GLatLng(lon,lat);
		var marker = createInfoMarker(point, address, desc, type, url);
		map.addOverlay(marker);
		bounds.extend(point);
		map.setZoom(map.getBoundsZoomLevel(bounds)-1);
		return bounds;
		}
	}
function showSingleAddress(map, address, desc, lon, lat, bounds, type, url)
	{
	//alert(map + ' ' + address + ' ' + desc + ' ' + lon + ' ' + lat);
	if (GBrowserIsCompatible()) 
		{
		var point = new GLatLng(lon,lat);
		var marker = createInfoMarker(point, address, desc, type, url);
		//map.addOverlay(marker);
		mm.addMarker(marker,10,17);
		//bounds.extend(point);
		//map.setZoom(map.getBoundsZoomLevel(bounds)-1);
		return bounds;
		}
	}
function showRegion(map, address, lon, lat, type, min_zoom, max_zoom)
	{
	//alert(map + ' ' + address + ' ' + desc + ' ' + lon + ' ' + lat);
	if (GBrowserIsCompatible()) 
		{
		var point = new GLatLng(lon,lat);
		var marker = createInfoMarker(point, address, '', type, '');
		//map.addOverlay(marker);
		mm.addMarker(marker,min_zoom,max_zoom);
		}
	}
    