private void button1_Click(object sender, EventArgs e)
        {
            string linija;

            if (tb1.TextLength > 0 && tb2.TextLength > 0 && tb3.TextLength > 0 && tb4.TextLength > 0 && tb5.TextLength > 0 && tb6.TextLength > 0 && tb7.TextLength > 0)
            {
                if (comboBox1.SelectedItem != null && comboBox2.SelectedItem != null && comboBox3.SelectedItem != null && comboBox4.SelectedItem != null && comboBox5.SelectedItem != null && comboBox6.SelectedItem != null && comboBox7.SelectedItem != null && comboBox8.SelectedItem != null)
                {
                    RegulatorMinuta reg = new RegulatorMinuta(user);

                    linija = tb1.Text + ";" + tb2.Text + ";" + comboBox1.SelectedItem + "." + comboBox2.SelectedItem + "." + comboBox3.SelectedItem + ".-" + comboBox4.SelectedItem + ":" + comboBox5.SelectedItem + ";" + tb3.Text + ";" + tb4.Text + ";";
                    linija += tb5.Text + ";" + tb6.Text + ";" + tb7.Text + ";" + comboBox6.SelectedItem + ":" + comboBox8.SelectedItem;
                    linija += ";" + comboBox7.SelectedItem + ":" + comboBox9.SelectedItem;

                    FileStream aFile = new FileStream(put + @"\obaveze.txt", FileMode.Append, FileAccess.Write);
                    StreamWriter Sw = new StreamWriter(aFile);

                    Sw.WriteLine("");   // zapisujemo
                    Sw.Write(linija);
                    Sw.Close();
                    aFile.Close();

                    this.DialogResult = DialogResult.OK;
                    this.Hide();
                }
                else
                {
                    MessageBox.Show("Odaberite sve sate i minute", "Informacija", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            else
            {
                MessageBox.Show("Ispunite sve texboxove", "Informacija", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
 public void AddO(Object Sender, EventArgs e)
 {
     RegulatorMinuta reg = new RegulatorMinuta(user);
     AddObaveze addo = new AddObaveze(exe, user);
     if (addo.ShowDialog() == DialogResult.OK)
     {
         lb1.Items.Clear();
         Textbox_dodavanje_Prijava(dat.datotekaVratiObaveze1(), dat.datotekaVratiObaveze2(user));
         lab6.Text = reg.PromijeniMinute().ToString();
     }
 }
 /* Funkcija koja se poziva kada se pritisne Menutipka
  * AutoRaspored
  */
 public void Autom(Object Sender, EventArgs e)
 {
     RegulatorMinuta reg = new RegulatorMinuta(user);
     auto.Automatsko();
     lb1.Items.Clear();
     Textbox_dodavanje_Prijava(dat.datotekaVratiObaveze1(), dat.datotekaVratiObaveze2(user));
     lab6.Text = reg.PromijeniMinute().ToString();
 }
        /* Metoda koja se poziva kada je kliknut gumb Odjava */
        private void btn2_Clicked(Object Sender, EventArgs e)
        {
            if (lb2.SelectedItem != null)
            {
                RegulatorMinuta reg = new RegulatorMinuta(user);
                LinkedList<string> listaIstek = new LinkedList<string>();

                // spremamo istekle obaveze
                listaIstek = auto.ProvjeraRoka();
                bool vrijednost = true;

                foreach (var item in listaIstek)
                {
                    string[] item2 = item.Split(' ');

                    // Ako postoji neka obaveza u listi isteklih
                    if (item2[1].Equals(VratiID(lb2.SelectedItem.ToString())))
                    {
                        // Prikazujemo poruku , pokrecemo automatsko funkciju te brisemo iz liste prijavljenih
                        MessageBox.Show("Za izabranu obavezu je rok istekao", "Informacija", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        vrijednost = false;
                        auto.Automatsko();
                        int index2 = lb2.SelectedIndex;
                        lb2.Items.RemoveAt(index2);
                        lb2.Refresh();
                        break;
                    }
                }

                // odjavimo selektiranu obavezu
                DatotekaPrijave odjava = new DatotekaPrijave(user, lb2.SelectedItem, false);

                // Ako je označena neka obaveza u Listboxu2 onda se ona prebacuje u ListBox1 
                // i miče iz trenutnog listboxa
                if (lb2.SelectedItem != null && vrijednost)
                {

                    int index2 = lb2.SelectedIndex;
                    lb1.Items.Add(lb2.SelectedItem);
                    lb2.Items.RemoveAt(index2);
                }
                else
                {
                    //selektiranu obavezu dodamo nazad u listu prijavljenih ako je doslo do greske
                    DatotekaPrijave prijava = new DatotekaPrijave(user, lb2.SelectedItem, true);
                }

                // osvježavamo minute
                lab6.Text = reg.PromijeniMinute().ToString();
                lab6.Refresh();

            }
        }
        /* Metoda koje se poziva u trenutku kada 
         * je kliknut gumb Prijava
         */
        private void btn1_Clicked(Object Sender, EventArgs e)
        {
            if (lb1.SelectedItem != null)
            {
                // Instanciramo klase RegulatorMinuta koji nam broji preostale minute
                // za obaveze i usere
                RegulatorMinuta reg = new RegulatorMinuta(user);
                LinkedList<string> listaIstek = new LinkedList<string>();   // Lista koja sadrži obaveze koje su istekle

                // ova vrijednost je postavljena na true , a mjenja se u slučaju nemogućnosti prijavljivanja obaveze
                bool vrijednost = true;

                listaIstek = auto.ProvjeraRoka();  // Pozivamo funkciju u koju spremamo istekle obaveze

                // definiramo vrijednost vrijeme koja nam kaže da li je selektirana obaveza u vremenskom konfliktu 
                // sa nekom drugom obavezom koja je vec prijavljena
                bool vrijeme = reg.IstoVrijeme(lb1.SelectedItem.ToString());

                // Za svaki item u listi isteklih obaveza provjeravamo da li se poklapa sa selektiranom , tj. označenom obavezom
                foreach (var item in listaIstek)
                {
                    string[] item2 = item.Split(' ');

                    // Ako se ID obaveza poklapaju , znači da je rok istekao 
                    if (item2[1].Equals(VratiID(lb1.SelectedItem.ToString())))
                    {
                        // Ispisujemo poruku
                        MessageBox.Show("Za izabranu obavezu je rok istekao - odaberite opciju Auto Obaveze u Alatima", "Informacija", MessageBoxButtons.OK, MessageBoxIcon.Information);

                        // Pokrecemo funkciju automatsko koja raspoređuje tu obavezu automatski
                        auto.Automatsko();
                        int index1 = lb1.SelectedIndex;
                        lb1.Items.RemoveAt(index1);  // mičemo obavezu iz ponude za prijavu posto smo je dodjelili svima
                        lb1.Refresh();
                        vrijednost = false; // vrijednost je false zato sto se dogodila greska
                        break;
                    }
                }

                int broj = reg.PromijeniMinute();
                if (vrijednost)
                {
                    DatotekaPrijave prijava = new DatotekaPrijave(user, lb1.SelectedItem, true);

                    // u broj stavljamo preostale minute trenutnog usera
                    broj = reg.PromijeniMinute();

                }

                if (broj < 0)
                {
                    // Ako su minute korisnika manje od nula onda je izabrao previse obaveza
                    DatotekaPrijave odjava = new DatotekaPrijave(user, lb1.SelectedItem, false);
                    MessageBox.Show("Izabrali ste previse obaveza", "Upozorenje", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                else
                {
                    // Ako je izabrana neka obaveza i vrijednost je true onda se provjerava
                    // da li je vrijeme isto kao u nekoj od prijavljenih obaveza , ako je i to 
                    // uredu onda se dodaje obaveza u listu prijavljenih
                    // i miče iz liste obaveza za prijavu
                    if (lb1.SelectedItem != null && vrijednost)
                    {
                        if (vrijeme)
                        {
                            int index1 = lb1.SelectedIndex;
                            lb2.Items.Add(lb1.SelectedItem);
                            lb1.Items.RemoveAt(index1);
                        }
                        else
                        {
                            // U slucaju da je vrijeme false tj da postoji neka obaveza sa istim vremenom
                            // onda se brise prijava iz liste prijavljenih
                            // i ispisuje poruka
                            DatotekaPrijave odjava = new DatotekaPrijave(user, lb1.SelectedItem, false);
                            MessageBox.Show("Vec imate prijavljenu obavezu u tom periodu", "Informacija", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                    }
                }

                // labela za minute se promijeni i refresha
                lab6.Text = reg.PromijeniMinute().ToString();
                lab6.Refresh();
            }
       
            // Ako je označena neka obaveza u Listboxu1 onda se ona prebacuje u 
            // Listbox2 i miče iz trenutnog listboca
            
        }
        /* Funkcija za otvaranje i dodavanje dodatnih obaveza
         */
        private void OpenFile(Object Sender, EventArgs e)
        {

            MessageBox.Show("Datoteka mora biti propisanog sadržaja i oblika kao npr. obaveze.txt ! Ako je jedan znak pogrešan dolazi do problema pa koristite zadane upute pri pravljenju vlasiste datoteke", "Upozorenje", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            DialogResult rezultat = openfile.ShowDialog();
            
            if (rezultat == DialogResult.OK)
            {
                openFilename = openfile.FileName;
                RegulatorMinuta reg = new RegulatorMinuta(user);

                string[] str = File.ReadAllLines(openFilename);
                FileStream aFile = new FileStream(exe + @"\obaveze.txt", FileMode.Append, FileAccess.Write);
                StreamWriter Sw = new StreamWriter(aFile);

                foreach (var item in str)
                {
                    Sw.WriteLine("");  // zapisujemo
                    Sw.Write(item);    
                }
                
                Sw.Close();
                aFile.Close();

                lb1.Items.Clear();
                Textbox_dodavanje_Prijava(dat.datotekaVratiObaveze1(), dat.datotekaVratiObaveze2(user));
                lab6.Text = reg.PromijeniMinute().ToString();

            }
            else if (rezultat == DialogResult.Cancel)
            {
                return;
            }
        }
        private void Labele()
        {

            // Postavljamo vrijednosti labele koja se nalazi iznad listboxa 
            lab1.Text = "Obaveza          ID                    Rok           IDtermin   Trajanje  BrojA BrojD BrojAD    VrijemeP   VrijemeK";
            lab1.Width = 600; 
            lab1.BackColor = Color.Transparent;
            lab1.Location = new Point(302, 20);
            lab1.Font = new Font("Arial", 9, FontStyle.Regular);

            lab2.Text = "Opterećenje : ";
            lab2.Width = 200;
            lab2.BackColor = Color.Transparent;
            lab2.Location = new Point(25, 240);
            lab2.Font = new Font("Arial", 13, FontStyle.Regular);

            lab3.Text = "Preostalo minuta : ";
            lab3.Width = 200;
            lab3.BackColor = Color.Transparent;
            lab3.Location = new Point(25, 320);
            lab3.Font = new Font("Arial", 13, FontStyle.Regular);

            lab4.Text = datO.VratiIme(user);
            lab4.Width = 200;
            lab4.BackColor = Color.Transparent;
            lab4.Location = new Point(25, 410);
            lab4.Font = new Font("Arial", 13, FontStyle.Regular);

            lab5.Text = datO.VratiOpt(user).ToString();
            lab5.Width = 200;
            lab5.BackColor = Color.Transparent;
            lab5.Location = new Point(40, 270);
            lab5.Font = new Font("Arial", 13, FontStyle.Regular);

            RegulatorMinuta reg = new RegulatorMinuta(user);

            lab6.Text = reg.PromijeniMinute().ToString();
            lab6.Width = 200;
            lab6.BackColor = Color.Transparent;
            lab6.Location = new Point(40, 350);
            lab6.Font = new Font("Arial", 13, FontStyle.Regular);
        }