From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.

importScript('User:AzaToth/twinkle.js');



importScript('User:Alex_Smotrov/qpreview.js');



importScript('User:Alex Smotrov/histcomb.js');



importScript('User:TheFearow/qstring.js');



// <nowiki>If you are editing a page, click the wikify button on your tab bar to add "{{Wikify|{{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}}}}" to the top, set "Marked for wikification" as the edit summary, mark it as a minor edit, and submit.</nowiki>



function doQwikify() {

  document.editform.wpTextbox1.value = '{' + '{' + 'Wikify|date=' + '{' + '{' + 'subst:CURRENTMONTHNAME}} ' + '{' + '{' + 'subst:CURRENTYEAR}}}}\n\n' + document.editform.wpTextbox1.value;

  document.editform.wpSummary.value = 'Marked for wikification';

  document.editform.wpMinoredit.checked = true;

  document.editform.submit();

}



$(function() {

  if (wgCanonicalNamespace == "User" || wgCanonicalNamespace == "User_talk") {

     // wouldn't it make more sense to just check for wgCanonicalNamespace != "", or am I missing something?

     return;

  }

  if (document.editform) {

     mw.util.addPortletLink("p-cactions", "javascript:doQwikify()", "wikify", "ca-wikify", "Mark for wikification", "");

  }

});



// by [[User:Raylu|raylu]]

// 



//Please leave the following line

//[[user:Where/easy db]], maintained by [[User:MER-C]]

//Start db script

 

$(function()

{

  //check if called from deletion request

  if (document.title.indexOf("Editing ") != -1)

  {

    if (document.URL.lastIndexOf("&fakeaction=huff") == -1)

      return;

    // does the page exist?

    if (wgCurRevisionId == false)

    {

      alert("The page has already been deleted.");

      return;

    }

    if (document.URL.lastIndexOf("&reason=off") != -1)

    {

      var type = prompt("Enter criteria for speedy deletion, e.g. A1, G3");

      if (type == null)

        return;

      var f = document.editform, t = f.wpTextbox1;

      t.value = "{" + "{db-" + type.toLowerCase() + "}}\n" + t.value;

      f.wpSummary.value = "JS: Requesting speedy deletion ([[WP:CSD#" + type + "|CSD " + type.toUpperCase() + "]])";

      f.wpSave.click();

      return;

    }

    else if (document.URL.lastIndexOf("&reason=on") != -1)

    {

      var type = prompt("Enter reason for speedy deletion");

      if (type == null)

        return;

      var f = document.editform, t = f.wpTextbox1;

      t.value = "{" + "{db|" + type + "}}\n" + t.value;

      f.wpSummary.value = "JS: Requesting speedy deletion";

      f.wpSave.click();

      return;

    }

  }

  if (wgCanonicalNamespace == "Special")

    return;

 

  mw.util.addPortletLink("p-cactions", "javascript:easyDb(0)", "db (csd)", "ca-db0", "Request speedy deletion according to WP:CSD", "");

  mw.util.addPortletLink("p-cactions", "javascript:easyDb(1)", "db (reason)", "ca-db1", "Request speedy deletion with reason", "");

});

 

function easyDb(n)

{

  var title = wgPageName.replace("&", "%26").replace("+", "%2B");

  if (n == 0)

    location.assign("/?&action=edit&fakeaction=huff&reason=off&title=" + title);

 

  if (n == 1)

    location.assign("/?&action=edit&fakeaction=huff&reason=on&title=" + title);

}

 

 

//End db script

//





//This script ([[User:ais523/highlightmyname2.js]]) highlights all instances of the

//logged-in user's username on pages by giving them a bright red background. It only

//checks bodyContent, not titles or sidebars, and doesn't change edit windows or

//Special:Preferences.

 

//<nowiki><pre>

function highlightmyname(n,p) //node, parent node

{

  while(n!=null)

  {

    if(n.nodeType==3) //text node

    {

      if(n.data.toLowerCase().indexOf(wgUserName.toLowerCase())!=-1)

      {

        var ix=n.data.toLowerCase().indexOf(wgUserName.toLowerCase());

        var t1=ix?document.createTextNode(n.data.substr(0,ix)):null;

        var t2=document.createTextNode(n.data.substr(ix,wgUserName.length));

        var t3=ix+wgUserName.length==n.data.length?null:

          document.createTextNode(n.data.substr(ix+wgUserName.length));

        var s1=document.createElement("SPAN");

        s1.style.backgroundColor="Silver";

        s1.appendChild(t2);

        var s2=document.createElement("SPAN");

        if(t1!=null) s2.appendChild(t1);

        s2.appendChild(s1);

        if(t3!=null) s2.appendChild(t3);

        p.replaceChild(s2,n);

        if(t3!=null) highlightmyname(t3,s2); //find remaining occurences in the new nodes

        n=s2.nextSibling;

      }

      else

        n=n.nextSibling;

    }

    else

    {

      if(n.firstChild!=null) highlightmyname(n.firstChild,n);

      n=n.nextSibling;

    }

  }

}

 

$(function() {

  if(location.href.indexOf("?ais523")==-1&&location.href.indexOf("&ais523")==-1&&

     location.href.indexOf("?action=edit")==-1&&location.href.indexOf("?action=submit")==-1&&

     location.href.indexOf("&action=edit")==-1&&location.href.indexOf("&action=submit")==-1&&

     location.href.indexOf("&action=raw")==-1&&wgPageName!="Special:Preferences")

    highlightmyname(document.getElementById('bodyContent').firstChild,

                    document.getElementById('bodyContent'));

});

//</pre></nowiki>

//[[Category:Wikipedia scripts]]



// [[User:Dschwen/highlightredirects.js]] - please include this line 

document.write('<script type="text/javascript" src="' 

             + 'http://en.wikipedia.org/?title=User:Dschwen/highlightredirects.js' 

             + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');



/* Watchlist notifier ([[User:Ais523/watchlistnotifier.js]]); displays a message every time a watched page changes. */

//<pre><nowiki>

 

var wmwpajax;

// From [[WP:US]] mainpage (wpajax renamed to wmwpajax)

wmwpajax={

        download:function(bundle) {

                // mandatory: bundle.url

                // optional:  bundle.onSuccess (xmlhttprequest, bundle)

                // optional:  bundle.onFailure (xmlhttprequest, bundle)

                // optional:  bundle.otherStuff OK too, passed to onSuccess and onFailure

 

                var x = window.XMLHttpRequest ? new XMLHttpRequest()

                : window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP")

                : false;

 

                if (x) {

                        x.onreadystatechange=function() {

                                x.readyState==4 && wmwpajax.downloadComplete(x,bundle);

                        };

                        x.open("GET",bundle.url,true);

                        x.send(null); 

                }

                return x;

        },

 

        downloadComplete:function(x,bundle) {

                x.status==200 && ( bundle.onSuccess && bundle.onSuccess(x,bundle) || true )

                || ( bundle.onFailure && bundle.onFailure(x,bundle) || alert(x.statusText+': '+bundle.url));

        }

};

 

// Example:

// function dlComplete(xmlreq, data) {

//      alert(data.message + xmlreq.responseText);

// }

//  wmwpajax.download({url:'http://en.wikipedia.org/?title=Thresher&action=raw', 

//                   onSuccess: dlComplete, message: "Here's what we got:\n\n" });

 

// End of [[WP:US]] quote

 

function wmWatchEditFound(xmlreq, data) {

  var watchrev, watchsum, watchrevold, watchpage, junk;

  if(xmlreq.responseText.indexOf('revid=')==-1)

  {

    document.getElementById('contentSub').innerHTML+=

      "<div class='watchlistnotify'>(<i>watchlistnotifier can't determine whether a "+

      "watched page has changed<i>)</div>";

    return;

  }

  watchrev=xmlreq.responseText.split('revid="')[1].split('"')[0];

  try

  {

    watchrevold=document.cookie.split('ais523wmwatchrev=')[1].split('.')[0];

  }

  catch(junk) {watchrevold=0;}

  if(wgPageName == "Special:Watchlist")

  {

    document.cookie="ais523wmwatchrev="+watchrev+".; path=/";

    var aas=document.getElementById('bodyContent').getElementsByTagName('a');

    var i=aas.length;

    while(i--)

    {

      if(aasi].href.indexOf('diff=')!=-1&&watchrevold)

        if(+(aasi].href.split('diff=')[1].split('&')[0])>watchrevold)

          aasi].parentNode.style.fontWeight='bold';

    }

  }

  else

  {

    watchsum=xmlreq.responseText.split('comment="')[1].split('"')[0];

    watchpage=xmlreq.responseText.split('title="')[1].split('"')[0];

    watchsum=watchsum.split('<').join('&lt;').split('>').join('&gt;');

    watchpage=watchpage.split('<').join('&lt;').split('>').join('&gt;');

    if(watchrev!=watchrevold)

      document.getElementById('contentSub').innerHTML+=

        "<div class='watchlistnotify'>\""+watchpage+'" changed: "'+watchsum+

        '". (<a href="/wiki/Special:Watchlist">watchlist</a>)</div>';

  }

}

 

$(function() {

  /* Find the top item in the watchlist, and its edit summary. We only need one item, so

     set the limit to 1 to ease the load on the server. */

    wmwpajax.download({url:'http://en.wikipedia.org/w/api.php?action=query&list=watchlist&wllimit=1&'+

      'wldir=older&format=xml&wlprop=comment|ids|title', onSuccess: wmWatchEditFound});

});

// </nowiki></pre>

// [[Category:Wikipedia scripts]]

 

function doAddQuickPreview() {

  if ((wgAction != "edit") && (wgAction != "submit")) return;

  var qbutton = document.getElementById("wpPreview").cloneNode(false);

  qbutton.value = "Quick preview";

  qbutton.type="button";

  qbutton.tabindex="6"; 

  qbutton.accessKey="g";

  qbutton.id="dlQuickPreview";

  qbutton.title="Preview your changes";

  qbutton.addEventListener("click", doQuickPreview, false); 

  document.getElementById("wpPreview").parentNode.insertBefore(qbutton,document.getElementById("wpDiff"));

}

 

 

function doQuickPreview() {

  var bt = document.getElementById("dlQuickPreview");

  document.getElementById("contentSub").innerHTML = "Getting preview";

  bt.value="Getting preview";

  bt.disabled=true;

  var form = document.editform;

  var postData = {

    'wpMinoredit': form.wpMinoredit.checked, 

    'wpWatchthis': form.wpWatchthis.checked,

    'wpStarttime': form.wpStarttime.value,

    'wpEdittime': form.wpEdittime.value,

    'wpAutoSummary': form.wpAutoSummary.value,

    'wpEditToken': form.wpEditToken.value,

    'wpSummary': "Quick preview",

    'wpTextbox1': document.editform.wpTextbox1.value  

  };

 

  var addr = document.URL;

  addr = addr.replace("&action=edit", "&action=submit");

  addr += "&wpPreview=true&live=true";

 

  var qwxmlhttp = sajax_init_object(null);

  qwxmlhttp.overrideMimeType('text/xml');

  qwxmlhttp.open( 'POST' , addr, true);

  qwxmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');

  qwxmlhttp.onload = function() { 

  document.getElementById("wikiPreview").innerHTML =   unescape(qwxmlhttp.responseText.replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&amp;/g,"&").replace(/&quot;/g,'"'));

  bt.disabled=false;

  bt.value = "Quick preview";

  document.getElementById("contentSub").innerHTML = "";

  }

  qwxmlhttp.send(QueryString.create(postData));

}



/*<pre>*/

 

/* * * * * * * * * * * * * * * * * *

 * MediaWiki QuickEdit 2 by ASM

 * Version: Apr 2008

 * * * * * * * * * * * * * * * * * *

 *

 * Translate QuickEdit into your language:

 * [[:de:Benutzer:ASM/quickedit-lang.js]]

 *

 *            How to use

 *

 * Insert into your monobook.js:

 *

   document.write('<script src="'

   + 'http://de.wikipedia.org/?title=Benutzer:ASM/quickedit.js'

   + '&action=raw&ctype=text/javascript"></script>');

 *

 * - - - Please DO NOT copy this script (in order to use it) - - -

 * -> if you have any suggestions, bugs etc. please contact me

 *

 * This script uses the following external scripts:

 *  • diff.js by Cacycle - [[:en:User:Cacycle/diff.js]]

 *  • SearchBox.js by Zocky - [[:en:User:Zocky/SearchBox.js]]

 *

 * You can use these variables to customize QuickEdit:

 *

 * var qeEnabled          = true;     // Activate Script?

 * var qeEnableSection0   = true;     // Enable QuickEdit link for section 0 (introduction)?

 * var qeEnableAccessKeys = true;     // Activate access keys?

 * var qeTextboxHeight    = 20;       // Height of the textbox

 * var qeSignature        = '--~~~~'; // Signature (use '' to hide signature tab)

 *

 * * * * * * * * * * * * * * * * * */

 

 

/////////// Einstellungen ///////////

 

if (typeof(qeEnabled) == 'undefined')          qeEnabled          = true;

if (typeof(qeEnableSection0) == 'undefined')   qeEnableSection0   = true;

if (typeof(qeTextboxHeight) == 'undefined')    qeTextboxHeight    = 20;

if (typeof(qeEnableAccessKeys) == 'undefined') qeEnableAccessKeys = true;

 

if (typeof(qeSignature) == 'undefined')        qeSignature        = '--~~~~';

 

if (typeof(qeShowErrors) == 'undefined')       qeShowErrors       = false;

 

//////// Ende Einstellungen ////////

 

// version

var qeVersion = '2.3-2498';

 

// qeMode constants

var MODE_QUICKEDIT = 0;

var MODE_PREVIEW   = 1;

var MODE_DIFF      = 2;

var MODE_PREF      = 3;

 

// qeRequestState constants

var REQ_IDLE       = 0;

var REQ_RECEIVE    = 1;

var REQ_SUBMIT     = 2;

 

// only initialize once

var qeIsInit = false;

 

// 2D-Array mit allen Sections und den jeweiligen Unterknoten

var qeSections = new Array();

 

// Aktuell bearbeitete Section

var qeEdit = -1;

 

// Aktueller Modus

var qeMode = MODE_QUICKEDIT;

 

// Aktuell im Vorschau-Modus?

var qePreviewDisabled = false;

 

// preferences mode

var qePref = null;

 

// Link zum Bearbeiten der Abschnitte

var qeEditLink = false;

 

// Knoten

var qeParent  = false;

var qeForm    = false;

var qePreview = false;

var qeDiff    = false;

var qeToolbar = false;

 

var qeOriginalText = null;

 

// Form action

var qeFormAction = false;

 

// XmlHttpRequest

var qeRequest = false;

 

// request state

var qeRequestState = REQ_IDLE;

 

// ondblclick

var qeOnDoubleClick = null;

 

// special chars sticky?

var qeStickyMode = false;

 

// scroll mode?

var qeScrollMode = true;

var qeTextboxHeightPixel = false;

 

////// Start Script //////

 

qeInitTimer = null;

qeTries     = 0;

$(qeInitTimeout);

 

// init wrapper

function qeInitTimeout()

{

   if (!qeInitTimer) qeInitTimer = window.setInterval(qeInitTimeout, 500);

 

   var ex = true;

   if (!qeEnabled || qeIsInit) ex = false;                                  // check init

   if (ex && !document.getElementById('ca-edit')) ex = false;               // check editable

   if (ex && document.location.search.indexOf('printable=yes') != -1) ex = false; // printable

   if (ex && qeTries > 10) ex = false;

   if (!ex) { window.clearInterval(qeInitTimer); return; } // abort if anything was false

 

   qeTries++;

 

   if (typeof(qeLanguages) != 'undefined') // then we can init QuickEdit

   {

      window.clearInterval(qeInitTimer);

      qeInit();

   }

}

 

function qeInit()

{

   if (!qeEnabled || qeIsInit) return;

   qeIsInit = true;

 

   // check if page is editable

   if (!document.getElementById('ca-edit')) return;

 

   // check if page is print page

   if (document.location.search.indexOf('printable=yes') != -1) return;

 

   // check if action is view or purge

   if (match = /[?&]action=([a-z]+)/.exec(window.location.href))

      if (match1 != 'view' && match1 != 'purge')

         return;

 

   qeSetLang();

 

   if (!qeInitAjax()) return;

 

   try { qeLoadExternalScripts(); } catch (e) {}

 

   qeChangeSectionLinks();

}

 

function qeLoadExternalScripts()

{

   // load Cacycle's diff script if not loaded

   if (typeof(WDiffString) != 'function') ImportScriptPlain(qeResource('diff'));

 

   // load search script

   ImportScriptPlain(qeResource('search'));

 

   // load stylesheet

   ImportCSS(qeResource('style'));

}

 

// wrapper functions for ImportScriptEx

function ImportScriptPlain(script) { ImportScriptEx(script, false); }

function ImportCSS(css) { ImportScriptEx(css, true); }

 

function ImportScriptEx(script, css)

{

   var head = document.getElementsByTagName('head')[0];

 

   var link = document.createElement(css?'link':'script');

   link.setAttribute('charset',        'utf-8');

   link.setAttribute('type',           css?'text/css':'text/javascript');

   link.setAttribute(css?'href':'src', script);

 

   if (css) link.setAttribute('rel', 'stylesheet');

 

   head.appendChild(link);

}

 

function qeContentSub(text)

