﻿//'*********************************************************
// ' Purpose: 判断输入是否为整数字
// ' Inputs:   String
// ' Returns:  True, False
//'*********************************************************
function onlynumbernew(str,altstr)
{
	str=CStr(str);
	pattern=/^[0-9]*$/;
	if(!str.match(pattern)){
		return (altstr+"项只能输入数字\n");
	}
	return "";
}
//'*********************************************************
// ' 由于该方法存在一个问题，js认为空格和0是相等的，即 ' '==0，所以该方法废弃，
// ' 以后不推荐使用，可使用上面的方法onlynumbernew替代。
// ' Purpose: 判断输入是否为整数字
// ' Inputs:   String
// ' Returns:  True, False
//'*********************************************************
function onlynumber(str,altstr)
{
var i,strlength,tempchar;
        str=CStr(str);
        if(str=="") return "";
        strlength=str.length;
        for(i=0;i<strlength;i++)
        {
                tempchar=str.substring(i,i+1);
                if(!(tempchar==0||tempchar==1||tempchar==2||tempchar==3||tempchar==4||tempchar==5||tempchar==6||tempchar==7||tempchar==8||tempchar==9))
                {
                return (altstr+"项只能输入数字\n");
                }
        }
        return "";
}
//'*********************************************************


//'*********************************************************
// ' Purpose: 判断输入是否为数值(包括小数点)
// ' Inputs:   String
// ' Returns:  True, False
//'*********************************************************
function isfloat(str,altstr)
{
var tmp, temp, i;
var xflag = true;
        tmp =str;
        for(i=0;i<tmp.length;i++)
        {
                temp=tmp.substring(i,i+1);
                if((temp>='0'&& temp<='9')||(temp=='.')){} //check input in 0-9 and '.'
                else
                {
                        alert(altstr + "项只能输入数字和小数点");
                        xflag = false;
                        break;
                }
        }
        return xflag;
}



//'*********************************************************
// ' Purpose: 判断输入是否为电话号码
// ' Inputs:   String
// ' Returns:  True, False
//'*********************************************************
function isphonenumber(str,stralt)
{
   var i,strlengh,tempchar;
   var xflag = true;

   str=CStr(str);
   strlength=str.length;
   for(i=0;i<strlength;i++)
   {
        tempchar=str.substring(i,i+1);
        if(!(tempchar==0||tempchar==1||tempchar==2||tempchar==3||tempchar==4||tempchar==5||tempchar==6||tempchar==7||tempchar==8||tempchar==9||tempchar=='-'||tempchar==','||tempchar==" "||tempchar=="，"))
        {
        return (stralt+"只能输入数字、逗号和中划线"+"\n");
        
        }
   }
   return "";
}
//'*********************************************************

//'*********************************************************
// ' Purpose: 判断输入是否为Email
// ' Inputs:   String
// ' Returns:  True, False
//'*********************************************************
function isemail(emailStr,altstr)
{

	var  bflag;
               if (emailStr.length == 0) {
                    bflag=true;
					if (! bflag) return (altstr + "项填写不正确！"+"\n");
				    else return "";
               }
               var emailPat=/^(.+)@(.+)$/;
               var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
               var validChars="\[^\\s" + specialChars + "\]";
               var quotedUser="(\"[^\"]*\")";
               var ipDomainPat=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/;
               var atom=validChars + '+';
               var word="(" + atom + "|" + quotedUser + ")";
               var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
               var domainPat=new RegExp("^" + atom + "(\\." + atom + ")*$");
               var matchArray=emailStr.match(emailPat);
               if (matchArray == null) {
                   bflag=false;
				   if (! bflag) return (altstr + "项填写不正确！"+"\n");
				    else return "";
               }
               var user=matchArray[1];
               var domain=matchArray[2];
               if (user.match(userPat) == null) {
                   bflag=false;
               }
               var IPArray = domain.match(ipDomainPat);
               if (IPArray != null) {
                   for (var i = 1; i <= 4; i++) {
                      if (IPArray[i] > 255) {
                         bflag=false;
						 if (! bflag) return (altstr + "项填写不正确！"+"\n");
					    else return "";
                      }
                   }
                   bflag=true;
				   if (! bflag) return (altstr + "项填写不正确！"+"\n");
				    else return "";
               }
               var domainArray=domain.match(domainPat);
               if (domainArray == null) {
                   bflag=false;
               }
               var atomPat=new RegExp(atom,"g");
               var domArr=domain.match(atomPat);
               var len=domArr.length;
               if ((domArr[domArr.length-1].length < 2) ||
                   (domArr[domArr.length-1].length > 3)) {
                   bflag=false;
               }
               if (len < 2) {
                   bflag=false;
				   if (! bflag) return (altstr + "项填写不正确！"+"\n");
				    else return "";
               }
               bflag=true;
	
    if (! bflag) return (altstr + "项填写不正确！"+"\n");
    else return "";
}

