
var ticker_content = new Array();
ticker_content[0]  = new Array('&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Der Newsdienst der Affiliate-Marketing-Branche jetzt mit Kontingentsystem f&uuml;r Agenturen<br>', 'http://www.affiliatepr.de/kontingentinfo.shtml');
ticker_content[1]  = new Array('&Uuml;ber 900 qualifizierte Empf&auml;nger erhalten Ihre Meldung im Originaltext!<br>', 'http://www.affiliatepr.de/600_empfaenger.shtml');
ticker_content[2]  = new Array('Registrieren Sie sich f&uuml;r den kostenlosen Bezug des Newsdienstes. Kommen Sie in den Genuss, fr&uuml;her &uuml;ber relevante Themen und neue Partnerprogramme informiert zu sein, als Andere!', '');
/*ticker_content[3]  = new Array('Head<br>', 'Ziel-URL');
ticker_content[4]  = new Array('Head<br>', 'Ziel-URL');
ticker_content[5]  = new Array('Head<br>', 'Ziel-URL');
ticker_content[6]  = new Array('Head<br>', 'Ziel-URL');
ticker_content[7]  = new Array('Head<br>', 'Ziel-URL'); */

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;             }

  /*
   * 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') {

            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 + layers[i].getWidth() + ticker_spacing);
            ppp_layers[i].setTop(ticker_height/2 - ppp_layers[i].getHeight()/2);

            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+';height:'+ticker_height+';');
    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('  <div align="left" class="ticker" id="ticker'+i+'" ');
            d.write('       style="visibility:hidden;position:absolute;">');
            d.write('    <nobr><a href="'+href+'" target="_blank">'+txt+'</a></nobr>');
            d.write('  </div>');
            /* when in horizontal mode, draw the '+++' layers */
            d.write('  <div 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('  </div>');
        }
    }
    d.write('</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;
}

/*---------------------------------------------------------------------------------**/

    tick_speed       = ticker_speed;
    tick_width       = ticker_width;
    tick_height      = ticker_height;
    tick_bgcolor     = ticker_bgcolor;
    tick_bordercolor = ticker_bordercolor;
function show_ticker() { ticker_show('H'); }

