function findPosX(obj)
  {
    var curleft = 0;
    if(obj.offsetParent)
        while(1) 
        {
          curleft += obj.offsetLeft;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.x)
        curleft += obj.x;
    return curleft;
  }

  function findPosY(obj)
  {
    var curtop = 0;
    if(obj.offsetParent)
        while(1)
        {
          curtop += obj.offsetTop;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.y)
        curtop += obj.y;
    return curtop;
  }


function Bar(obj, vert)
{
	var _obj = obj;
	var _scrolling = false;
	var _scrollval = 0;
	var _interval = null;
	var _timeout = null;
	var _vert = vert;
	
	this.getObject = function() { return _obj; }
	this.getScrolling = function() { return _scrolling; }
	this.getScrollValue = function() { return _scrollval; }
	
	this.setScrolling = function (val) { _scrolling=val; }
	this.setScrollValue = function (val) { _scrollval = val; }
	this.startScroll = _startScroll;
		
	function _startScroll()
	{
		if(_scrolling)
		{
			if(_vert==0)
			{
				if(_obj.scrollLeft>=0 && _obj.scrollLeft<=_obj.scrollWidth)
				{
					_obj.scrollLeft+=_scrollval;
				}
			}
			else
			{
				if(_obj.scrollTop>=0 && _obj.scrollTop<=_obj.scrollHeight)
				{
					_obj.scrollTop+=_scrollval;
				}
			}
		}
	}
	
	function _stopScroll()
	{
		_scrolling=false; 
		_scrollval=0;
		clearInterval(_interval);
	}
	
	function mouseMovement(evt)
	{
		var mouse=0;
		var objPos, objSize;
		if (!evt) evt = window.event;

		if(_vert==0)
		{
			if (evt.pageX)
				mouse = evt.pageX;
			else if (evt.clientX)
				mouse = evt.clientX;
		
			objPos = mouse-findPosX(_obj);
			objSize = _obj.offsetWidth;
		}
		else
		{
			if (evt.pageY)
				mouse = evt.pageY;
			else if (evt.clientY)
				mouse = evt.clientY;
		
			objPos = mouse-findPosY(_obj);
			objSize = _obj.offsetHeight;
		}
			
		if(objPos<(objSize/2))
		{
			_scrollval=(-(((objSize/2)-objPos)*10/(objSize/2)));
			if(!_scrolling) { 
				_scrolling=true;
				_interval = setInterval(function() {_startScroll();},50);
			}
		}
		else
		{
			_scrollval=(((objPos-(objSize/2))*10/(objSize/2)));
			if(!_scrolling) {
				_scrolling=true;
				_interval = setInterval(function() {_startScroll();},50);
			}
		}
				
		return true;
	}
		
	_obj.onmousemove = mouseMovement;
	_obj.onmouseout = function() { _timeout = setTimeout(function() { _stopScroll(); } ,100); }
	_obj.onmouseover = function() { clearTimeout(_timeout); }
}




