function MenuManager (name, hasImages, hasActive)
{
  this.id = 'menu-' + name;
  this.name = name;
  this.hasImages = hasImages;
  this.hasActive = hasActive;
  this.element = document.getElementById(this.id);
  this.ltie7 = $.browser.msie && /MSIE\s(5\.5|6\.)/.test(navigator.userAgent);
}
MenuManager.prototype.setCurrent = function (path)
{
  var subpath = '';
  var thiselement = this.element;
  var thisname = this.name;
  $.each(path, function (i, n){
    subpath += (subpath == '') ? n : '_' + n;
    var pathelements = $(thiselement).find('li.' + thisname + '-' + subpath);
    for (var j = 0; j < pathelements.length; j++)
    {
      var jqElm = $(pathelements[j]);
      jqElm.addClass('path');
      if (!jqElm.is('.map'))
      {
        jqElm.addClass('current');
      }
    }
  
  });
  if (this.hasImages)
  {
    var firstlevel = $('#' + this.id + ' > li.path');
    if (firstlevel.length)
    {
      var el = firstlevel.get(firstlevel.length - 1);
      el.imageWasSet = true;
      if (this.hasActive)
      {
        this.setImageHover(el, '-active', '-activehover', true);
      }
      else
      {
        this.setImageHover(el, '-hover', '-hover', true);
      }
    }
  }
}
MenuManager.prototype.setImageHovers = function ()
{
  var firstlevel = $('#' + this.id + ' > li');
  if (firstlevel.length)
  {
    for (var i = 0; i < firstlevel.length; i++)
    {
      var el = firstlevel.get(i);
      if (!el.imageWasSet)
      {
        this.setImageHover(firstlevel.get(i), '', '-hover', false);
      }
    }
  }
}

MenuManager.prototype.setImageHover  = function (el, normalsuffix, hoversuffix, setdimensions)
{
  var imgs = el.getElementsByTagName('img');
  if (imgs.length)
  {
    var oldimg = imgs[0];
    var imgsrc = oldimg.src.substring(0, oldimg.src.lastIndexOf('.'));
    var extension = oldimg.src.substring(oldimg.src.lastIndexOf('.'), oldimg.src.length);

    if (setdimensions)
    {
      var newimg = new Image;
      newimg.oldimg = oldimg;
      newimg.ltie7 = this.ltie7;
      newimg.onload = MenuManagerSetWidthHeight;
      newimg.el = el;
      newimg.el.jq = $(el);
      newimg.src = imgsrc + normalsuffix + extension;
    }
    
    oldimg.jq = $(oldimg);
    if (this.ltie7)
    {
      oldimg.jq.css({
        backgroundImage: 'none',
        filter: 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'' + imgsrc + normalsuffix + extension + '\', sizingMethod=\'scale\')'
      });
      oldimg.jq.hover(
        function () {
          this.jq.css({
            backgroundImage: 'none',
            filter: 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'' + imgsrc + hoversuffix + extension + '\', sizingMethod=\'scale\')'
          })
        },
        function () {
          this.jq.css({
            backgroundImage: 'none',
            filter: 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'' + imgsrc + normalsuffix + extension + '\', sizingMethod=\'scale\')'
          })
        }
      );
    }
    else
    {
      oldimg.jq.css({background: 'url(' + imgsrc + normalsuffix + extension + ') no-repeat'});
      oldimg.jq.hover(
        function () {
          this.jq.css({background: 'url(' + imgsrc + hoversuffix + extension + ') no-repeat'})
        },
        function () {
          this.jq.css({background: 'url(' + imgsrc + normalsuffix + extension + ') no-repeat'})
        }
      );
    }
    var hoverimg = new Image;
    hoverimg.src = imgsrc + hoversuffix + extension;
    oldimg.src = '/images/icons/blank.gif';
    oldimg.alt = oldimg.title = '';
  }
}
function MenuManagerSetWidthHeight (e)
{
  if (this.width)
  {
    if (this.ltie7)
    {
      $(this.oldimg).css({
        background: 'none',
        filter: 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'' + this.src + '\', sizingMethod=\'scale\')',
        width: this.width + 'px', height: this.height + 'px'
      });
    }
    else
    {
      $(this.oldimg).css({background: 'url(' + this.src + ') no-repeat', width: this.width + 'px', height: this.height + 'px'});
    }
    this.oldimg.src = '/images/icons/blank.gif';
    this.oldimg.alt = this.oldimg.title = '';
  }
}
