/**
 * Description : Bibliothèque de fonctions Javascript en version 1.2
 * Copyright : Copyright (c) 2002</p>
 * Charset du fichier texte à utiliser: ISO-8859-1  
 */


//=======================================
//	VERIFIE LES CARACTERES INTERDITS
//	Dev : PAI
//=======================================
function CheckBadChar(sChaine, sFlag, sMsg){
var i
var sBadString = '';
var bReturn = true;

	// Chaine de comparaison pour les e-mail
	switch(sFlag){
		case "e":
			sBadString = "' /*+;?!:%#{([|êùéèàç)]=}&";
			break;
		case "t":
			sBadString = "'/*;?!:%#{[|êùéèà]=}&abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
			break;
		case "d":
			sBadString = "/*+;?!:%#{([|)]=}&¤@œ";
			break;
	    case "n":
			sBadString = "/*+;,:.?!%#{([|)]\=}&¤@œ0123456789";
			break;
	    case "s":
			sBadString = "/*+;,:?!%#{([|êùéèà)]\=}&¤@œ0123456789";
			break;
		case "ed":  // Caractères interdits pour le domaine
			sBadString = "' _/*+;?!:%#{([|êùéèà)]=}&";
			break;
		default:	// Chaine de comparaison pour les URL
			sBadString = "' *+;?!%#{([|êùéèà)]=}&\^@";
	}

	for (i=0; i<sChaine.length; i++){
	
		if(sBadString.indexOf(sChaine.charAt(i)) > -1) {
			bReturn = false;
			alert(sMsg +  sChaine.charAt(i));
	        i=sChaine.length;
		}
	}
	return bReturn;
}
 
 /**
  * Fonction : formaterSiren(numeroSiren)
  * @param numeroSiren String
  * Description : supprime tous les caractères autre que numérique
  * date : 22.01.2003
  **/
  function formaterSiren(numeroSiren){
    var tmp = numeroSiren;
    var varfinal = '';
    for (var i = 0; i < numeroSiren.length; i++) {
      var c = numeroSiren.substring(i,i+1);
      if ( c <= '9' && c >= '0') {
        varfinal = varfinal + c;
      }
    }
    return varfinal;
  }

 /**
 * Modification du nom de domaine + nom de la webapp de http en https
 * afe - 02.07.2003
 * Permutation http a https
 */
 function httpToHttps(){
 	tmp = "" + window.location;
	tmp = tmp.substring(0,tmp.indexOf("/infogreffe/"));
	 tmp = tmp.replace("http://","https://");
	return tmp;
 }

 /**
  * Gestion de la feuille de style selon le navigateur
  *
  */
 function style(){

 if (document.getElementById) { //IE5
		document.write("<LINK REL=STYLESHEET TYPE='text/css' HREF='/infogreffe/styles/style_ie.css'>");
	}

	if ((document.all)&&(!document.getElementById)) { //IE4 seul
		document.write("<LINK REL=STYLESHEET TYPE='text/css' HREF='/infogreffe/styles/style_ie.css'>");
	}
        if ((document.getElementById)&&(!document.all)) { //NS6
		document.write("<LINK REL=STYLESHEET TYPE='text/css' HREF='/infogreffe/styles/style_netscape6.css'>");
	}
	if (document.layers) { //NS4.X seul
		 document.write("<LINK REL=STYLESHEET TYPE='text/css' HREF='/infogreffe/styles/style_netscape.css'>");
	}

    /* Navigateur = navigator.appName;
    if (Navigateur == 'Netscape') {
      document.write("<LINK REL=STYLESHEET TYPE='text/css' HREF='/infogreffe/styles/style_netscape.css'>");
    }
    if (Navigateur == 'Microsoft Internet Explorer') {
      document.write("<LINK REL=STYLESHEET TYPE='text/css' HREF='/infogreffe/styles/style_ie.css'>");
    }*/
 }

