// Objeto pregunta
var paradorx = {
	obtenerTiposHabitacion: function(parador, tipoTarifa, codigoIdioma) {
		var cont = 0;
		$("#labelTipoHabitacion").hide();
		$("#selectTipoHabitacion").show();
		$("#mensajeError").hide();
		$("#botonSubmit").show();
		$("#selectTipoHabitacion").removeOption(/./);
		$("#selectTipoHabitacion").addOption("0", cargando);
		$("#botonSubmit").attr("disabled","disabled");
		$("#labelTipoHabitacion").show();
		$.post("cargarTiposHabitacionXML.do",
				{ codigoParador: parador.value, tipoTarifa: tipoTarifa, codigoIdioma: codigoIdioma },
				function(xml){
					$("#labelTipoHabitacion").hide();
					$("#selectTipoHabitacion").removeOption(/./);
					$(xml).find('habitaciones/habitacion').each(function(){
						$("#selectTipoHabitacion").addOption($(this).find('tipo').text(), $(this).find('denominacion').text());
						cont++;
					});
					if (cont > 0) {
						$("#labelTipoHabitacion").show();					
						$("#selectTipoHabitacion").removeAttr("disabled");
						$("#botonSubmit").removeAttr("disabled")
					} else {
						$("#labelTipoHabitacion").hide();
						$("#selectTipoHabitacion").hide();
						$("#mensajeError").text($(xml).find('mensajeError').text());
						$("#mensajeError").show();
						$("#botonSubmit").hide();
					}				
				}
			  );		  
	}
}

var tarifax = {
	obtenerTiposHabitacion: function(parador, idTarifa, codigoIdioma) {
		var cont = 0;
		$("#labelTipoHabitacion").hide();
		$("#selectTipoHabitacion").show();
		$("#mensajeError").hide();
		$("#botonSubmit").show();
		$("#selectTipoHabitacion").removeOption(/./);
		$("#selectTipoHabitacion").addOption("0", cargando);
		$("#botonSubmit").attr("disabled","disabled");
		$("#labelTipoHabitacion").show();
		$.post("cargarTiposHabitacionFichaParadorXML.do",
				{ codigoParador: parador, idTarifa: idTarifa.value, codigoIdioma: codigoIdioma },
				function(xml){
					$("#labelTipoHabitacion").hide();
					$("#selectTipoHabitacion").removeOption(/./);
					$(xml).find('habitaciones/habitacion').each(function(){
						$("#selectTipoHabitacion").addOption($(this).find('tipo').text(), $(this).find('denominacion').text());
						cont++;
					});
					if (cont > 0) {
						$("#labelTipoHabitacion").show();					
						$("#selectTipoHabitacion").removeAttr("disabled");
						$("#botonSubmit").removeAttr("disabled");
					} else {
						$("#labelTipoHabitacion").hide();
						$("#selectTipoHabitacion").hide();
						$("#mensajeError").text($(xml).find('mensajeError').text());
						$("#mensajeError").show();
						$("#botonSubmit").hide();
					}					
				}
			  );		  
	}
}

function pintarComboTiposHabitacion() {
	document.writeln("<label for=\"tipoHabitacion\" class=\"td45\" id=\"labelTipoHabitacion\" style=\"display:none\">");
	document.writeln("<span class=\"etiqueta\">"+habitacion+" :</span>");	
	document.writeln("<select name=\"tipoHabitacion\" id=\"selectTipoHabitacion\" disabled=\"disabled\"");
	document.writeln("<html:option value=\"0\">cualquiera</html:option>");
	document.writeln("</select>");
	document.writeln("</label>");
	document.writeln("<span id='mensajeError' style='display:none;'></span>");
}

