(jQuery.noConflict())(function($) {

	var badBrowser = (/MSIE ((5\.5)|6)/.test(navigator.userAgent) && navigator.platform == "Win32");
	
	/*************************************/
	/*** CODE POUR AFFICHAGE SLIDEDOWN ***/
	/*************************************/
	$("#toggleReadmore").click(function(){
		var elem = $("#read-more");
		if (elem.is(":hidden")) {
			elem.slideDown("slow");
		} else {
			elem.slideUp("fast");
		}
		
		return false;
	});
	/*************************************/
	/***         FIN SLIDEDOWN         ***/
	/*************************************/
	
	/*** MENU ***/
    $("ul.menu").supersubs({ 
        minWidth:    15,                                // minimum width of sub-menus in em units 
        maxWidth:    20,                                // maximum width of sub-menus in em units 
        extraWidth:  0                                  // extra width can ensure lines don't sometimes turn over 
                                                        // due to slight rounding differences and font-family 
    }).superfish({ 
        delay:       400,                               // delay on mouseout 
        animation:   {opacity:'show',height:'show'},    // fade-in and slide-down animation 
        speed:       'fast',                            // faster animation speed 
        autoArrows:  false,                             // disable generation of arrow mark-up 
        dropShadows: false                              // disable drop shadows 
    })
	
	/*** MENU POSITION RIGHT ***/
    //Verify position of each sub-menus
    $("ul.menu ul").each(function(){

    	//get container position and width to calculate maximum value from left of the screen
    	var containerWidth = $("#menu").width();
    	var containerLeft = $("#menu").offset().left + parseInt($("#menu").css("padding-left"), 10) + 
    		parseInt($("#menu").css("margin-left"), 10) + parseInt($("#menu").css("borderLeftWidth"), 10); 
    	var max_left = containerWidth + containerLeft;
    	
    	//element must be visible to get position and size
    	var parent = $(this).parent().parent(); //get ul parent
    	var parent_visible = parent.is(':visible');
    	if(!parent_visible) //third level
    	{
    		parent.show();
    	}
    	var is_visible = $(this).is(':visible');
    	if(!is_visible)
    	{
    		$(this).show();
    	}

    	var elemEndPos = $(this).width() + $(this).offset().left;
    	var newLeft = 0;
    	if((elemEndPos > max_left) || parent.hasClass("revertedDisplay"))
    	{
        	var totalWidth = $(this).width();
    		totalWidth += parseInt($(this).css("padding-left"), 10) + parseInt($(this).css("padding-right"), 10); //Total Padding Width
    		totalWidth += parseInt($(this).css("margin-left"), 10) + parseInt($(this).css("margin-right"), 10); //Total Margin Width
    		totalWidth += parseInt($(this).css("borderLeftWidth"), 10) + parseInt($(this).css("borderRightWidth"), 10); //Total Border Width
    		
    		//calculate and set new left value
    		if(!parent_visible) //third level
    		{
    			//revertedDisplay is only used on second level.
    			if(!parent.hasClass("revertedDisplay")) //if parent not already reverted
    			{
    				//revert parent
    				parent.addClass("revertedDisplay");
    				
    				var parentTotalWidth = parent.width();
    				parentTotalWidth += parseInt(parent.css("padding-left"), 10) + parseInt(parent.css("padding-right"), 10); //Total Padding Width
    				parentTotalWidth += parseInt(parent.css("margin-left"), 10) + parseInt(parent.css("margin-right"), 10); //Total Margin Width
    				parentTotalWidth += parseInt(parent.css("borderLeftWidth"), 10) + parseInt(parent.css("borderRightWidth"), 10); //Total Border Width
        			var parentNewLeft = -parentTotalWidth + parent.parent().width();
        			
    				parent.css("left", parentNewLeft);
    			}
    			$(this).addClass("revertedDisplay");
    			
    			newLeft = -totalWidth;
    		}
    		else //second level
    		{
    			$(this).addClass("revertedDisplay");
    			newLeft = -totalWidth + $(this).parent().width(); 
    		}
    		$(this).css("left", newLeft);
    	}

    	if(!is_visible)
    	{
    		$(this).hide();
    	}
    	if(!parent_visible)
    	{
    		parent.hide();
    	}
    });
	
});
