/******************************************************************
  
  Funkce JavaScript pro aplikaci Ozvučený slovníček a fonetická cvičení
  Autor: (c) 2007 Petra Langerová, Michal Novák
  
*******************************************************************/

/******************************************************************
  
  Definice textových konstant
  
*******************************************************************/

vse_ok = "Všechny odpovědi jsou správné"
neco_spatne = "Některá z odpovědí není správná"
neuplne = "Nebyla rozřazena všechna slova nebo některé slovo bylo použito vícekrát"
vyhodnoceni_spravna_odpoved = "Správná odpověď"
vyhodnoceni_spatna_odpoved = "Špatná odpověď"
info_zobrazit_zvuk = "Kliknutím přehrajete slovo"
info_zvuk_neni = "Zvukový soubor s tímto slovem není dostupný"

nadpis_tisku = "Souborný tisk:\n\n"
souhrnny_tisk_info = nadpis_tisku + "Prohlížč nyní vytiskne aplikaci ve formě učebního textu. Tisk bude probíhat v několika krocích:\n1. Otevře se nové okno prohlížeče.\n2. Do tohoto okna budou postupně nahrávány jednotlivé stránky.\n3. Před tiskem každé stránky budete dotazováni, zda ji chcete nebo nechcete vytisknout.\n4. Po vytištění všech stránek se okno prohlížeče zavře.\n\nPřed tiskem doporučujeme v menu Soubor > Vzhled stránky... povolit tisk obrázků, barev a pozadí a nastavit prázdné záhlaví a zápatí stránky. Na dotaz na tisk následující stránky reagujte teprve po dokončení tisku předcházející stránky."
dovetek_tisku = "\n\nPokud kliknete na Storno, tato stránka nebude vytištěna a bude se pokračovat dotazem na tisk další stránky."
tisk_titulni_stranky = nadpis_tisku + "Chcete vytisknout titulní stránku?" + dovetek_tisku
tisk_uvodni_stranky = nadpis_tisku + "Chcete vytisknout úvodní stránku (text pod odkazem Úvod)?" + dovetek_tisku
tisk_lekce_zacatek = nadpis_tisku + "Chcete vytisknout seznam slovíček a cvičení pro lekci "
tisk_lekce_konec = "? " + dovetek_tisku

info_tisk = "Stránka bude vytištěna v podobě vhodné pro tisk. Doporučujeme\n1. Umožnit tisk barev a obrázků na pozadí.\n  V prohlížeči Microsoft Internet Explorer naleznete tuto volbu v\n  menu Nástroje > položka Možnosti Internetu > karta Upřesnit > nadpis Tisk\n  nebo v okně, které se objeví po kliknutí na tlačítko OK.\n2. Vytisknout pouze pravý rámec."
info_tisk_vpravo = "Vytisknout pravý rámec:\n\nBude vytištěn pravý rámec, tj. tato obrazovka bez menu. Doporučujeme povolit tisk barev a obrázků na pozadí.\nTuto volbu naleznete v menu Nástroje > položka Možnosti Internetu > karta Upřesnit > nadpis Tisk."

/******************************************************************
  
  Funkce zabezpečující chování při nahrání a opuštění stránky
  
*******************************************************************/

/* funkce, která spouští potřebné věci při nahrání běžné stránky
*/
function onloadBezne(jazyk,text){
  window.defaultStatus = text
  //vynutRamce()
  resetuj_formulare()
}

/* funkce, která spouští potřebné věci při nahrání úvodní stránky
*/
function uvod(){
  zjistitTop()
  maximalizovat()
  self.location = "aplikace.php"
}

/* funkce, která zjistí, jestli se náhodou slovník nezobrazuje v rámci nějaké cizí stránky
*/
function zjistitTop(){
  if(self != top){
    top.location.href = self.location.href
  }
}

/* funkce, která zajistí, že jednotlivé dílčí rámce nelze nahrát samostatně
*/
function vynutRamce(){
  if(self == top){
    top.location.href = "aplikace.php"
  }
}

