window.addEvent("load", function(){

  var zm = new Zing_Menu($$('#nav_menu li ul'), {duration:600,transition:Fx.Transitions.Expo.easeInOut}); //,opacity:0.9
});

var Zing_Menu = new Class({

  options: {
    duration:300,
    transition:Fx.Transitions.linear
  },

  initialize: function(elements, options){

    this.setOptions(options);

    var fx = [];

    elements.each(function(el,i){
      var do_in = {
          'height': el.offsetHeight - (el.getStyle('border-width').toInt() * 2),
          //'width': el.offsetWidth - (el.getStyle('border-width').toInt() * 2),
          'border-width': el.getStyle('border-width').toInt()
      };
      if (options.opacity) {do_in['opacity'] = options.opacity;}

      var do_out = {};
      for (var p in do_in) {do_out[p] = 0;}

      fx[i] = new Fx.Styles(el, {
        duration:this.options.duration,
        transition:this.options.transition
      });

      el.setStyles(do_out);
      el.setStyle('visibility', 'visible');

      el.addEvent('mouseover', function(ev){
        fx[i].stop();
        fx[i].start(do_in);
      });

      el.addEvent('mouseout', function(ev){
        fx[i].stop();
        fx[i].start(do_out);
      });


      var menulink = el.getPrevious();
      menulink.addClass('topmenu');

      menulink.addEvent('mouseover', function(ev){
        fx[i].stop();
        fx[i].start(do_in);
      });

      menulink.addEvent('mouseout', function(ev){
        fx[i].stop();
        fx[i].start(do_out);
      });
    },this);
  }
});

Zing_Menu.implement(new Options);
