function Scroller(scrollRegion, scrollSpeed, imageXOffset)
{
    var _scroller = PlanIt.GetElementsByClass('planit_scroller', 'div', scrollRegion)[0];
    var _scrollContent = PlanIt.GetElementsByClass('planit_scrollcontent', 'div', scrollRegion)[0];
    var _scrollUp = PlanIt.GetElementsByClass('planit_scrollup', 'div', scrollRegion)[0];
    var _scrollDown = PlanIt.GetElementsByClass('planit_scrolldown', 'div', scrollRegion)[0];
   
    var _scrollerHeight = _scroller.clientHeight;
    if(_scrollerHeight == 0)
    {
        _scrollerHeight = 100;
        _scroller.style.height = _scrollerHeight + 'px';
    }        
    var _scrollSpeed = scrollSpeed || 10;
    var _scrollPosition = 0;
    
    //maximale negatieve toppositie vastleggen.
    var _minScrollPosition = -_scrollContent.scrollHeight + _scrollerHeight;
    
    //Id's van intervallen declareren.
    var _scrollDownInterval;
    var _scrollUpInterval;
             
    //Scroll knoppen verbergen als de content niet groter is dan de scrollbox.
    if(_scrollContent.scrollHeight <  _scroller.clientHeight)
    {
        _scrollUp.style.visibility = 'hidden';
        _scrollDown.style.visibility = 'hidden';
    }
    
    function ScrollDown()
    {
        _scrollPosition -= 10;
        if(_scrollPosition < _minScrollPosition)
        {
            _scrollPosition += 10;
            return;
        }
        _scrollContent.style.top = _scrollPosition.toString() + 'px';
    }        
    function ScrollUp()
    {
        _scrollPosition += 10;
        if(_scrollPosition > 0)
        {
            _scrollPosition -= 10;
            return;
        }
        _scrollContent.style.top = _scrollPosition.toString() + 'px';
    }
    
    //Registreren event handlers.
    PlanIt.AddEvent(_scrollUp, 'mousedown', _scrollUp_MouseDown);
    PlanIt.AddEvent(_scrollUp, 'mouseup', _scrollUp_MouseUp);
    PlanIt.AddEvent(_scrollUp, 'mouseout', _scrollUp_MouseUp);
    PlanIt.AddEvent(_scrollDown, 'mousedown', _scrollDown_MouseDown);
    PlanIt.AddEvent(_scrollDown, 'mouseup', _scrollDown_MouseUp);
    PlanIt.AddEvent(_scrollDown, 'mouseout', _scrollDown_MouseUp);
    
    //Event handlers.
    function _scrollUp_MouseDown()
    {
        _scrollUpInterval = window.setInterval(ScrollUp, _scrollSpeed);
        if(imageXOffset)_scrollUp.style.backgroundPosition = imageXOffset.toString() + 'px 0';
    }
    function _scrollUp_MouseUp()
    {
        window.clearInterval(_scrollUpInterval);
        _scrollUp.style.backgroundPosition = '0 0';
    }
    function _scrollDown_MouseDown()
    {
        _scrollDownInterval = window.setInterval(ScrollDown, _scrollSpeed);
        if(imageXOffset)_scrollDown.style.backgroundPosition = imageXOffset.toString() + 'px 0';
    }
    function _scrollDown_MouseUp()
    {
        window.clearInterval(_scrollDownInterval);
        _scrollDown.style.backgroundPosition = '0 0';
    }            
}
var scrollers;
function InitializeScrollers()
{
    var scrollRegions = PlanIt.GetElementsByClass('planit_scrollregion', 'div', document);
    if(!scrollRegions || scrollRegions.length == 0)return;
    scrollers = [];
    for(var i = 0; i < scrollRegions.length; i++)
    {
        scrollers.push(new Scroller(scrollRegions[i], 50, -36));
    }
}
PlanIt.AddEvent(window, 'load', InitializeScrollers);
   



    


