
// function getSearchAsArray (my_string_in) 
	// The getSearchAsArray(string) function is used to convert any number of name/value pairs
	// passed in the search string (in traditional format of
	// name1=value1&name2=value2&etc.) into an associative array whose indexes are the names
	// (making it easier for scripts to extract a specific piece of passed data).
	// similaire à parse_str de php
// function FormStringfromArray (my_array) 
	// The FormStringfromArray (my_array) est exactement la fonction inverse de
	// getSearchAsArray(string).
	// Elle transforme un tableau de forme associative en une chaîne de caractère à
	// passer en appel d'une url (param1 = value1 & param2 = value2 & ..)
// function Form_crit (basic_crit,my_cont_array) 
	// cette fonction permet de prendre les paramètres reçus dans le tableau passé
	// en paramètre, de les combiner avec les paramètres actuels de la page et de
	// former l'url pour segreap
	// si le paramètre "clean" fait partie des paramètres, alors, avant toute chose,
	// il faut neutraliser ts les paramètres de tri
// function update_page (my_criteria, crit_string)
	// cette fonction reçoit la liste des paramètres à changer, et forme une url de
	// type segreap (ou print_p si impression = true) et demande la mise à jour de
	// la page, sur la base de cette url
	// cette fonction est supposée être appelée dans une lien href : ><a href=""
	// onclick="update_page(my_crit,'cb=sablons(1)')">
// function update_page_arch (my_criteria, crit_string)
	// cette fonction reçoit la liste des paramètres à changer, et forme une url de
	// type segarch (ou print_a si impression = true) et demande la mise à jour de
	// la page, sur la base de cette url
	// cette fonction est supposée être appelée dans une lien href : ><a href=""
	// onclick="update_page_arch(my_crit,'arch=seguin')">
// function update_page_cpg (my_criteria, crit_string)
	// cette fonction reçoit la liste des paramètres à changer, et forme une url de
	// type segarch (ou print_a si impression = true) et demande la mise à jour de
	// la page, sur la base de cette url
	// cette fonction est supposée être appelée dans une lien href : ><a href=""
	// onclick="update_page_cpg(my_crit,'cpg=sablons(1)')">
// function update_page_prj (my_criteria, crit_string)
	// cette fonction reçoit la liste des paramètres à changer, et forme une url de
	// type segreae (ou print_a si impression = true) et demande la mise à jour de
	// la page, sur la base de cette url
	// cette fonction est supposée être appelée dans une lien href : ><a href=""
	// onclick="update_page_prj(my_crit,'prj=sablons(1)')">
// function update_current_page (my_criteria, crit_string)
	// cette fonction reçoit la liste des paramètres à changer, et active la mise à jour les deux frames courants(select et principal) 
	// cette fonction est supposée être appelée dans une lien href : ><a href=""
	// onclick="update_current_page(my_crit,'cb=sablons(1)')">
// function update_to_dynamic (my_criteria, crit_string)
	//cette fonction active le mode dynamique de présentation des ouvrages
	//elle reçoit la liste des paramètres à changer, et active l'appel de segreapc du frame principal et la mise à jour la mise à jour du frame (select et principal) 
	//cette fonction est supposée être appelée dans une lien href : ><a href=""
	//onclick="update_to_dynamic(my_crit,'cb=sablons(1)')">

// function getSearchAsArray (my_string_in) 
// The getSearchAsArray(string) function is used to convert any number of name/value pairs
// passed in the search string (in traditional format of
// name1=value1&name2=value2&etc.) into an associative array whose indexes are the names
// (making it easier for scripts to extract a specific piece of passed data).
// similaire à parse_str de php
function getSearchAsArray (my_string_in) 
{
	var srchArray = my_string_in.split('&');
	var tempArray = new Array();
	var array_results = new Array();
	for (var i = 0; i < srchArray.length; i++) 
	{
	tempArray = srchArray[i].split('=');
	array_results[tempArray[0]] = tempArray[1];
	}
	
return array_results;
}

