
var vtypename=[
		[1,'整数','int'],
		[31,'正整数','pint'],
		[2,'长整数','long'],
		[32,'正长整数','plong'],
		[3,'浮点数','float'],
		[33,'正浮点数','pfloat'],
		[4,'日期','date'],
		[14,'生日','birthday'],
		[15,'日期时间','datetime'],
		[17,'已逝日期','datelast'],
		[5,'时间','time'],
		[6,'电子邮箱','email'],
		[7,'ip地址','ip'],
		[8,'URL','url'],
		[9,'全中文','chinese'],
		[10,'CHINESEIN','chinesein'],
		[11,'双字节','doublechar'],
		[16,'部分双字节','doublecharin'],
		[12,'邮政编码','postcode'],
		[13,'字符串','string'],
		[20,'大文本(CLOB)','clob'],
		[21,'大二进制数据','blob']
		];


 function timecheck(begintime,endtime,form,actionUrl,str){
     
	 var beginTime = document.getElementById(begintime);
	 var endTime = document.getElementById(endtime);
	 if (typeof actionUrl != "undefined" && actionUrl != "") {
        form.action = actionUrl;
     }
     if(endTime.value >=beginTime.value || endTime.value==''){
     	 
          form.submit();
      }
      else{
        	alert(str);
          return;
       }
 }

function IsIdCard(str)	//验证身份证号，15位或者18位，最后一位可以为x
{
	var len = str.length;
	if(len==15){
		var reg=/^([1-9]{0,1})?(\d){1,13}((\d)|x)?$/
		return reg.test(str);
	}else if(len==18){
		var reg=/^([1-9]{0,1})?(\d){1,16}((\d)|x)?$/
		return reg.test(str);
	}else
	return false;
}
	
function IsMobel(str)	//手机号码验证
{ 
 	var reg0 = /^13\d{9}$/;
    var reg1 = /^15\d{9}$/;
    var reg2 = /^18\d{9}$/;

    return (reg0.test(str)||reg1.test(str)||reg2.test(str));
}

function isMobile(str){return IsMobel(str);}

function isNickname(str){ //注册允许字符：数字 英文 下划线 汉字 . - _
	//var reg0 = /^([A-Za-z0-9_-.])|([\u4e00-\u9fa5])$/;
	//var patrn=/^(\w+)|([\u0391-\uFFE5]+)$/;
	var patrn=/^[-.a-zA-Z0-9_\u4e00-\u9fa5]+$/;
	var aaa=/\s/;
    if(patrn.exec(str)) {
       	if (aaa.exec(str)){
	     return false;
       }
	   return true;
	}
	return false;
}

function isValiEmail(str){ //验证邮箱：首先验证格式合法性，其次验证是否有特殊字符
	if(isEmail(str)){
		if(isNickname(str.split('@')[0]) && isNickname(str.split('@')[1])){
			return true;
		}else{
			return false;
		}
	}else{
		return false;
	}
}

function isValidateEmail(str){return isValiEmail(str);}

function isPhone(v)	//座机的验证
{
	if (v.match(/^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/)==null) return false;
	else return true;
}
		
function isTel(s)
{
	var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
	if (!patrn.exec(s)) return false;
	return true;
}

function isTelDigit(s){
	var patrn=/^[0-9]{10,20}$/;
	if (!patrn.exec(s)) return false;
	return true;
}

//sunpu 验证电话号码．区号3-4位，电话号7-8位
function IsTel(fortel, lastel){
	var reg1 = /^\d{3,4}$/;
	var reg2 = /^\d{7,8}$/;
	return (reg1.test(fortel) && reg2.test(lastel));
		
}
	
function isDigit(s) // 数字号码的验证
{
	var patrn=/^[0-9]{1,40}$/;
	if (!patrn.exec(s)) return false;
	return true;
}

function ve_isValidate( el )
{
	var r = true;
	var s = "";
	var mtype;
	var type;
	var value;
	var nep;	// not empty

	type = toNonNull(el.datatype).toLowerCase();
	value = toNonNull(el.value).toLowerCase();
	nep = toNonNull(el.notEmpty).toLowerCase();
	if( !isBlank( nep ) && nep.toLowerCase()=="yes" || !isBlank( value ) && !isBlank( type ) )
	{
		r = ve_isValidateLengthString( value, el.minlength );

		r = r && ve_isValidate( type, value );
	}

	return r;
}

