/*! hammer.js - v1.0.5 - 2013-04-07 * http://eightmedia.github.com/hammer.js * * copyright (c) 2013 jorik tangelder ; * licensed under the mit license */ (function(t,e){"use strict";function n(){if(!i.ready){i.event.determineeventtypes();for(var t in i.gestures)i.gestures.hasownproperty(t)&&i.detection.register(i.gestures[t]);i.event.ontouch(i.document,i.event_move,i.detection.detect),i.event.ontouch(i.document,i.event_end,i.detection.detect),i.ready=!0}}var i=function(t,e){return new i.instance(t,e||{})};i.defaults={stop_browser_behavior:{userselect:"none",touchaction:"none",touchcallout:"none",contentzooming:"none",userdrag:"none",taphighlightcolor:"rgba(0,0,0,0)"}},i.has_pointerevents=navigator.pointerenabled||navigator.mspointerenabled,i.has_touchevents="ontouchstart"in t,i.mobile_regex=/mobile|tablet|ip(ad|hone|od)|android/i,i.no_mouseevents=i.has_touchevents&&navigator.useragent.match(i.mobile_regex),i.event_types={},i.direction_down="down",i.direction_left="left",i.direction_up="up",i.direction_right="right",i.pointer_mouse="mouse",i.pointer_touch="touch",i.pointer_pen="pen",i.event_start="start",i.event_move="move",i.event_end="end",i.document=document,i.plugins={},i.ready=!1,i.instance=function(t,e){var r=this;return n(),this.element=t,this.enabled=!0,this.options=i.utils.extend(i.utils.extend({},i.defaults),e||{}),this.options.stop_browser_behavior&&i.utils.stopdefaultbrowserbehavior(this.element,this.options.stop_browser_behavior),i.event.ontouch(t,i.event_start,function(t){r.enabled&&i.detection.startdetect(r,t)}),this},i.instance.prototype={on:function(t,e){for(var n=t.split(" "),i=0;n.length>i;i++)this.element.addeventlistener(n[i],e,!1);return this},off:function(t,e){for(var n=t.split(" "),i=0;n.length>i;i++)this.element.removeeventlistener(n[i],e,!1);return this},trigger:function(t,e){var n=i.document.createevent("event");n.initevent(t,!0,!0),n.gesture=e;var r=this.element;return i.utils.hasparent(e.target,r)&&(r=e.target),r.dispatchevent(n),this},enable:function(t){return this.enabled=t,this}};var r=null,o=!1,s=!1;i.event={binddom:function(t,e,n){for(var i=e.split(" "),r=0;i.length>r;r++)t.addeventlistener(i[r],n,!1)},ontouch:function(t,e,n){var a=this;this.binddom(t,i.event_types[e],function(c){var u=c.type.tolowercase();if(!u.match(/mouse/)||!s){(u.match(/touch/)||u.match(/pointerdown/)||u.match(/mouse/)&&1===c.which)&&(o=!0),u.match(/touch|pointer/)&&(s=!0);var h=0;o&&(i.has_pointerevents&&e!=i.event_end?h=i.pointerevent.updatepointer(e,c):u.match(/touch/)?h=c.touches.length:s||(h=u.match(/up/)?0:1),h>0&&e==i.event_end?e=i.event_move:h||(e=i.event_end),h||null===r?r=c:c=r,n.call(i.detection,a.collecteventdata(t,e,c)),i.has_pointerevents&&e==i.event_end&&(h=i.pointerevent.updatepointer(e,c))),h||(r=null,o=!1,s=!1,i.pointerevent.reset())}})},determineeventtypes:function(){var t;t=i.has_pointerevents?i.pointerevent.getevents():i.no_mouseevents?["touchstart","touchmove","touchend touchcancel"]:["touchstart mousedown","touchmove mousemove","touchend touchcancel mouseup"],i.event_types[i.event_start]=t[0],i.event_types[i.event_move]=t[1],i.event_types[i.event_end]=t[2]},gettouchlist:function(t){return i.has_pointerevents?i.pointerevent.gettouchlist():t.touches?t.touches:[{identifier:1,pagex:t.pagex,pagey:t.pagey,target:t.target}]},collecteventdata:function(t,e,n){var r=this.gettouchlist(n,e),o=i.pointer_touch;return(n.type.match(/mouse/)||i.pointerevent.matchtype(i.pointer_mouse,n))&&(o=i.pointer_mouse),{center:i.utils.getcenter(r),timestamp:(new date).gettime(),target:n.target,touches:r,eventtype:e,pointertype:o,srcevent:n,preventdefault:function(){this.srcevent.preventmanipulation&&this.srcevent.preventmanipulation(),this.srcevent.preventdefault&&this.srcevent.preventdefault()},stoppropagation:function(){this.srcevent.stoppropagation()},stopdetect:function(){return i.detection.stopdetect()}}}},i.pointerevent={pointers:{},gettouchlist:function(){var t=this,e=[];return object.keys(t.pointers).sort().foreach(function(n){e.push(t.pointers[n])}),e},updatepointer:function(t,e){return t==i.event_end?this.pointers={}:(e.identifier=e.pointerid,this.pointers[e.pointerid]=e),object.keys(this.pointers).length},matchtype:function(t,e){if(!e.pointertype)return!1;var n={};return n[i.pointer_mouse]=e.pointertype==e.mspointer_type_mouse||e.pointertype==i.pointer_mouse,n[i.pointer_touch]=e.pointertype==e.mspointer_type_touch||e.pointertype==i.pointer_touch,n[i.pointer_pen]=e.pointertype==e.mspointer_type_pen||e.pointertype==i.pointer_pen,n[t]},getevents:function(){return["pointerdown mspointerdown","pointermove mspointermove","pointerup pointercancel mspointerup mspointercancel"]},reset:function(){this.pointers={}}},i.utils={extend:function(t,n,i){for(var r in n)t[r]!==e&&i||(t[r]=n[r]);return t},hasparent:function(t,e){for(;t;){if(t==e)return!0;t=t.parentnode}return!1},getcenter:function(t){for(var e=[],n=[],i=0,r=t.length;r>i;i++)e.push(t[i].pagex),n.push(t[i].pagey);return{pagex:(math.min.apply(math,e)+math.max.apply(math,e))/2,pagey:(math.min.apply(math,n)+math.max.apply(math,n))/2}},getvelocity:function(t,e,n){return{x:math.abs(e/t)||0,y:math.abs(n/t)||0}},getangle:function(t,e){var n=e.pagey-t.pagey,i=e.pagex-t.pagex;return 180*math.atan2(n,i)/math.pi},getdirection:function(t,e){var n=math.abs(t.pagex-e.pagex),r=math.abs(t.pagey-e.pagey);return n>=r?t.pagex-e.pagex>0?i.direction_left:i.direction_right:t.pagey-e.pagey>0?i.direction_up:i.direction_down},getdistance:function(t,e){var n=e.pagex-t.pagex,i=e.pagey-t.pagey;return math.sqrt(n*n+i*i)},getscale:function(t,e){return t.length>=2&&e.length>=2?this.getdistance(e[0],e[1])/this.getdistance(t[0],t[1]):1},getrotation:function(t,e){return t.length>=2&&e.length>=2?this.getangle(e[1],e[0])-this.getangle(t[1],t[0]):0},isvertical:function(t){return t==i.direction_up||t==i.direction_down},stopdefaultbrowserbehavior:function(t,e){var n,i=["webkit","khtml","moz","ms","o",""];if(e&&t.style){for(var r=0;i.length>r;r++)for(var o in e)e.hasownproperty(o)&&(n=o,i[r]&&(n=i[r]+n.substring(0,1).touppercase()+n.substring(1)),t.style[n]=e[o]);"none"==e.userselect&&(t.onselectstart=function(){return!1})}}},i.detection={gestures:[],current:null,previous:null,stopped:!1,startdetect:function(t,e){this.current||(this.stopped=!1,this.current={inst:t,startevent:i.utils.extend({},e),lastevent:!1,name:""},this.detect(e))},detect:function(t){if(this.current&&!this.stopped){t=this.extendeventdata(t);for(var e=this.current.inst.options,n=0,r=this.gestures.length;r>n;n++){var o=this.gestures[n];if(!this.stopped&&e[o.name]!==!1&&o.handler.call(o,t,this.current.inst)===!1){this.stopdetect();break}}return this.current&&(this.current.lastevent=t),t.eventtype==i.event_end&&!t.touches.length-1&&this.stopdetect(),t}},stopdetect:function(){this.previous=i.utils.extend({},this.current),this.current=null,this.stopped=!0},extendeventdata:function(t){var e=this.current.startevent;if(e&&(t.touches.length!=e.touches.length||t.touches===e.touches)){e.touches=[];for(var n=0,r=t.touches.length;r>n;n++)e.touches.push(i.utils.extend({},t.touches[n]))}var o=t.timestamp-e.timestamp,s=t.center.pagex-e.center.pagex,a=t.center.pagey-e.center.pagey,c=i.utils.getvelocity(o,s,a);return i.utils.extend(t,{deltatime:o,deltax:s,deltay:a,velocityx:c.x,velocityy:c.y,distance:i.utils.getdistance(e.center,t.center),angle:i.utils.getangle(e.center,t.center),direction:i.utils.getdirection(e.center,t.center),scale:i.utils.getscale(e.touches,t.touches),rotation:i.utils.getrotation(e.touches,t.touches),startevent:e}),t},register:function(t){var n=t.defaults||{};return n[t.name]===e&&(n[t.name]=!0),i.utils.extend(i.defaults,n,!0),t.index=t.index||1e3,this.gestures.push(t),this.gestures.sort(function(t,e){return t.indexe.index?1:0}),this.gestures}},i.gestures=i.gestures||{},i.gestures.hold={name:"hold",index:10,defaults:{hold_timeout:500,hold_threshold:1},timer:null,handler:function(t,e){switch(t.eventtype){case i.event_start:cleartimeout(this.timer),i.detection.current.name=this.name,this.timer=settimeout(function(){"hold"==i.detection.current.name&&e.trigger("hold",t)},e.options.hold_timeout);break;case i.event_move:t.distance>e.options.hold_threshold&&cleartimeout(this.timer);break;case i.event_end:cleartimeout(this.timer)}}},i.gestures.tap={name:"tap",index:100,defaults:{tap_max_touchtime:250,tap_max_distance:10,tap_always:!0,doubletap_distance:20,doubletap_interval:300},handler:function(t,e){if(t.eventtype==i.event_end){var n=i.detection.previous,r=!1;if(t.deltatime>e.options.tap_max_touchtime||t.distance>e.options.tap_max_distance)return;n&&"tap"==n.name&&t.timestamp-n.lastevent.timestamp0&&t.touches.length>e.options.swipe_max_touches)return;(t.velocityx>e.options.swipe_velocity||t.velocityy>e.options.swipe_velocity)&&(e.trigger(this.name,t),e.trigger(this.name+t.direction,t))}}},i.gestures.drag={name:"drag",index:50,defaults:{drag_min_distance:10,drag_max_touches:1,drag_block_horizontal:!1,drag_block_vertical:!1,drag_lock_to_axis:!1,drag_lock_min_distance:25},triggered:!1,handler:function(t,n){if(i.detection.current.name!=this.name&&this.triggered)return n.trigger(this.name+"end",t),this.triggered=!1,e;if(!(n.options.drag_max_touches>0&&t.touches.length>n.options.drag_max_touches))switch(t.eventtype){case i.event_start:this.triggered=!1;break;case i.event_move:if(t.distancet.deltay?i.direction_up:i.direction_down:0>t.deltax?i.direction_left:i.direction_right),this.triggered||(n.trigger(this.name+"start",t),this.triggered=!0),n.trigger(this.name,t),n.trigger(this.name+t.direction,t),(n.options.drag_block_vertical&&i.utils.isvertical(t.direction)||n.options.drag_block_horizontal&&!i.utils.isvertical(t.direction))&&t.preventdefault();break;case i.event_end:this.triggered&&n.trigger(this.name+"end",t),this.triggered=!1}}},i.gestures.transform={name:"transform",index:45,defaults:{transform_min_scale:.01,transform_min_rotation:1,transform_always_block:!1},triggered:!1,handler:function(t,n){if(i.detection.current.name!=this.name&&this.triggered)return n.trigger(this.name+"end",t),this.triggered=!1,e;if(!(2>t.touches.length))switch(n.options.transform_always_block&&t.preventdefault(),t.eventtype){case i.event_start:this.triggered=!1;break;case i.event_move:var r=math.abs(1-t.scale),o=math.abs(t.rotation);if(n.options.transform_min_scale>r&&n.options.transform_min_rotation>o)return;i.detection.current.name=this.name,this.triggered||(n.trigger(this.name+"start",t),this.triggered=!0),n.trigger(this.name,t),o>n.options.transform_min_rotation&&n.trigger("rotate",t),r>n.options.transform_min_scale&&(n.trigger("pinch",t),n.trigger("pinch"+(1>t.scale?"in":"out"),t));break;case i.event_end:this.triggered&&n.trigger(this.name+"end",t),this.triggered=!1}}},i.gestures.touch={name:"touch",index:-1/0,defaults:{prevent_default:!1,prevent_mouseevents:!1},handler:function(t,n){return n.options.prevent_mouseevents&&t.pointertype==i.pointer_mouse?(t.stopdetect(),e):(n.options.prevent_default&&t.preventdefault(),t.eventtype==i.event_start&&n.trigger(this.name,t),e)}},i.gestures.release={name:"release",index:1/0,handler:function(t,e){t.eventtype==i.event_end&&e.trigger(this.name,t)}},"object"==typeof module&&"object"==typeof module.exports?module.exports=i:(t.hammer=i,"function"==typeof t.define&&t.define.amd&&t.define("hammer",[],function(){return i}))})(this),function(t,e){"use strict";t!==e&&(hammer.event.binddom=function(n,i,r){t(n).on(i,function(t){var n=t.originalevent||t;n.pagex===e&&(n.pagex=t.pagex,n.pagey=t.pagey),n.target||(n.target=t.target),n.which===e&&(n.which=n.button),n.preventdefault||(n.preventdefault=t.preventdefault),n.stoppropagation||(n.stoppropagation=t.stoppropagation),r.call(this,n)})},hammer.instance.prototype.on=function(e,n){return t(this.element).on(e,n)},hammer.instance.prototype.off=function(e,n){return t(this.element).off(e,n)},hammer.instance.prototype.trigger=function(e,n){var i=t(this.element);return i.has(n.target).length&&(i=t(n.target)),i.trigger({type:e,gesture:n})},t.fn.hammer=function(e){return this.each(function(){var n=t(this),i=n.data("hammer");i?i&&e&&hammer.utils.extend(i.options,e):n.data("hammer",new hammer(this,e||{}))})})}(window.jquery||window.zepto);