
	// Summary of use: 
	//     call animate(tagID, color); where "tagID" is the ID 
	//     of the tag that contains text to be animated,
	//     and "color" is the color to use to highlight the text with.
	//
	// For more information, and detailed instructions, see 
	//     http://www.flooble.com/scripts/animate.php
	//
	// Copyright (c) 2002 by Animus Pactum Consulting Inc.

		var oldcol, col, ind, curspan, myinterval, savelength, savelength2, beenhere1 = 0, beenhere2 = 0;
        var ie4 = false;
        if(document.all) {ie4 = true; }       
        
        function setContent(name, value) {
            var d;  
 //alert("In SetContent " + name + " " + value + " ie4 " + ie4)
           if (ie4) { 
                    d = document.all[name];
            } else {
                    d = document.getElementById(name);
            }       
//alert("Setting content: " + d.innerHTML)
            d.innerHTML = value;    
        	}       

		function getContent(name) {
			var d;
            if (ie4) {
                    d = document.all[name];
            } else {
                    d = document.getElementById(name);
            }
//alert("GetContent: " + name + " html " + d.innerHTML) 
           return d.innerHTML;
			}

        function setColor(name, value) {
            var d; 
            if (ie4) { 
                    d = document.all[name];
            } else {
                    d = document.getElementById(name);
            }
            d.style.color = value;  
        	}

		function getColor(name) {
            var d;
           if (ie4) {
                    d = document.all[name];
            } else {
                    d = document.getElementById(name);
            }
           return d.style.color;
        	}

        function animate(name, col) {
//alert("Name: " + name + " col: " + col)
			var value = getContent(name);
//alert(value);
			if ((name == 'animate1' && !beenhere1) || (name == 'animate2' && !beenhere2)){
				if (value.indexOf('<span') >= 0){
//alert("quiting")
					return;
					}
				}
			var length = 0;
	        var str = '';
			var ch;
			var token = '';
			var htmltag = false;
        	for (i = 0; i < value.length; i++) {
				ch = value.substring(i, i+1);
				if (i < value.length - 1) {
					nextch = value.substring(i+1, i+2);
					} 
				else {
					nextch = ' ';
					}
				token += ch;
				if (ch == '<' && '/aAbBpPhHiIoOuUlLtT'.indexOf(nextch) >= 0){
					htmltag = true;
					}
				if (ch == '>' && htmltag){
					htmltag = false;
					}
				if (!htmltag && ch.charCodeAt(0) > 30 && ch != ' ' && ch != '\n'){		
	                str += '<span id="' + name + '_' + length + '">' + token + '</span>';
					token = '';
					length++;
					}
           		}
//alert("Name: " + name + " been1 " + beenhere1 + " been2 " + beenhere2)
			if (name == 'animate1'){
				if (!beenhere1){ 
					savelength = length;
					setContent(name, str);
					}
            	animateloop(name, savelength);
				}
			else if (name == 'animate2'){
				 if (!beenhere2) {
					savelength2 = length;
					setContent(name, str);
            		}
            	animateloop(name, savelength2);
				}
        	}

        function animateloop(name, length) {
			var next = 1
            oldcol = "#CC3300"
			col = "#FFA384"
			curspan = name
			mylen = length - 1
//alert("Mylen: " + mylen) 
 			ind = 0
   			myinterval = setInterval('setCol()', 25);
        	}
        	
		function setCol(){
	        setColor(curspan + '_' + ind, col);
			if (ind > 0){
				setColor(curspan + '_' + (ind - 1), oldcol)
				}
			if (ind < mylen){
				++ind;
				}
			else {
//alert("Got here")
				setColor(curspan + '_' + (ind), oldcol)
				clearInterval(myinterval)
				if (curspan == 'animate1'){ 
					beenhere1 = 1;
					curspan = 'animate2'
					}
				else { 
					beenhere2 = 1;
					curspan = 'animate1'
					}
				command = 'animate(' + '\'' + curspan + '\'' + ', ' + '\'#FFA384\'' + ')'
//alert("setTimeout: " + command)
				setTimeout(command, 1000)
				}
			}        	
        	

