/*
* PHOBS - online booking system (C)2006.
*/
// Default selection
var defaultDestination, defaultHotel;

// Default vars
var defaultHotelSelect = 'All accommodation:';
var errorMessageDate = 'Please select correct arrival date to proceede.';
var errorMessageHotel = 'Please select desired accommodation from dropdown menu.';

var destinationDefinition = new Array();
var destinationArray = new Array();

/*
* DEFAULT LIST
*
*/
// Destinations...
destinationDefinition[0] = new Array('51523', 'Baška');

// Array init
for (var i = 0; i < destinationDefinition.length; i++) { destinationArray[i] = new Array(); }

// Hotels...
destinationArray[0][0] = new Array('6954c3d4374b824476eb08e15c5917f6', 'Atrium Residence Baška');
destinationArray[0][1] = new Array('9baff74dbabae47f1e2a1f999f5ab145', 'Hotel Corinthia-Baška');
destinationArray[0][2] = new Array('a90c2af8aa80395fd9115c1a0bb5a5de', 'Hotel Zvonimir');
destinationArray[0][3] = new Array('d8075e77be0fbd6cc5a0a72d87f4a042', 'Villa Adria');
destinationArray[0][4] = new Array('a6d2d4d5194c60c48903baab9f6f7f60', 'Ville Corinthia-Baška');
destinationArray[0][5] = new Array('938e71ed9573b0747fe115588474730b', 'AC Zablaće - Mobile homes');
destinationArray[0][6] = new Array('1aed78d642dda92b0946e8d6f40ac260', 'AC Zablaće - kamp parcele');
destinationArray[0][7] = new Array('a615ec59551ef60cacde87c374f8b8dc', 'NC Bunculuka - Mobile homes');
destinationArray[0][8] = new Array('c19eca2864f42526e622ec986057f20f', 'NC Bunculuka - kamp parcele');

/*
***************************************************************************
* 									Functions 
*
*/
// Check
function checkReservation() {
    var forma = document.forms[0];
    var myHotels = forma.elements['hotel'];
    // Set today
    var todayDate = new Date();
    var todayDan = parseInt(todayDate.getDate());
    var todayMjesec = parseInt(todayDate.getMonth()) + 1;
    var todayGodina = parseInt(todayDate.getFullYear());
    if (todayGodina < 999) { todayGodina += 1900; }

    var selectedDan = parseInt(forma.elements['check_in_day'].value);
    var selectedMjesec = parseInt(forma.elements['check_in_month'].value);
    var selectedGodina = parseInt(forma.elements['check_in_year'].value);

    if (
        (selectedDan <= todayDan && selectedMjesec <= todayMjesec && selectedGodina <= todayGodina)
        ||
        (selectedMjesec < todayMjesec && selectedGodina <= todayGodina)
        ||
        (selectedGodina < todayGodina)
    ) {
        alert(errorMessageDate);
    } else {
        // Check hotel
        //actionTmp = forma.action; // s .NET actiona na njihov
        //forma.action = "http://www.phobs.net/secure/booking.php";

        zhotel = $('#hotel').val();
        zselectedDanOut = $('#check_out_day').val();
        zselectedMjesecOut = $('#check_out_month').val();
        zselectedGodinaOut = $('#check_out_year').val();
        zpartners_access = $('#partners_access').val();
        zlang = $('#lang').val();
        openBooking(zhotel, selectedDan, selectedMjesec, selectedGodina, zselectedDanOut, zselectedMjesecOut, zselectedGodinaOut, zpartners_access, zlang);

        //forma.action = actionTmp; // vracam .NET action
    }

    return false;
}
// Open booking
// saljem parametre u iframe
//function openBooking() {
function openBooking(zhotel, selectedDan, selectedMjesec, selectedGodina, selectedDanOut, selectedMjesecOut, selectedGodinaOut, partners_access, lang) {
    var zlink =
        "/bookingPhobs.aspx" +
        "?hotel=" + zhotel +
        "&check_in_day=" + selectedDan +
        "&check_in_month=" + selectedMjesec +
        "&check_in_year=" + selectedGodina +
        "&check_out_day=" + selectedDanOut +
        "&check_out_month=" + selectedMjesecOut +
        "&check_out_year=" + selectedGodinaOut +
        "&partners_access=" + partners_access +
        "&lang=" + lang +
        "";

    // pokreni thickbox
    //tb_show("Booking", zlink, false);
	//$.colorbox({width:"50%", height:"80%", iframe:true, href:zlink});
     $.colorbox({
        iframe:true,
		href:zlink,
        innerWidth:800,
        innerHeight:540
        /*onComplete:function(){
            $.colorbox.resize({
                innerHeight:($('iframe').offset().top + $('iframe').height()),
                innerWidth:($('iframe').offset().left + $('iframe').width())
            });
        }*/
    }); 
    var forma = document.forms[0];
    /*    
    var w = 800, h = 600;
    var winl = (screen.width-w)/2;
    var wint = (screen.height-h)/2;
    var settings='height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars=yes,toolbar=no,location=no,status=yes,menubar=no,resizable=yes,dependent=no';
    var defaultPage = '';
    if (forma.elements['company_id']) {
    defaultPage = 'http://www.phobs.net/secure/booking.php';
    defaultPage += '?company_id=' + forma.elements['company_id'].value;
    }
    
    var win = window.open(defaultPage, 'phobsBooking', settings);
    if(parseInt(navigator.appVersion) >= 4){win.window.focus();}
    
    forma.target = 'phobsBooking';
    forma.submit();
    */
    if (forma.elements['partners_access']) { forma.elements['partners_access'].value = ''; }

    return false;
}

