// JavaScript Document
var chckd = new Object(),intervenantO = new Object(), GLOBALES = new Object();


//var mailReg = /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/;
var mailReg = "[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?";
reEmail = new RegExp(mailReg);

GLOBALES.email = new Object();
GLOBALES.message = new Object();



/*
GLOBALES.nom.formatError = '"Nom", "Nom1-Nom2", "Nom1--Nom2" ou "O\'nom"';
GLOBALES.nom.urlCheck = "ajax/check_nom_intervenant.php";
GLOBALES.nom.uniqueHandler = mNameSuccessHandler;
GLOBALES.nom.required = true;

GLOBALES.motdepasse = new Object();
GLOBALES.motdepasse.ajax = new Object();
GLOBALES.motdepasse.ajax.success = generateHandler;
GLOBALES.motdepasse.ajax.generateHandlerMessage = 'Mot de passe généré.';
//GLOBALES.motdepasse.me = $('input[name="membre_motdepasse"]');
GLOBALES.motdepasse.ajax.data = {node_name:"membre_motdepasse"};
GLOBALES.motdepasse.basic = true;
GLOBALES.motdepasse.required = true;

GLOBALES.prenom = new Object();
GLOBALES.prenom.formatError = 'Expl : "Jean" ou "jean-françois" ou "O\'jean"';
GLOBALES.prenom.eReg = GLOBALES.nom.eReg = rePatronyme;
GLOBALES.prenom.required = true;

GLOBALES.telephone = new Object();
GLOBALES.telephone.formatError = GLOBALES.fax.formatError = GLOBALES.mobile.formatError ='N° non conforme';
GLOBALES.telephone.eReg = GLOBALES.fax.eReg = GLOBALES.mobile.eReg = reTel;
GLOBALES.telephone.required = GLOBALES.fax.required = GLOBALES.mobile.required = false;

GLOBALES.identifiant = new Object();
GLOBALES.identifiant.eReg = GLOBALES.motdepasse.eReg =  reLogin;
GLOBALES.identifiant.urlCheck = "ajax/check_unique_login.php",//"ajax/generate_identifiants.php"
GLOBALES.identifiant.urlGenerate = GLOBALES.motdepasse.ajax.url = "ajax/generate_identifiants.php";
GLOBALES.identifiant.uniqueHandler = loginUniqueHandler;
GLOBALES.identifiant.generateHandler = generateHandler;
GLOBALES.identifiant.generateHandlerMessage = 'Identifiant Généré depuis le nom et la première lettre du prénom.';
GLOBALES.identifiant.formatError = 'Caractères alphanumériques et ._- uniquement';
GLOBALES.identifiant.required = true; */

GLOBALES.email.eReg = reEmail;
//GLOBALES.email.urlCheck = "ajax/check_unique_mail.php";
//GLOBALES.email.uniqueHandler = emailSuccessHandler;
GLOBALES.email.required = true;

GLOBALES.email.emptyNode = GLOBALES.message.emptyNode = "Requis";
/**/
function __console(msg,type)
{
    if (!window.console || !console.firebug){
        var names = ["log", "debug", "info", "warn", "error", "assert","dir", "dirxml", "group", "groupEnd", "time","timeEnd", "count", "trace", "profile", "profileEnd"];
        window.console = {};
        for (var i = 0; i < names.length; ++i)
        {
            window.console[names[i]] = function() {};
        }
    }
    type=(type==undefined)?'log':type;
    console[type](msg);
}
    /**/
