using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Gestor_de_Contenidos
{
    public partial class form_nuevo_nivel_hs : Form
    {
        private Nivel nivel;
        public form_nuevo_nivel_hs()
        {
            InitializeComponent();
        }

        private void btn_cancelar_Click(object sender, EventArgs e)
        {
            this.DialogResult = DialogResult.Cancel;
            this.Close();
        }

        private void btn_buscar_imagen_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                tb_fondo.Text = openFileDialog1.FileName;
            }
        }

        private void btn_selecciona_color_Click(object sender, EventArgs e)
        {
            if (colorDialog1.ShowDialog() == DialogResult.OK)
            {
                pb_color.BackColor = colorDialog1.Color;
            }
        }

        private void form_nuevo_nivel_hs_Load(object sender, EventArgs e)
        {
            cb_tipos_nivel.Items.Add("Nivel Explicación");
            cb_tipos_nivel.Items.Add("Nivel Elección Única");
            cb_tipos_nivel.Items.Add("Nivel Elección Libre");
            cb_tipos_nivel.Items.Add("Nivel Ordenación");
            cb_tipos_nivel.Items.Add("Nivel Clasificación");
            cb_tipos_nivel.Items.Add("Nivel Colaboración");
            pb_color.BackColor = Color.White;
            pb_color.Visible = false;
            rb_color.Select();
        }

        private void btn_aceptar_Click(object sender, EventArgs e)
        {
            if ( tb_nombre.Text.Equals("") || tb_descripcion.Text.Equals("") || cb_tipos_nivel.SelectedItem == null || cb_tipos_nivel.SelectedItem.ToString().Equals("") || (tb_fondo.Text.Equals("") && rb_fondo.Checked))
            {
                MessageBox.Show("Rellena todos los campos", "Información Incompleta", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            else 
            {
                this.DialogResult = DialogResult.OK;

                switch (cb_tipos_nivel.SelectedItem.ToString())
                {
                    case "Nivel Explicación":
                        nivel = new NivelExplicacion();
                        if (rb_color.Checked)
                        {
                            nivel.Fondo = "";
                            nivel.ColorFondo = pb_color.BackColor.ToArgb();
                        }
                        else {

                            nivel.Fondo = tb_fondo.Text;
                            nivel.ColorFondo = 0;
                        }
                        nivel.Nombre = tb_nombre.Text;
                        nivel.Texto = tb_descripcion.Text;
                        break;
                    case "Nivel Elección Única":
                        nivel = new NivelEleccionUnica();
                        if (rb_color.Checked)
                        {
                            nivel.Fondo = "";
                            nivel.ColorFondo = pb_color.BackColor.ToArgb();
                        }
                        else
                        {
                            nivel.Fondo = tb_fondo.Text;
                            nivel.ColorFondo = 0;
                        }
                        nivel.Nombre = tb_nombre.Text;
                        nivel.Texto = tb_descripcion.Text;
                        break;
                    case "Nivel Elección Libre":
                        nivel = new NivelEleccionLibre();
                        if (rb_color.Checked)
                        {
                            nivel.Fondo = "";
                            nivel.ColorFondo = pb_color.BackColor.ToArgb();
                        }
                        else
                        {
                            nivel.Fondo = tb_fondo.Text;
                            nivel.ColorFondo = 0;
                        }
                        nivel.Nombre = tb_nombre.Text;
                        nivel.Texto = tb_descripcion.Text;
                        break;
                    case "Nivel Ordenación":
                        nivel = new NivelOrdenacion();
                        if (rb_color.Checked)
                        {
                            nivel.Fondo = "";
                            nivel.ColorFondo = pb_color.BackColor.ToArgb();
                        }
                        else
                        {
                            nivel.Fondo = tb_fondo.Text;
                            nivel.ColorFondo = 0;
                        }
                        nivel.Nombre = tb_nombre.Text;
                        nivel.Texto = tb_descripcion.Text;
                        break;
                    case "Nivel Clasificación":
                        nivel = new NivelClasificacion();
                        if (rb_color.Checked)
                        {
                            nivel.Fondo = "";
                            nivel.ColorFondo = pb_color.BackColor.ToArgb();
                        }
                        else
                        {
                            nivel.Fondo = tb_fondo.Text;
                            nivel.ColorFondo = 0;
                        }
                        nivel.Nombre = tb_nombre.Text;
                        nivel.Texto = tb_descripcion.Text;
                        break;
                    case "Nivel Colaboración":
                        nivel = new NivelColaboracion();
                        if (rb_color.Checked)
                        {
                            nivel.Fondo = "";
                            nivel.ColorFondo = pb_color.BackColor.ToArgb();
                        }
                        else
                        {
                            nivel.Fondo = tb_fondo.Text;
                            nivel.ColorFondo = 0;
                        }
                        nivel.Nombre = tb_nombre.Text;
                        nivel.Texto = tb_descripcion.Text;
                        break;
                    default: break;
                }
                this.Close();
            }
        }

        public Nivel getNivel() { return nivel; }

        private void tb_fondo_TextChanged(object sender, EventArgs e)
        {
            if (tb_fondo.Text.Equals(""))
                pb_imagen.Visible = false;
            else
            {
                pb_imagen.Visible = true;
                pb_imagen.Image = Image.FromFile(tb_fondo.Text);
                pb_imagen.Image = pb_imagen.Image.GetThumbnailImage(pb_imagen.Width, pb_imagen.Height, null, new System.IntPtr());
               
                
            }
        }

        private void rb_fondo_CheckedChanged(object sender, EventArgs e)
        {
            if (rb_fondo.Checked)
            {
                pb_imagen.Visible = true;
                btn_buscar_imagen.Enabled = true;
                pb_color.Visible = false;
                btn_selecciona_color.Enabled = false;
            }
            else {

                pb_imagen.Visible = false;
                btn_buscar_imagen.Enabled = false;
                pb_color.Visible = true;
                btn_selecciona_color.Enabled = true;
            }
        }

        public void setNombreNivel(string p)
        {
            tb_nombre.Text = p;
            tb_nombre.Enabled = false;
        }

        private void tb_nombre_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (Char.IsLetter(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsControl(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsSeparator(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsNumber(e.KeyChar))
            {
                e.Handled = false;

            }
            else
            {
                e.Handled = true;
            }
        }
    }
}
