////author:liyanfeng
////version:1.0
/*****************************************************************/

/*
==================================================================
功能：字符串操作,去除字符串两边的空格
使用：trim()
返回：string
使用方法:  str.trim()
==================================================================   
*/

String.prototype.trim = function(){
      return this.replace(/(^\s*)|(\s*$)/g,"");
}
/************************************
Method:		checkNotnull(controller,message)
purpose:	  所输内容是否非空,为空给出相应的提示
parameters :	控件名称
return value :	true/false.
condition:  controller:must; message:optional
************************************/
function checkNotnull(controller,message){
	var value=controller.value.trim();	
	if (value.length==0){
		if(message!=null){
		alert(message+":不能为空！")
		}else{
			alert("不能为空！");
		}
		controller.focus();
		return false;
	}
	controller.value=value;
	return true;

}
/********************************
    Method: getCNTxtLength(controller)
	Purpose:  得到字符串的长度，如果字符串中包含有中文/中文符号的话，算作两个字符
	Parameters: 控件名称
	return value: 字符串的长度
	condition:  controller:must;
	********************************/
function getCNTxtLength(controller){		
		var value=controller.value.trim();
		var len;
		var i;
		len = 0;
		for (i=0;i<value.length;i++){
			if (value.charCodeAt(i)>255) len+=2; else len++;
		}		
		return len;
	}
	
