/*
* HEREIN 2 - herein.js v20030530
*/


// navigation dans l'interface **********************************************

/*
* changement de langue de l'interface
* @l : code iso de la langue
*/
function siteLanguage(l){
	document.cookie="language="+l+"; path=/";

	window.location.reload();
}

/*
* charge une nouvelle page et met le menu a jour a l'aide des cookies
* @idmenu : id du menu a activer
* @idsmenu : id du sous-menu activer
* @url : page a charger
*/
function setMenuNr(idmenu,idsmenu,url)
{
    document.cookie="menunr="+idmenu+";path=/";
    document.cookie="smenunr="+idsmenu+"; path=/";
    if ((url.indexOf("http://") == 0) || (url.indexOf("https://") == 0)) document.location.href = url;
    else document.location.href = "/sdx/herein/"+url;

    return true;
}

/* 
* met les cookies a jour et recharge la page dans laquelle on se trouve
* @idmenu : id du menu a activer
* @idsmenu : id du sous-menu activer
*/
function reloadPage(idmenu,idsmenu){
    document.cookie="menunr="+idmenu+";path=/";
    document.cookie="smenunr="+idsmenu+"; path=/";

	window.location.reload();
}


/* 
* remplace les " # " par des "\'"
* @str : chaine a proteger
*/
function add_quote(str){

	// on remplace les " ' " par " \' " 
	regex=/#/g;

	str_protect=str.replace(regex,"\'");

	return str_protect;
}


/*
* historique de navigation en haut a gauche...
*/
var nav=""; // chaine contenant l'historique
var max_title=3; // nombre maximum de titre a afficher en entier

/*
* ajouter une URL et un titre a l'historique
* @url : URL a rajouter
* @title : titre de la page
*/
function add_nav(url,title){

	regex=/'/g;
	title_status=title.replace(regex,"\\'");
	str_status=" onMouseOver=\"self.status='> "+title_status+"'; return true;\" ";
	str_status+=" onMouseOut=\"self.status=''; return true;\" ";
	nav+="&gt;&nbsp;<a href=\""+url+"\" class=\"nav\""+str_status+">"+title+"</a>&nbsp;";

	return true;
}

/*
* reinitialiser la chaine de l'historique
*/
function del_nav(){
	nav="";
}

/*
* si la chaine de l'historique comporte plus de max_title titres,  
* remplacer les premieres occurences par '...'
*/
function reduce_nav(){

	// cherchons combien il y a de titres...
	var table_title=new Array();
	index_title=0;
	num_title=0;
	while((index_title=nav.indexOf("&gt;&nbsp;",index_title+1))!=-1){
		num_title++;
	}

	// si il y en a trop, remplacer les premiers titres par '...'
	// merci les regex !!!
	if(num_title>max_title){
		for(i=0;i<num_title-max_title;i++){
			regex=/[^>\.]*<\/a>/;
			nav=nav.replace(regex,"...");
		}
	}

	return true;
}

/*
* afficher la chaine de l'historique a l'aide des layers
*/
function show_nav(){

	nav="<font class=\"nav\">"+nav+"</font>";

	reduce_nav();

	if(document.layers){
		document.layers["divnav"].document.open();
		document.layers["divnav"].document.write(nav);
		document.layers["divnav"].document.close();

		document.layers["divnav"].visibility="visible";
	}

	if(document.all){
		document.all["divnav"].innerHTML=nav;
	}

	if(document.getElementById){
		document.getElementById("divnav").innerHTML=nav;
	}
}

/* OBSOLETE : les skins ne sont pas officielles... mais c'est bo ! */
/*
* changer la skin en mettant a jour le cookie skin...
* @name : nom de la skin
*/
function change_skin(name){
    document.cookie="skin="+name+"; path=/";
	parent.document.location.href=parent.document.location.href;
}
/* OBSOLETE */

// compose_reports *********************************************************

