//mapa
// global variables
var gmarkers=[];
var map;
var request;
var bounds = new GBounds(Number.MAX_VALUE, Number.MAX_VALUE, -Number.MAX_VALUE, - Number.MAX_VALUE); 
var bounds = new GLatLngBounds();
var iconpueblo = new GIcon();
iconpueblo.image = local+"static/images/iconos/iconpueblo.png";
iconpueblo.iconSize = new GSize(40, 27);
iconpueblo.iconAnchor = new GPoint(10, 40);
iconpueblo.infoWindowAnchor = new GPoint(5, 1);
var iconhostal = new GIcon();
iconhostal.image = local+"static/images/iconos/iconhostal.png";
iconhostal.iconSize = new GSize(25,37);
iconhostal.iconAnchor = new GPoint(6, 30);
iconhostal.infoWindowAnchor = new GPoint(3, 1);
var iconh = new GIcon();
iconh.image = local+"static/images/iconos/h.png";
iconh.iconSize = new GSize(25,37);
iconh.iconAnchor = new GPoint(6, 30);
iconh.infoWindowAnchor = new GPoint(3, 1);
var iconru = new GIcon();
iconru.image = local+"static/images/iconos/r.png";
iconru.iconSize = new GSize(25, 37);
iconru.iconAnchor = new GPoint(6, 30);
iconru.infoWindowAnchor = new GPoint(5, 1);
var iconf = new GIcon();
iconf.image = local+"static/images/iconos/f.png";
iconf.iconSize = new GSize(25, 37);
iconf.iconAnchor = new GPoint(6, 20);
iconf.infoWindowAnchor = new GPoint(5, 1);
var iconp = new GIcon();
iconp.image = local+"static/images/iconos/p.gif";
iconp.iconSize = new GSize(25, 37);
iconp.iconAnchor = new GPoint(6, 20);
iconp.infoWindowAnchor = new GPoint(5, 1);
var iconcamping = new GIcon();
iconcamping.image = local+"static/images/iconos/iconcamping.png";
iconcamping.iconSize = new GSize(25, 37);
iconcamping.iconAnchor = new GPoint(6, 20);
iconcamping.infoWindowAnchor = new GPoint(5, 1);
var iconinmo = new GIcon();
iconinmo.image = local+"static/images/iconos/inmobiliaria.gif";
iconinmo.iconSize = new GSize(25, 37);
iconinmo.iconAnchor = new GPoint(6, 20);
iconinmo.infoWindowAnchor = new GPoint(5, 1);
var iconcasa = new GIcon();
iconcasa.image = local+"static/images/iconos/c.png";
iconcasa.iconSize = new GSize(25, 37);
iconcasa.iconAnchor = new GPoint(6, 30);
iconcasa.infoWindowAnchor = new GPoint(5, 1);
var icontienda = new GIcon();
icontienda.image = local+"static/images/iconos/icontienda.png";
icontienda.iconSize = new GSize(25, 37);
icontienda.iconAnchor = new GPoint(6, 20);
icontienda.infoWindowAnchor = new GPoint(5, 1);
var icondepor = new GIcon();
icondepor.image = local+"static/images/iconos/icondepor.png";
icondepor.iconSize = new GSize(25, 37);
icondepor.iconAnchor = new GPoint(6, 20);
icondepor.infoWindowAnchor = new GPoint(5, 1);
var iconrest = new GIcon();
iconrest.image = local+"static/images/iconos/iconresta.png";
iconrest.iconSize = new GSize(25, 37);
iconrest.iconAnchor = new GPoint(6, 40);
iconrest.infoWindowAnchor = new GPoint(5, 1);
var iconah = new GIcon();
iconah.image = local+"static/images/iconos/iconah.png";
iconah.iconSize = new GSize(25, 37);
iconah.iconAnchor = new GPoint(6, 40);
iconah.infoWindowAnchor = new GPoint(5, 1);
var iconplaya = new GIcon();
iconplaya.image = local+"static/images/iconos/iconplaya.png";
iconplaya.iconSize = new GSize(20, 29);
iconplaya.iconAnchor = new GPoint(6, 20);
iconplaya.infoWindowAnchor = new GPoint(85, 1);
var iconPointer = new GIcon();
iconPointer.image = local+"static/images/iconos/mm_50_green.png";
iconPointer.iconSize = new GSize(20, 34);
iconPointer.iconAnchor = new GPoint(6, 20);
iconPointer.infoWindowAnchor = new GPoint(85, 1);


var customIcons = [];

