function getObj(name) {
  if (document.getElementById) {
    this.obj = document.getElementById(name);
    this.style = document.getElementById(name).style;
  } else if(document.all) {
    this.obj = document.all[name];
    this.style = document.all[name].style;
  } else if(document.layers) {
    this.obj = document.layers[name];
    this.style = document.layers[name];
  }
}

function isArray(obj) {
   if (obj.constructor.toString().indexOf("Array") == -1)
      return false;
   else
      return true;
}

var scroller = new Array();

function createScroller(obj, a, b, c, d) {
	scroller[obj] = null;
  scroller[obj] = new Array();
  scroller[obj]["clipTop"] = a;
  scroller[obj]["clipBottom"] = b;
  scroller[obj]["clipWidth"] = c;
  scroller[obj]["topper"] = d;
  scroller[obj]["lyrheight"] = 0;
  scroller[obj]["time"] = null;
  scroller[obj]["amount"] = 0;
  scroller[obj]["theTime"] = null;
  scroller[obj]["theHeight"] = null;
  scroller[obj]["DHTML"] = null;
  prepareScroll(obj);
}

function prepareScroll(obj)
{
  var sc = scroller[obj];
  sc["DHTML"] = (document.getElementById || document.all || document.layers)
  if (!sc["DHTML"]) return;
  var x = new getObj(obj);
  if (document.layers)
  {
    sc["lyrheight"] = x.style.clip.bottom;
    sc["lyrheight"] += 20;
    x.style.clip.top = sc["clipTop"];
    x.style.clip.left = 0;
    x.style.clip.right = sc["clipWidth"];
    x.style.clip.bottom = sc["clipBottom"];
  }
  else if (document.getElementById || document.all)
  {
    sc["lyrheight"] = x.obj.offsetHeight;
    if(IE) {
      x.style.clip = 'rect('+ 0 +'px '+ sc["clipWidth"] +'px '+ sc["clipBottom"] +'px 0)';
    } else {
      x.style.clip = 'rect('+ 0 +'px,'+ sc["clipWidth"] +'px,'+ sc["clipBottom"] +'px,0)';
    }
  }
}

function scrollayer(layername,amt,tim)
{
  var sc = scroller[layername];
  if (!sc["DHTML"]) return;
  sc["thelayer"] = new getObj(layername);
  if (!sc["thelayer"]) return;
  sc["amount"] = amt;
  sc["theTime"] = tim;
  realscroll(layername);
}

function realscroll(obj)
{
  var sc = scroller[obj];
  if (!sc["DHTML"]) return;
  sc["clipTop"] += sc["amount"];
  sc["clipBottom"] += sc["amount"];
  sc["topper"] -= sc["amount"];
  if (sc["clipTop"] < 0 || sc["clipBottom"] > sc["lyrheight"])
  {
    sc["clipTop"] -= sc["amount"];
    sc["clipBottom"] -= sc["amount"];
    sc["topper"] += sc["amount"];
    return;
  }
  if (document.getElementById || document.all)
  {
    if(IE) {
      clipstring = 'rect('+sc["clipTop"]+'px '+ sc["clipWidth"] +'px '+sc["clipBottom"]+'px 0)';
    } else {
      clipstring = 'rect('+sc["clipTop"]+'px,'+ sc["clipWidth"] +'px,'+sc["clipBottom"]+'px,0)';
    }
    sc["thelayer"].style.clip = clipstring;
    sc["thelayer"].style.top = sc["topper"] + 'px';
  }
  else if (document.layers)
  {
    sc["thelayer"].style.clip.top = sc["clipTop"];
    sc["thelayer"].style.clip.bottom = sc["clipBottom"];
    sc["thelayer"].style.top = sc["topper"];
  }
  sc["time"] = setTimeout('realscroll("' + obj + '")',sc["theTime"]);
}

function stopScroll(obj)
{
  var sc = scroller[obj];
  if (sc["time"]) clearTimeout(sc["time"]);
}
