function cMenuPasos(){
  var self  = this;
  
  this.init         = _init;
  this.over         = _over;
  this.out          = _out;
  this.open         = _open;
  this.loadListener = _loadListener;
  if(this.postop == undefined || this.postop == null) 
    this.postop       = 90;
  this.modules      = {};
  
  function _init(){
    for(var i = 0; i < self.cells.length; i++){
      var oCell = self.cells[i];
      if(oCell.call != undefined && oCell.call != null){
        oCell.attachEvent("onmouseover", self.over);
        oCell.attachEvent("onmouseout", self.out);
        oCell.attachEvent("onclick", self.open);
        oCell.selected = false;
        if(oCell['default'] == "yes"){
          oCell.selected = true;
          oCell.className = oCell.className + "_on"; 
          self.current = oCell;
        }
        var sAtt = oCell.call.split(":");
        if(sAtt[0] == "module")
          self.modules[sAtt[1]] = oCell;        
      }
      oCell = null;
    }
    app.addListener("onmoduleload", self.loadListener); 
    app.addListener("onactivate", self.loadListener);
    window.attachEvent("onscroll", _UpdateBlockPosition);
    //document.body.attachEvent("onmousewheel", _UpdateBlockPosition); 
    
  }
  
  function _loadListener(oEvent){
    self.disabled = false;    
    var oCell = self.modules[oEvent.module.name];
    if(self.current){
      self.current.selected = false;
      var sClass = self.current.className;
      sClass = sClass.replace(/_on/g, "");
      self.current.className = sClass;  
    }
    if(oCell){
      var sClass = oCell.className;
      sClass = sClass.replace(/_on/g, "");
      sClass = sClass.replace(/_over/g, "");
      oCell.className = sClass + "_on";
      oCell.selected = true;
      self.current = oCell;
    }
    oCell = null;
    window.scrollTo(0,0);
    _UpdateBlockPosition();
 }
  
  function _open(){
    if(self.disabled) return;
    var oItem = window.event.srcElement;
    for(;oItem.call == undefined || oItem.call == null ;){
      oItem = oItem.parentElement;
    }    
    if(oItem.call){
      if(self.current){
        self.current.selected = false;
        var sClass = self.current.className;
        sClass = sClass.replace(/_on/g, "");
        self.current.className = sClass;  
      }
      
      var sAtt = oItem.call.split(":");
      var sClass = self.current.className;
      sClass = sClass.replace(/_on/g, "");

      switch(sAtt[0]){
        case "module":
          oItem.className = sClass + "_on";
          oItem.selected = true;
          app.activate(sAtt[1], "scripts/");
          self.current = oItem;                
        break;
        case "function":
          try{
            var oFnt = eval(sAtt[1]);
            oFnt();
          }catch(e){
            alert(e.message);
          }
          oItem.className = sClass + "_on";
          oItem.selected = true;
          self.current = oItem;
        break;
      }      
    }
    oItem = null;
  }
  
  function _over(){
    if(self.disabled) return;
    var oItem = window.event.srcElement;
    for(;oItem.call == undefined || oItem.call == null ;){
      oItem = oItem.parentElement;
    }
    if(oItem.call){
      if(!oItem.selected){
        var sClass = oItem.className;
        sClass = sClass.replace(/_over/g,"");
        sClass += "_over";
        oItem.className = sClass;
      }
    }
    oItem = null;
  }
  
  function _out(){
    if(self.disabled) return;
    var oItem = window.event.srcElement;
    for(;oItem.call == undefined || oItem.call == null ;){
      oItem = oItem.parentElement;
    }
    if(oItem.call){
      if(!oItem.selected){
        var sClass = oItem.className;
        sClass = sClass.replace(/_over/g,"");
        oItem.className = sClass;
      }
    }
    oItem = null;
  }
  
  function _UpdateBlockPosition(){
    var oMenu = app.widgets['menu_content'];
    if(oMenu){
      oMenu.style.posTop = document.body.scrollTop + parseInt(self.postop);
    }
    oMenu = null;
  }
    
}