customIcons["pueblo"] = iconpueblo;
customIcons["20"] = iconhostal;
customIcons["21"] = iconh;
customIcons["33"] = iconcasa;
customIcons["29"] = iconcamping;
customIcons["35"] = iconru;
customIcons["34"] = iconinmo;
customIcons["11"] = icondepor;
customIcons["18"] = icontienda;
customIcons["19"] = iconah;
customIcons["5"] = iconrest;
customIcons["playa"] = iconplaya;
customIcons["pointer"] = iconPointer;

function incluirEstables(){
	GDownloadUrl(local+"includes/mapa/genxmlEstable/", function(data) {
        var xml = GXml.parse(data);
        markers = xml.documentElement.getElementsByTagName("marker");
		  for (var i = 0; i < markers.length; i++) {
          var valor = markers[i].getAttribute("valor");
          var direccion = markers[i].getAttribute("direccion");
		  var url = markers[i].getAttribute("url");
          var type = markers[i].getAttribute("type");
          var telefono = markers[i].getAttribute("telefono"); 
          var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
                                  parseFloat(markers[i].getAttribute("lng"))); 

          map.addOverlay(addMarker(point, valor, direccion, url, type,telefono)); 
        }
      });
}
function incluirPlayas(){
	GDownloadUrl(local+"includes/mapa/genxmlPlayas/", function(data) {
        var xml = GXml.parse(data);
        markers = xml.documentElement.getElementsByTagName("marker");

        for (var i = 0; i < markers.length; i++) {
          var id = markers[i].getAttribute("id");
          var nombre = markers[i].getAttribute("valor");
		  var descripcion = markers[i].getAttribute("descripcion");
		  var orden = markers[i].getAttribute("orden");	

          var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
                                  parseFloat(markers[i].getAttribute("lng")));
          map.addOverlay(addMarkerPlaya(point, id, nombre,  descripcion, orden));
        }
      });
}
function incluirPueblos(){
	GDownloadUrl(local+"includes/mapa/genxmlPueblos/", function(data) {
        var xml = GXml.parse(data);
        markers = xml.documentElement.getElementsByTagName("marker");
	
		  for (var i = 0; i < markers.length; i++) {
          var id = markers[i].getAttribute("id");
          var nombre = markers[i].getAttribute("valor");
		  var descripcion = markers[i].getAttribute("descripcion");
          var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
                                  parseFloat(markers[i].getAttribute("lng")));
          map.addOverlay(addMarkerPueblo(point, id, nombre,  descripcion));
        }
      });
}
function controles(){
	map.addControl(new GMapTypeControl());
    map.addControl(new GLargeMapControl());
    map.addControl(new GScaleControl());
    map.addControl(new GOverviewMapControl());
    map.addMapType(G_NORMAL_MAP);
	map.addMapType(G_PHYSICAL_MAP);
    map.addControl(new GMapTypeControl());
    map.setMapType(G_NORMAL_MAP);
}
function poliLineas(){
	if (GBrowserIsCompatible()) {
		var polyOptions = {
			geodesic: true
		};
		var polyline = new GPolyline([new GLatLng(37.047504, -1.862182), 
		new GLatLng(37.0444907193944, -1.820640563964843), 
		new GLatLng(36.9400138143685, -1.864242553710937), 
		new GLatLng(36.8285236019376, -1.962432861328125), 
		new GLatLng(36.7130176877545, -2.086372375488281), 
		new GLatLng(36.6915474354726, -2.163276672363232), 
		new GLatLng(36.7130176877545, -2.240524291992187), 
		new GLatLng(36.80653589302555, -2.34283447265625), 
		new GLatLng(36.82769917684918, -2.30987548828125), ], "#ff0000", 2, 1, polyOptions);
		map.addOverlay(polyline);
	}

}
function Markers(type){
 	      if (document.getElementById(type).checked == false) { // hide the marker
                for (var i = 0; i < gmarkers.length; i++) {
					if (gmarkers[i].type== type) {
						map.removeOverlay(gmarkers[i]);
                    }
                }
            }
            else { // show the marker again
                for (var i = 0; i < gmarkers.length; i++) {
                    if (gmarkers[i].type == type) {
                        map.addOverlay(gmarkers[i]);
                    }
                }
            }
        }

