﻿//常量定义
//===============================================
//XML文档元素名
var OBJECTS = "Objects";
var OBJECT = "Object";
var VALUE = "Value";
var ITEMVALUE = "ItemValue";
var TEXT = "Text";
var TYPE = "Type";
var SITEVALUE = "SiteValue";
var SITETEXT = "SiteText";
var INDEX = "Index";

//是否IE环境
var isIE = !!document.all;


//表单模板内容常量定义
var CONTROLTYPEPROPERTY = "ct"; //表单模板中的ct属性（控件类型）
var NAMEPROPERTY = "name"; //表单模板中的name属性
var IDPROPERTY = "id"; //表单模板中的id属性
var FIELDCODESIGN = "@@"; //表单模板中的FieldCode前后缀标识
var FIELDTITLESIGN = "$$"; //表单模板中的Title前后缀标识
var SPECIALHIDDENPREFIXSIGN = "[["; //特殊隐藏域的前缀
var SPECIALHIDDENSUFFIXSIGN = "]]"; //特殊隐藏域的后缀
var FIELDDATAOBJECTSPLITSIGN = ","; //字段数据存放的对象分割符（如供隐藏域存放：2014155554300001123@@栏目1,2014155569800002223@@栏目2）
var FIELDDATAPROPERTYSPLITSIGN = "@@"; //字段数据存放的属性分割符（如供隐藏域存放：2014155554300001123@@栏目1,2014155569800002223@@栏目2）

//对象分割符
var OBJECTSPLITSIGN = ",";
//属性分割符（键值分割符）
var PROPERTYSPLITSIGN = ";";
//TypeTreeView的SelectId属性分割符
var TREESELECTIDSPLITSIGN = ":";
//表示所有、全部的符号
var ALLSIGN = "*";

//单选模式
var SINGLEMODE = "S";
//多选模式
var MULTIPLEMODE = "M";
//选择模式请求参数名
var MODEPARAMNAME = "mode";

//不包含站点信息（XML中不加入站点信息）
var NOTINCLUDESITE = "0";
//包含指定站点信息（XML中加入与下拉框对应的站点）
var INCLUDESPECIFYSITE = "1";
//包含固定站点信息（XML中加入的站点信息固定为所有站点）
var INCLUDEALLSITE = "2";

//用户常量
var PORTALUSERTYPE = "PortalUser";
//用户组常量
var USERGROUPTYPE = "UserGroup";
//角色常量
var PORTALROLETYPE = "PortalRole";
//用户类别常量
var USERCATEGORYTYPE = "UserCategory";
//部件常量
var PORTALCOMPONENTTYPE = "PortalComponent";
//页面常量
var PORTALPAGETYPE = "PortalPage";
//部件目录常量
var COMDIRECTORYTYPE = "ComDirectory";
//栏目常量
var PORTALMENUTYPE = "PortalMenu";
//站点常量
var PORTALSITETYPE = "PortalSite";
//主题常量
var PORTALTHEMETYPE = "PortalTheme";
//模板常量
var TEMPLETTYPE = "Templet";
//字段常量
var PORTALFIELDTYPE = "PortalField";
//表单常量
var PORTALFORMTYPE = "PortalForm";
//门户应用常量
var PORTALAPPLICATIONTYPE = "PortalApplication";
//门户资源常量
var PORTALRESOURCETYPE = "PortalResource";
//代码类别常量
var CODECATEGORYTYPE = "CodeCategory";
//表单模板常量
var FORMTEMPLETTYPE = "FormTemplet";
//职种常量
var POSITIONCATEGORYTYPE = "PositionCategory";
//岗位常量
var STATIONTYPE = "Station";
//机构常量
var DEPARTMENTTYPE = "Department";
//职位常量
var POSITIONTYPE = "Position";
//员工常量
var EMPLOYEETYPE = "Employee";
//用户类别常量（所有站点）
var ALLSITEUSERCATEGORYTYPE = "AllSiteUserCategory";
//用户类别常量（指定站点）
var SPECIFYSITEUSERCATEGORYTYPE = "SpecifySiteUserCategory";
//特殊身份组
var SPECIALGROUPTYPE = "SpecialGroup";
//活动
var ACTIVITYTYPE = "Activity";
//表单目录
var FORMDIRECTORYTYPE = "FormDirectory";
//过程常量
var PROCESSTYPE = "Process";
//包常量
var PACKAGETYPE = "Package";
//资源操作常量

var RESOURCEMETHODTYPE = "ResourceMethod";
//区域常量

var PORTALREGIONTYPE = "PortalRegion";
//员工类别常量
var EMPLOYEECATEGORYTYPE = "EmployeeCategory";
//合同类别常量
var CONTRACTCATEGORYTYPE = "ContractCategory";
//计划任务常量
var SCHEDULETYPE = "Schedule";
//报表引擎常量
var REPORTENGINETYPE = "ReportEngine";
//报表数据源常量
var REPORTDATASOURCETYPE = "ReportDataSource";
//报表模板常量
var REPORTTEMPLETTYPE = "ReportTemplet";
//报表常量
var REPORTTYPE = "Report";
//代码项常量
var CODEITEMTYPE = "CodeItem";
//统计条件常量
var COLLECTCONDITIONTYPE = "CollectCondition";
//报表目录常量
var REPORTDIRECTORYTYPE = "ReportDirectory";
//资产类别
var ASSETSCATEGORYTYPE="AssetsCategory";
//信息分类
var INFORMATIONCATEGORYTYPE = "InformationCategory";
//信息文件夹
var INFORMATIONFOLDERTYPE = "InformationFolder";
//信息分类
var INFORMATIONTYPE = "Information";
//通讯录
var ADDRESSTYPE = "Address";
//电子邮箱
var EMAILBOXTYPE = "EmailBox";
//菜式
var MEALSTYLETYPE =  "MealStyle";
//会议室
var MEETINGROOMTYPE = "MeetingRoom";


//计划任务常量
var SCHEDULETEXT = "计划任务";
//用户显示常量
var PORTALUSERTEXT = "用户";
//用户组显示常量
var USERGROUPTEXT = "用户组";
//角色显示常量
var PORTALROLETEXT = "角色";
//用户类别显示常量
var USERCATEGORYTEXT = "用户类别";
//部件显示常量
var PORTALCOMPONENTTEXT = "部件";
//页面显示常量
var PORTALPAGETEXT = "页面";
//部件目录显示常量
var COMDIRECTORYTEXT = "部件目录";
//栏目显示常量
var PORTALMENUTEXT = "栏目";
//站点显示常量
var PORTALSITETEXT = "站点";
//主题显示常量
var PORTALTHEMETEXT = "主题";
//模板显示常量
var TEMPLETTEXT = "模板";
//字段显示常量
var PORTALFIELDTEXT = "字段";
//表单显示常量
var PORTALFORMTEXT = "表单";
//门户应用显示常量
var PORTALAPPLICATIONTEXT = "门户应用";
//门户资源显示常量
var PORTALRESOURCETEXT = "门户资源";
//代码类别显示常量
var CODECATEGORYTEXT = "代码类别";
//表单模板显示常量
var FORMTEMPLETTEXT = "表单模板";
//职种显示常量
var POSITIONCATEGORYTEXT = "职种";
//岗位显示常量
var STATIONTEXT = "岗位";
//机构显示常量
var DEPARTMENTTEXT = "机构";
//职位显示常量
var POSITIONTEXT = "职务";
//员工显示常量
var EMPLOYEETEXT = "员工";
//特殊身份组显示常量
var SPECIALGROUPTEXT = "特殊用户组";
// 活动显示常量
var ACTIVITYTEXT = "活动";
//表单目录显示常量
var FORMDIRECTORYTEXT = "表单目录";
//过程显示常量
var PROCESSTEXT = "过程";
//包显示常量
var PACKAGETEXT = "包";
//资源操作显示常量
var RESOURCEMETHODTEXT = "资源操作";
//区域显示常量
var PORTALREGIONTEXT = "区域";
var EMPLOYEECATEGORYTEXT = "员工类别";
var CONTRACTCATEGORYTEXT = "合同类别";
//报表引擎显示常量
var REPORTENGINETEXT = "报表引擎";
//报表数据源显示常量
var REPORTDATASOURCETEXT = "报表数据源";
//报表模板显示常量
var REPORTTEMPLETTEXT = "报表模板";
//报表显示常量
var REPORTTEXT = "报表";
//代码项显示常量
var CODEITEMTEXT = "代码项";
//统计条件显示常量
var COLLECTCONDITIONTEXT = "统计条件";
//报表目录显示常量
var REPORTDIRECTORYTEXT = "报表目录";
//资产类别显示常量
var ASSETSCATEGORYTEXT = "资产类别";
//通讯录显示常量
var ADDRESSTEXT = "通讯录";
//通用获取资源固定传入的参数var EMAILBOXTEXT="电子邮箱";
var MEALSTYLETEXT="菜式";
//信息分类
var INFORMATIONCATEGORYTEXT = "信息分类";
//会议室
var MEETINGROOMTEXT = "会议室";

var CommonstrTheme = null;
var CommonintPageSize = null;
var CommonstrSiteId = null;
var CommonstrCategoryId = null;
//===============================================

//变量定义
//===============================================
//Common目录所在的URL地址
var CommonDirBaseURL = "";
//设置Common目录所在的URL地址
function SetCommonDirBaseURL(baseURL)
{
    CommonDirBaseURL = baseURL;
}
//===============================================


//返回上一页面
function GoBack()
{
	history.back();
}
//到达指定地址
function Go(url)
{
	window.location.href = url;
}
//到达指定地址
function GoByTarget(url, target)
{
    if(url == null || url == "")
        return;
    
    if(target == null || target == "")
    {
        window.location.href = url;
        return;
    }
        
    if(window.frames[target] == null)
        return;
    
	window.frames[target].location.href = url;
}
//顶层窗口到达指定地址
function TopGo(url)
{
	window.top.location.href = url;
}
//刷新窗口
function F5()
{
	window.location.href = window.location.href;
}
/******************************************************
描述：	显示指定大小风格固定的模式对话框
返回：	对话框的返回值
参数：	strURL 对话框文件地址
		intWidth 对话框的宽度
		intHeight 对话框的高度
		aryParam 对话框的传入参数
******************************************************/
function openDialog(strURL, intWidth, intHeight, aryParam){
	return window.showModalDialog(strURL,aryParam,'dialogHeight:' + intHeight + 'px;dialogWidth:' + intWidth + 'px;status:no;scroll:yes;resizable:no;help:no;center:yes;');
}
//打开新窗口
function OpenNewWin(url,width,height)
{
	var d = Math.floor(Math.random() * 1000000000000);
	var WinName = d.toString();
	window.open(url,WinName,"toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width=" +width+ ",height=" + height);
}
//打开最大化窗口
function OpenMaxWin(url)
{
	var d = Math.floor(Math.random() * 1000000000000);
	var WinName = d.toString();
	window.open(url,WinName,"top=0,left=0,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width="+(screen.width - 8)+",height="+(screen.availHeight-45));
}

/******************************************************
描述：	执行服务器端的程序文件
返回：	成功则返回程序执行结果。失败则返回-1
参数：	strPrgmURL	程序文件路径
		strMethod	发送方法（POST或GET）
		strParamString POST方法时的参数字符串
******************************************************/
function ExecServerPrgm(strPrgmURL, strMethod, strParamString, strUserID, strPwd)
{
	try{
		  
		var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		if (strUserID != "" && strUserID != null)
			xmlhttp.Open(strMethod, strPrgmURL, false, strUserID, strPwd);
		else
			xmlhttp.Open(strMethod, strPrgmURL, false);
		
		if (strMethod.toUpperCase() == 'POST'){
			xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			xmlhttp.Send(strParamString);
		}else{
			xmlhttp.Send();				
		}
		if (xmlhttp.status == 200)
			return unescape(xmlhttp.responseText);
		else
			return -1;
	}catch(e){
		return -1;
	}
}

//判断多选框objSelect中是否存在与objOption相同的选项
function ifHaveSameOption(objSelect, objOption)
{
	var intLen = objSelect.options.length;
	var i;
	//遍历多选框一中的每个选项
	for (i = 0; i < intLen; i++) 
	{
		if (objOption.value == objSelect.options.item(i).value)
		{
			return true;
		}		
	}
	return false;	
}

//判断多选框objSelect中是否存在值与strValue相同的选项
function ifHaveOptionValue(objSelect, strValue)
{
	var intLen = objSelect.options.length;
	var i;
	//遍历多选框一中的每个选项
	for (i = 0; i < intLen; i++) 
	{
		if (strValue == objSelect.options.item(i).value)
		{
			return true;
		}		
	}
	return false;	
}

/******************************************************
描述：	新建一个列表项，并将其加到指定列表框中
返回：	无
参数：	oSel列表框
        OptionText列表项的text属性
        OptionValue列表项的value属性
******************************************************/
function NewOption(oSel,OptionText,OptionValue)
{
	var oTP = document.createElement("OPTION");
	oTP.text= OptionText;
	oTP.value= OptionValue;
	oSel.options.add(oTP);
}
/******************************************************
描述：	添加一个列表项到指定列表框中（由于列表项是通过参数传过来的，所以其还可包含value，text外的自定义属性）
返回：	存在相同value的列表项则返回false，成功加入则返回true
参数：	oSelect列表框
        oOption列表项
******************************************************/
function addOption(oSelect, oOption)
{
    if( ifHaveSameOption(oSelect, oOption) )
        return false;
    oSelect.options.add(oOption);
    return true;
}
/******************************************************
描述：	选中列表框中指定value属性的列表项
返回：	无
参数：	oSelect列表框
        strValue列表项的value属性
******************************************************/
function selectOption(oSelect, strValue)
{
    var oOption;
    for(var i = 0; i < oSelect.options.length; i++)
    {
        if(oSelect.options[i].value == strValue)
        {
            oSelect.options[i].selected = true;
            oOption = oSelect.options[i];
        }
        else
        {
            oSelect.options[i].selected = false;
        }
    }
    
    return oOption;
}
// 查询指定的业务对象选项
function FindOption(oSelect, strValue)
{{
    for(var i = 0; i < oSelect.options.length; i++)
    {{
        if(oSelect.options[i].value == strValue)
        {{
            return oSelect.options[i];
        }}
    }}
    return null;
}}
/******************************************************
描述：	清空指定Select列表框的所有选项
返回：	true OR false
参数：	Select对象
******************************************************/
function ClearSelectOptions(oSel, strType){
	try{
	    var intOptionLength = oSel.options.length;
	    for (var i = intOptionLength - 1; i >= 0; i--)
	    {
	        if(strType == null || strType == oSel.options.item(i).type || oSel.options.item(i).type == null)
	        {
	            oSel.options.remove(i);
	        }
			
	    }
		return true;
	}catch(e){
		return false;
	}
}
/******************************************************
描述：	删除指定Select列表框中被选中的所有选项
返回：	无
参数：	Select对象
******************************************************/
function DelSelectedOptions(oSel){
	try{
		var intOptionLength = oSel.options.length;
		for (var i=0;i<intOptionLength;i++)
		{
			if (oSel.options.item(i).selected)
			{
				oSel.options.remove(i);
				intOptionLength = intOptionLength -1;
				i = i - 1;
			}
		}
		return true;
	}catch(e){
		return false;
	}
}

//将一个多选框的全部项目置为选中状态
function SelectAllOptions(objSelect){
	var intLen = objSelect.options.length;
	var i;
	//遍历多选框一中的每个选项
	for (i = 0; i < intLen; i++) {
		objSelect.options.item(i).selected = true;
	}	
}

/******************************************************
描述：	移动所有选中项
返回：	无
参数：	Select对象  flag: 1上移  0下移
******************************************************/
function moveSelectedOpt(oSelect, flag)
{
    if (oSelect==null || oSelect.options==null)
    {
        return;
    }
        
    var options = oSelect.options;
    var len = options.length;
    
    for(var i=0; i<len; i++)
    {
        if (flag==1 && i!=0 && options.item(i).selected && !options.item(i-1).selected)
        {
            switchOpt(options.item(i), options.item(i-1));
            options.item(i).selected = false;
            options.item(i-1).selected = true;
        }
        
        if (flag==0 && i!=0 && options.item(len-i-1).selected && !options.item(len-i).selected)
        {
            switchOpt(options.item(len-i-1), options.item(len-i));
            options.item(len-i-1).selected = false;
            options.item(len-i).selected = true;
        }
    }
}
    
/******************************************************
描述：	交换两个option的值
返回：	无
参数：	opt1, opt2要交换的两个option
******************************************************/
function switchOpt(opt1, opt2)
{
    if (opt1==null || opt2==null)
    {
        return;
    }

    var text = opt1.text;
    var value = opt1.value;
    
    opt1.text = opt2.text;
    opt1.value = opt2.value;
    
    opt2.text = text;
    opt2.value = value;
}


/******************************************************
描述：	添加选项到指定列表框（如果该选项已存在则不添加，并返回false，判断是否重复的条件是选项的Value属性）
返回：	Value重复的返回false，否则返回true
参数：	oSelect Select对象（列表框）
        optionText  选项的Text属性
        optionValue  选项的Value属性
        optionType  选项的Type属性(自定义的附加属性)，如果为null则表示不使用该属性        blnIncludeSite  是否包含站点信息
        optionSiteText  选项的SiteText属性(自定义的附加属性)，表示所属站点的显示文本，只有当blnIncludeSite为true时才生效
        optionSiteValue  选项的SiteValue属性(自定义的附加属性)，表示所属站点的键，只有当blnIncludeSite为true时才生效
******************************************************/
function NewUniqueValueOption(oSelect, optionText, optionValue, optionType, blnIncludeSite, optionSiteText, optionSiteValue)
{   
    for(var i = 0; i < oSelect.options.length; i++) 
    {
        if (!blnIncludeSite && optionValue == oSelect.options.item(i).value)
        {
	        return false;
        }
        if(blnIncludeSite && optionValue == oSelect.options.item(i).value && optionSiteValue == oSelect.options.item(i).siteValue)
        {
            return false;
        }
    }
    
    var option = document.createElement("option");
    option.value = optionValue;
    option.text = optionText;

    if(optionType != null)
    {
        option.type = optionType;
    }
    
    if(blnIncludeSite && optionSiteText != null && optionSiteValue != null)
    {
        option.siteText = optionSiteText;
        option.siteValue = optionSiteValue;
    }

    oSelect.options.add(option);

    return true;
}

