﻿
var InitialOffsetObject;
var InitialOffset;
var CurrentPage;

function updateQueryString(theQS) {

    //alert(theQS);
    setHash(theQS);    
        //window.location.hash = theQS;
        //window.history.go(CurrentPage);
    return false;
}

function CallbackSupplementImportance(hotelId, supplementId, importance, uqid, order_OnRequest, room_OnRequest) 
{
    var orderAmount = document.getElementById('bs4OrderAmount').value;
    var strUrlParams = 'cb=CallbackSupplementImportance&h=' + hotelId + '&supp=' + supplementId + '&importance=' + importance
        + '&uqid=' + uqid + '&orderAmount=' + orderAmount + '&order_OnRequest=' + order_OnRequest + '&room_OnRequest=' + room_OnRequest;

    Ajax_Send_W(strUrlParams, AfterCallbackSupplementImportance);
}

function AfterCallbackSupplementImportance() {
    var str = Ajax_Receive();
    if (str != "") {
        var bookingStatus = document.getElementById('bs4BookingStatus').value;
        document.getElementById(bookingStatus).innerHTML = str;
        //alert(str);
        //var Res = str.split('&|&|&');

        //if (Res.length >= 1) {
            
        //}
        return false;
    }
}

function CallbackSetProfileBS2BasedOnQS() {
    var SliderDiv = document.getElementById('SliderDivClientId').value;

    TransitionForCallback(SliderDiv, 'in', 'slider');

    var theHash = getHash();
//    if (theHash.length > 1)
//        theHash = theHash.substr(1);

    var strUrlParams = 'cb=SetProfileBS2BasedOnQS&QS=' + theHash + '&h=' + getQueryVariable('h') + '&SliderDiv=' + SliderDiv;

    Ajax_Send_W(strUrlParams, AfterCallbackSetProfileBS2BasedOnQS);
}



function AfterCallbackSetProfileBS2BasedOnQS() {
    var str = Ajax_Receive();
    if (str != "") {
        var Res = str.split('&|&|&');

        if (Res.length >= 1) {
            //alert(Res.length);
            //Res[0],Res[1] - Slider                     
            //Res[8],Res[9] - Query String

//            alert('Res[0] - ' + Res[0]);
//            alert('Res[1] - ' + Res[1]);
//            alert('Res[2] - ' + Res[2]);
//            alert('Res[3] - ' + Res[3]);
           
            document.getElementById(Res[0]).innerHTML = Res[1];
            updateQueryString(Res[3]);
            TransitionForCallback(Res[0], 'out', 'slider');
            MoveSliderAfterCallback();
        }
        return false;
    }
}

function CallbackSetProfileBasedOnQS() 
{
    var firstDateInCalendar = document.getElementById('CalendarComponentFirstNight').value;
    var calendarDiv = document.getElementById('CalendarComponetDivClientID').value;
    var calendarSmallDiv = document.getElementById('CalendarComponetSmallDivClientID').value;
    var arrangementDivID = document.getElementById('ArrangementsComponentDivClientID').value;
    var SliderDiv = document.getElementById('SliderDivClientId').value;

//    var TCompCallbackPrefix = document.getElementById('TravelCompanionsCallbackPrefix').value;
//    var TCompDivClientID = document.getElementById('TravelCompanionsComponentDivClientID').value;
//    var TCompAdults = document.getElementById('TravelCompanionsAdultsClientID').value;
//    var TCompKids = document.getElementById('TravelCompanionsKidsClientID').value;
//    var TCompBirthDateDiv = document.getElementById('TravelCompanionsBirthDateDivClientId').value;
    //var TCompBirthDate = document.getElementById('TravelCompanionsBirthDateClientId').value;

    GoToTab();
    
    document.getElementById('BoardingAndArrGeneralContentWrapper').style.display = 'none';
    document.getElementById('BoardingAndArrPreloaderDiv').style.display = 'block';
    document.getElementById('BoardingAndArrHeaderWrapper').style.display = 'block';

    document.getElementById('Step1ContentDiv').style.display = 'none';
    document.getElementById('Step1LoadingDiv').style.display = 'block';
    
    TransitionForCallback(calendarDiv, 'in', 'calendar');
    TransitionForCallback('CalendarSmallDiv', 'in', 'calendarsmall');
    TransitionForCallback(SliderDiv, 'in', 'slider');

    setHashFromQS();
    var theHash = getHash();
//    if (theHash.length > 1)
//        theHash = theHash.substr(1);
    //alert(theHash);

    var strUrlParams = 'cb=SetProfileBasedOnQS&QS=' + theHash + '&h=' + getQueryVariable('h') + '&CalendarDiv=' + calendarDiv
                                    + '&FirstDateInCalendar=' + firstDateInCalendar
                                    + '&arrangementDivID=' + arrangementDivID + '&calendarSmallDiv=' + calendarSmallDiv
                                    + '&SliderDiv=' + SliderDiv;
//                                    + '&TCompCallbackPrefix=' + TCompCallbackPrefix + '&TCompDivClientID=' + TCompDivClientID
//                                    + '&TCompAdults=' + TCompAdults + '&TCompKids=' + TCompKids
//                                    + '&TCompBirthDateDiv=' + TCompBirthDateDiv;  //+ '&TCompBirthDate=' + TCompBirthDate;

    Ajax_Send_W(strUrlParams, AfterCallbackSetProfileBasedOnQS);
}