function init()
{
        chckd.membre_email   = 0;
        
        chckd.membre_message = 0;
    
    // colorisation des champs de text au click
    $(':text').blur(function(){$(this).css('backgroundColor','#fff');}).focus(function(){
        $(this).css({'backgroundColor':'#F2F4D8',"borderColor":'#ccc'});
        clearNextNode($(this));
        if(chckd[this.name]== 2 || chckd[this.name]== 3) chckd[this.name] = 0;
    });

    /*$('input[name="membre_nom"]').blur(function()
    {
        matchName(this);
        if($(':checkbox[name="generate_identifiant_motdepasse"]')[0].checked && $('input[name="membre_prenom"]').val()!="" && this.value!=""){
            generateIdMotdepasse();
        }
    });*/
    $('input[name="membre_email"]').blur(function(){__console('test');});
	
	$('input[name="membre_message"]').blur(function(){basicMatch(this)});
	
	
	
	
    /* $('input[name="membre_identifiant"]').blur(function(){matchLogin(this)});*/

   /* $('input[name="membre_prenom"]').blur(function(){
        basicMatch(this);
        if($(':checkbox[name="generate_identifiant_motdepasse"]')[0].checked && $('input[name="membre_nom"]').val()!="" && this.value!=""){
            generateIdMotdepasse();
        }
    });*/
   /* $('input[name="membre_motdepasse"]').blur(function(){basicMatch(this)});
		$('input[name="membre_telephone"]').blur(function(){basicMatch(this)});
		$('input[name="membre_mobile"]').blur(function(){basicMatch(this)});
	*/
    
    /*$(':checkbox[name="generate_identifiant_motdepasse"]')[0].checked = ($('input[name="membre_identifiant"]').val()=="" && $('input[name="membre_motdepasse"]').val()=="")
    $(':checkbox[name="generate_identifiant_motdepasse"]').change(function(){
       generateIdMotdepasse();
    })*/
}

function checkAll()
{
//__console('ckeckAll','group');
   var retour = true;
   for (i in chckd)
   {
//__console(i+" :: "+ chckd[i]);
        if(chckd[i] != 3 ){
            if(i == 'membre_nom' && chckd[i] == 2) continue;// exception pour le nom à 2 si noms approchant mais un nom approchant peut être accepté'
            var variable = i.split('_');
            if(GLOBALES[variable[1]].required)
            {
//__console(variable[1]+" :: "+ GLOBALES[variable[1]].required);
                var node = $('input[name="'+i+'"]');
                node.css("borderColor","#f00");
            }
            if(retour) retour = false;
        }
   }
//__console('','groupEnd');
   return retour;
}

function clearNextNode(node,tag){
    //__console.debug(node);
    var nxt = $(node).next();
    if(tag == undefined)tag = 'span';
    if(nxt.is(tag))nxt.remove();
}
function displayAndClearNext(displayType,node,message){
    clearNextNode(node,'span');
    if(displayType != 'blank'){
        var tab = new Array();
        tab.push('<span><img src="', DISPLAY_TYPES[displayType],'" />');
        if(message != undefined) tab.push('&nbsp;', message,'</span>');
        $(node).after(tab.join(''));
    }
}

