/*Some clobal variables and constants. */
var bookingStages; //Global for the booking tool object, created and initialised onload
var BOOKING_TOOL_ID = "searchForm";
var GREATER_THAN = '>'; 
var LESS_THAN = '<';
var availabilityCheck = false;
var bBookingTool = false;


var ADULT_NUMBER_INCREMENT = 10;
var MAX_NUM_ADULT = 40;
var ADULTS_PER_VILLA = 12;
var CHILDREN_PER_VILLA = 11;
var BABIES_PER_VILLA = 2;
var PETS_PER_VILLA = 2;

var createCalendar;
var setupCalendar;

//function misnomer (a holdover from when the menu was very generic and not design-tied)
//gets run by the onclick attached to the drop-down menus i.e the BookingItem object - see bookingObjects.js
function isStageCompleted(stageKey , changedItem){
	if((stageKey == 'chooseDateExtra' && changedItem == 'month') || (stageKey == 'chooseDate' && changedItem == 'stay')){
		var monthAndYear = bookingStages.getBookingStageByName('chooseDateExtra').getBookingItemByName('month').htmlNode.value;
		var duration = bookingStages.getBookingStageByName('chooseDate').getBookingItemByName('stay').htmlNode.value;
		setCalendarMonthAndYear(monthAndYear , duration);
		var monthInt = parseMonthNumFromMonthAndYear(monthAndYear);
		var YearInt = parseYearFromMonthAndYear(monthAndYear);		
		setDayMenuOptionsForMonth(monthInt,YearInt);
	}
  if (stageKey == 'guestsAndVillasExtra' && changedItem == 'villasSelect') {
  		var nrOfVillas = bookingStages.getBookingStageByName('guestsAndVillasExtra').getBookingItemByName('villasSelect').htmlNode.value;
      var guestsAndVillasCheckbox = document.getElementById('guestsAndVillasCheckbox');
      if (nrOfVillas > 1) {
        guestsAndVillasCheckbox.style["display"] = "block";
      }
      else {
        document.getElementById("adjacentvillas").checked = false;
        guestsAndVillasCheckbox.style["display"] = "none";
      }
  }
  if(stageKey == 'chooseDestination' && changedItem == 'villageOrCountrySelect') {
    checkVillageCountry(changedItem);
    
    updateLCONPCClient(false);
  }
	if(stageKey == 'guestsAndVillas' || stageKey == 'guestsAndVillasExtra'){
		checkGuestsAndVillas(changedItem);
		return true;
	}

// DM: FB-73 get rid of the children under six question because the anwser isn't stored anyway
//	if(stageKey == 'childrenAgesSelection'){
//		closeAlert();
//		if(changedItem == 'infants'){
//			document.getElementById('childrenUnderSix').style.display = 'block';
//			var radioList = document.getElementById('childrenUnderSix').getElementsByTagName('INPUT');
//			for (var i=0; i<radioList.length; i++){
//				if(radioList[i].value > 0){
//					radioList[i].onclick = function() {
//							document.getElementById('childrenUnderSix').style.display = 'none';
//					}
//				}else{
//					radioList[i].onclick = function() {
//							document.getElementById('childrenUnderSix').style.display = 'none';
//					}
//				}
//			}
//		}
//	}
//	if(stageKey == 'cottageTypeSelection'){
//	}
};
function checkChildrenAges(){
  /**
    @obsolete: CHILDREN SELECTION BOX IS REMOVED
	var bookingStage = bookingStages.getBookingStageByName('guestsAndVillas')
	var babiesNode = bookingStage.getBookingItemByName('babies').htmlNode;
	var infantsNode = bookingStage.getBookingItemByName('infants').htmlNode;
	var teenagersNode = bookingStage.getBookingItemByName('teenagers').htmlNode;

	if(babiesNode.value == 0 && infantsNode.value == 0 && teenagersNode.value == 0){
		if(bookingStages.getBookingStageByName('guestsAndVillas').getBookingItemByName('children').htmlNode.value > 0){
			var alertBodyText = '* please select the ages of the children to continue';
			document.getElementById(BOOKING_TOOL_ID).appendChild(createDhtmlAlert(alertBodyText));
			//bookingStages.getBookingStageByName('cottageTypeSelection').getBookingItemByName(changedItem).resetValue();
			return false;
		}
	}
  */
	return true;
};

