using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using Wpis = Model.Wpis;

namespace KsięgaGości
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            wyświetlWpisy();
        }

        protected void Page_Init(object sender, EventArgs e)
        {
            if (TextBox1.Text == "")
            {
                string nazwaUżytkownika = przypomnijNazwęUżytkownika();
                if (nazwaUżytkownika != null) TextBox1.Text = nazwaUżytkownika;
            }
        }        

        void wyświetlWpisy()
        {
            Wpisy wpisy = (Wpisy)Application[Global.idWpisy];

            /*
            Label1.Text="Wpisy:<P>";
            for (int i = wpisy.Liczba - 1; i >= 0 ; --i)
            {
                Label1.Text += "<FONT COLOR=\"" + ((i % 2 == 0) ? "blue" : "navy") + "\">";
                Label1.Text += "<B>" + wpisy[i].NazwaUżytkownika + "</B><BR>";
                Label1.Text += "</FONT>";

                Label1.Text += wpisy[i].Treść.Replace("\n","<BR>") + "<BR>";
                Label1.Text += "<BR>Dodano " + wpisy[i].Data.ToString() + " z komputera <I>" + wpisy[i].AdresIP + "</I>";
                Label1.Text += "<P><HR WIDTH=\"10%\" ALIGN=\"left\"><P>";                
            }
            */
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            String nazwaUżytkownika = TextBox1.Text;
            String treśćWpisu = TextBox2.Text; //.Replace("\r","").Replace("\n","<BR>");            

            /*
            if (nazwaUżytkownika == "")
            {
                Label1.Text = "Błąd: brak nazwy użytkownika";
                Label1.ForeColor = System.Drawing.Color.Red;
                return;
            }

            if (treśćWpisu == "")
            {
                Label1.Text = "Błąd: brak treści wpisu";
                Label1.ForeColor = System.Drawing.Color.Red;
                return;
            }
            */

            zapamiętajNazwęUżytkownika(nazwaUżytkownika);

            Wpis wpis = new Wpis()
            {                
                NazwaUżytkownika = nazwaUżytkownika,
                Treść = treśćWpisu,
                Data = DateTime.Now,
                AdresIP = Request.UserHostAddress
            };

            Wpisy wpisy = (Wpisy)Application[Global.idWpisy];
            wpisy.Dodaj(wpis);

            LinqDataSource1.DataBind();
            Repeater1.DataBind();
            TextBox2.Text = "";

            wyświetlWpisy();
        }

        const string idNazwaUżytkownika = "nazwaUżytkownika";

        void zapamiętajNazwęUżytkownika(string nazwaUżytkownika)
        {
            HttpCookie ciasteczko = new HttpCookie(idNazwaUżytkownika, nazwaUżytkownika);
            ciasteczko.Expires = DateTime.Now.AddDays(3);
            Response.Cookies.Add(ciasteczko);
        }

        string przypomnijNazwęUżytkownika()
        {
            if (Request.Cookies[idNazwaUżytkownika] != null) return Request.Cookies[idNazwaUżytkownika].Value;
            else return null;
        }
    }
}