var aResultados = null;

// Cargador del listado principal
function cargarListado (bPrecompra) {
    bPrecompra = false;
	cargadorHoteles (1);
	$('#listado').slideUp('slow', function() {
		enviarPeticion (bPrecompra);
                
	});
} //

// Envio de peticion de Hoteles
function enviarPeticion (bPrecompra) {
	var resultadoLisatdo = '';
	var aHotel = new Array();
	var plantilla = null;
	var iResultado = null;
	var iMensajeError = null;
	var sForm = $('[name="formBuscador"]').serialize();
    if (bPrecompra) sForm = sForm+'&precompra=on';
	$("#listado").html('');
	$.post(UrlCoreServiListado,
		sForm,
		function(data){
			datosHotel = jQuery.parseJSON(data);
                        if (datosHotel.resultados < 1 && bPrecompra) {
                            enviarPeticion(false);
                            return true;
                        }
			listaPaginas (datosHotel,iPaginado);
			paginado(0);
			cargadorHoteles(0);
			calculaConsecutivo();
	});
} // 

function listaPaginas (datosHotel,iPaginado,iPagina) {
	if ( (datosHotel.resultados/iPaginado) > 1 )
	var divPaginado = '<div id="paginado"><ul>'+crearPaginas(datosHotel.resultados,iPaginado,iPagina)+'</ul></div>';
	$('[class=hotel]:last').after(divPaginado);
	//$('[class^=nPaginas]').click(function () { $(this).removeClass('pag2'); /*$('this').addClass('pag1');*/ })
}

function crearPaginas (iResultado,iPaginado,iPagina) {
	var sHtmlPaginas = '';
	var iTotalPaginas = parseInt((iResultado-1)/iPaginado);
	for (i = 0; i <= iTotalPaginas; i++ ) {
	//sHtmlPaginas += '<a href="javascript:paginado('+i+');">'+(i+1)+'</a> ';
	if ( i == iPagina ) 
	sHtmlPaginas += '<li><a class="nPaginas pag2" href="javascript:paginado('+i+');">'+(i+1)+'</a></li>';
	else 
	sHtmlPaginas += '<li><a class="nPaginas pag1" href="javascript:paginado('+i+');">'+(i+1)+'</a></li>';    		
	}

	if ( iTotalPaginas > iPagina )
	sHtmlPaginas += '<li><a class="siguiente" href="javascript:paginado('+(iPagina+1)+');">Siguiente</a></li>';
	
	return sHtmlPaginas;
}

function paginado (iPagina) { 
	
	$("#listado").html('');	
	var aHotel = new Array();	
	iResultado = datosHotel.resultados;
	
	iMensajeError = datosHotel.mensajeError;			
	aResultados = null;
	aResultados = datosHotel.result;
	if ( iResultado > 0 ) {		
		var i = 0;
		var j = 0;
		var ini = (iPagina*iPaginado);
		var fin = (ini+(iPaginado-1));		
		$.each(aResultados, function(index) {
			if (i >= ini ) {				
				aHotel[i] = aResultados[index];
				j++;
				if (i >= fin ) return false;
			} // 
			i++;
		});	
		iResultado = datosHotel.resultados;	
		var numHoteles = crearTotalHoteles(iResultado, datosHotel.textoNumero);
		$('#numHoteles').html($(numHoteles));
		resultadoLisatdo = $("#hotelTemplate").tmpl(aHotel);

		$("#listado").append(resultadoLisatdo);
		$('#menu_hoteles').show();
		listaPaginas (datosHotel,iPaginado,iPagina);
	} else { 
		$('#menu_hoteles').hide(); 
		$("#listado").append('<div class="noDisponible"><h1 class="listado_noDisponible">'+iMensajeError+'</h1></div>');
		$('#numHoteles').html('');
		//alert(iMensajeError);
	}
	//cargadorHoteles(0);
	$('#listado').slideDown('slow');				
}

function crearTotalHoteles(iResultado, textoNumero) {
	var total = $(document.createElement('h2')).html(iResultado + ' ' +textoNumero);
	return total;
} // 		

// Cargador Ajax de Hoteles
function cargadorHoteles (opcion) {
	var vacio = '';
	if (opcion == 1) {
	$('.cargadorHotelesAjax').html(cargador); $( "#dialog-message" ).dialog('open'); }
	else {
	$('.cargadorHotelesAjax').html(vacio); $( ".index-principal" ).css('display',''); $( "#dialog-message" ).dialog('close'); }
} //

function irHotel (url) {	
	location.href = url;
	return true; 
}

function restar(dia1,mes1,ano1,dia2,mes2,ano2) {
 fecha1=new Date(ano1,mes1-1,dia1);
 fecha2=new Date(ano2,mes2-1,dia2);
 var resta=(fecha2-fecha1)/1000/3600/24; 
 return resta;
} // function restar(dia1,mes1,ano1,dia2,mes2,ano2)


