/**
 * @file common.js
 * @desription 公用函数
 * @version 1.0 2003.4.10
 * @author ?
 * @Modify by 龙小宝(ebizs@itpub.net)
 */

//////////////////////////////////////////////////////////////////////////////
//寻找一个对象
/////////////////////////////////////////////////////////////////////////////
//n：要寻找的对象的id
//d：包容该对象的父对象，缺省为document
function findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}
var currentActionName;
//////////////////////////////////////////////////////////////////////////////
//得到From中所有元素的ID和值，并组成GET请求中要求的[name]=[value]&...[name]=[value]串
//////////////////////////////////////////////////////////////////////////////
function getAlldata(obj){
    var data = "";
    for (i=0; i<obj.length; i++ ){
        if ( obj(i).type != "submit" && obj(i).type != "reset" && obj(i).type != "button"){
            if( obj(i).type == "select-multiple"){
                for(j=0; j<obj(i).length;j++){
                    if (obj(i).options[j].selected ){
                        data = data+obj(i).id+"="+replaceStr(obj(i).options[j].value)+"&";
                    }
                }
            }else if(obj(i).type =="radio" || obj(i).type =="checkbox"){
                if (obj(i).checked){
                    data=data+obj(i).id+"="+replaceStr(obj(i).value)+"&";
                }
            }else{
                data=data+obj(i).id+"="+replaceStr(obj(i).value)+"&";
            }
        }
    }
    return data;
}

//////////////////////////////////////////////////////////////////////////////
//对话框的提交
//////////////////////////////////////////////////////////////////////////////
function dialogSubmit(){
    top.returnValue = getAlldata(eval(ItownGlobals.FORM_NAME));
    top.close();
}

//////////////////////////////////////////////////////////////////////////////
//打开模态对话框
//////////////////////////////////////////////////////////////////////////////
function openModalDialog(action,method,para,width,height,openURL){
    var url = openURL;
    if(method != null){
        url += "?method=" + method;
    }
    if(para != null){
        url += "&" + para;
    }
    var dialogStyle = "dialogWidth:" + width + ";dialogHeight:" + height + ";center:yes";

    return window.showModalDialog(url,"",dialogStyle);
}

