var activepost;

function $(id){
	return document.getElementById(id);
}

function createRequest()
{
	var request;
	try 
	{	request = new XMLHttpRequest();
	} 
	catch (trymicrosoft) {
		try 
		{	request = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (othermicrosoft) {
			try {
				request = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (failed) {
				request = false;
			}
		}
	}
	if (!request) {
		alert("Error initializing XMLHttpRequest");
	}
	return request;
}

function submit_comment(id)
{
	var name = $('name').value;
	var comment = $('comment_input').value;
	name = makeSafe(name);
	comment = makeSafe(comment);
	
	if (comment == '') {
		alert('You cannot submit a blank comment');
		return;
	}

	var url = "addcomment.php"
			+"?id="+id+"&name="+name+"&comment="+comment;
			
	var request = createRequest();
	request.open("GET", url, true);
	request.onreadystatechange = function(){addComment(request,id)};
	request.send(null);
}

function addComment(request,id)
{
	var name = $('name').value;
	var comment = $('comment_input').value;
	name = makeSafe(name);
	comment = makeSafe(comment);
	
	if (name == '')
		name = "Anonymous";
	
	if(request.readyState == 4) {
		$(id+"_comments").innerHTML += request.responseText;
		$('name').value = '';
		$('comment_input').value = '';
	}
}


function setActive(article_id){
	activepost = article_id;
}

function toggle_comments(comment_id){
	var comments = $(comment_id);
	comments.style.display = (comments.style.display != 'block' ? 'block' : 'none' );
}

function toggle(article_id){
	if (activepost == article_id) {return;}
		
	var current = $(activepost);
	var article = $(article_id);
	var comments = $(article_id+'_comments');
	
	comments.style.display='none';
	article.style.display='';
	current.style.display='none';
	
	activepost=article_id;
}

function makeSafe(value)
{
	// First just trim the whitespace
	value = value.replace(/^\s+|\s+$/g,"");
	// Replace double newlines with '</p><p>'
	value = value.replace(/\n\n/g, "</p><p>");
	// Replace newlines with '<br />'
	value = value.replace(/\n/g, "<br />");
	// Replace '&' with 'and'
	value = value.replace(/\&/g, "and");
	
	return value;
}
