       
var Element = {
    getLeft : function (element)
    {
        var leftPosition = 0;
    
        if (element.offsetParent)
        {
            do
            {
                leftPosition += element.offsetLeft;
    
            } while (element = element.offsetParent);
        }
        
        return leftPosition;
    },
    
    getTop : function (element)
    {
        var topPosition = 0;
    
        if (element.offsetParent)
        {
            do
            {
    
                topPosition += element.offsetTop;
    
            } while (element = element.offsetParent);
    
        }
    
        return topPosition;
    },
    
    getScroll : function (method, element)
    {
        // The passed in `method` value should be 'Top' or 'Left'
        method = 'scroll' + method;
        return (element == window || element == document) ? 
            (element[(method == 'scrollTop') ? 'pageYOffset' : 'pageXOffset'] || (document.documentElement[method]) || document.body[method]) 
            : element[method];
    },
    
    getWidth : function (element)
    {
        return element.offsetWidth;
    },
    
    getHeight : function (element)
    {
        return element.offsetHeight;
    }, 

    getStyle : function (element, sStyle)
    {
        var property = '';
    
        // Get the opacity value at runtime
        if (document.defaultView && document.defaultView.getComputedStyle) {
            // Standaard compliant browsers
            var css = document.defaultView.getComputedStyle(element, null);
            var property = css ? css.getPropertyValue(sStyle) : null;
        } else if (element.currentStyle) {
            // IE
            if (element.currentStyle[sStyle])
                var property = element.currentStyle[sStyle];
        } 
        
        return property;
    }, 

    getOpacity : function (element)
    {
        if (opacity = Element.getStyle(element, 'opacity'))  
            return parseFloat(opacity);  
        
        if (opacity = (Element.getStyle(element, 'filter') || '').match(/alpha\(opacity=(.*)\)/))  
            if(opacity[1]) return parseFloat(opacity[1]) / 100;  
        
        return 1.0;  
    },
    
    setOpacity : function (element, fOpacity)
    {
        Element.setStyle(element, 'opacity', fOpacity);
        
        if (!document.defaultView && element.currentStyle) {
            var newFilter = Element.getStyle(element,'filter');     
            newFilter = newFilter.replace(/alpha\([^\)]*\)/gi,'') + 'alpha(opacity=' + fOpacity * 100 + ')';
            Element.setStyle(element, 'filter', newFilter);    
        }
    }, 

    setStyle : function (element, sStyle, sValue) 
    {
        element.style[sStyle] = sValue;
    }
};
