// fichier fonctions.js : fonctions javascript
// fenêtres popup : http://www.quirksmode.org/js/popup.html

var fenetreIndex, fenetreFiche ;

function chercherChamp (champ, valeur)
{
if ((window.name == 'Fiche') || (window.name == 'panierRef'))
   {
   opener.window.location = 'searchChamp.php?champ=' + champ + '&valeur=' + valeur ;	
   window.close () ; 
   }
   else
   {
   window.location = 'searchChamp.php?champ=' + champ + '&valeur=' + valeur ;	
   }
}
	
function fiche (database, id) 
{
largeurFenetre = 800 ;	
largeurEcran = screen.availWidth ;
hauteurEcran = screen.height ;
largeurEcran = screen.width ;
hauteurEcran = screen.availHeight ;
leftEcran = (largeurEcran - largeurFenetre) / 2 ;
url = 'fiche.php?databaseRef=' + database + '&id=' + id ; 
nbLignes = 15 ;
hauteur = nbLignes * 40  ; 
topEcran = (hauteurEcran - hauteur) / 2 ;
options = 'copyhistory=no,toolbar=no,location=no,menubar=no,status=no,left='+leftEcran+',top='+topEcran+',width=600,height=' + hauteur + ',scrollbars=yes,resizable=yes' ; 
// si on ne donne pas un nom à la nouvelle fenêtre, le système demande confirmation pour fermer la fenêtre principale
// (la fenêtre complet contient onBlur dans son body)
fenetreFiche = window.open (url, 'Fiche', options) ; 
fenetreFiche.resizeTo (largeurFenetre, hauteur) ;	
fenetreFiche.moveTo (leftEcran, topEcran) ;	
//fenetreFiche.setTimeout ('self.close(); ',5000) ;  // fermeture automatique au bout de 10s
}

	
function ajouterPanierRef (id) 
{
largeurFenetre = 650 ;	
largeurEcran = screen.availWidth ;
hauteurEcran = screen.height ;
largeurEcran = screen.width ;
hauteurEcran = screen.availHeight ;
leftEcran = (largeurEcran - largeurFenetre) -50 ;
url = 'ajouterPanierRef.php?idRef=' + id ; 
nbLignes = 15 ;
hauteur = nbLignes * 40  ; 
topEcran = (hauteurEcran - hauteur) -50 ;
options = 'copyhistory=no,toolbar=no,location=no,menubar=no,status=no,left='+leftEcran+',top='+topEcran+',width=100,height=100,scrollbars=yes,resizable=yes' ; 
// si on ne donne pas un nom à la nouvelle fenêtre, le système demande confirmation pour fermer la fenêtre principale
// (la fenêtre complet contient onBlur dans son body)
fenetreFiche = window.open (url, 'panierRef', options) ; 
fenetreFiche.resizeTo (largeurFenetre, hauteur) ;	
fenetreFiche.moveTo (leftEcran, topEcran) ;	
//fenetreFiche.close () ;
//fenetreFiche.setTimeout ('self.close(); ',5000) ;  // fermeture automatique au bout de 10s
if (window.focus) {fenetreFiche.focus()}
}
	
function enleverPanierRef (id) 
{
largeurFenetre = 650 ;	
largeurEcran = screen.availWidth ;
hauteurEcran = screen.height ;
largeurEcran = screen.width ;
hauteurEcran = screen.availHeight ;
leftEcran = (largeurEcran - largeurFenetre) - 50 ;
url = 'enleverPanierRef.php?idRef=' + id ; 
nbLignes = 15 ;
hauteur = nbLignes * 40  ; 
topEcran = (hauteurEcran - hauteur) - 50 ;
options = 'copyhistory=no,toolbar=no,location=no,menubar=no,status=no,left='+leftEcran+',top='+topEcran+',width=600,height=' + hauteur + ',scrollbars=yes,resizable=yes' ; 
// si on ne donne pas un nom à la nouvelle fenêtre, le système demande confirmation pour fermer la fenêtre principale
// (la fenêtre complet contient onBlur dans son body)
fenetreFiche = window.open (url, 'panierRef', options) ; 
fenetreFiche.resizeTo (largeurFenetre, hauteur) ;	
fenetreFiche.moveTo (leftEcran, topEcran) ;	
//window.close () ;
//fenetreFiche.setTimeout ('self.close(); ',5000) ;  // fermeture automatique au bout de 10s
}

