/*
 * 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 destinationDefinition = new Array();
var destinationArray = new Array();

/* Language definitions */
function languageObject() {};
var languageArray = new languageObject();
var shortMonthDesc = true;

// En
languageArray.en = new languageObject();
languageArray.en.monthArray = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");

// Hr
languageArray.hr = new languageObject();
languageArray.hr.monthArray = new Array("Siječanj", "Veljača", "Ožujak", "Travanj", "Svibanj", "Lipanj", "Srpanj", "Kolovoz", "Rujan", "Listopad", "Studeni", "Prosinac");

// De
languageArray.de = new languageObject();
languageArray.de.monthArray = new Array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");

// Fr
languageArray.fr = new languageObject();
languageArray.fr.monthArray = new Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Décembre");

// It
languageArray.it = new languageObject();
languageArray.it.monthArray = new Array("Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre");

/*
 * DEFAULT LIST
 *
 */
// Destinations...
destinationDefinition[0] = new Array('PA234', 'Palm Tree Resort');
destinationDefinition[1] = new Array('PA235', 'Palm Tree Village');

// Array init
for (var i = 0; i<destinationDefinition.length; i++) {destinationArray[i] = new Array();}

// Hotels...
destinationArray[0][0] = new Array('a8827c09eb9f55ea2a14a3c0b845ff8c', 'Three Islands');
destinationArray[0][1] = new Array('261c6155f4f1a95ece14bc31f15eb9ee', 'Hotel Pearl');
destinationArray[0][2] = new Array('8e12a8b5de33c7f314df86285de1f151', 'Palm Tree Apartments');
destinationArray[0][3] = new Array('4973f4a95a4e44caa1609f99b11a7545', 'A Palm Tree hotel');
destinationArray[0][4] = new Array('cb08097ccc3807b6756f5bdd7c960d03', 'Hotel Bellevue');
destinationArray[0][5] = new Array('e619c1a13b37100a035ea57ce0b041e4', 'Camp Pearl');


destinationArray[1][0] = new Array('589f43afeb5abe31e2a40d34ad120387', 'Hotel Blue Sea');
destinationArray[1][1] = new Array('643e95052261d244d5b8df5ec5436ed1', 'Hotel Green Park');
destinationArray[1][2] = new Array('4ed7a274c7597be7aa923ce44f2c1360', 'Star Hotel');
destinationArray[1][3] = new Array('8ff44ff59837b66d3b370222a3350a79', 'Hotel Small Coconut');
destinationArray[1][4] = new Array('e32a3c610d6a470b35eeab95699296f3', 'Hotel White Beach');
destinationArray[1][5] = new Array('a6661ffbff70b0e47d69d7990ef8c8c8', 'Camp White Beach');
destinationArray[1][6] = new Array('b338b9338ceead7183021c219f1c2120', 'Camp Blue Sea');


/*
 ***************************************************************************
 * 									Functions 
 *
 */
// Check
function checkReservation() {
	var forma = document.forms['phobs_book'];
	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
		openBooking();
	}

	return false;
}
// Open booking
function openBooking() {
	var forma = document.forms['phobs_book'];
	
	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;
}

// Open booking
function openLink(myLink) {
	
	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 = myLink.href;
	
	var win = window.open(defaultPage, 'phobsBooking', settings);
	if(parseInt(navigator.appVersion) >= 4){win.window.focus();}
	
	return false;
}



// Set hotel list
function setHotelList() {
	var forma = document.forms['phobs_book'];
	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['phobs_book'];
	forma.elements['view_cancel'].value = '1';
	openBooking();
	forma.elements['view_cancel'].value = '';
	return false;
}
// Setup
function phobsSetupForm() {
	var forma = document.forms['phobs_book'];
	var myDestination = forma.elements['destination'];
	var myHotels = forma.elements['hotel'];
	var myLang = forma.elements['lang'];
	var danSelect = forma.elements['check_in_day'];
	var mjesecSelect = forma.elements['check_in_month'];
	var godinaSelect = forma.elements['check_in_year'];

	// Language config
	if (myLang &&  myLang.value) {
		var myLangObject = eval('languageArray.' + myLang.value.toLowerCase());
		for (var i=0; i < mjesecSelect.length; i++) {
			var mothText = (shortMonthDesc) ? myLangObject.monthArray[i].substr(0, 3) : myLangObject.monthArray[i];
			mjesecSelect[i].text = mothText;
		}
	}

	// Set date
	var arrivalDate = new Date();
	arrivalDate = new Date(arrivalDate.getYear(), arrivalDate.getMonth(), arrivalDate.getDate()+1);
	var dan = arrivalDate.getDate();
	var mjesec = arrivalDate.getMonth();
	var godina = arrivalDate.getFullYear();
	if (godina<999) {godina += 1900;}
	
	// Fix godina
	for (var t = 0; t < godinaSelect.length; t++) {
		while (godinaSelect.options[t] != null) {
			godinaSelect.options[t] = null;
		}
	}
	godinaSelect.options[godinaSelect.length] = new Option(godina, godina);
	godinaSelect.options[godinaSelect.length] = new Option((parseInt(godina)+1), (parseInt(godina)+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;
		}
	}

	/*
	 * 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;
			}
		}
	}
}