protected void Page_Load(object sender, EventArgs e)
        {
            vp_user = new VpSandboxUser(Page);
            if (Request.QueryString["prodId"] == null)
            {
                Response.Redirect(Request.Url +
                    (Request.Url.ToString().Contains("?") ? "&" : "?") +
                    "prodId=123");
                Response.End();
            }

            if (Request.QueryString["Language"] == "French") {
                m_lang = "fr";
                m_alt_lang = "English";
            } else {
                m_lang = "en";
                m_alt_lang = "French";
            }

            string movie_id = Request.QueryString["prodId"]; // replace with videoplay movie ID
            string movie_type = "movie";
            string movie_name = "click";
            if (Request.QueryString["prodType"] != null)
            {
                movie_type = Request.QueryString["prodType"];
            }
            if (Request.QueryString["prodName"] != null)
            {
                movie_name = Request.QueryString["prodName"];
            }

            RemoteWidgetSubject movie = new RemoteWidgetSubject();
            movie["type"] = movie_type;
            movie["id"] = movie_id;
            movie["name"] = movie_name;

            movie["thumbnail"] = "Resource/lmg/thumbnail_2.gif"; // replace with thumbnail of current movie
            movie["thumbnail_w"] = 50;
            movie["thumbnail_h"] = 70;
            movie["genres"] = "Comedy, Kids/Family";
            movie["url"] = "/MediaDetail_Test.aspx?prodId="+movie_id;

            // set up ReviewModule
            m_reviews = new RemoteWidget("ReviewModule", "rv_", "videoplay", "item");
            m_reviews.Set("subject_type", movie_type);
            m_reviews.Set("subject_id", movie_id);

            // set up CommentModule
            m_comments = new RemoteWidget("CommentModule", "cm_", "videoplay", "item");
            m_comments.Set("subject_type", movie_type);
            m_comments.Set("subject_id", movie_id);

            // set up RatingModule
            m_ratings = new RemoteWidget("RatingModule", "rt_", "videoplay", "item");
            m_ratings.Set("subject_type", movie_type);
            m_ratings.Set("subject_id", movie_id);

            // set up FansModule
            m_fans = new RemoteWidget("FansWidgetModule", "fan_", "videoplay", "item");
            m_fans.Set("subject_type", movie_type);
            m_fans.Set("subject_id", movie_id);

            // set up TagCloudWidgetModule
            m_tagcloud = new RemoteWidget("TagCloudWidgetModule", "tags_", "videoplay", "item");
            m_tagcloud.Set("subject_type", movie_type);
            m_tagcloud.Set("subject_id", movie_id);

            // set up widget controller and make HTTP request to backend if required (e.g. if we're handling AJAX or a form post)
            m_rwc = new RemoteWidgetController(this, ConfigurationManager.AppSettings["WidgetServerUrl"], "w_", m_lang);
            if (!vp_user.anon)
            {
                m_rwc.SetUser("videoplay", vp_user.id, vp_user.login,
                    vp_user.email, vp_user.url, vp_user.first_name, vp_user.last_name, vp_user.thumbnail_url);
            }
            m_rwc.AddItem(movie);
            m_rwc.Add(m_reviews);
            m_rwc.Add(m_comments);
            m_rwc.Add(m_ratings);
            m_rwc.Add(m_fans);
            m_rwc.Add(m_tagcloud);
            m_rwc.SetupComplete(); // let m_rwc know we're done setting up modules, so it can do its work if necessary.
        }
 // add a subject to the list
 public void AddItem(RemoteWidgetSubject s)
 {
     m_items.Add(s);
 }