window.ClientUtil = window.ClientUtil || {
    GetXY: function (element) {
        var returnX, returnY;

        var isIE = element.getBoundingClientRect;
        var isSafari = navigator.userAgent.toLowerCase().indexOf('safari') != -1;
        
        if(isIE) {
            var scrollTop = Math.max(document.documentElement.scrollTop, document.body.scrollTop);
            var scrollLeft = Math.max(document.documentElement.scrollLeft, document.body.scrollLeft);
            returnX = (element.getBoundingClientRect()).left + scrollLeft;
            returnY = (element.getBoundingClientRect()).top + scrollTop;
        } else {
            returnX = element.offsetLeft;
            returnY = element.offsetTop;
            
            // Traverse up the dom to get position
            var parent = element.offsetParent;
            if (parent != element) {
                while (parent) {
                    returnX += parent.offsetLeft;
                    returnY += parent.offsetTop;
                    parent = parent.offsetParent;
                }
            }
            
            if (isSafari) { // safari can mis-position
                returnX += document.body.offsetLeft;
                returnY += document.body.offsetTop;
            }            
        }
        
        return {X:returnX,Y:returnY};
    }
};