 var scrollSpeed=32;
 var scrollSpeedOnBreak=4000;
 var scrollStep=1;
 
 var scrollStart;//vlastne pocatecni strana, -1 je odsun o stranu
 var scrollbox,scrolinner,scrollover;
 var scrolltotalY,scrollY;
 var scrolltimer1;
 var scrollpaused=false;
 var scrollbreaks = new Array();
 var scrolltimer = 0;
 var scrolltimerspeed = 0;


 function SNInit(starttop,infinite){
   scrollbox=document.getElementById('scrollingnews');
   scrollinner=document.getElementById('scrollinginner');
   
   if (infinite){
     var buff=scrollinner.innerHTML;
     scrollinner.innerHTML=buff+buff;
   }
   scrollStart= starttop ? 0 : -1;
   
   scrollover=document.getElementById('scrollover');

   if ((!scrollbox)||(!scrollinner)||(!scrollover))
     return;
     
   scrollover.style.overflow='hidden';
   scrollover.style.height='1px';

   scrolltotalY=scrollover.offsetTop;
   scrollseeY=scrollbox.offsetHeight;
   scrollY=scrollseeY*scrollStart;
   if (infinite)//nekonecne -> dalsi je uz od zacatku
    scrollStart=0;

   scrollbox.onmouseover = function (){ SNSetPause(true); };
   scrollbox.onmouseout = function (){ SNSetPause(false); };

   SNSetBreaks();

   SNScroll( starttop ? 0 : -scrollseeY);
   scrollinner.style.visibility="visible";

   SNTimer1();
 }

 function SNTimer1(){
   var inbreak=false;
   if (!scrollpaused)
     inbreak = SNScroll(scrollStep);
   //var aspeed= inbreak? scrollSpeedOnBreak : scrollSpeed;
   scrolltimer1 = setTimeout("SNTimer1()",inbreak? scrollSpeedOnBreak : scrollSpeed);
/*
   if ((scrolltimer1==0)||(scrolltimerspeed != aspeed)){
     scrolltimerspeed = aspeed;
     if (scrolltimer1) clearInterval(scrolltimer1);
     scrolltimer1 = setInterval("SNTimer1()",scrolltimerspeed);
   }*/
 }

 //vsechny li v elementu=zastavky, nacpu do pole breaks
 function SNSetBreaks(){
   var lis=scrollinner.getElementsByTagName('li');
   scrollbreaks=new Array();
   for (var i = 0;i<lis.length;i++)
     if (lis[i].id!='scrollover')
       scrollbreaks[i]=lis[i].offsetTop;
 }

 //offset=prisrustek k aktualni pozici
 //zaroven se zda osetruji zastavky a pretekani
 //vraci TRUE = prijeli jsme na zastavku
 function SNScroll(offset){
   scrollY+=offset;//posunu, takze uz pracuji s novou pozici

   var inbreak=false;//vychozi je, ze nejsem na zastavce

   for (var i = 0;i<scrollbreaks.length;i++)//prolezu zastavky
     if ((scrollbreaks[i]<=scrollY)&&(scrollbreaks[i]>(scrollY-offset))){
       inbreak=true;
       scrollY=scrollbreaks[i];
     }

   if ((scrollY>scrolltotalY)||(scrollY<-scrollseeY)) //jsem mimo viditelnosti rozsah?
     scrollY=scrollseeY*scrollStart; //nastavim na zacatek-viditelna oblast
   scrollinner.style.top=(-scrollY)+'px'; //posune objekt na novou y pozici a nastavi stavovou promenou
   return inbreak;
 }

 function SNSetPause(state){
   scrollpaused=state;
 }
