MediaWiki:Common.js
Z MediaWiki SPŠ a VOŠ Písek
Poznámka: Po uložení musíte smazat cache vašeho prohlížeče, jinak změny neuvidíte.
- Firefox / Safari: Při kliknutí na Aktualizovat držte Shift nebo stiskněte Ctrl-F5 nebo Ctrl-R (na Macu ⌘-R).
- Google Chrome: Stiskněte Ctrl-Shift-R (na Macu ⌘-Shift-R).
- Internet Explorer: Při kliknutí na Aktualizovat držte Ctrl nebo stiskněte Ctrl-F5.
- Konqueror: Klikněte na Aktualizovat nebo stiskněte F5.
- Opera: Smažte obsah cache v menu Nástroje → Nastavení.
é/* Zde uvedený JavaScript bude použit pro všechny uživatele při načtení každé stránky. */ importScriptURI('http://en.wikipedia.org/w/index.php?title=User:ProveIt_GT/ProveIt.js&action=raw&ctype=text/javascript'); // [[User:ProveIt GT/ProveIt.js]] /* <pre> */ /* ============== Citace ===================================== autor: Petr Kajzar [[Uživatel:Slepi]], spoluautor Pavel Dušek [[Uživatel:Pavel Dusek]] datum: 05/2010, poslední úprava 04/2011 dokumentace: [[MediaWiki:Gadget-citace.js/dokumentace]] popis: skript pomáhá generovat bibliografické záznamy a citace – tlačítko je v horní editační liště ========================================================== */ /* ======================== Texty =========================================== */ baseTextCitace = '<p><span style="float: right;"><a href="#" onclick="return createCitationForm();">Obnovit</a> • <a href="#" onclick="return closeCitationBox()">Zavřít</a></span></p><h2>Citace</h2>'; /* ======================== Pomocné funkce ================================== */ // FUNKCE ZÍSKÁVAJÍCÍ SOUŘADNICE ROLOVANÉHO OKNA // http://www.howtocreate.co.uk/tutorials/javascript/browserwindow function getScrollXY() { // souřadnice var scrOfX = 0, scrOfY = 0; // Netscape if( typeof( window.pageYOffset ) == 'number' ) { scrOfY = window.pageYOffset; scrOfX = window.pageXOffset; // DOM } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) { scrOfY = document.body.scrollTop; scrOfX = document.body.scrollLeft; // IE6 } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) { scrOfY = document.documentElement.scrollTop; scrOfX = document.documentElement.scrollLeft; } // výstup return [ scrOfX, scrOfY ]; } // FUNKCE ZPRACOVÁVAJÍCÍ CITACE A VKLÁDAJÍCÍ JE DO TEXTU // parametr "formular": odkaz na formulář // paramer "typ": typ citovaného zdroje function zpracovatCitace(formular, typ) { // zpracování ISSN (nemusí být vždy uvedeno) if(formular.elements["issn"]) { if(formular.elements["issn"].value == "") formular.elements["issn"].value = "-"; } // zpracování ISBN (nemusí být vždy ucedeno) if(formular.elements["isbn"]) { if(formular.elements["isbn"].value == "") formular.elements["isbn"].value = "-"; } // úvod výstupu: začátek šablony Citace var output = "{{Citace\n| typ = " + typ + "\n"; // procházení polí formuláře a vkládání do šablony var i = 0; for(i=0; i<formular.elements.length; i++) { // textová pole if(formular.elements[i] && formular.elements[i].type == "text" && formular.elements[i].value != "") { // informace od uživatele vlozenaInfo = trim(formular.elements[i].value); // zabezpečení posledního znaku viPosledniZnak = vlozenaInfo.charAt(vlozenaInfo.length - 1); if(viPosledniZnak == "." || viPosledniZnak == ",") vlozenaInfo = vlozenaInfo.substring(0, vlozenaInfo.length-1); // výstup output += "| " + formular.elements[i].id + " = " + vlozenaInfo + "\n"; // checkboxy (např. "kolektiv") } else if (formular.elements[i] && formular.elements[i].type == "checkbox") { if(formular.elements[i].checked == true) output += "| " + formular.elements[i].id + " = ano\n"; } } // závěr citační šablony output += "}}\n"; //pokud byla načítána citace z databáze je třeba záznam v databázi upravit, požádá server o úpravu: if (typ == 'kniha') { if ((vyplnenoDleISBN && !zDatabaze) || (vyplnenoDleISBN && zmenaPredvyplneneCitace)) { opravZaznamVDatabazi(); } } // vložení do textu na místo pomocné spleti znaků novyOutput = document.getElementById("wpTextbox1").value; novyOutput = novyOutput.replace("--//--//--", output); document.getElementById("wpTextbox1").value = novyOutput; // zavřít udělátko closeCitationBox(); return false; } // FUNKCE VKLÁDAJÍCÍ POMOCNOU SPLEŤ ZNAKŮ NA POZICI KURZORU V TEXTOVÉM POLI // parametr "textovePole": ID textového pole, které měníme function vlozitTextAreaSpletZnaku(textovePole) { pridanyText = "--//--//--"; // vyhledání zadaného ID if(!document.getElementById(textovePole)) return; textovePole = document.getElementById(textovePole); // Microsoft Internet Explorer if (document.selection) { textovePole.focus(); // vložení do výběru oblastVlozeni = document.selection.createRange(); oblastVlozeni.text = pridanyText; } // ostatní prohlížeče else if (textovePole.selectionStart || textovePole.selectionStart == 0) { // vložení do pole a aktualizace celého textu startText = textovePole.selectionStart; endText = textovePole.selectionEnd; aktualniText = textovePole.value; textovePole.value = aktualniText.substring(0, startText); textovePole.value += pridanyText; textovePole.value += aktualniText.substring(endText, aktualniText.length); } // nepodporující prohlížeče: vložení textu na konec pole else { textovePole.value += pridanyText; } } // FUNKCE VKLÁDAJÍCÍ TLAČÍTKO CITACE NA PŘESNÉ MÍSTO EDITAČNÍ LIŠTY function vlozitTlacitkoCitace() { if(document.getElementById("mw-editbutton-OL") && document.getElementById("mw-editbutton-citation")) { document.getElementById("mw-editbutton-OL").parentNode.insertBefore(document.getElementById("mw-editbutton-citation"), document.getElementById("mw-editbutton-OL").nextSibling); } else { setTimeout("vlozitTlacitkoCitace()", 1000); } } // FUNKCE VYTVÁŘEJÍCÍ POVINNÉ PARAMETRY // parametr "poleParametru": pole se všemi povinnými parametry daného zdroje function classPovinneCitace(poleParametru) { for (i in poleParametru) { document.getElementById(poleParametru[i]).className += " povinnyParCitace"; } } /* =================== Hlavní funkce pro zobrazení formulářů ================ */ // FUNKCE TVOŘÍCÍ TLAČÍTKO CITACE DO EDITAČNÍ LIŠTY function createCitationButton() { // bez editace skončit if(wgAction == "view" || !document.getElementById("toolbar")) return; // staré prohlížeče ukončit // časem zde bude náhradní kód pro staré prohlížeče (nové okno) if (!window.XMLHttpRequest) return; // přidání CSS stylu importStylesheet("MediaWiki:Gadget-citace.css"); // vytvoření tlačítka tlacitkoCitace = document.createElement("img"); tlacitkoCitace.name = "Citace"; tlacitkoCitace.src = "http://upload.wikimedia.org/wikipedia/commons/e/ea/Button_easy_cite.png"; tlacitkoCitace.id = "mw-editbutton-citation"; tlacitkoCitace.setAttribute("alt", "Přidat citaci"); tlacitkoCitace.style.cursor = "pointer"; tlacitkoCitace.onclick = function(){createCitationForm();}; // vložení tlačítka na správné místo if(document.getElementById("mw-editbutton-OL")) { document.getElementById("mw-editbutton-OL").parentNode.insertBefore(tlacitkoCitace, document.getElementById("mw-editbutton-OL").nextSibling); } else { // vložení tlačítka na správné místo (každou 1 s se zkontroluje pozice až do správného načtení) document.getElementById("toolbar").appendChild(tlacitkoCitace); vlozitTlacitkoCitace(); } // vytvoření divu pro overlay overlayDiv = document.createElement("div"); overlayDiv.className = "overlay_div_cit"; overlayDiv.id = "overlay_div_cit"; // zapozicování na stránku a zafixování při rolování kam = getScrollXY(); overlayDiv.style.top = kam[0]; overlayDiv.style.position = "fixed"; // přidání divu na stránku document.body.appendChild(overlayDiv); // blok s textem contentDiv = document.createElement("div"); contentDiv.className = "content_div_cit"; contentDiv.id = "content_div_cit"; // zapozicování bloku contentDiv.style.top = 20 + kam[0]; contentDiv.style.position = "fixed"; // přidání bloku na stránku document.body.appendChild(contentDiv); } // FUNKCE ZAVÍRAJÍCÍ BOX S CITACEMI PO KLIKNUTÍ NA "ZAVŘÍT" function closeCitationBox() { document.getElementById('overlay_div_cit').style.display = 'none'; document.getElementById('content_div_cit').style.display = 'none'; document.getElementById('wpTextbox1').value = document.getElementById('wpTextbox1').value.replace('--//--//--', ''); document.forms['editform'].elements['wpTextbox1'].focus(); return false; } // FUNKCE VRACEJÍCÍ ŘÁDEK FORMULÁŘE S POŽADOVANÝM ÚDAJEM // parametr "popis": udává popis políčka // parametr "parametr": udává parametr šablony Citace // parametr "typ": udává typ vstupu (text, checkbox, aj.) function createCitationFormRow(popis, parametr, typ) { // defaultní typ vstupu: text if(!typ) typ = "text"; // výroba řádku output = '<div><p><label for="' + parametr + '">' + popis + ': </label><input type="' + typ + '" name="' + parametr + '" id="' + parametr +'" onChange="fieldChanged(\'' + parametr + '\');" /></p></div>'; // výstup return output; } // FUNKCE VRACEJÍCÍ ŘÁDEK PRO KONKRÉTNÍ PARAMETR ŠABLONY CITACE // parametr "parametr": parametr šablony function createCitationInput(parametr){ // pole řádků output = { // autoři "korporace" : createCitationFormRow("Název korporace", "korporace"), "příjmení1" : createCitationFormRow("Příjmení prvního autora", "příjmení1"), "jméno1" : createCitationFormRow("Jméno prvního autora", "jméno1"), "příjmení2" : createCitationFormRow("Příjmení druhého autora", "příjmení2"), "jméno2" : createCitationFormRow("Jméno druhého autora", "jméno2"), "příjmení3" : createCitationFormRow("Příjmení třetího autora", "příjmení3"), "jméno3" : createCitationFormRow("Jméno třetího autora", "jméno3"), "kolektiv" : createCitationFormRow("Kolektiv", "kolektiv", "checkbox"), "autor_sborníku" : createCitationFormRow("Pořadatel sborníku", "autor_sborníku"), "odpovědnost" : createCitationFormRow("Autor/autoři", "odpovědnost"), "instituce" : createCitationFormRow("Instituce", "instituce"), "ústav" : createCitationFormRow("Ústav", "ústav"), "příjmení" : createCitationFormRow("Příjmení přednášejícího", "příjmení"),//parametr příjmení u přednášky "jméno" : createCitationFormRow("Jméno přednášejícího", "jméno"),//parametr jméno u přednášky // názvy "titul" : createCitationFormRow("Název", "titul"), "článek" : createCitationFormRow("Název článku", "článek"), "název" : createCitationFormRow("Název", "název"), "podnázev" : createCitationFormRow("Podnázev", "podnázev"), "časopis" : createCitationFormRow("Časopis", "časopis"), "sbírka" : createCitationFormRow("Sbírka", "sbírka"), "seriálová_publikace" : createCitationFormRow("Název seriálové publikace", "seriálová_publikace"), "označení" : createCitationFormRow("Označení dokumentu", "označení"), "sborník" : createCitationFormRow("Název sborníku", "sborník"), "dokument" : createCitationFormRow("Název dokumentu", "dokument"), "téma" : createCitationFormRow("Název přednášky", "téma"), // popisy a vydavatelé "url" : createCitationFormRow("Dostupné z WWW", "url"), "vydání" : createCitationFormRow("Vydání", "vydání"), "místo" : createCitationFormRow("Místo (město)", "místo"), "země" : createCitationFormRow("Země", "země"), "vydavatel" : createCitationFormRow("Vydavatel", "vydavatel"), "rok" : createCitationFormRow("Rok", "rok"), "datum_revize" : createCitationFormRow("Datum poslední revize", "datum_revize"), "citováno" : createCitationFormRow("Datum citování", "citováno"), "ročník" : createCitationFormRow("Ročník", "ročník"), "číslo" : createCitationFormRow("Číslo", "číslo"), "rozsah" : createCitationFormRow("Počet stran", "rozsah"), "edice" : createCitationFormRow("Edice", "edice"), "svazek" : createCitationFormRow("Svazek", "svazek"), "volume" : createCitationFormRow("Volume", "svazek"), "kapitola" : createCitationFormRow("Číslo kapitoly", "kapitola"), "název_kapitoly" : createCitationFormRow("Název kapitoly", "název_kapitoly"), "strany" : createCitationFormRow("Citované strany", "strany"), "poznámky" : createCitationFormRow("Další údaje a poznámky", "poznámky"), "isbn" : createCitationFormRow("ISBN", "isbn"), "issn" : createCitationFormRow("ISSN", "issn"), "pmid" : createCitationFormRow("PMID", "pmid"), "doi" : createCitationFormRow("DOI", "doi"), "předmět" : createCitationFormRow("Předmět, jehož byla přednáška součástí", "předmět"), "obor": createCitationFormRow("Obor, pro nějž je předmět určen", "obor"), "fakulta" : createCitationFormRow("Fakulta", "fakulta"), "univerzita" : createCitationFormRow("Název vysoké školy", "univerzita"), "datum" : createCitationFormRow("Datum konání přednášky", "datum") //parametr datum u přednášky }; // výstup return output[parametr]; } // VYTVOŘENÍ FORMULÁŘE PRO CITACE function createCitationForm() { // přidání spleti znaků pro pozdější změnu if(document.getElementById('wpTextbox1').value.indexOf('--//--//--') == -1) vlozitTextAreaSpletZnaku("wpTextbox1"); document.getElementById('wpTextbox1').blur(); // zviditelnění divu overlay_div_cit overlayDiv.style.display = "block"; // zviditelnění divu overlay_div_cit contentDiv.style.display = "block"; contentDiv.style.fontSize = "small"; // text contentDiv.innerHTML = baseTextCitace; contentDiv.innerHTML += "<p>Tento nástroj vám umožní správně ocitovat použitou literaturu. Po vyplnění formuláře se vám automaticky vygeneruje šablona citací a bude vložena do článku. Nejprve prosím vyberte typ zdroje, ze kterého jste čerpali:</p>"; // základní nabídka contentDiv.innerHTML += "<h4>Knihy a sborníky</h4>" + "<ul>" + "<li>" + "<a href=\"#\" onclick=\"return createCitationTypeForm('kniha');\">" + "kniha</a></li>" + "<li>" + "<a href=\"#\" onclick=\"return createCitationTypeForm('kapitola');\">" + "kapitola z knihy (shodný autor)</a></li>" + "<li>" + "<a href=\"#\" onclick=\"return createCitationTypeForm('sborník');\">" + "kapitola z knihy (jiný autor), sborník</a></li>" + "</ul>" + "<h4>Články, práce a periodické materiály</h4>" + "<ul>" + "<li>" + "<a href=\"#\" onclick=\"return createCitationTypeForm('článek');\">" + "článek</a></li>" + "<li>" + "<a href=\"#\" onclick=\"return createCitationTypeForm('akademická_práce');\">" + "akademická práce (bakalářská, diplomová, habilitační,...)</a></li>" + "<li>" + "<a href=\"#\" onclick=\"return createCitationTypeForm('seriálová_publikace');\">" + "seriálová publikace</a></li>" + "</ul>" + "<h4>Elektronické zdroje</h4>" + "<ul>" + "<li>" + "<a href=\"#\" onclick=\"return createCitationTypeForm('web');\">" + "internetová stránka</a></li>" + "<li>" + "<a href=\"#\" onclick=\"return createCitationTypeForm('cd');\">" + "nosič CD, DVD a další</a></li>" + "<li>" + "<a href=\"#\" onclick=\"return createCitationTypeForm('db');\">" + "databáze</a></li>" + "</ul>" + "<h4>Oficiální materiály</h4>" + "<ul>" + "<li>" + "<a href=\"#\" onclick=\"return createCitationTypeForm('firemní_literatura');\">" + "firemní literatura</a></li>" + "<li>" + "<a href=\"#\" onclick=\"return createCitationTypeForm('legislativní_dokument');\">" + "legislativní dokument, zákon, předpis</a></li>" + "<li>" + "<a href=\"#\" onclick=\"return createCitationTypeForm('standard');\">" + "standard, norma, patent</a></li>" + "</ul>" + "<h4>Jiné</h4>" + "<ul>" + "<li>" + "<a href=\"#\"# onclick=\"return createCitationTypeForm('přednáška');\">" + "přednáška na vysoké škole</a></li>" + "</ul>"; //pole pro automatické vyplnění pomocí přímého vložení PMID contentDiv.innerHTML += "<h4>Rychlé citace pomocí specifických čísel</h4>" + "<h5>PMID</h5>" + '<form onsubmit="return false;" id="formPMID">' + '<p>Zde můžete zadat číslo PMID článku v databázi PubMed a vygeneruje se Vám zcela automaticky kompletní citace – a to bez nutnosti zadávat všechny údaje!</p>' + '<label for="pmid">PMID:</label> <input type="text" id="pmid" name="pmid" /> ' + '<input type="button" onclick="zpracovatPMID(document.forms[\'formPMID\'].elements[\'pmid\'].value)" value="Získat citaci pomocí PMID" /> <span id="pmid_wait"><img src="' + wgServer + '/skins/common/images/ajax-loader.gif" width="20" height="20" /> Prosím čekejte…</span>' + '</form><br />'; document.getElementById("pmid_wait").style.visibility= "hidden"; return false; } // FUNKCE PRO ZPRACOVÁNÍ PMID var xmlPMID; function zpracovatPMID(formularX) { document.getElementById("pmid_wait").style.visibility= "visible"; pmid = formularX; exptest = /^\d+$/; if (exptest.test(pmid) == true) { var urlPMID = "http://www.wikiskripta.eu/extensions/citace/pmid.php?pmid=" + pmid; getXMLHttpRequest("xmlPMID", urlPMID, "zpracovatPMIDRequest"); return false; } else { document.getElementById("pmid_wait").style.visibility= "hidden"; window.alert("Zadali jste neplatné číslo PMID. Prosím, zkuste jej zadat znovu."); document.forms["formPMID"].elements["pmid"].value = ""; return false; } } // FUNKCE ZÍSKÁVAJÍCÍ VYGENEROVANOU ŠABLONU POMOCÍ PMID function zpracovatPMIDRequest() { if (xmlPMID.readyState==4) {// 4 = "loaded" if (xmlPMID.status==200) {// 200 = OK var output = xmlPMID.responseText; // odpověď serveru if (output.indexOf("{{") == -1) { document.getElementById("pmid_wait").style.visibility= "hidden"; window.alert("Zadali jste neplatné číslo PMID. Prosím, zkuste jej zadat znovu."); document.forms["formPMID"].elements["pmid"].value = ""; return false; } // vložení do textu na místo pomocné spleti znaků novyOutput = document.getElementById("wpTextbox1").value; novyOutput = novyOutput.replace("--//--//--", output); document.getElementById("wpTextbox1").value = novyOutput; // zavřít udělátko document.getElementById("pmid_wait").style.visibility= "hidden"; closeCitationBox(); return false; } else { return false; } } } // FUNKCE ZPROSTŘEDKOVÁVAJÍCÍ VYPLŇOVÁNÍ ÚDAJŮ DLE ISBN //FUNKCE PRO ZPRACOVÁNÍ ISBN var xmlISBN; function vyplnitDleISBN() { var isbn = document.getElementById('isbn').value; var urlISBN = 'http://www.wikiskripta.eu/extensions/citace/isbn.php?isbn=' + isbn; getXMLHttpRequest("xmlISBN", urlISBN, "vyplnitDleISBNRequest"); return false; } // FUNKCE REGISTRUJÍCÍ ZMĚNU PARAMETRŮ CITACE var zmenaPredvyplneneCitace = false; function fieldChanged(parametr) { //pokud se změní jakýkoliv parametr uváděný u citace knihy, nastaví se zmenaPredvyplneneCitace na true switch(parametr) { case 'příjmení1': case 'příjmení2': case 'příjmení3': case 'jméno1': case 'jméno2': case 'jméno3': case 'korporace': case 'kolektiv': case 'titul': case 'podnázev': case 'místo': case 'vydání': case 'vydavatel': case 'rok': case 'url': case 'rozsah': case 'edice': case 'svazek': zmenaPredvyplneneCitace = true; break; } return false; } // FUNKCE VYPLŇUJÍCÍ ÚDAJE DLE ISBN var zDatabaze = true; //předpokládám načtení z databáze (u ostatních typů citace než kniha by to mělo být spíše užitečné) var vyplnenoDleISBN = false; function vyplnitDleISBNRequest() { if (xmlISBN.readyState == 4) { //4 = loaded if (xmlISBN.status == 200) { //200 = OK vyplnenoDleISBN = true; var output = xmlISBN.responseText; //odpověď serveru var jsonCitace = eval( '(' + output + ')' ); //parsování objektu JSON //vyplnění parametrů dle získaného objektu JSON if (jsonCitace.titul) { document.getElementById('titul').value = jsonCitace.titul; } else { window.alert("Nebyla nalezena žádná kniha s tímto ISBN"); //return false;// netřeba vracet false: ještě se mohou zkusit vyplnit ostatní parametry } if (jsonCitace.prijmeni1) document.getElementById('příjmení1').value = jsonCitace.prijmeni1; if (jsonCitace.jmeno1) document.getElementById('jméno1').value = jsonCitace.jmeno1; if (jsonCitace.prijmeni2) document.getElementById('příjmení2').value = jsonCitace.prijmeni2; if (jsonCitace.jmeno2) document.getElementById('jméno2').value = jsonCitace.jmeno2; if (jsonCitace.prijmeni3) document.getElementById('příjmení3').value = jsonCitace.prijmeni3; if (jsonCitace.jmeno3) document.getElementById('jméno3').value = jsonCitace.jmeno3; if (jsonCitace.kolektiv) document.getElementById('kolektiv').checked = true; if (jsonCitace.podtitul) document.getElementById('podnázev').value = jsonCitace.podtitul; if (jsonCitace.vydani) document.getElementById('vydání').value = jsonCitace.vydani; if (jsonCitace.misto) document.getElementById('místo').value = jsonCitace.misto; if (jsonCitace.vydavatel) document.getElementById('vydavatel').value = jsonCitace.vydavatel; if (jsonCitace.rok) document.getElementById('rok').value = jsonCitace.rok; if (jsonCitace.isbn) document.getElementById('isbn').value = jsonCitace.isbn; if (jsonCitace.korporace) document.getElementById('korporace').value = jsonCitace.korporace; if (jsonCitace.url) document.getElementById('url').value = jsonCitace.url; if (jsonCitace.rozsah) document.getElementById('rozsah').value = jsonCitace.rozsah; if (jsonCitace.edice) document.getElementById('edice').value = jsonCitace.edice; if (jsonCitace.svazek) document.getElementById('svazek').value = jsonCitace.svazek; if (jsonCitace.zDatabaze) { if (jsonCitace.zDatabaze == "false") zDatabaze = false; } } } return false; } var nejakaPromenna; // FUNKCE opravující záznam v databázi citací function opravZaznamVDatabazi() { var requesturl = "http://www.wikiskripta.eu/extensions/citace/isbn-uprav.php?"; requesturl += "isbn=" + encodeURIComponent(document.getElementById('isbn').value); requesturl += "&prijmeni1=" + encodeURIComponent(document.getElementById('příjmení1').value); requesturl += "&jmeno1=" + encodeURIComponent(document.getElementById('jméno1').value); requesturl += "&prijmeni2=" + encodeURIComponent(document.getElementById('příjmení2').value); requesturl += "&jmeno2=" + encodeURIComponent(document.getElementById('jméno2').value); requesturl += "&prijmeni3=" + encodeURIComponent(document.getElementById('příjmení3').value); requesturl += "&jmeno3=" + encodeURIComponent(document.getElementById('jméno3').value); if (document.getElementById('kolektiv').checked) requesturl += "&kolektiv=1"; else requesturl += "&kolektiv=0"; requesturl += "&titul=" + encodeURIComponent(document.getElementById('titul').value); requesturl += "&podnazev=" + encodeURIComponent(document.getElementById('podnázev').value); requesturl += "&vydani=" + encodeURIComponent(document.getElementById('vydání').value); requesturl += "&misto=" + encodeURIComponent(document.getElementById('místo').value); requesturl += "&vydavatel=" + encodeURIComponent(document.getElementById('vydavatel').value); requesturl += "&rok=" + encodeURIComponent(document.getElementById('rok').value); requesturl += "&korporace=" + encodeURIComponent(document.getElementById('korporace').value); requesturl += "&url=" + encodeURIComponent(document.getElementById('url').value); requesturl += "&rozsah=" + encodeURIComponent(document.getElementById('rozsah').value); requesturl += "&edice=" + encodeURIComponent(document.getElementById('edice').value); requesturl += "&svazek=" + encodeURIComponent(document.getElementById('svazek').value); //requesturl = requesturl.replace(" ", "%20"); getXMLHttpRequest(nejakaPromenna, requesturl, nedelejNic); return false; } // FUNKCE, KTERÁ NEDĚLÁ NIC function nedelejNic() { return false; } // FUNKCE PRO PŘEPIS CITAČNÍHO BOXU NA FORMULÁŘ K DANÉMU KONKRÉTNÍMU TYPU CITACE // parametr "typ": typ zdroje function createCitationTypeForm(typ) { // citační box contentDiv = document.getElementById("content_div_cit"); // začátek výstupu: info o citaci output = '<h3>Typ citace: ' + typ.replace("_", " ") + '</h3>'; // nápověda output += '<p>Vyplňte, prosím, políčka následujícího formuláře. Vždy uveďte autory, pokud je to možné. Další vyžadovaná políčka jsou zvýrazněna červeně. Po stisknutí tlačítka <b>Vygenerovat citaci</b> bude vytvořena šablona citace a vložena do článku na místo, kde jste zanechali kurzor.<br /><small>Pokud jste omylem vybrali špatný typ citovaného zdroje, můžete se vrátit na předchozí stránku stisknutím <b>Obnovit</b> nahoře vpravo. Odkaz <b>Zavřít</b> tamtéž úplně zavře toto okno a vrátí vás k editaci článku.</small></p>'; // začátek formuláře // kapitola se cituje jako kniha, seriálová publikace jako článek output += '<form onsubmit="return zpracovatCitace(this, \'' + (typ == "kapitola" ? "kniha" : (typ == "seriálová_publikace" ? "článek" : typ)) + '\');">'; // políčko pro automatické vyplnění parametrů pomocí isbn if (typ == "kniha") { output += "<div><p><small>Pokud chcete vygenerovat údaje automaticky a následně je v políčkách jen zkontrolovat, zadejte prosím číslo ISBN knihy do tohoto políčka:</small></p></div>"; output += "<label for='isbn'>ISBN: </label>"; output += "<input type='text' id='isbn' /><button type='button' onclick='vyplnitDleISBN()'>Vyplnit ostatní údaje automaticky</button>"; } // autoři switch(typ) { case "kniha" : case "kapitola" : case "sborník" : case "článek" : case "seriálová_publikace" : case "web" : case "cd" : case "firemní_literatura" : case "akademická_práce" : output += '<div><fieldset><legend>Autoři</legend>'; output += '<div id="citKorporaceForm">'; output += createCitationInput("korporace"); output += '</div>'; output += createCitationInput("příjmení1"); output += createCitationInput("jméno1"); output += '<div id="citDalsiAutoriForm">'; output += createCitationInput("příjmení2"); output += createCitationInput("jméno2"); output += createCitationInput("příjmení3"); output += createCitationInput("jméno3"); output += '</div>'; output += createCitationInput("kolektiv"); output += '<div id="citOdkaz1AutoriForm"><a href="#" onclick="return false;">→ více autorů a další možnosti</a></div>'; output += '<div id="citOdkaz2AutoriForm"><a href="#" onclick="return false;">← jeden autor, skrýt možnosti</a></div>'; output += '</fieldset></div>'; break; default : break; } // ostatní parametry switch(typ) { // knižní typy case "sborník" : output += '<div><fieldset><legend>Název příspěvku nebo kapitoly</legend>'; output += createCitationInput("titul"); output += createCitationInput("podnázev"); output += '</fieldset></div>'; output += '<div><fieldset><legend>Údaje o sborníku nebo knize</legend>'; output += createCitationInput("sborník"); output += createCitationInput("autor_sborníku"); output += '<div class="prefsectiontip">Autora prosím vyplňte ve formátu: "PŘÍJMENÍ, Jméno". Případné iniciály prosím uveďte bez teček.</div>'; output += '</fieldset></div>'; output += '<div><fieldset><legend>Údaje o dostupnosti</legend>'; output += createCitationInput("url"); output += '</fieldset></div>'; output += '<div><fieldset><legend>Údaje o vydání</legend>'; output += createCitationInput("vydání"); output += '</fieldset></div>'; output += '<div><fieldset><legend>Nakladatelské údaje a fyzický popis</legend>'; output += createCitationInput("místo"); output += createCitationInput("vydavatel"); output += createCitationInput("rok"); output += createCitationInput("rozsah"); output += createCitationInput("edice"); output += createCitationInput("svazek"); output += createCitationInput("strany"); output += createCitationInput("poznámky"); output += createCitationInput("isbn"); output += '</fieldset></div>'; break; case "kapitola" : case "firemní_literatura" : output += '<div><fieldset><legend>Údaje o kapitole</legend>'; output += createCitationInput("kapitola"); output += createCitationInput("název_kapitoly"); output += '</fieldset></div>'; case "kniha" : output += '<div><fieldset><legend>Údaje o názvu</legend>'; output += createCitationInput("titul"); output += createCitationInput("podnázev"); output += '</fieldset></div>'; output += '<div><fieldset><legend>Údaje o dostupnosti</legend>'; output += createCitationInput("url"); output += '</fieldset></div>'; output += '<div><fieldset><legend>Údaje o vydání</legend>'; output += createCitationInput("vydání"); output += '</fieldset></div>'; output += '<div><fieldset><legend>Nakladatelské údaje a fyzický popis</legend>'; output += createCitationInput("místo"); output += createCitationInput("vydavatel"); output += createCitationInput("rok"); output += createCitationInput("rozsah"); output += createCitationInput("edice"); output += createCitationInput("svazek"); output += createCitationInput("strany"); output += createCitationInput("poznámky"); //output += createCitationInput("isbn"); output += '</fieldset></div>'; break; // článkové typy case "seriálová_publikace" : output += '<div><fieldset><legend>Údaje o publikaci</legend>'; output += createCitationInput("seriálová_publikace"); output += '</fieldset></div>'; case "článek" : output += '<div><fieldset><legend>Článek/Publikace</legend>'; output += createCitationInput("článek"); output += '</fieldset></div>'; if (typ == "článek") { output += '<div><fieldset><legend>Údaje o časopise</legend>'; output += createCitationInput("časopis"); } else if (typ == "seriálová_publikace") { output += '<div><fieldset><legend>Údaje o publikaci</legend>'; } output += createCitationInput("url"); output += createCitationInput("rok"); output += createCitationInput("ročník"); output += createCitationInput("volume"); output += createCitationInput("číslo"); output += createCitationInput("strany"); output += createCitationInput("poznámky"); output += createCitationInput("issn"); output += '</fieldset></div>'; break; // elektronické zdroje case "db" : output += '<div><fieldset><legend>Údaje o odpovědnosti, autorech</legend>'; output += createCitationInput("odpovědnost"); output += '</fieldset></div>'; case "web" : output += '<div><fieldset><legend>Údaje o dostupnosti</legend>'; output += createCitationInput("url"); output += '</fieldset></div>'; case "cd" : output += '<div><fieldset><legend>Údaje o zdroji</legend>'; output += createCitationInput("název"); output += createCitationInput("podnázev"); output += createCitationInput("vydavatel"); output += createCitationInput("rok"); output += createCitationInput("datum_revize"); output += createCitationInput("citováno"); output += '</fieldset></div>'; break; // legislativní dokument case "legislativní_dokument" : output += '<div><fieldset><legend>Údaje o legislativním dokumentu</legend>'; output += createCitationInput("země"); output += createCitationInput("instituce"); output += createCitationInput("dokument"); output += createCitationInput("sbírka"); output += createCitationInput("rok"); output += createCitationInput("poznámky"); output += createCitationInput("strany"); output += createCitationInput("url"); output += '</fieldset></div>'; break; // standard case "standard" : output += '<div><fieldset><legend>Údaje o standardu, normě</legend>'; output += createCitationInput("označení"); output += createCitationInput("název"); output += createCitationInput("místo"); output += createCitationInput("instituce"); output += createCitationInput("rok"); output += createCitationInput("poznámky"); output += createCitationInput("strany"); output += createCitationInput("url"); output += '</fieldset></div>'; break; // akademická literatura case "akademická_práce" : output += '<div><fieldset><legend>Údaje o akademické práci</legend>'; output += createCitationInput("název"); output += createCitationInput("podnázev"); output += createCitationInput("místo"); output += createCitationInput("ústav"); output += createCitationInput("rok"); output += createCitationInput("url"); output += createCitationInput("strany"); output += createCitationInput("poznámky"); output += '</fieldset></div>'; break; case "přednáška": output += '<div><fieldset><legend>Údaje o přednášce na vysoké škole</legend>'; output += createCitationInput("příjmení"); output += createCitationInput("jméno"); output += createCitationInput("téma"); output += createCitationInput("předmět"); output += createCitationInput("obor"); output += createCitationInput("fakulta"); output += createCitationInput("univerzita"); output += createCitationInput("místo"); output += createCitationInput("datum"); output += createCitationInput("url"); output += createCitationInput("poznámky"); output += '</fieldset></div>'; break; } if (typ == "článek") { output += "<div><fieldset><legend>Další identifikátory</legend>"; output += createCitationInput("pmid"); output += '<div class="prefsectiontip">Zde můžete uvést PMID číslo článku v databázi PubMed.</div>'; output += createCitationInput("doi"); output += '<div class="prefsectiontip">Pokud je článek k dispozici pod identifikátorem DOI, můžete jej zde zadat.</div>'; output += "</fieldset></div>"; } // tlačítko pro odeslání a závěr formuláře output += '<input type="submit" value="Vygenerovat šablonu" /> '; output += '<input type="reset" value="Smazat údaje" /></form>'; output += '<p> </p>'; // kýžený výstup: přepis formuláře a zablokování odkazu contentDiv.innerHTML = baseTextCitace + output; // povinné parametry jednotlivých zdrojů: polePovinnychParametru = new Array(); switch (typ) { case "kniha": case "kapitola": polePovinnychParametru = ["titul", "vydání", "rok", "isbn"]; break; case "sborník": polePovinnychParametru = ["titul", "vydání", "autor_sborníku", "rok"]; break; case "článek": polePovinnychParametru = ["článek", "časopis", "strany", "rok", "ročník", "svazek", "issn"]; break; case "seriálová_publikace": polePovinnychParametru = ["článek", "název", "seriálová_publikace", "strany", "rok", "svazek", "ročník", "issn"]; break; case "web": polePovinnychParametru = ["název", "citováno", "url"]; break; case "cd": polePovinnychParametru = ["citováno", "název"]; break; case "db": polePovinnychParametru = ["název", "odpovědnost", "citováno", "url"]; break; case "firemní_literatura": polePovinnychParametru = ["titul", "vydavatel", "rok"]; break; case "legislativní_dokument": polePovinnychParametru = ["země", "dokument", "rok"]; break; case "standard": polePovinnychParametru = ["označení", "název", "rok"]; break; case "akademická_práce": polePovinnychParametru = ["název", "místo", "rok"]; break; case "přednáška": polePovinnychParametru = ["příjmení", "téma", "předmět", "obor", "fakulta", "univerzita", "místo", "datum"]; break; } // vytvořit třídy pro povinné parametry classPovinneCitace(polePovinnychParametru); // vyplnit datum, je-li potřeba if(document.getElementById("citováno")) { datumCitace = document.getElementById("citováno"); dnesni_datum = new Date(); vyplneni_rok = dnesni_datum.getFullYear(); vyplneni_mesic = (dnesni_datum.getMonth() + 1); if (vyplneni_mesic < 10) vyplneni_mesic = "0" + vyplneni_mesic; vyplneni_den = dnesni_datum.getDate(); if (vyplneni_den < 10) vyplneni_den = "0" + vyplneni_den; vyplneni_data = vyplneni_rok + "-" + vyplneni_mesic + "-" + vyplneni_den; datumCitace.value = vyplneni_data; datumCitace.onclick = function() { document.getElementById("citováno").value = ""; document.getElementById("citováno").onclick = null; } } // obhospodařit autory // jQuery animace $j(document).ready(function(){ $j("#citOdkaz1AutoriForm").click( function(){ $j("#citKorporaceForm").slideToggle(); $j("#citDalsiAutoriForm").slideToggle(); $j("#citOdkaz1AutoriForm").slideToggle(); $j("#citOdkaz2AutoriForm").slideToggle(); } ); $j("#citOdkaz2AutoriForm").click( function(){ $j("#citKorporaceForm").slideToggle(); $j("#citDalsiAutoriForm").slideToggle(); $j("#citOdkaz1AutoriForm").slideToggle(); $j("#citOdkaz2AutoriForm").slideToggle(); } ); }); // konec return false; } // spuštění všeho addOnloadHook(createCitationButton); /* </pre> */