//显示文件列表
//Ref by JQuery,DiskCommon,ListPager

var acceptPhotoExtend = "bmp,gif,ico,jpg,jpeg,png,tif,";
var acceptMusicExtend = "mid,wma,wav,mp3,cda,";

var FileList = {
    /* 资源代码 start */
    //接口地址
    Uri : {
        GetCapacity: function(){
            return "/Ajax/GetDiskCapacity.ashx";
        },
        GetFileCount: function(){
            return "/Ajax/GetFileCountInAllSubDirectory.ashx";
        },
        GetFileList: function(){
            return "/Ajax/GetFileList.ashx";
        },
        GetTimeSliceURL:function(){
            return  "/ajax/getService.aspx?ajaxtype=getcgides&rnd=" + Math.random();
        },
        GetCGIProcessURL:function(){
            return "/ajax/getService.aspx?ajaxtype=cgiprocess&rnd=" + Math.random();//公共URL
        },
        GetFormatDirectory : function(){
            return "/Ajax/GetFormatDirectory.ashx";
        },
//        GetMMSURL:function(){
//            return "http://uc.rd139.com";//uc对应生产线上就是 http://g1.n20svrg.139.com
//        },
        GetSubmitURL:function(){
            return "/Ajax/SubmitData.ashx";
        }  
    },
    //提示语
    Messages:{
        Res_Fail                        :"下载出错",
        Res_CheckFile                   :"请选择可操作的文件",
        Res_UserSize                    :"尊敬的用户,您好!网盘文件单次打包下载限量为{size}M请您重新选择文件再下载!",
        Res_Del_Fail                    :"删除失败!",
        Res_Del_Success                 :"删除成功!",        
        CanNotMoveSysFolder             :"“{0}”是系统文件夹,不能移动!",
        ImageCanNotCopy                 :"只有图片文件才能移动到“我的相册”中!",
        MusicCanNotCopy                 :"只有音乐文件才能移动到“我的音乐”中!",
        SameDiretory                    :"您不能选择本文件夹移动到本文件夹",
        SendFiveFile                    :"一次只能发送5个文件,请取消部分文件",
        CanNotSendFolder                :"只能快递文件,暂不支持文件夹快递!",
        SendOneMMSFile                  :"通过彩信发送文件快递只能操作一个文件",
        //MoveFolderToImg_Fail            :"移动出错:不能向“我的相册”中移动文件夹",
       // MoveFolderToMusic_Fail          :"移动出错:不能向“我的音乐”中移动文件夹",
        MoveSlefFolder_Fail             :"不允许将一个目录移动到它的子目录下面!",
        HaveSameName_Fail               :"移动出错:已有同名目录/文件存在!",
        FiveMoreDir_Fail                :"最多支持5级目录,超过5级不能移动!",
        Move_Success                    :"移动成功",
        Move_Fail                       :"移动失败"
    },   
    /* 资源代码 End */

    /* 行为代码 start */
    Action: {
        alert : function(msg, action){
            Tool.FF.alert(msg, function(){
                if(action) {
                    action();
                }
            });            
        },
        resConfirmDelete:function(fileCount, folderCount)
        {
            var s = "确定要删除选定的";
            var t = " ";
            if (folderCount) {
                t += folderCount + " 个文件夹";
            }
            if (fileCount) {
                if (t != " ") {
                    t += "和 ";
                }
                t += fileCount + " 个文件";
            }
            t += "吗?删除后将无法恢复。";
            s += t;
            return s;
        }
    },
    Event: {
        //页面启动
        initial : function(){                     
            //工具栏按钮设定
            Toolbar.initial();
            FileList.Ajax.getAllDirectory();
            $.disableElement($("#aDown"));
            $.disableElement($("#aShare"));
            $.disableElement($("#aSendFile"));
            $.disableElement($("#aMove"));
            $.disableElement($("#aDel"));
            $.disableElement($("#aProperty"));
        },
        //全选的时候
        clickCheckBoxAll: function(v, count){
            FileList.Event.clickCheckBoxCommon();
        },
        //选单行的Checkbox的时候
        clickCheckBoxInRow: function(checked, cb, row){
            FileList.Render.renderCheckedRow(cb.checked, row);   
            FileList.Event.clickCheckBoxCommon();
        },
        clickCheckBoxCommon: function(){
            var allChecked = $("#tbl-fileList>tr>td").find(":checked");
            var selectCount = allChecked.length;
            
            //文件快递  
            if(selectCount > 0){
                $.enableElement($("#aDown"));
                $.enableElement($("#aMove"));
                $.enableElement($("#aDel"));
                if(selectCount == 1){
                    $.enableElement($("#aProperty"));
                }
                else {
                    $.disableElement($("#aProperty"));
                }
                
                var isbreak = false;
                allChecked.parent().parent().each(function(){
                    var type = $(this).data("data").TYPE;
                    if(type!="2"){
                        isbreak = true;
                        return false;
                    }
                });
                if(isbreak){                    
                    $.disableElement($("#aShare"));
                }
                else {
                    $.enableElement($("#aShare"));
                }                
            }
            else {
                $.disableElement($("#aDown"));
                $.disableElement($("#aShare"));
                $.disableElement($("#aMove"));
                $.disableElement($("#aDel"));
                $.disableElement($("#aProperty"));
            }
            //控制文件快递
            Toolbar.controlSendPanel({
                data: $.grep(Toolbar.getAllSelectedRow(), function(n){
                    return n.TYPE == "2";
                }),
                preValid: function(){
                    return Toolbar.getCheckFolder("count") < 1;
                }
            });
        },
        //刷新列表
        refresh: function(list, pid){
            $.disableElement($("#aDown"));
            $.disableElement($("#aShare"));
            $.disableElement($("#aSendFile"));
            $.disableElement($("#aMove"));
            $.disableElement($("#aDel"));
            $.disableElement($("#aProperty"));
            var level = window["cachePid"].length;
            if(level >= 5){
                $.disableElement($("#aCreateDoc"));
            }
            else {
                $.enableElement($("#aCreateDoc"));
            }
        }
    },
    /* 行为代码 end */
    
    /* 界面代码 start */
    Render: {
        //显示容量
        renderCapacity: function(data){
            var usagePercent = (Math.round(data.useSize * 100 / data.allSize)) ;
            var container = $("div.my-info");
            container.find("div.progress>.pg-bg").css("width", usagePercent + "%");
            container.find("div.progress>.pg-text").html(usagePercent + "%");

            container = container.find("dl>dd");                    
            $(container[0]).html(Tool.getFileSizeText(data.allSize)); //总容量
            $(container[1]).html(Tool.getFileSizeText(data.useSize)); //已 用
            $(container[2]).html(Tool.getFileSizeText(data.allSize - data.useSize)); //剩 余
            $(container[3]).html(data.dNum + "个"); //文件夹
            $(container[4]).html(data.fNum + "个"); //文 件
        },
        renderFileList: function(list){
            $.getById("cbSelectAllFile", true).checked = false;
            
            var table = $("#tbl-fileList");
            table.empty();
            
            if(list.length == 0){
                $("div.tbl-list-null").show();
            }
            else {
                $("div.tbl-list-null").hide();
                
                $.each(list, function(){
                    var tempObj = this;
                    
                    var imageCss = "";
                    var rowToolHTML = "&nbsp;<a class='fcI del' href='javascript:;'>删除</a>";
                    var isAudio = false;
                    
                    switch(this.TYPE){
                        case "1" : //文件夹
                        case "3" : //相册
                        case "4" :{//音乐
                            imageCss = "folder";   
                            rowToolHTML = "<a class='fcI open' href='javascript:;'>打开</a>&nbsp;<a class='fcI down' href='javascript:;'>下载</a>" + rowToolHTML;
                            break;
                        }
                        default : {
                            var ext = Tool.getFileExtName(this.ITEMNAME);
                            imageCss = Tool.getFileImageClass(ext);
                            if(tempObj.ISRESUME == 1) {
                                rowToolHTML = "<a class='fcI resume' href='javascript:;'>续传</a>" + rowToolHTML;
                                break;
                            }                            
                            var extType = Tool.getExtType(ext);
                            switch(extType){
                                case "pic":{
                                    rowToolHTML = "<a class='fcI preview' href='javascript:;'>预览</a>" + rowToolHTML;
                                    break;
                                }
                                case "audio":{
                                    rowToolHTML = "<a class='fcI play' href='javascript:;'>播放</a>" + rowToolHTML;
                                    //播放图标
                                    isAudio = true;
                                    break;
                                }
                                default:{
                                    rowToolHTML = "<a class='fcI down' href='javascript:;'>下载</a>" + rowToolHTML;
                                    break;
                                }
                            }
                            break;
                        }
                    }
                    if(this.ISSHARE === 0){
                        imageCss = "share";
                    }                    
                    
                    var fragment = $("                                  \
                    <tr>                                                \
                        <td class='t-check'>                            \
                            <input type='checkbox' />                   \
                            <input type='hidden' id='hid{4}' />         \
                        </td>                                           \
                        <td class='t-type'><i class='{3}'></i></td>     \
                        <td class='t-name'><a class='title'>{0}</a><span class='subFileCount' /> \
                        <p>{5}</p> \
                        </td>                                           \
                        <td class='t-date'>{1}</td>                     \
                        <td class='t-size'>{2}</td>                     \
                    </tr>".format(this.ITEMNAME
                        , this.CREATETIME || this.UPLOADTIME || ""
                        , this.ITEMSIZE==null?"":Tool.getFileSizeText(parseFloat(this.ITEMSIZE))
                        , imageCss
                        , this.ITEMID   /* hidden 的id格式为["hid" + 真实id] */
                        , rowToolHTML)
                    );
                    
                    fragment.click(function(){
                        var cb = $(this).find(":checkbox");
                        if(cb.length > 0 && !cb[0].disabled){
                            cb[0].checked = !cb[0].checked;
                            FileList.Event.clickCheckBoxInRow(cb[0].checked, cb[0], $(this));
                        }
                    });
                    //音频文件图标变换
                    if(isAudio){
                        fragment.find("td.t-type").hover(function(){
                            $(this).find("i").toggleClass(imageCss).toggleClass("mp3-hover");
                        }, function(){
                            $(this).find("i").toggleClass(imageCss).toggleClass("mp3-hover");
                        });
                        fragment.find("i").click(function(e){
                            window.top.MusicPlayer.appendSongList([{
                                FileId  :tempObj.ITEMID,
                                Name    :tempObj.ITEMNAME
                            }]);
                            e.stopPropagation();
                        });
                    }
                    
                    //点击单选框
                    var cbSingleClick = function(cb){
                        var row = $(cb).parent().parent();
                        FileList.Event.clickCheckBoxInRow(cb.checked, cb, row);
                    }
                    
                    var cbCtl = fragment.data("data", this) //缓存数据到Row
                        .find(":checkbox")
                        .click(function(e){
                            cbSingleClick(this);
                            e.stopPropagation();
                        });
                    if(this.TYPE == "3" || this.TYPE == "4"){
                        cbCtl.attr("disabled", true);
                        //隐藏删除按钮
                        fragment.find("a.del").remove();
                    }
                    if(tempObj.ISRESUME == 1){
                        cbCtl.attr("disabled", true);
                    }
                    
                    //文件名下方的anchor
                    var anchorAction = {
                        "down" : function(){
                            FileList.Ajax.download(tempObj.ITEMID, tempObj.TYPE);
                        },
                        "del"  : function(){
                            FileList.Ajax.deleteItem(tempObj.ITEMID,tempObj.TYPE);
                        },
                        "open" :  function(){
                            if(tempObj.TYPE == "3"){
                                //打开相册
                                window.location = "album.html";
                                return ;
                            }
                            if(tempObj.TYPE == "4"){
                                //打开音乐
                                window.location = "music.html";
                                return ;
                            }
                            FileList.Ajax.getFileList(tempObj.ITEMID);
                        },
                        "play" : function(){
                            window.top.MusicPlayer.appendSongList([{
                                FileId  :tempObj.ITEMID,
                                Name    :tempObj.ITEMNAME
                            }]);
                        },
                        "preview" : function(){
                            //todo 预览图片
                            var url = "http://"+window.location.host+"/html/preview.htm?fileid={0}";
                            url = url.format(tempObj.FILEGUID);
                            top._diskPreviewdWindow = top.FloatingFrame.open("图片展览", url, 560,460, true, true);
                        },
                        "resume" : function(){
                            var pid = Toolbar.getCurrentDirectoryId();
                            Tool.openUpload(0,pid,encodeURIComponent(tempObj.ITEMNAME));
                        }
                    };
                    fragment.find("td.t-name>p>a").click(function(e){
                        var source = $(this);
                        $.each(anchorAction, function(name, actFunc){
                            if(source.hasClass(name)){
                                actFunc();
                                return false;
                            }
                        });
                        e.preventDefault();
                        e.stopPropagation();
                    });
                    
                    fragment.find("td.t-name>a.title").click(function(e){
                        //执行下方的第一个行为
                        var a = $(this);
                        a.parent().find("p>a:eq(0)").click();
                        e.preventDefault();
                        e.stopPropagation();
                    });
                    
                    table.append(fragment);
                });
                
                //呈现完成后,再读取FileCount
                FileList.Ajax.getFileCount();
            }                    
        },
        renderFileCount: function(list){    
            var table = $("#tbl-fileList");
            table.find("tr").each(function(){
                var row = $(this);
                var data = row.data("data");
                if(data.TYPE == "1" || data.TYPE == "3" || data.TYPE == "4"){
                    var id = data.ITEMID;
                    var count = 0;
                    $.each(list, function(){
                        if(this.ID == id){
                            count = this.fCount;
                            return false;
                        }
                    });
                    row.find("span.subFileCount").html("(" + count + ")");
                }
                else {
                    return false;
                }
            });
        },
        renderCheckedRow: function(checked, row){
            if(!row.find("td>:checkbox").attr("disabled")){
                if(checked){
                    if(!row.hasClass("t-checked")){
                        row.addClass("t-checked");
                    }
                }
                else {
                    if(row.hasClass("t-checked")){
                       row.removeClass("t-checked");
                    }  
                }                
            }            
        }
    },    
    /* 界面代码 end */
    /* 通讯代码 start */
    Ajax:{
        getUserInfo: function(){
            if(!window["cacheUid"]){
                window["cacheUid"] = Utils.queryString("sid", window.parent.location.href)
            }
            return window["cacheUid"];
        },
        getUserServerIP:function(){
            return window.parent.DiskMainData.UserServerIP;
        },
        getUserNumber:function(){
            return window.parent.DiskMainData.UserNumber;
        },
        //获取容量信息
        getCapacity: function(){
            $.postXml({
                url : FileList.Uri.GetCapacity(),
                data: XmlUtility.parseFromJson({
                    name : FileList.Ajax.getUserInfo()
                }),
                success: function(result){                    
                    if(result.resultCode == 0){
                        FileList.Render.renderCapacity(result.resultData);
                    }
                    else {
                        //服务器抛出异常
                        FileList.Action.alert(result.errorMsg);
                    }
                },
                error: function(error){
                    Tool.handleError(error);
                }
            });
        },
        //获取文件列表
        getFileList: function(pid, pageIndex, clearFileCountCache){
            if(!window["cachePid"]){
                window["cachePid"] = [];
            }            
            if(pid == null || window["cachePid"][window["cachePid"].length - 1] != pid){
                window["cachePid"].push(pid);
            }
            
            if(!pageIndex) {
                pageIndex = 0;
            }
            //控制上一级
            if(cachePid.length <= 1){
                $("#aPreDocument").parent().hide();
            }
            else{
                $("#aPreDocument").parent().show();
            }
            var data = {
                name : FileList.Ajax.getUserInfo(),
                clear: (clearFileCountCache==null?false:true)
            };
            if(pid){
                data.pid = pid;
            }
            $.postXml({
                url : FileList.Uri.GetFileList(),
                data: XmlUtility.parseFromJson(data),
                success: function(result){                
                    FileList.Event.refresh(result.resultData.Rows);
                    //处理正确信息                  
                    if(result.resultCode == 0){
                        //呈现分页器
                        var pageCount = Math.ceil(result.resultData.Rows.length / ListPager.Filter.pageSize);
                        ListPager.Render.renderPager(pageCount, pageIndex);
                        ListPager.Filter.setData(result.resultData.Rows);
                        ListPager.Render.renderList(ListPager.Filter.getData());
                    }
                    else {
                        //服务器抛出异常
                        FileList.Action.alert(result.errorMsg);
                    }
                },
                error: function(error){
                    Tool.handleError(error);
                }
            });
        },
        //统计文件夹文件数量
        getFileCount: function(){
            $.postXml({
                url : FileList.Uri.GetFileCount(),
                data: XmlUtility.parseFromJson({
                    name : FileList.Ajax.getUserInfo()
                }),
                success: function(result){                
                    //处理正确信息                  
                    if(result.resultCode == 0){
                        FileList.Render.renderFileCount(result.resultData.Rows);
                    }
                    else {
                        //服务器抛出异常
                        FileList.Action.alert(result.errorMsg);
                    }
                },
                error: function(error){
                    Tool.handleError(error);
                }
            });
        },
         getajax:function(url){
              var result="";
                try{
                    result = $.ajax({ url: url, async: false }).responseText;
                }
                catch(e) {
                    result = "";
                 }
                return result;
        },
        //下载  文件夹2,文件1
        download:function(itemID,type){
            var selectCount=0;var fileList='';var folderList='';                       
            
            addDiskBehavior(7002, 25, 20);
            if(itemID==undefined)//点击列表头操作按钮
            {
                selectCount = Toolbar.getAllSelectedRow().length;
                folderList = Toolbar.getCheckFolder();
                fileList = Toolbar.getCheckFile();
            }
            else
            {
                selectCount=1;
                if(type=="2")
                    fileList=itemID;
                else
                    folderList=itemID;
            }
            if (selectCount) {  
                  var downcgiurl = "/ajax/getService.aspx?ajaxtype=getdowncgiurl&sid="+FileList.Ajax.getUserInfo()+"&cgiip="+FileList.Ajax.getUserServerIP()+"&fileid="+ fileList +"&folderid="+ folderList +"&rnd=" + Math.random();
                  downcgiurl= downcgiurl;
                  var result =FileList.Ajax.getajax(downcgiurl);
                  var msg="";
                  if(result.length<10)
                        msg=FileList.Messages.Res_Fail;
                    
                  //0:失败   1成功:返回下载请求的CGI  2用户SESSION不正确   3参数不正确  4返回用户单次下载量(网盘文件单次打包下载量不够)
//                  switch(result)
//                  {                    
//                    case "2":msg=FileList.Messages.Res_Fail;break;
//                    case "3":msg=FileList.Messages.Res_Fail;break;
//                    case "4":msg=FileList.Messages.Res_Fail;break;
//                    default :break;
//                  }
                  if(msg.length==0){
                     $("#iframecgi").attr("src",result);
                     addDiskBehavior(13,11, 10, null, selectCount);
                  }
                  else{
                    Tool.FF.alert(msg);
                  }
            }
            else {
                return false;
            }
        },      
       
        deleteItem:function(itemID,type){
            var selectCount=0;var fileList='';var folderList='';var filecount;var foldercount;
            if(itemID==undefined){//点击列表头操作按钮
                filecount=Toolbar.getCheckFile('count');
                foldercount=Toolbar.getCheckFolder('count');
                folderList = Toolbar.getCheckFolder();
                fileList = Toolbar.getCheckFile();
            }
            else{
                if(type=="2"){
                    fileList=itemID;
                    filecount=1;
                }
                else{
                    folderList=itemID;
                    foldercount=1;
                }
            }
            if (filecount||foldercount) {               
                var deleteMsg=FileList.Action.resConfirmDelete(filecount,foldercount);                
                Tool.FF.confirm(deleteMsg, function() {
                    var deleteurl = "/ajax/getService.aspx?ajaxtype=deleteitem&sid="+FileList.Ajax.getUserInfo()+"&cgiip="+FileList.Ajax.getUserServerIP()+"&fileid="+ fileList +"&folderid="+ folderList +"&rnd=" + Math.random();
                    var result =FileList.Ajax.getajax(deleteurl);
                    if(result=="1"){
                        Tool.getDiskWindow().Toolbar.refreshList();
//                        Tool.FF.alert(FileList.Messages.Res_Del_Success, function(){
//                            
//                        });                        
                    }   
                    else{
                        Tool.FF.alert(FileList.Messages.Res_Del_Fail);
                    }
                });
            }
            else
                return false;
        },       
        getAllDirectory:function(){
             $.postXml({
                url : FileList.Uri.GetFormatDirectory(),
                data: XmlUtility.parseFromJson({
                    name    : FileList.Ajax.getUserInfo(),
                    include :true
                }),
                success: function(result){
                    if(result.resultCode == 0){
                        var select = $("#limove .drop-menu");
                        select.empty();
                        var selectedIndex = -1;
                        var pid = Utils.queryString("pid", window.location.href);                        
                        if(pid == null || pid == ""){
                            selectedIndex = 0;
                        }
                        $.each(result.resultData, function(index, n){
                        
                            var liHtml=$("<li><a href=\"javascript:;\">{0}</a></li>".format(n.FullName));                            
                            var a = liHtml.find("a");                        
                            a.click(function(e){
                                FileList.Ajax.move(n.Id,n.FullName);                               
                            });                           
                            select.append(liHtml);
                        });                        
                    }
                    else {
                        //服务器抛出异常
                        Tool.FF.alert(result.errorMsg);
                    }
                },
                error: function(error){
                    Tool.handleError(error);
                }
            });
        },
        checkMove:function(fileId,folderId,extList,dirID,dirName){
            var msg="";
            var rootDirID = Toolbar.getCurrentDirectoryId();
            var selectedRow = Toolbar.getAllSelectedRow();
            if(selectedRow.length){     
                if(rootDirID==undefined&&dirName=="/我的文件夹")
                    return FileList.Messages.SameDiretory;
                if(rootDirID!=undefined&&rootDirID==dirID)  
                    return FileList.Messages.SameDiretory;
                if(folderId!=null&&folderId!=""&&folderId==dirID)                   
                    return FileList.Messages.SameDiretory;
                $.each(selectedRow,function(){
                    if(this.TYPE=="2"){
                        fileId=this.ITEMID+",";
                    }
                    if(this.TYPE=="1"){
                        if(this.ITEMNAME=="我的相册"||this.ITEMNAME=="我的音乐"){            
                            msg= FileList.Messages.CanNotMoveSysFolder.replace("{0}",this.ITEMNAME);
                            return false;                            
                        }
                    }
                });
                if(msg ){return msg;}
             }   
             if(dirName.indexOf("/我的文件夹/我的相册")!=-1&&$.trim(extList).length==0){
                return FileList.Messages.ImageCanNotCopy;
             }
             if(dirName.indexOf("/我的文件夹/我的音乐")!=-1&&$.trim(extList).length==0)
             {
                return FileList.Messages.MusicCanNotCopy;
             }
             if($.trim(fileId).length==0&&$.trim(folderId).length==0)
               return FileList.Messages.Res_CheckFile;
             if($.trim(extList).length>0){
                var arrExt=extList.split(",");
                $.each(arrExt,function(){   
                    var filetype=Tool.getExtType(arrExt[0]);              
                    if(dirName=="/我的文件夹/我的相册"&&filetype!="pic"){
                        msg= FileList.Messages.ImageCanNotCopy;
                        return false;         
                    }
                    if(dirName=="/我的文件夹/我的音乐"&&filetype!="audio"){
                        msg= FileList.Messages.MusicCanNotCopy;
                        return false;     
                    }
                });
                 if(msg ){return msg;}
             }
             
             return null;                
        },
        move:function(dirID,dirName){
            //$.disableElement($("#aMove"));            
            var fileId= Toolbar.getCheckFile();
            var folderId= Toolbar.getCheckFolder();
            var extList=Toolbar.getCheckExt();  
            var msg= FileList.Ajax.checkMove(fileId,folderId,extList,dirID,dirName)          
            if(msg){            
                Tool.FF.alert(msg);
                return;
            }
            $.postXml({
                url : FileList.Uri.GetSubmitURL(),
                data: XmlUtility.parseFromJson({
                    ajaxAct : "movefile",
                    sid     : FileList.Ajax.getUserInfo(),                    
                    fileID  : fileId,
                    folderID: folderId,
                    extList : extList,
                    dirID   : dirID,
                    dirName : dirName
                }),
                success: function(result){                
                    if(result.resultCode == 0){
                        var invalidMsg = "";
                        var code = result.resultData;
                        switch(code){
                            //成功
                            case '1' : { break; }
                            case '8':{ invalidMsg = FileList.Messages.ImageCanNotCopy; break; }
                            case '9':{ invalidMsg = FileList.Messages.MusicCanNotCopy; break; }
                            case '10':{ invalidMsg = FileList.Messages.MoveSlefFolder_Fail; break; }
                            case '11':{ invalidMsg = FileList.Messages.HaveSameName_Fail; break; }
                            case '12':{ invalidMsg = FileList.Messages.FiveMoreDir_Fail; break; }
                            //空号码
                            default: { invalidMsg = FileList.Messages.Move_Fail; break; }
                        }
                        if(invalidMsg != ""){
                            Tool.FF.alert(invalidMsg);                           
                        }
                        else {
                            Tool.FF.alert(FileList.Messages.Move_Success);                           
                            //刷新页面
                            Tool.getDiskWindow().Toolbar.refreshList();
                        }
                    }
                    else {
                        //服务器抛出异常
                        Tool.FF.alert(result.errorMsg);
                    }
                },
                error: function(error){
                    Tool.handleError(error);
                }
            });
        }
    }
    /* 通讯代码 end */  
};

