ok
Direktori : /home/agroviero/www/plugins/revolution/js/extensions/source/ |
Current File : /home/agroviero/www/plugins/revolution/js/extensions/source/revolution.extension.navigation.js |
/******************************************** * REVOLUTION 5.4.2 EXTENSION - NAVIGATION * @version: 1.3.5 (06.04.2017) * @requires jquery.themepunch.revolution.js * @author ThemePunch *********************************************/ (function($) { "use strict"; var _R = jQuery.fn.revolution, _ISM = _R.is_mobile(), extension = { alias:"Navigation Min JS", name:"revolution.extensions.navigation.min.js", min_core: "5.4.0", version:"1.3.5" }; /////////////////////////////////////////// // EXTENDED FUNCTIONS AVAILABLE GLOBAL // /////////////////////////////////////////// jQuery.extend(true,_R, { hideUnHideNav : function(opt) { var w = opt.c.width(), a = opt.navigation.arrows, b = opt.navigation.bullets, c = opt.navigation.thumbnails, d = opt.navigation.tabs; if (ckNO(a)) biggerNav(opt.c.find('.tparrows'),a.hide_under,w,a.hide_over); if (ckNO(b)) biggerNav(opt.c.find('.tp-bullets'),b.hide_under,w,b.hide_over); if (ckNO(c)) biggerNav(opt.c.parent().find('.tp-thumbs'),c.hide_under,w,c.hide_over); if (ckNO(d)) biggerNav(opt.c.parent().find('.tp-tabs'),d.hide_under,w,d.hide_over); setONHeights(opt); }, resizeThumbsTabs : function(opt,force) { if ((opt.navigation && opt.navigation.tabs.enable) || (opt.navigation && opt.navigation.thumbnails.enable)) { var f = (jQuery(window).width()-480) / 500, tws = new punchgs.TimelineLite(), otab = opt.navigation.tabs, othu = opt.navigation.thumbnails, otbu = opt.navigation.bullets; tws.pause(); f = f>1 ? 1 : f<0 ? 0 : f; if (ckNO(otab) && (force || otab.width>otab.min_width)) rtt(f,tws,opt.c,otab,opt.slideamount,'tab'); if (ckNO(othu) && (force || othu.width>othu.min_width)) rtt(f,tws,opt.c,othu,opt.slideamount,'thumb'); if (ckNO(otbu) && force) { // SET BULLET SPACES AND POSITION var bw = opt.c.find('.tp-bullets'); bw.find('.tp-bullet').each(function(i){ var b = jQuery(this), am = i+1, w = b.outerWidth()+parseInt((otbu.space===undefined? 0:otbu.space),0), h = b.outerHeight()+parseInt((otbu.space===undefined? 0:otbu.space),0); if (otbu.direction==="vertical") { b.css({top:((am-1)*h)+"px", left:"0px"}); bw.css({height:(((am-1)*h) + b.outerHeight()),width:b.outerWidth()}); } else { b.css({left:((am-1)*w)+"px", top:"0px"}); bw.css({width:(((am-1)*w) + b.outerWidth()),height:b.outerHeight()}); } }); } tws.play(); setONHeights(opt); } return true; }, updateNavIndexes : function(opt) { var _ = opt.c; function setNavIndex(a) { if (_.find(a).lenght>0) { _.find(a).each(function(i) { jQuery(this).data('liindex',i); }) } } setNavIndex('.tp-tab'); setNavIndex('.tp-bullet'); setNavIndex('.tp-thumb'); _R.resizeThumbsTabs(opt,true); _R.manageNavigation(opt); }, // PUT NAVIGATION IN POSITION AND MAKE SURE THUMBS AND TABS SHOWING TO THE RIGHT POSITION manageNavigation : function(opt) { var lof = _R.getHorizontalOffset(opt.c.parent(),"left"), rof = _R.getHorizontalOffset(opt.c.parent(),"right"); if (ckNO(opt.navigation.bullets)) { if (opt.sliderLayout!="fullscreen" && opt.sliderLayout!="fullwidth") { // OFFSET ADJUSTEMENT FOR LEFT ARROWS BASED ON THUMBNAILS AND TABS OUTTER opt.navigation.bullets.h_offset_old = opt.navigation.bullets.h_offset_old === undefined ? opt.navigation.bullets.h_offset : opt.navigation.bullets.h_offset_old; opt.navigation.bullets.h_offset = opt.navigation.bullets.h_align==="center" ? opt.navigation.bullets.h_offset_old+lof/2 -rof/2: opt.navigation.bullets.h_offset_old+lof-rof; } setNavElPositions(opt.c.find('.tp-bullets'),opt.navigation.bullets,opt); } if (ckNO(opt.navigation.thumbnails)) setNavElPositions(opt.c.parent().find('.tp-thumbs'),opt.navigation.thumbnails,opt); if (ckNO(opt.navigation.tabs)) setNavElPositions(opt.c.parent().find('.tp-tabs'),opt.navigation.tabs,opt); if (ckNO(opt.navigation.arrows)) { if (opt.sliderLayout!="fullscreen" && opt.sliderLayout!="fullwidth") { // OFFSET ADJUSTEMENT FOR LEFT ARROWS BASED ON THUMBNAILS AND TABS OUTTER opt.navigation.arrows.left.h_offset_old = opt.navigation.arrows.left.h_offset_old === undefined ? opt.navigation.arrows.left.h_offset : opt.navigation.arrows.left.h_offset_old; opt.navigation.arrows.left.h_offset = opt.navigation.arrows.left.h_align==="right" ? opt.navigation.arrows.left.h_offset_old+rof : opt.navigation.arrows.left.h_offset_old+lof; opt.navigation.arrows.right.h_offset_old = opt.navigation.arrows.right.h_offset_old === undefined ? opt.navigation.arrows.right.h_offset : opt.navigation.arrows.right.h_offset_old; opt.navigation.arrows.right.h_offset = opt.navigation.arrows.right.h_align==="right" ? opt.navigation.arrows.right.h_offset_old+rof : opt.navigation.arrows.right.h_offset_old+lof; } setNavElPositions(opt.c.find('.tp-leftarrow.tparrows'),opt.navigation.arrows.left,opt); setNavElPositions(opt.c.find('.tp-rightarrow.tparrows'),opt.navigation.arrows.right,opt); } if (ckNO(opt.navigation.thumbnails)) moveThumbsInPosition(opt.c.parent().find('.tp-thumbs'),opt.navigation.thumbnails); if (ckNO(opt.navigation.tabs)) moveThumbsInPosition(opt.c.parent().find('.tp-tabs'),opt.navigation.tabs); }, // MANAGE THE NAVIGATION createNavigation : function(container,opt) { if (_R.compare_version(extension).check==="stop") return false; var cp = container.parent(), _a = opt.navigation.arrows, _b = opt.navigation.bullets, _c = opt.navigation.thumbnails, _d = opt.navigation.tabs, a = ckNO(_a), b = ckNO(_b), c = ckNO(_c), d = ckNO(_d); // Initialise Keyboard Navigation if Option set so initKeyboard(container,opt); // Initialise Mouse Scroll Navigation if Option set so initMouseScroll(container,opt); //Draw the Arrows if (a) initArrows(container,_a,opt); // BUILD BULLETS, THUMBS and TABS opt.li.each(function(index) { var li_rtl = jQuery(opt.li[opt.li.length-1-index]); var li = jQuery(this); if (b) if (opt.navigation.bullets.rtl) addBullet(container,_b,li_rtl,opt); else addBullet(container,_b,li,opt); if (c) if (opt.navigation.thumbnails.rtl) addThumb(container,_c,li_rtl,'tp-thumb',opt); else addThumb(container,_c,li,'tp-thumb',opt); if (d) if (opt.navigation.tabs.rtl) addThumb(container,_d,li_rtl,'tp-tab',opt); else addThumb(container,_d,li,'tp-tab',opt); }); // LISTEN TO SLIDE CHANGE - SET ACTIVE SLIDE BULLET container.bind('revolution.slide.onafterswap revolution.nextslide.waiting',function() { //cp.find('.tp-bullet, .tp-thumb, .tp-tab').removeClass("selected"); var si = container.find(".next-revslide").length==0 ? container.find(".active-revslide").data("index") : container.find(".next-revslide").data("index"); container.find('.tp-bullet').each(function() { var _t = jQuery(this); if (_t.data('liref')===si) _t.addClass("selected"); else _t.removeClass("selected"); }); cp.find('.tp-thumb, .tp-tab').each(function() { var _t = jQuery(this); if (_t.data('liref')===si) { _t.addClass("selected"); if (_t.hasClass("tp-tab")) moveThumbsInPosition(cp.find('.tp-tabs'),_d); else moveThumbsInPosition(cp.find('.tp-thumbs'),_c); } else _t.removeClass("selected"); }); var ai = 0, f = false; if (opt.thumbs) jQuery.each(opt.thumbs,function(i,obj) { ai = f === false ? i : ai; f = obj.id === si || i === si ? true : f; }); var pi = ai>0 ? ai-1 : opt.slideamount-1, ni = (ai+1)==opt.slideamount ? 0 : ai+1; if (_a.enable === true) { var inst = _a.tmp; if (opt.thumbs[pi]!=undefined) { jQuery.each(opt.thumbs[pi].params,function(i,obj) { inst = inst.replace(obj.from,obj.to); }); } _a.left.j.html(inst); inst = _a.tmp; if (ni>opt.slideamount) return; jQuery.each(opt.thumbs[ni].params,function(i,obj) { inst = inst.replace(obj.from,obj.to); }); _a.right.j.html(inst); if (!_a.rtl) { punchgs.TweenLite.set(_a.left.j.find('.tp-arr-imgholder'),{backgroundImage:"url("+opt.thumbs[pi].src+")"}); punchgs.TweenLite.set(_a.right.j.find('.tp-arr-imgholder'),{backgroundImage:"url("+opt.thumbs[ni].src+")"}); } else { punchgs.TweenLite.set(_a.left.j.find('.tp-arr-imgholder'),{backgroundImage:"url("+opt.thumbs[ni].src+")"}); punchgs.TweenLite.set(_a.right.j.find('.tp-arr-imgholder'),{backgroundImage:"url("+opt.thumbs[pi].src+")"}); } } }); hdResets(_a); hdResets(_b); hdResets(_c); hdResets(_d); // HOVER OVER ELEMENTS SHOULD SHOW/HIDE NAVIGATION ELEMENTS cp.on("mouseenter mousemove",function() { if (!cp.hasClass("tp-mouseover")) { cp.addClass("tp-mouseover"); punchgs.TweenLite.killDelayedCallsTo(showHideNavElements); if (a && _a.hide_onleave) showHideNavElements(cp.find('.tparrows'),_a,"show"); if (b && _b.hide_onleave) showHideNavElements(cp.find('.tp-bullets'),_b,"show"); if (c && _c.hide_onleave) showHideNavElements(cp.find('.tp-thumbs'),_c,"show"); if (d && _d.hide_onleave) showHideNavElements(cp.find('.tp-tabs'),_d,"show"); // ON MOBILE WE NEED TO HIDE ELEMENTS EVEN AFTER TOUCH if (_ISM) { cp.removeClass("tp-mouseover"); callAllDelayedCalls(container,opt); } } }); cp.on("mouseleave",function() { cp.removeClass("tp-mouseover"); callAllDelayedCalls(container,opt); }); // FIRST RUN HIDE ALL ELEMENTS if (a && _a.hide_onleave) showHideNavElements(cp.find('.tparrows'),_a,"hide",0); if (b && _b.hide_onleave) showHideNavElements(cp.find('.tp-bullets'),_b,"hide",0); if (c && _c.hide_onleave) showHideNavElements(cp.find('.tp-thumbs'),_c,"hide",0); if (d && _d.hide_onleave) showHideNavElements(cp.find('.tp-tabs'),_d,"hide",0); // Initialise Swipe Navigation if (c) swipeAction(cp.find('.tp-thumbs'),opt); if (d) swipeAction(cp.find('.tp-tabs'),opt); if (opt.sliderType==="carousel") swipeAction(container,opt,true); if ((opt.navigation.touch.touchOnDesktop==="on") || (opt.navigation.touch.touchenabled=="on" && _ISM)) swipeAction(container,opt,"swipebased"); } }); ///////////////////////////////// // - INTERNAL FUNCTIONS - /// ///////////////////////////////// var moveThumbsInPosition = function(container,opt) { var thumbs = container.hasClass("tp-thumbs") ? ".tp-thumbs" : ".tp-tabs", thumbmask = container.hasClass("tp-thumbs") ? ".tp-thumb-mask" : ".tp-tab-mask", thumbsiw = container.hasClass("tp-thumbs") ? ".tp-thumbs-inner-wrapper" : ".tp-tabs-inner-wrapper", thumb = container.hasClass("tp-thumbs") ? ".tp-thumb" : ".tp-tab", t=container.find(thumbmask), el = t.find(thumbsiw), thumbdir = opt.direction, tw = thumbdir==="vertical" ? t.find(thumb).first().outerHeight(true)+opt.space : t.find(thumb).first().outerWidth(true)+opt.space, tmw = thumbdir==="vertical" ? t.height() : t.width(), ti = parseInt(t.find(thumb+'.selected').data('liindex'),0), me = tmw/tw, ts = thumbdir==="vertical" ? t.height() : t.width(), tp = 0-(ti * tw), els = thumbdir==="vertical" ? el.height() : el.width(), curpos = tp < 0-(els-ts) ? 0-(els-ts) : curpos > 0 ? 0 : tp, elp = el.data('offset'); if (me>2) { curpos = tp - (elp+tw) <= 0 ? tp - (elp+tw) < 0-tw ? elp : curpos + tw : curpos; curpos = ( (tp-tw + elp + tmw)< tw && tp + (Math.round(me)-2)*tw < elp) ? tp + (Math.round(me)-2)*tw : curpos; } curpos = curpos < 0-(els-ts) ? 0-(els-ts) : curpos > 0 ? 0 : curpos; if (thumbdir!=="vertical" && t.width()>=el.width()) curpos = 0; if (thumbdir==="vertical" && t.height()>=el.height()) curpos = 0; if (!container.hasClass("dragged")) { if (thumbdir==="vertical") el.data('tmmove',punchgs.TweenLite.to(el,0.5,{top:curpos+"px",ease:punchgs.Power3.easeInOut})); else el.data('tmmove',punchgs.TweenLite.to(el,0.5,{left:curpos+"px",ease:punchgs.Power3.easeInOut})); el.data('offset',curpos); } }; // RESIZE THE THUMBS BASED ON ORIGINAL SIZE AND CURRENT SIZE OF WINDOW var rtt = function(f,tws,c,o,lis,wh) { var h = c.parent().find('.tp-'+wh+'s'), ins = h.find('.tp-'+wh+'s-inner-wrapper'), mask = h.find('.tp-'+wh+'-mask'), cw = o.width*f < o.min_width ? o.min_width : Math.round(o.width*f), ch = Math.round((cw/o.width) * o.height), iw = o.direction === "vertical" ? cw : (cw*lis) + ((o.space)*(lis-1)), ih = o.direction === "vertical" ? (ch*lis) + ((o.space)*(lis-1)) : ch, anm = o.direction === "vertical" ? {width:cw+"px"} : {height:ch+"px"}; tws.add(punchgs.TweenLite.set(h,anm)); tws.add(punchgs.TweenLite.set(ins,{width:iw+"px",height:ih+"px"})); tws.add(punchgs.TweenLite.set(mask,{width:iw+"px",height:ih+"px"})); var fin = ins.find('.tp-'+wh+''); if (fin) jQuery.each(fin,function(i,el) { if (o.direction === "vertical") tws.add(punchgs.TweenLite.set(el,{top:(i*(ch+parseInt((o.space===undefined? 0:o.space),0))),width:cw+"px",height:ch+"px"})); else if (o.direction === "horizontal") tws.add(punchgs.TweenLite.set(el,{left:(i*(cw+parseInt((o.space===undefined? 0:o.space),0))),width:cw+"px",height:ch+"px"})); }); return tws; }; // INTERNAL FUNCTIONS var normalizeWheel = function( event) /*object*/ { var sX = 0, sY = 0, // spinX, spinY pX = 0, pY = 0, // pixelX, pixelY PIXEL_STEP = 1, LINE_HEIGHT = 1, PAGE_HEIGHT = 1; // Legacy if ('detail' in event) { sY = event.detail; } if ('wheelDelta' in event) { sY = -event.wheelDelta / 120; } if ('wheelDeltaY' in event) { sY = -event.wheelDeltaY / 120; } if ('wheelDeltaX' in event) { sX = -event.wheelDeltaX / 120; } //sY = navigator.userAgent.match(/mozilla/i) ? sY*10 : sY; // side scrolling on FF with DOMMouseScroll if ( 'axis' in event && event.axis === event.HORIZONTAL_AXIS ) { sX = sY; sY = 0; } pX = sX * PIXEL_STEP; pY = sY * PIXEL_STEP; if ('deltaY' in event) { pY = event.deltaY; } if ('deltaX' in event) { pX = event.deltaX; } if ((pX || pY) && event.deltaMode) { if (event.deltaMode == 1) { // delta in LINE units pX *= LINE_HEIGHT; pY *= LINE_HEIGHT; } else { // delta in PAGE units pX *= PAGE_HEIGHT; pY *= PAGE_HEIGHT; } } // Fall-back if spin cannot be determined if (pX && !sX) { sX = (pX < 1) ? -1 : 1; } if (pY && !sY) { sY = (pY < 1) ? -1 : 1; } pY = navigator.userAgent.match(/mozilla/i) ? pY*10 : pY; if (pY>300 || pY<-300) pY = pY/10; return { spinX : sX, spinY : sY, pixelX : pX, pixelY : pY }; }; var initKeyboard = function(container,opt) { if (opt.navigation.keyboardNavigation!=="on") return; jQuery(document).keydown(function(e){ if ((opt.navigation.keyboard_direction=="horizontal" && e.keyCode == 39) || (opt.navigation.keyboard_direction=="vertical" && e.keyCode==40)) { opt.sc_indicator="arrow"; opt.sc_indicator_dir = 0; _R.callingNewSlide(container,1); } if ((opt.navigation.keyboard_direction=="horizontal" && e.keyCode == 37) || (opt.navigation.keyboard_direction=="vertical" && e.keyCode==38)) { opt.sc_indicator="arrow"; opt.sc_indicator_dir = 1; _R.callingNewSlide(container,-1); } }); }; var initMouseScroll = function(container,opt) { if (opt.navigation.mouseScrollNavigation!=="on" && opt.navigation.mouseScrollNavigation!=="carousel") return; opt.isIEEleven = !!navigator.userAgent.match(/Trident.*rv\:11\./); opt.isSafari = !!navigator.userAgent.match(/safari/i); opt.ischrome = !!navigator.userAgent.match(/chrome/i); var bl = opt.ischrome ? -49 : opt.isIEEleven || opt.isSafari ? -9 : navigator.userAgent.match(/mozilla/i) ? -29 : -49, tl = opt.ischrome ? 49 : opt.isIEEleven || opt.isSafari ? 9 : navigator.userAgent.match(/mozilla/i) ? 29 : 49; container.on('mousewheel DOMMouseScroll', function(e) { var res = normalizeWheel(e.originalEvent), asi = container.find('.tp-revslider-slidesli.active-revslide').index(), psi = container.find('.tp-revslider-slidesli.processing-revslide').index(), fs = asi!=-1 && asi==0 || psi!=-1 && psi==0 ? true : false, ls = asi!=-1 && asi==opt.slideamount-1 || psi!=1 && psi==opt.slideamount-1 ? true:false, ret = true; if (opt.navigation.mouseScrollNavigation=="carousel") fs = ls = false; if (psi==-1) { if(res.pixelY<bl) { if (!fs) { opt.sc_indicator="arrow"; if (opt.navigation.mouseScrollReverse!=="reverse") { opt.sc_indicator_dir = 1; _R.callingNewSlide(container,-1); } ret = false; } if (!ls) { opt.sc_indicator="arrow"; if (opt.navigation.mouseScrollReverse==="reverse") { opt.sc_indicator_dir = 0; _R.callingNewSlide(container,1); } ret = false; } } else if(res.pixelY>tl) { if (!ls) { opt.sc_indicator="arrow"; if (opt.navigation.mouseScrollReverse!=="reverse") { opt.sc_indicator_dir = 0; _R.callingNewSlide(container,1); } ret = false; } if (!fs) { opt.sc_indicator="arrow"; if (opt.navigation.mouseScrollReverse==="reverse") { opt.sc_indicator_dir = 1; _R.callingNewSlide(container,-1); } ret = false; } } } else { ret = false; } var tc = opt.c.offset().top-jQuery('body').scrollTop(), bc = tc+opt.c.height(); if (opt.navigation.mouseScrollNavigation!="carousel") { if (opt.navigation.mouseScrollReverse!=="reverse") if ((tc>0 && res.pixelY>0) || (bc<jQuery(window).height() && res.pixelY<0)) ret = true; if (opt.navigation.mouseScrollReverse==="reverse") if ((tc<0 && res.pixelY<0) || (bc>jQuery(window).height() && res.pixelY>0)) ret = true; } else { ret=false; } if (ret==false) { e.preventDefault(e); return false; } else { return; } }); }; var isme = function (a,c,e) { a = _ISM ? jQuery(e.target).closest('.'+a).length || jQuery(e.srcElement).closest('.'+a).length : jQuery(e.toElement).closest('.'+a).length || jQuery(e.originalTarget).closest('.'+a).length; return a === true || a=== 1 ? 1 : 0; }; // - SET THE SWIPE FUNCTION // var swipeAction = function(container,opt,vertical) { //container[0].opt = opt; // TOUCH ENABLED SCROLL var _ = opt.carousel; jQuery(".bullet, .bullets, .tp-bullets, .tparrows").addClass("noSwipe"); _.Limit = "endless"; var notonbody = _ISM || _R.get_browser()==="Firefox", SwipeOn = container, //notonbody ? container : jQuery('body'), pagescroll = opt.navigation.thumbnails.direction==="vertical" || opt.navigation.tabs.direction==="vertical"? "none" : "vertical", swipe_wait_dir = opt.navigation.touch.swipe_direction || "horizontal"; pagescroll = vertical == "swipebased" && swipe_wait_dir=="vertical" ? "none" : vertical ? "vertical" : pagescroll; if (!jQuery.fn.swipetp) jQuery.fn.swipetp = jQuery.fn.swipe; if (!jQuery.fn.swipetp.defaults || !jQuery.fn.swipetp.defaults.excludedElements) if (!jQuery.fn.swipetp.defaults) jQuery.fn.swipetp.defaults = new Object(); jQuery.fn.swipetp.defaults.excludedElements = "label, button, input, select, textarea, .noSwipe" SwipeOn.swipetp({ allowPageScroll:pagescroll, triggerOnTouchLeave:true, treshold:opt.navigation.touch.swipe_treshold, fingers:opt.navigation.touch.swipe_min_touches, excludeElements:jQuery.fn.swipetp.defaults.excludedElements, swipeStatus:function(event,phase,direction,distance,duration,fingerCount,fingerData) { var withinslider = isme('rev_slider_wrapper',container,event), withinthumbs = isme('tp-thumbs',container,event), withintabs = isme('tp-tabs',container,event), starget = jQuery(this).attr('class'), istt = starget.match(/tp-tabs|tp-thumb/gi) ? true : false; // SWIPE OVER SLIDER, TO SWIPE SLIDES IN CAROUSEL MODE if (opt.sliderType==="carousel" && (((phase==="move" || phase==="end" || phase=="cancel") && (opt.dragStartedOverSlider && !opt.dragStartedOverThumbs && !opt.dragStartedOverTabs)) || (phase==="start" && withinslider>0 && withinthumbs===0 && withintabs===0))) { if (_ISM && (direction ==="up" || direction==="down")) return; opt.dragStartedOverSlider = true; distance = (direction && direction.match(/left|up/g)) ? Math.round(distance * -1) : distance = Math.round(distance * 1); switch (phase) { case "start": if (_.positionanim!==undefined) { _.positionanim.kill(); _.slide_globaloffset = _.infinity==="off" ? _.slide_offset : _R.simp(_.slide_offset, _.maxwidth); } _.overpull = "none"; _.wrap.addClass("dragged"); break; case "move": opt.c.find('.tp-withaction').addClass("tp-temporarydisabled"); _.slide_offset = _.infinity==="off" ? _.slide_globaloffset + distance : _R.simp(_.slide_globaloffset + distance, _.maxwidth); if (_.infinity==="off") { var bb = _.horizontal_align==="center" ? ((_.wrapwidth/2-_.slide_width/2) - _.slide_offset) / _.slide_width : (0 - _.slide_offset) / _.slide_width; if ((_.overpull ==="none" || _.overpull===0) && (bb<0 || bb>opt.slideamount-1)) _.overpull = distance; else if (bb>=0 && bb<=opt.slideamount-1 && ((bb>=0 && distance>_.overpull) || (bb<=opt.slideamount-1 && distance<_.overpull))) _.overpull = 0; _.slide_offset = bb<0 ? _.slide_offset+ (_.overpull-distance)/1.1 + Math.sqrt(Math.abs((_.overpull-distance)/1.1)) : bb>opt.slideamount-1 ? _.slide_offset+ (_.overpull-distance)/1.1 - Math.sqrt(Math.abs((_.overpull-distance)/1.1)) : _.slide_offset ; } _R.organiseCarousel(opt,direction,true,true); break; case "end": case "cancel": //duration !! _.slide_globaloffset = _.slide_offset; _.wrap.removeClass("dragged"); _R.carouselToEvalPosition(opt,direction); opt.dragStartedOverSlider = false; opt.dragStartedOverThumbs = false; opt.dragStartedOverTabs = false; setTimeout(function() { opt.c.find('.tp-withaction').removeClass("tp-temporarydisabled"); },19); break; } } else // SWIPE OVER THUMBS OR TABS if (( ((phase==="move" || phase==="end" || phase=="cancel") && (!opt.dragStartedOverSlider && (opt.dragStartedOverThumbs || opt.dragStartedOverTabs))) || (phase==="start" && (withinslider>0 && (withinthumbs>0 || withintabs>0))))) { if (withinthumbs>0) opt.dragStartedOverThumbs = true; if (withintabs>0) opt.dragStartedOverTabs = true; var thumbs = opt.dragStartedOverThumbs ? ".tp-thumbs" : ".tp-tabs", thumbmask = opt.dragStartedOverThumbs ? ".tp-thumb-mask" : ".tp-tab-mask", thumbsiw = opt.dragStartedOverThumbs ? ".tp-thumbs-inner-wrapper" : ".tp-tabs-inner-wrapper", thumb = opt.dragStartedOverThumbs ? ".tp-thumb" : ".tp-tab", _o = opt.dragStartedOverThumbs ? opt.navigation.thumbnails : opt.navigation.tabs; distance = (direction && direction.match(/left|up/g)) ? Math.round(distance * -1) : distance = Math.round(distance * 1); var t= container.parent().find(thumbmask), el = t.find(thumbsiw), tdir = _o.direction, els = tdir==="vertical" ? el.height() : el.width(), ts = tdir==="vertical" ? t.height() : t.width(), tw = tdir==="vertical" ? t.find(thumb).first().outerHeight(true)+_o.space : t.find(thumb).first().outerWidth(true)+_o.space, newpos = (el.data('offset') === undefined ? 0 : parseInt(el.data('offset'),0)), curpos = 0; switch (phase) { case "start": container.parent().find(thumbs).addClass("dragged"); newpos = tdir === "vertical" ? el.position().top : el.position().left; el.data('offset',newpos); if (el.data('tmmove')) el.data('tmmove').pause(); break; case "move": if (els<=ts) return false; curpos = newpos + distance; curpos = curpos>0 ? tdir==="horizontal" ? curpos - (el.width() * (curpos/el.width() * curpos/el.width())) : curpos - (el.height() * (curpos/el.height() * curpos/el.height())) : curpos; var dif = tdir==="vertical" ? 0-(el.height()-t.height()) : 0-(el.width()-t.width()); curpos = curpos < dif ? tdir==="horizontal" ? curpos + (el.width() * (curpos-dif)/el.width() * (curpos-dif)/el.width()) : curpos + (el.height() * (curpos-dif)/el.height() * (curpos-dif)/el.height()) : curpos; if (tdir==="vertical") punchgs.TweenLite.set(el,{top:curpos+"px"}); else punchgs.TweenLite.set(el,{left:curpos+"px"}); break; case "end": case "cancel": if (istt) { curpos = newpos + distance; curpos = tdir==="vertical" ? curpos < 0-(el.height()-t.height()) ? 0-(el.height()-t.height()) : curpos : curpos < 0-(el.width()-t.width()) ? 0-(el.width()-t.width()) : curpos; curpos = curpos > 0 ? 0 : curpos; curpos = Math.abs(distance)>tw/10 ? distance<=0 ? Math.floor(curpos/tw)*tw : Math.ceil(curpos/tw)*tw : distance<0 ? Math.ceil(curpos/tw)*tw : Math.floor(curpos/tw)*tw; curpos = tdir==="vertical" ? curpos < 0-(el.height()-t.height()) ? 0-(el.height()-t.height()) : curpos : curpos < 0-(el.width()-t.width()) ? 0-(el.width()-t.width()) : curpos; curpos = curpos > 0 ? 0 : curpos; if (tdir==="vertical") punchgs.TweenLite.to(el,0.5,{top:curpos+"px",ease:punchgs.Power3.easeOut}); else punchgs.TweenLite.to(el,0.5,{left:curpos+"px",ease:punchgs.Power3.easeOut}); curpos = !curpos ? tdir==="vertical" ? el.position().top : el.position().left : curpos; el.data('offset',curpos); el.data('distance',distance); setTimeout(function() { opt.dragStartedOverSlider = false; opt.dragStartedOverThumbs = false; opt.dragStartedOverTabs = false; },100); container.parent().find(thumbs).removeClass("dragged"); return false; } break; } } else { if (phase=="end" && !istt) { opt.sc_indicator="arrow"; if ((swipe_wait_dir=="horizontal" && direction == "left") || (swipe_wait_dir=="vertical" && direction == "up")) { opt.sc_indicator_dir = 0; _R.callingNewSlide(opt.c,1); return false; } if ((swipe_wait_dir=="horizontal" && direction == "right") || (swipe_wait_dir=="vertical" && direction == "down")) { opt.sc_indicator_dir = 1; _R.callingNewSlide(opt.c,-1); return false; } } opt.dragStartedOverSlider = false; opt.dragStartedOverThumbs = false; opt.dragStartedOverTabs = false; return true; } } }); }; // NAVIGATION HELPER FUNCTIONS var hdResets = function(o) { o.hide_delay = !jQuery.isNumeric(parseInt(o.hide_delay,0)) ? 0.2 : o.hide_delay/1000; o.hide_delay_mobile = !jQuery.isNumeric(parseInt(o.hide_delay_mobile,0)) ? 0.2 : o.hide_delay_mobile/1000; }; var ckNO = function(opt) { return opt && opt.enable; }; var ckNOLO = function(opt) { return opt && opt.enable && opt.hide_onleave===true && (opt.position===undefined ? true : !opt.position.match(/outer/g)); }; var callAllDelayedCalls = function(container,opt) { var cp = container.parent(); if (ckNOLO(opt.navigation.arrows)) punchgs.TweenLite.delayedCall(_ISM ? opt.navigation.arrows.hide_delay_mobile : opt.navigation.arrows.hide_delay,showHideNavElements,[cp.find('.tparrows'),opt.navigation.arrows,"hide"]); if (ckNOLO(opt.navigation.bullets)) punchgs.TweenLite.delayedCall(_ISM ? opt.navigation.bullets.hide_delay_mobile : opt.navigation.bullets.hide_delay,showHideNavElements,[cp.find('.tp-bullets'),opt.navigation.bullets,"hide"]); if (ckNOLO(opt.navigation.thumbnails)) punchgs.TweenLite.delayedCall(_ISM ? opt.navigation.thumbnails.hide_delay_mobile : opt.navigation.thumbnails.hide_delay,showHideNavElements,[cp.find('.tp-thumbs'),opt.navigation.thumbnails,"hide"]); if (ckNOLO(opt.navigation.tabs)) punchgs.TweenLite.delayedCall(_ISM ? opt.navigation.tabs.hide_delay_mobile : opt.navigation.tabs.hide_delay,showHideNavElements,[cp.find('.tp-tabs'),opt.navigation.tabs,"hide"]); }; var showHideNavElements = function(container,opt,dir,speed) { speed = speed===undefined ? 0.5 : speed; switch (dir) { case "show": punchgs.TweenLite.to(container,speed, {autoAlpha:1,ease:punchgs.Power3.easeInOut,overwrite:"auto"}); break; case "hide": punchgs.TweenLite.to(container,speed, {autoAlpha:0,ease:punchgs.Power3.easeInOu,overwrite:"auto"}); break; } }; // ADD ARROWS var initArrows = function(container,o,opt) { // SET oIONAL CLASSES o.style = o.style === undefined ? "" : o.style; o.left.style = o.left.style === undefined ? "" : o.left.style; o.right.style = o.right.style === undefined ? "" : o.right.style; // ADD LEFT AND RIGHT ARROWS if (container.find('.tp-leftarrow.tparrows').length===0) container.append('<div class="tp-leftarrow tparrows '+o.style+' '+o.left.style+'">'+o.tmp+'</div>'); if (container.find('.tp-rightarrow.tparrows').length===0) container.append('<div class="tp-rightarrow tparrows '+o.style+' '+o.right.style+'">'+o.tmp+'</div>'); var la = container.find('.tp-leftarrow.tparrows'), ra = container.find('.tp-rightarrow.tparrows'); if (o.rtl) { // CLICK HANDLINGS ON LEFT AND RIGHT ARROWS la.click(function() { opt.sc_indicator="arrow"; opt.sc_indicator_dir = 0;container.revnext();}); ra.click(function() { opt.sc_indicator="arrow"; opt.sc_indicator_dir = 1;container.revprev();}); } else { // CLICK HANDLINGS ON LEFT AND RIGHT ARROWS ra.click(function() { opt.sc_indicator="arrow"; opt.sc_indicator_dir = 0;container.revnext();}); la.click(function() { opt.sc_indicator="arrow"; opt.sc_indicator_dir = 1;container.revprev();}); } // SHORTCUTS o.right.j = container.find('.tp-rightarrow.tparrows'); o.left.j = container.find('.tp-leftarrow.tparrows') // OUTTUER PADDING DEFAULTS o.padding_top = parseInt((opt.carousel.padding_top||0),0), o.padding_bottom = parseInt((opt.carousel.padding_bottom||0),0); // POSITION OF ARROWS setNavElPositions(la,o.left,opt); setNavElPositions(ra,o.right,opt); o.left.opt = opt; o.right.opt = opt; if (o.position=="outer-left" || o.position=="outer-right") opt.outernav = true; }; // PUT ELEMENTS VERTICAL / HORIZONTAL IN THE RIGHT POSITION var putVinPosition = function(el,o,opt) { var elh = el.outerHeight(true), elw = el.outerWidth(true), oh = o.opt== undefined ? 0 : opt.conh == 0 ? opt.height : opt.conh, by = o.container=="layergrid" ? opt.sliderLayout=="fullscreen" ? opt.height/2 - (opt.gridheight[opt.curWinRange]*opt.bh)/2 : (opt.autoHeight=="on" || (opt.minHeight!=undefined && opt.minHeight>0)) ? oh/2 - (opt.gridheight[opt.curWinRange]*opt.bh)/2 : 0 : 0, a = o.v_align === "top" ? {top:"0px",y:Math.round(o.v_offset+by)+"px"} : o.v_align === "center" ? {top:"50%",y:Math.round(((0-elh/2)+o.v_offset))+"px"} : {top:"100%",y:Math.round((0-(elh+o.v_offset+by)))+"px"}; if (!el.hasClass("outer-bottom")) punchgs.TweenLite.set(el,a); }; var putHinPosition = function(el,o,opt) { var elh = el.outerHeight(true), elw = el.outerWidth(true), bx = o.container=="layergrid" ? opt.sliderType==="carousel" ? 0 : opt.width/2 - (opt.gridwidth[opt.curWinRange]*opt.bw)/2 : 0, a = o.h_align === "left" ? {left:"0px",x:Math.round(o.h_offset+bx)+"px"} : o.h_align === "center" ? {left:"50%",x:Math.round(((0-elw/2)+o.h_offset))+"px"} : {left:"100%",x:Math.round((0-(elw+o.h_offset+bx)))+"px"}; punchgs.TweenLite.set(el,a); }; // SET POSITION OF ELEMENTS var setNavElPositions = function(el,o,opt) { var wrapper = el.closest('.tp-simpleresponsive').length>0 ? el.closest('.tp-simpleresponsive') : el.closest('.tp-revslider-mainul').length>0 ? el.closest('.tp-revslider-mainul') : el.closest('.rev_slider_wrapper').length>0 ? el.closest('.rev_slider_wrapper'): el.parent().find('.tp-revslider-mainul'), ww = wrapper.width(), wh = wrapper.height(); putVinPosition(el,o,opt); putHinPosition(el,o,opt); if (o.position==="outer-left" && (o.sliderLayout=="fullwidth" || o.sliderLayout=="fullscreen")) punchgs.TweenLite.set(el,{left:(0-el.outerWidth())+"px",x:o.h_offset+"px"}); else if (o.position==="outer-right" && (o.sliderLayout=="fullwidth" || o.sliderLayout=="fullscreen")) punchgs.TweenLite.set(el,{right:(0-el.outerWidth())+"px",x:o.h_offset+"px"}); // MAX WIDTH AND HEIGHT BASED ON THE SOURROUNDING CONTAINER if (el.hasClass("tp-thumbs") || el.hasClass("tp-tabs")) { var wpad = el.data('wr_padding'), maxw = el.data('maxw'), maxh = el.data('maxh'), mask = el.hasClass("tp-thumbs") ? el.find('.tp-thumb-mask') : el.find('.tp-tab-mask'), cpt = parseInt((o.padding_top||0),0), cpb = parseInt((o.padding_bottom||0),0); // ARE THE CONTAINERS BIGGER THAN THE SLIDER WIDTH OR HEIGHT ? if (maxw>ww && o.position!=="outer-left" && o.position!=="outer-right") { punchgs.TweenLite.set(el,{left:"0px",x:0,maxWidth:(ww-2*wpad)+"px"}); punchgs.TweenLite.set(mask,{maxWidth:(ww-2*wpad)+"px"}); } else { punchgs.TweenLite.set(el,{maxWidth:(maxw)+"px"}); punchgs.TweenLite.set(mask,{maxWidth:(maxw)+"px"}); } if (maxh+2*wpad>wh && o.position!=="outer-bottom" && o.position!=="outer-top") { punchgs.TweenLite.set(el,{top:"0px",y:0,maxHeight:(cpt+cpb+(wh-2*wpad))+"px"}); punchgs.TweenLite.set(mask,{maxHeight:(cpt+cpb+(wh-2*wpad))+"px"}); } else { punchgs.TweenLite.set(el,{maxHeight:(maxh)+"px"}); punchgs.TweenLite.set(mask,{maxHeight:maxh+"px"}); } if (o.position!=="outer-left" && o.position!=="outer-right") { cpt = 0; cpb = 0; } // SPAN IS ENABLED if (o.span===true && o.direction==="vertical") { punchgs.TweenLite.set(el,{maxHeight:(cpt+cpb+(wh-2*wpad))+"px",height:(cpt+cpb+(wh-2*wpad))+"px",top:(0-cpt),y:0}); putVinPosition(mask,o,opt); } else if (o.span===true && o.direction==="horizontal") { punchgs.TweenLite.set(el,{maxWidth:"100%",width:(ww-2*wpad)+"px",left:0,x:0}); putHinPosition(mask,o,opt); } } }; // ADD A BULLET var addBullet = function(container,o,li,opt) { // Check if Bullet exists already ? if (container.find('.tp-bullets').length===0) { o.style = o.style === undefined ? "" : o.style; container.append('<div class="tp-bullets '+o.style+' '+o.direction+'"></div>'); } // Add Bullet Structure to the Bullet Container var bw = container.find('.tp-bullets'), linkto = li.data('index'), inst = o.tmp; jQuery.each(opt.thumbs[li.index()].params,function(i,obj) { inst = inst.replace(obj.from,obj.to);}) bw.append('<div class="justaddedbullet tp-bullet">'+inst+'</div>'); // SET BULLET SPACES AND POSITION var b = container.find('.justaddedbullet'), am = container.find('.tp-bullet').length, w = b.outerWidth()+parseInt((o.space===undefined? 0:o.space),0), h = b.outerHeight()+parseInt((o.space===undefined? 0:o.space),0); //bgimage = li.data('thumb') !==undefined ? li.data('thumb') : li.find('.defaultimg').data('lazyload') !==undefined && li.find('.defaultimg').data('lazyload') !== 'undefined' ? li.find('.defaultimg').data('lazyload') : li.find('.defaultimg').data('src'); if (o.direction==="vertical") { b.css({top:((am-1)*h)+"px", left:"0px"}); bw.css({height:(((am-1)*h) + b.outerHeight()),width:b.outerWidth()}); } else { b.css({left:((am-1)*w)+"px", top:"0px"}); bw.css({width:(((am-1)*w) + b.outerWidth()),height:b.outerHeight()}); } b.find('.tp-bullet-image').css({backgroundImage:'url('+opt.thumbs[li.index()].src+')'}); // SET LINK TO AND LISTEN TO CLICK b.data('liref',linkto); b.click(function() { opt.sc_indicator="bullet"; container.revcallslidewithid(linkto); container.find('.tp-bullet').removeClass("selected"); jQuery(this).addClass("selected"); }); // REMOVE HELP CLASS b.removeClass("justaddedbullet"); // OUTTUER PADDING DEFAULTS o.padding_top = parseInt((opt.carousel.padding_top||0),0), o.padding_bottom = parseInt((opt.carousel.padding_bottom||0),0); o.opt = opt; if (o.position=="outer-left" || o.position=="outer-right") opt.outernav = true; bw.addClass("nav-pos-hor-"+o.h_align); bw.addClass("nav-pos-ver-"+o.v_align); bw.addClass("nav-dir-"+o.direction); // PUT ALL CONTAINER IN POSITION setNavElPositions(bw,o,opt); }; var cHex = function(hex,o){ o = parseFloat(o); hex = hex.replace('#',''); var r = parseInt(hex.substring(0,2), 16), g = parseInt(hex.substring(2,4), 16), b = parseInt(hex.substring(4,6), 16), result = 'rgba('+r+','+g+','+b+','+o+')'; return result; }; // ADD THUMBNAILS var addThumb = function(container,o,li,what,opt) { var thumbs = what==="tp-thumb" ? ".tp-thumbs" : ".tp-tabs", thumbmask = what==="tp-thumb" ? ".tp-thumb-mask" : ".tp-tab-mask", thumbsiw = what==="tp-thumb" ? ".tp-thumbs-inner-wrapper" : ".tp-tabs-inner-wrapper", thumb = what==="tp-thumb" ? ".tp-thumb" : ".tp-tab", timg = what ==="tp-thumb" ? ".tp-thumb-image" : ".tp-tab-image"; o.visibleAmount = o.visibleAmount>opt.slideamount ? opt.slideamount : o.visibleAmount; o.sliderLayout = opt.sliderLayout; // Check if THUNBS/TABS exists already ? if (container.parent().find(thumbs).length===0) { o.style = o.style === undefined ? "" : o.style; var spanw = o.span===true ? "tp-span-wrapper" : "", addcontent = '<div class="'+what+'s '+spanw+" "+o.position+" "+o.style+'"><div class="'+what+'-mask"><div class="'+what+'s-inner-wrapper" style="position:relative;"></div></div></div>'; if (o.position==="outer-top") container.parent().prepend(addcontent) else if (o.position==="outer-bottom") container.after(addcontent); else container.append(addcontent); // OUTTUER PADDING DEFAULTS o.padding_top = parseInt((opt.carousel.padding_top||0),0), o.padding_bottom = parseInt((opt.carousel.padding_bottom||0),0); if (o.position=="outer-left" || o.position=="outer-right") opt.outernav = true; } // Add Thumb/TAB Structure to the THUMB/TAB Container var linkto = li.data('index'), t = container.parent().find(thumbs), tm = t.find(thumbmask), tw = tm.find(thumbsiw), maxw = o.direction==="horizontal" ? (o.width * o.visibleAmount) + (o.space*(o.visibleAmount-1)) : o.width, maxh = o.direction==="horizontal" ? o.height : (o.height * o.visibleAmount) + (o.space*(o.visibleAmount-1)), inst = o.tmp; jQuery.each(opt.thumbs[li.index()].params,function(i,obj) { inst = inst.replace(obj.from,obj.to); }) tw.append('<div data-liindex="'+li.index()+'" data-liref="'+linkto+'" class="justaddedthumb '+what+'" style="width:'+o.width+'px;height:'+o.height+'px;">'+inst+'</div>'); // SET BULLET SPACES AND POSITION var b = t.find('.justaddedthumb'), am = t.find(thumb).length, w = b.outerWidth()+parseInt((o.space===undefined? 0:o.space),0), h = b.outerHeight()+parseInt((o.space===undefined? 0:o.space),0); // FILL CONTENT INTO THE TAB / THUMBNAIL b.find(timg).css({backgroundImage:"url("+opt.thumbs[li.index()].src+")"}); if (o.direction==="vertical") { b.css({top:((am-1)*h)+"px", left:"0px"}); tw.css({height:(((am-1)*h) + b.outerHeight()),width:b.outerWidth()}); } else { b.css({left:((am-1)*w)+"px", top:"0px"}); tw.css({width:(((am-1)*w) + b.outerWidth()),height:b.outerHeight()}); } t.data('maxw',maxw); t.data('maxh',maxh); t.data('wr_padding',o.wrapper_padding); var position = o.position === "outer-top" || o.position==="outer-bottom" ? "relative" : "absolute", _margin = (o.position === "outer-top" || o.position==="outer-bottom") && (o.h_align==="center") ? "auto" : "0"; tm.css({maxWidth:maxw+"px",maxHeight:maxh+"px",overflow:"hidden",position:"relative"}); t.css({maxWidth:(maxw)+"px",/*margin:_margin, */maxHeight:maxh+"px",overflow:"visible",position:position,background:o.wrapper_color,padding:o.wrapper_padding+"px",boxSizing:"contet-box"}); // SET LINK TO AND LISTEN TO CLICK b.click(function() { opt.sc_indicator="bullet"; var dis = container.parent().find(thumbsiw).data('distance'); dis = dis === undefined ? 0 : dis; if (Math.abs(dis)<10) { container.revcallslidewithid(linkto); container.parent().find(thumbs).removeClass("selected"); jQuery(this).addClass("selected"); } }); // REMOVE HELP CLASS b.removeClass("justaddedthumb"); o.opt = opt; t.addClass("nav-pos-hor-"+o.h_align); t.addClass("nav-pos-ver-"+o.v_align); t.addClass("nav-dir-"+o.direction); // PUT ALL CONTAINER IN POSITION setNavElPositions(t,o,opt); }; var setONHeights = function(o) { var ot = o.c.parent().find('.outer-top'), ob = o.c.parent().find('.outer-bottom'); o.top_outer = !ot.hasClass("tp-forcenotvisible") ? ot.outerHeight() || 0 : 0; o.bottom_outer = !ob.hasClass("tp-forcenotvisible") ? ob.outerHeight() || 0 : 0; }; // HIDE NAVIGATION ON PURPOSE var biggerNav = function(el,a,b,c) { if (a>b || b>c) el.addClass("tp-forcenotvisible") else el.removeClass("tp-forcenotvisible"); }; })(jQuery);