/* ------------------------------------------------------------------------ *\ Copyright: en:User:Mr.Z-man (en), Wikipedysta:Holek (pl), pl:User:Nux Licencja: GFDL oraz CC-BY-SA Original: http://en.wikipedia.org/wiki/User:Mr.Z-man/refToolbar.js Version: (see below) = refsTB.version \* ------------------------------------------------------------------------ */ var tmp_refsTB_VERSION = '1.2.2'; // // Object Init // if (document.cookie.indexOf("js_refsTB_critical=1")==-1 && refsTB!=undefined) { alert('Błąd krytyczny - konflikt nazw!'+ '\n\n'+ 'Jeden ze skryptów używa już nazwy "refsTB" jako nazwę zmiennej globalnej.'); document.cookie = "js_refsTB_critical=1; path=/"; if (document.cookie.indexOf("js_refsTB_critical=1")!=-1) { alert('Poprzedni komunikat jest wyświetlany tylko raz w ciągu sesji.'+ '\n\n'+ 'Musisz rozwiązać konflikt nazw lub usunąć jeden ze skryptów w całości.'); } } var refsTB = new Object(); refsTB.version = tmp_refsTB_VERSION; // // Attributes // refsTB.numforms = 0; // number of forms //var wikEdAutoUpdateUrl; // // Methods // // add a button and a buttons toolbar refsTB.refbuttons = function () { if (mwCustomEditButtons && (document.getElementById('toolbar') || document.getElementById('wikiEditor-ui-toolbar'))/* && wikEdAutoUpdateUrl == null*/) { if (document.getElementById('toolbar')) { var button = document.createElement('a'); button.href = "javascript:refsTB.easyCiteMain()"; button.title = "Wstaw szablon cytowania (wer: "+refsTB.version+")"; buttonimage = document.createElement('img'); buttonimage.src = "//upload.wikimedia.org/wikipedia/commons/b/bf/Button_easy_cite_pl.png"; buttonimage.alt = "Wstaw szablon przypisu"; button.appendChild(buttonimage); document.getElementById('toolbar').appendChild(button); } else { var advsec = getElementsByClassName(document.getElementById('wikiEditor-ui-toolbar'), "div", "section-advanced")[0]; var groupel = getElementsByClassName(advsec, "div", "group-insert")[0]; var buttonimage = document.createElement('img'); buttonimage.src = "//upload.wikimedia.org/wikipedia/commons/thumb/c/c0/Curly_Brackets_cytuj.svg/22px-Curly_Brackets_cytuj.svg.png"; buttonimage.alt = "Wstaw szablon cytowania"; buttonimage.title = "Wstaw szablon cytowania (wer: "+refsTB.version+")"; buttonimage.className = "tool tool-button"; buttonimage.style.cssText = "width: 22px; height: 22px; padding-top:2px"; buttonimage.onclick = refsTB.easyCiteMain; groupel.appendChild(buttonimage); } var citemain = document.createElement('div'); citemain.style.display = 'none'; citemain.setAttribute('id', 'citeselect'); citemain.appendChild( refsTB.addOption("refsTB.citeWeb()", "Strona WWW") ); citemain.appendChild( refsTB.addOption("refsTB.citeBook()", "Książka") ); citemain.appendChild( refsTB.addOption("refsTB.citeJournal()", "Pismo") ); citemain.appendChild( refsTB.addOption("refsTB.citeNamedRef()", "Istniejące przypisy") ); citemain.appendChild( refsTB.addOption("refsTB.dispErrors()", "Sprawdzenie błędów") ); citemain.appendChild( refsTB.addOption("refsTB.hideInitial()", "Anuluj") ); var txtarea = document.getElementById('wpTextbox1'); txtarea.parentNode.insertBefore(citemain, txtarea); } } refsTB.addOption = function (script, text) { var option = document.createElement('input'); option.setAttribute('type', 'button'); option.onclick = new Function(script); option.setAttribute("value", text); return option; } refsTB.hideInitial = function () { document.getElementById('citeselect').style.display = 'none'; refsTB.oldFormHide(); } refsTB.oldFormHide = function () { if (refsTB.numforms != 0) { document.getElementById('citediv'+refsTB.numforms).style.display = 'none'; } if (document.getElementById('errorform') != null) { document.getElementById('citeselect').removeChild(document.getElementById('errorform')); } } refsTB.easyCiteMain = function () { var elBar = document.getElementById('citeselect'); if (elBar.style.display == 'none') { elBar.style.display = ''; } else { elBar.style.display = 'none'; } } refsTB.getTime = function () { var time = new Date(); var nowdate = time.getUTCDate(); if (nowdate<10) { nowdate = "0"+ nowdate.toString(); } var nowmonth = time.getUTCMonth()+1; if (nowmonth<10) { nowmonth = "0"+ nowmonth.toString(); } var nowyear = time.getUTCFullYear(); newtime = nowyear + '-' + nowmonth + '-' + nowdate; return (newtime); } refsTB.parseCiteForm = function (form_id) { var els = document.getElementById(form_id).getElementsByTagName('input'); for (var i=0; i'+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ '
'+ ''+ ''; document.getElementById('citeselect').appendChild(form_el); refsTB.parseCiteForm(form_el.id); } refsTB.citeBook = function () { refsTB.oldFormHide(); template = "cytuj książkę"; refsTB.numforms++; var form_el = document.createElement('div'); form_el.id = 'citediv'+refsTB.numforms form_el.innerHTML = '
Cytowanie wydawnictw zwartych (książek)'+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ '
'+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ '
'; document.getElementById('citeselect').appendChild(form_el); refsTB.parseCiteForm(form_el.id); createCollapseButtons(); } refsTB.citeJournal = function () { refsTB.oldFormHide(); template = "cytuj pismo"; refsTB.numforms++; var form_el = document.createElement('div'); form_el.id = 'citediv'+refsTB.numforms form_el.innerHTML = '
Cytowanie czasopisma, pracy naukowej, itp.'+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ '
'+ ''+ '
'; document.getElementById('citeselect').appendChild(form_el); refsTB.parseCiteForm(form_el.id); } refsTB.addcites = function (template) { cites = document.getElementById('citediv'+refsTB.numforms).getElementsByTagName('input'); var citebegin = '"; document.getElementById('wpTextbox1').focus(); // focus first insertTags(cite, '', ''); document.getElementById('citediv'+refsTB.numforms).style.display = 'none'; } refsTB.getNamedRefs = function (calls) { if (typeof(wikEdUseWikEd) != 'undefined') { if (wikEdUseWikEd == true) { WikEdUpdateTextarea(); } } text = document.getElementById('wpTextbox1').value; var regex; if (calls) { regex = /< *?ref +?name *?= *?(('([^']*?)')|("([^"]*?)")|([^'"\s]*?[^\/]\b)) *?\/ *?>/gi //' } else { regex = /< *?ref +?name *?= *?(('([^']*?)')|("([^"]*?)")|([^'"\s]*?[^\/]\b)) *?>/gi //' } var namedrefs = new Array(); var i=0; var nr=true; do { ref = regex.exec(text); if(ref != null){ if (ref[5]) { namedrefs[i] = ref[5]; } else if (ref[3]) { namedrefs[i] = ref[3]; } else { namedrefs[i] = ref[6]; } i++; } else { nr=false; } } while (nr==true); return namedrefs; } refsTB.citeNamedRef = function () { var namedrefs = refsTB.getNamedRefs(false); refsTB.oldFormHide(); refsTB.numforms++; var form_el = document.createElement('div'); form_el.id = 'citediv'+refsTB.numforms; if (namedrefs == '') { form_el.innerHTML = '
'+ 'Przypisy z artykułu'+ 'Nie znaleziono żadnych przypisów z przypisanymi nazwami (<ref name="nazwa">)'+ '
'; } else { var form = '
Przypisy z artykułu'+ ''+ ''+ '
'+ '
'+ ''+ '
'; form_el.innerHTML = form; } document.getElementById('citeselect').appendChild(form_el); } refsTB.addnamedcite = function () { name = document.getElementById('citediv'+refsTB.numforms).getElementsByTagName('select')[0].value; ref = ''; document.getElementById('wpTextbox1').focus(); // focus first insertTags(ref, '', ''); document.getElementById('citediv'+refsTB.numforms).style.display = 'none'; } refsTB.getAllRefs = function () { if (typeof(wikEdUseWikEd) != 'undefined') { if (wikEdUseWikEd == true) { WikEdUpdateTextarea(); } } text = document.getElementById('wpTextbox1').value; regex = /< *?ref( +?name *?= *?(('([^']*?)')|("([^"]*?)")|([^'"\s]*?[^\/]\b)))? *?>((.|\n)*?)< *?\/? *?ref *?>/gim //" var allrefs = new Array(); var i=0; var nr=true; do { ref = regex.exec(text); if(ref != null){ var orig_code = ref[0]; if (ref[0].search(/[^\s]{150}/) != -1) { ref[0] = ref[0].replace(/\|([^\s])/g, "| $1"); } ref[0] = ref[0].replace(//g, ">"); allrefs[i] = {code : ref[0], index : ref.index, orig_code: orig_code}; i++; } else { nr=false; } } while (nr==true); return allrefs; } refsTB.NRcallError = function (namedrefs, refname) { for (var i=0; i get next if (sel_t.getSelStr(input, false)==code) { sel_pos = sel_t.getSelBound(input); pos = input.value.indexOf(code, sel_pos.start+1); } // not selected yet or last found => get first if (pos==-1) { pos = input.value.indexOf(code); } // select if found if (pos!=-1) { sel_t.setSelBound(input, {start:pos, end:(pos+code.length)}, true); } } refsTB.gotoErrorCodeHTML = function (code) { var search_icon = '//upload.wikimedia.org/wikipedia/commons/thumb/3/33/Crystal_Clear_action_viewmag.png/20px-Crystal_Clear_action_viewmag.png'; var el = document.getElementById('wpTextbox1') return '' ; } refsTB.errorCheck = function () { var allrefs = refsTB.getAllRefs(); var allrefscontent = new Array(); var samecontentexclude = new Array(); var sx=0; var templateexclude = new Array(); var tx=0; var skipcheck = false; var namedrefcalls = refsTB.getNamedRefs(true); for (var i=0; i'+refsTB.gotoErrorCodeHTML(allrefs[i].orig_code)+''; errorlist[q] += 'Niedomknięty tag <ref>'; q++; } if (samecontent) { for (var d=0; d'+refsTB.gotoErrorCodeHTML(allrefs[i].orig_code)+''; errorlist[q] += 'Wiele przypisów posiada tę zawartość. Do tego przypisu powinna zostać przypisana nazwa.'; q++; samecontentexclude[sx] = allrefscontent[i] sx++; break; } p++; } skipcheck=false; } if (templates) { if (allrefscontent[i].search(/\{\{cytuj/i) == -1 && allrefscontent[i].search(/\{\{cite/i) == -1) { for (var x=0; x'+refsTB.gotoErrorCodeHTML(allrefs[i].orig_code)+''; errorlist[q] += 'Przypis nie wykorzystuje szablonów cytowania'; q++; templateexclude[tx] = allrefscontent[i]; tx++; } skipcheck = false; } } } if (repeated) { var repeatnameexclude = new Array(); var rx=0; for (var k=0; k'; errorlist[q] += 'Kilka różnych przypisów posiada tę samą nazwę.'; q++; repeatnameexclude[rx] = namedrefs[z]; rx++; break; } z++; } skipcheck = false; } } if (undef) { var undefexclude = new Array(); var ux=0; for (var p=0; p'; errorlist[q] += 'Użyty przypis nie został wcześniej zdefiniowany.'; q++; undefexclude[ux] = namedrefs[p]; ux++; } } skipcheck = false; } } if (q > 0) { return errorlist; } else { return 0; } } refsTB.dispErrors = function () { refsTB.oldFormHide(); var form_el = document.createElement('div'); form_el.id = 'errorform'; form_el.innerHTML = '
'+ 'Sprawdzanie błędów'+ 'Sprawdź:
'+ ' Niedomknięte tagi <ref>
'+ ' Przypisy z tymi samymi danymi
'+ ' Przypisy niewykorzystujące szablonów cytowania
'+ ' Powtórzone przypisy o tej samej nazwie
'+ ' Użycie nazwanych przypisów bez treści/definicji
'+ ''+ '
'; document.getElementById('citeselect').appendChild(form_el); } refsTB.doErrorCheck = function () { var errors = refsTB.errorCheck(); document.getElementById('citeselect').removeChild(document.getElementById('errorform')); if (errors == 0) { if (refsTB.numforms != 0) { document.getElementById('citediv'+refsTB.numforms).style.display = 'none'; } refsTB.numforms++; var form_el = document.createElement('div'); form_el.id = 'citediv'+refsTB.numforms; form_el.innerHTML = '
'+ 'Sprawdzanie błędówNie znaleziono żadnych błędów.
'; document.getElementById('citeselect').appendChild(form_el); } else { if (refsTB.numforms != 0) { document.getElementById('citediv'+refsTB.numforms).style.display = 'none'; } refsTB.numforms++; var form_el = document.createElement('div'); form_el.id = 'citediv'+refsTB.numforms; var form = '
Sprawdzanie błędów'+ ''; for (var i=0; i'; form_el.innerHTML = form document.getElementById('citeselect').appendChild(form_el); } } // Note: addOnloadHook will not work for the new toolbar $(refsTB.refbuttons);