
function trim(sString) {
	return rtrim(ltrim(sString));	
}	

function rtrim(sString) {
	while (sString.substring(sString.length-1, sString.length) == ' ') {
		sString = sString.substring(0,sString.length-1);
	}
	return sString;
}

function ltrim(sString)  {
	while (sString.substring(0,1) == ' ') {
		sString = sString.substring(1, sString.length);
	}
	return sString;
}

function lon(target)
{
	try {
		if (parent.visibilityToolbar)
			parent.visibilityToolbar.set_display("standbyDisplayNoControls");
	} catch (e) {}

	try {
		if (!target)
			target = this;

		if (!target._lon_disabled_arr)
			target._lon_disabled_arr = new Array();
		else if (target._lon_disabled_arr.length > 0)
			return true;

		target.document.getElementById("loaderContainer").style.display = "";
		var select_arr = target.document.getElementsByTagName("select");

		for (var i = 0; i < select_arr.length; i++) {
			if (select_arr[i].disabled)
				continue;

			select_arr[i].disabled = true;
			_lon_disabled_arr.pop(select_arr[i]);
			var clone = target.document.createElement("input");
			clone.type = "hidden";
			clone.name = select_arr[i].name;
			var values = new Array();
			for (var n = 0; n < select_arr[i].length; n++) {
				if (select_arr[i][n].selected) {
					values[values.length] = select_arr[i][n].value;
				}
			}
			clone.value = values.join(",");
			select_arr[i].parentNode.insertBefore(clone, select_arr[i]);
		}
	} catch (e) {
		return false;
	}
	return true;
}

function loff(target)
{
	try {
		if (parent.visibilityToolbar) {
			parent.visibilityToolbar.set_display(visibilityCount
												 ? "standbyDisplay"
												 : "standbyDisplayNoControls");
		}
	} catch (e) {}

	try {
		if (!target)
			target = this;

		target.document.getElementById("loaderContainer").style.display = "none";

		if (target._lon_disabled_arr) {
			while(_lon_disabled_arr.length > 0) {
				var select = _lon_disabled_arr.push();
				select.disabled = false;

				var clones_arr = target.document.getElementsByName(select.name);
				for (var n = 0; n < clones_arr.length; n++) {
					if ("hidden" == clones_arr[n].type)
						clones_arr[n].parent.removeChild(clones_arr[n]);
				}
			}
		}
	} catch (e) {
		return false;
	}
	return true;
}
	
function affiche(n) {
	var obj;
	if(document.getElementById) {
		obj = document.getElementById(n);
	} else if(document.all) {
		obj = document.all[n];
	} else return;
	if (obj) {
		obj.style.display = ""; //preferer "" à "block", pour FireFox
	}
}

function masque(n) {
	var obj;
	if(document.getElementById) {
		obj = document.getElementById(n);
	} else if(document.all) {
		obj = document.all[n];
	} else return;
	if (obj) {
		obj.style.display = "none";
	}
}

function affiche_ligne(n) {
	var obj;
	if(document.getElementById) {
			obj = document.getElementById(n);
		} else if(document.all) {
			obj = document.all[n];
		} else return;
		if (obj) {
			obj.style.display = ""; //preferer "" à "block", pour FireFox
	}
}

function masque_ligne(n) {
	var obj;
	if(document.getElementById) {
		obj = document.getElementById(n);
	} else if(document.all) {
		obj = document.all[n];
	} else return;
	if (obj) {
		obj.style.display = "none";
	}
}

//Utilisé dans les href="javascript:rien();"
//car quand on met "#" ca remonte le navig en haut
// et si on met "javascript:", FireFox ouvre la console Javascript
function rien() {
}


//Permet de positionner le navigateur
// au centre de l'écran avec une largeur/hauteur par défaut
function cale_navig() {
	//Largeur et hauteur désirée lors de la première arrivée sur le site
	l = 1024;
	h = 768;
	maxX = screen.width;
	if (l>maxX)
		l=maxX;
	maxY = screen.availHeight;
	if (h>maxY)
		h=maxY;
	gauche = (maxX/2)-(l/2);
	dessus = (maxY/2)-(h/2);
	self.moveTo(gauche, dessus);
	self.resizeTo(l,h);
	self.focus();
}

function getWindowHeight() {
    var windowHeight=0;
    if (typeof(window.innerHeight)=='number') {
        windowHeight=window.innerHeight;
    }
    else {
     if (document.documentElement&&
       document.documentElement.clientHeight) {
         windowHeight = document.documentElement.clientHeight;
    }
    else {
     if (document.body&&document.body.clientHeight) {
         windowHeight=document.body.clientHeight;
      }
    	}
    }
    return windowHeight;
}

