// source --> https://www.librairielaloupiote.com/wp-content/themes/loupiote/js/scripts.js 
document.addEventListener('DOMContentLoaded', function() {

    /* const menuTl = gsap.timeline({paused: true});
    menuTl.to('.sub-menu', {autoAlpha: 1, ease: 'power3.easeInOut'}) */
    
    window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      gtag('js', new Date());
    
      gtag('config', 'UA-152606750-1');
});
// source --> https://www.librairielaloupiote.com/wp-content/themes/loupiote/js/readmore.min.js 
/*!
 *  @preserve
 * 
 * Readmore.js plugin
 * Author: @jed_foster
 * Project home: jedfoster.com/Readmore.js
 * Version: 3.0.0-beta-1
 * Licensed under the MIT license
 * 
 * Debounce function from davidwalsh.name/javascript-debounce-function
 */
(function webpackUniversalModuleDefinition(root,factory){if(typeof exports==='object'&&typeof module==='object')
module.exports=factory();else if(typeof define==='function'&&define.amd)
define("Readmore",[],factory);else if(typeof exports==='object')
exports.Readmore=factory();else root.Readmore=factory()})(window,function(){return(function(modules){var installedModules={};function __webpack_require__(moduleId){if(installedModules[moduleId]){return installedModules[moduleId].exports}
var module=installedModules[moduleId]={i:moduleId,l:!1,exports:{}};modules[moduleId].call(module.exports,module,module.exports,__webpack_require__);module.l=!0;return module.exports}
__webpack_require__.m=modules;__webpack_require__.c=installedModules;__webpack_require__.d=function(exports,name,getter){if(!__webpack_require__.o(exports,name)){Object.defineProperty(exports,name,{enumerable:!0,get:getter})}};__webpack_require__.r=function(exports){if(typeof Symbol!=='undefined'&&Symbol.toStringTag){Object.defineProperty(exports,Symbol.toStringTag,{value:'Module'})}
Object.defineProperty(exports,'__esModule',{value:!0})};__webpack_require__.t=function(value,mode){if(mode&1)value=__webpack_require__(value);if(mode&8)return value;if((mode&4)&&typeof value==='object'&&value&&value.__esModule)return value;var ns=Object.create(null);__webpack_require__.r(ns);Object.defineProperty(ns,'default',{enumerable:!0,value:value});if(mode&2&&typeof value!='string')for(var key in value)__webpack_require__.d(ns,key,function(key){return value[key]}.bind(null,key));return ns};__webpack_require__.n=function(module){var getter=module&&module.__esModule?function getDefault(){return module['default']}:function getModuleExports(){return module};__webpack_require__.d(getter,'a',getter);return getter};__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property)};__webpack_require__.p="";return __webpack_require__(__webpack_require__.s=0)})({"./node_modules/@babel/runtime/helpers/classCallCheck.js":
/*!***************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/classCallCheck.js ***!
  \***************************************************************/
/*! no static exports found */
(function(module,exports){function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}
module.exports=_classCallCheck}),"./node_modules/@babel/runtime/helpers/createClass.js":
/*!************************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/createClass.js ***!
  \************************************************************/
/*! no static exports found */
(function(module,exports){function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1;descriptor.configurable=!0;if("value" in descriptor)descriptor.writable=!0;Object.defineProperty(target,descriptor.key,descriptor)}}
function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}
module.exports=_createClass}),"./node_modules/@babel/runtime/helpers/typeof.js":
/*!*******************************************************!*\
  !*** ./node_modules/@babel/runtime/helpers/typeof.js ***!
  \*******************************************************/
/*! no static exports found */
(function(module,exports){function _typeof2(obj){if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof2=function _typeof2(obj){return typeof obj}}else{_typeof2=function _typeof2(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj}}return _typeof2(obj)}
function _typeof(obj){if(typeof Symbol==="function"&&_typeof2(Symbol.iterator)==="symbol"){module.exports=_typeof=function _typeof(obj){return _typeof2(obj)}}else{module.exports=_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":_typeof2(obj)}}
return _typeof(obj)}
module.exports=_typeof}),"./src/readmore.js":
/*!*************************!*\
  !*** ./src/readmore.js ***!
  \*************************/
