var childAge = '2|3|4|5|6|7|8|9|10|11';
function buildOpt(values,texts) {
	var valuesT = values.split("|");
	var textsT = texts.split("|");
		var j = parseInt(valuesT.length);
	for (var i=0;i<j;i++) {
		document.writeln('<option value="' + valuesT[i] + '">' + textsT[i] + '</option>');
	}
}

function isLeapYear(year) {
	return (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) ? 1 : 0;		
}

function getShortDayName(year,month,day) {
	var tmpDay = new Date(year,month,day);
	
	var day = tmpDay.getDay();
	var dayName;
	switch (day) {
		case 0 : dayName = "Sun"; break;
		case 1 : dayName = "Mon"; break;
		case 2 : dayName = "Tue"; break;
		case 3 : dayName = "Wed"; break;
		case 4 : dayName = "Thu"; break;
		case 5 : dayName = "Fri"; break;
		case 6 : dayName = "Sat"; break;
	}
	return dayName;
}

function changeCheckin(year,month,day) {
	document.selectrooms.checkInDate.value = (parseInt(month) + 1)+"/"+day+"/"+year;
	buildCalendarsSelect(year,month,day);
	calCout('datechange');
	return false;
}
function changeCheckout(year,month,day) {
//alert(year+" "+month+" "+day);
	document.selectrooms.checkOutDate.value = (parseInt(month) + 1)+"/"+day+"/"+year;
	buildCalendarsSelect(year,month,day,'out');
	return false;
}

function generateCal(year,month,day,type) {
	var originalCheckIn = document.getElementById("orgCheckInDate").value;
	var orgCheckIn = originalCheckIn.split("/");
	orgCheckIn[0] = orgCheckIn[0] - 1;
	var newDay = -1;
	var maxDate = new Date(parseInt(orgCheckIn[2])+5,11,31);
	var newDate = new Date(year,month,day);
	if (newDate > maxDate) {
		year = parseInt(orgCheckIn[2])+5;
		month = 11;
		day = 31;
	}
	
	if (isLeapYear(year))
		var maxDay = new Array(31,29,31,30,31,30,31,31,30,31,30,31);
	else
		var maxDay = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
	
	var months = new Array("January","February","March","April","May","June","July","August","September","October","November","December");

	if (type == "in")
		var hiddenField = "checkInDate";
	else {
		var hiddenField = "checkOutDate";
	}

	//write days
	if (document.getElementById("day_"+type))
		var prevDay = document.getElementById("day_"+type).value;
	htmlValue = ('<select id="day_'+type+'" name="day_'+type+'" onChange="changeCheck'+type+'(document.getElementById(\'year_'+type+'\').value,document.getElementById(\'month_'+type+'\').value,this.value);">');
	var minDay = 1;

	if ((parseInt(year) == parseInt(orgCheckIn[2])) && (parseInt(orgCheckIn[0]) == parseInt(month))) {
		minDay = orgCheckIn[1];
		if (parseInt(prevDay) < parseInt(minDay)) {
			if (type == "in") {
				day = minDay;
			}
			else {
				day = parseInt(minDay) + parseInt(document.selectrooms.nbNight.value);
				while (day > maxDay[month]) {
					day = parseInt(day) - maxDay[month];
					month = parseInt(month) + 1;
					
				}
				if ((parseInt(year) == parseInt(orgCheckIn[2])) && (parseInt(orgCheckIn[0]) == parseInt(month)))
					minDay = orgCheckIn[1];
				else
					minDay = 0;
			}
			var tmp = eval("document.selectrooms."+hiddenField);
			tmp.value = (parseInt(month) + 1)+"/"+day+"/"+year;
			newDay = day
		}
	}
	for (var i=minDay;i<=maxDay[month];i++) {
		var dayName = getShortDayName(year,month,i);
		if (i == day)
			htmlValue = htmlValue.concat('<option value="' + i + '" selected>' + i + '</option>');
		else
			htmlValue = htmlValue.concat('<option value="' + i + '">' + i + '</option>');
	}
	htmlValue = htmlValue.concat('</select>');
	//write months
	htmlValue = htmlValue.concat('&nbsp;<select id="month_'+type+'" name="month_'+type+'" onChange="changeCheck'+type+'(document.getElementById(\'year_'+type+'\').value,this.value,document.getElementById(\'day_'+type+'\').value);">');
	for (var i=0;i<12;i++) {
		var monthName = months[i];
		if (i == month)
			htmlValue = htmlValue.concat('<option value="' + i + '" selected>' + monthName + '</option>');
		else
			htmlValue = htmlValue.concat('<option value="' + i + '">' + monthName + '</option>');
	}
	htmlValue = htmlValue.concat('</select>');

	//write years
	htmlValue = htmlValue.concat('&nbsp;<select id="year_'+type+'" name="year_'+type+'" onChange="changeCheck'+type+'(this.value,document.getElementById(\'month_'+type+'\').value,document.getElementById(\'day_'+type+'\').value);">');
	for (var i=orgCheckIn[2];i<=(parseInt(orgCheckIn[2])+5);i++) {
		if (i == year)
			htmlValue = htmlValue.concat('<option value="' + i + '" selected>' + i + '</option>');
		else
			htmlValue = htmlValue.concat('<option value="' + i + '">' + i + '</option>');
	}
	htmlValue = htmlValue.concat('</select>');
	
	var result = new Array(htmlValue,newDay);
	return result;

}