//////////////////////////////////////////////////////////////////////////////
//特殊字符串置换
//////////////////////////////////////////////////////////////////////////////
function replaceStr(str)
{
	if(str==null) return str;
	str = str.replace(/\+/g,"%2B");
	str = str.replace(/%/g,"%25");
	str = str.replace(/&/g,"%26");
    str = str.replace(/\\/g,"&#92;");
    str = str.replace(/</g,"&#60;");
    str = str.replace(/>/g,"&#62;");
    str = str.replace(/\"/g,"&#34;");
    str = str.replace(/ /g,"&nbsp;");

    return str;
}
/**
*@description:      统一的局部刷新请求入口
*@param:            actionName	      已配置的action
*@param:            actionMethod      action中的方法
*@param:            getParameter      利用get方法传递的参数
*@param:            postParameter     利用post方法传递的参数
*@param:            isSynch
*@return:           从服务器返回的字符串
*/
//function executeRequest(action,actionMethod,postParameter,isSynch){//modified by hyzou, remove parameter 'getParameter'
function executeRequest(actionName,actionMethod,postParameter,isAsynchronism,reqURL){
    //判断是否使用局部刷新
    var isPartlyRefresh;
    var srcObj = event.srcElement;
    if(srcObj != null && srcObj.tagName.toUpperCase() == "INPUT"){
    	if(srcObj.isPartlyRefresh != null && srcObj.isPartlyRefresh.toUpperCase() == "FALSE"){
    			executeDirectRequest(actionName,actionMethod);
    			return "NOTING";
    	}
    }

    var objXMLReq = new ActiveXObject("Microsoft.XMLHTTP");
	var strURL = reqURL;
	currentActionName = actionName;

	var flag = false;
	if(actionMethod != null && actionMethod != ""){
        strURL += "?method=" + actionMethod;
        flag = true;
    }
    //增加局部刷新标示符
    if(flag)
    	strURL += "&isPartlyRefresh=true";
    else
        strURL += "?isPartlyRefresh=true";

    if(postParameter == null) postParameter ="";
    //postParameter=replaceStr(postParameter);    //如果重复替换将会有问题
    //调试信息
	if(findObj("SendMsg")) findObj("SendMsg").innerText = postParameter;

    if(isAsynchronism == null) isAsynchronism = false;
    objXMLReq.open("POST", strURL, false);
    objXMLReq.send(postParameter);

	var result
    if(isAsynchronism==false){
    		result = objXMLReq.responseText;
    		//调试信息
			if(findObj("RetrieveMsg")) findObj("RetrieveMsg").innerText = result;
    		return result;
     }
}
/**
*@description:      统一的直接请求入口
*@param:            actionName	      已配置的action
*@param:            actionMethod      action中的方法
*/
function executeDirectRequest(actionName,actionMethod,execURL){
	currentActionName = actionName;
	var strURL = execURL;
	var formObj = findObj(ItownGlobals.FORM_NAME);
	if(formObj == null) return;
	//指定action方法
	if(actionMethod != null && actionMethod != ""){
		for (i=0; i<formObj.length; i++ ){
	        if ( formObj(i).type == "hidden" && formObj(i).id.toLowerCase() == "method" ){
	        	formObj(i).value = actionMethod;
	        	break;
	        }
	    }
    }
    //指定action
	formObj.action = strURL;
	formObj.submit();
}
//////////////////////////////////////////////////////////////////////////////
//局部刷新请求代理
//////////////////////////////////////////////////////////////////////////////
function proxyRequest(action, method, parameter,reqURL) {
    var objXMLReq = new ActiveXObject("Microsoft.XMLHTTP");
    var strURL = reqURL;
    if(method != null && method != ""){
        strURL += "?method=" + method;
    }
    if(parameter != null && parameter != ""){
        strURL += ("&" + parameter);
    }
    objXMLReq.open("POST", strURL, false);
    objXMLReq.send("");
    var strResult = objXMLReq.responseText;

    //调试
    //resutFromServer.innerText = strResult;

    //如果是局部刷新，返回内容会明确以"局部刷新："开头。
    //否则说明后台返回的是一个完整的界面。
    if(strResult.indexOf("局部刷新：") == 0){
        eval(strResult.substring(5));
    }else{
    	//先要清理界面所有元素
    	document.createElement();
        document.write(strResult);
    }
}

//////////////////////////////////////////////////////////////////////////////
//datastore通用自身请求，包括刷新和翻页，为局部刷新
//////////////////////////////////////////////////////////////////////////////
function dsSessionMgr(actionMethod,formId,dwName)
{
    var action="BOControllerDsSessionMgrAction";
    var postParameter;

    var objDwForm=findObj(formId);
    postParameter="dwid_"+dwName+"="+findObj("dwid_"+dwName,objDwForm).value;
    postParameter+="&dwName="+dwName;

    var result = executeRequest(action,actionMethod,postParameter,false);
    commDealResult(result);
}

//////////////////////////////////////////////////////////////////////////////
//datastore从session中清除，为局部刷新，异步，onbeforeunload时调用
//////////////////////////////////////////////////////////////////////////////
function removeDataSetFromSession()
{
    var action="BOControllerDsSessionMgrAction";
    var actionMethod="removeDataSetFromSession";
    var postParameter="";

    var arr = dwManager.getAllDW();
    for(var i=0; i < arr.length; i++){
    	if(arr[i].isAutoRemove())
    		postParameter += "&dwid=" + arr[i].getDWIdValue();
    }
    if(postParameter!=null && postParameter!="")
    	postParameter=postParameter.substring(1);
    else
        return;
    var result = executeRequest(action,actionMethod,postParameter,true);
}

//////////////////////////////////////////////////////////////////////////////
//检查数据合法性
//////////////////////////////////////////////////////////////////////////////
function checkValue(formObj){
      if(ItownGlobals.DEBUG){
        return true;
    }
    var obj;
    var form = formObj == null ? findObj(ItownGlobals.FORM_NAME): formObj;

    for(i=0;i<form.elements.length; i++){

         obj=form[i];

            if(obj.isItownEAP==true){
            if(obj.type != "submit" && obj.type != "reset" && obj.type != "button" && obj.id.indexOf(DW_HIDDEN_EDITER_BEGIN) < 0)

                if(!(eapObjsMgr.onvalidate(obj))){
                	try{
                		obj.focus();
                	}catch(e){}
                    return false;
                 }


         }
    }
    return true;
}
//////////////////////////////////////////////////////////////////////////////
//装配数据岛中的数据，主要是DataWindow和Tree
//////////////////////////////////////////////////////////////////////////////
function assambleXMLData(obj){
	var  dwFilterBegin = "dwfilter_";
    for (i=0; i<obj.length; i++ ){
        if ( obj(i).type == "hidden" && obj(i).id.indexOf(dwFilterBegin) == 0){
        	//调用数据窗口对象的函数进行数据过滤
            dwManager.getDW(obj(i).id.substring(dwFilterBegin.length)).dataFilter();
        }
    }
}

//////////////////////////////////////////////////////////////////////////////
//设置actionMethod
//////////////////////////////////////////////////////////////////////////////
function setActionMethod(actionMethod){
    EAPForm.method.value = actionMethod;
}
//////////////////////////////////////////////////////////////////////////////
//数据窗口局部刷新的数据重新装配
//////////////////////////////////////////////////////////////////////////////
function dataWindowRefresh(dwName,data,type)
{
	if(data == null || data == "") return;
	dwManager.getDW(dwName).replaceNode(data,type);
}
//////////////////////////////////////////////////////////////////////////////
//DataWindow预处理，包括代码列表转换、格式化显示数据
// dw 数据窗口对象
//////////////////////////////////////////////////////////////////////////////
function preDealDW(dw){
	var dwName = new DW_NAME_RULE(dw).getDWName();
	//触发事件
	if(!dwManager.getDW(dwName).dwevent.trigger(dwEvent.BEFOR_LOAD)) return false;
	try{
		dwManager.getDW(dwName).preDealDW();
	}catch(e){}
	return true;

}
//////////////////////////////////////////////////////////////////////////////
//将DataWindow用其自身指定的XSL解析l
// dw 数据窗口对象
//////////////////////////////////////////////////////////////////////////////
function msxslt(dw){
	var dwName = new DW_NAME_RULE(dw).getDWName();
	dwManager.getDW(dwName).msxslt();
	//触发事件
	dwManager.getDW(dwName).dwevent.trigger(dwEvent.AFTER_LOAD);
}
//////////////////////////////////////////////////////////////////////////////
//获取xml控件
//return object/null(if exception catched)
//////////////////////////////////////////////////////////////////////////////
function getXMLActiveObj(){
	try{
    	return new ActiveXObject("MSXML2.DOMDocument.4.0");
    }catch(e){
        if(confirm("您的机器上的XML解析器版本太低，您是否打算现在升级？")){
            document.location = "/" + ItownGlobals.WEB_APP_NAME + "/jsp/MsXML4.0.jsp";
        }
        return null;
    }
}
//////////////////////////////////////////////////////////////////////////////
//用指定的XSL解析xml
// xml XML对象
// href XSL路径
//////////////////////////////////////////////////////////////////////////////
function msxsltXML(xml,href)
{
    var xmldoc = getXMLActiveObj();
    var xsldoc = getXMLActiveObj();
    if(xmldoc == null || xsldoc == null) return;

	xmldoc.async =	false;
	xsldoc.async =	false;


	xmldoc.loadXML(xml);
	xsldoc.load(href);

	if((xmldoc.parseError.errorCode == 0) && (xsldoc.parseError.errorCode ==0)){
		sret = xmldoc.transformNode(xsldoc);
	}
	else{
		sret = 'XML Parse Error Reason: ' + xmldoc.parseError.reason;
		sret += '<br>' + 'XSL Parse Error Reason: ' + xsldoc.parseError.reason;
	}
	return sret;
}
/**
*@description:      服务器返还结果常规处理函数
*@param:            result            局部刷新的返回结果字符串
*/
function commDealResult(result){
	//alert(result);
	if(result == null || result == "NOTHING") return "NOTHING";
	//如果是定义好了不处理标识，直接显示
    if(result.indexOf(ItownGlobals.NOT_DEAL_INDENTIFIER) >= 0){
	    document.createElement();
	    document.write(result);
	    return "NOTHING";
	}

	//如果是局部刷新，返回内容会明确以"局部刷新："开头。
    if(result.indexOf("局部刷新：") == 0){
        eval(result.substring(5));
        return "NOTHING";
    }
	var cmdArr =  result.split(ItownGlobals.resultSplit);
	var cmdKind,cmd;
	var pos;
	var isError = false;
	for(var i=0; i < cmdArr.length; i++){
		if(cmdArr[i] == null || cmdArr[i] == "") continue;
		try{
			pos = cmdArr[i].indexOf("=");
			if(pos < 0){
				 alert("操作人员注意：现在还不能处理"+cmdArr[i]);
				 return "UNIEAP_ERROR";
			}
			cmdKind = cmdArr[i].substring(0,pos).toUpperCase();
			cmd = cmdArr[i].substring(pos+1);
			switch(cmdKind){
				case "ERRORMSG":
	        		alert("错误信息："+cmd);
	        		isError = true;
					break;
				case "MESSAGE":
				    alert(cmd);
					break;
				case "EXECUTE":
				    eval(cmd);
					break;
				case "DATAOBJS":
				    refreshDataObjs(cmd);
					break;
				default:
				    alert("操作人员注意：现在还不能处理"+cmdKind+"类型的返回结果");
				    return "UNIEAP_ERROR";
			}
		}
		catch(e){
			alert("操作人员注意：执行commDealResult()出错，\n错误信息："+e.message);
			return "ERROR";
		}
	}
	if(isError) return "ERROR";
	return "NOTHING";;
}
/**
*@description:      刷新某个dataObjs
*@param:            dataObjs 新的dataObjs字符串
*                   格式: <dataObjs... dwName="name" ...>...</dataObjs>
*/
function refreshDataObjs(dataObjsStr){
	if(dataObjsStr == null) return;
	var DWNAME_STRING = "dwName=\"";
	var pos = dataObjsStr.indexOf(DWNAME_STRING);
	if(pos < 0) return;
	var tmpStr = dataObjsStr.substring(pos+DWNAME_STRING.length);
	var pos1 = tmpStr.indexOf("\"");
	var dwName = dataObjsStr.substring(pos+DWNAME_STRING.length,pos1+pos+DWNAME_STRING.length);
	if(dwManager.getDW(dwName).nameRule.getXmlDiv() == null){
		alert("数据窗口刷新失败：界面上没有数据窗口("+dwName+")");
		return;
	}
	dataWindowRefresh(dwName,dataObjsStr,"dataObjs");
}
/**
*@description 协助局部刷新作forward
*@param forwardName  configed in struts-config.xml
*@param alertMsg   be alerted
*@param executeScript javaScript function generally;
*                     fowarding is stoped when "false" is returned by executeScript
*/
function forwardByPartlyRefresh(forwardName,alertMsg,executeScript){
	if(alertMsg != null && alertMsg != "") alert(alertMsg);

	if(executeScript != null && executeScript != ""){
		var executeScriptReturn = ""+eval(executeScript);
		if(executeScriptReturn.toLowerCase() == "false")
		    return;
    }

	findObj("unieapForwardName").value = forwardName;
	executeDirectRequest(currentActionName,"EAPForward");
}

//恢复按钮的图片显示
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.style.backgroundImage=x.oSrc;
}
//查找一个html元素
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
//替换按钮显示的图片
function MM_swapImage() { //v3.0

 var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)

  if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.style.backgroundImage; x.style.backgroundImage ="url("+a[i+2]+")" ;
  }
}