// The FormStringfromArray (my_array) est exactement la fonction inverse de
// getSearchAsArray(string).
// Elle transforme un tableau de forme associative en une chaîne de caractère à
// passer en appel d'une url (param1 = value1 & param2 = value2 & ..)
function FormStringfromArray (my_array) 
{
	var my_string = new String();
	for (var my_element in my_array) 
	{
		my_truc = my_array[my_element];
		if (typeof my_truc != "string") {
			my_truc = my_array[my_element].toString();
			}
		my_string = my_string + my_element + '=' + my_truc +'&';
	}	
return my_string;
}
// :my_crit = combine (my_cont_array,my_crit);

// cette fonction permet de prendre les paramètres reçus dans le tableau passé
// en paramètre, de les combiner avec les paramètres actuels de la page et de
// former l'url pour segreap
// si le paramètre "clean" fait partie des paramètres, alors, avant toute chose,
// il faut neutraliser ts les paramètres de tri
function Form_crit (basic_crit,my_cont_array) 
{
	var tempo_crit = new Array();
	var clean = false;
	if(my_cont_array['clean']==1)
		{
		clean = true;
		}
	if (clean==false) 
		{
		tempo_crit = basic_crit; // On prend ts les paramètres initiaux
		}
	for (var my_element in my_cont_array) 
	{
		tempo_crit[my_element] = my_cont_array[my_element];// On modifie les
															// seuls éléments
															// transmis dans le
															// tableau
															// my_cont_array
	}	
return tempo_crit;
}

// cette fonction reçoit la liste des paramètres à changer, et forme une url de
// type segreap (ou print_p si impression = true) et demande la mise à jour de
// la page, sur la base de cette url
// cette fonction est supposée être appelée dans une lien href : ><a href=""
// onclick="update_page(my_crit,'cb=sablons(1)')">
function update_page (my_criteria, crit_string)
{
	var my_cont_array = new Array();
	if (crit_string!="") {
		my_cont_array = getSearchAsArray(crit_string);
		my_cont_array = Form_crit (my_criteria,my_cont_array);	
	}
	else
	{
		my_cont_array = my_criteria;
	}
	var query_string = new String();
	query_string = FormStringfromArray(my_cont_array);
	// alert (query_string);
	if (my_cont_array["imp"]!= 1) {
		parent.frames[2].document.location.href= "segreap.php?"+query_string; 	
		parent.frames[1].document.location.href= parent.frames[1].document.location.pathname+"?"+query_string;
	}
	else
	{
		window.open("print_p.php?"+query_string);
		my_cont_array["imp"]= 0;
	}
}

// cette fonction reçoit la liste des paramètres à changer, et forme une url de
// type segarch (ou print_a si impression = true) et demande la mise à jour de
// la page, sur la base de cette url
// cette fonction est supposée être appelée dans une lien href : ><a href=""
// onclick="update_page_arch(my_crit,'arch=seguin')">
function update_page_arch (my_criteria, crit_string)
{
	var my_cont_array = new Array();
	if (crit_string!="") {
		my_cont_array = getSearchAsArray(crit_string);
		my_cont_array = Form_crit (my_criteria,my_cont_array);	
	}
	else
	{
		my_cont_array = my_criteria;
	}
	var query_string = new String();
	query_string = FormStringfromArray(my_cont_array);
	// alert (query_string);
	if (my_cont_array["imp"]!= 1) {
		parent.frames[2].document.location.href= "segarch.php?"+query_string; 		
		parent.frames[1].document.location.href= parent.frames[1].document.location.pathname+"?"+query_string;
	}
	else
	{
		window.open("print_a.php?"+query_string);
		my_cont_array["imp"]= 0;
	}
}

// cette fonction reçoit la liste des paramètres à changer, et forme une url de
// type segarch (ou print_a si impression = true) et demande la mise à jour de
// la page, sur la base de cette url
// cette fonction est supposée être appelée dans une lien href : ><a href=""
// onclick="update_page_cpg(my_crit,'cpg=sablons(1)')">
function update_page_cpg (my_criteria, crit_string)
{
	var my_cont_array = new Array();
	if (crit_string!="") {
		my_cont_array = getSearchAsArray(crit_string);
		my_cont_array = Form_crit (my_criteria,my_cont_array);	
	}
	else
	{
		my_cont_array = my_criteria;
	}
	var query_string = new String();
	query_string = FormStringfromArray(my_cont_array);
	// alert (query_string);
	if (my_cont_array["imp"]!= 1) {
		parent.frames[2].document.location.href= "segreac.php?"+query_string; 		
		parent.frames[1].document.location.href= parent.frames[1].document.location.pathname+"?"+query_string;
	}
	else
	{
		window.open("print_c.php?"+query_string); 
		my_cont_array["imp"]= 0;	
	}
}

