MediaWiki:Common.js: Porovnání verzí
Skočit na navigaci
Skočit na vyhledávání
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...“ |
Bez shrnutí editace |
||
Řádek 3: | Řádek 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, 18: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> */