//以图片地址为参数显示图片。
function display_picture(picture_address){
   window.open (picture_address, "newwindow");

}

//跳转URL
function gotourl(url){
  window.navigate(url);
}

function chCorpGoodsList(objGoods,strCorpId){

	for(i=objGoods.options.length-1;i>0;i--){
		objGoods.options.remove(i);
	}

	var retJs=executeRequest("supervision/SupervisionAction","getQueryCorpGoodsDetail","corpId=" + strCorpId+"");
	var xmlDoc = new ActiveXObject("Msxml.DOMDocument");
	xmlDoc.async = false;
	if(retJs!=""){
		if(xmlDoc.loadXML(retJs)){
			var rows = xmlDoc.getElementsByTagName("ROW");
			for(i=0;i<rows.length;i++){
				var cols = rows[i].childNodes;
				objGoods.options.add(new Option(cols.item(2).text,cols.item(4).text));

			}
		}
	}
}

////
/* 检测指定文本框输入是否合法 */
function verifyInput(input)
{
	var i;
	var ok = true;

	/* 非空校验 */
	ok = checkNullable(input);
	if(ok == true){
		/* 数据类型校验 */
		switch(input.datatype)
		{
			case "int":
			{
				ok = checkInt(input);
				break;
			}
			case "float":
			{
				ok = checkReal(input,2,10);
				break;
			}
			case "date":
			{
				ok = checkDate(input);
				break;
			}
			case "tel":
			{
				ok = checkPhonecode(input);
				break;
			}
			case "postcode"://邮政编码
			{
				ok = checkPostalcode(input);
				break;
			}
			case "email": //电子邮箱地址校验
			{
				ok = checkEmail(input);
				break;
			}
		/* 在这里可以添加多个自定义数据类型的校验判断 */
		/*  case datatype1: ... ; break;        */
		/*  case datatype2: ... ; break;        */
		/*  ....................................*/
			default : break;
		}
	}
	return ok;
}
/* 检测指定FORM表单所有应被检测的元素
（那些具有自定义属性的元素）是否合法，此函数用于表单的onsubmit事件 */
function verifyAll(myform)
{
	var i;
	for (i=0;i<myform.elements.length;i++)
	{
		/* 校验当前元素 */
		if (verifyInput(myform.elements[i])==false)
		{
			myform.elements[i].focus();
			return false;
		}
	}
	return true;
}