{

   var cs = document.getElementById('contentSub');

   if (cs.innerHTML)

      cs.innerHTML += ' - ' + text;

   else

      cs.innerHTML = text;

}

 

function qeShowError(err)

{

   if (qeShowErrors) qeContentSub(qePhrase('quickedit') + ' ' + qePhrase('error') + ': ' + err);

}

 

function qeAlert(err)

{

   alert(qePhrase('quickedit') + ' ' + qePhrase('error') + ': ' + err);

}

 

function qeGetElementsByClassName(tagname, classname)

{

   var ret = new Array();

   var tags = document.getElementsByTagName(tagname);

   for (i = 0; i < tags.length; i++)

      if (tagsi].className == classname)

         ret.push(tagsi]);

 

   return ret;

}

 

function qeChangeSectionLinks()

{

   qeEditLink = document.getElementById('ca-edit').firstChild.href + '&section=';

 

   // get all sections

   var sections = qeGetElementsByClassName('span', 'editsection');

   var jumptonav = document.getElementById('jump-to-nav');

 

   // Hauptabschnitt

   if (qeEnableSection0)

   {

      var heading = qeGetElementsByClassName('h1', 'firstHeading')[0];

 

   if (!heading || !jumptonav)

      qeShowError('Section 0 nicht gefunden.');

   else

   {

 

      // id verpassen

      heading.id = 'section-0';

 

      // Knoten ins Array packen

      qeSections0 = new Array();

 

      var nosections = (sections.length == 0);

 

      var node = jumptonav.nextSibling;

      while (node != null && node.className != 'editsection'

             && node.className != 'printfooter' && (nosections|| !/^H[1-6]$/.test(node.nodeName)))

      {

         if (node.nodeType == 1 && node.nodeName != 'SCRIPT') // avoid displaying in-<body> scripts

            qeSections0].push(node);

         node = node.nextSibling;

      }

 

      // Link hinzufügen

      var newspan = document.createElement('span');

      newspan.style.fontSize   = '8pt';

      newspan.style.marginLeft = '10px';

      newspan.dir              = 'ltr';

 

      newspan.appendChild(document.createTextNode('['));

 

      var newlink   = document.createElement('a');

      newlink.href  = 'javascript:qeEditSection(0)';

      newlink.id    = 'sectionlink-0';

      newlink.className = 'sectionlink';

      newlink.appendChild(document.createTextNode(qePhrase('quickedit')));

      newspan.appendChild(newlink);

 

      newspan.appendChild(document.createTextNode(']'));

 

//    not appended to heading anymore

//    heading.appendChild(newspan);

 

      var cs = document.getElementById('contentSub');

      cs.style.display = 'block';

      cs.appendChild(newspan);

 

   }

   } // qeEnableSection0

 

 

   // Abschnitte

   for (i = 0; i < sections.length; i++)

   {

      // Section-Link suchen

      var link = sectionsi].childNodes1].href;

 

      var section = null, match = null;

 

      if (match = /section=([0-9]+)/.exec(link))

         var section = +match1];

      else break;

      if (!section) continue;

 

      sectionsi].style.fontSize = '8pt';

 

      // QuickEdit-Link erstellen

      var newnode = document.createElement('a');

      newnode.href  = 'javascript:qeEditSection(' + section + ')';

      newnode.title = 'QuickEdit Section ' + section;

      newnode.id    = 'sectionlink-' + section;

      newnode.className = 'sectionlink';

      newnode.appendChild(document.createTextNode(qePhrase('quickedit')));

 

      var where = sectionsi].childNodes2];

      sectionsi].insertBefore(document.createTextNode('/'), where);

      sectionsi].insertBefore(newnode, where);

      ////

 

      // dem div eine ID verpassen

      sectionsi].id = 'editsection-' + section;

 

      // zugehörige hX Überschrift suchen

      var hx = sectionsi].parentNode;

      hx.id = 'section-' + section;

      ////

 

      // alle zu dieser Section gehörigen Knoten suchen und ins Array packen

      qeSectionssection = new Array();

 

      var node = hx.nextSibling;

      while (node != null && node.className != 'editsection'

             && node.className != 'printfooter' && !/^H[1-6]$/.test(node.nodeName))

      {

         if (node.nodeType == 1)

            qeSectionssection].push(node);

 

         node = node.nextSibling;

      }

   }

}

 

function qeEditSection(section)

{

   if (qeRequestState || !qeEditLink) return;

 

   section = parseInt(section);

 

   // es wird bereits ein Abschnitt bearbeitet

   // wenn es der aktuelle ist -> Bearbeiten abbrechen, sonst nichts tun

   if (qeEdit != -1)

   {

      if (qeEdit == section) qeAbortEdit();

      return;

   }

 

   qeEdit = section;

 

   // save body.ondblclick

   if (document.getElementsByTagName('body')[0].getAttribute('ondblclick'))

   {

      qeOnDoubleClick = document.getElementsByTagName('body')[0].getAttribute('ondblclick');

      document.getElementsByTagName('body')[0].setAttribute('ondblclick', null);

   }

 

   // Inhalt des Abschnitts ausblenden

   var nodes = qeSectionssection];

   for (i = 0; i < nodes.length; i++)

      nodesi].style.display = 'none';

   ////

 

   // andere Links ändern

   var links = qeGetElementsByClassName('a', 'sectionlink');

   for (i = 0; i < links.length; i++)

   {

      if (i == 0) linksi].parentNode.style.display = 'none';

 

      if (linksi].id != 'sectionlink-' + qeEdit)

         linksi].style.color = '#bfbfbf';

   }

 

   // Form anzeigen

   qeMakeForm();

 

   var hx = document.getElementById('section-' + section);

   hx.parentNode.insertBefore(qeParent, hx.nextSibling);

 

   qeForm.firstChild.childNodes4].value = qePhrase('loading') + '...';

   ////

 

   // save textboxheight

   if (!qeTextboxHeightPixel)

      qeTextboxHeightPixel = qeGetStyle(document.getElementById('wpTextbox1'), 'height') ||

         Math.Round(qeTextboxHeight * 16.8) + 'px';

 

   // make sure the QuickEdit tab is activated and toolbar is hidden

   qeSwitch(0);

   qeSetToolbar(0);

 

   qeGetSection();

}

 

 

function qeAbortEdit()

{

   if (qeEdit == -1 || qeRequestState) return;

 

   // Inhalt des Abschnitts wieder einblenden

   var nodes = qeSectionsqeEdit];

   for (i = 0; i < nodes.length; i++)

      nodesi].style.display = is_gecko?null:'block';

 

   var links = qeGetElementsByClassName('a', 'sectionlink');

   for (i = 0; i < links.length; i++)

   {

      if (i == 0) linksi].parentNode.style.display = 'inline';

 

      if (linksi].id != 'sectionlink-' + qeEdit)

         linksi].style.color = null;

   }

 

   // make sure cancel link does not look hovered anymore

   qeTabMouseOverOut(document.getElementById('qeTabCancel'), 1);

 

   qeParent.parentNode.removeChild(qeParent);

   qeForm.firstChild.childNodes4].value = '';

 

   qeEdit = -1;

   // qeRequest.abort();

 

   qeRequestState = REQ_IDLE;

 

   qeOriginalText = null;

 

   // restore body.ondblclick

   if (qeOnDoubleClick)

      document.getElementsByTagName('body')[0].setAttribute('ondblclick', qeOnDoubleClick);

}

 

function qeMakeForm()

{

   if (qeForm) return;

 

   if (qeSections.length == 1) qeTextboxHeight += 5; // higher textbox for the main section only

 

   // create parent div

   qeParent = document.createElement('div');

   qeParent.style.clear  = 'both';

 

   // create tabs [CSS]

   var ul = document.createElement('ul');

   ul.className          = 'qeTabs';

 

   var li1 = document.createElement('li');

 

   var a = document.createElement('a');

   a.href                 = 'javascript:qeSwitch(0)';

   a.style.textDecoration = 'none';

   a.style.padding        = '0 8px';

   a.appendChild(document.createTextNode(qePhrase('quickedit')));

   li1.appendChild(a);

 

   // [CSS]

   li1.id                 = 'qeTabEdit';

   li1.title              = qePhrase('tQuickEdit');

   li1.className          = 'qeTabs';

   li1.setAttribute('onmouseover', 'qeTabMouseOverOut(this, 0)');

   li1.setAttribute('onmouseout',  'qeTabMouseOverOut(this, 1)');

 

   var li2 = li1.cloneNode(true);

   li2.id = 'qeTabPreview';

   li2.title = qePhrase('tLivePrev');

   li2.firstChild.href = 'javascript:qeSwitch(1)';

   li2.firstChild.firstChild.nodeValue = qePhrase('liveprev');

 

   // make li1 look selected

   li1.style.borderColor  = '#888';

   li1.style.borderBottom = 'none';

   li1.style.fontWeight   = 'bold';

   li1.style.zIndex       = '3';

 

   // tab 2a - diff mode

   var li2a = li2.cloneNode(true);

   li2a.id                = 'qeTabDiff';

   li2a.title             = qePhrase('tDiff');

   li2a.firstChild.href   = 'javascript:qeSwitch(2)';

   li2a.firstChild.firstChild.nodeValue = qePhrase('diff');

 

   // tab 3

   var li4 = li2.cloneNode(true);

   li4.id                 = 'qeTabSubmit';

   li4.style.marginLeft   = '16px';

   li4.title              = qePhrase('tSubmit');

   li4.firstChild.href    = 'javascript:qeSubmit(0)';

   li4.firstChild.firstChild.nodeValue = qePhrase('submit');

 

   // tab 4

   var li5 = li2.cloneNode(true);

   li5.id                 = 'qeTabRealPreview';

   li5.title              = qePhrase('tPreview');

   li5.firstChild.href    = 'javascript:qeSubmit(1)';

   li5.firstChild.firstChild.nodeValue = qePhrase('preview');

 

   // tab 5

   var li6 = li2.cloneNode(true);

   li6.id                 = 'qeTabCancel';

   li6.title              = qePhrase('tCancel');

   li6.firstChild.href    = 'javascript:qeAbortEdit()';

   li6.firstChild.firstChild.nodeValue = qePhrase('cancel');

 

   var li8 = li2.cloneNode(true);

   li8.id                 = 'qeTabSig';

   li8.title              = qePhrase('tSig');

   li8.style.marginLeft   = '16px';

   li8.firstChild.href    = 'javascript:qeAddSignature()';

   li8.firstChild.firstChild.nodeValue = qePhrase('sig');

 

   if (qeEnableAccessKeys)

   {

      li1.firstChild.accessKey = 'e'; // quickedit

      li2.firstChild.accessKey = 'p'; // live prev

      li2a.firstChild.accessKey= 'v'; // diff

      li4.firstChild.accessKey = 's'; // submit

      li6.firstChild.accessKey = 'a'; // cancel

      li8.firstChild.accessKey = 'f'; // sig

   }

 

   // [CSS]

   var li3 = document.createElement('li');

   li3.className         = 'qeTabsVersion';

   li3.title             = 'MediaWiki QuickEdit ' + qeVersion;

   var version = qePhrase('header') + ' ' + qeVersion.substr(0, qeVersion.indexOf('-'));

   li3.appendChild(document.createTextNode(version));

 

   if (qeLanguagesqeLang-1][0 != wgUserLanguage)

   {

      var a = document.createElement('a');

      a.href             = 'http://de.wikipedia.org/wiki/Benutzer:ASM/quickedit-lang.js';

      a.style.marginLeft = '3px';

      a.style.color      = '#aaa';

      a.appendChild(document.createTextNode('Add your translation!'));

      li3.appendChild(a);

   }

 

   // options tab

   var li7 = li2.cloneNode(true);

   li7.id                 = 'qeTabPref';

   li7.title              = qePhrase('pref');

   li7.style.marginLeft   = '16px';

   li7.firstChild.href    = 'javascript:qePreferences()';

   li7.firstChild.firstChild.nodeValue = qePhrase('pref');

 

   ul.appendChild(li3);

   ul.appendChild(li1);

   ul.appendChild(li2);

   ul.appendChild(li2a);

 

   ul.appendChild(li4);

   ul.appendChild(li5);

   ul.appendChild(li6);

 

   if (qeSignature) ul.appendChild(li8); // sig tab

 

// ul.appendChild(li7); new feature: wip. temporarily disabled

 

   qeParent.appendChild(ul);

 

   // create frame div [CSS]

   var framediv = document.createElement('div');

   framediv.id             = 'framediv';

   qeParent.appendChild(framediv);

 

   // create form

   qeForm = document.createElement('form');

   qeForm.method = 'post';

   qeForm.onsubmit = qeSubmitByReturn;

 

   // create preview div [CSS]

   qePreview = document.createElement('div');

   qePreview.id             = 'qePreview';

   qePreview.style.display  = 'none';

   qePreview.style.overflow = qeScrollMode ? 'scroll':'hidden';

   qePreview.style.backgroundColor = qeGetBGColor();

 

   // create diff div [CSS]

   qeDiff = document.createElement('div');

   qeDiff.id             = 'qeDiff';

   qeDiff.style.display  = 'none';

 

   // preview message

   var div = document.createElement('div');

   div.style.padding   = '100px 0';

   div.style.textAlign = 'center';

   div.style.color     = '#aaa';

   div.style.cursor    = 'default';

   div.appendChild(document.createTextNode(qePhrase('loadprev') + '...'));

   qePreview.appendChild(div);

 

   framediv.appendChild(qeDiff);

   framediv.appendChild(qePreview);

   framediv.appendChild(qeForm);

 

////

 

   // add form div

   qeForm.appendChild(document.createElement('div'));

 

   var elements = new Array(

     //         subject     type      name

     new Array('input',    'hidden', 'wpSection'),

     new Array('input',    'hidden', 'wpStarttime'),

     new Array('input',    'hidden', 'wpEdittime'),

     new Array('input',    'hidden', 'wpSummary'),

     new Array('textarea',           'wpTextbox1'),

     new Array('input',    'hidden', 'wpEditToken'),

     new Array('input',    'hidden', 'wpAutoSummary')

   );

 

   for (i = 0; i < elements.length; i++)

   {

      var e = elementsi];

      var newnode = document.createElement(e0]);

 

      if (e0 == 'input')

      {

         newnode.type = e1];

         newnode.name = e2];

      }

 

      else if (e0 == 'textarea')

      {

         newnode.id = e1];

         newnode.name = e1];

         newnode.appendChild(document.createTextNode(''));

         newnode.rows = qeTextboxHeight;

         newnode.style.width = '99%';

         newnode.style.border = '1px solid #ddd';

      }

 

      qeForm.firstChild.appendChild(newnode);

   }

 

   if (qeEnableAccessKeys) qeForm.firstChild.childNodes4].accessKey = ',';

   qeForm.firstChild.childNodes4].tabIndex = 1;

 

// the toolbar

   qeToolbar = document.createElement('div');

   qeToolbar.id            = 'qeToolbar';

   qeToolbar.style.display = 'block';

   qeToolbar.style.minHeight='5px';

 

   // close button [CSS]

   var img = document.createElement('img');

   img.id                  = 'qeClose';

   img.title               = qePhrase('close');

   img.src                 = qeResource('x');

   img.setAttribute('onclick', 'qeSetToolbar(0)');

 

   // search box

   var search = document.createElement('div');

   search.id                 = 'qeSearch';

   search.style.marginTop    = '0.4em';

   search.style.marginBottom = '0.4em';

 

   qeCreateSearchBox(search);

 

   // special chars

   var chars = document.createElement('div');

   chars.id  = 'specialchars-container';

   chars.style.overflow     = 'hidden';

   chars.style.marginBottom = '0.2em';

 

   qeToolbar.appendChild(img);

   qeToolbar.appendChild(search);

   qeToolbar.appendChild(chars);

   qeForm.appendChild(qeToolbar);

 

   // create bottom bar

   newnode = document.createElement('div');

   newnode.style.paddingTop= '5px';

   newnode.style.borderTop = '1px dotted #aaa';

 

   // mini toolbar (lower right corner)

   var span = document.createElement('span');

   span.style.cssFloat     = 'right';

   span.style.verticalAlign= 'middle';

   span.style.marginTop    = '0.2em';

 

   // search box icon [CSS]

   var img = document.createElement('img');

   img.id                  = 'icon-search';

   img.src                 = qeResource('searchbox');

   img.title               = qePhrase('searchbox');

   img.setAttribute('onclick', 'qeSetToolbar(1)');

   span.appendChild(img);

 

   // special chars icon

   var img = img.cloneNode(false);

   img.id                  = 'icon-specialchars';

   img.src                 = qeResource('chars');

   img.title               = qePhrase('chars');

   img.style.borderLeft    = '1px solid #ccc';

   img.setAttribute('onclick', 'qeSetToolbar(2)');

   span.appendChild(img);

 

   // scroll icon

   var img = img.cloneNode(false);

   img.src                 = null;

   img.title               = null;

   img.id                  = 'icon-scroll';

   img.style.display       = 'none'; // hidden by default (only visible in preview mode)

   img.setAttribute('onclick', 'qeToggleScroll()');

   span.appendChild(img);

 

   newnode.appendChild(span);

 

// Speichern

   var c = document.createElement('a');

   c.href         = 'javascript:qeSubmit(0)';

   c.title        = qePhrase('tSubmit');

   c.style.cursor = 'pointer';

   c.appendChild(document.createTextNode(qePhrase('submit')));

   newnode.appendChild(c);

 

