/*************************************************/
/** Funciones para 'donde estoy elegir parada' ***/
/*************************************************/

var g_marcadores = new Array();

function enviarLatitudLongitud(mapa,idLatitud,idLongitud,idClaveParada){
    nLatitud = document.getElementById(idLatitud);
    nLongitud = document.getElementById(idLongitud); 
    nClaveParada = document.getElementById(idClaveParada);   
    centrarMapa(mapa,nLatitud.value,nLongitud.value);
    
    var id = "parada"+nClaveParada.value;    
    
    var marker = g_marcadores[id]["marker"];
    var contenido = g_marcadores[id]["contenido"];
    marker.openInfoWindowHtml(contenido);     
}

function centrarMapa(mapa,latitud,longitud){ 

	mapa.setCenter(new GLatLng(latitud, longitud), 16, G_NORMAL_MAP);         
    return false;
}

function createMarker(clave,point,icon,contenido) {  
    var marker = new GMarker(point,icon);   
    GEvent.addListener(marker, 'click', function() {                      
        marker.openInfoWindowHtml(contenido); 
    });    
  return marker; 
} 

function devolverIconoParada(){
   var icon = new GIcon();       
      icon.image = "img/ico/bus_sombra.png";         
      icon.iconSize = new GSize(33, 33);         
      icon.iconAnchor = new GPoint(6, 10);
      icon.infoWindowAnchor = new GPoint(5, 1);
  return icon;
}

function devolverIconoPuntoInteres(){
 var icon = new GIcon();
      icon.image = "img/ico/pinteres_sombra.png";         
      icon.iconSize = new GSize(36, 36);
      icon.iconAnchor = new GPoint(6, 20);
      icon.infoWindowAnchor = new GPoint(10, 1);
  return icon;
}
      
function pintarParadaEnMapa(clave,mapa,la,lo,contenido,tipoIcono){                                
      var longitud  =  lo ;
      var latitud   =  la ;
      var map = mapa;
    
      var icono ;              
      if (tipoIcono == "parada"){
        icono = devolverIconoParada();             
      }
      else {            
        icono = devolverIconoPuntoInteres();                    
      }
      var point = new GLatLng(latitud, longitud); 
      var marker = createMarker (clave,point,icono,contenido); 
      map.addOverlay(marker,icono);       
      
      g_marcadores[clave] = { marker: marker, contenido: contenido };
      return false;
}
    
  
function seleccionarPunto(mapa, clave, latitud, longitud){    
	//desplegablePtoInteres.seleccionaPtoInteres( clave.split("_")[1], nombrePunto);
	centrarMapa(mapa,latitud,longitud);
	
	
	//var id = clave.split("_").join("");
	var id = "punto"+clave;
	var marker = g_marcadores[id]["marker"];
	
	var contenido = g_marcadores[id]["contenido"];
	marker.openInfoWindowHtml(contenido); 
}

function seleccionarParada(mapa, clave, latitud, longitud){    
	//desplegablePtoInteres.seleccionaPtoInteres( clave.split("_")[1], nombrePunto);
	centrarMapa(mapa,latitud,longitud);
	
	//var id = clave.split("_").join("");
	var id = "parada"+clave;
	var marker = g_marcadores[id]["marker"];
	
	var contenido = g_marcadores[id]["contenido"];
	marker.openInfoWindowHtml(contenido); 
}

/*************************************************/
/**************** Recorrido optimo  **************/
/*************************************************/


   //function devolverIconoParada(numero){
   function getIconoParada(numero){
       var icon = new GIcon();       
          icon.image = "img/ico/globo_rojo_"+numero+".png";
          icon.iconSize = new GSize(33, 33);         
          icon.iconAnchor = new GPoint(6, 10);
          icon.infoWindowAnchor = new GPoint(5, 1);
      return icon;
       
}

  // function devolverIconoPuntoInteres(numero){
   function getIconoPtoInteres(numero){
     var icon = new GIcon();
          icon.image = "img/ico/estrella_roja_"+numero+".png";         
          icon.iconSize = new GSize(42, 42);
          icon.iconAnchor = new GPoint(6, 20);
          icon.infoWindowAnchor = new GPoint(10, 1);
      return icon;
   }
    
   

function crearMarcador(clave,point,icon) {  
    var marker = new GMarker(point,icon);   
  return marker; 
}     
   

function situarParada(clave,mapa,la,lo,tipoIcono,numero){      
      var longitud  =  lo ;
      var latitud   =  la ;
      var map = mapa;
    
      var icono ;              
      if (tipoIcono == "parada"){
        icono = getIconoParada(numero);             
      }
      else {            
        icono = getIconoPtoInteres(numero);                    
      }
      var point = new GLatLng(latitud, longitud); 
      var marker = crearMarcador(clave,point,icono); 
      map.addOverlay(marker,icono);       

      return false;     
    }


