<!-- Begin
function getRandomNum(lbound, ubound) {
return (Math.floor(Math.random() * (ubound - lbound)) + lbound);
}
function getRandomChar(number, lower, upper, other, extra) {
var numberChars = "0123456789";
var lowerChars = "abcdefghijklmnopqrstuvwxyz";
var upperChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var otherChars = "`~!@#$%^&*()-_=+[{]}\\|;:'\",<.>/? ";
var charSet = extra;
if (number == true)
charSet += numberChars;
if (lower == true)
charSet += lowerChars;
if (upper == true)
charSet += upperChars;
if (other == true)
charSet += otherChars;
return charSet.charAt(getRandomNum(0, charSet.length));
}
function getPassword(length, extraChars, firstNumber, firstLower, firstUpper, firstOther,
latterNumber, latterLower, latterUpper, latterOther) {
var rc = "";
if (length > 0)
rc = rc + getRandomChar(firstNumber, firstLower, firstUpper, firstOther, extraChars);
for (var idx = 1; idx < length; ++idx) {
rc = rc + getRandomChar(latterNumber, latterLower, latterUpper, latterOther, extraChars);
}
return rc;
}
// End -->

function getRadioValue(radioName)
{
  var collection;

  collection = document.all[radioName];

  for (i=0;i<collection.length;i++) {
    if (collection[i].checked)
       return(collection[i].value);
  }
}
function left(String,length)
{
	return String.substr(0,length);
}

function middle(String,start,length)
{
	var from=(start<1)?0:start-1;
	return String.substring(from,from+length);
}

function right(String,length)
{
	var strlen=String.length;
	return middle(String,strlen-length+1,length);
}

function Ltrim(String)
{
	for(var i=0;i<String.length;i++)
		if(String.charAt(i)!=' ')
			break;
	return middle(String,i+1,String.length);
}

function Rtrim(String)
{
	for(var i=String.length-1;i>0;i--)
		if(String.charAt(i)!=' ')
			break;
	return left(String,i+1);
}

function trim(String)
{

	return Rtrim(Ltrim(String));
}

function split(String,delimiter)
{
	var newString=trim(String);
	var position=newString.indexOf(delimiter);
	var command="var StringArray=new Array(\"";
	while(position!=-1)
	{
		command=command+trim(middle(newString,1,position))+"\",\"";
		newString=middle(newString,position+2,newString.length);
		position=newString.indexOf(delimiter);
	}
	command=command+newString+"\");";
	eval(command);
	return StringArray;
}

function ChangeStringIndex(String,i,ch)
{
	if(i<1 || i>String.length)
		return String;
	return left(String,index-1)+ch+right(String,String.length-index);
}

/*==========================================
用newChar替换String中的oldChar
==========================================*/
function Replace(String,oldChar,newChar)
{
	var DataStr=new Array();
	var newString="";
	if(trim(String).length==0)
		return String;
	DataStr=split(String,oldChar);
	for(var i=0;i<DataStr.length;i++)
		newString=newString+DataStr[i]+newChar;
	newString=left(newString,newString.length-1);
	return newString;
}

/*=================================================================
该函数用于检查某表单域长度合法性,其中thisForm是表单对象，不是表单名
=================================================================*/
function CheckLength(thisForm,FieldName,Label,minLen,maxLen)
{
	var thisField;
	var fieldValue;
	eval("thisField=thisForm."+FieldName);
	if(getFieldCount(thisForm,FieldName)>1)
	{
		for(var i=0;i<thisField.length;i++)
		{
			fieldValue=trim(thisField[i].value);
			if(minLen==1 && fieldValue.length<minLen)
			{
				alert("<"+Label+">必须填写！")
				thisField[i].focus();
				return (false);
			}
			if(fieldValue.length<minLen)
			{
				alert("在<"+Label+">域中，请至少输入 "+minLen+" 个字符。");
				thisField[i].focus();
				return (false);
			}
			if(fieldValue.length>maxLen)
			{
				alert("在<"+Label+">域中，请至多输入 "+maxLen+" 个字符。");
				thisField[i].focus();
				return (false);
			}
		}
	}
	if(getFieldCount(thisForm,FieldName)==1)
	{
		fieldValue=trim(thisField.value);
		if(minLen==1 && fieldValue.length<minLen)
		{
			alert("<"+Label+">必须填写！")
			thisField.focus();
			return (false);
		}
		if(fieldValue.length<minLen)
		{
			alert("在<"+Label+">域中，请至少输入 "+minLen+" 个字符。");
			thisField.focus();
			return (false);
		}
		if(fieldValue.length>maxLen)
		{
			alert("在<"+Label+">域中，请至多输入 "+maxLen+" 个字符。");
			thisField.focus();
			return (false);
		}
	}
	return (true);
}

/*=================================================================
该函数用于检查某组表单域长度合法性,其中thisForm是表单对象，不是表单名
=================================================================*/
function CheckMLength(thisForm,FieldName,Label,minLen,maxLen)
{
	var thisField;
	var fieldValue;
	eval("thisField=thisForm."+FieldName);
	for(var i=0;i<thisField.length;i++)
	{
		fieldValue=trim(thisField[i].value);
		if(minLen==1 && fieldValue.length<minLen)
		{
			alert("<"+Label+">必须填写！")
			thisField[i].focus();
			return (false);
		}
		if(fieldValue.length<minLen)
		{
			alert("在<"+Label+">域中，请至少输入 "+minLen+" 个字符。");
			thisField[i].focus();
			return (false);
		}
		if(fieldValue.length>maxLen)
		{
			alert("在<"+Label+">域中，请至多输入 "+maxLen+" 个字符。");
			thisField[i].focus();
			return (false);
		}
	}
	return (true);
}

