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 BookWithThemes : System.Web.UI.MasterPage
{
   /// <summary>
   /// W czasie ładowania wypełnienie listy tematów na podstawie zawartości folderu App_Themes
   /// </summary>
   protected void Page_Load(object sender, EventArgs e)
   {
      // dynamiczne ładowanie listy rozwijanej tylko za perwszym razem
      if (!IsPostBack)
      {
         // tematy muszą znajdować się w tej lokalizacji
         string path = Server.MapPath("~/App_Themes");
         // sprawdzenie, czy lokalizacja istnieje
         if (Directory.Exists(path))
         {
            // odczyt tablicy nazw folderów tematów
            String[] themeFolders = Directory.GetDirectories(path);
            // przetwarzanie elementów tej tablicy
            foreach (String folder in themeFolders)
            {
               // pobieranie informacji na temat nazw folderów
               DirectoryInfo info = new DirectoryInfo(folder);
               // dodanie nazwy folderu do listy rozwijanej
               drpThemes.Items.Add(info.Name);
            }
            // po dodaniu wszystkich tematów do listy, należy ustawić 
            // bieżący temat strony w liście

            // na początek wyszukujemy nazwę tematu strony w liście
            ListItem item = drpThemes.Items.FindByText(Page.Theme);
            // następnie ustawiamy wybrany indeks w liście (czyli wybieramy
            // element listy) na znaleziony elementlisty
            drpThemes.SelectedIndex = drpThemes.Items.IndexOf(item);
         }
      }
   }

   /// <summary>
   /// Procedura obsługi zdarzenia wyboru tematu
   /// </summary>
   protected void drpTheme_selectedChanged(object s, EventArgs e)
   {
      //zapisanie tematu w sesji
      string theme = drpThemes.SelectedItem.Text;
      Session["themeName"] = theme;

      //ponowne żądanie strony
      string page = Request.Path;
      Server.Transfer(page);
   }

   /// <summary>
   /// Właściwość pozwalająca ustawić i odczytać url strony z reklamą
   /// </summary>
   public string AdImageUrl
   {
      get { return imgbtnAd.ImageUrl; }
      set { imgbtnAd.ImageUrl = value; }
   }

   /// <summary>
   /// Właściwość pozwalająca ustawić i odczytać url 
   /// łącza obrazu reklamowego.
   /// </summary>
   public string AdNavigateUrl
   {
      get { return imgbtnAd.NavigateUrl; }
      set { imgbtnAd.NavigateUrl = value; }
   }
}
