
/**
 * 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 && bReturn; i++){	
		if(sBadString.indexOf(sChaine.charAt(i)) > -1) {
			bReturn = false;
			alert(sMsg + " " + sChaine.charAt(i));
		}
	}
	return bReturn;
}
 
 /**
  * Fonction : formaterSiren(numeroSiren)
  * @param numeroSiren String
  * Description : supprime tous les caracteres autre que numerique
  * date : 22.01.2003
  **/
  function formaterSiren(numeroSiren){
   return formaterNumerique(numeroSiren);
  }
 
 /**
  * Fonction : formaterNumerique(strNum)
  * @param strNum chaine a formatter
  * Description : supprime tous les caract?res autre que num?rique
  * date : 11.04.2007
  **/
  function formaterNumerique(strNum) {
    var tmp = strNum;
    var num = '';
    for (var i = 0; i < strNum.length; i++) {
      var c = strNum.substring(i,i+1);
      if ( c <= '9' && c >= '0') {
        num = num + c;
      }
    }
    return num;
  }

 /**
 * Modification du nom de domaine + nom de la webapp de http en https
 * afe - 02.07.2003
 * Permutation http a https.
 * Rajout de la supppression du port 80 pour Safari.
 */
 function httpToHttps(){
 	tmp = "" + window.location;
	tmp = tmp.substring(0,tmp.indexOf("/infogreffe/"));
	 tmp = tmp.replace("http://","https://");
	 tmp = tmp.replace(":80", "") ;
	return tmp;
 }
 
 function retourHttp(){
	 	
	 	tmp = "" + window.location;
	 	
	 	if(tmp.indexOf('redirect=accesDirect.do') != -1){
	 		//cas ou on arrive de la page d'acces direct, on souhaite retourne sur cette page et non sur la page d'accueil
	 		//on ne souhaite pas etre rediriger vers la page d'accueil
	 		//alert('accesDirect pas de redirection vers l accueil '+tmp);
	 		 tmp = tmp.replace("https://","http://");
			res = tmp; 	
	 	}else{
	 		//alert('redirection vers page d accueil');
	 		 tmp = tmp.replace("https://","http://");
		 	res = tmp.substring(0,tmp.indexOf("/infogreffe/"));
		 	window.location.href = res + "/infogreffe/";
	 	}
	 	
	 	return res;
	 }

 /**
  * 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;
}

/**
* verifie que la valeur passee en parametre est bien un numero 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 methode toFix supportee par l'ensemble des navigateurs
* La valeur passee doit etre une chaine au format Number, decimale representee par un point (.) et non une virgule a
* la francaise (,).
*/

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;
}

function isAlphaNumeric(valeur) {
	regexp = new RegExp("^[0-9a-zA-Z]+$");
	
	return regexp.test(valeur);
}

/*
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 verifie le format JJ/MM/AAAA saisi et la validite 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;
  }
    var parametre;
    
  //------------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;
        }
      parametre = "top="+20+",left="+left+",width="+largeur+",height="+hauteur+",menubar=no,scrollbars=yes,resizable=yes,status=yes";
  }
  //------------tbr.pour les autres navigateurs-----
  else {
    parametre = "top="+top+",left="+left+",width="+largeur+",height="+hauteur+",directories=no,menubar=no,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;
}

/**
* meme principe que la méthode précedente sans scrollbar
*/
function popupCentrerNoScroll(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;
  	}
  
  // en fonction des dimensions retrouv?es dans la page palette.jsp
  // pour un affichage adapter des popup en cas de 800x600
  if( (screen.height == 600) && (largeur < 790) && (hauteur > 500) && (hauteur < 600) ){
    var top = 5;
  }
    var parametre;
    
  //------------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;
        }
      parametre = "top="+20+",left="+left+",width="+largeur+",height="+hauteur+",menubar=no,scrollbars=no,resizable=yes,status=yes";
  }
  //------------tbr.pour les autres navigateurs-----
  else {
    parametre = "top="+top+",left="+left+",width="+largeur+",height="+hauteur+",directories=no,menubar=no,scrollbars=no,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;

}




