

	var map;
	var arrMarkers = [];

	function mapInit(){
		var mapOptions = {
			mapTypeId: google.maps.MapTypeId.TERRAIN
		};
		map = new google.maps.Map(document.getElementById("projectresults"), mapOptions);
		
	}
	
	function load_markers(place, builder){
		if(place === undefined){
			place = '';
		}
		
		if(builder === undefined){
			builder = '';
		}
	
		$.getJSON("include/map_json.php?place=" + place + "&builder=" + builder, {}, function(data){
			var bounds = new google.maps.LatLngBounds();
			var infowindow = new google.maps.InfoWindow;
		
			$.each(data, function(i, item){
				var latlng = new google.maps.LatLng(item.lat, item.lng);
				bounds.extend(latlng);
			
				$("#markers").append('<li><a href="#" rel="' + i + '">' + item.title + '</a></li>');
				
				var image = new google.maps.MarkerImage(
				  	'images/gmaps-icon.png',
					new google.maps.Size(48.0, 48.0),
					new google.maps.Point(0, 0),
					new google.maps.Point(20.0, 48.0)
				);
				
				var shadow = new google.maps.MarkerImage(
					'images/gmaps-shadow.png',
					new google.maps.Size(48.0, 48.0),
					new google.maps.Point(0, 0),
					new google.maps.Point(9.0, 11.0)
				);
				
				var marker = new google.maps.Marker({
					icon: image,
					shadow: shadow,							
					position: latlng,
					map: map,
					title: item.title
				});
				arrMarkers[i] = marker;
				google.maps.event.addListener(marker, 'click', function() {
					infowindow.setContent("<div style=\"height: 80px;\"><h3>"+ item.title +"</h3><p>"+ item.description +"</p>Show all projects in <a href=\"projects/country/"+ i + "/"+ item.title +"/\">"+ item.title +"</a></div>");
					infowindow.open(map, marker);
				});
				google.maps.event.addListener(map, 'click', function() {
					infowindow.close();
				});
			});
		
			map.fitBounds(bounds);
		});
	}
	
	function clear_markers() {
		if (arrMarkers) {
			for (i in arrMarkers) {
				arrMarkers[i].setMap(null);
			}
		}
	}
	
	$(function(){
		// initialize map (create markers, infowindows and list)
		mapInit();
		load_markers();
		
		// "live" bind click event
		$("#place_select").live("change", function(){
			var place_select = $('#place_select').val();
			$('#builder_select').val('');
		
			clear_markers();
			load_markers(place_select, '');
		});
		
		$("#builder_select").live("change", function(){
			var builder_select = $('#builder_select').val();
			$('#place_select').val('');
		
			clear_markers();
			load_markers('', builder_select);
		});
	});
