<!-- 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;
}

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);
}

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 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 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);
}

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 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);
}

