

function check_form( form ){

	var ok = true;
	
	for( var i=0; i<form.length; i++ ){
		var input = form[i];
		if( input.className ){
			input.className = input.className.replace(/ erreur/,"");
			var classe = input.className;
			var div = document.getElementById("erreur_" + input.name);
			if( div ){
				div.innerHTML = "";
				div.style.display = "none";
			}else{
				if( input.nodeName.toLowerCase() == "input" && (input.type == "text" || input.type == "password") && input.value != '' ){
					input.style.border = "#6766DE solid 1px";
				}
			}
			
			if( input.nodeName.toLowerCase() == "input" && (input.type == "text" || input.type == "password") && input.value.replace(/^(\s)*/, '') != '' ){
				while( input.value.indexOf(String.fromCharCode(8217)) != -1 )
					input.value = input.value.replace(String.fromCharCode(8217),String.fromCharCode(39));
				while( input.value.indexOf(String.fromCharCode(8211)) != -1 )
					input.value = input.value.replace(String.fromCharCode(8211),"-");
				while( input.value.indexOf(String.fromCharCode(8230)) != -1 )
					input.value = input.value.replace(String.fromCharCode(8230),"...");
				while( input.value.indexOf(String.fromCharCode(339)) != -1 )
					input.value = input.value.replace(String.fromCharCode(339),"oe");
				
				for( var j=0; j<input.value.length; j++ ){
					if( input.value.charCodeAt(j) > 255 ){
						input.value = input.value.substring(0,j) + input.value.substring(j+1);
						j--;
					}
				}
				
				
				input.value = input.value.substring(0,255);
			}
			
			// Champ requis
			if( classe.indexOf("requis") > -1 ){
				if( input.nodeName.toLowerCase() == "input" ){
					if( input.type == "text" || input.type == "password" || input.type == "file" ){
						if( input.value == '' || input.value.length < 1 ){
							ok = false;
							erreur_champ(input,div,"Ce champ est requis. ");
						}
					}else{
						var checked = false;
						for( var r=0; r<form.length; r++ ){
							if( form[r].name == input.name && form[r].checked == true ){
								checked = true;
							}
						}
						if( !checked ){
							erreur_champ(input,div,"Ce champ est requis. ");
							ok = false;
						}
					}
				}else{
					if( input.value == '' || input.value.length < 1 ){
						ok = false;
						erreur_champ(input,div,"Ce champ est requis. ");
					}
				}
			}
			
		
			if(input.type=="file" && input.value.length > 4 ){
				var ext = new String(input.value).substring(new String(input.value).length-4,new String(input.value).length);
				ext = "_"+ext.replace(".","_")+"_";
				if( classe.indexOf(ext) == -1 ){
					ok=false;
					erreur_champ(input,div,"Ce type de fichier n'est pas valide");
				}
			}
			
			// Champ nombre decimal
			if( classe.indexOf("decimal") > -1 ){
				input.value = input.value.replace(",",".");
				if( isNaN(input.value) ){
					ok = false;
					erreur_champ(input,div,"La valeur de ce champ doit est un nombre decimal. ");
				}
			}
			
			// Champ nombre entier
			if( classe.indexOf("entier") > -1 ){
				input.value = input.value.replace(/,/g,".");
				if( isNaN(input.value) || input.value.indexOf(".") != -1 ){
					ok = false;
					erreur_champ(input,div,"La valeur de ce champ doit est nombre entier. ");
				}
			}
			
			// Champ date
			if( classe.indexOf("date") > -1 ){
				if( (input.value.length != 0 && input.value.length != 10) || isNaN(input.value.substr(0,2)) || isNaN(input.value.substr(3,2)) || isNaN(input.value.substr(6,4)) ){
					erreur_champ(input,div,"La valeur de ce champ doit etre une date au format jj/mm/aaaa. ");
					ok = false;
				}
			}
			
			// Champ email
			if( classe.indexOf("email") > -1 ){
				if( input.value.length>0 && !isEmail(input.value) ){
					erreur_champ(input,div,"La valeur de ce champ doit etre une adresse email");
					ok = false;
				}
			}
			
			
			// Champ a confirmer
			if( classe.indexOf("confirm") > -1 ){
				var input_confirm = eval("form." + input.name + "_confirm");
				if( input_confirm && input_confirm.value != input.value ){
					erreur_champ(input,div,"Les deux valeurs doivent etre identiques.");
					//erreur_champ(input_confirm,div,"Les deux valeurs doivent etre identiques.");
					ok = false;
				}
			}
			
		}
		
	}
	
	return ok;


}


function erreur_champ( input, div, texte ){

	if(div){
		div.innerHTML = texte;
		div.style.display = "block";
	}
	input.className = input.className += " erreur";
	
}

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.eu.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);
}

parseString = function( str ){
	var parsed = "";
	//var codes = "";
	for( var j=0; j<str.length; j++ ){
		//codes += str.substring(j,j+1) + "="+str.charCodeAt(j)+", ";
		if( str.charCodeAt(j) >= 0 && str.charCodeAt(j) <= 255 ){
			parsed += str.substring(j,j+1);
		}else{
			if( str.charCodeAt(j) == 8217 ) parsed += "'";
			if( str.charCodeAt(j) == 8211 ) parsed += "-";
			if( str.charCodeAt(j) == 8230 ) parsed += "...";
			if( str.charCodeAt(j) == 339 ) parsed += "oe";
		}
		
	}
	//alert(codes);
	return parsed;
}