var map;
var mini;
var gdir;
var geocoder = null;
var addressMarker;
var directions;
var _coordenadas;
var myPano;
var panoClient;
var nextPanoId;
var puntos_pistas = [];
var provinciaSel;
provinciaSel = '';
var latitud;
var longitud;
var zoom;
var puntos_provincia1 = [];
var puntos_provincia2 = [];
var puntos_provincia3 = [];
var puntos_provincia4 = [];
var puntos_empresas = [];
var array_nomProvincia = [];
var array_longitud_centro = [];
var array_latitud_centro = [];
var array_estado = [];
var array_poslluvia = [];
var array_maxima = [];
var array_minima = [];

//<![CDATA[

function load(idprovincia)
{
	if(GBrowserIsCompatible())
	{
	
		map = new GMap2(document.getElementById("maparea"));
		map.setMapType(G_PHYSICAL_MAP);
		map.addControl(new GLargeMapControl());
        map.enableDoubleClickZoom();
        map.enableContinuousZoom();

		if(puntos_provincia2.length > 0)
		{
			var polyline2 = new GPolyline(puntos_provincia2, "#ff0000", 2);
			map.addOverlay(polyline2);
		}
		if(puntos_provincia3.length > 0)
		{
			var polyline3 = new GPolyline(puntos_provincia3, "#ff0000", 2);
			map.addOverlay(polyline3);
		}
		if(puntos_provincia4.length > 0)
		{
			var polyline4 = new GPolyline(puntos_provincia4, "#ff0000", 2);
			map.addOverlay(polyline4);
		}
		if(puntos_provincia1.length > 0)
		{
			var polyline1 = new GPolyline(puntos_provincia1, "#ff0000", 2);
			map.addOverlay(polyline1);
		}

		GEvent.addListener(map, "click", function(overlay,latlng)
		{
			map.setCenter(latlng)
		});

		GEvent.addListener(map, "zoomend", function(overlay,latlng)
		{
		});

		geocoder = new GClientGeocoder();

		var ov = new GOverviewMapControl();
		ov.setMapType(G_PHYSICAL_MAP);
		map.addControl(ov);

		if(idprovincia != 0)
		{
			var rec = new GBounds(puntos_provincia1);
			var sw = new GLatLng(rec.minY, rec.minX);
			var ne = new GLatLng(rec.maxY, rec.maxX);
			var bound = new GLatLngBounds(sw, ne);
			map.setCenter(bound.getCenter());
			var size = map.getSize();
			var z = map.getBoundsZoomLevel(bound, size);
			map.setZoom(z);
		}
		else
		{
			var points = [];
			points.push(new GLatLng(43.94537239244209,-9.51416015625));
			points.push(new GLatLng(43.213183300,4.64296875));
			points.push(new GLatLng(35.2276723549,3.7353515625));
			points.push(new GLatLng(35.15584370226544,-9.931640625));
			var rec = new GBounds(points);
			var sw= new GLatLng(rec.minY, rec.minX);
			var ne= new GLatLng(rec.maxY, rec.maxX);
			var bound = new GLatLngBounds(sw, ne);
			map.setCenter(bound.getCenter());
			var size = map.getSize();
			var z = map.getBoundsZoomLevel(bound, size);
			map.setZoom(z);
			map.setCenter(new GLatLng(39.84654412118006 , -3.19140625));
			map.setZoom(6);
		}
		map.enableContinuousZoom();
		refrescarTiempo(idprovincia);
	}
}

function descargarPuntos()
{
	map.clearOverlays();
}

function refrescarTiempo(idprovincia)
{
	//descargarPuntos()
	var posiciones_mapa = new GLatLngBounds();
	posiciones_mapa = map.getBounds();
	//alert(idprovincia)
	if(idprovincia != 0)
	{
		cargarTiempoPoblaciones(idprovincia);
	}
	else
	{
		cargarTiempoProvincias();
	}
}

