// Outil de vérification standard d'un formulaire

		function valider(formulaire){
		
		strtmp=verifier(formulaire);
		
			if(strtmp==""){
			formulaire.submit()
			return true;
			refreshParent()
			}
			{
			alert(strtmp);
			return false;
			}
		
		}
		

		
// Rafraîchir la feuille mère
		
function refreshParent() {

window.opener.location.href = window.opener.location.href;

if (window.opener.progressWindow)
{
window.opener.progressWindow.close()
}

window.close();

}

//Fermer le formulaire

function fermer(){

window.close();

}

// Mettre l'un des codes ci-dessous dans la propriété alt d'un contrôle de texte et le message d'erreur dans le title

// texte obligatoire : txtobl
// réel simple obligatoire : sngobl
// réel simple facultatif : sng
// Entier obligatoire : entobl
// Entier facultatif : ent
// Mail obligatoire : mailobl
// Mail facultatif : mail
// Date obligatoire : dateobl
// Date facultative : date
// Téléphone obligatoire : telobl
// Téléphone facultatif : tel

function verifier(formulaire)

{

  var mesg = "";

    // La boucle parcourt les champs texte du formulaire
    for(var j = 0; j < formulaire.elements.length; j++)
	{

      	if(formulaire[j].type == 'text' || formulaire[j].type == 'password' || formulaire[j].type == 'textarea')
	  	{			
			
 			switch(formulaire.elements[j].alt)
			
			{
 			// Si le contrôle requiert du texte obligatoirement      
			case 'txtobl':
			
				if(formulaire.elements[j].value=='')
				{
					mesg += "Le champ '" + formulaire.elements[j].title + "' doit contenir du texte.\n";
				}
				
			break;
			
			// Si le contrôle requiert un réel simple obligatoirement     
			case 'sngobl':

				if (formulaire.elements[j].value=='')
				{
					mesg += "Le champ '" + formulaire.elements[j].title + "' doit contenir un nombre.\n";
				}
				else
				{
					if(IsSingle(formulaire.elements[j].value)==false)
					{
						mesg += "Le champ '" + formulaire.elements[j].title + "' doit contenir un nombre.\n";
					}
				}
				
			break;
				
			// Si le contrôle requiert un réel simple facultatif    			
			case 'sng':

					if (formulaire.elements[j].value != '')
					{
						if(IsSingle(formulaire.elements[j].value)==false)
						{
							mesg += "Le champ '" + formulaire.elements[j].title + "' doit contenir un nombre.\n";
						}
					}
					
			break;

 		// Si le contrôle requiert un entier obligatoirement     
		case 'entobl':
		
			if (formulaire.elements[j].value == '')
			{
					mesg += "Le champ '" + formulaire.elements[j].title + "' doit contenir un nombre entier.\n";
			}
			else
			{
				if(IsEntier(formulaire.elements[j].value)==false)
				{
					mesg += "Le champ '" + formulaire.elements[j].title + "' doit contenir un nombre entier.\n";
				}
			}

			break;
		
 		// Si le contrôle requiert un entier facultatif    
		case 'ent':

			if (formulaire.elements[j].value != '')
			{
				if(IsEntier(formulaire.elements[j].value)==false)
				{
					mesg += "Le champ '" + formulaire.elements[j].title + "' doit contenir un nombre entier.\n";
				}
			}
		
		break;

 		// Si le contrôle requiert un mail obligatoirement     
		case 'mailobl':
		
			if (formulaire.elements[j].value == '')
			{
					mesg += "Le champ '" + formulaire.elements[j].title + "' doit contenir une adresse mail.\n";
			}
			else
			{
				if(IsEMail(formulaire.elements[j].value)==false)
				{
					mesg += "Le champ '" + formulaire.elements[j].title + "' doit contenir une adresse mail.\n";
				}
			}

		break;
		
 		// Si le contrôle requiert un mail facultatif    
		case 'mail':
		
			if (formulaire.elements[j].value != '')
			{
				if(IsEMail(formulaire.elements[j].value)==false)
				{
					mesg += "Le champ '" + formulaire.elements[j].title + "' doit contenir une adresse mail.\n";
				}
			}

		break;
		
 		// Si le contrôle requiert une date obligatoirement     
		case 'dateobl':
		
			if (formulaire.elements[j].value == '')
			{
					mesg += "Le champ '" + formulaire.elements[j].title + "' doit contenir une date valide (JJ/MM/AAAA).\n";
			}
			else
			{
				if(IsDate(formulaire.elements[j].value)==false)
				{
					mesg += "Le champ '" + formulaire.elements[j].title + "' doit contenir une date valide (JJ/MM/AAAA).\n";
				}
			}

		break;
 		
		
 // Si le contrôle requiert une date facultative    
		case 'date':
		
			if (formulaire.elements[j].value != '')
			{
				if(IsDate(formulaire.elements[j].value)==false)
				{
					mesg += "Le champ '" + formulaire.elements[j].title + "' doit contenir une date valide (JJ/MM/AAAA).\n";
				}
			}

		break;
		
// Si le contrôle requiert un N° de tel obligatoirement     
		case 'telobl':
		
			if (formulaire.elements[j].value == '')
			{
					mesg += "Le champ '" + formulaire.elements[j].title + "' doit contenir un numéro de téléphone valide.\n";
			}
			else
			{
				if(IsTel(formulaire.elements[j].value)==false)
				{
					mesg += "Le champ '" + formulaire.elements[j].title + "' doit contenir un numéro de téléphone valide.\n";
				}
			}

		break;
		
		 // Si le contrôle requiert un N° de tel facultatif   
		case 'tel':
		
			if (formulaire.elements[j].value != '')
			{
				if(IsTel(formulaire.elements[j].value)==false)
				{
					mesg += "Le champ '" + formulaire.elements[j].title + "' doit contenir un numéro de téléphone valide.\n";
				}
			}

		break;		
		
		}
	}
	}

return mesg

}

