HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers68/resortouddorpduin.nl/wwwroot/public/js/slider.js
/**
 * Touchswipe
 * https://github.com/mattbryson/TouchSwipe-Jquery-Plugin
 */
(function(a){if(typeof define==="function"&&define.amd&&define.amd.jQuery){define(["jquery"],a)}else{a(jQuery)}}(function(f){var p="left",o="right",e="up",x="down",c="in",z="out",m="none",s="auto",l="swipe",t="pinch",A="tap",j="doubletap",b="longtap",y="hold",D="horizontal",u="vertical",i="all",r=10,g="start",k="move",h="end",q="cancel",a="ontouchstart" in window,v=window.navigator.msPointerEnabled&&!window.navigator.pointerEnabled,d=window.navigator.pointerEnabled||window.navigator.msPointerEnabled,B="TouchSwipe";var n={fingers:1,threshold:75,cancelThreshold:null,pinchThreshold:20,maxTimeThreshold:null,fingerReleaseThreshold:250,longTapThreshold:500,doubleTapThreshold:200,swipe:null,swipeLeft:null,swipeRight:null,swipeUp:null,swipeDown:null,swipeStatus:null,pinchIn:null,pinchOut:null,pinchStatus:null,click:null,tap:null,doubleTap:null,longTap:null,hold:null,triggerOnTouchEnd:true,triggerOnTouchLeave:false,allowPageScroll:"auto",fallbackToMouseEvents:true,excludedElements:"label, button, input, select, textarea, a, .noSwipe"};f.fn.swipe=function(G){var F=f(this),E=F.data(B);if(E&&typeof G==="string"){if(E[G]){return E[G].apply(this,Array.prototype.slice.call(arguments,1))}else{f.error("Method "+G+" does not exist on jQuery.swipe")}}else{if(!E&&(typeof G==="object"||!G)){return w.apply(this,arguments)}}return F};f.fn.swipe.defaults=n;f.fn.swipe.phases={PHASE_START:g,PHASE_MOVE:k,PHASE_END:h,PHASE_CANCEL:q};f.fn.swipe.directions={LEFT:p,RIGHT:o,UP:e,DOWN:x,IN:c,OUT:z};f.fn.swipe.pageScroll={NONE:m,HORIZONTAL:D,VERTICAL:u,AUTO:s};f.fn.swipe.fingers={ONE:1,TWO:2,THREE:3,ALL:i};function w(E){if(E&&(E.allowPageScroll===undefined&&(E.swipe!==undefined||E.swipeStatus!==undefined))){E.allowPageScroll=m}if(E.click!==undefined&&E.tap===undefined){E.tap=E.click}if(!E){E={}}E=f.extend({},f.fn.swipe.defaults,E);return this.each(function(){var G=f(this);var F=G.data(B);if(!F){F=new C(this,E);G.data(B,F)}})}function C(a4,av){var az=(a||d||!av.fallbackToMouseEvents),J=az?(d?(v?"MSPointerDown":"pointerdown"):"touchstart"):"mousedown",ay=az?(d?(v?"MSPointerMove":"pointermove"):"touchmove"):"mousemove",U=az?(d?(v?"MSPointerUp":"pointerup"):"touchend"):"mouseup",S=az?null:"mouseleave",aD=(d?(v?"MSPointerCancel":"pointercancel"):"touchcancel");var ag=0,aP=null,ab=0,a1=0,aZ=0,G=1,aq=0,aJ=0,M=null;var aR=f(a4);var Z="start";var W=0;var aQ=null;var T=0,a2=0,a5=0,ad=0,N=0;var aW=null,af=null;try{aR.bind(J,aN);aR.bind(aD,a9)}catch(ak){f.error("events not supported "+J+","+aD+" on jQuery.swipe")}this.enable=function(){aR.bind(J,aN);aR.bind(aD,a9);return aR};this.disable=function(){aK();return aR};this.destroy=function(){aK();aR.data(B,null);return aR};this.option=function(bc,bb){if(av[bc]!==undefined){if(bb===undefined){return av[bc]}else{av[bc]=bb}}else{f.error("Option "+bc+" does not exist on jQuery.swipe.options")}return null};function aN(bd){if(aB()){return}if(f(bd.target).closest(av.excludedElements,aR).length>0){return}var be=bd.originalEvent?bd.originalEvent:bd;var bc,bb=a?be.touches[0]:be;Z=g;if(a){W=be.touches.length}else{bd.preventDefault()}ag=0;aP=null;aJ=null;ab=0;a1=0;aZ=0;G=1;aq=0;aQ=aj();M=aa();R();if(!a||(W===av.fingers||av.fingers===i)||aX()){ai(0,bb);T=at();if(W==2){ai(1,be.touches[1]);a1=aZ=au(aQ[0].start,aQ[1].start)}if(av.swipeStatus||av.pinchStatus){bc=O(be,Z)}}else{bc=false}if(bc===false){Z=q;O(be,Z);return bc}else{if(av.hold){af=setTimeout(f.proxy(function(){aR.trigger("hold",[be.target]);if(av.hold){bc=av.hold.call(aR,be,be.target)}},this),av.longTapThreshold)}ao(true)}return null}function a3(be){var bh=be.originalEvent?be.originalEvent:be;if(Z===h||Z===q||am()){return}var bd,bc=a?bh.touches[0]:bh;var bf=aH(bc);a2=at();if(a){W=bh.touches.length}if(av.hold){clearTimeout(af)}Z=k;if(W==2){if(a1==0){ai(1,bh.touches[1]);a1=aZ=au(aQ[0].start,aQ[1].start)}else{aH(bh.touches[1]);aZ=au(aQ[0].end,aQ[1].end);aJ=ar(aQ[0].end,aQ[1].end)}G=a7(a1,aZ);aq=Math.abs(a1-aZ)}if((W===av.fingers||av.fingers===i)||!a||aX()){aP=aL(bf.start,bf.end);al(be,aP);ag=aS(bf.start,bf.end);ab=aM();aI(aP,ag);if(av.swipeStatus||av.pinchStatus){bd=O(bh,Z)}if(!av.triggerOnTouchEnd||av.triggerOnTouchLeave){var bb=true;if(av.triggerOnTouchLeave){var bg=aY(this);bb=E(bf.end,bg)}if(!av.triggerOnTouchEnd&&bb){Z=aC(k)}else{if(av.triggerOnTouchLeave&&!bb){Z=aC(h)}}if(Z==q||Z==h){O(bh,Z)}}}else{Z=q;O(bh,Z)}if(bd===false){Z=q;O(bh,Z)}}function L(bb){var bc=bb.originalEvent;if(a){if(bc.touches.length>0){F();return true}}if(am()){W=ad}a2=at();ab=aM();if(ba()||!an()){Z=q;O(bc,Z)}else{if(av.triggerOnTouchEnd||(av.triggerOnTouchEnd==false&&Z===k)){bb.preventDefault();Z=h;O(bc,Z)}else{if(!av.triggerOnTouchEnd&&a6()){Z=h;aF(bc,Z,A)}else{if(Z===k){Z=q;O(bc,Z)}}}}ao(false);return null}function a9(){W=0;a2=0;T=0;a1=0;aZ=0;G=1;R();ao(false)}function K(bb){var bc=bb.originalEvent;if(av.triggerOnTouchLeave){Z=aC(h);O(bc,Z)}}function aK(){aR.unbind(J,aN);aR.unbind(aD,a9);aR.unbind(ay,a3);aR.unbind(U,L);if(S){aR.unbind(S,K)}ao(false)}function aC(bf){var be=bf;var bd=aA();var bc=an();var bb=ba();if(!bd||bb){be=q}else{if(bc&&bf==k&&(!av.triggerOnTouchEnd||av.triggerOnTouchLeave)){be=h}else{if(!bc&&bf==h&&av.triggerOnTouchLeave){be=q}}}return be}function O(bd,bb){var bc=undefined;if(I()||V()){bc=aF(bd,bb,l)}else{if((P()||aX())&&bc!==false){bc=aF(bd,bb,t)}}if(aG()&&bc!==false){bc=aF(bd,bb,j)}else{if(ap()&&bc!==false){bc=aF(bd,bb,b)}else{if(ah()&&bc!==false){bc=aF(bd,bb,A)}}}if(bb===q){a9(bd)}if(bb===h){if(a){if(bd.touches.length==0){a9(bd)}}else{a9(bd)}}return bc}function aF(be,bb,bd){var bc=undefined;if(bd==l){aR.trigger("swipeStatus",[bb,aP||null,ag||0,ab||0,W,aQ]);if(av.swipeStatus){bc=av.swipeStatus.call(aR,be,bb,aP||null,ag||0,ab||0,W,aQ);if(bc===false){return false}}if(bb==h&&aV()){aR.trigger("swipe",[aP,ag,ab,W,aQ]);if(av.swipe){bc=av.swipe.call(aR,be,aP,ag,ab,W,aQ);if(bc===false){return false}}switch(aP){case p:aR.trigger("swipeLeft",[aP,ag,ab,W,aQ]);if(av.swipeLeft){bc=av.swipeLeft.call(aR,be,aP,ag,ab,W,aQ)}break;case o:aR.trigger("swipeRight",[aP,ag,ab,W,aQ]);if(av.swipeRight){bc=av.swipeRight.call(aR,be,aP,ag,ab,W,aQ)}break;case e:aR.trigger("swipeUp",[aP,ag,ab,W,aQ]);if(av.swipeUp){bc=av.swipeUp.call(aR,be,aP,ag,ab,W,aQ)}break;case x:aR.trigger("swipeDown",[aP,ag,ab,W,aQ]);if(av.swipeDown){bc=av.swipeDown.call(aR,be,aP,ag,ab,W,aQ)}break}}}if(bd==t){aR.trigger("pinchStatus",[bb,aJ||null,aq||0,ab||0,W,G,aQ]);if(av.pinchStatus){bc=av.pinchStatus.call(aR,be,bb,aJ||null,aq||0,ab||0,W,G,aQ);if(bc===false){return false}}if(bb==h&&a8()){switch(aJ){case c:aR.trigger("pinchIn",[aJ||null,aq||0,ab||0,W,G,aQ]);if(av.pinchIn){bc=av.pinchIn.call(aR,be,aJ||null,aq||0,ab||0,W,G,aQ)}break;case z:aR.trigger("pinchOut",[aJ||null,aq||0,ab||0,W,G,aQ]);if(av.pinchOut){bc=av.pinchOut.call(aR,be,aJ||null,aq||0,ab||0,W,G,aQ)}break}}}if(bd==A){if(bb===q||bb===h){clearTimeout(aW);clearTimeout(af);if(Y()&&!H()){N=at();aW=setTimeout(f.proxy(function(){N=null;aR.trigger("tap",[be.target]);if(av.tap){bc=av.tap.call(aR,be,be.target)}},this),av.doubleTapThreshold)}else{N=null;aR.trigger("tap",[be.target]);if(av.tap){bc=av.tap.call(aR,be,be.target)}}}}else{if(bd==j){if(bb===q||bb===h){clearTimeout(aW);N=null;aR.trigger("doubletap",[be.target]);if(av.doubleTap){bc=av.doubleTap.call(aR,be,be.target)}}}else{if(bd==b){if(bb===q||bb===h){clearTimeout(aW);N=null;aR.trigger("longtap",[be.target]);if(av.longTap){bc=av.longTap.call(aR,be,be.target)}}}}}return bc}function an(){var bb=true;if(av.threshold!==null){bb=ag>=av.threshold}return bb}function ba(){var bb=false;if(av.cancelThreshold!==null&&aP!==null){bb=(aT(aP)-ag)>=av.cancelThreshold}return bb}function ae(){if(av.pinchThreshold!==null){return aq>=av.pinchThreshold}return true}function aA(){var bb;if(av.maxTimeThreshold){if(ab>=av.maxTimeThreshold){bb=false}else{bb=true}}else{bb=true}return bb}function al(bb,bc){if(av.allowPageScroll===m||aX()){bb.preventDefault()}else{var bd=av.allowPageScroll===s;switch(bc){case p:if((av.swipeLeft&&bd)||(!bd&&av.allowPageScroll!=D)){bb.preventDefault()}break;case o:if((av.swipeRight&&bd)||(!bd&&av.allowPageScroll!=D)){bb.preventDefault()}break;case e:if((av.swipeUp&&bd)||(!bd&&av.allowPageScroll!=u)){bb.preventDefault()}break;case x:if((av.swipeDown&&bd)||(!bd&&av.allowPageScroll!=u)){bb.preventDefault()}break}}}function a8(){var bc=aO();var bb=X();var bd=ae();return bc&&bb&&bd}function aX(){return !!(av.pinchStatus||av.pinchIn||av.pinchOut)}function P(){return !!(a8()&&aX())}function aV(){var be=aA();var bg=an();var bd=aO();var bb=X();var bc=ba();var bf=!bc&&bb&&bd&&bg&&be;return bf}function V(){return !!(av.swipe||av.swipeStatus||av.swipeLeft||av.swipeRight||av.swipeUp||av.swipeDown)}function I(){return !!(aV()&&V())}function aO(){return((W===av.fingers||av.fingers===i)||!a)}function X(){return aQ[0].end.x!==0}function a6(){return !!(av.tap)}function Y(){return !!(av.doubleTap)}function aU(){return !!(av.longTap)}function Q(){if(N==null){return false}var bb=at();return(Y()&&((bb-N)<=av.doubleTapThreshold))}function H(){return Q()}function ax(){return((W===1||!a)&&(isNaN(ag)||ag<av.threshold))}function a0(){return((ab>av.longTapThreshold)&&(ag<r))}function ah(){return !!(ax()&&a6())}function aG(){return !!(Q()&&Y())}function ap(){return !!(a0()&&aU())}function F(){a5=at();ad=event.touches.length+1}function R(){a5=0;ad=0}function am(){var bb=false;if(a5){var bc=at()-a5;if(bc<=av.fingerReleaseThreshold){bb=true}}return bb}function aB(){return !!(aR.data(B+"_intouch")===true)}function ao(bb){if(bb===true){aR.bind(ay,a3);aR.bind(U,L);if(S){aR.bind(S,K)}}else{aR.unbind(ay,a3,false);aR.unbind(U,L,false);if(S){aR.unbind(S,K,false)}}aR.data(B+"_intouch",bb===true)}function ai(bc,bb){var bd=bb.identifier!==undefined?bb.identifier:0;aQ[bc].identifier=bd;aQ[bc].start.x=aQ[bc].end.x=bb.pageX||bb.clientX;aQ[bc].start.y=aQ[bc].end.y=bb.pageY||bb.clientY;return aQ[bc]}function aH(bb){var bd=bb.identifier!==undefined?bb.identifier:0;var bc=ac(bd);bc.end.x=bb.pageX||bb.clientX;bc.end.y=bb.pageY||bb.clientY;return bc}function ac(bc){for(var bb=0;bb<aQ.length;bb++){if(aQ[bb].identifier==bc){return aQ[bb]}}}function aj(){var bb=[];for(var bc=0;bc<=5;bc++){bb.push({start:{x:0,y:0},end:{x:0,y:0},identifier:0})}return bb}function aI(bb,bc){bc=Math.max(bc,aT(bb));M[bb].distance=bc}function aT(bb){if(M[bb]){return M[bb].distance}return undefined}function aa(){var bb={};bb[p]=aw(p);bb[o]=aw(o);bb[e]=aw(e);bb[x]=aw(x);return bb}function aw(bb){return{direction:bb,distance:0}}function aM(){return a2-T}function au(be,bd){var bc=Math.abs(be.x-bd.x);var bb=Math.abs(be.y-bd.y);return Math.round(Math.sqrt(bc*bc+bb*bb))}function a7(bb,bc){var bd=(bc/bb)*1;return bd.toFixed(2)}function ar(){if(G<1){return z}else{return c}}function aS(bc,bb){return Math.round(Math.sqrt(Math.pow(bb.x-bc.x,2)+Math.pow(bb.y-bc.y,2)))}function aE(be,bc){var bb=be.x-bc.x;var bg=bc.y-be.y;var bd=Math.atan2(bg,bb);var bf=Math.round(bd*180/Math.PI);if(bf<0){bf=360-Math.abs(bf)}return bf}function aL(bc,bb){var bd=aE(bc,bb);if((bd<=45)&&(bd>=0)){return p}else{if((bd<=360)&&(bd>=315)){return p}else{if((bd>=135)&&(bd<=225)){return o}else{if((bd>45)&&(bd<135)){return x}else{return e}}}}}function at(){var bb=new Date();return bb.getTime()}function aY(bb){bb=f(bb);var bd=bb.offset();var bc={left:bd.left,right:bd.left+bb.outerWidth(),top:bd.top,bottom:bd.top+bb.outerHeight()};return bc}function E(bb,bc){return(bb.x>bc.left&&bb.x<bc.right&&bb.y>bc.top&&bb.y<bc.bottom)}}}));

