//------------------------------------------------------------------------------
// <copyright company="Telligent Systems">
//     Copyright (c) Telligent Systems Corporation.  All rights reserved.
// </copyright> 
//------------------------------------------------------------------------------

using System;
using System.Web.UI.HtmlControls;
using CommunityServer.Components;
using CommunityServer.Controls;
using CommunityServer.Discussions.Components;

namespace CommunityServer.Discussions.Controls
{
	public abstract class BaseRssLink : HtmlAnchor
	{
		protected CSContext csContext = CSContext.Current;

		protected abstract bool IsInvalid();
		protected abstract bool IsAvailableToPublic();
		protected abstract string Url { get; }

		protected override void CreateChildControls()
		{
			HtmlImage image = new HtmlImage();

			if ((!ForumConfiguration.Instance().EnableForumsRSS) || (IsInvalid()))
				return;

			if ((!csContext.SiteSettings.EnableSecureSyndication) && (!IsAvailableToPublic()))
			{
					image.Src = Globals.GetSiteUrls().RssImageDisabled();
					image.Border = 0;
					Controls.Add(image);
					return;
			}

			image.Src = Globals.GetSiteUrls().RssImage(!IsAvailableToPublic());
			image.Border = 0;

			if(IsAvailableToPublic())
			{
				base.HRef = Url;
				image.Alt = ResourceManager.GetString("ViewThreads_XML");
			}
			else
			{
				base.HRef = SiteUrls.FormatUrlWithUserNameToken(Url, csContext.User, true);
				image.Alt = ResourceManager.GetString("ViewThreads_SecureXML");
			}

		    SetRssAutoDiscovery();

			Controls.Add(image);
		}

        protected virtual void SetRssAutoDiscovery()
        {
            
        }

        protected void SetRssAutoDiscovery(string title, string localPath)
        {
            Head.AddRssAutoDiscovery(title,Globals.FullPath(localPath),Context);
        }
	}
}
