var ticker_content = [["Schadenersatz f\u00fcr Anleger wegen fehlerhafter Beratung","http:\/\/www.pressebox.de\/?boxid=363392"],["Jetzt werden Logistikabl\u00e4ufe optimiert, denn die Zukunft ist schon da!","http:\/\/www.pressebox.de\/?boxid=363390"],["OCR for AnyDoc\u00ae Named Best Channel Product by Business Solutions","http:\/\/www.pressebox.de\/?boxid=363391"],["Vakuumheber mit Mobilit\u00e4tsgarantie - effektives Heben und Bewegen mit einzigartiger, patentierter Vakuumtechnik","http:\/\/www.pressebox.de\/?boxid=363389"],["Tagt\u00e4gliche Logistikaufgaben m\u00fcssen kontinuierlich optimiert  und Arbeitsmittel folgerichtig verbessert werden","http:\/\/www.pressebox.de\/?boxid=363388"],["Sie k\u00f6nnen es drehen und wenden wie Sie wollen!","http:\/\/www.pressebox.de\/?boxid=363387"],["Das Kommissionieren und Positionieren schwerer Lasten muss sicherer, flexibler und vor allem leichter werden!","http:\/\/www.pressebox.de\/?boxid=363386"],["Perfektes, anstrengungsfreies Hantieren von Lasten","http:\/\/www.pressebox.de\/?boxid=363385"],["LRP Energy Power Fuel 16% und 25% - 3.5 Liter","http:\/\/www.pressebox.de\/?boxid=363384"],["Auf die Produktivit\u00e4t und Ergonomie darf auch in kritischen Zeiten nicht verzichtet werden","http:\/\/www.pressebox.de\/?boxid=363383"]];

/*-----------------------------------------------------------------------------------**/

/*
 * !!! URHEBERRECHTLICH GESCHÜTZTES SCRIPT !!!
 *
 * Dieses Script ist Eigentum des Huber Verlag für Neue Medien GmbH
 * jedwede Verwendung für privaten oder geschäftlichen Gebrauch
 * außerhalb der Nutzung als PresseBox Presse-Ticker bedarf der
 * schriftlichen Zustimmung des Verlages.
 */
var ticker_width        = 300;          /* Breite des Tickers in Pixel                */
var ticker_height       = 30;           /* Hoehe des Tickers in Pixel                 */
var ticker_bgcolor      = '#ffffff';    /* Hintergrundfarbe                           */
var ticker_border       = 1;            /* Rahmendicke in Pixel                       */
var ticker_offset       = 3;            /* Abstand Rahmen/Text in Pixel               */
var ticker_bordercolor  = '#000000';    /* Rahmenfarbe Hex.                           */
var ticker_spacing      = 15;           /* Abstand zw. 2 Nachrichten in Pixel         */
var ticker_spacer_color = '#4D8200';    /* Schriftfarbe Trenner +++ bei horiz. Ticker */
var ticker_type         = 'V';          /* Tickertyp: Vertikal 'V',  Horizontal 'H'   */
var ticker_wait         = 3;            /* Wartezeit bei Mittelstellung in s          */
var ticker_speed        = 5;            /* Tickergeschwindigkeit: 1 - sehr langsam,
                                           10 - sehr schnell                          */

/*-----------------------------------------------------------------------------------**/

/* Globals */
var layers       = new Array();
var ppp_layers   = new Array();
var ticker_dontscroll;

/*-----------------------------------------------------------------------------------**/

