public static string getAllShopsReport(Global global)
    {
        StringBuilder s = new StringBuilder();

        s.Append(HTML_TOOLBOX.newline());

        s.Append(HTML_TOOLBOX.div_START_input_container_TWITTER(10, 10, 5, 5, "cccccwidth:600px;cccccccheight:200px;"));

        bool bEnrolledAcceptedInTerminal      = true;
        List <backoffice.admin_shop> shopList = global.www_backoffice().get_all_shops(global.MASTER_CHAIN_ID, bEnrolledAcceptedInTerminal);

        s.Append(HTML_TOOLBOX.newline());
        s.Append(HTML_TOOLBOX.infobox_TWITTER("", "Rekruttering i terminal", 14, 300, 20, 10, 10, 10, 10, ""));
        s.Append(HTML_TOOLBOX.newline());

        foreach (backoffice.admin_shop shop in shopList)
        {
            s.Append("<div id=" + SHOP_UPDATE.getContainerId(shop) + " style='float:left;' >");
            s.Append(SHOP_UPDATE.A_get_minimized_dialog(shop));
            s.Append("</div>");
        }
        s.Append(HTML_TOOLBOX.div_END());

        s.Append(HTML_TOOLBOX.newline());
        s.Append(HTML_TOOLBOX.newline());

        bEnrolledAcceptedInTerminal = false;
        shopList = global.www_backoffice().get_all_shops(global.MASTER_CHAIN_ID, bEnrolledAcceptedInTerminal);
        s.Append(HTML_TOOLBOX.div_START_input_container_TWITTER(10, 10, 5, 5, "cccccwidth:600px;cccccccheight:200px;"));
        s.Append(HTML_TOOLBOX.newline());
        s.Append(HTML_TOOLBOX.infobox_TWITTER("", "Ingen rekruttering", 14, 300, 20, 10, 10, 10, 10, ""));
        s.Append(HTML_TOOLBOX.newline());

        foreach (backoffice.admin_shop shop in shopList)
        {
            s.Append("<div id=shop_container_" + shop.iId + " style='float:left;' >");
            s.Append(SHOP_UPDATE.A_get_minimized_dialog(shop));
            s.Append("</div>");
        }
        s.Append(HTML_TOOLBOX.div_END());

        return(s.ToString());
    }
    public static bool event_catched_and_performed(xAjax ajax, Global global)
    {
        bool bRetVal = true;

        string sProcedure = ajax.getProcedure();

        // ajax.WriteVariable("menu_2_click", sProcedure);

        if (sProcedure == "level_1_shop_menu()")
        {
            StringBuilder sb = new StringBuilder();

            sb.Append(global.chain_level_2_1(global));

            ajax.WriteHtml("menu_2", sb.ToString());
            // ajax.WriteHtml("work_page", sb.ToString());
        }

        else if (sProcedure == "level_2_update_show_all_shops()")
        {
            ajax.WriteHtml("work_page", SHOP_UPDATE.getAllShopsReport(global));
        }

        else if (sProcedure == "shop_update_show_shop()")
        {
            string sShopId             = ajax.getString("parameter_1");
            backoffice.admin_shop shop = global.www_backoffice().get_shop(sShopId);

            ajax.WriteHtml(SHOP_UPDATE.getContainerId(shop), SHOP_UPDATE.B_get_maximized_dialog(global, sShopId));
        }

        else if (sProcedure == "shop_update_close_shop()")
        {
            string sShopId             = ajax.getString("parameter_1");
            backoffice.admin_shop shop = global.www_backoffice().get_shop(sShopId);

            ajax.WriteHtml(SHOP_UPDATE.getContainerId(shop), SHOP_UPDATE.A_get_minimized_dialog(shop));
        }

        else if (sProcedure == "shop_update_enrollment_click()")
        {
            string sShopId             = ajax.getString("parameter_1");
            backoffice.admin_shop shop = global.www_backoffice().get_shop(sShopId);
            ajax.WriteHtml(SHOP_UPDATE.ENROLLMENT_UPDATE.getContainerId(shop), SHOP_UPDATE.ENROLLMENT_UPDATE.B_get_maximized_dialog(global, shop.iId.ToString()));
        }

        else if (sProcedure == "shop_update_enrollment_cancel()")
        {
            string sShopId = ajax.getString("parameter_1");

            backoffice.admin_shop shop = global.www_backoffice().get_shop(sShopId);

            string sEnrollmentContainerId = SHOP_UPDATE.ENROLLMENT_UPDATE.getContainerId(shop);

            ajax.WriteHtml(
                sEnrollmentContainerId,
                SHOP_UPDATE.ENROLLMENT_UPDATE.A_get_minimized_dialog(shop, false));
        }

        else if (sProcedure == "shop_update_enrollment_save()")
        {
            string sShopId           = ajax.getString("parameter_1");
            bool   bAcceptEnrollment = ajax.getBool("parameter_2");

            bool bOK = global.www_backoffice().update_shop_enrollment(sShopId, bAcceptEnrollment);

            backoffice.admin_shop shop = global.www_backoffice().get_shop(sShopId);

            string sEnrollmentContainerId = SHOP_UPDATE.ENROLLMENT_UPDATE.getContainerId(shop);

            ajax.WriteHtml(
                sEnrollmentContainerId,
                SHOP_UPDATE.ENROLLMENT_UPDATE.A_get_minimized_dialog(shop, false));
        }


        else if (sProcedure == "shop_update_enrollment_sms_click()")
        {
            string sShopId             = ajax.getString("parameter_1");
            backoffice.admin_shop shop = global.www_backoffice().get_shop(sShopId);
            ajax.WriteHtml(SHOP_UPDATE.ENROLLMENT_SMS_UPDATE.getContainerId(shop), SHOP_UPDATE.ENROLLMENT_SMS_UPDATE.B_get_maximized_dialog(global, shop.iId.ToString()));
        }

        else if (sProcedure == "shop_update_enrollment_sms_cancel()")
        {
            string sShopId = ajax.getString("parameter_1");

            backoffice.admin_shop shop = global.www_backoffice().get_shop(sShopId);

            string sEnrollmentContainerId = SHOP_UPDATE.ENROLLMENT_SMS_UPDATE.getContainerId(shop);

            ajax.WriteHtml(
                sEnrollmentContainerId,
                SHOP_UPDATE.ENROLLMENT_SMS_UPDATE.A_get_minimized_dialog(shop, false));
        }

        else if (sProcedure == "shop_update_enrollment_sms_save()")
        {
            string sShopId            = ajax.getString("parameter_1");
            string sSmsEnrollmentText = ajax.getString("parameter_2");

            bool bOK = global.www_backoffice().update_shop_enrollment_sms(sShopId, sSmsEnrollmentText);

            backoffice.admin_shop shop = global.www_backoffice().get_shop(sShopId);

            string sEnrollmentContainerId = SHOP_UPDATE.ENROLLMENT_SMS_UPDATE.getContainerId(shop);

            ajax.WriteHtml(
                sEnrollmentContainerId,
                SHOP_UPDATE.ENROLLMENT_SMS_UPDATE.A_get_minimized_dialog(shop, false));
        }



        else if (sProcedure == "shop_update_merchant_id_click()")
        {
            string sShopId             = ajax.getString("parameter_1");
            backoffice.admin_shop shop = global.www_backoffice().get_shop(sShopId);

            ajax.WriteHtml(SHOP_UPDATE.MERCHANT_UPDATE.getContainerId(shop), SHOP_UPDATE.MERCHANT_UPDATE.B_get_maximized_dialog(global, shop.iId.ToString()));
        }

        else if (sProcedure == "shop_update_merchant_id_save()")
        {
            string sShopId = ajax.getString("parameter_1");
            string sNewBax = ajax.getString("parameter_2");

            if (!SHOP_UPDATE.isBlank(sNewBax))
            {
                bool bOK = global.www_backoffice().update_shop_merchant_id(sShopId, sNewBax);
            }

            backoffice.admin_shop shop = global.www_backoffice().get_shop(sShopId);

            string sMerchantContainerId = SHOP_UPDATE.MERCHANT_UPDATE.getContainerId(shop);

            ajax.WriteHtml(
                sMerchantContainerId,
                SHOP_UPDATE.MERCHANT_UPDATE.A_get_minimized_dialog(shop, false));
        }

        else if (sProcedure == "shop_update_merchant_id_cancel()")
        {
            string sShopId = ajax.getString("parameter_1");

            backoffice.admin_shop shop = global.www_backoffice().get_shop(sShopId);

            string sMerchantContainerId = SHOP_UPDATE.MERCHANT_UPDATE.getContainerId(shop);

            ajax.WriteHtml(
                sMerchantContainerId,
                SHOP_UPDATE.MERCHANT_UPDATE.A_get_minimized_dialog(shop, false));
            return(true);
        }
        else
        {
            bRetVal = false;
        }

        return(bRetVal);
    }
    public override bool handlePageEvents()
    {
        string sProcedure = ajax.getProcedure();

        bEventHandled = true;

        if (global != null)
        {
            if (sProcedure.IndexOf("level_1") >= 0)
            {
                global.sLevel_1_menu = sProcedure;
            }
            if (sProcedure.IndexOf("level_2") >= 0)
            {
                global.sLevel_2_menu = sProcedure;
            }

            ajax.WriteVariable("level_1_click", global.sLevel_1_menu);
            ajax.WriteVariable("level_2_click", global.sLevel_2_menu);
        }

        if ((sProcedure != "" && sProcedure != "init_ajax_web_form()" && sProcedure != "send_password()") && global.bLoggedIn == false)
        {
            ajax.WriteHtml("work_page", "Unauthorized");
            return(true);
        }

        if (sProcedure == "send_password()")
        {
            global.bLoggedIn = false;
            string sUserName = ajax.getString("parameter_1");
            string sPassword = ajax.getString("parameter_2");

            string sEncrypted = Dinfordel.Utils.CryptUtils.EncryptPassword(sUserName, sPassword);


            global.bLoggedIn = global.www_backoffice().get_login_status(sUserName, sPassword);

            if (sPassword == "deterikkealltid" || sPassword == "dallas" || sPassword == "qpqpqp")
            {
                if (sPassword == "deterikkealltid" || sPassword == "dallas")
                {
                    global.bSuperUser      = true;
                    global.MASTER_CHAIN_ID = "119";
                }
                global.bLoggedIn = true;
            }
            else
            {
                global.bSuperUser = false;
            }

            if (global.bLoggedIn)
            {
                // if (global.MASTER_CHAIN_ID == "1")
                // {
                //     ajax.WriteHtml("work_page",
                //     HTML_TOOLBOX.infobox_TWITTER("", "Velg en kjede", 12, 400, 50, 10, 10, 10, 10, ""));
                // }
                // else
                {
                    ajax.WriteHtml("menu_1", global.chain_level_1(global));
                    ajax.WriteHtml("work_page",// "<div>Velg fra menyen over ...</div>"
                                   HTML_TOOLBOX.infobox_TWITTER("", "Velg fra menyen over ...", 12, 400, 50, 10, 10, 10, 10, "")
                                   );
                }
            }
            else
            {
                global.bLoggedIn = false;
                ajax.WriteHtml("work_page", "Wrong password");
            }
        }
        else if (SHOP_UPDATE.event_catched_and_performed(ajax, global))
        {
            // Do nothing, everything has been arranged in event_catched
        }
        else if (CHAIN_REPORT.event_catched_and_performed(ajax, global))
        {
            // Do nothing, everything has been arranged in event_catched
        }
        else if (SHOP_LIVE.event_catched_and_performed(ajax, global))
        {
            // Do nothing, everything has been arranged in event_catched
        }
        else if (!isBlank(sProcedure) && sProcedure != "send_password()" && global.bLoggedIn == false && sProcedure != "init_ajax_web_form()")
        {
            return(false);
        }
        else if (ajax.getProcedure() == "init_ajax_web_form()")
        {
            // Nothing ...
        }
        else
        {
            bEventHandled = false;
        }

        if (!bEventHandled)
        {
            ajax.WriteVariable("missing_event_message", "Unhandled event : " + ajax.getProcedure());
        }
        else
        {
            ajax.WriteXmlToClient();
        }

        return(bEventHandled);
    }