//==============================数据岛查找基础数据===============================================
/**
* 从后台获取XML数据
*/
function BBD_GetBaseDataFromService(requestParameter)
{
 var URL="./controller";
 var resultType= 1;//XMLDOM
 var reqParm = "SERVICE_ID=FRAMEWORK_BASEDATA_XMLHTTP_REQUEST_SERVICE&"+requestParameter;
 URL = URL+"?"+ reqParm;
 downloadInfo = ItownGlobals.downloadData(URL,null,null,resultType);
 if(downloadInfo != null)
 {
  return downloadInfo;
 }
 else
 {
  return null;
 }
}
/**
* 解析XML数据
*/
function BBD_PraseBaseDataXML(actionObj,baseDataObj,wrtCode,wrtName,objList)
{
 if(baseDataObj==null)
 {
  return -1;
 }
 if(baseDataObj.selectSingleNode("//basedatas/dataNum")==null||baseDataObj.selectSingleNode("//basedatas/dataNum").length==0)
 {
  alert("查找基础数据信息出错,请检查网络连接是否正常以及是否存在防火墙!");
  return -1;
 }
 var dataNum = baseDataObj.selectSingleNode("//basedatas/dataNum").text;
 if(dataNum =="*")
 {
   return 100;
 }
 if(dataNum =="0")
 {
  alert("没有找到对应的基础数据信息");
  return -1;
 }
 var myBaseDataNodes = baseDataObj.documentElement.selectNodes("data");
 if(myBaseDataNodes != null)
 {
  if(myBaseDataNodes.length >0)
  {
   var valueObj= myBaseDataNodes[0].childNodes;
   wrtCode.value = valueObj.item(0).text;
   wrtName.value = valueObj.item(1).text;
   for(var x=0;x<objList.length;x++)
   {
    objList[x].value= valueObj.item(x+2).text
   }
  }
 }
 return 0;
}
/**
* 打开基础数据查找窗口
*/
function BBD_OpenBaseDataSelectWin(actionObj)
{
	var code = actionObj.value;
	var temp = actionObj.openPageServiceID;
	actionObj.openPageServiceID = actionObj.openPageServiceID + "&code=" + code;
	PopWindowSelectObj.openSelectWindow(actionObj);
	actionObj.openPageServiceID = temp;
}
/**
* 基础数据的调用主方法
*/
function BBD_SearchBaseDataObject(actionObj)
{
 //检查返回的属性值;
 var rtnFldObj =  actionObj.getAttributeNode("returnFldNames");
 if(rtnFldObj==null)
 {
   return -1;
 }
 if(rtnFldObj.value == null ||rtnFldObj.value == "")
 {
     return -1;
  }
 rtnRegExp = new RegExp(",", "g");
 rtnString = rtnFldObj.value;
 rtnArray = rtnString.split(rtnRegExp);
 if(rtnArray.length<2)//用逗号分割出来的对象没有2个
 {
  return -1;
 }
var propCode = rtnArray[0];//code的属性名称
var propName = rtnArray[1];//name的属性名称
 //检查需要回填的对象
 var writeFldObj = actionObj.getAttributeNode("writeFldNames");
 if(writeFldObj==null)
 {
   return -1;
 }
 if(writeFldObj.value == null ||writeFldObj.value == "")
 {
     return -1;
  }

 wrtRegExp = new RegExp(",", "g");
 wrtString = writeFldObj.value;
 wrtArray = wrtString.split(wrtRegExp);
 if(wrtArray.length<2)//用逗号分割出来的对象没有2个
 {
   return -1;
 }
var writeCodeObjArr = document.getElementsByName(wrtArray[0]);
var writeNameObjArr = document.getElementsByName(wrtArray[1]);
if(writeCodeObjArr.length == 0)
{
  alert(actionObj.chsname+":回填"+propCode+"的对象不存在,请检查writeFldNames属性对应的第一个对象");
}
if(writeNameObjArr.length == 0)
{
  alert(actionObj.chsname+":回填"+propName+"的对象不存在,请检查writeFldNames属性对应的第二个对象");
}
var wrtCode = getRealObjectbyName(writeCodeObjArr,wrtArray[0]);//只取取到的第一对象,如果页面存在多个同名对象,可以在这个地方解决
var wrtName = getRealObjectbyName(writeNameObjArr,wrtArray[1]);//只取取到的第一对象,如果页面存在多个同名对象,可以在这个地方解决
var objList =  new Array();
for(var x=0;x<wrtArray.length;x++)
{
 writeCodeObjArr = document.getElementsByName(wrtArray[x]);
 if(writeCodeObjArr.length == 0)
 {
   alert(actionObj.chsname+":回填writeFldNames属性对应的第"+x+"个对象在页面不存在");
 }
 objList[x] =getRealObjectbyName(writeCodeObjArr,wrtArray[x]);

}
//检查基础数据的INDEXID
 var idxFldObj =  actionObj.getAttributeNode("openPageServiceID");
 if(idxFldObj==null)
 {
   return -1;
 }
 if(idxFldObj.value == null ||idxFldObj.value == "")
 {
     return -1;
  }
 idxRegExp = new RegExp("&", "g");
 idxString = idxFldObj.value;
 idxArray = idxString.split(idxRegExp);
 if(idxArray.length<2)//用逗号分割出来的对象没有2个
 {
  alert(actionObj.chsname+":对应的基础数据的索引ID没有找到,请检查openPageServiceID属性");
  return -1;
 }
 var bdsFldnames = actionObj.getAttributeNode("baseDataSearch");
 if(bdsFldnames == null)
 {
  alert("是调用基础数据模块吗，baseDataSearch参数为空，请检查。");
  return;
 }
 var bdsSearchValue = bdsFldnames.value;
 var idxName="";
 var dictIDixd = 0;
 for(var i=0;i<idxArray.length;i++)
 {
  if(idxArray[i].lastIndexOf("dictID")>-1)
  {
   idxName=idxArray[i];
   dictIDixd = i;
   break;
  }
 }
//---添加reqParm----
//增加传递的参数
var newPropPram = "";
for(var i=1;i<idxArray.length;i++)
{
 if(i == dictIDixd)
 {
  continue;
 }
 newPropPram += ("&reqParm="+idxArray[i]);
}
//增加属性
for(var i=0;i<rtnArray.length;i++)
{
  newPropPram += ("&propdata="+rtnArray[i]);
}
//---添加reqParm结束----
var reqParm = (idxName+"&SearchValue="+actionObj.value+"&baseDataSearch="+bdsSearchValue+"&propCode="+propCode+"&propName="+propName+"&wrtCode="+wrtArray[0]+"&wrtName="+wrtArray[1]);
reqParm = reqParm+newPropPram;
try{
  var xmlRtn = BBD_GetBaseDataFromService(reqParm);
  var rtn = BBD_PraseBaseDataXML(actionObj,xmlRtn,wrtCode,wrtName,objList);
 }
catch(error)
{
 rtn = -1;
}
 return rtn;
}
/**
* 处理key和对象属性
* 返回值: 0 成功
* 返回值: -1 查找不成功
* 返回值: 100 查找到多条数据,打开搜索窗口
*/
function BBD_BasedataProcessData(actionObj)
{
//查找是否为基础数据查询对象
 var fldnames = actionObj.getAttributeNode("baseDataSearch");
 if(fldnames == null)
 {
  return;
 }
 var searchValue = fldnames.value;
 if(searchValue !=null && (searchValue=="1"||searchValue=="2"))//需要处理基础数据
 {
  if(actionObj.value=="")//如果用户不输入值直接打回车
  {
  	BBD_OpenBaseDataSelectWin(actionObj);
   //alert("没有输入值!如何处理?");
   //actionObj.focus();
  }
  else//用户输入值,打回车
  {
   //转到后台去搜索数据,返回XML
   var searchRtn =  BBD_SearchBaseDataObject(actionObj);
   //如果XML为空或者-1,指没有找到数据,则直接返回.
   //如果XML返回0,则成功
   //如果返回如果返回100,则为多条数据,需要打开窗口
   if(searchRtn == 0)
   {
     return 0;
   }
   else if(searchRtn == -1)
   {
	return -1;
   }
   else
   {
     BBD_OpenBaseDataSelectWin(actionObj);
     return 100;
   }
  }
 }
}

/**
* 获取区分大小写的页面名字的对象
*/
function getRealObjectbyName(objList,objName)
{
 var returnObj = null;
 if(objList.length>0)
 {
  if(objList.length==1)
  {
   returnObj =  objList[0];
  }
  else
   {
    for(var i=0;i<objList.length;i++)
    {
      if(objList[i].name==objName)
      {
	returnObj = objList[i];
	break;
      }
    }
   }
 }
 return returnObj;
}
