var actualSection = 0; //cislo akttualni sekce
var actualPrep = 0; // index aktualne zobrazeneho preparatu
var sections = ["toc", "subtoc"] // vycet sekci v dokumentu
var subsections = ["thumbs", "single"] // vycet poodsekci
var tabs = ["search", "glossary"] // vycet zalozek v obcnim panelu
var mainToc = new Array() // senzam kategorii nejvyssi urovne
function initApplication() { //inicializace aplikace
showTab("search")
generateOutline()
}
function showSection(sid) { //zobrazeni vybrane sekce
for (var i = 0; i < sections.length; i++) {
document.getElementById(sections[i]).style.display = (sid == sections[i] ) ? "block" : "none";
}
document.getElementById("navigline").style.display = (sid == "toc") ? "none" : "block"
}
function showTab(tid) { // zborazeni vybrane zalozky v bocnim panelu
for (var i = 0; i < tabs.length; i++) {
if (tid == tabs[i]) {
document.getElementById("tab_" + tabs[i]).style.display = "block";
document.getElementById("tab_" + tabs[i] + "_label").className = "block";
}
else {
document.getElementById("tab_" + tabs[i]).style.display = "none";
document.getElementById("tab_" + tabs[i] + "_label").className = "nonactive";
}
}
}
function showSubsection(sid) { // zobrazeni dane podsekce
for (var i = 0; i < subsections.length; i++) {
document.getElementById(subsections[i]).style.display = (sid == subsections[i] ) ? "block" : "none";
}
}
// var cats = new Array(); //kategorie
//objekt kategorie
function Cathegory() {
this.title = "";
this.label = "";
this.level = 0;
this.parent = null;
this.subcats = new Array();
this.pics = new Array();
this.ref = null; // odkaz na referencni shodnou kategorii
this.getPicsTotal = function() {
var count = this.pics.length;
for (var i = 0; i < this.subcats.length; i++) {
count+= this.subcats[i].getPicsTotal()
}
return count
}
}
function getCathegory(cid) { //vyhledani dane kategorie
var vystup = null;
for (var i =0; i < cats.length; i++) {
if (cid == cats[i].label ) return cats[i];
}
return vystup;
}
function generateOutline() { // generovani osnovy, nacteni kategorii
var vystup = ""
var level = 0;
for (var i = 0; i < cats.length; i++) {
var cat = cats[i];
cat.getPicsTotal = function() {
var count = this.pics.length;
for (var i = 0; i < this.subcats.length; i++) { count+= this.subcats[i].getPicsTotal() }
return count
}
if (!cat.ref) cat.ref = null;
if (cat.title.indexOf("$") > -1) {
var ref = cat.title.substring(cat.title.indexOf("$")+1);// alert(ref)
var catref = getCathegory(ref);
cat.pics = catref.pics;
cat.title = cat.title.substring(0, cat.title.indexOf("$"))
}
var level2 = cats[i].label.split(".").length;
if (level2 > level) vystup += "
"
if (level2 < level) {
for (var j = 0; j < level - level2; j++) vystup += "\n \n"
}
if (level2 == level) vystup += "\n"
vystup += "" + cat.label + " " + cat.title + "
"
level = level2;
cat.level = level2;
cat.subcats = new Array();
if (cat.label.lastIndexOf(".") > 0) { //alert(cat.label)
var parentLabel = cat.label.substring(0, cat.label.lastIndexOf("."))
var parent = getCathegory(parentLabel);
parent.subcats.push(cat);
cat.parent = parent
}
if (cat.level == 1) mainToc.push(cat)
}
for (var k = 0; k < level ; k++) vystup += " \n\n"
document.getElementById("vystupni").value = vystup;
generateMainToc()
}
// ziskani popisku obrazku
function getPicsLabel(retez) {
var chunks = retez.split(".")
for (var ii = 0; ii < chunks.length; ii++) {
if (chunks[ii].length == 1) chunks[ii] = "0" + chunks[ii]
}
return chunks.join("_")
}
// vytvoreni osnovy nejvyssi urovne
function generateMainToc() {
showSection("toc")
document.getElementById("navigline").innerHTML = "";
document.getElementById("navigline").style.display = "none"
var vystup = ""
for (var i = 0; i < mainToc.length; i++) {
var onclick = "onclick='selectCat(" + mainToc[i].label + ")'";
var trida = "";
if (mainToc[i].subcats.length==0 && mainToc[i].pics.length==0 ) {
onclick = ""; trida = "class='leaf' "
}
vystup += "" + mainToc[i].label + " " + mainToc[i].title + " "
}
vystup += " ";
document.getElementById("toc").innerHTML += vystup;
}
// generovani osnovy vybrane podkapitoly
function generateSubtoc(cat) {
showSection("subtoc")
var vystup = "";
var subcount = 0;
if (cat.subcats.length > 0) {
vystup += ""
for (var i = 0; i < cat.subcats.length; i++) {
var subcat = cat.subcats[i]
subcount += subcat.subcats.length;
if (subcount > 20 && i < cat.subcats.length - 1 && cat.level == 1) {
vystup += " ";
subcount = 0;
}
var tCount = (subcat.pics.length == 0) ? "" : " (" + subcat.pics.length + ")"
if (subcat.pics.length > 0) {
vystup += "" + subcat.label + " " + subcat.title + tCount +"
"
}
if (subcat.pics.length == 0 && subcat.getPicsTotal() > 0) {
vystup += "" + subcat.label + " " + subcat.title + tCount +"
"
}
if (subcat.getPicsTotal() == 0) {
vystup += "" + subcat.label + " " + subcat.title + tCount +"
"
}
vystup += generateSubtoc(subcat) + " ";
}
vystup += " "
}
return vystup;
}
// vyber a zobrazeni kapitoly
function selectCat(cid) {
var main = getCathegory(cid);
var navig = "";
var cat2 = main;
var ccount = 0;
while (cat2.parent) {
cat2 = cat2.parent;
ccount++;
navig = " " + cat2.label + " " + cat2.title + " " +((ccount > 1) ? " > ": "" ) + navig;
}
navig = "TOC " + ((navig.length > 0) ? "> " + navig : "")
document.getElementById("navigline").style.display = "block"
document.getElementById("navigline").innerHTML = navig;
actualSection = main;
var parent = ""
if (main.label.lastIndexOf(".") > -1) parent = main.label.substring(0, main.label.lastIndexOf("."))
var move_up = ""
if (parent != "") {
move_up = " " //
}
else move_up = " " //
document.getElementById("maincat").innerHTML = move_up + " " + main.label + " " + main.title;
document.getElementById("subcats").innerHTML = generateSubtoc(main)
generateThumbs(main.label)
}
// vytbvoreni senzamu nahledu obrzku v dane kaiptole
function generateThumbs(cid) {
showSubsection("thumbs")
var pid = getPicsLabel(cid);
var thumbs = document.getElementById("thumbs")
var vystup = ""
actualSection = getCathegory(cid);
var preparaty = actualSection.pics
for (var i =0; i < preparaty.length; i++) {
var typ = (preparaty[i].type == undefined) ? "jpg" : preparaty[i].type
vystup += ""
vystup += " "
vystup += "" + preparaty[i].desc.replace(/(\s)([ksvziouKSVZAIOU])(\s)+/g,"$1$2 ") + " ";
vystup += " "
}
vystup += " ";
thumbs.innerHTML = vystup;
}
// prechod na nasledujici obrazek v sekci
function nextPreparate() {
if (actualPrep < actualSection.pics.length-1) {
actualPrep++;
showPreparate(actualPrep)
}
}
// prechod na predchozi obrazek v sekci
function prevPreparate() {
if (actualPrep > 0) {
actualPrep--;
showPreparate(actualPrep)
}
}
// ozbrazeni obrazku daneho indexu
function showPreparate(index) {
index = parseInt(index)
actualPrep = index
showSubsection("single")
var first = (index == 0) ? "firstOn" : "firstOff";
var last = (index == actualSection.pics.length -1) ? "lastOn" : "lastOff";
document.getElementById("mainFigure").className = "figure popiskyOff legendaOff" + " " + first + " " + last;
var vystup = ""
var prep = actualSection.pics[index];
//popis obrazku
var popis = prep.desc;
popis = popis.replace(/(\s)([ksvziouKSVZAIOU])\s/g,"$1$2 ")
popis = popis.charAt(0).toUpperCase() + popis.substring(1)
//document.getElementById("popis").innerHTML = popis ;
vystup += " "
vystup += "" + (index+ 1) + "\/" + actualSection.pics.length + " " + popis + " "//actualSection.title
document.getElementById("figtitle").innerHTML = vystup
//generovani popisku
var fig1 = document.getElementById("preparat");
var p_width = 640
/* width=\""+ p_width + "\"*/
var pic = " ";
if (prep.type != undefined && prep.type == "flv") {
pic = ""
pic+= " "
pic+= " "
pic += " "
pic += " "
pic += " "
}
fig1.innerHTML = pic
}
/************* Vyhledavani ***************/
function searchPhrase() {
var phrase = document.getElementById("search_phrase").value;
var count = 0;
if (phrase == "") return;
var vystup = ""
for (var i = 0; i < mainToc.length; i++) {
//alert("Kategorie: " + mainToc[i].title )
vystup += searchCat(mainToc[i], phrase);
}
vystup += " ";
if (vystup == " ") { vystup = "Hledaná fráze nebyla nalezena.
"}
document.getElementById("search_results").innerHTML = vystup;
}
function searchCat(cat, fraze) {
var vystup = ""
if (cat.title.toLowerCase().indexOf(fraze.toLowerCase()) > -1) {
vystup += "" + cat.label +" ";
//document.getElementById("displej").innerHTML +="" + cat.label +" "
// counter++;
}
for (var i =0; i < cat.pics.length; i++ ) {
if (cat.pics[i].desc.toLowerCase().indexOf(fraze.toLowerCase()) > -1) {
var title = cat.pics[i].id;
var index = title.charCodeAt(title.length-1) - 97
vystup += "" + cat.label + ", " + "obr. " + (index +1 ) + " ";
// counter++;
}
}
for (var j =0; j < cat.subcats.length; j++ ) {
vystup += searchCat(cat.subcats[j], fraze)
}
return vystup
}