// $Id: navigation2008.js,v 1.17 2009/09/23 08:35:35 fa Exp $
        // Was ist angeklickt worden (Home-Channel)?!
        try {
            if( activeEntryId         == null )
                throw "ErrNULL";
            else if( activeEntryId     < 0 )
                throw "ErrNEGATIV";
        } catch(er) {
            if( er                    == "ErrNULL")
                alert("Warning! activeEntryId is NULL.");
            if( er                     == "ErrNEGATIV")
                alert("Warning! activeEntryId is negative.");
        }
        
        // Timeout bei MouseOver
        var timerValue                 = 2000;
        
        // SubNavigation - Flag
        var subNavigationFlag         = false;
        
        var overedBtn                 = null;
        // Array-Index für LI Element
        var liTarget                 = null;
        
        // flag, um button des aktiven channels ein- bzw. auszublenden
        var activeChannelMustShow     = false;
        var holdStatusQuo             = false;
        var spanStatus                 = 0;
        var subNaviStatus             = 0;
        
        var objBtnLI                 = null; // Home-Btn LI Bereich
        var objBtnA                 = null; // Home-Btn A Bereich
        var objBtnSPAN                 = null; // Home-Btn SPAN Bereich
        var objOverBtnLI             = null; // lastover Btn LI Bereich
        var objOverBtnA             = null; // lastover Btn A Bereich
        var objOverBtnSPAN             = null; // lastover Btn SPAN Bereich
        // DEBUG Btn's zum Testen
        var objForLastBtnLI         = null; // forlastover Btn LI Bereich
        var objForLastOverBtnA         = null; // forlastover Btn A Bereich
        var objForLastOverBtnSPAN     = null; // forlastover Btn SPAN Bereich
        
        
        /**
         * LI:HOVER & Co. Effekt für IE6, IE7 & Firefox
         */
        function hoverLI_IE6_IE7_Firefox() {

            objBtnLI = getLiElement(activeEntryId);
            
            if ( objBtnLI ) {
                objBtnA     = objBtnLI.getElementsByTagName('A')[0];
                objBtnSPAN     = objBtnLI.getElementsByTagName('SPAN')[0];
            }
            
            var LI     = document.getElementById("navigation2008").firstChild;
            var k     = 0;
            do {
                if ( sucheUL(LI) ) {
                    //LI.onmouseover    = einblenden;
                    LI.onmouseout    = ausblenden;
                    LI.value         = k+1;
                    if( activeEntryId == (k+1) ) {
                        //objBtn = LI;
                    }
                    k = k+1;
                }
                LI = LI.nextSibling;
            }
            while(LI);
        }
        
        function sucheUL(UL) {
            do {
                if( UL && UL.nodeName == "LI" ) {
                    return UL;
                }
                if( UL ) UL = UL.nextSibling;
            }
            while(UL);
            return false;
        }
        
        /*
         * einblenden ::: alte version (der ganze BTN war aktive MouseOver Fläche)
         */
        /*
        function einblenden() {
            
                subNavigationFlag         = false;
                activeChannelMustShow     = false;
                if( objOverBtnLI ) {
                    //DEBUG: I
                }
                if( this == objBtnLI ) {
                    //DEBUG: II
                } else {
                    // den aktuellen BTN ausgrauen (BTN vom Channel, wo man sich befindet)
                    objBtnLI.className     = "mt-navi-btn-li-off";
                    objBtnA.className     = "mt-navi-btn-a-off";
                }
                // nicht START button
                if( overedBtn > 0 ) {
                    noneSubNavi();
                    thisBtn = overedBtn;
                    if( document.getElementById("mt-subnavi_" + thisBtn ) ) {
                        document.getElementById("mt-subnavi_" + thisBtn ).className     = "mt-subnavi-x-on";
                    } else {
                        // DEBUG III
                        document.getElementById("mt-subnavi2008_content").className     = "mt-subnavi2008-content-off";
                        document.getElementById("mt-subnavi2008_line" ).className         = "mt-subnavi2008-line-on";
                    }
                // Start button
                } else {
                    noneSubNavi();
                    document.getElementById("mt-subnavi2008_content").className         = "mt-subnavi2008-content-off";
                    document.getElementById("mt-subnavi2008_line" ).className             = "mt-subnavi2008-line-on";
                }
            
            return false;
        }
        */
            
        function ausblenden() {
            
            if ( holdStatusQuo === false ) {
                var UL = sucheUL(this);
                
                if( UL == document.getElementById("navi-current") ) {
                    //DEBUG: III
                } else {
                    window.setTimeout('backSubNaviFromHomeChannelNachOben()', timerValue);
                }
            }
            return false;
        }
        
        function backActiveBtn() {
            
            // HomeBtn einblenden
            objBtnLI.className             = "mt-navi-btn-li-on";
            objBtnA.className             = "mt-navi-btn-a-on";
                        
            // verlassenen button ausblenden
            if( objOverBtnLI ) {
                objOverBtnLI.className     = "mt-navi-btn-li-off";
                objOverBtnA.className     = "mt-navi-btn-a-off";
                // DEBUG: Test (letzter und vorletzter button)
                objForLastBtnLI         = objOverBtnLI;
                objForLastBtnA             = objOverBtnA;
                objForLastBtnSPAN        = objOverBtnSPAN;
            }
        }
        
        
        /**
         * Anzeigen der SubNavigation des Home-Channels
         */
        function backSubNaviFromHomeChannel(){
            
            if ( objBtnLI.className == "mt-navi-btn-li-on" ) {
                resultSearch     = 1;
            } else {
                resultSearch     = -1;
            }
            
            if ( resultSearch != -1 ) {
                noneSubNavi();
                if( activeEntryId > 0 && document.getElementById("mt-subnavi_" + (activeEntryId)) ) {
                    subMenuChecker(activeEntryId);
                } else {
                    document.getElementById("mt-subnavi2008_line" ).className     = "mt-subnavi2008-line-on";
                    document.getElementById("mt-subnavi2008_content").className = "mt-subnavi2008-content-off";
                }
                activeChannelMustShow     = true;
                overedBtn                 = activeEntryId;
            }
        }
        
        function backSubNaviFromHomeChannelNachOben(){
            
                divMtContainerTop             = document.getElementById('mt-container').offsetTop;
                globalContainerOffsetTop     = $('global-container').offsetTop;
                
                if ( IE ) {
                    navigationBlockBorder = globalContainerOffsetTop + divMtContainerTop + 1;
                    if( mcoordY < navigationBlockBorder ) {
                        backActiveBtn();
                    }
                } else {  // grab the x-y pos.s if browser is NS
                    navigationBlockBorder = globalContainerOffsetTop + divMtContainerTop;
                    if( mcoordY < navigationBlockBorder ) {
                        backActiveBtn();
                    }
                }
                
                if ( objBtnLI.className == "mt-navi-btn-li-on" ) {
                    resultSearch     = 1;
                } else {
                    resultSearch     = -1;
                }
                
                if ( resultSearch != -1 ) {
                        
                    noneSubNavi();
                    if( activeEntryId > 0 && document.getElementById("mt-subnavi_" + (activeEntryId)) ) {
                        subMenuChecker(activeEntryId);
                    } else {
                        document.getElementById("mt-subnavi2008_line" ).className     = "mt-subnavi2008-line-on";
                        document.getElementById("mt-subnavi2008_content").className = "mt-subnavi2008-content-off";
                    }
                    activeChannelMustShow     = true;
                    overedBtn                 = activeEntryId;
                }
            
        }
        
        /**
         * SubNavis (alle DIV's) ausblenden
         */
        function noneSubNavi() {
            
            var subnaviChildren = document.getElementById("mt-subnavi2008_content").getElementsByTagName("div");

            for ( i = 0; i < subnaviChildren.length; i++ ) {

                if ( subnaviChildren[i] != null && subnaviChildren[i].id != "mt-subnavi" ) {
                    subnaviChildren[i].className = "mt-subnavi-x-off";
                }
            }
        }
        
        /**
         * Liefert das Objekt LI zurück
         */
        function getLiElement(elementId) {
            for ( var i = 0; i < document.getElementById("navigation2008").getElementsByTagName('LI').length; i++ ) {
                var elementBtnLI = document.getElementById("navigation2008").getElementsByTagName('LI')[i];
                if ( elementBtnSPAN = elementBtnLI.getElementsByTagName('SPAN')[0].id == "span_id_"+elementId ) {
                    return elementBtnLI;
                }
            }
            return null;
        }
        
        /**
         * Test-Methode
         */
        function Coords (coordX, coordY) {
            if (window.event) {
                alert("x = " + coordX + "/ y = " + coordY);
            } else {
                //alert('Fehler');
                //alert("x = " + window.event.x + "/ y = " + window.event.y);
                //console.log("x = " + coordX + "/ y = " + coordY);
            }
        }
        
        /**
         * Für ein bestimtes Entry wird entsprechendes Item eingeblendet
         */
        function subMenuChecker(activeEntryId){
            document.getElementById("mt-subnavi2008_line").className             = "mt-subnavi2008-line-off";
            document.getElementById("mt-subnavi2008_content").className         = "mt-subnavi2008-content-on";
            document.getElementById("mt-subnavi_" + (activeEntryId)).className     = "mt-subnavi-x-on";
        }
        
        /** =====================================================================================
         *  SubNavigation - MouseOver (In, Out, Move) ::: Erkennung
         */
        
        var IE = document.all?true:false;

        // If NS -- that is, !IE -- then set up for mouse capture
        if ( !IE ) document.captureEvents(Event.MOUSEMOVE)
        
        // Set-up to use getMouseXY function onMouseMove
        document.onmousemove = getMouseXY;
        
        // Temporary variables to hold mouse x-y pos.s
        var mcoordX             = 0;
        var mcoordY             = 0;
        var activeCoordY        = 0;
        var blockDivWidth         = 0;
        var blockDivHeight         = 0;
        var blockDivLeft         = 0;
        var blockDivTop         = 0;
        var blockDivRight         = 0;
        var blockDivBottom         = 0;
        var divMtContainerTop     = 0;
        
        // Main function to retrieve mouse x-y pos.s
        function getMouseXY(e) {
            
            // StartPoints (Reklame-Problem)
            divMtContainerTop = document.getElementById('mt-container').offsetTop;

            if ( IE ) { // grab the x-y pos.s if browser is IE
                mcoordX             = event.clientX;
                mcoordY             = event.clientY;
                divMtContainerTop     = divMtContainerTop;
                activeCoordY        = 65;
            } else {  // grab the x-y pos.s if browser is NS
                mcoordX             = e.pageX;
                mcoordY             = e.pageY;
                activeCoordY        = 200;
            }
            // catch possible negative values in NS4
            if ( mcoordX < 0 ) { mcoordX = 0 }
            if ( mcoordY < 0 ) { mcoordY = 0 }
            // store the values ::: mouse-coords
            
            //DEBUG: Koordinaten-Ausgabe
            //Coords(mcoordX, mcoordY);
            
            // DIV-SubNavigation ::: Properties
            // BUG: 8791
            if( document.getElementById('mt-subnavi2008') == null ) {
                return;
            }
            
            blockDivWidth     = document.getElementById('mt-subnavi2008').clientWidth;
            blockDivHeight     = document.getElementById('mt-subnavi2008').clientHeight;
            
            // left-top
            blockDivLeft     = document.getElementById('mt-subnavi2008').offsetLeft + 10;
            blockDivTop     = document.getElementById('mt-subnavi2008').offsetTop + divMtContainerTop;
            
            // right-top
            blockDivRight     = blockDivLeft + blockDivWidth;
            // right-bottom
            blockDivBottom     = blockDivTop + blockDivHeight;
                         
            if( (mcoordX >= 10 && mcoordX <= blockDivRight) && (mcoordY >= blockDivTop && mcoordY <= blockDivBottom) ) {
                subNavigationFlag = true;

            } else {

                if ( subNavigationFlag ) {
                    window.setTimeout('MTmenu.activateHomeChannelBtn()', timerValue);
                    subNavigationFlag = false;
                }
            }
            return true;
        }
        
        /**
         * Zur Test-Ausgaben
         * @param String varTxt
         */
        function printDebug(varTxt) {
            //console.log(varTxt + " === holdStatusQuo -> " + holdStatusQuo + " === subNavigationFlag -> " + subNavigationFlag);
            //console.log("objBtnLI:::"); console.log(objBtnLI);
            //console.log("objOverBtnLI:::"); console.log(objOverBtnLI);
        }
    
        
