var timeBetweenSteps = 100;	// General speed variable (higher = slower)

var scrollObjects = [];
var previousTop = 0;

//slide the content of the provided container by the step
function slideContent(containerId){
   if(scrollObjects[containerId]['slideStep'] > 0){
      var topPos = Number(scrollObjects[containerId]['scrollContent'].style.top.replace(/[^\-0-9]/g,''));
      topPos = topPos - Number(scrollObjects[containerId]['slideStep']);
      if(topPos + scrollObjects[containerId]['contentHeight'] < 0){
         topPos = scrollObjects[containerId]['containerHeight'];
         previousTop = scrollObjects[containerId]['containerHeight'];
      }
      //console.log(previousTop - topPos);
      if(previousTop - topPos > 30) previousTop = topPos;
      scrollObjects[containerId]['scrollContent'].style.top = topPos + 'px';
   }
  // pauseSliding(containerId);
   //setTimeout('restartSliding("' + containerId + '")', 4000);
   setTimeout('slideContent("' + containerId + '")', timeBetweenSteps);
}

function stopSliding(containerId){
   var containerId = this.id;
   scrollObjects[containerId]['slideStep'] = 0;	
}

function restartSliding(containerId){
   var containerId = this.id;
   scrollObjects[containerId]['slideStep'] = scrollObjects[containerId]['originalSpeed'];
}

function initSlidingContent(containerId, slideStep, slideDirection, contentPauseHeight){
   var scrollingContainer = document.getElementById(containerId);
   var scrollingContent = scrollingContainer.getElementsByTagName('DIV')[0];
   
   //Set the css specifics for the container/content
   scrollingContainer.style.position = 'relative';
   scrollingContainer.style.overflow = 'hidden';
   scrollingContent.style.position = 'relative';
   
   //mouse over/out stopping/restarting the scrolling
   scrollingContainer.onmouseover = stopSliding;
   scrollingContainer.onmouseout = restartSliding;
   
   //start the content at the top
   scrollingContent.style.top = '0px';
   
   scrollObjects[containerId] = [];
   scrollObjects[containerId]['scrollContent'] = scrollingContent;
   scrollObjects[containerId]['contentHeight'] = scrollingContent.offsetHeight;
   scrollObjects[containerId]['containerHeight'] = scrollingContainer.clientHeight;
   scrollObjects[containerId]['slideStep'] = slideStep;
   scrollObjects[containerId]['originalSpeed'] = slideStep;
   scrollObjects[containerId]['slideDirection'] = slideDirection || 'down';
   scrollObjects[containerId]['contentPauseHeight'] = contentPauseHeight;
   
   slideContent(containerId);
}
