ok
Direktori : /home/agroviero/www/plugins/revolution/js/extensions/source/ |
Current File : /home/agroviero/www/plugins/revolution/js/extensions/source/revolution.extension.layeranimation.js |
/************************************************ * REVOLUTION 5.4.2 EXTENSION - LAYER ANIMATION * @version: 3.6.3 (17.05.2017) * @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.5", version:"3.6.3" }; /////////////////////////////////////////// // 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))+'% Device Level:'+opt.curWinRange+' 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> "; } }); 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(asprat,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); } _.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);