Пример #1
0
        //public string NorthEastPoint;
        //public string SouthWestPoint;
        protected void Page_Load(object sender, EventArgs e)
        {
            var currentItem = Sitecore.Context.Item;
            LocationItem location = new LocationItem(currentItem);

            var containerItem = currentItem.Parent.Parent;
            ClubMicrositeLandingItem landing = new ClubMicrositeLandingItem(containerItem);

            Sitecore.Data.Items.Item activeClubItem = landing.Club.Item;

            ActiveClub = new ClubItem(activeClubItem);

            double lat = 0;
            double lng = 0;
            double distance = 10;
            int zoom = 10;

            double.TryParse(ActiveClub.Lat.Rendered, out lat);
            double.TryParse(ActiveClub.Long.Rendered, out lng);
            double.TryParse(location.Findclubsrange.Rendered, out distance);
            int.TryParse(location.Zoomlevel.Rendered, out ZoomLevel);

            //NorthEastPoint = location.NorthEastpoint.Rendered;
            //SouthWestPoint = location.SoutWestpoint.Rendered;

            List<Club> clubs = ClubUtil.GetNearestClubsInRange(lat, lng, distance).Where(x => x.ClubItm.InnerItem.ID != ActiveClub.InnerItem.ID).ToList();

            ClubRepeater.DataSource = clubs;
            ClubRepeater.DataBind();
        }
Пример #2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                Item landingItem =
                    Sitecore.Context.Item.Axes.SelectSingleItem(String.Format("ancestor-or-self::*[@@tid='{0}']",
                                                                              ClubMicrositeLandingItem.TemplateId));

                if (landingItem == null)
                {
                    return;
                }

                Item homeItem =
                    landingItem.Axes.SelectSingleItem(String.Format("*[@@tid='{0}']", MicrositeHomeItem.TemplateId));

                if (homeItem == null)
                {
                    return;
                }

                List<PageSummaryItem> items = new List<PageSummaryItem>();

                items.AddRange(
                    homeItem.Children.ToList().ConvertAll(x => new PageSummaryItem(x)).Where(
                        x => x.InnerItem.TemplateID.ToString() == ContentItem.TemplateId && !String.IsNullOrEmpty(x.NavigationTitle.Raw)));

                NavigationListView.DataSource = items;
                NavigationListView.DataBind();

                ClubMicrositeLandingItem landing = new ClubMicrositeLandingItem(landingItem);

                ClubItem club = new ClubItem(landing.Club.Item);

                OpeningHoursLiteral.Text = String.Format(Translate.Text("OPENING HOURS: {0}", club.Openinghours.Raw));
                TwitterUrl = landing.Twitterurl.Rendered;

                TwitterImage = "icon-twitter.png";
                if (Sitecore.Context.Item.TemplateID.ToString() == MicrositeHomeItem.TemplateId || Sitecore.Context.Item.TemplateID.ToString() == LocationItem.TemplateId)
                {
                    TwitterImage = "icon-white-twitter.png";
                }
            }
        }
Пример #3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                Item landingItem =
                    Sitecore.Context.Item.Axes.SelectSingleItem(String.Format("ancestor-or-self::*[@@tid='{0}']",
                                                                              ClubMicrositeLandingItem.TemplateId));

                if (landingItem == null)
                {
                    return;
                }

                Item homeItem =
                    landingItem.Axes.SelectSingleItem(String.Format("*[@@tid='{0}']", MicrositeHomeItem.TemplateId));

                if (homeItem == null)
                {
                    return;
                }

                List<PageSummaryItem> items = new List<PageSummaryItem>();

                items.Add(new PageSummaryItem(homeItem));

                items.AddRange(
                    homeItem.Children.ToList().ConvertAll(x => new PageSummaryItem(x)).Where(
                        x => x.Hidefrommenu.Checked == false && !String.IsNullOrEmpty(x.NavigationTitle.Raw)));

                NavigationListView.DataSource = items;
                NavigationListView.DataBind();

                micrositeUrl = new PageSummaryItem(homeItem).Url;

                ClubMicrositeLandingItem club = new ClubMicrositeLandingItem(landingItem);

                micrositeLogo = club.Logo.MediaUrl;
                micrositeHeading = club.Hiddentitle.Rendered;
            }
        }
