/**
 * Implementacja prościutkiego dropdown-menu
 */
if( typeof ee == 'undefined' ) var ee = new function(){};
if( typeof ee.menu == 'undefined' ) ee.menu = new function(){};

Object.extend(ee.menu, {

	/* wyświetlany element menu */	
	active : undefined,
	effectsConfig : {duration: 0.2}
	
});

Event.onDOMReady(function(){
	
	var dropMenu = $$('.drop-menu');
	var dropIt = $$(".drop-it");
	
	dropMenu.each(function(it,index){
		
		Event.observe(it,'mouseout',function(e){
			Event.stop(e);			
			if( !( Position.within(dropMenu[index],e.clientX,e.clientY) || Position.within(dropIt[index],e.clientX,e.clientY)) ){
				Effect.Fade(dropMenu[index],ee.menu.effectsConfig);				
			}	
		})
		
	});
	
	dropIt.each(function(it, index){
		
		Event.observe(it,'mouseover',function(e){
			
			/* za każdym razem lizymy nową pozycję menu ze względu na scroll */
			var pos = Position.positionedOffset(it);
			var elStyle = dropMenu[index].style;
			
			elStyle.left 	=	 pos[0] + 'px';
			elStyle.top 	=  pos[1] + it.getDimensions().height + 'px';	
			
			if( typeof ee.menu.active != 'undefined' && ee.menu.active.visible() && ee.menu.active.id != dropMenu[index].id ) {
				ee.menu.active.hide();	/* ie strange behaviour fix */				
			}			
			
			if( !dropMenu[index].visible() ) Effect.Appear(dropMenu[index],{duration: 0.2});
			
			ee.menu.active = dropMenu[index];
			
			Event.stop(e);
		});

		Event.observe(it,'mouseout',function(e){
						
			if( !( Position.within(dropMenu[index],e.clientX,e.clientY) || Position.within(dropIt[index],e.clientX,e.clientY)) ){
				Effect.Fade(dropMenu[index],ee.menu.effectsConfig);
			}
			
		});
		
	})
	
});