function ve_isSame(type1,type2)  //判断两个类型是否可进行大小比较
{
  var ve_flag=true;
  if(type1==type2) //类型一致，可以
	  return ve_flag;
  if(type1=="1"||type1=="2"||type1=="3"||type1=="31"||type1=="32"||type1=="33")//type1是数值
	{
		if(type2=="1"||type2=="2"||type2=="3"||type2=="31"||type2=="32"||type2=="33")
			 ve_flag=true;
		else
             ve_flag=false; 
        return ve_flag;
	}
  else if(type1=="4"||type1=="5"||type1=="14"||type1=="15"||type1=="17")//日期
	{
	  if(type2=="4"||type2=="5"||type2=="14"||type2=="15"||type2=="17")
		  ve_flag=true;
	  else
		  ve_flag=false;

	  return ve_flag;
	}
  else //字符串
	{
	  if(type2=="1"||type2=="2"||type2=="3"||type2=="31"||type2=="32"||type2=="33"||type2=="4"||type2=="5"||type2=="14"||type2=="15"||type2=="17")
          ve_flag=false;
       else
		  ve_flag=true;

      
	  return ve_flag;

	}
   
}
function ve_isValidateValue( type, value )//type是数值型的代表某种数据类型，value是值.判断value是不是有效的type类型值
{
	var r = true;
	var s = "";
	var mtype;
	if( isNull(type) ){
		mtype="";
	}else{
		mtype = getNameByType(type);
	}

	if( mtype == "email" )
	{
		r = isEmail( value );
	}else if( mtype=="date" ){
		r = isDate( value );
	}else if( mtype=="datelast" ){
		r = isDatelast( value );
	}else if( mtype=="birthday" ){
		r = isDate( value );
	}else if( mtype == "time" ){
		r = isTime( value );
	}else if( mtype == "postcode" ){
		r = isPostcode( value );
	}else if( mtype == "int" ){
		r = isInt( value );
	}else if( mtype == "long" ){
		r = isInt( value );
	}else if( mtype == "float" ){
		r = isFloat( value );
	}else if( mtype == "pint" ){
		r = isPInt( value );
	}else if( mtype == "plong" ){
		r = isPInt( value );
	}else if( mtype == "pfloat" ){
		r = isPFloat( value );
	}else if( mtype == "double" ){
		r = isDouble( value );
	}else if( mtype == "pdouble" ){
		r = isPFloat( value );
	}else if( mtype == "ip" ){
		r = isIp( value );
	}else if( mtype == "url" ){
		r = isUrl( value );
	}else if( mtype == "chinese" ){
		r = isAllChinese( value );
	}else if( mtype == "chinesein" ){
		r = isChineseIncluded( value );
	}else if( mtype == "allchinese" ){
		r = isAllChinese( value );
	}else if( mtype == "doublechar" ){
		r = isAllDoubleChar( value );
	}else if( mtype == "doublecharin" ){
		r = isDoubleCharIncluded( value );
	}else if( mtype == "alldoublechar" ){
		r = isAllDoubleChar( value );
	}else{
		r = !isNull( value );
	}

	return r;
}

function ve_isValidateLengthString( str, len )//判断str是否达到len所指定的长度
{
	var r = true;
	var l = "" + len;
	if( !isBlank(l) && trim(str).length<parseInt(l) )
	{
		errorCode = "\u957f\u5ea6\u6700\u5c11\u4e3a " + l + " !";
		r = false;
	}

	return r;
}

