/* (c) 2004-2008 BigN bv the Netherlands, by Robert van Geel */
if (typeof(window.checkedgif) == "undefined")
	var checkedgif = 'img/checked.gif';
if (typeof(window.uncheckedgif) == "undefined")
	var uncheckedgif = 'img/unchecked.gif';
if (typeof(window.radiocheckedgif) == "undefined")
	var radiocheckedgif = 'img/radiochecked.gif';
if (typeof(window.radiouncheckedgif) == "undefined")
	var radiouncheckedgif = 'img/radiounchecked.gif';
if (typeof(window.greenmarkgif) == "undefined")
	var greenmarkgif = 'img/greenmark.gif';
if (typeof(window.redmarkgif) == "undefined")
	var redmarkgif = 'img/redmark.gif';

pre(checkedgif,uncheckedgif,radiocheckedgif,radiouncheckedgif,greenmarkgif,redmarkgif);

function pre() {
	var ar = new Array();
	var a = pre.arguments;
	for (var i = 0; i < a.length; i++) {
		ar = new Image();
		ar.src = a[i];
	}
}

var clickers = new Array();
var handlers = new Array();

function enhanceCheckboxes() {
	var o=document.getElementsByTagName("input");
	j=0;
	lastname = ''
	for (var i=0; i < o.length; i++) {
		z = o[i];
		if ((z.type=='checkbox' || z.type=='radio') && z.name.substr(0,1)=='Q') {
			var img;
			var exists = false;
			var justhandler = false;
			ischeck = (z.type=='checkbox');
			if (ischeck && z.style && z.style.cssText && (z.style.cssText.toUpperCase().indexOf('DISPLAY: NONE') >= 0) && document.getElementById('T' + z.name)) {
				img = document.getElementById('T' + z.name + z.value);
				exists = true;
				z.style.display='block';
			} else {
				if (z.style && z.style.cssText && (z.style.cssText.toUpperCase().indexOf('DISPLAY: NONE') >= 0))
					justhandler = true
				else
					img = document.createElement("img");
			}
			clickers[j] = z;
			handlers[j] = (z.onclick) ? z.onclick : function () {};
 			sethandler = 'z.onclick = function () {\n' +
				'dodebug(\'onclick\');\n' +
 				'handlers[' + j + ']();\n' +
 				'syncControl(clickers[' + j + '], true);\n' +
 			'}';
			eval(sethandler);
			if (justhandler) {
				j++;
				continue;
			}
			img.name = 'T' + z.name;
			img.id = img.name;
			img.style.cursor = 'hand';
			img.onmouseover = checkOver;
			img.onmouseout = checkOut;
			img.src = ischeck?uncheckedgif:radiouncheckedgif;
			img.className = 'radioinput';
			if (!exists)
				z.parentNode.insertBefore(img, z);
			p = img.parentNode;
			p.onmouseover = checkOver;
			p.onmouseout = checkOut;
			sharedcell = false;

			for (cnt = 1; cnt < p.childNodes.length; cnt++) {
				if  (p.childNodes[cnt-1].onclick != null) {
					sharedcell = true;
					break;
				}
			}

			if (!sharedcell) {
				sethandler = 'p';
				p.style.cursor = 'hand';
			} else {
				sethandler = 'img';
			}
 			sethandler += '.onclick = function () {\n' +
 						'clickers[' + j + '].click();\n' +
 					'}';
			eval(sethandler);
			z.style.display='none';
			syncControl(z, (lastname != z.name), true);
			lastname = z.name;
			j++;
		}
	}

	var a=document.getElementsByTagName("a");
	for(var i=0; i < a.length; i++) {
		if (a[i].href.indexOf('toggle') > 0) {
				a[i].onmouseover = checkOver;
				a[i].onmouseout = checkOut;
		};
	}
}

function celldone(obj, c) {
	if (obj.parentNode.parentNode && obj.parentNode.parentNode.cells) {
		cls = obj.parentNode.className.replace('done', '');
		if (c)
			cls += 'done';
		obj.parentNode.className = cls;
	}
}

function controlGroupName(name) {
	if (name.indexOf('T') == 0) {
		name = name.substring(1);
	}
	var pos = name.indexOf('A');
	if (pos >= 0)
		name = name.substring(0, pos);
	return name;
}

function isvertical(o, r) {
 	ret = true;
 	idx = o.parentNode.cellIndex;
 	row = o.parentNode.parentNode;
 	name = controlGroupName(o.name);
	// check cell to the left:
 	if (row.cells[idx + 1] && row.cells[idx + 1].childNodes && row.cells[idx + 1].childNodes[0] && row.cells[idx + 1].childNodes[0].name) {
		checkName =  controlGroupName(row.cells[idx + 1].childNodes[0].name);
		if (checkName == name)
			ret = false;
	}
	// check cell to the right
 	if ((idx > 0) && row.cells[idx - 1] && row.cells[idx - 1].childNodes && row.cells[idx - 1].childNodes[0] && row.cells[idx - 1].childNodes[0].name) {
		checkName = controlGroupName(row.cells[idx - 1].childNodes[0].name);
		if (checkName == name)
			ret = false;
	}
	return ret;
}

