//Copyright (c) 2008 Synology Inc. All rights reserved.

Ext.namespace("SYNO.webfm.utils");Ext.apply(SYNO.webfm.utils,{isNameReserved:function(_1){return ("@eadir"==_1.toLowerCase());},isNameCharIllegal:function(_2){if(-1!=_2.indexOf(":")||-1!=_2.indexOf("/")){return true;}else{return false;}},ParseArrToString:function(_3,_4){var _5=[];var _6;for(i=0;i<_3.length;i++){_5.push(_3[i].get(_4));}_6=_5.join("_SYNOFM_");return _6;},ParseArr:function(_7,_8){var _9=[];for(i=0;i<_7.length;i++){_9.push(_7[i].get(_8));}return _9;},ParseArrToJSON:function(_a,_b){var _c=[];for(i=0;i<_a.length;i++){_c.push(_a[i].get(_b));}return Ext.util.JSON.encode(_c);},GetSeesionID:function(){var _d="id";if(document.cookie.length>0){var _e=document.cookie.indexOf(_d+"=");if(_e!=-1){_e=_e+_d.length+1;var _f=document.cookie.indexOf(";",_e);if(_f==-1){_f=document.cookie.length;}return unescape(document.cookie.substring(_e,_f));}}return "";},getPageRecordStore:function(){var _10=new Ext.data.SimpleStore({fields:["value","display"],data:[[25,25],[50,50],[75,75],[100,100],[125,125],[150,150]]});return _10;},isConflictTargetPath:function(src,_12){var _13="";var _14="";if(_12.length<src.length){var pos=src.lastIndexOf("/");_14=src.substring(pos);return (_12+_14==src);}else{if(_12.length==src.length){return (_12==src);}else{_13=_12.substring(0,src.length);_14=_12.substring(src.length);return ((_13==src)&&("/"==_14.charAt(0)));}}},getParentDirArr:function(rec){var arr=[];var pos=-1;var str="";if(!(rec instanceof Array)){pos=rec.lastIndexOf("/");str=rec.substring(0,pos);arr.push(str);return arr;}for(var i=0;i<rec.length;i++){if(!(rec[i].get("isdir"))){continue;}str=rec[i].get("file_id");pos=str.lastIndexOf("/");str=str.substring(0,pos);if(!this.strElementInArray(str,arr)){arr.push(str);}}return arr;},strElementInArray:function(_1b,arr){for(var i=0;i<arr.length;i++){if(_1b==arr[i]){return true;}}return false;},replaceDLNameSpecChars:function(_1e){var re=/[\/\\\:\?\>\<\*\"\;\|\#\%]/g;return _1e.replace(re,"-");},checkIfNeedRedirect:function(_20,key,_22){if((_22&&"login"==_20)||("error"==_20&&"error_testjoin"==key)){if("true"==_S("customized")){window.location="webUI/logout.cgi";}else{window.location="../index.cgi";}alert(_T(_20,key));return true;}return false;},parseFullPathToFileName:function(_23){var _24="";var pos=_23.lastIndexOf("/");if(-1==pos){pos=_23.lastIndexOf("\\");}_24=_23.substring(pos+1);return _24;},isParentDir:function(_26,to){if(!_26||!to){return false;}var pos=_26.lastIndexOf("/");if(-1==pos||0==pos){return false;}var _29=_26.substring(0,pos);return (_29==to);},isWinParentDir:function(_2a,to){if(!_2a||!to){return false;}var pos=_2a.lastIndexOf("\\");if(pos<2){return false;}var _2d;if(_2a.length!=3){_2d=_2a.substring(0,pos+1);}else{_2d=_2a;}return (_2d==to);},utfencode:function(s){s=s.replace(/\r\n/g,"\n");var _2f="";for(var n=0;n<s.length;n++){var c=s.charCodeAt(n);if(c<128){_2f+=String.fromCharCode(c);}else{if((c>127)&&(c<2048)){_2f+=String.fromCharCode((c>>6)|192);_2f+=String.fromCharCode((c&63)|128);}else{_2f+=String.fromCharCode((c>>12)|224);_2f+=String.fromCharCode(((c>>6)&63)|128);_2f+=String.fromCharCode((c&63)|128);}}}return _2f;},bin2hex:function(s){s=SYNO.webfm.utils.utfencode(s);var v,i,f=0,a=[];s+="";f=s.length;for(i=0;i<f;i++){a[i]=s.charCodeAt(i).toString(16).replace(/^([\da-f])$/,"0$1");}return a.join("");},checkPointInBox:function(box,_38,_39){if(_38<box.x||_39<box.y){return false;}return ((box.right>_38)&&(box.bottom>_39));}});if(Ext.isIE){SYNO.webfm.utils.labelStyleL0="overflow: hidden; width:167px; display: inline;text-align: left;";SYNO.webfm.utils.labelStyleL1="overflow: hidden;width: 148px; margin-left: 19px;display: inline;text-align: left;";SYNO.webfm.utils.labelStyleL2="overflow: hidden;width: 131px; margin-left: 36px;display: inline;text-align: left;";SYNO.webfm.utils.labelStyleL0Auto="width: auto; display: inline;text-align: left; margin-right: 5px;";SYNO.webfm.utils.labelStyleL1Auto="width: auto; margin-left: 19px; display: inline;text-align: left; margin-right: 5px;";SYNO.webfm.utils.labelStyleL2Auto="width: auto; margin-left: 36px; display: inline;text-align: left; margin-right: 5px;";SYNO.webfm.utils.labelStyleL1Hidden="overflow: hidden;width: 0px; margin-left: 16px;display: inline;visibility:hidden;text-align: left;";}else{SYNO.webfm.utils.labelStyleL0="overflow: hidden; width:167px; display: inline;text-align: left;";SYNO.webfm.utils.labelStyleL1="overflow: hidden;width: 150px; margin-left: 17px;display: inline;text-align: left;";SYNO.webfm.utils.labelStyleL2="overflow: hidden;width: 133px; margin-left: 34px;display: inline;text-align: left;";SYNO.webfm.utils.labelStyleL0Auto="width: auto; display: inline;text-align: left; margin-right: 5px;";SYNO.webfm.utils.labelStyleL1Auto="width: auto; margin-left: 17px; display: inline;text-align: left; margin-right: 5px;";SYNO.webfm.utils.labelStyleL2Auto="width: auto; margin-left: 34px; display: inline;text-align: left; margin-right: 5px;";SYNO.webfm.utils.labelStyleL1Hidden="overflow: hidden;width: 0px; margin-left: 14px;display: inline;visibility:hidden;text-align: left;";}SYNO.webfm.utils.PagingToolBar=function(el,ds,_3c){SYNO.webfm.utils.PagingToolBar.superclass.constructor.apply(this,arguments);};Ext.extend(SYNO.webfm.utils.PagingToolBar,Ext.PagingToolbar,{setPageSize:function(_3d){this.pageSize=_3d;}});SYNO.webfm.utils.FTP_PRIV_DISABLE_LIST=1;SYNO.webfm.utils.FTP_PRIV_DISABLE_MODIFY=2;SYNO.webfm.utils.FTP_PRIV_DISABLE_DOWNLOAD=4;SYNO.webfm.utils.NA=1;SYNO.webfm.utils.RW=2;SYNO.webfm.utils.RO=4;SYNO.webfm.utils.Mode_None=0;SYNO.webfm.utils.Mode_Read=4;SYNO.webfm.utils.Mode_Write=2;SYNO.webfm.utils.Mode_Exec=1;SYNO.webfm.utils.Mode_All=SYNO.webfm.utils.Mode_Read|SYNO.webfm.utils.Mode_Write|SYNO.webfm.utils.Mode_Exec;SYNO.webfm.utils.ReqPrivilege={};SYNO.webfm.utils.ReqPrivilege.SrcFolder={};SYNO.webfm.utils.ReqPrivilege.DestFolder={};SYNO.webfm.utils.ReqPrivilege.SrcFile={};SYNO.webfm.utils.ReqPrivilege.SrcFolder.Create=SYNO.webfm.utils.Mode_None;SYNO.webfm.utils.ReqPrivilege.DestFolder.Create=SYNO.webfm.utils.Mode_Write|SYNO.webfm.utils.Mode_Exec;SYNO.webfm.utils.ReqPrivilege.SrcFile.Create=SYNO.webfm.utils.Mode_None;SYNO.webfm.utils.ReqPrivilege.SrcFolder.Copy=SYNO.webfm.utils.Mode_Exec;SYNO.webfm.utils.ReqPrivilege.DestFolder.Copy=SYNO.webfm.utils.Mode_Write|SYNO.webfm.utils.Mode_Exec;SYNO.webfm.utils.ReqPrivilege.SrcFile.Copy=SYNO.webfm.utils.Mode_Read;SYNO.webfm.utils.ReqPrivilege.SrcFolder.Move=SYNO.webfm.utils.Mode_Write|SYNO.webfm.utils.Mode_Exec;SYNO.webfm.utils.ReqPrivilege.DestFolder.Move=SYNO.webfm.utils.Mode_Write|SYNO.webfm.utils.Mode_Exec;SYNO.webfm.utils.ReqPrivilege.SrcFile.Move=SYNO.webfm.utils.Mode_None;SYNO.webfm.utils.ReqPrivilege.SrcFile.MoveDir=SYNO.webfm.utils.Mode_Write|SYNO.webfm.utils.Mode_Exec;SYNO.webfm.utils.ReqPrivilege.SrcFolder.Delete=SYNO.webfm.utils.Mode_Write|SYNO.webfm.utils.Mode_Exec;SYNO.webfm.utils.ReqPrivilege.DestFolder.Delete=SYNO.webfm.utils.Mode_None;SYNO.webfm.utils.ReqPrivilege.SrcFile.DeleteFile=SYNO.webfm.utils.Mode_None;SYNO.webfm.utils.ReqPrivilege.SrcFile.DeleteDir=SYNO.webfm.utils.Mode_All;SYNO.webfm.utils.ReqPrivilege.SrcFolder.Upload=SYNO.webfm.utils.Mode_None;SYNO.webfm.utils.ReqPrivilege.DestFolder.Upload=SYNO.webfm.utils.Mode_Write|SYNO.webfm.utils.Mode_Exec;SYNO.webfm.utils.ReqPrivilege.SrcFile.Upload=SYNO.webfm.utils.Mode_None;SYNO.webfm.utils.ReqPrivilege.SrcFolder.Download=SYNO.webfm.utils.Mode_Read;SYNO.webfm.utils.ReqPrivilege.DestFolder.Download=SYNO.webfm.utils.Mode_None;SYNO.webfm.utils.ReqPrivilege.SrcFile.Download=SYNO.webfm.utils.Mode_Read;SYNO.webfm.utils.ReqPrivilege.SrcFolder.Navigate=SYNO.webfm.utils.Mode_None;SYNO.webfm.utils.ReqPrivilege.DestFolder.Navigate=SYNO.webfm.utils.Mode_Exec;SYNO.webfm.utils.ReqPrivilege.SrcFile.Navigate=SYNO.webfm.utils.Mode_None;SYNO.webfm.utils.ReqPrivilege.SrcFolder.Extract=SYNO.webfm.utils.Mode_None;SYNO.webfm.utils.ReqPrivilege.DestFolder.Extract=SYNO.webfm.utils.Mode_All;SYNO.webfm.utils.ReqPrivilege.SrcFile.Extract=SYNO.webfm.utils.Mode_Read;SYNO.webfm.utils.checkShareRight=function(_3e,_3f){if(_3e=="NA"){currRight=SYNO.webfm.utils.NA;}else{if(_3e=="RW"){currRight=SYNO.webfm.utils.RW;}else{if(_3e=="RO"){currRight=SYNO.webfm.utils.RO;}}}if(_3f&currRight){return true;}return false;};SYNO.webfm.utils.checkUnixRight=function(_40){var _41=false;var _42=false;if(_40.curUID==_40.uid){_41=true;}for(var i=0;i<_40.curGID.length;i++){if(_40.curGID[i].gid==_40.gid){_42=true;break;}}fileRight=SYNO.webfm.utils.parseMode(_40.right);if(_41){tmpVal=fileRight.owner&~(SYNO.webfm.utils.Mode_All&~_40.needRight);if(tmpVal==_40.needRight){return true;}}else{if(_42){tmpVal=fileRight.group&~(SYNO.webfm.utils.Mode_All&~_40.needRight);if(tmpVal==_40.needRight){return true;}}else{tmpVal=fileRight.others&~(SYNO.webfm.utils.Mode_All&~_40.needRight);if(tmpVal==_40.needRight){return true;}}}return false;};SYNO.webfm.utils.parseMode=function(_44){var val=0;var _46=0,_47=0,_48=0;val=parseInt(_44,10);if(val>=100){_46=Math.floor(val/100);val-=_46*100;}if(val>=10){_47=Math.floor(val/10);val-=_47*10;}_48=val;return {owner:_46,group:_47,others:_48};};SYNO.webfm.utils.getShareRight=function(_49,_4a){if((idx=_4a.indexOf("/",1))!=-1){var _4b=_4a.substring(0,idx);var _4c=_49.getNodeById(_4b);if(_4c){return _4c.attributes.right;}}return null;};SYNO.webfm.utils.getShareFtpRight=function(_4d,_4e){if((idx=_4e.indexOf("/",1))!=-1){var _4f=_4e.substring(0,idx);var _50=_4d.getNodeById(_4f);if(_50){return _50.attributes.ftpright;}}return null;};SYNO.webfm.utils.getZipName=function(_51){var idx=_51.lastIndexOf(".");_51=_51.substr(0,idx);idx=_51.lastIndexOf(".");if(_51.substr(idx+1).toLowerCase()=="tar"){_51=_51.substr(0,idx);}return _51;};SYNOFileStationTreeDialog=function(_1){var _2={modal:true,autoTabs:true,autoCreate:true,width:500,height:500,shadow:true,minWidth:500,minHeight:300,proxyDrag:true,closable:true,collapsible:false,center:{autoScroll:true,tabPosition:"top",closeOnTab:true,titlebar:false,alwaysShowTabs:false}};SYNOFileStationTreeDialog.superclass.constructor.call(this,_1,_2);this.addEvents("beforesubmit:true");this.btnApply=this.addButton(_T("common","common_submit"),this.saveSelections,this);this.addButton(_T("common","common_cancel"),this.onClose,this);this.init();this.getLayout().getRegion("center").showPanel(0);};Ext.extend(SYNOFileStationTreeDialog,Ext.LayoutDialog,{writeStrategyForm:undefined,activeRecord:null,fdrName:null,blOverWrite:false,fileStr:null,action:null,gUID:null,gGID:null,reloadTree:function(){this.dirTree.getRootNode().reload();},init:function(){var ct=Ext.get(document.body).createChild();var _4=ct.createChild();var _5=ct.createChild({tag:"div",style:"padding-left: 5px;"});var tb=new Ext.Toolbar(_4);tb.addButton({text:_T("common","common_refresh"),icon:"images/button/toolbar_refresh.png",cls:"x-btn-text-icon",handler:this.reloadTree,scope:this});tb.addButton({text:_T("filetable","filetable_create_folder"),tooltip:_T("filetable","filetable_create_folder"),icon:"images/button/folder_add.png",cls:"x-btn-text-icon",handler:this.createFolder,scope:this});var _7=this.getLayout();_7.beginUpdate();var cp=_7.add("center",new Ext.ContentPanel(ct,{resizeEl:_5.id,fitToFrame:true,background:true,autoScroll:true,toolbar:tb}));_7.endUpdate();this.initTreeArea(_5);this.initForm();},initTreeArea:function(id){var _a=new Ext.tree.TreeLoader({dataUrl:"webUI/file_share.cgi",baseParams:{action:"getshares",needrw:"true"}});var _b=new Ext.tree.TreePanel(id,{animate:false,loader:_a,containerScroll:true});var _c=new Ext.tree.AsyncTreeNode({text:_S("hostname"),draggable:false,expanded:true,allowDrop:false,id:"fm_root",icon:"images/button/computer.png"});var _d=_b.getSelectionModel();_d.on("beforeselect",function(sm,_f,_10){if(_f.id=="fm_root"){return false;}return true;},this);_a.on("load",function(_11,_12,_13){if(_13.responseText){var obj=Ext.util.JSON.decode(_13.responseText);if(obj&&obj.errno){if(SYNO.webfm.utils.checkIfNeedRedirect(obj.errno.section,obj.errno.key,false)){return;}}}},this);_b.setRootNode(_c);_b.render();this.dirTree=_b;},onCrtFdrHide:function(){var _15=Ext.DialogManager.get("file_crtfdr_dlg");_15.un("hide",this.onCrtFdrHide,this);var _16=_15.getFolderName();var sm=this.dirTree.getSelectionModel();var _18=sm.getSelectedNode();if(!_18||!_16){return;}var _19=new SYNOFileStationFileTask();_19.init({files:_16,dest:_18.id,action:"createfolder",url:SYNOFileStationFileAction.CreateCGI});_19.on("completed",function(_1a,_1b){if(_1a){_18.reload(function(n){var _1d=n.findChild("text",_16);if(_1d){_1d.select();}});}else{Ext.MessageBox.alert(_T("tree","leaf_filestation"),_T(_1b.section,_1b.key));}},this);_19.send();},createFolder:function(){var sm=this.dirTree.getSelectionModel();var _1f=sm.getSelectedNode();if(!_1f){return;}if(_S("user")!="admin"){var _20=false;if(_1f.parentNode.id!="fm_root"){shareRight=SYNO.webfm.utils.getShareRight(this.dirTree,_1f.attributes.id);}else{shareRight=_1f.attributes.right;_20=true;}if(!SYNO.webfm.utils.checkShareRight(shareRight,SYNO.webfm.utils.RW)){Ext.MessageBox.alert(_T("tree","leaf_filestation"),_T("error","error_privilege_not_enough"));return false;}if(!_20){UnixRightArg={curUID:this.gUID,curGID:this.gGID,uid:_1f.attributes.uid,gid:_1f.attributes.gid,right:_1f.attributes.right,needRight:SYNO.webfm.utils.ReqPrivilege.DestFolder.Create};if(!SYNO.webfm.utils.checkUnixRight(UnixRightArg)){Ext.MessageBox.alert(_T("tree","leaf_filestation"),_T("error","error_privilege_not_enough"));return false;}}}var _21=Ext.DialogManager.get("file_crtfdr_dlg");if(!_21){_21=new SYNOFileStationCrtFdrDialog("file_crtfdr_dlg");}_21.on("hide",this.onCrtFdrHide,this);_21.setParentDir(_1f.id);_21.load();},initForm:function(){var _22=new Ext.form.Form({labelWidth:75,labelAlign:"left",url:"",trackResetOnLoad:true,waitMsgTarget:document.body});_22.multiField({hideLabels:true},new Ext.form.SRadio({boxLabel:_T("filetable","filetable_skip"),name:"writestrategy",id:"skip",inputValue:"skip",indent:1,checked:true}),new Ext.form.SRadio({boxLabel:_T("filetable","filetable_overwrite"),name:"writestrategy",id:"overwrite",inputValue:"overwrite",indent:1}));_22.end();this.formElement=this.footer.createChild({id:Ext.id()});_22.render(this.formElement);_22.on("actionfailed",function(){this.onClose();},this);this.writeStrategyForm=_22;},onClose:function(){this.hide();},saveSelections:function(){var val="";if(!this.writeStrategyForm||!this.writeStrategyForm.findField("writestrategy")){this.hide();return;}var sm=this.dirTree.getSelectionModel();var _25=sm.getSelectedNode();if(_25&&_25.id){this.fdrName=_25.id;}else{Ext.MessageBox.alert(_T("tree","leaf_filestation"),_T("filetable","filetable_select_one"));return;}val=this.writeStrategyForm.findField("writestrategy").getGroupValue();if("overwrite"==val){this.blOverWrite=true;}else{this.blOverWrite=false;}var _26;var _27=0;if(this.hasListener("beforesubmit")){if(_S("user")=="admin"){}else{if(_25.parentNode.id!="fm_root"){_27=SYNO.webfm.utils.getShareFtpRight(this.dirTree,_25.attributes.id);}else{_27=_25.attributes.ftpright;}}if(_25.parentNode.id!="fm_root"){_26={path:_25.attributes.path,folderRight:_25.attributes.right,uid:_25.attributes.uid,gid:_25.attributes.gid,shareRight:SYNO.webfm.utils.getShareRight(this.dirTree,_25.attributes.id),ftpRight:_27};}else{_26={path:_25.attributes.path,shareRight:_25.attributes.right,ftpRight:_27};}if(!this.fireEvent("beforesubmit",_26)){this.resetDialog();return;}}this.hide();},resetDialog:function(){if(this.writeStrategyForm){this.writeStrategyForm.reset();}this.blOverWrite=false;this.fdrName=null;},getParameters:function(){var _28={};_28.fdrName=this.fdrName;_28.blOverWrite=this.blOverWrite;return _28;},load:function(_29,_2a,uid,gid,_2d){this.resetDialog();this.reloadTree();var sm=this.dirTree.getSelectionModel();sm.clearSelections();if(!_2a){this.formElement.hide();}else{this.formElement.show();}if(_2d){sm.on("selectionchange",function(_2f,_30){if(_30==null){return;}var _31=0;if(_S("user")=="admin"){}else{if(_30.parentNode.id!="fm_root"){_31=SYNO.webfm.utils.getShareFtpRight(this.dirTree,_30.attributes.id);}else{_31=_30.attributes.ftpright;}}var _32=(_31&SYNO.webfm.utils.FTP_PRIV_DISABLE_LIST)||(_31&SYNO.webfm.utils.FTP_PRIV_DISABLE_MODIFY);this.enableDisableWriteStrategyForm(_32);},this);}this.gUID=uid;this.gGID=gid;this.setTitle(_29+" - "+_T("filetable","filetable_select_path"));this.show();},enableDisableWriteStrategyForm:function(_33){if(_33){this.writeStrategyForm.findField("skip").setValue(true);this.writeStrategyForm.findField("overwrite").disable();this.writeStrategyForm.findField("skip").disable();}else{if(this.writeStrategyForm.findField("overwrite").disabled){this.writeStrategyForm.findField("overwrite").enable();this.writeStrategyForm.findField("skip").enable();}}}});SYNOFileStationGridDialog=function(_1,_2){var _3={modal:true,autoTabs:true,autoCreate:true,width:700,height:540,shadow:true,minWidth:650,minHeight:300,proxyDrag:true,closable:true,collapsible:false,center:{autoScroll:true,tabPosition:"top",closeOnTab:true,titlebar:false,alwaysShowTabs:false}};this.gridScope=_2;SYNOFileStationGridDialog.superclass.constructor.call(this,_1,_3);this.btnApply=this.addButton(_T("common","common_submit"),this.saveSelections,this);this.addButton(_T("common","common_cancel"),this.onClose,this);this.initDB();this.initFileGrid();this.getLayout().getRegion("center").showPanel(0);};Ext.extend(SYNOFileStationGridDialog,Ext.LayoutDialog,{fdrName:null,dest:null,uid:null,gid:null,paramArr:null,parentDir:null,blLoading:false,onGridSelectionChanged:function(){var _4=this.fileGrid.getSelectionModel();var _5=_4.getCount();if(_5===0||this.blLoading||this.parentDir==null){this.btnApply.disable();}else{this.btnApply.enable();}},initDB:function(){var _6=["file_id","filename","filesize","mt","ct","at","privilege_str","privilege","owner","group","icon","type","path","isdir","uid","gid","is_compressed"];var ds=new Ext.data.Store({proxy:new AppletProxy(),reader:new Ext.data.JsonReader({root:"items",totalProperty:"total",id:"file_id"},_6),remoteSort:true,sortInfo:{field:"filename",direction:"ASC"},baseParams:{action:"getfiles",need:"all"},pruneModifiedRecords:true});ds.on("beforeload",function(ds,_9){this.blLoading=true;},this);ds.on("load",function(_a,_b,_c){this.blLoading=false;this.btnApply.disable();this.onGridSelectionChanged();},this);ds.on("loadexception",function(_d,_e){if(!_e){Ext.MessageBox.alert(_T("tree","leaf_filestation"),_T("common","commfail"));return;}else{if(_e.errno){if(SYNO.webfm.utils.checkIfNeedRedirect(_e.errno.section,_e.errno.key,false)){return;}Ext.MessageBox.alert(_T("tree","leaf_filestation"),_T(_e.errno.section,_e.errno.key));}}this.hide();},this);this.ds=ds;},initFileGrid:function(){var _f=function(val,_11,_12,_13,_14,_15){if(_12.get("isdir")=="root"||_12.get("isdir")==false){return val;}else{return "";}};var _16=function(val){if(!val){return "";}return (new Date(val*1000)).toLocaleString();};var cm=new Ext.grid.ColumnModel([{id:"filename",header:_T("common","common_filename"),dataIndex:"filename",renderer:function(val,_1a,_1b,_1c,_1d,_1e){var _1f=Ext.util.Format.htmlEncode(val);_1a.attr="ext:qtip=\""+_1f+"\"";return String.format("<img width=\"16\" height=\"16\" src=\"images/files_ext/{0}\" align=\"absmiddle\" />&nbsp;{1}",_1b.get("icon"),_1f);}},{header:_T("common","common_filesize"),dataIndex:"filesize",width:80,align:"right",renderer:_f},{header:_T("filetable","filetable_title_file_type"),dataIndex:"type",width:100,align:"left",renderer:function(val,_21,_22,_23,_24,_25){if(true==_22.get("isdir")){return _T("filetable","filetable_folder");}if(val){var _26;_26=val.toUpperCase();if(false==_22.get("isdir")){_26+=(" "+_T("filetable","filetable_file"));}return _26;}return _T("filetable","filetable_file");}},{header:_T("filetable","filetable_mtime"),dataIndex:"mt",width:160,align:"right",renderer:_16}]);cm.defaultSortable=true;var _27=Ext.get(document.body).createChild();var _28=new Ext.grid.Grid(_27,{ds:this.ds,cm:cm,loadMask:true,autoExpandColumn:"filename",enableColumnMove:false,enableColumnHide:false,enableColLock:false,selModel:new Ext.grid.RowSelectionModel({singleSelect:false})});_28.getGridEl().addClass("without-dirty-red-grid");_28.render();_28.on("celldblclick",function(e,row,col){var _2c="";var _2d=this.fileGrid.getDataSource().getAt(row);if(_2d.get("isdir")==false){return;}_2c=_2d.get("file_id");this.onChangeDir(_2c);},this);var _2e=new Ext.util.DelayedTask(this.onGridSelectionChanged,this);var _2f=_28.getSelectionModel();_2f.on("selectionchange",function(){_2e.delay(100);},this);var _30=this.getLayout();_30.beginUpdate();var cp=_30.add("center",new Ext.GridPanel(_28,{autoCreate:true,background:true}));_30.endUpdate();var _32=_28.getView().getHeaderPanel(true);var tb=new Ext.Toolbar(_32);var _34=new Ext.Toolbar.Button({icon:"images/site/last_folder.gif",cls:"x-btn-icon"});_34.on("click",function(){this.onChangeDir(this.parentDir);},this);this.btnUpFolder=_34;tb.add(_34);tb.addSeparator();var _35=new Ext.Toolbar.Button({text:_T("common","common_refresh"),tooltip:_T("common","common_refresh"),icon:"images/button/toolbar_refresh.png",cls:"x-btn-text-icon"});_35.on("click",function(){this.ds.removeAll();this.ds.reload();},this);tb.add(_35);tb.addSeparator();var _36=new Ext.Toolbar.Button({text:_T("common","all"),tooltip:_T("common","all"),cls:"x-btn-text-icon",icon:"images/button/select_all.png"});_36.on("click",function(){var sm=this.fileGrid.getSelectionModel();sm.selectAll();},this);tb.add(_36);tb.addSeparator();this.btnSelectAll=_36;var _38=new Ext.Toolbar.Button({text:_T("common","none"),tooltip:_T("common","none"),cls:"x-btn-text-icon",icon:"images/button/select_none.png"});_38.on("click",function(){var sm=this.fileGrid.getSelectionModel();sm.clearSelections();},this);tb.add(_38);tb.addSeparator();this.btnClear=_38;tb.addText(_T("filetable","filetable_same_file")+": ");var _3a=new Ext.data.SimpleStore({fields:["value","strategy"],data:[["skip",_T("filetable","filetable_skip")],["overwrite",_T("filetable","filetable_overwrite")]]});var _3b=new Ext.form.ComboBox({name:"writestrategy",hiddenName:"writestrategy",store:_3a,displayField:"strategy",valueField:"value",triggerAction:"all",value:"skip",editable:false,width:110});this.cbWriteStrategy=_3b;tb.add(this.cbWriteStrategy);tb.addSeparator();var _3c=_28.getView().getFooterPanel(true);var _3d=new Ext.Toolbar(_3c);var _3e=_3c.createChild();var _3f=new Ext.PagingToolbar(_3e,this.ds,{pageSize:100,displayInfo:true});var _40=new Ext.Toolbar.Button({text:_T("extract","dest_folder"),tooltip:_T("extract","dest_folder"),icon:"images/button/toolbar_folder_edit.png",cls:"x-btn-text-icon"});_40.on("click",function(){this.onChooseDest();},this);_3d.add(_40);_3d.addSeparator();this.btnDest=_40;var _41=new Ext.Toolbar.TextItem("");_3d.add(_41);_3d.addSeparator();this.txtDest=_41;this.on("hide",function(){this.ds.removeAll();});this.fileGrid=_28;},onChooseDest:function(){var _42=Ext.DialogManager.get("file_tree_dlg");if(!_42){_42=new SYNOFileStationTreeDialog("file_tree_dlg");}var _43={that:this};_42.on("beforesubmit",this.onCheckDestPrivilege,_43);_42.on("hide",this.onTreeDialogHide,{that:this,scope:_43});_42.load(_T("filetable","filetable_upload"),false,this.uid,this.gid);},onCheckDestPrivilege:function(_44){var _45=Ext.DialogManager.get("file_tree_dlg");if(_45){if(_S("user")=="admin"){return true;}var _46=this.that;_46.blDisableWriteOption=(_44.ftpRight&SYNO.webfm.utils.FTP_PRIV_DISABLE_LIST)||(_44.ftpRight&SYNO.webfm.utils.FTP_PRIV_DISABLE_MODIFY);if(_S("domainUser")=="true"){return true;}if(!SYNO.webfm.utils.checkShareRight(_44.shareRight,SYNO.webfm.utils.RW)){Ext.MessageBox.alert(_T("tree","leaf_filestation"),_T("error","error_privilege_not_enough"));return false;}if(_44.folderRight!=undefined){var _47={curUID:_46.uid,curGID:_46.gid,uid:_44.uid,gid:_44.gid,right:_44.folderRight,needRight:SYNO.webfm.utils.ReqPrivilege.DestFolder.Upload};if(!SYNO.webfm.utils.checkUnixRight(_47)){Ext.MessageBox.alert(_T("tree","leaf_filestation"),_T("error","error_privilege_not_enough"));return false;}}return true;}},onTreeDialogHide:function(){var _48=this.that;var _49=Ext.DialogManager.get("file_tree_dlg");if(!_49){return;}_49.un("beforesubmit",_48.onCheckDestPrivilege,this.scope);_49.un("hide",_48.onTreeDialogHide,this);var _4a=_49.getParameters();if(_4a.fdrName){_48.updateTargetPath(_4a.fdrName);}_48.enableDisablecbWriteStrategy(_48.blDisableWriteOption);},updateCurrentPathLink:function(_4b){if(_4b=="fmroot"||_4b.substr(0,1)!="/"){this.enableDisableBtn(false);this.parentDir=null;return;}this.enableDisableBtn(true);var _4c=_4b.substr(1).split("/");if(_4b=="/"){this.parentDir="fm_root";}else{if(_4c.length<=1){this.parentDir="/";}else{var _4d="";for(j=0;_4c.length>0&&j<_4c.length-1;j++){_4d+="/";_4d+=_4c[j];}this.parentDir=_4d;}}},updateWinCurrentPathLink:function(_4e){if(_4e=="fmroot"||_4e.substr(1,2)!=":\\"){this.enableDisableBtn(false);this.parentDir=null;return;}var _4f;this.enableDisableBtn(true);if(_4e.length==3){this.parentDir="fm_root";}else{if(_4e.substr(_4e.length-1)=="\\"){_4f=_4e.substr(0,_4e.length-1).split("\\");}else{_4f=_4e.split("\\");}var _50="";for(j=0;_4f.length>0&&j<_4f.length-1;j++){_50+=_4f[j];_50+="\\";}this.parentDir=_50;}},onChangeDir:function(_51){if(!_51){return;}this.ds.removeAll();this.ds.baseParams.target=_51;this.ds.load({params:{start:0,limit:100}});if(!Ext.isWindows){this.updateCurrentPathLink(_51);}else{this.updateWinCurrentPathLink(_51);}},loadDS:function(){this.ds.baseParams.target="fm_root";this.ds.load({params:{start:0,limit:100}});},initGlobalVal:function(){this.paramArr=null;this.parentDir=null;},enableDisableBtn:function(_52){if(_52){this.btnUpFolder.enable();this.btnSelectAll.enable();this.btnClear.enable();}else{this.btnUpFolder.disable();this.btnSelectAll.disable();this.btnClear.disable();}},initUIElement:function(_53){this.btnApply.disable();this.enableDisableBtn(false);this.loadDS();},enableDisablecbWriteStrategy:function(_54){if(_54){this.cbWriteStrategy.setValue("skip");this.cbWriteStrategy.disable();}else{this.cbWriteStrategy.enable();}},load:function(_55,uid,gid,_58){this.setTitle(_T("filetable","filetable_upload"));if(_55===""){return;}this.uid=uid;this.gid=gid;this.initGlobalVal();this.updateTargetPath(_55);this.initUIElement();this.enableDisablecbWriteStrategy(_58);this.show();},updateTargetPath:function(_59){this.dest=_59;this.txtDest.getEl().innerHTML="<b>"+Ext.util.Format.htmlEncode(_59)+"</b>";},onClose:function(){this.ds.removeAll();this.hide();},saveSelections:function(){var sm=this.fileGrid.getSelectionModel();var _5b="";var _5c="";_5b=sm.getSelections();var val=this.cbWriteStrategy.getValue();var _5e=false;if("overwrite"==val){_5e=true;}this.paramArr={dest:this.dest,recs:_5b,blOverWrite:_5e};this.hide();},getOptions:function(){return this.paramArr;}});SYNOFILESTATION_LOGINDIALOG=function(_1){config={modal:true,autoTabs:true,autoCreate:true,width:450,height:350,shadow:true,minWidth:370,minHeight:300,proxyDrag:true,closable:false,collapsible:false,syncHeightBeforeShow:true,center:{autoHeight:true,autoScroll:false,tabPosition:"top",closeOnTab:true,titlebar:false,alwaysShowTabs:true}};SYNOFILESTATION_LOGINDIALOG.superclass.constructor.call(this,_1,config);this.addButton(g_Submit,this.onClickSubmit,this);this.init();this.getLayout().getRegion("center").showPanel(0);this.addKeyListener([10,13],this.onClickSubmit,this);};Ext.extend(SYNOFILESTATION_LOGINDIALOG,Ext.LayoutDialog,{form:null,messageContainer:Ext.id(),text_field_username:null,text_field_password:null,photo_url:null,init:function(){var _2=Ext.id();var _3=String.format("<div style=\"margin:20px; font-size:12px;\" id=\"{0}\">{1}</div><div style=\"margin:20px;\" id=\"{2}\"></div>",this.messageContainer,g_LoginDesc,_2);var _4=this.getLayout();_4.beginUpdate();var cp=_4.add("center",new Ext.ContentPanel(Ext.id(),{autoCreate:true,title:g_Login,background:true}));_4.endUpdate();cp.setContent(_3);this.form=new Ext.form.Form({labelWidth:100,labelAlign:"right",buttonAlign:"right",trackResetOnLoad:true,el:"login_form"});this.text_field_username=new Ext.form.TextField({fieldLabel:g_LoginAccount,name:"username",allowBlank:false,width:170,validateOnBlur:true,validationEvent:"blur",el:"login_username"});this.text_field_password=new Ext.form.TextField({fieldLabel:g_LoginPasswd,name:"passwd",inputType:"password",width:170,validateOnBlur:true,validationEvent:"blur",el:"login_passwd"});this.form.column({width:300},this.text_field_username,this.text_field_password);if(!Ext.isSafari){Ext.fly("login_form").on("submit",Ext.emptyFn,this,{stopEvent:true});}Ext.fly("login_form").appendTo(_2);this.form.render(_2);this.on("show",function(_6){_6.text_field_username.focus();});var el;this.form.on("actioncomplete",function(_8,_9){if(_9.result.success=="login_error"){el=Ext.get(this.messageContainer);el.dom.innerHTML="<font size='+1'>"+g_WelcomeMsg+"</br></font>"+"<font color='#FF0000'>"+g_LoginError+"</font><br>"+g_LoginDesc;}else{if(_9.result.success=="disable_account"){el=Ext.get(this.messageContainer);el.dom.innerHTML="<font size='+1'>"+g_WelcomeMsg+"</br></font>"+"<font color='#FF0000'>"+g_LoginAccDis+"</font><br>"+g_LoginDesc;}else{if(_9.result.success=="error_guest"){el=Ext.get(this.messageContainer);el.dom.innerHTML="<font size='+1'>"+g_WelcomeMsg+"</br></font>"+"<font color='#FF0000'>"+g_LoginGuestErr+"</font><br>"+g_LoginDesc;}else{if(_9.result.success=="error_noprivilege"){el=Ext.get(this.messageContainer);el.dom.innerHTML="<font size='+1'>"+g_WelcomeMsg+"</br></font>"+"<font color='#FF0000'>"+g_LoginPriErr+"</font><br>"+g_LoginDesc;}else{if(_9.result.success=="error_systemfull"){el=Ext.get(this.messageContainer);el.dom.innerHTML="<font size='+1'>"+g_WelcomeMsg+"</br></font>"+"<font color='#FF0000'>"+g_LoginSysFull+"</font><br>"+g_LoginDesc;}else{this.hide();window.location="/index.cgi";}}}}}},this);},reset:function(){this.form.reset();var el=Ext.get(this.messageContainer);el.setWidth(el.getWidth());el.dom.innerHTML="<font size='+1'>"+g_WelcomeMsg+"</br></font>"+g_LoginDesc;},onClickSubmit:function(){if(this.form.isValid()){Ext.fly("login_submit").dom.click();this.form.submit({url:"login.cgi",waitTitle:g_Login,waitMsg:g_PlzWait,params:{action:"login",username:this.text_field_username.getValue(),passwd:this.text_field_password.getValue()}});}},show_dialog:function(){this.setTitle(g_LoginTitle);var _b=this.getLayout().getRegion("center");_b.panels.each(function(p){_b.unhidePanel(p);});_b.showPanel(0);this.show();}});