	var scrollerdelay='4000'; //delay between msg scrolls. 4000=4 seconds.
	var distance = "5"; //distance of movement between frames
	var framerate = "90"; //time in between movement cpu increases as this number decreases
	if (document.all) { //IE's animation is faster
		var distance = "5";
		var framerate = "70";
	}
	var scrollers = new Array();
	var totalScrollers = 0;


	function getMessages(id, msgsperscroll) {
		var p = document.getElementById(id);
		if (!p) { return; }
		p.style.overflow = 'hidden';
		p.style.position = 'relative';

		

		var divs = p.getElementsByTagName("div");
		
		var messages=new Array();
		for (j=0; j<divs.length; j++) {
			if (divs[j].className == "message") {
				messages.push(divs[j].innerHTML);
			}
		}
		
		p.innerHTML = "";
		var atd = document.createElement("div");
		atd.id = "scrollie";
		atd.style.position = "absolute";
				atd.innerHTML = '<a href="#">test</a>';
		p.appendChild(atd);
		
		scrollers.push({messages:messages, atd:atd, msgCount:0, aty:0, msgsPerScroll:msgsperscroll});
		totalScrollers++;
		return totalScrollers - 1;
	}
	
	function swapMessage(i) {
	    if (!scrollers[i]) { return; }
		var atd = scrollers[i].atd;	
		var messages = scrollers[i].messages;
		var messageTotal = 0;
		
		if ( !atd ) return;
		
		atd.innerHTML = '';
		atd.style.display = "none"; //hide message so longer ones don't 'peek'
		while (scrollers[i].msgCount <= messages.length - 1 && messageTotal < scrollers[i].msgsPerScroll) {
			var t = document.createElement('div');
			//t.style.marginBottom = '10px';
			t.innerHTML = messages[scrollers[i].msgCount];
			atd.appendChild(t);
			scrollers[i].msgCount++;
			messageTotal++;
			if (scrollers[i].msgCount > (messages.length-1)) { scrollers[i].msgCount = 0; }
			if (messages.length == messageTotal) {
				break;
			}
		}

		atd.style.top = atd.parentNode.offsetHeight + "px";		
		//if (scrollers[i].msgCount > (messages.length-1)) { scrollers[i].msgCount = 0; }
	}

	function moveAway(i) {	
	    if (!scrollers[i]) { return; }
		var atd = scrollers[i].atd;	
		var messages = scrollers[i].messages;
		var msgCount = scrollers[i].msgCount;
		
		if ( !atd ) return;
		
		scrollers[i].aty = parseInt(atd.style.top)-distance;
		atd.style.top = scrollers[i].aty + "px";
		if (Math.abs(scrollers[i].aty) < atd.offsetHeight) {
			var timeoutFunction = function() {moveAway(i);};
			setTimeout(timeoutFunction, framerate);
		} else {
			swapMessage(i);
			moveMessage(i);
		}
	}
		
	function moveMessage(i) {
	    if (!scrollers[i]) { return; }
		var atd = scrollers[i].atd;	
		var messages = scrollers[i].messages;
		var msgCount = scrollers[i].msgCount;
			
		if ( !atd ) return;
		
		atd.style.display = "block"; //show message now that it's safely below the viewport
		scrollers[i].aty = parseInt(atd.style.top)-distance;
		atd.style.top = scrollers[i].aty + "px";
		if (scrollers[i].aty > 0) { 
			var timeoutFunction = function() {moveMessage(i);};
			setTimeout(timeoutFunction, framerate); 
		} else {
			var timeoutFunction = function() {moveAway(i);};
			setTimeout(timeoutFunction, scrollerdelay);
		}
	}

	function startscroll(id,msgsperscroll) {
	    var index = getMessages(id, msgsperscroll); 
		swapMessage(index);
		moveMessage(index);
	}

//addEvent(window, 'load', startscroll);