// =================================================================================
//                          定义常量
// =================================================================================
var SunTxtReadOnlyBgColor = "#EEEEEE"  // 当输入框是Readonly属性时的背景色
var SunSpecialChar1 = "├→"				//特殊符号一
var SunSpecialChar2 = "└→"				//特殊符号二

// ==================================================================================
//										第一部分 Form输入检查函数
// ==================================================================================

//-----------------------------------------------------------------------------------
// 1.1 本函数用于检查指定Text输入框的值是否是为空
// 参数：
// strTxtName —— 字符串型，文本输入框Id；
// strLabel —— 文本输入框的标签名称；
//-----------------------------------------------------------------------------------
function CheckTextIsEmpty(strTextName,strLabel)
{
    var objText = document.getElementById(strTextName) ;
    var strTemp = JSunRTrim(JSunLTrim(objText.value)) ;
	if (strTemp =="")
	{
		strTemp = "“" + strLabel + "”不能为空，请输入正确的“" + strLabel + "”。";
		alert(strTemp) ;
		objText.focus() ;
		return true ;
	}
	else
	{
	    return false ;
	}
}


//-----------------------------------------------------------------------------------
// 1.2 本函数用于检查指定Text输入框的值是否是数值型数据
// 参数：
// strTextName——文本输入框对象Id；
// strLabel——文本输入框的标签名称；
//-----------------------------------------------------------------------------------
function CheckTextIsNumber(strTextName,strLabel)
{
    var objText = document.getElementById(strTextName) ;
	var strTemp = "";
	if (isNaN(objText.value) || (objText.value.length == 0))
	{
		strTemp = "“" + strLabel + "”必须是数值型数据。";
		alert(strTemp) ;
	//	objText.value = "0";
		objText.select() ;
		objText.focus() ;
		return false ;
	}	
	else       	
	{	
		return true ; 
	}
}

//------------------------------------------------------------------------------
// 1.3 本函数用于检查字符串是否是数值型数据
// 参数：
// strNumber——待检查的字符串；    
//------------------------------------------------------------------------------
function CheckStrIsNumber(strNumber)
{
	if (isNaN(strNumber) || (strNumber.length == 0))
	{	
	    return false ;	
	}	
	else	
	{	
	    return true ; 	
	}
}


// =============================================================================
//										第二部分 数据转换函数
// =============================================================================

// -----------------------------------------------------------------------------
// 2.1 本函数用于将数值dblNumber保留intDec位小数点进行格式化输出
// 参数：
// dblNumber——要转换的数值；
// intDec——保留小数点位数；
// 返回值：格式化后的字符串
// -----------------------------------------------------------------------------
function FormatNumberToStr(dblNumber,intDec) 
{
	var sResult,sTemp,i ;
	var iInt ;  // 整数部分
	var iDig ;  // 小数部分
	
	if (intDec <= 0)  //保留的小数点位数小于或等于0
	{
		sResult = Math.round(dblNumber) ;	
	}
	else
	{
		iInt = Math.floor(dblNumber) ;  // 整数部分
		iDig = dblNumber - iInt ;       // 小数部分
		iDig = Math.round(iDig * Math.pow(10,intDec)) ;// 小数部分四舍五入
		if (iDig >= Math.pow(10,intDec))   // 当小数点部分四舍五入后向整数位进位时
		{
			iInt = iInt + 1 ;
			iDig = 0 ;
		}
		if (iDig == 0)							// 当小数点部分为0要补0
		{
			sTemp = "" ;
			for (i = 1;i <= intDec ; i++) { sTemp = sTemp + '0'; } 
			sResult = iInt + "." + sTemp ; 
		}
		else
		{ 
			if (iDig < Math.pow(10,intDec - 1)) 
			{
				sTemp = "" ;
				for (i = 1 ; i <= intDec - 1 ; i ++)
				{
					if (iDig < Math.pow(10,i))	{ sTemp = sTemp + "0" ; }	
				}
				sResult = iInt + "." + sTemp + iDig ;
			}
			else
			{
				sResult = iInt + "." + iDig ;
			}	
		}
	}	
	return sResult ;
}


// ==================================================================================
//										第三部分 日期相关函数
// ==================================================================================

