(function($) {
	
	$.fn.mapaAxudas = function(id, lugar, zoom) {
		
		var map = document.getElementById(id);
		
		if (GBrowserIsCompatible()) {
	
			var gmap = new GMap2(map);
			gmap.addControl(new GSmallMapControl());
			gmap.addControl(new GMapTypeControl()) ;
			gmap.addControl( new GOverviewMapControl(new GSize(100,100)) );
			
			gmap.setCenter (new GLatLng(40.4166909,-3.7003454), zoom);
			
			
			function makeIcon (image) {
				var icon = new GIcon();
				icon.image = "img/ong.png";
				icon.shadow = "img/ong-shadow.png";
				icon.iconSize = new GSize(16, 16);
				icon.shadowSize = new GSize(24, 16);
				icon.iconAnchor = new GPoint(8, 16);
				icon.infoShadowAnchor = new GPoint(0, 0);
				icon.infoWindowAnchor = new GPoint(8, 1);	
				return icon;
			}
			
			function formatTabOne (input) {				
				var html 	 = "<div class=\"bubble\">";
				html 		+= "<h4><a href='" + input.datos.url + "'>" + input.datos.proyecto + "</a></h4>";
				html		+= "<p>" + input.datos.anio + " - " + input.datos.ong + "</p>";
				html		+= "</div>";					
				return html;			
			}
			
			function formatTabTwo (input) {
				var html 	 = "<div class=\"bubble\">";
					html 	+= "<p>" + input.datos.areas + "</p>";
					html 	+= "</div>";					
				return html;			
			}
				
			function createMarker(input, point) {
				
				if (point == null) {
					var point = new GLatLng(input.mapa_lat, input.mapa_lng)
				}
				var marker = new GMarker(point, makeIcon(input.markerImage) );
				var tabs_array	= [ new GInfoWindowTab("Proxetos", formatTabOne(input) ),
									new GInfoWindowTab("Información", formatTabTwo(input) ) ];
							
				GEvent.addListener(marker, "click", function() {
					marker.openInfoWindowTabsHtml(tabs_array);
				});
				
				return marker;
			}
			
			function createElem(opt_className, opt_html, opt_tagName) {
			  var tag = opt_tagName||"div";
			  var elem = document.createElement(tag);
			  if (opt_html) elem.innerHTML = opt_html;
			  if (opt_className) elem.className = opt_className;
			  return elem;
			}
			
			var sideBar = document.getElementById("lista_proyectos_galicia");
			if (lugar != 'galicia') {
				var sideBar = document.getElementById("lista_proyectos_sur");
			} 
			
			function createList(marker, input) {
				
				var ubicacion = input.provincia;
				if (lugar != 'galicia') ubicacion = input.pais;
				var label = createElem("sidebar-entry", input.datos.proyecto + ' (' + ubicacion + ')'  , "a");
				label.href = "#";
				label.style.display = "block";
				label.onclick = function(){GEvent.trigger(marker,'click'); return false};//x-browser
				label.onfocus = function(){GEvent.trigger(marker,'click'); return false};
				sideBar.appendChild(label);
				GEvent.addListener(marker,'click',function(){label.focus(); return false});
				return marker;
			}

	
			function parseJson (doc) {

				var jsonData = eval('(' + doc + ')');

				for (var i = 0; i < jsonData.markers.length; i++) {
						marker = createMarker(jsonData.markers[i]);
						gmap.addOverlay(marker);
						createList(marker, jsonData.markers[i]);
				}	
			}     	
				
			var urlJson = 'mapa-de-axudas.json.php';
			if (lugar == 'galicia') { urlJson = "mapa-de-axudas.json.php?lugar=galicia"; }

			GDownloadUrl(urlJson, function(data, responseCode) { 
				parseJson(data);
			});
			
		
		} else {
			alert("Sorry, your browser cannot handle the true power of Google Maps");
		}
	}

})(jQuery);