Line 1:
Line 1:
+
/* <source lang="javascript"> */
+
/**** LiveClock ****/
+
function liveClock()
+
{
+
+
liveClock.node = addPortletLink( 'p-personal', wgServer + wgScriptPath + '/index.php?title=' + encodeURIComponent(wgPageName) + '&action=purge', '', 'utcdate' );
+
liveClock.node.style.fontSize = 'larger';
+
liveClock.node.style.fontWeight = 'bolder';
+
+
showTime();
+
}
+
addOnloadHook(liveClock)
+
+
function showTime()
+
{
+
+
var dateNode = liveClock.node;
+
if( !dateNode ) {
+
return;
+
}
+
var now = new Date();
+
var hh = now.getUTCHours();
+
var mm = now.getUTCMinutes();
+
var ss = now.getUTCSeconds();
+
var time = ( hh < 10 ? '0' + hh : hh ) + ':' + ( mm < 10 ? '0' + mm : mm ) + ':' + ( ss < 10 ? '0' + ss : ss );
+
dateNode.firstChild.replaceChild( document.createTextNode( time ), dateNode.firstChild.firstChild );
+
+
window.setTimeout(showTime, 1000);
+
}
+
/**** End LiveClock ****/
+
+
+
/**** QueryString ****
+
* Maps the querystring to an object
+
*
+
* Functions:
+
*
+
* QueryString.exists(key)
+
* returns true if the particular key is set
+
* QueryString.get(key)
+
* returns the value associated to the key
+
* QueryString.equals(key, value)
+
* returns true if the value associated with given key equals given value
+
* QueryString.toString()
+
* returns the query string as a string
+
* QueryString.create( hash )
+
* creates an querystring and encodes strings via encodeURIComponent and joins arrays with |
+
*
+
* In static context, the value of location.search.substring(1), else the value given to the constructor is going to be used. The mapped hash is saved in the object.
+
*
+
* Example:
+
*
+
* var value = QueryString.get('key');
+
* var obj = new QueryString('foo=bar&baz=quux');
+
* value = obj.get('foo');
+
*/
+
function QueryString(qString) {
+
this.string = qString;
+
this.params = {};
+
+
if( qString.length == 0 ) {
+
return;
+
}
+
+
qString.replace(/\+/, ' ');
+
var args = qString.split('&');
+
+
for( var i in args ) {
+
if( typeof( args[i] ) != 'string' ) {
+
continue;
+
}
+
var pair = args[i].split( '=' );
+
var key = decodeURIComponent( pair[0] ), value = key;
+
+
if( pair.length == 2 ) {
+
value = decodeURIComponent( pair[1] );
+
}
+
+
this.params[key] = value;
+
}
+
}
+
+
QueryString.static = null;
+
+
QueryString.staticInit = function() {
+
if( QueryString.static == null ) {
+
QueryString.static = new QueryString(location.search.substring(1));
+
}
+
}
+
+
QueryString.get = function(key) {
+
QueryString.staticInit();
+
return QueryString.static.get(key);
+
};
+
+
QueryString.prototype.get = function(key) {
+
return this.params[key] ? this.params[key] : null;
+
};
+
+
QueryString.exists = function(key) {
+
QueryString.staticInit();
+
return QueryString.static.exists(key);
+
}
+
+
QueryString.prototype.exists = function(key) {
+
return this.params[key] ? true : false;
+
}
+
+
QueryString.equals = function(key, value) {
+
QueryString.staticInit();
+
return QueryString.static.equals(key, value);
+
}
+
+
QueryString.prototype.equals = function(key, value) {
+
return this.params[key] == value ? true : false;
+
}
+
+
QueryString.toString = function() {
+
QueryString.staticInit();
+
return QueryString.static.toString();
+
}
+
+
QueryString.prototype.toString = function() {
+
return this.string ? this.string : null;
+
}
+
+
+
QueryString.create = function( arr ) {
+
var resarr = Array();
+
for( var i in arr ) {
+
if( typeof arr[i] == 'object' ){
+
var v = Array();
+
for(var j in arr[i] ) {
+
v[j] = encodeURIComponent( arr[i][j] );
+
}
+
resarr.push( encodeURIComponent( i ) + '=' + v.join('|') );
+
} else {
+
resarr.push( encodeURIComponent( i ) + '=' + encodeURIComponent( arr[i] ) );
+
}
+
}
+
+
return resarr.join('&');
+
}
+
QueryString.prototype.create = QueryString.create;
+
+
/**** End QueryString ****/
+
+
+
/**** Quick Preview ****/
+
+
addOnloadHook(doAddQuickPreview);
+
+
function doAddQuickPreview() {
+
if ((wgAction != "edit") && (wgAction != "submit")) return;
+
var qbutton = document.getElementById("wpPreview").cloneNode(false);
+
qbutton.value = "Quick preview";
+
qbutton.type="button";
+
qbutton.tabindex="6";
+
qbutton.accessKey="g";
+
qbutton.id="dlQuickPreview";
+
qbutton.title="Preview your changes";
+
qbutton.addEventListener("click", doQuickPreview, false);
+
document.getElementById("wpPreview").parentNode.insertBefore(qbutton,document.getElementById("wpDiff"));
+
}
+
+
function doQuickPreview() {
+
var bt = document.getElementById("dlQuickPreview");
+
document.getElementById("contentSub").innerHTML = "Getting preview";
+
bt.value="Getting preview";
+
bt.disabled=true;
+
var form = document.editform;
+
var postData = {
+
'wpMinoredit': form.wpMinoredit.checked,
+
'wpWatchthis': form.wpWatchthis.checked,
+
'wpStarttime': form.wpStarttime.value,
+
'wpEdittime': form.wpEdittime.value,
+
'wpAutoSummary': form.wpAutoSummary.value,
+
'wpEditToken': form.wpEditToken.value,
+
'wpSummary': "Quick preview",
+
'wpTextbox1': document.editform.wpTextbox1.value
+
};
+
+
var addr = document.URL;
+
addr = addr.replace("&action=edit", "&action=submit");
+
addr += "&wpPreview=true&live=true";
+
+
var qwxmlhttp = sajax_init_object(null);
+
qwxmlhttp.overrideMimeType('text/xml');
+
qwxmlhttp.open( 'POST' , addr, true);
+
qwxmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');
+
qwxmlhttp.onload = function() {
+
document.getElementById("wikiPreview").innerHTML = unescape(qwxmlhttp.responseText.replace(/>/g,">").replace(/</g,"<").replace(/&/g,"&").replace(/"/g,'"'));
+
bt.disabled=false;
+
bt.value = "Quick preview";
+
document.getElementById("contentSub").innerHTML = "";
+
}
+
qwxmlhttp.send(QueryString.create(postData));
+
}
+
/**** End Quick Preview ****/
+
+
/* </source> */