/**
 * Retourne TRUE si le format de l'e-mail est correcte
 * DEPRECATED use isEmailCorrect instead
 */
function isEmail(champ) {
  if (	(champ.indexOf("@")>0) &&
  		(champ.indexOf(".")>=0) &&
  		(champ.lastIndexOf(".")<champ.length-1) &&
	    (champ.lastIndexOf(".")>champ.indexOf("@")+1) &&
	    (champ.indexOf("@") == champ.lastIndexOf("@")) &&
  	    (champ.indexOf("..") == -1) &&
  	    (champ.indexOf(".@") == -1) &&
  	    (champ.indexOf("@.") == -1) 
	    ) {
     return true;
  } else {
     return false;
  }
}

/**
 * Verifie si un email est correct (non vide, test de format, test sur les caracteres interdits)
 * @param champ La valeur a controler
 * @param bChampObligatoire true indique qu'on effectue les controles du champ vide, false qu'on ne genere pas d'alerte si champ blanc
 * @param sMsgVide Message d'alerte si le champ est vide
 * @param sMsgFormat message en cas d'erreur de format
 * @param sMsgCaracteresInterdit Message si le champ contient des caracteres interdits
 **/
function isEmailCorrect(champ, bChampObligatoire, sMsgVide, sMsgFormat, sMsgCaracteresInterdits){
	bRetour = true;	
	if (champ == null || trim(champ).length <1){
	    if (bChampObligatoire) {
			alert(sMsgVide);
		}
        bRetour = !bChampObligatoire;
	} else { 
		champ = trim(champ);
	    if (isEmail(champ) == false){
			alert(sMsgFormat);
	        bRetour = false;
		} else {
			bRetour = CheckBadChar(champ, 'e', sMsgCaracteresInterdits);
		}
	}
  return bRetour;
}


function trimAll(chaine){
	if (chaine==null)
		return "";
	if (!(typeof chaine == "string")) // returns object if it is not a string
		return chaine;
	return chaine.replace(/\s*/g,'');
}
/**
*  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 tous les espaces à gauche et à droite 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 stocke dans le departement
      	window.opener.document.reportCommandeForm.elements['commune'].value=ville;
    	window.opener.document.reportCommandeForm.elements['numeroGreffe'].value=departement;
	}
	if(window.opener.document.GageSansDepossessionForm != null){
		f = window.opener.document.GageSansDepossessionForm;
    	f.elements['numeroGreffe'].value=departement;

   		var radiosTypesConstituants = f.elements['constituant'];
		var selectedTypeConstituant = 'PPI';
		for (i=0 ; i<radiosTypesConstituants.length ; i++) {
			var current = radiosTypesConstituants[i];
			if (current.checked) {
				selectedTypeConstituant = current.value;
			}
		}
    	f.elements['commune'+selectedTypeConstituant].value=ville;
	}
}

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'element dont l'id est passe en parametre (utiliser de preference 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. 
 * @param nomConteneur id du DIV qui doit contraindre la taille de la fenetre
 * @param scrollbar à true pour forcer la présence des scrollbar. Utile dans le
 * cas de la fiche entreprise en popup. On reçoit null si l'includetop de préciser rien.
 */
