﻿//错误字符串
var errorMsg = new String();
//目录信息
var dirs =new Array ();
//文件信息
var files =new Array ();
//当前是否是详细视图
var isDetailView = true;
//当前是否是详细视图
var isLoading = false;
//当前路径
var currentPath = "/";
//搜索关键字
var filenamekey = "";
//文件信息
var fileInfo ="";
//文档管理虚拟目录
var virtualWebPath = "../";

fileInfo  = "";
fileInfo += "  <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
fileInfo += "    <tr>";
fileInfo += "      <th width=\"38%\">文件名:</th>";
fileInfo += "      <td>$name</td>";
fileInfo += "    </tr>";
fileInfo += "    <tr>";
fileInfo += "      <th>文件大小:</th>";
fileInfo += "      <td>$length</td>";
fileInfo += "    </tr>";
fileInfo += "    <tr>";
fileInfo += "      <th>文件类型:</th>";
fileInfo += "      <td>$extension</td>";
fileInfo += "    </tr>";
fileInfo += "    <tr>";
fileInfo += "      <th>创建时间:</th>";
fileInfo += "      <td>$creationTime</td>";
fileInfo += "    </tr>";
fileInfo += "    <tr>";
fileInfo += "      <th>最后修改时间:</th>";
fileInfo += "      <td>$lastWriteTime</td>";
fileInfo += "    </tr>";
fileInfo += "    <tr>";
fileInfo += "      <th>最后访问时间:</th>";
fileInfo += "      <td>$lastAccessTime</td>";
fileInfo += "    </tr>";
fileInfo += "    <tr>";
fileInfo += "      <td colspan=\"2\"><div align=\"center\"><a href=\"javascript:javascript:showFile($downindex);\"><img src=\"" + virtualWebPath + "images/download.gif\" alt=\"文件下载\" border=\"0\" /></a></div></td>";
fileInfo += "    </tr>";
fileInfo += "  </table>";

//得到指定路径的文件
function getAllFiles(path){
    //AJAX 加载文件文件夹信息
    var exConn = new XHConn();//创建Ajax
	if (!exConn){
	    alert("浏览器版本太低,推荐使用IE6.");
	}else{
	    //结束动作
		var fnDone = function (oXML){ 
			eval(oXML.responseText);
            if(errorMsg!=""){
                alert(errorMsg);
                errorMsg ="";
            }else{
                currentPath = path;
                makeFilesHtmlView();
                makeDirsHtmlView();
            }
			toggleLoading(false);
		};
		//进行动作
		var fnDoing =function (){
		    toggleLoading(true);
		}
		exConn.connect("Ajax.aspx?action=getallfiles&requestpath=" + escape(path) + "&key=" + Math.random(), "POST", "Action=get", fnDone, fnDoing);
	}
}

//得到指定路径的文件
function getFiles(path){
    var exConn = new XHConn();//创建Ajax
	if (!exConn){
	    alert("浏览器版本太低,推荐使用IE6.");
	}else{
         //结束动作
		var fnDone = function (oXML){ 
			eval(oXML.responseText);
            if(errorMsg!=""){
                alert(errorMsg);
                errorMsg ="";
            }else{
                currentPath = path;
                makeFilesHtmlView();
            }
			toggleLoading(false);
		};
		//进行动作
		var fnDoing =function (){
		    toggleLoading(true);
		}
		exConn.connect("Ajax.aspx?action=getfiles&requestpath=" + escape(path) + "&filenamekey=" +filenamekey+ "&key=" + Math.random(), "POST", "Action=get", fnDone, fnDoing);
	}
}

//得到指定路径的文件夹
function getDirs(path){
    var exConn = new XHConn();//创建Ajax
	if (!exConn){
	    alert("浏览器版本太低,推荐使用IE6.");
	}else{
	    //结束动作
		var fnDone = function (oXML){ 
			eval(oXML.responseText);
            if(errorMsg!=""){
                alert(errorMsg);
                errorMsg ="";
            }else{
                currentPath = path;
                makeDirsHtmlView();
            }
			toggleLoading(false);
		};
		//进行动作
		var fnDoing =function (){
		    toggleLoading(true);
		}
		exConn.connect("Ajax.aspx?action=getdirs&requestpath=" + escape(path) + "&key=" + Math.random(),  "POST", "Action=get", fnDone, fnDoing);
	}
}