/*
* doit-on cocher/decocher tous les rapports ?
* @f : le formulaire ou on se trouve
*/
function select_whole_report(f){

	var is_checked;

	for (i=0;i<f.elements.length;i++){
		e=f.elements[i];
		if(e.name=='checkall'){
			is_checked=e.checked;	
		}
	}

	whole_report(is_checked,f);

	return true;
}

/*
* coche/decoche tout le rapport suivant la valeur passee en param
* @value : true ou false
* @f : le formulaire ou on se trouve
*/
function whole_report(value,f){
	for (i=0;i<f.elements.length;i++){
		e=f.elements[i];
		e.checked=value;
	}

	return true;
}

/*
* cocher/decocher toute un section
* @id : numero de la section
* @f : le formulaire ou on se trouve
* @check : true ou false
*/
function check_whole_section(id,f,check){
	// on coche/decoche les docid de la section de id 
	// par ex: avec id 2 -> 2.1, 2.1.1, 2.1.2, 2.2, ... 

	for (i=0;i<f.elements.length;i++){
		e=f.elements[i];

		if((e.name=="docid") || (e.name=="sthmeid")){

			// chaine de comparaison : avant le premier '.' 
			s=e.value.substring(0,e.value.indexOf("."));

			if(s==id){
				if(check){
					e.checked=true;
				}
				else{
					e.checked=false;
				}
			}
		}
	}

	return true;
}

/*
* cocher/decocher toute un sous-section
* @id : numero de la sous-section
* @f : le formulaire ou on se trouve
* @check : true ou false
*/
function check_whole_ssection(id,f,check){
	// on coche/decoche les docid de la ssection de id 
	// par ex: avec id 2.1 -> 2.1.1, 2.1.2, ... 

	for (i=0;i<f.elements.length;i++){
		e=f.elements[i];

		if(e.name=="docid"){

			// chaine de comparaison : avant le second '.' 
			s=e.value.substring(0,e.value.indexOf(".",2));

			if(s==id){
				if(check){
					e.checked=true;
				}
				else{
					e.checked=false;
				}
			}
		}
	}

	return true;
}

/*
* decocher le label de la section
* @id : numero de la section
* @f : le formulaire ou on se trouve
*/
function uncheck_label_section(id,f){
	var	s=id.substring(0,id.indexOf("."));

	for (i=0;i<f.elements.length;i++){
		e=f.elements[i];

		if((e.value==s) && (e.name=="section_id")){
			e.checked=false;
		}
	}

	return true;
}

/*
* cocher le label de la section
* @id : numero de la section
* @f : le formulaire ou on se trouve
*/
function check_label_section(id,f){

	// determinons l'id de la section	
	var	id_section=id.substring(0,id.indexOf("."));
	// la section est cochee par defaut
	var check_section=true;

	// verifions que tous les docid/sthmeid  de section sont coches...
	for (i=0;i<f.elements.length;i++){
		e=f.elements[i];

		s=e.value.substring(0,id.indexOf("."));

		if((id_section==s) && (e.name=="docid" || e.name=="sthmeid")){
			if(e.checked==false){
				// au moins un des elements de section n'est pas
				// coche... donc on ne va pas cocher section
				check_section=false;
			}
		}
	}

	// cocher/decocher section	
	for (i=0;i<f.elements.length;i++){
		e=f.elements[i];

		if((e.value==id_section) && (e.name=="section_id")){
			e.checked=check_section;
		}
	}

	return true;
}

/*
* decocher le label de la sous-section
* @id : numero de la sous-section
* @f : le formulaire ou on se trouve
*/
function uncheck_label_ssection(id,f){

	var	s=id.substring(0,id.indexOf(".",2));

	for (i=0;i<f.elements.length;i++){
		e=f.elements[i];

		if((e.value==s) && (e.name=="sthmeid")){
			e.checked=false;
		}
	}

	return true;
}

