PKM©*3¦~ÜôDD install.rdf Shift Edit{ed299a78-1648-4bfa-8355-2dc684040b90}0.1.8Wiki anything :DKeebler - keebler.nethttp://www.keebler.net{ec8030f7-c20a-464f-9b0e-13a3a9e97384}0.91.0content/PKM©*3άÀˆ!!%chrome/shiftedit/content/contents.rdf chrome://shiftedit/content/browser.xulPKM©*3“p„bAA$chrome/shiftedit/content/browser.xul PKM©*3ª>  &chrome/shiftedit/content/javascript.js// ==UserScript== // @name Shift Edit // @namespace http://www.keebler.net/ // @description Wiki anything :D // @include http://* // ==/UserScript== function Wiki() { this.cursor; this.editing; this.region; this.IsEdited = false; this.diffRegion; // used by the diff operation this.mostCurrentRegionContents; this.IsEditingHistory = false; this.versionIndex = 0; // current version loaded (0 = current, -x = x backwards) } Wiki.ServerSideScriptURL = "http://www.keebler.net/blog/wp-content/scripts/wiki.php"; Wiki.setOpacity = function(obj, opacity) { opacity = (opacity == 100)?99.999:opacity; // IE/Win obj.style.filter = "alpha(opacity:"+opacity+")"; // Safari<1.2, Konqueror obj.style.KHTMLOpacity = opacity/100; // Older Mozilla and Firefox obj.style.MozOpacity = opacity/100; // Safari 1.2, newer Firefox and Mozilla, CSS3 obj.style.opacity = opacity/100; } Wiki.StartWait = function() { if( Wiki.waitIndex ) { Wiki.waitIndex++; } else { Wiki.waitIndex = 1; } document.getElementsByTagName("body")[0].style.cursor = "wait"; if( Wiki.GetInstance().region ) { setTimeout( "if( Wiki.waitIndex > 0 ) Wiki.setOpacity( Wiki.GetInstance().region, 60 );", 100 ); } } Wiki.StopWait = function() { Wiki.waitIndex--; if( Wiki.waitIndex <= 0 ) { document.getElementsByTagName("body")[0].style.cursor = "auto"; Wiki.waitIndex = 0; if( Wiki.GetInstance().region ) Wiki.setOpacity( Wiki.GetInstance().region, 100 ); } } Wiki.prototype.Reset = function() { if( this.versionIndex < 0 && ! this.IsEditingHistory ) { this.versionIndex = 0; this.region.onmousedown = Wiki.ClickRegion; this.region.onmouseup = Wiki.DragSelection; document.onkeydown = null; Wiki.GetCurrentVersion( this.region ); } this.IsEdited = false; this.IsEditingHistory = false; this.versionIndex = 0; this.cursor = null; this.editing = null; this.region = null; } Wiki.prototype.RemoveCoordinateHolders = function() { if( ! this.region.AddedHolders ) return; var holders = this.region.getElementsByTagName("span"); var numHolders = holders.length; for( var i = numHolders; i >= 0 ; i-- ) { if( holders[i] && holders[i].className == "CoordinateHolder" ) { holders[i].parentNode.removeChild( holders[i] ); } } this.region.AddedHolders = false; } Wiki.GoToRegion = function( regionId ) { if( ! /^http:\/\//i.test( document.location + "" ) ) return; var req = new XMLHttpRequest(); req.open("POST", Wiki.ServerSideScriptURL, true); req.onreadystatechange = function() { Wiki.GoToRegion_Handler( req, regionId ); }; req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); req.send( "action=findRegion" + "®ion=" + escape( regionId ) ); return false; } Wiki.GoToRegion_Handler = function( req, regionId ) { if( req.readyState == 4 ) { var serverResponse = req.responseText; if( /^http:\/\/.*<\/response>$/i.test( serverResponse ) ) { document.location = serverResponse.match( /(http:\/\/.*)/i )[0]; return; } else { var popupWindow = window.open( "", "WikiPopup", "height=200,width=150" ); if( serverResponse.length < 3 ) { serverResponse = "Welcome to your brand new wiki page! Click here to start editing :-)"; } popupWindow.document.write( "
" + serverResponse + "
" ); popupWindow.document.close(); if( popupWindow.focus ) popupWindow.focus(); } } } Wiki.SaveChanges = function() { var myWiki = Wiki.GetInstance(); if( ! myWiki.region ) return; myWiki.RemoveCoordinateHolders(); if( ! /^http:\/\//i.test( document.location + "" ) ) return; Wiki.StartWait(); var req = new XMLHttpRequest(); req.open("POST", Wiki.ServerSideScriptURL, true); req.onreadystatechange = function() { Wiki.SaveChanges_Handler( req ); }; req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); req.send( "action=put" + "®ion=" + escape( myWiki.region.id ) + "&page=" + escape( document.location ) + "&html=" + escape( myWiki.region.innerHTML ) ); } Wiki.SaveChanges_Handler = function( req ) { if( req.readyState == 4 ) { Wiki.StopWait(); var serverResponse = req.responseText; alert( serverResponse ); } } Wiki.GetCurrentVersion = function( region ) { Wiki.StartWait(); var myWiki = Wiki.GetInstance(); if( region ) { myWiki.GetVersion( 0, function( versionSource ) { Wiki.Get