// Set hotel list
function setHotelList() {
    var forma = document.forms[0];
    var myDestination = forma.elements['destination'];
    var myHotels = forma.elements['hotel'];

    // Reset hotel list
    for (var t = 0; t < myHotels.length; t++) {
        while (myHotels.options[t] != null) {
            myHotels.options[t] = null;
        }
    }
    if (myDestination.options[myDestination.selectedIndex].value == '-') {
        myHotels.options[myHotels.length] = new Option(defaultHotelSelect, '-');
        if (destinationArray.length) {
            var newDestination;
            for (var a = 0; a < destinationArray.length; a++) {
                for (b = 0; b < destinationArray[a].length; b++) {
                    newDestination = destinationArray[a][b];
                    myHotels.options[myHotels.length] = new Option(newDestination[1], newDestination[0]);
                }
            }
        }
    } else {
        // Pick
        var destinationPick;
        for (var i = 0; i < destinationDefinition.length; i++) {
            if (destinationDefinition[i][0] == myDestination.options[myDestination.selectedIndex].value) {
                destinationPick = i;
                break;
            }
        }
        // Hotels
        var hotelList = destinationArray[destinationPick];
        myHotels.options[myHotels.length] = new Option(defaultHotelSelect, '-');
        for (var i = 0; i < hotelList.length; i++) {
            myHotels.options[myHotels.length] = new Option(hotelList[i][1], hotelList[i][0]);
        }
    }
}
// View/cancel
function viewCancelBooking(myLink) {
    var forma = document.forms[0];
    forma.elements['view_cancel'].value = '1';

    actionTmp = forma.action; // s .NET actiona na njihov
    forma.action = "http://www.phobs.net/secure/booking.php";

    openBooking();

    forma.action = actionTmp; // vracam .NET action

    forma.elements['view_cancel'].value = '';
    return false;
}
// Setup
function phobsSetupForm() {
    var forma = document.forms[0];
    var myDestination = forma.elements['destination'];
    var myHotels = forma.elements['hotel'];
    if (!forma) { return false; }
    forma.onsubmit = function() {
        checkReservation();
        return false;
    }
    // Set date
    var arrivalDate = new Date();
    var departureDate = new Date();
    arrivalDate = new Date(arrivalDate.getYear(), arrivalDate.getMonth(), arrivalDate.getDate() + 1);
    departureDate = new Date(departureDate.getYear(), departureDate.getMonth(), departureDate.getDate() + 2);

    var dan = arrivalDate.getDate();
    var mjesec = arrivalDate.getMonth();
    var godina = arrivalDate.getFullYear();
    if (godina < 999) { godina += 1900; }

    var dan2 = departureDate.getDate();
    var mjesec2 = departureDate.getMonth();
    var godina2 = departureDate.getFullYear();
    if (godina2 < 999) { godina2 += 1900; }

    var danSelect = forma.elements['check_in_day'];
    var mjesecSelect = forma.elements['check_in_month'];
    var godinaSelect = forma.elements['check_in_year'];

    var danSelect2 = forma.elements['check_out_day'];
    var mjesecSelect2 = forma.elements['check_out_month'];
    var godinaSelect2 = forma.elements['check_out_year'];
    // Set action on start date
    danSelect.onchange = function() {
        phobsDateChange(danSelect, mjesecSelect, godinaSelect, danSelect2, mjesecSelect2, godinaSelect2);
    }
    mjesecSelect.onchange = function() {
        phobsDateChange(danSelect, mjesecSelect, godinaSelect, danSelect2, mjesecSelect2, godinaSelect2);
    }
    godinaSelect.onchange = function() {
        phobsDateChange(danSelect, mjesecSelect, godinaSelect, danSelect2, mjesecSelect2, godinaSelect2);
    }
    // Fix godina
    for (var t = 0; t < godinaSelect.length; t++) {
        while (godinaSelect.options[t] != null) {
            godinaSelect.options[t] = null;
        }
    }
    for (var t = 0; t < godinaSelect2.length; t++) {
        while (godinaSelect2.options[t] != null) {
            godinaSelect2.options[t] = null;
        }
    }
    godinaSelect.options[godinaSelect.length] = new Option(godina, godina);
    godinaSelect.options[godinaSelect.length] = new Option((parseInt(godina) + 1), (parseInt(godina) + 1));

    godinaSelect2.options[godinaSelect2.length] = new Option(godina2, godina2);
    godinaSelect2.options[godinaSelect2.length] = new Option((parseInt(godina2) + 1), (parseInt(godina2) + 1));
    // date...
    for (var i = 0; i < danSelect.length; i++) {
        if (parseInt(danSelect[i].value) == parseInt(dan)) {
            danSelect[i].selected = true;
        }
    }
    for (var i = 0; i < mjesecSelect.length; i++) {
        if (parseInt(mjesecSelect[i].value) == (parseInt(mjesec) + 1)) {
            mjesecSelect[i].selected = true;
        }
    }
    for (var i = 0; i < danSelect2.length; i++) {
        if (parseInt(danSelect2[i].value) == parseInt(dan2)) {
            danSelect2[i].selected = true;
        }
    }
    for (var i = 0; i < mjesecSelect2.length; i++) {
        if (parseInt(mjesecSelect2[i].value) == (parseInt(mjesec2) + 1)) {
            mjesecSelect2[i].selected = true;
        }
    }

    /*
    * Default selection...
    */
    // Destination
    if (myDestination) {
        if (defaultDestination && defaultDestination.length && myDestination.length) {
            var myDestinationSelection = false;
            for (var i = 0; i < myDestination.length; i++) {

                if (myDestination[i].value == defaultDestination) {
                    myDestination[i].selected = true;
                    myDestinationSelection = true;
                    break;
                }
            }
            if (myDestinationSelection) {
                setHotelList();
            }
        }
    }
    // Hotel
    if (defaultHotel && defaultHotel.length && myHotels && myHotels.length) {
        var toBreak = false;
        for (var x = 0; x < destinationArray.length; x++) {
            for (var y = 0; y < destinationArray[x].length; y++) {
                if (defaultHotel == destinationArray[x][y][0]) {
                    // Get destination
                    if (myDestination) {
                        if (destinationDefinition && destinationDefinition.length && myDestination.length) {
                            for (var i = 0; i < myDestination.length; i++) {
                                if (myDestination[i].value == destinationDefinition[x][0]) {
                                    myDestination[i].selected = true;
                                    break;
                                }
                            }
                            setHotelList();
                        }
                    }
                    // Set hotel
                    for (var i = 0; i < myHotels.length; i++) {
                        if (myHotels[i].value == defaultHotel) {
                            myHotels[i].selected = true;
                            toBreak = true;
                            break;
                        }
                    }
                    toBreak = true;
                    break;
                }
            }
            if (toBreak) {
                break;
            }
        }
    }
}
// Set date
function phobsDateChange(startDay, startMonth, startYear, endDay, endMonth, endYear) {
    var arrivalDate, departureDate;
    if (startDay && startMonth && startYear) {
        var day = startDay.options[startDay.selectedIndex].value;
        var month = startMonth.options[startMonth.selectedIndex].value;
        var year = startYear.options[startYear.selectedIndex].value;
        arrivalDate = new Date(year, month, day);
    }
    if (endDay, endMonth, endYear) {
        var day = endDay.options[endDay.selectedIndex].value;
        var month = endMonth.options[endMonth.selectedIndex].value;
        var year = endYear.options[endYear.selectedIndex].value;
        departureDate = new Date(year, month, day);
    }
    if (arrivalDate && departureDate) {
        if (arrivalDate >= departureDate) {
            departureDate = new Date(arrivalDate.getYear(), arrivalDate.getMonth(), arrivalDate.getDate() + 1);
            var day = departureDate.getDate();
            var month = departureDate.getMonth();
            var year = departureDate.getFullYear();
            if (year < 999) { year += 1900; }

            for (var i = 0, iEnd = endDay.options.length; i < iEnd; i++) {
                if (endDay.options[i].value == day) {
                    endDay.options[i].selected = true;
                } else {
                    endDay.options[i].selected = false;
                }
            }
            for (var i = 0, iEnd = endMonth.options.length; i < iEnd; i++) {
                if (endMonth.options[i].value == month) {
                    endMonth.options[i].selected = true;
                } else {
                    endMonth.options[i].selected = false;
                }
            }
            for (var i = 0, iEnd = endYear.options.length; i < iEnd; i++) {
                if (endYear.options[i].value == year) {
                    endYear.options[i].selected = true;
                } else {
                    endYear.options[i].selected = false;
                }
            }

        }
    }
}
