
var myScroller1 = new Scroller(0, 0, 230, 300, 1, 2);
myScroller1.setColors("#626262", "#FFFFFF", "#FFFFFF");
myScroller1.setFont("verdana", 1);
myScroller1.addItem("<DIV align=center><IMG src=images/tickler/syngene.jpg><BR><B><A href=syngene/index.htm>Gel Documentation & Image Analysis System</A></B></DIV><BR><P align=justify>With over 16 years' experience and more than 50,000 scientists using our systems to enhance their research, SYNGENE is one of the world's leading experts in gel imaging, analysis and documentation.<BR><BR>");
myScroller1.addItem("<DIV align=center><IMG src=images/tickler/christ.jpg><BR><B><A href=christ/index.htm>Freeze Dryers</A></B></DIV><BR><P align=justify>Based on 50 years experience, Martin Christ offers a comprehensive range of products for both routine and specialized freeze-drying procedures. The diverse and laboratory-tested accessory line allows the basic unit to easily handle a variety of routine and advanced processes.<BR><BR>");
myScroller1.addItem("<DIV align=center><IMG src=images/tickler/dometic.jpg><BR><B><A href=dometic/index.htm>Medical Refrigeration </A></B></DIV><BR><P align=justify>Medical Refrigeration is the first range of refrigerators able to meet all needs related to the conservation of temperature-sensitive medical and pharmaceutical products. Its different products fulfill the requirements of laboratories, hospitals, blood banks, doctors and pharmacies.<BR><BR>");
myScroller1.addItem("<DIV align=center><IMG src=images/tickler/memmert.jpg><BR><B><A href=memmert/index.htm>CO<sub>2</sub>Incubators</A></B></DIV><BR><P align=justify>Through our innovative technical developments in heated ovens and incubators we have for more than 50 years been among the most successful manufacturers world wide.<BR><BR>");
myScroller1.addItem("<DIV align=center><IMG src=images/tickler/biochrom.jpg><BR><B><A href=biochrom/index.htm>Spectro Photometers</A></B></DIV><BR><P align=justify>Libra S21 and S22 are simple-to-use instruments with advanced performance, incorporating xenon lamp technology for longer source lifetime and lower maintenance costs.<BR><BR>");
myScroller1.addItem("<DIV align=center><IMG src=images/tickler/asys.jpg><BR><B><A href=asyshitech/index.htm>Microplate Reader & Washers</A></B></DIV><BR><P align=justify>The Expert Plus Microplate reader is a stand alone product that combines a large graphics display with easy to use yet powerful on-board software, making it ideal for use in any laboratory performing ELISA and other microplate assays.<BR><BR>");
myScroller1.addItem("<DIV align=center><IMG src=images/tickler/kinematica.jpg><BR><B><A href=kinematica/index.htm>Tissue Homogenizers</A></B></DIV><BR><P align=justify>The KINEMATICA rotor/stator technology is established in most laboratory, pilot plant and processing facilities and is today the standared for several different applications like: Dispersing, Homogenising, Emulsifying etc. <BR><BR>");
myScroller1.addItem("<DIV align=center><IMG src=images/tickler/ziegra.jpg><BR><B><A href=ziegra/index.htm>Ice Flaking Machines</A></B></DIV><BR><P align=justify>ZIEGRA Chip-Ice offers quick cooling through its large surface area to a temperature of exactly 0°C. The ice never freezes together, its is dry and granular and thus simple to handle. <BR><BR>");
myScroller1.addItem("<DIV align=center><IMG src=images/tickler/lte.jpg><BR><B><A href=lte/index.htm>Autoclaves & Sterlizers</A></B></DIV><BR><P align=justify>\"K\" models are LTE's top-line range and are designed to operate using either an integral stream generator situated beneath the chamber or the customer's own direct stream supply. To facilitate easy manoeuvrability and site positioning, all models are fitted with castors and will fit through a standard door.<BR><BR>");
myScroller1.addItem("<DIV align=center><IMG src=images/tickler/scie_plas.jpg><BR> <B><A href=scie-plas/index.htm>Gel Electrophoresis & Sequencing</A></B></DIV><BR><P align=justify>The Scie-Plus 'Green Range' of electrophoresis products has been designed by Scientists for Scientists over a period of several years. Scie-Plas is constantly incorporating new ideas into its products<BR><BR>");
myScroller1.addItem("<DIV align=center><IMG src=images/tickler/marvel.jpg><BR> <B><A href=marvel/index.htm>Under Counter & Counter Top Freezers</A></B></DIV><BR><P align=justify>Marvel Scientific is the leader in the design and manufacture of commercial tough refrigerators. Marvel Scientific refrigerators feature oversized power plants to maintain critical temperatures with uncompromising consistency.<BR><BR>");
function runmikescroll() {

  var layer;
  var mikex, mikey;

  layer = getLayer("placeholder");
  mikex = getPageLeft(layer);
  mikey = getPageTop(layer);

  var dump = run_image();

  myScroller1.create();
  myScroller1.hide();
  myScroller1.moveTo(mikex, mikey);
  myScroller1.setzIndex(100);
  myScroller1.show();
}

