/*
  
    *:hover CSS support for Internet Explorer
    Include this file in to any HTML page to support the hover pseudo-class
    for all elements in Internet Explorer. For example:
      <script type="text/javascript" src="hover.js"></script>
    
    This version doesn't use behaviors and external files.
    
    Made by Salar al Khafaji. E-Mail: site@salar.xs4all.nl
    
  */
  
  var __ieHover_isIe = (document.styleSheets && document.all && window.external);
  var __ieHover_class = "ieEnhSupHover"
  var __ieHover_classPrefix = "ieMch-";
  
  if (__ieHover_isIe)
  {
     window.onload = function()
     {
       document.body.attachEvent("onmouseover", ieHoverOver);
       document.body.attachEvent("onmouseout", ieHoverOut);
       
       var cssRule;
       var newSelector;
       for (var i = 0; i < document.styleSheets.length; i++)
           for (var j = 0; j < document.styleSheets[i].rules.length ; j++)
           {
               cssRule = document.styleSheets[i].rules[j];
               if (cssRule.selectorText.indexOf(":hover") >= 0)
               {
                  newSelector = cssRule.selectorText.replace(/:hover/gi, "." + __ieHover_class);
                  newSelector = newSelector.replace(/\.((\w|\-)+)\.(ieEnhSupHover)/gi, ".ieMch-$1-$3")
                  document.styleSheets[i].addRule(newSelector , cssRule.style.cssText);
               }
           };
     };

  function ieHoverOver()
  {
    if (event.toElement.contains(event.fromElement)) return;
    
    var element = event.srcElement;

    if (element.className == "")
       element.className = __ieHover_class;
    else
    {
       var tClass = element.className.trim();
       tClass += " " + __ieHover_class;
       tClass += " " + __ieHover_classPrefix + tClass.replace(/ /g, "-");
       element.className = tClass;
    };
  };
  
  function ieHoverOut()
  {
    if (event.fromElement.contains(event.toElement)) return;

    var element = event.srcElement;

    element.className = element.className.replace(__ieHover_class, "").trim();
    if (element.className != "")
    {
       var tClass = element.className.trim();
       tClass = tClass.substring(0, tClass.indexOf(" " + __ieHover_classPrefix));
       element.className = tClass.trim();
    };
  };
  
  String.prototype.trim = function()
  {
     return this.replace(/(^\s+)|(\s+$)/g, "");
  };
}; 
