芝麻web文件管理V1.00
":"",t.desc=t.desc?''+t.desc.trim()+"
":"",t.caption=t.title+t.desc},e.getGalleryName=function(t){for(var e=0;t&&2>e;){if((t=t.parentNode)&&"FIGURE"===t.tagName&&t.parentNode)return t.parentNode.getAttribute("id");e++}},e.setGalleryName=function(t){var e=(e=(e=this.getAttr(t).rel||t.getAttribute("data-rel"))||this.getGalleryName(t))?e:Object.keys(this.galleries).length+1;return t=(t=this.galleries[e])?t:this.galleries[e]=[],t.name=e,t},e.setGalleryFeatures=function(t,e){t.zoom||"image"!==e.type||(t.zoom=!0),t.download||"image"!==e.type&&"html5"!==e.format||(t.download=!0)},e.setMediaEvent=function(t,e,i){t.mobxListener&&t.removeEventListener("click",t.mobxListener,!1),t.mobxListener=this.open.bind(this,e,i),t.addEventListener("click",t.mobxListener,!1),"undefined"!=typeof jQuery&&jQuery(t).on("click",t.mobxListener)},e.open=function(e,i,s){return s&&(s.preventDefault(),s.stopPropagation()),!!this.GUID&&(this.galleries.hasOwnProperty(e)?this.galleries[e].length?this.galleries[e][i]?(t.dispatchEvent(this,"modulobox","beforeOpen",e,i),this.slides.index=i,this.gallery=this.galleries[e],this.gallery.name=e,this.gallery.index=i,this.gallery.loaded=!1,this.removeContent(),this.wrapAround(),this.hideScrollBar(),this.setSlider(),this.setThumbs(),this.setCaption(),this.setMedia(this.options.preload),this.updateMediaInfo(),this.replaceState(),this.setControls(),this.bindEvents(!0),this.show(),this.options.videoAutoPlay&&this.appendVideo(),this.options.slideShowAutoPlay&&-1this.slider.width&&this.browser.touchDevice&&!this.options.prevNextTouch;this.buttons.prev.style.display=this.buttons.next.style.display=1=this.slider.width||480>=this.slider.height)),this.DOM.caption.style.display=this.states.caption?"":"none"},e.hideScrollBar=function(){if(!this.options.scrollBar){var t=this.states.open;document.body.style.overflow=document.documentElement.style.overflow="undefined"!==t&&t?"":"hidden"}},e.bindEvents=function(e){var i,s,o=window,n=document,r=this.options,a=this.DOM.holder,h=this.buttons;for(s in h)h.hasOwnProperty(s)&&t.handleEvents(this,"share"!==s?h[s]:o,["click","touchend"],h[s].event,e);t.handleEvents(this,a,this.dragEvents.start,"touchStart",e),t.handleEvents(this,o,["keydown"],"keyDown",e),t.handleEvents(this,o,["resize","orientationchange"],"resize",e),t.handleEvents(this,a,["transitionend","webkitTransitionEnd","oTransitionEnd","otransitionend","MSTransitionEnd"],"opened"),t.handleEvents(this,a,["touchend"],"disableZoom",e),this.browser.fullScreen&&t.handleEvents(this,n,[this.browser.fullScreen.change],"toggleFullScreen",e),r.history&&t.handleEvents(this,o,["mouseout"],"mouseOut",e),0t.delta*this.isRTL()?"prev":"next"]()},e.scrollToClose=function(t){this.isEl(t)&&(t.preventDefault(),this.close())},e.disableZoom=function(t){"VIDEO"!==t.target.tagName&&t.preventDefault()},e.resize=function(e){this.DOM.topBar.height=this.DOM.topBar.clientHeight,this.share(),this.setSlider(),this.setThumbsPosition(),this.setCaption(),this.resizeMedia(),this.updateMediaInfo(),this.setPrevNextButtons(),this.states.zoom=!1,t.removeClass(this.DOM.holder,this.pre+"-panzoom"),t.dispatchEvent(this,"modulobox","resize",e)},e.resizeMedia=function(){for(var t=this.slides,e=0;eMath.abs(i)?e:i,t=Math.min(100,Math.max(-100,t)),Math.abs(t)Math.abs(this.states.prevDelta)||60(i=s.left-i+s.width/2+20)&&(t="left",i=s.left+s.width/2-20),e.setAttribute("data-position",t),e.style.top=this.DOM.topBar.height+6+"px",e.style.left=i+"px"}},e.download=function(){if(!this.isDownloadable())return!1;var t=this.getMedia().src.replace(/\s/g,"").split(",")[0],e=document.createElement("a");e.href=t,e.download=(new Date).getTime(),e.setAttribute("target","_blank"),document.body.appendChild(e),e.click(),document.body.removeChild(e)},e.fullScreen=function(){document[this.browser.fullScreen.element]?this.exitFullScreen():this.requestFullScreen()},e.toggleFullScreen=function(){var e=this.DOM.holder,i=document[this.browser.fullScreen.element];i?i===e&&(this.setShareTooltip(),this.states.fullScreen=!0,t.addClass(e,this.pre+"-fullscreen")):(this.share(),this.states.fullScreen=!1,t.removeClass(e,this.pre+"-fullscreen")),this.videoFullScreen()},e.requestFullScreen=function(){var t=this.browser.fullScreen.request;document.documentElement[t]&&this.DOM.holder[t]()},e.exitFullScreen=function(){var t=this.browser.fullScreen.exit;document[t]&&document[t]()},e.play=function(){this.states.play?this.stopSlideShow():this.startSlideShow()},e.startSlideShow=function(){var e=0,i=this.gallery,s=this.options,o=this.states.loop,n=s.slideShowAutoStop,r=Math.max(120,s.slideShowInterval),a=s.countTimer,h=a&&this.DOM.timer?this.DOM.timer.getContext("2d"):null,l=function(t){if(t=t||+new Date,e=e||t,o&&!n||i.index!==i.initialLength-1){if(a&&h){var d=Math.PI/180*Math.min(1,(t-e+r)/r-1)*360;h.clearRect(0,0,48,48),this.timerProgress(h,s.countTimerBg,100),this.timerProgress(h,s.countTimerColor,d)}t>=e+r&&(e=t,this.slideTo(this.slides.index+1,!0)),this.timer=requestAnimationFrame(l)}else this.stopSlideShow()}.bind(this);t.addClass(this.DOM.holder,this.pre+"-autoplay"),this.states.play=!0,this.timer=requestAnimationFrame(l)},e.stopSlideShow=function(){cancelAnimationFrame(this.timer),t.removeClass(this.DOM.holder,this.pre+"-autoplay"),this.states.play=!1},e.timerProgress=function(t,e,i){var s=1.5*Math.PI;t.strokeStyle=e,t.lineWidth=5,t.beginPath(),t.arc(24,24,18,s,s+i,!1),t.stroke()},e.appendVideo=function(){var e=this.getMedia();if("video"===e.type){if(t.addClass(e.dom,this.pre+"-loading"),t.removeClass(e.dom,this.pre+"-playing"),!e.video){if("html5"===e.format){e.video=t.createEl("video"),e.video.setAttribute("controls",""),e.video.setAttribute("autoplay","");for(var i=e.src.replace(/\s/g,"").split(","),s=0;sr&&this.setMedia(r+2)),"iframe"===e.type&&(e.dom.loaded=!1)}},e.setMediaSize=function(t,e){var i=t.dom,s=this.slider,o=i.viewport,n=this.getThumbHeight();i.error||(o&&o.width===s.width&&o.height===s.height-n||(this.getCaptionHeight(t,e),this.getMediaSize(t,e),this.fitMediaSize(t,e),this.setMediaOffset(t,e)),s=i.style,s.width=i.size.width+"px",s.height=i.size.height+"px",s.left=i.offset.left+"px",s.top=i.offset.top+"px")},e.getCaptionHeight=function(t,e){var i=this.DOM.captionInner,s=this.DOM.topBar.height,o=i.innerHTML,n=this.getThumbHeight();this.options.caption&&this.states.caption&&t.caption?(i.innerHTML=t.caption,i.height=Math.max(s,parseInt(i.clientHeight,10))||s,i.innerHTML=o):i.height=n?0:s,e.width=this.slider.width,e.height=this.slider.height-s-i.height-n},e.getMediaSize=function(t,e){var i=t.dom.size={};switch(t.type){case"image":i.width=t.dom.naturalWidth,i.height=t.dom.naturalHeight;break;case"video":i.width=this.options.videoMaxWidth,i.height=i.width/this.options.videoRatio;break;case"iframe":i.width=t.width?t.width:680=o.width||680>=o.height,u=0>["video","iframe","HTML"].indexOf(t.type),p=[e.height];(n.smartResize&&d||n.overflow)&&u&&p.unshift(o.height-l),p.forEach(function(t){(!s||se.width?e.width:Math.round(i),s=Math.ceil(1/h*i),s=2>s%t?t:s)}),d=Number((a.width/i).toFixed(3)),t.dom.size={width:i,height:s,scale:d>=n.minZoom?Math.min(n.maxZoom,"auto"===r?d:r):1}},e.setMediaOffset=function(t,e){var i=t.dom.size,s=this.slider,o=this.DOM.topBar.height,n=this.getThumbHeight(),r=0;i.height<=e.height&&(r=o+.5*(e.height-i.height)),t.dom.offset={top:0>r?0:Math.round(r),left:Math.round(.5*(e.width-i.width))},t.dom.viewport={width:s.width,height:s.height-n}},e.mediaViewport=function(t){if(!(o=this.getMedia()).dom||!o.dom.size)return{top:0,bottom:0,left:0,right:0};var e=o.dom.size,i=o.dom.offset,s=this.slider.height,o=this.slider.width,n=.5*(s-e.height),r=(n=.5*(n-(r=2*i.top-n)))*t-2*n-r,i=e.width/2*(t-1)-i.left,a=e.height*t<=s?n*t:-e.height/2*(t-1)+s-e.height+r,s=e.height*t<=s?n*t:e.height/2*(t-1)+r;return{top:1>=t?0:Math.round(a),bottom:1>=t?0:Math.round(s),left:e.width*te?-e:0,l=i>h?h-i:l),r=r.map(function(e){return t.modulo(s.length,e+l+a)}),i=0;ie||!(-1i)this.DOM.caption.style.bottom=0,s.style.visibility="hidden",s.style.height=0,e.height=e.gutter=0;else{for(var o=this.options.thumbnailSizes,n=Math.max(window.innerWidth,Math.max(screen.width,screen.height)),s=0,r=Object.keys(o).sort(function(t,e){return t-e}),e=0;es&&(s=h),a>=n)break}for(o=document.createDocumentFragment(),i=50o.indexOf(".json")?"url("+o+")":null,"video"===s.type&&(t.addClass(s.thumb,this.pre+"-thumb-video"),t.addClass(s.thumb,this.pre+"-thumb-loaded"))}if(e[e.firstChild?"replaceChild":"appendChild"](s.thumb,e.firstChild),e.media=i,o){var n=new Image;n.onload=function(){t.addClass(s.thumb,this.pre+"-thumb-loaded")}.bind(this),n.src=o}},e.updateThumbs=function(){e=this.gallery;if(this.options.thumbnails&&!(2>e.initialLength)){var e=this.thumbs,i=this.getThumbPosition(e);e.stopAnimate(),i===e.position.x?this.shiftThumbs(e):Math.abs(i-e.position.x)>50*e.size?(this.DOM.thumbsHolder.style.visibility="hidden",e.position.x=i,t.translate(this.DOM.thumbsInner,i,0),this.renderThumbs(e),this.DOM.thumbsHolder.style.visibility=""):(e.startAnimate(),e.releaseDrag(),e.animateTo({x:i}))}},e.updateCaption=function(){if(this.options.caption){var t=(t=this.getMedia()).caption?t.caption:"",e=this.DOM.captionInner;e.innerHTML!==t&&(e.innerHTML=t)}},e.updateCounter=function(){if(this.options.counterMessage){var e=(i=this.gallery).initialLength,i=t.modulo(e,i.index),e=this.options.counterMessage.replace("[index]",i+1).replace("[total]",e);(i=this.DOM.counter).textContent!==e&&(i.textContent=e)}},e.wrapAround=function(){var e=this.options.loop,i=this.gallery,s=i.length;if(i.initialLength||(i.initialLength=s),this.states.loop=!!(e&&e<=s),this.states.loop&&sthis.gallery.initialLength)){for(var e,i=this.thumbs,s=this.slider,o=this.DOM.thumbsHolder,n=this.DOM.thumbsInner,r=this.options.thumbnailSizes,a=this.options.rightToLeft,h=Object.keys(r).sort(function(t,e){return e-t}),l=Math.max.apply(null,h),d=window.innerWidth,u=0;us.width?s.width-r:0},a&&(i.bound.right=r>s.width?s.width-i.size:r-i.size,i.bound.left=r-i.size),"centered"===this.options.thumbnailsNav&&(i.bound={left:r>s.width?Math.floor(.5*s.width-.5*i.size):Math.floor(.5*r-.5*i.size),right:r>s.width?Math.ceil(.5*s.width-r+.5*i.size):-Math.ceil(.5*r-.5*i.size)},a&&(i.bound.right=i.bound.left,i.bound.left=i.bound.left+r-i.size)),i.resetAnimate(),h=this.getThumbPosition(i),i.position.x=h,t.translate(n,h,0),h=this.getThumbHeight(),o.style.visibility=h?"":"hidden",o.style.height=h?h+"px":"",n.style.height=h?i.height+Math.min(10,i.gutter)+"px":"",n.style.width=i.length*i.size+"px",n.style.right=r>s.width&&a?"auto":""}},e.getThumbPosition=function(e){var i=this.slider,s=this.gallery,o=this.options.thumbnailsNav,n=this.isRTL(),r=0>n?"right":"left",s=t.modulo(s.initialLength,s.index),i=.5*i.width-.5*e.size,s=e.bound[r]-s*e.size*n,s=e.bound[r]?s+(0>n&&"centered"!==o?-i:0):s+i;return Math.max(e.bound.right,Math.min(e.bound.left,s))},e.setCellPosition=function(e){this.cells[e].resetAnimate(),t.translate(this.slides[e].children[0],0,0,1)},e.setSliderPosition=function(e,i){var s=this.options.rightToLeft,o=-i.index*i.width,o=s?-o:o;e.resetAnimate(),e.position.x=e.attraction.x=o,e.bound={left:0,right:-(this.gallery.length-1)*i.width},s&&(e.bound.left=-e.bound.right,e.bound.right=0),t.translate(this.DOM.slider,o,0)},e.setAnimation=function(){var t=this.DOM.slider,e=this.options.friction,s=this.options.attraction;this.slider=new i(t,{x:0,y:0},Math.min(Math.max(e.slider,0),1),Math.min(Math.max(s.slider,0),1)),this.slider.on("settle.toanimate",this.settleSider.bind(this)),this.slider.on("render.toanimate",this.renderSlider.bind(this));for(var o=(t=t.children).length,n=0;ns-.5?0:e)/(s-1))))},e.renderCell=function(e){if(this.willClose(e),"panY"===this.gesture.type||this.gesture.closeBy||"dragSlider"===this.gesture.type&&0!==e.position.y){var i=1-Math.abs(e.position.y)/(.5*this.slider.height);t.dispatchEvent(this,"modulobox","panYProgress",null,i)}"panY"!==this.gesture.type&&1!==e.position.s&&(i=e.position.s,t.dispatchEvent(this,"modulobox","panZoomProgress",null,i))},e.renderThumbs=function(e){this.shiftThumbs(e),t.dispatchEvent(this,"modulobox","thumbsProgress",null,e.bound.left!==e.bound.right?(e.bound.left-e.position.x)/(e.bound.left-e.bound.right):0)},e.touchStart=function(e){var i=e.target,s=i.tagName,o=i.className;3!==e.which&&i!==this.buttons.play&&this.stopSlideShow(),3===e.which||!this.isEl(e)||-1<["BUTTON","VIDEO","INPUT","A"].indexOf(s)||("IMG"===s&&1o.indexOf("-thumb")?(this.slider.stopAnimate(),e=this.getCell(),(1!=Math.round(100*e.position.s)/100||2===this.pointers.length||this.gesture.closeBy)&&e.stopAnimate()):this.thumbs.stopAnimate(),this.gestures("start")))},e.touchMove=function(e){this.updatePointer(e);var i=this.gesture,s=this.pointers.length,o=this.isSliderSettle();this.switchPointers(),this.gestures("move"),i.type?(this[i.type](e),t.dispatchEvent(this,"modulobox",i.type+"Move",e,i),i.move=!0):(2===s&&o||Math.abs(i.dx)>this.options.threshold||Math.abs(i.dy)>this.options.threshold)&&(i.sx+=i.dx,i.sy+=i.dy,i.canZoom=this.isZoomable(),i.closeBy=!1,i.type=!(Math.abs(i.dx)i.scale&&o&&2===s?"panZoom":i.type,i.type=-1+new Date-this.tap.delay&&30>Math.abs(this.tap.deltaX-i)&&30>Math.abs(this.tap.deltaY-s)?(this.states.tapIdle&&clearTimeout(this.states.tapIdle),this.options.doubleTapToZoom&&this.zoomTo(i,s),this.tap=void 0):(this.browser.touchDevice&&this.options.timeToIdle&&!this.states.idle&&(this.states.tapIdle=setTimeout(function(){var e=t.hasClass(this.DOM.holder,this.pre+"-idle")?"remove":"add";t[e+"Class"](this.DOM.holder,this.pre+"-idle")}.bind(this),350)),this.tap={delay:+new Date,deltaX:e[0].clientX,deltaY:e[0].clientY})},e.isSliderSettle=function(){if(this.gesture.type)return!1;var t=this.isRTL(),e=this.slides,i=e.width;return 3>=Math.abs(t*this.slider.position.x+e.index*i)/i*100},e.mapPointer=function(t){return t.touches?t.changedTouches:[t]},e.addPointer=function(t){t=this.mapPointer(t);for(var e=0;ethis.pointers.length&&-1===["dragSlider","panY","dragThumbs"].indexOf(this.gesture.type)){var i=t[e],s=void 0!==i.pointerId?i.pointerId:i.identifier;this.getPointer(s)||(this.pointers[this.pointers.length]={id:s,x:Math.round(i.clientX),y:Math.round(i.clientY)})}},e.updatePointer=function(t){t=this.mapPointer(t);for(var e=0;ee.x?1:-1:0,e.x=s[0].x,e.y=s[0].y,2===s.length){var i=s[1].x,s=s[1].y,o=this.getDistance([e.x,e.y],[i,s]);e.x-=(e.x-i)/2,e.y-=(e.y-s)/2}"start"===t?(e.dx=0,e.dy=0,e.sx=e.x,e.sy=e.y,e.distance=o||0):(e.dx=e.x-e.sx,e.dy=e.y-e.sy,e.scale=o&&e.distance?o/e.distance:1)}},e.getDistance=function(t,e){var i=e[0]-t[0],s=e[1]-t[1];return Math.sqrt(i*i+s*s)},e.panY=function(){var t=this.getCell();t.startAnimate(),t.updateDrag({x:t.position.x,y:t.start.y+this.gesture.dy,s:t.position.s})},e.panYEnd=function(){var t=this.getCell(),e=this.slider.height,i=t.resting.y;.8>1-Math.abs(i)/(.5*e)&&(e=Math.abs(i)<.5*e?Math.abs(i)/i*e*.5:i,this.close(),t.animateTo({x:0,y:e,s:e?t.resting.s:1}),t.startAnimate(),t.releaseDrag())},e.panZoom=function(){var t=this.getCell(),e=this.gesture,i=this.mediaViewport(t.position.s),s=Math.min(1.5*this.options.maxZoom,Math.max(this.options.pinchToClose&&e.canClose?.1:.6,t.start.s*e.scale)),o=t.start.x+e.dx,n=t.start.y+e.dy,r=e.sx-.5*this.slider.width,a=e.sy-.5*this.slider.height;e.canZoom&&(this.options.pinchToZoom||this.states.zoom)||(s=Math.min(1,s)),!this.options.pinchToZoom&&this.states.zoom&&(s=t.position.s),e.move||1!==this.pointers.length||(t.start.x+=o>i.left?o-i.left:oi.bottom?n-i.bottom:ni.left?.5*(o+i.left):oi.bottom?.5*(n+i.bottom):nthis.options.maxZoom?this.options.maxZoom:1>t.resting.s?1:t.resting.s,s=this.mediaViewport(i);if(Math.round(10*t.resting.s)/10>this.options.maxZoom){var o=e.distance?e.sx-.5*this.slider.width:0,n=e.distance?e.sy-.5*this.slider.height:0;o=e.dx+o+i/t.start.s*(t.start.x-o),n=e.dy+n+i/t.start.s*(t.start.y-n),o=o>s.left?s.left:os.bottom?s.bottom:ns.left?s.left:t.resting.xs.bottom?s.bottom:t.resting.yt.resting.s&&e.canClose&&(i=.3>t.resting.s?t.resting.s:.15,o=t.resting.x,n=t.resting.y,this.close()),t.animateTo({x:o,y:n,s:i!==t.resting.s?i:void 0}),t.startAnimate(),t.releaseDrag(),this.updateZoom(t.resting.s)},e.dragThumbs=function(){var t=this.thumbs,e=t.bound,i=t.start.x+this.gesture.dx;this.gesture.move||(t.start.x+=i>e.left?i-e.left:ie.left?.5*(i+e.left):ie.left?e.left:ii.left?e-i.left:ei.left?.5*(e+i.left):en&&0>i&&(a+=1*r)),i=Math.max(-1,Math.min(1,a-o.index)),!this.states.loop&&(0>s.index+i||s.index+i>s.length-1)||(o.index+=i)},e.shiftSlides=function(){var e=this.slides,i=this.gallery,s=this.states.loop,o=this.isRTL(),n=o*Math.round(-this.slider.position.x/e.width)-2,r=n+5;for(!s&&r>i.initialLength-1&&(n=i.initialLength-5,r=n+5),!s&&0>n&&(n=0,r=5),i=n;io.initialLength&&(h=o.initialLength,u=h-r),h===o.initialLength-1&&u-h=s&&u.media!==o&&this.loadThumb(u,o),m&&a!==o?t.removeClass(u,p):m||a!==o||t.addClass(u,p)}},e.setThumbSize=function(t,e){t.width===e.width&&t.height===e.height&&t.gutter===e.gutter||(t.width=e.width,t.height=e.height,t.gutter=e.gutter,t.style.width=e.width+"px",t.style.height=e.height+"px")},e.willClose=function(e){var i=this.DOM.overlay.style.opacity,s=this.gesture.canClose,o=this.gesture.type,n=this.gesture.closeBy,r="panY"===o||"panY"===n;1.1e.position.s&&void 0===s&&(this.gesture.canClose=!0),this.options.pinchToClose&&("panZoom"===o||"panZoom"===n)&&this.gesture.canClose?(i=e.position.s,this.gesture.closeBy="panZoom"):r?(i=1-Math.abs(e.position.y)/(.5*this.slider.height),this.gesture.closeBy="panY"):i&&1>i&&(i=1,this.gesture.closeBy=!1),i=i?Math.max(0,Math.min(1,i)):1,t[(.8>=i||!i?"add":"remove")+"Class"](this.DOM.holder,this.pre+"-will-close"),this.DOM.overlay.style.opacity=i},e.prev=t.throttle(function(){this.gesture.move||this.slideTo(this.slides.index-1*this.isRTL())},120),e.next=t.throttle(function(){this.gesture.move||this.slideTo(this.slides.index+1*this.isRTL())},120),e.slideTo=function(e,i){var s=this.slides,o=this.gallery,n=this.DOM.slider,r=this.isRTL(),a=o.initialLength,h=t.modulo(a,e),o=h-(o=t.modulo(a,o.index)),l=a-Math.abs(o);!this.states.loop&&(0>e||e>this.gallery.initialLength-1)||(this.states.loop&&3>l&&2*lo?l:-l),h===e&&(e=s.index+o),(o=e-s.index)&&(this.states.zoom&&this.zoom(),this.pauseVideo(),this.share(),i||this.stopSlideShow(),s.index=e,a=this.slider,2o.left?o.left:to.bottom?o.bottom:e