/* funkce, která zajistí, že je aplikace spuštěna v maximalizovaném okně
*/
function maximalizovat(){ 
  sirkaObrazovky = screen.width
  vyskaObrazovky = screen.height
  dostupnaSirka = screen.availWidth
  dostupnaVyska = screen.availHeight
  if (dostupnaSirka <= 1024){
    window.moveTo(-4,-3)
    window.resizeTo(dostupnaSirka+8,dostupnaVyska+8)
  }
}

/* zresetování všech formulářů
*/
function resetuj_formulare(jazyk,text){
  // zresetování všech formulářů
  pole_vsech_tagu_form = document.getElementsByTagName("form")
  pocet_vsech_tagu_form = pole_vsech_tagu_form.length
  for (i = 0; i < pocet_vsech_tagu_form; i++){
    pole_vsech_tagu_form[i].reset
  }
  // zresetování všech přepínačů - výše uvedené nefunguje ve Firefoxu
  pole_vsech_tagu_input = document.getElementsByTagName("input")
  pocet_vsech_tagu_input = pole_vsech_tagu_input.length
  var pole_vsech_checkboxu = new Array
  var j = 0
  var pole_jmen_prepinacu = new Array
  /* nalezení všech jedinečných položek name v tagu <input type="checkbox" name="">
  */
  for (i = 0; i < pocet_vsech_tagu_input; i++){
    if (pole_vsech_tagu_input[i].type == "radio"){
      if (j > 0){
        if (pole_jmen_prepinacu[j-1] != pole_vsech_tagu_input[i].name){
          pole_jmen_prepinacu[j] = pole_vsech_tagu_input[i].name
          j++
        }
      } else {
          pole_jmen_prepinacu[j] = pole_vsech_tagu_input[i].name
          j++
      }
    }
  }
  pocet_polozek_name = pole_jmen_prepinacu.length
  for (k = 0; k < pocet_polozek_name; k++){
    jmeno_prepinace = pole_jmen_prepinacu[k]
    document.getElementsByName(jmeno_prepinace)[0].checked = true
  }
}

/******************************************************************
  
  Funkce na obsluhu tisku
  
*******************************************************************/

/* funkce, která se spustí při tisku stránky
*/
function onprintBezne(text_hlaseni){
  if (window.name == "text"){
    window.alert(text_hlaseni);
  }
}

/* funkce na tisk skript - vytištění všech stránek, nefunguje v MSIE
*/
function tisk_skript(){
  var souhlas = new Array(7)
  window.alert (souhrnny_tisk_info)
  tisk = window.open("titlist.php", "okno_tisk", "left=200,top=0,height=600,width=600,directories=no,titlebar=yes,location=no,menubar=yes,scrollbars=yes,toolbar=yes")
  souhlas_1 = tisk.confirm(tisk_titulni_stranky)
  if (souhlas_1 == true){
    tisk.print()
    www = "uvod.php"
    setTimeout("tisk.location = www",7000)
    //setTimeout("aktualizuj_stranku('uvod.php')",5000)
  }
  souhlas_2 = tisk.confirm(tisk_uvodni_stranky)
  if (souhlas_2 == true){
    tisk.print()
  }
  for (i = 1; i < 7; i++){
    www = "cviceni.php?" + i
    setTimeout("tisk.location = www",7000)
    //setTimeout("aktualizuj_stranku(www)",5000)
    souhlas[i] = tisk.confirm(tisk_lekce_zacatek + i + tisk_lekce_konec)
    if (souhlas[i] == true){
      tisk.print()
    }  
  }
  tisk.close()
}

/* funkce pro vytištění pravého rámce - pouze MSIE
*/
function tisk_vpravo(){
  ramec = top.frames[2]
  /* přejmenování pravého rámce - vazba na onbeforeprint - pokud se rámce jmenuje jinak než text, nebude se zobrazovat dlouhé hlášení v alert
  */
  ramec.name = "nic"
  // vlastní obsluha tisku
  alert (info_tisk_vpravo)
  ramec.focus()
  ramec.print()
  // zpětné přejmenování rámce
  ramec.name = "text"
}

