

//COMPROBAMOS SI ESTAMOS EN MODO SEGURO
//var url = window.location.href;
//if (url.indexOf("https") == -1) url = "http://emtmapas.tissat.es/EMT/mapfunctions/MapUtilsPetitions.php";
//else url = "https://emtmapas.tissat.es/EMT/mapfunctions/MapUtilsPetitions.php";
url = "../mapfunctions/MapUtilsPetitions.php";


var lines = new Array();


function $(id) {
    return document.getElementById(id);
}

//Peticion ajax que obtiene las lineas activas

function getXMLObject(xml_string){

	var xml;
	var ini= (xml_string).indexOf('<?xml');
	var cadena='';
	
	if(document.all){ //IEXPLORER
		xml = new ActiveXObject("Microsoft.XMLDOM");
		xml.async="false";
		if(ini==0)
			xml.loadXML(xml_string);
		else{
			cadena= (xml_string).substr(ini);
			xml.loadXML(cadena);
		}
	}else{ //FIREFOX
		if(ini==0)
			xml = (new DOMParser()).parseFromString(xml_string, "text/xml");
		else{
			cadena= (xml_string).substr(ini);
			xml = (new DOMParser()).parseFromString(cadena, "text/xml");
		}
	}

	return xml;
}

//***  ESTADISTICAS ***********************************************************************************************************
function guardarEstadisticas(){
	//opciones --> P parada, PL parada y linea
	var opcion = "";
	if($('linea').value!='') opcion = "PL";
	else opcion = "P";

	var peticionEstadisticas = "&herramienta=EBUS_EX&opcion="+opcion+"&opcion2=&info=";
	var aleatorio = Math.random();
	
	//alert("PRUEBAS EMT DISCULPEN LAS MOLESTIAS: "+url+'?sec=estadisticas'+peticionEstadisticas+'&nocache='+aleatorio);
	new Ajax.Request(url+'?sec=estadisticas'+peticionEstadisticas+'&nocache='+aleatorio,
	  {
		method:'get',
		onSuccess: function(transport){
			var response = transport.responseText || "no response text";
			//alert("Success! \n\n" + response);
		},
		onFailure: function(){ /*alert('Error en la llamada setEstadisticas.') */}
	  });
	
}
//***************************************************************************************************************************


function getLines(){
	var today = new Date();
	function fmt(v) { return (v < 10) ? '0' + v : v; }
	var date = fmt(today.getDate()) + '-' + fmt(today.getMonth()+1) + '-' + fmt(today.getFullYear());
	var aleatorio=Math.random();

	new Ajax.Request(url+'?sec=findGetLines&fecha='+date+'&nocache='+aleatorio,
	  {
	    method:'get',
	    onSuccess: function(transport){
		    var response = transport.responseText || "no response text";
		    //alert("Success! \n\n" + response);
			
			var xml = getXMLObject(response);
			
			lineasXML_to_HTML(xml);
	    },
	    onFailure: function(){ /*alert('Error en la consulta del ebus.') */}
	  });
	  
}



function lineasXML_to_HTML(xmldata){

	var num = parseInt(xmldata.getElementsByTagName('num').item(0).firstChild.data);

   // lines[0]="";
    for(i = 0; i < num; i++){
        var ide = parseInt(xmldata.getElementsByTagName('id').item(i).firstChild.data);
        var numero = xmldata.getElementsByTagName('numero').item(i).firstChild.data;

		lines[numero]=ide;
    }

}

function trim2(cadena)
{
	for(i=0; i<cadena.length; )
	{
		if(cadena.charAt(i)==" ")
			cadena=cadena.substring(i+1, cadena.length);
		else
			break;
	}

	for(i=cadena.length-1; i>=0; i=cadena.length-1)
	{
		if(cadena.charAt(i)==" ")
			cadena=cadena.substring(0,i);
		else
			break;
	}
	
	return cadena;
}