function createDhtmlAlert(alertBody){
	closeAlert();
	var alertDiv = document.createElement('DIV');
	alertDiv.setAttribute('id' , 'bookingToolFormAlert');
	var headerTextNode = document.createTextNode('Alert!');
	var bodyTextNode = document.createTextNode(alertBody);
	var closeTextNode = document.createTextNode('close');
	var closeAnchorNode = document.createElement('A');
	var textHider = document.createElement('SPAN');
	textHider.appendChild(closeTextNode);
	closeAnchorNode.appendChild(textHider);
	var hrefText = 'javascript:closeAlert()';
	closeAnchorNode.href = hrefText;
	var headerNode = document.createElement('H4');
	headerNode.appendChild(headerTextNode);
	headerNode.appendChild(closeAnchorNode);
	alertDiv.appendChild(headerNode);
	var paraDiv = document.createElement('P');
	paraDiv.appendChild(bodyTextNode);
	alertDiv.appendChild(paraDiv);
	return alertDiv;
};
/*
<div id="bookingToolFormAlert">
<h4>Alert!<a href=""><span>close</span></a></h4>
'* please select the ages of the children to continue'
</div>

*/
function getDuration(){
	var duration = bookingStages.getBookingStageByName('chooseDate').getBookingItemByName('stay').htmlNode.value;
	if(!isNaN(parseInt(duration))){
		duration = 'WE';
		bookingStages.getBookingStageByName('chooseDate').getBookingItemByName('stay').setValue(duration);
	}
	return duration;
};

function setMonthOnBookingForm(aValue){
	return bookingStages.getBookingStageByName('chooseDateExtra').getBookingItemByName('month').setValue(aValue);
};

function setDayOnBookingForm(aValue){
	return bookingStages.getBookingStageByName('chooseDateExtra').getBookingItemByName('day').setValue(aValue);
};

function closeAlert(){
	if(document.getElementById('bookingToolFormAlert')){document.getElementById('bookingToolFormAlert').parentNode.removeChild(document.getElementById('bookingToolFormAlert')); }
};

/*This is the stuff for the bookings drop down menu, which also relies heavily on a big
setupBookingStages function that runs on load. This function is in bookingSetup.js, whilst all the class
definitions for the objects are in bookingObject.js. 
The global var bookingStages holds the object which contains and controls all the stage
objects which in turn contain all the item objects.
(Class definitions/constructors are initial caps, as is conventional)
The HTML constraints:
This code depends on every node in the form being a "select" element that has, further up
the tree, a "fieldset" element that holds all and only that group, a group being a bunch
of related options that act as a displayable group.
*/

bookingSelect = function() {
	var bookingMenus = document.getElementById(BOOKING_TOOL_ID).getElementsByTagName("SELECT");
	for (var i=0; i<bookingMenus.length; i++) {
		bookingMenus[i].onchange=function() {
			var bookingItemName = this.getAttribute('ID');
			var stageNode = this.parentNode;
			while(stageNode.tagName != 'FIELDSET'){
				stageNode = stageNode.parentNode;
			}
			var stageName = stageNode.getAttribute('ID');
			var bookingStage = bookingStages.getBookingStageByName(stageName);
			var bookingItem = bookingStage.getBookingItemByName(bookingItemName);
			var retVal = isStageCompleted(stageName , bookingItemName);
			bookingItem.setChanged(true);
			return retVal;
		};
	}
};

/*Logic for Party selection menu
Fast and dirty - leave these global, tidy up later!
jaaaa laten we het later up tidying !
*/
var guestsAndVillas;
var guestsAndVillasExtra;

