/*
 * 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 +
        "&TB_iframe=true&height=450&width=780";
     
    // pokreni thickbox
    tb_show("Booking",zlink, false);

    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;
				}
			}
			
		}
	}
}