/*********************************************************************************
Funcion para la validacion de las fecha de salida y llegada.
**********************************************************************************/
function validarFechas(){
 
	var fechaSalida = document.frmInicio.txtFechaSalida.value;
	fechaSalida = desformatFecha(document.frmInicio.txtFechaSalida.value);

	document.forms.frmInicio.txtFechSalidaDesf.value = fechaSalida;

	if(!isNaN(fechaSalida) && fechaSalida != ""){

		var fechaRegreso = document.frmInicio.txtFechaVuelta.value;
		if(document.frmInicio.cmbTipo.value=="2"){
			document.frmInicio.txtFechaVuelta.value="";
			document.frmInicio.txtFechRegresoDesf.value ="";
			fechaRegreso = "";
		}else{//si el viaje es ida y vuelta se trata la fecha de vuelta
			fechaRegreso = desformatFecha(document.frmInicio.txtFechaVuelta.value);
			document.frmInicio.txtFechRegresoDesf.value = fechaRegreso;
		}
		if(!isNaN(fechaRegreso) && fechaRegreso != ""){

			if(fechaSalida > fechaRegreso){
				obtenerMSGERROR("000010");
				return false;
			}
		}else if(document.frmInicio.cmbTipo.value=="1"){
			obtenerMSGERROR("000011");
			return false;
		}
	}else{
		obtenerMSGERROR("000012");
		return false;
	}
	return true;
}

/***********************************************************************************
Funcion para la validacion de los datos del formulario al pulsar Busqueda
VALIDA QUE LAS ESTACIONES DE ORIGEN Y DESTINO ESTÉN RELLENAS
************************************************************************************/
function validarEstaciones(){

	if(document.frmInicio.cmbOrigenes.value == "0" || document.frmInicio.cmbDestinos.value == "0" ){
		obtenerMSGERROR("000013");
		return false;
	}else {
		return true;
	}
}

/***********************************************************************************
Funcion para la obtencion del XML con los datos para la carga del combo de Origenes.
************************************************************************************/
function cargarOrigenes(origen){
	var obj = document.forms.frmInicio.elements.cmbOrigenes;
	if(obj.options.length < 1){	
		var idioma = $("#txtIdioma").attr("value");
		var obj = document.forms.frmInicio.elements.cmbOrigenes;
		//literal que aparece en la primera posición del combo
		var literalSeleccione = document.forms.frmInicio.hdLiteralSelecione.value;
		obj.options[0] = new Option(literalSeleccione, "0", true, false);
		 
		var seleccionar = false; 
		var i=1;
		var param = 'CXMLHTTP=SI&strIdiomaOrigen='+idioma;
	
		//Llamada ajax para obtener los Origenes
		$.ajax({
		  url: 'Tren?ACCION=OBTENERORIGENES',
		  type: 'POST',
		  dataType: "xml",
		  async: false,
		  data: param,
		  success: function(respuestaXml) {
	
			$(respuestaXml).find('ORIGENES').each(function(){
			 	$(this).find('ORIGEN').each(function(){
					var codigo =$(this).find("CODESTACION").text();
					if(origen == codigo){
						seleccionar = true;
					}else{
						seleccionar = false;
					}
					obj.options[i] = new Option($(this).find("DESESTACION").text(), codigo, "0", seleccionar);
					i++;
				}); //close each( 
			}); //close each( 
		  }
		}); ////fin llamada ajax
	}
}

