/*
 +-------------------------------------------------------------------+
 |                     J S - T I C K E R   (v1.4)                    |
 |                                                                   |
 | Copyright Gerd Tentler               www.gerd-tentler.de/tools    |
 | Created: Oct. 20, 2004               Last modified: Jan. 26, 2007 |
 +-------------------------------------------------------------------+
 | This program may be used and hosted free of charge by anyone for  |
 | personal purpose as long as this copyright notice remains intact. |
 |                                                                   |
 | Obtain permission before selling the code for this program or     |
 | hosting this software on a commercial website or redistributing   |
 | this software over the Internet or in any other medium. In all    |
 | cases copyright must remain intact.                               |
 +-------------------------------------------------------------------+
======================================================================================================
*/
//---------------------------------------------------------------------------------------------------------
// Ticker entries
//---------------------------------------------------------------------------------------------------------
//
var tickerEntries = new Array();

//---------------------------------------------------------------------------------------------------------
// Configuration
//---------------------------------------------------------------------------------------------------------

var tickerWidth = 800;                               // width (pixels)
var tickerMargin = 0;                               // margin (pixels)
var tickerDelay = 20;                                // scrolling delay (smaller = faster)
var tickerSpacer = "     ";                            // spacer between ticker entries

var tickerBGColor = "transparent";                       // background color
var tickerHLColor = "transparent";                       // hilight (mouse over) color

var tickerFont = "Arial, Helvetica, sans-serif";  // font family (CSS-spec)
var tickerFontSize = 11;                             // font size (pixels)
var tickerFontColor = "red";                        // font color

var tickerBorderWidth = 0;                           // border width (pixels)
var tickerBorderStyle = "solid";                    // border style (CSS-spec)
var tickerBorderColor = "#1e1e1e";                   // border color

//---------------------------------------------------------------------------------------------------------
// Functions
//---------------------------------------------------------------------------------------------------------

var DOM = document.getElementById;
var IE4 = document.all;

var tickerIV, tickerID;
var tickerItems = new Array();
var tickerHeight = tickerFontSize + 8;

function tickerGetObj(id) {
  if(DOM) return document.getElementById(id);
  else if(IE4) return document.all[id];
  else return false;
}

function tickerObject(id) {
  this.elem = tickerGetObj(id);
  this.width = this.elem.offsetWidth;
  this.x = tickerWidth;
  this.css = this.elem.style;
  this.css.width = this.width + 'px';
  this.css.left = this.x + 'px';
  this.move = false;
  return this;
}

function tickerNext() {
  if(!DOM && !IE4) return;
  var obj = tickerItems[tickerID];
  obj.x = tickerWidth;
  obj.css.left = tickerWidth + 'px';
  obj.move = true;
}

function tickerMove() {
  if(!DOM && !IE4) return;
  for(var i = 0; i < tickerItems.length; i++) {
    if(tickerItems[i].move) {
      if(tickerItems[i].x > -tickerItems[i].width) {
        tickerItems[i].x -= 2;
        tickerItems[i].css.left = tickerItems[i].x + 'px';
      }
      else tickerItems[i].move = false;
    }
  }
  if(tickerItems[tickerID].x + tickerItems[tickerID].width <= tickerWidth) {
    tickerID++;
    if(tickerID >= tickerItems.length) tickerID = 0;
    tickerNext();
  }
}

function tickerStart(init) {
  if(!DOM && !IE4) return;
  if(tickerBGColor) {
    var obj = tickerGetObj('divTicker');
    obj.style.backgroundColor = tickerBGColor;
  }
  if(init) {
    tickerID = 0;
    tickerNext();
  }
  tickerIV = setInterval('tickerMove()', tickerDelay);
}

function tickerStop() {
  if(!DOM && !IE4) return;
  clearInterval(tickerIV);
  if(tickerHLColor) {
    var obj = tickerGetObj('divTicker');
    obj.style.backgroundColor = tickerHLColor;
  }
}

function tickerInit( id ) {
  if(!DOM && !IE4) return;
  for(var i = 0; i < tickerEntries.length; i++) {
    tickerItems[i] = new tickerObject('divTickerEntry' + (i+1));
  }
  var obj = tickerGetObj(id);
  obj.style.width = tickerWidth + 'px';
  obj.style.visibility = 'visible';
  tickerStart(true);
}

function tickerReload() {
  if(!DOM && !IE4) return;
  document.location.reload();
}

function startTicker( id , te ) {
	tickerEntries = te;
	//---------------------------------------------------------------------------------------------------------
	// Build ticker
	//---------------------------------------------------------------------------------------------------------

	var s=('<div class="cssTickerContainer">' +
				   '<div id="divTicker" onMouseOver="tickerStop()" onMouseOut="tickerStart()">');

	for(var i = 0; i < tickerEntries.length; i++) {
	  s+=('<div id="divTickerEntry' + (i+1) + '" class="cssTickerEntry" ' +
					 'style="position:absolute; top:0px; white-space:nowrap">' +
					 tickerEntries[i] + ((tickerEntries.length > 1) ? ' ' + tickerSpacer + '&nbsp;' : '') +
					 '</div>');
	}
	s+=('</div></div>');
	document.getElementById( id ).innerHTML = s;
	tickerInit( id  );
}

//---------------------------------------------------------------------------------------------------------