/*=================================================================
该函数用于检查某表单域是否为整型,其中thisForm是表单对象，不是表单名
=================================================================*/
function CheckInteger(thisForm,FieldName,Label,min,max)
{
	var thisField;
	var checkOK = "0123456789-";
	eval("thisField=thisForm."+FieldName);
	if(getFieldCount(thisForm,FieldName)>1)
	{
		for(var k=0;k<thisField.length;k++)
		{
			var checkStr=trim(thisField[k].value);
			var allValid = true;
			var decPoints = 0;
			var allNum = "";
			for (i = 0;  i < checkStr.length;  i++)
			{
				ch = checkStr.charAt(i);
				for (j = 0;  j < checkOK.length;  j++)
					if (ch == checkOK.charAt(j))
						break;
				if (j == checkOK.length)
				{
					allValid = false;
					break;
				}
				allNum += ch;
			}
			if (!allValid)
			{
				alert("在<"+Label+">域中，只能输入数字。");
				thisField[k].focus();
				return (false);
			}

			var chkVal = allNum;
			var prsVal = parseInt(allNum);
			if (chkVal != "" && min!="*" && !(prsVal >= min))
			{
				alert("请在<"+Label+">域中输入值大于或等于["+min+"]的整数。");
				thisField[k].focus();
				return (false);
			}

			if (chkVal != "" &&max!="*" && !(prsVal <= max))
			{
				alert("请在<"+Label+">域中输入值小于或等于["+max+"]的整数。");
				thisField[k].focus();
				return (false);
			}
		}
	}
	if(getFieldCount(thisForm,FieldName)==1)
	{
		var checkStr=trim(thisField.value);
		var allValid = true;
		var decPoints = 0;
		var allNum = "";
		for (i = 0;  i < checkStr.length;  i++)
		{
			ch = checkStr.charAt(i);
			for (j = 0;  j < checkOK.length;  j++)
				if (ch == checkOK.charAt(j))
					break;
			if (j == checkOK.length)
			{
				allValid = false;
				break;
			}
			allNum += ch;
		}
		if (!allValid)
		{
			alert("在<"+Label+">域中，只能输入数字。");
			thisField.focus();
			return (false);
		}

		var chkVal = allNum;
		var prsVal = parseInt(allNum);
		if (chkVal != "" && min!="*" && !(prsVal >= min))
		{
			alert("请在<"+Label+">域中输入值大于或等于["+min+"]的整数。");
			thisField.focus();
			return (false);
		}

		if (chkVal != "" &&max!="*" && !(prsVal <= max))
		{
			alert("请在<"+Label+">域中输入值小于或等于["+max+"]的整数。");
			thisField.focus();
			return (false);
		}
	}
	return (true);
}

/*=================================================================
该函数用于检查某组表单域是否为整型,其中thisForm是表单对象，不是表单名
=================================================================*/
function CheckMInteger(thisForm,FieldName,Label,min,max)
{
	var thisField;
	var checkOK = "0123456789-";
	eval("thisField=thisForm."+FieldName);
	for(var k=0;k<thisField.length;k++)
	{
		var checkStr=trim(thisField[k].value);
		var allValid = true;
		var decPoints = 0;
		var allNum = "";
		for (i = 0;  i < checkStr.length;  i++)
		{
			ch = checkStr.charAt(i);
			for (j = 0;  j < checkOK.length;  j++)
				if (ch == checkOK.charAt(j))
					break;
			if (j == checkOK.length)
			{
				allValid = false;
				break;
			}
			allNum += ch;
		}
		if (!allValid)
		{
			alert("在<"+Label+">域中，只能输入数字。");
			thisField[k].focus();
			return (false);
		}

		var chkVal = allNum;
		var prsVal = parseInt(allNum);
		if (chkVal != "" && min!="*" && !(prsVal >= min))
		{
			alert("请在<"+Label+">域中输入值大于或等于["+min+"]的整数。");
			thisField[k].focus();
			return (false);
		}

		if (chkVal != "" &&max!="*" && !(prsVal <= max))
		{
			alert("请在<"+Label+">域中输入值小于或等于["+max+"]的整数。");
			thisField[k].focus();
			return (false);
		}
	}
	return (true);
}

/*===================================================================
该函数用于检查某表单域是否为数字型,其中thisForm是表单对象，不是表单名
===================================================================*/
function CheckFloat(thisForm,FieldName,Label,min,max)
{
	var thisField;
	eval("thisField=thisForm."+FieldName);
	if(getFieldCount(thisForm,FieldName)>1)
	{
		for(var i=0;i<thisField.length;i++)
		{
			var checkStr=trim(thisField[i].value);
			var allValid = isNum(checkStr);
			if (!allValid)
			{
				alert("在<"+Label+">域中，只能输入数字。");
				thisField[i].focus();
				return (false);
			}

			var prsVal = eval(checkStr);
			if (checkStr != "" && min!="*" && !(prsVal >= min))
			{
				alert("请在<"+Label+">域中输入值大于或等于["+min+"]的数字。");
				thisField[i].focus();
				return (false);
			}

			if (checkStr != "" &&max!="*" && !(prsVal <= max))
			{
				alert("请在<"+Label+">域中输入值小于或等于["+max+"]的数字。");
				thisField[i].focus();
				return (false);
			}
		}
	}
	if(getFieldCount(thisForm,FieldName)==1)
	{
		var checkStr=trim(thisField.value);
		var allValid = isNum(checkStr);
		if (!allValid)
		{
			alert("在<"+Label+">域中，只能输入数字。");
			thisField.focus();
			return (false);
		}

		var prsVal = eval(checkStr);
		if (checkStr != "" && min!="*" && !(prsVal >= min))
		{
			alert("请在<"+Label+">域中输入值大于或等于["+min+"]的数字。");
			thisField.focus();
			return (false);
		}

		if (checkStr != "" &&max!="*" && !(prsVal <= max))
		{
			alert("请在<"+Label+">域中输入值小于或等于["+max+"]的数字。");
			thisField.focus();
			return (false);
		}
	}
	return (true);
}

