function FormValidator(){this.rules=new Array();this.isGood=true;var a="";var b="";if(document.getElementById("msgChampObligatoire")){a=document.getElementById("msgChampObligatoire").value;b=document.getElementById("msgChampMail").value}this.addRules=function(d,k){this.rules[d]=k;var f=null;var e=null;var h=document.createElement("div");h.className="erreurFormulaire";h.id="erreur"+d;if(d.toLowerCase()!="checkbox"){f=document.getElementById(d).parentNode;e=document.getElementById(d).nextSibling}else{deb=k.indexOf("baseid")+7;space=k.indexOf(" ",deb);baseid=space==-1?k.substring(deb):k.substring(deb,space);insert="";if(k.indexOf("insertafter")!=-1){deb=k.indexOf("insertafter")+12;space=k.indexOf(" ",deb);insert=space==-1?k.substring(deb):k.substring(deb,space)}newline="n";if(k.indexOf("newline")!=-1){deb=k.indexOf("newline")+8;space=k.indexOf(" ",deb);newline=space==-1?k.substring(deb):k.substring(deb,space)}h.id="erreur"+baseid;if(document.getElementById(insert)!=null){e=document.getElementById(insert);f=e.parentNode}else{inps=document.getElementsByTagName("input");lastid=null;for(i=0;i<inps.length;i++){if(inps[i].type.toLowerCase()=="checkbox"&&inps[i].id.indexOf(baseid)!=-1){lastid=inps[i].id}}f=document.getElementById(lastid).parentNode;e=document.getElementById(lastid)}e=e.nextSibling;if(e==null){temp=document.createTextNode("");f.appendChild(temp);e=temp}if(e.nodeName.toLowerCase()=="label"&&e.getAttributeNode("for").value==lastid){e=e.nextSibling}if(newline=="y"){temp=document.createElement("br");suiv2=e.nextSibling;if(suiv2==null){f.appendChild(temp)}else{f.insertBefore(temp,suiv2)}e=temp}if(k.indexOf("minlength")!=-1){g=document.createTextNode("*");h.appendChild(g)}}if(k.indexOf("date")!=-1){deb=k.indexOf("date")+5;space=k.indexOf(" ",deb);val=space==-1?k.substring(deb):k.substring(deb,space);cal=document.createElement("a");cal.style.width="20";cal.style.height="20";cal.className="openCalendar";cal.href="#";c=document.createElement("theo:Calendar");c.name=d;c.ondatechange=function(){document.getElementById(this.name).value=this.getControl().getDate(val)};cal.control=c;cal.onclick=function(){this.control.swap()};f.insertBefore(cal,e);f.insertBefore(c,cal);e=cal}if(k.indexOf("required")!=-1){var g=document.createTextNode("*");h.appendChild(g)}if(k.indexOf("numeric")!=-1){document.getElementById(d).onkeypress=function(m){var l;if(!m){m=window.event;l=m.keyCode}else{l=m.charCode;if(l==0){return}}if(!(l>=48&&l<=57)){dec=true;if(k.indexOf("decimals")!=-1){deb=k.indexOf("decimals")+9;space=k.indexOf(" ",deb);val=space==-1?k.substring(deb):k.substring(deb,space);dec=parseInt(val)!=0}else{dec=false}switch(l){case 44:if((this.value.indexOf(".")==-1&&dec)){if(document.all){m.keyCode=46}else{this.value+=".";validator.stopKeyPress(m)}}else{validator.stopKeyPress(m)}break;case 46:if(this.value.indexOf(".")!=-1||!dec){validator.stopKeyPress(m)}break;default:validator.stopKeyPress(m)}}else{if(k.indexOf("decimals")!=-1){deb=k.indexOf("decimals")+9;space=k.indexOf(" ",deb);val=space==-1?k.substring(deb):k.substring(deb,space);if(this.value.indexOf(".")!=-1){if(this.value.length-this.value.indexOf(".")-1==parseInt(val)){validator.stopKeyPress(m)}}}}}}if(e&&e.nodeName!="#text"){f.insertBefore(h,e)}else{f.appendChild(h)}};this.stopKeyPress=function(d){if(!document.all){d.preventDefault()}else{d.keyCode=0}return false};this.isMail=function(d){if(d.search(/^[^@]+@[^@]+$/)!=-1){return true}else{return false}};this.trim=function(d){return d.replace(/^\s*|\s*$/g,"")};this.check=function(f){this.isGood=true;for(id in this.rules){var e=this.rules[id];this.setErrMess(id,"*");var d=null;if(id.toLowerCase()=="checkbox"){if(e.indexOf("minlength")!=-1){deb=e.indexOf("minlength")+10;space=e.indexOf(" ",deb);minval=space==-1?e.substring(deb):e.substring(deb,space)}else{minval=0}if(e.indexOf("maxlength")!=-1){deb=e.indexOf("maxlength")+10;space=e.indexOf(" ",deb);maxval=space==-1?e.substring(deb):e.substring(deb,space)}else{maxval=0}deb=e.indexOf("baseid")+7;space=e.indexOf(" ",deb);baseid=space==-1?e.substring(deb):e.substring(deb,space);inps=document.getElementsByTagName("input");checkcmpt=0;for(i=0;i<inps.length;i++){if(inps[i].type.toLowerCase()=="checkbox"&&inps[i].id.indexOf(baseid)!=-1&&inps[i].checked){checkcmpt++}}if(minval!=0&&checkcmpt<minval){this.setErrMess(baseid,a)}else{if(maxval!=0&&checkcmpt>maxval){this.setErrMess(baseid,"Vous devez cocher au maximum "+maxval+" cases")}else{if(maxval!=0&&minval==0){this.setErrMess(baseid,"")}else{this.setErrMess(baseid,"*")}}}}else{d=document.getElementById(id);if(e.indexOf("required")!=-1){if((d.type=="text"||d.type=="password"||d.type=="file"||d.nodeName.toLowerCase()=="textarea")&&!this.trim(d.value)){this.setErrMess(id,a)}else{if(d.nodeName.toLowerCase()=="select"&&d.options[d.selectedIndex].value==""){this.setErrMess(id,a)}}}else{this.setErrMess(id,"")}if(e.indexOf("maxlength")!=-1){deb=e.indexOf("maxlength")+10;space=e.indexOf(" ",deb);val=space==-1?e.substring(deb):e.substring(deb,space);if((d.type=="text"||d.type=="password"||d.nodeName.toLowerCase()=="textarea")&&!(this.trim(d.value).length<=val)){this.setErrMess(id,"Ce champ ne doit pas contenir plus de "+val+" caractères.")}if(d.nodeName.toLowerCase()=="select"&&d.multiple){cmptsel=0;for(j=0;j<d.options.length;j++){if(d.options.options[j].selected){cmptsel++}}if(cmptsel>val){this.setErrMess(id,"Vous ne devez pas selectionner plus de "+val+" éléments.")}}}if(e.indexOf("minlength")!=-1){deb=e.indexOf("minlength")+10;space=e.indexOf(" ",deb);val=space==-1?e.substring(deb):e.substring(deb,space);if((d.type=="text"||d.type=="password"||d.nodeName.toLowerCase()=="textarea")&&!(this.trim(d.value).length>=val)){this.setErrMess(id,"Ce champ ne doit pas contenir moins de "+val+" caractères.")}if(d.nodeName.toLowerCase()=="select"&&d.multiple){cmptsel=0;for(j=0;j<d.options.length;j++){if(d.options.options[j].selected){cmptsel++}}if(cmptsel<val){this.setErrMess(id,"Vous ne devez pas selectionner moins de "+val+" éléments.")}}}if(e.indexOf("mail")!=-1){if(this.trim(d.value)){if(!this.isMail(d.value)){this.setErrMess(id,b)}}}}}if(this.isGood&&document.getElementById("FormValidation")){this.isGood=validationFormulaire()}return this.isGood};this.setErrMess=function(d,f){var g=document.getElementById("erreur"+d);if(g){var e=document.createTextNode(f);if(g.childNodes.length==0){g.appendChild(e)}else{g.replaceChild(e,g.firstChild)}}if(f!="*"&&f!=""){this.isGood=false}}};
