policybot/fassets/rs-plugin/js/jquery.themepunch.revolution.js
2021-11-30 16:26:55 +05:30

2883 lines
90 KiB
JavaScript

/**************************************************************************
* jquery.themepunch.revolution.js - jQuery Plugin for Revolution Slider
* @version: 5.2.5.3 (30.05.2016)
* @requires jQuery v1.7 or later (tested on 1.9)
* @author ThemePunch
**************************************************************************/
(function(jQuery,undefined){
"use strict";
jQuery.fn.extend({
revolution: function(options) {
// SET DEFAULT VALUES OF ITEM //
var defaults = {
delay:9000,
responsiveLevels:4064, // Single or Array for Responsive Levels i.e.: 4064 or i.e. [2048, 1024, 768, 480]
visibilityLevels:[2048,1024,778,480], // Single or Array for Responsive Visibility Levels i.e.: 4064 or i.e. [2048, 1024, 768, 480]
gridwidth:960, // Single or Array i.e. 960 or [960, 840,760,460]
gridheight:500, // Single or Array i.e. 500 or [500, 450,400,350]
minHeight:0,
autoHeight:"off",
sliderType : "standard", // standard, carousel, hero
sliderLayout : "auto", // auto, fullwidth, fullscreen
fullScreenAutoWidth:"off", // Turns the FullScreen Slider to be a FullHeight but auto Width Slider
fullScreenAlignForce:"off",
fullScreenOffsetContainer:"", // Size for FullScreen Slider minimising Calculated on the Container sizes
fullScreenOffset:"0", // Size for FullScreen Slider minimising
hideCaptionAtLimit:0, // It Defines if a caption should be shown under a Screen Resolution ( Basod on The Width of Browser)
hideAllCaptionAtLimit:0, // Hide all The Captions if Width of Browser is less then this value
hideSliderAtLimit:0, // Hide the whole slider, and stop also functions if Width of Browser is less than this value
disableProgressBar:"off", // Hides Progress Bar if is set to "on"
stopAtSlide:-1, // Stop Timer if Slide "x" has been Reached. If stopAfterLoops set to 0, then it stops already in the first Loop at slide X which defined. -1 means do not stop at any slide. stopAfterLoops has no sinn in this case.
stopAfterLoops:-1, // Stop Timer if All slides has been played "x" times. IT will stop at THe slide which is defined via stopAtSlide:x, if set to -1 slide never stop automatic
shadow:0, //0 = no Shadow, 1,2,3 = 3 Different Art of Shadows (No Shadow in Fullwidth Version !)
dottedOverlay:"none", //twoxtwo, threexthree, twoxtwowhite, threexthreewhite
startDelay:0, // Delay before the first Animation starts.
lazyType : "smart", //full, smart, single
spinner:"spinner0",
shuffle:"off", // Random Order of Slides,
viewPort:{
enable:false, // if enabled, slider wait with start or wait at first slide.
outof:"wait", // wait,pause
visible_area:"60%"
},
fallbacks:{
isJoomla:false,
panZoomDisableOnMobile:"off",
simplifyAll:"on",
nextSlideOnWindowFocus:"off",
disableFocusListener:true,
ignoreHeightChanges:"off", // off, mobile, always
ignoreHeightChangesSize:0
},
parallax : {
type : "off", // off, mouse, scroll, mouse+scroll
levels: [10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85],
origo:"enterpoint", // slidercenter or enterpoint
speed:400,
bgparallax : "off",
opacity:"on",
disable_onmobile:"off",
ddd_shadow:"on",
ddd_bgfreeze:"off",
ddd_overflow:"visible",
ddd_layer_overflow:"visible",
ddd_z_correction:65,
ddd_path:"mouse"
},
carousel : {
horizontal_align : "center",
vertical_align : "center",
infinity : "on",
space : 0,
maxVisibleItems : 3,
stretch:"off",
fadeout:"on",
maxRotation:0,
minScale:0,
vary_fade:"off",
vary_rotation:"on",
vary_scale:"off",
border_radius:"0px",
padding_top:0,
padding_bottom:0
},
navigation : {
keyboardNavigation:"off",
keyboard_direction:"horizontal", // horizontal - left/right arrows, vertical - top/bottom arrows
mouseScrollNavigation:"off", // on, off, carousel
onHoverStop:"on", // Stop Banner Timet at Hover on Slide on/off
touch:{
touchenabled:"off", // Enable Swipe Function : on/off
swipe_treshold : 75, // The number of pixels that the user must move their finger by before it is considered a swipe.
swipe_min_touches : 1, // Min Finger (touch) used for swipe
drag_block_vertical:false, // Prevent Vertical Scroll during Swipe
swipe_direction:"horizontal"
},
arrows: {
style:"",
enable:false,
hide_onmobile:false,
hide_onleave:true,
hide_delay:200,
hide_delay_mobile:1200,
hide_under:0,
hide_over:9999,
tmp:'',
rtl:false,
left : {
h_align:"left",
v_align:"center",
h_offset:20,
v_offset:0,
container:"slider",
},
right : {
h_align:"right",
v_align:"center",
h_offset:20,
v_offset:0,
container:"slider",
}
},
bullets: {
container:"slider",
rtl:false,
style:"",
enable:false,
hide_onmobile:false,
hide_onleave:true,
hide_delay:200,
hide_delay_mobile:1200,
hide_under:0,
hide_over:9999,
direction:"horizontal",
h_align:"left",
v_align:"center",
space:0,
h_offset:20,
v_offset:0,
tmp:'<span class="tp-bullet-image"></span><span class="tp-bullet-title"></span>'
},
thumbnails: {
container:"slider",
rtl:false,
style:"",
enable:false,
width:100,
height:50,
min_width:100,
wrapper_padding:2,
wrapper_color:"#f5f5f5",
wrapper_opacity:1,
tmp:'<span class="tp-thumb-image"></span><span class="tp-thumb-title"></span>',
visibleAmount:5,
hide_onmobile:false,
hide_onleave:true,
hide_delay:200,
hide_delay_mobile:1200,
hide_under:0,
hide_over:9999,
direction:"horizontal",
span:false,
position:"inner",
space:2,
h_align:"left",
v_align:"center",
h_offset:20,
v_offset:0
},
tabs: {
container:"slider",
rtl:false,
style:"",
enable:false,
width:100,
min_width:100,
height:50,
wrapper_padding:10,
wrapper_color:"#f5f5f5",
wrapper_opacity:1,
tmp:'<span class="tp-tab-image"></span>',
visibleAmount:5,
hide_onmobile:false,
hide_onleave:true,
hide_delay:200,
hide_delay_mobile:1200,
hide_under:0,
hide_over:9999,
direction:"horizontal",
span:false,
space:0,
position:"inner",
h_align:"left",
v_align:"center",
h_offset:20,
v_offset:0
}
},
extensions:"extensions/", //example extensions/ or extensions/source/
extensions_suffix:".min.js",
//addons:[{fileprefix:"revolution.addon.whiteboard",init:"initWhiteBoard",params:"opt",handel:"whiteboard"}],
debugMode:false
};
// Merge of Defaults
options = jQuery.extend(true,{},defaults, options);
return this.each(function() {
var c = jQuery(this);
// Prepare maxHeight
options.minHeight = options.minHeight!=undefined ? parseInt(options.minHeight,0) : options.minHeight;
//REMOVE SLIDES IF SLIDER IS HERO
if (options.sliderType=="hero") {
c.find('>ul>li').each(function(i) {
if (i>0) jQuery(this).remove();
})
}
options.jsFileLocation = options.jsFileLocation || getScriptLocation("themepunch.revolution.min.js");
options.jsFileLocation = options.jsFileLocation + options.extensions;
options.scriptsneeded = getNeededScripts(options,c);
options.curWinRange = 0;
options.rtl = true; //jQuery('body').hasClass("rtl");
if (options.navigation!=undefined && options.navigation.touch!=undefined)
options.navigation.touch.swipe_min_touches = options.navigation.touch.swipe_min_touches >5 ? 1 : options.navigation.touch.swipe_min_touches;
jQuery(this).on("scriptsloaded",function() {
if (options.modulesfailing ) {
c.html('<div style="margin:auto;line-height:40px;font-size:14px;color:#fff;padding:15px;background:#e74c3c;margin:20px 0px;">!! Error at loading Slider Revolution 5.0 Extrensions.'+options.errorm+'</div>').show();
return false;
}
// CHECK FOR MIGRATION
if (_R.migration!=undefined) options = _R.migration(c,options);
punchgs.force3D = true;
if (options.simplifyAll!=="on") punchgs.TweenLite.lagSmoothing(1000,16);
prepareOptions(c,options);
initSlider(c,options);
});
c.data('opt',options);
waitForScripts(c,options);
})
},
// Remove a Slide from the Slider
revremoveslide : function(sindex) {
return this.each(function() {
var container=jQuery(this);
if (container!=undefined && container.length>0 && jQuery('body').find('#'+container.attr('id')).length>0) {
var bt = container.parent().find('.tp-bannertimer'),
opt = bt.data('opt');
if (opt && opt.li.length>0) {
if (sindex>0 || sindex<=opt.li.length) {
var li = jQuery(opt.li[sindex]),
ref = li.data("index"),
nextslideafter = false;
opt.slideamount = opt.slideamount-1;
removeNavWithLiref('.tp-bullet',ref,opt);
removeNavWithLiref('.tp-tab',ref,opt);
removeNavWithLiref('.tp-thumb',ref,opt);
if (li.hasClass('active-revslide'))
nextslideafter = true;
li.remove();
opt.li = removeArray(opt.li,sindex);
if (opt.carousel && opt.carousel.slides)
opt.carousel.slides = removeArray(opt.carousel.slides,sindex)
opt.thumbs = removeArray(opt.thumbs,sindex);
if (_R.updateNavIndexes) _R.updateNavIndexes(opt);
if (nextslideafter) container.revnext();
punchgs.TweenLite.set(opt.li,{minWidth:"99%"});
punchgs.TweenLite.set(opt.li,{minWidth:"100%"});
}
}
}
});
},
// Add a New Call Back to some Module
revaddcallback: function(callback) {
return this.each(function() {
var container=jQuery(this);
if (container!=undefined && container.length>0 && jQuery('body').find('#'+container.attr('id')).length>0) {
var bt = container.parent().find('.tp-bannertimer'),
opt = bt.data('opt');
if (opt.callBackArray === undefined)
opt.callBackArray = new Array();
opt.callBackArray.push(callback);
}
})
},
// Get Current Parallax Proc
revgetparallaxproc : function() {
var container=jQuery(this);
if (container!=undefined && container.length>0 && jQuery('body').find('#'+container.attr('id')).length>0) {
var bt = container.parent().find('.tp-bannertimer'),
opt = bt.data('opt');
return opt.scrollproc;
}
},
// ENABLE DEBUG MODE
revdebugmode: function() {
return this.each(function() {
var container=jQuery(this);
if (container!=undefined && container.length>0 && jQuery('body').find('#'+container.attr('id')).length>0) {
var bt = container.parent().find('.tp-bannertimer'),
opt = bt.data('opt');
opt.debugMode = true;
containerResized(container,opt);
}
})
},
// METHODE SCROLL
revscroll: function(oy) {
return this.each(function() {
var container=jQuery(this);
if (container!=undefined && container.length>0 && jQuery('body').find('#'+container.attr('id')).length>0)
jQuery('body,html').animate({scrollTop:(container.offset().top+(container.height())-oy)+"px"},{duration:400});
})
},
// METHODE PAUSE
revredraw: function(oy) {
return this.each(function() {
var container=jQuery(this);
if (container!=undefined && container.length>0 && jQuery('body').find('#'+container.attr('id')).length>0) {
var bt = container.parent().find('.tp-bannertimer');
var opt = bt.data('opt');
containerResized(container,opt);
}
})
},
// METHODE PAUSE
revkill: function(oy) {
var self = this,
container=jQuery(this);
punchgs.TweenLite.killDelayedCallsTo(_R.showHideNavElements);
if (_R.endMoveCaption)
if (opt.endtimeouts && opt.endtimeouts.length>0)
jQuery.each(opt.endtimeouts,function(i,timeo) { clearTimeout(timeo);});
//punchgs.TweenLite.killDelayedCallsTo(_R.endMoveCaption);
if (container!=undefined && container.length>0 && jQuery('body').find('#'+container.attr('id')).length>0) {
container.data('conthover',1);
container.data('conthover-changed',1);
container.trigger('revolution.slide.onpause');
var bt = container.parent().find('.tp-bannertimer'),
opt = bt.data('opt');
opt.tonpause = true;
container.trigger('stoptimer');
punchgs.TweenLite.killTweensOf(container.find('*'),false);
punchgs.TweenLite.killTweensOf(container,false);
container.unbind('hover, mouseover, mouseenter,mouseleave, resize');
var resizid = "resize.revslider-"+container.attr('id');
jQuery(window).off(resizid);
container.find('*').each(function() {
var el = jQuery(this);
el.unbind('on, hover, mouseenter,mouseleave,mouseover, resize,restarttimer, stoptimer');
el.off('on, hover, mouseenter,mouseleave,mouseover, resize');
el.data('mySplitText',null);
el.data('ctl',null);
if (el.data('tween')!=undefined)
el.data('tween').kill();
if (el.data('kenburn')!=undefined)
el.data('kenburn').kill();
if (el.data('timeline_out')!=undefined)
el.data('timeline_out').kill();
if (el.data('timeline')!=undefined)
el.data('timeline').kill();
el.remove();
el.empty();
el=null;
})
punchgs.TweenLite.killTweensOf(container.find('*'),false);
punchgs.TweenLite.killTweensOf(container,false);
bt.remove();
try{container.closest('.forcefullwidth_wrapper_tp_banner').remove();} catch(e) {}
try{container.closest('.rev_slider_wrapper').remove()} catch(e) {}
try{container.remove();} catch(e) {}
container.empty();
container.html();
container = null;
opt = null;
delete(self.c);
delete(self.opt);
return true;
} else {
return false;
}
},
// METHODE PAUSE
revpause: function() {
return this.each(function() {
var c=jQuery(this);
if (c!=undefined && c.length>0 && jQuery('body').find('#'+c.attr('id')).length>0) {
c.data('conthover',1);
c.data('conthover-changed',1);
c.trigger('revolution.slide.onpause');
var bt = c.parent().find('.tp-bannertimer');
var opt = bt.data('opt');
opt.tonpause = true;
c.trigger('stoptimer');
}
})
},
// METHODE RESUME
revresume: function() {
return this.each(function() {
var c=jQuery(this);
if (c!=undefined && c.length>0 && jQuery('body').find('#'+c.attr('id')).length>0) {
c.data('conthover',0);
c.data('conthover-changed',1);
c.trigger('revolution.slide.onresume');
var bt = c.parent().find('.tp-bannertimer');
var opt = bt.data('opt');
opt.tonpause = false;
c.trigger('starttimer');
}
})
},
revstart: function() {
//return this.each(function() {
var c=jQuery(this);
if (c!=undefined && c.length>0 && jQuery('body').find('#'+c.attr('id')).length>0 && c.data('opt')) {
if (!c.data('opt')["sliderisrunning"]) {
runSlider(c,c.data('opt'));
return true;
}
else {
console.log("Slider Is Running Already");
return false;
}
}
//})
},
// METHODE NEXT
revnext: function() {
return this.each(function() {
// CATCH THE CONTAINER
var c=jQuery(this);
if (c!=undefined && c.length>0 && jQuery('body').find('#'+c.attr('id')).length>0) {
var bt = c.parent().find('.tp-bannertimer'),
opt = bt.data('opt');
_R.callingNewSlide(opt,c,1);
}
})
},
// METHODE RESUME
revprev: function() {
return this.each(function() {
// CATCH THE CONTAINER
var c=jQuery(this);
if (c!=undefined && c.length>0 && jQuery('body').find('#'+c.attr('id')).length>0) {
var bt = c.parent().find('.tp-bannertimer'),
opt = bt.data('opt');
_R.callingNewSlide(opt,c,-1);
}
})
},
// METHODE LENGTH
revmaxslide: function() {
// CATCH THE CONTAINER
return jQuery(this).find('.tp-revslider-mainul >li').length;
},
// METHODE CURRENT
revcurrentslide: function() {
// CATCH THE CONTAINER
var c=jQuery(this);
if (c!=undefined && c.length>0 && jQuery('body').find('#'+c.attr('id')).length>0) {
var bt = c.parent().find('.tp-bannertimer');
var opt = bt.data('opt');
return parseInt(opt.act,0)+1;
}
},
// METHODE CURRENT
revlastslide: function() {
// CATCH THE CONTAINER
return jQuery(this).find('.tp-revslider-mainul >li').length;
},
// METHODE JUMP TO SLIDE
revshowslide: function(slide) {
return this.each(function() {
// CATCH THE CONTAINER
var c=jQuery(this);
if (c!=undefined && c.length>0 && jQuery('body').find('#'+c.attr('id')).length>0) {
var bt = c.parent().find('.tp-bannertimer'),
opt = bt.data('opt');
_R.callingNewSlide(opt,c,"to"+(slide-1));
}
})
},
revcallslidewithid: function(slide) {
return this.each(function() {
// CATCH THE CONTAINER
var c=jQuery(this);
if (c!=undefined && c.length>0 && jQuery('body').find('#'+c.attr('id')).length>0) {
var bt = c.parent().find('.tp-bannertimer'),
opt = bt.data('opt');
_R.callingNewSlide(opt,c,slide);
}
})
}
});
//////////////////////////////////////////////////////////////
// - REVOLUTION FUNCTION EXTENSIONS FOR GLOBAL USAGE - //
//////////////////////////////////////////////////////////////
var _R = jQuery.fn.revolution;
jQuery.extend(true, _R, {
simp : function(a,b,basic) {
var c = Math.abs(a) - (Math.floor(Math.abs(a / b))*b);
if (basic)
return c;
else
return a<0 ? -1*c : c;
},
// - IS IOS VERSION OLDER THAN 5 ??
iOSVersion : function() {
var oldios = false;
if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)) || (navigator.userAgent.match(/iPad/i))) {
if (navigator.userAgent.match(/OS 4_\d like Mac OS X/i)) {
oldios = true;
}
} else {
oldios = false;
}
return oldios;
},
// - CHECK IF BROWSER IS IE -
isIE : function( version, comparison ){
var $div = jQuery('<div style="display:none;"/>').appendTo(jQuery('body'));
$div.html('<!--[if '+(comparison||'')+' IE '+(version||'')+']><a>&nbsp;</a><![endif]-->');
var ieTest = $div.find('a').length;
$div.remove();
return ieTest;
},
// - IS MOBILE ??
is_mobile : function() {
var agents = ['android', 'webos', 'iphone', 'ipad', 'blackberry','Android', 'webos', ,'iPod', 'iPhone', 'iPad', 'Blackberry', 'BlackBerry'];
var ismobile=false;
for(var i in agents) {
if (navigator.userAgent.split(agents[i]).length>1) {
ismobile = true;
}
}
return ismobile;
},
// - CALL BACK HANDLINGS - //
callBackHandling : function(opt,type,position) {
try{
if (opt.callBackArray)
jQuery.each(opt.callBackArray,function(i,c) {
if (c) {
if (c.inmodule && c.inmodule === type)
if (c.atposition && c.atposition === position)
if (c.callback)
c.callback.call();
}
});
} catch(e) {
console.log("Call Back Failed");
}
},
get_browser : function(){
var N=navigator.appName, ua=navigator.userAgent, tem;
var M=ua.match(/(opera|chrome|safari|firefox|msie)\/?\s*(\.?\d+(\.\d+)*)/i);
if(M && (tem= ua.match(/version\/([\.\d]+)/i))!= null) M[2]= tem[1];
M=M? [M[1], M[2]]: [N, navigator.appVersion, '-?'];
return M[0];
},
get_browser_version : function(){
var N=navigator.appName, ua=navigator.userAgent, tem;
var M=ua.match(/(opera|chrome|safari|firefox|msie)\/?\s*(\.?\d+(\.\d+)*)/i);
if(M && (tem= ua.match(/version\/([\.\d]+)/i))!= null) M[2]= tem[1];
M=M? [M[1], M[2]]: [N, navigator.appVersion, '-?'];
return M[1];
},
// GET THE HORIZONTAL OFFSET OF SLIDER BASED ON THE THU`MBNAIL AND TABS LEFT AND RIGHT SIDE
getHorizontalOffset : function(container,side) {
var thumbloff = gWiderOut(container,'.outer-left'),
thumbroff = gWiderOut(container,'.outer-right');
switch (side) {
case "left":
return thumbloff;
break;
case "right":
return thumbroff;
break;
case "both":
return thumbloff+thumbroff;
break;
}
},
// - CALLING THE NEW SLIDE - //
callingNewSlide : function(opt,container,direction) {
var aindex = container.find('.next-revslide').length>0 ? container.find('.next-revslide').index() : container.find('.processing-revslide').length>0 ? container.find('.processing-revslide').index() : container.find('.active-revslide').index(),
nindex = 0;
container.find('.next-revslide').removeClass("next-revslide");
// IF WE ARE ON AN INVISIBLE SLIDE CURRENTLY
if (container.find('.active-revslide').hasClass("tp-invisible-slide"))
aindex = opt.last_shown_slide;
// SET NEXT DIRECTION
if (direction && jQuery.isNumeric(direction) || direction.match(/to/g)) {
if (direction===1 || direction === -1) {
nindex = aindex + direction;
nindex = nindex<0 ? opt.slideamount-1 : nindex>=opt.slideamount ? 0 : nindex;
} else {
direction=jQuery.isNumeric(direction) ? direction : parseInt(direction.split("to")[1],0);
nindex = direction<0 ? 0 : direction>opt.slideamount-1 ? opt.slideamount-1 : direction;
}
container.find('.tp-revslider-slidesli:eq('+nindex+')').addClass("next-revslide");
} else
if (direction) {
container.find('.tp-revslider-slidesli').each(function() {
var li=jQuery(this);
if (li.data('index')===direction) li.addClass("next-revslide");
})
}
nindex = container.find('.next-revslide').index();
container.trigger("revolution.nextslide.waiting");
if ((aindex===nindex && aindex === opt.last_shown_slide) || (nindex !== aindex && nindex!=-1))
swapSlide(container,opt);
else
container.find('.next-revslide').removeClass("next-revslide");
},
slotSize : function(img,opt) {
opt.slotw=Math.ceil(opt.width/opt.slots);
if (opt.sliderLayout=="fullscreen")
opt.sloth=Math.ceil(jQuery(window).height()/opt.slots);
else
opt.sloth=Math.ceil(opt.height/opt.slots);
if (opt.autoHeight=="on" && img!==undefined && img!=="")
opt.sloth=Math.ceil(img.height()/opt.slots);
},
setSize : function(opt) {
var ofh = (opt.top_outer || 0) + (opt.bottom_outer || 0),
cpt = parseInt((opt.carousel.padding_top||0),0),
cpb = parseInt((opt.carousel.padding_bottom||0),0),
maxhei = opt.gridheight[opt.curWinRange];
opt.paddings = opt.paddings === undefined ? {top:(parseInt(opt.c.parent().css("paddingTop"),0) || 0), bottom:(parseInt(opt.c.parent().css("paddingBottom"),0) || 0)} : opt.paddings;
maxhei = maxhei<opt.minHeight ? opt.minHeight : maxhei;
if (opt.sliderLayout=="fullwidth" && opt.autoHeight=="off") punchgs.TweenLite.set(opt.c,{maxHeight:maxhei+"px"});
opt.c.css({marginTop:cpt,marginBottom:cpb});
opt.width=opt.ul.width();
opt.height=opt.ul.height();
setScale(opt);
opt.height = Math.round(opt.gridheight[opt.curWinRange] * (opt.width/opt.gridwidth[opt.curWinRange]));
if (opt.height>opt.gridheight[opt.curWinRange] && opt.autoHeight!="on") opt.height=opt.gridheight[opt.curWinRange];
if (opt.sliderLayout=="fullscreen" || opt.infullscreenmode) {
opt.height = opt.bw * opt.gridheight[opt.curWinRange];
var cow = opt.c.parent().width();
var coh = jQuery(window).height();
if (opt.fullScreenOffsetContainer!=undefined) {
try{
var offcontainers = opt.fullScreenOffsetContainer.split(",");
if (offcontainers)
jQuery.each(offcontainers,function(index,searchedcont) {
coh = jQuery(searchedcont).length>0 ? coh - jQuery(searchedcont).outerHeight(true) : coh;
});
} catch(e) {}
try{
if (opt.fullScreenOffset.split("%").length>1 && opt.fullScreenOffset!=undefined && opt.fullScreenOffset.length>0)
coh = coh - (jQuery(window).height()* parseInt(opt.fullScreenOffset,0)/100);
else
if (opt.fullScreenOffset!=undefined && opt.fullScreenOffset.length>0)
coh = coh - parseInt(opt.fullScreenOffset,0);
} catch(e) {}
}
coh = coh<opt.minHeight ? opt.minHeight : coh;
coh = coh - ofh;
opt.c.parent().height(coh);
opt.c.closest('.rev_slider_wrapper').height(coh);
opt.c.css({'height':'100%'});
opt.height=coh;
if (opt.minHeight!=undefined && opt.height<opt.minHeight)
opt.height = opt.minHeight;
} else {
if (opt.minHeight!=undefined && opt.height<opt.minHeight)
opt.height = opt.minHeight;
opt.c.height(opt.height);
}
var si = { height:(cpt+cpb+ofh+opt.height+opt.paddings.top+opt.paddings.bottom)};
opt.c.closest('.forcefullwidth_wrapper_tp_banner').find('.tp-fullwidth-forcer').css(si);
opt.c.closest('.rev_slider_wrapper').css(si);
setScale(opt);
},
enterInViewPort : function(opt) {
// START COUNTER IF VP ENTERED, AND COUNTDOWN WAS NOT ON YET
if (opt.waitForCountDown) {
countDown(opt.c,opt);
opt.waitForCountDown=false;
}
// START FIRST SLIDE IF NOT YET STARTED AND VP ENTERED
if (opt.waitForFirstSlide) {
swapSlide(opt.c,opt);
opt.waitForFirstSlide=false;
}
if (opt.sliderlaststatus == "playing" || opt.sliderlaststatus==undefined) {
opt.c.trigger("starttimer");
}
if (opt.lastplayedvideos != undefined && opt.lastplayedvideos.length>0) {
jQuery.each(opt.lastplayedvideos,function(i,_nc) {
_R.playVideo(_nc,opt);
});
}
},
leaveViewPort : function(opt) {
opt.sliderlaststatus = opt.sliderstatus;
opt.c.trigger("stoptimer");
if (opt.playingvideos != undefined && opt.playingvideos.length>0) {
opt.lastplayedvideos = jQuery.extend(true,[],opt.playingvideos);
if (opt.playingvideos)
jQuery.each(opt.playingvideos,function(i,_nc) {
opt.leaveViewPortBasedStop = true;
if (_R.stopVideo) _R.stopVideo(_nc,opt);
});
}
},
unToggleState : function(a) {
if (a!=undefined && a.length>0)
jQuery.each(a,function(i,layer) {
layer.removeClass("rs-toggle-content-active");
});
},
toggleState : function(a) {
if (a!=undefined && a.length>0)
jQuery.each(a,function(i,layer) {
layer.addClass("rs-toggle-content-active");
});
},
lastToggleState : function(a) {
var state = 0;
if (a!=undefined && a.length>0)
jQuery.each(a,function(i,layer) {
state = layer.hasClass("rs-toggle-content-active");
});
return state;
}
});
var _ISM = _R.is_mobile();
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
var removeArray = function(arr,i) {
var newarr = [];
jQuery.each(arr,function(a,b) {
if (a!=i) newarr.push(b);
})
return newarr;
}
var removeNavWithLiref = function(a,ref,opt) {
opt.c.find(a).each(function() {
var a = jQuery(this);
if (a.data('liref')===ref)
a.remove();
})
}
var lAjax = function(s,o) {
if (jQuery('body').data(s)) return false;
if (o.filesystem) {
if (o.errorm===undefined)
o.errorm = "<br>Local Filesystem Detected !<br>Put this to your header:";
console.warn('Local Filesystem detected !');
o.errorm = o.errorm+'<br>&lt;script type="text/javascript" src="'+o.jsFileLocation+s+o.extensions_suffix+'"&gt;&lt;/script&gt;';
console.warn(o.jsFileLocation+s+o.extensions_suffix+' could not be loaded !');
console.warn('Please use a local Server or work online or make sure that you load all needed Libraries manually in your Document.');
console.log(" ");
o.modulesfailing = true;
return false;
}
jQuery.ajax({
url:o.jsFileLocation+s+o.extensions_suffix,
'dataType':'script',
'cache':true,
"error":function(e) {
console.warn("Slider Revolution 5.0 Error !")
console.error("Failure at Loading:"+s+o.extensions_suffix+" on Path:"+o.jsFileLocation)
console.info(e);
}
});
jQuery('body').data(s,true);
}
var getNeededScripts = function(o,c) {
var n = new Object(),
_n = o.navigation;
n.kenburns = false;
n.parallax = false;
n.carousel = false;
n.navigation = false;
n.videos = false;
n.actions = false;
n.layeranim = false;
n.migration = false;
// MIGRATION EXTENSION
if (!c.data('version') || !c.data('version').toString().match(/5./gi)) {
n.kenburns = true;
n.parallax = true;
n.carousel = false;
n.navigation = true;
n.videos = true;
n.actions = true;
n.layeranim = true;
n.migration = true;
}
else {
// KEN BURN MODUL
c.find('img').each(function(){
if (jQuery(this).data('kenburns')=="on") n.kenburns = true;
});
// NAVIGATION EXTENSTION
if (o.sliderType =="carousel" || _n.keyboardNavigation=="on" || _n.mouseScrollNavigation=="on" || _n.touch.touchenabled=="on" || _n.arrows.enable || _n.bullets.enable || _n.thumbnails.enable || _n.tabs.enable )
n.navigation = true;
// LAYERANIM, VIDEOS, ACTIONS EXTENSIONS
c.find('.tp-caption, .tp-static-layer, .rs-background-video-layer').each(function(){
var _nc = jQuery(this);
if ((_nc.data('ytid')!=undefined || _nc.find('iframe').length>0 && _nc.find('iframe').attr('src').toLowerCase().indexOf('youtube')>0))
n.videos = true;
if ((_nc.data('vimeoid')!=undefined || _nc.find('iframe').length>0 && _nc.find('iframe').attr('src').toLowerCase().indexOf('vimeo')>0))
n.videos = true;
if (_nc.data('actions')!==undefined)
n.actions = true;
n.layeranim = true;
});
c.find('li').each(function() {
if (jQuery(this).data('link') && jQuery(this).data('link')!=undefined) {
n.layeranim = true;
n.actions = true;
}
})
// VIDEO EXTENSION
if (!n.videos && (c.find('.rs-background-video-layer').length>0 || c.find(".tp-videolayer").length>0 || c.find(".tp-audiolayer") || c.find('iframe').length>0 || c.find('video').length>0))
n.videos = true;
// VIDEO EXTENSION
if (o.sliderType =="carousel")
n.carousel = true;
if (o.parallax.type!=="off" || o.viewPort.enable || o.viewPort.enable=="true")
n.parallax = true;
}
if (o.sliderType=="hero") {
n.carousel = false;
n.navigation = false;
}
if (window.location.href.match(/file:/gi)) {
n.filesystem = true;
o.filesystem = true;
}
// LOAD THE NEEDED LIBRARIES
if (n.videos && typeof _R.isVideoPlaying=='undefined') lAjax('revolution.extension.video',o);
if (n.carousel && typeof _R.prepareCarousel=='undefined') lAjax('revolution.extension.carousel',o);
if (!n.carousel && typeof _R.animateSlide=='undefined') lAjax('revolution.extension.slideanims',o);
if (n.actions && typeof _R.checkActions=='undefined') lAjax('revolution.extension.actions',o);
if (n.layeranim && typeof _R.handleStaticLayers=='undefined') lAjax('revolution.extension.layeranimation',o);
if (n.kenburns && typeof _R.stopKenBurn=='undefined') lAjax('revolution.extension.kenburn',o);
if (n.navigation && typeof _R.createNavigation=='undefined') lAjax('revolution.extension.navigation',o);
if (n.migration && typeof _R.migration=='undefined') lAjax('revolution.extension.migration',o);
if (n.parallax && typeof _R.checkForParallax=='undefined') lAjax('revolution.extension.parallax',o);
if (o.addons!=undefined && o.addons.length>0) {
jQuery.each(o.addons, function(i,obj) {
if (typeof obj === "object" && obj.fileprefix!=undefined)
lAjax(obj.fileprefix,o);
})
}
return n;
}
///////////////////////////////////
// - WAIT FOR SCRIPT LOADS - //
///////////////////////////////////
var waitForScripts = function(c,o) {
// CHECK KEN BURN DEPENDENCIES
var addonsloaded = true,
n = o.scriptsneeded;
// CHECK FOR ADDONS
if (o.addons!=undefined && o.addons.length>0) {
jQuery.each(o.addons, function(i,obj) {
if (typeof obj === "object" && obj.init!=undefined) {
if (_R[obj.init]===undefined) addonsloaded = false;
}
})
}
if (n.filesystem ||
(typeof punchgs !== 'undefined' &&
(addonsloaded) &&
(!n.kenburns || (n.kenburns && typeof _R.stopKenBurn !== 'undefined')) &&
(!n.navigation || (n.navigation && typeof _R.createNavigation !== 'undefined')) &&
(!n.carousel || (n.carousel && typeof _R.prepareCarousel !== 'undefined')) &&
(!n.videos || (n.videos && typeof _R.resetVideo !== 'undefined')) &&
(!n.actions || (n.actions && typeof _R.checkActions !== 'undefined')) &&
(!n.layeranim || (n.layeranim && typeof _R.handleStaticLayers !== 'undefined')) &&
(!n.migration || (n.migration && typeof _R.migration !== 'undefined')) &&
(!n.parallax || (n.parallax && typeof _R.checkForParallax !== 'undefined')) &&
(n.carousel || (!n.carousel && typeof _R.animateSlide !== 'undefined'))
))
c.trigger("scriptsloaded");
else
setTimeout(function() {
waitForScripts(c,o);
},50);
}
//////////////////////////////////
// - GET SCRIPT LOCATION - //
//////////////////////////////////
var getScriptLocation = function(a) {
var srcexp = new RegExp("themepunch.revolution.min.js","gi"),
ret = "";
jQuery("script").each(function() {
var src = jQuery(this).attr("src");
if (src && src.match(srcexp))
ret = src;
});
ret = ret.replace('jquery.themepunch.revolution.min.js', '');
ret = ret.replace('jquery.themepunch.revolution.js', '');
ret = ret.split("?")[0];
return ret;
}
//////////////////////////////////////////
// - ADVANCED RESPONSIVE LEVELS - //
//////////////////////////////////////////
var setCurWinRange = function(opt,vis) {
var curlevel = 0,
curwidth = 9999,
lastmaxlevel = 0,
lastmaxid = 0,
curid = 0,
winw = jQuery(window).width(),
l = vis && opt.responsiveLevels==9999 ? opt.visibilityLevels : opt.responsiveLevels;
if (l && l.length)
jQuery.each(l,function(index,level) {
if (winw<level) {
if (lastmaxlevel==0 || lastmaxlevel>level) {
curwidth = level;
curid = index;
lastmaxlevel = level;
}
}
if (winw>level && lastmaxlevel<level) {
lastmaxlevel = level;
lastmaxid = index;
}
});
if (lastmaxlevel<curwidth)
curid = lastmaxid;
if (!vis)
opt.curWinRange = curid;
else
opt.forcedWinRange = curid;
}
//////////////////////////////////////////
// - INITIALISATION OF OPTIONS - //
//////////////////////////////////////////
var prepareOptions = function(container,opt) {
opt.carousel.maxVisibleItems = opt.carousel.maxVisibleItems < 1 ? 999 : opt.carousel.maxVisibleItems; // === 1 ? 2 : opt.carousel.maxVisibleItems;
opt.carousel.vertical_align = opt.carousel.vertical_align === "top" ? "0%" : opt.carousel.vertical_align==="bottom" ? "100%" : "50%";
}
var gWiderOut = function(c,cl) {
var r = 0;
c.find(cl).each(function() {
var a = jQuery(this);
if (!a.hasClass("tp-forcenotvisible") && r<a.outerWidth())
r = a.outerWidth();
});
return r;
}
//////////////////////////////////////////
// - INITIALISATION OF SLIDER - //
//////////////////////////////////////////
var initSlider = function (container,opt) {
if (container==undefined) return false;
// CHECK FOR ALTERNATIVE IMAGE, AND IFRAM EXIST, AND WE ARE IN IE8, MOBILE, DRAW IT SIMPLE
if (container.data('aimg')!=undefined)
if ((container.data('aie8')=="enabled" && _R.isIE(8)) || (container.data('amobile')=="enabled" && _ISM))
container.html('<img class="tp-slider-alternative-image" src="'+container.data("aimg")+'">');
// PREPRARE SOME CLASSES AND VARIABLES
container.find('>ul').addClass("tp-revslider-mainul");
// CREATE SOME DEFAULT OPTIONS FOR LATER
opt.c=container;
opt.ul = container.find('.tp-revslider-mainul');
// Remove Not Needed Slides for Mobile Devices
opt.ul.find('>li').each(function(i) {
var li = jQuery(this);
if (li.data('hideslideonmobile')=="on" && _ISM) li.remove();
if (li.data('invisible') || li.data('invisible')===true) {
li.addClass("tp-invisible-slide");
li.appendTo(opt.ul);
}
});
if (opt.addons!=undefined && opt.addons.length>0) {
jQuery.each(opt.addons, function(i,obj) {
if (typeof obj === "object" && obj.init!=undefined) {
_R[obj.init](eval(obj.params));
}
})
}
opt.cid = container.attr('id');
opt.ul.css({visibility:"visible"});
opt.slideamount = opt.ul.find('>li').not('.tp-invisible-slide').length;
opt.slayers = container.find('.tp-static-layers');
if (opt.waitForInit == true)
return;
else {
container.data('opt',opt);
runSlider(container,opt);
}
}
var runSlider = function(container,opt) {
opt.sliderisrunning = true;
// Save Original Index of Slides
opt.ul.find('>li').each(function(i) {
jQuery(this).data('originalindex',i);
});
// RANDOMIZE THE SLIDER SHUFFLE MODE
if (opt.shuffle=="on") {
var fsa = new Object,
fli = opt.ul.find('>li:first-child');
fsa.fstransition = fli.data('fstransition');
fsa.fsmasterspeed = fli.data('fsmasterspeed');
fsa.fsslotamount = fli.data('fsslotamount');
for (var u=0;u<opt.slideamount;u++) {
var it = Math.round(Math.random()*opt.slideamount);
opt.ul.find('>li:eq('+it+')').prependTo(opt.ul);
}
var newfli = opt.ul.find('>li:first-child');
newfli.data('fstransition',fsa.fstransition);
newfli.data('fsmasterspeed',fsa.fsmasterspeed);
newfli.data('fsslotamount',fsa.fsslotamount);
// COLLECT ALL LI INTO AN ARRAY
opt.li = opt.ul.find('>li').not('.tp-invisible-slide');
}
opt.allli = opt.ul.find('>li');
opt.li = opt.ul.find('>li').not('.tp-invisible-slide');
opt.inli = opt.ul.find('>li.tp-invisible-slide');
opt.thumbs = new Array();
opt.slots=4;
opt.act=-1;
opt.firststart=1;
opt.loadqueue = new Array();
opt.syncload = 0;
opt.conw = container.width();
opt.conh = container.height();
if (opt.responsiveLevels.length>1)
opt.responsiveLevels[0] = 9999;
else
opt.responsiveLevels = 9999;
// RECORD THUMBS AND SET INDEXES
jQuery.each(opt.allli,function(index,li) {
var li = jQuery(li),
img = li.find('.rev-slidebg') || li.find('img').first(),
i = 0;
li.addClass("tp-revslider-slidesli");
if (li.data('index')===undefined) li.data('index','rs-'+Math.round(Math.random()*999999));
var obj = new Object;
obj.params = new Array();
obj.id = li.data('index');
obj.src = li.data('thumb')!==undefined ? li.data('thumb') : img.data('lazyload') !== undefined ? img.data('lazyload') : img.attr('src');
if (li.data('title') !== undefined) obj.params.push({from:RegExp("\\{\\{title\\}\\}","g"), to:li.data("title")})
if (li.data('description') !== undefined) obj.params.push({from:RegExp("\\{\\{description\\}\\}","g"), to:li.data("description")})
for (var i=1;i<=10;i++) {
if (li.data("param"+i)!==undefined)
obj.params.push({from:RegExp("\\{\\{param"+i+"\\}\\}","g"), to:li.data("param"+i)})
}
opt.thumbs.push(obj);
li.data('origindex',li.index());
// IF LINK ON SLIDE EXISTS, NEED TO CREATE A PROPER LAYER FOR IT.
if (li.data('link')!=undefined) {
var link = li.data('link'),
target= li.data('target') || "_self",
zindex= li.data('slideindex')==="back" ? 0 : 60,
linktoslide=li.data('linktoslide'),
checksl = linktoslide;
if (linktoslide != undefined)
if (linktoslide!="next" && linktoslide!="prev")
opt.allli.each(function() {
var t = jQuery(this);
if (t.data('origindex')+1==checksl) linktoslide = t.data('index');
});
if (link!="slide") linktoslide="no";
var apptxt = '<div class="tp-caption slidelink" style="cursor:pointer;width:100%;height:100%;z-index:'+zindex+';" data-x="center" data-y="center" data-basealign="slide" ',
jts = linktoslide==="scroll_under" ? '[{"event":"click","action":"scrollbelow","offset":"100px","delay":"0"}]' :
linktoslide==="prev" ? '[{"event":"click","action":"jumptoslide","slide":"prev","delay":"0.2"}]' :
linktoslide==="next" ? '[{"event":"click","action":"jumptoslide","slide":"next","delay":"0.2"}]' : '[{"event":"click","action":"jumptoslide","slide":"'+linktoslide+'","delay":"0.2"}]'
apptxt = linktoslide=="no" ? apptxt +' data-start="0">' : apptxt + 'data-actions='+"'"+jts + "'"+' data-start="0">';
apptxt = apptxt + '<a style="width:100%;height:100%;display:block"';
apptxt = link!="slide" ? apptxt + ' target="'+target+'" href="'+link+'"' : apptxt;
apptxt = apptxt + '><span style="width:100%;height:100%;display:block"></span></a></div>';
li.append(apptxt);
}
});
// CREATE GRID WIDTH AND HEIGHT ARRAYS
opt.rle = opt.responsiveLevels.length || 1;
opt.gridwidth = cArray(opt.gridwidth,opt.rle);
opt.gridheight = cArray(opt.gridheight,opt.rle);
// END OF VERSION 5.0 INIT MODIFICATION
// SIMPLIFY ANIMATIONS ON OLD IOS AND IE8 IF NEEDED
if (opt.simplifyAll=="on" && (_R.isIE(8) || _R.iOSVersion())) {
container.find('.tp-caption').each(function() {
var tc = jQuery(this);
tc.removeClass("customin customout").addClass("fadein fadeout");
tc.data('splitin',"");
tc.data('speed',400);
})
opt.allli.each(function() {
var li= jQuery(this);
li.data('transition',"fade");
li.data('masterspeed',500);
li.data('slotamount',1);
var img = li.find('.rev-slidebg') || li.find('>img').first();
img.data('kenburns',"off");
});
}
opt.desktop = !navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry|BB10|mobi|tablet|opera mini|nexus 7)/i);
// SOME OPTIONS WHICH SHOULD CLOSE OUT SOME OTHER SETTINGS
opt.autoHeight = opt.sliderLayout=="fullscreen" ? "on" : opt.autoHeight;
if (opt.sliderLayout=="fullwidth" && opt.autoHeight=="off") container.css({maxHeight:opt.gridheight[opt.curWinRange]+"px"});
// BUILD A FORCE FULLWIDTH CONTAINER, TO SPAN THE FULL SLIDER TO THE FULL WIDTH OF BROWSER
if (opt.sliderLayout!="auto" && container.closest('.forcefullwidth_wrapper_tp_banner').length==0) {
if (opt.sliderLayout!=="fullscreen" || opt.fullScreenAutoWidth!="on") {
var cp = container.parent(),
mb = cp.css('marginBottom'),
mt = cp.css('marginTop'),
cid = container.attr('id')+"_forcefullwidth";
mb = mb===undefined ? 0 : mb;
mt = mt===undefined ? 0 : mt;
cp.wrap('<div class="forcefullwidth_wrapper_tp_banner" id="'+cid+'" style="position:relative;width:100%;height:auto;margin-top:'+mt+';margin-bottom:'+mb+'"></div>');
container.closest('.forcefullwidth_wrapper_tp_banner').append('<div class="tp-fullwidth-forcer" style="width:100%;height:'+container.height()+'px"></div>');
container.parent().css({marginTop:"0px",marginBottom:"0px"});
//container.css({'backgroundColor':container.parent().css('backgroundColor'),'backgroundImage':container.parent().css('backgroundImage')});
container.parent().css({position:'absolute'});
}
}
// SHADOW ADD ONS
if (opt.shadow!==undefined && opt.shadow>0) {
container.parent().addClass('tp-shadow'+opt.shadow);
container.parent().append('<div class="tp-shadowcover"></div>');
container.parent().find('.tp-shadowcover').css({'backgroundColor':container.parent().css('backgroundColor'),'backgroundImage':container.parent().css('backgroundImage')});
}
// ESTIMATE THE CURRENT WINDOWS RANGE INDEX
setCurWinRange(opt);
setCurWinRange(opt,true);
// IF THE CONTAINER IS NOT YET INITIALISED, LETS GO FOR IT
if (!container.hasClass("revslider-initialised")) {
// MARK THAT THE CONTAINER IS INITIALISED WITH SLIDER REVOLUTION ALREADY
container.addClass("revslider-initialised");
// FOR BETTER SELECTION, ADD SOME BASIC CLASS
container.addClass("tp-simpleresponsive");
// WE DONT HAVE ANY ID YET ? WE NEED ONE ! LETS GIVE ONE RANDOMLY FOR RUNTIME
if (container.attr('id')==undefined) container.attr('id',"revslider-"+Math.round(Math.random()*1000+5));
// CHECK IF FIREFOX 13 IS ON WAY.. IT HAS A STRANGE BUG, CSS ANIMATE SHOULD NOT BE USED
opt.firefox13 = false;
opt.ie = !jQuery.support.opacity;
opt.ie9 = (document.documentMode == 9);
opt.origcd=opt.delay;
// CHECK THE jQUERY VERSION
var version = jQuery.fn.jquery.split('.'),
versionTop = parseFloat(version[0]),
versionMinor = parseFloat(version[1]),
versionIncrement = parseFloat(version[2] || '0');
if (versionTop==1 && versionMinor < 7)
container.html('<div style="text-align:center; padding:40px 0px; font-size:20px; color:#992222;"> The Current Version of jQuery:'+version+' <br>Please update your jQuery Version to min. 1.7 in Case you wish to use the Revolution Slider Plugin</div>');
if (versionTop>1) opt.ie=false;
// PREPARE VIDEO PLAYERS
var addedApis = new Object();
addedApis.addedyt=0;
addedApis.addedvim=0;
addedApis.addedvid=0;
container.find('.tp-caption, .rs-background-video-layer').each(function(i) {
var _nc = jQuery(this),
an = _nc.data('autoplayonlyfirsttime'),
ap = _nc.data('autoplay'),
al = _nc.hasClass("tp-audiolayer"),
loop = _nc.data('videoloop');
if (_nc.hasClass("tp-static-layer") && _R.handleStaticLayers)
_R.handleStaticLayers(_nc,opt);
var pom = _nc.data('noposteronmobile') || _nc.data('noPosterOnMobile') || _nc.data('posteronmobile') || _nc.data('posterOnMobile') || _nc.data('posterOnMObile');
_nc.data('noposteronmobile',pom);
// FIX VISIBLE IFRAME BUG IN SAFARI
var iff = 0;
_nc.find('iframe').each(function() {
punchgs.TweenLite.set(jQuery(this),{autoAlpha:0});
iff++;
})
if (iff>0)
_nc.data('iframes',true)
if (_nc.hasClass("tp-caption")) {
// PREPARE LAYERS AND WRAP THEM WITH PARALLAX, LOOP, MASK HELP CONTAINERS
var ec = _nc.hasClass("slidelink") ? "width:100% !important;height:100% !important;" : "";
_nc.wrap('<div class="tp-parallax-wrap" style="'+ec+'position:absolute;visibility:hidden"><div class="tp-loop-wrap" style="'+ec+'position:absolute;"><div class="tp-mask-wrap" style="'+ec+'position:absolute" ></div></div></div>');
var lar = ['pendulum', 'rotate','slideloop','pulse','wave'],
_lc = _nc.closest('.tp-loop-wrap');
jQuery.each(lar,function(i,k) {
var lw = _nc.find('.rs-'+k),
f = lw.data() || "";
if (f!="") {
_lc.data(f);
_lc.addClass("rs-"+k);
lw.children(0).unwrap();
_nc.data('loopanimation',"on");
}
});
punchgs.TweenLite.set(_nc,{visibility:"hidden"});
}
var as = _nc.data('actions');
if (as!==undefined) _R.checkActions(_nc,opt,as);
checkHoverDependencies(_nc,opt);
if (_R.checkVideoApis)
addedApis = _R.checkVideoApis(_nc,opt,addedApis);
// REMOVE VIDEO AUTOPLAYS FOR MOBILE DEVICES
if (_ISM) {
if (an == true || an=="true") {
_nc.data('autoplayonlyfirsttime',"false");
an=false;
}
if (ap==true || ap=="true" || ap=="on" || ap=="1sttime") {
_nc.data('autoplay',"off");
ap="off";
}
}
//loop = loop=="none" && _nc.hasClass('rs-background-video-layer') ? "loopandnoslidestop" : loop;
_nc.data('videoloop',loop);
// PREPARE TIMER BEHAVIOUR BASED ON AUTO PLAYED VIDEOS IN SLIDES
if (!al && (an == true || an=="true" || ap == "1sttime") && loop !="loopandnoslidestop")
_nc.closest('li.tp-revslider-slidesli').addClass("rs-pause-timer-once");
if (!al && (ap==true || ap=="true" || ap == "on" || ap == "no1sttime") && loop !="loopandnoslidestop")
_nc.closest('li.tp-revslider-slidesli').addClass("rs-pause-timer-always");
});
container.hover(
function() {
container.trigger('tp-mouseenter');
opt.overcontainer=true;
},
function() {
container.trigger('tp-mouseleft');
opt.overcontainer=false;
});
container.on('mouseover',function() {
container.trigger('tp-mouseover');
opt.overcontainer=true;
})
// REMOVE ANY VIDEO JS SETTINGS OF THE VIDEO IF NEEDED (OLD FALL BACK, AND HELP FOR 3THD PARTY PLUGIN CONFLICTS)
container.find('.tp-caption video').each(function(i) {
var v = jQuery(this);
v.removeClass("video-js vjs-default-skin");
v.attr("preload","");
v.css({display:"none"});
});
//PREPARE LOADINGS ALL IN SEQUENCE
if (opt.sliderType!=="standard") opt.lazyType = "all";
// PRELOAD STATIC LAYERS
loadImages(container.find('.tp-static-layers'),opt,0,true);
waitForCurrentImages(container.find('.tp-static-layers'),opt,function() {
container.find('.tp-static-layers img').each(function() {
var e = jQuery(this),
src = e.data('lazyload') != undefined ? e.data('lazyload') : e.attr('src'),
loadobj = getLoadObj(opt,src);
e.attr('src',loadobj.src)
})
})
// SET ALL LI AN INDEX AND INIT LAZY LOADING
opt.allli.each(function(i) {
var li = jQuery(this);
if (opt.lazyType=="all" || (opt.lazyType=="smart" && (i==0 || i == 1 || i == opt.slideamount || i == opt.slideamount-1))) {
loadImages(li,opt,i);
waitForCurrentImages(li,opt,function() {
if (opt.sliderType=="carousel")
punchgs.TweenLite.to(li,1,{autoAlpha:1,ease:punchgs.Power3.easeInOut});
});
}
});
// IF DEEPLINK HAS BEEN SET
var deeplink = getUrlVars("#")[0];
if (deeplink.length<9) {
if (deeplink.split('slide').length>1) {
var dslide=parseInt(deeplink.split('slide')[1],0);
if (dslide<1) dslide=1;
if (dslide>opt.slideamount) dslide=opt.slideamount;
opt.startWithSlide=dslide-1;
}
}
// PREPARE THE SPINNER
container.append( '<div class="tp-loader '+opt.spinner+'">'+
'<div class="dot1"></div>'+
'<div class="dot2"></div>'+
'<div class="bounce1"></div>'+
'<div class="bounce2"></div>'+
'<div class="bounce3"></div>'+
'</div>');
// RESET THE TIMER
if (container.find('.tp-bannertimer').length===0) container.append('<div class="tp-bannertimer" style="visibility:hidden"></div>');
container.find('.tp-bannertimer').css({'width':'0%'});
container.find('.tp-bannertimer').data('opt',opt);
// PREPARE THE SLIDES
opt.ul.css({'display':'block'});
prepareSlides(container,opt);
if (opt.parallax.type!=="off" && _R.checkForParallax) _R.checkForParallax(container,opt);
// PREPARE SLIDER SIZE
_R.setSize(opt);
// Call the Navigation Builder
if (opt.sliderType!=="hero" && _R.createNavigation) _R.createNavigation(container,opt);
if (_R.resizeThumbsTabs && _R.resizeThumbsTabs) _R.resizeThumbsTabs(opt);
contWidthManager(opt);
var _v = opt.viewPort;
opt.inviewport = false;
if (_v !=undefined && _v.enable) {
if (!jQuery.isNumeric(_v.visible_area))
if (_v.visible_area.indexOf('%')!==-1)
_v.visible_area = parseInt(_v.visible_area)/100;
if (_R.scrollTicker) _R.scrollTicker(opt,container);
}
// START THE SLIDER
setTimeout(function() {
if ( opt.sliderType =="carousel" && _R.prepareCarousel) _R.prepareCarousel(opt);
if (!_v.enable || (_v.enable && opt.inviewport) || (_v.enable && !opt.inviewport && !_v.outof=="wait")) {
swapSlide(container,opt);
}
else
opt.waitForFirstSlide = true;
if (_R.manageNavigation) _R.manageNavigation(opt);
// START COUNTDOWN
if (opt.slideamount>1) {
if (!_v.enable || (_v.enable && opt.inviewport))
countDown(container,opt);
else
opt.waitForCountDown = true;
}
setTimeout(function() {
container.trigger('revolution.slide.onloaded');
},100);
},opt.startDelay);
opt.startDelay=0;
/******************************
- FULLSCREEN CHANGE -
********************************/
// FULLSCREEN MODE TESTING
jQuery("body").data('rs-fullScreenMode',false);
jQuery(window).on ('mozfullscreenchange webkitfullscreenchange fullscreenchange',function(){
jQuery("body").data('rs-fullScreenMode',!jQuery("body").data('rs-fullScreenMode'));
if (jQuery("body").data('rs-fullScreenMode')) {
setTimeout(function() {
jQuery(window).trigger("resize");
},200);
}
});
var resizid = "resize.revslider-"+container.attr('id');
// IF RESIZED, NEED TO STOP ACTUAL TRANSITION AND RESIZE ACTUAL IMAGES
jQuery(window).on(resizid,function() {
if (container==undefined) return false;
if (jQuery('body').find(container)!=0)
contWidthManager(opt);
var hchange = false;
if (opt.sliderLayout=="fullscreen") {
var jwh = jQuery(window).height();
if ((opt.fallbacks.ignoreHeightChanges=="mobile" && _ISM) || opt.fallbacks.ignoreHeightChanges=="always") {
opt.fallbacks.ignoreHeightChangesSize = opt.fallbacks.ignoreHeightChangesSize == undefined ? 0 : opt.fallbacks.ignoreHeightChangesSize;
hchange = (jwh!=opt.lastwindowheight) && (Math.abs(jwh-opt.lastwindowheight) > opt.fallbacks.ignoreHeightChangesSize)
} else {
hchange = (jwh!=opt.lastwindowheight)
}
}
if (container.outerWidth(true)!=opt.width || container.is(":hidden") || (hchange)) {
opt.lastwindowheight = jQuery(window).height();
containerResized(container,opt);
}
});
hideSliderUnder(container,opt);
contWidthManager(opt);
if (!opt.fallbacks.disableFocusListener && opt.fallbacks.disableFocusListener != "true" && opt.fallbacks.disableFocusListener !== true) tabBlurringCheck(container,opt);
}
}
/*************************************
- CREATE SIMPLE ARRAYS -
**************************************/
var cArray = function(b,l) {
if (!jQuery.isArray(b)) {
var t = b;
b = new Array();
b.push(t);
}
if (b.length<l) {
var t = b[b.length-1];
for (var i=0;i<(l-b.length)+2;i++)
b.push(t)
}
return b;
}
var checkHoverDependencies = function(_nc,opt) {
if (_nc.data('start')==="sliderenter") {
if (opt.layersonhover===undefined) {
opt.c.on('tp-mouseenter',function() {
if (opt.layersonhover)
jQuery.each(opt.layersonhover,function(i,tnc) {
tnc.data('animdirection',"in");
var otl = tnc.data('timeline_out'),
base_offsetx = opt.sliderType==="carousel" ? 0 : opt.width/2 - (opt.gridwidth[opt.curWinRange]*opt.bw)/2,
base_offsety=0,
cli = tnc.closest('.tp-revslider-slidesli'),
stl = tnc.closest('.tp-static-layers');
if ((cli.length>0 && (cli.hasClass("active-revslide")) || cli.hasClass("processing-revslide")) || (stl.length>0)) {
if (otl!=undefined) {
otl.pause(0);
otl.kill();
}
_R.animateSingleCaption(tnc,opt,base_offsetx,base_offsety,0,false,true);
var tl = tnc.data('timeline');
tnc.data('triggerstate',"on");
tl.play(0);
}
});
});
opt.c.on('tp-mouseleft',function() {
if (opt.layersonhover)
jQuery.each(opt.layersonhover,function(i,tnc) {
tnc.data('animdirection',"out");
tnc.data('triggered',true);
tnc.data('triggerstate',"off");
if (_R.stopVideo) _R.stopVideo(tnc,opt);
if (_R.endMoveCaption) _R.endMoveCaption(tnc,null,null,opt);
});
});
opt.layersonhover = new Array;
}
opt.layersonhover.push(_nc);
}
}
var contWidthManager = function(opt) {
var rl = _R.getHorizontalOffset(opt.c,"left");
if (opt.sliderLayout!="auto" && (opt.sliderLayout!=="fullscreen" || opt.fullScreenAutoWidth!="on")) {
var loff = Math.ceil(opt.c.closest('.forcefullwidth_wrapper_tp_banner').offset().left - rl);
punchgs.TweenLite.set(opt.c.parent(),{'left':(0-loff)+"px",'width':jQuery(window).width()-_R.getHorizontalOffset(opt.c,"both")});
} else {
if (opt.sliderLayout=="fullscreen" && opt.fullScreenAutoWidth=="on")
punchgs.TweenLite.set(opt.ul,{left:0,width:opt.c.width()});
else
punchgs.TweenLite.set(opt.ul,{left:rl,width:opt.c.width()-_R.getHorizontalOffset(opt.c,"both")});
}
// put Static Layer Wrapper in Position
if (opt.slayers && (opt.sliderLayout!="fullwidth" && opt.sliderLayout!="fullscreen"))
punchgs.TweenLite.set(opt.slayers,{left:rl});
}
var cv = function(a,d) {
return a===undefined ? d : a;
}
var hideSliderUnder = function(container,opt,resized) {
// FIRST TIME STOP/START HIDE / SHOW SLIDER
//REMOVE AND SHOW SLIDER ON DEMAND
var contpar= container.parent();
if (jQuery(window).width()<opt.hideSliderAtLimit) {
container.trigger('stoptimer');
if (contpar.css('display')!="none")
contpar.data('olddisplay',contpar.css('display'));
contpar.css({display:"none"});
} else {
if (container.is(":hidden") && resized) {
if (contpar.data('olddisplay')!=undefined && contpar.data('olddisplay')!="undefined" && contpar.data('olddisplay') != "none")
contpar.css({display:contpar.data('olddisplay')});
else
contpar.css({display:"block"});
container.trigger('restarttimer');
setTimeout(function() {
containerResized(container,opt);
},150)
}
}
if (_R.hideUnHideNav) _R.hideUnHideNav(opt);
}
//////////////////////////
// CONTAINER RESIZED //
/////////////////////////
var containerResized = function (c,opt) {
if (opt.infullscreenmode == true)
opt.minHeight = jQuery(window).height();
setCurWinRange(opt);
setCurWinRange(opt,true);
if (!_R.resizeThumbsTabs || _R.resizeThumbsTabs(opt)===true) {
hideSliderUnder(c,opt,true);
contWidthManager(opt);
if ( opt.sliderType =="carousel") _R.prepareCarousel(opt,true);
if (c===undefined) return false;
_R.setSize(opt);
opt.conw = opt.c.width();
opt.conh = opt.infullscreenmode ? opt.minHeight : opt.c.height();
var actsh = c.find('.active-revslide .slotholder'),
nextsh = c.find('.processing-revslide .slotholder');
removeSlots(c,opt,c,2);
if (opt.sliderType==="standard") {
punchgs.TweenLite.set(nextsh.find('.defaultimg'),{opacity:0});
actsh.find('.defaultimg').css({'opacity':1});
}
if ( opt.sliderType =="carousel" && opt.lastconw != opt.conw) {
clearTimeout(opt.pcartimer);
opt.pcartimer = setTimeout(function() {
_R.prepareCarousel(opt,true);
},100);
opt.lastconw = opt.conw;
}
if (_R.manageNavigation) _R.manageNavigation(opt);
if (_R.animateTheCaptions) _R.animateTheCaptions(c.find('.active-revslide'), opt,true);
if (nextsh.data('kenburns')=="on")
_R.startKenBurn(nextsh,opt,nextsh.data('kbtl').progress());
if (actsh.data('kenburns')=="on")
_R.startKenBurn(actsh,opt,actsh.data('kbtl').progress());
// DOUBLE CALL FOR SOME FUNCTION TO AVOID PORTRAIT/LANDSCAPE ISSUES, AND TO AVOID FULLSCREEN/NORMAL SWAP ISSUES
if (_R.animateTheCaptions) _R.animateTheCaptions(nextsh.closest('li'), opt,true);
if (_R.manageNavigation) _R.manageNavigation(opt);
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////// PREPARING / REMOVING ////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
var setScale = function(opt) {
opt.bw = (opt.width / opt.gridwidth[opt.curWinRange]);
opt.bh = (opt.height / opt.gridheight[opt.curWinRange]);
if (opt.bh>opt.bw)
opt.bh=opt.bw
else
opt.bw = opt.bh;
if (opt.bh>1 || opt.bw>1) { opt.bw=1; opt.bh=1; }
}
/////////////////////////////////////////
// - PREPARE THE SLIDES / SLOTS - //
///////////////////////////////////////
var prepareSlides = function(container,opt) {
container.find('.tp-caption').each(function() {
var c = jQuery(this);
if (c.data('transition')!==undefined) c.addClass(c.data('transition'));
});
// PREPARE THE UL CONTAINER TO HAVEING MAX HEIGHT AND HEIGHT FOR ANY SITUATION
opt.ul.css({overflow:'hidden',width:'100%',height:'100%',maxHeight:container.parent().css('maxHeight')})
if (opt.autoHeight=="on") {
opt.ul.css({overflow:'hidden',width:'100%',height:'100%',maxHeight:"none"});
container.css({'maxHeight':'none'});
container.parent().css({'maxHeight':'none'});
}
//_R.setSize("",opt);
opt.allli.each(function(j) {
var li=jQuery(this),
originalIndex = li.data('originalindex');
//START WITH CORRECT SLIDE
if ((opt.startWithSlide !=undefined && originalIndex==opt.startWithSlide) || opt.startWithSlide ===undefined && j==0)
li.addClass("next-revslide");
// MAKE LI OVERFLOW HIDDEN FOR FURTHER ISSUES
li.css({'width':'100%','height':'100%','overflow':'hidden'});
});
if (opt.sliderType === "carousel") {
//SET CAROUSEL
opt.ul.css({overflow:"visible"}).wrap('<div class="tp-carousel-wrapper" style="width:100%;height:100%;position:absolute;top:0px;left:0px;overflow:hidden;"></div>');
var apt = '<div style="clear:both;display:block;width:100%;height:1px;position:relative;margin-bottom:-1px"></div>';
opt.c.parent().prepend(apt);
opt.c.parent().append(apt);
_R.prepareCarousel(opt);
}
// RESOLVE OVERFLOW HIDDEN OF MAIN CONTAINER
container.parent().css({'overflow':'visible'});
opt.allli.find('>img').each(function(j) {
var img=jQuery(this),
bgvid = img.closest('li').find('.rs-background-video-layer');
bgvid.addClass("defaultvid").css({zIndex:30});
img.addClass('defaultimg');
// TURN OF KEN BURNS IF WE ARE ON MOBILE AND IT IS WISHED SO
if (opt.fallbacks.panZoomDisableOnMobile == "on" && _ISM) {
img.data('kenburns',"off");
img.data('bgfit',"cover");
}
img.wrap('<div class="slotholder" style="position:absolute; top:0px; left:0px; z-index:0;width:100%;height:100%;"></div>');
bgvid.appendTo(img.closest('li').find('.slotholder'));
var dts = img.data();
img.closest('.slotholder').data(dts);
if (bgvid.length>0 && dts.bgparallax!=undefined)
bgvid.data('bgparallax',dts.bgparallax);
if (opt.dottedOverlay!="none" && opt.dottedOverlay!=undefined)
img.closest('.slotholder').append('<div class="tp-dottedoverlay '+opt.dottedOverlay+'"></div>');
var src=img.attr('src');
dts.src = src;
dts.bgfit = dts.bgfit || "cover";
dts.bgrepeat = dts.bgrepeat || "no-repeat",
dts.bgposition = dts.bgposition || "center center";
var pari = img.closest('.slotholder');
img.parent().append('<div class="tp-bgimg defaultimg" style="background-color:'+img.css("backgroundColor")+';background-repeat:'+dts.bgrepeat+';background-image:url('+src+');background-size:'+dts.bgfit+';background-position:'+dts.bgposition+';width:100%;height:100%;"></div>');
var comment = document.createComment("Runtime Modification - Img tag is Still Available for SEO Goals in Source - " + img.get(0).outerHTML);
img.replaceWith(comment);
img = pari.find('.tp-bgimg');
img.data(dts);
img.attr("src",src);
if (opt.sliderType === "standard" || opt.sliderType==="undefined")
img.css({'opacity':0});
})
}
// REMOVE SLOTS //
var removeSlots = function(container,opt,where,addon) {
opt.removePrepare = opt.removePrepare + addon;
where.find('.slot, .slot-circle-wrapper').each(function() {
jQuery(this).remove();
});
opt.transition = 0;
opt.removePrepare = 0;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////// SLIDE SWAPS ////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// THE IMAGE IS LOADED, WIDTH, HEIGHT CAN BE SAVED
var cutParams = function(a) {
var b = a;
if (a!=undefined && a.length>0)
b = a.split("?")[0];
return b;
}
var relativeRedir = function(redir){
return location.pathname.replace(/(.*)\/[^/]*/, "$1/"+redir);
}
var abstorel = function (base, relative) {
var stack = base.split("/"),
parts = relative.split("/");
stack.pop(); // remove current file name (or empty string)
// (omit if "base" is the current folder without trailing slash)
for (var i=0; i<parts.length; i++) {
if (parts[i] == ".")
continue;
if (parts[i] == "..")
stack.pop();
else
stack.push(parts[i]);
}
return stack.join("/");
}
var imgLoaded = function(img,opt,progress) {
opt.syncload--;
if (opt.loadqueue)
jQuery.each(opt.loadqueue, function(index,queue) {
var mqsrc = queue.src.replace(/\.\.\/\.\.\//gi,""),
fullsrc = self.location.href,
origin = document.location.origin,
fullsrc_b = fullsrc.substring(0,fullsrc.length-1)+"/"+mqsrc,
origin_b = origin+"/"+mqsrc,
absolute = abstorel(self.location.href,queue.src);
fullsrc = fullsrc.substring(0,fullsrc.length-1)+mqsrc;
origin = origin+mqsrc;
if (cutParams(origin) === cutParams(decodeURIComponent(img.src)) ||
cutParams(fullsrc)=== cutParams(decodeURIComponent(img.src)) ||
cutParams(absolute)=== cutParams(decodeURIComponent(img.src)) ||
cutParams(origin_b) === cutParams(decodeURIComponent(img.src)) ||
cutParams(fullsrc_b)=== cutParams(decodeURIComponent(img.src)) ||
cutParams(queue.src) === cutParams(decodeURIComponent(img.src)) ||
cutParams(queue.src).replace(/^.*\/\/[^\/]+/, '') === cutParams(decodeURIComponent(img.src)).replace(/^.*\/\/[^\/]+/, '') ||
(window.location.origin==="file://" && cutParams(img.src).match(new RegExp(mqsrc)))) {
queue.progress = progress;
queue.width = img.width;
queue.height = img.height;
}
});
progressImageLoad(opt);
}
// PRELOAD IMAGES 3 PIECES ON ONE GO, CHECK LOAD PRIORITY
var progressImageLoad = function(opt) {
if (opt.syncload == 3) return;
if (opt.loadqueue)
jQuery.each(opt.loadqueue, function(index,queue) {
if (queue.progress.match(/prepared/g)) {
if (opt.syncload<=3) {
opt.syncload++;
if (queue.type=="img") {
var img = new Image();
img.onload = function() {
imgLoaded(this,opt,"loaded");
queue.error = false;
};
img.onerror = function() {
imgLoaded(this,opt,"failed");
queue.error = true;
};
img.src=queue.src;
} else {
jQuery.get(queue.src, function(data) {
queue.innerHTML = new XMLSerializer().serializeToString(data.documentElement);
queue.progress="loaded";
opt.syncload--;
progressImageLoad(opt);
}).fail(function() {
queue.progress="failed";
opt.syncload--;
progressImageLoad(opt);
});
}
queue.progress="inload";
}
}
});
}
// ADD TO QUEUE THE NOT LOADED IMAGES YES
var addToLoadQueue = function(src,opt,prio,type,staticlayer) {
var alreadyexist = false;
if (opt.loadqueue)
jQuery.each(opt.loadqueue, function(index,queue) {
if (queue.src === src) alreadyexist = true;
});
if (!alreadyexist) {
var loadobj = new Object();
loadobj.src = src;
loadobj.starttoload = jQuery.now();
loadobj.type = type || "img";
loadobj.prio = prio;
loadobj.progress = "prepared";
loadobj.static = staticlayer;
opt.loadqueue.push(loadobj);
}
}
// LOAD THE IMAGES OF THE PREDEFINED CONTAINER
var loadImages = function(container,opt,prio,staticlayer) {
container.find('img,.defaultimg, .tp-svg-layer').each(function() {
var element = jQuery(this),
src = element.data('lazyload') !== undefined && element.data('lazyload')!=="undefined" ? element.data('lazyload') : element.data('svg_src') !=undefined ? element.data('svg_src') : element.attr('src'),
type = element.data('svg_src') !=undefined ? "svg" : "img";
element.data('start-to-load',jQuery.now());
addToLoadQueue(src,opt,prio,type,staticlayer);
});
progressImageLoad(opt);
}
// FIND SEARCHED IMAGE/SRC IN THE LOAD QUEUE
var getLoadObj = function(opt,src) {
var obj = new Object();
if (opt.loadqueue)
jQuery.each(opt.loadqueue, function(index,queue) {
if (queue.src == src) obj = queue;
});
return obj;
}
// WAIT PROGRESS TILL THE PREDEFINED CONTAINER HAS ALL IMAGES LOADED INSIDE
var waitForCurrentImages = function(nextli,opt,callback) {
var waitforload = false;
// PRELOAD ALL IMAGES
nextli.find('img,.defaultimg, .tp-svg-layer').each(function() {
var element = jQuery(this),
src = element.data('lazyload') != undefined ? element.data('lazyload') : element.data('svg_src') !=undefined ? element.data('svg_src') : element.attr('src'),
loadobj = getLoadObj(opt,src);
// IF ELEMENTS IS NOT LOADED YET, AND IT IS NOW LOADED
if (element.data('loaded')===undefined && loadobj !==undefined && loadobj.progress && loadobj.progress.match(/loaded/g)) {
element.attr('src',loadobj.src);
// IF IT IS A DEFAULT IMG, WE NEED TO ASSIGN SOME SPECIAL VALUES TO IT
if (loadobj.type=="img") {
if (element.hasClass("defaultimg")) {
if (!_R.isIE(8))
element.css({backgroundImage:'url("'+loadobj.src+'")'});
else {
defimg.attr('src',loadobj.src);
}
nextli.data('owidth',loadobj.width);
nextli.data('oheight',loadobj.height);
nextli.find('.slotholder').data('owidth',loadobj.width);
nextli.find('.slotholder').data('oheight',loadobj.height);
} else {
var w = element.data('ww'),
h = element.data('hh');
element.data('owidth',loadobj.width);
element.data('oheight',loadobj.height);
w = w==undefined || w =="auto" || w=="" ? loadobj.width : w;
h = h==undefined || h =="auto" || h=="" ? loadobj.height : h;
element.data('ww',w);
element.data('hh',h);
}
} else
if (loadobj.type=="svg" && loadobj.progress=="loaded") {
element.append('<div class="tp-svg-innercontainer"></div>');
element.find('.tp-svg-innercontainer').append(loadobj.innerHTML);
}
// ELEMENT IS NOW FULLY LOADED
element.data('loaded',true);
}
if (loadobj && loadobj.progress && loadobj.progress.match(/inprogress|inload|prepared/g))
if (!loadobj.error && jQuery.now()-element.data('start-to-load')<5000)
waitforload = true;
else {
loadobj.progress="failed";
if (!loadobj.reported_img) {
loadobj.reported_img = true;
console.warn(src+" Could not be loaded !");
}
}
// WAIT FOR VIDEO API'S
if (opt.youtubeapineeded == true && (!window['YT'] || YT.Player==undefined)) {
waitforload = true;
if (jQuery.now()-opt.youtubestarttime>5000 && opt.youtubewarning!=true) {
opt.youtubewarning = true;
var txt = "YouTube Api Could not be loaded !";
if (location.protocol === 'https:') txt = txt + " Please Check and Renew SSL Certificate !";
console.error(txt);
opt.c.append('<div style="position:absolute;top:50%;width:100%;color:#e74c3c; font-size:16px; text-align:center; padding:15px;background:#000; display:block;"><strong>'+txt+'</strong></div>')
}
}
if (opt.vimeoapineeded == true && !window['Froogaloop']) {
waitforload = true;
if (jQuery.now()-opt.vimeostarttime>5000 && opt.vimeowarning!=true) {
opt.vimeowarning= true;
var txt = "Vimeo Froogaloop Api Could not be loaded !";
if (location.protocol === 'https:') txt = txt + " Please Check and Renew SSL Certificate !";
console.error(txt);
opt.c.append('<div style="position:absolute;top:50%;width:100%;color:#e74c3c; font-size:16px; text-align:center; padding:15px;background:#000; display:block;"><strong>'+txt+'</strong></div>')
}
}
});
if (!_ISM && opt.audioqueue && opt.audioqueue.length>0) {
jQuery.each(opt.audioqueue,function(i,obj) {
if (obj.status && obj.status==="prepared")
if (jQuery.now() - obj.start<obj.waittime)
waitforload = true;
});
}
jQuery.each(opt.loadqueue,function(i,o) {
if (o.static===true && (o.progress!="loaded" || o.progress==="failed")) {
if (o.progress=="failed") {
if (!o.reported) {
o.reported = true;
console.warn("Static Image "+o.src+" Could not be loaded in time. Error Exists:"+o.error);
}
}
else
if (!o.error && jQuery.now()-o.starttoload<5000) {
waitforload = true;
}
else {
if (!o.reported) {
o.reported = true;
console.warn("Static Image "+o.src+" Could not be loaded within 5s! Error Exists:"+o.error);
}
}
}
});
if (waitforload)
setTimeout(function() {
waitForCurrentImages(nextli,opt,callback) ;
},19);
else
setTimeout(callback,19);
}
//////////////////////////////////////
// - CALL TO SWAP THE SLIDES - //
/////////////////////////////////////
var swapSlide = function(container,opt) {
clearTimeout(opt.waitWithSwapSlide);
if (container.find('.processing-revslide').length>0) {
opt.waitWithSwapSlide = setTimeout(function() {
swapSlide(container,opt);
},150);
return false;
}
var actli = container.find('.active-revslide'),
nextli = container.find('.next-revslide'),
defimg= nextli.find('.defaultimg');
if (nextli.index() === actli.index()) {
nextli.removeClass("next-revslide");
return false;
}
nextli.removeClass("next-revslide").addClass("processing-revslide");
nextli.data('slide_on_focus_amount',(nextli.data('slide_on_focus_amount')+1) || 1);
// CHECK IF WE ARE ALREADY AT LAST ITEM TO PLAY IN REAL LOOP SESSION
if (opt.stopLoop=="on" && nextli.index()==opt.lastslidetoshow-1) {
container.find('.tp-bannertimer').css({'visibility':'hidden'});
container.trigger('revolution.slide.onstop');
opt.noloopanymore = 1;
}
// INCREASE LOOP AMOUNTS
if (nextli.index()===opt.slideamount-1) {
opt.looptogo=opt.looptogo-1;
if (opt.looptogo<=0)
opt.stopLoop="on";
}
opt.tonpause = true;
container.trigger('stoptimer');
opt.cd=0;
if (opt.spinner==="off")
container.find('.tp-loader').css({display:"none"});
else
container.find('.tp-loader').css({display:"block"});
loadImages(nextli,opt,1);
if (_R.preLoadAudio) _R.preLoadAudio(nextli,opt,1);
// WAIT FOR SWAP SLIDE PROGRESS
waitForCurrentImages(nextli,opt,function() {
// MANAGE BG VIDEOS
nextli.find('.rs-background-video-layer').each(function() {
var _nc = jQuery(this);
if (!_nc.hasClass("HasListener")) {
_nc.data('bgvideo',1);
if (_R.manageVideoLayer) _R.manageVideoLayer(_nc,opt);
}
if (_nc.find('.rs-fullvideo-cover').length==0)
_nc.append('<div class="rs-fullvideo-cover"></div>')
});
swapSlideProgress(opt,defimg,container)
});
}
//////////////////////////////////////
// - PROGRESS SWAP THE SLIDES - //
/////////////////////////////////////
var swapSlideProgress = function(opt,defimg,container) {
var actli = container.find('.active-revslide'),
nextli = container.find('.processing-revslide'),
actsh = actli.find('.slotholder'),
nextsh = nextli.find('.slotholder');
opt.tonpause=false;
opt.cd=0;
container.find('.tp-loader').css({display:"none"});
// if ( opt.sliderType =="carousel") _R.prepareCarousel(opt);
_R.setSize(opt);
_R.slotSize(defimg,opt);
if (_R.manageNavigation) _R.manageNavigation(opt);
var data={};
data.nextslide=nextli;
data.currentslide=actli;
container.trigger('revolution.slide.onbeforeswap',data);
opt.transition = 1;
opt.videoplaying = false;
// IF DELAY HAS BEEN SET VIA THE SLIDE, WE TAKE THE NEW VALUE, OTHER WAY THE OLD ONE...
if (nextli.data('delay')!=undefined) {
opt.cd=0;
opt.delay=nextli.data('delay');
} else
opt.delay=opt.origcd;
if (nextli.data('ssop')=="true" || nextli.data('ssop')===true)
opt.ssop = true
else
opt.ssop = false;
container.trigger('nulltimer');
var ai = actli.index(),
ni = nextli.index();
opt.sdir = ni<ai ? 1 : 0;
if (opt.sc_indicator=="arrow") {
if (ai==0 && ni==opt.slideamount-1) opt.sdir = 1;
if (ai==opt.slideamount-1 && ni==0) opt.sdir = 0;
}
opt.lsdir = opt.lsdir === undefined ? opt.sdir : opt.lsdir;
opt.dirc = opt.lsdir != opt.sdir;
opt.lsdir = opt.sdir;
///////////////////////////
// REMOVE THE CAPTIONS //
///////////////////////////
if (actli.index() != nextli.index() && opt.firststart!=1)
if (_R.removeTheCaptions) _R.removeTheCaptions(actli,opt);
if (!nextli.hasClass('rs-pause-timer-once') && !nextli.hasClass("rs-pause-timer-always"))
container.trigger('restarttimer');
else
opt.videoplaying = true;
nextli.removeClass("rs-pause-timer-once");
var nexttrans,
direction=-1,
mtl;
// SELECT SLIDER TYPE
if ( opt.sliderType =="carousel") {
mtl = new punchgs.TimelineLite();
_R.prepareCarousel(opt,mtl);
letItFree(container,opt,nextsh,actsh,nextli,actli,mtl);
opt.transition = 0;
opt.firststart = 0;
} else {
mtl = new punchgs.TimelineLite({onComplete:function() {
letItFree(container,opt,nextsh,actsh,nextli,actli,mtl);
}});
mtl.add(punchgs.TweenLite.set(nextsh.find('.defaultimg'),{opacity:0}));
mtl.pause();
if (opt.firststart==1) {
punchgs.TweenLite.set(actli,{autoAlpha:0});
opt.firststart=0;
}
punchgs.TweenLite.set(actli,{zIndex:18});
punchgs.TweenLite.set(nextli,{autoAlpha:0,zIndex:20});
// IF THERE IS AN OTHER FIRST SLIDE START HAS BEED SELECTED
if (nextli.data('differentissplayed') =='prepared') {
nextli.data('differentissplayed','done');
nextli.data('transition',nextli.data('savedtransition'));
nextli.data('slotamount',nextli.data('savedslotamount'));
nextli.data('masterspeed',nextli.data('savedmasterspeed'));
}
if (nextli.data('fstransition') != undefined && nextli.data('differentissplayed') !="done") {
nextli.data('savedtransition',nextli.data('transition'));
nextli.data('savedslotamount',nextli.data('slotamount'));
nextli.data('savedmasterspeed',nextli.data('masterspeed'));
nextli.data('transition',nextli.data('fstransition'));
nextli.data('slotamount',nextli.data('fsslotamount'));
nextli.data('masterspeed',nextli.data('fsmasterspeed'));
nextli.data('differentissplayed','prepared');
}
if (nextli.data('transition')==undefined) nextli.data('transition',"random");
nexttrans = 0;
var transtext = nextli.data('transition') !== undefined ? nextli.data('transition').split(",") : "fade",
curtransid = nextli.data('nexttransid') == undefined ? -1 : nextli.data('nexttransid');
if (nextli.data('randomtransition')=="on")
curtransid = Math.round(Math.random()*transtext.length);
else
curtransid=curtransid+1;
if (curtransid==transtext.length) curtransid=0;
nextli.data('nexttransid',curtransid);
var comingtransition = transtext[curtransid];
if (opt.ie) {
if (comingtransition=="boxfade") comingtransition = "boxslide";
if (comingtransition=="slotfade-vertical") comingtransition = "slotzoom-vertical";
if (comingtransition=="slotfade-horizontal") comingtransition = "slotzoom-horizontal";
}
if (_R.isIE(8))
comingtransition = 11;
mtl = _R.animateSlide(nexttrans, comingtransition, container, opt, nextli, actli, nextsh, actsh, mtl);
if (nextsh.data('kenburns')=="on") {
_R.startKenBurn(nextsh,opt);
mtl.add(punchgs.TweenLite.set(nextsh,{autoAlpha:0}))
}
// SHOW FIRST LI && ANIMATE THE CAPTIONS
mtl.pause();
}
if (_R.scrollHandling) {
_R.scrollHandling(opt, true);
mtl.eventCallback("onUpdate",function() {
_R.scrollHandling(opt, true);
});
}
// START PARALLAX IF NEEDED
if (opt.parallax.type!="off" && opt.parallax.firstgo==undefined && _R.scrollHandling) {
opt.parallax.firstgo = true;
opt.lastscrolltop = -999;
_R.scrollHandling(opt,true);
setTimeout(function() {
opt.lastscrolltop = -999;
_R.scrollHandling(opt,true);
},210);
setTimeout(function() {
opt.lastscrolltop = -999;
_R.scrollHandling(opt,true);
},420);
}
if (_R.animateTheCaptions) {
_R.animateTheCaptions(nextli, opt,null,mtl);
} else {
if (mtl != undefined) setTimeout(function() {
mtl.resume();
},30);
}
punchgs.TweenLite.to(nextli,0.001,{autoAlpha:1});
//if (_R.callStaticDDDParallax) _R.callStaticDDDParallax(container,opt,nextli);
}
//////////////////////////////////////////
// GIVE FREE THE TRANSITIOSN //
//////////////////////////////////////////
var letItFree = function(container,opt,nextsh,actsh,nextli,actli,mtl) {
if (opt.sliderType==="carousel") {
// CAROUSEL SLIDER
} else {
opt.removePrepare = 0;
punchgs.TweenLite.to(nextsh.find('.defaultimg'),0.001,{zIndex:20,autoAlpha:1,onComplete:function() {
removeSlots(container,opt,nextli,1);
}});
if (nextli.index()!=actli.index()) {
punchgs.TweenLite.to(actli,0.2,{zIndex:18,autoAlpha:0,onComplete:function() {
removeSlots(container,opt,actli,1);
}});
}
}
container.find('.active-revslide').removeClass("active-revslide");
container.find('.processing-revslide').removeClass("processing-revslide").addClass("active-revslide");
opt.act=nextli.index();
opt.c.attr('data-slideactive',container.find('.active-revslide').data('index'));
if (opt.parallax.type=="scroll" || opt.parallax.type=="scroll+mouse" || opt.parallax.type=="mouse+scroll") {
opt.lastscrolltop = -999;
_R.scrollHandling(opt);
}
mtl.clear();
if (actsh.data('kbtl')!=undefined) {
actsh.data('kbtl').reverse();
actsh.data('kbtl').timeScale(25);
}
if (nextsh.data('kenburns')=="on") {
if (nextsh.data('kbtl')!=undefined) {
nextsh.data('kbtl').timeScale(1);
nextsh.data('kbtl').play();
}
else
_R.startKenBurn(nextsh,opt);
}
nextli.find('.rs-background-video-layer').each(function(i) {
if (_ISM) return false;
var _nc = jQuery(this)
_R.resetVideo(_nc,opt);
punchgs.TweenLite.fromTo(_nc,1,{autoAlpha:0},{autoAlpha:1,ease:punchgs.Power3.easeInOut,delay:0.2,onComplete:function() {
if (_R.animcompleted) _R.animcompleted(_nc,opt);
}});
});
actli.find('.rs-background-video-layer').each(function(i) {
if (_ISM) return false;
var _nc = jQuery(this);
if (_R.stopVideo) {
_R.resetVideo(_nc,opt);
_R.stopVideo(_nc,opt);
}
punchgs.TweenLite.to(_nc,1,{autoAlpha:0,ease:punchgs.Power3.easeInOut,delay:0.2});
});
// TIRGGER THE ON CHANGE EVENTS
var data={};
data.slideIndex=nextli.index()+1;
data.slideLIIndex=nextli.index();
data.slide = nextli;
data.currentslide=nextli;
data.prevslide = actli;
opt.last_shown_slide = actli.index();
container.trigger('revolution.slide.onchange',data);
container.trigger('revolution.slide.onafterswap',data);
opt.duringslidechange = false;
var lastSlideLoop = actli.data('slide_on_focus_amount'),
lastSlideMaxLoop = actli.data('hideafterloop');
if (lastSlideMaxLoop!=0 && lastSlideMaxLoop<=lastSlideLoop) {
opt.c.revremoveslide(actli.index());
}
//if (_R.callStaticDDDParallax) _R.callStaticDDDParallax(container,opt,nextli);
}
///////////////////////////
// REMOVE THE LISTENERS //
///////////////////////////
var removeAllListeners = function(container,opt) {
container.children().each(function() {
try{ jQuery(this).die('click'); } catch(e) {}
try{ jQuery(this).die('mouseenter');} catch(e) {}
try{ jQuery(this).die('mouseleave');} catch(e) {}
try{ jQuery(this).unbind('hover');} catch(e) {}
})
try{ container.die('click','mouseenter','mouseleave');} catch(e) {}
clearInterval(opt.cdint);
container=null;
}
///////////////////////////
// - countDown - //
/////////////////////////
var countDown = function(container,opt) {
opt.cd=0;
opt.loop=0;
if (opt.stopAfterLoops!=undefined && opt.stopAfterLoops>-1)
opt.looptogo=opt.stopAfterLoops;
else
opt.looptogo=9999999;
if (opt.stopAtSlide!=undefined && opt.stopAtSlide>-1)
opt.lastslidetoshow=opt.stopAtSlide;
else
opt.lastslidetoshow=999;
opt.stopLoop="off";
if (opt.looptogo==0) opt.stopLoop="on";
var bt=container.find('.tp-bannertimer');
// LISTENERS //container.trigger('stoptimer');
container.on('stoptimer',function() {
var bt = jQuery(this).find('.tp-bannertimer');
bt.data('tween').pause();
if (opt.disableProgressBar=="on") bt.css({visibility:"hidden"});
opt.sliderstatus = "paused";
_R.unToggleState(opt.slidertoggledby);
});
container.on('starttimer',function() {
if (opt.forcepause_viatoggle) return;
if (opt.conthover!=1 && opt.videoplaying!=true && opt.width>opt.hideSliderAtLimit && opt.tonpause != true && opt.overnav !=true && opt.ssop!=true)
if (opt.noloopanymore !== 1 && (!opt.viewPort.enable || opt.inviewport)) {
bt.css({visibility:"visible"});
bt.data('tween').resume();
opt.sliderstatus = "playing";
}
if (opt.disableProgressBar=="on") bt.css({visibility:"hidden"});
_R.toggleState(opt.slidertoggledby);
});
container.on('restarttimer',function() {
if (opt.forcepause_viatoggle) return;
var bt = jQuery(this).find('.tp-bannertimer');
if (opt.mouseoncontainer && opt.navigation.onHoverStop=="on" && (!_ISM)) return false;
if (opt.noloopanymore !== 1 && (!opt.viewPort.enable || opt.inviewport) && opt.ssop!=true) {
bt.css({visibility:"visible"});
bt.data('tween').kill();
bt.data('tween',punchgs.TweenLite.fromTo(bt,opt.delay/1000,{width:"0%"},{force3D:"auto",width:"100%",ease:punchgs.Linear.easeNone,onComplete:countDownNext,delay:1}));
opt.sliderstatus = "playing";
}
if (opt.disableProgressBar=="on") bt.css({visibility:"hidden"});
_R.toggleState(opt.slidertoggledby);
});
container.on('nulltimer',function() {
bt.data('tween').kill();
bt.data('tween',punchgs.TweenLite.fromTo(bt,opt.delay/1000,{width:"0%"},{force3D:"auto",width:"100%",ease:punchgs.Linear.easeNone,onComplete:countDownNext,delay:1}));
bt.data('tween').pause(0);
if (opt.disableProgressBar=="on") bt.css({visibility:"hidden"});
opt.sliderstatus = "paused";
});
var countDownNext = function() {
if (jQuery('body').find(container).length==0) {
removeAllListeners(container,opt);
clearInterval(opt.cdint);
}
container.trigger("revolution.slide.slideatend");
//STATE OF API CHANGED -> MOVE TO AIP BETTER
if (container.data('conthover-changed') == 1) {
opt.conthover= container.data('conthover');
container.data('conthover-changed',0);
}
_R.callingNewSlide(opt,container,1);
}
bt.data('tween',punchgs.TweenLite.fromTo(bt,opt.delay/1000,{width:"0%"},{force3D:"auto",width:"100%",ease:punchgs.Linear.easeNone,onComplete:countDownNext,delay:1}));
bt.data('opt',opt);
if (opt.slideamount >1 && !(opt.stopAfterLoops==0 && opt.stopAtSlide==1)) {
container.trigger("starttimer");
}
else {
opt.noloopanymore = 1;
container.trigger("nulltimer");
}
container.on('tp-mouseenter',function() {
opt.mouseoncontainer = true;
if (opt.navigation.onHoverStop=="on" && (!_ISM)) {
container.trigger('stoptimer');
container.trigger('revolution.slide.onpause');
}
});
container.on('tp-mouseleft',function() {
opt.mouseoncontainer = false;
if (container.data('conthover')!=1 && opt.navigation.onHoverStop=="on" && ((opt.viewPort.enable==true && opt.inviewport) || opt.viewPort.enable==false)) {
container.trigger('revolution.slide.onresume');
container.trigger('starttimer');
}
});
}
//////////////////////////////////////////////////////
// * Revolution Slider - NEEDFULL FUNCTIONS
// * @version: 1.0 (30.10.2014)
// * @author ThemePunch
//////////////////////////////////////////////////////
// - BLUR / FOXUS FUNCTIONS ON BROWSER
var vis = (function(){
var stateKey,
eventKey,
keys = {
hidden: "visibilitychange",
webkitHidden: "webkitvisibilitychange",
mozHidden: "mozvisibilitychange",
msHidden: "msvisibilitychange"
};
for (stateKey in keys) {
if (stateKey in document) {
eventKey = keys[stateKey];
break;
}
}
return function(c) {
if (c) document.addEventListener(eventKey, c);
return !document[stateKey];
}
})();
var restartOnFocus = function(opt) {
if (opt==undefined || opt.c==undefined) return false;
if (opt.windowfocused!=true) {
opt.windowfocused = true;
punchgs.TweenLite.delayedCall(0.3,function(){
// TAB IS ACTIVE, WE CAN START ANY PART OF THE SLIDER
if (opt.fallbacks.nextSlideOnWindowFocus=="on") opt.c.revnext();
opt.c.revredraw();
if (opt.lastsliderstatus=="playing")
opt.c.revresume();
});
}
}
var lastStatBlur = function(opt) {
opt.windowfocused = false;
opt.lastsliderstatus = opt.sliderstatus;
opt.c.revpause();
var actsh = opt.c.find('.active-revslide .slotholder'),
nextsh = opt.c.find('.processing-revslide .slotholder');
if (nextsh.data('kenburns')=="on")
_R.stopKenBurn(nextsh,opt);
if (actsh.data('kenburns')=="on")
_R.stopKenBurn(actsh,opt);
}
var tabBlurringCheck = function(container,opt) {
var notIE = (document.documentMode === undefined),
isChromium = window.chrome;
if (notIE && !isChromium) {
// checks for Firefox and other NON IE Chrome versions
jQuery(window).on("focusin", function () {
restartOnFocus(opt);
}).on("focusout", function () {
lastStatBlur(opt);
});
} else {
// checks for IE and Chromium versions
if (window.addEventListener) {
// bind focus event
window.addEventListener("focus", function (event) {
restartOnFocus(opt);
}, false);
// bind blur event
window.addEventListener("blur", function (event) {
lastStatBlur(opt);
}, false);
} else {
// bind focus event
window.attachEvent("focus", function (event) {
restartOnFocus(opt);
});
// bind focus event
window.attachEvent("blur", function (event) {
lastStatBlur(opt);
});
}
}
}
// - GET THE URL PARAMETER //
var getUrlVars = function (hashdivider){
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf(hashdivider) + 1).split('_');
for(var i = 0; i < hashes.length; i++)
{
hashes[i] = hashes[i].replace('%3D',"=");
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
})(jQuery);