/************************************
Method:		ReplaceSpace(str)
purpose:	过虑字符串中的所有空格
parameters :	控件名称
return value :	去掉空格后的字符串
condition:  controller:must;
************************************/
function ReplaceSpace(controller)
{ 
	var value=controller.value.trim();	
	while ( value.indexOf(" ") >= 0 )
 	{
 	 value = value.replace(" " ,"");
	 }
	 controller.value=value;
 	return value;
}
/************************************
Method:		isTel(controller)
purpose:	电话号码校验(只能为下划线—、（）、或数字)
condition:  controller:must;
************************************/
function isTel(controller){
	var tel=controller.value;
	var validchars = "-()1234567890 ";
	for (i=0;i<tel.length;i++){
		telchar=tel.charAt(i);
		if (validchars.indexOf(telchar, 0) == -1){
			alert("请输入正确的电话号码格式！");
	                controller.focus();
			return false;
		}
	}
	return true;
}
/************************************
Method:		isMobile(controller)
purpose:	手机号码校验
parameters:    控件名称
condition:  controller:must;
************************************/
function isMobile(controller){
	var tel = controller.value;
	var validchars = "1234567890 ";
	for (i = 0;i < tel.length;i++){
		telchar = tel.charAt(i);
		if (validchars.indexOf(telchar, 0) == -1){
			alert("请输入正确的手机号码格式！");
            		controller.focus();
			return false;
		}
	}
	return true;
}
/************************************
Method:		checkEmail(controller)
purpose:	检查EMail格式是否正确
parameters :	控件名称
return value :	true/false.
condition:  controller:must;
************************************/
function checkEmail(controller)
{
	var strEMail=controller.value;
	var strE="@";
	var strI=".";
	var iPos;
	var iLen;
	var iT=0;
	var strT="";
if (strEMail.length!=0){
	strT=strEMail;
	do
	{
		iPos=strT.indexOf(strE);
		iLen=strT.length;
		if (iPos== -1)
		{
			if(iT==0)
			{	alert("邮件地址不正确");
				controller.focus();
				return false;
			}
			else
			{
				break;
			}
		}
		else
		{
			if ((iPos==0)||(iPos==(iLen -1)))
			{	alert("邮件地址不正确");
				controller.focus();
				return false;
			}
			else
			{
				strT=strT.substring(iPos+1);
			}
			iT++;
		}
	}
	while(strT !="")
	if (iT !=1)
	{	alert("邮件地址不正确");
		controller.focus();
		return false;
	}

	strT=strEMail.substring(iPos+1,1);
	if (strT==".")
	{	alert("邮件地址不正确");
		controller.focus();
		return false;
	}

	iT=0;
	iPos=strEMail.indexOf(strE);
	strT=strEMail.substring(iPos+1);
	do
	{
		iPos=strT.indexOf(strI);
		iLen=strT.length;
		if (iPos== -1)
		{
			break;
		}
		else
		{
			if((iPos==0)||(iPos==(iLen -1)))
			{	alert("邮件地址不正确");
				controller.focus();
				return false;
			}
			else
			{
				strT=strT.substring(iPos+1);
			}
			iT++;
		}
	}
	while(strT !="")

	iPos=strEMail.indexOf(strE);
	strT=strEMail.substring(0,iPos);
	iPos=strT.indexOf(strI);
	if(iPos != -1)
	{	alert("邮件地址不正确");
		controller.focus();
		return false;
	}
}
	return true;
}
/************************************
Method:		checkNumber(controller,message)
purpose:	 检测输入是否为数字
parameters :	控件名称，提示信息
return value :	true/false.
condition:  controller:must; message:optional
************************************/
function checkNumber(controller,message)
{
	var value=controller.value;
        var count=0;
	if (value.length!=0)
        {
	  for (var i=0;i<value.length;i++)
          {
            if (value.charAt(i)>"9" || value.charAt(i)<"0")
            {
              alert(message + "为数字!");
              controller.focus();
              return false;
            }
	  }
        }
	return true;
}
/************************************
Method:		checkLetter(controller,message)
purpose:	 所输内容应为字母
parameters :	控件名称，提示信息
return value :	true/false.
condition:  controller:must; message:optional
************************************/
function checkLetter(controller,message){
	var value=controller.value;
	if (value.length!=0){

		for (var i=0;i<value.length;i++){
                      if((!(value.charAt(i)>="a" && value.charAt(i)<="z")) && (!(value.charAt(i)<="Z" && value.charAt(i)>="A"))){
				alert(message+"为A-Z或a-z的字母");
	 			controller.focus();
				return false;
			}
		}
	}
        return true;
}
/************************************
Method:		checkNumOrLetOrLine(controller,message)
purpose:	 检测输入是否只有字母或数字或下划线
parameters :	控件名称，提示信息
return value :	true/false.
condition:  controller:must; message:optional
************************************/
function checkNumOrLetOrLine(controller,message)
{
        var value=controller.value;
        if (value.length!=0)
        {
          for (var i=0;i<value.length;i++)
          {
             if ((!(value.charAt(i)>="0" && value.charAt(i)<="9"))
                &&(!(value.charAt(i)>="a"&&value.charAt(i)<="z"))
                &&(!(value.charAt(i)>="A"&&value.charAt(i)<="Z"))
                &&(!(value.charAt(i)=="_")))
            {
              alert(message + "为字母或数字或下划线");
              controller.focus();
              return(false);
            }
	  }
        }
        return true;
}
/************************************
Method:		checkNumOrLetOrLineOrCh(controller,message)
purpose:	 检测输入是否只有字母或数字或下划线或中文
parameters :	控件名称，提示信息
return value :	true/false.
condition:  controller:must; message:optional
************************************/
function checkNumOrLetOrLineOrCh(controller,message)
{
        var value=controller.value;
        if (!(value.replace(/[^\u4E00-\u9FA5]/g,''))&&!(value.replace(/[\W]/g,'')))
        {
              alert(message + "为字母或数字或下划线或中文");
              controller.focus();
              return(false);
        }
        return true;
}
/*************************************
Method:       checkRadio(controller,message)
purpose:      检测单选框是否被选中
parameters:   控件名称，提示信息 
return value  true/false
condition:  controller:must; message:optional
*************************************/
function checkRadio(controller,message)
{
	var len=controller.length;
	var str;
	for(i=0; i < len; i++)   
   {   
  		if (controller[i].checked)   
  		{
  			str = "1";
  		}   
   } 
   if(str != "1")
   {
   		alert("请选择:" + message);
   		return false;
   }
   return true;
}
/*************************************
Method:       checkRadio(controller,message)
purpose:      检测单选框是否被选中
parameters:   控件名称，提示信息 
return value  true/false
condition:  controller:must; message:optional
*************************************/
function getRadioValue(controller)
{
	var len=controller.length;
	var str;
	for(var i=0;i<len;i++)
    {
    	if(controller[i].checked)
     	{
     	 	str = controller[i].value;
    	}
	}
	return str;
}
/************************************
Method:		checkSelect(controller,message)
purpose:	检测下拉框是否被选中
parameters: 控件名称，提示信息
return value: true/false
condition:  controller:must; message:optional
************************************/
function checkSelect(controller,message)
{
	var index = controller.selectedIndex;
	if(index == 0)
	{
		alert("请选择:" + message);
		controller.options[index].focus();
		return false;
	}
	return true;
}
/************************************
Method:		checkDecimalAndUnknown(controller,message,befor,after)
purpose:	 检测价格格式是否正确（例如99,999.00），且小数点前后不能超过规定位数（由参数befor,after决定）
parameters :	控件名称，提示信息，小数点前面的位数，小数点后面的位数
return value :	true/false.
************************************/
function checkDecimalAndUnknown(controller,message,befor,after){
	var value=controller.value;
	if(value == '不详'){
	  return true;
	}
	if (value.length!=0){
		for (var i=0;i<value.length;i++){
			if ((value.charAt(i)>"9" || value.charAt(i)<"0") && value.charAt(i)!="." && value.charAt(i)!=",") {
				alert(message + "用小数或整数或不详表示！");
	 			controller.focus();
				return(false);
			}
		}
	}
	var pos = value.indexOf(".");//小数点位置
	if(pos > -1){
	  if(pos > befor){
	  alert("小数点前边位数不能超过"+befor+"位！");
	  controller.focus();
	  return false;
	  }
	  if(value.length-pos - 1 > after){
	    alert("小数点后边位数不能超过"+after+"位！");
	    controller.focus();
	    return false;
	  }
	}
	else{
	  if(value.length>befor){
	    alert("整数位数不能超过"+befor+"位！");
	    controller.focus();
	    return false;
	  }
	}
	return true;

}