text: /********************************************
   * REVOLUTION 5.4.2 EXTENSION - ACTIONS
   * @version: 2.1.0 (15.05.2017)
   * @requires jquery.themepunch.revolution.js
   * @author ThemePunch
   *********************************************/
  (function ($) {
      "use strict";
      var _R = jQuery.fn.revolution,
          _ISM = _R.is_mobile(),
          extension = {
              alias: "Actions Min JS",
              name: "revolution.extensions.actions.min.js",
              min_core: "5.4.5",
              version: "2.1.0"
          };
  
  
  ///////////////////////////////////////////
  // 	EXTENDED FUNCTIONS AVAILABLE GLOBAL  //
  ///////////////////////////////////////////
      jQuery.extend(true, _R, {
          checkActions: function (_nc, opt, as) {
  
              if (_R.compare_version(extension).check === "stop") return false;
  
              checkActions_intern(_nc, opt, as);
  
          }
  
      });
  
  //////////////////////////////////////////
  //	-	INITIALISATION OF ACTIONS 	-	//
  //////////////////////////////////////////
      var checkActions_intern = function (_nc, opt, as) {
  
          if (as)
              jQuery.each(as, function (i, a) {
  
                  a.delay = parseInt(a.delay, 0) / 1000;
                  _nc.addClass("tp-withaction");
  
                  // LISTEN TO ESC TO EXIT FROM FULLSCREEN
                  if (!opt.fullscreen_esclistener) {
                      if (a.action == "exitfullscreen" || a.action == "togglefullscreen") {
                          jQuery(document).keyup(function (e) {
                              if (e.keyCode == 27 && jQuery('#rs-go-fullscreen').length > 0)
                                  _nc.trigger(a.event);
                          });
                          opt.fullscreen_esclistener = true;
                      }
                  }
  
                  var tnc = a.layer == "backgroundvideo" ? jQuery(".rs-background-video-layer") : a.layer == "firstvideo" ? jQuery(".tp-revslider-slidesli").find('.tp-videolayer') : jQuery("#" + a.layer);
  
  
                  // NO NEED EXTRA TOGGLE CLASS HANDLING
                  if (jQuery.inArray(a.action, ["toggleslider", "toggle_mute_video", "toggle_global_mute_video", "togglefullscreen"]) != -1) {
                      _nc.data('togglelisteners', true);
                  }
  
                  // COLLECT ALL TOGGLE TRIGGER TO CONNECT THEM WITH TRIGGERED LAYER
                  switch (a.action) {
                      case "togglevideo":
                          jQuery.each(tnc, function (i, _tnc) {
                              _tnc = jQuery(_tnc);
                              var videotoggledby = _tnc.data('videotoggledby');
                              if (videotoggledby == undefined)
                                  videotoggledby = [];
                              videotoggledby.push(_nc);
                              _tnc.data('videotoggledby', videotoggledby)
                          });
                          break;
                      case "togglelayer":
                          jQuery.each(tnc, function (i, _tnc) {
                              _tnc = jQuery(_tnc);
                              var layertoggledby = _tnc.data('layertoggledby');
                              if (layertoggledby == undefined)
                                  layertoggledby = [];
                              layertoggledby.push(_nc);
                              _tnc.data('layertoggledby', layertoggledby);
                              _tnc.data('triggered_startstatus', a.layerstatus);
  
                          });
                          break;
                      case "toggle_mute_video":
                          jQuery.each(tnc, function (i, _tnc) {
                              _tnc = jQuery(_tnc);
                              var videomutetoggledby = _tnc.data('videomutetoggledby');
                              if (videomutetoggledby == undefined)
                                  videomutetoggledby = [];
                              videomutetoggledby.push(_nc);
                              _tnc.data('videomutetoggledby', videomutetoggledby);
                          });
                          break;
                      case "toggle_global_mute_video":
                          jQuery.each(tnc, function (i, _tnc) {
                              _tnc = jQuery(_tnc);
                              var videomutetoggledby = _tnc.data('videomutetoggledby');
                              if (videomutetoggledby == undefined)
                                  videomutetoggledby = [];
                              videomutetoggledby.push(_nc);
                              _tnc.data('videomutetoggledby', videomutetoggledby);
                          });
                          break;
                      case "toggleslider":
                          if (opt.slidertoggledby == undefined) opt.slidertoggledby = [];
                          opt.slidertoggledby.push(_nc);
                          break;
                      case "togglefullscreen":
                          if (opt.fullscreentoggledby == undefined) opt.fullscreentoggledby = [];
                          opt.fullscreentoggledby.push(_nc);
                          break;
  
                  }
  
                  _nc.on(a.event, function () {
  
                      if (a.event === "click" && _nc.hasClass("tp-temporarydisabled")) return false;
                      var tnc = a.layer == "backgroundvideo" ? jQuery(".active-revslide .slotholder .rs-background-video-layer") : a.layer == "firstvideo" ? jQuery(".active-revslide .tp-videolayer").first() : jQuery("#" + a.layer);
  
                      if (a.action == "stoplayer" || a.action == "togglelayer" || a.action == "startlayer") {
  
                          if (tnc.length > 0) {
                              var _ = tnc.data();
                              if (_.clicked_time_stamp !== undefined) {
                                  if ((new Date().getTime() - _.clicked_time_stamp) > 150) {
                                      clearTimeout(_.triggerdelayIn);
                                      clearTimeout(_.triggerdelayOut);
                                  }
                              }
                              _.clicked_time_stamp = new Date().getTime();
  
                              if (a.action == "startlayer" || (a.action == "togglelayer" && tnc.data('animdirection') != "in")) {
                                  _.animdirection = "in";
                                  _.triggerstate = "on";
                                  _R.toggleState(_.layertoggledby);
  
                                  if (_R.playAnimationFrame) {
                                      clearTimeout(_.triggerdelayIn);
                                      _.triggerdelayIn = setTimeout(function () {
                                          _R.playAnimationFrame({
                                              caption: tnc,
                                              opt: opt,
                                              frame: "frame_0",
                                              triggerdirection: "in",
                                              triggerframein: "frame_0",
                                              triggerframeout: "frame_999"
                                          });
                                      }, (a.delay * 1000));
                                  }
                              } else if (a.action == "stoplayer" || (a.action == "togglelayer" && tnc.data('animdirection') != "out")) {
                                  _.animdirection = "out";
                                  _.triggered = true;
                                  _.triggerstate = "off";
                                  if (_R.stopVideo) _R.stopVideo(tnc, opt);
                                  _R.unToggleState(_.layertoggledby);
                                  if (_R.endMoveCaption) {
                                      clearTimeout(_.triggerdelayOut);
                                      _.triggerdelayOut = setTimeout(function () {
                                          _R.playAnimationFrame({
                                              caption: tnc,
                                              opt: opt,
                                              frame: "frame_999",
                                              triggerdirection: "out",
                                              triggerframein: "frame_0",
                                              triggerframeout: "frame_999"
                                          });
                                      }, (a.delay * 1000));
                                  }
                              }
                          }
                      } else {
  
                          if (_ISM && (a.action == 'playvideo' || a.action == 'stopvideo' || a.action == 'togglevideo' || a.action == 'mutevideo' || a.action == 'unmutevideo' || a.action == 'toggle_mute_video' || a.action == 'toggle_global_mute_video')) {
                              actionSwitches(tnc, opt, a, _nc);
                          } else {
                              a.delay = a.delay === "NaN" || a.delay === NaN ? 0 : a.delay;
                              punchgs.TweenLite.delayedCall(a.delay, function () {
                                  actionSwitches(tnc, opt, a, _nc);
                              }, [tnc, opt, a, _nc]);
                          }
                      }
                  });
                  switch (a.action) {
                      case "togglelayer":
                      case "startlayer":
                      case "playlayer":
                      case "stoplayer":
  
                          var tnc = jQuery("#" + a.layer),
                              d = tnc.data();
  
                          if (tnc.length > 0 && d !== undefined && ((d.frames !== undefined && d.frames[0].delay != "bytrigger") || (d.frames === undefined && d.start !== "bytrigger"))) {
                              d.triggerstate = "on";
                              //d.animdirection="in";
  
                          }
                          break;
                  }
              })
      };
  
      function getScrollRoot() {
          var html = document.documentElement, body = document.body,
              cacheTop = ((typeof window.pageYOffset !== "undefined") ? window.pageYOffset : null) || body.scrollTop || html.scrollTop, // cache the window's current scroll position
              root;
          html.scrollTop = body.scrollTop = cacheTop + (cacheTop > 0) ? -1 : 1;
          root = (html.scrollTop !== cacheTop) ? html : body;
          root.scrollTop = cacheTop;
          return root;
      }
  
  
      var actionSwitches = function (tnc, opt, a, _nc) {
          switch (a.action) {
              case "scrollbelow":
  
                  a.speed = a.speed !== undefined ? a.speed : 400;
                  a.ease = a.ease !== undefined ? a.ease : punchgs.Power2.easeOut;
  
                  _nc.addClass("tp-scrollbelowslider");
                  _nc.data('scrolloffset', a.offset);
                  _nc.data('scrolldelay', a.delay);
                  _nc.data('scrollspeed', a.speed);
                  _nc.data('scrollease', a.ease);
  
                  var off = getOffContH(opt.fullScreenOffsetContainer) || 0,
                      aof = parseInt(a.offset, 0) || 0;
                  off = off - aof || 0;
                  opt.scrollRoot = jQuery(document);
                  var sobj = {_y: opt.scrollRoot.scrollTop()};
                  punchgs.TweenLite.to(sobj, a.speed / 1000, {
                      _y: (opt.c.offset().top + (jQuery(opt.li[0]).height()) - off),
                      ease: a.ease,
                      onUpdate: function () {
                          opt.scrollRoot.scrollTop(sobj._y)
                      }
                  });
                  break;
              case "callback":
                  eval(a.callback);
                  break;
              case "jumptoslide":
                  switch (a.slide.toLowerCase()) {
                      case "+1":
                      case "next":
                          opt.sc_indicator = "arrow";
                          _R.callingNewSlide(opt.c, 1);
                          break;
                      case "previous":
                      case "prev":
                      case "-1":
                          opt.sc_indicator = "arrow";
                          _R.callingNewSlide(opt.c, -1);
                          break;
                      default:
                          var ts = jQuery.isNumeric(a.slide) ? parseInt(a.slide, 0) : a.slide;
                          _R.callingNewSlide(opt.c, ts);
                          break;
                  }
                  break;
              case "simplelink":
                  window.open(a.url, a.target);
                  break;
              case "toggleslider":
                  opt.noloopanymore = 0;
                  if (opt.sliderstatus == "playing") {
                      opt.c.revpause();
                      opt.forcepause_viatoggle = true;
                      _R.unToggleState(opt.slidertoggledby);
                  }
                  else {
                      opt.forcepause_viatoggle = false;
                      opt.c.revresume();
                      _R.toggleState(opt.slidertoggledby);
                  }
                  break;
              case "pauseslider":
                  opt.c.revpause();
                  _R.unToggleState(opt.slidertoggledby);
                  break;
              case "playslider":
                  opt.noloopanymore = 0;
                  opt.c.revresume();
                  _R.toggleState(opt.slidertoggledby);
                  break;
              case "playvideo":
  
                  if (tnc.length > 0)
                      _R.playVideo(tnc, opt);
                  break;
              case "stopvideo":
                  if (tnc.length > 0)
                      if (_R.stopVideo) _R.stopVideo(tnc, opt);
                  break;
              case "togglevideo":
                  if (tnc.length > 0)
                      if (!_R.isVideoPlaying(tnc, opt))
                          _R.playVideo(tnc, opt);
                      else if (_R.stopVideo) _R.stopVideo(tnc, opt);
                  break;
              case "mutevideo":
                  if (tnc.length > 0)
                      _R.muteVideo(tnc, opt);
                  break;
              case "unmutevideo":
                  if (tnc.length > 0)
                      if (_R.unMuteVideo) _R.unMuteVideo(tnc, opt);
                  break;
              case "toggle_mute_video":
  
                  if (tnc.length > 0)
                      if (_R.isVideoMuted(tnc, opt)) {
                          _R.unMuteVideo(tnc, opt);
                      } else {
                          if (_R.muteVideo) _R.muteVideo(tnc, opt);
                      }
                  _nc.toggleClass('rs-toggle-content-active');
                  break;
              case "toggle_global_mute_video":
                  if (opt.globalmute === true) {
                      opt.globalmute = false;
                      if (opt.playingvideos != undefined && opt.playingvideos.length > 0) {
                          jQuery.each(opt.playingvideos, function (i, _nc) {
                              if (_R.unMuteVideo) _R.unMuteVideo(_nc, opt);
                          });
                      }
  
                  } else {
                      opt.globalmute = true;
                      if (opt.playingvideos != undefined && opt.playingvideos.length > 0) {
                          jQuery.each(opt.playingvideos, function (i, _nc) {
                              if (_R.muteVideo) _R.muteVideo(_nc, opt);
                          });
                      }
                  }
                  _nc.toggleClass('rs-toggle-content-active');
                  break;
              case "simulateclick":
                  if (tnc.length > 0) tnc.click();
                  break;
              case "toggleclass":
                  if (tnc.length > 0)
                      if (!tnc.hasClass(a.classname))
                          tnc.addClass(a.classname);
                      else
                          tnc.removeClass(a.classname);
                  break;
              case "gofullscreen":
              case "exitfullscreen":
              case "togglefullscreen":
  
                  if (jQuery('.rs-go-fullscreen').length > 0 && (a.action == "togglefullscreen" || a.action == "exitfullscreen")) {
                      jQuery('.rs-go-fullscreen').removeClass("rs-go-fullscreen");
                      var gf = opt.c.closest('.forcefullwidth_wrapper_tp_banner').length > 0 ? opt.c.closest('.forcefullwidth_wrapper_tp_banner') : opt.c.closest('.rev_slider_wrapper');
                      opt.minHeight = opt.oldminheight;
                      opt.infullscreenmode = false;
                      opt.c.revredraw();
                      jQuery(window).trigger("resize");
                      _R.unToggleState(opt.fullscreentoggledby);
  
                  } else if (jQuery('.rs-go-fullscreen').length == 0 && (a.action == "togglefullscreen" || a.action == "gofullscreen")) {
                      var gf = opt.c.closest('.forcefullwidth_wrapper_tp_banner').length > 0 ? opt.c.closest('.forcefullwidth_wrapper_tp_banner') : opt.c.closest('.rev_slider_wrapper');
                      gf.addClass("rs-go-fullscreen");
                      opt.oldminheight = opt.minHeight;
                      opt.minHeight = jQuery(window).height();
                      opt.infullscreenmode = true;
                      opt.c.revredraw();
                      jQuery(window).trigger("resize");
                      _R.toggleState(opt.fullscreentoggledby);
                  }
  
                  break;
              default:
                  var obj = {};
                  obj.event = a;
                  obj.layer = _nc;
                  opt.c.trigger('layeraction', [obj]);
                  break;
          }
      };
  
      var getOffContH = function (c) {
          if (c == undefined) return 0;
          if (c.split(',').length > 1) {
              var oc = c.split(","),
                  a = 0;
              if (oc)
                  jQuery.each(oc, function (index, sc) {
                      if (jQuery(sc).length > 0)
                          a = a + jQuery(sc).outerHeight(true);
                  });
              return a;
          } else {
              return jQuery(c).height();
          }
          return 0;
      }
  
  })(jQuery);