// ----------------------------------------------------------------------------------
// 3.1 本函数用于用于求解intYear年intMonth月份的天数
// ----------------------------------------------------------------------------------
function GetMonthDays(intYear,intMonth)
{
	var StartDate,EndDate,intStart,intEnd,intDays ;
	switch (intMonth)
	{
		case 1:  return 31 ; 
		case 3:  return 31 ;
		case 5:  return 31 ;
		case 7:  return 31 ; 
		case 8:  return 31 ; 
		case 10: return 31 ;
		case 12: return 31 ;
		case 4:  return 30;
		case 6:  return 30;
		case 9:  return 30;
		case 11: return 30;
		case 2: 
				StartDate = new Date(intYear,1 ,1) ;
				intStart = StartDate.getTime() ;
				EndDate = new Date(intYear,2,1) ;
				intEnd = EndDate.getTime() ;
				intDays = intEnd - intStart ;
				intDays = intDays / 1000 / 60 / 60 / 24 ;
				return Math.round(intDays) ;
				break ;
	}
}

//------------------------------------------------------------------------------
// 3.2 本函数用于检查字符串strDate是否是日期型数据
//------------------------------------------------------------------------------
function CheckStrIsDate(strDate)
{
	var sArray,sTemp ;
	var i,i1 = 0,i2 = 0 ;
	var iYear,iMonth,iDay ;
	
	
	if (strDate == "") 
	{
		return false ;
	}
	else
	{
	    sArray = strDate.split("") ;
		for (i = 0; i <= sArray.length - 1 ; i ++)
		{
			if ((i1 == 0) && (sArray[i] == "-")) { i1 = i ; continue ;} 
			if (i1 > 0 && i2 == 0 && sArray[i] == "-" ) { i2 = i; break ; } 
		} 
		
		if (i1 > 0 && i2 > 0)
		{
			sTemp = JSunStrCopy(sDate,0,i1) ;
			if (JStrIsNumber(sTemp))				//判断年是否是数字型数据
			{ iYear = parseInt(sTemp,10) ;	} 
			else
			{ return false ;}
			
			sTemp = JSunStrCopy(sDate,i1 + 1, i2 - i1 - 1) ;
			if (JStrIsNumber(sTemp)) 
			{ 
				iMonth = parseInt(sTemp,10) ;	
				if (iMonth <= 0 || iMonth >= 13)
				{ return false ;}
			} 
			else
			{ 
			    return false ;
			}
			sTemp = JSunStrCopy(sDate,i2 + 1,sDate.length - i2 + 1) ;
			if (JStrIsNumber(sTemp)) 
			{ 
				iDay = parseInt(sTemp,10) ;	
				if (iDay <= 0 || iDay > JSunGetDays(iYear,iMonth))
				{ 
				    return false ;
				}
			} 
			else
			{ 
			    return false ;
			}
		}
		else
		{
			return false ;
		}
	}
	return true ;
}

//------------------------------------------------------------------------------
//2.2 本函数用于检查sTime字符串是否是时间型数据
//------------------------------------------------------------------------------
function JSunStrIsTime(sTime)
{
	var sArray,sTemp ;
	var i,i1 = 0,i2 = 0 ;
	var iHour,iMin,iSecond ;
	
	sArray = sTime.split("") ;
	if (sTime == "") 
	{
		return false ;
	}
	else
	{
		for (i = 0; i <= sArray.length - 1 ; i ++)
		{
			if ((i1 == 0) && (sArray[i] == ":")) { i1 = i ; continue ;} 
			if (i1 > 0 && i2 == 0 && sArray[i] == ":" ) { i2 = i; break ; } 
		} 

		if (i1 > 0)
		{
			sTemp = JSunStrCopy(sTime,0,i1) ;
			if (JStrIsNumber(sTemp))				//判断年是否是数字型数据
			{ 
				iHour = parseInt(sTemp,10) ;	
				if (iHour < 0 || iHour >= 24) { return false ;}
			} 
			else
			{ return false ;}
			
			if (i2 > 0)
			{
				sTemp = JSunStrCopy(sTime,i1 + 1, i2 - i1 - 1) ;
				if (JStrIsNumber(sTemp)) 
				{ 
					iMin = parseInt(sTemp,10) ;	
					if (iMin < 0 || iMin >= 60) { return false ;}
				} 
				else
				{ return false ;}
			
				sTemp = JSunStrCopy(sTime,i2 + 1,sTime.length - i2 + 1) ;
				if (sTemp != "")
				{
					if (JStrIsNumber(sTemp)) 
					{ 
						iSecond = parseInt(sTemp,10) ;	
						if (iSecond < 0 || iSecond >= 60) { return false ;}
					} 
					else
					{ return false ;}
				}	
			}	
		}
		else
		{
			sTemp = sTime ;
			if (JStrIsNumber(sTemp))				//判断年是否是数字型数据
			{ 
				iHour = parseInt(sTemp,10) ;	
				if (iHour < 0 || iHour >= 24) { return false ;}
			} 
			else
			{ return false ;}
		}
	}
	return true ;
}


