<!--
/*
+----------------------------------------------------------------------------------------------
| Site: Bau Natürlich (http://www.bau-natürlich.com)
| CMS:  gotopage 3.1
| Copyright (c) 2006 Rosman (http://www.rosman.co.at)
|
| Author(s): Johan Rosman <johan@rosman.co.at>
+----------------------------------------------------------------------------------------------
| Purpose
| implement drop down menu
+----------------------------------------------------------------------------------------------
| Version   Date         Comment
| 3.01      2006/02/08   initial version
+----------------------------------------------------------------------------------------------
*/

if ( !window._menu ) {
/*
+----------------------------------------------------------------------------------------------
| private part
+----------------------------------------------------------------------------------------------
*/

    var _menu = new Object();
    _menu.curr = '';

    _menu.toggle = function ( _id ) {
        if ( _menu.curr == _id ) _menu.close();
        else _menu.show( _id );
    }

    _menu.show = function ( _id ) {
        if ( _menu.curr != '' ) _menu.close();
        var _obj = new _dhtml ( _id );
        var _pos = new Object();
        _pos.x = _obj.x() - 4; // padding 3px; border 1px;
        _pos.y = _obj.y() + _obj.height();
        var _sm = new _dhtml ( _id.replace(/_title$/, '_items') );
        _sm.style.top = _pos.y + 'px';
        _sm.style.left = _pos.x + 'px';
        _sm.style.visibility = 'visible';
        _menu.curr = _id;
    }

    _menu.close = function () {
        if ( _menu.curr != '' ) {
            var _sm = new _dhtml ( _menu.curr.replace(/_title$/, '_items') );
            _sm.style.visibility = 'hidden';
            _menu.curr = '';
        }
    }

/*
+----------------------------------------------------------------------------------------------
| event handling (1. mouse events, 2. window onload event)
+----------------------------------------------------------------------------------------------
*/

    _menu.mouseout = function ( _e ) {
        if ( !_e ) var _e = window.event;
        var _tg = _event.target ( _e );
        if ( _tg.nodeName == 'DIV') {
            if (_e.relatedTarget) var _reltg = _e.relatedTarget;
            else if (_e.toElement) var _reltg = _e.toElement;
            else var _reltg = document.body;
            while ( _reltg != _tg && _reltg.nodeName != 'BODY') {
                _reltg = _reltg.parentNode;
            }
            if ( _reltg != _tg) {
                _menu.close();
            }
        }
    }

    _menu.mouseover = function ( _e ) {
        if ( this.id ) var _id = this.id;
        else _id = _event.id;
        if ( !_e ) var _e = window.event;
        _e.cancelBubble = true;
        if ( _e.stopPropagation ) _e.stopPropagation();
        _menu.show ( _id );
    }

    _menu.onclick = function ( _e ) {
        if ( this.id ) var _id = this.id;
        else _id = _event.id;
        if ( !_e ) var _e = window.event;
        _e.cancelBubble = true;
        if ( _e.stopPropagation ) _e.stopPropagation();
        _menu.toggle ( _id );
    }

    _menu.init = function () {
        _menu.div = new _dhtml ( 'menu' );
        var _divs = _menu.div.obj.getElementsByTagName('DIV');
        for ( var _i=0; _i<_divs.length; _i++) {
            if ( _divs[_i].className.indexOf("menutitle") != -1 ) {
                _event.register_handler ( _divs[_i], 'mouseover', _menu.mouseover );
                _event.register_handler ( _divs[_i], 'click', _menu.onclick );
            } else if ( _divs[_i].className == "menuitems" ) {
                _event.register_handler ( _divs[_i], 'mouseout', _menu.mouseout );
            }
        }
        _event.register_handler ( window, 'click', _menu.close );
        // msie on win doesn't understand window.onclick(?)
        // therefore we do body.onclick as well
        _event.register_handler ( document.body, 'click', _menu.close );
    }

    // let _menu.init be executed onload
    _event.register_handler ( window, 'load', _menu.init );
}
-->
