function horizontalTableScroller(tableId , scrollLeftId, scrollRightId, scrollCellVisibleClass, scrollCellNotVisibleClass, scrollControlClass, scrollControlDisabledClass, initialPosition, colsVisible)

{

    var _table = document.getElementById(tableId);

    var _scrollLeft = document.getElementById(scrollLeftId);

    var _scrollRight = document.getElementById(scrollRightId);

    var _scrollControlClass = scrollControlClass;

    var _scrollControlDisabledClass = scrollControlDisabledClass;

    var _scrollCellVisibleClass = scrollCellVisibleClass;

    var _scrollCellNotVisibleClass = scrollCellNotVisibleClass;

    var _position = initialPosition;

    var _colsVisible = colsVisible;

    var _cells = null;

    var _minPos = 0;

    var _maxPos = 0;

    var _autoScrollTime = 500;

    var _lastLeftScroll = 0;

    var _lastRightScroll = 0;



    if (_table == null)

    {

        alert("Invalid tableId: " + tableId)

        return;

    }

    _cells = _table.rows[0].cells;

    _maxPos = _cells.length - _colsVisible;

    if (_maxPos < _minPos)

        _maxPos = _minPos;



    if (_scrollLeft != null)

    {

        _scrollLeft.onclick = function()

        {

            _lastLeftScroll = new Date().getTime();



            scrollToPosition(_position - 1);

        }



        _scrollLeft.onmousemove = function()

        {

            time = new Date().getTime();

            if (time - _lastLeftScroll < _autoScrollTime)

                return;



            _lastLeftScroll = time;



            scrollToPosition(_position - 1);

        }

    }



    if (_scrollRight != null)

    {

        _scrollRight.onclick = function()

        {

            _lastRightScroll = new Date().getTime();



            scrollToPosition(_position + 1);

        }



        _scrollRight.onmousemove = function()

        {

            time = new Date().getTime();

            if (time - _lastRightScroll < _autoScrollTime)

                return;



            _lastRightScroll = time;



            scrollToPosition(_position + 1);

        }

    }



    scrollToPosition(_position);

    

    function scrollToPosition(newPosition)

    {



        if (newPosition < _minPos)

            _position = 0;

        else if (newPosition >= _maxPos)

            _position = _maxPos;

        else

            _position = newPosition



        var row = _table.rows[0];

        if (row == null)

            return;



        for (j = 0; j < _cells.length; j++)

        {

            var cell = _cells[j];

            if (j < _position)

                cell.className = _scrollCellNotVisibleClass;

            else if (j >= _position && j < _position + _colsVisible)

                cell.className = _scrollCellVisibleClass;

            else if (j >= _position + _colsVisible)

                cell.className = _scrollCellNotVisibleClass;

        }



        if (_position == _minPos)

        {

            _scrollLeft.className = _scrollControlDisabledClass;

        }

        else

        {

            _scrollLeft.className = _scrollControlClass;

        }



        if (_position == _maxPos)

        {

            _scrollRight.className = _scrollControlDisabledClass;

        }

        else

        {

            _scrollRight.className = _scrollControlClass;

        }

    }

} 

function verticalTableScroller(tableId , scrollLeftId, scrollRightId, scrollCellVisibleClass, scrollCellNotVisibleClass, scrollControlClass, scrollControlDisabledClass, initialPosition, colsVisible)

{

    var _table = document.getElementById(tableId);

    var _scrollLeft = document.getElementById(scrollLeftId);

    var _scrollRight = document.getElementById(scrollRightId);

    var _scrollControlClass = scrollControlClass;

    var _scrollControlDisabledClass = scrollControlDisabledClass;

    var _scrollCellVisibleClass = scrollCellVisibleClass;

    var _scrollCellNotVisibleClass = scrollCellNotVisibleClass;

    var _position = 0;//initialPosition;

    var _colsVisible = colsVisible;

    var _cells = null;
    
    var _rows = null;

    var _minPos = 0;

    var _maxPos = 0;

    var _autoScrollTime = 500;

    var _lastLeftScroll = 0;

    var _lastRightScroll = 0;



    if (_table == null)

    {

        alert("Invalid tableId: " + tableId)

        return;

    }

    _rows = _table.rows;

    _maxPos = _rows.length - _colsVisible;

    if (_maxPos < _minPos)

        _maxPos = _minPos;



    if (_scrollLeft != null)

    {

        _scrollLeft.onclick = function()

        {

            _lastLeftScroll = new Date().getTime();



            scrollToPosition(_position - 1);

        }



        _scrollLeft.onmousemove = function()

        {

            time = new Date().getTime();

            if (time - _lastLeftScroll < _autoScrollTime)

                return;



            _lastLeftScroll = time;



            scrollToPosition(_position - 1);

        }

    }



    if (_scrollRight != null)

    {

        _scrollRight.onclick = function()

        {

            _lastRightScroll = new Date().getTime();



            scrollToPosition(_position + 1);

        }



        _scrollRight.onmousemove = function()

        {

            time = new Date().getTime();

            if (time - _lastRightScroll < _autoScrollTime)

                return;



            _lastRightScroll = time;



            scrollToPosition(_position + 1);

        }

    }



    scrollToPosition(_position);

    

    function scrollToPosition(newPosition)

    {



        if (newPosition < _minPos)

            _position = 0;

        else if (newPosition >= _maxPos)

            _position = _maxPos;

        else

            _position = newPosition



        var row = _table.rows[0];

        if (row == null)

            return;



        for (j = 0; j < _table.rows.length; j++)

        {
            var row = _table.rows[j];
            var cell = row.cells[0];
            
            if (j < _position)

                cell.className = _scrollCellNotVisibleClass;

            else if (j >= _position && j < _position + _colsVisible)

                cell.className = _scrollCellVisibleClass;

            else if (j >= _position + _colsVisible)

                cell.className = _scrollCellNotVisibleClass;

        }

        if (_position == _minPos)

        {

            _scrollLeft.className = _scrollControlDisabledClass;

        }

        else

        {

            _scrollLeft.className = _scrollControlClass;

        }

        if (_position == _maxPos)

        {

            _scrollRight.className = _scrollControlDisabledClass;

        }

        else

        {

            _scrollRight.className = _scrollControlClass;

        }
    }

} 