function rowDone(o, ok) {
	if (greenmarkgif == '') {
		return;
	}
 	r = o.parentNode.parentNode.parentNode.rows;
	if (!r)
		return;
	idx = o.parentNode.cellIndex;
	if (isvertical(o, r))
		return;
	o2 = o.parentNode.parentNode.cells;
	cls = o2[0].className;
	if (cls.indexOf('Odd')==-1 && cls.indexOf('Even')==-1)
		return;
	if (o2[0].childNodes[1] && o2[0].childNodes[1].src) {
		img = o2[0].childNodes[1];
	} else {
		var img = document.createElement("img");
		o2[0].insertBefore(img, null);
	}
	img.src = ok?greenmarkgif:redmarkgif;
}

function syncControl(obj, checkRow, init) {
	dodebug('syncControl', obj.Name);
	o = obj;
	ok = false;
	if (o.type == 'radio') {
		var oset = eval('d.' + o.name);
		for(var i=0; i < oset.length; i++) {
			c = oset[i].checked;
			if (init && oset[i] != o) {
				continue;
			}
			dodebug(i + ':checked=' + c);
			ok = (ok || c);
			if (oset[i].previousSibling != null && oset[i].previousSibling.name && oset[i].previousSibling.name.indexOf(obj.name) >= 0) {
				src = eval("radio" + (c?"":"un") + "checkedgif")
				oset[i].previousSibling.src = src;
			}
			celldone(oset[i], c);
		}
	} else {
		c = o.checked;
		src = eval((c?"":"un") + "checkedgif");
		if (o.previousSibling && o.previousSibling.src && o.previousSibling.src.indexOf(src) <= 0)
			o.previousSibling.src = src;
		celldone(o, c);

		r = obj.parentNode.parentNode;
		if (!r.parentNode.rows || !r.cells)
			return;
		if (isvertical(obj, r.parentNode.rows))
			return;
		for(var i=0; i < r.cells.length; i++) {
			if (r.cells[i].childNodes[1]) {
				ok = (ok || r.cells[i].childNodes[1].checked);
			}
		}
	}
	if (checkRow || (init && ok))
		rowDone(obj, ok);
}

function hilite(o, off) {
	return;
	if (window.noHilite)
		return;
	if (o.href && o.href.indexOf('toggle') > 0) {
		subs = o.href.substr(o.href.indexOf("'Q"));
		pos = subs.indexOf('[');
		if (pos >= 0) {
			o = eval('document.datainput.T' + subs.substr(1, pos-1));
			if (!o || o == null)
				return;
		}
		pos = subs.indexOf(')');
		o = eval('document.datainput.T' + subs.substr(1, pos - 2));
	} else {
		if (!o.src) o = o.childNodes[0];
		if (!o.src) return;
	}
	c = o.src.replace('hover', '');
	if (!off)
		c = c.replace('.gif', 'hover.gif');
	o.src = c;
	p = o.parentNode;
	suf = off?'':'active';
	if (p.parentNode.cells) {
		o2 = p.parentNode.cells;
		r = p.parentNode.parentNode.rows;
		if (!o2[1] || !o2[1].className)
			return;
		c = o2[1].className;
		if (c.indexOf('Odd')==-1 && c.indexOf('Even')==-1)
			return;

		if (isvertical(o, r))
			return;

		c = o2[1].className.replace(/active/g, '').replace(/ /g, suf + ' ') + suf;
		if (o2[1].className != c)
			o2[1].className = c;

		head = (r[0].cells.length == (o2.length -1))?0:1;
		if (head)
			head += (r[head].cells.length == (o2.length -1))?0:1;
		c = r[head].cells[p.cellIndex-1].className.replace('active', '') + suf;
		if (r[head].cells[p.cellIndex-1].className != c)
			r[head].cells[p.cellIndex-1].className = c;
		c = p.className;
		suf2 = (c.indexOf('done') > 0)?'done':'';
		c = c.replace(/active/g, '').replace(/done/g, '').replace(/ /g, suf + suf2 + ' ') + suf + suf2;
		p.className = c;
	}
}

function checkOver(o) {
	if (!(o && o.src))
		o = this;
	if (!(o && o.src))
		return;
	hilite(o, false);
}

function checkOut(o) {
	if (!(o && o.src))
		o = this;
	if (!(o && o.src))
		return;
	hilite(o, true);
}

nav = navigator.userAgent.toLowerCase();
if ((nav.indexOf('opera') == -1 ) && (nav.indexOf('safari') == -1) && (nav.indexOf('mac') == -1 ))
	enhanceCheckboxes();
