(function(){
	
	// Onmouse resize ===============================================================================
	
	var isAnimating = false;
	var nextAct = false;
	var lastAnimated = false;
	var openSize = Dom.getChildren(Dom.get("mlCol")).length*21; // vyska otevreneho widgetu

	var topDistance =  openSize>336  ?  0  :  (425 - (openSize+90)) / 2; // nastaveni horniho odsazeni na zaklade poctu polozek 90px 

	var resizeWidget = function(e, data){
		var that = arguments.callee;

		if (isAnimating==false && data.act!=lastAnimated){
			isAnimating=true;
			var widget = data.widget;
			var content = data.content;
			var act = data.act;
			
			if (act=="close" && e!=null){
				// gecko
				if (Dom.getAncestorByClassName(e.relatedTarget,'megaLastWidget')){
					isAnimating=false;
					return;
				// ie
				} else if (Dom.getAncestorByClassName(e.toElement,'megaLastWidget')){
					isAnimating=false;
					return;
				}
			}
			
			e?Ev.stopEvent(e):true;
			
			lastAnimated = data.act;
			
			switch(act){
				case"close":
					var params1 = {height:{
									'to'   	: 115,
									'units' : 'px'
								}}
								
					var params2 = {top:{
									'to'    : 90,
									'units' : 'px'
								}}
				break;
				case"open":
					if (openSize<=115) return;
					var params1 = {height:{
									'to'   	: openSize,
									'units' : 'px'
								}}
								
					var params2 = {top:{
									'to'    : topDistance,
									'units' : 'px'
								}}
				break;
			}
						
			var Animation1 = new Anim(content,params1,0.5,YAHOO.util.Easing.easeOut);
			var Animation2 = new Anim(widget,params2,0.5,YAHOO.util.Easing.easeOut);
			Animation1.onComplete.subscribe(
											function(){
														if (act=="open" && nextAct=="close"){
															isAnimating=false;
															var objekt = {widget:Dom.get("megaLastWidget"),content:Dom.get("mlContainer"),act:"close"}
															that(null,objekt);

														} else {
															isAnimating=false;
														}
													},act,that
											);
			Animation1.animate();
			Animation2.animate();
		} else {
			nextAct=data.act;
		}
	}
	
	var widget = Dom.get("megaLastWidget");
	var content = Dom.get("mlContainer");
	
	Ev.addListener(widget, "mouseout", resizeWidget, {widget:widget,content:content,act:'close'});
	Ev.addListener(widget, "mouseover", resizeWidget, {widget:widget,content:content,act:'open'});

	// Galery mooove jak by rekl Muf ===============================================================================
	
	var mlWidgetGall = new GalleryMover(
											 Dom.get("mlPrev"), 	//prev button
											 Dom.get("mlNext"),		//next button
											 Dom.get("mlCol"),		//row element	
											 336,					//holder window size (animation track)							
											 'mlWidgetLink',		//row entit className							
											 'up',					//next move gallery direction
											 1						//animation duration
										); 							
										 
	
	Ev.addListener(mlWidgetGall.prevButton,'click',mlWidgetGall.movePrevious);
	Ev.addListener(mlWidgetGall.nextButton,'click',mlWidgetGall.moveNext);

	
})();