// Vorschau

   newnode.appendChild(document.createTextNode(' '));

 

   c = document.createElement('a');

   c.href             = 'javascript:qeSubmit(1)';

   c.title            = qePhrase('tPreview');

   c.style.marginLeft = '5px';

   c.style.cursor     = 'pointer';

   c.appendChild(document.createTextNode(qePhrase('preview')));

   newnode.appendChild(c);

 

// Zusammenfassung

   newnode.appendChild(document.createTextNode(' '));

 

   c = document.createElement('input');

   c.type             = 'text';

   c.size             = '70';

   c.id               = 'qeSummary';

   c.maxLength        = '200';

   c.style.marginLeft = '5px';

   c.tabIndex         = 2;

   c.addEventListener('keydown', qeSubmitByReturn, false);

   newnode.appendChild(c);

 

// Kleine Änderung

   newnode.appendChild(document.createTextNode(' '));

 

   var checkboxes = document.createElement('span');

   checkboxes.style.whiteSpace = 'nowrap';

 

   checkboxes.appendChild(document.createElement('input'));

   checkboxes.childNodes0].type  = 'checkbox';

   checkboxes.childNodes0].id    = 'wpMinoredit';

   checkboxes.childNodes0].name  = 'wpMinoredit';

   checkboxes.childNodes0].value = '1';

   checkboxes.childNodes0].style.marginLeft = '5px';

   checkboxes.childNodes0].tabIndex = 3;

   checkboxes.childNodes0].title = qePhrase('tMinor');

 

   if (qeEnableAccessKeys) checkboxes.childNodes0].accessKey = 'i';

 

   checkboxes.appendChild(document.createElement('label'));

   checkboxes.childNodes1].htmlFor = 'wpMinoredit';

   checkboxes.childNodes1].style.fontWeight = 'bold';

   checkboxes.childNodes1].style.fontSize   = '8pt';

   checkboxes.childNodes1].style.position   = 'relative';

   checkboxes.childNodes1].style.bottom     = '2px';

   checkboxes.childNodes1].title            = qePhrase('tMinor');

 

   checkboxes.childNodes1].appendChild(document.createTextNode(qePhrase('k')));

 

// Beobachten

   checkboxes.appendChild(document.createTextNode(' '));

 

   checkboxes.appendChild(document.createElement('input'));

   checkboxes.childNodes3].type  = 'checkbox';

   checkboxes.childNodes3].id    = 'wpWatchthis';

   checkboxes.childNodes3].name  = 'wpWatchthis';

   checkboxes.childNodes3].value = '1';

   checkboxes.childNodes3].style.marginLeft = '5px';

   checkboxes.childNodes3].tabIndex = 4;

   checkboxes.childNodes3].title = qePhrase('tWatch');

 

   if (qeEnableAccessKeys) checkboxes.childNodes3].accessKey = 'w';

 

   checkboxes.appendChild(document.createElement('label'));

   checkboxes.childNodes4].htmlFor = 'wpWatchthis';

   checkboxes.childNodes4].style.fontWeight = 'bold';

   checkboxes.childNodes4].style.fontSize   = '8pt';

   checkboxes.childNodes4].style.position   = 'relative';

   checkboxes.childNodes4].style.bottom     = '2px';

   checkboxes.childNodes4].title            = qePhrase('tWatch');

 

   checkboxes.childNodes4].appendChild(document.createTextNode(qePhrase('b')));

 

   newnode.appendChild(checkboxes);

   qeForm.appendChild(newnode);

}

 

function qeFillForm(formaction, wpStarttime, wpEdittime, wpSummary, wpTextbox1,

                    wpEditToken, wpAutoSummary, wpWatchthis)

{

   if (!qeForm) return;

 

   // save form action since we need it for preview

   qeFormAction = formaction;

 

   qeForm.firstChild.childNodes0].value = qeEdit;

   qeForm.firstChild.childNodes1].value = wpStarttime;

   qeForm.firstChild.childNodes2].value = wpEdittime;

   qeForm.firstChild.childNodes3].value = wpSummary;

   qeForm.firstChild.childNodes4].value = wpTextbox1;

 

   qeForm.firstChild.childNodes5].value = wpEditToken;

   qeForm.firstChild.childNodes6].value = wpAutoSummary;

 

   document.getElementById('wpWatchthis').checked = wpWatchthis;

 

   qeForm.action = formaction;

 

   document.getElementById('qeSummary').value = wpSummary;

 

   // store the original text for diff

   qeOriginalText = wpTextbox1;

}

 

function qeSetToolbar(type)

{

   var search = document.getElementById('qeSearch'),

       chars  = document.getElementById('specialchars-container'),

       close = document.getElementById('qeClose');

 

   search.style.display = (type == 1)?'block':'none';

   chars.style.display = (type == 2)?'block':'none';

 

   close.style.display = (type != 0)?'block':'none';

}

 

function qeToggleScroll()

{

   if (qeMode != MODE_PREVIEW) return;

 

   qeScrollMode = !qeScrollMode;

 

   var img = document.getElementById('icon-scroll');

   img.src   = qeScrollMode ? qeResource('arrowdown') : qeResource('arrowup');

   img.title = qeScrollMode ? qePhrase('scrolloff'): qePhrase('scrollon');

 

   qePreview.style.height   = qeScrollMode ? qeTextboxHeightPixel : null;

   qePreview.style.overflow = qeScrollMode ? 'scroll' : 'hidden';

}

 

// QuickEdit 2.3: Search

 

function qeCreateSearchBox(node)

{

   sr$f = node;

 

   node.style.color    = '#888';

   node.style.fontSize = '0.83em';

 

   node.appendChild(document.createTextNode(qePhrase('srsearch') + ': '));

 

   // search box

   var input = document.createElement('input');

   input.id = 'srSearch';

   input.type = 'text';

   input.style.marginRight = '0.7em';

   input.setAttribute('onkeypress', 'event.which == 13 && srNext()');

   node.appendChild(input);

 

   sr$s = input;

 

   node.appendChild(document.createTextNode(qePhrase('srreplace') + ': '));

 

   // replace box

   input = input.cloneNode(false);

   input.id = 'srReplace';

   node.appendChild(input);

 

   sr$r = input;

 

   // the find and replace-links

   var a = document.createElement('a');

   a.href             = 'javascript:srBack()';

   a.style.color      = '#888';

   a.appendChild(document.createTextNode('<'));

   node.appendChild(a);

 

   var links = [['srNext()',             '0.4em', qePhrase('srfind') + ' >'],

                'srReplace();srBack()', '1em',   '<'],

                'srReplace()',          '0.4em', qePhrase('srreplace')],

                'srReplace;srNext()',   '0.4em', '>'],

                'srReplaceall()',       '1em',   qePhrase('srreplaceall')]];

 

   for (var i = 0; i < links.length; i++)

   {

      var a = a.cloneNode(false);

      a.href             = 'javascript:' + linksi][0];

      a.style.marginLeft = linksi][1];

      a.appendChild(document.createTextNode(linksi][2]));

      node.appendChild(a);

   }

 

   // two checkboxes

   var input = document.createElement('input');

   input.id               = 'srCase';

   input.type             = 'checkbox';

   input.style.marginLeft = '1em';

   input.setAttribute('onclick', 'document.getElementById("srSearch").focus()');

 

   var label = document.createElement('label');

   label.htmlFor          = 'srCase';

   label.appendChild(document.createTextNode(qePhrase('srmatchcase')));

 

   node.appendChild(input);

   node.appendChild(label);

 

   sr$mc = input;

 

   var input = input.cloneNode(false);

   var label = label.cloneNode(false);

   input.id               = 'srRegexp';

   label.htmlFor          = 'srRegexp';

   label.appendChild(document.createTextNode(qePhrase('srregexp')));

 

   node.appendChild(input);

   node.appendChild(label);

 

   sr$re = input;

 

   // set up searchbox.js specific variables

   sr$t = qeForm.firstChild.childNodes4];

}

 

 

// QuickEdit 2.1: Preferences stuff

 

function qePreferences()

{

   if (qeMode == MODE_PREF)

   {

      qePrefMode = false;

      qeDestroyPrefForm();

      return;

   }

 

   qePrefMode = true;

   qeMakePrefForm();

}

 

function qeMakePrefForm()

{

   // set the style of the pref tab selected

   var tab = document.getElementById('qeTabPref');

   tab.style.border       = '1px solid #888';

   tab.style.borderBottom = 'none';

   tab.style.fontWeight   = 'bold';

   tab.style.marginLeft   = '0px';

 

   // hide preview div, the form and the other tabs

   qeForm.style.display    = 'none';

   qePreview.style.display = 'none';

 

   var ul = qeParent.firstChild;

   for (var i = 0; i < ul.childNodes.length && ul.childNodesi != tab; i++)

      ul.childNodesi].style.display = 'none';

 

   // create pref div

   qePref = document.createElement('div');

   qePref.style.textAlign  = 'center';

   qePref.style.minHeight  = '200px';

   qePref.style.lineHeight = '2em';

   qePref.style.border     = '1px dotted #aaa';

   qePref.style.backgroundColor = '#fff';

 

   var h = document.createElement('div');

   h.style.borderBottom    = '1px solid #aaa';

   h.style.textAlign       = 'left';

   h.style.fontSize        = '14px';

   h.style.fontWeight      = 'bold';

   h.style.paddingLeft     = '10px';

   h.style.margin          = '20px 50px';

   h.appendChild(document.createTextNode(qePhrase('prefheading')));

 

   qePref.appendChild(h);

 

   for (var i = 0; i < qeOptions.length; i++)

   {

      var name = qeOptionsi][0], type = qeOptionsi][1], defaultval = qeOptionsi][2],

          userval = qeOptionsi][3];

 

      if (!userval) userval = defaultval;

 

      var e = document.createElement('input'), // input element

          d = document.createElement('label'); // description

 

      // set input element attributes

      e.id = 'o-' + name;

      e.name = e.id;

      if (type == 'bool')

      {

         e.type = 'checkbox';

         e.checked = (userval == 'true');

      }

 

      // set description attributes

      d.htmlFor = e.id;

      d.style.fontWeight  = 'bold';

      d.style.marginRight = '5px';

      d.appendChild(document.createTextNode(qePhrase('o' + name)));

 

      qePref.appendChild(d);

      qePref.appendChild(e);

 

      if (i != qeOptions.length - 1)

         qePref.appendChild(document.createElement('br'));

   }

 

   // insert node before preview

   qePreview.parentNode.insertBefore(qePref, qePreview);

}

 

function qeDestroyPrefForm()

{

   qePref.parentNode.removeChild(qePref);

   qePref = null;

 

   // restore: form, tabs

   qeForm.style.display = 'block';

 

   var ul = qeParent.firstChild;

   for (var i = 0; i < ul.childNodes.length; i++)

      ul.childNodesi].style.display = 'inline';

 

   // reset tab style

   var tab = document.getElementById('qeTabPref');

   tab.style.border       = '1px solid #aaa';

   tab.style.borderBottom = 'none';

   tab.style.fontWeight   = 'normal';

   tab.style.marginLeft   = '16px';

 

   qeSwitch(0); // make sure to get back into edit mode

}

 

 

// QuickEdit 2: Preview stuff

 

function qeSwitch(type)

{

   if (qeEdit == -1 || qeRequestState || qeMode == MODE_PREF) return;

 

   if (type == 3 && typeof(WDiffString) != 'function') // diff mode

   {

      qeDiff.appendChild(document.createTextNode('Error: Couldn\'t load diff.js'));

      return;

   }

 

   switch (type)

   {

      case 1:   var lid = document.getElementById('qeTabPreview'); break;

      case 2:   var lid = document.getElementById('qeTabDiff'); break;

      default: var lid = document.getElementById('qeTabEdit'); break;

   }

 

   switch (qeMode)

   {

      case MODE_PREVIEW: var lia = document.getElementById('qeTabPreview'); break;

      case MODE_DIFF:    var lia = document.getElementById('qeTabDiff'); break;

      default:           var lia = document.getElementById('qeTabEdit'); break;

   }

 

   lia.style.border = '1px solid #aaa';

   lia.style.fontWeight = 'normal';

   lia.style.zIndex = '1';

 

   lid.style.border = '1px solid #888';

   lid.style.fontWeight = 'bold';

   lid.style.zIndex = '3';

 

   lia.style.borderBottom = lid.style.borderBottom = '1px none #aaa';

 

   // now check if there is any change

   type = parseInt(type);

   if (type == qeMode) return;

 

   qeMode = type;

 

   if (qeMode != MODE_DIFF) qeDiff.innerHTML = '';

 

   // switch to preview

   if (qeMode == MODE_PREVIEW)

   {

      // set scroll mode image

      var img = document.getElementById('icon-scroll');

      img.src   = qeScrollMode ? qeResource('arrowdown') : qeResource('arrowup');

      img.title = qeScrollMode ? qePhrase('scrolloff'): qePhrase('scrollon');

      img.style.display = 'inline';

 

      // set preview height

      if (qeScrollMode) qePreview.style.height = qeTextboxHeightPixel;

 

      // set bg color according to the background of the current section

      qePreview.style.backgroundColor =

         qeGetBGColorOf(document.getElementById('section-' + qeEdit))

      || qeGetBGColor();

 

      // remove all child nodes from previous previews, if any

      for (var i = 1; i < qePreview.childNodes.length; i++)

         qePreview.removeChild(qePreview.childNodesi]);

 

      // hide quickedit, hide diff

      qeForm.firstChild.style.display = 'none';

      qeDiff.style.display = 'none';

 

      // show preview

      qePreview.style.display = 'block';

      qePreview.firstChild.style.display = 'block';

 

      qeLoadPreview();

   }

 

   else if (qeMode == MODE_QUICKEDIT)

   {

      // hide diff, hide preview

      qeDiff.style.display = 'none';

      qePreview.style.display = 'none';

      document.getElementById('icon-scroll').style.display = 'none';

 

      // show quickedit

      qeForm.firstChild.style.display = 'block';

   }

 

   else // MODE_DIFF

   {

      // hide quickedit, hide preview

      qeForm.firstChild.style.display = 'none';

      qePreview.style.display = 'none';

      document.getElementById('icon-scroll').style.display = 'none';

 

      // show diff

      qeDiff.style.display = 'block';

      qeDiff.style.height = qeTextboxHeightPixel;

 

      qeLoadDiff();

   }

}

 

function qeLoadDiff()

{

	var currenttext = document.getElementById('wpTextbox1').value;

 

	qeDiff.innerHTML = WDiffShortenOutput(WDiffString(qeOriginalText, currenttext));

 

	var div = document.createElement('div');

	div.style.textAlign   = 'right';

        div.style.position    = 'relative';

        div.style.bottom      = '10px';

 

     var span = document.createElement('span');

     span.style.fontSize  = '8pt';

     span.style.color     = '#aaa';

     span.style.marginRight = '10%';

 

	 span.appendChild(document.createTextNode('Using '));

 

      var a = document.createElement('a');

      a.href                 = qeResource('diffscript');

      a.style.textDecoration = 'underline';

      a.style.color          = '#aaa';

      a.appendChild(document.createTextNode('diff.js'));

 

	 span.appendChild(a);

	 span.appendChild(document.createTextNode(' by Cacycle'));

 

	div.appendChild(span);

 

	qeDiff.appendChild(div);

}

 

function qeLoadPreview()

{

   if (qeEdit == -1 || qeRequestState || !qeEditLink || qeMode != MODE_PREVIEW || !qeFormAction)

      return;

 

   var link = qeEditLink + qeEdit;

   qeRequestState = REQ_SUBMIT;

 

   qeRequest.onreadystatechange = qeAjaxResponse;

   qeRequest.open('POST', qeFormAction, true);

 

   var send = qeMakeFormRequest();

 

   qeRequest.overrideMimeType('text/xml');

   qeRequest.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');

   qeRequest.setRequestHeader('Content-length', send.length);

   qeRequest.setRequestHeader('Content', send.length);

   qeRequest.send(send);

}

 

function qeMakeFormRequest()

{

   if (!qeForm) return null;

 

   var str = '';

 

   var inputs = qeForm.getElementsByTagName('input');

   for (var i = 0; i < inputs.length; i++)

      if (inputsi].value && inputsi].value.length > 0)

         str += '&' + inputsi].name + '=' + encodeURIComponent(inputsi].value);

 

   str += '&wpPreview=Preview' +

          '&wpTextbox1=' +

          encodeURIComponent(document.getElementById('wpTextbox1').value);

 

   return str.substr(1);

}

 

function qeTabMouseOverOut(obj, out)

{

   var coloronly = false;

/* if (obj.id == 'qeTabEdit' || obj.id == 'qeTabPreview' || obj.id == 'qeTabPref')

   {

      if (qeMode == MODE_PREF)

      {

         if (obj.id == 'qeTabPref') coloronly = true;

      }

*/

      if ((qeMode == MODE_PREVIEW && obj.id == 'qeTabPreview') ||

          (qeMode == MODE_QUICKEDIT && obj.id == 'qeTabEdit') ||

          (qeMode == MODE_DIFF && obj.id == 'qeTabDiff'))

         coloronly = true;

// }

 

   obj.style.backgroundColor = out?'#fafafa':'#fff';

 

   if (!coloronly)

   {

      obj.style.borderColor = out?'#aaa':'#888';

      obj.style.zIndex      = out?1:3;

   }

}

 

// Ajax stuff

 

function qeInitAjax()