/******************************************************
描述：	根据指定XmlDom中的信息将数据加到指定列表框中
返回：	无
参数：	oSelect Select对象（列表框）
        oXmlDom XmlDom对象
        blnClear    是否需要先清除列表项
        strMode   选择模式：M为多选，S为单选
        strType 仅将该指定类型的数据加到列表框,如果为null则所有类型的数据加到列表框        blnIncludeSite  是否包含站点信息
******************************************************/
function xmlDomToList(oSelect, oXmlDom, blnClear, strMode, strType, blnIncludeSite)
{
    if (oXmlDom == null || oXmlDom.xml == "")
    {
        return;
    }
    if(blnClear)
    {
        ClearSelectOptions(oSelect, strType);
    }
    
    var objs = oXmlDom.documentElement.selectNodes(OBJECT);
    
    for(var i = 0; i<objs.length; i++)
    {
        if(strMode.toUpperCase() == SINGLEMODE && oSelect.options.length > 0)
        {
            alert("异常：在单选操作下最多只能有一个<Object>节点");
            return;
            //throw new Exception("在单选操作下最多只能有一个<Object>节点");
        }
        
        //获取Text节点
        var text = null;
        if(objs(i).selectSingleNode(TEXT) != null)
            text = objs(i).selectSingleNode(TEXT).text;
        
        //获取Value节点
        var value = null;
        if(objs(i).selectSingleNode(VALUE) != null)
            value = objs(i).selectSingleNode(VALUE).text;
            
        if(text == null || value == null)
        {
            alert("异常：<Text>或<Value>节点不存在");
            return;
            //throw new Exception("<Text>或<Value>节点不存在");
        }
        
        //获取Type节点
        var type = null;
        if(objs(i).selectSingleNode(TYPE) != null)
            type = objs(i).selectSingleNode(TYPE).text;
        
        //获取SiteText节点
        var siteText = null;
        if(objs(i).selectSingleNode(SITETEXT) != null)
            siteText = objs(i).selectSingleNode(SITETEXT).text;
        
        //获取SiteValue节点    
        var siteValue = null;
        if(objs(i).selectSingleNode(SITEVALUE) != null)
            siteValue = objs(i).selectSingleNode(SITEVALUE).text;
        
        if(strType == type || strType == null)
        {   
            if(blnIncludeSite && siteText != null && siteValue != null)
            {
                NewUniqueValueOption(oSelect, text, value, type, true, siteText, siteValue);
            }
            else
            {
                NewUniqueValueOption(oSelect, text, value, type, false, null, null);
            }
        }            
    }
    
    if(blnIncludeSite)
    {
        addOptionSitePrefix(oSelect);
    }
}

/******************************************************
描述：	根据指定指定列表框生成相应的XmlDom对象
返回：	无
参数：	oSelect Select对象（列表框）
        strType 仅为type属性为该指定类型的数据项生成XmlDom对象,如果为null则为所有数据项生成XmlDom对象
        blnIncludeSite  是否包含站点信息
******************************************************/
function listToXmlDom(oSelect, strType, blnIncludeSite)
{
	var strXml = listToXmlStr(oSelect, strType, blnIncludeSite);
	
	var oXmlDom = new ActiveXObject("Microsoft.XMLDOM");
	oXmlDom.loadXML(strXml);
	
	return oXmlDom;
}


/******************************************************
描述：	根据指定XmlDom中的信息将数据加到指定列表框中
返回：	无
参数：	oSelect Select对象（列表框）
        strXml xml字符串
        blnClear    是否需要先清除列表项
        strMode   选择模式：M为多选，S为单选
        strType 仅将该指定类型的数据加到列表框,如果为null则所有类型的数据加到列表框        blnIncludeSite  是否包含站点信息
******************************************************/
function xmlStrToList(oSelect, strXml, blnClear, strMode, strType, blnIncludeSite)
{
    var oXmlDom = new ActiveXObject("Microsoft.XMLDOM");
    oXmlDom.loadXML(strXml);
    
    xmlDomToList(oSelect, oXmlDom, blnClear, strMode, strType, blnIncludeSite)
}

/******************************************************
描述：	根据指定指定列表框生成相应的Xml字符串
返回：	无
参数：	oSelect Select对象（列表框）
        strType 仅为type属性为该指定类型的数据项生成Xml字符串,如果为null则为所有数据项生成Xml字符串        blnIncludeSite  是否包含站点信息
******************************************************/
function listToXmlStr(oSelect, strType, blnIncludeSite)
{
	var strXml = "<" + OBJECTS + ">";
    for(var i = 0; i<oSelect.options.length; i++)
    {
			var option = oSelect.options.item(i);
			if(strType == null || option.type == strType)
			{
			    strXml = strXml + "<" + OBJECT + ">";
    			
			    strXml = strXml + "<" + VALUE + ">";
			    strXml = strXml + option.value;
			    strXml = strXml + "</" + VALUE + ">";
    			
			    strXml = strXml + "<" + TEXT + ">";
			    strXml = strXml + option.text;
			    strXml = strXml + "</" + TEXT + ">";
			    
			    strXml = strXml + "<" + TYPE + ">";
		        strXml = strXml + option.type;
		        strXml = strXml + "</" + TYPE + ">";
    		    
    		    if(blnIncludeSite)
    		    {
    		        strXml = strXml + "<" + SITEVALUE + ">";
			        strXml = strXml + option.siteValue;
			        strXml = strXml + "</" + SITEVALUE + ">";
    		    
    		        strXml = strXml + "<" + SITETEXT + ">";
			        strXml = strXml + option.siteText;
			        strXml = strXml + "</" + SITETEXT + ">";
    		    }
    		    
		        strXml = strXml + "</" + OBJECT + ">";
    		}
    }
	strXml = strXml + "</" + OBJECTS + ">";
	
	return strXml;
}

/******************************************************
描述：	根据指定列表框生成相应的字符串，字符串组成形式类似value1,text1;value2,text2;value3,text3
返回：	字符串
参数：	oSelect Select对象（列表框）
        strObjectSplitSign    对象分割符
        strPropertySplitSign   属性分割符（键值分割符）
******************************************************/
function listToString(oSelect, strObjectSplitSign, strPropertySplitSign)
{
    var strSelectData = "";
    
    for(var i = 0; i < oSelect.options.length; i++)
    {
        strSelectData += oSelect.options[i].value;
        strSelectData += strPropertySplitSign;
        strSelectData += oSelect.options[i].text;
        if(i != oSelect.options.length-1) //不是最后一项才加上对象分割符号
        {
            strSelectData += strObjectSplitSign;
        }
    }
    
    return strSelectData;
}

/******************************************************
描述：	根据指定字符串中的信息将数据加到指定列表框中，字符串组成形式如value1,text1;value2,text2;value3,text3;
返回：	无
参数：	oSelect Select对象（列表框）
        strData 字符串数据
        strObjectSplitSign    对象分割符
        strPropertySplitSign   属性分割符（键值分割符）
        blnClear    是否需要先清除列表项
        strMode   选择模式：M为多选，S为单选
        strType 指定类型的数据项的type属性,如果为null则表示不使用该属性        blnIncludeSite  是否包含站点信息
        optionSiteText  选项的SiteText属性(自定义的附加属性)，表示所属站点的显示文本，只有当blnIncludeSite为true时才生效
        optionSiteValue  选项的SiteValue属性(自定义的附加属性)，表示所属站点的键，只有当blnIncludeSite为true时才生效
        blnTreeData 如果是树型数据，则strData为：department:123456789012345:XX部门
******************************************************/

function stringToList(oSelect, strData, strObjectSplitSign, strPropertySplitSign, blnClear, strMode, strType, blnIncludeSite, strSiteText, strSiteValue,blnTreeData)
{
    if(blnClear || (strMode.toUpperCase() == SINGLEMODE && strData != ""))
    {
        ClearSelectOptions(oSelect, strType);
    }
    
    var arr1 = strData.split(strObjectSplitSign);
    for(var i = 0; i < arr1.length; i++)
    {
        var arr2 = arr1[i].split(strPropertySplitSign);
        
        if(arr2 != null && arr2[0] != "")
        {
            if(blnTreeData!=null && blnTreeData==true)
            NewUniqueValueOption(oSelect, arr2[2], arr2[1], strType, blnIncludeSite, strSiteText, strSiteValue);
            else
            NewUniqueValueOption(oSelect, arr2[1], arr2[0], strType, blnIncludeSite, strSiteText, strSiteValue);
        }
    }
    
    if(blnIncludeSite)
    {
        addOptionSitePrefix(oSelect);
    }
}

/******************************************************
描述：	根据指定TypeTreeView的SelectId属性中的信息将数据加到指定列表框中，SelectId组成形式如type:value:text
返回：	无
参数：	oSelect Select对象（列表框）
        strSelectId TypeTreeView的SelectId属性
        strSplitSign    分割符
        strType   指定节点类型（只有类型匹配才会添加），如果为null则所有类型都可以添加
        blnClear    是否需要先清除列表项
        strMode   选择模式：M为多选，S为单选        blnIncludeSite  是否包含站点信息
        optionSiteText  选项的SiteText属性(自定义的附加属性)，表示所属站点的显示文本，只有当blnIncludeSite为true时才生效
        optionSiteValue  选项的SiteValue属性(自定义的附加属性)，表示所属站点的键，只有当blnIncludeSite为true时才生效
******************************************************/
function typeTreeViewSelectIdToList(oSelect, strSelectId, strSplitSign, strType, blnClear, strMode, blnIncludeSite, strSiteText, strSiteValue)
{
    if(strSelectId == null || strSelectId =="")
        return false;

    var tempArr = strSelectId.split(strSplitSign);
    var optionType = tempArr[0];
    var optionValue = tempArr[1];
    var optionText = tempArr[2];
    
    if(strType == null || optionType == strType)
    {
        if(blnClear || (strMode.toUpperCase() == SINGLEMODE && optionValue != ""))
        {
            ClearSelectOptions(oSelect, strType);
        }
        NewUniqueValueOption(oSelect, optionText, optionValue, optionType, blnIncludeSite, strSiteText, strSiteValue);
    }
    
    if(blnIncludeSite)
    {
        addOptionSitePrefix(oSelect);
    }
    return true;
}


/******************************************************
描述：	根据列表项的Type属性获取相应的Text的前缀
返回：	显示文本的前缀
参数：	列表项的Type属性
******************************************************/
function getOptionTypePrefix(strType)
{
    var prefix;
    switch(strType)
        {
            case PORTALUSERTYPE:
                prefix = "[" + PORTALUSERTEXT + "]";
                break;
            case USERGROUPTYPE:
                prefix = "[" + USERGROUPTEXT + "]";
                break;
            case PORTALROLETYPE:
                prefix = "[" + PORTALROLETEXT + "]";
                break;
            case USERCATEGORYTYPE:
                prefix = "[" + USERCATEGORYTEXT + "]";
                break;
            case PORTALCOMPONENTTYPE:
                prefix = "[" + PORTALCOMPONENTTEXT + "]";
                break;
            case PORTALPAGETYPE:
                prefix = "[" + PORTALPAGETEXT + "]";
                break;
            case COMDIRECTORYTYPE:
                prefix = "[" + COMDIRECTORYTEXT + "]";
                break;
            case PORTALMENUTYPE:
                prefix = "[" + PORTALMENUTEXT + "]";
                break;
            case PORTALSITETYPE:
                prefix = "[" + PORTALSITETEXT + "]";
                break;
            case ALLSITEUSERCATEGORYTYPE:
                prefix = "[" + USERCATEGORYTEXT + "]";
                break;
            case SPECIFYSITEUSERCATEGORYTYPE:
                prefix = "[" + USERCATEGORYTEXT + "]";
                break;
                
            case DEPARTMENTTYPE:
                prefix = "[" + DEPARTMENTTEXT + "]";
                break;
            case POSITIONTYPE:
                prefix = "[" + POSITIONTEXT + "]";
                break;
            case STATIONTYPE:
                prefix = "[" + STATIONTEXT + "]";
                break;
            case SPECIALGROUPTYPE:
                prefix = "[" + SPECIALGROUPTEXT + "]";
                break;
            case ACTIVITYTYPE:
                prefix = "[" + ACTIVITYTEXT + "]";
                break;
            case FORMDIRECTORYTYPE:
                prefix = "[" + FORMDIRECTORYTEXT +"]";
                break;
            case PROCESSTYPE:
                prefix = "[" + PROCESSTEXT + "]";
                break;
            case PACKAGETYPE:
                prefix = "[" + PACKAGETEXT + "]";
                break;
            case RESOURCEMETHODTYPE:
                prefix = "[" + RESOURCEMETHODTEXT + "]";
                break;
            case PORTALREGIONTYPE:
                prefix = "[" + PORTALREGIONTEXT + "]";
            case EMPLOYEECATEGORYTYPE:
                prefix = "[" + EMPLOYEECATEGORYTEXT + "]";
                break;
            case CONTRACTCATEGORYTEXT:
                prefix = "[" + CONTRACTCATEGORYTEXT + "]";
                break;
            case SCHEDULETYPE:
                prefix = "[" + SCHEDULETEXT + "]";
                break;
            case REPORTDIRECTORYTYPE:
                prefix = "[" + REPORTDIRECTORYTEXT +"]";
                break;
            case ASSETSCATEGORYTYPE:
                prefix = "[" + ASSETSCATEGORYTEXT +"]";
                break;
            case EMPLOYEETYPE:
                prefix="[" + EMPLOYEETEXT+"]";
            case ADDRESSTYPE:
                prefix="[" + ADDRESSTEXT+"]";
            case EMAILTYPE:
                prefix="[" + EMAILBOXTEXT+"]";
            case MEALSTYLETYPE:
                prefix="[" + MEALSTYLETEXT+"]";
            case MEETINGROOMTYPE:
                prefix = "[" + MEETINGROOMTEXT + "]";
                break;
        }
    return prefix;
}

/******************************************************
描述：	为列表项的显示文本添加类型前缀
返回：	无
参数：	oSelect Select对象（列表框）
******************************************************/
function addOptionTypePrefix(oSelect)
{
    for(var i = 0; i<oSelect.options.length; i++)
    {
        var option = oSelect.options.item(i);
        var typePrefix = getOptionTypePrefix(option.type);
        var sitePrefix = "";
        if(option.siteText != null && option.siteValue != null)
        {
            sitePrefix = "[" + option.siteText + "]";
        }
        
        if(option.text.substr(0, typePrefix.length) != typePrefix && option.text.substr(sitePrefix.length, typePrefix.length) != typePrefix)
        {
            if(sitePrefix != "" && option.text.substr(0, sitePrefix.length) == sitePrefix)
            {
                option.text = sitePrefix + typePrefix + option.text.substring(sitePrefix.length, option.text.length)
            }
            else
            {
                option.text = typePrefix + option.text;
            }
        }
    }
}

/******************************************************
描述：	为列表项的显示文本去掉类型前缀
返回：	无
参数：	oSelect Select对象（列表框）
******************************************************/
function delOptionTypePrefix(oSelect)
{
    for(var i = 0; i<oSelect.options.length; i++)
    {
        var option = oSelect.options.item(i);
        var typePrefix = getOptionTypePrefix(option.type);
        var sitePrefix;
        if(option.siteText != null && option.siteValue != null)
        {
            sitePrefix = "[" + option.siteText + "]";
        }
        
        if(option.text.substr(0, typePrefix.length) == typePrefix)
        {
            option.text = option.text.substring(typePrefix.length, option.text.length)
        }
        else
        {
            if(sitePrefix != "" && option.text.substr(sitePrefix.length, typePrefix.length) == typePrefix)
            {
                option.text = sitePrefix + option.text.substring(sitePrefix.length + typePrefix.length, option.text.length);
            }
        }
    }
}

/******************************************************
描述：	为列表项的显示文本添加站点前缀
返回：	无
参数：	oSelect Select对象（列表框）
******************************************************/
function addOptionSitePrefix(oSelect)
{
    for(var i = 0; i<oSelect.options.length; i++)
    {
        var option = oSelect.options.item(i);
        if(option.siteText != null && option.siteValue != null)
        {
            var sitePrefix = "[" + option.siteText + "]";
            if(option.text.substr(0, sitePrefix.length) != sitePrefix)
            {
                option.text = sitePrefix + option.text;
            }
        }
    }
}

/******************************************************
描述：	为列表项的显示文本去掉站点前缀
返回：	无
参数：	oSelect Select对象（列表框）
******************************************************/
function delOptionSitePrefix(oSelect)
{
    for(var i = 0; i<oSelect.options.length; i++)
    {
        var option = oSelect.options.item(i);
        
        if(option.siteText != null && option.siteValue != null)
        {
            var sitePrefix = "[" + option.siteText + "]";
            if(option.text.substr(0, sitePrefix.length) == sitePrefix)
            {
                option.text = option.text.substring(sitePrefix.length, option.text.length);
            }
        }
    }
}

/******************************************************
描述：	获取指定URL的某个请求参数值
返回：	参数值
参数：	strURLUnencoded URL字符串
        strKey  参数名
******************************************************/
function GetQueryParamter(strURLUnencoded,strKey)
{
    var strParam = strURLUnencoded.substring(strURLUnencoded.indexOf("?") + 1, strURLUnencoded.length);

    var arr1 = strParam.split("&");
    for(var i = 0; i < arr1.length; i++)
    {
        var arr2 = arr1[i].split("=");
        for(var j = 0; j < arr2.length; j++)
        {
            if(arr2[0] == strKey)
            {
                return arr2[1];
            }
        }
    }
    
    return null;
}

/******************************************************
描述：	根据一些基本参数构建公用对话框的基本URL
返回：	无
参数：	strURL 不带参数的基本Url
        strMode   选择模式：M为多选，S为单选
        strTheme    主题
        intPageSize 分页大小
******************************************************/
function CreateBaseURL(strURL, strMode, strTheme, intPageSize)
{
    var mode = MULTIPLEMODE;
    if(strMode != null && strMode.toUpperCase() == SINGLEMODE)
        mode = SINGLEMODE;
    strURL += "?mode=" + mode;
    
    if(strTheme !=null && strTheme != "")
        strURL += "&theme=" + strTheme;
    if(intPageSize !=null && intPageSize != "")
        strURL += "&pageSize=" + intPageSize;
    
    return strURL;
}

