"use strict";
/*
Globales Javascript der marineXchange-Site
*/

(function($) {
    
    /*
    URL-Helfer-Funktion
    */
    function split_hash_sections(hash_string) {
        
        var hash;
        var splitted_sections;
        var splitted_name_value;
        var sections = {};
        
        /* # entfernen */
        if (hash_string.substring(0, 1) == "#") {
            hash = hash_string.substr(1);
        } else {
            hash = hash_string;
        }
        
        /* Teilbereiche aufsplitten */
        splitted_sections = hash.split("&");
        
        /* Name vom Wert trennen und in einem Dictionary ablegen */
        for (var i = 0; i < splitted_sections.length; i++ ) {
            splitted_name_value = splitted_sections[i].split("=");
            sections[splitted_name_value[0]] = null;
            if (splitted_name_value.length > 1) {
                sections[splitted_name_value[0]] = splitted_name_value[1];
            }
        }
        
        /* Rückgabe */
        return sections;
    }
    
    
    $(document).ready(function() {
        
        /* 
        Hover-Effekt für Horizontales Hauptmenü 
        */
        var $menu_items = $("div#nav_main ul li");
        
        // Ersten und letzten Eintrag markieren
        $menu_items.filter(":first-child").addClass("first_item");
        $menu_items.filter(":last-child").addClass("last_item");
        
        // Hover-Klasse aktivieren oder deaktivieren
        $menu_items.hover(
            function() {
                var $li = $(this);
                $li.addClass("hover");
            },
            function() {
                var $li = $(this);
                $li.removeClass("hover");
            }
        );
        
        
        /* 
        Zentriert den Text im mainMenu vertikal
        */
        $("div.mainMenu ul li a, div.mainMenu ul li strong").each(function() {
            var $inner = $(this);
            var $outer = $(this).parent();
            var margin = ($outer.height() - $inner.height()) / 2.0;
            $inner
                .css("position", "relative")
                .css("top", margin + "px" )
            ;
        });
        
        
        /*
        Hover-Effekt für mainMenu vertikal
        */
        $("div.mainMenu ul li").hover(
            function() {
                var $li = $(this);
                $li.addClass("hover");
            },
            function() {
                var $li = $(this);
                $li.removeClass("hover");
            }
        );
        
        $("div.mainMenu ul li strong").parent().addClass("current");
        
        
        /*
        Links im mainMenu und im nav_main auf gesamtes LI-Objekt ausweiten
        */
        $("div.mainMenu ul li a, #nav_main ul li a").parent().click(function() {
            var $li = $(this);
            var $a = $li.find("a");
            window.location = $a.attr("href");
            return false;
        });
        
        
        /*
        News-Seite: Accordion
        */
        var $news_container = $("div#news-page-news-list-container");
        
        if ($news_container.length > 0) {
        
            var $news_items = $news_container.find("div.news-list-item");
            var $news_headers = $news_items.find("h3.news-list-header");
            
            // Aktiviert den übergebenen News-Item
            var set_current_item = function(item_id) {
                $news_items.each(function() {
                    var $current_item = $(this);
                    var current_id = $current_item.attr("id");
                    if (current_id == item_id) {
                        $current_item.find("div.news-list-content").slideDown('fast');
                    } else {
                        var $content = $current_item.find("div.news-list-content");
                        if ($content.is(":visible")) {
                            $content.slideUp('fast');
                        }
                    }
                });
            }
            
            
            // Ersten oder per URL übergebenen Eintrag ausklappen
            var splitted_hash = split_hash_sections(window.location.hash);
            var news_item_id = splitted_hash["news-item-id"];
            
            if (!! news_item_id) {
                news_item_id = "news-list-item--" + news_item_id;
            } else {
                news_item_id = $news_items.first().attr("id");
            }
            set_current_item(news_item_id);
            
            
            // Event: Klick auf einen der News-Header
            $news_headers.click(function() {
                
                var $selected_header = $(this);
                var $selected_item = $selected_header.parent();
                var selected_id = $selected_item.attr("id");
                
                set_current_item(selected_id);
            
            });
            
        }
        
        
        /*
        News-Einträge der Startseite korrekt zur News-Seite verlinken
        
        ACHTUNG! Ob das Skript in der Homepage aufgerufen wird, 
        wird durch das Vorhandensein des DIVs mit der ID "c1074" ermittelt.
        */
        if ($("div#c1074 div.news-list-container").length > 0) {
            
            var $homepage_news_links = $("div.news-list-item h3, span.news-list-morelink");
            
            // Header und More-Links durchlaufen und Links korrigieren
            $homepage_news_links.each(function() {
                var $this = $(this);
                var $a = $this.find("a");
                var url = $a.attr("href");
                var regex = /\[tt_news\]=(.*?)\&/;
                var news_item_id = regex.exec(url)[1];
                
                $a.attr("href", "index.php?id=245#news-item-id=" + news_item_id);
            });
        }

    });
})(jQuery);





