{

   try

   {

      if (window.XMLHttpRequest)

      {

         qeRequest = new XMLHttpRequest();

         qeRequest.overrideMimeType('text/xml');

      }

 

      else if (window.ActiveXObject)

         qeRequest = new ActiveXObject('Microsoft.XMLHTTP');

 

      else throw 'Kein AJAX-Objekt vorhanden';

   }

 

   catch (e)

   {

      qeShowError(e);

      return false;

   }

 

   if (!qeRequest)

   {

      qeShowError('AJAX-Objekt konnte nicht erstellt werden');

      return false;

   }

 

   return true;

}

 

 

function qeGetSection()

{

   if (qeEdit == -1 || !qeForm || !qeRequest || !qeEditLink || qeRequestState) return;

 

   var link = qeEditLink + qeEdit;

 

   qeRequestState = REQ_RECEIVE;

 

   qeRequest.onreadystatechange = qeAjaxResponse;

 

   qeRequest.open('GET', link, true);

   qeRequest.send(null);

}

 

 

function qeAjaxResponse()

{

   if (!qeRequestState)

   {

      alert('QuickEdit Fehler: qeAjaxResponse');

      return;

   }

 

   // receive

   if (qeRequestState == REQ_RECEIVE && qeEdit != -1)

   {

      if (qeRequest.readyState != 4 || qeRequest.status != 200)

         return;

 

      qeRequestState = REQ_IDLE;

 

      var xml = qeRequest.responseXML;

 

      try // MediaWiki bug 6986 workaround

      {

         var wpTextbox1 = xml.getElementById('wpTextbox1').value;

      }

      catch (e)

      {

         xml = qeFixXML(qeRequest.responseText);

         if (!xml)

         {

            qeShowError('XML parsing fehlgeschlagen.');

            return;

         }

 

         var wpTextbox1 = xml.getElementById('wpTextbox1').value;

      }

 

      var wpStarttime, wpEdittime, wpSummary,

          wpEditToken, wpAutoSummary, wpWatchthis;

 

      var inputs = xml.getElementsByTagName('input');

      for (i = 0; i < inputs.length; i++)

      {

         if (inputsi].name == 'wpSection') wpSection = inputsi].value;

         else if (inputsi].name == 'wpStarttime') wpStarttime = inputsi].value;

         else if (inputsi].name == 'wpEdittime') wpEdittime = inputsi].value;

         else if (inputsi].name == 'wpSummary') wpSummary = inputsi].value;

 

         else if (inputsi].name == 'wpEditToken') wpEditToken = inputsi].value;

         else if (inputsi].name == 'wpAutoSummary') wpAutoSummary = inputsi].value;

 

         else if (inputsi].name == 'wpWatchthis') wpWatchthis = inputsi].checked;

      }

 

      var formaction = xml.getElementById('editform').action;

 

      var specialchars = document.getElementById('specialchars-container');

      if (specialchars.childNodes.length == 0 && xml.getElementById('specialchars'))

      {

         var node = xml.getElementById('specialchars').cloneNode(true);

         node.style.background = 'none';

         node.style.border     = 'none';

         node.style.fontSize   = '8pt';

 

         for (var i = 0; i < node.childNodes.length; i++)

            if (node.childNodesi].nodeName == 'A')

            {

               node.removeChild(node.childNodesi]);

               node.removeChild(node.childNodesi+1]);

               break;

            }

 

         specialchars.appendChild(node);

 

         addCharSubsetMenu(); // wikipedia script

      }

 

      // sollte nie passieren, wenn doch -> fatal error

      if (wpSection != qeEdit)

      {

         qeAlert(qePhrase('varmismatch'));

         qeRequestState = REQ_IDLE;

         qeAbortEdit();

         return;

      }

 

      qeFillForm(formaction, wpStarttime, wpEdittime, wpSummary, wpTextbox1,

                 wpEditToken, wpAutoSummary, wpWatchthis);

      return;

   }

 

   // preview (submit)

   if (qeRequestState == REQ_SUBMIT && qeEdit != -1)

   {

      if (qeRequest.readyState != 4 || qeRequest.status != 200)

         return;

 

      qeRequestState = REQ_IDLE;

 

      try

      {

         var xml = qeRequest.responseXML;

         var prev = xml.getElementById('wikiPreview').cloneNode(true);

      }

      catch (e)

      {

         // try to fix it, then try to parse again

         try

         {

            xml = qeFixXML(qeRequest.responseText);

            prev = xml.getElementById('wikiPreview').cloneNode(true);

         }

 

         catch (e)

         {

            qePreviewDisabled = true;

            qePreview.firstChild.firstChild.nodeValue = qePhrase('noprev');

 

            var tab = document.getElementById('qeTabPreview');

            tab.firstChild.style.color = '#888';

            return;

         }

      }

 

      qePreview.firstChild.style.display = 'none';

 

      while (prev.childNodes.length > 0 && prev.firstChild.className != 'previewnote')

         prev.removeChild(prev.firstChild);

 

      prev.removeChild(prev.firstChild);

      qePreview.appendChild(prev);

 

      return;

   }

}

 

function qeSubmitByReturn(e)

{

   if (e && e.keyCode == 13) qeSubmit(0);

   return false;

}

 

function qeSubmit(preview)

{

   if (qeEdit == -1 || !qeRequest || !qeForm || qeRequestState)

      return;

 

   qeForm.firstChild.childNodes3].value = document.getElementById('qeSummary').value;

 

   if (preview == 1)

   {

      var prev = document.createElement('input');

      prev.name = 'wpPreview';

      prev.value = 'Preview';

      prev.type = 'hidden';

      qeForm.appendChild(prev);

   }

 

   qeForm.submit();

}

 

// MediaWiki bug 6986 workaround

function qeFixXML(text)

{

   var pos = text.indexOf('<h1 class="firstHeading">');

   var pos2 = text.indexOf('</h1>');

   if (pos == -1 || pos2 == -1) return null;

 

   text = text.substring(0, pos) + text.substring(pos2+5);

 

/************  removed, should be working now

 

   // two workarounds for wiki commons

   if (wgServer.indexOf('commons') != -1)

   {

      // replace the old <br>-tags with <br />

      text = text.replace(/<br>/g, '<br />');

 

      // append a </p> which is missing at the end of the copyright notice below the textarea

      backsl = String.fromCharCode(92); // as we know, MediaWiki strips backslashes out

 

      regex = eval('/' + 'rel="nofollow">Wikipedia<' + backsl + '/a><' + backsl + '/span>/');

      text = text.replace(regex, '$0'+'</p>');

   }

************/

 

   var parser = new DOMParser();

   var newdoc = parser.parseFromString(text, "text/xml");

   return newdoc;

}

 

// Signature

 

function qeAddSignature()

{

   wpTextbox1 = document.getElementById('wpTextbox1');

   // IE support

   if (document.selection)

   {

      wpTextbox1.focus();

      sel = document.selection.createRange();

      sel.text = qeSignature;

   }

 

   // MOZILLA/NETSCAPE support

   else if (wpTextbox1.selectionStart || wpTextbox1.selectionStart == '0')

   {

      var startpos = wpTextbox1.selectionStart;

      var endpos   = wpTextbox1.selectionEnd;

 

      wpTextbox1.value = wpTextbox1.value.substring(0, startpos)

                         + qeSignature

                         + wpTextbox1.value.substring(endpos, wpTextbox1.value.length);

 

      wpTextbox1.focus();

 

      endpos += qeSignature.length;

      if (endpos > wpTextbox1.length) endpos = wpTextbox1.length;

 

      wpTextbox1.setSelectionRange(endpos, endpos);

   }

 

   else

   {

      wpTextbox1.value += qeSignature;

      wpTextbox1.focus();

   }

}

 

 

 

// Language stuff

 

function qeGetBGColor()

{

   var ret = qeGetStyle(document.getElementById('content'), 'background-color');

   return ret?ret:'#fff';

}

 

function qeGetBGColorOf(node)

{

   var col = qeGetStyle(node, 'background-color');

 

   while (node && (!col || col == 'transparent'))

   {

      node = node.parentNode;

      col = qeGetStyle(node, 'background-color');

   }

 

   return (node && col)?col:null;

}

 

function qeGetStyle(elem, style)

{

   if (document.defaultView)

      return document.defaultView.getComputedStyle(elem, null).getPropertyValue(style);

   return null;

}

 

function qeSetLang()

{

   // default: English

   qeLang = 2;

 

   for (var i = 0; i < qeLanguages.length; i++)

      if (qeLanguagesi][0 == wgUserLanguage)

      {

         qeLang = i + 1;

         break;

      }

 

   qeSetPrefix();

}

 

function qePhrase(name)

{

   for (var i = 0; i < qePhrases.length; i++)

      if (qePhrasesi][0 == name)

         return qePhrasesi][qeLang];

 

   return 'UNDEFINED PHRASE: ' + name;

}

 

function qeSetPrefix()

{

// ausgeliehen vom Wikipedia-Script

   var pref = 'Alt';

 

   if (is_safari || navigator.userAgent.toLowerCase().indexOf('mac') + 1

       || navigator.userAgent.toLowerCase().indexOf('konqueror') + 1 )

                        pref = qePhrase('strg');

   else if (is_opera)   pref = qePhrase('shift') + '-Esc';

   else if (is_ff2_x11) pref = qePhrase('strg') + '-' + qePhrase('shift');

   else if (is_ff2_win) pref = 'Alt-' + qePhrase('shift');

   pref += '-';

 

   // p: number of the entry in the current phrase which is to be copied (EN if available, DE otherwise)

 

   for (var i = 0; i < qePhrases.length; i++)

   {

      // check for KEY:

      if (qePhrasesi][0].charAt(0) == 't')

         for (var j = 1; j < qePhrasesi].length; j++)

            qePhrasesi][j = qePhrasesi][j].replace(/KEY:(.)/, pref + '$1');

 

      for (var j = 1; j < qePhrasesi].length; j++)

      {

         if (j < 3 && qePhrasesi][j].length > 0) var p = j;

 

         if (qePhrasesi][j].length == 0) qePhrasesi][j = qePhrasesi][p + '**';

      }

   }

}

 

function qeResource(name)

{

   var commonsurl = 'http://upload.wikimedia.org/wikipedia/commons/';

   var wikiurl    = 'http://XX.wikipedia.org/?title=TT&action=raw&ctype=text/TYPE';

 

   for (var i = 0; i < qeResources.length; i++)

      if (qeResourcesi][0 == name)

      {

         var res = qeResourcesi][1];

 

         if (res.indexOf('c:') == 0)

            return commonsurl + res.substr(2);

 

         var type = 0;

         if (res.indexOf('js:') == 0) type = 1;

         else if (res.indexOf('css:') == 0) type = 2;

 

         if (type)

         {

            wikiurl = wikiurl.replace(/XX/, res.substring(res.indexOf(':') + 1,

                                                          res.indexOf(':', res.indexOf(':')+1)));

            wikiurl = wikiurl.replace(/TT/, res.substring(res.indexOf(':', res.indexOf(':')+1)+1));

            wikiurl = wikiurl.replace(/TYPE/, (type == 1)?'javascript':'css');

 

            return wikiurl;

         }

 

         return qeResourcesi][1];

      }

 

   return '';

}

 

var qeResources = 

   'arrowup',   'c:1/13/WikEd_align_top.png'],

   'arrowdown', 'c:a/a8/WikEd_align_down.png'],

 

   'chars',     'c:0/0d/WikEd_case_sensitive.png'],

   'searchbox', 'c:3/31/WikEd_preview.png'],

   'x',         'c:6/61/Crystal_128_error.png'],

 

   'language',  'js:de:Benutzer:ASM/quickedit-lang.js'],

   'diff',      'js:en:User:Cacycle/diff.js'],

   'style',     'css:de:Benutzer:ASM/quickedit.css'],

   'diffscript','http://en.wikipedia.org/wiki/User:Cacycle/diff.js'],

   'search',    'js:de:Benutzer:ASM/quickedit-search.js'

];

 

 

// import languages from external script ([[Benutzer:ASM/quickedit-lang.js]])

ImportScriptPlain(qeResource('language'));

 

 

// array content: var name | var type | default value | user value

// phrase name describing the option is is "'o' + var name"

// the user value will be read by the script from a cookie

// if there is no value set, the default value will be used

 

var qeOptions = 

   'qeScrollMode', 'bool', 'true',  null],

   'qeStickyMode', 'bool', 'false', null

];

 

 

/*</pre>*/

 

 

/*<pre>*/

 

// from [[MediaWiki:Onlyifediting.js]]

 

function addCharSubsetMenu()

{

var specialchars = document.getElementById('specialchars');

 

if (specialchars)

{

   switch(wgContentLanguage){

     case "ca":

       edittoolsOptions=

                     /*català*/

                     "matemàtiques","fonètica","diacrítiques","ciríl·lic","alt alemany antic",

                      "anglés antic","àrab","berber","bosni/serbocroata","castellà","escandinau",

                      "eslovac","esperanto","estonià","francés","gal·lés","grec","grec antic",

                      "hawaià","hebreu","holandés","hongarés","indoeuropeu","irlandés",

                      "islandés","italià","japonés (romanji)","jiddisch","letó","lituà","maltés",

                      "navajo i apatxe", "pinyin","polonés","portugués","romanés","serbi",

                      "turc i ll. turqueses", "txec","vietnamita"]; break;

     case "de":

       edittoolsOptions=

                     /*Deutsch*/

                     "Standard","WikiSyntax","IPA-Lautschrift","Lateinisch","AHD","Altenglisch",

                      "Altgriechisch","Arabisch","DMG-Umschrift","Esperanto","Estnisch",

                      "Französisch","Galicisch","Griechisch","Hawaiianisch","Isländisch",

                      "Italienisch","Jiddisch","Katalanisch","Kroatisch","Kyrillisch",

                      "Lettisch","Litauisch","Maltesisch","Pinyin","Polnisch","Portugiesisch",

                      "Romanisch","Rumänisch","Serbisch","Skandinavisch","Slowakisch","Spanisch",

                      "Tschechisch","Türkisch","Ungarisch","Vietnamesisch"

                     ]; break;

 

     case "it":

       edittoolsOptions=

                     /*Italiano*/

                     "Latino esteso","Wiki","Greco antico","Greco moderno","Cirillico","Arabo",

                      "Ebraico e yiddish","Armeno","Geroglifico","Vietnamita","IPA",

                      "Matematica"

                     ]; break;

 

 

     default : edittoolsOptions="Your Edittools are not defined"];

   }

 

   var menu = '<select style="display:inline" onChange="chooseCharSubset(selectedIndex)">';

   for(index in edittoolsOptions){

     menu += '<option>' + edittoolsOptionsindex + '</option>';

   }

   menu += '</select>';

   specialchars.innerHTML = menu + specialchars.innerHTML;

 

 // Standard-CharSubset

    chooseCharSubset(0);

}

}

 

// CharSubset-Auswahl

function chooseCharSubset(s)

{

   var l = document.getElementById('specialchars').getElementsByTagName('p');

      for (var i = 0; i < l.length ; i++)

      {

         li].style.display    = (i == s) ? 'inline'  : 'none';

         li].style.visibility = (i == s) ? 'visible' : 'hidden'; // for the CSS-unsure it-wp ;)

      }

}

 

/*</pre>*/





//note: this script MUST be added to the end of your monobook at all times.

//so when you add a new script to the end of your monobook, re-order them so this one is on the bottom.

