/**
 * @author spoit
 */

//load the google maps API
google.load("maps", "2", {"language" : "nl_NL"});
//google.load("search", "1");


//load a standard map for admin section
function basic_map() {
	if (GBrowserIsCompatible()) {
	 	var map = new GMap2(document.getElementById("map_canvas"));
		map.setCenter(new GLatLng(51.011163, 5.31189), 9);
		map.setMapType(G_NORMAL_MAP);
		map.enableScrollWheelZoom();
		map.addControl(new GSmallMapControl()); 
		
		//get current geoc value
		var currlati= document.getElementById("geoc_latitude").value;
		var currlongi = document.getElementById("geoc_longitude").value;	
		  	
		if(currlati != '' && currlongi != ''){
			var point = new GLatLng(currlati,currlongi);
			var mark = new GMarker(point);
			map.addOverlay(mark);
			map.panTo(mark.getLatLng());
		}	
	
		GEvent.addListener(map, "click", function(overlay, point) {
			map.clearOverlays();		
			var mark = new GMarker(point);
			map.addOverlay(mark);
			map.panTo(mark.getLatLng());
			document.getElementById("geoc_latitude").value = point.lat();
			document.getElementById("geoc_longitude").value = point.lng();	
		});
	}
}



//search map
var bounds;
var puntjes = [0];
function search_map(lat, lon){
	if (GBrowserIsCompatible()) {
		var lat = (lat!=null)? lat : 51.011163;
		var lon = (lon!=null)? lon : 5.31189;
		var map = new GMap2(document.getElementById("map"));
		map.enableScrollWheelZoom();
		map.addControl(new GSmallMapControl());
		map.addControl(new GMapTypeControl());
		map.setCenter(new GLatLng(lat, lon), 8);
		bounds = map.getBounds();
		var Xay = bounds.getSouthWest();
		var Xaz = bounds.getNorthEast();
		getMapdata(map, Xay.lat().toFixed(4), Xay.lng().toFixed(4), Xaz.lat().toFixed(4), Xaz.lng().toFixed(4));
		GEvent.addListener(map, "moveend", function() {
			bounds = map.getBounds();
			var Xay = bounds.getSouthWest();
			var Xaz = bounds.getNorthEast();
			getMapdata(map, Xay.lat().toFixed(4), Xay.lng().toFixed(4), Xaz.lat().toFixed(4), Xaz.lng().toFixed(4));
		});
	}
}

function createMarker(point, type, media) {
	var marker = new GMarker(point);
	var html = "";
	if (typeof(media[0]) != 'undefined'){
		if (type == "foto"){
			html = "<b>Foto:"+media[0].getAttribute("title")+"</b><br/><a href=\""+media[0].getAttribute("link")+"\"><img src=\""+media[0].getAttribute("thumbnail")+"\" /></a><br/>Rating: <img src=\"http://images.aslpage.be/tuub/images/other/"+media[0].getAttribute("score")+".gif\" alt=\"Score "+media[0].getAttribute("score")+"/5\" title=\"Score "+media[0].getAttribute("score")+"/5\" /> ("+media[0].getAttribute("votes")+" stemmen)<br/>";
		}
		if (type == "video"){
			html = "<b>Video: "+media[0].getAttribute("title")+"</b><br/><a href=\""+media[0].getAttribute("link")+"\"><img src=\""+media[0].getAttribute("thumbnail")+"\" height=\"100\" /></a><br/>Aantal keer bekeken: "+media[0].getAttribute("views")+" (totaal)<br/>Rating: <img src=\"http://images.aslpage.be/tuub/images/other/"+media[0].getAttribute("score")+".gif\" alt=\"Score "+media[0].getAttribute("score")+"/5\" title=\"Score "+media[0].getAttribute("score")+"/5\" /> ("+media[0].getAttribute("votes")+" stemmen)<br/>"
		}
		if (type == "blog"){
			html = "<b>Blog: "+media[0].getAttribute("title")+"</b><br/>"
		}
	}
	GEvent.addListener(marker, 'click', function() {
	marker.openInfoWindowHtml(html);
	});
	return marker;
}


function getMapdata(map, sw_lat, sw_lng, ne_lat, ne_lng){
	GDownloadUrl("/ajax.php?module=gmap&function=getNearByMedia&sw_lat="+sw_lat+"&sw_lng="+sw_lng+"&ne_lat="+ne_lat+"&ne_lng="+ne_lng, function(data) {
			var xml = GXml.parse(data);
			var markers = xml.documentElement.getElementsByTagName("marker");
			//map.clearOverlays();
			for (var i = 0; i < markers.length; i++) {
				var type = markers[i].getAttribute("type");
				var id = markers[i].getAttribute("id");
				var address = markers[i].getAttribute("address");
				var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
								parseFloat(markers[i].getAttribute("lng")));
				var punt = id;
				var media = markers[i].getElementsByTagName("media");
				if (puntjes.indexOf(punt) == -1){
					if (media.length > 0){
						var marker = createMarker(point, type, media);
						map.addOverlay(marker);
					}
					puntjes.push(id);
				}				
			}
		});
}

//media detail map
function media_map(lat, lon){
	if (GBrowserIsCompatible()) {
		if (lat == null || lon == null) return;
		var map = new GMap2(document.getElementById("map"));
		map.setCenter(new google.maps.LatLng(lat, lon), 13);
		map.setMapType(G_NORMAL_MAP);
		map.disableDragging();
		map.addControl(new GSmallZoomControl());
		
		var point = new GLatLng(lat,lon);
		var mark = new GMarker(point);
		map.addOverlay(mark);
		map.panTo(mark.getLatLng());
	}
}

