//为String添加ltrim,rtrim和trim方法(调用的时候必须使用小写)。
String.prototype.trim = function()
{
    return this.replace(/(^\s*)|(\s*$)/g, "");
}
String.prototype.ltrim = function()
{
    return this.replace(/(^\s*)/g, "");
}
String.prototype.rtrim = function()
{
    return this.replace(/(\s*$)/g, "");
}
String.prototype.endWith = function(str)
{
    var reg = new RegExp(str+"$");
    return reg.test(this);
}


function checkInput(name, obj, type, mask, length){
    var r = checkit(name, obj, type, mask, length);
	if(!r)
		obj.focus();
	return r;
}

function checkit(name, obj, type, mask, length){

	//解析掩码

	var length_check_mode = mask.charAt(0);
	var canHasSpace = mask.charAt(1)==1;
	var canHasSpecialChar = mask.charAt(2)==1;
	var doTrim = mask.charAt(3)==1;

	//是否有该对象
	if(obj==null)
	{
		alert("错误，没有这个对象:"+name);
		return false;
	}

	//是否为空
	if(obj.value == "" || obj.value == null)
	{
		if(length_check_mode!=1)
		{
			alert(name+"不能为空！");
			return false;
		}
		else
		{
			obj.value="";
			return true;
		}
	}

	//是否超过最大长度
	if(length_check_mode==0&&!checkMaxLength(obj.value,length))
	{
		alert(name+"不能超过"+length+"个字符！" );
		return false;
	}

	//是否超过最小长度
	if(length_check_mode==2&&!checkMinLength(obj.value,length))
	{
		alert(name+"不能少于"+length+"个字符！" );
		return false;
	}

	//是否包含空格
	if(!canHasSpace&&HasSpace(obj))
	{
		alert(name+"不能包含空格");
		return false;
	}

	//去除前后的空白字符
	if(doTrim)obj.value=obj.value.trim();

	//是否包含特殊字符
	if(!canHasSpecialChar&&checkSpecialChar(obj.value))
	{
		alert(name+"不能包含特殊字符");
		return false;
	}

	switch(type)
	{
		case "integer":
			if(!IsNumber(obj.value))
			{
				alert( name+"格式不对！" );
				return false;
			}else return true;

			break;
		case "year":
			if(!IsNumber(obj.value))
			{
				alert( name+"格式不对" );
				return false;
			}
			if(obj.value<1900||obj.value>2500)
			{
				alert( name+"取值超出范围！" );
				return false;
			}else return true;
			break;
		case "email":

			if(!CheckEmail(obj.value))
			{
				alert( name+"格式不对（yy@ss.com）" );
				return false;
			}else return true;

			break;
		case "string":
			return true;
			break;
		case "number":
			if(!IsNumber(obj.value))
			{
				alert( name+"不是数字！" );
				return false;
			}else return true;

			break;
		default:
			alert(name+"不能检测的类型："+type);
			return false;
			break;
	}

	alert("意外错误，出错位置未知！");
	return false;

}

//检查输入是否包含特殊字符，返回真假
function checkSpecialChar(vStr)
{
  var strSpecialWord = new String("`~!@#$%^&*()-_=+\\|';:,<.>/?"+'"');

  for (i=0;i<strSpecialWord.length;i++) {
	if (vStr.indexOf(strSpecialWord.charAt(i)) != -1) {
		return true;
	}
  }
  return false;
}

function checkChar(str,set){

    if(!str||str.length==0||!set||set.length==0)return false;

    var i;
    for(i=0;i<str.length;i++){
      if(set.indexOf(str.charAt(i))==-1){
        return false;
      }
    }

    return true;

}

function IsEnglish(str){

	return checkChar(str,"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ");

}

//检查输入数字是否为整型数字（不包含小数点），返回真假
function IsNumber(num){

	return checkChar(num,"0123456789");

}

//检查输入Email地址是否正确，返回真假
function CheckEmail(item)
{
    var etext
    var elen
    var i
    var aa
    etext=item
    elen=etext.length
    if (elen<5)
      return false;
    i= etext.indexOf("@",0)
    if (i==0 || i==-1 || i==elen-1)
       return false;
    else
    {
      if (etext.indexOf("@",i+1)!=-1)
	return false;
    }
    if (etext.indexOf("..",i+1)!=-1)
	return false;
    i=etext.indexOf(".",0)
    if (i==0 || i==-1 || etext.charAt(elen-1)=='.')
	return false;
    if ( etext.charAt(0)=='-' ||  etext.charAt(elen-1)=='-')
	return false;
    if ( etext.charAt(0)=='_' ||  etext.charAt(elen-1)=='_')
	return false;
    for (i=0;i<=elen-1;i++)
    {
      aa=etext.charAt(i)
      if (!((aa=='.') || (aa=='@') || (aa=='-') ||(aa=='_') || (aa>='0' && aa<='9') || (aa>='a' && aa<='z') || (aa>='A' && aa<='Z')))
	return false;
    }
    return true;
}

//检查输入字符串是否有空格（包括中英文空格），返回真假
function HasSpace(item)
{
  var aa;
  for (i=0;i<=item.value.length-1;i++)
  {
    aa=item.value.charAt(i);
    //处理半角和全角
    if (aa==' '||aa=='　')
    {
      return true;
    }
  }
  return false;
}

//检查输入字符串是否为空(都是空格也为空），返回真假
function IsNull(item)
{
  var aa,num=0;
  for (i=0;i<=item.value.length-1;i++)
  {
    aa=item.value.charAt(i);
    if (aa==' ')
    {
      num++;
    }
  }
  if(item.value.length==num)
    return true;
  else
    return false;
}

function IsDate(num)
{
 var i,j,strTemp;
 strTemp="0123456789";
 if ( num.length == 0)
   return false;
 for(i=0;i<num.length;i++)
 {
   j = strTemp.indexOf(num.charAt(i));
   if (j==-1)
    {  //说明有字符不是数字
       return false;
    }
 }
 if(num < 1900 || num > 2050)
 	return false;
 return true;
}

//检查输入的字符串是否在最小长度内，返回真假
function checkMinLength(str,minlength)
{
  if(str==null)return false;
  if(minlength<=0)return true;

  var count=0;
  for(var i=0;i<str.length;i++)
  {
    count += escape(str.charAt(i)).indexOf("%u")==-1? 1:2;
  }

  return count>=minlength?true:false;
}

//检查输入的字符串是否在最大长度内，返回真假
function checkMaxLength(str,maxlength)
{
  if(str==null||!maxlength||maxlength<=0)return true;
//  var count=0;
//  for(var i=0;i<str.length;i++)
//  {
//    count += escape(str.charAt(i)).indexOf("%u")==-1? 1:2;
//  }
//
//  return count<=maxlength?true:false;
return str.length<=maxlength?true:false;
}

//让页面不能返回？
function backDisable()
{
	self.location=self.location+"#";
}

//自动关闭窗口，用法：<BODY onLoad=closeself(2)>
function closeself(t)
{
	setTimeout("closeself_timer()",t*1000);
}
function closeself_timer()
{
	self.close();
}