$(function(){
    //设置分页器属性
    ListPager.pageChanged = function(){
        FileList.Event.refresh();
    };
    ListPager.Filter.pageSize = 100;
    ListPager.Filter.sortData = function(field, initialIsAsc){
        var isAsc = false;
        if(ListPager.Filter.order == field){
            isAsc = !ListPager.Filter.isAsc;
        }
        else {
            ListPager.Filter.order = field;
            isAsc = initialIsAsc;
        }
        ListPager.Filter.isAsc = isAsc;
        var data = ListPager.Filter.getAllData();
        
        if(data != null && data.length > 0){
            data.sort(function(x, y){
                //文件夹永远放在前面
                if(x.TYPE != y.TYPE){
                    if(x.TYPE == "2"){
                        return 1;
                    }
                    else if(y.TYPE == "2"){
                        return -1;
                    }
                    
                    if(x.TYPE == "1"){
                        return 1;
                    }
                    else if(y.TYPE == "1"){
                        return -1;
                    }
                    
                    return x.TYPE=="4"?-1:1;
                }
                var compareVal = 0;
                switch(ListPager.Filter.order){
                    //名称
                    case "name":{
                        compareVal = x.ITEMNAME.localeCompare(y.ITEMNAME);
                        break;
                    }
                    //类型
                    case "type":{
                        if(x.TYPE == "1" || x.TYPE == "3" || x.TYPE == "4"){
                            compareVal = 0;
                        }
                        else {
                            compareVal = Tool.getFileImageClass(Tool.getFileExtName(x.ITEMNAME))
                                .localeCompare(Tool.getFileImageClass(Tool.getFileExtName(y.ITEMNAME)));
                        }
                        break;
                    }
                    //时间
                    case "date":{
                        if(x.TYPE == "1"){
                            compareVal = x.CREATETIME.localeCompare(y.CREATETIME);
                        }
                        else {
                            compareVal = x.UPLOADTIME.localeCompare(y.UPLOADTIME);
                        }
                        break;
                    }
                    //大小
                    case "size":{
                        if(x.TYPE == "1" || x.TYPE == "3" || x.TYPE == "4"){
                            compareVal = 0;
                        }
                        else {
                            compareVal = x.ITEMSIZE - y.ITEMSIZE;
                        }
                        break;
                    }
                }
                compareVal = compareVal * (isAsc?1:-1);
                return compareVal;
            });
        }            
    };
    ListPager.Render.renderList = FileList.Render.renderFileList;
})

