//выпадающее меню
$.fn.menu = function(a) {
	var menu=$(this);
	var menu_item_mouse;
	var coords = new Array();
	var menu_onmouse=false;
	var menu_block=a.menu_block;
	var items=$(menu).find('.item');	
	var subitem_all=$(items).parent().find('.subitem');	
	var subitem=null;	
	var index_item;	
	var prew_item;

	if (a.menu_item_mouse) menu_item_mouse=a.menu_item_mouse;	

	$(items).mouseover(function(){
		
		index_item=$(items).index(this);
		
		// координаты главных пунктов
		coords['x11']=$(this).offset().left;
		coords['y11']=$(this).offset().top;
		coords['x22']=coords['x11']+$(this).width();
		coords['y22']=coords['y11']+$(this).height();
		
		if ($(this).parent().find('.subitem').html()!=null)
		{
			subitem=$(this).parent().find('.subitem');
			$(subitem).fadeIn('fast');
			// координаты доп пунктов
			coords['sub_x11']=$(subitem).offset().left;
			coords['sub_y11']=$(subitem).offset().top;
			coords['sub_x22']=coords['sub_x11']+$(subitem).width();
			coords['sub_y22']=coords['sub_y11']+$(subitem).height();
			
		}
		else subitem=null;
		
		menu_onmouse=true;
		
		
	});

	$(document).mousemove(function(e){
		if (menu_onmouse==true)
		{
			if (!e) e = window.event;  
			if (e.pageX || e.pageY)  
			{  
				x = e.pageX;  
				y = e.pageY;  
			}  
			else if (e.clientX || e.clientY)  
			{  
				x = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;  
				y = e.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop;  
			}  
			if ((((x>=coords['x11']) && (x<=coords['x22'])) && ((y>=coords['y11']) && (y<=coords['y22']))) || (((x>=coords['sub_x11']) && (x<=coords['sub_x22'])) && ((y>=coords['sub_y11']) && (y<=coords['sub_y22']))))
			{
					
					$(subitem_all).each(function(i,elem){
						if (subitem)
						{
							index_subitem=$(subitem_all).index(subitem);
							if (index_subitem!=i)
							{
								$(elem).fadeOut('fast');
							}
						}
						else
						{
							$(elem).fadeOut('fast');
						}
					});
				
				
				if (menu_item_mouse)
				{
					$(menu_item_mouse).each(function(i,elem){
						if ($(elem).attr('class')!='active')
						{
							if (index_item!=i)
							{
								$(elem).attr('class','');
							}
							else
							{
								$(elem).attr('class','hover');
							}
						}
					});
				}
			}
			else
			{
				$(subitem_all).fadeOut('fast');
				menu_onmouse=false;
				subitem=null;
				if (menu_item_mouse)
				{
					elem=$(menu_item_mouse).eq(index_item);
					if ($(elem).attr('class')!='active')
					{
						$(elem).attr('class','');
					}
				}
			}
		}
	});
}
