| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386 |
- /********************************************
- * 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 = new Array();
- 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 = new Array();
- 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 = new Array();
- 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 = new Array();
- videomutetoggledby.push(_nc);
- _tnc.data('videomutetoggledby',videomutetoggledby);
- });
- break;
- case "toggleslider":
- if (opt.slidertoggledby == undefined) opt.slidertoggledby = new Array();
- opt.slidertoggledby.push(_nc);
- break;
- case "togglefullscreen":
- if (opt.fullscreentoggledby == undefined) opt.fullscreentoggledby = new Array();
- 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);
|