User:Segjin/monobook.js: Difference between revisions

From Wiki
Jump to navigation Jump to search
Segjin (talk | contribs)
mNo edit summary
Segjin (talk | contribs)
mNo edit summary
 
(48 intermediate revisions by the same user not shown)
Line 1: Line 1:
function setCookie(name, value, expires, path, domain, secure) {
var hashTable = new Object();
 
    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() {
function toggleSearch() {
Line 75: Line 34:
                           indicator + "</span></a>]</span>");
                           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 setupSearch() {
function ChildCount(obj) {
   //var searchIndicator = getCookie("searchIndicator");
   var count = 0;
    
    
   //if (!searchIndicator) {
   if (obj.children) {
       toggleSearch();  
       count = obj.children.length;
   //} else {
   }
  //  setSearchIndicator(searchIndicator);
  else if (obj.childNodes) {
   //}
      for (var i = 0; i < obj.childNodes.length; i++) {
        if (obj.childNodes[i].nodeType == 1) {
            count++;
        }
      }
   }
 
  return count;
}
}


function MoveFooter() {
function SetupSearch() {
   var footer = document.getElementById('footer');
  toggleSearch();
   var content = document.getElementById('column-content');
}
 
 
function ModifyActions() {
   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;
        }
      }
  }
}


   footer.parentNode.removeChild(footer);
function MangleImages() {
   content.appendChild(footer);
   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 MoveActions() {
function MangleImage(image) {
   var contents  = document.getElementById('column-content');
   if (image) {
  var tabs      = document.getElementById('p-cactions');
      if (image.alt && (image.alt.length > 0) && (!image.title || image.title.length == 0)) {
        image.title = image.alt;
      }
  }
}


   tabs.parentNode.removeChild (tabs);
function MangleLinks() {
   contents.insertBefore(tabs, contents.firstChild);
   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 MoveLogo() {
function MangleLink(link) {
   var logo = document.getElementById('p-logo');
 
  var content = document.getElementsByTagName('BODY')[0];
   var statusText = "";
 
  if (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;
      };
  }
}


   logo.parentNode.removeChild(logo);
function MoveElement(elem, parent) {
   content.insertBefore(logo, content.firstChild);
   elem.parentNode.removeChild(elem);
   parent.insertBefore(elem, parent.firstChild);
}
}


function PerformLoad() {
function PerformLoad() {
   MoveActions();
   var global = document.getElementById('globalWrapper');
   MoveLogo();
   var columnContent = document.getElementById('column-content');
   setupSearch();
   var columnOne = document.getElementById('column-one');
  var actions = document.getElementById('p-cactions');
  var logo = document.getElementById('p-logo');
  var footer = document.getElementById('footer');
  var mwIcon = document.getElementById('f-poweredbyico');
  var content = document.getElementById('content');
 
  // IE fix
  content.style.margin = '0 0 0 0';
 
  var table;
  var row;
  var cell;
 
  table = document.createElement('table');
  table.cellPadding = 0;
  table.cellSpacing = 0;
 
  table.setAttribute('width', '100%');
 
  row = table.insertRow(table.rows.length);
  cell = row.insertCell(0);
  cell.colSpan = 2;
  MoveElement(logo, cell);
 
  row = table.insertRow(table.rows.length);
  cell = row.insertCell(0);
  cell.colSpan = 2;
  MoveElement(actions, cell);
 
  row = table.insertRow(table.rows.length);
  row.vAlign = 'top';
 
  cell = row.insertCell(0);
  cell.vAlign = 'top';
  cell.setAttribute('width', '1%');
  MoveElement(columnOne, cell);
 
  cell = row.insertCell(1);
  cell.vAlign = 'top';
  cell.align = 'left';
  cell.setAttribute('width', '99%');
  MoveElement(columnContent, cell);
 
  row = table.insertRow(table.rows.length);
  cell = row.insertCell(0);
  cell.colSpan = 2;
  MoveElement(footer, cell);
 
  row = table.insertRow(table.rows.length);
  cell = row.insertCell(0);
  cell.colSpan = 2;
  cell.innerHTML = "<img id='footerImage' src='/images/land2.jpg' width='799' height='144' />";
 
  global.insertBefore(table, global.firstChild);
 
  mwIcon.parentNode.removeChild(mwIcon);
  footer.appendChild(mwIcon);
 
  MangleLinks();
  MangleImages();
 
  SetupSearch();
  ModifyActions();
 
  // Personal tools after Search
  var pt = document.getElementById('p-personal');
  var tb = document.getElementById('p-tb');
 
  MoveElement(pt, tb);
  pt.style.paddingBottom = '10px';
}
}



Latest revision as of 15:57, 4 January 2006

var hashTable = new Object();

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>");
   }
}

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() {
   toggleSearch(); 
}


function ModifyActions() {
   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.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 MoveElement(elem, parent) {
   elem.parentNode.removeChild(elem);
   parent.insertBefore(elem, parent.firstChild);
}

function PerformLoad() {
   var global = document.getElementById('globalWrapper');
   var columnContent = document.getElementById('column-content');
   var columnOne = document.getElementById('column-one');
   var actions = document.getElementById('p-cactions');
   var logo = document.getElementById('p-logo');
   var footer = document.getElementById('footer');
   var mwIcon = document.getElementById('f-poweredbyico');
   var content = document.getElementById('content');

   // IE fix
   content.style.margin = '0 0 0 0';

   var table;
   var row;
   var cell;

   table = document.createElement('table');
   table.cellPadding = 0;
   table.cellSpacing = 0;

   table.setAttribute('width', '100%');

   row = table.insertRow(table.rows.length);
   cell = row.insertCell(0);
   cell.colSpan = 2;
   MoveElement(logo, cell);

   row = table.insertRow(table.rows.length);
   cell = row.insertCell(0);
   cell.colSpan = 2;
   MoveElement(actions, cell);

   row = table.insertRow(table.rows.length);
   row.vAlign = 'top';

   cell = row.insertCell(0);
   cell.vAlign = 'top';
   cell.setAttribute('width', '1%');
   MoveElement(columnOne, cell);

   cell = row.insertCell(1);
   cell.vAlign = 'top';
   cell.align = 'left';
   cell.setAttribute('width', '99%');
   MoveElement(columnContent, cell);

   row = table.insertRow(table.rows.length);
   cell = row.insertCell(0);
   cell.colSpan = 2;
   MoveElement(footer, cell);

   row = table.insertRow(table.rows.length);
   cell = row.insertCell(0);
   cell.colSpan = 2;
   cell.innerHTML = "<img id='footerImage' src='/images/land2.jpg' width='799' height='144' />";

   global.insertBefore(table, global.firstChild);

   mwIcon.parentNode.removeChild(mwIcon);
   footer.appendChild(mwIcon);

   MangleLinks();
   MangleImages();

   SetupSearch();
   ModifyActions();

   // Personal tools after Search
   var pt = document.getElementById('p-personal');
   var tb = document.getElementById('p-tb');

   MoveElement(pt, tb);
   pt.style.paddingBottom = '10px';
}

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