//<![CDATA[

function MyMarker() {
	var id = null;
	
	function MyMarker(point,opts,id) {
		this.id = id;
  	if(!opts) opts = {};
	  opts.draggable = false;
	  //opts.icon = myMarkerIcon;

  	GMarker.call(this, point, opts);
	}

	MyMarker.prototype = new GMarker(new GLatLng(0,0));

	MyMarker.prototype.initialize = function(map) {
  	this._map = map;
	  GMarker.prototype.initialize.call(this,map);
	};
	window.MyMarker = MyMarker;
}

if (GBrowserIsCompatible()) {
	MyMarker();
}

function load(url) {
	if (GBrowserIsCompatible()) {
		var map = new GMap2(document.getElementById("map"));
  		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		map.addControl(new GOverviewMapControl());
		//debemos controlar el centro del mapa y su zoom
  		map.setCenter(new GLatLng(43.2917022705, -2.1622467041), 2);
  	
  		//Habilitar zoom progresivo
  		map.enableContinuousZoom();
  		
  		//habilitar  la rueda del ratón para zoom
		map.enableScrollWheelZoom();
		
		//Habilitar control mediante teclado
		new GKeyboardHandler(map);
		
		// Cargamos los puntos en el mapa		
		GDownloadUrl(url, function(data) {
				
			var xml = GXml.parse(data);
			var markers = xml.documentElement.getElementsByTagName('marker');
		
  	  for (var i = 0; i < markers.length; i++) {
				if(parseFloat(markers[i].getAttribute("latitud")) && parseFloat(markers[i].getAttribute("longitud"))) {
					var point = new GLatLng(parseFloat(markers[i].getAttribute("latitud")), parseFloat(markers[i].getAttribute("longitud")));
									
					function createMarker(point, info) {
					  var baseIcon = new GIcon();
						baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png"; //Sustituir por el correcto
						baseIcon.iconSize = new GSize(20, 19);														         
						baseIcon.shadowSize = new GSize(37, 19);
						baseIcon.iconAnchor = new GPoint(9, 19);
						baseIcon.infoWindowAnchor = new GPoint(9, 2);
						baseIcon.infoShadowAnchor = new GPoint(18, 25);
						
						var icon = new GIcon(baseIcon);
						//icon.image = "http://maggie/~ivaroes/gamesa/htdocs/imgs/ico.flecha-roja-abajo.png"; //Sustituir por el correcto
						icon.image = relative_path + "/imgs/ico.flecha-roja-abajo.png";
						
						var direccion = info.getAttribute("direccion");
						direccion.replace(new RegExp( "@@@", "g" ), " ");
						
						var marker = new MyMarker(point, {
							title: direccion.replace(new RegExp( "@@@", "g" ), " "),
							icon : icon
							}, info.getAttribute("id"));
							
						GEvent.addListener(marker, "click", function() {
							var fax = (info.getAttribute("fax")) ? "<br />fax: " + info.getAttribute("fax") : "";
							var tel = (info.getAttribute("telefono")) ? "tel: " + info.getAttribute("telefono") : "";
							var direccion = info.getAttribute("direccion");
							var myHtml = direccion.replace(new RegExp( "@@@", "g" ), "<br />") + "<br />" +
							tel + fax + "<br />" +
							(info.getAttribute("contacto")?"contact:"+info.getAttribute("contacto"):'') + "<br />" +
							"<a href=\"mailto:" + info.getAttribute("email") + "\">" +info.getAttribute("email") + "</a>";
							map.openInfoWindowHtml(this.getPoint(), myHtml);
						});
						
						return marker;
					}
					map.addOverlay(createMarker(point, markers[i]));
  	    }
    	}
  	});
	}
}
	
//]]>
	
//Window.onDomReady(function()  {
window.addEvent('domready', function() {
	if (GBrowserIsCompatible()) {
		load($('path').value);
	}
});
