/****************************************************
 document.js文件
 描述：文档管理子系统中业务文档表单挂接的入口
 前提：要调用document.js中的函数，必须包含function.js，select.js
 方法：
	查看：function viewClientDoc(xmlconfig,documentid)
	新增：function newClientDoc(xmlconfig,tablename,recordid,clientcategoryid,flag,documentcategoryidinput)
	更新：function changeClientDoc(xmlconfig,documentid)
	删除：function deleteClientDoc(tablename,recordid,documentId)
	下载：function downloadClientAttach(documentattachid)
 ****************************************************/

/*
 * 查看文档
 * 参数：xmlconfig—定义每个字段的是否显示(visible属性)、是否只读(readonly属性)、是否有缺省值（元素值）
         documentid—关联文档ID
 * 例如：xmlconfig= "<code visible='true' readonly='false'>1111</origincode>"+	//原始编号
								"<origincode visible='true' readonly='false'>电动机飞机</origincode>"+	//原始编号
								"<name visible='true' readonly='false'>电动机飞机</name>"+							//标题
								"<author visible='true' readonly='false'></author>"+										//作者
								"<keywords visible='true' readonly='false'></keywords>"+								//关键字				
								"<abstractcontent visible='true' readonly='false'></abstractcontent>"+		//摘要
								"<description visible='true' readonly='false'></description>"+					//备注
								"<implementstageid visible='true' readonly='false'></implementstageid>"+//实现阶段
								"<formatid visible='true' readonly='false'></formatid>"+								//文档格式
								"<creationtime visible='true' readonly='false'></creationtime>"+				//创建时间
								"<lastmodifytime visible='true' readonly='false'></lastmodifytime>"+		//最后修改时间
								"<uploaddeptid visible='true' readonly='false'></uploaddeptid>"+				//上传单位ID
								"<viewpermission visible='true' readonly='false'></viewpermission>"+		//查看权限
								"<bidprojectids visible='true' readonly='false'></bidprojectids>"+			//关联标段ID集
								"<componentids visible='true' readonly='false'></componentids>"+				//关联构件ID集
								"<qbsids visible='true' readonly='false'></qbsids>"+										//关联分部分项ID集
								"<referids visible='true' readonly='false'></referids>";								//引用文档ID集
 * 结果：
 */
function viewClientDoc(xmlconfig,documentid)
{
	var sPath = "/mis/document/common/Doc_documentEdit.jsp?act=view&documentid="+documentid+"&xmlconfig="+xmlconfig;
	var strFeatures = "dialogWidth=700px;dialogHeight=500px;center=yes;help=yes";
	showModalDialog(sPath,"",strFeatures);
}


/*
 * 新增文档
 * 参数：xmlconfig—同上 
		 tablaname—挂接表单表名
         recordid—记录ID
         clientcategoryid—业务文档类型ID
         flag—表明是否需要弹出文档目录选择框 flag="true"表示为需要，判定原则：如果业务文档类型下的关联文档分类接点多于1个则为'true'
         documentcategoryidinput—当flag为true时存放选定的文档类型。
 * 结果：
 */
function newClientDoc(xmlconfig,tablename,recordid,flag,clientcategoryid,documentid,documentcategoryidinput)
{
    if(flag=="true")
	{
        selectClientCategory(clientcategoryid,documentcategoryidinput);
	}
    if (isNaN(parseInt(documentcategoryidinput.value)))
	{
		alert("必须选取文档分类!");
		return null;
	}
    var url= "/mis/document/common/Doc_documentEdit.jsp?act=new&xmlconfig="+xmlconfig+"&tablename="+tablename+"&recordid="+recordid+"&documentid="+documentid.value+"&documentcategoryid="+documentcategoryidinput.value;
    var param = "dialogWidth=800px;dialogHeight=600px;center=yes;help=no";
    var value = showModalDialog(url,"",param);
    if (value.indexOf("mrCancel")==0)
	{
		return null;
	}
	else
	{
		documentid.value = value;
	}
}

/*
 * 修改文档
 * 参数：xmlconfig—同上 
         documentid—关联文档ID
 * 结果：
 */
function changeClientDoc(xmlconfig,documentid)
{
	var sPath = "/mis/document/common/Doc_documentEdit.jsp?act=change&documentid="+documentid+"&xmlconfig="+xmlconfig;
	
	var strFeatures = "dialogWidth=700px;dialogHeight=450px;center=yes;help=no";
	var value = showModalDialog(sPath,"",strFeatures);
	if (!(value.indexOf("mrCancel")==0))
	{
				return value;
	}
 return null;	
}

/*
 * 删除文档
 * 参数：documentid—关联文档ID
				 tablaname—挂接表单表名
         recordid—记录ID
 * 结果：
 */
function deleteClientDoc(documentid,tablename,recordid)
{
  if(confirm("确定要删除该文档吗？"))
  {
    window.status = "正在删除文档... ...";
    var param = "?documentid="+documentid+"&tablename="+tablename+"&recordid="+recordid;
    var url = "/mis/common/document/DocDelete.jsp"+param;
    doGetRequest(url);
    window.status = "删除文档成功";
  }
}

/*
 * 下载文档
 * 参数：documentattachid—文档附件ID
 * 结果：
 */