/**
 * Komma Slider
 */
(function($) {

    $.slider = function(element, options) {

        var defaults = {
            nav : null,
            loop : null,
            speed : 2000
        };

        // Reference to this
        var t = this;

        // Current Index
        var cIndex = 0;

        // Number of images
        var num = 0;

        // Create settings object
        t.set = {};

        // jQuery reference to element
        var $ul = $(element);

        // Arrays
        t.images = []; // Image
        t.captions = []; // Quote
        t.labels = []; // Button label
        t.urls = []; // Url

        // Three kinds of images
        var $show;
        var $beforeShow;
        var $afterShow;

        var $counter;

        //
        var isAnimating = false;

        // Touch device ?
        var isTouch = $('html.touch').size();


        /**
         * Initialise plugin
         */
        t.init = function ()
        {
            // Extend the defaults with options, save in settings
            t.set = $.extend({}, defaults, options);

            if(isTouch) t.set.speed = 600;

            // Set number of images
            num = $ul.children().length;
            if(num <= 1)
            {
                $ul.siblings('.clicker').css({ display: 'none' });
                $ul.siblings('.counter').css({ display: 'none' });
            }
            else
            {
                $counter = $ul.siblings('.counter');
                $counter.children('.index').html('<div class="current">' + (cIndex+1) + '</div>');
                $counter.children('.total').html(num);
            }

            // Fill arrays
            fillArrays();

            // Show first item
            t.goto(cIndex,'next',true);

            // Loop ?
            var $img = $('img',$ul);
            $($img).one('load', function () {
                    t.adjust();
                }
            ).each(function () {
                if (this.complete) $(this).load();
            });


            //
            /*
            if(t.set.nav != null)
            {
                var $nav = $(t.set.nav);
                $('li',$nav).click(function()
                {
                    var $li = $(this);
                    if( ! $nav.hasClass('disabled'))
                    {
                        if($li.index() != cIndex)
                        {
                            // Stop the loop
                            clearInterval(t.loop);

                            t.goto($(this).index());

                            $nav.addClass('disabled');
                            setTimeout(function()
                            {
                                $nav.removeClass('disabled');
                            }, t.set.speed);
                        }
                    }
                });
            }*/
            if(isTouch)
            {
                $ul.swipe({
                    allowPageScroll : "vertical",
                    swipeStatus:function(event, phase, direction, distance) {
                        // Call function
                        onSwipe(event, phase, direction, distance);
                    }
                });
            }
        };


        /**
         * Public method next
         * Slide to the next image
         */
        t.next = function()
        {
            clearLoop();

            // Get target
            var tIndex;
            if(cIndex == num-1)
            {
                tIndex = 0;
            }
            else
            {
                tIndex = cIndex+1;
            }


            t.goto(tIndex);
        };


        /**
         * Public method prev
         * Slide to the previous image
         */
        t.prev = function()
        {
            clearLoop();

            // Get target
            var tIndex;
            if(cIndex == 0)
            {
                tIndex = num-1;
            }
            else
            {
                tIndex = cIndex-1;
            }

            t.goto(tIndex,'prev');

        };

        /**
         * Public method Goto
         * Slide to the passed index
         *
         * @param int tIndex - target index
         * @param boolean first - first image on landing
         */
        t.goto = function(tIndex,dir,first)
        {
            if( ! isAnimating)
            {
                isAnimating = true;
                setTimeout(function(){ isAnimating = false;}, t.set.speed );

                if(cIndex != tIndex || first)
                {
                    //var next = (tIndex >= cIndex || (tIndex == 0 && cIndex == num-1) && ! (tIndex == num-1 && cIndex == 0));
                    var next = (dir != 'prev');

                    // Append list item
                    if(next)
                    {
                        var index = tIndex+1;
                        if(tIndex == num-1) index = 0
                        if(first) index = tIndex;
                        // Add next image
                        addListItem(index,first,'next');
                    }
                    else
                    {
                        var index = tIndex-1;
                        if(tIndex == 0) index = num-1;
                        // Add previous image
                        addListItem(index,first,'prev');
                    }
                    // Adjust images
                    t.adjust();

                    // Switch classes
                    if( ! first)
                    {
                        if(next)
                        {
                            $ul.children('.before_show').addClass('hide').removeClass('before_show');
                            $ul.children('.show').addClass('before_show').removeClass('show');
                            $ul.children('.after_show').addClass('show').removeClass('after_show');
                            $ul.children('.new').addClass('after_show').removeClass('new');
                        }
                        else
                        {
                            $ul.children('.after_show').addClass('hide').removeClass('after_show');
                            $ul.children('.show').addClass('after_show').removeClass('show');
                            $ul.children('.before_show').addClass('show').removeClass('before_show');
                            $ul.children('.new').addClass('before_show').removeClass('new');
                        }

                        // Enlarge "show" image
                       //var $img = $('.show').children('figure').children('img');
                       //reduceImage($img); 

                        setTimeout(function(){ $ul.children('.hide').remove(); }, t.set.speed);
                    }
                    // Switch index
                    cIndex = tIndex;

                    // Update counter
                    if(num>1)
                    {
                        $counter.children('.index').append('<div class="new">' + (cIndex+1) + '</div>')
                        setTimeout(function(){
                            $counter.children('.index').children('.current').addClass('hide').removeClass('current');
                            $counter.children('.index').children('.new').addClass('current').removeClass('new');
                        },50);
                        setTimeout(function(){  $counter.children('.index').children('.hide').remove(); },400);
                    }

                    // Update variables
                    $show = $ul.children('.show').children('figure');
                    $beforeShow = $ul.children('.before_show').children('figure');
                    $afterShow = $ul.children('.after_show').children('figure');

                    if(t.set.nav != null)
                    {
                        $('.active',t.set.nav).removeClass('active');
                        $(t.set.nav).children('li').eq(cIndex).addClass('active');
                    }
                }
            }
        };


        /**
         * Public method Adjust
         * Adjust slider size to parent (ul)
         */
        t.adjust = function()
        {
            var $img = $('img',$ul);

            $ul.parent().height($img.height());
            $img.css({display: 'block', opacity: 1});

            // Show slider
            if (parseInt($(element).css('opacity')) == 0) {
                $(element).stop().animate({opacity: 1}, 300);
            }

            if (t.set.loop != null) {
                var intv = t.set.loop;
                clearTimeout(t.loop);
                t.loop = setTimeout(function () {
                    t.next();
                }, intv);
            }

        };

        /**
         * Private method fillArrays
         * Convert Li content to array then clear li's
         */
        var fillArrays = function()
        {
            for(var i=0;i<num;i++)
            {
                var $li = $ul.children('li').eq(i);
                t.images[i] = $li.children('.image').html();
                t.captions[i] = $li.children('.caption-holder').html();
                t.labels[i] = $li.children('.label').html();
                t.urls[i] = $li.children('.url').html();

                // Navigation
                var $liNav =  $('<li/>');
                $liNav.html('<span>' + (i+1) + '</span>');
                $(t.set.nav).append($liNav);
            }

            // Remove all li
            $ul.children('li').remove();
        };


        /**
         * Private method addListItem
         * Add list item to ul
         *
         * @param int i - index of list item in array
         * @param boolean first - first image on landing
         * @param string dir - left or right
         */
        var addListItem = function(i,first,dir)
        {
            // Create a string of the item
            var $li = $('<li/>');

            // Show the first image without animation
            if(first){
                if(num > 1)
                {
                    // Add before / after
                    var $liB = $('<li class="before_show"/>'); // Before
                    var $liA = $('<li class="after_show"/>'); // After
                    $liB.append('<figure>' + t.images[num-1] + t.captions[num-1] + '</figure>');
                    $liA.append('<figure>' + t.images[1] + t.captions[1] + '</figure>');
                }

                $li.addClass('show');
                $li.addClass('next');
            }
            else
            {
                $li.addClass('new');
                $li.addClass(dir);

                if(dir == 'next')
                {
                    $('li.prev').removeClass('prev').addClass('next');
                }
                else
                {
                    $('li.next').removeClass('next').addClass('prev');
                }
            }

            // Add image to list item
            var image = '<figure>' + t.images[i] + t.captions[i] + '</figure>';
            $li.append(image);

            // Add item to list
            if(first && num > 1) $ul.append($liB);
            $ul.append($li);
            if(first && num > 1) $ul.append($liA);


        };


        /**
         * Private method reduceImage
         * Create a zoom effect while switching between images
         *
         * @param $img
         */
        var reduceImage = function($img)
        {
            // How much px larger
            var larger = 1000;

            var r = $img.width() / $img.height();
            var oldW = $img.width();
            var oldH = $img.height();
            var newW = $img.width() + larger;
            var newH = newW / r;

            var oldMl = oldW / -2;
            var newMl = newW / -2;

            $img.css({ marginLeft : newMl+'px', width: newW+'px',height: newH+'px' });
            $img.animate({ marginLeft : oldMl+'px', width: oldW+'px',height: oldH+'px'  }, t.set.speed);
        };

        var clearLoop = function()
        {
            clearTimeout(t.loop);
            clearInterval(t.loop);
        };


        /**
         * Swipe navigation
         *
         * @param event - touch event
         * @param phase - start, move, end or cancel
         * @param direction - left, right, up, down
         * @param distance - swipe distance
         */
        var onSwipe = function(event, phase, direction, distance)
        {
            if($show.size())
            {
                // Only update direction when left or right
                var dir;
                if(direction == 'left' || direction == 'right') dir = direction;

                if( ! isAnimating)
                {
                    // Check phase
                    switch(phase)
                    {
                        case 'start':
                            $('.before_show figure, .show figure, .after_show figure').addClass('swiping');
                            break;
                        case 'move':
                            var l;
                            if(dir == 'left')
                            {
                                l = -distance;
                            }
                            else if(dir == 'right')
                            {
                                l = distance;
                            }

                            var w = $ul.width();
                            $beforeShow.css({ left: (l-w) + 'px' })
                            $show.css({ left: l + 'px' })
                            $afterShow.css({ left: (l+w) + 'px' })

                            break;
                        case 'end':
                            $('.before_show figure, .show figure, .after_show figure').removeClass('swiping');


                            if(dir == 'left')
                            {
                                t.next();
                            }
                            else if(dir == 'right')
                            {
                                t.prev();
                            }

                            $beforeShow.css({ left: '' })
                            $show.css({ left: '' })
                            $afterShow.css({ left: '' })
                            break;
                    }
                }
            }
        };

        // Run plugin
        t.init();
    };

    /**
     * Append plugin to element data
     *
     * @param options
     * @returns {*}
     */
    $.fn.slider = function(options)
    {
        return this.each(function()
        {
            // if plugin has not already been attached to the element
            if ($(this).data('slider') == undefined)
            {
                // create a new instance of the plugin
                var slider = new $.slider(this, options);
                $(this).data('slider', slider);
            }
        });
    }

})(jQuery);