timer=[]
scrimgs=[]
lasttime=0
spm=1
tw=[]

function gettw(clss) {
  tags = ["img","div"];
  test=[];

  for ( var tag in tags ) {
    imgs=document.getElementsByTagName(tags[tag]);  
    for (y=0;y<imgs.length;y++) {
      im = imgs[y];
      if (im.className == clss) {
        if (im.tagName.toLowerCase()=="img" && !im.complete) {  // IMG not loaded will throw-off width calc.
          tw[clss]=0;
          scrimgs=[]
          break;break;
        } else {
          im.left=0;
          if (!tw[im.className]) tw[im.className]=0;
          im.cw=tw[im.className];
          if (!scrimgs[im.className]) {
            scrimgs[im.className]=[];
          }
          scrimgs[im.className][scrimgs[im.className].length] = im;
          tw[im.className]=tw[im.className]+im.offsetWidth;
          test[im.className] += "-" + im.offsetWidth;
        }
      }
    }
  }
}

function scroll(clss,scram) {
  if (!tw[clss]) {
      gettw(clss);
  }
  if (tw[clss]>0) {
    y=1;
    for (y=0;y<scrimgs[clss].length;y++) {
      //document.getElementById('debug').value += y;
      im = scrimgs[clss][y];
      im.left = im.left + scram;
      if (scram > 0 && im.cw + im.offsetWidth + im.left > tw[clss]) {
        im.left = im.left-tw[clss];
      } else if (scram < 0 && im.cw + im.offsetWidth + im.left < 0) {
        im.left = im.left+tw[clss];
      }
      im.style.left = im.left + "px";
    }
    //document.getElementById('debug').value += "\n";
  }
}

function scrolladj(clss,scram,ms) {
  d = new Date();
  if (lasttime > 0) {
    spm=Math.max(Math.min((d.getTime()-lasttime)/ms,5),1);
  } else {
    spm=1
  }
  lasttime = d.getTime();
  scroll(clss,scram*spm);
  timer[clss]=setTimeout('scrolladj("'+clss+'",'+scram+','+ms+')',ms);
}

function scrollpic(clss,dr,count) {
  if (count >= 1) {
    scroll(clss,dr);
    if (tw[clss] != 0) count--;
    setTimeout('scrollpic("'+clss+'",'+dr+','+count+')',10);
  }
}

svals=[];
function startscroll(clss,dr,ms) {
  clearInterval(timer[clss]);
  timer[clss]=setTimeout('scrolladj("'+clss+'",'+dr+','+ms+')',ms);
  svals[clss]= [dr,ms];
}

function stopscroll(clss) {
  lasttime=0;
  svals[clss]=[]
  clearInterval(timer[clss]);
}

function pausescroll() {
  for(cls in svals) {
    clearInterval(timer[cls]);
  }
}

function unpausescroll() {
  for(cls in svals) {
    startscroll(cls,svals[cls][0],svals[cls][1]);
  }
}

var autoscrtimer;
function autoscr(clss,size,int) {
  if (autoscrtimer) clearTimeout(autoscrtimer);
  autoscrtimer=setTimeout('scrollpic("'+clss+'",'+(0-size)/10+',10);autoscr("'+clss+'",' + size + ',' + int + ');',int);
}
