/*
 * WordpressXTC MooMenu JavaScript
 * WXTC MooMenu
 * All Rights Reserved to Monev Software LCC
 */

function moomenu(container, menuClass, sp, a, tr, afps, cnt){
	var topmenu;
	if(container == null) topmenu = $(document.body);
	else topmenu = $(container);
	
	if( !$defined(tr) ) tr = new Fx.Transition(Fx.Transitions.Quint.easeInOut);
	if( !$defined(afps) ) afps = 50;
	if( !$defined(cnt) ) cnt = false;
	
  if(topmenu) {
  	var menus = topmenu.getElements('ul.' + menuClass);
  	
  	menus.each(function(menu){
  		menu.setStyles({'display':'block'});
      var menu_lis = menu.getElements('li');
      var uMain = menu.getCoordinates();
          
  		menu_lis.each(function(l,i){
  			var u = l.getElement('ul');
  			if(u) {
  				
  				var uLevel = ((u.getParent()).getParent()).hasClass(menuClass);
  				var fx = new Fx.Styles(u, { duration: sp, wait:false, transition: tr, fps: afps } );
  				var uDim = u.getCoordinates([menu]);
  				var uh = uDim.height;
  				var mAnimIn;
  		    var mAnimOut;
  		    
  		    if(uLevel) {
  		    	if (window.ie){ uDim.left = u.getBoundingClientRect().left; }
  		    	if( (uMain.left + uMain.width) < (uDim.left + uDim.width) ) u.setStyles({'right': 0 + 'px'});
  		    	if(cnt) {
  		    		if( l.getSize().size.x < uDim.width ) {
  		    			if( ((l.getSize().size.x - uDim.width)/2) > uDim.left) u.setStyles({'margin-left': ((l.getSize().size.x - uDim.width)/2) + 'px'});
  		    		} 
  		    		else u.setStyles({'margin-left': ((uDim.width - l.getSize().size.x)/2) + 'px'});
  		    	}
  		    }else {
  		    	if (window.ie){ uDim.left = u.getBoundingClientRect().left; }
  		    	if( (uMain.left + uMain.width) < (uDim.left + uDim.width) ) u.setStyles({'margin-left': -uDim.width + 'px'});
  		    }
  				
  				switch(a) {
  					case 'h':
  						u.setStyles({'height':'0px'});
  						mAnimIn = {'height': uh + 'px'};
  						mAnimOut = {'height': 0 + 'px'};
  					break;
  					
  					case 'f':
  						u.setStyles({'opacity':0});
  						mAnimIn = {'opacity': 1};
  						mAnimOut = {'opacity': 0};
  					break;
  					
  					case 'hf':
  						u.setStyles({'height':'0px', 'opacity':0});
  						mAnimIn = {'height': uh + 'px', 'opacity': 1};
  						mAnimOut = {'height': 0 + 'px', 'opacity': 0};
  					break;
  				}
  				
  				l.addEvent('mouseenter', function(){
  					fx.start(mAnimIn);
  				});
  				
  				l.addEvent('mouseleave', function(){
  					fx.start(mAnimOut);	
  				});
  				
  			}/* If there is submenu */
  			
  		});
  		
  	});/* if(menu) END */
  }/* if(topmenu) END */
}
