//test la validité d'une adresse e-mail
function vmail(mail)
{
    // l'adresse minimum est xx@yy.zz
    var point=mail.value.lastIndexOf('.');

    // La position du dernier point de l'adresse email
    var arob=mail.value.lastIndexOf('@');

    // La position du dernier @ de l'adresse email
    var longu=mail.value.length;

    // La longueur de l'adresse
    if((longu-point < 3) || (longu-arob) < 6 || arob > point || point == -1 || arob == -1)
    {
        // Si le point se trouve a moins de 2 caractères de la fin
        // ou si l'arobase se trouve a moins de 5 caractères de la fin
        // ou si il n'y a pas de point après @
        // ou si il n'y a pas de point ou pas de @
        alert('Veuillez entrer une adresse email valide');
        return false;
    }
    else
    {
        return true;
    }
}

// Fonctions AJAX
function getXhr(){
    var xhr = null; // l'objet XMLHttpRequest qui va permettre une demande au serveur en CONSERVANT LA PAGE EN COURS
    // pour Récupérer l'objet XMLHttpRequest
    if(window.XMLHttpRequest) // Firefox et autres
        xhr = new XMLHttpRequest();
    else if(window.ActiveXObject){ // Internet Explorer
        try {
            xhr = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            xhr = new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    else { // XMLHttpRequest non supportÃ© par le navigateur
        alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
        xhr = false;
    }
    return xhr;
}

function gomiddle(url,param,target){

    xhr=getXhr();
    if(xhr==null)
        alert("Impossible d'utiliser Ajax sur ce navigateur");
    else {
        xhr.open('POST',url,true);
        xhr.onreadystatechange=function(){
            reponse(xhr,target);
        }
        xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');        
        xhr.send(param);
    }
    return;
}

function reponse(xhr,target){

    if (xhr.readyState==4){
        if(xhr.status==200) {

            affPhpMiddle(xhr.responseText,target);
        }

        else
            alert(" La requête ne s'est pas correctement exécutée !!\n"+target);
    }
}

function affPhpMiddle(reponse,target){
    document.getElementById(target).innerHTML=reponse;
}

//AUTRES FONCTIONS

function checkValidDoc(ch_ext){
    var doc=document.getElementById('chemin').value;
    var ext= doc.substr((doc.length)-3);
    if(ext!=""){
        flag=0;
        var tab=ch_ext.split(",");
        for (i = 0; i < tab.length; i++) {
            if(tab[i]==ext){
                flag=1;
            }
        }
        if(flag==0){
            alert("Ce type de fichier n'est pas pris en charge !");
            return null;
        }
    }
    if((document.getElementById('auteur').selectedIndex==0) ||(document.getElementById('titre').value=="")){
        alert("Vous devez au moins choisir un auteur et un titre !")
        return null;
    }
    document.forms[0].submit();
    return null;
}
    
function checkValidFaq(){
    if((document.getElementById('auteur').selectedIndex==0) ||(document.getElementById('question').value=="")||(document.getElementById('reponse').value=="")||(document.getElementById('modules').selectedIndex==0)){
        alert("tous les champs doivent être renseignés !")
        return null;
    }
    document.forms[0].submit();
    return null;

}

function apercu(page){
    window.open(page,null,'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=760,height=650,left=250,top=130')
}

function confirmDelete(id_convoc){
    url = "effacer_"+id_convoc;
    if(confirm("Etes-vous sur de vouloir \n effacer cette convocation"))
        document.location=url;
}

function verifExtCertif(){
    var  nomCertif=document.getElementsByName('certif')[0].value;
    var x=(nomCertif.substr(nomCertif.length-4,4)).toLowerCase();
    if(x==".crt" || x==".cer"){
        document.forms[0].submit();
    }
    else {
        if(nomCertif.length==0){
            alert("Vous devez inserer un certificat")
        }
        else{
            alert("Le certificat doit être un fichier comportant \n l'extension .cer ou .crt");
        }
    }
}

function getListeDestinataire(){
    liste= document.getElementById('liste_destis');
    maliste=liste.options[liste.selectedIndex].value;
    window.open('liste_destinataires_'+maliste,'','width=790,height=650');
}

function verifExtDoc(){
    var ch ="";
    var  nomFichier=document.getElementsByName('fichier_convoc')[0].value;
    var x=(nomFichier.substr(nomFichier.length-4,4)).toLowerCase();
    var BadName= /\+|é|è|à|ù|ï|ê|î|ô|â|ç|!|&|:|,/;
    if(nomFichier.match(BadName))
        ch="Le nom de fichier ne peut contenir certains caractères comme:\n +, é, è, à, ç, ù, +, &,...\n";

    var  nomFichierSign=document.getElementsByName('signature_convoc')[0].value;
    var sig=(nomFichierSign.substr(nomFichierSign.length-4,4)).toLowerCase();

    
    if((x==".pdf" || x==".doc")&&(sig==".sig" ||!nomFichierSign)){
        return true;
    }
    else {
        
        if(x!=".pdf" && x!=".doc")
            ch+= "Le  fichier doit être un document comportant \n l'extension .pdf ou .doc\n";
        if(sig!=".sig" &&nomFichierSign)
            ch+= "Le  fichier de signature doit être un fichier\n comportant  l'extension .sig";
        alert(ch);
        return false;
    }
}
function verifExtSig(){
    var  nomFichierSign=document.getElementsByName('signature_convoc')[0].value;
    var sig=(nomFichierSign.substr(nomFichierSign.length-4,4)).toLowerCase();
    if(sig==".sig" ){
        return true;
    }
    else {
        alert("Le  fichier doit être un document comportant \n l'extension .sig");
        return false;
    }
}

function verifExtFichier(){
    flag=true;
    for (i = 1; i < 6; i++) {
        var name='fichier_annexe'+i;
        var nomFichier=document.getElementsByName(name)[0].value;
        var x=(nomFichier.substr(nomFichier.length-4,4)).toLowerCase();
        if(x==".exe"){
            flag=false;
        }
    }
    if(flag)   {
        return true;
    }
    else {
        alert("Aucun  fichier ne doit être un document comportant \n l'extension .exe");
        return false;
    }
}

//APPLET DE SIGNATURE
function open_sign_window() {
    var zeForm = document.getElementById("sign_form");
    var signSubmitButton = document.getElementById("sign_submit_button");
    // Purge des éléments hidden qui existeraient déjà (évite les doublons en cas de clics multiples)
    zeForm.innerHTML = '<input class="submit_button" id="sign_submit_button" type="submit" value="Générer les signatures" /><input type="hidden" value="sign_me" name="rub">';
    var acteFile = document.getElementById("acte_pdf_file");

    // Le fichier de l'acte est obligatoire
    if (acteFile) {
        if (acteFile.value.length <= 0) {
            alert("Choisissez au moins un fichier pour l'acte.");
            return false;
        } else {
            zeInput = document.createElement('input');
            zeInput.setAttribute("type", "hidden");
            zeInput.setAttribute("id", "form_sign_file_1");
            zeInput.setAttribute("name", "files[]");
            zeInput.setAttribute("value", getFullPath(acteFile));
            zeForm.appendChild(zeInput);
        }
    }


    window.open('about:blank', 'sign_files', 'location=0,resizable=1,scrollbars=1,menubar=0,status=0,toolbar=0,directories=0,width=850,height=650');

    zeForm.target = 'sign_files';

    return true;
}

function getFullPath(obj){
    if(obj) {
        //ie
        if (window.navigator.userAgent.indexOf("MSIE")>=1) {
            obj.select();
            return document.selection.createRange().text;
        }
        //firefox
        else if(window.navigator.userAgent.indexOf("Firefox")>=1){
            if(obj.files)
            {
                return obj.files[0].getAsDataURL();
            }
            return obj.value;
        }
        return obj.value;
    }
}


function toutDecocher(nom,nb){
    for (i = 0; i < nb; i++) {
        document.getElementsByName(nom+i)[0].checked=false;
    }    
}

function toutCocher(nom,nb){
    for (i = 0; i < nb; i++) {
        document.getElementsByName(nom+i)[0].checked=true;
    }
}

function InverserSelection(nom,nb){
    for (i = 0; i < nb; i++) {
        document.getElementsByName(nom+i)[0].checked=!(document.getElementsByName(nom+i)[0].checked);
    }
}

function myRefresh(){
        history.go(0);
    }