function cargarTiempoGeneral(nompoblacion)
{
	GDownloadUrl("../xml/eltiempo_poblaciones.xml", function(data)
	{
		var xml = GXml.parse(data);
		var markers = xml.documentElement.getElementsByTagName("marker");
		
		for (var i = 0; i < markers.length; i++)
		{
			//alert(idprovincia);
			//alert(markers[i].getAttribute("nomprovincia"));
			if (markers[i].getAttribute("nompoblacion") == 'Elciego')
			{
				var lat = markers[i].getAttribute("lat");
				var lng = markers[i].getAttribute("lng");
				var tiempo = markers[i].getAttribute("tiempo");
				var precipitacion =  markers[i].getAttribute("precipitacion");
				var cota =  markers[i].getAttribute("cota");
				var max =  markers[i].getAttribute("max");
				var min =  markers[i].getAttribute("min");
				var nomprovincia =  markers[i].getAttribute("nompoblacion");
				//var point = new GLatLng(parseFloat(markers[i].getAttribute("lng")),parseFloat(markers[i].getAttribute("lat")));
				//var marker = createMarker(point, tiempo, precipitacion,cota,max,min,nomprovincia)
				//map.addOverlay(marker);
				//var point = parseFloat(markers[i].getAttribute("tiempo"))
			}
		}
		var icon
		switch(tiempo)
		{
			case "Cielo despejado":
				icon = "http://www.laguiadetelefonos.es/css/eltiempo/despejado.png";
				break;
			case "Poco nuboso":
				icon = "http://www.laguiadetelefonos.es/css/eltiempo/poconuboso.png";
				break;
			case "Intervalos nubosos":
				icon = "http://www.laguiadetelefonos.es/css/eltiempo/intervalosnubosos.png";
				break;
			case "Nuboso":
				icon = "http://www.laguiadetelefonos.es/css/eltiempo/nuboso.png";
				break;
			case "Muy nuboso":
				icon = "http://www.laguiadetelefonos.es/css/eltiempo/muynuboso.png";
				break;
			case "Cubierto":
				icon = "http://www.laguiadetelefonos.es/css/eltiempo/cubierto.png";
				break;
			case "Intervalos nubosos con lluvia":
				icon = "http://www.laguiadetelefonos.es/css/eltiempo/intervalosnubososconlluvia.png";
				break;
			case "Nuboso con lluvia":
				icon = "http://www.laguiadetelefonos.es/css/eltiempo/nubosoconlluvia.png";
				break;
			case "Muy nuboso con lluvia":
				icon = "http://www.laguiadetelefonos.es/css/eltiempo/muynubosoconlluvia.png";
				break;
			case "Cubierto con lluvia":
				icon = "http://www.laguiadetelefonos.es/css/eltiempo/cubiertoconlluvia.png";
				break;
			case "Intervalos nubosos con nieve":
				icon = "http://www.laguiadetelefonos.es/css/eltiempo/intervalosnubososconnieve.png";
				break;
			case "Nuboso con nieve":
				icon = "http://www.laguiadetelefonos.es/css/eltiempo/nubosoconnieve.png";
				break;
			case "Muy nuboso con nieve":
				icon = "http://www.laguiadetelefonos.es/css/eltiempo/muynubosoconnieve.png";
				break;
			case "Cubierto con nieve":
				icon = "http://www.laguiadetelefonos.es/css/eltiempo/cubiertoconnieve.png";
				break;
		}
		document.write('<img src="'+icon+'"> '+tiempo);
	});
}

function cargarTiempoPoblaciones(idprovincia)
{
	GDownloadUrl("../xml/eltiempo_poblaciones.xml", function(data)
	{
		var xml = GXml.parse(data);
		var markers = xml.documentElement.getElementsByTagName("marker");
	
		for (var i = 0; i < markers.length; i++)
		{
			//alert(idprovincia);
			//alert(markers[i].getAttribute("nomprovincia"));
			if (markers[i].getAttribute("idprovincia") == idprovincia)
			{
				var lat = markers[i].getAttribute("lat");
				var lng = markers[i].getAttribute("lng");
				var tiempo = markers[i].getAttribute("tiempo");
				var precipitacion =  markers[i].getAttribute("precipitacion");
				var cota =  markers[i].getAttribute("cota");
				var max =  markers[i].getAttribute("max");
				var min =  markers[i].getAttribute("min");
				var nomprovincia =  markers[i].getAttribute("nompoblacion");
				var point = new GLatLng(parseFloat(markers[i].getAttribute("lng")),parseFloat(markers[i].getAttribute("lat")));
				var marker = createMarker(point, tiempo, precipitacion,cota,max,min,nomprovincia);
				map.addOverlay(marker);
			}
		}
	});
}

