var ajax_comments = {
	locked: [],

	onsubmit: function() {
    var form = this;
	
    if (ajax_comments.locked[form]) {
		return false;
	} else {
		ajax_comments.locked[form] = true;
	}

    jQuery.ajax({
		type: 'POST',
		url: 'http://hieudt.info/blog/wp-content/themes/hieudt/includes/ajax-comments/ajax-comments-post.php',
		data: jQuery(this).serialize(),
		dataType: 'json',
		cache: false,
		timeout: 60000,

		beforeSend: function(XMLHttpRequest) {
			jQuery('.ajax_comments_error', form).remove();
			jQuery('#acp-preview', form)
				.attr('disabled', 'disabled')
				.hide();
			jQuery('input[@type=submit]', form)
				.attr('disabled', 'disabled')
				.hide()
				.after('<div class="ajax_comments_spinner" title="Submitting your comment...">Submitting...</div>');
		},

		success: function(data, textStatus) {
			if ( typeof(data.comment_ID) == 'undefined' ||
				 typeof(data.comments_template) == 'undefined' ||
			     !data.comments_template ) {
				this.error({responseText:''}, '', '');
				return;
			}

	        var wrapper = jQuery(form).parents('div#ajax_comments_wrapper');
	        var new_wrapper = jQuery(data.comments_template);
	        var new_comment = jQuery('#comment-'+ data.comment_ID +', .commentlist *:last', new_wrapper).eq(0).hide();
			var new_comment_form = jQuery('textarea[@name=comment]', new_wrapper).parents('form');
			
			jQuery('.commentlist').hide();

			if (new_comment_form.length) {
				new_comment_form.after(form).remove();
			} else {
				new_wrapper.append(form);
			}
			
			wrapper.after(new_wrapper).remove();
			
	        if (typeof(AjaxEditComments) != 'undefined') {
				AjaxEditComments.init();
	        }
			
			if (typeof(MGJS_CMT) != 'undefined') {
				MGJS_CMT.init();
			}
			
			if (typeof(AJAXCommentPreview) != 'undefined') {
				jQuery('#ajax-comment-preview',form).html('<div style="padding:8px;font-size:11px;">' + AJAXCommentPreview.emptyString + '</div>');
			}
			
			jQuery('#cmtidTabs').idTabs(); 

			jQuery('.commentlist').show();
			
			new_comment.fadeIn(2000);

			jQuery('#respond').slideUp('slow');

			jQuery('#comment', form).val('');
			jQuery('#comment_parent', form).val('0');
			jQuery('#mcspvalue', form).val('');
			jQuery('#mcspquestion', form).html(data.mcspquestion);
			jQuery('#mcspinfo', form).val(data.mcspinfo);
			
			setTimeout(function() {
				jQuery('#respond').slideDown('slow');
			}, 5000);
			
			if (typeof(RCJS) != 'undefined') {
				RCJS.page('http://hieudt.info','',0,'Loading');
			}
			
			this.cleanup();
		},

		error: function(XMLHttpRequest, textStatus, errorThrown) {
			var error = '';
			if (typeof(XMLHttpRequest.responseText) == 'string' && XMLHttpRequest.responseText != '') {
				error = XMLHttpRequest.responseText;
			} else if (textStatus == 'timeout') {
				error = 'The server is taking too long to respond. Please try again later.';
			} else {
				error = 'Unknown error while submitting your comment. Try again?';
			}
			jQuery(form).prepend('<div class="ajax_comments_error">'+ error +'</div>');
			this.cleanup();
		},

		cleanup: function() {
			jQuery('.ajax_comments_spinner', form).remove();
			jQuery('input[@type=submit]', form)
				.removeAttr('disabled')
				.show();
			jQuery('#acp-preview', form)
				.removeAttr('disabled')
				.show();
			ajax_comments.locked[form] = false;
		}
    });

    return false;
  }
}

jQuery(function() {
	jQuery('#commentform').bind('submit', ajax_comments.onsubmit);
});