function getWindowWidth() {
    var windowWidth=0;
    if (typeof(window.innerWidth)=='number') {
        windowWidth=window.innerWidth;
    }
    else {
     if (document.documentElement&&
       document.documentElement.clientWidth) {
         windowWidth = document.documentElement.clientWidth;
    }
    else {
     if (document.body&&document.body.clientWidth) {
         windowWidth=document.body.clientWidth;
      }
    	}
    }
    return windowWidth;
}

function verif_date(j, j_obli, m, m_obli, a, a_obli, a_min, a_max) {
	//Verif des obligations :
	if (j_obli && j.value=="") {
		alert ("Vous devez saisir le jour !");
		j.focus();
		return false;
	}
	if (m_obli && m.value=="") {
		alert ("Vous devez saisir le mois !");
		m.focus();
		return false;
	}
	if (a_obli && a.value=="") {
		alert ("Vous devez saisir l'année !");
		a.focus();
		return false;
	}			
	//Vérif JOUR
	var int_day = parseInt(j.value,10);
	if (j.value!="" && !(int_day >= 1 && int_day <= 31)) { //test sur la valeur possible du jour
		alert ("Jour invalide ! (uniquement des chiffres entre 1 et 31)");
		j.focus();
		return false;
	}
	//Vérif MOIS
	var int_mois = parseInt(m.value,10);
	if (m.value!="" && !(int_mois >= 1 && int_mois <= 12)) { //test sur la valeur possible du mois
		alert ("Mois invalide ! (uniquement des chiffres entre 1 et 12)");
		m.focus();
		return false;
	}
	//Vérif ANNEE
	var int_annee = parseInt(a.value,10);
	if (a.value!="" && !(int_annee >= a_min && int_annee <= a_max)) { //test sur la valeur possible de l'année
		alert ("Annee invalide ! (uniquement des chiffres entre " + a_min + " et " + a_max + ")");
		a.focus();
		return false;
	}
	//Si on a mis un jour, il faut un mois :
	if (j.value!="" && m.value=="") {
		alert ("Vous avez saisi un jour, vous devez saisir un mois.");
		m.focus();
		return false;
	}
	//Si on a mis un mois, il faut une annee :
	if (m.value!="" && a.value=="") {
		alert ("Vous avez saisi un mois, vous devez saisir une annee.");
		a.focus();
		return false;
	}

	return true;
}

function verif_fichier(f, arr_Ext, obli) {
	//f : champ formulaire (ex : document.myform.photo1)
	//arr_Ext : tableau des extensions sur 4 lettres autorisées (ex : array(".jpg", "jpeg"))
	//obli : champs obligatoire ?
	//---------------------------
	//Verif obliga du fichier :
	if (obli) {
		if (f.value=="") {
			alert ("Vous devez choisir un fichier !");
			f.focus();
			return false;
		}
	} else {
		//Fichier non obligatoire, donc si vide, renvoit ok
		if (f.value=="") {
			return true;
		} //Sinon bah test de la bonne extension
	}
	
	//Verif extension du fichier
	// Tableau contenant la liste des extensions autorisées
	//var arr_Ext = new Array(".jpg", "jpeg");		
	var str_AlertExt = "L'extension du fichier que vous souhaitez attacher n'est pas conforme.\nLes extensions autorisées sont :";

	for (var i=0; i<arr_Ext.length; i++)
		if (arr_Ext[i].indexOf(".") > -1)
			str_AlertExt += '\n           - ' + arr_Ext[i];
		else
			str_AlertExt += '\n           - .' + arr_Ext[i];

	if (f.value.length < 5){
		alert ("Le nom de fichier ne semble pas valide !");
		f.focus();
		return false;
	}
	
	// Récup extension du fichier
	str_FileExt = f.value.substr(f.value.length - 4, 4);
	bln_Stop = true;
	for (var j=0; j<arr_Ext.length; j++)
		if (str_FileExt.toLowerCase() == arr_Ext[j].toLowerCase())
			bln_Stop = false;	// L'entension du fichier est autorisée
		
	if (bln_Stop) {
		alert(str_AlertExt);
		f.focus();
		return false;	// L'entension du fichier n'est pas autorisée
	}
	
	//Tous les tests sont ok
	return true;
}

function popup(f,nom, w, h) {
   var top=0;
   var left=0;
   var larg_scroll=10;
   if (self.screen) {
   	larg_scroll = (screen.width*1)/100;
      left=((screen.width*1)/2) - ((w*1)/2) - larg_scroll;
      top=((screen.height*1)/2) - ((h*1)/2) - larg_scroll;
   }
   myWin = window.open(f, nom, 'resizable,screenX=0,screenY=0,scrollbars=yes,menubar=yes,top='+top+',left='+left +',width=' + w + ',height=' + h );
   myWin.focus();
}

