var d = document;
var safari = (navigator.userAgent.toLowerCase().indexOf('safari') != -1) ? true : false;

var gebtn = function(parEl,child) {
	if (parEl.parentNode) {
		return parEl.parentNode.getElementsByTagName(child);
	} else {
		return parEl.getElementsByTagName(child);
	}
};

var getGroup = function(groupName) {
	return d.getElementsByName(groupName);
}

onload = function() {
	if(!d.getElementById || !d.createTextNode) return;
	var ls = gebtn(d,'label');
	for (var i = 0; i < ls.length; i++) {
		var l = ls[i];
		if (l.className.indexOf('label_') == -1) continue;
		var inp = gebtn(l,'input')[0];
		if (l.className == 'label_check') {
			l.className = (safari && inp.checked == true || inp.checked) ? 'label_check c_on' : 'label_check c_off';
			l.className = (inp.disabled) ? 'label_check c_dis' : l.className;
			l.onclick = check_it;
		};
		if (l.className == 'label_radio') {
			l.className = (safari && inp.checked == true || inp.checked) ? 'label_radio r_on' : 'label_radio r_off';
			l.className = (inp.disabled) ? 'label_radio r_dis' : l.className;
			l.onclick = turn_radio;
		};
	};
};

var sI = 0;

var check_it = function() {
	var inp = gebtn(this,'input')[0];

	if (this.className == 'label_check c_dis') {
		inp.checked = false;
	} else {
		if ((!safari && (this.className == 'label_check c_off' || inp.checked)) || (safari && ((this.className == 'label_check c_off' && sI == 0) || (this.className == 'label_check c_on' && sI == 1)))) {
			this.className = 'label_check c_on';
			if (safari) inp.checked = true;
		} else {
			this.className = 'label_check c_off';
			if (safari) inp.checked = false;
		};
	};

	sI++;
	if (sI == 2) sI = 0;
};

var turn_radio = function() {
	var inp = gebtn(this,'input')[0];

	if (this.className == 'label_radio r_dis') {
		inp.checked = false;
	} else {
		if (this.className == 'label_radio r_off' || inp.checked) {
			var ls = getGroup(inp.name);
			for (var i = 0; i < ls.length; i++) {
				var l = ls[i].parentNode;
				if (l.className.indexOf('label_radio') == -1)  continue;
				l.className = 'label_radio r_off';

				if (ls[i].onclick) { ls[i].onclick(); };
			};
			this.className = 'label_radio r_on';
			if (safari) inp.checked = true;
		} else {
			this.className = 'label_radio r_off';
			if (safari) inp.checked = false;
		};
	};
};

function showQuestion(sDiv) {
	document.getElementById(sDiv).style.display = "";
}

function toggleInput(siD, diD, iMode, sToggleGroup) {
	var sO = document.getElementById(siD);

	if (iMode == 0) {
		var dO = document.getElementById(diD);

		if (sO.checked) {
			dO.parentNode.className = 'label_check c_dis';
			dO.parentNode.onclick();
		} else {
			if (dO.parentNode.className == 'label_check c_dis') {
				dO.parentNode.className = 'label_check c_off';
			}
		}
	} else if (iMode == 1) {
		diD = diD.split(",");

		for (var j = 0; j < diD.length; j++) {
			var ls = getGroup(diD[j]);

			if (sO.checked) {
				for (var i = 0; i < ls.length; i++) {
					if (ls[i].type == "radio") {
						ls[i].parentNode.className = 'label_radio r_dis';
						ls[i].parentNode.onclick();

					} else if (ls[i].type == "checkbox") {
						ls[i].parentNode.className = 'label_check c_dis';
						ls[i].parentNode.onclick();

					} else {
						ls[i].disabled = !ls[i].disabled;
					}
				}
			} else {
				for (var i = 0; i < ls.length; i++) {
					if (ls[i].type == "radio") {
						if (ls[i].parentNode.className == 'label_radio r_dis') { ls[i].parentNode.className = 'label_radio r_off'; }
					} else if (ls[i].type == "checkbox") {
						if (ls[i].parentNode.className == 'label_check c_dis') { ls[i].parentNode.className = 'label_check c_off'; }
					}
				}
			}
		}
	} else if (iMode == 2) {
		groupToggles[sToggleGroup][siD] = sO.checked ? 1 : 0;

		var tOggle = tallyToggles(sToggleGroup);
		diD = diD.split(",");

		for (var j = 0; j < diD.length; j++) {
			var ls = getGroup(diD[j]);

			for (var i = 0; i < ls.length; i++) {
				if (ls[i].type == "radio") {
					ls[i].parentNode.className = tOggle ? (ls[i].parentNode.className == 'label_radio r_dis' ? 'label_radio r_off' : ls[i].parentNode.className) : 'label_radio r_dis';
					//ls[i].parentNode.onclick();
				} else if (ls[i].type == "checkbox") {
					ls[i].parentNode.className = tOggle ? (ls[i].parentNode.className == 'label_check c_dis' ? 'label_check c_off' : ls[i].parentNode.className) : 'label_check c_dis';
					//ls[i].parentNode.onclick();
				} else {
					ls[i].disabled = !tOggle;
				}
			}
		}
	} else {

	}
}

function tallyToggles(sG) {
	var x = 0;

	for (i in groupToggles[sG]) {
		x += groupToggles[sG][i];
	}

	return (x > 0) ? 1 : 0;
}

function taLimit(maxLen) {
	var taObj=event.srcElement;
	if (taObj.value.length==maxLen) return false;
}

function taCount(maxLen) { 
	var taObj=event.srcElement;
	if (taObj.value.length>maxLen) taObj.value=taObj.value.substring(0,maxLen);
}

function autonumberForm() {
	var fes = document.getElementsByTagName('input');
	var fe;
	var Q = 0;
	var H;
	var A;
	var mA = 0;
	var lfe;

	for (var i=0; i<fes.length; i++) {
		lfe = fe;
		fe = fes[i];
		if (fe.name.indexOf("G") > -1) {
			if (fe.name.indexOf("H") > -1) {
				H++;
				fe.value = H;
			} else if (fe.name.indexOf("-") > -1) {
				if (!mA) {
					mA = 1;
					lfe.value = 1;
					A++;
				}
			} else if (fe.name.indexOf("A") > -1) {
				if (!H || mA) {
					A++;
					fe.value = A;
				}
			} else if (fe.name.indexOf("Q") > -1) {
				Q++;
				H = 0;
				A = 0;
				mA = 0;
				fe.value = Q;
			}
		}
	}
}