
(jQuery.noConflict())(function($){
	//quick fix for fancybox in quiz 1024
	if($(window).width() < 1000)
	{
		$("a.image-popup").addClass("notfancy").attr('target', '_blank');
	}
	
	//detect IE5 - 6
	var badBrowser = (/MSIE ((5\.5)|6)/.test(navigator.userAgent) && navigator.platform == "Win32");
	var IE7 = (/MSIE (7)/.test(navigator.userAgent) && navigator.platform == "Win32");
	var IE8 = (/MSIE (8)/.test(navigator.userAgent) && navigator.platform == "Win32");
	
	/*** UNIFORM ***/
	$("select").uniform();
	
	/*** CUFON ***/
	Cufon.replace('.hdv, h2.no-effects, .quizContainer .questionTitle', { fontFamily: 'HDVComic' });
	Cufon.replace('.tab-selector-buttons', { fontFamily: 'HDVComic', hover: true });
	
	/*** UL/LI ***/
	$("ul > li:last-child").addClass("last");
	$("ul > li:first-child").addClass("first");
	
	/*** 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 = $("#header").width();
    	var containerLeft = $("#header").offset().left + parseInt($("#header").css("padding-left"), 10) + 
    		parseInt($("#header").css("margin-left"), 10) + parseInt($("#header").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();
    	}
    });
    
	/*** SUB-MENU ARROW ***/
	$("#access ul.menu > li > ul.sub-menu > li > ul").each(function(){
		$(this).parent().children("a").addClass("havesub");
	});
	
	/*** POSITION LOGIN BOX ***/
	function positionLoginBox(){
		var showed = false;
		if(!$("#login-box").is(':visible'))
		{
			$("#login-box").show();
			showed = true;
		}
		var l_left = ($("#header").width() + $("#header").offset().left) - $("#login-box").width();
		$("#login-box").css({'left': l_left+'px', 'position': 'absolute'});
		$("#login-wait").css({'left': l_left+'px', 'position': 'absolute'});
		if(showed)
		{
			$("#login-box").hide();
		}
	}
	positionLoginBox();
	$(window).resize(function(){
		positionLoginBox();
	});
	
	$("#login-wait").hide();
	$("#login-box").hide();
	$("#show-login-box").click(function(){
		$("#login-wait").hide();
		if($("#login-box").css('display') == 'none')
		{
			$("#login-box").stop().css({'display': 'block', 'height': '0px'}).animate({'height':'145px'},{queue:false,duration:300});
			
			$("#l-username").focus();
		}
		else
		{
			$("#login-box").slideUp(500);
		}

		return false;
	});
	
	
	/*** TAB SELECTORS ***/
	$(".tab-selector-buttons a").click(function(){
		var tab = $(this).attr("name");
		$(this).parent().find("a").removeClass("selected");
		$(this).addClass("selected");
		
		var item_to_display;
		var item_to_hide;
		$(this).parent().next().find("ul").find("li").each(function(){
			if($(this).hasClass("selected"))
			{
				item_to_hide = $(this);
			}
			if($(this).hasClass(tab))
			{
				item_to_display = $(this);
			}
		});
		

		if(!(item_to_hide.hasClass(tab) && item_to_display.hasClass(tab)))
		{
			item_to_hide.animate({'height': item_to_display.height()+'px'}, 175, function(){
				$(this).css({'display': 'none', 'height': 'auto'}).removeClass("selected");
				item_to_display.css({'display': 'block', 'height': 'auto'}).addClass("selected");
			}).fadeOut(175);
		}
		
		return false;
	});
	
	/*** hover on black button (easyer) ***/
	$(".black-button").hover(function(){
			$(this).addClass('black-button-hover');
		}, function(){
			$(this).removeClass('black-button-hover');
		}
	);
	
	$('a[href=#respond]').click(function() {
		if($(this.hash).is(":visible"))
		{
			$(this.hash).slideUp();
		}
		else
		{
			$(this.hash).slideDown();
			if(($(this.hash).offset().top + 30) > ($(window).scrollTop() + $(window).height()))
			{
				var targetOffset = $(this.hash).offset().top - 30;
				$('html,body').animate({'scrollTop': targetOffset+'px'}, 1000);
			}
		}
		return false;
	});
	
	$("a.comment_read_more").click(function(e){
		if($(this).parent().find('.comment_excerpt').is(':visible'))
		{
			$(this).parent().find('.comment_excerpt').fadeOut();
			$(this).parent().find('.comment_content').slideDown();
			$(this).html('Cacher -');
		}
		else
		{
			$(this).parent().find('.comment_content').slideUp();
			$(this).parent().find('.comment_excerpt').fadeIn();
			$(this).html('Lire la suite +');
		}
		return false;
	});
	
});

/**
 * Function used to autofill a field with a default value and put back this value whan field is empty
 * 
 * @param id element id
 * @param v element value
 */
function autoFill(id, v){
	jQuery(id).attr({ value: v }).focus(function(){
		if(jQuery(this).val()==v){
			jQuery(this).val("");
		}
	}).blur(function(){
		if(jQuery(this).val()==""){
			jQuery(this).val(v);
		}
	});
}




