diff --git a/etusivu.py b/etusivu.py
index e032d8ffa848234832c44616b5c3de87049c9882..01494a57a3b2d18c57453a1482edf9dbbc947c0f 100644
--- a/etusivu.py
+++ b/etusivu.py
@@ -1,23 +1,166 @@
-elokuvat = {} #Tää on vaan raakaversio ja muutellaan näitä sitä mukaan kun keksitään hyviä nimiä ja tietoja
-elokuvat["elokuva1"] = "ikaraja, kesto, arvostelu"
-elokuvat["elokuva2"] = "ikaraja, kesto, arvostelu"
-elokuvat["elokuva3"] = "ikaraja, kesto, arvostelu"
-elokuvat["elokuva4"] = "ikaraja, kesto, arvostelu"
-elokuvat["elokuva5"] = "ikaraja, kesto, arvostelu"
+elokuvalista = {'Nälkäpeli': ('2h 37min', 16), 'Dune': ('3h 30min', 12), 'Megalodon': ('2h 45min', 16)}
 
-elokuva_lista = [elokuva1, elokuva2, elokuva3, elokuva4, elokuva5]
+elokuva_lista = ["Nälkäpeli", "Dune", "Megalodon"]
 
 def elokuvien_tiedot(elokuva: tuple):
-    ikaraja, kesto, arvostelu = elokuva
-    print(f"{ikaraja}, {kesto}, {arvostelu}")
+    ikaraja, kesto = elokuva
+    print(f"{ikaraja}, {kesto}")
     #Yritin tehdä sen listan ja siihen liittyvän sanakirjan, että pystyis tarkasteelee niitä elokuvia erikseen
     #toi arvostelu tosi hauska lisä mun mielestä, mitä asteikkoa käytetään? 1-5? tähdet ois kivat mut en tiiä mistä ne sais (annukka)
 
+
 def varaus():
-    print("Tähän tulee varausjärjestelmä! :)")
-    #tähän siis kasataan varausjärjestelmä, tai sit tähän laitetaan toinen funktio joka sit määritellään aiemmin
+    
+    eka_sali = [[1,2,3,4,5,6,7,8,9,10],
+            [11,12,13,14,15,16,17,18,19,20],
+            [21,22,23,24,25,26,27,28,29,30],
+            [31,32,33,34,35,36,37,38,39,40],
+            [41,42,43,44,45,46,47,48,49,50],
+            [51,52,53,54,55,56,57,58,59,60],
+            [61,62,63,64,65,66,67,68,69,70],
+            [71,72,73,74,75,76,77,78,79,80],
+            [81,82,83,84,85,86,87,88,89,90],
+            [91,92,93,94,95,96,97,98,99,100]]
+
+    toka_sali = [[1,2,3,4,5,6,7],  
+                [8,9,10,11,12,13,14], 
+                [15,16,17,18,19,21,22],
+                [23,24,25,26,27,28,29],
+                [30,31,32,33,34,35,36],
+                [37,38,39,40,41,42,43],
+                [44,45,46,47,48,49,50]]
+
+    kolmas_sali = [[1,2,3,4,5,],
+                [6,7,8,9,10],
+                [11,12,13,14,15],
+                [16,17,18,19,20],
+                [21,22,23,24,25]]
+
+
+    salit={"1 sali":eka_sali, "2 sali": toka_sali, "3 sali":kolmas_sali}
+    elokuvalista = {'Nälkäpeli': ('2h 37min', 16), 'Dune': ('3h 30min', 12), 'Megalodon': ('2h 45min', 16)}
+
+    naytosajat = {'Nälkäpeli': [["12.12", "12:00", "3 sali" ],
+                                ["13.12", "14:30", "2 sali"],
+                                ["14.12", "15:45", "1 sali"]],
+                    'Dune': [["13.12", "20:00", "2 sali"],
+                            ["14.12", "21:00", "3 sali"],
+                            ["15.12", "20:30", "1 sali"]],
+                    'Megalodon': [["12.12", "15:00", "3 sali"],
+                                ["14.12", "17:00", "1 sali"],
+                                ["16.12", "16:30", "2 sali"]]}
+
+    varaukset = {}
+
+    def tallennavaraus(varaaja, elokuva, aika, paiva, saliNimi, paikka): #tallentaa uuden varauksen varaukset.txt tiedostoon
+        with open("varaukset.txt", "a") as tiedosto:
+            rivi = f"{varaaja},{elokuva},{aika},{paiva},{saliNimi},{paikka}" + "\n"
+            tiedosto.write(rivi)
+            varaukset[varaaja]=f"{varaaja},{elokuva},{aika},{paiva},{saliNimi},{paikka}"
+
+    def haevaraukset(): #hakee varaukset varaukset.txt tiedostosta
+        global varaukset
+        varaukset.clear()
+        with open("varaukset.txt", "r") as tiedosto: 
+            for rivi in tiedosto:
+                tiedot=rivi.strip().split(",")
+                varaukset[tiedot[0]]=",".join(tiedot[1:])
+
+    def tulosta_naytokset(elokuva): #tulostaa elokuvan kaikki näytökset
+        for i in range(len(naytosajat[elokuva])):
+            print(naytosajat[elokuva][i][0], naytosajat[elokuva][i][1], naytosajat[elokuva][i][2])
+
+    def tulosta_sali(salit): #tulostaa näytöksen salin
+        for rivi in salit:
+            print(rivi)
+
+
+    def varaa_paikka(sali, paikka): 
+        for rivi in sali:
+            for penkki in rivi:
+                if penkki == paikka:
+                    penkki == "X"
+
+    def on_varattavissa(sali, paikka): 
+        for rivi in sali:
+            for penkki in rivi:
+                if penkki == paikka:
+                    if penkki == "X":
+                        return False
+        return True
+
+    def tee_varaus(elokuva,naytos): #paikan varaamninen tehdään tällä funktiolla
+        onVarannut = False
+        salikartta = naytosajat[elokuva][naytos][2]
+        
+        paikka = int(input("Anna paikan numero: "))
+        if on_varattavissa(salikartta, paikka):
+            varaa_paikka(salikartta, paikka)
+            onVarannut = True
+        else:
+            print("Varaa toinen paikka.")
+        return paikka
+
+    def tulostaVaratut(paiva,aika): #funktio, joka tulostaa varatut paikat X:nä salikartassa
+        paikat = []
+        sali=""
+        for varaus in varaukset:   
+            jaettu=varaukset[varaus].split(",")
+            time=jaettu[1]
+            date=jaettu[2]
+            sali=jaettu[-2]
+            if date==paiva and time==aika:
+                paikat.append(jaettu[-1])
+        for rivi in salit[sali]:
+            for paikka in rivi:
+                if str(paikka) in paikat:
+                    print("X",end=" ")
+                else:
+                    print(paikka,end=" ")
+            print()
+            
+    def varaa_elokuva(): #itse elokuvan ja paikan varaaminen on tämän funktion alla
+        elokuvaValittu = False
+        while not elokuvaValittu:
+            for i in elokuvalista: 
+                print(i) #listaa elokuvat, mitä nähtävissä
+            elokuva = input("Valitse haluamasi elokuva: ")#syötetään haluttu elokuvan nimi
+            if elokuva in naytosajat: #käy läpi onko elokuva näytosajat sanakirjassa
+                elokuvaValittu = True
+            else: 
+                print("Elokuva ei ole ohjelmistossa.") #jos elokuva ei ole näytösajoissa, kertoo että elokuva ei ole nähtävissä
+        tulosta_naytokset(elokuva)
+
+        naytos = int(input("Valitse haluamasi näytös: "))# 1 eka näytös, 2 toinen näytös, 3 kolmas näytös
         
