// JavaScript Document
arrMonths = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
arrMonths2 = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
var nRooms = 0;
function addNewRow() {
	nRooms++;
	tbl = document.getElementById("tblMain");
	row = tbl.insertRow(nRooms);
	row.style.background = "#e6e3e3";
	//row.bgColor = "#FF0000";
	cell0 = row.insertCell(0);
	cell0.align = "center";
	strOptions = "";
	strOptions += "<option value=\"0\" selected>Please Select*</option>";
	for (i = 0;i < arrRoomTypes.length;i++) {
		strOptions += "<option value=\"" + arrRoomTypes[i][0] + "\">" + arrRoomTypes[i][1] + "</option>";
	}
	strAll = "<select name=\"rt" + nRooms + "\" id=\"rt" + nRooms + "\" onChange=\"calcPrice(" + nRooms + ");chkNew(" + nRooms + ");\">" + strOptions + "</select>";
	cell0.innerHTML = strAll;
	cell1 = row.insertCell(1);
	cell1.align = "center";
	cell1 = "&nbsp;";
	cell2 = row.insertCell(2);
	cell2.align = "center";
	cell2.innerHTML = "&nbsp;";
	cell2.realValue = 0;
	cell3 = row.insertCell(3);
	cell3.align = "right";
	cell3.innerHTML = "&nbsp;";
	cell3.realValue = 0;
	cell4 = row.insertCell(4);
	cell4.align = "right";
	cell4.innerHTML = "&nbsp;";
	cell4.realValue = 0;
}
function chkNew(n) {
	if (n == nRooms) addNewRow();	
}
function checkSeason(tm,ye) {
	nSeaReturn = 0;
	for (icss = 0;icss < arrSeasons.length;icss++) {
		//alert(tm + " <> " + arrSeasons[icss][2] + " (" + arrSeasons[icss][1] + ")");
		tmChk1 = new Date();
		tmChk1.setTime(arrSeasons[icss][2]);
		tmChk1.setYear(ye);
		tmChk2 = new Date();
		tmChk2.setTime(arrSeasons[icss][3]);
		tmChk2.setYear(ye);
		//alert(tmChk1.getTime() + " < " + tm + " > " + tmChk2.getTime());
		if (tm >= tmChk1.getTime() && tm <= tmChk2.getTime()) nSeaReturn = icss;
	}
	return nSeaReturn;
}
function calcPrice(n) {
	obj = document.getElementById("rt" + n);
	sel = obj.selectedIndex - 1;
	tbl = document.getElementById("tblMain");
	if (sel < 0) {
		tbl.rows[n].cells[1].innerHTML = "&nbsp;";
		tbl.rows[n].cells[2].innerHTML = "&nbsp;";
		tbl.rows[n].cells[3].innerHTML = "&nbsp;";
		tbl.rows[n].cells[4].innerHTML = "&nbsp;";
		tbl.rows[n].cells[4].realValue = 0;
		calcAllLine();
		return;
	}
	strNum = new RegExp("^\\d{1,3}$","g");
	if (form1.length.value.search(strNum) == -1) {
		alert("Invalid number");
		form1.length.focus();
		return;
	}
	strBT = arrRoomTypes[sel][2];
	arrBT = strBT.split(",");
	optBT = "";
	for (i = 0;i < arrBT.length;i++) {
		optBT += "<option value=\"" + arrBT[i] + "\">" + arrBT[i] + "</option>";	
	}
	tbl.rows[n].cells[1].innerHTML = "<select name=\"bt" + n + "\">" + optBT + "</select>";
	if (arrRoomTypes[sel][3] > 0) { //extra bed
		if (tbl.rows[n].cells[2].innerHTML != "&nbsp;") {
			if (exchk = document.getElementById("ex" + n)) {
				if (exchk.checked) {
					tbl.rows[n].cells[2].realValue = arrRoomTypes[sel][3]; // + vat
				}
				else {
					tbl.rows[n].cells[2].realValue = 0;
				}
			}
		}
		else {
			tbl.rows[n].cells[2].innerHTML = "<input type=\"checkbox\" id=\"ex" + n + "\" name=\"ex" + n + "\" value=\"" + arrRoomTypes[sel][3] + "\" onClick=\"calcPrice(" + n + ")\"> " + arrRoomTypes[sel][3];
			tbl.rows[n].cells[2].realValue = 0;
		}
	}
	else {
		tbl.rows[n].cells[2].innerHTML = "&nbsp;";
		tbl.rows[n].cells[2].realValue = 0;
	}
	//rt_id = arrRoomTypes[sel][0];
	dateBegin = new Date();
	form1.iyy.value = parseInt(form1.iyy.value);
	if (form1.iyy.value < 2000) form1.iyy.value = 1900 + parseInt(form1.iyy.value);
	dateBegin.setFullYear(form1.iyy.value,form1.imm.value - 1,form1.idd.value);
	allprice = 0;
	nEnd = parseInt(form1.length.value);
	season = 0;
	arrSeaStack = new Array(arrSeasons.length);
	for (ii = 0;ii < arrSeaStack.length;ii++) {
		arrSeaStack[ii] = 0;
	}
	for (icp = 1;icp <= form1.length.value;icp++) {
		ysend = dateBegin.getYear();
		if (ysend < 2000) ysend += 1900;
		season = checkSeason(dateBegin.getTime(),ysend);
		arrSeaStack[season]++;
		allprice += arrPrices[season][sel][1];
		dateBegin.setDate(dateBegin.getDate() + 1);
	}
	strResult3 = "";
	for (ii = 0;ii < arrSeaStack.length;ii++) {
		if (arrSeaStack[ii] > 0) strResult3 += "<br>" + arrSeasons[ii][1] + ", " + faceNum(arrPrices[ii][sel][1]) + " x " + arrSeaStack[ii];
	}
	strResult3 = strResult3.substr(4);
	tbl.rows[n].cells[3].innerHTML = strResult3;
	tbl.rows[n].cells[3].realValue = allprice;
	tbl.rows[n].cells[4].innerHTML = faceNum(allprice + tbl.rows[n].cells[2].realValue * form1.length.value);
	tbl.rows[n].cells[4].realValue = allprice + tbl.rows[n].cells[2].realValue * form1.length.value;
	calcAllLine();
}
function calcAllLine() {
	tbl = document.getElementById("tblMain");
	nAll = 0;
	for (ical = 1;ical <= nRooms;ical++) {
		nAll += tbl.rows[ical].cells[4].realValue;
	}
	document.getElementById("areaTotal").innerHTML = faceNum(nAll);
	//document.getElementById("areaTax").innerHTML = faceNum(Math.round(nAll * 0.07));
	document.getElementById("areaTax").innerHTML = "<font color=\"#FF0000\">0</font>";
	//document.getElementById("areaTotalAll").innerHTML = faceNum(Math.round(nAll * 1.07));
	document.getElementById("areaTotalAll").innerHTML = faceNum(nAll);
}
function calcAllLine2() {
	for (ical2 = 1;ical2 <= nRooms;ical2++) {
		calcPrice(ical2);
	}
}
function goToNext() {
	bCheck = false;
	if (form1.fname.value == "") bCheck = true;
	if (form1.telephone.value == "") bCheck = true;
	if (form1.email.value == "") bCheck = true;
	if (bCheck) {
		alert("Please input all require field");
		return false;
	}
	if (nRooms <= 1) {
		alert("Pleas select room type.");
		return false;
	}
	form1.nRooms.value = nRooms;
	return true;
}
function autoToday() {
	d = new Date();
	yy = d.getYear();
	if (yy < 2000) yy += 1900;
	form1.idd.value = d.getDate();
	form1.imm.selectedIndex = d.getMonth();
	form1.iyy.value = yy;
}
function autoCheckOut() {
	//todo: auto checkout
	strNum = new RegExp("^\\d{1,4}$","g");
	if (form1.iyy.value.search(strNum) == -1) {
		dd = new Date();
		form1.iyy.value = dd.getYear();
	}
	if (form1.length.value.search(strNum) == -1) {
		form1.length.value = 1;
	}
	d = new Date();
	form1.iyy.value = parseInt(form1.iyy.value);
	if (form1.iyy.value < 2000) form1.iyy.value = 1900 + parseInt(form1.iyy.value);
	d.setFullYear(form1.iyy.value,form1.imm.value - 1,form1.idd.value);
	form1.iyy.value = d.getYear();
	if (form1.iyy.value < 2000) form1.iyy.value = 1900 + parseInt(form1.iyy.value);
	form1.imm.value = d.getMonth() + 1;
	form1.idd.value = d.getDate();
	d.setDate(d.getDate() + parseInt(form1.length.value,10));
	strOut = d.getDate() + " " + arrMonths[d.getMonth()] + " " + d.getYear();
	//document.getElementById("areaDepart").innerHTML = strOut;
	form1.oyy.value = d.getYear();
	if (form1.oyy.value < 2000) form1.oyy.value = 1900 + parseInt(form1.oyy.value);
	form1.omm.selectedIndex = d.getMonth();
	form1.odd.value = d.getDate();
	//chkHL(form1.room_type.value)
}
function autoCountNight() {
	strNum = new RegExp("^\\d{1,4}$","g");
	if (form1.oyy.value.search(strNum) == -1 || form1.oyy.value > 2050) {
		dd = new Date();
		form1.oyy.value = dd.getYear();
	}
	din = new Date();
	din.setFullYear(form1.iyy.value,form1.imm.selectedIndex,form1.idd.value);
	dout = new Date();
	dout.setFullYear(form1.oyy.value,form1.omm.selectedIndex,form1.odd.value);
	din.setHours(0);
	din.setMinutes(0);
	din.setSeconds(0);
	dout.setHours(0);
	dout.setMinutes(0);
	dout.setSeconds(0);
	if (dout.getTime() <= din.getTime()) {
		form1.length.value = 1;
		autoCheckOut();
		return;
	}
	nCount = 0;
	while (din.getTime() < dout.getTime()) {
		nCount++;
		din.setDate(din.getDate() + 1);
	}
	form1.length.value = nCount;
}
function faceNum(nFace) {
	strOut = "";
	nFace += "";
	nFA = nFace.length;
	ooo = 0;
	for (ifn = Math.abs(nFA - 1);ifn >= 0;ifn--) {
		ooo++;
		strOut = nFace.substr(ifn,1) + strOut;
		if (ooo >= 3 && ifn > 0) {
			strOut = "," + strOut;
			ooo = 0;
		}
	}
	return strOut;
}
function ccf(obj) {
	if (obj.checked) form1.Submit.disabled = false;
	else form1.Submit.disabled = true;
}