var _xmlhttp = null;
var _objOpts = null;
var _pleaseSelectedFlag = null;
function getXMLHttpRequest() {//获取XMLHttpRequest对象
  var xmlHttpRequest = null;
  if (window.XMLHttpRequest) {
    xmlHttpRequest = new XMLHttpRequest();
    if (xmlHttpRequest.overrideMimeType) {
      xmlHttpRequest.overrideMimeType("text/xml");
    }
  } else {
    if (window.ActiveXObject) {
      try {
        xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
      }
      catch (e) {
        xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
      }
    }
  }
  if (!xmlHttpRequest) {
    window.alert("Your broswer not support XMLHttpRequest!");
  }
  return xmlHttpRequest;
}


/*
功能：得到标准代码表
参数：1:codetable   对应pub_codetable表中的codetable代码表标识
      2:parentcode  父节点，没有即为空
      3:objOpts      下拉列表对象      
      4:pleaseSelected 请选择标识 0为没有请选择，其它情况则有
      5:valueObj 可选项，在级联下拉列表中用到，指当前下拉列表对象
      6:userCache:是否使用缓冲 0为不使用缓冲，其它情况为使用缓冲
*/
function getStandCodeTableResult(codetable, parentcode, objOpts, pleaseSelected,valueObj,userCache) {

  /*
  if (valueObj) {
    if (parentcode && parentcode.length > 0) {
      valueObj.value = parentcode;
    }
  }
  */
  if (valueObj) {
	if(valueObj.style.display == "none")
	{
	
		objOpts.style.display = "none"
		return
	}

	if(parentcode == "")
	{
		objOpts.style.display = "none"
		return
	}
  }

  
  if (!objOpts)return;
  _objOpts = objOpts;
  _pleaseSelectedFlag = pleaseSelected;
  _xmlhttp = getXMLHttpRequest();
  _xmlhttp.open("get", "/images/js/select.xml", true);
  _xmlhttp.onreadystatechange = fnBuildOptions;
  _xmlhttp.send();
}
//function fnBuildOptionss(){alert(111)}

function fnBuildOptions() {//alert(_objOpts.value);
  if (_xmlhttp.readyState == 4) {
    _objOpts.style.display = "none";
    _objOpts.options.length = 0;
    if(_pleaseSelectedFlag != 0)
    _objOpts.options[0] = new Option("请选择", "");
    var CodeTableInfoElement = _xmlhttp.responseXML;
    var CodeTableElement = CodeTableInfoElement.getElementsByTagName("CodeTable")[0];
    var ResultsElement = CodeTableElement.getElementsByTagName("Results")[0];
    var countnum = ResultsElement.getAttribute("countnum");
    var ResultElement;
    var orderid;
    var code;
    var name;
    var parentcode;
    for (var i = 0; i < countnum; i = i + 1) {
      ResultElement = ResultsElement.getElementsByTagName("Result")[i];
      orderid = ResultElement.getElementsByTagName("orderid")[0];
      code = ResultElement.getElementsByTagName("code")[0];
      name = ResultElement.getElementsByTagName("name")[0];
      parentcode = ResultElement.getElementsByTagName("parentcode")[0];
      _objOpts.options[_objOpts.options.length] = new Option(name.firstChild.data, code.firstChild.data);
    }
    if (countnum > 0)_objOpts.style.display = "block";
    _objOpts.fireEvent("onChange");
  }
}


/*
功能：得到配置文件中的下拉列表
参数：1:codetable： 对应配置文件中的codetable代码表标识
      2:parentcode  父节点，没有即为空
      3:objOpts      下拉列表对象
      4:pleaseSelected 请选择标识 0为没有请选择，其它情况则有
      5:valueObj 可选项，在级联下拉列表中用到，指当前下拉列表对象
      6:userCache:是否使用缓冲 0为不使用缓冲，其它情况为使用缓冲
*/
function getConfigCodeTableResult(codetable, parentcode, objOpts, pleaseSelected,valueObj,userCache) {

  if (valueObj) {
	if(valueObj.style.display == "none")
	{
	
		objOpts.style.display = "none"
		return
	}

	if(parentcode == "")
	{
		objOpts.style.display = "none"
		return
	}
  }
  
  if (!objOpts)return;
  _objOpts = objOpts;
  _pleaseSelectedFlag = pleaseSelected;
  _xmlhttp = getXMLHttpRequest();
  _xmlhttp.open("get", "../selectServlet?type=getConfigCodeTableResult&codetable=" + codetable + "&parentcode=" + parentcode+"&userCache="+userCache, false);

  _xmlhttp.onreadystatechange = fnBuildOptions;
  _xmlhttp.send();
}

/*
功能：页页中配置的sql对应的下拉列表
参数：sql:初始化下接列表记录的SQL
      obj:待赋值对象
      parentcode  父节点，没有即为空
      pleaseSelected：请选择标识
      valueObj 可选项，在级联下拉列表中用到，指当前下拉列表对象
      
*/

function getPageSqlResult(sql, obj,parentcode ,pleaseSelected,valueObj) {
  if (valueObj) {
	if(valueObj.style.display == "none")
	{
	
		objOpts.style.display = "none"
		return
	}

	if(parentcode == "")
	{
		objOpts.style.display = "none"
		return
	}
  }
  
  if (!obj) {return;}
  if (!sql) {return;}
  _objOpts = obj;
  _pleaseSelectedFlag = pleaseSelected;
  _xmlhttp = getXMLHttpRequest();
  _xmlhttp.open("get", "../selectServlet?type=getPageSqlResult&sql=" + sql+ "&parentcode=" + parentcode, false);
  _xmlhttp.onreadystatechange = fnBuildOptions;
  _xmlhttp.send();
}




