﻿//ShowHideCalendar('hide');

function CallbackCalendar(HotelID, firstDateInCalendar, clickedDate) {
    var arrangementDivID = document.getElementById('ArrangementsComponentDivClientID').value;
    var CalendarDiv = document.getElementById('CalendarComponetDivClientID').value;
    var CalendarSmallDiv = document.getElementById('CalendarComponetSmallDivClientID').value;
    var SliderDiv = document.getElementById('SliderDivClientId').value;
    try {
        var ReceiptDiv = document.getElementById('HiddenReceiptWWSDivClientID').value;
        if (ReceiptDiv == null)
            ReceiptDiv = '';
    }
    catch (err) { }

    //!!!///!!!///!!! START - CHANGE TO MAKE THE NR OF DAYS NOT CHANGE WHEN CLICKING IN THE CALENDAR //!!!///!!!///!!!
    //!!!///!!!///!!! Delete this to allow to change the nr of nights by clicking in the regular calendar //!!!///!!!///!!!
    var dropdownIndex = document.getElementById('NumberOfNightsDDL').selectedIndex;
    var NrOfNights = document.getElementById('NumberOfNightsDDL')[dropdownIndex].value;
    //!!!///!!!///!!! END - CHANGE TO MAKE THE NR OF DAYS NOT CHANGE WHEN CLICKING IN THE CALENDAR //!!!///!!!///!!!

    TransitionForCallback(CalendarDiv, 'in', 'calendar');
    TransitionForCallback('calendarSmallWrapperDiv', 'in', 'calendarsmall');
    //TransitionForCallback(ReceiptDiv, 'in', 'receipt');
    TransitionForCallback(arrangementDivID, 'in', 'arrangement');
    TransitionForCallback(SliderDiv, 'in', 'slider');

    var strUrlParams = 'cb=CallbackCalendar&h=' + HotelID + '&firstDateInCalendar=' + firstDateInCalendar +
                '&clickedDate=' + clickedDate + '&CalendarDiv=' + CalendarDiv + '&ReceiptDiv=' + ReceiptDiv +
                '&arrangementDivID=' + arrangementDivID + '&CalendarSmallDiv=' + CalendarSmallDiv +
                '&SliderDiv=' + SliderDiv + '&NrOfNights=' + NrOfNights;

    Ajax_Send_W(strUrlParams, afterCallbackCalendar);
}

function afterCallbackCalendar() {
    var str = Ajax_Receive();

    if (str != null && str != "") {
        var Res = str.split('&|&|&');
        if (Res.length >= 10) {
            //Res[0],Res[1] - Calendar
            //Res[2],Res[3] - Calendar Small
            //Res[4],Res[5] - Arrangements    
            //Res[6],Res[7] - Slider
            //Res[8],Res[9] - QS


            document.getElementById(Res[0]).innerHTML = Res[1];
            document.getElementById(Res[2]).innerHTML = Res[3];
            document.getElementById(Res[4]).innerHTML = Res[5];
            document.getElementById(Res[6]).innerHTML = Res[7];
            updateQueryString(Res[9]);
            //document.getElementById(Res[8]).innerHTML = Res[9];

            TransitionForCallback(Res[0], 'out', 'calendar');
            TransitionForCallback('CalendarSmallDiv', 'out', 'calendarsmall');
            TransitionForCallback(Res[4], 'out', 'arrangement');
            TransitionForCallback(Res[6], 'out', 'slider');
            //TransitionForCallback(Res[8], 'out', 'receipt');      

            CheckAndExpandArrangements();
            //ShowHideCalendar('notvisible');
            MoveSliderAfterCallback();
        }
    }
}

function CallbackCalendarPeriod_Small(Type, HotelID, FirstDateInCalendar) {
    var CalendarDiv = document.getElementById('CalendarComponetDivClientID').value;
    var CalendarSmallDiv = document.getElementById('CalendarComponetSmallDivClientID').value;
    try {
        var ReceiptDiv = document.getElementById('HiddenReceiptWWSDivClientID').value;
        if (ReceiptDiv == null)
            ReceiptDiv = '';
    }
    catch (err) { }

    //alert(Type);
    TransitionForCallback('calendarSmallWrapperDiv', 'in', 'calendarsmall');

    var strUrlParams = 'cb=CallbackCalendarPeriod&type=' + Type + '&h=' + HotelID + '&firstDateInCalendar=' + FirstDateInCalendar +
                '&CalendarDiv=' + CalendarDiv + '&ReceiptDiv=' + ReceiptDiv + '&CalendarSmallDiv=' + CalendarSmallDiv;

    Ajax_Send_W(strUrlParams, afterCallbackCalendarPeriod_Small);
}

