﻿/*********************************************************************************/
/**	函数：String toValueString(String ValueString)				**/
/**	作者：余昌坤								**/
/**	日期：2003-09-17							**/
/**	功能：将数值字符串前面的0和前后的空格去掉						**/
/*********************************************************************************/
function toValueString(ValueString){
	var i;
	if(ValueString.length>0)
		ValueString=TrimAll(ValueString);
	for(i=0;i<ValueString.length;i++){
		if(ValueString.charAt(i)!='0')
			return ValueString.substring(i);
	}
	return ValueString;
}
/*********************************************************************************/
/**	函数：boolean isDate(String dateStr[,String dimChar])			**/
/**	作者：余昌坤								**/
/**	日期：2002-07-17							**/
/**	功能：判断某个字符串是否为日期						**/
/*********************************************************************************/

function isDate(dateStr,dimChar){
	var DateArray
	var tmpY,tmpM,tmpD
	var isBissextile
	var Num="[^0-9]"
    	var NumRule = new RegExp(Num)

	isBissextile=0
	if(dateStr==null || dateStr=="")
		return false
	if(dateStr.length>10){
		return false
	}else{
		if(dimChar==null || dimChar=="")
			dimChar="-"
		DateArray=dateStr.split(dimChar)
		if(DateArray.length!=3)
			return false
		else{
			if(DateArray[0].length==4){
				tmpY=toValueString(DateArray[0])
				tmpD=toValueString(DateArray[2])
			}else{
				tmpY=toValueString(DateArray[2])
				tmpD=toValueString(DateArray[0])
			}
			tmpM=toValueString(DateArray[1])
			if(tmpY.length>4 || tmpM.length>2 || tmpD.length>2)
				return false
			else{
				if(tmpY.search(NumRule)!=-1 || tmpM.search(NumRule)!=-1 || tmpD.search(NumRule)!=-1 )
					return false
				if(parseInt(tmpY)<0 || parseInt(tmpM)>12 || parseInt(tmpM)<1 || parseInt(tmpD)>31 || parseInt(tmpD)<1)
					return false
				if((parseInt(tmpY)%100==0 && parseInt(tmpY)%400==0) || (parseInt(tmpY)%100!=0 && parseInt(tmpY)%10==0 && parseInt(tmpY)%40==0) || (parseInt(tmpY)%100!=0 && parseInt(tmpY)%10!=0 && parseInt(tmpY)%4==0))
					isBissextile=1
				if(tmpM=="1" || tmpM=="3" || tmpM=="5" || tmpM=="7" || tmpM=="8" || tmpM=="10" || tmpM=="12"){
					if(parseInt(tmpD)>31)
						return false
				}else{
					if(tmpM=="2"){
						if(parseInt(tmpD)>28+isBissextile)
							return false
					}else{
						if(parseInt(tmpD)>30)
							return false
					}
				}
			}
		}
	}
	return true
}

/*********************************************************************************/
/**	函数：boolean isInt(String Str)						**/
/**	作者：余昌坤								**/
/**	日期：2002-07-17							**/
/**	功能：判断某个字符串是否为整数						**/
/*********************************************************************************/
function isInt(Str){
	var RInt="[^0-9]"
	var fLetter=/^[1-9]/
    var NumRule = new RegExp(RInt)
	if(Str==null || Str=="")
		return false
	if(Str.search(NumRule)!=-1 || !fLetter.test(Str))
		return false
	else
		return true
}

/*********************************************************************************/
/**	函数：boolean isNumStr(String Str)					**/
/**	作者：余昌坤								**/
/**	日期：2002-07-17							**/
/**	功能：判断某个字符串是否为数字字符串					**/
/*********************************************************************************/
function isNumStr(Str){
	var RNumStr="[^0-9]"
    	var NumRule = new RegExp(RNumStr)
	if(Str==null || Str=="")
		return false
	if(Str.search(NumRule)!=-1)
		return false
	else
		return true
}

/*********************************************************************************/
/**	函数：boolean isLong(String Str)					**/
/**	作者：余昌坤								**/
/**	日期：2002-07-17							**/
/**	功能：判断某个字符串是否为小数格式					**/
/*********************************************************************************/
function isLong(Str){
	var LRule=/^(([0-9]+)|([0-9]+\.[0-9]+))$/
1
	if(Str==null || Str=="")
		return false
	if(LRule.test(Str))
		return true
	else
		return false
}

