/*--------------------------------------------------------------------
-------------- Verifie le nombre de lignes et ouvre un popup ---------
---------------------------------------------------------------------*/
	function OpenPrint(Url,NbLigne,Max,Message)
	{
	    if (NbLigne > Max)
		{
		    alert(Message);
		}
		else		
		{
	        OuvrirVisible(Url,'Print','directories=no,height=500,width=750,location=no,menubar=yes,resizable=yes,scrollbars,status=no,toolbar=no');
		}
	}

/*---------------------------------------------
-------------- Verifie le navigateur ----------
---------------------------------------------*/
	function nav()
	{
		if ((navigator.appName.charAt(0)=='N') || ((navigator.appName.charAt(0)=='M')&& (navigator.appVersion.charAt(0)=='4'))) return true; else return false;
	}

/*------------------------------------------------------
-------------- Ouvre un poopup avec une image ----------
------------------------------------------------------*/

    function AfficheImage(titre, image, largeur, hauteur)
    {
		w=window.open('','Zoom','width='+largeur+',height='+hauteur+',top=100,left=250');
		w.document.open();
		w.document.write('<html><head><title>'+titre+'</title></head><body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">');
		w.document.write('<img src="'+image+'" width="'+largeur+'" height="'+hauteur+'" border="0">');
		w.document.write('</body></html>');
		w.focus();
    }

/*---------------------------------------------------------------------
-------------- Redimendionne une image avec la largeur lgmax ----------
---------------------------------------------------------------------*/
	function RedimImg(inImg, lgmax)
	{
		var oImg = new Image();
		oImg.src = inImg;
		if (oImg.width > lgmax) 
		{ 
			document.writeln("<img src=\"" + inImg + "\" width=\"" + lgmax + "\" border=\"0\">"); 
		}
		else
		{
			document.writeln("<img src=\"" + inImg + "\" border=\"0\">"); 		  
		}
	}

/*------------------------------------------------------
-------------- Ouvre un popup --------------------------
------------------------------------------------------*/
	function OuvrirVisible(url,name,propriete)
	{
		var w = window.open(url,name,propriete);
		w.document.close();
		w.focus();
	}
	
/*------------------------------------------------------
-------------- Vérification des modifications ----------
------------------------------------------------------*/

    var change = false;

    function SaveChange(message)
    {
        if (change == true)
        {
            if (confirm(message)) { return true; } else { return false; }
        }
		else
		{
			return true;
		}
    }
	
/*------------------------------------------------------
-------------- Vérification de la date  ----------------
------------------------------------------------------*/
	
	function CheckDate(d)
	{
		var amin=1900;
		var amax=3000;
		var separateur = '/';
		var j=(d.substring(0,2));
		var m=(d.substring(3,5));
		var a=(d.substring(6));
		var ok = 1;
		if ( ((isNaN(j))||(j<1)||(j>31)) && (ok==1) ) ok=0;
		if ( ((isNaN(m))||(m<1)||(m>12)) && (ok==1) ) ok=0;
		if ( ((isNaN(a))||(a<amin)||(a>amax)) && (ok==1) ) ok=0;
		if ( ((d.substring(2,3)!=separateur)||(d.substring(5,6)!=separateur)) && (ok==1) ) ok=0;
		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) ) { ok=0; } 
		}
		if (ok==0) { return false; }
		return true;
	}	

/*------------------------------------------------------
-------------- Vérification de l'email  ----------------
------------------------------------------------------*/

	function CheckEmail(email)
	{
		var valid = true;
		if (email)
		{
			var aroba = email.indexOf('@');
			if (aroba == -1) valid = false;
			var point = email.indexOf('.', aroba);
			if ((point == -1) || (point == (aroba + 1))) valid = false;
			var point = email.lastIndexOf('.');
			if ((point + 1) == email.length) valid = false;
			point = email.indexOf('..')
			if (point != -1) valid = false;
			if (valid == false) { return false; }
			return true;
		}
	}

/*--------------------------------------------------------------------------------------------------
-------------- Fonction de dreamweaver pour récupérer les valeurs d'un formulaire  ----------------
---------------------------------------------------------------------------------------------------*/
	
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;
}	

/*--------------------------------------------------------------------------------------------------
------------------------ Fonction de validation de formulaire  -------------------------------------
---------------------------------------------------------------------------------------------------*/

