// JavaScript Document


(function($){
   
   $.fn.Menu = function(){
	             
				var self1 = this;
                var temp = [];
				var obj = {};
				var count = 0;
				
				options = $.extend(this, { lista : temp, total : 0 });
	            
				$(this).children("a").each(function(k, elem) {	 				
					temp[k] = new $.menuinaction(elem, k, self1);
					count = k;
	            });
				
				obj.lista = temp;
                obj.total = count;
                $.extend(options, obj);
				
    },
  
	$.menuinaction = function(elementT, k, parentT) 
	{   
	        var self = this;

            var element = $(elementT);	
 			var items = [];
			var holder = element.prev();
			var ButAct = holder.find(".ButAct");
			var ButHover = holder.find(".ButHover");
			var rollMenu = holder.find(".RollMenuInside3");			
	
		    if(rollMenu != null){
				$("a#n2", rollMenu).each(function(k,elem){
				    
					if($(elem).next().attr('class') == 'RollMenuRef2') 
					{
											   
						items[k] = {};
						items[k].element = elem;
						items[k].subelement = $(elem).next();
						items[k].var1 = false;
						items[k].var2 = false;
										   
						 $(items[k].element).bind("mouseenter",function(){
							items[k].var1 = true;
							$(items[k].element).next().show();										 
						 });
						  
						 $(items[k].element)
						 .bind("mouseleave", function(){
						 //.mouseout(function(){
							 items[k].var1 = false;	
							 $(items[k].subelement).oneTime("20ms", "hide" + k, function() {
							// setTimeout(function(){
								 if(items[k].var2 == false){
									$(this).hide(); 
								 }
						     //}, 10);
							});
						 });
						 
						 
						 $(items[k].subelement)
						 .bind("mouseenter",function(){
							items[k].var2 = true;
							$(items[k].subelement).show();										 
						 });
						 
						 
						 $(items[k].subelement)
						 .bind("mouseleave", function(){
						  //.mouseout(function(){							
							items[k].var2 = false;
							$(items[k].subelement).oneTime("20ms", "subhide" + k, function() {
							// setTimeout(function(){
								 if(items[k].var1 == false){
									$(this).hide(); 
								 }
							// }, 10);	
							});
						 });
					 }
				});
				
			}
			     
			
			$.extend(this, {
					 
				   isCurrentBut : false,
				   
				   chIsCurrentBut : function(val){
				     self.isCurrentBut = val;
				   },
					 
					 
					var1:false, var2:false, var3:false, var4:false,
					 
				   startMouseenter : function(){
					   
					  element.bind("mouseenter", function(){
						  self.var4 = true;								  
						  self.activeMouseenter(true);
					  });
					  
					  element.bind("mouseleave", function(){
						  self.var4 = false;								  
					  });
					  
					  
					  ///////////////////////////////////////////////////////
				
					  
					  ButAct.mouseover(function(){
					  //.bind("mouseenter", function(){
						  self.var2 = true;
						  if(self.var3 == true){
					           self.activeMouseenter(true);
						  }
					  });
					  
					
					  ButAct.mouseout(function(){
					 // .bind("mouseleave", function(){
						  self.var2 = false;	
						  self.var3 = true;
					  });
					  ////////////////////////////////////////////////////////////////////////
					  
					  
					  ButHover.bind("mouseenter", function(){					    
						  self.var1 = true;
						  self.var2 = false;
						  ButAct.hide();
					  });
					  
					 
					  //.mouseout(function(){
					  ButHover.bind("mouseleave", function(){
												   
						  self.var1 = false;
						  self.var3 = false;
						  ButHover.oneTime("300ms", function() {
						     //setTimeout(function(){
							    self.var3 = true;
						     //}, 1000);
						  });
						  self.hide2();
						  
					  }).click(function(){
						  
						 document.location.href = element.attr('href'); 
						 
					  }); 
					  
				   },
				   /////////////////////////////////////////////////////////////////////////////
				   hide2 : function(){
					   
					   // self.var3 = true;
						
						// if(self.var2 == false && self.var1 == false && self.var4 == false){
					    
								if(self.isCurrentBut){ 
									  
									  //if(self.var2 == false && self.var1 == false && self.var4 == false){					
											
											 ButHover.hide();
											 holder.show();
											 ButAct.show();
											 
									 // }
								  
								}else{
									  holder.hide();
									  ButAct.hide();
									  ButHover.hide();
								}
						
						// }
				   },
	
				   activeMouseenter : function(andthis){ 
					    holder.show();
						ButHover.show();
					    ButAct.hide();
						self.var2 = false;
						if(andthis){
							 for(var no=0; no<parentT.total; no++){
								 if(no != k){ 
									 parentT.lista[no].hindeButHover();
								 }
							 }
						 }
					},
										
					hindeButHover : function(){
						  ButHover.hide();
						  if(self.isCurrentBut){ 
							  holder.show();
							  ButAct.show();
						  }else{
							  holder.hide();
							  ButAct.hide();
						  }					
					}
					
	
					
		   });
			
			
			
			
			if(element.hasClass("vCurrent")){
				self.startMouseenter();
				self.chIsCurrentBut(true);
				self.hindeButHover(true);
			}else{
				self.startMouseenter();
			}
			
			//window.setInterval(function(){ self.hide2(); },70)

	  
	}

})(jQuery);