var inicioRango = false;
var finRango = false;
function seleccionarRangoDias(dia, mes, anio,diaMes){
	if(document.getElementById("tarifaUnicaPorParadorFichaForm")){
		var miFormulario = document.getElementById("tarifaUnicaPorParadorFichaForm");
		var numDias = 0;
		var fecha = new Date(anio,mes-1,diaMes);
		var fechaFormateada = formatearFecha(fecha,fechaFormato);
		if(inicioRango == false || 
			(inicioRango == true && dia <= parseInt(miFormulario.diaDesde.value,10)) ||
			 inicioRango == true && finRango == true) {
			 	var disponible = true;
			 	if ((inicioRango == false) || ((inicioRango == true) && (finRango == true)) || ((inicioRango == false) && (finRango == true))) {
				 	if (document.getElementById("d"+dia)) {
						clase = document.getElementById("d"+dia).className;
						if (clase.match(/nodisponible/)) {
							disponible = false;
							miFormulario.diaDesde.value = 1;
							miFormulario.fechaEntrada.value = fechaFormateada;
							inicioRango = false;
							alert(mensajeFechaNoValida);						
						}
					}
				}
				if (disponible) {
					inicioRango = true;
					finRango = false;
					ocultarRango(parseInt(miFormulario.diaDesde.value,10),parseInt(miFormulario.diaHasta.value,10));
					miFormulario.diaDesde.value = dia;
					miFormulario.diaHasta.value = dia;
					miFormulario.fechaEntrada.value = fechaFormateada;
					miFormulario.fechaSalida.value = fechaFormateada;
					pintarRango(parseInt(miFormulario.diaDesde.value,10),parseInt(miFormulario.diaHasta.value,10));
				}
		} else {
			numDias = dia - miFormulario.diaDesde.value;
			if(numDias<=15){
				if (miFormulario.diaDesde.value >= dia){
						miFormulario.diaDesde.value = dia;
						miFormulario.fechaEntrada.value = fechaFormateada;
				} else {
					var disponible = true;
					var clase = "";
					for(i = miFormulario.diaDesde.value; i < dia; i++) {
						if(document.getElementById("d"+i)){
							clase = document.getElementById("d"+i).className;
							if (clase.match(/nodisponible/)) {
								disponible = false;
								miFormulario.diaDesde.value = 1;
								miFormulario.fechaEntrada.value = fechaFormateada;
								inicioRango = false;
								alert(mensajeFechaNoValida);
								break;
							}
						}
					}										
					if(disponible){
						finRango = true;
						miFormulario.diaHasta.value = dia;
						miFormulario.fechaSalida.value = fechaFormateada;
						pintarRango(parseInt(miFormulario.diaDesde.value,10),parseInt(miFormulario.diaHasta.value,10));
					}
				}
			} else {
				alert(mensajeRangoMaximo);
			}
		}
		
		htmlAux = "<p>" + fechaEnt + ": " + miFormulario.fechaEntrada.value + "</p>";
		htmlAux += "<p>" + fechaSal + ": " + miFormulario.fechaSalida.value + "</p>";
		htmlAux += "<p>" + numNoches	 + ": <strong>" + numDias + "</strong></p>"
		document.getElementById('fechasSeleccionadas').innerHTML = htmlAux ;
		document.getElementById("fechasSeleccionadas").className = "fechas";
	}			
}

function formatearFecha(fecha, format){
	var fmt = format.toUpperCase(); 
	var M = "" + (fecha.getMonth()+1);
    var MM = "0" + M;
    MM = MM.substring(MM.length-2, MM.length);
    var D = "" + (fecha.getDate());
    var DD = "0" + D;
    DD = DD.substring(DD.length-2, DD.length);
    var YYYY = "" + (fecha.getFullYear()); 
	var sep = "/";
	var pieces = fmt.split(sep); 
	var result = ""; 
	switch (pieces[0]) {
         case "M" : result += M + sep; break;
         case "MM" : result += MM + sep; break;
         case "D" : result += D + sep; break;
         case "DD" : result += DD + sep; break;
         case "YYYY" : result += YYYY + sep; break;
    } 
    switch (pieces[1]) {
         case "M" : result += M + sep; break;
         case "MM" : result += MM + sep; break;
         case "D" : result += D + sep; break;
         case "DD" : result += DD + sep; break;
         case "YYYY" : result += YYYY + sep; break;
    } 
    switch (pieces[2]) {
         case "M" : result += M ; break;
         case "MM" : result += MM ; break;
         case "D" : result += D ; break;
         case "DD" : result += DD ; break;
         case "YYYY" : result += YYYY ; break;
    } 
    return result;
}

