

    function Pieces_highlightChilds (element, cssClass, stopElement, overflow) {
        stopElement = (stopElement) ? stopElement.toLowerCase() : '';
        overflow = (overflow == true);
        
        if (element && element.tagName && element.childNodes) {
            var childs = element.childNodes;
            for (var i = 0; i < childs.length; i++) {
                var child = childs[i];
                if (child.tagName) {
                    if (child.tagName.toLowerCase() == stopElement) {
                        break;
                    }
                    child.className = cssClass;
                }
            }
            if (!overflow) {
                window.event.cancelBubble = true;
            }
        }
    }
    
    function Pieces_highlight (element, cssClass, overflow) {
        overflow = (overflow == true);
        
        if (element && element.tagName) {
            element.className = cssClass;
            if (!overflow) {
                window.event.cancelBubble = true;
            }
        }
    }
    
	function Pieces_absolutePosition (element) {
	    if (element && element.tagName) {
	        var left = 0;
	        var top = 0;
	        while (element.parentElement) {
	            if (element.tagName.toLowerCase() != 'tr') {
	                left += element.offsetLeft;
	                top += element.offsetTop;
	            }
	            element = element.parentElement;
	        }
	        var ret = new Array();
	            ret['left'] = left;
	            ret['top'] = top;
	        return ret;
	    }
	    return null;
	}