var requestGet = null;
var requestAdd = null;
var requestPost = null;
var mutex_get = 0;
var mutex_add = 0;
var d_id_rating_box;
var posted_by;


try
{
	requestGet = new XMLHttpRequest();
	requestAdd = new XMLHttpRequest();
	requestPost = new XMLHttpRequest();
}
catch (trymicrosoft)
{
	try
	{
		requestGet = new ActiveXObject("Msxml2.XMLHTTP");
		requestAdd = new ActiveXObject("Msxml2.XMLHTTP");
		requestPost = new ActiveXObject("Msxml2.XMLHTTP");
	} 
	catch (othermicrosoft)
	{
		try
		{
			requestGet = new ActiveXObject("Microsoft.XMLHTTP");
			requestAdd = new ActiveXObject("Microsoft.XMLHTTP");
			requestPost = new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch(failed)
		{
			requestGet=null;
			requestAdd=null;
			requestPost=null;
		}
	}
}
	
if(requestGet==null)
	alert("Error creating XMLHttpRequest!");	//unable to make requests objects

			

function getComments()
{
	if (mutex_get == 0)
	{
		mutex_get = 1;
		var url = "ajax/get_comments.php?d_id=" + d_id_rating_box + "&dummy=" + new Date().getTime();
		
		requestGet.open("GET", url, true);
		
		requestGet.onreadystatechange = updateComments;
		requestGet.send(null);
	}
}

function updateComments()
{
	
	if(requestGet.readyState==4)
	{
		if(requestGet.status==200)
		{
			document.getElementById("user_comments").innerHTML = requestGet.responseText;
			document.location = "#user_comments_anchor";
		}
		else
		{
			alert("Error! Request status is "+requestGet.status);
		}
	}
}

function getAddComment()
{
	if (mutex_add == 0)
	{
		mutex_add = 1;
		getComments();
		var url = "ajax/get_add_comment.php?d_id=" + d_id_rating_box + "&dummy=" + new Date().getTime();
		
		requestAdd.open("GET", url, true);
		
		requestAdd.onreadystatechange = updateAddComment;
		requestAdd.send(null);
	}
}

function updateAddComment()
{
	
	if(requestAdd.readyState==4)
	{
		if(requestAdd.status==200)
		{
			document.getElementById("add_comment").innerHTML = requestAdd.responseText;
			document.location = "#add_comment_anchor";
		}
		else
		{
			alert("Error! Request status is "+requestAdd.status);
		}
	}
}

function postComment()
{
	var message = document.getElementById("message").value;
	
	//uncomment the following line once member area is up
	var posted_by = document.getElementById("posted_by").value;
	
	if (posted_by == "")
	{
		alert("Please Enter a Name.");
		return;
	}	
	
	if (message == "")
	{
		alert("Please Enter a Message.");
		return;
	}
	
	var url = "ajax/post_comment.php?d_id=" + d_id_rating_box + "&posted_by=" + encodeURIComponent(posted_by) + "&message=" + encodeURIComponent(message) + "&dummy=" + new Date().getTime();
	requestPost.open("GET", url, true);
	
	requestPost.onreadystatechange = updatePostComment;	
	requestPost.send(null);
}

function updatePostComment()
{
	
	if(requestPost.readyState==4)
	{
		if(requestPost.status==200)
		{
			//hide the add comment div
			document.getElementById("add_comment").innerHTML = "";
			
			//set these to 0 since we hide the add comment div and we need to fetch the new comments
			mutex_get = 0;
			mutex_add = 0;
			
			//set new number of comments
			document.getElementById("no_of_comments").innerHTML = requestPost.responseText; ;
			
			getComments();
		}
		else
		{
			alert("Error! Request status is "+requestPost.status);
		}
	}
}
