//显示错误信息
function showErrorMessage(errorMessage){
	span = document.createElement("SPAN"); 
	span.innerHTML = errorMessage; 
	errorMessage = span.innerText; 
	alert(errorMessage); 
}


// 检查（必填）文本框的值是否已经填写
// param 被检查的文本框的值
// return:  没有填写返回false，已经填写的返回true
function checkRequired(param){
	var jud = param.replace(/^\s+|\s+$/g,'');
	if(jud=='')return false;
	else return true;
}

//检查两个日期（YYYY-MM-DD）格式是否符合前后顺序
//第一个参数为早一些的日期，第二个参数是晚一些的日期
//return:如果第一参数表示的时间晚于第二个参数表示的时间返回false
//       如果第一参数表示的时间早于第二个参数表示的时间返回true
function  checkTwoDateTurn(bef ,aft){	
	var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/; 
	var r = bef.match(reg); 	
	var b_date= new Date(r[1], r[3]-1,r[4]);
	var t = aft.match(reg);
	var a_date = new Date(t[1],t[3]-1,t[4]);
	if(b_date.getTime()>a_date.getTime())
		return false;
	else return true;
}

//检查日期格式正确
//第一个参数为字符串表示的时间
//第二个参数为类型：
//    参数值为1：  验证时间符合（YYYY-MM-DD）格式
//    参数值为2：  验证时间符合（HH:MM:SS）格式
//    参数值为3：  验证时间符合（YYYY-MM-DD HH:MM）格式
//    参数值为4：  验证时间符合（YYYY-MM-DD HH:MM:SS）格式
//return: 如果参数不符合格式要求，返回false，符合要求则返回true

function checkDateFormat(param,tp){
	switch(tp){
		case 1:
			return isDate(param);
		case 2:
			return isTime(param);
		case 3:
			return isDateTimeWithoutSecond(param);
		case 4:
			return isDateTimeWithSecond(param);
	}
}

//检查浮点数
//第一个参数为需要验证的数，第二个参数为数据总位数
//第三个参数为小数点后的位数
//如数据库要求数据格式为NUMBER(8,2)则验证时调用checkDouble(**,8,2)
//return:如果参数不是符合要求的浮点数返回false，符合要求则返回true
function checkDouble(param,blength,alength){
	var str = param;
	var reg = /^[-|+]?\d+(\.\d+)?$/;	
	if((blength==3)&&(alength==1))return double21(param);
	if((blength==4)&&(alength==2))return double22(param);
	if((blength==4)&&(alength==1))return double31(param);
	if((blength==5)&&(alength==2))return double32(param);
	if((blength==5)&&(alength==1))return double41(param);
	if((blength==6)&&(alength==2))return double42(param);
	if((blength==6)&&(alength==1))return double51(param);
	if((blength==7)&&(alength==2))return double52(param);
	if((blength==8)&&(alength==3))return double53(param);
	if((blength==7)&&(alength==1))return double61(param);	
	if((blength==8)&&(alength==2))return double62(param);
	if((blength==10)&&(alength==4))return double64(param);
	if((blength==9)&&(alength==2))return double72(param);
	if((blength==9)&&(alength==1))return double81(param);
	if((blength==10)&&(alength==2))return double82(param);
	if((blength==10)&&(alength==1))return double91(param);
	
	else return reg.test(str);		
}


//检查整形数
//参数为需要验证的数据，要求是大于0
//return:如果不是符合要求的整形数据返回false，符合要求则返回true
function checkInteger(param){
    
	var str = param ;
	var reg = /^[-|+]?\d+$/;
	if(reg.test(str)) return (4294967296-param>0);
	else return false;
}
//检查整形数
//参数为需要验证的数据，要求是大于0
//return:如果不是符合要求的整形数据返回false，符合要求则返回true
function checkInt(param){
    
	var str = param ;
	var regex=/[0-9]/;
	if(regex.test(str)) return (4294967296-param>0);
	else return false;
}


//检查整形数(带位数限制的)
//参数为需要验证的数据，要求是大于0
//return:如果不是符合要求的整形数据返回false，符合要求则返回true
function checkInteger(param,n){
	var str = param ;
	var reg = /^[-|+]?\d+$/;
	if(reg.test(str)) return (param.toString().length<=n);
	else return false;
}


