protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            int training_id = Convert.ToInt32(Request.QueryString["trainingID"]);
            qLrn_Training_View training = new qLrn_Training_View(training_id);
            litTitle.Text = "Training Report <strong>" + training.Title + "</strong>";

            litBtnManageEnrolled.Text = "<a href=\"/manage/members/learning/user-training-list.aspx?trainingID=" + training_id + "\" class=\"btn\"><i class=\"icon-group\"></i>&nbsp;&nbsp;Enrolled Members</a>";
            litBtnManageTraining.Text = "<a href=\"training-edit.aspx?trainingID=" + training_id + "\" class=\"btn\"><i class=\"icon-edit\"></i>&nbsp;&nbsp;Manage Training</a>";
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        string resources_url = System.Configuration.ConfigurationManager.AppSettings["Learning_SlideIconBasePath"];
        string view_mode = "review";

        if (!Page.IsPostBack)
        {
            training_id = Convert.ToInt32(Request.QueryString["trainingID"]);

            qLrn_Training_View training = new qLrn_Training_View(training_id);
            litAboutTraining.Text = training.Description;

            // get icons for training
            var slide_icons = qLrn_TrainingSlide_View.GetAvailableSlidesInOrder(training_id);

            // get basic report data
            List<TrainingReport> report = new List<TrainingReport>();
            report = qRpt_LearningReport.GenerateTrainingReportSummary(training_id);

            litCreated.Text = Convert.ToString(training.Created.ToString("M/d/yyyy"));
            litEnrolledMembers.Text = Convert.ToString(report[0].num_enrolled);
            litFinishedMembers.Text = Convert.ToString(report[0].num_finished);
            litPassedOutMembers.Text = Convert.ToString(report[0].num_passed_out);
            litCompletionRate.Text = Convert.ToString(Math.Round(report[0].percent_finished, 2)) + "%";

            // check to see if there is a pre-assessment
            var pre = qLrn_Assessment.GetTrainingAssessment(training_id, "pre");
            var post = qLrn_Assessment.GetTrainingAssessment(training_id, "post");

            if (pre != null)
                litPreAssessmentPassRate.Text = Convert.ToString(Math.Round(report[0].percent_passed_pre_assessment, 2)) + "%";
            else
                litPreAssessmentPassRate.Text = "no pre-assessment";

            if (post != null)
                litPostAssessmentPassRate.Text = Convert.ToString(Math.Round(report[0].percent_passed_post_assessment, 2)) + "%";
            else
                litPostAssessmentPassRate.Text = "no post-assessment";

            // get prior 28 days data
            DateTime end_time = new DateTime();
            end_time = DateTime.Now.AddDays(1);
            DateTime start_time = new DateTime();
            start_time = DateTime.Now.AddDays(-28);

            List<TrainingReport> range_report = new List<TrainingReport>();
            range_report = qRpt_LearningReport.GenerateTrainingReportByDateRange(training_id, start_time, end_time);

            if (range_report != null)
            {
                // create opening/closing for chart javascript
                string strJSLoad = string.Empty;

                string strJSOpening = string.Empty;
                strJSOpening += "<script type=\"text/javascript\">\n";
                litJSOpening.Text = strJSOpening;

                string strJSClosing = string.Empty;
                strJSClosing += "</script>\n";
                litJSClosing.Text = strJSClosing;

                string strJSChart = string.Empty;

                // ******************* google chart bar -- site report *******************
                strJSChart += "function drawSiteReport() {\n";
                strJSChart += "var dataReport = google.visualization.arrayToDataTable([\n";

                strJSChart += "['Date', 'Enrollment', { role: 'style' }, 'Training Started', 'Training Completed'],\n";
                int j = 0;
                foreach (var s in range_report)
                {
                    if (j < range_report.Count && j > 0)
                        strJSChart += ",\n";
                    string curr_chart_date = s.data_date.ToString("M/d/yyyy");
                    strJSChart += "['" + curr_chart_date + "', " + s.num_enrolled + ", 'lightblue', " + s.num_started + ", " + s.num_finished + "]";
                    j++;
                }
                strJSChart += "]);\n";

                strJSChart += "var options = {\n";
                strJSChart += "title: 'Last 28 Days of Training Activity',\n";
                strJSChart += "legend: 'none',\n";
                strJSChart += "hAxis: {title: 'Days', slantedText: true, textStyle: {fontSize: 12}},\n";
                strJSChart += "vAxis: {title: 'Activity'},\n";
                strJSChart += "seriesType: \"bars\",\n";
                strJSChart += "series: {1: {color: 'gray', type: \"line\"}, 2: {color: 'black', type: \"line\"}}\n";
                strJSChart += "};\n\n";

                strJSChart += "var chart = new google.visualization.ComboChart(document.getElementById('visualizationSiteReports'))\n";
                strJSChart += "chart.draw(dataReport, options);\n\n";
                strJSChart += "}\n";

                strJSLoad += "drawSiteReport();\n";

                litTrainingActivity.Text = "<div id=\"visualizationSiteReports\" style=\"height: 600px;\"></div>";
                // *********************************************************************

                // ******************* google chart bar -- completion rate *******************
                if (report != null)
                {
                    int not_started = report[0].num_enrolled - (report[0].num_finished + report[0].num_in_progress);
                    strJSChart += "function drawEnrollment() {\n";
                    strJSChart += "var data = google.visualization.arrayToDataTable([\n";
                    strJSChart += "['Status', 'Members'],\n";
                    strJSChart += "['Not Started', " + not_started + "],\n";
                    strJSChart += "['In Progress', " + report[0].num_in_progress + "],\n";
                    strJSChart += "['Finished', " + report[0].num_finished + "]\n";
                    strJSChart += "]);\n";
                    strJSChart += "new google.visualization.PieChart(document.getElementById('visualizationIllness')).draw(data, {title:\"Member Progress\"});\n";
                    strJSChart += "}\n";

                    strJSLoad += "drawEnrollment();\n";
                    litCompletionChart.Text = "<div id=\"visualizationIllness\" style=\"width: 600px; height: 400px;\"></div>";
                }
                // *********************************************************************

                // ******************* google combo chart -- assessment results *******************
                if (report != null)
                {
                    strJSChart += "function drawAssessment() {\n";
                    strJSChart += "var data = google.visualization.arrayToDataTable([\n";
                    strJSChart += "['Type', 'Passed', 'Failed'],\n";
                    if (pre != null)
                        strJSChart += "['Pre-Assessment', " + report[0].num_pre_assessments_passed + ", " + report[0].num_pre_assessments_failed + "],\n";
                    strJSChart += "['Post-Assessment', " + report[0].num_post_assessments_passed + ", " + report[0].num_post_assessments_failed + "]\n";
                    strJSChart += "]);\n";
                    strJSChart += "new google.visualization.ColumnChart(document.getElementById('visualizationAssessment')).draw(data, {title:\"Assessment Results\"});\n";
                    strJSChart += "}\n";

                    strJSLoad += "drawAssessment();\n";
                    litAssessmentChart.Text = "<div id=\"visualizationAssessment\" style=\"width: 600px; height: 400px;\"></div>";
                }
                // *********************************************************************

                // add all finalized JS
                string finalJSLoad = "google.load(\"visualization\", \"1.1\", {packages:[\"corechart\"]});\n";
                finalJSLoad += "google.setOnLoadCallback(init);\n\n";
                finalJSLoad += "function init() {\n";
                finalJSLoad = finalJSLoad + strJSLoad + "\n}\n\n";

                litJSChart.Text = strJSChart;

                // finalize load code
                litJSLoad.Text = "<script type=\"text/javascript\">\n" + finalJSLoad + "</script>";
            }

            if (slide_icons != null)
            {
                string icon_html = "<ul class=\"gallery\">";
                int i = 0;
                foreach (var s in slide_icons)
                {
                    i++;
                    icon_html += "<li>";
                    if (!String.IsNullOrEmpty(s.BgImage) && view_mode != "review")
                        icon_html += "<a href=\"#\"><img src=\"" + resources_url + "/" + training_id + "/" + s.BgImage + "?width=200&height=150&mode=crop\"></a>";
                    else
                        icon_html += "<a href=\"#\"><img src=\"" + resources_url + "/" + training_id + "/" + s.SlideID + ".png?width=200&height=150&mode=crop\">";
                    icon_html += "<div class=\"extras\">";
                    icon_html += "<div class=\"extras-inner\">";
                    if (!String.IsNullOrEmpty(s.BgImage) && view_mode != "review")
                        icon_html += "<a href=\"" + resources_url + "/" + training_id + "/" + s.BgImage + "\" class='colorbox-image' rel=\"group-1\"><i class=\"icon-search\"></i></a>";
                    else
                        icon_html += "<a href=\"" + resources_url + "/" + training_id + "/" + s.SlideID + ".png\" class='colorbox-image' rel=\"group-1\"><i class=\"icon-search\"></i></a>";
                    icon_html += "</div>";
                    icon_html += i + ". " + s.Title;
                    icon_html += "</div>";
                    icon_html += "</li>";
                }
                icon_html += "</ul>";
                litSlides.Text = icon_html;
            }
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            populateTrainingTypes();
            populateDesignTemplates();
            populateAuthors();

            int curr_user_id = Convert.ToInt32(Context.Items["UserID"]);

            final_manage_url = manage_url + "/public/launch-as-user.aspx?key=" + key + "&userID=" + curr_user_id;

            training_id = Convert.ToInt32(Request.QueryString["trainingID"]);

            if (!String.IsNullOrEmpty(Request.QueryString["trainingID"]))
            {
                populateKeywords(training_id, (int)qSoc_ContentType.Types.Training);
                populateTopics(training_id, (int)qSoc_ContentType.Types.Training);

                ViewState.Add("vsTrainingID", training_id);

                qLrn_Training_View training = new qLrn_Training_View(training_id);

                lblTitle.Text = "Edit Training (ID: " + training.TrainingID + ")";
                txtTitle.Text = training.Title;
                txtDescription.Text = training.Description;
                rblAvailable.SelectedValue = training.Available;
                if (!String.IsNullOrEmpty(Convert.ToString(training.PersonAuthorID)))
                    ddlAuthors.SelectedValue = Convert.ToString(training.PersonAuthorID);

                if (Convert.ToString(Request.QueryString["mode"]) == "add-successful")
                {
                    lblMessage.Text = "*** Record Successfully Added ***";
                }

                ddlTrainingTypes.Enabled = false;
                ddlTrainingTypes.SelectedValue = Convert.ToString(training.TrainingTypeID);
                lblTrainingType.Text = "<i>NOTE: Once set, this cannot be changed</i>";
                if (training.TrainingTypeName == "Internal")
                {
                    plhInternalTraining.Visible = true;
                    ddlDesignTemplates.SelectedValue = Convert.ToString(training.DesignThemeID);
                    rfvTrainingLink.Enabled = false;
                }
                else if (training.TrainingTypeName == "External")
                {
                    plhExternalTraining.Visible = true;
                    rfvDesignTemplate.Enabled = false;
                }
                else if (training.TrainingTypeName == "In Person")
                {
                    plhInPersonTraining.Visible = true;
                }
                plhMetaData.Visible = true;

                // see if in feed
                qSoc_Feed feed = new qSoc_Feed((int)qSoc_ContentType.Types.Training, training_id);
                plhExistingFeedItem.Visible = false;

                if (feed != null)
                {
                    if (feed.FeedID > 0 && feed.MarkAsDelete == 0 && feed.VisibleFeed == true)
                    {
                        chkDisplayInFeed.Checked = true;
                        plhExistingFeedItem.Visible = true;
                    }
                    if (feed.FeedID > 0 && feed.MarkAsDelete == 0 && feed.VisibleExplore == true)
                    {
                        chkDisplayInExplore.Checked = true;
                    }
                    string reserved_keywords = string.Empty;
                    if (!string.IsNullOrEmpty(feed.ReservedKeywords))
                    {
                        reserved_keywords = feed.ReservedKeywords;
                    }
                    if (feed.FeedID > 0)
                    {
                        btnMakeAvailableCampaigns.Visible = false;
                        lblExistsFeed.Text = "<i class=\"icon-check\"></i> This training is available for use in campaigns";
                    }
                }
            }
            else
            {
                lblTitle.Text = "New Training";
                btnDelete.Visible = false;
                rblAvailable.SelectedValue = "No";
                plhTools.Visible = false;
                populateKeywords(0, (int)qSoc_ContentType.Types.Training);
                plhMetaData.Visible = false;
            }
        }

        if (String.IsNullOrEmpty(Convert.ToString(training_id)))
            training_id = (Int32)ViewState["vsTrainingID"];
    }