function buildCalendarsSelect(year,month,day,type) {
	var checkInHtml;
	var checkOutHtml;
	var resultArray;
	var originalCheckIn = document.getElementById("orgCheckInDate").value;
	var orgCheckIn = originalCheckIn.split("/");
	var stay = document.selectrooms.nbNight.value;
	orgCheckIn[0] = orgCheckIn[0] - 1;
	
	if (type == "out") {
		var start = new Date(document.selectrooms.checkInDate.value);
		var end = new Date(document.selectrooms.checkOutDate.value);
		var checkOutRealDate = new Date(year,month,day);
		
//alert("in "+document.selectrooms.checkInDate.value+" out "+document.selectrooms.checkOutDate.value);


//alert("in "+document.selectrooms.checkInDate.value+" out "+document.selectrooms.checkOutDate.value);

		var one_day=1000*60*60*24;
		stay = Math.ceil((end.getTime() - start.getTime())/(one_day));
//alert(stay);
		if (stay > 40 || stay <= 0) {
//alert(stay);
			if (stay > 40)
				stay = 40;
			if (stay < 0)
				stay = 1;
				
//alert(checkInRealDate+" -- "+month+"/"+day+"/"+year+" stay-->"+stay);
			var checkInRealDate = new Date(year,month,parseInt(day)-parseInt(stay));
			var checkInOrgDate = new Date(originalCheckIn);
			if (checkInRealDate < checkInOrgDate) {
				checkInRealDate = checkInOrgDate;
				//stay = Math.abs(Math.ceil((end.getTime() - checkInRealDate.getTime())/(one_day)));
//alert('change '+checkInOrgDate+' stay '+stay);
			
			}
//alert(checkInRealDate+" -- "+month+"/"+day+"/"+year);
			var dayIn = parseInt(checkInRealDate.getDate());
			var monthIn = checkInRealDate.getMonth();
			var yearIn = checkInRealDate.getFullYear();
			resultArray = generateCal(yearIn,monthIn,dayIn,'in');
			document.getElementById('checkInSelection').innerHTML = resultArray[0];
			document.selectrooms.checkInDate.value = (parseInt(monthIn) + 1)+"/"+dayIn+"/"+yearIn;
			
			if (checkOutRealDate.getTime() == checkInRealDate.getTime()) {
				checkOutRealDate = new Date(year,month,parseInt(day) + 1);
				year = checkOutRealDate.getFullYear();
				month = checkOutRealDate.getMonth();
				day = checkOutRealDate.getDate();
			}
		}

		document.selectrooms.nbNight.value = stay;
		resultArray = generateCal(year,month,day,'out');
		document.getElementById('checkOutSelection').innerHTML = resultArray[0];
	
	}
	else {
	//generate checkout after checkin
		resultArray = generateCal(year,month,day,'in');
		document.getElementById('checkInSelection').innerHTML = resultArray[0];
		if (resultArray[1] != -1)
			day = resultArray[1];
		var checkOutRealDate = new Date(year,month,parseInt(day)+parseInt(stay));

		var dayOut = parseInt(checkOutRealDate.getDate());
		var monthOut = checkOutRealDate.getMonth();
		var yearOut = checkOutRealDate.getFullYear();

		resultArray = generateCal(yearOut,monthOut,dayOut,'out');
		document.getElementById('checkOutSelection').innerHTML = resultArray[0];
	}
	return false;
}