/*==================================================
该函数用于检查某一（组）文本框中的值是否在0和
数组Num所对应的下标的元素值之间
==================================================*/
function CheckNum(thisForm,FieldName,Label,Num)
{
	var thisField;
	var fcount=getFieldCount(thisForm,FieldName);
	eval("thisField=thisForm."+FieldName);
	if(fcount==1)
	{
		var a=trim(thisField.value+"");
		var b=Num[0]+"";
		if(!isInteger(a))
		{
			alert("<"+Label+">必须是一个大于0的整数！");
			thisField.focus();
			return false;
		}
		if(a.length>b.length || a.length<=b.length && eval(a)>eval(b) || a=="0" && b!="0")
		{
			alert("<"+Label+">必须在1-"+b+"之间！");
			thisField.focus();
			return false;
		}
	}
	if(fcount>1)
	{
		for(var i=0;i<fcount;i++)
		{
			var a=trim(thisField[i].value+"");
			var b=Num[i]+"";
			if(!isInteger(a))
			{
				alert("<"+Label+">必须是一个大于0的整数！");
				thisField[i].focus();
				return false;
			}
			if(a.length>b.length || a.length<=b.length && eval(a)>eval(b) || a=="0" && b!="0")
			{
				alert("<"+Label+">必须在1-"+b+"之间！");
				thisField[i].focus();
				return false;
			}
		}
	}
	return true;
}

/*==================================================
该函数用于检查一（组）列表框中是否至少选择了一个
==================================================*/
function IsCheckedOne(thisForm,FieldName,Label)
{
	var thisField;
	var fcount=getFieldCount(thisForm,FieldName);
	eval("thisField=thisForm."+FieldName);
	if(fcount<1)
	{
		alert("页面中没有可以选择的<"+Label+">！");
		return false;
	}
	if(fcount==1 && thisField.checked==false)
	{
		alert("必须选择一个<"+Label+">！");
		thisField.focus();
		return false;
	}
	if(fcount>1)
	{
		for(var i=0;i<fcount;i++)
			if(thisField[i].checked)
				break;
		if(i==fcount)
		{
			alert("必须选择一个<"+Label+">！");
			thisField[0].focus();
			return false;
		}
	}
	return true;
}


/*=====================================
该函数用于检查填写日期是否早于当天日期
=====================================*/
function IsAfterToday(thisForm,FieldName,Label)
{
	var DateS;
	var thisfield;
	eval("thisField=thisForm."+FieldName);

	if(getFieldCount(thisForm,FieldName)==1)
	{
		DateS=thisField.value;
		if(CompareDate(DateS,getToday())==1)
		{
			alert("<"+Label+">中的日期应该晚于当天日期。");
			thisField.focus();
			return false;
		}
		return true;
	}
	if(getFieldCount(thisForm,FieldName)>1)
	{
		for(var i=0;i<thisField.length;i++)
		{
			DateS=thisField[i].value;
			if(CompareDate(DateS,getToday())==1)
			{
				alert("<"+Label+">中的日期应该晚于当天日期。");
				thisField[i].focus();
				return false;
			}
		}
	}
	return true;
}

/*=====================================
该函数用于检查某表单选择是否有效
=====================================*/
function CheckSelect(thisForm,FieldName,Label)
{
	var thisField;
	eval("thisField=thisForm."+FieldName);
	if(getFieldCount(thisForm,FieldName)>1)
	{
		for(var i=0;i<thisField.length;i++)
		{
			if(thisField[i].selectedIndex==0)
			{
				alert("请选择<" + Label +">！")
				thisField[i].focus();
				return false;
			}
		}
	}
	if(getFieldCount(thisForm,FieldName)==1)
	{
		if(thisField.selectedIndex==0)
		{
			alert("请选择<" + Label +">！")
			thisField.focus();
			return false;
		}
	}
	return (true);
}

/*=====================================
该函数用于检查某组表单选择是否有效
=====================================*/
function CheckMSelect(thisForm,FieldName,Label)
{
	var thisField;
	eval("thisField=thisForm."+FieldName);
	for(var i=0;i<thisField.length;i++)
	{
		if(thisField[i].selectedIndex==0)
		{
			alert("请选择<" + Label +">！")
			thisField[i].focus();
			return false;
		}
	}
	return (true);
}

