var flyout = {
    vars: {
        mouseoverMainNavi: false,
        mouseoverFlyout: false,
        flyoutDefaultHTML: '<center><img height="70" src="fileadmin/templates/images/ajax-loader.gif" /></center>',
        to: false,
        lastElem: false,
        timeout: 500,
        menuCache: false,
        lastActive: false
    },
    init: function () {
        flyout.vars.menuCache = new Array();
        flyout.createEvents();
    },
    createEvents: function () {
        jQuery('#flyout').each(function () {
            jQuery(this).bind('mouseover', function () {
                flyout.vars.mouseoverFlyout = true;
                clearTimeout(flyout.vars.to)
            });
            jQuery(this).bind('mouseout', function () {
                flyout.vars.to = setTimeout(function () {
                    flyout.vars.mouseoverFlyout = false;
                    flyout.hide()
                }, flyout.vars.timeout)
            })
        });
        jQuery('.nav-main ul li a').bind('mouseover', function (elem) {
            jQuery(flyout.vars.lastActive).removeClass('active');
            var id = this.className.split('_');        
          
            // if shorter than 2 we dont have a id and stop the rest
            if (id.length < 2) return;
            // exclude international
            if (id[1]== 5) return;
              
            jQuery(this).addClass('active');
            flyout.vars.lastActive = this;

            flyout.show(jQuery(this), id[1])
        })
    },
    show: function (elem, id) {      
        flyout.vars.mouseoverMainNavi = true;
        
        flyout.vars.lastElem = elem;
        clearTimeout(flyout.vars.to);
        
        jQuery(elem).bind('mouseout', function () {
                jQuery(flyout.vars.lastElem).unbind('mouseout')

                flyout.vars.to = setTimeout(function () {
                        flyout.vars.mouseoverMainNavi = false;
                        flyout.hide()
                }, flyout.vars.timeout)
        })

        jQuery('#flyout').html(flyout.vars.flyoutDefaultHTML);
        jQuery('#flyout').show();
        if (typeof(flyout.vars.menuCache[id]) == 'undefined') {
      jQuery.ajax({
        type: 'POST',
        async: true,
        data: 'id=49&ce=54&flyoutID=' + id + '&no_cache=1',
        url: 'index.php',
        success: function (data) {          
          jQuery('#flyout').html(data);
              
          flyout.parseContent(data, id);
        }
      })
        } else {
            jQuery('#flyout').html(flyout.vars.menuCache[id]);
        }
    },
  parseContent: function (data, id) {
    var newhtml = '';
    var newwidth = 0;
    var withoutSubElementsHTML = '<div class="item nosubelments">';
    var subelements = 0;
    jQuery ('#flyout .item').each (function (i) 
    {
      if (jQuery (this).find ('ul').length != 0)
      {  
        newwidth += jQuery(this).outerWidth();
        if (newwidth > jQuery ('#flyout').width ())
        {
          newhtml += '<p class="clear">&nbsp;</p>';
          newwidth = jQuery(this).outerWidth();
        }  
        
        newhtml += '<div class="item">' + jQuery(this).html () + "</div>";
        
      } else {
        withoutSubElementsHTML += jQuery(this).html ();
        subelements++;
      }
    });
    withoutSubElementsHTML += "</div>";
        
    if (subelements > 0)
      data = withoutSubElementsHTML;
    else
      data = '';
    
    data += newhtml;
      
    flyout.vars.menuCache[id] = data;
    jQuery('#flyout').html(data);
  },
    hide: function () {
        clearTimeout(flyout.vars.to);
        jQuery(flyout.vars.lastActive).removeClass('active');
        jQuery('#flyout').html(flyout.vars.flyoutDefaultHTML);
        jQuery('#flyout').hide();
    }
}
// document ready
$(document).ready(function() 
{ 
  jQuery ('.accordion .accordion_content').hide ();
  
  var firstAccordion = jQuery('.accordion').get(0);
  if (typeof (firstAccordion) != 'undefined') {
    jQuery (firstAccordion).find('.accordion_content').show ();
    jQuery (firstAccordion).find('.accordion_headline').addClass ('active');
  }
  
  // init accordion
  jQuery('.accordion .accordion_headline').click (function () 
  {
    if (jQuery(this).next ('.accordion_content').is (':hidden')) {
      jQuery ('.accordion').each (function (i, elem) {
        jQuery(elem).find ('.accordion_content').slideUp("slow");
        jQuery(elem).find ('.accordion_headline').removeClass ('active');
      });
      
      // add the active class attribute
      jQuery(this).addClass ('active');
      jQuery(this).next ('.accordion_content').slideDown("slow");
    } else {
      // remove the active class attribute
      jQuery(this).next ('.accordion_content').slideUp("slow");
      jQuery(this).removeClass ('active');
    }
  });
  
  // init slider
  if (jQuery('#coda-slider-1').length != 0) {
    jQuery('#coda-slider-1').codaSlider({
      dynamicArrowLeftText: "",
      dynamicArrowRightText: "",
      dynamicTabsPosition: "bottom",
      slideEaseDuration: 2000,
      autoSlide: true,
      autoSlideInterval: 5000,
      autoSlideStopWhenClicked: true,
      autoHeight: false,
      dynamicArrows: false,
      crossLinking: false
    });
    // jQuery('div#slider2').codaSlider()
    // etc, etc. Beware of cross-linking difficulties if using multiple sliders on one page.
  }
  
  // init social
  if (typeof (floatingMenu) != 'undefined')
  {
    floatingMenu.add('floatdiv',  
                     {  
                       targetRight: 10,  
                       targetTop: 10,  
                       snap: true  
                     });  
  }
  // disabled on IE6
  if (!(jQuery.browser.msie && parseInt (jQuery.browser.version) == 6))
  {
    // init flyout
    flyout.init ();
  }
});
