/* date variables */
var dayMonthMap = ['31','29','31','30','31','30','31','31','30','31','30','31'];
var monthSet = new Array;
var holder = document.getElementById('day');
var today = new Date();
var currentDay = today.getDate();
today.setHours(0);
initialiseDay();

/* room selection variables */
var roomContainer = document.getElementById('rooms');
var currentNumberOfRooms=1;
var currentNumberOfchildrenForRoom=new Array(4);
currentNumberOfchildrenForRoom = [0,0,0,0];


/*******************************************************************************
* initial date is today's date
*******************************************************************************/
function initialiseDay(){
document.form.year.value=today.getFullYear();
document.form.month.value=today.getMonth()+1;
updateDay(document.form.month.value);
document.form.day.value=today.getDate();
updateDept();
}
/*******************************************************************************
* initial date is today's date
*******************************************************************************/


/*******************************************************************************
* update date fields when any date field is changed
*******************************************************************************/
function updateDay(month){
 if( holder.hasChildNodes())
  {
    while ( holder.childNodes.length >= 1 )
     {
      holder.removeChild( holder.firstChild );
     }
  }
 for (a = 1 ;a<=dayMonthMap[parseInt(month-1)];a++)
  {
    monthSet[a] = document.createElement("option")
		monthSet[a].setAttribute("value",a)
		var text = document.createTextNode(a);
		monthSet[a].appendChild(text);
		holder.appendChild(monthSet[a]);
  }

}
/*******************************************************************************
* update date fields when any date field is changed
*******************************************************************************/


/*******************************************************************************
* initial date is today's date
*******************************************************************************/
function updateDept(){
  document.form.departureDate.value=document.form.year.value+'-'+document.form.month.value+'-'+document.form.day.value;
}
/*******************************************************************************
* initial date is today's date
*******************************************************************************/