function petitpopup(f,nom, w, h) {
   var top=0;
   var left=0;
   if (self.screen) {
   	larg_scroll = (screen.width*1)/100;
      left=((screen.width*1)/2) - ((w*1)/2) - larg_scroll;
      top=((screen.height*1)/2) - ((h*1)/2) - larg_scroll;
   }
   myWin = window.open(f, nom, 'resizable,screenX=0,screenY=0,scrollbars=no,menubar=no,top='+top+',left='+left +',width=' + w + ',height=' + h );
   myWin.focus();
}

function form_login_valid(f) {
	if (f.form_login.value=="") {
		alert ("Vous devez saisir votre identifiant !\nAttention aux majuscules et minuscules qui sont respectées.");
		f.form_login.focus();
		return false;
	}
	if (f.form_pass.value=="") {
		alert ("Vous devez saisir votre mot de passe !\nAttention aux majuscules et minuscules qui sont respectées.");
		f.form_pass.focus();
		return false;
	}
	return true;
}

function form_loginperdu_valid(f) {
	if (f.form_login.value=="" && f.form_email.value=="") {
		alert ("Vous devez saisir votre identifiant ou votre email !\nAttention aux majuscules et minuscules qui sont respectées.");
		f.form_login.focus();
		return false;
	}
	if (f.form_login.value!="" && f.form_email.value!="") {
		alert ("Vous devez saisir SOIT votre identifiant SOIT votre email !\nAttention aux majuscules et minuscules qui sont respectées.");
		f.form_login.focus();
		return false;
	}
	if (f.form_email.value!="") {
		if (!EmailValid(f.form_email.value)) {
			alert ("Votre email ne semble pas valide !");
			f.form_email.focus();
			return false;
		}
	}
	return true;
}

function EmailValid(email) {
   /*
      Via ce script vous spécifiez que l'email doit : 
      - contenir une arobase et un point
      - avant la présence de l'arobase nous pouvons trouver, des lettres quelconques
        (en minuscule ou majuscule), n'importe quel chiffre, et les caractères "." ou "-" ou "_"
      - aprés l'arobase, la vérification reste la même mais on interdit la présence de "_"
        et il faut impérativement au moins de caractères entre l'arobase et le point
      - avant le point, nous devons une succession de au moins 1 caractères
      - aprés le point, nous devons une succession de au moins 2 caractères.  
   */
	/*
	var verif = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{1,}[.][a-zA-Z]{2,}$/
	if (verif.exec(email) == null)
	  return false;
	return true;
*/
	var usr    = "([a-zA-Z0-9][a-zA-Z0-9_.-]*|\"([^\\\\\x80-\xff\015\012\"]|\\\\[^\x80-\xff])+\")";
	var domain = "([a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*[a-zA-Z0-9][a-zA-Z0-9._-]*\\.[a-zA-Z]{2,5}";
	var regex  = "^" + usr + "\@" + domain + "$";
	var rgx    = new RegExp(regex);
	return rgx.exec(email) ? true : false;
}

function isDate(d) {
    if (d == "")
        return false;
    e = new RegExp("^[0-9]{1,2}\/[0-9]{1,2}\/([0-9]{2}|[0-9]{4})$");
    if (!e.test(d))
        return false;
    j = parseInt(d.split("/")[0]);
    m = parseInt(d.split("/")[1]);
    a = parseInt(d.split("/")[2]);
    if (a < 1000) {
        if (a < 89)    a+=2000;
        else a+=1900;
    }
    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);
    return ( m >= 1 && m <=12 && j >= 1 && j <= nbJours[m-1] );
}
		
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    //obj.visibility=v;
    }
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

