function setVar() {}
window.onload=initPage;
function initPage() {
	var elist = document.forms[0].elements;
	var e;
	for (var i = 0; i < elist.length; i++) {
		e = elist[i];
		if (e.type != 'hidden') {
			try {
				e.focus();
				break;
			}
			catch(err) {}
		}
	}
	self.scroll(0,0);
}
function goBackBtn() {
	var f = document.forms.main;
	f.backBtn.value = 1;
	f.submit();
}
function clickOpt(qname,optval,swstyle) {
	var ques = document.forms.main[qname];
	if (isCheckboxArray(ques) || isRadioArray(ques)) {
		for (var i=0; i<ques.length; i++) {
			if (ques[i].value==optval) {
				ques[i].checked = (isCheckboxArray(ques)) ? !(ques[i].checked) : true;
			}
		}
	} else {
		ques.checked = (isCheckbox(ques)) ? !(ques.checked) : true;
	}
	if (swstyle) clickOptStyle(qname,optval);
	runChangeEvent(ques);
}
function clickOptStyle(qname,optval) {
	var ques = document.forms.main[qname];
	var qid = qname + optval;
	if (isCheckboxArray(ques)) {
		for (var i=0; i<ques.length; i++) {
			if (ques[i].value==optval) {
				document.getElementById(qid).className = (ques[i].checked) ? "opt_text_sel" : "opt_text";
			}
		}
	}
	else if (isRadioArray(ques)) {
		for (var i=0; i<ques.length; i++) {
			if (ques[i].value==optval) {
				document.getElementById(qid).className = "opt_text_sel";
			} else {
				var q = qname + ques[i].value;
				document.getElementById(q).className = "opt_text";
			}
		}
	}
	else {
		document.getElementById(qid).className = (ques.checked) ? "opt_text_sel" : "opt_text";
	}
	return;
}
function addEvent( obj, type, fn )
{
	if (obj.addEventListener)
		obj.addEventListener( type, fn, false );
	else if (obj.attachEvent)
	{
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
	}
	if (obj.onChangeList == undefined) {
		obj.onChangeList = new Array;
	}
	obj.onChangeList.push(fn);
}

function removeEvent( obj, type, fn )
{
	if (obj.removeEventListener)
		obj.removeEventListener( type, fn, false );
	else if (obj.detachEvent)
	{
		obj.detachEvent( "on"+type, obj[type+fn] );
		obj[type+fn] = null;
		obj["e"+type+fn] = null;
	}
	if (obj.onChangeList != undefined) {
		var newList = new Array;
		for (var i=0; i < obj.onChangeList.length; i++) {
			if (obj.onChangeList[i] != fn) {
				newList.push(obj.onChangeList[i]);
			}
		}
		obj.onChangeList = newList;
	}
}
function runEvent(obj, evType) {
	if (document.createEvent) {
		var evt;
		if (evType.match(/click|mousedown|mousemove|mouseout|mouseover|mouseup/)) {
			evt = document.createEvent("MouseEvents");
			evt.initMouseEvent(evType,true,true,window,1,0,0,0,0,false,false,false,false,0,obj);
		} else {
			evt = document.createEvent("Events");
			evt.initEvent(evType, true, true);
		}
		obj.dispatchEvent(evt);
	} else if (obj.fireEvent) {
		obj.fireEvent("on" + evType);
	}
}
function runChangeEvent(form_elem) {
	if (isCheckboxArray(form_elem) || isRadioArray(form_elem)) {
		if (form_elem[0].onChangeList != undefined) {
			for (var i=0; i < form_elem[0].onChangeList.length; i++) {
				form_elem[0].onChangeList[i]();
			}
		}
	} else {
		runEvent(form_elem, 'change');
	}
}
function addSeparators(num, sep)
{
	num += '';
	if (typeof(sep) == 'undefined') {sep = ',';}
	var rgx = /(\d)(\d{3})\b/;
	while (rgx.test(num)) {
		num = num.replace(rgx, '$1' + sep + '$2');
	}
	return num;
}
function isChecked(field, opt) {
	if (typeof(field) == 'object') {
		for (var j = 0; j < field.length; j++) {
			if (field[j] == opt) {
				return 1;
			}
		}
		return 0;
	} else {
		return field==opt ? 1 : 0;
	}
}
function getFieldValue(form_elem) {
	var val;
	if (typeof form_elem == 'undefined') {
		val = 0;
	} else if (isCheckboxArray(form_elem)) {
		var checked_vals = new Array();
		for (var i=0; i < form_elem.length; i++) {
			if (form_elem[i].checked) checked_vals.push(form_elem[i].value);
		}
		return checked_vals;
	} else if (isCheckbox(form_elem)) {
		if (form_elem.checked)
			val = form_elem.value;
	} else if (isRadioArray(form_elem)) {
		for (var i=0; i < form_elem.length; i++) {
			if (form_elem[i].checked) {
				val = form_elem[i].value;
				break;
			}
		}
	} else if (form_elem.type == 'select-one') {
		val = form_elem.options[form_elem.selectedIndex].value;
	} else if (typeof form_elem.value != 'undefined') {
		val = form_elem.value;
	} else {
		val = 0;
	}
	var numval = unformatInt(val);
	return (isNaN(numval)) ? val : numval;
}
function addUpdateEvent(form_elem, fn) {
	if (isCheckboxArray(form_elem) || isRadioArray(form_elem)) {
		 // for radio and checkbox ques, want 'click' event on all members
		for (var i=0; i < form_elem.length; i++) {
			addEvent(form_elem[i], 'click', fn);
		}
	}
	else if (isCheckbox(form_elem)) {
		addEvent(form_elem, 'click', fn);
	}
	// other types just add a regular change event
	else {
		addEvent(form_elem, 'change', fn);
	}
}
function resetFormElement(form_elem) {
	if (form_elem.type == 'select_one') {
		form_elem.selectedIndex = 0;
	} else if (isCheckboxArray(form_elem) || isRadioArray(form_elem)) {
		for (var i=0; i < form_elem.length; i++) {
			form_elem[i].checked = false;
		}
	} else {
		form_elem.value = '';
	}
}
function isCheckboxArray(form_elem) {
	if ((typeof form_elem != 'undefined') && (typeof form_elem.length == 'number') &&
			(form_elem[0].type == 'checkbox')) return true;
}
function isRadioArray(form_elem) {
	if ((typeof form_elem != 'undefined') && (typeof form_elem.length == 'number') &&
			(form_elem[0].type == 'radio')) return true;
}
function isCheckbox(form_elem) {
	if ((typeof form_elem != 'undefined') && (form_elem.type == 'checkbox')) return true;
}
function unformatInt(int_str) {
	if (typeof int_str == 'string') {
		int_str = int_str.replace(/^\$/, '');
		int_str = int_str.replace(/%$/, '');
		int_str = int_str.replace(/,(\d\d\d)/g, "$1");
		int_str = int_str.replace(/\.(\d\d\d)/g, "$1");
	}
	return Number(int_str);
}
function getValue(str) {
	return str.match(/^\d*(\.\d+)?$/) ? Number(str) : str;
}
