YITH WooCommerce Zoom Magnifier - Version 2.13.0

Version Description

Download this release

Release Info

Developer yithemes
Plugin Icon 128x128 YITH WooCommerce Zoom Magnifier
Version 2.13.0
Comparing to
See all releases

Code changes from version 2.12.0 to 2.13.0

assets/js/jquery.min.js CHANGED
@@ -1 +1 @@
1
- !function($){function sc_setScroll(t,e,s){return{anims:[],duration:t,orgDuration:t,easing:e="transition"==s.transition&&"swing"==e?"ease":e,startTime:getTime()}}function sc_startScroll(t,e){for(var s=0,i=t.anims.length;s<i;s++){var o=t.anims[s];o&&o[0][e.transition](o[1],t.duration,t.easing,o[2])}}function sc_stopScroll(t,e){is_boolean(e)||(e=!0),is_object(t.pre)&&sc_stopScroll(t.pre,e);for(var s=0,i=t.anims.length;s<i;s++){var o=t.anims[s];o[0].stop(!0),e&&(o[0].css(o[1]),is_function(o[2])&&o[2]())}is_object(t.post)&&sc_stopScroll(t.post,e)}function sc_afterScroll(t,e,s){switch(e&&e.remove(),s.fx){case"fade":case"crossfade":case"cover-fade":case"uncover-fade":t.css("opacity",1),t.css("filter","")}}function sc_fireCallbacks(t,e,s,i,o){if(e[s]&&e[s].call(t,i),o[s].length)for(var n=0,r=o[s].length;n<r;n++)o[s][n].call(t,i);return[]}function sc_fireQueue(t,e,s){return e.length&&(t.trigger(cf_e(e[0][0],s),e[0][1]),e.shift()),e}function sc_hideHiddenItems(t){t.each(function(){var t=$(this);t.data("_cfs_isHidden",t.is(":hidden")).hide()})}function sc_showHiddenItems(t){t&&t.each(function(){var t=$(this);t.data("_cfs_isHidden")||t.show()})}function sc_clearTimers(t){return t.auto&&clearTimeout(t.auto),t.progress&&clearInterval(t.progress),t}function sc_mapCallbackArguments(t,e,s,i,o,n,r){return{width:r.width,height:r.height,items:{old:t,skipped:e,visible:s},scroll:{items:i,direction:o,duration:n}}}function sc_getDuration(t,e,s,i){var o=t.duration;return"none"==t.fx?0:("auto"==o?o=e.scroll.duration/e.scroll.items*s:o<10&&(o=i/o),o<1?0:("fade"==t.fx&&(o/=2),Math.round(o)))}function nv_showNavi(t,e,s){var i=is_number(t.items.minimum)?t.items.minimum:t.items.visible+1,i="show"==(e="show"==e||"hide"==e?e:e<i?(debug(s,"Not enough items ("+e+" total, "+i+" needed): Hiding navigation."),"hide"):"show")?"removeClass":"addClass",s=cf_c("hidden",s);t.auto.button&&t.auto.button[e]()[i](s),t.prev.button&&t.prev.button[e]()[i](s),t.next.button&&t.next.button[e]()[i](s),t.pagination.container&&t.pagination.container[e]()[i](s)}function nv_enableNavi(t,e,s){var i,o;t.circular||t.infinite||(i=("removeClass"==e||"addClass"==e)&&e,s=cf_c("disabled",s),t.auto.button&&i&&t.auto.button[i](s),t.prev.button&&t.prev.button[o=i||0==e?"addClass":"removeClass"](s),t.next.button&&(o=i||e==t.items.visible?"addClass":"removeClass",t.next.button[o](s)))}function go_getObject(t,e){return is_function(e)?e=e.call(t):is_undefined(e)&&(e={}),e}function go_getItemsObject(t,e){return is_number(e=go_getObject(t,e))?e={visible:e}:"variable"==e?e={visible:e,width:e,height:e}:is_object(e)||(e={}),e}function go_getScrollObject(t,e){return is_number(e=go_getObject(t,e))?e=e<=50?{items:e}:{duration:e}:is_string(e)?e={easing:e}:is_object(e)||(e={}),e}function go_getNaviObject(t,e){return e=is_string(e=go_getObject(t,e))?-1==(t=cf_getKeyCode(e))?$(e):t:e}function go_getAutoObject(t,e){return is_jquery(e=go_getNaviObject(t,e))?e={button:e}:is_boolean(e)?e={play:e}:is_number(e)&&(e={timeoutDuration:e}),e.progress&&(is_string(e.progress)||is_jquery(e.progress))&&(e.progress={bar:e.progress}),e}function go_complementAutoObject(t,e){return is_function(e.button)&&(e.button=e.button.call(t)),is_string(e.button)&&(e.button=$(e.button)),is_boolean(e.play)||(e.play=!0),is_number(e.delay)||(e.delay=0),is_undefined(e.pauseOnEvent)&&(e.pauseOnEvent=!0),is_boolean(e.pauseOnResize)||(e.pauseOnResize=!0),is_number(e.timeoutDuration)||(e.timeoutDuration=e.duration<10?2500:5*e.duration),e.progress&&(is_function(e.progress.bar)&&(e.progress.bar=e.progress.bar.call(t)),is_string(e.progress.bar)&&(e.progress.bar=$(e.progress.bar)),e.progress.bar?(is_function(e.progress.updater)||(e.progress.updater=$.fn.carouFredSel.progressbarUpdater),is_number(e.progress.interval)||(e.progress.interval=50)):e.progress=!1),e}function go_getPrevNextObject(t,e){return is_jquery(e=go_getNaviObject(t,e))?e={button:e}:is_number(e)&&(e={key:e}),e}function go_complementPrevNextObject(t,e){return is_function(e.button)&&(e.button=e.button.call(t)),is_string(e.button)&&(e.button=$(e.button)),is_string(e.key)&&(e.key=cf_getKeyCode(e.key)),e}function go_getPaginationObject(t,e){return is_jquery(e=go_getNaviObject(t,e))?e={container:e}:is_boolean(e)&&(e={keys:e}),e}function go_complementPaginationObject(t,e){return is_function(e.container)&&(e.container=e.container.call(t)),is_string(e.container)&&(e.container=$(e.container)),is_number(e.items)||(e.items=!1),is_boolean(e.keys)||(e.keys=!1),is_function(e.anchorBuilder)||is_false(e.anchorBuilder)||(e.anchorBuilder=$.fn.carouFredSel.pageAnchorBuilder),is_number(e.deviation)||(e.deviation=0),e}function go_getSwipeObject(t,e){return is_true(e=is_undefined(e=is_function(e)?e.call(t):e)?{onTouch:!1}:e)?e={onTouch:e}:is_number(e)&&(e={items:e}),e}function go_complementSwipeObject(t,e){return is_boolean(e.onTouch)||(e.onTouch=!0),is_boolean(e.onMouse)||(e.onMouse=!1),is_object(e.options)||(e.options={}),is_boolean(e.options.triggerOnTouchEnd)||(e.options.triggerOnTouchEnd=!1),e}function go_getMousewheelObject(t,e){return is_true(e=is_function(e)?e.call(t):e)?e={}:is_number(e)?e={items:e}:is_undefined(e)&&(e=!1),e}function go_complementMousewheelObject(t,e){return e}function gn_getItemIndex(t,e,s,i,o){if(is_jquery(t=is_object(t=is_string(t)?$(t,o):t)?$(t,o):t)?(t=o.children().index(t),is_boolean(s)||(s=!1)):is_boolean(s)||(s=!0),is_number(t)||(t=0),is_number(e)||(e=0),s&&(t+=i.first),t+=e,0<i.total){for(;t>=i.total;)t-=i.total;for(;t<0;)t+=i.total}return t}function gn_getVisibleItemsPrev(t,e,s){for(var i=0,o=0,n=s;0<=n;n--){var r=t.eq(n);if((i+=r.is(":visible")?r[e.d.outerWidth](!0):0)>e.maxDimension)return o;0==n&&(n=t.length),o++}}function gn_getVisibleItemsPrevFilter(t,e,s){return gn_getItemsPrevFilter(t,e.items.filter,e.items.visibleConf.org,s)}function gn_getScrollItemsPrevFilter(t,e,s,i){return gn_getItemsPrevFilter(t,e.items.filter,i,s)}function gn_getItemsPrevFilter(t,e,s,i){for(var o=0,n=0,r=i,c=t.length;0<=r;r--){if(++n==c)return n;var a=t.eq(r);if(a.is(e)&&++o==s)return n;0==r&&(r=c)}}function gn_getVisibleOrg(t,e){return e.items.visibleConf.org||t.children().slice(0,e.items.visible).filter(e.items.filter).length}function gn_getVisibleItemsNext(t,e,s){for(var i=0,o=0,n=s,r=t.length-1;n<=r;n++){var c=t.eq(n);if((i+=c.is(":visible")?c[e.d.outerWidth](!0):0)>e.maxDimension)return o;if(++o==1+r)return o;n==r&&(n=-1)}}function gn_getVisibleItemsNextTestCircular(t,e,s,i){t=gn_getVisibleItemsNext(t,e,s);return e.circular||i<s+t&&(t=i-s),t}function gn_getVisibleItemsNextFilter(t,e,s){return gn_getItemsNextFilter(t,e.items.filter,e.items.visibleConf.org,s,e.circular)}function gn_getScrollItemsNextFilter(t,e,s,i){return gn_getItemsNextFilter(t,e.items.filter,i+1,s,e.circular)-1}function gn_getItemsNextFilter(t,e,s,i,o){for(var n=0,r=0,c=i,a=t.length-1;c<=a;c++){if(a<=++r)return r;var f=t.eq(c);if(f.is(e)&&++n==s)return r;c==a&&(c=-1)}}function gi_getCurrentItems(t,e){return t.slice(0,e.items.visible)}function gi_getOldItemsPrev(t,e,s){return t.slice(s,e.items.visibleConf.old+s)}function gi_getNewItemsPrev(t,e){return t.slice(0,e.items.visible)}function gi_getOldItemsNext(t,e){return t.slice(0,e.items.visibleConf.old)}function gi_getNewItemsNext(t,e,s){return t.slice(s,e.items.visible+s)}function sz_storeMargin(t,s,i){s.usePadding&&(is_string(i)||(i="_cfs_origCssMargin"),t.each(function(){var t=$(this),e=parseInt(t.css(s.d.marginRight),10);is_number(e)||(e=0),t.data(i,e)}))}function sz_resetMargin(t,e,s){var i;e.usePadding&&(i=!!is_boolean(s)&&s,is_number(s)||(s=0),sz_storeMargin(t,e,"_cfs_tempCssMargin"),t.each(function(){var t=$(this);t.css(e.d.marginRight,i?t.data("_cfs_tempCssMargin"):s+t.data("_cfs_origCssMargin"))}))}function sz_storeOrigCss(t){t.each(function(){var t=$(this);t.data("_cfs_origCss",t.attr("style")||"")})}function sz_restoreOrigCss(t){t.each(function(){var t=$(this);t.attr("style",t.data("_cfs_origCss")||"")})}function sz_setResponsiveSizes(s,t){s.items.visible;var i=s.items[s.d.width],o=s[s.d.height],n=is_percentage(o);t.each(function(){var t=$(this),e=i-ms_getPaddingBorderMargin(t,s,"Width");t[s.d.width](e),n&&t[s.d.height](ms_getPercentage(e,o))})}function sz_setSizes(t,e){var s,i=t.parent(),o=t.children(),n=gi_getCurrentItems(o,e),r=cf_mapWrapperSizes(ms_getSizes(n,e,!0),e,!1);return i.css(r),e.usePadding&&(s=(i=e.padding)[e.d[1]],e.align&&s<0&&(s=0),(n=n.last()).css(e.d.marginRight,n.data("_cfs_origCssMargin")+s),t.css(e.d.top,i[e.d[0]]),t.css(e.d.left,i[e.d[3]])),t.css(e.d.width,r[e.d.width]+2*ms_getTotalSize(o,e,"width")),t.css(e.d.height,ms_getLargestSize(o,e,"height")),r}function ms_getSizes(t,e,s){return[ms_getTotalSize(t,e,"width",s),ms_getLargestSize(t,e,"height",s)]}function ms_getLargestSize(t,e,s,i){return is_boolean(i)||(i=!1),is_number(e[e.d[s]])&&i?e[e.d[s]]:is_number(e.items[e.d[s]])?e.items[e.d[s]]:ms_getTrueLargestSize(t,e,s=-1<s.toLowerCase().indexOf("width")?"outerWidth":"outerHeight")}function ms_getTrueLargestSize(t,e,s){for(var i=0,o=0,n=t.length;o<n;o++){var r=t.eq(o),r=r.is(":visible")?r[e.d[s]](!0):0;i<r&&(i=r)}return i}function ms_getTotalSize(t,e,s,i){if(is_boolean(i)||(i=!1),is_number(e[e.d[s]])&&i)return e[e.d[s]];if(is_number(e.items[e.d[s]]))return e.items[e.d[s]]*t.length;for(var o=-1<s.toLowerCase().indexOf("width")?"outerWidth":"outerHeight",n=0,r=0,c=t.length;r<c;r++){var a=t.eq(r);n+=a.is(":visible")?a[e.d[o]](!0):0}return n}function ms_getParentSize(t,e,s){var i=t.is(":visible"),s=(i&&t.hide(),t.parent()[e.d[s]]());return i&&t.show(),s}function ms_getMaxDimension(t,e){return is_number(t[t.d.width])?t[t.d.width]:e}function ms_hasVariableSizes(t,e,s){for(var i=!1,o=!1,n=0,r=t.length;n<r;n++){var c=t.eq(n),c=c.is(":visible")?c[e.d[s]](!0):0;!1===i?i=c:i!=c&&(o=!0),0==i&&(o=!0)}return o}function ms_getPaddingBorderMargin(t,e,s){return t[e.d["outer"+s]](!0)-t[e.d[s.toLowerCase()]]()}function ms_getPercentage(t,e){if(is_percentage(e)){if(!is_number(e=parseInt(e.slice(0,-1),10)))return t;t*=e/100}return t}function cf_e(t,e,s,i,o){return is_boolean(s)||(s=!0),is_boolean(i)||(i=!0),is_boolean(o)||(o=!1),s&&(t=e.events.prefix+t),i&&(t=t+"."+e.events.namespace),i&&o&&(t+=e.serialNumber),t}function cf_c(t,e){return is_string(e.classnames[t])?e.classnames[t]:t}function cf_mapWrapperSizes(t,e,s){is_boolean(s)||(s=!0);var s=e.usePadding&&s?e.padding:[0,0,0,0],i={};return i[e.d.width]=t[0]+s[1]+s[3],i[e.d.height]=t[1]+s[0]+s[2],i}function cf_sortParams(t,e){for(var s=[],i=0,o=t.length;i<o;i++)for(var n=0,r=e.length;n<r;n++)if(-1<e[n].indexOf(typeof t[i])&&is_undefined(s[n])){s[n]=t[i];break}return s}function cf_getPadding(t){if(is_undefined(t))return[0,0,0,0];if(is_number(t))return[t,t,t,t];if(!is_array(t=is_string(t)?t.split("px").join("").split("em").join("").split(" "):t))return[0,0,0,0];for(var e=0;e<4;e++)t[e]=parseInt(t[e],10);switch(t.length){case 0:return[0,0,0,0];case 1:return[t[0],t[0],t[0],t[0]];case 2:return[t[0],t[1],t[0],t[1]];case 3:return[t[0],t[1],t[2],t[1]];default:return[t[0],t[1],t[2],t[3]]}}function cf_getAlignPadding(t,e){var s=is_number(e[e.d.width])?Math.ceil(e[e.d.width]-ms_getTotalSize(t,e,"width")):0;switch(e.align){case"left":return[0,s];case"right":return[s,0];default:return[Math.ceil(s/2),Math.floor(s/2)]}}function cf_getDimensions(t){for(var e=[["width","innerWidth","outerWidth","height","innerHeight","outerHeight","left","top","marginRight",0,1,2,3],["height","innerHeight","outerHeight","width","innerWidth","outerWidth","top","left","marginBottom",3,2,1,0]],s=e[0].length,i="right"==t.direction||"left"==t.direction?0:1,o={},n=0;n<s;n++)o[e[0][n]]=e[i][n];return o}function cf_getAdjust(t,e,s,i){var o=t;if(is_function(s))o=s.call(i,o);else if(is_string(s)){var n,r,i=s.split("+"),s=s.split("-");switch(s=s.length>i.length?(n=!0,r=s[0],s[1]):(n=!1,r=i[0],i[1]),r){case"even":o=t%2==1?t-1:t;break;case"odd":o=t%2==0?t-1:t;break;default:o=t}is_number(s=parseInt(s,10))&&(o+=s=n?-s:s)}return o=!is_number(o)||o<1?1:o}function cf_getItemsAdjust(t,e,s,i){return cf_getItemAdjustMinMax(cf_getAdjust(t,e,s,i),e.items.visibleConf)}function cf_getItemAdjustMinMax(t,e){return is_number(e.min)&&t<e.min&&(t=e.min),t=(t=is_number(e.max)&&t>e.max?e.max:t)<1?1:t}function cf_getSynchArr(t){is_array(t)||(t=[[t]]);for(var e=0,s=(t=is_array(t[0])?t:[t]).length;e<s;e++)is_string(t[e][0])&&(t[e][0]=$(t[e][0])),is_boolean(t[e][1])||(t[e][1]=!0),is_boolean(t[e][2])||(t[e][2]=!0),is_number(t[e][3])||(t[e][3]=0);return t}function cf_getKeyCode(t){return"right"==t?39:"left"==t?37:"up"==t?38:"down"==t?40:-1}function cf_setCookie(t,e,s){t&&(s=e.triggerHandler(cf_e("currentPosition",s)),$.fn.carouFredSel.cookie.set(t,s))}function cf_getCookie(t){t=$.fn.carouFredSel.cookie.get(t);return""==t?0:t}function in_mapCss(t,e){for(var s={},i=0,o=e.length;i<o;i++)s[e[i]]=t.css(e[i]);return s}function in_complementItems(t,e,s,i){return is_object(t.visibleConf)||(t.visibleConf={}),is_object(t.sizesConf)||(t.sizesConf={}),0==t.start&&is_number(i)&&(t.start=i),is_object(t.visible)?(t.visibleConf.min=t.visible.min,t.visibleConf.max=t.visible.max,t.visible=!1):is_string(t.visible)?("variable"==t.visible?t.visibleConf.variable=!0:t.visibleConf.adjust=t.visible,t.visible=!1):is_function(t.visible)&&(t.visibleConf.adjust=t.visible,t.visible=!1),is_string(t.filter)||(t.filter=0<s.filter(":hidden").length?":visible":"*"),t[e.d.width]||(e.responsive?(debug(!0,"Set a "+e.d.width+" for the items!"),t[e.d.width]=ms_getTrueLargestSize(s,e,"outerWidth")):t[e.d.width]=ms_hasVariableSizes(s,e,"outerWidth")?"variable":s[e.d.outerWidth](!0)),t[e.d.height]||(t[e.d.height]=ms_hasVariableSizes(s,e,"outerHeight")?"variable":s[e.d.outerHeight](!0)),t.sizesConf.width=t.width,t.sizesConf.height=t.height,t}function in_complementVisibleItems(t,e){return"variable"==t.items[t.d.width]&&(t.items.visibleConf.variable=!0),t.items.visibleConf.variable||(is_number(t[t.d.width])?t.items.visible=Math.floor(t[t.d.width]/t.items[t.d.width]):(t.items.visible=Math.floor(e/t.items[t.d.width]),t[t.d.width]=t.items.visible*t.items[t.d.width],t.items.visibleConf.adjust||(t.align=!1)),("Infinity"==t.items.visible||t.items.visible<1)&&(debug(!0,'Not a valid number of visible items: Set to "variable".'),t.items.visibleConf.variable=!0)),t}function in_complementPrimarySize(t,e,s){return t="auto"==t?ms_getTrueLargestSize(s,e,"outerWidth"):t}function in_complementSecondarySize(t,e,s){return t=(t="auto"==t?ms_getTrueLargestSize(s,e,"outerHeight"):t)||e.items[e.d.height]}function in_getAlignPadding(t,e){e=cf_getAlignPadding(gi_getCurrentItems(e,t),t);return t.padding[t.d[1]]=e[1],t.padding[t.d[3]]=e[0],t}function in_getResponsiveValues(t,e,s){var i=cf_getItemAdjustMinMax(Math.ceil(t[t.d.width]/t.items[t.d.width]),t.items.visibleConf),e=(i>e.length&&(i=e.length),Math.floor(t[t.d.width]/i));return t.items.visible=i,t.items[t.d.width]=e,t[t.d.width]=i*e,t}function bt_pauseOnHoverConfig(t){var e,s;return is_string(t)?(s=-1<t.indexOf("immediate"),e=-1<t.indexOf("resume")):s=e=!1,[s,e]}function bt_mousesheelNumber(t){is_number(t)}function is_null(t){return null===t}function is_undefined(t){return is_null(t)||void 0===t||""===t||"undefined"===t}function is_array(t){return t instanceof Array}function is_jquery(t){return t instanceof jQuery}function is_object(t){return(t instanceof Object||"object"==typeof t)&&!is_null(t)&&!is_jquery(t)&&!is_array(t)&&!is_function(t)}function is_number(t){return(t instanceof Number||"number"==typeof t)&&!isNaN(t)}function is_string(t){return(t instanceof String||"string"==typeof t)&&!is_undefined(t)&&!is_true(t)&&!is_false(t)}function is_function(t){return t instanceof Function||"function"==typeof t}function is_boolean(t){return t instanceof Boolean||"boolean"==typeof t||is_true(t)||is_false(t)}function is_true(t){return!0===t||"true"===t}function is_false(t){return!1===t||"false"===t}function is_percentage(t){return is_string(t)&&"%"==t.slice(-1)}function getTime(){return(new Date).getTime()}function deprecated(t,e){debug(!0,t+" is DEPRECATED, support for it will be removed. Use "+e+" instead.")}function debug(t,e){if(!is_undefined(window.console)&&!is_undefined(window.console.log)){var s;if(is_object(t)?(s=" ("+t.selector+")",t=t.debug):s="",!t)return!1;e=is_string(e)?"carouFredSel"+s+": "+e:["carouFredSel"+s+":",e],window.console.log(e)}return!1}$.fn.carouFredSel||($.fn.caroufredsel=$.fn.carouFredSel=function(options,configs){if(0==this.length)return debug(!0,'No element found for "'+this.selector+'".'),this;if(1<this.length)return this.each(function(){$(this).carouFredSel(options,configs)});var $cfs=this,$tt0=this[0],starting_position=!1,FN=($cfs.data("_cfs_isCarousel")&&(starting_position=$cfs.triggerHandler("_cfs_triggerEvent","currentPosition"),$cfs.trigger("_cfs_triggerEvent",["destroy",!0])),{}),crsl=(FN._init=function(t,e,s){(t=go_getObject($tt0,t)).items=go_getItemsObject($tt0,t.items),t.scroll=go_getScrollObject($tt0,t.scroll),t.auto=go_getAutoObject($tt0,t.auto),t.prev=go_getPrevNextObject($tt0,t.prev),t.next=go_getPrevNextObject($tt0,t.next),t.pagination=go_getPaginationObject($tt0,t.pagination),t.swipe=go_getSwipeObject($tt0,t.swipe),t.mousewheel=go_getMousewheelObject($tt0,t.mousewheel),e&&(opts_orig=$.extend(!0,{},$.fn.carouFredSel.defaults,t)),(opts=$.extend(!0,{},$.fn.carouFredSel.defaults,t)).d=cf_getDimensions(opts),crsl.direction="up"==opts.direction||"left"==opts.direction?"next":"prev";var i=$cfs.children(),e=ms_getParentSize($wrp,opts,"width");if(is_true(opts.cookie)&&(opts.cookie="caroufredsel_cookie_"+conf.serialNumber),opts.maxDimension=ms_getMaxDimension(opts,e),opts.items=in_complementItems(opts.items,opts,i,s),opts[opts.d.width]=in_complementPrimarySize(opts[opts.d.width],opts,i),opts[opts.d.height]=in_complementSecondarySize(opts[opts.d.height],opts,i),!opts.responsive||is_percentage(opts[opts.d.width])||(opts[opts.d.width]="100%"),is_percentage(opts[opts.d.width])&&(crsl.upDateOnWindowResize=!0,crsl.primarySizePercentage=opts[opts.d.width],opts[opts.d.width]=ms_getPercentage(e,crsl.primarySizePercentage),opts.items.visible||(opts.items.visibleConf.variable=!0)),opts.responsive?(opts.usePadding=!0,opts.padding=[5,5,5,5],opts.align=!1,opts.items.visibleConf.variable=!1):((opts=opts.items.visible?opts:in_complementVisibleItems(opts,e))[opts.d.width]||(!opts.items.visibleConf.variable&&is_number(opts.items[opts.d.width])&&"*"==opts.items.filter?(opts[opts.d.width]=opts.items.visible*opts.items[opts.d.width],opts.align=!1):opts[opts.d.width]="variable"),is_undefined(opts.align)&&(opts.align=!!is_number(opts[opts.d.width])&&"center"),opts.items.visibleConf.variable&&(opts.items.visible=gn_getVisibleItemsNext(i,opts,0))),"*"==opts.items.filter||opts.items.visibleConf.variable||(opts.items.visibleConf.org=opts.items.visible,opts.items.visible=gn_getVisibleItemsNextFilter(i,opts,0)),opts.items.visible=cf_getItemsAdjust(opts.items.visible,opts,opts.items.visibleConf.adjust,$tt0),opts.items.visibleConf.old=opts.items.visible,opts.responsive)opts.items.visibleConf.min||(opts.items.visibleConf.min=opts.items.visible),opts.items.visibleConf.max||(opts.items.visibleConf.max=opts.items.visible),opts=in_getResponsiveValues(opts,i,e);else switch(opts.padding=cf_getPadding(opts.padding),"top"==opts.align?opts.align="left":"bottom"==opts.align&&(opts.align="right"),opts.align){case"center":case"left":case"right":"variable"!=opts[opts.d.width]&&((opts=in_getAlignPadding(opts,i)).usePadding=!0);break;default:opts.align=!1,opts.usePadding=0!=opts.padding[0]||0!=opts.padding[1]||0!=opts.padding[2]||0!=opts.padding[3]}is_number(opts.scroll.duration)||(opts.scroll.duration=500),is_undefined(opts.scroll.items)&&(opts.scroll.items=opts.responsive||opts.items.visibleConf.variable||"*"!=opts.items.filter?"visible":opts.items.visible),opts.auto=$.extend(!0,{},opts.scroll,opts.auto),opts.prev=$.extend(!0,{},opts.scroll,opts.prev),opts.next=$.extend(!0,{},opts.scroll,opts.next),opts.pagination=$.extend(!0,{},opts.scroll,opts.pagination),opts.auto=go_complementAutoObject($tt0,opts.auto),opts.prev=go_complementPrevNextObject($tt0,opts.prev),opts.next=go_complementPrevNextObject($tt0,opts.next),opts.pagination=go_complementPaginationObject($tt0,opts.pagination),opts.swipe=go_complementSwipeObject($tt0,opts.swipe),opts.mousewheel=go_complementMousewheelObject($tt0,opts.mousewheel),opts.synchronise&&(opts.synchronise=cf_getSynchArr(opts.synchronise)),opts.auto.onPauseStart&&(opts.auto.onTimeoutStart=opts.auto.onPauseStart,deprecated("auto.onPauseStart","auto.onTimeoutStart")),opts.auto.onPausePause&&(opts.auto.onTimeoutPause=opts.auto.onPausePause,deprecated("auto.onPausePause","auto.onTimeoutPause")),opts.auto.onPauseEnd&&(opts.auto.onTimeoutEnd=opts.auto.onPauseEnd,deprecated("auto.onPauseEnd","auto.onTimeoutEnd")),opts.auto.pauseDuration&&(opts.auto.timeoutDuration=opts.auto.pauseDuration,deprecated("auto.pauseDuration","auto.timeoutDuration"))},FN._build=function(){$cfs.data("_cfs_isCarousel",!0);var t=$cfs.children(),e=in_mapCss($cfs,["textAlign","float","position","top","right","bottom","left","zIndex","width","height","marginTop","marginRight","marginBottom","marginLeft"]),s="relative";switch(e.position){case"absolute":case"fixed":s=e.position}"parent"==conf.wrapper?sz_storeOrigCss($wrp):$wrp.css(e),$wrp.css({overflow:"hidden",position:s}),sz_storeOrigCss($cfs),$cfs.data("_cfs_origCssZindex",e.zIndex),$cfs.css({textAlign:"left","float":"none",position:"absolute",top:0,right:"auto",bottom:"auto",left:0,marginTop:0,marginRight:0,marginBottom:0,marginLeft:0}),sz_storeMargin(t,opts),sz_storeOrigCss(t),opts.responsive&&sz_setResponsiveSizes(opts,t)},FN._bind_events=function(){FN._unbind_events(),$cfs.bind(cf_e("stop",conf),function(t,e){return t.stopPropagation(),crsl.isStopped||opts.auto.button&&opts.auto.button.addClass(cf_c("stopped",conf)),crsl.isStopped=!0,opts.auto.play&&(opts.auto.play=!1,$cfs.trigger(cf_e("pause",conf),e)),!0}),$cfs.bind(cf_e("finish",conf),function(t){return t.stopPropagation(),crsl.isScrolling&&sc_stopScroll(scrl),!0}),$cfs.bind(cf_e("pause",conf),function(t,e,s){return t.stopPropagation(),tmrs=sc_clearTimers(tmrs),e&&crsl.isScrolling&&(scrl.isStopped=!0,t=getTime()-scrl.startTime,scrl.duration-=t,scrl.pre&&(scrl.pre.duration-=t),scrl.post&&(scrl.post.duration-=t),sc_stopScroll(scrl,!1)),crsl.isPaused||crsl.isScrolling||s&&(tmrs.timePassed+=getTime()-tmrs.startTime),crsl.isPaused||opts.auto.button&&opts.auto.button.addClass(cf_c("paused",conf)),crsl.isPaused=!0,opts.auto.onTimeoutPause&&(e=opts.auto.timeoutDuration-tmrs.timePassed,t=100-Math.ceil(100*e/opts.auto.timeoutDuration),opts.auto.onTimeoutPause.call($tt0,t,e)),!0}),$cfs.bind(cf_e("play",conf),function(t,e,s,i){t.stopPropagation(),tmrs=sc_clearTimers(tmrs);var o=cf_sortParams([e,s,i],["string","number","boolean"]);if(e=o[0],s=o[1],i=o[2],"prev"!=e&&"next"!=e&&(e=crsl.direction),is_number(s)||(s=0),(i=is_boolean(i)?i:!1)&&(crsl.isStopped=!1,opts.auto.play=!0),!opts.auto.play)return t.stopImmediatePropagation(),debug(conf,"Carousel stopped: Not scrolling.");crsl.isPaused&&opts.auto.button&&(opts.auto.button.removeClass(cf_c("stopped",conf)),opts.auto.button.removeClass(cf_c("paused",conf))),crsl.isPaused=!1,tmrs.startTime=getTime();var n=opts.auto.timeoutDuration+s;return dur2=n-tmrs.timePassed,perc=100-Math.ceil(100*dur2/n),opts.auto.progress&&(tmrs.progress=setInterval(function(){var t=getTime()-tmrs.startTime+tmrs.timePassed,t=Math.ceil(100*t/n);opts.auto.progress.updater.call(opts.auto.progress.bar[0],t)},opts.auto.progress.interval)),tmrs.auto=setTimeout(function(){opts.auto.progress&&opts.auto.progress.updater.call(opts.auto.progress.bar[0],100),opts.auto.onTimeoutEnd&&opts.auto.onTimeoutEnd.call($tt0,perc,dur2),crsl.isScrolling?$cfs.trigger(cf_e("play",conf),e):$cfs.trigger(cf_e(e,conf),opts.auto)},dur2),opts.auto.onTimeoutStart&&opts.auto.onTimeoutStart.call($tt0,perc,dur2),!0}),$cfs.bind(cf_e("resume",conf),function(t){return t.stopPropagation(),scrl.isStopped?(scrl.isStopped=!1,crsl.isPaused=!1,crsl.isScrolling=!0,scrl.startTime=getTime(),sc_startScroll(scrl,conf)):$cfs.trigger(cf_e("play",conf)),!0}),$cfs.bind(cf_e("prev",conf)+" "+cf_e("next",conf),function(t,e,s,i,o){if(t.stopPropagation(),crsl.isStopped||$cfs.is(":hidden"))return t.stopImmediatePropagation(),debug(conf,"Carousel stopped or hidden: Not scrolling.");var n=is_number(opts.items.minimum)?opts.items.minimum:opts.items.visible+1;if(n>itms.total)return t.stopImmediatePropagation(),debug(conf,"Not enough items ("+itms.total+" total, "+n+" needed): Not scrolling.");e=(a=cf_sortParams([e,s,i,o],["object","number/string","function","boolean"]))[0],s=a[1],i=a[2],o=a[3];var r=t.type.slice(conf.events.prefix.length);if(is_object(e)||(e={}),is_function(i)&&(e.onAfter=i),is_boolean(o)&&(e.queue=o),(e=$.extend(!0,{},opts[r],e)).conditions&&!e.conditions.call($tt0,r))return t.stopImmediatePropagation(),debug(conf,'Callback "conditions" returned false.');if(!is_number(s)){if("*"!=opts.items.filter)s="visible";else for(var c=[s,e.items,opts[r].items],a=0,f=c.length;a<f;a++)if(is_number(c[a])||"page"==c[a]||"visible"==c[a]){s=c[a];break}switch(s){case"page":return t.stopImmediatePropagation(),$cfs.triggerHandler(cf_e(r+"Page",conf),[e,i]);case"visible":opts.items.visibleConf.variable||"*"!=opts.items.filter||(s=opts.items.visible)}}if(scrl.isStopped)return $cfs.trigger(cf_e("resume",conf)),$cfs.trigger(cf_e("queue",conf),[r,[e,s,i]]),t.stopImmediatePropagation(),debug(conf,"Carousel resumed scrolling.");if(0<e.duration&&crsl.isScrolling)return e.queue&&("last"==e.queue&&(queu=[]),"first"==e.queue&&0!=queu.length||$cfs.trigger(cf_e("queue",conf),[r,[e,s,i]])),t.stopImmediatePropagation(),debug(conf,"Carousel currently scrolling.");if(tmrs.timePassed=0,$cfs.trigger(cf_e("slide_"+r,conf),[e,s]),opts.synchronise)for(var l=opts.synchronise,u=[e,s],p=0,f=l.length;p<f;p++){var d=r;l[p][2]||(d="prev"==d?"next":"prev"),l[p][1]||(u[0]=l[p][0].triggerHandler("_cfs_triggerEvent",["configuration",d])),u[1]=s+l[p][3],l[p][0].trigger("_cfs_triggerEvent",["slide_"+d,u])}return!0}),$cfs.bind(cf_e("slide_prev",conf),function(t,e,s){t.stopPropagation();var i=$cfs.children();if(!opts.circular&&0==itms.first)return opts.infinite&&$cfs.trigger(cf_e("next",conf),itms.total-1),t.stopImmediatePropagation();if(sz_resetMargin(i,opts),is_number(s)||(s=cf_getAdjust(s=opts.items.visibleConf.variable?gn_getVisibleItemsPrev(i,opts,itms.total-1):"*"!=opts.items.filter?(r=is_number(e.items)?e.items:gn_getVisibleOrg($cfs,opts),gn_getScrollItemsPrevFilter(i,opts,itms.total-1,r)):opts.items.visible,opts,e.items,$tt0)),opts.circular||itms.total-s<itms.first&&(s=itms.total-itms.first),opts.items.visibleConf.old=opts.items.visible,opts.items.visibleConf.variable?(l=cf_getItemsAdjust(gn_getVisibleItemsNext(i,opts,itms.total-s),opts,opts.items.visibleConf.adjust,$tt0),opts.items.visible+s<=l&&s<itms.total&&(s++,l=cf_getItemsAdjust(gn_getVisibleItemsNext(i,opts,itms.total-s),opts,opts.items.visibleConf.adjust,$tt0)),opts.items.visible=l):"*"!=opts.items.filter&&(l=gn_getVisibleItemsNextFilter(i,opts,itms.total-s),opts.items.visible=cf_getItemsAdjust(l,opts,opts.items.visibleConf.adjust,$tt0)),sz_resetMargin(i,opts,!0),0==s)return t.stopImmediatePropagation(),debug(conf,"0 items to scroll: Not scrolling.");for(debug(conf,"Scrolling "+s+" items backward."),itms.first+=s;itms.first>=itms.total;)itms.first-=itms.total;opts.circular||(0==itms.first&&e.onEnd&&e.onEnd.call($tt0,"prev"),opts.infinite||nv_enableNavi(opts,itms.first,conf)),$cfs.children().slice(itms.total-s,itms.total).prependTo($cfs),itms.total<opts.items.visible+s&&$cfs.children().slice(0,opts.items.visible+s-itms.total).clone(!0).appendTo($cfs);var o,n=gi_getOldItemsPrev(i=$cfs.children(),opts,s),r=gi_getNewItemsPrev(i,opts),c=i.eq(s-1),a=n.last(),f=r.last(),l=(sz_resetMargin(i,opts),0),t=0,u=(opts.align&&(l=(u=cf_getAlignPadding(r,opts))[0],t=u[1]),l<0?opts.padding[opts.d[3]]:0),p=!1,d=$(),g=(opts.items.visible<s&&(d=i.slice(opts.items.visibleConf.old,s),"directscroll"==e.fx&&(o=opts.items[opts.d.width],c=f,sc_hideHiddenItems(p=d),opts.items[opts.d.width]="variable")),!1),m=ms_getTotalSize(i.slice(0,s),opts,"width"),_=cf_mapWrapperSizes(ms_getSizes(r,opts,!0),opts,!opts.usePadding),b=0,v={},h={},w={},P={},C={},x={},S={},y=sc_getDuration(e,opts,s,m);switch(e.fx){case"cover":case"cover-fade":b=ms_getTotalSize(i.slice(0,opts.items.visible),opts,"width")}p&&(opts.items[opts.d.width]=o),sz_resetMargin(i,opts,!0),0<=t&&sz_resetMargin(a,opts,opts.padding[opts.d[1]]),0<=l&&sz_resetMargin(c,opts,opts.padding[opts.d[3]]),opts.align&&(opts.padding[opts.d[1]]=t,opts.padding[opts.d[3]]=l),x[opts.d.left]=-(m-u),S[opts.d.left]=-(b-u),h[opts.d.left]=_[opts.d.width];var I=function(){},z=function(){},j=function(){},N=function(){},k=function(){},H=function(){},O=function(){},q=function(){};switch(e.fx){case"crossfade":case"cover":case"cover-fade":case"uncover":case"uncover-fade":g=$cfs.clone(!0).appendTo($wrp)}switch(e.fx){case"crossfade":case"uncover":case"uncover-fade":g.children().slice(0,s).remove(),g.children().slice(opts.items.visibleConf.old).remove();break;case"cover":case"cover-fade":g.children().slice(opts.items.visible).remove(),g.css(S)}if($cfs.css(x),scrl=sc_setScroll(y,e.easing,conf),v[opts.d.left]=opts.usePadding?opts.padding[opts.d[3]]:0,"variable"!=opts[opts.d.width]&&"variable"!=opts[opts.d.height]||(I=function(){$wrp.css(_)},z=function(){scrl.anims.push([$wrp,_])}),opts.usePadding){switch(f.not(c).length&&(w[opts.d.marginRight]=c.data("_cfs_origCssMargin"),l<0?c.css(w):(O=function(){c.css(w)},q=function(){scrl.anims.push([c,w])})),e.fx){case"cover":case"cover-fade":g.children().eq(s-1).css(w)}f.not(a).length&&(P[opts.d.marginRight]=a.data("_cfs_origCssMargin"),j=function(){a.css(P)},N=function(){scrl.anims.push([a,P])}),0<=t&&(C[opts.d.marginRight]=f.data("_cfs_origCssMargin")+opts.padding[opts.d[1]],k=function(){f.css(C)},H=function(){scrl.anims.push([f,C])})}var T=function(){$cfs.css(v)},M=opts.items.visible+s-itms.total,F=function(){var t;0<M&&($cfs.children().slice(itms.total).remove(),n=$($cfs.children().slice(itms.total-(opts.items.visible-M)).get().concat($cfs.children().slice(0,M).get()))),sc_showHiddenItems(p),opts.usePadding&&(t=$cfs.children().eq(opts.items.visible+s-1)).css(opts.d.marginRight,t.data("_cfs_origCssMargin"))},D=sc_mapCallbackArguments(n,d,r,s,"prev",y,_),A=function(){sc_afterScroll($cfs,g,e),crsl.isScrolling=!1,clbk.onAfter=sc_fireCallbacks($tt0,e,"onAfter",D,clbk),queu=sc_fireQueue($cfs,queu,conf),crsl.isPaused||$cfs.trigger(cf_e("play",conf))};switch(crsl.isScrolling=!0,tmrs=sc_clearTimers(tmrs),clbk.onBefore=sc_fireCallbacks($tt0,e,"onBefore",D,clbk),e.fx){case"none":$cfs.css(v),I(),j(),k(),O(),T(),F(),A();break;case"fade":scrl.anims.push([$cfs,{opacity:0},function(){I(),j(),k(),O(),T(),F(),(scrl=sc_setScroll(y,e.easing,conf)).anims.push([$cfs,{opacity:1},A]),sc_startScroll(scrl,conf)}]);break;case"crossfade":$cfs.css({opacity:0}),scrl.anims.push([g,{opacity:0}]),scrl.anims.push([$cfs,{opacity:1},A]),z(),j(),k(),O(),T(),F();break;case"cover":scrl.anims.push([g,v,function(){j(),k(),O(),T(),F(),A()}]),z();break;case"cover-fade":scrl.anims.push([$cfs,{opacity:0}]),scrl.anims.push([g,v,function(){j(),k(),O(),T(),F(),A()}]),z();break;case"uncover":scrl.anims.push([g,h,A]),z(),j(),k(),O(),T(),F();break;case"uncover-fade":$cfs.css({opacity:0}),scrl.anims.push([$cfs,{opacity:1}]),scrl.anims.push([g,h,A]),z(),j(),k(),O(),T(),F();break;default:scrl.anims.push([$cfs,v,function(){F(),A()}]),z(),N(),H(),q()}return sc_startScroll(scrl,conf),cf_setCookie(opts.cookie,$cfs,conf),$cfs.trigger(cf_e("updatePageStatus",conf),[!1,_]),!0}),$cfs.bind(cf_e("slide_next",conf),function(t,e,s){t.stopPropagation();var i=$cfs.children();if(!opts.circular&&itms.first==opts.items.visible)return opts.infinite&&$cfs.trigger(cf_e("prev",conf),itms.total-1),t.stopImmediatePropagation();sz_resetMargin(i,opts),is_number(s)||(s=cf_getAdjust(s="*"!=opts.items.filter?(r=is_number(e.items)?e.items:gn_getVisibleOrg($cfs,opts),gn_getScrollItemsNextFilter(i,opts,0,r)):opts.items.visible,opts,e.items,$tt0));var o=0==itms.first?itms.total:itms.first;if(opts.circular||(r=opts.items.visibleConf.variable?(n=gn_getVisibleItemsNext(i,opts,s),gn_getVisibleItemsPrev(i,opts,o-1)):(n=opts.items.visible,opts.items.visible),o<s+n&&(s=o-r)),opts.items.visibleConf.old=opts.items.visible,opts.items.visibleConf.variable){for(var n=cf_getItemsAdjust(gn_getVisibleItemsNextTestCircular(i,opts,s,o),opts,opts.items.visibleConf.adjust,$tt0);opts.items.visible-s>=n&&s<itms.total;)n=cf_getItemsAdjust(gn_getVisibleItemsNextTestCircular(i,opts,++s,o),opts,opts.items.visibleConf.adjust,$tt0);opts.items.visible=n}else"*"!=opts.items.filter&&(n=gn_getVisibleItemsNextFilter(i,opts,s),opts.items.visible=cf_getItemsAdjust(n,opts,opts.items.visibleConf.adjust,$tt0));if(sz_resetMargin(i,opts,!0),0==s)return t.stopImmediatePropagation(),debug(conf,"0 items to scroll: Not scrolling.");for(debug(conf,"Scrolling "+s+" items forward."),itms.first-=s;itms.first<0;)itms.first+=itms.total;opts.circular||(itms.first==opts.items.visible&&e.onEnd&&e.onEnd.call($tt0,"next"),opts.infinite||nv_enableNavi(opts,itms.first,conf)),itms.total<opts.items.visible+s&&$cfs.children().slice(0,opts.items.visible+s-itms.total).clone(!0).appendTo($cfs);var r=gi_getOldItemsNext(i=$cfs.children(),opts),c=gi_getNewItemsNext(i,opts,s),a=i.eq(s-1),f=r.last(),t=c.last(),l=(sz_resetMargin(i,opts),0),u=0,p=(opts.align&&(l=(d=cf_getAlignPadding(c,opts))[0],u=d[1]),!1),d=$(),g=(opts.items.visibleConf.old<s&&(d=i.slice(opts.items.visibleConf.old,s),"directscroll"==e.fx&&(S=opts.items[opts.d.width],a=f,sc_hideHiddenItems(p=d),opts.items[opts.d.width]="variable")),!1),m=ms_getTotalSize(i.slice(0,s),opts,"width"),_=cf_mapWrapperSizes(ms_getSizes(c,opts,!0),opts,!opts.usePadding),b=0,v={},h={},w={},P={},C={},x=sc_getDuration(e,opts,s,m);switch(e.fx){case"uncover":case"uncover-fade":b=ms_getTotalSize(i.slice(0,opts.items.visibleConf.old),opts,"width")}p&&(opts.items[opts.d.width]=S),opts.align&&opts.padding[opts.d[1]]<0&&(opts.padding[opts.d[1]]=0),sz_resetMargin(i,opts,!0),sz_resetMargin(f,opts,opts.padding[opts.d[1]]),opts.align&&(opts.padding[opts.d[1]]=u,opts.padding[opts.d[3]]=l),C[opts.d.left]=opts.usePadding?opts.padding[opts.d[3]]:0;var S,y=function(){},I=function(){},z=function(){},j=function(){},N=function(){},k=function(){};switch(e.fx){case"crossfade":case"cover":case"cover-fade":case"uncover":case"uncover-fade":(g=$cfs.clone(!0).appendTo($wrp)).children().slice(opts.items.visibleConf.old).remove()}switch(e.fx){case"crossfade":case"cover":case"cover-fade":$cfs.css("zIndex",1),g.css("zIndex",0)}scrl=sc_setScroll(x,e.easing,conf),v[opts.d.left]=-m,h[opts.d.left]=-b,l<0&&(v[opts.d.left]+=l),"variable"!=opts[opts.d.width]&&"variable"!=opts[opts.d.height]||(y=function(){$wrp.css(_)},I=function(){scrl.anims.push([$wrp,_])}),opts.usePadding&&(S=t.data("_cfs_origCssMargin"),0<=u&&(S+=opts.padding[opts.d[1]]),t.css(opts.d.marginRight,S),a.not(f).length&&(P[opts.d.marginRight]=f.data("_cfs_origCssMargin")),z=function(){f.css(P)},j=function(){scrl.anims.push([f,P])},m=a.data("_cfs_origCssMargin"),0<l&&(m+=opts.padding[opts.d[3]]),w[opts.d.marginRight]=m,N=function(){a.css(w)},k=function(){scrl.anims.push([a,w])});var O=function(){$cfs.css(C)},T=opts.items.visible+s-itms.total,M=function(){0<T&&$cfs.children().slice(itms.total).remove();var t,e=$cfs.children().slice(0,s).appendTo($cfs).last();0<T&&(c=gi_getCurrentItems(i,opts)),sc_showHiddenItems(p),opts.usePadding&&(itms.total<opts.items.visible+s&&(t=$cfs.children().eq(opts.items.visible-1)).css(opts.d.marginRight,t.data("_cfs_origCssMargin")+opts.padding[opts.d[1]]),e.css(opts.d.marginRight,e.data("_cfs_origCssMargin")))},F=sc_mapCallbackArguments(r,d,c,s,"next",x,_),A=function(){$cfs.css("zIndex",$cfs.data("_cfs_origCssZindex")),sc_afterScroll($cfs,g,e),crsl.isScrolling=!1,clbk.onAfter=sc_fireCallbacks($tt0,e,"onAfter",F,clbk),queu=sc_fireQueue($cfs,queu,conf),crsl.isPaused||$cfs.trigger(cf_e("play",conf))};switch(crsl.isScrolling=!0,tmrs=sc_clearTimers(tmrs),clbk.onBefore=sc_fireCallbacks($tt0,e,"onBefore",F,clbk),e.fx){case"none":$cfs.css(v),y(),z(),N(),O(),M(),A();break;case"fade":scrl.anims.push([$cfs,{opacity:0},function(){y(),z(),N(),O(),M(),(scrl=sc_setScroll(x,e.easing,conf)).anims.push([$cfs,{opacity:1},A]),sc_startScroll(scrl,conf)}]);break;case"crossfade":$cfs.css({opacity:0}),scrl.anims.push([g,{opacity:0}]),scrl.anims.push([$cfs,{opacity:1},A]),I(),z(),N(),O(),M();break;case"cover":$cfs.css(opts.d.left,$wrp[opts.d.width]()),scrl.anims.push([$cfs,C,A]),I(),z(),N(),M();break;case"cover-fade":$cfs.css(opts.d.left,$wrp[opts.d.width]()),scrl.anims.push([g,{opacity:0}]),scrl.anims.push([$cfs,C,A]),I(),z(),N(),M();break;case"uncover":scrl.anims.push([g,h,A]),I(),z(),N(),O(),M();break;case"uncover-fade":$cfs.css({opacity:0}),scrl.anims.push([$cfs,{opacity:1}]),scrl.anims.push([g,h,A]),I(),z(),N(),O(),M();break;default:scrl.anims.push([$cfs,v,function(){O(),M(),A()}]),I(),j(),k()}return sc_startScroll(scrl,conf),cf_setCookie(opts.cookie,$cfs,conf),$cfs.trigger(cf_e("updatePageStatus",conf),[!1,_]),!0}),$cfs.bind(cf_e("slideTo",conf),function(t,e,s,i,o,n,r){t.stopPropagation();t=cf_sortParams([e,s,i,o,n,r],["string/number/object","number","boolean","object","string","function"]);return o=t[3],n=t[4],r=t[5],0!=(e=gn_getItemIndex(t[0],t[1],t[2],itms,$cfs))&&(is_object(o)||(o=!1),"prev"==(n="prev"!=n&&"next"!=n?opts.circular?e<=itms.total/2?"next":"prev":0==itms.first||itms.first>e?"next":"prev":n)&&(e=itms.total-e),$cfs.trigger(cf_e(n,conf),[o,e,r]),!0)}),$cfs.bind(cf_e("prevPage",conf),function(t,e,s){t.stopPropagation();t=$cfs.triggerHandler(cf_e("currentPage",conf));return $cfs.triggerHandler(cf_e("slideToPage",conf),[t-1,e,"prev",s])}),$cfs.bind(cf_e("nextPage",conf),function(t,e,s){t.stopPropagation();t=$cfs.triggerHandler(cf_e("currentPage",conf));return $cfs.triggerHandler(cf_e("slideToPage",conf),[t+1,e,"next",s])}),$cfs.bind(cf_e("slideToPage",conf),function(t,e,s,i,o){t.stopPropagation(),is_number(e)||(e=$cfs.triggerHandler(cf_e("currentPage",conf)));var t=opts.pagination.items||opts.items.visible,n=Math.ceil(itms.total/t)-1;return n<(e=e<0?n:e)&&(e=0),$cfs.triggerHandler(cf_e("slideTo",conf),[e*t,0,!0,s,i,o])}),$cfs.bind(cf_e("jumpToStart",conf),function(t,e){if(t.stopPropagation(),e=e?gn_getItemIndex(e,0,!0,itms,$cfs):0,0!=(e+=itms.first)){if(0<itms.total)for(;e>itms.total;)e-=itms.total;$cfs.prepend($cfs.children().slice(e,itms.total))}return!0}),$cfs.bind(cf_e("synchronise",conf),function(t,e){if(t.stopPropagation(),e)e=cf_getSynchArr(e);else{if(!opts.synchronise)return debug(conf,"No carousel to synchronise.");e=opts.synchronise}for(var s=$cfs.triggerHandler(cf_e("currentPosition",conf)),i=!0,o=0,n=e.length;o<n;o++)e[o][0].triggerHandler(cf_e("slideTo",conf),[s,e[o][3],!0])||(i=!1);return i}),$cfs.bind(cf_e("queue",conf),function(t,e,s){return t.stopPropagation(),is_function(e)?e.call($tt0,queu):is_array(e)?queu=e:is_undefined(e)||queu.push([e,s]),queu}),$cfs.bind(cf_e("insertItem",conf),function(t,e,s,i,o){t.stopPropagation();t=cf_sortParams([e,s,i,o],["string/object","string/number/object","boolean","number"]);if(e=t[0],s=t[1],i=t[2],o=t[3],(is_object(e)&&!is_jquery(e)||is_string(e))&&(e=$(e)),!is_jquery(e)||0==e.length)return debug(conf,"Not a valid object.");is_undefined(s)&&(s="end"),sz_storeMargin(e,opts),sz_storeOrigCss(e);var t=s,n="before",o=("end"==s?i?(0==itms.first?(s=itms.total-1,n="after"):(s=itms.first,itms.first+=e.length),s<0&&(s=0)):(s=itms.total-1,n="after"):s=gn_getItemIndex(s,o,i,itms,$cfs),$cfs.children().eq(s));return o.length?o[n](e):(debug(conf,"Correct insert-position not found! Appending item to the end."),$cfs.append(e)),"end"==t||i||s<itms.first&&(itms.first+=e.length),itms.total=$cfs.children().length,itms.first>=itms.total&&(itms.first-=itms.total),$cfs.trigger(cf_e("updateSizes",conf)),$cfs.trigger(cf_e("linkAnchors",conf)),!0}),$cfs.bind(cf_e("removeItem",conf),function(t,e,i,o){t.stopPropagation();var n,t=cf_sortParams([e,i,o],["string/number/object","boolean","number"]);e=t[0],i=t[1],o=t[2];return e instanceof $&&1<e.length?(n=$(),e.each(function(t,e){var s=$cfs.trigger(cf_e("removeItem",conf),[$(this),i,o]);s&&(n=n.add(s))})):(is_undefined(e)||"end"==e?n=$cfs.children().last():(e=gn_getItemIndex(e,o,i,itms,$cfs),(n=$cfs.children().eq(e)).length&&e<itms.first&&(itms.first-=n.length)),n&&n.length&&(n.detach(),itms.total=$cfs.children().length,$cfs.trigger(cf_e("updateSizes",conf)))),n}),$cfs.bind(cf_e("onBefore",conf)+" "+cf_e("onAfter",conf),function(t,e){t.stopPropagation();t=t.type.slice(conf.events.prefix.length);return is_array(e)&&(clbk[t]=e),is_function(e)&&clbk[t].push(e),clbk[t]}),$cfs.bind(cf_e("currentPosition",conf),function(t,e){return t.stopPropagation(),t=0==itms.first?0:itms.total-itms.first,is_function(e)&&e.call($tt0,t),t}),$cfs.bind(cf_e("currentPage",conf),function(t,e){t.stopPropagation();var t=opts.pagination.items||opts.items.visible,s=Math.ceil(itms.total/t-1),t=0==itms.first||itms.first<itms.total%t?0:itms.first!=t||opts.circular?Math.round((itms.total-itms.first)/t):s;return s<(t=t<0?0:t)&&(t=s),is_function(e)&&e.call($tt0,t),t}),$cfs.bind(cf_e("currentVisible",conf),function(t,e){t.stopPropagation();t=gi_getCurrentItems($cfs.children(),opts);return is_function(e)&&e.call($tt0,t),t}),$cfs.bind(cf_e("slice",conf),function(t,e,s,i){if(t.stopPropagation(),0==itms.total)return!1;t=cf_sortParams([e,s,i],["number","number","function"]);if(e=is_number(t[0])?t[0]:0,s=is_number(t[1])?t[1]:itms.total,i=t[2],e+=itms.first,s+=itms.first,0<items.total){for(;e>itms.total;)e-=itms.total;for(;s>itms.total;)s-=itms.total;for(;e<0;)e+=itms.total;for(;s<0;)s+=itms.total}t=$cfs.children(),t=e<s?t.slice(e,s):$(t.slice(e,itms.total).get().concat(t.slice(0,s).get()));return is_function(i)&&i.call($tt0,t),t}),$cfs.bind(cf_e("isPaused",conf)+" "+cf_e("isStopped",conf)+" "+cf_e("isScrolling",conf),function(t,e){t.stopPropagation();t=t.type.slice(conf.events.prefix.length),t=crsl[t];return is_function(e)&&e.call($tt0,t),t}),$cfs.bind(cf_e("configuration",conf),function(e,a,b,c){e.stopPropagation();var reInit=!1,sz;if(is_function(a))a.call($tt0,opts);else if(is_object(a))opts_orig=$.extend(!0,{},opts_orig,a),!1!==b?reInit=!0:opts=$.extend(!0,{},opts,a);else if(!is_undefined(a))if(is_function(b)){var val=eval("opts."+a);is_undefined(val)&&(val=""),b.call($tt0,val)}else{if(is_undefined(b))return eval("opts."+a);"boolean"!=typeof c&&(c=!0),eval("opts_orig."+a+" = b"),!1!==c?reInit=!0:eval("opts."+a+" = b")}return reInit&&(sz_resetMargin($cfs.children(),opts),FN._init(opts_orig),FN._bind_buttons(),sz=sz_setSizes($cfs,opts),$cfs.trigger(cf_e("updatePageStatus",conf),[!0,sz])),opts}),$cfs.bind(cf_e("linkAnchors",conf),function(t,e,s){return t.stopPropagation(),is_undefined(e)?e=$("body"):is_string(e)&&(e=$(e)),is_jquery(e)&&0!=e.length?(is_string(s)||(s="a.caroufredsel"),e.find(s).each(function(){var e=this.hash||"";0<e.length&&-1!=$cfs.children().index($(e))&&$(this).unbind("click").click(function(t){t.preventDefault(),$cfs.trigger(cf_e("slideTo",conf),e)})}),!0):debug(conf,"Not a valid object.")}),$cfs.bind(cf_e("updatePageStatus",conf),function(t,e,s){var i,o,n;if(t.stopPropagation(),opts.pagination.container)return i=opts.pagination.items||opts.items.visible,o=Math.ceil(itms.total/i),e&&(opts.pagination.anchorBuilder&&(opts.pagination.container.children().remove(),opts.pagination.container.each(function(){for(var t=0;t<o;t++){var e=$cfs.children().eq(gn_getItemIndex(t*i,0,!0,itms,$cfs));$(this).append(opts.pagination.anchorBuilder.call(e[0],t+1))}})),opts.pagination.container.each(function(){$(this).children().unbind(opts.pagination.event).each(function(e){$(this).bind(opts.pagination.event,function(t){t.preventDefault(),$cfs.trigger(cf_e("slideTo",conf),[e*i,-opts.pagination.deviation,!0,opts.pagination])})})})),n=$cfs.triggerHandler(cf_e("currentPage",conf))+opts.pagination.deviation,(n=o<=n?0:n)<0&&(n=o-1),opts.pagination.container.each(function(){$(this).children().removeClass(cf_c("selected",conf)).eq(n).addClass(cf_c("selected",conf))}),!0}),$cfs.bind(cf_e("updateSizes",conf),function(t){var e=opts.items.visible,s=$cfs.children(),i=ms_getParentSize($wrp,opts,"width"),i=(itms.total=s.length,crsl.primarySizePercentage?(opts.maxDimension=i,opts[opts.d.width]=ms_getPercentage(i,crsl.primarySizePercentage)):opts.maxDimension=ms_getMaxDimension(opts,i),opts.responsive?(opts.items.width=opts.items.sizesConf.width,opts.items.height=opts.items.sizesConf.height,e=(opts=in_getResponsiveValues(opts,s,i)).items.visible,sz_setResponsiveSizes(opts,s)):opts.items.visibleConf.variable?e=gn_getVisibleItemsNext(s,opts,0):"*"!=opts.items.filter&&(e=gn_getVisibleItemsNextFilter(s,opts,0)),!opts.circular&&0!=itms.first&&e>itms.first&&(i=opts.items.visibleConf.variable?gn_getVisibleItemsPrev(s,opts,itms.first)-itms.first:"*"!=opts.items.filter?gn_getVisibleItemsPrevFilter(s,opts,itms.first)-itms.first:opts.items.visible-itms.first,debug(conf,"Preventing non-circular: sliding "+i+" items backward."),$cfs.trigger(cf_e("prev",conf),i)),opts.items.visible=cf_getItemsAdjust(e,opts,opts.items.visibleConf.adjust,$tt0),opts.items.visibleConf.old=opts.items.visible,opts=in_getAlignPadding(opts,s),sz_setSizes($cfs,opts));return $cfs.trigger(cf_e("updatePageStatus",conf),[!0,i]),nv_showNavi(opts,itms.total,conf),nv_enableNavi(opts,itms.first,conf),i}),$cfs.bind(cf_e("destroy",conf),function(t,e){return t.stopPropagation(),tmrs=sc_clearTimers(tmrs),$cfs.data("_cfs_isCarousel",!1),$cfs.trigger(cf_e("finish",conf)),e&&$cfs.trigger(cf_e("jumpToStart",conf)),sz_restoreOrigCss($cfs.children()),sz_restoreOrigCss($cfs),FN._unbind_events(),FN._unbind_buttons(),"parent"==conf.wrapper?sz_restoreOrigCss($wrp):$wrp.replaceWith($cfs),!0}),$cfs.bind(cf_e("debug",conf),function(t){return debug(conf,"Carousel width: "+opts.width),debug(conf,"Carousel height: "+opts.height),debug(conf,"Item widths: "+opts.items.width),debug(conf,"Item heights: "+opts.items.height),debug(conf,"Number of items visible: "+opts.items.visible),opts.auto.play&&debug(conf,"Number of items scrolled automatically: "+opts.auto.items),opts.prev.button&&debug(conf,"Number of items scrolled backward: "+opts.prev.items),opts.next.button&&debug(conf,"Number of items scrolled forward: "+opts.next.items),conf.debug}),$cfs.bind("_cfs_triggerEvent",function(t,e,s){return t.stopPropagation(),$cfs.triggerHandler(cf_e(e,conf),s)})},FN._unbind_events=function(){$cfs.unbind(cf_e("",conf)),$cfs.unbind(cf_e("",conf,!1)),$cfs.unbind("_cfs_triggerEvent")},FN._bind_buttons=function(){var t,s,i,o,n,r,c;if(FN._unbind_buttons(),nv_showNavi(opts,itms.total,conf),nv_enableNavi(opts,itms.first,conf),opts.auto.pauseOnHover&&(t=bt_pauseOnHoverConfig(opts.auto.pauseOnHover),$wrp.bind(cf_e("mouseenter",conf,!1),function(){$cfs.trigger(cf_e("pause",conf),t)}).bind(cf_e("mouseleave",conf,!1),function(){$cfs.trigger(cf_e("resume",conf))})),opts.auto.button&&opts.auto.button.bind(cf_e(opts.auto.event,conf,!1),function(t){t.preventDefault();var t=!1,e=null;crsl.isPaused?t="play":opts.auto.pauseOnEvent&&(t="pause",e=bt_pauseOnHoverConfig(opts.auto.pauseOnEvent)),t&&$cfs.trigger(cf_e(t,conf),e)}),opts.prev.button&&(opts.prev.button.bind(cf_e(opts.prev.event,conf,!1),function(t){t.preventDefault(),$cfs.trigger(cf_e("prev",conf))}),opts.prev.pauseOnHover&&(t=bt_pauseOnHoverConfig(opts.prev.pauseOnHover),opts.prev.button.bind(cf_e("mouseenter",conf,!1),function(){$cfs.trigger(cf_e("pause",conf),t)}).bind(cf_e("mouseleave",conf,!1),function(){$cfs.trigger(cf_e("resume",conf))}))),opts.next.button&&(opts.next.button.bind(cf_e(opts.next.event,conf,!1),function(t){t.preventDefault(),$cfs.trigger(cf_e("next",conf))}),opts.next.pauseOnHover&&(t=bt_pauseOnHoverConfig(opts.next.pauseOnHover),opts.next.button.bind(cf_e("mouseenter",conf,!1),function(){$cfs.trigger(cf_e("pause",conf),t)}).bind(cf_e("mouseleave",conf,!1),function(){$cfs.trigger(cf_e("resume",conf))}))),opts.pagination.container&&opts.pagination.pauseOnHover&&(t=bt_pauseOnHoverConfig(opts.pagination.pauseOnHover),opts.pagination.container.bind(cf_e("mouseenter",conf,!1),function(){$cfs.trigger(cf_e("pause",conf),t)}).bind(cf_e("mouseleave",conf,!1),function(){$cfs.trigger(cf_e("resume",conf))})),(opts.prev.key||opts.next.key)&&$(document).bind(cf_e("keyup",conf,!1,!0,!0),function(t){var e=t.keyCode;e==opts.next.key&&(t.preventDefault(),$cfs.trigger(cf_e("next",conf))),e==opts.prev.key&&(t.preventDefault(),$cfs.trigger(cf_e("prev",conf)))}),opts.pagination.keys&&$(document).bind(cf_e("keyup",conf,!1,!0,!0),function(t){var e=t.keyCode;49<=e&&e<58&&(e=(e-49)*opts.items.visible)<=itms.total&&(t.preventDefault(),$cfs.trigger(cf_e("slideTo",conf),[e,0,!0,opts.pagination]))}),$.fn.swipe){var e="ontouchstart"in window;if(e&&opts.swipe.onTouch||!e&&opts.swipe.onMouse){var a=$.extend(!0,{},opts.prev,opts.swipe),f=$.extend(!0,{},opts.next,opts.swipe),l=function(){$cfs.trigger(cf_e("prev",conf),[a])},u=function(){$cfs.trigger(cf_e("next",conf),[f])};switch(opts.direction){case"up":case"down":opts.swipe.options.swipeUp=u,opts.swipe.options.swipeDown=l;break;default:opts.swipe.options.swipeLeft=u,opts.swipe.options.swipeRight=l}crsl.swipe&&$cfs.swipe("destroy"),$wrp.swipe(opts.swipe.options),$wrp.css("cursor","move"),crsl.swipe=!0}}$.fn.mousewheel&&opts.mousewheel&&(s=$.extend(!0,{},opts.prev,opts.mousewheel),i=$.extend(!0,{},opts.next,opts.mousewheel),crsl.mousewheel&&$wrp.unbind(cf_e("mousewheel",conf,!1)),$wrp.bind(cf_e("mousewheel",conf,!1),function(t,e){t.preventDefault(),0<e?$cfs.trigger(cf_e("prev",conf),[s]):$cfs.trigger(cf_e("next",conf),[i])}),crsl.mousewheel=!0),opts.auto.play&&$cfs.trigger(cf_e("play",conf),opts.auto.delay),crsl.upDateOnWindowResize&&(o=function(t){$cfs.trigger(cf_e("finish",conf)),opts.auto.pauseOnResize&&!crsl.isPaused&&$cfs.trigger(cf_e("play",conf)),sz_resetMargin($cfs.children(),opts),$cfs.trigger(cf_e("updateSizes",conf))},n=$(window),e=null,e=$.debounce&&"debounce"==conf.onWindowResize?$.debounce(200,o):$.throttle&&"throttle"==conf.onWindowResize?$.throttle(300,o):(c=r=0,function(){var t=n.width(),e=n.height();t==r&&e==c||(o(),r=t,c=e)}),n.bind(cf_e("resize",conf,!1,!0,!0),e))},FN._unbind_buttons=function(){cf_e("",conf);var t=cf_e("",conf,!1);ns3=cf_e("",conf,!1,!0,!0),$(document).unbind(ns3),$(window).unbind(ns3),$wrp.unbind(t),opts.auto.button&&opts.auto.button.unbind(t),opts.prev.button&&opts.prev.button.unbind(t),opts.next.button&&opts.next.button.unbind(t),opts.pagination.container&&(opts.pagination.container.unbind(t),opts.pagination.anchorBuilder&&opts.pagination.container.children().remove()),crsl.swipe&&($cfs.swipe("destroy"),$wrp.css("cursor","default"),crsl.swipe=!1),crsl.mousewheel&&(crsl.mousewheel=!1),nv_showNavi(opts,"hide",conf),nv_enableNavi(opts,"removeClass",conf)},is_boolean(configs)&&(configs={debug:configs}),{direction:"next",isPaused:!0,isScrolling:!1,isStopped:!1,mousewheel:!1,swipe:!1}),itms={total:$cfs.children().length,first:0},tmrs={auto:null,progress:null,startTime:getTime(),timePassed:0},scrl={isStopped:!1,duration:0,startTime:0,easing:"",anims:[]},clbk={onBefore:[],onAfter:[]},queu=[],conf=$.extend(!0,{},$.fn.carouFredSel.configs,configs),opts={},opts_orig=$.extend(!0,{},options),$wrp=("parent"==conf.wrapper?$cfs:$cfs.wrap("<"+conf.wrapper.element+' class="'+conf.wrapper.classname+'" />')).parent(),start_arr,start_arr;if(conf.selector=$cfs.selector,conf.serialNumber=$.fn.carouFredSel.serialNumber++,conf.transition=conf.transition&&$.fn.transition?"transition":"animate",FN._init(opts_orig,!0,starting_position),FN._build(),FN._bind_events(),FN._bind_buttons(),is_array(opts.items.start)?start_arr=opts.items.start:(start_arr=[],0!=opts.items.start&&start_arr.push(opts.items.start)),opts.cookie&&start_arr.unshift(parseInt(cf_getCookie(opts.cookie),10)),0<start_arr.length)for(var a=0,l=start_arr.length;a<l;a++){var s=start_arr[a];if(0!=s){if(!0===s){if(s=window.location.hash,s.length<1)continue}else"random"===s&&(s=Math.floor(Math.random()*itms.total));if($cfs.triggerHandler(cf_e("slideTo",conf),[s,0,!0,{fx:"none"}]))break}}var siz=sz_setSizes($cfs,opts),itm=gi_getCurrentItems($cfs.children(),opts);return opts.onCreate&&opts.onCreate.call($tt0,{width:siz.width,height:siz.height,items:itm}),$cfs.trigger(cf_e("updatePageStatus",conf),[!0,siz]),$cfs.trigger(cf_e("linkAnchors",conf)),conf.debug&&$cfs.trigger(cf_e("debug",conf)),$cfs},$.fn.carouFredSel.serialNumber=1,$.fn.carouFredSel.defaults={synchronise:!1,infinite:!0,circular:!0,responsive:!0,direction:"left",items:{start:0},scroll:{easing:"swing",duration:500,pauseOnHover:!1,event:"click",queue:!1}},$.fn.carouFredSel.configs={padding:"5px",debug:!1,transition:!1,onWindowResize:"throttle",events:{prefix:"",namespace:"cfs"},wrapper:{element:"div",classname:"caroufredsel_wrapper"},classnames:{}},$.fn.carouFredSel.pageAnchorBuilder=function(t){return'<a href="#"><span>'+t+"</span></a>"},$.fn.carouFredSel.progressbarUpdater=function(t){$(this).css("width",t+"%")},$.fn.carouFredSel.cookie={get:function(t){t+="=";for(var e=document.cookie.split(";"),s=0,i=e.length;s<i;s++){for(var o=e[s];" "==o.charAt(0);)o=o.slice(1);if(0==o.indexOf(t))return o.slice(t.length)}return 0},set:function(t,e,s){var i,o="";s&&((i=new Date).setTime(i.getTime()+24*s*60*60*1e3),o="; expires="+i.toGMTString()),document.cookie=t+"="+e+o+"; path=/"},remove:function(t){$.fn.carouFredSel.cookie.set(t,"",-1)}},$.extend($.easing,{quadratic:function(t){var e=t*t;return t*(-e*t+4*e-6*t+4)},cubic:function(t){return t*(4*t*t-9*t+6)},elastic:function(t){var e=t*t;return t*(33*e*e-106*e*t+126*e-67*t+15)}}))}(jQuery);
1
+ !function($){function sc_setScroll(t,e,s){return{anims:[],duration:t,orgDuration:t,easing:e="transition"==s.transition&&"swing"==e?"ease":e,startTime:getTime()}}function sc_startScroll(t,e){for(var s=0,i=t.anims.length;s<i;s++){var o=t.anims[s];o&&o[0][e.transition](o[1],t.duration,t.easing,o[2])}}function sc_stopScroll(t,e){is_boolean(e)||(e=!0),is_object(t.pre)&&sc_stopScroll(t.pre,e);for(var s=0,i=t.anims.length;s<i;s++){var o=t.anims[s];o[0].stop(!0),e&&(o[0].css(o[1]),is_function(o[2])&&o[2]())}is_object(t.post)&&sc_stopScroll(t.post,e)}function sc_afterScroll(t,e,s){switch(e&&e.remove(),s.fx){case"fade":case"crossfade":case"cover-fade":case"uncover-fade":t.css("opacity",1),t.css("filter","")}}function sc_fireCallbacks(t,e,s,i,o){if(e[s]&&e[s].call(t,i),o[s].length)for(var n=0,r=o[s].length;n<r;n++)o[s][n].call(t,i);return[]}function sc_fireQueue(t,e,s){return e.length&&(t.trigger(cf_e(e[0][0],s),e[0][1]),e.shift()),e}function sc_hideHiddenItems(t){t.each(function(){var t=$(this);t.data("_cfs_isHidden",t.is(":hidden")).hide()})}function sc_showHiddenItems(t){t&&t.each(function(){var t=$(this);t.data("_cfs_isHidden")||t.show()})}function sc_clearTimers(t){return t.auto&&clearTimeout(t.auto),t.progress&&clearInterval(t.progress),t}function sc_mapCallbackArguments(t,e,s,i,o,n,r){return{width:r.width,height:r.height,items:{old:t,skipped:e,visible:s},scroll:{items:i,direction:o,duration:n}}}function sc_getDuration(t,e,s,i){var o=t.duration;return"none"==t.fx||("auto"==o?o=e.scroll.duration/e.scroll.items*s:o<10&&(o=i/o),o<1)?0:("fade"==t.fx&&(o/=2),Math.round(o))}function nv_showNavi(t,e,s){var i=is_number(t.items.minimum)?t.items.minimum:t.items.visible+1,i="show"==(e="show"==e||"hide"==e?e:e<i?(debug(s,"Not enough items ("+e+" total, "+i+" needed): Hiding navigation."),"hide"):"show")?"removeClass":"addClass",s=cf_c("hidden",s);t.auto.button&&t.auto.button[e]()[i](s),t.prev.button&&t.prev.button[e]()[i](s),t.next.button&&t.next.button[e]()[i](s),t.pagination.container&&t.pagination.container[e]()[i](s)}function nv_enableNavi(t,e,s){var i,o;t.circular||t.infinite||(i=("removeClass"==e||"addClass"==e)&&e,s=cf_c("disabled",s),t.auto.button&&i&&t.auto.button[i](s),t.prev.button&&t.prev.button[o=i||0==e?"addClass":"removeClass"](s),t.next.button&&(o=i||e==t.items.visible?"addClass":"removeClass",t.next.button[o](s)))}function go_getObject(t,e){return is_function(e)?e=e.call(t):is_undefined(e)&&(e={}),e}function go_getItemsObject(t,e){return is_number(e=go_getObject(t,e))?e={visible:e}:"variable"==e?e={visible:e,width:e,height:e}:is_object(e)||(e={}),e}function go_getScrollObject(t,e){return is_number(e=go_getObject(t,e))?e=e<=50?{items:e}:{duration:e}:is_string(e)?e={easing:e}:is_object(e)||(e={}),e}function go_getNaviObject(t,e){return e=is_string(e=go_getObject(t,e))?-1==(t=cf_getKeyCode(e))?$(e):t:e}function go_getAutoObject(t,e){return is_jquery(e=go_getNaviObject(t,e))?e={button:e}:is_boolean(e)?e={play:e}:is_number(e)&&(e={timeoutDuration:e}),e.progress&&(is_string(e.progress)||is_jquery(e.progress))&&(e.progress={bar:e.progress}),e}function go_complementAutoObject(t,e){return is_function(e.button)&&(e.button=e.button.call(t)),is_string(e.button)&&(e.button=$(e.button)),is_boolean(e.play)||(e.play=!0),is_number(e.delay)||(e.delay=0),is_undefined(e.pauseOnEvent)&&(e.pauseOnEvent=!0),is_boolean(e.pauseOnResize)||(e.pauseOnResize=!0),is_number(e.timeoutDuration)||(e.timeoutDuration=e.duration<10?2500:5*e.duration),e.progress&&(is_function(e.progress.bar)&&(e.progress.bar=e.progress.bar.call(t)),is_string(e.progress.bar)&&(e.progress.bar=$(e.progress.bar)),e.progress.bar?(is_function(e.progress.updater)||(e.progress.updater=$.fn.carouFredSel.progressbarUpdater),is_number(e.progress.interval)||(e.progress.interval=50)):e.progress=!1),e}function go_getPrevNextObject(t,e){return is_jquery(e=go_getNaviObject(t,e))?e={button:e}:is_number(e)&&(e={key:e}),e}function go_complementPrevNextObject(t,e){return is_function(e.button)&&(e.button=e.button.call(t)),is_string(e.button)&&(e.button=$(e.button)),is_string(e.key)&&(e.key=cf_getKeyCode(e.key)),e}function go_getPaginationObject(t,e){return is_jquery(e=go_getNaviObject(t,e))?e={container:e}:is_boolean(e)&&(e={keys:e}),e}function go_complementPaginationObject(t,e){return is_function(e.container)&&(e.container=e.container.call(t)),is_string(e.container)&&(e.container=$(e.container)),is_number(e.items)||(e.items=!1),is_boolean(e.keys)||(e.keys=!1),is_function(e.anchorBuilder)||is_false(e.anchorBuilder)||(e.anchorBuilder=$.fn.carouFredSel.pageAnchorBuilder),is_number(e.deviation)||(e.deviation=0),e}function go_getSwipeObject(t,e){return is_true(e=is_undefined(e=is_function(e)?e.call(t):e)?{onTouch:!1}:e)?e={onTouch:e}:is_number(e)&&(e={items:e}),e}function go_complementSwipeObject(t,e){return is_boolean(e.onTouch)||(e.onTouch=!0),is_boolean(e.onMouse)||(e.onMouse=!1),is_object(e.options)||(e.options={}),is_boolean(e.options.triggerOnTouchEnd)||(e.options.triggerOnTouchEnd=!1),e}function go_getMousewheelObject(t,e){return is_true(e=is_function(e)?e.call(t):e)?e={}:is_number(e)?e={items:e}:is_undefined(e)&&(e=!1),e}function go_complementMousewheelObject(t,e){return e}function gn_getItemIndex(t,e,s,i,o){if(is_jquery(t=is_object(t=is_string(t)?$(t,o):t)?$(t,o):t)?(t=o.children().index(t),is_boolean(s)||(s=!1)):is_boolean(s)||(s=!0),is_number(t)||(t=0),is_number(e)||(e=0),s&&(t+=i.first),t+=e,0<i.total){for(;t>=i.total;)t-=i.total;for(;t<0;)t+=i.total}return t}function gn_getVisibleItemsPrev(t,e,s){for(var i=0,o=0,n=s;0<=n;n--){var r=t.eq(n);if((i+=r.is(":visible")?r[e.d.outerWidth](!0):0)>e.maxDimension)return o;0==n&&(n=t.length),o++}}function gn_getVisibleItemsPrevFilter(t,e,s){return gn_getItemsPrevFilter(t,e.items.filter,e.items.visibleConf.org,s)}function gn_getScrollItemsPrevFilter(t,e,s,i){return gn_getItemsPrevFilter(t,e.items.filter,i,s)}function gn_getItemsPrevFilter(t,e,s,i){for(var o=0,n=0,r=i,c=t.length;0<=r;r--){if(++n==c)return n;var a=t.eq(r);if(a.is(e)&&++o==s)return n;0==r&&(r=c)}}function gn_getVisibleOrg(t,e){return e.items.visibleConf.org||t.children().slice(0,e.items.visible).filter(e.items.filter).length}function gn_getVisibleItemsNext(t,e,s){for(var i=0,o=0,n=s,r=t.length-1;n<=r;n++){var c=t.eq(n);if((i+=c.is(":visible")?c[e.d.outerWidth](!0):0)>e.maxDimension)return o;if(++o==1+r)return o;n==r&&(n=-1)}}function gn_getVisibleItemsNextTestCircular(t,e,s,i){t=gn_getVisibleItemsNext(t,e,s);return e.circular||i<s+t&&(t=i-s),t}function gn_getVisibleItemsNextFilter(t,e,s){return gn_getItemsNextFilter(t,e.items.filter,e.items.visibleConf.org,s,e.circular)}function gn_getScrollItemsNextFilter(t,e,s,i){return gn_getItemsNextFilter(t,e.items.filter,i+1,s,e.circular)-1}function gn_getItemsNextFilter(t,e,s,i,o){for(var n=0,r=0,c=i,a=t.length-1;c<=a;c++){if(a<=++r)return r;var f=t.eq(c);if(f.is(e)&&++n==s)return r;c==a&&(c=-1)}}function gi_getCurrentItems(t,e){return t.slice(0,e.items.visible)}function gi_getOldItemsPrev(t,e,s){return t.slice(s,e.items.visibleConf.old+s)}function gi_getNewItemsPrev(t,e){return t.slice(0,e.items.visible)}function gi_getOldItemsNext(t,e){return t.slice(0,e.items.visibleConf.old)}function gi_getNewItemsNext(t,e,s){return t.slice(s,e.items.visible+s)}function sz_storeMargin(t,s,i){s.usePadding&&(is_string(i)||(i="_cfs_origCssMargin"),t.each(function(){var t=$(this),e=parseInt(t.css(s.d.marginRight),10);is_number(e)||(e=0),t.data(i,e)}))}function sz_resetMargin(t,e,s){var i;e.usePadding&&(i=!!is_boolean(s)&&s,is_number(s)||(s=0),sz_storeMargin(t,e,"_cfs_tempCssMargin"),t.each(function(){var t=$(this);t.css(e.d.marginRight,i?t.data("_cfs_tempCssMargin"):s+t.data("_cfs_origCssMargin"))}))}function sz_storeOrigCss(t){t.each(function(){var t=$(this);t.data("_cfs_origCss",t.attr("style")||"")})}function sz_restoreOrigCss(t){t.each(function(){var t=$(this);t.attr("style",t.data("_cfs_origCss")||"")})}function sz_setResponsiveSizes(s,t){s.items.visible;var i=s.items[s.d.width],o=s[s.d.height],n=is_percentage(o);t.each(function(){var t=$(this),e=i-ms_getPaddingBorderMargin(t,s,"Width");t[s.d.width](e),n&&t[s.d.height](ms_getPercentage(e,o))})}function sz_setSizes(t,e){var s,i=t.parent(),o=t.children(),n=gi_getCurrentItems(o,e),r=cf_mapWrapperSizes(ms_getSizes(n,e,!0),e,!1);return i.css(r),e.usePadding&&(s=(i=e.padding)[e.d[1]],e.align&&s<0&&(s=0),(n=n.last()).css(e.d.marginRight,n.data("_cfs_origCssMargin")+s),t.css(e.d.top,i[e.d[0]]),t.css(e.d.left,i[e.d[3]])),t.css(e.d.width,r[e.d.width]+2*ms_getTotalSize(o,e,"width")),t.css(e.d.height,ms_getLargestSize(o,e,"height")),r}function ms_getSizes(t,e,s){return[ms_getTotalSize(t,e,"width",s),ms_getLargestSize(t,e,"height",s)]}function ms_getLargestSize(t,e,s,i){return is_boolean(i)||(i=!1),is_number(e[e.d[s]])&&i?e[e.d[s]]:is_number(e.items[e.d[s]])?e.items[e.d[s]]:ms_getTrueLargestSize(t,e,s=-1<s.toLowerCase().indexOf("width")?"outerWidth":"outerHeight")}function ms_getTrueLargestSize(t,e,s){for(var i=0,o=0,n=t.length;o<n;o++){var r=t.eq(o),r=r.is(":visible")?r[e.d[s]](!0):0;i<r&&(i=r)}return i}function ms_getTotalSize(t,e,s,i){if(is_boolean(i)||(i=!1),is_number(e[e.d[s]])&&i)return e[e.d[s]];if(is_number(e.items[e.d[s]]))return e.items[e.d[s]]*t.length;for(var o=-1<s.toLowerCase().indexOf("width")?"outerWidth":"outerHeight",n=0,r=0,c=t.length;r<c;r++){var a=t.eq(r);n+=a.is(":visible")?a[e.d[o]](!0):0}return n}function ms_getParentSize(t,e,s){var i=t.is(":visible"),s=(i&&t.hide(),t.parent()[e.d[s]]());return i&&t.show(),s}function ms_getMaxDimension(t,e){return is_number(t[t.d.width])?t[t.d.width]:e}function ms_hasVariableSizes(t,e,s){for(var i=!1,o=!1,n=0,r=t.length;n<r;n++){var c=t.eq(n),c=c.is(":visible")?c[e.d[s]](!0):0;!1===i?i=c:i!=c&&(o=!0),0==i&&(o=!0)}return o}function ms_getPaddingBorderMargin(t,e,s){return t[e.d["outer"+s]](!0)-t[e.d[s.toLowerCase()]]()}function ms_getPercentage(t,e){if(is_percentage(e)){if(!is_number(e=parseInt(e.slice(0,-1),10)))return t;t*=e/100}return t}function cf_e(t,e,s,i,o){return is_boolean(s)||(s=!0),is_boolean(i)||(i=!0),is_boolean(o)||(o=!1),s&&(t=e.events.prefix+t),i&&(t=t+"."+e.events.namespace),i&&o&&(t+=e.serialNumber),t}function cf_c(t,e){return is_string(e.classnames[t])?e.classnames[t]:t}function cf_mapWrapperSizes(t,e,s){is_boolean(s)||(s=!0);var s=e.usePadding&&s?e.padding:[0,0,0,0],i={};return i[e.d.width]=t[0]+s[1]+s[3],i[e.d.height]=t[1]+s[0]+s[2],i}function cf_sortParams(t,e){for(var s=[],i=0,o=t.length;i<o;i++)for(var n=0,r=e.length;n<r;n++)if(-1<e[n].indexOf(typeof t[i])&&is_undefined(s[n])){s[n]=t[i];break}return s}function cf_getPadding(t){if(is_undefined(t))return[0,0,0,0];if(is_number(t))return[t,t,t,t];if(!is_array(t=is_string(t)?t.split("px").join("").split("em").join("").split(" "):t))return[0,0,0,0];for(var e=0;e<4;e++)t[e]=parseInt(t[e],10);switch(t.length){case 0:return[0,0,0,0];case 1:return[t[0],t[0],t[0],t[0]];case 2:return[t[0],t[1],t[0],t[1]];case 3:return[t[0],t[1],t[2],t[1]];default:return[t[0],t[1],t[2],t[3]]}}function cf_getAlignPadding(t,e){var s=is_number(e[e.d.width])?Math.ceil(e[e.d.width]-ms_getTotalSize(t,e,"width")):0;switch(e.align){case"left":return[0,s];case"right":return[s,0];default:return[Math.ceil(s/2),Math.floor(s/2)]}}function cf_getDimensions(t){for(var e=[["width","innerWidth","outerWidth","height","innerHeight","outerHeight","left","top","marginRight",0,1,2,3],["height","innerHeight","outerHeight","width","innerWidth","outerWidth","top","left","marginBottom",3,2,1,0]],s=e[0].length,i="right"==t.direction||"left"==t.direction?0:1,o={},n=0;n<s;n++)o[e[0][n]]=e[i][n];return o}function cf_getAdjust(t,e,s,i){var o=t;if(is_function(s))o=s.call(i,o);else if(is_string(s)){var n,r,i=s.split("+"),s=s.split("-");switch(s=(s.length>i.length?(n=!0,r=s[0],s):(n=!1,r=i[0],i))[1],r){case"even":o=t%2==1?t-1:t;break;case"odd":o=t%2==0?t-1:t;break;default:o=t}is_number(s=parseInt(s,10))&&(o+=s=n?-s:s)}return o=!is_number(o)||o<1?1:o}function cf_getItemsAdjust(t,e,s,i){return cf_getItemAdjustMinMax(cf_getAdjust(t,e,s,i),e.items.visibleConf)}function cf_getItemAdjustMinMax(t,e){return is_number(e.min)&&t<e.min&&(t=e.min),t=(t=is_number(e.max)&&t>e.max?e.max:t)<1?1:t}function cf_getSynchArr(t){is_array(t)||(t=[[t]]);for(var e=0,s=(t=is_array(t[0])?t:[t]).length;e<s;e++)is_string(t[e][0])&&(t[e][0]=$(t[e][0])),is_boolean(t[e][1])||(t[e][1]=!0),is_boolean(t[e][2])||(t[e][2]=!0),is_number(t[e][3])||(t[e][3]=0);return t}function cf_getKeyCode(t){return"right"==t?39:"left"==t?37:"up"==t?38:"down"==t?40:-1}function cf_setCookie(t,e,s){t&&(s=e.triggerHandler(cf_e("currentPosition",s)),$.fn.carouFredSel.cookie.set(t,s))}function cf_getCookie(t){t=$.fn.carouFredSel.cookie.get(t);return""==t?0:t}function in_mapCss(t,e){for(var s={},i=0,o=e.length;i<o;i++)s[e[i]]=t.css(e[i]);return s}function in_complementItems(t,e,s,i){return is_object(t.visibleConf)||(t.visibleConf={}),is_object(t.sizesConf)||(t.sizesConf={}),0==t.start&&is_number(i)&&(t.start=i),is_object(t.visible)?(t.visibleConf.min=t.visible.min,t.visibleConf.max=t.visible.max,t.visible=!1):is_string(t.visible)?("variable"==t.visible?t.visibleConf.variable=!0:t.visibleConf.adjust=t.visible,t.visible=!1):is_function(t.visible)&&(t.visibleConf.adjust=t.visible,t.visible=!1),is_string(t.filter)||(t.filter=0<s.filter(":hidden").length?":visible":"*"),t[e.d.width]||(e.responsive?(debug(!0,"Set a "+e.d.width+" for the items!"),t[e.d.width]=ms_getTrueLargestSize(s,e,"outerWidth")):t[e.d.width]=ms_hasVariableSizes(s,e,"outerWidth")?"variable":s[e.d.outerWidth](!0)),t[e.d.height]||(t[e.d.height]=ms_hasVariableSizes(s,e,"outerHeight")?"variable":s[e.d.outerHeight](!0)),t.sizesConf.width=t.width,t.sizesConf.height=t.height,t}function in_complementVisibleItems(t,e){return"variable"==t.items[t.d.width]&&(t.items.visibleConf.variable=!0),t.items.visibleConf.variable||(is_number(t[t.d.width])?t.items.visible=Math.floor(t[t.d.width]/t.items[t.d.width]):(t.items.visible=Math.floor(e/t.items[t.d.width]),t[t.d.width]=t.items.visible*t.items[t.d.width],t.items.visibleConf.adjust||(t.align=!1)),("Infinity"==t.items.visible||t.items.visible<1)&&(debug(!0,'Not a valid number of visible items: Set to "variable".'),t.items.visibleConf.variable=!0)),t}function in_complementPrimarySize(t,e,s){return t="auto"==t?ms_getTrueLargestSize(s,e,"outerWidth"):t}function in_complementSecondarySize(t,e,s){return t=(t="auto"==t?ms_getTrueLargestSize(s,e,"outerHeight"):t)||e.items[e.d.height]}function in_getAlignPadding(t,e){e=cf_getAlignPadding(gi_getCurrentItems(e,t),t);return t.padding[t.d[1]]=e[1],t.padding[t.d[3]]=e[0],t}function in_getResponsiveValues(t,e,s){var i=cf_getItemAdjustMinMax(Math.ceil(t[t.d.width]/t.items[t.d.width]),t.items.visibleConf),e=(i>e.length&&(i=e.length),Math.floor(t[t.d.width]/i));return t.items.visible=i,t.items[t.d.width]=e,t[t.d.width]=i*e,t}function bt_pauseOnHoverConfig(t){var e,s;return is_string(t)?(s=-1<t.indexOf("immediate"),e=-1<t.indexOf("resume")):s=e=!1,[s,e]}function bt_mousesheelNumber(t){is_number(t)}function is_null(t){return null===t}function is_undefined(t){return is_null(t)||void 0===t||""===t||"undefined"===t}function is_array(t){return t instanceof Array}function is_jquery(t){return t instanceof jQuery}function is_object(t){return(t instanceof Object||"object"==typeof t)&&!is_null(t)&&!is_jquery(t)&&!is_array(t)&&!is_function(t)}function is_number(t){return(t instanceof Number||"number"==typeof t)&&!isNaN(t)}function is_string(t){return(t instanceof String||"string"==typeof t)&&!is_undefined(t)&&!is_true(t)&&!is_false(t)}function is_function(t){return t instanceof Function||"function"==typeof t}function is_boolean(t){return t instanceof Boolean||"boolean"==typeof t||is_true(t)||is_false(t)}function is_true(t){return!0===t||"true"===t}function is_false(t){return!1===t||"false"===t}function is_percentage(t){return is_string(t)&&"%"==t.slice(-1)}function getTime(){return(new Date).getTime()}function deprecated(t,e){debug(!0,t+" is DEPRECATED, support for it will be removed. Use "+e+" instead.")}function debug(t,e){if(!is_undefined(window.console)&&!is_undefined(window.console.log)){var s;if(is_object(t)?(s=" ("+t.selector+")",t=t.debug):s="",!t)return!1;e=is_string(e)?"carouFredSel"+s+": "+e:["carouFredSel"+s+":",e],window.console.log(e)}return!1}$.fn.carouFredSel||($.fn.caroufredsel=$.fn.carouFredSel=function(options,configs){if(0==this.length)return debug(!0,'No element found for "'+this.selector+'".'),this;if(1<this.length)return this.each(function(){$(this).carouFredSel(options,configs)});var $cfs=this,$tt0=this[0],starting_position=!1,FN=($cfs.data("_cfs_isCarousel")&&(starting_position=$cfs.triggerHandler("_cfs_triggerEvent","currentPosition"),$cfs.trigger("_cfs_triggerEvent",["destroy",!0])),{}),crsl=(FN._init=function(t,e,s){(t=go_getObject($tt0,t)).items=go_getItemsObject($tt0,t.items),t.scroll=go_getScrollObject($tt0,t.scroll),t.auto=go_getAutoObject($tt0,t.auto),t.prev=go_getPrevNextObject($tt0,t.prev),t.next=go_getPrevNextObject($tt0,t.next),t.pagination=go_getPaginationObject($tt0,t.pagination),t.swipe=go_getSwipeObject($tt0,t.swipe),t.mousewheel=go_getMousewheelObject($tt0,t.mousewheel),e&&(opts_orig=$.extend(!0,{},$.fn.carouFredSel.defaults,t)),(opts=$.extend(!0,{},$.fn.carouFredSel.defaults,t)).d=cf_getDimensions(opts),crsl.direction="up"==opts.direction||"left"==opts.direction?"next":"prev";var i=$cfs.children(),e=ms_getParentSize($wrp,opts,"width");if(is_true(opts.cookie)&&(opts.cookie="caroufredsel_cookie_"+conf.serialNumber),opts.maxDimension=ms_getMaxDimension(opts,e),opts.items=in_complementItems(opts.items,opts,i,s),opts[opts.d.width]=in_complementPrimarySize(opts[opts.d.width],opts,i),opts[opts.d.height]=in_complementSecondarySize(opts[opts.d.height],opts,i),!opts.responsive||is_percentage(opts[opts.d.width])||(opts[opts.d.width]="100%"),is_percentage(opts[opts.d.width])&&(crsl.upDateOnWindowResize=!0,crsl.primarySizePercentage=opts[opts.d.width],opts[opts.d.width]=ms_getPercentage(e,crsl.primarySizePercentage),opts.items.visible||(opts.items.visibleConf.variable=!0)),opts.responsive?(opts.usePadding=!0,opts.padding=[5,5,5,5],opts.align=!1,opts.items.visibleConf.variable=!1):((opts=opts.items.visible?opts:in_complementVisibleItems(opts,e))[opts.d.width]||(!opts.items.visibleConf.variable&&is_number(opts.items[opts.d.width])&&"*"==opts.items.filter?(opts[opts.d.width]=opts.items.visible*opts.items[opts.d.width],opts.align=!1):opts[opts.d.width]="variable"),is_undefined(opts.align)&&(opts.align=!!is_number(opts[opts.d.width])&&"center"),opts.items.visibleConf.variable&&(opts.items.visible=gn_getVisibleItemsNext(i,opts,0))),"*"==opts.items.filter||opts.items.visibleConf.variable||(opts.items.visibleConf.org=opts.items.visible,opts.items.visible=gn_getVisibleItemsNextFilter(i,opts,0)),opts.items.visible=cf_getItemsAdjust(opts.items.visible,opts,opts.items.visibleConf.adjust,$tt0),opts.items.visibleConf.old=opts.items.visible,opts.responsive)opts.items.visibleConf.min||(opts.items.visibleConf.min=opts.items.visible),opts.items.visibleConf.max||(opts.items.visibleConf.max=opts.items.visible),opts=in_getResponsiveValues(opts,i,e);else switch(opts.padding=cf_getPadding(opts.padding),"top"==opts.align?opts.align="left":"bottom"==opts.align&&(opts.align="right"),opts.align){case"center":case"left":case"right":"variable"!=opts[opts.d.width]&&((opts=in_getAlignPadding(opts,i)).usePadding=!0);break;default:opts.align=!1,opts.usePadding=0!=opts.padding[0]||0!=opts.padding[1]||0!=opts.padding[2]||0!=opts.padding[3]}is_number(opts.scroll.duration)||(opts.scroll.duration=500),is_undefined(opts.scroll.items)&&(opts.scroll.items=opts.responsive||opts.items.visibleConf.variable||"*"!=opts.items.filter?"visible":opts.items.visible),opts.auto=$.extend(!0,{},opts.scroll,opts.auto),opts.prev=$.extend(!0,{},opts.scroll,opts.prev),opts.next=$.extend(!0,{},opts.scroll,opts.next),opts.pagination=$.extend(!0,{},opts.scroll,opts.pagination),opts.auto=go_complementAutoObject($tt0,opts.auto),opts.prev=go_complementPrevNextObject($tt0,opts.prev),opts.next=go_complementPrevNextObject($tt0,opts.next),opts.pagination=go_complementPaginationObject($tt0,opts.pagination),opts.swipe=go_complementSwipeObject($tt0,opts.swipe),opts.mousewheel=go_complementMousewheelObject($tt0,opts.mousewheel),opts.synchronise&&(opts.synchronise=cf_getSynchArr(opts.synchronise)),opts.auto.onPauseStart&&(opts.auto.onTimeoutStart=opts.auto.onPauseStart,deprecated("auto.onPauseStart","auto.onTimeoutStart")),opts.auto.onPausePause&&(opts.auto.onTimeoutPause=opts.auto.onPausePause,deprecated("auto.onPausePause","auto.onTimeoutPause")),opts.auto.onPauseEnd&&(opts.auto.onTimeoutEnd=opts.auto.onPauseEnd,deprecated("auto.onPauseEnd","auto.onTimeoutEnd")),opts.auto.pauseDuration&&(opts.auto.timeoutDuration=opts.auto.pauseDuration,deprecated("auto.pauseDuration","auto.timeoutDuration"))},FN._build=function(){$cfs.data("_cfs_isCarousel",!0);var t=$cfs.children(),e=in_mapCss($cfs,["textAlign","float","position","top","right","bottom","left","zIndex","width","height","marginTop","marginRight","marginBottom","marginLeft"]),s="relative";switch(e.position){case"absolute":case"fixed":s=e.position}"parent"==conf.wrapper?sz_storeOrigCss($wrp):$wrp.css(e),$wrp.css({overflow:"hidden",position:s}),sz_storeOrigCss($cfs),$cfs.data("_cfs_origCssZindex",e.zIndex),$cfs.css({textAlign:"left","float":"none",position:"absolute",top:0,right:"auto",bottom:"auto",left:0,marginTop:0,marginRight:0,marginBottom:0,marginLeft:0}),sz_storeMargin(t,opts),sz_storeOrigCss(t),opts.responsive&&sz_setResponsiveSizes(opts,t)},FN._bind_events=function(){FN._unbind_events(),$cfs.bind(cf_e("stop",conf),function(t,e){return t.stopPropagation(),crsl.isStopped||opts.auto.button&&opts.auto.button.addClass(cf_c("stopped",conf)),crsl.isStopped=!0,opts.auto.play&&(opts.auto.play=!1,$cfs.trigger(cf_e("pause",conf),e)),!0}),$cfs.bind(cf_e("finish",conf),function(t){return t.stopPropagation(),crsl.isScrolling&&sc_stopScroll(scrl),!0}),$cfs.bind(cf_e("pause",conf),function(t,e,s){return t.stopPropagation(),tmrs=sc_clearTimers(tmrs),e&&crsl.isScrolling&&(scrl.isStopped=!0,t=getTime()-scrl.startTime,scrl.duration-=t,scrl.pre&&(scrl.pre.duration-=t),scrl.post&&(scrl.post.duration-=t),sc_stopScroll(scrl,!1)),crsl.isPaused||crsl.isScrolling||s&&(tmrs.timePassed+=getTime()-tmrs.startTime),crsl.isPaused||opts.auto.button&&opts.auto.button.addClass(cf_c("paused",conf)),crsl.isPaused=!0,opts.auto.onTimeoutPause&&(e=opts.auto.timeoutDuration-tmrs.timePassed,t=100-Math.ceil(100*e/opts.auto.timeoutDuration),opts.auto.onTimeoutPause.call($tt0,t,e)),!0}),$cfs.bind(cf_e("play",conf),function(t,e,s,i){t.stopPropagation(),tmrs=sc_clearTimers(tmrs);var o=cf_sortParams([e,s,i],["string","number","boolean"]);if(e=o[0],s=o[1],i=o[2],"prev"!=e&&"next"!=e&&(e=crsl.direction),is_number(s)||(s=0),(i=is_boolean(i)?i:!1)&&(crsl.isStopped=!1,opts.auto.play=!0),!opts.auto.play)return t.stopImmediatePropagation(),debug(conf,"Carousel stopped: Not scrolling.");crsl.isPaused&&opts.auto.button&&(opts.auto.button.removeClass(cf_c("stopped",conf)),opts.auto.button.removeClass(cf_c("paused",conf))),crsl.isPaused=!1,tmrs.startTime=getTime();var n=opts.auto.timeoutDuration+s;return dur2=n-tmrs.timePassed,perc=100-Math.ceil(100*dur2/n),opts.auto.progress&&(tmrs.progress=setInterval(function(){var t=getTime()-tmrs.startTime+tmrs.timePassed,t=Math.ceil(100*t/n);opts.auto.progress.updater.call(opts.auto.progress.bar[0],t)},opts.auto.progress.interval)),tmrs.auto=setTimeout(function(){opts.auto.progress&&opts.auto.progress.updater.call(opts.auto.progress.bar[0],100),opts.auto.onTimeoutEnd&&opts.auto.onTimeoutEnd.call($tt0,perc,dur2),crsl.isScrolling?$cfs.trigger(cf_e("play",conf),e):$cfs.trigger(cf_e(e,conf),opts.auto)},dur2),opts.auto.onTimeoutStart&&opts.auto.onTimeoutStart.call($tt0,perc,dur2),!0}),$cfs.bind(cf_e("resume",conf),function(t){return t.stopPropagation(),scrl.isStopped?(scrl.isStopped=!1,crsl.isPaused=!1,crsl.isScrolling=!0,scrl.startTime=getTime(),sc_startScroll(scrl,conf)):$cfs.trigger(cf_e("play",conf)),!0}),$cfs.bind(cf_e("prev",conf)+" "+cf_e("next",conf),function(t,e,s,i,o){if(t.stopPropagation(),crsl.isStopped||$cfs.is(":hidden"))return t.stopImmediatePropagation(),debug(conf,"Carousel stopped or hidden: Not scrolling.");var n=is_number(opts.items.minimum)?opts.items.minimum:opts.items.visible+1;if(n>itms.total)return t.stopImmediatePropagation(),debug(conf,"Not enough items ("+itms.total+" total, "+n+" needed): Not scrolling.");e=(a=cf_sortParams([e,s,i,o],["object","number/string","function","boolean"]))[0],s=a[1],i=a[2],o=a[3];var r=t.type.slice(conf.events.prefix.length);if(is_object(e)||(e={}),is_function(i)&&(e.onAfter=i),is_boolean(o)&&(e.queue=o),(e=$.extend(!0,{},opts[r],e)).conditions&&!e.conditions.call($tt0,r))return t.stopImmediatePropagation(),debug(conf,'Callback "conditions" returned false.');if(!is_number(s)){if("*"!=opts.items.filter)s="visible";else for(var c=[s,e.items,opts[r].items],a=0,f=c.length;a<f;a++)if(is_number(c[a])||"page"==c[a]||"visible"==c[a]){s=c[a];break}switch(s){case"page":return t.stopImmediatePropagation(),$cfs.triggerHandler(cf_e(r+"Page",conf),[e,i]);case"visible":opts.items.visibleConf.variable||"*"!=opts.items.filter||(s=opts.items.visible)}}if(scrl.isStopped)return $cfs.trigger(cf_e("resume",conf)),$cfs.trigger(cf_e("queue",conf),[r,[e,s,i]]),t.stopImmediatePropagation(),debug(conf,"Carousel resumed scrolling.");if(0<e.duration&&crsl.isScrolling)return e.queue&&("last"==e.queue&&(queu=[]),"first"==e.queue&&0!=queu.length||$cfs.trigger(cf_e("queue",conf),[r,[e,s,i]])),t.stopImmediatePropagation(),debug(conf,"Carousel currently scrolling.");if(tmrs.timePassed=0,$cfs.trigger(cf_e("slide_"+r,conf),[e,s]),opts.synchronise)for(var l=opts.synchronise,u=[e,s],p=0,f=l.length;p<f;p++){var d=r;l[p][2]||(d="prev"==d?"next":"prev"),l[p][1]||(u[0]=l[p][0].triggerHandler("_cfs_triggerEvent",["configuration",d])),u[1]=s+l[p][3],l[p][0].trigger("_cfs_triggerEvent",["slide_"+d,u])}return!0}),$cfs.bind(cf_e("slide_prev",conf),function(t,e,s){t.stopPropagation();var i=$cfs.children();if(!opts.circular&&0==itms.first)return opts.infinite&&$cfs.trigger(cf_e("next",conf),itms.total-1),t.stopImmediatePropagation();if(sz_resetMargin(i,opts),is_number(s)||(s=cf_getAdjust(s=opts.items.visibleConf.variable?gn_getVisibleItemsPrev(i,opts,itms.total-1):"*"!=opts.items.filter?(r=is_number(e.items)?e.items:gn_getVisibleOrg($cfs,opts),gn_getScrollItemsPrevFilter(i,opts,itms.total-1,r)):opts.items.visible,opts,e.items,$tt0)),opts.circular||itms.total-s<itms.first&&(s=itms.total-itms.first),opts.items.visibleConf.old=opts.items.visible,opts.items.visibleConf.variable?(l=cf_getItemsAdjust(gn_getVisibleItemsNext(i,opts,itms.total-s),opts,opts.items.visibleConf.adjust,$tt0),opts.items.visible+s<=l&&s<itms.total&&(s++,l=cf_getItemsAdjust(gn_getVisibleItemsNext(i,opts,itms.total-s),opts,opts.items.visibleConf.adjust,$tt0)),opts.items.visible=l):"*"!=opts.items.filter&&(l=gn_getVisibleItemsNextFilter(i,opts,itms.total-s),opts.items.visible=cf_getItemsAdjust(l,opts,opts.items.visibleConf.adjust,$tt0)),sz_resetMargin(i,opts,!0),0==s)return t.stopImmediatePropagation(),debug(conf,"0 items to scroll: Not scrolling.");for(debug(conf,"Scrolling "+s+" items backward."),itms.first+=s;itms.first>=itms.total;)itms.first-=itms.total;opts.circular||(0==itms.first&&e.onEnd&&e.onEnd.call($tt0,"prev"),opts.infinite||nv_enableNavi(opts,itms.first,conf)),$cfs.children().slice(itms.total-s,itms.total).prependTo($cfs),itms.total<opts.items.visible+s&&$cfs.children().slice(0,opts.items.visible+s-itms.total).clone(!0).appendTo($cfs);var o,n=gi_getOldItemsPrev(i=$cfs.children(),opts,s),r=gi_getNewItemsPrev(i,opts),c=i.eq(s-1),a=n.last(),f=r.last(),l=(sz_resetMargin(i,opts),0),t=0,u=(opts.align&&(l=(u=cf_getAlignPadding(r,opts))[0],t=u[1]),l<0?opts.padding[opts.d[3]]:0),p=!1,d=$(),g=(opts.items.visible<s&&(d=i.slice(opts.items.visibleConf.old,s),"directscroll"==e.fx&&(o=opts.items[opts.d.width],c=f,sc_hideHiddenItems(p=d),opts.items[opts.d.width]="variable")),!1),m=ms_getTotalSize(i.slice(0,s),opts,"width"),_=cf_mapWrapperSizes(ms_getSizes(r,opts,!0),opts,!opts.usePadding),b=0,v={},h={},w={},P={},C={},x={},S={},y=sc_getDuration(e,opts,s,m);switch(e.fx){case"cover":case"cover-fade":b=ms_getTotalSize(i.slice(0,opts.items.visible),opts,"width")}p&&(opts.items[opts.d.width]=o),sz_resetMargin(i,opts,!0),0<=t&&sz_resetMargin(a,opts,opts.padding[opts.d[1]]),0<=l&&sz_resetMargin(c,opts,opts.padding[opts.d[3]]),opts.align&&(opts.padding[opts.d[1]]=t,opts.padding[opts.d[3]]=l),x[opts.d.left]=-(m-u),S[opts.d.left]=-(b-u),h[opts.d.left]=_[opts.d.width];var I=function(){},z=function(){},j=function(){},N=function(){},k=function(){},H=function(){},O=function(){},q=function(){};switch(e.fx){case"crossfade":case"cover":case"cover-fade":case"uncover":case"uncover-fade":g=$cfs.clone(!0).appendTo($wrp)}switch(e.fx){case"crossfade":case"uncover":case"uncover-fade":g.children().slice(0,s).remove(),g.children().slice(opts.items.visibleConf.old).remove();break;case"cover":case"cover-fade":g.children().slice(opts.items.visible).remove(),g.css(S)}if($cfs.css(x),scrl=sc_setScroll(y,e.easing,conf),v[opts.d.left]=opts.usePadding?opts.padding[opts.d[3]]:0,"variable"!=opts[opts.d.width]&&"variable"!=opts[opts.d.height]||(I=function(){$wrp.css(_)},z=function(){scrl.anims.push([$wrp,_])}),opts.usePadding){switch(f.not(c).length&&(w[opts.d.marginRight]=c.data("_cfs_origCssMargin"),l<0?c.css(w):(O=function(){c.css(w)},q=function(){scrl.anims.push([c,w])})),e.fx){case"cover":case"cover-fade":g.children().eq(s-1).css(w)}f.not(a).length&&(P[opts.d.marginRight]=a.data("_cfs_origCssMargin"),j=function(){a.css(P)},N=function(){scrl.anims.push([a,P])}),0<=t&&(C[opts.d.marginRight]=f.data("_cfs_origCssMargin")+opts.padding[opts.d[1]],k=function(){f.css(C)},H=function(){scrl.anims.push([f,C])})}var T=function(){$cfs.css(v)},M=opts.items.visible+s-itms.total,F=function(){var t;0<M&&($cfs.children().slice(itms.total).remove(),n=$($cfs.children().slice(itms.total-(opts.items.visible-M)).get().concat($cfs.children().slice(0,M).get()))),sc_showHiddenItems(p),opts.usePadding&&(t=$cfs.children().eq(opts.items.visible+s-1)).css(opts.d.marginRight,t.data("_cfs_origCssMargin"))},D=sc_mapCallbackArguments(n,d,r,s,"prev",y,_),A=function(){sc_afterScroll($cfs,g,e),crsl.isScrolling=!1,clbk.onAfter=sc_fireCallbacks($tt0,e,"onAfter",D,clbk),queu=sc_fireQueue($cfs,queu,conf),crsl.isPaused||$cfs.trigger(cf_e("play",conf))};switch(crsl.isScrolling=!0,tmrs=sc_clearTimers(tmrs),clbk.onBefore=sc_fireCallbacks($tt0,e,"onBefore",D,clbk),e.fx){case"none":$cfs.css(v),I(),j(),k(),O(),T(),F(),A();break;case"fade":scrl.anims.push([$cfs,{opacity:0},function(){I(),j(),k(),O(),T(),F(),(scrl=sc_setScroll(y,e.easing,conf)).anims.push([$cfs,{opacity:1},A]),sc_startScroll(scrl,conf)}]);break;case"crossfade":$cfs.css({opacity:0}),scrl.anims.push([g,{opacity:0}]),scrl.anims.push([$cfs,{opacity:1},A]),z(),j(),k(),O(),T(),F();break;case"cover":scrl.anims.push([g,v,function(){j(),k(),O(),T(),F(),A()}]),z();break;case"cover-fade":scrl.anims.push([$cfs,{opacity:0}]),scrl.anims.push([g,v,function(){j(),k(),O(),T(),F(),A()}]),z();break;case"uncover":scrl.anims.push([g,h,A]),z(),j(),k(),O(),T(),F();break;case"uncover-fade":$cfs.css({opacity:0}),scrl.anims.push([$cfs,{opacity:1}]),scrl.anims.push([g,h,A]),z(),j(),k(),O(),T(),F();break;default:scrl.anims.push([$cfs,v,function(){F(),A()}]),z(),N(),H(),q()}return sc_startScroll(scrl,conf),cf_setCookie(opts.cookie,$cfs,conf),$cfs.trigger(cf_e("updatePageStatus",conf),[!1,_]),!0}),$cfs.bind(cf_e("slide_next",conf),function(t,e,s){t.stopPropagation();var i=$cfs.children();if(!opts.circular&&itms.first==opts.items.visible)return opts.infinite&&$cfs.trigger(cf_e("prev",conf),itms.total-1),t.stopImmediatePropagation();sz_resetMargin(i,opts),is_number(s)||(s=cf_getAdjust(s="*"!=opts.items.filter?(r=is_number(e.items)?e.items:gn_getVisibleOrg($cfs,opts),gn_getScrollItemsNextFilter(i,opts,0,r)):opts.items.visible,opts,e.items,$tt0));var o=0==itms.first?itms.total:itms.first;if(opts.circular||(r=opts.items.visibleConf.variable?(n=gn_getVisibleItemsNext(i,opts,s),gn_getVisibleItemsPrev(i,opts,o-1)):(n=opts.items.visible,opts.items.visible),o<s+n&&(s=o-r)),opts.items.visibleConf.old=opts.items.visible,opts.items.visibleConf.variable){for(var n=cf_getItemsAdjust(gn_getVisibleItemsNextTestCircular(i,opts,s,o),opts,opts.items.visibleConf.adjust,$tt0);opts.items.visible-s>=n&&s<itms.total;)n=cf_getItemsAdjust(gn_getVisibleItemsNextTestCircular(i,opts,++s,o),opts,opts.items.visibleConf.adjust,$tt0);opts.items.visible=n}else"*"!=opts.items.filter&&(n=gn_getVisibleItemsNextFilter(i,opts,s),opts.items.visible=cf_getItemsAdjust(n,opts,opts.items.visibleConf.adjust,$tt0));if(sz_resetMargin(i,opts,!0),0==s)return t.stopImmediatePropagation(),debug(conf,"0 items to scroll: Not scrolling.");for(debug(conf,"Scrolling "+s+" items forward."),itms.first-=s;itms.first<0;)itms.first+=itms.total;opts.circular||(itms.first==opts.items.visible&&e.onEnd&&e.onEnd.call($tt0,"next"),opts.infinite||nv_enableNavi(opts,itms.first,conf)),itms.total<opts.items.visible+s&&$cfs.children().slice(0,opts.items.visible+s-itms.total).clone(!0).appendTo($cfs);var r=gi_getOldItemsNext(i=$cfs.children(),opts),c=gi_getNewItemsNext(i,opts,s),a=i.eq(s-1),f=r.last(),t=c.last(),l=(sz_resetMargin(i,opts),0),u=0,p=(opts.align&&(l=(d=cf_getAlignPadding(c,opts))[0],u=d[1]),!1),d=$(),g=(opts.items.visibleConf.old<s&&(d=i.slice(opts.items.visibleConf.old,s),"directscroll"==e.fx&&(S=opts.items[opts.d.width],a=f,sc_hideHiddenItems(p=d),opts.items[opts.d.width]="variable")),!1),m=ms_getTotalSize(i.slice(0,s),opts,"width"),_=cf_mapWrapperSizes(ms_getSizes(c,opts,!0),opts,!opts.usePadding),b=0,v={},h={},w={},P={},C={},x=sc_getDuration(e,opts,s,m);switch(e.fx){case"uncover":case"uncover-fade":b=ms_getTotalSize(i.slice(0,opts.items.visibleConf.old),opts,"width")}p&&(opts.items[opts.d.width]=S),opts.align&&opts.padding[opts.d[1]]<0&&(opts.padding[opts.d[1]]=0),sz_resetMargin(i,opts,!0),sz_resetMargin(f,opts,opts.padding[opts.d[1]]),opts.align&&(opts.padding[opts.d[1]]=u,opts.padding[opts.d[3]]=l),C[opts.d.left]=opts.usePadding?opts.padding[opts.d[3]]:0;var S,y=function(){},I=function(){},z=function(){},j=function(){},N=function(){},k=function(){};switch(e.fx){case"crossfade":case"cover":case"cover-fade":case"uncover":case"uncover-fade":(g=$cfs.clone(!0).appendTo($wrp)).children().slice(opts.items.visibleConf.old).remove()}switch(e.fx){case"crossfade":case"cover":case"cover-fade":$cfs.css("zIndex",1),g.css("zIndex",0)}scrl=sc_setScroll(x,e.easing,conf),v[opts.d.left]=-m,h[opts.d.left]=-b,l<0&&(v[opts.d.left]+=l),"variable"!=opts[opts.d.width]&&"variable"!=opts[opts.d.height]||(y=function(){$wrp.css(_)},I=function(){scrl.anims.push([$wrp,_])}),opts.usePadding&&(S=t.data("_cfs_origCssMargin"),0<=u&&(S+=opts.padding[opts.d[1]]),t.css(opts.d.marginRight,S),a.not(f).length&&(P[opts.d.marginRight]=f.data("_cfs_origCssMargin")),z=function(){f.css(P)},j=function(){scrl.anims.push([f,P])},m=a.data("_cfs_origCssMargin"),0<l&&(m+=opts.padding[opts.d[3]]),w[opts.d.marginRight]=m,N=function(){a.css(w)},k=function(){scrl.anims.push([a,w])});var O=function(){$cfs.css(C)},T=opts.items.visible+s-itms.total,M=function(){0<T&&$cfs.children().slice(itms.total).remove();var t,e=$cfs.children().slice(0,s).appendTo($cfs).last();0<T&&(c=gi_getCurrentItems(i,opts)),sc_showHiddenItems(p),opts.usePadding&&(itms.total<opts.items.visible+s&&(t=$cfs.children().eq(opts.items.visible-1)).css(opts.d.marginRight,t.data("_cfs_origCssMargin")+opts.padding[opts.d[1]]),e.css(opts.d.marginRight,e.data("_cfs_origCssMargin")))},F=sc_mapCallbackArguments(r,d,c,s,"next",x,_),A=function(){$cfs.css("zIndex",$cfs.data("_cfs_origCssZindex")),sc_afterScroll($cfs,g,e),crsl.isScrolling=!1,clbk.onAfter=sc_fireCallbacks($tt0,e,"onAfter",F,clbk),queu=sc_fireQueue($cfs,queu,conf),crsl.isPaused||$cfs.trigger(cf_e("play",conf))};switch(crsl.isScrolling=!0,tmrs=sc_clearTimers(tmrs),clbk.onBefore=sc_fireCallbacks($tt0,e,"onBefore",F,clbk),e.fx){case"none":$cfs.css(v),y(),z(),N(),O(),M(),A();break;case"fade":scrl.anims.push([$cfs,{opacity:0},function(){y(),z(),N(),O(),M(),(scrl=sc_setScroll(x,e.easing,conf)).anims.push([$cfs,{opacity:1},A]),sc_startScroll(scrl,conf)}]);break;case"crossfade":$cfs.css({opacity:0}),scrl.anims.push([g,{opacity:0}]),scrl.anims.push([$cfs,{opacity:1},A]),I(),z(),N(),O(),M();break;case"cover":$cfs.css(opts.d.left,$wrp[opts.d.width]()),scrl.anims.push([$cfs,C,A]),I(),z(),N(),M();break;case"cover-fade":$cfs.css(opts.d.left,$wrp[opts.d.width]()),scrl.anims.push([g,{opacity:0}]),scrl.anims.push([$cfs,C,A]),I(),z(),N(),M();break;case"uncover":scrl.anims.push([g,h,A]),I(),z(),N(),O(),M();break;case"uncover-fade":$cfs.css({opacity:0}),scrl.anims.push([$cfs,{opacity:1}]),scrl.anims.push([g,h,A]),I(),z(),N(),O(),M();break;default:scrl.anims.push([$cfs,v,function(){O(),M(),A()}]),I(),j(),k()}return sc_startScroll(scrl,conf),cf_setCookie(opts.cookie,$cfs,conf),$cfs.trigger(cf_e("updatePageStatus",conf),[!1,_]),!0}),$cfs.bind(cf_e("slideTo",conf),function(t,e,s,i,o,n,r){t.stopPropagation();t=cf_sortParams([e,s,i,o,n,r],["string/number/object","number","boolean","object","string","function"]);return o=t[3],n=t[4],r=t[5],0!=(e=gn_getItemIndex(t[0],t[1],t[2],itms,$cfs))&&(is_object(o)||(o=!1),"prev"==(n="prev"!=n&&"next"!=n?opts.circular?e<=itms.total/2?"next":"prev":0==itms.first||itms.first>e?"next":"prev":n)&&(e=itms.total-e),$cfs.trigger(cf_e(n,conf),[o,e,r]),!0)}),$cfs.bind(cf_e("prevPage",conf),function(t,e,s){t.stopPropagation();t=$cfs.triggerHandler(cf_e("currentPage",conf));return $cfs.triggerHandler(cf_e("slideToPage",conf),[t-1,e,"prev",s])}),$cfs.bind(cf_e("nextPage",conf),function(t,e,s){t.stopPropagation();t=$cfs.triggerHandler(cf_e("currentPage",conf));return $cfs.triggerHandler(cf_e("slideToPage",conf),[t+1,e,"next",s])}),$cfs.bind(cf_e("slideToPage",conf),function(t,e,s,i,o){t.stopPropagation(),is_number(e)||(e=$cfs.triggerHandler(cf_e("currentPage",conf)));var t=opts.pagination.items||opts.items.visible,n=Math.ceil(itms.total/t)-1;return n<(e=e<0?n:e)&&(e=0),$cfs.triggerHandler(cf_e("slideTo",conf),[e*t,0,!0,s,i,o])}),$cfs.bind(cf_e("jumpToStart",conf),function(t,e){if(t.stopPropagation(),e=e?gn_getItemIndex(e,0,!0,itms,$cfs):0,0!=(e+=itms.first)){if(0<itms.total)for(;e>itms.total;)e-=itms.total;$cfs.prepend($cfs.children().slice(e,itms.total))}return!0}),$cfs.bind(cf_e("synchronise",conf),function(t,e){if(t.stopPropagation(),e)e=cf_getSynchArr(e);else{if(!opts.synchronise)return debug(conf,"No carousel to synchronise.");e=opts.synchronise}for(var s=$cfs.triggerHandler(cf_e("currentPosition",conf)),i=!0,o=0,n=e.length;o<n;o++)e[o][0].triggerHandler(cf_e("slideTo",conf),[s,e[o][3],!0])||(i=!1);return i}),$cfs.bind(cf_e("queue",conf),function(t,e,s){return t.stopPropagation(),is_function(e)?e.call($tt0,queu):is_array(e)?queu=e:is_undefined(e)||queu.push([e,s]),queu}),$cfs.bind(cf_e("insertItem",conf),function(t,e,s,i,o){t.stopPropagation();t=cf_sortParams([e,s,i,o],["string/object","string/number/object","boolean","number"]);if(e=t[0],s=t[1],i=t[2],o=t[3],(is_object(e)&&!is_jquery(e)||is_string(e))&&(e=$(e)),!is_jquery(e)||0==e.length)return debug(conf,"Not a valid object.");is_undefined(s)&&(s="end"),sz_storeMargin(e,opts),sz_storeOrigCss(e);var t=s,n="before",o=("end"==s?i?(0==itms.first?(s=itms.total-1,n="after"):(s=itms.first,itms.first+=e.length),s<0&&(s=0)):(s=itms.total-1,n="after"):s=gn_getItemIndex(s,o,i,itms,$cfs),$cfs.children().eq(s));return o.length?o[n](e):(debug(conf,"Correct insert-position not found! Appending item to the end."),$cfs.append(e)),"end"==t||i||s<itms.first&&(itms.first+=e.length),itms.total=$cfs.children().length,itms.first>=itms.total&&(itms.first-=itms.total),$cfs.trigger(cf_e("updateSizes",conf)),$cfs.trigger(cf_e("linkAnchors",conf)),!0}),$cfs.bind(cf_e("removeItem",conf),function(t,e,i,o){t.stopPropagation();var n,t=cf_sortParams([e,i,o],["string/number/object","boolean","number"]);e=t[0],i=t[1],o=t[2];return e instanceof $&&1<e.length?(n=$(),e.each(function(t,e){var s=$cfs.trigger(cf_e("removeItem",conf),[$(this),i,o]);s&&(n=n.add(s))})):(is_undefined(e)||"end"==e?n=$cfs.children().last():(e=gn_getItemIndex(e,o,i,itms,$cfs),(n=$cfs.children().eq(e)).length&&e<itms.first&&(itms.first-=n.length)),n&&n.length&&(n.detach(),itms.total=$cfs.children().length,$cfs.trigger(cf_e("updateSizes",conf)))),n}),$cfs.bind(cf_e("onBefore",conf)+" "+cf_e("onAfter",conf),function(t,e){t.stopPropagation();t=t.type.slice(conf.events.prefix.length);return is_array(e)&&(clbk[t]=e),is_function(e)&&clbk[t].push(e),clbk[t]}),$cfs.bind(cf_e("currentPosition",conf),function(t,e){return t.stopPropagation(),t=0==itms.first?0:itms.total-itms.first,is_function(e)&&e.call($tt0,t),t}),$cfs.bind(cf_e("currentPage",conf),function(t,e){t.stopPropagation();var t=opts.pagination.items||opts.items.visible,s=Math.ceil(itms.total/t-1),t=0==itms.first||itms.first<itms.total%t?0:itms.first!=t||opts.circular?Math.round((itms.total-itms.first)/t):s;return s<(t=t<0?0:t)&&(t=s),is_function(e)&&e.call($tt0,t),t}),$cfs.bind(cf_e("currentVisible",conf),function(t,e){t.stopPropagation();t=gi_getCurrentItems($cfs.children(),opts);return is_function(e)&&e.call($tt0,t),t}),$cfs.bind(cf_e("slice",conf),function(t,e,s,i){if(t.stopPropagation(),0==itms.total)return!1;t=cf_sortParams([e,s,i],["number","number","function"]);if(e=is_number(t[0])?t[0]:0,s=is_number(t[1])?t[1]:itms.total,i=t[2],e+=itms.first,s+=itms.first,0<items.total){for(;e>itms.total;)e-=itms.total;for(;s>itms.total;)s-=itms.total;for(;e<0;)e+=itms.total;for(;s<0;)s+=itms.total}t=$cfs.children(),t=e<s?t.slice(e,s):$(t.slice(e,itms.total).get().concat(t.slice(0,s).get()));return is_function(i)&&i.call($tt0,t),t}),$cfs.bind(cf_e("isPaused",conf)+" "+cf_e("isStopped",conf)+" "+cf_e("isScrolling",conf),function(t,e){t.stopPropagation();t=t.type.slice(conf.events.prefix.length),t=crsl[t];return is_function(e)&&e.call($tt0,t),t}),$cfs.bind(cf_e("configuration",conf),function(e,a,b,c){e.stopPropagation();var reInit=!1,sz;if(is_function(a))a.call($tt0,opts);else if(is_object(a))opts_orig=$.extend(!0,{},opts_orig,a),!1!==b?reInit=!0:opts=$.extend(!0,{},opts,a);else if(!is_undefined(a))if(is_function(b)){var val=eval("opts."+a);is_undefined(val)&&(val=""),b.call($tt0,val)}else{if(is_undefined(b))return eval("opts."+a);"boolean"!=typeof c&&(c=!0),eval("opts_orig."+a+" = b"),!1!==c?reInit=!0:eval("opts."+a+" = b")}return reInit&&(sz_resetMargin($cfs.children(),opts),FN._init(opts_orig),FN._bind_buttons(),sz=sz_setSizes($cfs,opts),$cfs.trigger(cf_e("updatePageStatus",conf),[!0,sz])),opts}),$cfs.bind(cf_e("linkAnchors",conf),function(t,e,s){return t.stopPropagation(),is_undefined(e)?e=$("body"):is_string(e)&&(e=$(e)),is_jquery(e)&&0!=e.length?(is_string(s)||(s="a.caroufredsel"),e.find(s).each(function(){var e=this.hash||"";0<e.length&&-1!=$cfs.children().index($(e))&&$(this).unbind("click").click(function(t){t.preventDefault(),$cfs.trigger(cf_e("slideTo",conf),e)})}),!0):debug(conf,"Not a valid object.")}),$cfs.bind(cf_e("updatePageStatus",conf),function(t,e,s){var i,o,n;if(t.stopPropagation(),opts.pagination.container)return i=opts.pagination.items||opts.items.visible,o=Math.ceil(itms.total/i),e&&(opts.pagination.anchorBuilder&&(opts.pagination.container.children().remove(),opts.pagination.container.each(function(){for(var t=0;t<o;t++){var e=$cfs.children().eq(gn_getItemIndex(t*i,0,!0,itms,$cfs));$(this).append(opts.pagination.anchorBuilder.call(e[0],t+1))}})),opts.pagination.container.each(function(){$(this).children().unbind(opts.pagination.event).each(function(e){$(this).bind(opts.pagination.event,function(t){t.preventDefault(),$cfs.trigger(cf_e("slideTo",conf),[e*i,-opts.pagination.deviation,!0,opts.pagination])})})})),n=$cfs.triggerHandler(cf_e("currentPage",conf))+opts.pagination.deviation,(n=o<=n?0:n)<0&&(n=o-1),opts.pagination.container.each(function(){$(this).children().removeClass(cf_c("selected",conf)).eq(n).addClass(cf_c("selected",conf))}),!0}),$cfs.bind(cf_e("updateSizes",conf),function(t){var e=opts.items.visible,s=$cfs.children(),i=ms_getParentSize($wrp,opts,"width"),i=(itms.total=s.length,crsl.primarySizePercentage?(opts.maxDimension=i,opts[opts.d.width]=ms_getPercentage(i,crsl.primarySizePercentage)):opts.maxDimension=ms_getMaxDimension(opts,i),opts.responsive?(opts.items.width=opts.items.sizesConf.width,opts.items.height=opts.items.sizesConf.height,e=(opts=in_getResponsiveValues(opts,s,i)).items.visible,sz_setResponsiveSizes(opts,s)):opts.items.visibleConf.variable?e=gn_getVisibleItemsNext(s,opts,0):"*"!=opts.items.filter&&(e=gn_getVisibleItemsNextFilter(s,opts,0)),!opts.circular&&0!=itms.first&&e>itms.first&&(i=opts.items.visibleConf.variable?gn_getVisibleItemsPrev(s,opts,itms.first)-itms.first:"*"!=opts.items.filter?gn_getVisibleItemsPrevFilter(s,opts,itms.first)-itms.first:opts.items.visible-itms.first,debug(conf,"Preventing non-circular: sliding "+i+" items backward."),$cfs.trigger(cf_e("prev",conf),i)),opts.items.visible=cf_getItemsAdjust(e,opts,opts.items.visibleConf.adjust,$tt0),opts.items.visibleConf.old=opts.items.visible,opts=in_getAlignPadding(opts,s),sz_setSizes($cfs,opts));return $cfs.trigger(cf_e("updatePageStatus",conf),[!0,i]),nv_showNavi(opts,itms.total,conf),nv_enableNavi(opts,itms.first,conf),i}),$cfs.bind(cf_e("destroy",conf),function(t,e){return t.stopPropagation(),tmrs=sc_clearTimers(tmrs),$cfs.data("_cfs_isCarousel",!1),$cfs.trigger(cf_e("finish",conf)),e&&$cfs.trigger(cf_e("jumpToStart",conf)),sz_restoreOrigCss($cfs.children()),sz_restoreOrigCss($cfs),FN._unbind_events(),FN._unbind_buttons(),"parent"==conf.wrapper?sz_restoreOrigCss($wrp):$wrp.replaceWith($cfs),!0}),$cfs.bind(cf_e("debug",conf),function(t){return debug(conf,"Carousel width: "+opts.width),debug(conf,"Carousel height: "+opts.height),debug(conf,"Item widths: "+opts.items.width),debug(conf,"Item heights: "+opts.items.height),debug(conf,"Number of items visible: "+opts.items.visible),opts.auto.play&&debug(conf,"Number of items scrolled automatically: "+opts.auto.items),opts.prev.button&&debug(conf,"Number of items scrolled backward: "+opts.prev.items),opts.next.button&&debug(conf,"Number of items scrolled forward: "+opts.next.items),conf.debug}),$cfs.bind("_cfs_triggerEvent",function(t,e,s){return t.stopPropagation(),$cfs.triggerHandler(cf_e(e,conf),s)})},FN._unbind_events=function(){$cfs.unbind(cf_e("",conf)),$cfs.unbind(cf_e("",conf,!1)),$cfs.unbind("_cfs_triggerEvent")},FN._bind_buttons=function(){var t,s,i,o,n,r,c;if(FN._unbind_buttons(),nv_showNavi(opts,itms.total,conf),nv_enableNavi(opts,itms.first,conf),opts.auto.pauseOnHover&&(t=bt_pauseOnHoverConfig(opts.auto.pauseOnHover),$wrp.bind(cf_e("mouseenter",conf,!1),function(){$cfs.trigger(cf_e("pause",conf),t)}).bind(cf_e("mouseleave",conf,!1),function(){$cfs.trigger(cf_e("resume",conf))})),opts.auto.button&&opts.auto.button.bind(cf_e(opts.auto.event,conf,!1),function(t){t.preventDefault();var t=!1,e=null;crsl.isPaused?t="play":opts.auto.pauseOnEvent&&(t="pause",e=bt_pauseOnHoverConfig(opts.auto.pauseOnEvent)),t&&$cfs.trigger(cf_e(t,conf),e)}),opts.prev.button&&(opts.prev.button.bind(cf_e(opts.prev.event,conf,!1),function(t){t.preventDefault(),$cfs.trigger(cf_e("prev",conf))}),opts.prev.pauseOnHover&&(t=bt_pauseOnHoverConfig(opts.prev.pauseOnHover),opts.prev.button.bind(cf_e("mouseenter",conf,!1),function(){$cfs.trigger(cf_e("pause",conf),t)}).bind(cf_e("mouseleave",conf,!1),function(){$cfs.trigger(cf_e("resume",conf))}))),opts.next.button&&(opts.next.button.bind(cf_e(opts.next.event,conf,!1),function(t){t.preventDefault(),$cfs.trigger(cf_e("next",conf))}),opts.next.pauseOnHover&&(t=bt_pauseOnHoverConfig(opts.next.pauseOnHover),opts.next.button.bind(cf_e("mouseenter",conf,!1),function(){$cfs.trigger(cf_e("pause",conf),t)}).bind(cf_e("mouseleave",conf,!1),function(){$cfs.trigger(cf_e("resume",conf))}))),opts.pagination.container&&opts.pagination.pauseOnHover&&(t=bt_pauseOnHoverConfig(opts.pagination.pauseOnHover),opts.pagination.container.bind(cf_e("mouseenter",conf,!1),function(){$cfs.trigger(cf_e("pause",conf),t)}).bind(cf_e("mouseleave",conf,!1),function(){$cfs.trigger(cf_e("resume",conf))})),(opts.prev.key||opts.next.key)&&$(document).bind(cf_e("keyup",conf,!1,!0,!0),function(t){var e=t.keyCode;e==opts.next.key&&(t.preventDefault(),$cfs.trigger(cf_e("next",conf))),e==opts.prev.key&&(t.preventDefault(),$cfs.trigger(cf_e("prev",conf)))}),opts.pagination.keys&&$(document).bind(cf_e("keyup",conf,!1,!0,!0),function(t){var e=t.keyCode;49<=e&&e<58&&(e=(e-49)*opts.items.visible)<=itms.total&&(t.preventDefault(),$cfs.trigger(cf_e("slideTo",conf),[e,0,!0,opts.pagination]))}),$.fn.swipe){var e="ontouchstart"in window;if(e&&opts.swipe.onTouch||!e&&opts.swipe.onMouse){var a=$.extend(!0,{},opts.prev,opts.swipe),f=$.extend(!0,{},opts.next,opts.swipe),l=function(){$cfs.trigger(cf_e("prev",conf),[a])},u=function(){$cfs.trigger(cf_e("next",conf),[f])};switch(opts.direction){case"up":case"down":opts.swipe.options.swipeUp=u,opts.swipe.options.swipeDown=l;break;default:opts.swipe.options.swipeLeft=u,opts.swipe.options.swipeRight=l}crsl.swipe&&$cfs.swipe("destroy"),$wrp.swipe(opts.swipe.options),$wrp.css("cursor","move"),crsl.swipe=!0}}$.fn.mousewheel&&opts.mousewheel&&(s=$.extend(!0,{},opts.prev,opts.mousewheel),i=$.extend(!0,{},opts.next,opts.mousewheel),crsl.mousewheel&&$wrp.unbind(cf_e("mousewheel",conf,!1)),$wrp.bind(cf_e("mousewheel",conf,!1),function(t,e){t.preventDefault(),0<e?$cfs.trigger(cf_e("prev",conf),[s]):$cfs.trigger(cf_e("next",conf),[i])}),crsl.mousewheel=!0),opts.auto.play&&$cfs.trigger(cf_e("play",conf),opts.auto.delay),crsl.upDateOnWindowResize&&(o=function(t){$cfs.trigger(cf_e("finish",conf)),opts.auto.pauseOnResize&&!crsl.isPaused&&$cfs.trigger(cf_e("play",conf)),sz_resetMargin($cfs.children(),opts),$cfs.trigger(cf_e("updateSizes",conf))},n=$(window),e=null,e=$.debounce&&"debounce"==conf.onWindowResize?$.debounce(200,o):$.throttle&&"throttle"==conf.onWindowResize?$.throttle(300,o):(c=r=0,function(){var t=n.width(),e=n.height();t==r&&e==c||(o(),r=t,c=e)}),n.bind(cf_e("resize",conf,!1,!0,!0),e))},FN._unbind_buttons=function(){cf_e("",conf);var t=cf_e("",conf,!1);ns3=cf_e("",conf,!1,!0,!0),$(document).unbind(ns3),$(window).unbind(ns3),$wrp.unbind(t),opts.auto.button&&opts.auto.button.unbind(t),opts.prev.button&&opts.prev.button.unbind(t),opts.next.button&&opts.next.button.unbind(t),opts.pagination.container&&(opts.pagination.container.unbind(t),opts.pagination.anchorBuilder&&opts.pagination.container.children().remove()),crsl.swipe&&($cfs.swipe("destroy"),$wrp.css("cursor","default"),crsl.swipe=!1),crsl.mousewheel&&(crsl.mousewheel=!1),nv_showNavi(opts,"hide",conf),nv_enableNavi(opts,"removeClass",conf)},is_boolean(configs)&&(configs={debug:configs}),{direction:"next",isPaused:!0,isScrolling:!1,isStopped:!1,mousewheel:!1,swipe:!1}),itms={total:$cfs.children().length,first:0},tmrs={auto:null,progress:null,startTime:getTime(),timePassed:0},scrl={isStopped:!1,duration:0,startTime:0,easing:"",anims:[]},clbk={onBefore:[],onAfter:[]},queu=[],conf=$.extend(!0,{},$.fn.carouFredSel.configs,configs),opts={},opts_orig=$.extend(!0,{},options),$wrp=("parent"==conf.wrapper?$cfs:$cfs.wrap("<"+conf.wrapper.element+' class="'+conf.wrapper.classname+'" />')).parent(),start_arr,start_arr;if(conf.selector=$cfs.selector,conf.serialNumber=$.fn.carouFredSel.serialNumber++,conf.transition=conf.transition&&$.fn.transition?"transition":"animate",FN._init(opts_orig,!0,starting_position),FN._build(),FN._bind_events(),FN._bind_buttons(),is_array(opts.items.start)?start_arr=opts.items.start:(start_arr=[],0!=opts.items.start&&start_arr.push(opts.items.start)),opts.cookie&&start_arr.unshift(parseInt(cf_getCookie(opts.cookie),10)),0<start_arr.length)for(var a=0,l=start_arr.length;a<l;a++){var s=start_arr[a];if(0!=s){if(!0===s){if(s=window.location.hash,s.length<1)continue}else"random"===s&&(s=Math.floor(Math.random()*itms.total));if($cfs.triggerHandler(cf_e("slideTo",conf),[s,0,!0,{fx:"none"}]))break}}var siz=sz_setSizes($cfs,opts),itm=gi_getCurrentItems($cfs.children(),opts);return opts.onCreate&&opts.onCreate.call($tt0,{width:siz.width,height:siz.height,items:itm}),$cfs.trigger(cf_e("updatePageStatus",conf),[!0,siz]),$cfs.trigger(cf_e("linkAnchors",conf)),conf.debug&&$cfs.trigger(cf_e("debug",conf)),$cfs},$.fn.carouFredSel.serialNumber=1,$.fn.carouFredSel.defaults={synchronise:!1,infinite:!0,circular:!0,responsive:!0,direction:"left",items:{start:0},scroll:{easing:"swing",duration:500,pauseOnHover:!1,event:"click",queue:!1}},$.fn.carouFredSel.configs={padding:"5px",debug:!1,transition:!1,onWindowResize:"throttle",events:{prefix:"",namespace:"cfs"},wrapper:{element:"div",classname:"caroufredsel_wrapper"},classnames:{}},$.fn.carouFredSel.pageAnchorBuilder=function(t){return'<a href="#"><span>'+t+"</span></a>"},$.fn.carouFredSel.progressbarUpdater=function(t){$(this).css("width",t+"%")},$.fn.carouFredSel.cookie={get:function(t){t+="=";for(var e=document.cookie.split(";"),s=0,i=e.length;s<i;s++){for(var o=e[s];" "==o.charAt(0);)o=o.slice(1);if(0==o.indexOf(t))return o.slice(t.length)}return 0},set:function(t,e,s){var i,o="";s&&((i=new Date).setTime(i.getTime()+24*s*60*60*1e3),o="; expires="+i.toGMTString()),document.cookie=t+"="+e+o+"; path=/"},remove:function(t){$.fn.carouFredSel.cookie.set(t,"",-1)}},$.extend($.easing,{quadratic:function(t){var e=t*t;return t*(-e*t+4*e-6*t+4)},cubic:function(t){return t*(4*t*t-9*t+6)},elastic:function(t){var e=t*t;return t*(33*e*e-106*e*t+126*e-67*t+15)}}))}(jQuery);
init.php CHANGED
@@ -3,13 +3,13 @@
3
  * Plugin Name: YITH WooCommerce Product Gallery & Image Zoom
