var INPI=0
var MAX_CAR=400;
var $sect_activite
$(function(){
if ($('#dynActivites').length>0) {
initDynActivites()
}else {
if ($('.variable[name=code_activite_inpi],.variable[name=cai_autre] ').length == 0)
INPI = 0
else if ($('.variable[name=cai_autre] ').length == 0)
INPI = 1
else
INPI = 2
if (INPI >= 1) {
var $list = $('#ML')
if ($list.length > 0) {
$('.inputs .options_form[data-cond=type_activite]').each(function () {
var $this = $(this)
var curr_id = $this.attr('id')
html = $list.html().replace(/id="ML/g, 'id="' + curr_id)
$this.html(html)
var $section = $this.closest('.section_contrat')
if (ifset($section.attr('data-type-section')) != "decouverte") {
html = $('#MLout').html().replace(/id="ML/g, 'id="' + curr_id)
$section.find('.section_outputs [id=' + curr_id.replace('r0', '') + '_out]').html(html)
} else {
$section.find('.section_outputs [id=' + curr_id.replace('r0', '') + '_out]').html('')
}
}).addClass('inpi_activites')
$('#importationML').remove()
}
var $list = $('#liste_activites_GU')
if ($list.length > 0) {
var $target = $('.inputs .options_form[data-cond=liste_activites_GU]').parent().html($list.html())
$target.children('[data-id="INPI_ACT"]').removeClass('hidden')
$('#liste_activites_GU ').remove()
}
}
if (INPI > 0)
MAX_CAR = 1400
var $targets
if (INPI == 2)
$targets = $('[name$="obj_autre"]')
else
$targets = $('[name$="objet_social"]')
$targets.bind('keyup blur', function () {
var $this = $(this)
var val = $this.val().trim()
$this.nextAll('.user_obj_soc-error').remove()
if (val.length > MAX_CAR) {
$this.val(val.substr(0, MAX_CAR))
if (INPI > 0)
$this.addClass('error').after('')
else
$this.addClass('error').after('')
if (val.length > MAX_CAR + 2 && INPI == 0) {
var $EXT = $('textarea[name$="objet_social_ext"]').eq(0)
$EXT.val(val.substr(MAX_CAR)).trigger('blur')
active_question(getQuestions('ext_obj', null, false))
}
} else {
$this.removeClass('error').after('')
}
})
$('.variable[name$="objet_social"]').change(function () {
var $sect = $(this).closest('[data-multiple-name="activites"] ')
var clo_id = getCloId($sect)
active_question(getQuestions(clo_id + 'activite', 'autre', null, null, $sect))
})
if (INPI > 0) {
if (INPI == 1) {
getQuestions('data-cond$="activite"').click(function () {
var $this = $(this)
setTimeout(function () {
get_INPI_code($this)
}, 200)
})
}
$sect_activite.find('.Nquestion[data-libelle]').click(function () {
var $this = $(this)
setTimeout(function () {
get_INPI_code($this)
}, 200)
})
}
if (INPI > 1) {
getQuestions('data-cond*="chkact"').add(getQuestions('data-cond$="type_activite"')).add(getQuestions('data-cond$="categorie_activ"')).click(function (e) {
var $this = $(e.target)
setTimeout(function () {
calcART($this)
}, 200)
})
$sect_activite.find('.inputs input[name*="autre"]').change(calcObj)
$sect_activite.find(' .remove_multiple').click(function () {
setTimeout(calcObj, 500)
})
getAutoActivite()
setTimeout(calcObj, 500)
}
}
})
var get_INPI_code = function($this){
var clo_id= getCloId( $this )
var libelle
if ($this.is('[data-libelle]')){
libelle = $this.attr('data-libelle')
$('.inputs input[name="'+clo_id+'cai_autre"]').val(libelle).removeAttr('empty').trigger('blur')
} else
libelle= $('.inputs input[name="'+clo_id+'code_activite_inpi"]').eq(0).val()
$.ajax({
url: PHP_PATH+'ajax_dispatch_free.php',
type: 'POST',
data: {
page:'api.php',
action : 'getINPIcode',
libelle:libelle,
ajax:1,
},
dataType: "json",
success: function(data){
if (isset(data.success) && data.success==true && isset(data.forme) && data.forme!='') {
if (data.forme=='GESTION_DE_BIENS' || data.forme =="AGENT_COMMERCIAL" )
data.forme='COMMERCIALE'
else if (data.forme=='ARTISANALE')
data.forme='art_NR'
active_question(getQuestions('data-cond="'+clo_id+'categorie_activ"',data.forme,null,null,$this.closest('.section_contrat ')).eq(0))
if (INPI==2)
calcART($this)
}
}
})
}
var searched=''
var getAutoActivite = function(){
// use jquery autocomplete to get the activity
// and put it in the input field [name=obj_autre"]
$('.inputs input[name*="obj_autre"]').focus(function() {
var $this = $(this)
if (typeof $this.autocomplete('instance') !="undefined" && $this.autocomplete('instance').element[0]!=$this[0])
$this.autocomplete('instance').element[0]=$this[0]
$this.autocomplete({
minlength: 2,
delay: 50,
classes: {
"ui-autocomplete": "auto_activite"
},
position: { my : "left top", at: "left bottom" ,'collision': 'flip' },
source: function (request, response) {
searched = request.term.noAccent().trim()
var matcher = new RegExp($.ui.autocomplete.escapeRegex(searched), "i");
var nb = 0, max_nb = 15
var output = $.grep(my_activites, function (value) {
value = value.label.noAccent();
if (matcher.test(value))
return (nb++ < max_nb);
})
if (output.length == 0) {
nb = 0
searched.split(' ').forEach(function (word) {
if (word.length > 2 && word.indexOf('service', 'vente', 'achat', 'par') == -1) {
var matcher = new RegExp($.ui.autocomplete.escapeRegex(word), "i");
// add to output
output = output.concat($.grep(my_activites, function (value) {
value = value.label.noAccent();
if (matcher.test(value))
return (nb++ < max_nb);
}))
}
})
}
response(
output
);
},
select: function (event, ui) {
var $sect = $(this).closest('.section_contrat')
$(this).val(ui.item.value);
var clo_id = getCloId($this)
var fullcode = ui.item.code_inpi
active_question(getQuestions('data-cond="' + clo_id + 'help_inpi"', 1, false, null, $sect).eq(0))
setInpiCategory(fullcode, clo_id, $sect)
/* var code = '', i = 1, $question
while (fullcode.length >= i * 3 - 1) {
code = fullcode.substr(0, i * 3 - 1)
$question = getQuestions('data-cond="' + clo_id + 'liste_activites_GU' + i + '"', code, null, null, $sect)
active_question($question)
i++
}*/
// get_INPI_code($question)
return false;
},
})
.autocomplete("instance")._renderItem = function (ul, item) {
// faire un regex pour mettre en gras les mots recherchés en dehors des balise html
var re, label = item.label
var sh = searched.replace(/\(/g, '\\(').replace(/\)/g, '\\)')
if (item.label.indexOf('>') != -1) {
re = new RegExp('(\<.*?\>.*?)(' + sh + ')(.*?\<\/span.*?)', "gi");
label = label.replace(re, "$1$2$3");
re = new RegExp('(.*?\<\/span.*\>.*?)(' + sh + ')', "gi");
label = label.replace(re, "$1$2");
} else {
re = new RegExp(sh, "gi");
label = label.replace(re, "$&");
}
return $("
")
.append("
" + label + "
")
.appendTo(ul);
};
if ($this.val().trim().length>3 && denomTimer == null)
$this.autocomplete( "search", $this.val().trim() );
})
}
var setInpiCategory = function(fullcode,clo_id,$sect){
var code = '', i = 1, $question
while (fullcode.length >= i * 3 - 1) {
code = fullcode.substr(0, i * 3 - 1)
$question = getQuestions('data-cond="' + clo_id + 'liste_activites_GU' + i + '"', code, null, null, $sect)
active_question($question)
i++
}
}
var panierItems = [];
var panierIndex = 0;
var editingIndex = -1;
initDynActivites = function() {
initialiserFormulaire()
$sect_activite= $('#dynActivites').eq(0).closest('.section_contrat')
if (isAdminFree()){
var $list = $('#liste_activites_GU')
if ($list.length > 0)
var $target = $('.inputs .autreActiviteZone ').append($list.html())
}
$('#liste_activites_GU ').remove()
$('.choixNiv2Title').css('display', 'none');
$('.btn-ajouter').show();
$('.btn-modifier').hide();
// 1. Gestion de l'affichage des choix de niveau 2
$('.choixNiv1Title').click(function () {
// Récupération de l'ID de niveau 1 sélectionné
var id1Selected = $(this).data('id1');
// Mise à jour du style de sélection niveau 1
$('.choixNiv1Title').removeClass('selected');
$(this).addClass('selected');
// Masquer tous les choix de niveau 2 en retirant la classe visible
$('.choixNiv2Title').removeClass('visible').css('display', 'none');
$('.choixActivites > .choixNiv1 > .choixNiv2.inNiv1').remove()
// Afficher uniquement les choix de niveau 2 correspondants
if (id1Selected === "00") {
$('.choixNiv2Title').removeClass('visible').css('display', 'none');
$('.autreActiviteZone').addClass('visible');
$('#autreActiviteInput').focus();
} else {
// Comportement normal pour les autres catégories
$('.autreActiviteZone').removeClass('visible');
$('.choixNiv2Title').removeClass('visible').css('display', 'none');
$('.choixNiv2Title[data-id1="' + id1Selected + '"]')
.addClass('visible')
.css('display', 'block')
.css('opacity', '1')
}
if (window.matchMedia("(max-width: 768px)").matches) {
var $choixNiv2In= $('.choixActivites > .choixNiv2').clone(true)
$choixNiv2In.addClass('inNiv1').insertAfter($(this))
}
});
$('#autreActiviteInput').keydown(function(event) {
if (event.key === 'Enter') {
event.preventDefault();
}
});
// Ajout d'une autre activité au panier
$('.btn-ajouter,.btn-modifier').click(function(e) {
var valeur = $('#autreActiviteInput').val().trim();
if (valeur.length>0) {
var $question = $('.autreActiviteZone [data-libelle].selected ')
var cai= ifset( $question.attr('data-cai'),'')
var forme= ifset( $question.attr('data-forme'),'???')
var customId
if ($(this).hasClass('btn-ajouter')) {
customId = 'custom_' + panierIndex++;
panierItems.push({
id1: '00',
id2: customId,
name: 'autre',
displayText: valeur,
outText: valeur,
cai:cai,
forme:forme
});
} else if ($(this).hasClass('btn-modifier') && editingIndex !== -1) {
panierItems[editingIndex].displayText = valeur;
panierItems[editingIndex].cai = cai;
panierItems[editingIndex].forme = forme;
panierItems[editingIndex].outText = valeur;
editingIndex = -1;
}
// Réinitialiser l'input
$('#autreActiviteInput').val('').trigger('input');
resetQuestions($('.autreActiviteZone .options_form[data-cond="liste_activites_GU1"]'))
$('.btn-ajouter').show();
$('.btn-modifier').hide();
// Mettre à jour l'affichage du panier
updatePanierDisplay();
}
});
// 2. Ajout d'items au panier
$('.choixNiv2Title').click(function () {
var id1 = $(this).data('id1');
var id2 = $(this).data('id2');
var name = $(this).data('name');
var displayText = $(this).text();
var outText = $(this).data('text');
var forme = $(this).data('forme');
var cai = $(this).data('cai');
if (id2 === "00") {
$('.choixNiv2Title').removeClass('visible').css('display', 'none');
$('.autreActiviteZone').addClass('visible');
$('#autreActiviteInput').focus();
resetQuestions($('.autreActiviteZone .options_form[data-cond="liste_activites_GU1"]'))
return
}
// Vérifier si l'item existe déjà dans le panier
var existeDeja = false;
for (var i = 0; i < panierItems.length; i++) {
if (panierItems[i].id1 === id1 && panierItems[i].id2 === id2) {
existeDeja = true;
break;
}
}
// Si l'item n'existe pas, l'ajouter au panier
if (!existeDeja) {
panierItems.push({
id1: id1,
id2: id2,
name: name,
displayText: displayText,
outText: outText,
cai:cai,
forme:forme
});
// Mise à jour visuelle de la sélection
if (id2!='00')
$('.choixNiv2Title[data-id2='+id2+']').addClass('selected');
// Mettre à jour l'affichage du panier
updatePanierDisplay();
}
});
$('.panierActivites').on('click', '.art_rgl,cas_particuliers', function (e) {
e.stopPropagation();
});
// 4. Suppression d'items du panier (délégation d'événements)
$('.panierActivites').on('click', '.remove-item', function (e) {
e.stopPropagation();
var id1ToRemove = $(this).data('id1');
var id2ToRemove = $(this).data('id2');
// Retirer l'élément du tableau panierItems
panierItems = panierItems.filter(function (item) {
return !(item.id1 === id1ToRemove && item.id2 === id2ToRemove);
});
// Retirer la classe selected de l'item niveau 2
$('.choixNiv2Title[data-id1="' + id1ToRemove + '"][data-id2="' + id2ToRemove + '"]')
.removeClass('selected');
// Mettre à jour l'affichage
updatePanierDisplay();
});
// 5. Gestion du clic sur un élément du panier
$('.panierActivites').on('click', '.panier-item', function () {
var $dynLoc= $(this).closest('#dynActivites')
var id1 = $(this).find('.remove-item').data('id1');
var id2 = $(this).find('.remove-item').data('id2');
var index = $(this).data('index');
// Mise à jour du style de sélection niveau 1
$('.choixNiv1Title').removeClass('selected');
$('.choixNiv1Title[data-id1="' + id1 + '"]').addClass('selected');
// Masquer tous les choix de niveau 2 en retirant la classe visible
$('.choixNiv2Title').removeClass('visible').css('display', 'none');
$('.choixActivites > .choixNiv1 > .choixNiv2.inNiv1').remove();
// Afficher uniquement les choix de niveau 2 correspondants
if (id1 === "00") {
$('.choixNiv2Title').removeClass('visible').css('display', 'none');
$('.autreActiviteZone').addClass('visible');
$dynLoc.find('#autreActiviteInput').focus();
$dynLoc.find('#autreActiviteInput').val($(this).find('.item-text').text());
$('.btn-ajouter').hide();
$('.btn-modifier').show();
setInpiCategory(panierItems[index].cai, '', $(this).closest('.section_contrat'));
editingIndex = index;
} else {
// Comportement normal pour les autres catégories
$('.autreActiviteZone').removeClass('visible');
$('.choixNiv2Title').removeClass('visible').css('display', 'none');
$('.choixNiv2Title[data-id1="' + id1 + '"]')
.addClass('visible')
.css('display', 'block')
.css('opacity', '1');
}
if (window.matchMedia("(max-width: 768px)").matches) {
var $choixNiv2In = $('.choixActivites > .choixNiv2').clone(true);
$choixNiv2In.addClass('inNiv1').insertAfter($('.choixNiv1Title[data-id1="' + id1 + '"]'));
}
});
getQuestions('saisonniere',null,null,null,$sect_activite)
.add(getQuestions('ambulante',null,null,null,$sect_activite))
.add(getQuestions('nonexercee',null,null,null,$sect_activite))
.click(function () {
setTimeout(updatePanierDisplay,100)
})
getAutoActivite()
updatePanierDisplay();
}
var initialiserFormulaire = function() {
var html = '
' +
'
Les activités selectionnées
\n' +
'
Aucune activité sélectionnée
\n' +
'
Choissisez vos activités ci-dessous
\n' +
'
\n' +
' \n' +
'
\'.$html_dynNiv1.\'
\n' +
'
\'.$html_dynNiv2.\'
\n' +
'
\n' +
'
\n' +
' \n' +
'
Ajouter
\n' +
'
Modifier
\n' +
'
\n' +
' \n' +
'
'
var $source = $('#dynActivites')
var innerhtml= $source.html()
$source.remove()
/*
$sect_activite= getQuestions('data-cond="type_activite"').eq(0).closest('.section_contrat')
while($sect_activite.length>0) {
var $target = $sect_activite.find('.inputs [data-multiple-name=activites]:not(.clone)')
if ($target.length > 0)
$target.next('.add_multiple').remove()
else
$target = $sect_activite.find('.inputs [data-cond=type_activite]')
$(html).insertAfter($target)
$target.remove()
$('.choixActivites').html(innerhtml)
$sect_activite= getQuestions('data-cond="type_activite"').eq(0).closest('.section_contrat')
}
*/
$('.options_form[data-cond="type_activite"]').each(function(){
var $target = $(this)
var $mult= $target.closest('[data-multiple-name]')
$(html).insertAfter($target)
$('.choixActivites').html(innerhtml)
$target.remove()
if ($mult.length>0){
$mult.next('.add_multiple').remove()
$mult.find('.if_multiple ').remove()
$mult.removeAttr('data-multiple-name').removeClass('multiple').addClass('transp transparent')
$mult.find('[data-cond="art_regl"]').addClass('cachee')
}
})
$sect_activite= $('#dynActivites').eq(0).closest('.section_contrat')
if ($sect_activite.find('.outputs .variable[data-name="objet_social"]').eq(0).closest('.preview_only').length>0){
var html_obj='____________'
$(html_obj).insertBefore($sect_activite.find('.outputs .multiple[data-multiple-name="activites"]').eq(0))
}
}
var updatePanierDisplay = function() {
var art=false, dreal=false, lib=false,obj='',activitees_exercees='';
var saisonniere = isCheckboxCond($sect_activite,'saisonniere')
var ambulante = isCheckboxCond($sect_activite,'ambulante')
var nonexercee = isCheckboxCond($sect_activite,'nonexercee')
var cas_part= saisonniere || ambulante || nonexercee
if (panierItems.length === 0) {
$('.panierActivites').html('Aucune activité selectionnée');
} else {
var panierHtml = '
';
for (var i = 0; i < panierItems.length; i++) {
var forme =isAdminFree() ?' ('+panierItems[i].forme+')':''
var autre = panierItems[i].id1 === '00'? '' : '';
var cas_particuliers=''
if (cas_part)
cas_particuliers = '