HarvardReferences.js: Porovnání verzí
založena nová stránka s textem „importScript('HarvardReferences.js');“ |
Bez shrnutí editace |
||
| Řádek 1: | Řádek 1: | ||
//Scripts for supporting extension http://www.mediawiki.org/wiki/Extension:HarvardReferences | |||
var HrvHighlight = new function(){ | |||
var state = ""; | |||
function setBackground(prm_name){ | |||
var anchorTags = document.getElementsByTagName("li"); | |||
for (var i = 0; i < anchorTags.length ; i++){ | |||
var ob1=anchorTags[i]; | |||
if(ob1.className=="harvBackground"){ | |||
ob1.className = ""; | |||
} | |||
} | |||
var anchorTags = document.getElementsByTagName("sup"); | |||
for (var i = 0; i < anchorTags.length ; i++){ | |||
var ob1=anchorTags[i]; | |||
if(ob1.id.indexOf("harv_note-"+prm_name)==0){ | |||
ob1.parentNode.className = "harvBackground"; | |||
}else if(ob1.id.indexOf("harv_note-")==0){ | |||
ob1.parentNode.className = ""; | |||
} | |||
} | |||
} | |||
function setBackground1(prm_name, prm_n){ | |||
var anchorTags = document.getElementsByTagName("sup"); | |||
for (var i = 0; i < anchorTags.length ; i++){ | |||
var ob1=anchorTags[i]; | |||
if(ob1.id.indexOf("harv_note-")==0){ | |||
ob1.parentNode.className = ""; | |||
} | |||
} | |||
var anchorTags = document.getElementsByTagName("li"); | |||
for (var i = 0; i < anchorTags.length ; i++){ | |||
var ob1=anchorTags[i]; | |||
if(ob1.className=="harvBackground"){ | |||
ob1.className = ""; | |||
} | |||
if(ob1.id.indexOf("cite_note-"+prm_name+"-"+prm_n)==0){ | |||
ob1.className = "harvBackground"; | |||
}else if(ob1.id.indexOf("cite_note-")==0){ | |||
ob1.className = ""; | |||
} | |||
} | |||
} | |||
function setBackground2(prm_name){ | |||
var n=""; | |||
var arr=prm_name.split("-"); | |||
var arr1=arr[1].split("_"); | |||
if(arr[2]){ | |||
n="cite_note-"+arr1[0]+"-"+arr1[1]; | |||
}else{ | |||
n="cite_note-"+arr[1]; | |||
} | |||
var anchorTags = document.getElementsByTagName("li"); | |||
for (var i = 0; i < anchorTags.length ; i++){ | |||
var ob1=anchorTags[i]; | |||
if(ob1.className=="harvBackground"){ | |||
ob1.className = ""; | |||
} | |||
if(ob1.id.indexOf("cite_note-")==0){ | |||
if(ob1.id==n){ | |||
ob1.className = "harvBackground"; | |||
}else{ | |||
ob1.className = ""; | |||
} | |||
} | |||
} | |||
} | |||
//when user clicks to harv ref in article text | |||
function whenUserClicksToHarvRef(prm_name, prm_n){ | |||
var anchorTags = document.getElementsByTagName("a"); | |||
for (var i = 0; i < anchorTags.length ; i++){ | |||
var ob1=anchorTags[i]; | |||
if(ob1.className == "harvReferenceLink" || ob1.className == "harvVisitedLink"){ | |||
ob1.className = ""; | |||
} | |||
} | |||
var anchorTags = document.getElementsByTagName("sup"); | |||
for (var i = 0; i < anchorTags.length ; i++){ | |||
var ob1=anchorTags[i]; | |||
if(ob1.id=="harv_ref-"+prm_name+"-"+prm_n){ | |||
ob1.className = "harvVisitedLink"; | |||
}else if(ob1.id=="harv_note-"+prm_name+"-"+prm_n){ | |||
ob1.className = "harvReferenceLink"; | |||
}else if(ob1.id=="harv_note-"+prm_name){ | |||
ob1.className = "harvReferenceLink"; | |||
}else{ | |||
ob1.className = ""; | |||
} | |||
} | |||
setBackground(prm_name); | |||
} | |||
//when user clicks to big backlink from bibliography | |||
function whenUserClicksToHarvBigBacklink(prm_name){ | |||
var anchorTags = document.getElementsByTagName("a"); | |||
for (var i = 0; i < anchorTags.length ; i++){ | |||
var ob1=anchorTags[i]; | |||
if(ob1.className == "harvReferenceLink" || ob1.className == "harvVisitedLink"){ | |||
ob1.className = ""; | |||
} | |||
} | |||
var anchorTags = document.getElementsByTagName("sup"); | |||
for (var i = 0; i < anchorTags.length ; i++){ | |||
var ob1=anchorTags[i]; | |||
if(ob1.className == "harvReferenceLink" || ob1.className == "harvVisitedLink"){ | |||
ob1.className = ""; | |||
} | |||
if(ob1.id.indexOf("harv_ref-"+prm_name+"-")==0){ | |||
ob1.className = "harvVisitedLink"; | |||
}else if(ob1.id=="harv_note-"+prm_name){ | |||
ob1.className = "harvReferenceLink"; | |||
} | |||
} | |||
setBackground(prm_name); | |||
} | |||
//when user clicks to small (number) backlink from bibliography | |||
function whenUserClicksToHarvSmallBacklink(prm_name, prm_n){ | |||
var anchorTags = document.getElementsByTagName("a"); | |||
for (var i = 0; i < anchorTags.length ; i++){ | |||
var ob1=anchorTags[i]; | |||
if(ob1.className == "harvReferenceLink" || ob1.className == "harvVisitedLink"){ | |||
ob1.className = ""; | |||
} | |||
} | |||
var anchorTags = document.getElementsByTagName("sup"); | |||
for (var i = 0; i < anchorTags.length ; i++){ | |||
var ob1=anchorTags[i]; | |||
if(ob1.className == "harvReferenceLink" || ob1.className == "harvVisitedLink"){ | |||
ob1.className = ""; | |||
} | |||
if(ob1.id=="harv_ref-"+prm_name+"-"+prm_n){ | |||
ob1.className = "harvVisitedLink"; | |||
}else if(ob1.id=="harv_note-"+prm_name){ | |||
ob1.className = "harvReferenceLink"; | |||
}else if(ob1.id=="harv_note-"+prm_name+"-"+prm_n){ | |||
ob1.className = "harvReferenceLink"; | |||
} | |||
} | |||
setBackground(prm_name); | |||
} | |||
function showRefsMode(n){ | |||
var anchorTags = document.getElementsByTagName("sup"); | |||
for (var i = 0; i < anchorTags.length ; i++){ | |||
var ob1=anchorTags[i]; | |||
if(ob1.id.indexOf("harv_ref-")==0){ | |||
if(n==""){ | |||
ob1.style.display = ""; | |||
ob2=ob1.childNodes[0]; | |||
ob3=ob2.childNodes[0]; | |||
if(ob3.nodeValue.indexOf("*")>=0){ | |||
t=ob2.title; | |||
ob3.nodeValue=t; | |||
}; | |||
}else if(n=="hide"){ | |||
ob1.style.display = "none"; | |||
}else if (n=="short"){ | |||
ob1.style.display = ""; | |||
ob2=ob1.childNodes[0]; | |||
ob3=ob2.childNodes[0]; | |||
var t=ob3.nodeValue; | |||
if(ob1.childNodes.length>1){ | |||
var p=ob1.childNodes[1].nodeValue; | |||
t=t+ob1.childNodes[1].nodeValue; | |||
ob1.childNodes[1].nodeValue=""; | |||
} | |||
ob2.title=t; | |||
ob3.nodeValue="* "; | |||
}else{ | |||
ob1.style.display = ""; | |||
} | |||
} | |||
} | |||
} | |||
this.changeFormat = function(){ | |||
var s=state; | |||
if(s==""){ | |||
s="short"; | |||
}else if(s=="short"){ | |||
s="hide"; | |||
}else if(s=="hide"){ | |||
s=""; | |||
} | |||
state=s; | |||
showRefsMode(s); | |||
} | |||
//when user clicks to ref in article text whenUserClicksToRef | |||
function whenUserClicksToRef(prm_name, prm_n){ | |||
var anchorTags = document.getElementsByTagName("sup"); | |||
//alert('"#cite_ref'+prm_name+'-'+prm_n+'"'); | |||
for (var i = 0; i < anchorTags.length ; i++){ | |||
var ob1=anchorTags[i]; | |||
//alert(ob1.id+"==="+ob1.id.indexOf('cite_ref-')); | |||
if(ob1.id.indexOf("cite_ref-")==0){ | |||
if(ob1.id=="cite_ref"+prm_name+"-"+prm_n){ | |||
ob1.className = "harvVisitedLink"; | |||
}else{ | |||
ob1.className = "harvNone"; | |||
} | |||
}else if(ob1.id.indexOf("harv_ref-")==0){ | |||
ob1.className = ""; | |||
}else if(ob1.id.indexOf("harv_note-")==0){ | |||
ob1.className = ""; | |||
} | |||
} | |||
//setBackground(prm_name); | |||
var anchorTags = document.getElementsByTagName("a"); | |||
for (var i = 0; i < anchorTags.length ; i++){ | |||
var ob1=anchorTags[i]; | |||
var h=ob1.href; | |||
var p=h.lastIndexOf("#"); | |||
if(p==-1) continue; | |||
var h=h.substring(p, h.length); | |||
if(h.indexOf("#cite_ref-")==0){ | |||
if(h == "#cite_ref"+prm_name+"-"+prm_n){ | |||
ob1.className = "harvReferenceLink"; | |||
}else{ | |||
ob1.className = ""; | |||
} | |||
} | |||
} | |||
setBackground1(prm_name, prm_n); | |||
} | |||
function handler1(id){ | |||
var arr=id.split("-"); | |||
whenUserClicksToHarvRef(arr[1], arr[2]); | |||
} | |||
function handler2(id){ | |||
var arr=id.split("-"); | |||
if(arr[2]){ | |||
whenUserClicksToHarvSmallBacklink(arr[1], arr[2]); | |||
}else{ | |||
whenUserClicksToHarvBigBacklink(arr[1]); | |||
} | |||
} | |||
function handler3(id){ | |||
var arr=id.split("-"); | |||
if(arr[2]){ | |||
whenUserClicksToRef("-"+arr[1], arr[2]); | |||
}else{ | |||
whenUserClicksToRef("", arr[1]); | |||
} | |||
} | |||
function handler4(id, h){ | |||
var p=h.lastIndexOf("#"); | |||
if(p==-1) return; | |||
var h=h.substring(p+1, h.length); | |||
whenUserClicksToBackRef(h); | |||
} | |||
//when user clicks to ref in article text whenUserClicksToRef | |||
function whenUserClicksToBackRef(prm_href){ | |||
var anchorTags = document.getElementsByTagName("sup"); | |||
for (var i = 0; i < anchorTags.length ; i++){ | |||
var ob1=anchorTags[i]; | |||
if(ob1.className == "harvReferenceLink"){ | |||
ob1.className = ""; | |||
} | |||
if(ob1.className == "harvVisitedLink"){ | |||
ob1.className = ""; | |||
} | |||
if(ob1.id.indexOf("cite_ref-")==0){ | |||
if(ob1.id==prm_href){ | |||
ob1.className = "harvVisitedLink"; | |||
}else{ | |||
ob1.className = ""; | |||
} | |||
} | |||
} | |||
var anchorTags = document.getElementsByTagName("a"); | |||
for (var i = 0; i < anchorTags.length ; i++){ | |||
var ob1=anchorTags[i]; | |||
var h=ob1.href; | |||
var p=h.lastIndexOf("#"); | |||
if(p==-1) continue; | |||
var h=h.substring(p, h.length); | |||
if(h.indexOf("#cite_ref-")==0){ | |||
if(h == "#"+prm_href){ | |||
ob1.className = "harvReferenceLink"; | |||
}else{ | |||
ob1.className = ""; | |||
} | |||
} | |||
} | |||
setBackground2(prm_href); | |||
} | |||
//Main function on load page | |||
this.onLoad = function(){ | |||
if (wgAction=="view"){ //only for view pages | |||
var ok=0; | |||
//install events | |||
var anchorTags = document.getElementsByTagName("a"); | |||
for (var i = 0; i < anchorTags.length ; i++){ | |||
var ob1=anchorTags[i]; | |||
if(ob1.href.indexOf("#harv_note-")>=0){ | |||
ob1.onclick= function(){handler1(this.parentNode.id)}; | |||
}else if(ob1.href.indexOf("#harv_ref-")>=0){ | |||
ob1.onclick= function(){handler2(this.parentNode.id)}; | |||
ok=1; | |||
}else if(ob1.href.indexOf("#cite_note-")>=0){ | |||
ob1.onclick= function(){handler3(this.parentNode.id)}; | |||
ok=1; | |||
}else if(ob1.href.indexOf("#cite_ref-")>=0){ | |||
ob1.onclick= function(){handler4(this.parentNode.id, this.href)}; | |||
ok=1; | |||
} | |||
} | |||
//install the portlet | |||
if(ok==1){ | |||
var hist; var url; | |||
if (!(hist = document.getElementById('ca-history') )) return; | |||
if (!(url = hist.getElementsByTagName('a')[0] )) return; | |||
if (!(url = url.href )) return; | |||
addPortletLink('p-cactions', 'javascript:HrvHighlight.changeFormat();', | |||
'links', 'ca-harvrefs', 'Change format of harvard references', ''); | |||
var s=state; | |||
if(s!="") showRefsMode(s); | |||
} | |||
} | |||
} | |||
}//obj | |||
//Script is starting here | |||
if (doneOnloadHook) HrvHighlight.onLoad() | |||
else addOnloadHook(HrvHighlight.onLoad); | |||
Verze z 19. 8. 2024, 18:38
//Scripts for supporting extension http://www.mediawiki.org/wiki/Extension:HarvardReferences
var HrvHighlight = new function(){
var state = "";
function setBackground(prm_name){
var anchorTags = document.getElementsByTagName("li");
for (var i = 0; i < anchorTags.length ; i++){
var ob1=anchorTags[i];
if(ob1.className=="harvBackground"){
ob1.className = "";
}
}
var anchorTags = document.getElementsByTagName("sup");
for (var i = 0; i < anchorTags.length ; i++){
var ob1=anchorTags[i];
if(ob1.id.indexOf("harv_note-"+prm_name)==0){
ob1.parentNode.className = "harvBackground";
}else if(ob1.id.indexOf("harv_note-")==0){
ob1.parentNode.className = "";
}
}
}
function setBackground1(prm_name, prm_n){
var anchorTags = document.getElementsByTagName("sup");
for (var i = 0; i < anchorTags.length ; i++){
var ob1=anchorTags[i];
if(ob1.id.indexOf("harv_note-")==0){
ob1.parentNode.className = "";
}
}
var anchorTags = document.getElementsByTagName("li");
for (var i = 0; i < anchorTags.length ; i++){
var ob1=anchorTags[i];
if(ob1.className=="harvBackground"){
ob1.className = "";
}
if(ob1.id.indexOf("cite_note-"+prm_name+"-"+prm_n)==0){
ob1.className = "harvBackground";
}else if(ob1.id.indexOf("cite_note-")==0){
ob1.className = "";
}
}
}
function setBackground2(prm_name){
var n="";
var arr=prm_name.split("-");
var arr1=arr[1].split("_");
if(arr[2]){
n="cite_note-"+arr1[0]+"-"+arr1[1];
}else{
n="cite_note-"+arr[1];
}
var anchorTags = document.getElementsByTagName("li");
for (var i = 0; i < anchorTags.length ; i++){
var ob1=anchorTags[i];
if(ob1.className=="harvBackground"){
ob1.className = "";
}
if(ob1.id.indexOf("cite_note-")==0){
if(ob1.id==n){
ob1.className = "harvBackground";
}else{
ob1.className = "";
}
}
}
}
//when user clicks to harv ref in article text function whenUserClicksToHarvRef(prm_name, prm_n){
var anchorTags = document.getElementsByTagName("a");
for (var i = 0; i < anchorTags.length ; i++){
var ob1=anchorTags[i];
if(ob1.className == "harvReferenceLink" || ob1.className == "harvVisitedLink"){
ob1.className = "";
}
}
var anchorTags = document.getElementsByTagName("sup");
for (var i = 0; i < anchorTags.length ; i++){
var ob1=anchorTags[i];
if(ob1.id=="harv_ref-"+prm_name+"-"+prm_n){
ob1.className = "harvVisitedLink";
}else if(ob1.id=="harv_note-"+prm_name+"-"+prm_n){
ob1.className = "harvReferenceLink";
}else if(ob1.id=="harv_note-"+prm_name){
ob1.className = "harvReferenceLink";
}else{
ob1.className = "";
}
}
setBackground(prm_name);
}
//when user clicks to big backlink from bibliography function whenUserClicksToHarvBigBacklink(prm_name){
var anchorTags = document.getElementsByTagName("a");
for (var i = 0; i < anchorTags.length ; i++){
var ob1=anchorTags[i];
if(ob1.className == "harvReferenceLink" || ob1.className == "harvVisitedLink"){
ob1.className = "";
}
}
var anchorTags = document.getElementsByTagName("sup");
for (var i = 0; i < anchorTags.length ; i++){
var ob1=anchorTags[i];
if(ob1.className == "harvReferenceLink" || ob1.className == "harvVisitedLink"){
ob1.className = "";
}
if(ob1.id.indexOf("harv_ref-"+prm_name+"-")==0){
ob1.className = "harvVisitedLink";
}else if(ob1.id=="harv_note-"+prm_name){
ob1.className = "harvReferenceLink";
}
}
setBackground(prm_name);
}
//when user clicks to small (number) backlink from bibliography function whenUserClicksToHarvSmallBacklink(prm_name, prm_n){
var anchorTags = document.getElementsByTagName("a");
for (var i = 0; i < anchorTags.length ; i++){
var ob1=anchorTags[i];
if(ob1.className == "harvReferenceLink" || ob1.className == "harvVisitedLink"){
ob1.className = "";
}
}
var anchorTags = document.getElementsByTagName("sup");
for (var i = 0; i < anchorTags.length ; i++){
var ob1=anchorTags[i];
if(ob1.className == "harvReferenceLink" || ob1.className == "harvVisitedLink"){
ob1.className = "";
}
if(ob1.id=="harv_ref-"+prm_name+"-"+prm_n){
ob1.className = "harvVisitedLink";
}else if(ob1.id=="harv_note-"+prm_name){
ob1.className = "harvReferenceLink";
}else if(ob1.id=="harv_note-"+prm_name+"-"+prm_n){
ob1.className = "harvReferenceLink";
}
}
setBackground(prm_name);
}
function showRefsMode(n){
var anchorTags = document.getElementsByTagName("sup");
for (var i = 0; i < anchorTags.length ; i++){
var ob1=anchorTags[i];
if(ob1.id.indexOf("harv_ref-")==0){
if(n==""){
ob1.style.display = "";
ob2=ob1.childNodes[0];
ob3=ob2.childNodes[0];
if(ob3.nodeValue.indexOf("*")>=0){
t=ob2.title;
ob3.nodeValue=t;
};
}else if(n=="hide"){
ob1.style.display = "none";
}else if (n=="short"){
ob1.style.display = "";
ob2=ob1.childNodes[0];
ob3=ob2.childNodes[0];
var t=ob3.nodeValue;
if(ob1.childNodes.length>1){
var p=ob1.childNodes[1].nodeValue;
t=t+ob1.childNodes[1].nodeValue;
ob1.childNodes[1].nodeValue="";
}
ob2.title=t;
ob3.nodeValue="* ";
}else{
ob1.style.display = "";
}
}
}
}
this.changeFormat = function(){
var s=state;
if(s==""){
s="short";
}else if(s=="short"){
s="hide";
}else if(s=="hide"){
s="";
}
state=s;
showRefsMode(s);
}
//when user clicks to ref in article text whenUserClicksToRef function whenUserClicksToRef(prm_name, prm_n){
var anchorTags = document.getElementsByTagName("sup");
//alert('"#cite_ref'+prm_name+'-'+prm_n+'"');
for (var i = 0; i < anchorTags.length ; i++){
var ob1=anchorTags[i];
//alert(ob1.id+"==="+ob1.id.indexOf('cite_ref-'));
if(ob1.id.indexOf("cite_ref-")==0){
if(ob1.id=="cite_ref"+prm_name+"-"+prm_n){
ob1.className = "harvVisitedLink";
}else{
ob1.className = "harvNone";
}
}else if(ob1.id.indexOf("harv_ref-")==0){
ob1.className = "";
}else if(ob1.id.indexOf("harv_note-")==0){
ob1.className = "";
}
}
//setBackground(prm_name);
var anchorTags = document.getElementsByTagName("a");
for (var i = 0; i < anchorTags.length ; i++){
var ob1=anchorTags[i];
var h=ob1.href;
var p=h.lastIndexOf("#");
if(p==-1) continue;
var h=h.substring(p, h.length);
if(h.indexOf("#cite_ref-")==0){
if(h == "#cite_ref"+prm_name+"-"+prm_n){
ob1.className = "harvReferenceLink";
}else{
ob1.className = "";
}
}
}
setBackground1(prm_name, prm_n);
}
function handler1(id){
var arr=id.split("-");
whenUserClicksToHarvRef(arr[1], arr[2]);
}
function handler2(id){
var arr=id.split("-");
if(arr[2]){
whenUserClicksToHarvSmallBacklink(arr[1], arr[2]);
}else{
whenUserClicksToHarvBigBacklink(arr[1]);
}
}
function handler3(id){
var arr=id.split("-");
if(arr[2]){
whenUserClicksToRef("-"+arr[1], arr[2]);
}else{
whenUserClicksToRef("", arr[1]);
}
}
function handler4(id, h){
var p=h.lastIndexOf("#");
if(p==-1) return;
var h=h.substring(p+1, h.length);
whenUserClicksToBackRef(h);
}
//when user clicks to ref in article text whenUserClicksToRef function whenUserClicksToBackRef(prm_href){
var anchorTags = document.getElementsByTagName("sup");
for (var i = 0; i < anchorTags.length ; i++){
var ob1=anchorTags[i];
if(ob1.className == "harvReferenceLink"){
ob1.className = "";
}
if(ob1.className == "harvVisitedLink"){
ob1.className = "";
}
if(ob1.id.indexOf("cite_ref-")==0){
if(ob1.id==prm_href){
ob1.className = "harvVisitedLink";
}else{
ob1.className = "";
}
}
}
var anchorTags = document.getElementsByTagName("a");
for (var i = 0; i < anchorTags.length ; i++){
var ob1=anchorTags[i];
var h=ob1.href;
var p=h.lastIndexOf("#");
if(p==-1) continue;
var h=h.substring(p, h.length);
if(h.indexOf("#cite_ref-")==0){
if(h == "#"+prm_href){
ob1.className = "harvReferenceLink";
}else{
ob1.className = "";
}
}
}
setBackground2(prm_href);
}
//Main function on load page this.onLoad = function(){
if (wgAction=="view"){ //only for view pages
var ok=0;
//install events
var anchorTags = document.getElementsByTagName("a");
for (var i = 0; i < anchorTags.length ; i++){
var ob1=anchorTags[i];
if(ob1.href.indexOf("#harv_note-")>=0){
ob1.onclick= function(){handler1(this.parentNode.id)};
}else if(ob1.href.indexOf("#harv_ref-")>=0){
ob1.onclick= function(){handler2(this.parentNode.id)};
ok=1;
}else if(ob1.href.indexOf("#cite_note-")>=0){
ob1.onclick= function(){handler3(this.parentNode.id)};
ok=1;
}else if(ob1.href.indexOf("#cite_ref-")>=0){
ob1.onclick= function(){handler4(this.parentNode.id, this.href)};
ok=1;
}
}
//install the portlet
if(ok==1){
var hist; var url;
if (!(hist = document.getElementById('ca-history') )) return;
if (!(url = hist.getElementsByTagName('a')[0] )) return;
if (!(url = url.href )) return;
addPortletLink('p-cactions', 'javascript:HrvHighlight.changeFormat();',
'links', 'ca-harvrefs', 'Change format of harvard references', );
var s=state;
if(s!="") showRefsMode(s);
}
}
}
}//obj
//Script is starting here if (doneOnloadHook) HrvHighlight.onLoad() else addOnloadHook(HrvHighlight.onLoad);