function showChildren(){ 
  var index = children.indexOf(this.getChildren());
  this.getChildren().setStyle({'height':css.get(index)});
  if(this.getBlindUp() != undefined){this.getBlindUp().cancel();}
  var div = this.getChildren();
  this.setBlindDown(new Effect.BlindDown(div,{duration:'0.7'}));
}

function hideChildren(event){
  if(this.getBlindDown() != undefined){this.getBlindDown().cancel();}
  var div = this.getChildren();
  this.setBlindUp(new Effect.BlindUp(div,{duration:'0.7'})); 
}

function prepareMenu(){
  children.invoke('hide');
  $$('div.section').each(function(div){
    var section = new Section(div);
    div.observe('mouseenter',showChildren.bindAsEventListener(section));
    div.observe('mouseleave',hideChildren.bindAsEventListener(section));
  });
}

function prepareGlobalVariables(){
  children = $$('div.children');
  css = $H({0:'333px',1:'35px',2:'115px',3:'35px',4:'123px'});
}

function initAll(){
  prepareGlobalVariables();
  prepareMenu();
}

document.observe('dom:loaded',initAll);

var Section = Class.create({
  initialize: function(element){
    this.element = element;
    this.blind_down = undefined;
    this.blind_up = undefined;
  },
  getChildren: function(){
    return this.element.down('div.children');
  },
  setBlindDown: function(effect){
    this.blind_down = effect;
  },
  setBlindUp: function(effect){
    this.blind_up = effect;
  },
  getBlindDown: function(){
    return this.blind_down;
  },
  getBlindUp: function(){
    return this.blind_up;
  }
});