//Consulta las paradas que coinciden con los campos de busqueda que el usuario ha introducido
function verParadas(){

	limpiar_campos();
	
	var nombre = "";
	var linea = "";
	var flag = false;
	//var linea_num = 0;

	if(trim2($('nombre').value) != "") nombre = trim2($('nombre').value);
	else $('spanParadas').innerHTML = ebus_condiciones_busqueda_no_vacio[idioma];
	
	if(trim2($('linea').value) != "") linea_num = trim2($('linea').value);

	if (trim2($('linea').value) != "" && isNaN(trim2($('linea').value))) {
	//alert(linea_num + "--" + lines[linea_num.toUpperCase()]);
		if (lines[linea_num.toUpperCase()] != null){
			linea = lines[linea_num.toUpperCase()];
		}else{
			$('spanParadas').innerHTML = ebus_linea_no_valida[idioma];
			return;
		}
	}else if(trim2($('linea').value) != ""){
		linea = trim2($('linea').value).toUpperCase();
	}

		
	if(!isNaN(nombre)) flag = true;
	else if(nombre.length > 2) flag = true;

	if((nombre != "") && flag){

		cargando(true);

		var today = new Date();
		function fmt(v) { return (v < 10) ? '0' + v : v; }
		var date = fmt(today.getDate()) + '-' + fmt(today.getMonth()+1) + '-' + fmt(today.getFullYear())+" "+fmt(today.getHours())+":"+fmt(today.getMinutes()) ;
		var aleatorio=Math.random();
		//alert("-"+nombre+"- -"+linea+"- -"+date);
		//alert(url+'?sec=ebus_express&nombre='+nombre+'&linea='+linea+'&fecha='+date+'&nocache='+aleatorio);
	
		new Ajax.Request(url+'?sec=ebus_express&nombre='+nombre+'&linea='+linea+'&fecha='+date+'&nocache='+aleatorio,
		{
			method:'get',
			onSuccess: function(transport){
			  var response = transport.responseText || "no response text";
			  //alert("Success! \n\n" + response);
			  cargando(false);
			  
			  var xml = getXMLObject(response);
			  
			  paradasXML_to_HTML(xml);
		},
		onFailure: function(){ alert('Error en la consulta del ebus.') }
	  });
	}else if(isNaN(nombre) && nombre.length < 3){
		$('spanParadas').innerHTML = ebus_condiciones_busqueda_min_2_caracteres[idioma];
	}
	
}

//Transforma el xml con paradas y construye un combobox
function paradasXML_to_HTML(xmldata){

    var htmlText = '';

	htmlText = '<select name="paradas" id="paradas" class="select_ebus" onchange="ebusExpressSAE()">';
    htmlText+='<option value="-">'+ebus_seleccionarParada[idioma]+'</option>';
    i = 0;
	while(xmldata.getElementsByTagName("parada").item(i)!=null){
	
		var node= xmldata.getElementsByTagName('parada').item(i)
        var idparada = node.attributes[0].nodeValue;
        //var denominacion = node.attributes[1].nodeValue;
		var denominacion = xmldata.getElementsByTagName("parada").item(i).firstChild.data;
		
		
        //htmlText+='<option value="'+idparada+'" title="'+denominacion+'">';
		htmlText+='<option value="'+idparada+'" title="'+denominacion+'">';
        htmlText+= idparada+' - '+denominacion
        htmlText+='</option>';
		i++;
    }
    htmlText+='</select>';

	if(i==0){
		//$('textarea_ebus').style.display = 'none';
		if ($("linea").value == "")
			htmlText = ebus_no_existe_parada[idioma];
		else htmlText = ebus_parada_no_corresponde_con_linea[idioma];
	}
	$('spanParadas').innerHTML = htmlText;
	
	if(i==1){
		$('paradas').selectedIndex = 1;
		ebusExpressSAE();
	}
}

//PETICION AJAX PARA OBTENER LAS ESTIMACION DE LLEGADA
function ebusExpressSAE(){

	if($('paradas')[$('paradas').selectedIndex].value != "-"){

		cargando(true);
	
		var parada = $('paradas')[$('paradas').selectedIndex].value;
		var linea = "";

		if(trim2($('linea').value) != "") linea_num = trim2($('linea').value);

		if (trim2($('linea').value) != "" && isNaN(trim2($('linea').value))) {
			if (lines[linea_num.toUpperCase()] != null){
				linea = linea_num.toUpperCase();
			}
		}
		else if(trim2($('linea').value) != ""){
			linea = trim2($('linea').value).toUpperCase();
		}
		
		
		var adaptado = $('adaptado').checked;
		var today = new Date();
		function fmt(v) { return (v < 10) ? '0' + v : v; }
		var date = fmt(today.getDate()) + '-' + fmt(today.getMonth()+1) + '-' + fmt(today.getFullYear())+" "+fmt(today.getHours())+":"+fmt(today.getMinutes()) ;
		var aleatorio=Math.random();
		//alert(parada+""+linea+" "+adaptado);

		new Ajax.Request(url+'?sec=getSAE&parada='+parada+'&linea='+linea+'&adaptados='+adaptado+'&idioma='+idioma+'&fecha='+date+'&nocache='+aleatorio,
		  {
		    method:'get',
		    onSuccess: function(transport){
			      var response = transport.responseText || "no response text";
			      //alert("Success! \n\n" + response);
				  cargando(false);
				  
					var xml = getXMLObject(response);
					SAE_XMLtoHTML(xml);
		    },
		    onFailure: function(){ alert('Error en la consulta del ebus.') }
		  });
	}

}