/*! exports provided: default */
(function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__);var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */"./node_modules/@babel/runtime/helpers/classCallCheck.js");var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__);var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(/*! @babel/runtime/helpers/createClass */"./node_modules/@babel/runtime/helpers/createClass.js");var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__);var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(/*! @babel/runtime/helpers/typeof */"./node_modules/@babel/runtime/helpers/typeof.js");var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_2___default=__webpack_require__.n(_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_2__);var uniqueIdCounter=0;var isCssEmbeddedFor=[];(function removePolyfill(arr){arr.forEach(function(item){if(Object.prototype.hasOwnProperty.call(item,'remove')){return}
Object.defineProperty(item,'remove',{configurable:!0,enumerable:!0,writable:!0,value:function remove(){if(this.parentNode!==null){this.parentNode.removeChild(this)}}})})})([Element.prototype,CharacterData.prototype,DocumentType.prototype]);function forEach(arr,callback,scope){for(var i=0;i<arr.length;i+=1){callback.call(scope,arr[i],i)}}
function extend(){for(var _len=arguments.length,objects=new Array(_len),_key=0;_key<_len;_key++){objects[_key]=arguments[_key]}
var hasProp={}.hasOwnProperty;var child=objects[0];var parent=objects[1];if(objects.length>2){var args=[];Object.keys(objects).forEach(function(key){args.push(objects[key])});while(args.length>2){var c1=args.shift();var p1=args.shift();args.unshift(extend(c1,p1))}
child=args.shift();parent=args.shift()}
if(parent){Object.keys(parent).forEach(function(key){if(hasProp.call(parent,key)){if(_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_2___default()(parent[key])==='object'){child[key]=child[key]||{};child[key]=extend(child[key],parent[key])}else{child[key]=parent[key]}}})}
return child}
function debounce(func,wait,immediate){var timeout;return function debouncedFunc(){var _this=this;for(var _len2=arguments.length,args=new Array(_len2),_key2=0;_key2<_len2;_key2++){args[_key2]=arguments[_key2]}
var callNow=immediate&&!timeout;var later=function later(){timeout=null;if(!immediate)func.apply(_this,args)};clearTimeout(timeout);timeout=setTimeout(later,wait);if(callNow)func.apply(this,args)}}
function uniqueId(){uniqueIdCounter+=1;return"rmjs-".concat(uniqueIdCounter)}
function setBoxHeights(element){element.style.height='auto';var expandedHeight=parseInt(element.getBoundingClientRect().height,10);var cssMaxHeight=parseInt(window.getComputedStyle(element).maxHeight,10);var defaultHeight=parseInt(element.readmore.defaultHeight,10);element.readmore.expandedHeight=expandedHeight;element.readmore.maxHeight=cssMaxHeight;element.readmore.collapsedHeight=cssMaxHeight||element.readmore.collapsedHeight||defaultHeight;element.style.maxHeight='none'}
function createElementFromString(htmlString){var div=document.createElement('div');div.innerHTML=htmlString;return div.firstChild}
function embedCSS(selector,options){if(!isCssEmbeddedFor[selector]){var styles='';if(options.embedCSS&&options.blockCSS!==''){styles+="".concat(selector," + [data-readmore-toggle], ").concat(selector,"[data-readmore] {\n        ").concat(options.blockCSS,"\n      }")}
styles+="".concat(selector,"[data-readmore] {\n      transition: height ").concat(options.speed,"ms;\n      overflow: hidden;\n    }");(function(d,u){var css=d.createElement('style');css.type='text/css';if(css.styleSheet){css.styleSheet.cssText=u}else{css.appendChild(d.createTextNode(u))}
d.getElementsByTagName('head')[0].appendChild(css)})(document,styles);isCssEmbeddedFor[selector]=!0}}
function buildToggle(link,element,scope){function clickHandler(event){this.toggle(element,event)}
var text=link;if(typeof link==='function'){text=link(element)}
var toggleLink=createElementFromString(text);toggleLink.setAttribute('data-readmore-toggle',element.id);toggleLink.setAttribute('aria-controls',element.id);toggleLink.addEventListener('click',clickHandler.bind(scope));return toggleLink}
function isEnvironmentSupported(){return typeof window!=='undefined'&&typeof document!=='undefined'&&!!document.querySelectorAll&&!!window.addEventListener}
var resizeBoxes=debounce(function(){var elements=document.querySelectorAll('[data-readmore]');forEach(elements,function(element){var expanded=element.getAttribute('aria-expanded')==='true';setBoxHeights(element);element.style.height="".concat(expanded?element.readmore.expandedHeight:element.readmore.collapsedHeight,"px")})},100);var defaults={speed:100,collapsedHeight:200,heightMargin:16,moreLink:'<a href="#">Read More</a>',lessLink:'<a href="#">Close</a>',embedCSS:!0,blockCSS:'display: block; width: 100%;',startOpen:!1,sourceOrder:'after',blockProcessed:function blockProcessed(){},beforeToggle:function beforeToggle(){},afterToggle:function afterToggle(){}};var Readmore=function(){function Readmore(){var _this2=this;_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default()(this,Readmore);if(!isEnvironmentSupported())return;for(var _len3=arguments.length,args=new Array(_len3),_key3=0;_key3<_len3;_key3++){args[_key3]=arguments[_key3]}
var selector=args[0],options=args[1];var elements;if(typeof selector==='string'){elements=document.querySelectorAll(selector)}else if(selector.nodeName){elements=[selector]}else{elements=selector}
if(!elements.length)return;this.options=extend({},defaults,options);if(typeof selector==='string'){embedCSS(selector,this.options)}else{this.instanceSelector=".".concat(uniqueId());embedCSS(this.instanceSelector,this.options)}
window.addEventListener('load',resizeBoxes);window.addEventListener('resize',resizeBoxes);this.elements=[];forEach(elements,function(element){if(_this2.instanceSelector){element.classList.add(_this2.instanceSelector.substr(1))}
var expanded=_this2.options.startOpen;element.readmore={defaultHeight:_this2.options.collapsedHeight,heightMargin:_this2.options.heightMargin};setBoxHeights(element);var heightMargin=element.readmore.heightMargin;if(element.getBoundingClientRect().height<=element.readmore.collapsedHeight+heightMargin){if(typeof _this2.options.blockProcessed==='function'){_this2.options.blockProcessed(element,!1)}
return}
element.setAttribute('data-readmore','');element.setAttribute('aria-expanded',expanded);element.id=element.id||uniqueId();var toggleLink=expanded?_this2.options.lessLink:_this2.options.moreLink;var toggleElement=buildToggle(toggleLink,element,_this2);element.parentNode.insertBefore(toggleElement,_this2.options.sourceOrder==='before'?element:element.nextSibling);element.style.height="".concat(expanded?element.readmore.expandedHeight:element.readmore.collapsedHeight,"px");if(typeof _this2.options.blockProcessed==='function'){_this2.options.blockProcessed(element,!0)}
_this2.elements.push(element)})}
_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1___default()(Readmore,[{key:"toggle",value:function toggle(){var _this3=this;var el=arguments.length<=0?undefined:arguments[0];var toggleElement=function toggleElement(element){var trigger=document.querySelector("[aria-controls=\"".concat(element.id,"\"]"));var expanded=element.getBoundingClientRect().height<=element.readmore.collapsedHeight;var newHeight=expanded?element.readmore.expandedHeight:element.readmore.collapsedHeight;if(typeof _this3.options.beforeToggle==='function'){var shouldContinueToggle=_this3.options.beforeToggle(trigger,element,!expanded);if(shouldContinueToggle===!1){return}}
element.style.height="".concat(newHeight,"px");var transitionendHandler=function transitionendHandler(transitionEvent){if(typeof _this3.options.afterToggle==='function'){_this3.options.afterToggle(trigger,element,expanded)}
transitionEvent.stopPropagation();element.setAttribute('aria-expanded',expanded);element.removeEventListener('transitionend',transitionendHandler,!1)};element.addEventListener('transitionend',transitionendHandler,!1);if(_this3.options.speed<1){transitionendHandler.call(_this3,{target:element})}
var toggleLink=expanded?_this3.options.lessLink:_this3.options.moreLink;if(!toggleLink){trigger.remove()}else if(trigger&&trigger.parentNode){trigger.parentNode.replaceChild(buildToggle(toggleLink,element,_this3),trigger)}};if(typeof el==='string'){el=document.querySelectorAll(el)}
if(!el){throw new Error('Element MUST be either an HTML node or querySelector string')}
var event=arguments.length<=1?undefined:arguments[1];if(event){event.preventDefault();event.stopPropagation()}
if(_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_2___default()(el)==='object'&&!el.nodeName){forEach(el,toggleElement)}else{toggleElement(el)}}},{key:"destroy",value:function destroy(selector){var _this4=this;var elements;if(!selector){elements=this.elements}else if(typeof selector==='string'){elements=document.querySelectorAll(selector)}else if(selector.nodeName){elements=[selector]}else{elements=selector}
forEach(elements,function(element){if(_this4.elements.indexOf(element)===-1){return}
_this4.elements=_this4.elements.filter(function(el){return el!==element});if(_this4.instanceSelector){element.classList.remove(_this4.instanceSelector.substr(1))}
delete element.readmore;element.style.height='initial';element.style.maxHeight='initial';element.removeAttribute('data-readmore');element.removeAttribute('aria-expanded');var trigger=document.querySelector("[aria-controls=\"".concat(element.id,"\"]"));if(trigger){trigger.remove()}
if(element.id.indexOf('rmjs-')!==-1){element.removeAttribute('id')}});delete this}}]);return Readmore}();Readmore.VERSION="3.0.0-beta-1";__webpack_exports__["default"]=(Readmore)}),0:
/*!*******************************!*\
  !*** multi ./src/readmore.js ***!
  \*******************************/
