// JavaScript Document
var currentStory = 0;
var maxStories;

var FADE_TIME = 550.0;
var TimeToFade = FADE_TIME;
var FadeTimer;
var pausedWithButton = false;

function fade(eid, fadeOut)
{
  var element = document.getElementById(eid);
  if(element == null)
    return;
   
  if(element.FadeState == null)
  {
    if(element.style.opacity == null
        || element.style.opacity == ''
        || element.style.opacity == '1')
    {
      element.FadeState = 2;
    }
    else
    {
      element.FadeState = -2;
    }
  }
   
  if(element.FadeState == 1 || element.FadeState == -1)
  {
    element.FadeState = element.FadeState == 1 ? -1 : 1;
    element.FadeTimeLeft = TimeToFade - element.FadeTimeLeft;
  }
  else
  {
    element.FadeState = element.FadeState == 2 ? -1 : 1;
    element.FadeTimeLeft = TimeToFade;
    FadeTimer = setTimeout("animateFade(" + new Date().getTime() + ",'" + eid + "','" + fadeOut + "')", 33);
  }  
}

function animateFade(lastTick, eid, fadeOut)
{  
  var curTick = new Date().getTime();
  var elapsedTicks = curTick - lastTick;
 
  var element = document.getElementById(eid);
 
  if(element.FadeTimeLeft <= elapsedTicks)
  {
    element.style.opacity = element.FadeState == 1 ? '1' : '0';
    element.style.filter = 'alpha(opacity = '
        + (element.FadeState == 1 ? '100' : '0') + ')';
    element.FadeState = element.FadeState == 1 ? 2 : -2;

	if (element.FadeState == 2) {
		if (maxStories > 1) {
		    FadeTimer = setTimeout("nextStory()", 4000);
		}
	} else {
	    FadeTimer = setTimeout("nextStorySelect('0')", 200);
	}
	return;
  }
 
  element.FadeTimeLeft -= elapsedTicks;
  var newOpVal = element.FadeTimeLeft/TimeToFade;
  if(element.FadeState == 1)
    newOpVal = 1 - newOpVal;

  element.style.opacity = newOpVal;
  element.style.filter = 'alpha(opacity = ' + (newOpVal*100) + ')';
 
  FadeTimer = setTimeout("animateFade(" + curTick + ",'" + eid + "')", 33);
}

function tickerOutput () {
	document.write ('<div id="ticker_inner">');
    document.write ('	<div id="tickerAnim">');
    document.write ('	</div>');
    document.write ('</div>');
    document.write ('<div id="ticker_controls">');
	document.write ('	<img src="images/ticker_Prev.gif" width="17" height="15"  style="float:left;" onclick="nextTickerItem(\'1\');" title="Jump to previous item" />');
    document.write ('   <div id="ticker_Pause" style="float:left;">');
	document.write ('		<img src="images/ticker_Pause.gif" width="17" height="15" onclick="pauseTicker();" title="Pause ticker"  />');
    document.write ('   </div>');
	document.write ('	<img src="images/ticker_Next.gif" width="15" height="15"  style="float:left;" onclick="nextTickerItem(\'0\');" title="Jump to next item"  />');
    document.write ('</div>');

	var element = document.getElementById('tickerAnim');
	element.style.opacity = 0;
	element.style.filter = 'alpha(opacity = 0)';
	element.FadeState = -2;
//	element.innerHTML = '<a href="#"><span id="tickerType">NEWS</span>News story 1</a>';
	element.innerHTML = tickerArray [0];
	
	maxStories = tickerArray.length;
}

function nextStory  () {
	fade('tickerAnim');		
}

function nextStorySelect  (prev) {
	var element = document.getElementById('tickerAnim');

	if (prev == 1) {
		currentStory--;
		if (currentStory < 1) currentStory = maxStories;
	} else {
		currentStory++;
		if (currentStory > maxStories) currentStory = 1;
	}
	
	element.innerHTML = tickerArray [currentStory - 1];

    if ((element.Paused == null) || (element.Paused == 0))
    {
		fade('tickerAnim');
	}
}


function pauseTicker (byButton) {

	var element = document.getElementById('tickerAnim');
	var elementPause = document.getElementById('ticker_Pause');

	if (maxStories > 1) {
		if ((element.Paused == null) || (element.Paused == 0))
		{
			if (byButton || !pausedWithButton) {
				element.Paused = 1;
				clearTimeout (FadeTimer);
			
				element.style.opacity = 1;
				element.style.filter = 'alpha(opacity = 100)';
				element.FadeTimeLeft = 0;
				
				elementPause.innerHTML = '<img src="images/ticker_Paused.gif" width="17" height="15" onclick="pauseTicker(true);" title="Resume ticker"  />';
				pausedWithButton = byButton;
			}
		} else {
			if (byButton || !pausedWithButton) {
				TimeToFade = 550.0;
				element.FadeState = 2;
				element.Paused = 0;
				fade('tickerAnim');		
		
				elementPause.innerHTML = '<img src="images/ticker_Pause.gif" width="17" height="15" onclick="pauseTicker(true);" title="Pause ticker"  />';
				pausedWithButton = false;
			}
		}
	}
}


function nextTickerItem (prev) {
	var element = document.getElementById('tickerAnim');
	var elementPause = document.getElementById('ticker_Pause');
    if ((element.Paused == null) || (element.Paused == 0))
    {
		element.Paused = 1;
		clearTimeout (FadeTimer);
	
		element.style.opacity = 1;
		element.style.filter = 'alpha(opacity = 100)';
	    element.FadeTimeLeft = 0;
		TimeToFade = 0.0;

		pausedWithButton = true;

		elementPause.innerHTML = '<img src="images/ticker_Paused.gif" width="17" height="15" onclick="pauseTicker(true);" title="Resume ticker"  />';
	}
	nextStorySelect(prev);
}