/**
*
* Pour Changer le titre de la fenetre
*
*/
function changeTitreFenetre(nouveauTitre) {
	document.title = nouveauTitre;
}
/**
* vérifie que la valeur passée en paramètre est bien un numéro d'identification(RCS) ou SIREN
* 9 chiffres successif
* afe
*/
function valideSiren(numeroSiren){
	if (numeroSiren.length!=9){
		return false;
	}
	else {
		if (isNaN(numeroSiren)){
			return false;
		}
	}
	return true;
}

/**
* vérifie que la valeur passée en paramètre est bien un numéro d'abonne
* 8 chiffres successif
* cro
*/
function valideNumAbonne(numero){

	if (numero.length!=8){
		return false;
	}
	else {
		if (isNaN(numero)){
			return false;
		}
	}
	return true;

}




/**
* afe - 6-01-2002
* Une version de la méthode toFix supportée par l'ensemble des navigateurs
* La valeur passée doit être une chaine au format Number, decimale représentée par un point (.) et non une virgule à
* la française (,).
*/

function toFixValueDecimale(valeur){
	if(!valeur.NaN){
		chaineValeur = "" + valeur;
		pos = chaineValeur.indexOf(".");
		if (pos==-1){
			return valeur+",00";
		}
		else {
			partieEntiere = chaineValeur.substr(0,pos);
			partieDecimale = chaineValeur.substr(pos+1);
			switch(partieDecimale.length){
				case 0:
					partieDecimale = "00";
					break;
				case 1:
					partieDecimale = partieDecimale + "0";
					break;
				case 2:
					break;
				default:
					tabVal = new Array(3);
					for (var i=0;i<3;i++){
					    tabVal[i] = partieDecimale.substr(i,1);
					}
					if (parseInt(tabVal[2])>5){
						tailleChaine = (chaineValeur.substr(0,pos+3)).length;
						tabValue = new Array(tailleChaine);
						for (var k=0;k<tailleChaine;k++){
							tabValue[k]=chaineValeur.substr(k,1);
						}

						retenue = false;
						tabValue[tailleChaine-1] = parseInt(tabValue[tailleChaine-1])+1;
						valToAdd = 1;
						if (parseInt(tabValue[tailleChaine-1])==10){
							tabValue[tailleChaine-1]=0;
							retenue=true;
							for (var j=tailleChaine-2;j>0;j--){
								if (tabValue[j].indexOf(".")==-1){
									if (retenue){
										tabValue[j] = parseInt(tabValue[j]) + valToAdd;
										if (tabValue[j]==10){
											retenue=true;
											tabValue[j]=0;
										}
										else retenue=false;
									}
								}
							}
						}
						tmp2 = "";
						for (var z=0;z<tailleChaine;z++){
							tmp2 = 	tmp2 + ((tabValue[z]=='.')?',':tabValue[z]);
						}
						return tmp2;
					}
					else partieDecimale = tabVal[0] + tabVal[1];
					break;
			}
		}

		valeurFormate = partieEntiere + "," + partieDecimale;
		return valeurFormate;
	}
}

/**
 * Vérifie qu'une chaine de caractère passées en paramètre
 * correspond bien à un numero RCS :
 * code statut sur 1 caractère + 9 chiffres
 * afe
 */
function valideNumeroRCS (chaine) {
 	rcsFormate = chaine;
 	tabCodeStatut = ['A','B','C','D','F','M','P','a','b','c','d','f','m','p'];
        tailleRcsFormate = rcsFormate.length();
        if (rcsFormate!=null){
            if (tailleRcsFormate==10){
                cs = rcsFormate.charAt(0);
                csTrouve = false;
                for (i= 0;i<tailleTabCodeStatut;i++){
                    if (cs==tabCodeStatut[i]){
                        csTrouve = true;
                        break;
                    }
                }
                if (csTrouve){
                    for (j=1;j<tailleRcsFormate;j++){
                        valeurChar = -1;
                        valeurChar = parseInt(rcsFormate.charAt(j));
                        if (valeurChar<0 && valeurChar>9){
                        	return false;
                        }
                     }
                    return true;
                }
                else return false;
            }
            else return false;
        }
        else return false;
}

