jQuery(function() {
    //setPageBodyHeightTo('#pageBody');
    initActiveLink = jQuery('.headerMenuLink.activeLink');

    // Menu toggle for the container links
    jQuery(".menuLink.containerLink").click(function() {
        var nextElement = jQuery(this).next();

        if (jQuery(nextElement).hasClass('menuContainer')) {
            jQuery(nextElement).slideToggle();
        } else {
            if (jQuery(nextElement).next().hasClass('menuContainer')) {
                jQuery(nextElement).next().slideToggle();
            }
        }

        return false;
    });

    // Init variables for the header menu
    headermenuFocus = false;
    headerSubmenuFocus = false;
    headermenuFocusLastElement = false;
    headermenuTopmenuHoverInTimer = false;
    headermenuTopmenuHoverOutTimer = false;

    // Rollover for the header menu
    jQuery(".headerMenuLink").hover(function() {
        if(headermenuFocusLastElement == this) {
            if(headermenuTopmenuHoverOutTimer) {
                clearTimeout(headermenuTopmenuHoverOutTimer);
            }
        }

        headermenuFocus = true;
        headerSubmenuFocus = false;
        var thisHoverElement = this;

        headermenuTopmenuHoverInTimer = setTimeout(function(){
            headermenuTopmenuHoverIn(thisHoverElement);
        }, 280);
    }, function() {
        if(headermenuTopmenuHoverOutTimer) {
            clearTimeout(headermenuTopmenuHoverOutTimer);
            jQuery(headermenuFocusLastElement).removeClass('activeLink');
            jQuery(headermenuFocusLastElement).parent().next().css('display', 'none');
        }

        headermenuFocusLastElement = this;
        headermenuFocus = false;
        headerSubmenuFocus = false;
        var thisHoverElement = this;

        if(headermenuTopmenuHoverInTimer) {
            clearTimeout(headermenuTopmenuHoverInTimer);
        }

        headermenuTopmenuHoverOutTimer = setTimeout(function(){
            headermenuTopmenuHoverOut(thisHoverElement);
        }, 300);
    });

    jQuery('img', '#innerContent').click(function(){
        if(!jQuery(this).hasClass('skipImageDialog')) {
            var parentElement = jQuery(this).parent();

            if(!jQuery(parentElement).is('a')) {
                showImage(this);
            }
        }
    });
});

function headermenuTopmenuHoverIn(hoverElement) {
    if(headermenuFocus || headerSubmenuFocus) {
        jQuery(initActiveLink).removeClass('activeLink');
        jQuery(initActiveLink).parent().next().css('display', 'none');
    }

    var topMenu = jQuery(hoverElement);
    var subMenu = jQuery(topMenu).parent().next();

    jQuery(topMenu).addClass('activeLink');
    jQuery(subMenu).css('display', 'block');

    headermenuSubmenuHover(subMenu, topMenu);
}

function headermenuTopmenuHoverOut(hoverElement) {
    jQuery(hoverElement).removeClass('activeLink');
    jQuery(hoverElement).parent().next().css('display', 'none');

    if(!headermenuFocus && !headerSubmenuFocus) {
        jQuery(initActiveLink).addClass('activeLink');
        jQuery(initActiveLink).parent().next().css('display', 'block');
    }
}

function headermenuSubmenuHover(subMenu, topMenu) {
    jQuery(subMenu).hover(function() {
        headerSubmenuFocus = true;

        clearTimeout(headermenuTopmenuHoverInTimer);
        clearTimeout(headermenuTopmenuHoverOutTimer);

        jQuery(initActiveLink).removeClass('activeLink');
        jQuery(initActiveLink).parent().next().css('display', 'none');

        jQuery(topMenu).addClass('activeLink');
        jQuery(this).css('display', 'block');
    }, function() {
        headerSubmenuFocus = false;

        clearTimeout(headermenuTopmenuHoverOutTimer);

        jQuery(topMenu).removeClass('activeLink');
        jQuery(this).css('display', 'none');

        jQuery(initActiveLink).addClass('activeLink');
        jQuery(initActiveLink).parent().next().css('display', 'block');
    });
}

function setPageBodyHeightTo(elementSelector) {
    var pageBodyHeight = jQuery('#pageBody').height();
    var elementHeight  = jQuery(elementSelector).height();

    if(pageBodyHeight < elementHeight) {
        var element = elementHeight;
    } else {
        var element = pageBodyHeight;
    }

    jQuery('#pageBody').css('height', element + 50);
}

function resetPageBodyHeight() {
    jQuery('#pageBody').css('height', 'auto');
}

function showImage(element){
    $("#imageDialog").html('Ladevorgang...');
    $("#imageDialog").dialog({
        title: 'Bildansicht',
        modal: true
    });

    var imagePathSmall = jQuery(element).attr('src');
    var imagePathBig   = imagePathSmall.replace(/small/i, "big");

    var dialogImage = new Image();

    dialogImage.onload = function() {
        $("#imageDialog").remove();

        $("body").prepend("<div id='imageDialog'></div>");
        $("#imageDialog").html(this);

        $("#imageDialog").dialog({
            title: 'Bildansicht',
            modal: true,
            width: this.width + 15 + 'px',
            close: function(event, ui) {
                $("#imageDialog").remove();
                $("body").prepend("<div id='imageDialog'></div>");
            }
        });
    };

    dialogImage.src = imagePathBig;
}

