var map;
var mini;
var gdir;
var geocoder = null;
var addressMarker;
var directions;

var myPano;   
var panoClient;
var nextPanoId;

var puntoActual

function load(lon_us,lat_us,zoom)
{
	if(GBrowserIsCompatible())
	{
		map = new GMap2(document.getElementById("maparea"));
		map.addControl(new GLargeMapControl());
		map.enableDoubleClickZoom()
		map.enableContinuousZoom()				
		map.addControl(new GLargeMapControl());
		map.enableDoubleClickZoom()
    	map.enableContinuousZoom()
	    var fenwayPOV = {yaw:370.64659986187695,pitch:-20};
	    panoClient = new GStreetviewClient();      
	    
	    //GEvent.addListener(map, "zoomend", function(overlay,latlng)
		//{
			//var act_zoom = map.getZoom();
			//if(act_zoom >= 8)
			//{
				//mostrarAlojamientos()
				//document.getElementById('capa_zoom_inicial').style.visibility='hidden';
			//}
			//else
			//{
				//document.getElementById('capa_zoom_inicial').style.visibility='visible';
			//}
	    //});
	    
		//GEvent.addListener(map, "dragend", function()
		//{  
			//var act_zoom = map.getZoom();	       	 		
			//if (act_zoom >= 8)
			//{
				//mostrarAlojamientos()
				//document.getElementById('capa_zoom_inicial').style.visibility='hidden';
			//}
			//else
			//{
				//document.getElementById('capa_zoom_inicial').style.visibility='visible';
			//}
		//});
	    
		GEvent.addListener(map, "click", function(overlay,latlng)
		{  
		 	map.setCenter(latlng)			  
		 	//descargarPuntos()
			var marker = new GMarker(latlng);
			puntoActual = latlng;
	        map.addOverlay(marker);      
	        verCamara(latlng)
	    });
		
		myPano = new GStreetviewPanorama(document.getElementById("pano"));
		myPano.setLocationAndPOV(new GLatLng(39.84654412118006 , -3.69140625), fenwayPOV);
		//GEvent.addListener(myPano, "error", handleNoFlash);  
		panoClient.getNearestPanorama(new GLatLng(39.84654412118006 , -3.69140625), showPanoData);
			
		GEvent.addListener(myPano,"initialized",function(a)
		{        
			descargarPuntos()
			var marker = new GMarker(a.latlng);
			puntoActual = a.latlng;
			map.addOverlay(marker);  
		});
  
		geocoder = new GClientGeocoder();
		
		directionsPanel = document.getElementById("routeDescription");
		directions = new GDirections(map, directionsPanel);    		
		
		var ov = new GOverviewMapControl() 
		ov.setMapType(G_PHYSICAL_MAP) 
		map.addControl(ov) 	      
		
		map.setCenter(new GLatLng(41.658686019484435 , -0.9228515625));
		map.setZoom(5)     
		
		puntoActual = new GLatLng(41.658686019484435 , -0.9228515625);
		
		//var svOverlay = new GStreetviewOverlay();
		//map.addOverlay(svOverlay);
		
		map.enableContinuousZoom()
	}
}

function verCamara(punto)
{
	panoClient.getNearestPanorama(punto, showPanoData);
	
}

function showPanoData(panoData)
{
    if (panoData.code != 200)
	{
		//GLog.write('showPanoData: Server rejected with code: ' + panoData.code);      
		//document.getElementById('pano').innerHTML = 'No existe vista fotografica de ese punto por el monento'
		document.getElementById('maparea').style.width='684px';
		map.checkResize();
		document.getElementById('pano').style.display='none';
		return;
    }
	myPano.setLocationAndPOV(panoData.location.latlng);
	document.getElementById('maparea').style.width='334px';
	map.checkResize();
	//descargarPuntos()

	map.setCenter(puntoActual);
	document.getElementById('pano').style.display='block';
}

//function ampliarStreetview()
//{
    //var fenwayPOV = {yaw:370.64659986187695,pitch:-20};
    
    //document.getElementById('pano').style.position='absolute';
    //document.getElementById('pano').style.top='290px';
    //document.getElementById('pano').style.left='130px';
    //document.getElementById('pano').style.width='800px';
    //document.getElementById('pano').style.height='430px';
    //document.getElementById('reducirfoto').style.display='block';
    //document.getElementById('ampliarfoto').style.display='none';
    //document.getElementById('ampliarfoto').style.visibility='hidden';
    
    //myPano = new GStreetviewPanorama(document.getElementById("pano"));
    //panoClient.getNearestPanorama(puntoActual, showPanoData);
    //myPano.setLocationAndPOV(puntoActual, fenwayPOV);

//}

//function reducirStreetview()
//{
    //var fenwayPOV = {yaw:370.64659986187695,pitch:-20};
    
    //document.getElementById('pano').style.position='relative';
    //document.getElementById('pano').style.float='left';
    //document.getElementById('pano').style.top='0px';
    //document.getElementById('pano').style.left='0px';
    //document.getElementById('pano').style.width='380px';
    //document.getElementById('pano').style.height='250px';
    //document.getElementById('ampliarfoto').style.display='block';
    //document.getElementById('reducirfoto').style.display='none';
    //document.getElementById('ampliarfoto').style.visibility='visible';
    //myPano = new GStreetviewPanorama(document.getElementById("pano"));
    //panoClient.getNearestPanorama(puntoActual, showPanoData);
    //myPano.setLocationAndPOV(puntoActual, fenwayPOV);

