MediaWiki:Common.js
(Rozdíly mezi verzemi)
(Obsah stránky nahrazen textem „é- →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?t...“) |
|||
Řádka 3: | Řádka 3: | ||
importScriptURI('http://en.wikipedia.org/w/index.php?title=User:ProveIt_GT/ProveIt.js&action=raw&ctype=text/javascript'); | importScriptURI('http://en.wikipedia.org/w/index.php?title=User:ProveIt_GT/ProveIt.js&action=raw&ctype=text/javascript'); | ||
// [[User:ProveIt GT/ProveIt.js]] | // [[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> */ |
Verze z 29. 2. 2012, 20:35
é/* 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> */