//检查字串长度
//输入的参数长度不得大于指定值
//第一个参数为需要验证的参数，第二个是指定的长度
//注意：这个方法区别对待了中文和英文的区别，将中文
//直接作为两个字节处理了！！！不需要再考虑中文的双
//字节问题
//return:如果字符长度超过限制，则返回false，没有超过限制返回true
function checkStringLength(param,leng){
	var str = param ;	
	var i,sum;
 	sum=0;
 	for(i=0;i<str.length;i++)
 	{
  		if ((str.charCodeAt(i)>=0) && (str.charCodeAt(i)<=255))
   			sum=sum+1;
  		else
   			sum=sum+2;
 	}
 	return sum<=leng;	
}

//检查邮编书写是否符合要求
//return:符合邮编书写要求返回true，否则返回false
function checkPostCard(param){
	var reg =  /^[0-9]{6}$/;

	var str = param ;
//	alert(reg.test(str));
	return reg.test(str);
}

function checkNumber(param){
	var reg =  /^\d{8}$/;
	var str = param ;
	return reg.test(str);
}

function checkNumber1(param){
	var reg =  /^[a-z]{1}\d{8}$/;
	var str = param ;
	return reg.test(str);
}

function checkChinese(param){
	var reg =  /^[^\u4e00-\u9fa5]{0,}$ /;
	var str = param ;
	return reg.test(str);
}

//检查电话号码
//　　(1)电话号码由数字、"("、")"和"-"构成
//　　(2)电话号码为3到8位
//　　(3)如果电话号码中包含有区号，那么区号为三位或四位
//　　(4)区号用"("、")"或"-"和其他部分隔开
//　　(5)移动电话号码为11或12位，如果为12位,那么第一位为0
//　　(6)11位移动电话号码的第一位和第二位为"13"
//　　(7)12位移动电话号码的第二位和第三位为"13"
//return:不符合上述电话号码要求的返回false，符合要求返回true
function checkTeleNumber(param){
	var str=param;
	var reg=/(^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,11}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/	
	return reg.test(str);
}

//只允许字母、数字类输入
//return:输入了字母、数字以外的其他字符返回false，否则返回true。
function checkAscii(param){
	var str = param;
	var reg = /[^0-9a-zA-Z]/g;
	return reg.test(str);
}


//短时间，形如 (13:04:06)
function isTime(str)
{
	var a = str.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/);
	if (a == null) {alert('输入的参数不是时间格式'); return false;}
	if (a[1]>24 || a[3]>60 || a[4]>60)
	{
		return false
	}
	return true;
}

//短日期，形如 (2003-12-05)
function isDate(str)
{
	var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/); 
	if(r==null)return false; 
	var d= new Date(r[1], r[3]-1, r[4]); 
	return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
}


//长时间1，形如 (2003-12-05 13:04:06)
function isDateTimeWithSecond(str)
{
	var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/; 
	var r = str.match(reg); 
	if(r==null)return false; 
	var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]); 
	return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]);
}

//长时间2，形如 (2003-12-05 13:04)
function isDateTimeWithoutSecond(str)
{
	var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2})$/; 
	var r = str.match(reg); 
	if(r==null)return false; 
	var d= new Date(r[1], r[3]-1,r[4],r[5],r[6]); 
	return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]);
}
//(3,1)型double数据
function double21(param){
	var str = param;
	var reg = /^([-|+]?\d{1,2}(\.\d{0,1})?)|(\d{1,2}(\.\d{0,1})?)$/;	
	return reg.test(param);
}	
	
//(4,2)型double数据
function double22(param){
	var str = param;
	var reg = /^(([-|+]?\d{1,2}(\.\d{0,2})?)|(\d{1,2}(\.\d{0,2})?))$/;	
	return reg.test(param);
}	

//(4,1)型double数据
function double31(param){
	var str = param;
	var reg = /^(([-|+]?\d{1,3}(\.\d{0,1})?)|(\d{1,3}(\.\d{0,1})?))$/;	
	return reg.test(param);
}	
	
//(5,2)型double数据
function double32(param){
	var str = param;
	var reg = /^(([-|+]?\d{1,3}(\.\d{0,2})?)|(\d{1,3}(\.\d{0,2})))$/;	
	return reg.test(param);
}	

//(5,1)型double数据
function double41(param){
	var str = param;
	var reg = /^(([-|+]?\d{1,4}(\.\d{0,1})?)|(\d{1,4}(\.\d{0,1})?))$/;	
	return reg.test(param);
}	