function MM_validateForm()
{
	/*
	Les expressions suivantes sont à traduire
		le champ
		doit contenir une date au format JJ/MM/AAAA
		doit contenir une adresse e-mail
		ne doit pas contenir plus de
		caractères. Il en contient actuellement
		doit contenir un nombre
		doit contenir un nombre decimal avec
		chiffre(s) après la virgule
		doit contenir un nombre entre
		et
		est obligatoire
		Les erreurs suivantes se sont produites :
	*/
    var i,p,q,nm,LibFld,test,num,Field,min,max,errors='',args=MM_validateForm.arguments;
    for (i=0; i<(args.length-2); i+=3) 
	{ 
		LibFld = args[i+1]	
	    test   = args[i+2]; 
		val    = MM_findObj(args[i]);
        if (val) 
		{ 
		    nm = val.name; 
			if ((val=val.value)!="") 
			{
                if (test.indexOf('isDate')!=-1) 
				{ 
					if (!CheckDate(val)) errors+='- le champ "' + LibFld + '" doit contenir une date au format JJ/MM/AAAA.\n'; //must contain a date (DD/MM/YYYY)
          		}
				else if (test.indexOf('isEmail')!=-1) 
				{ 
					if (!CheckEmail(val)) errors+='- le champ "' + LibFld + '" doit contenir une adresse e-mail.\n'; //must contain an e-mail address 
				}
				else if (test.indexOf('isTextarea')!=-1) 
				{
			        LgMax   = test.substring(11,test.length);				
			        LgField = val.length;
					if (LgField > LgMax)
					{
						errors+='- le champ "' + LibFld + '" ne doit pas contenir plus de ' + LgMax + ' caractères. Il en contient actuellement ' + LgField + '.\n';
					}				
				
				}			
				else if (test!='R') 
				{
					if (test != 'N')
					{
						num = parseFloat(val);
						Field = val.replace(',','.');
						if (isNaN(Field)) errors+='- le champ "' + LibFld + '" doit contenir un nombre.\n'; // must contain a number
						if (test.indexOf('isNumDec') != -1) 
						{
							p    = test.substring(9,test.length);
							if ((Field.indexOf('.',0) != -1))
							{
								result = Field.substring(Field.indexOf('.')+1,Field.length);
								if (result.length > p)
								{A
									errors+='- le champ "' + LibFld + '" doit contenir un nombre decimal avec ' + p + ' chiffre(s) après la virgule.\n';
								}
							}						
						}					
						if (test.indexOf('inRange') != -1) 
						{
							p   = test.indexOf(':');
							min = test.substring(8,p); max=test.substring(p+1);
							if (num<min || max<num) errors+='- le champ "' + LibFld + '" doit contenir un nombre entre '+min+' et '+max+'.\n'; //must contain a number between ... and
						}
					}
				}
		    }
		    else if (test.charAt(0) == 'R') errors += '- le champ "' + LibFld + '" est obligatoire.\n';  //is required
		}
    }
	if (errors) alert('Les erreurs suivantes se sont produites :\n' + errors); // The following error(s) occurred
    //document.MM_returnValue = (errors == '');
	if (errors) return false;
	return true;
}

function MM_validateFormFRE()
{
	/*
	Les expressions suivantes sont à traduire
		le champ
		doit contenir une date au format JJ/MM/AAAA
		doit contenir une adresse e-mail
		ne doit pas contenir plus de
		caractères. Il en contient actuellement
		doit contenir un nombre
		doit contenir un nombre decimal avec
		chiffre(s) après la virgule
		doit contenir un nombre entre
		et
		est obligatoire
		Les erreurs suivantes se sont produites :
	*/
    var i,p,q,nm,LibFld,test,num,Field,min,max,errors='',args=MM_validateFormFRE.arguments;
    for (i=0; i<(args.length-2); i+=3) 
	{ 
		LibFld = args[i+1]	
	    test   = args[i+2]; 
		val    = MM_findObj(args[i]);
        if (val) 
		{ 
		    nm = val.name; 
			if ((val=val.value)!="") 
			{
                if (test.indexOf('isDate')!=-1) 
				{ 
					if (!CheckDate(val)) errors+='- le champ "' + LibFld + '" doit contenir une date au format JJ/MM/AAAA.\n'; //must contain a date (DD/MM/YYYY)
          		}
				else if (test.indexOf('isEmail')!=-1) 
				{ 
					if (!CheckEmail(val)) errors+='- le champ "' + LibFld + '" doit contenir une adresse e-mail.\n'; //must contain an e-mail address 
				}
				else if (test.indexOf('isTextarea')!=-1) 
				{
			        LgMax   = test.substring(11,test.length);				
			        LgField = val.length;
					if (LgField > LgMax)
					{
						errors+='- le champ "' + LibFld + '" ne doit pas contenir plus de ' + LgMax + ' caractères. Il en contient actuellement ' + LgField + '.\n';
					}				
				
				}			
				else if (test!='R') 
				{
					if (test != 'N')
					{
						num = parseFloat(val);
						Field = val.replace(',','.');
						if (isNaN(Field)) errors+='- le champ "' + LibFld + '" doit contenir un nombre.\n'; // must contain a number
						if (test.indexOf('isNumDec') != -1) 
						{
							p    = test.substring(9,test.length);
							if ((Field.indexOf('.',0) != -1))
							{
								result = Field.substring(Field.indexOf('.')+1,Field.length);
								if (result.length > p)
								{
									errors+='- le champ "' + LibFld + '" doit contenir un nombre decimal avec ' + p + ' chiffre(s) après la virgule.\n';
								}
							}						
						}					
						if (test.indexOf('inRange') != -1) 
						{
							p   = test.indexOf(':');
							min = test.substring(8,p); max=test.substring(p+1);
							if (num<min || max<num) errors+='- le champ "' + LibFld + '" doit contenir un nombre entre '+min+' et '+max+'.\n'; //must contain a number between ... and
						}
					}
				}
		    }
		    else if (test.charAt(0) == 'R') errors += '- le champ "' + LibFld + '" est obligatoire.\n';  //is required
		}
    }
	if (errors) alert('Les erreurs suivantes se sont produites :\n' + errors); // The following error(s) occurred
    //document.MM_returnValue = (errors == '');
	if (errors) return false;
	return true;
}