/*******************************************************************************
* generate url
*******************************************************************************/
function searchThomson(){
//make sure a destination has been entered
if (document.form.tuiCtryCode.value=='Any')
 {
  alert('please enter a destination');
  return false;
 }

/*if destination is a city as well as a country code split the element value and
populate both form fields */
var destString = document.form.tuiCtryCode.value.split(",");
var destCodeH = document.getElementById('destCode');

if(destString.length>1)
 {
	 document.form.tuiCtryCode.value = destString[0];
	 document.form.tuiDestCode.value = destString[1];
 }
else
 {

	document.form.tuiCtryCode.value = destString[0];
	document.form.tuiDestCode.value = '';
 }


/* make sure date given is not in the past */
var given = new Date(document.form.year.value,document.form.month.value-1,document.form.day.value);
given.setHours(1);

if(given<today)
 {
  alert('date given is in the past');
  return false;
 }

/* build per room parameter list in the following format:
number of adults in a room
number of children in a room
the ages of children in each room
e.g. &numAdults=2|1&numChildren=2|2&childInfantAges5-8|8-7
2 rooms, 2 adults in the first room and 1 adult in the second
2 children in the first room and 2 in the second
the ages of the children in the first room are 5 and 8
the ages of the children in the second room are 8 and 7
*/
document.form.numAdults.value='';
document.form.numChildren.value='';
document.form.childInfantAges.value='';

//without room ocupancy and child age displays.
/********************************************************/
var agesHolder='';
var adultsInRoom='';
var childrenInRoom='';

var totalNumberOfRooms = parseInt(document.form.numberOfRooms.value,10);
var totalNumberOfChildren = parseInt(document.form.childRooms1.value,10);
var totalNumberOfAdults = parseInt(document.form.adultRooms1.value,10);
var cra=0;
var ara=0;

if(totalNumberOfChildren % totalNumberOfRooms != 0)
 {
  var cra = totalNumberOfChildren % totalNumberOfRooms;
	totalNumberOfChildren = totalNumberOfChildren - cra;
	totalNumberOfChildren = totalNumberOfChildren / totalNumberOfRooms;
 }

else
 {
   totalNumberOfChildren = totalNumberOfChildren / totalNumberOfRooms;
 }
if(totalNumberOfAdults % totalNumberOfRooms != 0)
 {
  var ara = totalNumberOfAdults % totalNumberOfRooms;
	totalNumberOfAdults = totalNumberOfAdults - ara;
	totalNumberOfAdults = totalNumberOfAdults / totalNumberOfRooms;
 }
else
 {
   totalNumberOfAdults = totalNumberOfAdults / totalNumberOfRooms;
 }

averageNumberPerRoom = (totalNumberOfChildren + totalNumberOfAdults) / totalNumberOfRooms;


for(var t=0;t<totalNumberOfRooms;t++)
{
 for(var i=0;i<totalNumberOfChildren;i++)
  {
	 if(i!=totalNumberOfChildren-1)
    {
     agesHolder+='5-';
  	}
	 else if(cra!=0 && t!=totalNumberOfRooms-1)
	  {
		 agesHolder+='5';
		}
	 else {if(cra!=0){agesHolder+='5-';}else{agesHolder+='5';}}
  }

	if(t!=totalNumberOfRooms-1){agesHolder+='|'};


	if(t!=totalNumberOfRooms-1)
	 {
		adultsInRoom+=totalNumberOfAdults+'|';
		childrenInRoom+=totalNumberOfChildren+'|';
	 }
	else if (ara!=0 && t==totalNumberOfRooms-1)
		  {
			 adultsInRoom+=totalNumberOfAdults+ara;
			 childrenInRoom+=totalNumberOfChildren+cra;
			}
	else
	  {
		  adultsInRoom+=totalNumberOfAdults;
		  childrenInRoom+=totalNumberOfChildren;
		}

 }

 for(var s=0;s<cra;s++)
 {
  if(s==cra-1)
    {
     agesHolder+='5';
  	}
   else
    {
  	 agesHolder+='5-';
  	}
 }

document.form.numAdults.value=adultsInRoom;
document.form.numChildren.value=childrenInRoom;
document.form.childInfantAges.value=agesHolder;

/********************************************************/
/*
	for(var c=0;c<form.numChildren.value;c++){
   if(c==form.numChildren.value-1)
    {
     form.childInfantAges.value+='5';
  	}
   else
    {
  	 form.childInfantAges.value+='5-';
  	}
  }
	*/
/*
for(var i=1;i<parseInt(form.numberOfRooms.value,10)+1;i++)
 {
	 for(var t=0;t<currentNumberOfchildrenForRoom[i-1];t++)
	  {
		  form.childInfantAges.value+=document.getElementById('childrenAges'+i+t).value;
			 if(t+1<currentNumberOfchildrenForRoom[i-1])
			  {
				 form.childInfantAges.value+='-';
				}
		}

		form.numAdults.value+=document.getElementById('adultRooms'+i).value;
		form.numChildren.value+=document.getElementById('childRooms'+i).value;
		if(parseInt(form.numberOfRooms.value,10)>1&&i<parseInt(form.numberOfRooms.value,10))
		 {
		  form.numAdults.value+='|';
			form.numChildren.value+='|';
			form.childInfantAges.value+='|';
		 }
 }
*/
generate_url();

}
/*******************************************************************************
* generate url
*******************************************************************************/

