var idFincaHotel = 1;
var totin = 0, resin = 0;
var totalHabitaciones = [];
var reservasHabitaciones = [];
/***************** OBJETO INTERVALO Y FUNCION PARA CARGAR RANGOS *******/

function Intervalo()
{
	this.fechaInicial;
	this.fechaFinal;
	this.total;
}

function parseDataToIntervalo( fincaHotelArray, data )
{	
	if (data.length != 0)
	{
		var filas = data.split("#");
		var i = 0;

		if ( filas.length >= 0)
			while ( i < (filas.length - 1) )
			{
				fila = filas[ i ].split("|");
				fincaHotel = new Intervalo();	
				fincaHotel.fechaInicial = new Date( fila[ 0 ] );
				fincaHotel.fechaFinal = new Date( fila[ 1 ] );
				fincaHotel.total = fila[2];
				fincaHotelArray[ i ] = fincaHotel;
				i++;
				//alert(fincaHotel.fechaInicial+"\n"+fincaHotel.fechaFinal+"\n"+fila[ 0 ]+"\n"+fila[ 1 ] );
			}
	}
}
/********************************************************************************/

/****************INICIALIZACION DE DATOS D RESERVA DESDE LA BD *******************/

function initDisponibilidad()
{
	totalHabitaciones = [];
	reservasHabitaciones = [];
	getTotalHabitaciones();
	getReservasHabitaciones();
}

function getTotalHabitaciones()
{
	var url = '../controller/reservas/ControllerDisponibilidad.php' ;
	var param = "fini=2007/01/01&ffin=2008/01/01&id_finca="+idFincaHotel+"&option=2";
	
	var ajaxRequest = new Ajax.Request(
                        url,
                        {
                                method: 'post',
                                parameters: param,
                                asynchronous: true,
                                onComplete: loadTotalHabitaciones
                        }); 
}

function loadTotalHabitaciones(response)
{
	parseDataToIntervalo(totalHabitaciones,response.responseText);
	totin = 1;
	initCalendar();
}

function getReservasHabitaciones()
{
	var url = '../controller/reservas/ControllerDisponibilidad.php' ;
	var param = "fini=2007-01-01&ffin=2008-01-01&id_finca="+idFincaHotel+"&option=1";
	
	var ajaxRequest = new Ajax.Request(
                        url,
                        {
                                method: 'post',
                                parameters: param,
                                asynchronous: true,
                                onComplete: loadReservasHabitaciones
                        }); 
}

function loadReservasHabitaciones(response)
{
	parseDataToIntervalo(reservasHabitaciones,response.responseText);
	resin = 1;
	initCalendar();	
}

/********************************************************************************/
/************************* FUNCIONES DE UTILIDAD **********************************/

function fechaEnRango( fecha, liminf, limsup)
{
	if( fecha >=liminf && fecha <= limsup )
		return true;
	else
		return false;
}

 function getTotalHabitacionesDia( date )
 {
 	for ( i=0; i<totalHabitaciones.length; i++ )
 	{
 		if ( fechaEnRango( date, totalHabitaciones[i].fechaInicial, totalHabitaciones[i].fechaFinal) )
 			return totalHabitaciones[i].total;
 	}
 	return 0;
 }


/************************** FUNCIONES DE CALENDARIO **************************/


function evaluarFecha(date, y, m, d) 
 {
 	var fecha = new Date(y,m,d);
	var cont = 0;
	
	for ( i=0; i<reservasHabitaciones.length; i++ )
 		if ( fechaEnRango( fecha, reservasHabitaciones[i].fechaInicial, reservasHabitaciones[i].fechaFinal) )
 			cont ++;

 	var temp = getTotalHabitacionesDia(fecha);
 	//alert( date + "--" + temp + "--" + cont);
	return seleccionarEstilo(cont, temp);
 }
 
 
function seleccionarEstilo(numRes, totRes)
{
	if (totRes <= 0 )
		return true;
	else
		if (  numRes>0 ) 
	 		if (numRes >= totRes )
	 			return "FullOccupied";
		 	else
		 		return "HalfOccupied";
	 	else
	 		return false;	
}

function initCalendar()
{
	if ( totin == 1 && resin == 1)
	{
		Zapatec.Calendar.setup(
		{
			firstDay          : 1,
			weekNumbers       : false,
			flat              : "calendarz",
			numberMonths 	  : 2,
			monthsInRow  	  : 2,
			dateStatusFunc    : evaluarFecha
		} );
	}
} 

//*************** LLAMADO A FUNCION PARA INICIALIZAR EL CALENDARIO *****************//
function loadAll( idFinca )
{
	idFincaHotel = idFinca;
	initDisponibilidad(); 	
	showEscogerFechas();	
}
