// get browser
var agent   = navigator.userAgent.toLowerCase(); 
var win2000 = ((agent.indexOf("winnt") != -1) || (agent.indexOf("windows nt 5.0") != -1)) ? true : false; 
var winXP   = ((agent.indexOf("winnt") != -1) || (agent.indexOf("windows nt 5.1") != -1)) ? true : false; 
var isIE    = (navigator.appName == "Microsoft Internet Explorer") ? true : false;

// -------------
// ticker object
// -------------

function Ticker(ticker_object, ticker_container) {
  this.ticker_object      = ticker_object;
  this.ticker_container   = ticker_container;

  this.speed              = (win2000 || winXP) ? 2 : 4;
  this.fade_time          = 60;
  this.initial_wait       = 0;
  this.wait_time          = 1000 * 8;
  this.current_item       = 0;

  this.more_label         = 'More';

  this.hold_ticker        = false;

  this.click_page_start   = null;
  this.click_page_end     = null;

  this.click_script_start = null;
  this.click_script_end   = null;

  this.ticker_item        = new Array();
}

Ticker.prototype.fade = function() {
  if (this.ticker_item[this.current_item].opacity > 0) {
    this.ticker_item[this.current_item].opacity -= 5;
    
    document.getElementById(this.ticker_container).style.opacity         = this.ticker_item[this.current_item].opacity / 101;
    document.getElementById(this.ticker_container).style['-moz-opacity'] = this.ticker_item[this.current_item].opacity / 101;
    if (isIE) {
      document.getElementById(this.ticker_container).filters.alpha.opacity = this.ticker_item[this.current_item].opacity;
    }

    setTimeout(this.ticker_object + ".fade();", this.fade_time);
  } else {
    // increment counter
    this.inc_current_item();

    this.init();
  }
}

Ticker.prototype.init = function() {
  // show first item
  this.populate_ticker();
  document.getElementById(this.ticker_container).style.opacity         = 100;
  document.getElementById(this.ticker_container).style['-moz-opacity'] = 100;
  if (isIE) {
    document.getElementById(this.ticker_container).filters.alpha.opacity = 100;
  }
  
  // set scroll timer
  setTimeout(this.ticker_object + ".fade();", this.wait_time + this.initial_wait);
  this.initial_wait = 0;
}

Ticker.prototype.populate_ticker = function() {
  this.ticker_item[this.current_item].opacity = 100;

  if (this.ticker_item[this.current_item].link) {
    document.getElementById(this.ticker_container + "_title").innerHTML = '<a href="' + this.ticker_item[this.current_item].link + '">'
                                                                        + this.ticker_item[this.current_item].title;
                                                                        + '</a>';
  } else {
    document.getElementById(this.ticker_container + "_title").innerHTML = '<strong>' + this.ticker_item[this.current_item].title + '</strong>';
  }

  document.getElementById(this.ticker_container + "_body").innerHTML  = this.ticker_item[this.current_item].body;

  if (this.ticker_item[this.current_item].link) {
    document.getElementById(this.ticker_container + "_more").innerHTML = '<a href="' + this.ticker_item[this.current_item].link + '">'
                                                                       + this.more_label;
                                                                       + '</a>';
  } else {
    document.getElementById(this.ticker_container + "_more").innerHTML = '';
  }

}

Ticker.prototype.inc_current_item = function() {
  if (this.current_item == this.ticker_item.length - 1) {
    this.current_item = 0;
  } else {
    this.current_item++;
  }
}

Ticker.prototype.click_page = function() {
  document.location.href = this.click_page_start + this.ticker_item[this.current_item].id + this.click_page_end;
}

Ticker.prototype.click_script = function() {
  eval(this.click_script_start + this.ticker_item[this.current_item].id + this.click_script_end);
}

Ticker.prototype.stop_ticker = function() {
  this.hold_ticker = true;
}

Ticker.prototype.start_ticker = function() {
  this.hold_ticker = false;
}