/*******************************************************************************
* adding rooms
*******************************************************************************/
function addRooms(numRooms){
/* check to see if the current number of rooms selected is less than
the new selection, if it isn't delete rooms */
var theNumber = numRooms - parseInt(currentNumberOfRooms);
if(theNumber < 0)
 {
  for(x=currentNumberOfRooms;x>numRooms;x--)
	{
	 roomContainer.removeChild( document.getElementById('rooms'+x) );
  }
 }
/* otherwise add rooms */
else
 {
  for (var a = parseInt(currentNumberOfRooms,10)+1 ;a<parseInt(numRooms,10)+1;a++)
  {

		//add room
		var room = document.createElement("div");
		room.setAttribute("id",'rooms'+a);
		roomContainer.appendChild(room);

	  var roomNumberLabel = document.createTextNode('Room ' + a);
		room.appendChild(roomNumberLabel);

		//add adult container
		var adultRoom = document.createElement("div");
		adultRoom.setAttribute("id",'adult'+a);
		room.appendChild(adultRoom);

		//add adult drop-down
		var adultCustomerLabel = document.createTextNode('Adults ');
		adultRoom.appendChild(adultCustomerLabel);
		var adults = document.createElement("select");
		adults.setAttribute("id",'adultRooms'+a);
		adultRoom.appendChild(adults);

		//number of adults
		for (b=1;b<10;b++)
  	{
		 var adultAmount = document.createElement("option")
		 adultAmount.setAttribute("value",b)
		 var text = document.createTextNode(b);
		 adultAmount.appendChild(text);
		 document.getElementById('adultRooms'+a).appendChild(adultAmount);
  	}

		//add child container
		var childRoom = document.createElement("div");
		childRoom.setAttribute("id",'child'+a);
		room.appendChild(childRoom)

		var childCustomerLabel = document.createTextNode('Children ');
		childRoom.appendChild(childCustomerLabel);

		//add child drop-down
		var children = document.createElement("select");
		children.setAttribute("id",'childRooms'+a);



		/* set onchange event */
		if(window.ActiveXObject)
		 {
		  children.setAttribute("onchange",children.onchange =  function()
			 {
			  addChildAges(this.value,this.id);
			 }
			);
		 }
		else
		 {
		  children.setAttribute("onchange",'addChildAges(this.value,this.id)');
		 }
		/* set onchange event */

		childRoom.appendChild(children);

		//number of children
		for (c=0;c<9;c++)
  	{
     var adultAmount = document.createElement("option");
		 adultAmount.setAttribute("value",c);
		 var text = document.createTextNode(c);
		 adultAmount.appendChild(text);
		 document.getElementById('childRooms'+a).appendChild(adultAmount);
  	}
	}
}

currentNumberOfRooms=numRooms;
}
/*******************************************************************************
* adding rooms
*******************************************************************************/

/*******************************************************************************
* add child ages
*******************************************************************************/
function addChildAges(passed,roomNumber){
if(isNaN(roomNumber)){
roomNumber = roomNumber.split('childRooms');
roomNumber = roomNumber[1];
}



handle=document.getElementById('child'+roomNumber);
var theNumberOfChildren = passed - currentNumberOfchildrenForRoom[roomNumber-1];
/* check to see if the current number of children selected is less than
the new selection, if it isn't delete children */
if(theNumberOfChildren < 0)
 {
  for(x=currentNumberOfchildrenForRoom[roomNumber-1]-1;x>=parseInt(passed,10);x--)
	{
	 var roomPart = roomNumber;
	 var childNumber = x;
	 var addon = ''+roomPart+childNumber;
	 document.getElementById('childrenAges'+addon).innerHTML = '';
	 handle.removeChild( document.getElementById('childrenAges'+addon));
	 handle.removeChild( document.getElementById('spaceLabel'+addon));
  }
 }
/* otherwise add rooms */
else
 {

	 for(var a = currentNumberOfchildrenForRoom[roomNumber-1]; a<parseInt(passed,10);a++)
	 {


		 var space = document.createElement("div");
		 var spaceLabel = document.createTextNode('Age');
		 space.setAttribute("id",'spaceLabel'+String(roomNumber)+a);
		 document.getElementById('child'+roomNumber).appendChild(space);
		 space.appendChild(spaceLabel);

		 var childrenAges = document.createElement("select");
		 childrenAges.setAttribute("id",'childrenAges'+String(roomNumber)+a);
     handle.appendChild(childrenAges);

		/*
		 if(passed >0)
		 {
	    var childAgesLabel = document.createTextNode('Age');
	    document.getElementById('child'+roomNumber).appendChild(childAgesLabel);
	   }
		*/
		 for (d=0;d<17;d++)
  	  {
     	 var cAge = document.createElement("option")
		 	 cAge.setAttribute("value",d)
		 	 var text = document.createTextNode(d);
		 	 cAge.appendChild(text);
		 	 document.getElementById('childrenAges'+String(roomNumber)+a).appendChild(cAge);
  	  }
		}
	}
	currentNumberOfchildrenForRoom[roomNumber-1]=passed;
}
/*******************************************************************************
* add child ages
*******************************************************************************/