window.onload=runmikescroll


function Scroller(x, y, width, height, border, padding) {

  this.x = x;
  this.y = y;
  this.width = width;
  this.height = height;
  this.border = border;
  this.padding = padding;

  this.items = new Array();
  this.created = false;

  this.fgColor = "#000000";
  this.bgColor = "#F2F2F2";
  this.bdColor = "#000000";

  this.fontFace = "Arial,Helvetica";
  this.fontSize = "2";

  this.speed = 100;
  this.pauseTime = 2000;

  this.setColors = scrollerSetColors;
  this.setFont = scrollerSetFont;
  this.setSpeed = scrollerSetSpeed;
  this.setPause = scrollersetPause;
  this.addItem = scrollerAddItem;
  this.create = scrollerCreate;
  this.show = scrollerShow;
  this.hide = scrollerHide;
  this.moveTo = scrollerMoveTo;
  this.moveBy = scrollerMoveBy;
  this.getzIndex = scrollerGetzIndex;
  this.setzIndex = scrollerSetzIndex;
  this.stop = scrollerStop;
  this.start = scrollerStart;
}

function scrollerSetColors(fgcolor, bgcolor, bdcolor) {

  if (this.created) {
    alert("Scroller Error: Scroller has already been created.");
    return;
  }
  this.fgColor = fgcolor;
  this.bgColor = bgcolor;
  this.bdColor = bdcolor;
}

function scrollerSetFont(face, size) {

  if (this.created) {
    alert("Scroller Error: Scroller has already been created.");
    return;
  }
  this.fontFace = face;
  this.fontSize = size;
}

function scrollerSetSpeed(pps) {

  if (this.created) {
    alert("Scroller Error: Scroller has already been created.");
    return;
  }
  this.speed = pps;
}

function scrollersetPause(ms) {

  if (this.created) {
    alert("Scroller Error: Scroller has already been created.");
    return;
  }
  this.pauseTime = ms;
}

function scrollerAddItem(str) {

  if (this.created) {
    alert("Scroller Error: Scroller has already been created.");
    return;
  }
  this.items[this.items.length] = str;
}

