<!-- Begin
/*
随机数产生函数组
function getRandomNum(lbound,ubound)	产生随机数(数据在lbound～ubound之间)
function getRandomChar(number,lower,upper,other,extra)	产生随机字符
function getPassword(length,extraChars,firstNumber,firstLower,firstUpper,firstOther,latterNumber,latterLower,latterUpper,latterOther) 产生随机字符串

字符串操作函数组
function left(String,length)			取字符串左length个字符
function middle(String,start,length)	取字符串从start开始length个字符
function right(String,length)			取字符串右length个字符
function Ltrim(String)					删除字符串左边的空格
function Rtrim(String)					删除字符串右边的空格
function trim(String)					删除字符串左右的空格
function split(String,delimiter)		用分割符分割字符串,返回字符串数组
function ChangeStringIndex(String,i,ch)	用ch字符替代字符串第i个字符
function Replace(String,oldChar,newChar)用newChar替代oldChar


function getRadioValue(radioName)	根据单选框的名称返回对象
*/

//------------------------------------------------------------------------------------
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;
}
//------------------------------------------------------------------------------------
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);
}
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;
}


function getRadioValue(radioName)
{
  var collection;

  collection = document.all[radioName];

  for (i=0;i<collection.length;i++) {
    if (collection[i].checked)
       return(collection[i].value);
  }
}
/*=================================================================
该函数用于检查某表单域长度合法性,其中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 CheckCheckBox(thisForm,FieldName,Label)
{
	var thisField;
	var hasCheck=0;
	eval("thisField=thisForm."+FieldName);
	if(getFieldCount(thisForm,FieldName)>1)
	{
		for(var i=0;i<thisField.length;i++)
		{
			if(thisField[i].checked){
				hasCheck=1;
				break;
			}
		}
	}
	if(getFieldCount(thisForm,FieldName)==1)
	{
		if(thisField.checked)
		{
			hasCheck=1;
		}
	}
	if(hasCheck==1){
		return true;
	}
	else{
		alert("请选择<" + Label +">！")
		//thisField.focus();
		return false;
	}	
}

/*=====================================
该函数用于检查某组表单选择是否有效
=====================================*/
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>2)
		{
			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;
}

// End -->