/*====================================
是否为电话号码
====================================*/
function IsPhone(thisform,FieldName,Lable)
{
	var digits = "0123456789-()转 ";
	var i=0;
	var j=0;
	var thisfield;
	var fcount;

	thisfield=eval("thisform."+FieldName);
	fcount=getFieldCount(thisform,FieldName);
	if(fcount==1)
	{
		str=trim(thisfield.value);

		while ((i < str.length))
		{
			if (digits.indexOf(str.charAt(i)) == -1)
			{
				alert("<"+Lable+">输入不正确！")
				thisfield.focus();
				return false;
			}
			if (str.charAt(i)=='-') j++;
			i++;
		}
		if (j>1)
		{
			alert("<"+Lable+">输入不正确！")
			thisfield.focus();
			return false;
		}
	}
	if(fcount>1)
	{
		for(var k=0;k<fcount;k++)
		{
			i=0;
			j=0;
			str=trim(thisfield[k].value);

			while ((i < str.length))
			{
				if (digits.indexOf(str.charAt(i)) == -1)
				{
					alert("<"+Lable+">输入不正确！")
					thisfield[i].focus();
					return false;
				}
				if (str.charAt(i)=='-') j++;
				i++;
			}
			if (j>1)
			{
				alert("<"+Lable+">输入不正确！")
				thisfield[i].focus();
				return false;
			}
		}
	}
	return true;
}

/*=====================================
是否为正确电子邮件
=====================================*/
function IsEmail(thisform,FieldName,Lable)
{
	var thisfield;
	var fcount;
	var i;
	var j;
	thisfield=eval("thisform."+FieldName);
	fcount=getFieldCount(thisform,FieldName);
	if(fcount==1)
	{
		str=trim(thisfield.value);
		if(str=="")
			return true;

		i=str.indexOf("@");
		if (i<=1)
		{
			alert("<"+Lable+">输入不正确！")
			thisfield.focus();
			return false;
		}
		else
		{
			str_tmp=str.substring(i,str.length);
			j=str_tmp.indexOf(".");

			if (j<=1 || j==str_tmp.length-1)
			{
				alert("<"+Lable+">输入不正确！")
				thisfield.focus();
				return false;
			}
		}
	}
	if(fcount>1)
	{
		for(var k=0;k<fcount;k++)
		{
			str=trim(thisfield[k].value);
			if(str=="")
				continue;

			i=str.indexOf("@");
			if (i<=1)
			{
				alert("<"+Lable+">输入不正确！")
				thisfield[k].focus();
				return false;
			}
			else
			{
				str_tmp=str.substring(i,str.length);
				j=str_tmp.indexOf(".");
				if (j<=1 || j==str_tmp.length-1)
				{
					alert("<"+Lable+">输入不正确！")
					thisfield[k].focus();
					return false;
				}
			}
		}
	}
	return true;
}

/*=================================================
当checkbox和inputbox为一组时，该函数用于检查合法性,
其中thisForm是表单对象，不是表单名
=================================================*/
function CheckCI(thisForm,chbox,inputbox,Label,minLen,maxLen)
{
	var thischeckbox;
	eval("thischeckbox=thisForm."+chbox);
	if(thischeckbox.checked==true)
	{
		return (CheckLength(thisForm,inputbox,Label,minLen,maxLen));
	}
	return (true);
}


function CheckFromInput(thisForm,thisCheckBox,inputbox)
{
	var thisinputbox;
	eval("thisinputbox=thisForm."+inputbox);
	if(thisCheckBox.checked==true)
	{
		thisCheckBox.value=thisinputbox.value;
		thisinputbox.focus();
	}
	else
	{
		thisCheckBox.value="";
		thisinputbox.value="";
	}
}

/*=======================================================================
这个函数用于当checkbox和inputbox为一组时，checkbox的onclick事件触发时调用
当多选框选择时让inputbox获得焦点，不选择时清空文本框的内容
=======================================================================*/
function BindCheckInput(thisForm,thisCheckBox,inputbox)
{
	var thisinputbox;
	eval("thisinputbox=thisForm."+inputbox);
	if(thisCheckBox.checked==true)
	{
		thisinputbox.focus();
	}
	else
	{
		thisinputbox.value="";
	}
}

/*=========================================
这个函数用于当checkbox和inputbox为一组时，
inputbox失去焦点时将内容传给checkbox
=========================================*/
function InputToCheck(thisForm,checkbox,thisInputBox)
{
	var thischeckbox;
	eval("thischeckbox=thisForm."+checkbox);
	if(thischeckbox.checked==true)
	{
		thischeckbox.value=thisInputBox.value;
	}
	else
	{
		thischeckbox.value="";
	}
}

/*============================
将数组中的数据放入列表框中显示
============================*/
function DisplayList(thisListbox,OptionArray,selectValue)
{
	for(var i=0;i<OptionArray.length;i++)
	{	//alert(thisListbox.name)
		var OneOption=split(OptionArray[i],",");
		thisListbox.options.length=i+1;
		thisListbox.options[i].text=OneOption[0];
		thisListbox.options[i].value=OneOption[1];
		if(selectValue==OneOption[1])
			thisListbox.options[i].selected=true;
		else
			thisListbox.options[i].selected=false;
	}
}
/*
给字段赋值，thisField为被赋值字段，FValue为所赋值
*/
function SetFieldVal(thisField,FValue)
{
	thisField.value=trim(FValue);
}

/*=================================================
计算表单中相同名字的域的和
这里的thisfield相当于document.formname.fieldname
=================================================*/
function FieldSum(thisform,FieldName)
{
	var FSum=0;
	var thisfield;
	if(getFieldCount(thisform,FieldName)==0)
		return "";

	if(getFieldCount(thisform,FieldName)==1)
	{
		eval("thisfield=thisform."+FieldName);
		if(isNum(thisfield.value)&& trim(thisfield.value).length>0)
			return eval(thisfield.value);
		else
			return "";
	}

	eval("thisfield=thisform."+FieldName);
	for(var i=0;i<thisfield.length;i++)
	{

		if(isNum(thisfield[i].value)&& trim(thisfield[i].value).length>0)
			{
			FSum=FSum+eval(thisfield[i].value);

			}
	}
	//alert("eaval")
	//if (FSum==0)
	//	return "";
	return FSum;
}