/*
* cocher le label de la sous-section
* @id : numero de la sous-section
* @f : le formulaire ou on se trouve
*/
function check_label_ssection(id,f){

	// determinons l'id de la ssection	
	var	id_ssection=id.substring(0,id.indexOf(".",2));
	// la ssection est cochee par defaut
	var check_ssection=true;

	// verifions que tous les docid de ssection sont coches...
	for (i=0;i<f.elements.length;i++){
		e=f.elements[i];

		s=e.value.substring(0,id.indexOf(".",2));

		if((id_ssection==s) && (e.name=="docid")){
			if(e.checked==false){
				// au moins un des elements de ssection n'est pas
				// coche... donc on ne va pas cocher ssection
				check_ssection=false;
			}
		}
	}

	// cocher/decocher ssection	
	for (i=0;i<f.elements.length;i++){
		e=f.elements[i];

		if((e.value==id_ssection) && (e.name=="sthmeid")){
			e.checked=check_ssection;
		}
	}

	return true;
}

/*
* decocher le label de all_sections 
* @f : le formulaire ou on se trouve
*/
function uncheck_label_checkall(f){

	for (i=0;i<f.elements.length;i++){
		e=f.elements[i];
	
		if(e.name=="checkall"){
			e.checked=false;
		}
	}

	return true;
}

/*
* cocher le label de all_sections 
* @f : le formulaire ou on se trouve
*/
function check_label_checkall(f){

	var checkall_check=true;

	// determinons si tous les elements sont coches
	for (i=0;i<f.elements.length;i++){
		e=f.elements[i];

		switch(e.name){
			case "section_id":
			case "sthmeid":
			case "docid":
				if(e.checked==false){
					// tous les elements ne sont pas coches !
					checkall_check=false;
				}
				break;
			defaukt:
				break;
		}	
	}

	for (i=0;i<f.elements.length;i++){
		e=f.elements[i];
	
		if(e.name=="checkall"){
			e.checked=checkall_check;
		}
	}

	return true;
}

/*
* coche/decoche le label de section ou le label de sous-section ou le label
* all_sections en fonction de l'id de rapport modifie
* @id : numero du rapport
* @f : le formulaire ou on se trouve
*/
function select_docid(id,f){

	// on parcourt tous les elements du formulaire
	for (i=0;i<f.elements.length;i++){
		var e=f.elements[i];

		// si on est dans l'element coche...
		if(e.value==id){
			switch(e.name){
				case "section_id":
					check_whole_section(e.value,f,e.checked);
					if(e.checked==false){
						uncheck_label_checkall(f);
					}
					else{
						check_label_checkall(f);
					}
					break;
				case "sthmeid":
					check_whole_ssection(e.value,f,e.checked);
					if(e.checked==false){
						uncheck_label_section(e.value,f);
						uncheck_label_checkall(f);
					}
					else{
						check_label_section(e.value,f);
						check_label_checkall(f);
					}
					break;
				case "docid":
					if(e.checked==false){
						uncheck_label_ssection(e.value,f);
						uncheck_label_section(e.value,f);
						uncheck_label_checkall(f);
					}
					else{
						check_label_ssection(e.value,f);
						check_label_section(e.value,f);
						check_label_checkall(f);
					}
					break;
				default:
					break;
			}
		}
	}

	return true;
}


/*
* verifions que au moins un pays a ete choisi
* @form : le formulaire a tester
*/
function pays_ok(f,msg){

	un_pays=false;
	
	for (i=0;i<f.elements.length;i++){
		e=f.elements[i];
		if(e.name=='pays'){
			if(e.checked==true){
				// un pays au moins est coche
				un_pays=true;
			}
		}
	}

	if(un_pays){
		// un pays au moins est coche : on passe a la suite
		f.submit()
	}
	else{
		// sinon on alerte l'utilisateur
		alert("At least one country has to be chosen / Au moins un pays doit être choisi...");
	}

	return un_pays;
}

// voir.xsp *****************************************************************