function AfterCallbackSetProfileBasedOnQS() {
    var str = Ajax_Receive();
    if (str != "") {
        var Res = str.split('&|&|&');


        if (Res.length >= 1) 
        {
            //alert(Res.length);
            //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] - Query String


//            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]);
//            alert('Res[5] - ' + Res[5]);
//            alert('Res[6] - ' + Res[6]);
//            alert('Res[7] - ' + Res[7]);
//            alert('Res[8] - ' + Res[8]);
//            alert('Res[9] - ' + Res[9]);


            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];
            //alert('1');
            updateQueryString(Res[9]);
            //document.getElementById(Res[10]).innerHTML = Res[11];

            try {
                var theHash = getHash();
                SetAdultsDropDown(getHashVariable('Adults', theHash));
                SetKidsDropDown(getHashVariable('Kids', theHash));
                SetRoomsDropDown(getHashVariable('RoomType', theHash));
            } catch (ex) { }


            document.getElementById('BoardingAndArrGeneralContentWrapper').style.display = 'block';
            document.getElementById('BoardingAndArrHeaderWrapper').style.display = 'block';
            document.getElementById('BoardingAndArrPreloaderDiv').style.display = 'none';

            document.getElementById('Step1ContentDiv').style.display = 'block';
            document.getElementById('Step1LoadingDiv').style.display = 'none';
            
            TransitionForCallback(Res[0], 'out', 'calendar');
            TransitionForCallback('CalendarSmallDiv', 'out', 'calendarsmall');
            TransitionForCallback(Res[6], 'out', 'slider');
            
            CheckAndExpandArrangements();
            MoveSliderAfterCallback();

            //tb_init('a.thickboxCalculationOverviewHotelPage');
        }
        return false;
    }
}




function GoToTab() {
    if (document.getElementById('hidHotelPageNrOfTabs')) {
        var theHash = window.location.hash;
        if (theHash.length > 1)
            theHash = theHash.substr(1);

        //alert('theHash - ' + theHash);
        
        var Tab = getHashVariable('tab', theHash);
        var nrOfTabs = document.getElementById('hidHotelPageNrOfTabs').value;
        var selectTab = 1;
        var showMap = 'false';

        //alert('tab - ' + Tab);
        
        if (Tab.toLowerCase() == 'price') 
            selectTab = 1;        
        else if (Tab.toLowerCase() == 'description') 
            selectTab = 2;        
        else if (Tab.toLowerCase() == 'photo') 
            selectTab = 3;        
        else if (Tab.toLowerCase() == 'map') {
            selectTab = 4;
            showMap = 'true';
        }

        //alert('1 - ' + selectTab);

        if (!document.getElementById('tab' + selectTab + 'Div') || $('#tab' + selectTab + 'Div').css("display") == 'none' || selectTab > nrOfTabs) {
            selectTab = 1;
            showMap = 'false';
        }

        //alert('2 - ' + selectTab);
        
        ResizeAndHideDivs(showMap, selectTab, nrOfTabs);
//        if (Tab.toLowerCase() == 'price')
//            ResizeAndHideDivs('false', '1', nrOfTabs);
//        else if (Tab.toLowerCase() == 'description')
//            ResizeAndHideDivs('false', '2', nrOfTabs);
//        else if (Tab.toLowerCase() == 'photo')
//            ResizeAndHideDivs('false', '3', nrOfTabs);
//        else if (Tab.toLowerCase() == 'map')
//            ResizeAndHideDivs('true', '4', nrOfTabs);

    }
}



