// 
// MappingDuBois.org
// Michelle Rajunov
// JQuery - Blog 
// April 19, 2009
//
// Includes functions for
//	- add/delete comments and comment form
//	- toggle the archives section to expand/collapse
//
//

$(document).ready(function(){ 

	// actions for Comment form 
	// toggle visible/not, send data via ajax
	$("#addComment_form").hide();
	$("#comments a.commentSlider").click(
		function(){	toggle("#addComment_form", this, "arrow"); });
	$("#addComment_form").submit(addComment);
	$("#comments a.delete_comment").click(function(){ 	deleteComment(this);	});
	
	// bind archives section toggle expand/collapse
	$("#archives a.archivesSlider").click(
		function(){	toggle($(this).parent().children('ul'), this, "icons-arrow");	});
});

/******************* end document.ready *****************************/

// toggles target to slide Up and Down on click of link, and changes arrow orientation	
function toggle(target, link, img){
	$(target).slideToggle();
	var arrow = $(link).find('img').attr("alt").toString();
	if(arrow == "down"){	$(link).find('img').attr("src", "../img/"+img+"_up.png").attr("alt", "up");}
	else if(arrow == "up"){	$(link).find('img').attr("src", "../img/"+img+"_down.png").attr("alt", "down");}

}


/******************* Comments *****************************/

function addComment(){
	
	// get info from Comment Form, send data via ajax
	var data = [];
		data.push("postID="+$("#postID").val());
		data.push("comment_user=" + $("#comment_user").val());
		data.push("comment_text="+  $("#comment_text").val());
		data.push("blanky=blank"+ $("#blanky").val());		//spam protection
		data.push("action=addComment");
		
	jQuery.ajax({ 
				type: "POST", 
				url: "../php/blog.update.php",
				dataType: "json", 
				data: data.join("&"), 
				success: displayComment
	});
	toggle("#addComment_form", "#comments a.commentSlider");
	return false;
}

// callback for addComment()
// data = json array = data.commentID, data.text, data.user, data.date
function displayComment(data){
	
	$("#comments ul").append('<li id="comment_' + data.commentID + '">' +
								'<div class="text"> '  + data.text + 	' </div>' 	+
								'<div class="name">'   + data.user + 	' <br> ' 	+
								'<span class="date">' + data.date +  	' </span> </div>' +
								'</li>').find('li:last-child').fadeOut().fadeIn('slow');
}

function deleteComment(link){
	
	// get commentID, send data via ajax
	var id = $(link).parent().parent().attr("id").toString().substring(8);
		var data = [];
		data.push("commentID="+id);
		data.push("action=deleteComment");
		
	jQuery.ajax({ 
				type: "POST", 
				url: "../php/blog.update.php",
				data: data.join("&"), 
				success: removeComment
	});
	return false;
}

// callback for deleteComment()
// text = commentID
function removeComment(text, status){
	$("#comment_"+ trim(text) ).fadeOut(750);
}

/******************* other *****************************/

function trim(str) {
	return str.replace(/^\s*([\S\s]*?)\s*$/, '$1');
}
