MediaWiki:Common.js

(Rozdíly mezi verzemi)
Přejít na: navigace, hledá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...“)
Řá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>&nbsp;•&nbsp;<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 + ':&nbsp;</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>&nbsp;<input type="text" id="pmid" name="pmid" />&nbsp;' +
 +
    '<input type="button" onclick="zpracovatPMID(document.forms[\'formPMID\'].elements[\'pmid\'].value)" value="Získat citaci pomocí PMID" />&nbsp;<span id="pmid_wait"><img src="' + wgServer + '/skins/common/images/ajax-loader.gif" width="20" height="20" />&nbsp;Prosím čekejte&hellip;</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:&nbsp;</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;">&rarr;&nbsp;více autorů a další možnosti</a></div>';
 +
    output += '<div id="citOdkaz2AutoriForm"><a href="#" onclick="return false;">&larr;&nbsp;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" />&nbsp;';
 +
  output += '<input type="reset" value="Smazat údaje" /></form>';
 +
  output += '<p>&nbsp;</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>&nbsp;•&nbsp;<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 + ':&nbsp;</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>&nbsp;<input type="text" id="pmid" name="pmid" />&nbsp;' +
    '<input type="button" onclick="zpracovatPMID(document.forms[\'formPMID\'].elements[\'pmid\'].value)" value="Získat citaci pomocí PMID" />&nbsp;<span id="pmid_wait"><img src="' + wgServer + '/skins/common/images/ajax-loader.gif" width="20" height="20" />&nbsp;Prosím čekejte&hellip;</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:&nbsp;</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;">&rarr;&nbsp;více autorů a další možnosti</a></div>';
    output += '<div id="citOdkaz2AutoriForm"><a href="#" onclick="return false;">&larr;&nbsp;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" />&nbsp;';
  output += '<input type="reset" value="Smazat údaje" /></form>';
  output += '<p>&nbsp;</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> */
Osobní nástroje
Jmenné prostory
Varianty
Akce
Rychlá navigace
NEJ aktivity
Nejlepší předměty
Nejlepší MCU
SW-HW
Ostatní
Utility
Nástroje
Tisk/export