PageSourceSearch

https://ps-adtr.f8kgk.fr/photo/scripts/ext-3/ux/ux-all.js?v=1763624157

js f8kgk.fr collected 2026-10-04 15:22:15 UTC 375,904 bytes, 31 lines download raw bytes

1/* Copyright (c) 2025 Synology Inc. All rights reserved. */
2
3(function(i,b){if(i.setImmediate){return}var c=1;var o={};var h=false;var r=i.document;var l;function d(s){o[c]=f.apply(b,s);return c++}function f(t){var s=[].slice.call(arguments,1);return function(){if(typeof t==="function"){t.apply(b,s)}else{(new Function(""+t))()}}}function a(t){if(h){setTimeout(f(a,t),0)}else{var s=o[t];if(s){h=true;try{s()}finally{m(t);h=false}}}}function m(s){delete o[s]}function g(){l=function(){var s=d(arguments);process.nextTick(f(a,s));return s}}function k(){if(i.postMessage&&!i.importScripts){var t=true;var s=i.onmessage;i.onmessage=function(){t=false};i.postMessage("","*");i.onmessage=s;return t}}function j(){var t="setImmediate$"+Math.random()+"$";var s=function(u){if(u.source===i&&typeof u.data==="string"&&u.data.indexOf(t)===0){a(+u.data.slice(t.length))}};if(i.addEventListener){i.addEventListener("message",s,false)}else{i.attachEvent("onmessage",s)}l=function(){var u=d(arguments);i.postMessage(t+u,"*");return u}}function p(){var s=new MessageChannel();s.port1.onmessage=function(t){var u=t.data;a(u)};l=function(){var t=d(arguments);s.port2.postMessage(t);return t}}function n(){var s=r.documentElement;l=function(){var u=d(arguments);var t=r.createElement("script");t.onreadystatechange=function(){a(u);t.onreadystatechange=null;s.removeChild(t);t=null};s.appendChild(t);return u}}function q(){l=function(){var s=d(arguments);setTimeout(f(a,s),0);return s}}var e=Object.getPrototypeOf&&Object.getPrototypeOf(i);e=e&&e.setTimeout?e:i;if({}.toString.call(i.process)==="[object process]"){g()}else{if(k()){j()}else{if(i.MessageChannel){p()}else{if(r&&"onreadystatechange" in r.createElement("script")){n()}else{q()}}}}e.setImmediate=l;e.clearImmediate=m}(new Function("return this")()));(function(){var b=0;var c=["webkit","moz"];for(var a=0;a<c.length&&!window.requestAnimationFrame;++a){window.requestAnimationFrame=window[c[a]+"RequestAnimationFrame"];window.cancelAnimationFrame=window[c[a]+"CancelAnimationFrame"]||window[c[a]+"CancelRequestAnimationFrame"]}if(!window.requestAnimationFrame){window.requestAnimationFrame=function(h,e){var d=new Date().getTime();var f=Math.max(0,16-(d-b));var g=window.setTimeout(function(){h(d+f)},f);b=d+f;return g}}if(!window.cancelAnimationFrame){window.cancelAnimationFrame=function(d){clearTimeout(d)}}}());(function(){if(!window.location.origin){window.location.origin=window.location.protocol+"//"+window.location.hostname+(window.location.port?":"+window.location.port:"")}})();(function(i){var a=(typeof setImmediate==="function"&&setImmediate)||function(m){setTimeout(m,1)};function g(n,m){return function(){n.apply(m,arguments)}}var c=Array.isArray||function(m){return Object.prototype.toString.call(m)==="[object Array]"};function h(m){if(typeof this!=="object"){throw new TypeError("Promises must be constructed via new")}if(typeof m!=="function"){throw new TypeError("not a function")}this._state=null;this._value=null;this._deferreds=[];k(m,g(j,this),g(l,this))}function d(m){var n=this;if(this._state===null){this._deferreds.push(m);return}a(function(){var o=n._state?m.onFulfilled:m.onRejected;if(o===null){(n._state?m.resolve:m.reject)(n._value);return}var p;try{p=o(n._value)}catch(q){m.reject(q);return}m.resolve(p)})}function j(n){try{if(n===this){throw new TypeError("A promise cannot be resolved with itself.")}if(n&&(typeof n==="object"||typeof n==="function")){var o=n.then;if(typeof o==="function"){k(g(o,n),g(j,this),g(l,this));return}}this._state=true;this._value=n;e.call(this)}catch(m){l.call(this,m)}}function l(m){this._state=false;this._value=m;e.call(this)}function e(){for(var n=0,m=this._deferreds.length;n<m;n++){d.call(this,this._deferreds[n])}this._deferreds=null}function f(p,m,o,n){this.onFulfilled=typeof p==="function"?p:null;this.onRejected=typeof m==="function"?m:null;this.resolve=o;this.reject=n}function k(p,q,n){var m=false;try{p(function(r){if(m){return}m=true;q(r)},function(r){if(m){return}m=true;n(r)})}catch(o){if(m){return}m=true;n(o)}}h.prototype["catch"]=function(m){return this.then(null,m)};h.prototype.then=function(o,m){var n=this;return new h(function(q,p){d.call(n,new f(o,m,q,p))})};h.prototype["finally"]=function(m){return this.then(function(n){return h.resolve(m()).then(function(){return n})},function(n){return h.resolve(m()).then(function(){return h.reject(n)})})};h.all=function(){var m=Array.prototype.slice.call(arguments.length===1&&c(arguments[0])?arguments[0]:arguments);return new h(function(r,q){if(m.length===0){return r([])}var p=m.length;function o(t,v){try{if(v&&(typeof v==="object"||typeof v==="function")){var u=v.then;if(typeof u==="function"){u.call(v,function(w){o(t,w)},q);return}}m[t]=v;if(--p===0){r(m)}}catch(s){q(s)}}for(var n=0;n<m.length;n++){o(n,m[n])}})};h.resolve=function(m){if(m&&typeof m==="object"&&m.constructor===h){return m}return new h(function(n){n(m)})};h.reject=function(m){return new h(function(o,n){n(m)})};h.race=function(m){return new h(function(q,p){for(var o=0,n=m.length;o<n;o++){m[o].then(q,p)}})};h._setImmediateFn=function b(m){a=m};if(typeof module!=="undefined"&&module.exports){module.exports=h}else{if(!i.Promise){i.Promise=h}}})(this);(function checkFunctionPrototypeBindCompatibility(){if(typeof Function.prototype.bind!=="undefined"){return}Function.prototype.bind=function a(e){var d=this,b=Array.prototype.slice.call(arguments,1
3);var c=function f(){var g=b.concat(Array.prototype.slice.call(arguments));return d.apply(e,g)};return c}})();Ext.define("SYNO.ux.FleXcrollConfig",{statics:{ComboBox:{initList:function(){if(!this.list){var a="x-combo-list",c=Ext.getDom(this.getListParent()||Ext.getBody());this.list=new Ext.Layer({parentEl:c,shadow:this.shadow,cls:[a,this.listClass].join(" "),constrain:false,zindex:this.getZIndex(c)});var b=this.listWidth||Math.max(this.wrap.getWidth(),this.minListWidth);this.list.setSize(b,0);this.list.swallowEvent("mousewheel");this.assetHeight=0;if(this.syncFont!==false){this.list.setStyle("font-size",this.el.getStyle("font-size"))}if(this.title){this.header=this.list.createChild({cls:a+"-hd",html:this.title});this.assetHeight+=this.header.getHeight()}this.innerList=this.list.createChild({cls:a+"-inner"});this.mon(this.innerList,"mouseover",this.onViewOver,this);this.mon(this.innerList,"mousemove",this.onViewMove,this);this.innerList.setWidth(b-this.list.getFrameWidth("lr"));if(this.pageSize){this.footer=this.list.createChild({cls:a+"-ft"});this.pageTb=new SYNO.ux.PagingToolbar({showRefreshBtn:true,store:this.store,pageSize:this.pageSize,renderTo:this.footer});this.assetHeight+=this.footer.getHeight()}if(!this.tpl){if(true===this.tplHtmlEncode){this.tpl='<tpl for="."><div class="'+a+'-item {[values.cls || ""]}" role="option" aria-label="{[Ext.util.Format.htmlEncode(Ext.util.Format.stripTags(values.'+this.displayField+'))]}" id="{[Ext.id()]}">{[Ext.util.Format.htmlEncode(values.'+this.displayField+")]}</div></tpl>"}else{this.tpl='<tpl for="."><div class="'+a+'-item {[values.cls || ""]}" role="option" aria-label="{'+this.displayField+'}" id="{[Ext.id()]}">{'+this.displayField+"}</div></tpl>"}}this.view=new SYNO.ux.FleXcroll.DataView({applyTo:this.innerList,tpl:this.tpl,singleSelect:true,useDefaultKeyNav:false,selectedClass:this.selectedClass,itemSelector:this.itemSelector||"."+a+"-item",emptyText:this.listEmptyText,deferEmptyText:false});this.mon(this.view,{containerclick:this.onViewClick,click:this.onViewClick,scope:this});this.bindStore(this.store,true);if(this.resizable){this.resizer=new Ext.Resizable(this.list,{pinned:true,handles:"se"});this.mon(this.resizer,"resize",function(f,d,e){this.maxHeight=e-this.handleHeight-this.list.getFrameWidth("tb")-this.assetHeight;this.listWidth=d;this.innerList.setWidth(d-this.list.getFrameWidth("lr"));this.restrictHeight()},this);this[this.pageSize?"footer":"innerList"].setStyle("margin-bottom",this.handleHeight+"px")}this.fireEvent("listInitialized",this)}},onBeforeLoad:function(){var a=this;if(!a.hasFocus){return}a.view.getTemplateTarget().update(a.loadingText?'<div class="loading-indicator">'+a.loadingText+"</div>":"");a.restrictHeight();a.selectedIndex=-1},restrictHeight:function(){this.innerList.dom.style.height="";var b=this.view.getTemplateTarget().dom,e=this.list.getFrameWidth("tb")+(this.resizable?this.handleHeight:0)+this.assetHeight,c=Math.max(b.clientHeight,b.offsetHeight,b.scrollHeight),a=this.getPosition()[1]-Ext.getBody().getScroll().top,f=Ext.lib.Dom.getViewHeight()-a-this.getSize().height,d=Math.max(a,f,this.minHeight||0)-this.list.shadowOffset-e-5;c=Math.min(c,d,this.maxHeight);this.innerList.setHeight(c);this.list.beginUpdate();this.list.setHeight(c+e);this.list.alignTo.apply(this.list,[this.el].concat(this.listAlign));this.list.endUpdate();this.view.updateFleXcroll()},select:function(a,d){var c=this;c.callParent(arguments);if(d!==false){var b=c.view.getNode(a);if(b){c.view.fleXcrollTo(b)}}}}}});Ext.define("SYNO.ux.FleXcroll.DataView",{extend:"Ext.DataView",autoFlexcroll:true,trackResetOnLoad:true,blockScrollBarUpdate:false,restoreSelectionState:false,useDefaultKeyNav:true,useARIA:false,constructor:function(a){if(a.useARIA===true||this.useARIA===true){this.addPlugins(SYNO.ux.DataViewARIA,a)}this.callParent([a])},getTemplateTarget:function(){var a=this;a.scrollBar=a.scrollBar||a.el.createChild({tag:"div",style:"width:100%;"});return a.scrollBar},afterRender:function(){var a=this;a.callParent(arguments);this.mun(this.getTemplateTarget(),"contextmenu",this.onContextMenu,this);this.mon(this.el,"contextmenu",this.onContextMenu,this);this.initKeyNav();if(!a.autoFlexcroll){return}a.getEl().setStyle({overflow:"hidden"});a.mon(a,"resize",a.onUpdateFleXcroll,a)},initKeyNav:function(){if(!this.useDefaultKeyNav){return}this.el.set({tabIndex:0});this.el.on("click",this.el.focus,this);var a;a=new Ext.KeyNav(this.el,{down:function(b){if(this.useARIA){this.onKeyRight(b)}else{this.onKeyDown(b)}},up:function(b){if(this.useARIA){this.onKeyLeft(b)}else{this.onKeyUp(b)}},left:function(b){this.onKeyLeft(b)},right:function(b){this.onKeyRight(b)},space:function(b){this.onKeySpace(b)},enter:function(b){this.onKeyEnter(b)},scope:this});this.mon(this,"beforedestroy",this.onBeforeDestroy,this);this.mon(this,"selectionchange",this.changeProtectFocus,this)}
3,getFirstSelItemIdx:function(){return this.getSelectedIndexes()[0]},getLastSelItemIdx:function(){return this.getSelectedIndexes()[this.getSelectedIndexes().length-1]},getThumbnailRowNum:function(a){var c=a.getTemplateTarget(),b=a.selected.elements[0].getStyles(),d=parseInt(b.width,10)+parseInt(b.marginLeft,10)+parseInt(b.marginRight,10);return Math.floor(c.getWidth()/d)},isNeedToShift:function(){var b=this,a=b.selected.elements[0];if(!a){return false}return true},selectItem:function(a,b){if(!b){this.select(a)}else{this.select(a,true,true)}this.ensureVisible(a)},selectPreItem:function(){var b=this.getFirstSelItemIdx(),a;if(!Ext.isDefined(b)){a=0}else{a=(b===0)?0:b-1}this.selectItem(a)},selectNextItem:function(){var b=this.getFirstSelItemIdx(),c=this.store.getCount()-1,a;if(!Ext.isDefined(b)){a=0}else{a=(b==c)?c:b+1}this.selectItem(a)},selectPreRowItem:function(c){var b=this.getFirstSelItemIdx(),a;if(b<c){this.selectItem(b);return}a=b-c;this.selectItem(a)},selectNextRowItem:function(d){var b=this.getFirstSelItemIdx(),c=this.store.getCount()-1,a;a=b+d;if(a>c){this.selectItem(b);return}this.selectItem(a)},ensureVisible:function(e){var h=this,d=h.getNode(e);if(!d||!h.autoFlexcroll){return}var b=d,g=h.el.dom,k=0,i=h.el.dom;while(b&&b!=i&&!Ext.get(b).hasClass("contentwrapper")&&!Ext.get(b).hasClass("mcontentwrapper")){k+=b.offsetTop;b=b.offsetParent}if(!i.fleXdata){return}i=parseInt(i.fleXdata.scrollPosition[1][0],10)||0;var j=k+d.offsetHeight,a=g.clientHeight,f=i+a;if(k<i){h.setScroll(k,false)}else{if(j>f){h.setScroll(j-a,false)}}},setScroll:function(c,b){var a=this,d=a.el.dom;if(d.fleXcroll){d.fleXcroll.setScrollPos(b,c)}else{if(c){d.scorllTop=c}if(b){d.scrollLeft=b}}},selectRange:function(b,a){this.callParent(arguments);this.ensureVisible(a)},selectPreItemIn:function(){var b=this.last,a;a=(this.getLastSelItemIdx()===0)?0:this.getLastSelItemIdx()-1;this.selectRange(b,a);this.last=b},selectNextItemIn:function(){var b=this.last,c=this.store.getCount()-1,a;a=(this.getLastSelItemIdx()+1>c)?c:this.getLastSelItemIdx()+1;this.selectRange(b,a);this.last=b},selectPreRowItemIn:function(c){var b=this.last,a;a=(this.getLastSelItemIdx()<c)?0:this.getLastSelItemIdx()-c;this.selectRange(b,a);this.last=b},selectNextRowItemIn:function(d){var b=this.last,c=this.store.getCount()-1,a;a=(this.getLastSelItemIdx()+d>c)?c:this.getLastSelItemIdx()+d;this.selectRange(b,a);this.last=b},changeProtectFocus:function(b,a){this.protectFocus(a.length>0)},protectFocus:function(a){if(this.rendered){this.el.dom.focusProtect=a}},onKeyUp:function(b){if(this.isNeedToShift()!==true){this.selectItem(0);return}var a=this,c=a.getThumbnailRowNum(a);if(!b.shiftKey){a.selectPreRowItem(c)}else{a.selectPreRowItemIn(c)}},onKeyDown:function(b){if(this.isNeedToShift()!==true){this.selectItem(0);return}var a=this,c=a.getThumbnailRowNum(a);if(!b.shiftKey){a.selectNextRowItem(c)}else{a.selectNextRowItemIn(c)}},onKeyRight:function(b){if(this.isNeedToShift()!==true){this.selectItem(0);return}var a=this;if(!b.shiftKey){a.selectNextItem()}else{a.selectNextItemIn()}},onKeyLeft:function(b){if(this.isNeedToShift()!==true){this.selectItem(0);return}var a=this;if(!b.shiftKey){a.selectPreItem()}else{a.selectPreItemIn()}},onKeySpace:Ext.emptyFn,onKeyEnter:Ext.emptyFn,onStoreLoad:function(a){var b=this;b[b.trackResetOnLoad?"resetScroller":"onUpdateFleXcroll"]()},autoUpdateScrollbar:function(a){this.updateScrollbar(this.getEl().dom,a)},updateFleXcroll:function(a){if(this.blockScrollBarUpdate!==true){this.autoUpdateScrollbar(a)}},onUpdateFleXcroll:function(){this.autoUpdateScrollbar(false)},onStoreClear:function(a){var b=this;b.resetScroller()},bindStore:function(a,b){var c=this;c.callParent(arguments);if(!c.autoFlexcroll){return}if(!b&&c.store){if(a!==c.store&&c.store.autoDestroy){this.store.destroy()}else{c.mun(a,"load",c.onStoreLoad,c);c.mun(a,"clear",c.onStoreClear,c);c.mun(a,"datachanged",c.onUpdateFleXcroll,c);c.mun(a,"update",c.onUpdateFleXcroll,c)}if(!a){this.store=null}}if(a){a=Ext.StoreMgr.lookup(a);c.mon(a,"load",c.onStoreLoad,c);c.mon(a,"clear",c.onStoreClear,c);c.mon(a,"datachanged",c.onUpdateFleXcroll,c);
3c.mon(a,"update",c.onUpdateFleXcroll,c)}},suspendUpdateScrollbar:function(){this.blockScrollBarUpdate=true},resumeUpdateScrollbar:function(){this.blockScrollBarUpdate=false},focusNode:function(c){var b=this,a=b.getNode(c);if(!b.autoFlexcroll){return}b.fleXcrollTo(a)},onBeforeDestroy:function(){this.el.un("click",this.el.focus,this)},onDestroy:function(){if(this.scrollBar){Ext.destroy(this.scrollBar);delete this.scrollBar}this.removeDelayedTask("updateScrollbarTask");this.destroyFleXcroll(this.el);this.callParent(arguments)},refresh:function(){if(this.restoreSelectionState!==true){this.callParent(arguments);return}var a=this,b=a.getSelectedItemIds();a.callParent(arguments);a.restoreUIState(b)},getSelectedItemIds:function(){var a,b;var c=[];a=this.getSelectedRecords();for(b=0;b<a.length;b++){if(a[b]&&a[b].id){c.push(a[b].id)}}return c},restoreUIState:function(b){var a=0,c;for(a=0;a<b.length;a++){c=this.store.getById(b[a]);if(c){this.select(c,true,false)}}}});Ext.reg("syno_flexcroll_dataview",SYNO.ux.FleXcroll.DataView);Ext.define("SYNO.ux.ExpandableListView",{extend:"SYNO.ux.FleXcroll.DataView",toggleOnDblClick:true,singleExpanded:false,toggleWrapCls:"item-toggle",constructor:function(a){this.userExpanded=true;this.toggledItemIds=[];this.callParent([this.fillConfig(a)]);this.addClass("syno-ux-expandable-listview")},fillConfig:function(a){this.innerTpl=(a.innerTpl)?a.innerTpl:undefined;var b={tpl:this.createTpl(a),selectedClass:"item-selected",overClass:"item-over",itemSelector:"div.item-wrap",multiSelect:true};Ext.apply(b,a);return b},createTpl:function(a){var c=a.toggleWrapCls||this.toggleWrapCls,b=new Ext.XTemplate('<tpl for=".">','<div class="item-wrap {cls}" role="option" aria-expanded="false" id={[Ext.id()]} aria-label="{ariaInfo}">','<div class="item-summary">','<div class="item-icon {iconCls}"></div>',"<div>",'<div class="item-title {titleCls}">{title:htmlEncode}</div>','<div class="item-status {statusCls}">{status:htmlEncode}</div>',"</div>",(this.innerTpl)?'<div class="'+c+'"><div class="item-toggle-img"></div></div>':"","</div>",'<div class="item-detail" style="display:none">',(this.innerTpl)?this.innerTpl.html:"","</div>","</div>","</tpl>",'<div class="x-clear"></div>');return b},toggleSelectedItem:function(){var b=this,a=b.selected.elements,c;if(a.length!==1){return}c=a[0];this.toggleDetail(Ext.fly(c),false)},onKeyEnter:function(a){a.preventDefault();this.toggleSelectedItem()},onKeySpace:function(a){a.preventDefault();this.toggleSelectedItem()},onClick:function(d,c,b){this.callParent(arguments);var a=Ext.fly(c);if(a&&(a.hasClass("item-toggle")||a.hasClass("item-toggle-img"))){this.toggleDetail(a.parent(".item-wrap"),true)}},onDblClick:function(f,d,c){this.callParent(arguments);if(this.toggleOnDblClick){var b=Ext.fly(d),a;if(b&&!(b.hasClass(this.toggleWrapCls)||b.hasClass("item-toggle-img"))){a=b.parent(".item-wrap");this.toggleDetail(a,true)}}},toggleDetail:function(b,c){if(!b){return}var d,a;d=this.getRecord(b.dom);if(b.child(".item-toggle-expanded")){b.setARIAExpanded(false);this.doExpand(false,b,c);this.toggledItemIds.remove(d.id)}else{b.setARIAExpanded(true);this.doExpand(true,b,c);a=this.toggledItemIds.indexOf(d.id);if(a<0){this.toggledItemIds.push(d.id)}}},doExpand:function(c,d,b){var e=d.child(".item-detail");if(!e){return}e.setVisibilityMode(Ext.Element.DISPLAY);if(b){e[c?"slideIn":"slideOut"]("t",{duration:0.25,callback:this.afterAmin.createDelegate(this)})}else{e[c?"show":"hide"]()}var a=d.child("."+this.toggleWrapCls);if(!a){return}a[c?"addClass":"removeClass"]("item-toggle-expanded");if(!c){if(this.store.data.length===1&&this.singleExpanded===true){this.userExpanded=false}}if(!b){this.updateFleXcroll()}},afterAmin:function(){this.updateFleXcroll()},getSelectedItemIds:function(){var a,b;var c=[];a=this.getSelectedRecords();for(b=0;b<a.length;b++){if(a[b]&&a[b].id){c.push(a[b].id)}}return c},getToggledItemIds:function(){if(this.store.data.length===1&&this.singleExpanded===true&&this.userExpanded===true){var a=this.store.data.items[0].id;if(this.toggledItemIds.indexOf(a)===-1){this.toggledItemIds.push(a)}}return this.toggledItemIds},updateFleXcroll:function(){if(this.autoFlexcroll){this.callParent(arguments)}},restoreUIState:function(d,f){var a=0,c,e,b;this.suspendUpdateScrollbar();for(a=0;a<d.length;a++){e=this.store.getById(d[a]);if(e){this.select(e,true,false)}}for(a=f.length-1;a>=0;a--){e=this.store.getById(f[a]);if(e){c=this.getNode(e);b=Ext.fly(c);if(b&&!b.child(".item-toggle-expanded")){this.toggleDetail(Ext.fly(c),false)}}else{f.remove(f[a])}}this.resumeUpdateScrollbar();this.updateFleXcroll()},onUpdate:function(b,a){var c=this.getToggledItemIds();this.callParent(arguments);this.restoreUIState([],c)},refresh:function(){var a=this.getSelectedItemIds();var b=this.getToggledItemIds();this.callParent(arguments);this.restoreUIState(a,b)}});Ext.define("SYNO.ux.OperatableListView",{extend:"SYNO.ux.ExpandableListView",innerTpl:undefined,toggleWrapCls:"item-toggle",toolWrapCls:"item-tools",operator:["edit","remove"],constructor:function(a){this.userExpanded=true;this.toggledItemIds=[];this.callParent([this.fillConfig(a)]);this.addClass("syno-ux-operatable-listview")},fillConfig:function(a){Ext.apply(this,a);var b={tpl:this.createTpl(),selectedClass:"item-selected",overClass:"item-over",itemSelector:"div.item-wrap",multiSelect:true};Ext.apply(b,a);return b},createTpl:function(){this.toggleTpl="";this.toolTpl='<div class="'+this.toolWrapCls+'">';Ext.each(this.operator,function(b){this.toolTpl+='<div class="item-'+b+'-img" ext:qtip="'+_JSLIBSTR("uicommon",b)+'"></div>'},this);this.toolTpl+="</div>";if(this.innerTpl){this.toggleTpl='<div class="'+this.toggleWrapCls+'"><div class="item-toggle-img"></div></div>'}var a=new Ext.XTemplate('<tpl for=".">','<div class="item-wrap {cls}">',this.toolTpl,'<div class="item-summary">',"<div>",'<div class="item-title {titleCls}">{title:htmlEncode}</div>
3','<div class="item-status {statusCls}">{status:htmlEncode}</div>',"</div>",this.toggleTpl,"</div>",'<div class="item-detail" style="display:none">',(this.innerTpl)?this.innerTpl.html:"","</div>","</div>","</tpl>",'<div class="x-clear"></div>');return a},onClick:function(h,g,f){this.callParent(arguments);var d=Ext.fly(g),b;for(b=0;b<this.operator.length;b++){var a="item-"+this.operator[b]+"-img",c="on"+this.operator[b].charAt(0).toUpperCase()+this.operator[b].slice(1);if(d&&d.hasClass(a)){this[c](h,g,f,d);break}}},onEdit:Ext.emptyFn,onRemove:Ext.emptyFn,onDblClick:function(g,f,d){if(!this.toggleOnDblClick){this.callParent(arguments);return}var c=Ext.fly(f),b;if(!c){return}for(b=0;b<this.operator.length;b++){var a="item-"+this.operator[b]+"-img";if(c.hasClass(a)){this.toggleOnDblClick=false}}if(c.hasClass(this.toolWrapCls)){this.toggleOnDblClick=false}this.callParent(arguments);this.toggleOnDblClick=true}});Ext.reg("syno_expandable_listview",SYNO.ux.ExpandableListView);Ext.reg("syno_operatable_listview",SYNO.ux.OperatableListView);
4/*
5 * Ext JS Library 3.4.0
6 * Copyright(c) 2006-2011 Sencha Inc.
7 * [email protected]
8 * http://www.sencha.com/license
9 */
10Ext.ns("Ext.ux.grid");
10Ext.ux.grid.BufferView=Ext.extend(Ext.grid.GridView,{rowHeight:19,borderHeight:2,scrollDelay:100,cacheSize:20,cleanDelay:500,initTemplates:function(){Ext.ux.grid.BufferView.superclass.initTemplates.call(this);var a=this.templates;a.rowHolder=new Ext.Template('<div class="x-grid3-row {alt}" style="{tstyle}"></div>');a.rowHolder.disableFormats=true;a.rowHolder.compile();a.rowBody=new Ext.Template('<table class="x-grid3-row-table" border="0" cellspacing="0" cellpadding="0" style="{tstyle}">',"<tbody><tr>{cells}</tr>",(this.enableRowBody?'<tr class="x-grid3-row-body-tr" style="{bodyStyle}"><td colspan="{cols}" class="x-grid3-body-cell" tabIndex="0" hidefocus="on"><div class="x-grid3-row-body">{body}</div></td></tr>':""),"</tbody></table>");a.rowBody.disableFormats=true;a.rowBody.compile()},getStyleRowHeight:function(){return Ext.isBorderBox?(this.rowHeight+this.borderHeight):this.rowHeight},getCalculatedRowHeight:function(){return this.rowHeight+this.borderHeight},getVisibleRowCount:function(){var b=this.getCalculatedRowHeight(),a=this.scroller.dom.clientHeight;return(a<1)?0:Math.ceil(a/b)},getVisibleRows:function(){var a=this.getVisibleRowCount(),b=this.scroller.dom.scrollTop,c=(b===0?0:Math.floor(b/this.getCalculatedRowHeight())-1);return{first:Math.max(c,0),last:Math.min(c+a+2,this.ds.getCount()-1)}},doRender:function(g,l,w,a,u,C,m){var b=this.templates,f=b.cell,k=b.row,z=b.rowBody,o=u-1,v=this.getStyleRowHeight(),B=this.getVisibleRows(),d="width:"+this.getTotalWidth()+";height:"+v+"px;",F=[],y,G,h=this.getLastVisibleCol(),x={},n={tstyle:d},s,t;for(var A=0,E=l.length;A<E;A++){t=l[A];y=[];var q=(A+a),e=q>=B.first&&q<=B.last;if(e){for(var D=0;D<u;D++){G=g[D];if(D===0){s="x-grid3-cell-first "}else{s=(D==o)?"x-grid3-cell-last ":""}if(D===h){s+="x-grid3-cell-last-visible "}x.id=G.id;x.css=s;x.attr=x.cellAttr="";x.value=G.renderer.call(G.scope||G,t.data[G.name],x,t,q,D,w);x.style=G.style;x.readonly=G.readonly;if(x.value===undefined||x.value===""){x.value="&#160;"}if(t.dirty&&typeof t.modified[G.name]!=="undefined"){x.css+=" x-grid3-dirty-cell"}y[y.length]=f.apply(x)}}var H=[];if(C&&((q+1)%2===0)){H[0]="x-grid3-row-alt"}if(t.dirty){H[1]=" x-grid3-dirty-row"}n.cols=u;if(this.getRowClass){H[2]=this.getRowClass(t,q,n,w)}n.alt=H.join(" ");n.cells=y.join("");F[F.length]=!e?b.rowHolder.apply(n):(m?z.apply(n):k.apply(n))}return F.join("")},isRowRendered:function(a){var b=this.getRow(a);return b&&b.childNodes.length>0},syncScroll:function(){Ext.ux.grid.BufferView.superclass.syncScroll.apply(this,arguments);this.update()},update:function(){if(this.scrollDelay){if(!this.renderTask){this.renderTask=new Ext.util.DelayedTask(this.doUpdate,this)}this.renderTask.delay(this.scrollDelay)}else{this.doUpdate()}},onRemove:function(d,a,b,c){Ext.ux.grid.BufferView.superclass.onRemove.apply(this,arguments);if(c!==true){this.update()}},doUpdate:function(){if(this.getVisibleRowCount()>0){var f=this.grid,b=f.colModel,h=f.store,e=this.getColumnData(),a=this.getVisibleRows(),j;for(var d=a.first;d<=a.last;d++){if(!this.isRowRendered(d)&&(j=this.getRow(d))){var c=this.doRender(e,[h.getAt(d)],h,d,b.getColumnCount(),f.stripeRows,true);j.innerHTML=c}}this.clean()}},clean:function(){if(!this.cleanTask){this.cleanTask=new Ext.util.DelayedTask(this.doClean,this)}this.cleanTask.delay(this.cleanDelay)},doClean:function(){if(this.getVisibleRowCount()>0){var b=this.getVisibleRows();b.first-=this.cacheSize;b.last+=this.cacheSize;var c=0,d=this.getRows();if(b.first<=0){c=b.last+1}for(var a=this.ds.getCount();c<a;c++){if((c<b.first||c>b.last)&&d[c].innerHTML){d[c].innerHTML=""}}}},removeTask:function(b){var a=this[b];if(a&&a.cancel){a.cancel();this[b]=null}},destroy:function(){this.removeTask("cleanTask");this.removeTask("renderTask");Ext.ux.grid.BufferView.superclass.destroy.call(this)},layout:function(){Ext.ux.grid.BufferView.superclass.layout.call(this);this.update()}});SYNO.SDS.DefineGridView=function(a,b){Ext.define(a,{extend:b,cellSelectorDepth:5,forceFit:true,scrollOffset:0,syncScrollWithBuffer:true,cellTpl:new Ext.XTemplate('<td class="x-grid3-col x-grid3-cell x-grid3-td-{id} {css}" style="{style}" {cellAttr} role="gridcell" tabIndex="-1" id="{[Ext.id()]}" aria-readonly="{readonly}">','<div class="x-grid3-cell-inner x-grid3-col-{id} x-unselectable" unselectable="on" {attr}>{value}</div>',"</td>"),masterTpl:new Ext.Template('<div class="x-grid3" hidefocus="true">','<div class="x-grid3-viewport">','<div class="x-grid3-header">','<div class="x-grid3-header-inner">','<div class="x-grid3-header-offset" style="{ostyle}">{header}</div>',"</div>",'<div class="x-clear"></div>',"</div>",'<div class="x-grid3-scroller">','<a href="#" class="x-grid3-focus" tabIndex="0"></a>','<div class="x-grid3-body" style="{bstyle}">{body}</div>',"</div>","</div>",'<div class="x-grid3-resize-marker">&#160;</div>','<div class="x-grid3-resize-proxy">&#160;</div>',"</div>"),trackResetOnLoad:true,autoFlexcroll:true,updateScroller:function(c){var d=this,e=d.scroller.dom;if(!d.autoFlexcroll){return}d.updateScrollbar(e,c)},onDataChange:function(){var c=this;c.callParent(arguments);c.updateScroller()},onClear:function(){var c=this;c.callParent(arguments);c.updateScroller()},onUpdate:function(d,c){var e=this;e.callParent(arguments);e.updateScroller()},onAdd:function(d,c,e){var f=this;f.callParent(arguments);f.updateScroller()},onRemove:function(d,c,e,g){var f=this;f.callParent(arguments);f.updateScroller()},onLoad:function(){var c=this;c.updateScroller(c.trackResetOnLoad)},fitColumns:function(g,j,h){var c=this.grid,k=this.cm,t=k.getTotalWidth(false),q=this.getGridInnerWidth(),r=q-t,d=[],s=[],l=0,o=0,u,e,p;if(q<22||r===0){return false}var n=k.getColumnCount(false);for(p=0;p<n;p++){if(!k.isFixed(p)&&p!==h){u=k.getColumnWidth(p);d.push(p,u);if(!k.isHidden(p)){s.push(p);o+=u}}}e=(q-k.getTotalWidth())/o;while(d.length){u=d.pop();p=d.pop();k.setColumnWidth(p,Math.max(c.minColumnWidth,Math.floor(u+u*e)),true)}t=k.getTotalWidth(false);
10if(t>q){var m=Math.max(1,(t-q)/s.length);Ext.each(s,function(i){l=Math.max(1,k.getColumnWidth(i)-m);k.setColumnWidth(i,l,true)})}else{if(t<q){var f=this.getLastVisibleCol();l=k.getColumnWidth(f)+q-t;k.setColumnWidth(f,l,true)}}if(g!==true){this.updateAllColumnWidths()}return true},afterRenderUI:function(){var e=this,c=this.grid.getColumnModel(),f=c.columns||c.config,d=0;e.callParent(arguments);if(!e.autoFlexcroll){return}if(this.syncScrollWithBuffer===true){e.on("flexcroll",e.syncScroll,e,{buffer:100})}else{e.on("flexcroll",e.syncScroll,e)}while(d<(f.length-1)&&f[d].hidden){d++}e.setHeaderFocus(d)},getColumnData:function(){var g=[],e=this.cm,j=e.config,h=e.getColumnCount(),c=this.ds.fields,f,d;for(f=0;f<h;f++){d=e.getDataIndex(f);g[f]={name:Ext.isDefined(d)?d:(c.get(f)?c.get(f).name:undefined),renderer:e.getRenderer(f),scope:e.getRendererScope(f),id:e.getColumnId(f),style:this.getColumnStyle(f),readonly:!j[f].editor,editor:j[f].editor}}return g},refreshRow:function(j){var n=this.ds,o=this.cm.getColumnCount(),f=this.getColumnData(),p=o-1,r=["x-grid3-row"],h={tstyle:String.format("width: {0};",this.getTotalWidth())},d=[],m=this.templates.cell,c=this.getLastVisibleCol(),l,s,e,q,k,g;if(Ext.isNumber(j)){l=j;j=n.getAt(l)}else{l=n.indexOf(j)}if(!j||l<0){return}for(g=0;g<o;g++){e=f[g];if(g===0){k="x-grid3-cell-first "}else{k=(g==p)?"x-grid3-cell-last ":""}if(g===c){k+="x-grid3-cell-last-visible "}if(e.editor){if(e.editor instanceof Ext.form.TriggerField){k+="syno-ux-triggerfield"}else{if(e.editor instanceof Ext.form.TextField){k+="syno-ux-textfield"}}}q={id:e.id,style:e.style,css:k,attr:"",cellAttr:"",readonly:e.readonly};q.value=e.renderer.call(e.scope,j.data[e.name],q,j,l,g,n);if(Ext.isEmpty(q.value)){q.value="&#160;"}if(this.markDirty&&j.dirty&&typeof j.modified[e.name]!="undefined"){q.css+=" x-grid3-dirty-cell"}d[g]=m.apply(q)}s=this.getRow(l);s.className="";if(this.grid.stripeRows&&((l+1)%2===0)){r.push("x-grid3-row-alt")}if(this.getRowClass){h.cols=o;r.push(this.getRowClass(j,l,h,n))}this.fly(s).addClass(r).setStyle(h.tstyle);h.cells=d.join("");s.innerHTML=this.templates.rowInner.apply(h);this.fireEvent("rowupdated",this,l,j)},updateHeaders:function(){this.callParent(arguments);var d=this.curHeaderFocusIdx,c,e;if(!Ext.isDefined(d)){c=this.grid.getColumnModel();e=c.columns||c.config;d=0;while(d<(e.length-1)&&e[d].hidden){d++}}this.setHeaderFocus(d)},setHeaderFocusTabbable:function(d){var c=this.hdFocus;if(c){c.setAttribute("tabIndex",(d)?0:-1)}this.hdTabbable=d},focusHeaderByDir:function(d,e){var c=this.grid.getColumnModel(),g=c.columns||c.config,f=d+e;while(f>0&&f<(g.length-1)&&g[f].hidden){f=f+e}if(!g[f]||g[f].hidden){return}this.setHeaderFocus(f,true)},setHeaderFocus:function(d,g){if(this.hdTabbable===false){return}var h=this.hdFocus,c=this.cm,f,e;if(h){h.setAttribute("tabIndex",-1)}this.hdFocus=this.getHeaderCell(d)||h;if(this.hdFocus){this.hdFocus.setAttribute("tabIndex",0);if(!this.hdFocus.keyMaps){f=c.getColumnAt(d);e={left:this.focusHeaderByDir.createDelegate(this,[d,-1]),right:this.focusHeaderByDir.createDelegate(this,[d,1]),scope:this};if(Ext.isFunction(f.onHeaderSpace)){Ext.apply(e,{space:f.onHeaderSpace.createDelegate(f)})}this.hdFocus.keyMaps=new Ext.KeyNav(Ext.fly(this.hdFocus),e)}if(g){this.hdFocus.focus()}this.curHeaderFocusIdx=d}},handleHdDown:function(d,c){this.callParent(arguments);this.focusEl.focus()},onLayout:function(d,f){var c=this,e=c.scroller.dom;if(!c.autoFlexcroll){return}this.fitColumns(false);c.updateScrollbar(e)},getScrollLeft:function(){var c=this,d=c.scroller.dom;return d.fleXcroll?d.fleXdata.scrollPosition[0][0]:d.scrollLeft},getScrollTop:function(){var c=this,d=c.scroller.dom;return d.fleXcroll?d.fleXdata.scrollPosition[1][0]:d.scrollTop},setScroll:function(f,e){var c=this,d=c.scroller.dom;if(d.fleXcroll){d.fleXcroll.setScrollPos(e,f)}else{if(f){d.scrollTop=f}if(e){d.scrollLeft=e}}},getScrollState:function(){var c=this;return{left:c.getScrollLeft(),top:c.getScrollTop()}},restoreScroll:function(d){var c=this,e=c.scroller.dom;if(e.fleXcroll){e.fleXcroll.setScrollPos(d.left,d.top)}else{c.callParent(arguments)}},scrollToTop:function(){var c=this,d=c.scroller.dom;if(d.fleXcroll){d.fleXcroll.setScrollPos(0,0)}else{c.callParent(arguments)}},syncHeaderScroll:function(){var d=this,c=d.innerHd,e=d.getScrollLeft();c.scrollLeft=e;c.scrollLeft=e},syncScroll:function(){var c=this;c.syncHeaderScroll();c.grid.fireEvent("bodyscroll",c.getScrollLeft(),c.getScrollTop())}
10,ensureVisible:function(i,f,r){var u=this,n=u.resolveCell(i,f,r);if(!n||!n.row){return null}if(!u.autoFlexcroll){u.callParent(arguments)}var t=n.row,k=n.cell,s=this.scroller.dom,m=t,j=0,q=this.el.dom;while(m&&m!=q&&!Ext.get(m).hasClass("contentwrapper")&&!Ext.get(m).hasClass("mcontentwrapper")){j+=m.offsetTop;m=m.offsetParent}q=parseInt(u.getScrollTop(),10);var g=j+t.offsetHeight,l=s.clientHeight,o=q+l;if(j<q){u.setScroll(j,false)}else{if(g>o){u.setScroll(g-l,false)}}if(r!==false){var h=parseInt(k.offsetLeft,10),v=h+k.offsetWidth,e=parseInt(u.getScrollLeft(),10),d=e+s.clientWidth;if(h<e){u.setScroll(false,h)}else{if(v>d){u.setScroll(false,v-s.clientWidth)}}}return u.getResolvedXY(n)},destroy:function(){this.destroyFleXcroll(this.el);this.callParent(arguments);this.un("flexcroll",this.syncScroll,this,{buffer:100})},renderHeaders:function(){var j=this.cm,k=this.templates,d=k.hcell,h={},l=j.getColumnCount(),c=this.getLastVisibleCol(),m=l-1,n=[],g,f,e;for(g=0;g<l;g++){if(g===0){f="x-grid3-cell-first "}else{f=g==m?"x-grid3-cell-last ":""}if(g===c){f+="x-grid3-cell-last-visible "}e=j.getColumnAt(g);h={id:j.getColumnId(g),value:j.getColumnHeader(g)||"",style:this.getColumnStyle(g,true),css:f,tooltip:this.getColumnTooltip(g),htmlEncode:e.headerHtmlEncode,role:Ext.isFunction(e.getHeaderRole)?e.getHeaderRole():"columnheader",ariaAttr:Ext.isFunction(e.getHeaderAriaAttr)?e.getHeaderAriaAttr():""};n[g]=d.apply(h)}return k.header.apply({cells:n.join(""),tstyle:String.format("width: {0};",this.getTotalWidth())})},initTemplates:function(){var e=new Ext.XTemplate('<td class="x-grid3-hd x-grid3-cell x-grid3-td-{id} {css}" style="{style}" role="{role}" tabIndex="-1" {ariaAttr}>','<div {tooltip} {attr} class="x-grid3-hd-inner x-grid3-hd-{id}" unselectable="on" style="{istyle}">',this.grid.enableHdMenu?'<a class="x-grid3-hd-btn" href="#"></a>':"",'<tpl if="htmlEncode">{value:htmlEncode}</tpl>','<tpl if="!htmlEncode">{value}</tpl>','<img alt="" class="x-grid3-sort-icon" src="',Ext.BLANK_IMAGE_URL,'" />',"</div>","</td>"),c=['<tr class="x-grid3-row-body-tr" style="{bodyStyle}">','<td colspan="{cols}" class="x-grid3-body-cell" tabIndex="-1" hidefocus="on">','<div class="x-grid3-row-body">{body}</div>',"</td>","</tr>"].join(""),d=['<table class="x-grid3-row-table" border="0" cellspacing="0" cellpadding="0" style="{tstyle}">',"<tbody>",'<tr role="row" id="{[Ext.id()]}" aria-haspopup="true">{cells}</tr>',this.enableRowBody?c:"","</tbody>","</table>"].join("");this.templates=this.templates||{};e.compile();Ext.applyIf(this.templates,{hcell:e,row:new Ext.XTemplate('<div class="x-grid3-row {alt}" style="{tstyle}">'+d+"</div>"),rowInner:new Ext.XTemplate(d)});this.callParent(arguments)}})};SYNO.SDS.DefineGridView("SYNO.ux.FleXcroll.grid.GridView","Ext.grid.GridView");SYNO.SDS.DefineGridView("SYNO.ux.FleXcroll.grid.BufferView","Ext.ux.grid.BufferView");Ext.override(SYNO.ux.FleXcroll.grid.BufferView,{constructor:function(a){a=a||{};a=Ext.applyIf(a,{rowHeight:26,borderHeight:1,cacheSize:30,scrollDelay:false,forceFit:true});this.callParent(arguments)},afterRenderUI:function(){var c=this,a=this.grid.getColumnModel(),d=a.columns||a.config,b=0;c.callParent(arguments);if(!c.autoFlexcroll){return}c.on("flexcroll",c.update,c);while(b<(d.length-1)&&d[b].hidden){b++}c.setHeaderFocus(b)},getVscrollerbarBase:function(){var a=this;if(a.scrollerbarbase){return a.scrollerbarbase}return(a.scrollerbarbase=Ext.get(a.el.child("div.scrollerbarbase")))},getContentwrapper:function(){var a=this;if(a.vscrollerbar){return a.vscrollerbar}return(a.vscrollerbar=Ext.get(a.el.child("div.contentwrapper")))},getVisibleRowCount:function(){if(!this.autoFlexcroll){this.callParent(arguments)}var c=this,b=c.getCalculatedRowHeight(),a=!Ext.isEmpty(c.getVscrollerbarBase())?c.getVscrollerbarBase().getHeight():c.scroller.dom.clientHeight;return(a<1)?0:Math.ceil(a/b)},getVisibleRows:function(){if(!this.autoFlexcroll){this.callParent(arguments)}var b=this,a=b.getVisibleRowCount(),c=!Ext.isEmpty(b.getContentwrapper())?(-1*b.getContentwrapper().getTop(true)+1):b.scroller.dom.scrollTop,d=(c===0?0:Math.floor(c/b.getCalculatedRowHeight())-1);return{first:Math.max(d,0),last:Math.min(d+a+3,b.ds.getCount()-1)}},initTemplates:function(){var d=new Ext.XTemplate('<td class="x-grid3-hd x-grid3-cell x-grid3-td-{id} {css}" style="{style}" role="{role}" tabIndex="-1" {ariaAttr}>','<div {tooltip} {attr} class="x-grid3-hd-inner x-grid3-hd-{id}" unselectable="on" style="{istyle}">',this.grid.enableHdMenu?'<a class="x-grid3-hd-btn" href="#"></a>':"",'<tpl if="htmlEncode">{value:htmlEncode}</tpl>','<tpl if="!htmlEncode">{value}</tpl>','<img alt="" class="x-grid3-sort-icon" src="',Ext.BLANK_IMAGE_URL,'" />',"</div>","</td>"),a=['<tr class="x-grid3-row-body-tr" style="{bodyStyle}">','<td colspan="{cols}" class="x-grid3-body-cell" tabIndex="-1" hidefocus="on">','<div class="x-grid3-row-body">{body}</div>',"</td>","</tr>"].join(""),c=['<table class="x-grid3-row-table" border="0" cellspacing="0" cellpadding="0" style="{tstyle}">',"<tbody>",'<tr role="row" id="{[Ext.id()]}" aria-haspopup="true">{cells}</tr>',this.enableRowBody?a:"","</tbody>","</table>"].join("");this.templates=this.templates||{};d.compile();Ext.applyIf(this.templates,{hcell:d,row:new Ext.XTemplate('<div class="x-grid3-row {alt}" style="{tstyle}">'+c+"</div>"),rowInner:new Ext.XTemplate(c)});Ext.ux.grid.BufferView.superclass.initTemplates.call(this);var b=this.templates;b.rowHolder=new Ext.Template('<div class="x-grid3-row {alt}" role="row" style="{tstyle}"></div>');b.rowHolder.disableFormats=true;b.rowHolder.compile();b.rowBody=new Ext.Template('<table class="x-grid3-row-table" border="0" cellspacing="0" cellpadding="0" style="{tstyle}">','<tbody><tr role="row">{cells}</tr>',(this.enableRowBody?'<tr class="x-grid3-row-body-tr" style="{bodyStyle}" role="row"><td role="gridcell" colspan="{cols}" class="x-grid3-body-cell" hidefocus="on"><div class="x-grid3-row-body">{body}</div></td></tr>':""),"</tbody></table>");b.rowBody.disableFormats=true;b.rowBody.compile()},destroy:function(){var a=this;a.callParent(arguments);a.un("flexcroll",a.update,a)}});Ext.define("SYNO.ux.FleXcroll.grid.HorizontalGridView",{extend:"SYNO.ux.FleXcroll.grid.GridView",masterTpl:new Ext.Template('<div class="x-grid3" hidefocus="true">','<div class="x-grid3-viewport">','<div class="x-grid3-header">','<div class="x-grid3-header-inner">','<div class="x-grid3-header-offset" style="{ostyle}">{header}</div>','<div class="scroll-menu-ct">','<div class="scroll-control-left"></div><div class="scroll-control-right"></div>',"</div>","</div>",'<div class="x-clear"></div>',"</div>",'<div class="x-grid3-scroller">','<div class="x-grid3-body" style="{bstyle}">{body}</div>','<a href="#" class="x-grid3-focus" tabIndex="-1"></a>',"</div>","</div>",'<div class="x-grid3-resize-marker">&#160;</div>','<div class="x-grid3-resize-proxy">&#160;</div>',"</div>"),scrollStep:10,useScrollStep:false,syncScrollWithBuffer:false,processEvent:function(a,f){var d=f.getTarget(),b=this.grid,c=Ext.fly(d);if(c.hasClass("scroll-control-left")){b.fireEvent("leftScroller"+a);return}if(c.hasClass("scroll-control-right")){b.fireEvent("rightScroller"+a);return}if(c.hasClass("scroll-menu-ct")){return}this.callParent(arguments)},onLayout:function(b,d){var a=this,c=a.scroller.dom;if(!a.autoFlexcroll){return}if(c.clientWidth===c.offsetWidth){a.scrollOffset=0}else{a.scrollOffset=undefined}a.updateScrollbar(c)}});Ext.namespace("SYNO");SYNO.ColorField=Ext.extend(Ext.form.TriggerField,{defaultAutoCreate:{tag:"input",type:"text",size:"10",maxlength:"7",autocomplete:"off"},allowBlank:false,maskRe:/[#a-f0-9]/i,menu:null,constructor:function(a){SYNO.ColorField.superclass.constructor.apply(this,arguments);this.menu=new Ext.menu.ColorMenu();this.mon(this.menu.palette,"select",this.onColorSelect,this);this.addManagedComponent(this.menu)},validateBlur:function(){return !this.menu||!this.menu.isVisible()},validator:function(b){var a=/^#[a-f0-9]{3}([a-f0-9]{3})?$/i;return b&&b.match(a)?true:""},onTriggerClick:function(){if(this.disabled){return}this.menu.show(this.el,"tl-bl?")},onColorSelect:function(a,b){this.setValue("#"+b)}});Ext.reg("colorfield",SYNO.ColorField);Ext.ux.Spinner=Ext.extend(Ext.util.Observable,{incrementValue:1,alternateIncrementValue:5,triggerClass:"x-form-spinner-trigger",splitterClass:"x-form-spinner-splitter",alternateKey:Ext.EventObject.shiftKey,defaultValue:0,accelerate:false,constructor:function(a){Ext.ux.Spinner.superclass.constructor.call(this,a);Ext.apply(this,a);this.mimicing=false},init:function(a){this.field=a;a.afterMethod("onRender",this.doRender,this);a.afterMethod("onEnable",this.doEnable,this);a.afterMethod("onDisable",this.doDisable,this);a.afterMethod("afterRender",this.doAfterRender,this);a.afterMethod("onResize",this.doResize,this);a.afterMethod("onFocus",this.doFocus,this);a.beforeMethod("onDestroy",this.doDestroy,this)},doRender:function(b,a){var c=this.field.getEl();this.el=this.field.getEl();var d=this.field;if(!d.wrap){d.wrap=this.wrap=c.wrap({cls:"x-form-field-wrap"})}else{this.wrap=d.wrap.addClass("x-form-field-wrap")}this.trigger=this.wrap.createChild({tag:"img",src:Ext.BLANK_IMAGE_URL,cls:"x-form-trigger "+this.triggerClass});if(!d.width){this.wrap.setWidth(c.getWidth()+this.trigger.getWidth())}this.splitter=this.wrap.createChild({tag:"div",cls:this.splitterClass,style:"width:13px; height:2px;"});this.splitter.setRight((Ext.isIE)?1:2).setTop(10).show();this.proxy=this.trigger.createProxy("",this.splitter,true);this.proxy.addClass("x-form-spinner-proxy");this.proxy.setStyle("left","0px");this.proxy.setSize(20,1);this.proxy.hide();this.dd=new Ext.dd.DDProxy(this.splitter.dom.id,"SpinnerDrag",{dragElId:this.proxy.id});this.initTrigger();this.initSpinner()},doAfterRender:function(){var a;if(Ext.isIE&&this.el.getY()!=(a=this.trigger.getY())){this.el.position();
10this.el.setY(a)}},doEnable:function(){if(this.wrap){this.wrap.removeClass(this.field.disabledClass)}},doDisable:function(){if(this.wrap){this.wrap.addClass(this.field.disabledClass);this.el.removeClass(this.field.disabledClass)}},doResize:function(a,b){if(typeof a=="number"){this.el.setWidth(a-this.trigger.getWidth())}this.wrap.setWidth(this.el.getWidth()+this.trigger.getWidth())},doFocus:function(){if(!this.mimicing){this.wrap.addClass("x-trigger-wrap-focus");this.mimicing=true;Ext.get(Ext.isIE?document.body:document).on("mousedown",this.mimicBlur,this,{delay:10});this.el.on("keydown",this.checkTab,this)}},checkTab:function(a){if(a.getKey()==a.TAB){this.triggerBlur()}},mimicBlur:function(a){if(!this.wrap.contains(a.target)&&this.field.validateBlur(a)){this.triggerBlur()}},triggerBlur:function(){this.mimicing=false;Ext.get(Ext.isIE?document.body:document).un("mousedown",this.mimicBlur,this);this.el.un("keydown",this.checkTab,this);this.field.beforeBlur();this.wrap.removeClass("x-trigger-wrap-focus");this.field.onBlur.call(this.field)},initTrigger:function(){this.trigger.addClassOnOver("x-form-trigger-over");this.trigger.addClassOnClick("x-form-trigger-click")},initSpinner:function(){this.field.addEvents({spin:true,spinup:true,spindown:true});this.keyNav=new Ext.KeyNav(this.el,{up:function(a){a.preventDefault();this.onSpinUp()},down:function(a){a.preventDefault();this.onSpinDown()},pageUp:function(a){a.preventDefault();this.onSpinUpAlternate()},pageDown:function(a){a.preventDefault();this.onSpinDownAlternate()},scope:this});this.repeater=new Ext.util.ClickRepeater(this.trigger,{accelerate:this.accelerate});this.field.mon(this.repeater,"click",this.onTriggerClick,this,{preventDefault:true});this.field.mon(this.trigger,{mouseover:this.onMouseOver,mouseout:this.onMouseOut,mousemove:this.onMouseMove,mousedown:this.onMouseDown,mouseup:this.onMouseUp,scope:this,preventDefault:true});this.field.mon(this.wrap,"mousewheel",this.handleMouseWheel,this);this.dd.setXConstraint(0,0,10);this.dd.setYConstraint(1500,1500,10);this.dd.endDrag=this.endDrag.createDelegate(this);this.dd.startDrag=this.startDrag.createDelegate(this);this.dd.onDrag=this.onDrag.createDelegate(this)},onMouseOver:function(){if(this.disabled){return}var a=this.getMiddle();this.tmpHoverClass=(Ext.EventObject.getPageY()<a)?"x-form-spinner-overup":"x-form-spinner-overdown";this.trigger.addClass(this.tmpHoverClass)},onMouseOut:function(){this.trigger.removeClass(this.tmpHoverClass)},onMouseMove:function(){if(this.disabled){return}var a=this.getMiddle();if(((Ext.EventObject.getPageY()>a)&&this.tmpHoverClass=="x-form-spinner-overup")||((Ext.EventObject.getPageY()<a)&&this.tmpHoverClass=="x-form-spinner-overdown")){}},onMouseDown:function(){if(this.disabled){return}var a=this.getMiddle();this.tmpClickClass=(Ext.EventObject.getPageY()<a)?"x-form-spinner-clickup":"x-form-spinner-clickdown";this.trigger.addClass(this.tmpClickClass)},onMouseUp:function(){this.trigger.removeClass(this.tmpClickClass)},onTriggerClick:function(){if(this.disabled||this.el.dom.readOnly){return}var b=this.getMiddle();var a=(Ext.EventObject.getPageY()<b)?"Up":"Down";this["onSpin"+a]()},getMiddle:function(){var b=this.trigger.getTop();var c=this.trigger.getHeight();var a=b+(c/2);return a},isSpinnable:function(){if(this.disabled||this.el.dom.readOnly){Ext.EventObject.preventDefault();return false}return true},handleMouseWheel:function(a){if(this.wrap.hasClass("x-trigger-wrap-focus")===false){return}var b=a.getWheelDelta();if(b>0){this.onSpinUp();a.stopEvent()}else{if(b<0){this.onSpinDown();a.stopEvent()}}},startDrag:function(){this.proxy.show();this._previousY=Ext.fly(this.dd.getDragEl()).getTop()},endDrag:function(){this.proxy.hide()},onDrag:function(){if(this.disabled){return}var b=Ext.fly(this.dd.getDragEl()).getTop();var a="";if(this._previousY>b){a="Up"}if(this._previousY<b){a="Down"}if(a!==""){this["onSpin"+a]()}this._previousY=b},onSpinUp:function(){if(this.isSpinnable()===false){return}if(Ext.EventObject.shiftKey===true){this.onSpinUpAlternate();return}else{this.spin(false,false)}this.field.fireEvent("spin",this);this.field.fireEvent("spinup",this)},onSpinDown:function(){if(this.isSpinnable()===false){return}if(Ext.EventObject.shiftKey===true){this.onSpinDownAlternate();return}
10else{this.spin(true,false)}this.field.fireEvent("spin",this);this.field.fireEvent("spindown",this)},onSpinUpAlternate:function(){if(this.isSpinnable()===false){return}this.spin(false,true);this.field.fireEvent("spin",this);this.field.fireEvent("spinup",this)},onSpinDownAlternate:function(){if(this.isSpinnable()===false){return}this.spin(true,true);this.field.fireEvent("spin",this);this.field.fireEvent("spindown",this)},spin:function(d,b){var a=parseFloat(this.field.getValue());var c=(b===true)?this.alternateIncrementValue:this.incrementValue;if(d===true){a-=c}else{a+=c}a=(isNaN(a))?this.defaultValue:a;a=this.fixBoundries(a);this.field.setRawValue(a)},fixBoundries:function(b){var a=b;if(this.field.minValue!==undefined&&a<this.field.minValue){a=this.field.minValue}if(this.field.maxValue!==undefined&&a>this.field.maxValue){a=this.field.maxValue}return this.fixPrecision(a)},fixPrecision:function(b){var a=isNaN(b);if(!this.field.allowDecimals||this.field.decimalPrecision==-1||a||!b){return a?"":b}return parseFloat(parseFloat(b).toFixed(this.field.decimalPrecision))},doDestroy:function(){if(this.trigger){this.trigger.remove()}if(this.wrap){this.wrap.remove();delete this.field.wrap}if(this.splitter){this.splitter.remove()}if(this.dd){this.dd.unreg();this.dd=null}if(this.proxy){this.proxy.remove()}if(this.repeater){this.repeater.purgeListeners()}}});Ext.define("Ext.ux.form.SpinnerField",{extend:"Ext.form.NumberField",actionMode:"wrap",deferHeight:true,autoSize:Ext.emptyFn,onBlur:Ext.emptyFn,adjustSize:Ext.BoxComponent.prototype.adjustSize,constructor:function(c){var b=Ext.copyTo({},c,"incrementValue,alternateIncrementValue,accelerate,defaultValue,triggerClass,splitterClass");this.spinner=new Ext.ux.Spinner(b);var d=this.spinner;var a=c.plugins?(Ext.isArray(c.plugins)?c.plugins.push(d):[c.plugins,d]):d;Ext.ux.form.SpinnerField.superclass.constructor.call(this,Ext.apply(c,{plugins:a}))},getResizeEl:function(){return this.wrap},getPositionEl:function(){return this.wrap},alignErrorIcon:function(){if(this.wrap){this.errorIcon.alignTo(this.wrap,"tl-tr",[2,0])}},validateBlur:function(){return true}});Ext.define("SYNO.ux.DatePicker",{extend:Ext.DatePicker,onRender:function(a,g){var c=['<table cellspacing="0" role="grid">','<tr><td class="x-date-left"><a href="#" title="',this.prevText,'">&#160;</a></td><td class="x-date-middle" align="center"></td><td class="x-date-right"><a href="#" title="',this.nextText,'">&#160;</a></td></tr>','<tr><td colspan="3"><table class="x-date-inner" cellspacing="0"><thead><tr>'],f=this.dayNames,e;for(e=0;e<7;e++){var h=this.startDay+e;if(h>6){h=h-7}c.push('<th role="columnheader" aria-label="',f[h],'"><span>',this.getWeekdayHeader(e),"</span></th>")}c[c.length]='</tr></thead><tbody><tr role="row">';for(e=0;e<42;e++){if(e%7===0&&e!==0){c[c.length]='</tr><tr role="row">'}c[c.length]='<td role="gridcell" tabIndex="0"><div hidefocus="on" class="x-date-date"><em><span></span></em></div></td>'}c.push("</tr></tbody></table></td></tr>",this.showToday?'<tr><td colspan="3" class="x-date-bottom" align="center"></td></tr>':"",'</table><div class="x-date-mp"></div>');var b=document.createElement("div");b.className="x-date-picker";b.innerHTML=c.join("");var k=document.createElement("li");k.className="x-menu-list-item x-menu-date-item";k.appendChild(b);a.dom.insertBefore(k,g);this.el=Ext.get(k);this.innerEl=Ext.get(b);this.eventEl=Ext.get(b.firstChild);this.prevRepeater=new Ext.util.ClickRepeater(this.innerEl.child("td.x-date-left a"),{handler:this.showPrevMonth,scope:this,preventDefault:true,stopDefault:true});this.nextRepeater=new Ext.util.ClickRepeater(this.innerEl.child("td.x-date-right a"),{handler:this.showNextMonth,scope:this,preventDefault:true,stopDefault:true});this.monthPicker=this.innerEl.down("div.x-date-mp");this.monthPicker.enableDisplayMode("block");this.keyNav=new Ext.KeyNav(this.eventEl,{left:function(d){if(!this.isDateSelected(d)){return}if(d.ctrlKey){this.showPrevMonth()}else{this.update(this.activeDate.add("d",-1))}},right:function(d){if(!this.isDateSelected(d)){return}if(d.ctrlKey){this.showNextMonth()}else{this.update(this.activeDate.add("d",1))}},up:function(d){if(!this.isDateSelected(d)){return}if(d.ctrlKey){this.showNextYear()}else{this.update(this.activeDate.add("d",-7))}},down:function(d){if(!this.isDateSelected(d)){return}if(d.ctrlKey){this.showPrevYear()}else{this.update(this.activeDate.add("d",7))}},pageUp:function(d){this.showNextMonth()},pageDown:function(d){this.showPrevMonth()},enter:function(d){d.stopPropagation();this.handleDateSelect(d);return true},scope:this});this.innerEl.unselectable();this.cells=this.innerEl.select("table.x-date-inner tbody td");this.textNodes=this.innerEl.query("table.x-date-inner tbody span");this.mbtn=new Ext.Button({text:"&#160;",tooltip:this.monthYearText,renderTo:this.innerEl.child("td.x-date-middle",true)});this.mbtn.el.child("em").addClass("x-btn-arrow");if(this.showToday){this.todayKeyListener=this.eventEl.addKeyListener(Ext.EventObject.SPACE,this.selectToday,this);var j=(new Date()).dateFormat(this.format);this.todayBtn=new Ext.Button({renderTo:this.innerEl.child("td.x-date-bottom",true),text:String.format(this.todayText,j),tooltip:String.format(this.todayTip,j),handler:this.selectToday,scope:this})}this.mon(this.eventEl,"mousewheel",this.handleMouseWheel,this);this.mon(this.eventEl,"click",this.handleDateClick,this,{delegate:"div.x-date-date"});this.mon(this.mbtn,"click",this.showMonthPicker,this);this.onEnable(true)},getWeekdayHeader:function(b){var a=this.dayName;return a[b].substr(0,1)},showMonthPicker:function(){if(!this.disabled){this.createMonthPicker();var b=(this.el.child(".x-date-picker")||this.el).getSize();this.monthPicker.setSize(b);this.monthPicker.child("table").setSize(b);this.mpSelMonth=(this.activeDate||this.value).getMonth();this.updateMPMonth(this.mpSelMonth);this.mpSelYear=(this.activeDate||this.value).getFullYear();this.updateMPYear(this.mpSelYear);this.monthPicker.slideIn("t",{duration:0.2})}},isDateSelected:function(a){return a.target.nodeName.toUpperCase()==="TD"},update:function(c,n){var f=this.activeDate,a=this.isVisible(),h=false;if(!n&&f){if(f.getMonth()==c.getMonth()&&f.getFullYear()==c.getFullYear()){h=true}}this.callParent(arguments);if(!this.rendered){return}var l=c.getTime();this.cells.each(function(i){if(i.dom.firstChild.dateValue==l){if(a&&!this.cancelFocus){Ext.fly(i.dom).focus(50)}return false}},this);if(h&&this.dateIntialized===true){return}var m=this.cells.elements,g=this.textNodes,k=c.getDaysInMonth(),b=c.getFirstDateOfMonth(),e=b.getDay()-this.startDay,j,d;if(e<0){e+=7}k+=e;j=c.getFullYear()+" "+this.monthNames[c.getMonth()];for(d=e;d<k;d++){m[d].setAttribute("aria-label",j+" "+g[d].innerHTML)}this.dateIntialized=true},handleDateSelect:function(b){var a=b.target;if(Ext.fly(a).hasClass("x-date-selected")&&a.firstChild&&a.firstChild.dateValue){this.setValue(new Date(a.firstChild.dateValue));this.fireEvent("select",this,this.value)}}});Ext.define("SYNO.ux.DateMenu",{extend:Ext.menu.DateMenu,pickerClass:"SYNO.ux.DatePicker"});Ext.ux.form.TimePickerField=function(a){Ext.ux.form.TimePickerField.superclass.constructor.call(this,a)};Ext.extend(Ext.ux.form.TimePickerField,Ext.form.Field,{defaultAutoCreate:{tag:"div"},cls:"x-form-timepickerfield",hoursSpinner:null,minutesSpinner:null,secondsSpinner:null,spinnerCfg:{width:50}
10,spinnerFixBoundries:function(a){if(a<this.field.minValue){a=this.field.maxValue}if(a>this.field.maxValue){a=this.field.minValue}return this.fixPrecision(a)},onRender:function(d,a){Ext.ux.form.TimePickerField.superclass.onRender.call(this,d,a);this.rendered=false;this.date=new Date();var c={};if(this.value){c=this._valueSplit(this.value);this.date.setHours(c.h);this.date.setMinutes(c.m);this.date.setSeconds(c.s);delete this.value}else{c={h:this.date.getHours(),m:this.date.getMinutes(),s:this.date.getSeconds()}}var e=Ext.DomHelper.append(this.innerEl,{tag:"div"});var b=Ext.apply({},this.spinnerCfg,{renderTo:e,readOnly:this.readOnly,disabled:this.disabled,listeners:{spin:{fn:this.onSpinnerChange,scope:this},valid:{fn:this.onSpinnerChange,scope:this},afterrender:{fn:function(f){f.wrap.applyStyles("float: left; margin-right: 11px;")},single:true}}});this.hoursSpinner=new Ext.ux.form.SpinnerField(Ext.apply({},b,{minValue:0,maxValue:23,cls:"first",value:c.h}));this.minutesSpinner=new Ext.ux.form.SpinnerField(Ext.apply({},b,{minValue:0,maxValue:59,value:c.m}));this.secondsSpinner=new Ext.ux.form.SpinnerField(Ext.apply({},b,{minValue:0,maxValue:59,value:c.s}));Ext.DomHelper.append(e,{tag:"div",cls:"x-form-clear-left"});this.rendered=true},_valueSplit:function(a){var b=a.split(":");return{h:b.length>0?b[0]:0,m:b.length>1?b[1]:0,s:b.length>2?b[2]:0}},onSpinnerChange:function(){if(!this.rendered){return}this.fireEvent("change",this,this.getRawValue())},disable:function(){Ext.ux.form.TimePickerField.superclass.disable.call(this);this.hoursSpinner.disable();this.minutesSpinner.disable();this.secondsSpinner.disable()},enable:function(){Ext.ux.form.TimePickerField.superclass.enable.call(this);this.hoursSpinner.enable();this.minutesSpinner.enable();this.secondsSpinner.enable()},setReadOnly:function(a){Ext.ux.form.TimePickerField.superclass.setReadOnly.call(this,a);this.hoursSpinner.setReadOnly(a);this.minutesSpinner.setReadOnly(a);this.secondsSpinner.setReadOnly(a)},clearInvalid:function(){Ext.ux.form.TimePickerField.superclass.clearInvalid.call(this);this.hoursSpinner.clearInvalid();this.minutesSpinner.clearInvalid();this.secondsSpinner.clearInvalid()},getRawValue:function(){if(!this.hoursSpinner){this.date=new Date();return{h:this.date.getHours(),m:this.date.getMinutes(),s:this.date.getSeconds()}}else{return{h:this.hoursSpinner.getValue(),m:this.minutesSpinner.getValue(),s:this.secondsSpinner.getValue()}}},setRawValue:function(a){this.hoursSpinner.setValue(a.h);this.minutesSpinner.setValue(a.m);this.secondsSpinner.setValue(a.s)},isValid:function(a){return this.hoursSpinner.isValid(a)&&this.minutesSpinner.isValid(a)&&this.secondsSpinner.isValid(a)},validate:function(){return this.hoursSpinner.validate()&&this.minutesSpinner.validate()&&this.secondsSpinner.validate()},getValue:function(){var a=this.getRawValue();return String.leftPad(a.h,2,"0")+":"+String.leftPad(a.m,2,"0")+":"+String.leftPad(a.s,2,"0")},setValue:function(a){if(!this.rendered){this.value=a;return}a=this._valueSplit(a);this.setRawValue(a);this.validate()}});Ext.form.TimePickerField=Ext.ux.form.TimePickerField;Ext.reg("timepickerfield",Ext.form.TimePickerField);Ext.ns("Ext.ux.form");Ext.define("Ext.DateTimePicker",{extend:SYNO.ux.DatePicker,timeFormat:"g:i:s A",timeLabel:"time",timeWidth:150,onRender:function(b,a){Ext.DateTimePicker.superclass.onRender.apply(this,arguments);var c=Ext.get(Ext.DomQuery.selectNode("table tbody",b.dom));var d;d=Ext.DomHelper.insertBefore(c.last(),{tag:"tr",children:[{tag:"td",cls:"x-date-bottom",html:this.timeLabel,style:"width:30px;"},{tag:"td",cls:"x-date-bottom ux-timefield",colspan:"2"}]},true);this.tf.render(c.child("td.ux-timefield"))},setValue:function(a){if(!this.tf){this.tf=new Ext.ux.form.TimePickerField();this.tf.ownerCt=this}this.value=this.getDateTime(a)},getDateTime:function(b){if(this.tf){var a=this.tf.getValue();b=Date.parseDate(b.format(this.dateFormat)+" "+a,this.format)}return b},selectToday:function(){if(this.todayBtn&&!this.todayBtn.disabled){this.value=this.getDateTime(new Date());this.fireEvent("select",this,this.value)}}});Ext.reg("datetimepickerfield",Ext.DateTimePicker);Ext.menu.DateTimeItem=Ext.DateTimePicker;Ext.menu.DateTimeMenu=function(a){Ext.menu.DateTimeMenu.superclass.constructor.call(this,a);this.plain=true;var b=new Ext.menu.DateTimeItem(Ext.apply({internalRender:true}),a);this.add(b);this.picker=b;this.relayEvents(b,["select"]);this.on("beforeshow",function(){if(this.picker){this.picker.hideMonthPicker(true)}},this)};Ext.extend(Ext.menu.DateTimeMenu,Ext.menu.Menu,{cls:"x-date-menu",beforeDestroy:function(){this.picker.destroy()}
10,hide:function(a){if(this.picker.tf.innerList){if((Ext.EventObject.within(this.picker.tf.innerList))||(Ext.get(Ext.EventObject.getTarget())==this.picker.tf.innerList)){return false}}if(this.el&&this.isVisible()){this.fireEvent("beforehide",this);if(this.activeItem){this.activeItem.deactivate();this.activeItem=null}this.el.hide();this.hidden=true;this.fireEvent("hide",this)}if(a===true&&this.parentMenu){this.parentMenu.hide(true)}}});Ext.ux.form.DateTimeField=Ext.extend(Ext.form.DateField,{dateFormat:"Y-m-d",timeFormat:"H:i:s",defaultAutoCreate:{tag:"input",type:"text",size:"20",autocomplete:"off"},initComponent:function(){Ext.ux.form.DateTimeField.superclass.initComponent.call(this);this.format=this.dateFormat+" "+this.timeFormat;this.afterMethod("afterRender",function(){this.getEl().applyStyles("top:0")})},getValue:function(){return this.parseDate(Ext.form.DateField.superclass.getValue.call(this))||""},onTriggerClick:function(){if(this.disabled){return}if(Ext.isEmpty(this.menu)){this.menu=new Ext.menu.DateTimeMenu()}Ext.apply(this.menu.picker,{minDate:this.minValue,maxDate:this.maxValue,disabledDatesRE:this.ddMatch,disabledDatesText:this.disabledDatesText,disabledDays:this.disabledDays,disabledDaysText:this.disabledDaysText,format:this.format,timeFormat:this.timeFormat,dateFormat:this.dateFormat,showToday:this.showToday,minText:String.format(this.minText,this.formatDate(this.minValue)),maxText:String.format(this.maxText,this.formatDate(this.maxValue))});if(this.menuEvents){this.menuEvents("on")}else{this.menu.on(Ext.apply({},this.menuListeners,{scope:this}))}this.menu.picker.setValue(this.getValue()||new Date());this.menu.show(this.el,"tl-bl?")}});Ext.reg("datetimefield",Ext.ux.form.DateTimeField);Ext.define("SYNO.ux.GridPanel",{extend:"Ext.grid.GridPanel",border:false,header:false,useARIA:true,useNewStyle:true,constructor:function(a){if(this.useARIA){a=this.addPlugins(SYNO.ux.GridPanelARIA,a)}var c,b;if(Ext.isArray(a.plugins)){Ext.each(a.plugins,function(f,e){if(f instanceof SYNO.ux.plugin.StyledGrid){b=e;return}if(f instanceof SYNO.ux.plugin.GroupHeaderGrid){c=e;return}})}if(Ext.isNumber(c)){if(!Ext.isNumber(b)){a=this.insertPlugins(new SYNO.ux.plugin.StyledGrid(),a,0)}else{if(b>c){var d=a.plugins.splice(b,1)[0];a=this.insertPlugins(d,a,0)}}}else{if(!Ext.isNumber(b)&&(a.useNewStyle||this.useNewStyle)){a=this.insertPlugins(new SYNO.ux.plugin.StyledGrid(),a,0)}}SYNO.ux.GridPanel.superclass.constructor.call(this,a);this.addClass("syno-ux-gridpanel")},getView:function(){var a=this;if(!a.view){a.view=new SYNO.ux.FleXcroll.grid.GridView(a.viewConfig)}return a.view},afterRender:function(){SYNO.ux.GridPanel.superclass.afterRender.call(this);var b=Ext.getCmp(this.id+"-hctx");var a=Ext.getCmp(this.id+"-hcols-menu");if(b){b.addClass("syno-ux-grid-hd-menu")}if(a){a.addClass("syno-ux-grid-hd-menu")}},reconfigure:function(){this.fireEvent("beforereconfigure");SYNO.ux.GridPanel.superclass.reconfigure.apply(this,arguments)},mask:function(a){this.el.mask(a,"syno-ux-grid-mask-info");this.view.focusEl.set({tabIndex:-1});this.view.setHeaderFocusTabbable(false)},unmask:function(){this.el.unmask();this.view.focusEl.set({tabIndex:0});this.view.setHeaderFocusTabbable(true)},getAriaEl:function(){return this.view.focusEl}});Ext.reg("syno_gridpanel",SYNO.ux.GridPanel);Ext.ns("Ext.ux.grid");
10Ext.ux.grid.CellActions=function(a){Ext.apply(this,a);this.addEvents("action","beforeaction");Ext.ux.grid.CellActions.superclass.constructor.call(this)};Ext.extend(Ext.ux.grid.CellActions,Ext.util.Observable,{actionEvent:"click",actionWidth:20,tpl:'<div class="ux-cell-value" style="padding-left:{padding}px"><tpl if="\'left\'!==align">{value}</tpl><div class="ux-cell-actions<tpl if="\'left\'===align"> ux-cell-actions-left</tpl>" style="width:{width}px"><tpl for="actions"><div class="ux-cell-action {cls}" qtip="{qtip}" style="{style}">&#160;</div></tpl></div><tpl if="\'left\'===align">{value}</tpl></div>',userProcessing:Ext.emptyFn,init:function(b){this.grid=b;b.afterRender=b.afterRender.createSequence(this.onRenderGrid,this);var a=this.grid.getColumnModel();Ext.each(a.config,function(e,d){if("object"===typeof e.cellActions){e.origRenderer=a.getRenderer(d);e.renderer=this.renderActions.createDelegate(this)}},this)},onRenderGrid:function(){this.view=this.grid.getView();var a={scope:this};a[this.actionEvent]=this.onClick;this.view.mainBody.on(a)},getData:function(e,a,b,f,d,c){return b.data||{}},renderActions:function(g,i,e,j,b,h){var f=this.grid.getColumnModel().config[b];var a=f.origRenderer(g,i,e,j,b,h);if(f.cellActions&&!f.actionsTpl){f.actionsTpl=this.processActions(f);f.actionsTpl.compile()}else{if(!f.cellActions){return a}}var d=this.getData.apply(this,arguments);d.value=a;d.additionalCls=this.getAdditionalCls(e);return f.actionsTpl.apply(d)},getAdditionalCls:function(a){return""},processActions:function(d){this.callbacks=this.callbacks||{};var b={align:this.align||"right",width:this.actionWidth*d.cellActions.length,padding:"left"===this.align?this.actionWidth*d.cellActions.length:0,value:"{value}",actions:[]};Ext.each(d.cellActions,function(c,e){if(c.iconCls&&"function"===typeof(c.callback||c.cb)){this.callbacks[c.iconCls]=c.callback||c.cb}var f={cls:c.iconIndex?"{"+c.iconIndex+"}":(c.iconCls?c.iconCls:""),qtip:c.qtipIndex?"{"+c.qtipIndex+"}":(c.tooltip||c.qtip?c.tooltip||c.qtip:""),style:c.style?c.style:""};f.cls+=" {additionalCls}";b.actions.push(f)},this);this.userProcessing(d,b);var a=new Ext.XTemplate(this.tpl);return new Ext.Template(a.apply(b))},onClick:function(f,g){var k=f.getTarget("div.ux-cell-action");var l=f.getTarget(".x-grid3-row");var a=this.view.findCellIndex(g.parentNode.parentNode);var h=this.grid.getColumnModel().config[a];var d,i,j,b;if(k){d=this.grid.store.getAt(l.rowIndex);i=h.dataIndex;j=d.get(i);b=k.className.replace(/ux-cell-action /,"")}if(false!==l&&false!==a&&d&&i&&b){if(this.callbacks&&"function"===typeof this.callbacks[b]){this.callbacks[b](this.grid,d,b,j,i,l.rowIndex,a)}if(true!==this.eventsSuspended&&false===this.fireEvent("beforeaction",this.grid,d,b,j,i,l.rowIndex,a)){return}else{if(true!==this.eventsSuspended){this.fireEvent("action",this.grid,d,b,j,i,l.rowIndex,a)}}}}});Ext.reg("cellactions",Ext.ux.grid.CellActions);
11/*
12 * Ext JS Library 3.2.1
13 * Copyright(c) 2006-2010 Ext JS, Inc.
14 * [email protected]
15 * http://www.extjs.com/license
16 */
17Ext.DataView.LabelEditor=Ext.extend(Ext.Editor,{alignment:"tl-tl",hideEl:false,cls:"x-small-editor",shim:false,completeOnEnter:true,cancelOnEsc:true,labelSelector:"span.x-editable",constructor:function(a,b){Ext.DataView.LabelEditor.superclass.constructor.call(this,b||new Ext.form.TextField({allowBlank:false,growMin:90,growMax:240,grow:true,selectOnFocus:true}),a)},init:function(a){this.view=a;a.on("render",this.initEditor,this);this.on("complete",this.onSave,this)},initEditor:function(){this.view.on({scope:this,containerclick:this.doBlur,click:this.doBlur});this.view.getEl().on("mousedown",this.onMouseDown,this,{delegate:this.labelSelector})},doBlur:function(){if(this.editing){this.field.blur()}},onMouseDown:function(d,c){if(!d.ctrlKey&&!d.shiftKey){var b=this.view.findItemFromChild(c);d.stopEvent();var a=this.view.store.getAt(this.view.indexOf(b));this.startEdit(c,a.data[this.dataIndex]);this.activeRecord=a}else{d.preventDefault()}},onSave:function(a,b){this.activeRecord.set(this.dataIndex,b)}});Ext.DataView.DragSelector=function(f){f=f||{};var i,h,k;var d,j,l=new Ext.lib.Region(0,0,0,0);var b=f.dragSafe===true;this.init=function(p){i=p;i.on("render",o)};function m(){d=[];i.all.each(function(p){d[d.length]=p.getRegion()});j=i.el.getRegion()}function e(){return false}function g(p){return !b||p.target==i.el.dom}function n(p){i.on("containerclick",e,i,{single:true});if(!h){h=i.el.createChild({cls:"x-view-selector"})}else{if(h.dom.parentNode!==i.el.dom){i.el.dom.appendChild(h.dom)}h.setDisplayed("block")}m();i.clearSelections()}function c(v){var z=k.startXY;var D=k.getXY();var B=Math.min(z[0],D[0]);var A=Math.min(z[1],D[1]);var C=Math.abs(z[0]-D[0]);var t=Math.abs(z[1]-D[1]);l.left=B;l.top=A;l.right=B+C;l.bottom=A+t;l.constrainTo(j);h.setRegion(l);for(var s=0,u=d.length;s<u;s++){var p=d[s],q=l.intersect(p);if(q&&!p.selected){p.selected=true;i.select(s,true)}else{if(!q&&p.selected){p.selected=false;i.deselect(s)}}}}function a(p){if(!Ext.isIE){i.un("containerclick",e,i)}if(h){h.setDisplayed(false)}}function o(p){k=new Ext.dd.DragTracker({onBeforeStart:g,onStart:n,onDrag:c,onEnd:a});k.initEl(p.el)}};Ext.layout.FloatLayout=Ext.extend(Ext.layout.BoxLayout,{verticalAlign:"middle",horizontalAlign:"left",horizontalSpacing:0,verticalSpacing:0,targetCls:"ux-float-layout-ct",updateChildBoxes:function(a){for(var d=0,c=a.length;d<c;d++){if(this.animate){Ext.lib.Anim.motion(a[d].component.getPositionEl().dom,{left
17:{to:a[d].left},top:{to:a[d].top}}).animate()}else{a[d].component.setPosition([a[d].left,a[d].top])}}},calculateChildBoxes:function(){var d=this.container,o=d.getLayoutTarget(),B=this.padding.left+o.getPadding("l"),z=this.padding.top+o.getPadding("t"),n=o.getStyleSize(),b=(n.width-=(this.padding.right+o.getPadding("r"))),h=n.height-(this.padding.bottom+o.getPadding("b")),g=0,a=0,w=0,k=B,j=z,q=this.getRenderedItems(d),u=q.length,v,A,e,t,p,f=[];o.setStyle("overflow-x","hidden");n.width-=B;for(v=0,u=q.length;v<u;v++){A=q[v];e=A.getSize();e.width+=A.getPositionEl().getMargins("lr");e.height+=A.getPositionEl().getMargins("tb");t=A.margins;p=k+t.left+e.width+t.right;if(A.hidden===true){continue}if((p>b)||(A.clear=="left")||((v>0)&&q[v-1].clear=="right")){this.adjustRow(f,g,v-1,a,w,n.width);k=B;j+=a+this.verticalSpacing;p=k+t.left+e.width+t.right;g=v;a=0;w=0}a=Math.max(a,e.height);w+=e.width;if(d.autoScroll&&!this.reflow&&((j+a)>h)){p=this.padding.right;this.padding.right+=Ext.getScrollBarWidth();this.reflow=true;this.onLayout(d,o);delete this.reflow;this.padding.right=p;return this.childBoxCache}f.push({component:A,left:k,top:j,height:e.height,width:e.width});k=p+this.horizontalSpacing}this.adjustRow(f,g,v-1,a,w,n.width);if(!this.sizer){this.sizer=this.innerCt.insertFirst({cls:"ux-float-layout-sizer"})}this.sizer.setHeight(j+a-z);return{boxes:f,meta:{}}},adjustRow:function(n,e,p,b,f,o){var k,q,m,g=0,a=o-f,d=p-e,l=0;switch(this.horizontalAlign){case"middle":case"center":l=Math.max(a/2,0);break;case"right":l=Math.max(a,0);break;case"justify":if(d){g=Math.max(a/d,0)}}for(k=e;k<=p;k++){q=n[k].component;m=q.getHeight()+q.getPositionEl().getMargins("tb");n[k].left+=l;l+=g;switch(q.verticalAlign||this.verticalAlign){case"middle":case"center":n[k].top+=(b-m)/2;break;case"bottom":n[k].top+=(b-m)}}}});Ext.Container.LAYOUTS["float"]=Ext.layout.FloatLayout;Ext.define("SYNO.ux.FloatLayout",{extend:"Ext.layout.FloatLayout",animateCls:"ux-float-layout-ct-animate",horizontalAlign:"left",updateChildBoxes:function(a){for(var d=0,c=a.length;d<c;d++){if(this.animate&&this.forceJSAnimate){Ext.lib.Anim.motion(a[d].component.getPositionEl().dom,{left:{to:a[d].left},top:{to:a[d].top}}).animate();continue}if(this.animate){this.container.getLayoutTarget().addClass(this.animateCls)}else{this.container.getLayoutTarget().removeClass(this.animateCls)}a[d].component.setPosition([a[d].left,a[d].top])}},calculateChildBoxes:function(){var d=this.container,p=d.getLayoutTarget(),F=this.padding.left+p.getPadding("l"),C=this.padding.top+p.getPadding("t"),o=p.getStyleSize(),b=(o.width-=this.padding.right),h=o.height-this.padding.bottom,g=0,a=0,B=0,D=0,n=F,k=C,t=this.getRenderedItems(d),w=t.length,A,E,e,v,q,f=[],u;p.setStyle("overflow-x","hidden");o.width-=F;this.adjustRowAlignmentIncrement=undefined;for(A=0,w=t.length;A<w;A++){E=t[A];e=E.getSize();e.width+=E.getPositionEl().getMargins("lr");e.height+=E.getPositionEl().getMargins("tb");v=E.margins;q=n+v.left+e.width+v.right;if((q>b)||(E.clear=="left")||((A>0)&&t[A-1].clear=="right")){this.adjustRow(f,g,A-1,a,B-this.horizontalSpacing,o.width);n=F;k+=a+this.verticalSpacing;q=n+v.left+e.width+v.right;g=A;a=0;B=0;D++}a=Math.max(a,e.height);B+=e.width+this.horizontalSpacing;if(d.autoScroll&&!this.reflow&&((k+a)>h)){q=this.padding.right;this.padding.right+=Ext.getScrollBarWidth();this.reflow=true;this.onLayout(d,p);delete this.reflow;this.padding.right=q;return this.childBoxCache}u=0;if(D>0&&this.tightFitting){for(var z=0;z<A;z++){if(f[z].row==(D-1)){if((f[z].left<=(n+e.width))&&((f[z].left+f[z].width)>=n)){if(u<f[z].height){u=f[z].height;k=f[z].top+f[z].height+this.verticalSpacing}}}}}f.push({component:E,left:n,top:k,height:e.height,width:e.width,row:D});n=q+this.horizontalSpacing}this.adjustRow(f,g,A-1,a,B-this.horizontalSpacing,o.width);if(!this.sizer){this.sizer=this.innerCt.insertFirst({cls:"ux-float-layout-sizer"})}this.sizer.setHeight(k+a-C);return{boxes:f,meta:{}}},adjustRow:function(n,e,p,b,f,o){var k,q,m,g=0,a=o-f,d=p-e,l=0;switch(this.horizontalAlign){case"syno-center":this.adjustRowAlignmentIncrement=(this.adjustRowAlignmentIncrement?Math.min(this.adjustRowAlignmentIncrement,Math.max(a/2,0)):Math.max(a/2,0));break;case"middle":case"center":l=Math.max(a/2,0);break;case"right":l=Math.max(a,0);break;case"justify":if(d){g=Math.max(a/d,0)}}for(k=e;k<=p;k++){q=n[k].component;m=q.getHeight()+q.getPositionEl().getMargins("tb");n[k].left+=l;l+=g;switch(q.verticalAlign||this.verticalAlign){case"middle":case"center":n[k].top+=(b-m)/2;break;case"bottom":n[k].top+=(b-m)}}if(this.horizontalAlign!=="syno-center"||p!==(this.getRenderedItems(this.container).length-1)){return}l=this.adjustRowAlignmentIncrement;for(k=0;k<=p;k++){q=n[k].component;n[k].left+=l}}});Ext.Container.LAYOUTS.syno_float=SYNO.ux.FloatLayout;Ext.ns("Ext.ux.data");Ext.ux.data.PagingStore=Ext.extend(Ext.data.Store,{add:function(b){b=[].concat(b);if(b.length<1){return}for(var d=0,a=b.length;d<a;d++){b[d].join(this)}var c=this.data.length;this.data.addAll(b);if(this.allData){this.allData.addAll(b)}if(this.snapshot){this.snapshot.addAll(b)}this.totalLength+=b.length;this.fireEvent("add",this,b,c)}
17,remove:function(a){if(Ext.isArray(a)){Ext.each(a,function(c){this.remove(c)},this);return}if(this!=a.store){return}a.join(null);var b=this.data.indexOf(a);if(b>-1){this.data.removeAt(b)}if(this.pruneModifiedRecords){this.modified.remove(a)}if(this.allData){this.allData.remove(a)}if(this.snapshot){this.snapshot.remove(a)}this.totalLength--;if(b>-1){this.fireEvent("remove",this,a,b)}},removeAll:function(b){var a=[].concat((this.snapshot||this.allData||this.data).items);this.clearData();if(this.pruneModifiedRecords){this.modified=[]}this.totalLength=0;if(b!==true){this.fireEvent("clear",this,a)}},insert:function(c,b){b=[].concat(b);for(var d=0,a=b.length;d<a;d++){this.data.insert(c,b[d]);b[d].join(this)}if(this.allData){this.allData.addAll(b)}if(this.snapshot){this.snapshot.addAll(b)}this.totalLength+=b.length;this.fireEvent("add",this,b,c)},getById:function(a){return(this.snapshot||this.allData||this.data).key(a)},clearData:function(){if(this.allData){this.data=this.allData;delete this.allData}if(this.snapshot){this.data=this.snapshot;delete this.snapshot}this.data.each(function(a){a.join(null)});this.data.clear()},execute:function(e,a,c,b){if(!Ext.data.Api.isAction(e)){throw new Ext.data.Api.Error("execute",e)}c=Ext.applyIf(c||{},{params:{}});if(b!==undefined){this.addToBatch(b)}var d=true;if(e==="read"){d=this.fireEvent("beforeload",this,c);Ext.applyIf(c.params,this.baseParams)}else{if(this.writer.listful===true&&this.restful!==true){a=(Ext.isArray(a))?a:[a]}else{if(Ext.isArray(a)&&a.length==1){a=a.shift()}}if((d=this.fireEvent("beforewrite",this,e,a,c))!==false){this.writer.apply(c.params,this.baseParams,e,a)}}if(d!==false){if(this.writer&&this.proxy.url&&!this.proxy.restful&&!Ext.data.Api.hasUniqueUrl(this.proxy,e)){c.params.xaction=e}if(e==="read"&&this.isPaging(Ext.apply({},c.params))){(function(){if(this.allData){this.data=this.allData;delete this.allData}this.applyPaging();this.fireEvent("datachanged",this);var f=[].concat(this.data.items);this.fireEvent("load",this,f,c);if(c.callback){c.callback.call(c.scope||this,f,c,true)}}).defer(1,this);return true}this.proxy.request(Ext.data.Api.actions[e],a,c.params,this.reader,this.createCallback(e,a,b),this,c)}return d},loadRecords:function(g,b,f){if(this.isDestroyed===true){return}if(!g||f===false){if(f!==false){this.fireEvent("load",this,[],b)}if(b.callback){b.callback.call(b.scope||this,[],b,false,g)}return}var e=g.records,d=g.totalRecords||e.length;if(!b||b.add!==true){if(this.pruneModifiedRecords){this.modified=[]}for(var c=0,a=e.length;c<a;c++){e[c].join(this)}this.clearData();this.data.addAll(e);this.totalLength=d;this.applySort();if(!this.allData){this.applyPaging()}if(e.length>this.getCount()){e=[].concat(this.data.items)}this.fireEvent("datachanged",this)}else{this.totalLength=Math.max(d,this.data.length+e.length);this.add(e)}this.fireEvent("load",this,e,b);if(b.callback){b.callback.call(b.scope||this,e,b,true)}},loadData:function(c,a){this.isPaging(Ext.apply({},this.lastOptions?this.lastOptions.params:null,this.baseParams));var b=this.reader.readRecords(c);this.loadRecords(b,{add:a,params:{start:this.start,limit:this.limit}},true)},getTotalCount:function(){if(this.allData){return this.allData.getCount()}return this.totalLength||0},sortData:function(){var a=this.hasMultiSort?this.multiSortInfo:this.sortInfo,h=a.direction||"ASC",g=a.sorters,c=[];if(!this.hasMultiSort){g=[{direction:h,field:a.field}]}for(var d=0,b=g.length;d<b;d++){c.push(this.createSortFunction(g[d].field,g[d].direction))}if(!c.length){return}var f=h.toUpperCase()=="DESC"?-1:1;var e=function(m,l){var k=c[0].call(this,m,l);if(c.length>1){for(var o=1,n=c.length;o<n;o++){k=k||c[o].call(this,m,l)}}return f*k};if(this.allData){this.data=this.allData;delete this.allData}this.data.sort(h,e);if(this.snapshot&&this.snapshot!=this.data){this.snapshot.sort(h,e)}this.applyPaging()},filterBy:function(b,a){this.snapshot=this.snapshot||this.allData||this.data;this.data=this.queryBy(b,a||this);this.applyPaging();this.fireEvent("datachanged",this)},clearFilter:function(a){if(this.isFiltered()){this.data=this.snapshot;delete this.snapshot;delete this.allData;this.applyPaging();if(a!==true){this.fireEvent("datachanged",this)}}},isFiltered:function(){return !!this.snapshot&&this.snapshot!=(this.allData||this.data)},queryBy:function(b,a){var c=this.snapshot||this.allData||this.data;return c.filterBy(b,a||this)},collect:function(h,j,b){var g=(b===true?this.snapshot||this.allData||this.data:this.data).items;var k,m,a=[],c={};for(var e=0,f=g.length;e<f;e++){k=g[e].data[h];m=String(k);if((j||!Ext.isEmpty(k))&&!c[m]){c[m]=true;a[a.length]=k}}return a},findInsertIndex:function(a){this.suspendEvents();var c=this.data.clone();this.data.add(a);this.applySort();var b=this.data.indexOf(a);this.data=c;this.totalLength--;this.resumeEvents();return b},isPaging:function(e){var b=this.paramNames,f=e[b.start],a=e[b.limit];if((typeof f!="number")||(typeof a!="number")){delete this.start;delete this.limit;this.lastParams=e;return false}this.start=f;this.limit=a;delete e[b.start];delete e[b.limit];var c=this.lastParams;this.lastParams=e;if(!this.proxy){return true}if(!c){return false}for(var d in e){if(e.hasOwnProperty(d)&&(e[d]!==c[d])){return false}}for(d in c){if(c.hasOwnProperty(d)&&(e[d]!==c[d])){return false}}return true},applyPaging:function(){var h=this.start,b=this.limit;if((typeof h=="number")&&(typeof b=="number")){var e=this.data,f=new Ext.util.MixedCollection(e.allowFunctions,e.getKey);f.items=e.items.slice(h,h+b);f.keys=e.keys.slice(h,h+b);f.length=f.items.length;var a=f.length;var g={};for(var c=0;c<a;c++){var d=f.items[c];g[f.getKey(d)]=d}f.map=g;this.allData=e;this.data=f}}});Ext.ux.data.PagingDirectStore=Ext.extend(Ext.ux.data.PagingStore,{constructor:function(){Ext.data.DirectStore.prototype.constructor.apply(this,arguments)}});Ext.reg("pagingdirectstore",Ext.ux.data.PagingDirectStore);Ext.ux.data.PagingJsonStore=Ext.extend(Ext.ux.data.PagingStore,{constructor:function(){Ext.data.JsonStore.prototype.constructor.apply(this,arguments)}});Ext.reg("pagingjsonstore",Ext.ux.data.PagingJsonStore);Ext.ux.data.PagingXmlStore=Ext.extend(Ext.ux.data.PagingStore,{constructor:function(){Ext.data.XmlStore.prototype.constructo.apply(this,arguments)}});Ext.reg("pagingxmlstore",Ext.ux.data.PagingXmlStore);Ext.ux.data.PagingArrayStore=Ext.extend(Ext.ux.data.PagingStore,{constructor:function(){Ext.data.ArrayStore.prototype.constructor.apply(this,arguments)}
17,loadData:function(e,b){if(this.expandData===true){var d=[];for(var c=0,a=e.length;c<a;c++){d[d.length]=[e[c]]}e=d}Ext.ux.data.PagingArrayStore.superclass.loadData.call(this,e,b)}});Ext.reg("pagingarraystore",Ext.ux.data.PagingArrayStore);Ext.ux.data.PagingSimpleStore=Ext.ux.data.PagingArrayStore;Ext.reg("pagingsimplestore",Ext.ux.data.PagingSimpleStore);Ext.ux.PagingToolbar=Ext.extend(Ext.PagingToolbar,{onLoad:function(a,b,d){if(!this.rendered){this.dsLoaded=[a,b,d];return}var c=this.getParams();this.cursor=(d.params&&d.params[c.start])?d.params[c.start]:0;this.onChange()},onChange:function(){var b=this.store.getTotalCount(),c=this.pageSize;if(this.cursor>=b&&!(0===this.cursor&&0===b)){this.cursor=Math.floor((b-1)/c)*c;if(0>this.cursor){this.cursor=0}this.doRefresh();return}var f=this.getPageData(),a=f.activePage,e=f.pages;this.afterTextItem.setText(String.format(this.afterPageText,f.pages));this.inputItem.setValue(a);this.first.setDisabled(a==1);this.prev.setDisabled(a==1);this.next.setDisabled(a==e);this.last.setDisabled(a==e);this.refresh.enable();this.updateInfo();this.fireEvent("change",this,f)},onClear:function(){this.cursor=0;this.onChange()},doRefresh:function(){delete this.store.lastParams;this.doLoad(this.cursor)},bindStore:function(b,c){var a;if(!c&&this.store){if(b!==this.store&&this.store.autoDestroy){this.store.destroy()}else{this.store.un("beforeload",this.beforeLoad,this);this.store.un("load",this.onLoad,this);this.store.un("exception",this.onLoadError,this);this.store.un("datachanged",this.onChange,this);this.store.un("add",this.onChange,this);this.store.un("remove",this.onChange,this);this.store.un("clear",this.onClear,this)}if(!b){this.store=null}}if(b){b=Ext.StoreMgr.lookup(b);b.on({scope:this,beforeload:this.beforeLoad,load:this.onLoad,exception:this.onLoadError,datachanged:this.onChange,add:this.onChange,remove:this.onChange,clear:this.onClear});a=true}this.store=b;if(a){this.onLoad(b,null,{})}}});Ext.reg("ux.paging",Ext.ux.PagingToolbar);
18/*
19 * Ext JS Library 3.2.1
20 * Copyright(c) 2006-2010 Ext JS, Inc.
21 * [email protected]
22 * http://www.extjs.com/license
23 */
24Ext.ns("Ext.ux.grid");
24Ext.ux.grid.RowExpander=Ext.extend(Ext.util.Observable,{expandOnEnter:true,expandOnDblClick:true,header:"",width:20,sortable:false,fixed:true,hideable:false,menuDisabled:true,dataIndex:"",id:"expander",lazyRender:true,enableCaching:true,updateScrollBarEventNames:["afterlayout","resize","expand","collapse"],constructor:function(a){Ext.apply(this,a);this.addEvents({beforeexpand:true,expand:true,beforecollapse:true,collapse:true});Ext.ux.grid.RowExpander.superclass.constructor.call(this);if(this.tpl){if(typeof this.tpl=="string"){this.tpl=new Ext.Template(this.tpl)}this.tpl.compile()}this.state={};this.bodyContent={}},getRowClass:function(a,e,d,c){var b=this.bodyContent[a.id];if(!b&&!this.lazyRender){b=this.getBodyContent(a,e)}if(b){d.body=b}return this.state[a.id]?"x-grid3-row-expanded":"x-grid3-row-collapsed"},init:function(b){this.grid=b;var a=b.getView();a.getRowClass=this.getRowClass.createDelegate(this);a.enableRowBody=true;b.on("render",this.onRender,this);b.on("destroy",this.onDestroy,this)},onRender:function(){var a=this.grid;var b=a.getView().mainBody;b.on("mousedown",this.onMouseDown,this,{delegate:".x-grid3-row-expander"});if(this.expandOnEnter){this.keyNav=new Ext.KeyNav(this.grid.getGridEl(),{enter:this.onEnter,scope:this})}if(this.expandOnDblClick){a.on("rowdblclick",this.onRowDblClick,this)}Ext.each(this.updateScrollBarEventNames,function(c){this.on(c,this.updateGridFlexcroll,this)},this)},updateGridFlexcroll:function(){if(this.grid&&this.grid.view){this.grid.view.updateScroller()}},onDestroy:function(){if(this.keyNav){this.keyNav.disable();delete this.keyNav}Ext.each(this.updateScrollBarEventNames,function(b){this.un(b,this.updateGridFlexcroll,this)},this);var a=this.grid.getView().mainBody;if(a){a.un("mousedown",this.onMouseDown,this)}},onRowDblClick:function(a,b,c){this.toggleRow(b)},onEnter:function(h){var f=this.grid;var j=f.getSelectionModel();var b=j.getSelections();for(var c=0,a=b.length;c<a;c++){var d=f.getStore().indexOf(b[c]);this.toggleRow(d)}},getBodyContent:function(a,b){if(!this.enableCaching){return this.tpl.apply(a.data)}var c=this.bodyContent[a.id];if(!c){c=this.tpl.apply(a.data);this.bodyContent[a.id]=c}return c},onMouseDown:function(b,a){b.stopEvent();var c=b.getTarget(".x-grid3-row");this.toggleRow(c)},renderer:function(b,c,a){return'<div class="x-grid3-row-expander">&#160;</div>'},beforeExpand:function(b,a,c){if(this.fireEvent("beforeexpand",this,b,a,c)!==false){if(this.tpl&&this.lazyRender){a.innerHTML=this.getBodyContent(b,c)}return true}else{return false}},toggleRow:function(a){if(typeof a=="number"){a=this.grid.view.getRow(a)}this[Ext.fly(a).hasClass("x-grid3-row-collapsed")?"expandRow":"collapseRow"](a)},expandRow:function(c){if(typeof c=="number"){c=this.grid.view.getRow(c)}var b=this.grid.store.getAt(c.rowIndex);var a=Ext.DomQuery.selectNode("tr:nth(2) div.x-grid3-row-body",c);if(this.beforeExpand(b,a,c.rowIndex)){this.state[b.id]=true;Ext.fly(c).replaceClass("x-grid3-row-collapsed","x-grid3-row-expanded");this.fireEvent("expand",this,b,a,c.rowIndex)}},collapseRow:function(c){if(typeof c=="number"){c=this.grid.view.getRow(c)}var b=this.grid.store.getAt(c.rowIndex);var a=Ext.fly(c).child("tr:nth(1) div.x-grid3-row-body",true);if(this.fireEvent("beforecollapse",this,b,a,c.rowIndex)!==false){this.state[b.id]=false;Ext.fly(c).replaceClass("x-grid3-row-expanded","x-grid3-row-collapsed");this.fireEvent("collapse",this,b,a,c.rowIndex)}}});Ext.preg("rowexpander",Ext.ux.grid.RowExpander);Ext.grid.RowExpander=Ext.ux.grid.RowExpander;
25/*
26 * Ext JS Library 3.2.0
27 * Copyright(c) 2006-2010 Ext JS, Inc.
28 * [email protected]
29 * http://www.extjs.com/license
30 */
31Ext.ux.StatusBar=Ext.extend(Ext.Toolbar,{cls:"x-statusbar",busyIconCls:"x-status-busy",busyText:"Loading...",autoClear:5000,emptyText:"&nbsp;",activeThreadId:0,clearThreadId:0,fixRightTr:true,initComponent:function(){if(this.statusAlign=="right"){this.cls+=" x-status-right"}Ext.ux.StatusBar.superclass.initComponent.call(this)},afterRender:function(){Ext.ux.StatusBar.superclass.afterRender.call(this);var a=this.statusAlign=="right";this.currIconCls=this.iconCls||this.defaultIconCls;this.statusEl=new Ext.Toolbar.TextItem({cls:"x-status-text "+(this.currIconCls||""),text:this.text||this.defaultText||""});if(a){this.add("->");this.add(this.statusEl)}else{this.insert(0,this.statusEl);this.insert(1,"->")}this.doLayout();this.statusEl.el.set({role:"log","aria-live":"assertive","aria-relevant":"all"});if(this.fixRightTr){this.updateStatusMaxWidth();this.mon(this,"afterlayout",this.updateStatusMaxWidth,this)}},setStatusElTip:function(b){var a=this.statusEl.el.dom;if(a.setAttributeNS){a.setAttributeNS("ext","qtip",b)}else{a.setAttribute("ext:qtip",b)}},updateStatusMaxWidth:function(){var c=this.el,b=c.child(".x-toolbar-right"),a=c.child(".x-toolbar-left"),e=(a)?a.child(".x-toolbar-cell"):null,d=c.getWidth()-c.getPadding("lr")-((b)?b.getWidth():0)-((e)?e.getPadding("lr"):0)-this.statusEl.el.getPadding("lr");this.statusEl.el.setStyle("max-width","none");this.setStatusElTip("");if(this.statusEl.el.getWidth()>d){this.setStatusElTip(this.statusEl.el.dom.innerHTML);this.statusEl.el.setStyle("max-width",d+"px")}},autoSetDelay:100,setStatus:function(e,a){e=e||{};
31this.activeThreadId++;if(typeof e=="string"){e={text:e}}if(e.text!==undefined){if(a===true){this.setText(e.text,this.activeThreadId)}else{this.setText.defer(this.autoSetDelay,this,[e.text,this.activeThreadId])}}if(e.iconCls!==undefined){if(a===true){this.setIcon(e.iconCls,this.activeThreadId)}else{this.setIcon.defer(this.autoSetDelay,this,[e.iconCls,this.activeThreadId])}}if(e.clear){var f=e.clear,d=this.autoClear,b={useDefaults:true,anim:true};if(typeof f=="object"){f=Ext.applyIf(f,b);if(f.wait){d=f.wait}}else{if(typeof f=="number"){d=f;f=b}else{if(typeof f=="boolean"){f=b}}}f.threadId=this.activeThreadId;if(a){this.clearStatus.defer(d,this,[f])}else{this.clearStatus.defer(d+this.autoSetDelay,this,[f])}}return this},clearStatus:function(c){if(this.isDestroyed){return}c=c||{};if(c.threadId&&c.threadId!==this.activeThreadId){return this}var b=c.useDefaults?this.defaultText:this.emptyText,a=c.useDefaults?(this.defaultIconCls?this.defaultIconCls:""):"";if(c.anim){this.statusEl.el.fadeOut({remove:false,useDisplay:true,scope:this,callback:function(){if(this.isDestroyed){return}this.setStatus({text:b,iconCls:a},true);this.statusEl.el.show()}})}else{this.statusEl.hide();this.setStatus({text:b,iconCls:a},true);this.statusEl.show()}this.activeThreadId--;this.clearThreadId=this.activeThreadId;return this},setText:function(b,a){if(Ext.isDefined(a)){if(a<=this.clearThreadId){return}}if(this.isDestroyed){return}this.text=b||"";if(this.rendered){this.statusEl.setText(this.text);this.updateStatusMaxWidth()}return this},getText:function(){return this.text},setIcon:function(b,a){if(Ext.isDefined(a)){if(a<=this.clearThreadId){return}}if(this.isDestroyed){return}b=b||"";if(this.rendered){if(this.currIconCls){this.statusEl.removeClass(this.currIconCls);this.currIconCls=null}if(b.length>0){this.statusEl.addClass(b);this.currIconCls=b}this.updateStatusMaxWidth()}else{this.currIconCls=b}return this},showBusy:function(a){if(typeof a=="string"){a={text:a}}a=Ext.applyIf(a||{},{text:this.busyText,iconCls:this.busyIconCls});return this.setStatus(a)}});Ext.reg("statusbar",Ext.ux.StatusBar);Ext.define("SYNO.ux.AriaComponent",{extend:"Ext.Component",disabled:false,canInit:function(a){if(!a||a.useARIA!==true||this.disabled||a.isDestroyed){return false}return true},disable:function(){this.callParent(arguments);this.clearMons();this.uninitList=this.uninitList.concat(this.initList);this.initList=[]},enable:function(){this.callParent(arguments);var a,b;for(a=this.uninitList.length-1;a>=0;a--){b=this.uninitList[a];if(this.canInit(b)){this.uninitList.splice(a,1);this.initList.push(b);this.initializeItem(b)}}},bindEvent:function(f,a,e,d,b,c){d=d||this;if(f.mon){f.mon(f,a,e,d,b)}else{if(c.mon){c.mon(f,a,e,d,b)}else{this.mon(f,a,e,d,b);f.ariaMons=f.ariaMons||[];f.ariaMons.push({item:f,evt:a,fn:e,opt:b,scope:d});if(!f.ariaMonned){this.mon(f,"beforedestroy",function g(){Ext.each(f.ariaMons,function(h){this.mun(h.item,h.evt,h.fn,h.scope,h.opt);this.mun(f,"beforedestroy",g,this)},this)},this);f.ariaMonned=true}}}},bindRenderEvent:function(c,b,a){this.bindConditionalEvent(c,"afterrender","rendered",b,a)},bindConditionalEvent:function(d,a,e,c,b){if(e&&d[e]){c.call(b,d)}else{this.bindEvent(d,a,c,b)}},findAndRemove:function(b,c){var a;a=c.indexOf(b);if(a>=0){c.splice(a,1)}return c},removeItem:function(a){this.initList=this.findAndRemove(a,this.initList);this.uninitList=this.findAndRemove(a,this.uninitList)},initializeItem:Ext.emptyFn,constructor:function(){this.uninitList=[];this.initList=[];this.callParent(arguments)},init:function(a){if(this.canInit(a)){this.initList.push(a);this.initializeItem(a)}else{this.uninitList.push(a)}this.bindEvent(a,"beforedestroy",this.removeItem.createDelegate(this,[a]))}});Ext.define("SYNO.ux._ComponentARIA",{extend:"SYNO.ux.AriaComponent",initializeItem:function(a){this.bindRenderEvent(a,this.onAfterRender,this)},onAfterRender:function(c){var b=c.getAriaEl(),d=["tabIndex","tabindex","role","aria-label","disabled"],a={};Ext.each(d,function(e){if(c.hasOwnProperty(e)){a[e]=c[e]}});if(!c.hasOwnProperty("aria-label")&&c.hasOwnProperty("tooltip")&&!Ext.isEmpty(c.tooltip)){a["aria-label"]=c.tooltip}c.getAriaEl().setARIA(a);if(Ext.isFunction(c.initAriaProperties)){c.initAriaProperties()}this.bindEvent(c,"disable",this.onDisable,this);this.bindEvent(c,"enable",this.onEnable,this)},onDisable:function(a){this.setDisabled(a,true)},onEnable:function(a){this.setDisabled(a,false)}
31,setDisabled:function(b,a){b.getAriaEl().setARIA({disabled:a})}});Ext.define("SYNO.ux._ButtonARIA",{extend:"SYNO.ux.AriaComponent",initializeItem:function(a){this.bindRenderEvent(a,this.onBtnAfterRender,this);this.bindEvent(a,"textchanged",this.onBtnTextChanged,this);this.bindEvent(a,"disable",this.onButtonDisabled.createDelegate(this,[a,true]));this.bindEvent(a,"enable",this.onButtonDisabled.createDelegate(this,[a,false]))},onBtnAfterRender:function(c){var b=c.arrowBtnEl||c.btnEl,d=c.text||c.tooltip,a={};if(d){a["aria-label"]=d}if(c.disabled){a["aria-disabled"]=true;if(c.hideDisabledBtn){a.tabIndex=-1}}c.btnEl.set(a);if(c.menu){a["aria-expanded"]=false;a["aria-haspopup"]=true;a["aria-owns"]=c.menu.id;if(Ext.isDefined(c.tabIndex)){a.tabIndex=c.tabIndex}this.bindEvent(c,"menushow",this.onBtnExpanded.createDelegate(this,[c,true]));this.bindEvent(c,"menuhide",this.onBtnExpanded.createDelegate(this,[c,false]))}b.set(a)},onBtnTextChanged:function(a,b){if(!a.el){return}a.btnEl.set({"aria-label":b});if(a.arrowBtnEl){a.arrowBtnEl.set({"aria-label":b})}},onBtnExpanded:function(b,a){if(!b.rendered){return}var c=b.arrowBtnEl||b.btnEl;c.set({"aria-expanded":a})},onButtonDisabled:function(a,c){var b=Ext.isDefined(a.tabIndex)?a.tabIndex:(c)?-1:0;if(!a.rendered){return}if(a.hideDisabledBtn){a.btnEl.set({tabIndex:b})}if(a.arrowBtnEl){a.arrowBtnEl.set({"aria-disabled":c});if(a.hideDisabledBtn){a.arrowBtnEl.set({tabIndex:b})}}}});Ext.define("SYNO.ux._ComboboxARIA",{extend:"SYNO.ux.AriaComponent",initializeItem:function(a){this.bindRenderEvent(a,this.onAfterRender);this.bindConditionalEvent(a,"listInitialized","list",this.onListInitialized,this);this.bindEvent(a,"expand",this.onListExpand.createDelegate(this,[a,true]));this.bindEvent(a,"collapse",this.onListExpand.createDelegate(this,[a,false]))},onAfterRender:function(b){var a=b.el;a.setRole("combobox").setARIAExpanded(false).setARIAHasPopUp(true)},onListInitialized:function(b){var a=b.list;b.el.setARIAOwns(b.list.id);a.setRole("listbox");this.bindEvent(b.view,"selectionchange",this.onSelectedItemChanged.createDelegate(this,[b],true),this,null,b)},onListExpand:function(b,a){b.el.setARIAExpanded(a)},onSelectedItemChanged:function(b,a,c){c.el.setARIAActiveDescendant((a.length>0)?a[0].id:false)}});Ext.define("SYNO.ux._DataViewARIA",{extend:"SYNO.ux.AriaComponent",initializeItem:function(a){this.bindRenderEvent(a,this.onViewRendered);this.bindEvent(a,"afterrender",this.onViewRendered,this);this.bindEvent(a,"selectionchange",this.onSelectionChanged,this)},onViewRendered:function(a){a.el.set({tabIndex:0,role:"listbox","aria-activedescendant":false})},onSelectionChanged:function(b){var c=b.all.elements,a=b.getSelectedNodes(),d=(a.length>0)?a[a.length-1].id:false;b.el.setARIAActiveDescendant(d);Ext.each(c,function(e){Ext.fly(e).setARIASelected(false)});Ext.each(a,function(e){Ext.fly(e).setARIASelected(true)})}});Ext.define("SYNO.ux._GridPanelARIA",{extend:"SYNO.ux.AriaComponent",initializeItem:function(a){this.bindConditionalEvent(a,"viewready","viewReady",this.onViewReady,this)},bindStoreUpdateEvt:function(c){var a=["datachange","add","remove","load","clear"],b;for(b=0;b<a.length;b++){this.bindEvent(c.store,a[b],this.updateCountHint.createDelegate(this,[c],this),this,null,c)}this.bindEvent(c.store,"update",this.onRecordUpdate.createDelegate(this,[c],true),this,{buffer:50},c)},onRecordUpdate:function(b,a,d,c){var f=c.getSelectionModel(),e;
31if(!Ext.isFunction(f.getColIdx)||!f.getSelected()){return}e=f.getActiveEl();c.view.focusEl.setARIA({activedescendant:(e)?e.id:false})},addEmptyHint:function(a){if(!a.view.cntHintEl){a.view.cntHintEl=a.view.focusEl.createChild({tag:"div",id:Ext.id(),cls:"syno-ux-gridpanel-empty-hint",html:_JSLIBSTR("uicommon","empty_grid")})}var c=a.view.cntHintEl.id,b=a.view.focusEl.dom.getAttribute("aria-describedby")||"";if(b.indexOf(c)>=0){return}b+=(" "+c);a.view.focusEl.setARIA({describedby:b})},onViewReady:function(b){var a=b.getView(),c=b.getSelectionModel();a.focusEl.set({role:"grid","aria-activedescendant":false,"aria-readonly":true,tabIndex:"0"});this.addEmptyHint(b);this.bindEvent(c,"rowselect",this.onRowSelected,this,null,b);this.bindEvent(c,"rowdeselect",this.onRowDeselected,this,null,b);if(b.store){this.bindStoreUpdateEvt(b)}this.bindEvent(b,"reconfigure",this.bindStoreUpdateEvt.createDelegate(this,[b]))},updateCountHint:function(b){var a=b.store.getCount();if(!b.view.cntHintEl){return}b.view.cntHintEl.update((a===0)?_JSLIBSTR("uicommon","empty_grid"):String.format(_JSLIBSTR("uicommon","grid_record_count")||"{0} records",a))},setRowSelected:function(f,e,d){var a=f.grid.getView(),b=Ext.fly(a.getRow(e)),c=(b)?b.child("tr"):null;if(c){c.set({"aria-selected":d});if(d){a.focusEl.set({"aria-activedescendant":c.id})}}},onRowSelected:function(c,a,b){this.setRowSelected(c,a,true)},onRowDeselected:function(c,a,b){this.setRowSelected(c,a,false)}});Ext.define("SYNO.ux._MenuARIA",{extend:"SYNO.ux.AriaComponent",initializeItem:function(a){this.bindRenderEvent(a,this.onCompAfterRender,this);this.bindEvent(a,"hide",this.onMenuHide,this);this.bindEvent(a,"itemclick",this.onItemClick,this);this.bindEvent(a,"beforeshow",this.onBeforeMenuShow,this);this.bindEvent(a,"itemactivate",this.onItemActivate,this);this.bindEvent(a,"itemdeactivate",this.onItemDeactivate,this)},onCompAfterRender:function(a){if(!a.rendered){return}a.ul.set({role:"menu",tabIndex:0});a.focusEl.dom.removeAttribute("href");a.focusEl.on("focus",function(){a.ul.focus()})},onItemActivate:function(b,a){b.el.setARIASelected(true)},onItemDeactivate:function(b,a){b.el.setARIASelected(false)},onItemClick:function(b,d,f){if(b.disableClearLastDom===true||b.menu){return}var a=b.parentMenu,c=a;while(c.parentMenu){c.parentMenu.lastDom=null;c=c.parentMenu}a.lastDom=null},onBeforeMenuShow:function(b){var a=document.activeElement;b.lastDom=a;if(b.getOpenPt){b.getOpenPt=null}b.getOpenPt=function(){return a}},onMenuHide:function(a){if(a.lastDom){Ext.fly(a.lastDom).focus(300)}}});Ext.define("SYNO.ux._TreePanelARIA",{extend:"SYNO.ux.AriaComponent",initializeItem:function(a){this.bindRenderEvent(a,this.onAfterRender,this);this.initializeRenderedNode(a);this.bindEvent(a,"noderendered",this.onNodeRender,this);this.bindEvent(a,"collapsenode",this.onNodeCollapse,this);this.bindEvent(a,"expandnode",this.onNodeExpand,this);this.bindEvent(a,"checkchange",this.onNodeCheckChange,this)},onAfterRender:function(b){var d=b.body,a=b.getLoader(),c=(a.baseAttrs&&a.baseAttrs.uiProvider)?a.baseAttrs.uiProvider:null;d.set({role:"tree",tabIndex:0});b.ariaTreeEl=d;b.getSelectionModel().on("selectionchange",this.onNodeSelect,this);b.body.on("focus",this.onFocus.createDelegate(this,[b]));b.ariaTreeEl.addKeyListener(Ext.EventObject.SPACE,this.onKeySpace.createDelegate(this,[b]))},onFocus:function(a){if(document.activeElement!==a.getAriaEl().dom){a.getAriaEl().focus()}},onKeySpace:function(a){var b=a.getSelectionModel().getSelectedNode();if(!b){return}b.ui.toggleCheck()},initializeRenderedNode:function(a){var d,b=a.nodeHash,c;for(d in b){if(b.hasOwnProperty(d)){c=b[d];if(c.rendered){this.onNodeRender(c,a)}}}},onNodeRender:function(d,a){var c=d.ui.wrap,b=d.ui.ctNode,e=d,f=a.rootVisible?1:0;while(e.parentNode){f++;e=e.parentNode}Ext.fly(c).set({role:"treeitem","aria-labelledby":Ext.id(d.ui.textNode),"aria-expanded":d.isLeaf()?false:d.isExpanded(),"aria-selected":false,"aria-checked":d.attributes.checked||false,"aria-level":f});if(!d.isLeaf()){Ext.fly(b).set({role:"group"})}},onNodeSelect:function(c,b){if(Ext.isEmpty(b)){return}var a=c.tree;if(Ext.isObject(b)){b=[b]}Ext.fly(b[0].ui.wrap).set({"aria-selected":true});a.ariaTreeEl.set({"aria-activedescendant":Ext.id(b[0].ui.wrap)})},onNodeCollapse:function(a){Ext.fly(a.ui.wrap).set({"aria-expanded":false})},onNodeExpand:function(a){Ext.fly(a.ui.wrap).set({"aria-expanded":true})},onNodeCheckChange:function(c,b){var a=c.ui.wrap;Ext.fly(a).set({"aria-checked":b})}});Ext.define("SYNO.ux._SliderARIA",{extend:"SYNO.ux.AriaComponent",initializeItem:function(a){this.bindRenderEvent(a,this.onSliderRender,this)},onSliderRender:function(b){var c=this.onSliderDisabled.createDelegate(this,[b,true]),a=this.onSliderDisabled.createDelegate(this,[b,false]);
31b.getAriaEl().setARIA({label:b.title||"",tabindex:Ext.isDefined(b.tabindex)?b.tabindex:(b.disabled)?-1:0,role:"slider",readonly:"false",orientation:(b.vertical===true)?"vertical":"horizontal",minvalue:b.minvalue||0,maxValue:b.maxValue||0,valuenow:b.value});this.bindEvent(b,"change",this.onSliderValueChanged,this);this.bindEvent(b,"enable",a);this.bindEvent(b,"disable",c);this.bindEvent(b,"maxvaluechanged",this.onSliderMaxValueChanged);this.bindEvent(b,"minvaluechanged",this.onSliderMinValueChanged)},onSliderDisabled:function(c,b){var a=Ext.isDefined(c.tabindex)?c.tabindex:(b)?-1:0;c.getAriaEl().setARIA({tabindex:a})},onSliderValueChanged:function(b,c,a){b.getAriaEl().setARIA({valuenow:c})},onSliderMinValueChanged:function(a,b){a.getAriaEl().setARIA({maxvalue:b})},onSliderMaxValueChanged:function(a,b){a.getAriaEl().setARIA({minvalue:b})}});Ext.define("SYNO.ux._TabPanelARIA",{extend:"SYNO.ux.AriaComponent",initializeItem:function(a){this.initializeRenderedTab(a);this.bindEvent(a,"deactivatetab",this.onDeactivateTab,this);this.bindEvent(a,"activatetab",this.onActivateTab,this);this.bindEvent(a,"inittab",this.onTabInited,this)},initializeRenderedTab:function(a){if(a.rendered){Ext.each(a.items.items,function(c,b){if(c.tabEl){this.onTabInited(c.tabEl,a)}},this)}},onDeactivateTab:function(a){this.setTabActivate(a,false)},onActivateTab:function(a){this.setTabActivate(a,true)},setTabActivate:function(c,b){var a=(b)?0:-1;Ext.fly(c).set({"aria-selected":b,"aria-expanded":b});Ext.fly(c).down(".x-tab-right").set({tabIndex:a})},onTabInited:function(c,a){var b;b=new Ext.KeyNav(c,{right:a.selectNextTab,left:a.selectPreTab,down:a.selectNextTab,up:a.selectPreTab,scope:a})}});Ext.define("SYNO.ux._CheckboxARIA",{extend:"SYNO.ux.AriaComponent",initializeItem:function(a){this.bindRenderEvent(a,this.onAfterRender,this);this.bindEvent(a,"check",this.onCheck,this)},onCheck:function(b,a){if(!b.rendered){return}b.el.set({"aria-checked":a})},onAfterRender:function(c){var a=c.el.id,d=a+"-label-el",b={checked:c.checked,invalid:false};if(c["aria-label"]){b.label=c["aria-label"]}else{b.labelledby=d}c.el.setARIA(b)}});var hasAriaPlugins=false;var pluginList=["Component","Button","Combobox","DataView","GridPanel","Menu","TreePanel","Slider","TabPanel","Checkbox"];function launchARIAPlugins(){if(hasAriaPlugins){return}Ext.ns("SYNO.ux");var b;for(b=0;b<pluginList.length;b++){var e=pluginList[b],c=String.format("SYNO.ux._{0}ARIA",e),a=String.format("{0}ARIA",e),d=Ext.getClassByName(c);SYNO.ux[a]=new d()}Ext.override(Ext.Component,{useARIA:true,initComponent:function(){if(this.useARIA===true){var f=this.addPlugins(SYNO.ux.ComponentARIA,this);this.plugins=f.plugins}if(this.listeners){this.on(this.listeners);delete this.listeners}this.enableBubble(this.bubbleEvents)}});hasAriaPlugins=true}function setARIAPluginsDisabled(b){if(!hasAriaPlugins){return}var c,d=(b)?"disable":"enable";for(c=0;c<pluginList.length;c++){var a=SYNO.ux[pluginList[c]+"ARIA"];a[d]()}}Ext.onReady(function(){launchARIAPlugins()});Ext.define("SYNO.ux.HistoryRecorder",{extend:"Ext.util.Observable",silentAddEvent:false,silentChangeEvent:false,constructor:function(a){Ext.apply(this,a);this.addEvents("add","change");this.callParent(arguments);this.hist=[];this.index=-1},suspendAddEvent:function(){this.silentAddEvent=true},resumeAddEvent:function(){this.silentAddEvent=false},suspendChangeEvent:function(){this.silentChangeEvent=true},resumeChangeEvent:function(){this.silentChangeEvent=false},pop:function(){this.hist.splice(this.index,1);this.index=Math.max(this.index-1,-1)},add:function(a){this.index+=1;this.hist.splice(this.index,this.hist.length-this.index,a);if(!this.silentAddEvent){this.fireEvent("add",a)}if(!this.silentChangeEvent){this.fireEvent("change",a)}},back:function(){var a=this.index-1;if(a<this.hist.length&&a>=0){this.index=a;if(!this.silentChangeEvent){this.fireEvent("change",this.hist[a])}}},next:function(){var a=this.index+1;if(a<this.hist.length&&a>=0){this.index=a;if(!this.silentChangeEvent){this.fireEvent("change",this.hist[a])}}},isLast:function(){return(this.index===this.hist.length-1)},isFirst:function(){return this.index<=0},clear:function(){this.hist=[];this.index=-1},getObject:function(){var a=this.index;if(this.hist&&a<this.hist.length&&a>=0){return this.hist[a]}return null},getPreObject:function(){var a=this.index;if(this.hist&&a<this.hist.length&&a>=1){return this.hist[a-1]}return null},getIndex:function(){return this.index}});Ext.define("SYNO.ux.BackNextBtnGroup",{extend:"Ext.Container",constructor:function(a){this.objHistory=new SYNO.ux.HistoryRecorder(a.histCfg);var b=this.getBtnConfig(a);this.callParent([b])},getBtnConfig:function(c){var a,e=["back","next"];c.items=[];for(a=0;a<e.length;a++){var f=e[a],h=f+"Btn",d=f+"Cfg",g=(f==="back")?"prevpage":"nextpage";this[h]=new SYNO.ux.Button(Ext.apply({itemId:f,tooltip:_JSLIBSTR("extlang",g),iconCls:"syno-ux-backnextgroup-"+e[a],disabled:true,width:32,scope:this,handler:function(b){this.objHistory[b]()}.createDelegate(this,[f])},(c[d]||{})));c.items.push(this[h])}return c},getBackBtn:function(){return this.backBtn},getNextBtn:function(){return this.nextBtn},getHistory:function(){return this.objHistory},updateBtnStatus:function(){this.backBtn.setDisabled(this.objHistory.isFirst());this.nextBtn.setDisabled(this.objHistory.isLast())}});Ext.reg("syno_backnextbtngroup",SYNO.ux.BackNextBtnGroup);Ext.reg("syno_history",SYNO.ux.HistoryRecorder);Ext.define("SYNO.ux.Button",{extend:"Ext.Button",btnStyle:"default",useARIA:true,htmlEncode:true,constructor:function(a){this.callParent([a]);this.updateButtonStyle(a);if(this.menu){this.menu.cls=this.menu.cls?this.menu.cls+" syno-ux-button-menu":"syno-ux-button-menu";this.menu.shadow=false}},updateButtonStyle:function(a){this.addClass("syno-ux-button");if("blue"===this.btnStyle){this.addClass("syno-ux-button-blue");this.minWidth=80}else{if("grey"===this.btnStyle){this.addClass("syno-ux-button-grey");this.minWidth=80}else{if("red"===this.btnStyle){this.addClass("syno-ux-button-red");this.minWidth=80}else{if("green"===this.btnStyle){this.addClass("syno-ux-button-green");this.minWidth=80}else{if("orange"===this.btnStyle){this.addClass("syno-ux-button-orange");this.minWidth=80}else{this.addClass("syno-ux-button-default")}}}}}},initComponent:function(){this.callParent(arguments);this.addEvents("textchanged")},getMenuClass:function(){if(this.menu){this.addClass("syno-ux-button-dropdown")}return SYNO.ux.Button.superclass.getMenuClass.apply(this,arguments)},setText:function(a){this.text=a;if(this.el){if(this.htmlEncode){this.btnEl.update(Ext.util.Format.htmlEncode(a))}else{this.btnEl.update(a||"&#160;")}this.setButtonClass()}this.doAutoWidth();this.fireEvent("textchanged",this,a)},onRender:function(b,a){this.template=new Ext.Template('<span id="{4}" cellspacing="0" class="x-btn {3}">','<em class="{2} x-unselectable" unselectable="on">','<button type="{0}"></button></em>',"</span>");SYNO.ux.Button.superclass.onRender.call(this,b,a);SYNO.ux.Utils.setFormItemIndent(this)},getAriaEl:function(){return this.btnEl}});Ext.reg("syno_button",SYNO.ux.Button);Ext.ns("SYNO.ux");SYNO.ux.Checkbox=Ext.extend(Ext.form.Checkbox,{checkIconCls:"syno-ux-checkbox-icon",hideLabel:true,defaultAutoCreate:{tag:"input",type:"checkbox",role:"checkbox",autocomplete:"off"},wrapCls:"syno-ux-form-check-wrap",useARIA:true,htmlEncode:true,constructor:function(a){if
31(this.useARIA===true){a=this.addPlugins(SYNO.ux.CheckboxARIA,a)}SYNO.ux.Checkbox.superclass.constructor.call(this,a)},initEvents:function(){Ext.form.Checkbox.superclass.initEvents.call(this)},updateCheckAttr:function(){if(this.checked){this.el.dom.setAttribute("checked","")}else{this.el.dom.removeAttribute("checked")}},onRender:function(c,a){Ext.apply(this.defaultAutoCreate,{cls:this.checkIconCls});Ext.form.Checkbox.superclass.onRender.call(this,c,a);if(this.inputValue!==undefined){this.value=this.inputValue}var b=this.el.id,e=b+"-label-el",d=b+"-icon-el";this.wrap=this.el.wrap({cls:"x-form-check-wrap "+this.wrapCls});this.checkIcon=this.wrap.createChild({tag:"div",cls:this.checkIconCls,id:d});if(this.boxLabel){this.boxlabelEl=this.wrap.createChild({tag:"label",htmlFor:b,cls:"syno-ux-checkbox-label",html:(this.htmlEncode)?Ext.util.Format.htmlEncode(this.boxLabel):this.boxLabel,id:e})}this.setValue(this.checked);if(this.tabIndex!==undefined){this.el.dom.setAttribute("tabindex",this.tabIndex)}this.updateCheckAttr();if(Ext.isIE&&!Ext.isStrict){this.wrap.repaint()}this.resizeEl=this.positionEl=this.wrap;SYNO.ux.Utils.setFormItemIndent(this);this.addListeners()},afterRender:function(){Ext.form.Checkbox.superclass.afterRender.apply(this,arguments);if(this.errorMsgEl&&this.wrap){this.wrap.appendChild(this.errorMsgEl)}},addListeners:function(){if(this.boxLabel){this.boxlabelEl.addListener("mouseover",this.onMouseover,this);this.boxlabelEl.addListener("mouseout",this.onMouseout,this)}this.checkIcon.addListener("mouseover",this.onMouseover,this);this.checkIcon.addListener("mouseout",this.onMouseout,this);this.checkIcon.addListener("click",this.onClick,this);this.el.addListener("click",this.onClick,this);this.el.addListener("focus",this.onIconfocus,this);this.el.addListener("blur",this.onIconblur,this);this.addListener("disable",this.setCheckedDisabledClass,this);this.addListener("enable",this.setCheckedDisabledClass,this)},getValue:function(){return this.checked},onClick:function(a){if(!this.disabled&&!this.readOnly){this.setValue(!this.checked)}},onMouseover:function(){this.checkIcon.addClass("syno-ux-cb-hover")},onMouseout:function(){this.checkIcon.removeClass("syno-ux-cb-hover")},onIconfocus:function(){this.checkIcon.addClass("syno-ux-cb-focus")}
31,onIconblur:function(){this.checkIcon.removeClass("syno-ux-cb-focus")},setValue:function(a){var c=this.checked,b=this.inputValue;if(a===false){this.checked=false}else{this.checked=(a===true||a==="true"||a=="1"||(b?a==b:String(a).toLowerCase()=="on"))}if(c!=this.checked){this.fireEvent("check",this,this.checked);if(this.handler){this.handler.call(this.scope||this,this,this.checked)}if(this.rendered){this.updateCheckAttr()}}this.setCheckedDisabledClass();return this},setDisabled:function(a){SYNO.ux.Checkbox.superclass.setDisabled.call(this,a);this.setCheckedDisabledClass();return this},setCheckedDisabledClass:function(){if(this.checkIcon){if(this.checked){this.checkIcon.addClass("syno-ux-cb-checked")}else{this.checkIcon.removeClass("syno-ux-cb-checked")}}if(this.disabled){if(this.checkIcon){this.checkIcon.addClass("syno-ux-cb-disabled")}if(this.boxlabelEl){this.boxlabelEl.addClass("syno-ux-cb-disabled")}}else{if(this.checkIcon){this.checkIcon.removeClass("syno-ux-cb-disabled")}if(this.boxlabelEl){this.boxlabelEl.removeClass("syno-ux-cb-disabled")}}}});Ext.reg("syno_checkbox",SYNO.ux.Checkbox);Ext.define("SYNO.ux.ColorField",{extend:"SYNO.ColorField",defaultTriggerWidth:27,msgTarget:"itip",constructor:function(a){this.callParent(arguments);this.addClass("syno-ux-colorfield");if(this.menu){this.menu.addClass("syno-ux-colormenu")}},onRender:function(b,a){this.callParent(arguments);if(this.trigger){this.trigger.addClass("syno-ux-colorfield-trigger");this.trigger.addListener("mouseover",this.onMouseover,this);this.trigger.addListener("mouseout",this.onMouseout,this)}this.mon(this.el,{scope:this,mouseover:this.onMouseover,mouseout:this.onMouseout})},onMouseover:function(){this.addClass("syno-ux-colorfield-hover");this.trigger.addClass("x-form-trigger-over")},onMouseout:function(){this.removeClass("syno-ux-colorfield-hover");this.trigger.removeClass("x-form-trigger-over")},markInvalid:function(a){if(this.trigger){this.trigger.addClass("syno-ux-trigger-invalid")}this.callParent(arguments)},clearInvalid:function(){if(this.trigger){this.trigger.removeClass("syno-ux-trigger-invalid")}this.callParent(arguments)}});Ext.reg("syno_colorfield",SYNO.ux.ColorField);Ext.define("SYNO.ux.FleXcroll.ComboBox",Ext.apply(SYNO.ux.FleXcrollConfig.ComboBox,{extend:"Ext.form.ComboBox"}));Ext.define("SYNO.ux.ComboBox",{extend:"SYNO.ux.FleXcroll.ComboBox",triggerAction:"all",editable:false,mode:"local",shadow:false,listClass:"syno-ux-combobox-list",defaultTriggerWidth:27,msgTarget:"itip",useARIA:true,tplHtmlEncode:true,constructor:function(a){if(a.name){a.hiddenName=a.name;a.hiddenId=Ext.id()}if(a.pageSize&&!a.minListWidth){a.minListWidth=330}a=SYNO.ux.Utils.setTextMaxLenConfig(a);if(this.useARIA===true){a=this.addPlugins(SYNO.ux.ComboboxARIA,a)}SYNO.ux.ComboBox.superclass.constructor.call(this,a);if(this.hideTrigger){this.addClass("syno-ux-triggerfield-no-trigger")}this.addClass("syno-ux-combobox")}
31,initComponent:function(){this.callParent(arguments);this.addEvents("listInitialized")},onRender:function(b,a){SYNO.ux.ComboBox.superclass.onRender.call(this,b,a);if(this.label){this.label.addClass("syno-ux-item-label")}if(this.trigger){this.trigger.addClass("syno-ux-combobox-trigger");this.trigger.addListener("mouseover",this.onMouseover,this);this.trigger.addListener("mouseout",this.onMouseout,this)}this.mon(this.el,{scope:this,mouseover:this.onMouseover,mouseout:this.onMouseout});SYNO.ux.Utils.setFormItemIndent(this);SYNO.ux.Utils.setFormFieldWidth(this)},onMouseover:function(){this.addClass("syno-ux-combobox-hover");this.trigger.addClass("x-form-trigger-over")},onMouseout:function(){this.removeClass("syno-ux-combobox-hover");this.trigger.removeClass("x-form-trigger-over")},markInvalid:function(a){if(this.trigger){this.trigger.addClass("syno-ux-trigger-invalid")}SYNO.ux.ComboBox.superclass.markInvalid.call(this,a)},clearInvalid:function(){if(this.trigger){this.trigger.removeClass("syno-ux-trigger-invalid")}SYNO.ux.ComboBox.superclass.clearInvalid.call(this)},setReadOnly:function(a){if(a){this.addClass("syno-ux-triggerfield-readonly")}else{this.removeClass("syno-ux-triggerfield-readonly")}SYNO.ux.ComboBox.superclass.setReadOnly.call(this,a)}});Ext.reg("syno_combobox",SYNO.ux.ComboBox);Ext.ns("SYNO.ux");SYNO.ux.CompositeField=Ext.extend(Ext.form.CompositeField,{noLabelledby:true,onRender:function(e,b){var d,c,a;SYNO.ux.CompositeField.superclass.onRender.call(this,e,b);if(this.label){this.label.addClass("syno-ux-item-label")}SYNO.ux.Utils.setFormItemIndent(this);c=this.innerCt.items.items;a=c.length;for(d=0;d<a;d++){if(Ext.isFunction(c[d].initializeARIAAttr)){c[d].initializeARIAAttr()}if(c[d] instanceof Ext.Button&&Ext.isFunction(c[d].updateDisableConfig)){c[d].updateDisableConfig(true)}}}});Ext.reg("syno_compositefield",SYNO.ux.CompositeField);Ext.define("SYNO.ux.CoverPanel",{extend:"Ext.Panel",bbarHeight:40,handlerTpl:'<div class="syno-ux-coverable-panel-tool-wrap"><div class="syno-ux-collapsed-text">{0}</div><div class="syno-ux-{1}"></div></div>',constructor:function(a){if(!a.items||a.items.length!==2){SYNO.Debug.error("only allow for 2 items, use accordion layout otherwise.");return}this.callParent([this.fillConfig(a)]);this.addClass("syno-ux-cover-panel")},fillConfig:function(a){var d=a.handlerTpl||this.handlerTpl,c=a.items[0],e=a.items[1],b={layout:"fit",useStatusBar:false,items:[{xtype:"panel",itemId:"down_ct",layout:"fit",bbar:{cls:"syno-ux-cover-panel-bottom-wrap",height:this.bbarHeight,items:[{xtype:"box",html:String.format(d,a.expandTitle,"expand")}]},items:[c]},{xtype:"panel",itemId:"up_ct",layout:"fit",tbar:{cls:"syno-ux-cover-panel-top-wrap",items:[{xtype:"box",html:String.format(d,a.collpaseTitle||a.expandTitle,"collapse"),listeners:{afterrender:function(){var f=this.getCoveringItem().el.child(".syno-ux-coverable-panel-tool-wrap");f.on("click",this.onCollapseCoverItem,this)},scope:this}}]},items:[e]}],listeners:{afterlayout:this.onAfterLayout,single:true,scope:this}};delete a.items;Ext.apply(b,a);return b},getCoveredItem:function(){return this.getComponent("down_ct")},getCoveringItem:function(){return this.getComponent("up_ct")},onAfterLayout:function(){var a=".syno-ux-coverable-panel-tool-wrap",d=this.getCoveredItem().getBottomToolbar().el.child(a),c=this.getCoveringItem(),b=this.getCoveredItem();d.on("click",this.onExpandCoverItem,this);c.addClass("syno-ux-coverable-panel-up-item");c.addClass("hidden");b.addClass("syno-ux-coverable-panel-down-item")},onExpandCoverItem:function(){var a=this.getCoveringItem(),b=this.getCoveredItem();b.fireEvent("deactivate");this.getLayout().activeItem=a;a.fireEvent("activate");this.doLayout();a.removeClass("hidden");a.addClass("slidein-effect");a.removeClass.defer(300,a,["slidein-effect"])},onCollapseCoverItem:function(){var a=this.getCoveredItem(),b=this.getCoveringItem();a.fireEvent("activate");this.getLayout().activeItem=a;b.fireEvent("deactivate");this.doLayout();b.addClass("slideout-effect");b.removeClass.defer(300,b,["slideout-effect"]);b.addClass.defer(300,b,["hidden"])}});Ext.reg("syno_coverpanel",SYNO.ux.CoverPanel);Ext.define("SYNO.ux.DDGridPanel",{extend:"SYNO.ux.GridPanel",isPriorityDirt
31y:false,DDClass:"syno-ux-ddgridpanel",constructor:function(a){var b={isHighCell:false};this.callParent([Ext.apply(b,a)]);if(this.isHighCell){this.addClass("syno-ux-ddgridpanel-highcell")}this.addClass("syno-ux-ddgridpanel");this.addEvents("afterDrop");this.mon(this,"afterrender",this.onGridAfterRender);this.mon(this,"beforedestroy",this.removeDDGroup)},getView:function(){var a;if(!this.view){a=Ext.apply({onCreateDragZone:function(){this.dragZone=new Ext.grid.GridDragZone(this.grid,{ddGroup:this.ddGroup||"DefaultDDGroup",beforeDragOut:function(){return true},onBeforeDrag:function(c,d){var b=this.view.grid;if(b.getEl().hasClass(b.DDClass)){return true}return false}})}},this.viewConfig);this.view=new SYNO.ux.FleXcroll.grid.GridView(a)}return this.view},onGridAfterRender:function(a){if(!this.dropTarget){this.dropTarget=new SYNO.ux.DDGridPanel.DropTarget(a,{ddGroup:this.viewConfig.ddGroup||"DefaultDDGroup"})}},enableDD:function(){this.addClass(this.DDClass)},disableDD:function(){this.removeClass(this.DDClass)},removeDDGroup:function(){this.dropTarget.removeFromGroup(this.viewConfig.ddGroup)}});Ext.define("SYNO.ux.DDGridPanel.DropTarget",{extend:"Ext.dd.DropTarget",ddTarget:null,store:null,lastToIndex:null,grabbingCls:"syno-ux-ddgrid-grabbing-style",borderTopCls:"syno-ux-ddgrid-border-top",borderBottomCls:"syno-ux-ddgrid-border-bottom",constructor:function(b,a){this.ddTarget=b;this.store=b.store;this.callParent([b.getEl(),a])},notifyDrop:function(j,f,c){var d=-1,a=this.ddTarget,h=a.view,k,g,b;h.el.removeClass(this.grabbingCls);d=h.findRowIndex(f.getTarget());if(false===d){if(Ext.isNumber(this.lastToIndex)){this.removeCls(this.lastToIndex)}if(0===this.lastToIndex||(this.store.getCount()-1)===this.lastToIndex){d=this.lastToIndex}else{this.lastToIndex=null;j.endDrag();return false}}else{if(c.rowIndex===d){j.endDrag();return false}}this.removeCls(d);k=c.selections;this.store.suspendEvents();for(b=0;b<k.length;b++){this.store.remove(k[b]);if(0===b){g=d}else{g=this.store.indexOf(k[b-1])+1}this.store.insert(g,k[b]);a.isPriorityDirty=true}this.store.resumeEvents();h.refresh();a.selModel.selectRecords(k);this.lastToIndex=null;j.endDrag();this.ddTarget.fireEvent("afterDrop",this,k,g);return true},notifyOver:function(a,h,f){var b=this.ddTarget.view,g=b.findRowIndex(h.getTarget()),d=-1,c;b.el.addClass(this.grabbingCls);if(false===g&&!Ext.isNumber(this.lastToIndex)){if(h.within(b.el)){g=this.store.getCount()-1}else{g=0}}if(!Ext.isNumber(g)){a.endDrag();return this.dropAllowed}if(Ext.isNumber(this.lastToIndex)&&g!==this.lastToIndex){this.removeCls(this.lastToIndex)}d=f.rowIndex;this.lastToIndex=g;if(d===g){a.endDrag();return false}c=Ext.fly(b.getRow(g));if(d<g){c.addClass(this.borderBottomCls)}else{if(d>g){c.addClass(this.borderTopCls)}}return this.dropAllowed},notifyOut:function(a,c,b){if(Ext.isNumber(this.lastToIndex)){this.removeCls(this.lastToIndex);this.lastToIndex=null}a.endDrag();return false},removeCls:function(b){var a;a=Ext.fly(this.ddTarget.view.getRow(b));a.removeClass(this.borderTopCls);a.removeClass(this.borderBottomCls)}});Ext.reg("syno_dd_gridpanel",SYNO.ux.DDGridPanel);Ext.define("SYNO.ux.DataViewAnimation",{extend:Object,defaults:{duration:500,cls:{add:"syno-ux-expandable-add",remove:"syno-ux-expandable-remove"}},constructor:function(a){Ext.apply(this,a||{},this.defaults);this.cachedStoreData={}},init:function(a){this.dataview=a;a.blockRefresh=true;var b=a.store;this.cacheStoreData(b);a.mon(b,"load",this.cacheStoreData,this);a.mon(b,"datachanged",this.onDataChanged,this)},onDataChanged:function(a){var c=[],b=this.getPrevious();this.dataview.refresh();Ext.each(b,function(d){if(this.isRemoved(d,a)){a.add(d);d.set("cls",this.cls.remove);d.isRemoved=true;c.push(d)}},this);a.each(function(d){if(this.isNew(d)){d.set("cls",this.cls.add)}else{if(!d.isRemoved){d.set("cls","")}}},this);a.sortData();this.dataview.refresh();this.cacheStoreData(a);setTimeout(function(){if(!a||!a.data){return}a.each(function(d){if(d.isRemoved){a.remove(d)}})},this.duration)},cacheStoreData:function(a){this.cachedStoreData={};a.each(function(b){this.cachedStoreData[b.id]=b},this)},getPrevious:function(){var c=[],b,a;for(b in this.cachedStoreData){if(this.cachedStoreData.hasOwnProperty(b)){a=this.cachedStoreData[b];if(a.get("cls")!==this.cls.remove){c.push(a)}}}return c},isNew:function(a){return this.cachedStoreData[a.id]===undefined}
31,isRemoved:function(a,b){try{return b.getById(a.id)===undefined}catch(c){return true}}});Ext.define("SYNO.ux.DataViewMask",{extend:Object,defaults:{opacity:0.5},constructor:function(a){Ext.apply(this,a||{},this.defaults);this.masked={}},init:function(a){this.dataview=a;this.dataview.maskItem=this.maskItem.createDelegate(this);this.dataview.unmaskItem=this.unmaskItem.createDelegate(this);this.dataview.isItemMasked=this.isItemMasked.createDelegate(this);a.mon(a.store,"datachanged",this.onDataChanged,this);a.mon(a.store,"remove",this.onRecordRemoved,this)},isItemMasked:function(a){return this.masked[a.id]!==undefined},onDataChanged:function(a){var b=Object.keys(this.masked);Ext.each(b,function(c){if(!a.getById(c)){this.unmaskItem(c)}else{this.maskItem(c)}},this)},onRecordRemoved:function(b,a,c,d){if(this.masked[a.id]!==undefined){delete this.masked[a.id]}},maskItem:function(c){if(Ext.isArray(c)){Ext.each(c,this.maskItem,this);return}var a=this.dataview.store.getById(c),b=this.dataview.getNode(a);Ext.fly(b).mask().setOpacity(this.opacity);this.masked[c]=true},unmaskItem:function(c){if(Ext.isArray(c)){Ext.each(c,this.unmaskItem,this);return}var a=this.dataview.store.getById(c),b=this.dataview.getNode(a);if(b){Ext.fly(b).unmask()}delete this.masked[c]}});var defineDateTriggerField=function(a,b,d,c){Ext.define(a,{extend:b,overCls:"syno-ux-datefield-hover",triggerClass:"syno-ux-datefield-trigger",defaultTriggerWidth:27,msgTarget:"itip",constructor:function(e){this.callParent(arguments);this.addClass("syno-ux-datefield")},onRender:function(f,e){this.callParent(arguments);if(this.label){this.label.addClass("syno-ux-item-label")}if(this.trigger){this.trigger.addListener("mouseover",this.onMouseover,this);this.trigger.addListener("mouseout",this.onMouseout,this)}this.mon(this.el,{scope:this,mouseover:this.onMouseover,mouseout:this.onMouseout});SYNO.ux.Utils.setFormItemIndent(this);SYNO.ux.Utils.setFormFieldWidth(this);this.el.setARIAHasPopUp(true).setARIAExpanded(false).setRole("combobox")},onMouseover:function(){this.addClass("syno-ux-datefield-hover");this.trigger.addClass("x-form-trigger-over")},onMouseout:function(){this.removeClass("syno-ux-datefield-hover");this.trigger.removeClass("x-form-trigger-over")},markInvalid:function(e){if(this.trigger){this.trigger.addClass("syno-ux-trigger-invalid")}this.callParent(arguments)},clearInvalid:function(){if(this.trigger){this.trigger.removeClass("syno-ux-trigger-invalid")}this.callParent(arguments)},setReadOnly:function(e){if(e){this.addClass("syno-ux-triggerfield-readonly")}else{this.removeClass("syno-ux-triggerfield-readonly")}this.callParent(arguments)},onDateMenuHide:function(){this.el.setARIAExpanded(false)},onTriggerClick:function(){if(this.disabled){return}if(!this.menu){var e=Ext.getClassByName(d||"Ext.menu.DateMenu");this.menu=new e(c);this.el.setARIAOwns(this.menu.id);this.mon(this.menu,"hide",this.onDateMenuHide,this)}if(Ext.isString(this.menu.cls)&&this.menu.cls.indexOf("syno-ux-datefield-menu")<0){this.menu.addClass("syno-ux-datefield-menu")}this.callParent(arguments);if(Ext.isIE8||Ext.isIE9){this.menu.doLayout()}if(Ext.isFunction(this.onMenuShow)){this.onMenuShow()}this.el.setARIAExpanded(true)}})};defineDateTriggerField("SYNO.ux.DateField","Ext.form.DateField","SYNO.ux.DateMenu",{hideOnClick:false,focusOnSelect:false,shadow:false});defineDateTriggerField("SYNO.ux.DateTimeField","Ext.ux.form.DateTimeField","Ext.menu.DateTimeMenu");Ext.reg("syno_datefield",SYNO.ux.DateField);Ext.reg("syno_datetimefield",SYNO.ux.DateTimeField);Ext.define("SYNO.ux.TimePickerField",{extend:"SYNO.ux.CompositeField",cls:"x-form-timepickerfield syno-ux-timepickerfield",comboWidth:60,comboMargins:undefined,comboDefaultMargins:"0 5 0 3",constructor:function(a){this.callParent([this.fillConfig(a)])},fillConfig:function(a){var c=["hour","min","sec"];Ext.each(c,function(d){var e="get"+d.charAt(0).toUpperCase()+d.slice(1)+"DS";this[d+"Combo"]=new SYNO.ux.ComboBox({name:"timepicker_"+d,hideLabel:true,store:this[e](),margins:this.comboMargins,width:this.comboWidth,editable:true,typeAhead:true,comboTitle:_JSLIBSTR("uicommon","time_"+d),valueField:"value",displayField:"display",vtype:"nonenegativeinteger",validationEvent:"keyup",listClass:"syno-ux-combobox-list syno-ux-timepickerfield-combobox-list",validator:function(f){if(!Ext.isEmpty(this.store.getById(f))){return true}return false},listeners:{afterrender:function(f){this.el.set({"aria-label":this.comboTitle})},scope:this[d+"Combo"]}})},this);var b={defaultMargins:this.comboDefaultMargins,items:[this.hourCombo,{xtype:"syno_displayfield",value:":"},this.minCombo,{xtype:"syno_displayfield",value:":"},this.secCombo]};Ext.apply(b,a);return b},generateTimeData:function(b){if(b<0){return[]}var a,c=[];for(a=0;a<b;a++){c.push([a,String.leftPad(a,2,"0")])}return c},generateTimeDS:function(a){return new Ext.data.ArrayStore({autoDestroy:true,i
31dIndex:1,fields:["value","display"],data:this.generateTimeData(a)})},getHourDS:function(){if(!this.hourDS){this.hourDS=this.generateTimeDS(24)}return this.hourDS},getMinDS:function(){if(!this.minDS){this.minDS=this.generateTimeDS(60)}return this.minDS},getSecDS:function(){if(!this.secDS){this.secDS=this.generateTimeDS(60)}return this.secDS},onRender:function(c,a){this.callParent(arguments);this.rendered=false;this.date=new Date();var b={};if(this.value){b=this._valueSplit(this.value);this.date.setHours(b.h);this.date.setMinutes(b.m);this.date.setSeconds(b.s);delete this.value}else{b={h:this.date.getHours(),m:this.date.getMinutes(),s:this.date.getSeconds()}}this.hourCombo.setValue(b.h);this.minCombo.setValue(b.m);this.secCombo.setValue(b.s);this.rendered=true},_valueSplit:function(a){var b=a.split(":");return{h:b.length>0?b[0]:0,m:b.length>1?b[1]:0,s:b.length>2?b[2]:0}},getRawValue:function(){if(!this.hourCombo){this.date=new Date();return{h:this.date.getHours(),m:this.date.getMinutes(),s:this.date.getSeconds()}}else{return{h:this.hourCombo.getValue(),m:this.minCombo.getValue(),s:this.secCombo.getValue()}}},setRawValue:function(a){this.hourCombo.setValue(a.h);this.minCombo.setValue(a.m);this.secCombo.setValue(a.s)},getValue:function(){var a=this.getRawValue();return String.leftPad(a.h,2,"0")+":"+String.leftPad(a.m,2,"0")+":"+String.leftPad(a.s,2,"0")},setValue:function(a){if(!this.rendered){this.value=a;return}a=this._valueSplit(a);this.setRawValue(a);this.validate()},focusItem:function(b){var a=["hourCombo","minCombo","secCombo"],c,d={prev:null,cur:null,next:this.hourCombo};for(c=0;c<a.length;c++){if(this[a[c]].isFocused){d={prev:this[a[c-1]],cur:this[a[c]],next:this[a[c+1]]};break}}if(d.cur){d.cur.isFocused=false}if(b>0&&d.next){d.next.focus();d.next.isFocused=true;return true}else{if(b<=0&&d.prev){d.prev.focus();d.prev.isFocused=true;return true}}return false},clearAllFocus:function(){var a=["hour","min","sec"];Ext.each(a,function(b){this[b+"Combo"].triggerBlur();this[b+"Combo"].isFocused=false},this)}});Ext.reg("syno_timepickerfield",SYNO.ux.TimePickerField);Ext.define("SYNO.ux.DateTimePicker",{extend:"Ext.DateTimePicker",onRender:function(b,a){Ext.DateTimePicker.superclass.onRender.apply(this,arguments);var c=Ext.get(Ext.DomQuery.selectNode("table tbody",b.dom));var d;d=Ext.DomHelper.insertBefore(c.last(),{tag:"tr",children:[{tag:"td",cls:"x-date-bottom ux-timefield syno-ux-timefield",colspan:"3"}]},true);this.tf.render(c.child("td.ux-timefield"));this.eventEl.addKeyListener(Ext.EventObject.TAB,this.onKeyTab,this)},onKeyTab:function(a,f){var d=this.tf,b=(f.shiftKey)?-1:1,c;c=d.focusItem(b);if(c===false){this.focusSelectedDate()}},focusSelectedDate:function(){this.el.child(".x-date-selected").focus()},setValue:function(a){if(!this.tf){this.tf=new SYNO.ux.TimePickerField();this.tf.ownerCt=this}this.value=this.getDateTime(a);this.update(a.clearTime(true))},handleDateSelect:function(b){var a=this.tf,c=new Date(this.activeDate);c.setHours(a.hourCombo.getValue());c.setMinutes(a.minCombo.getValue());c.setSeconds(a.secCombo.getValue());this.setValue(c);this.fireEvent("select",this,this.value)}});Ext.reg("syno_datetimepickerfield",SYNO.ux.DateTimePicker);Ext.define("SYNO.ux.DateTimeMenu",{extend:"Ext.menu.Menu",cls:"x-date-menu syno-ux-datefield-menu",showSeparator:false,constructor:function(a){this.callParent(arguments);this.plain=true;var b=new SYNO.ux.DateTimePicker(Ext.apply({internalRender:true,ctCls:"x-menu-date-item"}),a);this.add(b);this.picker=b;this.relayEvents(b,["select"]);this.on("show",function(){if(this.picker){this.picker.focus()}},this);this.on("beforeshow",function(){if(this.picker){this.picker.hideMonthPicker(true)}},this)},beforeDestroy:function(){this.picker.destroy();this.callParent(arguments)},hide:function(a){var b=this.picker.tf;if(b){if((b.hourCombo.list&&Ext.EventObject.within(b.hourCombo.list))||(b.minCombo.list&&Ext.EventObject.within(b.minCombo.list))||(b.secCombo.list&&Ext.EventObject.within(b.secCombo.list))){return false}}if(this.el&&this.isVisible()){this.fireEvent("beforehide",this);if(this.activeItem){this.activeItem.deactivate();this.activeItem=null}this.el.hide();this.hidden=true;this.fireEvent("hide",this)}
31if(a===true&&this.parentMenu){this.parentMenu.hide(true)}if(b){b.clearAllFocus()}}});Ext.override(SYNO.ux.DateTimeField,{width:180,onTriggerClick:function(){if(this.disabled){return}if(Ext.isEmpty(this.menu)){this.menu=new SYNO.ux.DateTimeMenu({ownerField:this});this.el.setARIAOwns(this.menu.id);this.mon(this.menu,"hide",this.onDateMenuHide,this)}this.callParent(arguments);this.el.setARIAExpanded(true)},updateDateTime:function(){var a=this.menu.picker;a.setValue(a.getValue());this.setValue(a.value)},onMenuHide:function(){this.focus(false,60);this.menuEvents("un");var a=new Ext.util.DelayedTask(this.updateDateTime,this);a.delay(200)}});Ext.ns("SYNO.ux");SYNO.ux.DisplayField=Ext.extend(Ext.form.DisplayField,{hideLabel:true,noLabelledby:true,htmlEncode:true,constructor:function(a){if(!Ext.isEmpty(a.fieldLabel)){this.hideLabel=Ext.isEmpty(a.hideLabel)?false:a.hideLabel}if(Ext.isEmpty(a.height)){if(Ext.isObject(a.style)){a.style["min-height"]="8px"}else{if(Ext.isString(a.style)){a.style=a.style+"; min-height:8px;"}else{if(Ext.isEmpty(a.style)){a.style="min-height: 8px"}}}}SYNO.ux.DisplayField.superclass.constructor.call(this,a);this.addClass("syno-ux-displayfield");if(a.selectable){this.addClass("selectabletext")}},onRender:function(b,a){var c=this.value?this.value:"";var d=(this.fieldLabel)?this.fieldLabel+" "+c:c;d=Ext.util.Format.stripTags(d)||"";SYNO.ux.DisplayField.superclass.onRender.call(this,b,a);if(this.label){this.label.addClass("syno-ux-item-label")}this.customTabIdx=(Ext.isDefined(this.tabIndex))?this.tabIndex:(d.length>0)?0:-1;if(this.el){this.el.set({role:"presentation","aria-label":d,tabIndex:(this.disabled)?-1:this.customTabIdx})}SYNO.ux.Utils.setFormItemIndent(this)},setValue:function(a){SYNO.ux.DisplayField.superclass.setValue.call(this,a);if(!this.rendered){return}var c=this.getValue();var d=(this.fieldLabel)?this.fieldLabel+" "+c:c,b=this.el;d=Ext.util.Format.stripTags(d)||"";this.customTabIdx=(Ext.isDefined(this.tabIndex))?this.tabIndex:(d.length>0)?0:-1;if(b){b.setARIA({label:d,tabIndex:(this.disabled)?-1:this.customTabIdx})}},disable:function(){if(this.el){this.el.set({tabIndex:-1})}SYNO.ux.DisplayField.superclass.disable.call(this)},enable:function(){if(this.el){this.el.set({tabIndex:this.customTabIdx})}SYNO.ux.DisplayField.superclass.enable.call(this)}});Ext.reg("syno_displayfield",SYNO.ux.DisplayField);Ext.ns("SYNO.ux");SYNO.ux.EditorGridPanel=Ext.extend(Ext.grid.EditorGridPanel,{border:false,header:false,trackMouseOver:true,useARIA:true,useNewStyle:true,clicksToEdit:1,constructor:function(a){if(this.useARIA){a=this.addPlugins(SYNO.ux.GridPanelARIA,a)}var c,b;if(Ext.isArray(a.plugins)){Ext.each(a.plugins,function(f,e){if(f instanceof SYNO.ux.plugin.StyledGrid){b=e;return}if(f instanceof SYNO.ux.plugin.GroupHeaderGrid){c=e;return}})}if(Ext.isNumber(c)){if(!Ext.isNumber(b)){a=this.insertPlugins(new SYNO.ux.plugin.StyledGrid(),a,0)}else{if(b>c){var d=a.plugins.splice(b,1)[0];a=this.insertPlugins(d,a,0)}}}else{if(!Ext.isNumber(b)&&(a.useNewStyle||this.useNewStyle)){a=this.insertPlugins(new SYNO.ux.plugin.StyledGrid(),a,0)}}SYNO.ux.EditorGridPanel.superclass.constructor.call(this,a);this.addClass("syno-ux-editorgridpanel")},getView:function(){var a=this;if(!a.view){a.view=new SYNO.ux.FleXcroll.grid.GridView(a.viewConfig)}return a.view},onRender:function(b,c){SYNO.ux.EditorGridPanel.superclass.onRender.call(this,b,c);var a=this.getSelectionModel();this.mon(a,"spacepressed",this.onSpacePressed,this)},onSpacePressed:function(){var a=this.view,b=a.focusEl,e=Ext.get(b.dom.getAttribute("aria-activedescendant")),d,c;if(!e||e.dom.nodeName.toUpperCase()!=="TD"){return}d=a.findRowIndex(e.dom);c=a.findCellIndex(e.dom);this.startEditing(d,c)},afterRender:function(){SYNO.ux.EditorGridPanel.superclass.afterRender.call(this);var b=Ext.getCmp(this.id+"-hctx");var a=Ext.getCmp(this.id+"-hcols-menu");if(b){b.addClass("syno-ux-editorgrid-hd-menu")}if(a){a.addClass("syno-ux-editorgrid-hd-menu")}},mask:function(a){this.el.mask(a,"syno-ux-grid-mask-info");this.view.focusEl.set({tabIndex:-1});this.view.setHeaderFocusTabbable(false)},unmask:function(){this.el.unmask();this.view.focusEl.set({tabIndex:0});this.view.setHeaderFocusTabbable(true)}});Ext.reg("syno_editorgrid",SYNO.ux.EditorGridPanel);Ext.namespace("SYNO.ux");SYNO.ux.EnableColumn=Ext.extend(Ext.grid.Column,{commitChanges:false,bindRowClick:false,enableFastSelectAll:false,disableSelectAll:false,headerHtmlEncode:false,constructor:function(b){var a='<input id="{0}" type="button" tabIndex="-1" class="syno-ux-checkbox-icon" style="vertical-align:middle; top:-2px">&nbsp;{1}';this.box_id=Ext.id();this.orgHeader=b.header;if(!b.disableSelectAll){b.header=String.format(a,this.box_id,b.header||"")}SYNO.ux.EnableColumn.superclass.constructor.call(this,b)},onSpacePressed:function(g,a){if(g.selections.length!==1){return}var c=this.getGrid(),b=c.getStore(),e=(Ext.isFunction(c.getSelectionModel().getColId
31x))?c.getSelectionModel().getColIdx():-1,f=(c.getColumnModel().columns||c.getColumnModel().config).indexOf(this),d=b.indexOf(g.getSelected());if(f!==e){return}this.onCellClick(c,d,a)},init:function(a){if(!Ext.isDefined(this.dataIndex)||!Ext.isDefined(this.id)){throw Error("you should set dataIndex and id for EnableColumn")}a.mon(a,"cellclick",function(c,e,b,d){if(c.getColumnModel().getColumnId(b)===this.id||this.bindRowClick){this.onCellClick(c,e,d)}},this);a.mon(a,"headerclick",function(d,c,b){var e;if(d.getColumnModel().getColumnId(c)===this.id||this.bindRowClick){e=b.getTarget("input",1,true);if(!e){return}if(this.box_el.hasClass("syno-ux-cb-disabled")){return}if(e){return this.onBoxClick()}}},this);a.mon(a,"afterrender",function(b){this.box_el=Ext.get(this.box_id);b.mon(b.getStore(),"add",this.checkSelectAll,this);b.mon(b.getStore(),"remove",this.checkSelectAll,this);b.mon(b.getStore(),"load",this.checkSelectAll,this);b.mon(b.getColumnModel(),"columnmoved",this.onColumnMoved,this);b.mon(b.getColumnModel(),"headerchange",this.onHeaderChange,this);b.mon(b.getView(),"refresh",this.onHeaderChange,this);b.mon(b.getSelectionModel(),"spacepressed",this.onSpacePressed,this);this.checkSelectAll(b.getStore())},this,{single:true});this.getGrid=function(){return a}},onBoxClick:function(){if(this.box_el.hasClass("syno-ux-cb-checked")){this.box_el.removeClass("syno-ux-cb-checked")}else{this.box_el.addClass("syno-ux-cb-checked")}this.onSelectAll();this.fireEvent("selectall",this,this.box_el.hasClass("syno-ux-cb-checked"))},getHeaderRole:function(){if(this.disableSelectAll){return"columnheader"}return"checkbox"},getHeaderAriaAttr:function(){return'aria-checked="false"'},disableHeader:function(){if(this.box_el){this.box_el.addClass("syno-ux-cb-disabled")}},enableHeader:function(){if(this.box_el){this.box_el.removeClass("syno-ux-cb-disabled")}},isIgnore:function(b,a){return false},toggleRec:function(b){var a=b.get(this.dataIndex);if("gray"===a){a=false}b.set(this.dataIndex,!a)},onColumnMoved:function(){this.box_el=Ext.get(this.box_id);this.checkSelectAll(this.getGrid().getStore())},onHeaderChange:function(){this.box_el=Ext.get(this.box_id);this.checkSelectAll(this.getGrid().getStore())}
31,onHeaderSpace:function(){if(!this.box_el){return}if(this.box_el.hasClass("syno-ux-cb-disabled")){return}if(this.box_el.hasClass("syno-ux-cb-checked")){this.box_el.removeClass("syno-ux-cb-checked")}else{this.box_el.addClass("syno-ux-cb-checked")}this.onSelectAll();this.fireEvent("selectall",this,this.box_el.hasClass("syno-ux-cb-checked"));this.getGrid().fireEvent("headerspace",this)},onSelectAll:function(){var d,b,e,c,a;if(!this.box_el||!this.box_el.dom){return}d=this.getGrid().getStore();a=!!(this.box_el.hasClass("syno-ux-cb-checked"));if(this.enableFastSelectAll){d.suspendEvents()}for(b=0,c=d.getCount();b<c;b++){e=d.getAt(b).get(this.dataIndex);if(("gray"!==e&&!!(e)===a)||this.isIgnore("all",d.getAt(b))){continue}this.toggleRec(d.getAt(b))}if(this.enableFastSelectAll){this.getGrid().getView().refresh();d.resumeEvents()}if(this.commitChanges){d.commitChanges()}this.checkSelectAll(d)},onCellClick:function(b,e,c){var d=b.getStore(),a=b.view.focusEl.dom;if(this.isIgnore("cell",d.getAt(e))){return}d=b.getStore();this.toggleRec(d.getAt(e));if(this.commitChanges){d.commitChanges()}this.checkSelectAll(d);a.focus()},checkSelectAll:function(f){var c,g,e=f.getCount(),h;var d=(e>0);var b=true;var a=false;if(!this.box_el||!this.box_el.dom){return}for(c=0;c<e;c++){if(this.isIgnore("check",f.getAt(c))){continue}b=false;g=f.getAt(c).get(this.dataIndex);if("gray"===g||!g){d=false}else{a=true}}h=this.box_el.up("td");if(d&&!b){this.box_el.removeClass("syno-ux-cb-grayed");this.box_el.addClass("syno-ux-cb-checked");h.setARIA({checked:true})}else{if(!d&&!b&&a){this.box_el.removeClass("syno-ux-cb-checked");this.box_el.addClass("syno-ux-cb-grayed");h.setARIA({checked:"mixed"})}else{this.box_el.removeClass("syno-ux-cb-checked");this.box_el.removeClass("syno-ux-cb-grayed");h.setARIA({checked:false})}}},renderer:function(f,c,b){var d=("gray"===f?"grayed":f?"checked":"unchecked"),a=(d==="grayed")?"mixed":(d==="checked"),g=(b)?b.id+"_"+this.dataIndex:Ext.id(),e=_JSLIBSTR("uicommon","enable_column_"+d);c=c||{};c.cellAttr='aria-label="'+Ext.util.Format.stripTags(this.orgHeader)+" "+e+'" aria-checked="'+a+'" role="checkbox"';return String.format('<div class="syno-ux-grid-enable-column-{0}" aria-label="'+Ext.util.Format.stripTags(this.orgHeader)+" "+e+'" id="{2}"></div>',d,a,g)},disableRenderer:function(g,d,c){var e="gray"===g?"grayed":g?"checked":"unchecked",b=(e==="grayed")?"mixed":(e==="checked"),h=(c)?c.id+"_"+this.dataIndex:Ext.id(),f=_JSLIBSTR("uicommon","enable_column_"+e)+" "+_JSLIBSTR("common","disabled"),a="disabled-"+e;d=d||{};d.cellAttr='aria-label="'+Ext.util.Format.stripTags(this.orgHeader)+" "+f+'" aria-checked="'+b+'" role="checkbox"';return String.format('<div class="syno-ux-grid-enable-column-{0}" aria-label="'+Ext.util.Format.stripTags(this.orgHeader)+" "+f+'" id="{2}"></div>',a,b,h)}});Ext.Element.addMethods({setARIA:function(f,b){var d=this,c=d.dom,e,a,g;if(!c){return}b=(b!==false)&&!!c.setAttribute;for(a in f){if(f.hasOwnProperty(a)){g=a;e=f[a];if(a=="role"){d.set({role:e})}else{if(a.toLowerCase()=="tabindex"){c.setAttribute(a,e)}else{if(b){g=g.indexOf("aria-")<0?"aria-"+g:g;c.setAttribute(g,e)}else{g=g.indexOf("aria-")<0?"aria-"+g:g;c[g]=e}}}}}return d},setARIAExpanded:function(a){return this.setARIA({expanded:a})},setARIAInvalid:function(a){return this.setARIA({invalid:a})},setARIAOwns:function(a){return this.setARIA({owns:a})},setARIAActiveDescendant:function(a){return this.setARIA({activedescendant:a})},setRole:function(a){return this.setARIA({role:a})},setARIAHasPopUp:function(a){return this.setARIA({haspopup:a})},setARIAChecked:function(a){return this.setARIA({checked:a})},setARIASelected:function(a){return this.setARIA({selected:a})}});Ext.override(Ext.Component,{runTask:function(a,c,e,b){var d=this;if(!d[a]){d[a]=new Ext.util.DelayedTask(c,d)}d[a].delay(Ext.isNumber(e)?e:d.delayTime,null,null,b)},removeDelayedTask:function(b){var a=this[b];if(a&&a.cancel){a.cancel();this[b]=null}}});Ext.override(Ext.util.Observable,{getFleXcrollInfo:function(c){if(!c||!c.fleXdata){return{}}var a=c.fleXdata.scrollPosition,b={hasVerticalScroll:a[1][0]!==false,hasHorizontalScroll:a[0][0]!==false,scrollTop:a[1][0],scrollLeft:a[
310][0],maxVerticalScroll:a[1][1],maxHorizontalScroll:a[0][1]};return b},updateScrollbar:function(d,b){var c=this;if(c.isDestroyed||(c.grid&&c.grid.isDestroyed)){return}var a=!c.isVisible||c.isVisible();if(c instanceof SYNO.ux.FleXcroll.grid.GridView||c instanceof SYNO.ux.FleXcroll.grid.BufferView){a=(c.grid)?c.grid.isVisible():a}if(a){if(d&&d.fleXcroll){if(b){d.fleXcroll.setScrollPos(false,0)}d.fleXcroll.updateScrollBars();if(!b){d.fleXcroll.setScrollPos(0,0,true)}}else{if(d){fleXenv.fleXcrollMain(d,c.disableTextSelect);d.onfleXcroll=(function(){this.fireEvent("flexcroll",this,this.getFleXcrollInfo(d))}).createDelegate(this);if(d.fleXcroll){this.fireEvent("flexcrollInitDone");if(Ext.isDefined(this.flexcrollPosFix)){d.fleXcroll.posFix=this.flexcrollPosFix}}}}}},destroyFleXcroll:function(b){if(!b||!b.dom){return}var c=b.dom;var a=[];if(c.onfleXcroll){c.onfleXcroll=null}if(b.hasClass("flexcrollactive")){a.push(c)}b.select(".flexcrollactive").each(function(d){d.dom.onfleXcroll=null;a.push(d.dom)});if(a.length>0){fleXenv.fleXlist=fleXenv.fleXlist.filter(function(d){return a.indexOf(d)===-1})}},fleXcrollTo:function(a){fleXenv.scrollTo(Ext.get(a).dom)},addPlugins:function(b,a){a=a||{};if(Ext.isObject(a.plugins)||Ext.isString(a.plugins)){a.plugins=[a.plugins]}a.plugins=a.plugins||[];a.plugins.push(b);return a},insertPlugins:function(c,a,b){a=a||{};if(Ext.isObject(a.plugins)||Ext.isString(a.plugins)){a.plugins=[a.plugins]}a.plugins=a.plugins||[];a.plugins.splice(b,0,c);return a}});Ext.override(Ext.BoxComponent,{delayTime:100,updateScrollBarEventNames:["afterlayout","resize"],updateFormForScrollbar:false,updateScrollCls:function(a){if(a.scrollTop===0||!a.hasVerticalScroll){this.getEl().addClass("scroll-at-top")}else{this.getEl().removeClass("scroll-at-top")}if(a.scrollTop===a.maxVerticalScroll||!a.hasVerticalScroll){this.getEl().addClass("scroll-at-bottom")}else{this.getEl().removeClass("scroll-at-bottom")}if(a.scrollLeft===0||!a.hasHorizontalScroll){this.getEl().addClass("scroll-at-left")}else{this.getEl().removeClass("scroll-at-left")}if(a.scrollLeft===a.maxHorizontalScroll||!a.hasHorizontalScroll){this.getEl().addClass("scroll-at-right")}else{this.getEl().removeClass("scroll-at-right")}},initScrollBar:function(){var a=this;Ext.each(a.updateScrollBarEventNames,function(b){this.mon(this,b,function(){this.updateScroller()},this)},a);a.mon(this,"flexcroll",function(b,c){this.updateScrollCls(c)},a,{buffer:100})},updateScroller:function(a){var b=this;b.runTask("updateScrollbarTask",b.updateFleXcroll,a||b.delayTime)},resetScroller:function(a){var b=this;b.runTask("updateScrollbarTask",b.updateFleXcroll,a||b.delayTime,[true])},setFleXcrollPosFix:function(b){var a=this.getContentTarget();if(a&&a.dom&&a.dom.fleXcroll){this.flexcrollPosFix=b;a.dom.fleXcroll.posFix=b}},getScrollTarget:function(){return this.getContentTarget()},updateFleXcroll:function(c){var b=this,a=b.getLayoutTarget?b.getLayoutTarget():b.getScrollTarget();if(Ext.isEmpty(a)){return}b.updateScrollbar(a.dom,c);b.updateScrollCls(b.getFleXcrollInfo(a.dom));if(this.updateFormForScrollbar===true){this.updateFleXcrollForm()}},updateFleXcrollForm:function(){var b=this,a=b.getLayoutTarget?b.getLayoutTarget():b.getScrollTarget();if(Ext.isEmpty(a)||!a.dom.fleXcroll){return}a.dom.fleXcroll.formUpdate()},setAutoFleXcroll:function(a){var b=this;if(b.rendered&&a===true){b.initScrollBar()}b.autoFlexcroll=a;return this},afterRender:function(){Ext.BoxComponent.superclass.afterRender.call(this);if(this.resizeEl){this.resizeEl=Ext.get(this.resizeEl)}if(this.positionEl){this.positionEl=Ext.get(this.positionEl)}this.boxReady=true;if(Ext.isDefined(this.autoScroll)){this.setAutoScroll(this.autoScroll)}this.setSize(this.width,this.height);if(this.x||this.y){this.setPosition(this.x,this.y)}else{if(this.pageX||this.pageY){this.setPagePosition(this.pageX,this.pageY)}}this.setAutoFleXcroll(this.autoFlexcroll)},destroy:function(){this.removeDelayedTask("updateScrollbarTask");this.destroyFleXcroll(this.el);Ext.BoxComponent.superclass.destroy.call(this)}});Ext.override(Ext.layout.ContainerLayout,{onLayout:function(a,b){b=b.hasClass("flexcrollactive")?b.child("div.contentwrapper"):b;this.renderAll(a,b)},isValidParent:function(d,b){if(!b){return false}var a=d.getPositionEl().dom;if(a.parentNode&&Ext.fly(a.parentNode).hasClass("contentwrapper")){a=a.parentNode;if(a.parentNode&&Ext.fly(a.parentNode).hasClass("mcontentwrapper")){a=a.parentNode}}return a.parentNode==(b.dom||b)}});Ext.override(Ext.menu.DateMenu,{initComponent:function(){var a;this.on("beforeshow",this.onBeforeShow,this);this.strict=(Ext.isIE7&&Ext.isStrict);if(this.strict){this.on("show",this.onShow,this,{single:true,delay:20})}a=Ext.getClassByName(this.pickerClass||"Ext.DatePicker");this.picker=new a(Ext.applyIf({internalRender:true,ctCls:"x-menu-date-item",id:this.pickerId},this.initialConfig));Ext.apply(this,{plain:true,showSeparator:false,items:this.picker});this.picker.purgeListeners();Ext.menu.DateMenu.superclass.initComponent.call(this);this.relayEvents(this.picker,["select"]);this.on("show",this.picker.focus,this.picker);this.on("select",this.menuHide,this);if(this.handler){this.on("select",this.handler,this.scope||this)}}});Ext.override(Ext.Button,{useARIA:true,constructor:function(a){if
31(this.useARIA===true){a=a||{};if(a.initialConfig&&a.isAction){Ext.apply(this,this.addPlugins(SYNO.ux.ButtonARIA,{}))}else{a=this.addPlugins(SYNO.ux.ButtonARIA,a)}}Ext.Button.superclass.constructor.call(this,a)},updateDisableConfig:function(a){if(!Ext.isDefined(this.hideDisabledBtn)){this.hideDisabledBtn=a}}});Ext.define("SYNO.ux.FieldSet",{extend:"Ext.form.FieldSet",animCollapse:true,constructor:function(){this.callParent(arguments);this.addListener("beforerender",this.updateUserCollapseState,this);this.addListener("afterrender",this.doLayout.createDelegate(this,[false,true]),this)},onRender:function(b,a){this.callParent(arguments);var c=this.el.select("legend");if(c){if(true===this.collapsible){this.el.set({tabIndex:0,role:"group","aria-expanded":!this.collapsed});this.el.addKeyListener(Ext.EventObject.ENTER,this.onClickLegend,this);this.el.addKeyListener(Ext.EventObject.SPACE,this.onClickLegend,this);c.addListener("click",this.onClickLegend,this)}else{this.addClass("syno-ux-fieldset-default")}c.setStyle({display:"block",width:"100%"})}this.addClass("syno-ux-fieldset")},initEvents:function(){var a=this;this.callParent(arguments);a.mon(a,"collapse",a.updateOwnerCtScroller,a);a.mon(a,"expand",a.updateOwnerCtScroller,a)},afterExpand:function(){this.callParent(arguments);this.doLayout(false)},updateOwnerCtScroller:function(){var a=this;if(a.ownerCt&&a.ownerCt.autoFlexcroll&&a.ownerCt.updateScroller){a.ownerCt.updateScroller()}},updateUserCollapseState:function(){},onClickLegend:function(b,a){var d=b.target||a.target,c=this.el.child("legend");if(Ext.fly(d).up("legend")!==c&&d!==c.dom&&d!==this.el.dom){return}this.el.set({"aria-expanded":this.collapsed});this[this.collapsed?"expand":"collapse"]()}});Ext.define("SYNO.ux.InverseFieldSet",{extend:"SYNO.ux.FieldSet",onRender:function(b,a){this.callParent(arguments);this.header.setVisibilityMode(Ext.Element.DISPLAY);this.header.hide();this.bottomLegend=this.el.createChild({cls:"x-fieldset-bottomlegend",children:[{cls:"x-tool x-tool-toggle"},{tag:"span",cls:"x-fieldset-bottomlegend-text",html:Ext.util.Format.htmlEncode(this.collapsedTitle||this.title)}]});if(this.bottomLegend){if(true===this.collapsible){this.bottomLegend.addListener("click",this.onClickBottom,this)}else{this.bottomLegend.addClass("syno-ux-fieldset-default")}this.bottomLegend.setStyle({display:"block",width:"100%",paddingLeft:30*this.indent+"px"})}this.addClass("syno-ux-inverse-fieldset")},setCollapsedTitle:function(a){this.collapsedTitle=a},setExpandedTitle:function(a){this.expandedTitle=a},expand:function(){this.callParent(arguments);this.bottomLegend.child(".x-fieldset-bottomlegend-text").update(this.expandedTitle||this.title)},collapse:function(){this.callParent(arguments);this.bottomLegend.child(".x-fieldset-bottomlegend-text").update(this.collapsedTitle||this.title)},onClickBottom:function(){this[this.collapsed?"expand":"collapse"]()}});Ext.reg("syno_fieldset",SYNO.ux.FieldSet);Ext.reg("syno_inversefieldset",SYNO.ux.InverseFieldSet);Ext.ns("SYNO.ux");Ext.define("SYNO.ux.FileButton",{extend:"Ext.form.TextField",xtype:"syno_filebutton",buttonOnly:false,buttonMargin:3,inputType:"file",constructor:function(a){this.buttonText=_JSLIBSTR("uicommon","browse");this.callParent(arguments);this.addListener("afterrender",this.updateFileInputStyle);this.addClass("syno-ux-filebutton")},onRender:function(b,a){var c=this,d;c.callParent(arguments);c.wrap=c.el.wrap({cls:"syno-ux-filebutton-wrap"});c.buttonWrap=c.el.wrap({cls:"syno-ux-filebutton-btn-wrap"});if(this.label){this.label.addClass("syno-ux-item-label")}SYNO.ux.Utils.setFormItemIndent(this);c.createButton();c.createFileTextField();d=c.fileTextField.getEl();d.dom.removeAttribute("name");if(c.buttonOnly){c.container.setStyle("min-height","28px");c.fileTextField.setVisible(false)}this.positionEl=this.wrap;c.el.on("mouseover",this.onMouseOverFileInput,this);c.el.on("mouseout",this.onMouseOutFileInput,this);c.el.on("mousedown",this.onMouseDownFileInput,this);c.el.on("mouseup",this.onMouseUpFileInput,this)},createButton:function(){var a=this;a.button=new SYNO.ux.Button(Ext.apply({text:a.buttonText,renderTo:a.buttonWrap,style:a.buttonOnly?"":"margin-left:"+a.buttonMargin+"px",listeners:{afterrender:function(){this.getEl().insertAfter(a.getEl());this.btnEl.set({tabIndex:-1})}},handler:function(){a.el.dom.click()}},a.buttonConfig));a.button.addClass("syno-ux-filebutton-btn")},createFileTextField:function(){var a=this;a.fileTextField=new SYNO.ux.TextField(Ext.apply({width:200,renderTo:a.buttonWrap,readOnly:true,disabled:true,listeners:{afterrender:function(){this.removeClass("x-item-disabled");this.getEl().insertBefore(a.buttonWrap)}}},a.textConfig));a.fileTextField.addClass("syno-ux-filebutton-txt");a.el.on("change",this.onFileChange,a)},updateFileInputStyle:function(){var a=this;a.setWidth(a.button.getWidth());a.setHeight(a.button.getHeight());if(!a.buttonOnly){a.el.setStyle({"margin-left":a.buttonMargin+"px"})}},onMouseOverFileInput:function(){if(this.button){this.button.addClass("x-btn-over")}},onMouseOutFileInput:function(){if(this.button){this.button.removeClass("x-btn-over");this.button.removeClass("x-btn-click")}},onMouseDownFileInput:function(){if(this.button){this.button.addClass("x-btn-click")}},onMouseUpFileInput:function(){if(this.button){this.button.removeClass("x-btn-click")}},onFileChange:function(){var a=this.el.dom.value;this.fileTextField.setValue(a.replace(/^C:\\fakepath\\/gi,""));this.fireEvent("change",a)},reset:function(){var a=this;if(a.rendered){a.fileTextField.setValue("");a.el.dom.value=""}a.callParent()},onDisable:function(){this.callParent();this.disableItems(true)},onEnable:function(){this.callParent();this.disableItems(false)},disableItems:function(a){var c=this.fileTextField,b=this.button;if(c){if(a){c.addClass("x-item-disabled")}else{c.removeClass("x-item-disabled")}}if(b){b.setDisabled(a)}}
31,onDestroy:function(){Ext.destroyMembers(this,"fileTextField","button");this.callParent()}});Ext.define("SYNO.ux.HorizontalGridPanel",{extend:"SYNO.ux.GridPanel",enableScrollMenu:true,visibleCount:5,constructor:function(){this.callParent(arguments);this.addClass("syno-ux-horizontal-grid");this.mon(this,"viewready",function(){this.mon(this,"leftScrollerClick",this.scrollLeft,this);this.mon(this,"rightScrollerClick",this.scrollRight,this)},this)},getFirstShownIdx:function(){var a=this.getColumnModel(),c=a.config,b;for(b=0;b<c.length;b++){if(!c[b].hidden){return b}}},getLastShownIdx:function(){var a=this.getColumnModel(),c=a.config,b;for(b=c.length-1;b>=0;b--){if(!c[b].hidden){return b}}},getShowableIdx:function(f,g,c){var b=this.getColumnModel(),h=b.config,e=0,a=f,d;if(c>0){for(d=f;d<h.length&&e<=g;d++){if(!h[d].forceHidden){a=d;e++}}}else{if(c<0){for(d=f;d>=0&&e<=g;d--){if(!h[d].forceHidden){a=d;e++}}}}return a},hideShowCols:function(d,c,b,g,a){var e,f=d.config;for(e=g;e<=a;e++){if(!f[e]||f[e].forceHidden){continue}d.setHidden(e,false)}for(e=c;e<=b;e++){if(!f[e]||f[e].forceHidden){continue}d.setHidden(e,true)}},updateVisibleCols:function(){var b=this.getColumnModel(),c=b.config,d,a;d=this.getFirstShownIdx();a=this.getShowableIdx(d,this.visibleCount-1,1);this.hideShowCols(b,0,d-1,d,a);this.hideShowCols(b,a+1,c.length-1,d,a)},getVisibleColumnCount:function(){var c=this.colModel.config,b=0,a;for(a=0;a<c.length;a++){if(!c[a].hidden){b++}}return b},showFirstPageCols:function(){var b=this.getShowableIdx(0,0,1),a=this.getShowableIdx(b,this.visibleCount-1,1);this.hideShowCols(this.colModel,-1,-1,b,a)},setColumnHidden:function(b,c){var a=this.getColumnModel(),d=a.config;if(!d[b]){return}if(this.getVisibleColumnCount()<=1){this.showFirstPageCols();a.setHidden(b,c);d[b].forceHidden=c}else{a.setHidden(b,c);d[b].forceHidden=c;this.updateVisibleCols()}},scrollLeft:function(){var c=this.getColumnModel(),b=this.getFirstShownIdx(),d=this.getShowableIdx(b,this.visibleCount-1,1),a=this.getShowableIdx(b,1,-1),e=this.getShowableIdx(a,this.visibleCount-1,-1);if(a<=0||e>=b||a>=b){return}this.hideShowCols(c,b,d,e,a)},scrollRight:function(){var c=this.getColumnModel(),d=c.config,b=this.getFirstShownIdx(),e=this.getShowableIdx(b,this.visibleCount-1,1),f=this.getShowableIdx(e,1,1),a=this.getShowableIdx(f,this.visibleCount-1,1);if(f>=d.length||f<=e||a<=e){return}this.hideShowCols(c,b,e,f,a)},getView:function(){if(!this.view){this.view=new SYNO.ux.FleXcroll.grid.HorizontalGridView(this.viewConfig)}return this.view}});Ext.reg("syno_h_gridpanel",SYNO.ux.HorizontalGridPanel);Ext.define("SYNO.ux.FixColGrid",{extend:"Ext.Panel",visibleCount:5,constructor:function(a){var c=this.initGrids(a),b={layout:"border",items:[this.getWestGrid(),this.getCenterGrid()]};Ext.apply(b,c);this.callParent([b]);this.addClass("syno-ux-fixcol-grid");this.mon(this.centerGrid,"bodyscroll",this.syncWestGridScroll,this)},splitColumns:function(a,e){var b,d=[],c=a.config;e=e||this.rowHeaderId;if(e){Ext.each(c,function(f){if(f.dataIndex!==e){d.push(f)}else{b=f}})}else{b=c[0];d=c.slice(1)}return{west:(b)?[b]:null,center:(d.length>0)?d:null}},reconfigure:function(a,c,f){var h=this.westGrid,d=this.centerGrid,b,g,e;b=this.splitColumns(c,f);if(!b.west||!b.center){throw"west column or center column not found"}if(h){g=new Ext.grid.ColumnModel(b.west);h.reconfigure(a,g)}if(d){e=new Ext.grid.ColumnModel(this.initHiddenColumns(null,b.center));d.reconfigure(a,e)}if(this.store){this.store=null}if(this.colModel){this.colModel=null}this.store=a;this.colModel=c},getStore:function(){return this.store},getColumnModel:function(){return this.colModel},initHiddenColumns:function(a,d){var c=(a&&a.visibleCount)?a.visibleCount:this.visibleCount,b;for(b=c;b<d.length;b++){d[b].hidden=true}return d},setColumnHidden:function(a,b){if(this.centerGrid){this.centerGrid.setColumnHidden(a,b)}},initGrids:function(a){var f=a.colModel,d=a.store,c=a.selModel,e,b=this.enableHdMenu||a.enableHdMenu||false;if(Ext.isArray(a.columns)){f=new Ext.grid.ColumnModel(a.columns);delete a.colModel}if(a.cm){f=a.cm;delete a.cm}e=this.splitColumns(f,a.rowHeaderId);if(a.ds){d=a.ds;delete a.ds}if(a.sm){c=a.sm;delete a.sm}this.westGrid=new SYNO.ux.GridPanel({columns:e.west,width:a.rowHeaderWidth||100,maxSize:a.rowHeaderMaxWidth||200,minSize:a.rowHeaderMinWidth||60,enableHdMenu:false,store:d,region:"west",split:true,layout:"fit",cls:"syno-ux-fixcol-grid-west",view:new SYNO.ux.FleXcroll.grid.GridView({forceFit:true,onLayout:function(h,j){var g=this,i=g.scroller.dom;if(!g.autoFlexcroll){return}if(i.clientWidth===i.offsetWidth){g.scrollOffset=0}else{g.scrollOffset=undefined}this.fitColumns(false);g.updateScrollbar(i)}})});this.centerGrid=new SYNO.ux.HorizontalGridPanel({columns:this.initHiddenColumns(a,e.center),region:"center",store:d,enableHdMenu:b,selModel:c,visibleCount:a.visibleCount||this.visibleCount});this.selModel=this.centerGrid.getSelectionModel();this.colModel=f;this.store=d;return a},getWestGrid:function(){return this.westGrid},getCenterGrid:function(){return this.centerGrid},getSelectionModel:function(){return this.selModel},syncWestGridScroll:function(b,a){if(!this.westGrid){return}this.westGrid.getView().setScroll(a)}});Ext.reg("syno_fixedcolumn_grid",SYNO.ux.FixColGrid);Ext.ns("SYNO.ux");SYNO.ux.FormPanel=Ext.extend(Ext.form.FormPanel,{fieldWidth:200,labelWidth:180,title:"Unknown Title",border:false,frame:false,header:false,autoFlexcroll:true,useDefaultBtn:false,useStatusBar:false,constructor:function(a){var b;b=Ext.apply({useGradient:true,buttons:(a.useDefaultBtn)?[{xtype:"syno_button",btnStyle:"blue",text:_JSLIBSTR("common","commit"),scope:this,handler:this.applyHandler},{xtype:"syno_button",btnStyle:"grey",text:_JSLIBSTR("common","reset"),scope:this,handler:this.cancelHandler}]:null},a);if(b.autoHeight){b.autoFlexcroll=false}if(Ext.isDefined(b.useStatusBar)){this.useStatusBar=b.useStatusBar}else{if(b.useDefaultBtn||this.useDefaultBtn){this.useStatusBar=true}}if(this.useStatusBar){b=this.addsStatusBar(b)}SYNO.ux.FormPanel.superclass.constructor.call(this,b);this.addClass("syno-ux-formpanel");
31if(b.useGradient){this.addClass("syno-ux-formpanel-gradient")}if(undefined===this.getFooterToolbar()){this.addClass("syno-ux-formpanel-no-fbar")}if(undefined===this.getTopToolbar()){this.addClass("syno-ux-formpanel-no-tbar")}if(this.hasFieldSet(b)){this.addClass("syno-ux-formpanel-has-fieldset")}},applySettings:function(b){var a=b.ownerCt;Ext.applyIf(b,{labelAlign:a.labelAlign,labelWidth:a.labelWidth,fieldWidth:a.fieldWidth,itemCls:a.itemCls})},scrollTo:function(a){this.fleXcrollTo(a)},addsStatusBar:function(a){if(!a.buttons){return a}var b={xtype:"statusbar",defaultText:"&nbsp;",statusAlign:"left",buttonAlign:"left",items:[]};if(a.buttons){b.items=b.items.concat(a.buttons);delete a.buttons}Ext.applyIf(a,{fbar:b});return a},applyHandler:Ext.emptyFn,cancelHandler:function(){this.getForm().reset()},setStatus:function(c){c=c||{};var a=this.getFooterToolbar();if(a&&Ext.isFunction(a.setStatus)){a.setStatus(c)}},setStatusBusy:function(a){a=a||{};Ext.applyIf(a,{text:_JSLIBSTR("common","loading"),iconCls:"syno-ux-statusbar-loading"});this.setStatus(a)},setStatusOK:function(a){a=a||{};Ext.applyIf(a,{text:_JSLIBSTR("common","setting_applied"),iconCls:"syno-ux-statusbar-success",clear:true});this.setStatus(a)},setStatusError:function(a){a=a||{};Ext.applyIf(a,{text:_JSLIBSTR("common","error_system"),iconCls:"syno-ux-statusbar-error"});this.setStatus(a)},hasFieldSet:function(c){var b,a;if(!c||!c.items){return false}if(Ext.isObject(c.items)){return this.isFieldSet(c.items)}else{if(Ext.isArray(c.items)){for(b=0,a=c.items.length;b<a;b++){if(this.isFieldSet(c.items[b])){return true}}}}return false},isFieldSet:function(a){if(!a){return false}if(null!==Ext.getClassByName("SYNO.ux.FieldSet")&&a instanceof SYNO.ux.FieldSet){return true}if(a.xtype==="syno_fieldset"){return true}return false}});Ext.reg("syno_formpanel",SYNO.ux.FormPanel);Ext.define("SYNO.ux.plugin.StyledGrid",{extend:"Ext.util.Observable",init:function(a){this.replaceAttrs(a.getView(),this.viewConfig);this.replaceAttrs(a,this.gridConfig)},replaceAttrs:function(c,b){var a=b.replaceArr||[];Ext.iterate(b,function(d,e){if(a.indexOf(d)>=0){c["_styled"+d]=c[d];c[d]=e}else{c[d]=e}},this)},viewConfig:{replaceArr:["initTemplates"],initTemplates:function(){this.templates=this.templates||{};Ext.applyIf(this.templates,{master:new Ext.Template('<div class="x-grid3" hidefocus="true">','<div class="x-grid3-viewport">','<div class="x-grid3-header">','<div class="x-grid3-header-inner">','<div class="x-grid3-header-offset" style="{ostyle}">{header}</div>',"</div>",'<div class="x-grid3-header-bwrap"></div>','<div class="x-clear"></div>',"</div>",'<div class="x-grid3-scroller">','<a href="#" class="x-grid3-focus" tabIndex="0"></a>','<div class="x-grid3-body" style="{bstyle}">{body}</div>',"</div>","</div>",'<div class="x-grid3-resize-marker">&#160;</div>','<div class="x-grid3-resize-proxy">&#160;</div>',"</div>")});this._styledinitTemplates.apply(this,arguments)}},gridConfig:{replaceArr:["afterRender"],afterRender:function(){this.addClass("hide-org-hd-menu");this._styledafterRender.apply(this,arguments);this.headerBtnWrap=this.el.child(".x-grid3-header-bwrap");if(this.headerBtnWrap&&this.enableHdMenu){if(this.enableColumnHide===false){this.headerBtnWrap.addClass("header-btn-hidden");return}this.headerBtn=new Ext.Component({cls:"syno-ux-grid-hd-btn",renderTo:this.headerBtnWrap});this.headerBtn.el.on("click",this.onHeaderBtnClick,this)}},isHiddenColumn:function(a){return !a.hidden},handleHdMenuItemClick:function(c){var a=this.getColumnModel(),d=c.getItemId(),b=a.getIndexById(d.substr(4));if(b!==-1){if(c.checked&&a.getColumnsBy(this.isHiddenColumn,this).length<=1){return}a.setHidden(b,c.checked)}},onHeaderBtnClick:function(b,g,e){var d,a=this.getColumnModel(),h,f;if(!this.headerMenu){this.headerMenu=new SYNO.ux.Menu({items:[]});this.headerMenu.on("itemclick",this.handleHdMenuItemClick,this)}this.headerMenu.removeAll();for(d=0;d<a.getColumnCount();d++){h=a.getColumnAt(d);if(h.hideable!==false){f=new Ext.menu.CheckItem({text:a.getOrgColumnHeader(d),itemId:"col-"+a.getColumnId(d),checked:!a.isHidden(d),hideOnClick:false,htmlEncode:h.headerHtmlEncode});this.headerMenu.add(f)}}this.headerMenu.show(g,"tr-br?")}}});Ext.define("SYNO.ux.FleXcroll.grid.TreeView",{extend:"SYNO.ux.FleXcroll.grid.GridView",useArrows:true,staticTree:false,noNodeIcon:true,constructor:function(a){this.emptyIcon=Ext.BLANK_IMAGE_URL;this.callParent(arguments);this.templates={};this.templates.master=new Ext.Template('<div class="x-grid3 syno-gridtree syno-ux-treepanel" hidefocus="true">','<div class="x-grid3-viewport">','<div class="x-grid3-header">','<div class="x-grid3-header-inner">','<div class="x-grid3-header-offset" style="{ostyle}">{header}</div>',"</div>",'<div class="x-grid3-header-bwrap"></div>','<div class="x-clear"></div>',"</div>",'<div class="x-grid3-scroller">','<div class="x-grid3-body ',(this.useArrows?"x-tree-arrows":this.lines?"x-tree-lines":"x-tree-no-lines")+(this.noNodeIcon?" no-node-icon":""),'" style="{bstyle}">{body}</div>','<a href="#" class="x-grid3-focus" tabIndex="-1"></a>',"</div>","</div>",'<div class="x-grid3-resize-marker">&#160;</div>','<div class="x-grid3-resize-proxy">&#160;</div>',"</div>");this.templates.row=new Ext.Template('<div class="x-grid3-row {alt}" style="{tstyle}">','<table class="x-grid3-row-table" border="0" cellspacing="0" cellpadding="0" style="{tstyle}">','<tbody class="x-tree-node">',"<tr>{cells}</tr>",(this.enableRowBody?'<tr class="x-grid3-row-body-tr" style="{bodyStyle}"><td colspan="{cols}" class="x-grid3-body-cell" tabIndex="0" hidefocus="on"><div class="x-grid3-row-body">{body}</div></td></tr>':""),"</tbody>","</table>","</div>");this.templates.treeCell=new Ext.XTemplate('<td class="syno-gridtree-col x-grid3-col x-grid3-cell x-grid3-td-{id} {css}" style="{style}" tabIndex="-1" {cellAttr} id={[Ext.id()]} role="gridcell" aria-readonly="{readonly}">','<div ext:tree-node-id="{nodeId}" class="x-grid3-col-{id} x-tree-node-el x-unselectable" unselectable="on" {attr}>','<div class="syno-gridtree-icons">','<span class="x-tree-node-indent">{nodeIndent}</span>','<img src="',this.emptyIcon,'" class="x-tree-ec-icon x-tree-elbow {nodeTreeIconCls}" />','<img src="',this.emptyIcon,'" class="x-tree-node-icon {nodeIconCls}" unselectable="on" />',"</div>",'<div class="x-grid3-cell-inner" unselectable="on" {attr}>',"{value}","</div>","</div>","</td>");this.templates.rowInner=new Ext.XTemplate('<table class="x-grid3-row-table" border="0" cellspacing="0" cellpadding="0" style="{tstyle}">','<tbody class="x-tree-node">','<tr role="row" id="{[Ext.id()]}">{cells}</tr>',(this.enableRowBody?'<tr class="x-grid3-row-body-tr" style="{bodyStyle}"><td colspan="{cols}" class="x-grid3-body-cell" tabIndex="0" hidefocus="on"><div class="x-grid3-row-body">{body}</div></td></tr>':""),"</tbody>","</table>")},refreshRow:function(c){var t=this,f=t.ds,p=t.cm.getColumnCount(),b=t.getColumnData(),k=p-1,a=["x-grid3-row"],j={tstyle:String.format("width: {0};",this.getTotalWidth())},e=[],m=this.templates.cell,h=this.getLastVisibleCol(),l,g,d,o,n,s,q,r=c.node;if(Ext.isNumber(c)){l=c;c=f.getAt(l)}else{l=f.indexOf(c)}if(!c||l<0){return}for(s=0;s<p;s++){d=b[s];if(s===0){n="x-grid3-cell-first "}else{n=(s==k)?"x-grid3-cell-last ":""}if(s===h){n+="x-grid3-cell-last-visible "}if(d.editor){if(d.editor instanceof Ext.form.TriggerField){n+="syno-ux-triggerfield"}else{if(d.editor instanceof Ext.form.TextField){n+="syno-ux-textfield"}}}o={id:d.id,style:d.style,css:n,attr:"",cellAttr:"",readonly:d.readonly};o.value=d.renderer.call(d.scope,c.data[d.name],o,c,l,s,f);if(Ext.isEmpty(o.value)){o.value="&#160;"}if(this.markDirty&&c.dirty&&typeof c.modified[d.name]!="undefined"){o.css+=" x-grid3-dirty-cell"}if(d.scope.treeCol&&!q&&r){q=true;o.nodeIndent=this.getChildIndentUI(r);o.nodeIconCls=r.attributes.iconCls||"";o.nodeTreeIconCls=this.getTreeNodeIcon(r);m=this.templates.treeCell}else{m=this.templates.cell}e[s]=m.apply(o)}g=this.getRow(l);g.className="";if(c.depth&&r){if(this.staticTree){a.push("syno-gridtree-static")}if(r.isLeaf()){a.push("x-tree-node-leaf")}else{if(r.expanded){a.push("x-tree-node-expanded")}else{a.push("x-tree-node-collapsed")}}}if(this.grid.stripeRows&&((l+1)%2===0)){a.push("x-grid3-row-alt")}if(this.getRowClass){j.cols=p;a.push(this.getRowClass(c,l,j,f))}this.fly(g).addClass(a).setStyle(j.tstyle);j.cells=e.join("");g.innerHTML=this.templates.rowInner.apply(j);this.fireEvent("rowupdated",this,l,c)},getChildIndentUI:function(b){var c=[];var a=b.parentNode;
31while(a){if(!a.isRoot){if(!a.isLast()){c.unshift('<img src="'+this.emptyIcon+'" class="x-tree-elbow-line" />')}else{c.unshift('<img src="'+this.emptyIcon+'" class="x-tree-icon" />')}}a=a.parentNode}return c.join("")},getTreeNodeIcon:function(b){var a=b.isLast()?"x-tree-elbow-end":"x-tree-elbow";if(b.hasChildNodes()&&!this.staticTree){if(b.expanded){a+="-minus"}else{a+="-plus"}a+=" syno-gridtree-node-control"}return a},doRender:function(g,k,o,a,n,s){var f=[];var e;var c;var b;var q={};var u={tstyle:"width:"+this.getTotalWidth()+";"};var d;var x=[];var p;var h=this.getLastVisibleCol();for(var t=0,w=k.length;t<w;t++){d=k[t];e=[];p=false;var l=(t+a),r=d.node,m;for(var v=0;v<n;v++){c=g[v];if(v===0){m="x-grid3-cell-first "}else{if(v===n-1){m="x-grid3-cell-last "}else{m=""}}if(v===h){m+="x-grid3-cell-last-visible "}if(c.editor){if(c.editor instanceof Ext.form.TriggerField){m+="syno-ux-triggerfield"}else{if(c.editor instanceof Ext.form.TextField){m+="syno-ux-textfield"}}}q.id=c.id;q.css=m;q.attr=q.cellAttr="";q.value=c.renderer.call(c.scope,d.data[c.name],q,d,l,v,o);q.style=c.style;q.readonly=c.readonly;if(Ext.isEmpty(q.value)){q.value="&#160;"}if(this.markDirty&&d.dirty&&Ext.isDefined(d.modified[c.name])){q.css+=" x-grid3-dirty-cell"}if(c.scope.treeCol&&!p&&r){p=true;q.nodeIndent=this.getChildIndentUI(r);q.nodeIconCls=r.attributes.iconCls||"";q.nodeTreeIconCls=this.getTreeNodeIcon(r);b=this.templates.treeCell}else{b=this.templates.cell}e[e.length]=b.apply(q)}var y=[];if(d.depth&&r){if(x.length<d.depth){f.push('<div class="x-tree-node-ct">');x.push("</div>")}else{while(x.length>d.depth){f.push(x.pop())}}if(this.staticTree){y.push("syno-gridtree-static")}if(r.isLeaf()){y.push("x-tree-node-leaf")}else{if(r.expanded){y.push("x-tree-node-expanded")}else{y.push("x-tree-node-collapsed")}}}if(s&&((l+1)%2===0)){y.push("x-grid3-row-alt")}if(d.dirty){y.push(" x-grid3-dirty-row")}u.cols=n;u.nodeId=r?r.id:Ext.id();u.cells=e.join("");if(this.getRowClass){y.push(this.getRowClass(d,l,u,o))}u.alt=y.join(" ");f[f.length]=this.templates.row.apply(u)}while(x.length){f.push(x.pop())}return f.join("")},afterRender:function(){this.callParent(arguments);if(!this.staticTree){this.mainBody.on("click",function(b,a){this.toggleNode(a)},this,{delegate:".syno-gridtree-node-control"});this.mainBody.on("dblclick",function(b,a){this.toggleNode(a)},this,{delegate:".x-tree-node-el"})}},refresh:function(){this.callParent(arguments);this.hideCollapseNodes()},hideCollapseNodes:function(){var d=this.grid,b=d.store,a=d.view,c=0,g,f,e;while(c<b.getCount()){g=a.getRow(c);f=b.getAt(g.rowIndex).node;if(f&&!f.isLeaf()&&f.expanded===false){e=g.next(".x-tree-node-ct",false);if(e){e.setStyle({display:"none"})}c+=f.childNodes.length}else{c++}}},toggleNode:function(b){var e=Ext.get(this.findRow(b));var d=this.grid.getStore().getAt(e.dom.rowIndex).node;var c=e.next(".x-tree-node-ct",false);var a=e.child(".syno-gridtree-node-control",false);if(c&&a){if(d.expanded){c.enableDisplayMode("block");c.stopFx();e.removeClass("x-tree-node-expanded");a.removeClass(d.isLast()?"x-tree-elbow-end-minus":"x-tree-elbow-minus");e.addClass("x-tree-node-collapsed");a.addClass(d.isLast()?"x-tree-elbow-end-plus":"x-tree-elbow-plus");c.slideOut("t",{callback:function(){e.highlight();d.expanded=false;this.updateScroller()},scope:this,duration:0.25})}else{c.stopFx();e.addClass("x-tree-node-expanded");a.addClass(d.isLast()?"x-tree-elbow-end-minus":"x-tree-elbow-minus");e.removeClass("x-tree-node-collapsed");a.removeClass(d.isLast()?"x-tree-elbow-end-plus":"x-tree-elbow-plus");c.slideIn("t",{callback:function(){c.highlight();d.expanded=true;this.updateScroller()},scope:this,duration:0.25})}}},getRows:function(){return this.hasRows()?this.mainBody.query(this.rowSelector):[]}});Ext.define("SYNO.ux.plugin.GroupHeaderGrid",{extend:"Ext.util.Observable",constructor:function(a){this.config=a;Ext.apply(this.cmConfig,a.cmConfig)},init:function(a){Ext.applyIf(a.colModel,this.config);Ext.apply(a.colModel,this.cmConfig);this.replaceAttr(a.getView(),this.viewConfig);a.mon(a,"viewready",a.getView().updateSpanHeaderWidth,a.getView());Ext.apply(a,this.gridConfig);this.constructHeaderLayout(a.colModel)}
31,replaceAttr:function(b,c){var a=["initTemplates","afterRenderUI","onColumnWidthUpdated","onAllColumnWidthsUpdated","onColumnHiddenUpdated","getCellIndex"];Ext.iterate(c,function(d,e){if(a.indexOf(d)>=0){b["_"+d]=b[d];b[d]=e}else{b[d]=e}},this)},gridConfig:{handleHdMenuItemClick:function(c){var a=this.getColumnModel(),d=c.getItemId(),e=d.indexOf("group-")===0,b;if(e){if(c.checked&&a.getColumnsBy(this.isHiddenColumn,this).length<=c.cols.length){return}a.collayout[c.groupIndex].hidden=c.checked;Ext.each(c.cols,function(f){a.setHidden(f,c.checked)},this)}else{b=a.getIndexById(d.substr(4));if(b!==-1){if(c.checked&&a.getColumnsBy(this.isHiddenColumn,this).length<=1){return}a.collayout[c.groupIndex].hidden=c.checked;a.setHidden(b,c.checked)}}},onHeaderBtnClick:function(n,h,b){var e,l=this.getColumnModel(),f,j,m,a,k,d=l.collayout;if(!this.headerMenu){this.headerMenu=new SYNO.ux.Menu({items:[]});this.headerMenu.on("itemclick",this.handleHdMenuItemClick,this)}this.headerMenu.removeAll();for(e=0;e<d.length;e++){f=d[e];k=f.grouped;m=f.mappingIdx;j=l.getColumnAt(m);a=new Ext.menu.CheckItem({text:(!k)?l.getColumnHeader(m):f.header,itemId:(!k)?"col-"+l.getColumnId(m):"group-"+f.groupIndex,checked:(!k)?!l.isHidden(m):!f.hidden,disabled:(!k)?j.hideable===false:f.hideable===false,cols:(f.colspan>1)?f.children.map(function(g){return g.mappingIdx}):[m],groupIndex:f.groupIndex,hideOnClick:false,htmlEncode:(!k)?j.headerHtmlEncode:f.headerHtmlEncode});this.headerMenu.add(a)}this.headerMenu.show(h,"tr-br?")}},viewConfig:{colspanHeaderSelector:".x-grid3-cell-colspan",rowspanHeaderSelector:".x-grid3-cell-rowspan",initTemplates:function(){var a=this.templates||{};Ext.applyIf(a,{header:new Ext.Template('<table border="0" cellspacing="0" cellpadding="0" style="{tstyle}">',"<thead>","{cells}","</thead>","</table>")});this._initTemplates.apply(this,arguments);var b=this.templates||{};if(!b.gcell){b.gcell=new Ext.XTemplate('<td class="x-grid3-hd x-grid3-cell x-grid3-td-{id} {css}" style="{style}" role="{role}" tabIndex="-1" {ariaAttr} rowspan="{rowspan}" colspan="{colspan}"',' data-contain-cols="{col}" data-is-children="{isChildren}" data-child-index="{childIndex}" data-group-index="{groupIndex}">','<div {tooltip} {attr} class="x-grid3-hd-inner x-grid3-hd-{id}" unselectable="on" style="{istyle}">',this.grid.enableHdMenu?'<a class="x-grid3-hd-btn" href="#"></a>':"",'<tpl if="htmlEncode">{value:htmlEncode}</tpl>','<tpl if="!htmlEncode">{value}</tpl>','<img alt="" class="x-grid3-sort-icon" src="',Ext.BLANK_IMAGE_URL,'" />',"</div>","</td>")}this.templates=b},getHeaderCellHTML:function(c){var b=this.cm,a=c.mappingIdx,g=c.grouped,e="x-grid3-grouped-header ",d=b.getColumnAt(a),f;e+=(a===0)?"x-grid3-cell-first ":"";e+=(a==(b.getColumnCount()-1))?"x-grid3-cell-last ":"";e+=(c.rowspan&&c.rowspan>1)?"x-grid3-cell-rowspan ":"";e+=(c.colspan&&c.colspan>1)?"x-grid3-cell-colspan ":"";if(c.isChildren){if(c.childIndex===b.collayout[c.groupIndex].children.length-1){e+="x-gri3-child-last "}}f={rowspan:c.rowspan||1,colspan:c.colspan||1,isChildren:Ext.isBoolean(c.isChildren)?c.isChildren:false,childIndex:Ext.isNumber(c.childIndex)?c.childIndex:-1,groupIndex:c.groupIndex,col:(c.colspan>1)?c.children.map(function(h){return h.mappingIdx}).join("-"):a,id:(!g)?b.getColumnId(a):Ext.id(),value:(!g)?b.getColumnHeader(a)||"":c.header||"",style:(!g)?this.getColumnStyle(a,true):(c.hidden)?"display: none; ":"",css:e,tooltip:(!g)?this.getColumnTooltip(a):"",htmlEncode:(!g)?!!d.headerHtmlEncode:!!c.headerHtmlEncode,role:(!g)?Ext.isFunction(d.getHeaderRole)?d.getHeaderRole():"columnheader":"columnheader",ariaAttr:(!g)?Ext.isFunction(d.getHeaderAriaAttr)?d.getHeaderAriaAttr():"":""};return this.templates.gcell.apply(f)},renderHeaders:function(){var h=this.templates,b=[],f=this.cm.collayout,k,a,c=[],g=[],e,d,l=[];for(e=0;e<f.length;e++){k=f[e];c.push(this.getHeaderCellHTML(k));if(k.grouped){for(d=0;d<k.children.length;d++){a=k.children[d];g.push(this.getHeaderCellHTML(a))}}}l.push('<tr class="x-grid3-hd-row x-grid3-hd-first-row">'+c.join("")+"</tr>");l.push('<tr class="x-grid3-hd-row x-grid3-hd-last-row">'+g.join("")+"</tr>");b=h.header.apply({cells:l.join(""),tstyle:String.format("width: {0};",this.getTotalWidth())});return b},onDataChange:function(){this.refresh(true);this.updateHeaderSortState();this.syncFocusEl(0);this.updateSpanHeaderWidth()},onColumnMove:function(a,c,b){this.indexMap=null;this.refresh(true);this.restoreScroll(this.getScrollState());this.afterMove(b);this.grid.fireEvent("columnmove",c,b);this.updateSpanHeaderWidth()},updateSpanHeaderWidth:function(){var f=this.cm.getColumnCount(),b=this.mainHd.child("table"),a=b.dom,c=[],d,e;if(a.firstChild.nodeName.toUpperCase()==="COLGROUP"){a.removeChild(a.childNodes[0])}for(d=0;d<f;d++){if(this.cm.isHidden(d)){continue}e=parseInt(this.getColumnWidth(d),10);c.push({tag:"col",style:String.format("width: {0}px",e+1)})}b.insertFirst({tag:"colgroup",children:c})},updateHeaderGroupVisibility:function(){var a=this.cm.collayout,c,e,d,b=this.mainHd.child("table").child(".x-grid3-hd-first-row").query("td");for(c=0;c<a.length;c++){e=a[c];d=Ext.fly(b[c]);if(e.hidden&&!d.hasClass("hidden")){d.addClass("hidden")}if(!e.hidden&&d.hasClass("hidden")){d.removeClass("hidden")}}}
31,onColumnWidthUpdated:function(){this._onColumnWidthUpdated.apply(this,arguments);this.updateSpanHeaderWidth()},onAllColumnWidthsUpdated:function(){this._onAllColumnWidthsUpdated.apply(this,arguments);this.updateSpanHeaderWidth()},onColumnHiddenUpdated:function(){this._onColumnHiddenUpdated.apply(this,arguments);this.updateHeaderGroupVisibility();this.updateSpanHeaderWidth()},getHeaderCell:function(b){var a=this.mainHd.query(this.cellSelector);for(var c=0;c<a.length;c++){if(a[c].getAttribute("data-contain-cols")===b.toString()){return a[c]}}return null},findHeaderCell:function(a){return a?this.fly(a).findParent("td.x-grid3-hd",this.cellSelectorDepth):false},isCellChildren:function(a){if(a){return a.getAttribute("data-is-children")==="true"}return false},getGroupIndex:function(a){if(a){return parseInt(a.getAttribute("data-group-index"),10)}return false},getContainedIndices:function(a){if(a){return a.getAttribute("data-contain-cols").split("-").map(function(b){return parseInt(b,10)})}return false},getChildIndex:function(a){if(a){return parseInt(a.getAttribute("data-child-index"),10)}return false},getCellIndex:function(){var a=this._getCellIndex.apply(this,arguments);return(a<0)?false:a},findHeaderIndex:function(b){var a=this.findHeaderCell(b);return this.getCellIndex(a)},updateSortIcon:function(b,a){var d=this.sortClasses;var c=this.mainHd.select(this.cellSelector).removeClass(d);Ext.each(c.elements,function(e){if(e.getAttribute("data-contain-cols")===b.toString()){Ext.fly(e).addClass(d[a==="DESC"?1:0])}})},afterRenderUI:function(){this._afterRenderUI.apply(this,arguments);Ext.apply(this.columnDrop,SYNO.ux.plugin.GroupHeaderGrid.prototype.columnDropConfig);Ext.apply(this.splitZone,SYNO.ux.plugin.GroupHeaderGrid.prototype.splitZoneConfig)}},cmConfig:{isColExist:function(a){return !!this.config[a]},isMenuDisabled:function(a){if(this.isColExist(a)){return Ext.grid.ColumnModel.prototype.isMenuDisabled.apply(this,arguments)}return true},isFixed:function(a){if(this.isColExist(a)){return Ext.grid.ColumnModel.prototype.isFixed.apply(this,arguments)}return true},isCellEditable:function(b,d){var e=this.config[b],a=e.editable;return !!(e&&a||(!Ext.isDefined(a)&&e.editor))},isResizable:function(a){if(this.isColExist(a)){return Ext.grid.ColumnModel.prototype.isResizable.apply(this,arguments)}return true},moveColumn:function(e,b,c){var a=this.config,d;d=a.splice(e,c);a.splice.apply(a,[b,0].concat(d));this.dataMap=null;this.fireEvent("columnmoved",this,e,b)}},splitZoneConfig:{allowHeaderDrag:function(a){return !!a.getTarget(".x-grid3-grouped-header")}},columnDropConfig:{getTargetFromEvent:function(b){var a=Ext.lib.Event.getTarget(b);return this.view.findHeaderCell(a)},positionIndicator:function(b,f,d){var c=SYNO.ux.plugin.GroupHeaderGrid.prototype.getDragDropData.call(this,b,f,d);if(c===false){return false}var a=c.px+this.proxyOffsets[0];if(c.isNewChildren){this.proxyTop.setLeftTop(a,c.r.top+this.proxyOffsets[1]);this.proxyBottom.setLeftTop(a,c.r.bottom)}else{this.proxyTop.setLeftTop(a,c.r.top+this.proxyOffsets[1]);this.proxyBottom.setLeftTop(a,c.r.top+this.proxyOffsets[1]+54)}this.proxyTop.show();this.proxyBottom.show();return c.pt},onNodeDrop:function(f,s,k,i){var j=i.header;if(j!=f){var m=SYNO.ux.plugin.GroupHeaderGrid.prototype.getDragDropData.call(this,j,f,k);if(m===false){return false}var q=this.grid.colModel,o=q.collayout,b,c,p,l,r,a,g;if(m.oldGroup!==m.newGroup){r=m.oldGroup>m.newGroup;c=o[m.newGroup];b=o[m.oldGroup].mappingIdx;if(r){l=(m.pt==="before")?m.newGroup:m.newGroup+1}else{l=(m.pt==="before")?m.newGroup-1:m.newGroup}if(m.oldGroup===l){return false}g=o.splice(m.oldGroup,1)[0];o.splice(l,0,g);SYNO.ux.plugin.GroupHeaderGrid.prototype.constructHeaderLayout(q);p=o[l].mappingIdx;q.moveColumn(b,p,(g.grouped)?g.children.length:1)}else{r=m.oldChildIndex>m.newChildIndex;b=o[m.oldGroup].children[m.oldChildIndex].mappingIdx;if(r){l=(m.pt==="before")?m.newChildIndex:m.newChildIndex+1}else{l=(m.pt==="before")?m.newChildIndex-1:m.newChildIndex}if(l===m.oldChildIndex){return false}a=o[m.oldGroup].children[m.oldChildIndex];o[m.oldGroup].children.splice(m.oldChildIndex,1);o[m.oldGroup].children.splice(l,0,a);SYNO.ux.plugin.GroupHeaderGrid.prototype.constructHeaderLayout(q);p=o[m.oldGroup].children[l].mappingIdx;q.moveColumn(b,p,1)}return true}return false}},initGroupedColLayout:function(o){var b=o.groups,d={},k=o.getColumnCount(),l,f,e,h,n,m=[],a,p=function(c){return{dataIndex:c.dataIndex,width:c.width,header:c.header}};n=0;for(f=0;f<b.length;f++){b[f].tmpIdx=n++;for(e=0;e<b[f].dataIndex.length;e++){d[b[f].dataIndex[e]]=b[f]}}for(f=0;f<k;f++){a=m[m.length-1];l=o.getColumnAt(f);h=d[l.dataIndex];if(!h){m.push(Ext.apply({grouped:false,rowspan:2},p(l)))}else{if(a&&a.tmpIdx===h.tmpIdx){a.children.push(Ext.apply({isChildren:true},p(l)))}else{m.push({tmpIdx:h.tmpIdx,grouped:true,hideable:h.hideable,header:h.header,headerHtmlEncode:Ext.isBoolean(h.headerHtmlEncode)?h.headerHtmlEncode:true,hidden:!!h.hidden,children:[Ext.apply({isChildren:true},p(l))]})}}}for(f=0;f<m.length;f++){delete m[f].tmpIdx}o.collayout=m},constructHeaderLayout:function(a){var e,c,d,b;if(!a.collayout){this.initGroupedColLayout(a)}e=a.collayout;b=0;for(d=0;d<e.length;d++){c=e[d];if(!c.grouped){Ext.apply(c,{groupIndex:d,mappingIdx:b++})}else{Ext.apply(c,{groupIndex:d,colspan:c.children.length,mappingIdx:b});Ext.each(c.children,function(g,f){Ext.apply(g,{childIndex:f,groupIndex:d,mappingIdx:b+f})});b+=c.children.length}}},getDragDropData:function(j,d,l){if(j.parentNode!=d.parentNode){return false}var s=this.grid.colModel;var p=Ext.lib.Event.getPageX(l);var a=Ext.lib.Dom.getRegion(d);var q,t;if((a.right-p)<=(a.right-a.left)/2){q=a.right;t="after"}else{q=a.left;t="before"}var k,m,f,o,b,c;k=this.view.getContainedIndices(j);m=this.view.getContainedIndices(d);for(var g=0;g<m.length;g++){if(s.isFixed(m[g])){return false}}f=this.view.isCellChildren(j);o=this.view.isCellChildren(d);if((f&&!o)||(!f&&o)){return false}b=this.view.getGroupIndex(j);c=this.view.getGroupIndex(d);if((f&&o)&&(b!==c)){return false}return{r:a,px:q,pt:t,oldGroup:b,newGroup:c,oldChildIndex:this.view.getChildIndex(j),newChildIndex:this.view.getChildIndex(d),oldIndices:k,newIndices:m,isNewChildren:o}}});Ext.define("SYNO.ux.InvalidQuickTip",{extend:"Ext.QuickTip",xtype:"syno_invalidquicktip",floating:{shadow:false,shim:true,useDisplay:true,constrain:false},tagConfig:{namespace:"ext",attribute:"itip",width:"qwidth",target:"target",title:"qtitle",hide:"hide",cls:"iclass",align:"qalign",anchor:"anchor"},getTipCfg:function(d){var b=d.getTarget(),c,a;if(this.interceptTitles&&b.title&&Ext.isString(b.title)){c=b.title;b.itip=c;b.removeAttribute("title");d.preventDefault()}else{a=this.tagConfig;c=b.itip||Ext.fly(b).getAttribute(a.attribute,a.namespace)}return c}});Ext.form.MessageTargets.itip={mark:function(a,b){a.el.addClass(a.invalidClass);a.el.dom.itip=b;a.el.dom.iclass="x-form-invalid-tip";if(SYNO.ux.InvalidQuickTips){SYNO.ux.InvalidQuickTips.enable()}},clear:function(a){a.el.removeClass(a.invalidClass);a.el.dom.itip=""}};SYNO.ux.InvalidQuickTips=function(){var b,a=false;return{init:function(c){if(!b){if(!Ext.isReady){Ext.onReady(function(){SYNO.ux.InvalidQuickTips.init(c)});return}b=new SYNO.ux.InvalidQuickTip({baseCls:"x-tip-invalid",elements:"header,body",disabled:a});if(c!==false){b.render(Ext.getBody())}}},ddDisable:function(){if(b&&!a){b.disable()}},ddEnable:function(){if(b&&!a){b.enable()}},enable:function(){if(b){b.enable()}a=false},disable:function(){if(b){b.disable()}a=true},isEnabled:function(){return b!==undefined&&!b.disabled},getQuickTip:function(){return b},register:function(){b.register.apply(b,arguments)},unregister:function(){b.unregister.apply(b,arguments)},tips:function(){b.register.apply(b,arguments)}}}();SYNO.ux.InvalidQuickTips.init(true);Ext.define("SYNO.ux.Menu",{extend:"Ext.menu.Menu",xtype:"syno_menu",shadow:false,useARIA:true,hideOnScroll:false,constructor:function(a){if
31(this.useARIA===true){a=this.addPlugins(SYNO.ux.MenuARIA,a)}this.callParent([a]);this.addClass("syno-ux-menu");if(this.autoFlexcroll){this.addClass("syno-ux-menu-autofexcroll")}this.mon(this,"show",this.onMenuShow,this);this.mon(Ext.getBody(),"mousewheel",this.onBodyMouseWheel.bind(this))},createScrollers:function(){if(!this.autoFlexcroll){this.callParent(arguments)}},onBodyMouseWheel:function(a){if(this.hideOnScroll!==true){return}if(!this.isDestroyed&&!a.within(this.el)){this.hide()}},resetWidthForFlexcroll:function(){if(!this.autoFlexcroll){return}var b=this.items.items,d=0,a=null,c;Ext.each(b,function(e){if(!e.isVisible()){return}if(e.text){c=Ext.util.TextMetrics.measure(e.textEl,e.text);if(c.width>d){d=c.width;a=e}}},this);if(d&&a){d=d+a.textEl.getFrameWidth("lr")+a.textEl.getMargins("lr")+a.iconEl.getWidth()+a.iconEl.getMargins("lr")+a.el.getFrameWidth("r")+a.el.getMargins("lr");this.ul.setWidth(d)}},onMenuShow:function(){this.resetWidthForFlexcroll()},getAriaEl:function(){return this.ul},focus:function(){if(!this.hidden){this.doFocus()}},focusOnRootOpenPt:function(){var a=this;while(a.parentMenu){a=a.parentMenu}if(a.getOpenPt){a.getOpenPt().focus()}}});Ext.define("SYNO.ux.ModuleList",{extend:"Ext.tree.TreePanel",listItems:undefined,dataUrl:undefined,searchCfg:undefined,findNext:true,updateScrollBarEventNames:["afterlayout","resize","expandnode","collapsenode"],useARIA:true,htmlEncode:true,constructor:function(b){var a=this.createLoader(b);var c={border:false,rootVisible:false,useArrows:true,animate:true,width:240,padding:"4px 16px 0 12px",autoScroll:false,autoFlexcroll:true,loader:a,root:new Ext.tree.AsyncTreeNode({id:"module_root",leaf:false,expanded:true,text:"root",loader:a})};this.addToolbar(b);Ext.apply(c,b);if(this.useARIA===true){c=this.addPlugins(SYNO.ux.TreePanelARIA,c)}this.callParent([c]);this.addClass("syno-ux-modulelist");this.getSelectionModel().on("beforeselect",this.onBeforeSelect,this);this.mon(this.getSelectionModel(),"selectionchange",this.protectFocus,this)},addToolbar:function(a){if(a.tbar){return}if(!a.searchCfg){return}var b={tbar:{height:28,items:[this.searchField=new SYNO.TextFilter(a.searchCfg)]}};Ext.apply(a,b)},createLoader:function(a){return new SYNO.ux.ModuleList.Loader({baseAttrs:a.baseAttrs,moduleList:this,disableCaching:!!a.disableCaching,dataUrl:a.dataUrl,listItems:a.listItems?a.listItems:null,loadParam:a.loadParam,requestMethod:"GET"})},onBeforeSelect:function(a,b,c){if(!b.leaf){return false}return true},getLocalizedString:function(a){return a},selectModule:function(a){var b,c;b=this.getNodeById(a);if(b){c=this.getSelectionModel().select(b)}return c},setModuleVisible:function(b,a){var c;c=this.getNodeById(b);if(c){if(a){c.getUI().show()}else{c.getUI().hide()}this.updateScrollbar(this.body.dom)}},removeModule:function(a){var b;b=this.getNodeById(a);if(b){b.remove()}},insertModule:function(a,d){var c,b;b=this.getRootNode();c=this.getNodeById(d);if(b&&c){b.insertBefore(a,c)}},appendModule:function(a){var b;b=this.getRootNode();if(b){b.appendChild(a)}},initComponent:function(){this.callParent(arguments);this.addEvents("rootnoderendered","noderendered")},registerNode:function(a){if(this.nodeHash[a.id]===undefined){a.on("noderender",this.onNodeRender,this)}this.nodeHash[a.id]=a},unregisterNode:function(a){a.un("noderender",this.onNodeRender,this);delete this.nodeHash[a.id]},onNodeRender:function(a){if(a.isRoot){this.fireEvent("rootnoderendered",a,this);if(!this.rootVisible){return}}this.fireEvent("noderendered",a,this)},getAriaEl:function(){if(!this.ariaEl){this.ariaEl=this.body}return this.ariaEl},protectFocus:function(b,c){if(!this.rendered||!this.autoFlexcroll){return}var a=this.body;a.dom.focusProtect=!!c;if(c){c.ensureVisible()}},setNotification:function(c,a){var b=this.getNodeById(c);if(!b||!a){return}var d=Ext.DomQuery.select(".syno-ux-count-bubble",b.getUI().elNode);if(d.length>0){if(parseInt(d[0].innerText,10)===a&&!Ext.fly(d[0]).hasClass("count-bubble-hide")){return}d[0].innerText=a;d[0].className="syno-ux-count-bubble";setTimeout(function(){d[0].className="syno-ux-count-bubble count-bubble-show"},0)}else{Ext.DomHelper.append(b.getUI().elNode,"<div class='syno-ux-count-bubble count-bubble-show'>"+a+"</div>")}},clearNotification:function(b){var a=this.getNodeById(b);if(!a){return}var c=Ext.DomQuery.select(".syno-ux-count-bubble",a.getUI().elNode);
31if(c.length>0){c[0].className="syno-ux-count-bubble count-bubble-hide"}}});Ext.define("SYNO.ux.ModuleList.Loader",{extend:"Ext.tree.TreeLoader",applyLoader:true,constructor:function(a){this.callParent(arguments)},load:function(b,c,a){if(this.clearOnLoad){while(b.firstChild){b.removeChild(b.firstChild)}}if(this.doPreload(b)){this.runCallback(c,a||b,[b])}else{if(this.directFn||this.dataUrl||this.url||this.listItems){this.requestData(b,c,a||b)}}},doPreload:function(a){a.attributes.children=a.attributes.items;return this.callParent(arguments)},createNode:function(a){if(this.baseAttrs){Ext.applyIf(a,this.baseAttrs)}if(this.applyLoader!==false&&!a.loader){a.loader=this}if(!a.uiProvider){a.uiProvider=SYNO.ux.ModuleList.TreeNodeUI}if(a.fn){a.id=a.fn}a.text=this.moduleList.getLocalizedString(a.text);if(a.nodeType){return new Ext.tree.TreePanel.nodeTypes[a.nodeType](a)}else{if(!a.items){a.leaf=true;return new Ext.tree.TreeNode(a)}else{a.singleClickExpand=true;if(false!==a.expanded){a.expanded=true}return new Ext.tree.AsyncTreeNode(a)}}},requestData:function(c,d,b){if(c.isRoot&&this.listItems){this.processResponse(null,c,d,b);return}if(this.fireEvent("beforeload",this,c,d)!==false){if(this.directFn){var a=this.getParams(c);a.push(this.processDirectResponse.createDelegate(this,[{callback:d,node:c,scope:b}],true));this.directFn.apply(window,a)}else{this.transId=Ext.Ajax.request({method:this.requestMethod,url:this.dataUrl||this.url,success:this.handleResponse,failure:this.handleFailure,disableCaching:!!this.disableCaching,scope:this,argument:{callback:d,node:c,scope:b},params:this.getParams(c)})}}else{this.runCallback(d,b||c,[])}},getLoadParam:function(){return this.loadParam},getParams:function(){var a=this.callParent(arguments);Ext.apply(a,this.getLoadParam()||{});return a},processResponse:function(d,c,j,k){var l,a;try{if(this.listItems){a=this.listItems}else{if(d){l=d.responseText;a=d.responseData||Ext.decode(l);if(a.listItems){a=a.listItems}}}c.beginUpdate();for(var f=0,g=a.length;f<g;f++){var b=this.createNode(a[f]);if(b){c.appendChild(b)}}c.endUpdate();this.runCallback(j,k||c,[c])}catch(h){this.handleFailure(d)}}});Ext.define("SYNO.ux.ModuleList.TreeNodeUI",{extend:"Ext.tree.TreeNodeUI",getChildIndent:function(){this.childIndent="";return this.childIndent},renderElements:function(f,c,e,b){var d;if(c.icon){d=c.icon;delete c.icon}this.base_renderElements(f,c,e,b);if(d){c.icon=d}},base_renderElements:function(d,j,h,k){this.indentMarkup=d.parentNode?d.parentNode.ui.getChildIndent():"";var e=Ext.isBoolean(j.checked),b,i=d.attributes.htmlEncode!==false&&d.htmlEncode!==false&&d.ownerTree.htmlEncode!==false,c=Ext.isFunction(j.getTpl)?j.getTpl(this,d,j,h,k):['<li class="x-tree-node"><div ext:tree-node-id="',d.id,'" class="x-tree-node-el x-tree-node-leaf x-unselectable ',j.cls,'" unselectable="on">','<span class="x-tree-node-indent">',this.indentMarkup,"</span>",'<img alt="" src="',this.emptyIcon,'" class="x-tree-ec-icon x-tree-elbow" />','<img alt="" src="',j.icon||this.emptyIcon,'" class="x-tree-node-icon',(j.icon?" x-tree-node-inline-icon":""),(j.iconCls?" "+j.iconCls:""),'" unselectable="on" />',e?('<input class="x-tree-node-cb" type="checkbox" '+(j.checked?'checked="checked" />':"/>")):"",'<a hidefocus="on" class="x-tree-node-anchor"',j.href?' href="'+j.href+'"':"",' tabIndex="-1" ',j.hrefTarget?' target="'+j.hrefTarget+'"':"",'><span unselectable="on">',(i)?Ext.util.Format.htmlEncode(d.text):d.text,"</span></a></div>",'<ul class="x-tree-node-ct" style="display:none;"></ul>',"</li>"].join("");if(k!==true&&d.nextSibling&&(b=d.nextSibling.ui.getEl())){this.wrap=Ext.DomHelper.insertHtml("beforeBegin",b,c)}else{this.wrap=Ext.DomHelper.insertHtml("beforeEnd",h,c)}this.elNode=this.wrap.childNodes[0];this.ctNode=this.wrap.childNodes[1];var g=this.elNode.childNodes;this.indentNode=g[0];this.ecNode=g[1];this.iconNode=g[2];var f=3;if(e){this.checkbox=g[3];this.checkbox.defaultChecked=this.checkbox.checked;f++}this.anchor=g[f];this.textNode=g[f].firstChild}});Ext.reg("syno_modulelist",SYNO.ux.ModuleList);Ext.ns("SYNO.ux");SYNO.ux.NumberField=Ext.extend(Ext.form.NumberField,{msgTarget:"itip",validateOnBlur:true,validationEvent:"blur",allowDecimals:false,allowNegative:false,allowBlank:false,overCls:"syno-ux-numberfield-hover",constructor:function(a){a=SYNO.ux.Utils.setTextMaxLenConfig(a);SYNO.ux.NumberField.superclass.constructor.call(this,a);this.addClass("syno-ux-numberfield")},onRender:function(b,a){SYNO.ux.NumberField.superclass.onRender.call(this,b,a);if(this.label){this.label.addClass("syno-ux-item-label")}SYNO.ux.Utils.setFormItemIndent(this);SYNO.ux.Utils.setFormFieldWidth(this)}});Ext.reg("syno_numberfield",SYNO.ux.NumberField);Ext.define("SYNO.ux.PageLessToolbar",{extend:"Ext.Toolbar",displayMsg:"{0} "+_JSLIBSTR("uicommon","items"),refreshText:_JSLIBSTR("extlang","refresh"),showRefreshBtn:true,constructor:function(){this.callParent(arguments);this.addClass("syno-ux-pagingtoolbar")},initComponent:function(){var a=Ext.Toolbar;this.refresh=new a.Button({tooltip:this.refreshText,overflowText:this.refreshText,iconCls:"x-tbar-loading",handler:this.doRefresh,scope:this,hidden:(this.showRefreshBtn)?false:true});this.items=this.items||[];this.items=this.items.concat(["->",this.displayItem=new a.TextItem({})]);if(this.showRefreshBtn){this.items.push("-");this.items.push(this.refresh);this.items.push(this.loading=new a.Button({tooltip:_JSLIBSTR("uicommon","searching"),overflowText:_JSLIBSTR("uicommon","searching"),iconCls:"x-tbar-loading-process",hidden:true}))}this.callParent(arguments);this.addEvents("change","beforechange");this.on("afterlayout",this.onFirstLayout,this,{single:true});this.bindStore(this.store,true)},bindStore:function(b,c){var a;if(!c&&this.store){if(b!==this.store&&this.store.autoDestroy){this.store.destroy()}else{this.store.un("beforeload",this.beforeLoad,this);this.store.un("load",this.onLoad,this);this.store.un("datachanged",this.onDataChanged,this);this.store.un("exception",this.onLoadError,this)}if(!b){this.store=null}}if(b){b=Ext.StoreMgr.lookup(b);b.on({scope:this,beforeload:this.beforeLoad,load:this.onLoad,datachanged:this.onDataChanged,exception:this.onLoadError});a=true}this.store=b;if(a){this.onLoad(b,null,{})}},unbind:function(){this.bindStore(null)},bind:function(a){this.bindStore(a)},onFirstLayout:function(){if(this.dsLoaded){this.onLoad.apply(this,this.dsLoaded)}},onLoadError:function(){if(!this.rendered){return}this.refresh.enable()},onLoad:function(a,b){if(!this.rendered){this.dsLoaded=[a,b];return}this.refresh.enable();this.updateInfo();this.fireEvent("change",this)},onDataChanged:function(){this.updateInfo();this.fireEvent("change",this)},updateInfo:function(){if(this.displayItem){var a=String.format(this.displayMsg,this.store.getCount());this.displayItem.setText(a)}},doRefresh:function(){if(!this.store){return}if(this.fireEvent("beforechange",this)!==false){this.store.load()}},beforeLoad:function(){if(this.rendered&&this.refresh){this.refresh.disable()}},onDestroy:function(){this.bindStore(null);this.callParent(arguments)}});Ext.define("SYNO.ux.PagingToolbar",{extend:"Ext.PagingToolbar",buttonAlign:"center",constructor:function(a){var b=Ext.apply({jumpOffset:5,displayButtons:true,showRefreshBtn:true,nextText:String.format(_JSLIBSTR("uicommon","next_x_pages"),5),prevText:String.format(_JSLIBSTR("uicommon","pre_x_pages"),5),displayMsg:"{2} "+_JSLIBSTR("uicommon","items"),refreshText:_JSLIBSTR("extlang","refresh")},a);SYNO.ux.PagingToolbar.superclass.constructor.call(this,b);this.addClass("syno-ux-pagingtoolbar")},onLoad:function(c,g,j){SYNO.ux.PagingToolbar.superclass.onLoad.call(this,c,g,j);var h=this.getPageData(),e,f=["first","last","prev","next"];this.setFocusPage(h.activePage);if(this.rendered){for(e=0;e<f.length;e++){var a=this[f[e]];a.btnEl.setARIA({disabled:a.disabled})}}},initComponent:function(){var a=Ext.Toolbar;var d=!this.displayButtons;var c=[this.first=new a.Button({tooltip:this.firstText,overflowText:this.firstText,iconCls:"x-tbar-page-first",disabled:true,hidden:d,tabIndex:-1,handler:this.moveFirst,scope:this}),this.prev=new a.Button({tooltip:this.prevText,overflowText:this.prevText,iconCls:"x-tbar-page-prev",disabled:true,hidden:d,tabIndex:-1,handler:this.jumpPageHandler,scope:this}),{xtype:"tbspacer",width:28},this.btn1=new a.Button({iconCls:"syno-ux-page-btn",hidden:d,handler:this.jumpPageHandler,tabIndex:-1,scope:this}),this.btn2=new a.Button({iconCls:"syno-ux-page-btn",hidden:d,handler:this.jumpPageHandler,tabIndex:-1,scope:this}),this.btn3=new a.Button({iconCls:"syno-ux-page-btn-focus",hidden:d,handler:this.jumpPageHandler,tabIndex:(d)?-1:0,scope:this}),this.btn4=new a.Button({iconCls:"syno-ux-page-btn",hidden:d,handler:this.jumpPageHandler,tabIndex:-1,scope:this}),this.btn5=new a.Button({iconCls:"syno-ux-page-btn",hidden:d,handler:this.jumpPageHandler,tabIndex:-1,scope:this}),{xtype:"tbspacer",width:28},this.inputItem=new Ext.form.NumberField({cls:"x-tbar-page-number",allowDecimals:false,allowNegative:false,enableKeyEvents:true,selectOnFocus:true,submitValue:false,hidden:true,listeners:{scope:this,keydown:this.onPagingKeyDown,blur:this.onPagingBlur}}),this.afterTextItem=new a.TextItem({hidden:true,text:String.format(this.afterPageText,1)}),this.next=new a.Button({tooltip:this.nextText,overflowText:this.nextText,iconCls:"x-tbar-page-next",disabled:true,hidden:d,handler:this.jumpPageHandler,tabIndex:-1,scope:this}),this.last=new a.Button({tooltip:this.lastText,overflowText:this.lastText,iconCls:"x-tbar-page-last",disabled:true,hidden:d,handler:this.moveLast,tabIndex:-1,scope:this})];var b=this.items||this.buttons||[];if(this.prependButtons){this.items=b.concat(c)}else{this.items=c.concat(b)}this.items.push("->");if(this.displayInfo){this.items.push(this.displayItem=new a.TextItem({}))}this.refresh=new a.Button({tooltip:this.refreshText,overflowText:this.refreshText,iconCls:"x-tbar-loading",handler:this.doRefresh,scope:this,hidden:(this.showRefreshBtn)?false:true});if(this.showRefreshBtn){this.items.push("-");this.items.push(this.refresh);this.items.push(this.loading=new a.Button({tooltip:_JSLIBSTR("uicommon","searching"),overflowText:_JSLIBSTR("uicommon","searching"),iconCls:"x-tbar-loading-process",hidden:true}))}this.curActiveBtn=this.btn3;delete this.buttons;Ext.PagingToolbar.superclass.initComponent.call(this);this.addEvents("change","beforechange");this.on("afterlayout",this.onFirstLayout,this,{single:true});this.cursor=0;this.bindStore(this.store,true)},onFirstLayout:function(){var b,a;SYNO.ux.PagingToolbar.superclass.onFirstLayout.call(this);this.addListener("resize",this.updateButtonNumber,this);this.addListener("change",this.updateButtonNumber,this);if(this.refresh&&this.refresh.rendered){if(this.refresh.rendered){this.refresh.btnEl.set({"aria-label":this.refreshText})}else{this.refresh.mon(this.refresh,"afterrender",this.refresh.btnEl.set.createDelegate(this.refresh,[{"aria-label":this.refreshText}]))}}for(b=1;b<=5;b++){a=this["btn"+b];a.nextBtn=(this["btn"+(b+1)])?this["btn"+(b+1)]:this.next;a.prevBtn=(this["btn"+(b-1)])?this["btn"+(b-1)]:this.prev;a.btnEl.set({"aria-label":(a.disabled)?"":String.format(_JSLIBSTR("uicommon","goto_page"),a.text)});a.btnEl.addKeyListener(Ext.EventObject.LEFT,this.focusOnPrevBtn.createDelegate(a));a.btnEl.addKeyListener(Ext.EventObject.RIGHT,this.focusOnNextBtn.createDelegate(a))}this.first.nextBtn=this.prev;this.last.prevBtn=this.next;
31Ext.each(["first","last"],function(c){this[c].btnEl.set({"aria-label":this[c+"Text"]});this[c].btnEl.addKeyListener(Ext.EventObject.LEFT,this.focusOnPrevBtn.createDelegate(this[c]));this[c].btnEl.addKeyListener(Ext.EventObject.RIGHT,this.focusOnNextBtn.createDelegate(this[c]))},this);this.prev.prevBtn=this.first;this.prev.nextBtn=this.btn1;this.next.prevBtn=this.btn5;this.next.nextBtn=this.last;Ext.each(["prev","next"],function(c){this[c].btnEl.addKeyListener(Ext.EventObject.LEFT,this.focusOnPrevBtn.createDelegate(this[c]));this[c].btnEl.addKeyListener(Ext.EventObject.RIGHT,this.focusOnNextBtn.createDelegate(this[c]))},this)},focusOnNextBtn:function(){var a=this;do{a=a.nextBtn}while(a&&(!a.isVisible()||a.disabled));if(a){this.btnEl.set({tabIndex:-1});a.btnEl.set({tabIndex:0});a.focus();this.curActiveBtn=a}},focusOnPrevBtn:function(){var a=this;do{a=a.prevBtn}while(a&&(!a.isVisible()||a.disabled));if(a){this.btnEl.set({tabIndex:-1});a.btnEl.set({tabIndex:0});a.focus();this.curActiveBtn=a}},getTotalPage:function(){var a=this.getPageData();return a.pages},setFocusPage:function(b){var a=this.getTotalPage();if(!Ext.isNumber(b)||b<=0||b>a){return}this.setBtnText(this.btn1,b-2>0?b-2:"");this.setBtnText(this.btn2,b-1>0?b-1:"");this.setBtnText(this.btn3,b);this.setBtnText(this.btn4,b+1<=a?b+1:"");this.setBtnText(this.btn5,b+2<=a?b+2:"")},setBtnText:function(a,b){a.text=b;if(a.el){a.btnEl.update(b||"&#160;");a.btnEl.set({"aria-label":String.format(_JSLIBSTR("uicommon","goto_page"),a.text)})}if(""===b){a.setDisabled(true)}else{a.setDisabled(false)}a.removeClass("x-btn-text-icon");a.addClass("x-btn-icon");return a},jumpPageByOffset:function(c){var b=this.getPageData().activePage;var a=this.getPageData().pages;if(b+c<=1){this.moveFirst()}else{if(b+c>=a){this.moveLast()}else{this.doLoad(this.cursor+c*this.pageSize)}}},jumpPageHandler:function(a,c){var d=0;if(a===this.prev){d=-1*this.jumpOffset}else{if(a===this.next){d=this.jumpOffset}else{d=a.getText()-this.getPageData().activePage}}this.jumpPageByOffset(d)},setButtonsVisible:function(a){this.displayButtons=a;this.first.setVisible(a);this.prev.setVisible(a);this.btn1.setVisible(a);this.btn2.setVisible(a);this.btn3.setVisible(a);this.btn4.setVisible(a);this.btn5.setVisible(a);this.next.setVisible(a);this.last.setVisible(a);if(a){this.updateButtonNumber()}},calcButtonNumber:function(){var d=this.getWidth()-this.el.child(".x-toolbar-right").getWidth();var a=4*38+2*28;var c=d-a;var b=this.btn3.getWidth()+10;return Math.floor(c/b)},setJumpOffset:function(a){this.jumpOffset=a;this.prev.btnEl.set({"aria-label":String.format(_JSLIBSTR("uicommon","pre_x_pages"),this.jumpOffset)});this.next.btnEl.set({"aria-label":String.format(_JSLIBSTR("uicommon","next_x_pages"),this.jumpOffset)});this.prev.setTooltip(String.format(_JSLIBSTR("uicommon","pre_x_pages"),this.jumpOffset));this.next.setTooltip(String.format(_JSLIBSTR("uicommon","next_x_pages"),this.jumpOffset))},setTabbable:function(c){var a=(c)?0:-1,b=[this.first,this.prev,this.btn1,this.btn2,this.btn3,this.btn4,this.btn5,this.next,this.last,this.refresh];Ext.each(b,function(d){d.btnEl.set({tabIndex:a})})},updateInfo:function(){this.setButtonsVisible(this.store.getTotalCount()>this.store.getCount());this.callParent(arguments)},updateButtonNumber:function(){if(!this.displayButtons){return}var a=this.calcButtonNumber();this.setJumpOffset(5);this.btn1.setVisible(true);this.btn2.setVisible(true);this.btn4.setVisible(true);this.btn5.setVisible(true);if(a<5){this.setJumpOffset(3);this.btn1.setVisible(false);this.btn5.setVisible(false)}if(a<3){this.setJumpOffset(1);this.btn2.setVisible(false);this.btn4.setVisible(false)}}});Ext.reg("syno_paging",SYNO.ux.PagingToolbar);Ext.reg("syno_pageless",SYNO.ux.PageLessToolbar);Ext.define("SYNO.ux.Panel",{extend:"Ext.Panel",xtype:"syno_panel",title:"Unknown Title",border:false,frame:false,header:false,autoFlexcroll:false,constructor:function(){this.callParent(arguments);this.addClass("syno-ux-panel")},scrollTo:function(a){this.fleXcrollTo(a)}});Ext.ns("SYNO.ux");Ext.define("SYNO.ux.RadioGroup",{extend:"Ext.form.RadioGroup",vertical:true,columns:1,hideLabel:true,defaultType:"syno_radio",onRender:function(){if(this.indent){Ext.each(this.items,function(b){var a=(Ext.isNumber(b.indent))?this.indent+b.indent:this.indent;b.indent=a},this)}this.callParent(arguments);this.el.dom.setAttribute("role","radiogroup")}});Ext.define("SYNO.ux.Radio",{extend:"SYNO.ux.Checkbox",checkIconCls:"syno-ux-radio-icon",wrapCls:"syno-ux-form-radio-wrap",defaultAutoCreate:{tag:"input",type:"radio",role:"radio",autocomplete:"off"}
31,onClick:function(a){if(!this.disabled&&!this.readOnly){this.setValue(true)}},markInvalid:Ext.emptyFn,clearInvalid:Ext.emptyFn,getGroupValue:function(){var b=this.el.up("form")||this.el.up(".x-panel")||Ext.getBody();var a=b.select('input[name="'+this.el.dom.name+'"]');var d=null;a.each(function(e){var c=Ext.getCmp(e.id);if(c.checked){d=c.value;return false}});return d},getInputValue:function(){var a=Ext.value(this.value,"");if(a===this.emptyText){a=""}return a},setValue:function(b){var a,c;if(typeof b=="boolean"){SYNO.ux.Radio.superclass.setValue.call(this,b)}else{if(this.rendered){c=this.getCheckEl().select('input[name="'+this.el.dom.name+'"]');c.each(function(e){var d=Ext.getCmp(e.dom.id);d.setValue((b===d.getInputValue()))},this)}}if(this.rendered&&this.checked){a=a||this.getCheckEl();c=this.getCheckEl().select('input[name="'+this.el.dom.name+'"]');c.each(function(d){if(d.dom.id!=this.id){Ext.getCmp(d.dom.id).setValue(false)}},this)}if(this.rendered){this.updateCheckAttr()}return this},getCheckEl:function(){if(this.inGroup){return this.el.up(".x-form-radio-group")}return this.el.up("form")||this.el.up(".x-panel")||Ext.getBody()}});Ext.reg("syno_radio",SYNO.ux.Radio);Ext.reg("syno_radiogroup",SYNO.ux.RadioGroup);Ext.namespace("SYNO.ux");SYNO.ux.ScheduleMenuNav=Ext.extend(Ext.menu.MenuNav,function(){return{space:function(b,a){if(a.activeItem){b.stopPropagation();a.activeItem.onClick(b);a.fireEvent("click",this,a.activeItem);return true}}}}());SYNO.ux.ScheduleMenu=Ext.extend(Ext.menu.Menu,{weekdayItems:null,menuDailyId:null,menuWeekendId:null,menuWeekdaysId:null,shadow:false,cls:"syno-ux-schedule-menu",useARIA:true,constructor:function(a){if(this.useARIA===true){a=this.addPlugins(SYNO.ux.MenuARIA,a)}SYNO.ux.ScheduleMenu.superclass.constructor.call(this,a);this.initMenu()},onRender:function(b,a){SYNO.ux.ScheduleMenu.superclass.onRender.call(this,b,a);this.keyNav.destroy();this.keyNav=null;this.keyNav=new SYNO.ux.ScheduleMenuNav(this)},initMenu:function(){var c=[_JSLIBSTR("uicommon","schedule_sun"),_JSLIBSTR("uicommon","schedule_mon"),_JSLIBSTR("uicommon","schedule_tue"),_JSLIBSTR("uicommon","schedule_wed"),_JSLIBSTR("uicommon","schedule_thu"),_JSLIBSTR("uicommon","schedule_fri"),_JSLIBSTR("uicommon","schedule_sat")];this.add({text:_JSLIBSTR("uicommon","schedule_daily"),id:this.menuDailyId=Ext.id()},{text:_JSLIBSTR("uicommon","schedule_weekend"),id:this.menuWeekendId=Ext.id()},{text:_JSLIBSTR("uicommon","schedule_weekdays"),id:this.menuWeekdaysId=Ext.id()},"-");this.weekdayItems=[];for(var a=0;a<c.length;a++){var b=new Ext.menu.CheckItem({text:c[a],checked:false});this.add(b);this.weekdayItems.push(b)}},setDays:function(c){Ext.each(this.weekdayItems,function(d){d.setChecked(false)});for(var b=0;b<c.length;b++){var a=c[b];if(a in this.weekdayItems){this.weekdayItems[a].setChecked(true)}}},setDaily:function(){for(var a=0;a<this.weekdayItems.length;a++){this.weekdayItems[a].setChecked(true)}},setWeekend:function(){for(var a=0;a<this.weekdayItems.length;a++){this.weekdayItems[a].setChecked((a===0||a==6)?true:false)}},getCheckItems:function(){var a=[];for(var b=0;b<this.weekdayItems.length;b++){if(this.weekdayItems[b].checked){a.push(b)}}return a}});SYNO.ux.ScheduleField=Ext.extend(Ext.form.TriggerField,{defaultTr
31iggerWidth:27,overCls:"syno-ux-schedulefield-hover",triggerClass:"syno-ux-schedulefield-trigger",msgTarget:"itip",constructor:function(a){SYNO.ux.ScheduleField.superclass.constructor.call(this,a);this.menu=new SYNO.ux.ScheduleMenu();this.menu.mon(this.menu,"click",this.onItemClick,this);this.menu.mon(this.menu,"itemclick",this.onBeforeItemClick,this);this.menu.mon(this.menu,"hide",this.onHide,this);this.mon(this,"beforedestroy",function(){this.menu.destroy()},this);this.addClass("syno-ux-schedulefield")},isAfterItemClickInvoked:false,defaultAutoCreate:{tag:"input",type:"text",size:"10",autocomplete:"off",role:"combobox"},dayDisplayList:[_JSLIBSTR("uicommon","schedule_abbre_sun"),_JSLIBSTR("uicommon","schedule_abbre_mon"),_JSLIBSTR("uicommon","schedule_abbre_tue"),_JSLIBSTR("uicommon","schedule_abbre_wed"),_JSLIBSTR("uicommon","schedule_abbre_thu"),_JSLIBSTR("uicommon","schedule_abbre_fri"),_JSLIBSTR("uicommon","schedule_abbre_sat")],initEvents:function(){SYNO.ux.ScheduleField.superclass.initEvents.call(this);this.keyNav=new Ext.KeyNav(this.el,{down:function(a){if(!this.menu.isVisible()){this.onTriggerClick()}},scope:this})},onTriggerClick:function(){if(this.disabled){return}this.menu.show(this.el,"tl-bl?")},getValue:function(){return this.value},strtoarray:function(e){function d(h,g){return h-g}var a=e.split(",");var f=[];for(var c=0;c<a.length;c++){var b=parseInt(a[c],10);if(b in this.dayDisplayList){f.push(b)}}f.sort(d);return f},setValue:function(e){var d="";if(e&&typeof e=="string"){var f=this.strtoarray(e);if(f.length==7){d=_JSLIBSTR("uicommon","schedule_daily")}else{if(f.length==2&&(f[0]===0)&&(f[1]==6)){d=_JSLIBSTR("uicommon","schedule_weekend")}else{if(f.length==5&&(f[0]==1)&&(f[1]==2)&&(f[2]==3)&&(f[3]==4)&&(f[4]==5)){d=_JSLIBSTR("uicommon","schedule_weekdays")}else{var a=[];for(var c=0;c<f.length;c++){var b=f[c];a.push(this.dayDisplayList[b])}d=a.join(",")}}}this.menu.setDays(f)}else{e="0,1,2,3,4,5,6";this.menu.setDaily();d=_JSLIBSTR("uicommon","schedule_daily")}if(this.hiddenField){this.hiddenField.value=e}SYNO.ux.ScheduleField.superclass.setValue.call(this,d);this.value=e},onRender:function(b,a){SYNO.ux.ScheduleField.superclass.onRender.call(this,b,a);if(this.label){this.label.addClass("syno-ux-item-label")}if(this.trigger){this.trigger.addListener("mouseover",this.onMouseover,this);this.trigger.addListener("mouseout",this.onMouseout,this)}this.mon(this.el,{scope:this,mouseover:this.onMouseover,mouseout:this.onMouseout});SYNO.ux.Utils.setFormItemIndent(this);SYNO.ux.Utils.setFormFieldWidth(this);if(!this.hiddenName){return}
31this.hiddenField=this.el.insertSibling({tag:"input",type:"hidden",name:this.hiddenName,id:(this.hiddenId||this.hiddenName)},"before",true);this.hiddenField.value=this.hiddenValue!==undefined?this.hiddenValue:this.value!==undefined?this.value:"";this.el.dom.removeAttribute("name")},onBeforeItemClick:function(){this.isAfterItemClickInvoked=true},onItemClick:function(g,c,d){if(c.getId()==g.menuDailyId){this.setValue("0,1,2,3,4,5,6")}else{if(c.getId()==g.menuWeekendId){this.setValue("0,6")}else{if(c.getId()==g.menuWeekdaysId){this.setValue("1,2,3,4,5")}else{var a=this.menu.getCheckItems();var f=[];for(var b=0;b<a.length;b++){f.push(""+a[b])}this.setValue(f.join(","))}}}g.tryActivate.defer(100,g,[g.items.indexOf(c),0])},onHide:function(){if(this.isAfterItemClickInvoked){this.menu.show(this.el,"tl-bl?")}this.isAfterItemClickInvoked=false;this.getAriaEl().focus()},onMouseover:function(){this.addClass("syno-ux-schedulefield-hover");this.trigger.addClass("x-form-trigger-over")},onMouseout:function(){this.removeClass("syno-ux-schedulefield-hover");this.trigger.removeClass("x-form-trigger-over")},markInvalid:function(a){if(this.trigger){this.trigger.addClass("syno-ux-trigger-invalid")}SYNO.ux.ScheduleField.superclass.markInvalid.call(this,a)},clearInvalid:function(){if(this.trigger){this.trigger.removeClass("syno-ux-trigger-invalid")}SYNO.ux.ScheduleField.superclass.clearInvalid.call(this)},setReadOnly:function(a){if(a){this.addClass("syno-ux-triggerfield-readonly")}else{this.removeClass("syno-ux-triggerfield-readonly")}SYNO.ux.ScheduleField.superclass.setReadOnly.call(this,a)}});Ext.reg("syno_schedulefield",SYNO.ux.ScheduleField);SYNO.ux.ScheduleSelector=function(f){f=f||{};var i,h,k;var d,j,l=new Ext.lib.Region(0,0,0,0);var b=f.dragSafe===true;this.init=function(p){i=p;i.on("render",o)};function m(){d=[];i.all.each(function(p){d[d.length]=p.getRegion()});j=i.el.getRegion()}function e(){return false}function g(p){return !b||p.target==i.el.dom}function n(p){i.on("containerclick",e,i,{single:true});if(!h){h=i.el.createChild({cls:"x-view-selector"});h.setDisplayed(false)}else{if(h.dom.parentNode!==i.el.dom){i.el.dom.appendChild(h.dom)}}m();i.clearSelections()}function c(v){var z=k.startXY;var D=k.getXY();var B=Math.min(z[0],D[0]);var A=Math.min(z[1],D[1]);var C=Math.abs(z[0]-D[0]);var t=Math.abs(z[1]-D[1]);l.left=B;l.top=A;l.right=B+C;l.bottom=A+t;l.constrainTo(j);h.setRegion(l);for(var s=0,u=d.length;s<u;s++){var p=d[s],q=l.intersect(p);if(q&&!p.selected){p.selected=true;i.select(s,true)}else{if(!q&&p.selected){p.selected=false;i.deselect(s)}}}}function a(p){if(!Ext.isIE){i.un("containerclick",e,i)}if(h){h.setDisplayed(false)}if(i.ownerCt&&i.ownerCt.selectRecords){i.ownerCt.selectRecords(i,d)}}function o(p){k=new Ext.dd.DragTracker({onBeforeStart:g,onStart:n,onDrag:c,onEnd:a});k.initEl(p.el)}};Ext.define("SYNO.ux.ScheduleTableField",{extend:"Ext.form.Field",hidden:true,constructor:function(a){if(!a.owner){return}this.callParent(arguments)},reset:function(){this.callParent(arguments);this.owner.reset()},setValue:function(a,b){this.callParent(arguments);if(b){return}this.owner.setSchedule(a)},getValue:function(){return this.owner.getSchedule()},commitChanges:function(){this.initValue()}});Ext.define("SYNO.ux.ScheduleTable",{extend:"Ext.Panel",CLASS_LIST:["schedule-td-no-download","schedule-td-full-speed","schedule-td-alt-speed"],DAY_STRING_SHORT:[_JSLIBSTR("uicommon","schedule_abbre_sun"),_JSLIBSTR("uicommon","schedule_abbre_mon"),_JSLIBSTR("uicommon","schedule_abbre_tue"),_JSLIBSTR("uicommon","schedule_abbre_wed"),_JSLIBSTR("uicommon","schedule_abbre_thu"),_JSLIBSTR("uicommon","schedule_abbre_fri"),_JSLIBSTR("uicommon","schedule_abbre_sat")],constructor:function(a){this.idCount=0;this.currentSpeed="0";this.currentSchedule=[];this.defaultSchedule=[];this.winType=a.winType;for(var c=0;c<24*7;c++){this.currentSchedule[c]="0"}for(c=0;c<24*7;c++){this.defaultSchedule[c]="1"}var b={border:false,items:this.getItemConfig(a),listeners:a.listeners};if(a&&a.buttons){delete a.buttons}Ext.apply(b,a);this.callParent([b]);this.mon(this,"afterrender",function(){this.el.addClass("syno-ux-scheduletable")})}
31,initComponent:function(){this.callParent(arguments);this.addEvents("beforecellchange")},getItemConfig:function(a){this.upperPanel=this.getUpperPanelConfig(a);this.dataView=this.createDataView();return[this.upperPanel,this.dataView]},getUpperPanelConfig:function(a){var d=a.buttons||[];if("service"===a.winType){d.push({label:_JSLIBSTR("uicommon","disable_limit")});d.push({label:_JSLIBSTR("uicommon","bandwidth_enable")})}else{if("user"===a.winType){if(a.blUser){d.push({label:_JSLIBSTR("uicommon","disable_limit_user")})}else{d.push({label:_JSLIBSTR("uicommon","disable_limit_group")})}d.push({label:_JSLIBSTR("uicommon","limit_default")});d.push({label:_JSLIBSTR("uicommon","limit_customize")})}}var e=[];for(var c=0;c<3;c++){e=e.concat(this.getSingleBtnConfig(d[c]||{},c))}this.valueField=new SYNO.ux.ScheduleTableField({owner:this,name:(a&&a.valueId)?a.valueName:"schedule"});e.push(this.valueField);var b={xtype:"syno_fieldset",items:[{xtype:"syno_compositefield",cls:"schedule-btn-compositefield",hideLabel:true,items:e}]};if(false===a.showButtonOnTop){b.items=(a.customizeItems||[]).concat(b.items)}else{b.items=b.items.concat(a.customizeItems||[])}return b},getSingleBtnConfig:function(b,a){return[{xtype:"button",itemId:a.toString(),pressed:0===a,cls:"schedule-btn",iconCls:this.getBtnIconCls(a),scope:b.scope||this,handler:b.handler||this.onSpeedButtonClick,hidden:b.hidden||Ext.isEmpty(b.label),disabled:b.disabled||false,text:" "},{xtype:"syno_displayfield",hidden:b.hidden||Ext.isEmpty(b.label),value:b.label}]},getBtnIconCls:function(a){var b="schedule-btn-";if(0===a){b+="no-download"}else{if(1===a){b+="full-speed"}else{if(2===a){b+="alt-speed"}}}return b},createDataView:function(){var a=new Ext.DataView({store:this.DAY_STRING_SHORT,multiSelect:true,itemSelector:"td.schedule-td",tpl:this.createTemplate(),plugins:[new SYNO.ux.ScheduleSelector()],listeners:{scope:this,click:function(f,c,d,b){var e=this.getSpeed();this.setClassToNodeByIndex(c,e);f.deselect(d)},afterrender:function(b){b.days=new Ext.CompositeElementLite();b.hours=new Ext.CompositeElementLite();b.selectAll=new Ext.CompositeElementLite();b.days.fill(Ext.query("td.schedule-day-td",b.el.dom));b.hours.fill(Ext.query("td.schedule-hour-td",b.el.dom));b.selectAll.fill(Ext.query("td.schedule-select-all-td",b.el.dom));Ext.each(b.days.elements,function(f,c,d){var e=Ext.fly(f);this.mon(e,"click",this.onDayClick,this,{index:c});this.mon(e,"mouseenter",this.onDayMouseEnter,this,{index:c});this.mon(e,"mouseleave",this.onDayMouseLeave,this,{index:c})},this);Ext.each(b.hours.elements,function(f,c,d){var e=Ext.fly(f);this.mon(e,"click",this.onHourClick,this,{index:c});this.mon(e,"mouseenter",this.onHourMouseEnter,this,{index:c});this.mon(e,"mouseleave",this.onHourMouseLeave,this,{index:c})},this);Ext.each(b.selectAll.elements,function(f,c,d){var e=Ext.fly(f);this.mon(e,"click",this.onSelectAllClick,this);this.mon(e,"mouseenter",this.onSelectAllMouseEnter,this);this.mon(e,"mouseleave",this.onSelectAllMouseLeave,this)},this);this.valueField.originalValue=this.getSchedule()},beforedestroy:function(b){b.days.clear();b.hours.clear();b.selectAll.clear()}}});return a},createTemplate:function(){var c;var f=[];var e='<td class="schedule-hour-td">{0}</td>';f.push("<tr>");f.push('<td class="schedule-select-all-td"></td>');for(c=0;c<24;c++){f.push(String.format(e,c))}f.push("</tr>");var a=f.join("\n");f=[];var b='<td class="schedule-td"></td>';f.push('<tr class="schedule-tr">');f.push('<td class="schedule-day-td">{field1}</td>');for(c=0;c<24;c++){f.push(b)}f.push("</tr>");var g=f.join("\n");var d=new Ext.XTemplate('<table class="schedule-table">',a,'<tpl for=".">',g,"</tpl>","<table>");return d},onSpeedButtonClick:function(b,a){if(b.pressed){return}var c=b.ownerCt.get(this.getSpeed());c.toggle(false);b.toggle(true);this.currentSpeed=b.itemId},getIndexesByDay:function(a){var c=[],b,e=a*24;for(var d=0;d<24;d++){b=e+d;c.push(b)}return c},onDayClick:function(a,c,d){var b=this.getSpeed();if(!d||!Ext.isNumber(d.index)){return}Ext.each(this.getIndexesByDay(d.index),function(g,e,f){this.setClassToNodeByIndex(g,b)},this)},onDayMouseEnter:function(a,b,c){if(!c||!Ext.isNumber(c.index)){return}Ext.fly(b).addClass("schedule-day-td-over");this.dataView.select(this.getIndexesByDay(c.index))},onDayMouseLeave:function(a,b,c){Ext.fly(b).removeClass("schedule-day-td-over");this.dataView.clearSelections()},getIndexesByHour:function(a){var c=[],b;for(var d=0;d<7;
31d++){b=a+(d*24);c.push(b)}return c},onHourClick:function(a,c,d){var b=this.getSpeed();if(!d||!Ext.isNumber(d.index)){return}Ext.each(this.getIndexesByHour(d.index),function(g,e,f){this.setClassToNodeByIndex(g,b)},this)},onHourMouseEnter:function(a,b,c){if(!c||!Ext.isNumber(c.index)){return}Ext.fly(b).addClass("schedule-hour-td-over");this.dataView.select(this.getIndexesByHour(c.index))},onHourMouseLeave:function(a,b,c){Ext.fly(b).removeClass("schedule-hour-td-over");this.dataView.clearSelections()},onSelectAllClick:function(b,f,g){var c=[],e=this.getSpeed(),d,a;for(d=0,a=7*24;d<a;d++){c.push(d)}Ext.each(c,function(j,h,i){this.setClassToNodeByIndex(j,e)},this)},onSelectAllMouseEnter:function(a,b,c){Ext.fly(b).addClass("schedule-select-all-td-over")},onSelectAllMouseLeave:function(a,b,c){Ext.fly(b).removeClass("schedule-select-all-td-over")},getSpeed:function(){return this.currentSpeed},selectRecords:function(b,c){var f;var e=this.getSpeed();for(var d=0,a=c.length;d<a;d++){f=c[d];if(f.selected){this.setClassToNodeByIndex(d,e)}}b.clearSelections()},commitChanges:function(){this.valueField.initValue()},reset:function(){this.setSchedule(this.valueField.originalValue)},getValue:function(){return this.getSchedule()},setValue:function(a){this.setSchedule(a)},setSchedule:function(b){var a=b.split("");if(a.length!==this.dataView.getNodes().length){SYNO.Debug.error("schedule is not the same to element. array length:",a.length,", view size:",this.dataView.getNodes().length);return}Ext.each(a,function(e,c,d){this.setClassToNodeByIndex(c,e)},this)},getSchedule:function(){return this.currentSchedule.join("")},isDirty:function(){return this.getSchedule()!==this.valueField.originalValue},setClassToNodeByIndex:function(a,b){var c=Ext.fly(this.dataView.getNode(a));if(false===this.fireEvent("beforecellchange",this,a,b,this.currentSchedule[a])){return}c.removeClass(this.CLASS_LIST);c.addClass(this.CLASS_LIST[b]);this.currentSchedule[a]=b;this.valueField.setValue(this.getSchedule(),true)}});Ext.define("SYNO.ux.SingleSlider",{extend:Ext.slider.SingleSlider,useARIA:true,constructor:function(a){if(this.useARIA===true){a=this.addPlugins(SYNO.ux.SliderARIA,a)}this.callParent([a])},initComponent:function(){this.addEvents("maxvaluechanged","minvaluechanged");this.callParent(arguments)},onKeyDown:function(b){if(this.disabled||this.thumbs.length!==1){b.preventDefault();return}var a=b.getKey(),c;switch(a){case b.UP:case b.RIGHT:b.stopEvent();c=b.ctrlKey?this.maxValue:this.getValue(0)+this.keyIncrement;this.setValue(0,c,undefined,true);break;case b.DOWN:case b.LEFT:b.stopEvent();c=b.ctrlKey?this.minValue:this.getValue(0)-this.keyIncrement;this.setValue(0,c,undefined,true);break;case b.TAB:break;default:b.preventDefault()}},getAriaEl:function(){return this.focusEl},setMaxValue:function(a){this.callParent(arguments);this.fireEvent("maxvaluechanged",this,a)},setMinValue:function(a){this.callParent(arguments);this.fireEvent("minvaluechanged",this,a)}});Ext.reg("syno_singleslider",SYNO.ux.SingleSlider);Ext.define("SYNO.ux.SliderField",{extend:Ext.form.SliderField,sliderProgCls:"syno-ux-slider-progress",sliderBgCls:"syno-ux-slider-bg",hasCalibration:false,constructor:function(a){this.callParent(arguments);this.addClass("syno-ux-sliderfield");if(this.hasCalibration===true){this.slider.addClass("calibration")}this.slider.addClass("syno-ux-sliderfield-slider");this.addEvents("valuechange");this.mon(this,"afterrender",this.createSliderProgress,this);this.mon(this.slider,"change",this.onSliderValueChanged,this)},initComponent:function(){var b=Ext.copyTo({id:this.id+"-slider"},this.initialConfig,["vertical","minValue","maxValue","decimalPrecision","keyIncrement","increment","clickToChange","animate","title"]);if(this.useTips){var a=this.tipText?{getText:this.tipText}:{};b.plugins=[new Ext.slider.Tip(a)]}this.slider=new SYNO.ux.SingleSlider(b);Ext.form.SliderField.superclass.initComponent.call(this)},createSliderProgress:function(){var f=this.slider,c=f.getEl().child(".x-slider-inner"),b=f.getEl().child(".x-slider-thumb"),a=f.vertical?b.getHeight():b.getWidth(),e=a%2===0,d=f.translateValue(this.value||0);f.halfThumb=e?a/2:(a-1)/2;f.getRatio=function(){var g=this.innerEl.getWidth(),i=(g%2)===0,h=this.maxValue-this.minValue;g=(i)?g:g-1;return h===0?g:(g/h)};d+=f.halfThumb;c.createChild({tag:"div",cls:this.sliderBgCls},b);c.createChild({tag:"div",width:d+"px",cls:this.sliderProgCls},b)},onSliderValueChanged:function(d,e,a){if(!this.rendered||!this.slider.rendered){return}var b=d.el.child("."+this.sliderProgCls),c=d.translateValue(e||0)+d.halfThumb;if(!b){return}b.setWidth(c)},onChange:function(b,a){this.callParent(arguments);this.fireEvent("valuechange",this,a)}});Ext.reg("syno_sliderfield",SYNO.ux.SliderField);Ext.ns("SYNO.ux");Ext.define("SYNO.ux.SplitButton",{extend:"Ext.SplitButton",btnStyle:"default",useARIA:true,arrowBtnSelector:"button.arrow",constructor:function(a){if
31(this.useARIA===true){a=this.addPlugins(SYNO.ux.ButtonARIA,a)}SYNO.ux.SplitButton.superclass.constructor.call(this,a);this.updateButtonStyle(a);if(this.menu){this.menu.cls=this.menu.cls?this.menu.cls+" syno-ux-button-menu":"syno-ux-button-menu";this.menu.shadow=false;this.addClass("syno-ux-button-dropdown")}},updateButtonStyle:function(a){this.addClass("syno-ux-button");this.addClass("syno-ux-button-split");if("blue"===this.btnStyle){this.addClass("syno-ux-button-blue");this.minWidth=80}else{if("grey"===this.btnStyle){this.addClass("syno-ux-button-grey");this.minWidth=80}else{if("red"===this.btnStyle){this.addClass("syno-ux-button-red");this.minWidth=80}else{if("green"===this.btnStyle){this.addClass("syno-ux-button-green");this.minWidth=80}else{if("orange"===this.btnStyle){this.addClass("syno-ux-button-orange");this.minWidth=80}else{this.addClass("syno-ux-button-default")}}}}}},initComponent:function(){this.callParent(arguments);this.addEvents("textchanged")},setText:function(a){this.callParent(arguments);this.fireEvent("textchanged",this,a)},onRender:function(b,a){this.template=new Ext.Template('<span id="{4}" cellspacing="0" class="x-btn {3}">','<em class="{2} x-unselectable" unselectable="on">','<button type="{0}"></button>','<button type="{0}" class="arrow"></button>',"</em>","</span>");SYNO.ux.SplitButton.superclass.onRender.call(this,b,a);SYNO.ux.Utils.setFormItemIndent(this);this.arrowBtnEl=this.el.child(this.arrowBtnSelector)},isClickOnArrow:function(a){if(a.target===this.arrowBtnEl.dom){return true}return this.callParent(arguments)}});Ext.reg("syno_splitbutton",SYNO.ux.SplitButton);Ext.ns("SYNO.ux");Ext.define("SYNO.ux.StateButtonGroup",{extend:"Ext.Container",xtype:"syno_statebuttongroup",constructor:function(a){this.activeBtn=a.activeBtn||0;this.btnNum=Ext.isArray(a.buttons)?a.buttons.length:0;this.btnScope=a.btnScope||this;this.autoBtnWidth=a.autoBtnWidth;var b=Ext.apply({items:this.getItemConfig(a.buttons)},a);delete b.buttons;this.callParent([b]);this.addListener("afterlayout",this.updateBtnWidth,this,{single:true})},initComponent:function(){this.callParent(arguments);this.addEvents("beforeactivebuttonchange","activebuttonchange")},afterRender:function(){this.callParent(arguments);if(this.activeBtn!==undefined){var a=Ext.isObject(this.activeBtn)?this.activeBtn:this.items.get(this.activeBtn);delete this.activeBtn;this.setActiveBtn(a)}},updateBtnWidth:function(){if(false!==this.autoBtnWidth){var a=0;this.items.each(function(b){if(b.getWidth()>a){a=b.getWidth()}});this.items.each(function(b){b.setWidth(a)})}},getItemConfig:function(c){var a=[];for(var b=0;b<this.btnNum;b++){a.push(this.getSingleBtnConfig(c[b],b))}return a},getSingleBtnConfig:function(b,a){if(b.width){this.autoBtnWidth=false}return{id:b.id,itemId:b.itemId,text:b.text||"",width:b.width,minWidth:b.minWidth,iconCls:b.iconCls||"",cls:this.getBtnCls(b.cls,a),disabled:b.disabled,xtype:"syno_button",scope:this,handler:this.onClickBtnGeneralHandler}},getBtnCls:function(c,b){var a="syno-ux-statebuttongroup-";if(0===b){a+="left "}else{if(this.btnNum===b+1){a+="right "}else{a+="middle "}}if(b===this.activeBtn){a+=" syno-ux-statebuttongroup-pressed "}if(!Ext.isEmpty(c)){a+=c}return a},onClickBtnGeneralHandler:function(b,a){this.setActiveBtn(b)},getActiveBtn:function(){return this.activeBtn||null},setActiveBtn:function(a){var c=this.getActiveBtn();var b=this.getComponent(a);if(!b||b.disabled){return}if(false===this.fireEvent("beforeactivebuttonchange",this,b,c)){return}if(!this.rendered){this.activeBtn=b;return}if(b!==c){this.items.each(function(d){d.removeClass("syno-ux-statebuttongroup-pressed")},this);b.addClass("syno-ux-statebuttongroup-pressed");this.activeBtn=b;this.fireEvent("activebuttonchange",this,b)}}});Ext.ns("SYNO.ux");Ext.define("SYNO.ux.StatusProxy",{extend:"Ext.dd.StatusProxy",baseCls:"",constructor:function(a){Ext.apply(this,a);this.id=this.id||Ext.id();this.el=new Ext.Layer({dh:{id:this.id,tag:"div",cls:this.baseCls+" x-dd-drag-proxy "+this.dropNotAllowed,children:[{tag:"div",cls:"x-dd-drop-icon"},{tag:"div",cls:"x-dd-drag-ghost"}]},shadow:!a||a.shadow!==false});this.ghost=Ext.get(this.el.dom.childNodes[1]);this.dropStatus=this.dropNotAllowed},reset:function(a){this.el.dom.className=this.baseCls+" x-dd-drag-proxy "+this.dropNotAllowed;this.dropStatus=this.dropNotAllowed;if(a){this.ghost.update("")}}});Ext.namespace("Ext.ux.form");
31SYNO.ux.SuperBoxSelect=function(a){if(a.useARIA!==false){a=this.addPlugins(SYNO.ux.ComboboxARIA,a)}if(this.htmlEncode||a.htmlEncode){this.tplHtmlEncode=true}SYNO.ux.SuperBoxSelect.superclass.constructor.call(this,a);this.addEvents("beforeadditem","additem","newitem","beforeremoveitem","removeitem","valuechanged","clear")};SYNO.ux.SuperBoxSelect=Ext.extend(SYNO.ux.SuperBoxSelect,SYNO.ux.FleXcroll.ComboBox,{msgTarget:"itip",listClass:"syno-ux-combobox-list",addNewDataOnBlur:false,allowAddNewData:false,allowQueryAll:true,backspaceDeletesLastItem:true,classField:null,clearBtnCls:"",clearLastQueryOnEscape:false,clearOnEscape:false,displayFieldTpl:null,extraItemCls:"",extraItemStyle:"",expandBtnCls:"",fixFocusOnTabSelect:true,forceFormValue:true,forceSameValueQuery:false,itemDelimiterKey:Ext.EventObject.ENTER,navigateItemsWithTab:true,pinList:true,preventDuplicates:true,queryFilterRe:"",queryValuesDelimiter:"|",queryValuesIndicator:"valuesqry",removeValuesFromStore:true,renderFieldBtns:true,stackItems:false,styleField:null,supressClearValueRemoveEvents:false,validationEvent:"blur",valueDelimiter:",",htmlEncode:true,onBlurCall:true,useARIA:true,updateScrollBarEventNames:["removeitem","clear"],initComponent:function(){Ext.apply(this,{items:new Ext.util.MixedCollection(false),usedRecords:new Ext.util.MixedCollection(false),addedRecords:[],remoteLookup:[],hideTrigger:true,grow:false,resizable:false,multiSelectMode:false,preRenderValue:null,filteredQueryData:""});if(this.queryFilterRe){if(Ext.isString(this.queryFilterRe)){this.queryFilterRe=new RegExp(this.queryFilterRe)}}if(this.transform){this.doTransform()}if(this.forceFormValue){this.items.on({add:this.manageNameAttribute,remove:this.manageNameAttribute,clear:this.manageNameAttribute,scope:this})}SYNO.ux.SuperBoxSelect.superclass.initComponent.call(this);if(this.htmlEncode===true&&!this.displayFieldTpl){this.displayFieldTpl="{"+this.displayField+":htmlEncode}"}if(this.mode==="remote"&&this.store){this.store.on("load",this.onStoreLoad,this)}},validateAll:function(){if(this.items.getCount()===0){if(this.allowBlank){this.clearInvalid();return true}else{this.markInvalid(this.blankText);return false}}var a=0,b=true;for(a=0;a<this.items.getCount();a++){b=this.validateValue(this.items.get(a).value);if(!b){return false}}return true},validate:function(){if(this.disabled||this.validateAll()){this.clearInvalid();return true}return false},validateValue:function(b){var a=this.getErrors(b)[0];if(Ext.isDefined(a)===false){return true}else{this.markInvalid(a);return false}},onRender:function(b,a){var c=this.hiddenName;this.hiddenName=null;SYNO.ux.SuperBoxSelect.superclass.onRender.call(this,b,a);this.hiddenName=c;this.manageNameAttribute();if(this.label){this.label.addClass("syno-ux-item-label")}var d=(this.stackItems===true)?"syno-ux-superboxselect-stacked":"";if(this.renderFieldBtns){d+=" syno-ux-superboxselect-display-btns"}this.el.removeClass("x-form-text").addClass("syno-ux-superboxselect-input-field");this.wrapEl=this.el.wrap({tag:"ul"});this.outerWrapEl=this.wrapEl.wrap({tag:"div",cls:"x-form-text syno-ux-superboxselect "+d});this.inputEl=this.el.wrap({tag:"li",cls:"syno-ux-superboxselect-input"});this["aria-label"]=this.fieldLabel+" "+_JSLIBSTR("uicommon","superboxselect_hint");this.el.setARIA({role:"listbox",multiselectable:true,label:this["aria-label"]});if(this.renderFieldBtns){this.setupFieldButtons().manageClearBtn()}this.setupFormInterception();SYNO.ux.Utils.setFormItemIndent(this);this.initScrollbarEvent()},initScrollbarEvent:function(){var b=this,a=this.outerWrapEl,c=a.dom;b.mon(b,"additem",function(){if(!c.fleXcroll){var e=parseInt(a.getHeight(),10);var d=parseInt(a.getStyle("maxHeight"),10);if(e>d){fleXenv.fleXcrollMain(c)}else{return}}c.fleXcroll.updateScrollBars()});Ext.each(b.updateScrollBarEventNames,function(d){this.mon(this,d,function(){if(!c.fleXcroll){return}c.fleXcroll.updateScrollBars()},this)},b)},doTransform:function(){var m=Ext.getDom(this.transform),f=[];if(!this.store){this.mode="local";var h=[],a=m.options;for(var e=0,g=a.length;e<g;e++){var c=a[e],l=Ext.get(c),j=l.getAttributeNS(null,"value")||"",k=l.getAttributeNS(null,"className")||"",b=l.getAttributeNS(null,"
31style")||"";if(c.selected){f.push(j)}h.push([j,c.text,k,typeof(b)==="string"?b:b.cssText])}this.store=new Ext.data.SimpleStore({id:0,fields:["value","text","cls","style"],data:h});Ext.apply(this,{valueField:"value",displayField:"text",classField:"cls",styleField:"style"})}if(f.length){this.value=f.join(",")}},setupFieldButtons:function(){this.buttonWrap=this.outerWrapEl.createChild({cls:"syno-ux-superboxselect-btns"});this.buttonClear=this.buttonWrap.createChild({tag:"div",cls:"syno-ux-superboxselect-btn-clear "+this.clearBtnCls});if(this.allowQueryAll){this.buttonExpand=this.buttonWrap.createChild({tag:"div",cls:"syno-ux-superboxselect-btn-expand "+this.expandBtnCls})}this.initButtonEvents();return this},onBtnClick:function(a){a.stopEvent();if(this.disabled){return}this.clearValue();this.el.focus()},onQueryAllBtnClick:function(a){a.stopEvent();if(this.disabled){return}if(this.isExpanded()){this.multiSelectMode=false}else{if(this.pinList){this.multiSelectMode=true}}this.onTriggerClick()},initButtonEvents:function(){this.buttonClear.addClassOnOver("syno-ux-superboxselect-btn-over").un("click",this.onBtnClick,this);this.buttonClear.addClassOnOver("syno-ux-superboxselect-btn-over").on("click",this.onBtnClick,this);this.buttonClear.addClassOnClick("syno-ux-superboxselect-btn-click");if(this.allowQueryAll){this.buttonExpand.addClassOnOver("syno-ux-superboxselect-btn-over").un("click",this.onQueryAllBtnClick,this);this.buttonExpand.addClassOnOver("syno-ux-superboxselect-btn-over").on("click",this.onQueryAllBtnClick,this);this.buttonExpand.addClassOnClick("syno-ux-superboxselect-btn-click")}},removeButtonEvents:function(){this.buttonClear.removeAllListeners();if(this.allowQueryAll){this.buttonExpand.removeAllListeners()}return this},clearCurrentFocus:function(){if(this.currentFocus){this.currentFocus.onLnkBlur();this.currentFocus=null}return this},initEvents:function(){var a=this.el;a.on({click:this.onClick,focus:this.clearCurrentFocus,blur:this.onBlur,keydown:this.onKeyDownHandler,keyup:this.onKeyUpBuffered,scope:this});this.on({collapse:this.onCollapse,expand:this.clearCurrentFocus,scope:this});this.wrapEl.on("click",this.onWrapClick,this);this.outerWrapEl.on("click",this.onWrapClick,this);this.inputEl.focus=function(){a.focus()};SYNO.ux.SuperBoxSelect.superclass.initEvents.call(this);Ext.apply(this.keyNav,{tab:function(b){if(this.fixFocusOnTabSelect&&this.isExpanded()){b.stopEvent();a.blur();this.onViewClick(false);this.focus(false,10);return true}this.onViewClick(false);if(a.dom.value!==""){this.setRawValue("")}return true},down:function(b){if(!this.isExpanded()&&!this.currentFocus){if(this.allowQueryAll){this.onTriggerClick()}}else{this.inKeyMode=true;this.selectNext()}},enter:function(){}})},onClick:function(){this.clearCurrentFocus();this.collapse();this.autoSize()},beforeBlur:function(){if(this.allowAddNewData&&this.addNewDataOnBlur){if(this.view&&this.view.isVisible()){return}var a=this.el.dom.value;if(a!==""&&!this.el.hasClass(this.emptyClass)){this.fireNewItemEvent(a)}}Ext.form.ComboBox.superclass.beforeBlur.call(this)},onFocus:function(){this.outerWrapEl.addClass(this.focusClass);SYNO.ux.SuperBoxSelect.superclass.onFocus.call(this)},onBlur:function(){this.onBlurCall=true;this.beforeBlur();this.outerWrapEl.removeClass(this.focusClass);this.clearCurrentFocus();if(this.el.dom.value!==""){this.applyEmptyText();this.autoSize()}SYNO.ux.SuperBoxSelect.superclass.onBlur.call(this)},onCollapse:function(){this.view.clearSelections();this.multiSelectMode=false},onWrapClick:function(a){a.stopEvent();this.collapse();this.el.focus();this.clearCurrentFocus()},markInvalid:function(c){var b,a;if(!this.rendered||this.preventMark){return}this.outerWrapEl.addClass(this.invalidClass);c=c||this.invalidText;switch(this.msgTarget){case"qtip":Ext.apply(this.el.dom,{qtip:c,qclass:"x-form-invalid-tip"});Ext.apply(this.wrapEl.dom,{qtip:c,qclass:"x-form-invalid-tip"});Ext.apply(this.outerWrapEl.dom,{qtip:c,qclass:"x-form-invalid-tip"});if(Ext.QuickTips){Ext.QuickTips.enable()}break;case"itip":Ext.apply(this.el.dom,{itip:c,iclass:"x-form-invalid-tip"});Ext.apply(this.wrapEl.dom,{itip:c,iclass:"x-form-invalid-tip"});Ext.apply(this.outerWrapEl.dom,{itip:c,iclass:"x-form-invalid-tip"});if(SYNO.ux.InvalidQuickTips){SYNO.ux.InvalidQuickTips.enable()}break;case"title":this.el.dom.title=c;this.wrapEl.dom.title=c;this.outerWrapEl.dom.title=c;break;case"under":if(!this.errorEl){b=this.getErrorCt();if(!b){this.el.dom.title=c;break}this.errorEl=b.createChild({cls:"x-form-invalid-msg"});this.errorEl.setWidth(b.getWidth(true)-20)}this.errorEl.update(c);Ext.form.Field.msgFx[this.msgFx].show(this.errorEl,this);break;case"side":if(!this.errorIcon){b=this.getErrorCt();if(!b){this.el.dom.title=c;break}this.errorIcon=b.createChild({cls:"x-form-invalid-icon"})}this.alignErrorIcon();Ext.apply(this.errorIcon.dom,{qtip:c,qclass:"x-form-invalid-tip"});this.errorIcon.show();this.on("resize",this.alignErrorIcon,this);break;default:a=Ext.getDom(this.msgTarget);a.innerHTML=c;a.style.display=this.msgDisplay;break}this.fireEvent("invalid",this,c)},clearInvalid:function(){if(!this.rendered||this.preventMark){return}this.outerWrapEl.removeClass(this.invalidClass);switch(this.msgTarget){case"qtip":this.el.dom.qtip="";this.wrapEl.dom.qtip="";this.outerWrapEl.dom.qtip="";break;case"itip":this.el.dom.itip="";this.wrapEl.dom.itip="";this.outerWrapEl.dom.itip="";break;case"title":this.el.dom.title="";this.wrapEl.dom.title="";this.outerWrapEl.dom.title="";break;case"under":if(this.errorEl){Ext.form.Field.msgFx[this.msgFx].hide(this.errorEl,this)}break;case"side":if(this.errorIcon){this.errorIcon.dom.qtip="";this.errorIcon.hide();this.un("resize",this.alignErrorIcon,this)}break;default:var a=Ext.getDom(this.msgTarget);a.innerHTML="";a.style.display="none";break}this.fireEvent("valid",this)},alignErrorIcon:function(){if(this.wrap){this.errorIcon.alignTo(this.wrap,"tl-tr",[Ext.isIE?5:2,3])}},expand:function(){if(this.isExpanded()||!this.hasFocus){return}if(this.bufferSize){this.doResize(this.bufferSize);delete this.bufferSize}this.list.alignTo.apply(this.list,[this.outerWrapEl].concat(this.listAlign)).show();this.mon(Ext.getDoc(),{scope:this,mousewheel:this.collapseIf,mousedown:this.collapseIf});this.fireEvent("expand",this)},restrictHeight:function(){var b=this.view.getTemplateTarget().dom,e=this.list.getFrameWidth("tb")+(this.resizable?this.handleHeight:0)+this.assetHeight,c=Math.max(b.clientHeight,b.offsetHeight,b.scrollHeight),a=this.getPosition()[1]-Ext.getBody().getScroll().top,f=Ext.lib.Dom.getViewHeight()-a-this.getSize().height,d=Math.max(a,f,this.minHeight||0)-this.list.shadowOffset-e-5;c=Math.min(c,d,this.maxHeight);this.innerList.setHeight(c);this.list.beginUpdate();this.list.setHeight(c+e);this.list.alignTo.apply(this.list,[this.outerWrapEl].concat(this.listAlign));this.list.endUpdate();this.view.updateFleXcroll()},manageNameAttribute:function(){if(this.items.getCount()===0&&this.forceFormValue){this.el.dom.setAttribute("name",this.hiddenName||this.name)}else{this.el.dom.removeAttribute("name")}},setupFormInterception:function(){var a;this.findParentBy(function(c){if(c.getForm){a=c.getForm()}});if(a){var b=a.getValues;a.getValues=function(e){var c=this.el.dom.disabled;this.el.dom.disabled=true;var d=this.el.dom.value;this.setRawValue("");var f=b.call(a);this.el.dom.disabled=c;this.setRawValue(d);if(this.forceFormValue&&this.items.getCount()===0){f[this.name]=""}else{if(!c&&this.items.getCount()===1){f[this.name]=this.getValue()}else{if(!c){f[this.name]=this.getValue().split(this.valueDelimiter)}}}return e?Ext.urlEncode(f):f}.createDelegate(this)}},onResize:function(a,c,e,b){var d=Ext.isIE6?4:Ext.isIE7?1:Ext.isIE8?1:0;if(this.wrapEl){this._width=a;this.outerWrapEl.setWidth(a-d);if(this.renderFieldBtns){d+=(this.buttonWrap.getWidth()+20);this.wrapEl.setWidth(a-d)}}SYNO.ux.SuperBoxSelect.superclass.onResize.call(this,a,c,e,b);this.autoSize()},onEnable:function(){SYNO.ux.SuperBoxSelect.superclass.onEnable.call(this);this.items.each(function(a){a.enable()});if(this.renderFieldBtns){this.initButtonEvents()}},onDisable:function(){SYNO.ux.SuperBoxSelect.superclass.onDisable.call(this);this.items.each(function(a){a.disable()});if(this.renderFieldBtns){this.removeButtonEvents()}},clearValue:function(a){SYNO.ux.SuperBoxSelect.superclass.clearValue.call(this);this.preventMultipleRemoveEvents=a||this.supressClearValueRemoveEvents||false;this.removeAllItems();this.preventMultipleRemoveEvents=false;this.fireEvent("clear",this);this.fireEvent.defer(250,this,["valuechanged",this]);return this},fireNewItemEvent:function(a){this.view.clearSelections();this.collapse();this.setRawValue("");
31if(this.queryFilterRe){a=a.replace(this.queryFilterRe,"");if(!a){return}}this.fireEvent("newitem",this,a,this.filteredQueryData)},onKeyUp:function(a){if(this.editable!==false&&(!a.isSpecialKey()||a.getKey()===a.BACKSPACE)&&this.itemDelimiterKey.indexOf!==a.getKey()&&(!a.hasModifier()||a.shiftKey)){this.lastKey=a.getKey();this.dqTask.delay(this.queryDelay)}},onKeyDownHandler:function(g,c){var b,i,a;if(g.getKey()===g.ESC){if(!this.isExpanded()){if(this.el.dom.value!==""&&(this.clearOnEscape||this.clearLastQueryOnEscape)){if(this.clearOnEscape){this.el.dom.value=""}if(this.clearLastQueryOnEscape){this.lastQuery=""}g.stopEvent()}}}if((g.getKey()===g.DELETE)&&this.currentFocus&&!this.currentFocus.disabled){g.stopEvent();b=this.currentFocus;this.on("expand",function(){this.collapse()},this,{single:true});a=this.items.indexOfKey(this.currentFocus.key);this.clearCurrentFocus();if(a<(this.items.getCount()-1)){i=this.items.itemAt(a+1)}b.preDestroy(true);if(i){(function(){i.onLnkFocus();this.currentFocus=i}).defer(200,this)}return true}var h=this.el.dom.value,d,f=g.ctrlKey;if(this.itemDelimiterKey===g.getKey()){g.stopEvent();if(h!==""){if(f||!this.isExpanded()){this.fireNewItemEvent(h)}else{this.onViewClick();if(this.unsetDelayCheck){this.delayedCheck=true;this.unsetDelayCheck.defer(10,this)}}}else{if(!this.isExpanded()){return}this.onViewClick();if(this.unsetDelayCheck){this.delayedCheck=true;this.unsetDelayCheck.defer(10,this)}}return true}if(h!==""){this.autoSize();return}if(g.getKey()===g.HOME){g.stopEvent();if(this.items.getCount()>0){this.collapse();d=this.items.get(0);d.el.focus()}return true}if(g.getKey()===g.BACKSPACE){g.stopEvent();if(this.currentFocus&&!this.currentFocus.disabled){b=this.currentFocus;this.on("expand",function(){this.collapse()},this,{single:true});a=this.items.indexOfKey(b.key);this.clearCurrentFocus();if(a<(this.items.getCount()-1)){i=this.items.itemAt(a+1)}b.preDestroy(true);
31if(i){(function(){i.onLnkFocus();this.currentFocus=i}).defer(200,this)}return}else{d=this.items.get(this.items.getCount()-1);if(d&&d.disabled!==true){if(this.backspaceDeletesLastItem){this.on("expand",function(){this.collapse()},this,{single:true});d.preDestroy(true)}else{if(this.navigateItemsWithTab){d.onElClick()}else{this.on("expand",function(){this.collapse();this.currentFocus=d;this.currentFocus.onLnkFocus.defer(20,this.currentFocus)},this,{single:true})}}}return true}}if(!g.isNavKeyPress()){this.multiSelectMode=false;this.clearCurrentFocus();return}if(g.getKey()===g.LEFT||(g.getKey()===g.UP&&!this.isExpanded())){g.stopEvent();this.collapse();d=this.items.get(this.items.getCount()-1);if(this.navigateItemsWithTab){if(d){d.focus()}}else{if(this.currentFocus){a=this.items.indexOfKey(this.currentFocus.key);this.clearCurrentFocus();if(a!==0){this.currentFocus=this.items.itemAt(a-1);this.currentFocus.onLnkFocus()}}else{this.currentFocus=d;if(d){d.onLnkFocus()}}}return true}if(g.getKey()===g.DOWN){if(this.currentFocus){this.collapse();g.stopEvent();a=this.items.indexOfKey(this.currentFocus.key);if(a==(this.items.getCount()-1)){this.clearCurrentFocus.defer(10,this)}else{this.clearCurrentFocus();this.currentFocus=this.items.itemAt(a+1);if(this.currentFocus){this.currentFocus.onLnkFocus()}}return true}}if(g.getKey()===g.RIGHT){this.collapse();d=this.items.itemAt(0);if(this.navigateItemsWithTab){if(d){d.focus()}}else{if(this.currentFocus){a=this.items.indexOfKey(this.currentFocus.key);this.clearCurrentFocus();if(a<(this.items.getCount()-1)){this.currentFocus=this.items.itemAt(a+1);if(this.currentFocus){this.currentFocus.onLnkFocus()}}}else{this.currentFocus=d;if(d){d.onLnkFocus()}}}}},onKeyUpBuffered:function(a){if(!a.isNavKeyPress()){this.autoSize()}},reset:function(){this.killItems();SYNO.ux.SuperBoxSelect.superclass.reset.call(this);this.addedRecords=[];this.autoSize().setRawValue("")},applyEmptyText:function(){this.setRawValue("");if(this.items.getCount()>0){this.el.removeClass(this.emptyClass);this.setRawValue("");if(this.supportPlaceHolder){this.el.dom.placeholder=""}else{this.valueContainsPlaceholder=false}return this}if(this.onBlurCall!==true){return this}SYNO.ux.SuperBoxSelect.superclass.applyEmptyText.call(this);this.onBlurCall=false;return this},removeAllItems:function(){this.items.each(function(a){a.preDestroy(true)},this);this.manageClearBtn();return this},killItems:function(){this.items.each(function(a){a.kill()},this);this.resetStore();this.items.clear();this.manageClearBtn();return this},resetStore:function(){this.store.clearFilter();if(!this.removeValuesFromStore){return this}this.usedRecords.each(function(a){this.store.add(a)},this);this.usedRecords.clear();if(!this.store.remoteSort){this.store.sort(this.displayField,"ASC")}return this},sortStore:function(){var a=this.store.getSortState();if(a&&a.field){this.store.sort(a.field,a.direction)}return this},getCaption:function(c){if(typeof this.displayFieldTpl==="string"){this.displayFieldTpl=new Ext.XTemplate(this.displayFieldTpl)}var b,a=c instanceof Ext.data.Record?c.data:c;if(this.displayFieldTpl){b=this.displayFieldTpl.apply(a)}else{if(this.displayField){b=a[this.displayField]}}return b},addRecord:function(b){var e=b.data[this.displayField],c=this.getCaption(b),f=b.data[this.valueField],a=this.classField?b.data[this.classField]:"",d=this.styleField?b.data[this.styleField]:"";if(this.removeValuesFromStore){this.usedRecords.add(f,b);this.store.remove(b)}this.addItemBox(f,e,c,a,d);this.fireEvent("additem",this,f,b);this.fireEvent.defer(250,this,["valuechanged",this])},createRecord:function(a){if(!this.recordConstructor){var b=[{name:this.valueField},{name:this.displayField}];if(this.classField){b.push({name:this.classField})}if(this.styleField){b.push({name:this.styleField})}this.recordConstructor=Ext.data.Record.create(b)}return new this.recordConstructor(a)},addItems:function(a){if(Ext.isArray(a)){Ext.each(a,function(b){this.addItem(b)},this)}else{this.addItem(a)}},addNewItem:function(a){this.addItem(a,true)},addItem:function(a,c){var e=a[this.valueField];if(this.disabled){return false}if(this.preventDuplicates&&this.hasValue(e)){return}var b=this.findRecord(this.valueField,e);if(b){this.addRecord(b);return}else{if(!this.allowAddNewData){return}}if(!c&&this.mode==="remote"){this.remoteLookup.push(a);this.doQuery(e,false,false,c);return}var d=this.createRecord(a);this.store.add(d);this.addRecord(d);return true},addItemBox:function(c,e,i,h,d){var f,g=function(k){var j="";switch(typeof k){case"function":j=k.call();break;
31case"object":for(var l in k){if(k.hasOwnProperty(l)){j+=l+":"+k[l]+";"}}break;case"string":j=k+";"}return j},a=Ext.id(null,"sbx-item"),b=new SYNO.ux.SuperBoxSelectItem({owner:this,disabled:this.disabled,renderTo:this.wrapEl,cls:this.extraItemCls+" "+h,style:g(this.extraItemStyle)+" "+d,caption:i,display:e,value:c,maxWidth:this.itemMaxWidth||(this.width-100),key:a,"aria-label":i,listeners:{remove:function(j){if(this.fireEvent("beforeremoveitem",this,j.value)===false){return false}this.items.removeKey(j.key);if(this.removeValuesFromStore){if(this.usedRecords.containsKey(j.value)){this.store.add(this.usedRecords.get(j.value));this.usedRecords.removeKey(j.value);this.sortStore();if(this.view){this.view.render()}}}if(!this.preventMultipleRemoveEvents){this.fireEvent.defer(250,this,["removeitem",this,j.value,this.findInStore(j.value)]);this.fireEvent.defer(250,this,["valuechanged",this])}},destroy:function(){this.collapse();this.autoSize().manageClearBtn().validate()},scope:this}});b.render();f={tag:"input",type:"text",name:(this.hiddenName||this.name),style:"display:none"};if(this.disabled){Ext.apply(f,{disabled:"disabled"})}b.hidden=this.el.insertSibling(f,"before");b.hidden.dom.value=c;this.items.add(a,b);this.applyEmptyText().autoSize().manageClearBtn().validate()},setReadOnly:function(a){SYNO.ux.SuperBoxSelect.superclass.setReadOnly.call(this,a);this.manageClearBtn()},manageClearBtn:function(){if(!this.renderFieldBtns||!this.rendered){return this}var a="syno-ux-superboxselect-btn-hide";if(this.items.getCount()===0||this.readOnly===true){this.buttonClear.addClass(a)}else{this.buttonClear.removeClass(a)}return this},findInStore:function(b){var a=this.store.find(this.valueField,b);if(a>-1){return this.store.getAt(a)}return false},getSelectedRecords:function(){var a=[];if(this.removeValuesFromStore){a=this.usedRecords.getRange()}else{var b=[];this.items.each(function(c){b.push(c.value)});Ext.each(b,function(c){a.push(this.findInStore(c))},this)}return a},findSelectedItem:function(b){var a;this.items.each(function(c){if(c.el.dom===b){a=c;return false}});return a},findSelectedRecord:function(b){var a,c=this.findSelectedItem(b);if(c){a=this.findSelectedRecordByValue(c.value)}return a},findSelectedRecordByValue:function(b){var a;if(this.removeValuesFromStore){this.usedRecords.each(function(c){if(c.get(this.valueField)==b){a=c;return false}},this)}else{a=this.findInStore(b)}return a},getValue:function(){var a=[];this.items.each(function(b){a.push(b.value)});return a.join(this.valueDelimiter)},getCount:function(){return this.items.getCount()},getValueEx:function(){var a=[];this.items.each(function(c){var b={};b[this.valueField]=c.value;b[this.displayField]=c.display;if(this.classField){b[this.classField]=c.cls||""}if(this.styleField){b[this.styleField]=c.style||""}a.push(b)},this);return a},initValue:function(){if(Ext.isObject(this.value)||Ext.isArray(this.value)){this.setValueEx(this.value);this.originalValue=this.getValue()}else{SYNO.ux.SuperBoxSelect.superclass.initValue.call(this)}if(this.mode==="remote"){this.setOriginal=true}},addValue:function(c){if(Ext.isEmpty(c)){return}var a=c;if(!Ext.isArray(c)){c=""+c;a=c.split(this.valueDelimiter)}Ext.each(a,function(e){var d=this.findRecord(this.valueField,e);if(d){this.addRecord(d)}else{if(this.mode==="remote"){this.remoteLookup.push(e)}}},this);if(this.mode==="remote"){var b=this.remoteLookup.join(this.queryValuesDelimiter);this.doQuery(b,false,true)}},setValue:function(a){if(!this.rendered){this.value=a;return}this.removeAllItems().resetStore();this.remoteLookup=[];this.addValue(a)},setValueEx:function(a){if(!this.rendered){this.value=a;return}this.removeAllItems().resetStore();if(!Ext.isArray(a)){a=[a]}this.remoteLookup=[];if(this.allowAddNewData&&this.mode==="remote"){Ext.each(a,function(c){var b=this.findRecord(this.valueField,c[this.valueField])||this.createRecord(c);this.addRecord(b)},this);return}Ext.each(a,function(b){this.addItem(b)},this)},hasValue:function(b){var a=false;this.items.each(function(c){if(c.value==b){a=true;return false}},this);return a},onSelect:function(a,b){if(this.fireEvent("beforeselect",this,a,b)!==false){var c=a.data[this.valueField];if(this.preventDuplicates&&this.hasValue(c)){return}this.setRawValue("");this.lastSelectionText="";if(this.fireEvent("beforeadditem",this,c,a,this.filteredQueryData)!==false){this.addRecord(a)}if(this.store.getCount()===0||!this.multiSelectMode){this.collapse()}else{this.restrictHeight()}}},onDestroy:function(){this.items.purgeListeners();this.killItems();if(this.allowQueryAll){Ext.destroy(this.buttonExpand)}
31if(this.renderFieldBtns){Ext.destroy(this.buttonClear,this.buttonWrap)}Ext.destroy(this.inputEl,this.wrapEl,this.outerWrapEl);SYNO.ux.SuperBoxSelect.superclass.onDestroy.call(this)},autoSize:function(){if(!this.rendered){return this}if(!this.metrics){this.metrics=Ext.util.TextMetrics.createInstance(this.el)}var c=this.el,b=c.dom.value,e=document.createElement("div");if(b===""&&this.emptyText&&this.items.getCount()<1){b=this.emptyText}e.appendChild(document.createTextNode(b));b=e.innerHTML;e=null;b+="&#160;";var a=Math.max(this.metrics.getWidth(b)+4,4);if(typeof this._width!="undefined"){a=Math.min(this._width,a)}this.el.setWidth(a);if(Ext.isIE){this.el.dom.style.top="0"}this.fireEvent("autosize",this,a);return this},shouldQuery:function(b){if(this.lastQuery){var a=b.match("^"+Ext.escapeRe(this.lastQuery));if(!a||this.store.getCount()){return true}else{return(a[0]!==this.lastQuery)}}return true},doQuery:function(f,e,b,d){f=Ext.isEmpty(f)?"":f;if(this.queryFilterRe){this.filteredQueryData="";var a=f.match(this.queryFilterRe);if(a&&a.length){this.filteredQueryData=a[0]}f=f.replace(this.queryFilterRe,"");if(!f&&a){return}}var c={query:f,forceAll:e,combo:this,cancel:false};if(this.fireEvent("beforequery",c)===false||c.cancel){return false}f=c.query;e=c.forceAll;if(e===true||(f.length>=this.minChars)||b&&!Ext.isEmpty(f)){if(d||this.forceSameValueQuery||this.shouldQuery(f)){this.lastQuery=f;if(this.mode=="local"){this.selectedIndex=-1;if(e){this.store.clearFilter()}else{this.store.filter(this.displayField,f)}this.onLoad()}else{this.store.baseParams[this.queryParam]=f;this.store.baseParams[this.queryValuesIndicator]=b;this.store.load({params:this.getParams(f)});if(!d){this.expand()}}}else{this.selectedIndex=-1;this.onLoad()}}},onStoreLoad:function(b,a,c){var f=c.params[this.queryParam]||b.baseParams[this.queryParam]||"",g=c.params[this.queryValuesIndicator]||b.baseParams[this.queryValuesIndicator];if(!this.store){return}if(this.removeValuesFromStore){this.store.each(function(i){if(this.usedRecords.containsKey(i.get(this.valueField))){this.store.remove(i)}},this)}if(g){var h=f.split(this.queryValuesDelimiter);Ext.each(h,function(i){this.remoteLookup.remove(i);var j=this.findRecord(this.valueField,i);if(j){this.addRecord(j)}},this);if(this.setOriginal){this.setOriginal=false;this.originalValue=this.getValue()}}if(f!==""&&this.allowAddNewData){Ext.each(this.remoteLookup,function(i){if(typeof i==="object"&&i[this.valueField]===f){this.remoteLookup.remove(i);if(a.length&&a[0].get(this.valueField)===f){this.addRecord(a[0]);return}var j=this.createRecord(i);this.store.add(j);this.addRecord(j);this.addedRecords.push(j);(function(){if(this.isExpanded()){this.collapse()}}).defer(10,this);return}},this)}var d=[];if(f===""){Ext.each(this.addedRecords,function(i){if(this.preventDuplicates&&this.usedRecords.containsKey(i.get(this.valueField))){return}d.push(i)},this)}else{var e=new RegExp(Ext.escapeRe(f)+".*","i");Ext.each(this.addedRecords,function(i){if(this.preventDuplicates&&this.usedRecords.containsKey(i.get(this.valueField))){return}if(e.test(i.get(this.displayField))){d.push(i)}},this)}this.store.add(d);this.sortStore();if(this.store.getCount()===0&&this.isExpanded()){this.collapse()}}});Ext.reg("syno_superboxselect",SYNO.ux.SuperBoxSelect);SYNO.ux.SuperBoxSelectItem=function(a){Ext.apply(this,a);SYNO.ux.SuperBoxSelectItem.superclass.constructor.call(this)};SYNO.ux.SuperBoxSelectItem=Ext.extend(SYNO.ux.SuperBoxSelectItem,Ext.Component,{initComponent:function(){SYNO.ux.SuperBoxSelectItem.superclass.initComponent.call(this)},onElClick:function(a){var b=this.owner;b.clearCurrentFocus().collapse();if(b.navigateItemsWithTab){this.focus()}else{b.el.dom.focus();(function(){this.onLnkFocus();b.currentFocus=this}).defer(10,this)}},onLnkClick:function(a){if(a){a.stopEvent()}this.preDestroy();if(!this.owner.navigateItemsWithTab){this.owner.el.focus()}},onLnkFocus:function(){this.el.addClass("syno-ux-superboxselect-item-focus");this.owner.outerWrapEl.addClass("x-form-focus")},onLnkBlur:function(){this.el.removeClass("syno-ux-superboxselect-item-focus");this.owner.outerWrapEl.removeClass("x-form-focus")},enableElListeners:function(){this.el.on("click",this.onElClick,this,{stopEvent:true});this.el.addClassOnOver("syno-ux-superboxselect-item-hover")},enableLnkListeners:function(){if(this.initialized){this.disableAllListeners()}this.lnk.on({click:this.onLnkClick,focus:this.onLnkFocus,blur:this.onLnkBlur,scope:this});this.initialized=true},enableAllListeners:function(){this.enableElListeners();this.enableLnkListeners()},disableAllListeners:function(){this.el.removeAllListeners();this.lnk.un("click",this.onLnkClick,this);this.lnk.un("focus",this.onLnkFocus,this);this.lnk.un("blur",this.onLnkBlur,this)},onRender:function(c,a){SYNO.ux.SuperBoxSelectItem.superclass.onRender.call(this,c,a);
31var e=this.el,f=this.maxWidth;if(e){e.remove()}this.el=e=c.createChild({tag:"li",role:"option",tabIndex:-1,"aria-selected":true},c.last());e.addClass("syno-ux-superboxselect-item");if(f){if(Ext.isNumber(f)){f+="px"}e.setStyle("maxWidth",f);e.set({"ext:qtip":this.caption})}var d=this.owner.navigateItemsWithTab?(Ext.isSafari?"button":"a"):"span";Ext.apply(e,{preDestroy:function(){this.preDestroy()}.createDelegate(this)});this.enableElListeners();e.update(this.caption);var b={tag:d,"class":"syno-ux-superboxselect-item-close",tabIndex:-1};this.lnk=e.createChild(b);if(!this.disabled){this.enableLnkListeners()}else{this.disableAllListeners()}this.on({disable:this.disableAllListeners,enable:this.enableAllListeners,scope:this});this.setupKeyMap()},setupKeyMap:function(){this.keyMap=new Ext.KeyMap(this.el,[{key:[Ext.EventObject.BACKSPACE,Ext.EventObject.DELETE],fn:this.preDestroy,scope:this},{key:[Ext.EventObject.RIGHT,Ext.EventObject.DOWN],fn:function(){this.moveFocus("right")},scope:this},{key:[Ext.EventObject.LEFT,Ext.EventObject.UP],fn:function(){this.moveFocus("left")},scope:this},{key:[Ext.EventObject.HOME],fn:function(){var a=this.owner.items.get(0).el.focus();if(a){a.el.focus()}},scope:this},{key:[Ext.EventObject.END],fn:function(){this.owner.el.focus()},scope:this},{key:Ext.EventObject.ENTER,fn:function(){}}]);this.keyMap.stopEvent=true},moveFocus:function(a){var b=this.el[a=="left"?"prev":"next"]()||this.owner.el;
31b.focus.defer(100,b)},preDestroy:function(a){if(this.owner.readOnly||this.fireEvent("remove",this)===false||this.isRemoving){return}var b=function(){if(this.owner.navigateItemsWithTab){this.moveFocus("right")}this.hidden.remove();this.hidden=null;this.isRemoving=false;this.destroy()};if(a){b.call(this)}else{this.isRemoving=true;this.el.hide({duration:0.2,callback:b,scope:this})}return this},kill:function(){this.hidden.remove();this.hidden=null;this.purgeListeners();this.destroy()},onDisable:function(){if(this.hidden){this.hidden.dom.setAttribute("disabled","disabled")}this.keyMap.disable();SYNO.ux.SuperBoxSelectItem.superclass.onDisable.call(this)},onEnable:function(){if(this.hidden){this.hidden.dom.removeAttribute("disabled")}this.keyMap.enable();SYNO.ux.SuperBoxSelectItem.superclass.onEnable.call(this)},onDestroy:function(){Ext.destroy(this.lnk,this.el);SYNO.ux.SuperBoxSelectItem.superclass.onDestroy.call(this)}});Ext.define("SYNO.ux.Switch",{extend:"Ext.form.RadioGroup",initComponent:function(){this.addEvents("changed");if(!this.name){this.name=Ext.id()}var a={items:[{boxLabel:"On",name:this.name+"-on",inputValue:true,hidden:true},{boxLabel:"Off",name:this.name+"-off",inputValue:false,hidden:true,checked:true}]};Ext.apply(this,a);SYNO.ux.Switch.superclass.initComponent.call(this)},onRender:function(c,a){SYNO.ux.Switch.superclass.onRender.call(this,c,a);var b='<div class="syno-ux-switch syno-ux-switch-status-{0} syno-ux-switch-{1}"><div class="syno-ux-switch-container"><span class="syno-ux-switch-on">'+_JSLIBSTR("uicommon","on")+'</span><label class="syno-ux-switch-label">&nbsp;</label><span class="syno-ux-switch-off">'+_JSLIBSTR("uicommon","off")+"</span></div></div>";b=String.format(b,this.getValue().inputValue?"on":"off",this.disabled?"disable":"normal");this.iosswitch=new Ext.Element(Ext.DomHelper.append(this.el,b));this.iosswitch.on("click",this.onClick,this);this.addListener("disable",this.setDisabledClass,this);this.addListener("enable",this.setDisabledClass,this)},onClick:function(b,a){if(this.disabled){return}b.stopEvent();this.setValue("toggle");this.fireEvent("afterchange",this,this.value)},setValue:function(a){if(a==="toggle"){a=(true===this.getValue().inputValue)?false:true}else{if([1,"true",true,"on"].indexOf(a)!==-1){a=true}else{if([0,"false",false,"off"].indexOf(a)!==-1){a=false;this.iosswitch.removeClass("syno-ux-switch-status-on").addClass("syno-ux-switch-status-off")}else{SYNO.Debug.warn("Unknown value for Flip Switch: "+a)}}}this.items.first().setValue(a);this.animateSwitch(a)},animateSwitch:function(a){if(a){this.iosswitch.removeClass("syno-ux-switch-status-off").addClass("syno-ux-switch-status-on")}else{this.iosswitch.removeClass("syno-ux-switch-status-on").addClass("syno-ux-switch-status-off")}},setDisabledClass:function(){if(this.disabled){this.iosswitch.removeClass("syno-ux-switch-normal").addClass("syno-ux-switch-disable")}else{this.iosswitch.removeClass("syno-ux-switch-disable").addClass("syno-ux-switch-normal")}}});Ext.reg("syno_switch",SYNO.ux.Switch);Ext.define("SYNO.ux.SwitchColumn",{extend:"Ext.grid.Column",commitChanges:false,constructor:function(a){this.box_id=Ext.id();SYNO.ux.SwitchColumn.superclass.constructor.call(this,a)},init:function(a){if(!Ext.isDefined(this.dataIndex)||!Ext.isDefined(this.id)){throw Error("you should set dataIndex and id for SwitchColumn")}a.mon(a,"cellclick",function(c,e,b,d){if(c.getColumnModel().getColumnId(b)===this.id){this.onCellClick(c,e,d)}},this);this.getGrid=function(){return a}},isIgnore:function(b,a){return false},toggleRec:function(b){var a=b.get(this.dataIndex);if("gray"===a){a=false}b.set(this.dataIndex,!a)},onCellClick:function(a,d,b){var c=a.getStore();if(this.isIgnore("cell",c.getAt(d))){return}this.toggleRec(c.getAt(d));if(this.commitChanges){c.commitChanges()}},checkSelectAll:function(a){},renderer:function(d,c,a){var b='<div class="syno-ux-switch syno-ux-switch-status-{0} syno-ux-switch-{1}"><div class="syno-ux-switch-container"><span class="syno-ux-switch-on">'+_JSLIBSTR("uicommon","on")+'</span><label class="syno-ux-switch-label">&nbsp;</label><span class="syno-ux-switch-off">'+_JSLIBSTR("uicommon","off")+"</span></div></div>";return String.format(b,d?"on":"off",this.isIgnore("cell",a)?"disable":"normal")}});Ext.reg("syno_swtichcolumn",SYNO.ux.SwitchColumn);Ext.define("SYNO.ux.TabPanel",{extend:"Ext.TabPanel",syncTabsActiveEvent:true,useARIA:true,itemTpl:new Ext.XTemplate('<li class="{cls}" role="tab" id="{id}" aria-label="{text}" aria-expanded="false" aria-selected="false"><a class="x-tab-strip-close"></a>','<a class="x-tab-right" tabIndex="-1" aria-labelledby="{id}" role="presentation"><em class="x-tab-left">','<span class="x-tab-strip-inner"><span class="x-tab-strip-text {iconCls}">{text}</span></span>',"</em></a></li>"),constructor:function(a){var b;if(this.useARIA===true){a=this.addPlugins(SYNO.ux.TabPanelARIA,a)}b=Ext.apply({plain:true},a);SYNO.ux.TabPanel.superclass.constructor.call(this,b);this.addClass("syno-ux-tab-panel");
31if(this.syncTabsActiveEvent===true){Ext.each(this.items.items,function(c){c.mon(this,"deactivate",function(){if(c===this.activeTab){this.lastActiveTab=c;var d=this.getTabEl(c);if(d){Ext.fly(d).removeClass("x-tab-strip-active")}c.fireEvent("deactivate");this.activeTab.hide();this.activeTab=null;if(this.layout){this.layout.activeItem=null}}},this)},this);this.mon(this,"activate",function(){if(!this.activeTab){var c=this.lastActiveTab||this.items.get(0);this.setActiveTab(c)}this.lastActiveTab=undefined},this,{buffer:50})}},onStripMouseDown:function(b){if(b.button!==0){return}b.preventDefault();var a=this.findTargets(b);if(a.close){if(a.item.fireEvent("beforeclose",a.item)!==false){a.item.fireEvent("close",a.item);this.remove(a.item)}return}if(a.item&&a.item!=this.activeTab){this.setActiveTab(a.item,true)}},selectNextTab:function(){var d=this.items.items,b=d.indexOf(this.activeTab),c=this.activeTab,a;do{b++;a=d[b];if(a&&!a.disabled&&!a.stripHidden&&!a.inaccessible){c=a;break}}while(b<d.length);this.setActiveTab(c,true)},selectPreTab:function(){var c=this.items.items,b=c.indexOf(this.activeTab),d=this.activeTab,a;do{b--;a=c[b];if(a&&!a.disabled&&!a.stripHidden&&!a.inaccessible){d=a;break}}while(b>-1);this.setActiveTab(d,true)},hideTabStripItem:function(b){this.callParent(arguments);var a=this.getComponent(b);if(a){a.stripHidden=true}},unhideTabStripItem:function(b){this.callParent(arguments);var a=this.getComponent(b);if(a){a.stripHidden=false}},initTab:function(b,a){this.callParent(arguments);this.fireEvent("inittab",Ext.get(b.tabEl),this)},setActiveTab:function(a,c){var b,d;if(this.activeTab){b=this.getTabEl(this.activeTab);if(b){this.fireEvent("deactivatetab",b)}}this.callParent(arguments);if(this.activeTab){d=this.getTabEl(this.activeTab);if(d){this.fireEvent("activatetab",d);if(b&&b!==d&&c){Ext.fly(d).down(".x-tab-right").focus()}}}}});Ext.reg("syno_tabpanel",SYNO.ux.TabPanel);Ext.ns("SYNO.ux");Ext.define("SYNO.ux.FleXcroll.TextArea",{extend:"Ext.form.TextArea",message:undefined,preventScrollbars:true,growMin:56,constructor:function(){var a=this;a.enableKeyEvents=a.autoFlexcroll;a.callParent(arguments)},onRender:function(b,a){var d=this,c=null;var e;d.callParent(arguments);if(!d.autoFlexcroll){return}d.wrap=d.el.wrap({cls:"syno-ux-form-fleXcroll-wrap"});d.scroller=d.wrap.createChild({tag:"div",cls:"syno-ux-form-fleXcroll-element",tabindex:-1});d.mappingEl=d.scroller.createChild({tag:"div",cls:"syno-ux-form-fleXcroll-inner-element"});if(d.preventScrollbars){d.el.setStyle("overflow","hidden")}c=Ext.fly("x-form-el-"+d.id);e=SYNO.SDS.UIFeatures.IconSizeManager.getIconPath("/webman/resources/images/information.png","");if(c&&d.message){Ext.DomHelper.append(c,String.format('<a><img src="{0}" style="vertical-align:bottom;" ext:qtip="{1}"></a>',e,d.message))}d.positionEl=d.wrap;d.mon(d,"flexcroll",d.onFleXcroll,d);d.el.setARIA({multiline:true})},updateScrollerHeight:function(){if(!this.autoFlexcroll){return}var b=this,a=b.el,d=b.scroller.dom,c=a.dom.scrollTop,e=a.dom.scrollLeft;b.mappingEl.setHeight(a.dom.scrollHeight-a.getPadding("tb"));b.updateScrollbar(b.scroller.dom);if(d.fleXcroll){d.fleXcroll.setScrollPos(e,c)}},onKeyUp:function(){var a=this;a.callParent();a.updateScroller()},initEvents:function(){var b=this,a=b.el;b.callParent(arguments);if(!b.autoFlexcroll){return}b.mon(a,{scope:b,mousewheel:b.onMousewheel,cut:b.onKeyUp,paste:b.onKeyUp,mouseup:b.onMouseUp,mousedown:b.onMouseDown});if(b.wrap){b.wrap.swallowEvent("mousewheel")}},onTextAreaMouseMove:function(a){var b=this;b.updateScrollerHeight()},handleTextSelect:function(a){var b=this;b.intClear();b.mon(b.el,"mousemove",b.onTextAreaMouseMove,b)},intClear:function(){var a=this;a.mun(a.el,"mousemove",a.onTextAreaMouseMove,a)},onMouseUp:function(a){this.intClear();this.mouseMoving=false},onMouseDown:function(a){if(this.mouseMoving===true){return}this.mouseMoving=true;this.handleTextSelect(a)},onMousewheel:function(c){var a=this,b=a.scroller.dom,d=c.getWheelDelta();if(b.fleXcroll){b.fleXcroll.scrollContent(false,(-d)*10)}},onFleXcroll:function(){var a=this;a.updateScrollPosition()},updateScrollPosition:function(){var b=this,a=b.el,c=b.scroller.dom;a.dom.scrollTop=c.fleXdata.scrollPosition[1][0];a.dom.scrollLeft=c.fleXdata.scrollPosition[0][0]},updateFleXcroll:function(){var b=this,a=b.el;if(!b.autoFlexcroll){return}b.scroller.setHeight(a.getHeight(true));b.scroller.setStyle({"margin-top":(a.getBorderWidth("t")+a.getPadding("t")+a.getMargins("t"))+"px","margin-bottom":(a.getBorderWidth("b")+a.getPadding("b")+a.getMargins("b"))+"px"});b.updateScrollerHeight()},afterRender:function(){var a=this;a.callParent(arguments);if(!a.autoFlexcroll){return}a.updateScroller()},destroy:function(){var a=this;a.callParent(arguments)},setValue:function(){var a=this;a.callParent(arguments);if(a.rendered===true){a.updateFleXcroll()}}});SYNO.ux.TextArea=Ext.extend(SYNO.ux.FleXcroll.TextArea,{overCls:"syno-ux-textarea-hover",msgTarget:"itip",autoFlexcroll:!Ext.isIE9m,constructor:function(a){SYNO.ux.TextArea.superclass.constructor.call(this,a);this.addClass("syno-ux-textarea")},onRender:function(b,a){SYNO.ux.TextArea.superclass.onRender.call(this,b,a);if(this.label){this.label.addClass("syno-ux-item-label")}SYNO.ux.Utils.setFormItemIndent(this);SYNO.ux.Utils.setFormFieldWidth(this)}});Ext.reg("syno_textarea",SYNO.ux.TextArea);Ext.ns("SYNO.ux");SYNO.ux.TextField=Ext.extend(Ext.form.TextField,{textType:"default",overCls:"syno-ux-textfield-hover",msgTarget:"itip",validateOnBlur:true,validationEvent:"blur",constructor:function(a){if
31("password"===a.textType){a=this.applyPasswordConfig(a)}else{if("password_confirm"===a.textType){a=this.applyPasswordConfirmConfig(a)}else{a=SYNO.ux.Utils.setTextMaxLenConfig(a)}}SYNO.ux.TextField.superclass.constructor.call(this,a);this.addClass("syno-ux-textfield")},onRender:function(b,a){SYNO.ux.TextField.superclass.onRender.call(this,b,a);if(this.label){this.label.addClass("syno-ux-item-label")}SYNO.ux.Utils.setFormItemIndent(this);SYNO.ux.Utils.setFormFieldWidth(this)},applyPasswordConfig:function(a){a.inputType="password";if(a.maxlength){a.autoCreate={tag:"input",type:"password",maxlength:a.maxlength,autocomplete:"off"}}if(a.name){a.itemId=a.name}return a},applyPasswordConfirmConfig:function(a){a=this.applyPasswordConfig(a);if(a.confirmFor&&!a.validator){a.validator=function(d){if(!this.ownerCt){return"Failed to find ownerCt"}var b=this.ownerCt.get(this.confirmFor);if(!b){return"Failed to find password field"}var c=b.getValue();if((d!==c)&&(c!=="12345678"||d!=="87654321")){return _JSLIBSTR("vtype","password_confirm_failed")}return true}}return a}});Ext.reg("syno_textfield",SYNO.ux.TextField);Ext.ns("SYNO.ux");Ext.define("SYNO.ux.MacTextField",{extend:"SYNO.ux.TextField",validator:function(b){var a;if(!b.match(/^([0-9a-f]{2}:){5}[0-9a-f]{2}$/)){a=this.transfer(b);if(false===a){return _JSLIBSTR("uicommon","ap_mac_filter_mac_err")}else{this.setValue(a)}}if(true===this.checkDuplicate(b)){return _JSLIBSTR("uicommon","ap_mac_filter_mac_used")}return true},checkDuplicate:function(b){if(!this.macList){return false}for(var a=0;a<this.macList.length;a++){if(b===this.transfer(this.macList[a])){return true}}return false},transfer:function(c){var a=0;if(0===c.length){return false}if(c.match(/^[0-9a-fA-F]{12}$/)){var b=c.substr(0,2);for(a=2;a<c.length;a+=2){b=b+":"+c.substr(a,2)}c=b}c=c.toLowerCase();if(!c.match(/^([0-9a-f]{2}:){5}[0-9a-f]{2}$/)){return false}return c}});Ext.reg("syno_mactextfield",SYNO.ux.MacTextField);Ext.ns("SYNO.ux");SYNO.ux.TextFilter=Ext.extend(Ext.form.TriggerField,{ctCls:"syno-ux-textfilter",cls:"syno-ux-textfilter-text",triggerConfig:{tag:"button",cls:"x-form-trigger syno-ux-textfilter-trigger","aria-label":_JSLIBSTR("common","clear_input")},enableKeyEvents:true,listeners:{keyup:{fn:function(b,a){b.trigger.setVisible((b.getValue()!==""))}},render:{fn:function(a){a.trigger.hide()}}},enableAudioInput:false,iconStyle:"search",queryDelay:500,queryAction:"find",enumAction:"enum",queryParam:"query",localFilter:false,localFilterField:"",pageSize:20,blOr:false,constructor:function(a){this.emptyText=_JSLIBSTR("uicommon","search");if("filter"===a.iconStyle){this.addClass("syno-ux-textfilter-filter-icon")}if(a.enableAudioInput){this.enableAudioInput=true;a.autoCreate=Ext.apply({tag:"input",type:"text",autocomplete:"off"},a.autoCreate)}SYNO.ux.TextFilter.superclass.constructor.call(this,a);if(this.store&&!this.localFilter){this.mon(this.store,"beforeload",this.onBeforeLoad,this)}if(this.store&&this.localFilter===true){this.mon(this.store,"load",this.reset,this)}if(this.enableAudioInput){this.addListener("afterrender",this.setAudioInputStyle,this)}},setAudioInputStyle:function(){if(Ext.isWebKit){this.el.setWidth(this.el.getWidth()+24);this.trigger.setStyle({"margin-right":"14px"})}},initEvents:function(){SYNO.ux.TextFilter.superclass.initEvents.call(this);this.mon(this.el,"keyup",function(a){if(a.getKey()===a.TAB){return}this.filter()},this,{buffer:this.queryDelay})},setPageSize:function(a){this.pageSize=a},onBeforeLoad:function(a,b){var c=this.getValue();if(c){b.params[this.queryParam]=c;b.params.action=this.queryAction}else{b.params.action=this.enumAction}return true},filter:function(){var d=this.getValue();var c={},a=0;if(!this.store){return}if(this.localFilter===true){if(d){if(Ext.isArray(this.localFilterField)&&this.localFilterField.length>0){if(Ext.isString(this.localFilterField[0])){var b=[];for(a=0;a<this.localFilterField.length;a++){b.push({property:this.localFilterField[a],value:d,anyMatch:true})}this.localFilterField=b}else{for(a=0;a<this.localFilterField.length;a++){this.localFilterField[a].value=d}}}this.store.filter(this.localFilterField,d,true,false,false,this.blOr)}else{this.store.clearFilter(false)}return}c[this.store.paramNames.start||this.store.defaultParamNames.start]=0;c[this.store.paramNames.limit||this.store.defaultParamNames.limit]=this.pageSize;if(d){c.action=this.queryAction;c[this.queryParam]=d;this.store.load({params:c})}else{c.action=this.enumAction;this.store.load({params:c})}},reset:function(){SYNO.ux.TextFilter.superclass.reset.call(this);if(this.localFilterField===false&&this.store){this.store.clearFilter(false);this.trigger.hide()}},onTriggerClick:function(){if(this.getValue()){this.setValue("");this.filter()}this.focus(false,200)},setValue:function(a){SYNO.ux.TextFilter.superclass.setValue.call(this,a);if(Ext.isEmpty(a)){this.trigger.hide()}else{this.trigger.show()}}});Ext.reg("syno_textfilter",SYNO.ux.TextFilter);Ext.ns("SYNO.ux");SYNO.ux.SearchField=Ext.extend(SYNO.ux.TextFilter,{defaultAutoCreate:{tag:"input",type:"text",size:"20",autocomplete:"off"},constructor:function(){this.emptyText=_JSLIBSTR("uicommon","search");SYNO.ux.SearchField.superclass.constructor.apply(this,arguments);this.initMenu()},initMenu:function(){if(this.getMenu()){this.mon(this.getMenu(),{scope:this,show:this.onMenuShow,hide:this.onMenuHide});this.mon(this.getMenu(),"afterlayout",function(){this.getMenu().getEl().addClass("syno-ux-searchfield-menu")},this,{single:true});if(Ext.isFunction(this.addManagedComponent)){this.addManagedComponent(this.getMenu())}}},onRender:function(b,a){this.doc=Ext.isIE?Ext.getBody():Ext.getDoc();Ext.form.TriggerField.superclass.onRender.call(this,b,a);this.wrap=this.el.wrap({tag:"div",cls:"x-form-field-wrap x-form-field-trigger-wrap",style:"display:block;width:100%;border-collapse:collapse;table-layout: fixed;margin-right: 1px;",cn:[{tag:"div",style:"display:inline-block;width:4px;vertical-align:top;"},{tag:"div",cls:"x-form-field-wrap-center-img",style:"display:inline-block;vertical-align:top;"}]});this.trigger=this.wrap.createChild(this.triggerConfig||{tag:"img",src:Ext.BLANK_IMAGE_URL,alt:"",cls:"x-form-trigger "+this.triggerClass,style:"display:inline-block;vertical-align:top;"});this.searchtriggerfocusEl=this.wrap.createChild({tag:"button",cls:"syno-search-condition-focus-el","aria-label":_JSLIBSTR("uicommon","advanced_search")});this.inputWrap=this.el.wrap({tag:"div",style:"display:inline-block;vertical-align:top;"});this.initTrigger();this.searchtrigger=this.wrap.child(".x-form-field-wrap-center-img");this.mon(this.searchtrigger,"click",this.onSearchTriggerClick,this);this.mon(this.searchtriggerfocusEl,"click",this.onSearchTriggerClick,this);if(!this.width){this.wrap.setWidth(this.el.getWidth()+this.trigger.getWidth())}this.resizeEl=this.positionEl=this.wrap;this.el.setWidth(this.el.getWidth()-this.trigger.getWidth());this.container.addClass("syno-ux-searchfield")},onResize:function(){SYNO.ux.SearchField.superclass.onResize.apply(this,arguments);var a=this.wrap.getWidth()-this.searchtrigger.getWidth()-this.trigger.getWidth();this.inputWrap.setWidth(a);this.el.setWidth(a)},onTriggerClick:function(){if(!this.disabled){SYNO.ux.SearchField.superclass.onTriggerClick.apply(this,arguments)}},getMenu:Ext.emptyFn,hasVisibleMenu:function(){return this.getMenu()&&this.getMenu().ownerCt==this&&this.getMenu().isVisible()},showMenu:function(){if(this.rendered&&this.getMenu()){if(this.getMenu().isVisible()){this.getMenu().hide()}this.getMenu().ownerCt=this;this.getMenu().show(this.container,"tl-bl")}return this}
31,onSearchTriggerClick:function(a){if(a){a.preventDefault()}if(a.button!==0){return}if(!this.disabled&&this.getMenu()&&!this.hasVisibleMenu()&&!this.ignoreNextClick){this.showMenu()}},onMenuShow:function(a){if(this.getMenu().ownerCt==this){this.getMenu().ownerCt=this;this.ignoreNextClick=0}},onMenuHide:function(a){if(this.getMenu().ownerCt==this){this.ignoreNextClick=this.restoreClick.defer(250,this);delete this.getMenu().ownerCt}},restoreClick:function(){this.ignoreNextClick=0}});Ext.reg("syno_searchfield",SYNO.ux.SearchField);Ext.ns("SYNO.ux");Ext.define("SYNO.ux.TimeField",Ext.apply(SYNO.ux.FleXcrollConfig.ComboBox,{extend:"Ext.form.TimeField",xtype:"syno_timefield",useARIA:true,overCls:"syno-ux-timefield-hover",triggerClass:"syno-ux-timefield-trigger",listClass:"syno-ux-combobox-list",defaultTriggerWidth:27,msgTarget:"itip",ariaField:"aria",displayField:"display",valueField:"value",constructor:function(a){var b=(Ext.isDefined(a.useARIA))?a.useARIA:this.useARIA;if(b===true){a=this.addPlugins(SYNO.ux.ComboboxARIA,a);this.tpl='<tpl for="."><div class="x-combo-list-item {[values.cls || ""]}" role="option" aria-label="{'+this.ariaField+'}" id="{[Ext.id()]}">{'+this.displayField+"}</div></tpl>"}this.callParent([a]);this.addClass("syno-ux-timefield")},onRender:function(b,a){this.callParent(arguments);if(this.label){this.label.addClass("syno-ux-item-label")}if(this.trigger){this.trigger.addListener("mouseover",this.onMouseover,this);this.trigger.addListener("mouseout",this.onMouseout,this)}this.mon(this.el,{scope:this,mouseover:this.onMouseover,mouseout:this.onMouseout});SYNO.ux.Utils.setFormItemIndent(this);SYNO.ux.Utils.setFormFieldWidth(this)},generateStore:function(c){var d=this.minValue||new Date(this.initDate).clearTime(),b=this.maxValue||new Date(this.initDate).clearTime().add("mi",(24*60)-1),f=[],a;while(d<=b){var e=d.dateFormat(this.format);f.push([e,e,d.toLocaleTimeString()]);d=d.add("mi",this.increment)}a=new Ext.data.ArrayStore({fields:["display","value","aria"],data:f,displayField:"display",valueField:"value",expandData:false,autoDestroy:true});this.bindStore(a,c)},onMouseover:function(){this.addClass("syno-ux-timefield-hover");this.trigger.addClass("x-form-trigger-over")},onMouseout:function(){this.removeClass("syno-ux-timefield-hover");this.trigger.removeClass("x-form-trigger-over")},markInvalid:function(a){if(this.trigger){this.trigger.addClass("syno-ux-trigger-invalid")}this.callParent(arguments)},clearInvalid:function(){if(this.trigger){this.trigger.removeClass("syno-ux-trigger-invalid")}this.callParent(arguments)},setReadOnly:function(a){if(a){this.addClass("syno-ux-triggerfield-readonly")}else{this.removeClass("syno-ux-triggerfield-readonly")}this.callParent(arguments)}}));Ext.define("SYNO.ux.Toolbar",{extend:"Ext.Toolbar",xtype:"syno_toolbar",defaultType:"syno_button",constructor:function(){this.callParent(arguments);this.addClass("syno-ux-toolbar")}});Ext.define("SYNO.ux.data.TreeReader",{extend:"Ext.data.JsonReader",tree:null,constructor:function(a,b){this.callParent([a,b||a.fields])},load:function(d){if(d.attributes.children){var c=d.attributes.children;for(var b=0,a=c.length;b<a;b++){var e=d.appendChild(this.createNode(c[b]));this.load(e)}}},createNode:function(a){var b=new Ext.data.Node(a);b.expanded=(a.expanded===true);return b},readRecords:function(g){var a=this.createNode({text:"Root",id:"root",children:this.getRoot(g)});this.tree=new Ext.data.Tree(a);this.load(a);var d=this.recordType.prototype.fields;var c=[],e,b;a.cascade(function(h){if(h!==a){var f=new this.recordType(this.extractValues(h,d.items),h.id);f.node=h;f.depth=h.getDepth();c.push(f)}},this);e=c.length;if(this.meta.totalProperty){b=parseInt(this.getTotal(g),10);if(!isNaN(b)){e=b}}return{success:true,records:c,totalRecords:e}},extractValues:function(e,a){var g,c={};for(var d=0;d<a.length;d++){g=a[d];var b=e.attributes[g.mapping];c[g.name]=g.convert((b!==undefined)?b:g.defaultValue,e)}return c}});Ext.define("SYNO.ux.TreePanel",{extend:"Ext.tree.TreePanel",autoFlexcroll:true,useARIA:true,htmlEncode:true,findNext:true,updateScrollBarEventNames:["afterlayout","expandnode","collapsenode","resize"],constructor:function(a){var b=Ext.apply({useGradient:true,bodyStyle:"padding-right: 12px; padding-left: 12px;"},a);if(this.useARIA===true){b=this.addPlugins(SYNO.ux.TreePanelARIA,b)}this.callParent([b]);this.addClass("syno-ux-treepanel");
31if(b.useGradient){this.addClass("syno-ux-treepanel-gradient")}this.mon(this.getSelectionModel(),"selectionchange",this.protectFocus,this)},initComponent:function(){this.callParent(arguments);this.addEvents("rootnoderendered","noderendered")},protectFocus:function(b,c){if(!this.rendered||!this.autoFlexcroll){return}var a=this.body;a.dom.focusProtect=!!c;if(Ext.isObject(c)){c=[c]}if(c&&c[0]&&c[0].ensureVisible){c[0].ensureVisible()}},registerNode:function(a){if(this.nodeHash[a.id]===undefined){a.on("noderender",this.onNodeRender,this)}this.nodeHash[a.id]=a},unregisterNode:function(a){a.un("noderender",this.onNodeRender,this);delete this.nodeHash[a.id]},onNodeRender:function(a){if(a.isRoot){this.fireEvent("rootnoderendered",a,this);if(!this.rootVisible){return}}this.fireEvent("noderendered",a,this)},getAriaEl:function(){if(!this.ariaEl){this.ariaEl=this.body}return this.ariaEl}});Ext.reg("syno_treepanel",SYNO.ux.TreePanel);Ext.ns("SYNO.ux");SYNO.ux.TriModeCheckbox=Ext.extend(SYNO.ux.Checkbox,{values:[null,false,true],triMode:true,setTriMode:function(a){this.triM
31ode=a},getCheckIndex:function(){if(typeof this.triValue=="undefined"){this.triValue=this.checked}for(var a=0;a<this.values.length;a++){if(this.triValue===this.values[a]){if(!this.triMode&&a===0){return(a+1)}return a}}return 0},setCheckedDisabledClass:function(){this.checkIcon.removeClass("syno-ux-cb-checked");this.checkIcon.removeClass("syno-ux-cb-grayed");if(this.getCheckIndex()===0){this.checkIcon.addClass("syno-ux-cb-grayed")}else{if(this.checked){this.checkIcon.addClass("syno-ux-cb-checked")}}if(this.disabled){this.checkIcon.addClass("syno-ux-cb-disabled");if(this.boxLabel){this.boxlabelEl.addClass("syno-ux-cb-disabled")}}else{this.checkIcon.removeClass("syno-ux-cb-disabled");if(this.boxLabel){this.boxlabelEl.removeClass("syno-ux-cb-disabled")}}},getNextStat:function(){return(this.values[(this.getCheckIndex()+1)%this.values.length])},onClick:function(a){if(this.disabled||this.readOnly){return}if(this.triMode){this.setValue(this.getNextStat())}else{this.setValue(!this.checked)}},setValue:function(a){var c,d=this.triValue,b=this.inputValue;if(a===null){this.triValue=null;this.checked=true}else{if(a===false){this.triValue=this.checked=false}else{c=(a===true||a==="true"||a=="1"||(b?a==b:String(a).toLowerCase()=="on"));this.triValue=this.checked=c}}if(d!=this.triValue){this.fireEvent("check",this,this.triValue);if(this.handler){this.handler.call(this.scope||this,this,this.triValue)}}this.setCheckedDisabledClass();return this},getValue:function(){return(this.triValue===null)?"":this.triValue.toString()},getRealValue:function(){return this.checked}});Ext.define("SYNO.ux.WhiteQuickTip",{extend:"Ext.QuickTip",xtype:"syno_whitequicktip",floating:{shadow:false,shim:true,useDisplay:true,constrain:false},tagConfig:{namespace:"ext",attribute:"wtip",width:"wwidth",target:"target",title:"qtitle",hide:"hide",cls:"iclass",align:"qalign",anchor:"anchor"},dismissDelay:0,initComponent:function(){this.callParent(arguments);this.addEvents("click")},onRender:function(){this.callParent(arguments);this.mon(this.el,"mouseover",this.onSelfMouseOver,this);this.mon(this.el,"mouseout",this.onSelfMouseOut,this);this.mon(this.el,"mousemove",this.onSelfMouseMove,this);this.mon(this.el,"click",this.fireClickEvent,this);var a=this.field;if(a instanceof SYNO.ux.DisplayField){a.initValue()}},fireClickEvent:function(){this.fireEvent("click",[this].concat(arguments))},onSelfMouseOver:function(a){this.clearTimer("hide")},onSelfMouseOut:function(){this.clearTimer("show");if(this.autoHide!==false){this.delayHide(1)}},onSelfMouseMove:function(){this.clearTimer("hide")},delayHide:function(a){if(!this.hidden&&!this.hideTimer){this.hideTimer=this.hide.defer(a||this.hideDelay,this)}},getTipCfg:function(f){var b=f.getTarget(),d,a;if(this.interceptTitles&&b.title&&Ext.isString(b.title)){d=b.title;b.wtip=d;b.removeAttribute("title");f.preventDefault()}else{a=this.tagConfig;d=b.wtip||Ext.fly(b).getAttribute(a.attribute,a.namespace);if(Ext.isEmpty(d)&&b.wtip_items||Ext.fly(b).getAttribute("wtip_items",a.namespace)){var g=b.id,c=Ext.getCmp(g);d=c?c.tipItems:undefined}}return d},doAutoWidth:Ext.emptyFn,onTargetOver:function(h){if(this.disabled){return}this.targetXY=h.getXY();var c=h.getTarget();if(!c||c.nodeType!==1||c==document||c==document.body){return}if(this.activeTarget&&((c==this.activeTarget.el)||Ext.fly(this.activeTarget.el).contains(c))){this.clearTimer("hide");this.show();return}if(c&&this.targets[c.id]){this.activeTarget=this.targets[c.id];this.activeTarget.el=c;this.anchor=this.activeTarget.anchor;if(this.anchor){this.anchorTarget=c}this.delayShow();return}var f=this.getTipCfg(h),g=Ext.fly(c),b=this.tagConfig,d=b.namespace;if(f){var a=g.getAttribute(b.hide,d);this.activeTarget={el:c,tipContents:f,width:g.getAttribute(b.width,d),autoHide:a!="user"&&a!=="false",title:g.getAttribute(b.title,d),cls:g.getAttribute(b.cls,d),align:g.getAttribute(b.align,d)};this.anchor=g.getAttribute(b.anchor,d);if(this.anchor){this.anchorTarget=c}this.delayShow()}},showAt:function(c){var a=this.activeTarget;if(a){if(!this.rendered){this.render(Ext.getBody());this.activeTarget=a}if(a.width){this.setWidth(a.width);this.body.setWidth(this.adjustBodyWidth(a.width-this.getFrameWidth()));this.measureWidth=false}else{this.setWidth("auto");this.body.setWidth("auto")}this.setTitle(a.title||"");if(Ext.isString(a.tipContents)){this.body.setStyle("max-width",this.maxWidth+"px");if(!this.body.hasClass("text-only")){this.body.addClass("text-only")}this.body.update(a.tipContents);this.mon(this,"beforehide",this.removeStyle,this,{single:true})}else{if(Ext.isArray(a.tipContents)){this.body.update("");Ext.each(a.tipContents,function(d){if(d.rendered){this.body.appendChild(d.el)}else{d.render(this.body)}d.show();this.mon(this,"beforehide",this.moveItemToBody.bind(this,d),this,{single:true})},this)}else{if(Ext.isObject(a.tipContents)){this.body.update("");var b=a.tipContents;if(b.rendered){this.body.appendChild(b.el)}else{b.render(this.body)}b.show();this.mon(this,"beforehide",this.moveItemToBody.bind(this,b),this,{single:true})}}}this.autoHide=a.autoHide;this.dismissDelay=a.dismissDelay||this.dismissDelay;if(this.lastCls){this.el.removeClass(this.lastCls);delete this.lastCls}
31if(a.cls){this.el.addClass(a.cls);this.lastCls=a.cls}if(this.anchor){this.constrainPosition=false}else{if(a.align){c=this.el.getAlignToXY(a.el,a.align);this.constrainPosition=false}else{this.constrainPosition=true}}}Ext.QuickTip.superclass.showAt.call(this,c)},removeStyle:function(){this.body.setStyle("max-width","none");this.body.removeClass("text-only")},moveItemToBody:function(a){a.el.appendTo(Ext.getBody());a.hide()}});SYNO.ux.WhiteQuickTips=function(){var b,a=false;return{init:function(c){if(!b){if(!Ext.isReady){Ext.onReady(function(){SYNO.ux.WhiteQuickTips.init(c)});return}b=new SYNO.ux.WhiteQuickTip({baseCls:"x-tip-white",elements:"header,body",disabled:a});if(c!==false){b.render(Ext.getBody())}}},ddDisable:function(){if(b&&!a){b.disable()}},ddEnable:function(){if(b&&!a){b.enable()}},enable:function(){if(b){b.enable()}a=false},disable:function(){if(b){b.disable()}a=true},isEnabled:function(){return b!==undefined&&!b.disabled},getQuickTip:function(){return b},register:function(){b.register.apply(b,arguments)},unregister:function(){b.unregister.apply(b,arguments)},tips:function(){b.register.apply(b,arguments)}}}();SYNO.ux.WhiteQuickTips.init(true);Ext.define("SYNO.ux.WhiteTipIcon",{extend:"Ext.BoxComponent",constructor:function(a){var d,c;a=a||{};d=a.field;if(!d){throw"need field as render target!"}var b={renderTo:Ext.getBody()};this.callParent([Ext.apply(b,a)]);this.addClass("syno-ux-whitetip-icon");this.relayEvents(this.getTip(),["click"]);c=d.rendered;if(c){this.renderToField()}else{this.mon(d,"afterrender",this.renderToField,this)}},renderToField:function(){var b=this.field,a=this.getRenderTargetByField(b);if(!a.isInsertBefore){a.parent.appendChild(this.el.dom)}else{a.parent.insertBefore(this.el.dom,a.dom)}},lookupComponent:function(a){if(Ext.isString(a)){return Ext.ComponentMgr.get(a)}else{if(!a.events){return this.createComponent(a)}}return a},createComponent:function(a,d){if(a.render){return a}var b=Ext.create(Ext.apply({ownerCt:this},a),d||this.defaultType);delete b.initialConfig.ownerCt;delete b.ownerCt;return b},getRenderTargetByField:function(b){var a={isInsertBefore:false,dom:null,parent:null};if(b instanceof SYNO.ux.DisplayField){a.parent=b.el}else{if(b instanceof SYNO.ux.Button&&Ext.getDom(b.el).nextSibling){a.isInsertBefore=true;a.parent=b.el.parent().dom;a.dom=b.el.dom.nextSibling}else{if(b instanceof SYNO.ux.TextArea){a.parent=b.el.dom.parentNode.parentNode}else{a.parent=b.el.dom.parentNode}}}return a},adjustStyleForButton:function(){var a=this.field,b=a.el.getStyle("margin-right");if(!a.el.dom.nextSibling){return}if(b!=="0px"){a.el.dom.style+=" margin-right: 0px !important;";this.el.dom.style+=" margin-right: 6px !important;"}},addAriaAttr:function(){var a=this.field;a.el.set({"aria-describedby":a.el.dom.getAttribute("aria-describedby")+" "+this.id})},onRender:function(){this.callParent(arguments);this.el.set({"ext:wtip":this.message||"",draggable:false,"ext:wwidth":this.tipWidth||""});if(!Ext.isEmpty(this.tipItems)){if(Ext.isArray(this.tipItems)){this.tipItems=this.tipItems.map(function(a){return this.lookupComponent(a)}.bind(this))}else{this.tipItems=this.lookupComponent(this.tipItems)}this.el.set({"ext:wtip_items":true})}if(this.field instanceof SYNO.ux.Button){this.adjustStyleForButton()}this.addAriaAttr()},getTip:function(){return SYNO.ux.WhiteQuickTips.getQuickTip()},beforeDestroy:function(){if(Ext.isArray(this.tipItems)){Ext.each(this.tipItems,function(a){if(a.destroy){a.destroy()}})}else{if(this.tipItems&&this.tipItems.destroy){this.tipItems.destroy()}}this.tipItems=null;this.field=null}});SYNO.ux.AddWhiteTipWithMsg=function(c,b,a){return new SYNO.ux.WhiteTipIcon({field:c,message:b,tipWidth:a})};SYNO.ux.AddWhiteTipWithItem=function(c,a,b){return new SYNO.ux.WhiteTipIcon({field:c,tipItems:a,tipWidth:b})};Ext.ns("SYNO.ux.Utils");SYNO.ux.Utils.setFormItemIndent=function(d){var a=d.indent||0;var b=a*30;if(d.label&&!d.hideLabel){if(d.ownerCt&&"top"===d.ownerCt.labelAlign){d.label.setStyle({"margin-left":b+"px"})}else{var c=d.labelWidth||d.ownerCt.labelWidth||180;d.label.setStyle({"margin-left":b+"px",width:c-b+"px"})}}else{if(d.wrap){d.wrap.setStyle({"margin-left":b+"px"})}else{d.getEl().setStyle({"margin-left":b+"px"})}}if(d instanceof SYNO.ux.Button){d.btnEl.set({"aria-level":a+1});if(d.arrowBtnEl){d.arrowBtnEl.set({"aria-level":a+1})}}else{d.getEl().set({"aria-level":a+1})}return d};SYNO.ux.Utils.setFormFieldWidth=function(b){var a=b.ownerCt;if(!b.width&&a&&a.fieldWidth){b.setWidth(a.fieldWidth)}return b};
31SYNO.ux.Utils.setTextMaxLenConfig=function(a){if(a&&a.maxlength){a.autoCreate={tag:"input",type:"text",maxlength:a.maxlength,autocomplete:"off"}}return a};SYNO.ux.Utils.findFormField=function(b,a){var c=b.findField(a);if(Ext.isEmpty(c)){c=Ext.getCmp(a)}return c};SYNO.ux.Utils.displayFormField=function(d,b,g){var j;var h=d.findField(b);if(h instanceof SYNO.ux.Radio){j=SYNO.ux.Utils.getRadioGroup(d,b)}else{j=[h]}for(var e=0;e<j.length;e++){h=j[e];if(h&&h.getEl()){var k=h.getEl().findParent("div[class~=x-form-item]",d.el,true);if(!k){continue}var c=k.isDisplayed();k.setDisplayed(g);if(c===false&&g===true&&h.msgTarget=="under"){var f=h.getEl().findParent(".x-form-element",5,true);var a=f.child("div[class~=x-form-invalid-msg]");if(a){a.setWidth(f.getWidth(true)-20)}}}}};SYNO.ux.Utils.getRadioGroup=function(c,b){var e=[];var d=c.el.query("input[name="+b+"]");for(var a=0;a<d.length;a++){e.push(Ext.getCmp(d[a].id))}return e};SYNO.ux.Utils.EnableRadioGroup=Ext.extend(Object,{constructor:function(e,d,a){this.form=e;this.members=a;var g=SYNO.ux.Utils.getRadioGroup(e,d);for(var c=0;c<g.length;c++){var b=g[c];var f=b.getInputValue();if(f in a){b.mon(b,"check",this.onRadioCheck,this);b.mon(b,"enable",this.onRadioEnable,this,{delay:50});b.mon(b,"disable",this.onRadioEnable,this,{delay:50});this.onRadioCheck(b,b.getValue())}}},onRadioEnable:function(c){var e=c.getInputValue();var a=this.members[e];var d=c.getValue();var b=d&&(!c.disabled);Ext.each(a,function(g){var h=SYNO.ux.Utils.findFormField(this.form,g);h.setDisabled(!b);if(Ext.isFunction(h.clearInvalid)){h.clearInvalid()}},this)},onRadioCheck:function(b,c){var d=b.getInputValue();var a=this.members[d];Ext.each(a,function(e){var g=SYNO.ux.Utils.findFormField(this.form,e);g.setDisabled(!c);if(Ext.isFunction(g.clearInvalid)){g.clearInvalid()}},this)}});SYNO.ux.Utils.EnableCheckGroup=Ext.extend(Object,{constructor:function(c,b,f,e,a){var d=SYNO.ux.Utils.findFormField(c,b);e=typeof(e)!="undefined"?e:[];a=Ext.isDefined(a)?a:{};this.enable_fields=f;this.disable_fields=e;this.config=a;this.form=c;d.mon(d,"check",this.checkHandler,this);d.mon(d,"enable",this.enableHandler,this,{delay:50});d.mon(d,"disable",this.enableHandler,this,{delay:50});this.checkHandler(d,d.getValue())},setFieldStatus:function(d,g,c,a){var f,e,b;if(g.inputType=="radio"||g instanceof SYNO.ux.Radio){f=SYNO.ux.Utils.getRadioGroup(d,g.getName())}else{f=[g]}for(b=0;b<f.length;b++){if(a){e=c?f[b].disable():f[b].enable()}else{e=c?f[b].enable():f[b].disable()}if(Ext.isFunction(f[b].clearInvalid)){f[b].clearInvalid()}}},enableField:function(b,c,a){this.setFieldStatus(b,c,a,false)},isNeedDisableGroup:function(a){if(true===this.config.disable_group&&true===a){return true}return false},checkHandler:function(c,b){var a,e=this.isNeedDisableGroup(c.disabled),d;for(a=0;a<this.enable_fields.length;a++){d=SYNO.ux.Utils.findFormField(this.form,this.enable_fields[a]);if(e){this.enableField(this.form,d,false)}else{this.setFieldStatus(this.form,d,b,false)}}for(a=0;a<this.disable_fields.length;a++){d=SYNO.ux.Utils.findFormField(this.form,this.disable_fields[a]);if(e){this.enableField(this.form,d,false)}else{this.setFieldStatus(this.form,d,b,true)}}},enableHandler:function(c){var b,a=(c.disabled===false&&c.getRealValue()===true),e=this.isNeedDisableGroup(c.disabled),d;for(b=0;b<this.enable_fields.length;b++){d=SYNO.ux.Utils.findFormField(this.form,this.enable_fields[b]);if(e){this.enableField(this.form,d,false)}else{this.setFieldStatus(this.form,d,a,false)}}for(b=0;b<this.disable_fields.length;b++){d=SYNO.ux.Utils.findFormField(this.form,this.disable_fields[b]);if(e){this.enableField(this.form,d,false)}else{this.setFieldStatus(this.form,d,a,true)}}}});SYNO.ux.Utils.getFormFieldApi=function(d,b){var a=d;var c={};b=("set"===b||"get"===b)?b:"";while(a){if(a.webapi&&SYNO.ux.Utils.checkApiObjValid(a.webapi)){Ext.apply(c,a.webapi);if(""!==b){c.method=c.method||c.methods[b];delete c.methods}break}a=a.ownerCt}return c};SYNO.ux.Utils.checkApiConsistency=function(d,c){if(d.api!=c.api||d.method!=c.method||d.version!=c.version){return false}return true};SYNO.ux.Utils.checkFieldApiConsistency=function(e,c,d){d=("set"===d)?d:"get";var b=SYNO.ux.Utils.getFormFieldApi(e,d);return SYNO.ux.Utils.checkApiConsistency(b,c)};
31SYNO.ux.Utils.checkApiObjValid=function(a){if(!a.api||!a.version||!(a.methods&&(a.methods.get||a.methods.set)||a.method)){return false}return true};SYNO.ux.Utils.getApiParams=function(a,d){var c={};for(var b=0;b<d.length;b++){if(d[b].params&&SYNO.ux.Utils.checkApiConsistency(a,d[b])){Ext.apply(c,d[b].params);break}}return c};SYNO.ux.Utils.setApiParams=function(a,b){delete a.params;a.params={};Ext.apply(a.params,b);return a};SYNO.ux.Utils.getApiArray=function(b,f,e,a){var c=[],d;f=("get"===f||"set"===f)?f:"";if(a!==-1&&e>a){return c}if(!b instanceof Ext.Component){return c}if(b.webapi&&SYNO.ux.Utils.checkApiObjValid(b.webapi)){d={};if(""===f){d=b.webapi}else{d.api=b.webapi.api;d.method=b.webapi.method||b.webapi.methods[f];d.version=b.webapi.version;if(b.webapi.params&&b.webapi.params[f]){d.params=b.webapi.params[f]}}c.push(d)}if(b.items){b.items.each(function(i,g,h){c=c.concat(SYNO.ux.Utils.getApiArray(i,f,e+1,a))})}return c};SYNO.ux.Utils.checkObjectConsistency=function(c,b){var a,e,d;if(typeof c!==typeof b){return false}if((!Ext.isObject(c)&&!Ext.isArray(c))||(!Ext.isObject(b)&&!Ext.isArray(b))){return c===b}if(Ext.isArray(c)){if(c.length!==b.length){return false}for(a=0;a<c.length;a++){if(!SYNO.ux.Utils.checkObjectConsistency(c[a],b[a])){return false}}}else{for(e in c){if(c.hasOwnProperty(e)){if(!(e in b)){return false}}}for(d in b){if(b.hasOwnProperty(d)){if(!(d in c)){return false}}}for(e in c){if(c.hasOwnProperty(e)){if(!SYNO.ux.Utils.checkObjectConsistency(c[e],b[e])){return false}}}}return true};SYNO.ux.Utils.checkArrayInclude=function(a,c){if(!Ext.isArray(a)){return false}var b=false;Ext.each(a,function(d){if(SYNO.ux.Utils.checkObjectConsistency(d,c)){b=true;return false}});return b};SYNO.ux.Utils.uniqueApiArray=function(a){var b=[];if(!Ext.isArray(a)){return a}Ext.each(a,function(c){if(!SYNO.ux.Utils.checkArrayInclude(b,c)){b.push(c)}});return b};Ext.ns("SYNO");SYNO.CellActions=Ext.extend(Ext.ux.grid.CellActions,{beforeClickClass:"ux-cell-action-before-click",afterClickClass:"ux-cell-action-after-click",clickedRecord:null,clickedRow:null,needHandleMouseClick:false,onRenderGrid:function(){SYNO.CellActions.superclass.onRenderGrid.apply(this,arguments);this.grid.on("beforehide",this.onBeforeGridHide,this);this.grid.on("destroy",this.destroy,this,{single:true});this.view.mainBody.on("mousedown",this.onMouseDown,this);this.view.mainBody.on("mouseup",this.onMouseUp,this)},onClick:function(f,d){if(this.needHandleMouseClick===false){return}this.needHandleMouseClick=false;var c=f.getTarget("div.ux-cell-action"),g=f.getTarget(".x-grid3-row"),a,b;if(!c){return}a=this.grid.store.getAt(g.rowIndex);if(this.isRecordAlreadyClicked(a)){this.clearClickRecordAndRow();SYNO.CellActions.superclass.onClick.apply(this,arguments)}else{this.setToBeforeClick();this.saveClickRecordAndRow(a,g);b=Ext.get(c);b.addClass(this.afterClickClass);b.removeClass(this.beforeClickClass)}},onBeforeGridHide:function(){this.setToBeforeClick();this.clearClickRecordAndRow()},setToBeforeClick:function(){var a;if(this.clickedRecord&&this.clickedRow){a=Ext.get(this.clickedRow).child("div.ux-cell-action");a.addClass(this.beforeClickClass);a.removeClass(this.afterClickClass)}},saveClickRecordAndRow:function(a,b){this.clickedRecord=a;this.clickedRow=b},clearClickRecordAndRow:function(){this.clickedRecord=null;this.clickedRow=null},isRecordAlreadyClicked:function(a){return this.clickedRecord?this.clickedRecord===a:false},destroy:function(){this.purgeListeners()},getAdditionalCls:function(b){var a=this.beforeClickClass;if(this.isRecordAlreadyClicked(b)){a=this.afterClickClass}return a},onMouseDown:function(a){this.needHandleMouseClick=true},onMouseUp:function(b,a){if(this.needHandleMouseClick){this.onClick(b,a)}}});Ext.ns("SYNO");SYNO.CustRadio=Ext.extend(Ext.form.Radio,{ctCls:"syno-radiobox",overCls:"x-checkbox-over",values:[false,true],checkedCls:[null,"x-checkbox-checked"],onRender:function(b,a){SYNO.CustRadio.superclass.onRender.call(this,b,a);this.boxEl=this.el.next();this.container.addClassOnOver(this.overCls)},initValue:function(){SYNO.CustRadio.superclass.initValue.apply(this,arguments);this.setValue(this.getValue())},updateCheckCls:function(){if(!this.boxEl){return}var a=this.checkedCls[this.getValue()?1:0];this.boxEl.replaceClass(this._checkCls,a);this._checkCls=a},setValue:function(a){SYNO.CustRadio.superclass.setValue.call(this,a);this.updateCheckCls();return this}});Ext.tree.CustTreeNodeUI=function(){Ext.tree.CustTreeNodeUI.superclass.constructor.apply(this,arguments)};Ext.tree.CustTreeNodeUI.HIDESTATE=3;Ext.tree.CustTreeNodeUI.CHECKSTATE=2;Ext.tree.CustTreeNodeUI.UNCHECKSTATE=1;Ext.tree.CustTreeNodeUI.GRAYSTATE=0;Ext.extend(Ext.tree.CustTreeNodeUI,Ext.tree.TreeNodeUI,{values:[null,fal
31se,true],checkedCls:["x-checkbox-grayed",null,"x-checkbox-checked"],checkboxCls:"x-checkbox",expanded:false,err:-1,textField:null,showTextFieldAlways:false,initEvents:function(){Ext.tree.CustTreeNodeUI.superclass.initEvents.apply(this,arguments);if(this.checkbox){Ext.EventManager.on(this.checkbox,"click",this.toggleCheck,this)}},destroy:function(){if(this.checkbox){Ext.EventManager.un(this.checkbox,"click",this.toggleCheck,this)}Ext.tree.CustTreeNodeUI.superclass.destroy.apply(this,arguments)},getCheckIndex:function(b){for(var a=0;a<this.values.length;a++){if(b.getUI()&&b.getUI().checkbox&&b.getUI().checkbox.checked===this.values[a]){return a}}return this.err},getTextValue:function(a){return a.getUI().textField.value},setTextValue:function(b,a){b.getUI().textField.value=a},clearCheck:function(){if(true===this.node.disabled){return}this.onCheckChange(Ext.tree.CustTreeNodeUI.UNCHECKSTATE)},onCheckChange:function(a){this.checkbox.checked=this.values[a];this.checkbox.className=this.checkedCls[a];if(this.node.firstChild){this.updateChild(this.node.firstChild,a)}if(this.node.parentNode!=this.root){this.updateParent(this.node.parentNode,a)}var b=this.checkbox.checked;this.node.attributes.checked=b;this.fireEvent("checkchange",this.node,b)},toggleCheck:function(){if(true===this.node.disabled){return}var a=this.getCheckIndex(this.node);a=(a===Ext.tree.CustTreeNodeUI.UNCHECKSTATE)?Ext.tree.CustTreeNodeUI.CHECKSTATE:Ext.tree.CustTreeNodeUI.UNCHECKSTATE;this.onCheckChange(a)},updateChild:function(b,a){var c=b;do{if(c.disabled){c=c.nextSibling;continue}if(c.getUI()&&c.getUI().checkbox){c.getUI().checkbox.checked=this.values[a];c.getUI().checkbox.className=this.checkedCls[a]}if(c.firstChild){this.updateChild(c.firstChild,a)}c=c.nextSibling}while(c)},updateParent:function(d,a){var c=this.getCheckIndex(d);if(a!=c){var b=this.checkchildstate(d);if(d.getUI()&&d.getUI().checkbox){d.getUI().checkbox.checked=this.values[b];d.getUI().checkbox.className=this.checkedCls[b]}if(d.parentNode!=this.root){this.updateParent(d.parentNode,b)}}},checkchildstate:function(b){var a=b.firstChild;if(!a){return this.err}while(a){if(Ext.tree.CustTreeNodeUI.UNCHECKSTATE!==this.getCheckIndex(a)){return Ext.tree.CustTreeNodeUI.GRAYSTATE}a=a.nextSibling}return Ext.tree.CustTreeNodeUI.UNCHECKSTATE},renderElements:function(e,i,h,j){this.indentMarkup=e.parentNode?e.parentNode.ui.getChildIndent():"";var f=(undefined===i.inputType)?"text":i.inputType;var b,c=i.href?i.href:Ext.isGecko?"":"#",d=['<li class="x-tree-node">','<div ext:tree-node-id="',Ext.util.Format.htmlEncode(e.id),'" class="x-tree-node-el x-tree-node-leaf x-unselectable ',i.cls,'" unselectable="on">','<span class="x-tree-node-indent">',this.indentMarkup,"</span>",'<img alt="" src="',this.emptyIcon,'" class="x-tree-ec-icon x-tree-elbow" />','<img alt="" src="',i.icon||this.emptyIcon,'" class="x-tree-node-icon',(i.icon?" x-tree-node-inline-icon":""),(i.iconCls?" "+i.iconCls:""),'" unselectable="on" />','<span><img alt="" src="'+this.emptyIcon+'" style="margin:0 2px 0 2px;" class="x-checkbox" /></span>','<a hidefocus="on" class="x-tree-node-anchor" href="',c,'" tabIndex="1" ',i.hrefTarget?' target="'+i.hrefTarget+'"':"",'><span unselectable="on">',e.text,"</span></a>",'<input style="width:140px;" class="x-form-text x-form-field" type='+f+"></input>","</div>",'<ul class="x-tree-node-ct" style="display:none;"></ul>',"</li>"].join("");if(j!==true&&e.nextSibling&&(b=e.nextSibling.ui.getEl())){this.wrap=Ext.DomHelper.insertHtml("beforeBegin",b,d)}else{this.wrap=Ext.DomHelper.insertHtml("beforeEnd",h,d)}this.elNode=this.wrap.childNodes[0];this.ctNode=this.wrap.childNodes[1];var g=this.elNode.childNodes;this.indentNode=g[0];this.ecNode=g[1];this.iconNode=g[2];this.checkbox=g[3];if(i.checked==="checked"){this.checkbox.checked=this.values[Ext.tree.CustTreeNodeUI.CHECKSTATE];this.checkbox.className=this.checkedCls[Ext.tree.CustTreeNodeUI.CHECKSTATE]}else{if(i.checked==="gray"){this.checkbox.checked=this.values[Ext.tree.CustTreeNodeUI.GRAYSTATE];this.checkbox.className=this.checkedCls[Ext.tree.CustTreeNodeUI.GRAYSTATE]}else{if(i.checked==="unchecked"){this.checkbox.checked=this.values[Ext.tree.CustTreeNodeUI.UNCHECKSTATE];this.checkbox.className=this.checkedCls[Ext.tree.CustTreeNodeUI.UNCHECKSTATE]}else{this.checkbox.hide()}}}this.anchor=g[4];this.textNode=g[4].firstChild;this.textField=g[5];if(true!==i.showTextField){this.textField.hide()}if(i.textValue){this.textField.value=i.textValue}this.showTextFieldAlways=i.showTextFieldAlways},onClick:function(c){if(this.dropping){c.stopEvent();return}if(this.fireEvent("beforeclick",this.node,c)!==false){var b=c.getTarget("a");if(!this.disabled&&this.node.attributes.href&&b){this.fireEvent("click",this.node,c);return}else{if(b&&c.ctrlKey){c.stopEvent()}}c.preventDefault();if(this.disabled){return}if(this.node.attributes.singleClickExpand&&!this.animating&&this.node.isExpandable()){this.node.toggle(
31)}this.fireEvent("click",this.node,c);if(true===this.node.attributes.showTextField){this.textField.focus()}}else{c.stopEvent()}},onDisableChange:function(a,b){this.disabled=b;if(this.checkbox){this.checkbox.disabled=b}if(b){this.addClass("x-tree-node-disabled")}else{this.removeClass("x-tree-node-disabled")}if(this.textField){if(this.showTextFieldAlways){this.textField.disabled=false}else{this.textField.disabled=b}}}});Ext.namespace("SYNO");SYNO.Debug=function(){var a=Ext.urlDecode(location.search.substr(1)).jsDebug,d=window.console&&window.console.log&&true,c=window.console||Ext.emptyFn;var e=function(h){var i="error".split(",");h=h.split(",");function f(l){var j=a||i.indexOf(l)!==-1;if(!j||!d){return Ext.emptyFn}var k=Ext.isFunction(window.console[l])?window.console[l]:Ext.emptyFn;return k.createDelegate(c)}var g={};Ext.each(h,function(j){g[j]=f(j)});return g}("debug,trace,log,info,warn,error,group,groupEnd,profile,profileEnd,table,time,timeEnd,timeStamp");var b=e.log;Ext.apply(b,e);return b}();SYNO.Assert=function assert(a,b){if(!a){throw b}};Ext.namespace("SYNO");SYNO.EnableColumn=Ext.extend(Ext.grid.Column,{commitChanges:false,bindRowClick:false,enableFastSelectAll:false,disableSelectAll:false,constructor:function(b){var a='<input id="{0}" type="checkbox" style="height:10px;vertical-align:middle">&nbsp;{1}';this.box_id=Ext.id();if(!b.disableSelectAll){b.header=String.format(a,this.box_id,b.header||"")}SYNO.EnableColumn.superclass.constructor.call(this,b)},init:function(a){if(!Ext.isDefined(this.dataIndex)||!Ext.isDefined(this.id)){throw Error("you should set dataIndex and id for EnableColumn")}a.mon(a,"cellclick",function(c,e,b,d){if(c.getColumnModel().getColumnId(b)===this.id||this.bindRowClick){this.onCellClick(c,e,d)}},this);a.mon(a,"headerclick",function(d,c,b){var e;if(d.getColumnModel().getColumnId(c)===this.id||this.bindRowClick){e=b.getTarget("input",1,true);if(e){this.onSelectAll()}}},this);a.mon(a,"afterrender",function(b){this.box_el=Ext.get(this.box_id);b.mon(b.getStore(),"add",this.checkSelectAll,this);b.mon(b.getStore(),"remove",this.checkSelectAll,this);b.mon(b.getStore(),"load",this.checkSelectAll,this);b.mon(b.getColumnModel(),"columnmoved",this.onColumnMoved,this);b.mon(b.getColumnModel(),"headerchange",this.onHeaderChange,this);b.mon(b.getView(),"refresh",this.onHeaderChange,this);this.checkSelectAll(b.getStore())},this,{single:true});this.getGrid=function(){return a}},isIgnore:function(b,a){return false},toggleRec:function(b){var a=b.get(this.dataIndex);if("gray"===a){a=false}b.set(this.dataIndex,!a)},onColumnMoved:function(){this.box_el=Ext.get(this.box_id);this.checkSelectAll(this.getGrid().getStore())},onHeaderChange:function(){this.box_el=Ext.get(this.box_id);this.checkSelectAll(this.getGrid().getStore())},onSelectAll:function(){var d,b,e,c,a;if(!this.box_el||!this.box_el.dom){return}d=this.getGrid().getStore();a=!!(this.box_el.dom.checked);if(this.enableFastSelectAll){d.suspendEvents()}for(b=0,c=d.getCount();b<c;b++){e=d.getAt(b).get(this.dataIndex);if(("gray"!==e&&!!(e)===a)||this.isIgnore("all",d.getAt(b))){continue}this.toggleRec(d.getAt(b))}if(this.enableFastSelectAll){this.getGrid().getView().refresh();d.resumeEvents()}if(this.commitChanges){d.commitChanges()}this.checkSelectAll(d)},onCellClick:function(a,d,b){var c=a.getStore();if(this.isIgnore("cell",c.getAt(d))){return}c=a.getStore();this.toggleRec(c.getAt(d));if(this.commitChanges){c.commitChanges()}this.checkSelectAll(c)},checkSelectAll:function(d){var a,e,c=d.getCount();var b=(c>0);if(!this.box_el||!this.box_el.dom){return}for(a=0;a<c;a++){if(this.isIgnore("check",d.getAt(a))){continue}e=d.getAt(a).get(this.dataIndex);if("gray"===e||!e){b=false;break}}this.box_el.dom.checked=b},renderer:function(c,b,a){return String.format('<div class="syno-grid-enable-column-{0}">&nbsp;</div>',("gray"===c?"grayed":c?"checked":"unchecked"))}});Ext.namespace("SYNO.LayoutConfig");Ext.apply(SYNO.LayoutConfig,{FIXED_INDENT_WIDTH:19,DEFAULT_FIELD_WIDTH:250,DEFAULT_LABEL_WIDTH:180});SYNO.LayoutConfig.calcLabelStyle=function(c){var f=SYNO.LayoutConfig;var a=c.indent||0;var b=a*f.FIXED_INDENT_WIDTH;var e=c.width||f.DEFAULT_LABEL_WIDTH;var d=String.format("margin-left: {0}px; width: {1}px;",b,e-b);return d};SYNO.LayoutConfig.calcFieldStyle=function(c){var e=SYNO.LayoutConfig;var a=c.indent||0;var b=a*e.FIXED_INDENT_WIDTH;var d=String.format("margin-left: {0}px;",b);return d};Ext.apply(SYNO.LayoutConfig,{fillWidth:function(a,b){if(!b.width&&a.synodefaults&&a.synodefaults.width){b.width=a.synodefaults.width}return b},fillHiddenNameId:function(a,b){if(b.name){b.hiddenName=b.name;b.hiddenId=Ext.id()}return b},fillItemId:function(a,b){if(b.name){b.itemId=b.name}return b},fillTextMaxLen:function(a,b){if(b.maxlength){b.autoCreate={tag:"input",type:"text",maxlength:b.maxlength}}return b},fillPasswordMaxLen:function(a,b){if(b.maxlength){b.autoCreate={tag:"input",type:"password",maxlength:b.maxlength}}return b},fillLabelStyle:function(a,b){b.labelStyle=SYNO.LayoutConfig.calcLabelStyle({width:b.labelWidth||a.labelWidth,indent:b.indent});return b},fillFieldStyle:function(a,b){b.style=SYNO.LayoutConfig.calcFieldStyle({indent:b.indent});return b},fillPasswordConfirmValidator:function(a,b){if(b.confirmFor&&!b.validator){b.validator=function(e){if(!this.ownerCt){return"Failed to find ownerCt"}var c=this.ownerCt.get(this.confirmFor);var d=c.getValue();if((e!==d)&&(d!=="12345678"||e!=="87654321")){return _JSLIBSTR("vtype","password_confirm_failed")}return true}}return b}});Ext.ns("SYNO.LayoutConfig.Types");Ext.ns("SYNO.LayoutConfig.Defaults");SYNO.LayoutConfig.Defaults.combo={xtype:"combo",triggerAction:"all",editable:false,mode:"local"};SYNO.LayoutConfig.Types.combo=function(a,b){Ext.applyIf(b,SYNO.LayoutConfig.Defaults.combo);SYNO.LayoutConfig.fillWidth(a,b);SYNO.LayoutConfig.fillHiddenNameId(a,b);SYNO.LayoutConfig.fillTextMaxLen(a,b);SYNO.LayoutConfig.fillLabelStyle(a,b);return b};SYNO.LayoutConfig.Defaults.desc={xtype:"displayfield",hideLabel:true};SYNO.LayoutConfig.Types.desc=function(a,b){Ext.applyIf(b,SYNO.LayoutConfig.Defaults.desc);SYNO.LayoutConfig.fillFieldStyle(a,b);return b};SYNO.LayoutConfig.Defaults.check={xtype:"checkbox",hideLabel:true};SYNO.LayoutConfig.Types.check=function(a,b){Ext.applyIf(b,SYNO.LayoutConfig.Defaults.check);SYNO.LayoutConfig.fillFieldStyle(a,b);return b};SYNO.LayoutConfig.Defaults.radio={xtype:"radio",hideLabel:true};SYNO.LayoutConfig.Types.radio=function(a,b){Ext.applyIf(b,SYNO.LayoutConfig.Defaults.radio);SYNO.LayoutConfig.fillFieldStyle(a,b);return b};SYNO.LayoutConfig.Defaults.text={xtype:"textfield",msgTarget:"qtip",validateOnBlur:true,validationEvent:"blur"};SYNO.LayoutConfig.Types.text=function(a,b){Ext.applyIf(b,SYNO.LayoutConfig.Defaults.text);SYNO.LayoutConfig.fillWidth(a,b);SYNO.LayoutConfig.fillTextMaxLen(a,b);SYNO.LayoutConfig.fillLabelStyle(a,b);return b};SYNO.LayoutConfig.Defaults.password={xtype:"textfield",inputType:"password",msgTarget:"qtip",validateOnBlur:true,validationEvent:"blur"};SYNO.LayoutConfig.Types.password=function(a,b){Ext.applyIf(b,SYNO.LayoutConfig.Defaults.password);SYNO.LayoutConfig.fillWidth(a,b);SYNO.LayoutConfig.fillItemId(a,b);SYNO.LayoutConfig.fillPasswordMaxLen(a,b);SYNO.LayoutConfig.fillLabelStyle(a,b);return b};SYNO.LayoutConfig.Defaults.password_confirm={xtype:"textfield",inputType:"password",msgTarget:"qtip",validateOnBlur:true,validationEvent:"blur"};SYNO.LayoutConfig.Types.password_confirm=function(a,b){Ext.applyIf(b,SYNO.LayoutConfig.Defaults.password_confirm);SYNO.LayoutConfig.fillWidth(a,b);SYNO.LayoutConfig.fillItemId(a,b);SYNO.LayoutConfig.fillPasswordMaxLen(a,b);SYNO.LayoutConfig.fillLabelStyle(a,b);SYNO.LayoutConfig.fillPasswordConfirmValidator(a,b);return b};SYNO.LayoutConfig.Defaults.number={xtype:"numberfield",msgTarget:"qtip",validateOnBlur:true,validationEvent:"blur",allowDecimals:false,allowNegative:false,allowBlank:false};SYNO.LayoutConfig.Types.number=function(a,b){Ext.applyIf(b,SYNO.LayoutConfig.Defaults.number);SYNO.LayoutConfig.fillWidth(a,b);SYNO.LayoutConfig.fillTextMaxLen(a,b);SYNO.LayoutConfig.fillLabelStyle(a,b);return b};SYNO.LayoutConfig.Defaults.indent={};SYNO.LayoutConfig.Types.indent=function(a,b){Ext.applyIf(b,SYNO.LayoutConfig.Defaults.indent);SYNO.LayoutConfig.fillWidth(a,b);SYNO.LayoutConfig.fillLabelStyle(a,b);return b};SYNO.LayoutConfig.Defaults.indent_no_label={hideLabel:true};SYNO.LayoutConfig.Types.indent_no_label=function(a,b){Ext.applyIf(b,SYNO.LayoutConfig.Defaults.indent_no_label);SYNO.LayoutConfig.fillWidth(a,b);SYNO.LayoutConfig.fillFieldStyle(a,b);return b};SYNO.LayoutConfig.Types.password_display=function(b,c){var a=[];a.push(SYNO.LayoutConfig.Types.password(b,Ext.apply({},c)));a.push(SYNO.LayoutConfig.Types.text(b,Ext.apply({},{name:"",hidden:true,hideMode:"display",actualValidator:c.validator,validator:function(e){var d=this.nextSibling().getValue();if(d&&this.actualValidator){return this.actualValidator(e)}return true}},c)));a.push(SYNO.LayoutConfig.Types.check(b,{xtype:"checkbox",hideLabel:true,boxLabel:c.showBoxLabel?c.showBoxLabel:_JSLIBSTR("extlang","show_password"),listeners:{added:function(f){var e=f.previousSibling();var d=f.previousSibling().previousSibling();d.addListener("focus",function(){if(!this.isDirty()){this.setRawValue("")}});d.addListener("blur",function(){if(""===this.getValue()){this.reset()}});d.addListener("enable",function(){f.setDisabled(false);e.setDisabled(false)});d.addListener("disable",function(){f.setDisabled(true);
31e.setDisabled(true)});e.addListener("change",function(j,h,g){var i=f.getValue();if(i){d.setValue(h)}})},check:function(g,f){var e=this.previousSibling();var d=this.previousSibling().previousSibling();if(f&&d.isDirty()){e.setValue(d.getValue())}e.setVisible(f);d.setVisible(!f)}}}));Ext.apply(c,{xtype:"compositefield",width:null,validator:null,items:a,name:""});SYNO.LayoutConfig.fillWidth(b,c);SYNO.LayoutConfig.fillItemId(b,c);SYNO.LayoutConfig.fillLabelStyle(b,c);return c};SYNO.LayoutConfig.fill=function(a){var b=SYNO.LayoutConfig;return b.fillForm(a)};SYNO.LayoutConfig.fillFormField=function(a,c){if(!c){return SYNO.LayoutConfig.fillFormField({},a)}var b=c.synotype;Ext.each(c.items||[],function(f,d,e){SYNO.LayoutConfig.fillFormField(c,f)});if(b&&SYNO.LayoutConfig.Types[b]){SYNO.LayoutConfig.Types[b](a,c)}return c};SYNO.LayoutConfig.fillForm=function(a){return SYNO.LayoutConfig.fillFormField(a)};Ext.ns("SYNO");SYNO.RoundedMenu=Ext.extend(Ext.menu.Menu,{shadow:false,defaultOffsets:[0,-3],onRender:function(b,a){SYNO.RoundedMenu.superclass.onRender.apply(this,arguments);var c=this.el.addClass("syno-rounded-menu");var g=c.insertFirst({cls:"syno-rounded-menu-tc"});g.wrap({cls:"syno-rounded-menu-tr"});g.wrap({cls:"syno-rounded-menu-tl"});var f=this.ul.wrap({cls:"syno-rounded-menu-ml"});this.ul.wrap({cls:"syno-rounded-menu-mr"});this.ul.wrap({cls:"syno-rounded-menu-mc"});var e=f.wrap({cls:"syno-rounded-menu-bwrap"});var d=e.createChild({tag:"div",cls:"syno-rounded-menu-bc"});d.wrap({cls:"syno-rounded-menu-bl"});d.wrap({cls:"syno-rounded-menu-br"})}});Ext.ns("SYNO.SDS");SYNO.SDS.PagelessGridView=(function(){var c;var b=Ext.ux.grid.BufferView;var a=Ext.extend(b,{position:0,scrollBuffer:200,init:function(d){c.init.apply(this,arguments);this.ds.on({guaranteedrange:this.onGuaranteedRange,loadByIndex:this.onLoadByIndex,scope:this});this.needRefresh=true},onLoadByIndex:function(e,h){var g=this,d=g.getCalculatedRowHeight();h=h||0;var f=Ext.isIE&&!Ext.isIE9?false:{duration:0.35*h/e.getTotalCount()};g.scroller.scrollTo("top",d*h,f)},afterRenderUI:function(){c.afterRenderUI.apply(this,arguments);this.scroller.un("scroll",Ext.ux.grid.BufferView.syncScroll,Ext.ux.grid.BufferView);this.scroller.on("scroll",this.syncScroll,this,{buffer:this.scrollBuffer||0})},onGuaranteedRange:function(f,i,e){var g=this,h=g.ds,d=g.getVisibleRows();if(f.length&&d.first<f[0].index){return}h.guaranteeLoadRecords(f);g.update()},getParams:function(){return this.paramNames||this.grid.store.paramNames},getRowCount:function(){var e=this,d=e.ds;return d[(!d.remoteFilter&&d.isFiltered())?"getCount":"getTotalCount"]()||0},getScrollHeight:function(){var f=this,e=f.getCalculatedRowHeight(),d=f.getRowCount();return d*e},getVisibleRows:function(){var d=this.getVisibleRowCount(),e=this.scroller.dom.scrollTop,f=(e===0?0:Math.floor(e/this.getCalculatedRowHeight())-1);return{first:Math.max(f,0),last:Math.min(f+d+1,this.ds.getTotalCount()-1)}},onLoad:function(d,f,e){this.update()},doRender:function(k,n,y,d,w,D,o){var e=this.templates,h=e.cell,l=e.row,B=e.rowBody,s=w-1,x=this.getStyleRowHeight(),f="width:"+this.getTotalWidth()+";height:"+x+"px;",G=[],m=this.getLastVisibleCol(),A,H,z={},q={tstyle:f},u,v;for(var C=0,F=n.length;C<F;C++){v=n[C];A=[];var t=(C+d),g=v.hasRec!==false;if(g){for(var E=0;E<w;E++){H=k[E];if(E===0){u="x-grid3-cell-first "}else{u=(E==s)?"x-grid3-cell-last ":""}if(E===m){u+="x-grid3-cell-last-visible "}z.id=H.id;z.css=u;z.attr=z.cellAttr="";z.value=H.renderer(v.data[H.name],z,v,t,E,y);z.style=H.style;if(z.value===undefined||z.value===""){z.value="&#160;"}if(v.dirty&&typeof v.modified[H.name]!=="undefined"){z.css+=" x-grid3-dirty-cell"}A[A.length]=h.apply(z)}}var I=[];if(D&&((t+1)%2===0)){I[0]="x-grid3-row-alt"}if(v.dirty){I[1]=" x-grid3-dirty-row"}q.cols=w;if(this.getRowClass){I[2]=this.getRowClass(v,t,q,y)}q.alt=I.join(" ");q.cells=A.join("");G[G.length]=!g?e.rowHolder.apply(q):(o?B.apply(q):l.apply(q))}return G.join("")},renderRows:function(o,g){var j=this,d=j.grid,m=d.store,p=d.stripeRows,l=d.colModel,n=l.getColumnCount(),k=j.getRowCount(),e=[],f,q=j.getVisibleRows();if(k<1||m.getCount()<1){return""}o=o||0;g=Ext.isDefined(g)?g:m.getCount()-1;for(var h=0;h<k;h++){if((h>=q.firs&&h<=q.last)&&j.ds.getAt(h)){e.push(j.ds.getAt(h))}else{f=new m.recordType();f.hasRec=false;e.push(f)}}return this.doRender(this.getColumnData(),e,m,0,n,p)},onDataChange:function(f,e){var g=this,d=g.getVisibleRows();if(g.needRefresh){g.refresh(true)}g.updateHeaderSortState();if(!g.ds.rangeSatisfied(d.first,d.last)){g.doUpdateScroll()}g.needRefresh=true},doUpdateScroll:function(){var e=this,d=e.getCalculatedRowHeight(),g=e.ds.guaranteedStart||0,f=d*g;e.scroller.un("scroll",e.syncScroll,e);e.scroller.scrollTo("top",f);e.scroller.on("scroll",e.syncScroll,e,{buffer:e.scrollBuffer||0})},attemptLoad:function(f,d){var e=this;if(!e.loadTask){e.loadTask=new Ext.util.DelayedTask(e.doAttemptLoad,e,[])}e.loadTask.delay(e.scrollBuffer,e.doAttemptLoad,e,[f,d])},cancelLoad:function(){if(this.loadTask){this.loadTask.cancel()}},doAttemptLoad:function(f,d){var e=this;e.ds.mask();e.ds.guaranteeRange(f,d)},doUpdate:function(){var l=this;if(this.getVisibleRowCount()>0){var j=l.grid,m=j.colModel,d=j.store,k=l.getColumnData(),o=l.getVisibleRows(),f,n;for(var e=o.first;e<=o.last;e++){if(!l.isRowRendered(e)&&(n=l.getRow(e))){f=l.ds.getAt(e);if(f){var h=l.doRender(k,[f],d,e,m.getColumnCount(),j.stripeRows,true);n.innerHTML=h}}}this.clean()}},doClean:function(){if(this.getVisibleRowCount()>0){var g=this,e=g.getVisibleRows();if(e.first<g.cacheSize){e.first=0}else{e.first-=g.cacheSize}e.last+=g.cacheSize;var f=0,h=g.getRows();for(var d=g.getRowCount();f<d;f++){if((f<e.first||f>e.last)&&h[f]){h[f].innerHTML=""}}}},onViewScroll:function(g){var f=this,d=f.position;f.position=f.scroller.dom.scrollTop;f.lastScrollDirection=f.position>d?1:-1;if(d!==f.position){f.handleViewScroll(g,f.lastScrollDirection)}},handleViewScroll:function(j,l){var k=this,n=k.ds,d=n.guaranteedStart,h=n.guaranteedEnd,g=n.getCount(),o=n.getTotalCount(),q=k.getVisibleRows(),i=q.first,m=q.last,f,p;if(o>=g){k.scrollProportion=undefined;
31if(l==-1){if(i!==undefined){if(i<(d+k.numFromEdge)){f=Math.max(0,m+n.numFromEdge-n.pageSize)}else{f=i}}}else{if(i!==undefined){if(m>(h-n.numFromEdge)){f=i-n.numFromEdge}else{f=i-n.numFromEdge}}}if(f!==undefined){p=m+n.numFromEdge;if(n.rangeSatisfied(f,p)){k.cancelLoad();k.needRefresh=false;n.guaranteeRange(f,p)}else{k.needRefresh=true;k.attemptLoad(f,p)}}}},syncScroll:function(d){b.superclass.syncScroll.apply(this,arguments);this.onViewScroll(d)},onLayout:function(f,g){var e=this,d=e.verticalScrollHeight;c.onLayout.apply(this,arguments);e.verticalScrollHeight=g;if(d<e.verticalScrollHeight){e.tryLoadData()}},resolveCell:function(j,g,i){if(!Ext.isNumber(j)){j=j.rowIndex}if(!this.ds){return null}if(j<0||j>=this.ds.getTotalCount()||this.ds.getCount()===0){return null}g=(g!==undefined?g:0);var f=this.getRow(j),e=this.cm,h=e.getColumnCount(),d;if(!(i===false&&g===0)){while(g<h&&e.isHidden(g)){g++}d=this.getCell(j,g)}return{row:f,cell:d}},tryLoadData:function(){var g=this,e=g.ds,d=g.getVisibleRows(),h=d.first,f=d.last;if(f<=h){return}if(e.rangeSatisfied(h,f)){g.cancelLoad();g.needRefresh=false;e.guaranteeRange(h-e.numFromEdge,f+e.numFromEdge)}else{g.needRefresh=true;g.attemptLoad(h-e.numFromEdge,f+e.numFromEdge)}}});c=a.superclass;return a})();Ext.ns("SYNO.SDS");SYNO.SDS.PagingToolbar=Ext.extend(Ext.Toolbar,{constructor:function(a){this.displayMsg=_JSLIBSTR("uicommon","totalDataLength");this.firstText=_JSLIBSTR("extlang","firstpage");this.prevText=_JSLIBSTR("extlang","prevpage");this.nextText=_JSLIBSTR("extlang","nextpage");this.lastText=_JSLIBSTR("extlang","lastpage");this.refreshText=_JSLIBSTR("extlang","refresh");this.emptyMsg=_JSLIBSTR("extlang","pagenodata");SYNO.SDS.PagingToolbar.superclass.constructor.call(this,a)},initComponent:function(){var a=Ext.Toolbar,c=[this.first=new a.Button({tooltip:this.firstText,overflowText:this.firstText,iconCls:"x-tbar-page-first",disabled:true,handler:this.moveFirst,scope:this}),this.prev=new a.Button({tooltip:this.prevText,overflowText:this.prevText,iconCls:"x-tbar-page-prev",disabled:true,hidden:true,handler:this.movePrevious,scope:this}),"-",this.next=new a.Button({tooltip:this.nextText,overflowText:this.nextText,iconCls:"x-tbar-page-next",disabled:true,hidden:true,handler:this.moveNext,scope:this}),this.last=new a.Button({tooltip:this.lastText,overflowText:this.lastText,iconCls:"x-tbar-page-last",disabled:true,handler:this.moveLast,scope:this}),"-",this.refresh=new a.Button({tooltip:this.refreshText,overflowText:this.refreshText,iconCls:"x-tbar-loading",handler:this.doRefresh,scope:this})];var b=this.items||this.buttons||[];if(this.prependButtons){this.items=b.concat(c)}else{this.items=c.concat(b)}delete this.buttons;if(this.displayInfo){this.items.push("->");this.items.push(this.displayItem=new Ext.Toolbar.TextItem({}))}SYNO.SDS.PagingToolbar.superclass.initComponent.call(this);this.addEvents("change","beforechange");this.bindStore(this.store,true)},updateInfo:function(){if(this.displayItem){var a=String.format(this.displayMsg,this.store.getTotalCount());this.displayItem.setText(a)}},onLoad:function(a,c,e){if(!this.rendered){this.dsLoaded=[a,c,e];return}var d=this.getParams(),b=this.store.getTotalCount()>0;if(e){this.cursor=(e.params&&e.params[d.start])?e.params[d.start]:0}this.first.setDisabled(!b);this.prev.setDisabled(!b);this.next.setDisabled(!b);this.last.setDisabled(!b);this.refresh.enable();this.updateInfo();this.fireEvent("change",this)},getPageData:function(){var a=this.store.getTotalCount();return{total:a,activePage:Math.ceil((this.cursor+this.pageSize)/this.pageSize),pages:a<this.pageSize?1:Math.ceil(a/this.pageSize)}},onLoadError:function(){if(!this.rendered){return}this.refresh.enable()},getParams:function(){return this.paramNames||this.store.paramNames},beforeLoad:function(){if(this.rendered&&this.refresh){this.refresh.disable()}},doLoad:function(g,b){var e=this,f={},d=this.getParams(),c=e.store,a=e.pageSize||c.pageSize;b=Math.max(b,a);f[d.start]=g;f[d.limit]=b;if(e.fireEvent("beforechange",e,f)!==false){if(c.buffered){c.mask();c.prefetch({start:g,limit:b,params:f,callback:function(){c.guaranteeRange(g,g+b-1)}})}else{c.load({params:f})}}},moveFirst:function(){this.store.loadByIndex(0)},movePrevious:function(){var b=this.store.guaranteedStart||0,a=this.pageSize||this.store.pageSize;this.store.loadByIndex((b/a-1)*a)},moveNext:function(){var b=this.store.guaranteedStart||0,a=this.pageSize||this.store.pageSize;this.store.loadByIndex((b/a+1)*a)},moveLast:function(){this.store.loadByIndex(this.store.getTotalCount())},doRefresh:function(){var b=this,a=b.store,c=a.guaranteedStart||this.cursor||0;if(a.getTotalCount()<c){c=a.getTotalCount()-(a.pageSize||this.pageSize)}this.doLoad(c,a.guaranteedEnd-a.guaranteedStart+1)},bindStore:function(b,c){var a;if(!c&&this.store){if(b!==this.store&&this.store.autoDestroy){this.store.destroy()}else{this.store.un("beforeload",this.beforeLoad,this);this.store.un("load",this.onLoad,this);this.store.un("exception",this.onLoadError,this)}if(!b){this.store=null}}if(b){b=Ext.StoreMgr.lookup(b);b.on({scope:this,beforeload:this.beforeLoad,load:this.onLoad,exception:this.onLoadError});a=true}this.store=b;if(a){this.onLoad(b,null,{})}},unbind:function(a){this.bindStore(null)},bind:function(a){this.bindStore(a)},onDestroy:function(){this.bindStore(null);SYNO.SDS.PagingToolbar.superclass.onDestroy.call(this)}});Ext.reg("synopaging",SYNO.SDS.PagingToolbar);Ext.ns("SYNO.SDS");SYNO.SDS.RowSelectionModel=Ext.extend(Ext.grid.RowSelectionModel,{init:function(a){SYNO.SDS.RowSelectionModel.superclass.init.apply(this,arguments);var b=this,c=b.grid.store;if(c.buffered){b.selected={};b.innerSelections=[];b.buffered=true}},onRefresh:function(){var g=this.grid.store,e=this.selections,d=0,a=e.length,c,f;this.silent=true;if(!this.buffered){this.clearSelections(true);for(;d<a;d++){f=e[d];if((c=g.indexOfId(f.id))!=-1){this.selectRow(c,true)}}}else{var b=[];for(d=g.getCount()-1;d>=0;d--){f=g.getAt(d);if(f&&this.selected[f.id]){b.push(f.index||d)}}this.selectRows(b,true)}if(e.length!=this.selections.getCount()){this.fireEvent("selectionchange",this)}this.silent=false},clearSelections:function(a){SYNO.SDS.RowSelectionModel.superclass.clearSelections.apply(this,arguments);if(this.buffered){this.selected={};this.innerSelections=[]}},getSelections:function(){return[].concat(this.innerSelections)},selectAll:function(){if(this.isLocked()){return}if(!this.buffered){SYNO.SDS.RowSelectionModel.superclass.selectAll.apply(this,arguments)}else{var a=this.grid.store;a.suspendEvents();a.load({params:{start:0,limit:a.getTotalCount()},callback:function(){this.innerSelections=a.data.items.slice(0);this.selections.clear();this.selected={};for(var b=this.innerSelections.length-1;b>=0;b--){this.selected[this.innerSelections[b].id]=true}a.resumeEvents();this.onRefresh()},scope:this})}},selectRecords:function(b,g){if(!g){this.clearSelections()}var f=this.grid.store,d=0,a=b.length,e,c;for(;d<a;d++){e=b[d];
31if((c=f.indexOfId(e.id))!=-1){this.selectRow(f.getAt(c).index||c,true)}}},selectRow:function(b,e,a){var d=this;if(d.isLocked()){return}var c=this.grid.store.getAt(b);if(c&&this.fireEvent("beforerowselect",this,b,e,c)!==false){if(!e||this.singleSelect){this.clearSelections()}this.selections.add(c);if(d.buffered&&!this.selected[c.id]){this.innerSelections.push(c);this.selected[c.id]=true}this.last=this.lastActive=b;if(!a){this.grid.getView().onRowSelect(b)}if(!this.silent){this.fireEvent("rowselect",this,b,c);this.fireEvent("selectionchange",this)}}},selectRecord:function(a,e,b){var d=this,c=a.index;if(d.isLocked()||!c){return}if(a&&this.fireEvent("beforerowselect",this,c,e,a)!==false){if(!e||this.singleSelect){this.clearSelections()}this.selections.add(a);if(d.buffered&&!this.selected[a.id]){this.innerSelections.push(a);this.selected[a.id]=true}if(!b){this.grid.getView().onRowSelect(c)}if(!this.silent){this.fireEvent("rowselect",this,c,a);this.fireEvent("selectionchange",this)}}},remoteSelectRange:function(c,b,e){if(this.isLocked()){return}if(this.buffered){var d=this.grid.store,a;if(c>b){a=b;b=c;c=a}if(d.rangeSatisfied(c,b)){this.selectRange(c,b,e);return}c=Math.max(0,c);b=Math.min(b,d.getTotalCount()-1);d.suspendEvents();d.prefetch({start:c,limit:b-c+1,callback:function(g){var h=d.prefetchData.items;if(!e){this.clearSelections()}for(var f=h.length-1;f>=0;f--){this.selectRecord(h[f],true)}d.resumeEvents()},scope:this})}else{this.selectRange(c,b,e)}},handleMouseDown:function(d,h,f){if(f.button!==0||this.isLocked()){return}var a=this.grid.getView();if(f.shiftKey&&!this.singleSelect&&this.last!==false){var c=this.last;this.remoteSelectRange(c,h,f.ctrlKey);this.last=c;a.focusRow(h)}else{var b=this.isSelected(h);if(f.ctrlKey&&b){this.deselectRow(h)}else{if(!b||this.getCount()>1){this.selectRow(h,f.ctrlKey||f.shiftKey);a.focusRow(h)}}}},hasNext:function(){return this.last!==false&&(this.last+1)<this.grid.store.getTotalCount()},deselectRow:function(b,a){if(this.isLocked()){return}if(this.last==b){this.last=false}if(this.lastActive==b){this.lastActive=false}var d=this.grid.store.getAt(b);if(d){this.selections.remove(d);if(this.buffered){for(var c=this.innerSelections.length-1;c>=0;c--){if(this.innerSelections[c].id==d.id){this.innerSelections.splice(c,1);this.selected[d.id]=false;delete this.selected[d.id];break}}}if(!a){this.grid.getView().onRowDeselect(b)}this.fireEvent("rowdeselect",this,b,d);this.fireEvent("selectionchange",this)}}});Ext.ns("SYNO.SDS");SYNO.SDS.Store=Ext.extend(Ext.data.Store,{prefetchData:null,pageSize:25,numFromEdge:15,defaultPageSize:25,purgePageCount:2,buffered:false,constructor:function(b){var c=this,a=function(d){return d.index};SYNO.SDS.Store.superclass.constructor.apply(c,arguments);Ext.apply(c,b);if(b.buffered||c.buffered){c.prefetchData=new Ext.util.MixedCollection(false,a);c.pendingRequests=[];c.pagesRequested=[];c.sortOnLoad=false;c.filterOnLoad=false;this.addEvents("beforeprefetch","guaranteedrange","totalcountchange","loadByIndex")}},loadByIndex:function(a){this.fireEvent("loadByIndex",this,a)},getRequestId:function(){this.requestSeed=this.requestSeed||1;return this.requestSeed++},getAt:function(a){var b=0,c;for(;b<this.data.items.length;b++){c=this.data.items[b];if(c.index===a){return c}}return this.data.itemAt(a)},indexOfId:function(a){return this.data.key(a)?this.data.key(a).index||this.data.indexOfKey(a):this.data.indexOfKey(a)},indexOf:function(a){return this.prefetchData.indexOf(a)!==-1?a.index:this.data.indexOf(a)},removeAllBuffer:function(a){this.prefetchData.clear()},doSort:function(){var b=this,a;if(b.remoteSort){if(b.buffered){a=b.getCount();b.prefetchData.clear();b.prefetch({start:0,limit:b.pageSize,callback:function(d,c,e){if(e){b.guaranteedStart=0;b.guaranteedEnd=d.length-1;b.guaranteeLoadRecords(d.slice(0,a))}}})}else{b.load()}}else{b.applySort()}},singleSort:function(j,c){var g=this,i=g.prefetchData,f,b,d,e;var h=g.fields.get(j);if(!h){return false}var a=h.name,k=g.sortInfo||null;if(!c){if(k&&k.field==a){c=(g.sortToggle[a]||"ASC").toggle("ASC","DESC")}else{c=h.sortDir}}g.sortToggle[a]=c;g.sortInfo={field:a,direction:c};g.hasMultiSort=false;if(g.buffered){if(g.remoteSort){g.prefetchData.clear();g.doSort()}else{f=g.getSorters();b=g.guaranteedStart;d=g.guaranteedEnd;if(f.length){i.sort(f);e=i.getRange();i.clear();g.cacheRecords(e);delete g.guaranteedStart;delete g.guaranteedEnd;g.guaranteeRange(b,d)}}}else{g.doSort()}return true},prefetch:function(b){var c=this,f=c.getRequestId();c.pendingRequests.push(f);b=Ext.apply({},b);this.storeOptions(b);if(c.sortInfo&&c.remoteSort){var a=c.paramNames;b.params=Ext.apply({},b.params);b.params[a.sort]=c.sortInfo.field;b.params[a.dir]=c.sortInfo.direction;b.params[a.start]=b.start;b.params[a.limit]=b.limit;b.requestId=f}try{if(this.fireEvent("beforeprefetch",this,b)!==false){return this.executePrefetch("read",null,b)}}catch(d){c.handleException(d);return false}},executePrefetch:function(e,a,c,b){if(!Ext.data.Api.isAction(e)){throw new Ext.data.Api.Error("execute",e)}c=Ext.applyIf(c||{},{params:{}});if(b!==undefined){this.addToBatch(b)}var d=true;if(e==="read"){Ext.applyIf(c.params,this.baseParams)}if(d!==false){if(this.writer&&this.proxy.url&&!this.proxy.restful&&!Ext.data.Api.hasUniqueUrl(this.proxy,e)){c.params.xaction=e}this.proxy.request(Ext.data.Api.actions.read,a,c.params,this.reader,this.prefetchRecords,this,c)}return d},onGuaranteedRange:function(){var f=this,c=f.getTotalCount(),g=f.requestStart,b=((c-1)<f.requestEnd)?c-1:f.requestEnd,d=[],a,e=g;b=Math.max(0,b);if(true){f.guaranteedStart=g;f.guaranteedEnd=b;for(;e<=b;e++){a=f.prefetchData.item(e);if(a){d.push(a)}}f.fireEvent("guaranteedrange",d,g,b)}f.unmask()},prefetchRecords:function(e,a,d){if(this.isDestroyed===true){return}if(!e||d===false){if(d!==false){this.fireEvent("load",this,[],a)}if(a.callback){a.callback.call(a.scope||this,[],a,false,e)}return}var c=e.records,b=e.totalRecords||c.length;if(!a||a.add!==true){this.cacheRecords(c,a);this.totalLength=b;this.fireEvent("totalcountchange",this.totalLength)}this.pendingRequests.remove(a.requestId);this.fireEvent("load",this,c,a);if(a.callback){a.callback.call(a.scope||this,c,a,true)}},getPages:function(h,c){var f=this,d=f.getPageFromRecordIndex(h),b=f.getPageFromRecordIndex(c),a=f.pageSize||f.defaultPageSize,g=Math.max(d-1,0)*a,e=Math.min(b*a-1,f.getTotalCount())||0;return{first:g,last:b!==0?e:g+a-1}},cacheRecords:function(b,a){var e=this,c=0,d=b.length,f=a?a.start:0;if(!Ext.isDefined(e.totalLength)){e.totalCount=b.length}for(;c<d;c++){b[c].index=f+c}e.prefetchData.clear();e.prefetchData.addAll(b)},guaranteeLoadRecords:function(b,c){var f=this,d=0,e=b.length,g=(c=c||{}).start,a=f.snapshot;if(!c.addRecords){delete f.snapshot;f.clearData(true)}else{if(a){a.addAll(b)}}f.data.addAll(b);if(typeof g!="undefined"){for(;d<e;d++){b[d].index=g+d;b[d].join(f)}}else{for(;d<e;d++){b[d].join(f)}}f.suspendEvents();if(f.filterOnLoad&&!f.remoteFilter){f.filter()}
31if(f.sortOnLoad&&!f.remoteSort){f.sort()}f.resumeEvents();f.fireEvent("datachanged",f,b);f.fireEvent("refresh",f)},guaranteeRange:function(g,c){if(this.purgePageCount===0){this.unmask();return}c=(c>this.getTotalCount())?this.getTotalCount()-1:c;var f=this,b=f.getTotalCount(),a,e=f.requestStart;f.requestStart=g;f.requestEnd=c;if(f.rangeSatisfied(g,c)){if(g<e){c=Math.min(c+f.numFromEdge,b-1);g=Math.max(c-(f.pageSize-1)-f.numFromEdge,0)}else{g=Math.max(Math.min(g-f.numFromEdge,b-f.pageSize),0);c=Math.max(g+(f.pageSize-1)+f.numFromEdge,c+f.numFromEdge)}f.onGuaranteedRange()}else{}if(!f.rangeSatisfied(g,c)){a=f.getPages(g,c);var d=Ext.apply({},f.lastOptions);d=Ext.apply(d,{start:a.first,limit:a.last-a.first+1,callback:f.onWaitForGuarantee,scope:f});f.prefetch(d)}},hasPendingRequests:function(){return this.pendingRequests.length},onWaitForGuarantee:function(b,a,c){if(!this.hasPendingRequests()){this.onGuaranteedRange()}},getPageFromRecordIndex:function(a){return a<0?0:Math.floor(a/this.pageSize)+1},rangeSatisfied:function(e,a){if(this.purgePageCount===0){return true}var c=this,b=Math.max(0,e),d=true;a=Math.min(a,c.getTotalCount());if(e===a){return Ext.isDefined(c.prefetchData.item(b))}else{if(a<e){return false}}for(;b<a;b++){if(!c.prefetchData.key(b)){d=false;break}}return d},mask:function(a){this.masked=true;this.fireEvent("beforeload",this,a)},unmask:function(){if(this.masked){this.fireEvent("load",this)}}});Ext.namespace("SYNO");SYNO.TextFilter=Ext.extend(Ext.form.TriggerField,{ctCls:"syno-textfilter",cls:"syno-textfilter-text",triggerConfig:{tag:"div",cls:"x-form-trigger syno-textfilter-trigger"},enableKeyEvents:true,listeners:{keyup:{fn:function(b,a){b.trigger.setVisible((b.getValue()!==""))}},render:{fn:function(a){a.trigger.hide()}}},queryDelay:500,queryAction:"find",enumAction:"enum",queryParam:"query",localFilter:false,localFilterField:"",pageSize:20,constructor:function(a){SYNO.TextFilter.superclass.constructor.call(this,a);if(this.store&&!this.localFilter){this.mon(this.store,"beforeload",this.onBeforeLoad,this)}if(this.store&&this.localFilter===true){this.mon(this.store,"load",this.reset,this)}},initEvents:function(){SYNO.TextFilter.superclass.initEvents.call(this);this.mon(this.el,"keyup",this.filter,this,{buffer:this.queryDelay})},setPageSize:function(a){this.pageSize=a},onBeforeLoad:function(a,b){var c=this.getValue();if(c){b.params[this.queryParam]=c;b.params.action=this.queryAction}else{b.params.action=this.enumAction}return true},filter:function(){var b=this.getValue();var a;if(!this.store){return}if(this.localFilter===true){if(b){this.store.filter(this.localFilterField,b,true)}else{this.store.clearFilter(false)}return}a={start:0,limit:this.pageSize};if(b){a.action=this.queryAction;a[this.queryParam]=b;this.store.load({params:a})}else{a.action=this.enumAction;this.store.load({params:a})}},reset:function(){SYNO.TextFilter.superclass.reset.call(this);if(this.localFilterField===false&&this.store){this.store.clearFilter(false);this.trigger.hide()}},onTriggerClick:function(){if(this.getValue()){this.setValue("");this.filter()}},setValue:function(a){SYNO.TextFilter.superclass.setValue.call(this,a);if(Ext.isEmpty(a)){this.trigger.hide()}}});SYNO.SearchField=Ext.extend(SYNO.TextFilter,{defaultAutoCreate:{tag:"input",type:"text",size:"20",autocomplete:"off",style:"background-image:none;padding-left:0;display:table-cell;vertical-align:inherit;"},constructor:function(){this.emptyText=_JSLIBSTR("uicommon","search");SYNO.SearchField.superclass.constructor.apply(this,arguments)},onRender:function(b,a){this.doc=Ext.isIE?Ext.getBody():Ext.getDoc();Ext.form.TriggerField.superclass.onRender.call(this,b,a);this.wraprright=this.el.wrap({tag:"div",cls:"x-form-field-wrap-center",style:"display:table;width:100%;",cn:{tag:"div",cls:"x-form-field-wrap-center-img",style:"vertical-align:middle;"}});this.wrap=this.wraprright.wrap({cls:"x-form-field-wrap-right"}).wrap({cls:"x-form-field-wrap x-form-field-wrap-left x-form-field-trigger-wrap"});this.trigger=this.wraprright.createChild(this.triggerConfig||{tag:"img",src:Ext.BLANK_IMAGE_URL,alt:"",cls:"x-form-trigger "+this.triggerClass,style:"display:table-cell"});this.el.wrap({tag:"div",style:"display:table-cell;width:100%;vertical-align:middle;"});this.initTrigger();if(!this.width){this.wrap.setWidth(this.el.getWidth()+this.trigger.getWidth())}this.resizeEl=this.positionEl=this.wrap;this.el.setWidth(this.el.getWidth()-this.trigger.getWidth());this.container.addClass("syno-search-field")},onResize:function(){SYNO.SearchField.superclass.onResize.apply(this,arguments);this.el.setWidth(this.el.getWidth()-this.trigger.getWidth()-4)},onTriggerClick:function(){if(!this.disabled){SYNO.SearchField.superclass.onTriggerClick.apply(this,arguments)}}});Ext.ns("SYNO");SYNO.TriCheckbox=function(a){SYNO.TriCheckbox.superclass.constructor.call(this,a)};Ext.extend(SYNO.TriCheckbox,Ext.form.Checkbox,{checkboxCls:"x-checkbox",triMode:true,values:[null,fal
31se,true],checkedCls:["x-checkbox-grayed",null,"x-checkbox-checked"],overClass:"x-checkbox-over",clickClass:"x-checkbox-down",defaultAutoCreate:{tag:"input",type:"hidden",autocomplete:"off"},onRender:function(b,a){Ext.form.Checkbox.superclass.onRender.call(this,b,a);if(this.inputValue!==undefined){this.el.dom.value=this.inputValue}this.wrap=this.el.wrap({cls:"x-form-check-wrap"});if(this.boxLabel){this.wrap.createChild({tag:"label",htmlFor:this.el.id,cls:"x-form-cb-label",html:this.boxLabel})}if(this.clickClass&&!this.disabled&&!this.readOnly){this.wrap.addClassOnClick(this.clickClass)}if(this.overClass&&!this.disabled&&!this.readOnly){this.wrap.addClassOnOver(this.overClass)}this.checkbox=this.wrap.createChild({tag:"img",src:Ext.BLANK_IMAGE_URL,cls:this.checkboxCls},this.el);if(Ext.isIE){this.wrap.repaint()}this.resizeEl=this.positionEl=this.wrap},initValue:function(){if((typeof this.value=="object"&&this.value===null)||this.value===true){this.setValue(this.value)}else{this.setValue(false)}this.originalValue=this.getValue();if(this.overCls!==undefined){this.overClass=this.overCls;delete this.overCls}},onResize:function(){Ext.form.Checkbox.superclass.onResize.apply(this,arguments);if(!this.boxLabel&&!this.fieldLabel&&this.checkbox){this.checkbox.alignTo(this.wrap,"c-c")}},afterRender:function(){Ext.form.Checkbox.superclass.afterRender.call(this)},getCheckIndex:function(){for(var a=0;a<this.values.length;a++){if(this.value===this.values[a]){if(!this.triMode&&a===0){return(a+1)}return a}}return 0},updateCheckCls:function(){if(!this.wrap){return}var a=this.checkedCls[this.getCheckIndex()];this.wrap.replaceClass(this._checkCls,a);this._checkCls=a},getValue:function(){return Ext.form.Checkbox.superclass.getValue.call(this)},initEvents:function(){Ext.form.Checkbox.superclass.initEvents.call(this);this.mon(this.wrap,{scope:this,click:this.onClick})},onClick:function(){if(!this.disabled&&!this.readOnly){this.setValue(this.values[(this.getCheckIndex()+1)%this.values.length])}},setValue:function(a){Ext.form.Checkbox.superclass.setValue.call(this,a);this.updateCheckCls();this.fireEvent("check",this,this.value);if(this.handler){this.handler.call(this.scope||this,this,this.value)}return this}
31,setTriMode:function(a){this.triMode=a},getRealValue:function(){return this.value}});Ext.reg("tricheckbox",SYNO.TriCheckbox);Ext.tree.TriTreeNodeUI=function(){Ext.tree.TriTreeNodeUI.superclass.constructor.apply(this,arguments)};Ext.tree.TriTreeNodeUI.CHECKSTATE=2;Ext.tree.TriTreeNodeUI.UNCHECKSTATE=1;Ext.tree.TriTreeNodeUI.GRAYSTATE=0;Ext.tree.TriTreeNodeUI.ARIATRISTATE=["mixed","false","true"];Ext.extend(Ext.tree.TriTreeNodeUI,Ext.tree.TreeNodeUI,{values:[null,false,true],checkedCls:["x-checkbox-grayed",null,"x-checkbox-checked"],checkboxCls:"x-checkbox",expanded:false,err:-1,initEvents:function(){Ext.tree.TriTreeNodeUI.superclass.initEvents.apply(this,arguments);this.node.on("expand",this.onTriTreeNodeExpand,this);if(this.checkbox){Ext.EventManager.on(this.checkbox,"click",this.toggleCheck,this);this.wrap.setAttribute("aria-checked",(this.checkbox.checked==="gray")?"mixed":this.checkbox.checked)}},destroy:function(){if(this.checkbox){Ext.EventManager.un(this.checkbox,"click",this.toggleCheck,this)}Ext.tree.TriTreeNodeUI.superclass.destroy.apply(this,arguments)},getCheckIndex:function(b){for(var a=0;a<this.values.length;a++){if(b.getUI()&&b.getUI().checkbox&&b.getUI().checkbox.checked===this.values[a]){return a}}return this.err},clearCheck:function(){if(true===this.node.disabled){return}this.onCheckChange(Ext.tree.TriTreeNodeUI.UNCHECKSTATE)},onCheckChange:function(a){this.checkbox.checked=this.values[a];this.checkbox.className=this.checkedCls[a];if(this.node.firstChild){this.updateChild(this.node.firstChild,a)}if(this.node.parentNode!=this.root){this.updateParent(this.node.parentNode,a)}var b=this.checkbox.checked;this.node.attributes.checked=b;this.wrap.setAttribute("aria-checked",this.checkbox.checked);this.fireEvent("checkchange",this.node,b)},toggleCheck:function(){if(true===this.node.disabled){return}var a=this.getCheckIndex(this.node);a=(a===Ext.tree.TriTreeNodeUI.UNCHECKSTATE)?Ext.tree.TriTreeNodeUI.CHECKSTATE:Ext.tree.TriTreeNodeUI.UNCHECKSTATE;this.onCheckChange(a)},updateChild:function(b,a){var c=b;do{if(c.disabled){c=c.nextSibling;continue}if(c.getUI()&&c.getUI().checkbox){c.getUI().checkbox.checked=this.values[a];c.getUI().checkbox.className=this.checkedCls[a];c.getUI().wrap.setAttribute("aria-checked",Ext.tree.TriTreeNodeUI.ARIATRISTATE[a])}if(c.firstChild){this.updateChild(c.firstChild,a)}c=c.nextSibling}while(c)},updateParent:function(d,a){var c=this.getCheckIndex(d);if(a!=c){var b=this.checkchildstate(d);if(d.getUI()&&d.getUI().checkbox){d.getUI().checkbox.checked=this.values[b];d.getUI().checkbox.className=this.checkedCls[b];d.getUI().wrap.setAttribute("aria-checked",Ext.tree.TriTreeNodeUI.ARIATRISTATE[b])}if(d.parentNode!=this.root){this.updateParent(d.parentNode,b)}}},checkchildstate:function(b){var a=b.firstChild;if(!a){return this.err}while(a){if(Ext.tree.TriTreeNodeUI.UNCHECKSTATE!==this.getCheckIndex(a)){return Ext.tree.TriTreeNodeUI.GRAYSTATE}a=a.nextSibling}return Ext.tree.TriTreeNodeUI.UNCHECKSTATE},renderElements:function(i,c,h,b){this.indentMarkup=i.parentNode?i.parentNode.ui.getChildIndent():"";var g,d=c.href?c.href:Ext.isGecko?"":"#",e=['<li class="x-tree-node"><div ext:tree-node-id="',Ext.util.Format.htmlEncode(i.id),'" class="x-tree-node-el x-tree-node-leaf x-unselectable ',c.cls,'" unselectable="on">','<span class="x-tree-node-indent">',this.indentMarkup,"</span>",'<img alt="" src="',this.emptyIcon,'" class="x-tree-ec-icon x-tree-elbow" />','<img alt="" src="',c.icon||this.emptyIcon,'" class="x-tree-node-icon',(c.icon?" x-tree-node-inline-icon":""),(c.iconCls?" "+c.iconCls:""),'" unselectable="on" />','<span><img alt="" src="'+this.emptyIcon+'" style="margin:0 2px 0 2px;" class="x-checkbox" /></span>','<a hidefocus="on" class="x-tree-node-anchor" href="',d,'" tabIndex="-1" ',c.hrefTarget?' target="'+c.hrefTarget+'"':"",'><span unselectable="on">',i.text,"</span></a></div>",'<ul class="x-tree-node-ct" style="display:none;"></ul>',"</li>"].join("");if(b!==true&&i.nextSibling&&(g=i.nextSibling.ui.getEl())){this.wrap=Ext.DomHelper.insertHtml("beforeBegin",g,e)}else{this.wrap=Ext.DomHelper.insertHtml("beforeEnd",h,e)}this.elNode=this.wrap.childNodes[0];this.ctNode=this.wrap.childNodes[1];var f=this.elNode.childNodes;this.indentNode=f[0];this.ecNode=f[1];this.iconNode=f[2];this.checkbox=f[3];if(c.checked==="checked"){this.checkbox.checked=this.values[Ext.tree.TriTreeNodeUI.CHECKSTATE];this.checkbox.className=this.checkedCls[Ext.tree.TriTreeNodeUI.CHECKSTATE]}else{if(c.checked==="gray"){this.checkbox.checked=this.values[Ext.tree.TriTreeNodeUI.GRAYSTATE];this.checkbox.className=this.checkedCls[Ext.tree.TriTreeNodeUI.GRAYSTATE]}else{this.checkbox.checked=this.values[Ext.tree.TriTreeNodeUI.UNCHECKSTATE];this.checkbox.className=this.checkedCls[Ext.tree.TriTreeNodeUI.UNCHECKSTATE]}}this.anchor=f[4];this.textNode=f[4].firstChild},onTriTreeNodeExpand:function(b){var a=this.getCheckIndex(b);if(a===Ext.tree.TriTreeNodeUI.CHECKSTATE&&this.getCheckIndex(b.firstChild)!==Ext.tree.TriTreeNodeUI.CHECKSTATE){this.updateChild(b.firstChild,a)}}});Ext.namespace("SYNO.Util");SYNO.Util.copy=function(d){var a=[],b=[];return(function(j){var f,e=a.indexOf(j);if(-1!==e){return b[e]}
31if(Ext.isObject(j)){f={};a.push(j);b.push(f);for(var h in j){if(j.hasOwnProperty(h)){f[h]=arguments.callee(j[h])}}}else{if(Ext.isArray(j)){f=[];a.push(j);b.push(f);for(var g=0;g<j.length;++g){f[g]=arguments.callee(j[g])}}else{f=j}}return f})(d)};SYNO.Util.copyApply=function(d,e,b){if(b){SYNO.Util.copyApply(d,b)}if(d&&e&&typeof e=="object"){for(var a in e){if(e.hasOwnProperty(a)){d[a]=SYNO.Util.copy(e[a])}}}return d};(function(d){var b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var a=function(h){h=h.replace(/\r\n/g,"\n");var g="";for(var j=0;j<h.length;j++){var i=h.charCodeAt(j);if(i<128){g+=String.fromCharCode(i)}else{if((i>127)&&(i<2048)){g+=String.fromCharCode((i>>6)|192);g+=String.fromCharCode((i&63)|128)}else{g+=String.fromCharCode((i>>12)|224);g+=String.fromCharCode(((i>>6)&63)|128);g+=String.fromCharCode((i&63)|128)}}}return g};var c=function(g){var j="";var l=0;var m=0,k=m,h;while(l<g.length){m=g.charCodeAt(l);if(m<128){j+=String.fromCharCode(m);l++}else{if((m>191)&&(m<224)){k=g.charCodeAt(l+1);j+=String.fromCharCode(((m&31)<<6)|(k&63));l+=2}else{k=g.charCodeAt(l+1);h=g.charCodeAt(l+2);j+=String.fromCharCode(((m&15)<<12)|((k&63)<<6)|(h&63));l+=3}}}return j};var e=function(j){var g="";var q,o,m,p,n,l,k;var h=0;j=a(j);while(h<j.length){q=j.charCodeAt(h++);o=j.charCodeAt(h++);m=j.charCodeAt(h++);p=q>>2;n=((q&3)<<4)|(o>>4);l=((o&15)<<2)|(m>>6);k=m&63;if(isNaN(o)){l=k=64}else{if(isNaN(m)){k=64}}g=g+b.charAt(p)+b.charAt(n)+b.charAt(l)+b.charAt(k)}return g};var f=function(j){var g="";var q,o,m;var p,n,l,k;var h=0;j=j.replace(/[^A-Za-z0-9\+\/\=]/g,"");while(h<j.length){p=b.indexOf(j.charAt(h++));n=b.indexOf(j.charAt(h++));l=b.indexOf(j.charAt(h++));k=b.indexOf(j.charAt(h++));q=(p<<2)|(n>>4);o=((n&15)<<4)|(l>>2);m=((l&3)<<6)|k;g=g+String.fromCharCode(q);if(l!=64){g=g+String.fromCharCode(o)}if(k!=64){g=g+String.fromCharCode(m)}}g=c(g);return g};d.Base64={encode:e,decode:f}})(SYNO.Util);Ext.ns("SYNO.Encryption");SYNO.Encryption.AES=(function(){var a=function(y,f){var i={},h=i.lib={},A=function(){},z=h.Base={extend:function(b){A.prototype=this;var d=new A;b&&d.mixIn(b);d.hasOwnProperty("init")||(d.init=function(){d.$super.init.apply(this,arguments)});d.init.prototype=d;d.$super=this;return d},create:function(){var b=this.extend();
31b.init.apply(b,arguments);return b},init:function(){},mixIn:function(b){for(var d in b){b.hasOwnProperty(d)&&(this[d]=b[d])}b.hasOwnProperty("toString")&&(this.toString=b.toString)},clone:function(){return this.init.prototype.extend(this)}},c=h.WordArray=z.extend({init:function(b,d){b=this.words=b||[];this.sigBytes=d!=f?d:4*b.length},toString:function(b){return(b||o).stringify(this)},concat:function(b){var p=this.words,n=b.words,l=this.sigBytes;b=b.sigBytes;this.clamp();if(l%4){for(var d=0;d<b;d++){p[l+d>>>2]|=(n[d>>>2]>>>24-8*(d%4)&255)<<24-8*((l+d)%4)}}else{if(65535<n.length){for(d=0;d<b;d+=4){p[l+d>>>2]=n[d>>>2]}}else{p.push.apply(p,n)}}this.sigBytes+=b;return this},clamp:function(){var b=this.words,d=this.sigBytes;b[d>>>2]&=4294967295<<32-8*(d%4);b.length=y.ceil(d/4)},clone:function(){var b=z.clone.call(this);b.words=this.words.slice(0);return b},random:function(b){for(var l=[],d=0;d<b;d+=4){l.push(4294967296*y.random()|0)}return new c.init(l,b)}}),m=i.enc={},o=m.Hex={stringify:function(b){var p=b.words;b=b.sigBytes;for(var n=[],l=0;l<b;l++){var d=p[l>>>2]>>>24-8*(l%4)&255;n.push((d>>>4).toString(16));n.push((d&15).toString(16))}return n.join("")},parse:function(b){for(var n=b.length,l=[],d=0;d<n;d+=2){l[d>>>3]|=parseInt(b.substr(d,2),16)<<24-4*(d%8)}return new c.init(l,n/2)}},j=m.Latin1={stringify:function(b){var n=b.words;b=b.sigBytes;for(var l=[],d=0;d<b;d++){l.push(String.fromCharCode(n[d>>>2]>>>24-8*(d%4)&255))}return l.join("")},parse:function(b){for(var n=b.length,l=[],d=0;d<n;d++){l[d>>>2]|=(b.charCodeAt(d)&255)<<24-8*(d%4)}return new c.init(l,n)}},k=m.Utf8={stringify:function(b){try{return decodeURIComponent(escape(j.stringify(b)))}catch(d){throw Error("Malformed UTF-8 data")}},parse:function(b){return j.parse(unescape(encodeURIComponent(b)))}},e=h.BufferedBlockAlgorithm=z.extend({reset:function(){this._data=new c.init;this._nDataBytes=0},_append:function(b){"string"==typeof b&&(b=k.parse(b));this._data.concat(b);this._nDataBytes+=b.sigBytes},_process:function(l){var t=this._data,s=t.words,p=t.sigBytes,n=this.blockSize,d=p/(4*n),d=l?y.ceil(d):y.max((d|0)-this._minBufferSize,0);l=d*n;p=y.min(4*l,p);if(l){for(var r=0;r<l;r+=n){this._doProcessBlock(s,r)}r=s.splice(0,l);t.sigBytes-=p}return new c.init(r,p)},clone:function(){var b=z.clone.call(this);b._data=this._data.clone();return b},_minBufferSize:0});h.Hasher=e.extend({cfg:z.extend(),init:function(b){this.cfg=this.cfg.extend(b);this.reset()},reset:function(){e.reset.call(this);this._doReset()},update:function(b){this._append(b);this._process();return this},finalize:function(b){b&&this._append(b);return this._doFinalize()},blockSize:16,_createHelper:function(b){return function(d,l){return(new b.init(l)).finalize(d)}},_createHmacHelper:function(b){return function(d,l){return(new g.HMAC.init(b,l)).finalize(d)}}});var g=i.algo={};return i}(Math);(function(){var b=a,c=b.lib.WordArray;b.enc.Base64={stringify:function(k){var f=k.words,j=k.sigBytes,h=this._map;k.clamp();k=[];for(var i=0;i<j;i+=3){for(var e=(f[i>>>2]>>>24-8*(i%4)&255)<<16|(f[i+1>>>2]>>>24-8*((i+1)%4)&255)<<8|f[i+2>>>2]>>>24-8*((i+2)%4)&255,g=0;4>g&&i+0.75*g<j;g++){k.push(h.charAt(e>>>6*(3-g)&63))}}if(f=h.charAt(64)){for(;k.length%4;){k.push(f)}}return k.join("")},parse:function(m){var g=m.length,j=this._map,i=j.charAt(64);i&&(i=m.indexOf(i),-1!=i&&(g=i));for(var i=[],k=0,f=0;f<g;f++){if(f%4){var h=j.indexOf(m.charAt(f-1))<<2*(f%4),e=j.indexOf(m.charAt(f))>>>6-2*(f%4);i[k>>>2]|=(h|e)<<24-8*(k%4);k++}}return c.create(i,k)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}})();(function(m){function e(d,t,l,s,r,q,p){d=d+(t&l|~t&s)+r+p;return(d<<q|d>>>32-q)+t}function g(d,t,l,s,r,q,p){d=d+(t&s|l&~s)+r+p;return(d<<q|d>>>32-q)+t}function f(d,t,l,s,r,q,p){d=d+(t^l^s)+r+p;return(d<<q|d>>>32-q)+t}function o(d,t,l,s,r,q,p){d=d+(l^(t|~s))+r+p;return(d<<q|d>>>32-q)+t}for(var n=a,c=n.lib,j=c.WordArray,k=c.Hasher,c=n.algo,h=[],i=0;64>i;i++){h[i]=4294967296*m.abs(m.sin(i+1))|0}c=c.MD5=k.extend({_doReset:function(){this._hash=new j.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(K,M){for(var V=0;16>V;V++){var U=M+V,T=K[U];K[U]=(T<<8|T>>>24)&16711935|(T<<24|T>>>8)&4278255360}var V=this._hash.words,U=K[M+0],T=K[M+1],P=K[M+2],O=K[M+3],b=K[M+4],I=K[M+5],F=K[M+6],l=K[M+7],p=K[M+8],L=K[M+9],J=K[M+10],H=K[M+11],s=K[M+12],G=K[M+13],y=K[M+14],d=K[M+15],S=V[0],N=V[1],R=V[2],Q=V[3],S=e(S,N,R,Q,U,7,h[0]),Q=e(Q,S,N,R,T,12,h[1]),R=e(R,Q,S,N,P,17,h[2]),N=e(N,R,Q,S,O,22,h[3]),S=e(S,N,R,Q,b,7,h[4]),Q=e(Q,S,N,R,I,12,h[5]),R=e(R,Q,S,N,F,17,h[6]),N=e(N,R,Q,S,l,22,h[7]),S=e(S,N,R,Q,p,7,h[8]),Q=e(Q,S,N,R,L,12,h[9]),R=e(R,Q,S,N,J,17,h[10]),N=e(N,R,Q,S,H,22,h[11]),S=e(S,N,R,Q,s,7,h[12]),Q=e(Q,S,N,R,G,12,h[13]),R=e(R,Q,S,N,y,17,h[14]),N=e(N,R,Q,S,d,22,h[15]),S=g(S,N,R,Q,T,5,h[16]),Q=g(Q,S,N,R,F,9,h[17]),R=g(R,Q,S,N,H,14,h[18]),N=g(N,R,Q,S,U,20,h[19]),S=g(S,N,R,Q,I,5,h[20]),Q=g(Q,S,N,R,J,9,h[21]),R=g(R,Q,S,N,d,14,h[22]),N=g(N,R,Q,S,b,20,h[23]),S=g(S,N,R,Q,L,5,h[24]),Q=g(Q,S,N,R,y,9,h[25]),R=g(R,Q,S,N,O,14,h[26]),N=g(N,R,Q,S,p,20,h[27]),S=g(S,N,R,Q,G,5,h[28]),Q=g(Q,S,N,R,P,9,h[29]),R=g(R,Q,S,N,l,14,h[30]),N=g(N,R,Q,S,s,20,h[31]),S=f(S,N,R,Q,I,4,h[32]),Q=f(Q,S,N,R,p,11,h[33]),R=f(R,Q,S,N,H,16,h[34]),N=f(N,R,Q,S,y,23,h[35]),S=f(S,N,R,Q,T,4,h[36]),Q=f(Q,S,N,R,b,11,h[37]),R=f(R,Q,S,N,l,16,h[38]),N=f(N,R,Q,S,J,23,h[39]),S=f(S,N,R,Q,G,4,h[40]),Q=f(Q,S,N,R,U,11,h[41]),R=f(R,Q,S,N,O,16,h[42]),N=f(N,R,Q,S,F,23,h[43]),S=f(S,N,R,Q,L,4,h[44]),Q=f(Q,S,N,R,s,11,h[45]),R=f(R,Q,S,N,d,16,h[46]),N=f(N,R,Q,S,P,23,h[47]),S=o(S,N,R,Q,U,6,h[48]),Q=o(Q,S,N,R,l,10,h[49]),R=o(R,Q,S,N,y,15,h[50]),N=o(N,R,Q,S,I,21,h[51]),S=o(S,N,R,Q,s,6,h[52]),Q=o(Q,S,N,R,O,10,h[53]),R=o(R,Q,S,N,J,15,h[54]),N=o(N,R,Q,S,T,21,h[55]),S=o(S,N,R,Q,p,6,h[56]),Q=o(Q,S,N,R,d,10,h[57]),R=o(R,Q,S,N,F,15,h[58]),N=o(N,R,Q,S,G,21,h[59]),S=o(S,N,R,Q,b,6,h[60]),Q=o(Q,S,N,R,H,10,h[61]),R=o(R,Q,S,N,P,15,h[62]),N=o(N,R,Q,S,L,21,h[63]);V[0]=V[0]+S|0;V[1]=V[1]+N|0;V[2]=V[2]+R|0;V[3]=V[3]+Q|0},_doFinalize:function(){var d=this._data,r=d.words,l=8*this._nDataBytes,q=8*d.sigBytes;r[q>>>5]|=128<<24-q%32;var p=m.floor(l/4294967296);r[(q+64>>>9<<4)+15]=(p<<8|p>>>24)&16711935|(p<<24|p>>>8)&4278255360;r[(q+64>>>9<<4)+14]=(l<<8|l>>>24)&16711935|(l<<24|l>>>8)&4278255360;d.sigBytes=4*(r.length+1);this._process();d=this._hash;r=d.words;for(l=0;4>l;l++){q=r[l],r[l]=(q<<8|q>>>24)&16711935|(q<<24|q>>>8)&4278255360}return d},clone:function(){var d=k.clone.call(this);d._hash=this._hash.clone();return d}});n.MD5=k._createHelper(c);n.HmacMD5=k._createHmacHelper(c)})(Math);(function(){var c=a,f=c.lib,g=f.Base,b=f.WordArray,f=c.algo,e=f.EvpKDF=g.extend({cfg:g.extend({keySize:4,hasher:f.MD5,iterations:1}),init:function(h){this.cfg=this.cfg.extend(h)},compute:function(l,h){for(var j=this.cfg,v=j.hasher.create(),m=b.create(),t=m.words,i=j.keySize,j=j.iterations;t.length<i;){k&&v.update(k);var k=v.update(l).finalize(h);v.reset();for(var o=1;o<j;o++){k=v.finalize(k),v.reset()}m.concat(k)}m.sigBytes=4*i;return m}});c.EvpKDF=function(j,h,i){return e.create(i).compute(j,h)}})();a.lib.Cipher||function(B){var g=a,j=g.lib,i=j.Base,D=j.WordArray,C=j.BufferedBlockAlgorithm,e=g.enc.Base64,z=g.algo.EvpKDF,A=j.Cipher=C.extend({cfg:i.extend(),createEncryptor:function(c,b){return this.create(this._ENC_XFORM_MODE,c,b)},createDecryptor:function(c,b){return this.create(this._DEC_XFORM_MODE,c,b)},init:function(l,d,c){this.cfg=this.cfg.extend(c);this._xformMode=l;this._key=d;this.reset()},reset:function(){C.reset.call(this);this._doReset()},process:function(b){this._append(b);return this._process()},finalize:function(b){b&&this._append(b);return this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(b){return{encrypt:function(c,l,n){return("string"==typeof l?k:o).encrypt
31(b,c,l,n)},decrypt:function(c,l,n){return("string"==typeof l?k:o).decrypt(b,c,l,n)}}}});j.StreamCipher=A.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var m=g.mode={},y=function(p,n,l){var r=this._iv;r?this._iv=B:r=this._prevBlock;for(var q=0;q<l;q++){p[n+q]^=r[q]}},f=(j.BlockCipherMode=i.extend({createEncryptor:function(c,b){return this.Encryptor.create(c,b)},createDecryptor:function(c,b){return this.Decryptor.create(c,b)},init:function(c,b){this._cipher=c;this._iv=b}})).extend();f.Encryptor=f.extend({processBlock:function(n,l){var d=this._cipher,p=d.blockSize;y.call(this,n,l,p);d.encryptBlock(n,l);this._prevBlock=n.slice(l,l+p)}});f.Decryptor=f.extend({processBlock:function(p,n){var l=this._cipher,r=l.blockSize,q=p.slice(n,n+r);l.decryptBlock(p,n);y.call(this,p,n,r);this._prevBlock=q}});m=m.CBC=f;f=(g.pad={}).Pkcs7={pad:function(r,p){for(var u=4*p,u=u-r.sigBytes%u,s=u<<24|u<<16|u<<8|u,q=[],t=0;t<u;t+=4){q.push(s)}u=D.create(q,u);r.concat(u)},unpad:function(b){b.sigBytes-=b.words[b.sigBytes-1>>>2]&255}};j.BlockCipher=A.extend({cfg:A.cfg.extend({mode:m,padding:f}),reset:function(){A.reset.call(this);var l=this.cfg,d=l.iv,l=l.mode;if(this._xformMode==this._ENC_XFORM_MODE){var n=l.createEncryptor}else{n=l.createDecryptor,this._minBufferSize=1}this._mode=n.call(l,this,d&&d.words)},_doProcessBlock:function(d,c){this._mode.processBlock(d,c)},_doFinalize:function(){var d=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){d.pad(this._data,this.blockSize);var c=this._process(!0)}else{c=this._process(!0),d.unpad(c)}return c},blockSize:4});var h=j.CipherParams=i.extend({init:function(b){this.mixIn(b)},toString:function(b){return(b||this.formatter).stringify(this)}}),m=(g.format={}).OpenSSL={stringify:function(d){var c=d.ciphertext;d=d.salt;return(d?D.create([1398893684,1701076831]).concat(d).concat(c):c).toString(e)},parse:function(l){l=e.parse(l);var d=l.words;if(1398893684==d[0]&&1701076831==d[1]){var n=D.create(d.slice(2,4));d.splice(0,4);l.sigBytes-=16}return h.create({ciphertext:l,salt:n})}},o=j.SerializableCipher=i.extend({cfg:i.extend({format:m}),encrypt:function(q,n,s,r){r=this.cfg.extend(r);var p=q.createEncryptor(s,r);n=p.finalize(n);p=p.cfg;return h.create({ciphertext:n,key:s,iv:p.iv,algorithm:q,mode:p.mode,padding:p.padding,blockSize:q.blockSize,formatter:r.format})},decrypt:function(n,l,q,p){p=this.cfg.extend(p);l=this._parse(l,p.format);return n.createDecryptor(q,p).finalize(l.ciphertext)},_parse:function(d,c){return"string"==typeof d?c.parse(d,this):d}}),g=(g.kdf={}).OpenSSL={execute:function(n,l,q,p){p||(p=D.random(8));n=z.create({keySize:l+q}).compute(n,p);q=D.create(n.words.slice(l),4*q);n.sigBytes=4*l;return h.create({key:n,iv:q,salt:p})}},k=j.PasswordBasedCipher=o.extend({cfg:o.cfg.extend({kdf:g}),encrypt:function(n,r,q,p){p=this.cfg.extend(p);q=p.kdf.execute(q,n.keySize,n.ivSize);p.iv=q.iv;n=o.encrypt.call(this,n,r,q.key,p);n.mixIn(q);return n},decrypt:function(n,r,q,p){p=this.cfg.extend(p);r=this._parse(r,p.format);q=p.kdf.execute(q,n.keySize,n.ivSize,r.salt);p.iv=q.iv;return o.decrypt.call(this,n,r,q.key,p)}})}();(function(){for(var C=a,K=C.lib.BlockCipher,Q=C.algo,M=[],E=[],D=[],I=[],m=[],A=[],S=[],h=[],J=[],L=[],T=[],R=0;256>R;R++){T[R]=128>R?R<<1:R<<1^283}for(var P=0,O=0,R=0;256>R;R++){var N=O^O<<1^O<<2^O<<3^O<<4,N=N>>>8^N&255^99;M[P]=N;E[N]=P;var f=T[P],B=T[f],o=T[B],g=257*T[N]^16843008*N;D[P]=g<<24|g>>>8;I[P]=g<<16|g>>>16;m[P]=g<<8|g>>>24;A[P]=g;g=16843009*o^65537*B^257*f^16843008*P;S[N]=g<<24|g>>>8;h[N]=g<<16|g>>>16;J[N]=g<<8|g>>>24;L[N]=g;P?(P=f^T[T[T[o^f]]],O^=T[T[O]]):P=O=1}var i=[0,1,2,4,8,16,32,64,128,27,54],Q=Q.AES=K.extend({_doReset:function(){for(var b=this._key,r=b.words,q=b.sigBytes/4,b=4*((this._nRounds=q+6)+1),p=this._keySchedule=[],n=0;n<b;n++){if(n<q){p[n]=r[n]}else{var l=p[n-1];n%q?6<q&&4==n%q&&(l=M[l>>>24]<<24|M[l>>>16&255]<<16|M[l>>
31>8&255]<<8|M[l&255]):(l=l<<8|l>>>24,l=M[l>>>24]<<24|M[l>>>16&255]<<16|M[l>>>8&255]<<8|M[l&255],l^=i[n/q|0]<<24);p[n]=p[n-q]^l}}r=this._invKeySchedule=[];for(q=0;q<b;q++){n=b-q,l=q%4?p[n]:p[n-4],r[q]=4>q||4>=n?l:S[M[l>>>24]]^h[M[l>>>16&255]]^J[M[l>>>8&255]]^L[M[l&255]]}},encryptBlock:function(d,c){this._doCryptBlock(d,c,this._keySchedule,D,I,m,A,M)},decryptBlock:function(b,j){var e=b[j+1];b[j+1]=b[j+3];b[j+3]=e;this._doCryptBlock(b,j,this._invKeySchedule,S,h,J,L,E);e=b[j+1];b[j+1]=b[j+3];b[j+3]=e},_doCryptBlock:function(ac,ab,aa,Z,Y,U,G,X){for(var F=this._nRounds,W=ac[ab]^aa[0],V=ac[ab+1]^aa[1],H=ac[ab+2]^aa[2],z=ac[ab+3]^aa[3],y=4,w=1;w<F;w++){var x=Z[W>>>24]^Y[V>>>16&255]^U[H>>>8&255]^G[z&255]^aa[y++],v=Z[V>>>24]^Y[H>>>16&255]^U[z>>>8&255]^G[W&255]^aa[y++],u=Z[H>>>24]^Y[z>>>16&255]^U[W>>>8&255]^G[V&255]^aa[y++],z=Z[z>>>24]^Y[W>>>16&255]^U[V>>>8&255]^G[H&255]^aa[y++],W=x,V=v,H=u}x=(X[W>>>24]<<24|X[V>>>16&255]<<16|X[H>>>8&255]<<8|X[z&255])^aa[y++];v=(X[V>>>24]<<24|X[H>>>16&255]<<16|X[z>>>8&255]<<8|X[W&255])^aa[y++];u=(X[H>>>24]<<24|X[z>>>16&255]<<16|X[W>>>8&255]<<8|X[V&255])^aa[y++];z=(X[z>>>24]<<24|X[W>>>16&255]<<16|X[V>>>8&255]<<8|X[H&255])^aa[y++];ac[ab]=x;ac[ab+1]=v;ac[ab+2]=u;ac[ab+3]=z},keySize:8});C.AES=K._createHelper(Q)})();return a.AES})();Ext.ns("SYNO.Encryption");SYNO.Encryption.Base64=(function(){var b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var a="=";return{hex2b64:function(f){var e;var g;var d="";for(e=0;e+3<=f.length;e+=3){g=parseInt(f.substring(e,e+3),16);d+=b.charAt(g>>6)+b.charAt(g&63)}if(e+1==f.length){g=parseInt(f.substring(e,e+1),16);d+=b.charAt(g<<2)}else{if(e+2==f.length){g=parseInt(f.substring(e,e+2),16);d+=b.charAt(g>>2)+b.charAt((g&3)<<4)}}while((d.length&3)>0){d+=a}return d},b64tohex:function(h){var f="";var g;var d=0;var e;for(g=0;g<h.length;++g){if(h.charAt(g)==a){break}var c=b.indexOf(h.charAt(g));if(c<0){continue}if(d===0){f+=int2char(c>>2);e=c&3;d=1}else{if(d==1){f+=int2char((e<<2)|(c>>4));e=c&15;d=2}else{if(d==2){f+=int2char(e);f+=int2char(c>>2);e=c&3;d=3}else{f+=int2char((e<<2)|(c>>4));f+=int2char(c&15);d=0}}}}if(d==1){f+=int2char(e<<2)}return f},b64toBA:function(f){var e=this.b64tohex(f);var d;var c=[];for(d=0;2*d<e.length;++d){c[d]=parseInt(e.substring(2*d,2*d+2),16)}return c}}})();Ext.ns("SYNO.Encryption");SYNO.Encryption.BigInteger=(function(){var G;var Y=244837814094590;var f=((Y&16777215)==15715070);function d(aa,Z,ab){if(!Ext.isEmpty(aa)){if("number"==typeof aa){this.fromNumber(aa,Z,ab)}else{if(Ext.isEmpty(Z)&&"string"!=typeof aa){this.fromString(aa,256)}else{this.fromString(aa,Z)}}}}function l(){return new d(null)}function K(ad,Z,aa,ac,af,ae){while(--ae>=0){var ab=Z*this[ad++]+aa[ac]+af;af=Math.floor(ab/67108864);aa[ac++]=ab&67108863}return af}function J(ad,ai,aj,ac,ag,Z){var af=ai&32767,ah=ai>>15;while(--Z>=0){var ab=this[ad]&32767;var ae=this[ad++]>>15;var aa=ah*ab+ae*af;ab=af*ab+((aa&32767)<<15)+aj[ac]+(ag&1073741823);ag=(ab>>>30)+(aa>>>15)+ah*ae+(ag>>>30);aj[ac++]=ab&1073741823}return ag}function I(ad,ai,aj,ac,ag,Z){var af=ai&16383,ah=ai>>14;while(--Z>=0){var ab=this[ad]&16383;var ae=this[ad++]>>14;var aa=ah*ab+ae*af;ab=af*ab+((aa&16383)<<14)+aj[ac]+ag;ag=(ab>>28)+(aa>>14)+ah*ae;aj[ac++]=ab&268435455}return ag}if(f&&(navigator.appName=="Microsoft Internet Explorer")){d.prototype.am=J;G=30}else{if(f&&(navigator.appName!="Netscape")){d.prototype.am=K;G=26}else{d.prototype.am=I;G=28}}d.prototype.DB=G;d.prototype.DM=((1<<G)-1);d.prototype.DV=(1<<G);var m=52;d.prototype.FV=Math.pow(2,m);d.prototype.F1=m-G;d.prototype.F2=2*G-m;var t="0123456789abcdefghijklmnopqrstuvwxyz";var x=[];var D,o;D="0".charCodeAt(0);for(o=0;o<=9;++o){x[D++]=o}D="a".charCodeAt(0);for(o=10;o<36;++o){x[D++]=o}D="A".charCodeAt(0);for(o=10;o<36;++o){x[D++]=o}function w(Z){return t.charAt(Z)}function B(aa,Z){var ab=x[aa.charCodeAt(Z)];return(Ext.isEmpty(ab))?-1:ab}function n(aa){for(var Z=this.t-1;Z>=0;--Z){aa[Z]=this[Z]}aa.t=this.t;aa.s=this.s}function Q(Z){this.t=1;this.s=(Z<0)?-1:0;if(Z>0){this[0]=Z}else{if(Z<-1){this[0]=Z+DV}else{this.t=0}}}function b(Z){var aa=l();aa.fromInt(Z);return aa}function L(af,aa){var ac;if(aa==16){ac=4}else{if(aa==8){ac=3}else{if(aa==256){ac=8}else{if(aa==2){ac=1}else{if(aa==32){ac=5}else{if(aa==4){ac=2}else{this.fromRadix(af,aa);return}}}}}}this.t=0;this.s=0;var ae=af.length,ab=false,ad=0;while(--ae>
31=0){var Z=(ac==8)?af[ae]&255:B(af,ae);if(Z<0){if(af.charAt(ae)=="-"){ab=true}continue}ab=false;if(ad===0){this[this.t++]=Z}else{if(ad+ac>this.DB){this[this.t-1]|=(Z&((1<<(this.DB-ad))-1))<<ad;this[this.t++]=(Z>>(this.DB-ad))}else{this[this.t-1]|=Z<<ad}}ad+=ac;if(ad>=this.DB){ad-=this.DB}}if(ac==8&&(af[0]&128)!==0){this.s=-1;if(ad>0){this[this.t-1]|=((1<<(this.DB-ad))-1)<<ad}}this.clamp();if(ab){d.ZERO.subTo(this,this)}}function O(){var Z=this.s&this.DM;while(this.t>0&&this[this.t-1]==Z){--this.t}}function S(aa){if(this.s<0){return"-"+this.negate().toString(aa)}var ab;if(aa==16){ab=4}else{if(aa==8){ab=3}else{if(aa==2){ab=1}else{if(aa==32){ab=5}else{if(aa==4){ab=2}else{return this.toRadix(aa)}}}}}var ad=(1<<ab)-1,ag,Z=false,ae="",ac=this.t;var af=this.DB-(ac*this.DB)%ab;if(ac-->0){if(af<this.DB&&(ag=this[ac]>>af)>0){Z=true;ae=w(ag)}while(ac>=0){if(af<ab){ag=(this[ac]&((1<<af)-1))<<(ab-af);ag|=this[--ac]>>(af+=this.DB-ab)}else{ag=(this[ac]>>(af-=ab))&ad;if(af<=0){af+=this.DB;--ac}}if(ag>0){Z=true}if(Z){ae+=w(ag)}}}return Z?ae:"0"}function M(){var Z=l();d.ZERO.subTo(this,Z);return Z}function F(){return(this.s<0)?this.negate():this}function U(Z){var ab=this.s-Z.s;if(ab!==0){return ab}var aa=this.t;ab=aa-Z.t;if(ab!==0){return ab}while(--aa>=0){if((ab=this[aa]-Z[aa])!==0){return ab}}return 0}function T(Z){var ab=1,aa;if((aa=Z>>>16)!==0){Z=aa;ab+=16}if((aa=Z>>8)!==0){Z=aa;ab+=8}if((aa=Z>>4)!==0){Z=aa;ab+=4}if((aa=Z>>2)!==0){Z=aa;ab+=2}if((aa=Z>>1)!==0){Z=aa;ab+=1}return ab}function g(){if(this.t<=0){return 0}return this.DB*(this.t-1)+T(this[this.t-1]^(this.s&this.DM))}function a(ab,aa){var Z;for(Z=this.t-1;Z>=0;--Z){aa[Z+ab]=this[Z]}for(Z=ab-1;Z>=0;--Z){aa[Z]=0}aa.t=this.t+ab;aa.s=this.s}function y(ab,aa){for(var Z=ab;Z<this.t;++Z){aa[Z-ab]=this[Z]}aa.t=Math.max(this.t-ab,0);aa.s=this.s}function s(ag,ac){var aa=ag%this.DB;var Z=this.DB-aa;var ae=(1<<Z)-1;var ad=Math.floor(ag/this.DB),af=(this.s<<aa)&this.DM,ab;for(ab=this.t-1;ab>=0;--ab){ac[ab+ad+1]=(this[ab]>>Z)|af;af=(this[ab]&ae)<<aa}for(ab=ad-1;ab>=0;--ab){ac[ab]=0}ac[ad]=af;ac.t=this.t+ad+1;ac.s=this.s;ac.clamp()}function P(af,ac){ac.s=this.s;var ad=Math.floor(af/this.DB);if(ad>=this.t){ac.t=0;return}var aa=af%this.DB;var Z=this.DB-aa;var ae=(1<<aa)-1;ac[0]=this[ad]>>
31aa;for(var ab=ad+1;ab<this.t;++ab){ac[ab-ad-1]|=(this[ab]&ae)<<Z;ac[ab-ad]=this[ab]>>aa}if(aa>0){ac[this.t-ad-1]|=(this.s&ae)<<Z}ac.t=this.t-ad;ac.clamp()}function h(aa,ac){var ab=0,ad=0,Z=Math.min(aa.t,this.t);while(ab<Z){ad+=this[ab]-aa[ab];ac[ab++]=ad&this.DM;ad>>=this.DB}if(aa.t<this.t){ad-=aa.s;while(ab<this.t){ad+=this[ab];ac[ab++]=ad&this.DM;ad>>=this.DB}ad+=this.s}else{ad+=this.s;while(ab<aa.t){ad-=aa[ab];ac[ab++]=ad&this.DM;ad>>=this.DB}ad-=aa.s}ac.s=(ad<0)?-1:0;if(ad<-1){ac[ab++]=this.DV+ad}else{if(ad>0){ac[ab++]=ad}}ac.t=ab;ac.clamp()}function N(aa,ac){var Z=this.abs(),ad=aa.abs();var ab=Z.t;ac.t=ab+ad.t;while(--ab>=0){ac[ab]=0}for(ab=0;ab<ad.t;++ab){ac[ab+Z.t]=Z.am(0,ad[ab],ac,ab,0,Z.t)}ac.s=0;ac.clamp();if(this.s!=aa.s){d.ZERO.subTo(ac,ac)}}function z(ab){var aa,Z=this.abs();aa=ab.t=2*Z.t;while(--aa>=0){ab[aa]=0}for(aa=0;aa<Z.t-1;++aa){var ac=Z.am(aa,Z[aa],ab,2*aa,0,1);if((ab[aa+Z.t]+=Z.am(aa+1,2*Z[aa],ab,2*aa+1,ac,Z.t-aa-1))>=Z.DV){ab[aa+Z.t]-=Z.DV;ab[aa+Z.t+1]=1}}if(ab.t>0){ab[ab.t-1]+=Z.am(aa,Z[aa],ab,2*aa,0,1)}ab.s=0;ab.clamp()}function H(ai,af,ae){var ao=ai.abs();if(ao.t<=0){return}var ag=this.abs();if(ag.t<ao.t){if(!Ext.isEmpty(af)){af.fromInt(0)}if(!Ext.isEmpty(ae)){this.copyTo(ae)}return}if(Ext.isEmpty(ae)){ae=l()}var ac=l(),Z=this.s,ah=ai.s;var an=this.DB-T(ao[ao.t-1]);if(an>0){ao.lShiftTo(an,ac);ag.lShiftTo(an,ae)}else{ao.copyTo(ac);ag.copyTo(ae)}var ak=ac.t;var aa=ac[ak-1];if(aa===0){return}var aj=aa*(1<<this.F1)+((ak>1)?ac[ak-2]>>this.F2:0);var ar=this.FV/aj,aq=(1<<this.F1)/aj,ap=1<<this.F2;var am=ae.t,al=am-ak,ad=(Ext.isEmpty(af))?l():af;ac.dlShiftTo(al,ad);if(ae.compareTo(ad)>=0){ae[ae.t++]=1;ae.subTo(ad,ae)}d.ONE.dlShiftTo(ak,ad);ad.subTo(ac,ac);while(ac.t<ak){ac[ac.t++]=0}while(--al>=0){var ab=(ae[--am]==aa)?this.DM:Math.floor(ae[am]*ar+(ae[am-1]+ap)*aq);if((ae[am]+=ac.am(0,ab,ae,al,0,ak))<ab){ac.dlShiftTo(al,ad);ae.subTo(ad,ae);while(ae[am]<--ab){ae.subTo(ad,ae)}}}if(!Ext.isEmpty(af)){ae.drShiftTo(ak,af);if(Z!=ah){d.ZERO.subTo(af,af)}}ae.t=ak;ae.clamp();if(an>0){ae.rShiftTo(an,ae)}if(Z<0){d.ZERO.subTo(ae,ae)}}function j(Z){var aa=l();this.abs().divRemTo(Z,null,aa);if(this.s<0&&aa.compareTo(d.ZERO)>0){Z.subTo(aa,aa)}return aa}function V(Z){this.m=Z}function v(Z){if(Z.s<0||Z.compareTo(this.m)>=0){return Z.mod(this.m)}else{return Z}}function p(Z){return Z}function c(Z){Z.divRemTo(this.m,null,Z)}function W(Z,ab,aa){Z.multiplyTo(ab,aa);this.reduce(aa)}function X(Z,aa){Z.squareTo(aa);this.reduce(aa)}V.prototype.convert=v;V.prototype.revert=p;V.prototype.reduce=c;V.prototype.mulTo=W;V.prototype.sqrTo=X;function r(){if(this.t<1){return 0}var Z=this[0];if((Z&1)===0){return 0}var aa=Z&3;aa=(aa*(2-(Z&15)*aa))&15;aa=(aa*(2-(Z&255)*aa))&255;aa=(aa*(2-(((Z&65535)*aa)&65535)))&65535;aa=(aa*(2-Z*aa%this.DV))%this.DV;return(aa>0)?this.DV-aa:-aa}function A(Z){this.m=Z;this.mp=Z.invDigit();this.mpl=this.mp&32767;this.mph=this.mp>>15;this.um=(1<<(Z.DB-15))-1;this.mt2=2*Z.t}function q(Z){var aa=l();Z.abs().dlShiftTo(this.m.t,aa);aa.divRemTo(this.m,null,aa);if(Z.s<0&&aa.compareTo(d.ZERO)>0){this.m.subTo(aa,aa)}return aa}function R(Z){var aa=l();Z.copyTo(aa);this.reduce(aa);return aa}function E(Z){while(Z.t<=this.mt2){Z[Z.t++]=0}for(var ab=0;ab<this.m.t;++ab){var aa=Z[ab]&32767;var ac=(aa*this.mpl+(((aa*this.mph+(Z[ab]>>15)*this.mpl)&this.um)<<15))&Z.DM;aa=ab+this.m.t;Z[aa]+=this.m.am(0,ac,Z,ab,0,this.m.t);while(Z[aa]>=Z.DV){Z[aa]-=Z.DV;Z[++aa]++}}Z.clamp();Z.drShiftTo(this.m.t,Z);if(Z.compareTo(this.m)>=0){Z.subTo(this.m,Z)}}function k(Z,aa){Z.squareTo(aa);this.reduce(aa)}function i(Z,ab,aa){Z.multiplyTo(ab,aa);this.reduce(aa)}A.prototype.convert=q;A.prototype.revert=R;A.prototype.reduce=E;A.prototype.mulTo=i;A.prototype.sqrTo=k;function u(){return 0===((this.t>0)?(this[0]&1):this.s)}function e(ae,af){if(ae>4294967295||ae<1){return d.ONE}var ad=l(),Z=l(),ac=af.convert(this),ab=T(ae)-1;ac.copyTo(ad);while(--ab>=0){af.sqrTo(ad,Z);if((ae&(1<<ab))>0){af.mulTo(Z,ac,ad)}else{var aa=ad;ad=Z;Z=aa}}return af.revert(ad)}function C(aa,Z){var ab;if(aa<256||Z.isEven()){ab=new V(Z)}else{ab=new A(Z)}return this.exp(aa,ab)}d.prototype.copyTo=n;d.prototype.fromInt=Q;d.prototype.fromString=L;d.prototype.clamp=O;d.prototype.dlShiftTo=a;d.prototype.drShiftTo=y;d.prototype.lShiftTo=s;d.prototype.rShiftTo=P;d.prototype.subTo=h;d.prototype.multiplyTo=N;d.prototype.squareTo=z;d.prototype.divRemTo=H;d.prototype.invDigit=r;d.prototype.isEven=u;d.prototype.exp=e;d.prototype.toString=S;d.prototype.negate=M;d.prototype.abs=F;d.prototype.compareTo=U;d.prototype.bitLength=g;d.prototype.mod=j;d.prototype.modPowInt=C;d.ZERO=b(0);d.ONE=b(1);return d})();Ext.ns("SYNO.Encryption");SYNO.Encryption.SecureRandom=(function(){function g(){this.i=0;this.j=0;this.S=[]}function l(s){var r,p,q;for(r=0;r<256;++r){this.S[r]=r}p=0;for(r=0;r<256;++r){p=(p+this.S[r]+s[r%s.length])&255;q=this.S[r];this.S[r]=this.S[p];this.S[p]=q}this.i=0;this.j=0}function d(){var p;this.i=(this.i+1)&255;this.j=(this.j+this.S[this.i])&255;p=this.S[this.i];this.S[this.i]=this.S[this.j];this.S[this.j]=p;return this.S[(p+this.S[this.i])&255]}g.prototype.init=l;g.prototype.next=d;function j(){return new g()}var m=256;var k;var b;var f;function h(p){b[f++]^=p&255;b[f++]^=(p>>8)&255;b[f++]^=(p>>16)&255;b[f++]^=(p>>24)&255;if(f>=m){f-=m}}function o(){h(new Date().getTime())}if(Ext.isEmpty(b)){b=[];f=0;var n;if(navigator.appName=="Netscape"&&navigator.appVersion<"5"&&window.crypto){var i=window.crypto.random(32);for(n=0;n<i.length;++n){b[f++]=i.charCodeAt(n)&255}}while(f<m){n=Math.floor(65536*Math.random());b[f++]=n>>>8;b[f++]=n&255}f=0;o()}function c(){if(Ext.isEmpty(k)){o();k=j();k.init(b);for(f=0;f<b.length;++f){b[f]=0}f=0}return k.next()}function e(q){var p;for(p=0;p<q.length;++p){q[p]=c()}}function a(){}a.prototype.nextBytes=e;a.rng_seed_time=o;return a})();Ext.ns("SYNO.Encryption");SYNO.Encryption.RSA=(function(){function b(h,g){return new SYNO.Encryption.BigInteger(h,g)}function a(k,o){if(o<k.length+11){return null}var m=[];var j=k.length-1;while(j>=0&&o>0){var l=k.charCodeAt(j--);if(l<128){m[--o]=l}else{if((l>127)&&(l<2048)){m[--o]=(l&63)|128;m[--o]=(l>>6)|192}else{m[--o]=(l&63)|128;m[--o]=((l>>6)&63)|128;m[--o]=(l>>12)|224}}}m[--o]=0;var h=new SYNO.Encryption.SecureRandom();var g=[];while(o>2){g[0]=0;while(g[0]===0){h.nextBytes(g)}m[--o]=g[0]}m[--o]=2;m[--o]=0;return new SYNO.Encryption.BigInteger(m)}function d(){this.n=null;this.e=0;this.d=null;this.p=null;this.q=null;this.dmp1=null;this.dmq1=null;this.coeff=null}function e(h,g){if(!Ext.isEmpty(h)&&!Ext.isEmpty(g)&&h.length>0&&g.length>0){this.n=b(h,16);this.e=parseInt(g,16)}else{}}function f(g){return g.modPowInt(this.e,this.n)}function c(j){var g=a(j,(this.n.bitLength()+7)>>3);if(Ext.isEmpty(g)){return null}var k=this.doPublic(g);if(Ext.isEmpty(k)){return null}var i=k.toString(16);if((i.length&1)===0){return i}else{return"0"+i}}d.prototype.doPublic=f;d.prototype.setPublic=e;d.prototype.encrypt=c;return d})();Ext.ns("SYNO.Encryption");SYNO.Encryption.CipherKey="";SYNO.Encryption.RSAModulus="";SYNO.Encryption.CipherToken="";SYNO.Encryption.TimeBias=0;
31SYNO.Encryption.RandomUint8=function(a){if(!Ext.getClassByName("Uint8Array")){return Math.floor(Math.random()*(a+1))}var b=new Uint8Array(1);if(!b||!(b.buffer instanceof ArrayBuffer)||undefined===b.byteLength){return Math.floor(Math.random()*(a+1))}if(!Ext.isIE11&&Ext.getClassByName("crypto.getRandomValues")){window.crypto.getRandomValues(b)}else{if(Ext.isIE11&&Ext.getClassByName("msCrypto.getRandomValues")){window.msCrypto.getRandomValues(b)}else{return Math.floor(Math.random()*(a+1))}}var c=a+1;var d=256;if(b[0]>=Math.floor(d/c)*c){return SYNO.Encryption.RandomUint8(a)}return(b[0]%c)};SYNO.Encryption.GenRandomKey=function(){var a="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ~!@#$%^&*()_+-/".split("");return function(b){var c=[];while(b>0){c.push(a[SYNO.Encryption.RandomUint8(a.length-1)]);b--}return c.join("")}}();SYNO.Encryption.EncryptParam=function(g){var e,c,b,d={},a={},f=SYNO.Encryption.GenRandomKey(501);if(!SYNO.Encryption.CipherKey||!SYNO.Encryption.RSAModulus||!SYNO.Encryption.CipherToken){return g}e=new SYNO.Encryption.RSA();e.setPublic(SYNO.Encryption.RSAModulus,"10001");d[SYNO.Encryption.CipherToken]=Math.floor(+new Date()/1000)+SYNO.Encryption.TimeBias;c=e.encrypt(f);if(!c){return g}Ext.apply(d,g);b=SYNO.Encryption.AES.encrypt(Ext.urlEncode(d),f).toString();if(!b){return g}a[SYNO.Encryption.CipherKey]=JSON.stringify({rsa:SYNO.Encryption.Base64.hex2b64(c),aes:b});return a};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.