var request;

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

function toggleComment(postid, commentTag) {
	if($(postid+'_comments')){
		var comments = $(postid+'_comments');
		comments.style.display = (comments.style.display != 'none' ? 'none' : '' );
	}
	else{
		var url = "/comment_data2.php?postid="+postid;
		commentTag.innerHTML = "Loading";
		
		request = createRequest();
		request.open("GET", url, true);
		request.onreadystatechange = function(){displayComments(postid, commentTag)};
		request.send(null);
	}
}

function displayComments(postid, commentTag) {
	if (request.readyState == 4){
		if (request.status == 200){
			
			commentTag.parentNode.style.display = "none";
			var post = $(postid);
			var comments = request.responseText;
			
			post.innerHTML += comments;
			
			//window.location = "#"+postid+"_comments";	
		}
		else if (request.status == 404){
			alert("Request URL does not exist");
		}
		else{
			alert("Error: status code is " + request.status);
		}
	}
	else{
	}
}

function saveComment(postid, theButton){
	var post = $(postid+'_comments');
	var form = post.getElementsByTagName('form')[0];
			
	//alert(form.getElementsByTagName('input')[0].value + " " + form.getElementsByTagName('textarea')[0].innerHTML);		
	var username = form.getElementsByTagName('input')[0].value;
	var comment = form.getElementsByTagName('textarea')[0].value;
		
	if(username.length == 0){
		alert("What's your name?");	
	} else if (comment.length == 0){
		alert("You can't say nothing!");	
	} else {
		var getVars = "?postid="+postid
					+ "&username="+username
					+ "&comment="+comment;
		
		var url = "/saveComment.php"+getVars;
		request = createRequest();
		theButton.disabled = true;
		request.open("GET", url, true);
		request.onreadystatechange = function(){displayNewComment(postid, theButton)};
		request.send(null);
	}
}

function displayNewComment(postid, theButton){
	if (request.readyState == 4){
		if (request.status == 200){
			var xmlDoc = request.responseXML;
			var responseNode = xmlDoc.documentElement;
			var comments = responseNode.getElementsByTagName("comment");
			var comments_ul= $(postid+'_comments');
			var lis = comments_ul.getElementsByTagName('li');

			if(responseNode.getAttribute('state') == 'success')
			{
				/*
				comments_ul.innerHTML += "<li id='"+postid+"_"+lis.length+"'>"
								+ '<div>#'+lis.length +' '+comments[0].getAttribute('user')+'<br />'
								+ '<span>'+comments[0].getAttribute('date')+'<br />'+comments[0].getAttribute('time')+'</span></div>'
								+ '<p> '+comments[0].getAttribute('comment')+'</p>'
								+ '</li>';
								
				window.location = "#"+postid+"_"+(lis.length - 1);				
				*/
				
				// enablle the button again and clear form 
				theButton.disabled = false;
	
				var form = comments_ul.getElementsByTagName('form')[0];
				form.getElementsByTagName('input')[0].value = "";
				form.getElementsByTagName('textarea')[0].value = "";
	
	
				// display comment
				var newLI = document.createElement("li");
				newLI.innerHTML = '<div><span>'+comments[0].getAttribute('user')+'</span><br />'
								+ comments[0].getAttribute('date')+'<br />'+comments[0].getAttribute('time')+'</div>'
								+ '<p> '+comments[0].getAttribute('comment')+'</p>';
								
								
				comments_ul.insertBefore(newLI, lis[lis.length-1]);
	
			
			}else{
				comments_div.innerHTML += '<li>'
										+ '<p>Error posting new comment</p>'
										+ '</li>';
			}
		}
		else if (request.status == 404){
			alert("Request URL does not exist");
		}
	}
}

//this doesn't change very often
function createRequest() {
	try{request=new XMLHttpRequest();return request;}catch(trymicrosoft){try{request = new ActiveXObject("Msxml2.XMLHTTP");return request;}catch(othermicrosoft){try{request=new ActiveXObject("Microsoft.XMLHTTP");return request;}catch(failed){return false;}}}if(!request){alert("Error initializing XMLHttpRequest!");}
}