function mostrarAlojamientos(idprovincia)
{
	var posiciones_mapa = new GLatLngBounds();
	posiciones_mapa = map.getBounds();
	//if (map.getZoom() >= 9)
	//{
		//descargarPuntos();
		//cargarPuntosPistas();
		cargarAlojamientos(idprovincia,posiciones_mapa.getSouthWest().lat(),posiciones_mapa.getSouthWest().lng(),posiciones_mapa.getNorthEast().lat(),posiciones_mapa.getNorthEast().lng());
	//}
}

function cargarTiempoProvincias()
{
	GDownloadUrl("../xml/eltiempo_provincias.xml", function(data)
	{
		var xml = GXml.parse(data);
		var markers = xml.documentElement.getElementsByTagName("marker");
		
		for (var i = 0; i < markers.length; i++)
		{
			var lat = markers[i].getAttribute("lat");
			var lng = markers[i].getAttribute("lng");
			var tiempo = markers[i].getAttribute("tiempo");
			var precipitacion =  markers[i].getAttribute("precipitacion");
			var cota =  markers[i].getAttribute("cota");
			var max =  markers[i].getAttribute("max");
			var min =  markers[i].getAttribute("min");
			var nomprovincia =  markers[i].getAttribute("nomprovincia");
			var point = new GLatLng(parseFloat(markers[i].getAttribute("lng")),parseFloat(markers[i].getAttribute("lat")));
			var marker = createMarker(point, tiempo, precipitacion,cota,max,min,nomprovincia);
			map.addOverlay(marker);
		}
	});
}

function createMarker(point, tiempo, precipitacion,cota,max,min,nomprovincia)
{
	var icon = new GIcon();
	switch(tiempo)
	{
		case "Cielo despejado":
			icon.image = "http://www.laguiadetelefonos.es/css/aemet/despejado.png";
			break;
		case "Poco nuboso":
			icon.image = "http://www.laguiadetelefonos.es/css/aemet/poconuboso.png";
			break;
		case "Intervalos nubosos":
			icon.image = "http://www.laguiadetelefonos.es/css/aemet/intervalosnubosos.png";
			break;
		case "Nuboso":
			icon.image = "http://www.laguiadetelefonos.es/css/aemet/nuboso.png";
			break;
		case "Muy nuboso":
			icon.image = "http://www.laguiadetelefonos.es/css/aemet/muynuboso.png";
			break;
		case "Cubierto":
			icon.image = "http://www.laguiadetelefonos.es/css/aemet/cubierto.png";
			break;
		case "Intervalos nubosos con lluvia":
			icon.image = "http://www.laguiadetelefonos.es/css/aemet/intervalosnubososconlluvia.png";
			break;
		case "Nuboso con lluvia":
			icon.image = "http://www.laguiadetelefonos.es/css/aemet/nubosoconlluvia.png";
			break;
		case "Muy nuboso con lluvia":
			icon.image = "http://www.laguiadetelefonos.es/css/aemet/muynubosoconlluvia.png";
			break;
		case "Cubierto con lluvia":
			icon.image = "http://www.laguiadetelefonos.es/css/aemet/cubiertoconlluvia.png";
			break;
		case "Intervalos nubosos con nieve":
			icon.image = "http://www.laguiadetelefonos.es/css/aemet/intervalosnubososconnieve.png";
			break;
		case "Nuboso con nieve":
			icon.image = "http://www.laguiadetelefonos.es/css/aemet/nubosoconnieve.png";
			break;
		case "Muy nuboso con nieve":
			icon.image = "http://www.laguiadetelefonos.es/css/aemet/muynubosoconnieve.png";
			break;
		case "Cubierto con nieve":
			icon.image = "http://www.laguiadetelefonos.es/css/aemet/cubiertoconnieve.png";
			break;
	}
	icon.iconAnchor = new GPoint(16, 16);
	icon.infoWindowAnchor = new GPoint(16, 0);
	icon.iconSize = new GSize(32, 32);
	
	// Set up our GMarkerOptions object  
	var marker = new GMarker(point, {icon: icon, zIndexProcess:orderOfCreation});
	var tempo;

	GEvent.addListener(marker, "click", function()
	{
		tempo = '<div style="position:relative;float:left;height:90px;overflow:hidden;"><b>' + nomprovincia + ' - ' + tiempo + '</b><br/><br/>Prob. de precipitaciones (%) : ' + precipitacion
		tempo = tempo + '<br/>Cota de nieve : ' + cota + 'm'
		tempo = tempo + '<br/>Temperatura Max. : ' + max + ' (ºC)'
		tempo = tempo + '<br/>Temperatura Min. : ' + min + ' (ºC)'
		tempo = tempo + '</div>'
		marker.openInfoWindow(tempo, {maxWidth: 220});
	});
	return marker;
}

