var RNSscrolling,RNSpause,RNSmanpause,RNScroller,ScrollSections,ScrollWidth,ScrollHeight,ScrollPause,ScrollMaxSpeed,ScrollSpeed,ScrollMax,ScrollMin,ScrollSoft,ScrollCusion,ScrollIncrement,ScrollStart,ScrollStop,ScrollDir,ScrollingStarted,MarkerURL,Marker,HMarker,MarkerIMG,MarkerW,MarkerH,MarkerHolder,CurrentMarker,PauseButton,PlayButton,PauseNext;

function RNScrollerInit(num,w,h,pause,speed,scroller,holder,markerurl,marker,hmarker,markerimg,markerw,markerh,markerholder,pausebutton,playbutton){
        var TempSoft=new Array();
        var TempSoftR=new Array();
        ScrollSoft= new Array();
        ScrollSections=num;
        ScrollWidth=w;
        ScrollHeight=h;
        ScrollPause=pause;
        ScrollMaxSpeed=speed;
        RNScroller=scroller;
        document.getElementById(RNScroller).style.width=ScrollWidth+"px";
        document.getElementById(RNScroller).style.height=ScrollHeight+"px";
        document.getElementById(RNScroller).style.overflow="hidden";
        document.getElementById(holder).style.width=(ScrollWidth*(ScrollSections+1))+"px";
        ScrollIncrement=0;
        ScrollCusion=0;
        var i;
        var a=0;
        for(i=1;i<=ScrollMaxSpeed;i++){
                ScrollCusion+=i*2;
                TempSoft[a]=i;
                TempSoft[a+1]=i;
                a+=2;
        }
        var til=TempSoft.length;
        for(i=0;i<til;i++){
                TempSoftR[i]=TempSoft[i];
        }
        TempSoftR.reverse();
        for(i=0;i<til;i++){
                ScrollSoft.push(TempSoft[i]);
        }
        for(i=0;i<til;i++){
                ScrollSoft.push(TempSoftR[i]);
        }
        for(i=0;i<til;i++){
                ScrollSoft.push(TempSoftR[i]);
        }
        ScrollMax=ScrollWidth*ScrollSections;
        ScrollMin=0;
        ScrollDir=1;
        ScrollingStarted=0;
        MarkerURL=markerurl;
        Marker=marker;
        HMarker=hmarker;
        MarkerIMG=markerimg;
        MarkerW=markerw;
        MarkerH=markerh;
        MarkerHolder=markerholder;
        CurrentMarker=0;
        preloadmarkers();
        makemarkers();
        PauseButton=pausebutton;
        PlayButton=playbutton;
        PauseNext=false;
        document.getElementById(PauseButton).style.display='block';
        document.getElementById(RNScroller).scrollLeft=0;
        RNSpause=setInterval("ScrollNow()",1000*ScrollPause);
}
function preloadmarkers(){
        var preload_image_object = new Image(MarkerW,MarkerH);
        var i;
        for(i=1;i<=ScrollSections;i++){
                preload_image_object.src=MarkerURL+HMarker+MarkerIMG;
                preload_image_object.src=MarkerURL+Marker+MarkerIMG;
        }
        return true;
}
function makemarkers(){
        CurrentMarker+=ScrollDir;
        if(CurrentMarker>ScrollSections){
                CurrentMarker=1;
        } else if(CurrentMarker<1){
                CurrentMarker=ScrollSections;
        }
        var Markers="";
        var i;
        for(i=1;i<=ScrollSections;i++){
                if(i==CurrentMarker){
                        Markers+='<img src="'+MarkerURL+HMarker+MarkerIMG+'" width="'+MarkerW+'" height="'+MarkerH+'" />';
                } else {
                        Markers+='<img src="'+MarkerURL+Marker+MarkerIMG+'" width="'+MarkerW+'" height="'+MarkerH+'" />';
                }
        }
        document.getElementById(MarkerHolder).innerHTML=Markers;
}
function ScrollNow(){
        clearInterval(RNSpause);
        RNSscrolling=setInterval("Scrolling()",10);
}
function Scrolling(){
        if(ScrollingStarted==0){
                if(ScrollDir==1){
                        if(document.getElementById(RNScroller).scrollLeft==ScrollMax){
                                document.getElementById(RNScroller).scrollLeft=0;
                        }
                } else {
                        if(document.getElementById(RNScroller).scrollLeft==0){
                                document.getElementById(RNScroller).scrollLeft=ScrollMax;
                        }
                }
                ScrollStart=document.getElementById(RNScroller).scrollLeft;
                ScrollStop=ScrollStart+(ScrollWidth*ScrollDir);
                ScrollingStarted=1;
        }
        ScrollSpeed=ScrollMaxSpeed;
        if(ScrollStart<ScrollStop){
                if(document.getElementById(RNScroller).scrollLeft>=ScrollStart && document.getElementById(RNScroller).scrollLeft<ScrollStart+ScrollCusion){
                        ScrollSpeed=ScrollSoft[ScrollIncrement];
                        ScrollIncrement++;
                } else if(document.getElementById(RNScroller).scrollLeft<ScrollStop && document.getElementById(RNScroller).scrollLeft>=ScrollStop-ScrollCusion){
                        ScrollSpeed=ScrollSoft[ScrollIncrement];
                        ScrollIncrement++;
                }
        } else {
                if(document.getElementById(RNScroller).scrollLeft<=ScrollStart && document.getElementById(RNScroller).scrollLeft>ScrollStart-ScrollCusion){
                        ScrollSpeed=ScrollSoft[ScrollIncrement];
                        ScrollIncrement++;
                } else if(document.getElementById(RNScroller).scrollLeft>ScrollStop && document.getElementById(RNScroller).scrollLeft<=ScrollStop+ScrollCusion){
                        ScrollSpeed=ScrollSoft[ScrollIncrement];
                        ScrollIncrement++;
                }
        }
        document.getElementById(RNScroller).scrollLeft+=ScrollSpeed*ScrollDir;
        if(document.getElementById(RNScroller).scrollLeft==ScrollStop){
                document.getElementById(RNScroller).scrollLeft=ScrollStop;
                AutoPause();
        } else if(document.getElementById(RNScroller).scrollLeft>ScrollStop && ScrollDir==1){
                document.getElementById(RNScroller).scrollLeft=ScrollStop;
                AutoPause();
        } else if(document.getElementById(RNScroller).scrollLeft<ScrollStop && ScrollDir==-1){
                document.getElementById(RNScroller).scrollLeft=ScrollStop;
                AutoPause();
        }
        if(ScrollDir==1){
                if(document.getElementById(RNScroller).scrollLeft==ScrollMax){
                        document.getElementById(RNScroller).scrollLeft=ScrollMin;
                }
        } else {
                if(document.getElementById(RNScroller).scrollLeft==ScrollMin){
                        document.getElementById(RNScroller).scrollLeft=ScrollMax;
                }
        }
}
function AutoPause(){
        makemarkers();
        ScrollingStarted=0;
        ScrollIncrement=0;
        clearInterval(RNSscrolling);
        if(PauseNext){
                ManPause();
        } else {
                RNSpause=setInterval("ScrollNow()",1000*ScrollPause);
        }
}
function ManPause(){
        if(ScrollingStarted==0){
                PauseNext=false;
                document.getElementById(PauseButton).style.display='none';
                document.getElementById(PlayButton).style.display='block';
                ScrollingStarted=0;
                ScrollIncrement=0;
                clearInterval(RNSscrolling);
                clearInterval(RNSpause);
        } else {
                PauseNext=true;
        }
}
function ManPlay(){
        document.getElementById(PlayButton).style.display='none';
        document.getElementById(PauseButton).style.display='block';
        ScrollNow();
}
function ScrollPrev(){
        if(ScrollingStarted==0){
                document.getElementById(PlayButton).style.display='none';
                document.getElementById(PauseButton).style.display='block';
                ScrollDir=-1;
                ScrollNow();
        }
}
function ScrollNext(){
        if(ScrollingStarted==0){
                document.getElementById(PlayButton).style.display='none';
                document.getElementById(PauseButton).style.display='block';
                ScrollDir=1;
                ScrollNow();
        }
}
function preloadimages(imagelist,widthlist,heightlist){
        var plimage=imagelist.split("|");
        var plwidth=widthlist.split("|");
        var plheight=heightlist.split("|");
        var til=plimage.length;
        var preload_image_object;
        var i;
        for(i=0;i<til;i++){
                preload_image_object = new Image(plwidth[i],plheight[i]);
                preload_image_object.src=plimage[i];
        }
}
