(function ($) {
	$(document).ready(function(){
// This will create the mega drop down menu		
	    function megaHoverOver(){
		    $(this).find(".sub").stop().fadeTo('fast', 1).show();
    		
		    //Calculate width of all ul's
			    jQuery.fn.calcSubWidth = function() {
				    rowWidth = 0;
				    //Calculate row
				    
				    if ( ($(this).find("p")) && ( (($(this).find("ul").length) <= 2) && (($(this).find("p").length) != 0) ) ) { // If a paragraph is there and less then 2 ul
				        rowWidth += 255;
				    } else {
				        $(this).find("ul").each(function() {					
					        rowWidth += $(this).width(); 
				        });
				    }
			    };
    		
		    if ( $(this).find(".row").length > 0 ) { //If row exists...
			    var biggestRow = 0;	
			    //Calculate each row
			    $(this).find(".row").each(function() {							   
				    $(this).calcSubWidth();
				    //Find biggest row
				    if(rowWidth > biggestRow) {
					    biggestRow = rowWidth;
				    }
			    });
			    //Set width
			    $(this).find(".sub").css({'width' :biggestRow});
			    $(this).find(".row:last").css({'margin':'0'});
    			
		    } else { //If row does not exist...
    			
			    $(this).calcSubWidth();
			    //Set Width
			    $(this).find(".sub").css({'width' : rowWidth});
    			
		    }
                var DropPosition = (($(this).find(".sub").offset() !== null) ? $(this).find(".sub").offset().left : 0) + $(this).find(".sub").outerWidth() - $("body").innerWidth();    	        
    	    
    	        //console.log('right is '+ DropPosition);
    	        //alert(DropPosition);
    	    if (DropPosition >= 0) {
    	        $(this).find(".sub").css('right', DropPosition);
    	    }   	    
	    }
    	
	    function megaHoverOut(){ 
	      $(this).find(".sub").stop().fadeTo('fast', 0, function() {
		      $(this).hide();
	      });
	    }


	    var config = {    
		     sensitivity: 2, // number = sensitivity threshold (must be 1 or higher)    
		     interval: 100, // number = milliseconds for onMouseOver polling interval    
		     over: megaHoverOver, // function = onMouseOver callback (REQUIRED)    
		     timeout: 500, // number = milliseconds delay before onMouseOut    
		     out: megaHoverOut // function = onMouseOut callback (REQUIRED)    
	    };

	    $("ul#Nav li .sub").css({'opacity':'0'});
	    $("ul#Nav li").hoverIntent(config);
	});	
})(jQuery);