function pintarRango(diaDesde,diaHasta){
	for(j = diaDesde; j <= diaHasta; j++){
		if(document.getElementById("d"+j)){
			if(diaDesde == j){
				if (document.getElementById("d"+j).className.match(/nodisponible/)) {
					document.getElementById("d"+j).className = "seleccionado inicio nodisponible";
				} else {
					document.getElementById("d"+j).className = "seleccionado inicio";
				}
			} else if(diaHasta == j){
				if (document.getElementById("d"+j).className.match(/nodisponible/)) {
					document.getElementById("d"+j).className = "seleccionado fin nodisponible";
				} else {
					document.getElementById("d"+j).className = "seleccionado fin";
				}
			} else {
				if (document.getElementById("d"+j).className.match(/nodisponible/)) {
					document.getElementById("d"+j).className = "seleccionado nodisponible";
				} else {
					document.getElementById("d"+j).className = "seleccionado";
				}
			}
		}
	}
}
function ocultarRango(diaDesde,diaHasta){
	for(i = diaDesde; i<=diaHasta; i++){
		if(document.getElementById("d"+i)){
			if (document.getElementById("d"+i).className.match(/nodisponible/)) {
				document.getElementById("d"+i).className = "nodisponible";
			} else {
				document.getElementById("d"+i).className = "disponible";
			}
		}
	}
}
function ocultarComboRangoFechas(){
	if (document.getElementById("rangoFechas")) {
		document.getElementById("rangoFechas").style.display = "none";
	}
}

/**
 * Validación del formulario
 * 
 * @param formulario  Formulario para validar
 */
function validarTarifaUnicaPorParadorForm(formulario) {
	var sMensaje = "";
	var bFlag = validateTarifaUnicaPorParadorForm(formulario);
	if (bFlag) {
		if ((formulario.codigoParador.value == 0))	
		{		
			bFlag = false;
			sMensaje += errorValidacion + ".\n";
		}
		if ((formulario.idTarifa.value == 0))	
		{		
			bFlag = false;
			sMensaje += errorValidacionTarifa + ".\n";
		}
		var fecha = new Date();
		var mesActual=fecha.getMonth() +1 ;
		var anioActual = fecha.getFullYear();
		
		var mesValidacion = mesValidacion = mesActual + 6;
		var anioValidacion = anioActual + 1;
		
		if (mesActual > 6) {
			mesValidacion = mesValidacion - 12;
			anioValidacion = anioValidacion + 1;
		} 
		
		if( ((formulario.mes.value < mesActual) && (formulario.anio.value == anioActual)) ||
				((formulario.mes.value > mesValidacion ) && (formulario.anio.value == anioValidacion))) {
			bFlag = false;
			sMensaje += errorAnio + ".\n";	
		}
		
		if (!bFlag) {
			alert(sMensaje);
		}
	}
	return bFlag;
}
/**
 * Validación del formulario
 * 
 * @param formulario  Formulario para validar
 */
function validarTarifaUnicaPorParadorFichaForm(formulario) {
	var sMensaje = "";
	var bFlag = validateTarifaUnicaPorParadorFichaForm(formulario);
	if (bFlag) {
		if ((formulario.codigoParador.value == 0))	
		{		
			bFlag = false;
			sMensaje += errorValidacion + ".\n";
		}
		if ((formulario.idTarifa.value == 0))	
		{		
			bFlag = false;
			sMensaje += errorValidacionTarifa + ".\n";
		}
		var fecha = new Date();
		var mesActual=fecha.getMonth() +1 ;
		var anioActual = fecha.getFullYear();
		var mesValidacion = mesValidacion = mesActual + 6;
		var anioValidacion = anioActual + 1;
		
		if (mesActual > 6) {
			mesValidacion = mesValidacion - 12;
			anioValidacion = anioValidacion + 1;
		} 
		
		if( ((formulario.mes.value < mesActual) && (formulario.anio.value == anioActual)) ||
				((formulario.mes.value > mesValidacion ) && (formulario.anio.value == anioValidacion))) {
			bFlag = false;
			sMensaje += errorAnio + ".\n";	
			}
		
		if (!bFlag) {
			alert(sMensaje);
		}
	}
	return bFlag;
}

/**
 * Validación del formulario
 * 
 * @param formulario  Formulario para validar
 */
function validarTarifaUnicaPrecioForm(formulario) {
	var sMensaje = "";
	var bFlag = validateTarifaUnicaPrecioForm(formulario);
	if (bFlag) {
		if ((formulario.idTramoTarifa.value == 0))	
		{		
			bFlag = false;
			sMensaje += errorValidacionTramo + ".\n";
		}
		if (!bFlag) {
			alert(sMensaje);
		}
	}
	return bFlag;
}



