//Id's de las fechas en session
var FechaIni = new Date(); 
var anio = FechaIni.getFullYear();
var mes = FechaIni.getMonth() + 1;
var dia = FechaIni.getDate() + 30;
var FechaFin = new Date(FechaIni.getFullYear(), FechaIni.getMonth(), FechaIni.getDate() + 35);
var anioF = FechaFin.getFullYear();
var mesF = FechaFin.getMonth() + 1;
var diaF = FechaFin.getDate();

var fechaI = dia + '-' + mes + '-' + anio;
var fechaF = diaF + '-' + mesF + '-' + anioF;

var fechaDesdeSession = fechaI;
var fechaHastaSession = fechaF;
//Class de la imagen del calendario
var imagenCalendarioClass='ImgCalendar';
var numeroNoches=0;

//Inicializamos Calendarios
//function initVarsCalendario(initVar) 
//{
//    fechaDesdeSession = initVar.fechaDesdeSession;
//    fechaHastaSession = initVar.fechaHastaSession;
//    imagenCalendarioClass = initVar.imagenCalendarioClass;
//}
var $j = jQuery.noConflict();

$j(document).ready(function () 
{
    //Funcion para Inicializar Calendario
    $j.datepicker.setDefaults(
	{
        monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
        monthNamesShort: ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'],
        dayNamesMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],
        showAnim: '',
        numberOfMonths: 2,
        showButtonPanel: true,
        firstDay: 0,
        currentText: 'Today',
        closeText: 'Ok',
        dateFormat: 'dd/M/yy',
		disabled:true
    });
//Funcion para Agregar dias a una fecha
    function addDays(myDate, days, format) 
	{
        return $j.datepicker.formatDate(format, new Date(myDate.getFullYear(), myDate.getMonth(), myDate.getDate() + days));
    }

 //Funcionalidad de Calendarios "Desde Hasta" 
    function rangoFechas(campoIda, campoRegreso,daysMin) 
	{
        var fechas = $j('#' + campoIda + ',#' + campoRegreso).datepicker(
		{
            minDate: 0,
            beforeShow: function (input, inst) 
			{
				inputOffset = $j(input).offset();
				if((inputOffset.left + 415) > parseInt($j('body').width()))
				{
					inst.dpDiv.css({marginLeft: ($j('body').width()-(inputOffset.left + 415) - 20) + 'px'});
				}
                var parentForm = $j(this).parents('form');
                if (this.id == campoRegreso & $j('input[id=status_calendar]', parentForm).val() == '0') 
				{
                    //Inicializamos minDate del Calendario Hasta
                    var minDateInit = fechaDesdeSession.split('-');
					
                    $j(this).datepicker('option', 'minDate', addDays(new Date(minDateInit[2], minDateInit[1] - 1, minDateInit[0]), daysMin, 'dd/M/yy'));
                }
            },
            onSelect: function (selectedDate) 
			{
                var instance = $j(this).data('datepicker');
                var parentForm = $j(this).parents('form');
                if (this.id == campoIda) 
				{
                    //Actualizamos Fechas en el formulario 'Desde'
                    $j('input[name=dia_desde]', parentForm).val(instance.selectedDay);
                    $j('input[name=mes_desde]', parentForm).val(instance.selectedMonth + 1);
                    $j('input[name=anio_desde]', parentForm).val(instance.selectedYear);
					$j('input[name=status_calendar]', parentForm).val(1);
					
                    //Hacemos Bloqueo de fechas minDate solo para el calendario 'Hasta'
                    var datemin = $j.datepicker.parseDate(instance.settings.dateFormat || $j.datepicker._defaults.dateFormat, addDays(new Date(instance.selectedYear, instance.selectedMonth, instance.selectedDay), daysMin, 'dd/M/yy'), instance.settings);
                    $j('#' + campoRegreso).datepicker("option", 'minDate', datemin);

                    //Verificamos si es mayor o igual la fecha "Desde" a la fecha "Hasta", si es asi, actulizamos dia hasta
					//if ($j('#' + campoIda).datepicker('getDate')>=$j('#' + campoRegreso).datepicker('getDate')) {   
					if (instance.selectedDay >= $j('input[name=dia_hasta]', parentForm).val() || (instance.selectedMonth + 1) >= $j('input[name=mes_hasta]', parentForm).val() || instance.selectedYear >= $j('input[name=anio_hasta]', parentForm).val())
					{					
						$j('#' + campoRegreso).datepicker('setDate', addDays(datemin, numeroNoches, 'dd/M/yy')); //Agregamos 4
                        var fechaActualizada = $j('#' + campoRegreso).datepicker('getDate');
                        $j('input[name=dia_hasta]', parentForm).val(fechaActualizada.getDate());
                        $j('input[name=mes_hasta]', parentForm).val(fechaActualizada.getMonth() + 1);
                        $j('input[name=anio_hasta]', parentForm).val(fechaActualizada.getFullYear());
                    }
                } 
				else 
				{
                    //Actualizamos Fechas en el formulario 'Hasta'
                    $j('input[name=dia_hasta]', parentForm).val(instance.selectedDay);
                    $j('input[name=mes_hasta]', parentForm).val(instance.selectedMonth + 1);
                    $j('input[name=anio_hasta]', parentForm).val(instance.selectedYear);
		            $j('input[name=status_calendar]', parentForm).val(1);
                }
            }
        });
    }
	
	// Calendarios Expedia
	function rangoFechasExp(campoIda, campoRegreso) 
	{
        var fechas = $j('#' + campoIda + ',#' + campoRegreso).datepicker(
		{
            minDate: 0,
			dateFormat: 'mm/dd/yy',
            onSelect: function (selectedDate) 
			{
                var instance = $j(this).data('datepicker');
                var parentForm = $j(this).parents('form');
                if (this.id == campoIda) 
				{

                    var datemin = $j.datepicker.parseDate(instance.settings.dateFormat || $j.datepicker._defaults.dateFormat, addDays(new Date(instance.selectedYear, instance.selectedMonth, instance.selectedDay), 1, 'mm/dd/yy'), instance.settings);
                    //Verificamos si es mayor o igual la fecha "Desde" a la fecha "Hasta", si es asi, actulizamos dia hasta
                    if ($j('#' + campoIda).datepicker('getDate')>=$j('#' + campoRegreso).datepicker('getDate')) 
					{
                        $j('#' + campoRegreso).datepicker('setDate', addDays(datemin, numeroNoches, 'mm/dd/yy')); //Agregamos 4
                    }
					//Hacemos Bloqueo de fechas minDate solo para el calendario 'Hasta'
                    $j('#' + campoRegreso).datepicker("option", 'minDate', datemin);
                } 
            }
        });
    }	
	

    //Funcion para inicializar fechas de Calendarios "Desde Hasta"
    function initFechas(campoIda, campoRegreso,formatoFecha) 
	{
		//alert($j('#fechaIda').val());
		//alert($j('#fechaRegreso').val());
		
			
		if (($j('#fechaIda').val() != undefined || $j('#fechaIda').val() != '') && (fechaDesdeSession != undefined || fechaDesdeSession != ''))
		{
			var fechadesde = $j('#fechaIda').val().split('/');
        	var fechahasta = $j('#fechaRegreso').val().split('/');
			
			fechadesde = $j.datepicker.formatDate(formatoFecha, new Date(fechadesde[2], GetMes(fechadesde[1])-1, fechadesde[0]));
			fechahasta = $j.datepicker.formatDate(formatoFecha, new Date(fechahasta[2], GetMes(fechahasta[1])-1, fechahasta[0]));			
		}
		
		if ((fechaDesdeSession != undefined || fechaDesdeSession != '') && ($j('#fechaIda').val() == undefined || $j('#fechaIda').val() == ''))
		{		
			var fechadesde = fechaDesdeSession.split('-');
			var fechahasta = fechaHastaSession.split('-');
			
			fechadesde = $j.datepicker.formatDate(formatoFecha, new Date(fechadesde[2], fechadesde[1] - 1, fechadesde[0]));
			fechahasta = $j.datepicker.formatDate(formatoFecha, new Date(fechahasta[2], fechahasta[1] - 1, fechahasta[0]));			
		}
		
		
		
		/*if (($j('#fechaIda').val() != undefined || $j('#fechaIda').val() != ''))
		{
			var fechadesde = $j('#fechaIda').val().split('/');
        	var fechahasta = $j('#fechaRegreso').val().split('/');
			
			fechadesde = $j.datepicker.formatDate(formatoFecha, new Date(fechadesde[2], GetMes(fechadesde[1])-1, fechadesde[0]));
			fechahasta = $j.datepicker.formatDate(formatoFecha, new Date(fechahasta[2], GetMes(fechahasta[1])-1, fechahasta[0]));			
		}		
		else
		{		
			var fechadesde = fechaDesdeSession.split('-');
			var fechahasta = fechaHastaSession.split('-');
			
			fechadesde = $j.datepicker.formatDate(formatoFecha, new Date(fechadesde[2], fechadesde[1] - 1, fechadesde[0]));
			fechahasta = $j.datepicker.formatDate(formatoFecha, new Date(fechahasta[2], fechahasta[1] - 1, fechahasta[0]));			
		}
		*/
				
        //Inicializamos Fechas de Calendario	
        $j('#' + campoIda).datepicker('setDate', (fechadesde == undefined || fechadesde == '' ? +7 : fechadesde));
        $j('#' + campoRegreso).datepicker('setDate', (fechahasta == undefined || fechahasta == '' ? +8 : fechahasta));
		
        $j('.' + imagenCalendarioClass).click(function () 
		{		
            $j(this).prev().datepicker('show');
        });
    }

	//Funcionalidad Calendario "Desde"
    function rangoFecha(campoIda) 
	{
        var fechas = $j('#' + campoIda).datepicker(
		{
            minDate: 0,
            onSelect: function (selectedDate) 
			{
                var instance = $j(this).data('datepicker');
                var parentForm = $j(this).parents('form');
                //Actualizamos Fechas en el formulario 'Desde'
                $j('input[name=dia_desde]', parentForm).val(instance.selectedDay);
                $j('input[name=mes_desde]', parentForm).val(instance.selectedMonth + 1);
                $j('input[name=anio_desde]', parentForm).val(instance.selectedYear);
            }
        });
    }
	//Funcion para inicializar fecha de Calendario "Desde"
    function initFecha(campoIda) 
	{
        var fechadesde = fechaDesdeSession.split('-');
        fechadesde = $j.datepicker.formatDate('dd/M/yy', new Date(fechadesde[2], fechadesde[1] - 1, fechadesde[0]));
        //Inicializamos Fechas de Calendario	
        $j('#' + campoIda).datepicker('setDate', (fechadesde == undefined || fechadesde == '' ? +7 : fechadesde));
        $j('.' + imagenCalendarioClass).click(function () 
		{
            $j(this).prev().datepicker('show');
        });
    }
	
	function GetMes(elMes)
	{
		var Mes;
		switch (elMes)
		{
			case  "Jan":   
				Mes=1;
				break;
			case  "Feb":   
				Mes=2;
				break;
			case  "Mar":   
				Mes=3;
				break;
			case  "Apr":   
				Mes=4;
				break;
			case  "May":   
				Mes=5;
				break;
			case  "Jun":   
				Mes=6;
				break;
			case  "Jul":   
				Mes=7;
				break;
			case  "Aug":   
				Mes=8;
				break;
			case  "Sep":   
				Mes=9;
				break;
			case  "Oct":  
				Mes=10;
				break;
			case  "Nov":  
				Mes=11;
				break;
			case  "Dec": 
				Mes=12;
				break;				
		}
		return Mes;
	}

	
     //Iniciamos la funcionalidad de los calendarios
    rangoFechas('fechaIda', 'fechaRegreso',1);		
	//rangoFechas('imgIda', 'imgRegreso',1);

    //Inicializamos las Fechas de los Calendarios
    initFechas('fechaIda', 'fechaRegreso','dd/M/yy');
	
});// JavaScript Document
