//------------------------------------------------------------------------------
// <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>
	/// Summary description for SectionEditDetailsControl.
	/// </summary>
	public class GlobalQuotasControl : BaseGalleryAdminControl
	{

		#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 System.Web.UI.WebControls.PlaceHolder OptionHolder;
		protected System.Web.UI.WebControls.RegularExpressionValidator Regularexpressionvalidator5;

		#endregion

		private void Page_Load(object sender, EventArgs e)
		{
			if(!IsPostBack)
			{
				GalleryConfiguration config = GalleryConfiguration.Instance(false);
				if(config.FileOnly)
				{
					FOStatus.Visible = true;
					OptionHolder.Visible = false;
				}
				else
				{
					ImageQuota.Text = config.GetFormattedImageQuota();
					DiskQuota.Text = config.GetFormattedDiskQuota();
				}
			}
		}

		#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 Save()
		{
			if(!CSContext.Current.User.IsGalleryAdministrator)
				throw new CSException(CSExceptionType.AdministrationAccessDenied);
			
			if (!Page.IsValid)
				return;

			GalleryConfiguration config = GalleryConfiguration.Instance(false);

			if(config.FileOnly)
				return;

			config.DiskQuota = config.ParseQuota(this.DiskQuota.Text,GalleryQuotaType.Disk);
			config.ImageQuota = config.ParseQuota(this.ImageQuota.Text,GalleryQuotaType.Image);

			config.Save();
		}




	}
}
