itr.defaultOptions = {
    menu : {
        durationOut: 200,
        effect: 'none', //none / blinds / slides
        effectOptions: {//scripaclous effect-options
            duration: 0.5
        }
    }
}

itr.Menu = function(ID, options){
    var options = options || itr.defaultOptions.menu;
    var ID = ID;
    
    var activeMenuItem = null;
    var hideCounter = null;
    
    var bezig = Array();
        
    this.showMenu = function(ID) {
        clearTimeout(hideCounter)
        
        if($(activeMenuItem))
        {
            this.hideMenu(activeMenuItem);
        }
        activeMenuItem = ID;
        
        switch(options.effect)
        {
            default:
            case 'slides':
                Effect.SlideDown(ID, options.effectOptions);
                break;
            case 'blinds':
                Effect.BlindDown(ID, options.effectOptions);
                break;
            case 'none':
                $(ID).show();
                break;
        }
    }
    
    this.hideMenu = function(ID, delay){        
        delay || 0;
        var self = this;
        if(delay > 0)
        {
            hideCounter = setTimeout(function(){
                self.hideMenu(ID, 0);
            }, delay);
        }
        else
        {
            switch(options.effect)
            {
                default:
                case 'slides':
                    Effect.SlideUp(ID, options.effectOptions);
                    break;
                case 'blinds':
                    Effect.BlindUp(ID, options.effectOptions);
                    break;
                case 'none':
                    $(ID).hide();
                    break;
            }
        }
    }
    
    ///
    //constructor
    ///
    var self = this;
    
    $$('#' + ID + ' a[rel]').each(function(element){
        var rel = element.getAttribute('rel');
        if($(rel))
        {
            //subitems verbergen
            $(rel).hide();
            
            //events headitems
            element.observe('mouseover', function(){
                if(window.bezig)
                {
                    return;
                } else var bezig = true;
                
                self.showMenu(this.getAttribute('rel'));
                
                window.bezig = false;
            });
            element.observe('mouseout', function(){
                if(window.bezig)
                {
                    return;
                } else window.bezig = true;
                
                self.hideMenu(this.getAttribute('rel'), options.durationOut);
                
                window.bezig = false;
            });
            
            //events subitems
            $(rel).observe('mouseover', function(){
                if(bezig)
                {
                    return;
                } else var bezig = true;
                
                clearTimeout(hideCounter)
                
                var bezig = false;
            });
            $(rel).observe('mouseout', function(){
                if(bezig)
                {
                    return;
                } else var bezig = true;
                
                self.hideMenu(this.id, options.durationOut);
                
                var bezig = false;
            });
        }
    });
}

setTimeout(function(){
	if($('subnav_products')) {
    	$('subnav_products').hide();    
    }
}, 100);
