﻿function ajaxEffect(content){
	jQuery(content).css({visibility:"hidden"}).fadeIn(1000).css({visibility:"visible"});
}

function disableForm(){
	jQuery("#commentform #comment_submit").attr("disabled","true");
	jQuery("#commentform textarea").attr("disabled","true");
}
function enableForm(){
	jQuery("#commentform #comment_submit").removeAttr("disabled");
	jQuery("#commentform textarea").removeAttr("disabled");
}

jQuery(document).ready(function() {

	var scripts = jQuery(document).find("script");
	for ( i = 0; i <= scripts.length; i++ ) {
		var scriptSrc = jQuery(scripts[i]).attr("src");
    if ( scriptSrc ) var result = scriptSrc.match(/http:(.*)jquery-comments.js/);
		if ( result ) break;
	}
	ajaxURL = result[0].replace(/jquery-comments.js/, "jquery-ajax.php");

	jQuery("#commentform").submit(function(){
		disableForm();
		if ( jQuery.find("#commentlist") == "" ) jQuery(this).parent().before('<ol id="commentlist"></ol>');
		jQuery("#commentlist").append('<li id="comment-loading"><p>loading...</p></li>');
		ajaxEffect("#comment-loading");
		jQuery.ajax({
			type: "POST",
			url: ajaxURL,
			data: jQuery("#commentform input, #commentform textarea").serialize(),
			dataType: "html",
			error: function(request){
				if (jQuery("#ajaxerror")) jQuery("#ajaxerror").remove();
				jQuery("#comment-loading").fadeOut(1000, function(){
					jQuery("#comment-loading").remove();
					if (request.responseText.search(/<title>WordPress &rsaquo; Error<\/title>/) != -1) {
						var data = request.responseText.match(/<p>(.*)<\/p>/);
						data = '<li id="ajaxerror"><p>Error: ' + data[1] + '</p></li>';
					} else {
						var data = request.responseText;
					}
					jQuery("#commentlist").append(data);
					ajaxEffect("#ajaxerror");
					enableForm();
				});
			},
			success: function(data){
				if (jQuery("#ajaxerror")) jQuery("#ajaxerror").remove();
				jQuery("#comment-loading").fadeOut(1000, function(){
					jQuery("#comment-loading").remove();
					jQuery("#commentlist").append(data);
					ajaxEffect("#newcomment");
					jQuery("#commentform textarea").val("");
					enableForm();
					if (window.AjaxEditComments) {
						AjaxEditComments.init();
					}
				});
			}
		});
		return false;
	});

});