function setupBookingStages(){
	var bookingForm = document.getElementById(BOOKING_TOOL_ID);
	var fieldsets = bookingForm.getElementsByTagName('FIELDSET');
	var stageList = new Array();
	var orderedStageNames = new Array();
	for (var i=0; i<fieldsets.length; i++){
		var stageName = fieldsets[i].getAttribute('ID');
		if(i>0){
			var previousName = fieldsets[i-1].getAttribute('ID');
			orderedStageNames[previousName] = stageName; 
		}//set this array up to key each stage name to the next stage
		var bookingItemList = new Array();
		var dropDownList = fieldsets[i].getElementsByTagName('SELECT');
		for (var j=0; j<dropDownList.length; j++){
			var dropDownName = dropDownList[j].getAttribute('ID');
			var bookingItem = new BookingItem(dropDownList[j] , dropDownName);
			bookingItemList[dropDownName] = bookingItem;
		}

  var hiddenInputList = fieldsets[i].getElementsByTagName('INPUT');
		for (var j=0; j<hiddenInputList.length; j++){
		  if(hiddenInputList[j].type.toLowerCase() == "hidden"){
        var hiddenObject = hiddenInputList[j];
  			var hiddenInputName = hiddenInputList[j].getAttribute('ID');
  			var bookingItem = new BookingItem(hiddenInputList[j] , hiddenInputName);
  			bookingItemList[hiddenInputName] = bookingItem;
		  }
		}

		var bookingStage = new BookingStage(fieldsets[i] , stageName);
		bookingStage.setBookingItems(bookingItemList);
		bookingStage.setStageNumber(i);
		stageList[stageName] = bookingStage;
	}
	bookingStages = new BookingStages(bookingForm);
	bookingStages.setBookingStages(stageList);
	bookingStages.setOrderedStageNames(orderedStageNames);

  bBookingTool = (!bookingStages.getBookingStageByName('checkAndSubmit')) ? false : true;
	if(!bookingStages.getBookingStageByName('chooseDate')){
		availabilityCheck = true;
	}
	initialBookingDisplay();
}

function initialBookingDisplay(){
	  bookingStages.getBookingStageByName('chooseDate').setCompleted(true);
	  bookingStages.getBookingStageByName('chooseDate').setDisplayForState(true);
	  bookingStages.getBookingStageByName(bookingStages.getNextStageName('chooseDate')).setCompleted(true);
	  bookingStages.getBookingStageByName('guestsAndVillas').setCompleted(true);
    if (bBookingTool) {
  		bookingStages.getBookingStageByName('checkAndSubmit').setDisplayForState(true);
   		bookingStages.getBookingStageByName('checkAndSubmit').setEnabledForState(false);
    }
}
// JavaScript Document
