lockPager = false;
pageNo = 1;

function rollLeft(maxCount) {
    if(lockPager || pageNo == 1) { return; }
    new Effect.Fade("brandNewSong", {
        fps: 60,
        duration: 0.5,
        beforeStartInternal: function(effect) {
            lockPager = true;
        },
        afterFinishInternal: function(effect) {
            pageNo--;
            borderNo = pageNo * pageSize + 1
            for(i = borderNo - pageSize; i < borderNo + pageSize; i++) {
                setDisplayStyle(i, i < borderNo ? "block" : "none");
            }
            rollAppear();
        }
    });
}
function rollRight() {
    if(lockPager) { return; }
    elemItem = document.getElementById("pager-item-" + (pageNo * pageSize + 1));
    if(elemItem == null) { return; }
    new Effect.Fade("brandNewSong", {
        fps: 60,
        duration: 0.5,
        beforeStartInternal: function(effect) {
            lockPager = true;
        },
        afterFinishInternal: function(effect) {
            borderNo = pageNo * pageSize + 1
            for(i = borderNo - pageSize; i < borderNo + pageSize; i++) {
                setDisplayStyle(i, i < borderNo ? "none" : "block");
            }
            pageNo++;
            rollAppear();
        }
    });
}
function rollPage(targetPageNo) {
    if(lockPager) { return; }
    new Effect.Fade("brandNewSong", {
        fps: 60,
        duration: 0.5,
        beforeStartInternal: function(effect) {
            lockPager = true;
        },
        afterFinishInternal: function(effect) {
            borderNo = pageNo * pageSize + 1
            for(i = borderNo - pageSize; i < borderNo; i++) {
                setDisplayStyle(i, "none");
            }
            pageNo = targetPageNo;
            borderNo = pageNo * pageSize + 1
            for(i = borderNo - pageSize; i < borderNo; i++) {
                setDisplayStyle(i, "block");
            }
            rollAppear();
        }
    });
}
function setDisplayStyle(itemNo, styleVal) {
    elmItem = document.getElementById("pager-item-" + itemNo);
    if(elmItem != null) {
        elmItem.style.display = styleVal;
        return true;
    }
    return false;
}
function setPagerMode() {
    elemPrev = document.getElementById("page_prev");
    elemNext = document.getElementById("page_next");

    if(pageNo == 1) {
        elemPrev.innerHTML="<span style='color:#aaaaaa'>&lt; prev</span>";
    } else {
        elemPrev.innerHTML="<a href='javascript:rollLeft();'>&lt; prev</a>";
    }

    elemItem = document.getElementById("pager-item-" + (pageNo * pageSize + 1));
    if(elemItem == null) {
        elemNext.innerHTML="<span style='color:#aaaaaa'>next &gt;</span>";
    } else {
        elemNext.innerHTML="<a href='javascript:rollRight();'>next &gt;</a>";
    }
    setPagerPage(pageNo);
}
function setPagerPage(targetPageNo) {
   for(i = 1; i < 4; i++){
       elemItem = document.getElementById("page_" + i);
       if(elemItem == null) { return; }
       if(i == targetPageNo) {
           elemItem.innerHTML = "<b>" + i + "</b>";
       } else {
           elemItem.innerHTML = "<a href='javascript:rollPage(" + i + ")'>" + i + "</a>";
       }
   }
}
function rollAppear() {
    if(!lockPager) { return; }
    setPagerMode();
    new Effect.Appear("brandNewSong", {
        fps: 60,
        duration: 0.5,
        afterFinishInternal: function(effect) {
            lockPager = false;
        }
    });
}

