<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.uni-konstanz.de/mediaewiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sorin.gheorghiu</id>
	<title>MediaeWiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.uni-konstanz.de/mediaewiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sorin.gheorghiu"/>
	<link rel="alternate" type="text/html" href="https://wiki.uni-konstanz.de/mediaewiki/index.php/Spezial:Beitr%C3%A4ge/Sorin.gheorghiu"/>
	<updated>2026-04-09T19:29:16Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki.uni-konstanz.de/mediaewiki/index.php?title=MediaWiki:Gadget-XTools-ArticleInfo.js&amp;diff=38734</id>
		<title>MediaWiki:Gadget-XTools-ArticleInfo.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-konstanz.de/mediaewiki/index.php?title=MediaWiki:Gadget-XTools-ArticleInfo.js&amp;diff=38734"/>
		<updated>2024-04-04T12:27:34Z</updated>

		<summary type="html">&lt;p&gt;Sorin.gheorghiu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/**&lt;br /&gt;
 * XTools ArticleInfo gadget&lt;br /&gt;
 * Based on meta.wikimedia.org/wiki/User:Hedonil/XTools&lt;br /&gt;
 * Documentation: mediawiki.org/wiki/XTools/ArticleInfo_gadget&lt;br /&gt;
 * Released under GPL 3.0+ license&lt;br /&gt;
 * For updates, please copy and paste from https://xtools.wmcloud.org/articleinfo-gadget.js&lt;br /&gt;
 */&lt;br /&gt;
