
var inscription_url='ajax_requetes/inscription.php';
var identification_url='ajax_requetes/identification.php';
var passoublie_url='ajax_requetes/pass_oublie.php';


var ajax_erreur_msg="Une erreur est survenue, vous pouvez réessayer.";
ajax_erreur_msg+=" Si le problème persiste contactez l'administrateur du site, merci de votre compréhension.";


var user_infos=new Array();


// Inscription de l'utilisateur
function user_action(action_name) {
//if (window.console) console.log('user_action : action_name='+action_name);

var str_jquery="#form_user ";

// Enlève les avertissements précédents éventuels
user_clear_warnings(str_jquery);

if (action_name=='inscription')
	 str_jquery+=" td.new_member ";
else if (action_name=='login') 
	 str_jquery+=" td.member_exists ";
else if (action_name=='pass_oublie') 
	 str_jquery+=" td.pass_oublie ";
else
	 return;

user_infos=new Array();
jQuery(str_jquery+" .user_data").each(function() { 
	user_infos[this.name]=this.value;
	//console.log('name='+this.name+' valeur='+this.value);	
});

var saisie_valide=true;
for(var name in user_infos) {
				var value=user_infos[name];
  			var valide=valide_user_saisie(str_jquery,name,value,action_name);
				//console.log("name="+name+" value="+value+" valide="+valide);
				if (!valide) saisie_valide=false;
}

//console.log('saisie_valide='+saisie_valide);	
if (!saisie_valide) {
	 jQuery(str_jquery+" .user_warning_haut").html("Vérifiez votre saisie");
	 return false;
}

// Post des donénes et appels des fonctions de callback (userlogin_Success/userlogin_Failure , userinscription_Success/userinscription_Failure)
validate_user_identification(action_name,user_infos);

}

function validate_user_identification(action_name,user_infos) {
//if (window.console) console.log('validate_user_identification : action_name='+action_name);
// Chaine de données à poster
var str_data="";
var url="";
var f_succes;
var f_failure;

var i=0;
for (key in user_infos) {
		//console.log("key="+key+" user_infos[key]="+user_infos[key]);
		str_data+=(i>0) ? "&" : "";
		str_data+=key+"="+utf8_encode(user_infos[key]);
		i++;
}

if (action_name=="inscription") {

url=inscription_url;
f_succes=userinscription_Success;
f_failure=userinscription_Failure;

} else if (action_name=="login") {

url=identification_url;
f_succes=userlogin_Success;
f_failure=userlogin_Failure;

} else if (action_name=="pass_oublie") {

url=passoublie_url;
f_succes=passoublie_Success;
f_failure=passoublie_Failure;

} else {
	return;
}

//console.log('str_data='+str_data);

jQuery.ajax({
    url: url,
    type: 'POST',
    dataType: 'xml',
    timeout: 1000,
		data: str_data,    
		success:f_succes,
		error:f_failure
});

}

// Enlève les avertissements précédents éventuels
function user_clear_warnings(str_jquery) {
//if (window.console) console.log('user_clear_warnings : str_jquery='+str_jquery);

jQuery(str_jquery+" td.member_exists .user_warning_haut").html("&nbsp;");
jQuery(str_jquery+" td.new_member .user_warning_haut").html("&nbsp;");
jQuery(str_jquery+" td.pass_oublie .user_warning_haut").html("&nbsp;");

jQuery(str_jquery+" td.member_exists .user_warning").html("&nbsp;");
jQuery(str_jquery+" td.new_member .user_warning").html("&nbsp;");
jQuery(str_jquery+" td.pass_oublie .user_warning").html("&nbsp;");


var actions=Array();
actions[0]='inscription';
actions[1]='login';
actions[2]='pass_oublie';

for (var i=0;i<=1;i++) {

	var action_name=actions[i];
	var str="";
	if (action_name=='inscription')
	   str+=" td.new_member ";
  else if (action_name=='login') 
  	 str+=" td.member_exists ";
  else if (action_name=='pass_oublie') 
  	 str+=" td.pass_oublie ";
  else
	 return;
	
  jQuery(str_jquery+str+" .user_data").each(function() { 
  erreur_saisie(str_jquery,this.name,action_name,'hide');
  });
}

}
		

