Difference between revisions of "MediaWiki:Common.js"

From The Viking Age Compendium
Jump to: navigation, search
(Created page with "Any JavaScript here will be loaded for all users on every page load.: //Scripts for supporting extension http://www.mediawiki.org/wiki/Extension:HarvardReferences var H...")
 
(Replaced content with "Any JavaScript here will be loaded for all users on every page load.: importScript('HarvardReferences.js')")
Line 1: Line 1:
 
/* Any JavaScript here will be loaded for all users on every page load. */
 
/* Any JavaScript here will be loaded for all users on every page load. */
  
//Scripts for supporting extension http://www.mediawiki.org/wiki/Extension:HarvardReferences
+
importScript('HarvardReferences.js')
 
+
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);
+

Revision as of 18:43, 8 August 2012

/* Any JavaScript here will be loaded for all users on every page load. */

importScript('HarvardReferences.js')