	var map;
	var markerArray = [];
	var latlng = new google.maps.LatLng(52, 9);
	var mapStyle = [ { stylers: [ { hue: "#FF6C2E" }, { lightness: -14 }, { saturation: 100 }, { gamma: 1.09 } ] } ]
	
	var settings = 
	{
		styles: mapStyle,
		zoom: 4,
		maxZoom:9,
		minZoom:2,
		center: latlng,
		backgroundColor: "#FF6C2E",
		mapTypeControl: false,
		navigationControl: false,
		streetViewControl: false,
		zoomControl: true,
		mapTypeId: google.maps.MapTypeId.ROADMAP
	};
	
	var myOptions = 
	{
		alignBottom: true,
		pixelOffset: new google.maps.Size(-100, 50),
		boxStyle: 
		{ 
			background: "url('images/content/location-bubble.png') no-repeat",
			width: "200px",
			height: "200px"
		}  
    };

	var infowindow = new InfoBox(myOptions);
	
	var createEventHtml = function(json)
	{
		var html = ''
		
		if(json.places.length > 0)
		{
			html = '<ul id="where-list">';
			
			for(var i= 0; i < json.places.length; i++)
			{
				html += '<li>' +							
						'<a class="mapIconList" href="#mapContainer" onclick="quickFocus(' + i + ')"></a>'+
						'<a  href="#mapContainer" onclick="quickFocus(' + i + ')"><img src="' + json.places[i].thumb + '" /></a>' +							
						'<span class="mapBoxText"><a  href="#mapContainer" onclick="quickFocus(' + i + ')"><p><strong>' + json.places[i].city + ' - ' + json.places[i].country  + '</strong><br />' + json.places[i].name + '</p></a>' +
						'<a class="orange13" href="#mapContainer" onclick="quickFocus(' + i + ')">'+ json.places[i].startDate +' - '+ json.places[i].finishDate +'</a></span>'+
				'</li>';
			}
			
			html +='</ul>';
		}
		else
		{
			var html = '<h1>Oops!</h1><p>Sorry there are currently no events to view</p>';
		}
		
		return html;
	}
	
	var loadEvent = function(filter)
	{
		var param = new Object;
		param['filter'] = filter;
		
		jQuery('#eventContainer').html(loadingHtml);
		
		jQuery.ajax(
		{
			data: param,
			type: "POST",
			url: 'index.php?pid=whereAjax',
			dataType: 'json',
			success: function(responseJson)
			{
				(map) ?	createMapMarkers(responseJson) : '';
				jQuery('#eventContainer').html(createEventHtml(responseJson));
			}
		});
	}

	var createMapMarkers = function(data) 
	{
		if(markerArray)
		{
			for(var i= 0; i < markerArray.length; i++)
			{
				markerArray[i].setMap(null);
				infowindow.close(map, markerArray[i])
			}
			
			markerArray = [];
		};
		
		for(var i= 0; i < data.places.length; i++)
		{
			var contentString = '<div class="locationBox"><p>'+
			'<strong>' + data.places[i].city + ' - ' + data.places[i].country  + '</strong>'+
			'<br/>'+
			data.places[i].startDate +' - '+ data.places[i].finishDate +
			'<br/>'+
			data.places[i].name +
			'</p>';
			
			contentString += (data.places[i].fBlog != 0) ? '<a href="index.php?pid=blog&blogId=' + data.places[i].fBlog + '" >Click Here</a>' : '';
			contentString += '</div>';
	 
			var companyPos = new google.maps.LatLng(data.places[i].lat, data.places[i].lng);
			var companyMarker = new google.maps.Marker(
			{
				id: data.places[i].id,
				position: companyPos,
				map: map,
				title: data.places[i].name,
				html: contentString,
				icon: 'images/buttons/map-icon.png'
			});
			
			google.maps.event.addListener(companyMarker, 'click', function () {
				openMarker(this);
			});
		
			markerArray.push(companyMarker);
		}
	};
	
	var openMarker = function(marker)
	{
		allMarkerVisible(true);
		marker.setVisible(false);
		map.panTo(marker.getPosition());
		infowindow.setContent(marker.html);
		infowindow.setPosition(marker.getPosition());
		infowindow.open(map, marker);
	}
	
	google.maps.event.addListener(infowindow, 'closeclick', function () {
		allMarkerVisible(true);
	});
	
	var quickFocus = function(companyMarkerId)
	{
		openMarker(markerArray[companyMarkerId]);
	}
	
	var allMarkerVisible = function(bool)
	{
		for(var i= 0; i < markerArray.length; i++)
		{
			markerArray[i].setVisible(bool);
		}
	};