function downloadAttach(documentattachid)
{
  if(documentattachid==null || documentattachid=="")
  {
    return;
  }  
	var param = "width=300,height=200,top=200,left=200,toolbar=no,menubar=no,scrollbars=no,resizable=no,location=no,status=no";
  var url = "/mis/document/document/Doc_documentDownload.jsp?attachid="+documentattachid;
  //直接下载附件必须弹出窗口，否则会报js错误
  window.open(url,"download", param);
}

function loginDownloadAttach(documentattachid,volumeid,archiveid,needLogin)
{
  if(documentattachid==null || documentattachid=="")
  {
    return;
  }  

   //if(needLogin)
   //{
  //   var mrResult = showModalDialog(strPath,"",strFeatures);
  //   isOK = getElementValue(mrResult, "isOK");

  //    if(isOK=="OK")
  //   {
  //      if(documentattachid==null || documentattachid=="")
 //      {
  //       return;
  //     }
 //    }
 //  }

	var param = "width=300,height=200,top=200,left=200,toolbar=no,menubar=no,scrollbars=no,resizable=no,location=no,status=no";
    var url = "/mis/document/document/Doc_documentDownload.jsp?attachid="+documentattachid+"&volumeid="+volumeid+"&archiveid="+archiveid;
    //直接下载附件必须弹出窗口，否则会报js错误
     window.open(url,"download", param);
}

/*
 * 下载文档
 * 参数：volumnid—卷内ID
 * 结果：
 */
function downloadArchives(volumeid)
{
  if(volumeid==null || volumeid=="")
  {
    return;
  }  
	var param = "width=300,height=200,top=200,left=200,toolbar=no,menubar=no,scrollbars=no,resizable=no,location=no,status=no";
  var url = "/mis/document/document/Doc_documentDownload.jsp?volumeid="+volumeid;
  //直接下载附件必须弹出窗口，否则会报js错误
  window.open(url,"download", param);
}
/**
*选择多个文档
*参数:ids--文档标识ID集合的hidden object,必须传
      names--文档名称集合的输入框object,必须传
      origincodes--原始编号集合的输入框object,可选
      displayLinks--查看链接集合的object(一般在td里面设置id="displayLinks"即可)，可选
*返回id，名称，原始编号，链接
***/
function selectMultiDocument(ids,names,origincodes,displayLinks,otherParam)
{
   var strFeatures = "dialogWidth=640px;dialogHeight=480px;center=yes;help=no;scrolling=no";
   var strPath = "/mis/document/common/Doc_selectMain.jsp";
   if(otherParam != null)
     strPath += "?param="+otherParam;
   var mrResult = showModalDialog(strPath,"",strFeatures);
   if(mrResult==null || mrResult=="" || mrResult=="mrCancel") return;  
   if( mrResult == "mrClear" )
   {
     ids.value = "";	   
	   names.value = "";
	   if(origincodes != null)
	     origincodes.value = "";
	   if( displayLinks != null )	   
	     displayLinks.innerHTML = "";   
   }else if( mrResult != "" )
   {
	   parseDocumentXml(mrResult,ids,names,origincodes,displayLinks);	   
   }
}

//查看文档页面
var document_view_page = "/mis/document/document/Doc_documentView.jsp";

/**
*解析生成的文档XML
*
**/
function parseDocumentXml(xml,inputIds,inputNames,inputOrigincodes,displayLinks)
{
  //alert("xml="+xml);
  var ids="";
  var names="";
  var origincodes="";
  var doclist = new ActiveXObject("Msxml2.DOMDocument");
  doclist.async = false;
  doclist.resolveExternals = false;
  doclist.loadXML( xml );
  var root = doclist.documentElement;
  var oNodeList = root.childNodes;

  for(var i = 0 ; i< oNodeList.length ; i++ )
  {
    var item = oNodeList.item(i);
    if( item != null )
    {
      if( item.nodeType == 1 ) //Element Node Symbol NODE_ELEMENT (1)
      {
        var name = item.getAttribute("name");
				var id = item.getAttribute("id");
				var origincode = item.getAttribute("origincode");
				
				if( name != null )
				{
				   if( names == "" )
				     names += name
				   else
				     names +=","+name;
				}
				if( id != null )
				{
				   if( ids == "" )
				     ids += id
				   else
				     ids += "," + id;
				}
				if(origincode != null )
				{
				   if( origincodes == "" )
				    origincodes += origincode
				   else
				    origincodes += ","+origincode;
				}				
		  }
	  }
	}	
	inputIds.value = ids;
	inputNames.value = names;
	if(inputOrigincodes != null)
	  inputOrigincodes.value = origincodes;	
	if(displayLinks != null){
	  recover(inputIds,inputNames,displayLinks);  //显示链接
	}
}

/**
*生成文档链接
*ids,names,links均为object
**/
function recover(ids,names,displayLinks)
{  
  
  if(ids==null || names==null) return;
  var s1 = ids.value;
  var s2 = names.value;
  var linkValues = "";
  if(s1 != "" && s2 != ""){      
    var ss1 = s1.split(",");
    var ss2 = s2.split(",");
    for(var i = 0; i < ss1.length; i++) {
      if(ss2[i] != null){
           var linkUrl = document_view_page;
           if(linkUrl.indexOf("?")>0)
				     linkUrl += "&";
				   else
				     linkUrl += "?";
				   linkValues += " <a href='#' onClick=\"window.location='"+linkUrl+"id="+ss1[i]+"'\" title='点击查看详细内容'>"+ss2[i]+"</a>";				   
      }
    }
    //alert(linkValues);
    if(displayLinks != null)
      displayLinks.innerHTML = linkValues;
  }  
}
