//说明对于obj类型的变量，传入时一般使用document.getElementById
//这样才可以保证没缓存。

/*****************************************************************
*	函数名称: PageChange()
*	功能描述: 页面转换
*	参数说明: sPage:要转到的页面
*	使用方法: pageChange(sPage)
******************************************************************/
function PageChange(sPage)
{
	window.location  = sPage;
}

/*****************************************************************
*	函数名称: Trim()
*	功能描述: 删除字符串两端空格
*	参数说明: sString:传入的字符串;
*	返回值  : 返回删除两端空格后的字符串
******************************************************************/
function Trim(sString)
{
	var sTemp = sString;
	var iStart = 0;
	var iEnd = 0;
	//字符串左边的空格
	for(var i=0;i<sString.length;i++)
	{
		if(sString.charAt(i) != " ")
		{
			iStart = i;
			break;
		}
	}
	for(var i=sString.length-1;i>=0;i--)
	{
		if(sString.charAt(i) != " ")
		{
			iEnd = i;
			break;
		}
		if (i == 0 && sString.charAt(i) == " ")
			iEnd = -1;
	}
	return(sString.substring(iStart,iEnd+1));
}

/*****************************************************************
*	函数名称: SetOnlyNumbers()
*	功能描述: 只准输入数字
*	参数说明: event:传入为事件
*	返回值  : 用键盘输入的一定要是数字
*	使用方法: onkeypress="return SetOnlyNumbers(event)"
******************************************************************/
function SetOnlyNumbers(e)
{
	var keynum
	var keychar
	var numcheck
	if(window.event) // IE
	{
		keynum = e.keyCode
	}
	else if(e.which) // Netscape/Firefox/Opera
	{
		keynum = e.which
	}
	//应该增加小功能:可以输入"."符号190 or 110		
	keychar = String.fromCharCode(keynum)
	numcheck = /[^\d]/g
	return !numcheck.test(keychar)		
}

/*****************************************************************
*	函数名称: CountChr(,,)
*	功能描述: 检查一个input(text)输入的字符的数量
*	参数说明: objControled	: 传入的input(text)
*		  objShow	: 用于显示提醒的span
*		  iLen		: 限定的长度
*	返回值  : 如果已经少于或等于零，返回false,不再计算了。
******************************************************************/
function CountChr(objControled,objShow,iLen)
{
	objShow.innerHTML = parseInt(iLen) - objControled.value.length;
	if(objControled.value.length >= parseInt(iLen))
	{
		objShow.innerHTML	= "<font color='red'>零</font>";					
		return false;
	}
	return true;
}

/*****************************************************************
*	函数名称: IsValidCode()
*	功能描述: 检查一个传入的字符串asCode是不是包含无效字符
*		  如" / \ [ ] : ; | = , + * ? < >"等字符，可能有
*		  些是不允许输入的。
*	参数说明: asCode	: 传入的待检查字符串
*	返回值  : 不含无效字符返回true,否则false
******************************************************************/
function IsValidCode(asCode)
{
	if(asCode.indexOf('"') != -1) return(false);
	if(asCode.indexOf('/') != -1) return(false);
	if(asCode.indexOf('\\') != -1) return(false);
	if(asCode.indexOf('[') != -1) return(false);
	if(asCode.indexOf(']') != -1) return(false);
	if(asCode.indexOf(':') != -1) return(false);
	if(asCode.indexOf(';') != -1) return(false);
	if(asCode.indexOf('|') != -1) return(false);
	//if(asCode.indexOf('=') != -1) return(false);	
	//if(asCode.indexOf(',') != -1) return(false);		
	//if(asCode.indexOf('+') != -1) return(false);		
	if(asCode.indexOf('*') != -1) return(false);	
	//if(asCode.indexOf('?') != -1) return(false);	
	if(asCode.indexOf('<') != -1) return(false);
	if(asCode.indexOf('>') != -1) return(false);
	if(asCode.indexOf('\'') != -1) return(false);	// 在sql中经常要处理的" ' "号
	if(asCode.indexOf('.') != -1 && asCode.length == 1) return(false);
	if(asCode.indexOf(' ') != -1 && asCode.length == 1) return(false);
	return(true);
}

