MediaWiki:Common.js

Aus OPwiki

(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Link zu Spezial:Seiten_mit_ungesichteten_Versionen in Navigationsbox anzeigen (für Team-Mitglieder))
K
Zeile 294: Zeile 294:
         var li=document.createElement("li");
         var li=document.createElement("li");
         var a =document.createElement("a")
         var a =document.createElement("a")
-
         a.innerHTML="Ungesichtete Seiten";
+
         a.innerHTML="Änderungen sichten";
         a.href="/wiki/Spezial:Seiten_mit_ungesichteten_Versionen";
         a.href="/wiki/Spezial:Seiten_mit_ungesichteten_Versionen";
         li.appendChild(a);
         li.appendChild(a);
         nav.insertBefore(li, nav.children[3]);
         nav.insertBefore(li, nav.children[3]);
 +
        var lii=document.createElement("li");
 +
        var aa=document.createElement("a")
 +
        aa.innerHTML="Neue Seiten sichten";
 +
        aa.href="/wiki/Spezial:Ungesichtete_Seiten";
 +
        lii.appendChild(aa);
 +
        nav.insertBefore(lii, nav.children[3]);
     }
     }
}
}

Version vom 23:49, 16. Nov. 2013

//<pre>
/* Jedes JavaScript hier wird für alle Benutzer für jede Seite geladen. */
//<pre>
function addonBackgroundSwitcher() {

    var logoimages = new Array();
    logoimages[0] = 'http://de.opwiki.org/images/OPwiki-new-ace.png';
    logoimages[1] = 'http://de.opwiki.org/images/OPwiki-new-aokiji.png';
    logoimages[2] = 'http://de.opwiki.org/images/OPwiki-new-franky.png';
    logoimages[3] = 'http://de.opwiki.org/images/OPwiki-new-sanji.png';
    logoimages[4] = 'http://de.opwiki.org/images/OPwiki-new-zorro.png';
    logoimages[5] = 'http://de.opwiki.org/images/OPwiki-new-lucci.png';
    logoimages[6] = 'http://de.opwiki.org/images/OPwiki-new-mihawk.png';
    logoimages[7] = 'http://de.opwiki.org/images/OPwiki-new-shanks.png';
    logoimages[8] = 'http://de.opwiki.org/images/OPwiki-new-enel.png';
    logoimages[9] = 'http://de.opwiki.org/images/OPwiki-new-moria.png';
    logoimages[10] = 'http://de.opwiki.org/images/OPwiki-new-nami.png';
    logoimages[11] = 'http://de.opwiki.org/images/OPwiki-new-smoker.png';
    logoimages[12] = 'http://de.opwiki.org/images/OPwiki-new-croco.png';
    logoimages[13] = 'http://de.opwiki.org/images/OPwiki-new-ruffy.png';
    logoimages[14] = 'http://de.opwiki.org/images/OPwiki-buggy.png';
    logoimages[15] = 'http://de.opwiki.org/images/OPwiki-chopper.png';
    logoimages[16] = 'http://de.opwiki.org/images/OPwiki-lysop.png';
    logoimages[17] = 'http://de.opwiki.org/images/OPwiki-oz.png';
    logoimages[18] = 'http://de.opwiki.org/images/OPwiki-perona.png';
    logoimages[19] = 'http://de.opwiki.org/images/OPwiki-robin.png';
    logoimages[20] = 'http://de.opwiki.org/images/OPwiki-morgan.png';
    logoimages[21] = 'http://de.opwiki.org/images/OPwiki-vivi.png';

    var currentlogo = Math.floor( Math.random() * logoimages.length );

    //check for IE
    var rslt = navigator.appVersion.match(/MSIE (\d+\.\d+)/, '');

    if(rslt==null){ //not IE
        document.getElementById('p-logo').style.background="url('" + logoimages[currentlogo] + "') no-repeat left top";
        document.getElementById('kidszone').style.background="url('http://de.opwiki.org/Kidszone_Logo_klein.png') no-repeat";
    }
    else{ // IE
        document.getElementById('p-logo').style.background="none";
        document.getElementById('kidszone').style.background="none";
        document.getElementById('p-logo').style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+logoimages[currentlogo]+"', sizingMethod='crop')";
        document.getElementById('kidszone').style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='http://de.opwiki.org/Kidszone_Logo_klein.png', sizingMethod='crop')";
    }

    document.getElementById('p-logo').style.display="inline";
    doneOnloadHook = true;

}

