/**
 * author: feelinglucky <i.feelinglucky@gmail.com>
 *   site: http://www.gracecode.com/
 *   date: 2008-04-08
 */
var imageMask = (function () {
    return {
       maskSrc: 'spaceball.gif',
       mask: function (element) {
            var maskImage = document.createElement('img');
            maskImage.src = this.maskSrc;
            maskImage.style['position'] = 'absolute';
            maskImage.style['display']  = 'block';

            if(typeof element == 'string') {
                var element = document.getElementById(element).getElementsByTagName("img");
            }

            for(var i = element.length - 1; i >= 0; i--) {
                this._mask(element[i], maskImage.cloneNode(true));
            }
       },

        _mask: function (targetElement, maskImage) {
            maskImage.style['height'] = targetElement.clientHeight + "px";
            maskImage.style['width']  = targetElement.clientWidth  + "px";

            if (document.documentElement.getBoundingClientRect)  {
                var box = targetElement.getBoundingClientRect();
                maskImage.style['top']  = box.top + "px";
                maskImage.style['left'] = box.left + "px";
            } else {
                maskImage.style['top']  = targetElement.offsetTop + "px";
                maskImage.style['left'] = targetElement.offsetLeft + "px";
            }

            targetElement.oncontextmenu = maskImage.oncontextmenu = function () {
                return false;
            }

            this._insertAfter(maskImage, targetElement);
        },

      _insertAfter: function (newElement, targetElement) {
            var parentNode = targetElement.parentNode;
            if(parentNode.lastChild == targetElement) {
                return parentNode.appendChild(newElement);
            } else {
                return parentNode.insertBefore(newElement, targetElement.nextSibling);
            }
      }
};
})();
