//============================================================================
function ModalWin(url,width,height,sc){		
//	if (navigator.family== 'ie4' || navigator.family== 'ie3' ){
//		window.showModalDialog(url,window,"dialogWidth:"+width+"px;dialogHeight:"+height+50+"px;edge:Raised;center:1;help:0;resizable:1;maximize:1");
//	}else{
		if (sc=='') sc="no"
		var left = screen.availWidth/2 - width/2;
		var top = screen.availHeight/2 - height/2;
		win = window.open(url, "", "width="+width+"px,height="+height+",left="+left+",top="+top +",scrollbars=" +sc);
		window.onfocus = function(){
			try {
				if(win.closed==false) win.focus();
			} catch (e){
				void(0);
			}
		};
//	}
}
//============================================================================
function em(t){
var p;
var at="@";
	if (t==1) p="info";
	if (t==2) p="support";
	document.write(p+at+'publiatis.com');
}
function getElById(idVal) {
  if (document.getElementById != null)
    return document.getElementById(idVal)
  if (document.all != null)
    return document.all[idVal]
  
  alert("Problem getting element by id")
  return null
}
// navigator detection
WIN = (navigator.appVersion.indexOf("Windows")!=-1);
MAC = (navigator.appVersion.indexOf("Machintosh")!=-1);
OTH = !WIN && !MAC;

IE4 = (navigator.appName=='Microsoft Internet Explorer') && (parseFloat(navigator.appVersion)>=4);
IE6 = IE4 && (navigator.appVersion.indexOf("MSIE 6") != -1) && WIN;
IE5 = (IE4 && (navigator.appVersion.indexOf("MSIE 5") != -1) && WIN) || IE6;
NS6 = (navigator.appName=='Netscape') && (parseFloat(navigator.appVersion)>=5);
NS4 = !NS6 && (navigator.appName=='Netscape') && (parseFloat(navigator.appVersion)>=4);
IE4 = IE4 && !IE5 && !IE6;
// globals
SBA = false;

// menu color swapper
function menuColorMaker(id,state,col1,col2,col3,col4)
{
	var td,font,selected;

	if (IE5 || NS6)
	{
		td	= document.getElementById("menu"+id);
		font	= document.getElementById("font"+id);
		selected= (font && td);

		if (state) {
			if (selected)	td.style.backgroundColor= col1;
			if (selected)	font.style.color	= col2;
		}
		else {
			if (selected)	td.style.backgroundColor= col3;
			if (selected)	font.style.color	= col4;
		}
	}
	return true;
}

function menuColor(id,state)
{	return menuColorMaker(id,state,"#ffffcc","#cc0000","#cccc99","black");}

var remote=null;
function Fenetre(n,u,w,h,x) {
	remote=window.open(u,n,'width='+w+',height='+h+',toolbar=no,location=0,directories=no,status=no,menubar=0,scrollbars=yes,resizable=yes');
	if (remote != null) {
		if (remote.opener == null )
			remote.opener = self;
			remote.location.href=u;
	}
	if (x==1){return remote;}
}
//surligne les TD
function S(id,color,c,ex)
{var i=1
	i=i+ ex
	for (i;i<=c;i++){
		eval('document.all[\'' + id + i + '\'].style.backgroundColor=\'' + color + '\';');
	}
}