/*
Retourne "vrai" si "value" est correcte pour "name";
"faux" sinon (ex: name='user_nom' value='dupont' --> "vrai")
*/
function valide_user_saisie(str_jquery,name,value,action_name) {
//if (window.console) console.log('saisie_inscription');
var valide=true;
if (name=='user_societe') {
	 if (value!='') {
	 		valide=true;
	 } else {
  	 var nom=user_infos['user_nom'];
  	 var prenom=user_infos['user_prenom'];
  	 if (nom=='' && prenom=='') valide=false;
	 }	 
} else if (name=='user_nom' || name=='user_prenom') {
	  var societe=user_infos['user_societe'];
		if (value=='' && societe=='')	valide=false;
} else if (name=='user_mail') {
	 valide=is_valid_email(value);
} else if (name=='user_pass') {
	 if (value=='') valide=false;
} else if (name=='user_phone') {
	 if (!checkInternationalPhone(value)) valide=false;
} else if (name=='user_adresse') {
	 if (value=='') valide=false;
} else if (name=='user_cpostal') {
   if (!IsNumeric(value) || new String(value).length !=5) valide=false;
} else if (name=='user_ville') {
	 if (value=='') valide=false;
}
if (valide) return true;

erreur_saisie(str_jquery,name,action_name,'show');
return false;
}

/*
Affiche un message d'erreur pour indiquer que la saisie n'est pas bonne
*/
function erreur_saisie(str_jquery,name,action_name,prop) {
//if (window.console) console.log('erreur_saisie : str_jquery'+str_jquery+' name='+name+' action_name='+action_name+' prop='+prop);
// On peut changer ici l'implémentation en fonction de la valeur de "prop" ("show" ou "hide")

if (prop=="show") {
	 jQuery(str_jquery+" td."+name+" .user_data").addClass("input_warning");	 
	 jQuery(str_jquery+" .user_warning ").html(error_saisie_msg(action_name));
} else if (prop=="hide") {
	 //jQuery(str_jquery+" td."+name+" input").removeClass("user_warning");
	 jQuery(str_jquery+" td."+name+" .user_data").removeClass("input_warning");
	 jQuery(str_jquery+" .user_warning ").html("&nbsp;");
}
}

function error_saisie_msg(action_name) {
//if (window.console) console.log("error_saisie_msg : name="+action_name);
var msg="";

if (action_name=="inscription") {
	 msg+="- Particuliers : Nom, prénom, adresse et ville doivent être renseignés<br />";
	 msg+="- Professionnels : Société, adresse et ville doivent être renseignés<br />";
	 msg+="- L'adresse email doit être renseignée et valide<br />";
	 msg+="- Le numéro de téléphone doit être renseigné et valide<br />";
	 msg+="- Le code postal doit contenir 5 chiffres exactement";
	 return msg;
}
if (action_name=="login") {
	 msg+="- L'adresse email doit être renseignée et valide<br />";
	 msg+="- Le mot de passe doit être renseigné";
	 return msg;
}
if (action_name=="pass_oublie") {
	 msg+="- L'adresse email doit être renseignée et valide";
	 return msg;
}

return "&nbsp;";
}

// Fonctions de 'callback' des requetes "ajax"
// Identification de l'utilisateur (succès)
function userlogin_Success(xml) {
//if (window.console) console.log('userlogin_Success');

var error=jQuery(">identification>error", xml).eq(0);
var erreur_code=jQuery("code", error).text();
var erreur_msg=jQuery("msg", error).text();
//console.log("erreur_code="+erreur_code+" erreur_msg="+erreur_msg);

if (erreur_code==1) {
	jQuery("#form_user td.member_exists td.error_msg div.user_warning").text(erreur_msg);
	return;
}

jQuery("#users").hide();
// On récupère les infos sur le user
var user_id_local="";
var user_nom_local="";	
jQuery(">identification>user", xml).each(function(){
	user_id_local = jQuery(this).attr('id');
	user_nom_local = jQuery("nom", this).text();
	//console.log("user_id_local="+user_id_local+" user_nom_local="+user_nom_local);
});
	
// On met a jour l'affichage et la variable globale "user_id"
user_id=user_id_local;
// On met a jour le questionnaire et on l'affiche
showQuestionnaireEnd(user_nom_local);
}