/*
Vérifie si un champ est vide
@param champ de formulaire (nom d'un objet dom de type input text)
Ne pas oublier de passer le nom du formulaire !!!!
Et ne pas l'appeller directement avec : formulaire.champ.value
Ex: estVide(monFormulaire.codePostal)
*/
function estVide(champ) {
  if((trim(champ.value)).length == 0) {
    return true;
  } else {
    return false;
  }
}

/**
* D'après l'url positionne la liste en haut des pages sur le nom de la
* section ou se trouve l'utilisateur (membre et abonne uniquement)
*/
function selectIdListeNavigation(strUrl){
	if ( strUrl.indexOf("afficherMesAchats.do")!=-1  ||
	     strUrl.indexOf("mesAchats")!=-1){
		 return 3;
	}
	if ( strUrl.indexOf("listeFacture.jsp")!=-1){
		return 5;
	}
	if (strUrl.indexOf("debitEnCours")!=-1){
		return 4;
	}
	if (strUrl.indexOf("afficherPortefeuilleAction")!=-1){
		return 2;
	}
	if (strUrl.indexOf("afficherDetailsEvt")!=-1){
		return 2;
	}
	if (strUrl.indexOf("afficherPortefeuilleMinitel")!=-1){
		return 2;
	}
	if (strUrl.indexOf("preRemplisAbonnement")!=-1 ||
	    strUrl.indexOf("chargerMembre")!=-1	||
	    strUrl.indexOf("profil/membre/Tprofil") != -1){
		return 1;
	}
}
/**
*
*/
function estValeurVide(valeur){
	if (valeur.length==0) return true;
	return false;
}


/*
Vérifie si un champ est numérique
Ne pas oublier de passer le nom du formulaire !!!!
Ex: estNumerique(monFormulaire.codePostal)
*/
function estNumerique(champ) {
  for (var k = 0; k < champ.value.length;k++) {
    var c = champ.value.substring(k,k+1);
    if (c > '9' || c < '0') {
      return false;
    }
  }
  return true;
}

/*
*Vérifie si une chaine est numérique
*Modif afe sur le nommage.
*/
function isNumeric(valeur) {
  for (var k = 0; k < valeur.length;k++) {
    var c = valeur.substring(k,k+1);
    if (c > '9' || c < '0') {
      return false;
    }
  }
  return true;
}

/*
Valider le code postal :
@param champ le champ du formulaire
@param sMsgLength Message en cas d'erreur sur la longueur
@param sMsgFormat Message en cas d'erreur de format
*/
function validerCodePostal(champ, sMsgLength, sMsgFormat) {
  if (champ.value.length != 5) {
    window.alert(sMsgLength);
    champ.focus();
    return false;
  }
  for (var k = 0; k < champ.value.length;k++) {
    var c = champ.value.substring(k,k+1);
    if (c > '9' || c < '0') {
      window.alert(sMsgFormat);
      champ.focus();
      return false;
    }
  }
  return true;
}

/*
Valider le numero de voie de l adresse :
Ne pas oublier de passer le nom du formulaire !!!!
Ex: validerCodePostal(monFormulaire.numVoie)
@param sMsg Message en cas d'erreur de format
*/
function validerVoieNumero(champ, sMsg) {
  for (var k = 0; k < champ.value.length;k++) {
    var c = champ.value.substring(k,k+1);
    if (c > '9' || c < '0') {
      window.alert(sMsg);
      champ.focus();
      return false;
    }
  }
  return true;
}