/*================================================
获得某个表单域在一组同名域中的索引(0表示第一个)
这个函数通常在表单域
这里的thisfield相当于document.formname.fieldname
================================================*/
function getFieldIndex(thisfield)
{
	var formfield;
	//alert(thisfield.form.name)
	eval("formfield=thisfield.form."+thisfield.name);
	//alert(thisfield.name)
	if(getFieldCount(thisfield.form,thisfield.name)<=1)
		return "";
	for(var i=0;i<formfield.length;i++)
		if(formfield[i]==thisfield)
			break;
	return i;
}

/*================================================
在表单thisForm中查找名为FieldName的表单元素的个数
=================================================*/
function getFieldCount(thisForm,FieldName)
{
	var fieldcount=0;
	for(var i=0;i<thisForm.length;i++)
	{
		var formfield=thisForm.elements[i];
		if(formfield.name==FieldName)
			fieldcount++;
	}
	return fieldcount;
}
//得到页面中某个表单元素的值，不存在返回 "",一个元素返回“yyyy”,多个元素时返回“ddd,ttt,aaa”
function GetFieldValue(FieldName)
{
var thisform=getThisForm();
var c=getFieldCount(thisform,FieldName)
if (c+""=="")
	return "";
if (c==1)
	{
	eval("thisField=thisform."+FieldName);
	return thisField.value;
	}
else
	{
	eval("thisField=thisform."+FieldName);
	var FieldValue="jtp"
	for (i=0;i<c;i++)
			{
			var ccc=thisField[i].value;
			FieldValue=FieldValue + "," + ccc
			}
	return FieldValue;
	}


}
//函数说明，本页只有一个form时，可以利用这个函数得到form对象的句炳
function getThisForm()
{
	//alert(document.forms[0].name)
    return (document.forms[0]);
}

function CloseWindow()
{
	window.opener.focus();
	window.close()
}

function trim0(str)
{
	var i,j,result="";
	j = str.length;
	for (i=0;i<j;i++)
		if ( str.charAt(i)!='0' ) break;
	result = str.substring(i,j);
	return result;
}

function isInteger(s)
{
	var str=trim(s);
	if(str.length>0)
	{
    		for (var i = 0; i < str.length; i++)
    		{
        		var c = str.charAt(i);
        		if (!isDigit(c)) return false;
    		}
    	}
    	return true;
}


function isDigit(c)
{
	return ((c >= "0") && (c <= "9"));
}

function isNum(s)
{
	var str=trim(s);
 	if(str.length>0)
 	{
   		for (i=0;i<str.length;i++)
     			if (!isDigit(str.charAt(i)) && str.charAt(i)!='.')
       				return false;
       	}
  	return true;
}
//jtp
//参数举例：thisfield="tabname|inputname1|inputname2|inputname3|...|..."
function TabAddLine(thisfield)
{
	var TabInput=new Array();
	TabInput=split(thisfield,"|");

	myNewRow=eval("document.all." + TabInput[0] + ".insertRow()")
	for(var i=1;i<TabInput.length;i++)
		{
		myNewCell =myNewRow .insertCell()
		myNewCell.innerHTML="<input name='" + TabInput[i] +"' type='text' size=8  value=''>"
	}
	return;

}
function TabAddLineB(thisfield)
{
	var TabInput=new Array();
	TabInput=split(thisfield,"|");

	myNewRow=eval("document.all." + TabInput[0] + ".insertRow()")
	for(var i=1;i<TabInput.length;i++)
		{
		myNewCell =myNewRow .insertCell()
		if (i==1)
			{
			myNewCell.innerHTML="<input name='" + TabInput[i] +"' type='text' size=2  value=''>"
				}
		else
			{
			myNewCell.innerHTML="<input name='" + TabInput[i] +"' type='text' size=8  value=''>"
			}
	}
	return;

}

function winopen(targeturl)
{
	newwin=window.open("","","scrollbars,resizable=yes")
	if (document.all)
	{
		//newwin.moveTo(0,0)
		//newwin.resizeTo(screen.width,screen.height-30)
	}
	newwin.location=targeturl
}

function MoldListOne(FieldName)	//参数字符串，如有重复返回false.不重复，返回true;(可以理解为模号维一吗？)
{
var thisform=getThisForm();
var c=getFieldCount(thisform,FieldName)
if (c=="1")
	{
	return true;		//只有一个当然维一
	}
else
	{
	eval("thisField=thisform."+FieldName);
	for (i=0;i<c;i++)
		{
		//alert(thisField[i].value)

		var TmpMold=thisField[i].value
		var Count=0
			//alert(TmpMold)
		for (j=0;j<c;j++)
			{
			if (thisField[j].value==TmpMold)
				Count++
			}
		//alert(Count)
		if (Count>1)
			{
			alert("页面模号" + TmpMold + "发生重复")
			return false;
			}

		}
	return true;
	}

}

/*==================================
显示日历
==================================*/
var Calendar=null;
var DateField;
function OpenCalendar(returnField)
{
	DateField=returnField;
	if(Calendar==null)
		Calendar=window.open("/Chinaccm/comm/calendar.html",null,"height=147,width=155,toolbar=no,location=no,directories=no,status=no,menubars=no,scrollbars=no")
	//else
		//Calendar.focus();
}

