var map; 
var clusterer;
var centerLatitude = 41.388529;
var centerLongitude = 2.169971;
//var startZoom;
var server_host = "http://barcelona.freesound.org/blog/";
var loading = true;

// Create our "tiny" marker icon for SonsdeBarcelona
var tinyIcon = new GIcon();
tinyIcon.image = "http://barcelona.freesound.org/blog/sites/all/themes/sonsdebarcelona/img/markers/marker-red.png";
tinyIcon.shadow = "http://barcelona.freesound.org/blog/sites/all/themes/sonsdebarcelona/img/markers/marker-shadow.png";	
tinyIcon.iconSize = new GSize(23, 28);
tinyIcon.shadowSize = new GSize(44, 27);	
tinyIcon.iconAnchor = new GPoint(6, 20);
tinyIcon.infoWindowAnchor = new GPoint(5, 1);
// Set up our GMarkerOptions object literal
markerOptions = { icon:tinyIcon };

//Create an icon for the clusters of SonsdeBarcelona
var iconCluster = new GIcon();
iconCluster.image = "http://barcelona.freesound.org/blog/sites/all/themes/sonsdebarcelona/img/markers/cluster-red.png";
iconCluster.shadow = "http://barcelona.freesound.org/blog/sites/all/themes/sonsdebarcelona/img/markers/cluster-shadow.png";
iconCluster.iconSize = new GSize(34, 40);
iconCluster.shadowSize = new GSize(65, 40);
iconCluster.iconAnchor = new GPoint(13, 25);
iconCluster.infoWindowAnchor = new GPoint(13, 1);
iconCluster.infoShadowAnchor = new GPoint(26, 13);	
clusterOptions = { icon:iconCluster };

// Create our "tiny" marker icon for Freesound
var tinyIconF = new GIcon();
tinyIconF.image = "http://barcelona.freesound.org/blog/sites/all/themes/sonsdebarcelona/img/markers/marker-darkred.png";
tinyIconF.shadow = "http://barcelona.freesound.org/blog/sites/all/themes/sonsdebarcelona/img/markers/marker-shadow.png";
tinyIconF.iconSize = new GSize(24, 29);
tinyIconF.shadowSize = new GSize(44, 27);
tinyIconF.iconAnchor = new GPoint(6, 20);
tinyIconF.infoWindowAnchor = new GPoint(5, 1);
markerOptionsF = { icon:tinyIconF };

//Create an icon for the clusters of Freesound
/*var iconClusterF = new GIcon();
iconClusterF.image = "http://googlemapsbook.com/chapter7/icons/cluster.png";
iconClusterF.shadow = "http://googlemapsbook.com/chapter7/icons/cluster_shadow.png";
iconClusterF.iconSize = new GSize(26, 25);
iconClusterF.shadowSize = new GSize(22, 20);
iconClusterF.iconAnchor = new GPoint(13, 25);
iconClusterF.infoWindowAnchor = new GPoint(13, 1);
iconClusterF.infoShadowAnchor = new GPoint(26, 13);	
clusterOptionsF = { icon:iconClusterF };
*/
function load_map() {
  if (GBrowserIsCompatible()) {
    map = new GMap2(document.getElementById("map"));
		map.addControl(new GSmallMapControl());	
  	return map;		
}
}

function load_map_fullscreen() {
  if (GBrowserIsCompatible()) {
	  map = new GMap2(document.getElementById("map"));
		map.setCenter(new GLatLng(centerLatitude, centerLongitude), 13);
	  var mapControl = new GMapTypeControl();	
	  map.addMapType(G_PHYSICAL_MAP);
	  map.addControl(mapControl); 			
	  var topRight = new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(25,35));	
	  map.addControl(new GLargeMapControl(), topRight);
	  map.setMapType(G_SATELLITE_MAP);
		if (loading) loading_text(); 
		return map;
		}
}

function loading_text () {
	//document.getElementById("textDisplay").innerHTML = "carregant sons..."; 
	document.getElementById("textDisplay").style.display = "block"; 
}