//'*********************************************************
// ' Purpose: 判断输入是否为为合法密码
// ' Inputs:   String
// ' Returns:  True, False
//'*********************************************************
function isvalidpassword(password,patternnum,altstr){
  
  //alert("1");
  var i,tempchar;
  var upperMatch=false;
  var lowerMatch=false;
  var numMatch=false;
  var matchNum=0;
  var upperPat=new RegExp("^[A-Z]+$");
  var lowerPat=new RegExp("^[a-z]+$");
  var numPat=new RegExp("^[0-9]+$");
  var otherPat=new RegExp("^[^A-Za-z0-9]+$");
  //alert("2");
  for(i=0;i<password.length;i++)
   {
        tempchar=password.substring(i,i+1);
		//alert("upper:"+tempchar.match(upperPat));
        if(!upperMatch && tempchar.match(upperPat)!=null){
          upperMatch=true;
        }
        
		//alert("lower:"+tempchar.match(lowerPat));
        if(!lowerMatch && tempchar.match(lowerPat)!=null){
          lowerMatch=true;
        }
        
		//alert("number:"+tempchar.match(numPat));
        if(!numMatch && tempchar.match(numPat)!=null){
          numMatch=true;
        }
        
        if(tempchar.match(otherPat)!=null){
          alert(altstr);
          return false;
        }
        
   }
   
   //alert("3");
   
   if(upperMatch){
     matchNum++;
   }
   
   if(lowerMatch){
     matchNum++;
   }
   
   if(numMatch){
     matchNum++;
   }
   
   //alert(upperMatch+","+lowerMatch+","+numMatch+","+patternnum);
   
   if(matchNum<patternnum){
     alert(altstr);
     return false;
   }else{
     return true;
   
   }
   
   
}



//'*********************************************************
// ' Purpose: 判断输入是否含有为中文
// ' Inputs:   String
// ' Returns:  True, False
//'*********************************************************
function isenglish(str,altstr)
{
  var xflag= true;
  if(escape(str).indexOf("%u")!=-1)
  {
    alert (altstr + "项不可以有中文！");
    xflag = false;
  }
  return xflag;
}
//'*********************************************************


//'*********************************************************
// ' Purpose: 判断输入是否含有空格
// ' Inputs:   String
// ' Returns:  True, False
//'*********************************************************
function checkblank(str)
{
var strlength;
var k;
var ch;
strlength=str.length;
for(k=0;k<=strlength;k++)
  {
     ch=str.substring(k,k+1);
     if(ch==" ")
      {
      alert("对不起　不能输入空格　");
      return false;
      }
  }
return true;
}
//'*********************************************************




//'*********************************************************
// ' Purpose: 去掉Str两边空格
// ' Inputs:   Str
// ' Returns:  去掉两边空格的Str
//'*********************************************************
function trim(str)
{
    var i,strlength,t,chartemp,returnstr;
    str=CStr(str);
    strlength=str.length;
    t=str;
    for(i=0;i<strlength;i++)
    {
        chartemp=str.substring(i,i+1);
        if(chartemp==" ")
        {
            t=str.substring(i+1,strlength);
        }
        else
        {
               break;
        }
    }
    returnstr=t;
    strlength=t.length;
    for(i=strlength;i>=0;i--)
    {
        chartemp=t.substring(i,i-1);
        if(chartemp==" ")
        {
            returnstr=t.substring(i-1,0);
        }
        else
        {
            break;
        }
    }
    return (returnstr);
}

//'*********************************************************


//'*********************************************************
// ' Purpose: 将数值类型转化为String
// ' Inputs:   int
// ' Returns:  String
//'*********************************************************
function CStr(inp)
{
    return(""+inp+"");
}
//'*********************************************************


//'*********************************************************
// ' Purpose: 去除不合法字符,   ' " < >
// ' Inputs:   String
// ' Returns:  String
//'*********************************************************
function Rep(str)
{var str1;
str1=str;
str1=replace(str1,"'","`",1,0);
str1=replace(str1,'"',"`",1,0);
str1=replace(str1,"<","(",1,0);
str1=replace(str1,">",")",1,0);
return str1;
}
//'*********************************************************

