
// Config for map search
var mapconfig = [
	{
		title: "Bayswater",
		mapoverlay: "/_gfx/selectionmap/bayswater.gif",
		href: "#Bayswater",
		shape: "poly",
		coords: "116,29,199,29,198,55,211,68,104,94,103,76,114,67"
	}, {
		title: "Belgravia",
		mapoverlay: "/_gfx/selectionmap/belgravia.gif",
		href: "#Belgravia",
		shape: "poly",
		coords: "232,134,240,127,247,127,277,159,278,174,262,176,261,203,250,206,226,184,252,150"
	}, {
		title: "Chelsea",
		mapoverlay: "/_gfx/selectionmap/chelsea.gif",
		href: "#Chelsea",
		shape: "poly",
		coords: "217,169,223,174,217,183,239,206,182,220,145,255,146,238"
	}, {
		title: "Earls Court",
		mapoverlay: "/_gfx/selectionmap/earls-court.gif",
		href: "#EarlsCourt",
		shape: "poly",
		coords: "105,168,113,168,121,174,136,174,153,155,152,184,134,194,91,209,91,192,105,181"
	}, {
		title: "Holland Park",
		mapoverlay: "/_gfx/selectionmap/holland-park.gif",
		href: "#HollandPark",
		shape: "poly",
		coords: "78,26,23,68,46,129,102,131,102,105,93,106,93,69,100,64,100,29"
	}, {
		title: "Kensington",
		mapoverlay: "/_gfx/selectionmap/kensington.gif",
		href: "#Kensington",
		shape: "poly",
		coords: "114,102,152,92,153,143,129,164,124,164,118,158,104,158,90,148,98,139,112,139"
	}, {
		title: "Knightsbridge",
		mapoverlay: "/_gfx/selectionmap/knightsbridge.gif",
		href: "#Knightsbridge",
		shape: "poly",
		coords: "172,125,227,124,220,133,239,151,228,167,216,160,208,167,197,157,172,157"
	}, {
		title: "Mayfair",
		mapoverlay: "/_gfx/selectionmap/mayfair.gif",
		href: "#Mayfair",
		shape: "poly",
		coords: "214,32,214,49,273,103,261,117,334,119,334,89,269,21"
	}, {
		title: "Pimlico",
		mapoverlay: "/_gfx/selectionmap/pimlico.gif",
		href: "#Pimlico",
		shape: "poly",
		coords: "288,175,312,199,295,209,270,203,270,186,285,186"
	}, {
		title: "South Kensington",
		mapoverlay: "/_gfx/selectionmap/south-kensington.gif",
		href: "#SouthKensington",
		shape: "poly",
		coords: "160,117,163,125,166,126,166,165,193,165,200,173,163,211,155,203,155,193,162,186"
	}, {
		title: "Westminster",
		mapoverlay: "/_gfx/selectionmap/westminster.gif",
		href: "#Westminster",
		shape: "poly",
		coords: "288,158,358,159,320,192"
	}
];


// Create new map
var WAEllisMap = new Phoenix.Widgets.SelectionMap(document.getElementById("selectMap"), 0, null, mapconfig);

//Phoenix.Util.Event.addEventHandler("load", window, function() {
//	WAEllisMap.toggleSelectArea(null, 2, true, false, true);
//});

// When area selected, select the corresponding hidden input field
WAEllisMap.onselectarea = function(event)
{
	event = event || window.event;
	var thearea = Phoenix.Util.Event.getTarget(event);
	
	// get checkbox prefix if required (sales / let)
	var searchpref = "";
	var selectbox = document.getElementById("search_pref");
	if (selectbox != null) {
		searchpref = selectbox.options[document.getElementById("search_pref").selectedIndex].value;
	}
	
	var checkboxid = searchpref + thearea.href.substr(thearea.href.indexOf("#")+1);
	var context = thearea.owningControl;	// Grab a handle to this Phoenix.Widgets.Map object (for brevity in following lines)

	// Else toggle the corresponding input element
	var thecheckbox = document.getElementById(checkboxid);	// Arrays are 0-indexed, form values are 1-indexed
	thecheckbox.checked = true;
	
	addtolist(thearea.title);

	return(false);
};

