WebisteDLH/wwwroot/vendor/rs-plugin/js/extensions/source/revolution.extension.layera...

2524 lines
90 KiB
JavaScript

/************************************************
* REVOLUTION 5.4.6.5 EXTENSION - LAYER ANIMATION
* @version: 3.6.5 (10.06.2018)
* @requires jquery.themepunch.revolution.js
* @author ThemePunch
************************************************/
;(function($) {
"use strict";
var _R = jQuery.fn.revolution,
_ISM = _R.is_mobile(),
_ANDROID = _R.is_android(),
extension = { alias:"LayerAnimation Min JS",
name:"revolution.extensions.layeranimation.min.js",
min_core: "5.4.6.4",
version:"3.6.5"
};
///////////////////////////////////////////
// EXTENDED FUNCTIONS AVAILABLE GLOBAL //
///////////////////////////////////////////
jQuery.extend(true,_R, {
updateMarkup : function(layer,o) {
var d = jQuery(layer).data();
if (d.start!==undefined && !d.frames_added && d.frames===undefined) {
var frames = new Array(),
oin = getAnimDatas(newAnimObject(),d.transform_in,undefined, false),
oout = getAnimDatas(newAnimObject(),d.transform_out,undefined, false),
oh = getAnimDatas(newAnimObject(),d.transform_hover,undefined, false);
if (jQuery.isNumeric(d.end) && jQuery.isNumeric(d.start) && jQuery.isNumeric(oin.speed)) {
d.end = (parseInt(d.end,0) - (parseInt(d.start,0)+parseFloat(oin.speed,0)));
}
frames.push({frame:"0", delay:d.start, from:d.transform_in, to:d.transform_idle, split:d.splitin, speed:oin.speed, ease:oin.anim.ease, mask:d.mask_in, splitdelay:d.elementdelay});
frames.push({frame:"5", delay:d.end, to:d.transform_out, split:d.splitout, speed:oout.speed, ease:oout.anim.ease, mask:d.mask_out, splitdelay:d.elementdelay});
if (d.transform_hover)
frames.push({frame:"hover", to:d.transform_hover, style:d.style_hover, speed:oh.speed, ease:oh.anim.ease, splitdelay:d.elementdelay});
d.frames = frames;
//layer.frames_added = true;
}
if (!d.frames_added) {
d.inframeindex = 0;
d.outframeindex = -1;
d.hoverframeindex = -1;
if (d.frames!==undefined) {
for (var i=0;i<d.frames.length;i++) {
// CHECK FOR BLOCK SFX ANIMATION
if (d.frames[i].sfx_effect!==undefined && d.frames[i].sfx_effect.indexOf('block')>=0) {
if (i===0) {
d.frames[i].from = "o:0";
d.frames[i].to = "o:1";
} else {
d.frames[i].to = "o:0";
}
d._sfx = "block";
}
if (d.frames[0].from===undefined) d.frames[0].from = "o:inherit";
if (d.frames[0].delay===0) d.frames[0].delay=20;
if (d.frames[i].frame==="hover")
d.hoverframeindex = i;
else
if (d.frames[i].frame==="frame_999" || d.frames[i].frame==="frame_out" || d.frames[i].frame==="last" || d.frames[i].frame==="end")
d.outframeindex = i;
if (d.frames[i].split!==undefined && d.frames[i].split.match(/chars|words|lines/g))
d.splittext = true;
}
}
d.outframeindex = d.outframeindex===-1 ? d.hoverframeindex === -1 ? d.frames.length-1 : d.frames.length -2 : d.outframeindex; // CHECK LATER !!!
d.frames_added = true;
}
},
// MAKE SURE THE ANIMATION ENDS WITH A CLEANING ON MOZ TRANSFORMS
animcompleted : function(_nc,opt) {
var _ = _nc.data(),
t = _.videotype,
ap = _.autoplay,
an = _.autoplayonlyfirsttime;
if (t!=undefined && t!="none")
if (ap==true || ap=="true" || ap=="on" || ap=="1sttime" || an) {
if (opt.sliderType!=="carousel" ||
(opt.sliderType==="carousel" && opt.carousel.showLayersAllTime==="on" && _nc.closest('li').hasClass("active-revslide")) ||
(opt.sliderType==="carousel" && opt.carousel.showLayersAllTime!=="on" && _nc.closest('li').hasClass("active-revslide"))
)
_R.playVideo(_nc,opt);
_R.toggleState(_nc.data('videotoggledby'));
if ( an || ap=="1sttime") {
_.autoplayonlyfirsttime = false;
_.autoplay = "off";
}
} else {
if (ap=="no1sttime")
_.datasetautoplay = 'on';
_R.unToggleState(_nc.data('videotoggledby'));
}
},
/********************************************************
- PREPARE AND DEFINE STATIC LAYER DIRECTIONS -
*********************************************************/
handleStaticLayers : function(_nc,opt) {
var s = parseInt(_nc.data('startslide'),0),
e = parseInt(_nc.data('endslide'),0);
if (s < 0)
s=0;
if (e <0 )
e = opt.realslideamount;
if (s===0 && e===opt.realslideamount-1)
e = opt.realslideamount+1;
_nc.data('startslide',s);
_nc.data('endslide',e);
},
/************************************
ANIMATE ALL CAPTIONS
*************************************/
animateTheCaptions : function(obj) {
if (_R.compare_version(extension).check==="stop") return false;
var opt = obj.opt,
nextli = obj.slide,
recall = obj.recall,
mtl = obj.maintimeline,
preset = obj.preset,
startSlideAnimAt = obj.startslideanimat,
base_offsetx = opt.sliderType==="carousel" ? 0 : opt.width/2 - (opt.gridwidth[opt.curWinRange]*opt.bw)/2,
base_offsety=0,
index = nextli.data('index');
// COLLECTION OF LAYERS
opt.layers = opt.layers || new Object();
opt.layers[index] = opt.layers[index] || nextli.find('.tp-caption');
opt.layers["static"] = opt.layers["static"] || opt.c.find('.tp-static-layers').find('.tp-caption');
if (opt.timelines === undefined) _R.createTimelineStructure(opt);
opt.conh = opt.c.height();
opt.conw = opt.c.width();
opt.ulw = opt.ul.width();
opt.ulh = opt.ul.height();
/* ENABLE DEBUG MODE */
if (opt.debugMode) {
nextli.addClass("indebugmode");
nextli.find('.helpgrid').remove();
opt.c.find('.hglayerinfo').remove();
nextli.append('<div class="helpgrid" style="width:'+(opt.gridwidth[opt.curWinRange]*opt.bw)+'px;height:'+(opt.gridheight[opt.curWinRange]*opt.bw)+'px;"></div>');
var hg = nextli.find('.helpgrid');
hg.append('<div class="hginfo">Zoom:'+(Math.round(opt.bw*100))+'% &nbsp;&nbsp;&nbsp; Device Level:'+opt.curWinRange+'&nbsp;&nbsp;&nbsp; Grid Preset:'+opt.gridwidth[opt.curWinRange]+'x'+opt.gridheight[opt.curWinRange]+'</div>')
opt.c.append('<div class="hglayerinfo"></div>')
hg.append('<div class="tlhg"></div>');
}
// PREPARE THE LAYERS
if (index!==undefined && opt.layers[index])
jQuery.each(opt.layers[index], function(i,a) {
var _t = jQuery(this);
_R.updateMarkup(this,opt);
_R.prepareSingleCaption({caption:_t, opt:opt, offsetx:base_offsetx, offsety:base_offsety, index:i, recall:recall, preset:preset});
if (!preset || startSlideAnimAt===0) _R.buildFullTimeLine({caption:_t, opt:opt, offsetx:base_offsetx, offsety:base_offsety, index:i, recall:recall, preset:preset, regenerate: startSlideAnimAt===0});
if (recall && opt.sliderType==="carousel" && opt.carousel.showLayersAllTime==="on") _R.animcompleted(_t,opt);
});
if (opt.layers["static"])
jQuery.each(opt.layers["static"], function(i,a) {
var _t = jQuery(this),
_ = _t.data();
if (_.hoveredstatus!==true && _.inhoveroutanimation!==true) {
_R.updateMarkup(this,opt);
_R.prepareSingleCaption({caption:_t, opt:opt, offsetx:base_offsetx, offsety:base_offsety, index:i, recall:recall, preset:preset});
if ((!preset || startSlideAnimAt===0) && _.veryfirstststic !==true) {
_R.buildFullTimeLine({caption:_t, opt:opt, offsetx:base_offsetx, offsety:base_offsety, index:i, recall:recall, preset:preset, regenerate: startSlideAnimAt===0});
_.veryfirstststic = true;
}
if (recall && opt.sliderType==="carousel" && opt.carousel.showLayersAllTime==="on") _R.animcompleted(_t,opt);
} else {
_R.prepareSingleCaption({caption:_t, opt:opt, offsetx:base_offsetx, offsety:base_offsety, index:i, recall:recall, preset:preset});
}
});
// RECALCULATE HEIGHTS OF SLIDE IF ROW EXIST
var _actli = opt.nextSlide === -1 || opt.nextSlide===undefined ? 0 : opt.nextSlide;
if (opt.rowzones!==undefined)
_actli = _actli>opt.rowzones.length ? opt.rowzones.length : _actli;
if (opt.rowzones!=undefined && opt.rowzones.length>0 && opt.rowzones[_actli]!=undefined && _actli>=0 && _actli<=opt.rowzones.length && opt.rowzones[_actli].length>0)
_R.setSize(opt);
// RESTART ANIMATION TIMELINES
if (!preset)
if (startSlideAnimAt!==undefined) {
if (index!==undefined)
jQuery.each(opt.timelines[index].layers,function(key,o) {
var _ = o.layer.data();
if (o.wrapper==="none" || o.wrapper===undefined) {
if (o.triggerstate=="keep" && _.triggerstate==="on")
_R.playAnimationFrame({caption:o.layer,opt:opt,frame:"frame_0", triggerdirection:"in", triggerframein:"frame_0", triggerframeout:"frame_999"});
else
o.timeline.restart();
}
});
if (opt.timelines.staticlayers)
jQuery.each(opt.timelines.staticlayers.layers,function(key,o) {
var _ = o.layer.data(),
in_v_range = _actli>=o.firstslide && _actli<=o.lastslide,
in_uv_range = _actli<o.firstslide || _actli>o.lastslide,
flt = o.timeline.getLabelTime("slide_"+o.firstslide),
elt = o.timeline.getLabelTime("slide_"+o.lastslide),
ct = _.static_layer_timeline_time,
isvisible = _.animdirection==="in" ? true : _.animdirection==="out" ? false : undefined,
triggered_in = _.frames[0].delay==="bytrigger",
triggered_out = _.frames[_.frames.length-1].delay==="bytrigger",
layer_start_status = _.triggered_startstatus,
triggerstate = _.lasttriggerstate;
if (_.hoveredstatus===true || _.inhoveroutanimation==true) return;
/*console.log("-----------------------")
console.log("Show Static Layer Start")
console.log("-----------------------")
console.log(ct);
console.log(isvisible)*/
// LAYER ALREADY VISIBLE, TIMER IS NOT UNKNOW ANY MORE
if (ct!==undefined && isvisible) {
if (triggerstate=="keep") {
_R.playAnimationFrame({caption:o.layer,opt:opt,frame:"frame_0", triggerdirection:"in", triggerframein:"frame_0", triggerframeout:"frame_999"});
_.triggeredtimeline.time(ct);
}
else {
if (_.hoveredstatus!==true)
o.timeline.time(ct);
}
}
// RESET STATUS ALWAYS TO HIDDEN
if (triggerstate==="reset" && layer_start_status==="hidden") {
//console.log("Pre Path X");
o.timeline.time(0);
_.animdirection = "out";
}
//console.log("in Range:"+in_v_range+" "+o.firstslide+" <= "+_actli+" <= "+o.lastslide);
// LAYER IS ON SLIDE TO SHOW, OR LAYER NEED TO DISAPPEAR
if (in_v_range) {
if (isvisible) {
//console.log("Path A");
if (_actli===o.lastslide) {
//console.log("Path A.1");
o.timeline.play(elt);
_.animdirection = "in";
}
} else {
//console.log("Path B");
//console.log(triggered_in+" "+_.animdirection)
if (!triggered_in && _.animdirection!=="in") {
//console.log("Path B.1")
o.timeline.play(flt);
}
if ((layer_start_status=="visible" && triggerstate!=="keep") || (triggerstate==="keep" && isvisible===true) || (layer_start_status=="visible" && isvisible===undefined)) {
//console.log("Path B.2");
o.timeline.play(flt+0.01);
_.animdirection = "in";
}
}
} else {
//console.log("Path C");
if (in_uv_range) {
//console.log("Path C.1");
if (isvisible) {
//console.log("Path C.1.1")
o.timeline.play("frame_999");
} else {
//console.log("Path C.1.2")
}
}
}
});
}
// RESUME THE MAIN TIMELINE NOW
if (mtl != undefined) setTimeout(function() {
mtl.resume();
},30);
},
/********************************************
PREPARE ALL LAYER SIZES, POSITION
********************************************/
prepareSingleCaption : function(obj) {
var _nc = obj.caption,
_ = _nc.data(),
opt = obj.opt,
recall = obj.recall,
internrecall = obj.recall,
preset = obj.preset,
rtl = jQuery('body').hasClass("rtl"),
datas;
_._pw = _._pw===undefined ? _nc.closest('.tp-parallax-wrap') : _._pw;
_._lw = _._lw===undefined ? _nc.closest('.tp-loop-wrap') : _._lw;
_._mw = _._mw===undefined ? _nc.closest('.tp-mask-wrap') : _._mw;
_._responsive = _.responsive || "on";
_._respoffset = _.responsive_offset || "on";
_._ba = _.basealign || "grid";
_._gw = _._ba==="grid" ? opt.width : opt.ulw;
_._gh = _._ba==="grid" ? opt.height : opt.ulh;
_._lig = _._lig===undefined ? _nc.hasClass("rev_layer_in_group") ? _nc.closest('.rev_group') : _nc.hasClass("rev_layer_in_column") ?_nc.closest('.rev_column_inner') : _nc.hasClass("rev_column_inner") ? _nc.closest(".rev_row") : "none" : _._lig,
_._column = _._column===undefined ? _nc.hasClass("rev_column_inner") ? _nc.closest(".rev_column") : "none" : _._column,
_._row = _._row===undefined ? _nc.hasClass("rev_column_inner") ? _nc.closest(".rev_row") : "none" : _._row,
_._ingroup = _._ingroup===undefined ? !_nc.hasClass('rev_group') && _nc.closest('.rev_group') ? true : false :_._ingroup;
_._isgroup = _._isgroup===undefined ? _nc.hasClass("rev_group") ? true : false : _._isgroup;
_._nctype = _.type || "none";
_._cbgc_auto = _._cbgc_auto===undefined ? _._nctype==="column" ? _._pw.find('.rev_column_bg_auto_sized') : false : _._cbgc_auto;
_._cbgc_man = _._cbgc_man===undefined ? _._nctype==="column" ? _._pw.find('.rev_column_bg_man_sized') : false : _._cbgc_man;
_._slideid = _._slideid || _nc.closest('.tp-revslider-slidesli').data('index');
_._id = _._id===undefined ? _nc.data('id') || _nc.attr('id') : _._id;
_._slidelink = _._slidelink===undefined ? _nc.hasClass("slidelink")===undefined ? false : _nc.hasClass("slidelink") : _._slidelink;
if (_._li===undefined)
if (_nc.hasClass("tp-static-layer")) {
_._isstatic = true;
_._li = _nc.closest('.tp-static-layers');
_._slideid = "staticlayers";
} else {
_._li = _nc.closest('.tp-revslider-slidesli');
}
_._row = _._row===undefined ? _._nctype==="column" ? _._pw.closest('.rev_row') : false : _._row;
if (_._togglelisteners===undefined && _nc.find('.rs-toggled-content')) {
_._togglelisteners = true;
if (_.actions===undefined) _nc.click(function() {_R.swaptoggleState(_nc); })
} else {
_._togglelisteners = false;
}
if (opt.sliderLayout=="fullscreen")
obj.offsety = _._gh/2 - (opt.gridheight[opt.curWinRange]*opt.bh)/2;
if (opt.autoHeight=="on" || (opt.minHeight!=undefined && opt.minHeight>0))
obj.offsety = opt.conh/2 - (opt.gridheight[opt.curWinRange]*opt.bh)/2;;
if (obj.offsety<0) obj.offsety=0;
// LAYER GRID FOR DEBUGGING
if (opt.debugMode) {
_nc.closest('li').find('.helpgrid').css({top:obj.offsety+"px", left:obj.offsetx+"px"});
var linfo = opt.c.find('.hglayerinfo');
_nc.on("hover, mouseenter",function() {
var ltxt = "",
spa = 0;
if (_nc.data())
jQuery.each(_nc.data(),function(key,val) {
if (typeof val !== "object") {
ltxt = ltxt + '<span style="white-space:nowrap"><span style="color:#27ae60">'+key+":</span>"+val+"</span>&nbsp; &nbsp; ";
}
});
linfo.html(ltxt);
});
}
/* END OF DEBUGGING */
var handlecaption=0,
layervisible = _.visibility === undefined ? "oon" : makeArray(_.visibility,opt)[opt.forcedWinRange] || makeArray(_.visibility,opt) || "ooon";
// HIDE CAPTION IF RESOLUTION IS TOO LOW
if (layervisible==="off" || (_._gw<opt.hideCaptionAtLimit && _.captionhidden=="on") || (_._gw<opt.hideAllCaptionAtLimit))
_._pw.addClass("tp-hidden-caption");
else
_._pw.removeClass("tp-hidden-caption")
_.layertype = "html";
if (obj.offsetx<0) obj.offsetx=0;
// FALL BACK TO NORMAL IMAGES
if (_.thumbimage !=undefined && _.videoposter==undefined)
_.videoposter = _.thumbimage;
// IF IT IS AN IMAGE
if (_nc.find('img').length>0) {
var im = _nc.find('img');
_.layertype = "image";
if (im.width()==0) im.css({width:"auto"});
if (im.height()==0) im.css({height:"auto"});
if (im.data('ww') == undefined && im.width()>0) im.data('ww',im.width());
if (im.data('hh') == undefined && im.height()>0) im.data('hh',im.height());
var ww = im.data('ww'),
hh = im.data('hh'),
fuw = _._ba =="slide" ? opt.ulw : opt.gridwidth[opt.curWinRange],
fuh = _._ba =="slide" ? opt.ulh : opt.gridheight[opt.curWinRange];
ww = makeArray(im.data('ww'),opt)[opt.curWinRange] || makeArray(im.data('ww'),opt) || "auto",
hh = makeArray(im.data('hh'),opt)[opt.curWinRange] || makeArray(im.data('hh'),opt) || "auto";
var wful = ww==="full" || ww === "full-proportional",
hful = hh==="full" || hh === "full-proportional";
if (ww==="full-proportional") {
var ow = im.data('owidth'),
oh = im.data('oheight');
if (ow/fuw < oh/fuh) {
ww = fuw;
hh = oh*(fuw/ow);
} else {
hh = fuh;
ww = ow*(fuh/oh);
}
} else {
ww = wful ? fuw : !jQuery.isNumeric(ww) && ww.indexOf("%")>0 ? ww : parseFloat(ww);
hh = hful ? fuh : !jQuery.isNumeric(hh) && hh.indexOf("%")>0 ? hh : parseFloat(hh);
}
ww = ww===undefined ? 0 : ww;
hh = hh===undefined ? 0 : hh;
if (_._responsive!=="off") {
if (_._ba!="grid" && wful)
if (jQuery.isNumeric(ww))
im.css({width:ww+"px"});
else
im.css({width:ww});
else
if (jQuery.isNumeric(ww))
im.css({width:(ww*opt.bw)+"px"});
else
im.css({width:ww});
if (_._ba!="grid" && hful)
if (jQuery.isNumeric(hh))
im.css({height:hh+"px"});
else
im.css({height:hh});
else
if (jQuery.isNumeric(hh))
im.css({height:(hh*opt.bh)+"px"});
else
im.css({height:hh});
} else {
im.css({width:ww, height:hh});
}
if (_._ingroup && _._nctype!=="row") {
if (ww!==undefined && !jQuery.isNumeric(ww) && jQuery.type(ww)==="string" && ww.indexOf("%")>0)
punchgs.TweenLite.set([_._lw,_._pw,_._mw],{minWidth:ww});
if (hh!==undefined && !jQuery.isNumeric(hh) && jQuery.type(hh)==="string" && hh.indexOf("%")>0)
punchgs.TweenLite.set([_._lw,_._pw,_._mw],{minHeight:hh});
}
}
if (_._ba==="slide") {
obj.offsetx = 0;
obj.offsety=0;
} else {
if (_._isstatic && opt.carousel!==undefined && opt.carousel.horizontal_align!==undefined && opt.sliderType==="carousel") {
switch (opt.carousel.horizontal_align) {
case "center":
obj.offsetx = 0 + (opt.ulw - (opt.gridwidth[opt.curWinRange]*opt.bw))/2;
break;
case "left":
break;
case "right":
obj.offsetx = (opt.ulw - (opt.gridwidth[opt.curWinRange]*opt.bw));
break;
}
obj.offsetx = obj.offsetx<0 ? 0 : obj.offsetx;
}
}
var tag = _.audio=="html5" ? "audio" : "video";
// IF IT IS A VIDEO LAYER
if (_nc.hasClass("tp-videolayer") || _nc.hasClass("tp-audiolayer") || _nc.find('iframe').length>0 || _nc.find(tag).length>0) {
_.layertype = "video";
if (_R.manageVideoLayer) _R.manageVideoLayer(_nc,opt,recall,internrecall);
if (!recall && !internrecall) {
var t = _.videotype;
if (_R.resetVideo) _R.resetVideo(_nc,opt,obj.preset);
}
var asprat = _.aspectratio;
if (asprat!=undefined && asprat.split(":").length>1)
_R.prepareCoveredVideo(opt,_nc);
var im = _nc.find('iframe') ? _nc.find('iframe') : im = _nc.find(tag),
html5vid = _nc.find('iframe') ? false : true,
yvcover = _nc.hasClass('coverscreenvideo');
im.css({display:"block"});
// SET WIDTH / HEIGHT
if (_nc.data('videowidth') == undefined) {
_nc.data('videowidth',im.width());
_nc.data('videoheight',im.height());
}
var ww = makeArray(_nc.data('videowidth'),opt)[opt.curWinRange] || makeArray(_nc.data('videowidth'),opt) || "auto",
hh = makeArray(_nc.data('videoheight'),opt)[opt.curWinRange] || makeArray(_nc.data('videoheight'),opt) || "auto";
/*if (!jQuery.isNumeric(ww) && ww.indexOf("%")>0) {
hh = (parseFloat(hh)*opt.bh)+"px";
} else {
ww = (parseFloat(ww)*opt.bw)+"px";
hh = (parseFloat(hh)*opt.bh)+"px";
}*/
if (ww==="auto" || (!jQuery.isNumeric(ww) && ww.indexOf("%")>0)) {
ww = ww==="auto" ? "auto" : _._ba==="grid" ? opt.gridwidth[opt.curWinRange]*opt.bw : _._gw;
} else {
ww = (parseFloat(ww)*opt.bw)+"px";
}
if (hh==="auto" || (!jQuery.isNumeric(hh) && hh.indexOf("%")>0)) {
hh = hh==="auto" ? "auto" : _._ba==="grid" ? opt.gridheight[opt.curWinRange]*opt.bw : _._gh;
} else {
hh = (parseFloat(hh)*opt.bh)+"px";
}
// READ AND WRITE CSS SETTINGS OF IFRAME AND VIDEO FOR RESIZING ELEMENST ON DEMAND
_.cssobj = _.cssobj===undefined ? getcssParams(_nc,0) : _.cssobj;
var ncobj = setResponsiveCSSValues(_.cssobj,opt);
// IE8 FIX FOR AUTO LINEHEIGHT
if (ncobj.lineHeight=="auto") ncobj.lineHeight = ncobj.fontSize+4;
if (!_nc.hasClass('fullscreenvideo') && !yvcover) {
punchgs.TweenLite.set(_nc,{
paddingTop: Math.round((ncobj.paddingTop * opt.bh)) + "px",
paddingBottom: Math.round((ncobj.paddingBottom * opt.bh)) + "px",
paddingLeft: Math.round((ncobj.paddingLeft* opt.bw)) + "px",
paddingRight: Math.round((ncobj.paddingRight * opt.bw)) + "px",
marginTop: (ncobj.marginTop * opt.bh) + "px",
marginBottom: (ncobj.marginBottom * opt.bh) + "px",
marginLeft: (ncobj.marginLeft * opt.bw) + "px",
marginRight: (ncobj.marginRight * opt.bw) + "px",
borderTopWidth: Math.round(ncobj.borderTopWidth * opt.bh) + "px",
borderBottomWidth: Math.round(ncobj.borderBottomWidth * opt.bh) + "px",
borderLeftWidth: Math.round(ncobj.borderLeftWidth * opt.bw) + "px",
borderRightWidth: Math.round(ncobj.borderRightWidth * opt.bw) + "px",
width:ww,
height:hh
});
} else {
obj.offsetx=0; obj.offsety=0;
_nc.data('x',0)
_nc.data('y',0)
var ovhh = _._gh;
if (opt.autoHeight=="on") ovhh = opt.conh
_nc.css({'width':_._gw, 'height':ovhh });
}
if ((html5vid == false && !yvcover) || ((_.forcecover!=1 && !_nc.hasClass('fullscreenvideo') && !yvcover))) {
im.width(ww);
im.height(hh);
}
if (_._ingroup) {
if (_.videowidth!==null && _.videowidth!==undefined && !jQuery.isNumeric(_.videowidth) && _.videowidth.indexOf("%")>0)
punchgs.TweenLite.set([_._lw,_._pw,_._mw],{minWidth:_.videowidth});
}
} // END OF POSITION AND STYLE READ OUTS OF VIDEO
// RESPONIVE HANDLING OF CURRENT LAYER
calcCaptionResponsive(_nc,opt,0,_._responsive);
// ALL ELEMENTS IF THE MAIN ELEMENT IS REKURSIVE RESPONSIVE SHOULD BE REPONSIVE HANDLED
if (_nc.hasClass("tp-resizeme"))
_nc.find('*').each(function() {
calcCaptionResponsive(jQuery(this),opt,"rekursive",_._responsive);
});
// _nc FRONTCORNER CHANGES
var ncch = _nc.outerHeight(),
bgcol = _nc.css('backgroundColor');
sharpCorners(_nc,'.frontcorner','left','borderRight','borderTopColor',ncch,bgcol);
sharpCorners(_nc,'.frontcornertop','left','borderRight','borderBottomColor',ncch,bgcol);
sharpCorners(_nc,'.backcorner','right','borderLeft','borderBottomColor',ncch,bgcol);
sharpCorners(_nc,'.backcornertop','right','borderLeft','borderTopColor',ncch,bgcol);
if (opt.fullScreenAlignForce == "on") {
obj.offsetx=0;
obj.offsety=0;
}
// BLOCK ANIMATION ON LAYERS
if (_._sfx==="block")
if (_._bmask === undefined) {
_._bmask = jQuery('<div class="tp-blockmask"></div>');
_._mw.append(_._bmask);
}
_.arrobj = new Object();
_.arrobj.voa = makeArray(_.voffset,opt)[opt.curWinRange] || makeArray(_.voffset,opt)[0];
_.arrobj.hoa = makeArray(_.hoffset,opt)[opt.curWinRange] || makeArray(_.hoffset,opt)[0];
_.arrobj.elx = makeArray(_.x,opt)[opt.curWinRange] || makeArray(_.x,opt)[0];
_.arrobj.ely = makeArray(_.y,opt)[opt.curWinRange] || makeArray(_.y,opt)[0];
var voa = _.arrobj.voa.length==0 ? 0 : _.arrobj.voa,
hoa = _.arrobj.hoa.length==0 ? 0 : _.arrobj.hoa,
elx = _.arrobj.elx.length==0 ? 0 : _.arrobj.elx,
ely = _.arrobj.ely.length==0 ? 0 : _.arrobj.ely;
_.eow = _nc.outerWidth(true);
_.eoh = _nc.outerHeight(true);
// NEED CLASS FOR FULLWIDTH AND FULLHEIGHT LAYER SETTING !!
if (_.eow==0 && _.eoh==0) {
_.eow = opt.ulw;
_.eoh = opt.ulh;
}
var vofs= _._respoffset !=="off" ? parseInt(voa,0)*opt.bw : parseInt(voa,0),
hofs= _._respoffset !=="off" ? parseInt(hoa,0)*opt.bw : parseInt(hoa,0),
crw = _._ba==="grid" ? opt.gridwidth[opt.curWinRange]*opt.bw : _._gw,
crh = _._ba==="grid" ? opt.gridheight[opt.curWinRange]*opt.bw : _._gh;
if (opt.fullScreenAlignForce == "on") {
crw = opt.ulw;
crh = opt.ulh;
}
// ALIGN POSITIONED ELEMENTS
if (_._lig!=="none" && _._lig!=undefined) {
crw=_._lig.width();
crh=_._lig.height();
obj.offsetx =0;
obj.offsety = 0;
}
elx = elx==="center" || elx==="middle" ? (crw/2 - _.eow/2) + hofs : elx==="left" ? hofs : elx==="right" ? (crw - _.eow) - hofs : _._respoffset !=="off" ? elx * opt.bw : elx;
ely = ely=="center" || ely=="middle" ? (crh/2 - _.eoh/2) + vofs : ely =="top" ? vofs : ely=="bottom" ? (crh - _.eoh)-vofs : _._respoffset !=="off" ? ely*opt.bw : ely;
if (rtl && !_._slidelink)
elx = elx + _.eow;
if (_._slidelink) elx=0;
_.calcx = (parseInt(elx,0)+obj.offsetx);
_.calcy = (parseInt(ely,0)+obj.offsety);
var tpcapindex = _nc.css("z-Index");
// SET TOP/LEFT POSITION OF LAYER
if (_._nctype!=="row" && _._nctype!=="column")
punchgs.TweenLite.set(_._pw,{zIndex:tpcapindex, top:_.calcy,left:_.calcx,overwrite:"auto"});
else
if (_._nctype!=="row")
punchgs.TweenLite.set(_._pw,{zIndex:tpcapindex, width:_.columnwidth, top:0,left:0,overwrite:"auto"});
else
if (_._nctype==="row") {
var _roww = _._ba==="grid" ? crw+"px" : "100%";
punchgs.TweenLite.set(_._pw,{zIndex:tpcapindex, width:_roww, top:0,left:obj.offsetx,overwrite:"auto"});
}
if (_.blendmode!==undefined)
punchgs.TweenLite.set(_._pw,{mixBlendMode:_.blendmode});
/*if (_._nctype==="svg") {
_.svgcontainer = _.svgcontainer===undefined ? _nc.find('.tp-svg-innercontainer') : _.svgcontainer;
punchgs.TweenLite.set(_.svgcontainer,{ ... });
}*/
//SET ROW BROKEN / TABLE FORMED
if (_._nctype==="row") {
if (_.columnbreak<=opt.curWinRange) {
_nc.addClass("rev_break_columns");
} else {
_nc.removeClass("rev_break_columns");
}
}
// LOOP ANIMATION WIDTH/HEIGHT
if (_.loopanimation=="on") punchgs.TweenLite.set(_._lw,{minWidth:_.eow,minHeight:_.eoh});
//Preset Position of BG
if (_._nctype==="column") {
var tempy = _nc[0]._gsTransform !==undefined ? _nc[0]._gsTransform.y : 0,
pT = parseInt(_._column[0].style.paddingTop,0);
punchgs.TweenLite.set(_nc,{y:0});
punchgs.TweenLite.set(_._cbgc_man,{y:parseInt(( pT+_._column.offset().top-_nc.offset().top),0)});
punchgs.TweenLite.set(_nc,{y:tempy});
}
// ELEMENT IN GROUPS WITH % WIDTH AND HEIGHT SHOULD EXTEND PARRENT SIZES
if (_._ingroup && _._nctype!=="row") {
if (_._groupw!==undefined && !jQuery.isNumeric(_._groupw) && _._groupw.indexOf("%")>0)
punchgs.TweenLite.set([_._lw,_._pw,_._mw],{minWidth:_._groupw});
if (_._grouph!==undefined && !jQuery.isNumeric(_._grouph) && _._grouph.indexOf("%")>0)
punchgs.TweenLite.set([_._lw,_._pw,_._mw],{minHeight:_._grouph});
}
},
/********************************************
BUILD THE TIMELINE STRUCTURES
********************************************/
createTimelineStructure : function(opt) {
// COLLECTION OF TIMELINES
opt.timelines = opt.timelines || new Object();
function addTimeLineWithLabel(layer,opt,parentobject,slideid) {
var timeline = new punchgs.TimelineLite({paused:true}),
c;
parentobject = parentobject || new Object();
parentobject[layer.attr('id')] = parentobject[layer.attr('id')] || new Object();
if (slideid==="staticlayers") {
parentobject[layer.attr('id')].firstslide = layer.data('startslide');
parentobject[layer.attr('id')].lastslide = layer.data('endslide');
}
layer.data('slideid',slideid);
parentobject[layer.attr('id')].defclasses=c=layer[0].className;
parentobject[layer.attr('id')].wrapper = c.indexOf("rev_layer_in_column")>=0 ? layer.closest('.rev_column_inner') : c.indexOf("rev_column_inner")>=0 ? layer.closest(".rev_row") : c.indexOf("rev_layer_in_group")>=0 ? layer.closest(".rev_group") : "none";
parentobject[layer.attr('id')].timeline = timeline;
parentobject[layer.attr('id')].layer = layer;
parentobject[layer.attr('id')].triggerstate = layer.data('lasttriggerstate');
parentobject[layer.attr('id')].dchildren = c.indexOf("rev_row")>=0 ? layer[0].getElementsByClassName('rev_column_inner') : c.indexOf("rev_column_inner")>=0 ? layer[0].getElementsByClassName('tp-caption') : c.indexOf("rev_group")>=0 ? layer[0].getElementsByClassName('rev_layer_in_group') : "none";
layer.data('timeline',timeline);
}
//GO THROUGH ALL LI
opt.c.find('.tp-revslider-slidesli, .tp-static-layers').each(function() {
var slide = jQuery(this),
index = slide.data('index');
opt.timelines[index] = opt.timelines[index] || {};
opt.timelines[index].layers = opt.timelines[index].layers || new Object();
// COLLECT LAYERS
slide.find('.tp-caption').each(function(i) {
addTimeLineWithLabel(jQuery(this),opt,opt.timelines[index].layers,index);
});
});
},
/***************************************
- BUILD CAPTION FULL TIMELINES -
***************************************/
buildFullTimeLine : function(obj) {
//if (obj.recall) return;
var _nc = obj.caption,
_ = _nc.data(),
opt = obj.opt,
$svg = {},
_nc_tl_obj,
_nc_timeline,
$hover = newHoverAnimObject(),
timelineprog = 0;
_nc_tl_obj = opt.timelines[_._slideid]["layers"][_._id];
if (_nc_tl_obj.generated && obj.regenerate!==true) return;
_nc_timeline = _nc_tl_obj.timeline;
_nc_tl_obj.generated = true;
if (_.current_timeline!==undefined && obj.regenerate!==true) {
_.current_timeline_pause = _.current_timeline.paused();
_.current_timeline_time = _.current_timeline.time();
_.current_is_nc_timeline = _nc_timeline === _.current_timeline;
_.static_layer_timeline_time = _.current_timeline_time;
} else {
_.static_layer_timeline_time = _.current_timeline_time;
_.current_timeline_time = 0;
if (_.current_timeline) _.current_timeline.clear();
}
_nc_timeline.clear();
// PRESET SVG STYLE
$svg.svg = _.svg_src!=undefined ? _nc.find('svg') : false;
if ($svg.svg) {
_.idlesvg = setSVGAnimObject(_.svg_idle,newSVGHoverAnimObject());
punchgs.TweenLite.set($svg.svg,_.idlesvg.anim);
}
// HOVER ANIMATION
if (_.hoverframeindex!==-1 && _.hoverframeindex!==undefined) {
if (!_nc.hasClass("rs-hover-ready")) {
_nc.addClass("rs-hover-ready");
_.hovertimelines = {};
_.hoveranim = getAnimDatas($hover,_.frames[_.hoverframeindex].to);
_.hoveranim = convertHoverStyle(_.hoveranim,_.frames[_.hoverframeindex].style);
if ($svg.svg) {
var $svghover = setSVGAnimObject(_.svg_hover,newSVGHoverAnimObject());
if (_.hoveranim.anim.color!=undefined) {
$svghover.anim.fill = _.hoveranim.anim.color;
_.idlesvg.anim.css.fill = $svg.svg.css("fill");
}
_.hoversvg = $svghover;
}
_nc.hover(function(e) {
var obj = {caption:jQuery(e.currentTarget), opt:opt, firstframe : "frame_0", lastframe:"frame_999"},
tl = getTLInfos(obj),
nc = obj.caption,
_ = nc.data(),
frame = _.frames[_.hoverframeindex],
animended = true;
_.forcehover = frame.force;
if (animended) {
_.hovertimelines.item = punchgs.TweenLite.to(nc,frame.speed/1000,_.hoveranim.anim);
if (_.hoverzIndex || (_.hoveranim.anim && _.hoveranim.anim.zIndex)) {
_.basiczindex = _.basiczindex===undefined ? _.cssobj.zIndex : _.basiczindex;
_.hoverzIndex = _.hoverzIndex===undefined ? _.hoveranim.anim.zIndex : _.hoverzIndex;
_.inhoverinanimation = true;
if (frame.speed===0) _.inhoverinanimation= false;
_.hovertimelines.pwhoveranim = punchgs.TweenLite.to(_._pw,frame.speed/1000,{overwrite:"auto",zIndex:_.hoverzIndex});
_.hovertimelines.pwhoveranim.eventCallback("onComplete",function(_) {
_.inhoverinanimation=false;;
},[_])
}
if ($svg.svg)
_.hovertimelines.svghoveranim = punchgs.TweenLite.to([$svg.svg, $svg.svg.find('path')],frame.speed/1000,_.hoversvg.anim);
_.hoveredstatus = true;
}
},
function(e) {
var obj = {caption:jQuery(e.currentTarget), opt:opt, firstframe : "frame_0", lastframe:"frame_999"},
tl = getTLInfos(obj),
nc = obj.caption,
_ = nc.data(),
frame = _.frames[_.hoverframeindex],
animended = true;
if (animended) {
_.hoveredstatus = false;
_.inhoveroutanimation = true;
_.hovertimelines.item.pause();
_.hovertimelines.item = punchgs.TweenLite.to(nc,frame.speed/1000,jQuery.extend(true,{},_._gsTransformTo));
if (frame.speed==0) _.inhoveroutanimation= false;
_.hovertimelines.item.eventCallback("onComplete",function(_) {
_.inhoveroutanimation=false;;
},[_])
if (_.hovertimelines.pwhoveranim!==undefined) _.hovertimelines.pwhoveranim = punchgs.TweenLite.to(_._pw,frame.speed/1000,{overwrite:"auto",zIndex:_.basiczindex});
if ($svg.svg) punchgs.TweenLite.to([$svg.svg, $svg.svg.find('path')],frame.speed/1000,_.idlesvg.anim);
}
});
}
} // END IF HOVER ANIMATION
// LOOP TROUGH THE FRAMES AND CREATE FRAME TWEENS AND TL'S ON THE MAIN TIMELINE
for (var frame_index=0; frame_index<_.frames.length;frame_index++) {
if (frame_index !== _.hoverframeindex) {
// Create a new Timeline for each Frame
var frame_name = frame_index === _.inframeindex ? "frame_0" : frame_index===_.outframeindex || _.frames[frame_index].frame==="frame_999" ? "frame_999" : "frame_"+frame_index;
_.frames[frame_index].framename = frame_name;
_nc_tl_obj[frame_name] = {};
_nc_tl_obj[frame_name].timeline = new punchgs.TimelineLite({align:"normal"});
var $start = _.frames[frame_index].delay,
$start_status = _.triggered_startstatus,
mdelay = $start !== undefined ? jQuery.inArray($start,["slideenter","bytrigger","wait"])>=0 ? $start : parseInt($start,0)/1000 : "wait";
// ADD STARTLABEL FOR STATIC LAYERS
if (_nc_tl_obj.firstslide!==undefined && frame_name==="frame_0") {
_nc_timeline.addLabel("slide_"+_nc_tl_obj.firstslide+"_pause",0);
_nc_timeline.addPause("slide_"+_nc_tl_obj.firstslide+"_pause");
_nc_timeline.addLabel("slide_"+_nc_tl_obj.firstslide,"+=0.005");
}
// ADD ENDSLIDE LABEL FOR STATIC LAYERS
if (_nc_tl_obj.lastslide!==undefined && frame_name==="frame_999") {
_nc_timeline.addLabel("slide_"+_nc_tl_obj.lastslide+"_pause","+=0.01");
_nc_timeline.addPause("slide_"+_nc_tl_obj.lastslide+"_pause");
_nc_timeline.addLabel("slide_"+_nc_tl_obj.lastslide,"+=0.005");
}
if (!jQuery.isNumeric(mdelay)) {
_nc_timeline.addLabel("pause_"+frame_index,"+=0.01");
_nc_timeline.addPause("pause_"+frame_index);
_nc_timeline.addLabel(frame_name,"+=0.01");
} else {
_nc_timeline.addLabel(frame_name,"+="+mdelay);
}
_nc_timeline = _R.createFrameOnTimeline({caption:obj.caption, timeline : _nc_timeline, label:frame_name, frameindex : frame_index, opt:opt });
} //
} // END OF LOOP THROUGH FRAMES AND CREATING NEW TWEENS
//_nc_timeline.time(timelineprog);
if (!obj.regenerate) {
if (_.current_is_nc_timeline)
_.current_timeline = _nc_timeline;
if (_.current_timeline_pause)
_nc_timeline.pause(_.current_timeline_time);
else
_nc_timeline.time(_.current_timeline_time);
}
return;
},
/////////////////////////////////////
// BUILD A FRAME ON THE TIMELINE //
/////////////////////////////////////
createFrameOnTimeline : function(obj) {
var _nc = obj.caption,
_ = _nc.data(),
label = obj.label,
timeline = obj.timeline,
frame_index = obj.frameindex,
opt = obj.opt,
animobject = _nc,
tweens = {},
_nc_tl_obj = opt.timelines[_._slideid]["layers"][_._id],
verylastframe = _.frames.length-1,
$split = _.frames[frame_index].split,
$splitdir = _.frames[frame_index].split_direction,
$sfx = _.frames[frame_index].sfx_effect,
$splitnow = false;
$splitdir = $splitdir === undefined ? "forward" : $splitdir;
if (_.hoverframeindex!==-1 && _.hoverframeindex==verylastframe) verylastframe=verylastframe-1;
tweens.content = new punchgs.TimelineLite({align:"normal"});
tweens.mask = new punchgs.TimelineLite({align:"normal"});
if (timeline.vars.id===undefined)
timeline.vars.id=Math.round(Math.random()*100000);
if (_._nctype==="column") {
timeline.add(punchgs.TweenLite.set(_._cbgc_man,{visibility:"visible"}),label);
timeline.add(punchgs.TweenLite.set(_._cbgc_auto,{visibility:"hidden"}),label);
}
if (_.splittext && frame_index===0) {
if (_.mySplitText !== undefined) _.mySplitText.revert();
var splittarget = _nc.find('a').length>0 ? _nc.find('a') : _nc;
_.mySplitText = new punchgs.SplitText(splittarget,{type:"chars,words,lines",charsClass:"tp-splitted tp-charsplit",wordsClass:"tp-splitted tp-wordsplit",linesClass:"tp-splitted tp-linesplit"});
_nc.addClass("splitted");
}
if ( _.mySplitText !==undefined && $split && $split.match(/chars|words|lines/g)) {
animobject = _.mySplitText[$split];
$splitnow = true;
}
// ANIMATE THE FRAME
var $to = frame_index!==_.outframeindex ? getAnimDatas(newAnimObject(),_.frames[frame_index].to,undefined,$splitnow,animobject.length-1) : _.frames[frame_index].to !==undefined && _.frames[frame_index].to.match(/auto:auto/g)===null ? getAnimDatas(newEndAnimObject(),_.frames[frame_index].to,opt.sdir==1,$splitnow,(animobject.length-1)) : getAnimDatas(newEndAnimObject(),_.frames[_.inframeindex].from,opt.sdir==0,$splitnow,(animobject.length-1)),
$from = _.frames[frame_index].from !==undefined ? getAnimDatas($to,_.frames[_.inframeindex].from,opt.sdir==1,$splitnow,animobject.length-1) : undefined, // ANIMATE FROM THE VERY FIRST SETTING, OR FROM PREVIOUS SETTING
$elemdelay = _.frames[frame_index].splitdelay,
$mask_from,$mask_to;
if (frame_index===0 && !obj.fromcurrentstate)
$mask_from = getMaskDatas(_.frames[frame_index].mask);
else
$mask_to = getMaskDatas(_.frames[frame_index].mask);
$to.anim.ease = _.frames[frame_index].ease===undefined ? punchgs.Power1.easeInOut : _.frames[frame_index].ease;
if ($from!==undefined) {
$from.anim.ease = _.frames[frame_index].ease===undefined ? punchgs.Power1.easeInOut : _.frames[frame_index].ease;
$from.speed = _.frames[frame_index].speed === undefined ? $from.speed : _.frames[frame_index].speed;
$from.anim.x = $from.anim.x * opt.bw || getBorderDirections($from.anim.x,opt,_.eow,_.eoh,_.calcy,_.calcx, "horizontal" );
$from.anim.y = $from.anim.y * opt.bw || getBorderDirections($from.anim.y,opt,_.eow,_.eoh,_.calcy,_.calcx, "vertical" );
}
if ($to!==undefined) {
$to.anim.ease = _.frames[frame_index].ease===undefined ? punchgs.Power1.easeInOut : _.frames[frame_index].ease;
$to.speed = _.frames[frame_index].speed === undefined ? $to.speed : _.frames[frame_index].speed;
$to.anim.x = $to.anim.x * opt.bw || getBorderDirections($to.anim.x,opt,_.eow,_.eoh,_.calcy,_.calcx, "horizontal" );
$to.anim.y = $to.anim.y * opt.bw || getBorderDirections($to.anim.y,opt,_.eow,_.eoh,_.calcy,_.calcx, "vertical" );
}
// FIX VISIBLE IFRAME BUG IN SAFARI
if (_nc.data('iframes')) timeline.add(punchgs.TweenLite.set(_nc.find('iframe'),{autoAlpha:1}),label+"+=0.001");
// IN CASE LAST FRAME REACHED, AND ANIMATION IS SET TO AUTO (REVERSE PLAYING)
if (frame_index===_.outframeindex) {
if (_.frames[frame_index].to && _.frames[frame_index].to.match(/auto:auto/g)) {
//
}
$to.speed = _.frames[frame_index].speed === undefined || _.frames[frame_index].speed==="inherit" ? _.frames[_.inframeindex].speed : _.frames[frame_index].speed;
$to.anim.ease = _.frames[frame_index].ease === undefined || _.frames[frame_index].ease==="inherit" ? _.frames[_.inframeindex].ease : _.frames[frame_index].ease;
$to.anim.overwrite ="auto";
}
// IN CASE FIRST FRAME REACHED
if (frame_index===0 && !obj.fromcurrentstate) {
if (animobject != _nc) {
var old = jQuery.extend({},$to.anim,true);
timeline.add(punchgs.TweenLite.set(_nc, $to.anim),label);
$to = newAnimObject();
$to.ease = old.ease;
if (old.filter!==undefined) $to.anim.filter = old.filter;
if (old["-webkit-filter"]!==undefined) $to.anim["-webkit-filter"] = old["-webkit-filter"];
}
$from.anim.visibility = "hidden";
$from.anim.immediateRender = true;
$to.anim.visibility = "visible";
//_nc.data('speed',$from.speed);
//_nc.data('ease',$to.anim.ease);
} else
if (frame_index===0 && obj.fromcurrentstate) {
$to.speed = $from.speed;
}
if (obj.fromcurrentstate) {
$to.anim.immediateRender = true;
}
// SPECIAL EFFECT LAYER ANIMATIONS
var $sfx_blockdelay = -1;
//Boxed Mask Animation 0 or 999 Frame
if ((frame_index===0 && !obj.fromcurrentstate && _._bmask!==undefined && $sfx!==undefined && $sfx.indexOf("block")>=0) ||
(frame_index===_.outframeindex && !obj.fromcurrentstate && _._bmask!==undefined && $sfx!==undefined && $sfx.indexOf("block")>=0)) {
var $sfx_speed = frame_index===0 ? ($from.speed/1000)/2 : ($to.speed/1000)/2,
$sfx_ft = [{scaleY:1,scaleX:0,transformOrigin:"0% 50%"},{scaleY:1,scaleX:1,ease:$to.anim.ease}],
$sfx_t = {scaleY:1,scaleX:0,transformOrigin:"100% 50%",ease:$to.anim.ease};
$sfx_blockdelay = $elemdelay === undefined ? $sfx_speed : $elemdelay + $sfx_speed;
switch ($sfx) {
case "blocktoleft":
case "blockfromright":
$sfx_ft[0].transformOrigin = "100% 50%";
$sfx_t.transformOrigin = "0% 50%";
break;
case "blockfromtop":
case "blocktobottom":
$sfx_ft = [{scaleX:1,scaleY:0,transformOrigin:"50% 0%"},{scaleX:1,scaleY:1,ease:$to.anim.ease}];
$sfx_t = {scaleX:1,scaleY:0,transformOrigin:"50% 100%",ease:$to.anim.ease};
break;
case "blocktotop":
case "blockfrombottom":
$sfx_ft = [{scaleX:1,scaleY:0,transformOrigin:"50% 100%"},{scaleX:1,scaleY:1,ease:$to.anim.ease}];
$sfx_t = {scaleX:1,scaleY:0,transformOrigin:"50% 0%",ease:$to.anim.ease};
break;
}
$sfx_ft[0].background = _.frames[frame_index].sfxcolor;
timeline.add(tweens.mask.fromTo(_._bmask,$sfx_speed, $sfx_ft[0], $sfx_ft[1],$elemdelay),label);
timeline.add(tweens.mask.to(_._bmask,$sfx_speed,$sfx_t,$sfx_blockdelay),label);
}
if ($splitnow)
var ri = getSplitTextDirs(animobject.length-1, $splitdir);
if (frame_index===0 && !obj.fromcurrentstate) {
if (_._sfx_in==="block")
timeline.add(tweens.content.staggerFromTo(animobject,0.05,{x:0,y:0,autoAlpha:0},{x:0,y:0,autoAlpha:1,delay:$sfx_blockdelay}),label);
else {
if ($splitnow && ri!==undefined) {
var cycles = {from:getCycles($from.anim), to:getCycles($to.anim)};
for (var si in animobject) {
var $fanim = jQuery.extend({},$from.anim),
$tanim = jQuery.extend({},$to.anim);
for (var k in cycles.from) {
$fanim[k] = parseInt(cycles.from[k].values[cycles.from[k].index],0);
cycles.from[k].index = cycles.from[k].index < cycles.from[k].len ? cycles.from[k].index+1 : 0;
}
$tanim.ease = $fanim.ease;
if (_.frames[frame_index].color!==undefined) {
$fanim.color = _.frames[frame_index].color;
$tanim.color = _.cssobj.styleProps.color;
}
if (_.frames[frame_index].bgcolor!==undefined) {
$fanim.backgroundColor = _.frames[frame_index].bgcolor;
$tanim.backgroundColor = _.cssobj.styleProps["background-color"];
}
timeline.add(tweens.content.fromTo(animobject[ri[si]],$from.speed/1000,$fanim,$tanim,$elemdelay*si),label);
}
} else {
if (_.frames[frame_index].color!==undefined) {
$from.anim.color = _.frames[frame_index].color;
$to.anim.color = _.cssobj.styleProps.color;
}
if (_.frames[frame_index].bgcolor!==undefined) {
$from.anim.backgroundColor = _.frames[frame_index].bgcolor;
$to.anim.backgroundColor = _.cssobj.styleProps["background-color"];
}
timeline.add(tweens.content.staggerFromTo(animobject,$from.speed/1000,$from.anim,$to.anim,$elemdelay),label);
}
}
} else {
if (_._sfx_out==="block" && frame_index===_.outframeindex) {
timeline.add(tweens.content.staggerTo(animobject,0.001,{autoAlpha:0,delay:$sfx_blockdelay}),label);
timeline.add(tweens.content.staggerTo(animobject,((($to.speed/1000)/2)-0.001),{x:0,delay:$sfx_blockdelay}),label+"+=0.001");
} else
if ($splitnow && ri!==undefined) {
var cycles = {to:getCycles($to.anim)};
for (var si in animobject) {
var $tanim = jQuery.extend({},$to.anim);
for (var k in cycles.to) {
$tanim[k] = parseInt(cycles.to[k].values[cycles.to[k].index],0);
cycles.to[k].index = cycles.to[k].index < cycles.to[k].len ? cycles.to[k].index+1 : 0;
}
if (_.frames[frame_index].color!==undefined)
$tanim.color = _.frames[frame_index].color;
if (_.frames[frame_index].bgcolor!==undefined)
$tanim.backgroundColor = _.frames[frame_index].bgcolor;
timeline.add(tweens.content.to(animobject[ri[si]],$to.speed/1000,$tanim,$elemdelay*si),label);
}
} else {
if (_.frames[frame_index].color!==undefined)
$to.anim.color = _.frames[frame_index].color;
if (_.frames[frame_index].bgcolor!==undefined)
$to.anim.backgroundColor = _.frames[frame_index].bgcolor;
timeline.add(tweens.content.staggerTo(animobject,$to.speed/1000,$to.anim,$elemdelay),label);
}
}
if ($mask_to!==undefined && $mask_to!==false && (frame_index!==0 || !obj.ignorefirstframe)) {
$mask_to.anim.ease = $mask_to.anim.ease === undefined || $mask_to.anim.ease==="inherit" ? _.frames[0].ease : $mask_to.anim.ease;
$mask_to.anim.overflow = "hidden";
$mask_to.anim.x = $mask_to.anim.x * opt.bw || getBorderDirections($mask_to.anim.x,opt,_.eow,_.eoh,_.calcy,_.calcx,"horizontal");
$mask_to.anim.y = $mask_to.anim.y * opt.bw || getBorderDirections($mask_to.anim.y,opt,_.eow,_.eoh,_.calcy,_.calcx,"vertical");
}
if ((frame_index===0 && $mask_from && $mask_from!==false && !obj.fromcurrentstate) || (frame_index===0 && obj.ignorefirstframe)) {
$mask_to = new Object();
$mask_to.anim = new Object();
$mask_to.anim.overwrite = "auto";
$mask_to.anim.ease = $to.anim.ease;
$mask_to.anim.x = $mask_to.anim.y = 0;
if ($mask_from && $mask_from!==false) {
$mask_from.anim.x = $mask_from.anim.x * opt.bw || getBorderDirections($mask_from.anim.x,opt,_.eow,_.eoh,_.calcy,_.calcx,"horizontal");
$mask_from.anim.y = $mask_from.anim.y * opt.bw || getBorderDirections($mask_from.anim.y,opt,_.eow,_.eoh,_.calcy,_.calcx,"vertical");
$mask_from.anim.overflow ="hidden";
}
} else
if (frame_index===0)
timeline.add(tweens.mask.set(_._mw,{overflow:"visible"}),label);
if ($mask_from!==undefined && $mask_to!==undefined && $mask_from!==false && $mask_to!==false)
timeline.add(tweens.mask.fromTo(_._mw,$from.speed/1000,$mask_from.anim,$mask_to.anim,$elemdelay),label);
else
if ($mask_to!==undefined && $mask_to!==false)
timeline.add(tweens.mask.to(_._mw,$to.speed/1000,$mask_to.anim,$elemdelay),label);
timeline.addLabel(label+"_end");
// Reset Hover Effect when Last Frame (Out Animation) ordered
if (_._gsTransformTo && frame_index===verylastframe && _.hoveredstatus)
_.hovertimelines.item = punchgs.TweenLite.to(_nc,0,_._gsTransformTo);
_._gsTransformTo = false;
// ON START
tweens.content.eventCallback("onStart",tweenOnStart,[frame_index,_nc_tl_obj,_._pw,_,timeline,$to.anim,_nc,obj.updateStaticTimeline,opt]);
// ON UPDATE
tweens.content.eventCallback("onUpdate",tweenOnUpdate,[label,_._id,_._pw,_,timeline,frame_index,jQuery.extend(true,{},$to.anim),obj.updateStaticTimeline,_nc,opt]);
// ON COMPLETE
tweens.content.eventCallback("onComplete",tweenOnComplete,[frame_index,_.frames.length,verylastframe,_._pw,_,timeline,obj.updateStaticTimeline,_nc,opt]);
return timeline;
},
//////////////////////////////
// MOVE OUT THE CAPTIONS //
////////////////////////////
endMoveCaption : function(obj) {
obj.firstframe="frame_0";
obj.lastframe="frame_999";
var nc = getTLInfos(obj),
_ = obj.caption.data();
if (obj.frame!==undefined)
nc.timeline.play(obj.frame);
else
if (!nc.static || (obj.currentslide>=nc.removeonslide) || (obj.currentslide<nc.showonslide)) {
nc.outnow = new punchgs.TimelineLite;
nc.timeline.pause();
if (_.visibleelement===true)
_R.createFrameOnTimeline({caption:obj.caption, timeline : nc.outnow, label:"outnow", frameindex : obj.caption.data("outframeindex"), opt:obj.opt, fromcurrentstate:true}).play();
}
if (obj.checkchildrens)
if (nc.timeline_obj && nc.timeline_obj.dchildren && nc.timeline_obj.dchildren!=="none" && nc.timeline_obj.dchildren.length>0)
for (var q = 0; q<nc.timeline_obj.dchildren.length;q++) {
_R.endMoveCaption({caption:jQuery(nc.timeline_obj.dchildren[q]), opt:obj.opt});
}
},
//////////////////////////////////
// MOVE CAPTIONS TO xx FRAME //
/////////////////////////////////
playAnimationFrame : function(obj) {
obj.firstframe = obj.triggerframein;
obj.lastframe = obj.triggerframeout;
var nc = getTLInfos(obj),
_ = obj.caption.data(),
frameindex,
i=0;
for (var k in _.frames) {
if (_.frames[k].framename === obj.frame) frameindex = i;
i++;
}
if (_.triggeredtimeline!==undefined) _.triggeredtimeline.pause();
_.triggeredtimeline = new punchgs.TimelineLite;
nc.timeline.pause();
var fcs = _.visibleelement===true ? true : false;
_.triggeredtimeline = _R.createFrameOnTimeline({caption:obj.caption, timeline : _.triggeredtimeline, label:"triggered", frameindex : frameindex, updateStaticTimeline:true, opt:obj.opt, ignorefirstframe:true, fromcurrentstate:fcs}).play();
//nc.timeline.play(obj.frame);
},
//////////////////////////
// REMOVE THE CAPTIONS //
/////////////////////////
removeTheCaptions : function(actli,opt) {
if (_R.compare_version(extension).check==="stop") return false;
var removetime = 0,
index = actli.data('index'),
allcaptions = new Array;
// COLLECT ALL CAPTIONS
if (opt.layers[index])
jQuery.each(opt.layers[index], function(i,a) { allcaptions.push(a); });
/*if (opt.layers["static"])
jQuery.each(opt.layers["static"], function(i,a) { allcaptions.push(a); });*/
var slideindex = _R.currentSlideIndex(opt);
// GO THROUGH ALL CAPTIONS, AND MANAGE THEM
if (allcaptions)
jQuery.each(allcaptions,function(i) {
var _nc=jQuery(this);
if (opt.sliderType==="carousel" && opt.carousel.showLayersAllTime==="on") {
clearTimeout(_nc.data('videoplaywait'));
if (_R.stopVideo) _R.stopVideo(_nc,opt);
if (_R.removeMediaFromList) _R.removeMediaFromList(_nc,opt);
opt.lastplayedvideos = [];
} else {
killCaptionLoops(_nc);
clearTimeout(_nc.data('videoplaywait'));
_R.endMoveCaption({caption:_nc,opt:opt, currentslide:slideindex});
if (_R.removeMediaFromList) _R.removeMediaFromList(_nc,opt);
opt.lastplayedvideos = [];
}
});
}
});
/**********************************************************************************************
- HELPER FUNCTIONS FOR LAYER TRANSFORMS -
**********************************************************************************************/
var tweenOnStart = function(frame_index,ncobj,pw,_,tl,toanim,_nc,ust,opt){
var data={};
data.layer = _nc;
data.eventtype = frame_index===0 ? "enterstage" : frame_index===_.outframeindex ? "leavestage" : "framestarted";
data.layertype = _nc.data('layertype');
_.active = true;
//_nc.data('active',true);
//_.idleanimadded = false;
data.frame_index = frame_index;
data.layersettings = _nc.data();
opt.c.trigger("revolution.layeraction",[data]);
if (_.loopanimation=="on") callCaptionLoops(_._lw,opt.bw);
if (data.eventtype==="enterstage") {
_.animdirection="in";
_.visibleelement=true;
_R.toggleState(_.layertoggledby);
}
if (ncobj.dchildren!=="none" && ncobj.dchildren!==undefined && ncobj.dchildren.length>0) {
if (frame_index===0)
for (var q=0;q<ncobj.dchildren.length;q++) {
jQuery(ncobj.dchildren[q]).data('timeline').play(0);
}
else
if (frame_index===_.outframeindex)
for (var q=0;q<ncobj.dchildren.length;q++) {
_R.endMoveCaption({caption:jQuery(ncobj.dchildren[q]), opt:opt, checkchildrens:true});
}
}
punchgs.TweenLite.set(pw,{visibility:"visible"});
_.current_frame = frame_index;
_.current_timeline = tl;
_.current_timeline_time = tl.time();
if (ust) _.static_layer_timeline_time = _.current_timeline_time;
_.last_frame_started = frame_index;
}
var tweenOnUpdate = function(label,id,pw,_,tl,frame_index,toanim,ust,_nc,opt) {
if (_._nctype==="column") setColumnBgDimension(_nc,opt);
punchgs.TweenLite.set(pw,{visibility:"visible"});
_.current_frame = frame_index;
_.current_timeline = tl;
_.current_timeline_time = tl.time();
if (ust) _.static_layer_timeline_time = _.current_timeline_time;
if (_.hoveranim !== undefined && _._gsTransformTo===false) {
_._gsTransformTo = toanim;
if (_._gsTransformTo && _._gsTransformTo.startAt) delete _._gsTransformTo.startAt;
if (_.cssobj.styleProps.css===undefined)
_._gsTransformTo = jQuery.extend(true,{},_.cssobj.styleProps,_._gsTransformTo);
else
_._gsTransformTo = jQuery.extend(true,{},_.cssobj.styleProps.css,_._gsTransformTo);
}
_.visibleelement=true;
}
var tweenOnComplete = function(frame_index,frame_max,verylastframe,pw,_,tl,ust,_nc,opt) {
var data={};
data.layer = _nc;
data.eventtype = frame_index===0 ? "enteredstage" : frame_index===frame_max-1 || frame_index===verylastframe ? "leftstage" : "frameended";
data.layertype = _nc.data('layertype');
data.layersettings = _nc.data();
opt.c.trigger("revolution.layeraction",[data]);
if (data.eventtype!=="leftstage") _R.animcompleted(_nc,opt);
if (data.eventtype==="leftstage")
if (_R.stopVideo) _R.stopVideo(_nc,opt);
if (_._nctype==="column") {
punchgs.TweenLite.to(_._cbgc_man,0.01,{visibility:"hidden"});
punchgs.TweenLite.to(_._cbgc_auto,0.01,{visibility:"visible"});
}
if (data.eventtype === "leftstage") {
_.active = false;
punchgs.TweenLite.set(pw,{visibility:"hidden",overwrite:"auto"});
_.animdirection="out";
_.visibleelement=false;
_R.unToggleState(_.layertoggledby);
//RESET VIDEO AFTER REMOVING LAYER
if (_._nctype==="video" && _R.resetVideo) setTimeout(function() {
_R.resetVideo(_nc,opt);
},100);
}
_.current_frame = frame_index;
_.current_timeline = tl;
_.current_timeline_time = tl.time();
if (ust) _.static_layer_timeline_time = _.current_timeline_time;
}
//////////////////////////////////////////////
// - GET TIMELINE INFOS FROM CAPTION - //
/////////////////////////////////////////////
var getTLInfos = function(obj) {
var _ = {};
obj.firstframe=obj.firstframe===undefined ? "frame_0" : obj.firstframe;
obj.lastframe=obj.lastframe===undefined ? "frame_999" : obj.lastframe;
_.id = obj.caption.data('id') || obj.caption.attr('id');
_.slideid = obj.caption.data('slideid') || obj.caption.closest('.tp-revslider-slidesli').data('index');
_.timeline_obj = obj.opt.timelines[_.slideid]["layers"][_.id];
_.timeline = _.timeline_obj.timeline;
_.ffs = _.timeline.getLabelTime(obj.firstframe);
_.ffe = _.timeline.getLabelTime(obj.firstframe+"_end");
_.lfs = _.timeline.getLabelTime(obj.lastframe);
_.lfe = _.timeline.getLabelTime(obj.lastframe+"_end");
_.ct = _.timeline.time();
_.static = _.timeline_obj.firstslide!=undefined || _.timeline_obj.lastslide!=undefined;
if (_.static) {
_.showonslide = _.timeline_obj.firstslide;
_.removeonslide = _.timeline_obj.lastslide;
}
return _;
}
//////////////////////////////////////////////
// - GET SPLITTEXT DIRECTION ARRAY - //
/////////////////////////////////////////////
var shuffleArray = function(array) {
var currentIndex = array.length, temporaryValue, randomIndex;
// While there remain elements to shuffle...
while (0 !== currentIndex) {
// Pick a remaining element...
randomIndex = Math.floor(Math.random() * currentIndex);
currentIndex -= 1;
// And swap it with the current element.
temporaryValue = array[currentIndex];
array[currentIndex] = array[randomIndex];
array[randomIndex] = temporaryValue;
}
return array;
}
var getSplitTextDirs = function(alen,d) {
var ri = new Array();
switch (d) {
case "forward":
case "random":
for (var si=0;si<=alen;si++) { ri.push(si);}
if (d==="random") ri = shuffleArray(ri);
break;
case "backward":
for (var si=0;si<=alen;si++) { ri.push(alen-si); }
break;
case "middletoedge":
var cc = Math.ceil(alen/2),
mm = cc-1,
pp = cc+1;
ri.push(cc);
for (var si=0;si<cc;si++) {
if (mm>=0) ri.push(mm);
if (pp<=alen) ri.push(pp);
mm--;
pp++;
}
break;
case "edgetomiddle":
var mm = alen,
pp = 0;
for (var si=0;si<=Math.floor(alen/2);si++) {
ri.push(mm);
if (pp<mm) ri.push(pp);
mm--;
pp++;
}
break;
}
return ri;
}
//////////////////////////////////////////////
// - GET SPLITTEXT CYCLES ANIMATION - //
/////////////////////////////////////////////
var getCycles = function(anim) {
var _ = {};
for (var a in anim) {
if (typeof anim[a] === "string" && anim[a].indexOf("|")>=0) {
if (_[a]===undefined) _[a] = {index:0};
_[a].values = ((anim[a].replace("[","")).replace("]","")).split("|");
_[a].len = _[a].values.length-1;
}
}
return _;
}
/////////////////////////////////////
// - CREATE ANIMATION OBJECT - //
/////////////////////////////////////
var newAnimObject = function(a) {
a = a===undefined ? new Object() : a;
a.anim = a.anim===undefined ? new Object() : a.anim;
a.anim.x = a.anim.x===undefined ? 0 : a.anim.x;
a.anim.y = a.anim.y===undefined ? 0 : a.anim.y;
a.anim.z = a.anim.z===undefined ? 0 : a.anim.z;
a.anim.rotationX = a.anim.rotationX===undefined ? 0 : a.anim.rotationX;
a.anim.rotationY = a.anim.rotationY===undefined ? 0 : a.anim.rotationY;
a.anim.rotationZ = a.anim.rotationZ===undefined ? 0 : a.anim.rotationZ;
a.anim.scaleX = a.anim.scaleX===undefined ? 1 : a.anim.scaleX;
a.anim.scaleY = a.anim.scaleY===undefined ? 1 : a.anim.scaleY;
a.anim.skewX = a.anim.skewX===undefined ? 0 : a.anim.skewX;
a.anim.skewY = a.anim.skewY===undefined ? 0 : a.anim.skewY;
a.anim.opacity = a.anim.opacity===undefined ? 1 : a.anim.opacity;
a.anim.transformOrigin = a.anim.transformOrigin===undefined ? "50% 50%" : a.anim.transformOrigin;
a.anim.transformPerspective = a.anim.transformPerspective===undefined ? 600 : a.anim.transformPerspective;
a.anim.rotation = a.anim.rotation===undefined ? 0 : a.anim.rotation;
//a.anim.ease = a.anim.ease===undefined ? punchgs.Power3.easeOut : a.anim.ease;
a.anim.force3D = a.anim.force3D===undefined ? "auto" : a.anim.force3D;
a.anim.autoAlpha = a.anim.autoAlpha===undefined ? 1 : a.anim.autoAlpha;
a.anim.visibility = a.anim.visibility===undefined ? "visible" : a.anim.visibility;
a.anim.overwrite = a.anim.overwrite===undefined ? "auto" : a.anim.overwrite;
a.speed = a.speed===undefined ? 0.3 : a.speed;
a.filter = a.filter===undefined ? "blur(0px) grayscale(0%) brightness(100%)" : a.filter;
a["-webkit-filter"] = a["-webkit-filter"]===undefined ? "blur(0px) grayscale(0%) brightness(100%)" : a["-webkit-filter"];
return a;
}
var newSVGHoverAnimObject = function() {
var a = new Object();
a.anim = new Object();
a.anim.stroke="none";
a.anim.strokeWidth=0;
a.anim.strokeDasharray="none";
a.anim.strokeDashoffset="0";
return a;
}
var setSVGAnimObject = function(data,a) {
var customarray = data.split(';');
if (customarray)
jQuery.each(customarray,function(index,pa) {
var p = pa.split(":")
var w = p[0],
v = p[1];
if (w=="sc") a.anim.stroke=v;
if (w=="sw") a.anim.strokeWidth=v;
if (w=="sda") a.anim.strokeDasharray=v;
if (w=="sdo") a.anim.strokeDashoffset=v;
});
return a;
}
var newEndAnimObject = function() {
var a = new Object();
a.anim = new Object();
a.anim.x=0;
a.anim.y=0;
a.anim.z=0;
return a;
}
var newHoverAnimObject = function() {
var a = new Object();
a.anim = new Object();
a.speed = 0.2;
return a;
}
var animDataTranslator = function(val,defval,$split,$splitamount,ext) {
ext = ext===undefined ? "" : ext;
if (jQuery.isNumeric(parseFloat(val))) {
return parseFloat(val)+ext;
} else
if (val===undefined || val==="inherit") {
return defval+"ext";
} else
if (val.split("{").length>1) {
var min = val.split(","),
max = parseFloat(min[1].split("}")[0]);
min = parseFloat(min[0].split("{")[1]);
if ($split!==undefined && $splitamount!==undefined) {
val=="["+(parseInt(Math.random()*(max-min),0) + parseInt(min,0))+"ext";
for (var i=0;i<$splitamount;i++) {
val = val+"|"+(parseInt(Math.random()*(max-min),0) + parseInt(min,0))+ext;
}
val = val+"]";
} else {
val = Math.random()*(max-min) + min;
}
}
return val;
}
var getBorderDirections = function (x,o,w,h,top,left,direction) {
if (!jQuery.isNumeric(x) && x.match(/%]/g)) {
x = x.split("[")[1].split("]")[0];
if (direction=="horizontal")
x = (w+2)*parseInt(x,0)/100;
else
if (direction=="vertical")
x = (h+2)*parseInt(x,0)/100;
} else {
x = x === "layer_left" ? (0-w) : x === "layer_right" ? w : x;
x = x === "layer_top" ? (0-h) : x==="layer_bottom" ? h : x;
x = x === "left" || x==="stage_left" ? (0-w-left) : x === "right" || x==="stage_right" ? o.conw-left : x === "center" || x === "stage_center" ? (o.conw/2 - w/2)-left : x;
x = x === "top" || x==="stage_top" ? (0-h-top) : x==="bottom" || x==="stage_bottom" ? o.conh-top : x === "middle" || x === "stage_middle" ? (o.conh/2 - h/2)-top : x;
}
return x;
}
///////////////////////////////////////////////////
// ANALYSE AND READ OUT DATAS FROM HTML CAPTIONS //
///////////////////////////////////////////////////
var getAnimDatas = function(frm,data,reversed,$split,$splitamount) {
var o = new Object();
o = jQuery.extend(true,{},o, frm);
if (data === undefined)
return o;
var customarray = data.split(';'),
tmpf="";
if (customarray)
jQuery.each(customarray,function(index,pa) {
var p = pa.split(":")
var w = p[0],
v = p[1];
if (reversed && reversed!=="none" && v!=undefined && v.length>0 && v.match(/\(R\)/)) {
v = v.replace("(R)","");
v = v==="right" ? "left" : v==="left" ? "right" : v==="top" ? "bottom" : v==="bottom" ? "top" : v;
if (v[0]==="[" && v[1]==="-") v = v.replace("[-","[");
else
if (v[0]==="[" && v[1]!=="-") v = v.replace("[","[-");
else
if (v[0]==="-") v = v.replace("-","");
else
if (v[0].match(/[1-9]/)) v="-"+v;
}
if (v!=undefined) {
v = v.replace(/\(R\)/,'');
if (w=="rotationX" || w=="rX") o.anim.rotationX = animDataTranslator(v,o.anim.rotationX,$split,$splitamount,"deg");
if (w=="rotationY" || w=="rY") o.anim.rotationY = animDataTranslator(v,o.anim.rotationY,$split,$splitamount,"deg");
if (w=="rotationZ" || w=="rZ") o.anim.rotation = animDataTranslator(v,o.anim.rotationZ,$split,$splitamount,"deg");
if (w=="scaleX" || w=="sX") o.anim.scaleX = animDataTranslator(v,o.anim.scaleX,$split,$splitamount);
if (w=="scaleY" || w=="sY") o.anim.scaleY = animDataTranslator(v,o.anim.scaleY,$split,$splitamount);
if (w=="opacity" || w=="o") o.anim.opacity = animDataTranslator(v,o.anim.opacity,$split,$splitamount);
//if (w=="letterspacing" || w=="ls") o.anim.letterSpacing = animDataTranslator(v,o.anim.letterSpacing);
if (w=="fb") tmpf = tmpf==="" ? 'blur('+parseInt(v,0)+'px)' : tmpf+" "+'blur('+parseInt(v,0)+'px)';
if (w=="fg") tmpf = tmpf==="" ? 'grayscale('+parseInt(v,0)+'%)' : tmpf+" "+'grayscale('+parseInt(v,0)+'%)';
if (w=="fbr") tmpf = tmpf==="" ? 'brightness('+parseInt(v,0)+'%)' : tmpf+" "+'brightness('+parseInt(v,0)+'%)';
if (o.anim.opacity===0) o.anim.autoAlpha = 0;
o.anim.opacity = o.anim.opacity == 0 ? 0.0001 : o.anim.opacity;
if (w=="skewX" || w=="skX") o.anim.skewX = animDataTranslator(v,o.anim.skewX,$split,$splitamount);
if (w=="skewY" || w=="skY") o.anim.skewY = animDataTranslator(v,o.anim.skewY,$split,$splitamount);
if (w=="x") o.anim.x = animDataTranslator(v,o.anim.x,$split,$splitamount);
if (w=="y") o.anim.y = animDataTranslator(v,o.anim.y,$split,$splitamount);
if (w=="z") o.anim.z = animDataTranslator(v,o.anim.z,$split,$splitamount);
if (w=="transformOrigin" || w=="tO") o.anim.transformOrigin = v.toString();
if (w=="transformPerspective" || w=="tP") o.anim.transformPerspective=parseInt(v,0);
if (w=="speed" || w=="s") o.speed = parseFloat(v);
//if (w=="ease" || w=="e") o.anim.ease = v;
}
})
if (tmpf!=="") {
o.anim['-webkit-filter'] = tmpf;
o.anim['filter'] = tmpf;
}
return o;
}
/////////////////////////////////
// BUILD MASK ANIMATION OBJECT //
/////////////////////////////////
var getMaskDatas = function(d) {
if (d === undefined)
return false;
var o = new Object();
o.anim = new Object();
var s = d.split(';')
if (s)
jQuery.each(s,function(index,param) {
param = param.split(":")
var w = param[0],
v = param[1];
if (w=="x") o.anim.x = v;
if (w=="y") o.anim.y = v;
if (w=="s") o.speed = parseFloat(v);
if (w=="e" || w=="ease") o.anim.ease = v;
});
return o;
}
////////////////////////
// SHOW THE CAPTION //
///////////////////////
var makeArray = function(obj,opt,show) {
if (obj==undefined) obj = 0;
if (!jQuery.isArray(obj) && jQuery.type(obj)==="string" && (obj.split(",").length>1 || obj.split("[").length>1)) {
obj = obj.replace("[","");
obj = obj.replace("]","");
var newobj = obj.match(/'/g) ? obj.split("',") : obj.split(",");
obj = new Array();
if (newobj)
jQuery.each(newobj,function(index,element) {
element = element.replace("'","");
element = element.replace("'","");
obj.push(element);
})
} else {
var tempw = obj;
if (!jQuery.isArray(obj) ) {
obj = new Array();
obj.push(tempw);
}
}
var tempw = obj[obj.length-1];
if (obj.length<opt.rle) {
for (var i=1;i<=opt.curWinRange;i++) {
obj.push(tempw);
}
}
return obj;
}
/* CREATE SHARP CORNERS */
function sharpCorners(nc,$class, $side,$borderh,$borderv,ncch,bgcol) {
var a = nc.find($class);
a.css('borderWidth',ncch+"px");
a.css($side,(0-ncch)+'px');
a.css($borderh,'0px solid transparent');
a.css($borderv,bgcol);
}
var convertHoverStyle = function(t,s) {
if (s===undefined) return t;
s = s.replace("c:","color:");
s = s.replace("bg:","background-color:");
s = s.replace("bw:","border-width:");
s = s.replace("bc:","border-color:");
s = s.replace("br:","borderRadius:");
s = s.replace("bs:","border-style:");
s = s.replace("td:","text-decoration:");
s = s.replace("zi:","zIndex:");
var sp = s.split(";");
if (sp)
jQuery.each(sp,function(key,cont){
var attr = cont.split(":");
if (attr[0].length>0) {
if (attr[0]==="background-color" && attr[1].indexOf("gradient")>=0) attr[0]="background";
t.anim[attr[0]] = attr[1];
}
})
return t;
}
////////////////////////////////////////////////
// - GET CSS ATTRIBUTES OF ELEMENT - //
////////////////////////////////////////////////
var getcssParams = function(nc,level) {
var obj = new Object(),
gp = false,
pc;
// CHECK IF CURRENT ELEMENT SHOULD RESPECT REKURSICVE RESIZES, AND SHOULD OWN THE SAME ATTRIBUTES FROM PARRENT ELEMENT
if (level=="rekursive") {
pc = nc.closest('.tp-caption');
if (pc && (
(nc.css("fontSize") === pc.css("fontSize")) &&
(nc.css("fontWeight") === pc.css("fontWeight")) &&
(nc.css("lineHeight") === pc.css("lineHeight"))
))
gp = true;
}
obj.basealign = nc.data('basealign') || "grid";
obj.fontSize = gp ? pc.data('fontsize')===undefined ? parseInt(pc.css('fontSize'),0) || 0 : pc.data('fontsize') : nc.data('fontsize')===undefined ? parseInt(nc.css('fontSize'),0) || 0 : nc.data('fontsize');
obj.fontWeight = gp ? pc.data('fontweight')===undefined ? parseInt(pc.css('fontWeight'),0) || 0 : pc.data('fontweight') : nc.data('fontweight')===undefined ? parseInt(nc.css('fontWeight'),0) || 0 : nc.data('fontweight');
obj.whiteSpace = gp ? pc.data('whitespace')===undefined ? pc.css('whitespace') || "normal" : pc.data('whitespace') : nc.data('whitespace')===undefined ? nc.css('whitespace') || "normal" : nc.data('whitespace');
obj.textAlign = gp ? pc.data('textalign')===undefined ? pc.css('textalign') || "inherit" : pc.data('textalign') : nc.data('textalign')===undefined ? nc.css('textalign') || "inherit" : nc.data('textalign');
obj.zIndex = gp ? pc.data('zIndex')===undefined ? pc.css('zIndex') || "inherit" : pc.data('zIndex') : nc.data('zIndex')===undefined ? nc.css('zIndex') || "inherit" : nc.data('zIndex');
if (jQuery.inArray(nc.data('layertype'),["video","image","audio"])===-1 && !nc.is("img"))
obj.lineHeight = gp ? pc.data('lineheight')===undefined ? parseInt(pc.css('lineHeight'),0) || 0 : pc.data('lineheight') : nc.data('lineheight')===undefined ? parseInt(nc.css('lineHeight'),0) || 0 : nc.data('lineheight');
else
obj.lineHeight = 0;
obj.letterSpacing = gp ? pc.data('letterspacing')===undefined ? parseFloat(pc.css('letterSpacing'),0) || 0 : pc.data('letterspacing') : nc.data('letterspacing')===undefined ? parseFloat(nc.css('letterSpacing')) || 0 : nc.data('letterspacing');
obj.paddingTop = nc.data('paddingtop')===undefined ? parseInt(nc.css('paddingTop'),0) || 0 : nc.data('paddingtop');
obj.paddingBottom = nc.data('paddingbottom')===undefined ? parseInt(nc.css('paddingBottom'),0) || 0 : nc.data('paddingbottom');
obj.paddingLeft = nc.data('paddingleft')===undefined ? parseInt(nc.css('paddingLeft'),0) || 0 : nc.data('paddingleft');
obj.paddingRight = nc.data('paddingright')===undefined ? parseInt(nc.css('paddingRight'),0) || 0 : nc.data('paddingright');
obj.marginTop = nc.data('margintop')===undefined ? parseInt(nc.css('marginTop'),0) || 0 : nc.data('margintop');
obj.marginBottom = nc.data('marginbottom')===undefined ? parseInt(nc.css('marginBottom'),0) || 0 : nc.data('marginbottom');
obj.marginLeft = nc.data('marginleft')===undefined ? parseInt(nc.css('marginLeft'),0) || 0 : nc.data('marginleft');
obj.marginRight = nc.data('marginright')===undefined ? parseInt(nc.css('marginRight'),0) || 0 : nc.data('marginright');
obj.borderTopWidth = nc.data('bordertopwidth')===undefined ? parseInt(nc.css('borderTopWidth'),0) || 0 : nc.data('bordertopwidth');
obj.borderBottomWidth = nc.data('borderbottomwidth')===undefined ? parseInt(nc.css('borderBottomWidth'),0) || 0 : nc.data('borderbottomwidth');
obj.borderLeftWidth = nc.data('borderleftwidth')===undefined ? parseInt(nc.css('borderLeftWidth'),0) || 0 : nc.data('borderleftwidth');
obj.borderRightWidth = nc.data('borderrightwidth')===undefined ? parseInt(nc.css('borderRightWidth'),0) || 0 : nc.data('borderrightwidth');
if (level!="rekursive") {
obj.color = nc.data('color')===undefined ? "nopredefinedcolor" : nc.data('color');
obj.whiteSpace = gp ? pc.data('whitespace')===undefined ? pc.css('whiteSpace') || "nowrap" : pc.data('whitespace') : nc.data('whitespace')===undefined ? nc.css('whiteSpace') || "nowrap" : nc.data('whitespace');
obj.textAlign = gp ? pc.data('textalign')===undefined ? pc.css('textalign') || "inherit" : pc.data('textalign') : nc.data('textalign')===undefined ? nc.css('textalign') || "inherit" : nc.data('textalign');
obj.fontWeight = gp ? pc.data('fontweight')===undefined ? parseInt(pc.css('fontWeight'),0) || 0 : pc.data('fontweight') : nc.data('fontweight')===undefined ? parseInt(nc.css('fontWeight'),0) || 0 : nc.data('fontweight');
obj.minWidth = nc.data('width')===undefined ? parseInt(nc.css('minWidth'),0) || 0 : nc.data('width');
obj.minHeight = nc.data('height')===undefined ? parseInt(nc.css('minHeight'),0) || 0 : nc.data('height');
if (nc.data('videowidth')!=undefined && nc.data('videoheight')!=undefined) {
var vwid = nc.data('videowidth'),
vhei = nc.data('videoheight');
vwid = vwid==="100%" ? "none" : vwid;
vhei = vhei==="100%" ? "none" : vhei;
nc.data('width',vwid);
nc.data('height',vhei);
}
obj.maxWidth = nc.data('width')===undefined ? parseInt(nc.css('maxWidth'),0) || "none" : nc.data('width');
obj.maxHeight = jQuery.inArray(nc.data('type'),["column","row"])!==-1 ? "none" : nc.data('height')===undefined ? parseInt(nc.css('maxHeight'),0) || "none" : nc.data('height');
obj.wan = nc.data('wan')===undefined ? parseInt(nc.css('-webkit-transition'),0) || "none" : nc.data('wan');
obj.moan = nc.data('moan')===undefined ? parseInt(nc.css('-moz-animation-transition'),0) || "none" : nc.data('moan');
obj.man = nc.data('man')===undefined ? parseInt(nc.css('-ms-animation-transition'),0) || "none" : nc.data('man');
obj.ani = nc.data('ani')===undefined ? parseInt(nc.css('transition'),0) || "none" : nc.data('ani');
}
obj.styleProps = { borderTopLeftRadius : nc[0].style.borderTopLeftRadius,
borderTopRightRadius : nc[0].style.borderTopRightRadius,
borderBottomRightRadius : nc[0].style.borderBottomRightRadius,
borderBottomLeftRadius : nc[0].style.borderBottomLeftRadius,
"background" : nc[0].style["background"],
"boxShadow" : nc[0].style["boxShadow"],
"background-color" : nc[0].style["background-color"],
"border-top-color" : nc[0].style["border-top-color"],
"border-bottom-color" : nc[0].style["border-bottom-color"],
"border-right-color" : nc[0].style["border-right-color"],
"border-left-color" : nc[0].style["border-left-color"],
"border-top-style" : nc[0].style["border-top-style"],
"border-bottom-style" : nc[0].style["border-bottom-style"],
"border-left-style" : nc[0].style["border-left-style"],
"border-right-style" : nc[0].style["border-right-style"],
"border-left-width" : nc[0].style["border-left-width"],
"border-right-width" : nc[0].style["border-right-width"],
"border-bottom-width" : nc[0].style["border-bottom-width"],
"border-top-width" : nc[0].style["border-top-width"],
"color" : nc[0].style["color"],
"text-decoration" : nc[0].style["text-decoration"],
"font-style" : nc[0].style["font-style"]
};
if (obj.styleProps.background==="" || obj.styleProps.background===undefined || obj.styleProps.background === obj.styleProps["background-color"])
delete obj.styleProps.background;
if (obj.styleProps.color=="")
obj.styleProps.color = nc.css("color");
return obj;
}
// READ SINGLE OR ARRAY VALUES OF OBJ CSS ELEMENTS
var setResponsiveCSSValues = function(obj,opt) {
var newobj = new Object();
if (obj)
jQuery.each(obj,function(key,val){
var res_a = makeArray(val,opt)[opt.curWinRange];
newobj[key] = res_a!==undefined ? res_a : obj[key];
});
return newobj;
}
var minmaxconvert = function(a,m,r,fr) {
a = jQuery.isNumeric(a) ? (a * m)+"px" : a;
a = a==="full" ? fr : a==="auto" || a==="none" ? r : a;
return a;
}
/////////////////////////////////////////////////////////////////
// - CALCULATE THE RESPONSIVE SIZES OF THE CAPTIONS - //
/////////////////////////////////////////////////////////////////
var calcCaptionResponsive = function(nc,opt,level,responsive) {
var _=nc.data();
_ = _===undefined ? {} : _;
try{
if (nc[0].nodeName=="BR" || nc[0].tagName=="br"
/*|| nc[0].nodeName=="b" || nc[0].tagName=="b" ||
nc[0].nodeName=="strong" || nc[0].tagName=="STRONG"*/
)
return false;
} catch(e) {
}
_.cssobj = _.cssobj===undefined ? getcssParams(nc,level) : _.cssobj;
var obj = setResponsiveCSSValues(_.cssobj,opt),
bw=opt.bw,
bh=opt.bh;
if (responsive==="off") {
bw=1;
bh=1;
}
// IE8 FIX FOR AUTO LINEHEIGHT
if (obj.lineHeight=="auto") obj.lineHeight = obj.fontSize+4;
var objmargins = { Top: obj.marginTop,
Bottom: obj.marginBottom,
Left: obj.marginLeft,
Right: obj.marginRight
}
if (_._nctype==="column") {
punchgs.TweenLite.set(_._column,{
paddingTop: Math.round((obj.marginTop * bh)) + "px",
paddingBottom: Math.round((obj.marginBottom * bh)) + "px",
paddingLeft: Math.round((obj.marginLeft* bw)) + "px",
paddingRight: Math.round((obj.marginRight * bw)) + "px"});
objmargins = { Top: 0,
Bottom: 0,
Left: 0,
Right: 0
}
}
if (!nc.hasClass("tp-splitted")) {
nc.css("-webkit-transition", "none");
nc.css("-moz-transition", "none");
nc.css("-ms-transition", "none");
nc.css("transition", "none");
var hashover = nc.data('transform_hover')!==undefined || nc.data('style_hover')!==undefined;
if (hashover) punchgs.TweenLite.set(nc,obj.styleProps);
punchgs.TweenLite.set(nc,{
fontSize: Math.round((obj.fontSize * bw))+"px",
fontWeight: obj.fontWeight,
letterSpacing:Math.floor((obj.letterSpacing * bw))+"px",
paddingTop: Math.round((obj.paddingTop * bh)) + "px",
paddingBottom: Math.round((obj.paddingBottom * bh)) + "px",
paddingLeft: Math.round((obj.paddingLeft* bw)) + "px",
paddingRight: Math.round((obj.paddingRight * bw)) + "px",
marginTop: (objmargins.Top * bh) + "px",
marginBottom: (objmargins.Bottom * bh) + "px",
marginLeft: (objmargins.Left * bw) + "px",
marginRight: (objmargins.Right * bw) + "px",
borderTopWidth: Math.round(obj.borderTopWidth * bh) + "px",
borderBottomWidth: Math.round(obj.borderBottomWidth * bh) + "px",
borderLeftWidth: Math.round(obj.borderLeftWidth * bw) + "px",
borderRightWidth: Math.round(obj.borderRightWidth * bw) + "px",
lineHeight: Math.round(obj.lineHeight * bh) + "px",
textAlign:(obj.textAlign),
overwrite:"auto"});
if (level!="rekursive") {
var winw = obj.basealign =="slide" ? opt.ulw : opt.gridwidth[opt.curWinRange],
winh = obj.basealign =="slide" ? opt.ulh : opt.gridheight[opt.curWinRange],
maxw = minmaxconvert(obj.maxWidth,bw,"none",winw),
maxh = minmaxconvert(obj.maxHeight,bh,"none",winh),
minw = minmaxconvert(obj.minWidth,bw,"0px",winw),
minh = minmaxconvert(obj.minHeight,bh,"0px",winh);
// TWEEN FIX ISSUES
minw=minw===undefined ? 0 : minw;
minh=minh===undefined ? 0 : minh;
maxw=maxw===undefined ? "none" : maxw;
maxh=maxh===undefined ? "none" : maxh;
if (_._isgroup) {
if (minw==="#1/1#") minw = maxw = winw;
if (minw==="#1/2#") minw = maxw = winw / 2;
if (minw==="#1/3#") minw = maxw = winw/3;
if (minw==="#1/4#") minw = maxw = winw / 4;
if (minw==="#1/5#") minw = maxw = winw / 5;
if (minw==="#1/6#") minw = maxw = winw / 6;
if (minw==="#2/3#") minw = maxw = (winw / 3) * 2;
if (minw==="#3/4#") minw = maxw = (winw / 4) * 3;
if (minw==="#2/5#") minw = maxw = (winw / 5) * 2;
if (minw==="#3/5#") minw = maxw = (winw / 5) * 3;
if (minw==="#4/5#") minw = maxw = (winw / 5) * 4;
if (minw==="#3/6#") minw = maxw = (winw / 6) * 3;
if (minw==="#4/6#") minw = maxw = (winw / 6) * 4;
if (minw==="#5/6#") minw = maxw = (winw / 6) * 5;
}
if (_._ingroup) {
_._groupw = minw;
_._grouph = minh;
}
punchgs.TweenLite.set(nc,{
maxWidth:maxw,
maxHeight:maxh,
minWidth:minw,
minHeight:minh,
whiteSpace:obj.whiteSpace,
textAlign:(obj.textAlign),
overwrite:"auto"
});
if (obj.color!="nopredefinedcolor")
punchgs.TweenLite.set(nc,{color:obj.color,overwrite:"auto"});
if (_.svg_src!=undefined) {
var scolto = obj.color!="nopredefinedcolor" && obj.color!=undefined ? obj.color : obj.css!=undefined && obj.css.color!="nopredefinedcolor" && obj.css.color!=undefined ? obj.css.color : obj.styleProps.color!=undefined ? obj.styleProps.color : obj.styleProps.css!=undefined && obj.styleProps.css.color!=undefined ? obj.styleProps.css.color : false;
if (scolto!=false) {
punchgs.TweenLite.set(nc.find('svg'),{fill:scolto,overwrite:"auto"});
punchgs.TweenLite.set(nc.find('svg path'),{fill:scolto,overwrite:"auto"});
}
}
}
if (_._nctype==="column") {
if (_._column_bg_set===undefined) {
_._column_bg_set = nc.css('backgroundColor');
_._column_bg_image = nc.css('backgroundImage');
_._column_bg_image_repeat =nc.css('backgroundRepeat');
_._column_bg_image_position =nc.css('backgroundPosition');
_._column_bg_image_size =nc.css('backgroundSize');
_._column_bg_opacity = nc.data('bgopacity');
_._column_bg_opacity = _._column_bg_opacity===undefined ? 1 : _._column_bg_opacity;
punchgs.TweenLite.set(nc,{
backgroundColor:"transparent",
backgroundImage:""
});
}
setTimeout(function() {
setColumnBgDimension(nc,opt);
},1);
// DYNAMIC HEIGHT AUTO CALCULATED BY BROWSER
if (_._cbgc_auto && _._cbgc_auto.length>0) {
_._cbgc_auto[0].style.backgroundSize = _._column_bg_image_size;
if (jQuery.isArray(obj.marginLeft)) {
punchgs.TweenLite.set(_._cbgc_auto,{
borderTopWidth: (obj.marginTop[opt.curWinRange] * bh) + "px",
borderLeftWidth: (obj.marginLeft[opt.curWinRange] * bw) + "px",
borderRightWidth: (obj.marginRight[opt.curWinRange] * bw) + "px",
borderBottomWidth:(obj.marginBottom[opt.curWinRange] * bh) + "px",
backgroundColor:_._column_bg_set,
backgroundImage:_._column_bg_image,
backgroundRepeat:_._column_bg_image_repeat,
backgroundPosition:_._column_bg_image_position,
opacity:_._column_bg_opacity
});
} else {
punchgs.TweenLite.set(_._cbgc_auto,{
borderTopWidth: (obj.marginTop * bh) + "px",
borderLeftWidth: (obj.marginLeft * bw) + "px",
borderRightWidth: (obj.marginRight * bw) + "px",
borderBottomWidth:(obj.marginBottom * bh) + "px",
backgroundColor:_._column_bg_set,
backgroundImage:_._column_bg_image,
backgroundRepeat:_._column_bg_image_repeat,
backgroundPosition:_._column_bg_image_position,
opacity:_._column_bg_opacity
});
}
}
}
setTimeout(function() {
nc.css("-webkit-transition", nc.data('wan'));
nc.css("-moz-transition", nc.data('moan'));
nc.css("-ms-transition", nc.data('man'));
nc.css("transition", nc.data('ani'));
},30);
}
}
var setColumnBgDimension = function(nc,opt) {
// DYNAMIC HEIGHT BASED ON ROW HEIGHT
var _ = nc.data();
if (_._cbgc_man && _._cbgc_man.length>0) {
var _l,_t,_b,_r,_h,_o;
if (!jQuery.isArray(_.cssobj.marginLeft)) {
_l = (_.cssobj.marginLeft * opt.bw);
_t = (_.cssobj.marginTop * opt.bh);
_b = (_.cssobj.marginBottom * opt.bh);
_r = (_.cssobj.marginRight * opt.bw);
} else {
_l = (_.cssobj.marginLeft[opt.curWinRange] * opt.bw);
_t = (_.cssobj.marginTop[opt.curWinRange] * opt.bh);
_b = (_.cssobj.marginBottom[opt.curWinRange] * opt.bh);
_r = (_.cssobj.marginRight[opt.curWinRange] * opt.bw);
}
_h = _._row.hasClass("rev_break_columns") ? "100%" : (_._row.height() - (_t+_b))+"px";
_._cbgc_man[0].style.backgroundSize = _._column_bg_image_size;
punchgs.TweenLite.set(_._cbgc_man,{
width:"100%",
height:_h,
backgroundColor:_._column_bg_set,
backgroundImage:_._column_bg_image,
backgroundRepeat:_._column_bg_image_repeat,
backgroundPosition:_._column_bg_image_position,
overwrite:"auto",
opacity:_._column_bg_opacity
});
}
}
//////////////////////
// CAPTION LOOPS //
//////////////////////
var callCaptionLoops = function(el,factor) {
var _ = el.data();
// SOME LOOPING ANIMATION ON INTERNAL ELEMENTS
if (el.hasClass("rs-pendulum")) {
if (_._loop_timeline==undefined) {
_._loop_timeline = new punchgs.TimelineLite;
var startdeg = el.data('startdeg')==undefined ? -20 : el.data('startdeg'),
enddeg = el.data('enddeg')==undefined ? 20 : el.data('enddeg'),
speed = el.data('speed')==undefined ? 2 : el.data('speed'),
origin = el.data('origin')==undefined ? "50% 50%" : el.data('origin'),
easing = el.data('easing')==undefined ? punchgs.Power2.easeInOut : el.data('easing');
startdeg = startdeg * factor;
enddeg = enddeg * factor;
_._loop_timeline.append(new punchgs.TweenLite.fromTo(el,speed,{force3D:"auto",rotation:startdeg,transformOrigin:origin},{rotation:enddeg,ease:easing}));
_._loop_timeline.append(new punchgs.TweenLite.fromTo(el,speed,{force3D:"auto",rotation:enddeg,transformOrigin:origin},{rotation:startdeg,ease:easing,onComplete:function() {
_._loop_timeline.restart();
}}));
}
}
// SOME LOOPING ANIMATION ON INTERNAL ELEMENTS
if (el.hasClass("rs-rotate")) {
if (_._loop_timeline==undefined) {
_._loop_timeline = new punchgs.TimelineLite;
var startdeg = el.data('startdeg')==undefined ? 0 : el.data('startdeg'),
enddeg = el.data('enddeg')==undefined ? 360 : el.data('enddeg'),
speed = el.data('speed')==undefined ? 2 : el.data('speed'),
origin = el.data('origin')==undefined ? "50% 50%" : el.data('origin'),
easing = el.data('easing')==undefined ? punchgs.Power2.easeInOut : el.data('easing');
startdeg = startdeg * factor;
enddeg = enddeg * factor;
_._loop_timeline.append(new punchgs.TweenLite.fromTo(el,speed,{force3D:"auto",rotation:startdeg,transformOrigin:origin},{rotation:enddeg,ease:easing,onComplete:function() {
_._loop_timeline.restart();
}}));
}
}
// SOME LOOPING ANIMATION ON INTERNAL ELEMENTS
if (el.hasClass("rs-slideloop")) {
if (_._loop_timeline==undefined) {
_._loop_timeline = new punchgs.TimelineLite;
var xs = el.data('xs')==undefined ? 0 : el.data('xs'),
ys = el.data('ys')==undefined ? 0 : el.data('ys'),
xe = el.data('xe')==undefined ? 0 : el.data('xe'),
ye = el.data('ye')==undefined ? 0 : el.data('ye'),
speed = el.data('speed')==undefined ? 2 : el.data('speed'),
easing = el.data('easing')==undefined ? punchgs.Power2.easeInOut : el.data('easing');
xs = xs * factor;
ys = ys * factor;
xe = xe * factor;
ye = ye * factor;
_._loop_timeline.append(new punchgs.TweenLite.fromTo(el,speed,{force3D:"auto",x:xs,y:ys},{x:xe,y:ye,ease:easing}));
_._loop_timeline.append(new punchgs.TweenLite.fromTo(el,speed,{force3D:"auto",x:xe,y:ye},{x:xs,y:ys,onComplete:function() {
_._loop_timeline.restart();
}}));
}
}
// SOME LOOPING ANIMATION ON INTERNAL ELEMENTS
if (el.hasClass("rs-pulse")) {
if (_._loop_timeline==undefined) {
_._loop_timeline = new punchgs.TimelineLite;
var zoomstart = el.data('zoomstart')==undefined ? 0 : el.data('zoomstart'),
zoomend = el.data('zoomend')==undefined ? 0 : el.data('zoomend'),
speed = el.data('speed')==undefined ? 2 : el.data('speed'),
easing = el.data('easing')==undefined ? punchgs.Power2.easeInOut : el.data('easing');
_._loop_timeline.append(new punchgs.TweenLite.fromTo(el,speed,{force3D:"auto",scale:zoomstart},{scale:zoomend,ease:easing}));
_._loop_timeline.append(new punchgs.TweenLite.fromTo(el,speed,{force3D:"auto",scale:zoomend},{scale:zoomstart,onComplete:function() {
_._loop_timeline.restart();
}}));
}
}
if (el.hasClass("rs-wave")) {
if (_._loop_timeline==undefined) {
_._loop_timeline = new punchgs.TimelineLite;
var angle= el.data('angle')==undefined ? 10 : parseInt(el.data('angle'),0),
radius = el.data('radius')==undefined ? 10 : parseInt(el.data('radius'),0),
speed = el.data('speed')==undefined ? -20 : el.data('speed'),
origin = el.data('origin')==undefined ? "50% 50%" : el.data('origin'),
ors = origin.split(" "),
oo = new Object();
if (ors.length>=1) {
oo.x = ors[0];
oo.y = ors[1];
} else {
oo.x = "50%";
oo.y = "50%";
}
radius = radius * factor;
var _ox = ((parseInt(oo.x,0)/100)-0.5) * el.width(),
_oy = ((parseInt(oo.y,0)/100)-0.5) * el.height(),
yo = (-1*radius) + _oy,
xo = 0 + _ox,
angobj= {a:0, ang : angle, element:el, unit:radius, xoffset:xo, yoffset:yo},
ang = parseInt(angle,0),
waveanim = new punchgs.TweenLite.fromTo(angobj,speed,{ a:(0+ang) },{ a:(360+ang),force3D:"auto",ease:punchgs.Linear.easeNone});
waveanim.eventCallback("onUpdate",function(angobj) {
var rad = angobj.a * (Math.PI / 180),
yy = angobj.yoffset+(angobj.unit * (1 - Math.sin(rad))),
xx = angobj.xoffset+Math.cos(rad) * angobj.unit;
punchgs.TweenLite.to(angobj.element,0.1,{force3D:"auto",x:xx, y:yy});
},[angobj]);
waveanim.eventCallback("onComplete",function(_) {
_._loop_timeline.restart();
},[_]);
_._loop_timeline.append(waveanim);
}
}
}
var killCaptionLoops = function(nextcaption) {
// SOME LOOPING ANIMATION ON INTERNAL ELEMENTS
nextcaption.closest('.rs-pendulum, .rs-slideloop, .rs-pulse, .rs-wave').each(function() {
var _ = this;
if (_._loop_timeline!=undefined) {
_._loop_timeline.pause();
_._loop_timeline = null;
}
});
}
})(jQuery);