// ----------------------------------------------------------------------------------
//2.3 本函数用于将日期型串sDate转换成标准格式"YYYY-MM-DD"的日期型串;
// 其中参数sSplit是分割字符串;               
// ----------------------------------------------------------------------------------
function JFormatDate(sDate,sSplit)
{
	var sArray ;
	var i,i1 = 0,i2 = 0 ;
	var iYear,iMonth,iDay ;
	
	sArray = sDate.split("") ;
	
	for (i = 0; i <= sArray.length - 1 ; i ++)
	{
		if ((i1 == 0) && (sArray[i] == "-")) { i1 = i ; continue ;} 
		if (i1 > 0 && i2 == 0 && sArray[i] == "-" ) { i2 = i; break ; } 
	} 
		
	if (i1 > 0 && i2 > 0)
	{
		iYear = parseInt(JSunStrCopy(sDate,0,i1),10)
		iMonth = parseInt(JSunStrCopy(sDate,i1 + 1, i2 - i1 - 1),10)
		iDay = parseInt(JSunStrCopy(sDate,i2 + 1,sDate.length - i2 + 1),10)
	}
			
	sTemp = iYear + sSplit ;
	if (iMonth < 10) { sTemp = sTemp + "0" + iMonth + sSplit ;}
	            else { sTemp = sTemp + iMonth + sSplit ;}
	if (iDay < 10) { sTemp = sTemp + "0" + iDay ;}
	          else { sTemp = sTemp + iDay ;}
	return sTemp ;
}


// ----------------------------------------------------------------------------------
//2.3 本函数用于将时间型串sTime转换成标准格式"HH:MM:SS"的时间型串;
// 其中参数sSplit是分割字符串;               
// ----------------------------------------------------------------------------------
function JFormatTime(sTime,sSplit)
{
	var sArray ;
	var i,i1 = 0,i2 = 0 ;
	var iHour,iMin,iSecond ;
	
	sArray = sTime.split("") ;
	
	for (i = 0; i <= sArray.length - 1 ; i ++)
	{
		if ((i1 == 0) && (sArray[i] == ":")) { i1 = i ; continue ;} 
		if (i1 > 0 && i2 == 0 && sArray[i] == ":" ) { i2 = i; break ; } 
	} 
	
	if (i1 > 0 && i2 > 0)  // 时/分/秒均有值
	{
		iHour = parseInt(JSunStrCopy(sTime,0,i1),10) ;
		iMin = parseInt(JSunStrCopy(sTime,i1 + 1, i2 - i1 - 1),10) ;
		iSecond = parseInt(JSunStrCopy(sTime,i2 + 1,sTime.length - i2 + 1),10) ;
	}
	if (i1 > 0 && i2 <= 0)  // 只有时/分有值
	{
		iHour = parseInt(JSunStrCopy(sTime,0,i1),10) ;
		iMin = parseInt(JSunStrCopy(sTime,i1 + 1,sTime.length - i1 + 1),10) ;
		iSecond = 0 ;
	}
	if (i1<= 0 && i2<= 0)   //只有时有值
	{
		iHour = parseInt(sTime,10) ;
		iMin = 0 ;
		iSecond = 0 ;
	}		
	
	if (! JStrIsNumber(iHour)) { iHour = 0 ; } 
	if (! JStrIsNumber(iMin)) { iMin = 0 ; } 
	if (! JStrIsNumber(iSecond)) { iSecond = 0 ; } 
	
	if (iHour < 10) { sTemp = "0" + iHour + sSplit ;}
	            else {  sTemp = iHour + sSplit ; }	
	if (iMin < 10)	{ sTemp = sTemp + "0" + iMin + sSplit ;}
	            else { sTemp = sTemp + iMin + sSplit ;}
	if (iSecond < 10) { sTemp = sTemp + "0" + iSecond ;}
	          else { sTemp = sTemp + iSecond ;}
	return sTemp ;
}