/*********************************************************************************/
/**	函数：boolean isCodeStr(String Str)					**/
/**	作者：余昌坤								**/
/**	日期：2002-07-22							**/
/**	功能：判断某个字符串是否为编码字符串（由字母、数字和.组成）		**/
/*********************************************************************************/
function isCodeStr(Str){
	var CodeStr=new RegExp("[^a-z_\.0-9A-Z]")
	var fLetter=new RegExp("^([_a-zA-Z0-9])")
	if(Str==null || Str=="")
		return false
	if(!CodeStr.test(Str) && fLetter.test(Str))
		return true
	else
		return false
}

/*********************************************************************************/
/**	函数：boolean isVariable(String Str)					**/
/**	作者：余昌坤								**/
/**	日期：2002-07-17							**/
/**	功能：判断某个字符串是否为变量名格式					**/
/*********************************************************************************/
function isVariable(Str){
	var RNameOfEn=/[^_0-9a-zA-Z]/
//    	var fLetter=/^([_a-zA-Z])/
	if(Str==null || Str=="")
		return false
	//if(Str.search(RNameOfEn)!=-1 || !fLetter.test(Str))
	if(Str.search(RNameOfEn)!=-1)// || !fLetter.test(Str))
		return false
	else
		return true
}

/*********************************************************************************/
/**	函数：boolean isName(String Str)					**/
/**	作者：余昌坤								**/
/**	日期：2002-07-17							**/
/**	功能：判断某个字符串是否为合法的登录名					**/
/*********************************************************************************/
function isName(Str){
	var RNameOfEn=/[^_0-9a-zA-Z]/

    	if(Str==null || Str=="")
		return false
	if(Str.search(RNameOfEn)!=-1)
		return false
	else
		return true
}

/*********************************************************************************/
/**	函数：boolean isEmail(String Str)					**/
/**	作者：余昌坤								**/
/**	日期：2002-07-17							**/
/**	功能：判断某个字符串是否为Email格式					**/
/*********************************************************************************/
function isEmail(Str){
	var rEmail=("^([_a-zA-Z0-9]+([\._a-zA-Z0-9-]+)*)@([a-zA-Z0-9]{2,}(\.[a-zA-Z0-9-]{2,})*\.[a-zA-Z]{2,3})$")
	var emailRule=new RegExp(rEmail)
	if(Str==null || Str=="")
		return false
	if(emailRule.test(Str))
		return true
	else
		return false
}

/*********************************************************************************/
/**	函数：boolean isChinese(String Str)					**/
/**	作者：余昌坤								**/
/**	日期：2002-07-18							**/
/**	功能：判断某个字符串是否为中文（或其他双字节字）			**/
/*********************************************************************************/
function isDBChar(Str){
	var i
	if(Str==null || Str=="")
		return  false
	for(i=0;i<Str.length;i++){
		if(s.charCodeAt(i)<256)
			return false
	}
	return true
}

/*********************************************************************************/
/**	函数：boolean isValidName(String Str)					**/
/**	作者：余昌坤								**/
/**	日期：2002-07-18							**/
/**	功能：判断某个字符串是否为合法的名字(由双字节字符、字母、数字和"_"组成)	**/
/*********************************************************************************/
function isValidName(Str){
	var sChar=/[^_a-zA-Z]/
	var nReg=/[^0-9]/
	var i
	if (Str==null || Str=="")
		return false
	sCharRule=new RegExp(sChar)
	nRegRule=new RegExp(nReg)
	for(i=0;i<Str.length;i++){
		if(Str.charCodeAt(i)<255){//单字节
			if(sChar.test(Str.charAt(i)) && nReg.test(Str.charAt(i)))
				return false
		}
	}
	return true
}

/*********************************************************************************/
/**	函数：boolean isPhone(String Str)					**/
/**	作者：余昌坤								**/
/**	日期：2002-07-19							**/
/**	功能：检查输入的字符串是否为电话号码					**/
/*********************************************************************************/
function isPhone(Str){
	var RPhone="^(([0-9]+[-/0-9]*[0-9]+)|([+]+[0-9]+[-/0-9]*[0-9]+))$"
	var PhoneRule=new RegExp(RPhone)
	if(Str==null || Str=="")
		return false
	if(Str.search(PhoneRule)==-1)
		return false
	else
		return true
}


