
var previewTickSpeed=10000 //ticker speed in miliseconds (2000=2 seconds)
var partnerTickSpeed=8000
var newsTickSpeed=4000
var tweetTickSpeed=7000

var previousPreview=-1; // don't touch these
var currentPreview=-1;
var previousPartner=-1;
var currentPartner=-1;
var previousNews=-1;
var currentNews=-1;
var previousTweet=-1;
var currentTweet=-1;

function startTickers() {
	setTimeout("switchPreview()",previewTickSpeed);
	setTimeout("switchPartner()",partnerTickSpeed);
	setTimeout("switchNews()",newsTickSpeed);
	setTimeout("switchTweet()",tweetTickSpeed);	
}

function switchPreview() {
	var root = document.getElementById("preview-wrap");
	if(root && root.hasChildNodes()) {
		var divs = root.getElementsByTagName("div");

		if(previousPreview == -1) { // first time call 
			previousPreview = indexOfVisibleDiv(divs);
			currentPreview=((previousPreview + 1)<(divs.length-1))? previousPreview+1 : 0;
		}

		var next; var prev;
		prev = divs[previousPreview];
		if(!prev.id) prev.id = 'preview_'+previousPreview;
		next = divs[currentPreview];
		if(!next.id) next.id = 'preview_'+currentPreview;

		// fade out old one
		Effect.Fade(prev.id, {queue:'front'});
		// fade in new one
		Effect.Appear(next.id, {queue:'end'});

		previousPreview=currentPreview;
		currentPreview=(currentPreview<(divs.length-1))? currentPreview+1 : 0;

		setTimeout("switchPreview()",previewTickSpeed);
	}
}

function switchPartner() {
	var root = document.getElementById("partner-wrap");
	if(root && root.hasChildNodes()) {
		var divs = root.getElementsByTagName("div");

		if(previousPartner == -1) { // first time call 
			previousPartner = indexOfVisibleDiv(divs);
			currentPartner=((previousPartner + 1)<(divs.length-1))? previousPartner+1 : 0;
		}	
	
		var next; var prev;
		prev = divs[previousPartner];
		if(!prev.id) prev.id = 'partner_'+previousPartner;
		next = divs[currentPartner];
		if(!next.id) next.id = 'partner_'+currentPartner;

		prev.style.display = "none";
		// fade in new one
		Effect.Appear(next.id);

		previousPartner=currentPartner;
		currentPartner=(currentPartner<(divs.length-1))? currentPartner+1 : 0;

		setTimeout("switchPartner()",partnerTickSpeed);
	}
}

function switchTweet() {
	var root = document.getElementById("tweet-wrap");
	if(root && root.hasChildNodes()) {
		var divs = root.getElementsByTagName("div");

		if(previousTweet == -1) { // first time call 
			previousTweet = indexOfVisibleDiv(divs);
			currentTweet=((previousTweet + 1)<(divs.length-1))? previousTweet+1 : 0;
		}	
	
		var next; var prev;
		prev = divs[previousTweet];
		if(!prev.id) prev.id = 'tweet_'+previousTweet;
		next = divs[currentTweet];
		if(!next.id) next.id = 'tweet_'+currentTweet;

		prev.style.display = "none";
		// fade in new one
		Effect.Appear(next.id);

		previousTweet=currentTweet;
		currentTweet=(currentTweet<(divs.length-1))? currentTweet+1 : 0;

		setTimeout("switchTweet()",tweetTickSpeed);
	}
}

function switchNews() {
	var root = document.getElementById("ticker");
	if(root && root.hasChildNodes()) {
		var divs = root.getElementsByTagName("div");
		
		if(previousNews == -1) { // first time call 
			previousNews = indexOfVisibleDiv(divs);
			currentNews=((previousNews + 1)<(divs.length-1))? previousNews+1 : 0;
		}			
		
		var next; var prev;
		prev = divs[previousNews];
		if(!prev.id) prev.id = 'ticker_'+previousNews;
		next = divs[currentNews];
		if(!next.id) next.id = 'ticker_'+currentNews;

		// fade out old one
		prev.style.display = "none";
		// fade in new one
		next.style.display = "block";

		previousNews = currentNews;
		currentNews=(currentNews<(divs.length-1))? currentNews+1 : 0;

		setTimeout("switchNews()",newsTickSpeed);
	}
}

function indexOfVisibleDiv(divs) {
	for(var i=0; i<divs.length; i++) {
		if(divs[i].style.display != 'none') return i;
	}
}
