/*
	Source:	vmMenu
	Version: 1.05
	Description: A jQuery Menu plugin
	Author:	VietMetaPRO
	Email: pnn@vietmeta.com
	Company: VIETMETA Co.,Ltd
*/
(function($){  

    $.fn.vmMenu = function(vars) {       
        
        var element					= this;
        var timeOut					= (vars.timeOut != undefined) ? vars.timeOut : 500;
		var oldsub					= null;
		var needCloseSub2			= true;
		var openAllSub				= (vars.openAllSub != undefined) ? vars.openAllSub : false;
		var openAllSubIfNoPage		= (vars.openAllSubIfNoPage != undefined) ? vars.openAllSubIfNoPage : false;

		var menu					= $("#" + element[0].id);

		var closeSub2 = function() {
			if (needCloseSub2) {
				menu.find("li ul li ul").slideUp(1);
			}
		}

		menu.find("li ul").slideUp(1);
		menu.find("li ul li a.sub").parent().css({'position':'relative','top':'0'});
		menu.find("li ul li a.sub ul li").css({'position':'absolute','top':'0','left':'93%'});

		if (((menu.find("li ul li a.sel").html()==null) && (openAllSubIfNoPage)) || (openAllSub)){
			menu.find("li ul li a.sub").parent().parent().slideDown(timeOut/5);
		}

		menu.find("li ul li a.sel").parent().parent().slideDown(timeOut/5); //open the sub and sub2 that selected
		var parentOfSub2 = menu.find("li ul li ul li a.sel").parent().parent().parent();
		parentOfSub2.parent().slideDown(timeOut/5); //open the parent of sub2 selected
		parentOfSub2.find("a.sub").addClass("sel");

		
		menu.find("li a.top").click(function() {
			menu.find("li a.top").removeClass('sel');
			$(this).addClass('sel');
			var sub = $(this).parent().find("ul li a.sub").parent().parent();
			if (sub.html() != '') {
				if (oldsub != null)	{
					//oldsub.slideUp(timeOut/5, function(){ 
					//	sub.slideDown(timeOut); 
					//});
					oldsub.slideUp(timeOut);
					sub.slideDown(timeOut);
				} else {
					menu.find("li ul li a.sel").parent().parent().slideUp(timeOut);
					sub.slideDown(timeOut);
				}
				oldsub = sub;
				return false;
			}
		});
		menu.find("li ul li a.sub").mouseover(function() {
			needCloseSub2 = false;
			var sub2 = $(this).parent().find("ul");
			if (sub2.html() != '') {
				menu.find("li ul li ul").slideUp(1, function(){ 
					sub2.slideDown(1); 
				});
				return false;
			}
		}).mouseout(function() {
			timeSub2Close = setTimeout(closeSub2, 200);
			needCloseSub2 = true;
		});
		
		menu.find("li ul li ul").mouseover(function() {
			//$(this).parent().parent().parent().parent().addClass('highlight');
			clearTimeout(timeSub2Close);
			needCloseSub2 = false;
		}).mouseout(function() {
			//$(this).parent().parent().parent().parent().removeClass('highlight');
			timeSub2Close = setTimeout(closeSub2, 200);
			needCloseSub2 = true;
		});

		menu.find("li ul li ul li a").mouseover(function() {
			$(this).parent().parent().parent().find("a.sub").addClass('sel');
			//$(this).parent().parent().parent().parent().addClass('highlight');
			clearTimeout(timeSub2Close);
			needCloseSub2 = false;
		}).mouseout(function() {
			$(this).parent().parent().parent().find("a.sub").removeClass('sel');
			//$(this).parent().parent().parent().parent().removeClass('highlight');
			timeSub2Close = setTimeout(closeSub2, 200);
			needCloseSub2 = true;
		});
    };

})(jQuery);  
