").attr({id:i,role:"tooltip"}).addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content "+(this.options.tooltipClass||""));return t("
").addClass("ui-tooltip-content").appendTo(n),n.appendTo(this.document[0].body),this.tooltips[i]=e,n},_find:function(e){var i=e.data("ui-tooltip-id");return i?t("#"+i):t()},_removeTooltip:function(t){t.remove(),delete this.tooltips[t.attr("id")]},_destroy:function(){var e=this;t.each(this.tooltips,function(i,s){var n=t.Event("blur");n.target=n.currentTarget=s[0],e.close(n,!0),t("#"+i).remove(),s.data("ui-tooltip-title")&&(s.attr("title",s.data("ui-tooltip-title")),s.removeData("ui-tooltip-title"))})}})})(jQuery);(function(t,e){var i="ui-effects-";t.effects={effect:{}},function(t,e){function i(t,e,i){var s=u[e.type]||{};return null==t?i||!e.def?null:e.def:(t=s.floor?~~t:parseFloat(t),isNaN(t)?e.def:s.mod?(t+s.mod)%s.mod:0>t?0:t>s.max?s.max:t)}function s(i){var s=h(),n=s._rgba=[];return i=i.toLowerCase(),f(l,function(t,a){var o,r=a.re.exec(i),l=r&&a.parse(r),h=a.space||"rgba";return l?(o=s[h](l),s[c[h].cache]=o[c[h].cache],n=s._rgba=o._rgba,!1):e}),n.length?("0,0,0,0"===n.join()&&t.extend(n,a.transparent),s):a[i]}function n(t,e,i){return i=(i+1)%1,1>6*i?t+6*(e-t)*i:1>2*i?e:2>3*i?t+6*(e-t)*(2/3-i):t}var a,o="backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",r=/^([\-+])=\s*(\d+\.?\d*)/,l=[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[t[1],t[2],t[3],t[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[2.55*t[1],2.55*t[2],2.55*t[3],t[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,parse:function(t){return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])/,parse:function(t){return[parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(t){return[t[1],t[2]/100,t[3]/100,t[4]]}}],h=t.Color=function(e,i,s,n){return new t.Color.fn.parse(e,i,s,n)},c={rgba:{props:{red:{idx:0,type:"byte"},green:{idx:1,type:"byte"},blue:{idx:2,type:"byte"}}},hsla:{props:{hue:{idx:0,type:"degrees"},saturation:{idx:1,type:"percent"},lightness:{idx:2,type:"percent"}}}},u={"byte":{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},d=h.support={},p=t("
")[0],f=t.each;p.style.cssText="background-color:rgba(1,1,1,.5)",d.rgba=p.style.backgroundColor.indexOf("rgba")>-1,f(c,function(t,e){e.cache="_"+t,e.props.alpha={idx:3,type:"percent",def:1}}),h.fn=t.extend(h.prototype,{parse:function(n,o,r,l){if(n===e)return this._rgba=[null,null,null,null],this;(n.jquery||n.nodeType)&&(n=t(n).css(o),o=e);var u=this,d=t.type(n),p=this._rgba=[];return o!==e&&(n=[n,o,r,l],d="array"),"string"===d?this.parse(s(n)||a._default):"array"===d?(f(c.rgba.props,function(t,e){p[e.idx]=i(n[e.idx],e)}),this):"object"===d?(n instanceof h?f(c,function(t,e){n[e.cache]&&(u[e.cache]=n[e.cache].slice())}):f(c,function(e,s){var a=s.cache;f(s.props,function(t,e){if(!u[a]&&s.to){if("alpha"===t||null==n[t])return;u[a]=s.to(u._rgba)}u[a][e.idx]=i(n[t],e,!0)}),u[a]&&0>t.inArray(null,u[a].slice(0,3))&&(u[a][3]=1,s.from&&(u._rgba=s.from(u[a])))}),this):e},is:function(t){var i=h(t),s=!0,n=this;return f(c,function(t,a){var o,r=i[a.cache];return r&&(o=n[a.cache]||a.to&&a.to(n._rgba)||[],f(a.props,function(t,i){return null!=r[i.idx]?s=r[i.idx]===o[i.idx]:e})),s}),s},_space:function(){var t=[],e=this;return f(c,function(i,s){e[s.cache]&&t.push(i)}),t.pop()},transition:function(t,e){var s=h(t),n=s._space(),a=c[n],o=0===this.alpha()?h("transparent"):this,r=o[a.cache]||a.to(o._rgba),l=r.slice();return s=s[a.cache],f(a.props,function(t,n){var a=n.idx,o=r[a],h=s[a],c=u[n.type]||{};null!==h&&(null===o?l[a]=h:(c.mod&&(h-o>c.mod/2?o+=c.mod:o-h>c.mod/2&&(o-=c.mod)),l[a]=i((h-o)*e+o,n)))}),this[n](l)},blend:function(e){if(1===this._rgba[3])return this;var i=this._rgba.slice(),s=i.pop(),n=h(e)._rgba;return h(t.map(i,function(t,e){return(1-s)*n[e]+s*t}))},toRgbaString:function(){var e="rgba(",i=t.map(this._rgba,function(t,e){return null==t?e>2?1:0:t});return 1===i[3]&&(i.pop(),e="rgb("),e+i.join()+")"},toHslaString:function(){var e="hsla(",i=t.map(this.hsla(),function(t,e){return null==t&&(t=e>2?1:0),e&&3>e&&(t=Math.round(100*t)+"%"),t});return 1===i[3]&&(i.pop(),e="hsl("),e+i.join()+")"},toHexString:function(e){var i=this._rgba.slice(),s=i.pop();return e&&i.push(~~(255*s)),"#"+t.map(i,function(t){return t=(t||0).toString(16),1===t.length?"0"+t:t}).join("")},toString:function(){return 0===this._rgba[3]?"transparent":this.toRgbaString()}}),h.fn.parse.prototype=h.fn,c.hsla.to=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e,i,s=t[0]/255,n=t[1]/255,a=t[2]/255,o=t[3],r=Math.max(s,n,a),l=Math.min(s,n,a),h=r-l,c=r+l,u=.5*c;return e=l===r?0:s===r?60*(n-a)/h+360:n===r?60*(a-s)/h+120:60*(s-n)/h+240,i=0===h?0:.5>=u?h/c:h/(2-c),[Math.round(e)%360,i,u,null==o?1:o]},c.hsla.from=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e=t[0]/360,i=t[1],s=t[2],a=t[3],o=.5>=s?s*(1+i):s+i-s*i,r=2*s-o;return[Math.round(255*n(r,o,e+1/3)),Math.round(255*n(r,o,e)),Math.round(255*n(r,o,e-1/3)),a]},f(c,function(s,n){var a=n.props,o=n.cache,l=n.to,c=n.from;h.fn[s]=function(s){if(l&&!this[o]&&(this[o]=l(this._rgba)),s===e)return this[o].slice();var n,r=t.type(s),u="array"===r||"object"===r?s:arguments,d=this[o].slice();return f(a,function(t,e){var s=u["object"===r?t:e.idx];null==s&&(s=d[e.idx]),d[e.idx]=i(s,e)}),c?(n=h(c(d)),n[o]=d,n):h(d)},f(a,function(e,i){h.fn[e]||(h.fn[e]=function(n){var a,o=t.type(n),l="alpha"===e?this._hsla?"hsla":"rgba":s,h=this[l](),c=h[i.idx];return"undefined"===o?c:("function"===o&&(n=n.call(this,c),o=t.type(n)),null==n&&i.empty?this:("string"===o&&(a=r.exec(n),a&&(n=c+parseFloat(a[2])*("+"===a[1]?1:-1))),h[i.idx]=n,this[l](h)))})})}),h.hook=function(e){var i=e.split(" ");f(i,function(e,i){t.cssHooks[i]={set:function(e,n){var a,o,r="";if("transparent"!==n&&("string"!==t.type(n)||(a=s(n)))){if(n=h(a||n),!d.rgba&&1!==n._rgba[3]){for(o="backgroundColor"===i?e.parentNode:e;(""===r||"transparent"===r)&&o&&o.style;)try{r=t.css(o,"backgroundColor"),o=o.parentNode}catch(l){}n=n.blend(r&&"transparent"!==r?r:"_default")}n=n.toRgbaString()}try{e.style[i]=n}catch(l){}}},t.fx.step[i]=function(e){e.colorInit||(e.start=h(e.elem,i),e.end=h(e.end),e.colorInit=!0),t.cssHooks[i].set(e.elem,e.start.transition(e.end,e.pos))}})},h.hook(o),t.cssHooks.borderColor={expand:function(t){var e={};return f(["Top","Right","Bottom","Left"],function(i,s){e["border"+s+"Color"]=t}),e}},a=t.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(jQuery),function(){function i(e){var i,s,n=e.ownerDocument.defaultView?e.ownerDocument.defaultView.getComputedStyle(e,null):e.currentStyle,a={};if(n&&n.length&&n[0]&&n[n[0]])for(s=n.length;s--;)i=n[s],"string"==typeof n[i]&&(a[t.camelCase(i)]=n[i]);else for(i in n)"string"==typeof n[i]&&(a[i]=n[i]);return a}function s(e,i){var s,n,o={};for(s in i)n=i[s],e[s]!==n&&(a[s]||(t.fx.step[s]||!isNaN(parseFloat(n)))&&(o[s]=n));return o}var n=["add","remove","toggle"],a={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};t.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(e,i){t.fx.step[i]=function(t){("none"!==t.end&&!t.setAttr||1===t.pos&&!t.setAttr)&&(jQuery.style(t.elem,i,t.end),t.setAttr=!0)}}),t.fn.addBack||(t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.effects.animateClass=function(e,a,o,r){var l=t.speed(a,o,r);return this.queue(function(){var a,o=t(this),r=o.attr("class")||"",h=l.children?o.find("*").addBack():o;h=h.map(function(){var e=t(this);return{el:e,start:i(this)}}),a=function(){t.each(n,function(t,i){e[i]&&o[i+"Class"](e[i])})},a(),h=h.map(function(){return this.end=i(this.el[0]),this.diff=s(this.start,this.end),this}),o.attr("class",r),h=h.map(function(){var e=this,i=t.Deferred(),s=t.extend({},l,{queue:!1,complete:function(){i.resolve(e)}});return this.el.animate(this.diff,s),i.promise()}),t.when.apply(t,h.get()).done(function(){a(),t.each(arguments,function(){var e=this.el;t.each(this.diff,function(t){e.css(t,"")})}),l.complete.call(o[0])})})},t.fn.extend({addClass:function(e){return function(i,s,n,a){return s?t.effects.animateClass.call(this,{add:i},s,n,a):e.apply(this,arguments)}}(t.fn.addClass),removeClass:function(e){return function(i,s,n,a){return arguments.length>1?t.effects.animateClass.call(this,{remove:i},s,n,a):e.apply(this,arguments)}}(t.fn.removeClass),toggleClass:function(i){return function(s,n,a,o,r){return"boolean"==typeof n||n===e?a?t.effects.animateClass.call(this,n?{add:s}:{remove:s},a,o,r):i.apply(this,arguments):t.effects.animateClass.call(this,{toggle:s},n,a,o)}}(t.fn.toggleClass),switchClass:function(e,i,s,n,a){return t.effects.animateClass.call(this,{add:i,remove:e},s,n,a)}})}(),function(){function s(e,i,s,n){return t.isPlainObject(e)&&(i=e,e=e.effect),e={effect:e},null==i&&(i={}),t.isFunction(i)&&(n=i,s=null,i={}),("number"==typeof i||t.fx.speeds[i])&&(n=s,s=i,i={}),t.isFunction(s)&&(n=s,s=null),i&&t.extend(e,i),s=s||i.duration,e.duration=t.fx.off?0:"number"==typeof s?s:s in t.fx.speeds?t.fx.speeds[s]:t.fx.speeds._default,e.complete=n||i.complete,e}function n(e){return!e||"number"==typeof e||t.fx.speeds[e]?!0:"string"!=typeof e||t.effects.effect[e]?t.isFunction(e)?!0:"object"!=typeof e||e.effect?!1:!0:!0}t.extend(t.effects,{version:"1.10.4",save:function(t,e){for(var s=0;e.length>s;s++)null!==e[s]&&t.data(i+e[s],t[0].style[e[s]])},restore:function(t,s){var n,a;for(a=0;s.length>a;a++)null!==s[a]&&(n=t.data(i+s[a]),n===e&&(n=""),t.css(s[a],n))},setMode:function(t,e){return"toggle"===e&&(e=t.is(":hidden")?"show":"hide"),e},getBaseline:function(t,e){var i,s;switch(t[0]){case"top":i=0;break;case"middle":i=.5;break;case"bottom":i=1;break;default:i=t[0]/e.height}switch(t[1]){case"left":s=0;break;case"center":s=.5;break;case"right":s=1;break;default:s=t[1]/e.width}return{x:s,y:i}},createWrapper:function(e){if(e.parent().is(".ui-effects-wrapper"))return e.parent();var i={width:e.outerWidth(!0),height:e.outerHeight(!0),"float":e.css("float")},s=t("
").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),n={width:e.width(),height:e.height()},a=document.activeElement;try{a.id}catch(o){a=document.body}return e.wrap(s),(e[0]===a||t.contains(e[0],a))&&t(a).focus(),s=e.parent(),"static"===e.css("position")?(s.css({position:"relative"}),e.css({position:"relative"})):(t.extend(i,{position:e.css("position"),zIndex:e.css("z-index")}),t.each(["top","left","bottom","right"],function(t,s){i[s]=e.css(s),isNaN(parseInt(i[s],10))&&(i[s]="auto")}),e.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),e.css(n),s.css(i).show()},removeWrapper:function(e){var i=document.activeElement;return e.parent().is(".ui-effects-wrapper")&&(e.parent().replaceWith(e),(e[0]===i||t.contains(e[0],i))&&t(i).focus()),e},setTransition:function(e,i,s,n){return n=n||{},t.each(i,function(t,i){var a=e.cssUnit(i);a[0]>0&&(n[i]=a[0]*s+a[1])}),n}}),t.fn.extend({effect:function(){function e(e){function s(){t.isFunction(a)&&a.call(n[0]),t.isFunction(e)&&e()}var n=t(this),a=i.complete,r=i.mode;(n.is(":hidden")?"hide"===r:"show"===r)?(n[r](),s()):o.call(n[0],i,s)}var i=s.apply(this,arguments),n=i.mode,a=i.queue,o=t.effects.effect[i.effect];return t.fx.off||!o?n?this[n](i.duration,i.complete):this.each(function(){i.complete&&i.complete.call(this)}):a===!1?this.each(e):this.queue(a||"fx",e)},show:function(t){return function(e){if(n(e))return t.apply(this,arguments);var i=s.apply(this,arguments);return i.mode="show",this.effect.call(this,i)}}(t.fn.show),hide:function(t){return function(e){if(n(e))return t.apply(this,arguments);var i=s.apply(this,arguments);return i.mode="hide",this.effect.call(this,i)}}(t.fn.hide),toggle:function(t){return function(e){if(n(e)||"boolean"==typeof e)return t.apply(this,arguments);var i=s.apply(this,arguments);return i.mode="toggle",this.effect.call(this,i)}}(t.fn.toggle),cssUnit:function(e){var i=this.css(e),s=[];return t.each(["em","px","%","pt"],function(t,e){i.indexOf(e)>0&&(s=[parseFloat(i),e])}),s}})}(),function(){var e={};t.each(["Quad","Cubic","Quart","Quint","Expo"],function(t,i){e[i]=function(e){return Math.pow(e,t+2)}}),t.extend(e,{Sine:function(t){return 1-Math.cos(t*Math.PI/2)},Circ:function(t){return 1-Math.sqrt(1-t*t)},Elastic:function(t){return 0===t||1===t?t:-Math.pow(2,8*(t-1))*Math.sin((80*(t-1)-7.5)*Math.PI/15)},Back:function(t){return t*t*(3*t-2)},Bounce:function(t){for(var e,i=4;((e=Math.pow(2,--i))-1)/11>t;);return 1/Math.pow(4,3-i)-7.5625*Math.pow((3*e-2)/22-t,2)}}),t.each(e,function(e,i){t.easing["easeIn"+e]=i,t.easing["easeOut"+e]=function(t){return 1-i(1-t)},t.easing["easeInOut"+e]=function(t){return.5>t?i(2*t)/2:1-i(-2*t+2)/2}})}()})(jQuery);(function(t){var e=/up|down|vertical/,i=/up|left|vertical|horizontal/;t.effects.effect.blind=function(s,n){var a,o,r,l=t(this),h=["position","top","bottom","left","right","height","width"],c=t.effects.setMode(l,s.mode||"hide"),u=s.direction||"up",d=e.test(u),p=d?"height":"width",f=d?"top":"left",g=i.test(u),m={},v="show"===c;l.parent().is(".ui-effects-wrapper")?t.effects.save(l.parent(),h):t.effects.save(l,h),l.show(),a=t.effects.createWrapper(l).css({overflow:"hidden"}),o=a[p](),r=parseFloat(a.css(f))||0,m[p]=v?o:0,g||(l.css(d?"bottom":"right",0).css(d?"top":"left","auto").css({position:"absolute"}),m[f]=v?r:o+r),v&&(a.css(p,0),g||a.css(f,r+o)),a.animate(m,{duration:s.duration,easing:s.easing,queue:!1,complete:function(){"hide"===c&&l.hide(),t.effects.restore(l,h),t.effects.removeWrapper(l),n()}})}})(jQuery);(function(t){t.effects.effect.bounce=function(e,i){var s,n,a,o=t(this),r=["position","top","bottom","left","right","height","width"],l=t.effects.setMode(o,e.mode||"effect"),h="hide"===l,c="show"===l,u=e.direction||"up",d=e.distance,p=e.times||5,f=2*p+(c||h?1:0),g=e.duration/f,m=e.easing,v="up"===u||"down"===u?"top":"left",_="up"===u||"left"===u,b=o.queue(),y=b.length;for((c||h)&&r.push("opacity"),t.effects.save(o,r),o.show(),t.effects.createWrapper(o),d||(d=o["top"===v?"outerHeight":"outerWidth"]()/3),c&&(a={opacity:1},a[v]=0,o.css("opacity",0).css(v,_?2*-d:2*d).animate(a,g,m)),h&&(d/=Math.pow(2,p-1)),a={},a[v]=0,s=0;p>s;s++)n={},n[v]=(_?"-=":"+=")+d,o.animate(n,g,m).animate(a,g,m),d=h?2*d:d/2;h&&(n={opacity:0},n[v]=(_?"-=":"+=")+d,o.animate(n,g,m)),o.queue(function(){h&&o.hide(),t.effects.restore(o,r),t.effects.removeWrapper(o),i()}),y>1&&b.splice.apply(b,[1,0].concat(b.splice(y,f+1))),o.dequeue()}})(jQuery);(function(t){t.effects.effect.clip=function(e,i){var s,n,a,o=t(this),r=["position","top","bottom","left","right","height","width"],l=t.effects.setMode(o,e.mode||"hide"),h="show"===l,c=e.direction||"vertical",u="vertical"===c,d=u?"height":"width",p=u?"top":"left",f={};t.effects.save(o,r),o.show(),s=t.effects.createWrapper(o).css({overflow:"hidden"}),n="IMG"===o[0].tagName?s:o,a=n[d](),h&&(n.css(d,0),n.css(p,a/2)),f[d]=h?a:0,f[p]=h?0:a/2,n.animate(f,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){h||o.hide(),t.effects.restore(o,r),t.effects.removeWrapper(o),i()}})}})(jQuery);(function(t){t.effects.effect.drop=function(e,i){var s,n=t(this),a=["position","top","bottom","left","right","opacity","height","width"],o=t.effects.setMode(n,e.mode||"hide"),r="show"===o,l=e.direction||"left",h="up"===l||"down"===l?"top":"left",c="up"===l||"left"===l?"pos":"neg",u={opacity:r?1:0};t.effects.save(n,a),n.show(),t.effects.createWrapper(n),s=e.distance||n["top"===h?"outerHeight":"outerWidth"](!0)/2,r&&n.css("opacity",0).css(h,"pos"===c?-s:s),u[h]=(r?"pos"===c?"+=":"-=":"pos"===c?"-=":"+=")+s,n.animate(u,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){"hide"===o&&n.hide(),t.effects.restore(n,a),t.effects.removeWrapper(n),i()}})}})(jQuery);(function(t){t.effects.effect.explode=function(e,i){function s(){b.push(this),b.length===u*d&&n()}function n(){p.css({visibility:"visible"}),t(b).remove(),g||p.hide(),i()}var a,o,r,l,h,c,u=e.pieces?Math.round(Math.sqrt(e.pieces)):3,d=u,p=t(this),f=t.effects.setMode(p,e.mode||"hide"),g="show"===f,m=p.show().css("visibility","hidden").offset(),v=Math.ceil(p.outerWidth()/d),_=Math.ceil(p.outerHeight()/u),b=[];for(a=0;u>a;a++)for(l=m.top+a*_,c=a-(u-1)/2,o=0;d>o;o++)r=m.left+o*v,h=o-(d-1)/2,p.clone().appendTo("body").wrap("
").css({position:"absolute",visibility:"visible",left:-o*v,top:-a*_}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:v,height:_,left:r+(g?h*v:0),top:l+(g?c*_:0),opacity:g?0:1}).animate({left:r+(g?0:h*v),top:l+(g?0:c*_),opacity:g?1:0},e.duration||500,e.easing,s)}})(jQuery);(function(t){t.effects.effect.fade=function(e,i){var s=t(this),n=t.effects.setMode(s,e.mode||"toggle");s.animate({opacity:n},{queue:!1,duration:e.duration,easing:e.easing,complete:i})}})(jQuery);(function(t){t.effects.effect.fold=function(e,i){var s,n,a=t(this),o=["position","top","bottom","left","right","height","width"],r=t.effects.setMode(a,e.mode||"hide"),l="show"===r,h="hide"===r,c=e.size||15,u=/([0-9]+)%/.exec(c),d=!!e.horizFirst,p=l!==d,f=p?["width","height"]:["height","width"],g=e.duration/2,m={},v={};t.effects.save(a,o),a.show(),s=t.effects.createWrapper(a).css({overflow:"hidden"}),n=p?[s.width(),s.height()]:[s.height(),s.width()],u&&(c=parseInt(u[1],10)/100*n[h?0:1]),l&&s.css(d?{height:0,width:c}:{height:c,width:0}),m[f[0]]=l?n[0]:c,v[f[1]]=l?n[1]:0,s.animate(m,g,e.easing).animate(v,g,e.easing,function(){h&&a.hide(),t.effects.restore(a,o),t.effects.removeWrapper(a),i()})}})(jQuery);(function(t){t.effects.effect.highlight=function(e,i){var s=t(this),n=["backgroundImage","backgroundColor","opacity"],a=t.effects.setMode(s,e.mode||"show"),o={backgroundColor:s.css("backgroundColor")};"hide"===a&&(o.opacity=0),t.effects.save(s,n),s.show().css({backgroundImage:"none",backgroundColor:e.color||"#ffff99"}).animate(o,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){"hide"===a&&s.hide(),t.effects.restore(s,n),i()}})}})(jQuery);(function(t){t.effects.effect.pulsate=function(e,i){var s,n=t(this),a=t.effects.setMode(n,e.mode||"show"),o="show"===a,r="hide"===a,l=o||"hide"===a,h=2*(e.times||5)+(l?1:0),c=e.duration/h,u=0,d=n.queue(),p=d.length;for((o||!n.is(":visible"))&&(n.css("opacity",0).show(),u=1),s=1;h>s;s++)n.animate({opacity:u},c,e.easing),u=1-u;n.animate({opacity:u},c,e.easing),n.queue(function(){r&&n.hide(),i()}),p>1&&d.splice.apply(d,[1,0].concat(d.splice(p,h+1))),n.dequeue()}})(jQuery);(function(t){t.effects.effect.puff=function(e,i){var s=t(this),n=t.effects.setMode(s,e.mode||"hide"),a="hide"===n,o=parseInt(e.percent,10)||150,r=o/100,l={height:s.height(),width:s.width(),outerHeight:s.outerHeight(),outerWidth:s.outerWidth()};t.extend(e,{effect:"scale",queue:!1,fade:!0,mode:n,complete:i,percent:a?o:100,from:a?l:{height:l.height*r,width:l.width*r,outerHeight:l.outerHeight*r,outerWidth:l.outerWidth*r}}),s.effect(e)},t.effects.effect.scale=function(e,i){var s=t(this),n=t.extend(!0,{},e),a=t.effects.setMode(s,e.mode||"effect"),o=parseInt(e.percent,10)||(0===parseInt(e.percent,10)?0:"hide"===a?0:100),r=e.direction||"both",l=e.origin,h={height:s.height(),width:s.width(),outerHeight:s.outerHeight(),outerWidth:s.outerWidth()},c={y:"horizontal"!==r?o/100:1,x:"vertical"!==r?o/100:1};n.effect="size",n.queue=!1,n.complete=i,"effect"!==a&&(n.origin=l||["middle","center"],n.restore=!0),n.from=e.from||("show"===a?{height:0,width:0,outerHeight:0,outerWidth:0}:h),n.to={height:h.height*c.y,width:h.width*c.x,outerHeight:h.outerHeight*c.y,outerWidth:h.outerWidth*c.x},n.fade&&("show"===a&&(n.from.opacity=0,n.to.opacity=1),"hide"===a&&(n.from.opacity=1,n.to.opacity=0)),s.effect(n)},t.effects.effect.size=function(e,i){var s,n,a,o=t(this),r=["position","top","bottom","left","right","width","height","overflow","opacity"],l=["position","top","bottom","left","right","overflow","opacity"],h=["width","height","overflow"],c=["fontSize"],u=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],d=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],p=t.effects.setMode(o,e.mode||"effect"),f=e.restore||"effect"!==p,g=e.scale||"both",m=e.origin||["middle","center"],v=o.css("position"),_=f?r:l,b={height:0,width:0,outerHeight:0,outerWidth:0};"show"===p&&o.show(),s={height:o.height(),width:o.width(),outerHeight:o.outerHeight(),outerWidth:o.outerWidth()},"toggle"===e.mode&&"show"===p?(o.from=e.to||b,o.to=e.from||s):(o.from=e.from||("show"===p?b:s),o.to=e.to||("hide"===p?b:s)),a={from:{y:o.from.height/s.height,x:o.from.width/s.width},to:{y:o.to.height/s.height,x:o.to.width/s.width}},("box"===g||"both"===g)&&(a.from.y!==a.to.y&&(_=_.concat(u),o.from=t.effects.setTransition(o,u,a.from.y,o.from),o.to=t.effects.setTransition(o,u,a.to.y,o.to)),a.from.x!==a.to.x&&(_=_.concat(d),o.from=t.effects.setTransition(o,d,a.from.x,o.from),o.to=t.effects.setTransition(o,d,a.to.x,o.to))),("content"===g||"both"===g)&&a.from.y!==a.to.y&&(_=_.concat(c).concat(h),o.from=t.effects.setTransition(o,c,a.from.y,o.from),o.to=t.effects.setTransition(o,c,a.to.y,o.to)),t.effects.save(o,_),o.show(),t.effects.createWrapper(o),o.css("overflow","hidden").css(o.from),m&&(n=t.effects.getBaseline(m,s),o.from.top=(s.outerHeight-o.outerHeight())*n.y,o.from.left=(s.outerWidth-o.outerWidth())*n.x,o.to.top=(s.outerHeight-o.to.outerHeight)*n.y,o.to.left=(s.outerWidth-o.to.outerWidth)*n.x),o.css(o.from),("content"===g||"both"===g)&&(u=u.concat(["marginTop","marginBottom"]).concat(c),d=d.concat(["marginLeft","marginRight"]),h=r.concat(u).concat(d),o.find("*[width]").each(function(){var i=t(this),s={height:i.height(),width:i.width(),outerHeight:i.outerHeight(),outerWidth:i.outerWidth()};f&&t.effects.save(i,h),i.from={height:s.height*a.from.y,width:s.width*a.from.x,outerHeight:s.outerHeight*a.from.y,outerWidth:s.outerWidth*a.from.x},i.to={height:s.height*a.to.y,width:s.width*a.to.x,outerHeight:s.height*a.to.y,outerWidth:s.width*a.to.x},a.from.y!==a.to.y&&(i.from=t.effects.setTransition(i,u,a.from.y,i.from),i.to=t.effects.setTransition(i,u,a.to.y,i.to)),a.from.x!==a.to.x&&(i.from=t.effects.setTransition(i,d,a.from.x,i.from),i.to=t.effects.setTransition(i,d,a.to.x,i.to)),i.css(i.from),i.animate(i.to,e.duration,e.easing,function(){f&&t.effects.restore(i,h)})})),o.animate(o.to,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){0===o.to.opacity&&o.css("opacity",o.from.opacity),"hide"===p&&o.hide(),t.effects.restore(o,_),f||("static"===v?o.css({position:"relative",top:o.to.top,left:o.to.left}):t.each(["top","left"],function(t,e){o.css(e,function(e,i){var s=parseInt(i,10),n=t?o.to.left:o.to.top;return"auto"===i?n+"px":s+n+"px"})})),t.effects.removeWrapper(o),i()}})}})(jQuery);(function(t){t.effects.effect.shake=function(e,i){var s,n=t(this),a=["position","top","bottom","left","right","height","width"],o=t.effects.setMode(n,e.mode||"effect"),r=e.direction||"left",l=e.distance||20,h=e.times||3,c=2*h+1,u=Math.round(e.duration/c),d="up"===r||"down"===r?"top":"left",p="up"===r||"left"===r,f={},g={},m={},v=n.queue(),_=v.length;for(t.effects.save(n,a),n.show(),t.effects.createWrapper(n),f[d]=(p?"-=":"+=")+l,g[d]=(p?"+=":"-=")+2*l,m[d]=(p?"-=":"+=")+2*l,n.animate(f,u,e.easing),s=1;h>s;s++)n.animate(g,u,e.easing).animate(m,u,e.easing);n.animate(g,u,e.easing).animate(f,u/2,e.easing).queue(function(){"hide"===o&&n.hide(),t.effects.restore(n,a),t.effects.removeWrapper(n),i()}),_>1&&v.splice.apply(v,[1,0].concat(v.splice(_,c+1))),n.dequeue()}})(jQuery);(function(t){t.effects.effect.slide=function(e,i){var s,n=t(this),a=["position","top","bottom","left","right","width","height"],o=t.effects.setMode(n,e.mode||"show"),r="show"===o,l=e.direction||"left",h="up"===l||"down"===l?"top":"left",c="up"===l||"left"===l,u={};t.effects.save(n,a),n.show(),s=e.distance||n["top"===h?"outerHeight":"outerWidth"](!0),t.effects.createWrapper(n).css({overflow:"hidden"}),r&&n.css(h,c?isNaN(s)?"-"+s:-s:s),u[h]=(r?c?"+=":"-=":c?"-=":"+=")+s,n.animate(u,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){"hide"===o&&n.hide(),t.effects.restore(n,a),t.effects.removeWrapper(n),i()}})}})(jQuery);(function(t){t.effects.effect.transfer=function(e,i){var s=t(this),n=t(e.to),a="fixed"===n.css("position"),o=t("body"),r=a?o.scrollTop():0,l=a?o.scrollLeft():0,h=n.offset(),c={top:h.top-r,left:h.left-l,height:n.innerHeight(),width:n.innerWidth()},u=s.offset(),d=t("
").appendTo(document.body).addClass(e.className).css({top:u.top-r,left:u.left-l,height:s.innerHeight(),width:s.innerWidth(),position:a?"fixed":"absolute"}).animate(c,e.duration,e.easing,function(){d.remove(),i()})}})(jQuery);/*
* jQuery TransForm plugin v1.0
* http://jquery.sunhater.com/transForm
* 2014-08-01
*
* Copyright (c) 2014 Pavel Tzonkov
* Dual licensed under the MIT and GPL licenses.
*/
(function($) {
var scrollbarWidth;
$.fn.transForm = function(options) {
// Get scrollbar width
if (!scrollbarWidth) {
var div = $('').css({
display: 'block',
visibility: 'visible',
position: 'absolute',
overflow: 'auto',
width: 100,
height: 100,
top: -1000,
left: -1000
}).prependTo('body').append('').find('div').css({
display: 'block',
visibility: 'visible',
width: '100%',
height: 200
});
scrollbarWidth = 100 - div.width();
div.parent().remove();
}
var tags = "|form|fieldset|input|select|textarea|button|label|",
fields = "|text|password|color|datetime|datetime-local|email|month|number|range|search|tel|time|url|week|",
buttons = "|button|submit|reset|",
o = {
cssPrefix: "tf-",
file: {
noFile: "No file chosen",
browse: "Browse",
count: "{count} files"
},
textarea: {
autoExpand: false,
maxLength: 0
}
},
outerSpace = function(selector, type, mbp) {
var r = 0, x;
if (!mbp) mbp = "mbp";
if (/m/i.test(mbp)) {
x = parseInt($(selector).css('margin-' + type));
if (x) r += x;
}
if (/b/i.test(mbp)) {
x = parseInt($(selector).css('border-' + type + '-width'));
if (x) r += x;
}
if (/p/i.test(mbp)) {
x = parseInt($(selector).css('padding-' + type));
if (x) r += x;
}
return r;
},
outerLeftSpace = function(selector, mbp) {
return outerSpace(selector, 'left', mbp);
},
outerTopSpace = function(selector, mbp) {
return outerSpace(selector, 'top', mbp);
},
outerRightSpace = function(selector, mbp) {
return outerSpace(selector, 'right', mbp);
},
outerBottomSpace = function(selector, mbp) {
return outerSpace(selector, 'bottom', mbp);
},
outerHSpace = function(selector, mbp) {
return (outerLeftSpace(selector, mbp) + outerRightSpace(selector, mbp));
},
outerVSpace = function(selector, mbp) {
return (outerTopSpace(selector, mbp) + outerBottomSpace(selector, mbp));
},
disablePageScroll = function(selector) {
var evts = 'mousewheel.tf DOMMouseScroll.tf';
$(selector).unbind(evts).bind(evts, function(e) {
var e0 = e.originalEvent,
delta = e0.wheelDelta || -e0.detail;
this.scrollTop += ((delta < 0) ? 1 : -1) * 30;
e.preventDefault();
});
},
disableSelect = function(selector) {
$(selector).each(function() {
var evts = 'selectstart.tf';
$(this).css('MozUserSelect', "none");
$(this).unbind(evts).bind(evts, function() {
return false;
});
});
};
$.extend(true, o, options);
$(this).each(function() {
var t = this,
tagName = $(t).prop("tagName").toLowerCase();
// Skip non-form tags
if (tags.indexOf("|" + tagName + "|") == -1)
return;
var destroy = (options === false),
transForm = $(t).data('transForm'),
construct = (!destroy && !transForm),
destruct = (destroy && transForm),
prefix = transForm ? transForm.prefix : o.cssPrefix,
type = $(t).attr('type'),
type = type ? type : "text",
el, store = {},
toggleClass = function(el, cssClass) {
if (construct)
$(el).addClass(cssClass);
else if (destruct)
$(el).removeClass(cssClass);
},
cls = function(pClass) {
return prefix + pClass;
},
sel = function(pClass) {
return '.' + cls(pClass);
},
data = { // target parameter may be removed in the future
set: function(object, target) {
if (typeof target == 'undefined')
target = t;
var d = $(target).data('transForm');
if (!d) d = {};
$.extend(true, d, object);
$(target).data('transForm', d);
},
get: function(key, target) {
if (typeof target == 'undefined')
target = t;
var d = $(target).data('transForm');
if (typeof key == 'undefined')
return d;
if (!d) d = {};
return d[key];
},
remove: function(key, target) {
if (typeof target == 'undefined')
target = t;
var d = $(target).data('transForm');
if (!d) d = {};
if (typeof d[key] == 'undefined')
return;
delete d[key];
}
},
build = {
form: function() {
$(t).find(tags.substr(1, tags.length - 2).replace(/\|/g, ",")).transForm(options);
toggleClass(t, cls(tagName));
},
fieldset: function() {
this.form();
},
label: function() {
if ($(t).is('[for]'))
toggleClass(t, cls('label'));
},
input: function() {
if (this[type])
this[type]();
if (!el) {
toggleClass(t, cls("input"));
toggleClass(t, cls(type));
}
if (fields.indexOf('|' + type + '|') !== -1)
t.transForm.readOnly = function(readOnly) {
t.readOnly = readOnly;
if (readOnly)
$(t).addClass(cls('readOnly'));
else
$(t).removeClass(cls('readOnly'));
};
},
select: function() {
if ($(t).attr('multiple')) {
this.multiple();
return;
}
if (!construct) {
el = $(t).parent();
return;
}
el = $('');
var menu = el.find(sel('menu')),
selected = el.find(sel('selected')),
button = el.find(sel('button')),
clicked = false;
$(t).bind('keydown.tf', function(e) {
var code = e.keyCode,
up = (code == 38),
down = (code == 40),
enter = (code == 13),
space = (code == 32),
tab = (code == 9),
esc = (code == 27);
if ((e.metaKey && (code == 82)) || (code == 116))
return true;
if (e.ctrlKey || e.shiftKey || e.altKey || e.metaKey)
return false;
if (up || down) {
var current = selectCurrent();
var i = parseInt(current.attr('class').split(cls('index-'))[1].split(/\s/)[0]),
opts = menu.find('div'),
count = menu.data('count');
if (up) {
var prev = (i == 0) ? (count - 1) : (i - 1);
prev = opts[prev];
current.removeClass(cls('hover'));
current = $(prev);
} else {
var next = (i == count - 1) ? 0 : (i + 1);
next = opts[next];
current.removeClass(cls('hover'));
current = $(next);
}
opts.removeClass(cls('hover'));
current.addClass(cls('hover'));
data.set({current: current});
$(t).find('option').removeAttr('selected');
current.data('option').selected = true;
update();
}
if (space || enter) {
el.toggleClass(cls('opened'));
selectCurrent();
}
if (esc)
el.removeClass(cls('opened'));
if (!tab)
return false;
}).bind('focus.tf', function() {
el.addClass(cls('focused'));
}).bind('blur.tf', function() {
setTimeout(function() {
if (!clicked)
el.removeClass(cls('focused')).removeClass(cls('opened'));
else {
clicked = false;
t.focus();
}
}, 100);
return false;
}).after(el).detach().prependTo(el);
var count = 0,
optgroup = $(t).find('optgroup').get(0);
if (optgroup)
menu.html('');
$(t).find('option, optgroup').each(function() {
if ($(this).is('option')) {
var opt = $('' + this.text + '
'),
target = $(this).parent().is('optgroup')
? optgroup
: (optgroup ? menu.find('ul') : menu);
opt.data({option: this}).appendTo(target);
} else {
optgroup = $('' + $(this).attr('label') + '');
$(menu).find('ul').append(optgroup);
}
});
menu.data({count: count});
var update = function() {
var text = $(t).find('option:selected').text();
el.find(sel('selected') + ' span').text(text);
},
selectCurrent = function() {
var current = false;
menu.find('div').each(function() {
if ($(this).data('option') === $(t).find('option:selected').get(0)) {
$(this).addClass(cls('hover'));
data.set({current: $(this)});
current = $(this);
return false;
}
});
return current;
},
fClick = function() {
if (!t.disabled) {
clicked = true;
$(sel('focused')).removeClass(cls('focused'));
selectCurrent();
setTimeout(function() {
t.focus();
el.toggleClass(cls('opened'));
var div = menu.get(0);
if (el.hasClass(cls('opened')) && (div.scrollHeight > div.clientHeight)) {
menu.css({borderBottomRightRadius: 0});
menu.find(sel('last')).css({borderBottomRightRadius: 0});
disablePageScroll(menu);
}
clicked = false;
}, 200);
}
return true;
};
selected.mousedown(fClick);
button.mousedown(fClick);
menu.find('div').mousedown(function() {
var oldOpt = $(t).find('option:selected').get(0),
newOpt = $(this).data('option');
$(t).find('option').removeAttr('selected');
newOpt.selected = true;
update();
clicked = true;
el.removeClass(cls('opened'));
setTimeout(function() {
t.focus();
clicked = false;
if (oldOpt !== newOpt)
$(t).trigger('change');
}, 200);
}).mouseover(function() {
menu.find('div').removeClass(cls('hover'));
$(this).addClass(cls('hover'));
}).mouseout(function() {
$(this).removeClass(cls('hover'));
});
selected.css({
width: menu.outerWidth() - outerHSpace(selected)
});
var i = 0;
do {
el.css({
width: selected.outerWidth() + button.outerWidth() + i++
});
} while ((selected.offset().top != button.offset().top) && (i < 10000));
menu.css({
marginTop: el.outerHeight() - 1,
width: el.outerWidth() - outerHSpace(menu)
}).find('li').first().addClass(cls('first'));
menu.find('li').last().addClass(cls('last'));
menu.find('li').each(function() {
$(this).find('div').first().addClass(cls('group-first')).parent().find('div').last().addClass(cls('group-last'));
});
menu.find('div').first().addClass(cls('first'));
menu.find('div').last().addClass(cls('last'));
var firstLi = menu.find('li').first(),
lastLi = menu.find('li').last();
if (firstLi.get(0) && firstLi.prev().get(0))
firstLi.removeClass(cls('first'));
if (lastLi.get(0) && lastLi.next().get(0))
lastLi.removeClass(cls('last'));
update();
disableSelect(el);
t.transForm.value = function(value) {
if (typeof value == "undefined")
return t.value;
var oldValue = t.value;
t.value = value;
update();
};
},
multiple: function() {
if (!construct) {
el = $(t).parent();
return;
}
el = $('');
var count = 0,
optgroup = $(t).find('optgroup').get(0);
if (optgroup)
el.html('');
$(t).find('option, optgroup').each(function() {
if ($(this).is('option')) {
var opt = $('' + this.text + '
'),
inGroup = $(this).parent().is('optgroup'),
target = inGroup
? optgroup
: (optgroup ? el.find('ul') : el);
opt.data({option: this}).appendTo(target);
if (this.selected)
opt.addClass(cls('selected'));
if (this === $(t).find('option').last().get(0))
opt.addClass(cls('last'));
if (!inGroup && (this === $(t).find('option').first().get(0)))
opt.addClass(cls('first'));
if (inGroup) {
if (this === $(this).parent().find('option').last().get(0))
opt.addClass(cls('group-last'));
if (this === $(this).parent().find('option').first().get(0))
opt.addClass(cls('group-first'));
}
} else {
optgroup = $('' + $(this).attr('label') + '');
if (this === $(t).find('optgroup, option').first().get(0))
optgroup.addClass(cls('first'));
if (this === $(t).find('optgroup').last().get(0))
optgroup.addClass(cls('last'));
el.find('ul').append(optgroup);
}
});
el.data({count: count});
$(t).after(el).detach().prependTo(el);
disableSelect(el);
var div = el.get(0);
if (div.scrollHeight > div.clientHeight) {
el.css({
width: el.innerWidth() + scrollbarWidth,
borderTopRightRadius: 0,
borderBottomRightRadius: 0
});
el.find('div' + sel('first')).css({borderTopRightRadius: 0});
el.find('div' + sel('last')).css({borderBottomRightRadius: 0});
el.find('li' + sel('last')).css({borderBottomRightRadius: 0});
disablePageScroll(el);
}
var liLast = el.find('li' + sel('last'));
if (liLast.get(0) && liLast.next().get(0))
liLast.removeClass(cls('last'));
el.find('div').mouseenter(function() {
if (!t.disabled)
$(this).addClass(cls('hover'));
}).mouseleave(function() {
if (!t.disabled)
$(this).removeClass(cls('hover'));
}).click(function(e) {
if (t.disabled)
return false;
var option = $(this).data('option');
if (option.selected) {
$(this).removeClass(cls('selected'));
option.selected = false;
} else {
$(this).addClass(cls('selected'));
option.selected = true
}
if (e.shiftKey && option.selected) {
var elm, next = true,
index = parseInt($(this).attr('class').split(cls('index-'))[1].split(/\s/)[0]);
while(index && next) {
index--;
elm = el.find(sel('index-') + index);
if (elm.hasClass(cls('selected')))
next = false;
else {
elm.addClass(cls('selected'));
elm.data('option').selected = true;
}
}
}
$(t).trigger('change');
});
el.click(function() {
var top = el.scrollTop();
t.focus();
el.scrollTop(top);
});
$(t).bind('focus.tf', function() {
el.addClass(cls('focused'));
}).bind('blur.tf', function() {
el.removeClass(cls('focused'))
}).bind('change.tf', function() {
$(t).find('option').each(function(i) {
var div = el.find(sel('index-') + i);
if (this.selected)
div.addClass(cls('selected'));
else
div.removeClass(cls('selected'));
});
});
t.transForm.values = function(values) {
// Get values
if (typeof values == "undefined") {
var ret = [];
$(t).find('option:selected').each(function() {
ret.push(this.value);
});
return ret;
}
if (!$.isArray(values))
return;
// Set values
$(t).find('option').attr({selected: false});
el.find('div').removeClass(cls('selected'));
$.each(values, function(j, v) {
$(t).find('option').each(function(i) {
if (this.value === v) {
this.selected = true;
el.find(sel('index-') + i).addClass(cls('selected'));
}
});
});
};
},
textarea: function() {
if (construct || destruct)
$(t).css({
overflow: '',
height: '',
borderTopRightRadius: '',
borderBottomRightRadius: '',
borderBottomLeftRadius: ''
});
toggleClass(t, cls(tagName));
if (!construct)
return;
var update;
if (o.textarea.autoExpand) {
$(t).css({overflow: 'hidden'});
update = function() {
$(t).scrollTop(0);
if (t.clientHeight >= t.scrollHeight)
$(t).css({height: 1});
$(t).css({height: t.scrollHeight + (document.doctype ? -outerVSpace($(t), 'p') : outerVSpace($(t), 'b'))});
};
} else
update = function() {
var vScroll = (t.clientHeight < t.scrollHeight),
hScroll = (t.clientWidth < t.scrollWidth);
if (!store.r)
store.r = {
tr: $(t).css('borderTopRightRadius'),
br: $(t).css('borderBottomRightRadius'),
bl: $(t).css('borderBottomLeftRadius')
};
$(t).css({
borderBottomRightRadius: (vScroll || hScroll) ? 0 : store.r.br,
borderTopRightRadius: vScroll ? 0 : store.r.tr,
borderBottomLeftRadius: hScroll ? 0 : store.r.bl
});
};
var u = function() {
update();
var maxLength = o.textarea.maxLength;
if (maxLength && (t.value.length > maxLength))
t.value = t.value.substr(0, maxLength);
};
u(); $(t).bind('keyup.tf', u).bind('keydown.tf', u).bind('change.tf', u).bind('scroll.tf', u);
t.transForm.readOnly = function(readOnly) {
t.readOnly = readOnly;
if (readOnly)
$(t).addClass(cls('readOnly'));
else
$(t).removeClass(cls('readOnly'));
};
},
button: function() {
if (!construct) {
el = $(t).parent();
return;
}
el = $('
');
$(t).after(el).detach().appendTo(el);
el.find('span').text(t.textContent);
$(t).css({
width: el.innerWidth() + outerHSpace(el),
height: el.innerHeight() + outerVSpace(el),
marginLeft: - parseInt(el.css('borderLeftWidth')),
marginTop: - parseInt(el.css('borderTopWidth'))
}).bind('focus.tf', function() {
el.addClass(cls('focused'));
}).bind('blur.tf', function() {
el.removeClass(cls('focused'));
}).bind('mousedown.tf', function() {
el.addClass(cls('focused'));
});
},
file: function() {
if (!construct) {
el = $(t).parent();
return;
}
el = $('');
$(t).after(el).detach().prependTo(el);
var info = el.find(sel('info')),
button = el.find(sel('button')),
u = function() {
var files = t.files;
if (!files || (files.length <= 0))
info.find('span').html(o.file.noFile);
else
info.find('span').text((files.length == 1) ? files[0]['name'] : o.file.count.replace('{count}', files.length));
el.attr('label', $(t).attr('label'))
};
var i = 0;
do {
info.css({
width: el.innerWidth() - button.outerWidth() - outerHSpace(info) - i++
});
} while ((info.offset().top != button.offset().top) && (i < 10000));
$(t).css({
width: el.outerWidth(),
height: el.outerHeight()
}).bind('focus.tf', function() {
$(sel('focused')).removeClass(cls('focused'));
el.addClass(cls('focused'));
}).bind('blur.tf', function() {
el.removeClass(cls('focused'));
}).bind('change.tf', u).bind('click.tf', function() {
t.focus();
});
u();
},
checkbox: function() {
if (!construct) {
el = $(t).parent();
return;
}
el = $('
');
var u = function() {
if (t.checked)
el.addClass(cls('checked'));
else
el.removeClass(cls('checked'));
},
label = $(t).attr('id');
if (label)
label = $('label[for="' + label + '"]');
disableSelect(label);
$(t).after(el).detach().appendTo(el).bind('focus.tf', function() {
el.addClass(cls('focused'));
if (label.get(0))
label.addClass(cls('focused'));
}).bind('blur.tf', function() {
el.removeClass(cls('focused'));
if (label.get(0))
label.removeClass(cls('focused'));
}).bind('click.tf', function() {
u();
$(sel('focused')).removeClass(cls('focused'));
el.addClass(cls('focused'));
if (label.get(0))
label.addClass(cls('focused'));
t.focus();
}).bind('change.tf', u);
u();
t.transForm.checked = function(checked) {
if (typeof checked == "undefined")
return t.checked;
t.checked = !!checked;
u();
};
},
radio: function() {
if (!construct) {
el = $(t).parent();
return;
}
el = $('
');
var radios = $(t).parents('body, form').find('input[type="radio"][name="' + t.name + '"]'),
u = function() {
$(radios).each(function() {
if (this.checked)
$(this).parent().addClass(cls('checked'));
else
$(this).parent().removeClass(cls('checked'));
});
},
f = function(focused) {
if (focused) {
$(radios).parent().addClass(cls('focused'));
$.each(labels, function(i, l) {
l.addClass(cls('focused'));
});
} else {
$(radios).parent().removeClass(cls('focused'));
$.each(labels, function(i, l) {
l.removeClass(cls('focused'));
});
}
},
labels = [];
$.each(radios, function(i, r) {
var label = $(r).attr('id');
if (!label)
return;
label = $('label[for="' + label +'"]');
if (!label.get(0))
return;
labels.push(label);
disableSelect(label);
});
$(t).after(el).detach().appendTo(el).bind('focus.tf', function() {
f(true);
}).bind('blur.tf', function() {
f(false);
}).bind('click.tf', function() {
u();
f(true);
t.focus();
}).bind('change.tf', u);
u();
t.transForm.checked = function(checked) {
if (typeof checked == "undefined")
return t.checked;
t.checked = !!checked;
u();
};
},
submit: function() {
this.button();
},
reset: function() {
this.button();
}
};
if (typeof t.transForm == "undefined")
t.transForm = {
disable: function(disabled) {
var target = el ? el : t;
t.disabled = !!disabled;
if (!!disabled)
target.addClass(cls('disabled'));
else
target.removeClass(cls('disabled'));
},
destruct: function() {
destruct = true;
construct = false;
build[tagName]();
destructFunc();
}
};
build[tagName]();
// Common Construct
if (construct) {
var target = el ? el : $(t);
if (t.disabled)
target.addClass(cls('disabled'));
if (t.readOnly)
target.addClass(cls('readOnly'));
data.set({
prefix: prefix,
transformed: true
});
}
// Common Destruct
var destructFunc = function() {
$(t).removeData('transForm').unbind('.tf');
if (el) {
$(t).detach();
el.after(t).detach();
}
if (typeof t.transForm != "undefined")
delete t.transForm;
var classes = $(t).attr('class');
if (!classes)
return;
$.each(classes.split(/\s+/g), function(i, c) {
if (c.substr(0, prefix.length) == prefix)
$(t).removeClass(c);
});
};
if (destruct)
destructFunc();
// Toggle disabled
if (typeof o.disabled != "undefined") {
t.disabled = !!o.disabled;
var target = el ? el : $(t);
if (o.disabled)
target.addClass(cls('disabled'));
else
target.removeClass(cls('disabled'));
}
// Toggle read-only
if ((typeof o.readOnly != "undefined") &&
(
(tagName == "textarea") ||
(
(tagName == "input") &&
(fields.indexOf('|' + type + '|') !== -1)
)
)
) {
var readonly = !!o.readOnly;
$(t).attr({readonly: readonly});
if (!transForm)
return;
if (readonly)
$(t).addClass(cls('readOnly'));
else
$(t).removeClass(cls('readOnly'));
}
});
return $(this);
};
})(jQuery);
/** This file is part of KCFinder project
*
* @desc My jQuery UI fixes
* @package KCFinder
* @version 3.12
* @author Pavel Tzonkov
* @copyright 2010-2014 KCFinder Project
* @license http://opensource.org/licenses/GPL-3.0 GPLv3
* @license http://opensource.org/licenses/LGPL-3.0 LGPLv3
* @link http://kcfinder.sunhater.com
*/
(function($) {
$.fn.oldMenu = $.fn.menu;
$.fn.menu = function(p1, p2, p3) {
var ret = $(this).oldMenu(p1, p2, p3);
$(this).each(function() {
if (!$(this).hasClass('sh-menu')) {
$(this).addClass('sh-menu')
.children().first().addClass('ui-menu-item-first');
$(this).children().last().addClass('ui-menu-item-last');
$(this).find('.ui-menu').addClass('sh-menu').each(function() {
$(this).children().first().addClass('ui-menu-item-first');
$(this).children().last().addClass('ui-menu-item-last');
});
}
});
return ret;
};
})(jQuery);/** This file is part of KCFinder project
*
* @desc Right Click jQuery Plugin
* @package KCFinder
* @version 3.12
* @author Pavel Tzonkov
* @copyright 2010-2014 KCFinder Project
* @license http://opensource.org/licenses/GPL-3.0 GPLv3
* @license http://opensource.org/licenses/LGPL-3.0 LGPLv3
* @link http://kcfinder.sunhater.com
*/
(function($) {
$.fn.rightClick = function(func) {
var events = "contextmenu rightclick";
$(this).each(function() {
$(this).unbind(events).bind(events, function(e) {
$.globalBlur();
e.preventDefault();
$.clearSelection();
if ($.isFunction(func))
func(this, e);
});
});
return $(this);
};
})(jQuery);// @author Rich Adams
// Implements a tap and hold functionality. If you click/tap and release, it will trigger a normal
// click event. But if you click/tap and hold for 1s (default), it will trigger a taphold event instead.
;(function($)
{
// Default options
var defaults = {
duration: 1000, // ms
clickHandler: null
}
// When start of a taphold event is triggered.
function startHandler(event)
{
var $elem = jQuery(this);
// Merge the defaults and any user defined settings.
settings = jQuery.extend({}, defaults, event.data);
// If object also has click handler, store it and unbind. Taphold will trigger the
// click itself, rather than normal propagation.
if (typeof $elem.data("events") != "undefined"
&& typeof $elem.data("events").click != "undefined")
{
// Find the one without a namespace defined.
for (var c in $elem.data("events").click)
{
if ($elem.data("events").click[c].namespace == "")
{
var handler = $elem.data("events").click[c].handler
$elem.data("taphold_click_handler", handler);
$elem.unbind("click", handler);
break;
}
}
}
// Otherwise, if a custom click handler was explicitly defined, then store it instead.
else if (typeof settings.clickHandler == "function")
{
$elem.data("taphold_click_handler", settings.clickHandler);
}
// Reset the flags
$elem.data("taphold_triggered", false); // If a hold was triggered
$elem.data("taphold_clicked", false); // If a click was triggered
$elem.data("taphold_cancelled", false); // If event has been cancelled.
// Set the timer for the hold event.
$elem.data("taphold_timer",
setTimeout(function()
{
// If event hasn't been cancelled/clicked already, then go ahead and trigger the hold.
if (!$elem.data("taphold_cancelled")
&& !$elem.data("taphold_clicked"))
{
// Trigger the hold event, and set the flag to say it's been triggered.
$elem.trigger(jQuery.extend(event, jQuery.Event("taphold")));
$elem.data("taphold_triggered", true);
}
}, settings.duration));
}
// When user ends a tap or click, decide what we should do.
function stopHandler(event)
{
var $elem = jQuery(this);
// If taphold has been cancelled, then we're done.
if ($elem.data("taphold_cancelled")) { return; }
// Clear the hold timer. If it hasn't already triggered, then it's too late anyway.
clearTimeout($elem.data("taphold_timer"));
// If hold wasn't triggered and not already clicked, then was a click event.
if (!$elem.data("taphold_triggered")
&& !$elem.data("taphold_clicked"))
{
// If click handler, trigger it.
if (typeof $elem.data("taphold_click_handler") == "function")
{
$elem.data("taphold_click_handler")(jQuery.extend(event, jQuery.Event("click")));
}
// Set flag to say we've triggered the click event.
$elem.data("taphold_clicked", true);
}
}
// If a user prematurely leaves the boundary of the object we're working on.
function leaveHandler(event)
{
// Cancel the event.
$(this).data("taphold_cancelled", true);
}
// Determine if touch events are supported.
var touchSupported = ("ontouchstart" in window) // Most browsers
|| ("onmsgesturechange" in window); // Microsoft
var taphold = $.event.special.taphold =
{
setup: function(data)
{
$(this).bind((touchSupported ? "touchstart" : "mousedown"), data, startHandler)
.bind((touchSupported ? "touchend" : "mouseup"), stopHandler)
.bind((touchSupported ? "touchmove touchcancel" : "mouseleave"), leaveHandler);
},
teardown: function(namespaces)
{
$(this).unbind((touchSupported ? "touchstart" : "mousedown"), startHandler)
.unbind((touchSupported ? "touchend" : "mouseup"), stopHandler)
.unbind((touchSupported ? "touchmove touchcancel" : "mouseleave"), leaveHandler);
}
};
})(jQuery);/*
* jQuery shDropUpload v1.2
* http://jquery.sunhater.com/shDropUpload
* 2014-08-12
*
* Copyright (c) 2014 Pavel Tzonkov
* Dual licensed under the MIT and GPL licenses.
*/
(function($) {
/** @param localOptions Options about local files drag & drop
* @param remoteOptions Options about HTML objects drag & drop */
$.fn.shDropUpload = function(localOptions, remoteOptions) {
// Compatibility check
if ((typeof XMLHttpRequest == "undefined") ||
(typeof document.addEventListener == "undefined") ||
(typeof File == "undefined") ||
(typeof FileReader == "undefined")
)
return;
// Default options about local files drag & drop
var lo = {
// URL to upload handler script
url: "",
// File field name
param: "upload",
// Maximum filesize in bytes. If a dragged file is too big, the browser crashes
maxFilesize: 10485760,
// Called before all uploads. Useful for implementing some checks before uploads begins
// If it returns false, the uploading will be canceled.
precheck: function(evt) {
console.log("shDropUpload: Upload process started");
return true;
},
// Called when an upload begins
begin: function(xhr, currentFile, filesCount) {
console.log("shDropUpload: Uploading file " + currentFile + " of " + filesCount + " (" + xhr.file.name + ")");
},
// Called after successful upload request
success: function(xhr, currentFile, filesCount) {
console.log("shDropUpload: Upload success (" + xhr.file.name + ")");
},
// Called when an upload request fails
error: function(xhr, currentFile, filesCount) {
console.log("shDropUpload: Upload request failed (" + xhr.file.name + ")");
},
// Called when an upload request is aborted
abort: function(xhr, currentFile, filesCount) {
console.log("shDropUpload: Upload request aborted (" + xhr.file.name + ")");
},
// Called when a file exceeds the maxFilesize option
filesizeCallback: function(xhr, currentFile, filesCount) {
console.log("shDropUpload: File is too big (" + xhr.file.name + ")");
},
// Called when all files are proceeded
finish: function() {
console.log("shDropUpload: Upload process finished");
}
},
// Default options about HTML objects drag & drop
ro = {
// If a selection is dropped you could to fetch multiple URLs from selected HTML
// You can define the selectors URLs will be fetched from. If you want only images
// leave 'img[src]' only
selectors: 'img[src]',
//selectors: 'img[src], a[href], script[src], link[href]',
// Check URLs for uniqueness
unique: true,
// Ajax options
ajax: {
url: "",
type: "post",
dataType: "json",
data: {
url: "{url}", // {url} marks the URL from dragged object
type: "{type}" // {type} marks the tag type ("a" or "img")
},
success: function(response) {
console.log("shDropUpload: URL has been passed to the server.");
},
error: function() {
console.log("shDropUpload: Request failed!");
}
}
},
utf8encode = function(string) {
string = string.replace(/\r\n/g, "\n");
var c, utftext = "";
for (var n = 0; n < string.length; n++) {
c = string.charCodeAt(n);
if (c < 128) {
utftext += String.fromCharCode(c);
} else if((c > 127) && (c < 2048)) {
utftext += String.fromCharCode((c >> 6) | 192);
utftext += String.fromCharCode((c & 63) | 128);
} else {
utftext += String.fromCharCode((c >> 12) | 224);
utftext += String.fromCharCode(((c >> 6) & 63) | 128);
utftext += String.fromCharCode((c & 63) | 128);
}
}
return utftext;
};
$.extend(true, ro, remoteOptions);
$.extend(true, lo, localOptions);
if (!XMLHttpRequest.prototype.sendAsBinary) {
XMLHttpRequest.prototype.sendAsBinary = function(datastr) {
var ords = Array.prototype.map.call(datastr, function(x) {
return x.charCodeAt(0) & 0xff;
}),
ui8a = new Uint8Array(ords);
this.send(ui8a);
}
}
$(this).each(function() {
var t = this,
uploadQueue = [],
uploadInProgress = false,
filesCount = 0,
boundary = "------multipartdropuploadboundary" + new Date().getTime(),
currentFile,
dragOver = function(e) {
if (e.preventDefault) e.preventDefault();
$(t).addClass('drag');
return false;
},
dragEnter = function(e) {
if (e.preventDefault) e.preventDefault();
return false;
},
dragLeave = function(e) {
if (e.preventDefault) e.preventDefault();
$(t).removeClass('drag');
return false;
},
drop = function(e) {
if (e.preventDefault) e.preventDefault();
if (e.stopPropagation) e.stopPropagation();
$(t).removeClass('drag');
try {
var el = e.dataTransfer.getData('text/html');
} catch (e) {
var el = false;
}
// Remote drop
if (el) {
if (!remoteOptions)
return false;
el = '' + el.toString() + '
';
var urls = [], types = [];
var selectors = $.isArray(ro.selectors)
? ro.selectors
: ro.selectors.split(/\s*,\s*/g);
$.each(selectors, function(i, selector) {
if (!/^[a-z0-9]+\[[a-z]+\]$/gi.test(selector))
return true;
var type = selector.split('[')[0],
attr = selector.split('[')[1].split(']')[0];
$(el).find(selector).each(function() {
var url = $(this).attr(attr);
if (ro.unique)
for (var i = 0; i < urls.length; i++)
if ((urls[i] == url) && (types[i] == type))
return true;
urls.push(url);
types.push(type);
});
});
if (!urls.length)
return false;
if (urls.length == 1) {
urls = urls[0];
types = types[0];
}
var opts = $.extend(true, {}, ro.ajax);
if (opts.data) {
$.each(opts.data, function(i, j) {
if (j == "{url}")
opts.data[i] = urls;
if (j == "{type}")
opts.data[i] = types;
});
}
$.ajax(opts);
// Local drop
} else {
if (!localOptions)
return false;
filesCount += e.dataTransfer.files.length;
if (!filesCount || !lo.precheck(e))
return false;
for (var i = 0; i < filesCount; i++) {
var file = e.dataTransfer.files[i];
uploadQueue.push(file);
}
uploadNext();
}
return false;
},
uploadNext = function() {
if (uploadInProgress)
return false;
if (uploadQueue && uploadQueue.length) {
var file = uploadQueue.shift(),
currentNum = filesCount - uploadQueue.length,
reader = new FileReader(),
ie = (typeof reader.readAsBinaryString == "undefined");
currentFile = reader.file = file;
reader.onerror = function(evt) {
evt.file = file;
lo.error(evt, currentNum, filesCount);
uploadNext();
};
reader.onload = function(evt) {
uploadInProgress = true;
var xhr = new XMLHttpRequest(),
postbody = '--' + boundary + '\r\nContent-Disposition: form-data; name="' + lo.param + '"';
xhr.file = evt.target.file;
lo.begin(xhr, currentNum, filesCount);
if (lo.maxFilesize && (xhr.file.size > lo.maxFilesize)) {
uploadInProgress = false;
lo.filesizeCallback(xhr, currentNum, filesCount);
uploadNext();
return;
}
if (ie) {
var binary = "",
bytes = new Uint8Array(evt.target.result);
for (var i = 0; i < bytes.byteLength; i++)
binary += String.fromCharCode(bytes[i]);
}
if (xhr.file.name)
postbody += '; filename="' + utf8encode(xhr.file.name) + '"';
postbody += '\r\n';
if (xhr.file.size)
postbody += "Content-Length: " + xhr.file.size + "\r\n";
postbody += "Content-Type: " + xhr.file.type + "\r\n\r\n" + (ie ? binary : evt.target.result) + "\r\n--" + boundary + "--\r\n";
xhr.open('post', lo.url, true);
xhr.setRequestHeader('Content-Type', "multipart/form-data; boundary=" + boundary);
xhr.onload = function() {
uploadInProgress = false;
lo.success(xhr, currentNum, filesCount);
uploadNext();
};
xhr.onerror = function() {
uploadInProgress = false;
lo.error(xhr, currentNum, filesCount);
uploadNext();
};
xhr.onabort = function() {
uploadInProgress = false;
lo.abort(xhr, currentNum, filesCount);
uploadNext();
};
xhr.sendAsBinary(postbody);
};
if (ie)
reader.readAsArrayBuffer(file);
else
reader.readAsBinaryString(file);
} else {
filesCount = 0;
var loop = setInterval(function() {
if (uploadInProgress) return;
boundary = "------multipartdropuploadboundary" + new Date().getTime();
uploadQueue = [];
clearInterval(loop);
lo.finish();
}, 333);
}
};
if (!$(t).data('shdu'))
$(t).data('shdu', {
dragover: dragOver,
dragenter: dragEnter,
dragLeave: dragLeave,
drop: drop
});
var bind = function(event, callback) {
t.removeEventListener(event, $(t).data('shdu')[event], false);
var data = $(t).data('shdu'),
newData = {};
newData[event] = callback;
$.extend(data, newData);
$(t).data('shdu', data);
t.addEventListener(event, callback, false);
};
bind('dragover', dragOver);
bind('dragenter', dragEnter);
bind('dragleave', dragLeave);
bind('drop', drop);
});
}
})(jQuery);
/** This file is part of KCFinder project
*
* @desc User Agent jQuery Plugin
* @package KCFinder
* @version 3.12
* @author Pavel Tzonkov
* @copyright 2010-2014 KCFinder Project
* @license http://opensource.org/licenses/GPL-3.0 GPLv3
* @license http://opensource.org/licenses/LGPL-3.0 LGPLv3
* @link http://kcfinder.sunhater.com
*/
(function($) {
$.agent = {};
var agent = " " + navigator.userAgent,
patterns = [
{
expr: / [a-z]+\/[0-9a-z\.]+/ig,
delim: "/"
}, {
expr: / [a-z]+:[0-9a-z\.]+/ig,
delim: ":",
keys: ["rv", "version"]
}, {
expr: / [a-z]+\s+[0-9a-z\.]+/ig,
delim: /\s+/,
keys: ["opera", "msie", "firefox", "android"]
}, {
expr: /[ \/\(]([a-z0-9_]+)[ ;\)\/]/ig,
keys: "i386|i486|i586|i686|x86|x64|x86_64|intel|ppc|powerpc|windows|macintosh|darwin|unix|linux|sunos|android|iphone|ipad|ipod|amiga|amigaos|beos|wii|playstation|gentoo|fedora|slackware|ubuntu|archlinux|debian|mint|mageia|mandriva|freebsd|openbsd|netbsd|solaris|opensolaris|x11|mobile|phone".split('|'),
sub: "platform"
}
];
$.each(patterns, function(i, pattern) {
var elements = agent.match(pattern.expr);
if (elements === null)
return;
$.each(elements, function(j, ag) {
ag = ag.replace(/^\s+/, "").toLowerCase();
var key = ag.replace(pattern.expr, "$1"),
val = true;
if (typeof pattern.delim != "undefined") {
ag = ag.split(pattern.delim);
key = ag[0];
val = ag[1];
}
if (typeof pattern.keys != "undefined") {
var exists = false, k = 0;
for (; k < pattern.keys.length; k++)
if (pattern.keys[k] == key) {
exists = true;
break;
}
if (!exists)
return;
}
if (typeof pattern.sub != "undefined") {
if (typeof $.agent[pattern.sub] != "object")
$.agent[pattern.sub] = {};
if (typeof $.agent[pattern.sub][key] == "undefined")
$.agent[pattern.sub][key] = val;
} else if (typeof $.agent[key] == "undefined")
$.agent[key] = val;
});
});
if (!$.agent.platform)
$.agent.platform = {};
// Check for mobile device
$.mobile = false;
var keys = "mobile|android|iphone|ipad|ipod|iemobile|phone".split('|');
a = $.agent;
$.each([a, a.platform], function(i, p) {
for (var j = 0; j < keys.length; j++) {
if (p[keys[j]]) {
$.mobile = true;
return false;
}
}
});
})(jQuery);/** This file is part of KCFinder project
*
* @desc Helper functions integrated in jQuery
* @package KCFinder
* @version 3.12
* @author Pavel Tzonkov
* @copyright 2010-2014 KCFinder Project
* @license http://opensource.org/licenses/GPL-3.0 GPLv3
* @license http://opensource.org/licenses/LGPL-3.0 LGPLv3
* @link http://kcfinder.sunhater.com
*/
(function($) {
$.fn.fixScrollbarRadius = function() {
$(this).each(function() {
var t = this,
dataID = 'fixRadius',
vScroll = (t.clientHeight < t.scrollHeight),
hScroll = (t.clientWidth < t.scrollWidth);
if (!$(t).data(dataID))
$(t).data(dataID, {
tr: $(t).css('borderTopRightRadius'),
br: $(t).css('borderBottomRightRadius'),
bl: $(t).css('borderBottomLeftRadius')
});
var data = $(t).data(dataID);
$(t).css({
borderTopRightRadius: vScroll ? 0 : data.tr,
borderBottomRightRadius: (vScroll || hScroll) ? 0 : data.br,
borderBottomLeftRadius: hScroll ? 0 : data.bl
});
});
return $(this);
};
$.fn.selection = function(start, end) {
var field = this.get(0);
if (field.createTextRange) {
var selRange = field.createTextRange();
selRange.collapse(true);
selRange.moveStart('character', start);
selRange.moveEnd('character', end-start);
selRange.select();
} else if (field.setSelectionRange) {
field.setSelectionRange(start, end);
} else if (field.selectionStart) {
field.selectionStart = start;
field.selectionEnd = end;
}
field.focus();
};
$.fn.disableTextSelect = function() {
return this.each(function() {
if ($.agent.firefox) { // Firefox
$(this).css('MozUserSelect', "none");
} else { //Opera, etc.
$(this).mousedown(function() {
$.globalBlur();
return false;
});
}
});
};
$.fn.outerSpace = function(type, mbp) {
var selector = this.get(0),
r = 0, x;
if (!mbp) mbp = "mbp";
if (/m/i.test(mbp)) {
x = parseInt($(selector).css('margin-' + type));
if (x) r += x;
}
if (/b/i.test(mbp)) {
x = parseInt($(selector).css('border-' + type + '-width'));
if (x) r += x;
}
if (/p/i.test(mbp)) {
x = parseInt($(selector).css('padding-' + type));
if (x) r += x;
}
return r;
};
$.fn.outerLeftSpace = function(mbp) {
return this.outerSpace('left', mbp);
};
$.fn.outerTopSpace = function(mbp) {
return this.outerSpace('top', mbp);
};
$.fn.outerRightSpace = function(mbp) {
return this.outerSpace('right', mbp);
};
$.fn.outerBottomSpace = function(mbp) {
return this.outerSpace('bottom', mbp);
};
$.fn.outerHSpace = function(mbp) {
return (this.outerLeftSpace(mbp) + this.outerRightSpace(mbp));
};
$.fn.outerVSpace = function(mbp) {
return (this.outerTopSpace(mbp) + this.outerBottomSpace(mbp));
};
$.fn.fullscreen = function() {
if (!$(this).get(0))
return
var t = $(this).get(0),
requestMethod =
t.requestFullScreen ||
t.requestFullscreen ||
t.webkitRequestFullScreen ||
t.mozRequestFullScreen ||
t.msRequestFullscreen;
if (requestMethod)
requestMethod.call(t);
else if (typeof window.ActiveXObject !== "undefined") {
var wscript = new ActiveXObject("WScript.Shell");
if (wscript !== null)
wscript.SendKeys("{F11}");
}
};
$.fn.toggleFullscreen = function(doc) {
if ($.isFullscreen(doc))
$.exitFullscreen(doc);
else
$(this).fullscreen();
};
$.globalBlur = function() {
$('').appendTo('body').trigger('focus').detach();
};
$.exitFullscreen = function(doc) {
var d = doc ? doc : document,
requestMethod =
d.cancelFullScreen ||
d.cancelFullscreen ||
d.webkitCancelFullScreen ||
d.mozCancelFullScreen ||
d.msExitFullscreen ||
d.exitFullscreen;
if (requestMethod)
requestMethod.call(d);
else if (typeof window.ActiveXObject !== "undefined") {
var wscript = new ActiveXObject("WScript.Shell");
if (wscript !== null)
wscript.SendKeys("{F11}");
}
};
$.isFullscreen = function(doc) {
var d = doc ? doc : document;
return (d.fullScreenElement && (d.fullScreenElement !== null)) ||
(d.fullscreenElement && (d.fullscreenElement !== null)) ||
(d.msFullscreenElement && (d.msFullscreenElement !== null)) ||
d.mozFullScreen || d.webkitIsFullScreen;
};
$.clearSelection = function() {
if (document.selection)
document.selection.empty();
else if (window.getSelection)
window.getSelection().removeAllRanges();
};
$.$ = {
htmlValue: function(value) {
return value
.replace(/&/g, "&")
.replace(/"/g, """)
.replace(/'/g, "'");
},
htmlData: function(value) {
return $('').text(value).html();
},
jsValue: function(value) {
return value
.replace(/\\/g, "\\\\")
.replace(/\r?\n/, "\\\n")
.replace(/"/g, "\\\"")
.replace(/'/g, "\\'");
},
basename: function(path) {
var expr = /^.*\/([^\/]+)\/?$/g;
return expr.test(path)
? path.replace(expr, "$1")
: path;
},
dirname: function(path) {
var expr = /^(.*)\/[^\/]+\/?$/g;
return expr.test(path)
? path.replace(expr, "$1")
: '';
},
inArray: function(needle, arr) {
if (!$.isArray(arr))
return false;
for (var i = 0; i < arr.length; i++)
if (arr[i] == needle)
return true;
return false;
},
getFileExtension: function(filename, toLower) {
if (typeof toLower == 'undefined') toLower = true;
if (/^.*\.[^\.]*$/.test(filename)) {
var ext = filename.replace(/^.*\.([^\.]*)$/, "$1");
return toLower ? ext.toLowerCase(ext) : ext;
} else
return "";
},
escapeDirs: function(path) {
var fullDirExpr = /^([a-z]+)\:\/\/([^\/^\:]+)(\:(\d+))?\/(.+)$/,
prefix = "";
if (fullDirExpr.test(path)) {
var port = path.replace(fullDirExpr, "$4");
prefix = path.replace(fullDirExpr, "$1://$2");
if (port.length)
prefix += ":" + port;
prefix += "/";
path = path.replace(fullDirExpr, "$5");
}
var dirs = path.split('/'),
escapePath = '', i = 0;
for (; i < dirs.length; i++)
escapePath += encodeURIComponent(dirs[i]) + '/';
return prefix + escapePath.substr(0, escapePath.length - 1);
},
kuki: {
prefix: '',
duration: 356,
domain: '',
path: '',
secure: false,
set: function(name, value, duration, domain, path, secure) {
name = this.prefix + name;
if (duration == null) duration = this.duration;
if (secure == null) secure = this.secure;
if ((domain == null) && this.domain) domain = this.domain;
if ((path == null) && this.path) path = this.path;
secure = secure ? true : false;
var date = new Date();
date.setTime(date.getTime() + (duration * 86400000));
var expires = date.toGMTString();
var str = name + '=' + value + '; expires=' + expires;
if (domain != null) str += '; domain=' + domain;
if (path != null) str += '; path=' + path;
if (secure) str += '; secure';
return (document.cookie = str) ? true : false;
},
get: function(name) {
name = this.prefix + name;
var nameEQ = name + '=';
var kukis = document.cookie.split(';');
var kuki;
for (var i = 0; i < kukis.length; i++) {
kuki = kukis[i];
while (kuki.charAt(0) == ' ')
kuki = kuki.substring(1, kuki.length);
if (kuki.indexOf(nameEQ) == 0)
return kuki.substring(nameEQ.length, kuki.length);
}
return null;
},
del: function(name) {
return this.set(name, '', -1);
},
isSet: function(name) {
return (this.get(name) != null);
}
}
};
})(jQuery);
/** This file is part of KCFinder project
*
* @desc Helper MD5 checksum function
* @package KCFinder
* @version 3.12
* @author Pavel Tzonkov
* @copyright 2010-2014 KCFinder Project
* @license http://opensource.org/licenses/GPL-3.0 GPLv3
* @license http://opensource.org/licenses/LGPL-3.0 LGPLv3
* @link http://kcfinder.sunhater.com
*/
(function($) {
$.$.utf8encode = function(string) {
string = string.replace(/\r\n/g,"\n");
var utftext = "";
for (var n = 0; n < string.length; n++) {
var c = string.charCodeAt(n);
if (c < 128) {
utftext += String.fromCharCode(c);
} else if((c > 127) && (c < 2048)) {
utftext += String.fromCharCode((c >> 6) | 192);
utftext += String.fromCharCode((c & 63) | 128);
} else {
utftext += String.fromCharCode((c >> 12) | 224);
utftext += String.fromCharCode(((c >> 6) & 63) | 128);
utftext += String.fromCharCode((c & 63) | 128);
}
}
return utftext;
};
$.$.md5 = function(string) {
string = $.$.utf8encode(string);
var RotateLeft = function(lValue, iShiftBits) {
return (lValue<>>(32-iShiftBits));
},
AddUnsigned = function(lX, lY) {
var lX8 = (lX & 0x80000000),
lY8 = (lY & 0x80000000),
lX4 = (lX & 0x40000000),
lY4 = (lY & 0x40000000),
lResult = (lX & 0x3FFFFFFF) + (lY & 0x3FFFFFFF);
if (lX4 & lY4)
return (lResult ^ 0x80000000 ^ lX8 ^ lY8);
if (lX4 | lY4)
return (lResult & 0x40000000)
? (lResult ^ 0xC0000000 ^ lX8 ^ lY8)
: (lResult ^ 0x40000000 ^ lX8 ^ lY8);
else
return (lResult ^ lX8 ^ lY8);
},
F = function(x, y, z) { return (x & y) | ((~x) & z); },
G = function(x, y, z) { return (x & z) | (y & (~z)); },
H = function(x, y, z) { return (x ^ y ^ z); },
I = function(x, y, z) { return (y ^ (x | (~z))); },
FF = function(a, b, c, d, x, s, ac) {
a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac));
return AddUnsigned(RotateLeft(a, s), b);
},
GG = function(a, b, c, d, x, s, ac) {
a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac));
return AddUnsigned(RotateLeft(a, s), b);
},
HH = function(a, b, c, d, x, s, ac) {
a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac));
return AddUnsigned(RotateLeft(a, s), b);
},
II = function(a, b, c, d, x, s, ac) {
a = AddUnsigned(a, AddUnsigned(AddUnsigned(I(b, c, d), x), ac));
return AddUnsigned(RotateLeft(a, s), b);
},
ConvertToWordArray = function(string) {
var lWordCount,
lMessageLength = string.length,
lNumberOfWords_temp1 = lMessageLength + 8,
lNumberOfWords_temp2 = (lNumberOfWords_temp1 - (lNumberOfWords_temp1 % 64)) / 64,
lNumberOfWords = (lNumberOfWords_temp2 + 1) * 16,
lWordArray = [lNumberOfWords - 1],
lBytePosition = 0,
lByteCount = 0;
while (lByteCount < lMessageLength) {
lWordCount = (lByteCount - (lByteCount % 4)) / 4;
lBytePosition = (lByteCount % 4) * 8;
lWordArray[lWordCount] = (lWordArray[lWordCount] | (string.charCodeAt(lByteCount) << lBytePosition));
lByteCount++;
}
lWordCount = (lByteCount - (lByteCount % 4)) / 4;
lBytePosition = (lByteCount % 4) * 8;
lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80 << lBytePosition);
lWordArray[lNumberOfWords - 2] = lMessageLength << 3;
lWordArray[lNumberOfWords - 1] = lMessageLength >>> 29;
return lWordArray;
},
WordToHex = function(lValue) {
var lByte, lCount = 0,
WordToHexValue = "",
WordToHexValue_temp = "";
for (; lCount <= 3; lCount++) {
lByte = (lValue >>> (lCount * 8)) & 255;
WordToHexValue_temp = "0" + lByte.toString(16);
WordToHexValue = WordToHexValue + WordToHexValue_temp.substr(WordToHexValue_temp.length - 2,2);
}
return WordToHexValue;
},
AA, BB, CC, DD, k = 0,
x = ConvertToWordArray(string),
a = 0x67452301, b = 0xEFCDAB89,
c = 0x98BADCFE, d = 0x10325476,
S11 = 7, S12 = 12, S13 = 17, S14 = 22,
S21 = 5, S22 = 9, S23 = 14, S24 = 20,
S31 = 4, S32 = 11, S33 = 16, S34 = 23,
S41 = 6, S42 = 10, S43 = 15, S44 = 21;
for (; k < x.length; k += 16) {
AA = a; BB = b; CC = c; DD = d;
a = FF(a, b, c, d, x[k + 0], S11, 0xD76AA478);
d = FF(d, a, b, c, x[k + 1], S12, 0xE8C7B756);
c = FF(c, d, a, b, x[k + 2], S13, 0x242070DB);
b = FF(b, c, d, a, x[k + 3], S14, 0xC1BDCEEE);
a = FF(a, b, c, d, x[k + 4], S11, 0xF57C0FAF);
d = FF(d, a, b, c, x[k + 5], S12, 0x4787C62A);
c = FF(c, d, a, b, x[k + 6], S13, 0xA8304613);
b = FF(b, c, d, a, x[k + 7], S14, 0xFD469501);
a = FF(a, b, c, d, x[k + 8], S11, 0x698098D8);
d = FF(d, a, b, c, x[k + 9], S12, 0x8B44F7AF);
c = FF(c, d, a, b, x[k + 10], S13, 0xFFFF5BB1);
b = FF(b, c, d, a, x[k + 11], S14, 0x895CD7BE);
a = FF(a, b, c, d, x[k + 12], S11, 0x6B901122);
d = FF(d, a, b, c, x[k + 13], S12, 0xFD987193);
c = FF(c, d, a, b, x[k + 14], S13, 0xA679438E);
b = FF(b, c, d, a, x[k + 15], S14, 0x49B40821);
a = GG(a, b, c, d, x[k + 1], S21, 0xF61E2562);
d = GG(d, a, b, c, x[k + 6], S22, 0xC040B340);
c = GG(c, d, a, b, x[k + 11], S23, 0x265E5A51);
b = GG(b, c, d, a, x[k + 0], S24, 0xE9B6C7AA);
a = GG(a, b, c, d, x[k + 5], S21, 0xD62F105D);
d = GG(d, a, b, c, x[k + 10], S22, 0x2441453);
c = GG(c, d, a, b, x[k + 15], S23, 0xD8A1E681);
b = GG(b, c, d, a, x[k + 4], S24, 0xE7D3FBC8);
a = GG(a, b, c, d, x[k + 9], S21, 0x21E1CDE6);
d = GG(d, a, b, c, x[k + 14], S22, 0xC33707D6);
c = GG(c, d, a, b, x[k + 3], S23, 0xF4D50D87);
b = GG(b, c, d, a, x[k + 8], S24, 0x455A14ED);
a = GG(a, b, c, d, x[k + 13], S21, 0xA9E3E905);
d = GG(d, a, b, c, x[k + 2], S22, 0xFCEFA3F8);
c = GG(c, d, a, b, x[k + 7], S23, 0x676F02D9);
b = GG(b, c, d, a, x[k + 12], S24, 0x8D2A4C8A);
a = HH(a, b, c, d, x[k + 5], S31, 0xFFFA3942);
d = HH(d, a, b, c, x[k + 8], S32, 0x8771F681);
c = HH(c, d, a, b, x[k + 11], S33, 0x6D9D6122);
b = HH(b, c, d, a, x[k + 14], S34, 0xFDE5380C);
a = HH(a, b, c, d, x[k + 1], S31, 0xA4BEEA44);
d = HH(d, a, b, c, x[k + 4], S32, 0x4BDECFA9);
c = HH(c, d, a, b, x[k + 7], S33, 0xF6BB4B60);
b = HH(b, c, d, a, x[k + 10], S34, 0xBEBFBC70);
a = HH(a, b, c, d, x[k + 13], S31, 0x289B7EC6);
d = HH(d, a, b, c, x[k + 0], S32, 0xEAA127FA);
c = HH(c, d, a, b, x[k + 3], S33, 0xD4EF3085);
b = HH(b, c, d, a, x[k + 6], S34, 0x4881D05);
a = HH(a, b, c, d, x[k + 9], S31, 0xD9D4D039);
d = HH(d, a, b, c, x[k + 12], S32, 0xE6DB99E5);
c = HH(c, d, a, b, x[k + 15], S33, 0x1FA27CF8);
b = HH(b, c, d, a, x[k + 2], S34, 0xC4AC5665);
a = II(a, b, c, d, x[k + 0], S41, 0xF4292244);
d = II(d, a, b, c, x[k + 7], S42, 0x432AFF97);
c = II(c, d, a, b, x[k + 14], S43, 0xAB9423A7);
b = II(b, c, d, a, x[k + 5], S44, 0xFC93A039);
a = II(a, b, c, d, x[k + 12], S41, 0x655B59C3);
d = II(d, a, b, c, x[k + 3], S42, 0x8F0CCC92);
c = II(c, d, a, b, x[k + 10], S43, 0xFFEFF47D);
b = II(b, c, d, a, x[k + 1], S44, 0x85845DD1);
a = II(a, b, c, d, x[k + 8], S41, 0x6FA87E4F);
d = II(d, a, b, c, x[k + 15], S42, 0xFE2CE6E0);
c = II(c, d, a, b, x[k + 6], S43, 0xA3014314);
b = II(b, c, d, a, x[k + 13], S44, 0x4E0811A1);
a = II(a, b, c, d, x[k + 4], S41, 0xF7537E82);
d = II(d, a, b, c, x[k + 11], S42, 0xBD3AF235);
c = II(c, d, a, b, x[k + 2], S43, 0x2AD7D2BB);
b = II(b, c, d, a, x[k + 9], S44, 0xEB86D391);
a = AddUnsigned(a, AA);
b = AddUnsigned(b, BB);
c = AddUnsigned(c, CC);
d = AddUnsigned(d, DD);
}
return (WordToHex(a) + WordToHex(b) + WordToHex(c) + WordToHex(d)).toLowerCase();
};
})(jQuery);/** This file is part of KCFinder project
*
* @desc Base JavaScript object properties
* @package KCFinder
* @version 3.12
* @author Pavel Tzonkov
* @copyright 2010-2014 KCFinder Project
* @license http://opensource.org/licenses/GPL-3.0 GPLv3
* @license http://opensource.org/licenses/LGPL-3.0 LGPLv3
* @link http://kcfinder.sunhater.com
*/
var _ = {
opener: {},
support: {},
files: [],
clipboard: [],
labels: [],
shows: [],
orders: [],
cms: "",
scrollbarWidth: 20
};
/** This file is part of KCFinder project
*
* @desc Dialog boxes functionality
* @package KCFinder
* @version 3.12
* @author Pavel Tzonkov
* @copyright 2010-2014 KCFinder Project
* @license http://opensource.org/licenses/GPL-3.0 GPLv3
* @license http://opensource.org/licenses/LGPL-3.0 LGPLv3
* @link http://kcfinder.sunhater.com
*/
_.alert = function(text, field, options) {
var close = !field
? function() {}
: ($.isFunction(field)
? field
: function() { setTimeout(function() {field.focus(); }, 1); }
),
o = {
close: function() {
close();
if ($(this).hasClass('ui-dialog-content'))
$(this).dialog('destroy').detach();
}
};
$.extend(o, options);
return _.dialog(_.label("Warning"), text.replace("\n", "
\n"), o);
};
_.confirm = function(text, callback, options) {
var o = {
buttons: [
{
text: _.label("Yes"),
icons: {primary: "ui-icon-check"},
click: function() {
callback();
$(this).dialog('destroy').detach();
}
},
{
text: _.label("No"),
icons: {primary: "ui-icon-closethick"},
click: function() {
$(this).dialog('destroy').detach();
}
}
]
};
$.extend(o, options);
return _.dialog(_.label("Confirmation"), text, o);
};
_.dialog = function(title, content, options) {
if (!options) options = {};
var dlg = $('');
dlg.hide().attr('title', title).html(content).appendTo('body');
if (dlg.find('form').get(0) && !dlg.find('form [type="submit"]').get(0))
dlg.find('form').append('');
var o = {
resizable: false,
minHeight: false,
modal: true,
width: 351,
buttons: [
{
text: _.label("OK"),
icons: {primary: "ui-icon-check"},
click: function() {
if (typeof options.close != "undefined")
options.close();
if ($(this).hasClass('ui-dialog-content'))
$(this).dialog('destroy').detach();
}
}
],
close: function() {
if ($(this).hasClass('ui-dialog-content'))
$(this).dialog('destroy').detach();
},
closeText: false,
zindex: 1000000,
alone: false,
blur: false,
legend: false,
nopadding: false,
show: { effect: "fade", duration: 250 },
hide: { effect: "fade", duration: 250 }
};
$.extend(o, options);
if (o.alone)
$('.ui-dialog .ui-dialog-content').dialog('destroy').detach();
dlg.dialog(o);
if (o.nopadding)
dlg.css({padding: 0});
if (o.blur)
dlg.parent().find('.ui-dialog-buttonpane button').first().get(0).blur();
if (o.legend)
dlg.parent().find('.ui-dialog-buttonpane').prepend('' + o.legend + '
');
if ($.agent && $.agent.firefox)
dlg.css('overflow-x', "hidden");
return dlg;
};
_.fileNameDialog = function(post, inputName, inputValue, url, labels, callBack, selectAll) {
var html = '',
submit = function() {
var name = dlg.find('[type="text"]').get(0);
name.value = $.trim(name.value);
if (name.value == "") {
_.alert(_.label(labels.errEmpty), function() {
name.focus();
});
return false;
} else if (/[\/\\]/g.test(name.value)) {
_.alert(_.label(labels.errSlash), function() {
name.focus();
});
return false;
} else if (name.value.substr(0, 1) == ".") {
_.alert(_.label(labels.errDot), function() {
name.focus();
});
return false;
}
post[inputName] = name.value;
$.ajax({
type: "post",
dataType: "json",
url: url,
data: post,
async: false,
success: function(data) {
if (_.check4errors(data, false))
return;
if (callBack) callBack(data);
dlg.dialog("destroy").detach();
},
error: function() {
_.alert(_.label("Unknown error."));
}
});
return false;
},
dlg = _.dialog(_.label(labels.title), html, {
width: 351,
buttons: [
{
text: _.label("OK"),
icons: {primary: "ui-icon-check"},
click: function() {
submit();
}
},
{
text: _.label("Cancel"),
icons: {primary: "ui-icon-closethick"},
click: function() {
$(this).dialog('destroy').detach();
}
}
]
}),
field = dlg.find('[type="text"]');
field.transForm().attr('value', inputValue).css('width', 310);
dlg.find('form').submit(submit);
if (!selectAll && /^(.+)\.[^\.]+$/ .test(inputValue))
field.selection(0, inputValue.replace(/^(.+)\.[^\.]+$/, "$1").length);
else {
field.get(0).focus();
field.get(0).select();
}
};/** This file is part of KCFinder project
*
* @desc Object initializations
* @package KCFinder
* @version 3.12
* @author Pavel Tzonkov
* @copyright 2010-2014 KCFinder Project
* @license http://opensource.org/licenses/GPL-3.0 GPLv3
* @license http://opensource.org/licenses/LGPL-3.0 LGPLv3
* @link http://kcfinder.sunhater.com
*/
_.init = function() {
if (!_.checkAgent()) return;
$('body').click(function() {
_.menu.hide();
}).rightClick();
$('#menu').unbind().click(function() {
return false;
});
_.initOpeners();
_.initSettings();
_.initContent();
_.initToolbar();
_.initResizer();
_.initDropUpload();
var div = $('')
.css({width: 100, height: 100, overflow: 'auto', position: 'absolute', top: -1000, left: -1000})
.prependTo('body').append('').find('div').css({width: '100%', height: 200});
_.scrollbarWidth = 100 - div.width();
div.parent().remove();
$.each($.agent, function(i) {
if (i != "platform")
$('body').addClass(i)
});
if ($.agent.platform)
$.each($.agent.platform, function(i) {
$('body').addClass(i)
});
if ($.mobile)
$('body').addClass("mobile");
};
_.checkAgent = function() {
if (($.agent.msie && !$.agent.opera && !$.agent.chromeframe && (parseInt($.agent.msie) < 9)) ||
($.agent.opera && (parseInt($.agent.version) < 10)) ||
($.agent.firefox && (parseFloat($.agent.firefox) < 1.8))
) {
var html = '';
$('body').html(html);
return false;
}
return true;
};
_.initOpeners = function() {
try {
// TinyMCE 3
if (_.opener.name == "tinymce") {
if (typeof tinyMCEPopup == "undefined")
_.opener.name = null;
else
_.opener.callBack = true;
// TinyMCE 4
} else if (_.opener.name == "tinymce4")
_.opener.callBack = true;
// CKEditor
else if (_.opener.name == "ckeditor") {
if (window.parent && window.parent.CKEDITOR)
_.opener.CKEditor.object = window.parent.CKEDITOR;
else if (window.opener && window.opener.CKEDITOR) {
_.opener.CKEditor.object = window.opener.CKEDITOR;
_.opener.callBack = true;
} else
_.opener.CKEditor = null;
// FCKeditor
} else if ((!_.opener.name || (_.opener.name == "fckeditor")) && window.opener && window.opener.SetUrl) {
_.opener.name = "fckeditor";
_.opener.callBack = true;
}
// Custom callback
if (!_.opener.callBack) {
if ((window.opener && window.opener.KCFinder && window.opener.KCFinder.callBack) ||
(window.parent && window.parent.KCFinder && window.parent.KCFinder.callBack)
)
_.opener.callBack = window.opener
? window.opener.KCFinder.callBack
: window.parent.KCFinder.callBack;
if ((
window.opener &&
window.opener.KCFinder &&
window.opener.KCFinder.callBackMultiple
) || (
window.parent &&
window.parent.KCFinder &&
window.parent.KCFinder.callBackMultiple
)
)
_.opener.callBackMultiple = window.opener
? window.opener.KCFinder.callBackMultiple
: window.parent.KCFinder.callBackMultiple;
}
} catch(e) {}
};
_.initContent = function() {
$('div#folders').html(_.label("Loading folders..."));
$('div#files').html(_.label("Loading files..."));
$.ajax({
type: "get",
dataType: "json",
url: _.getURL("init"),
async: false,
success: function(data) {
if (_.check4errors(data))
return;
_.dirWritable = data.dirWritable;
$('#folders').html(_.buildTree(data.tree));
_.setTreeData(data.tree);
_.setTitle("KCFinder: /" + _.dir);
_.initFolders();
_.files = data.files ? data.files : [];
_.orderFiles();
},
error: function() {
$('div#folders').html(_.label("Unknown error."));
$('div#files').html(_.label("Unknown error."));
}
});
};
_.initResizer = function() {
var cursor = ($.agent.opera) ? 'move' : 'col-resize';
$('#resizer').css('cursor', cursor).draggable({
axis: 'x',
start: function() {
$(this).css({
opacity: "0.4",
filter: "alpha(opacity=40)"
});
$('#all').css('cursor', cursor);
},
stop: function() {
$(this).css({
opacity: "0",
filter: "alpha(opacity=0)"
});
$('#all').css('cursor', "");
var jLeft = $('#left'),
jRight = $('#right'),
jFiles = $('#files'),
jFolders = $('#folders'),
left = parseInt($(this).css('left')) + parseInt($(this).css('width')),
w = 0, r;
$('#toolbar a').each(function() {
if ($(this).css('display') != "none")
w += $(this).outerWidth(true);
});
r = $(window).width() - w;
if (left < 100)
left = 100;
if (left > r)
left = r;
var right = $(window).width() - left;
jLeft.css('width', left);
jRight.css('width', right);
jFiles.css('width', jRight.innerWidth() - jFiles.outerHSpace());
$('#resizer').css({
left: jLeft.outerWidth() - jFolders.outerRightSpace('m'),
width: jFolders.outerRightSpace('m') + jFiles.outerLeftSpace('m')
});
_.fixFilesHeight();
_.fixScrollRadius();
}
});
};
_.resize = function() {
var jLeft = $('#left'),
jRight = $('#right'),
jStatus = $('#status'),
jFolders = $('#folders'),
jFiles = $('#files'),
jResizer = $('#resizer'),
jWindow = $(window);
jLeft.css({
width: "25%",
height: jWindow.height() - jStatus.outerHeight()
});
jRight.css({
width: "75%",
height: jWindow.height() - jStatus.outerHeight()
});
$('#toolbar').css('height', $('#toolbar a').outerHeight());
jResizer.css('height', $(window).height());
jFolders.css('height', jLeft.outerHeight() - jFolders.outerVSpace());
_.fixFilesHeight();
jStatus.css('width', jLeft.outerWidth() + jRight.outerWidth() - jStatus.outerHSpace('p'));
jFiles.css('width', jRight.innerWidth() - jFiles.outerHSpace());
jResizer.css({
left: jLeft.outerWidth() - jFolders.outerRightSpace('m'),
width: jFolders.outerRightSpace('m') + jFiles.outerLeftSpace('m')
});
_.fixScrollRadius();
};
_.setTitle = function(title) {
document.title = title;
if (_.opener.name == "tinymce")
tinyMCEPopup.editor.windowManager.setTitle(window, title);
else if (_.opener.name == "tinymce4") {
var ifr = $('iframe[src*="browse.php?opener=tinymce4&"]', window.parent.document),
path = ifr.attr('src').split('browse.php?')[0];
ifr.parent().parent().find('div.mce-title').html('' + title + '');
}
};
_.fixFilesHeight = function() {
var jFiles = $('#files'),
jSettings = $('#settings');
jFiles.css('height',
$('#left').outerHeight() - $('#toolbar').outerHeight() - jFiles.outerVSpace() -
((jSettings.css('display') != "none") ? jSettings.outerHeight() : 0)
);
};
_.fixScrollRadius = function() {
$('#folders').fixScrollbarRadius();
$('#files').fixScrollbarRadius();
};/** This file is part of KCFinder project
*
* @desc Toolbar functionality
* @package KCFinder
* @version 3.12
* @author Pavel Tzonkov
* @copyright 2010-2014 KCFinder Project
* @license http://opensource.org/licenses/GPL-3.0 GPLv3
* @license http://opensource.org/licenses/LGPL-3.0 LGPLv3
* @link http://kcfinder.sunhater.com
*/
_.initToolbar = function() {
$('#toolbar').disableTextSelect();
$('#toolbar a').click(function() {
_.menu.hide();
});
if (!$.$.kuki.isSet('displaySettings'))
$.$.kuki.set('displaySettings', "off");
if ($.$.kuki.get('displaySettings') == "on") {
$('#toolbar a[href="kcact:settings"]').addClass('selected');
$('#settings').show();
_.resize();
$('#lang').transForm();
}
$('#toolbar a[href="kcact:settings"]').click(function () {
var jSettings = $('#settings');
if (jSettings.css('display') == "none") {
$(this).addClass('selected');
$.$.kuki.set('displaySettings', "on");
jSettings.show();
_.fixFilesHeight();
if (!jSettings.find('.tf-select #lang').get(0))
$('#lang').transForm();
} else {
$(this).removeClass('selected');
$.$.kuki.set('displaySettings', "off");
jSettings.hide();
_.fixFilesHeight();
}
return false;
});
$('#toolbar a[href="kcact:refresh"]').click(function() {
_.refresh();
return false;
});
$('#toolbar a[href="kcact:maximize"]').click(function() {
_.maximize(this);
return false;
});
$('#toolbar a[href="kcact:about"]').click(function() {
var html = '' +
'
';
if (_.support.check4Update)
html += '
' + _.label("Checking for new version...") + '
';
html +=
'
' +
'
Copyright ©2010-2014 Pavel Tzonkov
' +
'
';
var dlg = _.dialog(_.label("About"), html, {width: 301});
setTimeout(function() {
$.ajax({
dataType: "json",
url: _.getURL('check4Update'),
async: true,
success: function(data) {
if (!dlg.html().length)
return;
var span = $('#checkver');
span.removeClass('loading');
if (!data.version) {
span.html(_.label("Unable to connect!"));
return;
}
if (_.version < data.version)
span.html('' + _.label("Download version {version} now!", {version: data.version}) + '');
else
span.html(_.label("KCFinder is up to date!"));
},
error: function() {
if (!dlg.html().length)
return;
$('#checkver').removeClass('loading').html(_.label("Unable to connect!"));
}
});
}, 1000);
return false;
});
_.initUploadButton();
};
_.initUploadButton = function() {
var btn = $('#toolbar a[href="kcact:upload"]');
if (!_.access.files.upload) {
btn.hide();
return;
}
var top = btn.get(0).offsetTop,
width = btn.outerWidth(),
height = btn.outerHeight(),
jInput = $('#upload input');
$('#toolbar').prepend('');
jInput.css('margin-left', "-" + (jInput.outerWidth() - width));
$('#upload').mouseover(function() {
$('#toolbar a[href="kcact:upload"]').addClass('hover');
}).mouseout(function() {
$('#toolbar a[href="kcact:upload"]').removeClass('hover');
});
};
_.uploadFile = function(form) {
if (!_.dirWritable) {
_.alert(_.label("Cannot write to upload folder."));
$('#upload').detach();
_.initUploadButton();
return;
}
form.elements[1].value = _.dir;
$('').prependTo(document.body);
$('#loading').html(_.label("Uploading file...")).show();
form.submit();
$('#uploadResponse').load(function() {
var response = $(this).contents().find('body').text();
$('#loading').hide();
response = response.split("\n");
var selected = [], errors = [];
$.each(response, function(i, row) {
if (row.substr(0, 1) == "/")
selected[selected.length] = row.substr(1, row.length - 1);
else
errors[errors.length] = row;
});
if (errors.length) {
errors = errors.join("\n");
if (errors.replace(/^\s+/g, "").replace(/\s+$/g, "").length)
_.alert(errors);
}
if (!selected.length)
selected = null;
_.refresh(selected);
$('#upload').detach();
setTimeout(function() {
$('#uploadResponse').detach();
}, 1);
_.initUploadButton();
});
};
_.maximize = function(button) {
// TINYMCE 3
if (_.opener.name == "tinymce") {
var par = window.parent.document,
ifr = $('iframe[src*="browse.php?opener=tinymce&"]', par),
id = parseInt(ifr.attr('id').replace(/^mce_(\d+)_ifr$/, "$1")),
win = $('#mce_' + id, par);
if ($(button).hasClass('selected')) {
$(button).removeClass('selected');
win.css({
left: _.maximizeMCE.left,
top: _.maximizeMCE.top,
width: _.maximizeMCE.width,
height: _.maximizeMCE.height
});
ifr.css({
width: _.maximizeMCE.width - _.maximizeMCE.Hspace,
height: _.maximizeMCE.height - _.maximizeMCE.Vspace
});
} else {
$(button).addClass('selected')
_.maximizeMCE = {
width: parseInt(win.css('width')),
height: parseInt(win.css('height')),
left: win.position().left,
top: win.position().top,
Hspace: parseInt(win.css('width')) - parseInt(ifr.css('width')),
Vspace: parseInt(win.css('height')) - parseInt(ifr.css('height'))
};
var width = $(window.top).width(),
height = $(window.top).height();
win.css({
left: $(window.parent).scrollLeft(),
top: $(window.parent).scrollTop(),
width: width,
height: height
});
ifr.css({
width: width - _.maximizeMCE.Hspace,
height: height - _.maximizeMCE.Vspace
});
}
// TINYMCE 4
} else if (_.opener.name == "tinymce4") {
var par = window.parent.document,
ifr = $('iframe[src*="browse.php?opener=tinymce4&"]', par).parent(),
win = ifr.parent();
if ($(button).hasClass('selected')) {
$(button).removeClass('selected');
win.css({
left: _.maximizeMCE4.left,
top: _.maximizeMCE4.top,
width: _.maximizeMCE4.width,
height: _.maximizeMCE4.height
});
ifr.css({
width: _.maximizeMCE4.width,
height: _.maximizeMCE4.height - _.maximizeMCE4.Vspace
});
} else {
$(button).addClass('selected');
_.maximizeMCE4 = {
width: parseInt(win.css('width')),
height: parseInt(win.css('height')),
left: win.position().left,
top: win.position().top,
Vspace: win.outerHeight(true) - ifr.outerHeight(true) - 1
};
var width = $(window.top).width(),
height = $(window.top).height();
win.css({
left: 0,
top: 0,
width: width,
height: height
});
ifr.css({
width: width,
height: height - _.maximizeMCE4.Vspace
});
}
// PUPUP WINDOW
} else if (window.opener) {
window.moveTo(0, 0);
width = screen.availWidth;
height = screen.availHeight;
if ($.agent.opera)
height -= 50;
window.resizeTo(width, height);
} else {
if (window.parent) {
var el = null;
$(window.parent.document).find('iframe').each(function() {
if (this.src.replace('/?', '?') == window.location.href.replace('/?', '?')) {
el = this;
return false;
}
});
// IFRAME
if (el !== null)
$(el).toggleFullscreen(window.parent.document);
// SELF WINDOW
else
$('body').toggleFullscreen();
} else
$('body').toggleFullscreen();
}
};
_.refresh = function(selected) {
_.fadeFiles();
$.ajax({
type: "post",
dataType: "json",
url: _.getURL("chDir"),
data: {dir: _.dir},
async: false,
success: function(data) {
if (_.check4errors(data)) {
$('#files > div').css({opacity: "", filter: ""});
return;
}
_.dirWritable = data.dirWritable;
_.files = data.files ? data.files : [];
_.orderFiles(null, selected);
_.statusDir();
},
error: function() {
$('#files > div').css({opacity: "", filter: ""});
$('#files').html(_.label("Unknown error."));
}
});
};
/** This file is part of KCFinder project
*
* @desc Settings panel functionality
* @package KCFinder
* @version 3.12
* @author Pavel Tzonkov
* @copyright 2010-2014 KCFinder Project
* @license http://opensource.org/licenses/GPL-3.0 GPLv3
* @license http://opensource.org/licenses/LGPL-3.0 LGPLv3
* @link http://kcfinder.sunhater.com
*/
_.initSettings = function() {
$('#settings fieldset').disableTextSelect();
if (!_.shows.length)
$('#show input[type="checkbox"]').each(function(i) {
_.shows[i] = this.name;
});
var shows = _.shows;
if (!$.$.kuki.isSet('showname')) {
$.$.kuki.set('showname', "on");
$.each(shows, function (i, val) {
if (val != "name") $.$.kuki.set('show' + val, "off");
});
}
$('#show input[type="checkbox"]').click(function() {
$.$.kuki.set('show' + this.name, this.checked ? "on" : "off")
$('#files .file div.' + this.name).css('display', this.checked ? "block" : "none");
});
$.each(shows, function(i, val) {
$('#show input[name="' + val + '"]').get(0).checked = ($.$.kuki.get('show' + val) == "on") ? "checked" : "";
});
if (!_.orders.length)
$('#order input[type="radio"]').each(function(i) {
_.orders[i] = this.value;
})
var orders = _.orders;
if (!$.$.kuki.isSet('order'))
$.$.kuki.set('order', "name");
if (!$.$.kuki.isSet('orderDesc'))
$.$.kuki.set('orderDesc', "off");
$('#order input[value="' + $.$.kuki.get('order') + '"]').get(0).checked = true;
$('#order input[name="desc"]').get(0).checked = ($.$.kuki.get('orderDesc') == "on");
$('#order input[type="radio"]').click(function() {
$.$.kuki.set('order', this.value);
_.orderFiles();
});
$('#order input[name="desc"]').click(function() {
$.$.kuki.set('orderDesc', this.checked ? 'on' : "off");
_.orderFiles();
});
if (!$.$.kuki.isSet('view'))
$.$.kuki.set('view', "thumbs");
if ($.$.kuki.get('view') == "list")
$('#show').parent().hide();
$('#view input[value="' + $.$.kuki.get('view') + '"]').get(0).checked = true;
$('#view input').click(function() {
var view = this.value;
if ($.$.kuki.get('view') != view) {
$.$.kuki.set('view', view);
if (view == "list")
$('#show').parent().hide();
else
$('#show').parent().show();
}
_.fixFilesHeight();
_.refresh();
});
$('#settings fieldset, #settings input, #settings label').transForm();
_.initLangs();
};
_.initLangs = function() {
$.each(_.langs, function(id, lng) {
var opt = $('');
opt.val(id).text(lng);
if (id == _.lang)
opt.attr({selected: true});
$('#lang').append(opt);
});
$('#lang').change(function() {
window.location = _.getURL("browser", this.value) + "&theme=" + encodeURIComponent(_.theme);
});
}/** This file is part of KCFinder project
*
* @desc File related functionality
* @package KCFinder
* @version 3.12
* @author Pavel Tzonkov
* @copyright 2010-2014 KCFinder Project
* @license http://opensource.org/licenses/GPL-3.0 GPLv3
* @license http://opensource.org/licenses/LGPL-3.0 LGPLv3
* @link http://kcfinder.sunhater.com
*/
_.initFiles = function() {
$(document).unbind('keydown').keydown(function(e) {
return !_.selectAll(e);
});
$('#files').unbind().scroll(function() {
_.menu.hide();
}).disableTextSelect();
$('.file').unbind().click(function(e) {
_.selectFile($(this), e);
}).rightClick(function(el, e) {
_.menuFile($(el), e);
}).dblclick(function() {
_.returnFile($(this));
});
if ($.mobile)
$('.file').on('taphold', function() {
_.menuFile($(this), {
pageX: $(this).offset().left,
pageY: $(this).offset().top + $(this).outerHeight()
});
});
$.each(_.shows, function(i, val) {
$('#files .file div.' + val).css('display', ($.$.kuki.get('show' + val) == "off") ? "none" : "block");
});
_.statusDir();
};
_.showFiles = function(callBack, selected) {
_.fadeFiles();
setTimeout(function() {
var c = $('');
$.each(_.files, function(i, file) {
var f, icon,
stamp = file.size + "|" + file.mtime;
// List
if ($.$.kuki.get('view') == "list") {
if (!i) c.html('');
icon = $.$.getFileExtension(file.name);
if (file.thumb)
icon = ".image";
else if (!icon.length || !file.smallIcon)
icon = ".";
icon = "themes/" + _.theme + "/img/files/small/" + icon + ".png";
f = $(' | | |
');
f.appendTo(c.find('table'));
// Thumbnails
} else {
if (file.thumb)
icon = _.getURL('thumb') + "&file=" + encodeURIComponent(file.name) + "&dir=" + encodeURIComponent(_.dir) + "&stamp=" + stamp;
else if (file.smallThumb) {
icon = _.uploadURL + "/" + _.dir + "/" + encodeURIComponent(file.name);
icon = $.$.escapeDirs(icon).replace(/\'/g, "%27");
} else {
icon = file.bigIcon ? $.$.getFileExtension(file.name) : ".";
if (!icon.length) icon = ".";
icon = "themes/" + _.theme + "/img/files/big/" + icon + ".png";
}
f = $('');
f.appendTo(c);
}
f.find('.thumb').css({backgroundImage: 'url("' + icon + '")'});
f.find('.name').text(file.name);
f.find('.time').html(file.date);
f.find('.size').html(_.humanSize(file.size));
f.data(file);
if ((file.name === selected) || $.$.inArray(file.name, selected))
f.addClass('selected');
});
c.css({opacity:'', filter:''});
$('#files').html(c);
if (callBack) callBack();
_.initFiles();
_.fixScrollRadius();
}, 200);
};
_.selectFile = function(file, e) {
// Click with Ctrl, Meta or Shift key
if (e.ctrlKey || e.metaKey || e.shiftKey) {
// Click with Shift key
if (e.shiftKey && !file.hasClass('selected')) {
var f = file.prev();
while (f.get(0) && !f.hasClass('selected')) {
f.addClass('selected');
f = f.prev();
}
}
file.toggleClass('selected');
// Update statusbar
var files = $('.file.selected').get(),
size = 0, data;
if (!files.length)
_.statusDir();
else {
$.each(files, function(i, cfile) {
size += $(cfile).data('size');
});
size = _.humanSize(size);
if (files.length > 1)
$('#fileinfo').html(files.length + " " + _.label("selected files") + " (" + size + ")");
else {
data = $(files[0]).data();
$('#fileinfo').text(data.name + " (" + _.humanSize(data.size) + ", " + data.date + ")");
}
}
// Normal click
} else {
data = file.data();
$('.file').removeClass('selected');
file.addClass('selected');
$('#fileinfo').text(data.name + " (" + _.humanSize(data.size) + ", " + data.date + ")");
}
};
_.selectAll = function(e) {
if ((!e.ctrlKey && !e.metaKey) || ((e.keyCode != 65) && (e.keyCode != 97))) // Ctrl-A
return false;
var files = $('.file'),
size = 0;
if (files.length) {
files.addClass('selected').each(function() {
size += $(this).data('size');
});
$('#fileinfo').html(files.length + " " + _.label("selected files") + " (" + _.humanSize(size) + ")");
}
return true;
};
_.returnFile = function(file) {
var button, win, fileURL = file.substr
? file : _.uploadURL + "/" + _.dir + "/" + file.data('name');
fileURL = $.$.escapeDirs(fileURL);
if (_.opener.name == "ckeditor") {
_.opener.CKEditor.object.tools.callFunction(_.opener.CKEditor.funcNum, fileURL, "");
window.close();
} else if (_.opener.name == "fckeditor") {
window.opener.SetUrl(fileURL) ;
window.close() ;
} else if (_.opener.name == "tinymce") {
win = tinyMCEPopup.getWindowArg('window');
win.document.getElementById(tinyMCEPopup.getWindowArg('input')).value = fileURL;
if (win.getImageData) win.getImageData();
if (typeof(win.ImageDialog) != "undefined") {
if (win.ImageDialog.getImageData)
win.ImageDialog.getImageData();
if (win.ImageDialog.showPreviewImage)
win.ImageDialog.showPreviewImage(fileURL);
}
tinyMCEPopup.close();
} else if (_.opener.name == "tinymce4") {
win = (window.opener ? window.opener : window.parent);
$(win.document).find('#' + _.opener.TinyMCE.field).val(fileURL);
win.tinyMCE.activeEditor.windowManager.close();
} else if (_.opener.callBack) {
if (window.opener && window.opener.KCFinder) {
_.opener.callBack(fileURL);
window.close();
}
if (window.parent && window.parent.KCFinder) {
button = $('#toolbar a[href="kcact:maximize"]');
if (button.hasClass('selected'))
_.maximize(button);
_.opener.callBack(fileURL);
}
} else if (_.opener.callBackMultiple) {
if (window.opener && window.opener.KCFinder) {
_.opener.callBackMultiple([fileURL]);
window.close();
}
if (window.parent && window.parent.KCFinder) {
button = $('#toolbar a[href="kcact:maximize"]');
if (button.hasClass('selected'))
_.maximize(button);
_.opener.callBackMultiple([fileURL]);
}
}
};
_.returnFiles = function(files) {
if (_.opener.callBackMultiple && files.length) {
var rfiles = [];
$.each(files, function(i, file) {
rfiles[i] = _.uploadURL + "/" + _.dir + "/" + $(file).data('name');
rfiles[i] = $.$.escapeDirs(rfiles[i]);
});
_.opener.callBackMultiple(rfiles);
if (window.opener) window.close()
}
};
_.returnThumbnails = function(files) {
if (_.opener.callBackMultiple) {
var rfiles = [], j = 0;
$.each(files, function(i, file) {
if ($(file).data('thumb')) {
rfiles[j] = _.thumbsURL + "/" + _.dir + "/" + $(file).data('name');
rfiles[j] = $.$.escapeDirs(rfiles[j++]);
}
});
_.opener.callBackMultiple(rfiles);
if (window.opener) window.close()
}
};
/** This file is part of KCFinder project
*
* @desc Folder related functionality
* @package KCFinder
* @version 3.12
* @author Pavel Tzonkov
* @copyright 2010-2014 KCFinder Project
* @license http://opensource.org/licenses/GPL-3.0 GPLv3
* @license http://opensource.org/licenses/LGPL-3.0 LGPLv3
* @link http://kcfinder.sunhater.com
*/
_.initFolders = function() {
$('#folders').scroll(function() {
_.menu.hide();
}).disableTextSelect();
$('div.folder > a').unbind().click(function() {
_.menu.hide();
return false;
});
$('div.folder > a > span.brace').unbind().click(function() {
if ($(this).hasClass('opened') || $(this).hasClass('closed'))
_.expandDir($(this).parent());
});
$('div.folder > a > span.folder').unbind().click(function() {
_.changeDir($(this).parent());
}).rightClick(function(el, e) {
_.menuDir($(el).parent(), e);
});
if ($.mobile)
$('div.folder > a > span.folder').on('taphold', function() {
_.menuDir($(this).parent(), {
pageX: $(this).offset().left + 1,
pageY: $(this).offset().top + $(this).outerHeight()
});
});
};
_.setTreeData = function(data, path) {
if (!path)
path = "";
else if (path.length && (path.substr(path.length - 1, 1) != '/'))
path += "/";
path += data.name;
var selector = '#folders a[href="kcdir:/' + $.$.escapeDirs(path) + '"]';
$(selector).data({
name: data.name,
path: path,
readable: data.readable,
writable: data.writable,
removable: data.removable,
hasDirs: data.hasDirs
});
$(selector + ' span.folder').addClass(data.current ? 'current' : 'regular');
if (data.dirs && data.dirs.length) {
$(selector + ' span.brace').addClass('opened');
$.each(data.dirs, function(i, cdir) {
_.setTreeData(cdir, path + "/");
});
} else if (data.hasDirs)
$(selector + ' span.brace').addClass('closed');
};
_.buildTree = function(root, path) {
if (!path) path = "";
path += root.name;
var cdir, html = ' ' + $.$.htmlData(root.name) + '';
if (root.dirs) {
html += '
';
for (var i = 0; i < root.dirs.length; i++) {
cdir = root.dirs[i];
html += _.buildTree(cdir, path + "/");
}
html += '
';
}
html += '
';
return html;
};
_.expandDir = function(dir) {
var path = dir.data('path');
if (dir.children('.brace').hasClass('opened')) {
dir.parent().children('.folders').hide(500, function() {
if (path == _.dir.substr(0, path.length))
_.changeDir(dir);
_.fixScrollRadius();
});
dir.children('.brace').removeClass('opened').addClass('closed');
} else {
if (dir.parent().children('.folders').get(0)) {
dir.parent().children('.folders').show(500, function() {
_.fixScrollRadius();
});
dir.children('.brace').removeClass('closed').addClass('opened');
} else if (!$('#loadingDirs').get(0)) {
dir.parent().append('' + _.label("Loading folders...") + '
');
$('#loadingDirs').hide().show(200, function() {
$.ajax({
type: "post",
dataType: "json",
url: _.getURL("expand"),
data: {dir: path},
async: false,
success: function(data) {
$('#loadingDirs').hide(200, function() {
$('#loadingDirs').detach();
});
if (_.check4errors(data))
return;
var html = "";
$.each(data.dirs, function(i, cdir) {
html += '';
});
if (html.length) {
dir.parent().append('' + html + '
');
var folders = $(dir.parent().children('.folders').first());
folders.hide();
$(folders).show(500, function() {
_.fixScrollRadius();
});
$.each(data.dirs, function(i, cdir) {
_.setTreeData(cdir, path);
});
}
if (data.dirs.length)
dir.children('.brace').removeClass('closed').addClass('opened');
else
dir.children('.brace').removeClass('opened closed');
_.initFolders();
_.initDropUpload();
_.fixScrollRadius();
},
error: function() {
$('#loadingDirs').detach();
_.alert(_.label("Unknown error."));
_.fixScrollRadius();
}
});
_.fixScrollRadius();
});
}
}
};
_.changeDir = function(dir) {
if (dir.children('span.folder').hasClass('regular')) {
$('div.folder > a > span.folder').removeClass('current regular').addClass('regular');
dir.children('span.folder').removeClass('regular').addClass('current');
$('#files').html(_.label("Loading files..."));
$.ajax({
type: "post",
dataType: "json",
url: _.getURL("chDir"),
data: {dir: dir.data('path')},
async: false,
success: function(data) {
if (_.check4errors(data))
return;
_.files = data.files;
_.orderFiles();
_.dir = dir.data('path');
_.dirWritable = data.dirWritable;
_.setTitle("KCFinder: /" + _.dir);
_.statusDir();
_.initDropUpload();
},
error: function() {
$('#files').html(_.label("Unknown error."));
}
});
}
};
_.statusDir = function() {
var i = 0, size = 0;
for (; i < _.files.length; i++)
size += _.files[i].size;
size = _.humanSize(size);
$('#fileinfo').html(_.files.length + " " + _.label("files") + " (" + size + ")");
};
_.refreshDir = function(dir) {
var path = dir.data('path');
if (dir.children('.brace').hasClass('opened') || dir.children('.brace').hasClass('closed'))
dir.children('.brace').removeClass('opened').addClass('closed');
dir.parent().children('.folders').first().detach();
if (path == _.dir.substr(0, path.length))
_.changeDir(dir);
_.expandDir(dir);
return true;
};
/** This file is part of KCFinder project
*
* @desc Context menus
* @package KCFinder
* @version 3.12
* @author Pavel Tzonkov
* @copyright 2010-2014 KCFinder Project
* @license http://opensource.org/licenses/GPL-3.0 GPLv3
* @license http://opensource.org/licenses/LGPL-3.0 LGPLv3
* @link http://kcfinder.sunhater.com
*/
_.menu = {
init: function() {
$('#menu').html("").css('display', 'none');
},
addItem: function(href, label, callback, denied) {
if (typeof denied == "undefined")
denied = false;
$('#menu ul').append('' + label + '');
if (!denied && $.isFunction(callback))
$('#menu a[href="' + href + '"]').click(function() {
_.menu.hide();
return callback();
});
},
addDivider: function() {
if ($('#menu ul').html().length)
$('#menu ul').append("-");
},
show: function(e) {
var dlg = $('#menu'),
ul = $('#menu ul');
if (ul.html().length) {
dlg.find('ul').first().menu();
if (typeof e != "undefined") {
var left = e.pageX,
top = e.pageY,
win = $(window);
if ((dlg.outerWidth() + left) > win.width())
left = win.width() - dlg.outerWidth();
if ((dlg.outerHeight() + top) > win.height())
top = win.height() - dlg.outerHeight();
dlg.hide().css({
left: left,
top: top,
width: ""
}).fadeIn('fast');
} else
dlg.fadeIn('fast');
} else
ul.detach();
},
hide: function() {
$('#clipboard').removeClass('selected');
$('div.folder > a > span.folder').removeClass('context');
$('#menu').hide().css('width', "").html("").data('title', null).unbind().click(function() {
return false;
});
$(document).unbind('keydown').keydown(function(e) {
return !_.selectAll(e);
});
}
};
// FILE CONTEXT MENU
_.menuFile = function(file, e) {
_.menu.init();
var data = file.data(),
files = $('.file.selected').get();
// MULTIPLE FILES MENU
if (file.hasClass('selected') && files.length && (files.length > 1)) {
var thumb = false,
notWritable = 0,
cdata;
$.each(files, function(i, cfile) {
cdata = $(cfile).data();
if (cdata.thumb) thumb = true;
if (!data.writable) notWritable++;
});
if (_.opener.callBackMultiple) {
// SELECT FILES
_.menu.addItem("kcact:pick", _.label("Select"), function() {
_.returnFiles(files);
return false;
});
// SELECT THUMBNAILS
if (thumb)
_.menu.addItem("kcact:pick_thumb", _.label("Select Thumbnails"), function() {
_.returnThumbnails(files);
return false;
});
}
if (data.thumb || data.smallThumb || _.support.zip) {
_.menu.addDivider();
// VIEW IMAGE
if (data.thumb || data.smallThumb)
_.menu.addItem("kcact:view", _.label("View"), function() {
_.viewImage(data);
});
// DOWNLOAD
if (_.support.zip)
_.menu.addItem("kcact:download", _.label("Download"), function() {
var pfiles = [];
$.each(files, function(i, cfile) {
pfiles[i] = $(cfile).data('name');
});
_.post(_.getURL('downloadSelected'), {dir:_.dir, files:pfiles});
return false;
});
}
// ADD TO CLIPBOARD
if (_.access.files.copy || _.access.files.move) {
_.menu.addDivider();
_.menu.addItem("kcact:clpbrdadd", _.label("Add to Clipboard"), function() {
var msg = '';
$.each(files, function(i, cfile) {
var cdata = $(cfile).data(),
failed = false;
for (i = 0; i < _.clipboard.length; i++)
if ((_.clipboard[i].name == cdata.name) &&
(_.clipboard[i].dir == _.dir)
) {
failed = true;
msg += cdata.name + ": " + _.label("This file is already added to the Clipboard.") + "\n";
break;
}
if (!failed) {
cdata.dir = _.dir;
_.clipboard[_.clipboard.length] = cdata;
}
});
_.initClipboard();
if (msg.length) _.alert(msg.substr(0, msg.length - 1));
return false;
});
}
// DELETE
if (_.access.files['delete']) {
_.menu.addDivider();
_.menu.addItem("kcact:rm", _.label("Delete"), function() {
if ($(this).hasClass('denied')) return false;
var failed = 0,
dfiles = [];
$.each(files, function(i, cfile) {
var cdata = $(cfile).data();
if (!cdata.writable)
failed++;
else
dfiles[dfiles.length] = _.dir + "/" + cdata.name;
});
if (failed == files.length) {
_.alert(_.label("The selected files are not removable."));
return false;
}
var go = function(callBack) {
_.fadeFiles();
$.ajax({
type: "post",
dataType: "json",
url: _.getURL("rm_cbd"),
data: {files:dfiles},
async: false,
success: function(data) {
if (callBack) callBack();
_.check4errors(data);
_.refresh();
},
error: function() {
if (callBack) callBack();
$('#files > div').css({
opacity: "",
filter: ""
});
_.alert(_.label("Unknown error."));
}
});
};
if (failed)
_.confirm(
_.label("{count} selected files are not removable. Do you want to delete the rest?", {count:failed}),
go
);
else
_.confirm(
_.label("Are you sure you want to delete all selected files?"),
go
);
return false;
}, (notWritable == files.length));
}
_.menu.show(e);
// SINGLE FILE MENU
} else {
$('.file').removeClass('selected');
file.addClass('selected');
$('#fileinfo').text(data.name + " (" + _.humanSize(data.size) + ", " + data.date + ")");
if (_.opener.callBack || _.opener.callBackMultiple) {
// SELECT FILE
_.menu.addItem("kcact:pick", _.label("Select"), function() {
_.returnFile(file);
return false;
});
// SELECT THUMBNAIL
if (data.thumb)
_.menu.addItem("kcact:pick_thumb", _.label("Select Thumbnail"), function() {
_.returnFile(_.thumbsURL + "/" + _.dir + "/" + data.name);
return false;
});
_.menu.addDivider();
}
// VIEW IMAGE
if (data.thumb || data.smallThumb)
_.menu.addItem("kcact:view", _.label("View"), function() {
_.viewImage(data);
});
// DOWNLOAD
_.menu.addItem("kcact:download", _.label("Download"), function() {
$('#menu').html('');
$('#downloadForm input').get(0).value = _.dir;
$('#downloadForm input').get(1).value = data.name;
$('#downloadForm').submit();
return false;
});
// ADD TO CLIPBOARD
if (_.access.files.copy || _.access.files.move) {
_.menu.addDivider();
_.menu.addItem("kcact:clpbrdadd", _.label("Add to Clipboard"), function() {
for (i = 0; i < _.clipboard.length; i++)
if ((_.clipboard[i].name == data.name) &&
(_.clipboard[i].dir == _.dir)
) {
_.alert(_.label("This file is already added to the Clipboard."));
return false;
}
var cdata = data;
cdata.dir = _.dir;
_.clipboard[_.clipboard.length] = cdata;
_.initClipboard();
return false;
});
}
if (_.access.files.rename || _.access.files['delete'])
_.menu.addDivider();
// RENAME
if (_.access.files.rename)
_.menu.addItem("kcact:mv", _.label("Rename..."), function() {
if (!data.writable) return false;
_.fileNameDialog(
{dir: _.dir, file: data.name},
'newName', data.name, _.getURL("rename"), {
title: "New file name:",
errEmpty: "Please enter new file name.",
errSlash: "Unallowable characters in file name.",
errDot: "File name shouldn't begins with '.'"
},
_.refresh
);
return false;
}, !data.writable);
// DELETE
if (_.access.files['delete'])
_.menu.addItem("kcact:rm", _.label("Delete"), function() {
if (!data.writable) return false;
_.confirm(_.label("Are you sure you want to delete this file?"),
function(callBack) {
$.ajax({
type: "post",
dataType: "json",
url: _.getURL("delete"),
data: {dir: _.dir, file: data.name},
async: false,
success: function(data) {
if (callBack) callBack();
_.clearClipboard();
if (_.check4errors(data))
return;
_.refresh();
},
error: function() {
if (callBack) callBack();
_.alert(_.label("Unknown error."));
}
});
}
);
return false;
}, !data.writable);
_.menu.show(e);
}
};
// FOLDER CONTEXT MENU
_.menuDir = function(dir, e) {
_.menu.init();
var data = dir.data(),
html = '';
if (_.clipboard && _.clipboard.length) {
// COPY CLIPBOARD
if (_.access.files.copy)
_.menu.addItem("kcact:cpcbd", _.label("Copy {count} files", {count: _.clipboard.length}), function() {
_.copyClipboard(data.path);
return false;
}, !data.writable);
// MOVE CLIPBOARD
if (_.access.files.move)
_.menu.addItem("kcact:mvcbd", _.label("Move {count} files", {count: _.clipboard.length}), function() {
_.moveClipboard(data.path);
return false;
}, !data.writable);
if (_.access.files.copy || _.access.files.move)
_.menu.addDivider();
}
// REFRESH
_.menu.addItem("kcact:refresh", _.label("Refresh"), function() {
_.refreshDir(dir);
return false;
});
// DOWNLOAD
if (_.support.zip) {
_.menu.addDivider();
_.menu.addItem("kcact:download", _.label("Download"), function() {
_.post(_.getURL("downloadDir"), {dir:data.path});
return false;
});
}
if (_.access.dirs.create || _.access.dirs.rename || _.access.dirs['delete'])
_.menu.addDivider();
// NEW SUBFOLDER
if (_.access.dirs.create)
_.menu.addItem("kcact:mkdir", _.label("New Subfolder..."), function(e) {
if (!data.writable) return false;
_.fileNameDialog(
{dir: data.path},
"newDir", "", _.getURL("newDir"), {
title: "New folder name:",
errEmpty: "Please enter new folder name.",
errSlash: "Unallowable characters in folder name.",
errDot: "Folder name shouldn't begins with '.'"
}, function() {
_.refreshDir(dir);
_.initDropUpload();
if (!data.hasDirs) {
dir.data('hasDirs', true);
dir.children('span.brace').addClass('closed');
}
}
);
return false;
}, !data.writable);
// RENAME
if (_.access.dirs.rename)
_.menu.addItem("kcact:mvdir", _.label("Rename..."), function(e) {
if (!data.removable) return false;
_.fileNameDialog(
{dir: data.path},
"newName", data.name, _.getURL("renameDir"), {
title: "New folder name:",
errEmpty: "Please enter new folder name.",
errSlash: "Unallowable characters in folder name.",
errDot: "Folder name shouldn't begins with '.'"
}, function(dt) {
if (!dt.name) {
_.alert(_.label("Unknown error."));
return;
}
var currentDir = (data.path == _.dir);
dir.children('span.folder').text(dt.name);
dir.data('name', dt.name);
dir.data('path', $.$.dirname(data.path) + '/' + dt.name);
if (currentDir)
_.dir = dir.data('path');
_.initDropUpload();
},
true
);
return false;
}, !data.removable);
// DELETE
if (_.access.dirs['delete'])
_.menu.addItem("kcact:rmdir", _.label("Delete"), function() {
if (!data.removable) return false;
_.confirm(
_.label("Are you sure you want to delete this folder and all its content?"),
function(callBack) {
$.ajax({
type: "post",
dataType: "json",
url: _.getURL("deleteDir"),
data: {dir: data.path},
async: false,
success: function(data) {
if (callBack) callBack();
if (_.check4errors(data))
return;
dir.parent().hide(500, function() {
var folders = dir.parent().parent();
var pDir = folders.parent().children('a').first();
dir.parent().detach();
if (!folders.children('div.folder').get(0)) {
pDir.children('span.brace').first().removeClass('opened closed');
pDir.parent().children('.folders').detach();
pDir.data('hasDirs', false);
}
if (pDir.data('path') == _.dir.substr(0, pDir.data('path').length))
_.changeDir(pDir);
_.initDropUpload();
});
},
error: function() {
if (callBack) callBack();
_.alert(_.label("Unknown error."));
}
});
}
);
return false;
}, !data.removable);
_.menu.show(e);
$('div.folder > a > span.folder').removeClass('context');
if (dir.children('span.folder').hasClass('regular'))
dir.children('span.folder').addClass('context');
};
// CLIPBOARD MENU
_.openClipboard = function() {
if (!_.clipboard || !_.clipboard.length) return;
// CLOSE MENU
if ($('#menu a[href="kcact:clrcbd"]').html()) {
$('#clipboard').removeClass('selected');
_.menu.hide();
return;
}
setTimeout(function() {
_.menu.init();
var dlg = $('#menu'),
jStatus = $('#status'),
html = '';
// CLIPBOARD FILES
$.each(_.clipboard, function(i, val) {
var icon = $.$.getFileExtension(val.name);
if (val.thumb)
icon = ".image";
else if (!val.smallIcon || !icon.length)
icon = ".";
icon = "themes/" + _.theme + "/img/files/small/" + icon + ".png";
html += '
' + $.$.htmlData($.$.basename(val.name)) + '';
});
html += '
- -
';
$('#menu ul').append(html);
// DOWNLOAD
if (_.support.zip)
_.menu.addItem("kcact:download", _.label("Download files"), function() {
_.downloadClipboard();
return false;
});
if (_.access.files.copy || _.access.files.move || _.access.files['delete'])
_.menu.addDivider();
// COPY
if (_.access.files.copy)
_.menu.addItem("kcact:cpcbd", _.label("Copy files here"), function() {
if (!_.dirWritable) return false;
_.copyClipboard(_.dir);
return false;
}, !_.dirWritable);
// MOVE
if (_.access.files.move)
_.menu.addItem("kcact:mvcbd", _.label("Move files here"), function() {
if (!_.dirWritable) return false;
_.moveClipboard(_.dir);
return false;
}, !_.dirWritable);
// DELETE
if (_.access.files['delete'])
_.menu.addItem("kcact:rmcbd", _.label("Delete files"), function() {
_.confirm(
_.label("Are you sure you want to delete all files in the Clipboard?"),
function(callBack) {
if (callBack) callBack();
_.deleteClipboard();
}
);
return false;
});
_.menu.addDivider();
// CLEAR CLIPBOARD
_.menu.addItem("kcact:clrcbd", _.label("Clear the Clipboard"), function() {
_.clearClipboard();
return false;
});
$('#clipboard').addClass('selected');
_.menu.show();
var left = $(window).width() - dlg.css({width: ""}).outerWidth(),
top = $(window).height() - dlg.outerHeight() - jStatus.outerHeight(),
lheight = top + dlg.outerTopSpace();
dlg.find('.list').css({
'max-height': lheight,
'overflow-y': "auto",
'overflow-x': "hidden",
width: ""
});
top = $(window).height() - dlg.outerHeight(true) - jStatus.outerHeight(true);
dlg.css({
left: left - 5,
top: top
}).fadeIn("fast");
var a = dlg.find('.list').outerHeight(),
b = dlg.find('.list div').outerHeight();
if (b - a > 10) {
dlg.css({
left: parseInt(dlg.css('left')) - _.scrollbarWidth,
}).width(dlg.width() + _.scrollbarWidth);
}
}, 1);
};/** This file is part of KCFinder project
*
* @desc Image viewer
* @package KCFinder
* @version 3.12
* @author Pavel Tzonkov
* @copyright 2010-2014 KCFinder Project
* @license http://opensource.org/licenses/GPL-3.0 GPLv3
* @license http://opensource.org/licenses/LGPL-3.0 LGPLv3
* @link http://kcfinder.sunhater.com
*/
_.viewImage = function(data) {
var ts = new Date().getTime(),
dlg = false,
images = [],
min_h = 100,
w = $(window),
min_w, dd, dv, dh,
showImage = function(data) {
_.lock = true;
var url = $.$.escapeDirs(_.uploadURL + "/" + _.dir + "/" + data.name) + "?ts=" + ts,
img = new Image(),
i = $(img),
onImgLoad = function() {
_.lock = false;
$('#files .file').each(function() {
if ($(this).data('name') == data.name) {
_.ssImage = this;
return false;
}
});
i.hide().appendTo('body');
var w_w = w.width(),
w_h = w.height(),
o_w = i.width(),
o_h = i.height(),
i_w = o_w,
i_h = o_h,
openDlg = false,
t = $(''),
goTo = function(i) {
if (!_.lock) {
var nimg = images[i];
_.currImg = i;
showImage(nimg);
}
},
nextFunc = function() {
goTo((_.currImg >= images.length - 1) ? 0 : (_.currImg + 1));
},
prevFunc = function() {
goTo((_.currImg ? _.currImg : images.length) - 1);
},
selectFunc = function(e) {
if (_.ssImage)
_.selectFile($(_.ssImage), e);
dlg.dialog('destroy').detach();
};
i.detach().appendTo(t);
if (!dlg) {
openDlg = true;
var closeFunc = function() {
dlg.dialog('destroy').detach();
},
focusFunc = function() {
setTimeout(function() {
dlg.find('input').get(0).focus();
}, 100);
};
dlg = _.dialog(".", "", {
draggable: false,
nopadding: true,
close: closeFunc,
show: false,
hide: false,
buttons: [
{
text: _.label("Previous"),
icons: {primary: "ui-icon-triangle-1-w"},
click: prevFunc
}, {
text: _.label("Next"),
icons: {secondary: "ui-icon-triangle-1-e"},
click: nextFunc
}, {
text: _.label("Select"),
icons: {primary: "ui-icon-check"},
click: selectFunc
}, {
text: _.label("Close"),
icons: {primary: "ui-icon-closethick"},
click: closeFunc
}
]
});
dlg.click(nextFunc).css({overflow: "hidden"}).parent().css({width: "auto", height: "auto"});
dd = dlg.parent().click(focusFunc).rightClick(focusFunc).disableTextSelect().addClass('kcfImageViewer');
dv = dd.find('.ui-dialog-titlebar').outerHeight() + dd.find('.ui-dialog-buttonpane').outerHeight() + dd.outerVSpace('b');
dh = dd.outerHSpace('b');
min_w = dd.outerWidth() - dh;
}
var max_w = w_w - dh,
max_h = w_h - dv + 1,
top = 0,
left = 0,
width = o_w,
height = o_h;
// Too big
if ((o_w > max_w) || (o_h > max_h)) {
if ((max_h / max_w) < (o_h / o_w)) {
height = max_h;
width = (o_w * height) / o_h;
} else {
width = max_w;
height = (o_h * width) / o_w;
}
i_w = width;
i_h = height;
// Too small
} else if ((o_w < min_w) || (o_h < min_h)) {
width = (o_w < min_w) ? min_w : o_w;
height = (o_h < min_h) ? min_h : o_h;
left = (o_w < min_w) ? (min_w - o_w) / 2 : 0;
top = (o_h < min_h) ? (min_h - o_h) / 2 : 0;
}
var show = function() {
dlg.animate({width: width, height: height}, 150);
dlg.parent().animate({top: (w_h - height - dv) / 2, left: (w_w - width - dh) / 2}, 150, function() {
dlg.html(t.get(0)).append('');
dlg.find('input').keydown(function(e) {
if (!_.lock) {
if (e.metaKey || e.ctrlKey || e.altKey || e.shiftKey)
return;
var kc = e.keyCode;
if ((kc == 37)) prevFunc();
if ((kc == 39)) nextFunc();
if ((kc == 13) || (kc == 32)) selectFunc(e);
}
}).get(0).focus();
i.css({padding: top + "px 0 0 " + left + "px", width: i_w, height: i_h}).show();
dlg.children().first().css({width: width, height: height, display: "none"}).fadeIn(150, function() {
loadingStop();
var title = data.name + " (" + o_w + " x " + o_h + ")";
dlg.prev().find('.ui-dialog-title').css({width:width - dlg.prev().find('.ui-dialog-titlebar-close').outerWidth() - 20}).text(title).attr({title: title}).css({cursor: "default"});
});
});
}
if (openDlg)
show();
else
dlg.children().first().fadeOut(150, show);
},
loadingStart = function() {
if (dlg)
dlg.prev().addClass("loading").find('.ui-dialog-title').text(_.label("Loading image...")).css({width: "auto"});
else
$('#loading').text(_.label("Loading image...")).show();
},
loadingStop = function() {
if (dlg)
dlg.prev().removeClass("loading");
$('#loading').hide();
};
loadingStart();
img.src = url;
if (img.complete)
onImgLoad();
else {
img.onload = onImgLoad;
img.onerror = function() {
_.lock = false;
loadingStop();
_.alert(_.label("Unknown error."));
_.refresh();
};
}
};
$.each(_.files, function(i, file) {
i = images.length;
if (file.thumb || file.smallThumb)
images[i] = file;
if (file.name == data.name)
_.currImg = i;
});
showImage(data);
return false;
};
/** This file is part of KCFinder project
*
* @desc Clipboard functionality
* @package KCFinder
* @version 3.12
* @author Pavel Tzonkov
* @copyright 2010-2014 KCFinder Project
* @license http://opensource.org/licenses/GPL-3.0 GPLv3
* @license http://opensource.org/licenses/LGPL-3.0 LGPLv3
* @link http://kcfinder.sunhater.com
*/
_.initClipboard = function() {
if (!_.clipboard || !_.clipboard.length) return;
var size = 0,
jClipboard = $('#clipboard');
$.each(_.clipboard, function(i, val) {
size += val.size;
});
size = _.humanSize(size);
jClipboard.disableTextSelect().html('');
var resize = function() {
jClipboard.css({
left: $(window).width() - jClipboard.outerWidth(),
top: $(window).height() - jClipboard.outerHeight()
});
};
resize();
jClipboard.show();
$(window).unbind().resize(function() {
_.resize();
resize();
});
};
_.removeFromClipboard = function(i) {
if (!_.clipboard || !_.clipboard[i]) return false;
if (_.clipboard.length == 1) {
_.clearClipboard();
_.menu.hide();
return;
}
if (i < _.clipboard.length - 1) {
var last = _.clipboard.slice(i + 1);
_.clipboard = _.clipboard.slice(0, i);
_.clipboard = _.clipboard.concat(last);
} else
_.clipboard.pop();
_.initClipboard();
_.menu.hide();
_.openClipboard();
return true;
};
_.copyClipboard = function(dir) {
if (!_.clipboard || !_.clipboard.length) return;
var files = [],
failed = 0;
for (i = 0; i < _.clipboard.length; i++)
if (_.clipboard[i].readable)
files[i] = _.clipboard[i].dir + "/" + _.clipboard[i].name;
else
failed++;
if (_.clipboard.length == failed) {
_.alert(_.label("The files in the Clipboard are not readable."));
return;
}
var go = function(callBack) {
if (dir == _.dir)
_.fadeFiles();
$.ajax({
type: "post",
dataType: "json",
url: _.getURL("cp_cbd"),
data: {dir: dir, files: files},
async: false,
success: function(data) {
if (callBack) callBack();
_.check4errors(data);
_.clearClipboard();
if (dir == _.dir)
_.refresh();
},
error: function() {
if (callBack) callBack();
$('#files > div').css({
opacity: "",
filter: ""
});
_.alert(_.label("Unknown error."));
}
});
};
if (failed)
_.confirm(
_.label("{count} files in the Clipboard are not readable. Do you want to copy the rest?", {count:failed}),
go
)
else
go();
};
_.moveClipboard = function(dir) {
if (!_.clipboard || !_.clipboard.length) return;
var files = [],
failed = 0;
for (i = 0; i < _.clipboard.length; i++)
if (_.clipboard[i].readable && _.clipboard[i].writable)
files[i] = _.clipboard[i].dir + "/" + _.clipboard[i].name;
else
failed++;
if (_.clipboard.length == failed) {
_.alert(_.label("The files in the Clipboard are not movable."))
return;
}
var go = function(callBack) {
_.fadeFiles();
$.ajax({
type: "post",
dataType: "json",
url: _.getURL("mv_cbd"),
data: {dir: dir, files: files},
async: false,
success: function(data) {
if (callBack) callBack();
_.check4errors(data);
_.clearClipboard();
_.refresh();
},
error: function() {
if (callBack) callBack();
$('#files > div').css({
opacity: "",
filter: ""
});
_.alert(_.label("Unknown error."));
}
});
};
if (failed)
_.confirm(
_.label("{count} files in the Clipboard are not movable. Do you want to move the rest?", {count: failed}),
go
);
else
go();
};
_.deleteClipboard = function() {
if (!_.clipboard || !_.clipboard.length) return;
var files = [],
failed = 0;
for (i = 0; i < _.clipboard.length; i++)
if (_.clipboard[i].readable && _.clipboard[i].writable)
files[i] = _.clipboard[i].dir + "/" + _.clipboard[i].name;
else
failed++;
if (_.clipboard.length == failed) {
_.alert(_.label("The files in the Clipboard are not removable."))
return;
}
var go = function(callBack) {
_.fadeFiles();
$.ajax({
type: "post",
dataType: "json",
url: _.getURL("rm_cbd"),
data: {files:files},
async: false,
success: function(data) {
if (callBack) callBack();
_.check4errors(data);
_.clearClipboard();
_.refresh();
},
error: function() {
if (callBack) callBack();
$('#files > div').css({
opacity: "",
filter: ""
});
_.alert(_.label("Unknown error."));
}
});
};
if (failed)
_.confirm(
_.label("{count} files in the Clipboard are not removable. Do you want to delete the rest?", {count: failed}),
go
);
else
go();
};
_.downloadClipboard = function() {
if (!_.clipboard || !_.clipboard.length) return;
var files = [];
for (i = 0; i < _.clipboard.length; i++)
if (_.clipboard[i].readable)
files[i] = _.clipboard[i].dir + "/" + _.clipboard[i].name;
if (files.length)
_.post(_.getURL('downloadClipboard'), {files:files});
};
_.clearClipboard = function() {
$('#clipboard').html("");
_.clipboard = [];
};
/** This file is part of KCFinder project
*
* @desc Upload files using drag and drop
* @package KCFinder
* @version 3.12
* @author Pavel Tzonkov
* @copyright 2010-2014 KCFinder Project
* @license http://opensource.org/licenses/GPL-3.0 GPLv3
* @license http://opensource.org/licenses/LGPL-3.0 LGPLv3
* @link http://kcfinder.sunhater.com
*/
_.initDropUpload = function() {
if (!_.access.files.upload)
return;
var files = $('#files'),
folders = $('#folders').find('div.folder > a'),
i, dlg, filesSize, uploaded, errors,
precheck = function(e) {
filesSize = uploaded = 0; errors = [];
var fs = e.dataTransfer.files;
for (i = 0; i < fs.length; i++)
filesSize += fs[i].size;
dlg = $('');
dlg.find('.bar.count').progressbar({max: fs.length, value: 0});
dlg.find('.bar.size').progressbar({max: filesSize, value: 0});
dlg.find('.info').css('padding', "5px 0").first().css('paddingTop', 0);
dlg.find('.info').last().css('paddingBottom', 0);
dlg = _.dialog(_.label("Uploading files"), dlg, {
closeOnEscape: false,
buttons: []
});
dlg.parent().css('paddingBottom', 0).find('.ui-dialog-titlebar button').css('visibility', 'hidden').get(0).disabled = true;
return true;
},
localOptions = {
param: "upload[]",
maxFilesize: _.dropUploadMaxFilesize,
begin: function(xhr, currentFile, count) {
dlg.find('.info.count').html(_.label("Uploading file {current} of {count}", {
current: currentFile,
count: count
}));
dlg.find('.info.size').html(_.label("Uploaded {uploaded} of {total}", {
uploaded: _.humanSize(uploaded),
total: _.humanSize(filesSize)
}));
dlg.find('.info.errors').html(_.label("Errors:") + " " + errors.length);
dlg.find('.bar.count').progressbar({value: currentFile});
dlg.find('.bar.size').progressbar({value: uploaded});
},
success: function(xhr, currentFile, count) {
uploaded += xhr.file.size;
var response = xhr.responseText;
if (response.substr(0, 1) != "/")
errors.push($.$.htmlData(response));
},
error: function(xhr, currentFile, count) {
uploaded += xhr.file.size;
errors.push($.$.htmlData(xhr.file.name + ": " + _.label("Failed to upload {filename}!", {
filename: xhr.file.name
})));
},
abort: function(xhr, currentFile, filesCount) {
uploaded += xhr.file.size;
errors.push($.$.htmlData(xhr.file.name + ": " + _.label("Failed to upload {filename}!", {
filename: xhr.file.name
})));
},
filesizeCallback: function(xhr, currentFile, filesCount) {
uploaded += xhr.file.size;
errors.push($.$.htmlData(xhr.file.name + ": " + _.label("The uploaded file exceeds {size} bytes.", {
size: _.dropUploadMaxFilesize
})));
},
finish: function() {
_.refresh();
dlg.find('.bar.size').progressbar({value: uploaded});
dlg.find('.info.size').html(_.label("Uploaded: {uploaded} of {total}", {
uploaded: _.humanSize(uploaded),
total: _.humanSize(filesSize)
}));
dlg.find('.info.errors').html(_.label("Errors:") + " " + errors.length);
var err = errors;
setTimeout(function() {
dlg.dialog('destroy').detach();
if (err.length)
_.alert(err.join('
'));
}, 500);
}
},
remoteOptions = {
ajax: {
success: function(data) {
_.refresh();
if (data.error) {
_.alert(data.error)
return;
}
},
error: function() {
_.refresh();
_.alert(_.label("Unknown error."));
},
abort: function() {
_.refresh();
}
}
},
url = "&dir=" + encodeURIComponent(_.dir);
files.shDropUpload($.extend(localOptions, {
url: _.getURL('upload') + url,
precheck: function(e) {
if (!$('#folders span.current').first().parent().data('writable')) {
_.alert(_.label("Cannot write to upload folder."));
return false;
}
return precheck(e);
}
}), $.extend(true, remoteOptions, {
ajax: {
url: _.getURL('dragUrl') + url
}
}));
folders.each(function() {
var folder = this,
url = "&dir=" + encodeURIComponent($(folder).data('path'));
$(folder).shDropUpload($.extend(localOptions, {
url: _.getURL('upload') + url,
precheck: function(e) {
if (!$(folder).data('writable')) {
_.alert(_.label("Cannot write to upload folder."));
return false;
}
return precheck(e);
}
}), $.extend(true, remoteOptions, {
ajax: {
url: _.getURL('dragUrl') + url
}
}));
});
};
/** This file is part of KCFinder project
*
* @desc Miscellaneous functionality
* @package KCFinder
* @version 3.12
* @author Pavel Tzonkov
* @copyright 2010-2014 KCFinder Project
* @license http://opensource.org/licenses/GPL-3.0 GPLv3
* @license http://opensource.org/licenses/LGPL-3.0 LGPLv3
* @link http://kcfinder.sunhater.com
*/
_.orderFiles = function(callBack, selected) {
var order = $.$.kuki.get('order'),
desc = ($.$.kuki.get('orderDesc') == "on"),
a1, b1, arr;
if (!_.files || !_.files.sort)
_.files = [];
_.files = _.files.sort(function(a, b) {
if (!order) order = "name";
if (order == "date") {
a1 = a.mtime;
b1 = b.mtime;
} else if (order == "type") {
a1 = $.$.getFileExtension(a.name);
b1 = $.$.getFileExtension(b.name);
} else if (order == "size") {
a1 = a.size;
b1 = b.size;
} else {
a1 = a[order].toLowerCase();
b1 = b[order].toLowerCase();
}
if ((order == "size") || (order == "date")) {
if (a1 < b1) return desc ? 1 : -1;
if (a1 > b1) return desc ? -1 : 1;
}
if (a1 == b1) {
a1 = a.name.toLowerCase();
b1 = b.name.toLowerCase();
arr = [a1, b1];
arr = arr.sort();
return (arr[0] == a1) ? -1 : 1;
}
arr = [a1, b1];
arr = arr.sort();
if (arr[0] == a1) return desc ? 1 : -1;
return desc ? -1 : 1;
});
_.showFiles(callBack, selected);
_.initFiles();
};
_.humanSize = function(size) {
if (size < 1024) {
size = size.toString() + " B";
} else if (size < 1048576) {
size /= 1024;
size = parseInt(size).toString() + " KB";
} else if (size < 1073741824) {
size /= 1048576;
size = parseInt(size).toString() + " MB";
} else if (size < 1099511627776) {
size /= 1073741824;
size = parseInt(size).toString() + " GB";
} else {
size /= 1099511627776;
size = parseInt(size).toString() + " TB";
}
return size;
};
_.getURL = function(act, lang) {
if (!lang)
lang = _.lang;
var url = "browse.php?type=" + encodeURIComponent(_.type) + "&lng=" + encodeURIComponent(lang);
if (_.opener.name)
url += "&opener=" + encodeURIComponent(_.opener.name);
if (act)
url += "&act=" + encodeURIComponent(act);
if (_.cms)
url += "&cms=" + encodeURIComponent(_.cms);
return url;
};
_.label = function(index, data) {
var label = _.labels[index] ? _.labels[index] : index;
if (data)
$.each(data, function(key, val) {
label = label.replace("{" + key + "}", val);
});
return label;
};
_.check4errors = function(data) {
if (!data.error)
return false;
var msg = data.error.join
? data.error.join("\n")
: data.error;
_.alert(msg);
return true;
};
_.post = function(url, data) {
var html = '';
$('#menu').html(html).show();
$('#postForm').get(0).submit();
};
_.fadeFiles = function() {
$('#files > div').css({
opacity: "0.4",
filter: "alpha(opacity=40)"
});
};