var method4ScrollerLists=[];
var method4ScrollerItems=[];
function createMethod4Scroller(scrollerDiv, delay, viewItems) {
    div = document.getElementById(scrollerDiv);
    div.style.position = 'relative';

    list = div.getElementsByTagName('ul')[0];
    listItems = list.getElementsByTagName('li');

    // get max height of list items
    count = 0;
    maxItemHeight = 0;
    while (count < listItems.length) {
        itemHeight = listItems[count].clientHeight;
        if (itemHeight > maxItemHeight) {
            maxItemHeight = itemHeight;
        }
        count++;
    }

    // set all list items to same height
    count = 0;
    while (count < listItems.length) {
        listItems[count].style.height = maxItemHeight + 'px';    
        count++;
    }

    div.style.overflow = 'hidden';
    div.style.height = maxItemHeight * viewItems + 'px';
    div.style.position = 'relative';
    list.style.position = 'absolute';
    list.style.top = '0px';
    list.paused = false;
    method4ScrollerLists[method4ScrollerLists.length] = list;
    method4ScrollerItems[method4ScrollerItems.length] = listItems;

    if (list.addEventListener) {
        list.addEventListener('mouseover', pauseMethod4Scroller, false);
        list.addEventListener('mouseout', unpauseMethod4Scroller, false);
    }
    else if (list.attachEvent) { // IE
        list.attachEvent('onmouseover', pauseMethod4Scroller);
        list.attachEvent('onmouseout', unpauseMethod4Scroller);
    }
    setTimeout('animateMethod4Scroller(' + (method4ScrollerLists.length - 1) + ',' + maxItemHeight + ',' + delay + ')', delay);
}

function animateMethod4Scroller(scrollerNum, height, delay) {
    topPos = parseInt(method4ScrollerLists[scrollerNum].style.top);
    
    if (topPos == 0 && method4ScrollerLists[scrollerNum].paused) {
        setTimeout('animateMethod4Scroller(' + scrollerNum + ',' + height + ',' + delay + ')', delay);
    }
    else {
        accel = 0;
        if (-(topPos) < (height/2)) {
            accel = (topPos * -0.2) + 1;
        } 
        else {
            accel = ((height + topPos) * 0.2) +1;
        }
        topPos = topPos - accel;
            
        if (topPos >= -(height)) {
            method4ScrollerLists[scrollerNum].style.top = topPos + "px";
            setTimeout('animateMethod4Scroller(' + scrollerNum + ',' + height + ',' + delay + ')', 20);
        }
        else {
            firstListItem = method4ScrollerLists[scrollerNum].getElementsByTagName('li')[0];
            newListItem = firstListItem.cloneNode(true);
            method4ScrollerLists[scrollerNum].removeChild(firstListItem);
            method4ScrollerLists[scrollerNum].style.top = "0px";
            method4ScrollerLists[scrollerNum].appendChild(newListItem);
            setTimeout('animateMethod4Scroller(' + scrollerNum + ',' + height + ',' + delay + ')', delay);
        }
    }
}

function pauseMethod4Scroller(e) {
    if (e.srcElement) { // IE
        ieMethod4ScrollerPause(e.srcElement, true);
    }
    else {
        this.paused = true;
    }
}

function unpauseMethod4Scroller(e) {
    if (e.srcElement) { // IE
        ieMethod4ScrollerPause(e.srcElement,false);
    }
    else {
        this.paused = false;
    }
}

function ieMethod4ScrollerPause(src, pause) {
    done = false;
    while (src != null && !done) {
        if (src.paused != null) {
            src.paused = pause;
            done = true;
        }
        src = src.parentNode;
    }
}