/*
Cette fonction vérifie le format JJ/MM/AAAA saisi et la validité de la date
Ne pas oublier de passer le nom du formulaire !!!!
Ex: verifierDate(monFormulaire, dateJJ, dateMM, dateAA )
@param sMsgJourIncorrect Message si la donnée jour est incorrecte
@param sMsgMoisIncorrect Message si la donnée mois est incorrecte
@param sMsgAnneeIncorrecte Message si la donnée année est incorrecte
@param sMsgDateInvalide Message si la date saisie n'existe pas 
@param sMsgApresLimite Message si la date est superieure a la date limite requise
*/
function verifierDate( form, dateJJ, dateMM, dateAA, sMsgJourIncorrect, sMsgMoisIncorrect, sMsgAnneeIncorrecte, sMsgDateInvalide, sMsgApresLimite) {
  var amin=1900; // année min
  var amax=1999; // année max
  var ok=1;

  var j = form.dateJJ.value;
  var m = form.dateMM.value;

  if (form.dateAA.value.length == 2) {
    var a = 19 + form.dateAA.value;
  }
  else {
    var a = form.dateAA.value;
  }


  if ( ((isNaN(j))||(j<1)||(j>31)) && (ok==1) ) {
     window.alert(sMsgJourIncorrect); ok=0; form.dateJJ.focus();
  }
  if ( ((isNaN(m))||(m<1)||(m>12)) && (ok==1) ) {
     window.alert(sMsgMoisIncorrect); ok=0; form.dateMM.focus();
  }
  if ( ((isNaN(a))||(a<amin)||(a>amax)) && (ok==1) ) {
     window.alert(sMsgAnneeIncorrecte); ok=0; form.dateAA.focus();
  }

  if (ok==1) {
     var d2=new Date(a,m-1,j);
     j2=d2.getDate();
     m2=d2.getMonth()+1;
     a2=d2.getYear();
     if (a2<=100) {a2=1900+a2}
     if ( (j!=j2)||(m!=m2)||(a!=a2) ) {
        window.alert(sMsgDateInvalide+" : "+j+"."+m+"."+a);
        ok=0;
        form.dateJJ.focus();
     }
     var vmax = a + m + j;
     if (vmax > 19860331) {
       window.alert(sMsgApresLimite);
       ok=0;
       form.dateJJ.focus();
     }
  }
  if (ok == 0) return false;
  return true;
}

/**
Pour rappel, les popups se resize automatiquement apres chargement maintenant et doivent etre créer avec l'option scrollbar a on
Depuis la refonte, toutes les popup inclue la partie jsp includeSimpleTop.jsp qui
sur le onLoad() du document rappelle une methode javascript 'adapterDimensions('conteneur') avec le conteneur <div> global
afin de remettre ou cacher les scrollbars et positionner une taille correcte qqsoit l'ecran et la resolution. 

@param page String URL du contenu de la page
@param nomFenetre (target ou nom de fenetre à créer, cf <A target>)
@param largeur int par defaut (ne sert presque a rien avec le resize automatique)
@param hauteur int par defaut (ne sert presque a rien avec le resize automatique)
@param options String pouvant contenir plein de parametres d'affichage (nullable)
@param myWindow object window qui doit faire l'ouverture (nullable)
*/
function popupCentrerScroll(page, nomFenetre, largeur, hauteur, options, myWindow){
    var top=(screen.availHeight-hauteur)/2;
    var left=(screen.width-largeur)/2;
  // Pour IE on diminue les largeur et hauteur
  if (document.all) { 
  	largeur = largeur - 5;
  	hauteur = hauteur - 10;
  	}
  // pour un affichage adapter des popup en cas de 800x600
  // en fonction des dimensions retrouvées dans la page palette.jsp
  if( (screen.height == 600) && (largeur < 790) && (hauteur > 500) && (hauteur < 600) ){
    var top = 5;
  }

  //------------tbr.pourNetscape6+-----------------
  if ((document.getElementById)&&(!document.all)) {
      if((screen.height == 600) && (largeur < 790) && (hauteur > 500) && (hauteur < 600) ){
        var top = 5;
      }
      else{
        var top=(screen.height-hauteur)/2;
        var left=(screen.width-largeur)/2;
        }
      var parametre = "top="+20+",left="+left+",width="+largeur+",height="+hauteur+",scrollbars=yes,resizable=yes,status=yes";
  }

  //------------tbr.pour les autres navigateurs-----
  else {
      var parametre = "top="+top+",left="+left+",width="+largeur+",height="+hauteur+",scrollbars=yes,resizable=yes,status=yes";
  }
  //------------tbr.fin test navigateur-------------

  if (options != "") {
    parametre += "," + options;
  }
  if (myWindow != null){
  	var fenetre = myWindow.open(page, nomFenetre, parametre);
  } else {
    // window objet global
	var fenetre = window.open(page, nomFenetre, parametre);
  }
  return fenetre;
}