4
  * Plugin URI: https://yithemes.com/themes/plugins/yith-woocommerce-zoom-magnifier/
5
  * Description: <code><strong>YITH WooCommerce Product Gallery & Image Zoom</strong></code> allows you to add a zoom effect to product images and a thumbnail slider for the product image gallery. <a href="https://yithemes.com/" target="_blank">Get more plugins for your e-commerce shop on <strong>YITH</strong></a>.
6
- * Version: 2.12.0
7
  * Author: YITH
8
  * Author URI: https://yithemes.com/
9
  * Text Domain: yith-woocommerce-zoom-magnifier
10
  * Domain Path: /languages/
11
- * WC requires at least: 6.6
12
- * WC tested up to: 6.8
13
  **/
14
 
15
  /* Copyright 2013-2018 Your Inspiration Themes (email : plugins@yithemes.com)
@@ -78,7 +78,7 @@ register_activation_hook ( __FILE__, 'yith_plugin_registration_hook' );
78
 
79
  defined ( 'YITH_YWZM_FREE_INIT' ) || define ( 'YITH_YWZM_FREE_INIT', plugin_basename ( __FILE__ ) );
80
  defined ( 'YITH_YWZM_SLUG' ) || define ( 'YITH_YWZM_SLUG', 'yith-woocommerce-zoom-magnifier' );
81
- defined ( 'YITH_YWZM_VERSION' ) || define ( 'YITH_YWZM_VERSION', '2.12.0' );
82
  defined ( 'YITH_YWZM_SCRIPT_VERSION' ) || define ( 'YITH_YWZM_SCRIPT_VERSION', '2.1.1' );
83
 
84
  defined ( 'YITH_YWZM_FILE' ) || define ( 'YITH_YWZM_FILE', __FILE__ );
3
  * Plugin Name: YITH WooCommerce Product Gallery & Image Zoom
4
  * Plugin URI: https://yithemes.com/themes/plugins/yith-woocommerce-zoom-magnifier/
5
  * Description: <code><strong>YITH WooCommerce Product Gallery & Image Zoom</strong></code> allows you to add a zoom effect to product images and a thumbnail slider for the product image gallery. <a href="https://yithemes.com/" target="_blank">Get more plugins for your e-commerce shop on <strong>YITH</strong></a>.
6
+ * Version: 2.13.0
7
  * Author: YITH
8
  * Author URI: https://yithemes.com/
9
  * Text Domain: yith-woocommerce-zoom-magnifier
10
  * Domain Path: /languages/
11
+ * WC requires at least: 6.7
12
+ * WC tested up to: 6.9
13
  **/
