Francuski U 100 Lekcija Pdf -

function selectLesson(idx)

function saveProgress() localStorage.setItem("francuski100_completed", JSON.stringify(completed)); localStorage.setItem("francuski100_phrases", JSON.stringify(lessonPhrases)); updateStats(); renderLessonsList(currentSearchTerm); francuski u 100 lekcija pdf

// ------------------------------------------------------------ // 5. INICIJALIZACIJA // ------------------------------------------------------------ function init() loadProgress(); renderLessonsList(""); updateStats(); // Event listeners document.getElementById("searchInput").addEventListener("input", (e) => currentSearchTerm = e.target.value; renderLessonsList(currentSearchTerm); ); document.getElementById("resetProgressBtn").addEventListener("click", resetProgress); document.getElementById("savePhraseBtn").addEventListener("click", saveCurrentPhrase); document.getElementById("speakPhraseBtn").addEventListener("click", speakSavedPhrase); document.getElementById("fakePdfHint").addEventListener("click", (e) => e.preventDefault(); alert("Ovaj alat je dodatak za PDF 'Francuski u 100 lekcija'. Preporučujemo da otvorite PDF u drugom tabu ili prozoru pored ovog panela."); ); // default select first lesson optionally if(lessonTitles.length > 0) selectLesson(0); selectedLessonIndex = null

function resetProgress() if(confirm("Da li ste sigurni? Resetovaćete sav napredak (završene lekcije i sve sačuvane fraze).")) completed.fill(false); lessonPhrases.fill(""); localStorage.setItem("francuski100_completed", JSON.stringify(completed)); localStorage.setItem("francuski100_phrases", JSON.stringify(lessonPhrases)); selectedLessonIndex = null; document.getElementById("currentLessonLabel").innerHTML = "nijedna"; document.getElementById("existingPhraseSpan").innerHTML = "(nema)"; document.getElementById("phraseText").value = ""; updateStats(); renderLessonsList(currentSearchTerm); document.getElementById("phraseText").value = ""

function speakSavedPhrase() phrase.trim() === "") alert("Nema sačuvane fraze za ovu lekciju. Prvo unesite frazu."); return; speakFrench(phrase);

// ------------------------------------------------------------ // 3. SPEECH SYNTHESIS (francuski izgovor) // ------------------------------------------------------------ function speakFrench(text) if (!window.speechSynthesis) alert("Vaš browser ne podržava govor."); return; const utterance = new SpeechSynthesisUtterance(text); utterance.lang = "fr-FR"; utterance.rate = 0.9; window.speechSynthesis.cancel(); // izbjegni preklapanje window.speechSynthesis.speak(utterance);