
$(document).ready(function () {
	//liste des boites utilitaires. Permet de cacher toutes les autres boites lorsqu'on en affiche une.
	/*
	 * Doit contenir la liste des tous les overlay chargï¿½es dans la page
	 * utiliser mqt.nadrox.registerUtilBoxes.push($("#mon-overlay"));
	 */
	mqt.nadrox = {};
	mqt.nadrox.registerUtilBoxes = [];
	
	
	mqt.nadrox.currentBox = "" ;
	mqt.nadrox.lastClickElement = null;
	
	mqt.nadrox.isIE6 = ( jQuery.browser.msie && jQuery.browser.version.charAt(0) == '6' );

	/*
	 * Ferme tous les overlays, optionnellemnt à l'exception de celui passé en paramêtre 
	 */
	mqt.nadrox.hideBoxes = function (boxToKeep){
		for (var i = 0; mqt.nadrox.registerUtilBoxes[i]; i ++ ){
			if ( boxToKeep ){
				if(mqt.nadrox.registerUtilBoxes[i].attr("id") != boxToKeep.attr("id")){
					mqt.nadrox.registerUtilBoxes[i].hide("fast");
				}
			}
			else{
				mqt.nadrox.registerUtilBoxes[i].hide("fast");
			}
		}
	};
	
	/*
	 * Fonction générique à tous les overlay. Afficher/Masquer un overlay 
	 * targetBox = overlay qui doit apparaitre
	 * item = élément sur lequel on a cliqué pour faire apparaitre l'overlay
	 */
	
	mqt.nadrox.toggleBox = function (targetBox, item, container, contextIsAbsolute, page_title_class){
	
			//fn-overlay-box-parent est l'élément qui sert à centrer la flêche de l'overlay. Il peut être l'item lui-mï¿½me
			var positionRef = (item.className.indexOf("fn-overlay-box-parent") == -1) ? $($(item).parent(".fn-overlay-box-parent")[0]) : $(item);
			var containerPosition = $(container).offset();
			var position = positionRef.offset();
			if(contextIsAbsolute)
				var left = position.left + positionRef.outerWidth() - containerPosition.left ;
			else
				var left = position.left + positionRef.outerWidth();

			//53 = la distance entre la flêche et le top de l'overlay
			var top = position.top- containerPosition.top - 53 + (positionRef.outerHeight() /2) ;
			targetBox.css("left", left);
			targetBox.css("top", top);
	
      if(page_title_class)
				targetBox.find('.title').attr('class', page_title_class+' title');
      else
				targetBox.find('.title').attr('class', 'title');
				
				
        //targetBox.find('.title').addClass(page_title_class);


			/*
			 * Comportement : 
			 * Si, dans une séquence, on clique sur le meme item, l'overlay alterne entre "show/hide"
			 * Si, dans une séquence,  on clique sur des items différents, mais lié au méme overlay, on le ferme instantanément et on le réouvre.
			 * Si on clique, dans une séquence, sur deux items différent lié à des overlay différents, on masque le premier en affichant le deuxième
			 */
			if ( mqt.nadrox.lastClickElement != item && mqt.nadrox.currentBox == targetBox.attr("id")){
				// si on ouvre un overlay deja ouvert, on doit le fermer instantanément avant de le réouvrir au bon endroit.
				targetBox.hide();
			}
			else{
				//Si on Affiche un overlay un différent, cacher tous les overlay à part celui en question
				mqt.nadrox.hideBoxes(targetBox);
			}

			/*
			 * On place l'id de l'item cliqué dans le champ input hidden du overlay, s'ils existent
			 */
			if($(item).attr("id")){
				targetBox.find("input.overlay-referer").val($(item).attr("id"));
			}
			
			targetBox.toggle("fast");
			
			mqt.nadrox.currentBox = targetBox.attr("id");
			mqt.nadrox.lastClickElement =  item;
	};
	
	
	
	
	/*
	 * Fermet les boites lorsqu'on clique ailleurs dans la page que sur un bouton d'action ou 
	 * l'overlay lui-même
	 */
	$("body").click(function(){
		mqt.nadrox.hideBoxes();
	});
	$(".overlay-box-wrapper").click(function(e){ e.stopPropagation();});
	
	/*
	 * Overlay ajouter un tag
	 */
	mqt.nadrox.registerUtilBoxes.push($("#add-tag-box"));
	//TODO: Gerer le click du bouton ok de l'overlay add-tag ici 
	$("#add-tag-box").find("button").click(function(){ $("#add-tag-box").hide("fast"); });
	$(".fn-add-tag-box").live('click',function(e){
		mqt.nadrox.toggleBox($("#add-tag-box"),this,"#page-content", true);
		e.preventDefault();
		e.stopPropagation();
	});
	
	/*
	 * Overlay Commenter
	 */
	mqt.nadrox.registerUtilBoxes.push($("#add-comment-box"));
	//TODO: Gerer le click du bouton ok de l'overlay add-comment ici 
	$("#add-comment-box").find("button").click(function(){ $("#add-comment-box").hide("fast"); });
	$(".fn-add-comment-box").live("click", function(e){
    var title_class = ($(this).attr('href') != '#') ? $(this).attr('href') : '';
		mqt.nadrox.toggleBox($("#add-comment-box"),this,"#page-content", true, title_class);
		e.preventDefault();
		e.stopPropagation();
	});

	/*
	 * Overlay share
	 */
	mqt.nadrox.registerUtilBoxes.push($("#add-share-box"));
	$(".fn-add-share-box").live("click", function(e){
		mqt.nadrox.toggleBox($("#add-share-box"),this,"#page-content", false);
		e.preventDefault();
		e.stopPropagation();
	});
	
	/*
	 * Overlay Login
	 */
	// mqt.nadrox.registerUtilBoxes.push($("#login-box-overlay"));
	//TODO: Gerer le click du bouton ok de l'overlay add-comment ici 
	//$("#login-box-overlay").find("button").click(function(){});
	/* $(".fn-login-box").click(function(e){
		mqt.nadrox.toggleBox($("#login-box-overlay"),this,".account-options", true);
		e.preventDefault();
		e.stopPropagation();
	}); */
	
	for (var i =0 ; mqt.nadrox.registerUtilBoxes[i]; i++){
		mqt.nadrox.registerUtilBoxes[i].find(".fn-close-overlay").click(function(e){
															e.preventDefault(); 
															mqt.nadrox.hideBoxes();
														});
		
	}
	/*
	 *  Ajoute un padding top pour centrer l'élément par rapport à sont parent 
	 *  fn-pad-top = element à padder
	 *  fn-pad-parent = element parent sur lequel baser les calculs
	 */
	$(".fn-pad-top").each(function(i,item){
		var parent = $(item).parent(".fn-pad-parent");
		var fullheight = (parent[0].offsetHeight - (parseInt($(item).css("margin-top"),10 )|| 0) - (parseInt($(item).css("margin-bottom"),10)|| 0) -  (parseInt($(item).css("border-top-width"),10 )|| 0) - (parseInt($(item).css("border-bottom-width"),10)|| 0) );
		var padHeight = parseInt((fullheight - item.offsetHeight )/2,10);
		$(item).css("padding-top", padHeight + "px" );		 
	});
	/* 
	 * Ajoute une propriété height équivalent à la hauteur du parent en pixel
	 *  fn-fill-height = element sur lequel spécifier la hauteur
	 *  line-wrapper = ligne dans laquel l'élement se retourve dans le page-content 
	 */
	/*$(".fn-fill-height").each(function(i,item){
		var parent = $(item).parent(".line-wrapper");
		
		if (mqt.nadrox.isIE6){
			//ie6 compte les bordures dans son height
			var style = (parent[0].offsetHeight - (parseInt($(item).css("margin-top"),10 ) || 0) - (parseInt($(item).css("margin-bottom"),10)|| 0)  ) + "px";
		}
		else{
			//les autre browser ajoute les bordure au height, il faut donc en tenir compte dans le calcul.
			var style = (parent[0].offsetHeight - (parseInt($(item).css("margin-top"),10 ) || 0) - (parseInt($(item).css("margin-bottom"),10)|| 0) -  (parseInt($(item).css("border-top-width"),10 ) || 0) - (parseInt($(item).css("border-bottom-width"),10) || 0) ) + "px";
		}
		$(item).css("height", style);		 
	});	*/
  
  var height_title_max_box = 0;
	$(".fn-fill-height").each(function(){
			if (jQuery(this).height()>height_title_max_box)	{	height_title_max_box = jQuery(this).height();	}
		});
		$(".fn-fill-height").each(function(){
			jQuery(this).height(parseInt(height_title_max_box)); jQuery(this).css("min-height",height_title_max_box+"px");
		});
	/*
	 * Simule height:100% sans que le parent css "height" ne soit défini 
	 */
	/*$(".fn-height-100").each(function(i,item){
		var parent = $(item).parents(".box-content");
		if(parent){
			$(this).css("height",parent[0].offsetHeight + "px" );
		}
	});*/
	
	/*
	 * Gestion des flèche play dans IE 6
	 */
	//if(mqt.nadrox.isIE6){
		$(".thumb").mouseover(function(){
			$(this).find(".play-arrow").css("opacity","1");
		});
			$(".thumb").mouseout(function(){
			$(this).find(".play-arrow").css("opacity","0.5");
		});
	//}
  
  $('#bt_advanced_search').click(function(){
   
      $('#advanced_search').slideUp();//css('display','none');
      $(this).hide();
    return false;
  });
	
  $('.as-show-hide h3').click(function(){
    var span_open = $(this).find('span.down-arrow');
    if(span_open.hasClass('right-arrow'))
    {
      span_open.removeClass('right-arrow');
      $('#advanced_search').slideDown();
      $('#bt_advanced_search').show();
    } 
    else    
    {
      span_open.addClass('right-arrow');
      $('#advanced_search').slideUp();
      $('#bt_advanced_search').hide();
    }
    return false;
  });
  
});