/*! no static exports found */
(function(module,exports,__webpack_require__){module.exports=__webpack_require__(/*! ./src/readmore.js */"./src/readmore.js")})})["default"]});
// source --> https://www.librairielaloupiote.com/wp-content/themes/loupiote/js/livre.js 
let width = document.documentElement.clientWidth;

document.addEventListener("DOMContentLoaded", function(event) {
  
  window.addEventListener("load", function(e) {
    
    new imagesLoaded('.single-livre-content', function() {
      reRenderPseudoElts();
      window.onresize = function(){
        reRenderPseudoElts();
      }
    });

  })

  new Readmore('.livre__text', {
    speed: 200,
    moreLink: '<a href="#">&darr; Lire la suite</a>',
    lessLink: '<a href="#">&uarr; Replier</a>',
    collapsedHeight: 242
  });

  scrollCalculation();

  $(window).on('resize', function() {
    if(this.resizeTO) clearTimeout(this.resizeTO);
      this.resizeTO = setTimeout(function() {
        $(this).trigger('windowResize');
      }, 300); 
  });
  $(window).on('windowResize', function() {
    width = document.documentElement.clientWidth;
    scrollCalculation();
  });

  var acc = document.querySelector(".livre__details__accordion");
  let detailsLivreDivs = document.querySelectorAll(".livre__details div");
  if (width < 768) {
    for (var i = 0; i < detailsLivreDivs.length; ++i) {
      detailsLivreDivs[i].classList.remove('detailsIn');
    }
  }

  acc.addEventListener("click", function() {
    /* Toggle between adding and removing the "active" class,
    to highlight the button that controls the panel */
    this.classList.toggle("active");

    /* Toggle between hiding and showing the active panel */
    var panel = this.nextElementSibling;
    if (panel.style.maxHeight === "500px") {
      panel.style.maxHeight = "0";
      for (var i = 0; i < detailsLivreDivs.length; ++i) {
        detailsLivreDivs[i].classList.remove('detailsIn');
      }
    } else {
      panel.style.maxHeight = "500px";
      for (var i = 0; i < detailsLivreDivs.length; ++i) {
        detailsLivreDivs[i].classList.add('detailsIn');
      }
    }
  })

});