//(6,2)型double数据
function double42(param){
	var str = param;
	var reg = /^(([-|+]?\d{1,4}(\.\d{0,2})?)|(\d{1,4}(\.\d{0,2})?))$/;	
	return reg.test(param);
}	


//(6,1)型double数据
function double51(param){
	var str = param;
	var reg = /^(([-|+]?\d{1,5}(\.\d{0,1})?)|(\d{1,5}(\.\d{0,1})?))$/;	
	return reg.test(param);
}

//(7,2)型double数据
function double52(param){
	var str = param;
	var reg = /^(([-|+]?\d{1,5}(\.\d{0,2})?)|(\d{1,5}(\.\d{0,2})?))$/;	
	return reg.test(param);
}	
	
//(8,3)型double数据
function double53(param){
	var str = param;
	var reg = /^(([-|+]?\d{1,5}(\.\d{0,3})?)|(\d{1,5}(\.\d{0,3})?))$/;	
	return reg.test(param);
}	

//(7,1)型double数据
function double61(param){
	var str = param;
	var reg = /^(([-|+]?\d{1,6}(\.\d{0,1})?)|(\d{1,6}(\.\d{0,1})?))$/;	
	return reg.test(param);
}	
//(8,2)型double数据
function double62(param){	
	var str = param;
	var reg = /^(([-|+]?\d{1,6}(\.\d{0,2})?)|(\d{1,6}(\.\d{0,2})?))$/
	var res = reg.test(param);
	return res;
}	

//(10,4)型double数据
function double64(param){
	var str = param;
	var reg = /^(([-|+]?\d{1,6}(\.\d{0,4})?)|(\d{1,6}(\.\d{0,4})?))$/;	
	return reg.test(param);
}	

//(9,2)型double数据
function double72(param){
	var str = param;
	var reg = /^(([-|+]?\d{1,7}(\.\d{0,2})?)|(\d{1,7}(\.\d{0,2})?))$/;	
	return reg.test(param);
}	


//(9,1)型double数据
function double81(param){
	var str = param;
	var reg = /^(([-|+]?\d{1,8}(\.\d{0,1})?)|(\d{1,8}(\.\d{0,1})?))$/;	
	return reg.test(param);
}	

//(10,2)型double数据
function double82(param){
	var str = param;
	var reg = /^(([-|+]?\d{1,8}(\.\d{0,2})?)|(\d{1,8}(\.\d{0,2})?))$/;	
	return reg.test(param);
}	


//(10,1)型double数据
function double91(param){
	var str = param;
	var reg = /^(([-|+]?\d{1,9}(\.\d{0,1})?)|(\d{1,9}(\.\d{0,1})?))$/;	
	return reg.test(param);
}	

//将浮点数拼接到指定的小数位数
function transNumber(sou,lg){		
	sou=sou.toString();
	var loca = sou.indexOf(".");		
	//带小数数据
	if(loca>0){
		//小数点前数据
		var b = sou.substring(0,loca);			
		//小数点后数据
		var a = sou.substring(loca+1);			
		if(a.length<lg){
			var alength = a.length;
			for(i=0 ;i<lg-alength;i++){
				a=a+"0";					
			}				
			return b+"."+a;
		}else return sou;
	}else {
		var sufix="";
		for(i=0;i<lg;i++)
			sufix="0"+sufix
		return sou+"."+sufix;
	}	
}
//将浮点数截断到指定的小数位数
function transNumber2(sou,lg){		
	sou=sou.toString();
	var loca = sou.indexOf(".");		
	//带小数数据
	if(loca>0){
		//小数点前数据
		var b = sou.substring(0,loca);			
		//小数点后数据
		var a = sou.substring(loca+1);			
		if(a.length>lg){
			return b+"."+a.substring(0,lg);
		}else return sou;
	}else {
		var sufix="";
		for(i=0;i<lg;i++)
			sufix="0"+sufix
		return sou+"."+sufix;
	}	
}
/**
*验证码
**/
var code ; //在全局 定义验证码   
function createCode(obj)   
{  
	code = "";   
	var codeLength = 4;//验证码的长度   
	  
	var selectChar = new Array(0,1,2,3,4,5,6,7,8,9);//所有候选组成验证码的字符，当然也可以用中文的   
	           
	for(var i=0;i<codeLength;i++)   
	{         
	           
		var charIndex = Math.floor(Math.random()*10);   
		code +=selectChar[charIndex];   
	}   
	   
	if(obj)   
	{   
		obj.className="code";   
		obj.value = code;   
	}   
}   