// When area deselected, deselect the corresponding hidden input field
WAEllisMap.ondeselectarea = function(event)
{
	event = event || window.event;
	var thearea = Phoenix.Util.Event.getTarget(event);
	
	// get checkbox prefix if required (sales / let)
	var searchpref = "";
  var selectbox = document.getElementById("search_pref");
  if (selectbox != null) {
    searchpref = selectbox.options[document.getElementById("search_pref").selectedIndex].value;
  }
	
	var checkboxid = searchpref + thearea.href.substr(thearea.href.indexOf("#")+1);
	var context = thearea.owningControl;	// Grab a handle to this Phoenix.Widgets.Map object (for brevity in following lines)

	// Else toggle the corresponding input element
	var thecheckbox = document.getElementById(checkboxid);	// Arrays are 0-indexed, form values are 1-indexed
	thecheckbox.checked = false;
	
	removefromlist(thearea.title);

	return(false);
};

var areas = WAEllisMap.imageMap.getElementsByTagName("area");

for(var i=0; i<areas.length; i++)
{
	Phoenix.Util.Event.addEventHandler("mouseover", areas[i], function(event) {
		var thearea = Phoenix.Util.Event.getTarget(event);
		var areaid = thearea.href.substr(thearea.href.indexOf("#")+1);
		var relativecoords = Phoenix.Util.Mouse.getRelativePosition(event, thearea.owningControl.rootElement);
		
		var tooltipelement = document.createElement("div");
		tooltipelement.className = "tooltip";
		tooltipelement.style.top = relativecoords.y + "px";
		tooltipelement.style.left = relativecoords.x + "px";
		
		// get generated tooltips array
		var searchpref = "";
		var selectbox = document.getElementById("search_pref");
		if (selectbox != null) {
			searchpref = selectbox.options[document.getElementById("search_pref").selectedIndex].value;			
			if (searchpref == "sales") {
				tooltipelement.innerHTML = salesAreaTooltip[areaid];
			}
			else {
				tooltipelement.innerHTML = letAreaTooltip[areaid];				
			}
		}
		else {
			tooltipelement.innerHTML = areaTooltip[areaid];			
		}		
		
		thearea.owningControl.rootElement.appendChild(tooltipelement);
		
	});

	Phoenix.Util.Event.addEventHandler("mouseout", areas[i], function(event) {
		var thearea = Phoenix.Util.Event.getTarget(event);
		var tooltipelement = Phoenix.DOM.getElementsByClassName("tooltip", thearea.owningControl.rootElement);
		if(tooltipelement.length != 0)
			tooltipelement = tooltipelement[0];
		
		if(tooltipelement != null && tooltipelement != "")
			thearea.owningControl.rootElement.removeChild(tooltipelement);
	});
}

// Add name of area to list
function addtolist(areaname)
{
	var outputlist = Phoenix.DOM.getElementsByClassName("mapoutput", WAEllisMap.rootElement)[0].getElementsByTagName("ul")[0];
	var list = outputlist.getElementsByTagName("li");

	var areashash = new Object();
	for(var i=0; i<list.length; i++)
		areashash[list.item(i).innerHTML] = true;

	if(!areashash[areaname])
	{
		var newitem = document.createElement("li");
		newitem.innerHTML = areaname;
		outputlist.appendChild(newitem);
	}
}

// Remove name of area from list
function removefromlist(areaname)
{
	var outputlist = Phoenix.DOM.getElementsByClassName("mapoutput", WAEllisMap.rootElement)[0].getElementsByTagName("ul")[0];
	var list = outputlist.getElementsByTagName("li");

	for(var i=0; i<list.length; i++)
	{
		if(list[i].innerHTML == areaname)
			outputlist.removeChild(list[i]);
	}
}