/******************************************************************
  
  Funkce zabezpečující zobrazení a funkcionalitu okna O aplikaci...
  
*******************************************************************/

/* funkce, která spustí okno O aplikaci
*/
function okno_about(){
  o_Aplikaci = window.open("about_frameset.php", "about", "left=385,top=209,height=320,width=254,directories=no,titlebar=no,location=no,menubar=no,scrollbars=yes,toolbar=no")
}

/* funkce, která zajistí rolování textu
*/
function rolovani(){
  interval = window.setInterval("roluj()", 125)
}
function roluj(){
  window.scrollBy(0,1)
}

/******************************************************************
  
  Funkce na vyhodnocování fonetických cvičení
  
*******************************************************************/

/* funkce na vyhodnocení cvičení na odd one out - počet slabik a přízvučná slabika
*/
function odpoved(pocet_moznosti,oznaceni,spravna_odpoved){
  id_pole_spravna_odpoved = "id_" + spravna_odpoved
  id_tlacitka_odpovedet = "tlacitko_odpovedet_" + oznaceni
  //id_tlacitka_odpovedet = "tlacitko_odpovedet_" + oznaceni.name
  popis_stavu_odpovedi = document.getElementById(id_tlacitka_odpovedet).src
  if (popis_stavu_odpovedi.indexOf("bile") == -1){
    for (i = 0; i < pocet_moznosti; i++){
      //id_pole = oznaceni.name + i
      id_pole = "id_" + oznaceni + i
      if (document.getElementById(id_pole).checked == true){
        zatrzeno = oznaceni + i
        // zatrzeno = id_pole
      }
    }
    id_obrazku_odpovedi = "obrazek_odpovedi_" + oznaceni
    //id_obrazku_odpovedi = "obrazek_odpovedi_" + oznaceni.name  
    if (zatrzeno == spravna_odpoved){
      document.getElementById(id_obrazku_odpovedi).src = "obrazky/tlacitko_ok.gif"
      document.getElementById(id_obrazku_odpovedi).alt = vyhodnoceni_spravna_odpoved
      document.getElementById(id_obrazku_odpovedi).title = vyhodnoceni_spravna_odpoved
    } else {
      document.getElementById(id_obrazku_odpovedi).src = "obrazky/tlacitko_spatne.gif"
      document.getElementById(id_obrazku_odpovedi).alt = vyhodnoceni_spatna_odpoved
      document.getElementById(id_obrazku_odpovedi).title = vyhodnoceni_spatna_odpoved
      text_zatrzeno = "text_" + zatrzeno
      document.getElementById(text_zatrzeno).style.color = "red" 
    }
    // zvýrazní se správná odpověď
    text_spravne_odpovedi = "text_" + spravna_odpoved
    document.getElementById(text_spravne_odpovedi).style.fontWeight = "bold"
    // zmizí tlačítko OK
    document.getElementById(id_tlacitka_odpovedet).src = "obrazky/tlacitko_bile.gif"
    document.getElementById(id_tlacitka_odpovedet).alt = ""
    document.getElementById(id_tlacitka_odpovedet).title = ""
    // objeví se ikony zvuku
    oznaceni_obrazku = "zvuk_" + oznaceni + "_"
    //oznaceni_obrazku = "zvuk_" + oznaceni.name + "_"  
    for (i = 0; i < pocet_moznosti; i++){
      id_obrazku = oznaceni_obrazku + i 
      obrazek = document.getElementById(id_obrazku)
      if (obrazek.src.indexOf("zvuk_cviceni_nizke_prazdne.gif") > -1){
        obrazek.src = "obrazky/zvuk_cviceni_nizke_bile.gif"
        obrazek.alt = info_zobrazit_zvuk
        obrazek.title = info_zobrazit_zvuk
      } else {
        obrazek.src = "obrazky/zvuk_cviceni_nizke_mute.gif"
        obrazek.alt = info_zvuk_neni
        obrazek.title = info_zvuk_neni
      }
    }
  }
}

