/* Copyright (c) 2010 Synology Inc. All rights reserved. */

Ext.UpdateManager.defaults.indicatorText='<div class="loading-indicator">'+_JSLIBSTR("extlang","loading")+"</div>";if(Ext.View){Ext.View.prototype.emptyText=""}if(Ext.grid.Grid){Ext.grid.Grid.prototype.ddText=_JSLIBSTR("extlang","ddText")}if(Ext.TabPanelItem){Ext.TabPanelItem.prototype.closeText=_JSLIBSTR("extlang","closeText")}if(Ext.form.Field){Ext.form.Field.prototype.invalidText=_JSLIBSTR("extlang","invalidText")}if(Ext.LoadMask){Ext.LoadMask.prototype.msg=_JSLIBSTR("extlang","loading")}Date.monthNames=[_JSLIBSTR("extlang","jan"),_JSLIBSTR("extlang","feb"),_JSLIBSTR("extlang","mar"),_JSLIBSTR("extlang","apr"),_JSLIBSTR("extlang","may"),_JSLIBSTR("extlang","jun"),_JSLIBSTR("extlang","jul"),_JSLIBSTR("extlang","aug"),_JSLIBSTR("extlang","sep"),_JSLIBSTR("extlang","oct"),_JSLIBSTR("extlang","nov"),_JSLIBSTR("extlang","dec")];Date.dayNames=[_JSLIBSTR("extlang","sunday"),_JSLIBSTR("extlang","monday"),_JSLIBSTR("extlang","tuesday"),_JSLIBSTR("extlang","wednesday"),_JSLIBSTR("extlang","thursday"),_JSLIBSTR("extlang","friday"),_JSLIBSTR("extlang","saturday")];if(Ext.MessageBox){Ext.MessageBox.buttonText={ok:_JSLIBSTR("extlang","ok"),cancel:_JSLIBSTR("extlang","cancel"),yes:_JSLIBSTR("extlang","yes"),no:_JSLIBSTR("extlang","no")}}if(Ext.util.Format){Ext.util.Format.date=function(a,b){if(!a){return""}if(!(a instanceof Date)){a=new Date(Date.parse(a))}return a.dateFormat(b||"m/d/Y")}}if(Ext.DatePicker){Ext.apply(Ext.DatePicker.prototype,{todayText:_JSLIBSTR("extlang","todayText"),minText:_JSLIBSTR("extlang","mindate"),maxText:_JSLIBSTR("extlang","maxdate"),disabledDaysText:"",disabledDatesText:"",monthNames:Date.monthNames,dayNames:Date.dayNames,nextText:_JSLIBSTR("extlang","nextmonth"),prevText:_JSLIBSTR("extlang","prevmonth"),monthYearText:_JSLIBSTR("extlang","monthYearText"),todayTip:_JSLIBSTR("extlang","todayTip"),format:"m/d/y",okText:"&#160;OK&#160;",cancelText:"Cancel",startDay:0})}if(Ext.PagingToolbar){Ext.apply(Ext.PagingToolbar.prototype,{beforePageText:_JSLIBSTR("extlang","beforePageText"),afterPageText:_JSLIBSTR("extlang","afterPageText"),firstText:_JSLIBSTR("extlang","firstpage"),prevText:_JSLIBSTR("extlang","prevpage"),nextText:_JSLIBSTR("extlang","nextpage"),lastText:_JSLIBSTR("extlang","lastpage"),refreshText:_JSLIBSTR("extlang","refresh"),displayMsg:_JSLIBSTR("extlang","displaypage"),emptyMsg:_JSLIBSTR("extlang","pagenodata")})}if(Ext.form.TextField){Ext.apply(Ext.form.TextField.prototype,{minLengthText:_JSLIBSTR("extlang","fieldminlen"),maxLengthText:_JSLIBSTR("extlang","fieldmaxlen"),blankText:_JSLIBSTR("extlang","fieldblank"),regexText:"",emptyText:null})}if(Ext.form.NumberField){Ext.apply(Ext.form.NumberField.prototype,{minText:_JSLIBSTR("extlang","minnumber"),maxText:_JSLIBSTR("extlang","maxnumber"),nanText:_JSLIBSTR("extlang","invalidnumber")})}if(Ext.form.DateField){Ext.apply(Ext.form.DateField.prototype,{disabledDaysText:"Disabled",disabledDatesText:"Disabled",minText:"The date in this field must be after {0}",maxText:"The date in this field must be before {0}",invalidText:"{0} is not a valid date - it must be in the format {1}",format:"m/d/y"})}if(Ext.form.ComboBox){Ext.apply(Ext.form.ComboBox.prototype,{loadingText:_JSLIBSTR("extlang","loading"),valueNotFoundText:undefined})}if(Ext.form.VTypes){Ext.apply(Ext.form.VTypes,{emailText:_JSLIBSTR("extlang","emailText"),urlText:_JSLIBSTR("extlang","urlText"),alphaText:_JSLIBSTR("extlang","alphaText"),alphanumText:_JSLIBSTR("extlang","alphanumText")})}if(Ext.form.HtmlEditor){Ext.apply(Ext.form.HtmlEditor.prototype,{createLinkText:"Please enter the URL for the link:",buttonTips:{bold:{title:"Bold (Ctrl+B)",text:"Make the selected text bold.",cls:"x-html-editor-tip"},italic:{title:"Italic (Ctrl+I)",text:"Make the selected text italic.",cls:"x-html-editor-tip"},underline:{title:"Underline (Ctrl+U)",text:"Underline the selected text.",cls:"x-html-editor-tip"},increasefontsize:{title:"Grow Text",text:"Increase the font size.",cls:"x-html-editor-tip"},decreasefontsize:{title:"Shrink Text",text:"Decrease the font size.",cls:"x-html-editor-tip"},backcolor:{title:"Text Highlight Color",text:"Change the background color of the selected text.",cls:"x-html-editor-tip"},forecolor:{title:"Font Color",text:"Change the color of the selected text.",cls:"x-html-editor-tip"},justifyleft:{title:"Align Text Left",text:"Align text to the left.",cls:"x-html-editor-tip"},justifycenter:{title:"Center Text",text:"Center text in the editor.",cls:"x-html-editor-tip"},justifyright:{title:"Align Text Right",text:"Align text to the right.",cls:"x-html-editor-tip"},insertunorderedlist:{title:"Bullet List",text:"Start a bulleted list.",cls:"x-html-editor-tip"},insertorderedlist:{title:"Numbered List",text:"Start a numbered list.",cls:"x-html-editor-tip"},createlink:{title:"Hyperlink",text:"Make the selected text a hyperlink.",cls:"x-html-editor-tip"},sourceedit:{title:"Source Edit",text:"Switch to source editing mode.",cls:"x-html-editor-tip"}}})}if(Ext.grid.GridView){Ext.apply(Ext.grid.GridView.prototype,{sortAscText:_JSLIBSTR("extlang","sortAscText"),sortDescText:_JSLIBSTR("extlang","sortDescText"),lockText:_JSLIBSTR("extlang","lockText"),unlockText:_JSLIBSTR("extlang","unlockText"),columnsText:_JSLIBSTR("extlang","columnsText")})}if(Ext.grid.PropertyColumnModel){Ext.apply(Ext.grid.PropertyColumnModel.prototype,{nameText:"Name",valueText:"Value",dateFormat:"m/j/Y"})}if(Ext.SplitLayoutRegion){Ext.apply(Ext.SplitLayoutRegion.prototype,{splitTip:"Drag to resize.",collapsibleSplitTip:"Drag to resize. Double click to hide."})}Ext.namespace("SYNO");Ext.namespace("SYNO.utils");Ext.form.SRadio=function(b){if(b.indent&&b.indent>0){var c=13*b.indent;var a=String.format("display: inline;width:{0}px;",c);b.labelStyle=a;b.labelSeparator=""}Ext.form.SRadio.superclass.constructor.apply(this,arguments)};Ext.extend(Ext.form.SRadio,Ext.form.Radio,{setValue:function(b){var d=this.el.up("form").query("input[name="+this.el.dom.name+"]");if(typeof b=="string"){for(var c=0;c<d.length;c++){var a=Ext.getCmp(d[c].id);if(d[c].value==b){d[c].checked=true}else{d[c].checked=false}a.checked=d[c].checked;a.fireEvent("check",a,a.checked)}}else{if(typeof b=="boolean"){if(b===true){this.setValue(this.el.dom.value)}}}},onClick:function(){if(this.el.dom.checked!=this.checked){this.setValue(this.el.dom.value)}}});Ext.form.SCheckbox=function(b){if(b.indent&&b.indent>0){var c=13*b.indent;var a=String.format("display: inline;width:{0}px;",c);b.labelStyle=a;b.labelSeparator=""}Ext.form.SCheckbox.superclass.constructor.apply(this,arguments)};Ext.extend(Ext.form.SCheckbox,Ext.form.Checkbox,{setValueNoEvent:function(a){this.checked=(a===true||a==="true"||a=="1"||String(a).toLowerCase()=="on");if(this.el&&this.el.dom){this.el.dom.checked=this.checked;this.el.dom.defaultChecked=this.checked}}});Ext.form.TriCheckbox=function(a){Ext.form.TriCheckbox.superclass.constructor.call(this,a)};Ext.extend(Ext.form.TriCheckbox,Ext.form.Field,{checkboxCls:"x-checkbox",values:[null,false,true],boxLabel:undefined,triMode:true,checkedCls:["x-checkbox-grayed",null,"x-checkbox-checked"],cbFocusCls:"x-checkbox-focus",cbOverCls:"x-checkbox-over",cbDownCls:"x-checkbox-down",cbDisabledCls:"x-checkbox-disabled",defaultAutoCreate:{tag:"input",type:"hidden",autocomplete:"off"},onRender:function(b,a){Ext.form.TriCheckbox.superclass.onRender.call(this,b,a);this.wrap=this.el.wrap({cls:"x-form-check-wrap"});this.checkbox=this.wrap.createChild({tag:"img",src:Ext.BLANK_IMAGE_URL,cls:this.checkboxCls},this.el);if(this.boxLabel){this.wrap.createChild({tag:"label",htmlFor:this.el.id,cls:"x-form-cb-label",html:this.boxLabel})}this.updateCheckCls()},initEvents:function(){Ext.form.TriCheckbox.superclass.initEvents.call(this);this.checkbox.addClassOnOver(this.cbOverCls);this.checkbox.addClassOnClick(this.cbDownCls);this.checkbox.on("click",this.toggle,this)},onDisable:function(){Ext.form.TriCheckbox.superclass.onDisable.call(this);this.checkbox.addClass(this.cbDisabledCls)},onEnable:function(){Ext.form.TriCheckbox.superclass.onDisable.call(this);this.checkbox.removeClass(this.cbDisabledCls)},onFocus:function(a){Ext.form.TriCheckbox.superclass.onFocus.call(this,a);this.checkbox.addClass(this.cbFocusCls)},onBlur:function(a){Ext.form.TriCheckbox.superclass.onBlur.call(this,a);this.checkbox.removeClass(this.cbFocusCls)},setValue:function(a){Ext.form.TriCheckbox.superclass.setValue.call(this,a);this.updateCheckCls()},getCheckIndex:function(){for(var a=0;a<this.values.length;a++){if(this.value===this.values[a]){if(!this.triMode&&a===0){return(a+1)}return a}}return 0},updateCheckCls:function(){if(!this.wrap){return}var a=this.checkedCls[this.getCheckIndex()];this.wrap.replaceClass(this._checkCls,a);this._checkCls=a},toggle:function(){if(!this.disabled&&!this.readOnly){this.setValue(this.values[(this.getCheckIndex()+1)%this.values.length])}},setTriMode:function(a){this.triMode=a}});Ext.override(Ext.form.BasicForm,{setValues:function(j){if(j instanceof Array){for(var b=0,g=j.length;b<g;b++){var l=j[b];var e=this.findField(l.id);if(e){var d=[e];if(e.inputType=="radio"){d=SYNO.utils.getRadioGroup(this,l.id)}e.setValue(l.value);Ext.each(d,function(f){if(this.trackResetOnLoad){f.originalValue=f.getValue()}},this)}}}else{var h,a;for(a in j){if(typeof j[a]!="function"&&(h=this.findField(a))){var c=[h];if(h.inputType=="radio"){c=SYNO.utils.getRadioGroup(this,a)}h.setValue(j[a]);Ext.each(c,function(f){if(this.trackResetOnLoad){f.originalValue=f.getValue()}},this)}}}return this}});Ext.override(Ext.data.Store,{load:function(b){b=b||{};if(this.fireEvent("beforeload",this,b)!==false){this.storeOptions(b);var c=Ext.apply(b.params||{},this.baseParams);if(this.sortInfo&&this.remoteSort){var a=this.paramNames;c[a.sort]=this.sortInfo.field;c[a.dir]=this.sortInfo.direction;this.sortToggle[this.sortInfo.field]=this.sortInfo.direction}this.proxy.load(c,this.reader,this.loadRecords,this,b)}}});Ext.override(Ext.grid.RowSelectionModel,{handleMouseDown:function(f,c){var a=this.grid.getView(),g;if(this.isLocked()||(g=a.findRowIndex(c))===false){return}if(f.shiftKey&&this.last!==false){var d=this.last;this.selectRange(d,g,f.ctrlKey);this.last=d;a.focusRow(g)}else{var b=this.isSelected(g);if(f.ctrlKey&&b){this.deselectRow(g)}else{if(f.button===0&&b){this.selectRow(g,(f.ctrlKey||f.shiftKey));a.focusRow(g)}else{if(!b){this.selectRow(g,f.button===0&&(f.ctrlKey||f.shiftKey));a.focusRow(g)}}}}}});Ext.override(Ext.EventObjectImpl,{isSpecialKey:function(){var a=this.keyCode;return(this.type=="keypress"&&this.ctrlKey)||a==9||a==13||a==27||(a==16)||(a==17)||(a>=18&&a<=20)}});Ext.override(Ext.grid.Grid,{reconfigure:function(b,a){if(this.loadMask){this.loadMask.destroy();this.loadMask=new Ext.LoadMask(this.container,Ext.applyIf({store:b},this.loadMask))}this.view.bind(b,a);this.dataSource=b;this.colModel=a;this.view.refresh(true)}});Ext.override(Ext.grid.GridView,{updateSplitters:function(){var b=this.cm,f=this.getSplitters();if(f&&b){var g=0,d=true;for(var e=0,a=b.getColumnCount();e<a;e++){if(b.isHidden(e)){continue}var c=b.getColumnWidth(e);if(!b.isLocked(e)&&d){g=0;d=false}g+=c;if(f&&f[e]){f[e].style.left=(g-this.splitOffset)+"px"}}}}},this);Ext.apply(SYNO.utils,{getRadioGroup:function(c,b){var e=[];var d=c.el.query("input[name="+b+"]");for(var a=0;a<d.length;a++){e.push(Ext.getCmp(d[a].id))}return e},isValidExtension:function(d,b){var a=0;var c=d.toLowerCase();if(!d.length||!b.length){return false}a=c.lastIndexOf(b);if(-1==a){return false}if(c.length!=(a+b.length)){return false}return true},GetIPValue:function(d){var c=0;var a,b;for(b=0;b<3;b++){a=d.indexOf(".");c=c*256+parseInt(d.slice(0,a),10);d=d.slice(a+1,d.length)}c=c*256+parseInt(d,10);return c},MacIPAnd:function(d,a){var c;var b=[];var g,f,e;for(e=0;e<32;e++){g=d%2;f=a%2;if((g==1)&&(f==1)){b[e]=1}else{b[e]=0}d=(d-g)/2;a=(a-f)/2}c=0;for(e=31;e>=0;e--){c=c*2+b[e]}return c},GatewayMatchIP:function(h,b,j){var g=true;var d=SYNO.utils.GetIPValue(h);var a=SYNO.utils.GetIPValue(j);var c=SYNO.utils.GetIPValue(b);var f=SYNO.utils.MacIPAnd(d,a);var e=SYNO.utils.MacIPAnd(c,a);if(f===0){g=false}else{g=(f==e)}return g},SetTextMaxLen:function(c,b,a){var d=c.findField(b);if(d){d.getEl().dom.setAttribute("maxLength",a)}},GetServerAddr:function(){var b=window.location;var a=b.href.match(/:\/\/(.*)\:\d+\/\w+/);if(a){return a[1]}else{return b}},DisplayField:function(c,a,g){var f=c.findField(a);if(f){var b=f.getEl().findParent("div[class~=x-form-item]",c.el,true);if(b){var e=b.isDisplayed();b.setDisplayed(g);if(e==false&&g==true&&f.msgTarget=="under"){var d=f.getEl().findParent(".x-form-element",5,true);var h=d.child("div[class~=x-form-invalid-msg]");if(h){h.setWidth(d.getWidth(true)-20)}}}}},EnumObjProps:function(c){var a=[];for(var b in c){a.push(b)}return a},DumpObject:function(c){var b="";var a=[];for(k in c){a.push(k+": "+c[k])}YAHOO.log("o={"+a.join(",")+"}")},DestroyForm:function(a){if(a){a.items.each(Ext.destroy,Ext);a.el.remove()}},isFlashReservedPort:function(a){var b=[1,7,9,11,13,15,17,19,20,21,22,23,25,37,42,43,53,77,79,87,95,101,102,103,104,109,110,111,113,115,117,119,123,135,139,143,179,389,465,512,513,514,515,526,530,531,532,540,556,563,587,601,636,993,995,2049,4045,6000];if("string"===typeof(a)){a=parseInt(a,10)}return(-1!==b.indexOf(a))}});SYNO.utils.RadioGroupSet=function(e,d,a){this.form=e;this.groupname=d;this.members=a;this.radios={};var g=SYNO.utils.getRadioGroup(e,d);for(var c=0;c<g.length;c++){var b=g[c];var f=b.el.dom.value;if(f in a){b.on("check",this.onRadioCheck,{value:f,radioset:this});b.on("enable",this.onRadioEnable,{radio:b,enable:true,value:f,radioset:this});b.on("disable",this.onRadioEnable,{radio:b,enable:false,value:f,radioset:this});this.radios[f]=b}}};SYNO.utils.RadioGroupSet.prototype={onRadioEnable:function(){var d=this.radioset;var c=this.value;var a=d.members[c];var b=this.enable&&this.radio.getValue();if(a){Ext.each(a,function(e){var g=d.form.findField(e);if(b){g.enable()}else{g.disable()}})}},onRadioCheck:function(b,c){var e=this.radioset;var d=this.value;var a=e.members[d];if(a){Ext.each(a,function(g){if(c){e.form.findField(g).enable()}else{e.form.findField(g).disable()}})}}};SYNO.utils.EnableCheckGroup=function(b,a,e,d){var c=b.findField(a);if(!c){return}d=typeof(d)!="undefined"?d:[];this.SetFiledStatus=function(j,n,h,f){if(!n){return}if(n.inputType=="radio"){var m=SYNO.utils.getRadioGroup(j,n.getName());for(var g=0;g<m.length;g++){if(f){var o=h?m[g].disable():m[g].enable()}else{o=h?m[g].enable():m[g].disable()}}}else{if(f){var l=h?n.disable():n.enable()}else{l=h?n.enable():n.disable()}}};this.checkHandler=function(h,g){for(var f=0;f<this.enable_fields.length;f++){var l=this.form.findField(this.enable_fields[f]);this.SetFiledStatus(b,l,g,false)}for(f=0;f<this.disable_fields.length;f++){l=this.form.findField(this.disable_fields[f]);this.SetFiledStatus(b,l,g,true)}};this.enableHandler=function(h){var g=(h.disabled===false&&h.getValue()===true);for(var f=0;f<this.enable_fields.length;f++){var l=this.form.findField(this.enable_fields[f]);this.SetFiledStatus(b,l,g,false)}for(f=0;f<this.disable_fields.length;f++){l=this.form.findField(this.disable_fields[f]);this.SetFiledStatus(b,l,g,true)}};this.name=a;this.enable_fields=e;this.disable_fields=d;this.form=b;c.on("check",this.checkHandler,this);c.on("enable",this.enableHandler,this);c.on("disable",this.enableHandler,this);this.checkHandler(c,c.getValue())};SYNO.utils.PollTask=function(e){var b=null;var j=e.handler;var l=e.scope;var a=e.url;var c=e.params;var f=0;var d=null;var h=function(n,p,m){if(p){var o=Ext.util.JSON.decode(m.responseText);j.apply(l,[p,o])}else{j.apply(l,[false])}if(b){b.delay(f)}};var g=function(){d=Ext.Ajax.request({url:a,params:c,callback:h})};this.startAutoRefresh=function(n,m){if(b){b.cancel()}else{b=new Ext.util.DelayedTask(g,this)}f=1000*n;if(m){g()}else{b.delay(f)}};this.stopAutoRefresh=function(){if(b){b.cancel();b=null;if(d){Ext.Ajax.abort(d)}}}};SYNO.utils.DelayedTask=function(f,e,a){var h=null,g,b;var c=function(){var d=new Date().getTime();if(d-b>=g){clearInterval(h);h=null;f.apply(e,a||[])}};this.delay=function(j,m,l,d){if(h&&j!=g){this.cancel()}g=j;b=new Date().getTime();f=m||f;e=l||e;a=d||a;if(!h){h=setInterval(c,g)}};this.cancel=function(){if(h){clearInterval(h);h=null}};this.isPending=function(){return(h!==null)}};SYNO.utils.ActionGroup=function(a){this.menu=a.menu;this.actionMap={}};Ext.extend(SYNO.utils.ActionGroup,Object,{menu:null,actionMap:null,addAction:function(b,a){this.actionMap[b]=a},enable:function(a){if(a in this.actionMap){this.actionMap[a].enable();this.menu.items.get(a).enable()}},disable:function(a){if(a in this.actionMap){this.actionMap[a].disable();this.menu.items.get(a).disable()}},enableAll:function(){for(itemID in this.actionMap){this.actionMap[itemID].enable();this.menu.items.get(itemID).enable()}},disableAll:function(){for(itemID in this.actionMap){this.actionMap[itemID].disable();this.menu.items.get(itemID).disable()}}});Ext.SMessageBox=function(){var l,a,s,g;var q,e,h,m,p,b;var j,n,d;var c=function(t){if(a.hideDlg!==false){l.hide()}Ext.callback(a.fn,a.scope||window,[t,n.dom.value],1)};var f=function(){if(a&&a.cls){l.el.removeClass(a.cls)}if(g){Ext.TaskMgr.stop(g);g=null}};var o=function(t){var v=0;if(!t){j.ok.hide();j.cancel.hide();j.yes.hide();j.no.hide();l.footer.dom.style.display="none";return v}l.footer.dom.style.display="";for(var u in j){if(typeof j[u]!="function"){if(t[u]){j[u].show();j[u].setText(typeof t[u]=="string"?t[u]:Ext.MessageBox.buttonText[u]);v+=j[u].el.getWidth()+15}else{j[u].hide()}}}return v};var r=function(v,t,u){if(a&&a.closable!==false){l.hide()}if(u){u.stopEvent()}};return{getDialog:function(){if(!l){l=new Ext.BasicDialog("x-smsg-box",{autoCreate:true,shadow:true,draggable:true,resizable:false,constraintoviewport:false,fixedcenter:true,collapsible:false,shim:true,modal:true,width:400,height:100,buttonAlign:"center",closeClick:function(){if(a&&a.buttons&&a.buttons.no&&!a.buttons.cancel){c("no")}else{c("cancel")}}});l.on("hide",f);s=l.mask;l.addKeyListener(27,r);j={};var u=this.buttonText;j.ok=l.addButton(u.ok,c.createCallback("ok"));j.yes=l.addButton(u.yes,c.createCallback("yes"));j.no=l.addButton(u.no,c.createCallback("no"));j.cancel=l.addButton(u.cancel,c.createCallback("cancel"));q=l.body.createChild({html:'<span class="ext-mb-text"></span><br /><input type="text" class="ext-mb-input" /><textarea class="ext-mb-textarea"></textarea><div class="ext-mb-progress-wrap"><div class="ext-mb-progress"><div class="ext-mb-progress-bar">&#160;</div></div></div>'});e=q.dom.firstChild;h=Ext.get(q.dom.childNodes[2]);h.enableDisplayMode();h.addKeyListener([10,13],function(){if(l.isVisible()&&a&&a.buttons){if(a.buttons.ok){c("ok")}else{if(a.buttons.yes){c("yes")}}}});m=Ext.get(q.dom.childNodes[3]);m.enableDisplayMode();p=Ext.get(q.dom.childNodes[4]);p.enableDisplayMode();var t=p.dom.firstChild;b=Ext.get(t.firstChild);b.setHeight(t.offsetHeight)}return l},updateText:function(u){if(!l.isVisible()&&!a.width){l.resizeTo(this.maxWidth,100)}e.innerHTML=u||"&#160;";var t=Math.max(Math.min(a.width||e.offsetWidth,this.maxWidth),Math.max(a.minWidth||this.minWidth,d));if(a.prompt){n.setWidth(t)}if(l.isVisible()){l.fixedcenter=false}l.setContentSize(t,q.getHeight());if(l.isVisible()){l.fixedcenter=true}return this},updateProgress:function(t,u){if(u){this.updateText(u)}b.setWidth(Math.floor(t*p.dom.firstChild.offsetWidth));return this},isVisible:function(){return l&&l.isVisible()},hide:function(){if(this.isVisible()){l.hide()}},show:function(v){if(this.isVisible()){this.hide()}var w=this.getDialog();a=v;w.setTitle(a.title||"&#160;");w.close.setDisplayed(a.closable!==false);n=h;a.prompt=a.prompt||(a.multiline?true:false);if(a.prompt){if(a.multiline){h.hide();m.show();m.setHeight(typeof a.multiline=="number"?a.multiline:this.defaultTextHeight);n=m}else{h.show();m.hide()}}else{h.hide();m.hide()}p.setDisplayed(a.progress===true);this.updateProgress(0);n.dom.value=a.value||"";if(a.prompt){l.setDefaultButton(n)}else{var u=a.buttons;var t=null;if(u&&u.ok){t=j.ok}else{if(u&&u.yes){t=j.yes}}l.setDefaultButton(t)}d=o(a.buttons);this.updateText(a.msg);if(a.cls){w.el.addClass(a.cls)}w.proxyDrag=a.proxyDrag===true;w.modal=a.modal!==false;w.mask=a.modal!==false?s:false;if(!w.isVisible()){document.body.appendChild(l.el.dom);w.animateTarget=null;w.show(v.animEl)}return this},progress:function(u,t){this.show({title:u,msg:t,buttons:false,progress:true,closable:false,minWidth:this.minProgressWidth});return this},alert:function(w,v,u,t){this.show({title:w,msg:v,buttons:this.OK,fn:u,scope:t});return this},wait:function(u,t){this.show({title:t,msg:u,buttons:false,closable:false,progress:true,modal:true,width:300,wait:true});g=Ext.TaskMgr.start({run:function(v){Ext.MessageBox.updateProgress(((((v+20)%20)+1)*5)*0.01)},interval:1000});return this},confirm:function(w,v,u,t){this.show({title:w,msg:v,buttons:this.YESNO,fn:u,scope:t});return this},prompt:function(x,w,v,u,t){this.show({title:x,msg:w,buttons:this.OKCANCEL,fn:v,minWidth:250,scope:u,prompt:true,multiline:t});return this},OK:{ok:true},YESNO:{yes:true,no:true},OKCANCEL:{ok:true,cancel:true},YESNOCANCEL:{yes:true,no:true,cancel:true},defaultTextHeight:75,maxWidth:600,minWidth:100,minProgressWidth:250,buttonText:{ok:"OK",cancel:"Cancel",yes:"Yes",no:"No"}}}();Ext.SMsg=Ext.SMessageBox;Ext.SPagingToolbar=function(b,c,a){Ext.SPagingToolbar.superclass.constructor.call(this,b,c,a)};Ext.extend(Ext.SPagingToolbar,Ext.PagingToolbar,{onLoadCurrentPage:function(b,a,c){this.onLoad(b,a,{params:{start:c}})}});Ext.SResizable=function(b,a){Ext.SResizable.superclass.constructor.call(this,b,a);this.setWidthToFull(b,a)};Ext.extend(Ext.SResizable,Ext.Resizable,{setWidthToFull:function(b,a){this.el=Ext.get(b);if(a&&a.wrap){this.el.setStyle("width","100%");this.el=Ext.get(a.resizeChild.id+"-rzwrap");this.el.setStyle("width","100%")}}});Ext.tree.TriTreeNodeUI=function(){Ext.tree.TriTreeNodeUI.superclass.constructor.apply(this,arguments)};Ext.tree.TriTreeNodeUI.CHECKSTATE=2;Ext.tree.TriTreeNodeUI.UNCHECKSTATE=1;Ext.tree.TriTreeNodeUI.GRAYSTATE=0;Ext.extend(Ext.tree.TriTreeNodeUI,Ext.tree.TreeNodeUI,{values:[null,false,true],checkedCls:["x-checkbox-grayed",null,"x-checkbox-checked"],checkboxCls:"x-checkbox",expanded:false,err:-1,initEvents:function(){this.node.on("move",this.onMove,this);var g=Ext.EventManager;var c=this.anchor;var e=Ext.fly(c,"_treeui");if(Ext.isOpera){e.setStyle("text-decoration","none")}e.on("click",this.onClick,this);e.on("dblclick",this.onDblClick,this);if(this.checkbox){Ext.EventManager.on(this.checkbox,"click",this.toggleCheck,this)}e.on("contextmenu",this.onContextMenu,this);var d=Ext.fly(this.iconNode);d.on("click",this.onClick,this);d.on("dblclick",this.onDblClick,this);d.on("contextmenu",this.onContextMenu,this);g.on(this.ecNode,"click",this.ecClick,this,true);if(this.node.disabled){this.addClass("x-tree-node-disabled")}if(this.node.hidden){this.addClass("x-tree-node-disabled")}var f=this.node.getOwnerTree();var b=f.enableDD||f.enableDrag||f.enableDrop;if(b&&(!this.node.isRoot||f.rootVisible)){Ext.dd.Registry.register(this.elNode,{node:this.node,handles:this.getDDHandles(),isHandle:false})}},getCheckIndex:function(b){for(var a=0;a<this.values.length;a++){if(b.getUI().checkbox.checked===this.values[a]){return a}}return this.err},toggleCheck:function(b){if(true===this.node.disabled){return}var a=this.getCheckIndex(this.node);a=(a===Ext.tree.TriTreeNodeUI.UNCHECKSTATE)?Ext.tree.TriTreeNodeUI.CHECKSTATE:Ext.tree.TriTreeNodeUI.UNCHECKSTATE;this.checkbox.checked=this.values[a];this.checkbox.className=this.checkedCls[a];if(this.node.firstChild){this.updateChild(this.node.firstChild,a)}if(this.node.parentNode!=this.root){this.updateParent(this.node.parentNode,a)}},updateChild:function(b,a){var c=b;do{c.getUI().checkbox.checked=this.values[a];c.getUI().checkbox.className=this.checkedCls[a];if(c.firstChild){this.updateChild(c.firstChild,a)}c=c.nextSibling}while(c)},updateParent:function(d,a){var c=this.getCheckIndex(d);if(a!=c){var b=this.checkchildstate(d);d.getUI().checkbox.checked=this.values[b];d.getUI().checkbox.className=this.checkedCls[b];if(d.parentNode!=this.root){this.updateParent(d.parentNode,b)}}},checkchildstate:function(c){var b=c.firstChild;var a;if(!b){return this.err}while(b){if(Ext.tree.TriTreeNodeUI.UNCHECKSTATE!==this.getCheckIndex(b)){return Ext.tree.TriTreeNodeUI.GRAYSTATE}b=b.nextSibling}return Ext.tree.TriTreeNodeUI.UNCHECKSTATE},renderElements:function(h,c,g,b){this.indentMarkup=h.parentNode?h.parentNode.ui.getChildIndent():"";var d=c.href?c.href:Ext.isGecko?"":"#";var e=['<li class="x-tree-node"><div class="x-tree-node-el ',c.cls,'">','<span class="x-tree-node-indent">',this.indentMarkup,"</span>",'<img src="',this.emptyIcon,'" class="x-tree-ec-icon" />','<img src="',c.icon||this.emptyIcon,'" class="x-tree-node-icon',(c.icon?" x-tree-node-inline-icon":""),(c.iconCls?" "+c.iconCls:""),'" unselectable="on" />','<span><img style="vertical-align: middle; margin: 1px 0 1px 0;" class="x-checkbox" src="/scripts/extjs/resources/images/aero/s.gif"/></span>','<a hidefocus="on" href="',d,'" tabIndex="1" ',c.hrefTarget?' target="'+c.hrefTarget+'"':"",'><span unselectable="on">',h.text,"</span></a></div>",'<ul class="x-tree-node-ct" style="display:none;"></ul>',"</li>"];if(b!==true&&h.nextSibling&&h.nextSibling.ui.getEl()){this.wrap=Ext.DomHelper.insertHtml("beforeBegin",h.nextSibling.ui.getEl(),e.join(""))}else{this.wrap=Ext.DomHelper.insertHtml("beforeEnd",g,e.join(""))}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}});SYNO.utils.AddTip=function(d,c){ele=Ext.getDom(d);var b=document.createElement("a");var a=document.createElement("img");a.setAttribute("src","/scripts/extjs/resources/images/aero/qtip/information.png");a.setAttribute("ext:qtip",c);a.setAttribute("ext:width",300);b.appendChild(a);ele.parentNode.appendChild(b)};Ext.override(Ext.data.Connection,{doFormUpload:function(e,a,b){var c=Ext.id();var f=document.createElement("iframe");f.id=c;f.name=c;f.className="x-hidden";document.body.appendChild(f);f.src=Ext.SSL_SECURE_URL;if(Ext.isIE){document.frames[c].name=c}var d=Ext.getDom(e.form);d.target=c;d.method="POST";d.enctype=d.encoding="multipart/form-data";if(b){d.action=b}var n,l;if(a){n=[];a=Ext.urlDecode(a,false);for(var h in a){if(a.hasOwnProperty(h)){l=document.createElement("input");l.type="hidden";l.name=h;l.value=a[h];d.appendChild(l);n.push(l)}}}function g(){var o={responseText:"",responseXML:null};o.argument=e?e.argument:null;try{var q;if(Ext.isIE){q=f.contentWindow.document}else{q=(f.contentDocument||window.frames[c].document)}if(q&&q.body){o.responseText=q.body.innerHTML}if(q&&q.XMLDocument){o.responseXML=q.XMLDocument}else{o.responseXML=q}}catch(p){}Ext.EventManager.removeListener(f,"load",g,this);this.fireEvent("requestcomplete",this,o,e);Ext.callback(e.success,e.scope,[o,e]);Ext.callback(e.callback,e.scope,[e,true,o]);setTimeout(function(){document.body.removeChild(f)},100)}Ext.EventManager.on(f,"load",g,this);d.submit();if(n){for(var j=0,m=n.length;j<m;j++){d.removeChild(n[j])}}}});Ext.namespace("SYNO.UI");SYNO.UI.WizardDialog=function(e,b){var d=b.width||600;var a=b.height||365;dlgcfg={modal:true,autoTabs:true,autoCreate:true,width:d,height:a,shadow:true,minWidth:300,minHeight:250,proxyDrag:true,closable:false,collapsible:false,center:{autoScroll:true,closeOnTab:true,titlebar:false,alwaysShowTabs:false,split:false,hideTabs:true},west:{autoScroll:false,closeOnTab:true,titlebar:false,alwaysShowTabs:false,split:false,initialSize:114,hideTabs:true}};Ext.apply(this,b);SYNO.UI.WizardDialog.superclass.constructor.call(this,e,dlgcfg);this.steps=[];var c={};if(this.btncfg===null||(this.btncfg&&(this.btncfg.back===true))){c.back=this.addButton(_JSLIBSTR("wizard","btnback"));c.back.on("click",this.onBackButton,this)}if(this.btncfg===null||(this.btncfg&&(this.btncfg.next===true))){c.next=this.addButton(_JSLIBSTR("wizard","btnnext"));c.next.on("click",this.onNextButton,this)}if(this.btncfg===null||(this.btncfg&&(this.btncfg.cacnel===true))){c.cancel=this.addButton(_JSLIBSTR("wizard","btncancel"));c.cancel.on("click",this.onCancelButton,this)}if(this.btncfg===null||(this.btncfg&&(this.btncfg.finish===true))){c.finish=this.addButton(_JSLIBSTR("wizard","btnfinish"));c.finish.on("click",this.onFinishButton,this)}this.btnarray=c;this.initDialog()};Ext.extend(SYNO.UI.WizardDialog,Ext.LayoutDialog,{btnarray:null,steps:null,welcomeText:"",congratulationText:"",linerStyle:true,wizardTitle:"",nextText:String.format(_JSLIBSTR("wizard","nextdescr"),_JSLIBSTR("wizard","btnnext")),activeStep:null,buttonHandler:null,buttonHandlerScope:null,btncfg:null,initDialog:function(){var a=this.getLayout();a.beginUpdate();var b=a.add("west",new Ext.ContentPanel(Ext.id(),{autoCreate:true,background:false}));a.endUpdate(true);b.setContent('<img border=0 src="/scripts/images/wizard.png">');this.on("show",function(){a.getRegion("west").showPanel(0);this.activateStep(0,"first")},this);this.setTitle(this.wizardTitle)},addWelcomeStep:function(a,b){this.addWizardStep(a,b,this.welcomeRender,this)},addCongratulation:function(a,b){this.addWizardStep(a,b,this.congratulateRender,this)},congratulateRender:function(b,a){Ext.DomHelper.append(a.container,{tag:"div",cls:"wizard-step-container",html:this.congratulationText});Ext.DomHelper.append(a.container,{tag:"p",cls:"wizard-step-next",html:String.format(_JSLIBSTR("wizard","finaldescr"),_JSLIBSTR("wizard","btnfinish"))})},setCongratulationText:function(a){this.congratulationText=a},activateStep:function(b,c){var d=null;if(typeof(b)=="string"){d=this.getStepById(b)}else{if(typeof(b)=="number"){d=this.steps[b]}}if(!d){return}if(!d.isRendered){var a={stepid:d.stepid,container:d.container,title:d.title};Ext.callback(d.render,d.scope,[this,a]);d.isRendered=true}if(c=="first"){this.showButton("back",false);this.showButton("finish",false);this.showButton("next",true);this.showButton("cancel",true)}else{if(c=="middle"){this.showButton("back",true);this.showButton("finish",false);this.showButton("next",true);this.showButton("cancel",true)}else{if(c=="last"){this.showButton("back",true);this.showButton("finish",true);this.showButton("next",false);this.showButton("cancel",false)}}}this.getLayout().getRegion("center").showPanel(d.pid);this.activeStep=d;this.onStepActivate(d.stepid,d.isActivatedBefore);d.isActivatedBefore=true},getStepById:function(b){for(var a=0;a<this.steps.length;a++){if(this.steps[a].stepid==b){return this.steps[a]}}return null},getMask:function(){return this.mask},resetActivated:function(){for(var a=0;a<this.steps.length;a++){this.steps[a].isActivatedBefore=false}},showButton:function(b,a){if(b=="all"){for(b in this.btnarray){if(a){this.btnarray[b].show()}else{this.btnarray[b].hide()}}return}if(b in this.btnarray){if(a){this.btnarray[b].show()}else{this.btnarray[b].hide()}}},enableButton:function(b,a){if(b=="all"){for(b in this.btnarray){if(a){this.btnarray[b].enable()}else{this.btnarray[b].disable()}}return}if(b in this.btnarray){if(a){this.btnarray[b].enable()}else{this.btnarray[b].disable()}}},welcomeRender:function(b,a){Ext.DomHelper.append(a.container,{tag:"div",cls:"wizard-step-container",html:this.welcomeText});Ext.DomHelper.append(a.container,{tag:"p",cls:"wizard-step-next",html:this.nextText})},addWizardStep:function(d,h,b,l){var e='<div><div class="wizard-step-title">{0}</div><div id="{1}"  class="wizard-step-container"></div></div>';var j=Ext.id();var f=String.format(e,h,j);var c=Ext.id();var a=this.getLayout().add("center",new Ext.ContentPanel(c,{autoCreate:true,background:false}));a.setContent(f);var g={};g.container=Ext.get(j);g.stepid=d;g.render=b;g.scope=l||window;g.title=h;g.isRendered=false;g.pid=c;g.isActivatedBefore=false;g.order=this.steps.length;this.steps.push(g)},setStepTitle:function(a,c){var d=this.getStepById(a);var b;if(!d||typeof(c)!="string"){return}b=Ext.get(d.pid).child("div.wizard-step-title",true);if(b){b.innerHTML=c;d.title=c}},getStepContainer:function(b){var a=this.getStepById(b);return a?a.container:null},onStepActivate:function(b,a){},onFinishButton:function(){var a={cancel:false};if(this.buttonHandler){Ext.callback(this.buttonHandler,this.buttonHandlerScope||window,["finish",this.activeStep.stepid,a])}if(!a.cancel){this.hide()}},onCancelButton:function(){var a={cancel:false};if(this.buttonHandler){Ext.callback(this.buttonHandler,this.buttonHandlerScope||window,["cancel",this.activeStep.stepid,a])}if(!a.cancel){this.hide()}},onNextButton:function(){var b={cancel:false};if(this.buttonHandler){Ext.callback(this.buttonHandler,this.buttonHandlerScope||window,["next",this.activeStep.stepid,b])}if(this.linearStyle&&!b.cancel){var a=this.activeStep.order+1;if(a==this.steps.length-1){this.activateStep(a,"last")}else{this.activateStep(a,"middle")}}},onBackButton:function(){var b={cancel:false};if(this.buttonHandler){Ext.callback(this.buttonHandler,this.buttonHandlerScope||window,["back",this.activeStep.stepid,b])}if(this.linearStyle&&!b.cancel){var a=this.activeStep.order-1;if(a===0){this.activateStep(a,"first")}else{this.activateStep(a,"middle")}}}});Ext.form.Action.Apply=function(b,a){Ext.form.Action.Apply.superclass.constructor.call(this,b,a)};Ext.extend(Ext.form.Action.Apply,Ext.form.Action,{type:"apply",run:function(){var b=this.options;var c=this.getMethod();var a=c=="POST";if(b.clientValidation===false||this.form.isValid()){Ext.Ajax.request(Ext.apply(this.createCallback(),{form:this.form.el.dom,url:this.getUrl(!a),method:c,params:a?this.getParams():null,isUpload:this.form.fileUpload}))}else{if(b.clientValidation!==false){this.failureType=Ext.form.Action.CLIENT_INVALID;this.form.afterAction(this,false)}}},success:function(b){var a=this.processResponse(b);if(a===true||a.success){if(a.data){this.form.clearInvalid();this.form.setValues(a.data)}this.form.afterAction(this,true);return}if(a.errors){this.form.markInvalid(a.errors);this.failureType=Ext.form.Action.SERVER_INVALID}this.form.afterAction(this,false)},handleResponse:function(c){if(this.form.errorReader){var b=this.form.errorReader.read(c);var f=[];if(b.records){for(var d=0,a=b.records.length;d<a;d++){var e=b.records[d];f[d]=e.data}}if(f.length<1){f=null}return{success:b.success,errors:f}}return Ext.decode(c.responseText)}});Ext.form.Action.ACTION_TYPES.apply=Ext.form.Action.Apply;Ext.namespace("SYNO.UI");SYNO.UI.TaskPane=function(b){this.taskcfgs=new Ext.util.MixedCollection();this.tasklist=[];var e=Ext.get(b);var d=e.createChild({});var g=new Ext.data.SimpleStore({id:"taskid",fields:["taskid","text","status"],data:this.tasklist});var h=function(j){if(j=="doing"){return'<img width="16" height="16" src="/scripts/extjs/resources/images/default/grid/loading.gif">'}else{if(j=="done"){return'<img width="16" height="16" src="/scripts/extjs/resources/images/default/menu/checked.gif">'}else{if(j=="fail"){return'<img width="16" height="16" src="/scripts/images/taskfail.gif">'}}}};var a=new Ext.grid.ColumnModel([{align:"center",header:"",dataIndex:"status",width:30,renderer:h},{id:"text",align:"left",header:"Activity",dataIndex:"text",width:200}]);var c=new Ext.grid.Grid(d,{ds:g,cm:a,loadMask:false,autoExpandColumn:"text",selModel:new Ext.grid.RowSelectionModel({singleSelect:false})});var f=Ext.BorderLayout.create({center:{margins:{left:3,top:3,right:3,bottom:3},panels:[new Ext.GridPanel(c)]}},e);c.render();c.getView().el.select(".x-grid-header").setStyle("display","none");this.grid=c};SYNO.UI.TaskPane.prototype={xhr:null,currentTask:null,grid:null,addTask:function(b,a){this.taskcfgs.add(b,a)},updateTaskParams:function(c,b){var a=this.taskcfgs.get(c);if(a){Ext.apply(a.params,b)}},destroy:function(){if(this.grid){this.grid.destroy(true);this.grid=null}},taskDone:function(a,l,g){var b=this.grid.getDataSource();var c=this.taskcfgs.getCount();var f=this.currentTask;var h=this.taskcfgs.indexOf(f);var j=this.taskcfgs.keys[h];if(f.handler){Ext.callback(f.handler,f.scope,[j,l,g])}var e=b.getAt(h);if(g.responseText){var d=Ext.util.JSON.decode(g.responseText);if(d.success===true){e.set("status","done")}else{e.set("status","fail")}b.commitChanges();h+=1;if(d.success&&h<c){this.execTask(h)}}},execTask:function(a){var b=this.taskcfgs.get(a);if(b){var c=this.taskcfgs.keys[a];var d=this.grid.getDataSource();d.loadData([[c,b.text,"doing"]],true);this.currentTask=b;this.xhr=Ext.Ajax.request({url:b.url,params:b.params,callback:this.taskDone,scope:this})}},start:function(){this.execTask(0)}};Ext.namespace("SYNO.UI");SYNO.UI.TextFilter=function(a){SYNO.UI.TextFilter.superclass.constructor.call(this,a);if(this.store&&!this.localFilter){this.store.on("beforeload",this.onBeforeload,this)}if(this.localFilter==true){this.store.on("load",this.reset,this)}};Ext.extend(SYNO.UI.TextFilter,Ext.form.TriggerField,{triggerClass:"x-form-clear-trigger",queryDelay:500,queryAction:"find",enumAction:"enum",queryParam:"query",localFilter:false,localFilterField:"",pageSize:20,initEvents:function(){SYNO.UI.TextFilter.superclass.initEvents.call(this);this.el.on("keyup",this.filter,this,{buffer:this.queryDelay});this.el.on("focus",function(){if(!this.getValue()){this.setRawValue();this.el.removeClass(this.emptyClass)}},this)},setPageSize:function(a){this.pageSize=a},onBeforeload:function(b,a){var c=this.getValue();if(c){a.params[this.queryParam]=c;a.params.action=this.queryAction}else{a.params.action=this.enumAction}return true},filter:function(){var b=this.getValue();var a;if(this.localFilter==true){if(b){this.store.filter(this.localFilterField,b,true)}else{this.store.clearFilter(false)}return}if(b){a={start:0,limit:this.pageSize,action:this.queryAction};a[this.queryParam]=b;this.store.load({params:a})}else{a={start:0,limit:this.pageSize,action:this.enumAction};this.store.load({params:a})}},reset:function(){SYNO.UI.TextFilter.superclass.reset.call(this);if(this.localFilter==false&&this.store){this.store.clearFilter(false)}},onTriggerClick:function(){if(this.getValue()){this.setValue("");this.filter()}}});Ext.namespace("SYNO.UI");SYNO.UI.SummaryGrid=function(a,b){Ext.apply(this,b||{});this.summaryData=[];this.render(a)};SYNO.UI.SummaryGrid.prototype={width:420,height:180,grid:null,render:function(b){var j=Ext.get(b);var f=j.createChild({});f.setSize(this.width,this.height);var g=f.createChild({});var c=new Ext.data.SimpleStore({fields:["field","descr"],data:this.summaryData});var d=function(l){return"<b>"+l+"</b>"};var h=new Ext.grid.ColumnModel([{align:"left",header:"&nbsp;",dataIndex:"field",width:150,css:"white-space:normal;",renderer:d},{id:"descr",align:"left",header:"&nbsp;",dataIndex:"descr",css:"white-space:normal;",width:200,renderer:function(m,l){l.attr='ext:qtip="'+Ext.util.Format.htmlEncode(m)+'"';return Ext.util.Format.htmlEncode(m)}}]);var a=new Ext.grid.Grid(g,{ds:c,cm:h,loadMask:false,autoExpandColumn:"descr",selModel:new Ext.grid.RowSelectionModel({singleSelect:false})});var e=Ext.BorderLayout.create({center:{margins:{left:3,top:3,right:3,bottom:3},panels:[new Ext.GridPanel(a)]}},f);a.render();this.grid=a},reload:function(b){this.summaryData.length=0;for(var a=0;a<b.length;a++){this.summaryData.push(b[a])}this.grid.getDataSource().load()},destroy:function(){this.grid.destroy(true)}};Ext.namespace("SYNO");SYNO.AppBanner=function(){var b=function(e,f){Ext.get(document.body).mask(_JSLIBSTR("uicommon","msg_waiting"),"x-mask-loading");Ext.Ajax.request({url:"/webman/modules/reboot.cgi",params:{opt:e},callback:function(h,l,g){if(l&&g.responseText){var j=Ext.decode(g.responseText);if(j.success===false&&j.errinfo){Ext.MessageBox.alert(_JSLIBDEF("product"),_JSLIBSTR(j.errinfo.sec,j.errinfo.key));Ext.get(document.body).unmask();return}}Ext.get(document.body).mask(f)}})};var a=function(){if(_JSLIBDEF("demo_mode")==true){Ext.MessageBox.alert(_JSLIBDEF("product"),_JSLIBSTR("uicommon","error_demo"));return}if(SYNO.SurveillanceStationBase){SSActiveXHide()}Ext.MessageBox.confirm(_JSLIBDEF("product"),_JSLIBSTR("uicommon","shutdown_warn"),function(e){if(e=="yes"){var f=_JSLIBSTR("uicommon","system_poweroff").replace(/_DISKSTATION_/g,_JSLIBDEF("product"));b("shutdown",f)}else{if(SYNO.SurveillanceStationBase){SSActiveXShow()}}},this);Ext.MessageBox.getDialog().setZIndex(21000)};var d=function(){if(_JSLIBDEF("demo_mode")==true){Ext.MessageBox.alert(_JSLIBDEF("product"),_JSLIBSTR("uicommon","error_demo"));return}if(SYNO.SurveillanceStationBase){SSActiveXHide()}Ext.MessageBox.confirm(_JSLIBDEF("product"),_JSLIBSTR("uicommon","reboot_warn"),function(e){if(e=="yes"){var f=_JSLIBSTR("uicommon","system_reboot").replace(/_DISKSTATION_/g,_JSLIBDEF("product"));b("reboot",f)}else{if(SYNO.SurveillanceStationBase){SSActiveXShow()}}},this);Ext.MessageBox.getDialog().setZIndex(21000)};var c=new Ext.menu.Menu();c.addMenuItem({text:_JSLIBSTR("uicommon","poweroff_opt"),handler:a});c.addMenuItem({text:_JSLIBSTR("uicommon","reboot_opt"),handler:d});return{show:function(e){c.show(e,"tr-br")}}}();function RedirectToIndexPage(){var b="/index.cgi?reqerror=1";var c=document.getElementsByTagName("body")[0];var a=document.createElement("a");a.href=b;a.style.visibility="hidden";c.appendChild(a);if(a.click){a.click()}else{window.location=b}}SYNO.checkServerError=function(b){var f=false,e;if(window.parent&&parseInt(Ext.urlDecode(location.search.substr(1)).hideAppBar,10)){try{window.parent.SYNO.SDS.Utils.CheckServerError(b);return}catch(c){}}if(b&&b.getResponseHeader){var a;e=b.getResponseHeader;f=("function"===typeof(e))?true:false;a=(f)?e("x-request-error"):e["x-request-error"];if(!a){a=(f)?e("X-Request-Error"):e["X-Request-Error"]}if(a){a=Ext.util.Format.trim(a);var d=_JSLIBSTR("uicommon","error_system");if(a=="timeout"){d=_JSLIBSTR("uicommon","error_timeout")}else{if(a=="unauth"){d=_JSLIBSTR("uicommon","error_noprivilege")}else{if(a=="relogin"){d=_JSLIBSTR("uicommon","error_interrupt")}}}RedirectToIndexPage();alert(d);return true}}return false};SYNO.CheckUserAgent=function(b){var a=navigator.userAgent.toLowerCase();return b.test(a)};SYNO.isWindows=SYNO.CheckUserAgent(/windows|win32/);SYNO.isMac=SYNO.CheckUserAgent(/macintosh|mac os x/);SYNO.isWebKit=SYNO.CheckUserAgent(/webkit/);SYNO.isGecko=!SYNO.isWebKit&&SYNO.CheckUserAgent(/gecko/);SYNO.isChrome=SYNO.CheckUserAgent(/chrome/);SYNO.isSafari=!SYNO.isChrome&&SYNO.CheckUserAgent(/safari/);SYNO.isOpera=SYNO.CheckUserAgent(/opera/);if(SYNO.isChrome||(SYNO.isMac&&SYNO.isGecko)||(SYNO.isWindows&&SYNO.isSafari)){Date.prototype.toLocaleString=function(){return this.format("Y-m-d H:i:s")}}SYNO.getPunyHostname=function(){var a=[],b=location.hostname.split(".");for(i=0;i<b.length;++i){a.push(SYNO.PunyCode.encode(b[i],true))}return a.join(".")};SYNO.getPunyBaseURL=function(){var b,c,a=SYNO.getPunyHostname();c=location.protocol+"//"+a;if(location.port){c+=":"+location.port}c+=location.pathname;if(c.indexOf("?")!=-1){c=c.substring(0,c.indexOf("?"))}c=c.substring(0,c.lastIndexOf("/"));return c+"/"};SYNO.PunyCode=(function(){var g=128;var n=72;var a="-";var c=36;var e=700;var b=1;var h=26;var q=38;var d=2147483647;function f(u){var t=[],v=0,s=u.length,w,r;while(v<s){w=u.charCodeAt(v++);if((w&63488)===55296){r=u.charCodeAt(v++);if(((w&64512)!==55296)||((r&64512)!==56320)){throw new RangeError("UTF-16(decode): Illegal UTF-16 sequence")}w=((w&1023)<<10)+(r&1023)+65536}t.push(w)}return t}function o(t){var s=[],u=0,r=t.length,v;while(u<r){v=t[u++];if((v&63488)===55296){throw new RangeError("UTF-16(encode): Illegal UTF-16 value")}if(v>65535){v-=65536;s.push(String.fromCharCode(((v>>>10)&1023)|55296));v=56320|(v&1023)}s.push(String.fromCharCode(v))}return s.join("")}function m(r){return r-48<10?r-22:r-65<26?r-65:r-97<26?r-97:c}function p(s,r){return s+22+75*(s<26)-((r!=0)<<5)}function l(u,t,s){var r;u=s?Math.floor(u/e):(u>>1);u+=Math.floor(u/t);for(r=0;u>(((c-b)*h)>>1);r+=c){u=Math.floor(u/(c-b))}return Math.floor(r+(c-b+1)*u/(u+q))}function j(s,r){s-=(s-97<26)<<5;return s+((!r&&(s-65<26))<<5)}return{decode:function(z,u){var x=[];var K=[];var E=z.length;var D,I,H,v,s,G,C,r,y,F,B,A,J;D=g;H=0;v=n;s=z.lastIndexOf(a);if(s<0){s=0}for(G=0;G<s;++G){if(u){K[x.length]=(z.charCodeAt(G)-65<26)}if(z.charCodeAt(G)>=128){throw new RangeError("Illegal input >= 0x80")}x.push(z.charCodeAt(G))}for(C=s>0?s+1:0;C<E;){for(r=H,y=1,F=c;;F+=c){if(C>=E){throw RangeError("punycode_bad_input(1)")}B=m(z.charCodeAt(C++));if(B>=c){throw RangeError("punycode_bad_input(2)")}if(B>Math.floor((d-H)/y)){throw RangeError("punycode_overflow(1)")}H+=B*y;A=F<=v?b:F>=v+h?h:F-v;if(B<A){break}if(y>Math.floor(d/(c-A))){throw RangeError("punycode_overflow(2)")}y*=(c-A)}I=x.length+1;v=l(H-r,I,r===0);if(Math.floor(H/I)>d-D){throw RangeError("punycode_overflow(3)")}D+=Math.floor(H/I);H%=I;if(u){K.splice(H,0,z.charCodeAt(C-1)-65<26)}x.splice(H,0,D);H++}if(u){for(H=0,J=x.length;H<J;H++){if(K[H]){x[H]=(String.fromCharCode(x[H]).toUpperCase()).charCodeAt(0)}}}return UTF16Eecode(x)},encode:function(F,r){var w,H,B,E,C,A,x,u,z,I,G,s;if(r){s=f(F)}F=f(F.toLowerCase());var D=F.length;if(r){for(A=0;A<D;A++){s[A]=F[A]!=s[A]}}var y="",v=[];w=g;H=0;C=n;for(A=0;A<D;++A){if(F[A]<128){v.push(String.fromCharCode(s?j(F[A],s[A]):F[A]))}}B=E=v.length;if(E&&E<D){v.push(a)}if(E<D){y="xn--"}while(B<D){for(x=d,A=0;A<D;++A){G=F[A];if(G>=w&&G<x){x=G}}if(x-w>Math.floor((d-H)/(B+1))){throw RangeError("punycode_overflow (1)")}H+=(x-w)*(B+1);w=x;for(A=0;A<D;++A){G=F[A];if(G<w){if(++H>d){return Error("punycode_overflow(2)")}}if(G==w){for(u=H,z=c;;z+=c){I=z<=C?b:z>=C+h?h:z-C;if(u<I){break}v.push(String.fromCharCode(p(I+(u-I)%(c-I),0)));u=Math.floor((u-I)/(c-I))}v.push(String.fromCharCode(p(u,r&&s[A]?1:0)));C=l(H,B+1,B==E);H=0;++B}}++H;++w}return y+v.join("")}}})();Ext.form.MiscField=function(a){Ext.form.MiscField.superclass.constructor.call(this,a)};Ext.extend(Ext.form.MiscField,Ext.Component,{defaultAutoCreate:{tag:"div"},fieldClass:"x-form-field",isFormField:true,getName:function(){return this.rendered&&this.el.dom.name?this.el.dom.name:(this.hiddenName||"")},applyTo:function(a){this.target=a;this.el=Ext.get(a);this.render(this.el.dom.parentNode);return this},onRender:function(b){if(this.el){this.el=Ext.get(this.el);if(!this.target){b.dom.appendChild(this.el.dom)}}else{var a=this.getAutoCreate();if(!a.name){a.name=this.name||this.id}this.el=b.createChild(a)}this.el.addClass("x-form-miscfield");if(!this.customSize&&(this.width||this.height)){this.setSize(this.width||"",this.height||"")}if(this.style){this.el.applyStyles(this.style);delete this.style}this.el.addClass([this.fieldClass,this.cls]);this.initValue()},initValue:function(){if(this.value!==undefined){this.setRawValue(this.value)}else{if(this.el.dom.innerHTML.length>0){this.setRawValue(this.el.dom.innerHTML)}}},afterRender:function(){this.initEvents()},reset:function(){},initEvents:function(){this.originalValue=this.getRawValue()},setSize:function(a,c){if(!this.rendered||!this.el){this.width=a;this.height=c;return}if(a){this.el.setWidth(a)}if(c){this.el.setHeight(c)}var b=this.el.dom.offsetHeight},validate:function(){return true},clearInvalid:function(){return},getRawValue:function(){return this.el.dom.innerHTML},getValue:function(){var b=Ext.util.Format;var a=b.trim(b.stripTags(this.getRawValue()));return a},setRawValue:function(a){this.value=a;if(this.rendered){this.el.dom.innerHTML=a}},setValue:function(a){var b=Ext.util.Format;this.setRawValue(b.trim(b.stripTags(a)))},isDirty:function(){return false},isValid:function(a){return true}});Ext.namespace("Ext.ux.form");Object.extend=function(a,c){for(var b in c){a[b]=c[b]}return a};Object.extend(Object,{inspect:function(a){try{if(a===undefined){return"undefined"}if(a===null){return"null"}return a.inspect?a.inspect():a.toString()}catch(b){if(b instanceof RangeError){return"..."}throw b}},keys:function(a){var b=[];for(var c in a){b.push(c)}return b},values:function(b){var a=[];for(var c in b){a.push(b[c])}return a},clone:function(a){return Object.extend({},a)}});Ext.ux.form.MultiField=function(a){Ext.ux.form.MultiField.superclass.constructor.call(this,a)};Ext.extend(Ext.ux.form.MultiField,Ext.form.Layout,{onRender:function(c){this.ensureTemplatesCreated();var a=[];for(var b=1;b<this.stack.length;b++){a.push(this._subsequentFieldTemplate.apply(Ext.applyIf(Object.clone(this.stack[b]),this)))}if(typeof this.labelWidth=="number"){this.labelStyle="width: "+this.labelWidth+"px;"}this._multiFieldContainerTemplate.append(c,Ext.applyIf(Object.extend(Object.clone(this.stack[0]),{subsequentItems:a.join("")}),this))},ensureTemplatesCreated:function(){if(this._multiFieldContainerTemplate){return}Ext.ux.form.MultiField.prototype._multiFieldContainerTemplate=new Ext.Template('<table border="0" class="x-form-item {itemCls}">','<tr class="x-form-element-multi"><td>','<label for="{id}" style="{labelStyle}">{fieldLabel}{labelSeparator}</label></td>','<td><div class="x-form-element" style="padding-left: 2px;" id="x-form-el-{id}" style="{elementStyle}">',"</div></td>","{subsequentItems}","</tr></table>");Ext.ux.form.MultiField.prototype._multiFieldContainerTemplate.disableFormats=true;Ext.ux.form.MultiField.prototype._multiFieldContainerTemplate.compile();Ext.ux.form.MultiField.prototype._subsequentFieldTemplate=new Ext.Template('<td><label for="{id}" style="{labelStyle}">{fieldLabel}{labelSeparator}</label></td>','<td><div class="x-form-element" style="padding-left: 2px;" id="x-form-el-{id}" style="{elementStyle}"></div></td>');Ext.ux.form.MultiField.prototype._subsequentFieldTemplate.disableFormats=true;Ext.ux.form.MultiField.prototype._subsequentFieldTemplate.compile()}});Ext.form.Form.prototype.multiField=function(b){var a=new Ext.ux.form.MultiField(b);this.start(a);if(arguments.length>1){this.add.apply(this,Array.prototype.slice.call(arguments,1));this.end()}return a};Ext.ux.ColorField=Ext.extend(Ext.form.TriggerField,{invalidText:"'{0}' is not a valid color - it must be in a the hex format (# followed by 3 or 6 letters/numbers 0-9 A-F)",triggerClass:"x-form-color-trigger",defaultAutoCreate:{tag:"input",type:"text",size:"10",maxlength:"7",autocomplete:"off"},menu:null,maskRe:/[#a-f0-9]/i,validateValue:function(b){if(!Ext.ux.ColorField.superclass.validateValue.call(this,b)){return false}if(b.length<1){this.setColor("");return true}var a=this.parseColor(b);if(!b||(a===false)){this.markInvalid(String.format(this.invalidText,b));return false}this.setColor(b);return true},setColor:function(a){if(a===""||a===undefined){if(this.emptyText!==""&&this.parseColor(this.emptyText)){a=this.emptyText}else{a="transparent"}}if(this.trigger){this.trigger.setStyle({"background-color":a})}else{this.on("render",function(){this.setColor(a)},this)}},validateBlur:function(){return !this.menu||!this.menu.isVisible()},getValue:function(){return Ext.ux.ColorField.superclass.getValue.call(this)||""},setValue:function(a){Ext.ux.ColorField.superclass.setValue.call(this,this.formatColor(a));this.setColor(this.formatColor(a))},parseColor:function(b){var a=/^#[a-f0-9]{3}([a-f0-9]{3})?$/i;if(b&&b.match(a)){return true}else{return false}},formatColor:function(a){if(!a||this.parseColor(a)){return a}if(a.length==3||a.length==6){return"#"+a}return""},menuListeners:{select:function(a,b){this.setValue(b)},show:function(){this.onFocus()},hide:function(){this.focus.defer(10,this);var a=this.menuListeners;this.menu.un("select",a.select,this);this.menu.un("show",a.show,this);this.menu.un("hide",a.hide,this)}},onTriggerClick:function(){if(this.disabled){return}if(this.menu===null){var a=new Ext.menu.ColorMenu();this.menu=a}this.menu.on(Ext.apply({},this.menuListeners,{scope:this}));this.menu.show(this.el,"tl-bl?")}});