function TickLayer(name)
{
  /*
   * Get/Set
   */
  this.getTop     = function()  { return this.top;                 }
  this.setTop     = function(t) { this.top = t;                    }
  this.getLeft    = function()  { return this.left;                }
  this.setLeft    = function(l) { this.left = l;                   }
  this.getWidth   = function()  { return this.width;               }
  this.getHeight  = function()  { return this.height;              }
  this.setVisible = function(b) { this.visible = (b ? true:false); }
  this.getVisible = function()  { return this.visible;             }
  this.getLayer   = function()  { return this.layer;               }

  /*
   * Member functions
   */

  this.find_obj =
    function(name, doc)
    {
      var i, obj;

      if(!doc) {
    doc = document;
      }
      if(!(obj = doc[name]) && doc.all) {
    obj = doc.all[name];
      }
      for(i=0; !obj && doc.layers && i < doc.layers.length; i++) {
    obj = this.find_obj(name, doc.layers[i].document);
      }
      if(!obj && doc.getElementById) {
    obj = doc.getElementById(name);
      }
      return obj;
    }

  this.isVerticallyCentered =
    function()
    {
      return this.top + Math.round(this.height/2) == Math.round(ticker_height/2);
    }

  this.isHorizontallyCentered =
    function()
    {
      return this.left + Math.round(this.width/2) == Math.round(ticker_width/2);
    }

  this.update =
    function()
    {
      /* update X/Y */
      var l = this.layer;
      if(typeof l.style     != 'undefined' &&
         typeof l.style.top != 'undefined' && typeof l.style.left != 'undefined') {
        l.style.top  = this.top+'px';
        l.style.left = this.left+'px';
    l.style.visibility = (this.visible ? 'visible':'hidden');
        return;
      }
      if(typeof l.style          != 'undefined' &&
         typeof l.style.pixelTop != 'undefined' && typeof l.style.pixelLeft != 'undefined') {
    l.style.pixelTop  = this.top;
    l.style.pixelLeft = this.left;
    l.style.visibility = (this.visible ? 'visible':'hidden');
    return;
      }
      if(typeof l.x != 'undefined' && typeof l.y != 'undefined') {
        l.x = this.left;
        l.y = this.top;
    l.style.visibility = (this.visible ? 'show':'hidden');
        return;
      }
    }

  this.dump =
    function()
    {
      return String('['+this.name+']: t/l: '+this.top+'/'+this.left+' w/h: '+this.width+'/'+this.height);
    }

  /* instance construction */
  if(!(this.layer  = this.find_obj(name))) {
    return;
  }

  /* get top/left */
  var l = this.layer;
  if(typeof l.style      != 'undefined' &&
     typeof l.style.top  != 'undefined' &&
     typeof l.style.left != 'undefined') {

    this.top  = parseInt(l.style.top);
    this.left = parseInt(l.style.left);

  } else if(typeof l.style           != 'undefined' &&
            typeof l.style.pixelTop  != 'undefined' &&
            typeof l.style.pixelLeft != 'undefined') {

    this.top  = parseInt(l.style.pixelTop);
    this.left = parseInt(l.style.pixelLeft);

  } else if(typeof l.x != 'undefined' &&
            typeof l.y != 'undefined') {

    this.top  = l.y;
    this.left = l.x;
  }

  /* get width/height */
  if (typeof l.offsetWidth  != 'undefined' &&
      typeof l.offsetHeight != 'undefined') {

    this.width  = parseInt(l.offsetWidth);
    this.height = parseInt(l.offsetHeight);

  } else if(typeof l.style             != 'undefined' &&
            typeof l.style.pixelWidth  != 'undefined' &&
            typeof l.style.pixelHeight != 'undefined') {

    this.width  = parseInt(l.style.pixelWidth);
    this.height = parseInt(l.style.pixelHeight);

  } else if (typeof l.document        != 'undefined' &&
             typeof l.document.width  != 'undefined' &&
             typeof l.document.height != 'undefined') {

    this.width  = l.document.width;
    this.height = l.document.height;
  }

  /* Set Visibility to true initially */
  this.visible = true;
}

/*-----------------------------------------------------------------------------------**/

