public void Mode_Cast(WebModuleParams wmp)
    {
        Int32 castid = Int32.Parse(wmp["cast"]);

        Controls.AddLiteral("<div class=\"toolbar\">");
        Controls.AddLiteral("<a href=\"", this.ModuleRoot, "\" title=\"", Lang["navbar.root"], "\">", Lang["navbar.root"], "</a>");
        if (WebUser.Current.IsInRole(this.EditorRole))
        {
            Controls.AddLiteral(" | <a href=\"", this.ModuleRoot, "/editbroadcast/", castid, "\" title=\"", Lang["navbar_edit_title"], "\">",Lang["navbar_edit"],"</a>");
        }
        Controls.AddLiteral("</div>");

        using (DataTable itable = new DataAdapter().Select("NAME", "DESCRIPTION", "ALLOW_CHAT")
            .From("BROADCASTING").JoinExt("TEXT", true)
            .Where("ID = @castid")
            .AddParametr("@castid", castid)
            .GetData())
        {
            if (itable.Rows.Count > 0)
            {
                Controls.AddLiteral("<h1>", itable.Rows[0]["NAME"], "</h1>");
                Controls.AddLiteral("<div class=\"cast-description\">", itable.Rows[0]["DESCRIPTION"], "</div>");
                if (itable.Rows[0]["ALLOW_CHAT"].Equals(DBUtils.ValueTrue))
                {
                    ChatRoom chr = new ChatRoom();
                    chr.ChatRoomKey = String.Concat("video_cast_", castid);
                    chr.UserIsModerator = WebUser.Current.IsInRole(EditorRole);
                    Controls.Add(chr);
                }
            }
        }

        Controls.AddLiteral("<div id=\"Sites_video_broadcasting\">");

        using (DataTable table = new DataAdapter()
                .Select("NAME", "Description",  "ID", "WIDTH", "HEIGHT")
                .From("BROADCASTING_STREAMS")
                .JoinExt("TEXT", true)
                .Where("BROADCASTING_ID = @castid")
                .AddParametr("@castid", castid)
                .GetData())
        {
            foreach (DataRow item in table.Rows)
            {
                Controls.AddLiteral("<div class=\"stream\" style=\"width:", item["width"], "px;\" id=\"", item["ID"], "\" title=\"", item["NAME"], "\">");
                Controls.AddLiteral("<div class=\"cast-head\"><span>", item["description"], "</span><h2>", item["name"], "</h2></div>");
                Controls.AddLiteral("<div class=\"player-holder\" style=\"width:", item["width"], "px;height:", item["height"], "px;\" ><div class=\"player-holder\" id=\"castplayer_", item["ID"], "\"></div></div>");
                Controls.AddLiteral("<div class=\"cast-tools\"></div>");
                Controls.AddLiteral("</div>");
            }
        }

        scripts.Add("/tools/JavaScript/jquery.js");
        scripts.Add("/tools/JavaScript/jquery-ui.js");
        scripts.Add("/tools/JavaScript/UmediaFlashPlayer/umsplayer.js");
        scripts.Add("/sites/video.mineralogy.ru/broadcasing-viewer.js");

        ScriptControlDescriptor sd = new ScriptControlDescriptor("IWCtrls.BroadcasctingViewer", "Sites_video_broadcasting");
        sd.AddProperty("BroadcastingId", castid);
        sd.AddProperty("xlang", Lang.SerialiseJson());
        sdescriptions.Add(sd);
    }
    public void Mode_EditBroadcast(WebModuleParams wmp)
    {
        Int32 castid = Int32.Parse(wmp["editbroadcast"]);

        Controls.AddLiteral("<div class=\"toolbar\">");
        Controls.AddLiteral("<a href=\"", this.ModuleRoot, "\" title=\"", Lang["navbar.root.title"], "\">", Lang["navbar.root"], "</a>");
        Controls.AddLiteral(" | <a href=\"", this.ModuleRoot, "/cast/", castid, "\" title=\"", Lang["navbar.view.title"], "\">", Lang["navbar.view"], "</a>");
        Controls.AddLiteral("</div>");

        String name = new DataAdapter().Select("NAME").From("BROADCASTING").JoinExt("TEXT").Where("ID = @castid")
            .AddParametr("@castid", castid)
            .GetDataScalar() as String ?? "noname";
        Controls.AddLiteral("<h1>", name, "</h1>");

        Controls.AddLiteral("<div id=\"Sites_video_broadcasting_chanel_tabs\" style=\"display:none;\">");
        Controls.AddLiteral("<ul>");
        Controls.AddLiteral("<li><a href=\"#tab-1\">", Lang["tab.common"], "</a></li>");
        Controls.AddLiteral("<li><a href=\"#tab-2\">", Lang["tab.streams"], "</a></li>");
        Controls.AddLiteral("<li><a href=\"#tab-3\">", Lang["tab.conversation"], "</a></li>");
        Controls.AddLiteral("</ul>");

        Controls.AddLiteral("<div id=\"tab-1\">");
        ExFormDataAdapter form = new ExFormDataAdapter(Lang["form.title"], "BROADCASTING", "media");
        form.AddField("ExFieldLanguageString", "NAME", Lang["form.name"], DBUtils.ValueTrue, "TEXT")
            .AddField("ExFieldDateTime", "START_DATE", Lang["form.start"], DBUtils.ValueTrue)
            .AddField("ExFieldDateTime", "END_DATE", Lang["form.end"], DBUtils.ValueTrue)
            .AddField("ExFieldLanguageHtmlText", "DESCRIPTION", Lang["form.description"], DBUtils.ValueFalse, "TEXT");
        form.RecordID = castid;
        form.Initialise();
        form.DataForm.SubmitText = Lang["form.submit"];
        Controls.Add(form);
        Controls.AddLiteral("</div>");

        // потоки
        Controls.AddLiteral("<div id=\"tab-2\">");
        Controls.AddLiteral("<table id=\"stream-list\"><tr><td/></tr></table>");
        Controls.AddLiteral("<div id=\"stream-list-pager\"></div>");
        Controls.AddLiteral("</div>");

        // чат
        Controls.AddLiteral("<div id=\"tab-3\" class=\"ExForm\">");
        Controls.AddLiteral("<fieldset>");
        Controls.AddLiteral("<legend>", Lang["conversation.form.title"], "</legend>");
        Controls.AddLiteral("<div><input type=\"checkbox\" name=\"stream-conversation-enable\" id=\"stream-conversation-enable\" /> <label for=\"stream-conversation-enable\">", Lang["conversation.form.contol"], "</label></div>");
        Controls.AddLiteral("<div class=\"optional\">");
        Controls.AddLiteral("<div><input type=\"checkbox\" name=\"stream-conversation-allow\" id=\"stream-conversation-allow\" /> <label for=\"stream-conversation-allow\">", Lang["conversation.form.enable"], "</label></div>");
        Controls.AddLiteral("<table>");
        Controls.AddLiteral("<tr>");
        Controls.AddLiteral("<td>", Lang["conversation.form.header"], "</td>");
        Controls.AddLiteral("<td class=\"Multilang\">");
        Controls.AddLiteral("<label><span class=\"langname\">ru:</span><input type=\"text\" name=\"stream-conversation-h1-ru\" id=\"stream-conversation-h1-ru\" /></label>");
        Controls.AddLiteral("<label><span class=\"langname\">en:</span><input type=\"text\" name=\"stream-conversation-h1-en\" id=\"stream-conversation-h1-en\" /></label>");
        Controls.AddLiteral("</td>");
        Controls.AddLiteral("</tr>");
        Controls.AddLiteral("<tr>");
        Controls.AddLiteral("<td>", Lang["conversation.form.description"], "</td>");
        Controls.AddLiteral("<td class=\"Multilang\">");
        Controls.AddLiteral("<label><span class=\"langname\">ru:</span><input type=\"text\" name=\"stream-conversation-h2-ru\" id=\"stream-conversation-h2-ru\" /></label>");
        Controls.AddLiteral("<label><span class=\"langname\">en:</span><input type=\"text\" name=\"stream-conversation-h2-en\" id=\"stream-conversation-h2-en\" /></label>");
        Controls.AddLiteral("</td>");
        Controls.AddLiteral("</tr>");
        Controls.AddLiteral("</table>");
        Controls.AddLiteral("<div class=\"button-place\"><input type=\"button\" name=\"stream-conversation-save\" id=\"stream-conversation-save\" value=\"", Lang["form.submit"], "\" /></div>");
        Controls.AddLiteral("</div>");
        Controls.AddLiteral("</fieldset>");
        Controls.AddLiteral("</div>");

        Controls.AddLiteral("</div>");

        scripts.Add("/tools/JavaScript/jquery.js");
        scripts.Add("/tools/JavaScript/jquery-ui.js");
        scripts.Add(String.Concat("/tools/JavaScript/jquery-jqGrid-i18n/grid.locale-", Lang["lang"], ".js"));
        scripts.Add("/tools/JavaScript/jquery.jqGrid.js");
        scripts.Add("/tools/JavaScript/rpc.js");
        scripts.Add("/sites/video.mineralogy.ru/broadcasing-editor.js");

        ScriptControlDescriptor sd = new ScriptControlDescriptor("IWCtrls.BroadcasctingEditor", "Sites_video_broadcasting_chanel_tabs");
        sd.AddProperty("BroadcastingId", castid);
        sd.AddProperty("xlang", Lang.SerialiseJson());
        sdescriptions.Add(sd);
    }