Пример #4
0
        protected void Page_Load(object sender, EventArgs e)
        {
            //THIS IS WHERE WE HIDE/SHOW COOKIE MESSAGE -N.B. User Session initialised and set in Header

            //Interorgate the request 'Do Not Track' settings.
            HttpContext objContext = HttpContext.Current;
            bool headerDoNotTrack = false;

            if (!string.IsNullOrEmpty(objContext.Request.Headers["DNT"]))
            {
                headerDoNotTrack = objContext.Request.Headers["DNT"] == "1" ? true : false;
            }

            User objUser = new User();

            //READ/SET COOKIE OPTIONS
            if (Session["sess_User"] == null)
            {
                newSession = true;
            }
            else
            {
                objUser = (User)Session["sess_User"];
            }

            //If this has not been set -we need to show the cookie message
            if (!headerDoNotTrack)
            {
                //Check if User Session object has been set -i.e. not first page load
                if (!newSession)
                {
                    //Have the cookie preferences been set?
                    if (objUser.Preferences == null)
                    {
                        //Show Cookie Preferences ribbon
                        CookieRibbon cookieDeclaration = Page.LoadControl("~/layouts/virginactive/CookieRibbon.ascx") as CookieRibbon;
                        RibbonPh.Controls.Add(cookieDeclaration);

                        string classNames = BodyTag.Attributes["class"] != null ? BodyTag.Attributes["class"] : "";
                        BodyTag.Attributes.Add("class", classNames.Length > 0 ? classNames + " cookie-show" : "cookie-show");
                    }
                }
                else
                {
                    //Seesion info not set (as it's a new session) -Check the 'Cookie Preferences Cookie' exists
                    if (string.IsNullOrEmpty(CookieHelper.GetOptInCookieValue(CookieKeyNames.MarketingCookies)))
                    {
                        //User has NOT stored settings
                        //Show Cookie Preferences ribbon
                        CookieRibbon cookieDeclaration = Page.LoadControl("~/layouts/virginactive/CookieRibbon.ascx") as CookieRibbon;
                        RibbonPh.Controls.Add(cookieDeclaration);

                        string classNames = BodyTag.Attributes["class"] != null ? BodyTag.Attributes["class"] : "";
                        BodyTag.Attributes.Add("class", classNames.Length > 0 ? classNames + " cookie-show" : "cookie-show");
                    }
                }
            }

            //READ/SET COOKIE OPTIONS
            if (newSession)
            {
                //New Session

                //Check if cookie preferences session cookie exists
                if (!string.IsNullOrEmpty(CookieHelper.GetOptInCookieValue(CookieKeyNames.MarketingCookies)))
                {
                    Preferences preferences = new Preferences();

                    preferences.MarketingCookies = CookieHelper.GetOptInCookieValue(CookieKeyNames.MarketingCookies) == "Y" ? true : false;
                    preferences.MetricsCookies = CookieHelper.GetOptInCookieValue(CookieKeyNames.MetricsCookies) == "Y" ? true : false;
                    preferences.PersonalisedCookies = CookieHelper.GetOptInCookieValue(CookieKeyNames.PersonalisedCookies) == "Y" ? true : false;
                    preferences.SocialCookies = CookieHelper.GetOptInCookieValue(CookieKeyNames.SocialCookies) == "Y" ? true : false;

                    //Store to session
                    objUser.Preferences = preferences;
                }
                else
                {
                    if (headerDoNotTrack)
                    {
                        //Set Preferences in User Session -default to N
                        Preferences preferences = new Preferences();

                        preferences.MarketingCookies = false;
                        preferences.MetricsCookies = false;
                        preferences.PersonalisedCookies = false;
                        preferences.SocialCookies = false;

                        objUser.Preferences = preferences;

                        //Set Cookie Preferences Cookie
                        CookieHelper.AddUpdateOptInCookie(CookieKeyNames.MarketingCookies, "N");
                        CookieHelper.AddUpdateOptInCookie(CookieKeyNames.MetricsCookies, "N");
                        CookieHelper.AddUpdateOptInCookie(CookieKeyNames.PersonalisedCookies, "N");
                        CookieHelper.AddUpdateOptInCookie(CookieKeyNames.SocialCookies, "N");

                        //Delete Existing Personalisation Cookie
                        CookieHelper.DeleteCookie();
                    }
                }
            }

            //DEFAULT PREFERENCES IF NOT SET
            if (objUser.Preferences == null)
            {
                //Set preferences in User Session -default to Y
                Preferences preferences = new Preferences();

                preferences.MarketingCookies = true;
                preferences.MetricsCookies = true;
                preferences.PersonalisedCookies = true;
                preferences.SocialCookies = true;

                //Store to session
                objUser.Preferences = preferences;

                //Set Cookie Preferences Cookie -default to permission allowed
                CookieHelper.AddUpdateOptInCookie(CookieKeyNames.MarketingCookies, "Y");
                CookieHelper.AddUpdateOptInCookie(CookieKeyNames.MetricsCookies, "Y");
                CookieHelper.AddUpdateOptInCookie(CookieKeyNames.PersonalisedCookies, "Y");
                CookieHelper.AddUpdateOptInCookie(CookieKeyNames.SocialCookies, "Y");
            }

            //Save session
            Session["sess_User"] = objUser;

            CampaignItem cmp = new CampaignItem(Sitecore.Context.Item);

            if (!String.IsNullOrEmpty(cmp.CampaignBase.Termsandconditionslink.Raw))
            {
                privacy = new PageSummaryItem(cmp.CampaignBase.Termsandconditionslink.Item);
            }

            Item currentItem = Sitecore.Context.Item;
            PageSummaryItem item = new PageSummaryItem(currentItem);
            string canonicalTag = item.GetCanonicalTag();

            string metaDescription = item.GetMetaDescription();

            //Add page title //todo: add club name
            string title = Translate.Text("Virgin Active");
            string browserPageTitle = item.GetPageTitle();

            string section = Sitecore.Web.WebUtil.GetQueryString("section");

            if (!String.IsNullOrEmpty(section))
            {
                PageSummaryItem listing = null;
                if (currentItem.TemplateID.ToString() == ClassesListingItem.TemplateId)
                {
                    //Get classes listing browser page title
                    listing = Sitecore.Context.Database.GetItem(ItemPaths.SharedClasses + "/" + section);
                }
                else if (currentItem.TemplateID.ToString() == FacilitiesListingItem.TemplateId)
                {
                    //Get facility listing browser page title
                    listing = Sitecore.Context.Database.GetItem(ItemPaths.SharedFacilities + "/" + section);
                }

                if (listing != null)
                {
                    browserPageTitle = listing.GetPageTitle();
                    canonicalTag = String.IsNullOrEmpty(Request.QueryString["section"]) ? listing.GetCanonicalTag() : listing.GetCanonicalTag(Request.QueryString["section"]);
                    metaDescription = listing.GetMetaDescription();
                }
            }

            if (!String.IsNullOrEmpty(browserPageTitle))
            {
                title = String.Format("{0} | {1}", browserPageTitle, title);
            }

            Page.Title = title;
            //Add canonical
            Page.Header.Controls.Add(new Literal() { Text = canonicalTag });
            //Add meta description
            Page.Header.Controls.Add(new Literal() { Text = metaDescription });

            //Load OpenTag container -depending on cookie preferences

            if (!newSession)
            {
                //Add dynamic content to header
                HtmlHead head = (HtmlHead)Page.Header;

                if (objUser.Preferences != null)
                {
                    if (objUser.Preferences.MarketingCookies && objUser.Preferences.MetricsCookies)
                    {
                        //Have permission to load in OpenTag
                        head.Controls.Add(new LiteralControl(OpenTagHelper.OpenTagVirginActiveUK));
                    }
                }

                //LOAD IN SOCIAL OPEN GRAPH -if cookie preference allows

            }

            //Get club details
            if (!Page.IsPostBack)
            {
                Item landingItem =
                    Sitecore.Context.Item.Axes.SelectSingleItem(String.Format("ancestor-or-self::*[@@tid='{0}']",
                                                                              ClubMicrositeLandingItem.TemplateId));

                if (landingItem == null)
                {
                    return;
                }

                ClubMicrositeLandingItem club = new ClubMicrositeLandingItem(landingItem);

                ClubItem linkClub = new ClubItem(club.Club.Item);
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            System.Text.StringBuilder markupBuilder = new System.Text.StringBuilder();

            //Redirect to club home
            Sitecore.Links.UrlOptions urlOptions = new Sitecore.Links.UrlOptions();
            urlOptions.AlwaysIncludeServerUrl = true;
            urlOptions.AddAspxExtension = false;
            urlOptions.LanguageEmbedding = LanguageEmbedding.Never;

            micrositeLanding = micrositeHome.InnerItem.Parent;

            if (micrositeLanding != null)
            {
                club = micrositeLanding.Club.Item;

                if (club != null)
                {
                    //Get opening hours
                    if (club.Openinghours.Rendered.Trim() != "")
                    {
                        //add opening hours details
                        markupBuilder.Append(@"<p class=""openingtimes"">");
                        markupBuilder.Append(club.Openinghours.Rendered);
                        markupBuilder.Append(@"</p>");

                        openingHours = markupBuilder.ToString();
                    }

                    //Get address

                    markupBuilder = new System.Text.StringBuilder();

                    markupBuilder.Append(club.Addressline1.Text);
                    markupBuilder.Append(!String.IsNullOrEmpty(club.Addressline2.Text) ? "<br />" + club.Addressline2.Text : "");
                    markupBuilder.Append(!String.IsNullOrEmpty(club.Addressline3.Text) ? "<br />" + club.Addressline3.Text : "");
                    markupBuilder.Append("<br />");
                    markupBuilder.Append(!String.IsNullOrEmpty(club.Addressline4.Text) ? club.Addressline4.Text + " " : "");
                    markupBuilder.Append(club.Postcode.Text);

                    Address.Text = markupBuilder.ToString();

                    //Get Club details

                    ClubName = club.Clubname.Rendered;
                    lng = club.Long.Raw;
                    lat = club.Lat.Raw;

                    //Get timetable link
                    if (micrositeHome.InnerItem.Axes.SelectSingleItem(String.Format(@"descendant-or-self::*[@@tid = '{0}']", MicrositeTimetableItem.TemplateId)) != null)
                    {
                        MicrositeTimetableItem timetableItem = new MicrositeTimetableItem(micrositeHome.InnerItem.Axes.SelectSingleItem(String.Format(@"descendant-or-self::*[@@tid = '{0}']", MicrositeTimetableItem.TemplateId)));
                        MicrositeTimetableLandingItem timetableSectionItem = new MicrositeTimetableLandingItem(timetableItem.InnerItem.Parent);
                        ClubTimetableUrl = Sitecore.Links.LinkManager.GetItemUrl(timetableSectionItem);
                    }
                    else
                    {
                        if (micrositeHome.InnerItem.Axes.SelectSingleItem(String.Format(@"descendant-or-self::*[@@tid = '{0}']", TimetableDownloadItem.TemplateId)) != null)
                        {
                            TimetableDownloadItem timetableDownloadItem = new TimetableDownloadItem(micrositeHome.InnerItem.Axes.SelectSingleItem(String.Format(@"descendant-or-self::*[@@tid = '{0}']", TimetableDownloadItem.TemplateId)));
                            ClubTimetableUrl = Sitecore.Links.LinkManager.GetItemUrl(timetableDownloadItem);
                        }
                    }

                    //Get enquiries link
                    PageSummaryItem enqForm = new PageSummaryItem(Sitecore.Context.Database.GetItem(ItemPaths.EnquiryForm));
                    if (enqForm != null)
                    {
                        ClubEnquiriesUrl = enqForm.Url + "?sc_trk=enq&c=" + club.InnerItem.ID.ToShortID();
                    }

                    //Get Media Items from Widget Container
                    List<FacilityModuleItem> facilities = GetDataSource(micrositeHome.InnerItem);
                    List<MediaItem> mediaItems = new List<MediaItem>();
                    if (facilities != null)
                    {
                        foreach (FacilityModuleItem facilityModule in facilities)
                        {
                            List<MediaItem> galleryItems = facilityModule.Imagegallery.ListItems.ConvertAll(x => new MediaItem(x));
                            if (galleryItems != null && galleryItems.Count > 0)
                            {
                                mediaItems.Add(galleryItems[0]);
                            }
                        }
                    }

                    if (mediaItems.Count > 0)
                    {
                        ImageList.DataSource = mediaItems;
                        ImageList.DataBind();
                    }

                    //Set club last visited
                    User objUser = new User();
                    if (Session["sess_User"] != null)
                    {
                        objUser = (User)Session["sess_User"];
                    }
                    objUser.ClubLastVisitedID = club.ClubId.Rendered;
                    Session["sess_User"] = objUser;

                    //Set club last visited cookie
                    //if (objUser.Preferences != null)
                    //{
                    //    if (objUser.Preferences.PersonalisedCookies)
                    //    {
                    CookieHelper.AddClubsLastVisitedCookie(CookieKeyNames.ClubLastVisited, club.ClubId.Rendered);
                    //    }
                    //}
                }
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                try
                {
                    if (Sitecore.Context.Item.TemplateID.ToString() == SectionContainerItem.TemplateId.ToString())
                    {
                        club = new ClubItem(current.Axes.SelectSingleItem(String.Format(@"ancestor-or-self::*[@@tid=""{0}"" or @@tid=""{1}""]", ClassicClubItem.TemplateId, LifeCentreItem.TemplateId)));
                        ClubHomeUrl = LinkManager.GetItemUrl(club.InnerItem);
                    }
                    else
                    {
                        //Context item is a microsite timetable
                        isMicrosite = true;

                        micrositeLanding = new ClubMicrositeLandingItem(current.Parent.Parent);
                        micrositeHome = new MicrositeHomeItem(current.Parent);

                        club = micrositeLanding.Club.Item;
                        ClubHomeUrl = LinkManager.GetItemUrl(micrositeHome.InnerItem);
                    }

                    ClubName = club.Clubname.Rendered;
                    clubId = club.ClubId.Rendered;
                    clubMemberPhone = club.Memberstelephonenumber.Rendered;

                    //Get First Item in section for links
                    foreach (Item child in current.Children)
                    {
                        PageSummaryItem itm = new PageSummaryItem(child);
                        if (itm.Hidefrommenu != null)
                        {
                            if (!itm.Hidefrommenu.Checked)
                            {
                                firstTimeTableItem = itm;
                                break;
                            }
                        }
                    }

                    ClassContainer ClubClasses = Utility.GetClubTimetable(clubId);
                    if (ClubClasses != null)
                    {
                        List<Timetable> tempItems = new List<Timetable>();

                        //Check each Timetable in collection is valid
                        foreach (Timetable item in ClubClasses.Timetables)
                        {
                            if (item.Dayname != null)
                            {
                                tempItems.Add(item);
                            }
                        }

                        if ((tempItems.Count > 0))
                        {
                            dateRangeStr = StringHelper.GenerateDateRangeString(tempItems[0].Date, tempItems[tempItems.Count - 1].Date);

                            TimetableDayList.DataSource = tempItems;
                            TimetableDayList.DataBind();
                        }
                        else
                        {
                            pnlUnavailable.Visible = true;
                            pnlClasses.Visible = false;
                        }
                    }
                    else
                    {
                        pnlUnavailable.Visible = true;
                        pnlClasses.Visible = false;
                    }

                }
                catch (Exception ex)
                {
                    pnlUnavailable.Visible = true;
                    pnlClasses.Visible = false;
                    Log.Error(String.Format("Error retrieving timetable for club {1}: {0}", ex.Message, club != null ? club.Clubname.Raw : ""), this);
                }

                //Set club last visited
                User objUser = new User();
                if (Session["sess_User"] != null)
                {
                    objUser = (User)Session["sess_User"];
                }
                objUser.ClubLastVisitedID = club.ClubId.Rendered;
                Session["sess_User"] = objUser;

                //Set club last visited cookie
                CookieHelper.AddClubsLastVisitedCookie(CookieKeyNames.ClubLastVisited, club.ClubId.Rendered);

                //Add club name to page title
                string clubNameTitle = String.Format(" - {0}", club.Clubname.Raw);
                clubNameTitle = HtmlRemoval.StripTagsCharArray(clubNameTitle);

                Page.Title = Page.Title + clubNameTitle;
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                try
                {
                    ClubMicrositeLandingItem landing = new ClubMicrositeLandingItem(micrositeTimetable.InnerItem.Axes.SelectSingleItem(String.Format(@"ancestor-or-self::*[@@tid=""{0}""]", ClubMicrositeLandingItem.TemplateId)));

                    currentClub = landing.Club.Item;
                    micrositeTimetableLanding = micrositeTimetable.InnerItem.Parent;

                    //Set Navigation elements
                    List<PageSummaryItem> sectionTimetables = micrositeTimetable.InnerItem.Axes.SelectItems(String.Format("..//*[@@tid='{0}']", MicrositeTimetableItem.TemplateId)).ToList().ConvertAll(x => new PageSummaryItem(x));
                    sectionTimetables.RemoveAll(x => x.Hidefrommenu.Checked); //Remove all hidden items

                    if (sectionTimetables.Count > 1)
                    {
                        sectionTimetables.First().IsFirst = true;
                        sectionTimetables.Last().IsLast = true;

                        //Set current
                        foreach (PageSummaryItem child in sectionTimetables)
                        {
                            Item current = child.InnerItem.Axes.SelectSingleItem(String.Format("descendant-or-self::*[@@id='{0}']", micrositeTimetable.ID.ToString()));
                            if (current != null)
                            {
                                child.IsCurrent = true;
                            }
                        }

                        SecondLevelElements.DataSource = sectionTimetables;
                        SecondLevelElements.DataBind();
                    }

                    clubId = currentClub.ClubId.Raw;
                    //timetableType = TimetableTypes.General;
                    timetableType = micrositeTimetable.Type.Rendered;
                    if (micrositeTimetable.Showalert.Checked)
                    {
                        string textToParse = micrositeTimetable.Alerttext.Rendered;

                        Hashtable objTemplateVariables = new Hashtable();
                        objTemplateVariables.Add("SalesNumber", currentClub.Salestelephonenumber.Rendered);

                        Parser objParser = new Parser(objTemplateVariables);
                        objParser.SetTemplate(textToParse);
                        textToParse = objParser.Parse();

                        alert = @"<div class=""club-alert-panel""><div class=""club-alert"">" + textToParse + @"</div></div>";
                    }

                    clubMemberPhone = currentClub.Memberstelephonenumber.Raw != "" ? currentClub.Memberstelephonenumber.Raw : currentClub.Salestelephonenumber.Raw;

                    Item settings = Sitecore.Context.Database.GetItem(ItemPaths.TimetableShared);
                    if (settings != null)
                    {
                        TimetableSharedItem settingsItem = new TimetableSharedItem(settings);
                        TimetableUnavailableHeading.Text = settingsItem.Timetableunavailableheading.Text;
                        TimetableUnavailableMessage.Text =
                            settingsItem.Timetableunavailabletext.Text.Replace("#clubMemberPhone#", clubMemberPhone);
                    }

                    ClassContainer ClubClasses = Utility.GetClubTimetable(clubId);

                    ////Need to lookup the daterange from the timetable
                    //if (Cache[clubId] == null)
                    //{
                    //    //initialise webservice
                    //    //mm.virginactive.webservices.virginactive.classtimetable.Service vs = new mm.virginactive.webservices.virginactive.classtimetable.Service();
                    //    mm.virginactive.webservices.virginactive.classtimetable.VA_ClassTimetables vs = new mm.virginactive.webservices.virginactive.classtimetable.VA_ClassTimetables();
                    //    //mm.virginactive.webservices.virginactive.classtimetable.VA_ClassTimetables vs = new mm.virginactive.webservices.virginactive.classtimetable.VA_ClassTimetables();
                    //    ClubClasses = vs.Classes(clubId);

                    //    double cacheLiveTime = 20.0;
                    //    Double.TryParse(Settings.TimetableCacheMinutes, out cacheLiveTime);

                    //    Cache.Insert(clubId, ClubClasses, null, DateTime.Now.AddMinutes(cacheLiveTime), Cache.NoSlidingExpiration);
                    //}
                    //else //Fetch from cache
                    //{
                    //    ClubClasses = (struct_Classes)Cache[clubId];
                    //}

                    List<Timetable> tempItems = new List<Timetable>();

                    //Check each Timetable in collection is valid
                    foreach (Timetable item in ClubClasses.Timetables)
                    {
                        if (item.Dayname != null)
                        {
                            tempItems.Add(item);
                        }
                    }

                    if ((tempItems.Count > 0))
                    {
                        System.Text.StringBuilder stringBuilder = new System.Text.StringBuilder();
                        stringBuilder.Append(@"<strong>");
                        stringBuilder.Append(StringHelper.GenerateDateString(tempItems[0].Date));
                        stringBuilder.Append(@"</strong> ");
                        stringBuilder.Append(Translate.Text("to"));
                        stringBuilder.Append(@" <strong>");
                        stringBuilder.Append(StringHelper.GenerateDateString(tempItems[tempItems.Count - 1].Date));
                        stringBuilder.Append("</strong>");

                        dateRangeStr = stringBuilder.ToString();
                        //timetableNameStr = currentItem.PageSummary.DisplayName;

                        //create ajax controls
                        ClubTimetableResult timetableResult = this.Page.LoadControl("~/layouts/virginactive/microsite/MicrositeTimetableResult.ascx") as ClubTimetableResult;
                        ClubTimetableFilter timetableFilter = this.Page.LoadControl("~/layouts/virginactive/microsite/MicrositeTimetableFilter.ascx") as ClubTimetableFilter;

                        timetableResult.ClubId = clubId;
                        timetableResult.Type = timetableType;

                        filterPh.Controls.Add(timetableFilter);
                        resultPh.Controls.Add(timetableResult);
                    }
                    else
                    {
                        ErrorMessage.Visible = true;
                        //hide print button
                        lstIcons.Visible = false;
                    }
                }
                catch (Exception ex)
                {
                    ErrorMessage.Visible = true;
                    //hide print button
                    lstIcons.Visible = false;
                    Log.Error(String.Format("Error retrieving timetable for club {1}: {0}", ex.Message, "Microsite"), this);
                    mm.virginactive.common.EmailMessagingService.ErrorEmailNotification.SendMail(ex);
                }

                //Add dynamic content to header
                HtmlHead head = (HtmlHead)Page.Header;

                //Add Open Tag
                if (Session["sess_User"] != null)
                {
                    User objUser = (User)Session["sess_User"];
                    if (objUser.Preferences != null)
                    {
                        if (objUser.Preferences.MarketingCookies && objUser.Preferences.MetricsCookies)
                        {
                            head.Controls.Add(new LiteralControl(OpenTagHelper.OpenTagVirginActiveUK));
                        }
                    }
                }
            }
        }
        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            try
            {
                bool blnIsValid = true;

                if (blnIsValid == true)
                {
                    ClubMicrositeLandingItem landing = new ClubMicrositeLandingItem(Sitecore.Context.Item.Parent.Parent);
                    currentClub = landing.Club.Item;
                    //currentClub = (ClubItem)Sitecore.Context.Database.GetItem("/sitecore/content/Home/clubs/Aldersgate");

                    if (currentClub != null)
                    {

                        //Store Feedback Entitiy Details
                        Feedback objFeedback = new Feedback();

                        //Store Customer Entitiy Details
                        Customer objCustomer = new Customer();

                        string FirstName = "";
                        string Surname = "";

                        if (name.Value.IndexOf(" ") != -1)
                        {
                            FirstName = name.Value.Substring(0, name.Value.IndexOf(" ")).Trim();
                            Surname = name.Value.Substring(name.Value.IndexOf(" ") + 1).Trim();
                        }
                        else
                        {
                            FirstName = name.Value.Trim();
                        }

                        objCustomer.EmailAddress = email.Value;
                        objCustomer.Firstname = FirstName;
                        objCustomer.Surname = Surname;
                        objCustomer.HomeClubID = currentClub.ClubId.Rendered;
                        objCustomer.TelephoneNumber = tel.Value;

                        objFeedback.Customer = objCustomer;
                        objFeedback.FeedbackSubject = campaign.CampaignBase.Campaigntype.Raw;
                        objFeedback.FeedbackSubjectDetail = campaign.CampaignBase.Campaignname.Rendered;
                        objFeedback.FeedbackTypeID = Convert.ToInt32(campaign.CampaignBase.CampaignId.Rendered);
                        objFeedback.PrimaryClubID = currentClub.ClubId.Rendered;
                        objFeedback.SubmissionDate = DateTime.Now;

                        //Add Comment
                        Comment objComment = new Comment();

                        //objComment.CommentDetail = source.Items[source.SelectedIndex].Value;
                        objComment.CommentDetail = drpHowDidYouFindUs.SelectedValue;
                        objComment.CommentImageTypeID = Constants.CommentImageType.QuestionnaireAnswer;
                        objComment.SortOrder = 1;
                        objComment.Subject = Translate.Text("How did you hear about us?");

                        List<Comment> objComments = new List<Comment>();
                        objComments.Add(objComment);

                        //Add Comment
                        objComment = new Comment();

                        objComment.CommentDetail = chkExistingMember.Checked == true ? "Y" : "N";
                        objComment.CommentImageTypeID = Constants.CommentImageType.QuestionnaireAnswer;
                        objComment.SortOrder = 2;
                        objComment.Subject = Translate.Text("Existing Virgin Active member?");

                        objComments.Add(objComment);

                        objFeedback.Comments = objComments;

                        string connection = Sitecore.Configuration.Settings.GetSetting("ConnectionString_VirginActiveReports");
                        DataAccessLayer dal = new DataAccessLayer(connection);
                        int successFlag = dal.SaveFeedback(Context.User.Identity.Name, campaign.DisplayName, objFeedback);

                        if (successFlag > 0)
                        {
                            //Data is sent to client via email
                            SendAdminEmail();

                            if (chkExistingMember.Checked == false && campaign.CampaignBase.Isweblead.Checked == true)
                            {
                                //Data is sent to client via service
                                SendEnquiryDataService();
                            }

                            //get managers info
                            List<ManagerItem> staffMembers = null;
                            if (currentClub.InnerItem.Axes.SelectItems(String.Format("descendant-or-self::*[@@tid = '{0}']", ManagerItem.TemplateId)) != null)
                            {
                                staffMembers = currentClub.InnerItem.Axes.SelectItems(String.Format("descendant-or-self::*[@@tid = '{0}']", ManagerItem.TemplateId)).ToList().ConvertAll(x => new ManagerItem(x));

                                manager = staffMembers.First();
                            }

                            if (campaign.CampaignBase.Sendconfirmationemail.Checked == true)
                            {
                                //Data is sent to customer via email
                                SendConfirmationEmail();
                            }

                            //imageStatic.Attributes.Add("style", "display:none;");
                            formDetails.Attributes.Add("style", "display:none;");
                            formConfirmation.Attributes.Add("style", "display:block;");
                            //ClearFormFields();
                            pnlForm.Update();
                        }
                        else
                        {
                            //imageStatic.Attributes.Add("style", "display:none;");
                            formDetails.Attributes.Add("style", "display:block;");
                            formConfirmation.Attributes.Add("style", "display:none;");
                            pnlForm.Update();

                            Log.Error(String.Format("Error storing campaign details"), this);
                        }
                    }
                    else
                    {
                        //imageStatic.Attributes.Add("style", "display:none;");
                        formDetails.Attributes.Add("style", "display:block;");
                        formConfirmation.Attributes.Add("style", "display:none;");
                        pnlForm.Update();

                    }
                }

            }
            catch (Exception ex)
            {
                Log.Error(String.Format("Error storing campaign details: {0}", ex.Message), this);
                mm.virginactive.common.EmailMessagingService.ErrorEmailNotification.SendMail(ex);
            }
        }
        protected void ClubList_OnItemDataBound(object sender, ListViewItemEventArgs e)
        {
            if (e.Item.ItemType == ListViewItemType.DataItem)
            {
                ListViewDataItem dataItem = (ListViewDataItem)e.Item;

                var club = dataItem.DataItem as Club;

                if (club != null)
                {
                    //Lookup if Club is classic or not!
                    //Classic overrides Esporta
                    if (club.IsClassic)
                    {
                        var ClassicClubFlag = e.Item.FindControl("ClassicClubFlag") as System.Web.UI.WebControls.Literal;
                        if (ClassicClubFlag != null)
                        {
                            ClassicClubFlag.Text = String.Format(@"<span>{0}</span> {1}", Translate.Text("by"), Translate.Text("VIRGIN ACTIVE CLASSIC"));
                        }
                    } else if (club.ClubItm.GetCrmSystem() == ClubCrmSystemTypes.ClubCentric) //Set Esporta Flag
                    {
                        var EsportaFlag = e.Item.FindControl("EsportaFlag") as System.Web.UI.WebControls.Literal;
                        if (EsportaFlag != null)
                        {
                            EsportaFlag.Text =String.Format( @"<span>{0}</span> ESPORTA", Translate.Text("Previously"));
                        }
                    }

                    //Get address
                    var Address = e.Item.FindControl("Address") as System.Web.UI.WebControls.Literal;
                    if (Address != null)
                    {
                        System.Text.StringBuilder markupBuilder;
                        markupBuilder = new System.Text.StringBuilder();

                        //Check locality of address can be displayed all on one line
                        if (club.ClubItm.Addressline1.Text.Length + club.ClubItm.Addressline2.Text.Length + club.ClubItm.Addressline3.Text.Length < Settings.MaxNumberOfCharactersInSearchResultsList)
                        {
                            markupBuilder.Append(club.ClubItm.Addressline1.Text);
                            markupBuilder.Append(!String.IsNullOrEmpty(club.ClubItm.Addressline2.Text) ? " " + club.ClubItm.Addressline2.Text : "");
                            markupBuilder.Append(!String.IsNullOrEmpty(club.ClubItm.Addressline3.Text) ? " " + club.ClubItm.Addressline3.Text : "");
                            markupBuilder.Append("<br />");
                            markupBuilder.Append(!String.IsNullOrEmpty(club.ClubItm.Addressline4.Text) ? club.ClubItm.Addressline4.Text + " " : "");
                            markupBuilder.Append(club.ClubItm.Postcode.Text);
                        }
                        else
                        {
                            markupBuilder.Append(club.ClubItm.Addressline1.Text);
                            markupBuilder.Append(!String.IsNullOrEmpty(club.ClubItm.Addressline2.Text) ? " " + club.ClubItm.Addressline2.Text : "");
                            markupBuilder.Append("<br />");
                            markupBuilder.Append(!String.IsNullOrEmpty(club.ClubItm.Addressline3.Text) ? club.ClubItm.Addressline3.Text + " " : "");
                            markupBuilder.Append(!String.IsNullOrEmpty(club.ClubItm.Addressline4.Text) ? club.ClubItm.Addressline4.Text + " " : "");
                            markupBuilder.Append(club.ClubItm.Postcode.Text);
                        }

                        Address.Text = markupBuilder.ToString();
                    }

                    //Get club Urls
                    var ltrClubImageLink = e.Item.FindControl("ltrClubImageLink") as System.Web.UI.WebControls.Literal;
                    var ltrClubTitleLink = e.Item.FindControl("ltrClubTitleLink") as System.Web.UI.WebControls.Literal;
                    var ltrClubCTALink = e.Item.FindControl("ltrClubCTALink") as System.Web.UI.WebControls.Literal;
                    var ltrClubLinks = e.Item.FindControl("ltrClubLinks") as System.Web.UI.WebControls.Literal;

                    string ClubLinkUrl = new PageSummaryItem(club.ClubItm.InnerItem).Url;

                    Boolean IsCampaignPlaceholder = false;
                    if (club.ClubItm.IsPlaceholder.Checked == true)
                    {
                        Item campaign;

                        if (club.ClubItm.PlaceholderCampaign.Item.TemplateID.ToString() == ClubMicrositeLandingItem.TemplateId)
                        {
                            campaign =
                                club.ClubItm.PlaceholderCampaign.Item.Axes.SelectSingleItem(
                                    String.Format("*[@@tid='{0}']", MicrositeHomeItem.TemplateId));
                        }
                        else
                        {

                            //redirect to campaign
                            campaign = club.ClubItm.PlaceholderCampaign.Item;

                        }
                        if (campaign != null)
                        {
                            //UrlOptions opt = new UrlOptions();
                            //opt.AddAspxExtension = false;
                            //opt.LanguageEmbedding = LanguageEmbedding.Never;
                            //opt.AlwaysIncludeServerUrl = true;

                            //ClubLinkUrl = LinkManager.GetItemUrl(campaign, opt);
                            IsCampaignPlaceholder = true;
                        }
                    }

                    ltrClubImageLink.Text = @"<a href=""" + ClubLinkUrl + @""">" + club.ClubItm.Clubimage.RenderCrop("180x120") + @"</a>";
                    ltrClubTitleLink.Text = @"<a href=""" + ClubLinkUrl + @""">" + club.ClubItm.Clubname.Text + @"</a>";
                    ltrClubCTALink.Text = @"<a href=""" + ClubLinkUrl + @""" class=""btn btn-cta"">" + "Visit club page" + @"</a>";

                    List<string> links = new List<string>();

                    if (IsCampaignPlaceholder == false)
                    {
                        if (club.ClubItm.InnerItem.Axes.SelectSingleItem(String.Format(@"descendant-or-self::*[@@tid = '{0}']", TimetableItem.TemplateId)) != null)
                        {
                            TimetableItem timetableItem = new TimetableItem(club.ClubItm.InnerItem.Axes.SelectSingleItem(String.Format(@"descendant-or-self::*[@@tid = '{0}']", TimetableItem.TemplateId)));
                            //var TimetableLink = e.Item.FindControl("TimetableLink") as System.Web.UI.WebControls.Literal;
                            //TimetableLink.Text = @"<a href=""" + Sitecore.Links.LinkManager.GetItemUrl(timetableItem) + @""" title=""" + Translate.Text("Timetables") + @""">" + Translate.Text("Timetables") + @"</a>";
                            links.Add(@"<a href=""" + Sitecore.Links.LinkManager.GetItemUrl(timetableItem) + @""" title=""" + Translate.Text("Timetables") + @""">" + Translate.Text("Timetables") + @"</a>");
                        }
                        else
                        {
                            if (club.ClubItm.InnerItem.Axes.SelectSingleItem(String.Format(@"descendant-or-self::*[@@tid = '{0}']", TimetableDownloadItem.TemplateId)) != null)
                            {
                                TimetableDownloadItem timetableDownloadItem = new TimetableDownloadItem(club.ClubItm.InnerItem.Axes.SelectSingleItem(String.Format(@"descendant-or-self::*[@@tid = '{0}']", TimetableDownloadItem.TemplateId)));
                                //var TimetableLink = e.Item.FindControl("TimetableLink") as System.Web.UI.WebControls.Literal;
                                //TimetableLink.Text = @"<a href=""" + Sitecore.Links.LinkManager.GetItemUrl(timetableDownloadItem) + @""" title=""" + Translate.Text("Timetables") + @""">" + Translate.Text("Timetables") + @"</a>";
                                links.Add(@"<a href=""" + Sitecore.Links.LinkManager.GetItemUrl(timetableDownloadItem) + @""" title=""" + Translate.Text("Timetables") + @""">" + Translate.Text("Timetables") + @"</a>");
                            }
                        }
                        if (club.ClubItm.InnerItem.Axes.SelectSingleItem(String.Format(@"descendant-or-self::*[@@tid = '{0}']", ClubMembershipLandingItem.TemplateId)) != null)
                        {
                            ClubMembershipLandingItem membershipItem = new ClubMembershipLandingItem(club.ClubItm.InnerItem.Axes.SelectSingleItem(String.Format(@"descendant-or-self::*[@@tid = '{0}']", ClubMembershipLandingItem.TemplateId)));
                            //var MembershipLink = e.Item.FindControl("MembershipLink") as System.Web.UI.WebControls.Literal;
                            if (IsCampaignPlaceholder == false)
                            {
                                //MembershipLink.Text = @"<a href=""" + Sitecore.Links.LinkManager.GetItemUrl(membershipItem) + @""" title=""" + Translate.Text("Membership Options") + @""">" + Translate.Text("Membership Options") + @"</a>";
                                links.Add(@"<a href=""" + Sitecore.Links.LinkManager.GetItemUrl(membershipItem) + @""" title=""" + Translate.Text("Membership Options") + @""">" + Translate.Text("Membership Options") + @"</a>");
                            }
                        }
                    }
                    else if (club.ClubItm.PlaceholderCampaign.Item.TemplateID.ToString() == ClubMicrositeLandingItem.TemplateId)
                    {
                        ClubMicrositeLandingItem microsite = new ClubMicrositeLandingItem(club.ClubItm.PlaceholderCampaign.Item);

                        wrappers.VirginActive.PageTemplates.ClubMicrosites.MicrositeTimetableItem timetableItem = new wrappers.VirginActive.PageTemplates.ClubMicrosites.MicrositeTimetableItem(microsite.InnerItem.Axes.SelectSingleItem(String.Format(@"descendant::*[@@tid = '{0}']", wrappers.VirginActive.PageTemplates.ClubMicrosites.MicrositeTimetableItem.TemplateId)));
                        links.Add(@"<a href=""" + Sitecore.Links.LinkManager.GetItemUrl(timetableItem) + @""" title=""" + Translate.Text("Timetables") + @""">" + Translate.Text("Timetables") + @"</a>");

                        wrappers.VirginActive.PageTemplates.ClubMicrosites.MembershipItem membershipItem = new wrappers.VirginActive.PageTemplates.ClubMicrosites.MembershipItem(microsite.InnerItem.Axes.SelectSingleItem(String.Format(@"descendant::*[@@tid = '{0}']", wrappers.VirginActive.PageTemplates.ClubMicrosites.MembershipItem.TemplateId)));
                        links.Add(@"<a href=""" + Sitecore.Links.LinkManager.GetItemUrl(membershipItem) + @""" title=""" + Translate.Text("Membership Options") + @""">" + Translate.Text("Membership Options") + @"</a>");
                    }
                    else
                    {
                        ClubMembershipLandingItem membershipItem = new ClubMembershipLandingItem(club.ClubItm.InnerItem.Axes.SelectSingleItem(String.Format(@"descendant-or-self::*[@@tid = '{0}']", ClubMembershipLandingItem.TemplateId)));
                        //var MembershipLink = e.Item.FindControl("MembershipLink") as System.Web.UI.WebControls.Literal;
                        //MembershipLink.Text = @"<a href=""" + ClubLinkUrl + "?page=Interested" + @""" title=""" + Translate.Text("Membership Options") + @""">" + Translate.Text("Membership Options") + @"</a>";
                        links.Add(@"<a href=""" + Sitecore.Links.LinkManager.GetItemUrl(membershipItem) + @""" title=""" + Translate.Text("Membership Options") + @""">" + Translate.Text("Membership Options") + @"</a>");
                    }

                    System.Text.StringBuilder linkBuilder;
                    linkBuilder = new System.Text.StringBuilder();
                    int j = 0;

                    foreach(string link in links)
                    {
                        if (j == 0)
                        {
                            linkBuilder.Append(@"<li class=""club-link-first"">");
                        }
                        else
                        {
                            linkBuilder.Append(@"<li class=""club-link"">");
                        }
                        linkBuilder.Append(link);
                        linkBuilder.Append("</li>");

                        j++;
                    }

                    ltrClubLinks.Text = linkBuilder.ToString();
                }
            }
        }