text: /********************************************
   * REVOLUTION 5.4.6.5 EXTENSION - ACTIONS
   * @version: 2.1.1 (22.11.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);