//------------------------------------------------------------------------------
//2.4 本函数用于检查文本框txtName内的数据是否是日期型数据
//------------------------------------------------------------------------------
function JSunCheckTxtIsDate(txtName,sLabel)
{
	var sValue ;

	sValue = JSunLTrim(JSunRTrim(txtName.value)) ;
	if (JSunStrIsDate(sValue))
	{
		txtName.value = JFormatDate(sValue,"-") ;
		return true ;
	}
	else
	{
		strTemp = "“" + sLabel + "”的值<" + txtName.value + ">不是合法的日期型数据。" + unescape("\n\n") ;
		strTemp = strTemp + "合法的日期型数据格式是：<YYYY-MM-DD>或<YYYY-M-D>。" + unescape("\n\n") ;
		strTemp = strTemp + "如：<2000年4月23日>可写成<2000-04-23>或<2000-4-23>。"
		window.alert(strTemp) ;
		txtName.select() ;
		txtName.focus() ;
		return false ;
	}
}

//------------------------------------------------------------------------------
//2.4 本函数用于检查文本框txtName内的数据是否是时间型数据
//------------------------------------------------------------------------------
function JSunCheckTxtIsTime(txtName,sLabel)
{
	var sValue ;

	sValue = JSunLTrim(JSunRTrim(txtName.value)) ;
	if (JSunStrIsTime(sValue))
	{
		txtName.value = JFormatTime(sValue,":") ;
		return true ;
	}
	else
	{
		strTemp = "“" + sLabel + "”的值<" + txtName.value + ">不是合法的时间型数据。" + unescape("\n\n") ;
		strTemp = strTemp + "合法的时间型数据格式是：<HH:MM:SS>或<HH-M-S>。" + unescape("\n\n") ;
		strTemp = strTemp + "如：<20时8分2秒>可写成<20:08:02>或<20:8:2>。"
		window.alert(strTemp) ;
		txtName.select() ;
		txtName.focus() ;
		return false ;
	}
}


// ----------------------------------------------------------------------------------
//2.5 本函数用于获取系统的当前日期(日期格式是"YYYY-MM-DD")
// ----------------------------------------------------------------------------------
function JSunGetCurrentDate()
{
	var iYear,iMonth,iDate,Today,sDate ;
	
	Today = new Date() ;
	iYear = Today.getYear() ;
	iMonth = Today.getMonth() + 1 ;
	iDate = Today.getDate() ;
	
	sDate = String(iYear) ;
	if (iMonth < 10) 
	{
		sDate = sDate + "-0" + String(iMonth) ;
	}	
	else
	{
		sDate = sDate + "-" + String(iMonth) ;
	}
	if (iDate < 10) 
	{
		sDate = sDate + "-0" + String(iDate) ;
	}	
	else
	{
		sDate = sDate + "-" + String(iDate) ;
	}
	return sDate ;
}