/* funkce pro vyčištění pole při cvičení na dublety
*/
function vyradit(identifikace_pole,obrazek){
  pole = document.getElementById(identifikace_pole)
  if (obrazek.src.indexOf("tlacitko_vyradit.gif") > -1){
    pole.disabled = false
    pole.value = ""
  }
}

/* funkce na vyhodnocení cvičení na dublety
*/
function vyhodnotit_dublety(typ_cviceni,dubleta_1,dubleta_2,dubleta_3,pocet_slov){
  id_tlacitka_odpovedet = "tlacitko_odpovedet_" + typ_cviceni
  popis_stavu_odpovedi = document.getElementById(id_tlacitka_odpovedet).src
  if (popis_stavu_odpovedi.indexOf("bile") == -1){
    // deklarace proměnných
    var dubleta_spravne = new Array(3)
    var pocet_spravne_dubleta = new Array(3)
    var vsechno_dobre = true
    var pocitadlo_spravnych_odpovedi = 0
    var pocitadlo_odpovedi = 0
    dubleta_spravne[0] = dubleta_1.split("-")
    dubleta_spravne[1] = dubleta_2.split("-")
    dubleta_spravne[2] = dubleta_3.split("-")
    pocet_spravne_dubleta[0] = dubleta_spravne[0].length - 1
    pocet_spravne_dubleta[1] = dubleta_spravne[1].length - 1
    pocet_poli = pocet_spravne_dubleta[0] + pocet_spravne_dubleta[1] - 1
    if (dubleta_3 != ""){
      pocet_spravne_dubleta[2] = dubleta_spravne[2].length - 1
      celkem_dublet = 3
      pocet_poli += pocet_spravne_dubleta[2]
    } else {
      celkem_dublet = 2
    }
    var u = 0
    var odlozena_hodnota_pro_kontrolu = new Array(pocet_slov)
    var regExp_1 = /\s+$/
    var regExp_2 = /^\s+/
    oznaceni_odpovedi = "obrazek_odpovedi_" + typ_cviceni
    // cykly pro procházení textových polí
    for (i = 0; i < celkem_dublet; i++){
      for (j = 0; j < pocet_poli; j++){
        // deklarace proměnných
        oznaceni_hodnoty = typ_cviceni + "_" + j + "_" + i
        oznaceni_vyhodnoceni = "vyradit_" + oznaceni_hodnoty
        hodnota = document.getElementById(oznaceni_hodnoty).value
        hodnota = hodnota.replace(regExp_1,"")
        hodnota = hodnota.replace(regExp_2,"")
        odlozena_hodnota_pro_kontrolu[u] = hodnota
        u++
        var toto_slovo_spravne = false
        // pokud je v textovém poli nějaká hodnota, vyhodnotí se
        if (hodnota != "" && hodnota != "undefined"){
          pocitadlo_odpovedi++
          for (k = 0; k < pocet_spravne_dubleta[i]; k++){
            //oznaceni_vyhodnoceni = "vyradit_" + oznaceni_hodnoty
            if (hodnota == dubleta_spravne[i][k]){
              toto_slovo_spravne = true
              pocitadlo_spravnych_odpovedi++
            }
          }
          if (toto_slovo_spravne == true){
            document.getElementById(oznaceni_vyhodnoceni).src = "obrazky/tlacitko_ok_dublety.gif"
            document.getElementById(oznaceni_vyhodnoceni).alt = vyhodnoceni_spravna_odpoved
            document.getElementById(oznaceni_vyhodnoceni).title = vyhodnoceni_spravna_odpoved
          } else {
            document.getElementById(oznaceni_vyhodnoceni).src = "obrazky/tlacitko_spatne_dublety.gif"
            document.getElementById(oznaceni_vyhodnoceni).alt = vyhodnoceni_spatna_odpoved
            document.getElementById(oznaceni_vyhodnoceni).title = vyhodnoceni_spatna_odpoved
            vsechno_dobre = false
          }
        } else {
          // pokud je textové pole prázdné, nemá smysl ji vyhodnocovat
          document.getElementById(oznaceni_vyhodnoceni).src = "obrazky/tlacitko_bile_dublety.gif"
        }
      }
    }
    // celkové vyhodnocení cvičení
    if (vsechno_dobre == true && pocitadlo_odpovedi == pocet_slov){
      document.getElementById(oznaceni_odpovedi).src = "obrazky/tlacitko_ok.gif"
      document.getElementById(oznaceni_odpovedi).alt = vse_ok
      document.getElementById(oznaceni_odpovedi).title = vse_ok    
    } else {
      document.getElementById(oznaceni_odpovedi).src = "obrazky/tlacitko_spatne.gif"
      document.getElementById(oznaceni_odpovedi).alt = neco_spatne
      document.getElementById(oznaceni_odpovedi).title = neco_spatne
      if (pocitadlo_odpovedi != pocet_slov){
        document.getElementById(oznaceni_odpovedi).src = "obrazky/tlacitko_neco_chybi.gif"
        document.getElementById(oznaceni_odpovedi).alt = neuplne
        document.getElementById(oznaceni_odpovedi).title = neuplne
      }
    }
    // zmizí tlačítko OK
    document.getElementById(id_tlacitka_odpovedet).src = "obrazky/tlacitko_bile.gif"
    document.getElementById(id_tlacitka_odpovedet).alt = ""
    document.getElementById(id_tlacitka_odpovedet).title = ""
    // objeví se ikony zvuku
    oznaceni_obrazku = "zvuk_" + typ_cviceni + "_"  
    for (i = 0; i < pocet_slov; i++){
      id_obrazku = oznaceni_obrazku + i
      obrazek = document.getElementById(id_obrazku)
      if (obrazek.src.indexOf("zvuk_cviceni_prazdne.gif") > -1){
        obrazek.src = "obrazky/zvuk_cviceni_bile.gif"
        obrazek.alt = info_zobrazit_zvuk
        obrazek.title = info_zobrazit_zvuk
      } else {
        obrazek.src = "obrazky/zvuk_cviceni_mute.gif"
        obrazek.alt = info_zvuk_neni
        obrazek.title = info_zvuk_neni
      }
    }
  }
}