function raccourciCivilite(civilite)
{
    if(civilite == 'monsieur') civilite =   'Mr&nbsp;&nbsp;';
    if(civilite == 'madame') civilite =     'Mme';
    if(civilite == 'mlle') civilite =       'Mlle&nbsp;';
    return civilite;
}
/*
function mNameSuccessHandler(event)
{
//__console('mNameSuccessHandler','group');
//__console(event);
    var node = $('input[name="'+event.node_name+'"]');
    intervenants = event.intervenants;

    if(intervenants.length == 0) {
        chckd[node[0].name] = 3;
        displayAndClearNext('tick',node);
        //checkAll();
    }
    if(intervenants.length >0 ) {
        chckd[node[0].name] = 2;
        var listOptions = ""
        for (i=0 ; i < intervenants.length ; i++)
        {
            intervenantO[intervenants[i].id] = intervenants[i];
            var tempOptions = new Array();
            
            if(intervenants[i].civilite != undefined) tempOptions.push((raccourciCivilite(intervenants[i].civilite)));
            tempOptions.push('<strong>'+(intervenants[i].nom).toUpperCase()+'</strong>');
            tempOptions.push(intervenants[i].prenom);
            tempOptions.push('-'+intervenants[i].membre_societe);//@todo c'est en fait l'intitulé dela session et non la societe qui revient'

            listOptions += '<option value="'+intervenants[i].id+'">';
            listOptions += tempOptions.join(' ');
            listOptions += '</option>';

//            listOptions +='<option value = "'+intervenants[i].id+'">'+((intervenants[i].civilite != undefined)?raccourciCivilite(intervenants[i].civilite):'')+" <strong>"+(intervenants[i].nom).toUpperCase()+'</strong> '+ intervenants[i].prenom+' '+((intervenants[i].membre_societe != undefined)?intervenants[i].membre_societe:'')+'</option>';
            //__console.debug(intervenantO[intervenants[i].id]);
        }

        clearNextNode(node,'span');
        node.after('<span><select id="ambiguite_select">'+'<option>- '+intervenants.length+' inscrits avec un nom approchant -</option>'+listOptions+'</select></span>');
        $('#ambiguite_select').change(function (){
            var index =($(this).val());
            //__console(index,'log');
             $('#membre_civilite').val(intervenantO[index].civilite);
            $('input[name="membre_nom"]').val(intervenantO[index].nom);
            $('input[name="membre_prenom"]').val(intervenantO[index].preenom);
            $('input[name="membre_email"]').val(intervenantO[index].email);
            $('input[name="membre_telephone"]').val(intervenantO[index].telephone);
            $('input[name="membre_mobile"]').val(intervenantO[index].mobile);
            $('input[name="membre_fax"]').val(intervenantO[index].fax);
            $('input[name="membre_identifiant"]').val(intervenantO[index].identifiant);
            $('input[name="membre_motdepasse"]').val(intervenantO[index].mot_de_passe);
            chckd[node[0].name] = 3;
            for (i in chckd)
            {
                chckd[i] = 3;
            }
            var urlArray = window.location.toString().split('?');
//
            $.query.REMOVE('membre_edit_task')
            $.query.SET('membre_edit_task', "edit_"+TASK_TYPE);
            $.query.SET('membre_id',index);
//__console($.query,'log');
//
             window.location =    urlArray[0]+""+$.query.toString();
        })
    }
//__console('','groupEnd');
}
function emailSuccessHandler(event)
{
    __console('emailSuccessHandler','group');
//__console(event);
    var node = $('input[name="'+event.node_name+'"]');
    if(!event.trouve){
        chckd[event.node_name] = 3;
        displayAndClearNext('tick',node);
    }
    else{
        chckd[event.node_name] = 2;
        clearNextNode(node,'span');
        var msgToStrg = "";
        if(!event.membre_trouve.membre_civilite != undefined) msgToStrg += event.membre_trouve.membre_civilite+" ";
        if(!event.membre_trouve.membre_prenom != undefined) msgToStrg += event.membre_trouve.membre_prenom+" ";
        if(!event.membre_trouve.membre_nom != undefined) msgToStrg +=  " <strong>"+event.membre_trouve.membre_nom+ "</strong><br/>";
        if(!event.membre_trouve.membre_societe != undefined) msgToStrg +="de la société <strong>"+event.membre_trouve.membre_societe+"</strong>"
        msgToStrg += "&nbsp;&nbsp;&nbsp;<button onclick='return false;' id='accepte_email_inscription' name='accepte_email_inscription' value='"+event.membre_trouve+"'>Choisir cette personne </button>";
        
        node.after('<span class="check_email">eMail appratenant à : '+msgToStrg+'</span>');
        node.css('backgroundColor','#FFC0C0');
        intervenantO[0] = event.membre_trouve;
        $("#accepte_email_inscription").click(function()
        {
              $('input[name="membre_email"]').css('backgroundColor','#FFC0C0');
            membre_trouve =intervenantO[0];
//__console(intervenantO[0],'log');
            $('#membre_civilite').val(intervenantO[0].membre_civilite);
            $('input[name="membre_nom"]').val(intervenantO[0].membre_nom);
            $('input[name="membre_prenom"]').val(intervenantO[0].membre_prenom);
            $('input[name="membre_email"]').val(intervenantO[0].membre_email);
            $('input[name="membre_telephone"]').val(intervenantO[0].membre_telephone);
            $('input[name="membre_mobile"]').val(intervenantO[0].membre_mobile);
            $('input[name="membre_fax"]').val(intervenantO[0].membre_fax);
            $('input[name="membre_identifiant"]').val(intervenantO[0].membre_identifiant);
            $('input[name="membre_motdepasse"]').val(intervenantO[0].membre_motdepasse);
            chckd[node[0].name] = 3;
            var urlArray = window.location.toString().split('?');
//
            $.query.REMOVE('membre_edit_task')
            $.query.SET('membre_edit_task', "edit_"+TASK_TYPE);
            $.query.SET('membre_id',intervenantO[0].id)
//
             window.location =    urlArray[0]+""+$.query.toString();
            //return false;
        });
    }
__console('','groupEnd');
}
function generateHandler(msg)
{
//__console('generateHandler','group');
    var variable = msg.node_name.split('_');
    if(msg){
        chckd[msg.node_name] = 3;
        var node = $('input[name="'+msg.node_name+'"]');
        $(node).val(msg[variable[1]]);
        displayAndClearNext('info',node,GLOBALES[variable[1]]['generateHandlerMessage']);
    }
//__console('','groupEnd');
}

function loginUniqueHandler(msg)
{
//__console('loginUniqueHandler','group');
    var node = $('input[name="'+msg.node_name+'"]');
    if(msg.login){
//__console(chckd,'debug');
         chckd[msg.node_name] = 3;
        displayAndClearNext('tick',node);
    }else{
        chckd[msg.node_name] = 0;
        text =  'Ce login est déjà utilisé. En choisir un autre SVP !';
        displayAndClearNext('cross',node,text);
    }
//__console('','groupEnd');
}*/
/*
function matchName(node)
{
//__console('matchName','group');
    var variable = node.name.split('_');
    if(node.value.length > 0 && node.value == MEMBRE[variable[1]] || chckd[node.name] > 1) {
        chckd[node.name] = 3;
        return; // L'entrée n'a pas été changée - le nom ambigu n'est pas réglé ;
    }
    displayAndClearNext('loader',node);
    if(chckd[node.name]< 2){
        if (node.value.match(GLOBALES[variable[1]]['eReg'])){
            $.ajax({
                data : {
                            session_id : SESSION_ID,
                            nom_membre : node.value,
                            node_name  : node.name
                        },
                dataType:'json',
                url : GLOBALES[variable[1]]['urlCheck'],
                success : GLOBALES[variable[1]]['uniqueHandler'],
                error:ajaxError
                })
        } else {
            chckd[node.name] = 1;
            var  text ="",img = "cross";
            if(node.value==""){
//__console(GLOBALES);
                text = GLOBALES[variable[1]]['emptyNode'];
                img = 'exclamation';
            }
            else text = GLOBALES[variable[1]]['formatError'];
            displayAndClearNext(img,node,text);
        }
    }
    
//__console('','groupEnd');
}
*/
/*
function matchEmail(node)
{//__console('matchEmail','group');
    var variable = node.name.split('_');
    if(node.value.length > 0 && node.value == MEMBRE[variable[1]] || chckd[node.name] > 1) {
        chckd[node.name] = 3;
        return; // L'entrée n'a pas été changée - le nom ambigu n'est pas réglé ;
    }
    displayAndClearNext('loader',node);
    if(chckd[node.name]< 2 || chckd[node.name] == undefined){
        if (node.value.match(GLOBALES[variable[1]]['eReg'])){
            $.ajax({
                data : {
                    node_value: node['value'],
                    node_name  : node.name
                    },
                dataType:'json',
                url : GLOBALES[variable[1]]['urlCheck'],
                success : GLOBALES[variable[1]]['uniqueHandler'],
                error:ajaxError
            })
        }else {
            chckd[node.name] = 0;
            var  text ="",img = "cross";
            if(node.value == "" ){
                if(GLOBALES[variable[1]]['required']){
                    text = GLOBALES[variable[1]]['emptyNode'];
                    img = 'exclamation';
                }else{
                    chckd[node.name] = 3;
                    img = 'blank';
                }
            }else
                text = GLOBALES[variable[1]]['formatError'];
        }
        displayAndClearNext(img,node,text);
    }
//__console('','groupEnd');
}
*/
function basicMatch(node)
{
    __console('basicMatch','group');
    var variable = node.name.split('_');
    if(node.value.length > 0 && node.value == MEMBRE[variable[1]]) {
        chckd[node.name] = 3;
        return; // L'entrée n'a pas été changée
    }
    var text ="",img = "cross";
    if (node.value.match(GLOBALES[variable[1]]['eReg'])){
    __console(variable+' ereg ok');
        chckd[node.name] = 3;
        img = "tick";//displayAndClearNext('tick',node);
    }else{
        chckd[node.name] = 0;
        if(node.value==""){
            if(GLOBALES[variable[1]]['required']){
                chckd[node.name] = 0;
                /*
                if (GLOBALES[variable[1]].ajax != undefined){
                    displayAndClearNext('loader',node);
                    var a = GLOBALES[variable[1]].ajax;
                    a.dataType = 'json';
                    a.error= ajaxError;
                    $.ajax(a);
                    return;
                }
                */
                text = GLOBALES[variable[1]]['emptyNode'];
                img = 'exclamation';
            }else{
                chckd[node.name] = 3;
                img = 'blank';
            }
        }else
            text = GLOBALES[variable[1]]['formatError'];
    }
    displayAndClearNext(img,node,text);
    __console('','groupEnd');
}

