// util

var FDS = FDS || {};

/* ### DOM ### */ 
FDS.get = function (id) {
   return document.getElementById(id);
};

FDS.getByClass = function (str, tag) {
   var els = [];
   var re = new RegExp('(?:^|\\s+)' + str + '(?:\\s+|$)');
   var tagN = tag || "*";
   var domEls = document.getElementsByTagName(tagN.toUpperCase());
   var i;
   for (i = 0; i < domEls.length; i++) {
      if (re.test(domEls[i].className)) {
         els.push(domEls[i]);
      }
   }
   return els;
}


/* ### EVENTS ### */
FDS.addEvent = (function () {
   if (typeof window.addEventListener !== "undefined") {
      return function (el, type, fun) {
         el.addEventListener(type, fun, false);  
      };
   }
   else if (typeof window.attachEvent !== "undefined") {
      return function (el, type, fun) {
         var f = function () {
            fun.call(el); 
         }
         el.attachEvent('on' + type, f);
      };
   }
   else {}
})();

// init
(function () {
   // hide form and add listner
   var loginForm = FDS.get("loginForm");
   loginForm.style.display = "none";
   FDS.addEvent(FDS.get("showLoginForm"), "click", function (e) {
      if (!e) e = window.event;
      if (e.preventDefault) {
         e.preventDefault();
      } else {
         e.returnValue = false;
      }
      if (loginForm.style.display === "none") {
         loginForm.style.display = "block";
         this.className = "noArrow";
      } else {
         this.className = "";
         loginForm.style.display = "none";
      }
   });
   // hide submenus and shadow and animate the horizontal menu
   var subM = FDS.getByClass("subMenu");  
   FDS.get("shadow").style.display = "none";   
   var i;
   for (i = 0; i < subM.length; i++) {
      (function (sm) {
         sm.style.display = "none";
         var link = sm.parentNode;
         FDS.addEvent(link, "mouseover", function () {
            this.getElementsByTagName("A")[0].className = "hovered"
            sm.style.display = "block";
            FDS.get("shadow").style.display = "block";     
         });
         FDS.addEvent(link, "mouseout", function () {
            this.getElementsByTagName("A")[0].className = ""
            sm.style.display = "none";        
            FDS.get("shadow").style.display = "none";
         })
      })(subM[i]);
   }
})()