$(function() {

        if(!document.getElementById('wpSummary') || document.getElementById('wpSummary').value != '' || !document.getElementById('wpTextbox1')) return;

        var my_value;

        if(wgCanonicalNamespace == 'User_talk') {

                if(wgPageName.indexOf('/') == -1 && wgTitle.split('/')[0 != wgUserName) 

                        my_value = 'Respond to '+wgTitle;

                else if(wgPageName.indexOf('archive') != -1 && wgTitle.split('/')[0 != wgUserName) 

                        my_value = 'Reviving archive';

                else if(wgPageName.indexOf('archive') != -1 && wgTitle.split('/')[0 == wgUserName)

                        my_value = 'Archiving...';

                else if(wgPageName.indexOf('/') == -1 && wgTitle.split('/')[0 == wgUserName) 

                        my_value = 'Reply';

                else

                        my_value = 'minor edit';

        } else if(wgCanonicalNamespace == 'User') {

                if(wgTitle.split('/')[0 == wgUserName)

                        my_value = 'fixing';

                else

                        my_value = 'fixing a minor mistake';

                

                             //note: leave as "Project". thats how mediawiki outputs it

        } else if(wgCanonicalNamespace == 'Project'||wgCanonicalNamespace == 'Project_talk') {

                if((/\w+ for deletion/i).test(wgTitle))

                        my_value = 'Add my opinion';

                else if((/requests for adminship/i).test(wgTitle))

                        my_value = 'Support';

                else if((/administrator.s noticeboard/i).test(wgTitle)) 

                        my_value = 'Reply';

                else if((/administrator intervention against vandalism/i).test(wgTitle))

                        my_value = 'Reporting user';

                else

                        my_value = 'Reply';

        } else {

                my_value = 'minor edit';

        }

        document.getElementById('wpSummary').value = my_value;

        document.getElementById('wpSummary').onfocus = function() {

                if(this.value != my_value) return;

                this.selectionStart = 0;

                this.selectionEnd = this.value.length;

        }

});

//

$(doAddQuickPreview);
From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.

importScript('User:AzaToth/twinkle.js');



importScript('User:Alex_Smotrov/qpreview.js');



importScript('User:Alex Smotrov/histcomb.js');



importScript('User:TheFearow/qstring.js');



// <nowiki>If you are editing a page, click the wikify button on your tab bar to add "{{Wikify|{{subst:CURRENTMONTHNAME}} {{subst:CURRENTYEAR}}}}" to the top, set "Marked for wikification" as the edit summary, mark it as a minor edit, and submit.</nowiki>



function doQwikify() {

  document.editform.wpTextbox1.value = '{' + '{' + 'Wikify|date=' + '{' + '{' + 'subst:CURRENTMONTHNAME}} ' + '{' + '{' + 'subst:CURRENTYEAR}}}}\n\n' + document.editform.wpTextbox1.value;

  document.editform.wpSummary.value = 'Marked for wikification';

  document.editform.wpMinoredit.checked = true;

  document.editform.submit();

}



$(function() {

  if (wgCanonicalNamespace == "User" || wgCanonicalNamespace == "User_talk") {

     // wouldn't it make more sense to just check for wgCanonicalNamespace != "", or am I missing something?

     return;

  }

  if (document.editform) {

     mw.util.addPortletLink("p-cactions", "javascript:doQwikify()", "wikify", "ca-wikify", "Mark for wikification", "");

  }

});



// by [[User:Raylu|raylu]]

// 



//Please leave the following line

//[[user:Where/easy db]], maintained by [[User:MER-C]]

//Start db script

 

$(function()

{

  //check if called from deletion request

  if (document.title.indexOf("Editing ") != -1)

  {

    if (document.URL.lastIndexOf("&fakeaction=huff") == -1)

      return;

    // does the page exist?

    if (wgCurRevisionId == false)

    {

      alert("The page has already been deleted.");

      return;

    }

    if (document.URL.lastIndexOf("&reason=off") != -1)

    {

      var type = prompt("Enter criteria for speedy deletion, e.g. A1, G3");

      if (type == null)

        return;

      var f = document.editform, t = f.wpTextbox1;

      t.value = "{" + "{db-" + type.toLowerCase() + "}}\n" + t.value;

      f.wpSummary.value = "JS: Requesting speedy deletion ([[WP:CSD#" + type + "|CSD " + type.toUpperCase() + "]])";

      f.wpSave.click();

      return;

    }

    else if (document.URL.lastIndexOf("&reason=on") != -1)

    {

      var type = prompt("Enter reason for speedy deletion");

      if (type == null)

        return;

      var f = document.editform, t = f.wpTextbox1;

      t.value = "{" + "{db|" + type + "}}\n" + t.value;

      f.wpSummary.value = "JS: Requesting speedy deletion";

      f.wpSave.click();

      return;

    }

  }

  if (wgCanonicalNamespace == "Special")

    return;

 

  mw.util.addPortletLink("p-cactions", "javascript:easyDb(0)", "db (csd)", "ca-db0", "Request speedy deletion according to WP:CSD", "");

  mw.util.addPortletLink("p-cactions", "javascript:easyDb(1)", "db (reason)", "ca-db1", "Request speedy deletion with reason", "");

});

 

function easyDb(n)

{

  var title = wgPageName.replace("&", "%26").replace("+", "%2B");

  if (n == 0)

    location.assign("/?&action=edit&fakeaction=huff&reason=off&title=" + title);

 

  if (n == 1)

    location.assign("/?&action=edit&fakeaction=huff&reason=on&title=" + title);

}

 

 

//End db script

//





//This script ([[User:ais523/highlightmyname2.js]]) highlights all instances of the

//logged-in user's username on pages by giving them a bright red background. It only

//checks bodyContent, not titles or sidebars, and doesn't change edit windows or

//Special:Preferences.

 

//<nowiki><pre>

function highlightmyname(n,p) //node, parent node

{

  while(n!=null)

  {

    if(n.nodeType==3) //text node

    {

      if(n.data.toLowerCase().indexOf(wgUserName.toLowerCase())!=-1)

      {

        var ix=n.data.toLowerCase().indexOf(wgUserName.toLowerCase());

        var t1=ix?document.createTextNode(n.data.substr(0,ix)):null;

        var t2=document.createTextNode(n.data.substr(ix,wgUserName.length));

        var t3=ix+wgUserName.length==n.data.length?null:

          document.createTextNode(n.data.substr(ix+wgUserName.length));

        var s1=document.createElement("SPAN");

        s1.style.backgroundColor="Silver";

        s1.appendChild(t2);

        var s2=document.createElement("SPAN");

        if(t1!=null) s2.appendChild(t1);

        s2.appendChild(s1);

        if(t3!=null) s2.appendChild(t3);

        p.replaceChild(s2,n);

        if(t3!=null) highlightmyname(t3,s2); //find remaining occurences in the new nodes

        n=s2.nextSibling;

      }

      else

        n=n.nextSibling;

    }

    else

    {

      if(n.firstChild!=null) highlightmyname(n.firstChild,n);

      n=n.nextSibling;

    }

  }

}

 

$(function() {

  if(location.href.indexOf("?ais523")==-1&&location.href.indexOf("&ais523")==-1&&

     location.href.indexOf("?action=edit")==-1&&location.href.indexOf("?action=submit")==-1&&

     location.href.indexOf("&action=edit")==-1&&location.href.indexOf("&action=submit")==-1&&

     location.href.indexOf("&action=raw")==-1&&wgPageName!="Special:Preferences")

    highlightmyname(document.getElementById('bodyContent').firstChild,

                    document.getElementById('bodyContent'));

});

//</pre></nowiki>

//[[Category:Wikipedia scripts]]



// [[User:Dschwen/highlightredirects.js]] - please include this line 

document.write('<script type="text/javascript" src="' 

             + 'http://en.wikipedia.org/?title=User:Dschwen/highlightredirects.js' 

             + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');



/* Watchlist notifier ([[User:Ais523/watchlistnotifier.js]]); displays a message every time a watched page changes. */

//<pre><nowiki>

 

var wmwpajax;

// From [[WP:US]] mainpage (wpajax renamed to wmwpajax)

wmwpajax={

        download:function(bundle) {

                // mandatory: bundle.url

                // optional:  bundle.onSuccess (xmlhttprequest, bundle)

                // optional:  bundle.onFailure (xmlhttprequest, bundle)

                // optional:  bundle.otherStuff OK too, passed to onSuccess and onFailure

 

                var x = window.XMLHttpRequest ? new XMLHttpRequest()

                : window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP")

                : false;

 

                if (x) {

                        x.onreadystatechange=function() {

                                x.readyState==4 && wmwpajax.downloadComplete(x,bundle);

                        };

                        x.open("GET",bundle.url,true);

                        x.send(null); 

                }

                return x;

        },

 

        downloadComplete:function(x,bundle) {

                x.status==200 && ( bundle.onSuccess && bundle.onSuccess(x,bundle) || true )

                || ( bundle.onFailure && bundle.onFailure(x,bundle) || alert(x.statusText+': '+bundle.url));

        }

};

 

// Example:

// function dlComplete(xmlreq, data) {

//      alert(data.message + xmlreq.responseText);

// }

//  wmwpajax.download({url:'http://en.wikipedia.org/?title=Thresher&action=raw', 

//                   onSuccess: dlComplete, message: "Here's what we got:\n\n" });

 

// End of [[WP:US]] quote

 

function wmWatchEditFound(xmlreq, data) {

  var watchrev, watchsum, watchrevold, watchpage, junk;

  if(xmlreq.responseText.indexOf('revid=')==-1)

  {

    document.getElementById('contentSub').innerHTML+=

      "<div class='watchlistnotify'>(<i>watchlistnotifier can't determine whether a "+

      "watched page has changed<i>)</div>";

    return;

  }

  watchrev=xmlreq.responseText.split('revid="')[1].split('"')[0];

  try

  {

    watchrevold=document.cookie.split('ais523wmwatchrev=')[1].split('.')[0];

  }

  catch(junk) {watchrevold=0;}

  if(wgPageName == "Special:Watchlist")

  {

    document.cookie="ais523wmwatchrev="+watchrev+".; path=/";

    var aas=document.getElementById('bodyContent').getElementsByTagName('a');

    var i=aas.length;

    while(i--)

    {

      if(aasi].href.indexOf('diff=')!=-1&&watchrevold)

        if(+(aasi].href.split('diff=')[1].split('&')[0])>watchrevold)

          aasi].parentNode.style.fontWeight='bold';

    }

  }

  else

  {

    watchsum=xmlreq.responseText.split('comment="')[1].split('"')[0];

    watchpage=xmlreq.responseText.split('title="')[1].split('"')[0];

    watchsum=watchsum.split('<').join('&lt;').split('>').join('&gt;');

    watchpage=watchpage.split('<').join('&lt;').split('>').join('&gt;');

    if(watchrev!=watchrevold)

      document.getElementById('contentSub').innerHTML+=

        "<div class='watchlistnotify'>\""+watchpage+'" changed: "'+watchsum+

        '". (<a href="/wiki/Special:Watchlist">watchlist</a>)</div>';

  }

}

 

$(function() {

  /* Find the top item in the watchlist, and its edit summary. We only need one item, so

     set the limit to 1 to ease the load on the server. */

    wmwpajax.download({url:'http://en.wikipedia.org/w/api.php?action=query&list=watchlist&wllimit=1&'+

      'wldir=older&format=xml&wlprop=comment|ids|title', onSuccess: wmWatchEditFound});

});

// </nowiki></pre>

// [[Category:Wikipedia scripts]]

 

function doAddQuickPreview() {

  if ((wgAction != "edit") && (wgAction != "submit")) return;

  var qbutton = document.getElementById("wpPreview").cloneNode(false);

  qbutton.value = "Quick preview";

  qbutton.type="button";

  qbutton.tabindex="6"; 

  qbutton.accessKey="g";

  qbutton.id="dlQuickPreview";

  qbutton.title="Preview your changes";

  qbutton.addEventListener("click", doQuickPreview, false); 

  document.getElementById("wpPreview").parentNode.insertBefore(qbutton,document.getElementById("wpDiff"));

}

 

 

function doQuickPreview() {

  var bt = document.getElementById("dlQuickPreview");

  document.getElementById("contentSub").innerHTML = "Getting preview";

  bt.value="Getting preview";

  bt.disabled=true;

  var form = document.editform;

  var postData = {

    'wpMinoredit': form.wpMinoredit.checked, 

    'wpWatchthis': form.wpWatchthis.checked,

    'wpStarttime': form.wpStarttime.value,

    'wpEdittime': form.wpEdittime.value,

    'wpAutoSummary': form.wpAutoSummary.value,

    'wpEditToken': form.wpEditToken.value,

    'wpSummary': "Quick preview",

    'wpTextbox1': document.editform.wpTextbox1.value  

  };

 

  var addr = document.URL;

  addr = addr.replace("&action=edit", "&action=submit");

  addr += "&wpPreview=true&live=true";

 

  var qwxmlhttp = sajax_init_object(null);

  qwxmlhttp.overrideMimeType('text/xml');

  qwxmlhttp.open( 'POST' , addr, true);

  qwxmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');

  qwxmlhttp.onload = function() { 

  document.getElementById("wikiPreview").innerHTML =   unescape(qwxmlhttp.responseText.replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&amp;/g,"&").replace(/&quot;/g,'"'));

  bt.disabled=false;

  bt.value = "Quick preview";

  document.getElementById("contentSub").innerHTML = "";

  }

  qwxmlhttp.send(QueryString.create(postData));

}



/*<pre>*/

 

/* * * * * * * * * * * * * * * * * *

 * MediaWiki QuickEdit 2 by ASM

 * Version: Apr 2008

 * * * * * * * * * * * * * * * * * *

 *

 * Translate QuickEdit into your language:

 * [[:de:Benutzer:ASM/quickedit-lang.js]]

 *

 *            How to use

 *

 * Insert into your monobook.js:

 *

   document.write('<script src="'

   + 'http://de.wikipedia.org/?title=Benutzer:ASM/quickedit.js'

   + '&action=raw&ctype=text/javascript"></script>');

 *

 * - - - Please DO NOT copy this script (in order to use it) - - -

 * -> if you have any suggestions, bugs etc. please contact me

 *

 * This script uses the following external scripts:

 *  • diff.js by Cacycle - [[:en:User:Cacycle/diff.js]]

 *  • SearchBox.js by Zocky - [[:en:User:Zocky/SearchBox.js]]

 *

 * You can use these variables to customize QuickEdit:

 *

 * var qeEnabled          = true;     // Activate Script?

 * var qeEnableSection0   = true;     // Enable QuickEdit link for section 0 (introduction)?

 * var qeEnableAccessKeys = true;     // Activate access keys?

 * var qeTextboxHeight    = 20;       // Height of the textbox

 * var qeSignature        = '--~~~~'; // Signature (use '' to hide signature tab)

 *

 * * * * * * * * * * * * * * * * * */

 

 

/////////// Einstellungen ///////////

 

if (typeof(qeEnabled) == 'undefined')          qeEnabled          = true;

if (typeof(qeEnableSection0) == 'undefined')   qeEnableSection0   = true;

if (typeof(qeTextboxHeight) == 'undefined')    qeTextboxHeight    = 20;

if (typeof(qeEnableAccessKeys) == 'undefined') qeEnableAccessKeys = true;

 

if (typeof(qeSignature) == 'undefined')        qeSignature        = '--~~~~';

 

if (typeof(qeShowErrors) == 'undefined')       qeShowErrors       = false;

 

//////// Ende Einstellungen ////////

 

// version

var qeVersion = '2.3-2498';

 

// qeMode constants

var MODE_QUICKEDIT = 0;

var MODE_PREVIEW   = 1;

var MODE_DIFF      = 2;

var MODE_PREF      = 3;

 

// qeRequestState constants

var REQ_IDLE       = 0;

var REQ_RECEIVE    = 1;

var REQ_SUBMIT     = 2;

 

// only initialize once

var qeIsInit = false;

 

// 2D-Array mit allen Sections und den jeweiligen Unterknoten

var qeSections = new Array();

 

// Aktuell bearbeitete Section

var qeEdit = -1;

 

// Aktueller Modus

var qeMode = MODE_QUICKEDIT;

 

// Aktuell im Vorschau-Modus?

var qePreviewDisabled = false;

 

// preferences mode

var qePref = null;

 

// Link zum Bearbeiten der Abschnitte

var qeEditLink = false;

 

// Knoten

var qeParent  = false;

var qeForm    = false;

var qePreview = false;

var qeDiff    = false;

var qeToolbar = false;

 

var qeOriginalText = null;

 

// Form action

var qeFormAction = false;

 

// XmlHttpRequest

var qeRequest = false;

 

// request state

var qeRequestState = REQ_IDLE;

 

// ondblclick

var qeOnDoubleClick = null;

 

// special chars sticky?

var qeStickyMode = false;

 

// scroll mode?

var qeScrollMode = true;

var qeTextboxHeightPixel = false;

 

////// Start Script //////

 

qeInitTimer = null;

qeTries     = 0;

$(qeInitTimeout);

 

// init wrapper

function qeInitTimeout()

{

   if (!qeInitTimer) qeInitTimer = window.setInterval(qeInitTimeout, 500);

 

   var ex = true;

   if (!qeEnabled || qeIsInit) ex = false;                                  // check init

   if (ex && !document.getElementById('ca-edit')) ex = false;               // check editable

   if (ex && document.location.search.indexOf('printable=yes') != -1) ex = false; // printable

   if (ex && qeTries > 10) ex = false;

   if (!ex) { window.clearInterval(qeInitTimer); return; } // abort if anything was false

 

   qeTries++;

 

   if (typeof(qeLanguages) != 'undefined') // then we can init QuickEdit

   {

      window.clearInterval(qeInitTimer);

      qeInit();

   }

}

 

function qeInit()

{

   if (!qeEnabled || qeIsInit) return;

   qeIsInit = true;

 

   // check if page is editable

   if (!document.getElementById('ca-edit')) return;

 

   // check if page is print page

   if (document.location.search.indexOf('printable=yes') != -1) return;

 

   // check if action is view or purge

   if (match = /[?&]action=([a-z]+)/.exec(window.location.href))

      if (match1 != 'view' && match1 != 'purge')

         return;

 

   qeSetLang();

 

   if (!qeInitAjax()) return;

 

   try { qeLoadExternalScripts(); } catch (e) {}

 

   qeChangeSectionLinks();

}

 

function qeLoadExternalScripts()

{

   // load Cacycle's diff script if not loaded

   if (typeof(WDiffString) != 'function') ImportScriptPlain(qeResource('diff'));

 

   // load search script

   ImportScriptPlain(qeResource('search'));

 

   // load stylesheet

   ImportCSS(qeResource('style'));

}

 

// wrapper functions for ImportScriptEx

function ImportScriptPlain(script) { ImportScriptEx(script, false); }

function ImportCSS(css) { ImportScriptEx(css, true); }

 

function ImportScriptEx(script, css)

{

   var head = document.getElementsByTagName('head')[0];

 

   var link = document.createElement(css?'link':'script');

   link.setAttribute('charset',        'utf-8');

   link.setAttribute('type',           css?'text/css':'text/javascript');

   link.setAttribute(css?'href':'src', script);

 

   if (css) link.setAttribute('rel', 'stylesheet');

 

   head.appendChild(link);

}

 

function qeContentSub(text)

{

   var cs = document.getElementById('contentSub');

   if (cs.innerHTML)

      cs.innerHTML += ' - ' + text;

   else

      cs.innerHTML = text;

}

 

function qeShowError(err)

{

   if (qeShowErrors) qeContentSub(qePhrase('quickedit') + ' ' + qePhrase('error') + ': ' + err);

}

 

function qeAlert(err)

{

   alert(qePhrase('quickedit') + ' ' + qePhrase('error') + ': ' + err);

}

 

function qeGetElementsByClassName(tagname, classname)

{

   var ret = new Array();

   var tags = document.getElementsByTagName(tagname);

   for (i = 0; i < tags.length; i++)

      if (tagsi].className == classname)

         ret.push(tagsi]);

 

   return ret;

}

 

