Bug 553041 (update fennecmark to work with static page set and dynamic web server) p=jmaher r=anodelman
git-svn-id: svn://10.0.0.236/trunk@260096 18797224-902f-48f8-a5cc-f745e15eee43
@ -198,7 +198,7 @@ tests :
|
|||||||
shutdown : False
|
shutdown : False
|
||||||
profile_path: base_profile
|
profile_path: base_profile
|
||||||
- name: tpan
|
- name: tpan
|
||||||
url: startup_test/fennecmark.html?test=PanDown
|
url: startup_test/fennecmark/fennecmark.html?test=PanDown
|
||||||
resolution: 1
|
resolution: 1
|
||||||
cycles : 10
|
cycles : 10
|
||||||
timeout : 300
|
timeout : 300
|
||||||
@ -208,7 +208,7 @@ tests :
|
|||||||
shutdown : False
|
shutdown : False
|
||||||
profile_path: base_profile
|
profile_path: base_profile
|
||||||
- name: tzoom
|
- name: tzoom
|
||||||
url: startup_test/fennecmark.html?test=Zoom
|
url: startup_test/fennecmark/fennecmark.html?test=Zoom
|
||||||
resolution: 1
|
resolution: 1
|
||||||
cycles : 10
|
cycles : 10
|
||||||
timeout : 300
|
timeout : 300
|
||||||
|
|||||||
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 382 B |
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 891 B |
|
After Width: | Height: | Size: 59 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 817 B |
|
After Width: | Height: | Size: 684 B |
|
After Width: | Height: | Size: 725 B |
|
After Width: | Height: | Size: 664 B |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 873 B |
|
After Width: | Height: | Size: 632 B |
|
After Width: | Height: | Size: 790 B |
|
After Width: | Height: | Size: 851 B |
|
After Width: | Height: | Size: 768 B |
|
After Width: | Height: | Size: 561 B |
|
After Width: | Height: | Size: 438 B |
|
After Width: | Height: | Size: 551 B |
|
After Width: | Height: | Size: 867 B |
|
After Width: | Height: | Size: 976 B |
|
After Width: | Height: | Size: 745 B |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 498 B |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
@ -0,0 +1,167 @@
|
|||||||
|
// remote scripting library
|
||||||
|
// (c) copyright 2005 modernmethod, inc
|
||||||
|
var sajax_debug_mode = false;
|
||||||
|
var sajax_request_type = "GET";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* if sajax_debug_mode is true, this function outputs given the message into
|
||||||
|
* the element with id = sajax_debug; if no such element exists in the document,
|
||||||
|
* it is injected.
|
||||||
|
*/
|
||||||
|
function sajax_debug(text) {
|
||||||
|
if (!sajax_debug_mode) return false;
|
||||||
|
|
||||||
|
var e= document.getElementById('sajax_debug');
|
||||||
|
|
||||||
|
if (!e) {
|
||||||
|
e= document.createElement("p");
|
||||||
|
e.className= 'sajax_debug';
|
||||||
|
e.id= 'sajax_debug';
|
||||||
|
|
||||||
|
var b= document.getElementsByTagName("body")[0];
|
||||||
|
|
||||||
|
if (b.firstChild) b.insertBefore(e, b.firstChild);
|
||||||
|
else b.appendChild(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
var m= document.createElement("div");
|
||||||
|
m.appendChild( document.createTextNode( text ) );
|
||||||
|
|
||||||
|
e.appendChild( m );
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* compatibility wrapper for creating a new XMLHttpRequest object.
|
||||||
|
*/
|
||||||
|
function sajax_init_object() {
|
||||||
|
sajax_debug("sajax_init_object() called..")
|
||||||
|
var A;
|
||||||
|
try {
|
||||||
|
// Try the new style before ActiveX so we don't
|
||||||
|
// unnecessarily trigger warnings in IE 7 when
|
||||||
|
// set to prompt about ActiveX usage
|
||||||
|
A = new XMLHttpRequest();
|
||||||
|
} catch (e) {
|
||||||
|
try {
|
||||||
|
A=new ActiveXObject("Msxml2.XMLHTTP");
|
||||||
|
} catch (e) {
|
||||||
|
try {
|
||||||
|
A=new ActiveXObject("Microsoft.XMLHTTP");
|
||||||
|
} catch (oc) {
|
||||||
|
A=null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!A)
|
||||||
|
sajax_debug("Could not create connection object.");
|
||||||
|
|
||||||
|
return A;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Perform an ajax call to mediawiki. Calls are handeled by AjaxDispatcher.php
|
||||||
|
* func_name - the name of the function to call. Must be registered in $wgAjaxExportList
|
||||||
|
* args - an array of arguments to that function
|
||||||
|
* target - the target that will handle the result of the call. If this is a function,
|
||||||
|
* if will be called with the XMLHttpRequest as a parameter; if it's an input
|
||||||
|
* element, its value will be set to the resultText; if it's another type of
|
||||||
|
* element, its innerHTML will be set to the resultText.
|
||||||
|
*
|
||||||
|
* Example:
|
||||||
|
* sajax_do_call('doFoo', [1, 2, 3], document.getElementById("showFoo"));
|
||||||
|
*
|
||||||
|
* This will call the doFoo function via MediaWiki's AjaxDispatcher, with
|
||||||
|
* (1, 2, 3) as the parameter list, and will show the result in the element
|
||||||
|
* with id = showFoo
|
||||||
|
*/
|
||||||
|
function sajax_do_call(func_name, args, target) {
|
||||||
|
var i, x, n;
|
||||||
|
var uri;
|
||||||
|
var post_data;
|
||||||
|
uri = wgServer +
|
||||||
|
((wgScript == null) ? (wgScriptPath + "/index.php") : wgScript) +
|
||||||
|
"?action=ajax";
|
||||||
|
if (sajax_request_type == "GET") {
|
||||||
|
if (uri.indexOf("?") == -1)
|
||||||
|
uri = uri + "?rs=" + encodeURIComponent(func_name);
|
||||||
|
else
|
||||||
|
uri = uri + "&rs=" + encodeURIComponent(func_name);
|
||||||
|
for (i = 0; i < args.length; i++)
|
||||||
|
uri = uri + "&rsargs[]=" + encodeURIComponent(args[i]);
|
||||||
|
//uri = uri + "&rsrnd=" + new Date().getTime();
|
||||||
|
post_data = null;
|
||||||
|
} else {
|
||||||
|
post_data = "rs=" + encodeURIComponent(func_name);
|
||||||
|
for (i = 0; i < args.length; i++)
|
||||||
|
post_data = post_data + "&rsargs[]=" + encodeURIComponent(args[i]);
|
||||||
|
}
|
||||||
|
x = sajax_init_object();
|
||||||
|
if (!x) {
|
||||||
|
alert("AJAX not supported");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
x.open(sajax_request_type, uri, true);
|
||||||
|
} catch (e) {
|
||||||
|
if (window.location.hostname == "localhost") {
|
||||||
|
alert("Your browser blocks XMLHttpRequest to 'localhost', try using a real hostname for development/testing.");
|
||||||
|
}
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
if (sajax_request_type == "POST") {
|
||||||
|
x.setRequestHeader("Method", "POST " + uri + " HTTP/1.1");
|
||||||
|
x.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
|
||||||
|
}
|
||||||
|
x.setRequestHeader("Pragma", "cache=yes");
|
||||||
|
x.setRequestHeader("Cache-Control", "no-transform");
|
||||||
|
x.onreadystatechange = function() {
|
||||||
|
if (x.readyState != 4)
|
||||||
|
return;
|
||||||
|
|
||||||
|
sajax_debug("received (" + x.status + " " + x.statusText + ") " + x.responseText);
|
||||||
|
|
||||||
|
//if (x.status != 200)
|
||||||
|
// alert("Error: " + x.status + " " + x.statusText + ": " + x.responseText);
|
||||||
|
//else
|
||||||
|
|
||||||
|
if ( typeof( target ) == 'function' ) {
|
||||||
|
target( x );
|
||||||
|
}
|
||||||
|
else if ( typeof( target ) == 'object' ) {
|
||||||
|
if ( target.tagName == 'INPUT' ) {
|
||||||
|
if (x.status == 200) target.value= x.responseText;
|
||||||
|
//else alert("Error: " + x.status + " " + x.statusText + " (" + x.responseText + ")");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (x.status == 200) target.innerHTML = x.responseText;
|
||||||
|
else target.innerHTML= "<div class='error'>Error: " + x.status + " " + x.statusText + " (" + x.responseText + ")</div>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
alert("bad target for sajax_do_call: not a function or object: " + target);
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
sajax_debug(func_name + " uri = " + uri + " / post = " + post_data);
|
||||||
|
x.send(post_data);
|
||||||
|
sajax_debug(func_name + " waiting..");
|
||||||
|
delete x;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return boolean whether the browser supports XMLHttpRequest
|
||||||
|
*/
|
||||||
|
function wfSupportsAjax() {
|
||||||
|
var request = sajax_init_object();
|
||||||
|
var supportsAjax = request ? true : false;
|
||||||
|
delete request;
|
||||||
|
return supportsAjax;
|
||||||
|
}
|
||||||
|
|
||||||
@ -0,0 +1,53 @@
|
|||||||
|
|
||||||
|
function toggleNotice() {
|
||||||
|
var notice = document.getElementById('centralNotice');
|
||||||
|
if (!wgNoticeToggleState) {
|
||||||
|
notice.className = notice.className.replace('collapsed', 'expanded');
|
||||||
|
toggleNoticeCookie('0');
|
||||||
|
} else {
|
||||||
|
notice.className = notice.className.replace('expanded', 'collapsed');
|
||||||
|
toggleNoticeCookie('1');
|
||||||
|
}
|
||||||
|
wgNoticeToggleState = !wgNoticeToggleState;
|
||||||
|
}
|
||||||
|
function toggleNoticeStyle(elems, display) {
|
||||||
|
if(elems)
|
||||||
|
for(var i=0;i<elems.length;i++)
|
||||||
|
elems[i].style.display = display;
|
||||||
|
}
|
||||||
|
function toggleNoticeCookie(state) {
|
||||||
|
var e = new Date();
|
||||||
|
e.setTime( e.getTime() + (7*24*60*60*1000) ); // one week
|
||||||
|
var work='hidesnmessage='+state+'; expires=' + e.toGMTString() + '; path=/';
|
||||||
|
document.cookie = work;
|
||||||
|
}
|
||||||
|
function pickTemplate(templates, weights) {
|
||||||
|
var weightedTemplates = new Array();
|
||||||
|
var currentTemplate = 0;
|
||||||
|
var totalWeight = 0;
|
||||||
|
|
||||||
|
if (templates.length == 0)
|
||||||
|
return '';
|
||||||
|
|
||||||
|
while (currentTemplate < templates.length) {
|
||||||
|
totalWeight += weights[currentTemplate];
|
||||||
|
for (i=0; i<weights[currentTemplate]; i++) {
|
||||||
|
weightedTemplates[weightedTemplates.length] = templates[currentTemplate];
|
||||||
|
}
|
||||||
|
currentTemplate++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (totalWeight == 0)
|
||||||
|
return '';
|
||||||
|
|
||||||
|
var randomnumber=Math.floor(Math.random()*totalWeight);
|
||||||
|
return weightedTemplates[randomnumber];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
var wgNoticeToggleState = (document.cookie.indexOf('hidesnmessage=1')==-1);
|
||||||
|
document.writeln("\x3cstyle type=\"text/css\"\x3e\n#centralNotice .siteNoticeSmall{display:none;}\n#centralNotice .siteNoticeSmallAnon{display:none;}\n#centralNotice .siteNoticeSmallUser{display:none;}\n#centralNotice.collapsed .siteNoticeBig{display:none;}\n#centralNotice.collapsed .siteNoticeSmall{display:block;}\n#centralNotice.collapsed .siteNoticeSmallUser{display:block;}\n#centralNotice.collapsed .siteNoticeSmallAnon{display:block;}\n#centralNotice.anonnotice .siteNoticeSmallUser{display:none !important;}\n#centralNotice.usernotice .siteNoticeSmallAnon{display:none !important;}\n\x3c/style\x3e");
|
||||||
|
|
||||||
|
wgNotice=pickTemplate([],[]);
|
||||||
|
if (wgNotice != '')
|
||||||
|
wgNotice='<div id="centralNotice" class="' + (wgNoticeToggleState ? 'expanded' : 'collapsed') + ' ' + (wgUserName ? 'usernotice' : 'anonnotice' ) + '">' + wgNotice+'</div>';
|
||||||
@ -0,0 +1,249 @@
|
|||||||
|
/*
|
||||||
|
** MediaWiki Print style sheet for CSS2-capable browsers.
|
||||||
|
** Copyright Gabriel Wicke, http://www.aulinx.de/
|
||||||
|
**
|
||||||
|
** Derived from the plone (http://plone.org/) styles
|
||||||
|
** Copyright Alexander Limi
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Thanks to A List Apart (http://alistapart.com/) for useful extras */
|
||||||
|
a.stub,
|
||||||
|
a.new{ color:#ba0000; text-decoration:none; }
|
||||||
|
|
||||||
|
#toc {
|
||||||
|
/*border:1px solid #2f6fab;*/
|
||||||
|
border:1px solid #aaaaaa;
|
||||||
|
background-color:#f9f9f9;
|
||||||
|
padding:5px;
|
||||||
|
}
|
||||||
|
.tocindent {
|
||||||
|
margin-left: 2em;
|
||||||
|
}
|
||||||
|
.tocline {
|
||||||
|
margin-bottom: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* images */
|
||||||
|
div.floatright {
|
||||||
|
float: right;
|
||||||
|
clear: right;
|
||||||
|
margin: 0;
|
||||||
|
position:relative;
|
||||||
|
border: 0.5em solid White;
|
||||||
|
border-width: 0.5em 0 0.8em 1.4em;
|
||||||
|
}
|
||||||
|
div.floatright p { font-style: italic;}
|
||||||
|
div.floatleft {
|
||||||
|
float: left;
|
||||||
|
margin: 0.3em 0.5em 0.5em 0;
|
||||||
|
position:relative;
|
||||||
|
border: 0.5em solid White;
|
||||||
|
border-width: 0.5em 1.4em 0.8em 0;
|
||||||
|
}
|
||||||
|
div.floatleft p { font-style: italic; }
|
||||||
|
/* thumbnails */
|
||||||
|
div.thumb {
|
||||||
|
margin-bottom: 0.5em;
|
||||||
|
border-style: solid; border-color: White;
|
||||||
|
width: auto;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
div.thumb div {
|
||||||
|
border:1px solid #cccccc;
|
||||||
|
padding: 3px !important;
|
||||||
|
background-color:#f9f9f9;
|
||||||
|
font-size: 94%;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
div.thumb div a img {
|
||||||
|
border:1px solid #cccccc;
|
||||||
|
}
|
||||||
|
div.thumb div div.thumbcaption {
|
||||||
|
border: none;
|
||||||
|
padding: 0.3em 0 0.1em 0;
|
||||||
|
}
|
||||||
|
div.magnify { display: none; }
|
||||||
|
div.tright {
|
||||||
|
float: right;
|
||||||
|
clear: right;
|
||||||
|
border-width: 0.5em 0 0.8em 1.4em;
|
||||||
|
}
|
||||||
|
div.tleft {
|
||||||
|
float: left;
|
||||||
|
margin-right:0.5em;
|
||||||
|
border-width: 0.5em 1.4em 0.8em 0;
|
||||||
|
}
|
||||||
|
img.thumbborder {
|
||||||
|
border: 1px solid #dddddd;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* table standards */
|
||||||
|
table.rimage {
|
||||||
|
float:right;
|
||||||
|
width:1pt;
|
||||||
|
position:relative;
|
||||||
|
margin-left:1em;
|
||||||
|
margin-bottom:1em;
|
||||||
|
text-align:center;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
background: White;
|
||||||
|
/*font-size: 11pt !important;*/
|
||||||
|
color: Black;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.noprint,
|
||||||
|
div#jump-to-nav,
|
||||||
|
div.top,
|
||||||
|
div#column-one,
|
||||||
|
#colophon,
|
||||||
|
.editsection,
|
||||||
|
.toctoggle,
|
||||||
|
.tochidden,
|
||||||
|
div#f-poweredbyico,
|
||||||
|
div#f-copyrightico,
|
||||||
|
li#viewcount,
|
||||||
|
li#about,
|
||||||
|
li#disclaimer,
|
||||||
|
li#privacy,
|
||||||
|
#mw-hidden-catlinks {
|
||||||
|
/* Hides all the elements irrelevant for printing */
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul {
|
||||||
|
list-style-type: square;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content {
|
||||||
|
background: none;
|
||||||
|
border: none ! important;
|
||||||
|
padding: 0 ! important;
|
||||||
|
margin: 0 ! important;
|
||||||
|
}
|
||||||
|
#footer {
|
||||||
|
background : white;
|
||||||
|
color : black;
|
||||||
|
border-top: 1px solid black;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1, h2, h3, h4, h5, h6 {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
p, .documentDescription {
|
||||||
|
margin: 1em 0 ! important;
|
||||||
|
line-height: 1.2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tocindent p {
|
||||||
|
margin: 0 0 0 0 ! important;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre {
|
||||||
|
border: 1pt dashed black;
|
||||||
|
white-space: pre;
|
||||||
|
font-size: 8pt;
|
||||||
|
overflow: auto;
|
||||||
|
padding: 1em 0;
|
||||||
|
background : white;
|
||||||
|
color : black;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.listing,
|
||||||
|
table.listing td {
|
||||||
|
border: 1pt solid black;
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: Black !important;
|
||||||
|
background: none !important;
|
||||||
|
padding: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:link, a:visited {
|
||||||
|
color: #520;
|
||||||
|
background: transparent;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content a.external.text:after, #content a.external.autonumber:after {
|
||||||
|
/* Expand URLs for printing */
|
||||||
|
content: " (" attr(href) ") ";
|
||||||
|
}
|
||||||
|
|
||||||
|
#globalWrapper {
|
||||||
|
width: 100% !important;
|
||||||
|
min-width: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content {
|
||||||
|
background : white;
|
||||||
|
color : black;
|
||||||
|
}
|
||||||
|
|
||||||
|
#column-content {
|
||||||
|
margin: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
#column-content #content {
|
||||||
|
padding: 1em;
|
||||||
|
margin: 0 !important;
|
||||||
|
}
|
||||||
|
/* MSIE/Win doesn't understand 'inherit' */
|
||||||
|
a, a.external, a.new, a.stub {
|
||||||
|
color: black ! important;
|
||||||
|
text-decoration: none ! important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Continue ... */
|
||||||
|
a, a.external, a.new, a.stub {
|
||||||
|
color: inherit ! important;
|
||||||
|
text-decoration: inherit ! important;
|
||||||
|
}
|
||||||
|
|
||||||
|
img { border: none; }
|
||||||
|
img.tex { vertical-align: middle; }
|
||||||
|
span.texhtml { font-family: serif; }
|
||||||
|
|
||||||
|
#siteNotice { display: none; }
|
||||||
|
|
||||||
|
div.gallerybox {
|
||||||
|
border: 1px solid #cccccc;
|
||||||
|
background-color:#f9f9f9;
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.gallerytext {
|
||||||
|
overflow: visible;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
** Diff rendering
|
||||||
|
*/
|
||||||
|
table.diff { background:white; }
|
||||||
|
td.diff-otitle { background:#ffffff; }
|
||||||
|
td.diff-ntitle { background:#ffffff; }
|
||||||
|
td.diff-addedline {
|
||||||
|
background:#ccffcc;
|
||||||
|
font-size: smaller;
|
||||||
|
border: solid 2px black;
|
||||||
|
}
|
||||||
|
td.diff-deletedline {
|
||||||
|
background:#ffffaa;
|
||||||
|
font-size: smaller;
|
||||||
|
border: dotted 2px black;
|
||||||
|
}
|
||||||
|
td.diff-context {
|
||||||
|
background:#eeeeee;
|
||||||
|
font-size: smaller;
|
||||||
|
}
|
||||||
|
.diffchange {
|
||||||
|
color: silver;
|
||||||
|
font-weight: bold;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
@ -0,0 +1 @@
|
|||||||
|
<html> <head><title>404 Not Found</title></head> <body> <h1>404 Not Found</h1> <p> <span style='font-family: monospace;'>/w/index.php</span> was not found. </p> </body> </html>
|
||||||
@ -0,0 +1 @@
|
|||||||
|
<html> <head><title>404 Not Found</title></head> <body> <h1>404 Not Found</h1> <p> <span style='font-family: monospace;'>/w/index.php</span> was not found. </p> </body> </html>
|
||||||
@ -0,0 +1 @@
|
|||||||
|
<html> <head><title>404 Not Found</title></head> <body> <h1>404 Not Found</h1> <p> <span style='font-family: monospace;'>/w/index.php</span> was not found. </p> </body> </html>
|
||||||
@ -0,0 +1 @@
|
|||||||
|
<html> <head><title>404 Not Found</title></head> <body> <h1>404 Not Found</h1> <p> <span style='font-family: monospace;'>/w/index.php</span> was not found. </p> </body> </html>
|
||||||
@ -0,0 +1 @@
|
|||||||
|
<html> <head><title>404 Not Found</title></head> <body> <h1>404 Not Found</h1> <p> <span style='font-family: monospace;'>/w/index.php</span> was not found. </p> </body> </html>
|
||||||
@ -0,0 +1 @@
|
|||||||
|
<html> <head><title>404 Not Found</title></head> <body> <h1>404 Not Found</h1> <p> <span style='font-family: monospace;'>/w/index.php</span> was not found. </p> </body> </html>
|
||||||
|
After Width: | Height: | Size: 204 B |
@ -0,0 +1,410 @@
|
|||||||
|
/*
|
||||||
|
** MediaWiki 'chick' style sheet for PDAs or other small-screen devices.
|
||||||
|
** Copyright Timwi
|
||||||
|
** License: GPL (http://www.gnu.org/copyleft/gpl.html)
|
||||||
|
**
|
||||||
|
** Loosely based on Monobook by Gabriel Wicke
|
||||||
|
*/
|
||||||
|
|
||||||
|
body {
|
||||||
|
font-family: sans-serif;
|
||||||
|
color: Black;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0.3em;
|
||||||
|
}
|
||||||
|
|
||||||
|
a { color: #002bb8; }
|
||||||
|
a:visited { color: #5a3696; }
|
||||||
|
a:active { color: #ffa500; }
|
||||||
|
a.stub { color: #772233; }
|
||||||
|
a.new,
|
||||||
|
#p-personal a.new { color:#ba0000; }
|
||||||
|
a.new:visited,
|
||||||
|
#p-personal a.new:visited { color:#a55858; }
|
||||||
|
|
||||||
|
img {
|
||||||
|
border: none;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
p {
|
||||||
|
margin: 0.4em 0em 0.5em 0em;
|
||||||
|
line-height: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
p img { margin: 0; }
|
||||||
|
|
||||||
|
hr {
|
||||||
|
height: 1px;
|
||||||
|
color: #aaaaaa;
|
||||||
|
background-color: #aaaaaa;
|
||||||
|
border: 0;
|
||||||
|
margin: 0.2em 0 0.2em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1, h2, h3, h4, h5, h6 {
|
||||||
|
color: Black;
|
||||||
|
background: none;
|
||||||
|
font-weight: normal;
|
||||||
|
margin: 0;
|
||||||
|
padding-top: 0.5em;
|
||||||
|
padding-bottom: 0.17em;
|
||||||
|
border-bottom: 1px solid #aaaaaa;
|
||||||
|
}
|
||||||
|
.editsection {
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
h1 { font-size: 188%; }
|
||||||
|
h1 .editsection { font-size: 53.2%; }
|
||||||
|
h2 { font-size: 150%; }
|
||||||
|
h2 .editsection { font-size: 66.7%; }
|
||||||
|
h3, h4, h5, h6 {
|
||||||
|
border-bottom: none;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
h3 { font-size: 132%; }
|
||||||
|
h3 .editsection { font-size: 75.8%; }
|
||||||
|
h4 { font-size: 116%; }
|
||||||
|
h4 .editsection { font-size: 86.2%; }
|
||||||
|
h5 { font-size: 100%; }
|
||||||
|
h6 { font-size: 80%; }
|
||||||
|
h6 .editsection { font-size: 125%; }
|
||||||
|
|
||||||
|
ul {
|
||||||
|
line-height: 1.5em;
|
||||||
|
margin: 0.3em 0 0 1.5em;
|
||||||
|
padding:0;
|
||||||
|
}
|
||||||
|
ol {
|
||||||
|
line-height: 1.5em;
|
||||||
|
margin: 0.3em 0 0 3.2em;
|
||||||
|
padding:0;
|
||||||
|
list-style-image: none;
|
||||||
|
}
|
||||||
|
li { margin-bottom: 0.1em; }
|
||||||
|
dt {
|
||||||
|
font-weight: bold;
|
||||||
|
margin-bottom: 0.1em;
|
||||||
|
}
|
||||||
|
dl{
|
||||||
|
margin-top: 0.2em;
|
||||||
|
margin-bottom: 0.5em;
|
||||||
|
}
|
||||||
|
dd {
|
||||||
|
line-height: 1.5em;
|
||||||
|
margin-left: 2em;
|
||||||
|
margin-bottom: 0.1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
fieldset {
|
||||||
|
border: 1px solid #2f6fab;
|
||||||
|
margin: 1em 0em 1em 0em;
|
||||||
|
padding: 0em 1em 1em 1em;
|
||||||
|
line-height: 1.5em;
|
||||||
|
}
|
||||||
|
legend {
|
||||||
|
background: White;
|
||||||
|
padding: 0.5em;
|
||||||
|
font-size: 95%;
|
||||||
|
}
|
||||||
|
form {
|
||||||
|
border: none;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
textarea {
|
||||||
|
border: 1px solid #2f6fab;
|
||||||
|
color: Black;
|
||||||
|
background-color: white;
|
||||||
|
width: 100%;
|
||||||
|
padding: 0.1em;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
/* hide this from ie/mac and konq2.2 */
|
||||||
|
@media All {
|
||||||
|
head:first-child+body input {
|
||||||
|
visibility: visible;
|
||||||
|
border: 1px solid #2f6fab;
|
||||||
|
color: Black;
|
||||||
|
background-color: white;
|
||||||
|
vertical-align: middle;
|
||||||
|
padding: 0.2em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
input.historysubmit {
|
||||||
|
padding: 0 0.3em 0.3em 0.3em !important;
|
||||||
|
font-size: 94%;
|
||||||
|
cursor: pointer;
|
||||||
|
height: 1.7em !important;
|
||||||
|
margin-left: 1.6em;
|
||||||
|
}
|
||||||
|
input[type="radio"],
|
||||||
|
input[type="checkbox"] { border:none; }
|
||||||
|
select {
|
||||||
|
border: 1px solid #2f6fab;
|
||||||
|
color: Black;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
abbr, acronym, .explain {
|
||||||
|
border-bottom: 1px dotted Black;
|
||||||
|
color: Black;
|
||||||
|
background: none;
|
||||||
|
cursor: help;
|
||||||
|
}
|
||||||
|
q {
|
||||||
|
font-family: Times, "Times New Roman", serif;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
code { background-color: #f9f9f9; }
|
||||||
|
pre {
|
||||||
|
padding: 1em;
|
||||||
|
border: 1px dashed #2f6fab;
|
||||||
|
color: Black;
|
||||||
|
background-color: #f9f9f9;
|
||||||
|
line-height: 1.1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
** the main content area
|
||||||
|
*/
|
||||||
|
|
||||||
|
span.subpages { display: block; }
|
||||||
|
|
||||||
|
/* Some space under the headers in the content area */
|
||||||
|
#bodyContent h1, #bodyContent h2 { margin-bottom:0.6em; }
|
||||||
|
#bodyContent h3,
|
||||||
|
#bodyContent h4,
|
||||||
|
#bodyContent h5 {
|
||||||
|
margin-bottom: 0.3em;
|
||||||
|
}
|
||||||
|
#firstHeading { margin-bottom:0.1em; }
|
||||||
|
|
||||||
|
/* user notification thing */
|
||||||
|
.usermessage {
|
||||||
|
background-color: #ffce7b;
|
||||||
|
border: 1px solid #ffa500;
|
||||||
|
color: Black;
|
||||||
|
font-weight: bold;
|
||||||
|
margin: 0.1em 0 0 0;
|
||||||
|
padding: 2px 5px;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
#siteNotice {
|
||||||
|
text-align: center;
|
||||||
|
font-size: 95%;
|
||||||
|
padding: 0 0.9em 0 0.9em;
|
||||||
|
}
|
||||||
|
#siteNotice p { margin: 0; padding: 0; }
|
||||||
|
.error {
|
||||||
|
color: red;
|
||||||
|
font-size: larger;
|
||||||
|
}
|
||||||
|
.catlinks {
|
||||||
|
border:1px solid #aaaaaa;
|
||||||
|
background-color:#f9f9f9;
|
||||||
|
padding: 2px 5px;
|
||||||
|
margin: 0.1em 0 0 0;
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
.catlinks { margin: 0; padding: 0; }
|
||||||
|
|
||||||
|
|
||||||
|
/* currently unused, intended to be used by a metadata box
|
||||||
|
in the bottom-right corner of the content area */
|
||||||
|
.documentDescription {
|
||||||
|
/* The summary text describing the document */
|
||||||
|
font-weight: bold;
|
||||||
|
display: block;
|
||||||
|
margin: 1em 0em;
|
||||||
|
line-height: 1.5em;
|
||||||
|
}
|
||||||
|
.documentByLine {
|
||||||
|
text-align: right;
|
||||||
|
font-size: 90%;
|
||||||
|
clear: both;
|
||||||
|
font-weight: normal;
|
||||||
|
color: #76797c;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* emulate center */
|
||||||
|
.center {
|
||||||
|
width: 100%;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
*.center * {
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
/* small for tables and similar */
|
||||||
|
.small, .small * { font-size: 94%; }
|
||||||
|
table.small { font-size: 100% }
|
||||||
|
|
||||||
|
/*
|
||||||
|
** content styles
|
||||||
|
*/
|
||||||
|
|
||||||
|
#toc {
|
||||||
|
/*border:1px solid #2f6fab;*/
|
||||||
|
border:1px solid #aaaaaa;
|
||||||
|
background-color:#f9f9f9;
|
||||||
|
padding:5px;
|
||||||
|
font-size: 95%;
|
||||||
|
}
|
||||||
|
#toc ul { margin-left: 2em; }
|
||||||
|
#toc .toctoggle { font-size: 94%; }
|
||||||
|
#toc .editsection {
|
||||||
|
margin-top: 0.7em;
|
||||||
|
font-size: 94%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* images */
|
||||||
|
div.floatright, table.floatright {
|
||||||
|
clear: right;
|
||||||
|
float: right;
|
||||||
|
margin: 0;
|
||||||
|
position: relative;
|
||||||
|
border: 0.5em solid White;
|
||||||
|
border-width: 0.5em 0 0.8em 1.4em;
|
||||||
|
}
|
||||||
|
div.floatright p { font-style: italic; }
|
||||||
|
div.floatleft, table.floatleft {
|
||||||
|
float: left;
|
||||||
|
clear: left;
|
||||||
|
margin: 0.3em 0.5em 0.5em 0;
|
||||||
|
position: relative;
|
||||||
|
border: 0.5em solid White;
|
||||||
|
border-width: 0.5em 1.4em 0.8em 0;
|
||||||
|
}
|
||||||
|
div.floatleft p { font-style: italic; }
|
||||||
|
/* thumbnails */
|
||||||
|
div.thumb {
|
||||||
|
margin-bottom: 0.5em;
|
||||||
|
border-style: solid; border-color: White;
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
div.thumb div {
|
||||||
|
border:1px solid #cccccc;
|
||||||
|
padding: 3px !important;
|
||||||
|
background-color:#f9f9f9;
|
||||||
|
font-size: 94%;
|
||||||
|
text-align: center;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
div.thumb div a img {
|
||||||
|
border:1px solid #cccccc;
|
||||||
|
}
|
||||||
|
div.thumb div div.thumbcaption {
|
||||||
|
border: none;
|
||||||
|
text-align: left;
|
||||||
|
line-height: 1.4em;
|
||||||
|
padding: 0.3em 0 0.1em 0;
|
||||||
|
}
|
||||||
|
div.magnify {
|
||||||
|
float: right;
|
||||||
|
border: none !important;
|
||||||
|
background: none !important;
|
||||||
|
}
|
||||||
|
div.magnify a, div.magnify img {
|
||||||
|
display: block;
|
||||||
|
border: none !important;
|
||||||
|
background: none !important;
|
||||||
|
}
|
||||||
|
div.tright {
|
||||||
|
clear: right;
|
||||||
|
float: right;
|
||||||
|
border-width: 0.5em 0 0.8em 1.4em;
|
||||||
|
}
|
||||||
|
div.tleft {
|
||||||
|
float: left;
|
||||||
|
clear: left;
|
||||||
|
margin-right:0.5em;
|
||||||
|
border-width: 0.5em 1.4em 0.8em 0;
|
||||||
|
}
|
||||||
|
img.thumbborder {
|
||||||
|
border: 1px solid #dddddd;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hiddenStructure {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
** classes for special content elements like town boxes
|
||||||
|
** intended to be referenced directly from the wiki src
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
** User styles
|
||||||
|
*/
|
||||||
|
/* table standards */
|
||||||
|
table.rimage {
|
||||||
|
float:right;
|
||||||
|
position:relative;
|
||||||
|
margin-left:1em;
|
||||||
|
margin-bottom:1em;
|
||||||
|
text-align:center;
|
||||||
|
}
|
||||||
|
.toccolours {
|
||||||
|
border:1px solid #aaaaaa;
|
||||||
|
background-color:#f9f9f9;
|
||||||
|
padding:5px;
|
||||||
|
font-size: 95%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
** edit views etc
|
||||||
|
*/
|
||||||
|
.special li {
|
||||||
|
line-height: 1.4em;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.external { color: #3366bb; }
|
||||||
|
div#footer { text-align: center; }
|
||||||
|
ul#f-list li { list-style: none; text-align: center; }
|
||||||
|
div.portlet { margin: 0.5em 0; }
|
||||||
|
|
||||||
|
.redirectText {
|
||||||
|
font-size:150%;
|
||||||
|
margin:5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.special li.not-patrolled, ol.special li.not-patrolled {
|
||||||
|
background-color: #ffa;
|
||||||
|
}
|
||||||
|
div.patrollink {
|
||||||
|
font-size: 75%;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.updatedmarker {
|
||||||
|
color:black;
|
||||||
|
background-color:#00FF00;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.gallerybox {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#xjump-to-nav {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.templatesUsed { margin-top: 1.5em; }
|
||||||
|
|
||||||
|
.printfooter {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#footer {
|
||||||
|
background-color: white;
|
||||||
|
border-top: 1px solid #fabd23;
|
||||||
|
border-bottom: 1px solid #fabd23;
|
||||||
|
margin: .6em 0 1em 0;
|
||||||
|
padding: .4em 0 1.2em 0;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 90%;
|
||||||
|
}
|
||||||
|
#f-poweredbyico, #f-copyrightico {
|
||||||
|
display: inline;
|
||||||
|
}
|
||||||
@ -0,0 +1,861 @@
|
|||||||
|
/*
|
||||||
|
* OpenSearch ajax suggestion engine for MediaWiki
|
||||||
|
*
|
||||||
|
* uses core MediaWiki open search support to fetch suggestions
|
||||||
|
* and show them below search boxes and other inputs
|
||||||
|
*
|
||||||
|
* by Robert Stojnic (April 2008)
|
||||||
|
*/
|
||||||
|
|
||||||
|
// search_box_id -> Results object
|
||||||
|
var os_map = {};
|
||||||
|
// cached data, url -> json_text
|
||||||
|
var os_cache = {};
|
||||||
|
// global variables for suggest_keypress
|
||||||
|
var os_cur_keypressed = 0;
|
||||||
|
var os_keypressed_count = 0;
|
||||||
|
// type: Timer
|
||||||
|
var os_timer = null;
|
||||||
|
// tie mousedown/up events
|
||||||
|
var os_mouse_pressed = false;
|
||||||
|
var os_mouse_num = -1;
|
||||||
|
// if true, the last change was made by mouse (and not keyboard)
|
||||||
|
var os_mouse_moved = false;
|
||||||
|
// delay between keypress and suggestion (in ms)
|
||||||
|
var os_search_timeout = 250;
|
||||||
|
// these pairs of inputs/forms will be autoloaded at startup
|
||||||
|
var os_autoload_inputs = new Array('searchInput', 'searchInput2', 'powerSearchText', 'searchText');
|
||||||
|
var os_autoload_forms = new Array('searchform', 'searchform2', 'powersearch', 'search' );
|
||||||
|
// if we stopped the service
|
||||||
|
var os_is_stopped = false;
|
||||||
|
// max lines to show in suggest table
|
||||||
|
var os_max_lines_per_suggest = 7;
|
||||||
|
// number of steps to animate expansion/contraction of container width
|
||||||
|
var os_animation_steps = 6;
|
||||||
|
// num of pixels of smallest step
|
||||||
|
var os_animation_min_step = 2;
|
||||||
|
// delay between steps (in ms)
|
||||||
|
var os_animation_delay = 30;
|
||||||
|
// max width of container in percent of normal size (1 == 100%)
|
||||||
|
var os_container_max_width = 2;
|
||||||
|
// currently active animation timer
|
||||||
|
var os_animation_timer = null;
|
||||||
|
|
||||||
|
/** Timeout timer class that will fetch the results */
|
||||||
|
function os_Timer(id,r,query){
|
||||||
|
this.id = id;
|
||||||
|
this.r = r;
|
||||||
|
this.query = query;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Timer user to animate expansion/contraction of container width */
|
||||||
|
function os_AnimationTimer(r, target){
|
||||||
|
this.r = r;
|
||||||
|
var current = document.getElementById(r.container).offsetWidth;
|
||||||
|
this.inc = Math.round((target-current) / os_animation_steps);
|
||||||
|
if(this.inc < os_animation_min_step && this.inc >=0)
|
||||||
|
this.inc = os_animation_min_step; // minimal animation step
|
||||||
|
if(this.inc > -os_animation_min_step && this.inc <0)
|
||||||
|
this.inc = -os_animation_min_step;
|
||||||
|
this.target = target;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Property class for single search box */
|
||||||
|
function os_Results(name, formname){
|
||||||
|
this.searchform = formname; // id of the searchform
|
||||||
|
this.searchbox = name; // id of the searchbox
|
||||||
|
this.container = name+"Suggest"; // div that holds results
|
||||||
|
this.resultTable = name+"Result"; // id base for the result table (+num = table row)
|
||||||
|
this.resultText = name+"ResultText"; // id base for the spans within result tables (+num)
|
||||||
|
this.toggle = name+"Toggle"; // div that has the toggle (enable/disable) link
|
||||||
|
this.query = null; // last processed query
|
||||||
|
this.results = null; // parsed titles
|
||||||
|
this.resultCount = 0; // number of results
|
||||||
|
this.original = null; // query that user entered
|
||||||
|
this.selected = -1; // which result is selected
|
||||||
|
this.containerCount = 0; // number of results visible in container
|
||||||
|
this.containerRow = 0; // height of result field in the container
|
||||||
|
this.containerTotal = 0; // total height of the container will all results
|
||||||
|
this.visible = false; // if container is visible
|
||||||
|
this.stayHidden = false; // don't try to show if lost focus
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Hide results div */
|
||||||
|
function os_hideResults(r){
|
||||||
|
var c = document.getElementById(r.container);
|
||||||
|
if(c != null)
|
||||||
|
c.style.visibility = "hidden";
|
||||||
|
r.visible = false;
|
||||||
|
r.selected = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Show results div */
|
||||||
|
function os_showResults(r){
|
||||||
|
if(os_is_stopped)
|
||||||
|
return;
|
||||||
|
if(r.stayHidden)
|
||||||
|
return
|
||||||
|
os_fitContainer(r);
|
||||||
|
var c = document.getElementById(r.container);
|
||||||
|
r.selected = -1;
|
||||||
|
if(c != null){
|
||||||
|
c.scrollTop = 0;
|
||||||
|
c.style.visibility = "visible";
|
||||||
|
r.visible = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function os_operaWidthFix(x){
|
||||||
|
// For browsers that don't understand overflow-x, estimate scrollbar width
|
||||||
|
if(typeof document.body.style.overflowX != "string"){
|
||||||
|
return 30;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
function os_encodeQuery(value){
|
||||||
|
if (encodeURIComponent) {
|
||||||
|
return encodeURIComponent(value);
|
||||||
|
}
|
||||||
|
if(escape) {
|
||||||
|
return escape(value);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
function os_decodeValue(value){
|
||||||
|
if (decodeURIComponent) {
|
||||||
|
return decodeURIComponent(value);
|
||||||
|
}
|
||||||
|
if(unescape){
|
||||||
|
return unescape(value);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Brower-dependent functions to find window inner size, and scroll status */
|
||||||
|
function f_clientWidth() {
|
||||||
|
return f_filterResults (
|
||||||
|
window.innerWidth ? window.innerWidth : 0,
|
||||||
|
document.documentElement ? document.documentElement.clientWidth : 0,
|
||||||
|
document.body ? document.body.clientWidth : 0
|
||||||
|
);
|
||||||
|
}
|
||||||
|
function f_clientHeight() {
|
||||||
|
return f_filterResults (
|
||||||
|
window.innerHeight ? window.innerHeight : 0,
|
||||||
|
document.documentElement ? document.documentElement.clientHeight : 0,
|
||||||
|
document.body ? document.body.clientHeight : 0
|
||||||
|
);
|
||||||
|
}
|
||||||
|
function f_scrollLeft() {
|
||||||
|
return f_filterResults (
|
||||||
|
window.pageXOffset ? window.pageXOffset : 0,
|
||||||
|
document.documentElement ? document.documentElement.scrollLeft : 0,
|
||||||
|
document.body ? document.body.scrollLeft : 0
|
||||||
|
);
|
||||||
|
}
|
||||||
|
function f_scrollTop() {
|
||||||
|
return f_filterResults (
|
||||||
|
window.pageYOffset ? window.pageYOffset : 0,
|
||||||
|
document.documentElement ? document.documentElement.scrollTop : 0,
|
||||||
|
document.body ? document.body.scrollTop : 0
|
||||||
|
);
|
||||||
|
}
|
||||||
|
function f_filterResults(n_win, n_docel, n_body) {
|
||||||
|
var n_result = n_win ? n_win : 0;
|
||||||
|
if (n_docel && (!n_result || (n_result > n_docel)))
|
||||||
|
n_result = n_docel;
|
||||||
|
return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get the height available for the results container */
|
||||||
|
function os_availableHeight(r){
|
||||||
|
var absTop = document.getElementById(r.container).style.top;
|
||||||
|
var px = absTop.lastIndexOf("px");
|
||||||
|
if(px > 0)
|
||||||
|
absTop = absTop.substring(0,px);
|
||||||
|
return f_clientHeight() - (absTop - f_scrollTop());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** Get element absolute position {left,top} */
|
||||||
|
function os_getElementPosition(elemID){
|
||||||
|
var offsetTrail = document.getElementById(elemID);
|
||||||
|
var offsetLeft = 0;
|
||||||
|
var offsetTop = 0;
|
||||||
|
while (offsetTrail){
|
||||||
|
offsetLeft += offsetTrail.offsetLeft;
|
||||||
|
offsetTop += offsetTrail.offsetTop;
|
||||||
|
offsetTrail = offsetTrail.offsetParent;
|
||||||
|
}
|
||||||
|
if (navigator.userAgent.indexOf('Mac') != -1 && typeof document.body.leftMargin != 'undefined'){
|
||||||
|
offsetLeft += document.body.leftMargin;
|
||||||
|
offsetTop += document.body.topMargin;
|
||||||
|
}
|
||||||
|
return {left:offsetLeft,top:offsetTop};
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Create the container div that will hold the suggested titles */
|
||||||
|
function os_createContainer(r){
|
||||||
|
var c = document.createElement("div");
|
||||||
|
var s = document.getElementById(r.searchbox);
|
||||||
|
var pos = os_getElementPosition(r.searchbox);
|
||||||
|
var left = pos.left;
|
||||||
|
var top = pos.top + s.offsetHeight;
|
||||||
|
c.className = "os-suggest";
|
||||||
|
c.setAttribute("id", r.container);
|
||||||
|
document.body.appendChild(c);
|
||||||
|
|
||||||
|
// dynamically generated style params
|
||||||
|
// IE workaround, cannot explicitely set "style" attribute
|
||||||
|
c = document.getElementById(r.container);
|
||||||
|
c.style.top = top+"px";
|
||||||
|
c.style.left = left+"px";
|
||||||
|
c.style.width = s.offsetWidth+"px";
|
||||||
|
|
||||||
|
// mouse event handlers
|
||||||
|
c.onmouseover = function(event) { os_eventMouseover(r.searchbox, event); };
|
||||||
|
c.onmousemove = function(event) { os_eventMousemove(r.searchbox, event); };
|
||||||
|
c.onmousedown = function(event) { return os_eventMousedown(r.searchbox, event); };
|
||||||
|
c.onmouseup = function(event) { os_eventMouseup(r.searchbox, event); };
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** change container height to fit to screen */
|
||||||
|
function os_fitContainer(r){
|
||||||
|
var c = document.getElementById(r.container);
|
||||||
|
var h = os_availableHeight(r) - 20;
|
||||||
|
var inc = r.containerRow;
|
||||||
|
h = parseInt(h/inc) * inc;
|
||||||
|
if(h < (2 * inc) && r.resultCount > 1) // min: two results
|
||||||
|
h = 2 * inc;
|
||||||
|
if((h/inc) > os_max_lines_per_suggest )
|
||||||
|
h = inc * os_max_lines_per_suggest;
|
||||||
|
if(h < r.containerTotal){
|
||||||
|
c.style.height = h +"px";
|
||||||
|
r.containerCount = parseInt(Math.round(h/inc));
|
||||||
|
} else{
|
||||||
|
c.style.height = r.containerTotal+"px";
|
||||||
|
r.containerCount = r.resultCount;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/** If some entries are longer than the box, replace text with "..." */
|
||||||
|
function os_trimResultText(r){
|
||||||
|
// find max width, first see if we could expand the container to fit it
|
||||||
|
var maxW = 0;
|
||||||
|
for(var i=0;i<r.resultCount;i++){
|
||||||
|
var e = document.getElementById(r.resultText+i);
|
||||||
|
if(e.offsetWidth > maxW)
|
||||||
|
maxW = e.offsetWidth;
|
||||||
|
}
|
||||||
|
var w = document.getElementById(r.container).offsetWidth;
|
||||||
|
var fix = 0;
|
||||||
|
if(r.containerCount < r.resultCount){
|
||||||
|
fix = 20; // give 20px for scrollbar
|
||||||
|
} else
|
||||||
|
fix = os_operaWidthFix(w);
|
||||||
|
if(fix < 4)
|
||||||
|
fix = 4; // basic padding
|
||||||
|
maxW += fix;
|
||||||
|
|
||||||
|
// resize container to fit more data if permitted
|
||||||
|
var normW = document.getElementById(r.searchbox).offsetWidth;
|
||||||
|
var prop = maxW / normW;
|
||||||
|
if(prop > os_container_max_width)
|
||||||
|
prop = os_container_max_width;
|
||||||
|
else if(prop < 1)
|
||||||
|
prop = 1;
|
||||||
|
var newW = Math.round( normW * prop );
|
||||||
|
if( w != newW ){
|
||||||
|
w = newW;
|
||||||
|
if( os_animation_timer != null )
|
||||||
|
clearInterval(os_animation_timer.id)
|
||||||
|
os_animation_timer = new os_AnimationTimer(r,w);
|
||||||
|
os_animation_timer.id = setInterval("os_animateChangeWidth()",os_animation_delay);
|
||||||
|
w -= fix; // this much is reserved
|
||||||
|
}
|
||||||
|
|
||||||
|
// trim results
|
||||||
|
if(w < 10)
|
||||||
|
return;
|
||||||
|
for(var i=0;i<r.resultCount;i++){
|
||||||
|
var e = document.getElementById(r.resultText+i);
|
||||||
|
var replace = 1;
|
||||||
|
var lastW = e.offsetWidth+1;
|
||||||
|
var iteration = 0;
|
||||||
|
var changedText = false;
|
||||||
|
while(e.offsetWidth > w && (e.offsetWidth < lastW || iteration<2)){
|
||||||
|
changedText = true;
|
||||||
|
lastW = e.offsetWidth;
|
||||||
|
var l = e.innerHTML;
|
||||||
|
e.innerHTML = l.substring(0,l.length-replace)+"...";
|
||||||
|
iteration++;
|
||||||
|
replace = 4; // how many chars to replace
|
||||||
|
}
|
||||||
|
if(changedText){
|
||||||
|
// show hint for trimmed titles
|
||||||
|
document.getElementById(r.resultTable+i).setAttribute("title",r.results[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Invoked on timer to animate change in container width */
|
||||||
|
function os_animateChangeWidth(){
|
||||||
|
var r = os_animation_timer.r;
|
||||||
|
var c = document.getElementById(r.container);
|
||||||
|
var w = c.offsetWidth;
|
||||||
|
var normW = document.getElementById(r.searchbox).offsetWidth;
|
||||||
|
var normL = os_getElementPosition(r.searchbox).left;
|
||||||
|
var inc = os_animation_timer.inc;
|
||||||
|
var target = os_animation_timer.target;
|
||||||
|
var nw = w + inc;
|
||||||
|
if( (inc > 0 && nw >= target) || (inc <= 0 && nw <= target) ){
|
||||||
|
// finished !
|
||||||
|
c.style.width = target+"px";
|
||||||
|
clearInterval(os_animation_timer.id)
|
||||||
|
os_animation_timer = null;
|
||||||
|
} else{
|
||||||
|
// in-progress
|
||||||
|
c.style.width = nw+"px";
|
||||||
|
if(document.documentElement.dir == "rtl")
|
||||||
|
c.style.left = (normL + normW + (target - nw) - os_animation_timer.target - 1)+"px";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Handles data from XMLHttpRequest, and updates the suggest results */
|
||||||
|
function os_updateResults(r, query, text, cacheKey){
|
||||||
|
os_cache[cacheKey] = text;
|
||||||
|
r.query = query;
|
||||||
|
r.original = query;
|
||||||
|
if(text == ""){
|
||||||
|
r.results = null;
|
||||||
|
r.resultCount = 0;
|
||||||
|
os_hideResults(r);
|
||||||
|
} else{
|
||||||
|
try {
|
||||||
|
var p = eval('('+text+')'); // simple json parse, could do a safer one
|
||||||
|
if(p.length<2 || p[1].length == 0){
|
||||||
|
r.results = null;
|
||||||
|
r.resultCount = 0;
|
||||||
|
os_hideResults(r);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var c = document.getElementById(r.container);
|
||||||
|
if(c == null)
|
||||||
|
c = os_createContainer(r);
|
||||||
|
c.innerHTML = os_createResultTable(r,p[1]);
|
||||||
|
// init container table sizes
|
||||||
|
var t = document.getElementById(r.resultTable);
|
||||||
|
r.containerTotal = t.offsetHeight;
|
||||||
|
r.containerRow = t.offsetHeight / r.resultCount;
|
||||||
|
os_fitContainer(r);
|
||||||
|
os_trimResultText(r);
|
||||||
|
os_showResults(r);
|
||||||
|
} catch(e){
|
||||||
|
// bad response from server or such
|
||||||
|
os_hideResults(r);
|
||||||
|
os_cache[cacheKey] = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Create the result table to be placed in the container div */
|
||||||
|
function os_createResultTable(r, results){
|
||||||
|
var c = document.getElementById(r.container);
|
||||||
|
var width = c.offsetWidth - os_operaWidthFix(c.offsetWidth);
|
||||||
|
var html = "<table class=\"os-suggest-results\" id=\""+r.resultTable+"\" style=\"width: "+width+"px;\">";
|
||||||
|
r.results = new Array();
|
||||||
|
r.resultCount = results.length;
|
||||||
|
for(i=0;i<results.length;i++){
|
||||||
|
var title = os_decodeValue(results[i]);
|
||||||
|
r.results[i] = title;
|
||||||
|
html += "<tr><td class=\"os-suggest-result\" id=\""+r.resultTable+i+"\"><span id=\""+r.resultText+i+"\">"+title+"</span></td></tr>";
|
||||||
|
}
|
||||||
|
html+="</table>"
|
||||||
|
return html;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Fetch namespaces from checkboxes or hidden fields in the search form,
|
||||||
|
if none defined use wgSearchNamespaces global */
|
||||||
|
function os_getNamespaces(r){
|
||||||
|
var namespaces = "";
|
||||||
|
var elements = document.forms[r.searchform].elements;
|
||||||
|
for(i=0; i < elements.length; i++){
|
||||||
|
var name = elements[i].name;
|
||||||
|
if(typeof name != 'undefined' && name.length > 2
|
||||||
|
&& name[0]=='n' && name[1]=='s'
|
||||||
|
&& ((elements[i].type=='checkbox' && elements[i].checked)
|
||||||
|
|| (elements[i].type=='hidden' && elements[i].value=="1")) ){
|
||||||
|
if(namespaces!="")
|
||||||
|
namespaces+="|";
|
||||||
|
namespaces+=name.substring(2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(namespaces == "")
|
||||||
|
namespaces = wgSearchNamespaces.join("|");
|
||||||
|
return namespaces;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Update results if user hasn't already typed something else */
|
||||||
|
function os_updateIfRelevant(r, query, text, cacheKey){
|
||||||
|
var t = document.getElementById(r.searchbox);
|
||||||
|
if(t != null && t.value == query){ // check if response is still relevant
|
||||||
|
os_updateResults(r, query, text, cacheKey);
|
||||||
|
}
|
||||||
|
r.query = query;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Fetch results after some timeout */
|
||||||
|
function os_delayedFetch(){
|
||||||
|
if(os_timer == null)
|
||||||
|
return;
|
||||||
|
var r = os_timer.r;
|
||||||
|
var query = os_timer.query;
|
||||||
|
os_timer = null;
|
||||||
|
var path = wgMWSuggestTemplate.replace("{namespaces}",os_getNamespaces(r))
|
||||||
|
.replace("{dbname}",wgDBname)
|
||||||
|
.replace("{searchTerms}",os_encodeQuery(query));
|
||||||
|
|
||||||
|
// try to get from cache, if not fetch using ajax
|
||||||
|
var cached = os_cache[path];
|
||||||
|
if(cached != null){
|
||||||
|
os_updateIfRelevant(r, query, cached, path);
|
||||||
|
} else{
|
||||||
|
var xmlhttp = sajax_init_object();
|
||||||
|
if(xmlhttp){
|
||||||
|
try {
|
||||||
|
xmlhttp.open("GET", path, true);
|
||||||
|
xmlhttp.onreadystatechange=function(){
|
||||||
|
if (xmlhttp.readyState==4 && typeof os_updateIfRelevant == 'function') {
|
||||||
|
os_updateIfRelevant(r, query, xmlhttp.responseText, path);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
xmlhttp.send(null);
|
||||||
|
} catch (e) {
|
||||||
|
if (window.location.hostname == "localhost") {
|
||||||
|
alert("Your browser blocks XMLHttpRequest to 'localhost', try using a real hostname for development/testing.");
|
||||||
|
}
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Init timed update via os_delayedUpdate() */
|
||||||
|
function os_fetchResults(r, query, timeout){
|
||||||
|
if(query == ""){
|
||||||
|
r.query = "";
|
||||||
|
os_hideResults(r);
|
||||||
|
return;
|
||||||
|
} else if(query == r.query)
|
||||||
|
return; // no change
|
||||||
|
|
||||||
|
os_is_stopped = false; // make sure we're running
|
||||||
|
|
||||||
|
/* var cacheKey = wgDBname+":"+query;
|
||||||
|
var cached = os_cache[cacheKey];
|
||||||
|
if(cached != null){
|
||||||
|
os_updateResults(r,wgDBname,query,cached);
|
||||||
|
return;
|
||||||
|
} */
|
||||||
|
|
||||||
|
// cancel any pending fetches
|
||||||
|
if(os_timer != null && os_timer.id != null)
|
||||||
|
clearTimeout(os_timer.id);
|
||||||
|
// schedule delayed fetching of results
|
||||||
|
if(timeout != 0){
|
||||||
|
os_timer = new os_Timer(setTimeout("os_delayedFetch()",timeout),r,query);
|
||||||
|
} else{
|
||||||
|
os_timer = new os_Timer(null,r,query);
|
||||||
|
os_delayedFetch(); // do it now!
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
/** Change the highlighted row (i.e. suggestion), from position cur to next */
|
||||||
|
function os_changeHighlight(r, cur, next, updateSearchBox){
|
||||||
|
if (next >= r.resultCount)
|
||||||
|
next = r.resultCount-1;
|
||||||
|
if (next < -1)
|
||||||
|
next = -1;
|
||||||
|
r.selected = next;
|
||||||
|
if (cur == next)
|
||||||
|
return; // nothing to do.
|
||||||
|
|
||||||
|
if(cur >= 0){
|
||||||
|
var curRow = document.getElementById(r.resultTable + cur);
|
||||||
|
if(curRow != null)
|
||||||
|
curRow.className = "os-suggest-result";
|
||||||
|
}
|
||||||
|
var newText;
|
||||||
|
if(next >= 0){
|
||||||
|
var nextRow = document.getElementById(r.resultTable + next);
|
||||||
|
if(nextRow != null)
|
||||||
|
nextRow.className = os_HighlightClass();
|
||||||
|
newText = r.results[next];
|
||||||
|
} else
|
||||||
|
newText = r.original;
|
||||||
|
|
||||||
|
// adjust the scrollbar if any
|
||||||
|
if(r.containerCount < r.resultCount){
|
||||||
|
var c = document.getElementById(r.container);
|
||||||
|
var vStart = c.scrollTop / r.containerRow;
|
||||||
|
var vEnd = vStart + r.containerCount;
|
||||||
|
if(next < vStart)
|
||||||
|
c.scrollTop = next * r.containerRow;
|
||||||
|
else if(next >= vEnd)
|
||||||
|
c.scrollTop = (next - r.containerCount + 1) * r.containerRow;
|
||||||
|
}
|
||||||
|
|
||||||
|
// update the contents of the search box
|
||||||
|
if(updateSearchBox){
|
||||||
|
os_updateSearchQuery(r,newText);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function os_HighlightClass() {
|
||||||
|
var match = navigator.userAgent.match(/AppleWebKit\/(\d+)/);
|
||||||
|
if (match) {
|
||||||
|
var webKitVersion = parseInt(match[1]);
|
||||||
|
if (webKitVersion < 523) {
|
||||||
|
// CSS system highlight colors broken on old Safari
|
||||||
|
// https://bugs.webkit.org/show_bug.cgi?id=6129
|
||||||
|
// Safari 3.0.4, 3.1 known ok
|
||||||
|
return "os-suggest-result-hl-webkit";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return "os-suggest-result-hl";
|
||||||
|
}
|
||||||
|
|
||||||
|
function os_updateSearchQuery(r,newText){
|
||||||
|
document.getElementById(r.searchbox).value = newText;
|
||||||
|
r.query = newText;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Find event target */
|
||||||
|
function os_getTarget(e){
|
||||||
|
if (!e) e = window.event;
|
||||||
|
if (e.target) return e.target;
|
||||||
|
else if (e.srcElement) return e.srcElement;
|
||||||
|
else return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/********************
|
||||||
|
* Keyboard events
|
||||||
|
********************/
|
||||||
|
|
||||||
|
/** Event handler that will fetch results on keyup */
|
||||||
|
function os_eventKeyup(e){
|
||||||
|
var targ = os_getTarget(e);
|
||||||
|
var r = os_map[targ.id];
|
||||||
|
if(r == null)
|
||||||
|
return; // not our event
|
||||||
|
|
||||||
|
// some browsers won't generate keypressed for arrow keys, catch it
|
||||||
|
if(os_keypressed_count == 0){
|
||||||
|
os_processKey(r,os_cur_keypressed,targ);
|
||||||
|
}
|
||||||
|
var query = targ.value;
|
||||||
|
os_fetchResults(r,query,os_search_timeout);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** catch arrows up/down and escape to hide the suggestions */
|
||||||
|
function os_processKey(r,keypressed,targ){
|
||||||
|
if (keypressed == 40){ // Arrow Down
|
||||||
|
if (r.visible) {
|
||||||
|
os_changeHighlight(r, r.selected, r.selected+1, true);
|
||||||
|
} else if(os_timer == null){
|
||||||
|
// user wants to get suggestions now
|
||||||
|
r.query = "";
|
||||||
|
os_fetchResults(r,targ.value,0);
|
||||||
|
}
|
||||||
|
} else if (keypressed == 38){ // Arrow Up
|
||||||
|
if (r.visible){
|
||||||
|
os_changeHighlight(r, r.selected, r.selected-1, true);
|
||||||
|
}
|
||||||
|
} else if(keypressed == 27){ // Escape
|
||||||
|
document.getElementById(r.searchbox).value = r.original;
|
||||||
|
r.query = r.original;
|
||||||
|
os_hideResults(r);
|
||||||
|
} else if(r.query != document.getElementById(r.searchbox).value){
|
||||||
|
// os_hideResults(r); // don't show old suggestions
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** When keys is held down use a timer to output regular events */
|
||||||
|
function os_eventKeypress(e){
|
||||||
|
var targ = os_getTarget(e);
|
||||||
|
var r = os_map[targ.id];
|
||||||
|
if(r == null)
|
||||||
|
return; // not our event
|
||||||
|
|
||||||
|
var keypressed = os_cur_keypressed;
|
||||||
|
|
||||||
|
os_keypressed_count++;
|
||||||
|
os_processKey(r,keypressed,targ);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Catch the key code (Firefox bug) */
|
||||||
|
function os_eventKeydown(e){
|
||||||
|
if (!e) e = window.event;
|
||||||
|
var targ = os_getTarget(e);
|
||||||
|
var r = os_map[targ.id];
|
||||||
|
if(r == null)
|
||||||
|
return; // not our event
|
||||||
|
|
||||||
|
os_mouse_moved = false;
|
||||||
|
|
||||||
|
os_cur_keypressed = (e.keyCode == undefined) ? e.which : e.keyCode;
|
||||||
|
os_keypressed_count = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Event: loss of focus of input box */
|
||||||
|
function os_eventBlur(e){
|
||||||
|
var targ = os_getTarget(e);
|
||||||
|
var r = os_map[targ.id];
|
||||||
|
if(r == null)
|
||||||
|
return; // not our event
|
||||||
|
if(!os_mouse_pressed){
|
||||||
|
os_hideResults(r);
|
||||||
|
// force canvas to stay hidden
|
||||||
|
r.stayHidden = true
|
||||||
|
// cancel any pending fetches
|
||||||
|
if(os_timer != null && os_timer.id != null)
|
||||||
|
clearTimeout(os_timer.id);
|
||||||
|
os_timer = null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Event: focus (catch only when stopped) */
|
||||||
|
function os_eventFocus(e){
|
||||||
|
var targ = os_getTarget(e);
|
||||||
|
var r = os_map[targ.id];
|
||||||
|
if(r == null)
|
||||||
|
return; // not our event
|
||||||
|
r.stayHidden = false
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/********************
|
||||||
|
* Mouse events
|
||||||
|
********************/
|
||||||
|
|
||||||
|
/** Mouse over the container */
|
||||||
|
function os_eventMouseover(srcId, e){
|
||||||
|
var targ = os_getTarget(e);
|
||||||
|
var r = os_map[srcId];
|
||||||
|
if(r == null || !os_mouse_moved)
|
||||||
|
return; // not our event
|
||||||
|
var num = os_getNumberSuffix(targ.id);
|
||||||
|
if(num >= 0)
|
||||||
|
os_changeHighlight(r,r.selected,num,false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Get row where the event occured (from its id) */
|
||||||
|
function os_getNumberSuffix(id){
|
||||||
|
var num = id.substring(id.length-2);
|
||||||
|
if( ! (num.charAt(0) >= '0' && num.charAt(0) <= '9') )
|
||||||
|
num = num.substring(1);
|
||||||
|
if(os_isNumber(num))
|
||||||
|
return parseInt(num);
|
||||||
|
else
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Save mouse move as last action */
|
||||||
|
function os_eventMousemove(srcId, e){
|
||||||
|
os_mouse_moved = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Mouse button held down, register possible click */
|
||||||
|
function os_eventMousedown(srcId, e){
|
||||||
|
var targ = os_getTarget(e);
|
||||||
|
var r = os_map[srcId];
|
||||||
|
if(r == null)
|
||||||
|
return; // not our event
|
||||||
|
var num = os_getNumberSuffix(targ.id);
|
||||||
|
|
||||||
|
os_mouse_pressed = true;
|
||||||
|
if(num >= 0){
|
||||||
|
os_mouse_num = num;
|
||||||
|
// os_updateSearchQuery(r,r.results[num]);
|
||||||
|
}
|
||||||
|
// keep the focus on the search field
|
||||||
|
document.getElementById(r.searchbox).focus();
|
||||||
|
|
||||||
|
return false; // prevents selection
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Mouse button released, check for click on some row */
|
||||||
|
function os_eventMouseup(srcId, e){
|
||||||
|
var targ = os_getTarget(e);
|
||||||
|
var r = os_map[srcId];
|
||||||
|
if(r == null)
|
||||||
|
return; // not our event
|
||||||
|
var num = os_getNumberSuffix(targ.id);
|
||||||
|
|
||||||
|
if(num >= 0 && os_mouse_num == num){
|
||||||
|
os_updateSearchQuery(r,r.results[num]);
|
||||||
|
os_hideResults(r);
|
||||||
|
document.getElementById(r.searchform).submit();
|
||||||
|
}
|
||||||
|
os_mouse_pressed = false;
|
||||||
|
// keep the focus on the search field
|
||||||
|
document.getElementById(r.searchbox).focus();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Check if x is a valid integer */
|
||||||
|
function os_isNumber(x){
|
||||||
|
if(x == "" || isNaN(x))
|
||||||
|
return false;
|
||||||
|
for(var i=0;i<x.length;i++){
|
||||||
|
var c = x.charAt(i);
|
||||||
|
if( ! (c >= '0' && c <= '9') )
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** When the form is submitted hide everything, cancel updates... */
|
||||||
|
function os_eventOnsubmit(e){
|
||||||
|
var targ = os_getTarget(e);
|
||||||
|
|
||||||
|
os_is_stopped = true;
|
||||||
|
// kill timed requests
|
||||||
|
if(os_timer != null && os_timer.id != null){
|
||||||
|
clearTimeout(os_timer.id);
|
||||||
|
os_timer = null;
|
||||||
|
}
|
||||||
|
// Hide all suggestions
|
||||||
|
for(i=0;i<os_autoload_inputs.length;i++){
|
||||||
|
var r = os_map[os_autoload_inputs[i]];
|
||||||
|
if(r != null){
|
||||||
|
var b = document.getElementById(r.searchform);
|
||||||
|
if(b != null && b == targ){
|
||||||
|
// set query value so the handler won't try to fetch additional results
|
||||||
|
r.query = document.getElementById(r.searchbox).value;
|
||||||
|
}
|
||||||
|
os_hideResults(r);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
function os_hookEvent(element, hookName, hookFunct) {
|
||||||
|
if (element.addEventListener) {
|
||||||
|
element.addEventListener(hookName, hookFunct, false);
|
||||||
|
} else if (window.attachEvent) {
|
||||||
|
element.attachEvent("on" + hookName, hookFunct);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Init Result objects and event handlers */
|
||||||
|
function os_initHandlers(name, formname, element){
|
||||||
|
var r = new os_Results(name, formname);
|
||||||
|
// event handler
|
||||||
|
os_hookEvent(element, "keyup", function(event) { os_eventKeyup(event); });
|
||||||
|
os_hookEvent(element, "keydown", function(event) { os_eventKeydown(event); });
|
||||||
|
os_hookEvent(element, "keypress", function(event) { os_eventKeypress(event); });
|
||||||
|
os_hookEvent(element, "blur", function(event) { os_eventBlur(event); });
|
||||||
|
os_hookEvent(element, "focus", function(event) { os_eventFocus(event); });
|
||||||
|
element.setAttribute("autocomplete","off");
|
||||||
|
// stopping handler
|
||||||
|
os_hookEvent(document.getElementById(formname), "submit", function(event){ return os_eventOnsubmit(event); });
|
||||||
|
os_map[name] = r;
|
||||||
|
// toggle link
|
||||||
|
if(document.getElementById(r.toggle) == null){
|
||||||
|
// TODO: disable this while we figure out a way for this to work in all browsers
|
||||||
|
/* if(name=='searchInput'){
|
||||||
|
// special case: place above the main search box
|
||||||
|
var t = os_createToggle(r,"os-suggest-toggle");
|
||||||
|
var searchBody = document.getElementById('searchBody');
|
||||||
|
var first = searchBody.parentNode.firstChild.nextSibling.appendChild(t);
|
||||||
|
} else{
|
||||||
|
// default: place below search box to the right
|
||||||
|
var t = os_createToggle(r,"os-suggest-toggle-def");
|
||||||
|
var top = element.offsetTop + element.offsetHeight;
|
||||||
|
var left = element.offsetLeft + element.offsetWidth;
|
||||||
|
t.style.position = "absolute";
|
||||||
|
t.style.top = top + "px";
|
||||||
|
t.style.left = left + "px";
|
||||||
|
element.parentNode.appendChild(t);
|
||||||
|
// only now width gets calculated, shift right
|
||||||
|
left -= t.offsetWidth;
|
||||||
|
t.style.left = left + "px";
|
||||||
|
t.style.visibility = "visible";
|
||||||
|
} */
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Return the span element that contains the toggle link */
|
||||||
|
function os_createToggle(r,className){
|
||||||
|
var t = document.createElement("span");
|
||||||
|
t.className = className;
|
||||||
|
t.setAttribute("id", r.toggle);
|
||||||
|
var link = document.createElement("a");
|
||||||
|
link.setAttribute("href","javascript:void(0);");
|
||||||
|
link.onclick = function(){ os_toggle(r.searchbox,r.searchform) };
|
||||||
|
var msg = document.createTextNode(wgMWSuggestMessages[0]);
|
||||||
|
link.appendChild(msg);
|
||||||
|
t.appendChild(link);
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Call when user clicks on some of the toggle links */
|
||||||
|
function os_toggle(inputId,formName){
|
||||||
|
r = os_map[inputId];
|
||||||
|
var msg = '';
|
||||||
|
if(r == null){
|
||||||
|
os_enableSuggestionsOn(inputId,formName);
|
||||||
|
r = os_map[inputId];
|
||||||
|
msg = wgMWSuggestMessages[0];
|
||||||
|
} else{
|
||||||
|
os_disableSuggestionsOn(inputId,formName);
|
||||||
|
msg = wgMWSuggestMessages[1];
|
||||||
|
}
|
||||||
|
// change message
|
||||||
|
var link = document.getElementById(r.toggle).firstChild;
|
||||||
|
link.replaceChild(document.createTextNode(msg),link.firstChild);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Call this to enable suggestions on input (id=inputId), on a form (name=formName) */
|
||||||
|
function os_enableSuggestionsOn(inputId, formName){
|
||||||
|
os_initHandlers( inputId, formName, document.getElementById(inputId) );
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Call this to disable suggestios on input box (id=inputId) */
|
||||||
|
function os_disableSuggestionsOn(inputId){
|
||||||
|
r = os_map[inputId];
|
||||||
|
if(r != null){
|
||||||
|
// cancel/hide results
|
||||||
|
os_timer = null;
|
||||||
|
os_hideResults(r);
|
||||||
|
// turn autocomplete on !
|
||||||
|
document.getElementById(inputId).setAttribute("autocomplete","on");
|
||||||
|
// remove descriptor
|
||||||
|
os_map[inputId] = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remove the element from the os_autoload_* arrays
|
||||||
|
var index = os_autoload_inputs.indexOf(inputId);
|
||||||
|
if ( index >= 0 )
|
||||||
|
os_autoload_inputs[index] = os_autoload_forms[index] = '';
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Initialization, call upon page onload */
|
||||||
|
function os_MWSuggestInit() {
|
||||||
|
for(i=0;i<os_autoload_inputs.length;i++){
|
||||||
|
var id = os_autoload_inputs[i];
|
||||||
|
var form = os_autoload_forms[i];
|
||||||
|
element = document.getElementById( id );
|
||||||
|
if(element != null)
|
||||||
|
os_initHandlers(id,form,element);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
hookEvent("load", os_MWSuggestInit);
|
||||||
|
After Width: | Height: | Size: 1.9 KiB |
@ -0,0 +1,808 @@
|
|||||||
|
/**
|
||||||
|
* CSS in this file is used by *all* skins (that have any CSS at all). Be
|
||||||
|
* careful what you put in here, since what looks good in one skin may not in
|
||||||
|
* another, but don't ignore the poor non-Monobook users either.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Colored watchlist and recent changes numbers */
|
||||||
|
.mw-plusminus-pos { color: #006400; } /* dark green */
|
||||||
|
.mw-plusminus-neg { color: #8b0000; } /* dark red */
|
||||||
|
.mw-plusminus-null { color: #aaa; } /* gray */
|
||||||
|
|
||||||
|
/* Comment and username portions of RC entries */
|
||||||
|
span.comment {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.changedby {
|
||||||
|
font-size: 95%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Math */
|
||||||
|
.texvc { direction: ltr; unicode-bidi: embed; }
|
||||||
|
img.tex { vertical-align: middle; }
|
||||||
|
span.texhtml { font-family: serif; }
|
||||||
|
|
||||||
|
/* add a bit of margin space between the preview and the toolbar */
|
||||||
|
/* this replaces the ugly <p><br /></p> we used to insert into the page source */
|
||||||
|
#wikiPreview.ontop { margin-bottom: 1em; }
|
||||||
|
|
||||||
|
/* Stop floats from intruding into edit area in previews */
|
||||||
|
#editform, #toolbar, #wpTextbox1 { clear: both; }
|
||||||
|
|
||||||
|
div#mw-js-message {
|
||||||
|
margin: 1em 5%;
|
||||||
|
padding: 0.5em 2.5%;
|
||||||
|
border: solid 1px #ddd;
|
||||||
|
background-color: #fcfcfc;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Edit section links */
|
||||||
|
.editsection {
|
||||||
|
float: right;
|
||||||
|
margin-left: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* File histories
|
||||||
|
*/
|
||||||
|
table.filehistory th,
|
||||||
|
table.filehistory td {
|
||||||
|
vertical-align:top;
|
||||||
|
}
|
||||||
|
table.filehistory th {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
table.filehistory td.mw-imagepage-filesize,
|
||||||
|
table.filehistory th.mw-imagepage-filesize {
|
||||||
|
white-space:nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.filehistory td.filehistory-selected {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* rev_deleted stuff
|
||||||
|
*/
|
||||||
|
li span.deleted, span.history-deleted {
|
||||||
|
text-decoration: line-through;
|
||||||
|
color: #888;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Patrol stuff
|
||||||
|
*/
|
||||||
|
.not-patrolled {
|
||||||
|
background-color: #ffa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.unpatrolled {
|
||||||
|
font-weight: bold;
|
||||||
|
color: red;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.patrollink {
|
||||||
|
font-size: 75%;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Forms
|
||||||
|
*/
|
||||||
|
body.ltr td.mw-label { text-align: right; }
|
||||||
|
body.ltr td.mw-input { text-align: left; }
|
||||||
|
body.ltr td.mw-submit { text-align: left; }
|
||||||
|
body.rtl td.mw-label { text-align: left; }
|
||||||
|
body.rtl td.mw-input { text-align: right; }
|
||||||
|
body.rtl td.mw-submit { text-align: right; }
|
||||||
|
|
||||||
|
td.mw-label { vertical-align: top; }
|
||||||
|
.prefsection td.mw-label { width: 20%; }
|
||||||
|
.prefsection table { width: 100%; }
|
||||||
|
td.mw-submit { white-space: nowrap; }
|
||||||
|
|
||||||
|
table.mw-htmlform-nolabel td.mw-label { width: 0 !important; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Image captions
|
||||||
|
*/
|
||||||
|
body.rtl .thumbcaption { text-align:right; }
|
||||||
|
body.rtl .magnify { float:left; }
|
||||||
|
|
||||||
|
body.ltr .thumbcaption { text-align:left; }
|
||||||
|
body.ltr .magnify { float:right; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Hidden categories
|
||||||
|
*/
|
||||||
|
.mw-hidden-cats-hidden { display: none; }
|
||||||
|
.catlinks-allhidden { display: none; }
|
||||||
|
|
||||||
|
/* Convenience links to edit block, delete and protect reasons */
|
||||||
|
p.mw-ipb-conveniencelinks, p.mw-protect-editreasons,
|
||||||
|
p.mw-filedelete-editreasons, p.mw-delete-editreasons,
|
||||||
|
p.mw-revdel-editreasons {
|
||||||
|
font-size: 90%;
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Search results */
|
||||||
|
.searchresults {
|
||||||
|
}
|
||||||
|
|
||||||
|
.searchresults p {
|
||||||
|
margin-left: 0.4em;
|
||||||
|
margin-top: 1em;
|
||||||
|
margin-bottom: 1.2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.searchresult {
|
||||||
|
font-size: 95%;
|
||||||
|
width:38em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mw-search-results {
|
||||||
|
margin-left: 0.4em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mw-search-results li {
|
||||||
|
padding-bottom: 1em;
|
||||||
|
list-style:none;
|
||||||
|
list-style-image:none;
|
||||||
|
}
|
||||||
|
.mw-search-results li a {
|
||||||
|
font-size: 108%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mw-search-result-data {
|
||||||
|
color: green;
|
||||||
|
font-size: 97%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mw-search-formheader {
|
||||||
|
background-color: #f3f3f3;
|
||||||
|
margin-top: 1em;
|
||||||
|
border: 1px solid silver;
|
||||||
|
}
|
||||||
|
.mw-search-formheader div.search-types {
|
||||||
|
float:left;
|
||||||
|
padding-left: 0.25em;
|
||||||
|
}
|
||||||
|
.rtl .mw-search-formheader div.search-types {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
.mw-search-formheader div.search-types ul {
|
||||||
|
margin: 0 !important;
|
||||||
|
padding: 0 !important;
|
||||||
|
list-style: none !important;
|
||||||
|
}
|
||||||
|
.mw-search-formheader div.search-types ul li {
|
||||||
|
float: left;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
.mw-search-formheader div.search-types ul li a {
|
||||||
|
display: block;
|
||||||
|
padding: 0.5em;
|
||||||
|
}
|
||||||
|
.mw-search-formheader div.search-types ul li.current a {
|
||||||
|
color: #333333;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.mw-search-formheader div.search-types ul li.current a:hover {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
.mw-search-formheader div.results-info {
|
||||||
|
float: right;
|
||||||
|
padding: 0.5em;
|
||||||
|
padding-right: 0.75em;
|
||||||
|
}
|
||||||
|
.mw-search-formheader div.results-info ul {
|
||||||
|
margin: 0 !important;
|
||||||
|
padding: 0 !important;
|
||||||
|
list-style: none !important;
|
||||||
|
}
|
||||||
|
.mw-search-formheader div.results-info ul li {
|
||||||
|
float: right;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
fieldset#mw-searchoptions {
|
||||||
|
margin: 0;
|
||||||
|
padding-left: 0.75em !important;
|
||||||
|
padding-right: 0.75em !important;
|
||||||
|
padding-bottom: 0.5em !important;
|
||||||
|
padding-top: 0.5em !important;
|
||||||
|
border: none;
|
||||||
|
background-color: #f9f9f9;
|
||||||
|
border: 1px solid silver !important;
|
||||||
|
border-top-width: 0 !important;
|
||||||
|
}
|
||||||
|
fieldset#mw-searchoptions legend {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
fieldset#mw-searchoptions h4 {
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
.rtl fieldset#mw-searchoptions h4 {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
fieldset#mw-searchoptions div#mw-search-togglebox {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
.rtl fieldset#mw-searchoptions div#mw-search-togglebox {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
fieldset#mw-searchoptions div#mw-search-togglebox label {
|
||||||
|
margin-right: 0.25em;
|
||||||
|
}
|
||||||
|
fieldset#mw-searchoptions div#mw-search-togglebox input {
|
||||||
|
margin-left: 0.25em;
|
||||||
|
}
|
||||||
|
fieldset#mw-searchoptions table {
|
||||||
|
float: left;
|
||||||
|
margin-right: 3em;
|
||||||
|
}
|
||||||
|
fieldset#mw-searchoptions table td {
|
||||||
|
padding-right: 1em;
|
||||||
|
}
|
||||||
|
.rtl fieldset#mw-searchoptions table td {
|
||||||
|
padding-left: 1em;
|
||||||
|
padding-right: 0;
|
||||||
|
}
|
||||||
|
body.rtl fieldset#mw-searchoptions table {
|
||||||
|
margin-right: 0;
|
||||||
|
margin-left: 3em;
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
fieldset#mw-searchoptions div.divider {
|
||||||
|
clear: both;
|
||||||
|
border-bottom: 1px solid #DDDDDD;
|
||||||
|
padding-top: 0.5em;
|
||||||
|
margin-bottom: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
td#mw-search-menu {
|
||||||
|
padding-left:6em;
|
||||||
|
font-size:85%;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#mw-search-interwiki {
|
||||||
|
float: right;
|
||||||
|
width: 18em;
|
||||||
|
border-style: solid;
|
||||||
|
border-color: #AAAAAA;
|
||||||
|
border-width: 1px;
|
||||||
|
margin-top: 2ex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl div#mw-search-interwiki {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#mw-search-interwiki li {
|
||||||
|
font-size: 95%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mw-search-interwiki-more {
|
||||||
|
float: right;
|
||||||
|
font-size: 90%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl .mw-search-interwiki-more {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#mw-search-interwiki-caption {
|
||||||
|
text-align: center;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 95%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mw-search-interwiki-project {
|
||||||
|
font-size: 97%;
|
||||||
|
text-align: left;
|
||||||
|
padding-left: 0.2em;
|
||||||
|
padding-right: 0.15em;
|
||||||
|
padding-bottom: 0.2em;
|
||||||
|
padding-top: 0.15em;
|
||||||
|
background-color:#ececec;
|
||||||
|
border-top:1px solid #BBBBBB;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rtl .mw-search-interwiki-project {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.searchalttitle {
|
||||||
|
font-size: 95%;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.searchdidyoumean {
|
||||||
|
font-size: 127%;
|
||||||
|
margin-top: 0.8em;
|
||||||
|
/* Note that this color won't affect the link, as desired. */
|
||||||
|
color: #c00;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.searchdidyoumean em {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.searchmatch {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
table#mw-search-top-table {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Advanced PowerSearch box
|
||||||
|
*/
|
||||||
|
|
||||||
|
td#mw-search-togglebox {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
table#mw-search-powertable {
|
||||||
|
width:100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
form#powersearch {
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* UserRights stuff
|
||||||
|
*/
|
||||||
|
.mw-userrights-disabled {
|
||||||
|
color: #888;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.mw-userrights-groups * td,table.mw-userrights-groups * th {
|
||||||
|
padding-right: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* OpenSearch ajax suggestions
|
||||||
|
*/
|
||||||
|
.os-suggest {
|
||||||
|
overflow: auto;
|
||||||
|
overflow-x: hidden;
|
||||||
|
position: absolute;
|
||||||
|
top: 0px;
|
||||||
|
left: 0px;
|
||||||
|
width: 0px;
|
||||||
|
background-color: white;
|
||||||
|
background-color: Window;
|
||||||
|
border-style: solid;
|
||||||
|
border-color: #AAAAAA;
|
||||||
|
border-width: 1px;
|
||||||
|
z-index:99;
|
||||||
|
font-size:95%;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.os-suggest-results {
|
||||||
|
font-size: 95%;
|
||||||
|
cursor: pointer;
|
||||||
|
border: 0;
|
||||||
|
border-collapse: collapse;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.os-suggest-result, .os-suggest-result-hl {
|
||||||
|
white-space: nowrap;
|
||||||
|
background-color: white;
|
||||||
|
background-color: Window;
|
||||||
|
color: black;
|
||||||
|
color: WindowText;
|
||||||
|
padding: 2px;
|
||||||
|
}
|
||||||
|
.os-suggest-result-hl,
|
||||||
|
.os-suggest-result-hl-webkit {
|
||||||
|
background-color: #4C59A6;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
.os-suggest-result-hl {
|
||||||
|
/* System colors are misimplemented in Safari 3.0 and earlier,
|
||||||
|
making highlighted text illegible... */
|
||||||
|
background-color: Highlight;
|
||||||
|
color: HighlightText;
|
||||||
|
}
|
||||||
|
|
||||||
|
.os-suggest-toggle {
|
||||||
|
position: relative;
|
||||||
|
left: 1ex;
|
||||||
|
font-size: 65%;
|
||||||
|
}
|
||||||
|
.os-suggest-toggle-def {
|
||||||
|
position: absolute;
|
||||||
|
top: 0px;
|
||||||
|
left: 0px;
|
||||||
|
font-size: 65%;
|
||||||
|
visibility: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Page history styling */
|
||||||
|
/* the auto-generated edit comments */
|
||||||
|
.autocomment { color: gray; }
|
||||||
|
#pagehistory .history-user {
|
||||||
|
margin-left: 0.4em;
|
||||||
|
margin-right: 0.2em;
|
||||||
|
}
|
||||||
|
#pagehistory span.minor { font-weight: bold; }
|
||||||
|
#pagehistory li { border: 1px solid white; }
|
||||||
|
#pagehistory li.selected {
|
||||||
|
background-color: #f9f9f9;
|
||||||
|
border: 1px dashed #aaa;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Generic minor/bot/newpage styling */
|
||||||
|
.newpage, .minor, .bot {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Special:Contributions styling */
|
||||||
|
.mw-uctop {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Special:ListGroupRights styling */
|
||||||
|
table.mw-listgrouprights-table tr {
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
.listgrouprights-revoked { text-decoration: line-through; }
|
||||||
|
|
||||||
|
/* Special:Statistics styling */
|
||||||
|
td.mw-statistics-numbers {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Special:SpecialPages styling */
|
||||||
|
h4.mw-specialpagesgroup {
|
||||||
|
background-color: #dcdcdc;
|
||||||
|
padding: 2px;
|
||||||
|
margin: .3em 0em 0em 0em;
|
||||||
|
}
|
||||||
|
.mw-specialpagerestricted {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
#shared-image-dup, #shared-image-conflict {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Special:EmailUser styling */
|
||||||
|
table.mw-emailuser-table {
|
||||||
|
width: 98%;
|
||||||
|
}
|
||||||
|
td#mw-emailuser-sender, td#mw-emailuser-recipient {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Special:Allpages styling */
|
||||||
|
table.allpageslist {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
table.mw-allpages-table-form, table.mw-allpages-table-chunk {
|
||||||
|
background-color: transparent;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
td.mw-allpages-alphaindexline {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
td.mw-allpages-nav, p.mw-allpages-nav {
|
||||||
|
text-align: right;
|
||||||
|
font-size: smaller;
|
||||||
|
margin-bottom: 1em;
|
||||||
|
}
|
||||||
|
table.mw-allpages-table-form tr {
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Special:Prefixindex styling */
|
||||||
|
table#mw-prefixindex-list-table,
|
||||||
|
table#mw-prefixindex-nav-table {
|
||||||
|
width: 98%;
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
td#mw-prefixindex-nav-form {
|
||||||
|
font-size: smaller;
|
||||||
|
margin-bottom: 1em;
|
||||||
|
text-align: right;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Recreating deleted page warning
|
||||||
|
* Reupload file warning
|
||||||
|
* Page protection warning
|
||||||
|
* incl. log entries for these warnings
|
||||||
|
*/
|
||||||
|
div.mw-warning-with-logexcerpt {
|
||||||
|
padding: 3px;
|
||||||
|
margin-bottom: 3px;
|
||||||
|
border: 2px solid #2F6FAB;
|
||||||
|
}
|
||||||
|
div.mw-warning-with-logexcerpt ul li {
|
||||||
|
font-size: 90%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (show/hide) revision deletion links */
|
||||||
|
span.mw-revdelundel-link,
|
||||||
|
strong.mw-revdelundel-link {
|
||||||
|
font-size: 90%;
|
||||||
|
}
|
||||||
|
span.mw-revdelundel-hidden,
|
||||||
|
input.mw-revdelundel-hidden {
|
||||||
|
visibility: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* feed links */
|
||||||
|
a.feedlink {
|
||||||
|
background: url("images/feed-icon.png") center left no-repeat;
|
||||||
|
padding-left: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Plainlinks - this can be used to switch
|
||||||
|
* off special external link styling */
|
||||||
|
.plainlinks a {
|
||||||
|
background: none !important;
|
||||||
|
padding: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* wikitable class for skinning normal tables */
|
||||||
|
table.wikitable {
|
||||||
|
margin: 1em 1em 1em 0;
|
||||||
|
background: #f9f9f9;
|
||||||
|
border: 1px #aaa solid;
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
|
.wikitable th, .wikitable td {
|
||||||
|
border: 1px #aaa solid;
|
||||||
|
padding: 0.2em;
|
||||||
|
}
|
||||||
|
.wikitable th {
|
||||||
|
background: #f2f2f2;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.wikitable caption {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* hide initially collapsed collapsable tables */
|
||||||
|
table.collapsed tr.collapsable {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* success and error messages */
|
||||||
|
.success {
|
||||||
|
color: green;
|
||||||
|
font-size: larger;
|
||||||
|
}
|
||||||
|
.error {
|
||||||
|
color: red;
|
||||||
|
font-size: larger;
|
||||||
|
}
|
||||||
|
.errorbox, .successbox {
|
||||||
|
font-size: larger;
|
||||||
|
border: 2px solid;
|
||||||
|
padding: .5em 1em;
|
||||||
|
float: left;
|
||||||
|
margin-bottom: 2em;
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
.errorbox {
|
||||||
|
border-color: red;
|
||||||
|
background-color: #fff2f2;
|
||||||
|
}
|
||||||
|
.successbox {
|
||||||
|
border-color: green;
|
||||||
|
background-color: #dfd;
|
||||||
|
}
|
||||||
|
.errorbox h2, .successbox h2 {
|
||||||
|
font-size: 1em;
|
||||||
|
font-weight: bold;
|
||||||
|
display: inline;
|
||||||
|
margin: 0 .5em 0 0;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.visualClear {
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mw_trackbacks {
|
||||||
|
border: solid 1px #bbbbff;
|
||||||
|
background-color: #eeeeff;
|
||||||
|
padding: 0.2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Table pager (e.g. Special:Imagelist)
|
||||||
|
- remove underlines from the navigation link
|
||||||
|
- collapse borders
|
||||||
|
- set the borders to outsets (similar to Special:Allmessages)
|
||||||
|
- remove line wrapping for all td and th, set background color
|
||||||
|
- restore line wrapping for the last two table cells (description and size)
|
||||||
|
*/
|
||||||
|
.TablePager { min-width: 80%; }
|
||||||
|
.TablePager_nav a { text-decoration: none; }
|
||||||
|
.TablePager { border-collapse: collapse; }
|
||||||
|
.TablePager, .TablePager td, .TablePager th {
|
||||||
|
border: 1px solid #aaaaaa;
|
||||||
|
padding: 0 0.15em 0 0.15em;
|
||||||
|
}
|
||||||
|
.TablePager th { background-color: #eeeeff }
|
||||||
|
.TablePager td { background-color: #ffffff }
|
||||||
|
.TablePager tr:hover td { background-color: #eeeeff }
|
||||||
|
|
||||||
|
.imagelist td, .imagelist th { white-space: nowrap }
|
||||||
|
.imagelist .TablePager_col_links { background-color: #eeeeff }
|
||||||
|
.imagelist .TablePager_col_img_description { white-space: normal }
|
||||||
|
.imagelist th.TablePager_sort { background-color: #ccccff }
|
||||||
|
|
||||||
|
/* Allmessages table */
|
||||||
|
#mw-allmessagestable .allmessages-customised td.am_default {
|
||||||
|
background-color: #fcffc4;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mw-allmessagestable tr.allmessages-customised:hover td.am_default {
|
||||||
|
background-color: #faff90;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mw-allmessagestable td.am_actual {
|
||||||
|
background-color: #e2ffe2;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mw-allmessagestable tr.allmessages-customised:hover + tr.allmessages-customised td.am_actual {
|
||||||
|
background-color: #b1ffb1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* filetoc */
|
||||||
|
ul#filetoc {
|
||||||
|
text-align: center;
|
||||||
|
border: 1px solid #aaaaaa;
|
||||||
|
background-color: #f9f9f9;
|
||||||
|
padding: 5px;
|
||||||
|
font-size: 95%;
|
||||||
|
margin-bottom: 0.5em;
|
||||||
|
margin-left: 0;
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#filetoc li {
|
||||||
|
display: inline;
|
||||||
|
list-style-type: none;
|
||||||
|
padding-right: 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Classes for EXIF data display */
|
||||||
|
table.mw_metadata {
|
||||||
|
font-size: 0.8em;
|
||||||
|
margin-left: 0.5em;
|
||||||
|
margin-bottom: 0.5em;
|
||||||
|
width: 300px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.mw_metadata caption {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.mw_metadata th {
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.mw_metadata td {
|
||||||
|
padding: 0.1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.mw_metadata {
|
||||||
|
border: none;
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.mw_metadata td, table.mw_metadata th {
|
||||||
|
text-align: center;
|
||||||
|
border: 1px solid #aaaaaa;
|
||||||
|
padding-left: 0.1em;
|
||||||
|
padding-right: 0.1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.mw_metadata th {
|
||||||
|
background-color: #f9f9f9;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.mw_metadata td {
|
||||||
|
background-color: #fcfcfc;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Galleries */
|
||||||
|
table.gallery {
|
||||||
|
border: 1px solid #ccc;
|
||||||
|
margin: 2px;
|
||||||
|
padding: 2px;
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.gallery tr {
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.gallery td {
|
||||||
|
vertical-align: top;
|
||||||
|
background-color: #f9f9f9;
|
||||||
|
border: solid 2px white;
|
||||||
|
}
|
||||||
|
table.gallery caption {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.gallerybox {
|
||||||
|
margin: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.gallerybox div.thumb {
|
||||||
|
text-align: center;
|
||||||
|
border: 1px solid #ccc;
|
||||||
|
margin: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.gallerytext {
|
||||||
|
overflow: hidden;
|
||||||
|
font-size: 94%;
|
||||||
|
padding: 2px 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.mw-enhanced-rc {
|
||||||
|
background: none;
|
||||||
|
border:0;
|
||||||
|
border-spacing:0;
|
||||||
|
}
|
||||||
|
td.mw-enhanced-rc {
|
||||||
|
white-space:nowrap;
|
||||||
|
padding:0;
|
||||||
|
vertical-align:top;
|
||||||
|
font-family:monospace
|
||||||
|
}
|
||||||
|
|
||||||
|
#mw-addcategory-prompt {
|
||||||
|
display: inline;
|
||||||
|
margin-left: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mw-addcategory-prompt input {
|
||||||
|
margin-left: 0.5em;
|
||||||
|
margin-right: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mw-remove-category {
|
||||||
|
padding: 8px;
|
||||||
|
background-image: url(images/remove.png);
|
||||||
|
background-position: center center;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mw-ajax-addcategory {
|
||||||
|
padding-left: 20px;
|
||||||
|
background-image: url(images/add.png);
|
||||||
|
background-position: left center;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mw-ajax-loader {
|
||||||
|
background-image: url(images/ajax-loader.gif);
|
||||||
|
background-position: center center;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
padding: 16px;
|
||||||
|
position: relative;
|
||||||
|
top: -16px;
|
||||||
|
}
|
||||||
@ -0,0 +1 @@
|
|||||||
|
<html> <head><title>404 Not Found</title></head> <body> <h1>404 Not Found</h1> <p> <span style='font-family: monospace;'>/images/wikimedia-button.png</span> was not found. </p> </body> </html>
|
||||||
@ -5,6 +5,7 @@
|
|||||||
<body>
|
<body>
|
||||||
<script>
|
<script>
|
||||||
var test = "";
|
var test = "";
|
||||||
|
var webServer = "localhost";
|
||||||
function parseParams() {
|
function parseParams() {
|
||||||
var s = document.location.search.substring(1);
|
var s = document.location.search.substring(1);
|
||||||
var params = s.split('&');
|
var params = s.split('&');
|
||||||
@ -14,6 +15,9 @@
|
|||||||
case 'test':
|
case 'test':
|
||||||
test = fields[1];
|
test = fields[1];
|
||||||
break;
|
break;
|
||||||
|
case 'webServer':
|
||||||
|
webServer = fields[1].replace("%2f", "/").replace("%3c", ":");
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -21,6 +25,8 @@
|
|||||||
if (test == "Zoom" || test == "PanDown") {
|
if (test == "Zoom" || test == "PanDown") {
|
||||||
var element = document.createElement("myExtensionDataElement");
|
var element = document.createElement("myExtensionDataElement");
|
||||||
element.setAttribute("attribute1", test);
|
element.setAttribute("attribute1", test);
|
||||||
|
|
||||||
|
element.setAttribute("webServer", webServer);
|
||||||
document.documentElement.appendChild(element);
|
document.documentElement.appendChild(element);
|
||||||
|
|
||||||
var evt = document.createEvent("Events");
|
var evt = document.createEvent("Events");
|
||||||
@ -201,7 +201,7 @@ tests :
|
|||||||
shutdown : False
|
shutdown : False
|
||||||
profile_path: base_profile
|
profile_path: base_profile
|
||||||
- name: tpan
|
- name: tpan
|
||||||
url: startup_test/fennecmark.html?test=PanDown
|
url: startup_test/fennecmark/fennecmark.html?test=PanDown
|
||||||
resolution: 1
|
resolution: 1
|
||||||
cycles : 10
|
cycles : 10
|
||||||
timeout : 300
|
timeout : 300
|
||||||
@ -211,7 +211,7 @@ tests :
|
|||||||
shutdown : False
|
shutdown : False
|
||||||
profile_path: base_profile
|
profile_path: base_profile
|
||||||
- name: tzoom
|
- name: tzoom
|
||||||
url: startup_test/fennecmark.html?test=Zoom
|
url: startup_test/fennecmark/fennecmark.html?test=Zoom
|
||||||
resolution: 1
|
resolution: 1
|
||||||
cycles : 10
|
cycles : 10
|
||||||
timeout : 300
|
timeout : 300
|
||||||
|
|||||||