function showHiddenOtherField(aComboBox, aFieldId) {
	var divObj = document.getElementById(aFieldId + 'div');
	if (aComboBox.options[aComboBox.selectedIndex].value == "Topic-35") {
		divObj.style.display = 'block';
	} else {
		divObj.style.display = 'none';
		document.getElementById(aFieldId).value = '';
	}
}

function showHiddenOtherField2(aComboBox, aFieldId) {
	var divObj = document.getElementById(aFieldId + 'div');
	if (aComboBox.options[aComboBox.selectedIndex].value == "OTH") {
		divObj.style.display = 'block';
	} else {
		divObj.style.display = 'none';
		document.getElementById(aFieldId).value = '';
	}
}

function addRow(aId, aCounterId, aColCount, aStyle, aRemoveButtonTitle) {
	var counter = document.getElementById(aCounterId);
	var obj = document.getElementById(aId);

	var newBlock = document.createElement("BLOCKQUOTE");
	newBlock.setAttribute("id", aId + "_block" + counter.value);

	for (var i = 0; i < aColCount.length; i++) {
		var newRow = document.createElement("TR");
		var col1 = document.createElement("TD");
		col1.setAttribute("innerHTML", aColCount[i][0]);
		col1.setAttribute("bgColor", "white");
		col1.setAttribute("width", "50%");
		var col2 = document.createElement("TD");
		col2.setAttribute("colSpan", "2");
		col2.setAttribute("bgColor", "white");
		var innerHTML = "";
		for (var j = 1; j < aColCount[i].length; j++) {
			// check input type
			var inputType = aColCount[i][j][0];
			if (inputType == 'constant_text') {
				innerHTML += aColCount[i][j][2];
			} else {
				var prefix = inputType;
				if (inputType == "text" || inputType == "checkbox" || inputType == "radio")
					prefix = "input type='" + inputType + "'";
				innerHTML += "<" + prefix + " name='" + aId + "_row" + counter.value + aColCount[i][j][1] + "' " + aColCount[i][j][3];
				if (aColCount[i][j][4] == "1") {
					innerHTML += " onChange='javascript: showHiddenOtherField(this, \"" + aId + "_row" + counter.value + aColCount[i][j][1] + "_other\")';";
				} else if (aColCount[i][j][4] == "2") {
					innerHTML += " onChange='javascript: switchContent(this, \"" + aId + "_row" + counter.value + aColCount[i][j][5] + "\")';";
				}
				innerHTML += ">";
				innerHTML += aColCount[i][j][2];
				if (inputType == "select" || inputType == "textarea")
					innerHTML += "</" + inputType + ">";
				if (aColCount[i][j][4] == "1") {
					// hidden field
					innerHTML += "<input id='" + aId + "_row" + counter.value + aColCount[i][j][1] + "_other' type='text' name='" + aId + "_row" + counter.value + aColCount[i][j][1] + "_other' value='' class='mezohidden'>";
				}
			}
		}
		//col2.setAttribute("innerHTML", innerHTML);
		col2.innerHTML = innerHTML;
		newRow.appendChild(col1);
		newRow.appendChild(col2);
		newBlock.appendChild(newRow);
	}
	var newRowDel = document.createElement("<TR>");
	var newColDel = document.createElement("<TD width='240'>");
	newColDel.setAttribute("colSpan", "2");
	newColDel.setAttribute("bgColor", "white");
	newColDel.setAttribute("colSpan", "3");
	newColDel.innerHTML = "<input type='hidden' name='" + aId + "_row" + counter.value + "' value='ok'><input type='button' class='box2' value='Remove' onClick='javascript: removeRow(\"" + aId + "\", \"" + aId + "_block" + counter.value + "\");'>";
	//newColDel.setAttribute("innerHTML", "<input type='hidden' name='" + aId + "_row" + counter.value + "' value='ok'><input type='button' class='box2' value='Remove' onClick='javascript: removeRow(\"" + aId + "\", \"" + aId + "_block" + counter.value + "\");'>");
	newRowDel.appendChild(newColDel);
	newBlock.appendChild(newRowDel);
	obj.appendChild(newBlock);
	//alert(obj.innerHTML);
	counter.value = parseInt(counter.value) + 1;
}

