$(document).ready(function(){
	$(document).pngFix();
	
	var map			= null;
	var markers		= null;
	var geocoder	= null;
	var infowindow	= null;
	
	function initialize() {
		var latlng = new google.maps.LatLng(59.3425, 18.062);
		var myOptions = {
			zoom: 15,
			center: latlng,
			mapTypeId: google.maps.MapTypeId.ROADMAP
		};
	    map			= new google.maps.Map(document.getElementById("map"), myOptions);
	    geocoder	= new google.maps.Geocoder();
	    infowindow = new google.maps.InfoWindow({ content: "" });
	    
		var omradetCoordinates = [
		               new google.maps.LatLng(59.34535738981928,  18.060922622680664),
		               new google.maps.LatLng(59.34098092660087,  18.06529998779297),
		               new google.maps.LatLng(59.339514685307535, 18.05976390838623),
		               new google.maps.LatLng(59.34404451007098,  18.05555820465088),
		               new google.maps.LatLng(59.34535738981928,  18.060922622680664)
		               ];
		
		var omradet = new google.maps.Polygon({
			path: omradetCoordinates,
			strokeColor: "#168a9e",
			strokeOpacity: 1.0,
			strokeWeight: 3,
			fillColor: "#168a9e",
		    fillOpacity: 0.1
		});
		
		omradet.setMap(map);
	}
	
	function showAddress(data,center) {		
		if(data.lat && data.lng) {
			var position = new google.maps.LatLng(data.lat, data.lng);
			addMarker(position, data, center);
		} else {
			if (geocoder) {
				geocoder.geocode(
					{address: data.address+' Stockholm'},
					function(results, status) {
						if (status == google.maps.GeocoderStatus.OK && results.length) {
							addMarker(results[0].geometry.location, data, center);
						} else {
							
						}
					}
				);
			}
		}
	}
	
	function addMarker(position, data, center) {
		var image 		= 'http://www.lunchberry.se/wp-content/themes/lunchberry/img/pineberry-icon.png';
		
		var marker		= new google.maps.Marker({
			position:	position,
			title:		data.name
		});
		
		if(data.name == 'Pineberry') {
			//marker.setIcon(image);
		}
		
		if( ! center) {
			google.maps.event.addListener(marker, 'click', function() {
				var contentString = "<h1>"+data.name+"</h1><p><strong>"+data.kategori+"</strong><br />"+data.address+"</p><a href='"+data.url+"'>Besök</a>";
				
				infowindow.setContent(contentString);
				infowindow.open(map,marker);
			});
			
			google.maps.event.addListener(marker, 'dblclick', function() {
				window.location = data.url;
			});
		}
		
		// To add the marker to the map, call setMap();
		marker.setMap(map);
		
		if(center) {
			map.panTo(position);
			map.setZoom(17);
	    }
	}

	
	$('#map').each(function(){
		initialize();
		
		var id = document.body.className.replace(/.*postid-([\w-]+).*/, "$1"); 
		var restaurant = isNaN(id) ? 'all' : id;
		
		$.ajax({
			   type: "POST",
			   url: "/wp-admin/admin-ajax.php",
			   data: "action=get_restaurants&restaurant="+restaurant,
			   dataType: "json",
			   success: function(data){
				var center = data.length > 1 ? false : true;
				for(i in data) {
					showAddress(data[i], center);
				}
			}
		});
	});
	
	
	$("a.image").fancybox();
	$("ul.gallery a").mouseenter(function(){
		$(this).find('img').animate({
			opacity: 0.25
		  }, 200, function() {
			  var tmp = null;
		  });
	}).mouseleave(function(){
		$(this).find('img').animate({
			opacity: 1
		  }, 200, function() {
			  var tmp = null;
		  });
	});
	
	$(".filter ul li").mouseover(function(){
		$(this).find("ul").css('display','block');
		if ($.browser.msie && $.browser.version.substr(0,1)<8) {
			$('#map').css('visibility', 'hidden');
		}
	}).mouseleave(function(){
		$(this).find("ul").css('display','none');
		if ($.browser.msie && $.browser.version.substr(0,1)<8) {
			$('#map').css('visibility', 'visible');
		}
	});
	
	
	// IE6 Fixes
	if ($.browser.msie && $.browser.version.substr(0,1)<7) {
		$('#wrap, #bottom-bar .widget').css('overflow', 'hidden');
	}
	
	
	// Locals only!
	$('#locals-only').data('hidden', false).delay(2000).animate({top: -590}, {duration: 1000}, function(){}).data('hidden', true).mouseover(function(){
		$(this).data('hidden', false).animate({top: -200}, {duration: 1000}, function(){}).delay(1000).data('hidden', true);
		return false;
	});
	
	bounce();
	
	function bounce() {
		$sign = $('#locals-only');
		
		if($sign.data('hidden')) {
			$sign.animate({top: -580}, 500).animate({top: -590}, 500, function(){
				bounce();
			});
		}
	}
});
