function getConnection()
{
   var req;

   if(window.XMLHttpRequest){
      // Firefox, Safari, Opera...
      req = new XMLHttpRequest();
   } else if(window.ActiveXObject) {
      // Internet Explorer 5+
      req = new ActiveXObject("Microsoft.XMLHTTP");
   } else {
      // There is an error creating the object,
      // just as an old browser is being used.
      // alert('Problem creating the XMLHttpRequest object');
   }
   return req
}

function handleDivTag(divtag)
{
   var divtag;
   var num;
   return divtag;
} 
function handleShout(divtag)
{
   var divtag;
   var name;
   var urlemail
   var num;
   return divtag;
} 


var http = getConnection();
var shouthttp = getConnection();
var posthttp = getConnection();
var divhandler = new handleDivTag(null);
var divhandler2 = new handleDivTag(null);
var posthandler = new handleDivTag(null);
var shouthandler = new handleShout(null);
var spy;

function fetchComments(num)
{
	var url = "/fetchComments/"+num+"/";
	http.open('get', url, 'true');
	divhandler.divtag = "comments"+num;
	divhandler.num = num;
	divhandler2.divtag = "commentLink"+num;
	divhandler2.num = num;
	document.getElementById(divhandler2.divtag).innerHTML = "<div align=\"center\"><img src=\"/img/ajax-loader.gif\" valign=\"bottom\" alt=\"Loading...\" /></div>";
	http.onreadystatechange = commentHandler;
	http.send(null);
}

function commentHandler()
{
	if (http.readyState == 4)
	{
		var response = http.responseText;
		document.getElementById(divhandler.divtag).style.display = "none";
		document.getElementById(divhandler2.divtag).innerHTML = "<a href=\"javascript:void(0)\" onclick=\"Effect.toggle('"+divhandler.divtag+"', 'blind')\">Show/Hide comments</a>";
		document.getElementById(divhandler.divtag).innerHTML = response;
		Effect.BlindDown(divhandler.divtag);
	}	
}

function hideComments(num)
{
   document.getElementById("e"+num).style.borderLeft = "";
   document.getElementById("e"+num).style.borderRight = "";
   document.getElementById("e"+num).style.borderBottom = "";
   document.getElementById("comments"+num).innerHTML = "";
   document.getElementById("commentLink"+num).innerHTML = "<a href=\"javascript:void(0)\" onclick=\"fetchComments("+num+")\">Show/Hide Comments</a>";
}


function postComment(num)
{
	var name = document.getElementById("name"+num).value;
	var email = document.getElementById("email"+num).value;
	var msg = document.getElementById("msg"+num).value;
	var url = "/postComment/"+num+"/";
	posthttp.open('post', url, 'true');
	posthandler.divtag = "comments"+num;
	posthandler.num = num;
	document.getElementById("post"+posthandler.num).innerHTML = "<div align=\"center\"><img src=\"/img/ajax-loader.gif\" alt=\"Processing...\" /></div>\n";
	posthttp.onreadystatechange = postHandle;
	posthttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	posthttp.send("anum="+num+"&name="+name+"&email="+email+"&msg="+msg);
}

function postHandle()
{
	if (http.readyState == 4)
	{
		var response = posthttp.responseText;
		document.getElementById(posthandler.divtag).innerHTML = response;
	}	
}

function postShout()
{
	var name = document.getElementById("shoutName").value;
	var urlemail = document.getElementById("shoutEmail").value;
	var msg = document.getElementById("shoutMsg").value;
	shouthandler.name = name;
	shouthandler.urlemail = urlemail;
	shouthandler.msg = msg;
	shouthandler.divtag = "shout2";

	var url = "/shoutPost/";
	
	shouthttp.open('post', url, 'true');
	shouthttp.onreadystatechange = shoutHandle;
	shouthttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	shouthttp.send("name="+name+"&urlemail="+urlemail+"&msg="+msg);
	document.getElementById("shoutButton").disabled = true;
	Effect.BlindUp("shoutForm");
	//document.getElementById("shoutForm").innerHTML = "<div align=\"center\"><img src=\"/img/ajax-loader.gif\" alt=\"Processing...\" /></div>";
}

function shoutHandle()
{
	if (shouthttp.readyState == 4)
	{
		var response = shouthttp.responseText;
		document.getElementById("shoutbox").innerHTML = response;
	}	
}

function updateSpy()
{
	var url = "/spy/update/"+spy+"/";
	http.open('get', url, 'true');
	http.onreadystatechange = spyHandle;
	http.send(null);
}

function spyHandle()
{
	if (http.readyState == 4)
	{
		var response = http.responseText;
		if (response.length > 2)
			response = response.split("|");
		if (response[0] > 0)
		{
			spy = response[1];
			for (var i=2;i<response.length;i++)
			{
				var content = response[i];
				var current = document.getElementById("spyList").innerHTML;
				document.getElementById("spyList").innerHTML = "\n" + content + current;
				var curspy = (spy-i)+3;
				var oldspy = curspy-22;
				Effect.Appear("spy"+curspy, { queue: 'end'});
				Effect.Fade("spy"+oldspy, { queue: 'end'});
			}
		}
	}
}




