-1)
p = {x: e.touches[0].pageX, y: e.touches[0].pageY};
t.setAttribute("mouse-start", p.x+","+ p.y);
t.setAttribute("mouse-end", p.x+","+ p.y);
todo = "add";
break;
case TouchBehavior.upEvent:
if (t.getAttribute("mouse-start"))
{
var start = t.getAttribute("mouse-start").split(",");
var last = t.getAttribute("mouse-end").split(",");
var distanceX = (last[0] - start[0]);
var distanceY = (last[1] - start[1]);
var distance = Math.sqrt((distanceX*distanceX) + (distanceY*distanceY));
if(distance>pDistance)
{
e.stopImmediatePropagation();
e.stopPropagation();
}
todo = "remove";
}
break;
case TouchBehavior.moveEvent:
default:
if(e.type.toLowerCase().indexOf("touch")>-1)
p = {x: e.touches[0].pageX, y: e.touches[0].pageY};
t.setAttribute("mouse-end", p.x+","+ p.y);
todo = "remove";
break;
}
if (todo)
t.classList[todo](pClassName);
};
pElement.addEventListener(TouchBehavior.downEvent, handler, {passive:true});
pElement.addEventListener(TouchBehavior.moveEvent, handler, {passive:true});
pElement.addEventListener(TouchBehavior.upEvent, handler, {passive:true});
});
}
};
function isMobile() {
let devc = 'bureau';
if (navigator.userAgent.match(/(android|iphone|ipad|blackberry|symbian|symbianos|symbos|netfront|model-orange|javaplatform|iemobile|windows phone|samsung|htc|opera mobile|opera mobi|opera mini|presto|huawei|blazer|bolt|doris|fennec|gobrowser|iris|maemo browser|mib|cldc|minimo|semc-browser|skyfire|teashark|teleca|uzard|uzardweb|meego|nokia|bb10|playbook)/gi)) {
if (((screen.width >= 480) && (screen.height >= 800)) || ((screen.width >= 800) && (screen.height >= 480)) || navigator.userAgent.match(/ipad/gi)) {
devc = 'tablette';
} else {
devc = 'mobile';
}
}
return devc;
}
function isNarrowScreen() {
return window.matchMedia("(max-width: 950px)").matches;
}
function isTouchable() {
return ("ontouchend" in document);
}
function uriEncode(pParams) {
let get = '';
let prefix = '?';
for (let i in pParams) {
get += prefix + i + '=' + pParams[i];
prefix = '&';
}
return get;
}
function makeRequest(pUrl, pParams, pElement, pCallbackBefore, pCallbackAfter, request) {
pCallbackBefore(pElement);
let get = uriEncode(pParams);
if (request) {
request.cancel();
}
request = new RequestVidal(pUrl + get, null, 'GET');
request.onComplete(function (pResponse) {
let response = 'Une erreur est survenue, veuillez réessayer
';
if (pResponse.responseJSON) {
if (pResponse.responseJSON.hasOwnProperty('html'))
response = pResponse.responseJSON.html;
else if (pResponse.responseJSON.hasOwnProperty('status') && pResponse.responseJSON.status === 'ok' && pResponse.responseJSON.hasOwnProperty('responseText')) {
response = pResponse.responseJSON.responseText;
}
}
pCallbackAfter(pElement, response);
});
return request;
}
function hideLoader(pLoader) {
pLoader.style.display = 'none';
pLoader.style.height = 'auto';
}
function showLoader(pLoader, pHeight) {
pLoader.style.height = pHeight;
pLoader.style.display = 'flex';
}
(function () {
function init() {
const SUBSCRIBED = "subscribed";
const NO_CONDITIONS = "noconditions";
initTopArrow();
document.querySelectorAll("*[data-fontsize]").forEach(function(pEl){
const fontSizeCookie = Cookie.getCookie('fontsize');
if (fontSizeCookie) {
document.body.style.fontSize = fontSizeCookie;
}
pEl.addEventListener('click', fontSizeHandler);
});
ToggleHandler.register('body');
const iconHamb = document.querySelector('.header header .icon_hamb');
if (iconHamb) {
iconHamb.addEventListener('click', function (e) {
document.querySelector('.menu').style.display = e.target.classList.contains('close') ? 'none' : 'block';
e.target.classList.toggle('close');
});
}
const subscribed = Cookie.getCookie(SUBSCRIBED);
const noConditions = Cookie.getCookie(NO_CONDITIONS);
if (!subscribed && !noConditions) {
if (document.querySelector('.avatar') && window.location.href.indexOf('actualites') > 1 && document.querySelector('#box_subscription_login')) {
document.querySelector('#DaboxHide').style.display = 'block';
document.querySelector('#Dabox').style.display = 'block';
document.querySelector('#box_subscription_login').style.display = 'block';
document.querySelector('.sub-btn').addEventListener("click", onUpdatePreference, false);
document.querySelector('.icon-close').addEventListener("click", function (e) {
e.preventDefault();
boxHide();
});
document.querySelector('.btn-cancel').addEventListener("click", function () {
boxHide();
});
}
}
if (document.querySelector('.popin_already_subscribed')) {
if (subscribed) {
document.querySelector('#box_login').style.display = 'block';
document.querySelector('.popin_already_subscribe').style.display = 'block';
document.querySelector('.popin_already_subscribed').style.display = 'block';
}
document.querySelector('.close-icon').addEventListener("click", function (e) {
e.preventDefault();
document.querySelector('.popin_already_subscribe').style.display = 'none';
document.querySelector('.popin_already_subscribed').style.display = 'none';
Cookie.eraseCookie('subscribed');
Cookie.setCookie('noconditions', '1', 7);
});
}
function boxHide() {
document.querySelector('#DaboxHide').style.display = 'none';
document.querySelector('#Dabox').style.display = 'none';
document.querySelector('#box_subscription_login').style.display = 'none';
}
let menuEvent = "mouseover";
if (isTouchable()) {
TouchBehavior.applyTo('.menu>menu>div');
menuEvent = TouchBehavior.clickEvent;
} else {
document.querySelectorAll('.menu>menu>div').forEach(function (pItem) {
pItem.addEventListener('mouseout', function (e) {
e.currentTarget.classList.remove("hover");
});
});
}
document.querySelectorAll(".menu>menu>div").forEach(function (pItem) {
pItem.addEventListener(menuEvent, function (e) {
e.preventDefault();
const opened = document.querySelectorAll(".menu>menu>div.hover");
if (opened && opened.length) {
opened.forEach(function (pEl) {
pEl.classList.remove("hover");
});
}
e.currentTarget.classList.add('hover');
}, false);
});
if (document.querySelector(".account .avatar")) {
document.querySelector(".account .avatar").addEventListener("click", toggleAvatarListHandler, false);
}
Scroll.setup();
initSummaries();
let main_form = document.querySelector('.searchbar form');
if (main_form) {
main_form.addEventListener('submit', function (e) {
document.querySelector('.form-search').action = 'recherche.html';
const val = document.querySelector('#query input[name="query"]').value;
if (val.length < 3 || val.length > 255) {
e.preventDefault();
const search = document.querySelector("#search_error");
search.innerHTML = val.length > 255 ? "Veuillez saisir moins de 255 caractères pour votre recherche." : "Veuillez saisir au moins 3 caractères pour votre recherche.";
search.style.display = 'block';
setTimeout(function () {
search.style.display = 'none';
}, 3000);
}
});
Autocomplete.init('#query').onSelect = function (pData) {
if (window.pa)
pa.sendEvent('internal_search_result.click', {
'ise_keyword': this.getText(),
'ise_page': 1,
'ise_type': 'Suggestions',
'ise_click_rank': parseInt(pData.rank),
'ise_click_product': pData.name,
'ise_click_product_type': pData.type
});
window.location.href = pData.url;
};
}
CBO.init(document);
//Permet l'insertion et/ou la duplication d'un node dans des parents différents
let refs = document.querySelectorAll('*[data-insert-before]');
refs.forEach(function (pEl) {
if (!pEl.getAttribute("data-keep-in-place")) {
pEl.parentNode.removeChild(pEl);
}
let targets = document.querySelectorAll(pEl.getAttribute("data-insert-before"));
targets.forEach(function (pTarget) {
pTarget.parentNode.insertBefore(pEl.cloneNode(true), pTarget);
});
});
// Add click on print buttons
let print_buttons = document.querySelectorAll('.print-button');
if (print_buttons) {
let base = document.querySelector('base').getAttribute('href');
print_buttons.forEach((pButton) => {
if (pButton.getAttribute('href')) {
return;
}
pButton.addEventListener('click', function () {
let url = base + "imprimer/" + window.location.href.replace(base, "");
window.open(url, '_blank');
});
});
}
const contactWebMasterLink = document.getElementById("contactWebMasterLink");
if ((contactWebMasterLink) && (window.innerWidth < 650)) {
contactWebMasterLink.setAttribute("rel", "");
}
const contactSection = document.getElementById("contactWebmaster");
if (contactSection) {
const form = document.getElementById("contactForm");
displayFormFullSize(form);
changeCaptchaStyle(document.querySelector("input[name='screenType']").value, 0);
form.addEventListener('submit', contactSubmitHandler);
}
Dabox.onDisplay(daboxDisplayedHandler);
Dabox.onHide(daboxHideHandler);
// Prevent Post data when accessing iam page from drugs page and reload
const iamContainer = document.querySelector(".iam-row");
if (iamContainer && (window.history.replaceState)) {
window.history.replaceState(null, null, window.location.href);
}
document.querySelectorAll("caption p").forEach(function (pItem) {
const table = pItem.parentNode.parentNode;
for (let i = 0; i < table.rows.length; ++i) {
if (table.rows[i].cells[0].innerHTML === "" && table.rows[i].cells[0].getAttribute('colspan') == null) {
table.rows[i].cells[0].style.borderRightColor = "transparent";
}
}
});
document.querySelectorAll('table[width="95%"]').forEach(function (pEl) {
let wrapper = document.createElement('div');
wrapper.className = "scrollable-table";
pEl.parentNode.insertBefore(wrapper, pEl);
wrapper.appendChild(pEl);
});
initCollapsible();
let searchbar = document.querySelector('.header .searchbar');
let narrowScreen = isNarrowScreen();
let iconSearch = document.querySelector('.header ul.secondary .search' + (narrowScreen ? '-mobile' : ''));
let iconClose = document.querySelector('.header ul.secondary .close' + (narrowScreen ? '-mobile' : ''));
if (iconSearch && iconClose) {
iconSearch.addEventListener('click', function () {
searchbar.classList.add('visible');
searchbar.classList.remove('hidden');
iconClose.style.display = 'block';
iconSearch.style.display = 'none';
document.querySelector('.header .searchbar form input[name="query"]').focus();
})
iconClose.addEventListener('click', function () {
searchbar.classList.add('hidden');
searchbar.classList.remove('visible');
iconClose.style.display = 'none';
iconSearch.style.display = 'block';
});
}
}
function initSummaries() {
const summaries = document.querySelectorAll('.summary');
summaries.forEach(function (summary) {
new Summary(summary);
});
}
function initTopArrow() {
const arrow = document.querySelector(".scroll-page");
if (arrow) {
const c = function () {
const scroll = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
if (scroll && arrow.style.display === "none") {
arrow.style.display = "block";
}
if (!scroll && arrow.style.display === "block") {
arrow.style.display = "none";
}
};
c();
arrow.addEventListener("click", function () {
const t = document.documentElement.scrollTop ? document.documentElement : document.body;
M4Tween.killTweensOf(t);
M4Tween.to(t, .5, {useStyle: false, scrollTop: 0});
});
window.addEventListener("scroll", c);
}
}
function displayFormFullSize(form) {
document.querySelector("input[name='screenType']").value = "fullWindow";
document.querySelector(".mandatory-text").style.fontSize = "0.8em";
const formChildren = form.querySelectorAll("input,select,textarea");
formChildren.forEach((pChild) => {
if ((pChild.name !== "btnSubmit")
&& (pChild.id !== "inp_contact_captcha_captcha")) {
pChild.classList.remove("form-input-popup");
pChild.classList.add("form-input-fullSize");
if (pChild.tagName === "INPUT") {
pChild.style.lineHeight = "25px";
}
}
});
}
function daboxDisplayedHandler() {
const dabox = document.querySelector('#Dabox');
CBO.init(dabox);
VIDALConnect.setup(dabox);
//Style close Icon
const closeIcon = document.querySelector(".icon-close");
const contactWebmasterSection = document.querySelector(".container-contact-section");
if (contactWebmasterSection) {
dabox.style.overflow = 'auto';
let index = 0;
// Form instance input is defined to check whether the form is rendered twice i.e form display in full window size + click on contact webmaster link to display form popup
if (document.querySelector("input[name='screenType']").value === "fullWindow") {
document.querySelector("input[name='formInstance']").value = "double";
document.querySelector("input[name='screenType']").value = 'popup';
index = 1;
}
const form = document.querySelectorAll(".contact-form-form")[index];
if (form) {
changeCaptchaStyle(document.querySelector("input[name='screenType']").value, index);
// Event Listeners
document.querySelectorAll(".details_captcha")[index].querySelector("a").addEventListener("click", onreloadCaptcha);
form.addEventListener('submit', contactSubmitHandler);
}
}
if (typeof Subscribe != 'undefined')
Subscribe.initDaboxButtons();
}
function changeCaptchaStyle(screenType, i) {
const captchaInputClass = screenType === "popup" ? "captcha-input-popup" : "captcha-input-fullSize";
const captchaImageClass = screenType === "popup" ? "captcha-image-popup" : "captcha-image-fullSize";
document.querySelector(".mandatory").remove();
document.querySelectorAll(".inp_contact_captcha_captcha")[i].classList.add("captcha-main-container");
document.querySelectorAll(".details_captcha")[i].querySelector("a").classList.add("captcha-reload-link");
document.querySelectorAll("input[name='contact_captcha[captcha]']")[i].classList.add("captcha-text-input");
document.querySelectorAll("input[name='contact_captcha[captcha]']")[i].classList.add(captchaInputClass);
document.querySelectorAll("input[name='contact_captcha[captcha]']")[i].classList.add("form-input-text");
document.querySelectorAll(".details_captcha")[i].classList.add("captcha-text-reload");
document.querySelectorAll(".captcha")[i].querySelector("img").classList.add(captchaImageClass);
}
function onreloadCaptcha(pTarget) {
if (pTarget) {
pTarget.preventDefault();
}
// i = O Form is rendred once
let index = 0;
// Form instance input is defined to check whether the form is rendered twice i.e form display in full window size + click on contact webmaster link to display form popup
if (document.querySelector("input[name='formInstance']").value === "double") {
index = 1; // Form rendered twice
}
document.querySelectorAll("input[name='contact_captcha[captcha]']")[index].value = "";
const i = document.querySelectorAll(".captcha")[index].querySelector("img");
if (typeof src_catpha === 'undefined')
src_catpha = i.src;
i.setAttribute("src", src_catpha + "" + Math.round(Math.random() * 9999) + "/");
return false;
}
function contactSubmitHandler(e) {
e.preventDefault();
let index = 0;
// Double variable is true when the contact webmaster section is rendered twice: i.e full size + click to open popup
if (document.querySelector("input[name='formInstance']").value === "double") {
index = 1;
}
const validationMessage = document.querySelectorAll(".validation-message")[index];
let data = {};
const formChildren = e.currentTarget.querySelectorAll("input,select,textarea");
formChildren.forEach((pChild) => {
if (pChild.name !== 'btnSubmit') {
data[pChild.name] = pChild.value;
}
});
toggleLoader(index, "show");
RequestVidal.load("contact.html", data, "POST").onComplete(function(response){
toggleLoader(index, "hide");
if (response.responseJSON.content.error) {
displayErrorMessage(validationMessage, response.responseJSON.content.error)
} else {
toggleLoader(index, "show");
RequestVidal.load("submitContact.html", data, "POST").onComplete(function(response){
toggleLoader(index, "hide");
if (response.responseJSON.content.responseHTTPCode === "200") {
displaySuccessMessage(validationMessage, index);
} else {
const errorMsg = "Une erreur est apparue lors de l'envoi de vos données
";
displayErrorMessage(validationMessage, errorMsg);
}
});
}
});
}
function toggleLoader(index, message) {
const submitBtn = document.querySelectorAll(".submit-form-btn")[index];
const loadImg = document.querySelectorAll(".contact-load-img")[index];
if (!submitBtn || !loadImg) {
return;
}
if (message === "show") {
submitBtn.disabled = true;
loadImg.style.visibility = "visible";
} else {
submitBtn.disabled = false;
loadImg.style.visibility = "hidden";
}
}
function displaySuccessMessage(htmlMessage, index) {
htmlMessage.style.opacity = "1";
htmlMessage.classList.remove("validation-error-message");
htmlMessage.classList.add("validation-success-message");
htmlMessage.innerHTML = "Votre demande de contact a été prise en compte
";
setTimeout(function () {
htmlMessage.style.opacity = "0";
}, 2500);
document.querySelectorAll(".contact-form-form")[index].reset();
onreloadCaptcha();
}
function displayErrorMessage(htmlMessage, content) {
htmlMessage.style.opacity = "1";
htmlMessage.classList.add("validation-error-message");
htmlMessage.innerHTML = content;
htmlMessage.querySelectorAll("p")[0].style.display = "inline";
htmlMessage.querySelectorAll("p")[0].style.padding = "0";
if (htmlMessage.querySelectorAll("p")[1]) {
htmlMessage.querySelectorAll("p")[1].style.display = "inline";
htmlMessage.querySelectorAll("p")[1].style.padding = "0";
}
onreloadCaptcha();
setTimeout(function () {
htmlMessage.style.opacity = "0";
}, 5000);
}
function daboxHideHandler() {
const formInstanceInput = document.querySelector("input[name='formInstance']");
const screenTypeInput = document.querySelector("input[name='screenType']");
if (formInstanceInput) {
formInstanceInput.value = "single";
}
if (screenTypeInput) {
screenTypeInput.value = 'fullWindow';
}
}
function toggleAvatarListHandler(e) {
if (e.target.nodeName.toLowerCase() !== "a") {
e.preventDefault();
}
const p = document.querySelector(".account");
const ul = p.querySelector("ul");
ul.style.display = ul.style.display && ul.style.display === "block" ? "none" : "block";
document[ul.style.display === "block" ? "addEventListener" : "removeEventListener"]("click", toggleAvatarListHandler, true);
}
NodeList.prototype.forEach = Array.prototype.forEach;
const SIX_MONTHS = 180;
function fontSizeHandler(e) {
document.body.style.fontSize = e.currentTarget.getAttribute("data-fontsize");
Cookie.setCookie('fontsize', e.currentTarget.getAttribute("data-fontsize"), SIX_MONTHS);
}
document.addEventListener('DOMContentLoaded', init, false);
})();
const ToggleHandler = {
register: function (pSelector) {
document.querySelector(pSelector).querySelectorAll("*[data-toggle]").forEach(function (pEl) {
pEl.addEventListener('click', ToggleHandler.toggleElement);
});
},
toggleElement: function (e) {
e.currentTarget.classList.toggle('open');
if (e.currentTarget.getAttribute("data-toggle") && document.querySelector(e.currentTarget.getAttribute("data-toggle"))) {
document.querySelector(e.currentTarget.getAttribute("data-toggle")).classList.toggle('open');
}
}
}
const Autocomplete = (function () {
function init(pSelector) {
let t = document.querySelector(pSelector);
t.removeEventListener('click', CBO.redirect);
t.addEventListener('click', function (e) {
e.stopImmediatePropagation();
});
let urlBuilder = function (pValue) {
return CBO.decode(t.getAttribute("data-cbo")).replace('{value}', pValue);
}
let timer;
let timerTracking;
let req;
let autocomplete = completely(t, {
placeHolder: t.getAttribute('data-placeholder')
});
autocomplete.setText(t.getAttribute("data-value"));
autocomplete.input.setAttribute("name", t.getAttribute("id"));
autocomplete.onSelectTab = function (pValue ,e ) {
if(e){
e.preventDefault();
e.stopPropagation();
}
window.location.href = t.querySelector('.dropdown .selected').getAttribute('data-url');
}
autocomplete.onChange = function (pValue) {
t.parentNode.classList.add("loading");
if (pValue.length < 3) {
t.querySelector(".dropdown").style.visibility = "hidden";
if (req) {
req.cancel();
}
t.parentNode.classList.remove("loading");
return;
}
clearTimeout(timer);
timer = setTimeout(function () {
if (req) {
req.cancel();
}
req = RequestVidal.load(urlBuilder(pValue), "GET").onComplete(function (response) {
t.parentNode.classList.remove("pls");
let opt = [];
let results = [];
const items = response.responseJSON.items;
const hasResults = items && items.length;
if (hasResults) {
items.forEach((pItem, idx) => {
const n = pItem.name.htmlEntities();
const type_search = pItem.type ? pItem.type.htmlEntities() : '';
const url = pItem.url ? pItem.url.htmlEntities() : '';
opt.push(n);
results.push({id: pItem.id, name: n, url: url, type: type_search, rank: idx + 1})
});
} else if (response.responseJSON.error) {
t.parentNode.classList.add("pls");
}
t.parentNode.classList.remove("loading");
autocomplete.options = opt;
autocomplete.repaint(results);
clearTimeout(timerTracking);
timerTracking = setTimeout(() => {
if (window.pa)
pa.sendEvent('internal_search_result.display', {
'ise_keyword': pValue,
'ise_page': hasResults ? 1 : 0,
'ise_type': 'Suggestions'
});
}, 2000);
});
}, 200);
};
return autocomplete;
}
return {init: init};
})();
const CBO = {
init: (pTarget) => {
pTarget.querySelectorAll('*[data-cbo]').forEach(function (elt) {
if (elt.nodeName.toLowerCase() === "a") {
elt.setAttribute("href", CBO.decode(elt.getAttribute("data-cbo")));
return;
}
elt.addEventListener("click", CBO.redirect);
});
},
decode: (string) =>{ return decodeURIComponent(window.atob(string));},
encode: (string) =>{ return window.btoa(string);},
redirect: (event) => {
const attribute = event.currentTarget.getAttribute("data-cbo");
if (!attribute) {
return;
}
if (event.ctrlKey) {
const newWindow = window.open(CBO.decode(attribute));
newWindow.focus();
} else {
document.location.href = CBO.decode(attribute);
}
}
};
function displayMessage(pData, pSelector, pClass) {
if (!pData || !pData.length) {
return;
}
let html = '';
for (let i = 0, max = pData.length; i < max; i++) {
let item = pData[i];
html += '';
}
if(document.querySelector(pSelector))
document.querySelector(pSelector).innerHTML = html;
}
function setContentConsent() {
RequestVidal.load("utilisateur/preference/?alias_preference=consent.content_personalization_profiling&value_preference=1", "GET").onComplete(function(response){
if (response.responseJSON.content.success){
displaySuccessMessage();
}
});
}
function displaySuccessMessage() {
const message = document.querySelector(".restricted .success");
if (message) {
message.classList.remove("hide");
message.classList.add("show");
setTimeout(function () {
message.classList.add("remove");
message.classList.add("hide");
}, 5000);
}
window.location.reload();
}
String.prototype.htmlEntities = function () {
return this.replace(/&#(\d+);/g, function (match, dec) {
return String.fromCharCode(dec);
});
};
function fadeIn(pElement, pDuration, pCompleteHandler) {
M4Tween.killTweensOf(pElement);
pElement.style.display = "block";
M4Tween.to(pElement, pDuration, {opacity: 1}).onComplete(pCompleteHandler);
}
function fadeOut(pElement, pTime, pComplete) {
const c = function () {
pElement.style.display = "none";
if (pComplete) {
pComplete();
}
};
if (pElement.style.opacity === 0) {
c();
return;
}
M4Tween.to(pElement, pTime, {opacity: 0}).onComplete(c);
}
function initCollapsible() {
document.querySelectorAll('.collapsible').forEach(function (pCollapsible) {
pCollapsible.removeEventListener('click', collapseHandler, false);
pCollapsible.addEventListener('click', collapseHandler);
});
}
function forceHeight(pElement) {
let heightBefore = pElement.offsetHeight;
pElement.style.height = 'auto';
let heightAfter = pElement.offsetHeight;
pElement.style.height = heightBefore + "px";
return heightAfter;
}
function collapseHandler() {
let collapse = !this.classList.contains('collapsed');
let toCollapseElement = document.getElementById(this.dataset.collapsible_element);
let toCollapse = {};
let clamp = this.dataset.clamp || false;
toCollapseElement.style.overflowY = 'hidden';
if (collapse) {
this.classList.add('collapsed');
toCollapse.height = '0px';
} else {
this.classList.remove('collapsed');
if (clamp) {
forceHeight(toCollapseElement);
toCollapseElement.classList.remove('clamped')
}
if (toCollapseElement) {
let height = forceHeight(toCollapseElement);
toCollapse.height = height + "px";
}
}
M4Tween.killTweensOf(toCollapseElement);
M4Tween.to(toCollapseElement, .6, toCollapse);
}
VIDALPiano = {
event: (pTarget) => {
if (!window.pa) {
return;
}
let eventName = pTarget.dataset.vp || 'click.action';
let options = {};
for (let i in pTarget.dataset) {
if (i.indexOf('vp_') === -1) {
continue;
}
let value = pTarget.dataset[i];
if (value.indexOf('this.') === 0) {
value = pTarget[value.replace('this.', '')];
}
options[i.replace('vp_', '')] = value;
}
pa.sendEvent(eventName, options);
},
delayedOverOutEvent: (pTarget, pDelay = 1000, pOverCallback = null, pOutCallback = null) => {
let out_timeout;
let pa_timeout;
let sent = false;
pTarget.addEventListener('mouseover', (e) => {
pOverCallback && pOverCallback();
if (out_timeout) {
clearTimeout(out_timeout);
}
if (pa_timeout) {
clearTimeout(pa_timeout);
}
if (sent) {
return;
}
pa_timeout = setTimeout(() => {
VIDALPiano.event(pTarget);
sent = true;
}, pDelay);
});
pTarget.addEventListener('mouseout', (e) => {
out_timeout = setTimeout(() => {
sent = false;
pOutCallback && pOutCallback();
if (pa_timeout) {
clearTimeout(pa_timeout);
}
}, 100);
});
}
};
let retrieveAndShowRequest;
let deleteRequest;
let deleteAllRequest;
let addOrDeleteRequest;
(function(){
const ADD_BTN = '.add-bookmark-button';
const RMV_BTN = '.remove-bookmark-button';
let baseUrl;
function init(){
baseUrl = document.querySelector('base').getAttribute('href');
initAddBookmark(ADD_BTN);
initRemoveBookmark(RMV_BTN);
}
function initAddBookmark(pElement)
{
document.querySelectorAll(pElement).forEach(addClickHandler);
}
function initRemoveBookmark(pElement)
{
document.querySelectorAll(pElement).forEach(removeClickHandler);
}
function addClickHandler(pValue)
{
pValue.addEventListener('click', onClickAddBookmark);
}
function removeClickHandler(pValue)
{
pValue.addEventListener('click', onClickRemoveBookmark);
}
function onClickAddBookmark(){
let params = {'name' : encodeURIComponent(this.dataset.element_name), 'id':this.dataset.element_id, 'type':this.dataset.element_type, 'render': '1'};
makeRequest(baseUrl + 'mes-signets/add/', params, this.parentNode, eraseButton, showButton, addOrDeleteRequest)
}
function onClickRemoveBookmark(){
let params = {'name' : this.dataset.element_name, 'id':this.dataset.element_id, 'type':this.dataset.element_type, 'render': '1'};
makeRequest(baseUrl + 'mes-signets/delete/', params, this.parentNode, eraseButton, showButton, addOrDeleteRequest)
}
function eraseButton(pElement) {
pElement.innerHTML = '';
pElement.classList.add('loading');
}
function showButton(pElement, pResponse) {
setTimeout(
function (){
pElement.classList.remove('loading');
pElement.innerHTML = pResponse;
init();
}, 200
);
}
window.addEventListener('DOMContentLoaded', init, true);
})();