function addMarkerPueblo(point, id, nombre,descripcion){
	bounds.extend(point);
	var icon = customIcons["pueblo"];

	var marker = new GMarker(point,icon);
	gmarkers.push(marker);
	marker.type = "pueblo";
	var html = 	"<div id=\"bocadilloMapa\">" +
	"<div id=\"tituloMapa\">" +	
		"<a class=\"negro\"><h2>"+nombre+"</h2></a>"+
	"</div>" +
	"<div id=\"infoMapa\">" +
			"<img class=\"imagenMapa\" src=\""+local+"static/fotos/pueblos/"+id+"/150/"+imagenesArrayPueblos[id]+"\"/>" +
			descripcion +"<br><a href=\""+local+"servicios/pueblo/"+id+"\">ver mas...</a>"+
	"</div>" +
"</div>";
	GEvent.addListener(marker, "click", function(){
		marker.openInfoWindowHtml(html);
	});
	return marker;
}
function addMarkerPlaya(point, id, nombre,descripcion, orden){
	bounds.extend(point);
	var icon = customIcons["playa"];
	var marker = new GMarker(point, icon);
	gmarkers.push(marker);
	marker.type="playa";
	var html = "<div id=\"bocadilloMapa\">" +"<div id=\"tituloMapa\">" +	
						"<a class=\"negro\"><h2>"+nombre+"</h2></a>"+
					"</div>" +
					"<div id=\"infoMapa\">" +
							"<img class=\"imagenMapa\" src=\""+local+"static/fotos/playas/"+id+"/150/"+imagenesArrayPlayas[id]+"\"/>" +
							descripcion +"<br><a href=\""+local+"servicios/playa/"+id+"\">ver mas...</a>"+
					"</div>" +
				"</div>";
	GEvent.addListener(marker, "click", function(){	marker.openInfoWindowHtml(html);
	});
	return marker;
}
function addMarker(point, valor, direccion, url, type,telefono)  {
   bounds.extend(point);
   var icon = customIcons[type];
   var marker = new GMarker(point, icon);
   marker.type=type;
   gmarkers.push(marker);
   var html = "<div style=\"color: #000\"><b>" + valor + "</b> <br>" + direccion + "<br><a href=\"http://" 
   + url + "\" style=\"color: #000\">" + url + "</a><br/>"+telefono+"<br></div><br>";
   GEvent.addListener(marker, "click", function(){ marker.openInfoWindowHtml(html);
   });
   return marker;
}	  
function CustomGetTileUrl(a,b) {
	//alert(a.x+" "+a.y+" "+b);
	var f = local+"static/maps/"+(a.x)+"_"+(a.y)+"_"+(b)+".png";
	return f;
}
function makeMap(){
	map = new GMap2(document.getElementById("map"));
	map.setCenter(new GLatLng(36.8455871971771, -2.101505398750305), 11);
	controles();
/*	var copyCollection = new GCopyrightCollection('Chart');
		var copyright = new GCopyright(1, new GLatLngBounds(new GLatLng(-36.8455871971771, 2.101505398750305), new GLatLng(36.8455871971771, -2.101505398750305)), 0, "indaloweb.com");
		copyCollection.addCopyright(copyright);
		//los siguientes dos valores ponen el tamaño de la barra del zoom
		var tilelayers = [new GTileLayer(copyCollection, 0, 18)];

		tilelayers[0].getTileUrl = CustomGetTileUrl;
			
		var custommap = new GMapType(tilelayers, new GMercatorProjection(190), "Chart", {errorMessage:"No chart data available"});
		map.addMapType(custommap);//el numero de GMercatorProjection indica donde se situara
		*/
	incluirPueblos();
	incluirEstables();
	incluirPlayas()
	poliLineas();

}	
function makeMapCasa(){
	map = new GMap2(document.getElementById("mapaCasa"));
	map.setCenter(new GLatLng(lat, lng), 15);
	 map.addOverlay(new GMarker(new GLatLng(lat,lng), iconPointer));
	controles();
    map.setMapType(G_SATELLITE_MAP);
	incluirPlayas();
	incluirPueblos();
	poliLineas();

}	
function makeMapPueblo(){
	map = new GMap2(document.getElementById("map2"));
	map.setCenter(new GLatLng(lat, lng), 16);
	controles();
	incluirEstables();
	incluirPlayas();
	incluirPueblos();
	poliLineas();
}	
function makeMapPlaya(){
	map = new GMap2(document.getElementById("map2"));
	map.setCenter(new GLatLng(lat, lng), 14);
	controles();
    map.setMapType(G_SATELLITE_MAP);
	incluirPlayas();
	poliLineas();
}
function makeMapPlayas(){
	map = new GMap2(document.getElementById("map2"));
	map.setCenter(new GLatLng(36.8455871971771, -2.101505398750305), 11);
	controles();
	incluirPlayas();
	poliLineas();
}

function load(lat,lng,idCliente){
    var map = new GMap2(document.getElementById("mapa"+idCliente),{ size: new GSize(540,400)} );
    map.setCenter(new GLatLng(lat,lng), 16);

    map.addControl(new GMapTypeControl());
    map.addControl(new GLargeMapControl());
    map.addControl(new GScaleControl());
    map.addControl(new GOverviewMapControl());
    map.addMapType(G_HYBRID_MAP);
	map.addMapType(G_PHYSICAL_MAP);
  map.addControl(new GMapTypeControl());
  map.setMapType(G_HYBRID_MAP);
}