function qeChangeSectionLinks()

{

   qeEditLink = document.getElementById('ca-edit').firstChild.href + '&section=';

 

   // get all sections

   var sections = qeGetElementsByClassName('span', 'editsection');

   var jumptonav = document.getElementById('jump-to-nav');

 

   // Hauptabschnitt

   if (qeEnableSection0)

   {

      var heading = qeGetElementsByClassName('h1', 'firstHeading')[0];

 

   if (!heading || !jumptonav)

      qeShowError('Section 0 nicht gefunden.');

   else

   {

 

      // id verpassen

      heading.id = 'section-0';

 

      // Knoten ins Array packen

      qeSections0 = new Array();

 

      var nosections = (sections.length == 0);

 

      var node = jumptonav.nextSibling;

      while (node != null && node.className != 'editsection'

             && node.className != 'printfooter' && (nosections|| !/^H[1-6]$/.test(node.nodeName)))

      {

         if (node.nodeType == 1 && node.nodeName != 'SCRIPT') // avoid displaying in-<body> scripts

            qeSections0].push(node);

         node = node.nextSibling;

      }

 

      // Link hinzufügen

      var newspan = document.createElement('span');

      newspan.style.fontSize   = '8pt';

      newspan.style.marginLeft = '10px';

      newspan.dir              = 'ltr';

 

      newspan.appendChild(document.createTextNode('['));

 

      var newlink   = document.createElement('a');

      newlink.href  = 'javascript:qeEditSection(0)';

      newlink.id    = 'sectionlink-0';

      newlink.className = 'sectionlink';

      newlink.appendChild(document.createTextNode(qePhrase('quickedit')));

      newspan.appendChild(newlink);

 

      newspan.appendChild(document.createTextNode(']'));

 

//    not appended to heading anymore

//    heading.appendChild(newspan);

 

      var cs = document.getElementById('contentSub');

      cs.style.display = 'block';

      cs.appendChild(newspan);

 

   }

   } // qeEnableSection0

 

 

   // Abschnitte

   for (i = 0; i < sections.length; i++)

   {

      // Section-Link suchen

      var link = sectionsi].childNodes1].href;

 

      var section = null, match = null;

 

      if (match = /section=([0-9]+)/.exec(link))

         var section = +match1];

      else break;

      if (!section) continue;

 

      sectionsi].style.fontSize = '8pt';

 

      // QuickEdit-Link erstellen

      var newnode = document.createElement('a');

      newnode.href  = 'javascript:qeEditSection(' + section + ')';

      newnode.title = 'QuickEdit Section ' + section;

      newnode.id    = 'sectionlink-' + section;

      newnode.className = 'sectionlink';

      newnode.appendChild(document.createTextNode(qePhrase('quickedit')));

 

      var where = sectionsi].childNodes2];

      sectionsi].insertBefore(document.createTextNode('/'), where);

      sectionsi].insertBefore(newnode, where);

      ////

 

      // dem div eine ID verpassen

      sectionsi].id = 'editsection-' + section;

 

      // zugehörige hX Überschrift suchen

      var hx = sectionsi].parentNode;

      hx.id = 'section-' + section;

      ////

 

      // alle zu dieser Section gehörigen Knoten suchen und ins Array packen

      qeSectionssection = new Array();

 

      var node = hx.nextSibling;

      while (node != null && node.className != 'editsection'

             && node.className != 'printfooter' && !/^H[1-6]$/.test(node.nodeName))

      {

         if (node.nodeType == 1)

            qeSectionssection].push(node);

 

         node = node.nextSibling;

      }

   }

}

 

function qeEditSection(section)

{

   if (qeRequestState || !qeEditLink) return;

 

   section = parseInt(section);

 

   // es wird bereits ein Abschnitt bearbeitet

   // wenn es der aktuelle ist -> Bearbeiten abbrechen, sonst nichts tun

   if (qeEdit != -1)

   {

      if (qeEdit == section) qeAbortEdit();

      return;

   }

 

   qeEdit = section;

 

   // save body.ondblclick

   if (document.getElementsByTagName('body')[0].getAttribute('ondblclick'))

   {

      qeOnDoubleClick = document.getElementsByTagName('body')[0].getAttribute('ondblclick');

      document.getElementsByTagName('body')[0].setAttribute('ondblclick', null);

   }

 

   // Inhalt des Abschnitts ausblenden

   var nodes = qeSectionssection];

   for (i = 0; i < nodes.length; i++)

      nodesi].style.display = 'none';

   ////

 

   // andere Links ändern

   var links = qeGetElementsByClassName('a', 'sectionlink');

   for (i = 0; i < links.length; i++)

   {

      if (i == 0) linksi].parentNode.style.display = 'none';

 

      if (linksi].id != 'sectionlink-' + qeEdit)

         linksi].style.color = '#bfbfbf';

   }

 

   // Form anzeigen

   qeMakeForm();

 

   var hx = document.getElementById('section-' + section);

   hx.parentNode.insertBefore(qeParent, hx.nextSibling);

 

   qeForm.firstChild.childNodes4].value = qePhrase('loading') + '...';

   ////

 

   // save textboxheight

   if (!qeTextboxHeightPixel)

      qeTextboxHeightPixel = qeGetStyle(document.getElementById('wpTextbox1'), 'height') ||

         Math.Round(qeTextboxHeight * 16.8) + 'px';

 

   // make sure the QuickEdit tab is activated and toolbar is hidden

   qeSwitch(0);

   qeSetToolbar(0);

 

   qeGetSection();

}

 

 

function qeAbortEdit()

{

   if (qeEdit == -1 || qeRequestState) return;

 

   // Inhalt des Abschnitts wieder einblenden

   var nodes = qeSectionsqeEdit];

   for (i = 0; i < nodes.length; i++)

      nodesi].style.display = is_gecko?null:'block';

 

   var links = qeGetElementsByClassName('a', 'sectionlink');

   for (i = 0; i < links.length; i++)

   {

      if (i == 0) linksi].parentNode.style.display = 'inline';

 

      if (linksi].id != 'sectionlink-' + qeEdit)

         linksi].style.color = null;

   }

 

   // make sure cancel link does not look hovered anymore

   qeTabMouseOverOut(document.getElementById('qeTabCancel'), 1);

 

   qeParent.parentNode.removeChild(qeParent);

   qeForm.firstChild.childNodes4].value = '';

 

   qeEdit = -1;

   // qeRequest.abort();

 

   qeRequestState = REQ_IDLE;

 

   qeOriginalText = null;

 

   // restore body.ondblclick

   if (qeOnDoubleClick)

      document.getElementsByTagName('body')[0].setAttribute('ondblclick', qeOnDoubleClick);

}

 

function qeMakeForm()

{

   if (qeForm) return;

 

   if (qeSections.length == 1) qeTextboxHeight += 5; // higher textbox for the main section only

 

   // create parent div

   qeParent = document.createElement('div');

   qeParent.style.clear  = 'both';

 

   // create tabs [CSS]

   var ul = document.createElement('ul');

   ul.className          = 'qeTabs';

 

   var li1 = document.createElement('li');

 

   var a = document.createElement('a');

   a.href                 = 'javascript:qeSwitch(0)';

   a.style.textDecoration = 'none';

   a.style.padding        = '0 8px';

   a.appendChild(document.createTextNode(qePhrase('quickedit')));

   li1.appendChild(a);

 

   // [CSS]

   li1.id                 = 'qeTabEdit';

   li1.title              = qePhrase('tQuickEdit');

   li1.className          = 'qeTabs';

   li1.setAttribute('onmouseover', 'qeTabMouseOverOut(this, 0)');

   li1.setAttribute('onmouseout',  'qeTabMouseOverOut(this, 1)');

 

   var li2 = li1.cloneNode(true);

   li2.id = 'qeTabPreview';

   li2.title = qePhrase('tLivePrev');

   li2.firstChild.href = 'javascript:qeSwitch(1)';

   li2.firstChild.firstChild.nodeValue = qePhrase('liveprev');

 

   // make li1 look selected

   li1.style.borderColor  = '#888';

   li1.style.borderBottom = 'none';

   li1.style.fontWeight   = 'bold';

   li1.style.zIndex       = '3';

 

   // tab 2a - diff mode

   var li2a = li2.cloneNode(true);

   li2a.id                = 'qeTabDiff';

   li2a.title             = qePhrase('tDiff');

   li2a.firstChild.href   = 'javascript:qeSwitch(2)';

   li2a.firstChild.firstChild.nodeValue = qePhrase('diff');

 

   // tab 3

   var li4 = li2.cloneNode(true);

   li4.id                 = 'qeTabSubmit';

   li4.style.marginLeft   = '16px';

   li4.title              = qePhrase('tSubmit');

   li4.firstChild.href    = 'javascript:qeSubmit(0)';

   li4.firstChild.firstChild.nodeValue = qePhrase('submit');

 

   // tab 4

   var li5 = li2.cloneNode(true);

   li5.id                 = 'qeTabRealPreview';

   li5.title              = qePhrase('tPreview');

   li5.firstChild.href    = 'javascript:qeSubmit(1)';

   li5.firstChild.firstChild.nodeValue = qePhrase('preview');

 

   // tab 5

   var li6 = li2.cloneNode(true);

   li6.id                 = 'qeTabCancel';

   li6.title              = qePhrase('tCancel');

   li6.firstChild.href    = 'javascript:qeAbortEdit()';

   li6.firstChild.firstChild.nodeValue = qePhrase('cancel');

 

   var li8 = li2.cloneNode(true);

   li8.id                 = 'qeTabSig';

   li8.title              = qePhrase('tSig');

   li8.style.marginLeft   = '16px';

   li8.firstChild.href    = 'javascript:qeAddSignature()';

   li8.firstChild.firstChild.nodeValue = qePhrase('sig');

 

   if (qeEnableAccessKeys)

   {

      li1.firstChild.accessKey = 'e'; // quickedit

      li2.firstChild.accessKey = 'p'; // live prev

      li2a.firstChild.accessKey= 'v'; // diff

      li4.firstChild.accessKey = 's'; // submit

      li6.firstChild.accessKey = 'a'; // cancel

      li8.firstChild.accessKey = 'f'; // sig

   }

 

   // [CSS]

   var li3 = document.createElement('li');

   li3.className         = 'qeTabsVersion';

   li3.title             = 'MediaWiki QuickEdit ' + qeVersion;

   var version = qePhrase('header') + ' ' + qeVersion.substr(0, qeVersion.indexOf('-'));

   li3.appendChild(document.createTextNode(version));

 

   if (qeLanguagesqeLang-1][0 != wgUserLanguage)

   {

      var a = document.createElement('a');

      a.href             = 'http://de.wikipedia.org/wiki/Benutzer:ASM/quickedit-lang.js';

      a.style.marginLeft = '3px';

      a.style.color      = '#aaa';

      a.appendChild(document.createTextNode('Add your translation!'));

      li3.appendChild(a);

   }

 

   // options tab

   var li7 = li2.cloneNode(true);

   li7.id                 = 'qeTabPref';

   li7.title              = qePhrase('pref');

   li7.style.marginLeft   = '16px';

   li7.firstChild.href    = 'javascript:qePreferences()';

   li7.firstChild.firstChild.nodeValue = qePhrase('pref');

 

   ul.appendChild(li3);

   ul.appendChild(li1);

   ul.appendChild(li2);

   ul.appendChild(li2a);

 

   ul.appendChild(li4);

   ul.appendChild(li5);

   ul.appendChild(li6);

 

   if (qeSignature) ul.appendChild(li8); // sig tab

 

// ul.appendChild(li7); new feature: wip. temporarily disabled

 

   qeParent.appendChild(ul);

 

   // create frame div [CSS]

   var framediv = document.createElement('div');

   framediv.id             = 'framediv';

   qeParent.appendChild(framediv);

 

   // create form

   qeForm = document.createElement('form');

   qeForm.method = 'post';

   qeForm.onsubmit = qeSubmitByReturn;

 

   // create preview div [CSS]

   qePreview = document.createElement('div');

   qePreview.id             = 'qePreview';

   qePreview.style.display  = 'none';

   qePreview.style.overflow = qeScrollMode ? 'scroll':'hidden';

   qePreview.style.backgroundColor = qeGetBGColor();

 

   // create diff div [CSS]

   qeDiff = document.createElement('div');

   qeDiff.id             = 'qeDiff';

   qeDiff.style.display  = 'none';

 

   // preview message

   var div = document.createElement('div');

   div.style.padding   = '100px 0';

   div.style.textAlign = 'center';

   div.style.color     = '#aaa';

   div.style.cursor    = 'default';

   div.appendChild(document.createTextNode(qePhrase('loadprev') + '...'));

   qePreview.appendChild(div);

 

   framediv.appendChild(qeDiff);

   framediv.appendChild(qePreview);

   framediv.appendChild(qeForm);

 

////

 

   // add form div

   qeForm.appendChild(document.createElement('div'));

 

   var elements = new Array(

     //         subject     type      name

     new Array('input',    'hidden', 'wpSection'),

     new Array('input',    'hidden', 'wpStarttime'),

     new Array('input',    'hidden', 'wpEdittime'),

     new Array('input',    'hidden', 'wpSummary'),

     new Array('textarea',           'wpTextbox1'),

     new Array('input',    'hidden', 'wpEditToken'),

     new Array('input',    'hidden', 'wpAutoSummary')

   );

 

   for (i = 0; i < elements.length; i++)

   {

      var e = elementsi];

      var newnode = document.createElement(e0]);

 

      if (e0 == 'input')

      {

         newnode.type = e1];

         newnode.name = e2];

      }

 

      else if (e0 == 'textarea')

      {

         newnode.id = e1];

         newnode.name = e1];

         newnode.appendChild(document.createTextNode(''));

         newnode.rows = qeTextboxHeight;

         newnode.style.width = '99%';

         newnode.style.border = '1px solid #ddd';

      }

 

      qeForm.firstChild.appendChild(newnode);

   }

 

   if (qeEnableAccessKeys) qeForm.firstChild.childNodes4].accessKey = ',';

   qeForm.firstChild.childNodes4].tabIndex = 1;

 

// the toolbar

   qeToolbar = document.createElement('div');

   qeToolbar.id            = 'qeToolbar';

   qeToolbar.style.display = 'block';

   qeToolbar.style.minHeight='5px';

 

   // close button [CSS]

   var img = document.createElement('img');

   img.id                  = 'qeClose';

   img.title               = qePhrase('close');

   img.src                 = qeResource('x');

   img.setAttribute('onclick', 'qeSetToolbar(0)');

 

   // search box

   var search = document.createElement('div');

   search.id                 = 'qeSearch';

   search.style.marginTop    = '0.4em';

   search.style.marginBottom = '0.4em';

 

   qeCreateSearchBox(search);

 

   // special chars

   var chars = document.createElement('div');

   chars.id  = 'specialchars-container';

   chars.style.overflow     = 'hidden';

   chars.style.marginBottom = '0.2em';

 

   qeToolbar.appendChild(img);

   qeToolbar.appendChild(search);

   qeToolbar.appendChild(chars);

   qeForm.appendChild(qeToolbar);

 

   // create bottom bar

   newnode = document.createElement('div');

   newnode.style.paddingTop= '5px';

   newnode.style.borderTop = '1px dotted #aaa';

 

   // mini toolbar (lower right corner)

   var span = document.createElement('span');

   span.style.cssFloat     = 'right';

   span.style.verticalAlign= 'middle';

   span.style.marginTop    = '0.2em';

 

   // search box icon [CSS]

   var img = document.createElement('img');

   img.id                  = 'icon-search';

   img.src                 = qeResource('searchbox');

   img.title               = qePhrase('searchbox');

   img.setAttribute('onclick', 'qeSetToolbar(1)');

   span.appendChild(img);

 

   // special chars icon

   var img = img.cloneNode(false);

   img.id                  = 'icon-specialchars';

   img.src                 = qeResource('chars');

   img.title               = qePhrase('chars');

   img.style.borderLeft    = '1px solid #ccc';

   img.setAttribute('onclick', 'qeSetToolbar(2)');

   span.appendChild(img);

 

   // scroll icon

   var img = img.cloneNode(false);

   img.src                 = null;

   img.title               = null;

   img.id                  = 'icon-scroll';

   img.style.display       = 'none'; // hidden by default (only visible in preview mode)

   img.setAttribute('onclick', 'qeToggleScroll()');

   span.appendChild(img);

 

   newnode.appendChild(span);

 

// Speichern

   var c = document.createElement('a');

   c.href         = 'javascript:qeSubmit(0)';

   c.title        = qePhrase('tSubmit');

   c.style.cursor = 'pointer';

   c.appendChild(document.createTextNode(qePhrase('submit')));

   newnode.appendChild(c);

 