function MM_validateFormENG() 
{
	/*
	Les expressions suivantes sont à traduire
		le champ                                     --> the field
		doit contenir une date au format JJ/MM/AAAA  --> must contain a date (DD/MM/YYYY)
		doit contenir une adresse e-mail             --> must contain an e-mail address
		ne doit pas contenir plus de
		caractères. Il en contient actuellement
		doit contenir un nombre                      --> must contain a number
		doit contenir un nombre decimal avec
		chiffre(s) après la virgule                  
		doit contenir un nombre entre                --> must contain a number between 
		et                                           --> and
		est obligatoire                              --> is required.
		Les erreurs suivantes se sont produites :    --> The following error(s) occurred
	*/
    var i,p,q,nm,LibFld,test,num,Field,min,max,errors='',args=MM_validateFormENG.arguments;
    for (i=0; i<(args.length-2); i+=3) 
	{ 
		LibFld = args[i+1]	
	    test   = args[i+2]; 
		val    = MM_findObj(args[i]);
        if (val) 
		{ 
		    nm = val.name; 
			if ((val=val.value)!="") 
			{
                if (test.indexOf('isDate')!=-1) 
				{ 
					if (!CheckDate(val)) errors+='- the field "' + LibFld + '" must contain a date (DD/MM/YYYY).\n'; //must contain a date (DD/MM/YYYY)
          		}
				else if (test.indexOf('isEmail')!=-1) 
				{ 
					if (!CheckEmail(val)) errors+='- the field "' + LibFld + '" must contain an e-mail address.\n'; //must contain an e-mail address 
				}
				else if (test.indexOf('isTextarea')!=-1) 
				{
			        LgMax   = test.substring(11,test.length);				
			        LgField = val.length;
					if (LgField > LgMax)
					{
						errors+='- the field "' + LibFld + '" ne doit pas contenir plus de ' + LgMax + ' caractères. Il en contient actuellement ' + LgField + '.\n';
					}				
				
				}			
				else if (test!='R') 
				{
					if (test != 'N')
					{
						num = parseFloat(val);
						Field = val.replace(',','.');
						if (isNaN(Field)) errors+='- the field "' + LibFld + '" must contain a number.\n'; // must contain a number
						if (test.indexOf('isNumDec') != -1) 
						{
							p    = test.substring(9,test.length);
							if ((Field.indexOf('.',0) != -1))
							{
								result = Field.substring(Field.indexOf('.')+1,Field.length);
								if (result.length > p)
								{
									errors+='- the field "' + LibFld + '" doit contenir un nombre decimal avec ' + p + ' chiffre(s) après la virgule.\n';
								}
							}						
						}					
						if (test.indexOf('inRange') != -1) 
						{
							p   = test.indexOf(':');
							min = test.substring(8,p); max=test.substring(p+1);
							if (num<min || max<num) errors+='- the field "' + LibFld + '" must contain a number between '+min+' and '+max+'.\n'; //must contain a number between ... and
						}
					}
				}
		    }
		    else if (test.charAt(0) == 'R') errors += '- the field "' + LibFld + '" is required.\n';  //is required
		}
    }
	if (errors) alert('The following error(s) occurred :\n' + errors); // The following error(s) occurred
    //document.MM_returnValue = (errors == '');
	if (errors) return false;
	return true;
}