// Browser Detect Lite  v2.1.4
// http://www.dithered.com/javascript/browser_detect/index.html
// modified by Chris Nott (chris@NOSPAMdithered.com - remove NOSPAM)
function BrowserDetectLite() {
   var ua = navigator.userAgent.toLowerCase(); 

   // browser name
   this.isGecko     = (ua.indexOf('gecko') != -1 && ua.indexOf('safari') == -1);
   this.isMozilla   = (this.isGecko && ua.indexOf('gecko/') + 14 == ua.length);
   this.isNS        = ( (this.isGecko) ? (ua.indexOf('netscape') != -1) : ( (ua.indexOf('mozilla') != -1) && (ua.indexOf('spoofer') == -1) && (ua.indexOf('compatible') == -1) && (ua.indexOf('opera') == -1) && (ua.indexOf('webtv') == -1) && (ua.indexOf('hotjava') == -1) ) );
   this.isIE        = ( (ua.indexOf('msie') != -1) && (ua.indexOf('opera') == -1) && (ua.indexOf('webtv') == -1) ); 
   this.isSafari    = (ua.indexOf('safari') != - 1);
   this.isOpera     = (ua.indexOf('opera') != -1); 
   this.isKonqueror = (ua.indexOf('konqueror') != -1 && !this.isSafari); 
   this.isIcab      = (ua.indexOf('icab') != -1); 
   this.isAol       = (ua.indexOf('aol') != -1); 
   
   // spoofing and compatible browsers
   this.isIECompatible = ( (ua.indexOf('msie') != -1) && !this.isIE);
   this.isNSCompatible = ( (ua.indexOf('mozilla') != -1) && !this.isNS && !this.isMozilla);
   
   // browser version
   this.versionMinor = parseFloat(navigator.appVersion); 
   
   // correct version number
   if (this.isNS && this.isGecko) {
      this.versionMinor = parseFloat( ua.substring( ua.lastIndexOf('/') + 1 ) );
   }
   else if (this.isIE && this.versionMinor >= 4) {
      this.versionMinor = parseFloat( ua.substring( ua.indexOf('msie ') + 5 ) );
   }
   else if (this.isMozilla) {
      this.versionMinor = parseFloat( ua.substring( ua.indexOf('rv:') + 3 ) );
   }
   else if (this.isSafari) {
      this.versionMinor = parseFloat( ua.substring( ua.lastIndexOf('/') + 1 ) );
   }
   else if (this.isOpera) {
      if (ua.indexOf('opera/') != -1) {
         this.versionMinor = parseFloat( ua.substring( ua.indexOf('opera/') + 6 ) );
      }
      else {
         this.versionMinor = parseFloat( ua.substring( ua.indexOf('opera ') + 6 ) );
      }
   }
   else if (this.isKonqueror) {
      this.versionMinor = parseFloat( ua.substring( ua.indexOf('konqueror/') + 10 ) );
   }
   else if (this.isIcab) {
      if (ua.indexOf('icab/') != -1) {
         this.versionMinor = parseFloat( ua.substring( ua.indexOf('icab/') + 6 ) );
      }
      else {
         this.versionMinor = parseFloat( ua.substring( ua.indexOf('icab ') + 6 ) );
      }
   }
   
   this.versionMajor = parseInt(this.versionMinor); 
   this.geckoVersion = ( (this.isGecko) ? ua.substring( (ua.lastIndexOf('gecko/') + 6), (ua.lastIndexOf('gecko/') + 14) ) : -1 );
	//  GECKO REVISION
	this.geckoRevision = -1;
	if (this.isGecko) {
		temp = ua.split("rv:");
		this.geckoRevision = parseFloat(temp[1]);
	}
   
   // dom support
   this.isDOM1 = (document.getElementById);
   this.isDOM2Event = (document.addEventListener && document.removeEventListener);
   
   // css compatibility mode
   this.mode = document.compatMode ? document.compatMode : 'BackCompat';

   // platform
   this.isWin   = (ua.indexOf('win') != -1);
   this.isWin32 = (this.isWin && ( ua.indexOf('95') != -1 || ua.indexOf('98') != -1 || ua.indexOf('nt') != -1 || ua.indexOf('win32') != -1 || ua.indexOf('32bit') != -1 || ua.indexOf('xp') != -1) );
   this.isMac   = (ua.indexOf('mac') != -1);
   this.isUnix  = (ua.indexOf('unix') != -1 || ua.indexOf('sunos') != -1 || ua.indexOf('bsd') != -1 || ua.indexOf('x11') != -1)
   this.isLinux = (ua.indexOf('linux') != -1);
   
   // specific browser shortcuts
   this.isNS4x = (this.isNS && this.versionMajor == 4);
   this.isNS40x = (this.isNS4x && this.versionMinor < 4.5);
   this.isNS47x = (this.isNS4x && this.versionMinor >= 4.7);
   this.isNS4up = (this.isNS && this.versionMinor >= 4);
   this.isNS6x = (this.isNS && this.versionMajor == 6);
   this.isNS6up = (this.isNS && this.versionMajor >= 6);
   this.isNS7x = (this.isNS && this.versionMajor == 7);
   this.isNS7up = (this.isNS && this.versionMajor >= 7);
   
   this.isIE4x = (this.isIE && this.versionMajor == 4);
   this.isIE4up = (this.isIE && this.versionMajor >= 4);
   this.isIE5x = (this.isIE && this.versionMajor == 5);
   this.isIE55 = (this.isIE && this.versionMinor == 5.5);
   this.isIE55up = (this.isIE && this.versionMinor >= 5.5);
   this.isIE5up = (this.isIE && this.versionMajor >= 5);
   this.isIE6x = (this.isIE && this.versionMajor == 6);
   this.isIE6up = (this.isIE && this.versionMajor >= 6);
   
   this.isIE4xMac = (this.isIE4x && this.isMac);
}