/*********************************************************************************/
/**	函数：String TrimAll(String Str)					**/
/**	作者：余昌坤								**/
/**	日期：2002-07-19							**/
/**	功能：返回消除所有空格字符后的字符串					**/
/*********************************************************************************/
function TrimAll(Str){
	return Str.replace(/(^\s*)|(\s*$)/g, "");
}

/*********************************************************************************/
/**	函数：int getByteLength(String Str)					**/
/**	作者：余昌坤								**/
/**	日期：2002-07-18							**/
/**	功能：返回字符串的字节长度（双字节一个字长度为2）			**/
/*********************************************************************************/
function getByteLength(Str){
	var len
	var i
	len=0
	if(Str==null || Str==""){
		len=0
	}else{
		for(i=0;i<Str.length;i++){
			len++
			if(Str.charCodeAt(i)>255)
				len++
		}
	}
	return len
}

/*********************************************************************************/
/**	函数：String ToPage(String Str)						**/
/**	作者：余昌坤								**/
/**	日期：2002-07-17							**/
/**	功能：转换成能在页面上正常显示的字符串					**/
/*********************************************************************************/
function ToPage(Str){
	var curChar
	var newStr
	var i
	newStr=""
	if(Str!=null && Str!=""){
		for(i=0;i<Str.length;i++){
			switch(Str.charAt(i)){
				case ' ':
					curChar="&nbsp;"
					break
				case '\r':
					curChar="<br>"
					break
				case '\n':
					curChar=""
					break
				case '<':
					curChar="&lt;"
					break
				case '>':
					curChar="&gt;"
					break
				case '\\\'':
					curChar="&acute;"
					break
				case '\\\"':
					curChar="&quot;"
					break
				default:
					curChar=Str.charAt(i)
					break
			}
			newStr=newStr+curChar
		}
	}
	return newStr
}
/*********************************************************************************/
/**	函数：String ToForm(String Str)						**/
/**	作者：余昌坤								**/
/**	日期：2002-07-17							**/
/**	功能：转换成能在表单中正常显示的字符串					**/
/*********************************************************************************/
function ToForm(Str){
	var curChar
	var newStr
	var i
	newStr=""
	if(Str!=null && Str!=""){
		for(i=0;i<Str.length;i++){
			switch(Str.charAt(i)){
				case '\\\'':
					curChar="&acute;"
					break
				case '\\\"':
					curChar="&quot;"
					break
				default:
					curChar=Str.charAt(i)
					break
			}
			newStr=newStr+curChar
		}
	}
	return newStr
}

/*********************************************************************************/
/**	函数：String ToScript(String Str)					**/
/**	作者：余昌坤								**/
/**	日期：2002-07-17							**/
/**	功能：转换成能在JavaScript中正常显示的字符串				**/
/*********************************************************************************/
function ToScript(Str){
	var curChar
	var newStr
	var i
	Str=Str.replace(/&acute;/g,"\\\'")
	Str=Str.replace(/&quot;/g,"\\\"")
	Str=Str.replace(/&nbsp;/g," ")
	Str=Str.replace(/&gt;/g,">")
	Str=Str.replace(/&lt;/g,"<")
	Str=Str.replace(/<br>/g,"\r\n")
	newStr=Str
	return newStr
}

/*********************************************************************************/
/**	函数：void showInfo(String urlString)				       	**/
/**	作者：余昌坤								**/
/**	日期：2003-09-15							**/
/**	功能：在Info窗口中打开Url,Info窗口为700宽，500高			**/
/**  	      带滚动条，无状态栏和菜单						**/
/*********************************************************************************/
function showInfo(urlString){
	//window.open(urlString,'_Info','toolbar=no location=no directories=no status=no menubar=no scrollbars=yes top=0 left=0 width=650 height=500');
	//zny 20060804 弹出窗口应该和正常窗口一样
	if(document.getElementById("nav_a")==null)
	{
	 var a = document.createElement("A");
	 a.href=urlString;
	 a.target="_blank";
	
	 document.getElementsByTagName("BODY")[0].appendChild(a);  
	  a.click();
     }
     

	
	
	//window.open(urlString,"_blank","toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes,top=0,left=0,width="+screen.width+",height="+screen.height);
	//window.open(urlString,"_blank","");
	   
}

