if(!window.Element) { Element = new Object(); }

Element.getChildElements = function(elt,tagName) {
	rtn = new Array();
	name = tagName.toLowerCase();
	for(i=0;i<elt.childNodes.length;i++) {
		child = elt.childNodes[i];
		if(child.nodeType == 1 && (name == "*" || child.nodeName.toLowerCase() == name)) {
			rtn.push(child);
		}
	}
	return rtn;
}

Element.getLeft = function(elt) {
	rtn = 0;
	while(elt != null) {
		rtn += elt.offsetLeft;
		elt = elt.offsetParent;
	}
	return rtn;
}

Element.getTop = function(elt) {
	rtn = 0;
	while(elt != null) {
		rtn += elt.offsetTop;
		elt = elt.offsetParent;
	}
	return rtn;
}

Element.setStyle = function(elt, style) {
	for(directive in style) {
		elt.style[directive] = style[directive]; 
	}
}

Element.cleanWhiteSpace = function(elt) {
	for(var i = 0; i < elt.childNodes.length; i++) {
		var node = elt.childNodes[i];
		if(node.nodeType == 3 && !/\S/.test(node.nodeValue)) {
			elt.removeChild(node);
		}
	}
}

Log = {
	error: function(msg) {
		alert("Error :\n\t-->\t" + msg);
	}
}
