//----------------------------------------//
// 目的:公用验证脚本                      //
// 创建:郭红丽                            //
// 时间:2004/9/15                         //
//----------------------------------------//
// *使用说明:
// *检查合法年月checkdateym(chkstr)
// *检查合法年月日checkdate(chkstr)
// *验证输入为数字和小数点,且小数后位数限制在2位checkdigit(value)
// *验证合法EMAIL地址checkemail(mail)
// *验证输入为合法的整数checknumber(value)
// *验证输入为0~9和字母checknumoralpha(value)
// *验证六位密码checkpasswd(chkstr)
// *字符串长度strLength( str )
// *验证字符串是否为空isEmpty(inputStr)
// *清空SELECT对象clear(o)
// *验证Email格式是否包含且唯一包含@,并不在第一个字符isMail(inputStr)
// *检查CHECK是否有选中项，有返回TRUE，无为FALSE   checkItem( field )
// *清除全部空格trimAll(str)
// *字符串转为日期变量convertToDate(chkstr)


//检查合法年月
function checkdateym(chkstr){
	var re=new RegExp("^[0-9]{4}[-]{1}[0-9]{1,2}$");
	if (!re.test(chkstr)){
		return false;
	}
	var yyyy=parseInt(chkstr.substring(0,4));
	var mm=parseInt(chkstr.substring(5,7));
	if (yyyy>2100||yyyy<1900){
		alert("年份超过允许范围（1901-2099）");
		return false;
	}
	if (mm>12||mm<1){
		alert("非法的月份");
		return false;
	}
	return true;
}


//检查合法年月日
function checkdate(chkstr){
	var re=new RegExp("^[0-9]{4}[-]{1}[0-9]{1,2}[-]{1}[0-9]{1,2}$");
	if (!re.test(chkstr)){
          	alert("非法的日期格式");
		return false;
	}
	var yyyy=parseInt(chkstr.substring(0,4));
	var dash1=chkstr.indexOf("-");
	var dash2=chkstr.indexOf("-",5);
	var mm=parseInt(chkstr.substring(dash1+1,dash2),10);
	var dd=parseInt(chkstr.substring(dash2+1),10);
	if (yyyy>2100||yyyy<1900){
		alert("年份超过允许范围（1901-2099）");
		return false;
	}
	if (mm>12||mm<1){
		alert("非法的月份");
		return false;
	}
	if (dd>31||dd<1){
		alert("非法的日期");
		return false;
	}
	if(dd==31&(mm==2||mm==4||mm==6||mm==9||mm==11)){
		alert("非法的日期");
		return false;
	}
	if(mm==2&&dd>29){
		alert("非法的日期");
		return false;
	}
	if(mm==2&&dd>28&&yyyy%4!=0){
		alert("非法的日期，输入的年份不是闰年");
		return false;
	}
	return true;
}

//验证输入为数字和小数点,且小数后位数限制在2位
function checkdigit(value) {
	strValue = value.toString();
	for (var i = 0; i < strValue.length; i++) {
		var oneChar = strValue.charAt(i);
		if ((oneChar < "0" || oneChar > "9") && oneChar != ".")
			return false;
	}
	strTemp = strValue.substr(strValue.indexOf(".") + 1);
	if (strTemp.length > 2) return false;
	return true;
}



//验证合法EMAIL地址
function checkemail(mail){
/*
  var strr;
  re=/(\w+@\w+\.\w+)(\.{0,1}\w*)(\.{0,1}\w*)/i;
  re.exec(mail);
  if (RegExp.$3!=""&&RegExp.$3!="."&&RegExp.$2!=".") strr=RegExp.$1+RegExp.$2+RegExp.$3
  else
    if (RegExp.$2!=""&&RegExp.$2!=".") strr=RegExp.$1+RegExp.$2
    else  strr=RegExp.$1
  if (strr!=mail) {return false;}
*/
  return true;
}


//验证输入为0~9且为合法的整数
function checknumber(str) {
    if(str.length > 0)
    {
        for (i=0;i<str.length;i++)
            if ((str.charAt(i)<'0' || str.charAt(i)>'9'))
                return false;
        return true;
    }
    return false;
}