// Vorschau

   newnode.appendChild(document.createTextNode(' '));

 

   c = document.createElement('a');

   c.href             = 'javascript:qeSubmit(1)';

   c.title            = qePhrase('tPreview');

   c.style.marginLeft = '5px';

   c.style.cursor     = 'pointer';

   c.appendChild(document.createTextNode(qePhrase('preview')));

   newnode.appendChild(c);

 

// Zusammenfassung

   newnode.appendChild(document.createTextNode(' '));

 

   c = document.createElement('input');

   c.type             = 'text';

   c.size             = '70';

   c.id               = 'qeSummary';

   c.maxLength        = '200';

   c.style.marginLeft = '5px';

   c.tabIndex         = 2;

   c.addEventListener('keydown', qeSubmitByReturn, false);

   newnode.appendChild(c);

 

// Kleine Änderung

   newnode.appendChild(document.createTextNode(' '));

 

   var checkboxes = document.createElement('span');

   checkboxes.style.whiteSpace = 'nowrap';

 

   checkboxes.appendChild(document.createElement('input'));

   checkboxes.childNodes0].type  = 'checkbox';

   checkboxes.childNodes0].id    = 'wpMinoredit';

   checkboxes.childNodes0].name  = 'wpMinoredit';

   checkboxes.childNodes0].value = '1';

   checkboxes.childNodes0].style.marginLeft = '5px';

   checkboxes.childNodes0].tabIndex = 3;

   checkboxes.childNodes0].title = qePhrase('tMinor');

 

   if (qeEnableAccessKeys) checkboxes.childNodes0].accessKey = 'i';

 

   checkboxes.appendChild(document.createElement('label'));

   checkboxes.childNodes1].htmlFor = 'wpMinoredit';

   checkboxes.childNodes1].style.fontWeight = 'bold';

   checkboxes.childNodes1].style.fontSize   = '8pt';

   checkboxes.childNodes1].style.position   = 'relative';

   checkboxes.childNodes1].style.bottom     = '2px';

   checkboxes.childNodes1].title            = qePhrase('tMinor');

 

   checkboxes.childNodes1].appendChild(document.createTextNode(qePhrase('k')));

 

// Beobachten

   checkboxes.appendChild(document.createTextNode(' '));

 

   checkboxes.appendChild(document.createElement('input'));

   checkboxes.childNodes3].type  = 'checkbox';

   checkboxes.childNodes3].id    = 'wpWatchthis';

   checkboxes.childNodes3].name  = 'wpWatchthis';

   checkboxes.childNodes3].value = '1';

   checkboxes.childNodes3].style.marginLeft = '5px';

   checkboxes.childNodes3].tabIndex = 4;

   checkboxes.childNodes3].title = qePhrase('tWatch');

 

   if (qeEnableAccessKeys) checkboxes.childNodes3].accessKey = 'w';

 

   checkboxes.appendChild(document.createElement('label'));

   checkboxes.childNodes4].htmlFor = 'wpWatchthis';

   checkboxes.childNodes4].style.fontWeight = 'bold';

   checkboxes.childNodes4].style.fontSize   = '8pt';

   checkboxes.childNodes4].style.position   = 'relative';

   checkboxes.childNodes4].style.bottom     = '2px';

   checkboxes.childNodes4].title            = qePhrase('tWatch');

 

   checkboxes.childNodes4].appendChild(document.createTextNode(qePhrase('b')));

 

   newnode.appendChild(checkboxes);

   qeForm.appendChild(newnode);

}

 

function qeFillForm(formaction, wpStarttime, wpEdittime, wpSummary, wpTextbox1,

                    wpEditToken, wpAutoSummary, wpWatchthis)

{

   if (!qeForm) return;

 

   // save form action since we need it for preview

   qeFormAction = formaction;

 

   qeForm.firstChild.childNodes0].value = qeEdit;

   qeForm.firstChild.childNodes1].value = wpStarttime;

   qeForm.firstChild.childNodes2].value = wpEdittime;

   qeForm.firstChild.childNodes3].value = wpSummary;

   qeForm.firstChild.childNodes4].value = wpTextbox1;

 

   qeForm.firstChild.childNodes5].value = wpEditToken;

   qeForm.firstChild.childNodes6].value = wpAutoSummary;

 

   document.getElementById('wpWatchthis').checked = wpWatchthis;

 

   qeForm.action = formaction;

 

   document.getElementById('qeSummary').value = wpSummary;

 

   // store the original text for diff

   qeOriginalText = wpTextbox1;

}

 

function qeSetToolbar(type)

{

   var search = document.getElementById('qeSearch'),

       chars  = document.getElementById('specialchars-container'),

       close = document.getElementById('qeClose');

 

   search.style.display = (type == 1)?'block':'none';

   chars.style.display = (type == 2)?'block':'none';

 

   close.style.display = (type != 0)?'block':'none';

}

 

function qeToggleScroll()

{

   if (qeMode != MODE_PREVIEW) return;

 

   qeScrollMode = !qeScrollMode;

 

   var img = document.getElementById('icon-scroll');

   img.src   = qeScrollMode ? qeResource('arrowdown') : qeResource('arrowup');

   img.title = qeScrollMode ? qePhrase('scrolloff'): qePhrase('scrollon');

 

   qePreview.style.height   = qeScrollMode ? qeTextboxHeightPixel : null;

   qePreview.style.overflow = qeScrollMode ? 'scroll' : 'hidden';

}

 

// QuickEdit 2.3: Search

 

function qeCreateSearchBox(node)

{

   sr$f = node;

 

   node.style.color    = '#888';

   node.style.fontSize = '0.83em';

 

   node.appendChild(document.createTextNode(qePhrase('srsearch') + ': '));

 

   // search box

   var input = document.createElement('input');

   input.id = 'srSearch';

   input.type = 'text';

   input.style.marginRight = '0.7em';

   input.setAttribute('onkeypress', 'event.which == 13 && srNext()');

   node.appendChild(input);

 

   sr$s = input;

 

   node.appendChild(document.createTextNode(qePhrase('srreplace') + ': '));

 

   // replace box

   input = input.cloneNode(false);

   input.id = 'srReplace';

   node.appendChild(input);

 

   sr$r = input;

 

   // the find and replace-links

   var a = document.createElement('a');

   a.href             = 'javascript:srBack()';

   a.style.color      = '#888';

   a.appendChild(document.createTextNode('<'));

   node.appendChild(a);

 

   var links = [['srNext()',             '0.4em', qePhrase('srfind') + ' >'],

                'srReplace();srBack()', '1em',   '<'],

                'srReplace()',          '0.4em', qePhrase('srreplace')],

                'srReplace;srNext()',   '0.4em', '>'],

                'srReplaceall()',       '1em',   qePhrase('srreplaceall')]];

 

   for (var i = 0; i < links.length; i++)

   {

      var a = a.cloneNode(false);

      a.href             = 'javascript:' + linksi][0];

      a.style.marginLeft = linksi][1];

      a.appendChild(document.createTextNode(linksi][2]));

      node.appendChild(a);

   }

 

   // two checkboxes

   var input = document.createElement('input');

   input.id               = 'srCase';

   input.type             = 'checkbox';

   input.style.marginLeft = '1em';

   input.setAttribute('onclick', 'document.getElementById("srSearch").focus()');

 

   var label = document.createElement('label');

   label.htmlFor          = 'srCase';

   label.appendChild(document.createTextNode(qePhrase('srmatchcase')));

 

   node.appendChild(input);

   node.appendChild(label);

 

   sr$mc = input;

 

   var input = input.cloneNode(false);

   var label = label.cloneNode(false);

   input.id               = 'srRegexp';

   label.htmlFor          = 'srRegexp';

   label.appendChild(document.createTextNode(qePhrase('srregexp')));

 

   node.appendChild(input);

   node.appendChild(label);

 

   sr$re = input;

 

   // set up searchbox.js specific variables

   sr$t = qeForm.firstChild.childNodes4];

}

 

 

// QuickEdit 2.1: Preferences stuff

 

function qePreferences()

{

   if (qeMode == MODE_PREF)

   {

      qePrefMode = false;

      qeDestroyPrefForm();

      return;

   }

 

   qePrefMode = true;

   qeMakePrefForm();

}

 

function qeMakePrefForm()

{

   // set the style of the pref tab selected

   var tab = document.getElementById('qeTabPref');

   tab.style.border       = '1px solid #888';

   tab.style.borderBottom = 'none';

   tab.style.fontWeight   = 'bold';

   tab.style.marginLeft   = '0px';

 

   // hide preview div, the form and the other tabs

   qeForm.style.display    = 'none';

   qePreview.style.display = 'none';

 

   var ul = qeParent.firstChild;

   for (var i = 0; i < ul.childNodes.length && ul.childNodesi != tab; i++)

      ul.childNodesi].style.display = 'none';

 

   // create pref div

   qePref = document.createElement('div');

   qePref.style.textAlign  = 'center';

   qePref.style.minHeight  = '200px';

   qePref.style.lineHeight = '2em';

   qePref.style.border     = '1px dotted #aaa';

   qePref.style.backgroundColor = '#fff';

 

   var h = document.createElement('div');

   h.style.borderBottom    = '1px solid #aaa';

   h.style.textAlign       = 'left';

   h.style.fontSize        = '14px';

   h.style.fontWeight      = 'bold';

   h.style.paddingLeft     = '10px';

   h.style.margin          = '20px 50px';

   h.appendChild(document.createTextNode(qePhrase('prefheading')));

 

   qePref.appendChild(h);

 

   for (var i = 0; i < qeOptions.length; i++)

   {

      var name = qeOptionsi][0], type = qeOptionsi][1], defaultval = qeOptionsi][2],

          userval = qeOptionsi][3];

 

      if (!userval) userval = defaultval;

 

      var e = document.createElement('input'), // input element

          d = document.createElement('label'); // description

 

      // set input element attributes

      e.id = 'o-' + name;

      e.name = e.id;

      if (type == 'bool')

      {

         e.type = 'checkbox';

         e.checked = (userval == 'true');

      }

 

      // set description attributes

      d.htmlFor = e.id;

      d.style.fontWeight  = 'bold';

      d.style.marginRight = '5px';

      d.appendChild(document.createTextNode(qePhrase('o' + name)));

 

      qePref.appendChild(d);

      qePref.appendChild(e);

 

      if (i != qeOptions.length - 1)

         qePref.appendChild(document.createElement('br'));

   }

 

   // insert node before preview

   qePreview.parentNode.insertBefore(qePref, qePreview);

}

 

function qeDestroyPrefForm()

{

   qePref.parentNode.removeChild(qePref);

   qePref = null;

 

   // restore: form, tabs

   qeForm.style.display = 'block';

 

   var ul = qeParent.firstChild;

   for (var i = 0; i < ul.childNodes.length; i++)

      ul.childNodesi].style.display = 'inline';

 

   // reset tab style

   var tab = document.getElementById('qeTabPref');

   tab.style.border       = '1px solid #aaa';

   tab.style.borderBottom = 'none';

   tab.style.fontWeight   = 'normal';

   tab.style.marginLeft   = '16px';

 

   qeSwitch(0); // make sure to get back into edit mode

}

 

 

// QuickEdit 2: Preview stuff

 

function qeSwitch(type)

{

   if (qeEdit == -1 || qeRequestState || qeMode == MODE_PREF) return;

 

   if (type == 3 && typeof(WDiffString) != 'function') // diff mode

   {

      qeDiff.appendChild(document.createTextNode('Error: Couldn\'t load diff.js'));

      return;

   }

 

   switch (type)

   {

      case 1:   var lid = document.getElementById('qeTabPreview'); break;

      case 2:   var lid = document.getElementById('qeTabDiff'); break;

      default: var lid = document.getElementById('qeTabEdit'); break;

   }

 

   switch (qeMode)

   {

      case MODE_PREVIEW: var lia = document.getElementById('qeTabPreview'); break;

      case MODE_DIFF:    var lia = document.getElementById('qeTabDiff'); break;

      default:           var lia = document.getElementById('qeTabEdit'); break;

   }

 

   lia.style.border = '1px solid #aaa';

   lia.style.fontWeight = 'normal';

   lia.style.zIndex = '1';

 

   lid.style.border = '1px solid #888';

   lid.style.fontWeight = 'bold';

   lid.style.zIndex = '3';

 

   lia.style.borderBottom = lid.style.borderBottom = '1px none #aaa';

 

   // now check if there is any change

   type = parseInt(type);

   if (type == qeMode) return;

 

   qeMode = type;

 

   if (qeMode != MODE_DIFF) qeDiff.innerHTML = '';

 

   // switch to preview

   if (qeMode == MODE_PREVIEW)

   {

      // set scroll mode image

      var img = document.getElementById('icon-scroll');

      img.src   = qeScrollMode ? qeResource('arrowdown') : qeResource('arrowup');

      img.title = qeScrollMode ? qePhrase('scrolloff'): qePhrase('scrollon');

      img.style.display = 'inline';

 

      // set preview height

      if (qeScrollMode) qePreview.style.height = qeTextboxHeightPixel;

 

      // set bg color according to the background of the current section

      qePreview.style.backgroundColor =

         qeGetBGColorOf(document.getElementById('section-' + qeEdit))

      || qeGetBGColor();

 

      // remove all child nodes from previous previews, if any

      for (var i = 1; i < qePreview.childNodes.length; i++)

         qePreview.removeChild(qePreview.childNodesi]);

 

      // hide quickedit, hide diff

      qeForm.firstChild.style.display = 'none';

      qeDiff.style.display = 'none';

 

      // show preview

      qePreview.style.display = 'block';

      qePreview.firstChild.style.display = 'block';

 

      qeLoadPreview();

   }

 

   else if (qeMode == MODE_QUICKEDIT)

   {

      // hide diff, hide preview

      qeDiff.style.display = 'none';

      qePreview.style.display = 'none';

      document.getElementById('icon-scroll').style.display = 'none';

 

      // show quickedit

      qeForm.firstChild.style.display = 'block';

   }

 

   else // MODE_DIFF

   {

      // hide quickedit, hide preview

      qeForm.firstChild.style.display = 'none';

      qePreview.style.display = 'none';

      document.getElementById('icon-scroll').style.display = 'none';

 

      // show diff

      qeDiff.style.display = 'block';

      qeDiff.style.height = qeTextboxHeightPixel;

 

      qeLoadDiff();

   }

}

 

function qeLoadDiff()

{

	var currenttext = document.getElementById('wpTextbox1').value;

 

	qeDiff.innerHTML = WDiffShortenOutput(WDiffString(qeOriginalText, currenttext));

 

	var div = document.createElement('div');

	div.style.textAlign   = 'right';

        div.style.position    = 'relative';

        div.style.bottom      = '10px';

 

     var span = document.createElement('span');

     span.style.fontSize  = '8pt';

     span.style.color     = '#aaa';

     span.style.marginRight = '10%';

 

	 span.appendChild(document.createTextNode('Using '));

 

      var a = document.createElement('a');

      a.href                 = qeResource('diffscript');

      a.style.textDecoration = 'underline';

      a.style.color          = '#aaa';

      a.appendChild(document.createTextNode('diff.js'));

 

	 span.appendChild(a);

	 span.appendChild(document.createTextNode(' by Cacycle'));

 

	div.appendChild(span);

 

	qeDiff.appendChild(div);

}

 

function qeLoadPreview()

{

   if (qeEdit == -1 || qeRequestState || !qeEditLink || qeMode != MODE_PREVIEW || !qeFormAction)

      return;

 

   var link = qeEditLink + qeEdit;

   qeRequestState = REQ_SUBMIT;

 

   qeRequest.onreadystatechange = qeAjaxResponse;

   qeRequest.open('POST', qeFormAction, true);

 

   var send = qeMakeFormRequest();

 

   qeRequest.overrideMimeType('text/xml');

   qeRequest.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');

   qeRequest.setRequestHeader('Content-length', send.length);

   qeRequest.setRequestHeader('Content', send.length);

   qeRequest.send(send);

}

 

function qeMakeFormRequest()

{

   if (!qeForm) return null;

 

   var str = '';

 

   var inputs = qeForm.getElementsByTagName('input');

   for (var i = 0; i < inputs.length; i++)

      if (inputsi].value && inputsi].value.length > 0)

         str += '&' + inputsi].name + '=' + encodeURIComponent(inputsi].value);

 

   str += '&wpPreview=Preview' +

          '&wpTextbox1=' +

          encodeURIComponent(document.getElementById('wpTextbox1').value);

 

   return str.substr(1);

}

 

function qeTabMouseOverOut(obj, out)

{

   var coloronly = false;

/* if (obj.id == 'qeTabEdit' || obj.id == 'qeTabPreview' || obj.id == 'qeTabPref')

   {

      if (qeMode == MODE_PREF)

      {

         if (obj.id == 'qeTabPref') coloronly = true;

      }

*/

      if ((qeMode == MODE_PREVIEW && obj.id == 'qeTabPreview') ||

          (qeMode == MODE_QUICKEDIT && obj.id == 'qeTabEdit') ||

          (qeMode == MODE_DIFF && obj.id == 'qeTabDiff'))

         coloronly = true;

// }

 

   obj.style.backgroundColor = out?'#fafafa':'#fff';

 

   if (!coloronly)

   {

      obj.style.borderColor = out?'#aaa':'#888';

      obj.style.zIndex      = out?1:3;

   }

}

 

// Ajax stuff

 

function qeInitAjax()

