// source --> https://oceandimages.fr/wp-content/plugins/wp-responsive-menu/assets/js/wprmenu.js?ver=3.2.1 
( function( window ) {

'use strict';

function classReg( className ) {
  return new  ("(^|\\s+)" + className + "(\\s+|$)");
}
// classList support for class management
// although to be fair, the api sucks because it won't accept multiple classes at once
var hasClass, addClass, removeClass;

if ( 'classList' in document.documentElement ) {
  hasClass = function( elem, c ) {
    return elem.classList.contains( c );
  };
  addClass = function( elem, c ) {
    elem.classList.add( c );
  };
  removeClass = function( elem, c ) {
    elem.classList.remove( c );
  };
}
else {
  hasClass = function( elem, c ) {
    return classReg( c ).test( elem.className );
  };
  addClass = function( elem, c ) {
    if ( !hasClass( elem, c ) ) {
      elem.className = elem.className + ' ' + c;
    }
  };
  removeClass = function( elem, c ) {
    elem.className = elem.className.replace( classReg( c ), ' ' );
  };
}

function toggleClass( elem, c ) {
  var fn = hasClass( elem, c ) ? removeClass : addClass;
  fn( elem, c );
}

window.classie = {
  // full names
  hasClass: hasClass,
  addClass: addClass,
  removeClass: removeClass,
  toggleClass: toggleClass,
  // short names
  has: hasClass,
  add: addClass,
  remove: removeClass,
  toggle: toggleClass
};

})( window );