/*************************************************/
/***** Controles para google maps customizados ***/
/*************************************************/


function CustomControls() {
}

CustomControls.prototype = new GControl();


 	CustomControls.prototype.initialize = function(map) {
  
	/* Flotante para la unidad de desplazamiento del mapa */
	/* Una unidad es la mitad del tamaño del mapa */
	var unidadDesplazamiento = 0.30;
	
	/* Capas con sus eventos */
	var container = document.createElement("div");
	container.className = "gmapsControls";
	
	var controlesMovimiento = document.createElement("div");
	controlesMovimiento.className = "controlesMovimiento";
	
	var controlesZoom = document.createElement("div");
	controlesZoom.className = "controlesZoom";
	
	var zoomInDiv = document.createElement("div");
	zoomInDiv.className = "zoomIn";	
		GEvent.addDomListener(zoomInDiv, "click", function() {
		map.zoomIn();
	});

	var zoomOutDiv = document.createElement("div");
	zoomOutDiv.className = "zoomOut";
	GEvent.addDomListener(zoomOutDiv, "click", function() {
		map.zoomOut();
	});
	
	controlesZoom.appendChild(zoomInDiv);
	controlesZoom.appendChild(zoomOutDiv);

	var moveUpDiv = document.createElement("div");
	moveUpDiv.className = "moveUp";
	GEvent.addDomListener(moveUpDiv, "click", function() {
		map.panDirection(0,unidadDesplazamiento);
	});

	var moveDownDiv = document.createElement("div");
	moveDownDiv.className = "moveDown";
	GEvent.addDomListener(moveDownDiv, "click", function() {
		map.panDirection(0,-unidadDesplazamiento);
	});
	
	var moveLeftDiv = document.createElement("div");
	moveLeftDiv.className = "moveLeft";
	GEvent.addDomListener(moveLeftDiv, "click", function() {
		map.panDirection(unidadDesplazamiento,0);
	});
	
	var voidDiv = document.createElement("div");
	voidDiv.className = "voidDiv";
	
	var moveRightDiv = document.createElement("div");
	moveRightDiv.className = "moveRight";
	GEvent.addDomListener(moveRightDiv, "click", function() {
		map.panDirection(-unidadDesplazamiento,0);
	});
	
	/* Insertamos las capas */
	controlesMovimiento.appendChild(moveUpDiv);
	controlesMovimiento.appendChild(moveDownDiv);
	controlesMovimiento.appendChild(moveLeftDiv);
	controlesMovimiento.appendChild(moveRightDiv);
	controlesMovimiento.appendChild(voidDiv);
	
	container.appendChild(controlesMovimiento);
	container.appendChild(controlesZoom)
	
	map.getContainer().appendChild(container);
		
	return container;
}