/*
* ouvrir un rapport dans la meme fenetre ou dans une nouvelle
* @url : URL a ouvrir
*/
function voir_rapport(url){
		// doit-on ouvrir une nouvelle fenetre ?
		if(document.forms['selectlc'].elements[2].checked==true){
			win=window.open("","");
			win.document.location.href=url;
		}
		else{
			document.location.href=url;
		}
}

/*
* selection d'un nouveau pays pour le rapport en cours, dans la meme fenetre ou 
* une nouvelle
* @iso : code ISO du pays selectionne
*/
function selectCountry(iso){
	str=location.href;
	var newstr;
	s=iso.options[iso.selectedIndex].value;

	// verifions si on est dans un tdm...
	regex=/id=tdm/;
	if(str.search(regex)!=-1){
		regex=/p=../;
		newstr=str.replace(regex,"p="+s);
	}
	else{
	
		regex=/_.._/;
		newstr=str.replace(regex,"_"+s+"_");
	}

	// si le code iso est different de celui de la Belgique (BE)
	// qui n'a pas de rapports mais des lands...
	if(s!="BE"){
		// doit-on ouvrir une nouvelle fenetre ?
		if(document.forms['selectlc'].elements[2].checked==true){
			win=window.open("","");
			win.document.location.href=newstr;
		}
		else{
			document.location.href=newstr;
		}
	}
}

/*
* selection de la langue du rapport en cours, dans la meme fenetre ou 
* une nouvelle
* @l : code ISO de la nouvelle langue choisie
*/
function selectLanguage(l){

	str=location.href;
	var newstr;
	s=l.options[l.selectedIndex].value;

	// verifions si on est dans un tdm...
	regex=/id=tdm/;
	if(str.search(regex)!=-1){
		// on est dans un tdm, y a t'il un sId ?
		regex=/sId=/;
		if(str.search(regex)!=-1){
			regex=/l=..$/;
			newstr=str.replace(regex,"l="+s);
		}
		else{	
			regex=/p=../;
			newstr=str.replace(regex,"p="+s);
		}
	}
	else{
		regex=/_..$/;

		// pb avec le URL quand on ouvre une popup...
		hashregex=/#$/;
		if(str.search(hashregex)!=-1){
			regex=/_..#$/;
		}		
		newstr=str.replace(regex,"_"+s);
	}

	// si le code iso est defini (pour la Belgique il n'est pas defini)
	if(s!="BE"){
		// doit-on ouvrir une nouvelle fenetre ?
		if(document.forms['selectlc'].elements[2].checked==true){
			win=window.open("","");
			win.document.location.href=newstr;
		}
		else{
			window.location.replace(newstr);
		}
	}
}


// select_country.xsp *******************************************************

/* 
* choix du pays dont on veut consulter les rapports
* @iso : code ISO du pays choisi
* @lang : langue choisie pour afficher les rapports
*/
function selectIntroCountry(iso,lang){
	var i=iso.selectedIndex;

	if(iso.options[i].value!='#'){
		document.location.href="/sdx/herein/national_heritage/choose_country.xsp?id=intro_"+iso.options[i].value+"_"+lang;
	}
}


// countries.xsp ************************************************************

/* 
* choix du pays dont on veut consulter les ressources 
* @iso : code ISO du pays choisi
* @lang : langue choisie pour afficher les ressources (langue de l'interface)
*/
function selectPortalCountry(iso,lang){
	var i=iso.selectedIndex;

	document.location.href="/sdx/herein/heritage_portal/themes.xsp?id=intro_"+iso.options[i].value+"_"+lang;
}


// search.xsp et compose_reports.xsp *****************************************

