
function addEvent(obj, evType, fn){
	if (obj) {
		if (obj.addEventListener) {
			obj.addEventListener(evType, fn, false);
			return true;
		 }
		else if (obj.attachEvent) {
			var r = obj.attachEvent("on"+evType, fn);
			return r;
		}
	}
	return false;
}

function checkAll(prefix, name, check){
	var elements = document.forms[prefix].elements[prefix + '[' + name + '][]'];
	if (elements) {
		if (is_array(elements)) {
			var count = elements.length;
			for (var i = 0; i < count; i++) {
				var obj = elements[i];
				if(obj){
					obj.checked = check;
				}
			}
		}
		else {
			elements.checked = check;
		}
	}
	return true;
}

function updateChecker(prefix, name){
	var all_checked = true;
	var elements = document.forms[prefix].elements[prefix + '[' + name + '][]'];
	if (is_array(elements)) {
		var count = elements.length;
		for (var i = 0; i < count; i++) {
			var obj = elements[i];
			if(obj){
				if(!obj.checked){
					all_checked = false;
					break;
				}
			}
		}
	}
	else if (elements) {
		if(!elements.checked){
			all_checked = false;
		}
	}

	var checker = document.getElementById('check_all_' + name);
	if(checker){
		checker.checked = all_checked;
	}
	return true;
}

function is_array(input){
	return typeof(input)=='object' && input.length != undefined;
}