// ----------------------------------------------------------------------------------
//2.6 本函数用于获取系统的当前日期(日期格式是"YYYY年MM月DD日")
// ----------------------------------------------------------------------------------
function JSunGetCurrentCnDate()
{
	var iYear,iMonth,iDate,Today,sDate ;
	
	Today = new Date() ;
	iYear = Today.getYear() ;
	iMonth = Today.getMonth() + 1 ;
	iDate = Today.getDate() ;
	
	sDate = String(iYear) ;
	if (iMonth < 10) 
	{
		sDate = sDate + "年0" + String(iMonth) ;
	}	
	else
	{
		sDate = sDate + "年" + String(iMonth) ;
	}
	if (iDate < 10) 
	{
		sDate = sDate + "月0" + String(iDate) ;
	}	
	else
	{
		sDate = sDate + "月" + String(iDate) ;
	}
	sDate = sDate + "日" ;
	return sDate ;
}
// ----------------------------------------------------------------------------------
//2.5 本函数用于获取系统的当前时间(时间格式是"HH:MM:SS")
// ----------------------------------------------------------------------------------
function JSunGetCurrentTime()
{
	var iHour,iMin,iSecond,Today,sTime ;
	
	Today = new Date() ;
	iHour = Today.getHours() ;
	iMin = Today.getMinutes() ;
	iSecond = Today.getSeconds() ;
	
	sTime = "" ;
	
	if (iHour < 10)
	{ sTime = "0" + String(iHour) ;	}
	else
	{ sTime = String(iHour) ;	}
	
	if (iMin < 10) 
	{	sTime = sTime + ":0" + String(iMin) ;	}	
	else
	{	sTime = sTime + ":" + String(iMin) ;	}
	
	if (iSecond < 10) 
	{	sTime = sTime + ":0" + String(iSecond) ;	}	
	else
	{	sTime = sTime + ":" + String(iSecond) ;	}
	return sTime ;
}


// ----------------------------------------------------------------------------
//2.7 本函数用于初始化相关年Select,
//			其中参数 iBefore表示从当前年开始往前的年份数量;
//						iAfter 表示从当前年开始往后的年份数量;
//-----------------------------------------------------------------------------
function JSunInitYearSelect(iBefore,iAfter,selName) 
{
	var iYear,i,optItem ;
	var dDate = new Date()

	for (i = selName.length ; i >= 0 ; i --)
	{
		selName.options[i] = null;
	}
	
	iYear = dDate.getYear() ;
	for (i = iYear - iBefore; i <= iYear + iAfter; i ++) 
	{  
		optItem = document.createElement("OPTION") ;  
		optItem.text = i ;  
		optItem.value = i ;  
		if (i == iYear) { optItem.selected = true ;}
		selName.add(optItem);  
	}  
}

// ----------------------------------------------------------------------------
//2.8 本函数用于初始化iYear年iMonth月的日期的Select中的Option,
//-----------------------------------------------------------------------------
function JSunInitDateSelect(iYear,iMonth,selName) 
{
	var iDays,i,optItem,sTemp ;

	for (i = selName.length ; i >= 0 ; i --)
	{
		selName.options[i] = null;
	}
	
	iDays = JSunGetDays(parseInt(iYear),parseInt(iMonth)) ;
	for (i = 1; i <= iDays ; i ++) 
	{  
		optItem = document.createElement("OPTION") ;  
		if (i >= 10)
		{
			optItem.text = i ;  
			optItem.value = i ;  
		}
		else
		{
			optItem.text = "0" + i.toString() ;
			optItem.value = "0" + i.toString() ;
		}
		if (i == iYear + 1) { optItem.selected = true ;}
		selName.add(optItem);  
	}  
}



// ==================================================================================
//										第三部分 输入合法性检查函数
// ==================================================================================

// ----------------------------------------------------------------------------------
// 3.1 本函数用于判断Text文本输入框的值是否在合法字符串sCorrectStr中
// ----------------------------------------------------------------------------------
function JSunCorrectChar(txtName,sLabel,sCorrectStr)
{
	var i,CheckChar ;
	
	for(i = 0 ; i < txtName.value.length; i ++)
	{
		CheckChar = txtName.value.charAt(i) ;
		if (sCorrectStr.indexOf(CheckChar) == -1)
		{
			strTemp = "“" + sLabel + "”中含有非法字符。" + unescape("\n\n") ;
			strTemp = strTemp + "合法的字符集是：<" + sCorrectStr + ">。" ;
			window.alert(strTemp) ;
			txtName.select() ;
			txtName.focus() ;
			return false ;
		}
	}
	return true ;	
}

// -----------------------------------------------------------------------------------
// 3.2 本函数用于判断一个文本输入框txtName的值是否为空;
// -----------------------------------------------------------------------------------
function JSunTextEmpty(txtName,sLabel)
{
	var strTemp = "" ; 
	
	strTemp = JSunRTrim(JSunLTrim(txtName.value)) ;
	if (strTemp =="")
	{
		strTemp = "“" + sLabel + "”不能为空，请输入正确的“" + sLabel + "”。";
		window.alert(strTemp) ;
		txtName.focus() ;
		return true ;
	}
	return false ;
}