function unloading_text() {
	//document.getElementById("textDisplay").innerHTML = ""; 
	document.getElementById("textDisplay").style.display = "none"; 
	loading=false;
}

function retrieving_number_items (projectId, result) {
	document.getElementById(projectId).innerHTML = result; 
}

function load_form_map() {
  if (GBrowserIsCompatible()) {
    map = load_map();
		map.setCenter(new GLatLng(centerLatitude, centerLongitude), 12);
    GEvent.addListener(map, "click", function(overlay, latlng, overlaylatlng) {
    if(latlng){
      map.clearOverlays();
      var lat = String(latlng.lat()).substring(0,10);
      var lon = String(latlng.lng()).substring(0,10);		
      document.getElementById("edit-field-latitud-0-value").value=lat;
      document.getElementById("edit-field-longitud-0-value").value=lon;		
      var location = new GLatLng(lat, lon);
      var marker = new GMarker(location,markerOptions);
      map.addOverlay(marker);
    }
    });
  }
}

function load_display_map(lat, lon) {
  if (GBrowserIsCompatible()) {
	map = load_map();
	map.setCenter(new GLatLng(centerLatitude, centerLongitude), 10);     
  var location = new GLatLng(lat, lon);
  var marker = new GMarker(location,markerOptions);
  map.addOverlay(marker);
  }
}


function createMarker_sdb(point, id, nodeid, filename, filealias, user, userid, description, mp3) {

  var marker = new GMarker(point, markerOptions);

  GEvent.addListener(marker, "click", function() {
	var recordingField = "<p><strong>Gravació: </strong><a href='http://barcelona.freesound.org/blog/" + filealias + "' target='_blank'>" + filename + "</a></p>";
	var authorField = "<p><strong>Autor: </strong><a href='http://barcelona.freesound.org/blog/usuaris/" + user + "' target='_blank'>" + user + "</a></p>";
	var descriptionField = "<p><strong>Descripció: </strong>" + description + "</p>";
	var spanPlayer = '<span id="player"></span>';
  var myHtml = "<div class='songDatasheet'>" +spanPlayer + recordingField + authorField + descriptionField + "</div>";
	var openFunc = {
	  onOpenFn: function() {
		var fo = new FlashObject(server_host + "sites/all/themes/sonsdebarcelona/preview-player-k.swf", "player_x", "31", "15", "6", "#FFFFFF");
		fo.addVariable("url", mp3);
		fo.addVariable("autostart", "1");
		fo.write("player");						
		}
	}	
	map.openInfoWindowHtml(point,myHtml,openFunc);														
  }); <!--// GEvent -->
			
  return marker;

}





function createMarker (point, id, filename, user, userid, description, mp3) {

  var marker = new GMarker(point, markerOptionsF);
	
  GEvent.addListener(marker, "click", function() {
	var recordingField = "<p><strong>Gravació: </strong><a href='http://www.freesound.org/samplesViewSingle.php?id=" + id + "' target='_blank'>" + filename + "</a></p>";
	var authorField = "<p><strong>Autor: </strong><a href='http://www.freesound.org/usersViewSingle.php?id=" + userid + "' target='_blank'>" + user + "</a></p>";
	var descriptionField = "<p><strong>Descripció: </strong>" + description + "</p>";	
	var spanPlayer = '<span id="player"></span>';
  var myHtml = "<div class='songDatasheet'>" +spanPlayer + recordingField + authorField + descriptionField + "</div>";
		var openFunc = {
			onOpenFn: function(){
				var fo = new FlashObject(server_host + "sites/all/themes/sonsdebarcelona/preview-player-k.swf", "player_x", "31", "15", "6", "#FFFFFF");
				fo.addVariable("url", mp3);
				fo.addVariable("autostart", "1");
				fo.write("player");						
			}
		}
	map.openInfoWindowHtml(point,myHtml,openFunc);		
													
  });				
  return marker;	  
}

