var submenuCounter = 0;
var closeTimer = null;
window.addEvent('domready', function() {
  $$('#menu li a, ul.submenu li a').each(function(elm){
    elm.addEvent('mouseenter', function(e) {
      if(e != null) {
        e.preventDefault();
      }
      page = this.get('rel');
      if(page != null) {
        if(closeTimer != null) {
          clearTimeout(closeTimer);
        }
        submenuCounter++;
        linkCoordinates = this.getCoordinates();
        submenu = $('submenuitems').getElement('ul.'+page);
        if(submenu != null) {
          parentUl = this.getParent('ul');
          ulCoordinates = parentUl.getCoordinates();
          if(parentUl.hasClass('submenu')) {
            closeSubSubmenu();
            parentLI = this.getParent('li');
            parentLI.addClass('subover');
            ulCoordinates = parentUl.getCoordinates();
            submenu.setStyles({
              'display':'block',
              'position':'absolute',
              'top':linkCoordinates.top-6,
              'left':(ulCoordinates.left+ulCoordinates.width)-23
            });
          } else {
            if(!this.hasClass('submenuactive')) {
              closeSubmenu();
            }
            $$('a.submenuactive').removeClass('submenuactive');
            this.addClass('submenuactive');
            submenu.setStyles({
              'display':'block',
              'position':'absolute',
              'top':((linkCoordinates.top+linkCoordinates.height)+10),
              'left':(linkCoordinates.left-26),
              'min-width':linkCoordinates.width
            });
          }
        }
      } else {
        parentUl = this.getParent('ul');
        if(!parentUl.hasClass('subsubmenu')) {
          closeSubSubmenu();
        }
      }
      
    });
    elm.addEvent('mouseleave', function(){
      page = this.get('rel');
      if(page != null) {
        submenuCounter--;
        checkSubmenus();
        parentLI = this.getParent('li');
        parentLI.removeClass('subover');
      } else {
        parentUl = this.getParent('ul');
        if(!parentUl.hasClass('submenu')) {
          $$('a.submenuactive').removeClass('submenuactive');
        }
      }
    });
  });
  
  $$('ul.submenu').each(function(elm) {
    elm.addEvent('mouseenter', function(){
      if(closeTimer != null) {
        clearTimeout(closeTimer);
      }
      submenuCounter++;
    });
    elm.addEvent('mouseleave', function(){
      submenuCounter--;
      checkSubmenus();
    });
  });

  var bannerItemI = 1;
  var startZ = 20;
  $$('div.banneritem').each(function(elm) {
    elm.setStyle('z-index',startZ-bannerItemI);
    if(bannerItemI > 1) {
      elm.setStyles({
        'display':'none'
      });
    }
    bannerItemI++;
  });     
  
  $$('div.contentbanner').each(function(elm) {
    
    relInfo = elm.get('rel').split('|');
    elm.store('item',relInfo[0]);
    elm.store('overImage',relInfo[1]);
    elm.store('normalImage',relInfo[2]);
    elm.setStyle('cursor','pointer');
    
    elm.addEvent('click', function(e) {
      if(e != null) {
        e.preventDefault();
        e.stopPropagation();
      }
      link = this.getElement('a').get('href');
      window.location = link;
    });
    elm.addEvent('mouseenter',function(){
      resetHomeBanners();
      this.addClass('active');
      image = this.getElement('img');
      image.set('src','/application/assets/images/homebanner-over.png');
      image.setStyle('background-image','url('+this.retrieve('overImage')+')');
      bannerItem = this.get('rel');
      if(bannerItem != null) {
        var bannerItemElm = $('banner').getElement('div.'+bannerItem);
        bannerItemElm.setStyles({
          'z-index':20,
          'display':'block'
        });
        $$('div.banneritem').each(function(elm) {
          if(elm != bannerItemElm) {
            elm.setStyles({
              'z-index':19,
              'display':'none'
            });
          }
        });
      }
    });
    elm.addEvent('mouseleave', function() {
      image = this.getElement('img');
      image.set('src','/application/assets/images/homebanner.png');
    });
  });
  
  
  if($$('div.homebanneritem').length > 0) {
    $$('li.topli').each(function(elm) {
      
      
      elm.store('item',elm.get('rel'));
      elm.setStyle('cursor','pointer');
      
      elm.addEvent('mouseenter',function(){
        bannerItem = this.get('rel');
        if(bannerItem != null) {
          var bannerItemElm = $('banner').getElement('div.'+bannerItem);
          if(bannerItemElm != null) {
            bannerItemElm.setStyles({
              'z-index':20,
              'display':'block'
            });
            $$('div.banneritem').each(function(elm) {
              if(elm != bannerItemElm) {
                elm.setStyles({
                  'z-index':19,
                  'display':'none'
                });
              }
            });
          }
        }
      });
    });
  }
  
  $$('div.extrabanner').each(function(elm) {
    elm.addEvent('click', function() {
      var linkElm = this.getElement('a');
      window.location = linkElm.get('href');
    });
  });
  
  if($$('div.homeextrabanneritem').length > 0) {
    $$('div.extrabanner').each(function(elm) {
      
      
      elm.store('item',elm.get('rel'));
      elm.setStyle('cursor','pointer');
      
      elm.addEvent('mouseenter',function(){
        bannerItem = this.get('rel');
        if(bannerItem != null) {
          var bannerItemElm = $('banner').getElement('div.'+bannerItem);
          if(bannerItemElm != null) {
            bannerItemElm.setStyles({
              'z-index':20,
              'display':'block'
            });
            $$('div.banneritem').each(function(elm) {
              if(elm != bannerItemElm) {
                elm.setStyles({
                  'z-index':19,
                  'display':'none'
                });
              }
            });
          }
        }
      });
    });
  }
  
  if(Browser.ie) {
    ieTextShadows($$('#banner span.bannertagline, #homecontentbanners div.contentbanner span'));
  }
});

function checkSubmenus() {
  if(closeTimer != null) {
    clearTimeout(closeTimer);
  }
  if(submenuCounter == 0) {
    closeTimer = closeSubmenu.delay(200);
  }
}

function closeSubmenu() {
  $$('ul.submenu').each(function(elm) {
    $$('a.submenuactive').removeClass('submenuactive');
    elm.setStyle('display','none');
  });
  closeTimer = null;
}
function closeSubSubmenu() {
  $$('ul.subsubmenu').each(function(elm) {
    elm.setStyle('display','none');
  });
}
function resetHomeBanners() {
  $$('div.contentbanner').each(function(bannerElm) {
    image = bannerElm.getElement('img');
    image.setStyle('background-image','url('+bannerElm.retrieve('normalImage')+')');
  });
}

function ieTextShadows(elms) {
  
  elms.each(function(elm) {
    var shadowElm = elm.clone();
    var elmCoords = elm.getCoordinates();
    elm.setStyles({
      'position': 'absolute',
      'z-index': '5'
    });
    
    if(elm.hasClass('bannertagline')) {
      var left = 0;
      var top = '160px';
    } else {
      var left = elmCoords.left-14;
      var top = elmCoords.top-10;
    }
    
    shadowElm.setStyles({
      'color': '#000',
      'position': 'absolute',
      'z-index': '4',
      'left': left,
      'top': top
    });
    shadowElm.addClass('shadow')
    
    shadowElm.inject(elm,'after');
    
  });
  
}