addOnloadHook(addonBackgroundSwitcher);

//for IE to cache background images
try {
  document.execCommand("BackgroundImageCache", false, true);
} catch(err) {}


function horizont_scroll(i)
{
  if(!i){ i=0; doneOnloadHook = true;}
  i=i+1;
  if(i>1601) i=1;
  var val=""+i+"px 0px"
  document.body.style.backgroundPosition=val;
  setTimeout("horizont_scroll("+i+")",100);
}
//addOnloadHook(horizont_scroll);


    /** 
        Toggles the display of elements on a page 
        Author/contact: Austin Che http://openwetware.org/wiki/User:Austin
     */

// indexed array of toggler ids to array of associated toggle operations
// each operation is a two element array, the first being the type, the second a class name or array of elements
// operation types are strings like "_reset" or "" for the default toggle operation
var togglers = new Array();     
var allClasses = new Object(); // associative map of class names to page elements

function toggler(id)
{
    var toBeToggled = togglers[id];
    if (!toBeToggled)
        return;

    // if some element is in list more than once, it will be toggled multiple times
    for (var i = 0; i < toBeToggled.length; i++)
    {
        // get array of elements to operate on
        var toggles = toBeToggled[i][1];
        if (typeof(toggles) == "string")
        {
            if (toggles.charAt(0) == '-')
            {
                // treat as an element ID, not as class
                toggles = document.getElementById(toggles.substring(1));
                if (toggles)
                    toggles = new Array(toggles);
            }
            else
                toggles = allClasses[toggles];
        }
        if (!toggles || !toggles.length)
            continue;

        var op = toBeToggled[i][0]; // what the operation will be

        switch (op)
        {
            case "_reset":
                for (var j in toggles)
                    toggles[j].style.display = toggles[j]._toggle_original_display;
                break;
            case "_show":
                for (var j in toggles)
                    toggles[j].style.display = '';
                break;
            case "_hide":
                for (var j in toggles)
                    toggles[j].style.display = 'none';
                break;
            case "":
            default:
                // Toggle
                for (var j in toggles)
                    toggles[j].style.display = ((toggles[j].style.display == 'none') ? '' : 'none');
                break;
        }
    }
}

function createTogglerLink(toggler, id)
{
    var toggle = document.createElement("a");
    toggle.className = 'toggler-link';
    toggle.setAttribute('id', 'toggler' + id);
    toggle.setAttribute('href', 'javascript:toggler("' + id + '");');
    var child = toggler.firstChild;
    toggler.removeChild(child);
    toggle.appendChild(child);
    toggler.insertBefore(toggle, toggler.firstChild);
}

function toggleInit()
{
    var togglerElems = new Array();
    var toggleGroup = new Array();
        
    // make list of all document classes
    var elems = document.getElementsByTagName("*");
    var numelems = elems.length;
    for (var i = 0; i < elems.length; i++)
    {
        var elem = elems[i];
        if (!elem.className)
            continue;

        elem._toggle_original_display = elem.style.display;
        var togglerID = -1;
        var elemClasses = elem.className.split(' '); // get list of classes
        for (var j = 0; j < elemClasses.length; j++)
        {
            var elemClass = elemClasses[j];
            if (! allClasses[elemClass])
                allClasses[elemClass] = new Array();
            allClasses[elemClass].push(elem);

            // all the special classes begin with _toggle
            if (elemClass.substring(0, 7) != "_toggle")
                continue;

            if (elemClass == "_togglegroup")
                toggleGroup = new Array();
            else if (elemClass == "_toggle")
                toggleGroup.push(elem);
            else if (elemClass.substring(0, 12) == "_toggle_init")
            {
                // set initial value for display (ignore the original CSS set value)
                // understands _toggle_initshow and _toggle_inithide
                var disp = elemClass.substring(12);
                if (disp == "show")
                    elem.style.display = '';
                else if (disp == "hide")
                    elem.style.display = 'none';
                elem._toggle_original_display = disp;
            }
            else if (elemClass.substring(0, 8) == "_toggler")
            {
                if (togglerID == -1)
                {
                    togglerID = togglers.length;
                    togglers[togglerID] = new Array();
                    togglerElems[togglerID] = elem;
                }

                // all classes are of form _toggler_op-CLASS
                // figure out what class we're toggling
                // if none is specified, then we use the current toggle group
                var toBeToggled;
                var hyphen = elemClass.indexOf('-');
                if (hyphen != -1)
                    toBeToggled = elemClass.substring(hyphen+1);
                else
                {
                    toBeToggled = toggleGroup;
                    hyphen = elemClass.length;
                }

                var op = elemClass.substring(8, hyphen);
                togglers[togglerID].push(new Array(op, toBeToggled));
            }
        }
    }

    // add javascript links to all toggler elements
    for (var i = 0; i < togglerElems.length; i++)
        createTogglerLink(togglerElems[i], i);
}