function ticker_init_scroll()
{
  /* set initial layer position
     according to ticker_spacing, set up global
     layers array */
  var pos_top  = 0;
  var pos_left = 0;

  for(var i=0; i < ticker_content.length; i++) {
      
    /* create layer object */
    layers[i] = new TickLayer('ticker'+i);

    if(ticker_type == 'V') {

      layers[i].setLeft(5);
      layers[i].setTop(pos_top);
      pos_top += layers[i].getHeight() + ticker_spacing;

      layers[i].update();

      layers[i].setVisible(true);
        
    } else if(ticker_type == 'H') {

      /*  workaround for gecko */
      layers[i].getLayer().style.position = 'absolute';
      layers[i].setLeft(pos_left);
      layers[i].setTop(ticker_height/2 - layers[i].getHeight()/2);

      /* when in horizontal mode, create the '+++' layers */
      ppp_layers[i] = new TickLayer('ticker'+i+'_ppp');
      ppp_layers[i].setLeft(pos_left);
      ppp_layers[i].setTop(ticker_height/2 - ppp_layers[i].getHeight()/2);

      /*  workaround for gecko */
      ppp_layers[i].getLayer().style.position = 'absolute';
      pos_left += layers[i].getWidth() + 2 * ticker_spacing + ppp_layers[i].getWidth();

      layers[i].update();
      ppp_layers[i].update();

      layers[i].setVisible(true);
      ppp_layers[i].setVisible(true);
    }
  }
  ticker_scroll();
}

function ticker_scroll()
{
  var min_index = 0;
  var max_index = 0;
  var pause     = false;
  var timeout   = Math.round(101 - 10 * Math.min(ticker_speed, 10));

  /* return if ticker is halted */
  if(ticker_dontscroll) {
    setTimeout('ticker_scroll()', timeout);
    return;
  }

  /* determine inices for uppermost/lowermost layers */
  for(var i=0; i < layers.length; i++) {

    if(ticker_type == 'V') {

      /* vertical min/max */
      if(layers[i].getTop() < layers[min_index].getTop())
    min_index = i;
      if(layers[i].getTop() > layers[max_index].getTop())
    max_index = i;

    } else if(ticker_type == 'H') {

      /* horizontal min/max */
      if(layers[i].getLeft() < layers[min_index].getLeft())
    min_index = i;
      if(layers[i].getLeft() > layers[max_index].getLeft())
    max_index = i;
    }
  }

  /* update layers positions */
  var i = min_index;
  do {

    if(ticker_type == 'V') {

      /* lowermost layer has become visible;
       * queue the uppermost layer below it. */
      if(i == max_index && layers[i].getTop() < ticker_height) {
    layers[min_index].setTop(layers[i].getTop() + layers[i].getHeight() + ticker_spacing);
      }
      layers[i].setTop(layers[i].getTop() - 1);
      layers[i].setVisible(layers[i].getTop() + layers[i].getHeight() > 0);

      if(layers[i].getVisible()) {
    layers[i].update();
      }

    } else if(ticker_type == 'H') {
        
      /* leftmost layer has become completely invisible;
     queue it on the very right
     when in horizontal mode, also move the '+++' layers */
      if(i == min_index && layers[i].getLeft() + layers[i].getWidth() < 0) {

    layers[i].setLeft(layers[max_index].getLeft() + layers[max_index].getWidth() +
              2 * ticker_spacing + ppp_layers[max_index].getWidth());

    max_index = i;
    min_index = (i != layers.length - 1 ? i + 1 : 0);
      }

      if(i == min_index) {
    layers[i].setLeft(layers[i].getLeft() - 1);
      } else {
    var prev = (i != 0 ? i - 1 : layers.length - 1);
    layers[i].setLeft(layers[prev].getLeft() + layers[prev].getWidth() + 2 * ticker_spacing + ppp_layers[prev].getWidth());
      }

      ppp_layers[i].setLeft(layers[i].getLeft() - ppp_layers[i].getWidth() - ticker_spacing);
      layers[i].setVisible(layers[i].getLeft() < ticker_width);
      ppp_layers[i].setVisible(ppp_layers[i].getLeft() < ticker_width);

      if(layers[i].getVisible()) {
    layers[i].update();
      }
      if(ppp_layers[i].getVisible()) {
    ppp_layers[i].update();
      }
    }

    /* if current layers is now exactly in the middle of the box,
       use a longer timeout to give the user the chance to
       klick the link */
    if((ticker_type == 'V' && layers[i].isVerticallyCentered()) ||
       (ticker_type == 'H' && layers[i].isHorizontallyCentered())) {
      pause = true;
    }

    if(i < layers.length-1)
      i++;
    else i = 0;

  } while(i != min_index);

  if(pause) {
    setTimeout('ticker_scroll()', ticker_wait * 1000);
  } else { 
    setTimeout('ticker_scroll()', timeout);
  } 
}

