/*Some clobal variables and constants. */
var bookingStages; //Global for the booking tool object, created and initialised onload
var browseMenu;	//Global for the browse menu object, created and initialised on load
var BROWSING_TOOL_ID    = "browsingTool";
var BOOKING_TOOL_ID     = "bookingToolForm";

var BROWSING_TOOL_INITIAL_OFFSET = 218+35;
var BROWSING_TOOL_STAGE_1_OFFSET = BROWSING_TOOL_INITIAL_OFFSET+123;
var BROWSING_TOOL_STAGE_2_OFFSET = BROWSING_TOOL_INITIAL_OFFSET-120;
var BROWSING_TOOL_STAGE_3_OFFSET = BROWSING_TOOL_INITIAL_OFFSET+80;

var TOP_LEVEL_MENU_HEADING_TAG = 'H3';
var GREATER_THAN = '>';
var LESS_THAN = '<';

var availabilityCheck = false;
var bBookingTool = true;

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;

//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 == 'chooseDate') {
    if (changedItem == 'month' || changedItem == 'stay'){
  		var monthAndYear = bookingStages.getBookingStageByName('chooseDate').getBookingItemByName('month').htmlNode.value;
  		var duration = bookingStages.getBookingStageByName('chooseDate').getBookingItemByName('stay').htmlNode.value;
  		setCalendarMonthAndYear(monthAndYear , duration);
  		var monthInt = parseMonthNumFromMonthAndYear(monthAndYear);
		var YearInt = parseYearFromMonthAndYear(monthAndYear);
  		// GERRIT setDayMenuOptionsForMonth(monthInt);
		setDayMenuOptionsForMonth(monthInt,YearInt);
      toggleCalendarLink(true);
      toggleTeaserBelowBookingTool(true);
    }
    if(changedItem == 'stay'){
  		if(browseMenu.displayState == 2){
  			browseMenu.displayState = 0;
  			browseMenu.clickEvent();
  		}
  		bookingStages.getBookingStageByName('chooseDate').setCompleted(true);
  		bookingStages.getBookingStageByName('chooseDate').setDisplayForState(true);
  		bookingStages.getBookingStageByName(bookingStages.getNextStageName('chooseDate')).setCompleted(true);
  		bookingStages.getBookingStageByName(bookingStages.getNextStageName('chooseDate')).setDisplayForState(true);
  		bookingStages.getBookingStageByName('guestsAndVillas').setDisplayForState(true);
   		bookingStages.getBookingStageByName('checkAndSubmit').setDisplayForState(true);
	  }
	}

  if(stageKey == 'chooseDestination' && changedItem == 'village') {
    checkVillageCountry(changedItem);
    
    updateLCONPCClient(false);
  }

	if(stageKey == 'guestsAndVillas' || stageKey == 'childrenAgesSelection'){
		checkGuestsAndVillas(changedItem);
		if (changedItem == 'adult'){
			if(bookingStages.getBookingStageByName('guestsAndVillas').getBookingItemByName('adult').htmlNode.value > 0){
				bookingStages.getBookingStageByName('guestsAndVillas').setCompleted(true);
				toggleTeaserBelowBookingTool(false); // DM FB-318
				browseMenu.displayState = 3;
				browseMenu.clickEvent();
				bookingStages.getBookingStageByName('cottageTypeSelection').setDisplayForState(true);
        if(bookingStages.getBookingStageByName('guestsAndVillas').getBookingItemByName('children').htmlNode.value == 1) changedItem = 'children';
				bookingStages.getBookingStageByName('checkAndSubmit').setEnabledForState(true);
			}else{
				bookingStages.getBookingStageByName('guestsAndVillas').setCompleted(false);
				bookingStages.getBookingStageByName('childrenAgesSelection').setDisplayForState(false);
				toggleTeaserBelowBookingTool(true); // DM FB-318
				browseMenu.displayState = 0;
				browseMenu.clickEvent();
				bookingStages.getBookingStageByName('cottageTypeSelection').setDisplayForState(false);
				bookingStages.getBookingStageByName('checkAndSubmit').setEnabledForState(false);
			}
    }

    if (changedItem == 'children'){
      var bHasChildren = (bookingStages.getBookingStageByName('guestsAndVillas').getBookingItemByName('children').htmlNode.value==1) ? true : false;
			if(bHasChildren  && bookingStages.getBookingStageByName('guestsAndVillas').getBookingItemByName('adult').htmlNode.value > 0){
				browseMenu.displayState = 1;
				browseMenu.clickEvent();
				bookingStages.getBookingStageByName('childrenAgesSelection').setDisplayForState(true);
			}
      else if (!bHasChildren && bookingStages.getBookingStageByName('guestsAndVillas').getBookingItemByName('adult').htmlNode.value > 0) {
				bookingStages.getBookingStageByName('childrenAgesSelection').setDisplayForState(false);
        resetChildrenAgesSelection();
				browseMenu.displayState = 3;
				browseMenu.clickEvent();
      }
      else if (!bHasChildren) {
				bookingStages.getBookingStageByName('childrenAgesSelection').setDisplayForState(false);
        resetChildrenAgesSelection();
				browseMenu.displayState = 0;
				browseMenu.clickEvent();
      }
      else{
				cpAlert(labels.lbl_select_adult);
				return false;
			}
		}
		return true;
	}

	if(stageKey == 'cottageTypeSelection'){
		var bookingStage = bookingStages.getBookingStageByName('childrenAgesSelection')
		var babiesNode = bookingStage.getBookingItemByName('babies').htmlNode;
		var infantsNode = bookingStage.getBookingItemByName('infants').htmlNode;
		var teenagersNode = bookingStage.getBookingItemByName('teenagers').htmlNode;
	}
}

