
function cloneObject(obj) {
    for (i in obj) {
        this[i] = obj[i];
    }
}

function triggerEvent(e, by) {
	var src = e.srcElement ? e.srcElement : e.target;
	if (by) e.retrigger = by;
	
	while (src) {
		if (typeof(src["on"+e.type]) == 'function') {
			var fn = src["on"+e.type]
			fn(e);
			if (e.cancelBubble) return false;
		}
		
		if (src == document) break;
		src = src.parentNode;
	}
}

/*
	Select a range of text in a textfield
*/
function selectRange (txtfld, iStart, iLength) {
    if (txtfld.createTextRange) {
		var oRange = txtfld.createTextRange(); 
		oRange.moveStart("character", iStart); 
		oRange.moveEnd("character", iLength - txtfld.value.length); 
		oRange.select();
    } else if (txtfld.setSelectionRange) {
		txtfld.setSelectionRange(iStart, iLength);
    }
    txtfld.focus();
}

function addEvent(obj, evType, fn) {
	if (obj.addEventListener) {
		obj.addEventListener(evType, fn, false);
		return true;
	} else if (obj.attachEvent) {
		var r = obj.attachEvent("on"+evType, fn);
		return r;
	} else {
		var old_fn = obj["on" + evType];
		obj["on" + evType] = function (e) {
			var res = old_fn();
			if (!res && typeof(res) != "undefined") return false;
			
			var res = fn();
			if (!res && typeof(res) != "undefined") return false;
		};
	}
}

function addLoadEvent(func, beginning) {
	var oldonload = window.onload;
	window.onload = typeof(window.onload) == 'function' ? beginning ? 
		function() {func(); oldonload();} : 
		function() {oldonload(); func();} : 
		func;
}


function hidebutton_click(element, status, self, desc_on, desc_off) {	
	if (status == -1 || typeof(status) == "undefined") {
		element.style.display = (element.style.display == "none" ? "block" : "none");
	} else {
		element.style.display = (status==0 ? "none" : "block");
	}
	
	if (typeof(self) != "undefined") {
		self.className = (element.style.display == "none" ? "off" : "on");
		
		desc = (element.style.display == "none" ? desc_off : desc_on);
		if (typeof(desc) != "undefined") self.title = desc;
	}
}

function hideTbody(el, hide)
{
	while (el.tagName != 'THEAD') el = el.parentNode;
	el.className = hide ? 'collapsed' : '';
	
	el_form = el.parentNode;
	
	while (el = el.nextSibling) {
		if (el.nodeType != 1) continue;
		el.style.display = hide ? 'none' : '';
	}
	
	el = el_form;
	while (el = el.nextSibling) {
		if (el.nodeType != 1) continue;
		if (el.tagName=='table' || el.tagName=='form') break;
		
		if (el.className == 'actions') {
			el.style.display = hide ? 'none' : '';
			break;
		}
	}
}

function checkAll(th,obj){
		var frm = document.getElementById('OverviewPage');
		var number = frm.elements.length;
	
		for (i=0; i<number; i++){
			var this_obj = frm.elements[i];
			if (this_obj.type == 'checkbox'){
				this_obj.checked = obj.checked;
			}
		}
	}