//'*********************************************************
// ' Purpose:  替代字符
// ' Inputs:   目标String,欲替代的字符,替代成为字符串,大小写是否敏感,是否整字代替
// ' Returns:  String
//'*********************************************************
function replace(target,oldTerm,newTerm,caseSens,wordOnly)
{ var wk ;
  var ind = 0;
  var next = 0;
  wk=CStr(target);
  if (!caseSens)
   {
      oldTerm = oldTerm.toLowerCase();
      wk = target.toLowerCase();
    }
  while ((ind = wk.indexOf(oldTerm,next)) >= 0)
  {
         if (wordOnly)
              {
                var before = ind - 1;
                var after = ind + oldTerm.length;
                  if (!(space(wk.charAt(before)) && space(wk.charAt(after))))
                    {
                      next = ind + oldTerm.length;
                       continue;
                   }
          }
     target = target.substring(0,ind) + newTerm + target.substring(ind+oldTerm.length,target.length);
     wk = wk.substring(0,ind) + newTerm + wk.substring(ind+oldTerm.length,wk.length);
     next = ind + newTerm.length;
     if (next >= wk.length) { break; }
  }
  return target;
}


//'*********************************************************
// ' Purpose:  判断输入字串是否为合法日期
// ' Inputs:   String,objname
// ' Returns:  String
//'*********************************************************
function CheckDate(str,altstr)
{
        var temp,s;

        temp=str;
        s=new String("");

        for(var i=0;i<=temp.length-1;i++)
        {
                if(temp.charAt(i)=="-" || temp.charAt(i)=="/")
                        s=s+"/";
                else
                {

                        if(isNaN(Number(temp.charAt(i))))
                        {
                                alert("在" + altstr +"中输入的日期格式不对，应为（YYYY-MM-DD）");
                                return false;
                        }
                        else
                                s=s+temp.charAt(i);
                }
        }
        d=new Date(s);
        if(d.toString()=="NaN")
        {
                alert("在" + altstr +"中输入的日期格式不对，应为（YYYY-MM-DD）")
                return false;
        }

        arydate = s.split("/");

        if(d.getFullYear()!=arydate[0] || d.getMonth()+1!=arydate[1] || d.getDate()!=arydate[2])
        {
                alert(altstr + "项数据不正确！");
                return false;
        }



        return true  ;

}

function checkNull(value,alt){

	if (trim(value)==""){
	  return (alt+"不能为空\n");
	}
	return "";
}

function checkMaxLen(value,len,alt){
	if (value.length>len){
	  return (alt+"的长度不能超过"+len+"\n");
	}
	return "";
}

function checkMinLen(value,len,alt){
	if (value.length<len){
	  return (alt+"的长度不能小于"+len+"\n");
	}
	return "";
}

function ifcheck(objname,objalt){
var xobj;
var selflag = false;
        if (objname != ''){

                xobj = document.all.item(objname);
                if(xobj!=null){
                        for(j=0;j<xobj.length;j++)
                        {
                                if(xobj(j).checked){  selflag=true; break;   }
                        }
                        if (! selflag){  alert(objalt+" 未被填写!");   }

                }
         }
         return selflag;
}

function loopcheck (group,l){

        var xname = "";
        var xalt = "";
        var xtype = "";
        var xneed = "";
        var ifallok = true;
        var xobj ;

        for (ip=0;ip<l;ip++)
        {

                xname = group[ip][0];
                xalt  = group[ip][1];
                xtype = group[ip][2];
                xneed = group[ip][3];

                //alert (xname+":"+xalt+":"+xtype+":"+xneed);

                //---------checkbox & radio 类控件检查
                 if ("checkbox"==xtype)
                 {
                        if ("yes" == xneed)
                        {
                            ifallok = ifcheck(xname,xalt);

                        }

                }
                //---------text & textarea & file 等类控件检查
                else
                {
                        xobj=document.all.item(xname);
                        //-----测试不为空的要求是否被满足
                        if ("yes" == xneed && ""==trim(xobj.value))
                        {
                                alert(xalt+"项不可为空！");
                                ifallok = false;
                                break;
                        }
                        xobj.value= Rep(trim(xobj.value));


                        //-----测试特别要求是否满足
                        if ("tel"==xtype)
                        { //-----电话号码------
                                if (""!= xobj.value)  ifallok = isphonenumber(xobj.value,xalt)  ;
                        }
                        else if("email"==xtype)
                        { //-----电子邮件地址----
                                if (""!= xobj.value) ifallok = isemail(xobj.value,xalt);
                        }
                        else if("float"==xtype)
                        { //-----整数或小数-------
                                if (""!= xobj.value) ifallok = isfloat(xobj.value,xalt);
                        }
                        else if("int"==xtype)
                        { //-----整数字--------
                                if (""!= xobj.value) ifallok = onlynumber(xobj.value,xalt)  ;
                        }
                        else if("eng"==xtype)
                        { //-----没有汉字------
                                if (""!= xobj.value) ifallok = isenglish(xobj.value,xalt);
                        }
                        else if("date"==xtype)
                        { //-----日期-----------
                                if (""!= xobj.value) ifallok = CheckDate(xobj.value,xalt);
                        }
                        else{
                          //-----xtype默认为text-------
                                ifallok = true;
                        }
                }
                if (! ifallok){
                        break;
                }

        }
        return  ifallok;

}

