var s_itemcount=3;
var s_itemwidth=200;
var s_padding=9;
var s_first = 1;
var s_last = s_itemcount;
var s_current = 0;
var s_width = s_itemwidth+s_padding;
var s_xpos = s_width * (s_last - s_first);
var s_maxitems = 3;

function setLastItem()
{
 var items = document.getElementsByTagName("li");
 if (items)
 {
  var i = 0;
  for (i = 0; i < items.length; i++)
  {
   if (items[i].className)
   {
    if (items[i].className.indexOf("isitem") >= 0)
    {
     if (!items[i].id) items[i].id = items[i].className;
     items[i].style.left = (s_current * s_width).toString()+"px";
     s_current++;
    }
   }
  }
 }
}

function toggleItemscroller()
{
 var leftNav = document.getElementById("itemscrollerLeft");
 if(s_first == 1) leftNav.style.display = "none";
 else leftNav.style.display = "block";
 var rightNav = document.getElementById("itemscrollerRight");
 if(s_last == s_current) rightNav.style.display = "none";
 else rightNav.style.display = "block";
}

function moveItemscroller()
{
 var iscontainer = document.getElementById("itemscroller");
 if(!iscontainer) return;
 var items = document.getElementsByTagName("ul");
 if(!items) return;
 var i = 0;
 for(i; i < items.length; i++)
 {
  if(items[i].className.indexOf("isitem") >= 0) break;
 }
 var isitem = items[i];
 if(!isitem) return;
 iscontainer.appendChild(isitem);
 isitem.style.display = 'block';
 isitem.style.left = '0px';
 if (s_current == 0) setLastItem();
 toggleItemscroller();
}

function scrollItemscroller(direction)
{
 if(!direction) return;
 if (s_current == 0) setLastItem();
 var numitems = s_maxitems;
 if(direction == 'fwd')
 {
  if(s_last < s_current)
  {
   if(s_last + s_maxitems > s_current)
   {
    numitems = (s_last + s_maxitems) - s_current; 
    s_first = s_current-s_itemcount+1;
    s_last =  s_current;
   }
   else
   {
    s_last += s_maxitems;
    s_first += s_maxitems;
   }
   scrollItemscrollerBy(0-numitems*s_width);
  }
 }
 if(direction == 'rev')
 {
  if(s_last > s_maxitems)
  {
   if(s_first - s_maxitems < 1)
   {
    numitems = s_maxitems - s_first + 1; 
    s_first = 1;
    s_last =  s_itemcount;
   }
   else
   {
    s_last -= s_maxitems;
    s_first -= s_maxitems;
   }
   scrollItemscrollerBy(numitems*s_width);
  }
 }
}

function scrollItemscrollerBy(px)
{
 var items = document.getElementsByTagName("ul");
 if(!items) return;
 var i = 0;
 for(i; i < items.length; i++)
 {
  if(items[i].className.indexOf("isitem") >= 0) break;
 }
 var isitem = items[i];
 if(!isitem) return;
 var step = getStep(px);

 if(px < 0)
 {
  step = -step;
  if(px < step)
  {
   isitem.style.left = (parseInt(isitem.style.left) + step).toString() + "px";
   px -= step;
   window.setTimeout('scrollItemscrollerBy(' + px.toString() + ')', 10);
  }
  else
  {
   isitem.style.left = (parseInt(isitem.style.left) + px).toString() + "px";
   toggleItemscroller();
  }
 }
 else
 {
  if(px > step)
  {
   isitem.style.left = (parseInt(isitem.style.left) + step).toString() + "px";
   px -= step;
   window.setTimeout('scrollItemscrollerBy(' + px.toString() + ')', 10);
  }
  else
  {
   isitem.style.left = (parseInt(isitem.style.left) + px).toString() + "px";
   toggleItemscroller();
  }
 }
}

//isitem.offsetLeft

function getStep(px)
{
 if(px < 0) px = -px;
 if(px >= 300) return 50;
 if(px >= 50) return 20;
 if(px >= 15) return 5;
 return 2;
}
