	// Refresh Comments
	// AJAX methods.
	// Do NOT modify unless you know what you are doing
	//
	// (c) Alex Baskov, Misha Dubey, 2007.
	///////////////////////////////////////////////////

	// global vars
	var http;
	var d = document;


	////////////////////////
	// basic AJAX Methods
	//
	function createRequestObject()
	{
		var ro;
		if (window.XMLHttpRequest)
		{
			ro = new XMLHttpRequest();
		} else
		{
			ro = new ActiveXObject('Msxml2.XMLHTTP');
			if(!ro)
			{
				ro = new ActiveXObject('Microsoft.XMLHTTP');
			}
		}
		return ro;
	}

	function sndReq(url, parameters, method, handleResponse)
	{
		http = createRequestObject();
		http.onreadystatechange = handleResponse;

		if (method == "GET")
		{
			http.open('GET', url + "?" + parameters, true);
			http.send(null);
		}
		else if(method == "POST")
		{
			http.open('POST', url, true);
			http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			http.setRequestHeader("Content-length", parameters.length);
			http.setRequestHeader("Connection", "close");
			http.send(parameters);
		}
	}
	//
	//
	////////////////////////

	////////////////////////
	// Refresh Comments
	//
	function refreshComments()
	{
		var params = refreshCommentsRequest();

		if(params != "")
		{
			var url = "/wf/index.php";
			sndReq(url, params, "POST", handleRefreshCommentsResponse);
		}

		setTimeout("refreshComments();", 30000);
	}



	function refreshCommentsRequest()
	{
		var myTbody = d.getElementById('commentsTable').getElementsByTagName('TBODY')[0];
		var myTbodyAll = d.getElementById('commentsTableAll').getElementsByTagName('TBODY')[0];

		lastCommentID = myTbodyAll.getElementsByTagName('TR')[0].id;
		lastCommentID = lastCommentID.split("_");
		lastCommentID = lastCommentID[1];

		newRow = d.createElement("TR");
		newRow.id = "refreshTR";
		newTD = d.createElement("TD");
		newTD.colSpan = 2;
		newTD.style.color = "#999999";
		newTD.style.fontWeight = "bold";
		newTD.style.fontSize = "10pt";
		newTD.style.textAlign = "center";
		newTD.innerHTML = "<br /><br />Refreshing comments...<br /><br />";

		newRow.appendChild(newTD);

		newRowAll = newRow.cloneNode(true);
		newRowAll.id = "refreshTRAll";

		myTbody.insertBefore(newRow, myTbody.firstChild);
		myTbodyAll.insertBefore(newRowAll, myTbodyAll.firstChild);

		var res = "";
		res += "cmd=user_comments_ajax";
		res += "&id=" + userID;
		res += "&last_comment_id=" + lastCommentID;

		return encodeURI(res);
	}



	function handleRefreshCommentsResponse()
	{
		if(http.readyState == 4)
		{
			var t = http.responseText;

			if(t != "")
			{
				addRows(t);
			} else
			{
				myTbody.removeChild(d.getElementById("refreshTR"));
				myTbodyAll.removeChild(d.getElementById("refreshTRAll"));

			}
		}
	}




	//Add Row Function
	function addRows(txt)
	{
		var myTbody = d.getElementById('commentsTable').getElementsByTagName('TBODY')[0];
		var myTbodyAll = d.getElementById('commentsTableAll').getElementsByTagName('TBODY')[0];

		if (txt != "nonew")
		{
			rowsArr = txt.split("%%%%%");
			newCommentsCount = rowsArr.length;

			for (i = newCommentsCount-1; i >= 0; i--)
			{
				rowData = rowsArr[i].split("|||");
				newRow = d.createElement("TR");
				newRow.id = "commentTR_" + rowData[0];
				newTD1 = newRow.appendChild(d.createElement("TD"));
				newTD2 = newRow.appendChild(d.createElement("TD"));

				newTD1.innerHTML = rowData[1];
				newTD2.innerHTML = rowData[2];


				newTD1.style.textAlign = "center";
				newTD1.width = "80";
				newTD1.vAlign = "top";

				newTD2.vAlign = "top";
				newTD2.className = "comment_td";
				/*
				newTD2.style.textAlign = "left";
				newTD2.style.color = "#b7e4d5";
				newTD2.width = "300";
				*/

				newRowAll = newRow.cloneNode(true);
				newRowAll.id = "commentAllTR_" + rowData[0];

				myTbody.insertBefore(newRow, myTbody.firstChild);
				myTbodyAll.insertBefore(newRowAll, myTbodyAll.firstChild);

				// if the last iteration
				if (i == 0)
				{
					if (d.getElementById('noComments'))
					{
						myTbody.removeChild(d.getElementById("noComments"));
					}

					if (d.getElementById('noCommentsAll'))
					{
						myTbodyAll.removeChild(d.getElementById("noCommentsAll"));
					}
				}

			} // /for

		} // /if

		myTbody.removeChild(d.getElementById("refreshTR"));
		myTbodyAll.removeChild(d.getElementById("refreshTRAll"));

		return true;

	} // /addRows()


	//
	// /Refresh Comments
	////////////////////////



	////////////////////////
	// Add New Comment
	//
	function addComment()
	{
		var params = addCommentRequest();
		if(params != "")
		{
			var url = "/wf/index.php";
			sndReq(url, params, "POST", handleAddCommentResponse);
		}
	}



	function addCommentRequest()
	{
		var userID = "";
		var commentText = "";

		userID = d.getElementById('form_add_comment').elements.user_id.value;
		commentText = d.getElementById('form_add_comment').elements.add_comment_elm.value;

		showElement('add_comment_loading');
		hideElement('add_comment');

		var res = "";
		res += "cmd=user_comments_ajax";
		res += "&action=add_comment";
		res += "&id=" + userID;
		res += "&comment=" + commentText;

		return encodeURI(res);
	}



	function handleAddCommentResponse()
	{
		if(http.readyState == 4)
		{
			var t = http.responseText;

			if(t == "success")
			{
				d.getElementById('form_add_comment').elements.add_comment_elm.value = "";

				hideElement('addComment');
				hideElement('innerProfileComments');
				showElement('innerAllProfileComments');
			}
			else
			{
				// we can parse the error messages here... if needed.

			}

			showElement('add_comment');
			hideElement('add_comment_loading');
		}
	}



	//
	// /Add New Comment
	////////////////////////





	////////////////////////
	// Add Commentator Message
	//
	function addCommentatorMessage()
	{
		var params = addCommentatorMessageRequest();
		if(params != "")
		{
			var url = "/wf/index.php";
			sndReq(url, params, "POST", handleAddCommentatorMessageResponse);
		}
	}



	function addCommentatorMessageRequest()
	{
		var userID = "";
		var commentText = "";
		var commentLocation = "";
		var commentName = "";

		userID = d.getElementById('form_add_commentator_message').elements.user_id.value;
		commentText = d.getElementById('form_add_commentator_message').elements.add_commentator_message_elm.value;

		commentName = d.getElementById('form_add_commentator_message').elements.add_commentator_message_name.value;
		commentLocation = d.getElementById('form_add_commentator_message').elements.add_commentator_message_location.value;
		commentEmail = d.getElementById('form_add_commentator_message').elements.add_commentator_message_email.value;

		showElement('sipro_sent_message_loading');
		hideElement('sipro_sent_message');

		var res = "";
		res += "cmd=user_comments_ajax";
		res += "&action=add_commentator_message";
		res += "&id=" + userID;
		res += "&comment=" + commentText;
		res += "&message_name=" + commentName;
		res += "&message_location=" + commentLocation;
		res += "&message_email=" + commentEmail;

		return encodeURI(res);
	}



	function handleAddCommentatorMessageResponse()
	{
		if(http.readyState == 4)
		{
			var t = http.responseText;

			if(t == "success")
			{
				d.getElementById('form_add_commentator_message').elements.add_commentator_message_elm.value = "";
				d.getElementById('sipro_sent_message_status').innerHTML = "Your message has been successfully added.";
			}
			else
			{
				// we can parse the error messages here... if needed.
				d.getElementById('sipro_sent_message_status').innerHTML = "Your message was not sent. Please, try again or contact support.";
			}


			showElement('sipro_sent_message_status');
			showElement('sipro_sent_message');
			hideElement('sipro_sent_message_loading');
		}
	}



	//
	// /Add New Comment
	////////////////////////