function Lister( sourceTape )
{
    var currentIndex = 0;
    var tape = sourceTape;
    var length = sourceTape.length;

    this.next = function()
    {
        tape[currentIndex].style.display = "none";
        if ( (currentIndex < (length - 1)) )
        {
            currentIndex++;
        }
        else
        {
            currentIndex = 0;
        }
        tape[currentIndex].style.display = "block";
    }

    this.previous = function()
    {
        tape[currentIndex].style.display = "none";
        if ( currentIndex > 0 )
        {
            currentIndex--;
        }
        else
        {
            currentIndex = (length - 1) >= 0 ? (length - 1) : 0;
        }
        tape[currentIndex].style.display = "block";
    }
}

function addHandler( object, event, handler )
{
    if ( typeof object.addEventListener != 'undefined' )
        object.addEventListener(event, handler, false);
    else if ( typeof object.attachEvent != 'undefined' )
        object.attachEvent('on' + event, handler);
    else
        throw "Incompatible browser";
}

function removeHandler( object, event, handler )
{
    if ( typeof object.removeEventListener != 'undefined' )
        object.removeEventListener(event, handler, false);
    else if ( typeof object.detachEvent != 'undefined' )
        object.detachEvent('on' + event, handler);
    else
        throw "Incompatible browser";
}