function IsTel(strctrl)
{

			if(strctrl.length<10) return false;
			
			var strvalid = "0123456789./+ ";

			for (i=0; i<strctrl.length; i++)
			{
				strChar = strctrl.substring(i,i+1);
				if (strvalid.indexOf(strChar) == -1)
				{
					return false;
				}
			}

			return true;
}

function IsSingle(strctrl)
{

			var strvalid = "0123456789.-,";

			for (i=0; i<strctrl.length; i++)
			{
				strChar = strctrl.substring(i,i+1);
				if (strvalid.indexOf(strChar) == -1)
				{
					return false;
				}
			}

			return true;
}

function IsEntier(strEnt)
{

			var strvalid = "0123456789-";

			for (i=0; i<strEnt.length; i++)
			{
				strChar = strEnt.substring(i,i+1);
				if (strvalid.indexOf(strChar) == -1)
				{
					return false;
				}
			}

			return true;
}


function IsDate(strCtrl)
{

	if(strCtrl.length<10) return false;

	var JJ=strCtrl.substring(0,2);
	if(!IsEntier(JJ)) return false;

	var MM=strCtrl.substring(3,5);
	if(!IsEntier(MM)) return false;

	var AAAA=strCtrl.substring(6,10);
	if(!IsEntier(AAAA)) return false;

	if(strCtrl.substring(2,3)!="/" || strCtrl.substring(5,6)!="/") return false;

	if(JJ<1||JJ>31||MM<1||MM>12) return false;

		if(MM==2)
				{
  				if(JJ==30||JJ==31) return false;
  				if(JJ==29) return ((AAAA%4==0&&AAAA%100!=0)||AAAA%400==0);
				}
		else if(JJ==31) return !(MM==4||MM==6||MM==9||MM==11);
		
		return true;

}

function IsEMail(emailStr)
{

	var validDomain=false;
	var AtPos = emailStr.lastIndexOf("@");
	var DotPos= emailStr.lastIndexOf(".");
	
	if((AtPos>0)&&(DotPos>0)&&(AtPos<DotPos))
	{
		var domainExtList='ac.ad.ae.af.ag.ai.al.am.an.ao.aq.ar.as.at.au.aw.az.ba.bb.bd.be.bf.bg.bh.bi.bj.bm.bn.bo.br.bs.bt.bv.bw.by.bz.ca.cc.cd.cf.cg.ch.ci.ck.cl.cm.cn.co.cr.cs.cu.cv.cx.cy.cz.de.dj.dk.dm.do.dz.ec.ee.eg.eh.er.es.et.fi.fj.fk.fm.fo.fr.fx.ga.gb.gd.ge.gf.gg.gh.gi.gl.gm.gn.gp.gq.gr.gs.gt.gu.gw.gy.hk.hm.hn.hr.ht.hu.id.ie.il.im.in.io.iq.ir.is.it.je.jm.jo.jp.ke.kg.kh.ki.km.kn.kp.kr.kw.ky.kz.la.lb.lc.li.lk.lr.ls.lt.lu.lv.ly.ma.mc.md.mg.mh.mk.ml.mm.mn.mo.mp.mq.mr.ms.mt.mu.mv.mw.mx.my.mz.na.nc.ne.nf.ng.ni.nl.no.np.nr.nt.nu.nz.om.pa.pe.pf.pg.ph.pk.pl.pm.pn.pr.ps.pt.pw.py.qa.re.ro.ru.rw.sa.sb.sc.sd.se.sg.sh.si.sj.sk.sl.sm.sn.so.sr.st.su.sv.sy.sz.tc.td.tf.tg.th.tj.tk.tm.tn.to.tp.tr.tt.tv.tw.tz.ua.ug.uk.um.us.uy.uz.va.vc.ve.vg.vi.vn.vu.wf.ws.ye.yt.yu.za.zm.zr.zw.com.edu.gov.int.mil.net.org.biz.pro.info.aero.name.coop.arpa.nato.museum.EoF';
  		var domainExt=domainExtList.split(".");
  		var emailExt=emailStr.substr(DotPos+1);
  		emailExt=emailExt.toLowerCase();
  		for(i=0;domainExt.length;i++)
  		{
  			if (domainExt[i]=='EoF')  break; //infinite loop else
   			if (emailExt==domainExt[i])  {validDomain=true;break;}
  		}
	}
	
return(validDomain);

}