/*==========================================
从同名的checkbox中选择一个
==========================================*/
function SingleSelect(thisCheckBox)
{
	var checkboxObj;
	var theForm=thisCheckBox.form;
	if(thisCheckBox.checked==true)
	{
		var fcount=getFieldCount(theForm,thisCheckBox.name);
		if(fcount<2)
			return;
		eval("checkboxObj=theForm."+thisCheckBox.name);
		for(var i=0;i<checkboxObj.length;i++)
			checkboxObj[i].checked=false;
		thisCheckBox.checked=true;
	}
}

/*=========================================
日期比较
DateS1>DateS2	返回-1
DateS1=DateS2	返回0
DateS1<DateS2	返回1
DateS1或DateS2不合法返回false
===========================================*/
function CompareDate(DateS1,DateS2)
{
	var Date1=ToDateObj(DateS1);
	var Date2=ToDateObj(DateS2);

	if(Date1.getYear()>Date2.getYear())
		return -1;
	if(Date1.getYear()<Date2.getYear())
		return 1;
	if(Date1.getMonth()>Date2.getMonth())
		return -1;
	if(Date1.getMonth()<Date2.getMonth())
		return 1;
	if(Date1.getDate()>Date2.getDate())
		return -1;
	if(Date1.getDate()<Date2.getDate())
		return 1;
	return 0;
}

/*====================================
将DateS转换为Date对象
======================================*/
function ToDateObj(DateS)
{
	var DateStr=new Array();
	DateStr=split(DateS,"-");
	var Date1=new Date(eval(DateStr[0]),eval(DateStr[1]),eval(DateStr[2]));
	if(Date1.getMonth()>0)
		Date1.setMonth(Date1.getMonth()-1);
	return Date1;
}

/*====================================
用DateS加上天数DiffDay获得新的日期，
DiffDay可以为负数
======================================*/
function DateAdd(DateS,DiffDay)
{
	var DateStr=new Array();
	var MonthDay=new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
	DateStr=split(DateS,"-");
	var newDay=eval(DateStr[2]);
	var newMonth=eval(DateStr[1]);
	var newYear=eval(DateStr[0]);
	if(newYear%400==0 || newYear%4==0 && newYear%100!=0)
		MonthDay[2]=29;
	else
		MonthDay[2]=28;
	if(DiffDay==0)
		return DateS;
	if(DiffDay<0)
	{
		DiffDay=0-DiffDay;
		newDay=newDay-DiffDay;
		while(newDay<=0)
		{
			newMonth=newMonth-1;
			if(newMonth<1)
			{
				newYear=newYear-1;
				newMonth=12;
				if(newYear%400==0 || newYear%4==0 && newYear%100!=0)
					MonthDay[2]=29;
				else
					MonthDay[2]=28;
			}
			newDay=MonthDay[newMonth]+newDay;
		}
	}
	else if(DiffDay>0)
	{
		newDay=newDay+DiffDay;
		while(newDay>MonthDay[newMonth])
		{
			newDay=newDay-MonthDay[newMonth];
			newMonth=newMonth+1;
			if(newMonth>12)
			{
				newYear=newYear+1;
				newMonth=1;
				if(newYear%400==0 || newYear%4==0 && newYear%100!=0)
					MonthDay[2]=29;
				else
					MonthDay[2]=28;
			}
		}
	}
	if(newMonth<10) newMonth="0"+newMonth;
	if(newDay<10) newDay="0"+newDay;
	return newYear+"-"+newMonth+"-"+newDay;
}

/*====================================
获得DateS1,DateS2之间的间隔天数
======================================*/
function DiffDay(DateS1,DateS2)
{
	var newDay1;
	var newMonth1;
	var newYear1;
	var newDay2;
	var newMonth2;
	var newYear2;
	var DiffDay=0;
	var DateStr=new Array();
	var MonthDay=new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
	if(CompareDate(DateS1,DateS2)==0)
		return 0;
	if(CompareDate(DateS1,DateS2)==-1)
	{
		DateStr=split(DateS2,"-");
		newDay1=eval(DateStr[2])
		newMonth1=eval(DateStr[1])
		newYear1=eval(DateStr[0])
		DateStr=split(DateS1,"-");
		newDay2=eval(DateStr[2])
		newMonth2=eval(DateStr[1])
		newYear2=eval(DateStr[0])
	}
	if(CompareDate(DateS1,DateS2)==1)
	{
		DateStr=split(DateS1,"-");
		newDay1=eval(DateStr[2])
		newMonth1=eval(DateStr[1])
		newYear1=eval(DateStr[0])
		DateStr=split(DateS2,"-");
		newDay2=eval(DateStr[2])
		newMonth2=eval(DateStr[1])
		newYear2=eval(DateStr[0])
	}
	if(newYear1%400==0 || newYear1%4==0 && newYear1%100!=0)
		MonthDay[2]=29;
	else
		MonthDay[2]=28;
	while(newYear1!=newYear2 || newMonth1!=newMonth2 || newDay1!=newDay2)
	{
		newDay1=newDay1+1;
		DiffDay=DiffDay+1;
		if(newDay1>MonthDay[newMonth1])
		{
			newDay1=1
			newMonth1=newMonth1+1;
			if(newMonth1>12)
			{
				newMonth=1;
				newYear=newYear+1;
				if(newYear1%400==0 || newYear1%4==0 && newYear1%100!=0)
					MonthDay[2]=29;
				else
					MonthDay[2]=28;
			}
		}
	}
	return DiffDay;
}

