1(function(a){Type.registerNamespace("Telerik.Web.UI"); 2var b=Telerik.Web.UI; 3var c=false; 4Telerik.Web.UI.TouchScrollExtender=function(d){this._containerElements=a(d); 5var e=arguments[1]||{}; 6this._autoScan="autoScan" in e?e.autoScan:false; 7this._showScrollHints="showScrollHints" in e?e.showScrollHints:true; 8this._useRoundedHints="useRoundedHints" in e?e.useRoundedHints:true; 9this._hasHorizontalScrollHint=false; 10this._hasVerticalScrollHint=false; 11this._verticalScrollHint=false; 12this._horizontalScrollHint=false; 13this._lastAnimator=false; 14this._dragCanceled=false; 15this._currentTouches=0; 16this.containers=[]; 17this._enableTouchScroll=true; 18this._unbindBeforeDragging=false; 19}; 20Telerik.Web.UI.TouchScrollExtender._getNeedsScrollExtender=function(){return $telerik.isTouchDevice; 21}; 22Telerik.Web.UI.TouchScrollExtender.prototype={initialize:function(){if(this._enableTouchScroll){if(this._autoScan){this._containerElements=this._containerElements.add(a("*",this._containerElements)).filter(function(){return(a(this).css("overflow")=="scroll"||a(this).css("overflow")=="auto"); 23}); 24}var d=this; 25this._containerElements.each(function(){this.style.overflow="hidden"; 26var e=a(this).addClass("RadTouchExtender").css("-webkit-tap-highlight-color","rgba(0, 0, 0, 0);"); 27var f={element:e.stop(),horizontalScrollHint:a('<div id="horizontalScrollHint" style="position: absolute; display: none; z-index: 200000; font-size: 0; height: 3px; border: 1px solid #333; background: #777; " />').appendTo(this.parentNode),verticalScrollHint:a('<div id="verticalScrollHint" style="position: absolute; display: none; z-index: 200000; width: 3px; border: 1px solid #333; background: #777; " />').appendTo(this.parentNode)}; 28if(d._useRoundedHints){f.horizontalScrollHint.css({"-moz-border-radius":"3px","-webkit-border-radius":"3px","border-radius":"3px"}); 29f.verticalScrollHint.css({"-moz-border-radius":"3px","-webkit-border-radius":"3px","border-radius":"3px"}); 30}e.data("dragID",d.containers.push(f)-1); 31}); 32this._startDragProxy=a.proxy(this._startDrag,this); 33if(b.TouchScrollExtender._getNeedsScrollExtender()){this._onGestureStartProxy=a.proxy(this._onGestureStart,this); 34this._onGestureEndProxy=a.proxy(this._onGestureEnd,this); 35this._containerElements.bind("touchstart",this._startDragProxy); 36this._containerElements.bind("gesturestart",this._onGestureStartProxy); 37this._containerElements.bind("gestureend",this._onGestureEndProxy); 38}else{this._containerElements.bind("mousedown",this._startDragProxy); 39}this._storeLastLocation=a.throttle(100,function(e){this._lastAnimator.kX=e.x; 40this._lastAnimator.kY=e.y; 41}); 42this._alignScrollHints=a.throttle(20,function(){var h=0; 43var i=0; 44var f=this._lastAnimator.element[0]; 45var j=this._lastAnimator.horizontalScrollHint; 46var k=this._lastAnimator.verticalScrollHint; 47var e=this._getBorderBox(f); 48var g=a(f).position(); 49if(this._hasHorizontalScrollHint&&j){h=Math.abs(f.scrollLeft)*this._widthConstant+g.left+e.left; 50j.css({left:h}); 51}if(this._hasVerticalScrollHint&&k){i=Math.abs(f.scrollTop)*this._heightConstant+g.top+e.top; 52k.css({top:i}); 53}}); 54this._throttleScroll=a.throttle(10,function(e){this._lastAnimator.element[0].scrollLeft=this._lastAnimator.dragStartX-e.x; 55this._lastAnimator.element[0].scrollTop=this._lastAnimator.dragStartY-e.y; 56}); 57}this._scrollEndedDelegate=Function.createDelegate(this,this._scrollEnded); 58},dispose:function(){this.disable(); 59this._detachInitilalEvents(); 60this.containers=null; 61this._containerElements=null; 62this._events=null; 63this._scrollEndedDelegate=null; 64},_detachInitilalEvents:function(){if(this._containerElements){if(this._startDragProxy){this._containerElements.unbind("mousedown",this._startDragProxy); 65}if(this._onGestureStartProxy){this._containerElements.unbind("gesturestart",this._onGestureStartProxy); 66}if(this._onGestureEndProxy){this._containerElements.unbind("gestureend",this._onGestureEndProxy); 67}}},_startDrag:function(g){if(this._preventMultiTouch(g)){this._detachEvents(); 68c=false; 69return; 70}if(this._dragCanceled){return; 71}if(c){return; 72}var d=a(g.target); 73var f=d.parents(".RadTouchExtender"); 74if(d.hasClass("RadTouchExtender")){f=f.add(d); 75}var h=this._lastAnimator=this.containers[f.data("dragID")]; 76var i=h.element[0]; 77this._hasHorizontalScrollHint=i.offsetWidth<i.scrollWidth; 78this._hasVerticalScrollHint=i.offsetHeight<i.scrollHeight; 79h.hasDragged=false; 80if(this._hasHorizontalScrollHint||this._hasVerticalScrollHint){c=true; 81h.element.stop(true); 82h.originalEvent=g.originalEvent; 83if(!b.TouchScrollExtender._getNeedsScrollExtender()){this._cancelEvents(g); 84}var k=$telerik.getTouchEventLocation(g); 85h.kX=k.x; 86h.kY=k.y; 87var j=i.scrollLeft||0; 88var l=i.scrollTop||0; 89h.dragStartX=(j>0?j:0)+k.x; 90h.dragStartY=(l>0?l:0)+k.y; 91if(b.TouchScrollExtender._getNeedsScrollExtender()){if(this._unbindBeforeDragging){a(document.body).unbind({touchmove:a.proxy(this._compositeDragger,this),touchend:a.proxy(this._endDrag,this)}); 92}a(document.body).bind({touchmove:a.proxy(this._compositeDragger,this),touchend:a.proxy(this._endDrag,this)}); 93}else{a(document.body).bind({mousemove:a.proxy(this._compositeDragger,this),mouseup:a.proxy(this._endDrag,this)}); 94}}},_preventMultiTouch:function(d){if(d.originalEvent.touches&&d.originalEvent.touches.length>1){return true; 95}},_getBorderBox:function(f){var d={left:0,top:0,right:0,bottom:0,horizontal:0,vertical:0}; 96if(window.getComputedStyle){var e=window.getComputedStyle(f,null); 97d.left=parseInt(e.getPropertyValue("border-left-width"),10); 98d.right=parseInt(e.getPropertyValue("border-right-width"),10); 99d.top=parseInt(e.getPropertyValue("border-top-width"),10); 100d.bottom=parseInt(e.getPropertyValue("border-bottom-width"),10); 101}else{d.left=f.currentStyle.borderLeftWidth; 102d.right=f.currentStyle.borderRightWidth; 103d.top=f.currentStyle.borderTopWidth; 104d.bottom=f.currentStyle.borderBottomWidth; 105}d.horizontal=d.left+d.right; 106d.vertical=d.top+d.bottom; 107return d; 108},_addScrollHints:function(){if(this._showScrollHints){var k=0; 109var l=0; 110var i=this._lastAnimator; 111var e=i.element[0]; 112var d=this._getBorderBox(e); 113var g=a(e).position(); 114if(this._hasHorizontalScrollHint){var h=i.element.innerWidth(); 115var m=~~((h/e.scrollWidth)*h)-2; 116this._widthConstant=(m/h); 117setTimeout(function(){k=Math.abs(e.scrollLeft)*(m/h)+g.left+d.left; 118l=e.offsetHeight+g.top+d.top-7; 119i.horizontalScrollHint.width(m).css({left:k,top:l}); 120},0); 121i.horizontalScrollHint.fadeTo(200,0.5); 122}
122if(this._hasVerticalScrollHint){var f=i.element.innerHeight(); 123var j=~~((f/e.scrollHeight)*f)-2; 124this._heightConstant=(j/f); 125setTimeout(function(){l=Math.abs(e.scrollTop)*(j/f)+g.top+d.top; 126k=e.offsetWidth+g.left+d.left-7; 127i.verticalScrollHint.height(j).css({left:k,top:l}); 128},0); 129i.verticalScrollHint.fadeTo(200,0.5); 130}}},_removeScrollHints:function(){if(this._showScrollHints){var d=this._lastAnimator.horizontalScrollHint; 131var e=this._lastAnimator.verticalScrollHint; 132if(this._hasHorizontalScrollHint&&d){d.hide(); 133}if(this._hasVerticalScrollHint&&e){e.hide(); 134}}},_simpleDragger:function(d){if(this._dragCanceled){return; 135}this._cancelEvents(d); 136var f=$telerik.getTouchEventLocation(d); 137if(this._lastAnimator.element.length){this._throttleScroll(f); 138this._alignScrollHints(); 139}this._storeLastLocation(f); 140},_compositeDragger:function(d){if(this._dragCanceled){return; 141}var h=$telerik.getTouchEventLocation(d); 142var f=this._lastAnimator; 143var g=f.element[0]; 144this._cancelEvents(d,f,h,"compositeDragger"); 145if(Math.abs(f.kX-h.x)>10||Math.abs(f.kY-h.y)>10){f.hasDragged=true; 146this._addScrollHints(); 147if(b.TouchScrollExtender._getNeedsScrollExtender()){a(document.body).unbind("touchmove",this._compositeDragger).bind("touchmove",a.proxy(this._simpleDragger,this)); 148}else{a(document.body).unbind("mousemove",this._compositeDragger).bind("mousemove",a.proxy(this._simpleDragger,this)); 149}if($telerik.isIE){f.element.bind("click",this._cancelEvents); 150g.setCapture(true); 151}else{g.addEventListener("click",this._cancelEvents,true); 152}}},disable:function(){this._detachEvents(); 153c=false; 154this._dragCanceled=true; 155},enable:function(){this._dragCanceled=false; 156},_onGestureStart:function(){this._detachEvents(); 157c=false; 158this._dragCanceled=true; 159},_onGestureEnd:function(){this._dragCanceled=false; 160},_endDrag:function(d){if(this._dragCanceled){return; 161}c=false; 162this._cancelEvents(d); 163this._detachEvents(); 164if(b.TouchScrollExtender._getNeedsScrollExtender()){if(this._lastAnimator.originalEvent.touches.length==1&&!this._lastAnimator.hasDragged){var i=this._lastAnimator.originalEvent; 165var f=document.createEvent("MouseEvents"); 166f.initMouseEvent("click",i.bubbles,i.cancelable,i.view,i.detail,i.screenX,i.screenY,i.clientX,i.clientY,false,false,false,false,i.button,i.relatedTarget); 167i.target.dispatchEvent(f); 168}}var j=this; 169var h=$telerik.getTouchEventLocation(d); 170var g=this._lastAnimator; 171if($telerik.isIE){setTimeout(function(){g.element.unbind("click",j._cancelEvents); 172document.releaseCapture(); 173},10); 174}else{setTimeout(function(){g.element[0].removeEventListener("click",j._cancelEvents,true); 175},0); 176}if(g.hasDragged){if(g.element.length){g.endX=h.x; 177g.endY=h.y; 178}this._finishDrag(g); 179}},_detachEvents:function(){if(b.TouchScrollExtender._getNeedsScrollExtender()){a(document.body).unbind("touchmove",this._simpleDragger).unbind("touchmove",this._compositeDragger).unbind("touchend",this._endDrag); 180}else{a(document.body).unbind("mousemove",this._simpleDragger).unbind("mousemove",this._compositeDragger).unbind("mouseup",this._endDrag); 181}},_finishDrag:function(d){var f=d.element[0].scrollLeft+d.kX-d.endX; 182var g=d.element[0].scrollTop+d.kY-d.endY; 183d.kX=0; 184d.kY=0; 185var e=this; 186d.element.stop(true).animate({scrollLeft:f,scrollTop:g},{duration:500,easing:"easeOutQuad",complete:function(){e._removeScrollHints(); 187e._scrollEndedDelegate(); 188},step:function(){e._alignScrollHints(); 189}}); 190if(this._hasHorizontalScrollHint&&d.horizontalScrollHint){d.horizontalScrollHint.stop().css("opacity",0.5).fadeTo(450,0); 191}if(this._hasVerticalScrollHint&&d.verticalScrollHint){d.verticalScrollHint.stop().css("opacity",0.5).fadeTo(450,0); 192}},_cancelEvents:function(d){d.stopPropagation(); 193d.preventDefault(); 194},_setUnbindBeforeDragging:function(d){this._unbindBeforeDragging=d; 195},get_events:function(){if(!this._events){this._events=new Sys.EventHandlerList(); 196}return this._events; 197},_scrollEnded:function(){this._raiseEvent("scrollEnded",Sys.EventArgs.Empty); 198},add_scrollEnded:function(d){this.get_events().addHandler("scrollEnded",d); 199},remove_scrollEnded:function(d){this.get_events().removeHandler("scrollEnded",d); 200},_raiseEvent:function(e,d){var f=this.get_events().getHandler(e); 201if(f){if(!d){d=Sys.EventArgs.Empty; 202}f(this,d); 203}}}; 204Telerik.Web.UI.TouchScrollExtender.registerClass("Telerik.Web.UI.TouchScrollExtender",null,Sys.IDisposable); 205})($telerik.$); 206
207if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.