function afterCallbackCalendarPeriod_Small() {
    var str = Ajax_Receive();

    if (str != null && str != "") {
        var Res = str.split('&|&|&');
        if (Res.length >= 5) {
            //                alert('Res[0] - ' + Res[0]);
            //                alert('Res[1] - ' + Res[1]);
            //                alert('Res[2] - ' + Res[2]);
            //                alert('Res[3] - ' + Res[3]);
            //                alert('Res[4] - ' + Res[4]);

            //The Big Calendar
            document.getElementById(Res[0]).innerHTML = Res[1];
            //The Small calendar
            document.getElementById(Res[2]).innerHTML = Res[3];

            //Res[4] - is the type and we use it to see if we should hide or not the small callendar
            //alert(Res[4]);
            if (Res[4] == 'previousmonth' || Res[4] == 'nextmonth')
                ShowHideCalendar('visible');
            //                if (Res[4] != 'previousmonth' && Res[4] != 'nextmonth')
            //                    ShowHideCalendar('notvisible');
            //                else
            //                    ShowHideCalendar('visible');
            TransitionForCallback('calendarSmallWrapperDiv', 'out', 'calendarsmall');
        }
    }
}

function CallbackCalendarPeriod_Regular(Type, HotelID, FirstDateInCalendar) {
    var CalendarDiv = document.getElementById('CalendarComponetDivClientID').value;
    var CalendarSmallDiv = document.getElementById('CalendarComponetSmallDivClientID').value;
    try {
        var ReceiptDiv = document.getElementById('HiddenReceiptWWSDivClientID').value;
        if (ReceiptDiv == null)
            ReceiptDiv = '';
    }
    catch (err) { }

    TransitionForCallback(CalendarDiv, 'in', 'calendar');
    
    var strUrlParams = 'cb=CallbackCalendarPeriod&type=' + Type + '&h=' + HotelID + '&firstDateInCalendar=' + FirstDateInCalendar +
                '&CalendarDiv=' + CalendarDiv + '&ReceiptDiv=' + ReceiptDiv + '&CalendarSmallDiv=' + CalendarSmallDiv;

    Ajax_Send_W(strUrlParams, afterCallbackCalendarPeriod_Regular);
}

function afterCallbackCalendarPeriod_Regular() {
    var str = Ajax_Receive();

    if (str != null && str != "") {
        var Res = str.split('&|&|&');
        if (Res.length >= 5) {
            //                alert('Res[0] - ' + Res[0]);
            //                alert('Res[1] - ' + Res[1]);
            //                alert('Res[2] - ' + Res[2]);
            //                alert('Res[3] - ' + Res[3]);
            //                alert('Res[4] - ' + Res[4]);

            //The Big Calendar
            document.getElementById(Res[0]).innerHTML = Res[1];
            //The Small calendar
            document.getElementById(Res[2]).innerHTML = Res[3];

            //Res[4] - is the type and we use it to see if we should hide or not the small callendar
            //alert(Res[4]);
//            if (Res[4] == 'previousmonth' || Res[4] == 'nextmonth')
//                ShowHideCalendar('visible');
            //                if (Res[4] != 'previousmonth' && Res[4] != 'nextmonth')
            //                    ShowHideCalendar('notvisible');
            //                else
            //                    ShowHideCalendar('visible');
            
            //var CalendarDiv = document.getElementById('CalendarComponetDivClientID').value;
            TransitionForCallback(Res[0], 'out', 'calendar');
        }
    }
}

