var Tutor = function()//{{{
{
    var self = this;

    self.docs = $(".doc");
    self.tools = $("#tools");

    for (var i = 0; i < self.docs.length; i++)
        self.setupDoc($(self.docs.get(i)));

    if (self.tools)
    {
        var add = self.tools.children().filter('a[action=add]');
        self.addDoc = undefined;

        if (add.get(0))
        {
            self.addDoc = add;

            self.addDoc.click(
                function (evt)
                {
                    return;
                    evt.preventDefault();
                }
            );
        }
    }

}//}}}

Tutor.prototype.setupDoc = function (doc)//{{{
{
    var self = this;

    var links = doc.children().filter('a');
    var toolbox = $(doc.children().filter('.tools'));
    var answer = $(doc.children().filter('.a'));
    var editor = doc.children().filter('div.editor');
    var item_id = toolbox.attr('item');
    var lnk, lnk_type;
    var d;

    for (var i = 0; i < links.length; i++)//{{{
    {
        lnk = $(links.get(i));
        lnk_type = lnk.attr('doclink');

        if (lnk_type)//{{{
        {
            if (lnk_type == 'link') continue;

            d = $(document.createElement('div'));
            lnk.after(d);
            d.addClass("quote");
            d.load(lnk.attr('href'));

            if (lnk_type == 'answer')
            {
                d.hide();
                var d_hidden = true;

                lnk.click(
                    function (evt)
                    {
                        if (d_hidden)
                        {
                            d.show();
                            d_hidden = false;
                        }
                        else
                        {
                            d.hide();
                            d_hidden = true;
                        }

                        evt.preventDefault();
                    }
                );
            }
        }//}}}

    }//}}}

    if (toolbox)//{{{
    {
        var elm = {};
        elm.edit = $(toolbox.children().filter('a[action=edit]'));

        if (elm.edit.get(0)
            && editor.get(0))
        {
            // editor.hide();

            elm.edit.click(
                function (evt)
                {
                    return;
                    // editor.show();
                    editor.load(
                        elm.edit.attr('href'),
                        undefined,
                        function(response,stat,xhttp)
                        {
                            editor.show();
                        }
                    );
                    evt.preventDefault();
                }
            );
        }
    }//}}}

    if (answer)//{{{
    {
        var alnk = $(document.createElement('A'));
        alnk.attr('href', 'javascript:');
        alnk.text('+');
        answer.after(alnk);
        answer.hide();
        var answerVisible = false;

        alnk.click(
            function (evt)
            {
                if (!answerVisible)
                {
                    alnk.text('-');
                    answer.show();
                    answerVisible = true;
                }
                else
                {
                    alnk.text('+');
                    answer.hide();
                    answerVisible = false;
                }
            }
        );

    }//}}}

}//}}}

var tutor_init = function(cfg)//{{{
{
    new Tutor();
}//}}}