function calculaConsecutivo () {	
    $('#infoCalen').html('');    
	var fechaIni = $('#datepickerE').val();
	var fechaFin = $('#datepickerS').val();
	var afechaIni = fechaIni.split('/');
	var afechaFin = fechaFin.split('/');
	
	var nDias = restar(afechaIni[0],afechaIni[1],afechaIni[2],afechaFin[0],afechaFin[1],afechaFin[2]);

    // Creamos Objeto Fecha
    var oDate = new Date(afechaIni[2],afechaIni[1]-1,afechaIni[0]);
    var milisegundos = 0;
    var bConsecutivo = false;
    var bConsecutivoCont = 0;
    var bAlgunDiaCerrado = false;
    var sAlgunDiaCerrado = '';
    var sMensajeCalen = '';
    var dia;
    var mes;
    var anio;

    for ( var i=1; i<= nDias+1; i++ ) {
        var tiempo=oDate.getTime();
        oDate.setTime(parseInt(tiempo+milisegundos));
        dia=oDate.getDate();
        mes=oDate.getMonth()+1;
        anio=oDate.getYear()+1900;
        if(anio > 3000) anio=anio-1900;
        if (mes < 10) mes = '0'+mes;
        if (mes == 10 && dia == 31) oDate.setHours(oDate.getHours()+1);
        if (dia < 10) dia = '0'+dia;
        var fechaDia = anio+""+mes+""+dia;
        var fechaDiaFormato = dia+'/'+mes+'/'+anio;
        /**********************************************************************/
        /*if (FECHAS_CIERRE[fechaDia]) {
            bAlgunDiaCerrado = true;
            sAlgunDiaCerrado += '- '+fechaDiaFormato+'<br /> ';
        } // if (FECHAS_CIERRE[fechaDia])
        if (FECHAS_CIERRE[fechaDia] !== true)
            bConsecutivoCont++;*/
        /**********************************************************************/
        
		if (FECHAS_CIERRE[fechaDia] === true) {
			//alert(fechaDia+' - '+FECHAS_CIERRE[fechaDia]);
            bAlgunDiaCerrado = true;
        }
		
		//print_r(FECHAS_APERTURA);		
        if (FECHAS_APERTURA[fechaDia] === true) {
            sAlgunDiaCerrado += '- '+fechaDiaFormato+'<br /> ';
        } // if (FECHAS_APERTURA[fechaDia])
		
        if (FECHAS_CIERRE[fechaDia] !== true)
            bConsecutivoCont++;
        /**********************************************************************/

        milisegundos = parseInt(24*60*60*1000);
    } // for ( var i=1; i<= nDias; i++ )
	//alert(bAlgunDiaCerrado+'-'+bConsecutivoCont);
    $('#infoCalen').html('');
	sMensajeCalen += '<div id="msgCierre" class="capCierre">';
	
    if (bConsecutivoCont < 1) {		
        bloquearReserva();				
		/* Bloqueo de Ventas solo Espaņa
		if (anyoSelect == '2011') { 
			if ('msg:DOMINIO:msg' != 'www.travelparks.com') sMensajeCalen += parqueCerrado;
			else sMensajeCalen += 'msg:NODOSMILONCE:msg'; 
		}else{ 
		*/
		sMensajeCalen += parqueCerrado;  //}
		sMensajeCalen += '</div>';
		$('#infoCalen').html(sMensajeCalen);
		$('#modificar').hide();
		return false;
	} else { $('#modificar').show();  restablecer(); } // if (bConsecutivoCont < 1)
			
    if (bAlgunDiaCerrado) {
        //sMensajeCalen += textoCalendar1+'<br /><br />'+sAlgunDiaCerrado+'<br /> '+textoCalendar2+'<br />'+aceptarCierre; // Descomentar cuando haga falta "Aceptar el cierre"
        sMensajeCalen += textoCalendar1+'<br /><br />'+sAlgunDiaCerrado+'<br /> '+textoCalendar2+'<br />'; // Comentar cuando haga falta "Aceptar el cierre"		
    }
	sMensajeCalen += '</div>';
	if (bAlgunDiaCerrado || bConsecutivoCont < 1 ) { 		
		//bloquearReserva(); // Descomentar cuando haga falta "Aceptar el cierre"
		$('#infoCalen').html(sMensajeCalen);
		//$('#modificar').hide(); // Descomentar cuando haga falta "Aceptar el cierre"
	}else { restablecer(); $('#modificar').show(); }
} // function

function print_r(theObj){
   if(theObj.constructor == Array || theObj.constructor == Object){
      document.write("<ul>")
      for(var p in theObj){
         if(theObj [p] .constructor == Array || theObj [p] .constructor == Object){
            document.write("<li> ["+p+"]  => "+typeof(theObj)+"</li>");
            document.write("<ul>")
            print_r(theObj [p] );
            document.write("</ul>")
         } else {
            document.write("<li> ["+p+"]  => "+theObj [p] +"</li>");
         }
      }
      document.write("</ul>")
   }
}

function restablecer() {
    $("#buscador_hoteles input").attr('disabled','');
	$("#buscador_hoteles select").attr('disabled','');
	$("#botonReserva").css('display','');	
}

function fAceptarCierre() {
	return false;
	$('#msgCierre').css('border-color','green');
	$('#sCierre').html(''); 
	$('#modificar').css('display','');	
	restablecer();	
} // function aceptarCierre()
	
function bloquearReserva () {
	//return false;
	$("#buscador_hoteles input").attr('disabled','disabled');
	$("#buscador_hoteles select").attr('disabled','disabled');
    $("#datepickerE").attr('disabled','');
    $("#datepickerS").attr('disabled','');
	$("#botonReserva").css('display','none');	
} // function bloquearReserva
