// source --> https://craigprickettmusic.com/wp-content/plugins/woocommerce/assets/js/frontend/woocommerce.min.js?ver=10.8.0 
function on_keydown_remove_from_cart(e){" "===e.key&&(e.preventDefault(),e.currentTarget.click())}function focus_populate_live_region(){var e=["woocommerce-message","woocommerce-error","wc-block-components-notice-banner"].map(function(e){return"."+e+'[role="alert"]'}).join(", "),o=document.querySelectorAll(e);if(0!==o.length){var t=o[0];t.setAttribute("tabindex","-1");var n=setTimeout(function(){t.focus(),clearTimeout(n)},500)}}function refresh_sorted_by_live_region(){var e=document.querySelector(".woocommerce-result-count"),o=document.querySelector('[data-wp-interactive="woocommerce/product-filters"]');if(e&&window.location.search&&!o){var t=e.innerHTML;e.setAttribute("role","alert"),e.setAttribute("aria-hidden","true");var n=setTimeout(function(){e.setAttribute("aria-hidden","false"),e.innerHTML="",e.innerHTML=t,clearTimeout(n)},2e3)}}function on_document_ready(){focus_populate_live_region(),refresh_sorted_by_live_region()}jQuery(function(e){e(".woocommerce-ordering").on("change","select.orderby",function(){e(this).closest("form").trigger("submit")}),e("input.qty:not(.product-quantity input.qty)").each(function(){var o=parseFloat(e(this).attr("min"));o>=0&&parseFloat(e(this).val())<o&&e(this).val(o)});var o="store_notice"+(e(".woocommerce-store-notice").data("noticeId")||"");if("hidden"===Cookies.get(o))e(".woocommerce-store-notice").hide();else{function t(o){["Enter"," "].includes(o.key)&&(o.preventDefault(),e(".woocommerce-store-notice__dismiss-link").click())}e(".woocommerce-store-notice").show(),e(".woocommerce-store-notice__dismiss-link").on("click",function n(r){Cookies.set(o,"hidden",{path:"/"}),e(".woocommerce-store-notice").hide(),r.preventDefault(),e(".woocommerce-store-notice__dismiss-link").off("click",n).off("keydown",t)}).on("keydown",t)}e(".woocommerce-input-wrapper span.description").length&&e(document.body).on("click",function(){e(".woocommerce-input-wrapper span.description:visible").prop("aria-hidden",!0).slideUp(250)}),e(".woocommerce-input-wrapper").on("click",function(e){e.stopPropagation()}),e(".woocommerce-input-wrapper :input").on("keydown",function(o){var t=e(this).parent().find("span.description");if(27===o.which&&t.length&&t.is(":visible"))return t.prop("aria-hidden",!0).slideUp(250),o.preventDefault(),!1}).on("click focus",function(){var o=e(this).parent(),t=o.find("span.description");o.addClass("currentTarget"),e(".woocommerce-input-wrapper:not(.currentTarget) span.description:visible").prop("aria-hidden",!0).slideUp(250),t.length&&t.is(":hidden")&&t.prop("aria-hidden",!1).slideDown(250),o.removeClass("currentTarget")}),e.scroll_to_notices=function(o){o.length&&e("html, body").animate({scrollTop:o.offset().top-100},1e3)},e('.woocommerce form .woocommerce-Input[type="password"]').wrap('<span class="password-input"></span>'),e(".woocommerce form input").filter(":password").parent("span").addClass("password-input"),e(".password-input").each(function(){const o=e(this).find("input").attr("id");e(this).append('<button type="button" class="show-password-input" aria-label="'+woocommerce_params.i18n_password_show+'" aria-describedBy="'+o+'"></button>')}),e(".show-password-input").on("click",function(o){o.preventDefault(),e(this).hasClass("display-password")?(e(this).removeClass("display-password"),e(this).attr("aria-label",woocommerce_params.i18n_password_show)):(e(this).addClass("display-password"),e(this).attr("aria-label",woocommerce_params.i18n_password_hide)),e(this).hasClass("display-password")?e(this).siblings(['input[type="password"]']).prop("type","text"):e(this).siblings('input[type="text"]').prop("type","password"),e(this).siblings("input").focus()}),e("a.coming-soon-footer-banner-dismiss").on("click",function(o){var t=e(o.target);e.ajax({type:"post",url:t.data("rest-url"),data:{woocommerce_meta:{coming_soon_banner_dismissed:"yes"}},beforeSend:function(e){e.setRequestHeader("X-WP-Nonce",t.data("rest-nonce"))},complete:function(){e("#coming-soon-footer-banner").hide()}})}),"undefined"==typeof wc_add_to_cart_params&&e(document.body).on("keydown",".remove_from_cart_button",on_keydown_remove_from_cart),e(document.body).on("item_removed_from_classic_cart updated_wc_div",focus_populate_live_region)}),document.addEventListener("DOMContentLoaded",on_document_ready);
// source --> https://craigprickettmusic.com/wp-content/plugins/woo-floating-cart-lite/public/assets/vendors/bodyScrollLock-min.js?ver=2.8.3 
(function(global,factory){if(typeof define==="function"&&define.amd){define(["exports"],factory)}else if(typeof exports!=="undefined"){factory(exports)}else{var mod={exports:{}};factory(mod.exports);global.bodyScrollLock=mod.exports}})(this,function(exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});function _toConsumableArray(arr){if(Array.isArray(arr)){for(var i=0,arr2=Array(arr.length);i<arr.length;i++){arr2[i]=arr[i]}return arr2}else{return Array.from(arr)}}var hasPassiveEvents=false;if(typeof window!=="undefined"){var passiveTestOptions={get passive(){hasPassiveEvents=true;return undefined}};window.addEventListener("testPassive",null,passiveTestOptions);window.removeEventListener("testPassive",null,passiveTestOptions)}var isIosDevice=typeof window!=="undefined"&&window.navigator&&window.navigator.platform&&/iP(ad|hone|od)/.test(window.navigator.platform);var locks=[];var documentListenerAdded=false;var initialClientY=-1;var previousBodyOverflowSetting=void 0;var previousBodyPaddingRight=void 0;var allowTouchMove=function allowTouchMove(el){return locks.some(function(lock){if(lock.options.allowTouchMove&&lock.options.allowTouchMove(el)){return true}return false})};var preventDefault=function preventDefault(rawEvent){var e=rawEvent||window.event;if(allowTouchMove(e.target)){return true}if(e.touches.length>1)return true;if(e.preventDefault)e.preventDefault();return false};var setOverflowHidden=function setOverflowHidden(options){setTimeout(function(){if(previousBodyPaddingRight===undefined){var _reserveScrollBarGap=!!options&&options.reserveScrollBarGap===true;var scrollBarGap=window.innerWidth-document.documentElement.clientWidth;if(_reserveScrollBarGap&&scrollBarGap>0){previousBodyPaddingRight=document.body.style.paddingRight;document.body.style.paddingRight=scrollBarGap+"px"}}if(previousBodyOverflowSetting===undefined){previousBodyOverflowSetting=document.body.style.overflow;document.body.style.overflow="hidden"}})};var restoreOverflowSetting=function restoreOverflowSetting(){setTimeout(function(){if(previousBodyPaddingRight!==undefined){document.body.style.paddingRight=previousBodyPaddingRight;previousBodyPaddingRight=undefined}if(previousBodyOverflowSetting!==undefined){document.body.style.overflow=previousBodyOverflowSetting;previousBodyOverflowSetting=undefined}})};var isTargetElementTotallyScrolled=function isTargetElementTotallyScrolled(targetElement){return targetElement?targetElement.scrollHeight-targetElement.scrollTop<=targetElement.clientHeight:false};var handleScroll=function handleScroll(event,targetElement){var clientY=event.targetTouches[0].clientY-initialClientY;if(allowTouchMove(event.target)){return false}if(targetElement&&targetElement.scrollTop===0&&clientY>0){return preventDefault(event)}if(isTargetElementTotallyScrolled(targetElement)&&clientY<0){return preventDefault(event)}event.stopPropagation();return true};var disableBodyScroll=exports.disableBodyScroll=function disableBodyScroll(targetElement,options){if(isIosDevice){if(!targetElement){console.error("disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.");return}if(targetElement&&!locks.some(function(lock){return lock.targetElement===targetElement})){var lock={targetElement:targetElement,options:options||{}};locks=[].concat(_toConsumableArray(locks),[lock]);targetElement.ontouchstart=function(event){if(event.targetTouches.length===1){initialClientY=event.targetTouches[0].clientY}};targetElement.ontouchmove=function(event){if(event.targetTouches.length===1){handleScroll(event,targetElement)}};if(!documentListenerAdded){document.addEventListener("touchmove",preventDefault,hasPassiveEvents?{passive:false}:undefined);documentListenerAdded=true}}}else{setOverflowHidden(options);var _lock={targetElement:targetElement,options:options||{}};locks=[].concat(_toConsumableArray(locks),[_lock])}};var clearAllBodyScrollLocks=exports.clearAllBodyScrollLocks=function clearAllBodyScrollLocks(){if(isIosDevice){locks.forEach(function(lock){lock.targetElement.ontouchstart=null;lock.targetElement.ontouchmove=null});if(documentListenerAdded){document.removeEventListener("touchmove",preventDefault,hasPassiveEvents?{passive:false}:undefined);documentListenerAdded=false}locks=[];initialClientY=-1}else{restoreOverflowSetting();locks=[]}};var enableBodyScroll=exports.enableBodyScroll=function enableBodyScroll(targetElement){if(isIosDevice){if(!targetElement){console.error("enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.");return}targetElement.ontouchstart=null;targetElement.ontouchmove=null;locks=locks.filter(function(lock){return lock.targetElement!==targetElement});if(documentListenerAdded&&locks.length===0){document.removeEventListener("touchmove",preventDefault,hasPassiveEvents?{passive:false}:undefined);documentListenerAdded=false}}else if(locks.length===1&&locks[0].targetElement===targetElement){restoreOverflowSetting();locks=[]}else{locks=locks.filter(function(lock){return lock.targetElement!==targetElement})}}});
// source --> https://craigprickettmusic.com/wp-content/plugins/woo-floating-cart-lite/xt-framework/assets/js/jquery.touch-min.js?ver=2.5.3 
(function(root,doc,factory){if(typeof define==="function"&&define.amd){define(["jquery"],function($){factory($,root,doc);return $.mobile})}else{factory(root.jQuery,root,doc)}})(this,document,function(jQuery,window,document,undefined){(function(factory){if(typeof define==="function"&&define.amd){define("vmouse",["jquery"],factory)}else{factory(jQuery)}})(function($){var dataPropertyName="virtualMouseBindings",touchTargetPropertyName="virtualTouchID",touchEventProps="clientX clientY pageX pageY screenX screenY".split(" "),virtualEventNames="vmouseover vmousedown vmousemove vmouseup vclick vmouseout vmousecancel".split(" "),generalProps=("altKey bubbles cancelable ctrlKey currentTarget detail eventPhase "+"metaKey relatedTarget shiftKey target timeStamp view which").split(" "),mouseHookProps=$.event.mouseHooks?$.event.mouseHooks.props:[],mouseEventProps=generalProps.concat(mouseHookProps),activeDocHandlers={},resetTimerID=0,startX=0,startY=0,didScroll=false,clickBlockList=[],blockMouseTriggers=false,blockTouchTriggers=false,eventCaptureSupported="addEventListener"in document,$document=$(document),nextTouchID=1,lastTouchID=0,threshold,i;$.vmouse={moveDistanceThreshold:10,clickDistanceThreshold:10,resetTimerDuration:1500,maximumTimeBetweenTouches:100};function getNativeEvent(event){while(event&&typeof event.originalEvent!=="undefined"){event=event.originalEvent}return event}function createVirtualEvent(event,eventType){var t=event.type,oe,props,ne,prop,ct,touch,i,j,len;event=$.Event(event);event.type=eventType;oe=event.originalEvent;props=generalProps;if(t.search(/^(mouse|click)/)>-1){props=mouseEventProps}if(oe){for(i=props.length;i;){prop=props[--i];event[prop]=oe[prop]}}if(t.search(/mouse(down|up)|click/)>-1&&!event.which){event.which=1}if(t.search(/^touch/)!==-1){ne=getNativeEvent(oe);t=ne.touches;ct=ne.changedTouches;touch=t&&t.length?t[0]:ct&&ct.length?ct[0]:undefined;if(touch){for(j=0,len=touchEventProps.length;j<len;j++){prop=touchEventProps[j];event[prop]=touch[prop]}}}return event}function getVirtualBindingFlags(element){var flags={},b,k;while(element){b=$.data(element,dataPropertyName);for(k in b){if(b[k]){flags[k]=flags.hasVirtualBinding=true}}element=element.parentNode}return flags}function getClosestElementWithVirtualBinding(element,eventType){var b;while(element){b=$.data(element,dataPropertyName);if(b&&(!eventType||b[eventType])){return element}element=element.parentNode}return null}function enableTouchBindings(){blockTouchTriggers=false}function disableTouchBindings(){blockTouchTriggers=true}function enableMouseBindings(){lastTouchID=0;clickBlockList.length=0;blockMouseTriggers=false;disableTouchBindings()}function disableMouseBindings(){enableTouchBindings()}function clearResetTimer(){if(resetTimerID){clearTimeout(resetTimerID);resetTimerID=0}}function startResetTimer(){clearResetTimer();resetTimerID=setTimeout(function(){resetTimerID=0;enableMouseBindings()},$.vmouse.resetTimerDuration)}function triggerVirtualEvent(eventType,event,flags){var ve;if(flags&&flags[eventType]||!flags&&getClosestElementWithVirtualBinding(event.target,eventType)){ve=createVirtualEvent(event,eventType);$(event.target).trigger(ve)}return ve}function mouseEventCallback(event){var touchID=$.data(event.target,touchTargetPropertyName),ve;if(event.type==="click"&&$.data(event.target,"lastTouchType")==="touchstart"){setTimeout(function(){if($.data(event.target,"lastTouchType")==="touchstart"){enableMouseBindings();delete $.data(event.target).lastTouchType;mouseEventCallback(event)}},$.vmouse.maximumTimeBetweenTouches)}if(!blockMouseTriggers&&(!lastTouchID||lastTouchID!==touchID)){ve=triggerVirtualEvent("v"+event.type,event);if(ve){if(ve.isDefaultPrevented()){event.preventDefault()}if(ve.isPropagationStopped()){event.stopPropagation()}if(ve.isImmediatePropagationStopped()){event.stopImmediatePropagation()}}}}function handleTouchStart(event){var touches=getNativeEvent(event).touches,target,flags,t;if(touches&&touches.length===1){target=event.target;flags=getVirtualBindingFlags(target);$.data(event.target,"lastTouchType",event.type);if(flags.hasVirtualBinding){lastTouchID=nextTouchID++;$.data(target,touchTargetPropertyName,lastTouchID);clearResetTimer();disableMouseBindings();didScroll=false;t=getNativeEvent(event).touches[0];startX=t.pageX;startY=t.pageY;triggerVirtualEvent("vmouseover",event,flags);triggerVirtualEvent("vmousedown",event,flags)}}}function handleScroll(event){if(blockTouchTriggers){return}if(!didScroll){triggerVirtualEvent("vmousecancel",event,getVirtualBindingFlags(event.target))}$.data(event.target,"lastTouchType",event.type);didScroll=true;startResetTimer()}function handleTouchMove(event){if(blockTouchTriggers){return}var t=getNativeEvent(event).touches[0],didCancel=didScroll,moveThreshold=$.vmouse.moveDistanceThreshold,flags=getVirtualBindingFlags(event.target);$.data(event.target,"lastTouchType",event.type);didScroll=didScroll||(Math.abs(t.pageX-startX)>moveThreshold||Math.abs(t.pageY-startY)>moveThreshold);if(didScroll&&!didCancel){triggerVirtualEvent("vmousecancel",event,flags)}triggerVirtualEvent("vmousemove",event,flags);startResetTimer()}function handleTouchEnd(event){if(blockTouchTriggers||$.data(event.target,"lastTouchType")===undefined){return}disableTouchBindings();delete $.data(event.target).lastTouchType;var flags=getVirtualBindingFlags(event.target),ve,t;triggerVirtualEvent("vmouseup",event,flags);if(!didScroll){ve=triggerVirtualEvent("vclick",event,flags);if(ve&&ve.isDefaultPrevented()){t=getNativeEvent(event).changedTouches[0];clickBlockList.push({touchID:lastTouchID,x:t.clientX,y:t.clientY});blockMouseTriggers=true}}triggerVirtualEvent("vmouseout",event,flags);didScroll=false;startResetTimer()}function hasVirtualBindings(ele){var bindings=$.data(ele,dataPropertyName),k;if(bindings){for(k in bindings){if(bindings[k]){return true}}}return false}function dummyMouseHandler(){}function getSpecialEventObject(eventType){var realType=eventType.substr(1);return{setup:function(){if(!hasVirtualBindings(this)){$.data(this,dataPropertyName,{})}var bindings=$.data(this,dataPropertyName);bindings[eventType]=true;activeDocHandlers[eventType]=(activeDocHandlers[eventType]||0)+1;if(activeDocHandlers[eventType]===1){$document.bind(realType,mouseEventCallback)}$(this).bind(realType,dummyMouseHandler);if(eventCaptureSupported){activeDocHandlers["touchstart"]=(activeDocHandlers["touchstart"]||0)+1;if(activeDocHandlers["touchstart"]===1){$document.bind("touchstart",handleTouchStart).bind("touchend",handleTouchEnd).bind("touchmove",handleTouchMove).bind("scroll",handleScroll)}}},teardown:function(){--activeDocHandlers[eventType];if(!activeDocHandlers[eventType]){$document.unbind(realType,mouseEventCallback)}if(eventCaptureSupported){--activeDocHandlers["touchstart"];if(!activeDocHandlers["touchstart"]){$document.unbind("touchstart",handleTouchStart).unbind("touchmove",handleTouchMove).unbind("touchend",handleTouchEnd).unbind("scroll",handleScroll)}}var $this=$(this),bindings=$.data(this,dataPropertyName);if(bindings){bindings[eventType]=false}$this.unbind(realType,dummyMouseHandler);if(!hasVirtualBindings(this)){$this.removeData(dataPropertyName)}}}}for(i=0;i<virtualEventNames.length;i++){$.event.special[virtualEventNames[i]]=getSpecialEventObject(virtualEventNames[i])}if(eventCaptureSupported){document.addEventListener("click",function(e){var cnt=clickBlockList.length,target=e.target,x,y,ele,i,o,touchID;if(cnt){x=e.clientX;y=e.clientY;threshold=$.vmouse.clickDistanceThreshold;ele=target;while(ele){for(i=0;i<cnt;i++){o=clickBlockList[i];touchID=0;if(ele===target&&Math.abs(o.x-x)<threshold&&Math.abs(o.y-y)<threshold||$.data(ele,touchTargetPropertyName)===o.touchID){e.preventDefault();e.stopPropagation();return}}ele=ele.parentNode}}},true)}});(function(factory){if(typeof define==="function"&&define.amd){define("ns",["jquery"],factory)}else{factory(jQuery)}})(function($){$.mobile={version:"@VERSION"};return $.mobile});(function(factory){if(typeof define==="function"&&define.amd){define("support/touch",["jquery","../ns"],factory)}else{factory(jQuery)}})(function($){var support={touch:"ontouchend"in document};$.mobile.support=$.mobile.support||{};$.extend($.support,support);$.extend($.mobile.support,support);return $.support});(function(factory){if(typeof define==="function"&&define.amd){define("events/touch",["jquery","../vmouse","../support/touch"],factory)}else{factory(jQuery)}})(function($){var $document=$(document),supportTouch=$.mobile.support.touch,touchStartEvent=supportTouch?"touchstart":"mousedown",touchStopEvent=supportTouch?"touchend":"mouseup",touchMoveEvent=supportTouch?"touchmove":"mousemove";$.each(("touchstart touchmove touchend "+"tap taphold "+"swipe swipeleft swiperight").split(" "),function(i,name){$.fn[name]=function(fn){return fn?this.bind(name,fn):this.trigger(name)}});function triggerCustomEvent(obj,eventType,event,bubble){var originalType=event.type;event.type=eventType;if(bubble){$.event.trigger(event,undefined,obj)}else{$.event.dispatch.call(obj,event)}event.type=originalType}$.event.special.tap={tapholdThreshold:750,emitTapOnTaphold:true,setup:function(){var thisObject=this,$this=$(thisObject),isTaphold=false;$this.bind("vmousedown",function(event){isTaphold=false;if(event.which&&event.which!==1){return true}var origTarget=event.target,timer,clickHandler;function clearTapTimer(){if(timer){$this.bind("vclick",clickHandler);clearTimeout(timer)}}function clearTapHandlers(){clearTapTimer();$this.unbind("vclick",clickHandler).unbind("vmouseup",clearTapTimer);$document.unbind("vmousecancel",clearTapHandlers)}clickHandler=function(event){clearTapHandlers();if(!isTaphold&&origTarget===event.target){triggerCustomEvent(thisObject,"tap",event)}else if(isTaphold){event.preventDefault()}};$this.bind("vmouseup",clearTapTimer);$document.bind("vmousecancel",clearTapHandlers);timer=setTimeout(function(){if(!$.event.special.tap.emitTapOnTaphold){isTaphold=true}timer=0;triggerCustomEvent(thisObject,"taphold",$.Event("taphold",{target:origTarget}))},$.event.special.tap.tapholdThreshold)})},teardown:function(){$(this).unbind("vmousedown").unbind("vclick").unbind("vmouseup");$document.unbind("vmousecancel")}};$.event.special.swipe={scrollSupressionThreshold:30,durationThreshold:1e3,horizontalDistanceThreshold:window.devicePixelRatio>=2?15:30,verticalDistanceThreshold:window.devicePixelRatio>=2?15:30,getLocation:function(event){var winPageX=window.pageXOffset,winPageY=window.pageYOffset,x=event.clientX,y=event.clientY;if(event.pageY===0&&Math.floor(y)>Math.floor(event.pageY)||event.pageX===0&&Math.floor(x)>Math.floor(event.pageX)){x=x-winPageX;y=y-winPageY}else if(y<event.pageY-winPageY||x<event.pageX-winPageX){x=event.pageX-winPageX;y=event.pageY-winPageY}return{x:x,y:y}},start:function(event){var data=event.originalEvent.touches?event.originalEvent.touches[0]:event,location=$.event.special.swipe.getLocation(data);return{time:(new Date).getTime(),coords:[location.x,location.y],origin:$(event.target)}},stop:function(event){var data=event.originalEvent.touches?event.originalEvent.touches[0]:event,location=$.event.special.swipe.getLocation(data);return{time:(new Date).getTime(),coords:[location.x,location.y]}},handleSwipe:function(start,stop,thisObject,origTarget){if(stop.time-start.time<$.event.special.swipe.durationThreshold&&Math.abs(start.coords[0]-stop.coords[0])>$.event.special.swipe.horizontalDistanceThreshold&&Math.abs(start.coords[1]-stop.coords[1])<$.event.special.swipe.verticalDistanceThreshold){var direction=start.coords[0]>stop.coords[0]?"swipeleft":"swiperight";triggerCustomEvent(thisObject,"swipe",$.Event("swipe",{target:origTarget,swipestart:start,swipestop:stop}),true);triggerCustomEvent(thisObject,direction,$.Event(direction,{target:origTarget,swipestart:start,swipestop:stop}),true);return true}return false},eventInProgress:false,setup:function(){var events,thisObject=this,$this=$(thisObject),context={};events=$.data(this,"mobile-events");if(!events){events={length:0};$.data(this,"mobile-events",events)}events.length++;events.swipe=context;context.start=function(event){if($.event.special.swipe.eventInProgress){return}$.event.special.swipe.eventInProgress=true;var stop,start=$.event.special.swipe.start(event),origTarget=event.target,emitted=false;context.move=function(event){if(!start||event.isDefaultPrevented()){return}stop=$.event.special.swipe.stop(event);if(!emitted){emitted=$.event.special.swipe.handleSwipe(start,stop,thisObject,origTarget);if(emitted){$.event.special.swipe.eventInProgress=false}}if(Math.abs(start.coords[0]-stop.coords[0])>$.event.special.swipe.scrollSupressionThreshold){event.preventDefault()}};context.stop=function(){emitted=true;$.event.special.swipe.eventInProgress=false;$document.off(touchMoveEvent,context.move);context.move=null};$document.on(touchMoveEvent,context.move).one(touchStopEvent,context.stop)};$this.on(touchStartEvent,context.start)},teardown:function(){var events,context;events=$.data(this,"mobile-events");if(events){context=events.swipe;delete events.swipe;events.length--;if(events.length===0){$.removeData(this,"mobile-events")}}if(context){if(context.start){$(this).off(touchStartEvent,context.start)}if(context.move){$document.off(touchMoveEvent,context.move)}if(context.stop){$document.off(touchStopEvent,context.stop)}}}};$.each({taphold:"tap",swipeleft:"swipe.left",swiperight:"swipe.right"},function(event,sourceEvent){$.event.special[event]={setup:function(){$(this).bind(sourceEvent,$.noop)},teardown:function(){$(this).unbind(sourceEvent)}}});return $.event.special})});