function checkGuestsAndVillas(changedItem) {
  guestsAndVillas = (!guestsAndVillas) ?  bookingStages.getBookingStageByName('guestsAndVillas') : guestsAndVillas;
  guestsAndVillasExtra = (!guestsAndVillasExtra) ? bookingStages.getBookingStageByName('guestsAndVillasExtra') : guestsAndVillasExtra;

  if(changedItem == 'adult' || changedItem == 'infants' || changedItem == 'teenagers' || changedItem == 'villasSelect') {
    var villas    = parseInt(guestsAndVillasExtra.getBookingItemByName('villasSelect').htmlNode.value);
    var adults    = parseInt(guestsAndVillas.getBookingItemByName('adult').htmlNode.value);
    var infants   = parseInt(guestsAndVillas.getBookingItemByName('infants').htmlNode.value);
    var teenagers = parseInt(guestsAndVillas.getBookingItemByName('teenagers').htmlNode.value);

    if (!availabilityCheck) {
      var totalPartyPerVilla = Math.ceil((adults + infants + teenagers)/villas);
      var bedroomNode = bookingStages.getBookingStageByName('cottageTypeSelection').getBookingItemByName("bedrooms").htmlNode;
      setSelectOptionsFromMinToMax(bedroomNode, 1, 6, Math.ceil(totalPartyPerVilla/2));
    }
  }

	if(changedItem == 'adult' || changedItem == 'infants' || changedItem == 'teenagers') {
		adultChange(guestsAndVillas.getBookingItemByName('adult').htmlNode.value);
	}else if(changedItem == 'villasSelect'){
		setNumberOnOptionsForVillas(guestsAndVillasExtra.getBookingItemByName('villasSelect').htmlNode.value);
	  setChildrenOptionsForVillas(guestsAndVillasExtra.getBookingItemByName('villasSelect').htmlNode.value);
		setPetOptionsForVillas(guestsAndVillasExtra.getBookingItemByName('villasSelect').htmlNode.value);
	}
	
	if (changedItem == 'adult' || changedItem == 'infants' || changedItem == 'teenagers' || changedItem == 'babies' || changedItem == 'villasSelect' ) {
  		updateLCONPCClient(true);
	}
};

/** SK / MN **/
function checkVillageCountry(changedItem) {
  if (!availabilityCheck) {
    var bookingForm = document.getElementById(BOOKING_TOOL_ID);
  	var fieldsets   = bookingForm.getElementsByTagName('FIELDSET');
    var inputs      = fieldsets['chooseDestination'].getElementsByTagName('INPUT');
    var country     = fieldsets['chooseDestination'].getElementsByTagName('INPUT')['country'];
    var village    	= fieldsets['chooseDestination'].getElementsByTagName('SELECT')['villageOrCountrySelect'];

    var villageCode = village.value;

    var stop = false;
    for(i=0;i< villages.length && !stop; i++) {
      if (villages[i][0] == villageCode) {
        country.value = villages[i][1];
        stop = true;
        break;
      }
    }
    // country selected
  	if (!stop) {
      country.value = villageCode;
      villageCode = "";
     }

    var countryCode = country.value;

    // update the VillaCategories
    var categoryList = fieldsets['cottageTypeSelection'].getElementsByTagName('SELECT')['cottageCategory'];
    var categoryCode = categoryList.value;
    var newOptions = getCategoryOptions(countryCode, villageCode);

  	// ohhh, yes let's do a decent cleanup !

  	var elements = categoryList.options.length-1;
  	if (document.all) {
  		// Internet Explorer
  		for (var i=0; i<elements; i++) {
  			categoryList.options.remove(categoryList.length - 1);
  		}
  	}
  	else {
  		// Netscape || W3C
  		for (var i=0; i<elements; i++) {
  			categoryList.options[categoryList.length - 1] = null;
  		}
  	}

    for (var i=1; i<=newOptions.length; i++) {
      categoryList.options[i] = newOptions[i - 1];
    }
    setSelectedOption(categoryList, categoryCode);
		
  }
};

function getCategoryOptions(country, village) {
  var result = new Array();
	if (village.length==0) {
    for (var i=0; i<countryCategories.length; i++) {
      if (country == countryCategories[i][0]) {
	      result[result.length] = new Option(countryCategories[i][2], countryCategories[i][1]);
    	}
		}
	} else {
	   for (var i=0; i<villageCategories.length; i++) {
      if (village == villageCategories[i][0]) {
	      result[result.length] = new Option(villageCategories[i][2], villageCategories[i][1]);
    	}
		}
  }
  return result;
};

function getSelectedOption(aSelection) {
	if (document.layers) {
		var index = aSelection.selectedIndex;
		return aSelection.options[index].value;
	} else return aSelection.value;
}

function setSelectedOption(aSelection, selectedOption) {
	var stop = false;
	for (var cnt=0; cnt < aSelection.length && !stop; cnt++) {
	   if (aSelection.options[cnt].value == selectedOption) {
	     aSelection.selectedIndex = cnt;
	     stop = true;
	   }
	 }
	if (!stop) aSelection.selectedIndex = 0;
};