function isUrl( value )
{
	var p = /((\w+):\/\/)?[\w-]+(\.[\w-]+)*(:\d*)?(\/[^# ]*)*/;
	return verify( value, p );
}

function isAllChinese( value )
{
	var p = /^[\u4e00-\u9fa5]+$/;
	return verify( value, p );
}

function isChineseIncluded( value )
{
	var p = /[\u4e00-\u9fa5]+/;
	return verify( value, p );
}

function isAllDoubleChar( value )
{
	var p = /^[^\x00-\xff]+$/;
	return verify( value, p );
}

function isDoubleCharIncluded( value )
{
	var p = /[^\x00-\xff]+/;
	return verify( value, p );
}

function isIp( value )
{
	var p = /^(([01]{0,1}[0-9]{1,2})|(2([0-4]{1}[0-9]{1}|5[0-5]{1})))(\.(([01]{0,1}[0-9]{1,2})|(2([0-4]{1}[0-9]{1}|5[0-5]{1})))){3}$/;
	return verify( value, p );
}

function isDouble( value )
{
	return isFloat( value );
}

function isFloat( value )
{
	var p = /^(-{0,1}|\+{0,1})[0-9]+(\.{0,1}[0-9]+)$/;
	return (isInt(value) || verify( value, p ));
}

function isPFloat( value )
{
	var p = /^[0-9]+(\.{0,1}[0-9]+)$/;
	return (isInt(value) || verify( value, p ));
}

function isInt( value )
{
	var p = /^[\+-]?[0-9]{1,}$/;
	return verify( value, p );
}

function isPInt( value )
{
	var p = /^[0-9]{1,}$/;
	return verify( value, p );
}

function isBirthday( value )
{
	var p = /^[(19\d{2})|(200\d)]{1}(-\d{1,2}){2}$/;
	return ( isDate( value )  &&  verify( value, p ) );
}

function isDatelast( value )
{
	if( isDate( value ) ){
		var yy,mm,da
		var dd
		var vd, cd
		
		dd = value.split( "-" )
		yy = parseInt( dd[0] )
		mm = parseInt( dd[1] ) - 1
		da = parseInt( dd[2] )
		
		vd = new Date( yy, mm, da )

		if( SERVER_CURRENT_DATE || (SERVER_CURRENT_DATE == null) )
		{
			cd = new Date()
		}else{
			dd = SERVER_CURRENT_DATE.split( "-" )
			yy = parseInt( dd[0] )
			mm = parseInt( dd[1] ) - 1
			da = parseInt( dd[2] )
			
			cd = new Date( yy, mm, da );
		}
		
		//alert( "today:" + cd + "   you input:" + vd + "   " + ( vd > cd) )
		if( vd > cd ){
			return false
		}else{
			return true
		}
	}else{
		return false
	}
}

function isDate( value )
{
	var s = value;
	if( s.indexOf( "/" ) > 0 )
	{
		s = s.replace( "/", "-" );
		s = s.replace( "/", "-" );
	}

	var p = /^(0{0,1}[1-9]{1}|1[0-2]{1})-(0{0,1}[1-9]{1}|([12][0-9]){1}|30|31)-([1-2][0-9]{3})$/;
	if( verify( s, p ) )
	{
		var dd = s.split("-");
		s = dd[2] + "-" + dd[0] + "-" + dd[1];
	}

	return isDate1( s );
}

function isDate1( value )
{
	var p = /^([1-2][0-9]{3})-(0{0,1}[13578]|1[02])-(0{0,1}[1-9]|[1-2]{0,1}[0-9]|3[0-1]{1})$/
	if( verify( value, p ) )
	{
		return true;
	}

	var p = /^[1-2][0-9]{3}-(0{0,1}[469]|11)-(0{0,1}[1-9]|[1-2]{0,1}[0-9]|30)$/
	if( verify( value, p ) )
	{
		return true;
	}

	var p = /^[1-2][0-9]{3}-(0{0,1}2)-(0{0,1}[1-9]|[1-2]{0,1}[0-8])$/
	if( verify( value, p ) )
	{
		return true;
	}

	var p = /^[1-2][0-9]{3}-(0{0,1}2)-29$/
	if( verify( value, p ) )
	{
		var s = value.split( "-" );
		var y = parseInt( s );
		if( (0==y%4) && (0!=y%400) ){
			return true;
		}else{
			return false;
		}
	}
	
	return false;
}

function isEmail( value )
{
	//var p = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/; 
	var p =/^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
	return verify( value, p );
}

function isPostcode( value ){
	var p = /^[0-9]{6}$/;
	return verify( value, p );
}

function isTime( value ){
	var p = /^([01]{0,1}[0-9]|2[0-3])(:[0-5]?[0-9]){1,2}$/;
	return verify( value, p );
}

function verify( value, pattern ){
	return pattern.test( value );
}

function trim( value )
{
	return value.replace(/(^\s*)|(\s*$)/g, "");
}

function isNull(value)
{
  return ( (value==null) || (value.length==0) );
}

function isBlank( value )
{
	return (isNull( value ) || isNull( trim( value ) ));
}

function toNonNull( v )
{
	return ( isNull(v)?"":trim(v));
}

function getCNNameByType(type)
{
	var i=0;
	var r='';
	for( i=0; i<vtypename.length; i++ ){
		if(vtypename[i][0]=type){
			r=vtypename[i][1]
				break;
		}
	}
	return r;
}

function getCNNameBySType(type)
{
	var i=0;
	var r='';
	for( i=0; i<vtypename.length; i++ ){
		if((vtypename[i][0]+"")==type){
			r=vtypename[i][1]
				break;
		}
	}
	return r;
}

function getNameByType(type)
{
	var i=0;
	var r='';
	for( i=0; i<vtypename.length; i++ ){
		if(vtypename[i][0]==type){
			r=vtypename[i][2]
				break;
		}
	}
	return r;
}

//验证内部发行号格式为：2-01-002-A
function isValidateDistributionNo(distributionNo){
	var patrn=/^[0-9]{1,20}-[0-9]{1,20}-[0-9]{1,20}-[A-Z]{1,20}$/
	if (!patrn.exec(distributionNo)) return false;
	return true;	
}