//显示文件属性
function showFile(index){
    if(files[index]!=null)
        getDownLoad(files[index].FullName);
}

//文件详细信息
function showFileInfo(index){
    if(files[index]!=null){
        var els = $FM_SYIT("FileManagerContent_FileInfo");
        if(els != null){
            var info = new String();
            info = fileInfo;
            info = info.replace("$name", files[index].Name);
            info = info.replace("$length", files[index].Length);
            info = info.replace("$extension", files[index].Extension);
            info = info.replace("$creationTime", files[index].CreationTime.toLocaleString());
            info = info.replace("$lastWriteTime", files[index].LastWriteTime.toLocaleString());
            info = info.replace("$lastAccessTime", files[index].LastAccessTime.toLocaleString());
            info = info.replace("$downindex", index);
            
            els.innerHTML = info;
        }else{
            alert("没有找到 FileManagerContent_FileInfo DIV 显示发生错误.");
        }
     }
}

//显示文件属性
function showDir(index){
    if(dirs[index]!=null){
        getAllFiles(dirs[index].FullName);
    }
}

//跳到上级目录
function getParent(){
     getAllFiles(currentPath.substring(0,  currentPath.lastIndexOf("\\")));
}

//搜索文件名
function getSSearchFiles(){
    var key = $FM_SYIT("keys")
   
    if(key != null){
       
       filenamekey = key.value;
      
        getSRes(filenamekey);       
    }
}

