var TuserScalableNo=function(){this.enabled=false;var b=navigator.userAgent.toLowerCase();var c=b.indexOf(' os ');var d;var e;if(b.indexOf('ipad')!==-1||b.indexOf('iphone')!==-1||b.indexOf('ipod')!==-1){var f=0.0;c=b.indexOf(' os ');if(c>-1){d=b.substring(c+4);e=d.indexOf(" ");if(e>=-1){d=d.substring(0,e)}d=d.replace("_",".");e=d.indexOf("_");if(e>-1){d=d.substring(0,e)}if(isNaN(d)!==true){try{f=parseFloat(d)}catch(ex){f=0}}}if(f>=10){this.enabled=true}}else if(b.indexOf('(macintosh;')!==-1&&b.indexOf('version/')!==-1){var g=0.0;c=b.indexOf('Version/');if(c>-1){d=b.substring(c+8);e=d.indexOf(" ");if(e>=-1){d=d.substring(0,e)}if(isNaN(d)!==true){try{g=parseFloat(d)}catch(ex){g=0}}}if(g>=13){this.enabled=true}}this.attributes=["usn-ts","usn-tm","usn-te","usn-ck"];this.disabledTargets=[];this.startTime=null;this.endTime=null;this.touchStartX=null;this.touchStartY=null;this.touchMoveX=null;this.touchMoveY=null;this.startDisabled=false;if(this.enabled){var h=this;window.addEventListener('touchstart',function(a){h.touchStart(a)},{capture:true,passive:false});window.addEventListener('touchmove',function(a){h.touchMove(a)},{capture:true,passive:false});window.addEventListener('touchend',function(a){h.touchEnd(a)},{capture:true,passive:false});window.addEventListener('gesturechange',function(a){a.preventDefault()},{capture:true,passive:false});window.addEventListener('gesturestart',function(a){a.preventDefault()},{capture:true,passive:false});window.addEventListener('gestureend',function(a){a.preventDefault()},{capture:true,passive:false});document.documentElement.addEventListener('gesturechange',function(a){a.preventDefault()},{capture:true,passive:false});document.documentElement.addEventListener('gesturestart',function(a){a.preventDefault()},{capture:true,passive:false});document.documentElement.addEventListener('gestureend',function(a){a.preventDefault()},{capture:true,passive:false})}};TuserScalableNo.prototype.touchStart=function(a){this.startDisabled=false;this.touchStartX=a.touches[0].pageX;this.touchStartY=a.touches[0].pageY;this.touchMoveX=this.touchStartX;this.touchMoveY=this.touchStartY;try{this.startTime=window.performance.now()}catch(ex){this.startTime=(new Date()).getTime()}var b=this.isDisabledTarget(a.target);if(b!=0&&b!=3){if(this.endTime!==null){if(this.startTime-this.endTime<=500){try{this.endTime=window.performance.now()}catch(ex){this.endTime=(new Date()).getTime()}this.startDisabled=true;a.stopPropagation();a.preventDefault();return}}if(a.touches.length>1){a.stopPropagation();a.preventDefault();this.startDisabled=true}}if(b==-1){var c=true;if(c){var d=this.getAttributeParent(a.target);if(d!==null){if(d.getAttribute("usn-ts")!==null){c=false}else if(d.getAttribute("usn-ck")!==null){c=false}}}if(c&&a.touches.length==1){c=false}if(c){a.stopPropagation();a.preventDefault();this.startDisabled=true}}this.endTime=null};TuserScalableNo.prototype.touchMove=function(a){this.touchMoveX=a.touches[0].pageX;this.touchMoveY=a.touches[0].pageY;var b=this.isDisabledTarget(a.target,true);if(b!=0&&b!=3){var c=true;var d=this.getAttributeParent(a.target);if(d!==null){if(a.target.getAttribute("usn-tm")!==null){c=false}}if(c&&a.touches.length==1){c=false}if(c){a.stopPropagation();a.preventDefault();return}}};TuserScalableNo.prototype.touchEnd=function(a){if(this.startDisabled){a.stopPropagation();a.preventDefault()}var b=this.isDisabledTarget(a.target);if(b==-1){var c=true;var d=this.getAttributeParent(a.target);if(d!==null){if(d.getAttribute("usn-te")!==null){c=false}else if(d.getAttribute("usn-ck")!==null){c=false}}if(c&&a.target!=document.body){a.stopPropagation();a.preventDefault()}}if(this.startDisabled){this.endTime=null;this.startDisabled=false;return}this.startDisabled=false;if(this.touchStartX!=null&&this.touchMoveX!=null){if(Math.sqrt((this.touchStartX-this.touchMoveX)*(this.touchStartX-this.touchMoveX)+(this.touchStartY-this.touchMoveY)*(this.touchStartY-this.touchMoveY))>=12){this.endTime=null;return}}try{this.endTime=window.performance.now()}catch(ex){this.endTime=(new Date()).getTime()}if(this.startTime!==null){if(this.endTime-this.startTime>500){this.endTime=null;this.startTime=null}}};TuserScalableNo.prototype.addEventListener=function(a,b,c,d){if(this.enabled){var e;switch(b){case"touchstart":e="usn-ts";break;case"touchmove":e="usn-tm";break;case"touchend":e="usn-te";break;case"click":e="usn-ck";break;default:e=null;break}if(e!==null){if(a.documentElement){if(!a.__attribute__){a.__attribute__=[]}if(a.__attribute__.indexOf(e)==-1){a.__attribute__[a.__attribute__.length]=e}}else{a.setAttribute(e,e)}}}if(d){a.addEventListener(b,c,d)}else{a.addEventListener(b,c)}};TuserScalableNo.prototype.removeEventListener=function(a,b,c,d){if(this.enabled){var e;switch(b){case"touchstart":e="usn-ts";break;case"touchmove":e="usn-tm";break;case"touchend":e="usn-te";break;case"click":e="usn-ck";break;default:e=null;break}if(e!==null){if(a.documentElement){if(!a.__attribute__){a.__attribute__=[]}var f=a.__attribute__.indexOf(e);if(f!=-1){a.__attribute__.splice(f,1)}}else{a.removeAttribute(e)}}}if(d){a.removeEventListener(b,c,d)}else{a.removeEventListener(b,c)}};TuserScalableNo.prototype.getAttributeParent=function(a){var b;var i;var c=false;var d=a;while(d!==null&&d.tagName!="BODY"&&d.tagName!="HTML"){for(i=0;i<this.attributes.length;i++){if(d.documentElement){if(!d.__attribute__){if(d.__attribute__.indexOf(this.attributes[i])!=-1){c=true;break}}}else{b=d.getAttribute(this.attributes[i]);if(b!==null){c=true;break}}}if(c){return d}if(d.documentElement){d=null}else{d=d.parentElement}}return null};TuserScalableNo.prototype.isDisabledTarget=function(a,b){var c=a;while(c!==null&&c.tagName!="BODY"&&c.tagName!="HTML"){if(c.id){if(this.disabledTargets.indexOf(c.id)!=-1){return 0}}if(c.documentElement){c=null}else{c=c.parentElement}}c=a;while(b!==true&&c!==null&&c.tagName!="BODY"&&c.tagName!="HTML"){if(c.nodeName=="IFRAME"){return 3}if(c.documentElement){c=null}else{c=c.parentElement}}c=a;while(b!==true&&c!==null&&c.tagName!="BODY"&&c.tagName!="HTML"){if(c.nodeName=="INPUT"||c.nodeName=="TEXTAREA"){return 1}else if(c.nodeName=="A"){return 2}if(c.documentElement){c=null}else{c=c.parentElement}}return-1};var userScalableNo=new TuserScalableNo();