function browse_select(to_select)
{
	// On affiche la selection, et on cache l'autre option
	if(to_select=="familles")
	{
		// Prévision de création si pas encore fait
		if($("#sidetree").attr("ready")!="ok")
		{
			treeview_ajax_load(to_select); // Chargement du treeview à la demande
		}
		// Puis affichage
		$("#sidetree").show(); // On affiche l'arborescence choisie
		$("#sidetree1").hide(); // on cache l'autre
		$("#sidetreecontrol1").hide(); // On cache l'autre menu
		$("#sidetreecontrol").show(); // On affiche le menu
		$("#browse_selection a").filter(":nth-child(1)").css("color","#d45500"); // "Famille" en orange
		$("#browse_selection a").filter(":nth-child(2)").css("color","#003399"); // "Catalogue" en bleu
	}
	else if(to_select=="constructeurs")
	{
		// Prévision de création si pas encore fait
		if($("#sidetree1").attr("ready")!="ok")
		{
			treeview_ajax_load(to_select); // Chargement du treeview à la demande
		}
		// Puis affichage
		$("#sidetree").hide(); // on cache l'autre
		$("#sidetree1").show(); // On affiche l'arborescence choisie
		$("#sidetreecontrol").hide(); // On cache l'autre menu
		$("#sidetreecontrol1").show(); // On affiche le menu
		$("#browse_selection a").filter(":nth-child(2)").css("color","#d45500"); // "Catalogue" en orange
		$("#browse_selection a").filter(":nth-child(1)").css("color","#003399"); // "Famille" en bleu
	}
}

function treeview_ajax_load(tree)
{
	var sidetree;
	if(tree=="constructeurs") // Chargement de la valeur de base
	{
		tree="tree1";
		sidetree="sidetreecontrol1";
	}
	else if(tree=="familles")
	{
		tree="tree";
		sidetree="sidetreecontrol";
	}
	
	if($("#corps_catalogue").length==1) // Nous sommes sur la page catalogue
	{	
		// Changement du header des treeviews
		if($("#treehead a").attr("href")!="javascript:;")
		{
			$("#treehead a").attr("href","javascript:;");
			$("#treehead a").click(function (){
				// Chargement du sidetree
				var sidetree = "" ;
				if($("#sidetree").css("display")=="none")
				{
					sidetree = "sidetreecontrol1";
				}
				else sidetree = "sidetreecontrol";
				
				// On retire toutes les couleurs
				$("#tree a").css("color","");
				$("#tree a").addClass("tree_close");
				$("#tree1 a").css("color","");
				$("#tree1 a").addClass("tree_close");
				
				$("#"+sidetree+" a:eq(0)").click();
	
				// On recharge la page par défaut
				load_catalogue("catalogue_ajax_load.php?trifamille=default&triconstructeur=default");
			});
		}
		
		// Chargement des liens <a>
		var all_links = $("#"+tree+" a");
		var size = all_links.length;
		var element;
		var href;
	
		var i=0;
		
		// Parcours de la liste
		while(i<size)
		{
			// On charge un élément
			element = all_links.filter(":eq("+i+")");
			href = element.attr("href");
			
			// On change les liens
			element.attr("href","javascript:;");
			element.attr("ref",href);
			
			// On lie le clic à une fonction
			element.click(function () {
				// Chargement
				
				var sidetree = "" ;
				var tree = "";
				if($("#sidetree").css("display")=="none")
				{
					tree = "tree1";
					sidetree = "sidetreecontrol1";
				}
				else
				{
					tree = "tree";
					sidetree = "sidetreecontrol";
				}
			
				// On demande ajoute la classe "tree_close" à tous les liens <a>
				$("#"+tree+" a").css("color","");
				$("#"+tree+" a").addClass("tree_close");
				
				// On retire la classe à l'élément actuel
				$(this).removeClass("tree_close");
				$(this).css("color","#d45500");
			
				// On retire la classe au parent de l'élément actuel, s'il existe
				var totest = $(this).parent().parent().parent().prev();
				if(totest.hasClass("folder"))
				{
					totest.find("a").removeClass("tree_close");
					totest.find("a").css("color","#d45500");
				}
				// On retire la classe au parent du parent de l'élément actuel, s'il existe
				totest = $(this).parent().parent().parent().parent().parent().prev();
				if(totest.hasClass("folder"))
				{
					totest.find("a").removeClass("tree_close");
					totest.find("a").css("color","#d45500");
				}
			
				totest = $("#"+tree+" span");
				var i=0;
				var span;
				while(i<totest.length)
				{
					// Parcours des <a>
					span = totest.filter(":eq("+i+")");
					if(span.find("a").hasClass("tree_close"))
					{
						// Doit être fermé
						if(span.next().css("display")!="none")
						{
							span.click(); // On simule un clic de l'utilisateur sur le <span>
						}
					}
					else
					{
						// Doit être ouvert
						if(span.next().css("display")=="none" && span.next().is("ul"))
						{
							span.click(); // On simule un clic de l'utilisateur sur le <span>
						}
					}
					i++;
				}
				// On ferme l'autre tree
				if(tree=="tree")
				{
					$("#tree1 a").css("color","");
					$("#tree1 a").addClass("tree_close");
				}
				else if(tree="tree1")
				{
					$("#tree a").css("color","");
					$("#tree a").addClass("tree_close");
				}
				
				// On prépare le chargement dans la div corps_catalogue
				var href = $(this).attr("ref");
				var reg= new RegExp("(catalogue)", "g");
				var link = href.replace(reg,"catalogue_ajax_load");
				//window.setTimeout(load_catalogue, 500, link); // On execute après 500ms pour éviter les sacades
				load_catalogue(link);
			});
			i++;
		}
	}
	
	// Chargement du javascript du treeview
	
	$("#side"+tree).attr("ready","ok");
	$("#side"+tree).scroll();
	$("#"+tree).treeview({
		collapsed: true,
		animated: "medium",
		control:"#"+sidetree
	});
}

function load_catalogue(link)
{
	while(has_space(link)) link = link.replace(" ","+"); // Remplacement des espaces en '+'
	
	var ppp = document.getElementById("ppp");
	var index = ppp.selectedIndex; // Valeur courante du menu déroulant de produits par page
	if(index==0) index=10; // Vérification
	else if(index==1) index=20;
	else if(index==2) index=50;
	else if(index==3) index=100;	
	
	var add_ppp = "&ppp="+index; // Préparation du ppp courant
	
	$("#ajax_loader").show(0,function (){
		$("#corps_catalogue").load(link+add_ppp, function (){ // Chargement ajax du lien
			$("#ajax_loader").hide();
		}); 
		$("#corps_catalogue").attr("ref",link); // Indication pour on_ppp_changed
	});
}

function has_space(str)
{
	var i=0;
	while(i<str.length)
	{
		if(str.charAt(i)==' ') return 1; // Il existe un espace, on retourne 1
		i++;
	}
	return 0; // Pas d'espace, on retourne 0
}

function on_ppp_changed() // Lorsque le menu déroulant de produits par page est changé
{
	var link = $("#corps_catalogue").attr("ref"); // Ref actuel des produits affichés
	if(typeof(link)=="undefined") // S'il n'existe pas
	{
		var page = document.location; // On recherche la page actuellement affichée
		link = " "+page; // Transformation en chaine visiblement nécessaire
		var test = link.split("?");
		link = "catalogue_ajax_load.php?" + test[1]; // Changement du lien en catalogue_ajax_load
	}
	
	load_catalogue(link); // On charge le lien demandé ou retrouvé
}