function FormaterMontant(champ) {

	if (champ != null)
	{
		var k = champ.indexOf(",");
		if (k>=0)
		{
			var mnt1 = champ.substring(0,k);
			var mnt2 = champ.substring(k+1,champ.length);
			champ = mnt1 + "." + mnt2;
		}
		return champ;
	}
	return champ;
}

/*
valide le montant saisi via l'interface
*/
function validerMontant(champ) {

	var k = champ.indexOf(',');
	var l = champ.indexOf('.');

	if (k>=0)
	{
		return validerMontantSeparateur(champ,',');

	} else {

		return validerMontantSeparateur(champ,'.');
	}
}

/*
Valider montant en euro
Ne pas oublier de passer le nom du formulaire !!!!
Ex: validerTelephone(formulaire.telephone)
*/
function validerMontantSeparateur(champ,strg) {

  var k = champ.indexOf(strg);

  // si le montant saisi possede une virgule ou un point
  if (k>=0) {

	if (champ.length <2)
		return false;

	var mnt1 = champ.substring(0,k);
	var mnt2 = champ.substring(k+1,champ.length);
	//window.alert(" mnt1 " + mnt1 + "mnt2 " + mnt2);
	if (mnt2.indexOf(strg)!=-1)
	{
		return false;

	} else {
		if (!isNumeric(mnt2)) {
			return false;
		} else if (mnt2.length > 2)
		{
			return false;
		}
	}
	if (!isNumeric(mnt1))
	{
		return false;
	}

  } else  {
	  if (!isNumeric(champ)) {
			return false;
	  }
  }
  return true;
}


/*
Valider un numero de telephone
Ne pas oublier de passer le nom du formulaire !!!!
Ex: validerTelephone(formulaire.telephone)
@param sMsgLength Message en cas d'erreur sur la longueur
@param sMsgFormat Message en cas d'erreur sur le format
*/
function validerTelephone(champ, sMsgLength, sMsgFormat) {

  if( champ.value.length < 8 ) {
  	  window.alert(sMsgLength);
      champ.focus();
      return false;
  }

  for (var k = 0; k < champ.value.length;k++) {
    var c = champ.value.substring(k,k+1);
    if (c > '9' || c < '0') {
      window.alert(sMsgFormat);
      champ.focus();
      return false;
    }
  }
  return true;

}


/*
Valider un E-mail
Ne pas oublier de passer le nom du formulaire !!!!
Ex: validerMail(formulaire.mail)
*@param sMsg Message en cas d'erreur de format
*/
function validerMail(champ, sMsg) {
  if ((champ.indexOf("@")>0)&&(champ.indexOf(".")>=0) && (champ.lastIndexOf(".")<champ.length-1) &&
	    (champ.lastIndexOf(".")>champ.indexOf("@")+1)&& (champ.indexOf("@") == champ.lastIndexOf("@"))) {
     return true;
  } else {
  	 alert(sMsg);
     return false;
  }
}

/**
 *verifie si c'est un email
 */
function isEmail(champ) {
  if ((champ.indexOf("@")>0)&&(champ.indexOf(".")>=0) && (champ.lastIndexOf(".")<champ.length-1) &&
	    (champ.lastIndexOf(".")>champ.indexOf("@")+1)&& (champ.indexOf("@") == champ.lastIndexOf("@"))) {
     return true;
  } else {
     return false;
  }
}