14
 
15
  /* Copyright 2013-2018 Your Inspiration Themes (email : plugins@yithemes.com)
78
 
79
  defined ( 'YITH_YWZM_FREE_INIT' ) || define ( 'YITH_YWZM_FREE_INIT', plugin_basename ( __FILE__ ) );
80
  defined ( 'YITH_YWZM_SLUG' ) || define ( 'YITH_YWZM_SLUG', 'yith-woocommerce-zoom-magnifier' );
81
+ defined ( 'YITH_YWZM_VERSION' ) || define ( 'YITH_YWZM_VERSION', '2.13.0' );
82
  defined ( 'YITH_YWZM_SCRIPT_VERSION' ) || define ( 'YITH_YWZM_SCRIPT_VERSION', '2.1.1' );
83
 
84
  defined ( 'YITH_YWZM_FILE' ) || define ( 'YITH_YWZM_FILE', __FILE__ );
languages/yith-woocommerce-zoom-magnifier.pot CHANGED
@@ -2,9 +2,9 @@
2
  # This file is distributed under the same license as the YITH WooCommerce Product Gallery & Image Zoom package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: YITH WooCommerce Product Gallery & Image Zoom 2.12.0\n"
6
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
7
- "POT-Creation-Date: 2022-08-03 12:58:05+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
2
  # This file is distributed under the same license as the YITH WooCommerce Product Gallery & Image Zoom package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: YITH WooCommerce Product Gallery & Image Zoom 2.13.0\n"
6
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
7
+ "POT-Creation-Date: 2022-09-13 13:35:22+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
plugin-fw/assets/css/welcome-modal.css ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Welcome Modal.
3
+ */
4
+ .yith-plugin-fw-welcome-modal .yith-plugin-fw__modal__content {
5
+ padding-bottom: 0;
6
+ }
7
+
8
+ .yith-plugin-fw-welcome-modal .yith-plugin-fw__modal__footer {
9
+ background: transparent;
10
+ text-align: center;
11
+ }
12
+
13
+ .yith-plugin-fw-welcome {
14
+ line-height: 1.5em;
15
+ }
16
+
17
+ .yith-plugin-fw-welcome a {
18
+ color: var(--yith-link);
19
+ }
20
+
21
+ .yith-plugin-fw-welcome .yith-plugin-fw-welcome__head {
22
+ text-align: center;
23
+ }
24
+
25
+ .yith-plugin-fw-welcome .yith-plugin-fw-welcome__icon {
26
+ width: 60px;
27
+ }
28
+
29
+ .yith-plugin-fw-welcome .yith-plugin-fw-welcome__title {
30
+ color: #03689f;
31
+ font-size: 18px;
32
+ line-height: 2em;
33
+ }
34
+
35
+ .yith-plugin-fw-welcome .yith-plugin-fw-welcome__description {
36
+ margin: 15px 0 25px;
37
+ }
38
+
39
+ .yith-plugin-fw-welcome .yith-plugin-fw-welcome__title__plugin-name {
40
+ font-weight: 700;
41
+ }
42
+
43
+ .yith-plugin-fw-welcome .yith-plugin-fw-welcome__list-head {
44
+ display: flex;
45
+ align-items: center;
46
+ }
47
+
48
+ .yith-plugin-fw-welcome .yith-plugin-fw-welcome__list-head__title {
49
+ font-size: 1.2em;
50
+ font-weight: 700;
51
+ flex: 1;
52
+ }
53
+
54
+ .yith-plugin-fw-welcome .yith-plugin-fw-welcome__list-head__changelog {
55
+ font-size: .85em;
56
+ text-decoration: none;
57
+ font-weight: 500;
58
+ }
59
+
60
+ .yith-plugin-fw-welcome.yith-plugin-fw-welcome--update .yith-plugin-fw-welcome__list-head {
61
+ margin-top: 30px;
62
+ }
63
+
64
+ .yith-plugin-fw-welcome__close {
65
+ color: var(--yith-link);
66
+ cursor: pointer;
67
+ font-size: .9em;
68
+ display: inline-block;
69
+ padding: 5px 10px;
70
+ text-decoration: none;
71
+ font-weight: 500;
72
+ }
plugin-fw/assets/css/yith-bh-onboarding.css CHANGED
@@ -133,6 +133,7 @@
133
  #yith-bh-onboarding ul.yith-bh-onboarding-connect-list p {