function scrollerCreate() {

  var start, end;
  var str;
  var i, j;
  var x, y;

  if (!isMinNS4 && !isMinIE4)
    return;

  // On first scroller, start interval timer.

  if (scrollerList.length == 0)
    setInterval('scrollerGo()', scrollerInterval);

  // Create the scroller only once.

  if (this.created) {
    alert("Scroller Error: Scroller has already been created.");
    return;
  }
  this.created = true;

  this.items[this.items.length] = this.items[0];

  start = '<table border=0'
        + ' cellpadding=' + (this.padding + this.border)
        + ' cellspacing=0'
        + ' width=' + this.width
        + ' height=' + this.height + '>'
        + '<tr><td>'
        + '<font'
        + ' color="' + this.fgColor + '"'
        + ' face="' + this.fontFace + '"'
        + ' size=' + this.fontSize + '>';
  end   = '</font></td></tr></table>';

  if (isMinNS4) {
    this.baseLayer = new Layer(this.width);
    this.scrollLayer = new Layer(this.width, this.baseLayer);
    this.scrollLayer.visibility = "inherit";
    this.itemLayers = new Array();
    for (i = 0; i < this.items.length; i++) {
      this.itemLayers[i] = new Layer(this.width, this.scrollLayer);
      this.itemLayers[i].document.open();
      this.itemLayers[i].document.writeln(start + this.items[i] + end);
      this.itemLayers[i].document.close();
      this.itemLayers[i].visibility = "inherit";
    }

    setBgColor(this.baseLayer, this.bdColor);
    setBgColor(this.scrollLayer, this.bgColor);
  }

  if (isMinIE4) {
    i = scrollerList.length;
    str = '<div id="scroller' + i + '_baseLayer"'
        + ' style="position:absolute;'
        + ' background-color:' + this.bdColor + ';'
        + ' width:' + this.width + 'px;'
        + ' height:' + this.height + 'px;'
        + ' overflow:hidden;'
        + ' visibility:hidden;">\n'
        + '<div id="scroller' + i + '_scrollLayer"'
        + ' style="position:absolute;'
        + ' background-color: ' + this.bgColor + ';'
        + ' width:' + this.width + 'px;'
        + ' height:' + (this.height * this.items.length) + 'px;'
        + ' visibility:inherit;">\n';
    for (j = 0; j < this.items.length; j++) {
      str += '<div id="scroller' + i + '_itemLayers' + j + '"'
          +  ' style="position:absolute;'
          +  ' width:' + this.width + 'px;'
          +  ' height:' + this.height + 'px;'
          +  ' visibility:inherit;">\n'
          +  start + this.items[j] + end
          +  '</DIV>\n';
    }
    str += '</DIV>\n'
        +  '</DIV>\n';

    if (!isMinIE5) {
      x = getPageScrollX();
      y = getPageScrollY();
      window.scrollTo(getPageWidth(), getPageHeight());
    }
    document.body.insertAdjacentHTML("beforeEnd", str);
    if (!isMinIE5)
      window.scrollTo(x, y);

    this.baseLayer = getLayer("scroller" + i + "_baseLayer");
    this.scrollLayer = getLayer("scroller" + i + "_scrollLayer");
    this.itemLayers = new Array();
    for (j = 0; j < this.items.length; j++)
      this.itemLayers[j] = getLayer("scroller" + i + "_itemLayers" + j);
  }

  moveLayerTo(this.baseLayer, this.x, this.y);
  clipLayer(this.baseLayer, 0, 0, this.width, this.height);
  moveLayerTo(this.scrollLayer, this.border, this.border);
  clipLayer(this.scrollLayer, 0, 0,
            this.width - 2 * this.border, this.height - 2 * this.border);

  x = 0;
  y = 0;
  for (i = 0; i < this.items.length; i++) {
    moveLayerTo(this.itemLayers[i], x, y);
    clipLayer(this.itemLayers[i], 0, 0, this.width, this.height);
    y += this.height;
  }

  this.stopped = false;
  this.currentY = 0;
  this.stepY = this.speed / (1000 / scrollerInterval);
  this.stepY = Math.min(this.height, this.stepY);
  this.nextY = this.height;
  this.maxY = this.height * (this.items.length - 1);
  this.paused = true;
  this.counter = 0;

  // Add to global list.

  scrollerList[scrollerList.length] = this;

  // Display it.

  showLayer(this.baseLayer);
}

function scrollerShow() {

  if (this.created)
    showLayer(this.baseLayer);
}

function scrollerHide() {

  if (this.created)
    hideLayer(this.baseLayer);
}

function scrollerMoveTo(x, y) {

  if (this.created)
    moveLayerTo(this.baseLayer, x, y);
}

function scrollerMoveBy(dx, dy) {

  if (this.created)
    moveLayerBy(this.baseLayer, dx, dy);
}

function scrollerGetzIndex() {

  if (this.created)
    return(getzIndex(this.baseLayer));
  else
    return(0);
}

function scrollerSetzIndex(z) {

  if (this.created)
    setzIndex(this.baseLayer, z);
}

function scrollerStart() {

  this.stopped = false;
}

function scrollerStop() {

  this.stopped = true;
}

var scrollerList     = new Array();
var scrollerInterval = 20;

function scrollerGo() {

  var i;

  for (i = 0; i < scrollerList.length; i++) {

    if (scrollerList[i].stopped);

    else if (scrollerList[i].paused) {
      scrollerList[i].counter += scrollerInterval;
      if (scrollerList[i].counter > scrollerList[i].pauseTime)
        scrollerList[i].paused = false;
    }

    else {
      scrollerList[i].currentY += scrollerList[i].stepY;

      if (scrollerList[i].currentY >= scrollerList[i].nextY) {
        scrollerList[i].paused = true;
        scrollerList[i].counter = 0;
        scrollerList[i].currentY = scrollerList[i].nextY;
        scrollerList[i].nextY += scrollerList[i].height;
      }

      // When we reach the end, start over.

      if (scrollerList[i].currentY >= scrollerList[i].maxY) {
        scrollerList[i].currentY -= scrollerList[i].maxY;
        scrollerList[i].nextY = scrollerList[i].height;
      }
      scrollLayerTo(scrollerList[i].scrollLayer,
                    0, Math.round(scrollerList[i].currentY),
                    false);
    }
  }
}

var origWidth;
var origHeight;

if (isMinNS4) {
  origWidth  = window.innerWidth;
  origHeight = window.innerHeight;
}
window.onresize = scrollerReload;

function scrollerReload() {

  if (isMinNS4 && origWidth == window.innerWidth && origHeight == window.innerHeight)
    return;
  window.location.href = window.location.href;
}