function ShowHideArrDetails(moreOrLess, id) {
    var $ba = $('#' + id);
    var $content = $ba.closest('.baItemWrapper');

     var appliedClasses = $content.attr("class");
    //alert(appliedClasses);
    
    if (appliedClasses.indexOf('baSelected') >= 0) {
        $content.removeClass('baSelected');
        $content.removeClass('baUnSelected');
        $content.addClass('baUnSelected');
    }
    else {
        $content.removeClass('baSelected');
        $content.removeClass('baUnSelected');
        $content.addClass('baSelected');
    }
    
//    if (moreOrLess == 'more') {
//        $content.removeClass('baSelected');
//        $content.removeClass('baUnSelected');
//        $content.addClass('baSelected');
//    }
//    else if (moreOrLess == 'less') {
//        $content.removeClass('baSelected');
//        $content.removeClass('baUnSelected');
//        $content.addClass('baUnSelected');
//    }
    //ResizeTsiIFrame();
    MoveSliderAfterCallback();
}

function CheckAndExpandArrangements() {
    var $allRarioButtons = $("div.BoardingAndArrWrapper input[type='radio']");
    $allRarioButtons.attr('name', 'AtrAndRB');

    var $ba = $("div.BoardingAndArrWrapper input[type='radio']:checked");
    var $pba = $ba.parent().parent();
    $pba.removeClass('baUnSelected');
    $pba.addClass('baSelected');

    var $tempPba = $pba.find('.baTitle');
    var $tempPbaAdditionalInfo = $pba.find('.baContent');
    var $tempPbaHeader = $pba.find('.baItemLine');
    $tempPba.attr('thecolor', 'selected');
    $tempPbaAdditionalInfo.attr('thecolor', 'selected');
    $tempPbaHeader.attr('thecolor', 'selected');

    $("div.BoardingAndArrWrapper input[type='radio']").click(function() {
        if ($(this).attr('checked') == true) {

            //Remeber the item that was clicked
            var $a = $(this).parent();

            //Deselect all items
            $("div.BoardingAndArrWrapper .baItemWrapper").removeClass('baSelected');
            $("div.BoardingAndArrWrapper .baItemWrapper").removeClass('baUnSelected');
            $("div.BoardingAndArrWrapper .baItemWrapper").addClass('baUnSelected');
            $("div.BoardingAndArrWrapper .baTitle").attr('thecolor', '');

            //Select the one that was clicked
            $a.removeClass('baUnSelected');
            $a.addClass('baSelected');
            var $tempA = $a.find('.baTitle');
            var $tempB = $a.find('.baContent');
            $tempA.attr('thecolor', 'selected');
            $tempB.attr('thecolor', 'selected');            
        }
    });
    //ResizeTsiIFrame();
}

function MoveSliderAfterCallback() {


    var GoToStep = 'Step_1'
    if (document.getElementById('HiddenGoToStep').value != null)
        GoToStep = document.getElementById('HiddenGoToStep').value;

    //alert('GoToStep - ' + GoToStep);
    MoveSlider(GoToStep);

    //Do this to put on the 'click' event of the "show calendar" icon the correct event
    //setTimeout("tb_init('a.thickbox','calendar');", 50);
    setTimeout("tb_init('a.thickbox');", 50);
    tb_init('a.thickboxCalculationOverviewHotelPage');
    //tb_init('a.thickboxSupplementOverview');
    // setTimeout("tb_init('a.thickbox','supplementDetails');", 50);

}

function MoveSlider(MoveToPosition) {
    //Move the slider
    //alert('MoveToPosition1 - ' + MoveToPosition);


    if ($("#SliderDivClientObject").css("display") != 'none') {
        //alert($("#SliderDivClientObject").css("display"));
   
            
        var step = MoveToPosition;
        var ScrollToPosition = MoveToPosition;

        if (ScrollToPosition.indexOf("Step_2_AllOK") >= 0)
            ScrollToPosition = "Step_2";

        var sPath = '';
        var sPage = '';
        try {
            sPath = window.location.pathname;
            sPage = sPath.substring(sPath.lastIndexOf('/') + 1).replace(".aspx", "");
            if (sPage == null)
                sPage = '';
            //alert(sPage);
        }
        catch (ex) { }

        if (sPage.indexOf('BookExtrasOverview') >= 0 || sPage.indexOf('BookFillContactInformation') >= 0
        || sPage.indexOf('BookSummary') >= 0 || sPage.indexOf('BookThankYou') >= 0)
            if (MoveToPosition.indexOf("Step_2") >= 0)
            MoveToPosition = "Step_2";

        //alert('MoveToPosition2 - ' + MoveToPosition);

        var pos = $("#" + MoveToPosition).offset();
        var width = $("#" + MoveToPosition).width();

        //Just move the slider a little bit lower, to be right near the Nr of Nights text box
        if (MoveToPosition == "Step_1_NrOfNights")
            pos.top = pos.top + 25;


        //This hides the info box of step 1, in case the slider is returning to step 1
        //It's done before the slider transition starts
        if (step.indexOf("Step_1") >= 0)
            $('#InfoBoxDivClientObject').fadeOut('fast');

        //The slider postion is moved
        $("#SliderDivClientObject").animate({
            top: pos.top - InitialOffset + "px"
        }, 1000, function() {
            //After finishing the transition of the slider we can show or hide the info box of step 1
            if (step == "Step_2")
                $('#InfoBoxDivClientObject').fadeIn('slow');
            else if (step.indexOf("Step_2_AllOK") >= 0)
                $('#InfoBoxDivClientObject').fadeOut('slow');

        });

        //Scroll the screen IF the step has changed
        var currentStep = $("#currentStep").attr('value');

        //alert('currentStep - ' + currentStep);
        //alert('MoveToPosition2 - ' + MoveToPosition);

        if (currentStep == 'none') {
            //alert('Updating current Step');

            $("#currentStep").attr('value', MoveToPosition);

            //alert($("#currentStep").attr('value'));
        }
        else if (MoveToPosition != currentStep && currentStep != 'none') {
            document.getElementById('currentStep').value = MoveToPosition;

            if (ScrollToPosition == "Step_2") {
                ScrollToPosition = "Step_1";
                var target_offset = $("#" + ScrollToPosition).offset();
                var target_top = target_offset.top - 60;
            }
            else {
                var target_offset = $("#" + ScrollToPosition).offset();
                var target_top = target_offset.top - 100;
            }

            //alert(step);
            $('html, body').animate({ scrollTop: target_top }, 1000);
            //});

            //InfoBoxDivClientObject
        }
    }
}

