/**
 * Access to group forbiden page script
 * 
 * @author Pierre HUBERT
 */

ComunicWeb.pages.groups.pages.forbidden = {

    /**
     * Open access forbidden page
     * 
     * @param {Number} id The ID of the target group
     * @param {HTMLElement} target The target of the page
     */
    open: function(id, target){

        //Create page container
        var pageContainer = createElem2({
            appendTo: target,
            type: "div",
            class: "group-forbidden-page-container"
        });

        //Loading message target
        var loadingMessage = ComunicWeb.common.messages.createCalloutElem(
            "Loading", 
            "Please wait while we load a few information...", 
            "info");
        pageContainer.appendChild(loadingMessage);

        //Get information about the page
        ComunicWeb.components.groups.interface.getInfo(id, function(result){

            //Remove loading message
            loadingMessage.remove();

            //Check for errors
            if(result.error){
                pageContainer.appendChild(
                    ComunicWeb.common.messages.createCalloutElem(
                        "Error",
                        "An error occured while retrieve group information!",
                        "danger"
                    )
                );
            }

            //Display forbidden page
            ComunicWeb.pages.groups.pages.forbidden.display(id, result, pageContainer);

        });

    },

    /**
     * Display forbidden page
     * 
     * @param {Number} id The ID of the group
     * @param {Object} result Information about the group
     * @param {HTMLElement} target The target for the page
     */
    display: function(id, result, target){

        //Update page title
        ComunicWeb.common.pageTitle.setTitle(result.name);

        //Create a box to contain information about registration
        var box = createElem2({
            appendTo: target,
            type: "div",
            class: "box box-primary"
        });

        //Box body
        var boxBody = createElem2({
            appendTo: box,
            type: "div",
            class: "box-body"
        });

        //Display basical information about the group
        //Group logo
        createElem2({
            appendTo: boxBody,
            type: "img",
            src: result.icon_url,
            class: "group-logo"
        });

        //Add group title
        createElem2({
            appendTo: boxBody,
            type: "h2",
            innerHTML: result.name,
            class: "group-name"
        });

        //Add a notice
        add_p(boxBody, "A registration is required to access this group contents.");

        //Append membership block (if the user is signed in)
        if(signed_in())
            ComunicWeb.pages.groups.sections.membershipBlock.display(result, boxBody);
    },
}