window.pngFix = function(element) {
  if (element.tagName == "IMG") {
    element.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+
                           element.src+
                           '", sizingMethod="crop")';
    element.src = '/i/e.gif';
  } else {
    var method = (element.currentStyle.backgroundRepeat == 'no-repeat') ? 'crop' : 'scale';
    element.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+
                           element.currentStyle.backgroundImage.replace(/.*?url\(["']?(.*?)["']?\).*$/,"$1")+
                           '", sizingMethod="'+method+'")';
    element.style.backgroundImage = 'none';
  }
}
window.defined = function(object) {
  return (typeof object != "undefined");
}
window.stopPropagation = function(event) {
  event = event || window.event;
  if (defined(event.stopPropagation)) {
    event.stopPropagation();
  } else if (e) {
    event.cancelBubble = true;
  }
}
window.textContent = function(element) {
  if (element.text != undefined) {
    return element.text;
  } else if (element.textContent != undefined) {
    return element.textContent;
  } else {
    return element.firstChild.nodeValue;
  }

}
window.mousePos = function(event) {
  event = event || window.event;
  return {x: event.pageX || (event.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft),
          y: event.pageY || (event.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop)};

}
if (!Array.prototype.indexOf) {
  Array.prototype.indexOf = function(element) {
   for (var i = 0; i < this.length; i ++) {
    if (this[i] == element) return i;
   }
   return -1;
  }
}

window.SelectManager = function() {};
window.SelectManager.prototype = {
  allow: function(container) {
    var self = this;
    var $container = $(container || document.body);
    $container.removeClass("non-selectable");
    if ($.browser.opera) $container.unbind('mousemove', self._rmAllRanges);
    if ($.browser.msie) $container.unbind('selectstart', self._returnFalse);
  },
  forbid: function(container) {
    var self = this;
    var $container = $(container || document.body);
    $container.addClass("non-selectable");
    if ($.browser.opera) $container.bind('mousemove', self._rmAllRanges);
    if ($.browser.msie) $container.bind('selectstart', self._returnFalse);
  },
  _returnFalse: function() {
    return false;
  },
  _rmAllRanges: function(event) {
    event = event || window.event;
    event.target.ownerDocument.defaultView.getSelection().removeAllRanges();
  }
}
window.Selection = new SelectManager();