/*
* coche/decoche le label any_countries 
* @f : formulaire dans lequel on se trouve
*/
function unselect_any(f){
// force ANY a false si et seulement si une au moins des autres checkbox
// est cochee...

	// verifions d'abord si un pays/land est coche
	var i=0;
	var one_checked=false;
	while(i<document.forms[0].elements.length){
		if(document.forms[0].elements[i].checked==true){
			if((document.forms[0].elements[i].value!="ANY")
				&& (document.forms[0].elements[i].name!="type_of_edition")
					&& (document.forms[0].elements[i].name!="outputformat")){
				one_checked=true;
			}
		}
		i++;
	}

	// maintenant cochons ou decochons la case ANY le cas echeant
	i=0;
	while(i<document.forms[0].elements.length){
		if(document.forms[0].elements[i].value=="ANY"){
			if(one_checked){
				document.forms[0].elements[i].checked=false;	
			}
			else{
				document.forms[0].elements[i].checked=true;	
			}
		};
		i++;
	}
}


/*
* coche/decoche le label all_countries 
* @f : formulaire dans lequel on se trouve
*/
function select_all_countries(f){

	var is_check=false;

	for (i=0;i<f.elements.length;i++){
		e=f.elements[i];
		if(e.value=='ANY'){
			is_checked=e.checked;	
		}
	}

	check_all_countries(f,is_checked);

	return true;
}

/*
* coche/decoche tous les pays
* affiche le div du land le cas echeant...
* @f : forumalaire en cours...
* @check : true ou false
*/
function check_all_countries(f,check){

	// pour la Belgique...
	// gerer cela de maniere dynamique quand j'aurais le temps...
	if(document.all || document.getElementById){
		if(check==true){
			alwaysshowlands('divlandBE',tab_lands_BE,'viewlandBE');
		}
		else{
			hidelands('divlandBE',tab_lands_BE,'viewlandBE');
		}
	}

	for (i=0;i<f.elements.length;i++){
		e=f.elements[i];
		if(e.name=='pays'){
			e.checked=check;	
		}
	}

	return true;	
}

/*
* coche/decoche le label all_countries
* @f formulaire dans lequel on se trouve
*/
function unselect_all_countries(f){

	var is_checked=true;

	// on cherche si toutes les cases pays sont cochees
	for (i=0;i<f.elements.length;i++){
		e=f.elements[i];
		if(e.name=='pays'){
			if(e.value!='ANY'){
				if(e.checked==false){	
					is_checked=false;
				}
			}
		}
	}

	// on coche/decoche all_countries
	for (i=0;i<f.elements.length;i++){
		e=f.elements[i];
		if(e.name=='pays'){
			if(e.value=='ANY'){
				if(is_checked==true){
					// verifions que les lands sont affiches... 
					if(document.all)
						src=document.all['viewlandBE'].src;
					else{
						src=document['viewlandBE'].src;
					}
					index=src.indexOf("moins.gif");
					if(index!=-1){
						e.checked=true;
					}
				}
				else{
					e.checked=false;	
				}
			}
		}
	}

	return true;
}

/*
* force le label any_country true
* @f : formulaire en cours
*/
function select_any(f){
	var i=0;
	while(i<document.forms[0].elements.length){
		if((document.forms[0].elements[i].value!="ANY")
			&& (document.forms[0].elements[i].name!="type_of_edition")
				&& (document.forms[0].elements[i].name!="outputformat")){
			document.forms[0].elements[i].checked=false;	
		};
		i++;
	}
}

function select_all(f){	

	var j=0;
	while(document.forms[0].elements[j].value!="ANY"){
		j++;
	}

	if(document.forms[0].elements[j].checked){
		v=true;		
	}
	else{
		v=false;
	}

	for(i=0;i<document.forms[0].elements.length;i++){

		if((document.forms[0].elements[i].value!="ANY")
			&& (document.forms[0].elements[i].name!="type_of_edition")
				&& (document.forms[0].elements[i].name!="outputformat")){
		document.forms[0].elements[i].checked=v;
		}
	}
}

// select_theme.xsp *********************************************************

/*
* ouvrir un theme dans la meme fenetre ou une nouvelle fenetre 
* (idem open_rapport) (a supprimer dans une prochaine revision...)
* @url : nouvelle page a charger
*/
function select_theme_open(url){
		// doit-on ouvrir une nouvelle fenetre ?
		if(document.forms['newwindow'].elements[0].checked==true){
			win=window.open("","");
			win.document.location.href=url;
		}
		else{
			self.location.href=url;
		}
}


