var historie = new Array() // pole s spoupností procházených pojmů - historie var max_historie = 10; // limit historie var historie_actual = -1; // ukazatel aktuální pojmu při procházení hstorie var terminy = new Array(); // pole s pojmy var lineDelimiter = "$" // oddělovač řádků var initialized = false; // promenna urcujici, zda jiz byl seznam pojmu nacten // konstruktor objektu pojmu function Pojem() { this.title = ""; // název this.subtitle = "" // podtitul } // nacteni seznamu pojmu do iframu function loadTermsList() { document.getElementById("termsListLoader").src = "terms/terms.txt"; } // odstraneni tagu
ze vstupniho textu vcetne styloveho parametru v Google Chrome function removeTagPre(text) { text=text.substr(5); if (text.toLowerCase().substr(0,17)=='style="word-wrap:') { text=text.substr(54); } if (text.toLowerCase().substr(text.length-6)=="") { text=text.substring(0,text.length-6); } return text; } //inicializace aplikace function init() { var termsList = document.getElementById("termsListLoader").contentWindow.document.body.innerHTML; var operaMajorVersion = navigator.userAgent.substr(-5,2); var operaMinorVersion = navigator.userAgent.substr(-2); var k = navigator.userAgent.indexOf("MSIE"); var l = navigator.userAgent.substr(k+5); var m = l.indexOf("."); var ieMajorVersion = l.substr(0,m); if (termsList!="" && !initialized) { if (navigator.appName != "Opera" || operaMajorVersion != "10" && operaMajorVersion != "11" || operaMajorVersion == "10" && operaMinorVersion < 52 || confirm("Používáte slovníkem nepodporovanou verzi prohlížeče Opera " + operaMajorVersion + "." + operaMinorVersion + ". Načítání slovníku může zabrat i několik minut, během kterých nemusí prohlížeč reagovat. Doporučujeme použít jiný prohlížeč. Za způsobené problémy se omlouváme.\n\nChcete i přesto pokračovat?")) { actualTerm = -1; termsList = removeTagPre(termsList); if (navigator.appName=="Netscape" || (navigator.appName=="Microsoft Internet Explorer" && ieMajorVersion >= 9)) { var termsArray = termsList.split(String.fromCharCode(10)); } else { var termsArray = termsList.split(String.fromCharCode(13,10)); } for (var i = 0; i < termsArray.length; i++) {// načtení pojmů if (termsArray[i]!="") { var termin = new Pojem() termin.title = termsArray[i].split("#")[0]; termin.subtitle = termsArray[i].split("#")[1]; terminy.push(termin); } } // terminy.sort(sortByTitle); var variables = location.search; if (variables.indexOf('?pojem=') == 0) { var trm = variables.substr(7); trm = decodeURIComponent(trm); trm = trm.split('+').join(' '); showTermNamed(trm); } else { showTerm(0, true); } showList(""); initialized = true; } } } // uložení pojmu do hisorie function putToHistory(index) { if (historie.length == max_historie) { historie.shift() } historie.push(index); setActualHistory(historie.length-1) } // nastavení aktuálního pojmu v historii function setActualHistory(index) { historie_actual = index; var history_prev = document.getElementById("history_prev"); var history_next = document.getElementById("history_next"); if (index == 0) { // zablokovani predchoziho talcitka history_prev.src = "design/l_inactive.png" } if (index > 0) { history_prev.src = "design/l_active.png" } if (index == historie.length-1) { //zabokovani dalsiho tlacitka history_next.src = "design/r_inactive.png"; } if (index < historie.length-1 && historie.length > 1) { //odblokovani dalsiho tlacitka history_next.src = "design/r_active.png"; } } // přechod na předcházející pojem v historii function goPrev() { if (historie_actual > 0) { showTerm(historie[--historie_actual],false) setActualHistory(historie_actual) } } // přechod na následující pojem v historii function goNext() { if (historie_actual < historie.length-1 ) { showTerm(historie[++historie_actual], false) setActualHistory(historie_actual) } } // funkce vraci nazev souboru obsahujici dany pojem function getFileNameFromTitle(title) { var diacritics = ['á' ,'à' ,'ă' ,'ä' ,'â' ,'ą' ,'å' ,'ā' ,'æ' ,'ã' ,'č' ,'ć' ,'ç' ,'ď' ,'đ' ,'é' ,'ě' ,'è' ,'ë' ,'ę' ,'ê' ,'í' ,'ì' ,'ï' ,'î' ,'ī' ,'ľ' ,'ł' ,'ň' ,'ń' ,'ñ' ,'ó' ,'ò' ,'ŏ' ,'ö' ,'ő' ,'ô' ,'ō' ,'õ' ,'ø' ,'ř' ,'ŕ' ,'š' ,'ś' ,'ş' ,'ť' ,'ţ' ,'ú' ,'ů' ,'ù' ,'ü' ,'ű' ,'ŭ' ,'ǔ' ,'ū' ,'ý' ,'ŷ' ,'ž' ,' ',' ','–' ,'.' ,':' ,',' ,'/' ,'&' ,'*' ,'…' ,'(' ,')' ,'[' ,']' ,'„' ,'“' ,'”' ,'’' ,'‘' ,'‚' ]; var chars = ['a225','a224','a259','a228','a226','a261','a229','a257','a230','a227','c269','c263','c231','d271','d273','e233','e283','e232','e235','e281','e234','i237','i236','i239','i238','i299','l318','l322','n328','n324','n241','o243','o242','o335','o246','o337','o244','o333','o245','o248','r345','r341','s353','s347','s351','t357','t355','u250','u367','u249','u252','u369','u365','u468','u363','y253','y375','z382','_','_','-8211','-046','-058','-044','-047','-038','-042','-8230','-040','-041','-091','-093','-8222','-8220','-8221','-8217','-8216','-8218']; title=title.toLowerCase(); for (var i=0; ipojem se načítá…
"); document.getElementById("termdescription").style.color = "gray"; var fileName = getFileNameFromTitle(pojem.title); if (pojem.title.charAt(0).toLowerCase() != pojem.title.charAt(0)) { capital= "_velke"; } document.getElementById("termLoader").src = "terms/" + fileName.charAt(0) + "/" + fileName + capital + ".txt"; setHTML("desc_title", pojem.title); setHTML("desc_subtitle", pojem.subtitle); actualTerm = index; } // rozsekání řetězce na jednotlivé řádky function delinearize(retez) { var radky = retez.split(lineDelimiter) return radky.join("\n"); } // vybere položku seznamu s daným názvem function selectListItem(jmeno) { var seznam = document.getElementById("seznam"); if (seznam != null) { var itemId = -1; for (var i = 0; i < seznam.length; i++) { if (seznam.options[i].text == jmeno) { itemId = i; break; } } seznam.selectedIndex = itemId; } } // zobrazení pojmu s daným názvem function showTermNamed(jmeno) { var termExists = false; for (var i = 0; i < terminy.length; i++) { if (terminy[i].title == jmeno) { showTerm(i, true); selectListItem(jmeno); termExists = true; actualTerm = i; break; } } if (!termExists) { alert("Termín není v databázi."); if (actualTerm == -1) { showTerm(0, true); } } } // JavaScript StringBuffer umožňující spojování řetězců mnohem rychleji než // operátor "+", znatelné především v IE function StringBuffer() { this.buffer = []; } StringBuffer.prototype.append = function append(string) { this.buffer.push(string); return this; }; StringBuffer.prototype.toString = function toString() { return this.buffer.join(""); }; // převedení pojmu z wiki-sekvence na HTML pro zobrazení pojmu function wikify(retez) { var pozice = 0; var buf = new StringBuffer(); var radky = retez.split(lineDelimiter) for (var i =0; i< radky.length; i++) { //alert("Radek " + i + ": " + radky[i]) if (radky[i] == "") continue; buf.append(""); var zasobnik = new Array() //var odkazovy = new Regexp for (var j = 0; j< radky[i].length; j++) { if (radky[i].charAt(j) == "{" && ("i<>".indexOf(radky[i].charAt(j+1)) > -1 ) ) { //pozor, obrazek var zbytek = radky[i].substring(j+1); var obrazek = zbytek.substring(0, zbytek.indexOf("}}")) var alignment = (obrazek.charAt(0) == "i") ? "" : obrazek.charAt(0); var casti = obrazek.split("{"); casti[1] = (casti[1].indexOf("}") > -1 ) ? casti[1].substring(0, casti[1].length-1) : casti[1] buf.append("") { buf.append(" class='imgRight'") } if (casti.length == 3) { buf.append(" class=" + casti[2]); } buf.append(" \/>"); j += obrazek.length +3; continue; } if (radky[i].charAt(j) == "{" && radky[i].charAt(j+1) == "{" ) { //alert("odkaz") var zbytek = radky[i].substring(j+2); var odkaz = zbytek.substring(0, zbytek.indexOf("}}")) var casti = odkaz.split("|"); if (casti.length == 2) { buf.append("" + casti[0] + ""); } if (casti.length == 1) { buf.append("" + casti[0] + ""); } j += odkaz.length +3; continue; } if (radky[i].charAt(j) == "/" && radky[i].charAt(j+1) == "/" ) { if (zasobnik.isLast("em")) { zasobnik.pop(); buf.append(""); } else { zasobnik.push("em"); buf.append(""); } j += 1; continue; } if (radky[i].charAt(j) == "*" && radky[i].charAt(j+1) == "*" ) { if (zasobnik.isLast("strong")) { zasobnik.pop(); buf.append(""); } else { zasobnik.push("strong"); buf.append(""); } j += 1; continue; } buf.append(radky[i].charAt(j)); } buf.append("
"); } return buf.toString(); } function getValue(nodeId) { return document.getElementById(nodeId).value } function setHTML(nodeId, retez) { document.getElementById(nodeId).innerHTML = retez; } pictures = new Array() actualPicture = 0 // zobrazení seznamu vyhledaných pojmů function showList(filter) { setHTML("list_content", createList(filter)); } // zobrazení seznamu všech pojmů function showAll() { document.getElementById("word_begin").value = ""; document.getElementById("searched_title").value = ""; showList(""); } // vytvoření seznamu pojmů, které začínají řetězcem filter a obsahují řetězec filter2 function createList(filter) { var filter2 = getValue("searched_title"); filter = filter.toLowerCase(); filter2 = filter2.toLowerCase(); var buf = new StringBuffer(); buf.append(""); return buf.toString(); } // hledání v názvech pojmů function searchTitles() { setHTML("list_content", createList(getValue("word_begin"))); } // uzávorkování řetězce function quote(retez) { return "\"" + retez + "\""; } // zobrazení uzlu s id="nodeId" function showNode(nodeId) { document.getElementById(nodeId).style.visibility = "visible" } // zjištění, zda retez je poslední prvek pole Array.prototype.isLast = function(retez) { if (this.length == 0) return false; else { if (this[this.length-1] == retez) return true; else return false; } } // nahrazenmí všech výskytů podřetězce stare řetězcem nove String.prototype.replaceAll = function(stare, nove) { var nahrada = new RegExp(stare,"g") return this.replace(nahrada, nove) }