+        ajat=naytosajat.get(elokuva)
+        sali=ajat[naytos-1][2]
+        print(sali) #tulostaa salin, jossa näytös on
+        paiva,aika,salinro=naytosajat[elokuva][naytos]
+        tulostaVaratut(paiva, aika) #tulostaa salikartan, jossa näkyy näkyy varatut paikat X:llä
         
+        nimi = input("Anna nimi, jolle varaus tehdään: ") #kysyy nimen, jolle varaus tehdään
+        paikka = tee_varaus(elokuva,naytos) #tee_varaus funktio kysy halutun istumapaikan ja varaa sen 
+        tallennavaraus(nimi,elokuva,aika,paiva,salinro,paikka)  #tallentaa varauksen tiedot varaukset.txt tiedostoon
+
+        print("Kiitos varauksesta!")
+        main_varaus()    
+
+    def main_varaus(): #varaamisen valikko, josta pääsee varaamaan tai takaisin etusivulle
+        print("1 varaa elokuva")
+        print("2 palaa etusivulle")
+        arvo = int(input("Anna toiminto: "))
+        haevaraukset()
+        if arvo == 1:
+            varaa_elokuva()
+        elif arvo == 2:
+            print("Kiitos ja hei!")
+            main()
+        main_varaus()
+ 
+
+        
+
 
 def admin():
     print("Tähän tulee ylläpito! :)")
@@ -26,22 +169,23 @@ def admin():
 
 #tästä eteenpäin ei käytännössä tarttee koskea, muuten kuin jos funktioille lisää parametreja 
 #(en oo sata varma miten niitä tässä käytettäisiin mutta selviää varmasti ajallaan)
+def main():
+    print("1 Varaaminen")
+    print("2 ylläpito")
+    print("3 Elokuvat ja niiden tiedot") # lisäsin sen elokuvien tarkasstelun tähän alotukseen
+    print("0 sulkee järjestelmän")
 
-print("1 Varaaminen")
-print("2 ylläpito")
-print("3 Elokuvat ja niiden tiedot") # lisäsin sen elokuvien tarkasstelun tähän alotukseen
-print("0 sulkee järjestelmän")
-
-while True:
-    arvo = int(input("Anna toiminto: "))
-    if arvo == 1:
-        varaus()
-    elif arvo == 2:
-        admin()
-    elif arvo == 3:   
-        print(elokvua_lista)
-        print("syötä haluamasi elokuvan nimi katsoaksesi sen tiedot: ")
-        elokuvien_tiedot()
-    elif  arvo == 0:
-        print("Kiitos ja hei!")
-        break
+    while True:
+        arvo = int(input("Anna toiminto: "))
+        if arvo == 1:
+            varaus()
+        elif arvo == 2:
+            admin()
+        elif arvo == 3:   
+            print(elokuva_lista)
+            elokuva = input("Syötä haluamasi elokuvan nimi katsoaksesi sen tiedot: ")
+            elokuvien_tiedot(elokuvalista[elokuva])
+            main()
+        elif  arvo == 0:
+            print("Kiitos ja hei!")
+            break