function JSunTextIsEmpty(strTextName,strLabel)
{
    var txtName = document.getElementById(strTextName) ;
    var strTemp = "" ; 
	strTemp = JSunRTrim(JSunLTrim(txtName.value)) ;
	alert(strTemp) ;
	if (strTemp =="")
	{
		strTemp = "“" + sLabel + "”不能为空，请输入正确的“" + sLabel + "”。";
		window.alert(strTemp) ;
		txtName.focus() ;
		return true ;
	}
	return false ;
}

// ==================================================================================
//										第五部分 字符串相关函数
// ==================================================================================
// -----------------------------------------------------------------------------------
// 5.1 本函数用于对sString字符串进行左空格截除
// -----------------------------------------------------------------------------------
function JSunLTrim(sString)
{	
	var sStr,i,iStart,sResult = "";
	
	sStr = sString.split("");
	iStart = -1 ;
	for (i = 0 ; i < sStr.length ; i++)
	{
		if (sStr[i] != " ") 
		{
			iStart = i;
			break;
		}
	}
	if (iStart == -1) 
	{ 
	    return "" ; //表示sString中的所有字符均是空格,则返回空串
	}    
	else 
	{ 
	    return sString.substring(iStart) ;
	}
}

// -----------------------------------------------------------------------------------
// 5.2 本函数用于对sString字符串进行右空格截除
// -----------------------------------------------------------------------------------
function JSunRTrim(sString)
{	
	var sStr,i,sResult = "",sTemp = "" ;
		 
	sStr = sString.split("");
	for (i = sStr.length - 1 ; i >= 0 ; i --)  // 将字符串进行倒序
	{	
		sResult = sResult + sStr[i];	
	}
	sTemp = JSunLTrim(sResult) ;					// 进行字符串前空格截除
	
	if (sTemp == "")
	{
	    return "" ;	
	}
	sStr = sTemp.split("");
	sResult = "" ;
	for (i = sStr.length - 1 ; i >= 0 ; i--)	// 将经处理后的字符串再进行倒序
	{
		sResult = sResult + sStr[i];
	}
	return sResult ;
}

// --------------------------------------------------------------------------------
// 5.3 本函数用于对sString字符串进行左、右空格截除
// --------------------------------------------------------------------------------

function JSunTrim(sString)
{
	var strTmp ;
	strTmp = JSunRTrim(JSunLTrim(sString)) ;
	return strTmp ;
}

// -----------------------------------------------------------------------------
// 5.4 本函数用于测试字符串sString的长度(1个汉字代表2单位长度)
// -----------------------------------------------------------------------------
function JSunStrLen(sString)
{
	var sStr,iCount,i,strTemp ;
	
	iCount = 0 ;
	sStr = sString.split("");
	for (i = 0 ; i < sStr.length ; i ++)
	{
		strTemp = escape(sStr[i]);	
		if (strTemp.indexOf("%u",0) == -1)		// 表示是汉字
		{ 
			iCount = iCount + 1 ;
		}	
		else 
		{
			iCount = iCount + 2 ;
		}
	}
	return iCount ;
}