addOnloadHook(toggleInit);

function unToggle()
{    
   var path=window.location.href;
   var parts=path.split("#");
   if(parts.length > 1)
   {
      path=parts[parts.length-1];
      parts=path.split(".23");
      
      var untogglerGroup = new Array();
      var untogglerClass = new Array();
          
      // make list of all document classes
      var elems = document.getElementsByTagName("*");
      var numelems = elems.length;
      for (var c=0; c < parts.length; c++)
      {
        for (var i = 0; i < elems.length; i++)
        {
            var elem = elems[i];
            if (!elem.className)
                continue;
    
            var elemClasses = elem.className.split(' '); // get list of classes
            
            for (var j = 0; j < elemClasses.length; j++)
            {
              var elemClass=elemClasses[j];
              if (elemClass != parts[c])
                  continue;   
              else
              {
                  untogglerGroup.push(elem);
                  untogglerClass.push(elemClass);
              }
            }
         }
      }
  
      // add javascript links to all toggler elements
      for (var i = 0; i < untogglerGroup.length; i++)
      {
          untogglerGroup[i].style.display = '';
      }
   } 
}

addOnloadHook(unToggle);

function autoRedirect()
{
   var re = document.getElementById("bodyContent").getElementsByTagName("div");
   for(var i=0;i<re.length;i++)
   {
       var div = re[i];
       var text = div.innerHTML.replace(/(?:(?:^|\n)\s+|\s+(?:$|\n))/g,'').replace(/\s+/g,' ').substring(0,16);
       if(text=="<ol><li>REDIRECT")
       {
           window.location.href = div.getElementsByTagName("a")[0].href;
       }
   }
}

addOnloadHook(autoRedirect);

function addFlagged2Nav()
{
    if(wgUserGroups.indexOf("team")!= -1)
    {
        var nav= document.getElementById("p-navigation").children[1].children[0];
        var li=document.createElement("li");
        var a =document.createElement("a")
        a.innerHTML="Änderungen sichten";
        a.href="/wiki/Spezial:Seiten_mit_ungesichteten_Versionen";
        li.appendChild(a);
        nav.insertBefore(li, nav.children[3]);
        var lii=document.createElement("li");
        var aa=document.createElement("a")
        aa.innerHTML="Neue Seiten sichten";
        aa.href="/wiki/Spezial:Ungesichtete_Seiten";
        lii.appendChild(aa);
        nav.insertBefore(lii, nav.children[3]);
    }
}
addOnloadHook(addFlagged2Nav);

/* Cookies
Wird das Wiki von Tablet oder Smartphone besucht, erfolgt auf Wunsch eine Umleitung zur mobilen Version.
Die Entscheidung des Benutzers soll dann für die Zukunft in einem Cookie gespeichert werden.
*/
function setCookie(c_name,value,exdays)
{
   var exdate=new Date();
   exdate.setDate(exdate.getDate() + exdays);
   var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
   document.cookie=c_name + "=" + c_value;
}

function getCookie(c_name)
{
   var c_value = document.cookie;
   var c_start = c_value.indexOf(" " + c_name + "=");
   if (c_start == -1)
   {
      c_start = c_value.indexOf(c_name + "=");
   }
   if (c_start == -1)
   {
      c_value = null;
   }
   else
   {
      c_start = c_value.indexOf("=", c_start) + 1;
      var c_end = c_value.indexOf(";", c_start);
      if (c_end == -1)
      {
         c_end = c_value.length;
      }
      c_value = unescape(c_value.substring(c_start,c_end));
   }
   return c_value;
}


//</pre>
Persönliche Werkzeuge
Nakama
Toplists
  • AnimeManga Charts