function createMarker(latlng, html) {
	var marker = new GMarker(latlng);
	GEvent.addListener(marker, 'click', function() {
		var markerHTML = html;
		marker.openInfoWindowHtml(markerHTML);
	});
	return marker;
}

function getGoogleMapMarkers(map) {
	//using google request function
	var request = GXmlHttp.create();
	bounds = map.getBounds();
	ne = bounds.getNorthEast();
	sw = bounds.getSouthWest();

/* For use in future when markers may have to be dynamically loaded if there are too many videos
	GEvent.addListener(map, "moveend", function() {
		
	});
*/

	request.open('GET', '/video/' + ($('#answersvids').val() == "true" ? "map_markers_pranswers.xml" : "map_markers.xml")
		+ '?n='+ne.lat()+'&e='+ne.lng()+'&s='+sw.lat()+'&w='+sw.lng(), true);
	//tell the request what to do when the state changes.
	request.onreadystatechange = function() {
		if (request.readyState == 4) {
			var xmlDoc = request.responseXML;
			var markers = xmlDoc.documentElement.getElementsByTagName("marker");
			for (var i = 0; i < markers.length; i++) {
				var lng = markers[i].getAttribute("lng");
				var lat = markers[i].getAttribute("lat");
				if(lng && lat) {
					var latlng = new GLatLng(parseFloat(lat),parseFloat(lng));
					var html = '<div class="videoMapMarker">' +
								'<a href="' + markers[i].getAttribute("url") + '">' +
								 '<img width="75" alt="Thumbnail for ' + markers[i].getAttribute("title") + '" src="' + markers[i].getAttribute("img") + '" align="left" />' +
								 '<h1>' + markers[i].getAttribute("title") + '</h1>' + 
								 markers[i].getAttribute("desc") + '</a></div>';
					var marker = createMarker(latlng, html);
					map.addOverlay(marker);
				}
			}
		}
	}
	request.send(null);
}

//purely to randomize where the map centres upon
possibleCenters = new Array(new Array(52.330607, -1.359679), new Array(23.709924, 90.398254), new Array(6.918929, 79.857559),
new Array(27.705681, 85.315704), new Array(-17.825184, 31.046333), new Array(-1.27225, 36.802139), new Array(-12.1083, -77.0666));
chosenCentreIndex = Math.floor(Math.random() * 7);

$(document).ready(function(){
	$(".jshide").hide();
	
	if($("#videomap")[0]) {
		if (GBrowserIsCompatible()) {
			var map = new GMap2(document.getElementById("videomap"));
			map.enableDoubleClickZoom();
			
			map.setCenter(new GLatLng(parseFloat($('#latitude').val()),parseFloat($('#longitude').val())), 3);
			map.setMapType(G_PHYSICAL_MAP);
			map.addControl(new GSmallMapControl());
		
			var marker = new GMarker(new GLatLng(parseFloat($('#latitude').val()), parseFloat($('#longitude').val())));
			map.addOverlay(marker);
		}
	}
	
	$("#embedcode, #url").click(function() {
		this.focus();
		this.select();
	});
	
	if($("#clickzoommapwow")[0]) {
		if (GBrowserIsCompatible()) {
			var map = new GMap2(document.getElementById("clickzoommapwow"));
			map.enableDoubleClickZoom();
			map.enableScrollWheelZoom();
			if(!($("#mapstartlong")[0])) {
				map.setCenter(new GLatLng(possibleCenters[chosenCentreIndex][0], possibleCenters[chosenCentreIndex][1]), 3);
			} else {
				map.setCenter(new GLatLng(parseFloat($('#mapstartlat').val()), parseFloat($('#mapstartlong').val())), parseFloat($('#mapstartzoom').val()));
			}
			map.setMapType(G_PHYSICAL_MAP);
			map.addControl(new GSmallMapControl());
			getGoogleMapMarkers(map);
		}
	}
});