// search.xsp

// affiche la liste des lands


/*
* affiche la liste des lands pour les navigateurs recents (mozilla 5+, IE 5+)
* si l'image est moins.gif, on affiche, sinon on cache
* @divland : layer a afficher 
* @tab_lands : liste des lands a afficher
* @image : plus.gif ou moins.gif
*/
function showlands(divland,tab_lands,image){

	// testons si on ne doit pas cacher ces lands...
	// ... en regardant la src de l'image afficher !

	if(document.all)
		src=document.all[image].src;
	else{
		src=document[image].src;
	}

	index=src.indexOf("moins.gif");
	if(index!=-1){
		hidelands(divland,tab_lands,image);
	}
	else{

		// creation de la liste des lands a afficher
		var codehtml="";
		for(i=0;i<tab_lands.length;i++){
			codehtml+='<input type="checkbox" name="pays" value="'+tab_lands[i].iso+'" onclick="unselect_all_countries(this.form)">';
			codehtml+=tab_lands[i].name+'<br>';
		}

		// affichons cette liste pour mozilla 5+ et ie
	    if(document.all){
	        document.all[divland].innerHTML=codehtml;
	    }   
    
	    if(document.getElementById){
	        document.getElementById(divland).innerHTML=codehtml;
	    }   

		// mettre l'image reduire
		if(document.all){
			document.all[image].src="/sdx/herein/images/moins.gif";
		}
		else{
			document[image].src="/sdx/herein/images/moins.gif";
		}
	}
}

/*
* affiche la liste des lands pour les navigateurs recents (mozilla 5+, IE 5+)
* quelle que soit l'image
* @divland : layer a afficher 
* @tab_lands : liste des lands a afficher
* @image : plus.gif ou moins.gif
*/
function alwaysshowlands(divland,tab_lands,image){

	// creation de la liste des lands a afficher
	var codehtml="";
	for(i=0;i<tab_lands.length;i++){
		codehtml+='<input type="checkbox" name="pays" value="'+tab_lands[i].iso+'" onclick="unselect_all_countries(this.form)">';
		codehtml+=tab_lands[i].name+'<br>';
	}

	// affichons cette liste pour mozilla 5+ et ie
    if(document.all){
        document.all[divland].innerHTML=codehtml;
    }   
    
    if(document.getElementById){
        document.getElementById(divland).innerHTML=codehtml;
    }   

	// mettre l'image reduire
	if(document.all){
		document.all[image].src="/sdx/herein/images/moins.gif";
	}
	else{
		document[image].src="/sdx/herein/images/moins.gif";
	}

	return true;
}

/*
* cache la liste des lands pour les navigateurs recents (mozilla 5+, IE 5+)
* quelle que soit l'image
* @divland : layer a afficher 
* @tab_lands : liste des lands a afficher
* @image : plus.gif ou moins.gif
*/
function hidelands(divland,tab_lands,image){
    if(document.all){
		document.all[divland].innerHTML="";
    }   
    
    if(document.getElementById){
        document.getElementById(divland).innerHTML="";
	}

	// mettre l'image deployer 
	if(document.all){
		document.all[image].src="/sdx/herein/images/plus.gif";
	}
	else{
		document[image].src="/sdx/herein/images/plus.gif";
	}

	// verifie si ANY ne doit pas etre coche... 
	unselect_any();
}

/*
* pseudo-structure pour stocker les informations d'un land
* @iso : code ISO du land
* @name : nom du land
*/
function land(iso,name){
	this.iso=iso;
	this.name=name;
}


// portal.xsp ***************************************************************

/* 
* choix du pays dont on veut consulter les ressources 
* @iso : code ISO du pays choisi
*/
function selectPortalCountry_SDX(iso){
	var i=iso.selectedIndex;

	if(iso.options[i].value!='#'){
		document.location.href="/sdx/herein/heritage_portal_SDX/resources.xsp?field=country&q="+iso.options[i].value;
	}
}


