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

using System;
using System.Collections;
using System.Web.UI.WebControls;
using CommunityServer.Components;
using CommunityServer.ControlPanel.Controls;
using CommunityServer.ControlPanel.UI;
using CommunityServer.Controls;
using CommunityServer.Galleries.Components;
using FormLabel = CommunityServer.ControlPanel.Controls.FormLabel;
using ResourceControl = CommunityServer.ControlPanel.Controls.ResourceControl;
using Style = CommunityServer.Controls.Style;
using HelpIcon = CommunityServer.ControlPanel.Controls.HelpIcon;

namespace CommunityServer.ControlPanel.Controls.Galleries
{
	/// <summary>
	/// Defines per-gallery quotas
	/// </summary>
	public class LocalQuotasControl : BaseGalleryAdminControl
	{

		#region Public Properties

		public Gallery Gallery
		{
			get{return gallery;}
			set{gallery = value;}
		}

		#endregion

		#region Child Controls

		protected CommunityServer.ControlPanel.Controls.HelpIcon Helpicon7;
		protected CommunityServer.ControlPanel.Controls.FormLabel Formlabel6;
		protected CommunityServer.ControlPanel.Controls.HelpIcon Helpicon8;
		protected CommunityServer.ControlPanel.Controls.FormLabel Formlabel8;
		protected System.Web.UI.WebControls.TextBox ImageQuota;
		protected System.Web.UI.WebControls.RegularExpressionValidator Regularexpressionvalidator4;
		protected CommunityServer.ControlPanel.Controls.HelpIcon Helpicon9;
		protected CommunityServer.ControlPanel.Controls.FormLabel Formlabel9;
		protected System.Web.UI.WebControls.TextBox DiskQuota;
		protected CommunityServer.ControlPanel.Controls.FileOnlyStatusMessage FOStatus;
		protected CommunityServer.ControlPanel.Controls.ConfigOKStatusMessage Status;
		protected System.Web.UI.WebControls.PlaceHolder OptionHolder;
		protected System.Web.UI.WebControls.RegularExpressionValidator Regularexpressionvalidator5;
		protected System.Web.UI.WebControls.Label MaxImageQuotaLabel;
		protected System.Web.UI.WebControls.Label MaxDiskQuotaLabel;

		#endregion
		
		private Gallery gallery;
		private GalleryConfiguration config;
		private string resourceFile = "ControlPanelResources.xml";

		private void Page_Load(object sender, EventArgs e)
		{
			config = GalleryConfiguration.Instance();
			int imageQuota = config.ImageQuota;
			int diskQuota = config.DiskQuota;
			if(imageQuota > -1)
				MaxImageQuotaLabel.Text = ResourceManager.GetString("CP_PhotosShared_Quotas_MaxImageQuota", resourceFile) + " " + imageQuota.ToString();
			if(diskQuota > -1)
				MaxDiskQuotaLabel.Text = ResourceManager.GetString("CP_PhotosShared_Quotas_MaxDiskQuota", resourceFile) + " " + config.GetFormattedDiskQuota();

			if(!IsPostBack && Gallery != null)
			{
				ImageQuota.Text = config.GetFormattedImageQuota(Gallery.ImageQuota);
				DiskQuota.Text = config.GetFormattedDiskQuota(Gallery.DiskQuota);
			}
		}

		#region Web Form Designer generated code
		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN: This call is required by the ASP.NET Web Form Designer.
			//
			InitializeComponent();
			base.OnInit(e);
		}
		
		/// <summary>
		/// Required method for Designer support - do not modify
		/// the contents of this method with the code editor.
		/// </summary>
		private void InitializeComponent()
		{   
			this.Load += new System.EventHandler(this.Page_Load);

		}


		#endregion

		public void GetFormValues(Gallery g)
		{
			g.ImageQuota = config.ParseQuota(this.ImageQuota.Text,GalleryQuotaType.Image);
			g.DiskQuota = config.ParseQuota(this.DiskQuota.Text,GalleryQuotaType.Disk);
		}

	}
}