function cargarAlojamientos(id, x1, y1, x2, y2)
{
	cargarAlojamientos_ficha(id,x1,y1,x2,y2);
	var rural;
	var parques;
	var activo;
	var gastronomia;
	var hotel;
	var artesania;
	if(window.XMLHttpRequest)
	{
		objXml2 = new XMLHttpRequest(); //Gecko (Firefox, Moz), KHTML (Konqueror, Safari), Opera
	}
	else if(window.ActiveXObject)
	{
		objXml2 = new ActiveXObject("Microsoft.XMLHTTP"); //Internet Explorer		
	}		

	rural = true;
	parques = true;
	activo = true;
	gastronomia = true;
	hotel = true;
	artesania = true;

	objXml2.open("GET", "/cargaAlojamientos.asp?x1=" + x1 + "&y1=" + y1 + "&x2=" + x2 + "&y2=" + y2 + "&rural=" + rural + "&parques=" + parques + "&activo=" + activo + "&gastronomia=" + gastronomia + "&hotel=" + hotel + "&artesania=" + artesania + "&id=" + id  , true);  

	objXml2.onreadystatechange = function()
	{
		if (objXml2.readyState == 4)
		{
			  dat_localizaciones = objXml2.responseText;
			  dat_localizaciones = eval ('({"localizaciones":[' + dat_localizaciones + ']})');
			  mostrar_iconos();
		}
	}
	objXml2.send(null);
}

function mostrar_iconos()
{
	var i = 0;
	while (i < dat_localizaciones.localizaciones.length)
	{
		puntos_empresas.push(new GLatLng(dat_localizaciones.localizaciones[i].latitud,dat_localizaciones.localizaciones[i].longitud));

		var latlng = new GLatLng(dat_localizaciones.localizaciones[i].latitud, dat_localizaciones.localizaciones[i].longitud);
		var marker = createMarker2(0,latlng, i, dat_localizaciones.localizaciones[i].actividad, dat_localizaciones.localizaciones[i].nomcomercial, dat_localizaciones.localizaciones[i].descripcion, dat_localizaciones.localizaciones[i].foto, dat_localizaciones.localizaciones[i].idempresa, dat_localizaciones.localizaciones[i].idportal, dat_localizaciones.localizaciones[i].nombre_guiones)
		map.addOverlay(marker);

		var latlng2 = new GLatLng(dat_localizaciones.localizaciones[i].latitud, dat_localizaciones.localizaciones[i].longitud);
		var marker = createMarker2(1,latlng2, i, "resaltado", dat_localizaciones.localizaciones[i].nomcomercial, dat_localizaciones.localizaciones[i].descripcion, dat_localizaciones.localizaciones[i].foto, dat_localizaciones.localizaciones[i].idempresa, dat_localizaciones.localizaciones[i].idportal, dat_localizaciones.localizaciones[i].nombre_guiones)
		map.addOverlay(marker);
		marker.hide();

		i = i + 1;
	} 
		
	if(puntos_empresas.length > 0)
	{
		var rec = new GBounds(puntos_empresas);
		var sw= new GLatLng(rec.minY, rec.minX);
		var ne= new GLatLng(rec.maxY, rec.maxX);
		var bound = new GLatLngBounds(sw, ne);
		map.setCenter(bound.getCenter());
		var size = map.getSize();
		var z = map.getBoundsZoomLevel(bound, size);
		map.setZoom(z);
	}
}

