var prenom;
var nom;
var email;
var organisme;
var fonction;
var adresse;
var codepostal;
var ville;
var telephone;
var ancienetudiant;
var ip;
var allFields;

function valider_inscription_success(response){
    if (response=='t'){
        allFields.val('').removeClass('ui-state-error');
        $('.messageAlerte').html('');
        $('#fiche').dialog('destroy'); // désactive toutes les fonctionnalités de boite de dialogue de la div edition
        $("#fiche").remove(); // supprime toutes les node div id=edition existantes dans le DOM
        alert('Votre inscription a bien été réalisée. Merci et à bientôt !');
    }
    else {
        alert("Une erreur s'est produite durant votre inscription. Contacter l'administrateur (l'email de contact est en bas de cette page): "+response);
    }
}

function affiche_inscription_success(response){
    $("#fiche").html(response);

    prenom = $("#prenom");
    nom = $("#nom");
    email = $("#email");
    organisme= $("#organisme");
    adresse= $("#adresse");
    fonction= $("#fonction");
    codepostal= $("#codepostal");
    ville= $("#ville");
    telephone= $("#telephone");
    ancienetudiant= $("#ancienetudiant");
    ip= $("#ip");

    allFields = $([]).add(prenom).add(nom).add(email).
          add(organisme).add(adresse).add(fonction).add(codepostal).
          add(ville).add(telephone).add(ancienetudiant).add(ip);

    $("#fiche").dialog({
        bgiframe: true,
        autoOpen: true,
        height: 500,
        width:650,
        position: 'top',
        modal: true,
        buttons: {
            'Valider': function() {
                var bValid = true;

                allFields.removeClass('ui-state-error');
                bValid = bValid && checkLength($("#prenom"),"Prénom",2,128);
                bValid = bValid && checkLength($("#nom"),"Prénom",2,128);                
                bValid = bValid && checkLength($("#email"),"Email",2,128);
                bValid = bValid && checkRegexp(email,/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i,"L'email doit être au format : nom.prenom@organisme.fr");
                bValid = bValid && checkLength($("#organisme"),"Organisme/Entreprise",2,128);                
                bValid = bValid && checkLength($("#fonction"),"Fonction",2,128);

                if (bValid) {

                    $.ajax({
                        type: 'post',
                        async:false,
                        url: 'colloque2010_ajax.php',
                        data:'mode=ajout&prenom='+$('#prenom').val()+
                                '&nom='+$('#nom').val()+
                                '&email='+$('#email').val()+
                                '&organisme='+$('#organisme').val()+
                                '&adresse='+$('#adresse').val()+
                                '&fonction='+$('#fonction').val()+
                                '&codepostal='+$('#codepostal').val()+
                                '&ville='+$('#ville').val()+
                                '&telephone='+$('#telephone').val()+
                                '&ancienetudiant='+$('#ancienetudiant').val()+
                                '&ip='+$('#ip').val(),
                        dataType:'txt',
                        success: valider_inscription_success,
                        error: function() {alert('Erreur serveur valider_inscription sur bouton "Valider"');}
                    });
                    $('.messageAlerte').html('');
                    $(this).dialog('close');
                }
            },
            'Annuler': function()  {
                allFields.val('').removeClass('ui-state-error');
                $('.messageAlerte').html('');
                $(this).dialog('close');
            }
        },
        close: function()   {  //permet de définir un comportement automatique à la fermeture de la fenêtre
            allFields.val('').removeClass('ui-state-error');
            $('.messageAlerte').html('');
            }
    });  // fin de  $("#fiche").dialog{(

}



function affiche_inscription() {
    $('#fiche').dialog('destroy'); // désactive toutes les fonctionnalités de boite de dialogue de la div edition
    $("#fiche").remove(); // supprime toutes les node div id=edition existantes dans le DOM
    $($("#fiche_inscription")).after("<div id='fiche' title='Inscription au colloque'></div>");  // recréé la balise après le div id=template

    $.ajax({
            type: 'post',
            async:false,
            url: 'colloque2010_ajax.php',
            data:'mode=inscription',
            dataType:'txt',
            success:  affiche_inscription_success, // fin de success: function(){
            error: function() {alert('Erreur serveur affiche_inscription');}
    });
}

function majMessageAlerte(t) {
    $(".messageAlerte").css("visibility", "visible");
    $(".messageAlerte").text(t).effect("highlight",{},5000);
}

// vérifie que l'objet o (par l'utilisation de o.val()) ait une longueur de
// caractère entre min et max
// appel: bValid = bValid && checkLength(email,"email",6,80);
function checkLength(champ,nomDuChamp,min,max) {
    if ( champ.val().length > max || champ.val().length < min ) {
        champ.addClass('ui-state-error');
        majMessageAlerte("Le nombre de caractère du champ \"" + nomDuChamp +
                "\" doit être compris entre "+min+" et "+max+".");
        return false;
    } else {
        return true;
    }
}

// vérifie que l'objet o (par l'utilisation de o.val()) soit valide par rapport
// à l'expression régulière regexp, sinon, affiche le message d'erreur messageerreur
// pour un mail formaté correctement, appel: bValid = bValid && checkRegexp(email,/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i,"exemple de mail: nom.prenom@domaine.ml");
function checkRegexp(o,regexp,messageerreur) {

    if (!( regexp.test( o.val() ) ) ) {
        o.addClass('ui-state-error');
        majMessageAlerte(messageerreur);
        return false;
    }
    else {
        return true;
    }

}
