/*
  Transparent overlay
  Copyright 2008 by Jens Bjerrehuus <http://bjerrehuus.dk/blog/jens/>.
  Released under the MIT License.
*/
var overlay = {
  init : function()
  {
    if (!document.getElementsByTagName || !document.createElement
        || !document.appendChild || !document.styleSheets)
      return false;

    /* Add the CSS styles needed to get the effect we want. */
    var selector = '.overlay-background';
    var declarations = 'background:#222; filter:alpha(opacity=80); height:100%; -khtml-opacity:0.8; -moz-opacity:0.8; opacity:0.8; text-shadow:0 0 0 #000; width:50%;';
    var styles = document.styleSheets[0];

    if (styles.insertRule)
      styles.insertRule(selector + '{' + declarations + '}', 0);
    else if (styles.addRule)
      styles.addRule(selector, declarations, 0);

    /* And add the extra div elements that the styles are applied to. */
    var elements = document.getElementsByTagName('*');
    var re = new RegExp("(^|\\s)transparent-overlay(\\s|$)");

    for (var i = 0; i < elements.length; ++i) {
      var el = elements[i];

      if (re.test(el.className)) {
        var back = document.createElement('div');
        var mess = document.createElement('div');

        back.className = 'overlay-background';
        mess.className = 'overlay-message';
        
        var children = el.childNodes;
        while (children.length)
          mess.appendChild(children[0]);
          
        el.appendChild(back);
        el.appendChild(mess);
        el.className = el.className.replace(/transparent-overlay/, '');
      }
    }
  },

  addEvent : function(obj, type, fn)
  {
    if (obj.addEventListener)
      obj.addEventListener(type, fn, false);
    else if (obj.attachEvent) {
      obj["e" + type + fn] = fn;
      obj[type + fn] = function() { obj["e" + type + fn]( window.event ); }
      obj.attachEvent("on" + type, obj[type + fn]);
    }
  }
};

overlay.addEvent(window, 'load', overlay.init);