var browser;
var version;
var width;

var dev = false;

var ns = false;
var ff = false;
var ie = false;
var ie6 = false;
var ie7 = false;

var move_len = 1;

var pageFirstLoaded = new Date();
var refreshTicker = true;
var timeout = 3600000;
setTimeout("refreshTicker = false", timeout);

function findBrowserVersion(){
  var name = navigator.appName;
  var agent = navigator.userAgent;
  var version = navigator.appVersion;
  var ver;
  if( name.indexOf('Explorer') > -1 ){
    ie = true;
    // IE
    var parts = version.split('MSIE');
    ver = parseFloat(parts[1]);

    if( ver == 7 ) ie7 = true;
    else if( ver == 6) ie6 = true;

  } else if( name.indexOf('Netscape') > -1 ){
    ns = true;
    if( agent.indexOf('Firefox') >= -1 ){
      name = "Firefox";
      var parts = agent.split('Firefox/');
      ver = parseFloat(parts[1]);
    } else {
      ver = parseFloat(version);
    }
  }

  if( dev ){
    $('browser').value = name + ": " + version;
  }

}

function resetPos(){
  setLeft(getContent(), getOffsetWidth(getScroll()));
  width = getOffsetWidth(getScroll());
}

function updateContent(){
  if (refreshTicker) {
	url = 'ticker.php?ticker_content=1';
	new Ajax.Updater('ticker_content_div', url, { method: 'get' });
  } else {
	document.getElementById('ticker_content_div').innerHTML = '';
  }
  if( dev ){
    $('dim').value = url;
  }
}

function getLeft(e){
  return parseInt(e.style.left);
}
function setLeft(e, i){
  return e.style.left = i+"px";
}
function getScrollWidth(e){

  return e.scrollWidth;
}
function getOffsetWidth(e){
  return e.offsetWidth;
}


function getContent(){
  return $('ticker_content_div');
}
function getScroll(){
  return $('ticker_scroller_div');
}

function move(){
  var content = getContent();
  var scroll = getScroll();

  setLeft(content, getLeft(content) - move_len);
}

function move_ticker(timeout){
  setTimeout("move_ticker(" + timeout + ")", timeout);

  var content = getContent();
  if( (getLeft(content) + width) < 0 ){
    updateContent();
    resetPos();
  } else if( getLeft(content) == 0 ){
    var scroll = getScroll();
    width = getScrollWidth(scroll);
  }
  move();

  if( dev ){
    $('pos').value = getLeft(content)+": "+new Date();
  }
}

function init_puzzle(s, o, m, b){

	if(!contentIsLoaded() || !newsIsLoaded()) { // Wait until content and news bar are fully loaded
		window.setTimeout('init_puzzle('+s+', '+o+', '+m+', '+b+')', 400);
		return;
	}
	
  $('the_puzzle').innerHTML =
    '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="880" height="241" id="puzzle" align="middle">'+
    '<param name="allowScriptAccess" value="sameDomain" />'+
    '<param name="movie" value="puzzle.swf" />'+
    '<param name="quality" value="high" />'+
    '<param name="bgcolor" value="#ffffff" />'+
    '<param name="FlashVars" value="value1='+b+'&value2='+m+'&value3='+o+'&value4='+s+'"/>'+
    '<embed src="puzzle.swf" FlashVars="value1='+b+'&value2='+m+'&value3='+o+'&value4='+s+'" quality="high" bgcolor="#ffffff" width="880" height="241" name="puzzle" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />'+
    '</object>';
}

function init_ticker(interval, s, o, m, b){
  findBrowserVersion();

  if(useflash) {
//    init_ticker_flash(interval);
  }
//  else {
    init_ticker_js(interval);
//  }
    init_puzzle(s, o, m, b);
}

function init_ticker_js(interval) {
  if( !ie ){
    var old = interval;
    interval = Math.round(interval*1.4);
//    alert(old+"-"+interval);
  }
  getScroll().style.left = ie?(ie7?'118px':'117px'):"0px";
  getContent().style.left = "0px";

  updateContent();
  resetPos();

  move_ticker(interval);
}

function init_ticker_flash(interval) {
  url = 'ticker.php?useflash=1';
  new Ajax.Updater('ticker_bar', url, { method: 'get' });
}