function panier (Image) 
{
largeurFenetre = 650 ;	
largeurEcran = screen.availWidth ;
hauteurEcran = screen.height ;
largeurEcran = screen.width ;
hauteurEcran = screen.availHeight ;
leftEcran = (largeurEcran - largeurFenetre) / 2 ;
if (Image == '') { URL = 'afficherPanier.php' ; } else { URL = 'ajouterPanier.php?image=' + Image ; }
nbLignes = 15 ;
hauteur = nbLignes * 40  ; 
topEcran = (hauteurEcran - hauteur) / 2 ;
options = 'copyhistory=no,toolbar=no,location=no,menubar=no,status=no,left='+leftEcran+',top='+topEcran+',width=600,height=' + hauteur + ',scrollbars=yes,resizable=yes' ; 
// si on ne donne pas un nom à la nouvelle fenêtre, le système demande confirmation pour fermer la fenêtre principale
fenetrePanier = window.open (URL, 'panier', options) ; 
fenetrePanier.resizeTo (largeurFenetre, hauteur) ;	
fenetrePanier.moveTo (20, 20) ;	
fenetrePanier.focus();
}

function viderPanier (Image,nomPanier) 
{
if (nomPanier == 'panier') { location.href='enleverPanier.php?image=' ; } else { location.href='enleverPanierRef.php?idRef=' ; }
window.close () ;
}

function index (table, nomFormulaire, separateur) 
{
largeurFenetre = 650 ;	
largeurEcran = screen.availWidth ;
hauteurEcran = screen.height ;
largeurEcran = screen.width ;
hauteurEcran = screen.availHeight ;
leftEcran = (largeurEcran - largeurFenetre) / 2 ;
var leFormulaire = document.forms[nomFormulaire]; 
var leChamp = leFormulaire.elements[table].name ;
valeurSelection = leFormulaire.elements[leChamp].value ;
url = 'afficherIndex.php?lettre=&table='+table+'&formulaire='+nomFormulaire+'&separateur='+separateur+'&valeurSelection='+valeurSelection ; 
nbLignes = 15 ;
hauteur = nbLignes * 40  ; 
topEcran = (hauteurEcran - hauteur) / 2 ;
options = 'copyhistory=no,toolbar=no,location=no,menubar=no,status=no,left='+leftEcran+',top='+topEcran+',width=600,height=' + hauteur + ',scrollbars=yes,resizable=yes' ; 
// si on ne donne pas un nom à la nouvelle fenêtre, le système demande confirmation pour fermer la fenêtre principale
fenetreIndex = window.open (url, 'Info', options) ; 
fenetreIndex.resizeTo (largeurFenetre, hauteur) ;	
fenetreIndex.moveTo (leftEcran, topEcran) ;	
fenetreIndex.focus();
}

// __________________________________________________________________________________________________________________________________________________________________________________________________________

var fenetreThesaurus ; // on conserve le nom de la fenêtre pour pouvoir la refermer avant nouvel affichage des niveaux (économie mémoire)

// affichage du thesaurus par clic sur la loupe dans formulaire de recherche avancée construit dans la procédure formulaireRecherche de common.php
// paramètre : le nom du formulaire de recherche avancée
// paramètre : le type de thesaurus ( nomThesaurus=aue ou geo )
function afficherThesaurus (nomFormulaire, nomThesaurus) 
{
if (fenetreThesaurus) { fenetreThesaurus.close () ; }
largeurFenetre = 650 ;	
largeurEcran = screen.availWidth ;
hauteurEcran = screen.height ;
largeurEcran = screen.width ;
hauteurEcran = screen.availHeight ;
leftEcran = (largeurEcran - largeurFenetre) -20 ;
var leFormulaire = document.forms[nomFormulaire]; 
var leChamp = leFormulaire.elements['thesaurus'].name ;
valeurSelection = leFormulaire.elements[leChamp].value ;
url = 'afficherThesaurus.php?lettre=&formulaire='+nomFormulaire+'&thesaurus='+nomThesaurus+'&valeurSelection='+valeurSelection ; 
nbLignes = 15 ;
hauteur = nbLignes * 40  ; 
topEcran = (hauteurEcran - hauteur) -20 ;
options = 'copyhistory=no,toolbar=no,location=no,menubar=no,status=no,left='+leftEcran+',top='+topEcran+',width=600,height=' + hauteur + ',scrollbars=yes,resizable=yes' ; 
// si on ne donne pas un nom à la nouvelle fenêtre, le système demande confirmation pour fermer la fenêtre principale
fenetreThesaurus = window.open (url, 'Thesaurus', options) ; 
fenetreThesaurus.resizeTo (largeurFenetre, hauteur) ;	
fenetreThesaurus.moveTo (leftEcran, topEcran) ;	
fenetreThesaurus.focus();
}

