function textTicker(){
	if (!document.getElementById){ return }
	this.init = function(){
		this.switchTitles = false;
		this.fadescheme = (this.textColor == "black")? 0 : 1; //set 0 to fade text color from (white to black), 1 for (black to white)
		this.fadelinks = 1;  //should links inside scroller content also fade like text? 0 for no, 1 for yes.
		
		this.hex=(this.fadescheme == 0)? 255 : 0;
		this.startcolor=(this.fadescheme == 0)? "rgb(255,255,255)" : "rgb(0,0,0)";
		this.endcolor=(this.fadescheme == 0)? "rgb(0,0,0)" : "rgb(255,255,255)";
		
		this.faderdelay = 2000;
		this.index = 0;
		this.count = 0;
		this.content = "";
		this.changeContent();
	}
	this.changeContent = function(){
		var clip = this;
		if (this.contentArray.length==1){
			// single list array
			this.content = this.contentArray[0][this.index];
			(this.index == this.contentArray[0].length-1)? this.index = 0 : this.index++;
		} else {
			// multidimensional list array
			this.content = this.contentArray[this.count][this.index];
			// switch titles;
			if (this.titleID != undefined && this.switchTitles){
				var src = document.getElementById(this.titleID).src;
				var pre = src.substring(0, src.lastIndexOf('_')+1);
				var ext = src.substring(src.lastIndexOf('.'), src.length);
				document.getElementById(this.titleID).src = pre + (this.count+1) + ext;
			}
			
			if (this.index == this.contentArray[this.count].length-1){
				// switch to next group;
				this.index = 0;
				this.count++;
				this.switchTitles = true;
				if (this.count == this.contentArray.length){
					this.count = 0;
				}
			} else {
				// keep going;
				this.index++;
				this.switchTitles = false;
			}
		}
		document.getElementById(this.id).style.color = this.startcolor;
		document.getElementById(this.id).innerHTML = (this.nowrap)? setEllipsis(this.content) : this.content;
		this.linksobj = document.getElementById(this.id).getElementsByTagName("A");
		if (this.fadelinks){
			this.linkcolorchange(this.linksobj);
			this.colorfade();
		}
		
		window.setTimeout(function() {clip.changeContent();},this.delay+this.faderdelay);
	}
	
	this.frame = 20;
	
	this.linkcolorchange = function(obj){
		if (obj.length>0){
			for (i=0;i<obj.length;i++){
				obj[i].style.color = "rgb("+this.hex+","+this.hex+","+this.hex+")";
			}
		}
	}
	
	this.colorfade = function() {        	
		// 20 frames fading process
		var color = this;
		if(this.frame > 0) {	
			this.hex = (this.fadescheme==0)? this.hex-12 : this.hex+12; // increase or decrease color value depd on fadescheme
			document.getElementById(this.id).style.color = "rgb("+this.hex+","+this.hex+","+this.hex+")"; // Set color value.
			if (this.fadelinks) {
				this.linkcolorchange(this.linksobj);
				this.frame--;
				window.setTimeout(function() {color.colorfade();},20);
			}
		} else {
			document.getElementById(this.id).style.color = this.endcolor;
			this.frame = 20;
			this.hex = (this.fadescheme==0)? 255 : 0;
		}
	}
	
}
function setEllipsis(o){
	var maxLength = 27;
	var pos = o.substring(0,o.indexOf(" "));
	var name = o.substring(o.indexOf(" ")+1,o.indexOf("(")-1);
	var dollar = o.substring(o.indexOf("("),o.length);
	var minLength = (maxLength - (dollar.length + pos.length)-1);
	var abbr = (name.length > minLength)? name.substring(0,minLength) + "..." : name;
	return newName = pos + " " + abbr + " " + dollar;
}
