var d = document.datainput;
var submitting = 0;

function FireEvent(eventName, eventPar) {
	switch (eventName) {
		case 'toggle' : Toggle(eventPar); break;
		case 'keypress': KeyPress(eventPar); break;
		case 'change' : Changed(eventPar); break;
		case 'click' : Changed(eventPar); break;
	}
	FireUserEvent(eventName, eventPar); // Provide a hook for user-script
}

function OptionChanged(eventPar) {
	if (eval("d." + eventPar))
		if (eval("d."+ eventPar + ".checked")) {
			var n = parseInt(eval("d."+ eventPar).value);
			SwapOptionText("E"+eval("d."+ eventPar).name+n);
		}
}

function SwapCheckboxText(eventPar) {
	if (eval("d." + eventPar).value != '') {
		var o = eval("d." + eventPar.substr(1));
		if (!o.checked)
		FireEvent('toggle', o.name);
	}
}

function CheckboxChanged(eventPar) {
	if (!eval('d.' + eventPar).checked) { 
		var o = eval('d.E' + eventPar);
		if (o) {
			o.value = '';
		}
		return;
	}
	var pos = eventPar.indexOf('A');
	var base = eventPar.substr(1, pos - 1);
	try {
		c = new String(eval('Q' + base + 'Exclusives'));
	}   
	catch(e) { return; }
	if (c) {
		a = c.split(";");
		for (t=1;t<a.length;t++) {
			o = eval('d.' + a[t]);
			if (o.checked && (o.name != eventPar))
				FireEvent('toggle', o.name);
		}
	}
}

function Toggle(eventPar) {
	var o = eval("d." + eventPar);
	if (o) {
		o.click() 
	} else { // single response has only one option!
		eval('d.' + eventPar.substr(0, eventPar.length - 3)).checked = true;
	}
}

function getRadioValue(obj) {
	if (!obj[0]) return(obj.checked);
	for (var i=0; i < obj.length; i++)
	if (obj[i].checked) 
		return obj[i].value;
	return 0;
}

function SwapOptionText(eventPar) {
	o = eval("d.H" + eventPar);
	if (o)
		o.value = eval("d." + eventPar).value;
	var pos = eventPar.indexOf('A');
	var base = eventPar.substring(1, pos);
	var val = parseInt(eventPar.substr(pos + 1));
	var len = eval("d." + base + "A").length;
	if (o && o.value != '') {
		for (cnt=0; cnt<=len; cnt++) {
			o = eval("d." + base + "A[" + cnt + "]");
			if (!o)	break;
			if (o.value == val) {
				o.click();
				break;
			}
		}
	}
	for (cnt=0; cnt<eval("d." + base + "A.length"); cnt++) {
		var o = eval("d." + base + "A[" + cnt + "]");
		var cur = o.value;
		if (cur != val) {
			var o2 = eval("d.E" + base + "A"  + cur);
			if (o2)
				o2.value = "";
		}
	}
}

function Swap(eventPar) {
	var o = eval("d.H" + eventPar);
	o.value = eval("d." + eventPar).value;
	var p = eval('d.' + eventPar + 'Empty');
	if (p && o.value != '' && p.checked)
		p.click();
}

function HitExclusive(eventPar) {
	if (!eval('d.' + eventPar).checked)
		return;
	var pos = eventPar.indexOf('A');
	var base = eventPar.substr(0, pos);
	var max = parseInt(eval(base + 'Max'));
	for (var cnt=1; cnt<=max; cnt++) {
		var o = eval('d.' + base + 'A' + cnt);
		if (o && o.name != eventPar && o.checked)
				FireEvent('toggle', o.name);
	}
}

function ClearTxt (eventPar) {
	o = eval('d.H' + eventPar.replace('Empty', ''));
	c = eval('d.' + eventPar);
	o.value = eval('d.' + eventPar + '.checked')?c.value:'';
	if (c.checked)
		eval('d.' + eventPar.replace('Empty', '')).value = '';
}

function keyDown(eventPar) { 
	FireEvent('keypress', eventPar);
} 

function preloadImages() {
	var d=document; if(d.images){ if(!d.p) d.p=new Array();
	var i,j=d.p.length,a=preloadImages.arguments; for(i=0; i<a.length; i++)
	if (a[i].indexOf("#")!=0){ d.p[j]=new Image; d.p[j++].src=a[i];}}
}

function validateCheckboxes(name, nr) {
	for (var i=1; i <= nr; i++) {
		if (eval('d.' + name + i) && eval('d.' + name + i).checked)
			return true;
	}
	return false;
}

function countCheckboxes(name, nr, mincnt, maxcnt) {
	var cnt = 0;
	for (var i=1; i <= nr; i++)
		if (eval('d.' + name + i) && eval('d.' + name + i).checked) {
			if(eval('d.' + name + i).value == 99999997) return true;
			cnt++;
		}
	if (mincnt > 0 && cnt < mincnt) { return false; }
	if (maxcnt > 0 && cnt > maxcnt) { return false; }
	return true;
}

var propagating = false;

function PropagateDontKnow(eventPar) {
	if (!eval('d.' + eventPar).checked)
		return;
	if (propagating) {
		return;
	}
	propagating = true;
	var pos = eventPar.indexOf('S');
	var base = eventPar.substr(1, pos - 1);
	c = new String(eval('Q' + base + 'Propagate'));
	a = c.split(";");
	var llGo = false;
	for (t=1;t<a.length;t++) {
		if (llGo) {
			o = eval('d.' + a[t]);
			if (!o.checked) o.click(); //FireEvent('toggle', o.name);
		}
		if (eventPar == a[t]) {
			llGo = true;
		}
	}
	propagating = false;
}

if (document.layers) { 
//	document.captureEvents(Event.KEYDOWN); 
}

//document.onkeydown = keyDown;
