$(document).ready(function() {

	var comment = $('.comment');
	var paginators = $('.commentIndex .paginator');
	var links = null;

	var initPagination = function() {
		if(links != null) links.unbind("click");
		links = paginators.find('a');

		var lock = false;

		links.click(function() {
			if(lock)
				return false;
			lock = true;

			var a = $(this);

			if(!a.is(".active")) {

				var href = a.attr("href");

				$.ajax({
					type: "GET",
					url: href,
					dataType: "json",
					success: function(data) {
						var newComment = $(data.comment);
						newComment.insertAfter(comment);
						comment.remove();
						comment = newComment;

						var newPaginator = $(data.paginator);
						newPaginator.insertAfter(paginators);
						paginators.remove();
						paginators = $('.commentIndex .paginator');

						var href= document.location.href;
						var ref = "#startComment";
						var refPos = href.indexOf("#");
						if(refPos == -1)
						    href += ref;
						else
							href = href.substring(0, refPos) + ref;
						document.location = href;

						initPagination();
					},
					error: function(xhr , type , exception) {
						comment.text(exception.message);
					},
					complete: function(xht , type) {
						lock = false;
					}
				});
			}

			return false;
		});
	};

	initPagination();
});