/* funkce, která vyhodnotí cvičení na určení přízvučné slabiky - ne jako odd one out
*/

function odpoved_prizvucna_slabika_urcit(poradi,spravne){
  id_tlacitka_odpovedet = "tlacitko_odpovedet_" + poradi + "prizvucna_urcit"
  popis_stavu_odpovedi = document.getElementById(id_tlacitka_odpovedet).src
  if (popis_stavu_odpovedi.indexOf("bile") == -1){
    predany_parametr = spravne.split("+")
    delka_predaneho_parametru = predany_parametr.length
    var prizvucne_slabiky = new Array(parseInt(delka_predaneho_parametru)/2)
    var pocet_slabik = new Array(parseInt(delka_predaneho_parametru)/2)
    var slova = new Array(parseInt(delka_predaneho_parametru)/2)
    var slabiky = new Array(parseInt(delka_predaneho_parametru)/2)
    var ii = 0
    for (i = 0; i < delka_predaneho_parametru; i = i + 2){
      prizvucne_slabiky[ii] = predany_parametr[i]
      slova[ii] = predany_parametr[i+1]
      slabiky[ii] = slova[ii].split("-")
      pocet_slabik[ii] = slabiky[ii].length
      ii++
    }
    pocet_slov = pocet_slabik.length
    // pro každé slovo...
    vsechno_spravne = true
    for (j = 0; j < pocet_slov; j++){
      oznaceni_slova = "poradi_slova_" + j
      id_span_prizvucne_slabiky = "id_" + poradi + "slabika_" + prizvucne_slabiky[j] + "_slovo_" + j
      // pro každou slabiku v daném slově...
      slovo_spravne = false
      for (k = 0; k < pocet_slabik[j]; k++){
        id_slabiky = "id_" + poradi + oznaceni_slova + "_slabika_" + k
        id_spravne_odpovedi = "id_" + poradi + oznaceni_slova + "_slabika_" + prizvucne_slabiky[j]
        id_vyhodnoceni = "id_" + poradi + "vyhodnoceni_slova_" + j
        id_span_slabiky = "id_" + poradi + "slabika_" + k + "_slovo_" + j
        /* vybraná odpověď se označí červeně (pokud je dobrá, později se přepíše)
        */
        if (document.getElementById(id_slabiky).checked == true){
          document.getElementById(id_span_slabiky).style.color = "red"
        }
        // zjistí se, že je odpověď správná
        if (id_slabiky == id_spravne_odpovedi){
          if (document.getElementById(id_slabiky).checked == true){
            slovo_spravne = true
          }
        }
      }
      // vyhodnotí se slovo
      if (slovo_spravne == true){
        document.getElementById(id_vyhodnoceni).src = "obrazky/tlacitko_ok_dublety.gif"
        document.getElementById(id_vyhodnoceni).alt = vyhodnoceni_spravna_odpoved
        document.getElementById(id_vyhodnoceni).title = vyhodnoceni_spravna_odpoved
      } else {
        document.getElementById(id_vyhodnoceni).src = "obrazky/tlacitko_spatne_dublety.gif"
        document.getElementById(id_vyhodnoceni).alt = vyhodnoceni_spatna_odpoved
        document.getElementById(id_vyhodnoceni).title = vyhodnoceni_spatna_odpoved
        vsechno_spravne = false
      }
      // označí se správná přízvučná slabika
      document.getElementById(id_span_prizvucne_slabiky).style.color = "black"
      document.getElementById(id_span_prizvucne_slabiky).style.fontWeight = "bold"
    }
    // vyhodnotí se celé cvičení
    id_obrazek_odpovedi = "obrazek_odpovedi_" + poradi + "prizvucna_urcit"
    if (vsechno_spravne == true){
      document.getElementById(id_obrazek_odpovedi).src = "obrazky/tlacitko_ok.gif"
      document.getElementById(id_obrazek_odpovedi).alt = vse_ok
      document.getElementById(id_obrazek_odpovedi).title = vse_ok 
    } else {
      document.getElementById(id_obrazek_odpovedi).src = "obrazky/tlacitko_spatne.gif"
      document.getElementById(id_obrazek_odpovedi).alt = neco_spatne
      document.getElementById(id_obrazek_odpovedi).title = neco_spatne
    }
    // zmizí tlačítko OK
    document.getElementById(id_tlacitka_odpovedet).src = "obrazky/tlacitko_bile.gif"
    document.getElementById(id_tlacitka_odpovedet).alt = ""
    document.getElementById(id_tlacitka_odpovedet).title = ""
    // objeví se ikony zvuku
    oznaceni_obrazku = "zvuk_" + poradi + "prizvucna_urcit_"  
    for (i = 0; i < pocet_slov; i++){
      id_obrazku = oznaceni_obrazku + i
      obrazek = document.getElementById(id_obrazku)
      if (obrazek.src.indexOf("prazdne.gif") > -1){
        obrazek.src = "obrazky/zvuk_cviceni_urceni_prizvucne_bile.gif"
        obrazek.alt = info_zobrazit_zvuk
        obrazek.title = info_zobrazit_zvuk
      } else {
        obrazek.src = "obrazky/zvuk_cviceni_urceni_prizvucne_mute.gif"
        obrazek.alt = info_zvuk_neni
        obrazek.title = info_zvuk_neni
      }
    }
  }
}

/* funkce, která přehraje slovo poté, co bylo vyhodnoceno cvičení
*/
function prehraj_kontrola(id_obrazku,zvuk_na_prehrani){
  if (id_obrazku.src.indexOf("bile.gif") > -1){
    top.frames[1].location.href = zvuk_na_prehrani
  }
}

/* funkce, která zajistí zobrazení správného kurzoru - imitace odkazu
*/