function calCout(special) {
	var checkin = new Date(document.selectrooms.checkInDate.value);
	var nights = document.selectrooms.nbNight[document.selectrooms.nbNight.selectedIndex].value;
	var checkout = new Date(checkin.getFullYear(),checkin.getMonth(),parseInt(checkin.getDate())+parseInt(nights));
	
	var day = checkout.getDay();
	var dayName;
		switch (day) {
			case 0 : dayName = "Sunday"; break;
			case 1 : dayName = "Monday"; break;
			case 2 : dayName = "Tuesday"; break;
			case 3 : dayName = "Wednesday"; break;
			case 4 : dayName = "Thursday"; break;
			case 5 : dayName = "Friday"; break;
			case 6 : dayName = "Saturday"; break;
		}
	var month = checkout.getMonth();
	var months = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
	var MonthName = months[month];
	var undefined;
	if (special == undefined) {
		buildCalendarsSelect(checkin.getFullYear(),checkin.getMonth(),parseInt(checkin.getDate()),'in');
	}
	document.selectrooms.checkOutDate.value = (parseInt(checkout.getMonth()) + 1)+"/"+checkout.getDate()+"/"+checkout.getFullYear();
	
//    document.getElementById('cout').innerHTML = dayName + ', ' + checkout.getDate() + ' ' + MonthName + ' ' + checkout.getFullYear();
	return false;
}

var childArray = new Array(0,0,0,0,0,0,0,0,0,0);
function showChildTitle() {
	var c = 0;
	var r = document.selectrooms.rooms[document.selectrooms.rooms.selectedIndex].value;
	for (var i=0;i<r;i++) {
		c = c + childArray[i];
	}
	/*
	if (c > 0) {
		document.getElementById('kids').style.display = '';
	} else {
		document.getElementById('kids').style.display = 'none';
	}
	*/
	return true;
}
function showChild(me,Span,nb) {
	var occ = me[me.selectedIndex].value;
	var vals = occ.split("|");
   // var occString = vals[1] + "/" + vals[0] + "/" + vals[2];
	var gocc=vals[0]+"|"+vals[1];
	if (gocc == '2|1') {
		childArray[nb-1] = 1;
		document.getElementById(Span).style.display = '';
	} else {
		childArray[nb-1] = 0;
		document.getElementById(Span).style.display = 'none';
	}
	return showChildTitle();
}
function showRoom() {
	var nbR = document.selectrooms.rooms[document.selectrooms.rooms.selectedIndex].value;
	var j;
	for (var i=1; i<=10; i++) {
		document.getElementById('r'+i).style.display = 'none';
	}
	for (i=1; i<=nbR; i++) {
		document.getElementById('r'+i).style.display = '';
	}

	return showChildTitle();;
}