/*********************************************************************************/
/**	函数：int dateSub(String BeginDate,String EndDate)		       	**/
/**	作者：余昌坤								**/
/**	日期：2003-09-17							**/
/**	功能：返回开始时间和结束时间之间的天数差（结束时间-开始时间）		**/
/**	      开始时间和结束时间的格式必须为(YYYY-MM-DD或YYYY/MM/DD)		**/
/*********************************************************************************/
function dateSub(BeginDate,EndDate){
	var bDate,eDate;
	if(!isDate(BeginDate) || !isDate(EndDate))
		return -1;
	BeginDate=BeginDate.replace(/-/g,"/");
	EndDate=EndDate.replace(/-/g,"/");
	return ((new Date(EndDate)).getTime()-(new Date(BeginDate)).getTime())/(1000*60*60*24);
}
/*********************************************************************************/
/**	函数：boolean isCorBirth(String IDNumber,String Birthday)	       	**/
/**	作者：余昌坤								**/
/**	日期：2003-09-17							**/
/**	功能：检查生日和身份证是否一致（生日格式必须为YYYY-MM-DD）		**/
/*********************************************************************************/
function isCorBirth(IdNumber,Birthday){
	var corBirth;
	if((IdNumber.length!=15 && IdNumber.length!=18) || !isDate(Birthday))
		return false;
	if(IdNumber.length==15)
		corBirth='19'+IdNumber.substring(6,8)+'-'+IdNumber.substring(8,10)+'-'+IdNumber.substring(10,12);
	else
		corBirth=IdNumber.substring(6,10)+'-'+IdNumber.substring(10,12)+'-'+IdNumber.substring(12,14);
	if(Birthday==corBirth)
		return true;
	else
		return false;
}

//

function addOption(sourceOptionList, optionList, categoryName, optionMaxCount)
{
	switch (sourceOptionList.selectedIndex)
	{
		case -1:
			if (sourceOptionList.length > 0)
			{
				sourceOptionList.selectedIndex = 0;
			}
			break;

		case 0:
			//清空选项
			while (optionList.length > 0)
			{
				//optionList.options.remove(0);
				optionList.options[0] = null; //这种写法NetScape不支持
			}

			//添加选项
			optionList.options.add(new Option(sourceOptionList.options[sourceOptionList.selectedIndex].text, sourceOptionList.options[sourceOptionList.selectedIndex].value));
			break;

		default:
			var blnExistSameOption; //是否存在相同的选项

			//检测是否已经达到选项的允许最大数目
			if (optionList.options.length == optionMaxCount)
			{
				alert("最多只能添加" + optionMaxCount + "个" + categoryName + "选项");
				return;
			}

			//检测是否已经存在“不限”或相同的选项
			blnExistSameOption = false;
			for (var intCounter = 0; intCounter < optionList.length; intCounter ++)
			{
				if (optionList.options[intCounter].value == "")
				{
					alert("已包含了" + categoryName + "选项: " + sourceOptionList.options[sourceOptionList.selectedIndex].text);
					return;
				}

				if (optionList.options[intCounter].value == sourceOptionList.options[sourceOptionList.selectedIndex].value)
				{
					blnExistSameOption = true;
				}
			}

			//添加选项
			if (! blnExistSameOption)
			{
				optionList.options.add(new Option(sourceOptionList.options[sourceOptionList.selectedIndex].text, sourceOptionList.options[sourceOptionList.selectedIndex].value));
			}

			//选中下一条要添加的选项
			if (sourceOptionList.selectedIndex != sourceOptionList.options.length - 1)
			{
				sourceOptionList.selectedIndex ++;
			}
			break;
	}
}
//删除选项
function removeOption(optionList)
{
	if (optionList.options.length > 0)
	{
		switch (optionList.selectedIndex)
		{
			case -1:
				optionList.selectedIndex = 0;
				break;

			default:
				var intFocusingOptionIndex; //删除完选项后将被选中的选项的索引

				//获取删除完选项后将被选中的选项的索引
				intFocusingOptionIndex = (optionList.selectedIndex == optionList.options.length - 1) ? (optionList.selectedIndex - 1) : (optionList.selectedIndex);

				//删除选项
				//optionList.options.remove(optionList.selectedIndex);
				optionList.options[optionList.selectedIndex] = null; //这种写法NetScape不支持

				//选中下一条要删除选项
				optionList.selectedIndex = intFocusingOptionIndex;
				break;
		}
	}
}
function insertOption(destinationList,text,value)
{
    var optTemp; //临时选项
    optTemp = document.createElement("OPTION");
    optTemp.value = value;
    optTemp.text = text;
    destinationList.options.add(optTemp);
}


