/******************************************************************************/
// tickers.js - 07/2003
// written by Pascal Carles (p.carles@aprim-t.com)
// You can use, modify or distribute freely this code as far as you mention
// my tribute to it somewhere in the sources...
/******************************************************************************/

var updateSpeed=6000;
var NoFade = false;
var fadeSpeed=20;
var fadeFrames=30;	// at least 2
var fadeStartFrame=1;
var fadeStopFrame=10;
var AutoPause=true;
var Reverse=false;
var AutoReverse=true;

//var tickTexts = new Array();
//tickTexts[0]="<a href='http://www.dynamicdrive.com'>Click here to go to Dynamic Drive's front page</a>";
//tickTexts[1]="<a href='http://www.javascriptkit.com'>Visit JavaScript Kit for free JavaScripts!</a>";
//tickTexts[2]="<a href='http://freewarejava.com'>Looking for free java applets? Click here.</a>";

var tickUpdateTimer = null;
var tickFadeTimer = null;
var CurFrame=fadeStartFrame-1;
var CurText=0;
var Cr=Cg=Cb=StartCr=StartCg=StartCb=StopCr=StopCg=StopCb=null;
var tickDr=tickDg=tickDb=null;
var tickEr=tickEg=tickEb=tickSr=tickSg=tickSb=null;
var tickAr=tickAg=tickAb=tickASr=tickASg=tickASb=null;
var ie=document.all;
var ns6=document.getElementById;
var ns4=document.layers;

var tickObject=ie? fadingTicker: ns6? document.getElementById("fadingTicker") : document.fadingTicker.document;

setupTicker();

if(AutoPause) {
	tickObject.onmouseover = pauseTicker;
	tickObject.onmouseout = resumeTicker;
}


function setupTicker() {
	if(!NoFade) {
		if(fadeFrames<2) alert("ticker: we need at least 2 frames ! (but fadeFrames="+fadeFrames+")");
		if(fadeStartFrame>=fadeStopFrame||fadeStartFrame>=fadeFrames||fadeStartFrame<1) alert("ticker: fadeStartFrame can't be outside fadeFrames ! (but fadeStartFrame="+fadeStartFrame+")");
		if(fadeStopFrame<=fadeStartFrame||fadeStopFrame>fadeFrames||fadeStopFrame<1) alert("ticker: fadeStopFrame can't be outside fadeFrames ! (but fadeStopFrame="+fadeStopFrame+")");
	
		fadeFrames = fadeFrames-1;
	
		StartCr = parseInt(tickC1.substring(1, 3), 16);
		StartCg = parseInt(tickC1.substring(3, 5), 16);
		StartCb = parseInt(tickC1.substring(5, 7), 16);
		StopCr = parseInt(tickC2.substring(1, 3), 16);
		StopCg = parseInt(tickC2.substring(3, 5), 16);
		StopCb = parseInt(tickC2.substring(5, 7), 16);
		
		tickEr = Math.abs(StartCr-StopCr);
		tickEg = Math.abs(StartCg-StopCg);
		tickEb = Math.abs(StartCb-StopCb);
		
		tickSr = Math.floor(tickEr/fadeFrames);
		tickSg = Math.floor(tickEg/fadeFrames);
		tickSb = Math.floor(tickEb/fadeFrames);
		
		tickAr = tickEr-(tickSr*fadeFrames);
		tickAg = tickEg-(tickSg*fadeFrames);
		tickAb = tickEb-(tickSb*fadeFrames);
		tickAr = tickAr?Math.ceil(fadeFrames/tickAr):0;
		tickAg = tickAg?Math.ceil(fadeFrames/tickAg):0;
		tickAb = tickAb?Math.ceil(fadeFrames/tickAb):0;
		
		tickDr = (StartCr-StopCr)>=0?-1:1;
		tickDg = (StartCg-StopCg)>=0?-1:1;
		tickDb = (StartCb-StopCb)>=0?-1:1;
		
		fadeFrames = fadeFrames+1;
		CurFrame = Reverse?fadeStopFrame-1:fadeStartFrame-1;
	}
	CurText=0;
}

function pauseTicker() {
	clearTimeout(tickUpdateTimer);
	clearTimeout(tickFadeTimer);
}

function resumeTicker() {
	tickUpdateTimer=setTimeout("updateTicker()",updateSpeed/4);
}

function fadeTicker() {	         	
	if(CurFrame>=fadeStartFrame-1 && CurFrame<=fadeStopFrame-1) {
		//Oupla.innerHTML=Oupla.innerHTML+"<br>[CurFrame = "+CurFrame+" ]&nbsp;&nbsp;&nbsp;";
		if(CurFrame==0) {
			Cr = StartCr;
			Cg = StartCg;
			Cb = StartCb;
		}
		if(CurFrame==fadeFrames-1) {
			Cr = StopCr;
			Cg = StopCg;
			Cb = StopCb;
		}
		if(CurFrame>0 && CurFrame<fadeFrames-1) {
			if(tickEr) {		
				cStep = (((CurFrame)*tickSr)+(tickAr?parseInt((CurFrame)/tickAr):0))*tickDr;
				Cr = StartCr+cStep;
			}
			if(tickEg) {
				cStep = (((CurFrame)*tickSg)+(tickAg?parseInt((CurFrame)/tickAg):0))*tickDg;
				Cg = StartCg+cStep;
			}
			if(tickEb) {		
				cStep = (((CurFrame)*tickSb)+(tickAb?parseInt((CurFrame)/tickAb):0))*tickDb;
				Cb = StartCb+cStep;
			}
		}
		tickObject.style.backgroundColor="rgb("+Cr+","+Cg+","+Cb+")";
		CurFrame = Reverse?CurFrame-1:CurFrame+1;
		tickFadeTimer=setTimeout("fadeTicker()",fadeSpeed);	
	}
	else {
		if(AutoReverse) {
			Reverse = Reverse?false:true;
		}
		CurFrame = Reverse?fadeStopFrame-1:fadeStartFrame-1;
		if(AutoReverse && Reverse) fadeTicker();
	}
}


function updateTicker(){
	if(tickObject && tickTexts.length) {
		if(ns4){
			tickObject.document.write(tickTexts[CurText]);
			tickObject.document.close();
		}
		else {
			tickObject.innerHTML=tickTexts[CurText];
		}
		if(!NoFade&&(ie||ns6)) fadeTicker();
		CurText=(CurText<tickTexts.length-1)?CurText+1:0;
		tickUpdateTimer=setTimeout("updateTicker()",updateSpeed);
	}
}

if(document.layers) {
	setTimeout("window.onresize=regenerate",450);
}
function regenerate(){
	window.location.reload();
}