// cette fonction reçoit la liste des paramètres à changer, et forme une url de
// type segreae (ou print_a si impression = true) et demande la mise à jour de
// la page, sur la base de cette url
// cette fonction est supposée être appelée dans une lien href : ><a href=""
// onclick="update_page_prj(my_crit,'prj=sablons(1)')">
function update_page_prj (my_criteria, crit_string)
{
	var my_cont_array = new Array();
	if (crit_string!="") {
		my_cont_array = getSearchAsArray(crit_string);
		my_cont_array = Form_crit (my_criteria,my_cont_array);	
	}
	else
	{
		my_cont_array = my_criteria;
	}
	var query_string = new String();
	query_string = FormStringfromArray(my_cont_array);
	// alert (query_string);
	if (my_cont_array["imp"]!= 1) {
		parent.frames[2].document.location.href= "segreae.php?"+query_string; 
		parent.frames[1].document.location.href= parent.frames[1].document.location.pathname+"?"+query_string;
	}
	else
	{
		window.open("print_e.php?"+query_string); 
		my_cont_array["imp"]= 0;	
	}
}

// cette fonction reçoit la liste des paramètres à changer, et active la mise à jour les deux frames courants(select et principal) 
// cette fonction est supposée être appelée dans une lien href : ><a href=""
// onclick="update_current_page(my_crit,'cb=sablons(1)')">
function update_current_page (my_criteria, crit_string)
{
	var my_cont_array = new Array();
	var my_file_name = parent.frames[2].document.location.pathname;
	if (crit_string!="") {
		my_cont_array = getSearchAsArray(crit_string);
		my_cont_array = Form_crit (my_criteria,my_cont_array);	
	}
	else
	{
		my_cont_array = my_criteria;
	}
	var query_string = new String();
	query_string = FormStringfromArray(my_cont_array);
	if (((my_criteria["arch"]=="tous"))&& ((my_criteria["cpg"]=="tous"))&&((my_criteria["prj"]=="tous")))
	{//ds le cas où ts les filtres sont à "tous", on force le type de page (segarch, segreae, segreac) devient segreap
	my_file_name = "segreap.php";
	}

	// alert (query_string);
	if (my_cont_array["imp"]!= 1) {
		parent.frames[2].document.location.href= my_file_name+"?"+query_string; 		
		parent.frames[1].document.location.href= parent.frames[1].document.location.pathname+"?"+query_string;
	}
	else
	{
		window.open("print_p.php?"+query_string); 
		my_cont_array["imp"]= 0;	
	}
}

//cette fonction active le mode dynamique de présentation des ouvrages
//elle reçoit la liste des paramètres à changer, et active l'appel de segreapc du frame principal et la mise à jour la mise à jour du frame (select et principal) 
//cette fonction est supposée être appelée dans une lien href : ><a href=""
//onclick="update_to_dynamic(my_crit,'cb=sablons(1)')">
function update_to_dynamic (my_criteria, crit_string)
{
	var my_cont_array = new Array();
	if (crit_string!="") {
		my_cont_array = getSearchAsArray(crit_string);
		my_cont_array = Form_crit (my_criteria,my_cont_array);	
	}
	else
	{
		my_cont_array = my_criteria;
	}
	var query_string = new String();
	query_string = FormStringfromArray(my_cont_array);
	// alert (query_string);
	if (my_cont_array["imp"]!= 1) {
		parent.frames[2].document.location.href= "segreapc.php?"+query_string; 		
		parent.frames[1].document.location.href= parent.frames[1].document.location.pathname+"?"+query_string;
	}
	else
	{
		window.open("print_p.php?"+query_string); 
		my_cont_array["imp"]= 0;	
	}
}