/** SK **/

function adultChange(numAdult){
		var adultSelectNode = guestsAndVillas.getBookingItemByName('adult').htmlNode;
		var selectedIndex = numAdult;
		var isAdultsSet = false;
		if(isNaN(parseInt(numAdult))){
			var adultOptionsParameters = setMenuOptionsForLessAndMore(numAdult);
			minNumAdult = adultOptionsParameters['minNumAdult'];
			maxNumAdult = adultOptionsParameters['maxNumAdult'];
			selectedIndex = adultOptionsParameters['selectedIndex'];
			setForward = adultOptionsParameters['setForward'];
			numAdult = adultOptionsParameters['numAdult'];
			setAdultOptionsForSelectFromMinToMax(adultSelectNode , minNumAdult , maxNumAdult , selectedIndex , setForward);
		}
		if(!isNaN(parseInt(numAdult))){
			var numVillas = setNumberOfVillasForAdults(selectedIndex);
			setChildrenOptionsForVillas(numVillas);
			setPetOptionsForVillas(numVillas);
		}
};

function setMenuOptionsForLessAndMore(numAdult){
			var minNumAdult;
			var maxNumAdult;
			var selectedIndex;
			var setForward;
			var returnArray = new Array();
			if(numAdult.indexOf(GREATER_THAN) >= 0){
				numAdult = parseInt(numAdult.substring(numAdult.indexOf(GREATER_THAN) + 1));
				minNumAdult = numAdult + 1;
				maxNumAdult = MAX_NUM_ADULT;
				selectedIndex = minNumAdult;
				setForward = false;
			}else if(numAdult.indexOf(LESS_THAN) >= 0){
				numAdult = parseInt(numAdult.substring(numAdult.indexOf(LESS_THAN) + 1));
				minNumAdult = 1;
				maxNumAdult = ADULT_NUMBER_INCREMENT;
				selectedIndex = maxNumAdult;
				setForward = true;
			}else{
				alert('we got an odd value ' + numAdult);
			}
			returnArray['minNumAdult'] = minNumAdult;
			returnArray['maxNumAdult'] = maxNumAdult;
			returnArray['selectedIndex'] = selectedIndex;
			returnArray['setForward'] = setForward;
			returnArray['numAdult'] = numAdult;
			return returnArray;
};

function setNumberOfVillasForAdults(selectedIndex){
  var nrOfAdults    = parseInt(selectedIndex);
  var nrOfInfants   = parseInt(guestsAndVillas.getBookingItemByName('infants').htmlNode.selectedIndex);
  var nrOfTeenagers = parseInt(guestsAndVillas.getBookingItemByName('teenagers').htmlNode.selectedIndex);

  var nrOfParty = nrOfAdults+nrOfInfants+nrOfTeenagers;
  var minNumVillas = Math.ceil(nrOfParty/ADULTS_PER_VILLA);
	var numVillas = guestsAndVillasExtra.getBookingItemByName('villasSelect').htmlNode.value;

	while(nrOfParty > numVillas*ADULTS_PER_VILLA){
		numVillas++;
	}
	var villasSelect = guestsAndVillasExtra.getBookingItemByName('villasSelect').htmlNode;
  setSelectOptionsFromMinToMax(villasSelect,minNumVillas,4, numVillas);

	//villasSelect.value = numVillas;
  //villasSelectLength = (typeof villasSelect['options'] == 'object') ? villasSelect.options.length : 0;

	//for(var i=0; i<villasSelectLength ; i++){
	//	if(parseInt(villasSelect.options[i].value) == parseInt(numVillas)){
	//		villasSelect.options[i].selected = true;
	//	}else{
	//		villasSelect.options[i].selected = false;
	//	}
	//}
	return numVillas;
};