var fenetreNiveaux ; // on conserve le nom de la fenêtre pour pouvoir la refermer avant nouvel affichage des niveaux (économie mémoire)

function afficherNiveaux (thesaurus, niveau, mot) 
{
if (fenetreNiveaux) { fenetreNiveaux.close () ; }
largeurFenetre = 350 ;	
largeurEcran = screen.availWidth ;
hauteurEcran = screen.height ;
largeurEcran = screen.width ;
hauteurEcran = screen.availHeight ;
leftEcran = (largeurEcran - largeurFenetre) -20 ;
url = 'afficherNiveaux.php?thesaurus='+thesaurus+'&mot='+mot+'&niveau='+niveau ; 
nbLignes = 10 ;
hauteur = nbLignes * 40  ; 
topEcran = (hauteurEcran - hauteur) -20 ;
options = 'copyhistory=no,toolbar=no,location=no,menubar=no,status=no,left='+leftEcran+',top='+topEcran+',width=600,height=' + hauteur + ',scrollbars=yes,resizable=yes' ; 
// si on ne donne pas un nom à la nouvelle fenêtre, le système demande confirmation pour fermer la fenêtre principale
// (la fenêtre complet contient onBlur dans son body)
fenetreNiveaux = window.open (url, 'Niveaux', options) ; 
fenetreNiveaux.resizeTo (largeurFenetre, hauteur) ;	
fenetreNiveaux.moveTo (leftEcran, topEcran) ;	
fenetreNiveaux.focus();
}


function afficherImage (nomImage) 
{
largeurFenetre = 800 ;	
largeurEcran = screen.availWidth ;
hauteurEcran = screen.height ;
largeurEcran = screen.width ;
hauteurEcran = screen.availHeight ;
leftEcran = (largeurEcran - largeurFenetre) / 2 ;
nbLignes = 15 ;
hauteur = nbLignes * 40  ; 
hauteur = 800  ; 
topEcran = (hauteurEcran - hauteur) / 2 ;
options = 'copyhistory=no,toolbar=no,location=no,menubar=no,status=no,left='+leftEcran+',top='+topEcran+',width=' + largeurFenetre + ',height=' + hauteur + ',scrollbars=yes,resizable=yes' ; 
// si on ne donne pas un nom à la nouvelle fenêtre, le système demande confirmation pour fermer la fenêtre principale
// (la fenêtre complet contient onBlur dans son body)
fenetreImage = window.open (nomImage, 'image', options) ; 
fenetreImage.resizeTo (largeurFenetre, hauteur) ;	
fenetreImage.moveTo (leftEcran, topEcran) ;	
fenetreImage.focus();
}

// à partir de la fenêtre affichant tous les mots de l'index (auteurs ou thesaurus ou codes Fonction) (paramètre table qui représente le nom du champ)
// mise à jour du champ correspondant dans le formulaire de recherche (paramètre formulaire = simple ou avance)
// appelé par afficherLettre dans le script afficherIndex.php
function afficherValeursSelectionnees (table, formulaire, valeur)
{
var leFormulaire = opener.document.forms[formulaire]; 
var leChamp = leFormulaire.elements[table].name ;
var formulaireSelection = document.forms['selection']; 
formulaireSelection.elements['valeur'].value = leFormulaire.elements[leChamp].value ;
}