//-----------------------------------------------------------------------------
//4.4 本函数用于复制字符串sString从iStart开始iCount个长度
// 注 : 在使用本函数时,iStart,iCount长度单位均为英文字符长度;
//      即1个英文字母表示1个单位长度,而1个汉字表示2个单位长度.
//		  当复制的最后一个字符只有半个汉字,则被丢弃;
//      当iStart的位置是后半个汉字时,则iStart将会从下一个有效字符开始;iStart从0开始
//-----------------------------------------------------------------------------
function JSunStrCopy(sString,iStart,iCount)  
{
	var sStr,i,j,strTemp = "",sResult = "";
	var iResultLen = 0 ;
	
	if (iStart < 0) { iStart = 0 ;}
	if (iCount < 0) { iCount = 0 ;}
	
	sStr = sString.split("");
	
	j = 0 ;
	for (i = 0 ; i < sStr.length ; i ++)
	{
		strTemp = escape(sStr[i]) ;	
		if (j >= iStart)										// 进行复制字符串
		{
			sResult = sResult + sStr[i] ;
			if (strTemp.indexOf("%u",0) == -1)			// 复制的是非汉字
			{ 
				iResultLen = iResultLen + 1 ; 
				j = j + 1 ;
			}	
			else 	
			{	
				iResultLen = iResultLen + 2 ;	
				j = j + 2 ;
			}
			
			if (iResultLen < iCount) {	continue ;}		// 复制的字串不够长,则继续
			if (iResultLen > iCount)						// 最后一个字符只有半个汉字,则被丢弃;
			{
				sResult = sResult.substring(0,sResult.length - 1) ;
				break ;
			}	
			if (iResultLen = iCount) {	break ; } 
		}
		else
		{
			if (strTemp.indexOf("%u",0) == -1)		  // 非汉字
			{ j = j + 1 ; }	
			else 	
			{	j = j + 2 ;	}
		}
	}
	return sResult ;
}

// --------------------------------------------------------------
// 本函数用于提取[]内的数据
// --------------------------------------------------------------
function JSunSplitId(sId_Name)
{
	var sStr,i,sResult = "" ;
	var iStart = 0 ,iEnd = 0 ;
		
	sStr = sId_Name.split("");
	for (i = 0; i< sStr.length; i ++)
	{
		if (sStr[i] == "[") 
		{
			iStart = i + 1;
			break ;
		}
	}
		
	for (i = 0; i< sStr.length; i ++)
	{
		if (sStr[i] == "]") 
		{
			iEnd = i - 1 ;
			break ;
		}
	}
	
	if ((iStart > 0) && (iEnd > 0) && (iEnd >= iStart))
	{ 
		sResult = JSunStrCopy(sId_Name,iStart,iEnd - iStart + 1) ;
	}
	else
	{
		sResult = "" ;
	}	
	return sResult ;
}


//------------------------------------------------------------------
//---功能：用于获取已经打开窗口的焦点-------------------------------
//---参数：oOpener表示打开窗口的句柄,openStr:打开的字符串-----------
//---用法：
//var oOpener1
//sStyle="left=120,top=150,height=230,width=400,center=1,scroll=0,status=0,directories=0,channelmode=0"
//oOpener1=FocusWin(oOpener1,URL,sStyle)
//---------------------------------------------------------------
function SunOpenWin(oOpener,openStr,intWidth,intHeight)
{
	intLeft = Math.floor((screen.width - intWidth) / 2) ;
	intTop = Math.floor((screen.height - intHeight) / 2) ;
	strLocation = "width=" + intWinWidth.toString() + ",height=" + intWinHeight.toString() + ",top=" + intTop.toString() + ",left=" + intLeft.toString() ;
	try
	{	
		if (oOpener != null)
		{ 
			
			oOpener.focus(); 
		}
		else
		{
			oOpener = window.open(openStr,"s",strLocation);
      		oOpener.focus();
	    }
	}
	catch(exceptionl)
	{
		oOpener=window.open(openStr,"s",strLocation);
   }
	return oOpener
 }
 
// ================================================================
// 本函数用于自动将输入文本框中的内容转换成大写字符
// ================================================================
function JSunToUpperCase() 
{
	if ((window.event.keyCode >= 97) && (window.event.keyCode <= 122)) 
	{
		window.event.keyCode = window.event.keyCode - 32 ;
	}
}

// ================================================================
// 本函数用于自动将输入文本框中的内容转换成小写字符
// ================================================================
function JSunToLowerCase() 
{
	if ((window.event.keyCode >= 65) && (window.event.keyCode <= 90)) 
	{
		window.event.keyCode = window.event.keyCode + 32 ;
	}
}

// ================================================================
// 本函数用于限制文本输入框中只能输入数字"0"到"9",".","-"
// ================================================================
function JSunNumberText()
{
	if ( !(((window.event.keyCode >= 48) && (window.event.keyCode <= 57)) 
		|| (window.event.keyCode == 13) || (window.event.keyCode == 46) 
		|| (window.event.keyCode == 45)))
	{
		window.event.keyCode = 0 ;
	}
}