/***********************************************************************************
Funcion para la obtencion del XML con los datos para la carga del combo de Destinos.
************************************************************************************/
function cargarDestinos(origen){
	//si no hay origen no carga estaciones destino
	if(!origen) return false;
	
	//var obj=document.getElementById('cmbDestinos'); -- no funciona en firefox
	borrarCombo(document.forms.frmInicio.elements.cmbDestinos);
	var obj = document.forms.frmInicio.elements.cmbDestinos;
	var idioma = $("#txtIdioma").attr("value");
	var i=1;
	var param = 'txtOrigen=' + origen + '&CXMLHTTP=SI&strIdiomaOrigen='+idioma;
	//// llamada ajax
	$.ajax({
		url: 'Tren?ACCION=OBTENERDESTINOS',
		dataType: "xml",  
		type: 'POST',
		async: true,
		data: param,
		success: function(respuestaXml) {
			$(respuestaXml).find('DESTINOS').each(function(){
				$(this).find('DESTINO').each(function(){
					//llamamos al xml de descripciones y escribimos la opcion en el combo de destinos			 	
			 		var codigo = $(this).find("CODESTACION").text();
			 		obj.options[i] = new Option($(this).find("DESESTACION").text(), codigo, "0", false);
					i++;
				}); //close each( 
			}); //close each(  
		
		//literal que aparece en la primera posición del combo
		var literalSeleccione = document.forms.frmInicio.hdLiteralSelecDest.value;
		ordenaCombo(obj, literalSeleccione, document.all.hdCmbDestino.value);
	  }
	}); ////fin llamada ajax
}

