var map, mgr, openID;
var item_icon = '';

var logoIcon = new GIcon(G_DEFAULT_ICON, "http://www.hiltonrealtors.com/images/map_logo.png");
logoIcon.iconSize = new GSize(32, 32);

var houseIcon = new GIcon(G_DEFAULT_ICON, "http://www.hiltonrealtors.com/images/map_home.png");
houseIcon.iconSize = new GSize(32, 32);
						
var schoolIcon = new GIcon(G_DEFAULT_ICON, "http://www.hiltonrealtors.com/images/map_school.png");
schoolIcon.iconSize = new GSize(32, 32);
						
var bankIcon = new GIcon(G_DEFAULT_ICON, "http://www.hiltonrealtors.com/images/map_bank.png");
bankIcon.iconSize = new GSize(32, 32);
						
var shoppingIcon = new GIcon(G_DEFAULT_ICON, "http://www.hiltonrealtors.com/images/map_shopping.png");
shoppingIcon.iconSize = new GSize(32, 32);
						
var landmarkIcon = new GIcon(G_DEFAULT_ICON, "http://www.hiltonrealtors.com/images/map_landmark.png");
landmarkIcon.iconSize = new GSize(32, 32);
						
var medicalIcon = new GIcon(G_DEFAULT_ICON, "http://www.hiltonrealtors.com/images/map_hospital.png");
medicalIcon.iconSize = new GSize(32, 32);
						
var businessIcon = new GIcon(G_DEFAULT_ICON, "http://www.hiltonrealtors.com/images/map_business.png");
businessIcon.iconSize = new GSize(32, 32);
						
var libraryIcon = new GIcon(G_DEFAULT_ICON, "http://www.hiltonrealtors.com/images/map_library.png");
libraryIcon.iconSize = new GSize(32, 32);
						
var theaterIcon = new GIcon(G_DEFAULT_ICON, "http://www.hiltonrealtors.com/images/map_theater.png");
theaterIcon.iconSize = new GSize(32, 32);

var setOpenWindow = function(id) {
	openID = id;
};

var reloadForm = function(e) {
	switch (typeof(e)) {
		case 'undefined':
			var form_params = 'init=true';
			break;
		
		case 'object':
			e.stop();
			parent.location.hash =  $('form_map_options').serialize();
			var form_params = $('form_map_options').serialize();
			break;
			
		case 'string':
			var form_params = e;
			break;
	}
	
	var r_search = false;
	$$('input[name=search]').each(function(ele) {if (ele.checked) r_search = true; });
	
	if (!r_search && typeof(e) != 'undefined') {
		alert('Please select to search either Hilton-only listings or all MLS listings');
		return false;
	}
	
	$('map_overlay').appear();
	
	new Ajax.Request('includes/map_query.php', {
		parameters: form_params,
		onSuccess: function(r) {
			var resp = r.responseText.evalJSON();
			
			if (resp.success) {
				map.clearOverlays();
		
				for (var i = 0; i < resp.items.length; i++) {
					switch (resp.items[i].type.toLowerCase()) {
						case 'listing':				item_icon = houseIcon; break;							
						case 'school':				item_icon = schoolIcon; break;							
						case 'shopping':			item_icon = shoppingIcon; break;							
						case 'bank':				item_icon = bankIcon; break;							
						case 'landmark':			item_icon = landmarkIcon; break;							
						case 'medical':				item_icon = medicalIcon; break;							
						case 'general business':	item_icon = businessIcon; break;							
						case 'library':				item_icon = libraryIcon; break;							
						case 'movie theater':		item_icon = theaterIcon; break;
					}
					
					if (resp.items[i].hilton == 1) item_icon = logoIcon;
					
					var ll = new GLatLng(resp.items[i].lat, resp.items[i].lon);
					var marker = new GMarker(ll, { icon:item_icon });
					
					marker.infoWindow = resp.items[i].infoWindow;
					marker.ll = ll;
					
					GEvent.addListener(marker, "click", function() {
						map.openInfoWindowHtml(this.ll, this.infoWindow);
					});	
					
					if (typeof(openID) == 'number' && openID == resp.items[i].id) {
						map.setCenter(ll, 15);
						map.openInfoWindowHtml(ll, resp.items[i].infoWindow);
					}
					
					map.addOverlay(marker);
				}
			
				if (openID == null) {
					var ll = new GLatLng(resp.r_lat, resp.r_lon);
					map.setCenter(ll, 11);
				}
			} else {
				alert(resp.reason);
			}
			
			$('map_overlay').fade();
		}
	});
};