function addHandler(object, event, handler){
	if (typeof object.addEventListener != 'undefined')
		object.addEventListener(event, handler, false);
	else if (typeof object.attachEvent != 'undefined')
		object.attachEvent('on' + event, handler);
	else
		throw "Incompatible browser";
}

function removeHandler(object, event, handler){
if (typeof object.removeEventListener != 'undefined')
	object.removeEventListener(event, handler, false);
else if (typeof object.detachEvent != 'undefined')
	object.detachEvent('on' + event, handler);
else
	throw "Incompatible browser";
}

/**
* Mark/unmark checklist
* id = ID of parent container, name = name prefix, state = state [true/false]
*/
function marklist(id, name, state)
{
	var parent = document.getElementById(id);
	if (!parent)
	{
		eval('parent = document.' + id);
	}

	if (!parent)
	{
		return;
	}

	var rb = parent.getElementsByTagName('input');
	
	for (var r = 0; r < rb.length; r++)
	{
		if (rb[r].name.substr(0, name.length) == name)
		{
			rb[r].checked = state;
		}
	}
}

