﻿// FormBuilder

function checkDivs(e) {
	var e = document.getElementsByTagName('div');
	for (var i = 0; i < e.length; i++) {
		if (e[i].attributes["ready"]) {
			if (e[i].type == "RadioButtonList") {
				var inputel = e[i].childNodes[1].childNodes[0].childNodes[0].getElementsByTagName('INPUT')
				for (var radiobuttons = 0; radiobuttons < inputel.length; radiobuttons++) {
					if (inputel[radiobuttons].checked) {
						if ($("control" + inputel[radiobuttons].value)) {
							$("control" + inputel[radiobuttons].value).className = ""
						}
					}
				}
			} else if (e[i].childNodes[1].length > 0) {
				if (!e[i].childNodes[1][0].selected) {
					e[i].className = ""
				}
			} else if (e[i].childNodes[1].value != "") {
				e[i].className = ""
			}
		}
	}
}

function validateControl(source, arguments) {
	var retval = true;
	var e = source.parentNode;
	if (e.className == "") {
		if (e.childNodes[1].length > 0) {
			retval = !e.childNodes[1][0].selected;
		}
		else {
			retval = e.childNodes[1].value != "";
		}
	}
	arguments.IsValid = retval;
}

function hideUnhide(e) {
	if (e.type == "radio") {
		if (e.checked) {
			var divChilds = e.parentNode.parentNode.parentNode.parentNode.parentNode.getElementsByTagName("div");
			for (var j = 0; j < divChilds.length; j++) {
				if (divChilds[j].id != "") {
					divChilds[j].className = 'hidden';
					resetControl(divChilds[j]);
				}
			}
			if ($("control" + e.value)) { $("control" + e.value).className = ''; }
		} else {
			for (var j = 0; j < divChilds.length; j++) {
				if (divChilds[j].id != "") {
					divChilds[j].className = 'hidden';
					resetControl(divChilds[j]);
				}
			}
		}
	}
	if (e.type == "select-one") {
		for (var i = 0; i < e.length; i++) {
			if (e[i].selected) {
				if ($("control" + e[i].value)) {
					$("control" + e[i].value).className = '';
				}
			} else {
				if ($("control" + e[i].value)) {
					$("control" + e[i].value).className = 'hidden';
					resetControl($("control" + e[i].value));
					var divChilds = $("control" + e[i].value).getElementsByTagName("div");
					for (var j = 0; j < divChilds.length; j++) {
						if (divChilds[j].id != "") {
							divChilds[j].className = 'hidden';
							resetControl(divChilds[j]);
						}
					}
				}
			}
		}
	}
}

function resetControl(e) {
	if (e.childNodes[1]) {
// select
		if (e.childNodes[1].length > 0) {
			e.childNodes[1][0].selected = true;
// radiolist
		} else if (e.childNodes[1].tagName == "TABLE") {
			var radioelements = e.getElementsByTagName("input");
			for (var i = 0; i < radioelements.length; i++) {
				if (radioelements[i].type == "radio") {
					radioelements[i].checked = false;
				}
			}
// text / textarea
		} else if (e.childNodes[1].type == "text" || e.childNodes[1].type == "textarea") {
			e.childNodes[1].value = "";
		}
	}	
}