function addRowSimple(aId, aCounterId, aColCount, aRemoveButtonTitle, aRemoveConfirmationText) {
	var counter = document.getElementById(aCounterId);
	var obj = document.getElementById(aId);
	//var newBlock = document.createElement("BLOCKQUOTE");
	//newBlock.setAttribute("id", aId + "_block" + counter.value);
	var newRow = document.createElement("TR");
	for (var i = 0; i < aColCount.length; i++) {
		var col2 = document.createElement("<TD>");
//		col2.setAttribute("width", "100%");
		col2.setAttribute("class", "feher");
		//col2.setAttribute("bgColor", "white");
		// check input type
		var inputType = aColCount[i][1][0];
		if (inputType != 'empty') {
			var prefix = inputType;
			if (inputType == "text" || inputType == "checkbox" || inputType == "radio")
				prefix = "input type='" + inputType + "'";
			var innerHTML = "<" + prefix + " name='" + aId + "_row" + counter.value + aColCount[i][1][1] + "' " + aColCount[i][1][3];
			if (aColCount[i][1][4] == "1") {
				innerHTML += " onChange='javascript: showHiddenOtherField(this, \"" + aId + "_row" + counter.value + aColCount[i][1][1] + "_other\")';";
			} else if (aColCount[i][1][4] == "2") {
				innerHTML += " onChange='javascript: switchContent(this, \"" + aId + "_row" + counter.value + aColCount[i][1][5] + "\")';";
			}
			innerHTML += ">";
			innerHTML += aColCount[i][1][2];
			if (inputType == "select" || inputType == "textarea")
				innerHTML += "</" + inputType + " class='box2'>";
			if (aColCount[i][1][4] == "1") {
				// hidden field
				innerHTML += "<input id='" + aId + "_row" + counter.value + aColCount[i][1][1] + "_other' type='text' name='" + aId + "_row" + counter.value + aColCount[i][1][1] + "_other' value='' class='mezohidden'>";
			}
		} else {
			innerHTML = aColCount[i][0] + '.';
		}
		col2.innerHTML = innerHTML;
		//col2.setAttribute("innerHTML", innerHTML);
		newRow.appendChild(col2);
	}
	//newBlock.appendChild(newRow);
	//alert(newBlock.innerHTML);
	var newRowDel = document.createElement("<TR>");
	var newColDel = document.createElement("<TD>");
	newColDel.setAttribute("width", "240");
	newColDel.setAttribute("bgColor", "white");
	var removeButtonTitle = aRemoveButtonTitle ? aRemoveButtonTitle : "Remove";
	newColDel.innerHTML = "<input type='hidden' name='" + aId + "_row" + counter.value + "' value='ok'><input type='button' class='box2' value='" + removeButtonTitle + " ' onClick='javascript: removeRow(this, \"" + aId + "\", \"" + aRemoveConfirmationText + "\");'>";
	//newColDel.setAttribute("innerHTML", "<input type='hidden' name='" + aId + "_row" + counter.value + "' value='ok'><input type='button' class='box2' value='" + removeButtonTitle + " ' onClick='javascript: removeRow(this, \"" + aId + "\", \"" + aRemoveConfirmationText + "\");'>");
	newColDel.setAttribute("colSpan", aColCount.length);
	newRowDel.appendChild(newColDel);
	//newBlock.appendChild(newRowDel);
	//obj.appendChild(newBlock);
	obj.appendChild(newRow);
	obj.appendChild(newRowDel);
	//alert(obj.innerHTML);
	counter.value = parseInt(counter.value) + 1;
}

function addRowSimpleP1(aId, aCounterId, aColCount, aRemoveButtonTitle, aRemoveConfirmationText) {
	var counter = document.getElementById(aCounterId);
	var obj = document.getElementById(aId);
	var newBlock = document.createElement("BLOCKQUOTE");
	newBlock.setAttribute("id", aId + "_block" + counter.value);
	var newRow = document.createElement("TR");
	for (var i = 0; i < aColCount.length; i++) {
		var col2 = document.createElement("<TD class='feher'>");
		col2.setAttribute("bgColor", "white");
		// check input type
		var inputType = aColCount[i][1][0];
		if (inputType != 'empty') {
			var prefix = inputType;
			if (inputType == "text" || inputType == "checkbox" || inputType == "radio")
				prefix = "input type='" + inputType + "'";
			var innerHTML = "<" + prefix + " name='" + aId + "_row" + counter.value + aColCount[i][1][1] + "' " + aColCount[i][1][3];
			if (aColCount[i][1][4] == "1") {
				innerHTML += " onChange='javascript: showHiddenOtherField(this, \"" + aId + "_row" + counter.value + aColCount[i][1][1] + "_other\")';";
			} else if (aColCount[i][1][4] == "2") {
				innerHTML += " onChange='javascript: switchContent(this, \"" + aId + "_row" + counter.value + aColCount[i][1][5] + "\")';";
			}
			innerHTML += ">";
			innerHTML += aColCount[i][1][2];
			if (inputType == "select" || inputType == "textarea")
				innerHTML += "</" + inputType + ">";
			if (aColCount[i][1][4] == "1") {
				// hidden field
				innerHTML += "<input id='" + aId + "_row" + counter.value + aColCount[i][1][1] + "_other' type='text' name='" + aId + "_row" + counter.value + aColCount[i][1][1] + "_other' value='' class='mezohidden'>";
			}
		} else {
			innerHTML = aColCount[i][0] + '.';
		}
		col2.setAttribute("innerHTML", innerHTML);
		newRow.appendChild(col2);
	}
	newBlock.appendChild(newRow);
	var newRowDel = document.createElement("<TR>");
	var newColDel = document.createElement("<TD width='240'>");
	newColDel.setAttribute("bgColor", "white");
	var removeButtonTitle = aRemoveButtonTitle ? aRemoveButtonTitle : "Remove";
	newColDel.setAttribute("innerHTML", "<input type='hidden' name='" + aId + "_row" + counter.value + "' value='ok'><input type='button' class='box2' value='" + removeButtonTitle + " ' onClick='javascript: removeRow(\"" + aId + "\", \"" + aRemoveConfirmationText + "\");'>");
	newColDel.setAttribute("colSpan", aColCount.length);
	newRowDel.appendChild(newColDel);
	newBlock.appendChild(newRowDel);
	obj.appendChild(newBlock);
	//alert(obj.innerHTML);
	counter.value = parseInt(counter.value) + 1;
}