// Fijamos la posición de los controels
CustomControls.prototype.getDefaultPosition = function() {
  return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(7, 7));
}


 function cargamosPuntos(idioma,titul,p1,p2,parsentra,colores,c_parada,fijar_origen,fijar_destino,map,latitud,longitud) {
		  
 		var nodoBocadillo = document.createElement("div");
     	nodoBocadillo.className = "bocadilloMapa";
     	
     	var titulo = document.createElement("h1");
     	//var txtInTitulo = document.createTextNode("<fmt:message key="frontend.texto.parada_numero"/> <c:out value='${mapa.parada.claveParada}'/>");
     	var txtInTitulo = document.createTextNode(titul);
     	
     	titulo.appendChild(txtInTitulo);
     	
     	var parrafo1 = document.createElement("p");
     	parrafo1.id = "dir";
     	//var txtInP1 = document.createTextNode("<str:escape><c:out value='${mapa.parada.nombreLargoJs}'/></str:escape>");
     	var txtInP1 = document.createTextNode(p1);
     	parrafo1.appendChild(txtInP1);
     	
     	
     	var parrafo2 = document.createElement("p");
     	parrafo2.id = "titulo";
     	//var txtInP2 = document.createTextNode("<fmt:message key="frontend.texto.lineas_parada"/>");
     	var txtInP2 = document.createTextNode(p2);
     	parrafo2.appendChild(txtInP2);
     	
     	var listaLineas = document.createElement("ul");
     	listaLineas.className = "lineas";
     	
     	// Insertamos todas las lineas
     	
     	for (i=0;i<parsentra.length;i++){  
     		var li = document.createElement("li");
     		var span = document.createElement("span");
     		span.className = "circulo"+parsentra[i];
            span.style.backgroundColor = "#"+colores[i];
     		var anchor = document.createElement("a");
     		anchor.className = "lineaCirculo";
     		anchor.href= "lineas."+idioma+".svr?accion=entrada&cod_linea="+parsentra[i];
     		var textoInAnchor = document.createTextNode(parsentra[i]);
     		anchor.appendChild(textoInAnchor);
     		span.appendChild(anchor);
     		li.appendChild(span);
     		listaLineas.appendChild(li);     	
     	}	
     	
     	var listaOpciones = document.createElement("ul");     
     	listaOpciones.className = "opciones";	     	      
     		
     	    	var liDesde = document.createElement("li");
     			var anchorDesde = document.createElement("a"); 
     			anchorDesde.href= "como_ir."+idioma+".svr?accion=entrada&codParadaDesde="+c_parada;
     			txtInAnchorDesde = document.createTextNode(fijar_origen);
     			anchorDesde.appendChild(txtInAnchorDesde);
     			liDesde.appendChild(anchorDesde);
     			listaOpciones.appendChild(liDesde);	
   	      		var liHasta = document.createElement("li");
     			var anchorHasta = document.createElement("a"); 
     			anchorHasta.href= "como_ir."+idioma+".svr?accion=entrada&codParadaHasta="+c_parada;
     			txtInAnchorHasta = document.createTextNode(fijar_destino);
     			anchorHasta.appendChild(txtInAnchorHasta);
     			liHasta.appendChild(anchorHasta);
     			listaOpciones.appendChild(liHasta);
     			
     	nodoBocadillo.appendChild(titulo);
     	nodoBocadillo.appendChild(parrafo1);
     	nodoBocadillo.appendChild(parrafo2);
     	nodoBocadillo.appendChild(listaLineas);
     	nodoBocadillo.appendChild(listaOpciones);
     	
     	var capa = document.createElement("div");
     	
     	capa.appendChild(nodoBocadillo);
     	
     	texto = capa.innerHTML;
     	if(latitud != "0.0" && longitud != "0.0"){
     		 pintarParadaEnMapa ('parada'+c_parada ,map , latitud ,longitud ,texto,'parada');  
     	}
  
 }
 function cargamosPuntosInteres(idioma,ptoInteresNombreJs,ptoInteresAbstractJs,clavePuntoInteres,texto_mas_informacion,imagen,texto_fijar_origen,texto_fijar_destino, map, latitud,longitud) {
 		var nodoBocadillo = document.createElement("div");
     	nodoBocadillo.className = "bocadilloMapa conImagen";	   	
        
     	var titulo = document.createElement("h1");
		//var txtInTitulo = document.createTextNode("<str:escape><c:out value='${mapaPto.ptoInteres.nombreJs}'/></str:escape>");
		var txtInTitulo = document.createTextNode(ptoInteresNombreJs);
     	titulo.appendChild(txtInTitulo);
     	
     	
     	var aSeparador = document.createElement("div");
     	aSeparador.className = "separadorH";
     	
     	var divTexto = document.createElement("div");
     	divTexto.className = "cajaTexto";
     	
     	
     	var parrafo1 = document.createElement("p");
     	
     	var txt1InP1 = document.createTextNode(ptoInteresAbstractJs);
     	parrafo1.appendChild(txt1InP1);
     	
     	divTexto.appendChild(parrafo1);     	
     	
     	var aMasinfo = document.createElement("a");
     	aMasinfo.className = "enlace";
     	
     	aMasinfo.href= "puntointeres."+idioma+".svr?accion=obtenerpunto&clave_punto="+clavePuntoInteres;
     	
     	var txtInaMasinfo = document.createTextNode(texto_mas_informacion);
     	aMasinfo.appendChild(txtInaMasinfo);
		divTexto.appendChild(aMasinfo);
     	
		var divImagen = document.createElement("div");
		divImagen.innerHTML =  imagen; 
		var listaOpciones = document.createElement("ul");
		var liOrigen = document.createElement("li");
		anchorFijarOrigen = document.createElement("a");
		anchorFijarOrigen.href="como_ir."+idioma+".svr?accion=entrada&codPtoInteresDesde="+clavePuntoInteres;
		txtInaOrigen = document.createTextNode(texto_fijar_origen);
		anchorFijarOrigen.appendChild(txtInaOrigen);
		liOrigen.appendChild(anchorFijarOrigen);
		listaOpciones.appendChild(liOrigen);
		var liDestino = document.createElement("li");
		anchorFijarDestino = document.createElement("a");
		anchorFijarDestino.href="como_ir."+idioma+".svr?accion=entrada&codPtoInteresHasta="+clavePuntoInteres;
		txtInaDestino = document.createTextNode(texto_fijar_destino);
		anchorFijarDestino.appendChild(txtInaDestino);
		liDestino.appendChild(anchorFijarDestino);
		listaOpciones.appendChild(liDestino);
		nodoBocadillo.appendChild(titulo);
		nodoBocadillo.appendChild(aSeparador);
		nodoBocadillo.appendChild(divImagen);
		nodoBocadillo.appendChild(divTexto);     	
		nodoBocadillo.appendChild(listaOpciones);     	
		//nodoBocadillo.appendChild(aSeparador);
		var capa = document.createElement("div");
		var aSeparador = document.createElement("div");
		capa.appendChild(nodoBocadillo);   
		nodoBocadillo.id = 'infoPunto'+clavePuntoInteres;
		texto = capa.innerHTML;
		if (latitud != "0.0" && longitud != "0.0"){    
			pintarParadaEnMapa ('punto'+clavePuntoInteres, map, latitud,longitud,texto,'pto');          
		}
 }
 
 function cargamosPuntosComoIr(idioma,titul,p1,p2,parsentra,colores,c_parada,fijar_origen,fijar_destino,map,latitud,longitud,donde,paradaHasta,ptoInteresHasta,paradaDesde,ptoInteresDesde) {
		  
 		
 		var nodoBocadillo = document.createElement("div");
     	nodoBocadillo.className = "bocadilloMapa";
     	
     	var titulo = document.createElement("h1");
     	//var txtInTitulo = document.createTextNode("<fmt:message key="frontend.texto.parada_numero"/> <c:out value='${mapa.parada.claveParada}'/>");
     	var txtInTitulo = document.createTextNode(titul);
     	
     	titulo.appendChild(txtInTitulo);
     	
     	var parrafo1 = document.createElement("p");
     	parrafo1.id = "dir";
     	//var txtInP1 = document.createTextNode("<str:escape><c:out value='${mapa.parada.nombreLargoJs}'/></str:escape>");
     	var txtInP1 = document.createTextNode(p1);
     	parrafo1.appendChild(txtInP1);
     	
     	var parrafo2 = document.createElement("p");
     	parrafo2.id = "titulo";
     	//var txtInP2 = document.createTextNode("<fmt:message key="frontend.texto.lineas_parada"/>");
     	var txtInP2 = document.createTextNode(p2);
     	parrafo2.appendChild(txtInP2);
     	
     	var listaLineas = document.createElement("ul");
     	listaLineas.className = "lineas";
     	
     	
     	// Insertamos todas las lineas
     	
     	for (i=0;i<parsentra.length;i++){  
     		var li = document.createElement("li");
     		var span = document.createElement("span");
     		span.className = "circulo"+parsentra[i];
            span.style.backgroundColor = "#"+colores[i];
     		var anchor = document.createElement("a");
     		anchor.className = "lineaCirculo";
     		anchor.href= "lineas."+idioma+".svr?accion=entrada&cod_linea="+parsentra[i];
     		var textoInAnchor = document.createTextNode(parsentra[i]);
     		anchor.appendChild(textoInAnchor);
     		span.appendChild(anchor);
     		li.appendChild(span);
     		listaLineas.appendChild(li);     	
     	}	
     	
     	var listaOpciones = document.createElement("ul");     
     	listaOpciones.className = "opciones";
     	
     	
     	if(donde == 'origen'){
     		var liDesde = document.createElement("li");
   			var anchorDesde = document.createElement("a"); 
   			anchorDesde.href= "como_ir."+idioma+".svr?accion=entrada&codParadaDesde="+c_parada+"&codParadaHasta="+paradaHasta+"&codPtoInteresHasta="+ptoInteresHasta;
   			txtInAnchorDesde = document.createTextNode(fijar_origen);
   			anchorDesde.appendChild(txtInAnchorDesde);
   			liDesde.appendChild(anchorDesde);
   			listaOpciones.appendChild(liDesde);
     	}
     	if(donde == 'destino'){
     		var liHasta = document.createElement("li");
   			var anchorHasta = document.createElement("a"); 
   			anchorHasta.href= "como_ir."+idioma+".svr?accion=entrada&codParadaHasta="+c_parada+"&codParadaDesde="+paradaDesde+"&codPtoInteresDesde="+ptoInteresDesde;
   			txtInAnchorHasta = document.createTextNode(fijar_destino);
   			anchorHasta.appendChild(txtInAnchorHasta);
   			liHasta.appendChild(anchorHasta);
   			listaOpciones.appendChild(liHasta);
     	}
     	
     	nodoBocadillo.appendChild(titulo);
     	nodoBocadillo.appendChild(parrafo1);
     	nodoBocadillo.appendChild(parrafo2);
     	nodoBocadillo.appendChild(listaLineas);
     	nodoBocadillo.appendChild(listaOpciones);
     	
     	var capa = document.createElement("div");
     	
     	capa.appendChild(nodoBocadillo);
     	
     	texto = capa.innerHTML;
     	
     	if(latitud != "0.0" && longitud != "0.0"){
     		 pintarParadaEnMapa ('parada'+c_parada ,map , latitud ,longitud ,texto,'parada');  
     	}
     	
 }
 
 