function setNumberOnOptionsForVillas(numVillas , isAdultsSet){
	if(!isAdultsSet){
		var setForward = true;
		var minNumAdult = parseInt(numVillas);
    var selectedIndex = parseInt(guestsAndVillas.getBookingItemByName('adult').htmlNode.value);
		var maxNumAdult = parseInt(ADULT_NUMBER_INCREMENT);

		if(selectedIndex > ADULT_NUMBER_INCREMENT*numVillas){
			selectedIndex = ADULT_NUMBER_INCREMENT*numVillas;
			maxNumAdult = ADULT_NUMBER_INCREMENT*numVillas;
		}else if(selectedIndex > ADULT_NUMBER_INCREMENT && selectedIndex <= ADULT_NUMBER_INCREMENT*numVillas){
			maxNumAdult = ADULT_NUMBER_INCREMENT*numVillas;
		}

    if(minNumAdult < ADULT_NUMBER_INCREMENT){
			setForward = true;
		}

  	var adultSelectNode = guestsAndVillas.getBookingItemByName('adult').htmlNode;
		setAdultOptionsForSelectFromMinToMax(adultSelectNode , minNumAdult, maxNumAdult , selectedIndex , setForward);
	}
};

function setChildrenOptionsForVillas(numVillas){
	setOptionsForMenuOnVillasChange(1 , 'babies' , BABIES_PER_VILLA);
 	setOptionsForMenuOnVillasChange(1 , 'infants' , CHILDREN_PER_VILLA);
 	setOptionsForMenuOnVillasChange(1 , 'teenagers' , CHILDREN_PER_VILLA);
};

function setPetOptionsForVillas(numVillas){
	setOptionsForMenuOnVillasChange(numVillas , 'pets', PETS_PER_VILLA);
};

function setOptionsForMenuOnVillasChange(numVillas , menuName, perVillaQuota){
	var localBookingStage;
	if(menuName == 'pets' || menuName == 'villasSelect'){
		localBookingStage = guestsAndVillasExtra;
	}else{
		localBookingStage = guestsAndVillas;
	}
	var maxNumForMenu = numVillas*perVillaQuota;
	var selectNodeForName = localBookingStage.getBookingItemByName(menuName).htmlNode;
	var selectedIndex = selectNodeForName.value;
	if(parseInt(selectedIndex) > parseInt(maxNumForMenu)){
		selectedIndex = maxNumForMenu;
	}
	for (var i = selectNodeForName.options.length ; i > 0 ; i--){
		selectNodeForName.remove(i - 1);
	}
	for (var i = 0 ; i<=maxNumForMenu ; i++){
		var option = document.createElement('OPTION');
		option.text = i.toString();
		option.value = i;
		if(i == selectedIndex){option.selected = 'selected';}
		if(document.all){selectNodeForName.add(option)}else{selectNodeForName.add(option , null);}
	}

};

function setSelectOptionsFromMinToMax(selectNode , minOption , maxOption , selectedIndex){
	for (var i = selectNode.options.length ; i > 0 ; i--){
		selectNode.remove(i - 1);
	}
	var lastOption;
	for (var i = maxOption ; i >= minOption ; i--){
		var option = document.createElement('OPTION');
		option.text = i.toString();
		option.value = i;
		if(document.all){selectNode.add(option , 0)}else{selectNode.add(option , lastOption);}
		if(i == selectedIndex){option.selected = true;}
		lastOption = option;
	}
};


function setAdultOptionsForSelectFromMinToMax(adultSelectNode , minNumAdult , maxNumAdult , selectedIndex , forwardOption){
	if(!guestsAndVillas){guestsAndVillas = bookingStages.getBookingStageByName('guestsAndVillas');}
	if(!guestsAndVillasExtra){guestsAndVillasExtra = bookingStages.getBookingStageByName('guestsAndVillasExtra');}
	var numVillas = parseInt(guestsAndVillasExtra.getBookingItemByName('villasSelect').htmlNode.value);
	if(minNumAdult < numVillas){
		if(minNumAdult != 0 || numVillas != 1){
			minNumAdult = numVillas;
		}
	}
	if(parseInt(selectedIndex) < parseInt(minNumAdult)){selectedIndex = minNumAdult;}
	setSelectOptionsFromMinToMax(adultSelectNode , minNumAdult , maxNumAdult , selectedIndex );
	var moreOption = document.createElement('OPTION');
	if(maxNumAdult > ADULT_NUMBER_INCREMENT){
		moreOption.text = 'less ...';
		moreOption.value = LESS_THAN + minNumAdult;
		if(document.all){adultSelectNode.add(moreOption, 0);}else{adultSelectNode.add(moreOption, adultSelectNode.options.item(0));}
	}else{
		moreOption.text = 'more ...';
		moreOption.value = GREATER_THAN + maxNumAdult;
		if(document.all){adultSelectNode.add(moreOption, adultSelectNode.options.length);}else{adultSelectNode.add(moreOption, adultSelectNode.options.item(adultSelectNode.options.length));}
	}
};
/*Function to allow multiple load events to be attached from outside the HTML code
in a cross-browser fashion - nicked from somewhere but I haven't kept the URL */