// my_herein ****************************************************************

function workflow_select(sel,f){

	var i=sel.selectedIndex;

	if(sel.options[i].value!="#"){
		f.submit();
	}

	return true;
}


function workflow_button(state,f){

	onechecked=false;
	for (i=0;i<f.elements.length;i++){
		e=f.elements[i];
		if(e.checked==true){
			onechecked=true;
		}
	}

	// inserer la valeur state dans l'element hidden action 
	// ... comme ca, ca semble complique...
	for (i=0;i<f.elements.length;i++){
		e=f.elements[i];
		if(e.name=="action"){
			e.value=state;
		}
	}

	if(onechecked==true){
		f.submit();
	}
	else{
		alert("Please select at least one document.");
	}

	return true;
}

function wm_button(state){

	f=document.forms[0];
	// inserer la valeur state dans l'element hidden action 
	// ... comme ca, ca semble complique...
	for (i=0;i<f.elements.length;i++){
		e=f.elements[i];
		if(e.name=="action"){
			e.value=state;
		}
	}
	document.forms[0].submit();

	return true;
}


function select_all_documents(f){

	var ischecked=false;
	for(i=0;i<f.elements.length;i++){
		e=f.elements[i];
		if(e.name=="all_reports"){
			ischecked=e.checked;
		}
	}

	for(i=0;i<f.elements.length;i++){
		e=f.elements[i];
		e.checked=ischecked;
	}

	return true;
}


/*
* recharge la page opener d'une popup avec les parametres du formulaire
* @f : le formulaire 
* @url : nouvelle url de la page opener
*/
function reload_parent(f,url){

	var params="";

	for (i=0;i<f.elements.length;i++){
		e=f.elements[i];
		if(e.name=="id"){
			e.value;
			params+="id="+e.value;
		}
		if(e.name=="cmd"){
			e.value;
			params+="&cmd="+e.value;
		}
		if(e.name=="category"){
			if(e.checked==true){
				params+="&category="+e.value;
			}
		}
		if(e.name=="langue"){
			if(e.checked==true){
				params+="&langue="+e.value;
			}
		}
	}

	opener.location.href=url+"?"+params;
	self.close();
}


/*
* verifie que la date entree dans le formulaire de recherche est a un format 
* correcte
* @f : le formulaire 
* @msg : le message a afficher quand la date est incorrecte
*/
function checkdate(f,msg){

	var d=f.elements['datemod'].value;
	var regexp=/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/;

	// la date est-elle au format : yyyy-mm-dd ?
	if(regexp.test(d)){
		return true;
	}
	else{
		alert(d+" "+msg);
		return false;
	}
}


/*
* verifie que le formulaire de saisie d'un nouvel utilisateur comporte bien
* les champs obligatoires remplis
* @f : le formulaire
* @msg : le message d'erreur general
* @table_msg : tableau comportant les noms des differents champs
*/
function check_account(f,msg,table_msg){

	var erreur="";
	var table_erreur=new Array();
	var i=0;

	if(f.elements['id'].value=="")
		table_erreur[i++]=0;
	if(f.elements['firstname'].value=="")
		table_erreur[i++]=1;
	if(f.elements['lastname'].value=="")
		table_erreur[i++]=2;
	if(f.elements['pass'].value=="")
		table_erreur[i++]=3;
	if(f.elements['conf'].value=="")
		table_erreur[i++]=4;

	if(table_erreur.length!=0){

		for(j=0;j<i;j++){
			msg+=" "+table_msg[table_erreur[j]];
			if(j<i-1){
				msg+=",";
			}
		}

		alert(msg);

		return false;
	}
	else{
		return true;
	}
}


// fonctions de Jos *********************************************************

function classify(cc)

