Benutzer:Hexachloroiridic Acid/common.js
Zur Navigation springen
Zur Suche springen
Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.
- Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
- Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
- Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
if (typeof st_autokorrektur_an == "undefined") var st_autokorrektur_an = true;
if (typeof st_auch_benutzer_email == "undefined") var st_auch_benutzer_email = true;
if (typeof st_auch_upload_form == "undefined") var st_auch_upload_form = true;
if (typeof st_immer_doppelte_anfuehrungszeichen == "undefined") var st_immer_doppelte_anfuehrungszeichen = false;
if (typeof st_kein_gedankenstrich_bei_signatur == "undefined") var st_kein_gedankenstrich_bei_signatur = true;
if (typeof st_signatur_mit_leerzeichen == "undefined") var st_signatur_mit_leerzeichen = false;
if (typeof st_signatur_mit_leerzeichen_nbsp == "undefined") var st_signatur_mit_leerzeichen_nbsp = true;
if (typeof st_zeige_checkbox == "undefined") var st_zeige_checkbox = true;
var st_is_css_js_subpage = (wgCanonicalNamespace == "User" && wgTitle.match(/\/[^\/]+\.(css|js)/));
if (typeof st_quickedit == "undefined") var st_quickedit = true;
if (typeof st_link_mit_eckiger_klammer == "undefined") var st_link_mit_eckiger_klammer = true;
if (st_is_css_js_subpage) {
st_autokorrektur_an = false;
st_zeige_checkbox = false;
}
var st_wiked_aktiv = false;
var st_textbox = null;
if (!st_is_css_js_subpage && st_zeige_checkbox) {
if (typeof(wikEd) === 'undefined') {
wikEd = { };
}
if (typeof(wikEd.config) === 'undefined') {
wikEd.config = { };
}
if (typeof(wikEd.config.button) === 'undefined') {
wikEd.config.button = { };
}
if (typeof(wikEd.config.buttonBar) === 'undefined') {
wikEd.config.buttonBar = { };
}
wikEd.config.button[100] = ['wikEdAutokorrekturTypographer', 'wikEdButtonChecked', 'Autokorrektur an- und ausschalten', 'http://upload.wikimedia.org/wikipedia/commons/8/82/WikEd_fancyquotes.png', '16', '16', 'Autokorrektur', 'WikEdEditButton(this, this.id, null, function() { (st_autokorrektur_an = !st_autokorrektur_an) });' ];
wikEd.config.buttonBar['custom1'] = ['wikEdButtonBarCustom1', 'wikEdButtonBarCustom1', 'wikEdButtonsCustom1', 'wikEdButtonsCustom1', 44, 'Benutzerdefinierte Funktionen', [100] ];
}
function ie_getSelection(element) {
var range = document.selection.createRange(); // We'll use this as a 'dummy'
var stored_range = range.duplicate(); // Select all text
stored_range.moveToElementText(element); // Now move 'dummy' end point to end point of original range
stored_range.setEndPoint('EndToEnd', range); // Now we can calculate start and end points
element.selectionStart = stored_range.text.length - range.text.length;
element.selectionEnd = element.selectionStart + range.text.length;
}
function wiked_getSelection(element) {
var obj = {};
WikEdGetText(obj, 'selection');
wikEd.ParseDOM(obj, wikEd.frameBody);
element.value = obj.plain;
element.selectionStart = obj.plainFocus;
element.selectionEnd = obj.plainFocus;
getCurLine(element);
}
function getCurLine(textarea) {
var anfang = textarea.value.slice(0, textarea.selectionStart).lastIndexOf("\n") + 1;
var ende = textarea.value.slice(textarea.selectionStart).indexOf("\n");
if (ende == -1) {
textarea.curLine = textarea.value.slice(anfang);
} else {
textarea.curLine = textarea.value.slice(anfang, textarea.selectionStart + ende);
}
textarea.curLineOffset = anfang;
}
function setcursor(textarea, pos) {
if (document.selection && document.selection.createRange && !is_opera) { // Internet Explorer
var range = textarea.createTextRange();
range.collapse(true);
var anzahlZeilenumbrueche = textarea.value.slice(0, textarea.selectionStart).split('\r').length - 1;
range.moveStart("character", pos - anzahlZeilenumbrueche);
range.moveEnd("character", 0);
range.select();
} else {
textarea.selectionStart = pos;
textarea.selectionEnd = pos;
}
}
function createCheckbox() {
var container = document.createElement("div");
container.setAttribute("style", "float: right");
container.id = "st_autokorrektur_an_container";
container.innerHTML = '<input type="checkbox" id="st_autokorrektur_an" '
+ (st_autokorrektur_an ? 'checked="checked"' : "") + ' />'
+ '<label for="st_autokorrektur_an">Autokorrektur</label>';
container.childNodes[0].onchange = function() {
st_autokorrektur_an = this.checked;
st_textbox.focus();
}
return container;
}
function letzteEingabe(element, vergleich) {
return (element.curLine.slice(element.selectionStart - vergleich.length - element.curLineOffset, element.selectionStart - element.curLineOffset) == vergleich);
}
function einfuegen(element, text, anzahlLoeschen) {
var selStart = element.selectionStart; // Anfang der Auswahl zwischenspeichern, da sie in der nächsten Anweisung verändert wird.
var scrollPos = element.scrollTop;
element.value = element.value.slice(0, element.selectionStart - anzahlLoeschen) + text + element.value.slice(element.selectionEnd);
setcursor(element, selStart - anzahlLoeschen + text.length);
element.scrollTop = scrollPos;
}
function einfuegenWikEd(element, text, anzahlLoeschen) {
var obj = {};
WikEdGetText(obj, 'selection');
if (anzahlLoeschen > 0) {
obj.selection.range.setStart(obj.sel.focusNode, obj.sel.focusOffset - anzahlLoeschen);
wikEd.FrameExecCommand('delete');
}
wikEd.FrameExecCommand('inserthtml', text);
}
function charAt(element, position) {
return element.value.charAt(position);
}
function charAtWikEd(element, position) {
return element.curLine.charAt(position);
}
function letztesVorkommen(element, text) {
return element.curLine.slice(0, element.selectionStart - element.curLineOffset).lastIndexOf(text);
}
function isNumeric(c) {
return (c != "") && ("0123456789".indexOf(c) != -1);
}
function wikEdAktiviert() {
if ((st_zeige_checkbox) && document.getElementById("st_autokorrektur_an_container") != null) {
document.getElementById("st_autokorrektur_an_container").style.display = "none";
}
st_wiked_aktiv = true;
}
function wikEdDeaktiviert() {
if (st_zeige_checkbox) {
if (document.getElementById("st_autokorrektur_an_container") != null) {
document.getElementById("st_autokorrektur_an_container").style.display = "block";
}
if (document.getElementById("st_autokorrektur_an") != null) {
document.getElementById("st_autokorrektur_an").checked = st_autokorrektur_an;
}
}
st_wiked_aktiv = false;
}
function setupForWikEd() {
wikEd.AddEventListener(wikEd.frameDocument, 'keypress', autokorrektur, true);
wikEd.frameDocument.letzteEingabe = function(vergleich) { return letzteEingabe(this, vergleich) };
wikEd.frameDocument.einfuegen = function(text, anzahlLoeschen) { return einfuegenWikEd(this, text, anzahlLoeschen) };
wikEd.frameDocument.letztesVorkommen = function(text) { return letztesVorkommen(this, text) };
wikEd.frameDocument.charAt = function(position) { return charAtWikEd(this, position) };
document.getElementById("wikEdAutokorrekturTypographer").className = (st_autokorrektur_an ? "wikEdButtonChecked" : "wikEdButtonUnchecked");
document.getElementById("wikEdAutokorrekturTypographer").setAttribute("checked", st_autokorrektur_an);
wikEdAktiviert();
}
function autokorrektur(evt) {
if (!st_autokorrektur_an) return true;
if (document.selection && document.selection.createRange && !is_opera) { // Internet Explorer
ie_getSelection(this);
var keyCode = event.keyCode;
if (keyCode == 0) {
keyCode = event.charCode;
}
} else {
var keyCode = evt.which;
if (keyCode == 0) {
keyCode = evt.charCode;
}
}
if (!(keyCode == 34 || keyCode == 45 || keyCode == 46 || keyCode == 39 || keyCode == 126 || keyCode == 62 || keyCode == 91)) {
return true;
}
if (st_wiked_aktiv) {
wiked_getSelection(this);
}
var selStart = this.selectionStart;
var selEnde = this.selectionEnd;
if (!st_wiked_aktiv) {
getCurLine(this);
}
var cancel = false;
switch (keyCode) {
case 91:
if (selEnde - selStart > 0 && st_link_mit_eckiger_klammer) {
insertTags("[[", "]]", "");
cancel = true;
}
break;
case 34:
if (selEnde - selStart > 0) {
insertTags("„", "“", "");
cancel = true;
} else if (this.letzteEingabe("=") || this.letztesVorkommen("=\"") > this.letztesVorkommen(">") || this.letztesVorkommen("=\"") > this.letztesVorkommen("|}")) {
return true;
} else if (selStart - this.curLineOffset == 0 || this.letzteEingabe("\n") || this.letzteEingabe(" ")
|| this.letzteEingabe("(") || this.letzteEingabe("[") || this.letzteEingabe("{") || this.letzteEingabe("|")) {
if (!st_immer_doppelte_anfuehrungszeichen && this.letztesVorkommen("„") > this.letztesVorkommen("“")) {
this.einfuegen("‚", 0);
} else {
this.einfuegen("„", 0);
}
} else {
if (isNumeric(this.charAt(this.selectionStart - 1)) && this.letztesVorkommen("„") <= this.letztesVorkommen("“")) {
this.einfuegen("″", 0);
} else if (!st_immer_doppelte_anfuehrungszeichen && this.letztesVorkommen("‚") > this.letztesVorkommen("‘")) {
this.einfuegen("‘", 0);
} else {
this.einfuegen("“", 0);
}
}
cancel = true;
break;
case 45:
if (this.letzteEingabe("–")) {
this.einfuegen("--", 1);
} else if (this.letzteEingabe("-") && !this.letzteEingabe("--") && !this.letzteEingabe("<!-")) {
this.einfuegen("–", 1);
cancel = true;
}
break;
case 46:
if (this.letzteEingabe("..")) {
this.einfuegen("…", 2);
cancel = true;
}
break;
case 39:
if (this.letzteEingabe("’") || this.letzteEingabe("′")) {
this.einfuegen("''", 1);
cancel = true;
} else if (isNumeric(this.charAt(this.selectionStart - 1))) {
this.einfuegen("′", 0);
cancel = true;
} else if (!this.letzteEingabe("'")) {
this.einfuegen("’", 0);
cancel = true;
}
break;
case 126:
if (st_kein_gedankenstrich_bei_signatur) {
if (!st_signatur_mit_leerzeichen && this.letzteEingabe("–")) {
this.einfuegen("--", 1);
} else if (st_signatur_mit_leerzeichen && this.letzteEingabe("– ")) {
if (st_signatur_mit_leerzeichen_nbsp) {
if (st_wiked_aktiv) {
this.einfuegen("--&nbsp;", 2);
} else {
this.einfuegen("-- ", 2);
}
} else {
this.einfuegen("-- ", 2);
}
}
} else {
if (st_signatur_mit_leerzeichen && st_signatur_mit_leerzeichen_nbsp && this.letzteEingabe("– ")) {
if (st_wiked_aktiv) {
this.einfuegen("&nbsp;", 1);
} else {
this.einfuegen(" ", 1);
}
}
}
break;
case 62:
if (this.letzteEingabe("–")) {
this.einfuegen("--", 1);
} else if (this.letzteEingabe("-") && !this.letzteEingabe("--")) {
this.einfuegen("→", 1);
cancel = true;
}
break;
}
if (st_wiked_aktiv && cancel) {
evt.preventDefault();
return true;
} else {
return !cancel;
}
}
function st_find_textbox() {
if (st_is_css_js_subpage) {
return null;
} else if (document.getElementById("wpTextbox1")) {
if (!document.getElementById("wpTextbox1").readOnly) {
return document.getElementById("wpTextbox1");
}
} else if (st_auch_benutzer_email && document.getElementById("wpText")) {
return document.getElementById("wpText");
} else if (st_auch_upload_form && document.getElementById("wpUploadDescription")) {
return document.getElementById("wpUploadDescription");
}
return null;
}
function st_textbox_init() {
st_textbox.onkeypress = autokorrektur;
st_textbox.letzteEingabe = function(vergleich) { return letzteEingabe(this, vergleich); }
st_textbox.einfuegen = function(text, anzahlLoeschen) { return einfuegen(this, text, anzahlLoeschen); }
st_textbox.letztesVorkommen = function(text) { return letztesVorkommen(this, text); }
st_textbox.charAt = function(position) { return charAt(this, position); }
if (st_zeige_checkbox) {
var checkbox = createCheckbox();
if (document.getElementById("toolbar")) {
document.getElementById("toolbar").appendChild(checkbox);
} else if (document.getElementById("wikiEditor-ui-toolbar")) {
document.getElementById("wikiEditor-ui-toolbar").appendChild(checkbox);
} else {
if (st_quickedit) { // Workaround
var frm = qeNodes.Form;
frm.parentNode.insertBefore(checkbox, frm);
} else {
st_textbox.parentNode.insertBefore(checkbox, st_textbox);
}
}
}
}
function st_init() {
st_textbox = st_find_textbox();
if (st_textbox != null) {
st_textbox_init();
}
}
function st_qe_init() {
st_textbox = qeNodes.Form.firstChild.childNodes[4];
if (st_textbox != null) {
st_textbox_init();
}
}
$(st_init);
if (!st_is_css_js_subpage) {
if (typeof(wikEd) == 'undefined') { wikEd = {}; }
if (typeof(wikEd.config) == 'undefined') { wikEd.config = {}; }
if (typeof(wikEd.config.setupHook ) == 'undefined') { wikEd.config.setupHook = []; }
if (typeof(wikEd.config.onHook ) == 'undefined') { wikEd.config.onHook = []; }
if (typeof(wikEd.config.offHook ) == 'undefined') { wikEd.config.offHook = []; }
wikEd.config.setupHook.push(setupForWikEd);
wikEd.config.onHook.push(wikEdAktiviert);
wikEd.config.offHook.push(wikEdDeaktiviert);
if (st_quickedit) {
qeAddHook("qeMakeForm", st_qe_init);
}
}