function removeRow(aObj, aId, aConfirmText) {
	if (confirm(aConfirmText)) {
		//var row = document.getElementById(aRowId);
		var obj = document.getElementById(aId);
    var row = aObj.parentNode.parentNode;
		var prevRow = obj.rows[row.rowIndex - 1];
		obj.removeChild(prevRow);
		obj.removeChild(row);
	}
}

function switchContent(aMainCombo, aSubComboId) {
	var mainId = aMainCombo.options[aMainCombo.selectedIndex].value;
	if (mainId != "") {
		var subCombo = document.getElementById(aSubComboId);
		if (subCombo) {
			for (var i = subCombo.length; i >= 0; i--) {
				subCombo.remove(i);
//				subCombo[i] = null;
}
			var arr = subResCodes[parseInt(mainId)];
			for (var i = 0; i < arr.length; i++) {
				var oOption = document.createElement("OPTION");
				oOption.value = arr[i][0];
				oOption.innerText = arr[i][1];
//				oOption.appendChild(document.createTextNode(arr[i][1]) );
				subCombo.appendChild(oOption);
			}
		}
	}
}

function isDelete() {
	return confirm("Are you sure?");
}

function highlightRow(aRow) {
	if (!aRow)
		return;
	if (aRow.style.backgroundColor == 'yellow')
		return;
	if (aRow.style.backgroundColor == 'orange')
		aRow.style.backgroundColor = '#ffffff';
	else
		aRow.style.backgroundColor='orange';
}

function selectRow(aRow, aSelectedRowIndex) {
	if (!aRow)
		return;
	if (aRow.rowIndex == aSelectedRowIndex) {
		aRow.style.backgroundColor = 'orange';
		return -1;
	} else {
		if (aSelectedRowIndex && aSelectedRowIndex != -1)
			getParentNode(aRow, "TABLE").rows[aSelectedRowIndex].style.backgroundColor = '#ffffff';
		aRow.style.backgroundColor='yellow';
		return aRow.rowIndex;
	}
}

function calculateBudget(aSumId, aSumRowIds) {
	if (!aSumId || !aSumRowIds || aSumRowIds.length == 0)
		return;
 
	var sumObj = document.getElementById(aSumId);
	if (!sumObj)
		return;
	var sum = 0;
	for (var i = 0; i < aSumRowIds.length; i++) {
		var obj = document.getElementById(aSumRowIds[i]);
		if (obj) {
			if (isNaN(obj.value)) {
				sumObj.value = '###';
				return;
			}
			sum += Number(obj.value);
		}
	}
	if (sum == 0)
		sumObj.value = '';
	else sumObj.value = Number(sum).toLocaleString();
}

function switchContent(aMainCombo, aSubComboId, aArray) {	
	var mainId = aMainCombo.options[aMainCombo.selectedIndex].value;
	if (mainId != "") {
		var subCombo = document.getElementById(aSubComboId);
		if (subCombo) {
			if (subCombo.options && subCombo.options.length)
				for (var i = subCombo.options.length; i >= 0; i--)
//					subCombo.options.remove(i);
					subCombo.options[i] = null;
					
			var arr = aArray[mainId];
			if (arr) {
				for (var i = 0; i < arr.length; i++) {
					var oOption = document.createElement("OPTION");
					subCombo.options.add(oOption);
					oOption.value = arr[i][0];
					oOption.innerHTML = arr[i][1];
				}
			}
		}
	}
}

function switchContentMainCode(aMainCode, aSubComboId, aArray) {
	if (aMainCode) {
		var subCombo = document.getElementById(aSubComboId);
		if (subCombo) {
			if (subCombo.options && subCombo.options.length)
				for (var i = subCombo.options.length; i >= 0; i--)
					subCombo.options.remove(i);
			var arr = aArray[aMainCode];
			if (arr) {
				for (var i = 0; i < arr.length; i++) {
					var oOption = document.createElement("OPTION");
					subCombo.options.add(oOption);
					oOption.value = arr[i][0];
					oOption.innerHTML = arr[i][1];
				}
			}
		}
	}
}

function getParentNode(aNode, aNodeName) {
	while (aNode.nodeName != aNodeName && aNode.parentNode)
		aNode = aNode.parentNode;
	return aNode;
}