function adapterDimensions(nomConteneur, forceScrollbar) {
  	if (!document.getElementById(nomConteneur))
  		return;
  	var hauteurMax = screen.height - 150;
	var winWidth=document.getElementById(nomConteneur).offsetWidth;
    var winHeight=document.getElementById(nomConteneur).offsetHeight;
 	var offsetHauteur = 0;
 	var offsetLargeur = 0;
 	var offsetScrollbar = 0;
 	var agt=navigator.userAgent.toLowerCase();

    if (winHeight  > hauteurMax || forceScrollbar == true) {
    	if (winHeight  > hauteurMax) {
	    	winHeight = hauteurMax;
	    }
		if (document.all) {
	    	offsetScrollbar = 17;
	    } else {
	    	offsetScrollbar = 16;
	    }
    }
    
    
    // attention agt peut contenir plusieurs valeurs par exemple chrome contient également safari
	if (agt.indexOf("msie 7.0", 0) > 0 || agt.indexOf("firefox/3", 0) > 0 || agt.indexOf("msie 8.0", 0) > 0) {
		offsetLargeur = 30;
        offsetHauteur = 84;	
    } else if (document.all) {
	    
	    	offsetLargeur = 3; //3
	 		offsetHauteur = 32+23; //65 23 = statusbar
    
    } else if (agt.indexOf("chrome", 0) > 0 &&  agt.indexOf("safari", 0) > 0) {
	    
	    	offsetLargeur = 12;
			offsetHauteur = 84;
			//alert(agt);
			
	} else if (agt.indexOf("firefox", 0) > 0) {
		    
			offsetLargeur = 15;
			offsetHauteur = 84;
	
	} else if (agt.indexOf("netscape", 0) > 0) {
		    
			offsetLargeur = 8;
			offsetHauteur = 36;
			
	} else if (agt.indexOf("safari", 0) > 0 && agt.indexOf("chrome", 0) < 0) {
		    
			offsetLargeur = 12;
			offsetHauteur = 60;
	}
	
    if ( window.moveTo ) {
	    var left=(screen.width-winWidth)/2;
	    var top=(screen.availHeight-winHeight)/2;
	 	window.moveTo(left,top);
	}
	
	if ( window.resizeTo ) {
		var w = winWidth+offsetLargeur+offsetScrollbar;
		var 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){
			if (iedom){
				write('<div style="position:relative;width:'+marqueewidth+';height:'+marqueeheight+';overflow:hidden">');
				write('<div style="position:absolute;width:'+marqueewidth+';height:'+marqueeheight+'; onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=marqueespeed">');
				write('<div id="iemarquee" style="position:absolute;left:0px;top:0px; color:white; font-size:17px;font-weight:bold;"></div>');
				write('</div></div>');
			} else if (document.layers){
				write('<ilayer width='+marqueewidth+' height='+marqueeheight+' name="ns_marquee">');
				write('<layer name="ns_marquee2" left=0 top=0 onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=marqueespeed"></layer>');
				write('</ilayer>');
			}
		}
	}
}

/* 
 * Propose d'ouvrir de différentes manière une nouvelle fenêtre :
 * @param int N° de la solution choisie
 * @param String URL de la page cible
 */
function ouvrirNouvellePage(solution, url){
	switch (solution) {
		case 1 : 
			// Solution 1 : charger l'URL dans une nouvelle popup et fermer celle du Login
			window.open(url);
			window.close();
			break;
		case 2 :
			// Solution 2 : charger l'URL dans la popup du Login
			window.location = url;
			break;
		case 3 :
			// Solution 3 : charger l'URL dans la frame principale et fermer la popup du login	
			window.opener.location = url;
			window.close();
			break;
	}
}

// TODO REVIEWGOI Je m'attendais à voir ici des histoires de pipe et là, ça me semble un peu superflu comme fonction.
function isGreffeDansListeGreffe(numgreffe, listeGreffe)
{
		 
		if (listeGreffe.indexOf(numgreffe)>=0)
		{
			return true;		
		}
		else
		{
			return false;
		}
}

function isCodePostalEtrangerValide(champCP) {
	regexp = new RegExp("^[0-9a-zA-Z\-]+$");
	
	return champCP.value == null || trim(champCP.value).length == 0 ||
		(trim(champCP.value).length >= 0 && 
		trim(champCP.value).length <= 5 &&
		regexp.test(trim(champCP.value)));
}

function isCodePostaleFRValide(champCP) {
	return champCP.value != null &&
		trim(champCP.value).length == 5 &&
		isNumeric(trim(champCP.value));
}

function isPaysFrance(champ) {
	return champ.value == "FR" || champ.value == "FX";
}
/* ------------------------------------------------------------------------------------------------------
 * End of cross-browser marquee script
 */

 

