MTJax.ToggleNav = {
    
     Nav: []
    ,Trigger: []
    ,Span: null
    ,Fx: null
    
    ,initialize: function(el)
    {
        var ID = el.id.split(/_/);
        
        this.Nav = el.getNext();
        this.Trigger = el.getParent();
        this.el = el;
        
        this.Fx = new Fx.Morph(this.Nav, {duration: 300,transition: Fx.Transitions.Cubic.easeOut});
        
        this.Nav.setStyle('overflow', 'hidden');
        this.Trigger.addEvent('click', this.toggle.bindWithEvent(this));
        
        if (this.Trigger.hasClass('closedtoggle'))
        {
            this.Nav.setStyles({
                'opacity': 0,
                'height': 0
            });
        }
    }
    
    ,toggle: function(event)
    {
    	if (event.target != this.el && $(event.target).getParent() != this.el)
    	{
    		return;
    	}
    	
        if (this.Trigger.hasClass('openedtoggle'))
        {
            this.Fx.start({
                'height': 0,
                'opacity': 0
            });
            this.notify('hide');
        }
        else
        {
            this.Fx.start({
                'height': this.Nav.scrollHeight,
                'opacity': 1
            });
            this.notify('show');
        }
        
        this.Trigger.toggleClass('openedtoggle');
        this.Trigger.toggleClass('closedtoggle');
    },
    
    notify: function(Status)
    {
    	try
    	{
	        new Request({
             url: '/plugin/de.masstisch.ajax/Nav/Notify.php'
	        	,data: {
               Nav: this.Nav.id
              ,Status: Status
            }
	        }).send();	
    	}
    	catch (e)
    	{
    		// ignoring ...
    	}
    }
};
MTJax.ToggleNav = new Class(MTJax.ToggleNav);

window.addEvent('domready', function()
{
  if (document.getElement('div.toggle h3'))
  {
    document.getElements('div.toggle h3').each(function(el)
    {
        new MTJax.ToggleNav(el);        
    });
  }
});