var $P_Genders,
$BD_Day,
$BD_Month,
$BD_Year,
$P_Statuts,
$CP,
$CA,
$alertCA,
cp_Bruxelles;
$(function () {
// Récupération du token de chnagement de mot de passe (prioritaire sur tout autre traitement)
if (eni.url.params().tk) {
params = eni.url.params();
params['cl'] = eni.lng.code();
window.history.pushState('', document.title, document.location.pathname);
eni.axc({Async:true,Type:'script', Url:'./actiris/ajax/reinitPwd.aspx', Data:params, Msg:job_in_progress});
}else{
init_Page();
}
});
// initialition de la page
init_Page = function(){
// test si utilisateur connecté
if(!ac){
document.location='//'+document.location.hostname+$('.myTraining').attr("href").replace("./", "/");}
else{
$P_Genders = $('#ctGender');
$BD_Day = $('#ctBD_Day');
$BD_Month = $('#ctBD_Month');
$BD_Year = $('#ctBD_Year');
$P_Statuts = $('#ctStatut');
$CP = $('#ctCP');
$CA = $('#ctCA');
$alertCA = $('#alertCA');
// Genre
$.getJSON('./rsc/'+eni.lng.code()+'/genders.js', function(data) {
$.each(data, function(idx, value) {
$P_Genders.append('');
});
});
// Codes postaux
$.getJSON('/rsc/'+eni.lng.code()+'/cp-bruxelles.js', function(data) {
cp_Bruxelles = data;
});
// Gestion des années
year = (new Date()).getFullYear() - 18
for (var i = 1; i <= 100; i++) {
$BD_Year.append('');
year-=1;
}
$BD_Year.change(function(){populate_Day()})
// Gestion des mois (avec libellé localisé)
for (var i = 0; i < 12; i++) {
var m = new Date(1999, i).toLocaleString(eni.lng.code(), {month: "long"});
$BD_Month.append('');
}
$BD_Month.change(function(){populate_Day()})
// initailisation de toutes les combos
$BD_Year.change()
// Statuts
$P_Statuts.on('input', function(e){console.log($P_Statuts.val());$P_Statuts[0].dataset.value = $P_Statuts.val();})
$.getJSON('./rsc/'+eni.lng.code()+'/statuts.js', function(data) {
$.each(data, function(idx, value) {
$P_Statuts.append('');
});
$P_Statuts.change();
});
// Récupération des données du compte
eni.axc({Async:true,Type:'script', Url:'./actiris/ajax/infosAccount.aspx', Data:{'cl':eni.lng.code()}, fn:function(){
console.log(iac);
if(iac){
$P_Genders.val(iac.Gender);
$('#ctLastName').val(iac.LastName);
$('#ctFirstName').val(iac.FirstName);
$('#ctEmail').val(iac.Email);
_BD = new Date(iac.Birthday)
$BD_Day.val(_BD.getDate());
$BD_Month.val(_BD.getMonth()+1);
$BD_Year.val(_BD.getFullYear());
$CP.val(iac.CP);
$P_Statuts.val(iac.Statut);
$P_Statuts[0].dataset.value = iac.Statut;
$alertCA.html(iac.CA_Alert);
if (iac.CA_Alert.length>0){$CA.addClass('Error');}
else{$CA.val(iac.CA);}
}
$('#ACCOUNT > .container').addClass("show");
}});
$P_Statuts.change();
//------------------------------------------------------------------------
// Gestion du formulaire
//------------------------------------------------------------------------
$formCDATAS_inputs = $('.formCDATAS > input');
if (is_mob_mode()){
$formCDATAS_inputs.each(function(){
$(this).attr('placeholder',$('[for='+$(this).attr('id')+']').text())
});
}
$('.formCDATAS > [required]').each(function(){
$label = $('[for='+$(this).attr('id')+']');
if ($label.text().length > 0){
if (is_mob_mode()){
$(this).attr('placeholder', $label.text() + ' *');
}else{
$label.html('* '+$label.html());
}
}
});
$formCDATAS_inputs.focus(function(){$(this).removeClass('Error');});
$('#Send').click(function(){
var $form,
_form={},
_title='',
_errors='',
_lst_feilds_incomplete='',
_lst_feilds_error='';
// Récupération du formulaire prêt à être envoyé
$form = $(this).closest('form');
_title = $form.data('error');
// Suppression de la class Error
$form.find('input').not('[hidden]').removeClass('Error')
.each(function(){
$field=$(this);
if ($field.attr('required') == 'required'){
if ($field.val().length == 0) {
if ($field.hasClass('flexdatalist')){$('#'+$field.attr('id')+'-flexdatalist').addClass('Error');}
else{$field.addClass('Error');}
var label = $('[for='+$field.attr('id')+']').text().replace('* ', '');
_lst_feilds_incomplete += (label.length > 0?'
' + $('[for='+$field.attr('id')+']').text().replace('* ', '') + '':' ');
}
}
})
//if (_lst_feilds_error.length > 0) {_errors+=((_title + _errors).length>0?'
':'') + _lst_feilds_error}
if (_lst_feilds_incomplete.length > 0) {_errors+=((_title + _errors).length>0?'
':'') + (_title.length>0?'- ':'') + $form.data('incomplete') + _lst_feilds_incomplete}
else {
// les tests de l'email et du mot de pase se font après validation des autres champs
if (!email_pattern.test($('#ctEmail').val())){
_errors=$('#ctEmail').data('error');
$('#ctEmail').addClass('Error');
}else if ($("#ctPWD").val().length > 0){
if ($("#ctPWD").val().length < 6){
_errors=$("#ctPWD").data('error');
$("#ctPWD").addClass('Error');
}else if ($("#ctPWD").val() != $("#ctCPWD").val()){
_errors=$("#ctCPWD").data('error');
$("#ctCPWD").addClass('Error');
}
}
// test CP
if (_errors.length === 0){
if (!_isContains(cp_Bruxelles, $CP.val())){
// commune invalide
_errors=$CP.data('error').replace('%TARGET%', ($P_Statuts.val()!=="7"?$CP.data('target1'):$CP.data('target2')));
$CP.addClass('Error');
}
}
}
if (_errors.length == 0) {
// génération date de naissance
$('#ctBirthday').val(new Date(Date.UTC($('#ctBD_Year').val(),$('#ctBD_Month').val()-1, $('#ctBD_Day').val())).toISOString().split("T")[0])
// Si tous les champs sont valides alors on envoie le formulaire
$($form.find('input, select').serializeArray()).each(function(){
_form[this.name] = this.value;
});
// On récupère également les données du formulaire précédent
$($('.formVC').find('input').serializeArray()).each(function(){
_form[this.name] = this.value;
});
// code langue
_form['cl'] = eni.lng.code();
eni.axc({Async:true,Type:'script', Url:'./actiris/ajax/updateAccount.aspx', Data:_form, Msg:job_in_progress});
}else{
// Sinon alerte
eni.msg({ Title: '', Content: _title + _errors});
}
return false;
});
}
}
// Mise à jour des données
update_Page = function(_ac){
console.log(_ac);
iac=_ac;
if(iac){
$P_Genders.val(iac.Gender);
$('#ctLastName').val(iac.LastName);
$('#ctFirstName').val(iac.FirstName);
$('#ctEmail').val(iac.Email);
_BD = new Date(iac.Birthday)
$BD_Day.val(_BD.getDate());
$BD_Month.val(_BD.getMonth()+1);
$BD_Year.val(_BD.getFullYear());
$P_Statuts.val(iac.Statut);
$CP.val(iac.CP);
$CA.val(iac.CA);
$alertCA.html(iac.CA_Alert);
if (iac.CA_Alert.length>0){$CA.addClass('Error');}
}
}
// population des jours en fonction du mois et de l'année sélectionnés
populate_Day = function(){
d=new Date($BD_Year.val(), $BD_Month.val(), 1, -1).getDate();
ds=($BD_Day.val()?$BD_Day.val():1);
$BD_Day.html("");
for (var i = 1; i <= d; i++) {
$BD_Day.append('');
}
// on sélectionne la date si possible avec la dernière date sélectionnée sinon 1er jour du mois
$BD_Day.val((ds > d)?1:ds)
}
params = function(_url) {
var parts = _url.replace("?", "").split("&");
var query_string = {};
for (var i = 0; i < parts.length; i++) {
var pair = parts[i].split("=");
if (typeof query_string[pair[0]] === "undefined") {
query_string[pair[0]] = decodeURIComponent(pair[1]);
} else if (typeof query_string[pair[0]] === "string") {
var arr = [query_string[pair[0]], decodeURIComponent(pair[1])];
query_string[pair[0]] = arr;
} else {
query_string[pair[0]].push(decodeURIComponent(pair[1]));
}
}
return query_string;
}
function _isContains(json, value) {
let contains;
Object.keys(json).some(key => {
contains = typeof json[key] === 'object' ? _isContains(json[key], value) : json[key] == value;
return contains;
});
return contains;
}