/**
 * Vérifie si un email est correct (non vide, test de format, test sur les caractères interdits)
 * @param champ La valeur a controler
 * @param sMsgVide Message si le champ est vide
 * @param sMsgFormat message en cas d'erreur de format
 * @param sMsgCaracteresInterdit Message si le champ contient des caractères interdits
 **/
function isEmailCorrect(champ, sMsgVide, sMsgFormat, sMsgCaracteresInterdits){
	bRetour = true;
	
	if (champ == null || trim(champ).length <1){
		alert(sMsgVide);
        bRetour = false;
	}else if (isEmail(trim(champ)) == false){
		alert(sMsgFormat);
        bRetour = false;
	}else {
		bRetour = CheckBadChar(champ, 'e', sMsgCaracteresInterdits);
	}
  return bRetour;
}

/**
*  Verifie si c'est un num de tel portable (commencant par 06)
*  Prend en parametre la valeur à tester et les messages d'erreurs (champ vide et format non valide)
*
*  Exemple d'utilisation (cf selectPoseSurveillance.jsp) :
*    isTelephonePortableCorrect(f.elements['telephonePortable'].value, "vous devez renseigner votre no de portable", "le format du numéro de portable n'est pas valide")
*/
function isTelephonePortableCorrect(champ, sMsgEmpty, sMsgFormat){
    // Utilisation d'une expression régulière pour le contrôle du numéro de téléphone
    var telephonePortableMotif = /^06[0-9]{8}$/;
	retour = true;
    if (champ == null || trim(champ).length <1){
        window.alert(sMsgEmpty);
        retour = false;
    }else if (champ != null && trim(champ).length > 0 && !telephonePortableMotif.test(trim(champ))){
		window.alert(sMsgFormat);
		retour = false;
    }
	return retour;
}

/**
 * retire les espaces à droite et à gauche d'une chaine de caractères.
 */
function trim(chaine){
	if (chaine==null)
		return "";
	if (!(typeof chaine == "string")) // returns object if it is not a string
		return chaine;
	return chaine.replace(/^\s*|\s*$/g,'');
}


function browserEcrisCookie(){
	var expire = new Date();
	var unAn = expire.getTime() + (365*24*60*60*1000);
	expire.setTime(unAN);
	document.cookie = "infoGRF=Test;expires=" + expire.toGMTString();
}

function browserAccepteCookie(){
	var search = "infoGRF";

  	if (document.cookie.length > 0)  {
    		offset = document.cookie.indexOf(search);
    		if (offset != -1) { // if cookie exists
      			return true;
    		}
    		else return false;
  	}
  	return false;

}

/* close la popup 
 et renvoie sur insertValue(ville, departement)
*/
function closeAndInsertValue(ville, departement){
	close();
    insertValue(ville, departement);
}

/*
* 
*/
function insertValue(ville, departement){
    if(window.opener.document.rechercheListeActualiteForm != null){
        if ( window.opener.document.rechercheListeActualiteForm.commune != null ) {
          // dans la page actifs a ceder cet element n'existe pas
  		  window.opener.document.rechercheListeActualiteForm.commune.value=ville;
  		}
	  	window.opener.document.rechercheListeActualiteForm.departement.value=departement;
    }
	if(window.opener.document.rechercheRegComForm != null){
      	window.opener.document.rechercheRegComForm.elements['commune'].value=ville;
    	window.opener.document.rechercheRegComForm.elements['departement'].value=departement;
	}
	if(window.opener.document.reportCommandeForm != null){
		//dans ce cas la le numero de greffe est stock? dans le d?partement
      	window.opener.document.reportCommandeForm.elements['commune'].value=ville;
    	window.opener.document.reportCommandeForm.elements['numeroGreffe'].value=departement;
	}
}

function divVisible(elementid){
	chg = elementid.style;
    	largeur = window.top.screen.width;//screen.availWidth;
	hauteur = window.top.screen.height;//screen.availHeight;

	chg.left = "35%";
	chg.top = "50%";

	chg.position = "absolute";
	chg.visibility = "visible";
}