//获取用户（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetUser(oXmlDom, strMode, strTheme, intPageSize, strSiteId, strCategoryId, blnCanChoosePortalSite, blnCanChooseUserCategory, strIncludeSiteMode)
{
    var strURL = CommonDirBaseURL + "Common/GetUser.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, intPageSize);
    
    if(strSiteId != null && strSiteId != "")
        strURL += "&site=" + strSiteId;
    if(strCategoryId != null && strCategoryId != "")
        strURL += "&category=" + strCategoryId;
    if(blnCanChoosePortalSite != null && blnCanChoosePortalSite == true)
        strURL += "&canChooseSite=true";
    else
        strURL += "&canChooseSite=false";
    if(blnCanChooseUserCategory != null && blnCanChooseUserCategory == true)
        strURL += "&canChooseCategory=true";
    else
        strURL += "&canChooseCategory=false";
    if(strIncludeSiteMode != INCLUDESPECIFYSITE && strIncludeSiteMode != INCLUDEALLSITE)
        strURL += "&includeSiteMode=" + NOTINCLUDESITE;
    else
        strURL += "&includeSiteMode=" + strIncludeSiteMode;


    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个用户
function GetSingleUser(oXmlDom, strTheme, intPageSize, strSiteId, strCategoryId, blnCanChoosePortalSite, blnCanChooseUserCategory, strIncludeSiteMode)
{
    return GetUser(oXmlDom, SINGLEMODE, strTheme, intPageSize, strSiteId, strCategoryId, blnCanChoosePortalSite, blnCanChooseUserCategory, strIncludeSiteMode);
}
//获取多个用户
function GetMultiUser(oXmlDom, strTheme, intPageSize, strSiteId, strCategoryId, blnCanChoosePortalSite, blnCanChooseUserCategory, strIncludeSiteMode)
{
    return GetUser(oXmlDom, MULTIPLEMODE, strTheme, intPageSize, strSiteId, strCategoryId, blnCanChoosePortalSite, blnCanChooseUserCategory, strIncludeSiteMode);
}
//获取菜式（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetMealStyle(oXmlDom, strMode, strTheme, intPageSize, strMessHallId)
{
    var strURL = CommonDirBaseURL + "Common/GetMealStyle.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, intPageSize);
    
    if(strMessHallId != null && strMessHallId != "")
        strURL += "&strMessHallId=" + strMessHallId;
    
    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个菜式
function GetSingleMealStyle(oXmlDom, strTheme, intPageSize, strMessHallId)
{
    return GetMealStyle(oXmlDom, SINGLEMODE, strTheme, intPageSize, strMessHallId);
}
//获取多个菜式
function GetMultiMealStyle(oXmlDom, strTheme, intPageSize, strMessHallId)
{
    return GetMealStyle(oXmlDom, MULTIPLEMODE, strTheme, intPageSize, strMessHallId);
}

// 获取通讯录
//====================================================================================
//returnFieldName参数为要传回的字段名，默认是Id，title，如果returnFieldName非空，则传回Id，returnFieldName
function GetAddress(oXmlDom, strMode, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite,returnFieldName)
{
    var strURL = CommonDirBaseURL + "Common/GetAddress.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, intPageSize);
    
    if(strSiteId !=null && strSiteId != "")
        strURL += "&site=" + strSiteId;
    if(blnCanChoosePortalSite !=null && blnCanChoosePortalSite == true)
        strURL += "&canChooseSite=true";
    else
        strURL += "&canChooseSite=false";
     if(returnFieldName !=null && returnFieldName != "")
        strURL += "&returnFieldName=" + returnFieldName;   

    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个通讯录
function GetSingleAddress(oXmlDom, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite,returnFieldName)
{
    return GetAddress(oXmlDom, SINGLEMODE, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite,returnFieldName);
}
//获取多个通讯录
function GetMultiAddress(oXmlDom, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite,returnFieldName)
{
    return GetAddress(oXmlDom, MULTIPLEMODE, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite,returnFieldName);
}

//====================================================================================


//获取用户组（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetUserGroup(oXmlDom, strMode, strTheme, strSiteId, strCategoryId, blnCanChoosePortalSite, blnCanChooseUserCategory, strIncludeSiteMode)
{
    var strURL = CommonDirBaseURL + "Common/GetUserGroup.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, null);
        
    if(strSiteId !=null && strSiteId != "")
        strURL += "&site=" + strSiteId;
    if(strCategoryId !=null && strCategoryId != "")
        strURL += "&category=" + strCategoryId;
    if(blnCanChoosePortalSite !=null && blnCanChoosePortalSite == true)
        strURL += "&canChooseSite=true";
    else
        strURL += "&canChooseSite=false";
    if(blnCanChooseUserCategory !=null && blnCanChooseUserCategory == true)
        strURL += "&canChooseCategory=true";
    else
        strURL += "&canChooseCategory=false";
    if(strIncludeSiteMode != INCLUDESPECIFYSITE && strIncludeSiteMode != INCLUDEALLSITE)
        strURL += "&includeSiteMode=" + NOTINCLUDESITE;
    else
        strURL += "&includeSiteMode=" + strIncludeSiteMode;

    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个用户组
function GetSingleUserGroup(oXmlDom, strTheme, strSiteId, strCategoryId, blnCanChoosePortalSite, blnCanChooseUserCategory, strIncludeSiteMode)
{
    return GetUserGroup(oXmlDom, SINGLEMODE, strTheme, strSiteId, strCategoryId, blnCanChoosePortalSite, blnCanChooseUserCategory, strIncludeSiteMode);
}
//获取多个用户组
function GetMultiUserGroup(oXmlDom, strTheme, strSiteId, strCategoryId, blnCanChoosePortalSite, blnCanChooseUserCategory, strIncludeSiteMode)
{
    return GetUserGroup(oXmlDom, MULTIPLEMODE, strTheme, strSiteId, strCategoryId, blnCanChoosePortalSite, blnCanChooseUserCategory, strIncludeSiteMode);
}
//====================================================================================

//
function GetBasePortalResource(instanceId,resourceMethodId,strTheme,site)
{

    var strURL = CommonDirBaseURL + "Common/GetBasePortalObject.aspx";
     if(instanceId ==null && instanceId == "")
        return;
        strURL += "?instanceId=" + instanceId;
    if(resourceMethodId!=null && resourceMethodId!="")
        strURL += "&&resourceMethodId=" + resourceMethodId;
    if(strTheme!=null && strTheme!="")
        strURL += "&&strTheme=" + strTheme;
    if(site!=null && site!="")
        strURL += "&&site=" + site;
    return openDialog(strURL, 420, 600);
}
//获取角色（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetRole(oXmlDom, strMode, strTheme, intPageSize, strSiteId, strCategoryId, blnCanChoosePortalSite, blnCanChooseUserCategory, strIncludeSiteMode,strActivityId, blnIsDisplayHideRole)
{
    var strURL = CommonDirBaseURL + "Common/GetRole.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, intPageSize);
        
    if(strSiteId !=null && strSiteId != "")
        strURL += "&site=" + strSiteId;
    if(strCategoryId !=null && strCategoryId != "")
        strURL += "&category=" + strCategoryId;
    if(blnCanChoosePortalSite !=null && blnCanChoosePortalSite == true)
        strURL += "&canChooseSite=true";
    else
        strURL += "&canChooseSite=false";
    if(blnCanChooseUserCategory !=null && blnCanChooseUserCategory == true)
        strURL += "&canChooseCategory=true";
    else
        strURL += "&canChooseCategory=false";
    if(strIncludeSiteMode != INCLUDESPECIFYSITE && strIncludeSiteMode != INCLUDEALLSITE)
        strURL += "&includeSiteMode=" + NOTINCLUDESITE;
    else
        strURL += "&includeSiteMode=" + strIncludeSiteMode;
    if(strActivityId!=null && strActivityId!="")
        strURL += "&activity="+strActivityId;
    
    if(blnIsDisplayHideRole != null && blnIsDisplayHideRole == true)
        strURL += "&isDisplayHideRole=true";
    else
        strURL += "&isDisplayHideRole=false";
    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个角色
function GetSingleRole(oXmlDom, strTheme, intPageSize, strSiteId, strCategoryId, blnCanChoosePortalSite, blnCanChooseUserCategory, strIncludeSiteMode, strActivityId, blnIsDisplayHideRole)
{
    return GetRole(oXmlDom, SINGLEMODE, strTheme, intPageSize, strSiteId, strCategoryId, blnCanChoosePortalSite, blnCanChooseUserCategory, strIncludeSiteMode,strActivityId, blnIsDisplayHideRole);
}
//获取多个角色
function GetMultiRole(oXmlDom, strTheme, intPageSize, strSiteId, strCategoryId, blnCanChoosePortalSite, blnCanChooseUserCategory, strIncludeSiteMode, strActivityId, blnIsDisplayHideRole)
{
    return GetRole(oXmlDom, MULTIPLEMODE, strTheme, intPageSize, strSiteId, strCategoryId, blnCanChoosePortalSite, blnCanChooseUserCategory, strIncludeSiteMode,strActivityId, blnIsDisplayHideRole);
}
//通过活动获取多个参与角色
function GetMultiRoleByActivity(oXmlDom, strTheme, intPageSize, strSiteId, strCategoryId, blnCanChoosePortalSite, blnCanChooseUserCategory, strIncludeSiteMode,strActivityId)
{
    return GetRole(oXmlDom, MULTIPLEMODE, strTheme, intPageSize, strSiteId, strCategoryId, blnCanChoosePortalSite, blnCanChooseUserCategory, strIncludeSiteMode,strActivityId);
}
//通过活动获取多个参与角色
function GetSingleRoleByActivity(oXmlDom, strTheme, intPageSize, strSiteId, strCategoryId, blnCanChoosePortalSite, blnCanChooseUserCategory, strIncludeSiteMode,strActivityId)
{
    return GetRole(oXmlDom, SINGLEMODE, strTheme, intPageSize, strSiteId, strCategoryId, blnCanChoosePortalSite, blnCanChooseUserCategory, strIncludeSiteMode,strActivityId);
}
//====================================================================================


//获取用户类别（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetUserCategory(oXmlDom, strMode, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite, strIncludeSiteMode)
{
    var strURL = CommonDirBaseURL + "Common/GetUserCategory.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, intPageSize);
        
    if(strSiteId !=null && strSiteId != "")
        strURL += "&site=" + strSiteId;
    if(blnCanChoosePortalSite !=null && blnCanChoosePortalSite == true)
        strURL += "&canChooseSite=true";
    else
        strURL += "&canChooseSite=false";   
    if(strIncludeSiteMode != INCLUDESPECIFYSITE && strIncludeSiteMode != INCLUDEALLSITE)
        strURL += "&includeSiteMode=" + NOTINCLUDESITE;
    else
        strURL += "&includeSiteMode=" + strIncludeSiteMode;
    
    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个用户类别
function GetSingleUserCategory(oXmlDom, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite, strIncludeSiteMode)
{
    return GetUserCategory(oXmlDom, SINGLEMODE, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite, strIncludeSiteMode);
}
//获取多个用户类别
function GetMultiUserCategory(oXmlDom, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite, strIncludeSiteMode)
{
    return GetUserCategory(oXmlDom, MULTIPLEMODE, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite, strIncludeSiteMode);
}
//====================================================================================


//获取部件目录（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetComDirectory(oXmlDom, strMode, strTheme)
{
    var strURL = CommonDirBaseURL + "Common/GetComDirectory.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, null);

    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个部件目录
function GetSingleComDirectory(oXmlDom, strTheme)
{
    return GetComDirectory(oXmlDom, SINGLEMODE, strTheme);
}
//获取多个部件目录
function GetMultiComDirectory(oXmlDom, strTheme)
{
    return GetComDirectory(oXmlDom, MULTIPLEMODE, strTheme);
}
//====================================================================================


//获取部件（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetComponent(oXmlDom, strMode, strTheme, intPageSize)
{
    var strURL = CommonDirBaseURL + "Common/GetComponent.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, intPageSize);

    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个部件
function GetSingleComponent(oXmlDom, strTheme, intPageSize)
{
    return GetComponent(oXmlDom, SINGLEMODE, strTheme, intPageSize);
}
//获取多个部件
function GetMultiComponent(oXmlDom, strTheme, intPageSize)
{
    return GetComponent(oXmlDom, MULTIPLEMODE, strTheme, intPageSize);
}
//====================================================================================



//获取当前用户有权限的部件（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetComponentWithPrivilege(oXmlDom, strMode, strTheme, intPageSize, strMethodId)
{
    var strURL = CommonDirBaseURL + "Common/GetComponentWithPrivilege.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, intPageSize);
    
    if(strMethodId !=null && strMethodId != "")
        strURL += "&resourceMethod=" + strMethodId;

    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个部件
function GetSingleComponentWithPrivilege(oXmlDom, strTheme, intPageSize, strMethodId)
{
    return GetComponentWithPrivilege(oXmlDom, SINGLEMODE, strTheme, intPageSize, strMethodId);
}
//获取多个部件
function GetMultiComponentWithPrivilege(oXmlDom, strTheme, intPageSize, strMethodId)
{
    return GetComponentWithPrivilege(oXmlDom, MULTIPLEMODE, strTheme, intPageSize, strMethodId);
}
//====================================================================================



//获取页面（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetPage(oXmlDom, strMode, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite)
{
    var strURL = CommonDirBaseURL + "Common/GetPage.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, intPageSize);
        
    if(strSiteId !=null && strSiteId != "")
        strURL += "&site=" + strSiteId;
    if(blnCanChoosePortalSite !=null && blnCanChoosePortalSite == true)
        strURL += "&canChooseSite=true";
    else
        strURL += "&canChooseSite=false";

    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个页面
function GetSinglePage(oXmlDom, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite)
{
    return GetPage(oXmlDom, SINGLEMODE, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite);
}
//获取多个页面
function GetMultiPage(oXmlDom, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite)
{
    return GetPage(oXmlDom, MULTIPLEMODE, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite);
}
//====================================================================================


//获取栏目（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetMenu(oXmlDom, strMode, strTheme, strSiteId, blnCanChoosePortalSite)
{
    var strURL = CommonDirBaseURL + "Common/GetMenu.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, null);
    
    if(strSiteId !=null && strSiteId != "")
        strURL += "&site=" + strSiteId;
    if(blnCanChoosePortalSite !=null && blnCanChoosePortalSite == true)
        strURL += "&canChooseSite=true";
    else
        strURL += "&canChooseSite=false";

    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个栏目
function GetSingleMenu(oXmlDom, strTheme, strSiteId, blnCanChoosePortalSite)
{
    return GetMenu(oXmlDom, SINGLEMODE, strTheme, strSiteId, blnCanChoosePortalSite);
}
//获取多个栏目
function GetMultiMenu(oXmlDom, strTheme, strSiteId, blnCanChoosePortalSite)
{
    return GetMenu(oXmlDom, MULTIPLEMODE, strTheme, strSiteId, blnCanChoosePortalSite);
}
//====================================================================================


//获取站点（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetSite(oXmlDom, strMode, strTheme, intPageSize)
{
    var strURL = CommonDirBaseURL + "Common/GetSite.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, intPageSize);

    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个站点
function GetSingleSite(oXmlDom, strTheme, intPageSize)
{
    return GetSite(oXmlDom, SINGLEMODE, strTheme, intPageSize);
}
//获取多个站点
function GetMultiSite(oXmlDom, strTheme, intPageSize)
{
    return GetSite(oXmlDom, MULTIPLEMODE, strTheme, intPageSize);
}
//====================================================================================
//获取计划任务（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetSchedule(oXmlDom, strMode, strTheme, intPageSize)
{
    var strURL = CommonDirBaseURL + "Common/GetSchedule.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, intPageSize);

    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个计划任务
function GetSingleSchedule(oXmlDom, strTheme, intPageSize)
{
    return GetSchedule(oXmlDom, SINGLEMODE, strTheme, intPageSize);
}
//获取多个计划任务
function GetMultiSchedule(oXmlDom, strTheme, intPageSize)
{
    return GetSchedule(oXmlDom, MULTIPLEMODE, strTheme, intPageSize);
}
//====================================================================================

//获取主题（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetTheme(oXmlDom, strMode, strTheme, intPageSize)
{
    var strURL = CommonDirBaseURL + "Common/GetTheme.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, intPageSize);

    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个主题
function GetSingleTheme(oXmlDom, strTheme, intPageSize)
{
    return GetTheme(oXmlDom, SINGLEMODE, strTheme, intPageSize);
}
//获取多个主题
function GetMultiTheme(oXmlDom, strTheme, intPageSize)
{
    return GetTheme(oXmlDom, MULTIPLEMODE, strTheme, intPageSize);
}
//====================================================================================


//获取模板（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetTemplet(oXmlDom, strMode, strTheme, intPageSize)
{
    var strURL = CommonDirBaseURL + "Common/GetTemplet.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, intPageSize);

    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个模板
function GetSingleTemplet(oXmlDom, strTheme, intPageSize)
{
    return GetTemplet(oXmlDom, SINGLEMODE, strTheme, intPageSize);
}
//获取多个模板
function GetMultiTemplet(oXmlDom, strTheme, intPageSize)
{
    return GetTemplet(oXmlDom, MULTIPLEMODE, strTheme, intPageSize);
}
//====================================================================================


//获取资源操作（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetResourceMethod(oXmlDom, strMode, strTheme, intPageSize,resourceId)
{
    var strURL = CommonDirBaseURL + "Common/GetResourceMethod.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, intPageSize);
     if(resourceId !=null && resourceId != "")
        strURL += "&resourceId=" + resourceId;

    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个模板
function GetSingleResourceMethod(oXmlDom, strTheme, intPageSize,resourceId)
{
    return GetResourceMethod(oXmlDom, SINGLEMODE, strTheme, intPageSize,resourceId);
}
//获取多个模板
function GetMultiResourceMethod(oXmlDom, strTheme, intPageSize,resourceId)
{
    return GetResourceMethod(oXmlDom, MULTIPLEMODE, strTheme, intPageSize,resourceId);
}
//====================================================================================
//获取字段（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetField(oXmlDom, strMode, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite)
{
    var strURL = CommonDirBaseURL + "Common/GetField.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, intPageSize);

    if(strSiteId !=null && strSiteId != "")
        strURL += "&site=" + strSiteId;
    if(blnCanChoosePortalSite !=null && blnCanChoosePortalSite == true)
        strURL += "&canChooseSite=true";
    else
        strURL += "&canChooseSite=false";

    return openDialog(strURL, 700, 600, oXmlDom);
}

//获取单个字段
function GetSingleField(oXmlDom, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite)
{
    return GetField(oXmlDom, SINGLEMODE, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite);
}

//获取多个字段
function GetMultiField(oXmlDom, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite)
{
    return GetField(oXmlDom, MULTIPLEMODE, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite);
}
//====================================================================================
//====================================================================================
//获取字段代码（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）function GetSingleFieldCode(oXmlDom, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite)
{
    return GetFieldCode(oXmlDom, SINGLEMODE, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite);
}
//====================================================================================
function GetFieldCode(oXmlDom, strMode, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite)
{
    var strURL = CommonDirBaseURL + "Common/GetFieldCode.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, intPageSize);

    if(strSiteId !=null && strSiteId != "")
        strURL += "&site=" + strSiteId;
    if(blnCanChoosePortalSite !=null && blnCanChoosePortalSite == true)
        strURL += "&canChooseSite=true";
    else
        strURL += "&canChooseSite=false";

    return openDialog(strURL, 700, 600, oXmlDom);
}

//获取与指定表单相关的字段（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
//blnIncluedForm表示是否指定表单来选择字段，为False时不指定，可以跨站点选择字段 blnIncludeFieldCode表示是否包含字段代码
function GetFieldWithFormFieldRelation(oXmlDom, strMode, strTheme, intPageSize, blnIncluedForm, strPortalFormId, blnIncludeFieldCode)
{
    return GetFieldWithFormFieldRelationByDataTypeAndFieldTypeAndPhysicalType(oXmlDom, strMode, strTheme, intPageSize, blnIncluedForm, strPortalFormId, null, null, null, blnIncludeFieldCode);
}
//获取单个字段
function GetSingleFieldWithFormFieldRelation(oXmlDom, strTheme, intPageSize, blnIncluedForm, strPortalFormId, blnIncludeFieldCode)
{
    return GetFieldWithFormFieldRelation(oXmlDom, SINGLEMODE, strTheme, intPageSize, blnIncluedForm, strPortalFormId, blnIncludeFieldCode);
}
//获取多个字段
function GetMultiFieldWithFormFieldRelation(oXmlDom, strTheme, intPageSize, blnIncluedForm, strPortalFormId, blnIncludeFieldCode)
{
    return GetFieldWithFormFieldRelation(oXmlDom, MULTIPLEMODE, strTheme, intPageSize, blnIncluedForm, strPortalFormId, blnIncludeFieldCode);
}

//*****************************************************************************
//获取指定表单，指定数据类型的字段
//oXmlDom, strMode, strTheme, intPageSize, blnIncluedForm, strPortalFormId, FieldDataType， FieldType， PhysicalType
//表单字段关系，模式，样式，   页面大小，  包含表单，       表单ID，        字段数据类型    字段类型    实现方式
//*****************************************************************************
function GetFieldWithFormFieldRelationByDataTypeAndFieldTypeAndPhysicalType(oXmlDom, strMode, strTheme, intPageSize, blnIncludeForm, strPortalFormId, FieldDataType, FieldType, PhysicalType, blnIncludeFieldCode)
{
    var strURL = CommonDirBaseURL + "Common/GetFieldWithFormFieldRelation.aspx";
    
    strURL = CreateBaseURL(strURL, strMode, strTheme, intPageSize);
    
    strURL = AppendUrlParamNotNull(strURL, "blnIncludeForm", blnIncludeForm);
    strURL = AppendUrlParamNotNull(strURL, "form", strPortalFormId);
    
    strURL = AppendUrlParamNotNull(strURL, "fieldDataType", FieldDataType);
    strURL = AppendUrlParamNotNull(strURL, "fieldType", FieldType);
    strURL = AppendUrlParamNotNull(strURL, "physicalType", PhysicalType);
    
    blnIncludeFieldCode = (blnIncludeFieldCode==null) ? true : blnIncludeFieldCode;
    strURL = AppendUrlParamNotNull(strURL, "blnIncludeFieldCode", blnIncludeFieldCode);
    
    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个字段
function GetSingleFieldWithFormFieldRelationAndFieldDataType(oXmlDom, strTheme, intPageSize, blnIncluedForm, strPortalFormId, FieldDataType, FieldType, PhysicalType, blnIncludeFieldCode)
{
    return GetMultiFieldWithFormFieldRelationAndFieldDataType(oXmlDom, SINGLEMODE, strTheme, intPageSize, blnIncluedForm, strPortalFormId, FieldDataType, FieldType, PhysicalType, blnIncludeFieldCode)
}
//获取多个字段
function GetMultiFieldWithFormFieldRelationAndFieldDataType(oXmlDom, strTheme, intPageSize, blnIncluedForm, strPortalFormId, FieldDataType, FieldType, PhysicalType, blnIncludeFieldCode)
{
    return GetMultiFieldWithFormFieldRelationAndFieldDataType(oXmlDom, MULTIPLEMODE, strTheme, intPageSize, blnIncluedForm, strPortalFormId, FieldDataType, FieldType, PhysicalType, blnIncludeFieldCode)
}

//====================================================================================
//blnIncluedForm表示是否指定表单来选择字段，为False时不指定，可以跨站点选择字段
function GetSearchTemplet(oXmlDom, strMode, strTheme, intPageSize, strPortalFormId)
{
    var strURL = CommonDirBaseURL + "Common/GetSearchTempletWithCollectCondition.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, intPageSize);

   
    if(strPortalFormId !=null && strPortalFormId != "")
        strURL += "&form=" + strPortalFormId;

    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个字段
function GetSingleSearchTemplet(oXmlDom, strTheme, intPageSize,  strPortalFormId)
{
    return GetSearchTemplet(oXmlDom, SINGLEMODE, strTheme, intPageSize,  strPortalFormId);
}
//获取多个字段
function GetMultiSearchTemplet(oXmlDom, strTheme, intPageSize,  strPortalFormId)
{
    return GetSearchTemplet(oXmlDom, MULTIPLEMODE, strTheme, intPageSize,  strPortalFormId);
}
//====================================================================================
//获得某类别下的所属子类项;strType 目前支持 ComAction，及 CodeItem
function GetCodeItem(oXmlDom,strTheme,codeId,strType)
{
    var strURL = CommonDirBaseURL + "Common/GetCodeItem.aspx";
   // var strURL = "~/Common/GetCodeItem.aspx";
    
    if(codeId !=null && codeId != ""&& strType!=null && strType!="")
        strURL += "?codeId=" + codeId+"&strType="+strType;
    else
        return;
    if(strTheme !=null && strTheme != "")
        strURL += "&strTheme=" + strTheme;
    return    window.showModalDialog(strURL,oXmlDom,'dialogHeight:' + 550  + 'px;dialogWidth:' +400 + 'px;scroll:yes;status:no;resizable:no;help:no;center:yes;');
                                                                                                                    //区别
//    return openDialog(strURL, 400, 520, oXmlDom);
}
//获取指定代码类别下的某个代码项，并将其返回结果进行控件的value属性绑定
function GetCodeItemAndBindResult(strTheme, codeCategoryId, valueBindControl, textBindControl, itemValueBindControl)
{
    var strXml = '<Objects><Object>';
    if(valueBindControl != null && valueBindControl.value != null)
        strXml += '<Value>' + valueBindControl.value + '</Value>';
    else
        strXml += '<Value></Value>';

    if(textBindControl != null && textBindControl.value != null)
        strXml += '<Text>' + textBindControl.value + '</Text>';
    else
        strXml += '<Text></Text>';

    if(itemValueBindControl != null && itemValueBindControl.value != null)
        strXml += '<ItemValue>' + itemValueBindControl.value + '</ItemValue>';
    else
        strXml += '<ItemValue></ItemValue>';
    strXml += '</Object></Objects>';

    var oXmlDom = new ActiveXObject('Microsoft.XMLDOM');
    oXmlDom.loadXML(strXml);

    var returnValue = GetCodeItem(oXmlDom, strTheme,codeCategoryId,'CodeItem');   
    if (returnValue != null && returnValue.xml != '')
    {
        if(valueBindControl != null)
            valueBindControl.value = getInnerTextByXml(returnValue.xml, VALUE);
        if(textBindControl != null)
            textBindControl.value = getInnerTextByXml(returnValue.xml, TEXT);
        if(itemValueBindControl != null)
            itemValueBindControl.value = getInnerTextByXml(returnValue.xml, ITEMVALUE);
    }
    
    return returnValue;
}

//获取表单（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetForm(oXmlDom, strMode, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite,strIncludeSiteMode)
{
    var strURL = CommonDirBaseURL + "Common/GetForm.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, intPageSize);
    
    if(strSiteId !=null && strSiteId != "")
        strURL += "&site=" + strSiteId;
    if(blnCanChoosePortalSite !=null && blnCanChoosePortalSite == true)
        strURL += "&canChooseSite=true";
    else
        strURL += "&canChooseSite=false";
    if(strIncludeSiteMode == INCLUDESPECIFYSITE)
        strURL += "&includeSiteMode=" + INCLUDESPECIFYSITE;
    else
        strURL += "&includeSiteMode=" + NOTINCLUDESITE;
    
    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个表单
function GetSingleForm(oXmlDom, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite,strIncludeSiteMode)
{
    return GetForm(oXmlDom, SINGLEMODE, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite,strIncludeSiteMode);
}
//获取多个表单
function GetMultiForm(oXmlDom, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite,strIncludeSiteMode)
{
    return GetForm(oXmlDom, MULTIPLEMODE, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite,strIncludeSiteMode);
}
//====================================================================================
// 选择过程
//====================================================================================
function GetProcess(oXmlDom, strMode, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite,packageID)
{
    var strURL = CommonDirBaseURL + "Common/GetProcess.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, intPageSize);
    
    if(strSiteId !=null && strSiteId != "")
        strURL += "&site=" + strSiteId;
    if(blnCanChoosePortalSite !=null && blnCanChoosePortalSite == true)
        strURL += "&canChooseSite=true";
    else
        strURL += "&canChooseSite=false";
     if(packageID !=null && packageID != "")
        strURL += "&packageID=" + packageID;   

    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个过程
function GetSingleProcess(oXmlDom, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite)
{
    return GetProcess(oXmlDom, SINGLEMODE, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite,null);
}
//获取多个过程
function GetMultiProcess(oXmlDom, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite)
{
    return GetProcess(oXmlDom, MULTIPLEMODE, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite,null);
}
//通过包来获取
function GetSingleProcessWithPackage(oXmlDom, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite,packageID)
{
    return GetProcess(oXmlDom, SINGLEMODE, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite,packageID);
}
//function GetMultiProcessWithPackage()
//{}
//====================================================================================
//选择包
//====================================================================================
function GetPackage(oXmlDom, strMode, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite)
{
    var strURL = CommonDirBaseURL + "Common/GetPackage.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, intPageSize);
    
    if(strSiteId !=null && strSiteId != "")
        strURL += "&site=" + strSiteId;
    if(blnCanChoosePortalSite !=null && blnCanChoosePortalSite == true)
        strURL += "&canChooseSite=true";
    else
        strURL += "&canChooseSite=false";

    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个包
function GetSinglePackage(oXmlDom, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite)
{
    return GetPackage(oXmlDom, SINGLEMODE, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite);
}
//获取多个包
function GetMultiPackage(oXmlDom, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite)
{
    return GetPackage(oXmlDom, MULTIPLEMODE, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite);
}
//====================================================================================


//获取门户应用（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetApplication(oXmlDom, strMode, strTheme, intPageSize)
{
    var strURL = CommonDirBaseURL + "Common/GetApplication.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, intPageSize);

    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个门户应用
function GetSingleApplication(oXmlDom, strTheme, intPageSize)
{
    return GetApplication(oXmlDom, SINGLEMODE, strTheme, intPageSize);
}
//获取多个门户应用
function GetMultiApplication(oXmlDom, strTheme, intPageSize)
{
    return GetApplication(oXmlDom, MULTIPLEMODE, strTheme, intPageSize);
}
//====================================================================================


//获取资源（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetResource(oXmlDom, strMode, strTheme, intPageSize)
{
    var strURL = CommonDirBaseURL + "Common/GetResource.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, intPageSize);

    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个资源
function GetSingleResource(oXmlDom, strTheme, intPageSize)
{
    return GetResource(oXmlDom, SINGLEMODE, strTheme, intPageSize);
}
//获取多个资源
function GetMultiResource(oXmlDom, strTheme, intPageSize)
{
    return GetResource(oXmlDom, MULTIPLEMODE, strTheme, intPageSize);
}
//====================================================================================


//获取代码类别（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetCodeCategory(oXmlDom, strMode, strTheme, intPageSize)
{
    var strURL = CommonDirBaseURL + "Common/GetCodeCategory.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, intPageSize);

    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个代码类别
function GetSingleCodeCategory(oXmlDom, strTheme, intPageSize)
{
    return GetCodeCategory(oXmlDom, SINGLEMODE, strTheme, intPageSize);
}
//获取多个代码类别
function GetMultiCodeCategory(oXmlDom, strTheme, intPageSize)
{
    return GetCodeCategory(oXmlDom, MULTIPLEMODE, strTheme, intPageSize);
}
//====================================================================================


//获取表单模板（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetFormTemplet(oXmlDom, strMode, strTheme, intPageSize, strSiteId, strFormId, blnCanChoosePortalSite, blnCanChoosePortalForm)
{
    var strURL = CommonDirBaseURL + "Common/GetFormTemplet.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, intPageSize);

    if(strSiteId !=null && strSiteId != "")
        strURL += "&site=" + strSiteId;
    if(strFormId !=null && strFormId != "")
        strURL += "&form=" + strFormId;
    if(blnCanChoosePortalSite !=null && blnCanChoosePortalSite == true)
        strURL += "&canChooseSite=true";
    else
        strURL += "&canChooseSite=false";
    if(blnCanChoosePortalForm !=null && blnCanChoosePortalForm == true)
        strURL += "&canChooseForm=true";
    else
        strURL += "&canChooseForm=false";

    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个表单模板
function GetSingleFormTemplet(oXmlDom, strTheme, intPageSize, strSiteId, strFormId, blnCanChoosePortalSite, blnCanChoosePortalForm)
{
    return GetFormTemplet(oXmlDom, SINGLEMODE, strTheme, intPageSize, strSiteId, strFormId, blnCanChoosePortalSite, blnCanChoosePortalForm);
}
//获取多个表单模板
function GetMultiFormTemplet(oXmlDom, strTheme, intPageSize, strSiteId, strFormId, blnCanChoosePortalSite, blnCanChoosePortalForm)
{
    return GetFormTemplet(oXmlDom, MULTIPLEMODE, strTheme, intPageSize, strSiteId, strFormId, blnCanChoosePortalSite, blnCanChoosePortalForm);
}
//====================================================================================


//获取职种（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetPositionCategory(oXmlDom, strMode, strTheme, strSiteId, blnCanChoosePortalSite)
{
    var strURL = CommonDirBaseURL + "Common/GetPositionCategory.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, null);
    
    if(strSiteId !=null && strSiteId != "")
        strURL += "&site=" + strSiteId;
    if(blnCanChoosePortalSite !=null && blnCanChoosePortalSite == true)
        strURL += "&canChooseSite=true";
    else
        strURL += "&canChooseSite=false";

    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个职种
function GetSinglePositionCategory(oXmlDom, strTheme, strSiteId, blnCanChoosePortalSite)
{
    return GetPositionCategory(oXmlDom, SINGLEMODE, strTheme, strSiteId, blnCanChoosePortalSite);
}
//获取多个职种
function GetMultiPositionCategory(oXmlDom, strTheme, strSiteId, blnCanChoosePortalSite)
{
    return GetPositionCategory(oXmlDom, MULTIPLEMODE, strTheme, strSiteId, blnCanChoosePortalSite);
}
//====================================================================================


//获取机构（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetDepartment(oXmlDom, strMode, strTheme, strSiteId, blnCanChoosePortalSite,strIncludeSiteMode)
{
    var strURL = CommonDirBaseURL + "Common/GetDepartment.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, null);
    
    if(strSiteId !=null && strSiteId != "")
        strURL += "&site=" + strSiteId;
    if(blnCanChoosePortalSite !=null && blnCanChoosePortalSite == true)
        strURL += "&canChooseSite=true";
    else
        strURL += "&canChooseSite=false";
    if(strIncludeSiteMode !=null && strIncludeSiteMode != "")
        strURL += "&includeSiteMode=" + strIncludeSiteMode;
    return openDialog(strURL, 700, 600, oXmlDom);
}

//获取单个机构
function GetSingleDepartment(oXmlDom, strTheme, strSiteId, blnCanChoosePortalSite,strIncludeSiteMode)
{
    if(strIncludeSiteMode!=null)
        return GetDepartment(oXmlDom, SINGLEMODE, strTheme, strSiteId, blnCanChoosePortalSite,strIncludeSiteMode);
    else
        return GetDepartment(oXmlDom, SINGLEMODE, strTheme, strSiteId, blnCanChoosePortalSite);
}
//获取多个机构
function GetMultiDepartment(oXmlDom, strTheme, strSiteId, blnCanChoosePortalSite,strIncludeSiteMode)
{
    if(strIncludeSiteMode!=null)
        return GetDepartment(oXmlDom, MULTIPLEMODE, strTheme, strSiteId, blnCanChoosePortalSite,strIncludeSiteMode);
    else
        return GetDepartment(oXmlDom, MULTIPLEMODE, strTheme, strSiteId, blnCanChoosePortalSite);
}
//====================================================================================
function GetDepartmentWithIndex(oXmlDom, strMode, strTheme, strSiteId, blnCanChoosePortalSite)
{
    var strURL = CommonDirBaseURL + "Common/GetDepartmentWithIndex.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, null);
    
    if(strSiteId !=null && strSiteId != "")
        strURL += "&site=" + strSiteId;
    if(blnCanChoosePortalSite !=null && blnCanChoosePortalSite == true)
        strURL += "&canChooseSite=true";
    else
        strURL += "&canChooseSite=false";

    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个机构
function GetSingleDepartmentWithIndex(oXmlDom, strTheme, strSiteId, blnCanChoosePortalSite)
{
    return GetDepartmentWithIndex(oXmlDom, SINGLEMODE, strTheme, strSiteId, blnCanChoosePortalSite);
}
//获取多个机构
function GetMultiDepartmentWithIndex(oXmlDom, strTheme, strSiteId, blnCanChoosePortalSite)
{
    return GetDepartmentWithIndex(oXmlDom, MULTIPLEMODE, strTheme, strSiteId, blnCanChoosePortalSite);
}
//====================================================================================
//能够通过职务获取机构（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetDepartmentWithPosition(oXmlDom, strMode, strTheme, strSiteId, positionId)
{
    var strURL = CommonDirBaseURL + "Common/GetDepartmentWithPosition.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, null);
    
    if(strSiteId !=null && strSiteId != "")
        strURL += "&site=" + strSiteId;
    if(positionId !=null && positionId != "")
        strURL += "&positionId=" + positionId;
    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个机构
function GetSingleDepartmentWithPosition(oXmlDom, strTheme, strSiteId, positionId)
{
    return GetDepartmentWithPosition(oXmlDom, SINGLEMODE, strTheme, strSiteId, positionId);
}
//获取多个机构
function GetMultiDepartmentWithPosition(oXmlDom, strTheme, strSiteId, positionId)
{
    return GetDepartmentWithPosition(oXmlDom, MULTIPLEMODE, strTheme, strSiteId, positionId);
}
//====================================================================================
//获取表单目录（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetFormDirectory(oXmlDom, strMode, strTheme, strSiteId, blnCanChoosePortalSite)
{
    var strURL = CommonDirBaseURL + "Common/GetFormDirectory.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, null);
    
    if(strSiteId !=null && strSiteId != "")
        strURL += "&site=" + strSiteId;
    if(blnCanChoosePortalSite !=null && blnCanChoosePortalSite == true)
        strURL += "&canChooseSite=true";
    else
        strURL += "&canChooseSite=false";

    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个表单目录
function GetSingleFormDirectory(oXmlDom, strTheme, strSiteId, blnCanChoosePortalSite)
{
    return GetFormDirectory(oXmlDom, SINGLEMODE, strTheme, strSiteId, blnCanChoosePortalSite);
}
//获取多个表单目录
function GetMultiFormDirectory(oXmlDom, strTheme, strSiteId, blnCanChoosePortalSite)
{
    return GetFormDirectory(oXmlDom, MULTIPLEMODE, strTheme, strSiteId, blnCanChoosePortalSite);
}
//====================================================================================


//获取信息（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetInformation(oXmlDom, strMode, strTheme, strSiteId, blnCanChoosePortalSite)
{
    var strURL = CommonDirBaseURL + "Common/GetInformation.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, null);
    
    if(strSiteId !=null && strSiteId != "")
        strURL += "&site=" + strSiteId;
    if(blnCanChoosePortalSite !=null && blnCanChoosePortalSite == true)
        strURL += "&canChooseSite=true";
    else
        strURL += "&canChooseSite=false";

    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个员工
function GetSingleInformation(oXmlDom, strTheme, strSiteId, blnCanChoosePortalSite)
{
    return GetInformation(oXmlDom, SINGLEMODE, strTheme, strSiteId, blnCanChoosePortalSite);
}
//获取多个员工
function GetMultiInformation(oXmlDom, strTheme, strSiteId, blnCanChoosePortalSite)
{
    return GetInformation(oXmlDom, MULTIPLEMODE, strTheme, strSiteId, blnCanChoosePortalSite);
}
//====================================================================================
//获取信息文件夹目录（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetInformationFolder(oXmlDom, strMode, strTheme, strSiteId, blnCanChoosePortalSite)
{
    var strURL = CommonDirBaseURL + "Common/GetInformationFolder.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, null);
    
    if(strSiteId !=null && strSiteId != "")
        strURL += "&site=" + strSiteId;
    if(blnCanChoosePortalSite !=null && blnCanChoosePortalSite == true)
        strURL += "&canChooseSite=true";
    else
        strURL += "&canChooseSite=false";

    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个表单目录
function GetSingleInformationFolder(oXmlDom, strTheme, strSiteId, blnCanChoosePortalSite)
{
    return GetInformationFolder(oXmlDom, SINGLEMODE, strTheme, strSiteId, blnCanChoosePortalSite);
}
//获取多个表单目录
function GetMultiInformationFolder(oXmlDom, strTheme, strSiteId, blnCanChoosePortalSite)
{
    return GetInformationFolder(oXmlDom, MULTIPLEMODE, strTheme, strSiteId, blnCanChoosePortalSite);
}
//====================================================================================
//获取信息分类目录（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetInformationCategory(oXmlDom, strMode, strTheme, strSiteId, blnCanChoosePortalSite)
{
    var strURL = CommonDirBaseURL + "Common/GetInformationCategory.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, null);
    
    if(strSiteId !=null && strSiteId != "")
        strURL += "&site=" + strSiteId;
    if(blnCanChoosePortalSite !=null && blnCanChoosePortalSite == true)
        strURL += "&canChooseSite=true";
    else
        strURL += "&canChooseSite=false";

    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个表单目录
function GetSingleInformationCategory(oXmlDom, strTheme, strSiteId, blnCanChoosePortalSite)
{
    return GetInformationCategory(oXmlDom, SINGLEMODE, strTheme, strSiteId, blnCanChoosePortalSite);
}
//获取多个表单目录
function GetMultiInformationCategory(oXmlDom, strTheme, strSiteId, blnCanChoosePortalSite)
{
    return GetInformationCategory(oXmlDom, MULTIPLEMODE, strTheme, strSiteId, blnCanChoosePortalSite);
}
//====================================================================================
//====================================================================================
//获取电子邮箱（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetEmailBox(oXmlDom, strMode, strTheme,strUserId, blnDeletedBox,blnDraftBox,blnReceiveBox,blnSendBox,blnUserDefine)
{
    var strURL = CommonDirBaseURL + "Common/GetEmailBox.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, null);
    if(strUserId !=null && strUserId != '')
        strURL += "&strUserId="+strUserId;
    else
        strURL += "&strUserId=false";
    if(blnDeletedBox !=null && blnDeletedBox == true)
        strURL += "&blnDeletedBox=true";
    else
        strURL += "&blnDeletedBox=false";
        
    if(blnDraftBox !=null && blnDraftBox == true)
        strURL += "&blnDraftBox=true";
    else
        strURL += "&blnDraftBox=false";
        
    if(blnReceiveBox !=null && blnReceiveBox == true)
        strURL += "&blnReceiveBox=true";
    else
        strURL += "&blnReceiveBox=false";
        
    if(blnSendBox !=null && blnSendBox == true)
        strURL += "&blnSendBox=true";
    else
        strURL += "&blnSendBox=false";
        
    if(blnUserDefine !=null && blnUserDefine == true)
        strURL += "&blnUserDefine=true";
    else
        strURL += "&blnUserDefine=false";

    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个电子邮箱
function GetSingleEmailBox(oXmlDom,strTheme,strUserId, blnDeletedBox,blnDraftBox,blnReceiveBox,blnSendBox,blnUserDefine)
{
    return GetEmailBox(oXmlDom, SINGLEMODE, strTheme,strUserId,blnDeletedBox,blnDraftBox,blnReceiveBox,blnSendBox,blnUserDefine);
}
//获取多个电子邮箱
function GetMultiEmailBox(oXmlDom, strTheme, strUserId,blnDeletedBox,blnDraftBox,blnReceiveBox,blnSendBox,blnUserDefine)
{
    return GetEmailBox(oXmlDom, MULTIPLEMODE, strUserId,strTheme,blnDeletedBox,blnDraftBox,blnReceiveBox,blnSendBox,blnUserDefine);
}
//====================================================================================

//获取岗位（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetStation(oXmlDom, strMode, strTheme, strSiteId, blnCanChoosePortalSite,strIncludeSiteMode)
{
    var strURL = CommonDirBaseURL + "Common/GetStation.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, null);
    
    if(strSiteId !=null && strSiteId != "")
        strURL += "&site=" + strSiteId;
    if(blnCanChoosePortalSite !=null && blnCanChoosePortalSite == true)
        strURL += "&canChooseSite=true";
    else
        strURL += "&canChooseSite=false";
 if(strIncludeSiteMode !=null && strIncludeSiteMode != "")
        strURL += "&includeSiteMode=" + strIncludeSiteMode;
    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个岗位
function GetSingleStation(oXmlDom, strTheme, strSiteId, blnCanChoosePortalSite,strIncludeSiteMode)
{
    if (strIncludeSiteMode!=null)
        return GetStation(oXmlDom, SINGLEMODE, strTheme, strSiteId, blnCanChoosePortalSite,strIncludeSiteMode);
    else
        return GetStation(oXmlDom, SINGLEMODE, strTheme, strSiteId, blnCanChoosePortalSite);
}
//获取多个岗位
function GetMultiStation(oXmlDom, strTheme, strSiteId, blnCanChoosePortalSite,strIncludeSiteMode)
{
    if(strIncludeSiteMode!=null)
        return GetStation(oXmlDom, MULTIPLEMODE, strTheme, strSiteId, blnCanChoosePortalSite,strIncludeSiteMode);
    else
        return GetStation(oXmlDom, MULTIPLEMODE, strTheme, strSiteId, blnCanChoosePortalSite);
}
//====================================================================================


//获取职务（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetPosition(oXmlDom, strMode, strTheme, strSiteId, blnCanChoosePortalSite,strIncludeSiteMode)
{
    var strURL = CommonDirBaseURL + "Common/GetPosition.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, null);
    
    if(strSiteId !=null && strSiteId != "")
        strURL += "&site=" + strSiteId;
    if(blnCanChoosePortalSite !=null && blnCanChoosePortalSite == true)
        strURL += "&canChooseSite=true";
    else
        strURL += "&canChooseSite=false";
 if(strIncludeSiteMode !=null && strIncludeSiteMode != "")
        strURL += "&includeSiteMode=" + strIncludeSiteMode;
    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个职务
function GetSinglePosition(oXmlDom, strTheme, strSiteId,blnCanChoosePortalSite, strIncludeSiteMode)
{
    if(strIncludeSiteMode!=null)
        return GetPosition(oXmlDom, SINGLEMODE, strTheme, strSiteId, blnCanChoosePortalSite, strIncludeSiteMode);
    else
        return GetPosition(oXmlDom, SINGLEMODE, strTheme, strSiteId, blnCanChoosePortalSite);
}
//获取多个职务
function GetMultiPosition(oXmlDom, strTheme, strSiteId, blnCanChoosePortalSite,strIncludeSiteMode)
{

    if(strIncludeSiteMode!=null)
        return GetPosition(oXmlDom, MULTIPLEMODE, strTheme, strSiteId, blnCanChoosePortalSite,strIncludeSiteMode);
    else
        return GetPosition(oXmlDom, MULTIPLEMODE, strTheme, strSiteId, blnCanChoosePortalSite);
}
//====================================================================================


//获取职务（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetPositionWithDepartment(oXmlDom, strMode, strTheme, strDepartmentId2)
{
    var strURL = CommonDirBaseURL + "Common/GetPositionWithDepartment.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, null);
    
    if(strDepartmentId2 !=null && strDepartmentId2 != "")
        strURL += "&departmentId=" + strDepartmentId2;
    

    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个职务
function GetSinglePositionWithDepartment(oXmlDom, strTheme, strDepartmentId1)
{
    return GetPositionWithDepartment(oXmlDom, SINGLEMODE,  strTheme, strDepartmentId1);
}
//获取多个职务
function GetMultiPositionWithDepartment(oXmlDom, strTheme, strDepartmentId)
{
    return GetPositionWithDepartment(oXmlDom, MULTIPLEMODE,strMode, strTheme, strDepartmentId);
}
//====================================================================================


//获取员工（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetEmployee(oXmlDom, strMode, strTheme, strSiteId, blnCanChoosePortalSite)
{
    var strURL = CommonDirBaseURL + "Common/GetEmployee.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, null);
    
    if(strSiteId !=null && strSiteId != "")
        strURL += "&site=" + strSiteId;
    if(blnCanChoosePortalSite !=null && blnCanChoosePortalSite == true)
        strURL += "&canChooseSite=true";
    else
        strURL += "&canChooseSite=false";

    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个员工
function GetSingleEmployee(oXmlDom, strTheme, strSiteId, blnCanChoosePortalSite)
{
    return GetEmployee(oXmlDom, SINGLEMODE, strTheme, strSiteId, blnCanChoosePortalSite);
}
//获取多个员工
function GetMultiEmployee(oXmlDom, strTheme, strSiteId, blnCanChoosePortalSite)
{
    return GetEmployee(oXmlDom, MULTIPLEMODE, strTheme, strSiteId, blnCanChoosePortalSite);
}
//====================================================================================
//获取会议室（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetMeetingRoom(oXmlDom, strMode, strTheme, intPageSize,strSiteId, blnCanChoosePortalSite,strIncludeSiteMode)
{
    var strURL = CommonDirBaseURL + "Common/GetMeetingRoom.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, intPageSize);
    if(strSiteId !=null && strSiteId != "")
        strURL += "&strSiteId=" + strSiteId;
     if(blnCanChoosePortalSite !=null && blnCanChoosePortalSite == true)
        strURL += "&blnCanChoosePortalSite=true";
        else
        strURL += "&blnCanChoosePortalSite=false";
     if(strIncludeSiteMode != INCLUDESPECIFYSITE && strIncludeSiteMode != INCLUDEALLSITE)
        strURL += "&includeSiteMode=" + NOTINCLUDESITE;
    else
        strURL += "&includeSiteMode=" + strIncludeSiteMode;

    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个会议室
function GetSingleMeetingRoom(oXmlDom, strTheme, intPageSize,strSiteId, blnCanChoosePortalSite,strIncludeSiteMode)
{
   
   return GetMeetingRoom(oXmlDom, SINGLEMODE, strTheme, intPageSize,strSiteId,blnCanChoosePortalSite,strIncludeSiteMode);
  
}
//获取多个会议室
function GetMultiMeetingRoom(oXmlDom, strTheme, intPageSize,strSiteId, blnCanChoosePortalSite,strIncludeSiteMode)
{

   return GetMeetingRoom(oXmlDom, MULTIPLEMODE, strTheme, intPageSize,strSiteId, blnCanChoosePortalSite,strIncludeSiteMode);
   
}
//====================================================================================
//获取活动（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
function GetActivity(oXmlDom, strMode, strTheme, intPageSize, strSiteId, strProcessId, blnCanChoosePortalSite, blnCanChooseProcess, strIncludeSiteMode)
{
    var strURL = CommonDirBaseURL + "Common/GetActivity.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, intPageSize);
    
    if(strSiteId != null && strSiteId != "")
        strURL += "&site=" + strSiteId;
    if(strProcessId != null && strProcessId != "")
        strURL += "&strProcessId=" + strProcessId;
    if(blnCanChoosePortalSite != null && blnCanChoosePortalSite == true)
        strURL += "&canChooseSite=true";
    else
        strURL += "&canChooseSite=false";
    if(blnCanChooseProcess != null && blnCanChooseProcess == true)
        strURL += "&canChooseProcess=true";
    else
        strURL += "&canChooseProcess=false";
    if(strIncludeSiteMode != INCLUDESPECIFYSITE && strIncludeSiteMode != INCLUDEALLSITE)
        strURL += "&includeSiteMode=" + NOTINCLUDESITE;
    else
        strURL += "&includeSiteMode=" + strIncludeSiteMode;


    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个活动
function GetSingleActivity(oXmlDom, strTheme, intPageSize, strSiteId, strProcessId, blnCanChoosePortalSite, blnCanChooseProcess, strIncludeSiteMode)
{
    return GetActivity(oXmlDom, SINGLEMODE, strTheme, intPageSize, strSiteId, strProcessId, blnCanChoosePortalSite, blnCanChooseProcess, strIncludeSiteMode);
}
//获取多个活动
function GetMultiActivity(oXmlDom, strTheme, intPageSize, strSiteId, strProcessId, blnCanChoosePortalSite, blnCanChooseProcess, strIncludeSiteMode)
{
    return GetActivity(oXmlDom, MULTIPLEMODE, strTheme, intPageSize, strSiteId, strProcessId, blnCanChoosePortalSite, blnCanChooseProcess, strIncludeSiteMode);
}
//====================================================================================
//获取统计条件（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
function GetCollectCondition(oXmlDom, strMode, strTheme, intPageSize,portalFormId)
{
    var strURL = CommonDirBaseURL + "Common/GetCollectConditionWithPortalform.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, intPageSize);
    strURL += "&portalFormId=" + portalFormId;

    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个统计条件
function GetSingleCollectCondition(oXmlDom,  strTheme, intPageSize,  portalFormId)
{
    return GetCollectCondition(oXmlDom, SINGLEMODE, strTheme, intPageSize,  portalFormId);
}
//获取多个统计条件
function GetMultiCollectCondition(oXmlDom, strTheme, intPageSize,  portalFormId)
{
    return GetCollectCondition(oXmlDom, MULTIPLEMODE,strTheme, intPageSize,  portalFormId);
}

//====================================================================================
//通过包获取活动（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
function GetActivityWithPackage(oXmlDom, strMode, strTheme, intPageSize,strPackageId)
{
    var strURL = CommonDirBaseURL + "Common/GetActivityWithPackage.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, intPageSize);

    if(strPackageId != null && strPackageId != "")
       strURL += "&strPackageId=" + strPackageId;
    else
        return;
    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个活动
function GetSingleActivityWithPackage(oXmlDom, strTheme, intPageSize,strPackageId)
{
    return GetActivityWithPackage(oXmlDom, SINGLEMODE, strTheme, intPageSize,strPackageId);
}
//获取多个活动
function GetMultiActivityWithPackage(oXmlDom, strTheme, intPageSize,strPackageId)
{
    return GetActivityWithPackage(oXmlDom,MULTIPLEMODE,  strTheme, intPageSize,strPackageId);
}
//====================================================================================


//获取员工类别（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetEmployeeCategory(oXmlDom, strMode, strTheme, intPageSize)
{
    var strURL = CommonDirBaseURL + "Common/GetEmployeeCategory.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, intPageSize);

    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个员工类别
function GetSingleEmployeeCategory(oXmlDom, strTheme, intPageSize)
{
    return GetEmployeeCategory(oXmlDom, SINGLEMODE, strTheme, intPageSize);
}
//获取多个员工类别
function GetMultiEmployeeCategory(oXmlDom, strTheme, intPageSize)
{
    return GetEmployeeCategory(oXmlDom, MULTIPLEMODE, strTheme, intPageSize);
}
//====================================================================================

//获取报表引擎（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetReportEngine(oXmlDom, strMode, strTheme, intPageSize)
{
    var strURL = CommonDirBaseURL + "Common/GetReportEngine.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, intPageSize);

    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个报表引擎
function GetSingleReportEngine(oXmlDom, strTheme, intPageSize)
{
    return GetReportEngine(oXmlDom, SINGLEMODE, strTheme, intPageSize);
}
//获取多个报表引擎
function GetMultiReportEngine(oXmlDom, strTheme, intPageSize)
{
    return GetReportEngine(oXmlDom, MULTIPLEMODE, strTheme, intPageSize);
}
//====================================================================================

//获取报表数据源（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetReportDataSource(oXmlDom, strMode, strTheme, intPageSize)
{
    var strURL = CommonDirBaseURL + "Common/GetReportDataSource.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, intPageSize);

    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个报表数据源
function GetSingleReportDataSource(oXmlDom, strTheme, intPageSize)
{
    return GetReportDataSource(oXmlDom, SINGLEMODE, strTheme, intPageSize);
}
//获取多个报表数据源
function GetMultiReportDataSource(oXmlDom, strTheme, intPageSize)
{
    return GetReportDataSource(oXmlDom, MULTIPLEMODE, strTheme, intPageSize);
}
//====================================================================================

//获取报表模板（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetReportTemplet(oXmlDom, strMode, strTheme, intPageSize)
{
    var strURL = CommonDirBaseURL + "Common/GetReportTemplet.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, intPageSize);

    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个报表模板
function GetSingleReportTemplet(oXmlDom, strTheme, intPageSize)
{
    return GetReportTemplet(oXmlDom, SINGLEMODE, strTheme, intPageSize);
}
//获取多个报表模板
function GetMultiReportTemplet(oXmlDom, strTheme, intPageSize)
{
    return GetReportTemplet(oXmlDom, MULTIPLEMODE, strTheme, intPageSize);
}
//====================================================================================

//获取报表（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetReport(oXmlDom, strMode, strTheme, intPageSize)
{
    var strURL = CommonDirBaseURL + "Common/GetReport.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, intPageSize);

    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个报表
function GetSingleReport(oXmlDom, strTheme, intPageSize)
{
    return GetReport(oXmlDom, SINGLEMODE, strTheme, intPageSize);
}
//获取多个报表
function GetMultiReport(oXmlDom, strTheme, intPageSize)
{
    return GetReport(oXmlDom, MULTIPLEMODE, strTheme, intPageSize);
}

//====================================================================================
//获取报表目录（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetReportDirectory(oXmlDom, strMode, strTheme, strSiteId, blnCanChoosePortalSite)
{
    var strURL = CommonDirBaseURL + "Common/GetReportDirectory.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, null);
    
    if(strSiteId !=null && strSiteId != "")
        strURL += "&site=" + strSiteId;
    if(blnCanChoosePortalSite !=null && blnCanChoosePortalSite == true)
        strURL += "&canChooseSite=true";
    else
        strURL += "&canChooseSite=false";

    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个报表目录
function GetSingleReportDirectory(oXmlDom, strTheme, strSiteId, blnCanChoosePortalSite)
{
    return GetReportDirectory(oXmlDom, SINGLEMODE, strTheme, strSiteId, blnCanChoosePortalSite);
}
//获取多个报表目录
function GetMultiReportDirectory(oXmlDom, strTheme, strSiteId, blnCanChoosePortalSite)
{
    return GetReportDirectory(oXmlDom, MULTIPLEMODE, strTheme, strSiteId, blnCanChoosePortalSite);
}
//获取报表目录（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetAssetsCategory(oXmlDom, strMode, strTheme, strSiteId, blnCanChoosePortalSite)
{
    var strURL = CommonDirBaseURL + "Common/GetAssetsCategory.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, null);
    
    if(strSiteId !=null && strSiteId != "")
        strURL += "&site=" + strSiteId;
    if(blnCanChoosePortalSite !=null && blnCanChoosePortalSite == true)
        strURL += "&canChooseSite=true";
    else
        strURL += "&canChooseSite=false";

    return openDialog(strURL, 700, 600, oXmlDom);
}
//获取单个报表目录
function GetSingleAssetsCategory(oXmlDom, strTheme, strSiteId, blnCanChoosePortalSite)
{
    return GetAssetsCategory(oXmlDom, SINGLEMODE, strTheme, strSiteId, blnCanChoosePortalSite);
}
//获取多个报表目录
function GetMultiAssetsCategory(oXmlDom, strTheme, strSiteId, blnCanChoosePortalSite)
{
    return GetAssetsCategory(oXmlDom, MULTIPLEMODE, strTheme, strSiteId, blnCanChoosePortalSite);
}


//====================================================================================

//获取工作流活动图标（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetActIcon(oXmlDom,strTheme,codeId)
{
    var strURL = CommonDirBaseURL + "Common/GetActivityIcon.aspx";
    if(codeId !=null && codeId != "")
        strURL += "?codeId=" + codeId;
    else
        return;
    if(strTheme !=null && strTheme != "")
        strURL += "&strTheme=" + strTheme;
    
    return openDialog(strURL, 450, 400, oXmlDom);
}

//获取各资源的公用对话框的公共调用方法（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetSystemResource(strResourceType, oXmlDom, strMode, blnCanChoosePortalSite, blnCanChooseUserCategory, strIncludeSiteMode)
{
    //从特殊隐藏域中获取信息    
    GetCommonParameter(oXmlDom);
    
    //根据资源类型打开相应的对话框
    return getDialogueByResoure(oXmlDom, strMode, CommonstrTheme,strResourceType, CommonintPageSize, CommonstrSiteId, CommonstrCategoryId, blnCanChoosePortalSite, blnCanChooseUserCategory, strIncludeSiteMode)
    
    
}

function SystemResourceObjectSelect(oXmlDom, strMode, strTheme,strResourceType,blnCanChoosePortalSite)
{
     switch (strResourceType)
     {
            //用户
         case PORTALUSERTYPE:
            return getDialogueByResoure(oXmlDom, strMode, strTheme,strResourceType, null, null, null, blnCanChoosePortalSite, true, NOTINCLUDESITE);
             //活动
        case ACTIVITYTYPE:
            //用户类别
        case USERCATEGORYTYPE: 
            //用户组
        case USERGROUPTYPE: 
             return getDialogueByResoure(oXmlDom, strMode, strTheme,strResourceType, null, null, null, true, true, NOTINCLUDESITE);
        default:
            return getDialogueByResoure(oXmlDom, strMode, strTheme,strResourceType, null, null, null, blnCanChoosePortalSite, null, null);
        }
}
function getCommonResourceObject(oXmlDom, strMode, strTheme,intPageSize,ResourceCode)
{
    var strURL = CommonDirBaseURL + "Common/GetCommonResourceObject.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, intPageSize);
    
    if(ResourceCode != null && ResourceCode != "")
        strURL += "&ResourceCode=" + ResourceCode;
    return openDialog(strURL, 700, 600, oXmlDom);   
}
//  //根据资源类型打开相应的对话框
function getDialogueByResoure(oXmlDom, strMode, strTheme,strResourceType, intPageSize, strSiteId, strCategoryId, blnCanChoosePortalSite, blnCanChooseUserCategory, strIncludeSiteMode)
{
    switch(strResourceType)
    {
        //资产类别
        case ASSETSCATEGORYTYPE :
            return GetAssetsCategory(oXmlDom, strMode, strTheme, strSiteId, blnCanChoosePortalSite);
        //门户用户
        case PORTALUSERTYPE:
            return GetUser(oXmlDom, strMode, strTheme, intPageSize, strSiteId, strCategoryId, blnCanChoosePortalSite, blnCanChooseUserCategory, strIncludeSiteMode);
        //用户组
        case USERGROUPTYPE:
            return GetUserGroup(oXmlDom, strMode, strTheme, strSiteId, strCategoryId, blnCanChoosePortalSite, blnCanChooseUserCategory, strIncludeSiteMode);
        //角色
        case PORTALROLETYPE:
            return GetRole(oXmlDom, strMode, strTheme, intPageSize, strSiteId, strCategoryId, blnCanChoosePortalSite, blnCanChooseUserCategory, strIncludeSiteMode);            
        //用户类别
        case USERCATEGORYTYPE:
            return GetUserCategory(oXmlDom, strMode, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite, strIncludeSiteMode);
        //部件
        case PORTALCOMPONENTTYPE:
            return GetComponent(oXmlDom, strMode, strTheme, intPageSize);
        //页面
        case PORTALPAGETYPE:
            return GetPage(oXmlDom, strMode, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite);
        //部件目录
        case COMDIRECTORYTYPE:
            return GetComDirectory(oXmlDom, strMode, strTheme);
        //栏目
        case PORTALMENUTYPE:
            return GetMenu(oXmlDom, strMode, strTheme, strSiteId, blnCanChoosePortalSite);
        //站点
        case PORTALSITETYPE:
            return GetSite(oXmlDom, strMode, strTheme, intPageSize);
             //计划任务
        case SCHEDULETYPE:
            return GetSchedule(oXmlDom, strMode, strTheme, intPageSize);
        //主题
        case PORTALTHEMETYPE:
            return GetTheme(oXmlDom, strMode, strTheme, intPageSize);
        //模板
        case TEMPLETTYPE:
            return GetTemplet(oXmlDom, strMode, strTheme, intPageSize);
        //字段
        case PORTALFIELDTYPE:
            return GetField(oXmlDom, strMode, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite);
        //表单
        case PORTALFORMTYPE:
            return GetForm(oXmlDom, strMode, strTheme, intPageSize, strSiteId, blnCanChoosePortalSite,strIncludeSiteMode);
        //门户应用
        case PORTALAPPLICATIONTYPE:
            return GetApplication(oXmlDom, strMode, strTheme, intPageSize);
        //门户资源
        case PORTALRESOURCETYPE:
            return GetResource(oXmlDom, strMode, strTheme, intPageSize);
        //代码类别
        case CODECATEGORYTYPE:
            return GetCodeCategory(oXmlDom, strMode, strTheme, intPageSize);
        //职种
        case POSITIONCATEGORYTYPE:
            return GetPositionCategory(oXmlDom, strMode, strTheme, strSiteId, blnCanChoosePortalSite);
        //机构
        case DEPARTMENTTYPE:
            return GetDepartment(oXmlDom, strMode, strTheme, strSiteId, blnCanChoosePortalSite);
        //职务
        case POSITIONTYPE:
            return GetPosition(oXmlDom, strMode, strTheme, strSiteId, blnCanChoosePortalSite);
        //岗位
        case STATIONTYPE:
            return GetStation(oXmlDom, strMode, strTheme, strSiteId, blnCanChoosePortalSite);
        //员工
        case EMPLOYEETYPE:
            return GetEmployee(oXmlDom, strMode, strTheme, strSiteId, blnCanChoosePortalSite);
        //活动
        case ACTIVITYTYPE:
            return GetActivity(oXmlDom,strMode,strTheme,intPageSize,strSiteId,null,blnCanChoosePortalSite,true,strIncludeSiteMode);
        //特殊身份组
       case SPECIALGROUPTYPE:
            return GetSpecialGroup(oXmlDom,strMode,strTheme,intPageSize);
        //表单目录
       case FORMDIRECTORYTYPE:
            return GetFormDirectory(oXmlDom,strMode,strTheme,intPageSize);
        //过程
       case PROCESSTYPE:
            return GetProcess(oXmlDom,strMode,strTheme,intPageSize,strSiteId,blnCanChoosePortalSite);
        //包
        case PACKAGETYPE:
            return GetPackage(oXmlDom,strMode,strTheme,intPageSize,strSiteId,blnCanChoosePortalSite);
        //资源操作
        case RESOURCEMETHODTYPE:
            return GetResourceMethod(oXmlDom,strMode,strTheme,intPageSize,null);
        //员工类别
        case EMPLOYEECATEGORYTYPE:
            return GetEmployeeCategory(oXmlDom, strMode, strTheme, intPageSize);
            //信息类别
        case  INFORMATIONCATEGORYTYPE:
            return GetSingleInformationCategory(oXmlDom, strTheme, strSiteId, blnCanChoosePortalSite);
           //信息文件夹
        case  INFORMATIONFOLDERTYPE:
            return GetSingleInformationFolder(oXmlDom, strTheme, strSiteId, blnCanChoosePortalSite);
            //信息
        case INFORMATIONTYPE:
             return GetSingleInformation(oXmlDom, strTheme, strSiteId, blnCanChoosePortalSite);
        default :
            return getCommonResourceObject(oXmlDom, strMode, strTheme,intPageSize,strResourceType)
     }
}
//====================================================================================

//获取各种系统资源的“选择”按钮事件（供表单中的单资源选择字段使用）
function SystemResourceSelectButtonEvent(strPortalResourceCode, strFieldCode, strMode, blnCanChoosePortalSite, blnCanChooseUserCategory, strIncludeSiteMode,ConditionId)
{
        SystemResourceByFKSelectButtonEvent(strPortalResourceCode, strFieldCode, strMode, blnCanChoosePortalSite, blnCanChooseUserCategory, strIncludeSiteMode,null,ConditionId);
}

//获取各种系统资源的“添加”按钮事件（供表单中的多资源选择字段使用）
function SystemResourceAddButtonEvent(strPortalResourceCode, strFieldCode, strMode, blnCanChoosePortalSite, blnCanChooseUserCategory, strIncludeSiteMode)
{
    var oSelect = document.all(FIELDTITLESIGN + strFieldCode + FIELDTITLESIGN);
    var oHidden = document.all(FIELDCODESIGN + strFieldCode + FIELDCODESIGN);    
    
    var oXmlDom = GetSystemResource(strPortalResourceCode, listToXmlDom(oSelect),strMode,blnCanChoosePortalSite, blnCanChooseUserCategory, strIncludeSiteMode);
    xmlDomToList(oSelect, oXmlDom, true, MULTIPLEMODE, null, false);
    oHidden.value = XmlDomToString(oXmlDom, FIELDDATAOBJECTSPLITSIGN, FIELDDATAPROPERTYSPLITSIGN);
}

//获取各种系统资源的“删除”按钮事件（供表单中的多资源选择字段使用）
function SystemResourceDelButtonEvent(strFieldCode)
{
    var oSelect = document.all(FIELDTITLESIGN + strFieldCode + FIELDTITLESIGN);
    var oHidden = document.all(FIELDCODESIGN + strFieldCode + FIELDCODESIGN);
    DelSelectedOptions(oSelect);
    var oXmlDom = listToXmlDom(oSelect, null, false);
    oHidden.value = XmlDomToString(oXmlDom, FIELDDATAOBJECTSPLITSIGN, FIELDDATAPROPERTYSPLITSIGN);
}


//获取代码项的“选择”按钮事件（供表单中的列表型且采用代码项树选择的字段使用）

function CodeItemSelectButtonEvent(strFieldCode, strCodeCategoryId)
{
    var strTheme = null;
    var oHiddenTheme = document.all(SPECIALHIDDENPREFIXSIGN + "ThemeCode" + SPECIALHIDDENSUFFIXSIGN);
    if(oHiddenTheme != null)
        strTheme = oHiddenTheme.value;
        
    var oText = document.all(FIELDTITLESIGN + strFieldCode + FIELDTITLESIGN);
    var oHidden = document.all(FIELDCODESIGN + strFieldCode + FIELDCODESIGN);
    //var oXmlDom = stringToXmlDom(oHidden.value, FIELDDATAOBJECTSPLITSIGN, FIELDDATAPROPERTYSPLITSIGN, null);
    var oXmlDom = stringToXmlDomWidthValueAndText(oHidden.value, FIELDDATAOBJECTSPLITSIGN, FIELDDATAPROPERTYSPLITSIGN, null,ITEMVALUE,TEXT);
	
    var oXmlDom = GetCodeItem(oXmlDom, strTheme, strCodeCategoryId, CODEITEMTYPE);
    if(oXmlDom != null && oXmlDom.xml != null)
    {
        if(oXmlDom.selectSingleNode(OBJECTS + "/" + OBJECT + "/" + VALUE) != null && oXmlDom.selectSingleNode(OBJECTS + "/" + OBJECT + "/" + TEXT) != null)
        {
            oText.value = oXmlDom.selectSingleNode(OBJECTS + "/" + OBJECT + "/" + TEXT).text
            oHidden.value = XmlDomToStringWidthValueAndText(oXmlDom, FIELDDATAOBJECTSPLITSIGN, FIELDDATAPROPERTYSPLITSIGN,ITEMVALUE,TEXT);
        }
        else
        {
            oHidden.value = "";
            oText.value = "";
        }
    }
}

/*
//设置权限（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）//strMethodId  资源操作ID,可以为null。若为null，则公用页面SetResPrivilege.aspx列出该资源的所有资源操作
//strPortalResourceId  资源ID,不能为null
//strObjectID  资源实例ID，不能为null
//IsNeedToSetChild  某些有父子关系，且需要级联授权操作时，设为true
*/
function SetResPrivilege(strMethodId,strPortalResourceId, strObjectID, strSiteId, strCategoryId, strTheme,IsNeedToSetChild)
{
    var strURL = CommonDirBaseURL + "Common/SetResPrivilege.aspx?";
    if(strMethodId !=null && strMethodId != "")
        strURL += "met=" + strMethodId;
    if(strPortalResourceId !=null && strPortalResourceId != "")
        strURL += "&res=" + strPortalResourceId;
    if(strObjectID !=null && strObjectID != "")
        strURL += "&obj=" + strObjectID;
    if(strSiteId !=null && strSiteId != "")
        strURL += "&site=" + strSiteId;
    if(strCategoryId !=null && strCategoryId != "")
        strURL += "&category=" + strCategoryId;
    if(strTheme !=null && strTheme != "")
        strURL += "&theme=" + strTheme;
    
    //IsNeedToSetChild是否对树型资源的子集进行校验    
    var Args=document.createElement('Args');
    Args.IsNeedToSetChild = IsNeedToSetChild;

    return openDialog(strURL, 510, 465, Args);
}
//====================================================================================


//获取指定表单的字段对应的Html标记（打开公用对话框，调用前必须先调用SetCommonDirBaseURL方法）
//====================================================================================
function GetFieldHtmlTag(strTheme, intPageSize, strFormId)
{
    var strURL = CommonDirBaseURL + "Common/GetFieldHtmlTag.aspx?";
    if(strTheme !=null && strTheme != "")
        strURL += "&theme=" + strTheme;
    if(intPageSize !=null && intPageSize != "")
        strURL += "&pageSize=" + intPageSize;
    if(strFormId !=null && strFormId != "")
        strURL += "&form=" + strFormId;

    return openDialog(strURL, 700, 600, null);
}
//====================================================================================


/******************************************************
将指定XmlDom转化为一个字符串（Xml格式：<Objects><Object><Value></Value><Text></Text></Object></Objects>）
返回：	字符串
参数：	oXmlDom	XmlDom对象
		strObjectSplitSign  字符串的对象分割符
		strPropertySplitSign  字符串的属性分割符
******************************************************/
function XmlDomToString(oXmlDom, strObjectSplitSign, strPropertySplitSign)
{
    return XmlDomToStringWidthValueAndText(oXmlDom, strObjectSplitSign, strPropertySplitSign, VALUE, TEXT);
}
function XmlDomToStringWidthValueAndText(oXmlDom, strObjectSplitSign, strPropertySplitSign, strValue, strText)
{
    var strData = "";
    
    if (oXmlDom == null || oXmlDom.xml == null || oXmlDom.xml == "")
        return strData;
    
    var objs = oXmlDom.documentElement.selectNodes(OBJECT);
    
    for(var i = 0; i<objs.length; i++)
    {
        var value = null;
        var text = null;
        if(objs(i).selectSingleNode(strValue) != null)
            value = objs(i).selectSingleNode(strValue).text;
        if(objs(i).selectSingleNode(strText) != null)
            text = objs(i).selectSingleNode(strText).text;    
            
        if(value != null && text != null)
        {
            if(i != 0)
                strData += strObjectSplitSign;
            
            strData += value + strPropertySplitSign + text;
        }
    }
    return strData;
}


/******************************************************
将指定Xml字符串转化为一个字符串（Xml格式：<Objects><Object><Value></Value><Text></Text></Object></Objects>）
返回：	字符串
参数：	strXml	Xml字符串
		strObjectSplitSign  字符串的对象分割符
		strPropertySplitSign  字符串的属性分割符
******************************************************/
function XmlStrToString(strXml, strObjectSplitSign, strPropertySplitSign)
{
    var oXmlDom = new ActiveXObject("Microsoft.XMLDOM");
	oXmlDom.loadXML(strXml);
	return XmlDomToString(oXmlDom, strObjectSplitSign, strPropertySplitSign);
}


/******************************************************
将指定字符串转化为一个Xml字符串（Xml格式：<Objects><Object><Value></Value><Text></Text></Object></Objects>）
返回：	Xml字符串
参数：	strData	字符串
		strObjectSplitSign  字符串的对象分割符
		strPropertySplitSign  字符串的属性分割符
		strType 资源类型
******************************************************/
function stringToXmlStrWidthValueAndText(strData, strObjectSplitSign, strPropertySplitSign, strType,strValue,strText)
{
    var strXml = "<" + OBJECTS + ">";
    
    var arr1 = strData.split(strObjectSplitSign);
    for(var i = 0; i < arr1.length; i++)
    {
        var arr2 = arr1[i].split(strPropertySplitSign);
        if(arr2 != null && arr2[0] != "")
        {
            strXml += "<" + OBJECT + ">";
            
            strXml += "<" + strValue + ">";
            strXml += arr2[0];
            strXml += "</" + strValue + ">";
            
            strXml += "<" + strText + ">";
            strXml += arr2[1];
            strXml += "</" + strText + ">";
            
            if(strType != null)
            {
                strXml += "<" + TYPE + ">";
                strXml += strType;
                strXml += "</" + TYPE + ">";
            }
            
            strXml += "</" + OBJECT + ">";
        }
    }
    
    strXml += "</" + OBJECTS + ">";
    
    return strXml;
}
function stringToXmlStr(strData, strObjectSplitSign, strPropertySplitSign, strType)
{
    return stringToXmlStrWidthValueAndText(strData, strObjectSplitSign, strPropertySplitSign, strType,VALUE,TEXT);
}

/******************************************************
将指定字符串转化为一个XmlDom（Xml格式：<Objects><Object><Value></Value><Text></Text></Object></Objects>）
返回：	XmlDom
参数：	strData	字符串
		strObjectSplitSign  字符串的对象分割符
		strPropertySplitSign  字符串的属性分割符
		strType 资源类型
******************************************************/
function stringToXmlDom(strData, strObjectSplitSign, strPropertySplitSign, strType)
{
    var strXml = stringToXmlStr(strData, strObjectSplitSign, strPropertySplitSign, strType);
    var oXmlDom = new ActiveXObject("Microsoft.XMLDOM");
	oXmlDom.loadXML(strXml);
	return oXmlDom;
}
function stringToXmlDomWidthValueAndText(strData, strObjectSplitSign, strPropertySplitSign, strType,strValue,strText)
{
    var strXml = stringToXmlStrWidthValueAndText(strData, strObjectSplitSign, strPropertySplitSign, strType,strValue,strText);
    var oXmlDom = new ActiveXObject("Microsoft.XMLDOM");
	oXmlDom.loadXML(strXml);
	return oXmlDom;
}

//单文件上传的“查看”按钮事件（供表单中的单文件上传字段使用）
function viewFile(control)
{
    if (control.href != null && control.href != "")
    {
        window.open(control.href);
    }
}

//布尔型CheckBox的“单击”按钮事件（供表单中的布尔型CheckBox字段使用）
function changCheckBoxBooleanValue(oCheckBox)
{
    if(oCheckBox.checked)
       oCheckBox.value = "true";
    else
       oCheckBox.value = "false";  
}

//从XML中获取所引用的标题
function getTitleByXml(strXml)
{
    if (strXml==null || strXml=='')
    {
        return '';
    }

    var title = '';
    
    var oXmlDom = new ActiveXObject('Microsoft.XmlDom');
    oXmlDom.loadXML(strXml);

    if (oXmlDom != null)
    {
        var oNode = oXmlDom.documentElement.selectSingleNode('.//Text');

        if (oNode != null)
        {
            title = oNode.text;
        }
    }

    return title;
}

//从XML中获取所引用的ID
function getIdByXml(strXml)
{
    if (strXml==null || strXml=='')
    {
        return '';
    }

    var id = '';
    
    var oXmlDom = new ActiveXObject('Microsoft.XmlDom');
    oXmlDom.loadXML(strXml);

    if (oXmlDom != null)
    {
        var oNode = oXmlDom.documentElement.selectSingleNode('.//Value');

        if (oNode != null)
        {
            id = oNode.text;
        }
    }

    return id;
}

//用于单项选择中
//从XML中获取项的某元素的值
function getInnerTextByXml(strXml, LabelTag)
{
    var val = '';
    
    if (strXml==null || strXml=='' || LabelTag==null || LabelTag=='')
    {
        return val;
    }
    
    var oXmlDom = new ActiveXObject('Microsoft.XmlDom');
    oXmlDom.loadXML(strXml);

    if (oXmlDom != null)
    {
        var oNode = oXmlDom.documentElement.selectSingleNode('.//' + LabelTag);

        if (oNode != null)
        {
            val = oNode.text;
        }
    }

    return val;
}
//用于单项选择中
//从XML中获取指定标签（LabelTag）的innerXml,若strXml中含有多个LabelTag元素，则返回第一个符合条件元素的innerXml

function getInnerXmlByTag(strXml, LabelTag)
{
    var val = '';
    
    if (strXml==null || strXml=='' || LabelTag==null || LabelTag=='')
    {
        return val;
    }
    
    var oXmlDom = new ActiveXObject('Microsoft.XmlDom');
    oXmlDom.loadXML(strXml);

    if (oXmlDom != null)
    {
        var oNode = oXmlDom.documentElement.selectSingleNode('.//' + LabelTag);

        if (oNode != null)
        {
            if(oNode.firstChild!=null)
                val = oNode.firstChild.xml;
            else
                val = "";
        }
    }

    return val;
}
///获取包
function GetMethodPackage(strResource, strInstance,strTheme)
{
    var strURL = CommonDirBaseURL + "Common/GetMethodPackage.aspx";
    if (strResource != null)
        strURL += "?res=" + strResource;
    else
        strURL += "?res=";
    
    if(strInstance !=null && strInstance != "")
        strURL += "&ins=" + strInstance;    
        
    if(strTheme !=null && strTheme != "")
        strURL += "&theme=" + strTheme;
        
    return openDialog(strURL, 380, 320, null);
}

function GetNewResourceInstanceTitle(strResourceTitle, strTitleValue)
{
    var strURL = CommonDirBaseURL + "Common/GetNewResourceInstanceTitle.aspx";
    strURL += "?RT=" + escape(strResourceTitle) + "&TV=" + escape(strTitleValue);
    return openDialog(strURL, 350, 150, null);
}
// 流程支持以下调用方式：
// 1. 使用一个指定的Package启动操作,无相关业务对象输入与输出.必填参数:Package
// 2. 使用一个指定的Package启动操作,有相关业务对象的输入与输出,如果无输入,则将对象实例标识设为0,须指定业务对象使用的表单,对象所属的资源操作,表单实例,及父级表单实例,必填参数:Package,SourceForm,ResourceMethod,ResourceInstance
// 3. 不使用Package启动操作,有相关业务对象的输入与输出,必填参数:SourceForm,ResourceMethod,ResourceInstance
// 4. 不使用Package启动操作,无相关业务对象的输入与输出,必填参数:ResourceMethod(此情况目前无实际意义)
// 5. 处理指定的流程实例,指定活动实例即可,必填参数:ActivityInstance
// 6. 使用一个指定的Package与指定的FlowForm启动操作,有相关业务对象的输入与输出
// 7. 不使用Package,使用指定的FlowForm启动操作,有相关业务对象的输入与输出
// 8. 使用一个指定的Package与指定的FlowForm启动操作,无相关业务对象的输入与输出
// 9. 不使用Package,使用指定的FlowForm启动操作,无相关业务对象的输入与输出
function FlowHandle(PackageId,SourceForm,ResourceMethod,ResourceInstance,ParentInstance,ActivityInstance,SiteId,ThemeCode,FlowForm,FlowType,QueryString)
{
    var strURL = CommonDirBaseURL + "WorkflowForm.aspx?";
    if (PackageId != null && PackageId != "")
    {
        strURL += "Package="+PackageId+"&";
    }
    if (SourceForm != null && SourceForm != "")
    {
        strURL += "SourceForm="+SourceForm+"&";
    }
    if (ResourceMethod != null && ResourceMethod != "")
    {
        strURL += "ResourceMethod="+ResourceMethod+"&";
    }
    if (ResourceInstance != null && ResourceInstance != "")
    {
        strURL += "ResourceInstance="+ResourceInstance+"&";
    }
    if (ParentInstance != null && ParentInstance != "")
    {
        strURL += "ParentInstance="+ParentInstance+"&";
    }
    if (ActivityInstance != null && ActivityInstance != "")
    {
        strURL += "ActivityInstance="+ActivityInstance+"&";
    }
    if (SiteId != null && SiteId != "")
    {
        strURL += "Site="+SiteId+"&";
    }
    if (ThemeCode != null && ThemeCode != "")
    {
        strURL += "Theme="+ThemeCode+"&";
    }
    if (FlowForm != null && FlowForm != "")
    {
        strURL += "FlowForm="+FlowForm+"&";
    }
    if (FlowType != null && FlowType != "")
    {
        strURL += "FlowType="+FlowType+"&";
    }
    if (QueryString != null && QueryString != "")
    {
        strURL += QueryString;
    }
    return openDialog(strURL, 700, 600, null);
}
function FlowHandle1(PackageId,SiteId,ThemeCode,QueryString)
{
    return FlowHandle(PackageId,null,null,null,null,null,SiteId,ThemeCode,null,1,QueryString);
}
function FlowHandle2(PackageId,SourceForm,ResourceMethod,ResourceInstance,ParentInstance,SiteId,ThemeCode,QueryString)
{
    return FlowHandle(PackageId,SourceForm,ResourceMethod,ResourceInstance,ParentInstance,null,SiteId,ThemeCode,null,2,QueryString);
}
function FlowHandle3(SourceForm,ResourceMethod,ResourceInstance,ParentInstance,SiteId,ThemeCode,QueryString)
{
    return FlowHandle(null,SourceForm,ResourceMethod,ResourceInstance,ParentInstance,null,SiteId,ThemeCode,null,3,QueryString);
}
function FlowHandle4(ResourceMethod,SiteId,ThemeCode,QueryString)
{
    return FlowHandle(null,null,ResourceMethod,null,null,null,SiteId,ThemeCode,null,4,QueryString);
}
function FlowHandle5(ActivityInstance,SiteId,ThemeCode,QueryString)
{
    return FlowHandle(null,null,null,null,null,ActivityInstance,SiteId,ThemeCode,null,5,QueryString);
}
function FlowHandle6(PackageId,SourceForm,ResourceMethod,ResourceInstance,ParentInstance,SiteId,ThemeCode,FlowForm,QueryString)
{
    return FlowHandle(PackageId,SourceForm,ResourceMethod,ResourceInstance,ParentInstance,null,SiteId,ThemeCode,FlowForm,6,QueryString);
}
function FlowHandle7(SourceForm,ResourceMethod,ResourceInstance,ParentInstance,SiteId,ThemeCode,FlowForm)
{
    return FlowHandle(null,SourceForm,ResourceMethod,ResourceInstance,ParentInstance,null,SiteId,ThemeCode,FlowForm,7);
}
function FlowHandle8(PackageId,SiteId,ThemeCode,FlowForm)
{
    return FlowHandle(PackageId,null,null,null,null,null,SiteId,ThemeCode,FlowForm,8);
}
function FlowHandle9(ResourceMethod,SiteId,ThemeCode,FlowForm)
{
    return FlowHandle(null,null,ResourceMethod,null,null,null,SiteId,ThemeCode,FlowForm,9);
}
function GetProcessDesignForm(processId, theme)
{
    var strURL = CommonDirBaseURL + "Common/WorkflowDesigner.aspx?process=" + processId + "&Theme=" + theme;
    openDialog(strURL, 700, 600, null);
}

var oMask = null;
function Handling(text)
{
    // 显示处理中画面
    if (oMask == null)
    {
        // 增加半透明遮盖
        oMask = document.createElement('<div class="HandlingBox"></div>');
        oMask.style.top = window.document.body.scrollTop;
        oMask.style.left = window.document.body.scrollLeft;
        oMask.style.width = window.document.body.clientWidth;
        oMask.style.height = window.document.body.clientHeight;
        document.body.appendChild(oMask);   
         
        // 增加滚动条及文字
        window.document.popupMessage = window.createPopup();
        //将最外层窗口（window）中的样式复制到这个新的popup窗口
	    for(var i = 0; i < window.document.styleSheets.length; i++)
	    {
		    var parentWinStyle = window.document.styleSheets(i);
		    if(parentWinStyle.href != "")
			    window.document.popupMessage.document.createStyleSheet(parentWinStyle.href);
	    }
        if (text == null)
            text = "装载中...";
        else
        {
            if (text._scriptManagerID != null)
            {
                // 针对Ajax的特殊处理
                text = "装载中...";
            }
        }
        window.document.popupMessage.document.body.innerHTML = '<div class="HandlingText">' +text+ '</div>';
        
    }
    oMask.style.display = "";
    window.document.popupMessage.show((screen.availWidth-300)/2, (screen.availHeight-100)/2 , 300, 100);   
}
function CloseHandling()
{
    window.document.popupMessage.hide();
    oMask.style.display = "none";
}

//***************************************************************
//召唤QueryBuild查询构造器构造查询条件
//2007.03.02 Xzoth v0.1
//
//参数说明：
//searchTemplate 查询模版("create" , "update"), theme 页面样式,  siteId 站点ID, formId 表单ID, pageId 页面ID 
//args 窗口参数数组
//args[0]  查询条件XML
//args[1]  查询条件Title
//args[2]  标题
//args[3]  按钮列表 style.display  Array{Rebuild, Load, Save, Clear, Add, RemoveLast, RemoveLeft, RemoveRight, AddLeft, AddRight};
//                                        重建， 读取， 保存， 清空， 添加，减少，  删除左括号，删除右括号 ，添加左括号，添加右括号
//如果args[3]不存在，默认全部按钮显示
//返回值：
//returnValue[0] 查询条件XML
//returnValue[1] 查询条件Title
//***************************************************************
function GetQueryBuilder(searchTemplate, theme, comId, pageId, siteId, formId, args)
{
    var url = CommonDirBaseURL +"Common/QueryBuilder.aspx?";
    
    url = AppendUrlParamNotNull(url, "SearchTemplate", searchTemplate);
    url = AppendUrlParamNotNull(url, "Theme", theme);
    url = AppendUrlParamNotNull(url, "ComId", comId);
    url = AppendUrlParamNotNull(url, "PageId", pageId);    
    url = AppendUrlParamNotNull(url, "SiteId", siteId);
    url = AppendUrlParamNotNull(url, "FormId", formId);    
    
    return window.showModalDialog(url, args, 'dialogHeight:300px;dialogWidth:730px;status:0;help:0');
}
function GetReportCondition(theme,args)
{
    var url = CommonDirBaseURL +"Common/ReportCondition.aspx?";
    
    url = AppendUrlParamNotNull(url, "Theme", theme);    
    
    return window.showModalDialog(url, args, 'dialogHeight:400px;dialogWidth:440px;status:0;help:0');
}
function GetReportView(reportId,theme,isPreView)
{
    var url = CommonDirBaseURL +"Common/ViewReport.aspx?";
    
    url = AppendUrlParamNotNull(url, "Theme", theme);    
    url = AppendUrlParamNotNull(url, "reportId", reportId);  
    url = AppendUrlParamNotNull(url, "isPreView", isPreView); 
    
    window.open(url);
}

//***************************************************************
//当请求参数不为空时追加到URL中
//2007.03.02 Xzoth v0.1
//
//参数说明：
//url请求路径, paramKey参数名, paramValue参数值
//
//返回值：
//组装好的请求路径url
//***************************************************************
function AppendUrlParamNotNull(url, paramKey, paramValue)
{
    if (paramValue != null)
    {
        url += "&" + paramKey + "=" + paramValue;
    }
    
    return url;
}
//***************************************************************
//检查文件的格式
//filePath    上传的文件路径
//arrFileFormat 允许的文件格式后缀数组Array{"doc", "xml", "xls"}
//
//***************************************************************
function CheckFileFormat(fileName, arrFileFormat)
{
    if (fileName!=null && fileName!= '' && arrFileFormat!=null && arrFileFormat.length>0)
    {
        var fileNames = fileName.split('.');                
        var extName = fileNames[fileNames.length-1];
        for (var i=0; i<arrFileFormat.length; i++)
        {
            if (extName.toUpperCase() == arrFileFormat[i].toUpperCase())
            {
                return true;
            }
        }
        
        return false;
    }
}

function Handled()
{       
    // 显示页面元素
    for(var i=0;i<document.body.children.length;i++)
    {
        document.body.children.item(i).style.display = "";
    }
    if (maskText != null)
    {
        maskText.style.display = "none";
    }
    
}

//字符串格式化
//去掉字符串左右空格
String.prototype.trim= function()  
{  
    return this.replace(/(^\s*)|(\s*$)/g, "");  
}
//是否为时间型字符串
/*
Matches: 02:04|||16:56|||23:59 
Non-Matches: 02:00 PM|||PM2:00|||24:00|||23:3(注意)
*/
var TimePattern =  '^([0-1][0-9]|[2][0-3]):([0-5][0-9])$';
String.prototype.IsTimeString = function()
{
    var pattern = TimePattern;
    return CheckDataByReg(this.trim(),pattern);
}
//是否为日期型字符串
/*
Matching Text 2002-01-31|||1997-04-30|||2004-01-01 
Non-Matching Text 2002-01-32|||2003-02-29|||04-01-01 
*/
var DatePattern =  '^((((19|20)(([02468][048])|([13579][26]))-02-29))|((20[0-9][0-9])|(19[0-9][0-9]))-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((0[1,3-9])|(1[0-2]))-(29|30)))))$';
String.prototype.IsDateString = function()
{
    var pattern =DatePattern;
    return CheckDataByReg(this.trim(),pattern);
}
function CheckDataByReg(str,pattern)
{
    if(str.match(pattern)!=null)
    {
        return true;
    }
    else 
        return false;
}
//比较日期先后
//如果this > toBeCompareDate返回true
String.prototype.LaterThan = function(toBeCompareDate,symbol)
{
   var currdate = new Date();
   currdate.setFullYear(this.split(symbol)[0],this.split(symbol)[1]-1,this.split(symbol)[2]);
    var date2 = new Date();
     date2.setFullYear(toBeCompareDate.split(symbol)[0],toBeCompareDate.split(symbol)[1]-1,toBeCompareDate.split(symbol)[2]);
    if(currdate > date2 ||currdate.toString() == date2.toString())
        return true;
    else
        return false;
} 
//是否是数字
String.prototype.IsNumber = function()
{   
    if(parseInt(this) != this||parseFloat(this) != this||this == NaN|| this == '')
    {
        return false;
    }
    else
        return true;
}
String.prototype.ToBoolean = function()
{   
    if(this == "false")
    {
        return false;
    }
    else
        return true;
}
////百分比校验(min<var<max的正数)

//String.prototype.BeTweenNumber = function(min,max)
//{   
//    if(parseFloat(this) != this)
//    {
//        return false;
//    }
//    else
//    {
//        if(this>=min && this<=max)
//            return true;
//        return false;
//    }
//}

Request = 
{
     QueryString : function(item)
     {
         var svalue = location.search.match(new RegExp("[\?\&]" + item + "=([^\&]*)(\&?)","i"));
         return svalue ? svalue[1] : svalue;
     }
}

//客户端生成Puid
//不保证并发状态下的唯一性
function Puid()
{   
    //2000-1-1跟1970-1-1之间的毫秒差 
    var CONST_2000_1970 = 946656000000;
    //放大的倍数
    var CONST_Times = 10000000;
    //服务器编号0-99
    var serverId = 1;
    
    var timeOffset = GetTime() - CONST_2000_1970;
    timeOffset *= CONST_Times;
	
    return timeOffset + GetRAND() + serverId;
}

//返回六位的伪随机数
function GetRAND()
{
    //位数
    var CONST_DIGIT = 1000000;
    return Math.round(Math.random() * CONST_DIGIT);
}

//返回当前事件跟1970-1-1之间的毫秒差
function GetTime()
{
    var now = new Date();
    return now.getTime();
}

// 使用XMLHttp调用业务逻辑服务接口
function ExecBizService(Command,strParamString)
{
    var ret = ExecServerPrgm("Common/BizEngine/BizService.aspx?Cmd="+Command, "POST", strParamString);
    return ret;
}

/******************************************************
描述：  显示FormObjectFamily对话框
参数：  relativeDirectory	关系目录
		theme               主题
		mainObjectInstance  主对象标识
		mainFormId          主表单标识
		childFormId         指定子表单（null表示不指定）
******************************************************/
function ShowFormObjectFamily(relativeDirectory, theme, mainObjectInstance, mainFormId, childFormId)
{
    var popUrl = relativeDirectory + "/Common/FormObjectFamily.aspx?theme=" + theme + "&Ins=" + mainObjectInstance + "&Mid=" + mainFormId;
    if(childFormId != null)
        popUrl += "&Cid=" + childFormId;
    window.showModalDialog(popUrl,null,'dialogHeight:550px;dialogWidth:780px;status:no;scroll:yes;resizable:no;help:no;center:yes;');
}


//初始化子集标签集
function initChildFormTags(container, maxChildFormTagDisplay, childFormNumber)
{    
    childFormTagCWidth = parseInt((container.clientWidth - 280)/(maxChildFormTagDisplay+1));

    if (container.all('mainFormTagC') != null && container.all('mainFormTagC').firstChild != null)
        container.all('mainFormTagC').firstChild.style.width = childFormTagCWidth;

    for(var i = 1; container.all('childFormTagC_' + i) != null; i++)
    {
        var childFormTagL = container.all('childFormTagL_' + i);
        var childFormTagC = container.all('childFormTagC_' + i);
        var childFormTagR = container.all('childFormTagR_' + i);

        if(i >= 1 && i <= childFormNumber)
        {
            if(childFormTagC.firstChild != null)
            {
                childFormTagC.firstChild.style.width = childFormTagCWidth;
            }
            else
            {
                childFormTagC.width = childFormTagCWidth;
            }

            if (i <= maxChildFormTagDisplay)
            {
                childFormTagL.style.display='inline';
                childFormTagC.style.display='inline';
                childFormTagR.style.display='inline';
            }
        }
    }
}

//切换到上一组子集标签
function previousChildFormTags(container)
{
    if(container.currentChildFormTagDisplayIndex == null)
        return;

    if(container.all('childFormTagC_' + (container.currentChildFormTagDisplayIndex - maxChildFormTagDisplay)) == null)
        return;

    for(var i = 1; container.all('childFormTagC_' + i) != null; i++)
    {
        var childFormTagL = container.all('childFormTagL_' + i);
        var childFormTagC = container.all('childFormTagC_' + i);
        var childFormTagR = container.all('childFormTagR_' + i);

        if(i <= container.currentChildFormTagDisplayIndex - maxChildFormTagDisplay && i > container.currentChildFormTagDisplayIndex - maxChildFormTagDisplay - maxChildFormTagDisplay)
        {
            childFormTagL.style.display='inline';
            childFormTagC.style.display='inline';
            childFormTagR.style.display='inline';
        }
        else
        {
            childFormTagL.style.display='none';
            childFormTagC.style.display='none';
            childFormTagR.style.display='none';
        }
    }

    container.currentChildFormTagDisplayIndex -= maxChildFormTagDisplay;
    if(container.currentChildFormTagDisplayIndex < maxChildFormTagDisplay)
        container.currentChildFormTagDisplayIndex = maxChildFormTagDisplay;
}

//切换到下一组子集标签
function nextChildFormTags(container)
{
    if(container.currentChildFormTagDisplayIndex == null)
        container.currentChildFormTagDisplayIndex = maxChildFormTagDisplay;
        
    if(container.all('childFormTagC_' + (container.currentChildFormTagDisplayIndex + 1)) == null)
        return;

    for(var i = 1; container.all('childFormTagC_' + i) != null; i++)
    {
        var childFormTagL = container.all('childFormTagL_' + i);
        var childFormTagC = container.all('childFormTagC_' + i);
        var childFormTagR = container.all('childFormTagR_' + i);

        if(i > container.currentChildFormTagDisplayIndex && i <= container.currentChildFormTagDisplayIndex + maxChildFormTagDisplay)
        {
            if(childFormTagC.firstChild != null)
            {
                childFormTagL.style.display='inline';
                childFormTagC.style.display='inline';
                childFormTagR.style.display='inline';
            }
            else
            {
                childFormTagL.style.display='inline';
                childFormTagC.style.display='inline';
                childFormTagR.style.display='inline';
            }
        }
        else
        {
            childFormTagL.style.display='none';
            childFormTagC.style.display='none';
            childFormTagR.style.display='none';
        }
    }
    container.currentChildFormTagDisplayIndex += maxChildFormTagDisplay;
}

//设置表格控件导出数据的格式
//参数：relativeDirectory 相对目录, theme页面样式, exportType导出格式
//返回：用户选择的导出格式
function SetExportFormat(relativeDirectory, theme, exportType)
{
    return window.showModalDialog(relativeDirectory + "/Common/SetExportFormat.aspx?Theme=" + theme + "&ExportFormatType=" + exportType, null, 'dialogHeight:150px;dialogWidth:300px;status:0;help:0');
}

//---------------------------------------------------------------
//通过外键得到对应子表记录的通用方法
//参数：ChildResourceCode:要返回记录的系统资源代码,FkResourceCode：外键系统资源代码,FKName：外键列名,FKinstance外键的实例ID
//例子：GetRecordByforeignKey('UseVehicleRecord','Vehicle','Vehicle','2247011260000000537')
//返回：对应实例下的子表记录//blnCanChoosePortalSite是否能跨站点选择
//获取各资源的公用对话框的公共调用方法（暂时在授权管理的单个对象选择中使用）
function CommonGetRecordByForeignKey(oXmlDom, strMode, strTheme,intPageSize,ResourceCode,FKName,FKinstance,blnCanChoosePortalSite)
{
    var strURL = CommonDirBaseURL + "Common/GetCommonResourceObject.aspx";
    strURL = CreateBaseURL(strURL, strMode, strTheme, intPageSize);
    
    if(ResourceCode != null && ResourceCode != "")
        strURL += "&ResourceCode=" + ResourceCode;
      
       
        strURL += "&FKName=" + FKName;
        strURL += "&FKinstance=" + FKinstance; 
        if(blnCanChoosePortalSite == false)
        {  
            strURL+= "&siteId=" + CommonstrSiteId;
        }
     
    return openDialog(strURL, 700, 600, oXmlDom);   
}


function GetSingleRecordByForeignKey(oXmlDom, strTheme,intPageSize,ResourceCode,FkResourceCode,FKName,FKinstance,blnCanChoosePortalSite)
{
    return CommonGetRecordByForeignKey(oXmlDom, SINGLEMODE, strTheme,intPageSize,ResourceCode,FkResourceCode,FKName,FKinstance,blnCanChoosePortalSite);
}
function GetMutiRecordByForeignKey(oXmlDom, strTheme,intPageSize,ResourceCode,FkResourceCode,FKName,FKinstance,blnCanChoosePortalSite)
{
    return CommonGetRecordByForeignKey(oXmlDom, MULTIPLEMODE, strTheme,intPageSize,ResourceCode,FkResourceCode,FKName,FKinstance,blnCanChoosePortalSite);
}

//获取各种系统资源的“选择”按钮事件（供表单中的单资源选择字段使用）//说明：　　　　　　　　　　　　　　　  返回记录的对应资源代码　　表单中对应字段名称　多选还是单选,能否选择站点,  能否选择用户类别，        包含站点模式　　　，表单对应外键的字段名
//用例：SystemResourceByFKSelectButtonEvent("UseVehicleRecord", "UseVehicleRecord", 's', null, false, null,"Vehicle","Vehicle");

function SystemResourceByFKSelectButtonEvent(strPortalResourceCode, strFieldCode, strMode, blnCanChoosePortalSite, blnCanChooseUserCategory, strIncludeSiteMode,strFKFieldCode,conditionId)
{
    SystemResourceByDifferentFKSelectButtonEvent(strPortalResourceCode, strFieldCode, strMode, blnCanChoosePortalSite, blnCanChooseUserCategory, strIncludeSiteMode,strFKFieldCode,null,conditionId);
}
//用法与SystemResourceByFKSelectButtonEvent基本相同，只是加上了strCurrentFKFieldCode；
//说明：如果当前表单的外键字段代码（strCurrentFKFieldCode）与目标表单的外键字段(strTagFKFieldCode)不同时，可直接引用此方法
//用例：在信息表单(Information)中的逻辑字段Logic_PortalForm 与 InformationFolder的PortalForm为外键联系，在信息表单中选择可以存放此信息的文件夹(与此信息的表单相同的文件夹)，
//用到此方法:SystemResourceByDifferentFKSelectButtonEvent('InformationFolder' , 'Folder' , SINGLEMODE, false, false, NOTINCLUDESITE,'PortalForm','Logic_PortalForm');
function SystemResourceByDifferentFKSelectButtonEvent(strPortalResourceCode, strFieldCode, strMode, blnCanChoosePortalSite, blnCanChooseUserCategory, strIncludeSiteMode,strTagFKFieldCode,strCurrentFKFieldCode,conditionId)
{

    var oText = document.all(FIELDTITLESIGN + strFieldCode + FIELDTITLESIGN);
    var oHidden = document.all(FIELDCODESIGN + strFieldCode + FIELDCODESIGN);
    var oFKHidden =null;
    if(strCurrentFKFieldCode!=null||strCurrentFKFieldCode!='')
    {
        oFKHidden = document.all(FIELDCODESIGN + strCurrentFKFieldCode + FIELDCODESIGN); 
    }
    if(oFKHidden == null)
    {
        oFKHidden = document.all(FIELDCODESIGN + strTagFKFieldCode + FIELDCODESIGN); 
    }
    var oXmlDom = stringToXmlDom(oHidden.value, FIELDDATAOBJECTSPLITSIGN, FIELDDATAPROPERTYSPLITSIGN, strPortalResourceCode);
    var returnDom;
    if(oFKHidden!=null&&oFKHidden.value!=""&&oFKHidden.value!=FIELDDATAPROPERTYSPLITSIGN)
    {
        GetCommonParameter(oXmlDom);
        returnDom =CommonGetRecordByForeignKey(oXmlDom, strMode, CommonstrTheme,CommonintPageSize,strPortalResourceCode,strTagFKFieldCode,oFKHidden.value.split(FIELDDATAPROPERTYSPLITSIGN)[0],blnCanChoosePortalSite);
                    //GetSingleRecordByForeignKey(oXmlDom, CommonstrTheme,CommonintPageSize,strPortalResourceCode,strTagFKFieldCode,FKColumName,oFKHidden.value.split(FIELDDATAPROPERTYSPLITSIGN)[0])
    }
    else
    {
        if(conditionId!=null&&conditionId.split(FIELDCODESIGN).length==2)
        {
            GetCommonParameter(oXmlDom);
            //在这里插入特殊处理,可能要调用其他的公用对话框            var strConditionId=conditionId.split(FIELDCODESIGN)[0];
            switch(strPortalResourceCode)
            {
                case POSITIONTYPE:
                        //表示获取对应职务的可适用机构
                      returnDom=GetPositionWithDepartment(oXmlDom, strMode, CommonstrTheme, strConditionId);
                    break;
                case MEETINGROOMTYPE:
                        //表示获取可用的会议室
                       
                      returnDom = GetMeetingRoom(oXmlDom, strMode, CommonstrTheme, null,CommonstrSiteId, false,NOTINCLUDESITE)
                      break;
                case MEALSTYLETYPE:
                        //表示获取可选的菜式：
                      returnDom = GetMealStyle(oXmlDom, strMode, CommonstrTheme, null, strConditionId);                      
                      break;
                default:
                    returnDom=GetSystemResource(strPortalResourceCode, oXmlDom, strMode, blnCanChoosePortalSite, blnCanChooseUserCategory, strIncludeSiteMode);    
                    break;
            }
        }
        else
        returnDom=GetSystemResource(strPortalResourceCode, oXmlDom, strMode, blnCanChoosePortalSite, blnCanChooseUserCategory, strIncludeSiteMode);    
          
    }
    
    if(returnDom != null && returnDom.xml != null)
    {
        if(returnDom.selectSingleNode(OBJECTS + "/" + OBJECT + "/" + VALUE) != null && returnDom.selectSingleNode(OBJECTS + "/" + OBJECT + "/" + TEXT) != null)
        {
            oText.value = returnDom.selectSingleNode(OBJECTS + "/" + OBJECT + "/" + TEXT).text;
            oHidden.value = XmlDomToString(returnDom, FIELDDATAOBJECTSPLITSIGN, FIELDDATAPROPERTYSPLITSIGN);
        }
        else
        {
            oHidden.value = "";
            oText.value = "";
        }
    }
}
//获取固定参数变量
function GetCommonParameter(oXmlDom)
{
    var oHiddenTheme = document.all(SPECIALHIDDENPREFIXSIGN + "ThemeCode" + SPECIALHIDDENSUFFIXSIGN);
    var oHiddenPageSize = document.all(SPECIALHIDDENPREFIXSIGN + "PageSize" + SPECIALHIDDENSUFFIXSIGN);
    var oHiddenPortalSite = document.all(SPECIALHIDDENPREFIXSIGN + "PortalSite" + SPECIALHIDDENSUFFIXSIGN);
    var oHiddenUserCategory = document.all(SPECIALHIDDENPREFIXSIGN + "UserCategory" + SPECIALHIDDENSUFFIXSIGN);
    if(oXmlDom==null)
    {
        //清空参数变量
        CommonstrTheme=null;
        CommonintPageSize=null;
        CommonstrSiteId =null;
        CommonstrCategoryId = null;
        return;
    }
      
    if(oHiddenTheme != null)
        CommonstrTheme = oHiddenTheme.value;        
    if(oHiddenPageSize != null)
        CommonintPageSize = oHiddenPageSize.value;
    if(oHiddenPortalSite != null)
        CommonstrSiteId = oHiddenPortalSite.value;    
    if(oHiddenUserCategory != null)
        CommonstrCategoryId = oHiddenUserCategory.value;
}
//-----------------------------------------------------------------
function FormPageObject()
{
   //GridView参数
   this.PageForm =new Object();
   this.CurrentAction=new Object() ;
   this.SelectID=new Object();
   this.SiteList=new Object();
   this.SiteCode=new Object();
   
   this.StartMethedData =new Object();
   this.PackageInstanceTitle=new Object();
   this.PackageId =new Object();
   
   this.MainFormContainer = new Object();
   this.ChildFormContainer = new Object();
   //点击MenuBar自定义函数
   this.MenuclickCustomHandler = null;
   
   //execMethod中需要的参数
   this.Theme=new Object();
   this.MethodSiteRelationExecuteType=new Object();
   this.ServerNowLongDateString=new Object();
   ////////////////////////
   
   this.ChildFormID=new Object();
   this.ChildTagContainer=new Object();
   this.CurrentComAction=null;
   
   var CurrentChildFormTagDisplayIndex = null;
   this.ChildFormTagCWidth = 0;
   this.TotalChildFormCount=0;
   this.MaxChildFormTagDisplay=0;
   
   
   
   //共有方法
   this.ExecMethod = execMethod;
   this.SubmitPageForm = submitPageForm;
   this.SwitchFormViewTag = switchFormViewTag;
   this.SwitchMainGridTag = switchMainGridTag;
   this.SwitchChildFormTag = switchChildFormTag;
   
   
   
   
   
   
   function execMethod()
   {        
        if(event.menuNode.selectSingleNode('menu/method') == null)
            return false;
        if(this.CurrentComAction!=null)
        {
            this.CurrentComAction.value=event.menuNode.selectSingleNode('menu/ComAction').text;
        }
        var methodId = event.menuNode.selectSingleNode('menu/method').text;
        //var flowType = event.menuNode.selectSingleNode('menu/flowType').text;
        if (event.menuNode.selectSingleNode('menu/executeType') != null)
        {
            var executeType = event.menuNode.selectSingleNode('menu/executeType').text;
            var fastExecuteNode = event.menuNode.selectSingleNode('menu/fastExecute');
            
            //快速启动处理
            if(executeType == this.MethodSiteRelationExecuteType && fastExecuteNode != null)
            {
                var date = new Date();
                var strTitle = '['+this.ServerNowLongDateString+']“' + event.menuNode.selectSingleNode('menu/title').text + '”业务申请';

                // 检验是否需要弹出业务流程选择对话框

                var intPackageLength = fastExecuteNode.selectNodes('Objects/Package').length;
                if (intPackageLength == 0)
                {
                    alert('当前业务没有可用的配置，无法启动。');
                    return false;
                }
                else if (intPackageLength == 1)
                {
                    // 只有一项业务选项，直接使用此选项启动业务
                    this.PackageId.value = fastExecuteNode.selectSingleNode('Objects/Package').selectSingleNode('Id').text;
                    this.PackageInstanceTitle.value = strTitle;
                }
                else if (intPackageLength > 1)
                {
                    // 如果有多种业务启动选择，弹出对话框进行选择
                    var strXml = '<root><title>'+ strTitle + '</title>'+fastExecuteNode.selectSingleNode('Objects').xml+'</root>';
                    var oXmlDom = new ActiveXObject('Microsoft.XMLDOM');
                    oXmlDom.loadXML(strXml);
                    
                    var xmlRet = openDialog('Common/BizEngine/StartMethod.aspx?theme='+this.Theme, 500,250, oXmlDom)
                    if (xmlRet == null)
                        return false;

                    this.PackageId.value = xmlRet.documentElement.selectSingleNode('package').text;
                    this.PackageInstanceTitle.value = xmlRet.documentElement.selectSingleNode('title').text;
                }  
            }
        }
        if(methodId != null && methodId != '')
        {
            this.CurrentAction.value = methodId;
            var iscontinue=true;
            if(this.MenuclickCustomHandler!=null)
            {//只要函数不 return false;则继续回抛服务器
                iscontinue = this.MenuclickCustomHandler();
            }
            if(iscontinue!=false)
            {
                this.SubmitPageForm();
            }
           
            
        }
   }//end execMethod
   
    function submitPageForm()
    {
        if (!this.PageForm) {
            this.PageForm = document.aspnetForm;
        }
        if (!this.PageForm.onsubmit || (this.PageForm.onsubmit() != false)) {
            Handling();
            this.PageForm.submit();
        }
    }
    //显示子集
    function ShowChildForm(mainFormContainer, childFormContainer, childFormId, parentInstanceId, siteCode)
    {
        if (mainFormContainer.style.display != 'none');
            mainFormContainer.style.display = 'none';

        if (childFormContainer.style.display == 'none')
            childFormContainer.style.display = 'inline';

        var url = 'Portal.aspx?Site=' + siteCode + '&Page=2295167120000000537&Form=' + childFormId + '&Parent=' + parentInstanceId;
        if (childFormContainer.src != url)
        {
            childFormContainer.src = url;
        }
    }
    //显示主表单
    function ShowMainForm(mainFormContainer, childFormContainer)
    {
        mainFormContainer.style.display = 'inline';
        childFormContainer.style.display = 'none';
    }
    //切换子集标签
    function switchChildFormTag(mainFormContainer, childFormContainer, parentInstanceId, siteCode)
    {
        if(parentInstanceId==null || parentInstanceId == ''|| parentInstanceId == '0')
        {
            showPopupMessage('该对象还没保存，不允许切换子集!');
                 return;
        }
        var formId = event.tagNode.selectSingleNode('tag/result').text;
        if(formId == 0)
            ShowMainForm(mainFormContainer, childFormContainer);
        else
            ShowChildForm(mainFormContainer, childFormContainer, formId, parentInstanceId, siteCode);
    }
    // 在主列表视图中切换标签    function switchMainGridTag()
    {
        this.ChildFormID.value = event.tagNode.selectSingleNode('tag/result').text;
        this.CurrentAction.value = '2030050772486065700';
        //部件动作赋特殊值,便于区分不是使用部件动作进入FormView界面的
        this.CurrentComAction.value='0'; 
        this.SubmitPageForm();
        
    }
    // 在表单视图中切换标签
    function switchFormViewTag()
    {
        if(this.CurrentAction.value=='2030050772571211700')
        {
            showPopupMessage('该对象还没保存，不允许切换子集!');
                 return; 
        }
        switchChildFormTag(this.MainFormContainer,this.ChildFormContainer,this.SelectID,this.SiteCode);
    }
}
    

///--------------------------------------------------
/// 门户页面载入函数
function PageWinLoad()
{
    // 客户端初始化WebPartZone 值为-1不进行任何设置，值为0设置padding，值为1设置height
    var initZone = document.all("%initZone%");
    if (initZone != null)
    {
        if (initZone.length != null)
        {
            for(var i=0;i<initZone.length;i++)
            {
                var oZone = initZone.item(i);
                InitZone(oZone);
            }
        }else
        {
            InitZone(initZone);
        }
    }
    
    /// ajax的滚动条处理
    try{
    Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(Handling);
    Sys.Net.WebRequestManager.add_completedRequest(CloseHandling);}
    catch(e){}
    
}

///---------------------------------------------------
/// 初始化ajax遮盖
function InitAjaxMask(oMask)
{
    oMask.style.width = window.document.body.clientWidth;
    oMask.style.height = window.document.body.clientHeight;
}
///---------------------------------------------------
/// 初始化WebPartZone
function InitZone(oZone)
{
    if (oZone.value > -1)
    {
        oZone.parentNode.style.padding = 0;        
    }
    if (oZone.value > 0)
    {
        oZone.parentNode.style.height = "100%";
        oZone.parentNode.parentNode.parentNode.parentNode.style.height = "100%";
        oZone.parentNode.parentNode.parentNode.parentNode.parentNode.style.height = "100%";
    }
}