/*
function buildRoomList(txt) {
	for (var i=2;i<=10;i++) {
		document.writeln('<tr id="r'+i+'" style="display:none;"><td colspan=2><table border=0 cellpadding=0 cellspacing=0><tr>');
		document.writeln('<TD align=left class="c8" style="width:110px"><b>'+txt+' #'+i+'</b></td>');
		document.writeln('<td align="left" class="c8" style="padding-left:0px"><select style="Z-INDEX: 1;width:250px" name="roomO[]" onChange="return showChild(this,\'kid_'+i+'\','+i+');" id="room['+i+']" class="c8">');
		document.writeln('<script>');
		document.writeln('buildOcc();');
		document.writeln('<\/script>');
		document.writeln('</select><input type="hidden" name="selectroomtype_id[]"></td></tr>');
		document.writeln('<tr id="kid_'+i+'" style="display:none;"><td class="c8" style="width:110px"><b>Extra Bed</b></td> <td align="left" class="c8"><INPUT TYPE="radio" NAME="extrabed_room_'+i+'_1" value=1>Extrabed For Adult<INPUT TYPE="radio" NAME="extrabed_room_'+i+'_1" value=2> Extrabed For Child (0-17)');
		document.writeln('</td></tr></table></td></tr>');
	}
	return true;
}
*/
function buildRoomList(txt,langid) {
	if(langid==2){
		var exad="Extrabed for adult";
		var exch="Extrabed for child (0-11 years old)";
	}else{
		var exad="Extrabed for adult";
		var exch="Extrabed for child (0-11 years old)";
	}
	for (var i=2;i<=10;i++) {
		document.writeln('<tr id="r'+i+'" style="display:none;">');
		document.writeln('<TD align=left valign=top class="c8" style="width:120px;padding-top:6px;"><b>'+txt+' #'+i+'</b></td>');
		document.writeln('<td align="left" class="c8" style="padding-left:3px;padding-top:6px;"><select name="roomO[]" onChange="return showChild(this,\'kid_'+i+'\','+i+');" style="width:250px;" id="room['+i+']" class="plain c8">');
		document.writeln('<script>');
		document.writeln('buildOcc();');
		document.writeln('<\/script>');
		document.writeln('</select><input type="hidden" name="selectroomtype_id[]">');
		document.writeln('<div id="kid_'+i+'" style="display:none;"><INPUT TYPE="radio" NAME="extrabed_room_'+i+'_1" value=1>'+exad+'<INPUT TYPE="radio" NAME="extrabed_room_'+i+'_1" value=2> '+exch+'');
		document.writeln('</div></td></tr>');
	}
	return true;
}

function buildRoomListEnquire(txt,langid) {
	if(langid==2){
		var exad="Extrabed for adult";
		var exch="Extrabed for child (0-11 years old)";
	}else{
		var exad="Extrabed for adult";
		var exch="Extrabed for child (0-11 years old)";
	}
	for (var i=2;i<=10;i++) {
		document.writeln('<tr id="r'+i+'" style="display:none;">');
		//document.writeln('<TD align=left valign=top class="c8" style="width:120px;padding-top:6px;"><b>'+txt+' #'+i+'</b></td>');
		document.writeln('<td align="left" class="c8" style="padding-left:3px;padding-top:6px;"><select name="roomO[]" onChange="showChild(this,\'kid_'+i+'\','+i+');chkRoomEnquery();" style="width:480px;" id="room['+i+']" class="plain c8">');
		document.writeln('<script>');
		document.writeln('buildOcc('+i+');');
		document.writeln('<\/script>');
		document.writeln('</select><input type="hidden" name="selectroomtype_id[]">');
		document.writeln('<div id="kid_'+i+'" style="display:none;"><INPUT TYPE="radio" NAME="extrabed_room_'+i+'_1" value=1>'+exad+'<INPUT TYPE="radio" NAME="extrabed_room_'+i+'_1" value=2> '+exch+'');
		document.writeln('</div></td></tr>');
	}
	return true;
}

function L(a,b,c,d,e) {
	document.writeln('<tr>');
	K(a);
	W(b);
	W(c);
	W(d);
	W(e);
	document.writeln('</tr>');
}
function W(x) {
	document.writeln('<td nowrap style="background-color:rgb(255,251,234); font-size:11px;">&nbsp;'+x+'&nbsp;</td>');
}
function K(x) {
	document.writeln('<td nowrap style="background-color:rgb(255,251,234); font-size:12px;">&nbsp;'+x+'&nbsp;</td>');
}

function chkformatdate(idf){
	alert(document.getElementById(""+idf+"").value);
}