{

   try

   {

      if (window.XMLHttpRequest)

      {

         qeRequest = new XMLHttpRequest();

         qeRequest.overrideMimeType('text/xml');

      }

 

      else if (window.ActiveXObject)

         qeRequest = new ActiveXObject('Microsoft.XMLHTTP');

 

      else throw 'Kein AJAX-Objekt vorhanden';

   }

 

   catch (e)

   {

      qeShowError(e);

      return false;

   }

 

   if (!qeRequest)

   {

      qeShowError('AJAX-Objekt konnte nicht erstellt werden');

      return false;

   }

 

   return true;

}

 

 

function qeGetSection()

{

   if (qeEdit == -1 || !qeForm || !qeRequest || !qeEditLink || qeRequestState) return;

 

   var link = qeEditLink + qeEdit;

 

   qeRequestState = REQ_RECEIVE;

 

   qeRequest.onreadystatechange = qeAjaxResponse;

 

   qeRequest.open('GET', link, true);

   qeRequest.send(null);

}

 

 

function qeAjaxResponse()

{

   if (!qeRequestState)

   {

      alert('QuickEdit Fehler: qeAjaxResponse');

      return;

   }

 

   // receive

   if (qeRequestState == REQ_RECEIVE && qeEdit != -1)

   {

      if (qeRequest.readyState != 4 || qeRequest.status != 200)

         return;

 

      qeRequestState = REQ_IDLE;

 

      var xml = qeRequest.responseXML;

 

      try // MediaWiki bug 6986 workaround

      {

         var wpTextbox1 = xml.getElementById('wpTextbox1').value;

      }

      catch (e)

      {

         xml = qeFixXML(qeRequest.responseText);

         if (!xml)

         {

            qeShowError('XML parsing fehlgeschlagen.');

            return;

         }

 

         var wpTextbox1 = xml.getElementById('wpTextbox1').value;

      }

 

      var wpStarttime, wpEdittime, wpSummary,

          wpEditToken, wpAutoSummary, wpWatchthis;

 

      var inputs = xml.getElementsByTagName('input');

      for (i = 0; i < inputs.length; i++)

      {

         if (inputsi].name == 'wpSection') wpSection = inputsi].value;

         else if (inputsi].name == 'wpStarttime') wpStarttime = inputsi].value;

         else if (inputsi].name == 'wpEdittime') wpEdittime = inputsi].value;

         else if (inputsi].name == 'wpSummary') wpSummary = inputsi].value;

 

         else if (inputsi].name == 'wpEditToken') wpEditToken = inputsi].value;

         else if (inputsi].name == 'wpAutoSummary') wpAutoSummary = inputsi].value;

 

         else if (inputsi].name == 'wpWatchthis') wpWatchthis = inputsi].checked;

      }

 

      var formaction = xml.getElementById('editform').action;

 

      var specialchars = document.getElementById('specialchars-container');

      if (specialchars.childNodes.length == 0 && xml.getElementById('specialchars'))

      {

         var node = xml.getElementById('specialchars').cloneNode(true);

         node.style.background = 'none';

         node.style.border     = 'none';

         node.style.fontSize   = '8pt';

 

         for (var i = 0; i < node.childNodes.length; i++)

            if (node.childNodesi].nodeName == 'A')

            {

               node.removeChild(node.childNodesi]);

               node.removeChild(node.childNodesi+1]);

               break;

            }

 

         specialchars.appendChild(node);

 

         addCharSubsetMenu(); // wikipedia script

      }

 

      // sollte nie passieren, wenn doch -> fatal error

      if (wpSection != qeEdit)

      {

         qeAlert(qePhrase('varmismatch'));

         qeRequestState = REQ_IDLE;

         qeAbortEdit();

         return;

      }

 

      qeFillForm(formaction, wpStarttime, wpEdittime, wpSummary, wpTextbox1,

                 wpEditToken, wpAutoSummary, wpWatchthis);

      return;

   }

 

   // preview (submit)

   if (qeRequestState == REQ_SUBMIT && qeEdit != -1)

   {

      if (qeRequest.readyState != 4 || qeRequest.status != 200)

         return;

 

      qeRequestState = REQ_IDLE;

 

      try

      {

         var xml = qeRequest.responseXML;

         var prev = xml.getElementById('wikiPreview').cloneNode(true);

      }

      catch (e)

      {

         // try to fix it, then try to parse again

         try

         {

            xml = qeFixXML(qeRequest.responseText);

            prev = xml.getElementById('wikiPreview').cloneNode(true);

         }

 

         catch (e)

         {

            qePreviewDisabled = true;

            qePreview.firstChild.firstChild.nodeValue = qePhrase('noprev');

 

            var tab = document.getElementById('qeTabPreview');

            tab.firstChild.style.color = '#888';

            return;

         }

      }

 

      qePreview.firstChild.style.display = 'none';

 

      while (prev.childNodes.length > 0 && prev.firstChild.className != 'previewnote')

         prev.removeChild(prev.firstChild);

 

      prev.removeChild(prev.firstChild);

      qePreview.appendChild(prev);

 

      return;

   }

}

 

function qeSubmitByReturn(e)

{

   if (e && e.keyCode == 13) qeSubmit(0);

   return false;

}

 

function qeSubmit(preview)

{

   if (qeEdit == -1 || !qeRequest || !qeForm || qeRequestState)

      return;

 

   qeForm.firstChild.childNodes3].value = document.getElementById('qeSummary').value;

 

   if (preview == 1)

   {

      var prev = document.createElement('input');

      prev.name = 'wpPreview';

      prev.value = 'Preview';

      prev.type = 'hidden';

      qeForm.appendChild(prev);

   }

 

   qeForm.submit();

}

 

// MediaWiki bug 6986 workaround

function qeFixXML(text)

{

   var pos = text.indexOf('<h1 class="firstHeading">');

   var pos2 = text.indexOf('</h1>');

   if (pos == -1 || pos2 == -1) return null;

 

   text = text.substring(0, pos) + text.substring(pos2+5);

 

/************  removed, should be working now

 

   // two workarounds for wiki commons

   if (wgServer.indexOf('commons') != -1)

   {

      // replace the old <br>-tags with <br />

      text = text.replace(/<br>/g, '<br />');

 

      // append a </p> which is missing at the end of the copyright notice below the textarea

      backsl = String.fromCharCode(92); // as we know, MediaWiki strips backslashes out

 

      regex = eval('/' + 'rel="nofollow">Wikipedia<' + backsl + '/a><' + backsl + '/span>/');

      text = text.replace(regex, '$0'+'</p>');

   }

************/

 

   var parser = new DOMParser();

   var newdoc = parser.parseFromString(text, "text/xml");

   return newdoc;

}

 

// Signature

 

function qeAddSignature()

{

   wpTextbox1 = document.getElementById('wpTextbox1');

   // IE support

   if (document.selection)

   {

      wpTextbox1.focus();

      sel = document.selection.createRange();

      sel.text = qeSignature;

   }

 

   // MOZILLA/NETSCAPE support

   else if (wpTextbox1.selectionStart || wpTextbox1.selectionStart == '0')

   {

      var startpos = wpTextbox1.selectionStart;

      var endpos   = wpTextbox1.selectionEnd;

 

      wpTextbox1.value = wpTextbox1.value.substring(0, startpos)

                         + qeSignature

                         + wpTextbox1.value.substring(endpos, wpTextbox1.value.length);

 

      wpTextbox1.focus();

 

      endpos += qeSignature.length;

      if (endpos > wpTextbox1.length) endpos = wpTextbox1.length;

 

      wpTextbox1.setSelectionRange(endpos, endpos);

   }

 

   else

   {

      wpTextbox1.value += qeSignature;

      wpTextbox1.focus();

   }

}

 

 

 

// Language stuff

 

function qeGetBGColor()

{

   var ret = qeGetStyle(document.getElementById('content'), 'background-color');

   return ret?ret:'#fff';

}

 

function qeGetBGColorOf(node)

{

   var col = qeGetStyle(node, 'background-color');

 

   while (node && (!col || col == 'transparent'))

   {

      node = node.parentNode;

      col = qeGetStyle(node, 'background-color');

   }

 

   return (node && col)?col:null;

}

 

function qeGetStyle(elem, style)

{

   if (document.defaultView)

      return document.defaultView.getComputedStyle(elem, null).getPropertyValue(style);

   return null;

}

 

function qeSetLang()

{

   // default: English

   qeLang = 2;

 

   for (var i = 0; i < qeLanguages.length; i++)

      if (qeLanguagesi][0 == wgUserLanguage)

      {

         qeLang = i + 1;

         break;

      }

 

   qeSetPrefix();

}

 

function qePhrase(name)

{

   for (var i = 0; i < qePhrases.length; i++)

      if (qePhrasesi][0 == name)

         return qePhrasesi][qeLang];

 

   return 'UNDEFINED PHRASE: ' + name;

}

 

function qeSetPrefix()

{

// ausgeliehen vom Wikipedia-Script

   var pref = 'Alt';

 

   if (is_safari || navigator.userAgent.toLowerCase().indexOf('mac') + 1

       || navigator.userAgent.toLowerCase().indexOf('konqueror') + 1 )

                        pref = qePhrase('strg');

   else if (is_opera)   pref = qePhrase('shift') + '-Esc';

   else if (is_ff2_x11) pref = qePhrase('strg') + '-' + qePhrase('shift');

   else if (is_ff2_win) pref = 'Alt-' + qePhrase('shift');

   pref += '-';

 

   // p: number of the entry in the current phrase which is to be copied (EN if available, DE otherwise)

 

   for (var i = 0; i < qePhrases.length; i++)

   {

      // check for KEY:

      if (qePhrasesi][0].charAt(0) == 't')

         for (var j = 1; j < qePhrasesi].length; j++)

            qePhrasesi][j = qePhrasesi][j].replace(/KEY:(.)/, pref + '$1');

 

      for (var j = 1; j < qePhrasesi].length; j++)

      {

         if (j < 3 && qePhrasesi][j].length > 0) var p = j;

 

         if (qePhrasesi][j].length == 0) qePhrasesi][j = qePhrasesi][p + '**';

      }

   }

}

 

function qeResource(name)

{

   var commonsurl = 'http://upload.wikimedia.org/wikipedia/commons/';

   var wikiurl    = 'http://XX.wikipedia.org/?title=TT&action=raw&ctype=text/TYPE';

 

   for (var i = 0; i < qeResources.length; i++)

      if (qeResourcesi][0 == name)

      {

         var res = qeResourcesi][1];

 

         if (res.indexOf('c:') == 0)

            return commonsurl + res.substr(2);

 

         var type = 0;

         if (res.indexOf('js:') == 0) type = 1;

         else if (res.indexOf('css:') == 0) type = 2;

 

         if (type)

         {

            wikiurl = wikiurl.replace(/XX/, res.substring(res.indexOf(':') + 1,

                                                          res.indexOf(':', res.indexOf(':')+1)));

            wikiurl = wikiurl.replace(/TT/, res.substring(res.indexOf(':', res.indexOf(':')+1)+1));

            wikiurl = wikiurl.replace(/TYPE/, (type == 1)?'javascript':'css');

 

            return wikiurl;

         }

 

         return qeResourcesi][1];

      }

 

   return '';

}

 

var qeResources = 

   'arrowup',   'c:1/13/WikEd_align_top.png'],

   'arrowdown', 'c:a/a8/WikEd_align_down.png'],

 

   'chars',     'c:0/0d/WikEd_case_sensitive.png'],

   'searchbox', 'c:3/31/WikEd_preview.png'],

   'x',         'c:6/61/Crystal_128_error.png'],

 

   'language',  'js:de:Benutzer:ASM/quickedit-lang.js'],

   'diff',      'js:en:User:Cacycle/diff.js'],

   'style',     'css:de:Benutzer:ASM/quickedit.css'],

   'diffscript','http://en.wikipedia.org/wiki/User:Cacycle/diff.js'],

   'search',    'js:de:Benutzer:ASM/quickedit-search.js'

];

 

 

// import languages from external script ([[Benutzer:ASM/quickedit-lang.js]])

ImportScriptPlain(qeResource('language'));

 

 

// array content: var name | var type | default value | user value

// phrase name describing the option is is "'o' + var name"

// the user value will be read by the script from a cookie

// if there is no value set, the default value will be used

 

var qeOptions = 

   'qeScrollMode', 'bool', 'true',  null],

   'qeStickyMode', 'bool', 'false', null

];

 

 

/*</pre>*/

 

 

/*<pre>*/

 

// from [[MediaWiki:Onlyifediting.js]]

 

function addCharSubsetMenu()

{

var specialchars = document.getElementById('specialchars');

 

if (specialchars)

{

   switch(wgContentLanguage){

     case "ca":

       edittoolsOptions=

                     /*català*/

                     "matemàtiques","fonètica","diacrítiques","ciríl·lic","alt alemany antic",

                      "anglés antic","àrab","berber","bosni/serbocroata","castellà","escandinau",

                      "eslovac","esperanto","estonià","francés","gal·lés","grec","grec antic",

                      "hawaià","hebreu","holandés","hongarés","indoeuropeu","irlandés",

                      "islandés","italià","japonés (romanji)","jiddisch","letó","lituà","maltés",

                      "navajo i apatxe", "pinyin","polonés","portugués","romanés","serbi",

                      "turc i ll. turqueses", "txec","vietnamita"]; break;

     case "de":

       edittoolsOptions=

                     /*Deutsch*/

                     "Standard","WikiSyntax","IPA-Lautschrift","Lateinisch","AHD","Altenglisch",

                      "Altgriechisch","Arabisch","DMG-Umschrift","Esperanto","Estnisch",

                      "Französisch","Galicisch","Griechisch","Hawaiianisch","Isländisch",

                      "Italienisch","Jiddisch","Katalanisch","Kroatisch","Kyrillisch",

                      "Lettisch","Litauisch","Maltesisch","Pinyin","Polnisch","Portugiesisch",

                      "Romanisch","Rumänisch","Serbisch","Skandinavisch","Slowakisch","Spanisch",

                      "Tschechisch","Türkisch","Ungarisch","Vietnamesisch"

                     ]; break;

 

     case "it":

       edittoolsOptions=

                     /*Italiano*/

                     "Latino esteso","Wiki","Greco antico","Greco moderno","Cirillico","Arabo",

                      "Ebraico e yiddish","Armeno","Geroglifico","Vietnamita","IPA",

                      "Matematica"

                     ]; break;

 

 

     default : edittoolsOptions="Your Edittools are not defined"];

   }

 

   var menu = '<select style="display:inline" onChange="chooseCharSubset(selectedIndex)">';

   for(index in edittoolsOptions){

     menu += '<option>' + edittoolsOptionsindex + '</option>';

   }

   menu += '</select>';

   specialchars.innerHTML = menu + specialchars.innerHTML;

 

 // Standard-CharSubset

    chooseCharSubset(0);

}

}

 

// CharSubset-Auswahl

function chooseCharSubset(s)

{

   var l = document.getElementById('specialchars').getElementsByTagName('p');

      for (var i = 0; i < l.length ; i++)

      {

         li].style.display    = (i == s) ? 'inline'  : 'none';

         li].style.visibility = (i == s) ? 'visible' : 'hidden'; // for the CSS-unsure it-wp ;)

      }

}

 

/*</pre>*/





//note: this script MUST be added to the end of your monobook at all times.

//so when you add a new script to the end of your monobook, re-order them so this one is on the bottom.

$(function() {

        if(!document.getElementById('wpSummary') || document.getElementById('wpSummary').value != '' || !document.getElementById('wpTextbox1')) return;

        var my_value;

        if(wgCanonicalNamespace == 'User_talk') {

                if(wgPageName.indexOf('/') == -1 && wgTitle.split('/')[0 != wgUserName) 

                        my_value = 'Respond to '+wgTitle;

                else if(wgPageName.indexOf('archive') != -1 && wgTitle.split('/')[0 != wgUserName) 

                        my_value = 'Reviving archive';

                else if(wgPageName.indexOf('archive') != -1 && wgTitle.split('/')[0 == wgUserName)

                        my_value = 'Archiving...';

                else if(wgPageName.indexOf('/') == -1 && wgTitle.split('/')[0 == wgUserName) 

                        my_value = 'Reply';

                else

                        my_value = 'minor edit';

        } else if(wgCanonicalNamespace == 'User') {

                if(wgTitle.split('/')[0 == wgUserName)

                        my_value = 'fixing';

                else

                        my_value = 'fixing a minor mistake';

                

                             //note: leave as "Project". thats how mediawiki outputs it

        } else if(wgCanonicalNamespace == 'Project'||wgCanonicalNamespace == 'Project_talk') {

                if((/\w+ for deletion/i).test(wgTitle))

                        my_value = 'Add my opinion';

                else if((/requests for adminship/i).test(wgTitle))

                        my_value = 'Support';

                else if((/administrator.s noticeboard/i).test(wgTitle)) 

                        my_value = 'Reply';

                else if((/administrator intervention against vandalism/i).test(wgTitle))

                        my_value = 'Reporting user';

                else

                        my_value = 'Reply';

        } else {

                my_value = 'minor edit';

        }

        document.getElementById('wpSummary').value = my_value;

        document.getElementById('wpSummary').onfocus = function() {

                if(this.value != my_value) return;

                this.selectionStart = 0;

                this.selectionEnd = this.value.length;

        }

});

//

$(doAddQuickPreview);

Videos

Youtube | Vimeo | Bing

Websites

Google | Yahoo | Bing

Encyclopedia

Google | Yahoo | Bing

Facebook