/*
function matchLogin(node)
{
//__console('matchLogin','group');
    var variable = node.name.split('_');
    if(node.value.length > 0 && node.value == MEMBRE[variable[1]]) {
        chckd[node.name] = 3;
        return; // L'entrée n'a pas été changée
    }
    displayAndClearNext('loader',node);
    if (node.value.match(reLogin)) {
        // chercher dans la base si le nom n'existe pas déjà'
        $.ajax({
            url : GLOBALES[variable[1]]['urlCheck'],//"ajax/check_unique_login.php",
            success: GLOBALES[variable[1]]['uniqueHandler'],
            data : {
                loginatester :node.value,
                node_name : node.name
                },
            dataType:'json',
            error:ajaxError
        })
    } else {
        var  text ="";
        chckd[node.name] = 0;
        if(node.value==""){
            var p =  $('input[name="membre_prenom"]').val(),n =  $('input[name="membre_nom"]').val(),error = false;
            if(p == undefined || chckd['membre_prenom'] == 0 || chckd['membre_prenom'] == undefined) {
               displayAndClearNext('exclamation',$('input[name="membre_prenom"]'),GLOBALES[variable[1]]['emptyNode']);
               error = true;
            }
            if(n == undefined || chckd['membre_nom'] == 0 || chckd['membre_nom'] == undefined) {
               displayAndClearNext('exclamation',$('input[name="membre_nom"]'),GLOBALES[variable[1]]['emptyNode']);
               error = true;
            }
            if (error) {
                text = 'Besoin de nom et prénom pour générer un identifiant.';
                displayAndClearNext('error',node,text);
                return;
            }
            $.ajax({
                url : GLOBALES[variable[1]]['urlGenerate'],//"ajax/generate_identifiants.php",
                data : {node_name : node.name,nom : n,prenom :p},
                dataType:'json',
                success:GLOBALES[variable[1]]['generateHandler'],
                error:ajaxError
            })
        }
        else text = GLOBALES[variable[1]]['formatError'];//'Caractères alphanumériques et ._- uniquement';
        displayAndClearNext('cross',node,text);
    }
//__console(chckd,'debug');
//__console('','groupEnd');
}
*/
