using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

using System.IO;

public partial class Site: System.Web.UI.MasterPage
{
   /// <summary>
   /// Podczas ładowania zapełnij listę na podstawie motywów w folderze App_Themes
   /// </summary>
   protected void Page_Load(object sender, EventArgs e)
   {
      // załaduj dynamicznie listę rozwijaną tylko za pierwszym razem
      if (!IsPostBack)
      {
         // motywy muszą znajdować się w tej lokalizaji
         string path = Server.MapPath("~/App_Themes");
         // sprawdź, czy ta lokalizacja istnieje
         if (Directory.Exists(path))
         {
            // pobierz tablicę nazw folderów z motywami
            String[] themeFolders = Directory.GetDirectories(path);
            // przetwórz każdy element w tej tablicy
            foreach (String folder in themeFolders)
            {
               // pobierz informacje o nazwie tego foldera
               DirectoryInfo info = new DirectoryInfo(folder);
               // dodaj tę nazwę foldera do listy rozwijanej
               drpThemes.Items.Add(info.Name);
            }
            // po załadowaniu motywów do listy, należy oznaczyć bieżący motyw strony 
            // jako zaznaczony element listy

            // najpierw odszukaj nazwę motywu strony wśród elementów listy 
            ListItem item = drpThemes.Items.FindByText(Page.Theme);
            // teraz ustaw wybrany indeks listy (czyli wybierz ten
            // element listy) jako indeks elementu listy, który właśnie został odszukany
            drpThemes.SelectedIndex = drpThemes.Items.IndexOf(item);
         }
      }
   }

   /// <summary>
   /// Funkcja obsługi zdarzeń dla selektora motywów
   /// </summary>
   protected void drpTheme_selectedChanged(object s, EventArgs e)
   {
      //zapisz motyw w profilu
      string theme = drpThemes.SelectedItem.Text;
      Profile.Theme = theme;
      Profile.Save();

      //ponownie zarządaj stronę
      string page = Request.Path;
      Server.Transfer(page);
   }

}