134
  font-size: 13px;
135
  line-height: 1.6em;
 
136
  }
137
 
138
  #yith-bh-onboarding .yith-bh-onboarding-connect-cta {
133
  #yith-bh-onboarding ul.yith-bh-onboarding-connect-list p {
134
  font-size: 13px;
135
  line-height: 1.6em;
136
+ padding-left:10px;
137
  }
138
 
139
  #yith-bh-onboarding .yith-bh-onboarding-connect-cta {
plugin-fw/assets/css/yith-plugin-ui.css CHANGED
@@ -969,6 +969,79 @@
969
  border: 1px solid var(--yith-delete-hover);
970
  }
971
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
972
  .yith-plugin-fw__list-table-blank-state {
973
  padding: 30px 30px 0;
974
  text-align: center;
969
  border: 1px solid var(--yith-delete-hover);
970
  }
971
 
972
+ .yith-plugin-fw__list-items {
973
+ display: grid;
974
+ grid-gap: 13px;
975
+ margin: 15px 0 0;
976
+ }
977
+
978
+ .yith-plugin-fw__list-item .yith-plugin-fw__list-item__wrap {
979
+ padding: 12px 18px;
980
+ border: 1px solid #e6e6e6;
981
+ background: #f5f5f5;
982
+ display: flex;
983
+ align-items: center;
984
+ text-decoration: none;
985
+ color: inherit;
986
+ }
987
+
988
+ .yith-plugin-fw__list-item:not(.yith-plugin-fw__list-item--no-link) .yith-plugin-fw__list-item__wrap:hover {
989
+ border-color: #bcd9f6;
990
+ background: #e5eef7;
991
+ }
992
+
993
+ .yith-plugin-fw__list-item:not(.yith-plugin-fw__list-item--no-link) .yith-plugin-fw__list-item__wrap:hover .yith-plugin-fw__list-item__step,
994
+ .yith-plugin-fw__list-item:not(.yith-plugin-fw__list-item--no-link) .yith-plugin-fw__list-item__wrap:hover .yith-plugin-fw__list-item__arrow {
995
+ color: var(--yith-link);
996
+ }
997
+
998
+ .yith-plugin-fw__list-item mark {
999
+ background: transparent;
1000
+ color: var(--yith-link);
1001
+ }
1002
+
1003
+ .yith-plugin-fw__list-item .yith-plugin-fw__list-item__step {
1004
+ font-size: 30px;
1005
+ font-weight: 700;
1006
+ text-align: center;
1007
+ width: 60px;
1008
+ margin-left: -14px;
1009
+ color: #717171;
1010
+ opacity: .36;
1011
+ }
1012
+
1013
+ .yith-plugin-fw__list-item .yith-plugin-fw__list-item__content {
1014
+ font-weight: 500;
1015
+ flex: 1;
1016
+ }
1017
+
1018
+ .yith-plugin-fw__list-item .yith-plugin-fw__list-item__title {
1019
+ font-size: 1.1em;
1020
+ }
1021
+
1022
+ .yith-plugin-fw__list-item .yith-plugin-fw__list-item__description {
1023
+ font-size: .85em;
1024
+ margin-top: .5em;
1025
+ }
1026
+
1027
+ .yith-plugin-fw__list-item .yith-plugin-fw__list-item__cta {
1028
+ margin-top: .7em;
1029
+ color: var(--yith-link);
1030
+ font-size: .85em;
1031
+ font-weight: 500;
1032
+ }
1033
+
1034
+ .yith-plugin-fw__list-item .yith-plugin-fw__list-item__arrow {
1035
+ color: #717171;
1036
+ margin-left: 10px;
1037
+ font-size: 12px;
1038
+ font-weight: 800;
1039
+ }
1040
+
1041
+ .yith-plugin-fw__list-items--list .yith-plugin-fw__list-item__title {
1042
+ font-style: italic;
1043
+ }
1044
+
1045
  .yith-plugin-fw__list-table-blank-state {
1046
  padding: 30px 30px 0;
1047
  text-align: center;
plugin-fw/assets/js/welcome-modal.js ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* global jQuery, yith, wp */
2
+ jQuery( function ( $ ) {
3
+ "use strict";
4
+
5
+ var template = wp.template( 'yith-plugin-fw-welcome-modal' ),
6
+ content = $( template( {} ) ),
7
+ footer = content.find( '.yith-plugin-fw-welcome__footer' );
8
+
9
+ yith.ui.modal(
10
+ {
11
+ content : content,
12
+ footer : footer,
13
+ classes : {
14
+ wrap: 'yith-plugin-fw-welcome-modal'
15
+ },
16
+ width : '600px',
17
+ closeWhenClickingOnOverlay: false,
18
+ onClose : function () {
19
+ var location = footer.find( '.yith-plugin-fw-welcome__close' ).attr( 'href' );
20
+ if ( location ) {
21
+ window.location.href = location;
22
+ }
23
+ }
24
+ }
25
+ );
26
+
27
+ } );
plugin-fw/assets/js/welcome-modal.min.js ADDED
@@ -0,0 +1 @@
 
1
+ jQuery(function(e){"use strict";var o=e(wp.template("yith-plugin-fw-welcome-modal")({})),i=o.find(".yith-plugin-fw-welcome__footer");yith.ui.modal({content:o,footer:i,classes:{wrap:"yith-plugin-fw-welcome-modal"},width:"600px",closeWhenClickingOnOverlay:!1,onClose:function(){var e=i.find(".yith-plugin-fw-welcome__close").attr("href");e&&(window.location.href=e)}})});
plugin-fw/includes/class-yit-assets.php CHANGED
@@ -81,6 +81,7 @@ if ( ! class_exists( 'YIT_Assets' ) ) {
81
  wp_register_script( 'yith_how_to', YIT_CORE_PLUGIN_URL . '/assets/js/how-to' . $suffix . '.js', array( 'jquery' ), $this->version, true );
82
  wp_register_script( 'yith-plugin-fw-wp-pages', YIT_CORE_PLUGIN_URL . '/assets/js/wp-pages' . $suffix . '.js', array( 'jquery' ), $this->version, false );
83
  wp_register_script( 'yith-bh-onboarding', YIT_CORE_PLUGIN_URL . '/assets/js/yith-bh-onboarding' . $suffix . '.js', array( 'jquery', 'yit-plugin-panel', 'yith-plugin-fw-fields', 'jquery-blockui' ), $this->version, true );
 
84
 
85
  // Register styles.
86
  wp_register_style( 'yith-plugin-ui', YIT_CORE_PLUGIN_URL . '/assets/css/yith-plugin-ui.css', array( 'yith-plugin-fw-icon-font' ), $this->version );
@@ -91,6 +92,7 @@ if ( ! class_exists( 'YIT_Assets' ) ) {
91
  wp_register_style( 'yit-plugin-metaboxes', YIT_CORE_PLUGIN_URL . '/assets/css/metaboxes.css', array( 'yith-plugin-ui' ), $this->version );
92
  wp_register_style( 'yith-plugin-fw-fields', YIT_CORE_PLUGIN_URL . '/assets/css/yith-fields.css', array( 'yith-plugin-ui' ), $this->version );
93
  wp_register_style( 'yith-bh-onboarding', YIT_CORE_PLUGIN_URL . '/assets/css/yith-bh-onboarding.css', array( 'yith-plugin-ui', 'yith-plugin-fw-fields' ), $this->version );
 
94
 
95
  $wc_version_suffix = '';
96
  if ( function_exists( 'WC' ) || ! empty( $woocommerce ) ) {
81
  wp_register_script( 'yith_how_to', YIT_CORE_PLUGIN_URL . '/assets/js/how-to' . $suffix . '.js', array( 'jquery' ), $this->version, true );
82
  wp_register_script( 'yith-plugin-fw-wp-pages', YIT_CORE_PLUGIN_URL . '/assets/js/wp-pages' . $suffix . '.js', array( 'jquery' ), $this->version, false );
83
  wp_register_script( 'yith-bh-onboarding', YIT_CORE_PLUGIN_URL . '/assets/js/yith-bh-onboarding' . $suffix . '.js', array( 'jquery', 'yit-plugin-panel', 'yith-plugin-fw-fields', 'jquery-blockui' ), $this->version, true );
84
+ wp_register_script( 'yith-plugin-fw-welcome-modal', YIT_CORE_PLUGIN_URL . '/assets/js/welcome-modal' . $suffix . '.js', array( 'jquery', 'wp-util', 'yith-ui' ), $this->version, true );
85
 
86
  // Register styles.
87
  wp_register_style( 'yith-plugin-ui', YIT_CORE_PLUGIN_URL . '/assets/css/yith-plugin-ui.css', array( 'yith-plugin-fw-icon-font' ), $this->version );
92
  wp_register_style( 'yit-plugin-metaboxes', YIT_CORE_PLUGIN_URL . '/assets/css/metaboxes.css', array( 'yith-plugin-ui' ), $this->version );
93
  wp_register_style( 'yith-plugin-fw-fields', YIT_CORE_PLUGIN_URL . '/assets/css/yith-fields.css', array( 'yith-plugin-ui' ), $this->version );
94
  wp_register_style( 'yith-bh-onboarding', YIT_CORE_PLUGIN_URL . '/assets/css/yith-bh-onboarding.css', array( 'yith-plugin-ui', 'yith-plugin-fw-fields' ), $this->version );
95
+ wp_register_style( 'yith-plugin-fw-welcome-modal', YIT_CORE_PLUGIN_URL . '/assets/css/welcome-modal.css', array(), $this->version );
96
 
97
  $wc_version_suffix = '';
98
  if ( function_exists( 'WC' ) || ! empty( $woocommerce ) ) {
plugin-fw/includes/class-yit-plugin-panel-woocommerce.php CHANGED
@@ -84,6 +84,7 @@ if ( ! class_exists( 'YIT_Plugin_Panel_WooCommerce' ) ) {
84
 
85
  $this->maybe_init_help_tab();
86
  $this->maybe_init_premium_tab();
 
87
 
88
  add_action( 'admin_init', array( $this, 'set_default_options' ) );
89
  add_action( 'admin_menu', array( $this, 'add_setting_page' ) );
84
 
85
  $this->maybe_init_help_tab();
86
  $this->maybe_init_premium_tab();
87
+ $this->maybe_init_welcome_modals();
88
 
89
  add_action( 'admin_init', array( $this, 'set_default_options' ) );
90
  add_action( 'admin_menu', array( $this, 'add_setting_page' ) );
plugin-fw/includes/class-yit-plugin-panel.php CHANGED
@@ -105,6 +105,7 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
105
 
106
  $this->maybe_init_help_tab();
107
  $this->maybe_init_premium_tab();
 
108
 
109
  add_action( 'admin_init', array( $this, 'register_settings' ) );
110
  add_action( 'admin_menu', array( $this, 'add_setting_page' ), 20 );
@@ -207,8 +208,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
207
  /**
208
  * Init actions.
209
  *
210
- * @since 3.0.0
211
  * @author Leanza Francesco <leanzafrancesco@gmail.com>
 
212
  */
213
  protected static function init_actions() {
214
  if ( ! static::$actions_initialized ) {
@@ -273,8 +274,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
273
  *
274
  * @param string $admin_body_classes Body classes.
275
  *
276
- * @return string
277
  * @author Leanza Francesco <leanzafrancesco@gmail.com>
 
278
  * @since 3.0.0
279
  */
280
  public static function add_body_class( $admin_body_classes ) {
@@ -391,8 +392,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
391
  *
392
  * @param array $field The field to validate.
393
  *
394
- * @return array validated fields
395
  * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
 
396
  */
397
  public function options_validate( $field ) {
398
  $option_key = ! empty( $field['option_key'] ) ? $field['option_key'] : 'general';
@@ -440,8 +441,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
440
  /**
441
  * Add Premium Version upgrade menu item
442
  *
443
- * @since 2.9.13
444
  * @author Andrea Grillo <andrea.grillo@yithemes.com>
 
445
  */
446
  public function add_premium_version_upgrade_to_menu() {
447
  // Add the How To menu item only if the customer haven't a premium version enabled.
@@ -503,9 +504,9 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
503
  * @param string $tab_name Tab name.
504
  * @param array $args Nav Arguments.
505
  *
 
506
  * @return string Tab HTML
507
  *
508
- * @author Antonio La Rocca <antonio.larocca@yithemes.com>
509
  * @since 3.4.0
510
  */
511
  protected function get_tab_nav( $tab_slug, $tab_name, $args = array() ) {
@@ -776,8 +777,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
776
  /**
777
  * Checks whether current tab is special Help Tab
778
  *
779
- * @return bool Whether current tab is Help Tab
780
  * @author Antonio La Rocca <antonio.larocca@yithemes.com>
 
781
  */
782
  public function is_help_tab() {
783
  return 'help' === $this->get_current_tab();
@@ -786,8 +787,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
786
  /**
787
  * Prints special Help Tab
788
  *
789
- * @return void
790
  * @author Antonio La Rocca <antonio.larocca@yithemes.com>
 
791
  */
792
  public function print_help_tab() {
793
  $options = isset( $this->settings['help_tab'] ) ? $this->settings['help_tab'] : array();
@@ -801,11 +802,7 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
801
 
802
  // translators: 1. Plugin name.
803
  $default_title = $is_premium ? _x( 'Thank you for purchasing %s!', 'Help tab default title', 'yith-plugin-fw' ) : _x( 'Thank you for using %s!', 'Help tab default title', 'yith-plugin-fw' );
804
- $default_doc_url = '';
805
-
806
- if ( isset( $this->settings['plugin_slug'] ) ) {
807
- $default_doc_url = $is_extended ? "https://www.bluehost.com/help/article/{$this->settings['plugin_slug']}/" : "https://docs.yithemes.com/{$this->settings['plugin_slug']}/";
808
- }
809
 
810
  // parse options.
811
  $options = wp_parse_args(
@@ -880,10 +877,219 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
880
  }
881
 
882
  /**
883
- * Checks whether current tab is Premium Tab
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
884
  *
 
885
  * @return bool
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
886
  * @author Giuseppe Arcifa <giuseppe.arcifa@yithemes.com>
 
887
  * @since 3.9.0
888
  */
889
  protected function is_premium_tab() {
@@ -894,8 +1100,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
894
  * Check if panel has premium tab
895
  * (Check for premium Tab through the premium_tab param fully handled by plugin-fw)
896
  *
897
- * @return bool
898
  * @author Giuseppe Arcifa <giuseppe.arcifa@yithemes.com>
 
899
  * @since 3.9.0
900
  */
901
  protected function has_premium_tab() {
@@ -905,8 +1111,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
905
  /**
906
  * Prints Premium Tab
907
  *
908
- * @return void
909
  * @author Giuseppe Arcifa <giuseppe.arcifa@yithemes.com>
 
910
  * @since 3.9.0
911
  */
912
  protected function print_premium_tab() {
@@ -995,13 +1201,26 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
995
  * Get current tab.
996
  * Retrieve the id of tab shown, return general is the current tab is not defined.
997
  *
998
- * @return string|false
999
  * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
 
 
1000
  */
1001
  public function get_current_tab() {
1002
  // phpcs:disable WordPress.Security.NonceVerification.Recommended
1003
  $admin_tabs = array_keys( $this->settings['admin-tabs'] );
1004
 
 
 
 
 
 
 
 
 
 
 
 
 
1005
  if ( ! isset( $_GET['page'] ) || $_GET['page'] !== $this->settings['page'] ) {
1006
  return false;
1007
  }
@@ -1020,12 +1239,26 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
1020
  /**
1021
  * Get the current sub-tab.
1022
  *
1023
- * @return string The key of the sub-tab if exists, empty string otherwise.
1024
  * @author Leanza Francesco <leanzafrancesco@gmail.com>
 
1025
  * @since 3.4.0
 
1026
  */
1027
  public function get_current_sub_tab() {
1028
  // phpcs:disable WordPress.Security.NonceVerification.Recommended
 
 
 
 
 
 
 
 
 
 
 
 
 
1029
  $sub_tabs = $this->get_sub_tabs();
1030
  $sub_tab = isset( $_REQUEST['sub_tab'] ) ? sanitize_key( wp_unslash( $_REQUEST['sub_tab'] ) ) : '';
1031
 
@@ -1046,19 +1279,19 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
1046
  * for sub-tabbed tabs, it will return the current sub-tab.
1047
  * fot normal tabs, it will return the current tab.
1048
  *
1049
- * @return string the current sub-tab, if exists; the current tab otherwise.
1050
  * @author Leanza Francesco <leanzafrancesco@gmail.com>
 
1051
  * @since 3.4.0
1052
  */
1053
  public function get_current_option_key() {
1054
  $current_tab = $this->get_current_tab();
1055
  $current_sub_tab = $this->get_current_sub_tab();
1056
 
1057
- if ( ! $current_tab ) {
1058
  return false;
1059
  }
1060
 
1061
- return $current_sub_tab ? $current_sub_tab : $current_tab;
1062
  }
1063
 
1064
  /**
@@ -1100,8 +1333,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
1100
  * @param string $type The type of message (can be 'error' or 'updated').
1101
  * @param bool $echo Set to true if you want to print the message.
1102
  *
1103
- * @return string
1104
  * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
 
1105
  */
1106
  public function get_message( $message, $type = 'error', $echo = true ) {
1107
  $message = '<div id="message" class="' . esc_attr( $type ) . ' fade"><p>' . wp_kses_post( $message ) . '</p></div>';
@@ -1116,8 +1349,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
1116
  * Get Tab Path Files
1117
  * return an array with file names of tabs
1118
  *
1119
- * @return array
1120
  * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
 
1121
  */
1122
  public function get_tabs_path_files() {
1123
  $option_files_path = $this->settings['options-path'] . '/';
@@ -1141,8 +1374,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
1141
  * Get main array options
1142
  * return an array with all options defined on options-files
1143
  *
1144
- * @return array
1145
  * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
 
1146
  */
1147
  public function get_main_array_options() {
1148
  $this->maybe_init_vars();
@@ -1177,7 +1410,7 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
1177
 
1178
  if ( is_string( $_tab ) ) {
1179
  $main_array_options = $this->get_main_array_options();
1180
- $current_tab_options = isset( $main_array_options[ $_tab ] ) ? $main_array_options[ $_tab ] : array();
1181
  if ( $current_tab_options ) {
1182
  $_tab = array( $_tab => $current_tab_options );
1183
  }
@@ -1221,8 +1454,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
1221
  * Set an array with all default options
1222
  * put default options in an array
1223
  *
1224
- * @return array
1225
  * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
 
1226
  */
1227
  public function get_default_options() {
1228
  $yit_options = $this->get_main_array_options();
@@ -1248,8 +1481,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
1248
  * Get the title of the tab
1249
  * return the title of tab
1250
  *
1251
- * @return string
1252
  * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
 
1253
  */
1254
  public function get_tab_title() {
1255
  $yit_options = $this->get_main_array_options();
@@ -1272,8 +1505,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
1272
  *
1273
  * @param string $section The section.
1274
  *
1275
- * @return string
1276
  * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
 
1277
  */
1278
  public function get_section_title( $section ) {
1279
  $yit_options = $this->get_main_array_options();
@@ -1294,8 +1527,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
1294
  *
1295
  * @param string $section The section.
1296
  *
1297
- * @return string
1298
  * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
 
1299
  */
1300
  public function get_section_description( $section ) {
1301
  $yit_options = $this->get_main_array_options();
@@ -1315,8 +1548,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
1315
  * Show form when necessary
1316
  * return true if 'showform' is not defined
1317
  *
1318
- * @return bool
1319
  * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
 
1320
  */
1321
  public function is_show_form() {
1322
  $yit_options = $this->get_main_array_options();
@@ -1342,8 +1575,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
1342
  *
1343
  * @param string $name The name.
1344
  *
1345
- * @return string
1346
  * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
 
1347
  */
1348
  public function get_name_field( $name = '' ) {
1349
  return 'yit_' . $this->settings['parent'] . '_options[' . $name . ']';
@@ -1355,8 +1588,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
1355
  *
1356
  * @param string $id The ID.
1357
  *
1358
- * @return string
1359
  * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
 
1360
  */
1361
  public function get_id_field( $id ) {
1362
  return 'yit_' . $this->settings['parent'] . '_options_' . $id;
@@ -1370,8 +1603,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
1370
  *
1371
  * @param array $param The parameters.
1372
  *
1373
- * @return void
1374
  * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
 
1375
  */
1376
  public function render_field( $param ) {
1377
  if ( ! empty( $param ) && isset( $param ['option'] ) ) {
@@ -1413,8 +1646,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
1413
  * return the options from db, if the options aren't defined in the db,
1414
  * get the default options ad add the options in the db
1415
  *
1416
- * @return array
1417
  * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
 
1418
  */
1419
  public function get_options() {
1420
  $options = get_option( 'yit_' . $this->settings['parent'] . '_options' );
@@ -1464,8 +1697,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
1464
  /**
1465
  * Sort plugins by name in YITH Plugins menu.
1466
  *
1467
- * @since 3.0.0
1468
  * @author Leanza Francesco <leanzafrancesco@gmail.com>
 
1469
  */
1470
  public static function sort_plugins() {
1471
  global $submenu;
@@ -1488,9 +1721,9 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
1488
  *
1489
  * @param array $menu The menu.
1490
  *
 
1491
  * @return array
1492
  * @since 3.0.0
1493
- * @author Leanza Francesco <leanzafrancesco@gmail.com>
1494
  */
1495
  public static function add_menu_class_in_yith_plugin( $menu ) {
1496
  global $submenu;
@@ -1685,8 +1918,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
1685
  * If the panel page is a WP Page, this will redirect you to the correct page
1686
  * useful when a Post Type (Taxonomy) is the first tab of your panel, so when you open your panel it'll open the Post Type (Taxonomy) list
1687
  *
1688
- * @since 3.4.0
1689
  * @author Leanza Francesco <leanzafrancesco@gmail.com>
 
1690
  */
1691
  public function maybe_redirect_to_proper_wp_page() {
1692
  // phpcs:disable WordPress.Security.NonceVerification.Recommended
@@ -1711,8 +1944,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
1711
  * Print the Panel tabs and sub-tabs navigation in WP pages
1712
  * Important: this opens a wrapper <div> that will be closed through YIT_Plugin_Panel::print_panel_tabs_in_post_edit_page_end()
1713
  *
1714
- * @since 3.4.0
1715
  * @author Leanza Francesco <leanzafrancesco@gmail.com>
 
1716
  */
1717
  public function print_panel_tabs_in_wp_pages() {
1718
  if ( self::$panel_tabs_in_wp_pages && 'all_admin_notices' === current_action() ) {
@@ -1761,8 +1994,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
1761
  /**
1762
  * Close the wrapper opened in YIT_Plugin_Panel::print_panel_tabs_in_wp_pages()
1763
  *
1764
- * @since 3.4.0
1765
  * @author Leanza Francesco <leanzafrancesco@gmail.com>
 
1766
  */
1767
  public function print_panel_tabs_in_wp_pages_end() {
1768
  if ( self::$panel_tabs_in_wp_pages ) {
105
 
106
  $this->maybe_init_help_tab();
107
  $this->maybe_init_premium_tab();
108
+ $this->maybe_init_welcome_modals();
109
 
110
  add_action( 'admin_init', array( $this, 'register_settings' ) );
111
  add_action( 'admin_menu', array( $this, 'add_setting_page' ), 20 );
208
  /**
209
  * Init actions.
210
  *
 
211
  * @author Leanza Francesco <leanzafrancesco@gmail.com>
212
+ * @since 3.0.0
213
  */
214
  protected static function init_actions() {
215
  if ( ! static::$actions_initialized ) {
274
  *
275
  * @param string $admin_body_classes Body classes.
276
  *
 
277
  * @author Leanza Francesco <leanzafrancesco@gmail.com>
278
+ * @return string
279
  * @since 3.0.0
280
  */
281
  public static function add_body_class( $admin_body_classes ) {
392
  *
393
  * @param array $field The field to validate.
394
  *
 
395
  * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
396
+ * @return array validated fields
397
  */
398
  public function options_validate( $field ) {
399
  $option_key = ! empty( $field['option_key'] ) ? $field['option_key'] : 'general';
441
  /**
442
  * Add Premium Version upgrade menu item
443
  *
 
444
  * @author Andrea Grillo <andrea.grillo@yithemes.com>
445
+ * @since 2.9.13
446
  */
447
  public function add_premium_version_upgrade_to_menu() {
448
  // Add the How To menu item only if the customer haven't a premium version enabled.
504
  * @param string $tab_name Tab name.
505
  * @param array $args Nav Arguments.
506
  *
507
+ * @author Antonio La Rocca <antonio.larocca@yithemes.com>
508
  * @return string Tab HTML
509
  *
 
510
  * @since 3.4.0
511
  */
512
  protected function get_tab_nav( $tab_slug, $tab_name, $args = array() ) {
777
  /**
778
  * Checks whether current tab is special Help Tab
779
  *
 
780
  * @author Antonio La Rocca <antonio.larocca@yithemes.com>
781
+ * @return bool Whether current tab is Help Tab
782
  */
783
  public function is_help_tab() {
784
  return 'help' === $this->get_current_tab();
787
  /**
788
  * Prints special Help Tab
789
  *
 
790
  * @author Antonio La Rocca <antonio.larocca@yithemes.com>
791
+ * @return void
792
  */
793
  public function print_help_tab() {
794
  $options = isset( $this->settings['help_tab'] ) ? $this->settings['help_tab'] : array();
802
 
803
  // translators: 1. Plugin name.
804
  $default_title = $is_premium ? _x( 'Thank you for purchasing %s!', 'Help tab default title', 'yith-plugin-fw' ) : _x( 'Thank you for using %s!', 'Help tab default title', 'yith-plugin-fw' );
805
+ $default_doc_url = $this->get_doc_url();
 
 
 
 
806
 
807
  // parse options.
808
  $options = wp_parse_args(
877
  }
878
 
879
  /**
880
+ * Get the plugin doc URL.
881
+ *
882
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
883
+ * @return string
884
+ * @since 3.9.14
885
+ */
886
+ protected function get_doc_url() {
887
+ $plugin_slug = sanitize_title( $this->settings['plugin_slug'] ?? '' );
888
+ if ( $plugin_slug ) {
889
+ return $this->is_extended() ? "https://www.bluehost.com/help/article/{$plugin_slug}/" : "https://docs.yithemes.com/{$plugin_slug}/";
890
+ }
891
+
892
+ return '';
893
+ }
894
+
895
+ /**
896
+ * Is in panel?
897
  *
898
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
899
  * @return bool
900
+ * @since 3.9.14
901
+ */
902
+ protected function is_panel(): bool {
903
+ $is_panel = yith_plugin_fw_is_panel() && isset( $_GET['page'] ) && $_GET['page'] === $this->settings['page']; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
904
+ $is_wp_page_in_panel = isset( self::$panel_tabs_in_wp_pages, self::$panel_tabs_in_wp_pages['page'] ) && self::$panel_tabs_in_wp_pages['page'] === $this->settings['page'];
905
+
906
+ return $is_panel || $is_wp_page_in_panel;
907
+ }
908
+
909
+ /**
910
+ * Is this the first panel page?
911
+ *
912
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
913
+ * @return bool
914
+ * @since 3.9.14
915
+ */
916
+ protected function is_first_page(): bool {
917
+ $is_first_page = false;
918
+ if ( $this->is_panel() ) {
919
+ $first_tab = current( array_keys( $this->settings['admin-tabs'] ?? array() ) );
920
+ $sub_tabs = $this->get_sub_tabs( $first_tab );
921
+ $first_sub_tab = current( array_keys( $sub_tabs ) );
922
+
923
+ $tab = $this->get_current_tab();
924
+ $sub_tab = $this->get_current_sub_tab();
925
+
926
+ $is_first_page = $first_tab === $tab;
927
+
928
+ if ( $is_first_page && ! ! $first_sub_tab ) {
929
+ $is_first_page = $first_sub_tab === $sub_tab;
930
+ }
931
+ }
932
+
933
+ return $is_first_page;
934
+ }
935
+
936
+ /**
937
+ * Add welcome modals.
938
+ *
939
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
940
+ * @since 3.9.14
941
+ */
942
+ protected function maybe_init_welcome_modals() {
943
+ if ( isset( $this->settings['welcome_modals'] ) ) {
944
+ // Priority needs to be greater than 11, to correctly check if it's first page also for WP pages.
945
+ add_action( 'admin_enqueue_scripts', array( $this, 'maybe_print_welcome_modal' ), 20 );
946
+ add_action( 'admin_init', array( $this, 'handle_welcome_modal_action' ) );
947
+ }
948
+ }
949
+
950
+ /**
951
+ * Handle welcome modal actions.
952
+ *
953
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
954
+ * @since 3.9.14
955
+ */
956
+ public function handle_welcome_modal_action() {
957
+ if ( isset( $_GET['yith-plugin-fw-welcome-modal-close'], $_GET['yith-panel-page'] ) && $_GET['yith-panel-page'] === $this->settings['page'] ) {
958
+ check_admin_referer( 'welcome-modal-close' );
959
+ $modal = sanitize_key( wp_unslash( $_GET['yith-plugin-fw-welcome-modal-close'] ) );
960
+ $on_close = $this->settings['welcome_modals']['modals'][ $modal ]['on_close'] ?? $this->settings['welcome_modals']['on_close'] ?? false;
961
+
962
+ if ( $on_close && is_callable( $on_close ) ) {
963
+ call_user_func( $on_close );
964
+ }
965
+
966
+ wp_safe_redirect( add_query_arg( array( 'page' => $this->settings['page'] ), admin_url( 'admin.php' ) ) );
967
+ exit();
968
+ }
969
+ }
970
+
971
+ /**
972
+ * Print the welcome modal.
973
+ *
974
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
975
+ * @since 3.9.14
976
+ */
977
+ public function maybe_print_welcome_modal() {
978
+ $settings = $this->settings['welcome_modals'] ?? array();
979
+ $modals = $settings['modals'] ?? array();
980
+ $show_in = $settings['show_in'] ?? 'panel';
981
+
982
+ if ( ! $this->is_panel() ) {
983
+ return;
984
+ }
985
+
986
+ $is_page_to_show = true;
987
+
988
+ switch ( $show_in ) {
989
+ case 'panel':
990
+ break;
991
+ case 'first_page':
992
+ $is_page_to_show = $this->is_first_page();
993
+ break;
994
+ default:
995
+ if ( is_callable( $show_in ) ) {
996
+ $context = array(
997
+ 'is_first_page' => $this->is_first_page(),
998
+ 'tab' => $this->get_current_tab(),
999
+ 'sub_tab' => $this->get_current_sub_tab(),
1000
+ );
1001
+ $is_page_to_show = call_user_func( $show_in, $context );
1002
+ }
1003
+ break;
1004
+ }
1005
+
1006
+ if ( $is_page_to_show ) {
1007
+ foreach ( $modals as $key => $modal ) {
1008
+ $show = $modal['show'] ?? null;
1009
+ $should_be_shown = ! ! ( is_callable( $show ) ? call_user_func( $show ) : $show );
1010
+ $modal['items'] = $modal['items'] ?? array();
1011
+
1012
+ if ( $should_be_shown ) {
1013
+ $type = $modal['type'] ?? $key;
1014
+ $template = YIT_CORE_PLUGIN_TEMPLATE_PATH . '/panel/welcome-modals/' . $type . '.php';
1015
+ $close_url = wp_nonce_url(
1016
+ add_query_arg(
1017
+ array(
1018
+ 'yith-plugin-fw-welcome-modal-close' => $key,
1019
+ 'yith-panel-page' => $this->settings['page'],
1020
+ ),
1021
+ admin_url()
1022
+ ),
1023
+ 'welcome-modal-close'
1024
+ );
1025
+ $plugin = array(
1026
+ 'name' => $this->settings['plugin_name'] ?? $this->settings['page_title'] ?? '',
1027
+ 'version' => $this->settings['plugin_version'] ?? '',
1028
+ 'slug' => $this->settings['plugin_slug'] ?? '',
1029
+ 'icon' => $this->settings['plugin_icon'] ?? '',
1030
+ );
1031
+
1032
+ $plugin['version'] = preg_replace( '/\.0$/', '', $plugin['version'] ); // Make the version nicer.
1033
+
1034
+ if ( 'welcome' === $type ) {
1035
+ if ( isset( $modal['items']['documentation'] ) ) {
1036
+ $modal['items']['documentation'] = wp_parse_args(
1037
+ $modal['items']['documentation'],
1038
+ array(
1039
+ 'title' => __( 'Read the <mark>plugin documentation</mark>', 'yith-plugin-fw' ),
1040
+ 'description' => __( 'Learn what you can really do with this powerful tool', 'yith-plugin-fw' ),
1041
+ 'url' => $this->get_doc_url(),
1042
+ )
1043
+ );
1044
+ }
1045
+
1046
+ if ( isset( $modal['items']['how-to-video'], $modal['items']['how-to-video']['url'] ) ) {
1047
+ $modal['items']['how-to-video'] = wp_parse_args(
1048
+ $modal['items']['how-to-video'],
1049
+ array(
1050
+ 'title' => __( 'Watch our <mark>"First Steps" video</mark>', 'yith-plugin-fw' ),
1051
+ 'description' => __( 'See how it works before you start using it', 'yith-plugin-fw' ),
1052
+ )
1053
+ );
1054
+ }
1055
+ }
1056
+
1057
+ if ( 'update' === $type ) {
1058
+ if ( ! isset( $modal['changelog_url'] ) && $this->is_premium() && ! $this->is_extended() ) {
1059
+ $doc_url = $this->get_doc_url();
1060
+ if ( $doc_url ) {
1061
+ $modal['changelog_url'] = trailingslashit( $doc_url ) . 'changelog/changelog-premium-version/';
1062
+ }
1063
+ }
1064
+ }
1065
+
1066
+ if ( file_exists( $template ) ) {
1067
+ wp_enqueue_script( 'yith-plugin-fw-welcome-modal' );
1068
+ wp_enqueue_style( 'yith-plugin-fw-welcome-modal' );
1069
+
1070
+ // Plugin, modal and close_url variables are required in the modal templates.
1071
+ $print_template_cb = function () use ( $template, $plugin, $modal, $close_url ) {
1072
+ ?>
1073
+ <script type="text/html" id="tmpl-yith-plugin-fw-welcome-modal">
1074
+ <?php include $template; ?>
1075
+ </script>
1076
+ <?php
1077
+ };
1078
+
1079
+ add_action( 'admin_footer', $print_template_cb );
1080
+ }
1081
+
1082
+ break;
1083
+ }
1084
+ }
1085
+ }
1086
+ }
1087
+
1088
+ /**
1089
+ * Checks whether current tab is Premium Tab
1090
+ *
1091
  * @author Giuseppe Arcifa <giuseppe.arcifa@yithemes.com>
1092
+ * @return bool
1093
  * @since 3.9.0
1094
  */
1095
  protected function is_premium_tab() {
1100
  * Check if panel has premium tab
1101
  * (Check for premium Tab through the premium_tab param fully handled by plugin-fw)
1102
  *
 
1103
  * @author Giuseppe Arcifa <giuseppe.arcifa@yithemes.com>
1104
+ * @return bool
1105
  * @since 3.9.0
1106
  */
1107
  protected function has_premium_tab() {
1111
  /**
1112
  * Prints Premium Tab
1113
  *
 
1114
  * @author Giuseppe Arcifa <giuseppe.arcifa@yithemes.com>
1115
+ * @return void
1116
  * @since 3.9.0
1117
  */
1118
  protected function print_premium_tab() {
1201
  * Get current tab.
1202
  * Retrieve the id of tab shown, return general is the current tab is not defined.
1203
  *
 
1204
  * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
1205
+ * @return string|false
1206
+ * @since 3.9.14 Check for WP pages.
1207
  */
1208
  public function get_current_tab() {
1209
  // phpcs:disable WordPress.Security.NonceVerification.Recommended
1210
  $admin_tabs = array_keys( $this->settings['admin-tabs'] );
1211
 
1212
+ global $post_type, $taxonomy;
1213
+ $wp_tabs = array();
1214
+ if ( $this->is_custom_post_type_page() ) {
1215
+ $wp_tabs = $this->get_post_type_tabs( $post_type );
1216
+ } elseif ( $this->is_custom_taxonomy_page() ) {
1217
+ $wp_tabs = $this->get_taxonomy_tabs( $taxonomy );
1218
+ }
1219
+
1220
+ if ( $wp_tabs && isset( $wp_tabs['tab'] ) ) {
1221
+ return $wp_tabs['tab'];
1222
+ }
1223
+
1224
  if ( ! isset( $_GET['page'] ) || $_GET['page'] !== $this->settings['page'] ) {
1225
  return false;
1226
  }
1239
  /**
1240
  * Get the current sub-tab.
1241
  *
 
1242
  * @author Leanza Francesco <leanzafrancesco@gmail.com>
1243
+ * @return string The key of the sub-tab if exists, empty string otherwise.
1244
  * @since 3.4.0
1245
+ * @since 3.9.14 Check for WP pages.
1246
  */
1247
  public function get_current_sub_tab() {
1248
  // phpcs:disable WordPress.Security.NonceVerification.Recommended
1249
+
1250
+ global $post_type, $taxonomy;
1251
+ $wp_tabs = array();
1252
+ if ( $this->is_custom_post_type_page() ) {
1253
+ $wp_tabs = $this->get_post_type_tabs( $post_type );
1254
+ } elseif ( $this->is_custom_taxonomy_page() ) {
1255
+ $wp_tabs = $this->get_taxonomy_tabs( $taxonomy );
1256
+ }
1257
+
1258
+ if ( $wp_tabs && isset( $wp_tabs['sub_tab'] ) ) {
1259
+ return $wp_tabs['sub_tab'];
1260
+ }
1261
+
1262
  $sub_tabs = $this->get_sub_tabs();
1263
  $sub_tab = isset( $_REQUEST['sub_tab'] ) ? sanitize_key( wp_unslash( $_REQUEST['sub_tab'] ) ) : '';
1264
 
1279
  * for sub-tabbed tabs, it will return the current sub-tab.
1280
  * fot normal tabs, it will return the current tab.
1281
  *
 
1282
  * @author Leanza Francesco <leanzafrancesco@gmail.com>
1283
+ * @return string the current sub-tab, if exists; the current tab otherwise.
1284
  * @since 3.4.0
1285
  */
1286
  public function get_current_option_key() {
1287
  $current_tab = $this->get_current_tab();
1288
  $current_sub_tab = $this->get_current_sub_tab();
1289
 
1290
+ if ( ! $current_tab || $this->is_custom_post_type_page() || $this->is_custom_taxonomy_page() ) {
1291
  return false;
1292
  }
1293
 
1294
+ return ! ! $current_sub_tab ? $current_sub_tab : $current_tab;
1295
  }
1296
 
1297
  /**
1333
  * @param string $type The type of message (can be 'error' or 'updated').
1334
  * @param bool $echo Set to true if you want to print the message.
1335
  *
 
1336
  * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
1337
+ * @return string
1338
  */
1339
  public function get_message( $message, $type = 'error', $echo = true ) {
1340
  $message = '<div id="message" class="' . esc_attr( $type ) . ' fade"><p>' . wp_kses_post( $message ) . '</p></div>';
1349
  * Get Tab Path Files
1350
  * return an array with file names of tabs
1351
  *
 
1352
  * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
1353
+ * @return array
1354
  */
1355
  public function get_tabs_path_files() {
1356
  $option_files_path = $this->settings['options-path'] . '/';
1374
  * Get main array options
1375
  * return an array with all options defined on options-files
1376
  *
 
1377
  * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
1378
+ * @return array
1379
  */
1380
  public function get_main_array_options() {
1381
  $this->maybe_init_vars();
1410
 
1411
  if ( is_string( $_tab ) ) {
1412
  $main_array_options = $this->get_main_array_options();
1413
+ $current_tab_options = $main_array_options[ $_tab ] ?? array();
1414
  if ( $current_tab_options ) {
1415
  $_tab = array( $_tab => $current_tab_options );
1416
  }
1454
  * Set an array with all default options
1455
  * put default options in an array
1456
  *
 
1457
  * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
1458
+ * @return array
1459
  */
1460
  public function get_default_options() {
1461
  $yit_options = $this->get_main_array_options();
1481
  * Get the title of the tab
1482
  * return the title of tab
1483
  *
 
1484
  * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
1485
+ * @return string
1486
  */
1487
  public function get_tab_title() {
1488
  $yit_options = $this->get_main_array_options();
1505
  *
1506
  * @param string $section The section.
1507
  *
 
1508
  * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
1509
+ * @return string
1510
  */
1511
  public function get_section_title( $section ) {
1512
  $yit_options = $this->get_main_array_options();
1527
  *
1528
  * @param string $section The section.
1529
  *
 
1530
  * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
1531
+ * @return string
1532
  */
1533
  public function get_section_description( $section ) {
1534
  $yit_options = $this->get_main_array_options();
1548
  * Show form when necessary
1549
  * return true if 'showform' is not defined
1550
  *
 
1551
  * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
1552
+ * @return bool
1553
  */
1554
  public function is_show_form() {
1555
  $yit_options = $this->get_main_array_options();
1575
  *
1576
  * @param string $name The name.
1577
  *
 
1578
  * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
1579
+ * @return string
1580
  */
1581
  public function get_name_field( $name = '' ) {
1582
  return 'yit_' . $this->settings['parent'] . '_options[' . $name . ']';
1588
  *
1589
  * @param string $id The ID.
1590
  *
 
1591
  * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
1592
+ * @return string
1593
  */
1594
  public function get_id_field( $id ) {
1595
  return 'yit_' . $this->settings['parent'] . '_options_' . $id;
1603
  *
1604
  * @param array $param The parameters.
1605
  *
 
1606
  * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
1607
+ * @return void
1608
  */
1609
  public function render_field( $param ) {
1610
  if ( ! empty( $param ) && isset( $param ['option'] ) ) {
1646
  * return the options from db, if the options aren't defined in the db,
1647
  * get the default options ad add the options in the db
1648
  *
 
1649
  * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
1650
+ * @return array
1651
  */
1652
  public function get_options() {
1653
  $options = get_option( 'yit_' . $this->settings['parent'] . '_options' );
1697
  /**
1698
  * Sort plugins by name in YITH Plugins menu.
1699
  *
 
1700
  * @author Leanza Francesco <leanzafrancesco@gmail.com>
1701
+ * @since 3.0.0
1702
  */
1703
  public static function sort_plugins() {
1704
  global $submenu;
1721
  *
1722
  * @param array $menu The menu.
1723
  *
1724
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
1725
  * @return array
1726
  * @since 3.0.0
 
1727
  */
1728
  public static function add_menu_class_in_yith_plugin( $menu ) {
1729
  global $submenu;
1918
  * If the panel page is a WP Page, this will redirect you to the correct page
1919
  * useful when a Post Type (Taxonomy) is the first tab of your panel, so when you open your panel it'll open the Post Type (Taxonomy) list
1920
  *
 
1921
  * @author Leanza Francesco <leanzafrancesco@gmail.com>
1922
+ * @since 3.4.0
1923
  */
1924
  public function maybe_redirect_to_proper_wp_page() {
1925
  // phpcs:disable WordPress.Security.NonceVerification.Recommended
1944
  * Print the Panel tabs and sub-tabs navigation in WP pages
1945
  * Important: this opens a wrapper <div> that will be closed through YIT_Plugin_Panel::print_panel_tabs_in_post_edit_page_end()
1946
  *
 
1947
  * @author Leanza Francesco <leanzafrancesco@gmail.com>
1948
+ * @since 3.4.0
1949
  */
1950
  public function print_panel_tabs_in_wp_pages() {
1951
  if ( self::$panel_tabs_in_wp_pages && 'all_admin_notices' === current_action() ) {
1994
  /**
1995
  * Close the wrapper opened in YIT_Plugin_Panel::print_panel_tabs_in_wp_pages()
1996
  *
 
1997
  * @author Leanza Francesco <leanzafrancesco@gmail.com>
1998
+ * @since 3.4.0
1999
  */
2000
  public function print_panel_tabs_in_wp_pages_end() {
2001
  if ( self::$panel_tabs_in_wp_pages ) {
plugin-fw/includes/class-yith-post-type-admin.php CHANGED
@@ -427,7 +427,7 @@ if ( ! class_exists( 'YITH_Post_Type_Admin' ) ) {
427
  }
428
 
429
  /**
430
- * Disable Months dropdown for Bookings
431
  *
432
  * @param bool $disable Set true to disable.
433
  * @param string $post_type The post type.
427
  }
428
 
429
  /**
430
+ * Disable Months dropdown
431
  *
432
  * @param bool $disable Set true to disable.
433
  * @param string $post_type The post type.
plugin-fw/init.php CHANGED
@@ -1,13 +1,13 @@
1
  <?php
2
  /**
3
  * Framework Name: YIT Plugin Framework
4
- * Version: 3.9.13
5
  * Author: YITH
6
  * Text Domain: yith-plugin-fw
7
  * Domain Path: /languages/
8
  *
9
  * @author YITH
10
- * @version 3.9.13
11
  * @package YITH\PluginFramework
12
  */
13
 
1
  <?php
2
  /**
3
  * Framework Name: YIT Plugin Framework
4
+ * Version: 3.9.15
5
  * Author: YITH
6
  * Text Domain: yith-plugin-fw
7
  * Domain Path: /languages/
8
  *
9
  * @author YITH
10
+ * @version 3.9.15
11
  * @package YITH\PluginFramework
12
  */
13
 
plugin-fw/languages/yith-plugin-fw-el.mo CHANGED
Binary file
plugin-fw/languages/yith-plugin-fw-el.po CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: YITH Framework\n"
6
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
7
- "POT-Creation-Date: 2022-08-02 12:02:23+00:00\n"
8
  "PO-Revision-Date: 2021-02-11 18:07:46+0000\n"
9
  "Language: el_GR\n"
10
  "MIME-Version: 1.0\n"
@@ -13,56 +13,56 @@ msgstr ""
13
  "Plural-Forms: nplurals=2; plural=n != 1;\n"
14
  "X-Generator: GlotPress/3.0.0-alpha.2\n"
15
 
16
- #: includes/class-yit-assets.php:146 yit-functions.php:2006
17
  msgid "Confirm trash"
18
  msgstr ""
19
 
20
- #: includes/class-yit-assets.php:147
21
  msgid "Are you sure you want to trash the selected items?"
22
  msgstr ""
23
 
24
- #: includes/class-yit-assets.php:149 includes/class-yit-assets.php:153
25
  #: templates/sysinfo/tabs/main.php:42 templates/sysinfo/tabs/main.php:50
26
  #: yit-functions.php:2008 yit-functions.php:2026
27
  msgid "No"
28
  msgstr "Όχι"
29
 
30
- #: includes/class-yit-assets.php:150 yit-functions.php:2024
31
  #: yit-functions.php:2152
32
  msgid "Confirm delete"
33
  msgstr ""
34
 
35
- #: includes/class-yit-assets.php:151
36
  msgid "Are you sure you want to delete the selected items?"
37
  msgstr ""
38
 
39
- #: includes/class-yit-assets.php:151 yit-functions.php:1940
40
  #: yit-functions.php:2100
41
  msgid ""
42
  "This action cannot be undone and you will not be able to recover this data."
43
  msgstr ""
44
 
45
- #: includes/class-yit-assets.php:172
46
  msgid "Clear"
47
  msgstr "Καθαρισμός"
48
 
49
- #: includes/class-yit-assets.php:173
50
  msgid "Clear color"
51
  msgstr "Καθαρισμός χρώματος"
52
 
53
- #: includes/class-yit-assets.php:174
54
  msgid "Default"
55
  msgstr "Προεπιλεγμένο"
56
 
57
- #: includes/class-yit-assets.php:175
58
  msgid "Select default color"
59
  msgstr "Επιλογή προεπιλεγμένου χρώματος"
60
 
61
- #: includes/class-yit-assets.php:176
62
  msgid "Select Color"
63
  msgstr "Επιλογή Χρώματος"
64
 
65
- #: includes/class-yit-assets.php:177
66
  msgid "Color value"
67
  msgstr "Αξία χρώματος"
68
 
@@ -70,7 +70,7 @@ msgstr "Αξία χρώματος"
70
  msgid "There was an error with your request; please try again later."
71
  msgstr ""
72
 
73
- #: includes/class-yit-plugin-panel-woocommerce.php:430
74
  msgid "The changes you have made will be lost if you leave this page."
75
  msgstr ""
76
  "Οι αλλαγές που έχετε δημιουργήσει θα χαθούν αν αφήσετε αυτήν την σελίδα."
@@ -83,17 +83,17 @@ msgstr "Ρυθμίσεις Προσθέτου"
83
  msgid "Settings"
84
  msgstr "Ρυθμίσεις"
85
 
86
- #: includes/class-yit-plugin-panel.php:455
87
- #: includes/class-yit-plugin-panel.php:458
88
  msgid "How to install premium version"
89
  msgstr "Πώς να εγκαταστήσετε την προηγμένη έκδοση"
90
 
91
- #: includes/class-yit-plugin-panel.php:655
92
  #: includes/class-yit-plugin-subpanel.php:133
93
  msgid "Save Changes"
94
  msgstr "Αποθήκευση Αλλαγών"
95
 
96
- #: includes/class-yit-plugin-panel.php:663
97
  #: includes/class-yit-plugin-subpanel.php:140
98
  #: templates/panel/woocommerce/woocommerce-form.php:15
99
  msgid ""
@@ -102,73 +102,89 @@ msgstr ""
102
  "Αν συνεχίσετε με αυτή την ενέργεια θα επαναφέρετε όλες τις επιλογές στη "
103
  "σελίδα."
104
 
105
- #: includes/class-yit-plugin-panel.php:663
106
  #: includes/class-yit-plugin-subpanel.php:140
107
  #: templates/panel/woocommerce/woocommerce-form.php:15
108
  msgid "Are you sure?"
109
  msgstr "Είστε σίγουρος;"
110
 
111
- #: includes/class-yit-plugin-panel.php:667
112
  #: includes/class-yit-plugin-subpanel.php:143
113
  msgid "Reset to default"
114
  msgstr "Επαναφορά σε προεπιλεγμένο"
115
 
116
- #: includes/class-yit-plugin-panel.php:1074
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
117
  msgid ""
118
  "The element you have entered already exists. Please, enter another name."
119
  msgstr "Το στοιχείο που εισάγατε υπάρχει ήδη. Παρακαλώ, εισάγετε άλλο όνομα."
120
 
121
- #: includes/class-yit-plugin-panel.php:1075
122
  msgid "Settings saved"
123
  msgstr "Ρυθμίσεις αποθηκεύτηκαν"
124
 
125
- #: includes/class-yit-plugin-panel.php:1076
126
  msgid "Settings reset"
127
  msgstr "Επαναφορά ρυθμίσεων"
128
 
129
- #: includes/class-yit-plugin-panel.php:1077
130
  msgid "Element deleted correctly."
131
  msgstr "Το στοιχείο διαγράφηκε επιτυχώς."
132
 
133
- #: includes/class-yit-plugin-panel.php:1078
134
- #: includes/class-yit-plugin-panel.php:1079
135
  msgid "Element updated correctly."
136
  msgstr "Το στοιχείο αναβαθμίστηκε επιτυχώς."
137
 
138
- #: includes/class-yit-plugin-panel.php:1080
139
  msgid "Database imported correctly."
140
  msgstr "Επιτυχής εισαγωγή βάσης δεδομένων."
141
 
142
- #: includes/class-yit-plugin-panel.php:1081
143
  msgid "An error has occurred during import. Please try again."
144
  msgstr "Παρουσιάστηκε σφάλμα κατά την εισαγωγή. Παρακαλώ προσπαθήστε ξανά."
145
 
146
- #: includes/class-yit-plugin-panel.php:1082
147
  msgid "The added file is not valid."
148
  msgstr "Το προστιθέμενο αρχείο δεν είναι έγκυρο."
149
 
150
- #: includes/class-yit-plugin-panel.php:1083
151
  msgid "Sorry, import is disabled."
152
  msgstr "Συγνώμη, η εισαγωγή είναι απενεργοποιημένη."
153
 
154
- #: includes/class-yit-plugin-panel.php:1084
155
  msgid "Sorting successful."
156
  msgstr "Διαλογή επιτυχής."
157
 
158
- #: includes/class-yit-plugin-panel.php:1573
159
  msgid "We need your support"
160
  msgstr "Χρειαζόμαστε την υποστήριξή σας"
161
 
162
- #: includes/class-yit-plugin-panel.php:1574
163
  msgid "to keep updating and improving the plugin. Please,"
164
  msgstr ""
165
  "για να διατηρήσετε την ενημέρωση και τη βελτίωση του πρόσθετου. Παρακαλώ,"
166
 
167
- #: includes/class-yit-plugin-panel.php:1576
168
  msgid "help us by leaving a good review"
169
  msgstr ""
170
 
171
- #: includes/class-yit-plugin-panel.php:1577
172
  msgid ":) Thanks!"
173
  msgstr ":) Ευχαριστώ!"
174
 
@@ -536,6 +552,34 @@ msgstr "Ανέβασμα"
536
  msgid "Reset"
537
  msgstr "Επαναφορά"
538
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
539
  #: templates/panel/woocommerce/woocommerce-form.php:29
540
  #: templates/panel/woocommerce/woocommerce-form.php:33
541
  msgid "Save Options"
@@ -716,50 +760,50 @@ msgctxt "[gutenberg]: Category Name"
716
  msgid "YITH"
717
  msgstr "YITH"
718
 
719
- #: includes/class-yit-assets.php:134
720
  msgctxt "Button text"
721
  msgid "Confirm"
722
  msgstr ""
723
 
724
- #: includes/class-yit-assets.php:135
725
  msgctxt "Button text"
726
  msgid "Cancel"
727
  msgstr ""
728
 
729
- #: includes/class-yit-assets.php:148 yit-functions.php:2009
730
  msgctxt "Trash confirmation action"
731
  msgid "Yes, move to trash"
732
  msgstr ""
733
 
734
- #: includes/class-yit-assets.php:152 yit-functions.php:2027
735
  #: yit-functions.php:2154
736
  msgctxt "Delete confirmation action"
737
  msgid "Yes, delete"
738
  msgstr ""
739
 
740
  #. translators: 1. Plugin name.
741
- #: includes/class-yit-plugin-panel.php:803
742
  msgctxt "Help tab default title"
743
  msgid "Thank you for purchasing %s!"
744
  msgstr ""
745
 
746
- #: includes/class-yit-plugin-panel.php:803
747
  msgctxt "Help tab default title"
748
  msgid "Thank you for using %s!"
749
  msgstr ""
750
 
751
- #: includes/class-yit-plugin-panel.php:815
752
  msgctxt "Help tab default description"
753
  msgid ""
754
  "We want to help you enjoy a wonderful experience with all of our products."
755
  msgstr ""
756
 
757
- #: includes/class-yit-plugin-panel.php:866
758
  msgctxt "Premium tab name"
759
  msgid "Get premium"
760
  msgstr ""
761
 
762
- #: includes/class-yit-plugin-panel.php:878
763
  msgctxt "Help tab name"
764
  msgid "Help"
765
  msgstr ""
4
  msgstr ""
5
  "Project-Id-Version: YITH Framework\n"
6
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
7
+ "POT-Creation-Date: 2022-08-10 12:46:35+00:00\n"
8
  "PO-Revision-Date: 2021-02-11 18:07:46+0000\n"
9
  "Language: el_GR\n"
10
  "MIME-Version: 1.0\n"
13
  "Plural-Forms: nplurals=2; plural=n != 1;\n"
14
  "X-Generator: GlotPress/3.0.0-alpha.2\n"
15
 
16
+ #: includes/class-yit-assets.php:148 yit-functions.php:2006
17
  msgid "Confirm trash"
18
  msgstr ""
19
 
20
+ #: includes/class-yit-assets.php:149
21
  msgid "Are you sure you want to trash the selected items?"
22
  msgstr ""
23
 
24
+ #: includes/class-yit-assets.php:151 includes/class-yit-assets.php:155
25
  #: templates/sysinfo/tabs/main.php:42 templates/sysinfo/tabs/main.php:50
26
  #: yit-functions.php:2008 yit-functions.php:2026
27
  msgid "No"
28
  msgstr "Όχι"
29
 
30
+ #: includes/class-yit-assets.php:152 yit-functions.php:2024
31
  #: yit-functions.php:2152
32
  msgid "Confirm delete"
33
  msgstr ""
34
 
35
+ #: includes/class-yit-assets.php:153
36
  msgid "Are you sure you want to delete the selected items?"
37
  msgstr ""
38
 
39
+ #: includes/class-yit-assets.php:153 yit-functions.php:1940
40
  #: yit-functions.php:2100
41
  msgid ""
42
  "This action cannot be undone and you will not be able to recover this data."
43
  msgstr ""
44
 
45
+ #: includes/class-yit-assets.php:174
46
  msgid "Clear"
47
  msgstr "Καθαρισμός"
48
 
49
+ #: includes/class-yit-assets.php:175
50
  msgid "Clear color"
51
  msgstr "Καθαρισμός χρώματος"
52
 
53
+ #: includes/class-yit-assets.php:176
54
  msgid "Default"
55
  msgstr "Προεπιλεγμένο"
56
 
57
+ #: includes/class-yit-assets.php:177
58
  msgid "Select default color"
59
  msgstr "Επιλογή προεπιλεγμένου χρώματος"
60
 
61
+ #: includes/class-yit-assets.php:178
62
  msgid "Select Color"
63
  msgstr "Επιλογή Χρώματος"
64
 
65
+ #: includes/class-yit-assets.php:179
66
  msgid "Color value"
67
  msgstr "Αξία χρώματος"
68
 
70
  msgid "There was an error with your request; please try again later."
71
  msgstr ""
72
 
73
+ #: includes/class-yit-plugin-panel-woocommerce.php:437
74
  msgid "The changes you have made will be lost if you leave this page."
75
  msgstr ""
76
  "Οι αλλαγές που έχετε δημιουργήσει θα χαθούν αν αφήσετε αυτήν την σελίδα."
83
  msgid "Settings"
84
  msgstr "Ρυθμίσεις"
85
 
86
+ #: includes/class-yit-plugin-panel.php:456
87
+ #: includes/class-yit-plugin-panel.php:459
88
  msgid "How to install premium version"
89
  msgstr "Πώς να εγκαταστήσετε την προηγμένη έκδοση"
90
 
91
+ #: includes/class-yit-plugin-panel.php:656
92
  #: includes/class-yit-plugin-subpanel.php:133
93
  msgid "Save Changes"
94
  msgstr "Αποθήκευση Αλλαγών"
95
 
96
+ #: includes/class-yit-plugin-panel.php:664
97
  #: includes/class-yit-plugin-subpanel.php:140
98
  #: templates/panel/woocommerce/woocommerce-form.php:15
99
  msgid ""
102
  "Αν συνεχίσετε με αυτή την ενέργεια θα επαναφέρετε όλες τις επιλογές στη "
103
  "σελίδα."
104
 
105
+ #: includes/class-yit-plugin-panel.php:664
106
  #: includes/class-yit-plugin-subpanel.php:140
107
  #: templates/panel/woocommerce/woocommerce-form.php:15
108
  msgid "Are you sure?"
109
  msgstr "Είστε σίγουρος;"
110
 
111
+ #: includes/class-yit-plugin-panel.php:668
112
  #: includes/class-yit-plugin-subpanel.php:143
113
  msgid "Reset to default"
114
  msgstr "Επαναφορά σε προεπιλεγμένο"
115
 
116
+ #: includes/class-yit-plugin-panel.php:1039
117
+ msgid "Read the <mark>plugin documentation</mark>"
118
+ msgstr ""
119
+
120
+ #: includes/class-yit-plugin-panel.php:1040
121
+ msgid "Learn what you can really do with this powerful tool"
122
+ msgstr ""
123
+
124
+ #: includes/class-yit-plugin-panel.php:1050
125
+ msgid "Watch our <mark>\"First Steps\" video</mark>"
126
+ msgstr ""
127
+
128
+ #: includes/class-yit-plugin-panel.php:1051
129
+ msgid "See how it works before you start using it"
130
+ msgstr ""
131
+
132
+ #: includes/class-yit-plugin-panel.php:1307
133
  msgid ""
134
  "The element you have entered already exists. Please, enter another name."
135
  msgstr "Το στοιχείο που εισάγατε υπάρχει ήδη. Παρακαλώ, εισάγετε άλλο όνομα."
136
 
137
+ #: includes/class-yit-plugin-panel.php:1308
138
  msgid "Settings saved"
139
  msgstr "Ρυθμίσεις αποθηκεύτηκαν"
140
 
141
+ #: includes/class-yit-plugin-panel.php:1309
142
  msgid "Settings reset"
143
  msgstr "Επαναφορά ρυθμίσεων"
144
 
145
+ #: includes/class-yit-plugin-panel.php:1310
146
  msgid "Element deleted correctly."
147
  msgstr "Το στοιχείο διαγράφηκε επιτυχώς."
148
 
149
+ #: includes/class-yit-plugin-panel.php:1311
150
+ #: includes/class-yit-plugin-panel.php:1312
151
  msgid "Element updated correctly."
152
  msgstr "Το στοιχείο αναβαθμίστηκε επιτυχώς."
153
 
154
+ #: includes/class-yit-plugin-panel.php:1313
155
  msgid "Database imported correctly."
156
  msgstr "Επιτυχής εισαγωγή βάσης δεδομένων."
157
 
158
+ #: includes/class-yit-plugin-panel.php:1314
159
  msgid "An error has occurred during import. Please try again."
160
  msgstr "Παρουσιάστηκε σφάλμα κατά την εισαγωγή. Παρακαλώ προσπαθήστε ξανά."
161
 
162
+ #: includes/class-yit-plugin-panel.php:1315
163
  msgid "The added file is not valid."
164
  msgstr "Το προστιθέμενο αρχείο δεν είναι έγκυρο."
165
 
166
+ #: includes/class-yit-plugin-panel.php:1316
167
  msgid "Sorry, import is disabled."
168
  msgstr "Συγνώμη, η εισαγωγή είναι απενεργοποιημένη."
169
 
170
+ #: includes/class-yit-plugin-panel.php:1317
171
  msgid "Sorting successful."
172
  msgstr "Διαλογή επιτυχής."
173
 
174
+ #: includes/class-yit-plugin-panel.php:1806
175
  msgid "We need your support"
176
  msgstr "Χρειαζόμαστε την υποστήριξή σας"
177
 
178
+ #: includes/class-yit-plugin-panel.php:1807
179
  msgid "to keep updating and improving the plugin. Please,"
180
  msgstr ""
181
  "για να διατηρήσετε την ενημέρωση και τη βελτίωση του πρόσθετου. Παρακαλώ,"
182
 
183
+ #: includes/class-yit-plugin-panel.php:1809
184
  msgid "help us by leaving a good review"
185
  msgstr ""
186
 
187
+ #: includes/class-yit-plugin-panel.php:1810
188
  msgid ":) Thanks!"
189
  msgstr ":) Ευχαριστώ!"
190
 
552
  msgid "Reset"
553
  msgstr "Επαναφορά"
554
 
555
+ #. translators: %s is the plugin version.
556
+ #: templates/panel/welcome-modals/update.php:34
557
+ msgid "is successfully updated to version %s."
558
+ msgstr ""
559
+
560
+ #. translators: %s is the plugin version.
561
+ #: templates/panel/welcome-modals/update.php:44
562
+ msgid "What's new in version %s"
563
+ msgstr ""
564
+
565
+ #: templates/panel/welcome-modals/update.php:49
566
+ msgid "Check the changelog >"
567
+ msgstr ""
568
+
569
+ #: templates/panel/welcome-modals/update.php:64
570
+ #: templates/panel/welcome-modals/welcome.php:60
571
+ msgid "Got it, close this window"
572
+ msgstr ""
573
+
574
+ #: templates/panel/welcome-modals/welcome.php:30
575
+ msgid "Thank you for using our plugin"
576
+ msgstr ""
577
+
578
+ #. translators: %s is the number of steps.
579
+ #: templates/panel/welcome-modals/welcome.php:45
580
+ msgid "Start with these %s steps:"
581
+ msgstr ""
582
+
583
  #: templates/panel/woocommerce/woocommerce-form.php:29
584
  #: templates/panel/woocommerce/woocommerce-form.php:33
585
  msgid "Save Options"
760
  msgid "YITH"
761
  msgstr "YITH"
762
 
763
+ #: includes/class-yit-assets.php:136
764
  msgctxt "Button text"
765
  msgid "Confirm"
766
  msgstr ""
767
 
768
+ #: includes/class-yit-assets.php:137
769
  msgctxt "Button text"
770
  msgid "Cancel"
771
  msgstr ""
772
 
773
+ #: includes/class-yit-assets.php:150 yit-functions.php:2009
774
  msgctxt "Trash confirmation action"
775
  msgid "Yes, move to trash"
776
  msgstr ""
777
 
778
+ #: includes/class-yit-assets.php:154 yit-functions.php:2027
779
  #: yit-functions.php:2154
780
  msgctxt "Delete confirmation action"
781
  msgid "Yes, delete"
782
  msgstr ""
783
 
784
  #. translators: 1. Plugin name.
785
+ #: includes/class-yit-plugin-panel.php:804
786
  msgctxt "Help tab default title"
787
  msgid "Thank you for purchasing %s!"
788
  msgstr ""
789
 
790
+ #: includes/class-yit-plugin-panel.php:804
791
  msgctxt "Help tab default title"
792
  msgid "Thank you for using %s!"
793
  msgstr ""
794
 
795
+ #: includes/class-yit-plugin-panel.php:812
796
  msgctxt "Help tab default description"
797
  msgid ""
798
  "We want to help you enjoy a wonderful experience with all of our products."
799
  msgstr ""
800
 
801
+ #: includes/class-yit-plugin-panel.php:863
802
  msgctxt "Premium tab name"
803
  msgid "Get premium"
804
  msgstr ""
805
 
806
+ #: includes/class-yit-plugin-panel.php:875
807
  msgctxt "Help tab name"
808
  msgid "Help"
809
  msgstr ""
plugin-fw/languages/yith-plugin-fw-es_ES.mo CHANGED
Binary file
plugin-fw/languages/yith-plugin-fw-es_ES.po CHANGED
@@ -4,8 +4,8 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: YITH Framework\n"
6
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
7
- "POT-Creation-Date: 2022-08-02 12:02:23+00:00\n"
8
- "PO-Revision-Date: 2022-07-06 06:44:36+0000\n"
9
  "Language: es\n"
10
  "MIME-Version: 1.0\n"
11
  "Content-Type: text/plain; charset=UTF-8\n"
@@ -13,57 +13,57 @@ msgstr ""
13
  "Plural-Forms: nplurals=2; plural=n != 1;\n"
14
  "X-Generator: GlotPress/3.0.0-alpha.2\n"
15
 
16
- #: includes/class-yit-assets.php:146 yit-functions.php:2006
17
  msgid "Confirm trash"
18
  msgstr "Confirmar el traslado a la papelera"
19
 
20
- #: includes/class-yit-assets.php:147
21
  msgid "Are you sure you want to trash the selected items?"
22
  msgstr ""
23
  "¿Estás seguro de que quieres mover a la papelera los elementos seleccionados?"
24
 
25
- #: includes/class-yit-assets.php:149 includes/class-yit-assets.php:153
26
  #: templates/sysinfo/tabs/main.php:42 templates/sysinfo/tabs/main.php:50
27
  #: yit-functions.php:2008 yit-functions.php:2026
28
  msgid "No"
29
  msgstr "No"
30
 
31
- #: includes/class-yit-assets.php:150 yit-functions.php:2024
32
  #: yit-functions.php:2152
33
  msgid "Confirm delete"
34
  msgstr "Confirmar el borrado"
35
 
36
- #: includes/class-yit-assets.php:151
37
  msgid "Are you sure you want to delete the selected items?"
38
  msgstr "¿Estás seguro de que quieres borrar los elementos seleccionados?"
39
 
40
- #: includes/class-yit-assets.php:151 yit-functions.php:1940
41
  #: yit-functions.php:2100
42
  msgid ""
43
  "This action cannot be undone and you will not be able to recover this data."
44
  msgstr "Esta acción no se puede revertir y no podrá recuperar estos datos."
45
 
46
- #: includes/class-yit-assets.php:172
47
  msgid "Clear"
48
  msgstr "Borrar"
49
 
50
- #: includes/class-yit-assets.php:173
51
  msgid "Clear color"
52
  msgstr "Borrar color"
53
 
54
- #: includes/class-yit-assets.php:174
55
  msgid "Default"
56
  msgstr "Predeterminado"
57
 
58
- #: includes/class-yit-assets.php:175
59
  msgid "Select default color"
60
  msgstr "Seleccionar color predeterminado"
61
 
62
- #: includes/class-yit-assets.php:176
63
  msgid "Select Color"
64
  msgstr "Seleccionar color"
65
 
66
- #: includes/class-yit-assets.php:177
67
  msgid "Color value"
68
  msgstr "Valor del color"
69
 
@@ -72,7 +72,7 @@ msgid "There was an error with your request; please try again later."
72
  msgstr ""
73
  "Se ha producido un error en tu solicitud; inténtalo de nuevo más tarde."
74
 
75
- #: includes/class-yit-plugin-panel-woocommerce.php:430
76
  msgid "The changes you have made will be lost if you leave this page."
77
  msgstr "Los cambios que has hecho se perderán si abandonas esta página."
78
 
@@ -84,17 +84,17 @@ msgstr "Ajustes del plugin"
84
  msgid "Settings"
85
  msgstr "Ajustes"
86
 
87
- #: includes/class-yit-plugin-panel.php:455
88
- #: includes/class-yit-plugin-panel.php:458
89
  msgid "How to install premium version"
90
  msgstr "Cómo instalar la versión premium"
91
 
92
- #: includes/class-yit-plugin-panel.php:655
93
  #: includes/class-yit-plugin-subpanel.php:133
94
  msgid "Save Changes"
95
  msgstr "Guardar cambios"
96
 
97
- #: includes/class-yit-plugin-panel.php:663
98
  #: includes/class-yit-plugin-subpanel.php:140
99
  #: templates/panel/woocommerce/woocommerce-form.php:15
100
  msgid ""
@@ -103,74 +103,90 @@ msgstr ""
103
  "Si continúas con esta acción, restablecerás todas las opciones en esta "
104
  "página."
105
 
106
- #: includes/class-yit-plugin-panel.php:663
107
  #: includes/class-yit-plugin-subpanel.php:140
108
  #: templates/panel/woocommerce/woocommerce-form.php:15
109
  msgid "Are you sure?"
110
  msgstr "¿Estás seguro?"
111
 
112
- #: includes/class-yit-plugin-panel.php:667
113
  #: includes/class-yit-plugin-subpanel.php:143
114
  msgid "Reset to default"
115
  msgstr "Restablecer valores predeterminados"
116
 
117
- #: includes/class-yit-plugin-panel.php:1074
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
118
  msgid ""
119
  "The element you have entered already exists. Please, enter another name."
120
  msgstr ""
121
  "El elemento que has introducido ya existe. Por favor, introduce otro nombre."
122
 
123
- #: includes/class-yit-plugin-panel.php:1075
124
  msgid "Settings saved"
125
  msgstr "Ajustes guardados"
126
 
127
- #: includes/class-yit-plugin-panel.php:1076
128
  msgid "Settings reset"
129
  msgstr "Restablecer ajustes"
130
 
131
- #: includes/class-yit-plugin-panel.php:1077
132
  msgid "Element deleted correctly."
133
  msgstr "Elemento eliminado correctamente."
134
 
135
- #: includes/class-yit-plugin-panel.php:1078
136
- #: includes/class-yit-plugin-panel.php:1079
137
  msgid "Element updated correctly."
138
  msgstr "Elemento actualizado correctamente."
139
 
140
- #: includes/class-yit-plugin-panel.php:1080
141
  msgid "Database imported correctly."
142
  msgstr "Base de datos importada correctamente."
143
 
144
- #: includes/class-yit-plugin-panel.php:1081
145
  msgid "An error has occurred during import. Please try again."
146
  msgstr ""
147
  "Ha ocurrido un error durante la importación. Por favor, inténtalo de nuevo."
148
 
149
- #: includes/class-yit-plugin-panel.php:1082
150
  msgid "The added file is not valid."
151
  msgstr "El archivo añadido no es válido."
152
 
153
- #: includes/class-yit-plugin-panel.php:1083
154
  msgid "Sorry, import is disabled."
155
  msgstr "Lo siento, la importación está desactivada."
156
 
157
- #: includes/class-yit-plugin-panel.php:1084
158
  msgid "Sorting successful."
159
  msgstr "Clasificación realizada con éxito"
160
 
161
- #: includes/class-yit-plugin-panel.php:1573
162
  msgid "We need your support"
163
  msgstr "Necesitamos tu apoyo"
164
 
165
- #: includes/class-yit-plugin-panel.php:1574
166
  msgid "to keep updating and improving the plugin. Please,"
167
  msgstr "para que podamos seguir actualizando y mejorando el plugin. Por favor,"
168
 
169
- #: includes/class-yit-plugin-panel.php:1576
170
  msgid "help us by leaving a good review"
171
  msgstr "ayúdanos dejando una buena valoración"
172
 
173
- #: includes/class-yit-plugin-panel.php:1577
174
  msgid ":) Thanks!"
175
  msgstr ":) ¡Gracias!"
176
 
@@ -213,7 +229,7 @@ msgstr ""
213
 
214
  #: includes/class-yith-bh-onboarding.php:85
215
  msgid "It is not possible save the options"
216
- msgstr ""
217
 
218
  #: includes/class-yith-dashboard.php:35
219
  msgid "YITH Latest Updates"
@@ -416,7 +432,7 @@ msgstr ""
416
 
417
  #: templates/bh-onboarding/onboarding-tabs.php:63
418
  msgid "Save"
419
- msgstr ""
420
 
421
  #: templates/fields/ajax-customers.php:41
422
  msgid "Search for a customer..."
@@ -545,6 +561,34 @@ msgstr "Subir"
545
  msgid "Reset"
546
  msgstr "Restablecer"
547
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
548
  #: templates/panel/woocommerce/woocommerce-form.php:29
549
  #: templates/panel/woocommerce/woocommerce-form.php:33
550
  msgid "Save Options"
@@ -728,40 +772,39 @@ msgctxt "[gutenberg]: Category Name"
728
  msgid "YITH"
729
  msgstr "YITH"
730
 
731
- #: includes/class-yit-assets.php:134
732
  msgctxt "Button text"
733
  msgid "Confirm"
734
  msgstr "Confirmar"
735
 
736
- #: includes/class-yit-assets.php:135
737
  msgctxt "Button text"
738
  msgid "Cancel"
739
  msgstr "Cancelar"
740
 
741
- #: includes/class-yit-assets.php:148 yit-functions.php:2009
742
  msgctxt "Trash confirmation action"
743
  msgid "Yes, move to trash"
744
  msgstr "Sí, mover a la papelera"
745
 
746
- #: includes/class-yit-assets.php:152 yit-functions.php:2027
747
  #: yit-functions.php:2154
748
  msgctxt "Delete confirmation action"
749
  msgid "Yes, delete"
750
  msgstr "Si, borrar"
751
 
752
  #. translators: 1. Plugin name.
753
- #: includes/class-yit-plugin-panel.php:803
754
  msgctxt "Help tab default title"
755
  msgid "Thank you for purchasing %s!"
756
  msgstr "¡Gracias por comprar %s!"
757