/* Copyright (c) 2017 Synology Inc. All rights reserved. */ (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
{[Ext.util.Format.htmlEncode(values.'+this.displayField+")]}
"}else{this.tpl='
{'+this.displayField+"}
"}}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?'
'+a.loadingText+"
":"");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)},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(bc){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(kf){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)?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);c.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','","",'
');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=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='
';Ext.each(this.operator,function(b){this.toolTpl+='
'},this);this.toolTpl+="
";if(this.innerTpl){this.toggleTpl='
'}var a=new Ext.XTemplate('','
',this.toolTpl,'
',"
",'
{title:htmlEncode}
','
{status:htmlEncode}
',"
",this.toggleTpl,"
",'","
","
",'
');return a},onClick:function(h,g,f){this.callParent(arguments);var d=Ext.fly(g),b;for(b=0;b');a.rowHolder.disableFormats=true;a.rowHolder.compile();a.rowBody=new Ext.Template('',"{cells}",(this.enableRowBody?'':""),"
{body}
");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=B.first&&q<=B.last;if(e){for(var D=0;D0},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();cb.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,syncScrollWithBuffer:true,cellTpl:new Ext.XTemplate('','
{value}
',""),masterTpl:new Ext.Template('
','
','
','
','
{header}
',"
",'
',"
",'
','','
{body}
',"
","
",'
 
','
 
',"
"),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(j,l,k){var c=this.grid,n=this.cm,u=n.getTotalWidth(false),s=this.getGridInnerWidth(),t=s-u,e=[],q=0,p=0,w,f,r;if(s<22||t===0){return false}var g=n.getColumnCount(true),o=n.getColumnCount(false),d=g-(Ext.isNumber(k)?1:0),v,m;if(d===0){d=1;k=undefined}for(r=0;rs){v=(d==g)?q:k;m=Math.max(1,n.getColumnWidth(v)-(u-s));n.setColumnWidth(v,m,true)}else{if(u0&&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}if(e.clientWidth===e.offsetWidth){c.scrollOffset=0}else{c.scrollOffset=undefined}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())},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(jo){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(hd){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','
',this.grid.enableHdMenu?'':"",'{value:htmlEncode}','{value}','',"
",""),c=['','','
{body}
',"",""].join(""),d=['',"",'{cells}',this.enableRowBody?c:"","","
"].join("");this.templates=this.templates||{};e.compile();Ext.applyIf(this.templates,{hcell:e,row:new Ext.XTemplate('
'+d+"
"),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('','
',this.grid.enableHdMenu?'':"",'{value:htmlEncode}','{value}','',"
",""),a=['','','
{body}
',"",""].join(""),c=['',"",'{cells}',this.enableRowBody?a:"","","
"].join("");this.templates=this.templates||{};d.compile();Ext.applyIf(this.templates,{hcell:d,row:new Ext.XTemplate('
'+c+"
"),rowInner:new Ext.XTemplate(c)});Ext.ux.grid.BufferView.superclass.initTemplates.call(this);var b=this.templates;b.rowHolder=new Ext.Template('
');b.rowHolder.disableFormats=true;b.rowHolder.compile();b.rowBody=new Ext.Template('','{cells}',(this.enableRowBody?'':""),"
{body}
");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('
','
','
','
','
{header}
','
','
',"
","
",'
',"
",'
','
{body}
','',"
","
",'
 
','
 
',"
"),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();this.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)&&this.tmpHoverClass=="x-form-spinner-overup")||((Ext.EventObject.getPageY()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._previousYthis.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=['','','",this.showToday?'':"",'
  
'],f=this.dayNames,e;for(e=0;e<7;e++){var h=this.startDay+e;if(h>6){h=h-7}c.push('")}c[c.length]='';for(e=0;e<42;e++){if(e%7===0&&e!==0){c[c.length]=''}c[c.length]=''}c.push("
',this.getWeekdayHeader(e),"
');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:" ",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;dthis.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()},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");Ext.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:'
{value}
ux-cell-actions-left" style="width:{width}px">
 
{value}
',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); /* * Ext JS Library 3.2.1 * Copyright(c) 2006-2010 Ext JS, Inc. * licensing@extjs.com * http://www.extjs.com/license */ Ext.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;sb)||(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;db)||(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=n)){if(u-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;dthis.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;d1){for(var o=1,n=c.length;o=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); /* * Ext JS Library 3.2.1 * Copyright(c) 2006-2010 Ext JS, Inc. * licensing@extjs.com * http://www.extjs.com/license */ Ext.ns("Ext.ux.grid");Ext.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 '},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; /* * Ext JS Library 3.2.0 * Copyright(c) 2006-2010 Ext JS, Inc. * licensing@extjs.com * http://www.extjs.com/license */ Ext.ux.StatusBar=Ext.extend(Ext.Toolbar,{cls:"x-statusbar",busyIconCls:"x-status-busy",busyText:"Loading...",autoClear:5000,emptyText:" ",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||{};this.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)},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=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)},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]));if(c===Ext.tree.TriTreeNodeUI||c instanceof Ext.tree.TriTreeNodeUI){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-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})}});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]);b.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=0){this.index=a;if(!this.silentChangeEvent){this.fireEvent("change",this.hist[a])}}},next:function(){var a=this.index+1;if(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=0){return this.hist[a]}return null},getPreObject:function(){var a=this.index;if(this.hist&&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','','',"");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(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")},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")},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
{0}
',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",isPriorityDirty: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;bg){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},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)}this.callParent(arguments);if(!this.menu.el.hasClass("syno-ux-datefield-menu")){this.menu.addClass("syno-ux-datefield-menu")}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;a0?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;c0&&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)}if(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=' {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().getColIdx))?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())},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();b0);var b=true;var a=false;if(!this.box_el||!this.box_el.dom){return}for(c=0;c',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('
',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[0][0],maxVerticalScroll:a[1][1],maxHorizontalScroll:a[0][1]};return b},updateScrollbar:function(c,a){var b=this;if(b.isDestroyed){return}if(!b.isVisible||b.isVisible()){if(c&&c.fleXcroll){if(a){c.fleXcroll.setScrollPos(false,0)}c.fleXcroll.updateScrollBars();if(!a){c.fleXcroll.setScrollPos(0,0,true)}}else{if(c){fleXenv.fleXcrollMain(c,b.disableTextSelect);c.onfleXcroll=(function(){this.fireEvent("flexcroll",this,this.getFleXcrollInfo(c))}).createDelegate(this);if(c.fleXcroll){this.fireEvent("flexcrollInitDone");if(Ext.isDefined(this.flexcrollPosFix)){c.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(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)}},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=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=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=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=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('
','
','
','
','
{header}
',"
",'
','
',"
",'
','','
{body}
',"
","
",'
 
','
 
',"
")});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','
','
','
','
{header}
',"
",'
','
',"
",'
','
{body}
','',"
","
",'
 
','
 
',"");this.templates.row=new Ext.Template('
','','',"{cells}",(this.enableRowBody?'':""),"","
{body}
","
");this.templates.treeCell=new Ext.XTemplate('','
','
','{nodeIndent}','','',"
",'
',"{value}","
","
","");this.templates.rowInner=new Ext.XTemplate('','','{cells}',(this.enableRowBody?'':""),"","
{body}
")},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')}else{c.unshift('')}}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');x.push("")}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=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;e1)?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('',"","{cells}","","
")});this._initTemplates.apply(this,arguments);var b=this.templates||{};if(!b.gcell){b.gcell=new Ext.XTemplate('','
',this.grid.enableHdMenu?'':"",'{value:htmlEncode}','{value}','',"
","")}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'+c.join("")+"");l.push(''+g.join("")+"");b=h.header.apply({cells:l.join(""),tstyle:String.format("width: {0};",this.getTotalWidth())});return b},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;dm.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;fd){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,"
"+a+"
")}},clearNotification:function(b){var a=this.getNodeById(b);if(!a){return}var c=Ext.DomQuery.select(".syno-ux-count-bubble",a.getUI().elNode);if(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
','',this.indentMarkup,"",'','',e?('':"/>")):"",'',(i)?Ext.util.Format.htmlEncode(d.text):d.text,"
",'',""].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");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;Ext.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||" ");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"},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");f.push('');for(c=0;c<24;c++){f.push(String.format(e,c))}f.push("");var a=f.join("\n");f=[];var b='';f.push('');f.push('{field1}');for(c=0;c<24;c++){f.push(b)}f.push("");var g=f.join("\n");var d=new Ext.XTemplate('',a,'',g,"","
");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;d++){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','','','',"","");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;bd){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;e0){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);if(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;case"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)}if(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+=" ";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);var 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;b.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='
'+_JSLIBSTR("uicommon","on")+''+_JSLIBSTR("uicommon","off")+"
";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='
'+_JSLIBSTR("uicommon","on")+''+_JSLIBSTR("uicommon","off")+"
";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('"),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");if(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-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("/webman/resources/images/information.png","");if(c&&d.message){Ext.DomHelper.append(c,String.format('',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("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;a0){if(Ext.isString(this.localFilterField[0])){var b=[];for(a=0;a
{'+this.displayField+"}
"}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;ba){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','
','',this.indentMarkup,"",'','','','',e.text,"",'',""].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()}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=' {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();b0);if(!this.box_el||!this.box_el.dom){return}for(a=0;a 
',("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);e.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=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.firste.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;if(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=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");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=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(;db){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)=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(;bthis.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
','',this.indentMarkup,"",'','','','',i.text,"
",'',""].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]}if(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;g127)&&(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(l191)&&(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>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>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();b.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>>2]|=(n[d>>>2]>>>24-8*(d%4)&255)<<24-8*((l+d)%4)}}else{if(65535>>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>>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>>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>>2]>>>24-8*(d%4)&255))}return l.join("")},parse:function(b){for(var n=b.length,l=[],d=0;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>>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>>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>>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<>>32-q)+t}function g(d,t,l,s,r,q,p){d=d+(t&s|l&~s)+r+p;return(d<>>32-q)+t}function f(d,t,l,s,r,q,p){d=d+(t^l^s)+r+p;return(d<>>32-q)+t}function o(d,t,l,s,r,q,p){d=d+(l^(t|~s))+r+p;return(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>>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>>24]<<24|M[l>>>16&255]<<16|M[l>>>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;qq||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>>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>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=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<=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>=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))<>(this.DB-ad))}else{this[this.t-1]|=Z<=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)<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<0){if(af>af)>0){Z=true;ae=w(ag)}while(ac>=0){if(af>(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=0;--ab){ac[ab+ad+1]=(this[ab]>>Z)|af;af=(this[ab]&ae)<=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;for(var ab=ad+1;ab>aa}if(aa>0){ac[this.t-ad-1]|=(this.s&ae)<>=this.DB}if(aa.t>=this.DB}ad+=this.s}else{ad+=this.s;while(ab>=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=0){ab[aa]=0}for(aa=0;aa=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.t0){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<1)?ac[ak-2]>>this.F2:0);var ar=this.FV/aj,aq=(1<=0){ae[ae.t++]=1;ae.subTo(ad,ae)}d.ONE.dlShiftTo(ak,ad);ad.subTo(ac,ac);while(ac.t=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))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>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<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>>8;b[f++]=n&255}f=0;o()}function c(){if(Ext.isEmpty(k)){o();k=j();k.init(b);for(f=0;f=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;SYNO.Encryption.GenRandomKey=function(){var a="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ~!@#$%^&*()_+-/".split("");return function(b){var c=[];while(b>0){c.push(a[Math.floor(Math.random()*(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};