window.addEvent('domready', function(e) { $$('ul.menuContent').each(function(element, index) { var wrapperElement = $(element.id + 'Wrapper'); var slider = new Fx.Slide( element, { wrapper: wrapperElement, onStart: function() { if (!this.open) this.element.getParent().getParent().setStyle('z-index', '1'); }, onComplete: function() { if (!this.open) this.element.getParent().getParent().setStyle('z-index', '-1'); } }); var menuToggler = $(element.id + 'Toggler'); var coordinates = menuToggler.getCoordinates(); var wrapperCoordinates = wrapperElement.getCoordinates(); var midPoint = { left: (coordinates.left + (coordinates.width / 2)), top: ( coordinates.top + (coordinates.height)) }; slider.hide(); wrapperElement.setStyle('left', midPoint.left - (wrapperCoordinates.width / 2)); wrapperElement.setStyle('top', midPoint.top); element.store('slider', slider); menuToggler.store('menuContent', element); return; }); $$('div.menuWrapper').addEvent('mouseleave', function() { this.getElement('ul.menuContent').retrieve('slider') .cancel() .slideOut(); }); $$('a.menuToggler').addEvent('mouseover', function() { this.retrieve('menuContent').retrieve('slider') .cancel() .slideIn(); return; }); $$('a.menuToggler').addEvent('mouseleave', function(e) { var wrapper = $(this.id.replace(/Toggler/, 'Wrapper')); if (e.relatedTarget == wrapper || wrapper.hasChild(e.relatedTarget)) return; this.retrieve('menuContent').retrieve('slider') .cancel() .slideOut(); return; }); $$('button.opSubmit').addEvent('click', function() { var parentForm = this.getParent('form'); parentForm.getElement('input[name=op]').value = this.id.match(/_(.*)$/)[1]; parentForm.submit(); return; }); });