/* ======================================= Aboutementu tel + tva ================================= */
function asyncOpenAboutementTel() {
/* gestion popup maintenance */
if ( typeof(maintenance) == "number" && maintenance == 1 ) {
close_popup();
}
/* ne pas ouvrir si popup surveillance ouverte*/
if ( !is_class_exist(document.getElementById("popup_surveillance_societe"), "isHidden") ) {
return;
}
var id = document.getElementById('identitetel');
var idinfos = document.getElementById('popup_aboutementtel');
//add_class(id, "identitebuttinactive");
//remove_class(id, "identitebutt");
//remove_class(idinfos, "isHidden");
add_class(idinfos, "isVisible");
/* positionnement bloc aboutement */
position_aboutement_tel(idinfos, "open");
}
function asyncCloseAboutementTel() {
var idlink = document.getElementById('identitetel');
var idinfos = document.getElementById('popup_aboutementtel');
//remove_class(idlink, "identitebuttinactive");
//add_class(idlink, "identitebutt");
//add_class(idinfos, "isHidden");
remove_class(idinfos, "isVisible");
/* positionnement bloc aboutement */
position_aboutement_tel(idinfos, "close");
}
/* positionnement du bloc aboutement */
function position_aboutement_tel(bloc, status) {
/* ouverture aboutement */
if ( status && status == "open") {
var cta = document.getElementById("identitetel");
var picto = cta.getElementsByTagName("i")[0];
/* calcul position en mobile */
if ( window.innerWidth < 1000 ) {
/* aboutement en position normale */
remove_class(bloc, "isFixed");
/* top du bloc */
if ( window.innerWidth < 600 ) {
var topBloc = cta.offsetTop;
} else {
var topBloc = cta.offsetTop - 1;
}
/* left du bloc */
var leftBloc = cta.offsetLeft - 20;
var positionBloc = document.getElementById("identitelien").offsetLeft;
var positionTel = document.getElementById("identitetel").offsetLeft;
/* largeur du bloc */
if ( window.innerWidth < 600 ) {
var widthBloc = window.innerWidth - leftBloc - 16; /* largeur fenetre - positionnement du cta */
} else if ( window.innerWidth < 768 ) {
var widthBloc = window.innerWidth - positionBloc - 11; /* largeur fenetre - positionnement du cta */
} else {
var widthBloc = window.innerWidth - positionBloc - positionTel + 4; /* largeur fenetre - positionnement du cta */
}
}
/* calcul position en desktop */
else {
/* si aboutement dans identite fixe */
if ( !is_class_exist(document.getElementById("identite_fiche_floatable"), "isFixed") || window.innerWidth < 1000 ) {
/* aboutement en position normale */
remove_class(bloc, "isFixed");
/* top du bloc */
if ( window.innerWidth < 1060 ) {
var topBloc = cta.offsetTop - 1;
} else {
var topBloc = cta.offsetTop;
}
var leftBloc = cta.offsetLeft - 20;
/* largeur du bloc */
var widthIdentite = document.getElementById('identitelien').offsetWidth;
widthBloc = widthIdentite - leftBloc;
}
/* si aboutement dans identite au scroll */
else if ( is_class_exist(document.getElementById("identite_fiche_floatable"), "isFixed") && window.innerWidth >= 1000 ) {
/* aboutement en position fixed */
add_class(bloc, "isFixed");
/* top du bloc */
var topBloc = (cta.offsetTop - 15) + document.getElementById("header_fiche_floatable").offsetHeight;
/* left du bloc */
if ( window.innerWidth < 1050 ) {
var leftBloc = (picto.offsetLeft - 18);
} else {
var windowWidth = window.innerWidth,
detailsWidth = document.getElementById("adressDetail").offsetWidth,
floatable = document.getElementById("identite_fiche_floatable"),
companyWidth = floatable.getElementsByClassName("FicheIdentiteFloatable__Company")[0].offsetWidth,
ctaWidth = document.getElementById("bloc_fiche_cta").offsetWidth,
marginAuto = ( windowWidth - detailsWidth - companyWidth - ctaWidth ) / 2,
marginAuto = Math.round(marginAuto),
leftBloc = windowWidth - marginAuto - ctaWidth + 11;
/* ajustement positionnement sur IE 11 */
var documentBody = document.body;
if ( is_class_exist(documentBody, 'nav-ie11') ) {
leftBloc = leftBloc - 8;
}
}
/* largeur du bloc */
var widthBloc = 309;
}
}
/* attribution largeur du bloc */
bloc.style.width = widthBloc + "px";
/* attribution top du bloc */
bloc.style.top = topBloc + "px";
/* attribution left du bloc */
bloc.style.left = leftBloc + "px";
}
/* fermeture aboutement */
else if ( status && status == "close" ) {
bloc.style.width = "";
setTimeout(function(){
bloc.style.top = "";
bloc.style.left = "";
}, 500);
}
/* fermeture au resize */
add_event(window, "resize", function() {
if ( is_class_exist(bloc, "isVisible") ) {
asyncCloseAboutementTel();
}
});
/* repositionnement au scroll */
add_event(window, "scroll", function() {
/* seulement si aboutement visible */
if ( is_class_exist(bloc, "isVisible") && window.innerWidth >= 1000 ) {
/* si identite au scroll visible */
if ( is_class_exist(document.getElementById("identite_fiche_floatable"), "isFixed") ) {
/* si aboutement ouvert dans identite fixe */
if ( !is_class_exist(bloc, "isFixed") ) {
/* fermer aboutement */
remove_class(document.getElementById("popup_aboutementtel"), "isVisible");
document.getElementById("popup_aboutementtel").style.width = "";
/* positionner l'aboutement */
add_class(bloc, "isFixed");
}
}
/* si identite fixe visible */
else {
/* si aboutement ouvert dans identite au scroll */
if ( is_class_exist(bloc, "isFixed") ) {
/* fermer aboutement */
remove_class(document.getElementById("popup_aboutementtel"), "isVisible");
document.getElementById("popup_aboutementtel").style.width = "";
/* positionner l'aboutement */
remove_class(bloc, "isFixed");
}
}
}
});
}
/**
* function getXhr()
*
* Retourne un objet pour l'envoi et la reception de donnees de façon asynchrone.
*/
function desactive_number(obj) {
var telab = document.getElementById('telab');
var price_details = document.getElementById('price_details');
var popup = document.getElementById("popup");
if (obj && obj.timeout != undefined) {
clearTimeout(obj.timeout);
obj.timeout = undefined;
}
if (telab) {
add_class(telab, "isHidden");
//add_class(price_details, "isHidden");
}
asyncCloseAboutementTel();
}
function desactive_numberDashboard(obj) {
var telab = document.getElementById('telab-' + stockIdSocietyAboutement);
var price_details = document.getElementById('price_details-' + stockIdSocietyAboutement);
if (obj && obj.timeout != undefined) {
clearTimeout(obj.timeout);
obj.timeout = undefined;
}
if (telab) {
add_class(telab, "isHidden");
//add_class(price_details, "isHidden");
}
/* cacher le numero de tel */
closeAboutementTelDashboard(stockIdSocietyAboutement, "desktop");
/* reinitialiser le stockage de l'id de la societe affichee */
stockIdSocietyAboutement = "";
}
function desactive_numberDashboardMobile(obj) {
var telab = document.getElementById('telab-mobile-' + stockIdSocietyAboutement);
var price_details = document.getElementById('price_details-mobile-' + stockIdSocietyAboutement);
if (obj && obj.timeout != undefined) {
clearTimeout(obj.timeout);
obj.timeout = undefined;
}
if (telab) {
add_class(telab, "isHidden");
//add_class(price_details, "isHidden");
}
/* cacher le numero de tel */
closeAboutementTelDashboard(stockIdSocietyAboutement, "mobile");
/* reinitialiser le stockage de l'id de la societe affichee */
stockIdSocietyAboutement = "";
}
//function desactive_tva_number() {
function hideNumberTVA() {
var tvainfos = document.getElementById('aboutement-tva-informations');
var tvaaffiliationmobile = document.getElementById('aboutement-tva-affiliation-mobile');
var tvaaffiliationdesktop = document.getElementById('aboutement-tva-affiliation-desktop');
var tvaclick = document.getElementById('aboutement-tva-click');
var tvatexte = document.getElementById('aboutement-tva-texte');
var tvanumeroinfo = document.getElementById('aboutement-tva-numero-info');
var tvanumero = document.getElementById('aboutement-tva-numero');
var tvatarif = document.getElementById('aboutement-tva-tarif');
// var tvacontact = document.getElementById('aboutement-tva-contact');
var tvaerreur = document.getElementById('aboutement-tva-erreur');
add_class(tvaerreur, "isHidden");
remove_class(tvaclick, "isHidden");
add_class(tvatexte, "isHidden");
add_class(tvanumeroinfo, "isHidden");
add_class(tvanumero, "isHidden");
// add_class(tvatarif, "isHidden");
tvatarif.style.display = "none";
// add_class(tvacontact, "isHidden");
add_class(tvainfos, "isHidden");
add_class(tvaaffiliationmobile, "isHidden");
add_class(tvaaffiliationdesktop, "isHidden");
gana_event('Aboutement TVA', 'non dispo / err');
}
tvaXhr = getXhr();
function tvaWrapper() {
this.xhr = tvaXhr;
this.onload = function() {
var tvainfos = document.getElementById('aboutement-tva-informations');
var tvaclick = document.getElementById('aboutement-tva-click');
var tvatexte = document.getElementById('aboutement-tva-texte');
var tvanumeroinfo = document.getElementById('aboutement-tva-numero-info');
var tvanumero = document.getElementById('aboutement-tva-numero');
var tvatarif = document.getElementById('aboutement-tva-tarif');
// var tvacontact = document.getElementById('aboutement-tva-contact');
var tvaerreur = document.getElementById('aboutement-tva-erreur');
add_class(tvanumeroinfo, "aboutement-ctr");
add_class(tvanumeroinfo, "aboutement-majore");
remove_class(tvanumeroinfo, "aboutement-no");
try {
var response = JSON.parse(this.responseText);
} catch (e) {
this.onerror();
return;
}
if (typeof(response.numtel) != "undefined") {
var phone = [
response.numtel.slice(0,2), " ",
response.numtel.slice(2,4), " ",
response.numtel.slice(4,6), " ",
response.numtel.slice(6,8), " ",
response.numtel.slice(8,10)
].join('');
// remove_class(tvatarif, "isHidden");
tvatarif.style.display = "block";
remove_class(tvatexte, "isHidden");
// remove_class(tvacontact, "isHidden");
tvanumero.innerHTML = phone;
} else if (typeof(response.numtva) != "undefined") {
// add_class(tvatarif, "isHidden");
tvatarif.style.display = "none";
add_class(tvatexte, "isHidden");
// add_class(tvacontact, "isHidden");
remove_class(tvanumeroinfo, "aboutement-ctr");
remove_class(tvanumeroinfo, "aboutement-majore");
add_class(tvanumeroinfo, "aboutement-no");
tvanumero.innerHTML = response.numtva;
} else {
this.onerror();
return;
}
add_class(tvaerreur, "isHidden");
remove_class(tvanumeroinfo, "isHidden");
remove_class(tvanumero, "isHidden");
remove_class(tvainfos, "isHidden");
add_class(tvaclick, "isHidden");
}
this.onerror = function() {
var tvainfos = document.getElementById('aboutement-tva-informations');
var tvaclick = document.getElementById('aboutement-tva-click');
var tvatexte = document.getElementById('aboutement-tva-texte');
var tvanumeroinfo = document.getElementById('aboutement-tva-numero-info');
var tvanumero = document.getElementById('aboutement-tva-numero');
var tvatarif = document.getElementById('aboutement-tva-tarif');
// var tvacontact = document.getElementById('aboutement-tva-contact');
var tvaerreur = document.getElementById('aboutement-tva-erreur');
remove_class(tvanumeroinfo, "aboutement-ctr");
remove_class(tvanumeroinfo, "aboutement-majore");
add_class(tvanumeroinfo, "aboutement-no");
remove_class(tvaerreur, "isHidden");
add_class(tvatexte, "isHidden");
add_class(tvanumeroinfo, "isHidden");
add_class(tvanumero, "isHidden");
// add_class(tvatarif, "isHidden");
tvatarif.style.display = "none";
// add_class(tvacontact, "isHidden");
remove_class(tvainfos, "isHidden");
add_class(tvaclick, "isHidden");
}
this.send = function(siren) {
if (this.xhr == null) {
this.onerror();
}
this.xhr.open("GET", "/cgi-bin/aboutement-tva?siren=" + siren, true);
this.xhr.socXhrWrapper = this;
this.xhr.onload = this.onload;
this.xhr.onerror = this.onerror;
this.xhr.setRequestHeader("Cache-Control", "max-age=0, no-store, no-cache, must-revalidate");
this.xhr.setRequestHeader("Pragma", "no-cache");
this.xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded;");
this.xhr.send();
return "Request processing...";
}
}
abttvaXhrWrapper = new tvaWrapper();
function clickAboutementTVA(siren) {
/* afficher numero tel pour TVA */
abttvaXhrWrapper.send(siren);
/* afficher affiliation compte plus */
affiliation_compteplus("countTVA");
}
function affiliation_compteplus(cookie) {
var date = Date.now();
/* cookie n'existe pas -> le creer */
if ( readCookie(cookie) == null ) {
var expire = date + 86400000;
/* creer le cookie */
var value = "1/" + expire;
createCookie(cookie,value);
}
/* cookie existe */
else {
var valueCookie = readCookie(cookie);
var valueCookie = valueCookie.split("/");
/* valeur cookie non conforme */
if ( isNaN(valueCookie[0]) || isNaN(valueCookie[1]) ) {
/* modifier le cookie */
var expire = date + 86400000;
var value = "1/" + expire;
createCookie(cookie,value);
}
/* valeur cookie conforme */
else {
/* si cookie expire */
if ( valueCookie[1] < date ) {
/* modifier le cookie */
var expire = date + 86400000;
var value = "1/" + expire;
createCookie(cookie,value);
}
/* si cookie en cours */
else {
/* comptabiliser les clicks */
var countClick = parseInt(valueCookie[0]) + 1;
var copyExpire = valueCookie[1];
createCookie(cookie,countClick + "/" + copyExpire);
/* aux multiples de 3 click -> afficher affiliation */
switch(cookie) {
case "countTVA" :
var affiliationMobile = document.getElementById("aboutement-tva-affiliation-mobile");
var affiliationDesktop = document.getElementById("aboutement-tva-affiliation-desktop");
break;
case "countAboutementTel" :
var affiliationMobile = document.getElementById("aboutement-tel-affiliation-mobile");
var affiliationDesktop = document.getElementById("aboutement-tel-affiliation-desktop");
break;
}
if ( countClick%3 == 0 ) {
remove_class(affiliationMobile, "isHidden");
remove_class(affiliationDesktop, "isHidden");
} else {
add_class(affiliationMobile, "isHidden");
add_class(affiliationDesktop, "isHidden");
}
}
}
}
}
/* mise en forme numero tel */
function formatTel(telOrigin) {
var tel = telOrigin.replace(/ /g,''),
telFinal = "";
if ( tel.length == 10 ) {
//verifier si que des chiffres
var number = true;
for ( var t = 0; t < tel.length; t++ ) {
if ( isNaN(tel[t]) == true ) {
number = false;
}
}
//si oui -> inserer espace
if ( number == true ) {
var count = 0;
for ( var t = 0; t < tel.length; t++ ) {
//ajout espace entre 2 chiffres
if (count != 0 && count%2 == 0 ) {
telFinal += " ";
}
telFinal += tel[t];
count++;
}
} else {
telFinal = telOrigin;
}
} else {
telFinal = telOrigin;
}
return telFinal;
}
abttXhr = getXhr();
function SocXhrWrapper() {
this.xhr = abttXhr;
this.timeout = undefined;
this.test = 1;
this.responseHandler = function(e) {
if(this.readyState != 4 || typeof(this.responseXML) == "string") {
return;
}
var tmp;
/* requete OK */
try {
tmp = eval('('+this.responseText+')');
}
/* requete KO */
catch(e) {
manage_errors("Afficher le numéro", this.status);
return;
} // Case CGI is unavailable : responseText is HTML and evaluating it will throw an exception
/* requete OK */
var pricedetails = document.getElementById("price_details");
var telab = document.getElementById("telab");
var telabnum = document.getElementById("telab-num");
var telabinfo = document.getElementById("telab-info");
/* afficher les elements de l'aboutement */
if (telabinfo) {
remove_class(telabinfo, "isHidden");
remove_class(telab, "isHidden");
}
asyncOpenAboutementTel();
/* si abo */
if ( tmp.free == true ) {
/* erreur venant de Societe */
if ( tmp.err == true ) {
telab.innerHTML = "Pas de numéro disponible";
telab.style.color = "black";
return;
}
/* renseigner numero */
telabnum.innerHTML = "" + formatTel(tmp.telephone);
telabnum.style.color = "#91919b";
if (tmp.telephone.length < 10) {
telabnum.style.textAlign = "left";
}
/* renseigner txt prix */
if (telabinfo) {
telabinfo.innerHTML = "Service gratuit
+ prix appel";
telabinfo.style.backgroundColor = "#91919b";
}
/* si mobile */
if (is_phone_device() == true) {
window.location = 'tel:' + formatTel(tmp.telephone);
}
}
/* si pas abo */
else {
/* erreur venant d'annuaire */
if ( tmp.aboutement.success == false || Object.keys(tmp.aboutement.errors).length != 0 ) {
telab.innerHTML = "Pas de numéro disponible";
telab.style.color = "black";
return;
}
/* renseigner numero */
telabnum.innerHTML = "" + formatTel(tmp.aboutement.body.phone);
telabnum.style.color = tmp.aboutement.body.color;
if (tmp.aboutement.body.phone.length < 10) {
telabnum.style.textAlign = "left";
}
/* renseigner txt prix */
if (telabinfo) {
telabinfo.innerHTML = "" + tmp.aboutement.body.text;
telabinfo.style.backgroundColor = tmp.aboutement.body.color;
}
/* renseigner subtext */
pricedetails.innerHTML = "" + tmp.aboutement.body.subtext;
/* si numero geographique */
if ( tmp.aboutement.body.color == "" ) {
add_class(telab.parentNode, 'no-number-special');
}
/* si mobile */
if (is_phone_device() == true) {
window.location = 'tel:' + formatTel(tmp.aboutement.body.phone);
}
}
adnext_cssmove();
}
this.url = 0;
this.setUrl = function(urlToCgi) {
if(typeof(urlToCgi) != "string") {
return;
}
this.url = urlToCgi;
}
this.send = function(siret, nrlead) {
if((this.xhr.readyState == this.xhr.OPENED) // 1
|| (this.xhr.readyState == this.xhr.HEADERS_RECEIVED) // 2
|| (this.xhr.readyState == this.xhr.LOADING)) { // 3
return("XHR already in use");
}
if(typeof(this.url) != "string") {
return "URL not set";
}
if(typeof(siret) != "string") {
return "Argument siren is required and must be a string of caracters";
}
if (this.timeout != undefined) {
clearTimeout(this.timeout);
this.timeout = undefined;
}
// this.timeout = setTimeout( 'desactive_number();', 100000);
this.timeout = setTimeout( 'bar.manageclick("identitetel");', 100000);
if (nrlead) {
this.xhr.open("GET", this.url + "&siret=" + siret + "&nrlead=" + nrlead, true);
} else {
this.xhr.open("GET", this.url+"&siret=" + siret, true);
}
this.xhr.socXhrWrapper = this;
this.xhr.onreadystatechange = this.responseHandler;
this.xhr.setRequestHeader("Cache-Control", "max-age=0, no-store, no-cache, must- revalidate");
this.xhr.setRequestHeader("Pragma", "no-cache");
this.xhr.send();
return "Request processing...";
}
}
function SocXhrWrapperDashboard(id, context) {
this.xhr = abttXhr;
this.timeout = undefined;
this.test = 1;
this.responseHandler = function(e) {
if(this.readyState != 4 || typeof(this.responseXML) == "string") {
return;
}
var tmp;
/* requete OK */
try {
tmp = eval('('+this.responseText+')');
}
/* requete KO */
catch(e) {
manage_errors("Afficher le numéro", this.status);
return;
} // Case CGI is unavailable : responseText is HTML and evaluating it will throw an exception
/* rquete OK */
if ( context && context == "desktop" ) {
var pricedetails = document.getElementById("price_details-" + id);
var telab = document.getElementById("telab-" + id);
var telabnum = document.getElementById("telab-num-" + id);
var telabinfo = document.getElementById("telab-info-" + id);
}
else if ( context && context == "mobile" ) {
var pricedetails = document.getElementById("price_details-mobile-" + id);
var telab = document.getElementById("telab-mobile-" + id);
var telabnum = document.getElementById("telab-num-mobile-" + id);
var telabinfo = document.getElementById("telab-info-mobile-" + id);
}
/* afficher les elements de l'aboutement */
if (telabinfo) {
add_class(telabinfo, "isHidden");
}
remove_class(telab, "isHidden");
/* afficher le numero de tel */
openAboutementTelDashboard(id, context);
/* si abo */
if ( tmp.free == true ) {
/* erreur venant de Societe */
if ( tmp.err == true ) {
telab.innerHTML = "Pas de numéro disponible";
telab.style.color = "black";
add_class(telab, "no-numero");
return;
}
/* renseigner numero */
telabnum.innerHTML = "" + formatTel(tmp.telephone);
telabnum.style.color = "#91919b";
if (tmp.telephone.length < 10) {
telabnum.style.textAlign = "left";
}
/* renseigner txt prix */
if (telabinfo) {
telabinfo.innerHTML = "Service gratuit
+ prix appel";
telabinfo.style.backgroundColor = "#91919b";
}
/* si mobile */
if (is_phone_device() == true) {
window.location = 'tel:' + formatTel(tmp.telephone);
}
}
/* si pas abo */
else {
/* erreur venant d'annuaire */
if ( tmp.aboutement.success == false || Object.keys(tmp.aboutement.errors).length != 0 ) {
telab.innerHTML = "Pas de numéro disponible";
telab.style.color = "black";
add_class(telab, "no-numero");
return;
}
/* renseigner numero */
telabnum.innerHTML = "" + formatTel(tmp.aboutement.body.phone);
telabnum.style.color = tmp.aboutement.body.color;
if (tmp.aboutement.body.phone.length < 10) {
telabnum.style.textAlign = "left";
}
/* renseigner txt prix */
if (telabinfo) {
telabinfo.innerHTML = "" + tmp.aboutement.body.text;
telabinfo.style.backgroundColor = tmp.aboutement.body.color;
}
/* renseigner subtext */
pricedetails.innerHTML = "" + tmp.aboutement.body.subtext;
/* si numero geographique */
if ( tmp.aboutement.body.color == "" ) {
add_class(telab.parentNode, 'no-number-special');
}
/* si mobile */
if (is_phone_device() == true) {
window.location = 'tel:' + formatTel(tmp.aboutement.body.phone);
}
}
adnext_cssmove();
}
this.url = 0;
this.setUrl = function(urlToCgi) {
if(typeof(urlToCgi) != "string") {
return;
}
this.url = urlToCgi;
}
this.send = function(siret, nrlead) {
if((this.xhr.readyState == this.xhr.OPENED) // 1
|| (this.xhr.readyState == this.xhr.HEADERS_RECEIVED) // 2
|| (this.xhr.readyState == this.xhr.LOADING)) { // 3
return("XHR already in use");
}
if(typeof(this.url) != "string") {
return "URL not set";
}
if(typeof(siret) != "string") {
return "Argument siren is required and must be a string of caracters";
}
if (this.timeout != undefined) {
clearTimeout(this.timeout);
this.timeout = undefined;
}
/* desactiver et cacher le tel */
stockIdSocietyAboutement = id;
if ( context && context == "desktop" ) {
this.timeout = setTimeout( 'desactive_numberDashboard();', 100000);
} else if ( context && context == "mobile" ) {
this.timeout = setTimeout( 'desactive_numberDashboardMobile();', 100000);
}
if (nrlead) {
this.xhr.open("GET", this.url + "&siret=" + siret + "&nrlead=" + nrlead, true);
} else {
this.xhr.open("GET", this.url+"&siret=" + siret, true);
}
this.xhr.socXhrWrapper = this;
this.xhr.onreadystatechange = this.responseHandler;
this.xhr.setRequestHeader("Cache-Control", "max-age=0, no-store, no-cache, must- revalidate");
this.xhr.setRequestHeader("Pragma", "no-cache");
this.xhr.send();
return "Request processing...";
}
}
function SocXhrWrapperRensjur() {
this.xhr = abttXhr;
this.timeout = undefined;
this.test = 1;
this.responseHandler = function(e) {
if(this.readyState != 4 || typeof(this.responseXML) == "string") {
return;
}
var tmp;
/* requete OK */
try {
tmp = eval('('+this.responseText+')');
}
/* requete KO */
catch(e) {
manage_errors("Afficher le numéro", this.status);
return;
} // Case CGI is unavailable : responseText is HTML and evaluating it will throw an exception
/* recette OK */
var pricedetails = document.getElementById("price_details-rensjur");
var telab = document.getElementById("telab-rensjur");
var telabnum = document.getElementById("telab-rensjur-num");
var telabinfo = document.getElementById("telab-rensjur-info");
var aboutement = document.getElementById('aboutement-rensjur');
var link = document.getElementById('identiteatel-rensjur');
/* afficher les elements de l'aboutement */
if (telabinfo) {
add_class(telabinfo, "isHidden");
}
remove_class(telab, "isHidden");
remove_class(aboutement, "isHidden");
add_class(link, "isHidden");
/* si abo */
if ( tmp.free == true ) {
/* erreur venant de Societe */
if ( tmp.err == true ) {
telab.innerHTML = "Pas de numéro disponible";
telab.style.color = "black";
telab.style.paddingTop = "3px";
add_class(telab, "no-numero");
return;
}
/* renseigner numero */
telabnum.innerHTML = "" + formatTel(tmp.telephone);
telabnum.style.color = "#91919b";
if (tmp.telephone.length < 10) {
telabnum.style.textAlign = "left";
}
/* renseigner txt prix */
if (telabinfo) {
telabinfo.innerHTML = "Service gratuit
+ prix appel";
telabinfo.style.backgroundColor = "#91919b";
}
/* si mobile */
if (is_phone_device() == true) {
window.location = 'tel:' + formatTel(tmp.telephone);
}
}
/* si pas abo */
else {
/* erreur venant d'annuaire */
if ( tmp.aboutement.success == false || Object.keys(tmp.aboutement.errors).length != 0 ) {
telab.innerHTML = "Pas de numéro disponible";
telab.style.color = "black";
telab.style.paddingTop = "3px";
add_class(telab, "no-numero");
return;
}
/* renseigner numero */
telabnum.innerHTML = "" + formatTel(tmp.aboutement.body.phone);
telabnum.style.color = tmp.aboutement.body.color;
if (tmp.aboutement.body.phone.length < 10) {
telabnum.style.textAlign = "left";
}
/* renseigner txt prix */
if (telabinfo) {
telabinfo.innerHTML = "" + tmp.aboutement.body.text;
telabinfo.style.backgroundColor = tmp.aboutement.body.color;
}
/* renseigner subtext */
pricedetails.innerHTML = "" + tmp.aboutement.body.subtext;
/* si numero geographique */
if ( tmp.aboutement.body.color == "" ) {
add_class(telab.parentNode, 'no-number-special');
}
/* si mobile */
if (is_phone_device() == true) {
window.location = 'tel:' + formatTel(tmp.aboutement.body.phone);
}
}
}
this.url = 0;
this.setUrl = function(urlToCgi) {
if(typeof(urlToCgi) != "string") {
return;
}
this.url = urlToCgi;
}
this.send = function(siret, nrlead) {
if((this.xhr.readyState == this.xhr.OPENED) // 1
|| (this.xhr.readyState == this.xhr.HEADERS_RECEIVED) // 2
|| (this.xhr.readyState == this.xhr.LOADING)) { // 3
return("XHR already in use");
}
if(typeof(this.url) != "string") {
return "URL not set";
}
if(typeof(siret) != "string") {
return "Argument siret is required and must be a string of caracters";
}
if(typeof(nrlead) != "string") {
return "Argument siret is required and must be a string of caracters";
}
if (this.timeout != undefined) {
clearTimeout(this.timeout);
this.timeout = undefined;
}
this.timeout = setTimeout( 'desactive_number_rensjur();', 100000);
this.xhr.open("GET", this.url + "&siret=" + siret + "&nrlead=" + nrlead, true);
this.xhr.socXhrWrapper = this;
this.xhr.onreadystatechange = this.responseHandler;
this.xhr.setRequestHeader("Cache-Control", "max-age=0, no-store, no-cache, must- revalidate");
this.xhr.setRequestHeader("Pragma", "no-cache");
this.xhr.send();
return "Request processing...";
}
}
abttXhrWrapper = new SocXhrWrapper();
abttXhrWrapperRensjur = new SocXhrWrapperRensjur();
function closeAboutementOnglet() {
/* si aboutement tel ouvert -> le fermer */
if ( is_class_exist(document.getElementById("popup_aboutementtel"), 'isVisible') ) {
desactive_number(abttXhrWrapper);
}
}
function openAboutementOnglet() {
let cible = document.querySelector("#identitetel .CtaButton"),
siretabt = cible.getAttribute("data-siretabt"),
nrleadabt = cible.getAttribute("data-nrleadabt");
abttXhrWrapper.setUrl('/cgi-bin/produit-api-aboutement?state=getnum');
abttXhrWrapper.send(siretabt, nrleadabt);
}
function clickAboutementTel(siret, nrlead) {
abttXhrWrapperRensjur.setUrl('/cgi-bin/produit-api-aboutement?state=getnum');
abttXhrWrapperRensjur.send(siret, nrlead);
/* afficher affiliation compte plus */
affiliation_compteplus("countAboutementTel");
}
function createScript(url, callback, anchor, async) {
var a = anchor || document.getElementsByTagName("head")[0];
var scpt = document.createElement('script');
scpt.async = async || true;
scpt.type = "text/javascript";
scpt.dataset.callbackrun = "0";
if (callback) {
if (("load" in scpt) || ("onload" in scpt)) {
add_event(scpt, "load", function() {
if (this.dataset.callbackrun == "0") {
this.dataset.callbackrun = "1";
callback();
}
});
} else {
if (("readystatechange" in scpt) || ("onreadystatechange" in scpt)) {
add_event(scpt, "readystatechange", function() {
if (this.readyState == 'complete' || this.readyState == 'loaded') {
if (this.dataset.callbackrun == "0") {
this.dataset.callbackrun = "1";
callback();
}
}
});
}
}
}
scpt.src = url;
a.appendChild(scpt);
}
var Async = function(id, callback) {
this.id = id;
this.callback = callback;
this.init = false;
/* Fonction verifiant si l'id et la callback sont ok */
this.ready = function() {
if (typeof(this.callback) != "undefined" && document.getElementById(this.id)) {
return (true);
}
return (false);
}
}
var inits = new Array(
new Async('documentbody', device_without_touch),
/*new Async('header', position_modale_cookies),*/
new Async('input_search', init_search),
new Async('input_search2', init_search_2),
new Async('input_search3', init_search_3),
new Async('actionnaire', init_actfil),
new Async('actif', init_actif),
new Async('fullfiche', init_full),
new Async('cartographie', init_carto),
new Async('avantages_carto_intro', init_avantages_carto),
new Async('cartoshop', init_cartoshop),
new Async('chiffre', init_chiffreclef),
new Async('compteresultat', init_compteresultat),
new Async('etat-financier', init_etatfinancier),
new Async('passif', init_passif),
new Async('menuentreprise_mobile', init_menuentreprise),
//new Async('menu-tab-plus', extend_menu_tabs),
new Async('menu-tab-plus-end', init_menu_tab),
new Async('qrcodemobile', init_qrcode),
new Async('synthese', init_synthese),
new Async('AdvancedSearch', init_recherche),
new Async('AdvancedSearchDir', init_recherche_dir),
new Async('rensjur', init_rensjur),
new Async('minifiche-tbl-rensjur', init_minifiche_rensjur),
new Async('identite', init_resume),
new Async('identite-siren', init_hoodspot_resume),
new Async('rensjurtel', init_hoodspot_resume),
new Async('buttsurveiller', init_resume_onglets),
new Async('init_company_identity', init_identity_company),
new Async('identite-etablissement', init_resume_etablissement),
new Async('identite-siret', init_hoodspot_resume_etablissement),
new Async('rensjurtel_etab', init_hoodspot_resume_etablissement),
new Async('mandatdir_end', init_hoodspot_resume_dir),
new Async('actubloc', init_edition),
//new Async('infos', init_minifiche),
new Async('bilansociaux', init_sociaux),
new Async('ie8warning', init_versionwarning),
new Async('identitelien', init_client_informations),
new Async('mandatdir', init_mandatdir),
new Async('edito-summary', init_edito_summary),
new Async('actu_fiche', get_actu_fiche),
new Async('footer', open_footer_menu),
new Async('basketbar', observe_panierbar),
new Async('formgeneric', form_placeholder),
new Async('AdvancedSearch', searchtab_active),
new Async('contact-form', init_contact_form),
new Async('client_infos_login', form_placeholder),
new Async('dashboard_beginner', choose_banner_dashboard),
new Async('active_token_help', active_token_help_display),
new Async('footer', init_select_option_safari),
new Async('footer-compte', init_select_option_safari),
new Async('footer-compte', compte_app_init),
new Async('dashboard-detail-content', sticky_sticker_dashboard),
new Async('glossaire', smooth_effect),
new Async('footer-compte', init_footer_carto),
new Async('minifichecartodir', move_coldroite_dirigeant),
new Async('avantages_carto_dirigeant', fiche_dirigeant_IE),
new Async('menuentreprise_desktop', init_elements_fiche),
new Async('renseignement', height_historique_donnees),
new Async('etablissement', height_historique_donnees),
new Async('container', width_etabliste_IE),
new Async('etab', cut_name_etab),
new Async('contjurlist', init_cont_charts),
new Async('footer', init_readMore_shop),
new Async('result_search_end', init_result_search),
new Async('marques_list_end', display_autopromo_marques),
new Async('entreprisescitees_end', init_entr_citee),
new Async('user_content', init_recup_panier),
);
/* Permet d'ajouter a la volee si besoin des fonctions asynchrone */
function add_async(id, callback) {
var async = new Async(id, callback);
inits.push(async);
}
/* Completeload prend vrai si le document est complete */
var completeload = false;
/* On checke quand le document est pret */
add_event(document, "readystatechange", function(){
if (document.readyState == "complete") {
completeload = true;
}
});
/* Fonction permettant l'initialisation si ok */
function async_init() {
for (var i = 0; i < inits.length; i++) {
if (!inits[i].init && inits[i].ready()) {
inits[i].callback();
inits[i].init = true;
}
}
}
/* Permettant ou non de rappeler l'init */
function async_loop() {
async_init();
if (!completeload) {
setTimeout(async_loop, 20);
} else {
/* On fait un dernier check au cas où il y aura un init qui
* ne soit pas encore passe */
async_init();
init_pubs();
adnext_cssmove();
}
}
async_loop();
function init_versionwarning () {
if (isltIE9()) {
display('ie8warning');
}
}
/**********************************************************/
/*********************** Vus async ************************/
/**********************************************************/
function async_views_callback(placeholder, req) {
if (req.readyState == 4 && (req.status == 200 || req.status == 0)) {
var html = document.createElement("div");
html.innerHTML = req.responseText;
var nodes = html.getElementsByTagName("TR");
for (var i = 0, j = 0; i < nodes.length; i++) {
if (!nodes[i].hasAttribute("data-prodcat")) {
continue;
}
var newid = (prod.length + j++).toString();
nodes[i].setAttribute("id", newid);
nodes[i].setAttribute("data-prodnum", newid);
var children = nodes[i].getElementsByClassName("event-add")[0].children;
children[0].setAttribute("id", "pn"+newid);
children[1].setAttribute("id", "ico-plus"+newid);
children[2].setAttribute("id", "ico-check"+newid);
children[3].setAttribute("id", "add"+newid);
children[4].setAttribute("id", "check"+newid);
}
var scripts = html.getElementsByTagName("SCRIPT");
for (var i = 0; i < scripts.length; i++) {
var tmp = prod.slice();
prod = [];
eval(scripts[i].innerHTML);
prod = tmp.concat(prod);
}
placeholder.parentNode.replaceChild(html, placeholder);
if (scripts.lenght != 0) {
syncpan();
}
}
}
function init_views_async(view, callback) {
var placeholders = document.getElementsByClassName("placeholder");
var rncs = document.getElementById("var-identite-siren").innerHTML;
rncs = rncs.replaceAll(" ", "");
for (var i = 0; i < placeholders.length; i++) {
if (placeholders[i].getAttribute("called")) {
continue;
}
if (placeholders[i].getAttribute("view") != view) {
continue;
}
var query = "/cgi-bin/"
+ placeholders[i].getAttribute("view") + "?rncs=" + rncs.trim().replaceAll(' ', '');
if (typeof(callback) === "function") {
send_query(query, callback, placeholders[i]);
} else {
send_query(query, async_views_callback, placeholders[i]);
}
placeholders[i].setAttribute("called", "1");
}
}
/* gere l'opacite pour l'autopromo sur les marques */
function init_autopromo_opacity() {
var autoPromo = document.querySelectorAll('.soCard__box, .brands'),
header = document.getElementById('identite_fiche_floatable'),
headerBottom = header.getBoundingClientRect().bottom,
wHeight = window.innerHeight;
if(!is_desktop_device()) {
return;
}
for(var i = 0; i < autoPromo.length; i++) {
if(autoPromo[i].getBoundingClientRect().top < headerBottom + 100) {
if(!is_class_exist(autoPromo[i], 'setOpacity')) {
add_class(autoPromo[i], 'setOpacity');
}
}
if(autoPromo[i].getBoundingClientRect().bottom > headerBottom + 150) {
if(is_class_exist(autoPromo[i], 'setOpacity')) {
remove_class(autoPromo[i], 'setOpacity');
}
}
}
}
/* positionner btn switch et bloc autopromo sur mobile */
function position_switch_autopromo(context) {
/* execution fonction que si pas abonne */
if ( !is_class_exist(document.getElementById(context), 'nocompteplus') ) {
return;
}
var histo = document.getElementById(context).getElementsByClassName("histo-part");
/* si 1 histo */
if ( histo.length == 0 ) {
var autopromo = document.getElementById(context).getElementsByClassName("historiqueDonneesAffiliationDesktop")[0];
/* verif si items caches */
var items = document.getElementById(context).getElementsByClassName("FicheDonnees__item");
var height = 0;
for (var i = 0; i < items.length; i++ ) {
if ( is_class_exist(items[i], 'noOpacity') ) {
height += items[i].offsetHeight;
}
}
/* repositionnement bloc autopromo */
if ( height != 0 ) {
autopromo.style.marginTop = "-" + height + "px";
} else {
autopromo.style.marginTop = "";
}
}
/* si 2 histos */
else {
var cibleId = "";
/* cibler l'histo affiche */
for ( var i = 0; i < histo.length; i++ ) {
if ( !is_class_exist(histo[i], 'isHidden') ) {
cibleId = histo[i].getAttribute("id");
}
}
/* repositionner le switch */
var btnSwitch = context.substring(0, (context.length - 7));
btnSwitch = btnSwitch + "switch";
document.getElementById(btnSwitch).style.bottom = "136px"; /* 16 = positionnement d'origine / 120 = hauteur bloc autopromo */
/* repositionner le bloc autopromo */
var autopromo = document.getElementById(cibleId).getElementsByClassName("historiqueDonneesAffiliationDesktop")[0];
/* verif si items caches */
var items = document.getElementById(cibleId).getElementsByClassName("FicheDonnees__item");
var height = 0;
for (var i = 0; i < items.length; i++ ) {
if ( is_class_exist(items[i], 'noOpacity') ) {
height += items[i].offsetHeight;
}
}
/* position horizontale du switch sur IE 11 */
var documentBody = document.body;
if ( is_class_exist(documentBody, 'nav-ie11') ) {
var width = document.getElementById(context).offsetWidth;
var left = Math.round((width - 200) / 2);
var btnSwitchContent = document.getElementById(btnSwitch).getElementsByClassName("switch")[0];
btnSwitchContent.style.left = left + "px";
}
/* repositionnement bloc autopromo */
if ( height != 0 ) {
height = height - 45; /* soustraire btn switch */
autopromo.style.marginTop = "-" + height + "px";
} else {
autopromo.style.marginTop = "45px";
}
}
}///* ----------------- CMP ---------------------------*/
//
//(function(window) {
// if (document.URL.indexOf("paiement.societe.com") == -1) {
// window.__cmp = (function() {
// var listen = window.attachEvent || window.addEventListener;
// listen('message', function(event) {
// window.__cmp.receiveMessage(event);
// });
//
// var commandQueue = [];
// var cmp = function(command, parameter, callback) {
// commandQueue.push({
// command: command,
// parameter: parameter,
// callback: callback
// });
// };
// cmp.commandQueue = commandQueue;
// cmp.receiveMessage = function(event) {
// var data = event && event.data && event.data.__cmpCall;
// if (data) {
// commandQueue.push({
// callId: data.callId,
// command: data.command,
// parameter: data.parameter,
// event: event
// });
// }
// };
// cmp.config = {
// storePublisherData: true,
// customPurposeListLocation: '/scripts/purposes.json',
// globalConsentLocation: '/pages/portal.html',
// };
// return (cmp);
// }());
// }
//})(window);
//
//
//function cmp_modal_load() {
// if (document.URL.indexOf("paiement.societe.com") == -1) {
// var objbody = document.getElementsByTagName('body')[0];
// add_class(objbody, "cmp_modal");
//
// __cmp('showConsentTool');
// }
//}
//
//
//if (typeof(__cmp) != "undefined" && (readCookie("euconsent") == null || readCookie("pubconsent") == null)) {
//
// if (document.URL.indexOf("paiement.societe.com") == -1) {
// __cmp('showConsentTool');
// }
// /* --- DEBUT PARTIE MODALE CMP --- */
//// window.addEventListener("DOMContentLoaded", cmp_modal_load, false);
////
//// window.__cmp('addEventListener', 'onSubmit', function(result) {
//// var objbody = document.getElementsByTagName('body')[0];
//// remove_class(objbody, "cmp_modal");
//// });
// /* ---- FIN PARTIE MODALE CMP --- */
//
// /* --- DEBUT PARTIE BANNER CMP --- */
// /* --- FIN PARTIE BANNER CMP --- */
//}
//
//if (document.URL.indexOf("paiement.societe.com") == -1) {
// var elem = document.createElement('script');
// //elem.src = "/scripts/cmp.bundle.js";
// elem.src = "https://www.societe.mgr.consensu.org/cmp.js"
// elem.async = true;
// elem.type = "text/javascript";
// var scpt = document.getElementsByTagName('script')[0];
// scpt.parentNode.insertBefore(elem, scpt);
//}
//
//
//
///* --------------------- /CMP ------------------------ *//* ======================================= Gestion compte + surveillance ======================== */
function redirectSurveillance () {
var siren = document.getElementById("identite-siren"),
siren = siren.getAttribute("data-siren");
if (typeof(siren) == "string") {
//window.location = "https://paiement.societe.com/cgi-bin/compte-veilles?act=insert&type=0¶m=" + siren;
/* gestion popup maintenance */
if ( typeof(maintenance) == "number" && maintenance == 1 ) {
open_popup_maintenance();
} else {
window.location = "/cgi-bin/compte-veilles?act=insert&type=0¶m=" + siren.trim().replaceAll(' ', '');
}
}
}
opcXhr = getXhrCors();
function SocOpenConnectWrapper() {
this.xhr = opcXhr;
this.onload = function() {
infos_resume.unlock();
if (this.responseText == 1) {
infos_resume.logged();
} else {
infos_resume.get_login();
}
}
this.onerror = function() {
redirectSurveillance();
}
this.send = function() {
if (this.xhr == null) {
this.onerror();
}
infos_resume.lock();
this.xhr.open("POST", "https://paiement.societe.com/cgi-bin/isxed", true);
this.xhr.socXhrWrapper = this;
this.xhr.withCredentials = true;
this.xhr.onload = this.onload;
this.xhr.onerror = this.onerror;
this.xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded;");
this.xhr.send();
return "Request processing...";
}
}
cliXhr = getXhrCors();
function SocConnectWrapper() {
this.xhr = cliXhr;
this.onload = function() {
infos_resume.unlock();
try {
var response = JSON.parse(this.responseText);
} catch (e) {
redirectSurveillance();
}
if (typeof(response.Exists) != "undefined") {
if (response.Exists == true) {
infos_resume.get_pass();
} else {
if (response.Not_exist == true) {
infos_resume.create_pass();
}
if (response.Exists == false && response.Created == true && response.Pass == true) {
infos_resume.get_code_only();
}
if (response.Code == false) {
infos_resume.wrong_code();
}
if (typeof(response.Confirm) != "undefined") {
if (response.Confirm == true) {
infos_resume.creation_complete();
} else {
//redirectSurveillance();
}
}
}
} else if (typeof(response.Connected) != "undefined") {
if (response.Connected == true) {
infos_resume.logged();
} else {
infos_resume.pass_error();
}
}
}
this.onerror = function() {
redirectSurveillance();
}
this.send = function(email, pass, confirm, code) {
if (this.xhr == null) {
this.onerror();
}
infos_resume.lock();
this.xhr.open("POST", "https://paiement.societe.com/cgi-bin/authenticate", true);
this.xhr.socXhrWrapper = this;
this.xhr.withCredentials = true;
this.xhr.onload = this.onload;
this.xhr.onerror = this.onerror;
this.xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded;");
if (pass == "") {
if(code == "" || code == undefined) {
this.xhr.send("email=" + email);
return;
} else {
this.xhr.send("email=" + email + "&code=" + code);
return;
}
} else {
if (confirm == undefined) {
this.xhr.send("email=" + email + "&pass=" + pass);
return;
} else {
if (code == undefined) {
this.xhr.send("email=" + email + "&pass=" + pass + "&confirm=" + confirm);
return;
} else {
this.xhr.send("email=" + email + "&code=" + code);
return;
}
}
}
return "Request processing...";
}
}
passXhr = getXhrCors();
function SocLostPassWrapper() {
this.xhr = passXhr;
this.onload = function() {
infos_resume.unlock();
try {
var response = JSON.parse(this.responseText);
} catch (e) {
redirectSurveillance();
}
if(response.Success == true) {
infos_resume.pass_resend_success();
}
else if (response.Email_error == true) {
infos_resume.pass_resend_errmail();
}
else if (response.No_email == true) {
infos_resume.pass_resend_nomail();
}
else if (response.Error_tech == true) {
infos_resume.pass_resend_tech();
}
else if (response.Error_confirm == true) {
infos_resume.pass_resend_noconfirm();
}
}
this.onerror = function() {
redirectSurveillance();
}
this.send = function(email, format) {
if(this.xhr == null) {
this.onerror();
}
infos_resume.lock();
this.xhr.open("POST", "https://paiement.societe.com/cgi-bin/compte-renvoimdp", true);
this.xhr.socXhrWrapper = this;
this.xhr.withCredentials = true;
this.xhr.onload = this.onload;
this.xhr.onerror = this.onerror;
this.xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded;");
this.xhr.send("email=" + encode_to_hex(email) + "&format=" + format);
return;
}
}
survXhr = getXhrCors();
function SocSurvWrapper() {
this.xhr = survXhr;
this.onload = function() {
/* cacher le loader */
add_class(document.getElementById('CompanyWatch_overlay'), "isHidden");
//remove_class(document.getElementById('CompanyWatch_overlay'), "flex");
/* si + de 150 veilles */
if (this.responseText.indexOf('id="ajout_veille_max_veille"') != -1) {
/* afficher contenu limitation */
show_list(infos_resume.show_maxveille);
}
/* si nb veilles OK */
else {
show_list(infos_resume.show_logged);
}
}
this.onerror = function() {
}
this.send = function(siren) {
if (this.xhr == null) {
redirectSurveillance();
}
this.xhr.open("GET", "/cgi-bin/compte-veilles?act=insert&type=0¶m=" + siren.trim().replaceAll(" ", "").replaceAll(" ",""), true);
this.xhr.socXhrWrapper = this;
this.xhr.onerror = this.onerror;
this.xhr.onload = this.onload;
this.xhr.withCredentials = true;
this.xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded;");
this.xhr.send();
return "Request processing...";
}
}
function Client() {
this.setEmail = setEmail;
this.xhrOpenConnectWrapper = new SocOpenConnectWrapper();
this.xhrConnectWrapper = new SocConnectWrapper();
this.xhrSurvWrapper = new SocSurvWrapper();
this.xhrSocLostPassWrapper = new SocLostPassWrapper();
this.email = undefined;
this.cors = (this.xhrConnectWrapper.xhr != null) ? true : false;
function setEmail(email) {
this.email = email;
var client_informations = document.getElementById('client_informations');
var list = get_elementsbyclassname(client_informations, 'client_infos_email');
// for (var e in list) {
for (var i = 0; i < list.length; i++) {
list[i].innerHTML = email;
}
}
}
client = new Client();
/**/
//var _client_close = 0;
//var _client_open = 1;
var _client_get_login = 2;
var _client_login_invalid = 3;
var _client_login_valid = 4;
var _client_get_pass = 5;
var _client_create = 6;
var _client_pass_error = 7;
var _client_inactiv = 8;
var _client_logged = 9;
var _client_creationfailed = 10;
function show_list(list) {
if (typeof(list) != typeof({})) {
return;
}
for(var i in list) {
remove_class(list[i], "isHidden");
}
adnext_cssmove();
}
function hide_list(list) {
if (typeof(list) != typeof({})) {
return;
}
for(var i in list) {
add_class(list[i], "isHidden");
}
adnext_cssmove();
}
function InfosClient() {
this.state = _client_get_login;
this.closed = true;
this.setup = setup;
this.open = open;
this.close = close;
this.get_login = get_login;
this.login_invalid = login_invalid;
this.login_valid = login_valid;
this.create_pass = create_pass;
this.get_code = get_code;
this.get_code_only = get_code_only;
this.send_code = send_code;
this.get_pass = get_pass;
this.creation_complete = creation_complete;
this.wrong_code = wrong_code;
this.code_resent = code_resent;
this.pass_error = pass_error;
this.logged = logged;
this.creationfailed = creationfailed;
this.pass_resend_success = pass_resend_success;
this.pass_resend_nomail = pass_resend_nomail;
this.pass_resend_tech = pass_resend_tech;
this.pass_resend_errmail = pass_resend_errmail;
this.pass_resend_noconfirm = pass_resend_noconfirm;
this.modify_mail = modify_mail;
this.update = update;
this.updatestate = updatestate;
this.lock = lock;
this.unlock = unlock;
this.id = undefined;
this.inputemail = undefined;
this.inputpass = undefined;
this.elements = {};
this.elements.bloccontainer = undefined;
this.elements.blocpass = undefined;
this.elements.bloccreatepass = undefined;
this.elements.blocsendcode = undefined;
this.elements.bloccomplete = undefined;
this.elements.bloclogin = undefined;
this.elements.blocsentmail = undefined;
this.elements.blocinactifmail = undefined;
this.elements.blocvoirveille = undefined;
this.elements.blocfreshlog = undefined;
this.elements.emailinvalid = undefined;
this.elements.blocmaxveille = undefined;
this.show_get_login = {};
this.show_login_invalid = {};
this.show_login_valid = {};
this.show_create_pass = {};
this.show_get_code = {};
this.show_get_code_only = {};
this.show_send_code = {};
this.show_get_pass = {};
this.show_create = {};
this.show_pass_error = {};
this.show_inactiv = {};
this.show_logged = {};
this.show_creationfailed = {};
this.show_maxveille = {};
function setup (id) {
this.id = id;
this.inputemail = document.getElementById('auth-email');
this.inputpass = document.getElementById('auth-pass');
this.inputcreatepass = document.getElementById('creat-pass');
this.inputconfirmpass = document.getElementById('creat-pass_confirm');
this.buttonvalidlogin = document.getElementById('valid_button_login');
this.buttonlogin = document.getElementById('valid_button');
this.buttonvalid = document.getElementById('identite_valid_mail');
this.codetext = document.getElementById('code_help');
this.codetextvalid = document.getElementById('code_help_valid');
this.codetexterror = document.getElementById('code_help_error');
this.codesend = document.getElementById('resend_code');
this.codevalid = document.getElementById('code_valid');
this.codeerror = document.getElementById('code_error');
this.coderesent = document.getElementById('code_resent');
this.watchbody = document.getElementById('watch_body');
this.watchtext = document.getElementById('watch-text');
this.watchbutton = document.getElementById('button_manage_watch');
this.digit1 = document.getElementById('digit-1');
this.digit2 = document.getElementById('digit-2');
this.digit3 = document.getElementById('digit-3');
this.digit4 = document.getElementById('digit-4');
this.overlay = document.getElementById('CompanyWatch_overlay');
this.overlaytext = document.getElementById('CompanyWatch_progress_status');
this.elements.bloccontainer = document.getElementById('client_create_container');
this.elements.blocpass = document.getElementById('client_infos_password');
this.elements.bloccreatepass = document.getElementById('client_create_password');
this.elements.blocconfirmpass = document.getElementById('client_confirm_password');
this.elements.blocsendcode = document.getElementById('client_send_code');
this.elements.blocmaxveille = document.getElementById('client_maxveille');
this.elements.bloccomplete_m = document.getElementById('client_complete');
this.elements.bloccomplete_nm = document.getElementById('client_complete_no_mail');
this.elements.bloccomplete = document.getElementById((client.email != undefined) ? 'client_complete' : 'client_complete_no_mail');
this.elements.bloclogin = document.getElementById('client_infos_login');
this.elements.blocsentmail = document.getElementById('client_infos_sentmail');
this.elements.blocinactifmail = document.getElementById('client_infos_inactifmail');
this.elements.blocvoirveille = document.getElementById('client_infos_voirveille');
this.elements.blocfreshlog = document.getElementById('client_infos_freshlog');
this.elements.creationfailed = document.getElementById('creation_failed');
this.show_get_login.bloclogin = this.elements.bloclogin;
this.show_login_invalid.bloclogin = this.elements.bloclogin;
this.show_login_valid.bloclogin = this.elements.bloclogin;
this.show_get_pass.bloclogin = this.elements.bloclogin;
this.show_get_pass.blocpass = this.elements.blocpass;
this.show_get_pass.blocpass = this.elements.blocpass;
this.show_create_pass.bloccontainer = this.elements.bloccontainer;
this.show_create_pass.bloccreatepass = this.elements.bloccreatepass;
this.show_create_pass.blocconfirmpass = this.elements.blocconfirmpass;
this.show_create_pass.blocsendcode = this.elements.blocsendcode;
this.show_create_pass.blocvoirveille = this.elements.blocvoirveille;
this.show_get_code.bloccontainer = this.elements.bloccontainer;
this.show_get_code.bloccreatepass = this.elements.bloccreatepass;
this.show_get_code.blocsendcode = this.elements.blocsendcode;
this.show_get_code.blocvoirveille = this.elements.blocvoirveille;
this.show_get_code_only.bloccontainer = this.elements.bloccontainer;
this.show_get_code_only.bloccreatepass = this.elements.bloccreatepass;
this.show_get_code_only.blocsendcode = this.elements.blocsendcode;
this.show_get_code_only.blocvoirveille = this.elements.blocvoirveille;
this.show_pass_error.bloclogin = this.elements.bloclogin;
this.show_pass_error.blocpass = this.elements.blocpass;
this.show_pass_error.blocsentmail = this.elements.blocsentmail;
this.show_create.blocfreshlog = this.elements.blocfreshlog;
this.show_create.blocvoirveille = this.elements.blocvoirveille;
this.show_logged.bloccomplete = this.elements.bloccomplete;
this.show_logged.blocvoirveille = this.elements.blocvoirveille;
this.show_creationfailed.bloclogin = this.elements.bloclogin;
this.show_creationfailed.bloccreationfailed = this.elements.creationfailed;
this.show_maxveille.blocmaxveille = this.elements.blocmaxveille;
}
function open() {
if (this.id == undefined) {
return;
}
hide_list(this.elements);
remove_class(this.id, "isHidden");
this.closed = false;
client.xhrOpenConnectWrapper.send();
}
function close() {
if (this.id == undefined) {
return;
}
add_class(this.id, "isHidden");
this.closed = true;
}
function get_login() {
if (this.id == undefined) {
return;
}
var popup = document.getElementById('popup');
if (popup && !popup.classList.contains("isHidden")) {
close_popup_info();
}
if (this.inputpass != undefined) {
this.inputpass.value = "";
}
if (this.buttonvalid != undefined) {
remove_event(this.buttonvalid, "click", click_valid_create);
add_event(this.buttonvalid, "click", click_valid_infos);
this.buttonvalid.textContent = "Valider";
}
hide_list(this.elements);
show_list(this.show_get_login);
remove_class(this.buttonvalid, "isDisabled");
move_block(this.buttonlogin, this.buttonvalidlogin);
this.state = _client_get_login;
}
function creationfailed() {
if (this.id == undefined) {
return;
}
hide_list(this.elements);
show_list(this.show_creationfailed);
this.state = _client_creationfailed;
}
function login_invalid () {
if (this.id == undefined) {
return;
}
hide_list(this.elements);
show_list(this.show_login_invalid);
display_mail_error("auth-email");
this.state = _client_login_invalid;
}
function login_valid () {
if (this.id == undefined) {
return;
}
var email = this.inputemail.value;
var pass = this.inputpass.value;
hide_list(this.elements);
show_list(this.show_login_valid);
client.setEmail(email);
client.xhrConnectWrapper.send(encode_to_hex(email), encode_to_hex(pass));
this.state = _client_login_valid;
}
function create_pass() {
if (this.id == undefined ) {
return;
}
var email = document.getElementById('new_mail');
this.inputcreatepass.value = "";
this.inputconfirmpass.value = "";
enable_input('creat-pass');
enable_input('creat-pass_confirm');
if (!this.elements.blocsendcode.classList.contains("isDisabled")) {
add_class(this.elements.blocsendcode, "isDisabled");
}
if(!this.codetextvalid.classList.contains("isHidden")) {
add_class(this.codetextvalid, "isHidden");
}
if(!this.codetexterror.classList.contains("isHidden")) {
add_class(this.codetexterror, "isHidden");
}
if(this.codetext.classList.contains('isHidden')) {
remove_class(this.codetext, 'isHidden');
}
remove_class(this.elements.blocsendcode, "valid");
remove_class(this.elements.blocsendcode, "error");
remove_class(this.codesend, "isDisabled");
this.digit1.value = "";
this.digit2.value = "";
this.digit3.value = "";
this.digit4.value = "";
if (!this.codevalid.classList.contains('isHidden')) {
add_class(this.codevalid, "isHidden");
}
if (!this.codeerror.classList.contains('isHidden')) {
add_class(this.codeerror, "isHidden");
}
if(!this.coderesent.classList.contains('isHidden')) {
add_class(this.coderesent, "isHidden");
}
if(!this.watchbutton.classList.contains("isDisabled")) {
add_class(this.watchbutton, "isDisabled");
}
hide_list(this.elements);
show_list(this.show_create_pass);
email.textContent = this.inputemail.value;
this.inputcreatepass.focus();
move_block(this.buttonlogin, this.elements.blocconfirmpass);
remove_event(this.buttonvalid, "click", click_valid_infos);
add_event(this.buttonvalid, "click", click_valid_create);
this.buttonvalid.textContent = "Continuer";
}
function get_code() {
if (this.id == undefined ) {
return;
}
var email = this.inputemail.value;
var pass = this.inputcreatepass.value;
var confirm = this.inputconfirmpass.value;
if(!this.codetextvalid.classList.contains("isHidden")) {
add_class(this.codetextvalid, "isHidden");
}
if(!this.codetexterror.classList.contains("isHidden")) {
add_class(this.codetexterror, "isHidden");
}
if(this.codetext.classList.contains("isHidden")) {
remove_class(this.codetext, "isHidden");
}
remove_class(this.elements.blocsendcode, "valid");
remove_class(this.elements.blocsendcode, "error");
remove_class(this.codesend, "isDisabled");
if(!this.watchbutton.classList.contains("isDisabled")) {
add_class(this.watchbutton, "isDisabled");
}
this.digit1.value = "";
this.digit2.value = "";
this.digit3.value = "";
this.digit4.value = "";
client.xhrConnectWrapper.send(encode_to_hex(email), encode_to_hex(pass), encode_to_hex(confirm));
disable_input("creat-pass");
disable_input("creat-pass_confirm");
add_class(this.buttonvalid, "isDisabled");
remove_class(this.elements.blocsendcode, "isDisabled");
this.digit1.focus();
}
function get_code_only() {
if (this.id == undefined ) {
return;
}
var email = document.getElementById('new_mail');
email.textContent = this.inputemail.value;
hide_list(this.elements);
show_list(this.show_get_code_only);
this.inputcreatepass.value = "default";
this.inputconfirmpass.value = "default";
disable_input("creat-pass");
disable_input("creat-pass_confirm");
hide_input_error("creat-pass");
hide_input_error("creat-pass_confirm");
if (!this.elements.blocsendcode.classList.contains("isDisabled")) {
add_class(this.elements.blocsendcode, "isDisabled");
}
this.digit1.value = "";
this.digit2.value = "";
this.digit3.value = "";
this.digit4.value = "";
if (!this.codevalid.classList.contains('isHidden')) {
add_class(this.codevalid, "isHidden");
}
if (!this.codeerror.classList.contains('isHidden')) {
add_class(this.codeerror, "isHidden");
}
if(!this.coderesent.classList.contains('isHidden')) {
add_class(this.coderesent, "isHidden");
}
remove_class(this.elements.blocsendcode, "isDisabled");
add_class(this.elements.blocsendcode, "mt-16");
this.digit1.focus();
}
function send_code() {
if (this.id == undefined ) {
return;
}
var email = this.inputemail.value;
var pass = this.inputcreatepass.value;
var confirm = this.inputconfirmpass.value;
var code = this.digit1.value + this.digit2.value + this.digit3.value + this.digit4.value;
this.digit1.blur();
this.digit2.blur();
this.digit3.blur();
this.digit4.blur();
client.xhrConnectWrapper.send(encode_to_hex(email), encode_to_hex(pass), encode_to_hex(confirm), code);
}
function get_pass() {
if (this.id == undefined) {
return;
}
hide_list(this.elements);
show_list(this.show_get_pass);
this.inputpass.focus();
move_block(this.buttonlogin, this.elements.blocpass);
this.state = _client_get_pass;
}
function creation_complete() {
if (this.id == undefined) {
return;
}
var siren = document.getElementById("identite-siren"),
siren = siren.getAttribute("data-siren");
if (!this.codeerror.classList.contains('isHidden')) {
add_class(this.codeerror, "isHidden");
}
if(!this.coderesent.classList.contains('isHidden')) {
add_class(this.coderesent, "isHidden");
}
remove_class(this.elements.blocsendcode, "error");
add_class(this.elements.blocsendcode, "valid");
remove_class(this.codevalid, "isHidden");
add_class(this.codesend, "isDisabled");
remove_class(this.watchbutton, "isDisabled");
if(!this.codetext.classList.contains("isHidden")) {
add_class(this.codetext, "isHidden");
}
if(!this.codetexterror.classList.contains("isHidden")) {
add_class(this.codetexterror, "isHidden");
}
if(this.codetextvalid.classList.contains("isHidden")) {
remove_class(this.codetextvalid, "isHidden");
}
remove_class(this.codetextvalid, "isHidden");
client.xhrSurvWrapper.send(siren);
this.state = _client_create;
}
function wrong_code() {
if (this.id == undefined) {
return;
}
if(!this.coderesent.classList.contains('isHidden')) {
add_class(this.coderesent, "isHidden");
}
add_class(this.elements.blocsendcode, "error");
remove_class(this.codeerror, "isHidden");
if(!this.codetext.classList.contains("isHidden")) {
add_class(this.codetext, "isHidden");
}
if(!this.codetextvalid.classList.contains("isHidden")) {
add_class(this.codetextvalid, "isHidden");
}
if(this.codetexterror.classList.contains("isHidden")) {
remove_class(this.codetexterror, "isHidden");
}
}
function code_resent() {
if (this.id == undefined) {
return;
}
if(!this.codeerror.classList.contains('isHidden')) {
add_class(this.codeerror, "isHidden");
}
remove_class(this.coderesent, "isHidden");
}
function pass_error() {
if (this.id == undefined) {
return;
}
hide_list(this.elements);
show_list(this.show_pass_error);
this.state = _client_pass_error;
}
function pass_resend_success() {
var email = document.getElementById('auth-email');
/* fonctionnement sur fiche societe */
if ( document.getElementById("identite") || document.getElementById("identite-etablissement") ) {
var oldText = document.getElementById("watch_body").innerHTML;
var newText = '
Un mail avec le lien de réinitialisation de votre mot de passe a été envoyé à ' + email.value + '. Merci de vérifier votre boite mail.
';
newText += '';
newText += 'OK';
newText += '
';
/* remplcer le contenu de la popup */
document.getElementById("watch_body").innerHTML = newText;
/* retablir le onclick sur client_infos_close2 */
init_client_informations();
/* remettre le texte initial dans la popup */
add_event(document.getElementById("client_infos_close2"), "click", function() {
document.getElementById("watch_body").innerHTML = oldText;
init_client_informations();
});
}
/* fonctionnement sur le reste du site */
else {
open_popup_info("Mot de passe oublié", "Un mail avec le lien de réinitialisation de votre mot de passe a été envoyé à " +email.value+". Merci de vérifier votre boite mail.", "soSecondaryColor4");
}
}
function pass_resend_nomail() {
var email = document.getElementById('auth-email');
open_popup_info("Mot de passe oublié", "Il n\'y a pas de compte associé à " +email.value+ ".", "soSecondaryColor5");
}
function pass_resend_tech() {
open_popup_info("Mot de passe oublié", "Une erreur technique est survenu. Merci de réessayer plus tard.", "soSecondaryColor5");
}
function pass_resend_errmail() {
var email = document.getElementById('auth-email');
if(email.value.length != 0) {
open_popup_info("Mot de passe oublié", email.value+" n\'est pas une adresse mail valide.", "soSecondaryColor5");
} else {
open_popup_info("Mot de passe oublié", "Vous devez saisir une adresse mail valide afin que nous puissions vous envoyer un lien de réinitialisation.", "soSecondaryColor5");
}
}
function pass_resend_noconfirm() {
open_popup_info("Mot de passe oublié", "Le compte doit d\'abord avoir été confirmé avant que nous puissions vous renvoyer votre mot de passe.", "soSecondaryColor5");
}
function modify_mail() {
var popup = document.getElementById('popup_body'),
containElt = document.createElement('p'),
validElt = document.createElement('a'),
cancelElt = document.createElement('a');
add_class(validElt, 'CtaButton mr-8');
add_class(cancelElt, 'CtaButton filaire');
add_class(containElt, 'mt-16 txt-right');
validElt.textContent = "OUI";
cancelElt.textContent = "NON";
validElt.addEventListener("click", function() {
infos_resume.get_login();
});
add_event(cancelElt, "click", close_popup_info);
containElt.appendChild(validElt);
containElt.appendChild(cancelElt);
popup.appendChild(containElt);
open_popup_info("Modification d'adresse mail", "Souhaitez-vous utiliser une autre adresse mail ?");
}
function logged() {
if (this.id == undefined) {
return;
}
var siren = document.getElementById("identite-siren"),
siren = siren.getAttribute("data-siren");
this.watchtext.textContent = '';
move_block(this.elements.blocvoirveille, this.watchbody);
remove_class(this.watchbutton, 'isDisabled');
/* vider contenu popup */
hide_list(this.elements);
/* afficher loader */
remove_class(this.overlay, "isHidden");
add_class(this.overlay, "flex");
client.xhrSurvWrapper.send(siren);
this.state = _client_logged;
}
function updatestate() {
if (client.isConnected() == true && this.state != _client_logged) {
update(_client_logged);
} else {
if (this.state == _client_logged) {
update(_client_get_login);
}
}
}
function update(state) {
if (this.id == undefined) {
return;
}
switch (state) {
case _client_get_login: this.getlogin(); break;
case _client_get_pass: this.getpass(); break;
case _client_create: this.create(); break;
case _client_pass_error: this.pass_error(); break;
case _client_creationfailed: this.creationfailed(); break;
default: break;
}
}
function lock() {
if (this.id == undefined) {
return;
}
remove_class(this.overlay, "isHidden");
add_class(this.overlay, "flex");
remove_event(this.buttonvalid, "click", click_valid_infos);
remove_event(this.inputemail, "keyup", press_valid_infos);
remove_event(this.inputpass, "keyup", press_valid_infos);
}
function unlock() {
if (this.id == undefined) {
return;
}
remove_class(this.overlay, "flex");
add_class(this.overlay, "isHidden");
add_event(this.buttonvalid, "click", click_valid_infos);
add_event(this.inputemail, "keyup", press_valid_infos);
add_event(this.inputpass, "keyup", press_valid_infos);
add_event(this.inputconfirmpass, "keyup", press_valid_create);
}
}
function press_valid_infos (event) {
get_enter_char(event, click_valid_infos);
}
function press_valid_create (event) {
get_enter_char(event, click_valid_create);
}
infos_resume = new InfosClient();
function valid_email(email) {
var valid = false;
var regex = "[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)+\\b";
if (typeof(email) != "string" || email == '') {
return(false);
}
regex = new RegExp(regex, '');
valid = regex.test(email);
return valid;
}
function click_valid_infos () {
var email = document.getElementById('auth-email').value;
if (valid_email(email)) {
infos_resume.login_valid();
} else {
infos_resume.get_login();
}
}
function click_valid_create () {
var pass = document.getElementById('creat-pass').value;
var confirm = document.getElementById('creat-pass_confirm').value;
if (pass == confirm) {
infos_resume.get_code();
} else {
confirm_password('creat-pass');
open_popup_info("Création de compte", "Vous devez confirmer votre mot de passe afin de pouvoir continuer.", "soSecondaryColor5");
}
}
function get_enter_char(ev, fct) {
if (ev.keyCode == 13) {
fct();
}
}
function click_lost_pass() {
var email = document.getElementById('auth-email').value;
var format = document.getElementById('format').value;
client.xhrSocLostPassWrapper.send(email, format);
}
/* etat normal du btn surveiller */
function activeLinkSurveillance() {
var id = document.getElementById('buttsurveiller');
remove_class(id, "identitebuttinactive");
add_class(id, "identitebutt");
}
/* etat selectionne du btn surveiller */
function inactiveLinkSurveillance() {
var id = document.getElementById('buttsurveiller');
remove_class(id, "identitebutt");
add_class(id, "identitebuttinactive");
}
function closeSurveillance() {
var id = document.getElementById('buttsurveiller');
infos_resume.close();
activeLinkSurveillance();
}
function openSurveillance() {
var id = document.getElementById('buttsurveiller');
/* si societe deja surveillee -> supprimer veille */
if ( id.getAttribute("class").indexOf("isWatched") != -1 ) {
delete_surveillance();
} else {
if (client.cors == true) {
//infos_resume.setup(client_informations);
infos_resume.setup(popup_surveillance_societe);
infos_resume.open();
inactiveLinkSurveillance();
} else {
redirectSurveillance();
}
}
}
function init_client_informations() {
var client_informations = document.getElementById('client_informations');
var deno = document.getElementById('identite_deno').innerHTML.trim();
var validMail = document.getElementById('identite_valid_mail');
var champMail = document.getElementById('auth-email');
var champPass = document.getElementById('auth-pass');
var lostPass = document.getElementById('lost-pass');
var lostPassError = document.getElementById('lost-pass-error');
var clickclose = document.getElementById('client_infos_close');
var clickclose2 = document.getElementById('client_infos_close2');
var list = get_elementsbyclassname(client_informations, 'client_infos_deno');
if ( list ) {
for (var i = 0; i < list.length; i++) {
list[i].innerHTML = deno;
}
}
add_event(lostPass, "click", click_lost_pass);
add_event(lostPassError, "click", click_lost_pass);
add_event(clickclose, "click", function () {bar.manageclick('buttsurveiller');});
add_event(clickclose2, "click", function () {bar.manageclick('buttsurveiller');});
add_event(validMail, "click", click_valid_infos);
add_event(champMail, "keyup", press_valid_infos);
add_event(champPass, "keyup", press_valid_infos);
}
/* verification des chiffres dans le code de confirmation */
function only_numbers_surveillance(input, form) {
if(isNaN(input.value)) {
input.value = "";
return
} else {
var digit1 = document.getElementById("digit-1").value,
digit2 = document.getElementById("digit-2").value,
digit3 = document.getElementById("digit-3").value,
digit4 = document.getElementById("digit-4").value;
if(digit1 === "" || digit2 === "" || digit3 === "" || digit4 === "") {
auto_focus_next_input(input);
} else {
infos_resume.send_code();
}
}
}
/* verifier si bloc surveillance ouvert au focus */
document.onfocus = function() {
var watch = document.getElementById('client_informations');
var codebloc = document.getElementById('client_send_code');
if(watch != undefined && !watch.classList.contains('isHidden') && codebloc.classList.contains('isDisabled')) {
var id = document.getElementById('buttsurveiller');
bar.manageclick('buttsurveiller');
remove_class(id, "identitebuttinactive");
add_class(id, "identitebutt");
}
}
/* suppression surveillance depuis la fiche */
function delete_surveillance() {
/* ouvrir popup confirmation avec overlay */
open_popup("popup_delete_veille_fiche");
var siren = document.getElementById("identite-siren"),
siren = siren.getAttribute("data-siren"),
query = "/cgi-bin/compte-veilles?act=suppr&type=0¶m=" + siren;
send_query(query, confirm_delete_surveillance);
}
/* affichage poppup confirmation suprpession veille */
function confirm_delete_surveillance(response) {
if (response.readyState == 4 && response.status == 200) {
/* fermer overlay */
close_progress_overlay('popup_delete_veille_fiche');
/* modifier apparence btn */
var btn = document.getElementById("buttsurveiller").getElementsByClassName("CtaButton")[0],
txt = btn.getElementsByTagName("span"),
picto = btn.getElementsByTagName("i");
/* modif txt */
txt[0].innerHTML = "Surveiller";
txt[1].innerHTML = "Surveiller l'entreprise";
/* modif picto */
for ( var p = 0; p < picto.length; p++) {
if ( picto[p].getAttribute("class").indexOf("watched") == -1 ) {
remove_class(picto[p], "isHidden");
} else {
add_class(picto[p], "isHidden");
}
}
/* indiquer societe comme non surveillee */
remove_class(document.getElementById("buttsurveiller"), "isWatched");
}
}
function toggle_carto_details(id, cat) {
var details = document.getElementById(id),
link = document.getElementById(id + '_link'),
icon = document.getElementById(id + '_icon');
if ( !is_class_exist(details, 'open') ) {
if ( cat == 'consult' ) {
link.innerHTML = 'Masquer les consultations';
link.innerHTML += 'expand_less';
} else {
link.innerHTML = 'Masquer la légende';
link.innerHTML += 'expand_less';
}
add_class(details, "open");
} else {
if ( cat == 'consult' ) {
link.innerHTML = 'Voir les consultations';
link.innerHTML += 'expand_more';
} else {
link.innerHTML = 'Voir la légende';
link.innerHTML += 'expand_more';
}
remove_class(details, "open");
}
}
function active_token_help_display() {
var url = window.location.href,
regex = /(actionapi=2)/g,
help = document.getElementById('active_token_help');
if(regex.test(url)) {
remove_class(help, 'isHidden');
}
}
function hide_select_option_safari(device) {
var select = document.getElementsByTagName('select');
if(select) {
for(var i = 0; i < select.length; i++) {
for(var j = 0; j < select[i].options.length; j++) {
if(detect_device() === device_type.DESKTOP) {
if(select[i].options[j].getAttribute('data-safari') === 'mobile_view') {
select[i].remove(j);
}
} else {
if(select[i].options[j].getAttribute('data-safari') === 'desktop_view') {
select[i].remove(j);
}
}
}
}
}
}
function init_select_option_safari() {
if(is_safari()){
hide_select_option_safari();
}
}
function copy_to_clipboard(id) {
var success = document.getElementById('copied-token');
document.getElementById(id).select();
document.execCommand("copy");
remove_class(success, 'isHidden');
}/* ======================================= Contact Annuaire ================================ */
function asyncOpenContactCompany() {
var id = document.getElementById('contactAnnuaire');
var ca = document.getElementById('contactannuaire');
if (typeof(openContactCompany) == "function") {
add_class(ca, "isHidden");
remove_class(ca, "isHidden");
openContactCompany(adnext_cssmove)
remove_class(id, "identitebutt");
add_class(id, "identitebuttinactive");
}
}
function asyncOpenContactCompanyDashboard(id) {
var newId = id;
var btn = document.getElementById('contactAnnuaire-' + newId);
var ca = document.getElementById('contactannuaire-' + newId);
if (typeof(openContactCompanyDashboard) == "function") {
add_class(ca, "isHidden");
remove_class(ca, "isHidden");
openContactCompanyDashboard(newId);
remove_class(btn, "identitebutt");
add_class(btn, "identitebuttinactive");
}
}
function asyncOpenContactCompanyDashboardMobile(id) {
var newId = id;
var ca = document.getElementById('contactannuaire-mobile-' + newId);
if (typeof(openContactCompanyDashboard) == "function") {
add_class(ca, "isHidden");
remove_class(ca, "isHidden");
openContactCompanyDashboard(newId);
}
}
function asyncCloseLinkContactCompany() {
var id = document.getElementById('contactAnnuaire');
var ca = document.getElementById('contactannuaire');
remove_class(id, "identitebuttinactive");
add_class(id, "identitebutt");
remove_class(ca, "isHidden");
add_class(ca, "isHidden");
}
function asyncCloseLinkContactCompanyDashboard(id, context) {
var btn = document.getElementById('contactAnnuaire-' + id);
var ca = document.getElementById('contactannuaire-' + id);
remove_class(btn, "identitebuttinactive");
add_class(btn, "identitebutt");
remove_class(ca, "isHidden");
add_class(ca, "isHidden");
show_society(id, context);
}
function asyncCloseLinkContactCompanyDashboardMobile(id, context) {
var ca = document.getElementById('contain_contactannuaire_' + id);
ca.style.display = "none";
show_society(id, context);
}
function asyncCloseContactCompany() {
var panel = document.getElementById('contact-company-panel-v2');
if (typeof(closePopup) == "function") {
if (panel) {
closePopup("contact-company-panel-v2", asyncCloseLinkContactCompany);
} else {
asyncCloseLinkContactCompany();
}
}
}
function asyncCloseContactCompanyDashboardMobile(id, context) {
var panel = document.getElementById('contact-company-panel-v2');
if (typeof(closePopup) == "function") {
if (panel) {
closePopup("contact-company-panel-v2", function() { asyncCloseLinkContactCompanyDashboardMobile(id, context) });
} else {
asyncCloseLinkContactCompanyDashboardMobile(id, context);
}
}
}
function ScriptLoader() {
_that = this;
this.list = [];
this.scripts = [];
this.currScript = undefined;
this.callback = undefined;
this.currTimeout = 0;
this.timeout = 50;
this.timeoutMax = 5000;
this.init = init;
this.addScript = addScript;
this.addCallback = addCallback;
this.run = run;
this.loadNextScript = loadNextScript;
function init() {
this.list = [];
this.scripts = [];
this.currScripts = undefined;
this.callback = undefined;
this.currTimeout = 0;
this.timeout = 50;
this.timeoutMax = 5000;
}
function addScript(scr) {
this.list.push(scr);
}
function addCallback(callback) {
this.callback = callback;
}
function run() {
this.loadNextScript();
}
function loadNextScript() {
if (typeof(this.currScript) != "undefined") {
if (typeof(window[this.currScript.hint]) == "undefined") {
if (this.currTimeout >= this.timeoutMax) {
return;
}
this.currTimeout += this.timeout;
setTimeout(function() {_that.loadNextScript();}, this.timeout);
return;
}
}
this.currTimeout = 0;
if (this.list.length == 0) {
this.callback();
return;
}
var script = document.createElement("script");
this.currScript = this.list.shift();
script.src = this.currScript.src;
document.body.parentNode.appendChild(script);
this.scripts.push(script);
if (("load" in script) || ("onload" in script)) {
add_event(script, "load", function() {_that.loadNextScript()});
}
if (("readystatechange" in script) || ("onreadystatechange" in script)) {
add_event(script, "readystatechange", function() {_that.loadNextScript()});
}
}
this.init();
}
function annuaireLoader() {
if ($('#pQuestion').maxlength) {
$('#pQuestion').maxlength = 500;
}
mbPopSelect.init($('#aboutementPopups'));
if (typeof(asyncOpenContactCompany) == "function") {
asyncOpenContactCompany();
}
}
function annuaireLoaderDashboard(id, context) {
if ($('#pQuestion').maxlength) {
$('#pQuestion').maxlength = 500;
}
mbPopSelect.init($('#aboutementPopups'));
if ( context == undefined && typeof(asyncOpenContactCompanyDashboard) == "function") {
asyncOpenContactCompanyDashboard(id);
} else if ( context != undefined && typeof(asyncOpenContactCompanyDashboardMobile) == "function") {
asyncOpenContactCompanyDashboardMobile(id);
}
}
var annLoader = new ScriptLoader();
function displayContactAnnuaire() {
if (typeof(openContactCompany) != "function") {
annLoader.addScript({ "src" : '/scripts/jquery-1.4.4.min.js', "hint" : "jQuery"});
annLoader.addScript({ "src" : '/scripts/jquery.txtLimiter.js', "hint" : "jQuery"});
annLoader.addScript({ "src" : '/scripts/mbpopup.js', "hint" : "mbPopSelect"});
annLoader.addScript({ "src" : '/scripts/annubox.js', "hint" : "openContactCompany"});
annLoader.addCallback(annuaireLoader);
annLoader.run();
} else {
asyncOpenContactCompany();
}
}/* =========== GESTION FORMULAIRE CONTACTE ================ */
function urlencodeISO(str) {
return encodeURIComponent(str);
/*
//Un % dans str créer une boucle infinie et fait planter le navigateur du client
var entities = new Array(
{char:"%", entite:"%25"},
{char:"&", entite:"%26"},
{char:"+", entite:"%2B"},
{char:"=", entite:"%3D"},
{char:"?", entite:"%E1"},
{char:"?", entite:"%E2"},
{char:"?", entite:"%E4"},
{char:"?", entite:"%E7"},
{char:"?", entite:"%E8"},
{char:"?", entite:"%E9"},
{char:"?", entite:"%EA"},
{char:"?", entite:"%EB"},
{char:"?", entite:"%EE"},
{char:"?", entite:"%EF"},
{char:"?", entite:"%F9"},
{char:"?", entite:"%FB"},
{char:"?", entite:"%FC"},
{char:" ", entite:"+"}
);
entities.forEach(function(elem) {
old = "";
while (old != str) {
old = str;
str = old.replace(elem.char, elem.entite);
}
});
return str;
*/
}
function init_contact_form() {
var select = document.getElementById('select');
var options = new Array(
{name: "commande", desc: "Commande non-livrée"},
{name: "fiche", desc: "Signaler une erreur"},
{name: "informations-commerciales", desc: "Informations commerciales"},
{name: "remboursement", desc: "Abonnements et achats"},
{name: "bilan", desc: "Mon bilan n'est pas à jour"},
{name: "partenariat", desc: "Demande de partenariat / Presse"},
{name: "inscription", desc: "Inscription / connexion à mon compte", class: "show-mobile-s", safari: "desktop_view"},
{name: "inscription", desc: "Inscription / connexion compte", class: "hide-mobile-s", safari: "mobile_view"},
{name: "support", desc: "Bug / Suggestion / Support technique", class: "show-mobile-s", safari: "desktop_view"},
{name: "support", desc: "Bug / Suggestion / Support tech", class: "hide-mobile-s", safari: "mobile_view"}
);
if (select) {
options.forEach(function(elem) {
var opt = document.createElement("option");
opt.value = elem.name;
opt.innerText = elem.desc;
if(elem.class){ opt.className = elem.class; }
if(elem.safari){ opt.setAttribute('data-safari', elem.safari); }
select.appendChild(opt);
});
add_event(select, "change", function() {
if (this.value && this.value != "") {
send_query("/pages/view-contact-" + this.value + ".html", function(req) {
var contact = document.getElementById('contact-form');
if (contact && req.readyState == 4 && req.status == 200) {
/* bloc contact : afficher num service commercial si besoin */
var blocTel = document.getElementById("tel_sav"),
numGen = document.getElementById("number-generique"),
numCom = document.getElementById("number-servcomm"),
priceGen = document.getElementById("price-generique"),
priceCom = document.getElementById("price-servcomm");
if ( document.getElementById("select").value == "informations-commerciales") {
add_class(blocTel, "servComm");
add_class(numGen, "isHidden");
add_class(priceGen, "isHidden");
remove_class(numCom, "isHidden");
remove_class(priceCom, "isHidden");
} else {
remove_class(blocTel, "servComm");
add_class(numCom, "isHidden");
add_class(priceCom, "isHidden");
remove_class(numGen, "isHidden");
remove_class(priceGen, "isHidden");
}
/* afficher contenu selon choix liste deroulante */
contact.innerHTML = req.responseText;
/* Gestion des placeholders */
var contactForm = get_elementsbyclassname(contact, 'Form');
if(contactForm.length != 0) {
for(var i = 0; i < contactForm[0].elements.length; i++) {
var getPlaceholder = contactForm[0].elements[i].getAttribute('placeholder');
event_input(contactForm[0].elements[i], getPlaceholder);
add_event(contactForm[0].elements[i], 'blur', function(){
if(this.value != '') {
add_class(this, 'filled');
} else {
remove_class(this, 'filled');
}
});
}
}
}
});
}
});
}
}
/* soumettre formulaire de contact */
function submit_contact_form() {
var select = document.getElementById('select');
var form = document.getElementById('contact-form');
var btn = document.getElementById('submit-contact-form');
if (!btn || is_class_exist(btn, 'isDisabled')) {
return;
}
if (form && select && select.value != "") {
var inputs = form.getElementsByTagName('form')[0].elements;
//serialize
var data = ""
var err = 0;
for (var i = 0; i < inputs.length; i++) {
if (inputs[i].value == '') {
set_input_error(inputs[i].id, true);
err++;
continue
}
if (data !== "") {
data += "&";
}
data += inputs[i].name + "=" + urlencodeISO(inputs[i].value) ;
}
if (err > 0) {
return;
}
var xhr = getXhr();
xhr.open("POST", '/cgi-bin/contact-send?page=' + select.value, true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
add_class(document.getElementById('submit-contact-progress'), "isHidden");
/* afficher msg confirmation */
if (xhr.status == 200) {
let param = {
contexte: "",
msg: 'Votre message a bien été envoyé et sera traité dans les plus brefs délais.',
state: "confirmed",
closeState: true,
linkText: "",
linkHref: "",
gapParam: ""
}
/* si sur page contact www */
if ( document.location.href.indexOf("pages/contact.html") != -1 ) {
if ( window.innerWidth < 1000) {
param["contexte"] = "mobile";
param["gapParam"] = "basketbar";
}
else {
param["contexte"] = "desktop";
if ( getY() <= 140 ) {
param["gapParam"] = "menu";
}
}
}
/* si sur page contact compte */
else if ( document.location.href.indexOf("cgi-bin/compte-contact") != -1 ) {
/* mobile/tablette */
if ( window.innerWidth < 1000 ) {
param["contexte"] = "mobile";
param["gapParam"] = "launcher";
}
/* desktop */
else if ( window.innerWidth >= 1000 && window.innerWidth < 1280 ) {
param["contexte"] = "desktop";
if ( getY() < 90 ) {
param["gapParam"] = "header-compte-border";
} else {
param["gapParam"] = 70;
}
}
else {
param["contexte"] = "desktop";
if ( getY() < 88 ) {
param["gapParam"] = "header";
} else {
param["gapParam"] = 20;
}
}
}
display_temporary_msg(param);
} else {
remove_class(btn, 'isDisabled');
if (xhr.status == 400) {
var objRes = JSON.parse(xhr.responseText);
for (var i in objRes) {
set_input_error(i, true);
}
}
/* afficher msg erreur */
else {
let param = {
contexte: "",
msg: 'Une erreur est survenue.',
state: "error",
closeState: true,
linkText: "",
linkHref: "",
gapParam: ""
}
/* si sur page contact www */
if ( document.location.href.indexOf("pages/contact.html") != -1 ) {
if ( window.innerWidth < 1000) {
param["contexte"] = "mobile";
if ( document.querySelector("#basketbar").className.indexOf("isFull") != -1 ) {
param["gapParam"] = "basketbar";
}
}
else {
param["contexte"] = "desktop";
if ( getY() <= 140 ) {
param["gapParam"] = "menu";
} else {
param["gapParam"] = getY() + 20;
}
}
}
/* si sur page contact compte */
else if ( document.location.href.indexOf("cgi-bin/compte-contact") != -1 ) {
/* mobile/tablette */
if ( window.innerWidth < 1000 ) {
param["contexte"] = "mobile";
param["gapParam"] = "launcher";
}
/* desktop */
else if ( window.innerWidth >= 1000 && window.innerWidth < 1280 ) {
param["contexte"] = "desktop";
if ( getY() < 90 ) {
param["gapParam"] = 135;
} else {
param["gapParam"] = getY() + 70;
}
}
else {
param["contexte"] = "desktop";
if ( getY() < 88 ) {
param["gapParam"] = 88;
} else {
param["gapParam"] = getY() + 20;
}
}
}
display_temporary_msg(param);
}
}
}
};
add_class(btn, 'isDisabled');
remove_class(document.getElementById('submit-contact-progress'), "isHidden");
xhr.send(data);
}
}
function check_input(elem) {
if (elem) {
set_input_error(elem.id, elem.value.length == 0);
}
}
function set_input_error(i, val) {
var elemerr = document.getElementById("result-" + i);
var elem = document.getElementById(i);
if (elemerr && elem) {
if (val == true) {
add_class(elem, "red-border");
add_class(elemerr, "no-info");
} else {
remove_class(elem, "red-border");
remove_class(elemerr, "no-info");
}
}
}
/********************************************************/
/******************** COOKIES ***************************/
/********************************************************/
/* variable pour position modale cachee */
var positionModale = 0;
/* position modale gestion cookies */
function position_modale_cookies() {
var hauteurFenetre = window.innerHeight;
var modaleCookies = document.getElementById("cookiesmodale-content");
/* adaptation hauteur modale a la hauteur de la fenetre */
if ( hauteurFenetre <= 647) {
modaleCookies.style.height = (hauteurFenetre - 20) + "px";
} else {
modaleCookies.style.height = "627px";
}
/* positionnement modale isHidden en fonction hauteur de la fenetre */
var modaleCookies = document.getElementById("cookiesmodale");
var hauteurModaleCookies = modaleCookies.style.height;
hauteurModaleCookies = parseFloat(hauteurModaleCookies.replace("px", ""));
positionModale = (hauteurFenetre - hauteurModaleCookies) / 2;
positionModale = hauteurModaleCookies + positionModale;
modaleCookies.style.transform = "translate(0,-" + positionModale + "px)";
}
/* fermeture modale gestion cookies */
function close_modale_cookies() {
var cookieBan = document.getElementById("cookiesmodale");
var d = new Date();
var modaletime = parseInt((d.getTime() - modaleopentime) / 1000);
var s = modaletime + "";
while (s.length < 3) {
s = "0" + s;
}
gana_event(null, 'modale_cookies', 'close_' + s);
/* si page gestion des cookies -> redirection vers homepage */
if (document.URL.indexOf("cookie-esp") != -1) {
document.location.href="../index.html";
return;
}
add_class(cookieBan, 'isHidden');
document.body.style.overflow = "";
/* positionnement modale isHidden en fonction hauteur de la fenetre */
cookieBan.style.transform = "translate(0,-" + positionModale + "px)";
}/********************************************************/
/************** HISTORIQUE DES DONNEES ******************/
/********************************************************/
/* afficher historique des donnees */
function show_historique_donnees(idElement) {
var idBase = idElement.substring(0, (idElement.length - 4));
var idDescription = idBase + "description";
var idLibelle = idBase + "libelle";
var idContent = idBase + "content";
var idAround = idBase + "around";
var parts = document.getElementById(idContent).getElementsByClassName("histo-part");
var items = document.getElementById(idContent).getElementsByClassName("FicheDonnees__item");
var picto = document.getElementById(idElement).getElementsByClassName("Lien")[0].getElementsByClassName("material-icons-outlined")[0];
/* si histo ferme */
if ( is_class_exist(document.getElementById(idContent), 'noOpacity') ) {
/* changer le picto */
picto.innerHTML = "expand_less";
/* cacher les items > 4 */
count_items_historique_donnees(idBase);
/* cacher description et afficher historique */
add_class(document.getElementById(idElement), "open");
add_class(document.getElementById(idDescription), "isHidden");
remove_class(document.getElementById(idLibelle), "isHidden");
remove_class(document.getElementById(idContent), "noOpacity");
/* si voir plus existe le laisser visible */
for ( var y = 0; y < items.length; y++) {
var itemId = items[y].getAttribute("id");
if ( itemId && itemId.indexOf("-plus") != -1 ) {
remove_class(document.getElementById(itemId), "isHidden");
remove_class(document.getElementById(itemId), "noOpacity");
}
}
/* hauteur de la ligne histo */
var items = document.getElementById(idContent).getElementsByClassName("FicheDonnees__item");
var height = 0;
for ( var i = 0; i < items.length; i++) {
if ( !is_class_exist(items[i], 'noOpacity') ) {
height += items[i].offsetHeight;
}
}
height_historique_donnees(idAround, height);
/* fermeture histo au resize */
add_event(window, "resize", function () {
close_histo_resize(idBase);
});
}
/* si histo ouvert */
else {
/* changer le picto */
picto.innerHTML = "expand_more";
document.getElementById(idDescription).style.opacity = 0;
document.getElementById(idDescription).style.position = "absolute";
remove_class(document.getElementById(idDescription), "isHidden");
/* hauteur de la ligne histo */
var height = document.getElementById(idDescription).offsetHeight;
height_historique_donnees(idAround, height);
/* cacher historique et afficher description */
remove_class(document.getElementById(idElement), "open");
remove_class(document.getElementById(idDescription), "isHidden");
document.getElementById(idDescription).style.opacity = "";
document.getElementById(idDescription).style.position = "";
add_class(document.getElementById(idLibelle), "isHidden");
add_class(document.getElementById(idContent), "noOpacity");
/* cacher les items > 4 */
count_items_historique_donnees(idBase);
/* si voir plus existe le laisser visible */
for ( var y = 0; y < items.length; y++) {
var itemId = items[y].getAttribute("id");
if ( itemId && itemId.indexOf("-plus") != -1 ) {
remove_class(document.getElementById(itemId), "isHidden");
remove_class(document.getElementById(itemId), "noOpacity");
}
}
}
}
/* fermeture histo au resize */
function close_histo_resize(idBase) {
var contentId = idBase + "content";
var voirPlusId = idBase + "voir";
/* seulement si histo ouvert */
if ( !is_class_exist(document.getElementById(contentId), 'noOpacity') ) {
show_historique_donnees(voirPlusId);
}
}
/* determiner si 1 ou 2 histo dans lesquels cacher les items > 4 */
function count_items_historique_donnees(idBase) {
var cibleId = idBase + "content";
var cible = document.getElementById(cibleId);
var parts = cible.getElementsByClassName("histo-part");
/* si 1 seul histo */
if ( parts.length == 0) {
hide_items_historique_donnees(cibleId);
}
/* si 2 histo */
else {
for ( var i = 0; i < parts.length; i++) {
cibleId = parts[i].getAttribute("id");
hide_items_historique_donnees(cibleId, idBase);
}
/* inserer le btn switch */
insert_btn_switch_historique_donnees(idBase);
}
}
/* cacher les items > 4 */
function hide_items_historique_donnees(cibleId, idBase) {
var cible = document.getElementById(cibleId);
var items = cible.getElementsByClassName("FicheDonnees__item");
if ( !idBase ) {
var idBase = cibleId.substring(0, (cibleId.length - 7));
}
/* si 1 seul item dans histo */
if ( (items.length) == 1 ) {
/* mise en forme de la timeline */
var itemLast = items[0];
var timelineLast = itemLast.getElementsByClassName("FicheDonnees__timeline")[0];
add_class(timelineLast, "alone");
/* positionner le bloc autopromo */
if ( is_class_exist(document.getElementById(idBase + "content"), 'nocompteplus') ) {
add_class(cible, "lessItems");
/* si 2 histo */
if ( cibleId.indexOf("src-rcs") != -1 || cibleId.indexOf("src-insee") != -1 ) {
/* agir uniquement pour l'histo visible */
if ( !is_class_exist(cible, 'isHidden') ) {
/* ajouter lessItems sur le content */
add_class(cible.parentNode, "lessItems");
}
}
}
}
/* si + de 4 items dans histo */
else if ( items.length > 4 ) {
/* cacher les items > 4 */
for ( var i = 4; i < items.length; i++) {
add_class(items[i], "noOpacity");
}
/* inserer lien voir plus */
insert_voir_plus_historique_donnees(cibleId, idBase);
/* mise en forme fin de la timeline */
var itemLast = items[3];
var timelineLast = itemLast.getElementsByClassName("FicheDonnees__timeline")[0];
add_class(timelineLast, "continued");
/* positionner le bloc autopromo */
if ( is_class_exist(cible, 'nocompteplus') ) {
remove_class(cible, "lessItems");
}
}
else {
/* mise en forme fin de la timeline */
var itemLast = items[items.length - 1];
var timelineLast = itemLast.getElementsByClassName("FicheDonnees__timeline")[0];
add_class(timelineLast, "last");
/* positionner le bloc autopromo */
if ( is_class_exist(document.getElementById(idBase + "content"), 'nocompteplus') ) {
if ( items.length == 4 ) {
remove_class(cible, "lessItems");
} else {
add_class(cible, "lessItems");
/* si 2 histo */
if ( cibleId.indexOf("src-rcs") != -1 || cibleId.indexOf("src-insee") != -1 ) {
/* agir uniquement pour l'histo visible */
if ( !is_class_exist(cible, 'isHidden') ) {
/* ajouter lessItems sur le content */
add_class(cible.parentNode, "lessItems");
}
}
}
}
}
}
/* inserer le lien voir plus d'items */
function insert_voir_plus_historique_donnees(cibleId, idBase) {
var cible = document.getElementById(cibleId);
var items = cible.getElementsByClassName("FicheDonnees__item");
var text = "";
var detailHisto = "";
if (cibleId.indexOf("rcs") != -1 ) {
detailHisto = "rcs";
} else {
detailHisto = "insee";
}
/* inserer le voir plus seulement si pas deja fait */
if ( !document.getElementById(idBase + "plus-" + detailHisto) ) {
/* wording du lien */
if ( cibleId.indexOf("catjur") != -1 ) {
text = "Voir toutes les formes juridiques";
} else if ( cibleId.indexOf("ape") != -1 ) {
text = "Voir toutes les activités";
} else if ( cibleId.indexOf("effmoy") != -1 ) {
text = "Voir tous les effectifs moyens";
} else if ( cibleId.indexOf("trancheeff") != -1 ) {
text = "Voir toutes les tranches d'effectifs";
} else if ( cibleId.indexOf("capital") != -1 ) {
text = "Voir tous les capitaux";
}
/* construire le lien */
var voirPlus = document.createElement('div');
var content = '';
content += '';
content += '';
content += '
' + text + 'expand_more
';
content += '
';
voirPlus.innerHTML = content;
voirPlus.setAttribute("class", "FicheDonnees__item");
voirPlus.setAttribute("id", idBase + "plus-" + detailHisto);
/* inserer le lien */
cible.insertBefore(voirPlus, items[4]);
/* attribuer le onclick selon le nb d'histo */
var cibleOnclick = document.getElementById(idBase + "plus-" + detailHisto);
cibleOnclick = cibleOnclick.getElementsByClassName("FicheDonnees__description")[0];
if ( cibleId == (idBase + "content") ) { /* un seul histo */
var setOnClick = 'show_items_historique_donnees(this, \'' + cibleId + '\');';
} else { /* plusieurs histo */
var setOnClick = 'show_items_historique_donnees_severals(this, \'' + cibleId + '\');';
}
cibleOnclick.setAttribute("onclick", setOnClick);
}
}
/* inserer le btn switch */
function insert_btn_switch_historique_donnees(idBase) {
var cibleId = idBase + "content";
var cible = document.getElementById(cibleId);
cible = cible.parentNode;
var btnSwitch = document.createElement('div');
var content = '';
content += '';
content += '';
content += '
';
content += '
';
content += '
';
content += '
Source RCS
';
content += '
Source INSEE
';
content += '
';
content += '
';
content += '
';
btnSwitch.innerHTML = content;
btnSwitch.setAttribute("class", "FicheDonnees__item btn-switch");
btnSwitch.setAttribute("id", idBase + "switch");
/* verif si btn switch existe avant de l'inserer */
if ( !document.getElementById(idBase + "switch") ) {
cible.appendChild(btnSwitch);
}
/* mise en page btn switch */
personnalize_btn_switch_historique_donnees(idBase);
}
/* mise en page btn switch */
function personnalize_btn_switch_historique_donnees(idBase) {
var around = document.getElementById(idBase + "around");
var srcRcs = document.getElementById(idBase + "src-rcs");
var srcInsee = document.getElementById(idBase + "src-insee");
/* si src RCS en premier */
if ( is_class_exist(around, 'imrFirst') ) {
add_class(srcRcs, "isFocus");
}
/* si src INSEE en premier */
if ( is_class_exist(around, 'inseeFirst') ) {
add_class(srcInsee, "isFocus");
add_class(around.getElementsByClassName("bg")[0], "isInsee");
}
/* si pas de src RCS */
if ( is_class_exist(around, 'noDataImr') ) {
add_class(around.getElementsByClassName('switch')[0], "isDesactive");
add_class(srcRcs, "isDesactive");
}
/* si pas de src INSEE */
if ( is_class_exist(around, 'noDataInsee') ) {
add_class(around.getElementsByClassName('switch')[0], "isDesactive");
add_class(srcInsee, "isDesactive");
}
}
/* initialiser le fonctionnement du btn switch */
function work_btn_switch_historique_donnees(element, idBase) {
var bg = element.parentNode.parentNode;
bg = bg.getElementsByClassName("bg")[0];
/* ne pas agir sur src desactivee */
if ( is_class_exist(element, 'isDesactive') ) {
return;
}
/* ne pas agir sur src deja focus */
if ( is_class_exist(element, 'isFocus') ) {
return;
}
/* effectuer le switch */
if ( !is_class_exist(element, 'isFocus') ) {
add_class(element, "isFocus");
/* click sur src RCS --> definition des elements */
if ( element.getAttribute("id") == idBase + "src-rcs" ) {
var originId = idBase + "content-src-insee";
var destinationId = idBase + "content-src-rcs";
var focusSwitchId = idBase + "src-insee";
remove_class(document.getElementById(idBase + "around"), "inseeFirst");
add_class(document.getElementById(idBase + "around"), "imrFirst");
/* repositionner le bloc autopromo si 1 a 3 items */
if ( is_class_exist(document.getElementById(destinationId), 'lessItems') ) {
add_class(document.getElementById(destinationId).parentNode, "lessItems");
} else {
remove_class(document.getElementById(destinationId).parentNode, "lessItems");
}
}
/* click sur src INSEE --> definition des elements */
else if ( element.getAttribute("id") == idBase + "src-insee" ) {
var originId = idBase + "content-src-rcs";
var destinationId = idBase + "content-src-insee";
var focusSwitchId = idBase + "src-rcs";
remove_class(document.getElementById(idBase + "around"), "imrFirst");
add_class(document.getElementById(idBase + "around"), "inseeFirst");
/* repositionner le bloc autopromo si 1 a 3 items */
if ( is_class_exist(document.getElementById(destinationId), 'lessItems') ) {
add_class(document.getElementById(destinationId).parentNode, "lessItems");
} else {
remove_class(document.getElementById(destinationId).parentNode, "lessItems");
}
}
/* changer le libelle dans l'entete de la ligne */
var firstItem = document.getElementById(destinationId).getElementsByClassName("FicheDonnees__item")[0];
var firstLibelle = firstItem.getElementsByClassName("description-txt")[0];
var description = document.getElementById(idBase + "description");
description.innerHTML = firstLibelle.innerHTML;
/* modif switch */
remove_class(document.getElementById(focusSwitchId), "isFocus");
if ( destinationId == idBase + "content-src-insee" ) {
add_class(bg, "isInsee");
} else {
remove_class(bg, "isInsee");
}
/* afficher contenu src */
remove_class(document.getElementById(destinationId), "isHidden");
add_class(document.getElementById(originId), "isHidden");
/* calcul la hauteur de la ligne */
var cible = idBase + "around";
var libelle = idBase + "libelle";
/* hauteur de la ligne histo */
var items = document.getElementById(destinationId).getElementsByClassName("FicheDonnees__item");
var height = document.getElementById(libelle).offsetHeight;
for ( var i = 0; i < items.length; i++) {
if ( !is_class_exist(items[i], 'noOpacity') ) {
height += items[i].offsetHeight;
}
}
/* adapter la hauteur de la ligne */
height_historique_donnees(cible, height, "work_btn_switch_historique_donnees");
}
}
/* afficher les items caches si 1 seul historique */
function show_items_historique_donnees(element, cible) {
var content = document.getElementById(cible);
var items = content.getElementsByClassName("FicheDonnees__item");
var height = 0;
for ( var i = 0; i < items.length; i++) {
if ( is_class_exist(items[i], 'noOpacity') ) {
remove_class(items[i], "noOpacity");
height += parseInt(items[i].offsetHeight);
}
}
/* hauteur de la ligne histo */
var idAround = cible.substring(0, (cible.length - 7));
idAround = idAround + "around";
height = height - (element.parentNode.offsetHeight); /* enlever la hauteur du lien voir plus qui va etre mis en display: none */
height_historique_donnees(idAround, height, "show_items_historique_donnees");
/* cacher le voir plus */
add_class(element.parentNode, "isHidden");
/* cacher la mise en forme de la fin de la timeline sur le 3e item */
var itemLast = items[3];
var timelineLast = itemLast.getElementsByClassName("FicheDonnees__timeline")[0];
remove_class(timelineLast, "continued");
/* ajouter la mise en forme fin de la timeline sur le dernier item */
var itemLastNew = items[(items.length - 1)]; /* -1 = ne pas compter l'item afficher plus */
var timelineLastNew = itemLastNew.getElementsByClassName("FicheDonnees__timeline")[0];
add_class(timelineLastNew, "last");
}
/* afficher les items caches si plusieurs historiques */
function show_items_historique_donnees_severals(element, cible, step) {
var content = document.getElementById(cible);
var items = content.getElementsByClassName("FicheDonnees__item");
var height = 0;
for ( var i = 0; i < items.length; i++) {
if ( is_class_exist(items[i], 'noOpacity') ) {
remove_class(items[i], "noOpacity");
height += parseInt(items[i].offsetHeight);
}
}
/* hauteur de la ligne histo */
var idAround = content.parentNode.parentNode.getAttribute("id");
height = height - (element.parentNode.offsetHeight); /* enlever la hauteur du lien voir plus qui va etre mis en display: none */
height_historique_donnees(idAround, height, "show_items_historique_donnees");
/* cacher le voir plus */
add_class(element.parentNode, "isHidden");
/* cacher la mise en forme de la fin de la timeline sur le 3e item */
var itemLast = items[3];
var timelineLast = itemLast.getElementsByClassName("FicheDonnees__timeline")[0];
remove_class(timelineLast, "continued");
/* ajouter la mise en forme fin de la timeline sur le dernier item */
var itemLastNew = items[(items.length-1)]; /* -1 = ne pas compter l'item afficher plus */
var timelineLastNew = itemLastNew.getElementsByClassName("FicheDonnees__timeline")[0];
add_class(timelineLastNew, "last");
/* faire la meme chose pour le 2e histo en isHidden */
if ( !step ) {
/* initialisation parametres si src rcs affichee */
if ( cible.indexOf("rcs") != -1 ) {
var idBase = cible.substring(0, (cible.length - 15));
var newCible = idBase + "content-src-insee";
var newElement = idBase + "plus-insee";
}
/* initialisation parametres si src insee affichee */
else if ( cible.indexOf("insee") != -1 ) {
var idBase = cible.substring(0, (cible.length - 17));
var newCible = idBase + "content-src-rcs";
var newElement = idBase + "plus-rcs";
}
newElement = document.getElementById(newElement);
/* afficher les items de l'histo cache s'il y en a */
if (newElement) {
newElement = newElement.getElementsByClassName("FicheDonnees__description")[0];
show_items_historique_donnees_severals(newElement, newCible, "step2");
}
}
}
/* hauteur de la ligne histo */
function height_historique_donnees(cible, height, origin) {
/* attribuer hauteur au chargement de la page */
if ( !cible ) {
var histo = document.getElementsByClassName("FicheDonnees");
for ( var i = 0; i < histo.length; i++) {
var heightOrigine = histo[i].offsetHeight;
histo[i].parentNode.style.height = heightOrigine + "px";
}
}
/* attribuer nouvelle hauteur suite a l'ouverture/fermeture de l'histo */
else {
var heightOrigine = document.getElementById(cible).offsetHeight;
var idBase = cible.substring(0, (cible.length - 6));
var content = cible.substring(0, (cible.length - 6));
content = content + "content";
var btnSwitch = document.getElementById(idBase + "switch");
var switchHeight = 0;
/* agrandissement de la ligne */
if ( parseInt(heightOrigine) < parseInt(height) ) {
/* switch d'un histo a l'autre */
if ( origin && origin == "work_btn_switch_historique_donnees") {
var heightNew = parseInt(height);
/* si btn switch existe -> prendre en compte sa hauteur */
if ( btnSwitch ) {
switchHeight = 45; /* 21 = hauteur du btn switch / 24 = margin-top du btn switch */
}
/* combiens d'items visibles */
var histos = document.getElementById(content).getElementsByClassName("histo-part");
var histoVisible = "";
for ( var i = 0; i < histos.length; i++) {
if ( !is_class_exist(histos[i], 'isHidden') ) {
histoVisible = histos[i].getAttribute("id");
}
}
var items = document.getElementById(histoVisible).getElementsByClassName("FicheDonnees__item");
/* si 1 et 2 items */
if ( items.length < 3 ) {
heightNew = heightNew + 173; /* 173 = min height du content s'il y a un bloc autopromo */
}
/* si 3 items */
else {
heightNew = heightNew + switchHeight; /* 173 = min height du content s'il y a un bloc autopromo */
}
document.getElementById(cible).style.height = heightNew + "px";
}
/* afficher plus d'items */
else if ( origin && origin == "show_items_historique_donnees" ) {
var heightNew = parseInt(heightOrigine) + parseInt(height);
document.getElementById(cible).style.height = heightNew + "px";
}
/* ouverture histo */
else {
/* si tr d'origine sur plusieurs lignes */
if ( heightOrigine > 18 ) {
var heightOrigine = parseInt(heightOrigine) - ( heightOrigine - 18 );
}
/* si btn switch existe -> prendre en compte sa hauteur en desktop */
if ( btnSwitch ) {
switchHeight = 45; /* 21 = hauteur du btn switch / 24 = margin-top du btn switch */
btnSwitch.style.width = "";
btnSwitch.style.opacity = "";
}
/* donnner hauteur min si pas abonne -> place pour afficher bloc autopromo */
if ( is_class_exist(document.getElementById(content), 'nocompteplus') ) {
/* si 1 a 3 items */
if ( is_class_exist(document.getElementById(content), 'lessItems') ) {
/* sur desktop */
if ( window.innerWidth >= 850 ) {
/* verif si plusieurs histo */
var histos = document.getElementById(content).getElementsByClassName("histo-part");
for ( var i = 0; i < histos.length; i++) {
if ( !is_class_exist(histos[i], 'isHidden') ) {
var histoVisible = histos[i].getAttribute("id");
}
}
/* si 2 histos */
if ( histoVisible ) {
/* combiens d'items visibles */
var items = document.getElementById(histoVisible).getElementsByClassName("FicheDonnees__item");
}
/* si 1 histo */
else {
/* combiens d'items visibles */
var items = document.getElementById(content).getElementsByClassName("FicheDonnees__item");
}
/* si 1 et 2 items */
if ( items.length < 3 ) {
var heightNew = parseInt(heightOrigine) + 173; /* 173 = min height du content s'il y a un bloc autopromo */
}
/* si 3 items */
else {
var heightNew = parseInt(heightOrigine) + parseInt(height) + switchHeight; /* 173 = min height du content s'il y a un bloc autopromo */
}
}
/* sur mobile */
else {
var heightNew = parseInt(heightOrigine) + parseInt(height) + parseInt(switchHeight) + 120; /* 120 = hauteur bloc autopromo*/
}
document.getElementById(cible).style.height = heightNew + "px";
}
/* si plusieurs items */
else {
var heightNew = parseInt(heightOrigine) + parseInt(height) + parseInt(switchHeight);
/* sur mobile */
if ( window.innerWidth < 850 ) {
heightNew = heightNew + 120; /* 20 = hauteur du bloc autopromo */
}
document.getElementById(cible).style.height = heightNew + "px";
}
}
/* si abonne */
else {
/* sur desktop */
if ( window.innerWidth >= 850 ) {
var heightNew = parseInt(heightOrigine) + parseInt(height);
document.getElementById(cible).style.height = heightNew + parseInt(switchHeight) + "px";
}
/* sur mobile */
else {
var heightNew = parseInt(heightOrigine) + parseInt(height);
document.getElementById(cible).style.height = heightNew + parseInt(switchHeight) + "px";
}
}
}
}
/* retrecissement de la ligne */
else {
/* afficher plus d'items */
if ( origin && origin == "show_items_historique_donnees" ) {
var heightNew = parseInt(heightOrigine) + parseInt(height);
document.getElementById(cible).style.height = heightNew + "px";
}
/* switch d'un histo a l'autre */
else if ( origin && origin == "work_btn_switch_historique_donnees" ) {
/* si pas abonne -> place pour afficher bloc autopromo */
if ( is_class_exist(document.getElementById(content), 'nocompteplus') ) {
/* sur mobile */
if ( window.innerWidth < 850 ) {
/* recalculer hauteur */
var heightNew = parseInt(height);
heightNew = heightNew + 120; /* 120 = hauteur du bloc autopromo */
switchHeight = 45;
}
/* sur desktop */
else {
/* recalculer hauteur */
var heightNew = parseInt(height);
/* si 1 a 3 items */
if ( is_class_exist(document.getElementById(content), 'lessItems') ) {
/* combiens d'items visibles */
var histos = document.getElementById(content).getElementsByClassName("histo-part");
var histoVisible = "";
for ( var i = 0; i < histos.length; i++) {
if ( !is_class_exist(histos[i], 'isHidden') ) {
histoVisible = histos[i].getAttribute("id");
}
}
var items = document.getElementById(histoVisible).getElementsByClassName("FicheDonnees__item");
/* si 1 et 2 items */
if ( items.length < 3 ) {
heightNew = 173 + 18; /* 173 = min height du content s'il y a un bloc autopromo */
switchHeight = 0;
}
/* si 3 items */
else {
heightNew = 173 + 18; /* 173 = min height du content s'il y a un bloc autopromo / 18 = hauteur de la ligne d'origine */
switchHeight = 45;
}
}
/* si plusieurs items */
else {
switchHeight = 45;
}
}
}
/* si abonne */
else {
var heightNew = parseInt(height);
switchHeight = 45; /* 21 = hauteur du btn switch / 24 = margin-top du btn switch */
}
document.getElementById(cible).style.height = heightNew + parseInt(switchHeight) + "px";
}
/* fermeture histo */
else {
var heightNew = parseInt(height);
document.getElementById(cible).style.height = heightNew + "px";
/* si btn switch existe -> le cacher */
if ( btnSwitch ) {
btnSwitch.style.opacity = 0; /* pour pouvoir calculer sa hauteur a la reouverture de l'histo */
btnSwitch.style.width = "1px"; /* pour ne pas qu'il passe au dessus des autres elements clickables */
}
}
}
/* repositionnement du btn switch et bloc autopromo sur mobile */
if ( window.innerWidth < 850) {
position_switch_autopromo(content);
}
}
}
/* positionner btn switch et bloc autopromo sur mobile */
function position_switch_autopromo(context) {
/* execution fonction que si pas abonne */
if ( !is_class_exist(document.getElementById(context), 'nocompteplus') ) {
return;
}
var histo = document.getElementById(context).getElementsByClassName("histo-part");
/* si 1 histo */
if ( histo.length == 0 ) {
var autopromo = document.getElementById(context).getElementsByClassName("historiqueDonneesAffiliationDesktop")[0];
/* verif si items caches */
var items = document.getElementById(context).getElementsByClassName("FicheDonnees__item");
var height = 0;
for (var i = 0; i < items.length; i++ ) {
if ( is_class_exist(items[i], 'noOpacity') ) {
height += items[i].offsetHeight;
}
}
/* repositionnement bloc autopromo */
if ( height != 0 ) {
autopromo.style.marginTop = "-" + height + "px";
} else {
autopromo.style.marginTop = "";
}
}
/* si 2 histos */
else {
var cibleId = "";
/* cibler l'histo affiche */
for ( var i = 0; i < histo.length; i++ ) {
if ( !is_class_exist(histo[i], 'isHidden') ) {
cibleId = histo[i].getAttribute("id");
}
}
/* repositionner le switch */
var btnSwitch = context.substring(0, (context.length - 7));
btnSwitch = btnSwitch + "switch";
document.getElementById(btnSwitch).style.bottom = "136px"; /* 16 = positionnement d'origine / 120 = hauteur bloc autopromo */
/* repositionner le bloc autopromo */
var autopromo = document.getElementById(cibleId).getElementsByClassName("historiqueDonneesAffiliationDesktop")[0];
/* verif si items caches */
var items = document.getElementById(cibleId).getElementsByClassName("FicheDonnees__item");
var height = 0;
for (var i = 0; i < items.length; i++ ) {
if ( is_class_exist(items[i], 'noOpacity') ) {
height += items[i].offsetHeight;
}
}
/* position horizontale du switch sur IE 11 */
var documentBody = document.body;
if ( is_class_exist(documentBody, 'nav-ie11') ) {
var width = document.getElementById(context).offsetWidth;
var left = Math.round((width - 200) / 2);
var btnSwitchContent = document.getElementById(btnSwitch).getElementsByClassName("switch")[0];
btnSwitchContent.style.left = left + "px";
}
/* repositionnement bloc autopromo */
if ( height != 0 ) {
height = height - 45; /* soustraire btn switch */
autopromo.style.marginTop = "-" + height + "px";
} else {
autopromo.style.marginTop = "45px";
}
}
}
function width_etabliste_IE() {
if ( detect_version_IE().indexOf("nav-ie11") != -1 ) {
if ( document.getElementById("etablist") ) {
var widthContent = document.getElementById("container").offsetWidth;
var items = document.getElementsByClassName("EtabItem__content");
if ( window.innerWidth < 1268) {
for ( i = 0; i < items.length; i++ ) {
items[i].style.width = (widthContent - 32) + "px";
items[i].getElementsByClassName("infos")[0].style.width = (widthContent - 32) + "px";
}
} else {
for ( i = 0; i < items.length; i++ ) {
items[i].style.width = (widthContent - 48) + "px";
items[i].getElementsByClassName("infos")[0].style.width = (widthContent - 48) + "px";
}
}
add_event(window, "resize", function() {
width_etabliste_IE();
});
}
}
}/********************************************************/
/******************** DIRIGEANT *************************/
/********************************************************/
/* VIEW_MANDATDIR */
function init_mandatdir() {
var mandatdir = document.getElementById('mandatdir');
display_num(mandatdir);
}
function display_all_mandats() {
var mandat = document.getElementById('mandatdir');
var mandatplus = document.getElementById('mandatplus');
if (mandat) {
var tab = get_elementsbyclassname(mandat, 'FicheMandatdir__content');
for (var i = 0; i < tab.length; i++) {
remove_class(tab[i], "isHidden");
}
hide_obj(mandatplus);
}
}
function display_all_comandats() {
var comandat = document.getElementById('comandatdir');
var comandatplus = document.getElementById('comandatplus');
if (comandat) {
var tab = get_elementsbyclassname(comandat, 'comandat');
for (var i = 0; i < tab.length; i++) {
remove_class(tab[i], "isHidden");
}
hide_obj(comandatplus);
}
}
function close_all_dir() {
close_all_tel_dir("stel");
close_all_tel_dir("tel");
}
function close_all_tel_dir(prefix) {
var abtt = document.getElementById(prefix + 'aboutement');
var abt = get_elementsbyclassname(abtt, 'aboutementdir');
if (abt && prefix) {
for (var i = 0; i < abt.length; i++) {
if (abt[i].id && abt[i].id.indexOf(prefix + "aboutementbloc_") == 0) {
var mandatid = abt[i].id.substring(abt[i].id.lastIndexOf("_") + 1);
var telazurdetails = document.getElementById(prefix + 'priceazurdetails_' + mandatid);
var pricedetails = document.getElementById(prefix + "price_details_" + mandatid);
var telab = document.getElementById(prefix + "telab_" + mandatid);
var aboutement = document.getElementById(prefix + 'aboutement_' + mandatid);
var link = document.getElementById(prefix + 'link_' + mandatid);
var bloc = document.getElementById(prefix + 'aboutementbloc_' + mandatid);
add_class(telab, "isHidden");
add_class(aboutement, "isHidden");
remove_class(link, "isHidden");
}
}
}
/*
if (abtt && prefix) {
for (i = 0; i < abtt.childElementCount; i++) {
var mandatid = abtt.children[i].id.substring(abtt.children[i].id.lastIndexOf("_") + 1);
var telazurdetails = document.getElementById(prefix + 'priceazurdetails_' + mandatid);
var pricedetails = document.getElementById(prefix + "price_details_" + mandatid);
var telab = document.getElementById(prefix + "telab_" + mandatid);
var aboutement = document.getElementById(prefix + 'aboutement_' + mandatid);
var link = document.getElementById(prefix + 'link_' + mandatid);
var bloc = document.getElementById(prefix + 'aboutementbloc_' + mandatid);
add_class(telab, "isHidden");
add_class(aboutement, "isHidden");
remove_class(link, "isHidden");
}
}
*/
}
function SocXhrWrapperDir() {
this.xhr = abttXhr;
this.timeout = undefined;
this.test = 1;
this.responseHandler = function(e) {
if(this.readyState != 4 || typeof(this.responseXML) == "string") {
return;
}
var tmp;
/* requete OK */
try {
tmp = eval('('+this.responseText+')');
}
/* requete KO */
catch(e) {
manage_errors("Afficher le numéro", this.status);
return;
} // Case CGI is unavailable : responseText is HTML and evaluating it will throw an exception
/* requete OK */
var prefix = this.socXhrWrapper.prefix;
var mandatid = this.socXhrWrapper.mandatid;
var pricedetails = document.getElementById(prefix + "price_details_" + mandatid);
var telab = document.getElementById(prefix + "telab_" + mandatid);
var telabnum = document.getElementById(prefix + "telab-num_" + mandatid);
var telabinfo = document.getElementById(prefix + "telab-info_" + mandatid);
var aboutement = document.getElementById(prefix + 'aboutement_' + mandatid);
var link = document.getElementById(prefix + 'link_' + mandatid);
/* afficher les elements de l'aboutement */
add_class(telabinfo, "isHidden");
remove_class(telab, "isHidden");
remove_class(aboutement, "isHidden");
add_class(link, "isHidden");
/* si abo */
if ( tmp.free == true ) {
/* erreur venant de Societe */
if ( tmp.err == true ) {
telab.innerHTML = "Pas de numéro disponible";
telab.style.color = "black";
return;
}
/* renseigner numero */
telabnum.innerHTML = "" + formatTel(tmp.telephone);
telabnum.style.color = "#91919b";
/* renseigner txt prix */
telabinfo.innerHTML = "Service gratuit
+ prix appel";
telabinfo.style.backgroundColor = "#91919b";
/* si mobile */
if (is_phone_device() == true) {
window.location = 'tel:' + formatTel(tmp.telephone);
}
}
/* si pas abo */
else {
/* erreur venant d'annuaire */
if ( tmp.aboutement.success == false || Object.keys(tmp.aboutement.errors).length != 0 ) {
telab.innerHTML = "Pas de numéro disponible";
telab.style.color = "black";
return;
}
/* renseigner numero */
telabnum.innerHTML = "" + formatTel(tmp.aboutement.body.phone);
telabnum.style.color = tmp.aboutement.body.color;
/* renseigner txt prix */
telabinfo.innerHTML = "" + tmp.aboutement.body.text;
telabinfo.style.backgroundColor = tmp.aboutement.body.color;
/* renseigner subtext */
pricedetails.innerHTML = "" + tmp.aboutement.body.subtext;
/* si numero geographique */
if ( tmp.aboutement.body.color == "" ) {
add_class(telab.parentNode, 'no-number-special');
}
/* si mobile */
if (is_phone_device() == true) {
window.location = 'tel:' + formatTel(tmp.aboutement.body.phone);
}
}
}
this.url = 0;
this.setUrl = function(urlToCgi) {
if(typeof(urlToCgi) != "string") {
return;
}
this.url = urlToCgi;
}
this.send = function(siret, nrlead, id, prefix) {
if((this.xhr.readyState == this.xhr.OPENED) // 1
|| (this.xhr.readyState == this.xhr.HEADERS_RECEIVED) // 2
|| (this.xhr.readyState == this.xhr.LOADING)) { // 3
return("XHR already in use");
}
if(typeof(this.url) != "string") {
return "URL not set";
}
if(typeof(siret) != "string") {
return "Argument siret is required and must be a string of caracters";
}
if(typeof(nrlead) != "string") {
return "Argument nrlead is required and must be a string of caracters";
}
if (this.timeout != undefined) {
clearTimeout(this.timeout);
this.timeout = undefined;
}
/* 5min */
this.timeout = setTimeout("close_all_dir();", 5 * 1000 * 60);
close_all_dir();
this.xhr.socXhrWrapper = this;
this.mandatid = id;
this.prefix = prefix;
this.xhr.open("GET", this.url+"&siret="+ siret + "&nrlead=" + nrlead, true);
this.xhr.onreadystatechange = this.responseHandler;
this.xhr.setRequestHeader("Cache-Control", "max-age=0, no-store, no-cache, must- revalidate");
this.xhr.setRequestHeader("Pragma", "no-cache");
this.xhr.send();
return "Request processing...";
}
}
abttXhrWrapperDir = new SocXhrWrapperDir();
function click_aboutement_dir(siret, nrlead, mandatid, prefix) {
abttXhrWrapperDir.setUrl('/cgi-bin/produit-api-aboutement?state=getnum');
abttXhrWrapperDir.send(siret, nrlead, mandatid, prefix);
}
function display_or_hide_aboutementdir() {
var aboutement = document.getElementById('stelaboutement');
if (aboutement) {
display_or_hide('stelaboutement');
if (is_display(aboutement)) {
var link = get_elementsbyclassname(aboutement, "Lien");
for (var i = 0; i < link.length; i++) {
if (link[i].onclick) {
link[i].onclick();
break;
}
}
inactiveLinkContactDir();
} else {
activeLinkContactDir();
}
}
}
/* etat normal du btn surveiller */
function activeLinkContactDir() {
var id = document.getElementById('identiteteldir');
remove_class(id, "identitebuttinactive");
add_class(id, "identitebutt");
}
/* etat selectionne du btn surveiller */
function inactiveLinkContactDir() {
var id = document.getElementById('identiteteldir');
remove_class(id, "identitebutt");
add_class(id, "identitebuttinactive");
}
/* La vue actfil */
function init_actfil() {
var act = document.getElementById('actfil');
display_num(act);
}
/* La vue actif */
function init_actif() {
var actif = document.getElementById('actif');
var tableresume = document.getElementById('tableresume');
display_num(actif);
display_num(tableresume);
if (actif) {
build_table_chiffre(actif);
display_num(actif);
}
add_event(window, "resize", function() {build_table_chiffre(actif); display_num(actif);});
}
/* La vue compte */
function init_compteresultat() {
var compteres = document.getElementById('compteresultat');
display_num(compteres);
if (compteres) {
build_table_chiffre(compteres);
display_num(compteres);
}
add_event(window, "resize", function() {build_table_chiffre(compteres); display_num(compteres);});
}
function init_etatfinancier() {
var etatfinancier = document.getElementById('etat-financier');
display_num(etatfinancier);
if (etatfinancier) {
build_table_chiffre(etatfinancier);
display_num(etatfinancier);
}
add_event(window, "resize", function() {build_table_chiffre(etatfinancier); display_num(etatfinancier);});
}
/* La vue passif */
function init_passif() {
var passif = document.getElementById('passif');
display_num(passif);
if (passif) {
build_table_chiffre(passif);
display_num(passif);
}
add_event(window, "resize", function() {build_table_chiffre(passif); display_num(passif);});
}
/* La vue rensjur */
function init_rensjur() {
var rensjur = document.getElementById('rensjur');
var rensjurcomplete = document.getElementById('rensjurcomplete');
display_num(rensjur);
display_num(rensjurcomplete);
}
/* La vue minifiche_rensjur */
function init_minifiche_rensjur() {
var minifiche_rensjur = document.getElementById('minifiche-tbl-rensjur');
display_num(minifiche_rensjur);
}
/********************************************************/
/*************** VIEW ETAB (DISPLAY / HIDE) *************/
/********************************************************/
/* La vue etab */
function display_butt_tab(id_tab, id_button) {
var btn = document.getElementById(id_button);
var tab = document.getElementById(id_tab);
if (tab && btn) {
display_or_hide_table(id_tab);
if (is_display(tab)) {
btn.innerHTML = 'Masquer informations avancées';
btn.innerHTML += 'Voir moins d\'informations';
btn.innerHTML += 'expand_less';
} else {
btn.innerHTML = 'Voir informations avancées';
btn.innerHTML += 'Voir plus d\'informations';
btn.innerHTML += 'expand_more';
}
}
}
function cut_name_etab() {
if ( document.getElementById("etabs") ) {
var etabs = document.getElementById("etabs"),
deno = etabs.getElementsByClassName(" denoEtab");
for ( var i = 0; i < deno.length; i++) {
var denoContent = deno[i].innerHTML,
newContent = "",
end = 0;
/* calcul nb caracteres max du titre pour resolution < 768 */
if ( window.innerWidth < 768 ) {
if ( window.innerWidth < 400 ) {
if ( denoContent.length > 38 ) {
end = 35;
}
} else if ( window.innerWidth >= 400 && window.innerWidth < 460 ) {
if ( denoContent.length > 45 ) {
end = 42;
}
} else if ( window.innerWidth >= 460 && window.innerWidth < 520 ) {
if ( denoContent.length > 56 ) {
end = 53;
}
} else if ( window.innerWidth >= 520 && window.innerWidth < 620 ) {
if ( denoContent.length > 67 ) {
end = 64;
}
} else if ( window.innerWidth >= 620 && window.innerWidth < 700 ) {
if ( denoContent.length > 83 ) {
end = 80;
}
} else if ( window.innerWidth >= 700 && window.innerWidth < 768 ) {
if ( denoContent.length > 108 ) {
end = 105;
}
}
if ( end != 0 ) {
newContent = denoContent.substring(0, end);
newContent = newContent + "...";
} else {
newContent = denoContent.substring(0, denoContent.length);
}
deno[i].innerHTML = newContent;
}
/* calcul largeur max du titre pour resolution > 768 */
else if ( window.innerWidth > 768 && window.innerWidth < 1740 ) {
var largeur = document.getElementsByClassName("FicheContent__ContentAround")[0].offsetWidth;
largeur = largeur - 16; /* margin du contenu de la page */
largeur = largeur - 32; /* padding du bloc etablissements */
largeur = largeur - 66; /* largeur du picto etab + margin */
largeur = largeur - 65; /* largeur du code postal */
largeur = largeur - 64; /* largeur du tag + margin */
if ( window.innerWidth > 1000 ) {
largeur = largeur - 211; /* largeur menu gauche */
}
if ( window.innerWidth > 1280 ) {
largeur = largeur - 303; /* largeur colonne de droite */
largeur = largeur - 30; /* augmentation margin */
}
deno[i].style.maxWidth = largeur + "px";
}
/* bloquer largeur max du titre pour resolution > 1740 */
else if ( window.innerWidth > 1740 ) {
deno[i].style.maxWidth = "560px";
}
}
}
}
/********************************************************/
/************************ VIEW EVENT ********************/
/********************************************************/
function display_event() {
var tab = document.getElementById('eventtable');
var index = 0;
if (tab) {
var list = tab.getElementsByTagName('tr');
for (var i = 0; i < list.length; i++) {
if (list[i].id == 'eventall') {
index = i;
} else {
remove_class(list[i], "isInvisible");
}
}
add_class(list[index], "isInvisible");
}
//panrefresh();
}
function display_bodacc() {
var tab = document.getElementById('bodacctable');
var index = 0;
if (tab) {
var list = tab.getElementsByTagName('tr');
for (var i = 0; i < list.length; i++) {
if (list[i].id == 'bodaccall') {
index = i;
} else {
remove_class(list[i], "isInvisible");
}
}
}
tab.deleteRow(index);
//panrefresh();
}
function update_event_view(placeholder, res) {
if (res.readyState == 4 && (res.status == 200 || res.status == 0)) {
var trigger = false;
var more = document.getElementById("eventall");
if (more) {
trigger = is_class_exist(more, "isHidden");
}
async_views_callback(placeholder, res);
if (trigger) {
display_event();
}
init_event();
}
}
function load_event_ws() {
init_views_async("async-ws-event", update_event_view);
}
function init_event() {
var preview = (document.getElementById('preview_event') != null);
var tab = document.getElementById('eventtable');
if (tab) {
var list = tab.getElementsByTagName('tr');
for (var i = 1; i < list.length; i++) {
var node = list[i];
if (node.id == 'eventall') {
node = node.children[0].children[0].children[0];
add_event(node, "click", display_event);
}
if (preview) {
add_event(node, "click", load_event_ws);
}
if (!preview && node.tagName != 'a') {
add_event(node, "click", function() {
pc(this);
});
}
}
}
}
/* deplacer colonne de droite fiche dirigeant en version mobile */
function move_coldroite_dirigeant() {
var positionDesktop = document.getElementById('coldroite-dirigeant-position-desktop');
var positionMobile = document.getElementById('coldroite-dirigeant-position-mobile');
var content = "";
if ( positionDesktop.innerHTML != "" ) {
content = positionDesktop.innerHTML;
} else {
content = positionMobile.innerHTML;
}
/* version mobile */
if ( window.innerWidth < 1000 ) {
if ( positionMobile.innerHTML == "" ) {
positionMobile.innerHTML = content;
positionDesktop.innerHTML = "";
}
}
/* version desktop */
else {
if ( positionMobile.innerHTML != "" ) {
positionDesktop.innerHTML = content;
positionMobile.innerHTML = "";
}
}
/* relancer fonction pour MAJ content blocs au resize */
add_event(window, "resize", move_coldroite_dirigeant);
}
/* adapter largeur fiche dirigeant sous IE */
function fiche_dirigeant_IE(loop) {
/* seulement pour IE 11 */
if ( detect_version_IE().indexOf("nav-ie11") != -1 ) {
var footer = document.getElementById("footer");
var avantages = document.getElementById("avantages_carto_dirigeant");
var carto = document.getElementById("cartographie");
var container = document.getElementById("container");
/* seulement pour resolution < 1000 */
if ( window.innerWidth < 1000 ) {
if ( !loop ) {
var loop = 0;
}
if ( loop < 5 ) {
/* si footer charge */
if ( footer ) {
container.style.maxWidth = "";
avantages.style.width = (window.innerWidth - 27) + "px";
carto.style.width = (window.innerWidth - 25) + "px";
footer.style.width = (window.innerWidth - 71) + "px";
}
/* sinon */
else {
/* relancer la fonction dans la limite de 5 */
loop++;
fiche_dirigeant_IE(loop);
}
}
}
/* pour resolution > 1000 */
else {
if ( !loop ) {
var loop = 0;
}
if ( loop < 5 ) {
/* si footer charge */
if ( footer ) {
avantages.style.width = "";
carto.style.width = "";
footer.style.width = "";
container.style.maxWidth = (window.innerWidth - 320) + "px";
}
/* sinon */
else {
/* relancer la fonction dans la limite de 5 */
loop++;
fiche_dirigeant_IE(loop);
}
}
}
/* relancer fonction pour MAJ largeur blocs au resize */
add_event(window, "resize", function() {
fiche_dirigeant_IE();
});
}
}
function init_menuentreprise() {
var menu = document.getElementById('menuentreprise_mobile');
/* dans quel element recuperer le scroll --> page carto ne recupere pas scroll au sein de window */
if ( document.getElementById("fiche_carto") && document.getElementById("presentation_carto_banner") ) {
var reference = document.getElementById("documentbody_around");
} else {
var reference = window;
}
if (menu) {
// position des elements au resize
add_event(reference, "resize", function() {
navbar_scroll();
verif_scroll(reference);
} );
// position des elements au scroll
add_event(reference, "scroll", function() {
navbar_scroll();
verif_scroll(reference);
} );
}
}
function verif_scroll(reference) {
if (window.innerWidth > 1000) {
return;
}
// dans quel element recuperer le scroll --> page carto ne recupere pas scroll au sein de window
// page carto -> recuperer scroll au sein de documentbody_around
if ( reference == document.getElementById("documentbody_around") ) {
scrollY = getY(reference);
} else {
scrollY = getY();
}
// position du menu mobile au scroll
if ( document.getElementById("identite-etablissement") ) {
var identite = document.getElementById("identite-etablissement");
} else {
var identite = document.getElementById("identite");
}
if ( scrollY >= identite.offsetTop ) {
scroll_menuentreprise_mobile(scrollY);
}
}
/* position du menu mobile au scroll */
function scroll_menuentreprise_mobile(scrollY) {
var menu = document.getElementById("menuentreprise_mobile"),
menuDefault = document.getElementById("menuentreprise_mobile_around"),
menuBottom = menuDefault.offsetTop + menuDefault.offsetHeight,
headFloat = document.getElementById("navbar"),
scrollLimitDown = menuBottom - headFloat.offsetHeight,
scrollLimitUp = menuDefault.offsetTop - headFloat.offsetHeight;
// menu en fixed
if ( menu.getAttribute("class").indexOf("isFixed") == -1 && scrollY >= scrollLimitDown ) {
menu.style.top = headFloat.offsetHeight + "px";
add_class(menu, "isFixed");
}
// menu en inherit
else if ( menu.getAttribute("class").indexOf("isFixed") != -1 && scrollY < scrollLimitUp ) {
remove_class(menu, "isFixed");
menu.style.top = "";
}
}
/* gestion du menu mobile sur la fiche */
function init_menu_tab() {
extend_menu_tabs();
active_menu_tab();
add_event(window, "resize", function(){
active_menu_tab();
extend_menu_tabs("close");
});
}
/* Mettre le plus du menu mobile en bleu si un des onglets du submenu est actif */
function active_menu_tab() {
var link = document.getElementById('menu-tab-plus'),
tabList = document.getElementById('menu-bar-sublist'),
count = document.getElementById("submenu_count");
if ( tabList ) {
/* determiner onglets submenu */
/* jusqu'a BP S --> onglet dans sous menu =
marques, statistiques, dirigeants, beneficiaires, carto, bilans, ratios, analyse, solvabilite, contentieux
*/
if ( window.innerWidth < 480 ) {
var tableRecap = ["sub_marques", "sub_classement", "sub_dirigeant", "sub_rbe", "sub_carto", "sub_bilan", "sub_ratiofi", "sub_anafi", "sub_enquete", "sub_contentieux", "sub_procedure"];
}
/* entre BP S et BP M --> onglet dans sous menu =
marques, statistiques, beneficiaires, carto, bilans, ratios, analyse, solvabilite, contentieux
*/
else if ( window.innerWidth >= 480 && window.innerWidth < 600) {
var tableRecap = ["sub_marques", "sub_classement", "sub_rbe", "sub_carto", "sub_bilan", "sub_ratiofi", "sub_anafi", "sub_enquete", "sub_contentieux", "sub_procedure"];
}
/* entre BP M et BP L --> onglet dans sous menu =
marques, statistiques, beneficiaires, bilans, ratios, analyse, solvabilite, contentieux
*/
else if ( window.innerWidth >= 600 && window.innerWidth < 768 ) {
var tableRecap = ["sub_marques", "sub_classement", "sub_rbe", "sub_bilan", "sub_ratiofi", "sub_anafi", "sub_enquete", "sub_contentieux", "sub_procedure"];
}
/* au dessus BP L --> onglet dans sous menu =
marques, statistiques, bilans, ratios, analyse, solvabilite, contentieux
*/
else if ( window.innerWidth >= 768 ) {
var tableRecap = ["sub_marques", "sub_classement", "sub_bilan", "sub_ratiofi", "sub_anafi", "sub_enquete", "sub_contentieux", "sub_procedure"];
}
/* boucler sur les liens du submenu */
var tabItems = tabList.getElementsByTagName('li');
for (var i = 0; i < tabItems.length; i++) {
/* ne pas tenir comptes des li de separation */
if ( tabItems[i].className.indexOf("isSeparation") == -1 ) {
/* recuperer le lien actif */
if ( tabItems[i].className.indexOf("isActive") != -1 ) {
var id = tabItems[i].id;
}
}
}
/* boucler sur liens visibles du submenu */
var linkPlusActive = false;
for ( var x = 0; x < tableRecap.length; x++) {
/* verifier si lien actif present dans submenu */
if ( id ) {
/* verifier si lien actif du submenu est visible */
if ( tableRecap[x] == id ) {
linkPlusActive = true;
}
}
}
/* activer/desactiver le lien "plus" du menu */
if ( linkPlusActive == true ) {
add_class(link, "isActive");
} else {
remove_class(link, "isActive");
}
/* renseigner le nb de liens dans le submenu */
count.innerHTML = tableRecap.length;
}
}
/* afficher submenu fiche mobile */
function extend_menu_tabs(action) {
var plus = document.getElementById('menu-tab-plus');
if ( !action ) {
add_event(plus, "click", function() {
var height = document.getElementById("menu-bar-sublist_content").offsetHeight;
if ( this.className.indexOf("open") == -1 ) {
document.getElementById("menu-bar-sublist").style.height = (height + 24) + "px";
add_class(plus, "open");
add_class(plus, "plusActive");
} else {
remove_class(plus, "open");
remove_class(plus, "plusActive");
document.getElementById("menu-bar-sublist").style.height = "";
}
});
} else {
if ( action == "open" ) {
document.getElementById("menu-bar-sublist").style.height = (height + 24) + "px";
add_class(plus, "open");
add_class(plus, "plusActive");
} else if ( action == "close" ) {
remove_class(plus, "open");
remove_class(plus, "plusActive");
document.getElementById("menu-bar-sublist").style.height = "";
}
}
}
/* Gestion positionnement elements de la fiche */
var scrollLimitState = false;
var widthLimitState = false;
function init_elements_fiche() {
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
scrollLimitState = false;
var header = document.getElementById('header');
var inputSearch = document.getElementById("input_search2");
var identite = document.getElementById("identite");
var identiteEtab = document.getElementById("identite-etablissement");
var identiteDeno = document.getElementById("identite_deno");
var menu = document.getElementById('menuentreprise_desktop');
var colDroite = document.getElementById('coldroite');
/* determiner resolution ecran au chargement */
if ( window.innerWidth >= 1000 ) {
widthLimitState = true;
} else {
widthLimitState = false;
}
if (header) {
/* position header */
fixed_header_fiche();
/* gestion placeholder input search */
add_event(inputSearch, "click", function (){
inputSearch.setAttribute("placeholder", "");
show_advanced_search();
});
add_event(inputSearch, "blur", function (){
inputSearch.setAttribute("placeholder", "Entreprise, dirigeant, SIREN...");
});
}
if ( identiteDeno ) {
/* position name societe */
fixed_namecompany_fiche();
/* cloner nom societe en fonction resolution */
add_event(window, "resize", function() {
if ( window.innerWidth >= 1000 ) {
if ( scrollLimitState == true && widthLimitState == false ) {
clone_namecompany_fiche("fixed");
widthLimitState = true;
} else if ( scrollLimitState == false && widthLimitState == false ) {
widthLimitState = true;
}
} else {
if ( scrollLimitState == true && widthLimitState == true ) {
clone_namecompany_fiche("no-fixed");
widthLimitState = false;
} else if ( scrollLimitState == false && widthLimitState == true ) {
widthLimitState = false;
}
}
});
}
if (menu) {
/* menu fix au scroll */
fixed_menuentreprise_desktop();
/* gestion des arrondis sur li active */
active_menuentreprise_desktop();
/* col droite sticky */
sticky_col_droite();
}
}
/* col droite sticky */
function sticky_col_droite() {
let company = document.getElementById("identite_fiche_floatable"),
coldroite = document.getElementById("coldroite");
window.addEventListener("scroll", function(){
if ( company.className.indexOf("isFixed") != -1 ) {
if ( coldroite.style.position != "sticky" ) {
coldroite.style.position = "sticky";
coldroite.style.top = "90px";
}
} else {
coldroite.style.position = "";
coldroite.style.top = "";
}
});
}
/* Header fiche en fixed */
function fixed_header_fiche() {
var header = document.getElementById('header');
var headerTop = header.offsetTop;
var headerHeight = header.offsetHeight
var headerFloatable = document.getElementById('header_fiche_floatable');
var scrollLimit = headerTop + headerHeight - 49; /* 49px = hauteur de headerFloatable */
/* dans quel element recuperer le scroll --> page carto ne recupere pas scroll au sein de window */
if ( document.getElementById("fiche_carto") && document.getElementById("presentation_carto_banner") ) {
var reference = document.getElementById("documentbody_around");
} else {
var reference = window;
}
/* page carto -> recuperer scroll au sein de documentbody_around */
if ( reference == document.getElementById("documentbody_around") ) {
var scrollY = getY(reference);
} else {
var scrollY = getY();
}
if ( scrollY >= scrollLimit ) {
add_class(headerFloatable, "isFixed");
} else {
remove_class(headerFloatable, "isFixed");
}
add_event(reference, "scroll", function() {
/* page carto -> recuperer scroll au sein de documentbody_around */
if ( reference == document.getElementById("documentbody_around") ) {
scrollY = getY(reference);
} else {
scrollY = getY();
}
if ( scrollY >= scrollLimit ) {
add_class(headerFloatable, "isFixed");
} else {
remove_class(headerFloatable, "isFixed");
}
});
}
/* Name fiche en fixed */
function fixed_namecompany_fiche() {
/* contexte selon si fiche societe ou fiche etablissement */
if ( document.getElementById('identite') ) {
var identite = document.getElementById('identite');
} else if ( document.getElementById("identite-etablissement") ) {
var identite = document.getElementById("identite-etablissement");
}
var identiteTop = identite.offsetTop;
var identiteHeight = identite.offsetHeight;
var identiteFloatable = document.getElementById('identite_fiche_floatable');
var scrollLimit = identiteTop + identite.offsetHeight - 80 - 49 - 3; /* 80px = hauteur de identiteFloatable / / 49px = hauteur headerFloatable / 3px = hauteur ombre portee de identiteFloatable */
/* dans quel element recuperer le scroll --> page carto ne recupere pas scroll au sein de window */
if ( document.getElementById("fiche_carto") && document.getElementById("presentation_carto_banner") ) {
var reference = document.getElementById("documentbody_around");
} else {
var reference = window;
}
/* page carto -> recuperer scroll au sein de documentbody_around */
if ( reference == document.getElementById("documentbody_around") ) {
var scrollY = getY(reference);
} else {
var scrollY = getY();
}
/* determiner resolution ecran au chargement */
if ( window.innerWidth >= 1000 ) {
widthLimitState = true;
} else {
widthLimitState = false;
}
if ( scrollY >= scrollLimit ) {
if ( scrollLimitState == undefined ) {
scrollLimitState = false;
}
if ( scrollLimitState == false ) {
if (widthLimitState == true) {
clone_namecompany_fiche("fixed");
}
scrollLimitState = true;
}
add_class(identiteFloatable, "isFixed");
} else {
if ( scrollLimitState == true ) {
if (widthLimitState == true) {
clone_namecompany_fiche("no-fixed");
}
scrollLimitState = false;
}
remove_class(identiteFloatable, "isFixed");
}
add_event(reference, "scroll", function() {
/* determiner resolution ecran au chargement */
if ( window.innerWidth >= 1000 ) {
widthLimitState = true;
} else {
widthLimitState = false;
}
/* determiner a nouveau resolution ecran sur safari -> debug sinon widthLimitState passe a false tout le temps */
if ( navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome') == -1 ) {
if ( window.innerWidth >= 1000 ) {
widthLimitState = true;
} else {
widthLimitState = false;
}
}
/* page carto -> recuperer scroll au sein de documentbody_around */
if ( reference == document.getElementById("documentbody_around") ) {
var scrollY = getY(reference);
} else {
var scrollY = getY();
}
/* redefinir les positions des elements une fois tous les elements charges */
if ( scrollY > 0 && scrollY < 100 ) {
identiteTop = identite.offsetTop;
identiteHeight = identite.offsetHeight;
identiteFloatable = document.getElementById('identite_fiche_floatable');
scrollLimit = identiteTop + identite.offsetHeight - 80 - 49 - 3; /* 80px = hauteur de identiteFloatable / / 49px = hauteur headerFloatable / 3px = hauteur ombre portee de identiteFloatable */
}
if ( scrollY >= scrollLimit ) {
if ( scrollLimitState == false ) {
if (widthLimitState == true) {
clone_namecompany_fiche("fixed");
}
scrollLimitState = true;
}
add_class(identiteFloatable, "isFixed");
} else {
if ( scrollLimitState == true ) {
if (widthLimitState == true) {
clone_namecompany_fiche("no-fixed");
}
scrollLimitState = false;
}
remove_class(identiteFloatable, "isFixed");
}
});
}
/* remplir le name fixed */
function clone_namecompany_fiche(state) {
var origin = document.getElementById("company_identity");
var logoAdressOrigin = document.getElementById("identite_logo_and_adress");
var nameCompanyOrigin = document.getElementById("identite_name");
var ctaOrigin = document.getElementById("identitelien");
var cible = document.getElementById("identite_fiche_floatable");
var logoAdressCible = cible.getElementsByClassName("FicheIdentiteFloatable__Details")[0];
var nameCompanyCible = cible.getElementsByClassName("FicheIdentiteFloatable__Company__Content")[0];
var ctaCible = cible.getElementsByClassName("FicheIdentiteFloatable__Actions")[0];
var ctaTel = document.getElementById("identitetel");
/* fermer aboutement tel */
remove_class(document.getElementById("popup_aboutementtel"), "isVisible");
document.getElementById("popup_aboutementtel").style.width = "";
if ( state == "fixed" ) {
/* bloquer hauteur name societe */
origin.style.height = origin.offsetHeight + "px";
/* remplir name fixed */
logoAdressCible.innerHTML = logoAdressOrigin.innerHTML;
logoAdressOrigin.innerHTML = "";
nameCompanyCible.innerHTML = nameCompanyOrigin.innerHTML;
nameCompanyOrigin.innerHTML = "";
ctaCible.innerHTML = ctaOrigin.innerHTML;
ctaOrigin.innerHTML = "";
setTimeout(function(){
/* spliter le nom si trop long */
var width = document.getElementsByClassName("FicheIdentiteFloatable__Company")[0];
width = width.offsetWidth;
width = width - 70;
if ( document.getElementById("identite_deno") ) {
add_class(document.getElementById("identite_deno"), "split");
document.getElementById("identite_deno").style.maxWidth = width + "px";
}
/* afficher adresse complete au survol */
adresscompany_hover();
/**** DEBUT COMMENT JS TEMPORAIRE ****/
/* test A/B sur deno des cta */
//choose_deno_cta();
/**** FIN COMMENT JS TEMPORAIRE ****/
}, 5);
} else if ( state == "no-fixed" ) {
origin.style.height = "";
logoAdressOrigin.innerHTML = logoAdressCible.innerHTML;
logoAdressCible.innerHTML = "";
nameCompanyOrigin.innerHTML = nameCompanyCible.innerHTML;
nameCompanyCible.innerHTML = "";
ctaOrigin.innerHTML = ctaCible.innerHTML;
ctaCible.innerHTML = "";
/* remettre le nom en entier */
remove_class(document.getElementById("identite_deno"), "split");
document.getElementById("identite_deno").style.maxWidth = "";
/* remettre les cta comme a l'origine */
reverse_deno_cta();
}
init_resume_onglets();
}
/* remettre les cta comme a l'origine */
function reverse_deno_cta() {
var context = document.getElementById("identitelien");
var cta = context.getElementsByClassName("societeCtaText");
/* afficher le text des cta */
for ( var i = 0; i < cta.length; i++) {
remove_class(cta[i], "isHidden");
}
}
/* afficher adresse complete au survol */
function adresscompany_hover() {
var adress = document.getElementById("companyAdress");
var adressDetail = document.getElementById("adressDetail");
var hover = document.getElementById("adressHover");
add_event(adress, "mouseenter", function () {
add_class(hover, "show");
setTimeout(function(){
add_class(hover, "visible");
}, 50);
});
add_event(adress, "mouseleave", function () {
remove_class(hover, "visible");
setTimeout(function(){
remove_class(hover, "show");
}, 50);
});
}
/* Menu entreprise desktop en fixed */
function fixed_menuentreprise_desktop() {
var content = document.getElementsByClassName('FicheContent__ContentAround')[0];
var contentTop = content.offsetTop;
var colLeft = document.getElementsByClassName("FicheContent__ContentLeft")[0];
var menu = document.getElementById('menuentreprise_desktop');
var menuContent = menu.getElementsByTagName("ul")[0];
var elmtsFixedHeight = 80 + 49 + 3;
var scrollLimit = contentTop - elmtsFixedHeight;
/* dans quel element recuperer le scroll --> page carto ne recupere pas scroll au sein de window */
if ( document.getElementById("fiche_carto") && document.getElementById("presentation_carto_banner") ) {
var reference = document.getElementById("documentbody_around");
} else {
var reference = window;
}
/* page carto -> recuperer scroll au sein de documentbody_around */
if ( reference == document.getElementById("documentbody_around") ) {
var scrollY = getY(reference);
} else {
var scrollY = getY();
}
/* determiner position du footer */
if ( document.getElementById("fiche_carto") ) { /* page carto -> arreter le menu a la description des avantages carto */
if ( document.getElementById('avantages_carto') ) { /* si pas abonne */
var footer = document.getElementById('avantages_carto');
} else { /* si abonne */
var footer = document.getElementById('footer-compte');
}
} else { /* autres pages -> arreter le menu au footer */
var footer = document.getElementById('footer');
}
if ( footer ) {
var footerTop = footer.offsetTop;
} else {
var footerTop = window.innerHeight;
}
/* recalcul au scroll */
var calcul = 0;
add_event(reference, "scroll", function() {
/* refaire les calculs tous les 50ms */
if ( calcul <= (Date.now() - 50) ) {
/* page carto -> recuperer scroll au sein de documentbody_around */
if ( reference == document.getElementById("documentbody_around") ) {
scrollY = getY(reference);
} else {
scrollY = getY();
}
/* redefinir les positions des elements */
content = document.getElementsByClassName('FicheContent__ContentAround')[0];
contentTop = content.offsetTop;
elmtsFixedHeight = 80 + 49 + 3; /* 80px = hauteur de identiteFloatable / 49px = hauteur de headerFloatable + 3px = ombre portee */
scrollLimit = contentTop - elmtsFixedHeight;
/* determiner position du footer */
if ( document.getElementById("fiche_carto") ) { /* page carto -> arreter le menu a la description des avantages carto */
if ( document.getElementById('avantages_carto') ) { /* si pas abonne */
footer = document.getElementById('avantages_carto');
} else { /* si abonne */
//footer = document.getElementById('carto_caption');
footer = document.getElementById('footer-compte');
}
} else { /* autres pages -> arreter le menu au footer */
footer = document.getElementById('footer');
}
if ( footer ) {
footerTop = footer.offsetTop;
} else {
var footerTop = window.innerHeight;
}
/* calcul margin-top du menu quand il arrive au niveau du footer */
var marginTopMenu = (footerTop - 32) - menuContent.offsetHeight - contentTop;
}
/* passage du menu en fixed */
if ( scrollY >= scrollLimit ) {
/* ne rien faire si menu plus grand q reste de la page */
if (document.getElementById("container") && menuContent && menuContent.offsetHeight > document.getElementById("container").offsetHeight && menuContent.offsetHeight > document.getElementById("coldroite").offsetHeight) {
return;
}
/* donner hauteur au menu en fonction resolution */
if ( menuContent.offsetHeight > (window.innerHeight - elmtsFixedHeight) ) {
var menuHeight = window.innerHeight - elmtsFixedHeight;
menuContent.style.height = menuHeight + "px";
}
/* reverifier position footer */
if ( (scrollY + window.innerHeight) >= (footerTop - 200) && (scrollY + window.innerHeight) < (footerTop - 35) ) {
if ( document.getElementById("fiche_carto") ) { /* page carto -> arreter le menu a la description des avantages carto */
if ( document.getElementById('avantages_carto') ) { /* si pas abonne */
footer = document.getElementById('avantages_carto');
} else { /* si abonne */
footer = document.getElementById('footer-compte');
}
} else { /* autres pages -> arreter le menu au footer */
footer = document.getElementById('footer');
}
if (footer) {
footerTop = footer.offsetTop;
}
}
/* bloquer le menu au niveau du footer */
if ( (scrollY + elmtsFixedHeight + menuContent.offsetHeight) >= (footerTop - 32) ) {
remove_class(menuContent, "isFixed");
menu.style.marginTop = marginTopMenu + "px";
menuContent.style.top = "";
menu.style.height = "";
} else {
add_class(menuContent, "isFixed");
menuContent.style.top = elmtsFixedHeight + "px";
menu.style.marginTop = "";
menu.style.height = "";
}
}
/* passage du menu en float */
else {
remove_class(menuContent, "isFixed");
menuContent.style.top = "";
menuContent.style.height = "";
}
});
}
function active_menuentreprise_desktop() {
var nav = document.getElementById("menuentreprise_desktop");
nav = nav.getElementsByTagName("ul")[0];
var li = nav.getElementsByTagName("li");
for ( var i = 0; i < li.length; i++) {
if ( li[i].getAttribute("class").indexOf("isActive") != -1 ) {
add_class(li[i-1], "isLinkBefore");
add_class(li[i+1], "isLinkAfter");
}
}
}
/********************************************************/
/*********************** ACTU FICHE *********************/
/********************************************************/
var actu_fiche_page_nb = 1;
function get_actu_fiche() {
var query_actu = '/cgi-bin/actu-fiche-page?';
if (is_dirigeant()) {
var tags = window.location.href.split('/');
query_actu += 'dirig=' + tags[tags.length - 1].replace('.html', '').split('#')[0];
} else {
var siren = document.getElementById("identite-siren"),
siren = siren.getAttribute("data-siren");
query_actu += 'rncs=' + siren;
}
send_query(query_actu + '&p=' + actu_fiche_page_nb, function(e) {
if (e.readyState == 4 && e.status == 200 && e.responseText) {
var m;
var ret = JSON.parse(e.responseText);
var news = ret['news'];
var tmp;
if (news) {
var create_article = function (node, data) {
node.children[0].children[1].children[0].innerHTML = data['title'];
node.children[0].children[1].children[0].href = data['link'];
node.children[0].children[0].children[0].innerHTML = data['date'] + ' à ' + data['time'];
node.children[0].children[0].children[0].href = 'https://www.societe.com/pages/les-actualites-du/' + data['datelink'] + '.html';
};
tmp = document.getElementsByClassName('actufichearticles');
if (!tmp) {
document.getElementById("moreactu").style.display = "none";
return ;
}
for (var i = 0; i < news.length; i+=2) {
m = tmp[0].cloneNode(true);
create_article(m.children[0], news[i]);
if (i + 1 == news.length) {
m.removeChild(m.children[1]);
} else {
create_article(m.children[1], news[i + 1]);
}
document.getElementById('actu-fiche').children[1].appendChild(m);
}
actu_fiche_page_nb++;
}
if (ret['last'] == true || ret['last'] == undefined) {
document.getElementById("moreactu").style.display = "none";
}
}
});
}
/* ======================================= Liste liens resume ==================================== */
function Onglet (bar, id, open, close) {
var self = this;
this.bar = bar;
this.userOpen = open;
this.userClose = close;
this.open = persoOpen;
this.close = persoClose;
this.closed = true;
add_event(document.getElementById(id), "click", function(event) {
var e = event || window.event;
var target = e.target || e.srcElement;
self.bar.manageclick(parentHasId(target, ['buttsurveiller', 'contactAnnuaire', 'identitetel']));
});
function persoOpen() {
this.closed = false;
this.userOpen();
}
function persoClose() {
this.closed = true;
this.userClose();
}
}
function OngletBar() {
this.onglets = {};
this.addOnglet = addOnglet;
this.manageclick = manageclick;
function addOnglet (id, open, close) {
var onglet = new Onglet(this, id, open, close);
this.onglets[id] = onglet;
}
// function manageclick(event) {
function manageclick(id) {
if (id == null) {
return;
}
var ouverture = this.onglets[id].closed;
for (var e in this.onglets) {
var onglet = this.onglets[e];
if (e == id) {
if (ouverture == true) {
onglet.open();
} else {
onglet.close();
}
} else {
if (ouverture == true) {
onglet.close();
}
}
}
}
}
var bar = bar || new OngletBar();
function init_resume_onglets() {
bar = bar || new OngletBar();
bar.addOnglet('buttsurveiller', openSurveillance, closeSurveillance);
bar.addOnglet('contactAnnuaire', displayContactAnnuaire, asyncCloseContactCompany);
bar.addOnglet('identitetel', openAboutementOnglet, closeAboutementOnglet);
}
/* section identite fiche */
function init_identity_company() {
var name = document.getElementById("identite_deno");
var nameLogo = document.getElementById("identite_name");
var contentLogo = document.getElementById("identite_logo_content");
var contentLogo2 = document.getElementById("identite_logo_content2");
var logo = document.getElementById("identite_logo");
var logoImg = document.getElementById("identite_logo_img");
var logoImg2 = document.getElementById("identite_logo_img2");
var logoImgTemp = new Image();
var ctaContent = document.getElementById("identitelien");
//var ctaButton = ctaContent.getElementsByClassName('societeCtaIcon');
var ctaButton = ctaContent.getElementsByClassName('CtaButton');
/* ouverture et fermeture cta */
//init_resume_onglets();
/* font-size nom entreprise en fonction nb caracteres */
if ( name.innerHTML.length > 33 ) {
nameLogo.classList.add("small");
}
/* gestion mise en page en fonction presence/absence logo */
if ( logo != undefined && logo.style.visibility == "hidden" ) {
add_class(contentLogo, "noLogo");
add_class(contentLogo2, "noLogo");
add_class(nameLogo, "noLogo");
add_class(ctaContent, "noLogo");
}
/* gestion mise en page en fonction orientation logo */
if ( logoImg != undefined ) {
logoImgTemp.src = logoImg.src; /* recuperer logo a taille reelle */
if ( logoImgTemp.width > logoImgTemp.height ) {
add_class(logoImg, "landscape");
add_class(logoImg2, "landscape");
}
}
/* si seulement cta surveiller entreprise -> cta + gros */
for ( var i = 0; i < ctaButton.length; i++ ) {
if ( ctaButton.length == 1 ) {
add_class(ctaContent, "one_cta");
}
}
}
//var globAboutementTelOpen = 0;
/* Gestion reload des pages home + fiche */
/*function reload_page() {
location.reload();
}*/
/*function ReloadAuto(loaded) {
var _this = this;
this.timeout = null;
this.time = 1200000; // 20 * 60 * 1000
this.auth_pathnames = [ "^/societe/", "^(/)*$" ];
this.auth_page = false;
this.init = init;
this.setup = setup;
this.refresh = refresh;
this.keymanage = keymanage;
this.kill = kill;
function init(isloaded) {
if (this.timeout != null) {
return;
}
if (this.auth_page == false) {
var re = new RegExp(this.auth_pathnames.join('|'), "i");
if (window.location.pathname.match(re) != null) {
this.auth_page = true;
}
}
if (typeof(isloaded) == "boolean" && isloaded == true) {
this.setup();
} else {
add_event(document, "readystatechange", _this.setup);
}
}
function setup() {
if (_this.auth_page == false || _this.timeout != null) {
return;
}
_this.refresh();
add_event(window, "mousemove", _this.refresh);
add_event(window, "touchmove", _this.refresh);
add_event(window, "keyup", _this.keymanage);
add_event(document.getElementById("buttsurveiller"), "click", _this.kill);
add_event(document.getElementById("contactAnnuaire"), "click", _this.kill);
add_event(document.getElementById("input_search"), "focus", _this.kill);
}
function refresh() {
if (_this.auth_page == false || _this.timeout != null) {
clearTimeout(_this.timeout);
}
_this.timeout = setTimeout(reload_page, _this.time);
}
function kill() {
clearTimeout(_this.timeout);
_this.timeout = null;
clearTimeout(_this.timetest);
_this.timetest = null;
remove_event(window, "mousemove", _this.refresh);
remove_event(window, "touchmove", _this.refresh);
remove_event(window, "keyup", _this.keymanage);
remove_event(document.getElementById("buttsurveiller"), "click", _this.kill);
remove_event(document.getElementById("contactAnnuaire"), "click", _this.kill);
remove_event(document.getElementById("input_search"), "focus", _this.kill);
}
function keymanage(event) {
_this.refresh();
}
this.init(loaded);
return this;
}*/
/*var reloader = new ReloadAuto(completeload);*/
function direct_download(elem, type) {
var url,
label;
switch(type) {
case 'immat':
if(typeof elem != "object" || typeof elem.hasAttribute('data-siren') == "undefined" || elem.getAttribute('data-siren') == "") {
return;
}
var siren = elem.getAttribute('data-siren');
url = "https://data.inpi.fr/export/companies?format=pdf&ids=[%22" + siren + "%22]";
label = "Clicks Immatriculation RCS";
break;
case 'avis':
if(typeof elem != "object" || typeof elem.hasAttribute('data-siret') == "undefined" || elem.getAttribute('data-siret') == "") {
return;
}
var siret = elem.getAttribute('data-siret');
url = "https://api-avis-situation-sirene.insee.fr/identification/pdf/" + siret;
label = "Clicks Avis Situation SIRENE";
break;
default:
return;
}
window.open(url, '_blank');
}
/********************************************************/
/*********************** FULL FICHE *********************/
/********************************************************/
function init_full() {
var fullfiche = document.getElementById('fullfiche');
display_num(fullfiche);
}
/* La vue qrcode */
function init_qrcode() {
var help_qrcode = document.getElementById('activeqrcode');
hide('helpqrcode');
add_event(help_qrcode, "click", function(){display_or_hide('helpqrcode');});
resize_qrcode();
add_event(window, "resize", resize_qrcode);
// display('qrcode');
}
function resize_qrcode() {
var qrcode = document.getElementById('qrcode');
var qrcodemobile = document.getElementById('qrcodemobile');
var qrcodedesktop = document.getElementById('qrcodedesktop');
if (is_phone_device()) {
move_block(qrcode, qrcodemobile);
} else {
move_block(qrcode, qrcodedesktop);
}
}
/********************************************************/
/********************** SOCIAUX *************************/
/********************************************************/
function init_sociaux() {
var select = document.getElementById('selectsociaux');
if (select) {
add_event(select, 'change', function(){window.location.href = select[select.selectedIndex].value;});
}
}
function init_edito_summary() {
var edito = document.getElementById('edito-summary');
if (!edito) {
return;
}
var links = edito.getElementsByTagName('a');
for (var i = 0; i < links.length; i++) {
var tmp = links[i].href;
add_event(links[i], "click", function(event) {
var e = event || window.event;
var target = e.target || e.srcElement;
track_outbound('news', target);
return false;
});
}
}
function init_edition() {
init_actu();
add_event(window, "resize", function(){resize_edition();});
}
function init_actu() {
var pos_desktop = document.getElementById('actucarreafter');
var pos_mobile = document.getElementById('actucarre');
var actu = document.getElementById('actubloc');
if (is_desktop_device()) {
move_block(actu, pos_desktop);
} else {
move_block(actu, pos_mobile);
}
}
function resize_edition() {
init_actu();
}
/* La vue chiffre clef */
function init_chiffreclef() {
var chiffre = document.getElementById('chiffrecle');
var tableau = document.getElementById('chiffre');
display_num(chiffre);
if (chiffre) {
build_table_chiffre(chiffre);
display_num(chiffre);
}
add_event(window, "resize", function() {build_table_chiffre(chiffre); display_num(chiffre);});
}
/* vue synthese */
function init_synthese() {
var synthese = document.getElementById('synthese');
if (synthese != null) {
var numbers = synthese.getElementsByTagName("span");
for (var e in numbers) {
if (numbers[e].className != undefined && numbers[e].className.search("synthesenumber") != -1) {
numbers[e].innerHTML = number_presenter(numbers[e].innerHTML);
}
}
}
}
/* onclick sur icono copier */
function copy_clipboard(element) {
var id = element.getAttribute("id"),
idCut = id.split("_"),
idCut = idCut[0],
msg = document.getElementById(idCut + "_action"),
msgOrigin = msg.getAttribute("data-content-origin"),
msgModif = msg.getAttribute("data-content"),
number = document.getElementById(idCut + "_number");
/* modifier le msg */
msg.classList.add("isVisible");
/* passer le picto en vert */
add_class(document.getElementById(idCut + "_icon"), "active");
/* copier contenu input dans presse papier */
document.getElementById(idCut + "_copy").select();
document.execCommand("copy");
/* faire disparaitre msg */
setTimeout(function() {
/* faire disparaitre msg */
remove_class(document.getElementById(idCut + "_icon"), "active");
msg.classList.remove("isVisible");
}, 2000);
}
function copy_clipboardOLD(element) {
var id = element.getAttribute("id"),
idCut = id.split("_"),
idCut = idCut[0],
msg = document.getElementById(idCut + "_action"),
msgOrigin = msg.innerHTML,
number = document.getElementById(idCut + "_number");
/* modifier le msg */
msg.innerHTML = "Copié !";
msg.style.opacity = "1";
/* passer le picto en vert */
add_class(document.getElementById(idCut + "_icon"), "active");
/* copier contenu input dans presse papier */
document.getElementById(idCut + "_copy").select();
document.execCommand("copy");
/* faire disparaitre msg */
setTimeout(function() {
/* faire disparaitre msg */
remove_class(document.getElementById(idCut + "_icon"), "active");
if ( msg.style.opacity == "1" ) {
msg.style.opacity = "";
setTimeout(function() {
msg.innerHTML = msgOrigin;
}, 300);
} else {
msg.innerHTML = msgOrigin;
}
}, 2000);
}
/* ouverture popup mentions contrat */
function open_popup_copy_mentions() {
remove_class(document.getElementById("popup_copy_mentions"), "isHidden");
/* mise en forme des nb */
var mentions = document.getElementById("mentions-contrat");
display_num(mentions);
var numbers = mentions.getElementsByTagName("span");
for (var e in numbers) {
if (numbers[e].className != undefined && numbers[e].className.search("synthesenumber") != -1) {
numbers[e].innerHTML = number_presenter(numbers[e].innerHTML);
}
}
}
/* fermeture popup mentions contrat */
function close_popup_copy_mentions() {
add_class(document.getElementById("popup_copy_mentions"), "isHidden");
/* remettre btn a son etat initial */
setTimeout(function() {
btn_appear("actived");
}, 300);
}
/* copier mentions contrat */
function copy_mentions() {
/* copier mentions -> coller dans input */
var content = document.getElementById("mentions-contrat").innerHTML;
content = content.replace(//g,"");
content = content.replace(/<\/strong>/g,"");
content = content.replace(//g,"");
content = content.replace(//g,"");
content = content.replace(//g,"");
content = content.replace(/<\/span>/g,"");
content = content.replace(/ /g," ");
content = content.trim();
document.getElementById("mentions-contrat-copy").value = content;
/* copier contenu input dans le presse papier */
document.getElementById("mentions-contrat-copy").select();
document.execCommand("copy");
/* modifier apparence btn */
btn_appear("disabled");
}
/* modifier apparence btn */
function btn_appear(context) {
var button = document.getElementById("mentions-contrat-button");
var icon = button.getElementsByTagName("i")[0];
var txt = button.getElementsByTagName("span")[0];
if ( context == "disabled") {
add_class(button, "isDisabled");
icon.innerHTML = "check";
txt.innerHTML = "Mentions copiées";
} else {
remove_class(button, "isDisabled");
icon.innerHTML = "content_copy";
txt.innerHTML = "Copier les mentions";
}
}
/* afficher bloc autopromo dans la liste des marques */
function display_autopromo_marques() {
let target = document.getElementById("marques_list"),
abo = target.getAttribute("data-abo");
/* seulement si pas abo */
if ( abo == "no-abo" ) {
let marques = document.getElementsByClassName("soCard__box"),
table = [];
/* recuperer id des blocs autopromo a supprimer*/
for ( let m = 0; m < marques.length; m++ ) {
let id = marques[m].id,
idCut = id.substring(7, id.length);
/* garder autopromo apres 2 marques + toutes les 5 marques */
if ( m == 0 || ( m > 1 && m % 5 != 0 ) ) {
table.push("promo_offers_" + idCut);
}
}
/* supprimer les blocs autopromo */
for ( let t = 0; t < table.length; t++) {
target.removeChild(document.getElementById(table[t]));
}
}
}
/* gestion bloc entreprises citees */
function init_entr_citee() {
/* afficher blocs entreprises citees caches */
add_event(document.querySelector('.EntrepriseCitee__display'), "click", function() {
display_entr_citee();
});
/* afficher detail d'une entreprise citee
/*let cta = document.querySelectorAll(".EntrepriseCitee__more");
for ( let c = 0; c < cta.length; c++ ) {
add_event(cta[c], "click", function() {
recup_data_entr_citee_detail();
});
}*/
/* revenir a l'affichage fiche
add_event(document.getElementById("entreprisescitees_return_fiche"), "click", function() {
display_entr_citee_detail("fiche");
});*/
}
/* afficher blocs entreprises citees caches */
function display_entr_citee() {
let blocs = document.querySelectorAll('.EntrepriseCitee__entreprise');
/* afficher blocs caches */
for ( var b = 0; b < blocs.length; b++ ) {
if ( blocs[b].getAttribute("class").indexOf("isHidden") != -1 ) {
blocs[b].classList.remove("isHidden");
}
}
/* cacher lien */
document.querySelector('.EntrepriseCitee__display').classList.add("isHidden");
}
/* afficher detail d'une entreprise citee */
function recup_data_entr_citee_detail(id) {
/*
si bloc "entreprisescitees_details" contient deja toutes les datas au chargement de la page
--> positionner le bloc "entreprisescitees_details_hidden" dans la view "view-entreprises-citees.html"
1- copier la data de l'entreprise voulue qui se trouve dans le bloc "entreprisescitees_details_hidden"
2- coller la data dans le bloc "entreprisescitees_details_visible" qui se trouve dans la view "view-fiche-content.html"
3- cacher le bloc "container"
4- rendre le bloc "entreprisescitees_details_visible" visible
*/
/* coller les datas */
let cible = document.querySelector("#entreprisescitees_details_visible").querySelector(".EntrepriseCitee__details"),
template = document.querySelector("#entreprisescitees_details_hidden");
cible.innerHTML = template.innerHTML;
/* cacher contenu fiche et afficher detail entreprises citees */
display_entr_citee_detail("detail");
/*---------------------------------------------------*/
/* si le bloc "entreprisescitees_details" est a remplir avec les datas reçues par JSON
--> positionner le bloc "entreprisescitees_details_hidden" dans la view "view-fiche-content.html"
1- inserer la data (depuis le JSON) dans le bloc "entreprisescitees_details_visible" qui se trouve dans la view "view-fiche-content.html" (a changer par rapport au cas ci-dessus)
2- cacher le bloc "container"
3- rendre le bloc "entreprisescitees_details_visible" visible
*/
/*---------------------------------------------------*/
/* repositionner scroll */
window.scroll(0, 0);
/* reinitialiser menu mobile */
let menuMobile = document.getElementById("menuentreprise_mobile");
if ( menuMobile && menuMobile.className.indexOf("isFixed") != -1 ) {
menuMobile.classList.remove("isFixed");
}
/* reinitialiser col droite desktop */
/* panier */
document.getElementById("recbasketcontent").classList.remove("floatable");
/* pub 1 */
if ( document.getElementsByClassName('mpu1')[0] ) {
document.getElementsByClassName('mpu1')[0].style.position = "";
document.getElementsByClassName('mpu1')[0].style.top = "";
}
/* actu */
if ( document.getElementById("actu") ) {
document.getElementById("actu").style.position = "";
document.getElementById("actu").style.top = "";
}
/* pub 2 */
if ( document.getElementsByClassName('mpu2')[0] ) {
document.getElementsByClassName('mpu2')[0].style.position = "";
document.getElementsByClassName('mpu2')[0].style.top = "";
}
/* relancer positionnement col droite */
add_event(window, "scroll", function() {
scroll_panier_fiche(document.getElementById("recbasketcontent"));
});
}
/* swiper entre contenu fiche et detail entreprises citees */
function display_entr_citee_detail(action) {
var childElement = document.querySelector("#container").children;
/* afficher detail entreprises citees*/
if ( action == "detail" ) {
/* cacher contenu fiche */
for ( let c = 0; c < childElement.length; c++) {
if ( childElement[c].id != "entreprisescitees_details_visible" ) {
childElement[c].style.display = "none";
}
}
/* afficher le detail */
document.querySelector("#entreprisescitees_details_visible").classList.remove("isHidden");
}
/* afficher contenu fiche */
else if ( action == "fiche" ) {
/* afficher contenu fiche */
for ( let c = 0; c < childElement.length; c++) {
if ( childElement[c].id != "entreprisescitees_details_visible" ) {
childElement[c].style.display = "";
}
}
/* cacher le detail */
document.querySelector("#entreprisescitees_details_visible").classList.add("isHidden");
/* vider detail */
/* coller les datas */
let cible = document.querySelector("#entreprisescitees_details_visible").querySelector(".EntrepriseCitee__details");
cible.innerHTML = "";
}
}
/* =========== GESTION MENU FOOTER ================ */
function open_footer_menu() {
var eltTitreFooter = get_elementsbyclassname(document, 'Footer__menu');
for(var i = 0; i < eltTitreFooter.length; i++) {
add_event(eltTitreFooter[i], 'click', function(){
var w = window.innerWidth
|| document.documentElement.clientWidth
|| document.body.clientWidth;
if(w < 768){
if(is_class_exist(this, 'open')){
remove_class(this, 'open');
} else {
add_class(this, 'open');
}
}
});
}
}/********************************************************/
/*********** Gestion des formulaires generiques *********/
/********************************************************/
/* Gestion disparition des placeholder au click */
function form_placeholder() {
/* On gere les placeholders aux focus / blur */
var inputPlaceholder= get_elementsbyclassname(document, 'input-placeholder');
for(var i = 0; i < inputPlaceholder.length; i++) {
/* Gestion des placeholders */
var getPlaceholder = inputPlaceholder[i].getAttribute('placeholder');
event_input(inputPlaceholder[i], getPlaceholder);
/* Gestion des mini-labels */
add_event(inputPlaceholder[i], 'blur', function(){
if(this.value != '') {
add_class(this, 'filled');
} else {
remove_class(this, 'filled');
}
});
}
}
/* affichage message d'erreur si input vide */
function verif_empty_input(id) {
if ( document.getElementById(id) != undefined ) {
var input = document.getElementById(id);
var inputError = document.getElementById(id + "_error");
var inputErrorMsg = document.getElementById(id + "_error_msg");
if (id == "create_password_confirm") {
var password = document.getElementById("create_password"),
confirmPasswd = document.getElementById("create_password_confirm");
confirmError = document.getElementById("create_password_confirm_error"),
confirmErrorMsg = document.getElementById("create_password_confirm_error_msg");
if(password.value == confirmPasswd.value && password.value != 0) {
hide_input_error(id);
return true;
} else {
if(!is_class_exist(confirmPasswd, "red-border")) {
display_input_error(id, "Ce champ est obligatoire");
}
return false;
}
}
/* si value input vide */
if ( input.value.length == 0 ) {
remove_class(input, "filled");
display_input_error(id, "Ce champ est obligatoire");
return false;
}
/* si value input renseigne */
else {
add_class(input, "filled");
hide_input_error(id);
return true;
}
}
}
/* verif validite adresse mail */
function verif_mail(id){
var mailRegexp = new RegExp('^[a-z0-9+]+([_|\.|-]{1}[a-z0-9+]+)*@[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*[\.]{1}[a-z]{2,10}$', "i");
if ( document.getElementById(id) != undefined ) {
var mail = document.getElementById(id);
if ( null == mailRegexp.exec(mail.value) ) {
return false;
} else {
return true;
}
}
}
/* Afficher/supprimer message d'erreur selon validite input email */
function display_mail_error(id){
if ( document.getElementById(id) != undefined ) {
var mail = document.getElementById(id);
var mailError = document.getElementById(id + "_error");
var mailErrorMsg = document.getElementById(id + "_error_msg");
/* si input email vide */
if ( mail.value.length == 0 ) {
display_input_error(id, "Ce champ est obligatoire");
add_class(mail, "red-border"); /* ajouter border red de l'input si erreur de saisie */
add_class(mailError, "no-info"); /* afficher msg d'erreur en dessous input si erreur de saisie */
mailErrorMsg.innerHTML = "Ce champ est obligatoire."; /* personnaliser msg d'erreur */
return false;
}
/* si input email renseigne */
else {
/* si email non valide */
if ( !verif_mail(id) ) {
display_input_error(id, "L'adresse mail n'est pas valide.");
add_class(mail, "red-border"); /* ajouter border red de l'input si erreur de saisie */
add_class(mailError, "no-info"); /* afficher msg d'erreur en dessous input si erreur de saisie */
mailErrorMsg.innerHTML = "L'adresse mail n'est pas valide."; /* personnaliser msg d'erreur */
return false;
} else if (verif_mail_microsoft(id)){
display_input_error(id, "Nous ne pouvons malheureusement plus accepter d'inscription depuis les plateformes suivantes : hotmail, outlook, live et msn. Nous vous remercions d'utiliser une autre adresse e-mail.");
add_class(mail, "red-border"); /* ajouter border red de l'input si erreur de saisie */
add_class(mailError, "no-info"); /* afficher msg d'erreur en dessous input si erreur de saisie */
mailErrorMsg.innerHTML = "Nous ne pouvons malheureusement plus accepter d'inscription depuis les plateformes suivantes : hotmail, outlook, live et msn. Nous vous remercions d'utiliser une autre adresse e-mail."; /* personnaliser msg d'erreur */
return false;
} else {
hide_input_error(id);
remove_class(mail, "red-border"); /* enlever border red de l'input si erreur de saisie auparavant */
remove_class(mailError, "no-info"); /* enlever msg d'erreur en dessous input si erreur de saisie auparavant */
mailErrorMsg.innerHTML = ""; /* vider msg d'erreur */
return true;
}
}
}
}
/* au keyup : disparition msg erreur si correction input email */
function keyup_email(id) {
if ( document.getElementById(id) != undefined ) {
var mail = document.getElementById(id);
var mailError = document.getElementById(id + "_error");
var mailErrorMsg = document.getElementById(id + "_error_msg");
if( verif_mail(id) && !verif_mail_microsoft(id) ) {
hide_input_error(id);
remove_class(mail, "red-border"); /* enlever border red de l'input si erreur de saisie auparavant */
remove_class(mailError, "no-info"); /* enlever msg d'erreur en dessous input si erreur de saisie auparavant */
mailErrorMsg.innerHTML = ""; /* vider msg d'erreur */
}
if ( id == "profil_email" ) {
var profilForm = document.getElementById('create_confirm_form');
var profilEmail = document.getElementById('profil_email');
if ( profilEmail != undefined ) {
if ( compteProfilEmail != profilEmail.value ) {
profilForm.classList.remove('isHidden');
profilForm.classList.remove('isDisabled');
} else {
profilForm.classList.add('isHidden');
profilForm.classList.add('isDisabled');
}
}
}
}
}
/* fonction de verification mail microsoft, reactivation depuis un mail microsoft */
function verif_mail_microsoft(id) {
/*
if (document.getElementById(id) != undefined) {
var mail = document.getElementById(id).value;
if (mail) {
if (mail.indexOf("@hotmail.") != -1) {
return (true);
}
if (mail.indexOf("@outlook.") != -1) {
return (true);
}
if (mail.indexOf("@msn.com") != -1) {
return (true);
}
if (mail.indexOf("@live.fr") != -1) {
return (true);
}
}
}
*/
return (false);
}
/* au keyup : disparition msg erreur si correction input */
function keyup_input(id) {
if ( document.getElementById(id) != undefined ) {
var input = document.getElementById(id);
var inputError = document.getElementById(id + "_error");
var inputErrorMsg = document.getElementById(id + "_error_msg");
if( !verif_empty_input(id) ) {
hide_input_error(id);
}
}
}
/* verifier que la confirmation du mdp est correcte a la saisie */
function confirm_password(id) {
var password = document.getElementById(id),
confirmPasswd = document.getElementById(id+ "_confirm"),
confirmError = document.getElementById(id+ "_confirm_error"),
confirmErrorMsg = document.getElementById(id+ "_confirm_error_msg");
if(confirmPasswd.value.length > 4) {
if(password.value == confirmPasswd.value) {
hide_input_error(id+ "_confirm");
display_input_check(id+ "_confirm");
return true;
} else {
display_input_error(id+ "_confirm", "Les mots de passe ne sont pas identiques.")
hide_input_check(id+ "_confirm");
return false;
}
} else {
if(confirmPasswd.value.length == 0) {
display_input_error(id+ "_confirm", "Veuillez confirmer le mot de passe.");
hide_input_check(id+ "_confirm");
return false;
}
}
}
/* active un input desactive */
function enable_input(id) {
var input = document.getElementById(id);
remove_class(input, "isDisabled");
/* si option pour afficher mdp */
if(document.getElementById(id+ '_show_password')) {
document.getElementById(id+ '_show_password').classList.remove("isDisabled");
}
}
/* desactive un input actif */
function disable_input(id) {
var input = document.getElementById(id);
if(!is_class_exist(input, "isDisabled")) {
add_class(input, "isDisabled");
}
/* si option pour afficher mdp */
if(document.getElementById(id+ '_show_password')) {
document.getElementById(id+ '_show_password').classList.add("isDisabled");
}
}
/* affiche une icone check dans l'input si value valide */
function display_input_check(id) {
var check = document.getElementById(id + '_valid');
remove_class(check, "isHidden");
}
/* masque une icone check dans l'input value invalide */
function hide_input_check(id) {
var check = document.getElementById(id + '_valid');
if(!is_class_exist(check, "isHidden")) {
add_class(check, "isHidden");
}
}
/* affiche un message d'erreur personnalise sous un input */
function display_input_error(id, text) {
var input = document.getElementById(id),
inputError = document.getElementById(id+ "_error"),
inputErrorMsg = document.getElementById(id+ "_error_msg");
add_class(input, "red-border");
add_class(inputError, "no-info");
inputErrorMsg.textContent = text;
}
/* masque un message d'erreur sous un input */
function hide_input_error(id) {
var input = document.getElementById(id),
inputError = document.getElementById(id+ "_error"),
inputErrorMsg = document.getElementById(id+ "_error_msg");
remove_class(input, "red-border");
remove_class(inputError, "no-info");
inputErrorMsg.textContent = "";
}
/* afficher/masquer le mdp */
function show_password(id) {
var password = document.getElementById(id);
var showPassword = document.getElementById(id + "_show_password");
/* changer le wording sans enlever icone check */
if ( showPassword.firstChild.innerHTML == "Afficher" ) {
showPassword.firstChild.innerHTML = "Masquer";
password.setAttribute("type", "text");
} else {
showPassword.firstChild.innerHTML = "Afficher";
password.setAttribute("type", "password");
}
}
/* au keyup : disparition msg erreur si correction input */
function remove_error_on_keypress(id) {
if ( document.getElementById(id) != undefined ) {
var input = document.getElementById(id);
var inputError = document.getElementById(id + "_error");
var inputErrorMsg = document.getElementById(id + "_error_msg");
if( !verif_empty_input(id) ) {
hide_input_error(id);
}
}
}
/* verifier que le mot de passe fait 5 caracteres minimum et 20 caracteres minimum */
function check_password_valid(id) {
var password = document.getElementById(id),
passwordConfirm = document.getElementById(id+ '_confirm'),
progressBar = document.getElementById('progress_account');
if(password.value.length > 4 && password.value.length < 21) {
display_input_check(id);
} else if (password.value.length < 6 || password.value.length > 20) {
hide_input_check(id);
}
if(password.value.length > 20) {
display_input_error(id, "Le mot de passe doit contenir entre 5 et 20 caractères.");
}
if(passwordConfirm.value.length != 0) {
/* si mdp modifie alors que la confirmation etait deja valide, on re-checke la confirmation */
confirm_password(id);
}
}
/* aide a la saisie des inputs */
function auto_focus_next_input(element) {
if(element.value.length == element.getAttribute('maxlength')) {
element.nextSibling.nextSibling.focus();
}
}
/* clear inputs si nouvelle tentative de saisie de code */
function check_clear_inputs(id) {
var form = document.getElementById(id),
inputs = form.getElementsByTagName('input');
for(var i = 0; i < inputs.length; i++) {
/* si un input est vide, on arrete */
if(inputs[i].value.length == 0) {
return;
}
/* si on atteint le dernier input non-vide, on efface tous les inputs */
if(i == inputs.length - 1) {
for(var j = 0; j < inputs.length; j++) {
inputs[j].value = '';
}
inputs[0].focus();
}
}
}
// COMPTEUR DE CARACTERES RESTANT DISPONIBLES
function update_counter(id) {
var comment = document.getElementById(id),
counter = document.getElementById(id + '_counter'),
count = document.getElementById(id + '_count'),
max = comment.maxLength,
remain = max - comment.value.length;
count.textContent = remain;
/* faire apparaitre le decompte apres avoir ecrit un tiers des caracteres max autorises */
if(remain <= max - max/3 && counter.classList.contains('isHidden')) {
counter.classList.remove('isHidden');
}
/* changer la couleur du decompte en fonction des caracteres restants (5%) */
if((remain <= (max * 5) / 100) && !counter.classList.contains('soSecondaryColor5')) {
counter.classList.add('soSecondaryColor5');
} else if(remain > (max * 5) / 100) {
counter.classList.remove('soSecondaryColor5');
}
}/********************************************************/
/************************ AIDE SOCIETE ******************/
/********************************************************/
function resize_aidesociete() {
var helptablet = document.getElementById('aidesocietetablet');
var helpphone = document.getElementById('aidesocietemobile');
if (is_phone_device()) {
display_obj_table(helpphone);
hide_obj(helptablet);
} else {
display_obj_table(helptablet);
hide_obj(helpphone);
}
}
function display_aidesociete() {
var buttsearch = document.getElementById('buttsearch');
var divsearch = document.getElementById('divsearch');
var input = document.getElementById('input_search');
var helptablet = document.getElementById('aidesocietetablet');
var helpphone = document.getElementById('aidesocietemobile');
if (is_phone_device()) {
display_obj_table(helpphone);
hide_obj(helptablet);
} else {
display_obj_table(helptablet);
hide_obj(helpphone);
}
add_class(input, "borderoninput");
add_class(buttsearch, "borderonbut");
add_class(divsearch, "borderondiv");
add_focus('input_search');
add_event(window, "resize", function(){resize_aidesociete();});
}
/* creation de listes */
/* recuperation des listes sur le dashboard */
function create_dashboard_lists(response) {
var popup = document.getElementById('popup'),
template = document.getElementById("list_card_template"),
templateHtml = template.innerHTML,
defaultLists = document.getElementById("blank_list"),
listHtml = "";
json = response,
date = new Date(Date.now()); /* date du jour */
dateNow = new Date(Date.now()); /* date du jour */
dateLastWeek = date.setDate(date.getDate() - 2), /* intervalle de definition des listes recentes */
nbNewLists = 0, /* nombre de listes recentes */
newTag = "";
/* echappement apostophe dans nom de liste */
for(key in json['listes']) {
json['listes'][key]['name'].replace("\'", "\\\\'");
}
/* stockage liste des listes */
stockListsName = [];
for(key in json['listes']) {
stockListsName.push({
"id" : json['listes'][key]['id'],
"name" : json['listes'][key]['name']
});
}
// tri des listes par alphabetique
json['listes'].sort(function(a, b) {
if (a.name.toLowerCase() > b.name.toLowerCase()) {return 1;}
if (a.name.toLowerCase() < b.name.toLowerCase()) {return -1;}
});
// remplissage du template des fiches des listes
for(var key in json['listes']) {
var escapedName = encodeURIComponent(json['listes'][key]['name']),
creationDate = Date.parse(json['listes'][key]['created']);
if(creationDate <= dateNow && creationDate >= dateLastWeek) {
newTag = "new";
} else {
newTag = "";
}
listHtml += templateHtml.replace(/{{id}}/g, json['listes'][key]['id'])
.replace(/{{name}}/g, json['listes'][key]['name'])
.replace(/{{escapename}}/g, escapedName)
.replace(/{{total}}/g, json['listes'][key]['total'])
.replace(/{{premium}}/g, json['listes'][key]['premium'])
.replace(/{{sans}}/g, json['listes'][key]['sans'])
.replace(/{{gratuite}}/g, json['listes'][key]['gratuite'])
.replace(/{{new}}/g, newTag);
}
if(json['listes'].length != 0) {
listHtml += defaultLists.innerHTML;
} else {
for(var i = 0; i < 2; i++) {
listHtml += defaultLists.innerHTML;
}
}
var listsContainer = document.getElementById("lists_container");
listsContainer.innerHTML = listHtml;
if(json['listes'].length == 0) {
var lists = listsContainer.getElementsByClassName("Dashboard__card");
lists[lists.length - 1].classList.add("isDisabled");
}
var dashboard101 = document.getElementById('dashboard_101');
if(dashboard101 && !is_class_exist(dashboard101, 'isHidden')) {
add_class(dashboard101, 'isHidden');
}
//init_dashboard_banner();
/* update de l'affichage du picto de la todo liste si necessaire */
show_picto_todo();
/* positionnement footer sous IE */
footer_IE();
/* tronquer nom liste si trop grand */
cut_list_name();
/* modififer le nom de la liste dans les notifs */
var count = 0;
for (key in stockInfosNotifications) {
count++;
}
/* si liste deja ouverte */
if ( count > 0 ) {
for (key in stockInfosNotifications) {
var cardList = document.getElementById(key);
var newName = cardList.getElementsByClassName("name-list")[0].innerHTML;
var oldName = stockInfosNotifications[key]["listname"];
if ( oldName != newName ) {
/* modifie les infos stockees en locale */
stockInfosNotifications[key]['listname'] = newName;
return;
}
}
}
/* sinon */
else {
var list = document.getElementById("dashboard-notifications-list-content-inside");
var allLists = list.getElementsByClassName("NotificationsList__list");
for ( var i = 0; i < allLists.length; i++ ) {
var idList = allLists[i].getAttribute("id");
var idListNumber = idList.slice(19, idList.length);
var cardList = document.getElementById(idListNumber);
var newName = cardList.getElementsByClassName("name-list")[0].innerHTML;
var oldName = allLists[i].getElementsByClassName("NotificationsList__list__name")[0].innerHTML;
if ( oldName != newName ) {
allLists[i].getElementsByClassName("NotificationsList__list__name")[0].innerHTML = newName;
return;
}
}
}
}
function update_upload_filename(input) {
var file = document.getElementById(input + '_input'),
filename = document.getElementById(input + '_name'),
icon = document.getElementById(input + '_icon'),
bar = document.getElementById(input + '_bar'),
importButton= document.getElementById(input + '_import'),
cancel = document.getElementById(input + '_cancel'),
importLinks = document.getElementById(input + '_import'),
topError = document.getElementById('popup_import_results_error'),
error = document.getElementById(input + '_error'),
success = document.getElementById(input + '_success'),
title = document.getElementById(input + '_title');
/* cacher les msg */
add_class(topError, 'isHidden');
add_class(importLinks, 'isHidden');
add_class(success, 'isHidden');
add_class(error, 'isHidden');
if(file.value != undefined && file.value != '') {
filename.textContent = file.value.split(/(\\|\/)/g).pop();
remove_class(cancel, 'isHidden');
remove_class(icon, 'soBaseColor-300');
remove_class(importButton, 'isHidden');
add_class(icon, 'soSecondaryColor4');
if(title.value == undefined || title.value == '') {
add_class(bar, 'half');
} else {
add_class(bar, 'full');
}
} else {
filename.textContent = '';
add_class(cancel, 'isHidden');
add_class(icon, 'soBaseColor-300');
add_class(importButton, 'isHidden');
remove_class(icon, 'soSecondaryColor4');
remove_class(bar, 'full');
if(title.value == undefined || title.value == '') {
remove_class(bar, 'half');
} else {
add_class(bar, 'half');
}
}
resize_popup_content_height('popup_import_body');
}
function reset_upload_file(input) {
var file = document.getElementById(input + '_input'),
error = document.getElementById('popup_import_results_error');
file.type = '';
file.type = 'file';
if(!error.classList.contains('isHidden')) {
add_class(error, 'isHidden');
}
update_upload_filename(input);
}
function keyup_update_create_list(input) {
var title = document.getElementById(input + '_title'),
filename = document.getElementById(input + '_name'),
bar = document.getElementById(input + '_bar');
if(title.value != '') {
if(filename.textContent == '') {
remove_class(bar, 'full');
if(!bar.classList.contains('half')) {
add_class(bar, 'half');
}
} else {
remove_class(bar, 'half');
if(!bar.classList.contains('full')) {
add_class(bar, 'full');
}
}
} else {
if(filename.textContent != '') {
remove_class(bar, 'full');
add_class(bar, 'half');
} else {
remove_class(bar, 'half');
}
}
}
function has_extension(input, extensionArray) {
var fileName = document.getElementById(input).value;
return (new RegExp('(' + extensionArray.join('|').replace(/\./g, '\\.') + ')$')).test(fileName);
}
function submit_list_file_content(input, content, source, callback) {
var fileSelect = document.getElementById(input + '_input'),
fileTitle = document.getElementById(input + '_title'),
importLinks = document.getElementById(input + '_import'),
valid = document.getElementById(input + '_valid'),
error = document.getElementById(input + '_error'),
success = document.getElementById(input + '_success'),
title = document.getElementById(input + '_title'),
titleError = document.getElementById(input + '_title_error'),
topError = document.getElementById('popup_import_results_error'),
file = fileSelect.files[0],
formData = new FormData(),
xhr = new XMLHttpRequest();
/* verif si nom liste renseigne */
if ( title.value == "" ) {
close_progress_overlay('popup_import');
add_class(titleError, "no-info");
return;
} else {
remove_class(titleError, "no-info");
}
formData.append('xls_file', content);
formData.append('xls_upload_title', fileTitle.value);
if(file.size > 100000) {
close_progress_overlay('popup_import');
topError.innerHTML = "Le fichier que vous tentez d'importer dépasse la taille maximale autorisée.";
remove_class(topError, 'isHidden');
add_class(importLinks, 'isHidden');
} else {
xhr.open('POST', '/cgi-bin/compte-api-liste-fichier', true);
/*xhr.onload = function () {
add_class(importLinks, 'isHidden');
if (xhr.status === 200) {
remove_class(success, 'isHidden');
remove_class(valid, 'isHidden');
} else {
remove_class(error, 'isHidden');
}
};*/
xhr.send(formData);
xhr.onreadystatechange = function() {
/* cacher les msg */
add_class(topError, 'isHidden');
add_class(importLinks, 'isHidden');
add_class(success, 'isHidden');
add_class(error, 'isHidden');
var json;
if ( xhr.readyState == 4 ) {
close_progress_overlay('popup_import');
if (xhr.status == 403) {
open_popup('popup_connect_error');
return;
}
if (xhr.status == 200) {
try {
json = JSON.parse(xhr.responseText);
} catch (e) {
return;
}
/* verifier si correspondances trouvees dans le fichier */
var keyCount = 0;
var keyError = 0;
for ( var key in json.listedata ) {
keyCount ++;
if ( json.listedata[key]['error'] ) {
keyError ++;
}
}
if ( keyError == keyCount ) {
//error.innerHTML = "Aucune société n'a pu être identifiée dans ce document";
topError.innerHTML = "Aucune société n'a pu être identifiée dans ce document.";
remove_class(topError, 'isHidden');
//remove_class(error, 'isHidden');
add_class(success, 'isHidden');
} else {
callback(content, source, json);
}
//callback(content, source, json);
}
else {
//error.innerHTML = "Une erreur est survenue, veuillez réessayer plus tard";
//remove_class(error, 'isHidden');
topError.innerHTML = "Une erreur est survenue, veuillez réessayer plus tard.";
remove_class(topError, 'isHidden');
}
}
}
//xhr.send(formData);
}
}
var mainSearch;
function which_form_to_submit(callback) {
var focus = document.activeElement;
if(focus.tagName == 'INPUT' || focus.tagName == 'input') {
var form = focus.form;
} else {
return;
}
submit_form_ajax(form.getAttribute('id'), callback);
}
function submit_form_ajax(form, callback) {
var formElements = document.getElementById(form).elements,
formMethod = document.getElementById(form).method,
formQuery = document.getElementById(form).action,
formData,
queryParam = '';
error = document.getElementById("popup_search_results_error");
/* cacher msg erreur s'il existait */
add_class(error, "isHidden");
/* si form de siren */
if ( form == "recherche_entrep1" ) {
/* verif validite du siren */
if ( !length_siren('entreprncs') ) {
return;
}
}
if(formMethod === 'post') {
formData = new FormData();
for(var i = 0; i < formElements.length; i++) {
if(formElements[i].type === 'checkbox' && formElements[i].checked === false) {
continue;
} else {
formData.append(formElements[i].name, formElements[i].value);
}
}
} else {
for(var i = 0; i < formElements.length - 1; i++) {
if(formElements[i].type === 'checkbox' && formElements[i].checked === false) {
continue;
} else {
if(i === 0) {
queryParam = '?' + formElements[i].name + '=' + formElements[i].value;
} else {
if(formElements[i].value != '') {
queryParam += '&' + formElements[i].name + '=' + formElements[i].value;
} else {
continue;
}
}
}
}
}
/* Recuperation du critere principal de recherche */
for(var i = 0; i < formElements.length; i++) {
if(formElements[i].value != '' && formElements[i].name != 'format' && formElements[i].name != 'exa') {
mainSearch = formElements[i].value;
break;
}
}
if (window.XMLHttpRequest) {
request = new XMLHttpRequest();
if (request.overrideMimeType) {
request.overrideMimeType("text/html");
}
} else {
if (window.ActiveXObject) {
try {
request = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
request = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
window.alert("Votre navigateur ne supporte pas AJAX");
}
}
}
}
if (request && request.readyState != 0) {
request.abort();
}
if(formMethod === 'post') {
request.open('POST', formQuery, true);
request.send(formData);
} else {
request.open('GET', formQuery + queryParam, true);
request.send();
}
/* affichage loader chargement */
if ( form == "recherche_entrep1" || form == "recherche_entrep2" ) {
open_progress_overlay('popup_' + form, 'Recherche en cours...');
} else {
open_progress_overlay('popup_' + form, 'Création de votre liste...');
}
request.onreadystatechange = function() {
var json;
if ( request.readyState == 4 ) {
/* cacher loader chargement */
close_progress_overlay('popup_' + form);
if ( request.status == 200 ) {
try {
json = JSON.parse(request.responseText);
/* si form = recherche avec info entreprise */
if ( form == "recherche_entrep2" ) {
/* si remplissage form ok */
if ( verif_form_search_company() ) {
/* verif contenu reponse requete */
var errorStatus = false;
for ( result in json) {
if ( result == "error") {
errorStatus = true;
}
}
/* si erreur -> afficher msg erreur */
if ( errorStatus == true ) {
remove_class(error, "isHidden");
return;
}
} else {
return;
}
}
} catch (e) {
/* afficher msg erreur */
close_popup();
open_popup_message('Résultat de votre recherche', 'Votre demande n\'a pu être traitée, merci de réessayer ultérieurement.', 'soSecondaryColor5');
return;
}
/* si tout est ok -> executer la fonction de callback */
callback(json);
return mainSearch;
}
/* si aucun resultat */
else if ( request.status == 404 ) {
/* afficher msg erreur */
remove_class(error, "isHidden");
}
/* si erreur technique */
else {
/* afficher msg erreur */
close_popup();
open_popup_message('Résultat de votre recherche', 'Votre demande n\'a pu être traitée, merci de réessayer ultérieurement.', 'soSecondaryColor5');
}
}
}
}
/* suppression espaces dans siren */
function clear_siren(element) {
var value = element.value.replace(/ /g, '');
element.value = value;
}
/* verifier validite remplissage form recherche entreprise pour crea liste dashboard */
function verif_form_search_company() {
var form = document.getElementById("recherche_entrep2");
var input = form.getElementsByClassName("verif-empty");
var inputPrenom = document.getElementById("entreppre");
var inputApe = document.getElementById("entrepape");
var inputDepart = document.getElementById("avancedep");
var error = document.getElementById("recherche_entrep2_error");
var errorMsg = document.getElementById("recherche_entrep2_error_msg");
var inputEmpty = 0;
var inputStar = 0;
/* verif si champs vides */
for ( var i = 0; i < input.length; i++) {
if ( input[i].value != "" ) {
inputEmpty++;
if ( input[i] == inputPrenom || input[i] == inputApe || input[i] == inputDepart) {
inputStar++;
}
}
}
/* gestion des erreurs de saisie */
/* si tous les champs sont vides */
if ( inputEmpty == 0 ) {
errorMsg.innerHTML = "Vous devez remplir au moins 1 champs";
add_class(error, "no-info");
return false;
}
/* si au moins 1 champs renseign?*/
else {
/* si 0 ou 2+ champs avec etoile */
if ( inputStar != 1 ) {
remove_class(error, "no-info");
errorMsg.innerHTML = "";
return true;
}
/* si 1 seul champs avec etoile */
else {
errorMsg.innerHTML = "Vous devez remplir un 2e champs comportant une *";
add_class(error, "no-info");
return false;
}
}
}
function get_form_data(form) {
var formElements = document.getElementById(form).elements,
formMethod = document.getElementById(form).method,
formQuery = document.getElementById(form).action,
formData,
queryParam = '';
if(formMethod === 'post') {
formData = new FormData();
for(var i = 0; i < formElements.length; i++) {
if(formElements[i].type === 'checkbox' && formElements[i].checked === false) {
continue;
} else {
formData.append(formElements[i].name, formElements[i].value);
}
}
return formData;
} else {
for(var i = 0; i < formElements.length - 1; i++) {
if(formElements[i].type === 'checkbox' && formElements[i].checked === false) {
continue;
} else {
if(i === 0) {
queryParam = '?' + formElements[i].name + '=' + formElements[i].value;
} else {
if(formElements[i].value != '') {
queryParam += '&' + formElements[i].name + '=' + formElements[i].value;
} else {
continue;
}
}
}
}
return queryParam;
}
}
function show_search_results(response) {
var searchResults = document.getElementById('frame_entrepr_results'),
resultsCheck = document.getElementById('search_results_list'),
json = response,
searchPopup = document.getElementById('popup_search'),
container = document.getElementById('popup_search_results'),
resultCount = document.getElementById('search_results_total'),
searchName = document.getElementById('search_name'),
titleInput = document.getElementById('create_list_title')
button = document.getElementById('form_create_list_button');
var resultsCheckHtml = resultsCheck.innerHTML,
searchResultsHtml = "";
for(var key in json.listedata) {
searchResultsHtml += resultsCheckHtml.replace(/{{id}}/g, key)
.replace(/{{siren}}/g, json.listedata[key]['siren'])
.replace(/{{deno}}/g, json.listedata[key]['deno'])
.replace(/{{ape}}/g, json.listedata[key]['ape'])
.replace(/{{apelib}}/g, json.listedata[key]['apelib'])
.replace(/{{ville}}/g, json.listedata[key]['ville']);
}
searchResults.innerHTML = searchResultsHtml;
resultCount.textContent = document.getElementsByClassName('searchResults').length;
searchName.textContent = mainSearch;
add_class(container, 'result');
document.getElementById('check_results_all').checked = true;
if(document.getElementsByClassName('searchResults').length == 0) {
add_class(titleInput, 'isDisabled');
add_class(button, 'isDisabled');
} else {
remove_class(titleInput, 'isDisabled');
remove_class(button, 'isDisabled');
document.getElementById('form_create_list').addEventListener('keyup', function bind_submit_event(e) {
if(e.keyCode == 13) {
which_form_to_submit(submit_form_ajax_answer);
document.getElementById('form_create_list').removeEventListener('keyup', bind_submit_event);
}
});
toggleAllCheck('frame_entrepr_results', 'check_results_all');
}
resize_popup_content_height('frame_entrepr_results');
}
function show_import_results(content, source, response) {
var validTemplate = document.getElementById('import_list_valid'),
notValidTemplate = document.getElementById('import_list_not_valid'),
validResults = document.getElementById('valid_import_results'),
notValidResults = document.getElementById('not_valid_import_results'),
json = response,
importFile = document.getElementById('popup_import_file'),
container = document.getElementById('popup_import_results'),
totalCount = document.getElementById('total_import'),
validCount = document.getElementById('valid_import'),
notValidCount = document.getElementById('not_valid_import');
// TRAITEMENT DES RESULTATS VALIDES
var validTemplateHtml = validTemplate.innerHTML,
validImportResultsHtml = "";
for(var key in json.listedata) {
if(json.listedata[key]['error']) {
continue;
} else {
validImportResultsHtml += validTemplateHtml.replace(/{{id}}/g, key)
.replace(/{{siren}}/g, json.listedata[key]['siren'])
.replace(/{{deno}}/g, json.listedata[key]['deno'])
.replace(/{{ape}}/g, json.listedata[key]['ape'])
.replace(/{{siret}}/g, json.listedata[key]['siret'])
.replace(/{{effectif}}/g, json.listedata[key]['trancheeff']);
}
}
validResults.innerHTML = validImportResultsHtml;
validCount.textContent = document.getElementsByClassName('importResults').length;
// TRAITEMENT DES RESULTATS INVALIDES
var notValidTemplateHtml = notValidTemplate.innerHTML,
notValidImportResultsHtml = "";
for(var key in json.listedata) {
if(!json.listedata[key]['error']) {
continue;
} else {
if(source[key]['A'] == null) {
source[key]['A'] = 'N/A';
}
notValidImportResultsHtml += notValidTemplateHtml.replace(/{{id}}/g, key)
.replace(/{{siren}}/g, source[key]['A']);
}
}
notValidResults.innerHTML = notValidImportResultsHtml;
notValidCount.textContent = document.getElementsByClassName('importNotValid').length;
totalCount.textContent = parseInt(validCount.textContent) + parseInt(notValidCount.textContent);
add_class(container, 'result');
add_class(importFile, 'importFile');
resize_popup_content_height('form_create_list_import');
document.getElementById('check_import_results_all').checked = true;
document.getElementById('form_create_list_import').addEventListener('keyup', function bind_submit_event(e) {
if(e.keyCode == 13) {
which_form_to_submit(submit_form_ajax_answer);
document.getElementById('form_create_list_import').removeEventListener('keyup', bind_submit_event);
}
});
toggleAllCheck('form_create_list_import', 'check_import_results_all');
}
function show_watch_results(response) {
open_popup('popup_watch', function() {
var watchResults = document.getElementById('frame_watch_results'),
watchCheck = document.getElementById('search_results_list'),
json = response,
resultCount = document.getElementById('watch_results_total');
var watchCheckHtml = watchCheck.innerHTML,
watchResultsHtml = "";
/* suppression des doublons veilles premium/gratuites */
var cleanJson = remove_duplicates(json['listedata'], 'siren');
for (var key in cleanJson) {
watchResultsHtml += watchCheckHtml.replace(/{{id}}/g, key)
.replace(/{{siren}}/g, cleanJson[key]['siren'])
.replace(/{{deno}}/g, cleanJson[key]['deno'])
.replace(/{{ape}}/g, cleanJson[key]['ape'])
.replace(/{{apelib}}/g, cleanJson[key]['apelib'])
.replace(/{{ville}}/g, cleanJson[key]['ville']);
}
watchResults.innerHTML = watchResultsHtml;
resultCount.textContent = document.getElementsByClassName('searchResults').length;
resize_popup_content_height('frame_watch_results');
document.getElementById('check_watch_all').checked = true;
document.getElementById('form_create_watch_list').addEventListener('keyup', function(e) {
if(e.keyCode == 13) {
verif_empty_input('create_watch_list_title');
which_form_to_submit(submit_form_ajax_answer);
}
});
toggleAllCheck('frame_watch_results', 'check_watch_all');
});
}
function fill_option_list(url, select, option) {
if (window.XMLHttpRequest) {
request = new XMLHttpRequest();
if (request.overrideMimeType) {
request.overrideMimeType("application/json");
}
} else {
if (window.ActiveXObject) {
try {
request = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
request = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
window.alert("Votre navigateur ne supporte pas AJAX");
}
}
}
}
if (request && request.readyState != 0) {
request.abort();
}
request.open('GET', url, true);
request.send();
request.onreadystatechange = function() {
var selectList = document.getElementById(select),
optionList = document.getElementById(option),
json;
if (request.readyState == 4 && request.status == 200) {
try {
json = JSON.parse(request.responseText);
} catch (e) {
return;
}
var optionListHtml = optionList.innerHTML,
selectListHtml = "",
defaultSelect = document.createElement('option');
for(var key in json.listedata) {
selectListHtml += optionListHtml.replace(/{{dep}}/g, json.listedata[key]['dep'])
.replace(/{{desc}}/g, json.listedata[key]['desc']);
}
selectListHtml = '' + selectListHtml;
selectList.innerHTML = selectListHtml;
}
}
}
function submit_form_ajax_answer(response) {
check_json_response(response);
get_dashboard_lists();
}
function reset_search_popup(eventCallback, param1, param2) {
var popup = document.getElementById('popup'),
searchForm = document.getElementById('popup_search_results') ;
popup.innerHTML = '';
open_popup('popup_search', submit_form_ajax, 'recherche_entrep2', show_search_results);
setTimeout(function(){
fill_option_list('/cgi-bin/liste-departement', 'avancedep', 'departments_lists');
init_recherche();
}, 200);
}
function open_list_options(id) {
var overlay = document.getElementById('invisible_overlay');
optionList = document.getElementById(id);
overlay.addEventListener('click', function() {
close_list_options(id);
});
remove_class(optionList, 'isHidden');
remove_class(overlay, 'isHidden');
}
function close_list_options(id) {
var overlay = document.getElementById('invisible_overlay');
optionList = document.getElementById(id);
add_class(optionList, 'isHidden');
add_class(overlay, 'isHidden');
}
function watch_list(callback, context) {
if (window.XMLHttpRequest) {
request = new XMLHttpRequest();
if (request.overrideMimeType) {
request.overrideMimeType("application/json");
}
} else {
if (window.ActiveXObject) {
try {
request = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
request = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
window.alert("Votre navigateur ne supporte pas AJAX");
}
}
}
}
if (request && request.readyState != 0) {
request.abort();
}
request.open('GET', '/cgi-bin/compte-api-veilles', true);
request.send();
/* affichage loader chargement */
if ( context == "veilles" ) {
open_progress_overlay('popup_create_list', 'Récupération de vos veilles...');
}
request.onreadystatechange = function() {
var json;
if ( request.readyState == 4 ) {
/* cacher loder chargement */
close_progress_overlay('popup_create_list');
/* reponse ok */
if ( request.status === 200 ) {
try {
json = JSON.parse(request.responseText);
} catch (e) {
return;
}
callback(json);
}
/* reponse ko */
else {
open_popup_message('Création d\'une liste depuis Mes Veilles Société', 'Impossible de créer une liste à partir de vos veilles.', 'soSecondaryColor5');
}
}
}
}
function toggleAllCheck(form, checkbox) {
var checkboxes = new Array(),
checkAll = document.getElementById(checkbox);
checkboxes = document.getElementById(form).getElementsByTagName('input');
for (var i = 0; i < checkboxes.length; i++) {
if (checkboxes[i].type == 'checkbox' && !checkboxes[i].classList.contains('isDisabled')) {
checkboxes[i].checked = checkAll.checked;
}
}
}
/* FONCTIONS DE PREPARATION ET EXECUTION DE LA REQUETE */
var rsAPI = new RessourceAPI();
function get_dashboard_lists(response) {
/* fermeture de popups eventuelles */
close_popup();
/* uniquement sur home du dashboard */
if ( document.location.href.indexOf("/reseau") != -1 ) {
if (detect_version_IE() == "nav-ie10" || detect_version_IE() == "nav-ie11") {
request_wrapper_IE(
'GET',
'/api/liste',
null,
null,
function(){
if ( document.location.href.indexOf("/dashboard") != -1 ) {
open_progress_overlay('main', 'Récupération de vos listes...');
}
},
null,
handle_request_error,
create_dashboard_lists,
function(){
if ( document.location.href.indexOf("/dashboard") != -1 ) {
close_progress_overlay('main');
}
}
);
} else {
if (rsAPI == undefined) {
var rsAPI = new RessourceAPI();
}
rsAPI.add("/api/liste", "GET", {
before : function() {
if ( document.location.href.indexOf("/dashboard") != -1 ) {
open_progress_overlay('main', 'Récupération de vos listes...');
}
},
running : null,
error : handle_request_error,
ok : create_dashboard_lists,
end : function(){
if ( document.location.href.indexOf("/dashboard") != -1 ) {
close_progress_overlay('main');
}
}
});
if(response) {
check_json_response(response);
}
rsAPI.ressource["/api/liste"].GET.run('');
}
}
}
function post_form_data(form, id) {
var param = get_form_data(form);
if (detect_version_IE() == "nav-ie10" || detect_version_IE() == "nav-ie11") {
if(id) {
request_wrapper_IE(
'POST',
'/api/liste/' + id,
param,
'formData',
function() { open_progress_overlay('popup_' + form, 'Création de votre liste...')},
null,
handle_request_error,
get_dashboard_lists,
function() {close_progress_overlay('popup_' + form)}
);
} else {
request_wrapper_IE(
'POST',
'/api/liste/',
param,
'formData',
function() { open_progress_overlay('popup_' + form, 'Création de votre liste...')},
null,
handle_request_error,
get_dashboard_lists,
function() {close_progress_overlay('popup_' + form)}
);
}
} else {
if(id) {
rsAPI.add("/api/liste/" + id, "POST", {
before : function() { open_progress_overlay('popup_' + form, 'Création de votre liste...') },
running : null,
error : handle_request_error,
ok : get_dashboard_lists,
end : function() {close_progress_overlay('popup_' + form)}
});
rsAPI.ressource["/api/liste/" + id].POST.run('', param, 'formData');
} else {
rsAPI.add("/api/liste", "POST", {
before : function() { open_progress_overlay('popup_' + form, 'Création de votre liste...') },
running : null,
error : handle_request_error,
ok : get_dashboard_lists,
end : function() {close_progress_overlay('popup_' + form)}
});
rsAPI.ressource["/api/liste"].POST.run('', param, 'formData');
}
}
}
function delete_request(id) {
if(detect_version_IE() == "nav-ie10" || detect_version_IE() == "nav-ie11") {
if(id) {
request_wrapper_IE(
'DELETE',
'/api/liste/' + id,
null,
null,
function() { open_progress_overlay('popup_delete_list', 'Suppression de votre liste...')},
null,
handle_request_error,
function() {confirm_delete_request(id);},
function() {close_progress_overlay('popup_delete_list');}
);
} else {
request_wrapper_IE(
'DELETE',
'/api/liste/',
null,
null,
function() { open_progress_overlay('popup_delete_list', 'Suppression de votre liste...')},
null,
handle_request_error,
confirm_delete_request,
function() {close_progress_overlay('popup_delete_list');}
);
}
} else {
if(id) {
rsAPI.add("/api/liste?id_liste=" + id, "DELETE", {
before : function() { open_progress_overlay('popup_delete_list', 'Suppression de votre liste...') },
running : null,
error : handle_request_error,
ok : function() {confirm_delete_request(id);},
end : function() {close_progress_overlay('popup_delete_list');}
});
rsAPI.ressource["/api/liste?id_liste=" + id].DELETE.run('');
} else {
rsAPI.add("/api/liste", "DELETE", {
before : function() { open_progress_overlay('popup_delete_list', 'Suppression de votre liste...') },
running : null,
error : handle_request_error,
ok : confirm_delete_request,
end : function() {close_progress_overlay('popup_delete_list');}
});
rsAPI.ressource["/api/liste"].DELETE.run('');
}
}
}
//function confirm_delete_request() {
function confirm_delete_request(id) {
/* supprimer id de la liste des notifs */
if (id) {
var count = 0;
for (key in stockInfosNotifications) {
count++;
}
/* si stockInfosNotifications rempli */
if ( count != 0 ) {
/* supprimer l'id */
if ( stockInfosNotifications[id] ) {
delete stockInfosNotifications[id];
}
}
/* sinon */
else {
/* supprimer l'id dans le html de la liste des notifs */
var cible = document.getElementById("notifications_list_" + id);
var parent = document.getElementById("dashboard-notifications-list-content-inside");
if ( cible ) {
parent.removeChild(cible);
}
}
/* MAJ nb notifs a afficher */
show_nb_notifs();
}
/* mise a jour affichage liste de listes */
get_dashboard_lists();
/* rediriger vers home dashboard */
//window.location.href = '/app/reseau/dashboard';
router.navigate('/app/reseau/dashboard', true);
/* affichage notif */
var notif = {"msg":"La demande de suppression de la liste a bien été prise en compte"};
check_json_response(notif);
}
function convertlib(input) {
open_progress_overlay('popup_import', "Importation de votre fichier...");
var data = document.getElementById(input + "_input");
var isCSV = has_extension(input + "_input", ['.csv']);
var isXLS = has_extension(input + "_input", ['.xls', '.xlsx']);
if(!has_extension(input + '_input', ['.xls', '.xlsx', 'csv'])) {
close_progress_overlay('popup_import');
alert('Le fichier n\'est pas valide.');
reset_upload_file('xls_upload');
close_progress_overlay('popup');
return;
}
var fr = new FileReader();
fr.onload = function() {
var res = fr.result;
if (isCSV) {
var wb = XLSX.read(res, {type: 'binary'});
}
if (isXLS) {
var wb = XLSX.read(res, {type: 'array'});
}
var ws = wb.Sheets[wb.SheetNames[0]];
var content = XLSX.utils.sheet_to_csv(ws);
var source = XLSX.utils.sheet_to_json(ws, {header:"A", raw:false, defval:null});
var listName = document.getElementById('xls_upload_title');
var listImportName = document.getElementById('name_create_list_import');
listImportName.value = listName.value;
submit_list_file_content(input, content, source, show_import_results);
}
if (isCSV) {
fr.readAsBinaryString(data.files[0]);
}
if (isXLS) {
fr.readAsArrayBuffer(data.files[0]);
}
}
function open_accordion(id, callback) {
var accordion = document.getElementById(id);
if(!accordion.classList.contains('open')) {
add_class(accordion, 'open');
setTimeout(function() {
if(callback) {
callback(id);
}
}, 200);
}
}
function close_accordion(id, callback) {
var accordion = document.getElementById(id);
if(accordion.classList.contains('open')) {
remove_class(accordion, 'open');
reset_anim_dashboard();
if(callback) {
callback(id);
}
}
}
function turnon_opacity(id, callback) {
var accordion = document.getElementById(id);
if(!accordion.classList.contains('visible')) {
add_class(accordion, 'visible');
if(callback) {
callback(id);
}
}
}
function turnoff_opacity(id, callback) {
var accordion = document.getElementById(id);
if(accordion.classList.contains('visible')) {
remove_class(accordion, 'visible');
if(callback) {
callback(id);
}
}
}
/*function init_dashboard_banner() {
var beginner = document.getElementById('dashboard_beginner'),
advanced = document.getElementById('dashboard_advanced'),
lists = document.getElementById('lists_container'),
listsCount = lists.childElementCount;
if(listsCount > 2) {
remove_class(advanced, 'isHidden');
if(!beginner.classList.contains('isHidden')) {
add_class(beginner, 'isHidden');
}
} else {
remove_class(beginner, 'isHidden');
if(!advanced.classList.contains('isHidden')) {
add_class(advanced, 'isHidden');
}
}
}*/
var animArray = [];
function load_dashboard_anim(callback) {
var animMobile = ['anim-mobile-1', 'anim-mobile-2', 'anim-mobile-3'],
animDesktop = ['anim-desktop-1', 'anim-desktop-2', 'anim-desktop-3'],
autoplay = [true, false, false],
lottie1 = document.getElementById('lottie1'),
svg = lottie1.getElementsByTagName('svg'),
checklist1 = document.getElementById('checklist_anim1'),
checklist2 = document.getElementById('checklist_anim2'),
checklist3 = document.getElementById('checklist_anim3'),
overlay1 = document.getElementById('lottie1_overlay'),
overlay2 = document.getElementById('lottie2_overlay'),
overlay3 = document.getElementById('lottie3_overlay');
if(svg.length == 0) {
if(detect_device() === device_type.DESKTOP) {
for(var i = 0; i < animDesktop.length; i++) {
var params = {
container: document.getElementById('lottie' + (i+1)),
renderer: 'svg',
loop: false,
autoplay: autoplay[i],
name: animDesktop[i],
path: '/scripts/' + animDesktop[i] + '.json'
}
animArray[i] = lottie.loadAnimation(params);
}
setInterval(function() {
add_class(checklist1, 'open');
}, 3000);
animArray[0].addEventListener('complete', function() {
animArray[0].goToAndStop(5, true);
add_class(overlay1, 'end');
if(!is_class_exist(overlay2, 'end')) {
animArray[1].play();
if(!is_class_exist(checklist2, 'open')) {
setInterval(function() {
add_class(checklist2, 'open');
}, 2000);
}
}
});
animArray[1].addEventListener('complete', function() {
animArray[1].stop();
add_class(overlay2, 'end');
if(!is_class_exist(overlay3, 'end')) {
animArray[2].play();
if(!is_class_exist(checklist3, 'open')) {
setInterval(function() {
add_class(checklist3, 'open');
}, 1000);
}
}
});
animArray[2].addEventListener('complete', function() {
animArray[2].stop();
add_class(overlay3, 'end');
});
} else {
for(var i = 0; i < animMobile.length; i++) {
var params = {
container: document.getElementById('lottie' + (i+1)),
renderer: 'svg',
loop: false,
autoplay: autoplay[i],
name: animMobile[i],
path: '/scripts/' + animMobile[i] + '.json'
}
animArray[i] = lottie.loadAnimation(params);
}
animArray[0].addEventListener('complete', function() {
animArray[0].goToAndStop(5, true);
add_class(overlay1, 'end');
});
animArray[1].addEventListener('complete', function() {
animArray[1].stop();
add_class(overlay2, 'end');
});
animArray[2].addEventListener('complete', function() {
animArray[2].stop();
setTimeout(function() {
add_class(overlay3, 'end');
}, 1000);
});
document.onscroll = function(e){
if(overlay2.getBoundingClientRect().top <= 250 && animArray[1].isPaused && !is_class_exist(overlay2, 'end')) {
animArray[1].play();
}
if(overlay3.getBoundingClientRect().top <= 250 && animArray[2].isPaused && !is_class_exist(overlay3, 'end')) {
animArray[2].play();
}
}
}
}
}
function reset_anim_dashboard() {
var animations = document.getElementsByClassName('Dashboard__video');
for(var j = 0; j < animArray.length; j++) {
animArray[j].destroy();
}
for(var i = 0; i < animations.length; i++) {
animations[i].innerHTML = '';
}
}
function start_pause_anim(anim, overlay) {
if(anim.isPaused) {
document.getElementById(overlay).classList.remove('end');
anim.play();
} else {
anim.pause();
document.getElementById(overlay).classList.add('end');
}
}
function check_import_IE() {
if(detect_version_IE() == "nav-ie10" || detect_version_IE() == "nav-ie11") {
add_class(document.getElementById('xls_cta'), 'isDisabled');
remove_class(document.getElementById('xls_cta_message'), 'isHidden');
}
}
function get_modify_list_id(id, name) {
open_popup('popup_modify_list', function() {
var listName = document.getElementById('modify_list_name');
listName.textContent = name;
if(document.getElementById('modify_list_button')) {
var button = document.getElementById('modify_list_button');
document.getElementById('modify_list_form').action = '/api/liste/' + id;
add_event(button, 'click', function() {
post_form_data('modify_list_form', id);
});
document.getElementById('modify_list_form').addEventListener('keyup', function bind_submit_event(e) {
if(e.keyCode == 13) {
post_form_data('modify_list_form', id);
document.getElementById('modify_list_form').removeEventListener('keyup', bind_submit_event);
}
});
}
});
}
function get_delete_list_confirmation(id, name) {
open_popup('popup_delete_list', function() {
var button = document.getElementById('delete_list_confirmation_button');
document.getElementById('delete_list_name').textContent = name;
add_event(button, 'click', function() {delete_request(id); });
});
}
function resize_popup_content_height(content) {
if(document.getElementById(content)) {
var wHeight = window.innerHeight,
wWidth = window.innerWidth,
container = document.getElementById(content);
if(container.offsetHeight < wHeight) {
return;
} else {
switch(content) {
case "frame_entrepr_results":
// Fonction affine valable pour le formulaire de recherche (f(x)=-0.004x + 4.772)
container.style.height = wHeight / (-0.004 * wHeight + 4.772) + "px";
break;
case "frame_watch_results":
// Fonction affine valable pour la liste des veilles (f(x)=-0.004x + 4.772)
container.style.height = wHeight / (-0.004 * wHeight + 4.772) + "px";
break;
case "popup_import_body":
// Fonction affine valable pour le formulaire d'import (f(x)=-0.0018x + 2.2024)
container.style.height = wHeight / (-0.0018 * wHeight + 2.2024) + "px";
break;
case "form_create_list_import":
// Fonction affine valable pour le tableau de resultats de l'import (f(x)=-0.001x + 2.47)
//container.style.height = wHeight / (-0.0015 * wHeight + 2.692) + "px";;
container.style.height = wHeight / (-0.001 * wHeight + 2.47) + "px";
break;
default:
break;
}
}
}
}
function sticky_sticker_dashboard() {
var w = window,
d = document,
e = d.documentElement,
g = d.getElementsByTagName('body')[0],
x = w.innerWidth || e.clientWidth || g.clientWidth,
sticker = document.getElementById('dashboard-sticker');
window.addEventListener('resize', sticky_sticker_dashboard, false);
if(x >= 1280 && x <= 1720) {
w.addEventListener('scroll', function(e) {
if(w.scrollY >= 90 && !is_class_exist(sticker, 'sticky')) {
add_class(sticker, 'sticky');
} else if(w.scrollY < 90 && is_class_exist(sticker, 'sticky')) {
remove_class(sticker, 'sticky');
}
});
}
}
/* puce de couleur pour les veilles */
function colorize_watch_bullet() {
var cell = document.getElementsByClassName('cellWatch');
for(var i = 0; i < cell.length; i++) {
select = cell[i].getElementsByTagName('select'),
bullet = cell[i].getElementsByClassName('i-circle');
switch(select[0].value) {
case "sans":
remove_class(bullet[0], "gratuite premium");
add_class(bullet[0], "sans");
break;
case "gratuite":
remove_class(bullet[0], "sans premium");
add_class(bullet[0], "gratuite");
break;
case "premium":
remove_class(bullet[0], "sans gratuite");
add_class(bullet[0], "premium");
break;
}
}
}
/* MISE EN PLACE TESTS A/B POUR BANNIERE DASHBOARD */
function choose_banner_dashboard() {
var random50 = Math.random(),
random33 = Math.random(),
openBannerA = document.getElementById('open_banner_A'),
openBannerB = document.getElementById('open_banner_B'),
openBannerC = document.getElementById('open_banner_C'),
startListA = document.getElementById('start_list_A'),
startListB = document.getElementById('start_list_B');
if(random33 <= 0.33) {
remove_class(openBannerA, 'isHidden');
} else if (random33 > 0.33 && random33 <= 0.66) {
remove_class(openBannerB, 'isHidden');
} else {
remove_class(openBannerC, 'isHidden');
}
if(random50 >= 0.5) {
remove_class(startListA, 'isHidden');
} else {
remove_class(startListB, 'isHidden');
}
}
/********************************************************/
/*************** VIEW MINIFICHE SCROLLING ***************/
/********************************************************/
function init_minifiche_view() {
var id = document.getElementById('minifichecarto');
if (!id) {
setTimeout(init_minifiche_view, 20);
} else {
init_minifiche_resume();
init_minifiche_bilan();
setTimeout(init_minifiche_view, 20);
}
}
/* La vue minifiche-resume */
function init_minifiche_resume() {
var resume = document.getElementById('minifiche_resume');
display_num(resume);
}
/* La vue minifiche-resume */
function init_minifiche_bilan() {
var bilan = document.getElementById('minifiche_bilan');
display_num(bilan);
}
function set_minificheinit() {
var coldroite = document.getElementById('coldroite');
var off = 0;
var offbis = 0;
off = get_offset_top('infosref');
offbis = get_offset_top('coldroite');
if ((offbis + 50) > off) {
/* On corrige le bug d'offset du au table-cell */
for (var i = 0; i < nb_child(coldroite); i++) {
if (coldroite.children[i].id == 'infosref') {
break;
}
off += get_height(coldroite.children[i]);
}
}
minifiche_posinit = parseInt(off);
}
function init_minifiche() {
var id = document.getElementById('infoscontent');
if (id) {
set_minificheinit();
if (id) {
id.style.top = minifiche_posinit + "px";
if (document.addEventListener) { /* ie 8+ */
add_event(window, "scroll", function() {scroll_minifiche(id);});
scroll_minifiche(id);
}
}
init_minifiche_view();
}
}
function scroll_minifiche(id) {
var minifiche = document.getElementById('infos');
var footer = document.getElementById('footer') || document.getElementById('footer-compte');
if ( minifiche && footer) {
if (typeof(footer) == "undefined") {
return;
}
set_minificheinit();
var scrollY = getY();
var height = get_height(minifiche);
if ((scrollY) >= (minifiche_posinit) && is_desktop_device()) {
if (((scrollY + height + 16) > footer.offsetTop)) {
id.style.top = footer.offsetTop - (scrollY + height) - 8 + "px";
} else {
id.style.top = 0.2 + "em";
}
add_class(id, "floatable");
} else {
remove_class(id, "floatable");
}
}
}/*--------------------------------------------*/
/* General */
/* Gestion du panier */
/* Ajout/Suppresssion article */
/*--------------------------------------------*/
/********************************************************/
/************************* General **********************/
/********************************************************/
function only_one_product_by_classname(row, classname) {
var products = document.getElementsByClassName(classname);
if (products && row) {
for(var i = 0; i < products.length; i++) {
products[i].classList.remove("isSelected");
}
row.classList.add('isSelected');
}
}
/* decaler le copyright vers le haut si panier mobile apparent */
function check_panierbar() {
var target = document.getElementById('basketbar'),
eltCopyright = document.getElementById('copyright');
if ( !target || !eltCopyright ) {
return;
}
if ( target.getAttribute("class").indexOf("isFull") != -1 ) {
eltCopyright.classList.add("hasPanierMobile");
} else {
eltCopyright.classList.remove("hasPanierMobile");
}
}
/* surveiller display du panier mobile */
function observe_panierbar() {
if(typeof MutationObserver == "function") {
var target = document.getElementById('basketbar');
var observer = new MutationObserver(function (mutations) {
mutations.forEach(function (mutation) {
check_panierbar();
});
});
var config = {
attributes: true
};
observer.observe(target, config);
}
}
/* redirection vers le panier */
function redirect_tunnel(element) {
/* popup maintenance */
onmaintenance(element);
/* redirection vers panier */
let url = construct_url("https://paiement.societe.com/pages/paiement-new.html");
gana_event(url, 'Fiche_entreprise', 'Vitrine', 'Commander_haut_panier');
}
/********************************************************/
/******************* Gestion du panier ******************/
/********************************************************/
var infosPanier = {};
function init_recup_panier() {
/* recup JSON panier pour la 1e fois */
if (infosPanier == undefined || Object.keys(infosPanier).length == 0) {
/* recuperer infos CGI panier */
recup_infos_panier();
} else {
/* renseigner infos compte dans header */
if ( document.getElementById('user_content') ) {
compte_result();
}
/* afficher panier */
if ( document.getElementById('basketbar') || document.getElementById('basketdesktop') ) {
collect_basket();
}
/* gerer affichage page offres */
if ( document.location.href.indexOf("/offres.html") != -1 || document.location.href.indexOf("/offres-comparatif.html") != -1 ) {
display_page_offres();
}
}
/* ajout prdt panier */
add_prdt_basket();
window.addEventListener('focus', function() {
/* verif infos au focus sur page */
recup_infos_panier();
/* fermer panier */
close_mobile_basket();
close_desktop_basket();
/* rediriger sur tunnel */
redirection_tunnel();
});
window.addEventListener('resize', function(){
/* fermer panier */
close_mobile_basket();
close_desktop_basket();
/* rediriger sur tunnel */
redirection_tunnel();
});
/* rediriger sur tunnel */
redirection_tunnel();
}
/* ajout prdt panier */
function add_prdt_basket() {
let prdts = document.querySelectorAll(".xIsProduct"),
abos = document.querySelectorAll(".xIsAbo");
/* ajout prdt */
for ( let p = 0; p < prdts.length; p++ ) {
prdts[p].addEventListener("click", function() {
pc(prdts[p]);
});
}
/* ajout abo */
for ( let a = 0; a < abos.length; a++ ) {
abos[a].addEventListener("click", function(e) {
/* bloquer l'ajout au panier */
if ( e.srcElement.className.indexOf("isDisabled") != -1 || e.srcElement.className.indexOf("isCourant") != -1 ) {
return;
}
ajout_abonnement_plus(abos[a]);
});
}
}
/* rediriger sur le tunnel */
function redirection_tunnel() {
document.getElementById("button_mybasket").addEventListener('click', function(){
if ( window.innerWidth < 1000 ) {
gana_event(null, 'Header', 'Panier');
document.location.href = construct_url("https://paiement.societe.com/pages/paiement-new.html");
}
});
}
/* recuperer infos CGI panier */
function recup_infos_panier(callback, paramCallback) {
fetch("/cgi-bin/panier-api?utf8=1")
.then(function(response) {
/* traitement JSON */
if ( response.ok ) {
response.json().then(function(data) {
/* stockage infos */
infosPanier = data;
/* callback */
if (callback && typeof callback == "function") {
if ( paramCallback ) {
callback(paramCallback);
} else {
callback();
}
} else {
/* renseigner infos compte dans header */
if ( document.getElementById('user_content') ) {
compte_result();
}
/* afficher panier */
if ( document.getElementById('basketbar') || document.getElementById('basketdesktop') ) {
collect_basket();
}
/* gerer affichage page offres */
if ( document.location.href.indexOf("/offres.html") != -1 || document.location.href.indexOf("/offres-comparatif.html") != -1 ) {
display_page_offres();
}
}
})
}
/* erreur */
else {
/* si erreur recup devis -> suppression cookie PID */
if ( response.status == 404 ) {
response.json().then(function(data) {
let dataContent = data["data"],
errorDevis = false;
for ( item in dataContent ) {
let msg = dataContent[item]["message"];
if ( msg && msg != undefined && msg != "" ) {
let messageTable = msg.split("|");
if ( messageTable[0].indexOf("8") != -1 ) {
errorDevis = true;
}
}
}
if ( errorDevis == true ) {
eraseCookie(pidcookiename);
recup_infos_panier();
} else {
manage_errors("Récupération de votre panier", response.status);
}
})
} else {
manage_errors("Récupération de votre panier", response.status);
/* afficher erreur dans panier */
display_error_basket();
}
}
})
/* erreur */
.catch(function(error) {
manage_errors("Problème avec l'opération fetch (Récupération du panier)", error.message);
/* afficher erreur dans panier */
display_error_basket();
});
}
/* afficher panier */
function collect_basket(status) {
/* recup JSON panier pour la 1e fois */
if (infosPanier == undefined || Object.keys(infosPanier).length == 0) {
/* recuperer infos CGI panier */
recup_infos_panier(collect_basket);
return;
}
if ( infosPanier["data"]["produits"].length == 0 ) {
/* cacher panier */
if ( document.getElementById("basketbar") ) {
document.getElementById("basketbar").classList.remove("isFull");
document.getElementById("button_mybasket").classList.add("empty");
if ( document.getElementById("button_mybasket2") ) {
document.getElementById("button_mybasket2").classList.add("empty");
}
}
if (document.getElementById("basketdesktop")) {
document.getElementById("basketdesktop").classList.remove("isFull");
document.getElementById("button_mybasket").classList.add("empty");
if ( document.getElementById("button_mybasket2") ) {
document.getElementById("button_mybasket2").classList.add("empty");
}
close_desktop_basket();
}
/* mise a jour panier header */
display_head_basket();
} else {
/* remplir panier header */
display_head_basket();
/* recalculer hauteur panier a la suppression */
if ( status && status == "delProduct" && document.getElementById("basketdesktop").classList.contains("isOpen") ) {
/* si panier vide */
if ( infosPanier["data"]["produits"].length == 0 ) {
close_desktop_basket();
} else {
height_desktop_basket();
}
}
}
/* remplir panier */
status_basket(status);
/* concordance prdt panier et prdt fiche */
synchro_panier_prdtlist();
/* affichage notif si suppression automatique abo */
if ( infosPanier["data"]["deletedprod"].length != 0 ) {
display_notif_delete_prdt(infosPanier["data"]["deletedprod"]);
}
}
/* notif si suppression automatique prdt */
function display_notif_delete_prdt(infos) {
let client = infosPanier["data"]["client"],
aboTable = [],
msg = "",
aboNow = "",
src = "",
display = false;
/* abo utilisateur */
if ( client["connected"] == true ) {
if ( client["isillim"] == true ) {
if ( client["periode"] == 1 ) {
aboNow = "ILLIMITE mensuel";
} else if ( client["periode"] == 12 ) {
aboNow = "ILLIMITE annuel";
} else {
aboNow = "ILLIMITE";
}
} else if ( client["isplus"] == true ) {
if ( client["periode"] == 1 ) {
aboNow = "PLUS mensuel";
} else if ( client["periode"] == 12 ) {
aboNow = "PLUS annuel";
} else {
aboNow = "PLUS";
}
}
}
/* stocker detail prdt delete */
for ( prdt in infos ) {
if ( infos[prdt]["typeproduit"] == "abo" ) {
if ( infos[prdt]["message"].indexOf("double") != -1 ) {
src = "double";
aboTable[prdt] = infos[prdt];
display = true;
} else if ( infos[prdt]["message"].indexOf("identique") != -1 ) {
src = "identique";
aboTable[prdt] = infos[prdt];
display = true;
} else if ( infos[prdt]["message"].indexOf("inferieur") != -1) {
src = "inferieur";
aboTable[prdt] = infos[prdt];
display = true;
}
}
}
/* quel message afficher */
if ( aboTable.length == 1 ) {
switch (src) {
case "double":
msg = 'Vous aviez déjà un abonnement dans votre panier, vous ne pouvez souscrire à deux offres en même temps, votre panier a été modifié.';
break;
case "identique":
msg = 'Vous bénéficiez déjà de l\'offre "' + aboNow + '". Vous ne pouvez souscrire à deux offres identiques, votre panier a été modifié';
break;
case "inferieur":
msg = 'Vous bénéficiez déjà de l\'offre "' + aboNow + '". Vous ne pouvez souscrire à une offre inférieure, votre panier a été modifié';
break;
default:
msg = 'Vous bénéficiez déjà de l\'offre "' + aboNow + '". Vous ne pouvez souscrire à deux offres en même temps, votre panier a été modifié';
}
} else if ( aboTable.length > 1 ) {
msg = 'Vous bénéficiez déjà de l\'offre "' + aboNow + '". Vous ne pouvez souscrire à deux offres en même temps, votre panier a été modifié';
}
/* afficher la notif si suppression automatique */
if ( display == true ) {
let param = {
contexte: "",
msg: msg,
state: "alert",
closeState: true,
linkText: "",
linkHref: "",
gapParam: ""
}
if ( window.innerWidth < 1000 ) {
param["contexte"] = "mobile";
param["gapParam"] = "basketbar";
} else {
param["contexte"] = "desktop";
/* sur la fiche */
if ( document.getElementById("header_fiche_floatable") && document.getElementById("identite_fiche_floatable") ) {
if ( document.getElementById("header_fiche_floatable").className.indexOf("isFixed") == -1 ) {
param["gapParam"] = 170;
} else {
if ( document.getElementById("identite_fiche_floatable").className.indexOf("isFixed") == -1 ) {
param["gapParam"] = "header_fiche_floatable";
} else {
param["gapParam"] = "identite_fiche_floatable";
}
}
}
/* sur autres pages */
else {
if ( getY() <= 140 ) {
param["gapParam"] = "menu";
}
}
}
/* afficher notif */
display_temporary_msg(param);
}
}
/* afficher erreur dans panier */
function display_error_basket() {
/* remplir panier header */
display_head_basket("error");
/* remplir panier */
status_basket("error");
}
/* remplir panier header */
function display_head_basket(status) {
/* erreur recup panier */
if ( status && status == "error" ) {
document.getElementById("baskethead_nb").innerHTML = "!";
document.getElementById("basketheadfloat_nb").innerHTML = "!";
}
/* recup panier ok */
else {
let products = infosPanier["data"]["produits"];
if ( document.getElementById("baskethead_nb") != null ) {
document.getElementById("baskethead_nb").innerHTML = products.length;
}
if ( document.getElementById("basketheadfloat_nb") != null ) {
document.getElementById("basketheadfloat_nb").innerHTML = products.length;
}
}
}
/* ouverture/fermeture panier au swipe */
function swipe_panier_action (result) {
if ( result && result == "down" ) {
close_mobile_basket();
}
else if ( result && result == "up" ) {
open_mobile_basket();
}
}
/* ouvrir panier mobile */
function open_mobile_basket() {
let basket = document.getElementById("basketbar");
/* display lien generer devis */
display_devis("mobile");
height_mobile_basket();
basket.classList.add("isOpen");
document.body.style.overflow = "hidden";
}
/* fermer panier mobile */
function close_mobile_basket(action) {
let basket = document.getElementById("basketbar");
basket.classList.remove("isOpen");
document.body.style.overflow = "";
if ( !action || action != "total" ) {
document.querySelector(".soMobileCart .soCart__scroll").style.height = "";
} else {
document.querySelector(".soMobileCart .soCart__scroll").style.height = "0";
setTimeout(function(){
basket.classList.remove("isFull");
document.getElementById("button_mybasket").classList.add("empty");
if ( document.getElementById("button_mybasket2") ) {
document.getElementById("button_mybasket2").classList.add("empty");
}
}, 300);
}
}
/* ouvrir panier desktop */
var scroll = 0;
function open_desktop_basket() {
var basket = document.getElementById("basketdesktop");
if ( !basket.classList.contains('isFull') ) {
return;
}
/* bloquer le scroll */
scroll = getY();
window.addEventListener("scroll", block_scroll);
if ( document.getElementById("header_fiche_floatable") && !document.getElementById("header_fiche_floatable").classList.contains("isFixed") ) {
document.getElementById("header_fiche_floatable").style.display = "none";
}
if ( document.getElementById("identite_fiche_floatable") && !document.getElementById("identite_fiche_floatable").classList.contains("isFixed") ) {
document.getElementById("identite_fiche_floatable").style.display = "none";
}
/* display lien generer devis */
display_devis("desktop");
/* position panier head float */
if ( document.getElementById("header_fiche_floatable") && document.getElementById("header_fiche_floatable").className.indexOf("isFixed") != -1 ) {
basket.style.right = "20px";
basket.style.top = "42px";
basket.style.position = "fixed";
}
/* position panier head fix */
else {
let widthGlobal = window.innerWidth,
head = document.getElementById("tablehead"),
positionX = widthGlobal - ( head.offsetLeft + head.offsetWidth ),
menu = document.getElementById("menu"),
positionY = menu.offsetTop - 15;
basket.style.right = positionX + "px";
basket.style.top = positionY + "px";
}
height_desktop_basket();
basket.classList.add("isOpen");
/* supprimer/ajouter ecouteurs */
document.getElementById("button_mybasket").removeEventListener('pointerover', open_desktop_basket);
if ( document.getElementById("button_mybasket2") ) {
document.getElementById("button_mybasket2").removeEventListener('pointerover', open_desktop_basket);
}
window.addEventListener('pointermove', verif_close_desktop_basket);
}
/* bloquer scroll */
function block_scroll() {
document.body.scrollTop = scroll;
document.documentElement.scrollTop = scroll;
}
function verif_close_desktop_basket(e) {
let basket = document.getElementById("basketdesktop"),
basketContent = document.querySelector(".soDesktopCart"),
basketTop = basket.offsetTop - 7, // 7 = difference entre bottom du btn basket et top du basket
basketBottom = basketTop + basketContent.offsetHeight + 7,
basketLeft = basket.offsetLeft,
basketRight = basketLeft + basket.offsetWidth,
posX = e.clientX,
posY = e.clientY,
out = false;
if ( document.getElementById("header_fiche_floatable") && document.getElementById("header_fiche_floatable").classList.contains("isFixed") ) {
var picto = document.getElementById("button_mybasket2"),
head = document.getElementById("header_fiche_floatable"),
headLeft = head.offsetLeft,
headRight = headLeft + head.offsetWidth,
headTop = head.offsetTop,
headBottom = headTop + head.offsetHeight,
btnLeft = headRight - picto.offsetWidth;
} else {
var picto = document.getElementById("button_mybasket"),
head = document.getElementById("tablehead"),
headLeft = head.offsetLeft,
headRight = headLeft + head.offsetWidth,
headTop = head.offsetTop,
headBottom = headTop + head.offsetHeight,
btnLeft = headRight - picto.offsetWidth;
}
if ( posX < (basketLeft - 10) || posX > (basketRight + 10) || posY < basketTop || posY > (basketBottom + 5) ) {
out = true;
if ( posX < btnLeft || posX > headRight || posY < headTop || posY > headBottom ) {
out = true;
} else {
out = false;
}
}
if ( out == true ) {
close_desktop_basket();
}
}
/* fermer panier desktop */
function close_desktop_basket() {
let basket = document.getElementById("basketdesktop");
basket.classList.remove("isOpen");
document.querySelector(".soDesktopCart .soCart__scroll").style.height = "";
/* gestion ecouteurs */
document.getElementById("button_mybasket").addEventListener('pointerover', open_desktop_basket);
if (document.getElementById("button_mybasket2")) {
document.getElementById("button_mybasket2").addEventListener('pointerover', open_desktop_basket);
}
window.removeEventListener('pointermove', verif_close_desktop_basket);
/* debloquer le scroll */
window.removeEventListener("scroll", block_scroll);
if ( document.getElementById("header_fiche_floatable") && !document.getElementById("header_fiche_floatable").classList.contains("isFixed") ) {
document.getElementById("header_fiche_floatable").style.display = "";
}
if ( document.getElementById("identite_fiche_floatable") && !document.getElementById("identite_fiche_floatable").classList.contains("isFixed") ) {
document.getElementById("identite_fiche_floatable").style.display = "";
}
}
/* hauteur panier mobile */
function height_mobile_basket() {
let cible = document.querySelector(".soMobileCart .soCart__scroll"),
heightTotal = window.innerHeight - 6,
heightElement = 0;
heightElement += 45; //hauteur de .soMobileCart__title geree par animation CSS -> pbm recup hauteur finale
heightElement += document.querySelector(".soMobileCart .soCart__recapArticle").offsetHeight;
heightElement += document.querySelector(".soMobileCart .soCart__recapTotal").offsetHeight + 40;//padding du recap Total
heightElement += 40; //= padding du panier
cible.style.height = (heightTotal - heightElement) + "px";
cible.addEventListener('touchmove', function(event) {
event.stopPropagation(); //stopper le event click
});
}
/* hauteur panier desktop */
function height_desktop_basket() {
let basket = document.getElementById("basketdesktop"),
cible = document.querySelector(".soDesktopCart .soCart__scroll"),
liste = document.querySelector(".soDesktopCart .soCart__list"),
topBasket = basket.style.top;
topBasket = topBasket.split("px");
topBasket = Number(topBasket[0]);
let heightTotal = window.innerHeight - topBasket,
heightElement = 0;
heightElement += document.querySelector(".soDesktopCart .soCart__title").offsetHeight;
heightElement += document.querySelector(".soDesktopCart .soCart__recapArticle").offsetHeight;
heightElement += document.querySelector(".soDesktopCart .soCart__recapTotal").offsetHeight + 40;//padding du recap Total
heightElement += 40 + 20 + 15; //= padding du panier + box shadow
/* si panier plus grand que fenetre */
if ( (liste.offsetHeight + 55) > (heightTotal - heightElement) ) {
cible.style.height = (heightTotal - heightElement) + "px";
}
/* si panier plus petit que fenetre */
else {
cible.style.height = (liste.offsetHeight + 55) + "px";
}
}
/* remplir panier */
function status_basket(status) {
/* erreur recup panier */
if ( status && status == "error" ) {
/* cacher panier */
if (document.getElementById("basketbar")) {
document.getElementById("basketbar").classList.remove("isFull");
document.getElementById("basketbar_nb").innerHTML = "0";
document.getElementById("basketbar_prdt").innerHTML = " article";
document.getElementById("basketbar_select").innerHTML = " ajouté";
document.getElementById("button_mybasket").classList.add("empty");
if ( document.getElementById("button_mybasket2") ) {
document.getElementById("button_mybasket2").classList.add("empty");
}
}
if (document.getElementById("basketdesktop")) {
document.getElementById("basketdesktop").classList.remove("isFull");
document.getElementById("basketdesktop_nb").innerHTML = "0";
document.getElementById("basketdesktop_prdt").innerHTML = " article";
document.getElementById("basketdesktop_select").innerHTML = " ajouté";
document.getElementById("button_mybasket").classList.add("empty");
if ( document.getElementById("button_mybasket2") ) {
document.getElementById("button_mybasket2").classList.add("empty");
}
}
}
/* recup panier ok */
else {
let data = infosPanier["data"],
products = infosPanier["data"]["produits"];
/* nb prdt */
if (document.getElementById("basketbar")) {
document.getElementById("basketbar_nb").innerHTML = products.length;
}
if (document.getElementById("basketdesktop")) {
document.getElementById("basketdesktop_nb").innerHTML = products.length;
}
/* construire liste articles panier */
construct_content_basket();
/* panier vide */
if (products.length == 0) {
/* cacher panier */
if (document.getElementById("basketbar")) {
document.getElementById("basketbar").classList.remove("isFull");
document.getElementById("button_mybasket").classList.add("empty");
if ( document.getElementById("button_mybasket2") ) {
document.getElementById("button_mybasket2").classList.add("empty");
}
}
if (document.getElementById("basketdesktop")) {
document.getElementById("basketdesktop").classList.remove("isFull");
document.getElementById("button_mybasket").classList.add("empty");
if ( document.getElementById("button_mybasket2") ) {
document.getElementById("button_mybasket2").classList.add("empty");
}
}
/* singulier terme */
if (document.getElementById("basketbar")) {
document.getElementById("basketbar_prdt").innerHTML = " article";
document.getElementById("basketbar_select").innerHTML = " ajouté";
}
if (document.getElementById("basketdesktop")) {
document.getElementById("basketdesktop_prdt").innerHTML = " article";
document.getElementById("basketdesktop_select").innerHTML = " ajouté";
}
}
}
}
/* remplir panier mobile */
function display_mobile_basket() {
if ( document.getElementById("basketbar") != null ) {
let basket = document.getElementById("basketbar"),
data = infosPanier["data"],
products = infosPanier["data"]["produits"];
/* initialiser fermeture ou ouverture panier au swipe */
swipe_Y("basketbar", swipe_panier_action);
/* initialiser fermture panier au click */
document.getElementById("basketbar").getElementsByClassName("close")[0].addEventListener( "click", close_mobile_basket);
/* singulier terme */
if (products.length == 1) {
document.getElementById("basketbar_prdt").innerHTML = " article";
document.getElementById("basketbar_select").innerHTML = " ajouté";
}
/* pluriel terme */
else {
document.getElementById("basketbar_prdt").innerHTML = " articles";
document.getElementById("basketbar_select").innerHTML = " ajoutés";
}
/* total HT */
document.getElementById("basketbar_ht").innerHTML = data["sommeht"] + "€ HT";
document.getElementById("basketbar_recap_ht").innerHTML = data["sommeht"] + "€ HT";
document.getElementById("basketbar_reel_ht").innerHTML = data["sommereelht"] + "€ HT";
/* total TTC */
document.getElementById("basketbar_ttc").innerHTML = data["sommettc"] + "€ TTC";
document.getElementById("basketbar_recap_ttc").innerHTML = data["sommettc"] + "€ TTC";
document.getElementById("basketbar_reel_ttc").innerHTML = data["sommereelttc"] + "€ TTC";
/* affichage prix remise */
if ( (data["sommettc"] != data["sommereelttc"]) || (data["sommeht"] != data["sommereelht"]) ) {
document.querySelector(".soMobileCart .soCart__recapArticle .recap").classList.add("promo");
/* ne pas afficher le TTC a 0 si HT est a O */
if ( data["sommeht"] == "0.00" && data["sommettc"] == "0.00" ) {
document.getElementById("basketbar_ttc").style.display = "none";
}
} else {
document.querySelector(".soMobileCart .soCart__recapArticle .recap").classList.remove("promo");
}
/* ouverture panier */
basket.classList.add("isFull");
document.getElementById("button_mybasket").classList.remove("empty");
if ( document.getElementById("button_mybasket2") ) {
document.getElementById("button_mybasket2").classList.remove("empty");
}
}
}
/* remplir panier desktop */
function display_desktop_basket() {
if ( document.getElementById("basketdesktop") != null ) {
let basket = document.getElementById("basketdesktop"),
data = infosPanier["data"],
products = infosPanier["data"]["produits"];
/* initialiser fermeture panier au click */
document.getElementById("basketdesktop").getElementsByClassName("close")[0].addEventListener( "click", close_desktop_basket);
/* singulier terme */
if (products.length == 1) {
document.getElementById("basketdesktop_prdt").innerHTML = " article";
document.getElementById("basketdesktop_select").innerHTML = " ajouté";
}
/* pluriel terme */
else {
document.getElementById("basketdesktop_prdt").innerHTML = " articles";
document.getElementById("basketdesktop_select").innerHTML = " ajoutés";
}
/* total HT */
document.getElementById("basketdesktop_ht").innerHTML = data["sommeht"] + "€ HT";
document.getElementById("basketdesktop_recap_ht").innerHTML = data["sommeht"] + "€ HT";
document.getElementById("basketdesktop_reel_ht").innerHTML = data["sommereelht"] + "€ HT";
/* total TTC */
document.getElementById("basketdesktop_ttc").innerHTML = data["sommettc"] + "€ TTC";
document.getElementById("basketdesktop_recap_ttc").innerHTML = data["sommettc"] + "€ TTC";
document.getElementById("basketdesktop_reel_ttc").innerHTML = data["sommereelttc"] + "€ TTC";
/* affichage prix remise */
if ( (data["sommettc"] != data["sommereelttc"]) || (data["sommeht"] != data["sommereelht"]) ) {
document.querySelector(".soDesktopCart .soCart__recapArticle .recap").classList.add("promo");
/* ne pas afficher le TTC a 0 si HT est a O */
if ( data["sommeht"] == "0.00" && data["sommettc"] == "0.00" ) {
document.getElementById("basketdesktop_ttc").style.display = "none";
}
} else {
document.querySelector(".soDesktopCart .soCart__recapArticle .recap").classList.remove("promo");
}
/* ouverture panier */
basket.classList.add("isFull");
document.getElementById("button_mybasket").classList.remove("empty");
if ( document.getElementById("button_mybasket2") ) {
document.getElementById("button_mybasket2").classList.remove("empty");
}
/* initialisation ouverture panier au hover */
if ( window.innerWidth >= 1000 && basket.classList.contains("isFull") ) {
document.getElementById("button_mybasket").addEventListener('pointerover', open_desktop_basket);
}
if ( document.getElementById("button_mybasket2") && window.innerWidth >= 1000 && basket.classList.contains("isFull") ) {
document.getElementById("button_mybasket2").addEventListener('pointerover', open_desktop_basket);
}
}
}
/* construire conteu du panier */
function construct_content_basket() {
let products = infosPanier["data"]["produits"],
denoTable = [],
calc = 0,
content = "";
/* stockage infos utiles */
for ( prdt in products) {
/* recuperer libelle en fonction prdt */
let item = "";
if ( products[prdt]["deno"] == "Divers") {
item = products[prdt]["label"] + " (siren : " + products[prdt]["siren"] + ")";
} else {
item = products[prdt]["deno"] + " (siren : " + products[prdt]["siren"] + ")";
}
/* stocker infos pour affichage */
let infos = {
"nom": products[prdt]["nom"],
"label": products[prdt]["label"],
"prixreelht": products[prdt]["prixreelht"],
"prixht": products[prdt]["prixht"],
"prodstr": products[prdt]["prodstr"],
"typeproduit": products[prdt]["typeproduit"],
"reference": products[prdt]["reference"],
"prodstr": products[prdt]["prodstr"],
"dateformat": ""
};
/* si pas de date -> date du jour */
if ( products[prdt]["dateformat"] == "" || products[prdt]["dateformat"].indexOf("label") != -1) {
let today = new Date(),
day = today.getDate().toString(),
month = (today.getMonth() + 1).toString(),
year = today.getFullYear().toString();
if ( day.length == 1 ) {
day = "0" + day;
}
if ( month.length == 1 ) {
month = "0" + month;
}
infos.dateformat = day + "/" + month + "/" + year;
} else {
infos.dateformat = products[prdt]["dateformat"];
}
/* creation 1e item */
if ( calc == 0 ) {
/* stocker siren */
denoTable[item] = {
"siren": products[prdt]["siren"]
};
/* stocker infos pour affichage */
denoTable[item].prdts = [];
/* construction tableau recap produit */
denoTable[item].prdts.push(infos);
}
/* creation items suivants ou insertion dans item existant */
else {
/* verif si bloc societe existe deja */
let exist = false;
for ( recap in denoTable ) {
let recapDeno = recap;
if (item == recapDeno) {
exist = true;
}
}
/* s'il n'existe pas l'ajouter a la liste */
if ( exist == false ) {
/* stocker siren */
denoTable[item] = {
"siren": products[prdt]["siren"]
};
/* creer nouvel item */
denoTable[item].prdts = [];
}
/* insertion prdt dans tableau recap */
denoTable[item].prdts.push(infos);
}
calc++;
}
/* creation html panier */
create_content_basket(denoTable);
}
/* creation html panier */
function create_content_basket(denoTable) {
/* si prise en charge template par navigateur */
if ( "content" in document.createElement("template") ) {
/* vider panier mobile */
if ( document.getElementById("basketbar_list") ) {
let childrenMobile = document.querySelectorAll("#basketbar_list .soWrapper");
for ( let c = 0; c < childrenMobile.length; c++ ) {
childrenMobile[c].remove();
}
}
/* vider panier desktop */
if ( document.getElementById("basketdesktop_list") ) {
let childrenDesktop = document.querySelectorAll("#basketdesktop_list .soWrapper");
for ( let c = 0; c < childrenDesktop.length; c++ ) {
childrenDesktop[c].remove();
}
}
for ( deno in denoTable ) {
/* deno */
let denoAlone = deno.split(" (siren :");
denoAlone = denoAlone[0];
let name = document.createElement("p");
name.classList.add("deno");
if ( denoAlone.length > 45 ) {
let denoFinal = denoAlone.substring(0, 45);
denoFinal += "...";
let contentName = document.createTextNode(denoFinal);
name.appendChild(contentName);
} else {
let contentName = document.createTextNode(denoAlone);
name.appendChild(contentName);
}
/* bloc societe */
let wrapper = document.createElement("div");
wrapper.classList.add("soWrapper");
wrapper.appendChild(name);
/* blocs articles */
for ( prdtUnique in denoTable[deno]["prdts"] ) {
let product = denoTable[deno]["prdts"][prdtUnique];
/* cloner le template */
let templateArticle = document.getElementById("template_article_basket"),
cloneArticle = document.importNode(templateArticle.content, true);
/* creer bloc article */
let prdtBloc = document.createElement("div");
prdtBloc.classList.add("article");
prdtBloc.setAttribute("data-prodstr", product["prodstr"]);
prdtBloc.setAttribute("data-prodprice", product["prixht"]);
prdtBloc.setAttribute("data-prodcat", (product["reference"] + " - " + product["label"]));
prdtBloc.appendChild(cloneArticle);
/* renseigner infos prdt */
prdtBloc.querySelector(".xArticleDate").textContent = product["dateformat"];
prdtBloc.querySelector(".xArticleName").textContent = product["nom"];
prdtBloc.querySelector(".xArticlePrice").innerHTML = product["prixht"] + "€";
/* si prix promo */
if ( product["prixht"] != product["prixreelht"]) {
let reelPrice = prdtBloc.querySelector(".xArticlePriceReel");
reelPrice.innerHTML = product["prixreelht"] + "€";
reelPrice.parentNode.classList.add("promo");
}
/* format article */
let wording = prdtBloc.querySelector(".xArticleFormat");
if ( product["typeproduit"] == "abo" ) {
wording.textContent = "Offre ajoutée le ";
}
/* picto article */
let picto = prdtBloc.querySelector(".xArticlePicto");
if ( product["typeproduit"] == "abo" ) {
/* abo PLUS */
if ( product["reference"] == 49 ) {
picto.classList.add("offrePlus");
}
/* abo illimite */
else if ( product["reference"] == 51 ) {
picto.classList.add("offreIllimite");
}
} else {
picto.classList.add(product["typeproduit"]);
}
/* remplir bloc */
wrapper.appendChild(prdtBloc);
/* remplir panier mobile */
if ( document.getElementById("basketbar_list") ) {
document.getElementById("basketbar_list").appendChild(wrapper);
}
}
}
/* remplir panier desktop */
if ( document.getElementById("basketdesktop_list") ) {
let contentCible = document.getElementById("basketbar_list").innerHTML;
document.getElementById("basketdesktop_list").innerHTML = contentCible;
}
/* init suppression article panier mobile */
let deleteMobile = document.querySelectorAll("#basketbar_list .xArticleDelete");
for ( let d = 0; d < deleteMobile.length; d++ ) {
add_event(deleteMobile[d], "click", function() {
delete_basket_item(deleteMobile[d]);
});
}
/* init suppression article panier desktop */
let deleteDesktop = document.querySelectorAll("#basketdesktop_list .xArticleDelete");
for ( let d = 0; d < deleteDesktop.length; d++ ) {
add_event(deleteDesktop[d], "click", function() {
delete_basket_item(deleteDesktop[d]);
});
}
/* afficher panier */
display_mobile_basket();
display_desktop_basket();
}
/* sinon */
else {
open_popup_message("Action impossible", "Cette fonctionnalité n'est pas prise en charge par votre navigateur. Merci de réessayer avec une version plus récente.", "soSecondaryColor5");
}
}
/* afficher form crea devis en fonction statut connexion */
function display_devis(context) {
/* si pas connecte -> cacher lien generer devis */
if ( infosPanier["data"]["client"]["connected"] == false ) {
if ( context && context == "desktop" ) {
document.getElementById("basketdesktop_devis").classList.add("isHidden");
} else if ( context && context == "mobile" ) {
document.getElementById("basketbar_devis").classList.add("isHidden");
}
}
/* si connecte */
else {
/* si reprise devis -> cacher lien */
if ( infosPanier["data"]["etat"] == "devis" ) {
if ( context && context == "desktop" ) {
document.getElementById("basketdesktop_devis").classList.add("isHidden");
} else if ( context && context == "mobile" ) {
document.getElementById("basketbar_devis").classList.add("isHidden");
}
} else {
/* renseigner date fin devis */
let today = Date.now(),
duree = parseInt(infosPanier["data"]["dureedevis"]),
finDevis = 0;
duree = duree * 24 * 60 * 60 * 1000;
finDevis = today + duree;
finDevis = new Date(finDevis);
finDevis = finDevis.getDate() + "/" + ( finDevis.getMonth() + 1 ) + "/" + finDevis.getFullYear();
document.getElementById("basketbar_date_devis").innerHTML = finDevis;
document.getElementById("basketdesktop_date_devis").innerHTML = finDevis;
if ( context && context == "desktop" ) {
document.getElementById("basketdesktop_devis").classList.remove("isHidden");
} else if ( context && context == "mobile" ) {
document.getElementById("basketbar_devis").classList.remove("isHidden");
}
}
}
}
/* fermer popup connexion devis */
function close_popup_devis() {
let popup = document.getElementById("popup");
if ( popup.className.indexOf("isHidden") == -1 ) {
let id = popup.querySelector(".Popup__content").id;
if ( id == "popup_connexion_devis" ) {
close_popup();
}
}
}
/* envoie requete crea devis */
function request_create_devis() {
let param = 'action=create',
fetchData = {
method: 'POST',
headers: {
'Content-Type': 'text/plain'
},
body: param
}
fetch("/cgi-bin/devis-api", fetchData)
.then(function(response) {
/* traitement JSON */
if ( response.ok ) {
response.json().then(function(data) {
/* afficher notif ok */
let param = {
contexte: "",
msg: 'Devis créé avec succès. Il est disponible dans la section "Devis" de votre compte.',
state: "confirmed",
closeState: true,
linkText: "||Voir mon devis",
linkHref: "https://paiement.societe.com/cgi-bin/compte-devis",
gapParam: ""
}
/* sur mobile */
if ( window.innerWidth < 1000 ) {
param["contexte"] = "mobile";
param["gapParam"] = "basketbar";
close_mobile_basket("total");
}
/* sur desktop */
else {
param["contexte"] = "desktop";
/* sur la fiche */
if ( document.getElementById("header_fiche_floatable") && document.getElementById("identite_fiche_floatable") ) {
if ( document.getElementById("header_fiche_floatable").className.indexOf("isFixed") == -1 ) {
param["gapParam"] = 170;
} else {
if ( document.getElementById("identite_fiche_floatable").className.indexOf("isFixed") == -1 ) {
param["gapParam"] = "header_fiche_floatable";
} else {
param["gapParam"] = "identite_fiche_floatable";
}
}
}
/* sur autres pages */
else {
if ( getY() <= 140 ) {
param["gapParam"] = "menu";
}
}
close_desktop_basket();
}
/* afficher notif */
display_temporary_msg(param);
/* mise a jour panier */
recup_infos_panier();
})
}
/* erreur */
else {
manage_errors("Génération de votre devis", response.status);
}
})
/* erreur */
.catch(function(error) {
manage_errors("Problème avec l'opération fetch (Génération du devis)", error.message);
});
}
/* gerer affichage page offres */
function display_page_offres() {
let dataClient = infosPanier["data"]["client"],
idAboGratuit = document.getElementById("id_gratuit").getAttribute("data-id"),
idAboPlusMensuel = document.getElementById("id_plus_mensuel").getAttribute("data-id"),
idAboPlusAnnuel = document.getElementById("id_plus_annuel").getAttribute("data-id"),
idAboIllimiteMensuel = document.getElementById("id_illimite_mensuel").getAttribute("data-id"),
idAboIllimiteAnnuel = document.getElementById("id_illimite_annuel").getAttribute("data-id");
/* reinitialisattion CTA */
reset_cta()
/* si connecte */
if ( dataClient["connected"] == true ) {
/* si abo plus */
if ( dataClient["isplus"] == true ) {
display_abo_plus();
}
/* si abo illlimite */
else if ( dataClient["isillim"] == true ) {
display_abo_illimite();
}
/* si abo gratuit */
else {
display_abo_gratuit();
}
}
/* MAJ CTA */
function display_cta(id, content, status) {
let element = document.getElementById(id);
if ( content && content != null && content != "") {
element.innerHTML = content;
}
if (status) {
element.classList.add(status);
} else {
element.classList.remove("isCourant");
element.classList.remove("isDisabled");
}
if ( document.location.href.indexOf("/offres-comparatif.html") != -1 ) {
let element2 = document.getElementById(id + "_bis"),
element3 = document.getElementById(id + "_ter");
if ( content && content != null && content != "") {
element2.innerHTML = content;
element3.innerHTML = content;
}
if (status) {
element2.classList.add(status);
element3.classList.add(status);
} else {
element2.classList.remove("isCourant");
element3.classList.remove("isCourant");
element2.classList.remove("isDisabled");
element3.classList.remove("isDisabled");
}
}
}
/* reinitialisattion CTA */
function reset_cta() {
display_cta(idAboGratuit, "S'inscrire", "");
display_cta(idAboPlusMensuel, "Sélectionner cette offre", "");
display_cta(idAboPlusAnnuel, "Sélectionner cette offre", "");
display_cta(idAboIllimiteMensuel, "Sélectionner cette offre", "");
display_cta(idAboIllimiteAnnuel, "Sélectionner cette offre", "");
}
/* gestion display abo plus */
function display_abo_plus() {
/* annuel */
if ( dataClient["periode"] == 12 || dataClient["periode"] === 0 ) {
display_cta(idAboPlusAnnuel, "Offre en cours", "isCourant");
display_cta(idAboPlusMensuel, "", "isDisabled");
display_cta(idAboIllimiteMensuel, "", "isDisabled");
display_cta(idAboGratuit, "", "isDisabled");
}
/* mensuel */
else if ( dataClient["periode"] == 1 ) {
display_cta(idAboPlusMensuel, "Offre en cours", "isCourant");
display_cta(idAboPlusAnnuel, "Passer en annuel", "");
display_cta(idAboGratuit, "", "isDisabled");
}
}
/* gestion display abo illimite */
function display_abo_illimite() {
/* annuel */
if ( dataClient["periode"] == 12 || dataClient["periode"] === 0 ) {
display_cta(idAboIllimiteAnnuel, "Offre en cours", "isCourant");
display_cta(idAboIllimiteMensuel, "", "isDisabled");
display_cta(idAboPlusMensuel, "", "isDisabled");
display_cta(idAboPlusAnnuel, "", "isDisabled");
display_cta(idAboGratuit, "", "isDisabled");
}
/* mensuel */
else if ( dataClient["periode"] == 1 ) {
display_cta(idAboIllimiteMensuel, "Offre en cours", "isCourant");
display_cta(idAboIllimiteAnnuel, "Passer en annuel", "");
display_cta(idAboPlusMensuel, "", "isDisabled");
display_cta(idAboPlusAnnuel, "", "isDisabled");
display_cta(idAboGratuit, "", "isDisabled");
}
}
/* gestion display abo gratuit */
function display_abo_gratuit() {
display_cta(idAboGratuit, "Offre en cours", "isCourant");
}
}
/********************************************************/
/**************** Ajout/Suppresssion article ************/
/********************************************************/
/* Ajout compteplus au panier */
function ajout_abonnement_plus(elem) {
/* recup JSON panier pour la 1e fois */
if (infosPanier == undefined || Object.keys(infosPanier).length == 0) {
/* recuperer infos CGI panier */
recup_infos_panier(ajout_abonnement_plus, elem);
return;
}
var url = construct_url("https://paiement.societe.com/pages/paiement-new.html"),
prodstr = elem.getAttribute("data-prodstr"),
offre = "";
/* gestion popup maintenance */
if ( typeof(maintenance) == "number" && maintenance == 1 ) {
open_popup_maintenance();
return
}
if ( infosPanier["data"]["produits"].length < MAX_BASKET ) {
request_panier("add", prodstr, "abo");
/* Determiner le produit */
if ( elem.parentNode.getAttribute("id").indexOf("societe_plus") != -1 ) {
offre = "Abonnement-S+";
} else if ( elem.parentNode.getAttribute("id").indexOf("dirigeant_plus") != -1 ) {
offre = "Abonnement-D+";
} else if ( elem.parentNode.getAttribute("id").indexOf("duo") != -1 ) {
offre = "Abonnement-Duo+";
} else if ( elem.parentNode.getAttribute("id").indexOf("offre_plus") != -1 ) {
offre = "Offre-Plus";
} else if ( elem.parentNode.getAttribute("id").indexOf("offre_illimite") != -1 ) {
offre = "Offre-Illimite";
}
setTimeout(function() {
/* si abonnement mensuel */
if ( elem.getAttribute("data-period") == "mensuel") {
/* gestion popup maintenance */
if ( typeof(maintenance) == "number" && maintenance == 1 ) {
open_popup_maintenance();
} else {
gana_event(null, offre, 'Click', 'Mensuel');
}
}
/* si abonnement annuel */
else {
/* gestion popup maintenance */
if ( typeof(maintenance) == "number" && maintenance == 1 ) {
open_popup_maintenance();
} else {
gana_event(null, offre, 'Click', 'Annuel');
}
}
}, 500);
} else {
alert("Impossible de rajouter un produit. Nombre maximum atteint.");
return;
}
}
/* concordance prdt panier et prdts fiche */
function synchro_panier_prdtlist() {
/* recup JSON panier pour la 1e fois */
if (infosPanier == undefined || Object.keys(infosPanier).length == 0) {
/* recuperer infos CGI panier */
recup_infos_panier(synchro_panier_prdtlist);
return;
}
let prdtList = document.querySelectorAll(".xIsProduct"),
prdtPanier = infosPanier["data"]["produits"];
/* synchro aspect prdt vitrine avec prdt panier */
for ( let p = 0; p < prdtList.length; p++) {
/* panier vide */
if (prdtPanier.length == 0) {
display_pictobasket_prdt("unselect", prdtList[p].id);
}
/* panier avec prdt */
else {
let refprdtList = prdtList[p].getAttribute("data-prodstr"),
synchro = false;
for ( item in prdtPanier ) {
if ( refprdtList && prdtPanier[item]["prodstr"] == refprdtList ) {
synchro = true;
}
}
if ( synchro == true ) {
display_pictobasket_prdt("select", prdtList[p].id);
} else {
display_pictobasket_prdt("unselect", prdtList[p].id);
}
}
}
}
/* delete prdt depuis panier */
function delete_basket_item(element) {
/* envoi gana event */
let prodcat = element.parentNode.parentNode.getAttribute("data-prodcat"),
prodzone = "Panier",
prodprice = element.parentNode.parentNode.getAttribute("data-prodprice"),
prodstr = element.parentNode.parentNode.getAttribute("data-prodstr");
if ( prodcat == null || prodcat == "" ) { prodcat = "NC"; }
if ( prodprice == null || prodprice == "" ) { prodprice = "NC"; }
gana_event(null, prodzone, 'Retrait', prodcat, parseInt(prodprice));
/* requete vers CGI panier-api */
request_panier("del", prodstr);
}
/* requete CGI paner-api */
function request_panier(action, prodstr, contexte) {
let param = 'action=' + action + '&prod=' + prodstr + "&utf8=1",
fetchData = {
method: 'POST',
headers: {
'Content-Type': 'text/plain'
},
body: param
}
fetch("/cgi-bin/panier-api", fetchData)
.then(function(response) {
/* traitement JSON */
if ( response.ok ) {
response.json().then(function(data) {
/* stockage infos */
infosPanier = data;
/* renseigner infos compte dans header */
if ( document.getElementById('user_content') ) {
compte_result();
}
/* afficher panier */
if ( document.getElementById('basketbar') || document.getElementById('basketdesktop') ) {
if ( action == "del" ) {
collect_basket("delProduct");
} else if ( action == "add" ) {
collect_basket("addProduct");
}
}
/* redirection panier si abo */
if ( contexte && contexte == "abo" ) {
document.location.href = construct_url("https://paiement.societe.com/pages/paiement-new.html");
}
})
}
/* erreur */
else {
/* duplication prdt panier */
if ( response.status == 409 ) {
/* afficher notif */
let param = {
contexte: "",
msg: 'Cet article se trouve déjà dans votre panier.',
state: "alert",
closeState: true,
linkText: "",
linkHref: "",
gapParam: ""
}
/* sur mobile */
if ( window.innerWidth < 1000 ) {
param["contexte"] = "mobile";
param["gapParam"] = "basketbar";
}
/* sur desktop */
else {
param["contexte"] = "desktop";
/* sur la fiche */
if ( document.getElementById("header_fiche_floatable") && document.getElementById("identite_fiche_floatable") ) {
if ( document.getElementById("header_fiche_floatable").className.indexOf("isFixed") == -1 ) {
param["gapParam"] = 170;
} else {
if ( document.getElementById("identite_fiche_floatable").className.indexOf("isFixed") == -1 ) {
param["gapParam"] = "header_fiche_floatable";
} else {
param["gapParam"] = "identite_fiche_floatable";
}
}
}
/* sur autres pages */
else {
if ( getY() <= 140 ) {
param["gapParam"] = "menu";
}
}
}
display_temporary_msg(param);
} else {
if ( action == "del" ) {
manage_errors("Suppression d'un article de votre panier", response.status);
} else if ( action == "add" ) {
manage_errors("Ajout d'un article dans votre panier", response.status);
}
}
}
})
/* erreur */
.catch(function(error) {
manage_errors("Problème avec l'opération fetch (Gestion du panier)", error.message);
});
}
/* Gestion de l'event click pour un ajout / suppression panier */
function pc(element) {
if (infosPanier == undefined || Object.keys(infosPanier).length == 0) {
/* recuperer infos CGI panier */
recup_infos_panier(pc, element);
return;
}
let prodcat = element.getAttribute("data-prodcat"),
prodzone = element.getAttribute("data-prodzone"),
prodstr = element.getAttribute("data-prodstr"),
prodprice = element.getAttribute("data-prodprice");
if ( prodcat == null || prodcat == "" ) { prodcat = "NC"; }
if ( prodzone == null || prodzone == "" ) { prodzone = "NC"; }
if ( prodprice == null || prodprice == "" ) { prodprice = "NC"; }
/* si ajout prdt dans panier */
if ( element.getAttribute("class").indexOf('isSelected') == -1 ) {
/* si ajout prdt possible */
if ( infosPanier["data"]["produits"].length < MAX_BASKET ) {
/* requete ajout prdt */
request_panier("add", prodstr);
}
/* si max prdts atteint */
else {
open_popup_message("Ajouter un produit dans votre panier", "Impossible d'ajouter un produit dans votre panier. Le nombre maximum a été atteint.", "soSecondaryColor5");
return;
}
}
/* si suppression prdt dans panier */
else {
/* gestion gana event */
gana_event(null, prodzone, 'Retrait', prodcat, parseInt(prodprice));
/* requete suppression prdt */
request_panier("del", prodstr);
}
}
/* gestion affichage picto panier au bout ligne prdt */
function display_pictobasket_prdt(action, id) {
let element = document.getElementById(id),
icoPlus = element.getElementsByClassName('basket-add')[0],
icoCheck = element.getElementsByClassName('basket-check')[0],
addNotif = element.getElementsByClassName('basket-notif')[0];
/* prdt dans panier */
if ( action == "select" ) {
/* passer la ligne en selected */
document.getElementById(id).classList.add("isSelected");
/* gestion affichage picto panier au bout ligne prdt */
icoPlus.classList.add("isInvisible");
addNotif.classList.add("add");
icoCheck.classList.remove("isInvisible");
}
/* prdt pas dans panier*/
else if ( action == "unselect" ) {
/* passer la ligne en not selected */
document.getElementById(id).classList.remove("isSelected");
/* gestion affichage picto panier au bout ligne prdt */
icoPlus.classList.remove("isInvisible");
addNotif.classList.remove("add");
icoCheck.classList.add("isInvisible");
}
}
/* empecher ajout prdt au panier quand click sur lien "specimen" contenu dans un avec onclick="pc(this);" */
function pc_onclicktd(url) {
window.location = url;
event.stopPropagation();
}
/* GESTION POPUP PERSONNALISEE */
function open_popup_info(title, text, color) {
var popup = document.getElementById('popup'),
body = document.getElementsByTagName('body')[0],
popTitle = document.getElementById('popup_title'),
popText = document.getElementById('popup_text');
remove_class(popup, "isHidden");
add_class(popup, "flex");
if(color != undefined) {
add_class(popText, color);
}
body.style.overflow = "hidden";
popTitle.textContent = title;
popText.textContent = text;
}
function close_popup_info() {
var popup = document.getElementById('popup'),
body = document.getElementsByTagName('body')[0],
popTitle = document.getElementById('popup_title'),
popText = document.getElementById('popup_text'),
popBody = document.getElementById('popup_body');
remove_class(popup, "flex");
add_class(popup, "isHidden");
setTimeout(function(){
remove_class(popText, 'soSecondaryColor5');
remove_class(popText, 'soSecondaryColor4');
body.style.overflow = "auto";
popTitle.textContent = "";
popBody.innerHTML = '';
}, 700);
}
function open_progress_overlay(frame, text) {
var overlay = document.getElementById(frame + '_overlay'),
status = document.getElementById(frame + '_progress_status');
if ( overlay != undefined ) {
remove_class(overlay, 'isHidden');
add_class(overlay, 'flex');
/* pour main_overlay */
if ( frame == "main" ) {
var overflow = document.getElementById("overflow-hidden-compte");
/* positionner l'overlay */
if ( text == "Récupération de votre liste...") {
overlay.style.top = "0";
} else {
overlay.style.top = scrollCourant + "px";
}
/* bloquer le scroll */
add_class(overflow, "isFixed");
overflow.style.top = "-" + scrollCourant + "px";
}
}
if ( status != undefined ) {
status.textContent = text;
}
}
function close_progress_overlay(frame) {
var overlay = document.getElementById(frame + '_overlay'),
status = document.getElementById(frame + '_progress_status');
if ( status != undefined ) {
status.textContent = '';
}
if ( overlay != undefined ) {
remove_class(overlay, 'flex');
add_class(overlay, 'isHidden');
if ( frame == "main" ) {
var overflow = document.getElementById("overflow-hidden-compte");
/* reinitialiser position overlay */
overlay.style.top = "";
/* autoriser le scroll */
remove_class(overflow, "isFixed");
overflow.style.height = "100vh";
}
}
}
/* CHARGEMENT DE CONTENU DEPUIS UN AUTRE FICHIER */
function load_content(url, content, target, callback) {
var req;
if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
req = new XMLHttpRequest();
}
else { // code for IE6, IE5
req = new ActiveXObject("Microsoft.XMLHTTP");
}
req.onreadystatechange = function() {
if (req.readyState == 4 && req.status == 200) {
var resp = req.responseText;
var doc = new DOMParser().parseFromString(resp, "text/html");
if (doc && doc.getElementById(content) && document.getElementById(target)) {
var clone = doc.getElementById(content).cloneNode(true);
document.getElementById(target).appendChild(clone);
}
if(callback != undefined) {
callback();
}
}
}
req.open("GET", url, true);
req.send();
}
function open_popup(content, eventCallback, param1, param2) {
var timestamp = Date.now();
/* fermer popup ouverte */
close_popup();
/* ouvrir popup */
var popup = document.getElementById('popup');
while (popup.firstChild) {
popup.removeChild(popup.firstChild);
}
load_content('/pages/popup.html?ch=' + timestamp, content, 'popup', function() {
if(document.getElementById(content)) {
remove_class(popup, 'isHidden');
form_placeholder();
if(eventCallback) {
if ( param1 == undefined && param2 == undefined && typeof eventCallback == "function" ) {
eventCallback();
} else {
eventCallback(param1, param2);
}
/*popup.addEventListener('keyup', function bind_submit_event(e) {
if(e.keyCode == 13 && document.activeElement.form.getAttribute('id') != 'recherche_entrep2') {
if(param2) {
eventCallback(param1, param2);
} else {
eventCallback(param1);
}
popup.removeEventListener('keyup', bind_submit_event);
}
});*/
}
} else {
open_popup_message('Une erreur est survenue', 'Votre demande n\'a pu être traitée. Veuillez réessayer ultérieurement.', 'soSecondaryColor5');
}
/* fermer loader chargement */
close_progress_overlay('loader_' + content);
});
}
function close_popup(callback) {
var popup = document.getElementById('popup');
/* fermer sous-menu selection si ouvert */
var sousMenu = document.getElementById("dashboard-list-nav");
if (sousMenu && sousMenu.getAttribute("class").indexOf("open") != -1 ) {
hide_action_selection("manual");
}
if(popup && !popup.classList.contains('isHidden')) {
add_class(popup, 'isHidden');
}
if(callback != undefined && callback != '') {
callback();
}
}
function empty_popup() {
var popup = document.getElementById('popup');
while (popup.firstChild) {
popup.removeChild(popup.firstChild);
}
}
function open_popup_message(title, text, color, callback) {
var timestamp = Date.now();
/* fermer popup ouverte */
close_popup();
/* ouvrir popup */
var popup = document.getElementById('popup');
load_content('/pages/popup.html?ch=' + timestamp, 'popup_message', 'popup', function() {
if(document.getElementById('popup_message_title')) {
var popTitle = document.getElementById('popup_message_title'),
popText = document.getElementById('popup_message_text');
popTitle.textContent = title;
popText.textContent = text;
if(color != undefined) {
add_class(popText, color);
}
var child = popup.getElementsByClassName("Popup__content");
if ( child.length > 1 ) {
popup.removeChild(popup.lastChild);
}
remove_class(popup, 'isHidden');
if ( typeof callback == "function" ) {
callback();
}
}
});
}
/* renvoi vers page login + redirection vers page d'origine */
function redirect_login_popup(param) {
var url = window.location.href;
if ( param ) {
url += param;
}
urlBack = encode_to_hex(url);
window.location.href = '/cgi-bin/compte-login?back=' + urlBack;
}
/* validation form login dans popup */
function valid_login_popup(callback) {
if ( callback && (typeof callback == "function") ) {
callback();
}
}
/********************************************************/
/******************** VIEW_PUBLICATION ******************/
/********************************************************/
function retract_animation() {
var summary = document.getElementById('summary');
if (!summary) {
return;
}
var offset = get_height(summary);
if (offset > 0) {
offset -= 20;
if (offset < 0) {
hide_obj(summary);
offset = 0;
}
summary.style.height = offset + "px";
setTimeout(function(){retract_animation()}, 5);
}
}
function display_iframe() {
var input = document.getElementById('partner_form_input');
var sep = document.getElementById('partner_form_sep');
var iframe = document.getElementById('partner_form_iframe');
hide_obj(input);
hide_obj(sep);
display_obj_block(iframe);
/* Gestion de l'animation */
setTimeout(function(){retract_animation();}, 5);
}/* Verifie l'etat de la reponse */
function getresponse(req) {
if (req && req.readyState == 4) {
return (req.responseText);
}
return (null);
}
/* FONCTION GLOBALE DE QUEUE */
function getXhr() {
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
} else {
return new ActiveXObject("Microsoft.XMLHTTP");
}
}
function SocRequest(beforeRequest, requestRunning, localError, requestReturn, endRequest) {
this.xmlhttp = getXhr();
this.xmlhttp.wrapper = this;
this.orsc = orsc;
add_event(this.xmlhttp, "readystatechange", this.orsc);
this.beforeRequest = (typeof(beforeRequest) == "function") ? beforeRequest : defunc;
this.requestRunning = (typeof(requestRunning) == "function") ? requestRunning : defunc;
this.localError = (typeof(localError) == "function") ? localError : defunc;
this.requestReturn = (typeof(requestReturn) == "function") ? requestReturn : defunc;
this.endRequest = (typeof(endRequest) == "function") ? endRequest : defunc;
this.send = function (method, querystring, async, parameters) {
this.beforeRequest();
this.xmlhttp.open(method, querystring, (async != false) ? true : false);
//this.xmlhttp.setRequestHeader('Content-type', 'text/html; charset=iso-8859-1');
this.xmlhttp.send(parameters);
}
function orsc () {
var response;
var jsonResponse;
var wrapper = this.wrapper;
if (this.readyState != 4 || this.status < 200) {
wrapper.requestRunning();
return;
}
/*if (this.status == 401 || this.status == 403) {
wrapper.endRequest();
open_popup('popup_connect_error');
return;
}*/
if (this.status > 300) {
wrapper.endRequest();
wrapper.localError(this);
return;
}
response = this.responseText;
wrapper.endRequest();
try {
jsonResponse = JSON.parse(response);
} catch(e) {
wrapper.localError(response);
return;
}
wrapper.requestReturn(jsonResponse);
}
function defunc() {
return;
}
}
function Queue() {
this.queue = [];
this.running = 0;
this.add = add;
this.addFirst = addFirst;
this.run = run;
function add(fct, params) {
this.queue.push({fonction:fct, parametre:params});
if (this.running == 0) {
this.run();
}
}
function addFirst(fct, params) {
this.queue.unshift({fonction:fct, parametre:params});
if (this.running == 0) {
this.run();
}
}
function run() {
var obj = this.queue.shift();
if (obj == undefined) {
this.running = 0;
return;
}
this.running = 1;
obj.fonction(obj.parametre, this);
}
}
/* Modele :
* ressource/parameter/parameter/parameter
*/
function RessourceAPI() {
this.ressource = {};
this.add = add;
function add(ressource, method, steps) {
if (typeof (this.ressource[ressource]) != "object") {
this.ressource[ressource] = {
"queueParent" : new Queue()
}
}
if (typeof (this.ressource[ressource][method]) == "object") {
return false;
}
/* Possibilite d'avoir une queue par methode ou une queue par ressource.
* On peut aussi envisager la possibilite de n'avoir qu'une seule queue globale
*/
// Une queue par methode :
//queue = new Queue();
// Une queue par ressource :
if (typeof (this.ressource[ressource].queue) != "object") {
this.ressource[ressource].queue = new Queue();
}
var queue = this.ressource[ressource].queue;
this.ressource[ressource][method] = {
"queue" : queue,
"ressource" : ressource,
"steps" : steps,
"method" : method,
"request" : function () {
var req = new SocRequest(
steps["before"],
steps["running"],
steps["error"],
steps["ok"],
steps["end"]
);
req.queue = queue;
req.endRequest = function () {
this.queue.run();
if (steps["end"]) {
steps["end"]();
}
}
return req; /* I think that there is a place in hell for people like me, fortunately, I'm not a big believer */
}(),
"run" : function(id, parameters, format) { /* TODO : try to conform to : https://en.wikipedia.org/wiki/Uniform_Resource_Identifier
*/
var query = this.ressource;
if (id) {
if (typeof(id) == "object") {
query = query + id.join('/');
} else {
if (typeof(id) == "string") {
query = query + id;
} else {
return;
}
}
}
var params = "";
if (parameters) {
if ( format == "string" ) {
var i = 0;
for(var name in parameters) {
if (i != 0) {
params = params + "&";
} else {
i = 1;
}
params = params + name + "=" + parameters[name];
}
}
else if ( format == "formData" ) {
params = parameters;
}
}
/*this.queue.add((params, that) => {
this.request.send(params.method, params.query, true, params.params);
}, {
"method": this.method,
"query": query,
"params": params
});*/
var thatRequest = this.request,
thatMethod = this.method;
this.queue.add(function (params, that) {
thatRequest.send(params.method, params.query, true, params.params);
}, {
"method": thatMethod,
"query": query,
"params": params
});
}
}
return true;
}
}
/* FONCTION DE QUEUE POUR IE11 */
function request_wrapper_IE(method, url, param, paramType, before, running, error, callback, end) {
var parameters = "";
this.xmlhttp = getXhr();
this.xmlhttp.wrapper = this;
this.orsc = orsc;
add_event(this.xmlhttp, "readystatechange", this.orsc);
this.before = (typeof(before) == "function") ? before : defunc;
this.running = (typeof(running) == "function") ? running : defunc;
this.error = (typeof(error) == "function") ? error : defunc;
this.callback = (typeof(callback)== "function") ? callback : defunc;
this.end = (typeof(end) == "function") ? end : defunc;
/* annulation de la requete en cours si 2 requetes */
if (this.xmlhttp && this.xmlhttp.readyState != 0){
this.xmlhttp.abort();
}
this.before();
/* requete */
if(param) {
if(paramType == 'formData') {
parameters = param;
} else if (paramType == 'string') {
var i = 0;
for(var name in param) {
if (i != 0) {
parameters += "&";
} else {
i = 1;
}
parameters += name + "=" + param[name];
}
} else {
for(var i = 0; i < param.length; i++) {
if(i = 0) {
url += '?' + param[i].name + '=' + param[i].value;
} else {
url += '&' + param[i].name + '=' + param[i].value;
}
}
}
this.xmlhttp.open(method, url, true);
this.xmlhttp.send(parameters);
} else {
this.xmlhttp.open(method, url, true);
this.xmlhttp.send();
}
function orsc() {
var response;
var jsonResponse;
var wrapper = this.wrapper;
if (this.readyState != 4 || this.status < 200) {
wrapper.running();
return;
}
if (this.status == 403) {
wrapper.endRequest();
open_popup('popup_connect_error');
return;
}
response = this.responseText;
console.log(response);
if (this.status > 300) {
wrapper.end();
//wrapper.error(this);
wrapper.error(response);
return;
}
wrapper.end();
try {
jsonResponse = JSON.parse(response);
} catch(e) {
wrapper.error(response);
return;
}
wrapper.callback(jsonResponse);
}
function defunc() {
return;
}
}
/* afficher msg d'erreur suite a une requete */
function handle_request_error(response) {
var title = "";
if ( detect_version_IE() == "nav-ie10" || detect_version_IE() == "nav-ie11" ) {
var title = "Mon réseau";
}
else {
/* definir le title de l'erreur */
if ( response.responseURL.indexOf("api/liste") != -1 ) {
if ( response.responseURL.indexOf("/element") != -1 ) {
title = "Mes entreprises";
}
else if ( response.responseURL.indexOf("/commentaire") != -1 ) {
title = "Mes commentaires";
}
else {
title = "Mes listes";
}
}
else if ( response.responseURL.indexOf("compte-veilles") != -1 ) {
if ( response.responseURL.indexOf("act=insert") != -1 ) {
title = "Ajout de veilles";
}
else if ( response.responseURL.indexOf("act=suppr") != -1 ) {
title = "Suppression de veilles";
}
else {
title = "Mes veilles";
}
}
else if ( response.responseURL.indexOf("/addbasket-new") != -1 ) {
if ( response.responseURL.indexOf("disp=") != -1 ) {
title = "Récupération de votre panier";
}
else if ( response.responseURL.indexOf("prod=") != -1 ) {
title = "Ajout d'une veille au panier";
} else if ( response.responseURL.indexOf("delp=") != -1 ) {
title = "Suppression d'une veille du panier";
}
else {
title = "Mon panier";
}
}
else if ( response.responseURL.indexOf("/compte-api-minifiche") != -1 || response.responseURL.indexOf("/compte-api-fiche") != -1 ) {
title = "Résumé de l\'entreprise";
}
else {
title = "Mon réseau";
}
}
/* afficher msg erreur */
switch(response.status) {
case 400 :
open_popup_message(title, 'Votre demande n\'a pu être traitée.', 'soSecondaryColor5');
break;
case 401 :
open_popup('popup_connect_error');
break;
case 403 :
open_popup('popup_connect_error');
break;
case 404 :
open_popup_message(title, 'Votre demande n\'a pu être traitée..', 'soSecondaryColor5');
break;
/*case undefined :
break;*/
default :
open_popup_message(title, 'Afin d\'améliorer nos services, nous effectuons des opérations de maintenance. Nous vous invitons à revenir dans quelques instants et nous excusons pour la gêne occasionnée.', 'soSecondaryColor5');
break;
}
}
var router;
function compte_app_init() {
createScript('/scripts/router.js', function() {
router = new Navigo(window.location.origin);
var title = document.getElementsByTagName("title")[0],
dashHome = document.getElementById('dashboard_home'),
dashDetail = document.getElementById('dashboard_liste_detail');
router.on({
'/app/reseau/dashboard*': function() {
title.innerHTML = "Réseau d'entreprises - Societe.com";
if (dashDetail) {
add_class(dashDetail, 'isHidden');
}
if (dashHome) {
remove_class(dashHome, 'isHidden');
}
get_dashboard_lists();
//display_explain_dashboard("show");
},
'/app/reseau/:name/:id': function(params, query) {
/* Possible de faire une 404 ici si on ne trouve pas de liste d'id {id} pour le client */
title.innerHTML = params.name + " - Societe.com";
if (dashDetail) {
remove_class(dashDetail, 'isHidden');
}
if (dashHome) {get_dashboard_lists
add_class(dashHome, 'isHidden');
}
/* recuperation liste des listes si utilisateur ne passe pas par la home dashboard */
if ( stockListsName.length == 0 ) {
get_dashboard_lists();
}
get_dashboard_list_detail(params.id);
//display_explain_dashboard("hide");
},
'/app/reseau/*': function() {
/* Par defaut on affiche le dashboard */
router.navigate('/app/reseau/dashboard', true);
},
'/app/reseau': function() {
/* Faire une 404 avec un retour vers le dashboard */
router.navigate('/app/reseau/dashboard', true);
},
'/*': function() {
/* Faire une 404 avec un retour vers le dashboard */
if ( document.location.href.indexOf("cgi-bin/compte-liste-dashboard") != -1 ) {
router.navigate('/app/reseau/dashboard', true);
}
}
}).resolve();
});
}function init_search() {
var input = document.getElementById("input_search");
var getPlaceholder = input.getAttribute('placeholder');
event_input(input, getPlaceholder);
if (input) {
add_event(input, "focus", function () {
this.setAttribute("autocapitalize", "none");
this.setAttribute("autocorrect", "off");
});
}
}
function init_search_2() {
event_input("input_search2", "Entreprise, dirigeant, SIREN...");
}
function init_search_3() {
event_input("input_search3", "Entreprise, dirigeant, SIREN...");
}
/********************************************************/
/******************** RECHERCHE AVANCEE *****************/
/********************************************************/
/* Placement de la barre sous l'onglet actif */
function searchtab_active(){
var activeFrame = document.getElementById('frame-entrepr')
|| document.getElementById('frame-etab')
|| document.getElementById('frame-dirigeant');
switch(activeFrame.id) {
case 'frame-entrepr':
var activeTab = document.getElementById('tab-entrepr');
add_class(activeTab, 'isActive');
break;
case'frame-etab':
var activeTab = document.getElementById('tab-etab');
add_class(activeTab, 'isActive');
break;
case 'frame-dirigeant':
var activeTab = document.getElementById('tab-dirigeant');
add_class(activeTab, 'isActive');
break;
}
}
/* Fonction permettant la gestion de fonctionnalite de
* la recherche avancee */
function init_recherche() {
var apeavance = document.getElementById('avanceape');
var apeentrep = document.getElementById('entrepape');
var ville = document.getElementById('avanceville');
if (apeavance) {
add_event(apeavance, "keyup", function() {ape_keyup(apeavance);});
}
if (apeentrep) {
add_event(apeentrep, "keyup", function() {ape_keyup(apeentrep);});
}
if (ville) {
add_event(ville, "keyup", function() {ville_keyup(ville);});
}
/* On gere les placeholders aux focus / blur */
var inputEtab = get_elementsbyclassname(document, 'input-etab');
var inputEntrepr = get_elementsbyclassname(document, 'input-entrepr');
for(var i = 0; i < inputEtab.length; i++) {
/* Gestion des placeholders */
var getPlaceholder = inputEtab[i].getAttribute('placeholder');
event_input(inputEtab[i], getPlaceholder);
/* Gestion des mini-labels */
add_event(inputEtab[i], 'blur', function(){
if(this.value != '') {
add_class(this, 'filled');
} else {
remove_class(this, 'filled');
}
});
}
for(var i = 0; i < inputEntrepr.length; i++) {
/* Gestion des placeholders */
var getPlaceholder = inputEntrepr[i].getAttribute('placeholder');
event_input(inputEntrepr[i], getPlaceholder);
/* Gestion des mini-labels */
add_event(inputEntrepr[i], 'blur', function(){
if(this.value != '') {
add_class(this, 'filled');
} else {
remove_class(this, 'filled');
}
});
}
}
function init_recherche_dir() {
var inputDir = get_elementsbyclassname(document, 'input-dir');
for(var i = 0; i < inputDir.length; i++) {
/* Gestion des placeholders */
var getPlaceholder = inputDir[i].getAttribute('placeholder');
event_input(inputDir[i], getPlaceholder);
/* Gestion des mini-labels */
add_event(inputDir[i], 'blur', function(){
if(this.value != '') {
add_class(this, 'filled');
} else {
remove_class(this, 'filled');
}
});
}
}
function submit_recherche() {
var adr = document.getElementById('avanceadr');
var ville = document.getElementById('avanceville');
if (adr.value == "N'indiquez pas rue, avenue, ...") {
adr.value = "";
}
if (ville.value == "Par exemple Lyon, Paris 16, ...") {
ville.value = "";
}
submit('recherche_avance');
return (true);
}
/* Fonction gerant la saisie ape */
function ape_keyup(itemobj) {
if (!itemobj) {
return;
}
if (itemobj.value.replace(/ /g, "").length > 1) {
sendrequest_act(itemobj);
} else {
cleanup_act();
}
}
/* On supprime tout (resultat ape) + on cache les
* blocs (div) pour la saisie ape */
function cleanup_act() {
var res = document.getElementById('actresult');
var div = document.getElementById('actbloc');
var rec = document.getElementById('actrecherche');
var auc = document.getElementById('actaucunes');
var ape = document.getElementById('avanceape') || document.getElementById('entrepape');
remove_class(div, 'no-info');
remove_class(div, 'list');
hide_obj(rec);
remove_class(ape, 'red-border');
for (var i = nb_child(res) - 1; i >= 0; i--) {
if (res.children[i].id.indexOf("div_act_") != -1) {
res.removeChild(res.children[i]);
}
}
}
/* Envoi de la requete vers /cgi-bin/recape */
function sendrequest_act(itemobj) {
var req = null;
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
if (req.overrideMimeType) {
req.overrideMimeType("text/plain");
}
} else {
if (window.ActiveXObject) {
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
window.alert("Votre browser ne supporte pas AJAX");
}
}
}
}
if (req && req.readyState != 0){
req.abort();
}
req.onreadystatechange = function() {getresponse_act(req, itemobj);};
req.open("POST", "/cgi-bin/recape", true);
req.setRequestHeader("Content-type", "application/x-www-from-urlencode;");
req.send("q=" + escape(itemobj.value));
}
/* Recuperation du resultat de recape */
function getresponse_act(req, itemobj) {
if (req.readyState != 4) {
return;
}
if (req.status != 200) {
cleanup_act();
return;
}
var div = document.getElementById('actbloc');
var res = document.getElementById('actresult');
var rec = document.getElementById('actrecherche');
var auc = document.getElementById('actaucunes');
var ape = document.getElementById('avanceape') || document.getElementById('entrepape');
var sres = req.responseText;
if (sres == "") {
cleanup_act();
add_class(div, 'no-info');
add_class(ape, 'red-border');
} else if (sres != "" && sres.indexOf("Internal Server Error") == -1) {
var lines = sres.split("\n");
cleanup_act();
add_class(div, 'list');
/* on n'affiche pas de code APE de 2 chiffres tant que la recherche ne peut pas retourner de resultats */
/*if(ape.value.length <= 2) {
var i = 1;
} else {
var i = 0;
}*/
for (var i = 0; i < lines.length; i++) {
if (lines[i] != '') {
var infos = lines[i].split("\t");
var template = document.getElementById('actresult_item').cloneNode(true);
var id = "act_" + i;
var divid = "div_" + id;
template.id = divid;
var disp = template.getElementsByTagName('p')[0];
disp.id = "act_content_" + i;
disp.setAttribute("data-naf", infos[0]);
disp.setAttribute("data-text", infos[1]);
if (i % 2 == 0) {
disp.style.backgroundColor = "#F5F5F5";
}
var code = disp.getElementsByTagName('span')[0];
var text = disp.getElementsByTagName('span')[1];
code.innerHTML = infos[0];
text.innerHTML = infos[1];
add_event(disp, "click", function(){onclick_act(this, itemobj);});
res.appendChild(template);
display_obj_block(template);
}
}
if(ape.value.length <= 2) {
document.getElementById('div_act_0').style.cursor = "not-allowed";
document.getElementById('act_content_0').style.cursor = "not-allowed";
document.getElementById('act_content_0').style.pointerEvents = "none";
return;
} else {
document.getElementById('act_content_0').style.cursor = "pointer";
document.getElementById('act_content_0').style.pointerEvents = "auto";
}
}
}
/* Fonction permettant de setter le code naf dans le champ */
function onclick_act(elem, itemobj) {
itemobj.value = elem.getAttribute("data-naf");
cleanup_act();
}
/* Fonction gerant la saisie commune */
function ville_keyup(itemobj) {
if (!itemobj) {
return;
}
if (itemobj.value.replace(/ /g, "").length > 1) {
sendrequest_ville(itemobj);
} else {
cleanup_ville();
}
}
/* Permet de tout clean (resultat) + cacher les zones pour ville */
function cleanup_ville() {
var div = document.getElementById('villebloc');
var res = document.getElementById('villeresult');
var rec = document.getElementById('villerecherche');
var auc = document.getElementById('villeaucunes');
var ville = document.getElementById('avanceville');
remove_class(div, 'no-info');
remove_class(div, 'list');
hide_obj(rec);
remove_class(ville, 'red-border');
for (var i = nb_child(res) - 1; i >= 0; i--) {
if (res.children[i].id.indexOf("div_ville_") != -1) {
res.removeChild(res.children[i]);
}
}
}
/* Envoi de la requete vers /cgi-bin/villes */
function sendrequest_ville(itemobj) {
var req = null;
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
if (req.overrideMimeType) {
req.overrideMimeType("text/plain");
}
} else {
if (window.ActiveXObject) {
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
window.alert("Votre browser ne supporte pas AJAX");
}
}
}
}
if (req && req.readyState != 0){
req.abort();
}
req.onreadystatechange = function() {getresponse_ville(req, itemobj);};
req.open("POST", "/cgi-bin/villes", true);
req.setRequestHeader("Content-type", "application/x-www-from-urlencode;");
req.send("q=" + escape(itemobj.value));
}
/* Retour de la requete + construction de l'affichage */
function getresponse_ville(req, itemobj) {
if (req.readyState != 4) {
return;
}
if (req.status != 200) {
cleanup_ville();
return;
}
var div = document.getElementById('villebloc');
var res = document.getElementById('villeresult');
var rec = document.getElementById('villerecherche');
var auc = document.getElementById('villeaucunes');
var ville = document.getElementById('avanceville');
var sres = req.responseText;
if (sres == "") {
cleanup_ville();
add_class(div, 'no-info');
add_class(ville, 'red-border');
} else if (sres != "" && sres.indexOf("Internal Server Error") == -1) {
var lines = sres.split("\n");
cleanup_ville();
add_class(div, 'list');
for (var i = 0; i < lines.length; i++) {
if (lines[i] != '') {
var infos = lines[i].split("\t");
var template = document.getElementById('villeresult_item').cloneNode(true);
var id = "ville_" + i;
var divid = "div_" + id;
template.id = divid;
var disp = template.getElementsByTagName('p')[0];
disp.id = "ville_content_" + i;
disp.setAttribute("data-text", infos[0]);
disp.setAttribute("data-cp", infos[1]);
if (i % 2 == 0) {
disp.style.backgroundColor = "#F5F5F5";
}
var code = disp.getElementsByTagName('span')[0];
var text = disp.getElementsByTagName('span')[1];
code.innerHTML = infos[1];
text.innerHTML = infos[0];
add_event(disp, "click", function(){onclick_ville(this, itemobj);});
res.appendChild(template);
display_obj_block(template);
}
}
}
}
/* On sette lors d'un clic sur un resultat la reponse dans le champ */
function onclick_ville(elem, itemobj) {
itemobj.value = elem.getAttribute("data-text");
cleanup_ville();
}
/* afficher recherche avancee dans header en fixed */
function show_advanced_search() {
var search = document.getElementById("form_search2");
add_class(search, "searchAdvanced");
}
/********************************************************/
/******************* LISTE RECHERCHE ********************/
/********************************************************/
function display_liste() {
var list = document.getElementById('listehide');
var butt = document.getElementById('buttliste');
if (list) {
list.style.display = "block";
}
if (butt) {
butt.style.display = "none";
}
}
/********************************************************/
/******************* RESULTATS RECHERCHE ****************/
/********************************************************/
function init_result_search() {
/* arreter loading quand page chargee */
end_loading_search();
/* gestion btn afficher plus de resultats */
if ( document.getElementById("search_details") ) {
display_results();
}
/* remplir nb recap */
if ( document.getElementById("search") && document.getElementById("result_search_recap_dirigeant") ) {
recap_result_search_number("dirigeant");
} else if (document.getElementById("search") && document.getElementById("result_search_recap_societe")) {
recap_result_search_number("societe");
}
/* afficher infos contexte sur haut page result detailles */
display_infos_result_detailles();
/* ajouter separateur de milliers */
display_num(document.getElementById("page"));
/* surligner les termes de la recherche sauf si relcli */
if ( typeof(relcli) == 'undefined' ){
search_highlight();
}
/* liste ref doc si relcli */
else {
liste_ref_doc();
}
/* col gauche fixe au scroll */
//Seulement sur les pages generiques
if ( (document.getElementById("result_search_recap_dirigeant") && document.getElementById("result_search_recap_dirigeant").getAttribute("data-context") == null) || (document.getElementById("result_search_recap_societe") && document.getElementById("result_search_recap_societe").getAttribute("data-context") == null) ) {
recap_search_scroll();
}
}
/* arreter loading quand page chargee */
function end_loading_search() {
//sur societe
if ( document.getElementById("result_search_recap_societe") ) {
//result generiques
if ( document.getElementById("result_search_nav_societe") ) {
var verifLoading = setInterval("verif_loading('societe')", 500);
if ( verif_loading('societe') == true ) {
clearInterval(verifLoading);
setTimeout(function(){
recap_result_loading();
}, 500);
}
}
//result specifiques
else {
var verifLoading = setInterval("verif_loading_specifique('societe')", 500);
if ( verif_loading_specifique('societe') == true ) {
clearInterval(verifLoading);
setTimeout(function(){
recap_result_loading_specifique();
}, 500);
}
}
}
//sur dirigeant
else if ( document.getElementById("result_search_recap_dirigeant") ) {
//result generiques
if ( document.getElementById("result_search_nav_dirigeant") ) {
var verifLoading = setInterval("verif_loading('dirigeant')", 500);
if ( verif_loading('dirigeant') == true ) {
clearInterval(verifLoading);
setTimeout(function(){
recap_result_loading();
}, 500);
}
}
//result specifiques
else {
var verifLoading = setInterval("verif_loading_specifique('dirigeant')", 500);
if ( verif_loading_specifique('dirigeant') == true ) {
clearInterval(verifLoading);
setTimeout(function(){
recap_result_loading_specifique();
}, 500);
}
}
}
}
/* surligner les termes de la recherche */
function search_highlight() {
var bloc = document.getElementsByClassName("bloclist");
/* faire le remplacement dans tous les blocs */
for (var i = 0; i < bloc.length; i++) {
var cible = bloc[i],
search = "";
/* page result detailles */
if ( document.getElementById("recapsearch") ) {
search = document.getElementById("recapsearch").innerText;
}
/* page result */
else {
if ( document.getElementById("recap_search_general") ) {
search = document.getElementById("recap_search_general").innerText;
}
}
if ( search && search != "" && search != " ") {
var searchTable = search.toUpperCase().split(" "),
name = cible.getElementsByClassName("deno"),
obj = {};
searchTable.sort(function(a, b) {
return (b.length - a.length);
});
/* boucler sur tous les resultats */
for ( var n = 0; n < name.length; n++) {
var deno = name[n].innerText,
deno = remove_accents(deno);
/* boucler sur les differents termes de la recherche */
for ( var s = 0; s < searchTable.length; s++ ) {
obj[searchTable[s]] = "" + searchTable[s] + '';
}
var regexarr = Object.keys(obj);
var reg = "";
for ( var idx = 0; idx < regexarr.length; idx++ ) {
if (idx > 0) {
reg += "|";
}
reg += "\\b" + regexarr[idx].replace(/[.*+?^${}()|[\]\\]/g, '\\$&') + "\\b";
}
var regex = new RegExp(reg, "gi");
result = deno.replace(regex, function(matched) {
return obj[matched.toUpperCase()];
});
/* remplacer la deno par le terme surligne */
name[n].innerHTML = result;
}
}
/* refaire la recherche sans accent */
if ( search != remove_accents(search) ) {
if ( remove_accents(search) && remove_accents(search) != "" && remove_accents(search) != " ") {
var searchTable = remove_accents(search).toUpperCase().split(" "),
name = cible.getElementsByClassName("deno"),
obj = {};
searchTable.sort(function(a, b) {
return (b.length - a.length);
});
/* boucler sur tous les resultats */
for ( var n = 0; n < name.length; n++) {
var deno = name[n].innerText,
deno = remove_accents(deno);
/* boucler sur les differents termes de la recherche */
for ( var s = 0; s < searchTable.length; s++ ) {
obj[searchTable[s]] = "" + searchTable[s] + '';
}
var regexarr = Object.keys(obj);
var reg = "";
for ( var idx = 0; idx < regexarr.length; idx++ ) {
if (idx > 0) {
reg += "|";
}
reg += "\\b" + regexarr[idx].replace(/[.*+?^${}()|[\]\\]/g, '\\$&') + "\\b";
}
var regex = new RegExp(reg, "gi");
result = deno.replace(regex, function(matched) {
return obj[matched.toUpperCase()];
});
/* remplacer la deno par le terme surligne */
name[n].innerHTML = result;
}
}
}
}
}
/* enlever les accents d'un texte */
function remove_accents(string){
var accents = 'ÀÁÂÃÄÅàáâãäåÒÓÔÕÕÖØòóôõöøÈÉÊËèéêëðÇçÐÌÍÎÏìíîïÙÚÛÜùúûüÑñŠšŸÿýŽž',
accentsOut = "AAAAAAaaaaaaOOOOOOOooooooEEEEeeeeeCcDIIIIiiiiUUUUuuuuNnSsYyyZz",
x = "";
string = string.split('');
for (var i = 0; i < string.length; i++) {
if ( (x = accents.indexOf(string[i]) ) != -1) {
string[i] = accentsOut[x];
}
}
return string.join('');
}
/* verif si tous les elements sont charges sur page results generiques */
function verif_loading(context) {
/* sur societe */
if ( context == "societe" ) {
if ( document.getElementById("recap_deno_nb") && document.getElementById("recap_rs_nb") && document.getElementById("recap_etab_nb") && document.getElementById("recap_dirsoc_nb") && document.getElementById("recap_marque_nb") && document.getElementById("recap_dir_nb") && document.getElementById("recap_doc_nb") ) {
return true;
} else {
return false;
}
}
/* sur dirigeant */
if ( context == "dirigeant" ) {
/* page resultats recherche avancee */
if ( document.getElementById("page").getAttribute("data-view") == "result_search_dirigeant" ) {
if ( document.getElementById("recap_dir_nb") ) {
return true;
} else {
return false;
}
}
/* page resultats recherche simple */
else {
if ( document.getElementById("recap_dir_nb") && document.getElementById("recap_dirsoc_nb") && document.getElementById("recap_deno_nb") && document.getElementById("recap_doc_nb") ) {
return true;
} else {
return false;
}
}
}
}
/* verif si tous les elements sont charges sur page results specifiques */
function verif_loading_specifique(context) {
/* sur societe */
if ( context == "societe" ) {
if ( document.getElementById("recap_soc_nb") ) {
return true;
} else {
return false;
}
}
/* sur dirigeant */
if ( context == "dirigeant" ) {
if ( document.getElementById("recap_dir_nb") ) {
return true;
} else {
return false;
}
}
}
/* recup les nb de resultats sur page results generique */
function recap_result_loading() {
var loadingNav = document.getElementsByClassName("nav-bloc-load"),
loadingRecap = document.getElementsByClassName("recap-bloc-load");
/* ajouter link sur bloc recap */
for ( var x = 0; x < loadingRecap.length; x++ ) {
var id = loadingRecap[x].parentNode.id;
/* cas du bloc societe */
if ( id == "bloc_recap_societe" ) {
var cible = document.getElementById("recap_societe_nb_details"),
blocs = cible.getElementsByClassName("bloc__recapdetails");
for ( var b = 0; b < blocs.length; b++ ) {
if ( blocs[b].getElementsByClassName("numberdetails")[0].innerHTML != "" && blocs[b].getElementsByClassName("numberdetails")[0].innerHTML != 0 ) {
var idBloc = blocs[b].id,
idBloc = idBloc.substring(11, idBloc.length),
linkBloc = "#result_" + idBloc;
blocs[b].setAttribute("onclick", "location.href='" + linkBloc + "';");
blocs[b].style.cursor = "pointer";
}
}
}
/* cas generique */
else {
id = id.substring(11, id.length);
if ( document.getElementById("result_" + id) ) {
var link = "#result_" + id;
loadingRecap[x].parentNode.setAttribute("onclick", "location.href='" + link + "';");
loadingRecap[x].parentNode.style.cursor = "pointer";
}
}
}
/* ajouter link sur onglet societe du haut */
for ( var i = 0; i < loadingNav.length; i++ ) {
if ( loadingNav[i].parentNode.parentNode.id == "nav_onglet_societe" ) {
/* verif si deno existe */
if ( document.getElementById("result_deno_societe") ) {
var link = "#result_deno_societe";
}
/* sinon verif si rs existe */
else if ( document.getElementById("result_rs_societe") ) {
var link = "#result_rs_societe";
}
/* sinon verif si dirsoc existe */
else if ( document.getElementById("result_dirsoc_societe") ) {
var link = "#result_dirsoc_societe";
}
/* sinon verif si etab existe */
else if ( document.getElementById("result_etab_societe") ) {
var link = "#result_etab_societe";
}
if ( link ) {
document.getElementById("nav_onglet_societe").getElementsByTagName("a")[0].setAttribute("href", link);
}
}
}
/* gif loading */
add_class(document.getElementById("recap_total_nb_loading"), "isHidden");
/* gif loading onglets du haut */
for ( var i = 0; i < loadingNav.length; i++ ) {
/* gif loading onglets du haut */
add_class(loadingNav[i], "isHidden");
remove_class(loadingNav[i].parentNode, "loading");
}
/* gif loading blocs recap colonne gauche */
for ( var x = 0; x < loadingRecap.length; x++ ) {
add_class(loadingRecap[x], "isHidden");
remove_class(loadingRecap[x].parentNode, "loading");
}
}
/* cacher loading sur page results specifiques */
function recap_result_loading_specifique() {
var loadingRecap = document.getElementsByClassName("recap-bloc-load");
/* gif loading */
add_class(document.getElementById("recap_total_nb_loading"), "isHidden");
/* gif loading blocs recap colonne gauche */
for ( var x = 0; x < loadingRecap.length; x++ ) {
add_class(loadingRecap[x], "isHidden");
remove_class(loadingRecap[x].parentNode, "loading");
}
}
/* remplir nb recap sur page resultats */
function recap_result_search_number(context) {
/* exclure page resultat dirigeant recherche avancee */
if ( document.getElementById("page").getAttribute("data-view") != "result_search_dirigeant" ) {
var totalSociete = 0;
/* societe - deno */
if ( document.getElementById("recap_deno_nb") ) {
if ( document.getElementById("recap_deno_nb").innerHTML != "" ) {
document.getElementById("recap_deno_nb_recap").innerHTML = document.getElementById("recap_deno_nb").innerHTML;
totalSociete = totalSociete + parseInt(document.getElementById("recap_deno_nb").innerHTML);
} else {
document.getElementById("recap_deno_nb_recap").innerHTML = "0";
}
} else {
document.getElementById("recap_deno_nb_recap").innerHTML = "0";
}
/* societe - rs */
if ( document.getElementById("recap_rs_nb") ) {
if ( document.getElementById("recap_rs_nb").innerHTML != "" ) {
document.getElementById("recap_rs_nb_recap").innerHTML = document.getElementById("recap_rs_nb").innerHTML;
totalSociete = totalSociete + parseInt(document.getElementById("recap_rs_nb").innerHTML);
} else {
document.getElementById("recap_rs_nb_recap").innerHTML = "0";
}
} else {
/* uniquement pour site societe */
if ( context && context == "societe" ) {
document.getElementById("recap_rs_nb_recap").innerHTML = "0";
}
}
/* societe - dir */
if ( document.getElementById("recap_dirsoc_nb") ) {
if ( document.getElementById("recap_dirsoc_nb").innerHTML != "" ) {
document.getElementById("recap_dirsoc_nb_recap").innerHTML = document.getElementById("recap_dirsoc_nb").innerHTML;
totalSociete = totalSociete + parseInt(document.getElementById("recap_dirsoc_nb").innerHTML);
} else {
document.getElementById("recap_dirsoc_nb_recap").innerHTML = "0";
}
} else {
document.getElementById("recap_dirsoc_nb_recap").innerHTML = "0";
}
/* societe - etab -> uniquement sur site societe */
if ( context && context == "societe" ) {
if ( document.getElementById("recap_etab_nb") ) {
if ( document.getElementById("recap_etab_nb").innerHTML != "" ) {
document.getElementById("recap_etab_nb_recap").innerHTML = document.getElementById("recap_etab_nb").innerHTML;
totalSociete = totalSociete + parseInt(document.getElementById("recap_etab_nb").innerHTML);
} else {
document.getElementById("recap_etab_nb_recap").innerHTML = "0";
}
} else {
document.getElementById("recap_etab_nb_recap").innerHTML = "0";
}
// pluriel
if ( document.getElementById("recap_etab_nb_recap").innerHTML > 1 ) {
let pluriel = document.getElementsByClassName("result-etab-pluriel");
for ( let p = 0; p < pluriel.length; p++) {
remove_class(pluriel[p], "isHidden");
}
}
}
/* total societes */
document.getElementById("recap_societe_nb_nav").innerHTML = totalSociete;
document.getElementById("recap_societe_nb_recap").innerHTML = totalSociete;
// pluriel
if ( document.getElementById("recap_societe_nb_nav").innerHTML > 1 ) {
let pluriel = document.getElementsByClassName("result-societe-pluriel");
for ( let p = 0; p < pluriel.length; p++) {
remove_class(pluriel[p], "isHidden");
}
}
//no result
else if ( document.getElementById("recap_societe_nb_nav").innerHTML == 0 ) {
//add_class(document.getElementById("nav_onglet_societe"), "isDisabled");
document.getElementById("nav_onglet_societe").style.display = "none";
document.getElementById("bloc_recap_societe").style.display = "none";
add_class(document.getElementById("recap_societe_nb_details"), "isHidden");
}
/* marques -> uniquement sur site societe */
if ( context && context == "societe" ) {
if ( document.getElementById("recap_marque_nb") ) {
if ( document.getElementById("recap_marque_nb").innerHTML != "" ) {
document.getElementById("recap_marque_nb_nav").innerHTML = document.getElementById("recap_marque_nb").innerHTML;
document.getElementById("recap_marque_nb_recap").innerHTML = document.getElementById("recap_marque_nb").innerHTML;
} else {
document.getElementById("recap_marque_nb_nav").innerHTML = "0";
document.getElementById("recap_marque_nb_recap").innerHTML = "0";
}
} else {
document.getElementById("recap_marque_nb_nav").innerHTML = "0";
document.getElementById("recap_marque_nb_recap").innerHTML = "0";
}
// pluriel
if ( document.getElementById("recap_marque_nb_nav").innerHTML > 1 ) {
let pluriel = document.getElementsByClassName("result-marque-pluriel");
for ( let p = 0; p < pluriel.length; p++) {
remove_class(pluriel[p], "isHidden");
}
}
//no result
else if ( document.getElementById("recap_marque_nb_nav").innerHTML == 0 ) {
//add_class(document.getElementById("nav_onglet_marque"), "isDisabled");
document.getElementById("nav_onglet_marque").style.display = "none";
document.getElementById("bloc_recap_marque").style.display = "none";
}
}
/* docs */
if ( document.getElementById("recap_doc_nb") ) {
if ( document.getElementById("recap_doc_nb").innerHTML != "" ) {
document.getElementById("recap_doc_nb_nav").innerHTML = document.getElementById("recap_doc_nb").innerHTML;
document.getElementById("recap_doc_nb_recap").innerHTML = document.getElementById("recap_doc_nb").innerHTML;
} else {
document.getElementById("recap_doc_nb_nav").innerHTML = "0";
document.getElementById("recap_doc_nb_recap").innerHTML = "0";
}
} else {
document.getElementById("recap_doc_nb_nav").innerHTML = "0";
document.getElementById("recap_doc_nb_recap").innerHTML = "0";
}
// pluriel
if ( document.getElementById("recap_doc_nb_nav").innerHTML > 1 ) {
let pluriel = document.getElementsByClassName("result-doc-pluriel");
for ( let p = 0; p < pluriel.length; p++) {
remove_class(pluriel[p], "isHidden");
}
}
//no result
else if ( document.getElementById("recap_doc_nb_nav").innerHTML == 0 ) {
//add_class(document.getElementById("nav_onglet_doc"), "isDisabled");
document.getElementById("nav_onglet_doc").style.display = "none";
document.getElementById("bloc_recap_doc").style.display = "none";
}
}
/* dirigeants */
if ( document.getElementById("recap_dir_nb") ) {
if ( document.getElementById("recap_dir_nb").innerHTML != "" ) {
document.getElementById("recap_dir_nb_nav").innerHTML = document.getElementById("recap_dir_nb").innerHTML;
document.getElementById("recap_dir_nb_recap").innerHTML = document.getElementById("recap_dir_nb").innerHTML;
} else {
document.getElementById("recap_dir_nb_nav").innerHTML = "0";
document.getElementById("recap_dir_nb_recap").innerHTML = "0";
}
} else {
document.getElementById("recap_dir_nb_nav").innerHTML = "0";
document.getElementById("recap_dir_nb_recap").innerHTML = "0";
}
// pluriel
if ( document.getElementById("recap_dir_nb_nav").innerHTML > 1 ) {
let pluriel = document.getElementsByClassName("result-dir-pluriel");
for ( let p = 0; p < pluriel.length; p++) {
remove_class(pluriel[p], "isHidden");
}
}
//no result
else if ( document.getElementById("recap_dir_nb_nav").innerHTML == 0 ) {
//add_class(document.getElementById("nav_onglet_dir"), "isDisabled");
document.getElementById("nav_onglet_dir").style.display = "none";
document.getElementById("bloc_recap_dir").style.display = "none";
}
/* ajouter pluriel sur total resultats */
if ( document.getElementById("recap_total_nb_nav").innerHTML > 1 ) {
let pluriel = document.getElementsByClassName("result-pluriel");
for ( let p = 0; p < pluriel.length; p++) {
remove_class(pluriel[p], "isHidden");
}
}
}
/* si plus de 50 resultats -> bloquer la liste detaillee a 50 */
function redirection_results_details(element) {
var url = element.getAttribute("data-href"),
nb = element.getElementsByClassName("numdisplay")[0].innerHTML.replace(" ", "");
param = "";
if ( nb > 50) {
param = "&nrpp=50";
}
url += param;
document.location = url;
}
/* afficher infos contexte sur haut page result detailles */
function display_infos_result_detailles() {
/* seulement sur result detailles */
if ( document.getElementById("search_details") && (document.getElementsByClassName("ResultSearch__nav").length > 0) ) {
/* verif de quels resultats il s'agit */
var bloc = document.getElementById("search_details").getElementsByClassName("ResultBloc")[0].getAttribute("data-viewname");
switch(bloc) {
case "view-searchdetail-societe" :
document.getElementById("recap_category_result_name").innerHTML = "société";
document.getElementById("recap_category_result_verb").innerHTML = "trouvée";
break;
case "view-searchdetail-etab" :
document.getElementById("recap_category_result_name").innerHTML = "établissement";
document.getElementById("recap_category_result_verb").innerHTML = "trouvé";
break;
case "view-searchdetail-marque" :
document.getElementById("recap_category_result_name").innerHTML = "marque";
document.getElementById("recap_category_result_verb").innerHTML = "trouvée";
break;
case "view-searchdetail-dir" :
document.getElementById("recap_category_result_name").innerHTML = "dirigeant";
document.getElementById("recap_category_result_verb").innerHTML = "trouvé";
break;
case "view-searchdetail-doc" :
document.getElementById("recap_category_result_name").innerHTML = "document";
document.getElementById("recap_category_result_verb").innerHTML = "trouvé";
break;
}
}
}
/* gestion btn afficher plus de resultats */
function display_results() {
/* sur dirigeant */
if ( location.href.indexOf("&nrpp=") != -1 ) {
var url = location.href,
urlTable = url.split("&nrpp="),
total = document.getElementById("recap_total_nb").innerHTML;
/* bloquer affichage resultats a 200 */
if ( total <= 200 ) {
diff = total - parseInt(urlTable[1]);
} else {
diff = 200 - parseInt(urlTable[1]);
}
/* afficher btn si encore des resultats a afficher */
if ( diff > 0 ) {
if ( diff == 1 ) {
document.getElementById("search_display_results").getElementsByTagName("a")[0].innerHTML = "Afficher le résultat suivant";
} else if ( diff > 1 && diff <= 50 ) {
document.getElementById("search_display_results").getElementsByTagName("a")[0].innerHTML = "Afficher les " + diff + " résultats suivants";
} else {
document.getElementById("search_display_results").getElementsByTagName("a")[0].innerHTML = "Afficher les 50 résultat suivant";
}
remove_class(document.getElementById("search_display_results"), "isHidden");
} else {
add_class(document.getElementById("search_display_results"), "isHidden");
}
}
/* sur societe */
else {
/* si autres resultats a afficher */
if ( document.getElementById("display_results") ) {
var nb = document.getElementById("display_results_nb"),
cible = document.getElementById("search_details"),
results = cible.getElementsByClassName("listehidden");
if ( results.length < 50 ) {
nb.innerHTML = parseInt(results.length);
}
}
}
}
/* afficher les resultats suivant sur dirigeant */
function display_results_action_dir() {
if ( location.href.indexOf("&nrpp=") != -1 ) {
var url = location.href,
urlTable = url.split("&nrpp=");
/* nb resultats affiches */
if ( document.getElementById("recap_total_diff") ) {
var nb = parseInt(document.getElementById("recap_total_diff").innerHTML);
} else {
var nb = 1;
}
/* nvx nb resultats a afficher */
var nbNew = parseInt(urlTable[1]) + nb;
document.location = urlTable[0] + "&nrpp=" + nbNew;
}
}
/* afficher les resultats suivant sur societe */
function display_results_action_soc() {
var cible = document.getElementById("search_details"),
results = cible.getElementsByClassName("listehidden"),
count = 0;
/* combien de resultats caches */
for ( var r = 0; r < results.length; r++ ) {
if ( results[r].getAttribute("class").indexOf("isHidden") != -1 ) {
count++;
}
}
/* si resultats caches */
if ( count > 0 ) {
/* cacher le btn si dernier affichage possible */
if ( count <= 50 ) {
add_class(document.getElementById("display_results"), "isHidden");
}
/* afficher les 50 resultats suivants */
var limit = 0;
for ( var r = 0; r < results.length; r++ ) {
if ( results[r].getAttribute("class").indexOf("isHidden") != -1 && limit < 50 ) {
remove_class(results[r], "isHidden");
limit++;
}
}
/* mettre a jour le btn */
if ( (count - limit) > 50 ) {
document.getElementById("display_results_nb").innerText = "50";
} else {
document.getElementById("display_results_nb").innerText = parseInt((count - limit));
}
}
}
/* col gauche fixe au scroll */
function recap_search_scroll() {
/* si colonne gauche > colonne droite */
if ( (document.getElementById("result_search_recap_societe") && document.getElementById("result_search_recap_societe").offsetHeight > document.getElementById("search").offsetHeight) || (document.getElementById("result_search_recap_dirigeant") && document.getElementById("result_search_recap_dirigeant").offsetHeight > document.getElementById("search").offsetHeight) ) {
return;
}
/* determiner les points de transition */
var top = 0;
//societe
if ( ( document.getElementById("result_deno_societe") || document.getElementById("result_rs_societe") || document.getElementById("result_etab_societe") || document.getElementById("result_dirsoc_societe") ) && document.getElementById("bloc_recap_societe") ) {
var bloc = document.getElementsByClassName("bloclist societe"),
topSoc = 0;
for ( var b = 0; b < bloc.length; b++) {
var top = bloc[b].offsetTop;
/* si on est sur premier bloc societe */
if ( topSoc == 0 ) {
var cibleSoc = document.getElementById("bloc_recap_societe"),
cibleSoc = cibleSoc.getElementsByClassName("bloc__title")[0],
cibleSocHeight = cibleSoc.offsetHeight;
topSoc = top - cibleSocHeight;
}
/* si on est sur dernier bloc societe */
if (b == (bloc.length - 1)) {
var topLastSoc = top,
idLastSoc = bloc[b].id,
endSoc = topLastSoc + bloc[b].offsetHeight;
}
}
//limite ou recap en position no fixed
if ( top == 0 || topSoc < top ) {
top = topSoc;
}
}
//marques
if ( document.getElementById("result_marque") && document.getElementById("bloc_recap_marque") ) {
var cibleMarques = document.getElementById("bloc_recap_marque"),
cibleMarques = cibleMarques.getElementsByClassName("bloc__title")[0],
cibleMarquesHeight = cibleMarques.offsetHeight,
topMarques = document.getElementById("result_marque").offsetTop,
topMarques = topMarques - cibleMarquesHeight,//soustraire cibleHeight pour aligner bloc col gauche et bloc col droite
endMarques = topMarques + document.getElementById("result_marque").offsetHeight;
//limite ou recap en position no fixed
if ( top == 0 || topMarques < top ) {
top = topMarques;
}
}
//dirigeants
if ( document.getElementById("result_dir") && document.getElementById("bloc_recap_dir") ) {
var cibleDir = document.getElementById("bloc_recap_dir"),
cibleDir = cibleDir.getElementsByClassName("bloc__title")[0],
cibleDirHeight = cibleDir.offsetHeight,
topDir = document.getElementById("result_dir").offsetTop,
topDir = topDir - cibleDirHeight,//soustraire cibleHeight pour aligner bloc col gauche et bloc col droite
endDir = topDir + document.getElementById("result_dir").offsetHeight;
//limite ou recap en position no fixed
if ( top == 0 || topDir < top ) {
top = topDir;
}
}
//docs
if ( document.getElementById("result_doc") && document.getElementById("bloc_recap_doc") ) {
var cibleDoc = document.getElementById("bloc_recap_doc"),
cibleDoc = cibleDoc.getElementsByClassName("bloc__title")[0],
cibleDocHeight = cibleDoc.offsetHeight,
topDoc = document.getElementById("result_doc").offsetTop,
topDoc = topDoc - cibleDocHeight,//soustraire cibleHeight pour aligner bloc col gauche et bloc col droite
endDoc = topDoc + document.getElementById("result_doc").offsetHeight;
//limite ou recap en position no fixed
if ( top == 0 || topDoc < top ) {
top = topDoc;
}
}
/* gestion position blocs recap */
var scrollFooter = 0;
var currentScroll = 0;
add_event(window, "scroll", function() {
/* verifier les points de transition */
//societe
if ( ( document.getElementById("result_deno_societe") || document.getElementById("result_rs_societe") || document.getElementById("result_etab_societe") || document.getElementById("result_dirsoc_societe") ) && document.getElementById("bloc_recap_societe") ) {
var bloc = document.getElementsByClassName("bloclist societe");
if ( topSoc != ( bloc[0].offsetTop - document.getElementById("bloc_recap_societe").getElementsByClassName("bloc__title")[0].offsetHeight) ) {
topSoc = (bloc[0].offsetTop - document.getElementById("bloc_recap_societe").getElementsByClassName("bloc__title")[0].offsetHeight);
topLastSoc = bloc[(bloc.length - 1)].offsetTop
idLastSoc = bloc[(bloc.length - 1)].id;
top = topSoc;
}
}
//marques
if ( document.getElementById("result_marque") && document.getElementById("bloc_recap_marque") ) {
if ( topMarques != (document.getElementById("result_marque").offsetTop - document.getElementById("bloc_recap_marque").getElementsByClassName("bloc__title")[0].offsetHeight) ) {
topMarques = (document.getElementById("result_marque").offsetTop - document.getElementById("bloc_recap_marque").getElementsByClassName("bloc__title")[0].offsetHeight);
endMarques = topMarques + document.getElementById("result_marque").offsetHeight;
//limite ou recap en position no fixed
if ( top == 0 || topMarques < top ) {
top = topMarques;
}
}
}
//dir
if ( document.getElementById("result_dir") && document.getElementById("bloc_recap_dir") ) {
if ( topDir != (document.getElementById("result_dir").offsetTop - document.getElementById("bloc_recap_dir").getElementsByClassName("bloc__title")[0].offsetHeight) ) {
topDir = (document.getElementById("result_dir").offsetTop - document.getElementById("bloc_recap_dir").getElementsByClassName("bloc__title")[0].offsetHeight);
endDir = topDir + document.getElementById("result_dir").offsetHeight;
//limite ou recap en position no fixed
if ( top == 0 || topDir < top ) {
top = topDir;
}
}
}
//doc
if ( document.getElementById("result_doc") && document.getElementById("bloc_recap_doc") ) {
if ( topDoc != (document.getElementById("result_doc").offsetTop - document.getElementById("bloc_recap_doc").getElementsByClassName("bloc__title")[0].offsetHeight) ) {
topDoc = (document.getElementById("result_doc").offsetTop - document.getElementById("bloc_recap_doc").getElementsByClassName("bloc__title")[0].offsetHeight);
endDoc = topDoc + document.getElementById("result_doc").offsetHeight;
//limite ou recap en position no fixed
if ( top == 0 || topDoc < top ) {
top = topDoc;
}
}
}
/* position footer */
var topFooter = document.getElementById("footer").offsetTop - window.innerHeight;
/* position des blocs recap */
var blocDoc = document.getElementById("bloc_recap_doc"),
blocEnd = document.getElementById("bloc_recap_end"),
blocHeight = window.innerHeight - blocDoc.offsetHeight - 37 - 8;
/* position du scroll */
var scroll = getY(),
cible = document.getElementById("result_search_recap_around"),
fixed = false;
/* fixer col gauche */
if ( cible.parentNode.getAttribute("class").indexOf("scrollFixed") == -1 ) {
//societe
if ( topSoc && scroll >= topSoc ) {
fixed = true;
}
//marques
if ( topMarques && scroll >= topMarques ) {
fixed = true;
}
//dir
if ( topDir && scroll >= topDir ) {
fixed = true;
}
//doc
if ( topDoc && scroll >= topDoc ) {
fixed = true;
}
if ( fixed == true ) {
add_class(cible.parentNode, "scrollFixed");
cible.style.height = (window.innerHeight - 8) + "px";
blocEnd.style.height = blocHeight + "px";
}
}
/* remettre col gauche en position initiale */
else {
if ( top && scroll < top ) {
remove_class(cible.parentNode, "scrollFixed");
cible.style.height = "";
}
else if ( top && scroll > top && scroll < topFooter ) {
cible.style.height = (window.innerHeight - 8) + "px";
blocEnd.style.height = blocHeight + "px";
}
else if ( scroll >= topFooter ) {
var diff = topFooter - scroll;
cible.style.height = ((window.innerHeight - 16) + diff - 16) + "px";
blocEnd.style.height = (blocHeight + diff - 8) + "px";
if ( scroll >= (document.getElementById("footer").offsetTop - 32 ) ) {
cible.parentNode.style.opacity = "0";
} else {
cible.parentNode.style.opacity = "";
}
}
}
/* positionner blocs col gauche */
/* sur dirigeant */
if ( location.href.indexOf("dirigeant.") != -1 ) {
var context = "dirigeant";
/* scroll vers le bas */
if ( scroll > currentScroll ) {
/* determiner limite affichage chaque bloc */
//dir
if ( topSoc != undefined ) {
var limitDir = topSoc;
} else {
if ( topDoc != undefined ) {
var limitDir = topDoc;
} else {
var limitDir = endDir;
}
}
//societe
if ( topDoc != undefined ) {
var limitSoc = topDoc;
} else {
var limitSoc = endSoc;
}
//doc
if ( topDoc != undefined ) {
//var limitDoc = endDoc;
var limitDoc = topDoc;
}
/* adapter affichage col gauche */
//dir
if ( topDir != undefined && scroll >= topDir && scroll < limitDir ) {
var bloc = "bloc_recap_dir";
}
//societe
else if ( topSoc != undefined && scroll >= topSoc && scroll < limitSoc ) {
var bloc = "bloc_recap_societe";
}
//doc
else if ( topDoc != undefined && scroll >= limitDoc ) {
var bloc = "bloc_recap_doc";
}
}
/* scroll vers le haut */
else {
/* determiner limite affichage chaque bloc */
//dir
if ( topSoc != undefined ) {
var limitDir = topSoc + 200;
} else {
if ( topDoc != undefined ) {
var limitDir = topDoc + 200;
} else {
//var limitDir = topDir + document.getElementById("result_dir").offsetHeight;
}
}
//societe
if ( topDoc != undefined ) {
var limitSoc = topDoc + 200;
} else {
//var limitSoc = topLastSoc + document.getElementById(idLastSoc).offsetHeight;
}
/* adapter affichage col gauche */
//dir
if ( topDir != undefined && (scroll + window.innerHeight) < limitDir ) {
var bloc = "bloc_recap_dir";
}
//societe
else if ( topSoc != undefined && (scroll + window.innerHeight) < limitSoc ) {
var bloc = "bloc_recap_societe";
}
}
if ( bloc ) {
recapbloc_search_scroll(bloc, context);
}
}
/* sur societe */
else {
var context = "société";
/* scroll vers le bas */
if ( scroll > currentScroll ) {
/* determiner limite affichage chaque bloc */
//societe
if ( topMarques != undefined ) {
var limitSoc = topMarques;
} else {
if ( topDir != undefined ) {
var limitSoc = topDir;
} else {
if ( topDoc != undefined ) {
var limitSoc = topDoc;
} else {
var limitSoc = topSoc;
}
}
}
//marques
if ( topDir != undefined ) {
var limitMarques = topDir;
} else {
if ( topDoc != undefined ) {
var limitMarques = topDoc;
} else {
var limitMarques = endMarques;
}
}
//dir
if ( topDoc != undefined ) {
var limitDir = topDoc;
} else {
var limitDir = endDir;
}
//doc
if ( topDoc != undefined ) {
//var limitDoc = endDoc;
var limitDoc = topDoc;
} else {
}
/* adapter affichage col gauche */
//societe
if ( topSoc != undefined && (scroll >= topSoc) && (scroll < limitSoc) ) {
var bloc = "bloc_recap_societe";
}
//marques
else if ( topMarques!= undefined && (scroll >= topMarques) && (scroll < limitMarques) ) {
var bloc = "bloc_recap_marque";
}
//dir
else if ( topDir != undefined && (scroll >= topDir) && (scroll < limitDir) ) {
var bloc = "bloc_recap_dir";
}
//doc
else if ( topDoc != undefined && (scroll >= limitDoc) ) {
var bloc = "bloc_recap_doc";
}
}
/* scroll vers le haut */
else {
/* determiner limite affichage chaque bloc */
//societe
if ( topMarques != undefined ) {
var limitSoc = topMarques + 200;
} else {
if ( topDir != undefined ) {
var limitSoc = topDir + 200;
} else {
if ( topDoc != undefined ) {
var limitSoc = topDoc + 200;
} else {
//var limitSoc = topLastSoc + document.getElementById(idLastSoc).offsetHeight;
}
}
}
//marques
if ( topDir != undefined ) {
var limitMarques = topDir + 200;
} else {
if ( topDoc != undefined ) {
var limitMarques = topDoc + 200;
} else {
//var limitMarques = topMarques + document.getElementById("result_marque").offsetHeight;
}
}
//dir
if ( topDoc != undefined ) {
var limitDir = topDoc + 200;
} else {
//var limitDir = topDir + document.getElementById("result_dir").offsetHeight;
}
/* adapter affichage col gauche */
//societe
if ( topSoc != undefined && ((scroll + window.innerHeight) < limitSoc) ) {
var bloc = "bloc_recap_societe";
}
//marques
else if ( topMarques != undefined && ((scroll + window.innerHeight) < limitMarques) ) {
var bloc = "bloc_recap_marque";
}
//dir
else if ( topDir != undefined && ((scroll + window.innerHeight) < limitDir) ) {
var bloc = "bloc_recap_dir";
}
}
if ( bloc ) {
recapbloc_search_scroll(bloc, context);
}
}
/* mise a jour direction du scroll */
currentScroll = scroll;
});
}
/* modifier position bloc col gauche selon scroll col droite */
function recapbloc_search_scroll(id, context) {
/* si colonne gauche > colonne droite */
if ( document.getElementById("result_search_recap_societe").offsetHeight > document.getElementById("search").offsetHeight ) {
return;
}
var cible = document.getElementById("bloc_recap_end");
/* sur dirigeant */
if ( context && context == "dirigeant" ) {
var recap = document.getElementById("result_search_recap_around"),
blocSoc = document.getElementById("bloc_recap_societe"),
blocDir = document.getElementById("bloc_recap_dir"),
blocDoc = document.getElementById("bloc_recap_doc"),
blocEnd = document.getElementById("bloc_recap_end"),
topSoc = blocSoc.offsetTop,
topDir = blocDir.offsetTop,
topDoc = blocDoc.offsetTop;
switch(id) {
case "bloc_recap_dir":
recap.scrollTop = 0;
break;
case "bloc_recap_societe":
recap.scrollTop = topSoc - 13;
break;
case "bloc_recap_doc":
recap.scrollTop = topDoc - 13;
break;
}
}
/* sur societe */
else {
var recap = document.getElementById("result_search_recap_around"),
blocSoc = document.getElementById("bloc_recap_societe"),
blocMarque = document.getElementById("bloc_recap_marque"),
blocDir = document.getElementById("bloc_recap_dir"),
blocDoc = document.getElementById("bloc_recap_doc"),
blocEnd = document.getElementById("bloc_recap_end"),
topSoc = blocSoc.offsetTop,
topMarque = blocMarque.offsetTop,
topDir = blocDir.offsetTop,
topDoc = blocDoc.offsetTop;
switch(id) {
case "bloc_recap_societe":
recap.scrollTop = 0;
break;
case "bloc_recap_marque":
recap.scrollTop = topMarque - 13;
break;
case "bloc_recap_dir":
recap.scrollTop = topDir - 13;
break;
case "bloc_recap_doc":
recap.scrollTop = topDoc - 13;
break;
}
}
}
/* hover bloc recherche */
function mouseon_block_search(element, context) {
if ( context && context == "first" ) {
add_class(element.parentNode, "hover");
} else if ( context && context == "second" ) {
add_class(element.parentNode.parentNode, "hover");
}
}
function mouseout_block_search(element, context) {
if ( context && context == "first" ) {
remove_class(element.parentNode, "hover");
} else if ( context && context == "second" ) {
remove_class(element.parentNode.parentNode, "hover");
}
}
function display_all_compteshop() {
var compte = document.getElementById('compteshoptable');
var index = 0;
if (compte) {
var tab = compte.getElementsByTagName("tr");
for (var i = 0; i < tab.length; i++) {
if (tab[i].id == "compteshopplus") {
index = i;
}
remove_class(tab[i], "isInvisible");
}
compte.deleteRow(index);
//panrefresh();
}
}
function display_all_compteshopfree() {
var compte = document.getElementById('compteshopfreetable');
var index = 0;
if (compte) {
var tab = compte.getElementsByTagName("tr");
for (var i = 0; i < tab.length; i++) {
if (tab[i].id == "compteshopfreeplus") {
index = i;
}
remove_class(tab[i], "isInvisible");
}
compte.deleteRow(index);
//panrefresh();
}
}
function display_all_eventshop() {
var eventshop = document.getElementById('eventshoptable');
var index = 0;
if (eventshop) {
var tab = eventshop.getElementsByTagName("tr");
for (var i = 0; i < tab.length; i++) {
if (tab[i].id == "eventshopplus") {
index = i;
}
remove_class(tab[i], "isInvisible");
}
eventshop.deleteRow(index);
//panrefresh();
}
}
function display_all_eventshopfree() {
var eventshop = document.getElementById('eventshopfreetable');
var index = 0;
if (eventshop) {
var tab = eventshop.getElementsByTagName("tr");
for (var i = 0; i < tab.length; i++) {
if (tab[i].id == "eventshopfreeplus") {
index = i;
}
remove_class(tab[i], "isInvisible");
}
eventshop.deleteRow(index);
//panrefresh();
}
}
function display_all_bilanshop() {
var bilan = document.getElementById('bilanshoptable');
var index = 0;
if (bilan) {
var tab = bilan.getElementsByTagName("tr");
for (var i = 0; i < tab.length; i++) {
if (tab[i].id == "bilanshopplus") {
index = i;
}
remove_class(tab[i], "isInvisible");
}
bilan.deleteRow(index);
//panrefresh();
}
}
function init_readMore_shop() {
if (window.matchMedia("(min-width: 768px)").matches) {
return;
} else if (window.matchMedia("(min-width: 580px)").matches) {
var readJsInstance = readJs_Initialize({
"maximumLengthOfText": 120,
"useStyledContainers": false
});
} else {
var readJsInstance = readJs_Initialize({
"maximumLengthOfText": 92,
"useStyledContainers": false
});
}
}/*--------------------------------------------*/
/* Notifications Dashboard */
/* Notifications generiques */
/* Volet */
/* Submenu */
/* Detection swipe */
/*--------------------------------------------*/
/*--------------------------------------------*/
/* Notifications Dashboard */
/*--------------------------------------------*/
function toast_all(list) {
var listNotif = document.getElementById(list),
listItems = listNotif.getElementsByTagName('li');
for(var i = 0; i < listItems.length; i++) {
listItems[i].classList.toggle('open');
dismiss_notif_timer("item-" + (parseInt(i) + 1), 5000);
}
}
function toast_it(item) {
var listItem = document.getElementById(item);
listItem.classList.toggle('open');
dismiss_notif_timer(item, 5000);
}
function dismiss_notif(item) {
var item = document.getElementById(item);
if(detect_version_IE() == "nav-ie10" || detect_version_IE() == "nav-ie11") {
var parent = item.parentNode;
item.classList.remove('open');
setTimeout(function(){
parent.removeChild(item);
}, 400);
} else {
if(item) {
item.classList.remove('open');
setTimeout(function(){
item.remove();
}, 400);
}
}
}
function dismiss_notif_timer(id, timer) {
setTimeout(function() {
dismiss_notif(id);
}, timer);
}
function toast_notif_list(list, item, data) {
var notifList = document.getElementById(list),
notifItem = document.getElementById(item),
json = data,
notifItemHtml = notifItem.innerHTML,
notifListHtml = "",
i = 1;
for (var key in json) {
if(json[key] === 'error') {
open_popup_message('Une erreur est survenue', json[key]['error'], 'soSecondaryColor5');
} else {
notifListHtml += notifItemHtml.replace(/{{id}}/g, i)
.replace(/{{message}}/g, json[key])
.replace(/{{icon}}/g, 'i-check');
}
i++;
}
notifList.innerHTML = notifListHtml;
var loop = 0;
var checkExist = setInterval(function() {
loop++;
if(document.getElementById(list).hasChildNodes()) {
toast_all(list);
clearInterval(checkExist);
}
if(loop > 5) {
clearInterval(checkExist);
}
}, 250);
}
function add_to_toast_notif_list(list, item, data) {
var notifList = document.getElementById(list),
notifItem = document.getElementById(item),
json = data,
listItemLength = notifList.getElementsByTagName('li').length;
var notifItemHtml = notifItem.innerHTML,
notifListHtml = "";
var i = 1;
for (var key in json) {
if(json[key] === 'error') {
open_popup_message('Une erreur est survenue', json[key]['error'], 'soSecondaryColor5');
} else {
notifListHtml += notifItemHtml.replace(/{{id}}/g, (parseInt(i) + listItemLength))
.replace(/{{message}}/g, json[key])
.replace(/{{icon}}/g, 'i-check');
}
i++;
}
var newListLength = listItemLength + i;
notifList.insertAdjacentHTML('beforeend', notifListHtml);
var loop = 0;
var checkExist = setInterval(function() {
if(document.getElementById(list).hasChildNodes()) {
for(var i = listItemLength; i < newListLength; i++ ) {
toast_it("item-" + (parseInt(i) + listItemLength - 1));
}
clearInterval(checkExist);
}
if(loop > 5) {
clearInterval(checkExist);
}
}, 250);
}
function check_json_response(response) {
var json = response,
notifList = document.getElementById('notif_list'),
notifListItem = notifList.getElementsByTagName('li');
close_popup(empty_popup);
if(notifListItem.length != 0) {
add_to_toast_notif_list('notif_list', 'notif_item_template', json);
} else {
toast_notif_list('notif_list', 'notif_item_template', json);
}
}
/*--------------------------------------------*/
/* Notifications generiques */
/*--------------------------------------------*/
/* afficher notification */
function display_temporary_msg(object) {
/*
1- contexte -> string -> comportement different sur "mobile" et "desktop"
2- msg -> string -> txt a afficher (caractere "||" permet de passer a la ligne)
3- state -> strong -> "information", "alert", "error" ou "confirmed"
4- closeState -> bolean -> afficher ou non la croix pour fermer la notif
5- linkText (optionnel) -> string -> txt du lien (caractere "||" au debut permet de passer le btn a la ligne)
6- linkHref (optionnel) -> string -> url du lien
7- gapParam (optionnel) -> string -> decaler notif par rapport a l'id d'un element flottant
ou number -> decaler notif de X pixels
*/
let contexte = object["contexte"],
msg = object["msg"],
state = object["state"],
closeState = object["closeState"],
linkText = object["linkText"],
linkHref = object["linkHref"],
gapParam = object["gapParam"],
notif = document.createElement("div"),
txt = "",
content = "",
bottom = 0,
right = 0,
top = 0,
scrollY = getY();
/* si notif deja existante -> la fermer */
if (document.getElementsByClassName("soGenericMessage temporary")[0]) {
close_notification();
}
/* creer notif */
notif = document.createElement("div");
add_class(notif, "soGenericMessage temporary " + state + " " + contexte + " open");
/* definir contenu notif */
content = content_temporary_msg(notif, contexte, msg, linkText, linkHref, closeState);
notif.innerHTML = content;
/* insertion notif dans DOM */
document.body.appendChild(notif);
/* comportement specifique */
if ( object["contexte"] == "mobile" ) {
bottom_temp();
bottom_fixe();
} else if ( object["contexte"] == "desktop" ) {
top_fixe();
right_temp();
right_fixe();
}
/* cacher la notif automatiquement */
setTimeout(function(){
close_notification(contexte);
}, 10000);
/* fermeture au resize */
add_event(window, "resize", function() {
close_notification(contexte);
});
/* positionnement bottom temporaire */
function bottom_temp() {
bottom = 0 - notif.offsetHeight - 8;
notif.style.bottom = bottom + "px";
}
/* positionnement bottom fixe */
function bottom_fixe() {
setTimeout(function() {
if ( gapParam && gapParam != "" ) {
if ( typeof gapParam == "number" ) {
notif.style.bottom = gapParam + "px";
} else if ( typeof gapParam == "string" ) {
let element = document.getElementById(gapParam);
if ( element ) {
if ( element.offsetTop > 0 ) {
notif.style.bottom = window.innerHeight - ( element.offsetTop ) + 20 + "px";
} else {
notif.style.bottom = "20px";
}
} else {
notif.style.bottom = "20px";
}
}
} else {
notif.style.bottom = "20px";
}
}, 50);
}
/* positionnement top fixe */
function top_fixe() {
if ( gapParam && gapParam != "" ) {
if ( typeof gapParam == "number" ) {
top = gapParam;
} else if ( typeof gapParam == "string" ) {
let element = document.getElementById(gapParam);
if ( element ) {
top = element.offsetTop + element.offsetHeight + 20;
} else {
top = 20;
}
}
} else {
top = 20;
}
notif.style.top = top + "px";
}
/* positionnement right temporaire */
function right_temp() {
right = 0 - notif.offsetWidth - 8;
notif.style.right = right + "px";
}
/* positionnement bottom fixe */
function right_fixe() {
setTimeout(function(){
notif.style.right = "20px";
}, 250);
}
}
/* definir contenu notif */
function content_temporary_msg(notif, contexte, msg, linkText, linkHref, closeState) {
let content = "",
txt = "";
if ( msg.indexOf("||") != -1 ) {
msgTable = msg.split("||");
for ( var m = 0; m < msgTable.length; m++) {
txt += msgTable[m] + "
";
}
} else {
txt = msg;
}
if ( (linkText && linkText != "") && linkText.indexOf("||") != -1 ) {
content = '' + txt + '';
} else {
content = '' + txt + '';
}
if ( (linkText && linkText != "") && (linkHref && linkHref != "") ) {
if ( linkText.indexOf("||") != -1 ) {
add_class(notif, "flex-wrap");
linkTable = linkText.split("||");
content += '' + linkTable[1] + '';
} else {
content += '' + linkText + '';
}
}
if ( closeState == true ) {
content += 'close';
}
return content;
}
/* cacher notification */
function close_notification(contexte) {
let notif = document.getElementsByClassName("soGenericMessage temporary")[0];
if ( notif || notif != undefined ) {
if ( contexte && contexte == "desktop" ) {
let right = 0 - notif.offsetWidth - 8;
notif.style.right = right + "px";
}
else if ( contexte && contexte == "mobile" ) {
let bottom = 0 - notif.offsetHeight - 8;
notif.style.bottom = bottom + "px";
}
/* supprimer la notif */
setTimeout(function(){
notif.remove();
}, 750);
}
}
/*--------------------------------------------*/
/* Volet */
/*--------------------------------------------*/
/* gestion display volet bas */
function display_volet_bottom(action) {
if ( !document.querySelector("#volet-bottom") ) {
return;
}
let cible = document.querySelector("#volet-bottom"),
content = cible.querySelector(".soVoletBottom__content");
/* ouverture */
if ( action && action == "open" ) {
/* ouverture overlay */
display_overlay_volet_bottom("open");
/* si contenu plus grand que fenetre -> scroll */
let contentHeight = content.offsetHeight - 1;
if ( contentHeight >= window.innerHeight ) {
cible.classList.add("hasScroll");
let scrollContent = cible.querySelector(".soVoletBottom__scroll"),
heightTop = cible.querySelector(".soVoletBottom__fixTop"),
heightBottom = cible.querySelector(".soVoletBottom__fixBottom"),
heightFinal = window.innerHeight - 6 - 24 - 16;//32 = padding du volet / 32 = padding des cta
if ( heightTop ) {
heightFinal = heightFinal - heightTop.offsetHeight;
}
if ( heightBottom ) {
heightFinal = heightFinal - heightBottom.offsetHeight;
}
/* attribution hauteur */
cible.style.height = (window.innerHeight - 6) + "px";
scrollContent.style.height = heightFinal + "px";
}
/* si contenu plus petit que fenetre */
else {
/* attribution hauteur */
cible.style.height = contentHeight + "px";
/* initialiser fermeture au swipe down */
swipe_Y("volet-bottom", swipe_down_volet_action);
}
/* fermeture au click sur l'overlay */
let overlay = document.querySelector("#volet-bottom-around")
overlay.addEventListener('click', function() {
display_volet_bottom("close");
})
/* fermeture au resize */
window.addEventListener('resize', function() {
display_volet_bottom("close");
});
}
/* fermeture */
else if ( action && action == "close" ) {
/* reinitialisation hauteur */
cible.style.height = "";
/* supprimer cta en position fixed */
cible.classList.remove("hasScroll");
/* fermeture overlay */
display_overlay_volet_bottom("close");
/* suppression contenu */
delete_volet_bottom();
}
}
/* creation volet bas */
function create_volet_bottom(html, design) {
/* creation contenair */
let cible = document.createElement("div");
cible.classList.add("soVoletBottom");
cible.setAttribute("id", "volet-bottom");
/* creation content */
let content = document.createElement("div");
content.classList.add("soVoletBottom__content");
/* design content */
if ( design && design == "simple" ) {
content.classList.add("simple-content");
}
/* remplir content */
content.appendChild(html);
/* assemblage element */
cible.insertBefore(content, null);
/* insertion dans DOM */
document.body.appendChild(cible);
/* ouverture volet */
display_volet_bottom("open");
}
/* suppression volet bas */
function delete_volet_bottom() {
setTimeout(function(){
if ( document.querySelector("#volet-bottom") ) {
document.querySelector("#volet-bottom").remove();
}
}, 400);//delai pour fermeture volet en CSS = 0.3s
}
/* si swipe down sur volet bas -> le fermer */
function swipe_down_volet_action(result) {
if ( result && result == "down" ) {
display_volet_bottom("close");
}
}
/* display overlay volet */
function display_overlay_volet_bottom(action) {
/* ouverture */
if ( action && action == "open") {
/* bloquer le scroll */
document.body.classList.add("of-hidden");
/* creation */
let overlay = document.createElement("div");
overlay.classList.add("soVoletBottom__around");
overlay.setAttribute("id", "volet-bottom-around");
/* insertion dans le DOM */
document.body.appendChild(overlay);
/* ouverture */
setTimeout(function(){
overlay.classList.add("isOpen");
}, 50);
}
/* fermeture */
else if ( action && action == "close") {
let overlay = document.querySelector("#volet-bottom-around");
if ( overlay ) {
/* fermeture */
if ( overlay.className.indexOf("isOpen") != -1 ) {
overlay.classList.remove("isOpen");
}
/* suppression */
setTimeout(function(){
overlay.remove();
}, 200);
/* debloquer le scroll */
setTimeout(function(){
document.body.classList.remove("of-hidden");
}, 400);
}
}
}
/*--------------------------------------------*/
/* Detection swipe */
/*--------------------------------------------*/
/* test direction swipe vertical */
function swipe_Y(idCible, callback) {
/* initialisation variables */
let touchArea = document.getElementById(idCible),
isSwiped = "",
deviceType= "",
mouseY = 0,
initialY = 0;
/* nom des events en fonction du device */
let events = {
mouse: {
down: "mousedown",
move: "mousemove",
up: "mouseup"
},
touch: {
down: "touchstart",
move: "touchmove",
up: "touchend",
}
}
/* detect device */
const isTouchDevice = function() {
// test si event touch existe
try {
document.createEvent("TouchEvent");
deviceType = "touch";
return true;
} catch (e) {
deviceType = "mouse";
return false;
}
}
/* recup left et top du touch */
let rectTop = touchArea.getBoundingClientRect().top;
/* recup X et Y du touch */
const getY = (e) => {
if ( !isTouchDevice ) {
mouseY = e.pageY;
} else {
if ( e.touches ) {
mouseY = e.touches[0].pageY - rectTop;
}
}
};
/* executer detection device */
isTouchDevice();
/* au swipe sur touchArea */
touchArea.addEventListener(events[deviceType].down, (event) => {
isSwiped = true;
/* posiiton en Y */
getY(event);
initialY = mouseY;
});
/* au touch sur touchArea */
touchArea.addEventListener(events[deviceType].move, (event) => {
if (!isTouchDevice()) {
event.preventDefault();
}
if (isSwiped) {
getY(event);
let diffY = mouseY - initialY,
result = "";
/* attendre une diff de 5px pour ne pas confondre touch et swipe */
if ( diffY > 5 ) {
result = "down";
} else if ( diffY < -5 ) {
result = "up";
}
if (result != "" && callback && typeof(callback) == "function" ) {
callback(result);
}
}
});
/* reinitialisation */
touchArea.addEventListener(events[deviceType].up, () => {
isSwiped = false;
});
touchArea.addEventListener("mouseleave", () => {
isSwiped = false;
});
window.onload = () => {
isSwiped = false;
};
}
/* test direction swipe horizontal */
function swipe_X(idCible, callback) {
/* initialisation variables */
let touchArea = document.getElementById(idCible),
isSwiped = "",
deviceType= "",
mouseX = 0,
initialX = 0;
/* nom des events en fonction du device */
let events = {
mouse: {
down: "mousedown",
move: "mousemove",
up: "mouseup"
},
touch: {
down: "touchstart",
move: "touchmove",
up: "touchend",
}
}
/* detect device */
const isTouchDevice = function() {
// test si event touch existe
try {
document.createEvent("TouchEvent");
deviceType = "touch";
return true;
} catch (e) {
deviceType = "mouse";
return false;
}
}
/* recup left et top du touch */
let rectLeft = touchArea.getBoundingClientRect().left;
/* recup X et Y du touch */
const getY = (e) => {
if ( !isTouchDevice ) {
mouseY = e.pageX;
} else {
mouseY = e.touches[0].pageX - rectLeft;
}
};
/* executer detection device */
isTouchDevice();
/* au swipe sur touchArea */
touchArea.addEventListener(events[deviceType].down, (event) => {
isSwiped = true;
/* posiiton en X */
getY(event);
initialX = mouseX;
});
/* au touch sur touchArea */
touchArea.addEventListener(events[deviceType].move, (event) => {
if (!isTouchDevice()) {
event.preventDefault();
}
if (isSwiped) {
getY(event);
let diffX = mouseX - initialX,
result = "";
/* attendre une diff de 5px pour ne pas confondre touch et swipe */
if ( diffX > 5 ) {
result = "left";
} else if ( diffX < -5 ) {
result = "right";
}
if (result != "" && callback && typeof(callback) == "function" ) {
callback(result);
}
}
});
/* reinitialisation */
touchArea.addEventListener(events[deviceType].up, () => {
isSwiped = false;
});
touchArea.addEventListener("mouseleave", () => {
isSwiped = false;
});
window.onload = () => {
isSwiped = false;
};
}
/*--------------------------------------------*/
/* Submenu */
/*--------------------------------------------*/
/* display submenu */
function display_submenu(cible, classRef, html) {
/* ouverture */
if ( cible.className.indexOf("hasSubmenu") == -1 ) {
create_submenu(cible, classRef, html);
}
/* fermeture */
else {
delete_submenu(classRef);
}
}
/* creation submenu */
function create_submenu(cible, classRef, html) {
/* creation overlay pour fermeture sur click exterieur */
let overlay = document.createElement("div");
overlay.classList.add("soSubmenu__overlay");
document.body.appendChild(overlay);
/* creation contenair */
let submenu = document.createElement("div");
submenu.classList.add("soSubmenu");
submenu.classList.add(classRef + "__submenu");
/* remplir content */
submenu.appendChild(html);
/* insertion dans DOM */
cible.classList.add("hasSubmenu");
cible.appendChild(submenu);
/* fermeture au resize */
window.addEventListener('resize', function(e) {
delete_submenu(classRef);
});
/* fermeture au click à l'exterieur */
overlay.addEventListener('click', function(e) {
delete_submenu(classRef);
});
}
/* suppression submenu */
function delete_submenu(classRef) {
let submenu = document.querySelector("." + classRef + "__submenu"),
overlay = document.querySelector(".soSubmenu__overlay");
/* suppression submenu */
if ( submenu ) {
submenu.parentNode.classList.remove("hasSubmenu");
submenu.remove();
}
/* suppression overlay */
if ( overlay ) {
overlay.remove();
}
}
// FONCTION DE TRI D'UN JSON PAR DEUX CRITERES
var sort_by = function() {
var fields = [].slice.call(arguments),
n_fields = fields.length;
return function(A, B) {
var a, b, field, key, primer, reverse, result;
for (var i = 0, l = n_fields; i < l; i++) {
result = 0;
field = fields[i];
key = typeof field === 'string' ? field : field.name;
a = A[key];
b = B[key];
if (typeof field.primer !== 'undefined') {
a = field.primer(a);
b = field.primer(b);
}
reverse = (field.reverse) ? -1 : 1;
if (a < b) result = reverse * -1;
if (a > b) result = reverse * 1;
if (result !== 0) break;
}
return result;
}
}
function parentHasId(node, idlist) {
if (!node) {
return(null);
}
if (node.id) {
for (var i = 0 ; i < idlist.length; i++) {
if (node.id == idlist[i]) {
return(node.id);
}
}
} else {
return parentHasId(node.parentNode, idlist);
}
}
/* Ajout classe specifique si device pas tactile */
function device_without_touch() {
if ( !is_touch_device() ) {
var body = document.getElementById("documentbody");
add_class(body, "no-touch");
}
}/******************** VIEW_CARTO ************************/
/********************************************************/
var infos = document.getElementById('infos');
var infost;
function infoshow(delaysec) {
if (infos) {
infos.style.visibility = 'visible';
clearTimeout(infost);
if (delaysec) {
infost = setTimeout("javascript:infos.style.visibility='hidden';", delaysec * 1000);
}
}
}
function infohide() {
if (infos) {
infos.style.visibility = 'hidden';
clearTimeout(infost);
}
}
/* Fonction permettant de gerer l'affichage de la carto */
var ratio_phone = 3/2;
var ratio_tablet = 4/3;
var ratio_desktop = 7/5;
function ratio_device() {
if (is_phone_device()) {
return (ratio_phone);
} else if (is_tablet_device()) {
return (ratio_tablet);
}
return (ratio_desktop);
}
function link_carto(param, xsize, ysize, ext) {
if (!param) {
return "";
}
var link = "/cgi-bin/cartoc?param=" + param + "&format=";
/* Cas ie8 - */
if (document.all && !document.addEventListener) {
link += "vml";
} else {
link += "svg";
}
link += "&xsize=" + xsize + "&ysize=" + ysize;
return (link);
}
function xsize_carto(ext) {
var xsize = 0;
/* avec un bloc identite */
if (!ext && document.getElementById('company_identity')) {
var obj = document.getElementById('company_identity');
xsize = get_width(obj);
/* sur carto societe */
if (!document.getElementById('identitedir')) {
if (is_desktop_device()) {
if (window.innerWidth < 1280) {
xsize -= 360; /* enlever colonne droite */
} else {
xsize -= 610; /* enlever colonne droite et menu gauche */
}
} else {
xsize -= 50;
}
}
/* sur carto dirigeant */
else {
if (is_desktop_device()) {
xsize -= 350; /* enlever colonne droite */
} else {
xsize -= 50;
}
}
}
else if (!ext && !document.getElementById('company_identity')) {
var obj = document.getElementById('identite');
if (!obj) {
obj = document.getElementById('identitedir');
}
xsize = get_width(obj);
if (is_desktop_device()) {
xsize -= 350;
} else {
xsize -= 50;
}
}
else {
xsize = get_width(document.getElementById('headercartoext'));
if (is_desktop_device()) {
xsize -= 350;
} else {
xsize -= 50;
}
}
/* Cas ie8 - */
if (isNaN(xsize) || (document.all && !document.addEventListener)) {
xsize = 998;
}
xsize = Math.round(xsize);
return (xsize);
}
function ysize_carto(xsize) {
var ysize = Math.round(xsize * ratio_device());
return (ysize);
}
function build_carto(param, ext) {
if (!param) {
return ("");
}
var xsize = xsize_carto(ext);
var ysize = ysize_carto(xsize);
var link = link_carto(param, xsize, ysize, ext);
if (is_societe()) {
link += "&isficheentreprise=1";
}
if (document.all && !document.addEventListener) {
var carto = "";
return (carto);
} else {
var carto = "";
return (carto);
}
}
function add_carto(param) {
if (param) {
var carto = build_carto(param, 0);
document.getElementById('cartosvgnoext').innerHTML = carto;
}
if (document.addEventListener) { /* ie 8+ */
add_event(window, "resize", function(){resize_carto(param, 0);});
}
}
function resize_carto(param, ext) {
var frame = document.getElementById("theframe");
if (frame && param) {
var xsize = xsize_carto(ext);
var ysize = ysize_carto(xsize);
var link = link_carto(param, xsize, ysize);
if (is_societe()) {
link += "&isficheentreprise=1";
}
/* on teste si ie8- */
// frame.setAttribute("src", link);
// } else {
frame.setAttribute("data", link);
// }
frame.width = xsize;
frame.height = ysize;
}
}
function add_carto_ext(param) {
if (param) {
var carto = build_carto(param, 1);
document.getElementById('cartosvgext').innerHTML = carto;
if (document.addEventListener) { /* ie 8+ */
add_event(window, "resize", function(){resize_carto(param, 1);});
}
}
}
/* Decoupe /minicarto/356000000/x/y */
function extract_carto_x(url) {
var tab;
var x = 0;
if (url) {
tab = url.split('/');
if (tab.length < 5) {
return (0);
}
x = parseInt(tab[tab.length - 2]);
}
return (x);
}
function extract_carto_y(url) {
var tab;
var y;
if (url) {
tab = url.split('/');
if (tab.length < 5) {
return (0);
}
y = parseInt(tab[tab.length - 1]);
}
return (y);
}
/* On est oblige a cause du parametre a envoyer */
function init_carto() {
event_input('pident', "mot de p");
}
/* fonctionnement nouveau design page carto*/
function init_avantages_carto() {
height_avantages_carto();
smooth_effect();
}
/* calcul hauteur bloc avec bg en degrade */
function height_avantages_carto() {
var avantageAround = document.getElementById("avantages_carto");
var avantage = document.getElementById("avantages_carto_intro");
var degrade = document.getElementById("degrade");
avantage.style.height = degrade.offsetHeight + "px";
/* bloquer hauteur bloc parent su Dirigeant */
if ( document.getElementById("avantages_carto_dirigeant" ) ) {
avantageAround.style.height = degrade.offsetHeight + "px";
}
add_event(window, "resize", function(){
/* ne resizer le bloc que sur Dirigeant et s'il n'est pas deja ouvert */
if ( document.getElementById("avantages_carto_dirigeant" ) && avantageAround.getAttribute("class").indexOf("open") == -1 ) {
avantageAround.style.height = degrade.offsetHeight + "px";
}
avantage.style.height = degrade.offsetHeight + "px";
});
}
/* hauteur div contenant page carto pour effet smooth scroll */
function smooth_effect() {
var content = document.getElementById("documentbody_around");
if ( content ) {
content.style.height = window.innerHeight + "px";
add_class(content, "smooth-effect");
add_event(window, "resize", function(){
content.style.height = window.innerHeight + "px";
});
}
}
/* lien vers carto societe */
function linkcartodir(element, src) {
var url = document.location.href;
if ( url.indexOf("dirigeant") != -1 ) { /* si sur dirigeant */
switch(src) {
case 'descriptioncarto' : /* liens colonne droite sur page carto */
var link = construct_url("https://www.societe.com/offres-comparatif.html");
gana_event(link, 'Fiche_dirigeant', 'Onglet-carto', 'Acquisition');
break;
case 'connexion' : /* si btn se connecter */
var link = construct_url(element.getAttribute("data-link"));
gana_event(link, 'Fiche_dirigeant', 'Onglet-carto', 'Connexion');
break;
case 'abogratuit' : /* si btn abonnement gratuit */
gana_event(null, 'Fiche_dirigeant', 'Onglet-carto', 'Gratuit');
break;
case 'vitrine' : /* si btn tarifs */
var link = construct_url("https://www.societe.com/cgi-bin/vitrine?or=dir");
gana_event(link, 'Fiche_dirigeant', 'Onglet-carto', 'Decouvrir');
break;
}
} else { /* si sur societe */
if ( url.indexOf("avantages-dirigeant-plus.html") != -1 ) { /* si sur pages/avantages-dirigeant-plus.html */
switch(src) {
case 'descriptioncarto' : /* liens colonne droite sur page carto */
var link = construct_url("https://www.societe.com/offres-comparatif.html");
gana_event(link, 'Avantage_carto', 'Click', 'Acquisition');
break;
case 'connexion' : /* si btn se connecter */
var link = construct_url(element.getAttribute("data-link"));
gana_event(link, 'Avantage_carto', 'Click', 'Connexion');
break;
case 'abogratuit' : /* si btn abonnement gratuit */
gana_event(null, 'Avantage_carto', 'Click', 'Gratuit');
break;
case 'vitrine' : /* si btn tarifs */
var link = construct_url("https://www.societe.com/cgi-bin/vitrine?or=dir");
gana_event(link, 'Avantage_carto', 'Click', 'Decouvrir');
break;
}
} else {
switch(src) {
case 'descriptioncarto' : /* liens colonne droite sur page carto */
var link = construct_url("https://www.societe.com/offres-comparatif.html");
gana_event(link, 'Fiche_entreprise', 'Onglet-carto', 'Acquisition');
break;
case 'connexion' : /* si btn se connecter */
var link = construct_url(element.getAttribute("data-link"));
gana_event(link, 'Fiche_entreprise', 'Onglet-carto', 'Connexion');
break;
case 'abogratuit' : /* si btn abonnement gratuit */
gana_event(null, 'Fiche_entreprise', 'Onglet-carto', 'Gratuit');
break;
case 'vitrine' : /* si btn tarifs */
var link = construct_url("https://www.societe.com/cgi-bin/vitrine?or=dir");
gana_event(link, 'Fiche_entreprise', 'Onglet-carto', 'Decouvrir');
break;
}
}
}
}
/* ouverture du bloc descriptif abonnement carto */
function open_avantages_carto(context) {
var avantages = document.getElementById("avantages_carto"),
intro = avantages.getElementsByClassName("AvantagesCarto__intro")[0],
argmts = avantages.getElementsByClassName("AvantagesCarto__arguments")[0],
abnmt = avantages.getElementsByClassName("Abonnements__offres")[0],
compare = avantages.getElementsByClassName("Abonnements__compare")[0];
var newHeight = intro.offsetHeight + argmts.offsetHeight + abnmt.offsetHeight + compare.offsetHeight + 10;
/* ajout class open pour eviter le redimensionnement au resize */
add_class(avantages, "open");
/* ouverture bloc */
avantages.style.height = newHeight + "px";
/* scroll */
if ( context && context == "show-offer" ) {
gana_event(null, 'Fiche_dirigeant', 'Onglet-carto', 'Acquisition');
} else {
gana_event('#avantages_carto', 'Fiche_dirigeant', 'Onglet-carto', 'Acquisition');
}
add_event(window, "resize", function(){
setTimeout( function(){
var newHeightResize = intro.offsetHeight + argmts.offsetHeight + abnmt.offsetHeight + compare.offsetHeight + 10;
avantages.style.height = newHeightResize + "px";
}, 300);
});
}
/* formulaire de connexion via la carto */
function login_carto() {
var request,
back = "",
mail = document.getElementById("email"),
pass = document.getElementById("passwd_field"),
perm = document.getElementById("perm");
if(document.getElementById('back') != null) {
back = document.getElementById('back').value;
}
if (window.XMLHttpRequest) {
request = new XMLHttpRequest();
if (request.overrideMimeType) {
request.overrideMimeType("text/html");
}
} else {
if (window.ActiveXObject) {
try {
request = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
request = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
window.alert("Votre navigateur ne supporte pas AJAX");
}
}
}
}
if (request && request.readyState != 0){
request.abort();
}
if(mail.value.length != 0 && pass.value.length != 0) {
/* envoi de la requete de creation de compte */
request.open('POST', 'https://paiement.societe.com/cgi-bin/compte-login', true);
request.send('email=' +encode_to_hex(mail.value)+ '&password=' +encode_to_hex(pass.value)+ '&user_type=old&back=' +back+ "&perm=" +perm.value);
request.onreadystatechange = function() {
if(request.readyState === XMLHttpRequest.DONE && request.status === 200) {
var url = construct_url("https://paiement.societe.com/cgi-bin/compte-login");
window.location.href = url;
}
}
}
}
/* trigger requete ajax si appui sur entree */
function login_carto_enter(id) {
var formInputs = document.getElementById(id).elements;
for(var i = 0; i < formInputs.length; i++) {
formInputs[i].addEventListener("keypress", function(e) {
if (e.keyCode == 13 && this.getAttribute('data-form') == id) {
login_carto();
}
});
}
}
/********************************************************/
/***************** VIEW CARTOSHOP VITRINE ***************/
/********************************************************/
/* Initialisation cartoshop */
function init_cartoshop() {
init_videocarto();
add_event(window, "resize", function(){init_videocarto()});
}
function init_videocarto() {
var link = document.getElementById('cartoshoplink');
var video = document.getElementById('cartoshopvideo');
if (is_phone_device()) {
if (link) {
link.style.display="block";
}
if (video) {
video.style.display="none";
}
} else {
if (link) {
link.style.display="none";
}
if (video) {
video.style.display="block";
}
}
}
/* fix position footer pour la carto */
function init_footer_carto() {
if(document.URL.indexOf('/cgi-bin/carto') != -1) {
var footer = document.getElementById('footer-compte');
add_class(footer, 'block');
}
}
/***********************************************/
/* STRIPE.JS */
/***********************************************/
/* creation formulaire carte bancaire Stripe */
function create_stripe_card_form() {
fetch("/cgi-bin/stripe-intent")
.then(function(e) { return e.json() })
.then(function(data) {
if (data.error) {
const displayError = document.getElementById('card-errors');
if (displayError) {
displayError.textContent = error;
return;
}
return;
}
var stripe = Stripe(data.pk);
var elements = stripe.elements();
var style = {
base: {
iconColor: '#c4f0ff',
color: '#000000',
fontWeight: 500,
fontFamily: 'Roboto-Regular-webfont, sans-serif',
fontSize: '16px',
fontSmoothing: 'antialiased',
':-webkit-autofill': {
color: '#000000',
},
'::placeholder': {
color: '#7F7F7F',
}
},
invalid: {
iconColor: '#CE0031',
color: '#CE0031',
backgroundColor: '#FFEAEF'
},
complete: {
//color: '#418C24',
color: '#000000',
backgroundColor: '#DCFFE3'
}
};
// Card number
var card = elements.create('cardNumber', {
style: style,
showIcon: true
});
card.mount('#card-number');
// CVC
var cvc = elements.create('cardCvc', {
style: style
});
cvc.mount('#card-cvc');
// Card expiry
var exp = elements.create('cardExpiry', {
style: style
});
exp.mount('#card-exp');
/* forcer css */
var inputcss = document.querySelectorAll('#card-element .__PrivateStripeElement');
var form = document.getElementById('payment-form');
var submit = document.getElementById('submit');
for(i in inputcss) {
inputcss[i].style = 'margin: 4px !important; padding: 8px !important; border: 1px solid #7B7B7B !important; display: block !important; background: transparent none repeat scroll 0% 0% !important; position: relative !important; opacity: 1 !important; border-radius: 3px;';
}
card.on('change', function(handle) {
const displayError = document.getElementById('card-errors');
if (handle.error) {
displayError.textContent = handle.error.message;
} else {
displayError.textContent = '';
}
if (displayError.textContent == '' && handle.brand) {
if (handle.brand != "visa"
&& handle.brand != "mastercard"
&& handle.brand != "amex") {
displayError.textContent = 'Carte non supporté';
}
}
if (displayError.textContent === '') {
submit.style.display = 'inline-block';
} else {
submit.style.display = 'none';
}
});
form.addEventListener('submit', function(event) {
event.preventDefault();
card.update({disabled: true});
stripe.confirmCardSetup(data.secret, {
payment_method: {
card: card
}
}).then(function(res) {
const displayError = document.getElementById('card-errors');
card.update({disabled: false});
if (displayError && res.error) {
displayError.textContent = res.error.message;
return;
}
if (res.setupIntent) {
window.location='/cgi-bin/compte-mode-paiement?mode=attach&pm=' + res.setupIntent.payment_method;
}
});
});
});
}
/***********************************************/
/* CHART.JS */
/***********************************************/
function format_chart_date(inputDate) {
var datePart = inputDate.match(/\d+/g),
year = datePart[0],
month = datePart[1],
day = datePart[2];
return day+'/'+month+'/'+year;
}
function format_chart_data(data, type, color) {
var period = document.getElementById('table-surv-period'),
labels = new Array,
years = new Array,
values = new Array,
backgroundColors = new Array,
borderColors = new Array,
bgColor,
bColor;
if(period.innerHTML != '{{period}}') {
period.innerHTML = '{{period}}';
}
switch(color) {
case 'primary':
//bgColor = 'rgba(234, 241, 248, 0.75)';
//bColor = 'rgba(2, 113, 219, 1)';
bgColor = 'rgba(234, 241, 248, 0.75)';
bColor = 'rgba(2, 113, 219, 1)';
break;
case 'secondary':
//bgColor = 'rgba(241, 154, 39, 0.4)';
//bColor = 'rgba(241, 154, 39, 1)';
bgColor = 'rgba(241, 154, 39, 0.4)';
bColor = 'rgba(241, 154, 39, 1)';
}
for(var i in data) {
switch(type) {
case 'day':
if(data[i].date == "") {
labels.unshift('NC');
} else {
labels.unshift(format_chart_date(data[i].date));
}
years.push('');
break;
case 'week':
window.matchMedia("(min-width: 1280px)").matches ?
labels.unshift('S.' + data[i].week) : labels.unshift('Semaine ' + data[i].week);
years.unshift(data[i].date);
break;
case 'month':
switch (data[i].date.slice(-2)){
case '01':
window.matchMedia("(min-width: 768px)").matches && window.matchMedia("(max-width: 1280px)").matches ?
labels.unshift('Jan.') : labels.unshift('Janvier');
break;
case '02':
window.matchMedia("(min-width: 768px)").matches && window.matchMedia("(max-width: 1280px)").matches ?
labels.unshift('Fév.') : labels.unshift('Février');
break;
case '03':
window.matchMedia("(min-width: 768px)").matches && window.matchMedia("(max-width: 1280px)").matches ?
labels.unshift('Mar.') : labels.unshift('Mars');
break;
case '04':
window.matchMedia("(min-width: 768px)").matches && window.matchMedia("(max-width: 1280px)").matches ?
labels.unshift('Avr.') : labels.unshift('Avril');
break;
case '05':
labels.unshift('Mai');
break;
case '06':
window.matchMedia("(min-width: 768px)").matches && window.matchMedia("(max-width: 1280px)").matches ?
labels.unshift('Jui.') : labels.unshift('Juin');
break;
case '07':
window.matchMedia("(min-width: 768px)").matches && window.matchMedia("(max-width: 1280px)").matches ?
labels.unshift('Jui.') : labels.unshift('Juillet');
break;
case '08':
window.matchMedia("(min-width: 768px)").matches && window.matchMedia("(max-width: 1280px)").matches ?
labels.unshift('Aoû.') : labels.unshift('Août');
break;
case '09':
window.matchMedia("(min-width: 768px)").matches && window.matchMedia("(max-width: 1280px)").matches ?
labels.unshift('Sep.') : labels.unshift('Septembre');
break;
case '10':
window.matchMedia("(min-width: 768px)").matches && window.matchMedia("(max-width: 1280px)").matches ?
labels.unshift('Oct.') : labels.unshift('Octobre');
break;
case '11':
window.matchMedia("(min-width: 768px)").matches && window.matchMedia("(max-width: 1280px)").matches ?
labels.unshift('Nov.') : labels.unshift('Novembre');
break;
case '12':
window.matchMedia("(min-width: 768px)").matches && window.matchMedia("(max-width: 1280px)").matches ?
labels.unshift('Déc.') : labels.unshift('Décembre');
break;
}
years.unshift(data[i].date.slice(0, 4));
break;
}
if(typeof data[i].nb_global != "number") {
values.unshift('0');
} else {
values.unshift(data[i].nb_global);
}
backgroundColors.push(bgColor);
borderColors.push(bColor);
}
switch(type) {
case 'day': period.innerHTML = period.innerHTML.replace(/{{period}}/g, 'Jours'); break;
case 'week': period.innerHTML = period.innerHTML.replace(/{{period}}/g, 'Semaines'); break;
case 'month': period.innerHTML = period.innerHTML.replace(/{{period}}/g, 'Mois'); break;
}
var chart_data = {
'labels': labels,
'years' : years,
'values': values,
'backgroundColors': backgroundColors,
'borderColors': borderColors
};
return chart_data;
}
function get_chart_data(id, type) {
var req,
jsonURL = '/cgi-bin/statsurv?type=' + type + '&state=select';
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
if (req.overrideMimeType) {
req.overrideMimeType("text/html");
}
} else {
if (window.ActiveXObject) {
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
window.alert("Votre browser ne supporte pas AJAX");
}
}
}
}
if (req && req.readyState != 0){
req.abort();
}
req.open('GET', jsonURL, true);
req.setRequestHeader("Content-type", "text/html;charset=iso-8859-1");
req.send();
/* afficher loader chargement */
open_progress_overlay('surv-chart', 'Récupération des données...');
req.onreadystatechange = function() {
var json;
if ( req.readyState == 4 ) {
/* cacher loader chargement */
close_progress_overlay('surv-chart');
/* reponse ok */
if ( req.status === 200 ) {
try {
json = JSON.parse(req.responseText);
} catch (e) {
return;
}
var style = document.getElementById('chart-surv-style').value,
mixed = document.getElementById('chart-surv-mixed').value;
if(mixed == 'single') {
build_single_chart(id, type, json, style);
} else {
build_mixed_chart(id, type, json, style);
}
}
/* reponse ko */
else {
if(!is_class_exist(document.getElementById('popup'), 'isHidden')) {
return;
} else {
open_popup_message('Statistiques des surveillances', 'Une erreur technique est survenue, veuillez réessayer plus tard.', 'soSecondaryColor5');
}
}
}
}
}
function get_chart_style(id, style) {
var req,
type = document.getElementById('chart-surv-type').value,
jsonURL = '/cgi-bin/statsurv?type=' + type + '&state=select';
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
if (req.overrideMimeType) {
req.overrideMimeType("text/html");
}
} else {
if (window.ActiveXObject) {
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
window.alert("Votre browser ne supporte pas AJAX");
}
}
}
}
if (req && req.readyState != 0){
req.abort();
}
req.open('GET', jsonURL, true);
req.setRequestHeader("Content-type", "text/html;charset=iso-8859-1");
req.send();
/* afficher loader chargement */
open_progress_overlay('surv-chart', 'Récupération des données...');
req.onreadystatechange = function() {
var json;
if ( req.readyState == 4 ) {
/* cacher loader chargement */
close_progress_overlay('surv-chart');
/* reponse ok */
if ( req.status === 200 ) {
try {
json = JSON.parse(req.responseText);
} catch (e) {
return;
}
var mixed = document.getElementById('chart-surv-mixed').value;
if(mixed == 'single') {
build_single_chart(id, type, json, style);
} else {
build_mixed_chart(id, type, json, style);
}
build_single_chart(id, type, json, style);
}
/* reponse ko */
else {
if(!is_class_exist(document.getElementById('popup'), 'isHidden')) {
return;
} else {
open_popup_message('Statistiques des surveillances', 'Une erreur technique est survenue, veuillez réessayer plus tard.', 'soSecondaryColor5');
}
}
}
}
}
function get_chart_mixed(id, mixed) {
var req,
type = document.getElementById('chart-surv-type').value,
jsonURL = '/cgi-bin/statsurv?type=' + type + '&state=select';
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
if (req.overrideMimeType) {
req.overrideMimeType("text/html");
}
} else {
if (window.ActiveXObject) {
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
window.alert("Votre browser ne supporte pas AJAX");
}
}
}
}
if (req && req.readyState != 0){
req.abort();
}
req.open('GET', jsonURL, true);
req.setRequestHeader("Content-type", "text/html;charset=iso-8859-1");
req.send();
/* afficher loader chargement */
open_progress_overlay('surv-chart', 'Récupération des données...');
req.onreadystatechange = function() {
var json;
if ( req.readyState == 4 ) {
/* cacher loader chargement */
close_progress_overlay('surv-chart');
/* reponse ok */
if ( req.status === 200 ) {
try {
json = JSON.parse(req.responseText);
} catch (e) {
return;
}
var style = document.getElementById('chart-surv-style').value;
if(mixed == 'single') {
build_single_chart(id, type, json, style);
} else {
build_mixed_chart(id, type, json, style);
}
}
/* reponse ko */
else {
if(!is_class_exist(document.getElementById('popup'), 'isHidden')) {
return;
} else {
open_popup_message('Statistiques des surveillances', 'Une erreur technique est survenue, veuillez réessayer plus tard.', 'soSecondaryColor5');
}
}
}
}
}
var myChart;
function build_single_chart(id, type, json, style) {
var ctx = document.getElementById(id),
chartLabels = json['liste n'],
chartLabels_n1 = json['liste n-1'],
formatData = format_chart_data(chartLabels, type, 'primary'),
formatData_n1 = format_chart_data(chartLabels_n1, type, 'secondary');
switch(type) {
case 'day':
type = 'jour';
break;
case 'week':
type = 'semaine';
break;
case 'month':
type = 'mois';
break;
}
switch(style) {
case 'bar':
var data = {
labels: formatData.labels,
datasets: [{
label: 'Mises en surveillance par ' + type + ' (' + chartLabels[0].date.substring(0, 4) + ')',
data: formatData.values,
backgroundColor: formatData.backgroundColors,
borderColor: formatData.borderColors,
borderWidth: 1
}],
};
break;
case 'line':
var data = {
labels: formatData.labels,
datasets: [{
label: 'Mises en surveillance par ' + type + ' (' + chartLabels[0].date.substring(0, 4) + ')',
data: formatData.values,
lineTension: 0,
fill: true,
pointBorderColor: formatData.borderColors[0],
pointBackgroundColor: formatData.backgroundColors[0],
backgroundColor: formatData.backgroundColors[0],
borderColor: formatData.borderColors[0],
borderWidth: 2,
pointRadius: 2,
pointBackgroundColor: formatData.borderColors[0]
}]
};
break;
case 'horizontalBar':
var data = {
labels: formatData.labels,
datasets: [{
label: 'Mises en surveillance par ' + type + ' (' + chartLabels[0].date.substring(0, 4) + ')',
data: formatData.values,
backgroundColor: formatData.backgroundColors,
borderColor: formatData.borderColors,
borderWidth: 1
}]
};
break;
}
var options = {
maintainAspectRatio: false,
scales: {
xAxes: [{
gridLines: {
display: false
},
ticks: {
display: false
}
}],
yAxes: [{
ticks: {
beginAtZero: true,
fontSize: 8
}
}]
},
tooltips: {
// Disable the on-canvas tooltip
enabled: false,
custom: function(tooltipModel) {
// Tooltip Element
var tooltipEl = document.getElementById('chartjs-tooltip');
var arrowEl = document.createElement('span');
// Create element on first render
if (!tooltipEl) {
tooltipEl = document.createElement('div');
tooltipEl.id = 'chartjs-tooltip';
tooltipEl.innerHTML = '';
document.body.appendChild(tooltipEl);
arrowEl.id = 'chartjs-tooltip-arrow';
tooltipEl.appendChild(arrowEl);
}
// Hide if no tooltip
if (tooltipModel.opacity === 0) {
tooltipEl.style.opacity = 0;
return;
}
function getBody(bodyItem) {
return bodyItem.lines;
}
// Set Text
if (tooltipModel.body) {
var titleLines = tooltipModel.title || [];
var bodyLines = tooltipModel.body.map(getBody);
var innerHtml = '';
titleLines.forEach(function(title) {
innerHtml += '' + title + ' |
';
});
innerHtml += '
';
bodyLines.forEach(function(body, i) {
var colors = tooltipModel.labelColors[i];
var style = 'background:' + colors.backgroundColor;
style += '; border-color:' + colors.borderColor;
style += '; border-width: 2px';
var span = '';
body = body[i].match(/[0-9]+(?!.*[0-9])/);
innerHtml += '' + span + '' + body + ' mises en surveillance |
';
});
innerHtml += '';
var tableRoot = tooltipEl.querySelector('table');
tableRoot.innerHTML = innerHtml;
}
// `this` will be the overall tooltip
var position = this._chart.canvas.getBoundingClientRect();
// Display, position, and set styles for font
tooltipEl.style.opacity = 1;
tooltipEl.style.position = 'absolute';
tooltipEl.style.left = position.left + window.pageXOffset + tooltipModel.caretX + 12 + 'px';
tooltipEl.style.top = position.top + window.pageYOffset + tooltipModel.caretY - tooltipEl.offsetHeight / 2 + 'px';
tooltipEl.style.fontFamily = "'Roboto-Regular-webfont', sans-serif";
tooltipEl.style.fontSize = '12px';
tooltipEl.style.fontStyle = tooltipModel._bodyFontStyle;
tooltipEl.style.padding = '8px';
tooltipEl.style.pointerEvents = 'none';
tooltipEl.style.borderRadius = '3px';
tooltipEl.style.border = "1px solid #0271DB";
tooltipEl.style.backgroundColor = "#FFFFFF";
// Display, position for arrow
arrowEl.style.display = 'block';
arrowEl.style.position = 'absolute';
arrowEl.style.left = '-4px';
arrowEl.style.top = tooltipEl.offsetHeight / 2 - 4 + 'px';
arrowEl.style.width = '7px';
arrowEl.style.height = '7px';
arrowEl.style.backgroundColor = '#FFFFFF';
arrowEl.style.borderLeft = '1px solid #0271DB';
arrowEl.style.borderBottom = '1px solid #0271DB';
arrowEl.style.transform = 'rotate(45deg)';
}
}
};
if(myChart != null) {
myChart.destroy();
}
myChart = new Chart(ctx, {
type: style,
data: data,
options: options
});
get_compare_arrays(formatData.labels, formatData.values, formatData_n1.values, formatData.years);
}
function build_mixed_chart(id, type, json, style) {
var ctx = document.getElementById(id),
chartLabels = json['liste n'],
chartLabels_n1 = json['liste n-1'],
formatData = format_chart_data(chartLabels, type, 'primary'),
formatData_n1 = format_chart_data(chartLabels_n1, type, 'secondary');
switch(type) {
case 'day':
type = 'jour';
break;
case 'week':
type = 'semaine';
break;
case 'month':
type = 'mois';
break;
}
var options = {
maintainAspectRatio: false,
scales: {
yAxes: [{
ticks: {
beginAtZero: true
}
}]
}
};
if(myChart != null) {
myChart.destroy();
}
myChart = new Chart(ctx, {
type: 'bar',
data: {
datasets: [{
label: 'Mises en surveillance par ' + type + ' (' + chartLabels[0].date.substring(0, 4) + ')',
data: formatData.values,
backgroundColor: formatData.backgroundColors,
borderColor: formatData.borderColors,
borderWidth: 1,
order: 1
}, {
label: 'Mises en surveillance par ' + type + ' (' + chartLabels_n1[0].date.substring(0, 4) + ')',
data: formatData_n1.values,
type: 'line',
lineTension: 0,
fill: false,
borderColor: formatData_n1.borderColors[0],
pointBackgroundColor: formatData_n1.backgroundColors[0],
pointBorderColor: formatData_n1.borderColors[0],
borderWidth: 2,
order: 2
}],
labels: formatData.labels
},
options: options
});
get_compare_arrays(formatData.labels, formatData.values, formatData_n1.values, formatData.years);
}
function onload_build_single_chart() {
var month = document.getElementById('month'),
week = document.getElementById('week'),
day = document.getElementById('day');
if(month.checked) {
get_chart_data('chart-surv', month.value);
} else if(week.checked) {
get_chart_data('chart-surv', week.value);
} else if(day.checked) {
get_chart_data('chart-surv', day.value);
}
}
function get_compare_arrays(labels, values, valuesN1, years) {
var percValue,
percArray = new Array,
percClass = new Array,
percYears = new Array;
for(var i in values) {
if(typeof values[i] != "number" || typeof valuesN1[i] != "number" || values[i] == 0 || valuesN1[i] == 0) {
percValue = 'NC';
percClass.push('');
percArray.push(percValue);
} else {
percValue = ((values[i] - valuesN1[i]) / valuesN1[i]) * 1000;
percValue = Math.round(percValue) / 10;
if(percValue < 0) {
percClass.push('soSecondaryColor5');
} else {
percClass.push('soSecondaryColor4');
}
percArray.push(percValue + '%');
}
}
var perc = {
'labels': labels,
'values': values,
'perc': percArray,
'class': percClass,
'years' : years
}
build_compare_table(perc);
}
function build_compare_table(table) {
var template = document.getElementById('line-surv-perc-template'),
templateHTML = template.innerHTML,
lineHTML = "",
labels = table.labels,
values = table.values,
perc = table.perc,
percClass = table.class,
percYears = table.years,
tableHTML = document.getElementById('table-surv-perc-body');
for(var i in labels) {
lineHTML += templateHTML.replace(/{{date}}/g, labels[i])
.replace(/{{nb_global}}/g, values[i])
.replace(/{{perc_n1}}/g, perc[i])
.replace(/{{percClass}}/g, percClass[i])
.replace(/{{year}}/g, percYears[i]);
}
tableHTML.innerHTML = lineHTML;
}
function fill_surv_nb() {
var req,
nb = document.getElementById('nb-surv');
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
if (req.overrideMimeType) {
req.overrideMimeType("text/html");
}
} else {
if (window.ActiveXObject) {
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
window.alert("Votre browser ne supporte pas AJAX");
}
}
}
}
if (req && req.readyState != 0){
req.abort();
}
req.open('GET', '/cgi-bin/statsurv?state=count', true);
req.setRequestHeader("Content-type", "text/html;charset=iso-8859-1");
req.send();
req.onreadystatechange = function() {
var json;
if ( req.readyState == 4 ) {
/* reponse ok */
if ( req.status === 200 ) {
try {
json = JSON.parse(req.responseText);
} catch (e) {
return;
}
nb.innerHTML = nb.innerHTML.replace(/{{nbsurveillances}}/g, json.nbsirenenveille);
display_num(document.getElementById('container'));
remove_class(nb, 'isHidden');
}
/* reponse ko */
else {
nb.innerHTML = nb.innerHTML.replace(/{{nbsurveillances}}/g, '1384827');
display_num(document.getElementById('container'));
remove_class(nb, 'isHidden');
}
}
}
}
/************************************/
/* BAROMETRE */
/************************************/
function get_barometer_data(id, ape, postal) {
var req,
jsonURL;
if(ape != undefined && postal != undefined) {
jsonURL = '/cgi-bin/barometre?ape=' + ape + '&postal=' + postal + '&state=select';
} else {
jsonURL = '/cgi-bin/barometre?state=select';
}
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
if (req.overrideMimeType) {
req.overrideMimeType("text/html");
}
} else {
if (window.ActiveXObject) {
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
window.alert("Votre browser ne supporte pas AJAX");
}
}
}
}
if (req && req.readyState != 0){
req.abort();
}
req.open('GET', jsonURL, true);
req.setRequestHeader("Content-type", "text/html;charset=iso-8859-1");
req.send();
/* afficher loader chargement */
open_progress_overlay('baro-chart', 'Récupération des données...');
req.onreadystatechange = function() {
var json;
if ( req.readyState == 4 ) {
/* cacher loader chargement */
close_progress_overlay('baro-chart');
/* reponse ok */
if ( req.status === 200 ) {
try {
json = JSON.parse(req.responseText);
} catch (e) {
return;
}
build_baro_chart(id, json);
}
/* reponse ko */
else {
if(!is_class_exist(document.getElementById('popup'), 'isHidden')) {
return;
} else {
open_popup_message('Baromètre Societe.com', 'Une erreur technique est survenue, veuillez réessayer plus tard.', 'soSecondaryColor5');
}
}
}
}
}
function format_baro_data(json) {
var wSize = window.innerWidth,
dates = new Array,
immats = new Array,
radis = new Array,
deltas = new Array,
data = new Object;
for (var i in json.liste) {
switch (json.liste[i].date.slice(-2)) {
case '01': dates.unshift('Janvier ' + json.liste[i].date.substring(0, 4)); break;
case '02': dates.unshift('Février ' + json.liste[i].date.substring(0, 4)); break;
case '03': dates.unshift('Mars ' + json.liste[i].date.substring(0, 4)); break;
case '04': dates.unshift('Avril ' + json.liste[i].date.substring(0, 4)); break;
case '05': dates.unshift('Mai ' + json.liste[i].date.substring(0, 4)); break;
case '06': dates.unshift('Juin ' + json.liste[i].date.substring(0, 4)); break;
case '07': dates.unshift('Juillet ' + json.liste[i].date.substring(0, 4)); break;
case '08': dates.unshift('Août ' + json.liste[i].date.substring(0, 4)); break;
case '09': dates.unshift('Septembre ' + json.liste[i].date.substring(0, 4)); break;
case '10': dates.unshift('Octobre ' + json.liste[i].date.substring(0, 4)); break;
case '11': dates.unshift('Novembre ' + json.liste[i].date.substring(0, 4)); break;
case '12': dates.unshift('Décembre ' + json.liste[i].date.substring(0, 4)); break;
}
immats.unshift(json.liste[i].immat);
radis.unshift(json.liste[i].radi);
deltas.unshift(parseInt(json.liste[i].immat) - parseInt(json.liste[i].radi));
}
/* ne laisser qu'un label sur trois */
for (var i in dates) {
if(i != 0) {
if(i % 3 != 0) {
dates[i] = '';
}
}
}
for (radi in radis) {
radis[radi] = '-' + radis[radi];
}
if(window.matchMedia("(max-width: 600px)").matches) {
dates = dates.slice(Math.max(dates.length - 12, 1));
immats = immats.slice(Math.max(immats.length - 12, 1));
radis = radis.slice(Math.max(radis.length - 12, 1));
deltas = deltas.slice(Math.max(deltas.length - 12, 1));
} else if(window.matchMedia("(max-width: 1000px)").matches) {
dates = dates.slice(Math.max(dates.length - 18, 1));
immats = immats.slice(Math.max(immats.length - 18, 1));
radis = radis.slice(Math.max(radis.length - 18, 1));
deltas = deltas.slice(Math.max(deltas.length - 18, 1));
}
data = {
'dates': dates,
'immats': immats,
'radis': radis,
'deltas': deltas
}
return data;
}
var myBaroChart;
function build_baro_chart(id, json) {
var ctx = document.getElementById(id).getContext('2d'),
data = format_baro_data(json),
wSize = window.innerWidth,
showLabel,
legendLabel;
if(myBaroChart != null) {
myBaroChart.destroy();
}
myBaroChart = new Chart(ctx, {
type: 'bar',
data: {
labels: data.dates,
datasets: [{
label: 'Baromètre',
data: data.deltas,
type: 'line',
lineTension: 0,
fill: false,
borderWidth: 2,
borderColor: '#FF4500',
backgroundColor: '#FF4500',
lineTension: 0,
pointStyle: 'line',
pointBorderWidth: 0
}, {
label: 'Immatriculations (par mois)',
backgroundColor: "#7CE7E4",
data: data.immats,
}, {
label: 'Radiations (par mois)',
backgroundColor: "#FECF81",
data: data.radis,
}],
},
options: {
layout: {
padding: {
left: 0,
right: 0,
top: 0,
bottom: 0
}
},
scales: {
xAxes: [{
stacked: true,
gridLines: {
display: false,
},
ticks: {
display: true
},
categoryPercentage: 1,
}],
yAxes: [{
stacked: true,
gridLines: {
display: false,
},
ticks: {
beginAtZero: true,
callback: function(value, index, values) {
if(value < 100000) {
value = value.toString();
return value.substring(0, 2) + 'K';
} else {
value = value.toString();
return value.substring(0, 3) + 'K';
}
}
},
type: 'linear',
}]
},
responsive: true,
maintainAspectRatio: true,
legend: {
position: 'top',
align: 'center'
},
tooltips: {
enabled: true,
mode: 'index',
position: 'average',
backgroundColor: 'rgba(255, 255, 255, 1)',
titleFontSize: 14,
titleFontStyle: 'bold',
titleFontColor: '#000000',
titleSpacing: 4,
titleMarginBottom: 24,
titleAlign: 'center',
bodyFontColor: '#000000',
borderColor: '#0271DB',
bodySpacing: 14,
bodyFontStyle: 'bold',
borderWidth: 1,
cornerRadius: 3,
caretSize: 12,
xPadding: 12,
yPadding: 12,
callbacks: {
label: function(tooltipItem, data) {
var label = data.datasets[tooltipItem.datasetIndex].label || '',
value = tooltipItem.yLabel.toString();
if (label) {
label += ': ';
}
if (value.indexOf("-") != -1) {
tooltipItem.yLabel = value.substring(1);
tooltipItem.yLabel = parseInt(tooltipItem.yLabel);
}
var valuePresenter = Math.round(tooltipItem.yLabel * 100) / 100;
valuePresenter = number_presenter(valuePresenter.toString());
label += valuePresenter;
return label;
}
}
}
}
});
}
/************************************/
/* CONTENTIEUX */
/************************************/
function build_donut_chart(id, data) {
var chart = document.getElementById(id);
/* modification pour les arrondis */
Chart.pluginService.register({
afterUpdate: function (chart) {
if (chart.config.options.elements.arc.roundedCornersFor !== undefined) {
var arc = chart.getDatasetMeta(0).data[chart.config.options.elements.arc.roundedCornersFor];
arc.round = {
x: (chart.chartArea.left + chart.chartArea.right) / 2,
y: (chart.chartArea.top + chart.chartArea.bottom) / 2,
radius: (chart.outerRadius + chart.innerRadius) / 2,
thickness: (chart.outerRadius - chart.innerRadius) / 2 - 1,
backgroundColor: arc._model.backgroundColor
}
}
},
afterDraw: function (chart) {
if (chart.config.options.elements.arc.roundedCornersFor !== undefined) {
var ctx = chart.chart.ctx;
var arc = chart.getDatasetMeta(0).data[chart.config.options.elements.arc.roundedCornersFor];
var startAngle = Math.PI / 2 - arc._view.startAngle;
var endAngle = Math.PI / 2 - arc._view.endAngle;
ctx.save();
ctx.translate(arc.round.x, arc.round.y);
ctx.fillStyle = arc.round.backgroundColor;
ctx.beginPath();
ctx.arc(arc.round.radius * Math.sin(startAngle), arc.round.radius * Math.cos(startAngle), arc.round.thickness, 0, 2 * Math.PI);
ctx.arc(arc.round.radius * Math.sin(endAngle), arc.round.radius * Math.cos(endAngle), arc.round.thickness, 0, 2 * Math.PI);
ctx.closePath();
ctx.fill();
ctx.restore();
}
},
});
/* modification pour le texte au centre du donut */
Chart.pluginService.register({
afterUpdate: function (chart) {
if (chart.config.options.elements.center) {
var helpers = Chart.helpers;
var centerConfig = chart.config.options.elements.center;
var globalConfig = Chart.defaults.global;
var ctx = chart.chart.ctx;
var fontStyle = helpers.getValueOrDefault(centerConfig.fontStyle, globalConfig.defaultFontStyle);
var fontFamily = helpers.getValueOrDefault(centerConfig.fontFamily, globalConfig.defaultFontFamily);
if (centerConfig.fontSize)
var fontSize = centerConfig.fontSize;
// figure out the best font size, if one is not specified
else {
ctx.save();
var fontSize = helpers.getValueOrDefault(centerConfig.minFontSize, 1);
var maxFontSize = helpers.getValueOrDefault(centerConfig.maxFontSize, 256);
var maxText = helpers.getValueOrDefault(centerConfig.maxText, centerConfig.text);
do {
ctx.font = helpers.fontString(fontSize, fontStyle, fontFamily);
var textWidth = ctx.measureText(maxText).width;
// check if it fits, is within configured limits and that we are not simply toggling back and forth
if (textWidth < chart.innerRadius * 2 && fontSize < maxFontSize)
fontSize += 1;
else {
// reverse last step
fontSize -= 1;
break;
}
} while (true)
ctx.restore();
}
// save properties
chart.center = {
font: helpers.fontString(fontSize, fontStyle, fontFamily),
fillStyle: helpers.getValueOrDefault(centerConfig.fontColor, globalConfig.defaultFontColor)
};
}
},
afterDraw: function (chart) {
if (chart.center) {
var centerConfig = chart.config.options.elements.center;
var ctx = chart.chart.ctx;
ctx.save();
ctx.font = chart.center.font;
ctx.fillStyle = chart.center.fillStyle;
ctx.textAlign = 'center';
ctx.textBaseline = 'middle';
var centerX = (chart.chartArea.left + chart.chartArea.right) / 2;
var centerY = (chart.chartArea.top + chart.chartArea.bottom) / 2;
ctx.fillText(centerConfig.text, centerX, centerY);
ctx.restore();
}
},
});
if(data == "contjurprofile") {
var percent = document.getElementById('dem').getAttribute('data-percent'),
dem = document.getElementById('dem').getAttribute('data-name'),
def = document.getElementById('def').getAttribute('data-name'),
demColor = document.getElementById('dem').getAttribute('data-color'),
defColor = document.getElementById('def').getAttribute('data-color'),
text = percent;
if(noCont == true) {
percent = 0;
demColor = '#E9E9E9';
defColor = '#E9E9E9';
}
if(percent == "X" || percent == 'XX') {
percent = 50;
}
if(percent >= 50) {
var labels = [dem, def];
var datasets = [{
data: [percent, 100 - percent],
backgroundColor: [
demColor,
defColor
]
}];
var fontColor = demColor;
if(percent != 50) {
add_class(document.getElementById('dem'), 'fs-24')
}
} else {
var labels = [def, dem];
if(noCont == true) {
var data = [0, 100 - percent];
} else {
var data = [100 - percent, percent];
}
var datasets = [{
data: data,
backgroundColor: [
defColor,
demColor
]
}];
var fontColor = defColor;
if(text != 'X' || text != 'XX') {
text = 100 - percent;
}
if(noCont == true) {
text = 0;
}
if(percent != 50) {
add_class(document.getElementById('def'), 'fs-24')
}
}
}
if(data == "contjurproblem") {
var percent = document.getElementById('paypercent').getAttribute('data-percent'),
text = percent;
if(percent == "X" || percent == 'XX') {
percent = 50;
}
percent = parseInt(percent);
var labels = ['Problème de paiement', 'Autres'];
if(noCont == true) {
var data = [0, 100 - percent];
} else {
var data = [percent, 100 - percent];
}
if(noCont == true) {
var datasets = [{
data: data,
backgroundColor: [
'#E9E9E9',
'#E9E9E9'
]
}];
var fontColor = '#E9E9E9';
} else {
var datasets = [{
data: data,
backgroundColor: [
'#7B7B7B',
'#E9E9E9'
]
}];
var fontColor = '#7B7B7B';
}
}
/* ajout data et options */
var config = {
type: 'doughnut',
data: {
labels: labels,
datasets: datasets
},
options: {
legend: {
display: false
},
tooltips: {
enabled: false
},
cutoutPercentage: 80,
responsive: true,
maintainAspectRatio: true,
elements: {
arc: {
roundedCornersFor: 0
},
center: {
// the longest text that could appear in the center
//maxText: '100%',
text: text + '% ',
fontColor: fontColor,
fontFamily: "'Roboto', sans-serif",
fontStyle: 'normal',
// fontSize: 12,
// if a fontSize is NOT specified, we will scale (within the below limits) maxText to take up the maximum space in the center
// if these are not specified either, we default to 1 and 256
minFontSize: 12,
maxFontSize: 34,
}
}
}
};
var ctx = document.getElementById(id).getContext("2d");
var myChart = new Chart(ctx, config);
}
function format_contJur_data(json, type) {
switch(type) {
case 'profile':
var years = new Array,
dem = new Array,
def = new Array;
for(var i in json.liste) {
years.push(json.liste[i].year);
dem.push(json.liste[i].nbdem);
def.push(json.liste[i].nbdef);
}
var data = {
'years': years,
'dem': dem,
'def': def
}
return data;
break;
case 'type':
var years = new Array,
pcl = new Array,
pay = new Array,
others = new Array;
for(var i in json.liste) {
years.push(json.liste[i].year);
pcl.push(json.liste[i].nbpcl);
pay.push(json.liste[i].nbpay);
others.push(json.liste[i].nbother);
}
var data = {
'years': years,
'pcl': pcl,
'pay': pay,
'others': others
}
return data;
break;
}
}
var contJurHistChart;
function build_stacked_bar_chart(id, type, json) {
if(json == null || json.liste.length == 0) {
var json = {"liste": [
{
"year": 2010,
"nbdem": 0,
"nbdef": 0,
"nbpcl": 0,
"nbpay": 0,
"nbother": 0
},
{
"year": 2011,
"nbdem": 0,
"nbdef": 0,
"nbpcl": 0,
"nbpay": 0,
"nbother": 0
},
{
"year": 2012,
"nbdem": 0,
"nbdef": 0,
"nbpcl": 0,
"nbpay": 0,
"nbother": 0
},
{
"year": 2013,
"nbdem": 0,
"nbdef": 0,
"nbpcl": 0,
"nbpay": 0,
"nbother": 0
},
{
"year": 2014,
"nbdem": 0,
"nbdef": 0,
"nbpcl": 0,
"nbpay": 0,
"nbother": 0
},
{
"year": 2015,
"nbdem": 0,
"nbdef": 0,
"nbpcl": 0,
"nbpay": 0,
"nbother": 0
},
{
"year": 2016,
"nbdem": 0,
"nbdef": 0,
"nbpcl": 0,
"nbpay": 0,
"nbother": 0
},
{
"year": 2017,
"nbdem": 0,
"nbdef": 0,
"nbpcl": 0,
"nbpay": 0,
"nbother": 0
},
{
"year": 2018,
"nbdem": 0,
"nbdef": 0,
"nbpcl": 0,
"nbpay": 0,
"nbother": 0
},
{
"year": 2019,
"nbdem": 0,
"nbdef": 0,
"nbpcl": 0,
"nbpay": 0,
"nbother": 0
},
{
"year": 2020,
"nbdem": 0,
"nbdef": 0,
"nbpcl": 0,
"nbpay": 0,
"nbother": 0
},
]};
}
var ctx = document.getElementById(id).getContext('2d'),
data = format_contJur_data(json, type),
wSize = window.innerWidth,
showLabel,
legendLabel;
if(contJurHistChart != null) {
contJurHistChart.destroy();
}
switch(type) {
case 'profile':
if(noCont == true) {
var demColor = '#434343',
defColor = '#7B7B7B';
} else {
var demColor = '#ffcc85',
defColor = '#3CB8FF';
}
var datasets = {
labels: data.years,
datasets: [{
label: 'Demandeur',
data: data.dem,
borderWidth: 2,
borderColor: demColor,
backgroundColor: demColor
}, {
label: 'Défendeur',
data: data.def,
borderWidth: 2,
borderColor: defColor,
backgroundColor: defColor
}]
};
break;
case 'type':
var datasets = {
labels: data.years,
datasets: [{
label: 'Action en paiement',
data: data.pay,
/*borderColor: '#1a6b9d',
backgroundColor: '#1a6b9d'*/
borderColor: '#0096FF',
backgroundColor: '#0096FF'
}, {
label: 'Procédure collective',
data: data.pcl,
borderWidth: 2,
/*borderColor: '#6babdd',
backgroundColor: '#6babdd*/
borderColor: '#84CCFF',
backgroundColor: '#84CCFF'
}, {
label: 'Autres',
data: data.others,
borderWidth: 2,
/*borderColor: '#bfcbd7',
backgroundColor: '#bfcbd7'*/
borderColor: '#E1F3FF',
backgroundColor: '#E1F3FF'
}]
};
break;
}
if(window.matchMedia("(max-width: 480px)").matches) {
var aspectRatio = 1;
} else if (window.matchMedia("(max-width: 600px)").matches){
var aspectRatio = 1.5;
} else {
var aspectRatio = 2;
}
contJurHistChart = new Chart(ctx, {
type: 'bar',
data: datasets,
options: {
layout: {
padding: {
left: 0,
right: 0,
top: 0,
bottom: 0
}
},
scales: {
xAxes: [{
stacked: true,
gridLines: {
display: false,
},
ticks: {
display: true
}
}],
yAxes: [{
stacked: true,
gridLines: {
display: true,
},
ticks: {
beginAtZero: true
},
type: 'linear',
}]
},
responsive: true,
aspectRatio: aspectRatio,
maintainAspectRatio: true,
legend: {
position: 'top',
align: 'left'
}
}
});
}
function init_cont_charts() {
build_donut_chart('donut-contjurprofile', 'contjurprofile');
build_donut_chart('donut-contjurproblem', 'contjurproblem');
build_stacked_bar_chart('chart-contjurhist', 'profile', jsonContHist);
}
/******************************************/
/* API GOOGLE MAPS */
/******************************************/
var allGeo = new Array;
function initMap(container, map, array) {
var geocoder = new google.maps.Geocoder(),
addresses = fetchAdress(container);
/* ancien appel a la geolocalisation */
/* geocodeAddress(geocoder, addresses, map); */
setTimeout(function() {
if(array.length > 1) {
showAllLocationsMap(map, list_coord);
} else {
showOneLocationMap(map, list_coord);
}
}, 1000);
}
function containsObject(obj, list) {
for (var i = 0; i < list.length; i++) {
if (list[i].lat == obj.lat && list[i].lng == obj.lng) {
return true;
}
}
return false;
}
function fetchAdress(containerId) {
var container = document.getElementById(containerId),
addresses = container.getElementsByClassName('address'),
addArray = new Array,
result = new Array ;
// recuperation des adresses dans un tableau
for(var i = 0; i < addresses.length; i++) {
addArray.push(addresses[i].getAttribute('data-address'));
}
// nettoyage des adresses du tableau pour les comparer
for(var i = 0; i < addArray.length; i++) {
if(typeof addArray[i] === 'string') {
addArray[i] = addArray[i].toLowerCase();
}
}
// creation du tableau avec adresses uniques
result = Array.from(new Set(addArray));
return result;
}
function handle_geocoding_error(status) {
switch(status) {
case "ZERO_RESULTS":
var error = document.getElementsByClassName('map-error');
for(var i = 0; i < error.length; i++) {
error[i].textContent = 'Le service de géolocalisation n\'est pas en mesure de déterminer l\'emplacement de cette adresse.';
remove_class(error[i], 'isHidden');
}
break;
default:
break;
}
}
function showOneLocationMap(map, array) {
var map = document.getElementsByClassName(map),
lat = array[0].lat,
lng = array[0].lng,
key = "AIzaSyDzqN-rLQzMXZ6uO_PaGhlOoBYYFYsNnDk",
size = '768x768',
url = "https://maps.googleapis.com/maps/api/staticmap?center=" + lat + "," + lng + "&zoom=17&size=" + size + "&scale=1&markers=color:red%7c" + lat + "," + lng + "&key=" + key;
for(var i = 0; i < map.length; i++) {
map[i].getElementsByTagName('img')[0].setAttribute('src', url);
if(map[i].getAttribute('src') != "") {
if(map[i].getAttribute('id') == "map-coldroite") {
map[i].style.height = "360px";
document.getElementById('address-coldroite').innerHTML = document.getElementById('address-result-name').innerHTML;
remove_class(document.getElementById('frame-coldroite'), 'h-0');
} else {
map[i].style.height = "270px";
}
}
}
}
function showAllLocationsMap(map, array) {
var selectArray = array.slice(0, 9),
map = document.getElementsByClassName(map),
mapCenter = Math.round(selectArray.length / 2),
key = "AIzaSyDzqN-rLQzMXZ6uO_PaGhlOoBYYFYsNnDk",
size = '768x768',
url = "https://maps.googleapis.com/maps/api/staticmap?center=" + array[mapCenter].lat + "," + array[mapCenter].lng + "&zoom=18&size=" + size + "&scale=1";
for(var i = 0; i < array.length; i++) {
var label = i + 1,
lat = array[i].lat,
lng = array[i].lng,
mrk = "&markers=color:0x0071DB%7clabel:" + label + "%7c" + lat + "," + lng + "%7c";
url += mrk;
if(i == array.length - 1) {
url += "&key=" + key;
}
}
for(var i = 0; i < map.length; i++) {
map[i].getElementsByTagName('img')[0].setAttribute('src', url);
}
if(map[0].getAttribute('src') != "") {
map[0].style.height = "270px";
}
}
/* fonction de recuperation des coordonnees de geolocalisation - n'est plus utilise en front */
function geocodeAddress(geocoder, addresses, map) {
if(Array.isArray(addresses) && addresses.length > 1) {
var max;
if(addresses.length > 9) {
max = 9;
} else {
max = addresses.length;
}
for(var i = 0; i < max; i++) {
var geocoder = new google.maps.Geocoder();
geocoder.geocode({
address: addresses[i]
}, function (results, status) {
if (status === "OK") {
var lat = results[0].geometry.location.lat(),
lng = results[0].geometry.location.lng(),
loc = { lat: lat, lng: lng };
allGeo.push(loc);
} else {
handle_geocoding_error(status);
}
});
}
setTimeout(function(){ showAllLocationsMap(map, allGeo); }, 1000);
} else {
geocoder.geocode({
address: addresses[0]
}, function (results, status) {
if (status === "OK") {
var lat = results[0].geometry.location.lat(),
lng = results[0].geometry.location.lng(),
geo = new Array;
geo.push(lat, lng);
showOneLocationMap(map, geo);
} else {
handle_geocoding_error(status);
}
});
}
}var tabcolor = [
"#ECF8F6",
"#FEEAA1",
"#D6955B",
"#FFAE9D",
"#FAF2EA",
"#B39188",
"#B8CBD0",
"#C49D83",
"#97999B",
"#CFC486",
"#80856D",
"#F5DF4D",
"#C49FFF",
"#C89F9C",
"#e76f51",
"#E8D5CC",
"#f5efe6",
"#D2D2EB"
];
function random_color() {
return (tabcolor[Math.floor(Math.random() * tabcolor.length)]);
}
function debug_inactive() {
var list = document.getElementsByClassName("debughtml");
if (list) {
for (var i = list.length - 1; i >= 0; i--) { /* fonctionne uniquement dans ce sens */
list[i].remove();
}
}
console.log("MODE DEBUG : desactive");
}
function debug_active() {
var list = document.querySelectorAll('[data-viewname]');
if (list) {
for (var i = 0; i < list.length; i++) {
var obj = document.createElement("div");
var viewname = "viewname N/C"
if (list[i].dataset && list[i].dataset.viewname) {
viewname = list[i].dataset.viewname;
}
var col = random_color();
textobj = document.createElement("p");
textobj.innerHTML = viewname;
textobj.style.font = "bold 15px arial,serif"
textobj.style.color = "#000000";
textobj.style.zIndex = "2147483647";
obj.appendChild(textobj);
if (viewname == "header-body" || viewname == "header-bodydir") {
obj.style.backgroundColor = "#FFFFFF";
obj.style.opacity = "0.4";
} else {
obj.style.backgroundColor = col;
obj.style.opacity = "0.9";
}
obj.style.zIndex = "2147483647";
obj.style.position = "absolute";
obj.style.width = "100%";
obj.style.height = "100%";
obj.style.border = "1px solid black";
obj.className = "debughtml"
list[i].style.position = "relative";
list[i].style.zIndex = "0";
list[i].insertBefore(obj, list[i].firstChild);
}
}
console.log("MODE DEBUG : active");
}
/**
READMORE
**/
function readJs_Initialize( options, containerID, elementTags ) {
return new readJs( options, containerID, elementTags );
}
function readJs( options, containerID, elementTags ) {
var _options = {},
_elements = {},
_elementTypes = {},
_this = this,
_document = null,
_attributeName = "data-read-more",
_capturedReadMores = {},
_capturedReadLessName = "readLess",
_capturedReadMoreName = "readMore";
function build( baseElementsContainer, baseElementContainerTagTypes ) {
var elementTagTypes = baseElementContainerTagTypes.split( "," ),
elementTagTypesLength = elementTagTypes.length,
elementsContainer = !isDefined( baseElementsContainer ) ? _document.body : baseElementsContainer;
for ( var elementTypeIndex = 0; elementTypeIndex < elementTagTypesLength; elementTypeIndex++ ) {
var elementType = elementTagTypes[ elementTypeIndex ],
elements = getElementsByTagName( elementsContainer, elementType ),
elementsLength = elements.length;
for ( var elementIndex = 0; elementIndex < elementsLength; elementIndex++ ) {
var element = elements[ elementIndex ],
elementAttributeData = element.getAttribute( _attributeName );
if ( elementAttributeData != null ) {
var elementAttributeJson = getAttributeObject( elementAttributeData ),
text = element.innerText;
if ( text.length > _options.maximumLengthOfText ) {
buildView( element, elementAttributeJson, text );
}
}
}
}
}
function buildView( element, elementAttributeJson, text ) {
if ( !isDefined( elementAttributeJson.ignore ) || !elementAttributeJson.ignore ) {
var startText = text.substring( 0, _options.maximumLengthOfText ),
endText = text.substring( _options.maximumLengthOfText ),
useStyledContainer = isSettingTrue( elementAttributeJson, "useStyledContainer" ) || _options.useStyledContainers,
newContainer = null,
capturedReadMoreGuid = newGuid();
element.innerText = "";
element.innerHTML = "";
if ( useStyledContainer ) {
newContainer = createElement( "div" );
newContainer.className = "rjs-text-container";
element.appendChild( newContainer );
} else {
newContainer = element;
}
var newStartTextContainer = createElement( "span" );
newStartTextContainer.innerHTML = startText;
newContainer.appendChild( newStartTextContainer );
var newEllipsisContainer = createElement( "span" );
newEllipsisContainer.innerHTML = _options.ellipsisText;
newContainer.appendChild( newEllipsisContainer );
var newEndTextContainer = createElement( "span" );
newEndTextContainer.style.display = "none";
newEndTextContainer.innerHTML = endText;
newContainer.appendChild( newEndTextContainer );
var newReadMoreLink = createElement( "a" );
newReadMoreLink.className = "rjs-read-more";
newReadMoreLink.innerText = _options.readMoreText;
newContainer.appendChild( newReadMoreLink );
var readLess = function () {
newEndTextContainer.style.display = "none";
newEllipsisContainer.style.display = "inline";
newReadMoreLink.innerText = _options.readMoreText;
newReadMoreLink.className = "rjs-read-more";
};
var readMore = function () {
newEndTextContainer.style.display = "inline";
newEllipsisContainer.style.display = "none";
newReadMoreLink.innerText = _options.readLessText;
newReadMoreLink.className = "rjs-read-less";
};
_capturedReadMores[ capturedReadMoreGuid ] = {};
_capturedReadMores[ capturedReadMoreGuid ][ _capturedReadLessName ] = readLess;
_capturedReadMores[ capturedReadMoreGuid ][ _capturedReadMoreName ] = readMore;
if ( isSettingTrue( elementAttributeJson, "visible" ) ) {
readMore();
}
newReadMoreLink.addEventListener( "click", function () {
if ( newEndTextContainer.style.display === "none" ) {
readMore();
triggerOptionsEvent( "onReadMore" );
} else {
readLess();
triggerOptionsEvent( "onReadLess" );
}
});
}
}
function triggerOptionsEvent( name ) {
if ( _options !== null && isDefined( _options[ name ] ) && isFunction( _options[ name ] ) ) {
_options[ name ]();
}
}
function isSettingTrue( elementAttributeJson, setting ) {
return isDefined( elementAttributeJson[ setting ] ) && elementAttributeJson[ setting ];
}
function newGuid() {
var result = [];
for ( var charIndex = 0; charIndex < 32; charIndex++ ) {
if ( charIndex === 8 || charIndex === 12 || charIndex === 16 || charIndex === 20 ) {
result.push( "-" );
}
var character = Math.floor( Math.random() * 16 ).toString( 16 );
result.push( character );
}
return result.join( "" );
}
function createElement( type ) {
var result = null,
nodeType = type == null ? "div" : type.toLowerCase(),
isText = nodeType === "text";
if ( !_elementTypes.hasOwnProperty( nodeType ) ) {
_elementTypes[ nodeType ] = isText ? _document.createTextNode( "" ) : _document.createElement( nodeType );
}
result = _elementTypes[ nodeType ].cloneNode( false );
return result;
}
function getElementByID( id ) {
if ( !_elements.hasOwnProperty( id ) || _elements[ id ] === null ) {
_elements[ id ] = _document.getElementById( id );
}
return _elements[ id ];
}
function getElementsByTagName( element, elementType ) {
var elementsResult = [],
elements = element.getElementsByTagName( elementType ),
elementsLength = elements.length;
for ( var elementIndex = 0; elementIndex < elementsLength; elementIndex++ ) {
elementsResult.push( elements[ elementIndex ] );
}
return elementsResult;
}
function getAttributeObject( attributeData ) {
var result = null;
try {
result = JSON.parse( attributeData );
} catch ( e1 ) {
try {
result = eval( "(" + attributeData + ")" );
} catch ( e2 ) {
console.error( "Errors in attribute: " + e1.message + ", " + e2.message );
result = null;
}
}
return result;
}
function isDefined( data ) {
return data !== undefined && data !== null && data !== "";
}
function isFunction( object ) {
return typeof object === "function";
}
this.setOptions = function ( newOptions ) {
if ( newOptions !== null && typeof newOptions === "object" ) {
_options = newOptions;
} else {
_options = {};
}
if ( !isDefined( _options.readMoreText ) ) {
_options.readMoreText = "Voir plus >";
}
if ( !isDefined( _options.readLessText ) ) {
_options.readLessText = "Voir moins";
}
if ( !isDefined( _options.ellipsisText ) ) {
_options.ellipsisText = "...";
}
if ( !isDefined( _options.maximumLengthOfText ) ) {
_options.maximumLengthOfText = 200;
}
if ( !isDefined( _options.useStyledContainers ) ) {
_options.useStyledContainers = true;
}
};
this.openAll = function () {
executeCapturedReadMoreEvent( _capturedReadMoreName );
};
this.closeAll = function () {
executeCapturedReadMoreEvent( _capturedReadLessName );
};
function executeCapturedReadMoreEvent( eventName ) {
for ( var propertyName in _capturedReadMores ) {
if ( _capturedReadMores.hasOwnProperty( propertyName ) ) {
_capturedReadMores[ propertyName ][ eventName ]();
}
}
}
( function ( documentObject ) {
options = !isDefined( options ) ? {} : options;
_document = documentObject;
var elementsContainer = isDefined( containerID ) ? getElementByID( containerID ) : null,
elementTagTypes = isDefined( elementTags ) ? elementTags : "*";
_this.setOptions( options );
build( elementsContainer, elementTagTypes );
} ) ( document );
}