(function($){	
	$.fn.sitemap = function(options){           //définir une fonction		
	
		var defaults = {
				toggleSwitch : true,
				hideAll : true,
				labels : new Array("Afficher le sous-niveau","Masquer le sous-niveau","Tout afficher","Tout masquer")
			};
		var options = $.extend(defaults, options);   //fusionner les options
		
		return this.each(function() {
								  
			var wrap = $(this);
			var allTitles = wrap.find('li:has(ul)'); 			
			var labels = options.labels;
			
			var fnToggleSwitch = function(){	
				var allSubMenus = allTitles.find('ul');
				var txtToggle = '';	
				
				if( options.hideAll ) {
					txtToggle = '<p id="toggle"><a href="" class="hide-all">'+labels[2]+'</a></p>';
				}else {
					txtToggle = '<p id="toggle"><a href="" class="">'+labels[3]+'</a></p>';
				}				
				
				wrap.prepend(txtToggle);
				
				$('p#toggle a').click(function(){
					if( $(this).hasClass('hide-all') ) {
						$(this).toggleClass("hide-all").text(labels[3]);
						allSubMenus.css("display","block");
						$('a.open-close').addClass("off").find("span").text('[' + labels[1] + ']');
					}else {						
						$('a.open-close').removeClass("off").find("span").text('[' + labels[0] + ']');
						allSubMenus.css("display","none");
						$(this).toggleClass("hide-all").text(labels[2]);
					}
					$(this).blur();
					return false;
				});
			};					
					
			allTitles.each(function(){
									
				var txt = '';
				var li = $(this);
				var sousUL = li.find("ul:first");
				var titre = li.find("a:first");
				li.addClass("hasMenu");
				titre.addClass("title");
				if( options.hideAll ) {
					txt='<a class="open-close" title="'+labels[0]+'" href="javascript:;"><span class="fx">['+labels[0]+']</span></a> ';	
					sousUL.css("display","none");				
				}else {
				txt='<a class="open-close off" title="'+labels[1]+'" href="javascript:;"><span class="fx">['+labels[1]+']</span></a> ';	
					sousUL.css("display","block");				
				}	
				
				li.prepend(txt);
				
				li.find("a.open-close:first").click(function(){
					var a = $(this);
					a.blur();
					sousUL.slideToggle(500,function(){
						if( $(this).is(':visible') ) {
							a.addClass("off").find("span").text('[' + labels[1] + ']');
						}else {
							a.removeClass("off").find("span").text('[' + labels[0] + ']');
						}
						return false;
					});
					return false;
				});
				
			}); //fin allTitles.each
			
			if( options.toggleSwitch ) {
				fnToggleSwitch();
			}				

		}); //fin this.each
		
	}; // fin sitemap		
})(jQuery);

jQuery(document).ready(function($){
								
	if( $("#sitemap").length > 0) {	
		//si autre langage en anglais : passer en parametre une table pour labels
    $("#sitemap").addClass("planactive");			
		if( $("html").attr("lang") == "en" ) {
			var tab = new Array("Display sublevel","Hide sublevel","Display all","Hide all");
			$("#sitemap").sitemap({labels : tab});			
		}else {
			//par defaut : les labels en francais
			$("#sitemap").sitemap();			
		}			
	}	
	
});
