var paused = 0;
var tabid = 'tab0';
function showTab() {
	if (!document.getElementsByTagName) return false;
	if (!document.getElementById) return false;
	if (!document.getElementById('jswarning')) return false;
	if (!document.getElementById('tickerlnks').getElementsByTagName('li')) return false;
	if (!document.getElementById('tickerlnks').getElementsByTagName('li')) return false;
	document.getElementById('jswarning').style.display = 'none';
	var tabs = document.getElementById('tickerlnks').getElementsByTagName('ul');
	for (var j = 0; j < tabs.length; j++) {
		tabs[j].setAttribute('id','tab'+j);
	}
	if(document.getElementById(tabid)){
  	document.getElementById(tabid).parentNode.childNodes[2].style.zIndex = '99999';
  	var lnk = document.getElementById('tickerlnks').getElementsByTagName('li');
  	init('tickerlnks');
  	for (var i = 0; i < lnk.length; i++) {
  		lnk[i].onclick = function() {
  			resetTab();
  			this.childNodes[2].style.display = 'block';
  			this.childNodes[0].setAttribute('class','slctd');
  			var id = this.childNodes[2].getAttribute('id');
  			return init(id);
  		}
  	}
	}
}
addLoadEvent(showTab);

function init(tab) {
	if (document.getElementById) {
		tck = document.getElementById(tab);
		paus = document.getElementById('pause');
		prev = document.getElementById('previous');
		nxt = document.getElementById('next');
		if (tck.getElementsByTagName("li").length > 0) {
			if (tab.indexOf('tickerlnks') == -1) {
				actual = 0;
			} else {
				actual = 1;
			}
			step = 6;
			speed = 15;
			delay = 3000;
			news = new Array();
			// build an array of news - eg every seperate div provided in the div with id = "all". 
			for (i = 0; i < tck.getElementsByTagName("li").length; i++) {
				news[i] = tck.getElementsByTagName("li")[i];
				news[i].style.left = tck.offsetWidth + "px";
			}
			// start the news rolling ....
			rollNews();
			// add listeners for when mouse goes over tck to stop and when it leaves tck to start again
			prev.onclick=function() {
				prevNews();
			}
			nxt.onclick=function() {
				nextNews();
			}
			paus.onclick=function() {
				if (paused == 0) {
					paused = 1;
					stopNews();
					paus.style.backgroundImage = 'url(../images/btn-ply.gif)'
				}
				else {
					paused = 0;
					rollNews();
					paus.style.backgroundImage = 'url(/images/btn-ps.gif)'
				}
			}
		}
	}
}

function rollNews() {
	paused = 0;
	paus.style.backgroundImage = 'url(/images/btn-ps.gif)'
	// move left edge to left a bit
	news[actual].style.left = parseInt(news[actual].style.left) - step + "px";	
	if (parseInt(news[actual].style.left) == tck.offsetWidth % step) {
		// if that movement hasnt taken us off the edge of the div then wait a bit and move it again.
		if (typeof(tick) != "undefined") {
		  stopNews()
		}
		tick = setTimeout("rollNews()",delay);
		tabid = news[actual].parentNode.getAttribute('id');
	}
	else {
		// if it has taken us over the edge then move to the next item in news array
		if (parseInt(news[actual].style.left) <= 0-news[actual].offsetWidth) {
			resetZindex();
			actual++;
			if (actual == news.length) {actual = 0;}
			if (news[actual].parentNode.getAttribute('id').indexOf('tab') == -1) {
				actual++;
			}
			changeZindex(news[actual].parentNode.parentNode);			
			// if at end of array then knock it back to start
			news[actual].style.left = tck.offsetWidth + "px";
		}
		tabid = news[actual].parentNode.getAttribute('id');
		// wait a bit and try again.
		if (typeof(tick) != "undefined") {
		  stopNews()
		}
		tick = setTimeout("rollNews()",speed);
	}
}

function resetTab() {
	document.getElementById(tabid).style.display = 'none';
	document.getElementById(tabid).parentNode.childNodes[2].style.zIndex = '0';
	document.getElementById(tabid).parentNode.childNodes[0].setAttribute('class','none');
}

function resetZindex() {
	document.getElementById(tabid).parentNode.childNodes[2].style.zIndex = '0';
}


function changeZindex(whichtab) {
	whichtab.childNodes[2].style.zIndex = '99999';
}

function stopNews() {
	clearTimeout(tick);
}

function prevNews() {
	news[actual].style.left = tck.offsetWidth + "px";
	resetZindex();
	actual--;
	if (actual < 0) {actual = (news.length - 1);}
	if (news[actual].parentNode.getAttribute('id').indexOf('tab') == -1) {
		actual--;
		if (actual < 1) {actual = (news.length - 1);}
	}
	changeZindex(news[actual].parentNode.parentNode);
	tabid = news[actual].parentNode.getAttribute('id');
	news[(actual)].style.left = 0 + 'px';
	if (typeof(tick) != "undefined") {
		stopNews()
	}
	tick = setTimeout("rollNews()",delay);
}

function nextNews() {
	news[actual].style.left = tck.offsetWidth + "px";
	resetZindex();
	actual++;
	if (actual == news.length) {actual = 0;}
	if (news[actual].parentNode.getAttribute('id').indexOf('tab') == -1) {
		actual++;
	}
	tabid = news[actual].parentNode.getAttribute('id');
	changeZindex(news[actual].parentNode.parentNode);
	news[(actual)].style.left = 0 + 'px';
	if (typeof(tick) != "undefined") {
		stopNews()
	}
	tick = setTimeout("rollNews()",delay);
}