function scrollUp(){
    var totalLines = CountLines();     
    var topLine = 0;
    var visibleLines = 17;
    var finalStr = "";
    topLine = MoveThroughText(topLine,'up',totalLines);
    finalStr = GetDisplayText(topLine,totalLines);
    RenderText(finalStr,'up',topLine,totalLines);
}

function loopUp(repetition, line){
    var totalLines = CountLines();     
    var topLine = 0;
    var finalStr = "";
    topLine = MoveThroughText(topLine,'up',totalLines);
    finalStr = GetDisplayText(topLine,totalLines);
    RenderThis(finalStr);
}

function scrollDown(){
    var totalLines = CountLines();     
    var topLine = 0;
    var finalStr = "";
    topLine = MoveThroughText(topLine,'down',totalLines);
    finalStr = GetDisplayText(topLine,totalLines);    
    RenderText(finalStr,'down',topLine,totalLines);   
}

function loopDown(){
    var totalLines = CountLines();     
    var topLine = 0;
    var finalStr = "";
    topLine = MoveThroughText(topLine,'down',totalLines);
    finalStr = GetDisplayText(topLine,totalLines);
    RenderThis(finalStr);
}

function stopScroll(){   
   return false;
}

function CountLines(){
    var storedTextElement = document.getElementById("maincontentleft");
    var storedText = storedTextElement.innerHTML;
    var arr1 = storedText.split("<BR>");
    
    return arr1.length;
}
    
function MoveThroughText(topLine,scrollDirection,lineCount){
    if(scrollDirection == "down"){
        if((topLine+1) <= lineCount){
            topLine++;
        }
    }else{ //up
        if((topLine-1) > 0){
            topLine--;
        }
    }
    return topLine;
}   

function GetDisplayText(startLineIndex,numLines){
    var compileStr = "";
    var cnt = CountLines(); 
    if(startLineIndex == 0){    //up
        compileStr += GetLine(numLines-1);
        for(m=1;m<(numLines-1);m++){
            compileStr += GetLine(m);
        }
    }else{      //down
        var tLine = "";
        for(m=startLineIndex;m<numLines;m++){
            
            tLine = GetLine(startLineIndex + m);
            compileStr += tLine;         
        }
        tLine = GetOtherLines(startLineIndex+1);
        compileStr += tLine;
    }
    //remove last separator
    compileStr = compileStr.substring(0,compileStr.length-4);
    return compileStr;
}      

function GetLine(num){
    var storedTextElement = document.getElementById("maincontentleft");
    var storedText = storedTextElement.innerHTML;
    var arr = storedText.split("<BR>");
    if( (arr[(num-1)] + "").indexOf("undefined")!=-1){
        return "";
    }
    return arr[(num-1)] + "<BR>";
}

function GetOtherLines(chopLineNum){
    var hiddenLinesStr = "";
    for(a=1;a<=chopLineNum;a++){
        hiddenLinesStr += GetLine(a);
    }
    return hiddenLinesStr;
}

function GetTopLineIndex(){
    var indexresult=1;    
    var storedText = document.getElementById("contentcopy");
    var activeText = document.getElementById("maincontentleft");
    var activeArr = activeText.innerHTML.split("\n");
    var storedArr = storedText.innerHTML.split("\n");
    for(x=0;x<storedArr.length;x++){
        if(storedArr[x] == activeArr[0]){
            indexresult = x;
        }
    }
    return indexresult+1;
}

function RenderText(strHTML,direction,lineNumber,numLines){
    var activeDiv = document.getElementById("maincontentleft");
    activeDiv.innerHTML = strHTML;    
    //alert(numLines + ":" + lineNumber);
    Repeat(10,direction,lineNumber);   
}

function RenderThis(strHTML){
    var activeDiv = document.getElementById("maincontentleft");
    activeDiv.innerHTML = strHTML;    
}

function Repeat(times, dir, lineNumber){
    for(i=0;i<times;i++){
        if(dir=="down"){
            window.setTimeout("loopDown()",(i*100));
        }else{
            window.setTimeout("loopUp()",(i*100));
        }
    }
}