var bbcNewsScroller_listContainerID='bbcnews'; //ID of the element containing the list to be scrolled
var bbcNewsScroller_jumpBackSpeed=1500; //In milliseconds (1000 = 1sec)
var bbcNewsScroller_scrollSpeed=100; //Smaller number = faster and smoother, larger number = slower and jumpier
var bbcNewsScroller_scrollIncrement=1; //Smaller = slower and smoother, larger = faster and jumpier

var bbcNewsScroller_newsHeadlinesUL, bbcNewsScroller_IntervalID, bbcNewsScroller_TimeoutID;

addLoadEvent( function() {

    //Get the element containing the list
    var bbcNewsScroller_newsHeadlines = document.getElementById(bbcNewsScroller_listContainerID);
    if (!bbcNewsScroller_newsHeadlines) return;

    //Get the list elements in the container and select the first one
    var bbcNewsScroller_uls = bbcNewsScroller_newsHeadlines.getElementsByTagName('ul');
    if (!bbcNewsScroller_uls || !bbcNewsScroller_uls[0]) return;

    bbcNewsScroller_newsHeadlinesUL = bbcNewsScroller_uls[0];

    //Change the overflow type to hidden to remove the scrollbar (used for accessibility if the user doesnt have JS enabled)
    bbcNewsScroller_newsHeadlinesUL.style.overflow='hidden';

    //Start the scroller
    bbcNewsScroller_IntervalID = window.setInterval( bbcNewsScroller_scroller ,bbcNewsScroller_scrollSpeed);
    bbcNewsScroller_TimeoutID = 0;

    //If the user places the mouse over the container stop the scroller
    bbcNewsScroller_newsHeadlines.onmouseover = function() {
      clearInterval( bbcNewsScroller_IntervalID );
      clearTimeout ( bbcNewsScroller_TimeoutID );
    }

    //When the user moves the mouse out of the container restart the scroller
    bbcNewsScroller_newsHeadlines.onmouseout = function() {
      bbcNewsScroller_IntervalID = window.setInterval( bbcNewsScroller_scroller ,bbcNewsScroller_scrollSpeed);
    }

} );

//Function used to scroll through the list
function bbcNewsScroller_scroller() {

  //Scroll down the list by the specified increment
  bbcNewsScroller_newsHeadlinesUL.scrollTop=bbcNewsScroller_newsHeadlinesUL.scrollTop+bbcNewsScroller_scrollIncrement;

  //If we are at the end of the list
  if (bbcNewsScroller_newsHeadlinesUL.scrollTop>=(bbcNewsScroller_newsHeadlinesUL.scrollHeight-bbcNewsScroller_newsHeadlinesUL.offsetHeight)) {
  
    //Stop the scroller
    clearInterval( bbcNewsScroller_IntervalID );
  
    //Jump back to the top after 1.5seconds
    bbcNewsScroller_TimeoutID = window.setTimeout( function() {
    
      //Set the scroll position to the top
      bbcNewsScroller_newsHeadlinesUL.scrollTop = 0;
      
      //restart the scroller (after checking it is dead)
      clearInterval( bbcNewsScroller_IntervalID );
      bbcNewsScroller_IntervalID = window.setInterval( bbcNewsScroller_scroller ,bbcNewsScroller_scrollSpeed);
      
    }, bbcNewsScroller_jumpBackSpeed );
  }
}