{
url = "portal.xsp?cmd=ct";
for (i=0;i<cc.length;i++) {
	url += "&parent=" + cc[i];
	}

wid=open(url,"aux","screenX=5,screenY=5,HEIGHT=520,WIDTH=400" + ",TOOLBAR=no,LOCATION=no,DIRECTORIES=no," +                                    "STATUS=no,MENUBAR=no,SCROLLBARS=yes,RESIZABLE=yes"); 
/*doc = wid.document;
for (i=0;i<cc.length;i++) {
	chkbox = eval("doc.forms.select_category.parent." + cc[i]);
	chkbox.checked = true;
	}
*/
wid.focus();  
}

function collectBoxes(f, destinationfield)
{
cstring = "";
doc = window.opener.document;

for (i=0; i < f.elements.length; i++) {
	if (f.elements[i].checked) {
		if (cstring.length > 0) cstring += ",";
		cstring += f.elements[i].value;
		}
	}

field = eval("doc.forms[0]." + destinationfield);
field.value = cstring;
window.close();
}

/* ******************************************************************************
*  Thesaurus fuctions 								*
*********************************************************************************/

function listTopTerms(f)
{
f.topterms.value = 1;
if (f.qt.value.length > 0) {
	alert ("You cannot search for a term and display hierarchies at once");
	f.qt.value = '';
	}
f.submit();
}

function getThesaurusTerm(t)
{
	document.location = "consult.xsp?t=" + escape(t);
}

function getHierarchy(t)
{
	document.location = "consult.xsp?h=1&t=" + escape(t);
}

function clearThesSelection() 
{
	document.location = "storeterms.xsp?cmd=clr";
}

function saveThesSelection()
{
alert("Do not know what to do yet ");
}

function searchWithTerms(f)
{
selterms = f.selterms.options;
var acc = "";
for (i=0; i<selterms.length; i++) {
	acc += "\"" + selterms[i].value + "\" ";
	}

var f2 = document.forms.thesaurusterms;
var q = f2.q;

q.value = acc;
f2.submit();
}


// context is a term with a language and possibly subterms

function loadResultsPage(f)
{
var q = "";
var url = "";

q = "\"" + f.term.value + "\"";

if (f.t) { 
	for (i=0; i < f.t.length; i++) {
		q += " \"" + f.t[i].value + "\"";
		}
	}	
url = "../national_heritage/results.xsp?action=complex&langue=";
url += f.language.value.toLowerCase();   
url += "&q=" + escape(q);
document.location = url;
}

function searchWithLinguisticEquivalents(f)
{
var q = "";

for (i=0; i < f.t.length; i++) {
	q += "\"" + f.t[i].value + "\" ";
	}

document.location = "../national_heritage/search.xsp?action=complex&tab=language&q=" + escape(q);
}


// Functions for the module 'herein '

function checkLeave(f,arg)
{
if (f.changes.value == '1') {
    result = confirm("You modified some information on this page. Are you sure you want to go on without saving first?");
    if (!result) return;
    }
f.cmd.value = arg;
return f.submit();
}

function markBlur(f)
{
 f.changes.value = '1';
}

function markBlur(f,name)
{
 f.changes.value = '1';
 if (name.length > 0) {
     // var el = eval("document.forms[0].elements['" + name + "']");
	 var el = eval("document.forms[0]." + name);
	 // var el = document.forms[0].4.1.1;
     el.disabled = !el.disabled;
     }
/*  var msg = "";
 for (i=0; i< f.elements.length; i++) {
	msg += "element " + f.elements[i].name + ": " + f.elements[i].value;
	if (f.elements[i].disabled) msg += ", disabled ";
	msg += "\n";
	}
 alert(msg); */
}

function checkParentChoice(toggleparent)
{
if (toggleparent == '') return;

var f = document.forms[0];
var el;

for (i=0; i<f.length; i++) {
   var ll = f.elements[i];
   if (ll.name == toggleparent) el = ll;
   }

el.checked = true;

}


function enableElement(name)
{
     var el = eval("document.forms[0].elements['" + name + "']");
     el.disabled = false;
}

