jq(document).ready(function() {

    /*****************************************************************
     * Show the reply button only when Javascript is enabled.
     * Otherwise hide it, since the reply functions relies on jQuery.
     *****************************************************************/
    jq(".reply-to-comment-button").css("display" , "inline");


    /*****************************************************************
	 * Create reply to comment form.
     *****************************************************************/
	jq(".reply-to-comment-button").bind("click", function(e){

		var comment_div = jq(this).parents().filter(".comment");
		var comment_id = comment_div.attr("id");

		var reply_button = comment_div.find(".reply-to-comment-button");

	    /* Clone the reply div at the end of the page template that contains
	     * the regular comment form and insert it after the reply button of the
	     * current comment.
	     */
	    var reply_div = jq("#commenting").clone(true);
	    reply_div.appendTo(comment_div).css("display", "none");

	    /* Remove id="reply" attribute, since we use it to uniquely
	       the main reply form. */
	    reply_div.removeAttr("id")

	    /* Hide the reply button (only hide, because we may want to show it
	     * again if the user hits the cancel button).
	     */
	    jq(reply_button).css("display", "none");

	    /* Fetch the reply form inside the reply div */
	    var reply_form = reply_div.find("form");

	    /* Add a hidden field with the id of the comment */
        reply_form.append("<input type=\"hidden\" value=\"" + comment_id + "\" name=\"form.reply_to_comment_id\" />");

	    /* Change the form action to @@reply-to-comment */
	    var old_action = reply_form.attr("action");
	    var new_action = old_action.replace("@@add-comment",  "@@reply-to-comment");
	    reply_form.attr("action", new_action);

	    /* Add a remove-reply-to-comment Javascript function to remove the form */
	    var cancel_reply_button = reply_div.find(".cancelreplytocomment");
	    cancel_reply_button.attr("id", comment_id);

	    /* Remove already typed in text from the reply form. */
	    reply_form.find(".field").find("input").attr("value", "")
	    reply_form.find(".field").find("textarea").attr("value", "")

	    /* Show the reply layer with a slide down effect */
	    reply_div.slideDown("slow");

	    /* Show the cancel button in the reply-to-comment form */
	    cancel_reply_button.css("display", "inline");

    });


    /*****************************************************************
     * Remove reply to comment form.
     *****************************************************************/
    jq(".cancelreplytocomment").bind("click", function(e){

        reply_to_comment_button = jq(this).parents().filter(".comment").find(".reply-to-comment-button");

        /* Find the reply-to-comment form and hide and remove it again. */
        reply_to_comment_form = jq(this).parents().filter(".reply")
        reply_to_comment_form.slideUp("slow", function() { jq(this).remove(); } );

        /* Show the reply-to-comment button again. */
        reply_to_comment_button.css("display", "inline");

    });

    /*****************************************************************
     * Remove comment.
     *****************************************************************/
    /*
    jq("input[name='form.button.DeleteComment']").click(function(e){
		e.preventDefault();
		var form = jq(this).parent();
        var target = jq(form).attr("action");
		var comment = jq(form).parent();
		var reply_comments = jq(comment).find("~ .comment:not(.replyTreeLevel0 ~ div)");
		reply_comments.css("background", "red");
        jq.ajax({
            type: "GET",
            url: target,
            success: function(msg){
                // fade out row
                jq(comment).fadeOut("normal", function(){
                    jq(this).remove();
                });
            },
            error: function(msg){
                alert("Error sending AJAX request:" + target);
            },
        });
    });
    */

    /*****************************************************************
     * Publish comment.
     *****************************************************************/
    /*
    jq("input[name='form.button.PublishComment']").click(function(e){
        e.preventDefault();
		var button = jq(this);
        var form = jq(this).parent();
        var target = jq(form).attr("action");
        var comment = jq(form).parent()
        jq.ajax({
            type: "GET",
            url: target,
            success: function(msg){
                // fade out row
                jq(button).fadeOut("normal", function(){
                    jq(form).remove();
                });
            },
            error: function(msg){
                alert("Error sending AJAX request:" + target);
            },
        });
    });
    */
 });