
function trim(s)
{return s.replace(/^\s+|\s+$/,'');}
function errorTransform(fld){fld.style.background='#ffaaaa';}
function noErrorTransform(fld){fld.style.background='#ffffff';}
function isEmptyField(fld,oblig){var result;if(fld.value.length==0){if(oblig)errorTransform(fld);else noErrorTransform(fld);result=true;}else{noErrorTransform(fld);result=false;}
return result;}
function isEmptyList(lst,oblig){var result;var selected=false;for(i=0;i<lst.options.length;i++){if(lst.options[i].selected)selected=true;}
if(!selected&&oblig){errorTransform(lst);}else{noErrorTransform(lst);}
return!selected;}
function isEmptyCheckboxList(lst){var selected=0;for(i=0;i<lst.length;i++){if(lst[i].checked){selected++;}}
return(selected==0);}
function isValidPhone(fld){var error="";var aRemplacer=/[^\d]/g;fld.value=fld.value.replace(aRemplacer,'');if(isNaN(parseInt(fld.value))){error="Le téléphone doit contenir uniquement des chiffres, sans espace, tiret ou point.\n";errorTransform(fld);}else if(!(fld.value.length==10)){error="Le téléphone doit contenir 10 chiffres, sans espace, tiret ou point.\n";errorTransform(fld);}else{noErrorTransform(fld);}
return error;}
function isValidEmail(fld){var error="";var tfld=trim(fld.value);var emailFilter=/^[^@\+]+@[^@.]+\.[^@]*\w\w$/;var illegalChars=/[\(\)\<\>\,\;\:\\\"\[\]]/;if(fld.value==""){errorTransform(fld);error="L'adresse email n'est pas renseignée.\n";}else if(!emailFilter.test(tfld)){errorTransform(fld);error="L'adresse email n'est pas correcte.\n";}else if(fld.value.match(illegalChars)){errorTransform(fld);error="L'adresse email n'est pas correcte.\n";}else{noErrorTransform(fld);}
return error;}
function isValidUrl(fld){error="";if(fld.value.match(/^(http|https)\:\/\/\w+([\.\-]\w+)*\.\w{2,4}(\:\d+)*([\/\.\-\?\&\%\#]\w+)*\/?$/i)){noErrorTransform(fld);}else{errorTransform(fld);error="L'adresse internet n'est pas correcte.\n";}
return error;}
function isValidDate(fld){if(isDate(fld.value)==false){errorTransform(fld);return false;}else{noErrorTransform(fld);return true;}}
function isTime(value){var hours=value.charAt(0)+value.charAt(1);var minutes=value.charAt(3)+value.charAt(4);return(value.length==5&&value.charAt(2)==':'&&hours>=0&&hours<=23&&minutes<=59&&minutes>=0);}
var dtCh="/";var minYear=1900;var maxYear=2100;function isInteger(s){var i;for(i=0;i<s.length;i++){var c=s.charAt(i);if(((c<"0")||(c>"9")))return false;}
return true;}
function stripCharsInBag(s,bag){var i;var returnString="";for(i=0;i<s.length;i++){var c=s.charAt(i);if(bag.indexOf(c)==-1)returnString+=c;}
return returnString;}
function daysInFebruary(year){return(((year%4==0)&&((!(year%100==0))||(year%400==0)))?29:28);}
function DaysArray(n){for(var i=1;i<=n;i++){this[i]=31
if(i==4||i==6||i==9||i==11){this[i]=30}
if(i==2){this[i]=29}}
return this}
function isDate(dtStr){var daysInMonth=DaysArray(12)
var pos1=dtStr.indexOf(dtCh)
var pos2=dtStr.indexOf(dtCh,pos1+1)
var strMonth=dtStr.substring(pos1+1,pos2)
var strDay=dtStr.substring(0,pos1)
var strYear=dtStr.substring(pos2+1)
strYr=strYear
if(strDay.charAt(0)=="0"&&strDay.length>1)strDay=strDay.substring(1)
if(strMonth.charAt(0)=="0"&&strMonth.length>1)strMonth=strMonth.substring(1)
for(var i=1;i<=3;i++){if(strYr.charAt(0)=="0"&&strYr.length>1)strYr=strYr.substring(1)}
month=parseInt(strMonth)
day=parseInt(strDay)
year=parseInt(strYr)
if(pos1==-1||pos2==-1){return false}
if(strMonth.length<1||month<1||month>12){return false}
if(strDay.length<1||day<1||day>31||(month==2&&day>daysInFebruary(year))||day>daysInMonth[month]){return false}
if(strYear.length!=4||year==0||year<minYear||year>maxYear){return false}
if(dtStr.indexOf(dtCh,pos2+1)!=-1||isInteger(stripCharsInBag(dtStr,dtCh))==false){return false}
return true}