/*
===================================================================
Copyright DHTMLX LTD. http://www.dhtmlx.com
This code is obfuscated and not allowed for any purposes except 
using on sites which belongs to DHTMLX LTD.

Please contact sales@dhtmlx.com to obtain necessary 
license for usage of dhtmlx components.
===================================================================
*/function dhxCMDObject(){var that=this;this._server=dhxCMDConfig["server"];this._sep=dhxCMDConfig["sep"];this._perms={};for(var a in dhxCMDPerms){this._perms[a]=dhxCMDPerms[a];}this._pane={};this._path={0:this._sep,1:this._sep};this._toSelect={0:null,1:null};this._oldPos={0:null,1:null};this._activePane=0;this._bars={};this._status={};this.skin="dhx_skyblue";this._txtColorNormal="#000000";this._txtColorSelected="#DF0000";this._onInsMoveDown=true;this.init=function(){this.dhxLayout=new dhtmlXLayoutObject(document.body,"2U",this.skin);for(var q=0;q<2;q++){this.dhxLayout.items[q].setText(this._path[q]);this._bars[q]=this.dhxLayout.items[q].attachToolbar();this._bars[q].setIconsPath("imgs/toolbar/dhx/");this._bars[q]._pane=q;this._bars[q].attachEvent("onClick",function(id){that._doOnBarClick(this._pane,id);});this._bars[q].loadXML("xml/toolbar_dhx.xml?etc="+new Date().getTime());this._status[q]=this.dhxLayout.items[q].attachStatusBar();this._pane[q]=this.dhxLayout.items[q].attachGrid();this._pane[q]._pane=q;this._pane[q]._loaded=false;this._pane[q].setSkin(this.skin);this._pane[q].ah(false);this._pane[q].setImagePath("../../dhtmlx/dhtmlxGrid/codebase/imgs/");this._pane[q].attachEvent("onXLE",function(){that._loadContent(this._pane);});this._pane[q].loadXML("xml/dhtmlxgrid.xml?etc="+new Date().getTime());this._pane[q].attachEvent("onBeforeSelect",function(){that._doOnClick(this._pane);return true;});this._pane[q].attachEvent("onRowDblClicked",function(id){that._doOnDblClick(this._pane,id);});this._pane[q].attachEvent("onKeyPress",function(code,ctrl,shift,ev){that._doOnKeyPress(this._pane,code,ctrl,shift,ev);});this._pane[q].attachEvent("onSelectStateChanged",function(id){that._doOnSelectionChanged(this._pane,id);});}this.wins=new dhtmlXWindows();this.wins.setSkin(this.skin);this.wins.setImagePath("../../dhtmlx/dhtmlxWindows/codebase/imgs/");};this._loadContent=function(pane,folderId,x){if(this._pane[pane]._loaded==true)return;var folder=(folderId!=null?folderId:this._pane[pane].getUserData("","parent"));this._pane[pane]._loaded=true;this._pane[pane].clearAll();this._pane[pane].loadXML(this._server+"?action=readFolder&folder="+folder+"&etc="+new Date().getTime(),function(){if(pane==that._activePane){var ind=0;if(that._toSelect[pane]!=null){that._pane[pane].forEachRow(function(rowId){var name=that._pane[pane].cells(rowId,1).getValue();var ext=that._pane[pane].cells(rowId,2).getValue();if(ext.length>0){name+="."+ext;}if(name==that._toSelect[pane]){ind=that._pane[pane].getRowIndex(rowId);}});}that._pane[pane].selectRow(ind);}that._updateStatus(pane);});this.dhxLayout.items[pane].setText(this._path[pane]);if(that._pane[pane].getSelectedRowId()==null){that._doBarManage(pane,{"foldercreate":that._perms["foldercreate"],"folderremove":false,"folderdetails":false,"foldercopy":false,"foldermove":false,"fileupload":that._perms["fileupload"],"filedownload":false,"filedownloadbzipped":false,"fileremove":false,"filecopy":false,"filemove":false});}};this._updateStatus=function(pane){var files=0;var folders=0;this._pane[pane].forEachRow(function(id){var tp=that._pane[pane].getUserData(id,"type");var par=that._pane[pane].getUserData(id,"target");if(par!="parent"){if(tp.search(/folder/i)!= -1){folders++;}if(tp.search(/file/i)!= -1){files++;}}});this._status[pane].setText("Folders: "+folders+" / Files: "+files);};this._doOnClick=function(pane){this._pane[1-pane].clearSelection();this._activePane=pane;};this._doOnDblClick=function(pane,id){var tp="tp";var tp=this._pane[pane].getUserData(id,"type");var target=this._pane[pane].getUserData(id,"target");if(tp=="folder"){var path=(target=="parent"?this._levelMinus(pane):this._path[pane]+this._pane[pane].cells(id,1).getValue()+this._sep);if(path!=null){this._path[pane]=path;this._pane[pane]._loaded=false;this._loadContent(pane,id);}}};this._levelMinus=function(pane){var p=this._path[pane].split(this._sep);var path=null;if(p.length>2){path="";for(var q=0;q<p.length-2;q++){path+=p[q]+this._sep;}}this._toSelect[pane]=(p.length>2?p[p.length-2]:null);return path;};this._selectionManager=function(pane,id,state){this._pane[pane].setRowTextStyle(id,"color:"+(state==true?this._txtColorSelected:this._txtColorNormal)+";");this._pane[pane].setUserData(id,"selected",(state==true?"yes":"no"));if(this._onInsMoveDown==true){this._moveCursorDown(pane);}};this._moveCursorUp=function(pane){var ind=this._pane[pane].getRowIndex(this._pane[pane].getSelectedRowId());if(ind>0){this._pane[pane].selectRow(ind-1);var newId=this._pane[pane].getRowId(ind+1);if(newId!=null)this._pane[pane].showRow(newId);}};this._moveCursorDown=function(pane){var ind=this._pane[pane].getRowIndex(this._pane[pane].getSelectedRowId());if(this._pane[pane].getRowId(ind+1)!=null){this._pane[pane].selectRow(ind+1);var newId=this._pane[pane].getRowId(ind+1);if(newId!=null)this._pane[pane].showRow(newId);}};this._doOnSelectionChanged=function(pane,id){var tar=this._pane[pane].getUserData(id,"target");if(tar=="parent"){this._doBarManage(pane,{"foldercreate":this._perms["foldercreate"],"folderremove":false,"folderdetails":false,"foldercopy":false,"foldermove":false,"fileupload":this._perms["fileupload"],"filedownload":false,"filedownloadbzipped":false,"fileremove":false,"filecopy":false,"filemove":false});}else{var tp=this._pane[pane].getUserData(id,"type");if(tp=="folder"){this._doBarManage(pane,{"foldercreate":this._perms["foldercreate"],"folderremove":this._perms["folderremove"],"folderdetails":this._perms["folderdetails"],"foldercopy":this._perms["foldercopy"],"foldermove":this._perms["foldermove"],"fileupload":this._perms["fileupload"],"filedownload":false,"filedownloadbzipped":false,"fileremove":false,"filecopy":false,"filemove":false});}if(tp=="file"){this._doBarManage(pane,{"foldercreate":this._perms["foldercreate"],"folderremove":false,"folderdetails":false,"foldercopy":false,"foldermove":false,"fileupload":this._perms["fileupload"],"filedownload":this._perms["filedownload"],"filedownloadbzipped":this._perms["filedownloadbzipped"],"fileremove":this._perms["fileremove"],"filecopy":this._perms["filecopy"],"filemove":this._perms["filemove"]});}}this._doBarManage(1-pane,{"foldercreate":this._perms["foldercreate"],"folderremove":false,"folderdetails":false,"foldercopy":false,"foldermove":false,"fileupload":this._perms["fileupload"],"filedownload":false,"filedownloadbzipped":false,"fileremove":false,"filecopy":false,"filemove":false});};this._doBarManage=function(pane,items){for(var id in items){if(items[id]==true){this._bars[pane].ag(id);}else{this._bars[pane].disableItem(id);}}};this._doOnBarClick=function(pane,id){if(!this._perms[id]){alert("Not Allowed in Demo");return;}switch(id){case "foldercreate":this._doCreateFolder(pane,id);break;case "folderremove":this._doRemoveFile(pane,true);break;case "folderdetails":this._doFolderDetails(pane,id);break;case "foldercopy":this._doCopyFile(pane,false,true);break;case "foldermove":this._doCopyFile(pane,true,true);break;case "fileupload":this._doUploadFile(pane,id);break;case "filedownload":this._doDownloadFile(pane,false);break;case "filedownloadbzipped":this._doDownloadFile(pane,true);break;case "fileremove":this._doRemoveFile(pane,false);break;case "filecopy":this._doCopyFile(pane,false,false);break;case "filemove":this._doCopyFile(pane,true,false);break;}};this._doOnKeyPress=function(pane,code,ctrl,shift,ev){if(pane!=this._activePane)return;if(!this._pane[pane]._loaded)return;switch(code){case 38:this._moveCursorUp(pane);break;case 40:this._moveCursorDown(pane);break;case 13:this._doOnDblClick(pane,this._pane[pane].getSelectedRowId());break;case 36:if(this._pane[pane].getRowId(0)!=null){this._pane[pane].selectRow(0);this._pane[pane].showRow(this._pane[pane].getRowId(0));}break;case 35:var rowsNum=this._pane[pane].getRowsNum();if(rowsNum>0){this._pane[pane].selectRow(rowsNum-1);this._pane[pane].showRow(this._pane[pane].getRowId(rowsNum-1));}break;case 9:var newPane=1-pane;this._oldPos[pane]=this._pane[pane].getRowIndex(this._pane[pane].getSelectedRowId());this._pane[pane].clearSelection();this._pane[newPane].selectRow(this._oldPos[newPane]!=null?this._oldPos[newPane]:0);ev.returnValue=false;ev.cancelBubble=true;break;case 45:var id=this._pane[pane].getSelectedRowId();var sel=this._pane[pane].getUserData(id,"selected");this._selectionManager(pane,id,(sel!="yes"));break;}};this._xmlParser=function(){var root=this.getXMLTopNode("response");var action=root.getAttribute("action");switch(action){case "createFolder":var state=root.getAttribute("state");var pane=Number(root.getAttribute("pane"));if(state=="good"){that._reloadPane(pane,that._pane[pane].getUserData('','parent'));}else{alert("An error occured while creating folder.");}break;case "removeFile":var state=root.getAttribute("state");var pane=Number(root.getAttribute("pane"));if(state=="good"){if(root.getAttribute("path2")!="ignore")that._reloadAll=true;that._reloadPane(pane);}else{alert("An error occured while removing file.");}break;case "copyFile":var state=root.getAttribute("state");var pane=Number(root.getAttribute("pane"));var isMove=root.getAttribute("isMove");if(state=="good"){that._reloadPane(1-pane);if(isMove=="yes"){that._reloadPane(pane);}}else{alert("An error occured while "+(isMove=="yes"?"moving":"copying")+" file.");}break;case "folderDetails":var files=root.getAttribute("files");var folders=root.getAttribute("folders");var size=root.getAttribute("size");document.getElementById("dhxwin_folderdetails_content").innerHTML="Files: "+files+", Folders: "+folders;document.getElementById("dhxwin_folderdetails_size").innerHTML=size;that.wins.window("dhxwin_folderdetails").progressOff();break;}this.destructor();};this._reloadPane=function(pane,folderId){if(this._reloadAll==true){this._path[1-pane]=this._path[pane];if(!folderId)folderId=this._pane[pane].getUserData("","parent");this._reloadAll=false;}this._pane[pane]._loaded=false;this._loadContent(pane,folderId);if(this._path[pane]==this._path[1-pane]){this._pane[1-pane]._loaded=false;this._loadContent(1-pane,folderId);}};this._doCreateFolder=function(pane,id){var w1="dhxwin_"+id;this._doShowWindow(w1,"Create Folder");document.getElementById(w1+"_input").value="";document.getElementById(w1+"_input").focus();document.getElementById(w1+"_pane").value=pane;};this._doUploadFile=function(pane,id){var w1="dhxwin_"+id;this._doShowWindow(w1,"Upload File");document.getElementById(w1+"_pane").value=pane;document.getElementById(w1+"_path").value=this._pane[pane].getUserData("","parent");document.getElementById(w1+"_file").value="";};this._doFolderDetails=function(pane,id){var w1="dhxwin_"+id;var name=this._pane[pane].cells(this._pane[pane].getSelectedRowId(),1).getValue();document.getElementById(w1+"_name").value=name;document.getElementById(w1+"_content").innerHTML="Files: 0, Folders: 0";document.getElementById(w1+"_size").innerHTML="0 b";this._doShowWindow(w1,"Folder Details");this.wins.window(w1).progressOn();var xmlLoader=new dtmlXMLLoaderObject(this._xmlParser,window);xmlLoader.loadXML(this._server+"?action=folderDetails&path="+this._pane[pane].getSelectedRowId()+"&etc="+new Date().getTime());};this._doShowWindow=function(w1,text,height){if(this.wins.window(w1)==null){var win=this.wins.createWindow(w1,10,10,320,200);win.setText(text);win.denyResize();win.denyPark();win.attachObject(w1,true);win.attachEvent("onClose",function(win){that._doOnCloseWindow(win);});win.button("park").hide();win.button("minmax1").hide();win.hide();}var win=this.wins.window(w1);win.show();win.center();win.setModal(true);};this._doOnCloseWindow=function(win){if(typeof(win)=="string"){win=this.wins.window(win);}win.setModal(false);win.hide();};this._doOnSubmitWindow=function(win,params,values){this._doOnCloseWindow(win);var pars=params.split("?");var vals=values.split("?");var url=this._server+"?etc="+new Date().getTime();for(var q=0;q<pars.length;q++){url+="&"+pars[q]+"="+encodeURI(vals[q]);}var xmlLoader=new dtmlXMLLoaderObject(this._xmlParser,window);xmlLoader.loadXML(url);};this._doCheckFolderName=function(name){name=name.replace(/^\s{1,}/,"").replace(/\s{1,}$/,"");if(name.length==0||name.match(/^\.{1,}$/gi))return new Array(false,"");return new Array(true,name);};this._doOnFileUploaded=function(status,pane){if(status=="good"){this._pane[pane]._loaded=false;this._loadContent(pane);if(this._path[pane]==this._path[1-pane]){this._pane[1-pane]._loaded=false;this._loadContent(1-pane);}}else{alert("An error occured while uploading file.");}};this._doDownloadFile=function(pane,bzip2){document.getElementById("downloadframe").src=this._server+"?action=downloadFile&id="+this._pane[pane].getSelectedRowId()+"&bzip2="+(bzip2?"yes":"no")+"&etc="+new Date().getTime();};this._doRemoveFile=function(pane,isFolder){var name=this._pane[pane].cells(this._pane[pane].getSelectedRowId(),1).getValue();var ext=this._pane[pane].cells(this._pane[pane].getSelectedRowId(),2).getValue();if(ext.length>0){name+="."+ext;}if(!confirm("Are you sure you want to remove \""+name+"\"?"))return;var xmlLoader=new dtmlXMLLoaderObject(this._xmlParser,window);xmlLoader.loadXML(this._server+"?action=removeFile&id="+this._pane[pane].getSelectedRowId()+"&path="+this._pane[pane].getUserData("","parent")+"&path2="+this._pane[1-pane].getUserData("","parent")+"&pane="+pane+"&isFolder="+(isFolder?"yes":"no")+"&etc="+new Date().getTime());};this._doCopyFile=function(pane,isMove,isFolder){var name=this._pane[pane].cells(this._pane[pane].getSelectedRowId(),1).getValue();var ext=this._pane[pane].cells(this._pane[pane].getSelectedRowId(),2).getValue();if(ext.length>0){name+="."+ext;}if(!confirm((isMove?"Move":"Copy")+" \""+name+"\"?")){return;}var path=encodeURI(this._pane[1-pane].getUserData("","parent"));var xmlLoader=new dtmlXMLLoaderObject(this._xmlParser,window);xmlLoader.loadXML(this._server+"?action=copyFile&id="+this._pane[pane].getSelectedRowId()+"&path="+path+"&pane="+pane+"&isMove="+(isMove?"yes":"no")+"&isFolder="+(isFolder?"yes":"no")+"&etc="+new Date().getTime());}}