function divInvisible(elementid){
    chgt = document.getElementById(elementid).style;
	chgt.visibility = "hidden";
}

/* ------------ Nouvelles fonctions suite a refonte ergonomique ------- */

/* Vérifie que le date passée comme string est conforme au format JJ/MM/DDDD et est valide (jour/mois)
 * @return true si la date est valide, false si la date est incorrecte
 */
function isDateValid(d){
    if (d == "") return false; 
    e = new RegExp("^[0-9]{1,2}\/[0-9]{1,2}\/([0-9]{4})$"); 
    if (!e.test(d)) return false;
    // split de la date en trois entiers
    j = parseInt(d.split("/")[0], 10); // jour 
    m = parseInt(d.split("/")[1], 10); // mois 
    a = parseInt(d.split("/")[2], 10); // année 
    // définition des nombres de jours par mois (années bisextiles comprises)
    if (a%4 == 0 && a%100 !=0 || a%400 == 0) fev = 29; 
    else fev = 28; 
    nbJours = new Array(31,fev,31,30,31,30,31,31,30,31,30,31); 
    // retourne vrai si tout est correct
    return ( m >= 1 && m <=12 && j >= 1 && j <= nbJours[m-1] ); 
} 

/* Permet d'afficher les messages d'erreurs
 * Cache les onglets
 */
function showError (msgErreur) {
	showElement("struct-erreur");
	document.getElementById("struct-erreur").innerHTML=msgErreur;
}

/* Cache l'élément dont l'id est passé en paramètre (utiliser de préférence sur un DIV)
 */
function hideElement(id) {
	if (document.getElementById(id)!=null) {
		document.getElementById(id).style.visibility='hidden';
		document.getElementById(id).style.display='none';
	}
}

/* (Re)montre l'élément dont l'id est passé en paramètre (utiliser de préférence sur un DIV)
 */
function showElement(id) {
	if (document.getElementById(id)!=null) {
		document.getElementById(id).style.visibility='visible';
		document.getElementById(id).style.display='block';
	}
}

/* 
 * Resize automatique des popups. Compatible IE, netscape, firefox et safari.
 * Adapte la taille d'une popup a son contenu. 
 * @pram nomConteneur id du DIV qui doit contraindre la taille de la fenetre
 */
function adapterDimensions(nomConteneur) {
  	if (!document.getElementById(nomConteneur)) 
  		return;
 	hauteurMax = screen.height - 150;
	winWidth=document.getElementById(nomConteneur).offsetWidth;
    winHeight=document.getElementById(nomConteneur).offsetHeight;
 	offsetHauteur = 0;
 	offsetLargeur = 0;
 	offsetScrollbar = 0;
 	var agt=navigator.userAgent.toLowerCase();
 
    if (winHeight  > hauteurMax) {
    	winHeight = hauteurMax;
		if (document.all) {
	    	offsetScrollbar = 17;
	    } else {
	    	offsetScrollbar = 16;
	    }
    }

	if (document.all) {
	    offsetLargeur = 8;
 		offsetHauteur = 32+23; // 23 = statusbar
	} else if (agt.indexOf("firefox", 0) > 0) {
		    offsetLargeur = 8;
			offsetHauteur = 50;
	} else if (agt.indexOf("netscape", 0) > 0) {
		    offsetLargeur = 8;
			offsetHauteur = 36;
	} else if (agt.indexOf("safari", 0) > 0) {
		    offsetLargeur = 12;
			offsetHauteur = 40;
	}
	
    var top=(screen.availHeight-winHeight)/2;
    var left=(screen.width-winWidth)/2;
	window.moveTo(left,top);
	
	w = winWidth+offsetLargeur+offsetScrollbar;
	h = winHeight+offsetHauteur;
	window.resizeTo(w,h);

	// On affiche ou pas la scrollbar
	if (offsetScrollbar==0) {
		//alert('hidden');
		document.body.style.overflow='hidden';
	} else {
		document.body.style.overflow='';
		//alert('overflow = ' + document.body.style.overflow);
	}
	if (document.getElementById(nomConteneur).style.backgroundColor && document.getElementById(nomConteneur).style.backgroundColor != "")
		document.body.style.backgroundColor = document.getElementById(nomConteneur).style.backgroundColor;
	else
		document.body.style.backgroundColor = "#f1f1f1";
}