// Identification de l'utilisateur (échec)
function userlogin_Failure() {
//if (window.console) console.log('userlogin_Failure');
jQuery("#form_user td.member_exists td.error_msg div.user_warning").text(ajax_erreur_msg);
}

// Inscription de l'utilisateur (succès)
function userinscription_Success(xml) {
//if (window.console) console.log('userinscription_Success');

var error=jQuery(">inscription>error", xml).eq(0);
var erreur_code=jQuery("code", error).text();
var erreur_msg=jQuery("msg", error).text();

if (erreur_code==1) {
	jQuery("#form_user td.new_member td.error_msg div.user_warning").text(erreur_msg);
	return;
} 

jQuery("#users").hide();
// On récupère les infos sur le user
var user_id_local="";
var user_nom_local="";	
var user_societe_local="";	
var user_mail="";

jQuery(">inscription>user", xml).each(function(){
		user_id_local = jQuery(this).attr('id');
		user_nom_local = jQuery("nom", this).text();
		user_societe_local = jQuery("societe", this).text();
		user_mail = jQuery("email", this).text();
		//console.log("user_id_local="+user_id_local+" user_nom_local="+user_nom_local+" user_nom_local="+user_mail);
});
// On met a jour l'affichage et la variable globale "user_id"
user_id=user_id_local;
// On met a jour le questionnaire et on l'affiche

var update_reponse='<center><span class="warningSmall">Votre inscription a été réalisée avec succès,<br />votre mot de passe vient de vous être';
update_reponse+=' envoyé par email à l\'adresse : <b>'+user_mail+'</b></span></center>';
jQuery('div#questions .question:eq(0) div.update_reponse').html(update_reponse);

user_nom_local=(user_nom_local!="") ? user_nom_local : user_societe_local;
showQuestionnaireEnd(user_nom_local);
}

// Inscription de l'utilisateur (échec)
function userinscription_Failure() {
//if (window.console) console.log('userinscription_Failure');
jQuery("#form_user td.new_member td.error_msg div.user_warning").text(ajax_erreur_msg);
}

// Envoi du mot de passe par email  (succès)
function passoublie_Success(xml) {
//if (window.console) console.log('passoublie_Success');

var error=jQuery(">passoublie>error", xml).eq(0);
var erreur_code=jQuery("code", error).text();
var erreur_msg=jQuery("msg", error).text();

if (erreur_code==1) {
	jQuery("#form_user td.pass_oublie td.error_msg div.user_warning").text(erreur_msg);
	return;
} 

// On récupère les infos sur le user
var user_mail="";
jQuery(">passoublie>email", xml).each(function(){
		user_mail = jQuery(this).text();
		//console.log("user_mail="+user_mail);
});
var msg="Votre mot de passe vient de vous être envoyé par email à l'adresse : <b>"+user_mail+"</b>"
jQuery("#form_user td.pass_oublie td.error_msg div.user_warning").html(msg);

}

// Envoi du mot de passe par email (échec)
function passoublie_Failure() {
//if (window.console) console.log('passoublie_Failure');
jQuery("#form_user td.pass_oublie td.error_msg div.user_warning").text(ajax_erreur_msg);
}

function showQuestionnaireEnd(user) {
	jQuery("#form_login_gauche").hide();	
	jQuery("#menu_user").show();
	jQuery("#menu_user div.connected").text("Connecté(e) "+user);
	
	// On valide le questionnaire
	//query_End();	
	questionnaire.setUserId(user_id);
	questionnaire.Validate();
}

