jQuery.noConflict();

var DELAY_TIMEOUT_UL=500;
var DELAY_TIMEOUT_A=500;
var DELAY_FADEIN=300;
var DELAY_FADEOUT=100;
var SENSITIVITY=7;

jQuery.fn.wait = function(time, type) {
        time = time || DELAY_FADEOUT;
        type = type || "fx";
        return this.queue(type, function() {
            var self = this;
            setTimeout(function() {
                jQuery(self).dequeue();
            }, time);
        });
};

var useragent = navigator.userAgent;
var BrowserName = navigator.appName;
var pos = useragent.indexOf('MSIE');
if (pos > -1) {
  BrowserVersion = useragent.substring(pos + 5);
  var pos = BrowserVersion.indexOf(';');
  var BrowserVersion = BrowserVersion.substring(0,pos);
  if (BrowserVersion >= 7) {
    if (getPreviewContext() != ""){
      var cssUrl ='<link rel="stylesheet" type="text/css" href="'+ getPreviewContext()+'/css/modules/ie_hacks.css"></link>';
      document.write(cssUrl);
    }
  }
  if (BrowserVersion == 7) {
    if (getPreviewContext() != ""){
      var cssUrl ='<link rel="stylesheet" type="text/css" href="'+ getPreviewContext()+'/css/modules/ie7hacks.css"></link>';
      document.write(cssUrl);
    }
  }
  if (BrowserVersion >= 9) {
    if (getPreviewContext() != ""){
      var cssUrl ='<link rel="stylesheet" type="text/css" href="'+ getPreviewContext()+'/css/modules/ie9hacks.css"></link>';
      document.write(cssUrl);
    }
  }
}
// configuration
var configNavigationA = {    
   over: makeTallANavigation, // function = onMouseOver callback (REQUIRED)    
   timeout: DELAY_TIMEOUT_A, // number = milliseconds delay before onMouseOut
   sensitivity: SENSITIVITY, 
   out: makeShortANavigation // function = onMouseOut callback (REQUIRED)
   
};
var configNavigationUL = {
   over: makeTallULNavigation,  
   timeout: DELAY_TIMEOUT_UL,
   sensitivity: SENSITIVITY,
   out: makeShortULNavigation    
};
var configQuickNavA = configNavigationA;
var configQuickNavUL = configNavigationUL;
    
    function hackIE6(){
      if (BrowserVersion <= 6) {                                 
        jQuery("a[name=link2Level]").removeAttr("onclick");
      }
    }    
// reset css settings
    function resetCss(type, target){
      if (type=="navigation"){
        resetCssNavigation(target);
      } else {
        resetCssQuickNav(target);
      }
    }

    function resetCssNavigation(targetId){
      jQuery("ul[id=menu_" + targetId +"]").fadeOut(900);
      jQuery("ul[id=menu_" + targetId +"]").css("display", "none");
      jQuery("ul[id=menu_" + targetId +"]").css("visibility", "visible");
    }
    function resetCssQuickNav(target){
    
      jQuery("ul[title=" + target +"]").css("display", "none");
      jQuery("ul[title=" + target +"]").css("visibility", "hidden");
    }
    function resetCssQuickNavAll(){
   
      jQuery("ul[title=Produkte]").wait(2000).css("background-color", "green");
      
      jQuery("ul[title=Produkte]").css("display", "none");
      jQuery("ul[title=Produkte]").css("visibility", "hidden");
      
      jQuery("ul[title=Rechner]").css("display", "none");
      jQuery("ul[title=Rechner]").css("visibility", "hidden");
      
      jQuery("ul[title=Formulare]").css("display", "none");
      jQuery("ul[title=Formulare]").css("visibility", "hidden");
    }
// make tall A
    function makeTallANavigation(){
      resetCss(jQuery(this).next());
      jQuery(this).next().fadeIn(DELAY_FADEIN);
      //think about delete this?
      jQuery(this).next().css("display", "block");
      jQuery(this).next().css("visibility", "visible");
    }
    function makeTallAQuickNav(){
      makeTallANavigation();
    }
// make short A       
    function makeShortANavigation(){
      var isHoveringUL = jQuery(this).next().is(".active");
      if (!isHoveringUL){
        jQuery(this).next().fadeOut(DELAY_FADEOUT);
      }
    }
    function makeShortAQuickNav(){
      makeShortANavigation();
    }
// make tall UL       
    function makeTallULNavigation(){
      jQuery(this).css("display", "block");
      jQuery(this).css("visibility", "visible");
    }
    function makeTallULQuickNav(){
      makeTallULNavigation();
    }
// make short UL
    function makeShortULNavigation(){
      var isHoveringA = jQuery(this).prev().is(".active");
      if (!isHoveringA){
        jQuery(this).fadeOut(DELAY_FADEOUT);
      }
    }
    function makeShortULQuickNav(){
      makeShortULNavigation();
    }
    
    function prepareTargetNavigation(targetIdParam){
      targetId= targetIdParam.replace(/link_/g, "");

      if (jQuery("a[id=link_" + targetId +"]") !=null){
        resetCss("navigation", targetId);
        jQuery("a[id=link_" + targetId +"]").hoverIntent(configNavigationA);
        jQuery("ul[id=menu_" + targetId +"]").hoverIntent(configNavigationUL);
        
        jQuery("a[id=link_" + targetId +"]").hover(function(){
            
            jQuery(this).next().css("display", "none");
            jQuery(this).next().css("visibility", "visible");
            jQuery(this).wait().addClass("active");
          },function(){jQuery(this).removeClass("active");makeShortANavigation()});
        
        jQuery("ul[id=menu_" + targetId +"]").hover(function(){jQuery(this).addClass("active");},function(){jQuery(this).removeClass("active"); makeShortULNavigation();});
      }
    }
   
    function prepareTargetQuickNav(targetName){
      target = targetName;
      
      if (jQuery("a[title=" + target +"]") !=null){
        resetCss("quickNav", target);
        jQuery("a[title=" + target +"]").hoverIntent(configQuickNavA);
        jQuery("ul[title=" + target +"]").hoverIntent(configQuickNavUL);
        
        jQuery("a[title=" + target +"]").hover(function(){
            jQuery(this).addClass("active");makeShortAQuickNav();
          },function(){jQuery(this).removeClass("active");makeShortAQuickNav();});
          
        jQuery("ul[title=" + target +"]").hover(function(){jQuery(this).addClass("active");},function(){jQuery(this).removeClass("active");makeShortULQuickNav();});
      }
    }

    function prepareNavigation(){
     jQuery("#menuwrapper2 > div > ul.myMenu > li > a").each(function(index){
        prepareTargetNavigation(jQuery(this).attr("id"));
     });
    }

    function prepareQuickNavigation(){
      //Produkte        
      prepareTargetQuickNav("Produkte");
      //Rechner
      prepareTargetQuickNav("Rechner");
      //Formulare
      prepareTargetQuickNav("Formulare");
    }
    
// ### prepare navigation and quicknavigation 
    jQuery(document).ready(function(){
      hackIE6();
      prepareNavigation();
      prepareQuickNavigation();
    });

