/************************************
 *2004/04/24
 ************************************/

/************************************
 ************************************/
function root(name,value){
  this.name = name;
  this.value = value;
}

/************************************
 *  有上级的静态数据
 ************************************/
function leaf(name,value,root){
  this.name = name;
  this.value = value;
  this.root = root;
}

/************************************
 ************************************/
function leafEx(name,value,root,exData){
  this.name = name;
  this.value = value;
  this.root = root;
  this.exData = exData;
}

/******************************************
 ******************************************/
function checkbirth(birthday){
	var nbegin,nend;
      if ( (parseInt(birthday) % 4 == 0 && parseInt(birthday) % 100 != 0) || (parseInt(birthday) % 400 == 0 )){
        ereg=/^(19|20)[0-9]{2}(-)((1|3|5|7|8|01|03|05|07|08|10|12)(-)([1-9]|0[1-9]|[1-2][0-9]|3[0-1])|(4|6|9|04|06|09|11)(-)([1-9]|0[1-9]|[1-2][0-9]|30)|(2|02)(-)([1-9]|0[1-9]|[1-2][0-9]))$/;
      } else {
        ereg=/^(19|20)[0-9]{2}(-)((1|3|5|7|8|01|03|05|07|08|10|12)(-)([1-9]|0[1-9]|[1-2][0-9]|3[0-1])|(4|6|9|04|06|09|11)(-)([1-9]|0[1-9]|[1-2][0-9]|30)|(2|02)(-)([1-9]|0[1-9]|1[0-9]|2[0-8]))$/;
      }
      if(ereg.test(birthday)){
      return true;
      }
      alert("日期正确格式应为:yyyy-mm-dd");
      return false;
}

/******************************************
 *  将root类的静态数据插入下拉框中
 *  参数：
 *     table  静态数据名
 *     value  默认选中值
 *****************************************/
function getStaticData(table, value) {
  options = "";
  var i;
  data = table[0];
  for(i=0; i<data.length; i++){
    options+="<option value="+data[i].value+(value==data[i].value?" selected":"")+">"+data[i].name+"</option>";
  }
  return options;
}

/******************************************
 *****************************************/
//function getStaticDataTree(table, value, root, separator) {
//  var i;
//  data = table[0];
//  separator += separator;
//  for(i=0; i<data.length; i++){
//  	if (data[i].root == root){
//    	document.write("<option value="+data[i].value+(value==data[i].value?" selected":"")+">"+separator+data[i].name+"</option>");
//    	this.getStaticDataTree(table, value, data[i].value, separator);
//  	}
//  }
//}


/******************************************
 *****************************************/
function getStaticDataTree(table, value, root) {
  var i;
  data = table[0];
  separator = "&nbsp;";
  for(i=0; i<data.length; i++){
  	if (data[i].root == root){
    	document.write("<option value="+data[i].value+(value==data[i].value?" selected":"")+">"+data[i].name+"</option>");
    	this.getStaticDataSubTree(table, value, data[i].value, separator);
  	}
  }
}

/******************************************
 *****************************************/
function getStaticDataSubTree(table, value, root, separator) {
  var i;
  data = table[0];
  separator += separator;
  for(i=0; i<data.length; i++){
  	if (data[i].root == root){
    	document.write("<option value="+data[i].value+(value==data[i].value?" selected":"")+">"+separator+data[i].name+"</option>");
    	this.getStaticDataSubTree(table, value, data[i].value, separator);
  	}
  }
}


/******************************************
 *****************************************/
function getStaticDataExTree(table, value, root, separator) {
var i;
  data = table[0];
  separator += separator;
  for(i=0; i<data.length; i++){
  	if (data[i].root == root){
    	document.write("<option value="+data[i].value+(value==data[i].value?" selected":"") + " exData=\"" + data[i].exData +"\">"+data[i].name+"</option>");
    	this.getStaticDataExTree(table, value, data[i].value, separator);
  	}
  }	
}

/******************************************
 *****************************************/
function getQueryConditon(table, value) {
  options = "";
  var i;
  data = table[0];
  for(i=0; i<data.length; i++){
    options+="<option value="+data[i].value+" datatype="+data[i].root+" isdic="+data[i].exData[0]+" staticdata="+data[i].exData[1]+">"+data[i].name+"</option>";
  }
  return options;
}

/******************************************
 *****************************************/
function getStaticDataEx(table, value) {
  options = "";
  var i;
  data = table[0];
  for(i=0; i<data.length; i++){
    options+="<option value="+data[i].value+(value==data[i].value?" selected":"") + " exData=\"" + data[i].exData +"\">"+data[i].name+"</option>";
  }
  return options;
}

/******************************************
 *****************************************/
function getStaticData2(table, value, root) {
  options = "";
  var i;
  data = table[0];
  for(i=0; i<data.length; i++){
  	if (data[i].root == root)
    	options+="<option value="+data[i].value+(value==data[i].value?" selected":"")+">"+data[i].name+"</option>";
  }
  return options;
}

/******************************************
 *****************************************/
function getStaticData2Ex(table, value, root) {
  options = "";
  var i;
  data = table[0];
  for(i=0; i<data.length; i++){
  	if (data[i].root == root)
    	options+="<option value="+data[i].value+(value==data[i].value?" selected":"") + " exData=\"" + data[i].exData +"\">"+data[i].name+"</option>";
  }
  return options;
}


/******************************************
 *  实现上级静态数据改变，下级做相应改变
 *  参数：
 *     src  上级静态数据所在的下拉框
 *     des  下级静态数据所在的下拉框
 ×     des_table 下级静态数据名
 *****************************************/
function OnSelectChange(src, des, des_table) {
  if(!src.value) return;
  data = des_table[0];
  if(!data || !des) return;
  oOs = des.options;
  while(oOs.length > 0){
    oOs.remove(0);
  }

  var i;
  for(i=0; i<data.length; i++) {
  	if (data[i].root == src.value) {
    	var oOption = document.createElement("OPTION");
    	oOption.text = data[i].name;
    	oOption.value = data[i].value;
    	oOs.add(oOption);
	}
  }
}

/******************************************
 *  实现上级静态数据改变，下级做相应改变扩展
 *  参数：
 *     src  上级静态数据所在的下拉框
 *     des  下级静态数据所在的下拉框
 ×     des_table 下级静态数据名
 *****************************************/
function OnSelectChangeEx(src, des, des_table) {
  if(!src.value) return;
  data = des_table[0];
  if(!data || !des) return;
  oOs = des.options;
  while(oOs.length > 0){
    oOs.remove(0);
  }

  var i;
  for(i=0; i<data.length; i++) {
  	if (data[i].root == src.value) {
    	var oOption = document.createElement("OPTION");
    	oOption.text = data[i].name;
    	oOption.value = data[i].value;
     	oOption.setAttribute("exData", "" + data[i].exData);
    	oOs.add(oOption);
	}
  }
}

/******************************************
 *  实现内码翻译成外码
 *  参数：
 *     table  静态数据名
 *     value  内码
 *
 *  返回值： 外码
 *****************************************/
function LookUp(table, value)
{
    name = "";
    data = table[0];
    if(!data) return name;

    var i;
    for(i=0; i<data.length; i++)
    {
	  	if (data[i].value == value)
	  	{
		   name = data[i].name;
		   break;
		}
    }

    return name;
}

function getExData(targetId) {
  var exData = null;
  optionId = targetId.options[targetId.selectedIndex];
  exData = optionId.getAttribute("exData");
  return exData.split(",");
}