function ScrollUp() 
{ 
    var target_offset = $("#Step_1").offset();
    var target_top = target_offset.top - 100;

    //goto that anchor by setting the body scroll top to anchor top
    $('html, body').animate({ scrollTop: target_top }, 1000);
}

function ScrollToPhotosTab() {
    var target_offset = $("#PhotoDivAnchor").offset();
    var target_top = target_offset.top - 100;

    //goto that anchor by setting the body scroll top to anchor top
    $('html, body').animate({ scrollTop: target_top }, 1000);
}

function ScrollToPriceTab() {
    var target_offset = $("#PriceDivAnchor").offset();
    var target_top = target_offset.top - 100;

    //goto that anchor by setting the body scroll top to anchor top
    $('html, body').animate({ scrollTop: target_top }, 1000);
}

function ScrollToDescriptionTab() {
    var target_offset = $("#DescriptionDivAnchor").offset();
    var target_top = target_offset.top - 100;

    //goto that anchor by setting the body scroll top to anchor top
    $('html, body').animate({ scrollTop: target_top }, 1000);
}

function ScrollToMapTab() {
    var target_offset = $("#MapDivAnchor").offset();
    var target_top = target_offset.top - 100;

    //goto that anchor by setting the body scroll top to anchor top
    $('html, body').animate({ scrollTop: target_top }, 1000);
}