function load_sdb() {
	
 if (GBrowserIsCompatible()) {
	map = load_map_fullscreen();
	
	clusterer = new Clusterer(map);
	clusterer.SetIcon(iconCluster);
	clusterer.maxVisibleMarkers = 5;
	clusterer.gridSize = 7;
	clusterer.minMarkersPerCluster = 4;
	clusterer.maxLinesPerInfoBox = 10;
  
  GDownloadUrl(server_host + "geosounds", function(data, responseCode) {
    var xmlDoc = GXml.parse(data);
  	var geotags = xmlDoc.documentElement.getElementsByTagName("geotag");
		for (var i = 0; i < geotags.length; i++) {
		  var g = geotags[i];
	    var filename = g.getAttribute("filename");
			var filealias = g.getAttribute("filealias");
			var description = g.getAttribute("description");
			var user = g.getAttribute("user");	
			var id = parseInt(g.getAttribute("id"));
			var nodeid = parseInt(g.getAttribute("nodeid"));
			var userid = parseInt(g.getAttribute("userid"));
			var mp3 = g.getAttribute("preview");
			var lat = parseFloat(g.getAttribute("lat"));
			var lon = parseFloat(g.getAttribute("lon"));
			var latlon = new GLatLng(lat, lon);				
			// underscore to space
			filename = filename.replace(/_/g,' ');
			// strip the extension
			filename = filename.replace(/\.[^.]+$/g,'');
			// fix single and double quoting
			description = description.replace(/\\'/g,"'");
			description = description.replace(/\\"/g,"'");
			description = description.replace(/Ã¯/g,"ï");
		
			//map.addOverlay(createMarker_sdb(latlon, id, nodeid, filename, filealias, user, userid, description, mp3));	
			clusterer.AddMarker(createMarker_sdb(latlon, id, nodeid, filename, filealias, user, userid, description, mp3), filename + " de " + user);		
    } <!--// for -->
		retrieving_number_items("icosdb", i); //totalnum sonsdebarcelona
		load_fs();
  }); <!--// GDownloadUrl -->
  }

}



function load_fs() {
	
	GDownloadUrl("/geotagging/tags3.php", function(data, responseCode) {
 		var xmlDoc = GXml.parse(data);
 		var geotags = xmlDoc.documentElement.getElementsByTagName("geotag");
		var numFreesoundItems = 0;
		
		for (var i = 0; i < geotags.length; i++) {
    	var g = geotags[i];
    	var filename = g.getAttribute("filename");
			var description = g.firstChild.nodeValue;
			var user = g.getAttribute("user");		
			var id = parseInt(g.getAttribute("id"));
			var userid = parseInt(g.getAttribute("userid"));
			var mp3 = "http://media.freesound.org/data/" + Math.floor(id/1000) + "/previews/" + g.getAttribute("preview");
			var lat = parseFloat(g.getAttribute("lat"));
			var lon = parseFloat(g.getAttribute("lon"));
			var latlon = new GLatLng(lat, lon);				

			// underscore to space
			filename = filename.replace(/_/g,' ');
			// strip the extension
			filename = filename.replace(/\.[^.]+$/g,'');
			// fix single and double quoting
			description = description.replace(/\\'/g,"'");
			description = description.replace(/\\"/g,"'");
			description = description.replace(/Ã¯/g,"ï");
						
			//if(user!='sonsdebarcelona') map.addOverlay(createMarker(myPoint,id,filename, user, userid, description, mp3));					
			if(user!='sonsdebarcelona') {
				clusterer.AddMarker(createMarker(latlon, id, filename, user, userid, description, mp3), filename + " de " + user);	
				numFreesoundItems++;	
			}
  	}
    retrieving_number_items("icofs", numFreesoundItems); // totalnum freesounds
		retrieving_number_items("icosdbfs", i); // totalnum sonsdebarcelona + freesound
		load_numusers_sdb();
	});
}

function load_numusers_sdb() {
  GDownloadUrl(server_host + "statsusers", function(data, responseCode) {
   var xmlDoc = GXml.parse(data);
   var statsusers = xmlDoc.documentElement.getElementsByTagName("statsusers");
	 var s = statsusers[0];
   var totalusers = s.getAttribute("totalusers");
   retrieving_number_items("icousers", totalusers); //totalnum users sonsdebarcelona		
	});
}

