

function captureEvent() {

	var args = captureEvent.arguments;

	var len = args.length;

	var component = getElement(args[0]);



	if (component) {

		if (component.type == "text" || component.type == "textarea") {

			add_event_listener_al(component, 'change', eval(args[1]));

			add_event_listener_al(component, 'keyup', eval(args[1]));

		} else if (component.type == "checkbox" || component.type == "radio") {

			var components = document.getElementsByName(args[0]);



			if (components.length >= 1) {

				for ( var u = 0; u < components.length; u++) {

					add_event_listener_al(components[u], 'click', eval(args[1]));

				}

			}

		} else if (component.type == "select-multiple") {

			// add_event_listener_al(component, 'click', eval(args[1]));

			add_event_listener_al(component, 'change', eval(args[1]));

		} else {

			add_event_listener_al(component, 'change', eval(args[1]));

		}

	}

}



function getElement(element_id) {

	var element = null;



	if (document.getElementById && document.getElementById(element_id)) {

		element = document.getElementById(element_id);

	} else {

		var elements = document.getElementsByName(element_id);

		if (elements != null && elements.length > 0) {

			element = elements[0];

		}

	}

	return element;

}



function getValue(qasetId) {



	var element_id = 'q' + qasetId;

	var qsid = getElement(element_id);



	if (qsid != null) {

		var scqaid = qsid.value;



		var answer = getElement(scqaid);



		if (answer) {

			if (answer.type == "checkbox") {

				var an = document.getElementsByName(scqaid);



				if (an.length >= 1) {

					var names = new Array();

					var j = 0;

					for ( var i = 0; i < an.length; i++) {

						if (an[i].checked) {

							names[j] = an[i].value;

							j++;

						}

					}

					return names;

				}

				return 'null';

			} else if (answer.type == "radio") {

				var an = document.getElementsByName(scqaid);

				if (an.length >= 1) {

					for ( var i = 0; i < an.length; i++) {

						if (an[i].checked) {

							return an[i].value;



						}

					}

				}

				return 'null'

			} else if (answer.type == "select-multiple") {



				if (answer.selectedIndex != -1) {

					var names = new Array();

					var j = 0;

					for ( var i = 0; i < answer.options.length; i++) {

						if (answer.options[i].selected) {

							names[j] = answer.options[i].value;

							j++;

						}

					}

					return names;

				}

				return 'null';

			} else if (answer.type == "select-one") {

				return getAnswer(answer.value, '_NA');

			} else {

				return getAnswer(answer.value, '');

			}

		}

	}

}



function getAnswer(answer, regExp) {

	var ans = trim(answer);

	if (ans == regExp)

		return 'null';

	else

		return ans;

}



function show_al() {

	var args = show_al.arguments;

	var len = args.length;



	for ( var i = 0; i < len; i++) {

		var component = document.getElementsByName(args[i]);

		if (component != null) {

			if (component.length >= 1) {

				for ( var u = 0; u < component.length; u++) {

					component[u].style.display = document

							.getElementById('buttonRow').style.display;

					enable(args[i]);

				}

			}

		}

	}

}



function hide_and_disable_al() {

	var args = hide_and_disable_al.arguments;

	var len = args.length;



	for ( var i = 0; i < len; i++) {

		var component = document.getElementsByName(args[i]);

		if (component != null) {

			if (component.length >= 1) {

				for ( var u = 0; u < component.length; u++) {

					component[u].style.display = 'none';

					disable(args[i]);

				}

			}

		}

	}

}



function disable_al() {

	var args = disable_al.arguments;

	var len = args.length;

	for ( var i = 0; i < len; i++) {

		var component = document.getElementsByName(args[i]);

		if (component != null) {

			if (component.length >= 1) {

				for ( var u = 0; u < component.length; u++) {

					disable(args[i]);

				}

			}

		}

	}



}



function updateNode(node, flag) {

	var thisChild = node.firstChild;



	while (thisChild != null) {

		if (thisChild.nodeType == 1 && thisChild.type != null && thisChild.getAttribute('type') != 'hidden') {

			thisChild.disabled = flag;

		}

		updateNode(thisChild, flag);

		thisChild = thisChild.nextSibling;

	}

}



function disable(qasetId) {

	var parents = document.getElementsByName(qasetId);

	if (parents != null) {

		for ( var u = 0; u < parents.length; u++) {

			updateNode(parents[u], true);

		}

	}

}



function enable(qasetId) {

	var parents = document.getElementsByName(qasetId);

	if (parents != null) {

		for ( var u = 0; u < parents.length; u++) {

			updateNode(parents[u], false);

		}

	}

}



// broswer, os, version detecting code

var detect = navigator.userAgent.toLowerCase();

var OS, browser, version, total, thestring;



if (checkIt('konqueror')) {

	browser = "Konqueror";

	OS = "Linux";

} else if (checkIt('safari'))

	browser = "Safari"

else if (checkIt('omniweb'))

	browser = "OmniWeb"

else if (checkIt('opera'))

	browser = "Opera"

else if (checkIt('webtv'))

	browser = "WebTV";

else if (checkIt('icab'))

	browser = "iCab"

else if (checkIt('msie'))

	browser = "Internet Explorer"

else if (!checkIt('compatible')) {

	browser = "Netscape Navigator"

	version = detect.charAt(8);

} else

	browser = "An unknown browser";



if (!version)

	version = detect.charAt(place + thestring.length);



if (!OS) {

	if (checkIt('linux'))

		OS = "Linux";

	else if (checkIt('x11'))

		OS = "Unix";

	else if (checkIt('mac'))

		OS = "Mac"

	else if (checkIt('win'))

		OS = "Windows"

	else

		OS = "an unknown operating system";

}



function checkIt(string) {

	place = detect.indexOf(string) + 1;

	thestring = string;

	return place;

}



var isIE = (browser == "Internet Explorer");



/**

 * Adds an event listner

 */

function add_event_listener_al(element, eventType, listner) {

	if (isIE) {

		element.attachEvent('on' + eventType, listner);

	} else {

		element.addEventListener(eventType, listner, false);

	}

}





function iE(lhs, rhs) {

	// for checkboxes,list it is arrya,for others it is string

	if (lhs instanceof Array) {

		if (lhs.length > 0) {

			for ( var i = 0; i < lhs.length; i++) {

				if (lhs[i].toUpperCase() == rhs.toUpperCase())

					return true;

			}

		}

		return false;

	}

	return (lhs.toUpperCase() == rhs.toUpperCase());

}

function iNE(lhs, rhs) {

	return (!iE(lhs, rhs));

}



function ltrim(s) {

	if (s != null && s.length > 0)

		return s.replace(/^\s*/, "")

	else

		return "";

}



function rtrim(s) {

	if (s != null && s.length > 0)

		return s.replace(/\s*$/, "");

	else

		return "";

}



function trim(s) {

	return rtrim(ltrim(s));

}