//验证输入为0~9和字母
function checknumoralpha(value) {
	strValue = value.toString();
	for (var i = 0; i < strValue.length; i++) {
		var oneChar = strValue.charAt(i);
		if ((oneChar < "0" || oneChar > "9") && (oneChar < "a" || oneChar > "z") && (oneChar < "A" || oneChar > "Z"))
			return false;
	}
	return true;
}


//验证六位密码
function checkpasswd(chkstr){
	var re=new RegExp("[A-Za-z0-9]{6,}");
	var re1=new RegExp("[^A-Za-z0-9]");

	return re.test(chkstr) && (!re1.test(chkstr))
}

//字符串长度
function strLength( str )
{
    var retVal = 0;
	var len = str.length;
	for(var i = 0; i < len; i++)
	{
		var ch = str.charCodeAt(i);
		if(ch > 255)//全角
		{
			retVal+=2;
		}
        else
        {
            retVal ++;
        }
	}
	return retVal;
}


//验证字符串是否为空
function isEmpty(inputStr)
{
  if(inputStr == null || lTrim(inputStr) == "")
  { return true; }
  else
  { return false; }
}
function validLength(obj,length,message){
  alert(obj.value);
  if((trimAll(obj.value)!='')&&strLength(trimAll(obj.value))>length){
  try{
    alert(message+"长度太长，请重新输入！");
    obj.focus();
  }catch(e){
  }
  return false;
  }
  return true;
}
//清空SELECT对象
//function clear(o){
//  l=o.length;
//  for (i = 0; i < l; i ++){
//    o.options[0]=null;
//  }
//}
//辅助函数
function lTrim(str)
{
  var j,result="";
  if(str == ""){return result;}

  j = str.length;
  for (i = 0;i < j; i++){
      if (str.charAt(i)!=' ' ){
          break;
      }
  }
  if (i != j){
    result = str.substring(i,j);
  }
  return result;
}

//检查Email
function isMail(inputStr)
{
  var onePoint=false;
  var oneA=false;
  var pointCount=0;
  for(var i=0;i<inputStr.length;i++)
  {
    oneChar=inputStr.charAt(i);

    //字符 @ 存在并唯一，并且不是第一个字符时，EMail 地址有效
    if(oneChar=="@")
    {
      if(i>0 && !oneA) { oneA=true; continue; }
      else return false;
    }

    if(oneChar==".")
    {
      if(i>0 && !(inputStr.charAt(i-1)==".")) { pointCount=pointCount+1; continue; }
      else return false;
    }
  }
  if(pointCount>0 && oneA==true)  return true;
  else return false;
}


//检查CHECK是否有选中项，有返回TRUE，无为FALSE
function checkItem( field ){
  var txtChk = document.getElementsByName(field);
  for(var i=0;i<txtChk.length;i++){
    if ( txtChk[i].checked == true ){
 	return true;
        break;
    }
  }
  return false;
}


//清除全部空格
function trimAll(strValue)
{
	strValue=strValue+"";
	var objRegExp = /^(\s*)$/;
	if(objRegExp.test(strValue))
	{
		strValue = strValue.replace(objRegExp, '');
		if(strValue.length == 0)	return strValue;
	}

	objRegExp = /^(\s*)([\W\w]*)(\b\s*$)/;
	if(objRegExp.test(strValue))
	{
		strValue = strValue.replace(objRegExp, '$2');
	}
	return strValue;
}



//设定select 的值

function setDefaultValue(o,value){
  if(o != null)
    l=o.length;
  else
    l = 0;

  for (i = 0; i < l; i ++){
    if(o.options[i].value==value){
	o.selectedIndex=i;
        break;
    }
  }
}
// *字符串转为日期变量convertToDate(chkstr)
function convertToDate(chkstr){


       var yyyy=parseInt(chkstr.substring(0,4));
	var dash1=chkstr.indexOf("-");
	var dash2=chkstr.indexOf("-",5);
	var mm=parseInt(chkstr.substring(dash1+1,dash2),10)-1;
	var dd=parseInt(chkstr.substring(dash2+1),10);
       return new Date(yyyy,mm,dd);


}