function ticker_drawlayers()
{
  var d = document;
  
  d.write('<div style="position:relative;overflow:hidden;width:'+(ticker_width/*-reducewidth*/)+';height:'+(ticker_height/*-reduceheight*/)+';');
  d.write('            clip:rect(0 '+ticker_width+' '+ticker_height+' 0);" ');
  d.write('     onMouseover="ticker_dontscroll=true;" onMouseout="ticker_dontscroll=false;">');

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

    var txt  = ticker_content[i][0];
    var href = ticker_content[i][1];

    /* layers for vertical scrolling */
    if(ticker_type == 'V') {

      d.write('  <div align="center" class="ticker" id="ticker'+i+'" ');
      d.write('       style="visibility:hidden;position:absolute;width:'+(ticker_width-10)+'px;">');
      d.write('    <a href="'+href+'" target="_blank">'+txt+'</a>');
      d.write('  </div>');

    } else if(ticker_type == 'H') {

      /* layers for horizontal scrolling */
      d.write('  <span align="left" class="ticker" id="ticker'+i+'" ');
      d.write('       style="width:auto;visibility:hidden;position:relative;">');
      d.write('    <nobr><a href="'+href+'" target="_blank">'+txt+'</a></nobr>');
      d.write('  </span>');
      /* when in horizontal mode, draw the '+++' layers */
      d.write('  <span align="left" class="ticker" id="ticker'+i+'_ppp" ');
      d.write('       style="visibility:hidden;position:absolute;">');
      d.write('    <nobr><font color="'+ticker_spacer_color+'">+++</font></nobr>');
      d.write('  </span>');
    }
  }
  d.write('</div>');
  
  if (ticker_type == 'V') {  
    d.write('     <div class="ticker" style="margin-top:2px;line-height:22px; vertical-align:bottom; height:22px;">&nbsp;<a href="http://www.pressebox.de">www.PresseBox.de</a></div> ');
  }
}

function ticker_show(type)
{
  ticker_type = type.toUpperCase();
  var d       = document;

  d.open();

  d.write('<table border="0" cellspacing="0" cellpadding="'+ticker_border+'">');
  d.write(' <tr>');
  d.write('  <td bgcolor="'+ticker_bordercolor+'">');
  d.write('   <table border="0" cellspacing="0" cellpadding="'+ticker_offset+'">');
  d.write('    <tr>');
  d.write('     <td width="'+(ticker_width)+'" height="'+ticker_height+'" bgcolor="'+ticker_bgcolor+'">');

  ticker_drawlayers();

  d.write('     </td>');
  d.write('    </tr>');
  d.write('   </table>');
  d.write('  </td>');
  d.write(' </tr>');
  d.write('</table>');

  d.close();
  window.onload = ticker_init_scroll;
}

/* translating old variable names: --------------------------------------------------**/
tick_speed       = ticker_speed;
tick_width       = ticker_width;
tick_height      = ticker_height;
tick_bgcolor     = ticker_bgcolor;
tick_bordercolor = ticker_bordercolor;

/* starting the ticker: -------------------------------------------------------------**/
function show_ticker() { ticker_show('V'); }
