var mapPositionInit = function(){
	var top = "188px";
	if ($.browser.msie && parseInt($.browser.version) < 8) top = "188px";
	$("#map-float").css({
		right: Math.round(($(document).width() - 940) / 2 + 16) + "px",
		top: top
	});
}
var mapPositionChange = function(){
var scrolltop = document.documentElement.scrollTop;
	if($.browser.msie && parseInt($.browser.version) < 8) {
		$("#map-float").css({
		    top: 188 + $(document).scrollTop() + "px"
	  	});
	}
	else {
		$("#map-float").css({
		    top: "188px",
			position: "fixed"
	  	});
	}	
}
mapPositionInit();

var createMarkers = function() {
	Map.clearMarkers();
	var markerClick = function(id) {
		$("#place_" + id + " a.title").trigger("click");
	}
	
	var markerOver = function(id) {
		$("#place_" + id).addClass("event-card-hover"); 
	}
	
	var markerOut = function(id) {
		$("#place_" + id).removeClass("event-card-hover");
	}
	
	$(".place-card").each(function() {
		var place = $(this);
		var marker = Map.addMarker(place.attr("rel"), place.attr("name"), place.attr("lat"), place.attr("lng"), false, markerClick, markerOver, markerOut);
		place.bind("mouseover", function() { Map.markerOver(marker); });
		place.bind("mouseout", function() { Map.markerOut(marker); });
	});
}

var currentCity = $("#map-city option[value='" + $("#map-city").val() + "']");

if (!isNaN(parseInt(getCookie("city"))) && window.location.hash.indexOf("sw_lat") == -1) {
	$("#map-city").val(parseInt(getCookie("city")));
	//var currentCity = $("#map-city option[value='" + $("#map-city").val() + "']");
	Map.setCenter(currentCity.attr("lat"), currentCity.attr("lng"), currentCity.attr("zoom"));
}

var mapLoadPlaces = function() {
	var sw = this.getBounds().getSouthWest();
	var ne = this.getBounds().getNorthEast();
	var url = FLAX.replaceLinkEqual(window.location.hash, true);
	url = url.replace("#:ax:ajax:", "");
	url = url.replace(":anchor:ajax:", "#");
	var re = /(sw_lat=[\d\.]+(&)?)|(sw_lng=[\d\.]+(&)?)|(ne_lat=[\d\.]+(&)?)|(ne_lng=[\d\.]+(&)?)|(p=[\d]+(&)?)/gi;
	url = url.replace(re, "");
	var paramsPosition = url.indexOf("?");
	if (paramsPosition != -1 && url.substr(paramsPosition + 1).length == 0) {
		url = url.replace("?", "");
	}
	if (url.indexOf("?") == -1) {
		url += "?sw_lat=" + sw.lat() + "&sw_lng=" + sw.lng() + "&ne_lat=" + ne.lat() + "&ne_lng=" + ne.lng();
	} else {
		url += "&sw_lat=" + sw.lat() + "&sw_lng=" + sw.lng() + "&ne_lat=" + ne.lat() + "&ne_lng=" + ne.lng();
	}
	url = url.replace(/&+/, "&");
	navigate(url);
}

var mapInterval = setInterval(function() {
	if ($("#map-float").is(":visible")) {
		if (!$("#map div").length) {
			Map.init("map", currentCity.attr("lat"), currentCity.attr("lng"), currentCity.attr("zoom"));

			google.maps.event.clearListeners(Map.getMap(), "bounds_changed");
			google.maps.event.addListener(Map.getMap(), "bounds_changed", function() {
				mapLoadPlaces.call(Map.getMap());
				google.maps.event.clearListeners(Map.getMap(), "bounds_changed");
			});	
			Map.setOnDragEnd(mapLoadPlaces);
		} else {
			if (!$("#right ul.list").length) {
				mapLoadPlaces.call(Map.getMap());
			}
		}
		clearInterval(mapInterval);
		mapInterval = null;
	}
	}, 100);
$("#map-city").unbind();

var cityChange = function() {
	var currentCity = $("#map-city option[value='" + $(this).val() + "']");
	setCookie("city", $(this).val());
	Map.setCenter(currentCity.attr("lat"), currentCity.attr("lng"), currentCity.attr("zoom"));
	mapLoadPlaces.call(Map.getMap());
}

$("#map-city").unbind("change", cityChange);
$("#map-city").bind("change", cityChange);

$(window).unbind("resize", mapPositionInit);
$(window).bind("resize", mapPositionInit);
$(window).unbind("scroll", mapPositionChange);
$(window).bind("scroll", mapPositionChange);

createMarkers();