//-------Tool bar
var Toolbar = $.extend({
    initial: function(){
        //Id跟函数之间的映射
        var map = {
            "aPreDocument"  : "backToUp",
            "aUpload"       : "upload",
            "aDown"         : "down",
            "aCreateDoc"    : "createDoc",
            "aShare"        : "share",
            "aDel"          : "delDocAndFile",
            "aProperty"     : "showProperty",
            "aSendFile"     : "showSendFileUL",
            "aMove"         : "showMoveUL",
            "aEmail"        : "sendEmail",
            "aWap"          : "sendMobile",
            "aMMS"          : "sendMMS"
        };   
//        测试接口        
//        result = $.ajax({ url: "/ajax/GetFileDetail.aspx?sid="+FileList.Ajax.getUserInfo()+"&fileid="+Toolbar.getCheckFile(), async: false }).responseText;
//        alert(result);
//        return;     
       
        Tool.registerAnchor(map, function(val){
            return Toolbar[val];
        });
        
        $("#lisendfile>*").hover(function(e){
            //if(e.target.tagName != "A"){              
                $("#lisendfile .drop-menu").show();
            //}
        }, function(e){
            $("#lisendfile .drop-menu").hide();
        });
        
        $("#limove>*").hover(function(e){
            //if(e.target.tagName != "A"){               
                $("#lisendfile .drop-menu").hide();
                $("#limove .drop-menu").show();
            //}
        }, function(e){
            $("#limove .drop-menu").hide();
        });
        
    },
    showDiv:function(obj) {
        if($(obj).css("display")=="none")      
            $(obj).show();
        else
            $(obj).hide();
    },    
    //移动
    showMoveUL:function(){
        Toolbar.showDiv($("#limove .drop-menu"));
        $("#lisendfile .drop-menu").css("display","none");
    },
    //文件快递
    showSendFileUL:function(){
        Toolbar.showDiv($("#lisendfile .drop-menu"));
        $("#limove .drop-menu").hide();
    },
    sendEmail:function(){        
        var fileId=Toolbar.getCheckFile();
        var count=Toolbar.getCheckFile("count");
        var foldercount=Toolbar.getCheckFolder();
        if(count>5){
            Tool.FF.alert(FileList.Messages.SendFiveFile);
            return;
        }
        if(foldercount>0)
        {
            Tool.FF.alert(FileList.Messages.CanNotSendFolder);
            return;
        }
        if($.trim(fileId))
        {
            addDiskBehavior(7006, 11, 20);
            top.Links.show("quicklyShare","&type=email&fileId="+fileId);
        }
        else
            return;
    },
    sendMobile:function(){
        
        var fileId=Toolbar.getCheckFile();
        if($.trim(fileId))
        {
            addDiskBehavior(7007, 11, 20);
            top.Links.show("quicklyShare","&type=mobile&fileId="+fileId);
        }
        else
            return;
    },
    sendMMS:function(){           
        var list = Toolbar.getAllSelectedRow();
        if(list.length==1)
        {
            addDiskBehavior(7008, 11, 20);
            var itemid = list[0].ITEMID;
            var itemname = list[0].ITEMNAME;
            var ext = Tool.getFileExtName(itemname);
            var extType = Toolbar.getExtTypeBySend(ext);
            var url="";
            var downcgiurl = "/ajax/getService.aspx?ajaxtype=getdowncgiurl&sid="+FileList.Ajax.getUserInfo()+"&cgiip="+FileList.Ajax.getUserServerIP()+"&fileid="+ itemid +"&rnd=" + Math.random();
            var filepath = FileList.Ajax.getajax(downcgiurl);
            filepath = escape(filepath);
            if(filepath.length>20)
            {
                //图片\音乐\文本
                switch(extType)
                {            
                    case "audio":url="&musicpath="+filepath+"&ext="+ext; break;
                    case "pic":url="&imagepath="+filepath+"&ext="+ext;break;
                    case "office":url="&textpath="+filepath+"&ext="+ext;break;
                }
                //打开标签                
                top.Links.show("mms",url);
            }
        }
        else {
            Tool.FF.alert(FileList.Messages.SendOneMMSFile);
        }
    },       
    //返回上一层目录
    backToUp : function(){
        var cachePid = window["cachePid"];
        cachePid.pop();
        FileList.Ajax.getFileList(cachePid.pop());
    },
    //上传
    upload : function(){
        //如果为空,则为根目录Id,0首页,1相册,2音乐.
        var pid = Toolbar.getCurrentDirectoryId();
        Tool.openUpload(0,pid);
    },
    //下载
    down : function(){
        FileList.Ajax.download();
    },
    //新增文件夹
    createDoc: function(){
        var pid = Toolbar.getCurrentDirectoryId();
        var url = Toolbar.getDiskHost("html/DialogCreateDocument.htm?sid=" + FileList.Ajax.getUserInfo());
        if(pid != null){
            url += "&pid=" + pid;
        }
        /* FF.open参数
         title  :标题
         src    :页面路径
         width  :宽度
         height :高度                             
         fixSize:是否固定
         */                                                   
        window.Tool.FF.open("新增文件夹", url, 450, 150, true);
    },
    //共享
    share: function(){
        var selectedRow = Toolbar.getAllSelectedRow();
        var count = selectedRow.length;
        if(count)    
        {
            addDiskBehavior(14, 11, 10,null,count);
            var urlshare = Toolbar.getDiskHost("html/DialogShareFile.htm");
            Tool.FF.open("好友共享", urlshare, 530, 287, true);
        }
        else
            return;
    },
    //删除文件夹和文件
    delDocAndFile: function(){
        FileList.Ajax.deleteItem();
    },
    //属性和重命名
    showProperty: function(){
        var selectedRow = Toolbar.getAllSelectedRow();
        var count = selectedRow.length;
        if(count == 0){
            Tool.FF.alert("请选择一个文件或文件夹");
        }
        else if(count > 1){
            Tool.FF.alert("只能选择一个文件或文件夹");
        }
        else {
            var data = selectedRow[0];
            if(data.TYPE == "1"){
                //文件夹
                var url = Toolbar.getDiskHost("html/DialogDocProperty.htm?sid=" + FileList.Ajax.getUserInfo());
                url += "&id=" + data.ITEMID;
                window.Tool.FF.open("文件夹属性", url, 450, 280, true);
            }
            else {
                //文件
                var url = Toolbar.getDiskHost("html/DialogFileProperty.htm?sid=" + FileList.Ajax.getUserInfo());
                url += "&id=" + data.ITEMID;
                window.Tool.FF.open("文件属性", url, 450, 280, true);
            }
        }
    },
    //获取选中的文件ID或者文件个数
    getCheckFile:function(tag){
        var fileId="";
        var selectedRow = Toolbar.getAllSelectedRow();
        var filecount = 0;
        if(selectedRow.length)    
        {           
            $.each(selectedRow,function(){
                if(this.TYPE=="2")
                {
                    fileId+=this.ITEMID+",";
                    filecount++;
                }
            });
         }
         fileId=fileId.length>0?fileId.substring(0,fileId.length-1):"";
         if(tag=="count")
            return filecount;
         else
            return fileId;
    },
    //获取选中的文件夹ID或者文件夹个数
    getCheckFolder:function(tag){
        var folderId="";
        var selectedRow = Toolbar.getAllSelectedRow();
        var foldercount=0;
        if(selectedRow.length)    
        {           
            $.each(selectedRow,function(){
                if(this.TYPE=="1")
                {
                    folderId+=this.ITEMID+",";
                    foldercount++
                }
            });
         }
         folderId=folderId.length>0?folderId.substring(0,folderId.length-1):"";
         if(tag=="count")
            return foldercount;
         else
            return folderId;
    },
    getCheckExt:function(){
        var extList="";
        var selectedRow = Toolbar.getAllSelectedRow();
        if(selectedRow.length)    
        {           
            $.each(selectedRow,function(){
                if(this.TYPE=="2")
                {
                    var ext = Tool.getFileExtName(this.ITEMNAME);
                    extList+=ext+",";
                }
            });
         }
         extList=extList.length>0?extList.substring(0,extList.length-1):"";
         return extList;
    },
    refreshList : function(pid){
        
        if(!pid){
            pid = window["cachePid"].pop();
        }
        //刷新本页面
        ListPager.Render.initialPager();
        FileList.Ajax.getCapacity();
        FileList.Ajax.getAllDirectory();
        FileList.Ajax.getFileList(pid, ListPager.Filter.pageIndex, true);
    }  
}, Tool.Toolbar);