var fps = 30;
fps = Math.round(1000/fps);
var fadeInTime = 1*1000;
var fadeOutTime = 2*1000;
var int1 = 10*1000;
var int2 = 11*1000;
var int3 = 7*1000;
var int4 = 9*1000;
var int5 = 12*1000;
var divs = new Array();

var firstRun=true;


var xmlhttp;
var twitterURL = "http://search.twitter.com/search.json";
var twitterQuery = "lang=en&q=to%3Ajustinbieber&rpp=500";

var dataArr = new Array();

function init()
{
	getData();
}

function getData()
{
	httpPost("getdata.php","","stateChanged");
}

function gotData(response)
{
	var tmpArray = response.split("~OUTER~");
	for(var i=0;i<tmpArray.length-1;i++)
	{
		tmpArray[i] = tmpArray[i].split("~INNER~");
		dataArr.push(tmpArray[i]);
	}
	if(firstRun)
	{
		doFirstRun();
		firstRun=false;
	}
}

function doFirstRun()
{
	for(var i=1;i<=5;i++)
	{
		divs.push(document.getElementById("tweet"+i));
		divs[i-1].style.opacity=0;
		divs[i-1].style.filter="alpha(opacity=0)";
		divs[i-1].int=eval("int"+i);
		divs[i-1].index=i;
		setInterval("fadeOut("+divs[i-1].index+")",eval("int"+i));
		setNewText(divs[i-1]);
		//fadeIn(divs[i-1]);
	}
	//fadeIn(divs[1]);
}

function setNewText(target)
{
	var newTweet=dataArr.shift();
	//alert(target+" - "+newTweet);
	target.innerHTML="<p>"+newTweet[1]+"</p><a href='"+newTweet[3]+"'>"+newTweet[0]+" - "+newTweet[2]+"</a>";
	fadeIn(target.index);
	if(dataArr.length<10)
	{
		getData();	
	}
}

function fadeIn(target)
{
	//alert("fadeIn"+target);
	target=document.getElementById("tweet"+target);
	target.fadeStart=new Date().getTime();
	//alert(target);
	target.timeout = setInterval("fadeInTick("+target.index+")",fps);
}

function fadeInTick(target)
{
	target=document.getElementById("tweet"+target);
	var curTime=new Date().getTime();
	var elapsed=curTime-target.fadeStart;
	if(elapsed>=fadeInTime)
	{
		//alert("clear");
		target.style.opacity=1;	
		target.style.filter=null;
		clearInterval(target.timeout);
	}
	else
	{
		//alert("opacity to "+elapsed/fadeInTime);
		target.style.filter="alpha(opacity="+elapsed/fadeInTime*100+")";
		target.style.opacity=elapsed/fadeInTime;
	}
}

function fadeOut(target)
{
	//alert("fade out "+target.index);
	target=document.getElementById("tweet"+target);
	target.fadeStart=new Date().getTime();
	//alert(target);
	target.timeout = setInterval("fadeOutTick("+target.index+")",fps);
}
function fadeOutTick(target)
{
	target=document.getElementById("tweet"+target);
	var curTime=new Date().getTime();
	var elapsed=curTime-target.fadeStart;
	if(elapsed>=fadeInTime)
	{
		//alert("clear");
		target.style.opacity=0;	
		target.style.filter="alpha(opacity=0)";
		clearInterval(target.timeout);
		setNewText(target);
	}
	else
	{
		//alert("opacity to "+elapsed/fadeInTime);
		target.style.filter="alpha(opacity="+(1-elapsed/fadeInTime)*100+")";
		target.style.opacity=1-(elapsed/fadeInTime);
	}
}

function httpPost(url,params,returnFunction){
	xmlhttp=GetXmlHttpObject();
	if (xmlhttp==null)
	  {
	  alert ("Browser does not support HTTP Request");
	  return;
	 }
	 xmlhttp.onreadystatechange=eval(returnFunction);
	xmlhttp.open("POST",url,true);
	xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlhttp.setRequestHeader("Content-length", params.length);
	xmlhttp.setRequestHeader("Connection", "close");
	xmlhttp.send(params);
	
}


function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
  {
  // code for IE7+, Firefox, Chrome, Opera, Safari
  return new XMLHttpRequest();
  }
if (window.ActiveXObject)
  {
  // code for IE6, IE5
  return new ActiveXObject("Microsoft.XMLHTTP");
  }
return null;
}

function stateChanged()
{
	//alert('do it!');
	if (xmlhttp.readyState==4)
	{
		//alert("uh!");
		gotData(xmlhttp.responseText);
	}
}
