function myfunc(id) {
  var el = $("#" + id);
  el.addClass("scroll");
  var leftPos = 0;
  // Remove any non-li elements
  for (i = 0; i < el[0].childNodes.length; i++) {
    if (el[0].childNodes[i].tagName != "LI") {
      el[0].removeChild(el[0].childNodes[i]);
      i--;
    }
  }
  $(el).find("li").each(function() {
    this.style.left = leftPos + "px";
    leftPos += getDimensions(this).width + 50;
  });
  
  intervalID = setInterval("animate('" + id + "')", 75);
  //setTimeout("animate('" + id + "')", 1000);
}

function animate(id) {
  var el = $("#" + id);
  // Move all childen left 1
  $(el).find("li").each(function() {
    this.style.left = parseInt(this.style.left) - 1 + "px";
    myWidth = getDimensions(this).width + 50;
    if (parseInt(this.style.left) < (0 - myWidth)) {
      var leftPos = 0;
      // We have gone out of view, move us to the end
      if (this.nextSibling) {
        var next = this.nextSibling
        while (next) {
          leftPos += getDimensions(next).width + 50;
          next = next.nextSibling;
        }
      }
      if (this.previousSibling) {
        var previous = this.previousSibling;
        while (previous) {
          leftPos += getDimensions(previous).width + 50;
          previous = previous.previousSibling;
        }
      }
      this.style.left = leftPos + "px";      
    }
  });
}

function getDimensions (obj) {
  // All *Width and *Height properties give 0 on elements with display none,
  // so enable the element temporarily
  var objStyle = obj.style;
  var originalVisibility = objStyle.visibility;
  var originalDisplay = objStyle.display;
  objStyle.visibility = "hidden";
  objStyle.display = "block";
  var originalWidth = obj.clientWidth;
  var originalHeight = obj.clientHeight;
  objStyle.display = originalDisplay;
  objStyle.visibility = originalVisibility;
  return {width: originalWidth, height: originalHeight};
}
