Jump to content

User:Sverdrup/monobook.js

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Sverdrup (talk | contribs) at 00:13, 2 September 2005. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
// Live Preview customization,
// edit this to your own liking.


wpUserName   = 'Sverdrup';   // User name to display in signatures

wpShowImages = true;      // Enable downloading and displaying of images


// Include Live Preview...


document.write('<script type="text/javascript" src="http://en.wikipedia.org/w/index.php?title=User:Pilaf/livepreview.js&action=raw&ctype=text/javascript&dontcountme=s"></script>');


// Now set everything up


window.onload = Main;


function Main()
{
 
 LivePreviewInstall();

 // You may include here other "extensions"

 replaceGoogle();
 smileys();
}


/* This is to keep track of who is using the Live Preview: [[User:Pilaf/livepreview.js]] */

// -- end Live Preview

// Google search code

function replaceGoogle() {
var googlePlaceholder = document.getElementById('google-search');
googlePlaceholder.innerHTML = '<form method="GET" action="http://www.google.com/search"> <input type="hidden" name="ie" value="UTF-8"> <input type="hidden" name="oe" value="UTF-8"> <table bgcolor="#FFFFFF"><tr><td> <a href="http://www.google.com/"> <img src="http://www.google.com/logos/Logo_40wht.gif"  border="0" alt="Google" align="absmiddle"></a> <input type="text" name="q" size="25" maxlength="255" value=""> <input type="submit" name="btnG" value="Google Search"> </td></tr></table> </form>';
}


/* Top edit link */
function editTopLink() {
  // if this is preview page or generated page, stop
 if(document.getElementById("wikiPreview") || self.location.pathname.indexOf("Special:") !== -1 || self.location.search.indexOf("title=Special") !== -1) return;

  // get the page title
  var pageTitle = document.title.split(" - ")[0].replace(" ", "_"); 

  // create div and set innerHTML to link
  var divContainer = document.createElement("div");
  divContainer.innerHTML = '<div class="editsection" style="float:right;margin-left:5px;margin-top:3px;">[<a href="/w/index.php?title='+pageTitle+'&action=edit&section=0" title="'+document.title.split(" - ")[0]+'">edit top</a>]</div>';

  // this is a hack so I can refer to the h1 by an id
  document.getElementsByTagName("h1")[0].id = "f1r5tH34d1ng";
  var theH1 = document.getElementById("f1r5tH34d1ng"); 

  // insert divContainer into the DOM before the h1
  document.getElementById("content").insertBefore(divContainer, theH1);

}

// setTimeout does not need a string reference to work
setTimeout(editTopLink, 0) // this is equivalent of onload



// crazy code



function doHighlight(bodyText, searchTerm, highlightStartTag, highlightEndTag) 
{
  // the highlightStartTag and highlightEndTag parameters are optional
  if ((!highlightStartTag) || (!highlightEndTag)) {
    highlightStartTag = "<font style='color:blue; background-color:yellow;'>";
    highlightEndTag = "</font>";
  }
  
  // find all occurences of the search term in the given text,
  // and add some "highlight" tags to them (we're not using a
  // regular expression search, because we want to filter out
  // matches that occur within HTML tags and script blocks, so
  // we have to do a little extra validation)
  var newText = "";
  var i = -1;
  var lcSearchTerm = searchTerm.toLowerCase();
  var lcBodyText = bodyText.toLowerCase();
    
  while (bodyText.length > 0) {
    i = lcBodyText.indexOf(lcSearchTerm, i+1);
    if (i < 0) {
      newText += bodyText;
      bodyText = "";
    } else {
      // skip anything inside an HTML tag
      if (bodyText.lastIndexOf(">", i) >= bodyText.lastIndexOf("<", i)) {
        // skip anything inside a <script> block
        if (lcBodyText.lastIndexOf("/script>", i) >= lcBodyText.lastIndexOf("<script", i)) {
          newText += bodyText.substring(0, i) + highlightStartTag + bodyText.substr(i, searchTerm.length) + highlightEndTag;
          bodyText = bodyText.substr(i + searchTerm.length);
          lcBodyText = bodyText.toLowerCase();
          i = -1;
        }
      }
    }
  }
  
  return newText;
}

function doReplace(bodyText, searchTerm, insertText) 
{
  
  // find all occurences of the search term in the given text,
  // and add some "highlight" tags to them (we're not using a
  // regular expression search, because we want to filter out
  // matches that occur within HTML tags and script blocks, so
  // we have to do a little extra validation)
  var newText = "";
  var i = -1;
  var lcSearchTerm = searchTerm.toLowerCase();
  var lcBodyText = bodyText.toLowerCase();
    
  while (bodyText.length > 0) {
    i = lcBodyText.indexOf(lcSearchTerm, i+1);
    if (i < 0) {
      newText += bodyText;
      bodyText = "";
    } else {
      // skip anything inside an HTML tag
      if (bodyText.lastIndexOf(">", i) >= bodyText.lastIndexOf("<", i)) {
        // skip anything inside a <script> block
        if (lcBodyText.lastIndexOf("/script>", i) >= lcBodyText.lastIndexOf("<script", i)) {
          newText += bodyText.substring(0, i) + insertText;
          bodyText = bodyText.substr(i + searchTerm.length);
          lcBodyText = bodyText.toLowerCase();
          i = -1;
        } else if (lcBodyText.lastIndexOf("/form>", i) >= lcBodyText.lastIndexOf("<form", i)) {
          newText += bodyText.substring(0, i) + insertText;
          bodyText = bodyText.substr(i + searchTerm.length);
          lcBodyText = bodyText.toLowerCase();
          i = -1;
        }
      }
    }
  }
  
  return newText;
}


function smileys() {

var body = document.getElementById("bodyContent");
var editform = document.getElementById("editform");
var edittext = editform.innerHTML;
var newText = body.innerHTML;

// :)
newText  = doReplace(newText, ":)", "<img src='/media/wikipedia/commons/2/26/Smile.png' alt-text=':)' title=':)'>");
newText  = doReplace(newText, ":-)", "<img src='/media/wikipedia/commons/2/26/Smile.png' alt-text=':-)' title=':-)'>");

// ;)
newText  = doReplace(newText, ";)", "<img src='/media/wikipedia/commons/9/94/Smile_eye.png' alt-text=';)' title=';)'>");
newText  = doReplace(newText, ";-)", "<img src='/media/wikipedia/commons/9/94/Smile_eye.png' alt-text=';)' title=';)'>");

// :D
newText  = doReplace(newText, ":D", "<img src='/media/wikipedia/commons/7/72/Teeth.png' alt-text=':D' title=':D'>");
newText  = doReplace(newText, ":-D", "<img src='/media/wikipedia/commons/7/72/Teeth.png' alt-text=':D' title=':D'>");

body.innerHTML = newText;

editform = document.getElementById("editform");
editform.innerHTML = edittext;
}