function cargarAlojamientos_ficha(id, x1, y1, x2, y2)
{
	var rural;
	var parques;
	var activo;
	var gastronomia;
	var hotel;
	var artesania;
	if(window.XMLHttpRequest)
	{
		objXml3 = new XMLHttpRequest(); //Gecko (Firefox, Moz), KHTML (Konqueror, Safari), Opera
		objXml3 = new XMLHttpRequest(); //Gecko (Firefox, Moz), KHTML (Konqueror, Safari), Opera
	}
	else if(window.ActiveXObject)
	{
		objXml3 = new ActiveXObject("Microsoft.XMLHTTP"); //Internet Explorer
	}

	rural = true;
	parques = true;
	activo = true;
	gastronomia = true;
	hotel = true;
	artesania = true;
	objXml3.open("GET", "/cargaAlojamientos_ficha.asp?x1=" + x1 + "&y1=" + y1 + "&x2=" + x2 + "&y2=" + y2 + "&rural=" + rural + "&parques=" + parques + "&activo=" + activo + "&gastronomia=" + gastronomia + "&hotel=" + hotel + "&artesania=" + artesania + "&id=" + id , true);
	
	objXml3.onreadystatechange = function()
	{
		if (objXml3.readyState == 4)
		{
			document.getElementById("establecimientos").innerHTML= objXml3.responseText;
		}
	}
	objXml3.send(null);
}

var gmarkers = [];
var gWHITEmarkers = [];

function createMarker2(zindex, point, index, actividad, nombre, descripcion, foto, idempresa, idportal, nombre_guiones)
{
	var icon = new GIcon();
	switch(actividad)
	{
		case "rural":
			icon.image = "http://www.laguiadetelefonos.es/css/callejero/icono_mapa_turismo_rural.png";
			break;
		case "parques":
			icon.image = "http://www.laguiadetelefonos.es/css/callejero/icono_mapa_ocio.png";
			break;
		case "activo":
			icon.image = "http://www.laguiadetelefonos.es/css/callejero/icono_mapa_turismo_activo.png";
			break;
		case "gastronomia":
			icon.image = "http://www.laguiadetelefonos.es/css/callejero/icono_mapa_restaurante.png";
			break;
		case "hotel":
			icon.image = "http://www.laguiadetelefonos.es/css/callejero/icono_mapa_hoteles.png";
			break;
		case "artesania":
			icon.image = "http://www.laguiadetelefonos.es/css/callejero/icono_mapa_artesania.png";
			break;
		case "resaltado":
			icon.image = "http://www.laguiadetelefonos.es/css/callejero/resaltado.png";
			break;
	}
	icon.iconAnchor = new GPoint(13, 16);
	icon.infoWindowAnchor = new GPoint(16, 0);
	icon.iconSize = new GSize(25, 33);
	// Set up our GMarkerOptions object  
	posicion=gWHITEmarkers.length+1;

	if(zindex == 0)
	{
		//marker normal
		var marker = new GMarker(point, {icon: icon, title: posicion});
	}
	else
	{
		//marker resaltado
		var marker = new GMarker(point, {icon: icon, title: posicion, zIndexProcess:orderOfCreation });
		GEvent.addListener(marker, "mouseout", function(overlay,point)
		{
			document.getElementById("est_" + this.getTitle()).style.backgroundColor='white';
			mOut(activo-1);
		});
	}
	var tempo;
	if(actividad=="resaltado")
	{
		gWHITEmarkers.push(marker);
	}
	var activo;

	GEvent.addListener(marker, "mouseover", function(overlay,point)
	{
		document.getElementById("est_" + this.getTitle()).style.backgroundColor='#CFEFFF';
		mOver(this.getTitle()-1);
		activo = this.getTitle();
	});

	GEvent.addListener(marker, "mouseout", function(overlay,point)
	{
		//document.getElementById("est_"+this.getTitle()).style.backgroundColor='white';
		//mOut(this.getTitle()-1);
	});

  	if (foto != '')
	{
  		foto = '<img src=' + foto + ' height=\'70\' style="position:relative;float:left;padding:6px;" />'
  	}
	
	GEvent.addListener(marker, "click", function()
	{  	
		tempo = '<div style="position:relative;float:left;overflow:hidden;"><b>' + nombre + '</b><br />' + foto + '<div style="text-align:left;font-size:7pt;font-family:verdana;">' + descripcion + '<br/><a href="/' + nombre_guiones + '.html?id' + idempresa + '-ip' + idportal + '">Ver ficha</a></div></div>'  	
		marker.openInfoWindow(tempo, {maxWidth:220});
	});
	return marker;
}

function orderOfCreation(marker, b)
{
	return 1;
}
		
function mOver(i)
{
	gWHITEmarkers[i].show();
}

function mOut(i)
{ //,colname
	gWHITEmarkers[i].hide();
}

function resalta(i)
{
	document.getElementById("est_"+i).style.backgroundColor = '#CFEFFF';
}

function quita(i)
{
	document.getElementById("est_"+i).style.backgroundColor = 'white';
}
//]]>
