User:Segjin/monobook.js

From Wiki
Revision as of 20:16, 10 December 2005 by Segjin (talk | contribs)
Jump to navigation Jump to search

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
var hashTable = new Object();

function setCookie(name, value, expires, path, domain, secure) {

    document.cookie= name + "=" + escape(value) +
        ((expires) ? "; expires=" + expires.toGMTString() : "") +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
}

function getCookie(name) {

    var dc = document.cookie;
    var prefix = name + "=";
    var begin = dc.indexOf("; " + prefix);

    if (begin == -1)
    {
        begin = dc.indexOf(prefix);
        if (begin != 0) return null;
    }
    else
    {
        begin += 2;
    }

    var end = document.cookie.indexOf(";", begin);
    if (end == -1)
    {
        end = dc.length;
    }

    return unescape(dc.substring(begin + prefix.length, end));
}

function deleteCookie(name, path, domain) {
    if (getCookie(name)) {
        document.cookie = name + "=" + 
            ((path) ? "; path=" + path : "") +
            ((domain) ? "; domain=" + domain : "") +
            "; expires=Thu, 01-Jan-70 00:00:01 GMT";
    }
}

function toggleSearch() {
 
   var objSearch = document.getElementById("p-search");
   var header = objSearch.getElementsByTagName("h5")[0];
   var div = objSearch.getElementsByTagName("div")[0];
   
   var indicator;

   if (div.style.display == "none") {
      div.style.display = "block";
      indicator = "hide";
   } else {
      div.style.display = "none";
      indicator = "show";
   }

   setSearchIndicator(indicator);   
}

function setSearchIndicator(indicator) {

   var navLink = document.getElementById("searchToggler");

   if (navLink) {
      navLink.innerHTML = indicator;
   } else {

      var objSearch = document.getElementById("p-search");
      var header = objSearch.getElementsByTagName("h5")[0];

      header.innerHTML += ("&nbsp;<span id='toggleSearch'>[<a href='javascript:toggleSearch();'><span id='searchToggler'>" + 
                           indicator + "</span></a>]</span>");
   }

   // setCookie("searchIndicator", indicator);
}

function GetText(obj) {
   if (obj.title)
      return obj.title;
   else if (obj.alt)
      return obj.alt;
   else if (obj.innerText)
      return obj.innerText;
   else if (obj.textContent)
      return obj.textContent
   else
      return obj.innerHTML;
}

function ChildCount(obj) {
   var count = 0;
   
   if (obj.children) {
      count = obj.children.length;
   }
   else if (obj.childNodes) {
      for (var i = 0; i < obj.childNodes.length; i++) {
         if (obj.childNodes[i].nodeType == 1) {
            count++;
         }
      }
   }

   return count;
}

function SetupSearch() {
   //var searchIndicator = getCookie("searchIndicator");
   
   //if (!searchIndicator) {
      toggleSearch(); 
   //} else {
   //   setSearchIndicator(searchIndicator);
   //}
}

function MoveFooter() {
   var footer = document.getElementById('footer');
   var content = document.getElementById('column-content');

   footer.parentNode.removeChild(footer);
   content.appendChild(footer);
   
}

function MoveActions() {
   var contents  = document.getElementById('column-content');
   var tabs      = document.getElementById('p-cactions');

   tabs.parentNode.removeChild (tabs);
   contents.insertBefore(tabs, contents.firstChild);
}

function MoveLogo() {
   var logo = document.getElementById('p-logo');
   var content = document.getElementsByTagName('BODY')[0];

   logo.parentNode.removeChild(logo);
   content.insertBefore(logo, content.firstChild);
}

function AddBottomImage() {
   var footer = document.getElementById('globalWrapper');
   var footerImage = document.getElementById('footerImage');

   if (!footerImage) {
      footer.innerHTML += "<img id='footerImage' src='/images/land2.jpg' width='799' height='144' />";
   }
}

function ModifyCactions() {
   var div = document.getElementById('p-cactions');
   var li = div.getElementsByTagName('li');
   var spacer = "<img src='/images/star_spacer.gif' width='30' height='20' border='0'>";

   if (li) {
      if (li.length) {
         var i;
         for (i = 0; i < (li.length - 1); i++) {
            li[i].innerHTML = li[i].innerHTML + spacer;
         }
      }
   }
}

function MangleImages() {
   var images = document.getElementsByTagName('IMG');
   if (images) {
      if (images.length) {
         for (var i = 0; i < images.length; i++) {
            MangleImage(images[i]);
         }
      } else {
         MangleImage(images);
      }
   }
}

function MangleImage(image) {
   if (image) {
      if (image.alt && (image.alt.length > 0) && (!image.title || image.title.length == 0)) {
         image.title = image.alt;
      }
   }
}

function MangleLinks() {
   var links = document.getElementsByTagName('A');
   if (links) {
      if (links.length) {
         for (var i = 0; i < links.length; i++) {
            MangleLink(links[i]);
         }
      } else {
         MangleLink(links);
      }
   }
}

function MangleLink(link) {

   var statusText = "";

   if (link) {
      //link.className = "link";

      link.onmouseover = function() { 

         hashTable[link] = new Array( link.style.color );
         link.style.color = '#FFFF99';

         if (ChildCount(link) == 0) {
             statusText = link.title = GetText(link);
         }

         window.status = statusText;
         return true;
      };

      link.onmouseout = function() { 

         if (hashTable[link] && hashTable[link].length && hashTable[link].length > 0) {
            link.style.color = hashTable[link][0];
            hashTable[link] = null;
         }

         window.status = '';
         return true;
      };
					
   }
}

function PerformLoad() {
   MoveActions();
   MoveLogo();
   SetupSearch();
   AddBottomImage();
   ModifyCactions();
   MangleLinks();
   MangleImages();
}

if (window.addEventListener) {
   window.addEventListener("load", PerformLoad, false);
} else if (window.attachEvent) {
   window.attachEvent("onload", PerformLoad);
}