$(function () {&lt;br /&gt;
    if (mw.config.get(&#039;wgArticleId&#039;) === 0 || // no deleted articles, no special pages&lt;br /&gt;
            mw.config.get(&#039;wgCurRevisionId&#039;) !== mw.config.get(&#039;wgRevisionId&#039;) || // only current revision&lt;br /&gt;
            mw.config.get(&#039;wgAction&#039;) !== &#039;view&#039;) { // only when viewing a page, not editing&lt;br /&gt;
        return;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    var $result,&lt;br /&gt;
        markup = &amp;quot;&amp;lt;div id=&#039;xtools&#039; style=&#039;font-size:84%; line-height:1.2em;&amp;quot; +&lt;br /&gt;
        &amp;quot;width:auto;&#039;&amp;gt;&amp;lt;span id=&#039;xtools_result&#039;&amp;gt;.&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;;&lt;br /&gt;
    $(markup).insertBefore(&#039;#contentSub&#039;);&lt;br /&gt;
    $result = $(&#039;#xtools_result&#039;);&lt;br /&gt;
&lt;br /&gt;
    var loadinganimation = window.setInterval(function () {&lt;br /&gt;
        if ($result.html() === &#039;.&amp;amp;nbsp;&amp;amp;nbsp;&#039;) {&lt;br /&gt;
            $result.html(&#039;&amp;amp;nbsp;.&amp;amp;nbsp;&#039;);&lt;br /&gt;
        } else if ($result.html() === &#039;&amp;amp;nbsp;.&amp;amp;nbsp;&#039;) {&lt;br /&gt;
            $result.html(&#039;&amp;amp;nbsp;&amp;amp;nbsp;.&#039;);&lt;br /&gt;
        } else {&lt;br /&gt;
            $result.html(&#039;.&amp;amp;nbsp;&amp;amp;nbsp;&#039;);&lt;br /&gt;
        }&lt;br /&gt;
    }, 300);&lt;br /&gt;
&lt;br /&gt;
    $.get(&lt;br /&gt;
        &#039;https://xtools.wmcloud.org/api/page/articleinfo/&#039; +&lt;br /&gt;
        mw.config.get(&#039;wgServerName&#039;) + mw.config.get(&#039;wgScriptPath&#039;) + &#039;/&#039; + &lt;br /&gt;
        mw.config.get(&#039;wgPageName&#039;).replace(/[&amp;quot;?%&amp;amp;+\\]/g, escape) + &#039;?format=html&#039; +&lt;br /&gt;
        &#039;&amp;amp;uselang=&#039; + mw.config.get(&#039;wgUserLanguage&#039;)&lt;br /&gt;
    ).done(function (result) {&lt;br /&gt;
        $result.html(result);&lt;br /&gt;
        clearInterval(loadinganimation);&lt;br /&gt;
    });&lt;br /&gt;
});&lt;/div&gt;</summary>
		<author><name>Sorin.gheorghiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-konstanz.de/mediaewiki/index.php?title=Benutzer:Sorin.gheorghiu/common.js&amp;diff=38733</id>
		<title>Benutzer:Sorin.gheorghiu/common.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-konstanz.de/mediaewiki/index.php?title=Benutzer:Sorin.gheorghiu/common.js&amp;diff=38733"/>
		<updated>2024-04-04T12:26:21Z</updated>

		<summary type="html">&lt;p&gt;Sorin.gheorghiu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;//mw.loader.load(&#039;https://www.mediawiki.org/w/index.php?title=XTools/ArticleInfo.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;);&lt;/div&gt;</summary>
		<author><name>Sorin.gheorghiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-konstanz.de/mediaewiki/index.php?title=MediaWiki:Gadgets-definition&amp;diff=38732</id>
		<title>MediaWiki:Gadgets-definition</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-konstanz.de/mediaewiki/index.php?title=MediaWiki:Gadgets-definition&amp;diff=38732"/>
		<updated>2024-04-04T09:24:42Z</updated>

		<summary type="html">&lt;p&gt;Sorin.gheorghiu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&#039;font-family:monospace; word-break:break-all;&#039;&amp;gt;&lt;br /&gt;
== browsing ==&lt;br /&gt;
* ReferenceTooltips[ResourceLoader|default|type=general|dependencies=mediawiki.cookie,jquery.client]|ReferenceTooltips.js|ReferenceTooltips.css&lt;br /&gt;
== information ==&lt;br /&gt;
* XTools-ArticleInfo[ResourceLoader]|XTools-ArticleInfo.js&lt;/div&gt;</summary>
		<author><name>Sorin.gheorghiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-konstanz.de/mediaewiki/index.php?title=Benutzer:Sorin.gheorghiu/common.js&amp;diff=38731</id>
		<title>Benutzer:Sorin.gheorghiu/common.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-konstanz.de/mediaewiki/index.php?title=Benutzer:Sorin.gheorghiu/common.js&amp;diff=38731"/>
		<updated>2024-04-04T09:22:48Z</updated>

		<summary type="html">&lt;p&gt;Sorin.gheorghiu: Die Seite wurde neu angelegt: „mw.loader.load(&amp;#039;https://www.mediawiki.org/w/index.php?title=XTools/ArticleInfo.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&amp;#039;);“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;mw.loader.load(&#039;https://www.mediawiki.org/w/index.php?title=XTools/ArticleInfo.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;);&lt;/div&gt;</summary>
		<author><name>Sorin.gheorghiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-konstanz.de/mediaewiki/index.php?title=Datei:Interview-compressed.mp3&amp;diff=38730</id>
		<title>Datei:Interview-compressed.mp3</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-konstanz.de/mediaewiki/index.php?title=Datei:Interview-compressed.mp3&amp;diff=38730"/>
		<updated>2024-04-04T09:20:48Z</updated>

		<summary type="html">&lt;p&gt;Sorin.gheorghiu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sorin.gheorghiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-konstanz.de/mediaewiki/index.php?title=MediaeWiki:MediaeWiki_in_den_Medien&amp;diff=38729</id>
		<title>MediaeWiki:MediaeWiki in den Medien</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-konstanz.de/mediaewiki/index.php?title=MediaeWiki:MediaeWiki_in_den_Medien&amp;diff=38729"/>
		<updated>2024-04-04T09:20:32Z</updated>

		<summary type="html">&lt;p&gt;Sorin.gheorghiu: /* Über MediaeWiki: Radio-Interview auf echo-fm 88,4 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Über MediaeWiki: Radio-Interview auf &#039;&#039;echo-fm 88,4&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Am 26.01.2011 erläuterte [[Benutzer:Bent Gebert|Bent Gebert]] im Interview mit Kira Urschinger vom Freiburger Uni-Radio &#039;&#039;echo-fm&#039;&#039; die Online-Lehr-Lern-Plattform &#039;&#039;&#039;MediaeWiki&#039;&#039;&#039;. &amp;lt;br&amp;gt;&lt;br /&gt;
Die Sendung &amp;quot;Leistungsnachweis: Wikipedia&amp;quot; gibt es hier zum Nachhören:&lt;br /&gt;
&lt;br /&gt;
[[File:interview-compressed.mp3]]&lt;/div&gt;</summary>
		<author><name>Sorin.gheorghiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-konstanz.de/mediaewiki/index.php?title=MediaWiki:Gadgets-definition&amp;diff=38728</id>
		<title>MediaWiki:Gadgets-definition</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-konstanz.de/mediaewiki/index.php?title=MediaWiki:Gadgets-definition&amp;diff=38728"/>
		<updated>2024-04-04T06:21:14Z</updated>

		<summary type="html">&lt;p&gt;Sorin.gheorghiu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* ReferenceTooltips[ResourceLoader|default|type=general|dependencies=mediawiki.cookie,jquery.client]|ReferenceTooltips.js|ReferenceTooltips.css&lt;br /&gt;
* XTools-ArticleInfo[ResourceLoader]|XTools-ArticleInfo.js&lt;/div&gt;</summary>
		<author><name>Sorin.gheorghiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-konstanz.de/mediaewiki/index.php?title=MediaWiki:Gadget-XTools-ArticleInfo&amp;diff=38727</id>
		<title>MediaWiki:Gadget-XTools-ArticleInfo</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-konstanz.de/mediaewiki/index.php?title=MediaWiki:Gadget-XTools-ArticleInfo&amp;diff=38727"/>
		<updated>2024-04-04T06:20:12Z</updated>

		<summary type="html">&lt;p&gt;Sorin.gheorghiu: Die Seite wurde neu angelegt: „XTools: dynamically show statistics about a page&amp;#039;s history under the page heading“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[mw:XTools|XTools]]: dynamically show statistics about a page&#039;s history under the page heading&lt;/div&gt;</summary>
		<author><name>Sorin.gheorghiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-konstanz.de/mediaewiki/index.php?title=MediaWiki:Gadget-XTools-ArticleInfo.js&amp;diff=38726</id>
		<title>MediaWiki:Gadget-XTools-ArticleInfo.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-konstanz.de/mediaewiki/index.php?title=MediaWiki:Gadget-XTools-ArticleInfo.js&amp;diff=38726"/>
		<updated>2024-04-04T06:19:31Z</updated>

		<summary type="html">&lt;p&gt;Sorin.gheorghiu: Die Seite wurde neu angelegt: „mw.loader.load(&amp;#039;https://www.mediawiki.org/w/index.php?title=XTools/ArticleInfo.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&amp;#039;);“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;mw.loader.load(&#039;https://www.mediawiki.org/w/index.php?title=XTools/ArticleInfo.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;);&lt;/div&gt;</summary>
		<author><name>Sorin.gheorghiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-konstanz.de/mediaewiki/index.php?title=MediaWiki:Gadget-ReferenceTooltips&amp;diff=38725</id>
		<title>MediaWiki:Gadget-ReferenceTooltips</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-konstanz.de/mediaewiki/index.php?title=MediaWiki:Gadget-ReferenceTooltips&amp;diff=38725"/>
		<updated>2024-04-03T12:54:45Z</updated>

		<summary type="html">&lt;p&gt;Sorin.gheorghiu: Die Seite wurde neu angelegt: „&amp;lt;sup&amp;gt;&amp;lt;abbr title=&amp;quot;{{int:gadgets-default}}&amp;quot;&amp;gt;(D)&amp;lt;/abbr&amp;gt;&amp;lt;/sup&amp;gt; Reference Tooltips: hover over inline citations to see reference information without moving away from the article text (does not work if &amp;quot;Navigation popups&amp;quot; is enabled above)“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;sup&amp;gt;&amp;lt;abbr title=&amp;quot;{{int:gadgets-default}}&amp;quot;&amp;gt;(D)&amp;lt;/abbr&amp;gt;&amp;lt;/sup&amp;gt; [[mw:Reference Tooltips|Reference Tooltips]]: hover over inline citations to see reference information without moving away from the article text (does not work if &amp;quot;Navigation popups&amp;quot; is enabled above)&lt;/div&gt;</summary>
		<author><name>Sorin.gheorghiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-konstanz.de/mediaewiki/index.php?title=MediaWiki:Gadget-ReferenceTooltips.css&amp;diff=38724</id>
		<title>MediaWiki:Gadget-ReferenceTooltips.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-konstanz.de/mediaewiki/index.php?title=MediaWiki:Gadget-ReferenceTooltips.css&amp;diff=38724"/>
		<updated>2024-04-03T12:50:41Z</updated>

		<summary type="html">&lt;p&gt;Sorin.gheorghiu: Die Seite wurde neu angelegt: „/* See mw:Reference Tooltips */  .rt-tooltip { 	position: absolute; 	z-index: 800; /* match z-index-tooltip in https://doc.wikimedia.org/codex/latest/design-tokens/z-index.html */ 	max-width: 350px; 	background: #fff; 	color: #222; 	font-size: 13px; 	line-height: 1.5em; 	border: 1px solid #c8ccd1; 	border-radius: 3px; 	box-shadow: 0 15px 45px -10px rgba(0, 0, 0, 0.3); 	overflow-wrap: break-word; }  .rt-tooltip.rt-tooltip-insideWindow { 	z-index: 810;…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* See [[mw:Reference Tooltips]] */&lt;br /&gt;
&lt;br /&gt;
.rt-tooltip {&lt;br /&gt;
	position: absolute;&lt;br /&gt;
	z-index: 800; /* match z-index-tooltip in https://doc.wikimedia.org/codex/latest/design-tokens/z-index.html */&lt;br /&gt;
	max-width: 350px;&lt;br /&gt;
	background: #fff;&lt;br /&gt;
	color: #222;&lt;br /&gt;
	font-size: 13px;&lt;br /&gt;
	line-height: 1.5em;&lt;br /&gt;
	border: 1px solid #c8ccd1;&lt;br /&gt;
	border-radius: 3px;&lt;br /&gt;
	box-shadow: 0 15px 45px -10px rgba(0, 0, 0, 0.3);&lt;br /&gt;
	overflow-wrap: break-word;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.rt-tooltip.rt-tooltip-insideWindow {&lt;br /&gt;
	z-index: 810;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.rt-tooltipContent {&lt;br /&gt;
	padding: 8px 11px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.rt-tooltip-above .rt-tooltipContent {&lt;br /&gt;
	margin-bottom: -8px;&lt;br /&gt;
	padding-bottom: 16px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.rt-tooltip-below .rt-tooltipContent {&lt;br /&gt;
	margin-top: -10px;&lt;br /&gt;
	padding-top: 18px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.rt-tooltipTail,&lt;br /&gt;
.rt-tooltipTail:after {&lt;br /&gt;
	position: absolute;&lt;br /&gt;
	width: 12px;&lt;br /&gt;
	height: 12px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.rt-tooltipTail {&lt;br /&gt;
	background: linear-gradient(to top right, #c8ccd1 50%, rgba(0, 0, 0, 0) 50%);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.rt-tooltipTail:after {&lt;br /&gt;
	content: &amp;quot;&amp;quot;;&lt;br /&gt;
	background: #fff;&lt;br /&gt;
	bottom: 1px;&lt;br /&gt;
	left: 1px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.rt-tooltip-above .rt-tooltipTail {&lt;br /&gt;
	transform: rotate(-45deg);&lt;br /&gt;
	transform-origin: 100% 100%;&lt;br /&gt;
	bottom: 0;&lt;br /&gt;
	left: 15px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.rt-tooltip-below .rt-tooltipTail {&lt;br /&gt;
	transform: rotate(135deg);&lt;br /&gt;
	transform-origin: 0 0;&lt;br /&gt;
	top: 0;&lt;br /&gt;
	left: 27px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.rt-settingsLink {&lt;br /&gt;
	background-image: url(data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0D%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%0D%0A%20%20%20%20%3Cpath%20fill%3D%22%23555%22%20d%3D%22M20%2014.5v-2.9l-1.8-.3c-.1-.4-.3-.8-.6-1.4l1.1-1.5-2.1-2.1-1.5%201.1c-.5-.3-1-.5-1.4-.6L13.5%205h-2.9l-.3%201.8c-.5.1-.9.3-1.4.6L7.4%206.3%205.3%208.4l1%201.5c-.3.5-.4.9-.6%201.4l-1.7.2v2.9l1.8.3c.1.5.3.9.6%201.4l-1%201.5%202.1%202.1%201.5-1c.4.2.9.4%201.4.6l.3%201.8h3l.3-1.8c.5-.1.9-.3%201.4-.6l1.5%201.1%202.1-2.1-1.1-1.5c.3-.5.5-1%20.6-1.4l1.5-.3zM12%2016c-1.7%200-3-1.3-3-3s1.3-3%203-3%203%201.3%203%203-1.3%203-3%203z%22%2F%3E%0D%0A%3C%2Fsvg%3E);&lt;br /&gt;
	float: right;&lt;br /&gt;
	cursor: pointer;&lt;br /&gt;
	margin: -4px -4px 0 8px;&lt;br /&gt;
	height: 24px;&lt;br /&gt;
	width: 24px;&lt;br /&gt;
	border-radius: 2px;&lt;br /&gt;
	background-position: center center;&lt;br /&gt;
	background-repeat: no-repeat;&lt;br /&gt;
	background-size: 24px 24px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.rt-settingsLink:hover {&lt;br /&gt;
	background-color: #eee;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.rt-target {&lt;br /&gt;
	background-color: #def;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.rt-enableSelect {&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.rt-settingsFormSeparator {&lt;br /&gt;
	margin: 0.85714286em 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.rt-numberInput.rt-numberInput {&lt;br /&gt;
	width: 150px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.rt-tooltipsForCommentsField.rt-tooltipsForCommentsField.rt-tooltipsForCommentsField {&lt;br /&gt;
	margin-top: 1.64285714em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.rt-disabledHelp {&lt;br /&gt;
	border-collapse: collapse;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.rt-disabledHelp td {&lt;br /&gt;
	padding: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.rt-disabledNote.rt-disabledNote {&lt;br /&gt;
	vertical-align: bottom;&lt;br /&gt;
	padding-left: 0.36em;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@keyframes rt-fade-in-up {&lt;br /&gt;
	0% {&lt;br /&gt;
		opacity: 0;&lt;br /&gt;
		transform: translate(0, 20px)&lt;br /&gt;
	}&lt;br /&gt;
	100% {&lt;br /&gt;
		opacity: 1;&lt;br /&gt;
		transform: translate(0, 0)&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@keyframes rt-fade-in-down {&lt;br /&gt;
	0% {&lt;br /&gt;
		opacity: 0;&lt;br /&gt;
		transform: translate(0, -20px)&lt;br /&gt;
	}&lt;br /&gt;
	100% {&lt;br /&gt;
		opacity: 1;&lt;br /&gt;
		transform: translate(0, 0)&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@keyframes rt-fade-out-down {&lt;br /&gt;
	0% {&lt;br /&gt;
		opacity: 1;&lt;br /&gt;
		transform: translate(0, 0)&lt;br /&gt;
	}&lt;br /&gt;
	100% {&lt;br /&gt;
		opacity: 0;&lt;br /&gt;
		transform: translate(0, 20px)&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@keyframes rt-fade-out-up {&lt;br /&gt;
	0% {&lt;br /&gt;
		opacity: 1;&lt;br /&gt;
		transform: translate(0, 0)&lt;br /&gt;
	}&lt;br /&gt;
	100% {&lt;br /&gt;
		opacity: 0;&lt;br /&gt;
		transform: translate(0, -20px)&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.rt-fade-in-up {&lt;br /&gt;
	animation: rt-fade-in-up 0.2s ease forwards&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.rt-fade-in-down {&lt;br /&gt;
	animation: rt-fade-in-down 0.2s ease forwards&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.rt-fade-out-down {&lt;br /&gt;
	animation: rt-fade-out-down 0.2s ease forwards&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.rt-fade-out-up {&lt;br /&gt;
	animation: rt-fade-out-up 0.2s ease forwards&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Sorin.gheorghiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-konstanz.de/mediaewiki/index.php?title=MediaWiki:Gadget-ReferenceTooltips.js&amp;diff=38723</id>
		<title>MediaWiki:Gadget-ReferenceTooltips.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-konstanz.de/mediaewiki/index.php?title=MediaWiki:Gadget-ReferenceTooltips.js&amp;diff=38723"/>
		<updated>2024-04-03T12:50:08Z</updated>

		<summary type="html">&lt;p&gt;Sorin.gheorghiu: Die Seite wurde neu angelegt: „// See mw:Reference Tooltips // Source https://en.wikipedia.org/wiki/MediaWiki:Gadget-ReferenceTooltips.js  ( function () {  // enwiki settings var REF_LINK_SELECTOR = &amp;#039;.reference, a[href^=&amp;quot;#CITEREF&amp;quot;]&amp;#039;, 	COMMENTED_TEXT_CLASS = &amp;#039;rt-commentedText&amp;#039;, 	COMMENTED_TEXT_SELECTOR = ( COMMENTED_TEXT_CLASS ? &amp;#039;.&amp;#039; + COMMENTED_TEXT_CLASS + &amp;#039;, &amp;#039; : &amp;#039;&amp;#039;) + 		&amp;#039;abbr[title]&amp;#039;;  mw.messages.set( { 	&amp;#039;rt-settings&amp;#039;: &amp;#039;Reference Tooltips settings&amp;#039;, 	&amp;#039;rt-enable-footer&amp;#039;: &amp;#039;Enable R…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;// See [[mw:Reference Tooltips]]&lt;br /&gt;
// Source https://en.wikipedia.org/wiki/MediaWiki:Gadget-ReferenceTooltips.js&lt;br /&gt;
&lt;br /&gt;
( function () {&lt;br /&gt;
&lt;br /&gt;
// enwiki settings&lt;br /&gt;
var REF_LINK_SELECTOR = &#039;.reference, a[href^=&amp;quot;#CITEREF&amp;quot;]&#039;,&lt;br /&gt;
	COMMENTED_TEXT_CLASS = &#039;rt-commentedText&#039;,&lt;br /&gt;
	COMMENTED_TEXT_SELECTOR = ( COMMENTED_TEXT_CLASS ? &#039;.&#039; + COMMENTED_TEXT_CLASS + &#039;, &#039; : &#039;&#039;) +&lt;br /&gt;
		&#039;abbr[title]&#039;;&lt;br /&gt;
&lt;br /&gt;
mw.messages.set( {&lt;br /&gt;
	&#039;rt-settings&#039;: &#039;Reference Tooltips settings&#039;,&lt;br /&gt;
	&#039;rt-enable-footer&#039;: &#039;Enable Reference Tooltips&#039;,&lt;br /&gt;
	&#039;rt-settings-title&#039;: &#039;Reference Tooltips&#039;,&lt;br /&gt;
	&#039;rt-save&#039;: &#039;Save&#039;,&lt;br /&gt;
	&#039;rt-cancel&#039;: &#039;Cancel&#039;,&lt;br /&gt;
	&#039;rt-enable&#039;: &#039;Enable Reference Tooltips&#039;,&lt;br /&gt;
	&#039;rt-disable&#039;: &#039;Disable Reference Tooltips&#039;,&lt;br /&gt;
	&#039;rt-activationMethod&#039;: &#039;Tooltip appears when&#039;,&lt;br /&gt;
	&#039;rt-hovering&#039;: &#039;hovering&#039;,&lt;br /&gt;
	&#039;rt-clicking&#039;: &#039;clicking&#039;,&lt;br /&gt;
	&#039;rt-delay&#039;: &#039;Delay before the tooltip appears (in milliseconds)&#039;,&lt;br /&gt;
	&#039;rt-tooltipsForComments&#039;: &#039;Show tooltips over &amp;lt;span title=&amp;quot;Tooltip example&amp;quot; class=&amp;quot;&#039; + ( COMMENTED_TEXT_CLASS || &#039;rt-commentedText&#039; ) + &#039;&amp;quot; style=&amp;quot;border-bottom: 1px dotted; cursor: help;&amp;quot;&amp;gt;text with a dotted underline&amp;lt;/span&amp;gt; in Reference Tooltips style (allows to see such tooltips on devices with no mouse support)&#039;,&lt;br /&gt;
	&#039;rt-disabledNote&#039;: &#039;You can re-enable Reference Tooltips using a link in the footer of the page.&#039;,&lt;br /&gt;
	&#039;rt-done&#039;: &#039;Done&#039;,&lt;br /&gt;
	&#039;rt-enabled&#039;: &#039;Reference Tooltips are enabled&#039;&lt;br /&gt;
} );&lt;br /&gt;
&lt;br /&gt;
// &amp;quot;Global&amp;quot; variables&lt;br /&gt;
var SECONDS_IN_A_DAY = 60 * 60 * 24,&lt;br /&gt;
	CLASSES = {&lt;br /&gt;
		FADE_IN_DOWN: &#039;rt-fade-in-down&#039;,&lt;br /&gt;
		FADE_IN_UP: &#039;rt-fade-in-up&#039;,&lt;br /&gt;
		FADE_OUT_DOWN: &#039;rt-fade-out-down&#039;,&lt;br /&gt;
		FADE_OUT_UP: &#039;rt-fade-out-up&#039;&lt;br /&gt;
	},&lt;br /&gt;
	IS_TOUCHSCREEN = &#039;ontouchstart&#039; in document.documentElement,&lt;br /&gt;
	// Quite a rough check for mobile browsers, a mix of what is advised at&lt;br /&gt;
	// https://stackoverflow.com/a/24600597 (sends to&lt;br /&gt;
	// https://developer.mozilla.org/en-US/docs/Browser_detection_using_the_user_agent)&lt;br /&gt;
	// and https://stackoverflow.com/a/14301832&lt;br /&gt;
	IS_MOBILE = /Mobi|Android/i.test( navigator.userAgent ) ||&lt;br /&gt;
		typeof window.orientation !== &#039;undefined&#039;,&lt;br /&gt;
	CLIENT_NAME = $.client.profile().name,&lt;br /&gt;
	settingsString, settings, enabled, delay, activatedByClick, tooltipsForComments, cursorWaitCss,&lt;br /&gt;
	windowManager,&lt;br /&gt;
	$body = $( document.body ),&lt;br /&gt;
	$window = $( window );&lt;br /&gt;
&lt;br /&gt;
function rt( $content ) {&lt;br /&gt;
	// Popups gadget&lt;br /&gt;
	if ( window.pg ) {&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	var teSelector,&lt;br /&gt;
		settingsDialogOpening = false;&lt;br /&gt;
&lt;br /&gt;
	function setSettingsCookie() {&lt;br /&gt;
		mw.cookie.set(&lt;br /&gt;
			&#039;RTsettings&#039;,&lt;br /&gt;
			Number( enabled ) + &#039;|&#039; + delay + &#039;|&#039; + Number( activatedByClick ) + &#039;|&#039; +&lt;br /&gt;
				Number( tooltipsForComments ),&lt;br /&gt;
			{ path: &#039;/&#039;, expires: 90 * SECONDS_IN_A_DAY, prefix: &#039;&#039; }&lt;br /&gt;
		);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function enableRt() {&lt;br /&gt;
		enabled = true;&lt;br /&gt;
		setSettingsCookie();&lt;br /&gt;
		$( &#039;.rt-enableItem&#039; ).remove();&lt;br /&gt;
		rt( $content );&lt;br /&gt;
		mw.notify( mw.msg( &#039;rt-enabled&#039; ) );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function disableRt() {&lt;br /&gt;
		$content.find( teSelector ).removeClass( &#039;rt-commentedText&#039; ).off( &#039;.rt&#039; );&lt;br /&gt;
		$body.off( &#039;.rt&#039; );&lt;br /&gt;
		$window.off( &#039;.rt&#039; );&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function addEnableLink() {&lt;br /&gt;
		// #footer-places – Vector&lt;br /&gt;
		// #f-list – Timeless, Monobook, Modern&lt;br /&gt;
		// parent of #footer li – Cologne Blue&lt;br /&gt;
		var $footer = $( &#039;#footer-places, #f-list&#039; );&lt;br /&gt;
		if ( !$footer.length ) {&lt;br /&gt;
			$footer = $( &#039;#footer li&#039; ).parent();&lt;br /&gt;
		}&lt;br /&gt;
		$footer.append(&lt;br /&gt;
			$( &#039;&amp;lt;li&amp;gt;&#039; )&lt;br /&gt;
				.addClass( &#039;rt-enableItem&#039; )&lt;br /&gt;
				.append(&lt;br /&gt;
					$( &#039;&amp;lt;a&amp;gt;&#039; )&lt;br /&gt;
						.text( mw.msg( &#039;rt-enable-footer&#039; ) )&lt;br /&gt;
						.attr( &#039;href&#039;, &#039;javascript:&#039; )&lt;br /&gt;
						.click( function ( e ) {&lt;br /&gt;
							e.preventDefault();&lt;br /&gt;
							enableRt();&lt;br /&gt;
						} )&lt;br /&gt;
			)&lt;br /&gt;
		);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function TooltippedElement( $element ) {&lt;br /&gt;
		var tooltip,&lt;br /&gt;
			events,&lt;br /&gt;
			te = this;&lt;br /&gt;
&lt;br /&gt;
		function onStartEvent( e ) {&lt;br /&gt;
			var showRefArgs;&lt;br /&gt;
&lt;br /&gt;
			if ( activatedByClick &amp;amp;&amp;amp; te.type !== &#039;commentedText&#039; &amp;amp;&amp;amp; e.type !== &#039;contextmenu&#039; ) {&lt;br /&gt;
				e.preventDefault();&lt;br /&gt;
			}&lt;br /&gt;
			if ( !te.noRef ) {&lt;br /&gt;
				showRefArgs = [ $( this ) ];&lt;br /&gt;
				if ( te.type !== &#039;supRef&#039; ) {&lt;br /&gt;
					showRefArgs.push( e.pageX, e.pageY );&lt;br /&gt;
				}&lt;br /&gt;
				te.showRef.apply( te, showRefArgs );&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		function onEndEvent() {&lt;br /&gt;
			if ( !te.noRef ) {&lt;br /&gt;
				te.hideRef();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if ( !$element ) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		// TooltippedElement.$element and TooltippedElement.$originalElement will be different when&lt;br /&gt;
		// the first is changed after its cloned version is hovered in a tooltip&lt;br /&gt;
		this.$element = $element;&lt;br /&gt;
		this.$originalElement = $element;&lt;br /&gt;
		if ( this.$element.is( REF_LINK_SELECTOR ) ) {&lt;br /&gt;
			if ( this.$element.prop( &#039;tagName&#039; ) === &#039;SUP&#039; ) {&lt;br /&gt;
				this.type = &#039;supRef&#039;;&lt;br /&gt;
			} else {&lt;br /&gt;
				this.type = &#039;harvardRef&#039;;&lt;br /&gt;
			}&lt;br /&gt;
		} else {&lt;br /&gt;
			this.type = &#039;commentedText&#039;;&lt;br /&gt;
			this.comment = this.$element.attr( &#039;title&#039; );&lt;br /&gt;
			if ( !this.comment ) {&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
			this.$element.addClass(&#039;rt-commentedText&#039;);&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		if ( activatedByClick ) {&lt;br /&gt;
			events = {&lt;br /&gt;
				&#039;click.rt&#039;: onStartEvent&lt;br /&gt;
			};&lt;br /&gt;
			// Adds an ability to see tooltips for links&lt;br /&gt;
			if ( this.type === &#039;commentedText&#039; &amp;amp;&amp;amp;&lt;br /&gt;
				( this.$element.closest( &#039;a&#039; ).length ||&lt;br /&gt;
					this.$element.has( &#039;a&#039; ).length&lt;br /&gt;
				)&lt;br /&gt;
			) {&lt;br /&gt;
				events[ &#039;contextmenu.rt&#039; ] = onStartEvent;&lt;br /&gt;
			}&lt;br /&gt;
		} else {&lt;br /&gt;
			events = {&lt;br /&gt;
				&#039;mouseenter.rt&#039;: onStartEvent,&lt;br /&gt;
				&#039;mouseleave.rt&#039;: onEndEvent&lt;br /&gt;
			};&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		this.$element.on( events );&lt;br /&gt;
&lt;br /&gt;
		this.hideRef = function ( immediately ) {&lt;br /&gt;
			clearTimeout( te.showTimer );&lt;br /&gt;
&lt;br /&gt;
			if ( this.type === &#039;commentedText&#039; ) {&lt;br /&gt;
				this.$element.attr( &#039;title&#039;, this.comment );&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			if ( this.tooltip &amp;amp;&amp;amp; this.tooltip.isPresent ) {&lt;br /&gt;
				if ( activatedByClick || immediately ) {&lt;br /&gt;
					this.tooltip.hide();&lt;br /&gt;
				} else {&lt;br /&gt;
					this.hideTimer = setTimeout( function () {&lt;br /&gt;
						te.tooltip.hide();&lt;br /&gt;
					}, 200 );&lt;br /&gt;
				}&lt;br /&gt;
			} else if ( this.$ref &amp;amp;&amp;amp; this.$ref.hasClass( &#039;rt-target&#039; ) ) {&lt;br /&gt;
				this.$ref.removeClass( &#039;rt-target&#039; );&lt;br /&gt;
				if ( activatedByClick ) {&lt;br /&gt;
					$body.off( &#039;click.rt touchstart.rt&#039;, this.onBodyClick );&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		this.showRef = function ( $element, ePageX, ePageY ) {&lt;br /&gt;
			// Popups gadget&lt;br /&gt;
			if ( window.pg ) {&lt;br /&gt;
				disableRt();&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			if ( this.tooltip &amp;amp;&amp;amp; !this.tooltip.$content.length ) {&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			var tooltipInitiallyPresent = this.tooltip &amp;amp;&amp;amp; this.tooltip.isPresent;&lt;br /&gt;
&lt;br /&gt;
			function reallyShow() {&lt;br /&gt;
				var viewportTop, refOffsetTop, teHref;&lt;br /&gt;
&lt;br /&gt;
				if ( !te.$ref &amp;amp;&amp;amp; !te.comment ) {&lt;br /&gt;
					teHref = te.type === &#039;supRef&#039; ?&lt;br /&gt;
						te.$element.find( &#039;a&#039; ).attr( &#039;href&#039; ) :&lt;br /&gt;
						te.$element.attr( &#039;href&#039; ); // harvardRef&lt;br /&gt;
					te.$ref = teHref &amp;amp;&amp;amp;&lt;br /&gt;
						$( &#039;#&#039; + $.escapeSelector( teHref.slice( 1 ) ) );&lt;br /&gt;
					if ( !te.$ref || !te.$ref.length || !te.$ref.text() ) {&lt;br /&gt;
						te.noRef = true;&lt;br /&gt;
						return;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				if ( !tooltipInitiallyPresent &amp;amp;&amp;amp; !te.comment ) {&lt;br /&gt;
					viewportTop = $window.scrollTop();&lt;br /&gt;
					refOffsetTop = te.$ref.offset().top;&lt;br /&gt;
					if ( !activatedByClick &amp;amp;&amp;amp;&lt;br /&gt;
						viewportTop &amp;lt; refOffsetTop &amp;amp;&amp;amp;&lt;br /&gt;
						viewportTop + $window.height() &amp;gt; refOffsetTop + te.$ref.height() &amp;amp;&amp;amp;&lt;br /&gt;
						// There can be gadgets/scripts that make references horizontally scrollable.&lt;br /&gt;
						$window.width() &amp;gt; te.$ref.offset().left + te.$ref.width()&lt;br /&gt;
					) {&lt;br /&gt;
						// Highlight the reference itself&lt;br /&gt;
						te.$ref.addClass( &#039;rt-target&#039; );&lt;br /&gt;
						return;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				if ( !te.tooltip ) {&lt;br /&gt;
					te.tooltip = new Tooltip( te );&lt;br /&gt;
					if ( !te.tooltip.$content.length ) {&lt;br /&gt;
						return;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				// If this tooltip is called from inside another tooltip. We can&#039;t define it&lt;br /&gt;
				// in the constructor since a ref can be cloned but have the same Tooltip object;&lt;br /&gt;
				// so, Tooltip.parent is a floating value.&lt;br /&gt;
				te.tooltip.parent = te.$element.closest( &#039;.rt-tooltip&#039; ).data( &#039;tooltip&#039; );&lt;br /&gt;
				if ( te.tooltip.parent &amp;amp;&amp;amp; te.tooltip.parent.disappearing ) {&lt;br /&gt;
					return;&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				te.tooltip.show();&lt;br /&gt;
&lt;br /&gt;
				if ( tooltipInitiallyPresent ) {&lt;br /&gt;
					if ( te.tooltip.$element.hasClass( &#039;rt-tooltip-above&#039; ) ) {&lt;br /&gt;
						te.tooltip.$element.addClass( CLASSES.FADE_IN_DOWN );&lt;br /&gt;
					} else {&lt;br /&gt;
						te.tooltip.$element.addClass( CLASSES.FADE_IN_UP );&lt;br /&gt;
					}&lt;br /&gt;
					return;&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				te.tooltip.calculatePosition( ePageX, ePageY );&lt;br /&gt;
&lt;br /&gt;
				$window.on( &#039;resize.rt&#039;, te.onWindowResize );&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			// We redefine this.$element here because e.target can be a reference link inside&lt;br /&gt;
			// a reference tooltip, not a link that was initially assigned to this.$element&lt;br /&gt;
			this.$element = $element;&lt;br /&gt;
&lt;br /&gt;
			if ( this.type === &#039;commentedText&#039; ) {&lt;br /&gt;
				this.$element.attr( &#039;title&#039;, &#039;&#039; );&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			if ( activatedByClick ) {&lt;br /&gt;
				if ( tooltipInitiallyPresent ||&lt;br /&gt;
					( this.$ref &amp;amp;&amp;amp; this.$ref.hasClass( &#039;rt-target&#039; ) )&lt;br /&gt;
				) {&lt;br /&gt;
					return;&lt;br /&gt;
				} else {&lt;br /&gt;
					setTimeout( function () {&lt;br /&gt;
						$body.on( &#039;click.rt touchstart.rt&#039;, te.onBodyClick );&lt;br /&gt;
					}, 0 );&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			if ( activatedByClick || tooltipInitiallyPresent ) {&lt;br /&gt;
				reallyShow();&lt;br /&gt;
			} else {&lt;br /&gt;
				this.showTimer = setTimeout( reallyShow, delay );&lt;br /&gt;
			}&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		this.onBodyClick = function ( e ) {&lt;br /&gt;
			if ( !te.tooltip &amp;amp;&amp;amp; !(te.$ref &amp;amp;&amp;amp; te.$ref.hasClass( &#039;rt-target&#039; )) ) {&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			var $current = $( e.target );&lt;br /&gt;
&lt;br /&gt;
			function contextMatchesParameter( parameter ) {&lt;br /&gt;
				return this === parameter;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			// The last condition is used to determine cases when a clicked tooltip is the current&lt;br /&gt;
			// element&#039;s tooltip or one of its descendants&lt;br /&gt;
			while ( $current.length &amp;amp;&amp;amp;&lt;br /&gt;
				( !$current.hasClass( &#039;rt-tooltip&#039; ) ||&lt;br /&gt;
					!$current.data( &#039;tooltip&#039; ) ||&lt;br /&gt;
					!$current.data( &#039;tooltip&#039; ).upToTopParent(&lt;br /&gt;
						contextMatchesParameter, [ te.tooltip ],&lt;br /&gt;
						true&lt;br /&gt;
					)&lt;br /&gt;
				)&lt;br /&gt;
			) {&lt;br /&gt;
				$current = $current.parent();&lt;br /&gt;
			}&lt;br /&gt;
			if ( !$current.length ) {&lt;br /&gt;
				te.hideRef();&lt;br /&gt;
			}&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		this.onWindowResize = function () {&lt;br /&gt;
			te.tooltip.calculatePosition();&lt;br /&gt;
		};&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function Tooltip( te ) {&lt;br /&gt;
		function openSettingsDialog() {&lt;br /&gt;
			var settingsDialog, settingsWindow;&lt;br /&gt;
&lt;br /&gt;
			if ( cursorWaitCss ) {&lt;br /&gt;
				cursorWaitCss.disabled = true;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			function SettingsDialog() {&lt;br /&gt;
				SettingsDialog.parent.call( this );&lt;br /&gt;
			}&lt;br /&gt;
			OO.inheritClass( SettingsDialog, OO.ui.ProcessDialog );&lt;br /&gt;
&lt;br /&gt;
			SettingsDialog.static.name = &#039;settingsDialog&#039;;&lt;br /&gt;
			SettingsDialog.static.title = mw.msg( &#039;rt-settings-title&#039; );&lt;br /&gt;
			SettingsDialog.static.actions = [&lt;br /&gt;
				{&lt;br /&gt;
					modes: &#039;basic&#039;,&lt;br /&gt;
					action: &#039;save&#039;,&lt;br /&gt;
					label: mw.msg( &#039;rt-save&#039; ),&lt;br /&gt;
					flags: [ &#039;primary&#039;, &#039;progressive&#039; ]&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					modes: &#039;basic&#039;,&lt;br /&gt;
					label: mw.msg( &#039;rt-cancel&#039; ),&lt;br /&gt;
					flags: &#039;safe&#039;&lt;br /&gt;
				},&lt;br /&gt;
				{&lt;br /&gt;
					modes: &#039;disabled&#039;,&lt;br /&gt;
					action: &#039;deactivated&#039;,&lt;br /&gt;
					label: mw.msg( &#039;rt-done&#039; ),&lt;br /&gt;
					flags: [ &#039;primary&#039;, &#039;progressive&#039; ]&lt;br /&gt;
				}&lt;br /&gt;
			];&lt;br /&gt;
&lt;br /&gt;
			SettingsDialog.prototype.initialize = function () {&lt;br /&gt;
				var dialog = this;&lt;br /&gt;
&lt;br /&gt;
				SettingsDialog.parent.prototype.initialize.apply( this, arguments );&lt;br /&gt;
&lt;br /&gt;
				this.enableOption = new OO.ui.RadioOptionWidget( {&lt;br /&gt;
					label: mw.msg( &#039;rt-enable&#039; )&lt;br /&gt;
				} );&lt;br /&gt;
				this.disableOption = new OO.ui.RadioOptionWidget( {&lt;br /&gt;
					label: mw.msg( &#039;rt-disable&#039; )&lt;br /&gt;
				} );&lt;br /&gt;
				this.enableSelect = new OO.ui.RadioSelectWidget( {&lt;br /&gt;
					items: [ this.enableOption, this.disableOption ],&lt;br /&gt;
					classes: [ &#039;rt-enableSelect&#039; ]&lt;br /&gt;
				} );&lt;br /&gt;
				this.enableSelect.selectItem( this.enableOption );&lt;br /&gt;
				this.enableSelect.on( &#039;choose&#039;, function ( item ) {&lt;br /&gt;
					if ( item === dialog.disableOption ) {&lt;br /&gt;
						dialog.activationMethodSelect.setDisabled( true );&lt;br /&gt;
						dialog.delayInput.setDisabled( true );&lt;br /&gt;
						dialog.tooltipsForCommentsCheckbox.setDisabled( true );&lt;br /&gt;
					} else {&lt;br /&gt;
						dialog.activationMethodSelect.setDisabled( false );&lt;br /&gt;
						dialog.delayInput.setDisabled( dialog.clickOption.isSelected() );&lt;br /&gt;
						dialog.tooltipsForCommentsCheckbox.setDisabled( false );&lt;br /&gt;
					}&lt;br /&gt;
				} );&lt;br /&gt;
&lt;br /&gt;
				this.hoverOption = new OO.ui.RadioOptionWidget( {&lt;br /&gt;
					label: mw.msg( &#039;rt-hovering&#039; )&lt;br /&gt;
				} );&lt;br /&gt;
				this.clickOption = new OO.ui.RadioOptionWidget( {&lt;br /&gt;
					label: mw.msg( &#039;rt-clicking&#039; )&lt;br /&gt;
				} );&lt;br /&gt;
				this.activationMethodSelect = new OO.ui.RadioSelectWidget( {&lt;br /&gt;
					items: [ this.hoverOption, this.clickOption ]&lt;br /&gt;
				} );&lt;br /&gt;
				this.activationMethodSelect.selectItem( activatedByClick ?&lt;br /&gt;
					this.clickOption :&lt;br /&gt;
					this.hoverOption&lt;br /&gt;
				);&lt;br /&gt;
				this.activationMethodSelect.on( &#039;choose&#039;, function ( item ) {&lt;br /&gt;
					if ( item === dialog.clickOption ) {&lt;br /&gt;
						dialog.delayInput.setDisabled( true );&lt;br /&gt;
					} else {&lt;br /&gt;
						dialog.delayInput.setDisabled( dialog.clickOption.isSelected() );&lt;br /&gt;
					}&lt;br /&gt;
				} );&lt;br /&gt;
				this.activationMethodField = new OO.ui.FieldLayout( this.activationMethodSelect, {&lt;br /&gt;
					label: mw.msg( &#039;rt-activationMethod&#039; ),&lt;br /&gt;
					align: &#039;top&#039;&lt;br /&gt;
				} );&lt;br /&gt;
&lt;br /&gt;
				this.delayInput = new OO.ui.NumberInputWidget( {&lt;br /&gt;
					input: { value: delay },&lt;br /&gt;
					step: 50,&lt;br /&gt;
					min: 0,&lt;br /&gt;
					max: 5000,&lt;br /&gt;
					disabled: activatedByClick,&lt;br /&gt;
					classes: [ &#039;rt-numberInput&#039; ]&lt;br /&gt;
				} );&lt;br /&gt;
				this.delayField = new OO.ui.FieldLayout( this.delayInput, {&lt;br /&gt;
					label: mw.msg( &#039;rt-delay&#039; ),&lt;br /&gt;
					align: &#039;top&#039;&lt;br /&gt;
				} );&lt;br /&gt;
&lt;br /&gt;
				this.tooltipsForCommentsCheckbox = new OO.ui.CheckboxInputWidget( {&lt;br /&gt;
					selected: tooltipsForComments&lt;br /&gt;
				} );&lt;br /&gt;
				this.tooltipsForCommentsField = new OO.ui.FieldLayout(&lt;br /&gt;
					this.tooltipsForCommentsCheckbox,&lt;br /&gt;
					{&lt;br /&gt;
						label: new OO.ui.HtmlSnippet( mw.msg( &#039;rt-tooltipsForComments&#039; ) ),&lt;br /&gt;
						align: &#039;inline&#039;,&lt;br /&gt;
						classes: [ &#039;rt-tooltipsForCommentsField&#039; ]&lt;br /&gt;
					}&lt;br /&gt;
				);&lt;br /&gt;
				new TooltippedElement(&lt;br /&gt;
					this.tooltipsForCommentsField.$element.find(&lt;br /&gt;
						&#039;.&#039; + ( COMMENTED_TEXT_CLASS || &#039;rt-commentedText&#039; )&lt;br /&gt;
					)&lt;br /&gt;
				);&lt;br /&gt;
&lt;br /&gt;
				this.fieldset = new OO.ui.FieldsetLayout();&lt;br /&gt;
				this.fieldset.addItems( [&lt;br /&gt;
					this.activationMethodField,&lt;br /&gt;
					this.delayField,&lt;br /&gt;
					this.tooltipsForCommentsField&lt;br /&gt;
				] );&lt;br /&gt;
&lt;br /&gt;
				this.panelSettings = new OO.ui.PanelLayout( {&lt;br /&gt;
					padded: true,&lt;br /&gt;
					expanded: false&lt;br /&gt;
				} );&lt;br /&gt;
				this.panelSettings.$element.append(&lt;br /&gt;
					this.enableSelect.$element,&lt;br /&gt;
					$( &#039;&amp;lt;hr&amp;gt;&#039; ).addClass( &#039;rt-settingsFormSeparator&#039; ),&lt;br /&gt;
					this.fieldset.$element&lt;br /&gt;
				);&lt;br /&gt;
&lt;br /&gt;
				this.panelDisabled = new OO.ui.PanelLayout( {&lt;br /&gt;
					padded: true,&lt;br /&gt;
					expanded: false&lt;br /&gt;
				} );&lt;br /&gt;
				this.panelDisabled.$element.append(&lt;br /&gt;
					$( &#039;&amp;lt;table&amp;gt;&#039; )&lt;br /&gt;
						.addClass( &#039;rt-disabledHelp&#039; )&lt;br /&gt;
						.append(&lt;br /&gt;
							$( &#039;&amp;lt;tr&amp;gt;&#039; ).append(&lt;br /&gt;
								$( &#039;&amp;lt;td&amp;gt;&#039; ).append(&lt;br /&gt;
									$( &#039;&amp;lt;img&amp;gt;&#039; ).attr( &#039;src&#039;, &#039;https://wiki.uni-konstanz.de/mediaewiki/load.php?modules=ext.popups.images&amp;amp;image=footer&amp;amp;format=rasterized&amp;amp;lang=ru&amp;amp;skin=vector&amp;amp;version=0uotisb&#039; )&lt;br /&gt;
								),&lt;br /&gt;
								$( &#039;&amp;lt;td&amp;gt;&#039; )&lt;br /&gt;
									.addClass( &#039;rt-disabledNote&#039; )&lt;br /&gt;
									.text( mw.msg( &#039;rt-disabledNote&#039; ) )&lt;br /&gt;
							)&lt;br /&gt;
						)&lt;br /&gt;
				);&lt;br /&gt;
&lt;br /&gt;
				this.stackLayout = new OO.ui.StackLayout( {&lt;br /&gt;
					items: [ this.panelSettings, this.panelDisabled ]&lt;br /&gt;
				} );&lt;br /&gt;
&lt;br /&gt;
				this.$body.append( this.stackLayout.$element );&lt;br /&gt;
			};&lt;br /&gt;
&lt;br /&gt;
			SettingsDialog.prototype.getSetupProcess = function ( data ) {&lt;br /&gt;
				return SettingsDialog.parent.prototype.getSetupProcess.call( this, data )&lt;br /&gt;
					.next( function () {&lt;br /&gt;
						this.stackLayout.setItem( this.panelSettings );&lt;br /&gt;
						this.actions.setMode( &#039;basic&#039; );&lt;br /&gt;
					}, this );&lt;br /&gt;
			};&lt;br /&gt;
&lt;br /&gt;
			SettingsDialog.prototype.getActionProcess = function ( action ) {&lt;br /&gt;
				var dialog = this;&lt;br /&gt;
&lt;br /&gt;
				if ( action === &#039;save&#039; ) {&lt;br /&gt;
					return new OO.ui.Process( function () {&lt;br /&gt;
						var newDelay = Number( dialog.delayInput.getValue() );&lt;br /&gt;
&lt;br /&gt;
						enabled = dialog.enableOption.isSelected();&lt;br /&gt;
						if ( newDelay &amp;gt;= 0 &amp;amp;&amp;amp; newDelay &amp;lt;= 5000 ) {&lt;br /&gt;
							delay = newDelay;&lt;br /&gt;
						}&lt;br /&gt;
						activatedByClick = dialog.clickOption.isSelected();&lt;br /&gt;
						tooltipsForComments = dialog.tooltipsForCommentsCheckbox.isSelected();&lt;br /&gt;
&lt;br /&gt;
						setSettingsCookie();&lt;br /&gt;
&lt;br /&gt;
						if ( enabled ) {&lt;br /&gt;
							dialog.close();&lt;br /&gt;
							disableRt();&lt;br /&gt;
							rt( $content );&lt;br /&gt;
						} else {&lt;br /&gt;
							dialog.actions.setMode( &#039;disabled&#039; );&lt;br /&gt;
							dialog.stackLayout.setItem( dialog.panelDisabled );&lt;br /&gt;
							disableRt();&lt;br /&gt;
							addEnableLink();&lt;br /&gt;
						}&lt;br /&gt;
					} );&lt;br /&gt;
				} else if ( action === &#039;deactivated&#039; ) {&lt;br /&gt;
					dialog.close();&lt;br /&gt;
				}&lt;br /&gt;
				return SettingsDialog.parent.prototype.getActionProcess.call( this, action );&lt;br /&gt;
			};&lt;br /&gt;
&lt;br /&gt;
			SettingsDialog.prototype.getBodyHeight = function () {&lt;br /&gt;
				return this.stackLayout.getCurrentItem().$element.outerHeight( true );&lt;br /&gt;
			};&lt;br /&gt;
&lt;br /&gt;
			tooltip.upToTopParent( function adjustRightAndHide() {&lt;br /&gt;
				if ( this.isPresent ) {&lt;br /&gt;
					if ( this.$element[ 0 ].style.right ) {&lt;br /&gt;
						this.$element.css(&lt;br /&gt;
							&#039;right&#039;,&lt;br /&gt;
							&#039;+=&#039; + ( window.innerWidth - $window.width() )&lt;br /&gt;
						);&lt;br /&gt;
					}&lt;br /&gt;
					this.te.hideRef( true );&lt;br /&gt;
				}&lt;br /&gt;
			} );&lt;br /&gt;
&lt;br /&gt;
			if ( !windowManager ) {&lt;br /&gt;
				windowManager = new OO.ui.WindowManager();&lt;br /&gt;
				$body.append( windowManager.$element );&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			settingsDialog = new SettingsDialog();&lt;br /&gt;
			windowManager.addWindows( [ settingsDialog ] );&lt;br /&gt;
			settingsWindow = windowManager.openWindow( settingsDialog );&lt;br /&gt;
			settingsWindow.opened.then( function () {&lt;br /&gt;
				settingsDialogOpening = false;&lt;br /&gt;
			} );&lt;br /&gt;
			settingsWindow.closed.then( function () {&lt;br /&gt;
				windowManager.clearWindows();&lt;br /&gt;
			} );&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		var tooltip = this;&lt;br /&gt;
&lt;br /&gt;
		// This variable can change: one tooltip can be called from a harvard-style reference link&lt;br /&gt;
		// that is put into different tooltips&lt;br /&gt;
		this.te = te;&lt;br /&gt;
&lt;br /&gt;
		switch ( this.te.type ) {&lt;br /&gt;
			case &#039;supRef&#039;:&lt;br /&gt;
				this.id = &#039;rt-&#039; + this.te.$originalElement.attr( &#039;id&#039; );&lt;br /&gt;
				this.$content = this.te.$ref&lt;br /&gt;
					.contents()&lt;br /&gt;
					.filter( function ( i ) {&lt;br /&gt;
						var $this = $( this );&lt;br /&gt;
						return this.nodeType === Node.TEXT_NODE ||&lt;br /&gt;
							!( $this.is( &#039;.mw-cite-backlink&#039; ) ||&lt;br /&gt;
								( i === 0 &amp;amp;&amp;amp;&lt;br /&gt;
									// Template:Cnote, Template:Note&lt;br /&gt;
									( $this.is( &#039;b&#039; ) ||&lt;br /&gt;
										// Template:Note_label&lt;br /&gt;
										$this.is( &#039;a&#039; ) &amp;amp;&amp;amp;&lt;br /&gt;
										$this.attr( &#039;href&#039; ).indexOf( &#039;#ref&#039; ) === 0&lt;br /&gt;
									)&lt;br /&gt;
								)&lt;br /&gt;
							);&lt;br /&gt;
					} )&lt;br /&gt;
					.clone( true );&lt;br /&gt;
				break;&lt;br /&gt;
			case &#039;harvardRef&#039;:&lt;br /&gt;
				this.id = &#039;rt-&#039; + this.te.$originalElement.closest( &#039;li&#039; ).attr( &#039;id&#039; );&lt;br /&gt;
				this.$content = this.te.$ref&lt;br /&gt;
					.clone( true )&lt;br /&gt;
					.removeAttr( &#039;id&#039; );&lt;br /&gt;
				break;&lt;br /&gt;
			case &#039;commentedText&#039;:&lt;br /&gt;
				this.id = &#039;rt-&#039; + String( Math.random() ).slice( 2 );&lt;br /&gt;
				this.$content = $( document.createTextNode( this.te.comment ) );&lt;br /&gt;
				break;&lt;br /&gt;
		}&lt;br /&gt;
		if ( !this.$content.length ) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		this.insideWindow = Boolean( this.te.$element.closest( &#039;.oo-ui-window&#039; ).length );&lt;br /&gt;
&lt;br /&gt;
		this.$element = $( &#039;&amp;lt;div&amp;gt;&#039; )&lt;br /&gt;
			.addClass( &#039;rt-tooltip&#039; )&lt;br /&gt;
			.attr( &#039;id&#039;, this.id )&lt;br /&gt;
			.attr( &#039;role&#039;, &#039;tooltip&#039; )&lt;br /&gt;
			.data( &#039;tooltip&#039;, this );&lt;br /&gt;
		if ( this.insideWindow ) {&lt;br /&gt;
			this.$element.addClass( &#039;rt-tooltip-insideWindow&#039; );&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		// We need the $content interlayer here in order for the settings icon to have correct&lt;br /&gt;
		// margins&lt;br /&gt;
		this.$content = this.$content&lt;br /&gt;
			.wrapAll( &#039;&amp;lt;div&amp;gt;&#039; )&lt;br /&gt;
			.parent()&lt;br /&gt;
			.addClass( &#039;rt-tooltipContent&#039; )&lt;br /&gt;
			.addClass( &#039;mw-parser-output&#039; )&lt;br /&gt;
			.appendTo( this.$element );&lt;br /&gt;
&lt;br /&gt;
		if ( !activatedByClick ) {&lt;br /&gt;
			this.$element&lt;br /&gt;
				.mouseenter( function () {&lt;br /&gt;
					if ( !tooltip.disappearing ) {&lt;br /&gt;
						tooltip.upToTopParent( function () {&lt;br /&gt;
							this.show();&lt;br /&gt;
						} );&lt;br /&gt;
					}&lt;br /&gt;
				} )&lt;br /&gt;
				.mouseleave( function ( e ) {&lt;br /&gt;
					// https://stackoverflow.com/q/47649442 workaround. Relying on relatedTarget&lt;br /&gt;
					// alone has pitfalls: when alt-tabbing, relatedTarget is empty too&lt;br /&gt;
					if ( CLIENT_NAME !== &#039;chrome&#039; ||&lt;br /&gt;
						( !e.originalEvent ||&lt;br /&gt;
							e.originalEvent.relatedTarget !== null ||&lt;br /&gt;
							!tooltip.clickedTime ||&lt;br /&gt;
							$.now() - tooltip.clickedTime &amp;gt; 50&lt;br /&gt;
						)&lt;br /&gt;
					) {&lt;br /&gt;
						tooltip.upToTopParent( function () {&lt;br /&gt;
							this.te.hideRef();&lt;br /&gt;
						} );&lt;br /&gt;
					}&lt;br /&gt;
				} )&lt;br /&gt;
				.click( function () {&lt;br /&gt;
					tooltip.clickedTime = $.now();&lt;br /&gt;
				} );&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if ( !this.insideWindow ) {&lt;br /&gt;
			$( &#039;&amp;lt;div&amp;gt;&#039; )&lt;br /&gt;
				.addClass( &#039;rt-settingsLink&#039; )&lt;br /&gt;
				.attr( &#039;title&#039;, mw.msg( &#039;rt-settings&#039; ) )&lt;br /&gt;
				.click( function () {&lt;br /&gt;
					if ( settingsDialogOpening ) {&lt;br /&gt;
						return;&lt;br /&gt;
					}&lt;br /&gt;
					settingsDialogOpening = true;&lt;br /&gt;
&lt;br /&gt;
					if ( mw.loader.getState( &#039;oojs-ui&#039; ) !== &#039;ready&#039; ) {&lt;br /&gt;
						if ( cursorWaitCss ) {&lt;br /&gt;
							cursorWaitCss.disabled = false;&lt;br /&gt;
						} else {&lt;br /&gt;
							cursorWaitCss = mw.util.addCSS( &#039;body { cursor: wait; }&#039; );&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
					mw.loader.using( [ &#039;oojs&#039;, &#039;oojs-ui&#039; ], openSettingsDialog );&lt;br /&gt;
				} )&lt;br /&gt;
				.prependTo( this.$content );&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		// Tooltip tail element is inside tooltip content element in order for the tooltip&lt;br /&gt;
		// not to disappear when the mouse is above the tail&lt;br /&gt;
		this.$tail = $( &#039;&amp;lt;div&amp;gt;&#039; )&lt;br /&gt;
			.addClass( &#039;rt-tooltipTail&#039; )&lt;br /&gt;
			.prependTo( this.$element );&lt;br /&gt;
&lt;br /&gt;
		this.disappearing = false;&lt;br /&gt;
&lt;br /&gt;
		this.show = function () {&lt;br /&gt;
			this.disappearing = false;&lt;br /&gt;
			clearTimeout( this.te.hideTimer );&lt;br /&gt;
			clearTimeout( this.te.removeTimer );&lt;br /&gt;
&lt;br /&gt;
			this.$element&lt;br /&gt;
				.removeClass( CLASSES.FADE_OUT_DOWN )&lt;br /&gt;
				.removeClass( CLASSES.FADE_OUT_UP );&lt;br /&gt;
&lt;br /&gt;
			if ( !this.isPresent ) {&lt;br /&gt;
				$body.append( this.$element );&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			this.isPresent = true;&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		this.hide = function () {&lt;br /&gt;
			var tooltip = this;&lt;br /&gt;
&lt;br /&gt;
			tooltip.disappearing = true;&lt;br /&gt;
&lt;br /&gt;
			if ( tooltip.$element.hasClass( &#039;rt-tooltip-above&#039; ) ) {&lt;br /&gt;
				tooltip.$element&lt;br /&gt;
					.removeClass( CLASSES.FADE_IN_DOWN )&lt;br /&gt;
					.addClass( CLASSES.FADE_OUT_UP );&lt;br /&gt;
			} else {&lt;br /&gt;
				tooltip.$element&lt;br /&gt;
					.removeClass( CLASSES.FADE_IN_UP )&lt;br /&gt;
					.addClass( CLASSES.FADE_OUT_DOWN );&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			tooltip.te.removeTimer = setTimeout( function () {&lt;br /&gt;
				if ( tooltip.isPresent ) {&lt;br /&gt;
					tooltip.$element.detach();&lt;br /&gt;
					&lt;br /&gt;
					tooltip.$tail.css( &#039;left&#039;, &#039;&#039; );&lt;br /&gt;
&lt;br /&gt;
					if ( activatedByClick ) {&lt;br /&gt;
						$body.off( &#039;click.rt touchstart.rt&#039;, tooltip.te.onBodyClick );&lt;br /&gt;
					}&lt;br /&gt;
					$window.off( &#039;resize.rt&#039;, tooltip.te.onWindowResize );&lt;br /&gt;
&lt;br /&gt;
					tooltip.isPresent = false;&lt;br /&gt;
				}&lt;br /&gt;
			}, 200 );&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		this.calculatePosition = function ( ePageX, ePageY ) {&lt;br /&gt;
			var teElement, teOffsets, teOffset, tooltipTailOffsetX, tooltipTailLeft,&lt;br /&gt;
				offsetYCorrection = 0;&lt;br /&gt;
&lt;br /&gt;
			this.$tail.css( &#039;left&#039;, &#039;&#039; );&lt;br /&gt;
&lt;br /&gt;
			teElement = this.te.$element.get( 0 );&lt;br /&gt;
			if ( ePageX !== undefined ) {&lt;br /&gt;
				tooltipTailOffsetX = ePageX;&lt;br /&gt;
				teOffsets = teElement.getClientRects &amp;amp;&amp;amp;&lt;br /&gt;
					teElement.getClientRects() ||&lt;br /&gt;
					teElement.getBoundingClientRect();&lt;br /&gt;
				if ( teOffsets.length &amp;gt; 1 ) {&lt;br /&gt;
					for (var i = teOffsets.length - 1; i &amp;gt;= 0; i--) {&lt;br /&gt;
						if ( ePageY &amp;gt;= Math.round( $window.scrollTop() + teOffsets[i].top ) &amp;amp;&amp;amp;&lt;br /&gt;
							ePageY &amp;lt;= Math.round(&lt;br /&gt;
								$window.scrollTop() + teOffsets[i].top + teOffsets[i].height&lt;br /&gt;
							)&lt;br /&gt;
						) {&lt;br /&gt;
							teOffset = teOffsets[i];&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			if ( !teOffset ) {&lt;br /&gt;
				teOffset = teElement.getClientRects &amp;amp;&amp;amp;&lt;br /&gt;
					teElement.getClientRects()[0] ||&lt;br /&gt;
					teElement.getBoundingClientRect();&lt;br /&gt;
			}&lt;br /&gt;
			teOffset = {&lt;br /&gt;
				top: $window.scrollTop() + teOffset.top,&lt;br /&gt;
				left: $window.scrollLeft() + teOffset.left,&lt;br /&gt;
				width: teOffset.width,&lt;br /&gt;
				height: teOffset.height&lt;br /&gt;
			};&lt;br /&gt;
			if ( !tooltipTailOffsetX ) {&lt;br /&gt;
				tooltipTailOffsetX = ( teOffset.left * 2 + teOffset.width ) / 2;&lt;br /&gt;
			}&lt;br /&gt;
			if ( CLIENT_NAME === &#039;msie&#039; &amp;amp;&amp;amp; this.te.type === &#039;supRef&#039; ) {&lt;br /&gt;
				offsetYCorrection = -Number(&lt;br /&gt;
					this.te.$element.parent().css( &#039;font-size&#039; ).replace( &#039;px&#039;, &#039;&#039; )&lt;br /&gt;
				) / 2;&lt;br /&gt;
			}&lt;br /&gt;
			this.$element.css( {&lt;br /&gt;
				top: teOffset.top - this.$element.outerHeight() - 7 + offsetYCorrection,&lt;br /&gt;
				left: tooltipTailOffsetX - 20,&lt;br /&gt;
				right: &#039;&#039;&lt;br /&gt;
			} );&lt;br /&gt;
&lt;br /&gt;
			// Is it squished against the right side of the page?&lt;br /&gt;
			if ( this.$element.offset().left + this.$element.outerWidth() &amp;gt; $window.width() - 1 ) {&lt;br /&gt;
				this.$element.css( {&lt;br /&gt;
					left: &#039;&#039;,&lt;br /&gt;
					right: 0&lt;br /&gt;
				} );&lt;br /&gt;
				tooltipTailLeft = tooltipTailOffsetX - this.$element.offset().left - 5;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			// Is a part of it above the top of the screen?&lt;br /&gt;
			if ( teOffset.top &amp;lt; this.$element.outerHeight() + $window.scrollTop() + 6 ) {&lt;br /&gt;
				this.$element&lt;br /&gt;
					.removeClass( &#039;rt-tooltip-above&#039; )&lt;br /&gt;
					.addClass( &#039;rt-tooltip-below&#039; )&lt;br /&gt;
					.addClass( CLASSES.FADE_IN_UP )&lt;br /&gt;
					.css( {&lt;br /&gt;
						top: teOffset.top + teOffset.height + 9 + offsetYCorrection&lt;br /&gt;
					} );&lt;br /&gt;
				if ( tooltipTailLeft ) {&lt;br /&gt;
					this.$tail.css( &#039;left&#039;, ( tooltipTailLeft + 12 ) + &#039;px&#039; );&lt;br /&gt;
				}&lt;br /&gt;
			} else {&lt;br /&gt;
				this.$element&lt;br /&gt;
					.removeClass( &#039;rt-tooltip-below&#039; )&lt;br /&gt;
					.addClass( &#039;rt-tooltip-above&#039; )&lt;br /&gt;
					.addClass( CLASSES.FADE_IN_DOWN )&lt;br /&gt;
					// A fix for cases when a tooltip shown once is then wrongly positioned when it&lt;br /&gt;
					// is shown again after a window resize. We just repeat what is above.&lt;br /&gt;
					.css( {&lt;br /&gt;
						top: teOffset.top - this.$element.outerHeight() - 7 + offsetYCorrection&lt;br /&gt;
					} );&lt;br /&gt;
				if ( tooltipTailLeft ) {&lt;br /&gt;
					// 12 is the tail element width/height&lt;br /&gt;
					this.$tail.css( &#039;left&#039;, tooltipTailLeft + &#039;px&#039; );&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		// Run some function for all the tooltips up to the top one in a tree. Its context will be&lt;br /&gt;
		// the tooltip, while its parameters may be passed to Tooltip.upToTopParent as an array&lt;br /&gt;
		// in the second parameter. If the third parameter passed to ToolTip.upToTopParent is true,&lt;br /&gt;
		// the execution stops when the function in question returns true for the first time,&lt;br /&gt;
		// and ToolTip.upToTopParent returns true as well.&lt;br /&gt;
		this.upToTopParent = function ( func, parameters, stopAtTrue ) {&lt;br /&gt;
			var returnValue,&lt;br /&gt;
				currentTooltip = this;&lt;br /&gt;
&lt;br /&gt;
			do {&lt;br /&gt;
				returnValue = func.apply( currentTooltip, parameters );&lt;br /&gt;
				if ( stopAtTrue &amp;amp;&amp;amp; returnValue ) {&lt;br /&gt;
					break;&lt;br /&gt;
				}&lt;br /&gt;
			} while ( currentTooltip = currentTooltip.parent );&lt;br /&gt;
&lt;br /&gt;
			if ( stopAtTrue ) {&lt;br /&gt;
				return returnValue;&lt;br /&gt;
			}&lt;br /&gt;
		};&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	if ( !enabled ) {&lt;br /&gt;
		addEnableLink();&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	teSelector = REF_LINK_SELECTOR;&lt;br /&gt;
	if ( tooltipsForComments ) {&lt;br /&gt;
		teSelector += &#039;, &#039; + COMMENTED_TEXT_SELECTOR;&lt;br /&gt;
	}&lt;br /&gt;
	$content.find( teSelector ).each( function () {&lt;br /&gt;
		new TooltippedElement( $( this ) );&lt;br /&gt;
	} );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
settingsString = mw.cookie.get( &#039;RTsettings&#039;, &#039;&#039; );&lt;br /&gt;
if ( settingsString ) {&lt;br /&gt;
	settings = settingsString.split( &#039;|&#039; );&lt;br /&gt;
	enabled = Boolean( Number( settings[ 0 ] ) );&lt;br /&gt;
	delay = Number( settings[ 1 ] );&lt;br /&gt;
	activatedByClick = Boolean( Number( settings[ 2 ] ) );&lt;br /&gt;
	// The forth value was added later, so we provide for a default value. See comments below&lt;br /&gt;
	// for why we use &amp;quot;IS_TOUCHSCREEN &amp;amp;&amp;amp; IS_MOBILE&amp;quot;.&lt;br /&gt;
	tooltipsForComments = settings[ 3 ] === undefined ?&lt;br /&gt;
		IS_TOUCHSCREEN &amp;amp;&amp;amp; IS_MOBILE :&lt;br /&gt;
		Boolean( Number( settings[ 3 ] ) );&lt;br /&gt;
} else {&lt;br /&gt;
	enabled = true;&lt;br /&gt;
	delay = 200;&lt;br /&gt;
	// Since the mobile browser check is error-prone, adding IS_MOBILE condition here would probably&lt;br /&gt;
	// leave cases where a user interacting with the browser using touches doesn&#039;t know how to call&lt;br /&gt;
	// a tooltip in order to switch to activation by click. Some touch-supporting laptop users&lt;br /&gt;
	// interacting by touch (though probably not the most popular use case) would not be happy too.&lt;br /&gt;
	activatedByClick = IS_TOUCHSCREEN;&lt;br /&gt;
	// Arguably we shouldn&#039;t convert native tooltips into gadget tooltips for devices that have&lt;br /&gt;
	// mouse support, even if they have touchscreens (there are laptops with touchscreens).&lt;br /&gt;
	// IS_TOUCHSCREEN check here is for reliability, since the mobile check is prone to false&lt;br /&gt;
	// positives.&lt;br /&gt;
	tooltipsForComments = IS_TOUCHSCREEN &amp;amp;&amp;amp; IS_MOBILE;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
mw.hook( &#039;wikipage.content&#039; ).add( rt );&lt;br /&gt;
&lt;br /&gt;
}() );&lt;/div&gt;</summary>
		<author><name>Sorin.gheorghiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.uni-konstanz.de/mediaewiki/index.php?title=MediaWiki:Gadgets-definition&amp;diff=38722</id>
		<title>MediaWiki:Gadgets-definition</title>
		<link rel="alternate" type="text/html" href="https://wiki.uni-konstanz.de/mediaewiki/index.php?title=MediaWiki:Gadgets-definition&amp;diff=38722"/>
		<updated>2024-04-03T12:48:52Z</updated>

		<summary type="html">&lt;p&gt;Sorin.gheorghiu: Die Seite wurde neu angelegt: „* ReferenceTooltips[ResourceLoader|default|type=general|dependencies=mediawiki.cookie,jquery.client]|ReferenceTooltips.js|ReferenceTooltips.css“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* ReferenceTooltips[ResourceLoader|default|type=general|dependencies=mediawiki.cookie,jquery.client]|ReferenceTooltips.js|ReferenceTooltips.css&lt;/div&gt;</summary>
		<author><name>Sorin.gheorghiu</name></author>
	</entry>
</feed>