//Fonctions Menu
function MM_swapImgRestore() { 
  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_preloadImages() { 
  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_findObj(n, d) { 
  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() { 
  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 ITrim( chaine ){
	return (chaine.indexOf('  ')==-1)?chaine:ITrim( chaine.substring( 0 , chaine.indexOf('  ') )+chaine.substring( chaine.indexOf('  ') +1 ) )
}

function LTrim( chaine ){
	return (chaine.charAt(0)==' ')?LTrim( chaine.substring( 1 )):chaine
}

function RTrim( chaine ){
	return (chaine.charAt( chaine.length - 1 )==' ')?RTrim( chaine.substring( 0 , chaine.length - 1 )):chaine
}

function Trim( chaine ){
	return LTrim( RTrim( ITrim( chaine ) ) )
}

function Ctrok(c){
	var ca='À,Á,Â,Ã,Ä,Å,Æ,Ç,È,É,Ê,Ë,Ì,Í,Î,Ï,Ñ,Ò,Ó,Ô,Õ,Ö,Ù,Ú,Û,Ü,Ý,à,á,â,ã,ä,å,æ,ç,è,é,ê,ë,ì,í,î,ï,ð,ñ,ò,ó,ô,õ,ö,ù,ú,û,ü,ý,ÿ,œ,Œ, ,\',"';
	var ta=ca.split(',')
	for (var i=0;i<ta.length;i++){
		if (c.lastIndexOf(ta[i])>-1) return(ta[i]);
	}
	return ('');
}

function ValidFile(){
	var param = ValidFile.arguments;
	if(typeof(param[0])=="object") {
		var f = param[0].value;
		param[0].style.backgroundColor="#FFCC66";
		param[0].style.color="#330066";
	} else var f = param[0];
	var ext_ok = param[1];
	var err1 = (param[2]!=null?param[2]:"Caractère interdit dans le nom du fichier !");
	var err2 = (param[3]!=null?param[3]:"Extension autorisée");
	var tfil,fil,ext,text,i
	fil=Trim(f.toUpperCase());
	if (fil=='') return(true);
	tfil=fil.split('\\');
	fil=tfil[tfil.length-1];
	var vca=Ctrok(fil)
	if (vca!='') {
		window.alert('[ '+vca+' ] : '+err1);
		return(false);
	}
	ext=fil.split('.')
	switch (ext[ext.length-1]) {
		case 'XLS': 
			if (ext_ok.lastIndexOf('XLS')==-1){
				window.alert(err2+' : '+ext_ok);
				return(false);
			}
			break;
		case 'CSV': 
			if (ext_ok.lastIndexOf('CSV')==-1){
				window.alert(err2+' : '+ext_ok);
				return(false);
			}
			break;
		case 'DOC': 
			if (ext_ok.lastIndexOf('DOC')==-1){
				window.alert(err2+' : '+ext_ok);
				return(false);
			}
			break;
		case 'PDF': 
			if (ext_ok.lastIndexOf('PDF')==-1){
				window.alert(err2+' : '+ext_ok);
				return(false);
			}
			break;
		case 'FMP': 
			if (ext_ok.lastIndexOf('FMP')==-1){
				window.alert(err2+' : '+ext_ok);
				return(false);
			}
			break;
			
		case 'PPS': 
			if (ext_ok.lastIndexOf('PPS')==-1){
				window.alert(err2+' : '+ext_ok);
				return(false);
			}
			break;		
		case 'GIF': 
			if (ext_ok.lastIndexOf('GIF')==-1){
				window.alert(err2+' : '+ext_ok);
				return(false);
			}
			break;
		case 'JPG': 
			if (ext_ok.lastIndexOf('JPG')==-1){
				window.alert(err2+' : '+ext_ok);
				return(false);
			}
			break;
		case 'JPEG': 
			if (ext_ok.lastIndexOf('JPEG')==-1){
				window.alert(err2+' : '+ext_ok);
				return(false);
			}
			break;
		case 'TXT': 
			if (ext_ok.lastIndexOf('TXT')==-1){
				window.alert(err2+' : '+ext_ok);
				return(false);
			}
			break;
		case 'ZIP': 
			if (ext_ok.lastIndexOf('ZIP')==-1){
				window.alert(err2+' : '+ext_ok);
				return(false);
			}
			break;
		case 'PPT': 
			if (ext_ok.lastIndexOf('PPT')==-1){
				window.alert(err2+' : '+ext_ok);
				return(false);
			}
			break;
		default: 
			window.alert(param[3]+' : XLS, DOC, PDF, FMP, PPT, PPS, GIF, JPG, JPEG, TXT, ZIP, PPT')
			return(false);
	}
	if(typeof(param[0])=="object") {
		param[0].style.backgroundColor="#FFFFFF";
		param[0].style.color="#330066";
	}
	return (true);
}

function zoom(fen,w,h){
	window.open(fen,'zoom','width='+w+', height='+h+', toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes');
}
var win = false;
var mover = false;
function init() {
	var param = init.arguments;
	document.onkeydown = register;
	document.onkeyup = register;
	document.onunload = unregister;
	window.onunload = unregister;
	document.onclick = stopfocus;
	window.onclick = stopfocus;
	document.onmouseover = stopfocus;
	window.onmouseover = stopfocus;
	document.onmousemove = stopfocus;
	window.onmousemove = stopfocus;
	document.onblur = startfocus;
	window.onblur = startfocus;
	document.onmouseout = startfocus;
	window.onmouseout = startfocus;
	if(document.forms!=null) {
		if(document.forms.length>0) {
			for(i=0;document.forms.length;i++) {
				document.forms[i].onfocus = stopfocus;
				document.forms[i].onmouseover = stopfocus;
				document.forms[i].onmousedown = stopfocus;
				document.forms[i].onmouseup = stopfocus;
				document.forms[i].onmousemove = stopfocus;
				document.forms[i].onclick = stopfocus;
				if(document.forms[i].elements!=null) {
					if(document.forms[i].elements.length>0) {
						for(j=0;document.forms[i].elements.length;j++) {
							document.forms[i].elements[j].onfocus = stopfocus;
							document.forms[i].elements[j].onmouseover = stopfocus;
							document.forms[i].elements[j].onmousedown = stopfocus;
							document.forms[i].elements[j].onmouseup = stopfocus;
							document.forms[i].elements[j].onmousemove = stopfocus;
							document.forms[i].elements[j].onclick = stopfocus;
						}
					}
				}
			}
		}
	}
	if(param.length>0) if(param[0]) setInterval('focuspopup()', 100);
}
function stopfocus() {
	mover=true;
}
function startfocus() {
	mover=false;
}
function focuspopup() {
	if(window.opener!=null) {
		if(window.opener.win!=null) {
			if(window.opener.win!=false&&!mover) {
				mover=true;
				window.opener.win.focus();
			}
		}
	}
}
function unregister(e) {
	if(window.opener!=null) if(window.opener.win!=null) if(window.opener.win!=false) window.opener.win = false;
}
function register(e) {
	if (!e) e = window.event;
	if(e.keyCode==27) window.close();
}


function PopupCentre(page,largeur,hauteur,options) {
	var top=(screen.height-hauteur)/2;
	var left=(screen.width-largeur)/2;
	if(win!=null) if(win!=false) win.close();
	if(1==2) {
		//Cette fonction est compatible avec MSIE seulement..
		win = window.showModalDialog(page,"","top="+top+",left="+left+",width="+largeur+",height="+hauteur+","+options);
	} else {
		//Cas non MSIE
		win = window.open(page,"","top="+top+",left="+left+",width="+largeur+",height="+hauteur+","+options);
	}
	if(win!=null) if(win!=false) win.focus();
	return win
}


function makeWin(url, winWidth, winHeight, chrome) {
  if (!chrome){chrome = 0;}
  if (navigator.appName == "Netscape" && parseFloat(navigator.appVersion) >= 4) {
    var screenPosX,screenPosY;
    screenPosX = (screen.availWidth - winWidth) / 2;
    screenPosY = (screen.availHeight - winHeight) / 2;
    window.open(url, 'new','toolbar=0,location='+chrome+',directories=0,status='+chrome+',menubar=0,scrollbars=1,resizable=1,copyhistory=0,width='+winWidth+',height='+winHeight+',screenX='+screenPosX+',screenY='+screenPosY);
  }
  else {
    mister = window.open(url, 'new','toolbar=0,location='+chrome+',directories=0,status='+chrome+',menubar=0,scrollbars=1,resizable=1,copyhistory=0,width='+winWidth+',height='+winHeight);
    mister.location = url;
  }
}

function r_(r,l){
	var rec=eval(r+'.value')
	var i,p=-1,lis
	rec=c_(rec)
	if (rec==''){return false}
	var nb=eval(l+'.length')
	if (nb<0) return false
	if (posc>nb) posc=0
	for (i=posc;i<nb;i++){
		lis=eval(l+'.options['+i+'].text')
		lis=c_(lis)
		if (lis.search(rec)>=0){p=i;posc=i+1;break}
	}
	if (p>=0){eval(l+'.selectedIndex='+p)}else{posc=0;}
	return false
}

function r2_(r,l){
	var rec=eval(r+'.value')
	var i,p=-1,lis
	rec=c_(rec)
	if (rec==''){window.alert('Valeur non trouvée !');return false}
	var nb=eval(l+'.length')
	if (nb<0) return false
	if (posc>nb) posc=0
	for (i=posc;i<nb;i++){
		lis=eval(l+'.options['+i+'].text')
		lis=c_(lis)
		if (lis.search(rec)>=0){p=i;posc=i+1;break}
	}
	if (p>=0){
		eval(l+'.options['+(p)+'].selected=true;');
		eval(l+'.options['+(p)+'].selected=false;');
//		eval(l+'.selectedIndex='+p)
	}else{
		posc=0;window.alert('Fin de liste !')
	}
	return false
}
function bissextile(yy){
        if (((yy % 4)==0) && ((yy % 100)!=0) || ((yy % 400)==0))
                return (1);
        else
               return (0);
}

function isHour(s) {
	var a;
	if (s.length<5) return false
	if (s.substr(2,1).indexOf(":")==-1) return false
	a = s.split(":");
	if (Trim(a[0]).length<2 || Trim(a[1]).length<2) return false
	a[0] = Number(a[0]);
	a[1] = Number(a[1]);
	return a[0] >= 0 && a[0] <= 23 && a[1] >= 0 && a[1] <= 59
}

function IsDate(dd,obl){
	var d=Trim(dd);
	var j,m,a,jj
	if (d=='' && obl=='O') return (false);
	if (d=='') return (true);
	var vd=d.split("/");
	if (vd.length<3) return (false);
	for (var i=0;i<3;i++){
		if (isNaN(vd[i])) return (false);
	}
	if (vd[0].substr(0,1)=='0'){
		j=parseInt(vd[0],36)
	}else{
		j=parseInt(vd[0])
	}
	if (vd[1].substr(0,1)=='0'){
		m=parseInt(vd[1],36)
	}else{
		m=parseInt(vd[1])
	}
	a=parseInt(vd[2])
	if (m<1 || m>12) return (false);
	if (m==1 || m==3 || m==5 || m==7 || m==8 || m==10 || m==12){
		if (j<1 || j>31) return (false);
	}
	if (m==4 || m==6 || m==9 || m==11){
		if (j<1 || j>30) return (false);
	}
	if (m==2){
		if (bissextile(a)==1){
			jj=29;
		}else{
			jj=28;
		}
		if (j<1 || j>jj) return (false);
	}
	return (true)
}

function isDateValid(chaineDate) {

   if (chaineDate == "") return false
   var ladate = (chaineDate).split("/")
// Si je n'ai pas récupéré trois éléments ou bien s'il ne s'agit pas d'entiers, pas la peine non plus d'aller plus loin
   if ((ladate.length != 6) || isNaN(parseInt(ladate[0])) || isNaN(parseInt(ladate[1])) || isNaN(parseInt(ladate[2])) || isNaN(parseInt(ladate[3])) || isNaN(parseInt(ladate[4]))) return false

// Sinon, c'est maintenant que je crée la date correspondante. Attention, les mois sont étalonnés de 0 à 11
   var unedate = new Date(eval(ladate[2]),eval(ladate[1])-1,eval(ladate[0]),eval(ladate[3]),eval(ladate[4]),'00')

// Bug de l'an 2000 oblige, lorsque je récupère l'année, je n'ai pas toujours 4 chiffres selon les navigateurs, je rectifie donc ici le tir.
   var annee = unedate.getYear()
   if ((Math.abs(annee)+"").length < 4) annee = annee + 1900

// Il ne reste plus qu'à vérifier si le jour, le mois et l'année obtenus sont les mêmes que ceux saisis par l'utilisateur.
   return ((unedate.getDate() == eval(ladate[0])) && (unedate.getMonth() == eval(ladate[1])-1) && (annee == eval(ladate[2])) && (unedate.getHours() == eval(ladate[3])) && (unedate.getMinutes() == eval(ladate[4])))

}


function showWait(){
	document.location = '#ancre_haut';
	document.all("waiting").style.visibility = 'visible';
}

function hideWait(){
	document.all("waiting").style.visibility = 'hidden';
}

function deconnecter(root,idLog){
	//alert(idLog);
	PopupCentre(root + 'deconnecter.asp?id_log=' +idLog,200,200,'')
}

function htmldiv(msg,root){
	html ='';
	html = html + '<div id="waiting" style="visibility:hidden; position:absolute; width:100%; height:100%; z- index:100; left:0; top:0;" allowtransparency="true">';
	html = html + '<table width="100%" height="100%">';
	html = html + '<tr>';
	html = html + '<td align="center" valign="bottom"><br><br>';
	html = html + '<table border="1" bordercolor="#000000" cellpadding="0" cellspacing="0" width="325" height="66">';
	html = html + '<tr bgcolor="#E79400" class="menu">';
	html = html + '<td  height="17" align="center" valign="middle" class="menu">&nbsp;'+ msg +'...</td>';
	html = html + '</tr>';
	html = html + '<tr>';
	html = html + '<td bgcolor="#FFFFFF" height="20" align="center" valign="middle"><img src="'+root+'images/divers/wait.gif" border="0"></td>';
	html = html + '</tr>';
	html = html + '</table>';
	html = html + '</td>';
	html = html + '</tr>';
	html = html + '</table>';
	html = html + '</div>';
	document.write (html);
}

function Zoom_img(image, l_image, h_image,nom) {
	var doc,fenetre,texte;
	var xparam='toolbar=no,location=no,directories=no,status=no,scrollbars=no,resizable=no'
	+',copyhistory=no,' + 'width='+(l_image+20)+',height='+(h_image+55);
	fenetre = window.open('','zoom',xparam);
	fenetreNote = fenetre;
	if (fenetreNote != null) {
		doc = fenetre.document;
		texte='<html>\n'
		+'<head>'
		+'<title>'+nom+'</title>\n'
		+'</head>\n'
		+'<body BGcolor="#000000" onblur=focus()>\n'
		+'<table width="100%" height="100%" border="0" cellspacing="0" cellpadding="0">\n'
		+'	<tr>\n'
		+'		<td align="center" valign="middle">\n'
		+'			<img src="'+image+'" alt="'+nom+'">\n'
		+'		</td>\n'
		+'	</tr>\n'
		+'	<tr>\n'
		+'		<td align="left">\n'
		+'			<a href="#" onClick="return closezoom()"><img src="../../images/close.gif" width="39" height="34" alt="Fermer le zoom" border="0"></a>\n'
		+'		</td>\n'
		+'	</tr>\n'
		+'</table>\n'
		+'</body>\n'
		+'<scri'+'pt>\n'
		+'function closezoom(){\n'
		+'	window.close()\n'
		+'}\n'
		+'</scri'+'pt>\n'
		+'</html>\n';
		doc.write(texte);
		doc.close();
		return false;
	} 
}

function verifiermail(mail) {
  if ((mail.indexOf("@")>=0)&&(mail.indexOf(".")>=0)) {
	 return (true); 
  } else {
	 return (false);
  }
}

function verifiertel(tel) {
  if (isNaN(tel)==false) {
	 return (true); 
  } else {
	 return (false);
  }
}

function verifBrowser(){
	var browser_type = navigator.appName
	var i = navigator.appVersion.indexOf("MSIE");
	browser_version = navigator.appVersion.substring(i+5,i+8);
	//if IE 5+
	/*
	if (browser_type=="Microsoft Internet Explorer" && browser_version >= 5){
		
	}else
	
	}
	*/
	return browser_type + '(' + browser_version + ')';
}

/*----------------------------------------------------------------------*/
/* Function de test d'un champs en fonction d'une expression reguliere	*/
/* nom :		matchValue												*/
/* entrées :															*/
/*				- objet		:		: objet du formulaire				*/
/*				- string	:		: expression reguliere				*/
/*				- boolean	:		: etat si success					*/
/* sortie :																*/
/*				- boolean	:		: etat ou false si echec			*/
/*----------------------------------------------------------------------*/
function matchValue() {
	var param = matchValue.arguments;
	var re = new RegExp(param[1]);
	param[0].style.backgroundColor="#FFFFFF";
	param[0].style.color="#000000";
	if(param[0].value.match(re)) return param[2];
	else {
		param[0].style.backgroundColor="#FFCC66";
		param[0].style.color="#330066";
		param[0].focus();
		return false;
	}
}

/*----------------------------------------------------------------------*/
/* Function de vérification du format de l'email						*/
/* nom :		verifEmail												*/
/* entrées :															*/
/*				- objet		:		: objet du formulaire				*/
/*				- boolean	:		: etat si success					*/
/* sortie :																*/
/*				- boolean	:		: true ou false	si echec			*/
/*----------------------------------------------------------------------*/
function verifEmail() {
	var param=verifEmail.arguments;
	var obj=param[0];
	var verif=true;
	var car="";
	var carAfter="";
	var carBefore="";
	var chaine=obj.value.toLowerCase();
	var nbrcar=chaine.length;
	var nbrarobase=0;
	var nbrpoint=0;
	var goodcar="@0123456789.-_abcdefghijklmnopqrstuvwxyz";
	obj.style.backgroundColor="#FFFFFF";
	obj.style.color="#000000";
	for(var i=0;i<nbrcar;i++) {
		car=chaine.substr(i,1);
		if(goodcar.indexOf(car)>=0) {
			carAfter="";
			carBefore="";
			if(car=="@") {
				if((i-1)>=0) carBefore=chaine.substr((i-1),1);
				if((i+1)<nbrcar) carAfter=chaine.substr((i+1),1);
				if(i>0&&nbrarobase==0&&i<(nbrcar-4)&&!(carBefore==".")&&!(carAfter==".")&&!(carBefore=="-")&&!(carAfter=="-")&&!(carBefore=="_")&&!(carAfter=="_")) nbrarobase++;
				else {
					verif=false;
					break;
				}
			}
			if(car==".") {
				if((i-1)>=0) carBefore=chaine.substr((i-1),1);
				if((i+1)<nbrcar) carAfter=chaine.substr((i+1),1);
				if(i>0&&i<(nbrcar-2)&&!(carBefore==".")&&!(carAfter==".")&&!(carBefore=="-")&&!(carAfter=="-")&&!(carBefore=="_")&&!(carAfter=="_")) nbrpoint++;
				else {
					verif=false;
					break;
				}
			}
		} else {
			verif=false;
			break;
		}
	}
	if(nbrarobase==0||nbrpoint==0||chaine.substr(0,1)=="."||chaine.substr(0,1)=="-"||chaine.substr(0,1)=="_"||chaine.substr((nbrcar-1),1)=="."||chaine.substr((nbrcar-1),1)=="-"||chaine.substr((nbrcar-1),1)=="_") verif=false;
	if(!verif) {
		obj.style.backgroundColor="#FFCC66";
		obj.style.color="#330066";
	}
	return verif;
}

/*----------------------------------------------------------------------*/
/* Function de test d'un champs vide									*/
/* nom :		isEmpty													*/
/* entrées :															*/
/*				- objet		:		: objet du formulaire				*/
/*				- boolean	:		: etat si success					*/
/* sortie :																*/
/*				- boolean	:		: etat ou false si echec			*/
/*----------------------------------------------------------------------*/
function isEmpty() {
	var param = isEmpty.arguments;
	param[0].style.backgroundColor="#FFFFFF";
	param[0].style.color="#000000";
	if(Trim(param[0].value)!="") return param[1];
	else {
		param[0].style.backgroundColor="#FFCC66";
		param[0].style.color="#330066";
		param[0].focus();
		return true;
	}
}

/*----------------------------------------------------------------------*/
/* Function de test d'un champs numéric									*/
/* nom :		isNumeric												*/
/* entrées :															*/
/*				- objet		:		: objet du formulaire				*/
/*				- boolean	:		: etat si success					*/
/* sortie :																*/
/*				- boolean	:		: etat ou false si echec			*/
/*----------------------------------------------------------------------*/
function isNumeric() {
	var param = isNumeric.arguments;
	param[0].style.backgroundColor="#FFFFFF";
	param[0].style.color="#000000";
	var obj_ereg = new RegExp(/^([-]?[,.]?)$|^([-]?[,.]?\d+)$|^([-]?\d+[,.]?([\d]?)+)$/);
	if(param[0].value.match(obj_ereg)) return param[1];
	else {
		param[0].style.backgroundColor="#FFCC66";
		param[0].style.color="#330066";
		param[0].focus();
		return false;
	}
}

/*----------------------------------------------------------------------*/
/* Function d'ajout d'elements d'une liste vers une autre liste			*/
/* nom :		add														*/
/* entrées :															*/
/*				- variant	:		: objet source						*/
/*				- variant	:		: objet destination					*/
/*				- boolean	:		: multiple							*/
/* sortie :																*/
/*----------------------------------------------------------------------*/
function add() {
	var param=add.arguments;
	var obj=eval(param[0]+"1");
	if(obj==null) {
		var lst1=eval(param[0]+".ID");
		var lstlbl1=eval(param[0]+".LIBELLE");
	} else {
		var lst1=obj.options;
		var lstlbl1=null;
	}
	var lst2=eval(param[1]+"2.options");
	var boo_mult=param[2];
	var int_id=0;
	var str_value="";
	for(var j=0;j<lst1.length;j++) {
		if((lstlbl1==null?lst1[j].selected:lst1[j].checked)) {
			str_value=lst1[j].value;
			if(verif(lst2,str_value)) {
				if((!boo_mult&&lst2.length==0)||boo_mult) {
					int_id = lst2.length;
					lst2[int_id]=new Option((lstlbl1==null?lst1[j].text:lstlbl1[j].value), str_value);
					if(lstlbl1!=null) lst2[int_id].className = lstlbl1[j].className;
				}
				if(!boo_mult) break;
			}
		}
	}
	lst2.focus();
}

/*----------------------------------------------------------------------*/
/* Function de suppression d'elements d'une liste						*/
/* nom :		sup														*/
/* entrées :															*/
/*				- variant	:		: objet source						*/
/*				- boolean	:		: efface tout						*/
/* sortie :																*/
/*----------------------------------------------------------------------*/
function sup() {
	var param=sup.arguments;
	var obj = param[0];
	var force = param[1];
	for(var j=(obj.options.length-1);j>=0;j--) if(obj.options[j].selected||force) obj.options[j]=null;
	obj.focus();
}

/*----------------------------------------------------------------------*/
/* Function de vérification d'un element existant dans une liste		*/
/* nom :		verif													*/
/* entrées :															*/
/*				- variant	:		: objet source						*/
/*				- variant	:		: reference							*/
/* sortie :																*/
/*----------------------------------------------------------------------*/
function verif(nobj,id) {
	var boo_ret=true
	if(nobj.length>0) {
		for(var j=0;j<nobj.length;j++) {
			if(nobj[j].value==id) {
				boo_ret=false;
				break;
			}
		}
	}
	return boo_ret;
}

/*----------------------------------------------------------------------*/
/* Function d'ecriture format date	XX/XX/XXXX automatique				*/
/* nom :		formatDate & autoSlash									*/
/* entrées :															*/
/*				- variant	:				: objet source				*/
/*				- string	: "dd/mm/yyyy"	: date de reference	(option)*/
/* sortie :																*/
/*				- integer	:		: 0 correct							*/
/*									  1 inferieur à date de reference	*/
/*									  2 date incorrecte					*/
/*									  3 date vide						*/
/*									  4 format incorrect				*/
/*----------------------------------------------------------------------*/
/* Vérifie le format d'une date */
function formatDate() {
	var param=formatDate.arguments;
	var obj=param[0];
	var refdate=param[1];
	var car="";
	var chaine=obj.value;
	obj.style.backgroundColor="#FFCC66";
	obj.style.color="#330066";
	if(chaine.length<10) {
		if(chaine.length==0) {
			obj.style.backgroundColor="#FFFFFF";
			obj.style.color="#330066";
			return 4;
		} else return 3;
	} else {
		for(var i=0;i<10;i++) {
			car=chaine.charAt(i);
			if(i==0||i==1||i==3||i==4||i>=6) {
				if(car.search(/[1234567890]/)==-1) return 4;
			} else if(car!="/") return 4;
		}
		var userdate=chaine.split("/");
		ujour=(userdate[0])*1;
		umois=(userdate[1])*1;
		uannee=(userdate[2])*1;
		var userdate=new Date(uannee, (umois-1), ujour);
		if((userdate.getDate()*1)+"/"+((userdate.getMonth()*1)+1)+"/"+(userdate.getFullYear()*1)!=ujour+"/"+umois+"/"+uannee) return 2
		else if(refdate!=null&&refdate!="") {
			var refdate=refdate.split("/");
			rjour=(refdate[0])*1;
			rmois=(refdate[1])*1;
			rannee=(refdate[2])*1;
			var refdate=new Date(rannee, (rmois-1), rjour);
			if(userdate.getTime()<refdate.getTime()) return 1;
		}
		obj.style.backgroundColor="#FFFFFF";
		obj.style.color="#330066";
		return 0;
	}
}

// Place les slash automatiquement pour le format d'une date dans un champs
function autoSlash() {
	var param=autoSlash.arguments;
	var obj=param[0];
	if(event.keyCode<48||event.keyCode>57) event.returnValue=false;
	if(obj.value.length==2||obj.value.length==5) obj.value=obj.value+"/";
}

/*----------------------------------------------------------------------*/
/* Function de test des caractères d'un champs							*/
/* nom :		isGoodText												*/
/* entrées :															*/
/*				- objet		:		: objet du formulaire				*/
/*				- string	:		: caractères autorisés				*/
/*				- string	:		: caractères refusés				*/
/*				- boolean	:		: etat si success					*/
/* sortie :																*/
/*				- boolean	:		: etat ou false si echec			*/
/*----------------------------------------------------------------------*/
function isGoodText() {
	var car,param=isGoodText.arguments;
	var obj=param[0];
	if(typeof(param[0])=="object") {
		obj.style.backgroundColor="#FFCC66";
		obj.style.color="#330066";
	}
	if(param.length>3) {
		var chaine=(typeof(obj)=="object"?obj.value:obj);
		var gcar=param[1];
		var bcar=param[2];
		var RetValue=param[3];
		if(bcar!="") {
			for(i=0;i<chaine.length;i++) {
				car=chaine.substr(i, 1);
				if((eval("car.search(/["+bcar+"]/)")>-1)) {
					RetValue=false;
					break;
				}
			}
		}
		if(gcar!="") {
			for(i=0;i<chaine.length;i++) {
				car=chaine.substr(i, 1);
				if(eval("car.search(/["+gcar+"]/)")==-1) {
					RetValue=false;
					break;
				}
			}
		}
	} else RetValue=false;
	if(RetValue&&typeof(obj)=="object") {
		obj.style.backgroundColor="#FFFFFF";
		obj.style.color="#330066";
	}
	return RetValue;
}

function showHide() {
	var param=showHide.arguments;
	var obj_span=document.getElementById(param[0]).style;
	obj_span.display = (param[1]!=null?(param[1]?"block":"none"):(obj_span.display=="none"?"block":"none"));
}

function GoDiff(InputName, InputValue){
	document.FrmForSubmit.u.value=InputValue;
	document.FrmForSubmit.u.name=InputName;	
	//document.FrmForSubmit.enctype="multipart/form-data";
	//document.FrmForSubmit.action="op2.asp";
	//document.FrmForSubmit.method="post";	
	document.FrmForSubmit.submit();	
}
function tma(codelist, description, atagattr) {
	var thiscode, thischar;
	var CodeString = new String(codelist);
	var CodedArray = CodeString.split('|');
	var L = CodedArray.length;
	var AddrDecoded = '';
	for (var x=0; x < L; x++) {
		thiscode = CodedArray[x];
		thischar = String.fromCharCode( thiscode - L );
		AddrDecoded += thischar;
	}
	atagattr = atagattr ? ' ' + atagattr : '';
	if (!description) description = AddrDecoded; 
	var strOutput = '<a href="mailto:'+AddrDecoded+'"' + atagattr+'>' + description + '</a>';
	document.write(strOutput);
}

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_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_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];}
}