/* ------------ Fonctions utilisées par la taglib CheckJs ------- */
function __trim(f) {
	if (f.value!=null)
		f.value = f.value.replace(/^\s*|\s*$/g,'');
}

function __fSiren(f) {
	if (f.value!=null)
		f.value = f.value.replace(/\s/g,'');
}

/* ------------------------------------------------------------------------------------------------------
Cross browser Marquee script- Œ Dynamic Drive (www.dynamicdrive.com)
For full source code, 100's more DHTML scripts, and Terms Of Use, visit http://www.dynamicdrive.com
Credit MUST stay intact
*/

var actualwidth=''
var cross_marquee, ns_marquee
var copyspeed;
var pausespeed;
var iedom=document.all||document.getElementById

function marquee_populate(){
	if (iedom){
		cross_marquee=document.getElementById? document.getElementById("iemarquee") : document.all.iemarquee
		cross_marquee.style.left=parseInt(marqueewidth)+8+"px"
		cross_marquee.innerHTML=marqueecontent
		actualwidth=document.all? temp.offsetWidth : document.getElementById("temp").offsetWidth
	} else if (document.layers){
		ns_marquee=document.ns_marquee.document.ns_marquee2
		ns_marquee.left=parseInt(marqueewidth)+8
		ns_marquee.document.write(marqueecontent)
		ns_marquee.document.close()
		actualwidth=ns_marquee.document.width
	}
	lefttime=setInterval("marquee_scrollmarquee()",40)
}

function marquee_scrollmarquee(){
	if (iedom){
		if (parseInt(cross_marquee.style.left)>(actualwidth*(-1)+8))
			cross_marquee.style.left=parseInt(cross_marquee.style.left)-copyspeed+"px"
		else
			cross_marquee.style.left=parseInt(marqueewidth)+8+"px"
	} else if (document.layers){
		if (ns_marquee.left>(actualwidth*(-1)+8))
			ns_marquee.left-=copyspeed
		else
			ns_marquee.left=parseInt(marqueewidth)+8
	}
}

function marquee_init(){
	marqueespeed=(document.all)? marqueespeed : Math.max(1, marqueespeed-1) //slow speed down by 1 for NS
	copyspeed=marqueespeed
	pausespeed=(pauseit==0)? copyspeed: 0
	if (iedom)
		document.write('<span id="temp" style="visibility:hidden;position:absolute;top:-100px;left:-9000px">'+marqueecontent+'</span>')
	window.onload=marquee_populate
	if (iedom||document.layers){
		with (document){
			document.write('<table border="0" cellspacing="0" cellpadding="0"><td>')
			if (iedom){
				write('<div style="position:relative;width:'+marqueewidth+';height:'+marqueeheight+';overflow:hidden">')
				write('<div style="position:absolute;width:'+marqueewidth+';height:'+marqueeheight+';background-color:'+marqueebgcolor+'" onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=marqueespeed">')
				write('<div id="iemarquee" style="position:absolute;left:0px;top:0px"></div>')
				write('</div></div>')
			} else if (document.layers){
				write('<ilayer width='+marqueewidth+' height='+marqueeheight+' name="ns_marquee" bgColor='+marqueebgcolor+'>')
				write('<layer name="ns_marquee2" left=0 top=0 onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=marqueespeed"></layer>')
				write('</ilayer>')
			}
			document.write('</td></table>')
		}
	}
}

/* ------------------------------------------------------------------------------------------------------
 * End of cross-browser marquee script
 */