/************************************************************
Función para ordenar alfabéticamente el contenido de un combo
pasado como parámetro. El segundo parámetro (opcion) será el
texto que se añadirá en la primera posición del combo.
Ejemplo = "Seleccione opción" .
*************************************************************/
function ordenaCombo(obj, opcion, origen){
	var arrOrdenar = new Array();
    for (var i=0; i<obj.options.length; i++){
		arrOrdenar[arrOrdenar.length] = new Option(obj.options[i].text, 
										obj.options[i].value, 
										obj.options[i].defaultSelected, 
										obj.options[i].selected);
    }
	arrOrdenar = arrOrdenar.sort(
		function(a,b){ 
			if ((a.text+"") < (b.text+"")) { return -1; }
			if ((a.text+"") > (b.text+"")) { return 1; }
            return 0;
        } 
	);
	
	obj.options[0] = new Option(opcion, "0", true, false);
	
	for (var i=1; i<arrOrdenar.length; i++){
		if (arrOrdenar[i].value==origen){
			obj.options[i] = new Option(arrOrdenar[i].text, arrOrdenar[i].value, true, true);
		}else{
			obj.options[i] = new Option(arrOrdenar[i].text, arrOrdenar[i].value, arrOrdenar[i].defaultSelected, arrOrdenar[i].selected);
    	}
    }
}
/***********************************************************************************
Funcion para la carga del combo de Tipo de Viaje.
************************************************************************************/
function obtenerComboTiposViaje(tipo){

	var obj = document.forms.frmInicio.elements.cmbTipo;
	var i=0;
	var idioma = $("#txtIdioma").attr("value");
	var urlGeneral = $("#txtURLGeneral").attr("value");
	var param = 'strIdiomaOrigen=' + idioma + '&CXMLHTTP=SI';
	
	//llamada al xml 'comboTiposViaje.xml' para obtener las descripciones
	$.ajax({
		url: 'Tren?ACCION=COMBOTIPOSVIAJE',
		type: 'POST',
		dataType: "xml",
		async: true,
		data: param,
		success: function(respuestaXml) {
	  		$(respuestaXml).find("idioma[value="+idioma+"]").each(function(){
				$(this).find("tipoviaje").each(function(){
			  		if ($(this).find("codTipViaje").text() == tipo){
				  		obj.options[i] = new Option($(this).find("descTipViaje").text(), $(this).find("codTipViaje").text(), "0", true);
			  		}else {
				  		obj.options[i] = new Option($(this).find("descTipViaje").text(), $(this).find("codTipViaje").text(), "0", false);
			  		}
					i++;
				});
			});//close each(  
			if (tipo =="2"){
				ocultarFechaLlegada();
			}
		}
	});//fin llamada al xml
}
/***********************************************************************************
Funcion para la carga del combo de Tipos de Clase Clase.
************************************************************************************/
function obtenerComboClase(clase){
	var obj = document.forms.frmInicio.elements.cmbClase;
	var i=0;
	var idioma = $("#txtIdioma").attr("value");
	var urlGeneral = $("#txtURLGeneral").attr("value");
	var param = 'strIdiomaOrigen=' + idioma + '&CXMLHTTP=SI';
	//llamada al xml 'tiposClase.xml' para obtener las descripciones
	$.ajax({
		url: 'Tren?ACCION=COMBOCLASE',
		type: 'POST',
		dataType: "xml",
		async: true,
		data: param,
		success: function(respuestaXml) {
	  		$(respuestaXml).find("idioma[value="+idioma+"]").each(function(){
				$(this).find("clase").each(function(){
			  		if ($(this).find("codClase").text() == clase){
			  			obj.options[i] = new Option($(this).find("descClase").text(), $(this).find("codClase").text(), "0", true);
			  		}else {
			  			obj.options[i] = new Option($(this).find("descClase").text(), $(this).find("codClase").text(), "0", false);
			  		}
			  		i++;
				});
			});//close each(  
		}
	});//fin llamada al xml
}
/***********************************************************************************
Funcion para la carga del combo de Numero de Adultos.
************************************************************************************/
function obtenerComboAdultos(adultos){
	var obj = document.forms.frmInicio.elements.cmbAdultos;
	var i=0;
	var idioma = $("#txtIdioma").attr("value");
	var urlGeneral = $("#txtURLGeneral").attr("value");
	var param = 'strIdiomaOrigen=' + idioma + '&CXMLHTTP=SI';
	//llamada al xml 'comboAdultos.xml' para obtener las descripciones
	$.ajax({
		url: 'Tren?ACCION=COMBOADULTOS',
		type: 'POST',
		dataType: "xml",
		async: true,
		data: param,
		success: function(respuestaXml) {
	  		$(respuestaXml).find("idioma[value="+idioma+"]").each(function(){
				$(this).find("numeroAdultos").each(function(){
					if (adultos==""){
		  				//preguntamos cuándo el código es = 1 (1 adulto), para que esa opción salga seleccionada por defecto
						if ($(this).find("codigo").text()=="1"){
							obj.options[i] = new Option($(this).find("descripcion").text(), $(this).find("codigo").text(), i, true);
						} else {
							obj.options[i] = new Option($(this).find("descripcion").text(), $(this).find("codigo").text(), i, false);
						}
					}else if ($(this).find("codigo").text()==adultos) {
			  			obj.options[i] = new Option($(this).find("descripcion").text(), $(this).find("codigo").text(), "0", true);
		  			}else {
		  				obj.options[i] = new Option($(this).find("descripcion").text(), $(this).find("codigo").text(), "0", false);
		  			}
		  			i++;
				});
			});//close each(  
		}
	});//fin llamada al xml
}
/*************************************************************
Funcion para la carga del combo de Numero de Niños.
**************************************************************/
function obtenerComboNinios(ninios){

	var obj = document.forms.frmInicio.elements.cmbNinos;
	var i=0;
	var idioma = $("#txtIdioma").attr("value");
	var urlGeneral = $("#txtURLGeneral").attr("value");
	var param = 'strIdiomaOrigen=' + idioma + '&CXMLHTTP=SI';
	//llamada al xml 'comboNiños.xml' para obtener las descripciones
	$.ajax({
		url: 'Tren?ACCION=COMBONINOS',
		type: 'POST',
		dataType: "xml",
		async: true,
		data: param,
		success: function(respuestaXml) {
	  		$(respuestaXml).find("idioma[value="+idioma+"]").each(function(){
				$(this).find("numeroNinios").each(function(){
					if ($(this).find("codigo").text() == ninios){
						obj.options[i] = new Option($(this).find("descripcion").text(), $(this).find("codigo").text(), "0", true);
					}else {
						obj.options[i] = new Option($(this).find("descripcion").text(), $(this).find("codigo").text(), "0", false);
					}
					i++;
				});
			});//close each(  
		}
	});//fin llamada al xml
}

