
/* - utils.js - */
// http://www.einstitut.org/einstitut/portal_javascripts/utils.js?original=1
function isFormAjoutLdapValid(){var error="";if(document.formAjoutLDAP.fullname.value==""){error+="Saisissez le nom complet\n\n"}
if(document.formAjoutLDAP.username.value==""){error+="Saisissez l'identifiant\n\n"}
if(document.formAjoutLDAP.mail.value==""){error+="Saisissez l'E-Mail\n\n"} else if(!isEmailValid(document.formAjoutLDAP.mail.value)){error+="Saisissez un E-Mail valide\n\n"}
if(document.formAjoutLDAP.homePostalAddress1.value==""){error+="Saisissez la ville\n\n"}
if(document.formAjoutLDAP.userPassword.value==""){error+="Saisissez le mot de passe\n\n"}
if(document.formAjoutLDAP.userPassword_confirm.value==""){error+="Saisissez la confirmation du mot de passe\n\n"}
if((document.formAjoutLDAP.userPassword.value.length<5)||(document.formAjoutLDAP.userPassword_confirm.value.length<5)){error+="Le mot de passe et sa confirmation doivent comporter au moins 5 caractères\n\n"}
if(document.formAjoutLDAP.userPassword.value!=document.formAjoutLDAP.userPassword_confirm.value){error+="Le mot de passe et sa confirmation doivent être identiques\n\n"}
if(error==""){return true} else{alert(error);return false}}
function isFormModifLdapValid($uid){var error="";if(document.formModifLDAP.fullname.value==""){error+="Saisissez le nom complet\n\n"}
if(document.formModifLDAP.username.value==""){error+="Saisissez l'identifiant\n\n"}
if(document.formModifLDAP.mail.value==""){error+="Saisissez l'E-Mail\n\n"} else if(!isEmailValid(document.formModifLDAP.mail.value)){error+="Saisissez un E-Mail valide\n\n"}
if(document.formAjoutLDAP.homePostalAddress1.value==""){error+="Saisissez la ville\n\n"}
if(error==""){return true} else{alert(error);return false}}
function isFormGroupeLdapValid($uid){var error="";if(document.formGroupeLDAP.fullname.value==""){error+="Saisissez le nom du groupe\n\n"}
if(error==""){return true} else{alert(error);return false}}
function isFormFormathequeValid(){var error="";if(document.formFormatheque.formation.value==""){error+="Saisissez le nom de la formation\n\n"}
if(document.formFormatheque.objectif.value==""){error+="Saisissez l'objectif de la formation\n\n"}
if(document.formFormatheque.liens.value==""){error+="Saisissez le ou les lien(s) de la formation\n\n"}
if(document.formFormatheque.contenu.value==""){error+="Saisissez le contenu de la formation\n\n"}
if(document.formFormatheque.action.value=="add"&&document.formFormatheque.localisation.value!=""&&(document.formFormatheque.abscisse.value==""||document.formFormatheque.ordonnee.value=="")){error+="Saisissez des coordonnées pour la nouvelle localisation\n\n"} else if(document.formFormatheque.action.value=="update"&&(document.formFormatheque.abscisse.value==""||document.formFormatheque.ordonnee.value=="")){error+="Saisissez des coordonnées pour la localisation\n\n"}
if(document.formFormatheque.type.value==""){error+="Saisissez le type de la formation\n\n"}
if(error==""){return true} else{alert(error);return false}}
function isFormCategorieValid(){var error="";if(document.formCategorie.libelle.value==""){error+="Saisissez le nom de la catégorie\n\n"}
if(error==""){return true} else{alert(error);return false}}
function isFormSousCategorieValid(){var error="";if(document.formSousCategorie.libelle.value==""){error+="Saisissez le nom de la sous-catégorie\n\n"}
if(error==""){return true} else{alert(error);return false}}
function isFormLogicielValid(){var error="";if(document.formLogiciel.libelle.value==""){error+="Saisissez le nom du logiciel\n\n"}
if(document.formLogiciel.description.value==""){error+="Saisissez la description du logiciel\n\n"}
if(document.formLogiciel.action.value=="add"){if(document.formLogiciel.image.value==""){error+="Saisissez l'image du logiciel\n\n"}
if(document.formLogiciel.version.value==""){error+="Saisissez le nom de la version\n\n"}
if(document.formLogiciel.taille.value==""){error+="Saisissez la taille de la version\n\n"} else if(isNaN(document.formLogiciel.taille.value)){error+="Saisissez une taille correcte pour la version\n\n"}
if(document.formLogiciel.config.value==""){error+="Saisissez la configuration de la version\n\n"}
if(!isDateValid(document.formLogiciel.jourDateSortie.value,document.formLogiciel.moisDateSortie.value,document.formLogiciel.anneeDateSortie.value)){error+="Saisissez une date de sortie correcte pour la version\n\n"}
if(document.formLogiciel.langue.value==""){error+="Saisissez la langue de la version\n\n"}
if(document.formLogiciel.action.value=="add"){if(document.formLogiciel.chemin.value==""){error+="Saisissez le fichier de la version\n\n"}}}
if(error==""){return true} else{alert(error);return false}}
function isFormVersionValid(){var error="";if(document.formVersion.version.value==""){error+="Saisissez le nom de la version\n\n"}
if(document.formVersion.taille.value==""){error+="Saisissez la taille de la version\n\n"}
if(isNaN(document.formVersion.taille.value)){error+="Saisissez une taille correcte pour la version\n\n"}
if(document.formVersion.config.value==""){error+="Saisissez la configuration de la version\n\n"}
if(!isDateValid(document.formVersion.jourDateSortie.value,document.formVersion.moisDateSortie.value,document.formVersion.anneeDateSortie.value)){error+="Saisissez une date de sortie correcte pour la version\n\n"}
if(document.formVersion.langue.value==""){error+="Saisissez la langue de la version\n\n"}
if(document.formVersion.action.value=="add"){if(document.formVersion.chemin.value==""){error+="Saisissez le fichier de la version\n\n"}}
if(error==""){return true} else{alert(error);return false}}
function isFormTutorielValid(){var error="";if(document.formTutoriel.libelle.value==""){error+="Saisissez le fichier du tutoriel\n\n"}
if(error==""){return true} else{alert(error);return false}}
function isFormCategorieLienValid(){var error="";var exp=new RegExp("[a-zA-Z0-9\\sâêîôûàèìòùáéíóúäëïöüãõñçÀÈÙÂÊÎÔÛÄËÏÖÜÇ]","g");if(!exp.test(document.formCategorieLien.titre.value)){error+="Saisissez un titre correct pour la catégorie\n\n"}
if(error==""){return true} else{alert(error);return false}}
function isFormLienValid(){var error="";if(document.formLien.intitule.value==""){error+="Saisissez l'intitulé du lien\n\n"}
if(document.formLien.description.value==""){error+="Saisissez la description du lien\n\n"}
if(!isUrlValid(document.formLien.lien.value)){error+="Saisissez une url correcte pour le lien\n\n"} else{var response=$.ajax({url:"lienUnique.php",async:false,type:"POST",data:{'lien':document.formLien.lien.value},}).responseText;if(response!="true"){error+="Ce lien est déjà présent dans la bibliothèque\n\n"}}
if(error==""){return true} else{alert(error);return false}}
function isFormPropositionValid(){var error="";if(document.formProposition.intitule.value==""){error+="Saisissez l'intitulé du lien\n\n"}
if(document.formProposition.description.value==""){error+="Saisissez la description du lien\n\n"}
if(!isUrlValid(document.formProposition.lien.value)){error+="Saisissez une url correcte pour le lien\n\n"} else{var response=$.ajax({url:"lienUnique.php",async:false,type:"POST",data:{'lien':document.formProposition.lien.value},}).responseText;if(response!="true"){error+="Ce lien est déjà présent dans la bibliothèque\n\n"}}
if(error==""){return true} else{alert(error);return false}}
function isFormServiceValid(){error="";if(document.form1.nomService.value==""){error+="Saisissez le nom du service\n\n"}
if(error==""){return true} else{alert(error);return false}}
function isFormSiteValid(){error="";if(document.form2.nomSite.value==""){error+="Saisissez le nom du site\n\n"}
if(!isUrlValid(document.form2.liensSite.value)){error+="Saisissez une url correcte pour le lien\n\n"}
if(document.form2.infoSite.value==""){error+="Saisissez la description du site\n\n"}
if(error==""){return true} else{alert(error);return false}}
function isEmailValid(mail){var checkTLD=1;var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum|fr)$/;var emailPat=/^(.+)@(.+)$/;var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";var validChars="\[^\\s"+specialChars+"\]";var quotedUser="(\"[^\"]*\")";var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;var atom=validChars+'+';var word="("+atom+"|"+quotedUser+")";var userPat=new RegExp("^"+word+"(\\."+word+")*$");var domainPat=new RegExp("^"+atom+"(\\."+atom+")*$");var matchArray=mail.match(emailPat);if(matchArray==null){return false}
var user=matchArray[1];var domain=matchArray[2];for(i=0;i<user.length;i++){if(user.charCodeAt(i)>127){return false}}
for(i=0;i<domain.length;i++){if(domain.charCodeAt(i)>127){return false}}
if(user.match(userPat)==null){return false}
var IPArray=domain.match(ipDomainPat);if(IPArray!=null){for(var i=1;i<=4;i++){if(IPArray[i]>255){return false}}
return true}
var atomPat=new RegExp("^"+atom+"$");var domArr=domain.split(".");var len=domArr.length;for(i=0;i<len;i++){if(domArr[i].search(atomPat)==-1){return false}}
if(checkTLD&&domArr[domArr.length-1].length!=2&&domArr[domArr.length-1].search(knownDomsPat)==-1){return false}
if(len<2){return false}
return true}
function isDateValid(x,y,z){return((x>0)&&(x<=nbJoursMois(y,z)))}
function nbJoursMois(mois,annee){if((mois==1)||(mois==3)||(mois==5)||(mois==7)||(mois==8)||(mois==10)||(mois==12)){return(31)} else if((mois==4)||(mois==6)||(mois==9)||(mois==11)){return(30)} else if((mois==2)&&(isAnneeBissextile(annee))){return(29)} else{return(28)}}
function isAnneeBissextile(annee){return(annee%4==0)&&((annee%100!=0)||(annee%400==0))}
function isUrlValid(url){var re=new RegExp();re.compile("^[A-Za-z]+://[A-Za-z0-9-_]+\\.[A-Za-z0-9-_%&\?\/.=]+$");if(!re.test(url)){return false} else{return true}}

