
// get element's bounds
var getBounds = function(elem) {
    var left = elem.offsetLeft; var top = elem.offsetTop;
    for (var parent = elem.offsetParent; parent; parent = parent.offsetParent) { 
        left += parent.offsetLeft; top += parent.offsetTop;
    }
    return {left: left, top: top, width: elem.offsetWidth, height: elem.offsetHeight};
};

//some kinda prototype's $() but simplier a lot
var $ = function(id) { 
    if (typeof(id) == 'object') { return id; } 
    return document.getElementById(id); 
};

var $S = function(id) { 
    if (typeof(id) == 'object') { return id; }
    return document.getElementById(id).style;
}

//crossbrowser currentStyle;
if (typeof document.defaultView == 'undefined') 
    document.defaultView = {}; 
    if (typeof document.defaultView.getComputedStyle == 'undefined') { 
        document.defaultView.getComputedStyle = function(element, pseudoElement) {
            return element.currentStyle;
        }; 
    }

//crossbrowser mouse coordinates
var getCoords = function(e) { 
    var posx=0;var posy=0;
    if(!e) { var e=window.event; } 

    if(e.pageX||e.pageY) { 
        posx=e.pageX; posy=e.pageY; 
    } else if(e.clientX||e.clientY) { 
        posx=e.clientX+document.body.scrollLeft+document.documentElement.scrollLeft;
        posy=e.clientY+document.body.scrollTop+document.documentElement.scrollTop;
    }
    return {x:posx,y:posy};
};