/*====================================
获得DateS所在的一周的周一日期
======================================*/
function GetWeekStartDate(DateS)
{
	var DiffDay;
	var Date1=ToDateObj(DateS);
	if(Date1.getDay()==1)
		return DateS;
	if(Date1.getDay()==0)
		DiffDay=6;
	else
		DiffDay=Date1.getDay()-1;
	return DateAdd(DateS,0-DiffDay);
}

/*====================================
获得DateS所在的一周的周日日期
======================================*/
function GetWeekEndDate(DateS)
{
	var DiffDay;
	var Date1=ToDateObj(DateS);
	if(Date1.getDay()==0)
		return DateS;
	DiffDay=7-Date1.getDay();
	return DateAdd(DateS,DiffDay);
}

function GetMinDate(DateArray)
{
	var minDate="";
	var DateStr=new Array();
	var i=0;
	if(DateArray==null || DateArray.length<1)
		return "";
	do
	{
		DateStr=split(DateArray[i],",");
		minDate=DateStr[0];
		i++;
	}
	while(trim(minDate).length==0 && i<DateArray.length)
	for(;i<DateArray.length;i++)
	{
		DateStr=split(DateArray[i],",");
		if(trim(DateStr[0]).length>0 && CompareDate(minDate,DateStr[0])==-1)
			minDate=DateStr[0];
	}
	return minDate;
}

function GetMaxDate(DateArray)
{
	var maxDate;
	var DateStr=new Array();
	var i=0;
	if(DateArray==null || DateArray.length<1)
		return "";
	do
	{
	DateStr=split(DateArray[0],",");
	maxDate=DateStr[1];
	i++;
	}
	while(trim(maxDate).length==0 && i<DateArray.length)
	for(;i<DateArray.length;i++)
	{
		DateStr=split(DateArray[i],",");
		if(trim(DateStr[1]).length>0 && CompareDate(maxDate,DateStr[1])==1)
			maxDate=DateStr[1];
	}
	return maxDate;
}

function getToday()
{
	var Date1=new Date();
	var Today=Date1.getYear()+"-"+(Date1.getMonth()+1)+"-"+Date1.getDate();
	return Today;
}

function DrawEmptyGTT(DivName,DateArray)
{
	var GTT="";
	var Today=getToday();
	var startDate=GetWeekStartDate(Today);
	var endDate=GetWeekEndDate(Today);
	GTT ="<table border='1' cellpadding='0' cellspacing='0'>"
	GTT+="<tr>"
	GTT+="	<td>"
	GTT+="<table border='1' cellpadding='0' cellspacing='0'>"
  	GTT+="<tr> "
    	GTT+="	<td colspan='7'> "
      	GTT+="		<div align='center'><b>甘特图</b></div>"
    	GTT+="	</td>"
  	GTT+="</tr>"
  	GTT+="<tr> "
    	GTT+="	<td colspan='7'> "
      	GTT+="		<div align='center'>" +Replace(startDate,"-",".")+"~"+Replace(endDate,"-",".")+"</div>"
    	GTT+="	</td>"
  	GTT+="</tr>"
  	GTT+="<tr> "
	GTT+="	<td align=center width=20>一</td>"
	GTT+="	<td align=center width=20>二</td>"
	GTT+="	<td align=center width=20>三</td>"
	GTT+="	<td align=center width=20>四</td>"
	GTT+="	<td align=center width=20>五</td>"
	GTT+="	<td align=center width=20>六</td>"
	GTT+="	<td align=center width=20>日</td>"
  	GTT+="</tr>"
  	GTT+="</table>"
      	GTT+="		<table border='0' cellpadding='0' cellspacing='0'>"
      	for(var i=0;i<DateArray.length;i++)
      	{
       		GTT+="		<tr> "
		GTT+="		  <td width=24>&nbsp;</td>"
		GTT+="		  <td width=24>&nbsp;</td>"
		GTT+="		  <td width=24>&nbsp;</td>"
		GTT+="		  <td width=24>&nbsp;</td>"
		GTT+="		  <td width=24>&nbsp;</td>"
		GTT+="		  <td width=24>&nbsp;</td>"
		GTT+="		  <td width=24>&nbsp;</td>"
		GTT+="		</tr>"
	}
      	GTT+="		</table>"
    	GTT+="	</td>"
  	GTT+="</tr>"
	GTT+="</table>"
	eval(DivName+".innerHTML=GTT");
}