function getSRes(filenamekey)
{
 var   pattern=/([!\@\#\$%^&*()+|\\{}:;?<>`])+/;   
  if((pattern.test(filenamekey)))   {   
  alert("输入含非法字符!");    
  return   false;   
  }
 else
 {
 if(filenamekey=="")
 {
  alert("请输入关键字！");
  return this;
 } 

 location.href="../ItemsIndex/ssIndex.aspx?key="+filenamekey;
 }
 
}

//搜索文件名
function getSearchFiles(){
    var key = $FM_SYIT("keys")
   
    if(key != null){
       
       filenamekey = key.value;
      
        getRes(filenamekey);       
    }
}

function getRes(filenamekey)
{
    var   pattern=/([!\@\#\$%^&*()+|\\{}:;?<>`])+/;   
  if((pattern.test(filenamekey)))   {   
  alert("输入含非法字符!");    
  return   false;   
  }
  else
  {
 if(filenamekey=="")
 {
  alert("请输入关键字！");
  return this;
 } 

 location.href="ItemsIndex/ssIndex.aspx?key="+filenamekey;
 
 }
 
}
//下载指定的文件
function getDownLoad(path){
    location.href="Ajax.aspx?action=getdown&downfile=" + escape(path) + "&key=" + Math.random();
//    if(errorMsg!=""){
//        alert(errorMsg);
//        errorMsg ="";
//    }
}

//文件试图
function makeFilesHtmlView(){
   var filesContent = $FM_SYIT("FilesContent");
   var innerHTML = "";
   if(filesContent == null){
        alert("无法找到 FilesContent DIV 页面有错误.");
        return;
    }
    //添加现在的Dirs到内部
    for(var i = 0; i < files.length; i++){
        innerHTML += "<li><span class=\"filename\"><a href=\"#\" onclick=\"javascript:showFileInfo(" + i + ");\"><span><img src=\"" + virtualWebPath + "Images/ext/" +files[i].ExtImage + ".gif\" border=\"0\" /><br /></span>" + files[i].Name + 
                    "</a></span><span class=\"filesize\">" + files[i].Length + 
                    "</span><span class=\"filetype\">" + files[i].Extension + 
                    "</span><span class=\"filedate\">" + formatDate(files[i].CreationTime) + 
                    "</span></li>";
    }
    //更新目录内容区域的innerHTML
    filesContent.innerHTML = "<ul>" + innerHTML +"</ul>";
    setClassName(filesContent, getViewClass());
}

//文件夹试图
function makeDirsHtmlView(){
   var dirsContent = $FM_SYIT("DirsContent");
   var innerHTML = "";
   if(dirsContent == null){
        alert("无法找到 DirsContent DIV 页面有错误.");
        return;
    }
    //添加现在的Dirs到内部
    for(var i = 0; i < dirs.length; i++){
        innerHTML += "<li><span class=\"filename\"><a href=\"javascript:showDir(" + i + ");\"><span><img src=\"" + virtualWebPath + "Images/ext/" + dirs[i].ExtImage + ".gif\" border=\"0\" /><br /></span>" + dirs[i].Name + 
                    "</a></span><span class=\"filedate\">" + formatDate(dirs[i].CreationTime) + 
                    "</span></li>";
    }
    //更新目录内容区域的innerHTML
    dirsContent.innerHTML = "<ul>" + innerHTML +"</ul>";
    setClassName(dirsContent, getViewClass());
}

//返回当前视图的className
function getViewClass(){
    return isDetailView? "DetailView": "BigView";
}

//设置Li ClassName
function setClassName(element, className) {
    var  divCSS= $FM_SYIT(element);
    if(divCSS != null){
        liEls=divCSS.getElementsByTagName("li");
        for (var i=0; i<liEls.length; i++){
            liEls[i].className = className;
        }
    }
}

/*交换视图*/
function toggleView(){
    isDetailView = !isDetailView;
    setClassName("DirsContent", getViewClass());
    setClassName("FilesContent", getViewClass());
}

/*交换Loading*/
function toggleLoading(loading){
    isLoading = loading;
    var divCss = $FM_SYIT("PageLoadingDiv");
    if(divCss !=null){
        !isLoading ? divCss.className = "Display" : divCss.className = "";
    }
}

//格式化日期
function formatDate(date){
    return date.getYear() + "-" + date.getMonth() + "-" + date.getDate();
}
//动态加载javascript
//From http://www.cnlei.org/blog/article.asp?id=34
//代替Ajax
function DoIncJs(sSrc){
    var oHead = document.getElementsByTagName('head')[0];
    var oScript = document.createElement('script');
    oScript.type = "text/javascript";
    oScript.src = sSrc;
    oHead.appendChild(oScript);
}
//FROM Prototype JavaScript framework, version 1.4.0
function $FM_SYIT() {
    var elements = new Array();
    for (var i = 0; i < arguments.length; i++) {
        var element = arguments[i];
        if (typeof element == 'string')
            element = document.getElementById(element);
        if (arguments.length == 1)
            return element;
        elements.push(element);
    }
    return elements;
}

/** XHConn - Simple XMLHTTP Interface - bfults@gmail.com - 2005-04-08        **
 ** Code licensed under Creative Commons Attribution-ShareAlike License      **
 ** http://creativecommons.org/licenses/by-sa/2.0/                           **/
 //更改function(sURL, sMethod, sVars, fnDone)为function(sURL, sMethod, sVars, fnDone,fnDoing)
 //可以捕捉进行动作
function XHConn()
{
  var xmlhttp, bComplete = false;
  try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }
  catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
  catch (e) { try { xmlhttp = new XMLHttpRequest(); }
  catch (e) { xmlhttp = false; }}}
  
  if (!xmlhttp) return null;
  this.connect = function(sURL, sMethod, sVars, fnDone,fnDoing){
    if (!xmlhttp) return false;
    bComplete = false;
    sMethod = sMethod.toUpperCase();

    try {
      if (sMethod == "GET"){
        xmlhttp.open(sMethod, sURL+"?"+sVars, true);
        sVars = "";
      }
      else{
        xmlhttp.open(sMethod, sURL, true);
        xmlhttp.setRequestHeader("Method", "POST "+sURL+" HTTP/1.1");
        xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
      }
      xmlhttp.onreadystatechange = function(){
      	if (xmlhttp.readyState == 1||xmlhttp.readyState == 3){
      		fnDoing();
      	}
        if (xmlhttp.readyState == 4 && !bComplete){
          bComplete = true;
          
          try{
            fnDone(xmlhttp);
          }catch (e){
            alert("请求数据处理发生异常...\n" + e);
            return;
          }
        }};
      xmlhttp.send(sVars);
    }
    catch(z) { return false; }
    return true;
  };
  return this;
}