//级联下拉框
function qswhXml(num,xmldata,arrSel,param){

var i,arrTemp=[],arrTemp1=[];
for(i=0;i<num;i++){
arrTemp[i]=document.all(arrSel[i]).options[document.all(arrSel[i]).selectedIndex].text
arrTemp1[i]=document.all(arrSel[i]).options[document.all(arrSel[i]).selectedIndex].value
}
if(num==arrSel.length){//这里处理最后的数据。
//alert(param);
return;
}

with(document.all(arrSel[num])){
length=0
length1=0
length2=0
var obj=xmldata.XMLDocument.childNodes[0];
for(i=0;i<num;i++){
  obj=obj.selectSingleNode(arrSel[i]+'[@text="'+arrTemp[i]+'"]');
}
for(i=0;i<obj.childNodes.length;i++){
  options[length++].text=obj.childNodes[i].getAttribute("text");
  options[length1++].value=obj.childNodes[i].getAttribute("value");
  options[length2++].selected=obj.childNodes[i].getAttribute("selected");
}
onchange=new Function("qswhXml("+(num+1)+","+param+",\""+param+"\")");
onchange();
}

}
//注册修改时使用，没有alert，zp           
function isDateString(sDate)
{ 
	var iaMonthDays = [31,28,31,30,31,30,31,31,30,31,30,31]
	var iaDate = new Array(3)
	var year, month, day
	
	if (arguments.length != 1) return false
	if (sDate.length == 0) return false
	if (sDate.length != 8) return false
	
	iaDate[0] = sDate.substring(0,4)
	iaDate[1] = sDate.substring(4,6)
	iaDate[2] = sDate.substring(6)
	
	
	year = parseFloat(iaDate[0])
	month = parseFloat(iaDate[1])
	day=parseFloat(iaDate[2])
	
	if (year < 1900) return false
	if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) iaMonthDays[1]=29;
	if (month < 1 || month > 12) return false
	if (day < 1 || day > iaMonthDays[month - 1]) return false
	return true
} 

//'*********************************************************
// ' Purpose: 判断输入是否为为合法密码
// ' Inputs:   String
// ' Returns:  True, False
//'*********************************************************
function isvalidpasswordforReg(password,patternnum){
  
  //alert("1");
  var i,tempchar;
  var upperMatch=false;
  var lowerMatch=false;
  var numMatch=false;
  var matchNum=0;
  var upperPat=new RegExp("^[A-Z]+$");
  var lowerPat=new RegExp("^[a-z]+$");
  var numPat=new RegExp("^[0-9]+$");
  var otherPat=new RegExp("^[^A-Za-z0-9]+$");
  //alert("2");
  for(i=0;i<password.length;i++)
   {
        tempchar=password.substring(i,i+1);
		//alert("upper:"+tempchar.match(upperPat));
        if(!upperMatch && tempchar.match(upperPat)!=null){
          upperMatch=true;
        }
        
		//alert("lower:"+tempchar.match(lowerPat));
        if(!lowerMatch && tempchar.match(lowerPat)!=null){
          lowerMatch=true;
        }
        
		//alert("number:"+tempchar.match(numPat));
        if(!numMatch && tempchar.match(numPat)!=null){
          numMatch=true;
        }
        
        if(tempchar.match(otherPat)!=null){
         	return false;
        }
        
   }
   
   //alert("3");
   
   if(upperMatch){
     matchNum++;
   }
   
   if(lowerMatch){
     matchNum++;
   }
   
   if(numMatch){
     matchNum++;
   }
   
   //alert(upperMatch+","+lowerMatch+","+numMatch+","+patternnum);
   
   if(matchNum<patternnum){
     return false;
   }else{
     return true;
   
   }
 }

function checkMaxLenChAndEn(str,len,alt){
	var totalCount = 0;  
	for (var i=0; i<str.length; i++) {  
 		var c = str.charCodeAt(i);  
    	if ((c >= 0x0001 && c <= 0x007e) || (0xff60<=c && c<=0xff9f)) {  
  			totalCount++;  
    	}else {     
   			totalCount+=3;  
  		}  
	}
	if (totalCount>len){
	  return (alt+"的长度不能超过"+len+"\n");
	}
	return "";
}