/*===================================================
画甘特图，DivName为层的名字或ID,DateArray为一日期数组
数组中每一元素的格式为："起始日期"+","+"结束日期"
例如:
DateArray[0]="2001-6-1,2001-8-1"
===================================================*/
function DrawGTT(DivName,DateArray)
{
	var minDate=GetMinDate(DateArray);
	var maxDate=GetMaxDate(DateArray);
	var GTT="";
	if(trim(minDate).length==0 || trim(maxDate).length==0)
	{
		DrawEmptyGTT(DivName,DateArray);
		return;
	}
	var startWeekDate=GetWeekStartDate(minDate);
	var endWeekDate=GetWeekEndDate(maxDate);
	var DiffDays=DiffDay(startWeekDate,endWeekDate);
	var Weeks=(DiffDays+1)/7;
	var i;
	var startDate=startWeekDate;
	var endDate;
	var sDate;
	var DateStr=new Array();
	var CellWidth=100/(7*Weeks);
	GTT ="<table border='1' cellpadding='0' cellspacing='0'>"
	GTT+="<tr>"
	GTT+="	<td>"
	GTT+="<table border='1' cellpadding='0' cellspacing='0'>"
  	GTT+="<tr> "
    	GTT+="	<td colspan='" + (Weeks*7) + "'> "
      	GTT+="		<div align='center'><b>甘特图</b></div>"
    	GTT+="	</td>"
  	GTT+="</tr>"
  	GTT+="<tr> "
  	for(i=0;i<Weeks;i++)
  	{
  		endDate=GetWeekEndDate(startDate);
  		startDate=GetWeekStartDate(startDate);

    		GTT+="	<td colspan='7'> "
      		GTT+="		<div align='center'>" +Replace(startDate,"-",".")+"~"+Replace(endDate,"-",".")+"</div>"
    		GTT+="	</td>"
    		startDate=DateAdd(endDate,1);
	}
  	GTT+="</tr>"
  	GTT+="<tr> "
  	for(i=0;i<Weeks;i++)
  	{
    		GTT+="	<td align=center width=20>一</td>"
    		GTT+="	<td align=center width=20>二</td>"
    		GTT+="	<td align=center width=20>三</td>"
    		GTT+="	<td align=center width=20>四</td>"
    		GTT+="	<td align=center width=20>五</td>"
    		GTT+="	<td align=center width=20>六</td>"
    		GTT+="	<td align=center width=20>日</td>"
	}
  	GTT+="</tr>"
  	GTT+="</table>"
  	//GTT+="	</td>"
  	//GTT+="</tr>"
  	//GTT+="<tr> "
    	//GTT+="	<td colspan='" + (Weeks*7) + "'> "
    	//GTT+="	<td> "
      	GTT+="		<table border='0' cellpadding='0' cellspacing='0'>"

        for(i=0;i<DateArray.length;i++)
        {
        	var Color=(i%2==1)?"#FF9999":"#99FF99";
        	DateStr=split(DateArray[i],",");
        	startDate=DateStr[0]
        	endDate=DateStr[1]
        	sDate=DiffDay(startWeekDate,startDate);
        	GTT+="		<tr> "
        	for(var j=0;j<sDate;j++)
        	{
			GTT+="		  <td width=24>&nbsp;</td>"

		}
		sDate=DiffDay(startDate,endDate);
		for(var j=0;j<sDate;j++)
		{
			GTT+="		  <td bgcolor='" + Color + "' width=24>&nbsp;</td>"

		}
		sDate=DiffDay(endDate,endWeekDate);
		for(var j=0;j<sDate;j++)
		{
			GTT+="		  <td width=24>&nbsp;</td>"

		}
	        GTT+="		</tr>"
	}
      	GTT+="		</table>"
    	GTT+="	</td>"
  	GTT+="</tr>"
	GTT+="</table>"

	eval(DivName+".innerHTML=GTT");
}

function isValidDate(theForm,tyear,tmonth,tday)
{
	var thisYear=eval("theForm."+tyear);
	var thisMonth=eval("theForm."+tmonth);
	var thisDay=eval("theForm."+tday);
	var year1=trim0(trim(thisYear.value));
	var month1=trim0(trim(thisMonth.value));
	var day1=trim0(trim(thisDay.value));

	if (month1.length == 0 && year1.length == 0 && day1.length == 0)
		return true;
	else
	{
		if (year1.length == 0)
		{
			alert("请填写<年>！");
			thisYear.focus();
			return false;
		}
		else if (month1.length == 0)
		{
			alert("请填写<月>！");
			thisMonth.focus();
			return false;
		}
		else if (day1.length == 0)
		{
			alert("请填写<日>！");
			thisDay.focus();
			return false;
		}
        }

        if(!isInteger( year1 ))
        {
        	alert("<年>必须填大于2000数字！");
        	thisYear.focus();
		return false;
        }
        else if (!isInteger( month1 ))
        {
        	alert("<月>必须填1-12的数字！");
        	thisMonth.focus();
		return false;
        }
        else if (!isInteger( day1 ))
        {
		alert("<日>必须填数字！");
		thisDay.focus();
		return false;
	}

	yearValue = parseInt( year1 );
        if( isNaN( yearValue ) || ( yearValue < 2000 ) )
	{
        	alert("<年>必须填大于2000数字！");
        	thisYear.focus();
		return false;
        }

        monthValue = parseInt( month1 );
        if( isNaN( monthValue ) || ( monthValue < 1 ) || ( monthValue > 12 ) )
        {
        	alert("<月>必须填1-12的数字！");
        	thisMonth.focus();
		return false;
        }

        var leapyear = false;
        if( ( yearValue % 4 ) == 0 ) leapyear = true;
        if( ( yearValue % 100 ) == 0 ) leapyear = false;
        if( ( yearValue % 400 ) == 0 ) leapyear = true;

        var daysInMonth = new Array();
        daysInMonth[ 1 ]  = 31;
        if( leapyear == false ) daysInMonth[ 2 ] = 28;
        else daysInMonth[ 2 ] = 29;
        daysInMonth[ 3 ]  = 31;
        daysInMonth[ 4 ]  = 30;
        daysInMonth[ 5 ]  = 31;
        daysInMonth[ 6 ]  = 30;
        daysInMonth[ 7 ]  = 31;
        daysInMonth[ 8 ]  = 31;
        daysInMonth[ 9 ]  = 30;
        daysInMonth[ 10 ] = 31;
        daysInMonth[ 11 ] = 30;
        daysInMonth[ 12 ] = 31;

        dayValue = parseInt( day1 );
        if( isNaN( dayValue ) || ( dayValue < 1 ) || ( dayValue > daysInMonth[ monthValue ] ) )
	{
        	alert("<日>必须填1-"+daysInMonth[ monthValue ]+"的数字！");
        	thisDay.focus();
		return false;
        }

        return true;
}