/*------------------------------------------------------
-------------- Monter un élément d'une liste -----------
------------------------------------------------------*/

	function tjs_haut(l)
	{
		var indice=l.selectedIndex
		if (indice>0) { tjs_swap(l,indice,indice-1); } // Il reste une ligne au-dessus
	}

/*------------------------------------------------------
-------------- Descendre un élément d'une liste --------
------------------------------------------------------*/

	function tjs_bas(l)
	{
		var indice=l.options.selectedIndex;
		if ((indice >=0) && (indice<l.options.length-1)) { tjs_swap(l,indice,indice+1); } // Il reste une ligne en-dessous
	}
	
/*------------------------------------------------------
-------------- Déplacer un élément d'une liste ---------
------------------------------------------------------*/	

	function tjs_swap(l,i,j)
	{
		var valeur=l.options[i].value;
		var texte=l.options[i].text;
		l.options[i].value=l.options[j].value;
		l.options[i].text=l.options[j].text;
		l.options[j].value=valeur;
		l.options[j].text =texte;
		l.selectedIndex=j
	}

/*---------------------------------------------------------------------
-------------- Passer l'order de la liste dans un champ hidden --------
---------------------------------------------------------------------*/
	
	function ValidList(l,lv)
	{
		var str = '';
		for(i=0;(i < l.options.length); i++)
		{
			str = str + l.options[i].value + ";";
		}
		lv.value = str;
	}	

/*---------------------------------------------------------------------
' - Ajoute une valeur à une liste déroulante  --------------
' -- popupvalue : valeur
' -- popuplib   : libelle de la valeur
' -- fld        : nom de la liste 
'---------------------------------------------------------------------*/
	
    function CreatOption(popupvalue, popuplib, fld)
    {
		if ((popupvalue.value != '') && (popuplib.value != ''))
        {
            var o = new Option(popuplib.value,popupvalue.value);
            fld.options[fld.options.length] = o;
        }
        popupvalue.value = '';
        popuplib.value   = '';
    }	

/*---------------------------------------------------------------------
' - Affecte une valeur à une liste déroulante -------------------------
' -- popupvalue : valeur de la liste
' -- popuplib   : libelle de la valeur de la liste
' -- V1         : valeur à affecter à la valeur de la liste
' -- V2         : libelle à affecter à la valeur de la liste
'---------------------------------------------------------------------*/
    function AffectOption(popupvalue,popuplib,v1,v2)
    {
        popupvalue.value = v1;
        popuplib.value   = v2;
        window.close();
    }	


	function Deplacer(l1,l2)
	{
		if (l1.options.selectedIndex>=0)
		{
			var nlg = l1.length;
			for(i=0;i<nlg;i++)
			{
				if(l1.options[i].selected) 
				{					
					o=new Option(l1.options[i].text,l1.options[i].value);
					l2.options[l2.options.length]=o;
				}
			}
			for(j=nlg-1;j>-1;j--) {	if(l1.options[j].selected) l1.options[j]=null; }			
		}
	}
	
	function DeplacerTout(l1,l2)
	{
		var nlg = l1.length;
		for(i=0;i<nlg;i++)
		{
			o=new Option(l1.options[i].text,l1.options[i].value);
			l2.options[l2.options.length]=o;
		}
		for(j=nlg-1;j>-1;j--) {	l1.options[j]=null; }			
	}
	
/************************************************************/
/* Get element by id */
/************************************************************/

function my_getbyid(id)
{
	itm = null;		
	if (document.getElementById)
	{
		itm = document.getElementById(id);
	}
	else if (document.all)
	{
		itm = document.all[id];
	}
	else if (document.layers)
	{
		itm = document.layers[id];
	}
	return itm;
}

/************************************************************/
/* Show/hide toggle */
/************************************************************/

function toggleview(id)
{
	if ( ! id ) return;
	if ( itm = my_getbyid(id) )
	{
		if (itm.style.display == "none")
		{
			my_show_div(itm);
		}
		else
		{
			my_hide_div(itm);
		}
	}
}

/************************************************************/
/* Set DIV ID to show */
/************************************************************/

function my_show_div(itm)
{
	if ( ! itm ) return;
	
	itm.style.display = "";
}

/************************************************************/
/* Set DIV ID to hide */
/************************************************************/

function my_hide_div(itm)
{
	if ( ! itm ) return;		
	itm.style.display = "none";
}
		