function reRenderPseudoElts(){
  let livreCover = document.querySelector('#livre__cover'),
      meta = document.querySelector('.livre__meta'),
      couv = document.getElementById('couv'),
      book = document.querySelector('.book-cover-single'),
      couvHeight = couv.clientHeight,
      couvWidth = couv.clientWidth,
      marginTop = couvHeight / 2,
      rayon = document.querySelectorAll(".container")[1];
  livreCover.style.height = couvHeight + 'px';
  book.style.height = couvHeight + 'px';
  if (rayon.classList.contains("single-livre-jeunesse")) {
    meta.style.marginTop = -marginTop + 'px';
  }
  let styleElem = document.getElementsByTagName('style')[0];
  styleElem.innerHTML = '.book-container {height:'+couvHeight+'px;} .book-cover-single > :first-child {height:'+couvHeight+'px;width:'+couvWidth+'px;} .book-cover-single::before {height:'+ (couvHeight - 6)+'px;} .book-cover-single::after {height:'+couvHeight+'px;width:'+couvWidth+'px;};';
  $('.preloader').removeClass('preloader');
}

function scrollCalculation() {
  let relatedBooks = document.querySelector(".related-posts")
  
  if (relatedBooks) {
    let relatedWidth = document.querySelector(".related-posts").offsetWidth,
      relatedItems = document.querySelectorAll(".related-item"),
      relatedItem = document.querySelector(".related-item"),
      relatedItemStyle = relatedItem.currentStyle || window.getComputedStyle(relatedItem),
      relatedItemRightMargin = relatedItemStyle.marginRight,
      scrollValue = parseInt(relatedWidth) + parseInt(relatedItemRightMargin);

    let animDuration;
    if (width < 480) {
      animDuration = 300;
      relatedItems.length <= 2 ? $('#next').animate({ opacity: 0 }) : $('#next').animate({ opacity: 1 });
    }
    else if (width < 768) {
      animDuration = 400;
      relatedItems.length <= 3 ? $('#next').animate({ opacity: 0 }) : $('#next').animate({ opacity: 1 });
    }
    else if (width < 992) {
      relatedItems.length <= 4 ? $('#next').animate({ opacity: 0 }) : $('#next').animate({ opacity: 1 });
    }
    else {
      animDuration = 500;
      relatedItems.length <= 5 ? $('#next').animate({ opacity: 0 }) : $('#next').animate({ opacity: 1 });
    }
    // Related Posts Nav Behaviour
    // Hide left at start
    $('#prev').css('opacity', 0);

    //left arrow controls
    $("#prev").on('click', function () {
      $('#next').animate({ opacity: 1 });
      $('.related-posts').stop().animate({ scrollLeft: "-=" + scrollValue }, animDuration, function () {
        if ($('.related-posts').scrollLeft() <= 0) {
          $("#prev").animate({ opacity: 0 });
        }
      });
      return false;
    });
    //right arrow controls
    $("#next").on('click', function () {
      $('#prev').animate({ opacity: 1 });
      $('.related-posts').stop().animate({ scrollLeft: "+=" + scrollValue }, animDuration, function () {
        if ($('.related-posts')[0].scrollWidth - $('.related-posts').scrollLeft() == $('.related-posts').width()) {
          $("#next").animate({ opacity: 0 });
        }
      });
      return false;
    });
  }
};
// source --> https://www.librairielaloupiote.com/wp-content/themes/loupiote/js/animations.js 
gsap.registerPlugin(ScrollTrigger, SplitText);

