function frimb_misc()
{
}

frimb_misc.prototype.cursor_position = function (e, object_id)
{
    if(!e) e=window.event;
	if (e.target) evt_target = e.target;
	else if (e.srcElement) evt_target = e.srcElement;
	if (evt_target.nodeType == 3) // workaround for Safari bug
		evt_target = evt_target.parentNode;
	
    var object=document.getElementById(object_id);
    var scroll=this.get_scroll(object);
    var x_pos=parseInt(e.clientX)+parseInt(scroll.x);
    var y_pos=parseInt(e.clientY)+parseInt(scroll.y);
    x_pos-=parseInt(object.offsetLeft);
    y_pos-=parseInt(object.offsetTop);
    while(object.offsetParent)
    {
        object=object.offsetParent;
        var scroll=this.get_scroll(object);
        x_pos+=scroll.x;
        y_pos+=scroll.y;
        if(object.offsetLeft)
            x_pos-=parseInt(object.offsetLeft);
        if(object.offsetTop)
            y_pos-=parseInt(object.offsetTop);
    }	
    return {x : x_pos, y : y_pos};
}

frimb_misc.prototype.object_position = function (id)
{
    var object=document.getElementById(id);
    var left = object.offsetLeft;
    var top = object.offsetTop;
    while(object.offsetParent) 
    {
        object = object.offsetParent;
        left += object.offsetLeft;
        top += object.offsetTop;
    }
    return {x : left, y : top};
}

frimb_misc.prototype.get_window_scroll = function() {
   if (document.body.scrollTop != undefined) {	// IE model
      var ieBox = document.compatMode != "CSS1Compat";
      var cont = ieBox ? document.body : document.documentElement;
      return {x : cont.scrollLeft, y : cont.scrollTop};
   }
   else {
      return {x : window.pageXOffset, y : window.pageYOffset};
   }
}

frimb_misc.prototype.get_scroll = function(object)
{
    if(object && object.scrollLeft)
        return { x : object.scrollLeft, y : object.scrollTop};
    else
        return { x : 0, y : 0};    
}
