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

using System;
using System.ComponentModel;
using System.IO;
using System.Web.UI;
using System.Web.UI.WebControls;
using CommunityServer.Components;

namespace CommunityServer.Controls
{
	/// <summary>
	/// Writes out a classic A HREF= tag, without the AutoGenerated ClientID
	/// </summary>
	public class Href : HyperLink
	{
		protected override void Render(System.Web.UI.HtmlTextWriter writer)
		{
			StringWriter sw = new StringWriter();
			HtmlTextWriter tw = new HtmlTextWriter(sw);
			base.Render (tw);

			string controlID = string.Format(@" id=""{0}""", this.ClientID);
			string href = sw.ToString().Replace(controlID,"");
			writer.Write(href) ;

		}


		/// <summary>
		/// Gets or sets the name of the resource to dispaly.
		/// </summary>
		[
		Bindable(true),
		Category( "Appearance" ),
		Description( "Gets or sets the name of the resource to display." ),
		DefaultValue( "" ),
		]
		public virtual String ResourceName 
		{
			get 
			{
				Object state = ViewState["ResourceName"];
				if ( state != null ) 
				{
					return (String)state;
				}
				return "";
			}
			set 
			{
				ViewState["ResourceName"] = value;
			}
		}

		/// <summary>
		/// Gets or sets the name of the resource file to pull from
		/// </summary>
		[
		Bindable(true),
		Category( "Appearance" ),
		Description( "Gets or sets the name of the resource file." ),
		DefaultValue( null ),
		]
		public virtual String ResourceFile 
		{
			get 
			{
				Object state = ViewState["ResourceFile"];
				if ( state != null ) 
				{
					return (String)state;
				}
				return "";
			}
			set 
			{
				ViewState["ResourceFile"] = value;
			}
		}

		protected override void OnPreRender(EventArgs e)
		{            
			base.OnPreRender( e );
	    
			if (!Globals.IsNullorEmpty( ResourceName ))
				this.Text = ResourceManager.GetString(ResourceName, ResourceFile);
		}
	}
}