function ResizeAndHideDivs(showMap, selectTab, NrOfTabs) {

    //The Map is wider than the usual 690px of the left side, therefore we make the div wider
    var TheWidth = $("#hotel_content_left").width();

//    alert('showMap - ' + showMap);
//    alert('selectTab - ' + selectTab);
//    alert('NrOfTabs - ' + NrOfTabs);
    
    if (showMap == 'true') {
        if (TheWidth == '690' && TheWidth != '') {

            $("#hotel_content_left").width('920px');
            TransitionForCallback("divHotelMap", 'in', 'justMap');
            //LoadMapHotelPage();
            //AddAllMarkers();
            if (typeof ResetMapToDefaulHotel === 'function') {
                ResetMapToDefaulHotel(false);
                setTimeout("ResetMapToDefaulHotel(false);", 100);
                setTimeout("TransitionForCallback(\"divHotelMap\", 'out', 'justMap');", 120);
            }
        }
    }
    else {
        if (TheWidth == '920') {
            $("#hotel_content_left").width('690px');
        }
    }

    //Hide the slider and step1 info box, if not on the price tab
    if (selectTab == '1') {
        document.getElementById('SliderDivClientObject').style.display = 'block';
        document.getElementById('InfoBoxPhotosDivClientObject').style.display = 'none';

        var tmpGoToStep
        if (document.getElementById('HiddenGoToStep').value != null)
            tmpGoToStep = document.getElementById('HiddenGoToStep').value;

        if (tmpGoToStep == "Step_2")
            document.getElementById('InfoBoxDivClientObject').style.display = 'block';
    }
    else if (selectTab == '3') {
        document.getElementById('SliderDivClientObject').style.display = 'none';
        document.getElementById('InfoBoxDivClientObject').style.display = 'none';
        document.getElementById('InfoBoxPhotosDivClientObject').style.display = 'block';
    }
    else {
        document.getElementById('SliderDivClientObject').style.display = 'none';
        document.getElementById('InfoBoxDivClientObject').style.display = 'none';
        document.getElementById('InfoBoxPhotosDivClientObject').style.display = 'none';
    }
    
//    if (selectTab == '1')
//        setHashVariable('tab','price');
//    else if (selectTab == '2')
//        setHashVariable('tab','description');
//    else if (selectTab == '3')
//        setHashVariable('tab','photo');
//    else if (selectTab == '4')
//        setHashVariable('tab','map');
        
    //Display the selected tab
    SelectTabW(selectTab, NrOfTabs);

    MoveSliderAfterCallback();
}

        function TransitionForCallback(controlID, dirrection, type) 
        {
            var loadingDivClientID;
            if (type == "calendar")
                loadingDivClientID = "calendarLoading";
            else if (type == "calendarsmall")
                loadingDivClientID = "calendarSmallLoading";
            else if (type == "receipt")
                return;
            else if (type == "arrangement") 
            {
                loadingDivClientID = "arrangementsLoading";
                controlID = 'BoarderAndArrFadingDiv, #BoarderAndArrFadingTopDiv, #BoarderAndArrFadingBottomDiv';
            }            
            else if (type == "map")
                loadingDivClientID = "mapLoading";
            else if (type == "justMap")
                loadingDivClientID = "justMapLoading";
            else if (type == "slider")
                loadingDivClientID = "sliderLoading";
            else if (type == "step1")
                loadingDivClientID = "Step1LoadingDiv";   
            else if (type == "ExtrasOverview")
                loadingDivClientID = "loadingDivClientID";
            else if (type == "BS4toBS5")
                loadingDivClientID = "BS4toBS5DivClientID";       
            
            if (dirrection == "in")
            {
                $("#" + controlID).fadeTo("fast", 0.33, function() { document.getElementById(loadingDivClientID).style.display = 'block'; });             
            }
            else if (dirrection == "out")
            {                
                $("#" + controlID).fadeTo("fast", 1, function() {
                    document.getElementById(loadingDivClientID).style.display = 'none';
                    if (this.style.removeAttribute) this.style.removeAttribute("filter");
                });
            }
        }

        function CallbackCalendarRatesAndDates(Type, nrOfNights, arrangementPkey, boardingID, hotelID, arrangementOrBTIndex, arrAndBTClientID, QS)
        {            
            var firstDateInCalendar = document.getElementById('CalendarComponentFirstNight').value;
            var calendarDiv = document.getElementById('CalendarComponetDivClientID').value;
            var calendarSmallDiv = document.getElementById('CalendarComponetSmallDivClientID').value;            
            var arrangementDivID = document.getElementById('ArrangementsComponentDivClientID').value;
            var SliderDiv = document.getElementById('SliderDivClientId').value;
            
            //document.getElementById('hidReceiptDivID').value = receiptDivID;

            TransitionForCallback(calendarDiv, 'in', 'calendar');
            TransitionForCallback('CalendarSmallDiv', 'in', 'calendarsmall');
            //TransitionForCallback(receiptDivID, 'in', 'receipt');
            TransitionForCallback(arrangementDivID, 'in', 'arrangement');
            TransitionForCallback(SliderDiv, 'in', 'slider');
            
            
//            if (Type == "arrangement")
//                selectArrAndBT(arrAndBTClientID, 'Arrangement', arrangementOrBTIndex, 'HotelPage');
//            else if (Type == "boarding") 
//            {
//            //alert(boardingTypeIndex);
//            selectArrAndBT(arrAndBTClientID, 'BoardingType', arrangementOrBTIndex, 'HotelPage');
//            }

            var theHash = getHash();
//            if (theHash.length > 1)
//                theHash = theHash.substr(1);
            //alert(theHash);
            
            var strUrlParams = 'cb=ArrangementReceiptAndCalendars&h=' + hotelID + '&CalendarDiv=' + calendarDiv + '&arrangementPkey=' + arrangementPkey
                                    + '&boardingID=' + boardingID + '&nrOfNights=' + nrOfNights + '&FirstDateInCalendar=' + firstDateInCalendar
                                    + '&arrangementDivID=' + arrangementDivID + '&calendarSmallDiv=' + calendarSmallDiv
                                    + '&SliderDiv=' + SliderDiv + '&QS=' + theHash;
            
            Ajax_Send_W(strUrlParams, AfterCallbackCalendarRatesAndDates);
        }

        function AfterCallbackCalendarRatesAndDates() 
        {
            var str = Ajax_Receive();
            if (str != "") 
            {
                var Res = str.split('&|&|&');
//                alert(Res[0]);
//                alert(Res[1]);
//                alert(Res[2]);
//                alert(Res[3]);
//                alert(Res[4]);
//                alert(Res[5]);
//                alert(Res[6]);
//                alert(Res[7]);
                
                if (Res.length >= 1) 
                {
                    //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] - Query String

                    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]);

                    TransitionForCallback(Res[0], 'out', 'calendar');
                    TransitionForCallback('CalendarSmallDiv', 'out', 'calendarsmall');
                    TransitionForCallback(Res[4], 'out', 'arrangement');
                    TransitionForCallback(Res[6], 'out', 'slider');
                    
                    CheckAndExpandArrangements();                    
                    MoveSliderAfterCallback();                    
                }
                return false;
            }
        }

        
        function popup(URL) 
        {
	        day = new Date(); id = day.getTime();
	        eval("page" + id + " = window.open(URL, '" + id + "','toolbar=0,scrollbars=auto,location=0,statusbar=0,menubar=0,resizable=no,width=369,height=404,left =200,top =210');");
	        
        }


        function ChangeIfCompany(IsCompany, CompanyInfoDiv) {
            if (IsCompany == 'true') {
                document.getElementById(CompanyInfoDiv).style.display = 'block';
            }
            else {
                document.getElementById(CompanyInfoDiv).style.display = 'none';
            }
        }
        
        function CallbackInsurance(HotelID, i, p, Type) 
        {
            var SliderDiv = document.getElementById('SliderDivClientId').value;

            TransitionForCallback(SliderDiv, 'in', 'slider');
            
            strUrlParams = "cb=CallbackInsurance&h=" + HotelID.toString() + "&i=" + i.toString() + "&p=" + p.toString()
                 + "&SliderDiv=" + SliderDiv.toString() + "&Type=" + Type.toString();

            Ajax_Send_W(strUrlParams, AfterCallbackInsurance);
        }

        function AfterCallbackInsurance() 
        {
            strMessage = Ajax_Receive();

            if (strMessage != "") 
            {
                var Res = strMessage.split('&|&|&');

                if (Res.length >= 1) 
                {
                    //alert(Res.length);
                    //Res[0],Res[1] - Slider
                    //Res[2],Res[3] - TravelInsurance
                    //Res[4],Res[5] - CancelationInsurance                        

                    //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]);
                    //alert('Res[5] - ' + Res[5]);
                    
                    //alert('travel - ' + Res[3]);
                    //alert('cancel - ' + Res[5]);
                    
                    var TravelInsuranceCB = document.getElementById('hidCbTravelInsurance').value;
                    var CancelInsuranceCB = document.getElementById('hidCbCancellationInsurance').value;
                    
                    //alert('TravelInsuranceCB - ' + TravelInsuranceCB);
                    //alert('CancelInsuranceCB - ' + CancelInsuranceCB);

                    document.getElementById(Res[0]).innerHTML = Res[1];
                    //document.getElementById(TravelInsuranceCB).checked = Res[3];
                    //document.getElementById(CancelInsuranceCB).checked = Res[5];

                    if (Res[3] == 'true') 
                        document.getElementById(TravelInsuranceCB).checked = true;
                    else if (Res[3] == 'false')
                        document.getElementById(TravelInsuranceCB).checked = false;

                    if (Res[5] == 'true')
                        document.getElementById(CancelInsuranceCB).checked = true;
                    else if (Res[5] == 'false')
                        document.getElementById(CancelInsuranceCB).checked = false;
                        
                    //$('#' + TravelInsuranceCB).attr('checked', Res[3]);
                    //$('#' + CancelInsuranceCB).attr('checked', Res[5]);       
 
                    TransitionForCallback(Res[0], 'out', 'slider');

                    MoveSliderAfterCallback();
                }
                return false;
            }
        }

        function GoToBS5() 
        {
            //First show FreeBees (if applicable) and than call the CheckData for BS5
            OpenFreeBeesRedeem();
        }

        function Callback_GoToBS5() 
        {
            var hotelId = getQueryVariable('h');
            var uqid = getQueryVariable('uqid');
            var payWithFB = document.getElementById(document.getElementById('bs4hidFreeBeesPopup').value).value;

            strUrlParams = "cb=CheckDataBeforeBS5&h=" + hotelId.toString() + "&uqid=" + uqid.toString() + "&payWithFB=" + payWithFB.toString();
            Ajax_Send_W(strUrlParams, AfterCallback_GoToBS5);
        }

        function AfterCallback_GoToBS5() 
        {
            strMessage = Ajax_Receive();
            
            if (strMessage != "") {
                //alert('2');
                var current_QueryString = unescape(location.search.substr(1));
                var theHash = ltrim(getHash(),'#');
                current_QueryString = current_QueryString + '#' + theHash;
                //current_QueryString = current_QueryString.replace('##', '#');
                
                if (current_QueryString == null)
                    current_QueryString = '';


                if (strMessage.indexOf("OK_BS2") >= 0 || (strMessage.indexOf("OK_BS3") >= 0)) {
                    //Everything is ok then go to BS5
                    TransitionForCallback('divBookingSummary', 'in', 'BS4toBS5');
                    location.href = 'BookThankYouW.aspx?' + current_QueryString;
                }
                else {
                    //alert('4');
                    //Failed at phase 1 - some of the data entered on hotel page is not ok -> don't go further
                    //alert(strMessage.replace("OK_BS1", ""));
                    ShowErrorInSlider(strMessage.replace("OK_BS1", ""), 'false');
                }
            }

            return true;
        }
        
        
        function Callback_GoToBS4(HotelID) 
        {
            //alert('Checking data and going to next page');
            //alert('1');
            strUrlParams = "cb=CheckData&h=" + HotelID.toString();
            Ajax_Send_W(strUrlParams, AfterCallback_GoToBS4);
        }

        function AfterCallback_GoToBS4() {
            strMessage = Ajax_Receive();

            if (strMessage != "") {
                //alert('2');
                var current_QueryString = unescape(location.search.substr(1));
                var theHash = getHash();
                current_QueryString = current_QueryString + '#' + theHash;
                //current_QueryString = current_QueryString.replace('##', '#');
                
                if (current_QueryString == null)
                    current_QueryString = '';

                //alert(current_QueryString);

                if (strMessage.indexOf("OK_BS2") >= 0 || (strMessage.indexOf("OK_BS3") >= 0)) 
                {
                    //Everything is ok then go to phase 2 - check if all the data is entered correctly on this page
                    var checkResult = CheckBS3Data();
                    //alert(checkResult.length);
                    if (checkResult.length <= 0) 
                        Callback_SaveBS3Data();                    
                    else
                        ShowErrorInSlider(checkResult, 'false');
                        //alert(checkResult);
                        
                    ////alert("OK_BS2");
                    //location.href = 'BookSummaryW.aspx?' + current_QueryString;

                }
                else 
                {
                    //alert('4');
                    //Failed at phase 1 - some of the data entered on hotel page is not ok -> don't go further
                    ShowErrorInSlider(strMessage.replace("OK_BS1", ""), 'false');
                    //alert(strMessage.replace("OK_BS1", ""));
                    //return true;
                }
                //alert('5');
            }

            return true;
        }


        function Callback_GoToBS3(HotelID) {
            //alert(HotelID);
            strUrlParams = "cb=CheckData&h=" + HotelID.toString();
            Ajax_Send_W(strUrlParams, AfterCallback_GoToBS3);
        }



        function AfterCallback_GoToBS3() {
            strMessage = Ajax_Receive();

            if (strMessage != "") {
                var current_QueryString = unescape(location.search.substr(1));
                var theHash = getHash();
                current_QueryString = current_QueryString + '#' + theHash;
                //current_QueryString = current_QueryString.replace('##', '#');
                
                if (current_QueryString == null)
                    current_QueryString = '';

                //alert(current_QueryString);

                if (strMessage.indexOf("OK_BS2") >= 0 || (strMessage.indexOf("OK_BS3") >= 0)) {
                    //alert("OK_BS2");
                    location.href = 'BookFillContactInformationW.aspx?' + current_QueryString;                    
                }
                else {
                    ShowErrorInSlider(strMessage.replace("OK_BS1", ""), 'false');
                    //alert(strMessage.replace("OK_BS1", ""));
                    //return true;
                }
            }

            return true;
        }

        function Callback_GoToBS2(HotelID) {
            //alert(HotelID);
            strUrlParams = "cb=CheckData&h=" + HotelID.toString();
            Ajax_Send_W(strUrlParams, AfterCallback_GoToBS2);
        }



        function AfterCallback_GoToBS2() 
        {
            strMessage = Ajax_Receive();
            
            if (strMessage != "") 
            {
                var current_QueryString = unescape(location.search.substr(1));
                var theHash = getHash();
                current_QueryString = current_QueryString + '#' + theHash;
                //current_QueryString = current_QueryString.replace('##', '#');
                
                if (current_QueryString == null)
                    current_QueryString = '';

                
                if (strMessage.indexOf("OK_BS2") >= 0) {
                    //alert("OK_BS2");
                    location.href = 'BookExtrasOverviewW.aspx?' + current_QueryString;
                    //location.href = 'BookExtrasOverviewW.aspx';
                    //return true;
                }
                else if (strMessage.indexOf("OK_BS3") >= 0) {
                    //alert("OK_BS3");
                    location.href = 'BookFillContactInformationW.aspx?' + current_QueryString;
                //location.href = 'BookExtrasOverviewW.aspx';
                //$(location).attr('href', url);
                    //return true;
                }
                else {
                    ShowErrorInSlider(strMessage.replace("OK_BS1", ""), 'true');
                    //alert(strMessage.replace("OK_BS1", ""));
                    //return true;
                }
            }

            return true;
        }

        function Callback_GoToBS1(HotelID)
        {
            //alert(HotelID);
            strUrlParams = "cb=CheckData&h=" + HotelID.toString();
         
            Ajax_Send_W(strUrlParams, AfterCallback_GoToBS1);
        }
                
        function AfterCallback_GoToBS1()
        {        
            //var DefaultBoarding = document.getElementById('ctl00_ContentPlaceHolder1_DefaultBoardingHidden').value;
            //var current_QueryString = location.href.toString();
            //var index = current_QueryString.lastIndexOf('/') + 1;            
            //current_QueryString = current_QueryString.substring( index + 15, location.href.toString().length);            
            
            strMessage = Ajax_Receive();
            if (strMessage != "") 
            {                
                var d = new Date();
                var theHash = ltrim(getHash(), '#');
                var theQueryString = removeVariableFromQueryString('uqid') + '&uqid=' + getQueryVariable('h') + '_' + d.getFullYear() +
                        d.getMonth() + d.getDate() + d.getDay() + d.getHours() + d.getMinutes() + d.getSeconds() + '#' + theHash;
                        
                //theQueryString = theQueryString.replace('##', '#');                
                //alert('remove uqid - ' + removeVariableFromQueryString('uqid'));
                //alert('theQueryString - ' + theQueryString);
                //alert(theHash);
                
                if (strMessage.indexOf("OK_BS2") >= 0) 
                {
                    location.href = 'BookExtrasOverviewW.aspx?' + theQueryString;
                    //return true;
                }
                else if (strMessage.indexOf("OK_BS3") >= 0) 
                {
                    location.href = 'BookFillContactInformationW.aspx?' + theQueryString;
                    ///return true;
                }
                else 
                {
                    location.href = 'BookNeededDataW.aspx?' + theQueryString;
                    //alert(strMessage);
                    //
                }
            }
            return true;
        }

        function ShowErrorInSlider(errorMsg, isBS1) 
        {

            var SliderArrowClientId = document.getElementById('SliderArrowClientId').value;
            var SliderContentClientId = document.getElementById('SliderContentClientId').value;

            //$SliderArrowClientId.addClass('baUnSelected');
            //alert(SliderContentClientId);
            if (isBS1 == 'true') {
                $('#' + SliderArrowClientId).removeClass('SliderArrow');
                $('#' + SliderArrowClientId).addClass('SliderArrowError');
            }
            else {
                $('#' + SliderArrowClientId).removeClass('SliderArrow');
                $('#' + SliderArrowClientId).addClass('SliderArrowNoBackground');
            }

            $('#' + SliderContentClientId).removeClass('SliderContent');
            $('#' + SliderContentClientId).addClass('SliderContentError');
            
//            $(SliderArrowClientId).attr('class', 'SliderArrowError');
//            $(SliderContentClientId).attr('class', 'SliderContentError');
            //alert('a');
            document.getElementById('SliderNormalContent').style.display = 'none';
           // alert('b');
            document.getElementById('SliderBookingStepsErrors').style.display = 'block';
            document.getElementById('lblSliderBookingStepsErrors').innerHTML = errorMsg;
            //alert('c');
            //SliderNormalContent
            //SliderBookingStepsErrors
            //SliderArrowClientId
            //SliderContentClientId
			$('html, body').animate({ scrollTop: 0 }, 500);
        }
        
        function textOnly(i) 
        { 
            if(i.value.length>0) i.value = i.value.replace(/[^A-Za-z\s]+/g, ''); 
        }
        
        function intOnly(i) 
        { 
            if(i.value.length>0) i.value = i.value.replace(/[^\d]+/g, ''); 
        }
                
        function Remembered_Send(HotelID)
        {           
            var strUrlParams = 'cb=Remembered&h='+HotelID;
            Ajax_Send(strUrlParams, Remembered_Receive);
            return false;
        }
        
        function Remembered_Receive()
        {
            var str = Ajax_Receive();
            if(str!=null && str!="")
                AfterRememberedHotels(str);     
        }
               
        function MailTo_Receive()
        {
            var str = Ajax_Receive();        
        }
                       
        