// wait until DOM is ready
document.addEventListener("DOMContentLoaded", function(event) {

    // wait until images, links, fonts, stylesheets, and js is loaded
    window.addEventListener("load", function(e) {
        let couv = document.getElementById('couv'),
            livreDetailsWrapper = document.querySelector('.livre__details'),
            relatedBooks = document.querySelector('.related-posts'),
            marginTop = couv.clientHeight / 2;
        const detailsLivre = document.querySelectorAll(".livre__details div"),
            lienAchat = document.querySelector(".livre__buy"),
            accordionButton = document.querySelector(".livre__details__accordion"),
            backToLivres = document.querySelector(".back-to-livres"),
            titreLivre = document.querySelector(".livre__title"),
            sousTitreLivre = document.querySelector(".livre__subtitle"),
            tagsLivre = document.querySelectorAll(".livre__categories a.tag"),
            texteLivre = document.querySelector(".livre__text"),
            readmoreLivre = document.querySelector("a[data-readmore-toggle]");

        const childSplit = new SplitText("h1.livre__title", { type: "lines", linesClass: "split-child" })
        const parentSplit = new SplitText("h1.livre__title", { linesClass: "split-parent" })

        const tl = gsap.timeline({
            defaults: {
                duration: 1.2,
                ease: 'power4.out',
                delay: 0
            }
        });

        tl
            //.set(titreLivre, { autoAlpha: 1 })
            .from(titreLivre, { yPercent: 100, autoAlpha: 0 }, 0.1)
            .from(sousTitreLivre, { yPercent: 100, autoAlpha: 0 }, 0.2)
            .from(tagsLivre, { y: 20, autoAlpha: 0, stagger: 0.1 }, 0.3)
            .from(texteLivre, { y: 50, autoAlpha: 0 }, 0.5)
            .from(readmoreLivre, { y: 30, autoAlpha: 0 }, 0.7)

        const detailsTl = gsap.timeline({
            defaults: {
                duration: .6,
                ease: 'power4.out'
            },
            scrollTrigger: {
                trigger: ".livre__details__wrapper",
                start: () => couv.offsetHeight - marginTop + " bottom",
                end: () => couv.offsetHeight - marginTop + livreDetailsWrapper.clientHeight + " bottom"
            }
        });

        detailsTl
            .from(accordionButton, { autoAlpha: 0 })
            .from(detailsLivre, { xPercent: -101, autoAlpha: 0, stagger: 0.1 })
            .from(lienAchat, { autoAlpha: 0, duration: 2 })
            .from(backToLivres, { xPercent: -30, autoAlpha: 0 }, "-=1.5");

        const relatedTl = gsap.timeline({
            scrollTrigger: {
            trigger: ".related-posts",
            start: () => "top+=" + marginTop / 2 + " 95%",
            end: () => "bottom+=" + marginTop / 2 + " bottom",
            toggleActions: 'play none none reverse'
            }
        });

        relatedTl
            .from(".related-posts-header", { y: 10, autoAlpha: 0, duration: 0.6})
            .from(".related-item", { y: 40, autoAlpha: 0, duration: 0.3, stagger: 0.1 }, 0)

    }, false);

});