/*****************************************************************
*	函数名称: CheckAll(,)
*	功能描述: 点击"主"checkbox后，所有相关的checkbox都被选定
*		  取消选择"主"checkbox后，所有相关的checkbox都被取消选定
*	参数说明:	传入的时候一般使用document.getElementById
*				objMain	: 传入的"主"checkbox
*				objGroup	: 传入的相关的checkbox集
******************************************************************/			
function CheckAll(objMain,objGroup)
{	
	if(objMain.checked)
	{	
		for (i = 0;i < objGroup.length;++ i)
		{
			objGroup[i].checked = true;
		}
	}
	else
	{
		for (i = 0;i < objGroup.length;++ i)
		{
			objGroup[i].checked = false;
		}
	}
}

/*****************************************************************
*	函数名称: GetSelected()
*	功能描述: 将所有相关的checkbox都选定，并返回一个数组
*	参数说明: objGroup	: 传入的相关的checkbox集
*	返回值  : 一个数组，记录了所选的选项.
******************************************************************/		
function GetSelected(objGroup)
{							
	var arrGroup 	= new Array();								
	for (i = 0;i < objGroup.length;++ i)
	{
		if (objGroup[i].checked)
		{
			arrGroup[arrGroup.length] = objGroup[i].value;
		}
	}//end for
	return arrGroup ;
}			

/********************************************************************
*	函数名称: SendDataToServer()
*	功能描述: 该函数通过XML HTTP执行一个后台程序
*	参数说明:	sURL		: 后台程序的地址
*				sContent	: 发送的内容
* 	返回值	:	true		: 成功
*				false		: 失败
********************************************************************/
function SendDataToServer(sURL,sContent)
{
	// 判断sURL是否为空，如果为空则直接返回
	if ("" == sURL)
	{
		return false;
	}
	var oXMLHttp	= null;
	if (window.XMLHttpRequest){
		// If IE7, Mozilla, Safari, etc: Use native object
		oXMLHttp = new XMLHttpRequest()
	}
	//for window's ie5,ie6
	else if(window.ActiveXObject)
	{
		oXMLHttp	= new ActiveXObject("Microsoft.XMLHTTP");
	}								
	// 判断IE是否支持使用ActiveXObject
	if(oXMLHttp!=null)
	{		
		// 捕捉异常
		try
		{
			oXMLHttp.open("POST",sURL,true);
			//发送大量数据时，可以用下面的的sContent
			oXMLHttp.setRequestHeader("Content-Length",sContent.length);
			oXMLHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
			oXMLHttp.send(sContent);
			
			if (200 == oXMLHttp.status)
			{
				if ("ok" == oXMLHttp.responseText)
				{
					// 发送并执行成功，返回true
					return true;
				}
				else
				{
					// 执行sURL时发生错误，返回false
					return false;
				}						
			}
			else
			{
				// 发送数据到服务器端失败，返回false
				//alert("Problem retrieving XML data:" + oXMLHttp.statusText);
				return false;
			}
		}
		catch(e)
		{
			// 出现异常，返回false
			//alert(e.message);
			return false;
		}	 		
		
	}
	else
	{
		// 浏览器不支持XMLHTTP，返回false
		alert("Your browser does not support XMLHTTP.");
		return false;
	}
}


//从服务器上面取得数据
function GetDataFromServer(sURL,sContent)
{
	// 判断sURL是否为空，如果为空则直接返回
	if ("" == sURL)
	{
		return "";
	}
	var oXMLHttp	= null;
	if (window.XMLHttpRequest){
		// If IE7, Mozilla, Safari, etc: Use native object
		oXMLHttp = new XMLHttpRequest()
	}
	//for window's ie5,ie6
	else if(window.ActiveXObject)
	{
		oXMLHttp	= new ActiveXObject("Microsoft.XMLHTTP");
	}								
	// 判断IE是否支持使用ActiveXObject
	if(oXMLHttp!=null)
	{		
		// 捕捉异常
		try
		{
			oXMLHttp.open("POST",sURL,false);
			//发送大量数据时，可以用下面的的sContent
			oXMLHttp.setRequestHeader("Content-Length",sContent.length);
			oXMLHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
			oXMLHttp.send(sContent);
			
			if (200 == oXMLHttp.status)
		    {				
				    // 发送并执行成功，返回true					
				    return oXMLHttp.responseText;							
		    }
		    else
		    {
			    // 发送数据到服务器端失败，返回false
			    //alert("Problem retrieving XML data:" + oXMLHttp.statusText);
			    return "";
		    }
		}
		catch(e)
		{
			// 出现异常，返回false
			//alert(e.message);
			return "";
		}	 		
		
	}
	else
	{
		// 浏览器不支持XMLHTTP，返回false
		alert("Your browser does not support XMLHTTP.");
		return "";
	}
	
}