//}

function mostrarAlojamientos()
{
	document.getElementById('cargando').style.visibility='visible';	
	var posiciones_mapa = new GLatLngBounds();
	posiciones_mapa = map.getBounds();
	var act_zoom = map.getZoom();	
	if (act_zoom >= 8)
	{				 	
		descargarPuntos();
		cargarAlojamientos(posiciones_mapa.getSouthWest().lat(),posiciones_mapa.getSouthWest().lng(),posiciones_mapa.getNorthEast().lat(),posiciones_mapa.getNorthEast().lng())						    	
	}
}

function descargarPuntos()
{
	map.clearOverlays();
	//var svOverlay = new GStreetviewOverlay();
	//map.addOverlay(svOverlay);
}

function cargarAlojamientos(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 = document.getElementById('rural').checked
	parques = document.getElementById('parques').checked
	activo = document.getElementById('activo').checked
	gastronomia = document.getElementById('gastronomia').checked
	hotel = document.getElementById('hotel').checked
	artesania = document.getElementById('artesania').checked
	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  , true);  
	
	objXml2.onreadystatechange=function()
	{
		if (objXml2.readyState==4)
		{
			  dat_localizaciones = objXml2.responseText;
			  dat_localizaciones = eval ('({"localizaciones":[' + dat_localizaciones + ']})');				
			  mostrar_iconos(); 								
		}
	} 
	objXml2.send(null);		
}

function createMarker(point, index, actividad,nombre,descripcion,foto,nombre_guiones,idportal,idempresa)
{	
	var icon = new GIcon();
	icon.image = "http://www.elanuario.net/css/imagenes/posicion.png";
	icon.iconAnchor = new GPoint(16, 16);
	icon.infoWindowAnchor = new GPoint(16, 0);
	icon.iconSize = new GSize(25, 33);

	// Set up our GMarkerOptions object  
	var marker = new GMarker(point, { icon: icon });
	var tempo;  	
	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;height:130px;overflow:hidden;text-align:center;"><div style="position:relative;float:left;width:100%;text-align:center;"><b>' + nombre + '</b><br/>' + foto + '</div><div style="text-align:left;font-size:7pt;font-family:verdana;"><a href="/'+nombre_guiones+'.html?id'+idempresa+'-ip'+idportal+'" >m&aacute;s informaci&oacute;n</a></div></div>'  	    
		marker.openInfoWindow(tempo,{maxWidth:220});
	});
	return marker;
}

function mostrar_iconos()
{    		 		
	var i = 0;             
	while(i<dat_localizaciones.localizaciones.length)
	{ 	    	  
		var latlng = new GLatLng(dat_localizaciones.localizaciones[i].latitud, dat_localizaciones.localizaciones[i].longitud);
		map.addOverlay(createMarker(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].nombre_guiones, dat_localizaciones.localizaciones[i].idportal, dat_localizaciones.localizaciones[i].idempresa));		 
		i = i + 1;
	}   			
	document.getElementById('cargando').style.visibility='hidden'; 		     		
}

function showAddress(address)
{
	if(geocoder)
	{
		geocoder.getLatLng(
			address,
      		function(point)
			{
        		if(!point)
				{
          			alert(address + " no encontrada");
        		}
				else
				{
					geocoder.getLocations(point, showAddress2);
				}
			}
		);
	}
}

function showAddress2(address2)
{
	place = address2.Placemark[0];
	point = new GLatLng(place.Point.coordinates[1], place.Point.coordinates[0]);
	map.setCenter(point);			  
	//descargarPuntos()
	puntoActual = point;
	var icon = new GIcon();
	icon.image = "http://www.elanuario.net/css/imagenes/posicion.png";
	icon.iconAnchor = new GPoint(16, 16);
	icon.infoWindowAnchor = new GPoint(16, 0);
	icon.iconSize = new GSize(25, 33);
	var marker = createMarker(point,'', icon)
	map.addOverlay(marker);
	verCamara(point);
	map.setCenter(point, 13);
	//cargarTrafico(place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.LocalityName.replace("ñ", "n"));
}

function setDirections(fromAddress, toAddress, locale)
{
	//alert(fromAddress);
	directions.load("from: " + fromAddress + " to: " + toAddress, { "locale": locale });
}

function setDirectionsParada(fromAddress, toAddress, toParada, locale)
{
	//alert(fromAddress);
	directions.load("from: " + fromAddress + " to: " + toParada + " to: " + toAddress, { "locale": locale });
}

function cargarTrafico(dir)
{
	if(window.XMLHttpRequest)
	{
		objXml = new XMLHttpRequest(); // Gecko (Firefox, Moz), KHTML (Konqueror, Safari), Opera
	}
	else if(window.ActiveXObject)
	{
		objXml = new ActiveXObject("Microsoft.XMLHTTP"); // Internet Explorer		
	}					
	
	objXml.open("GET", "/ajax/cargarTrafico.asp?dir=" + dir, true);  
	objXml.onreadystatechange = function()
	{
		if(objXml.readyState == 4)
		{
			document.getElementById("noticias_trafico").innerHTML = objXml.responseText; 
		}
	} 
	objXml.send(null);	
}