/**
	Transforma el xml del SAE a html para mostrarlo en el div de informacion de horarios
*/
function SAE_XMLtoHTML(xml){
	var html='';
	if(xml.getElementsByTagName("estimacion").item(0).hasChildNodes() && !xml.getElementsByTagName("error").item(0).hasChildNodes()){

		if (xml.getElementsByTagName("info").item(0).hasChildNodes()){
		html += xml.getElementsByTagName("info").item(0).firstChild.data + "\n";
	}
		//alert("SOLO PARADA: "+(xml.getElementsByTagName("bus")).length)
		var i=0;
		while(xml.getElementsByTagName("bus").item(i)!=null){
		if(xml.getElementsByTagName("minutos").item(i).hasChildNodes())
			html+= 'L'+xml.getElementsByTagName("linea").item(i).firstChild.data+' : '+xml.getElementsByTagName("destino").item(i).firstChild.data+' : '+xml.getElementsByTagName("minutos").item(i).firstChild.data+' \n';
		else
			html+= 'L'+xml.getElementsByTagName("linea").item(i).firstChild.data+' : '+xml.getElementsByTagName("destino").item(i).firstChild.data+' : '+xml.getElementsByTagName("horaLlegada").item(i).firstChild.data+'\n';
			i++;
		}
	}
	else if(!xml.getElementsByTagName("estimacion").item(0).hasChildNodes()){
		html = txtNoHayResultadosLineaParada[idioma];
	}
	else if(xml.getElementsByTagName("error").item(0).hasChildNodes()){
		html = xml.getElementsByTagName("error").item(0).firstChild.data;
	}
	$('textarea_ebus').value = html;
	
	info_extra();
}

/*
*	Muestra la informacion de la hora a la que se ha realizado la consulta
*/
function info_extra(){
	
	var today = new Date();
	function fmt(v) { return (v < 10) ? '0' + v : v; }
	var date = fmt(today.getDate()) + '/' + fmt(today.getMonth()+1) + '/' + fmt(today.getFullYear())+" "+fmt(today.getHours())+":"+fmt(today.getMinutes()) ;
	
	
	var html = ebus_fecha_hora[idioma]+": "+date;
	
	
	$('datos_consulta_ebus').innerHTML = html;

}

/*
*	Limpia los campos donde puede que haya algun resultado anterior.
*/
function limpiar_campos(){
	//vaciamos los resultados
	$('spanParadas').innerHTML = "&nbsp;";
	$('datos_consulta_ebus').innerHTML = "";
	$('textarea_ebus').value = "";
}

/*
*	Muestro mensaje de carga
*/
function cargando(flag){
	if(flag){
		$('textarea_ebus').style.display = 'inline';
		$('textarea_ebus').value = ebus_cargando[idioma];
		
	}else $('textarea_ebus').value = "";
}

function redimensionar_ebus() {

	var ancho = 0;

	if (typeof window.innerWidth != 'undefined') { 
		ancho = window.innerWidth;
	} 
	else if (typeof document.documentElement != 'undefined'
		&& typeof document.documentElement.clientWidth != 'undefined' 
		&& document.documentElement.clientWidth != 0) {
		ancho = document.documentElement.clientWidth;
	}
	else {  
		ancho = document.getElementsByTagName('body')[0].clientWidth;
	}

	if (ancho > 800) {
		document.write('<iframe scrolling="no" width="350px" height="150px" src="http://www.emtvalencia.es/EMT/ebus/ebus_iframe.php" frameborder="0">');
	} else {
		document.write('<iframe scrolling="no" width="200px" height="300px" src="http://www.emtvalencia.es/EMT/ebus/ebus_iframe_800x600.php" frameborder="0">');
	}	
}