function resetChildrenAgesSelection() {
  var bookingStage = bookingStages.getBookingStageByName('childrenAgesSelection');
  bookingStage.getBookingItemByName('babies').htmlNode.selectedIndex = 0;
  bookingStage.getBookingItemByName('infants').htmlNode.selectedIndex = 0;
  bookingStage.getBookingItemByName('teenagers').htmlNode.selectedIndex = 0;
}

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(){
  return bookingStages.getBookingStageByName('chooseDate').getBookingItemByName('stay').htmlNode.value;
}
function setMonthOnBookingForm(aValue){
	return bookingStages.getBookingStageByName('chooseDate').getBookingItemByName('month').setValue(aValue);
}

function setDayOnBookingForm(aValue){
	return bookingStages.getBookingStageByName('chooseDate').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!

*/
var guestsAndVillas;

function checkGuestsAndVillas(changedItem) {
  guestsAndVillas = (!guestsAndVillas) ?  bookingStages.getBookingStageByName('guestsAndVillas') : guestsAndVillas;
  childrenAgesSelection = bookingStages.getBookingStageByName('childrenAgesSelection');

  if(changedItem == 'adult' || changedItem == 'infants' || changedItem == 'teenagers' || changedItem == 'villas') {
    var villas    = parseInt(guestsAndVillas.getBookingItemByName('villas').htmlNode.value);
    var adults    = parseInt(guestsAndVillas.getBookingItemByName('adult').htmlNode.value);
    var infants   = parseInt(childrenAgesSelection.getBookingItemByName('infants').htmlNode.value);
    var teenagers = parseInt(childrenAgesSelection.getBookingItemByName('teenagers').htmlNode.value);

    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 == 'villas'){
		setNumberOnOptionsForVillas(guestsAndVillas.getBookingItemByName('villas').htmlNode.value);
		setChildrenOptionsForVillas(guestsAndVillas.getBookingItemByName('villas').htmlNode.value);
		setPetOptionsForVillas(guestsAndVillas.getBookingItemByName('villas').htmlNode.value);
		browseMenu.displayState = 1;
		browseMenu.clickEvent();
		bookingStages.getBookingStageByName('cottageTypeSelection').setDisplayForState(true);
		bookingStages.getBookingStageByName('checkAndSubmit').setEnabledForState(true);
	}
	
	if (changedItem == 'adult' || changedItem == 'infants' || changedItem == 'teenagers' || changedItem == 'babies' || changedItem == 'villas' ) {
  		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')['village'];

    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')['category'];
    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;
}


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(childrenAgesSelection.getBookingItemByName('infants').htmlNode.selectedIndex);
  var nrOfTeenagers = parseInt(childrenAgesSelection.getBookingItemByName('teenagers').htmlNode.selectedIndex);

  var nrOfParty = nrOfAdults+nrOfInfants+nrOfTeenagers;
  var minNumVillas = Math.ceil(nrOfParty/ADULTS_PER_VILLA);
	var numVillas = guestsAndVillas.getBookingItemByName('villas').htmlNode.value;

	while(nrOfParty > numVillas*ADULTS_PER_VILLA){
		numVillas++;
	}
	var villasSelect = guestsAndVillas.getBookingItemByName('villas').htmlNode;
  setSelectOptionsFromMinToMax(villasSelect,minNumVillas,4, numVillas);

	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(numVillas , 'children' , CHILDREN_PER_VILLA);
	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 == 'babies' || menuName == 'infants' || menuName == 'teenagers'){
		localBookingStage = childrenAgesSelection;
	}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');}
	var numVillas = parseInt(guestsAndVillas.getBookingItemByName('villas').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 */

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}


function initializeAll() {
  if (null != document.getElementById(BOOKING_TOOL_ID)) {
    setupBookingStages();
    setDefaultMonth();
    setupBrowseMenu();
    createCalendar();
    setupCalendar();
    bookingSelect();
    runSlideShow();
    nsExceptions();
    initializeLCONPCClient();
    checkVillageCountry();
    setDayMenuOptionsForCurrentMonth();
  }
}
addLoadEvent(initializeAll);
//alert(document.getElementById(BOOKING_TOOL_ID));
//if (null != document.getElementById(BOOKING_TOOL_ID)) {
//  addLoadEvent(setupBookingStages);
//  addLoadEvent(setDefaultMonth);
//  addLoadEvent(setupBrowseMenu);
//  addLoadEvent(createCalendar);
//  addLoadEvent(setupCalendar);
//  addLoadEvent(bookingSelect);
//  addLoadEvent(runSlideShow);
//  addLoadEvent(nsExceptions);
//  addLoadEvent(initializeLCONPCClient);
//  addLoadEvent(checkVillageCountry);
//  addLoadEvent(setDayMenuOptionsForCurrentMonth);
//}

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);
  setDayMenuOptionsForMonth(0);
}

function setDefaultMonth(){
	//selectMonth(monthArray[currentMonthInt]);
}

function setDayMenuOptionsForMonth(monthInt , yearInt, initialize){
  //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('chooseDate').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,true);
	}	
}

function updateLCONPCClient(vcUpdate) {
	if (lconpcClient) 
		lconpcClient.refreshData();	
}