// à partir de la fenêtre affichant tous les mots de l'index (auteurs ou thesaurus ou codes Fonction) (paramètre table qui représente le nom du champ)
// mise à jour du champ correspondant dans le formulaire de recherche (paramètre formulaire = simple ou avance)
// appelé par afficherLettre dans le script afficherIndex.php
function enregistrer (table, formulaire, valeur, separateur)
{
var leFormulaire = opener.document.forms[formulaire]; 
var leChamp = leFormulaire.elements[table].name ;
if (separateur == ' ou') { separateur = ' ou ' ; } // le dernier espace est supprime dans l'url?
// valeur a été encodé avec htmentities dans l'appel de la fonction
// sinon le caractère accentué et la lettre qui le précède ne sont pas transmis
// il faut décoder les caractères codés en html, sinon ils restent affiché tels quels dans le formulaire
valeur = valeur.replace(/&Aacute;/g,"Á");
valeur = valeur.replace(/&Eacute;/g,"É");
valeur = valeur.replace(/&Iacute;/g,"Í");
valeur = valeur.replace(/&Oacute;/g,"Ó");
valeur = valeur.replace(/&Uacute;/g,"Ú");
valeur = valeur.replace(/&Agrave;/g,"À");
valeur = valeur.replace(/&Egrave;/g,"È");
valeur = valeur.replace(/&Igrave;/g,"Ì");
valeur = valeur.replace(/&Ograve;/g,"Ò");
valeur = valeur.replace(/&Ugrave;/g,"Ù");
valeur = valeur.replace(/&Acirc;/g,"Â");
valeur = valeur.replace(/&Ecirc;/g,"Ê");
valeur = valeur.replace(/&Icirc;/g,"Î");
valeur = valeur.replace(/&Ocirc;/g,"Ô");
valeur = valeur.replace(/&Ucirc;/g,"Û");
valeur = valeur.replace(/&Atilde;/g,"Ã");
valeur = valeur.replace(/&Otilde;/g,"Õ");
valeur = valeur.replace(/&Auml;/g,"Ä");
valeur = valeur.replace(/&Euml;/g,"Ë");
valeur = valeur.replace(/&Iuml;/g,"Ï");
valeur = valeur.replace(/&Ouml;/g,"Ö");
valeur = valeur.replace(/&Uuml;/g,"Ü");
valeur = valeur.replace(/&ccedil;/g,"Ç");
valeur = valeur.replace(/&aacute;/g,"á");
valeur = valeur.replace(/&eacute;/g,"é");
valeur = valeur.replace(/&iacute;/g,"í");
valeur = valeur.replace(/&oacute;/g,"ó");
valeur = valeur.replace(/&uacute;/g,"ú");
valeur = valeur.replace(/&agrave;/g,"à");
valeur = valeur.replace(/&egrave;/g,"è");
valeur = valeur.replace(/&igrave;/g,"ì");
valeur = valeur.replace(/&ograve;/g,"ò");
valeur = valeur.replace(/&ugrave;/g,"ù");
valeur = valeur.replace(/&acirc;/g,"â");
valeur = valeur.replace(/&ecirc;/g,"ê");
valeur = valeur.replace(/&icirc;/g,"î");
valeur = valeur.replace(/&ocirc;/g,"ô");
valeur = valeur.replace(/&ucirc;/g,"û");
valeur = valeur.replace(/&atilde;/g,"ã");
valeur = valeur.replace(/&otilde;/g,"õ");
valeur = valeur.replace(/&auml;/g,"ä");
valeur = valeur.replace(/&euml;/g,"ë");
valeur = valeur.replace(/&iuml;/g,"ï");
valeur = valeur.replace(/&ouml;/g,"ö");
valeur = valeur.replace(/&uuml;/g,"ü");
valeur = valeur.replace(/&ccedil;/g,"ç");
if (leFormulaire.elements[leChamp].value != "") { leFormulaire.elements[leChamp].value = leFormulaire.elements[leChamp].value + separateur + valeur ; }
   else { leFormulaire.elements[leChamp].value = valeur ; }
if (leChamp == 'thesaurus2')
	{ 
	radio = leFormulaire.elements['niveauThesaurus'] ;	
	for (var i=0; i<radio.length;i++) 
		{
      if (radio[i].checked) { niveau = radio[i].value }		
      }
	afficherNiveaux ('aue', niveau, valeur) ;
	}
	else if (leChamp == 'thesaurus3')
	{ 
	radio = leFormulaire.elements['niveauThesaurus3'] ;	
	for (var i=0; i<radio.length;i++) 
		{
      if (radio[i].checked) { niveau = radio[i].value }		
      }
	afficherNiveaux ('geo', niveau, valeur) ;
	}
	else
	{ // dans la sélection dans le thesaurus, on n'affiche pas dans la fenêtre courante les termes déjà sélectionnés, la fenêtre thesaurus est décalée vers la droite, ce qui montre le formulaire
	var formulaireSelection = document.forms['selection']; 
	formulaireSelection.elements['valeur'].value = leFormulaire.elements[leChamp].value ;
	}
}

function imprimer()
{
var NS = (navigator.appName == "Netscape");
	if (NS) {
          window.print() ;
		} 
	else {
		var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
     		document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
        	WebBrowser1.ExecWB(6, 2);//Use a 1 vs. a 2 for a prompting dialog box    WebBrowser1.outerHTML = "";
     	 	}
}

function afficheDescripteurs (idDocument)
{
 elem = document.getElementById(idDocument);
 if (elem.style.display == "none") {  elem.style.display = "block" ; } else {  elem.style.display = "none" ; } 
}