/**
 * Meinestadt Menu Object
 * Dient zum kapseln der Menu-relevanten Funktionen in einem bestimmten Namensraum
 * SubMenu anzeigen, Der Button des Home-Channels wieder einblenden,
 * welcher Btn aktiviert werden soll, Aktivieren vom Button des angeklickten Channels
 * @access public
 */
var MTmenu={
    
    /**
     * Ermitteln und Anzeigen der SubNavigation des überfahrenen Btn's
     * @param Integer overBtn
     * @access public
     * @return void
     */
    showSubNavi: function( overBtn ) {
        
            if( objOverBtnLI ) {
                objOverBtnLI             = getLiElement(overedBtn);
                objOverBtnA             = objOverBtnLI.getElementsByTagName('A')[0];
                objOverBtnSPAN             = objOverBtnLI.getElementsByTagName('SPAN')[0];
                objOverBtnLI.className     = "mt-navi-btn-li-off";
                objOverBtnA.className     = "mt-navi-btn-a-off";
            }
                
            overedBtn                     = overBtn;
            objOverBtnLI                 = getLiElement(overedBtn);
            objOverBtnA                 = objOverBtnLI.getElementsByTagName('A')[0];
            objOverBtnSPAN                 = objOverBtnLI.getElementsByTagName('SPAN')[0];
    
            if( overBtn == 0 ) {
                document.getElementById("mt-subnavi2008_content").className     = "mt-subnavi2008-content-off";
                document.getElementById("mt-subnavi2008_line" ).className         = "mt-subnavi2008-line-on";
            } else {
                if( document.getElementById("mt-subnavi2008_line") ) {
                    document.getElementById("mt-subnavi2008_line" ).className     = "mt-subnavi2008-line-off";
                }
                document.getElementById("mt-subnavi2008_content").className     = "mt-subnavi2008-content-on";
                noneSubNavi();
                if ( document.getElementById("mt-subnavi_"+overBtn) ) {
                    document.getElementById("mt-subnavi_"+overBtn).className            = "mt-subnavi-x-on";
                } else {
                    document.getElementById("mt-subnavi2008_content").className     = "mt-subnavi2008-content-off";
                    document.getElementById("mt-subnavi2008_line" ).className         = "mt-subnavi2008-line-on";
                }
            }
                
            if( objOverBtnLI ) {
                objOverBtnLI.className                                             = "mt-navi-btn-li-on";
                objOverBtnA.className                                             = "mt-navi-btn-a-on";
            }
            
            if( objOverBtnLI == objBtnLI ) {
                 //DEBUG: II
                //Überfahrener BTN ist aktiver ChannelBTN
            } else {
                // den aktuellen BTN ausgrauen (BTN vom Channel, wo man sich befindet)
                objBtnLI.className     = "mt-navi-btn-li-off";
                objBtnA.className     = "mt-navi-btn-a-off";
            }
            
    },
    
    /**
     * Der Button des Home-Channels wieder einblenden
     * @access public
     * @return void
     */
    activateHomeChannelBtn: function() {
        
        if(spanStatus == 0 && subNaviStatus == 0) {
        
            holdStatusQuo = true;
            
            if( objOverBtnLI ) {
                // überfahrenen Button deaktivieren
                objOverBtnLI.className     = "mt-navi-btn-li-off";
                objOverBtnA.className     = "mt-navi-btn-a-off";
            }
            // Home-Channel-Button aktivieren
            objBtnLI.className             = "mt-navi-btn-li-on";
            if ( objBtnA ) {
                objBtnA.className         = "mt-navi-btn-a-on";
            }
            // SubNavi ausblenden
            noneSubNavi();
            // Ermitteln und Anzeigen der SubNavi des Home-Channels
            backSubNaviFromHomeChannel();
        
        }
    },
    
    /**
     * Beim Überfahren der SubNavi wird ermittelt, welcher Btn aktiviert werden soll:
     * 1. holdStatusQuo = true => der nicht aktive Btn wurde überfahren, der aktueller schon aktivierter Btn behalten
     * 2. objOverBtnLI  = true => dieser Objekt (Btn) soll aktiviert werden
     * @access public
     * @return void
     */
    checkSubMenuBehavior: function() {
        
        if( overedBtn != activeEntryId ) {
            if( holdStatusQuo == false ){
                // muss abgefragt werden, da der User bevor er irgendeinen Btn überfährt, den Bereich der SubNavi passieren kann.
                if( objOverBtnLI ) {
                    objOverBtnLI                 = getLiElement(overedBtn);
                    objOverBtnA                 = objOverBtnLI.getElementsByTagName('A')[0];
                    objOverBtnSPAN                 = objOverBtnLI.getElementsByTagName('SPAN')[0];
                    objOverBtnLI.className         = "mt-navi-btn-li-on";
                    objOverBtnA.className         = "mt-navi-btn-a-on";
                }
                // den aktuellen BTN ausgrauen
                if( objOverBtnLI != objBtnLI && objOverBtnLI ){
                    objBtnLI.className             = "mt-navi-btn-li-off";
                    objBtnA.className             = "mt-navi-btn-a-off";
                }
            } else {
                // inactiver Btn wurde angeklickt
                // nichts tun: status quo behalten!
            }
        }
    },
        
    /**
     * Aktivieren vom Button des angeklickten Channels
     * @access public
     * @return void
     */
    activateClickedChannelOnLoad: function(){
        
            if( activeEntryId > 0 && document.getElementById("mt-subnavi_" + (activeEntryId)) ) {
                subMenuChecker(activeEntryId);
            } else {
                document.getElementById("mt-subnavi2008_line" ).className     = "mt-subnavi2008-line-on";
                document.getElementById("mt-subnavi2008_content").className = "mt-subnavi2008-content-off";
            }
        
    },
    
    /**
     * Flag des SPAN Elements
     * @access public
     * @param val Number
     * @return void
     */
    setSpan: function(val){
        spanStatus = val;
        
    },
    
    /**
     * Flag des SubNavi Containers
     * @access public
     * @param val Number
     * @return void
     */
    setSubNavi: function(val){
        subNaviStatus = val;
        
    }
};