jQuery( document ).ready( function( $ ) {
	
  var	Mgwprm = document.getElementById( 'mg-wprm-wrap' );
	var	wprm_menuDir = document.getElementById( 'wprMenu' );
	body = document.body;
  
  /**
  ----------------------------------------
  * 
  * Body slide from one side ( left, right or top )
  *
  ----------------------------------------
  **/
  if( jQuery('.wprmenu_bar').hasClass('bodyslide') )
    jQuery('body').addClass('cbp-spmenu-push');

	jQuery('.wprmenu_bar').click( function(e) {
		if( $(e.target).hasClass('bar_logo') )
			return;
    
    

		classie.toggle( this, 'active' );
		jQuery(this).find('div.hamburger').toggleClass('is-active');
    
		if( jQuery(this).hasClass('active') ) {
		  jQuery('html').addClass('wprmenu-body-fixed');
      
			if( wprmenu.enable_overlay == '1' ) {
			 jQuery('div.wprm-wrapper').find('.wprm-overlay').addClass('active');
       
       
			}
		}
		else {
			jQuery('html').removeClass('wprmenu-body-fixed');
      
			if( wprmenu.enable_overlay == '1' ) {
				jQuery('div.wprm-wrapper').find('.wprm-overlay').removeClass('active');
			}

      
		}

    /**
    ----------------------------------------
    * 
    * Right side body push
    *
    ----------------------------------------
    **/
		if ( !jQuery(this).hasClass('normalslide') && jQuery(this).hasClass('left')) {
			doc_width = jQuery(document).width() * (wprmenu.menu_width/100);
			push_width = (wprmenu.push_width != '' && wprmenu.push_width < doc_width) ? wprmenu.push_width : doc_width;
			classie.toggle(body, 'cbp-spmenu-push-toright');
			
      if( jQuery('body').hasClass('cbp-spmenu-push-toright') )
				jQuery('body').css('left', push_width + 'px');
			else
				$('body').css('left','0px');
		}

		 /**
    ----------------------------------------
    * 
    * Left side body push
    *
    ----------------------------------------
    **/
		if ( !jQuery(this).hasClass('normalslide') && jQuery(this).hasClass('right')) {
			doc_width = jQuery(document).width() * (wprmenu.menu_width/100);
			push_width = (wprmenu.push_width != '' && wprmenu.push_width < doc_width) ? wprmenu.push_width : doc_width;
			classie.toggle(body, 'cbp-spmenu-push-toleft');
			
      if( jQuery('body').hasClass('cbp-spmenu-push-toleft') )
				jQuery('body').css('left','-'+push_width+'px');
			else
				jQuery('body').css('left','0px');
		}
    
		classie.toggle(Mgwprm, 'cbp-spmenu-open');

    var wprmenuDemoId = wprmenu.wprmenuDemoId;
    
    if ( wprmenuDemoId ==  15 ) {
      
      jQuery('div.wprm-wrapper').addClass('wp-responsive-menu-demo15');
      
    }else if ( wprmenuDemoId ==  16 ) {

      jQuery('div.wprm-wrapper').addClass('wp-responsive-menu-demo16');
      
    }else if ( wprmenuDemoId ==  17 ) {

      jQuery('div.wprm-wrapper').addClass('wp-responsive-menu-demo17');
     
    }

		close_sub_uls();

	});

  /**
  -------------------------------------------------------------
  * 
  * Fix the scaling issue by adding/replacing viewport metatag
  *
  -------------------------------------------------------------
  **/
  var mt = $('meta[name=viewport]');
  mt = mt.length ? mt : $('<meta name="viewport" />').appendTo('head');
  if(wprmenu.zooming == 0) {
    mt.attr('content', 'user-scalable=no, width=device-width, maximum-scale=1, minimum-scale=1');
  } else {
    mt.attr('content', 'user-scalable=yes, width=device-width, initial-scale=1.0, minimum-scale=1');
  }

	/**
  ----------------------------------------
  * 
  * Click on body to remove the menu
  *
  ----------------------------------------
  **/
  $('body').click( function( event ) {
    if ( $( '#wprmenu_bar' ).hasClass( 'active' ) ) {
      $('#wprmenu_bar .wprmenu_icon').addClass('open');
    } 
    else {
      $('#wprmenu_bar .wprmenu_icon').removeClass('open');
    }
  });

	var menu = jQuery('#mg-wprm-wrap');
	var menu_ul = jQuery('#wprmenu_menu_ul'); //the menu ul

	jQuery(document).mouseup(function (e) {
		if ( ($(e.target).hasClass('wprmenu_bar') || $(e.target).parents('.wprmenu_bar').length == 0) && 
			($(e.target).hasClass('cbp-spmenu') || $(e.target).parents('.cbp-spmenu').length == 0)) {
    		if(menu.is(':visible') ) {
				$('.hamburger.is-active').trigger('click');
			}
		}
	});

	//add arrow element to the parent li items and chide its child uls
	menu.find('ul.sub-menu').each(function() {
		var sub_ul = $(this),
		parent_a = sub_ul.prev('a'),
		parent_li = parent_a.parent('li').first();

		parent_a.addClass('wprmenu_parent_item');
		parent_li.addClass('wprmenu_parent_item_li');

		var expand = parent_a.before('<span class="wprmenu_icon wprmenu_icon_par icon_default"></span> ').find('.wprmenu_icon_par');
		sub_ul.hide();
	});


	//expand / collapse action (SUBLEVELS)
	$('.wprmenu_icon_par').on('click',function() {
		var t = $(this),
		child_ul = t.parent('li').find('ul.sub-menu').first(); 
		child_ul.slideToggle('300');
		t.toggleClass('wprmenu_par_opened');
		t.parent('li').first().toggleClass('wprmenu_no_border_bottom');
	});

	//helper - close all submenus when menu is hiding
	function close_sub_uls() {
		menu.find('ul.sub-menu').each(function() {
			var ul = $(this),
			icon = ul.parent('li').find('.wprmenu_icon_par'),
			li = ul.parent('li');

			if(ul.is(':visible')) ul.slideUp(300);
			icon.removeClass('wprmenu_par_opened');
			li.removeClass('wprmenu_no_border_bottom');
		});
	}

	//submenu opened
	function open_sub_uls() {
		menu.find('ul.sub-menu').each(function() {
			var ul = $(this),
			icon = ul.parent('li').find('.wprmenu_icon_par'),
			li = ul.parent('li');

			ul.slideDown(300);
			icon.removeClass('wprmenu_par_opened');
			icon.addClass('wprmenu_par_opened');
		});
	}

	if( menu.hasClass('cbp-spmenu-top') && $('body').hasClass('cbp-spmenu-push') ){
		$('body').prepend(menu);
		//show / hide the menu
		$('#wprmenu_bar,#custom_menu_icon').on('click', function(e) {
			if( $(e.target).hasClass('bar_logo') )
				return;
			//scroll window top
			$("html, body").animate({ scrollTop: 0 }, 300);

			close_sub_uls();
			menu.stop(true, false).slideToggle(300);
		});
	}
	if( wprmenu.parent_click == 'yes' ) {
		$('a.wprmenu_parent_item').on('click', function( event ){
			event.preventDefault();
      var t = $(this);
      // Find the corresponding menu icon and trigger its click
      t.parent('li').find('.wprmenu_icon_par').first().trigger('click');
		});
	}
	$('#wprmenu_menu_ul a').click(function(){
		if( wprmenu.parent_click !='yes' || (wprmenu.parent_click == 'yes' && !$(this).hasClass('wprmenu_parent_item')) )
			$('.hamburger.is-active').trigger('click');
	});


  /**
  ----------------------------------------
  * 
  * Swipe Enable Function
  *
  ----------------------------------------
  **/
	if( wprmenu.swipe == '1' ) {
    jQuery('body').swipe({
      excludedElements: "button, input, select, textarea, .noSwipe",
      longTapThreshold: 200,
      swipe:function(event, direction, distance, duration, fingerCount, fingerData) {
        menu_el = $('.wprmenu_bar .hamburger, .wprmenu_bar .wpr-custom-menu');
        if( direction =='left' && menu_el.hasClass('is-active') )
          menu_el.trigger('click');
        
        
        if( direction =='right' && !menu_el.hasClass('is-active') )
          menu_el.trigger('click');
        
        }
    });
  }

  function toggle_sub_uls($action) {
    $('#mg-wprm-wrap').find('ul.sub-menu').each(function() {
      var ul = $(this),
      icon = ul.parent('li').find('.wprmenu_icon_par'),
      li = ul.parent('li');

      if( $action == 'open' ) {
        ul.slideDown(300);
        icon.removeClass( wprmenu.submenu_open_icon ).addClass( wprmenu.submenu_close_icon );
      }
      else {
        if(ul.is(':visible')) ul.slideUp(300);
        icon.removeClass( wprmenu.submenu_close_icon ).addClass( wprmenu.submenu_open_icon );
        li.removeClass('wprmenu_no_border_bottom');
      }
      
    });
  }

});
// source --> https://oceandimages.fr/wp-content/plugins/bookly-responsive-appointment-booking-tool/frontend/resources/js/spin.min.js?ver=27.7 
// http://spin.js.org/#v2.3.2
!function(a,b){"object"==typeof module&&module.exports?module.exports=b():"function"==typeof define&&define.amd?define(b):a.Spinner=b()}(this,function(){"use strict";function a(a,b){var c,d=document.createElement(a||"div");for(c in b)d[c]=b[c];return d}function b(a){for(var b=1,c=arguments.length;c>b;b++)a.appendChild(arguments[b]);return a}function c(a,b,c,d){var e=["opacity",b,~~(100*a),c,d].join("-"),f=.01+c/d*100,g=Math.max(1-(1-a)/b*(100-f),a),h=j.substring(0,j.indexOf("Animation")).toLowerCase(),i=h&&"-"+h+"-"||"";return m[e]||(k.insertRule("@"+i+"keyframes "+e+"{0%{opacity:"+g+"}"+f+"%{opacity:"+a+"}"+(f+.01)+"%{opacity:1}"+(f+b)%100+"%{opacity:"+a+"}100%{opacity:"+g+"}}",k.cssRules.length),m[e]=1),e}function d(a,b){var c,d,e=a.style;if(b=b.charAt(0).toUpperCase()+b.slice(1),void 0!==e[b])return b;for(d=0;d<l.length;d++)if(c=l[d]+b,void 0!==e[c])return c}function e(a,b){for(var c in b)a.style[d(a,c)||c]=b[c];return a}function f(a){for(var b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)void 0===a[d]&&(a[d]=c[d])}return a}function g(a,b){return"string"==typeof a?a:a[b%a.length]}function h(a){this.opts=f(a||{},h.defaults,n)}function i(){function c(b,c){return a("<"+b+' xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">',c)}k.addRule(".spin-vml","behavior:url(#default#VML)"),h.prototype.lines=function(a,d){function f(){return e(c("group",{coordsize:k+" "+k,coordorigin:-j+" "+-j}),{width:k,height:k})}function h(a,h,i){b(m,b(e(f(),{rotation:360/d.lines*a+"deg",left:~~h}),b(e(c("roundrect",{arcsize:d.corners}),{width:j,height:d.scale*d.width,left:d.scale*d.radius,top:-d.scale*d.width>>1,filter:i}),c("fill",{color:g(d.color,a),opacity:d.opacity}),c("stroke",{opacity:0}))))}var i,j=d.scale*(d.length+d.width),k=2*d.scale*j,l=-(d.width+d.length)*d.scale*2+"px",m=e(f(),{position:"absolute",top:l,left:l});if(d.shadow)for(i=1;i<=d.lines;i++)h(i,-2,"progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)");for(i=1;i<=d.lines;i++)h(i);return b(a,m)},h.prototype.opacity=function(a,b,c,d){var e=a.firstChild;d=d.shadow&&d.lines||0,e&&b+d<e.childNodes.length&&(e=e.childNodes[b+d],e=e&&e.firstChild,e=e&&e.firstChild,e&&(e.opacity=c))}}var j,k,l=["webkit","Moz","ms","O"],m={},n={lines:12,length:7,width:5,radius:10,scale:1,corners:1,color:"#000",opacity:.25,rotate:0,direction:1,speed:1,trail:100,fps:20,zIndex:2e9,className:"spinner",top:"50%",left:"50%",shadow:!1,hwaccel:!1,position:"absolute"};if(h.defaults={},f(h.prototype,{spin:function(b){this.stop();var c=this,d=c.opts,f=c.el=a(null,{className:d.className});if(e(f,{position:d.position,width:0,zIndex:d.zIndex,left:d.left,top:d.top}),b&&b.insertBefore(f,b.firstChild||null),f.setAttribute("role","progressbar"),c.lines(f,c.opts),!j){var g,h=0,i=(d.lines-1)*(1-d.direction)/2,k=d.fps,l=k/d.speed,m=(1-d.opacity)/(l*d.trail/100),n=l/d.lines;!function o(){h++;for(var a=0;a<d.lines;a++)g=Math.max(1-(h+(d.lines-a)*n)%l*m,d.opacity),c.opacity(f,a*d.direction+i,g,d);c.timeout=c.el&&setTimeout(o,~~(1e3/k))}()}return c},stop:function(){var a=this.el;return a&&(clearTimeout(this.timeout),a.parentNode&&a.parentNode.removeChild(a),this.el=void 0),this},lines:function(d,f){function h(b,c){return e(a(),{position:"absolute",width:f.scale*(f.length+f.width)+"px",height:f.scale*f.width+"px",background:b,boxShadow:c,transformOrigin:"left",transform:"rotate("+~~(360/f.lines*k+f.rotate)+"deg) translate("+f.scale*f.radius+"px,0)",borderRadius:(f.corners*f.scale*f.width>>1)+"px"})}for(var i,k=0,l=(f.lines-1)*(1-f.direction)/2;k<f.lines;k++)i=e(a(),{position:"absolute",top:1+~(f.scale*f.width/2)+"px",transform:f.hwaccel?"translate3d(0,0,0)":"",opacity:f.opacity,animation:j&&c(f.opacity,f.trail,l+k*f.direction,f.lines)+" "+1/f.speed+"s linear infinite"}),f.shadow&&b(i,e(h("#000","0 0 4px #000"),{top:"2px"})),b(d,b(i,h(g(f.color,k),"0 0 1px rgba(0,0,0,.1)")));return d},opacity:function(a,b,c){b<a.childNodes.length&&(a.childNodes[b].style.opacity=c)}}),"undefined"!=typeof document){k=function(){var c=a("style",{type:"text/css"});return b(document.getElementsByTagName("head")[0],c),c.sheet||c.styleSheet}();var o=e(a("group"),{behavior:"url(#default#VML)"});!d(o,"transform")&&o.adj?i():j=d(o,"animation")}return h});