//var loadEventExecCount = 0;

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
};

function nsExceptions(){
	if (navigator.userAgent.indexOf('Netscape') != -1){
		var toolStyle = document.getElementById('rightcomponents').style;
		toolStyle.position = 'absolute';
		toolStyle.top = '203px';
		toolStyle.left = '559px';
	}
};

function setDayMenuOptionsForCurrentMonth(){
  //setDayMenuOptionsForMonth(currentMonthInt);
  if (!bBookingTool) {
    var monthAndYear = bookingStages.getBookingStageByName('chooseDateExtra').getBookingItemByName('month').htmlNode.value;
    var monthInt     = parseMonthNumFromMonthAndYear(monthAndYear);
	var YearInt = parseYearFromMonthAndYear(monthAndYear);
    // setDayMenuOptionsForMonth(monthInt,0,true);
	setDayMenuOptionsForMonth(monthInt,YearInt,true);
  }
};

function setDefaultMonth(){
	//if(!availabilityCheck){selectMonth(monthArray[currentMonthInt]);}
};

function setDayMenuOptionsForMonth(monthInt , yearInt, initialize){
  if(bBookingTool){return;}
  
	//function to limit the days in the menu to sensible arrival dates
	var stay = bookingStages.getBookingStageByName('chooseDate').getBookingItemByName('stay').htmlNode.value;
	var daysSelect = bookingStages.getBookingStageByName('chooseDateExtra').getBookingItemByName('day').htmlNode;
	var selectedDay = (initialize) ? daysSelect.selectedIndex : null;
	var firstOption =  daysSelect.options[0];

	for (var i = daysSelect.options.length-1 ; i >= 0 ; i--){
		daysSelect.remove(i);
	}
	
	var dot ="";
	if (theLanguage!=null && theLanguage.toUpperCase()==('DE')) {
		dot = ".";
	}
  
  var selected = (selectedDay > 0) ? false : true;
  daysSelect.options[daysSelect.length] = new Option(firstOption.text, firstOption.value, selected);
  if ( yearInt > 0 && monthInt > 0) {
  	var arrivalDaysArray = arrivals[yearInt][monthInt];
	if (arrivalDaysArray!=undefined) {
	  	for (var i = 0 ; i < arrivalDaysArray.length ; i++){
	  		var currentDay = arrivalDaysArray[i];
	  		if(currentDay[1].toString() == stay) {
	  			var text = currentDay[0].toString() + dot;
	  			var value = currentDay[0];
				var selected =  (currentDay[0] == selectedDay) ? true : false;
				daysSelect.options[daysSelect.length] = new Option(text, value, selected);
				daysSelect.options[daysSelect.length-1].selected = selected;
			}
		}
	}
  }
};

function runSlideShow() {
	return false; //dummy to stop it giving an error message in the global page
};

function writeError(message) {
		alert(message); //replace this with code which writes a text node into a div and displays it.
};

//
// LuxuryCategory on Party Composition Client
//
var lconpcClientOptions = {}; // no options yet.. ;-)
var lconpcClient;

function initializeLCONPCClient() {
	var _LCONPC_OFF = document.getElementById('cottageCategory') == null;
	if (! _LCONPC_OFF) {
		lconpcClient = new LCONPCServiceClient('cottageCategory','/servlet/Satellite?pagename=WebRes/Service/lconpc',lconpcClientOptions);
	}	
};

function updateLCONPCClient(vcUpdate) {
	if (lconpcClient) 
		lconpcClient.refreshData();	
};

/** ONLOAD EVENTS **/
addLoadEvent(setupBookingStages);
addLoadEvent(setDefaultMonth);// MAG DEZE WEG DOET NIKS.
addLoadEvent(createCalendar);
addLoadEvent(setupCalendar);
addLoadEvent(bookingSelect);
addLoadEvent(runSlideShow);
addLoadEvent(setDayMenuOptionsForCurrentMonth);
addLoadEvent(nsExceptions);
addLoadEvent(initializeLCONPCClient);
addLoadEvent(checkVillageCountry);
/** /ONLOAD EVENTS **/