function CallbackCalendarSmall(HotelID, firstDateInCalendar, clickedDate, Type) {
    var arrangementDivID = document.getElementById('ArrangementsComponentDivClientID').value;
    var CalendarDiv = document.getElementById('CalendarComponetDivClientID').value;
    var CalendarSmallDiv = document.getElementById('CalendarComponetSmallDivClientID').value;
    var SliderDiv = document.getElementById('SliderDivClientId').value;
    try {
        var ReceiptDiv = document.getElementById('HiddenReceiptWWSDivClientID').value;
        if (ReceiptDiv == null)
            ReceiptDiv = '';
    }
    catch (err) { }

    //TransitionForCallback(CalendarDiv, 'in', 'calendar');
    //TransitionForCallback('calendarSmallWrapper', 'in', 'calendarsmall');
    //TransitionForCallback(ReceiptDiv, 'in', 'receipt');

    TransitionForCallback(arrangementDivID, 'in', 'arrangement');

    document.getElementById('hidSmallCalendarVisibility').value = document.getElementById('calendarSmallWrapperDiv').style.visible;

    var dropdownIndex = document.getElementById('NumberOfNightsDDL').selectedIndex;
    var NrOfNights = document.getElementById('NumberOfNightsDDL')[dropdownIndex].value;
    //alert(NrOfNights);

    var strUrlParams = 'cb=CallbackCalendarSmall&h=' + HotelID + '&firstDateInCalendar=' + firstDateInCalendar +
                '&clickedDate=' + clickedDate + '&CalendarDiv=' + CalendarDiv + '&ReceiptDiv=' + ReceiptDiv +
                '&arrangementDivID=' + arrangementDivID + '&TypeOfControl=smallCalendar' + '&NrOfNights=' + NrOfNights +
                '&CalendarSmallDiv=' + CalendarSmallDiv + '&SliderDiv=' + SliderDiv + "&Type=" + Type;

    Ajax_Send_W(strUrlParams, afterCallbackSmallCalendar);
}

function afterCallbackSmallCalendar() {
    var str = Ajax_Receive();

    if (str != null && str != "") {
        var Res = str.split('&|&|&');
        //alert(Res.length);
        if (Res.length >= 10) {
            //                alert('Res[0] - ' + Res[0]);
            //                alert('Res[1] - ' + Res[1]);
            //                alert('Res[2] - ' + Res[2]);
            //                alert('Res[3] - ' + Res[3]);
            //                alert('Res[3] - ' + Res[4]);
            //                alert('Res[5] - ' + Res[5]);
            //                alert('Res[6] - ' + Res[6]);
            //                alert('Res[7] - ' + Res[7]);

            //Res[0],Res[1] - Calendar
            //Res[2],Res[3] - Calendar Small
            //Res[4],Res[5] - Arrangements    
            //Res[6],Res[7] - Slider
            //Res[8],Res[9] - QS


            document.getElementById(Res[0]).innerHTML = Res[1];
            document.getElementById(Res[2]).innerHTML = Res[3];
            document.getElementById(Res[4]).innerHTML = Res[5];
            document.getElementById(Res[6]).innerHTML = Res[7];
            updateQueryString(Res[9]);
            //document.getElementById(Res[8]).innerHTML = Res[9];

            TransitionForCallback(Res[4], 'out', 'arrangement');
            TransitionForCallback(Res[6], 'out', 'slider');

            var theVisibility = document.getElementById('hidSmallCalendarVisibility').value;
            CheckAndExpandArrangements();
            MoveSliderAfterCallback();

            //if (theVisibility == 'none')
            //ShowHideCalendar('notvisible');                
        }
    }
}

function ShowHideCalendar(showOrHide) {

    //alert(showOrHide);
    if (showOrHide == 'show')
        $('.calendarSmallDiv #calendarSmallWrapperDiv').slideToggle('fast');
    else if (showOrHide == 'hide')    
        $('#calendarSmallWrapperDiv').slideToggle('fast');
    else if (showOrHide == 'notvisible')
        document.getElementById('calendarSmallWrapperDiv').style.display = 'none';
    else if (showOrHide == 'visible')
        document.getElementById('calendarSmallWrapperDiv').style.display = 'block';
    //alert('a');
}

function ShowSingleOrDoubleRoomRates(singleOrDouble, selectTab, NrOfTabs) {
    var CalendarDiv = document.getElementById('CalendarComponetDivClientID').value;

    if (singleOrDouble == "single") {
        //alert(singleOrDouble);
        var singleR1 = $("div.calendarItemWrapper span[theType = 'single']");
        singleR1.attr('style', 'display:block');
        var doubleR1 = $("div.calendarItemWrapper span[theType = 'double']");
        doubleR1.attr('style', 'display:none');
    }
    else if (singleOrDouble == "double") {

        var singleR2 = $("div.calendarItemWrapper span[theType = 'single']");
        //alert(singleR2.length);
        singleR2.attr('style', 'display:none');
        var doubleR2 = $("div.calendarItemWrapper span[theType = 'double']");
        doubleR2.attr('style', 'display:block');
    }

    TransitionForCallback(CalendarDiv, 'in', 'calendar');

    SelectCalendarTabW(selectTab, NrOfTabs);

    TransitionForCallback(CalendarDiv, 'out', 'calendar');
}
