// JavaScript Document
/*
输入字段检验V1.2
作者：黄平
使用说明：
在需要检检验的字段加入属性

notnull
------------------------------------------
notnull=true             该字段不能为空

缺省值为不验证，或可以为空值
==========================================
msg

msg="检验没通过后的提示信息的主语"

缺省值为“该值”
===========================================

check
------------------------------------------
check=email		该字段为空电子邮件地址
check=date		该字段为日期类型
check=num		该字段只能输入数字
============================================

max			需和check一起使用

max			该字段的值不能大于max如果check=num,max的值请输入数字.
============================================

min			需和check一起使用

min			该字段的值不能小于min如果check=date,min的值请输入合法的日期.

=========================================
notnull和check可以同时使用。
*/
//document.writeln("<iframe id='addupfile'  frameborder='0'  style='position:absolute; width:550px; height:310; z-index:3; display:none; top: 381px; left: 31px; overflow: hidden; background-color: #99CCCC; layer-background-color: #99CCCC; border: 1px none #000000;'></iframe>");
var idstring="";
function ClearAll()
{
	with(document.forms[0]){
		for(var i=0;i<elements.length;i++){
			if(elements[i].type!="text" && elements[i].type!="select-one" &&
			elements[i].type!="checkbox" && elements[i].type!="Radio" &&
			elements[i].type!="textarea" && elements[i].type!="password"){
				continue;
			}
			else{
				elements[i].value="";
			}
		}
	}
}
function Check(obj)//检测验证当前指定的控件
{
	//alert(obj.attributes["notnull"].nodeValue);
		if(obj.getAttribute("msg")=="undefined"){obj.getAttribute("msg")="该值";}
		if(obj.getAttribute("notnull")=="undefined"){obj.getAttribute("notnull")=false;}
        if(obj.getAttribute("notnull")){
            if(CheckNull(obj)!=true){
                alert(obj.getAttribute("ErrorMessage"))
                obj.focus();
                if(obj.type!="select-one")obj.select();
                return false;
            }
  		}
        if(obj.check!="undefined"){
            if(CheckNull(obj)){
                if(CheckValue(obj)!=true){

                alert(obj.getAttribute("ErrorMessage"))
                obj.focus();
                if(obj.type!="select-one")obj.select();
                return false;
             	}
            }
        }	
        return true;
	
}
function CheckForm(obj)//检测验证指定的FORM内的所有控件
{

for(var v1=0;v1<obj.length;v1++){  	
     with(obj){
         for(var i=0;i<elements.length;i++){
             if(elements[i].type!="text" && elements[i].type!="select-one" &&
                elements[i].type!="checkbox" && elements[i].type!="Radio" &&
                elements[i].type!="textarea" && elements[i].type!="password")continue;
				if(elements[i].getAttribute("msg")=="undefined"){elements[i].getAttribute("msg")="该值";}
				if(elements[i].getAttribute("notnull")=="undefined"){elements[i].getAttribute("notnull")="false";}				
               	if(elements[i].getAttribute("notnull")=="true"){
               		if(CheckNull(elements[i])!=true){
                	  	alert(elements[i].getAttribute("ErrorMessage"))
                  		elements[i].focus();
                  		if(elements[i].type!="select-one")elements[i].select();
                  		return false;
             		}
  				}
                if(elements[i].getAttribute("check")!="undefined"){
                	if(CheckNull(elements[i])){
                		if(CheckValue(elements[i])!=true){
                	  	alert(elements[i].getAttribute("ErrorMessage"))
                  		elements[i].focus();
                  		if(elements[i].type!="select-one")elements[i].select();
                  		return false;
             			}
             		}
             	}
             }
        }
     }
     
    // return confirm("确定保存吗？");
	return true;
}
function CheckAll()// 检测验证当前页所有控件
{
   for(var v1=0;v1<document.forms.length;v1++){  	
     with(document.forms[v1]){
         for(var i=0;i<elements.length;i++){
             if(elements[i].type!="text" && elements[i].type!="select-one" &&
                elements[i].type!="checkbox" && elements[i].type!="Radio" &&
                elements[i].type!="textarea" && elements[i].type!="password")continue;
				if(elements[i].getAttribute("msg")=="undefined"){elements[i].getAttribute("msg")="该值";}
				if(elements[i].getAttribute("notnull")=="undefined"){elements[i].getAttribute("notnull")=false;}
               	if(elements[i].getAttribute("notnull")==true){
               		if(CheckNull(elements[i])!=true){
                	  	alert(elements[i].getAttribute("ErrorMessage"))
                  		elements[i].focus();
                  		if(elements[i].type!="select-one")elements[i].select();
                  		return false;
             		}
  				}
                if(elements[i].getAttribute("check")!="undefined"){
                	if(CheckNull(elements[i])){
                		if(CheckValue(elements[i])!=true){
                	  	alert(elements[i].getAttribute("ErrorMessage"))
                  		elements[i].focus();
                  		if(elements[i].type!="select-one")elements[i].select();
                  		return false;
             			}
             		}
             	}
             }
        }
     }
     return true;
     //return confirm("确定保存吗？");

}
//-----------------------------------------------------------------------------

function CheckValue(obj)//检测控件的值
{
	if(obj.value.indexOf("'")>=0){
		obj.setAttribute("ErrorMessage",obj.getAttribute("msg")+"里不能有 ' 号");
		return false
	}
	if(obj.value.indexOf('"')>=0){
		obj.setAttribute("ErrorMessage",obj.getAttribute("msg")+'里不能有 " 号');
		return false
	}
	if(obj.getAttribute("check")=="email"){
		return IsMail(obj);
	}
	if(obj.getAttribute("check")=="date"){
		if(IsDate(obj)==false) return false
		
		if(obj.getAttribute("max")!=undefined){
			if(datemax(obj)==false) return false
		}
		if(obj.getAttribute("min")!=undefined){
			if(datemin(obj)==false) return false
		}
		return true;
	}
	if(obj.getAttribute("check")=="num"){
		if(IsNum(obj)==false) return false
		if(obj.getAttribute("max")!="undefined"){
			
			if(nummax(obj)==false) return false
		}
		if(obj.getAttribute("min")!="undefined"){
			if(nummin(obj)==false) return false
		}
	}
	return true;
}
//-----------------------------------------------------------------------------
function datemax(obj){
	var temp=buildate(obj.value);
	var max=buildate(obj.getAttribute("max"));
	if(temp>max){
		obj.setAttribute("ErrorMessage",obj.getAttribute("msg")+"超出最大日期"+obj.getAttribute("max"));
		return false		
	}
	return true	
}
//-------------------------------------------------------------------------------
function datemin(obj){

	var temp=buildate(obj.value);
	var min=buildate(obj.getAttribute("min"));
	
	if(temp<min){
		obj.setAttribute("ErrorMessage",obj.getAttribute("msg")+"超出最小日期"+obj.getAttribute("min"));
		return false		
	}
	else{
	
	return true
	}
}
//------------------------------------------------------------------------------
function buildate(str){// 传入 (yyyy-mm-dd)返回日期类型
	var tempdate=str
	var count=tempdate.indexOf("-");
	if(count<0){
		obj.setAttribute("ErrorMessage",obj.getAttribute("msg")+"非法日期格式\n请参照(yyyy-mm-dd)");
		return false;
	}
		var year=Number(tempdate.substring(0,count));
		tempdate=tempdate.substring(count+1);
		var count=tempdate.indexOf("-");
	if(count<0){
		obj.setAttribute("ErrorMessage",obj.getAttribute("msg")+"非法日期格式\n请参照(yyyy-mm-dd)");
		return false;
	}
	var month=Number(tempdate.substring(0,count));
	tempdate=tempdate.substring(count+1)
	var day=Number(tempdate);
	//alert(year+"-"+month+"-"+day);
	return new Date(parseInt(year,10),parseInt(month,10)-1,parseInt(day,10));
}
//----------------------------------------------------------------------
function nummax(obj){
	var temp=Number(obj.value);
	if(obj.getAttribute("max") != null){
		var max=Number(obj.getAttribute("max"));
		if(max<temp){
			obj.setAttribute("ErrorMessage",obj.getAttribute("msg")+"超出最大值"+obj.getAttribute("max"));
			return false
		}
	}else{
		return true
	}
}
//-----------------------------------------------------------------------------
function nummin(obj){
	var temp=Number(obj.value);
	if(obj.getAttribute("min") != null){
		var min=Number(obj.getAttribute("min"));
		if(min>temp){
			obj.setAttribute("ErrorMessage",obj.getAttribute("msg")+"该值超出最小值"+obj.getAttribute("min"));
			return false
		}
	}else{
		return true	
	}
}
//---------------------------------------------------------------------------
function IsMail(obj){//检测值是否为电子邮件地址^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$

	var re=/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/
    if(re.test(obj.value)){
        return true;
    }else{
		obj.setAttribute("ErrorMessage",obj.getAttribute("msg")+"非法的电子邮件地址");
        return false;
    }
	return true 
}

//---------------------------------------------------------------------------
function CheckNull(obj){//检测值是否为空

	if(obj.value==""){
		obj.setAttribute("ErrorMessage",obj.getAttribute("msg")+"不能为空");
		return false
	}
	//alert(obj.value.indexOf("'"));   测试用
	if(obj.value.indexOf("'")>=0){
		obj.setAttribute("ErrorMessage",obj.getAttribute("msg")+"里不能有 ' 号");
		return false
	}
	if(obj.value.indexOf('"')>=0){
		obj.setAttribute("ErrorMessage",obj.getAttribute("msg")+'里不能有 " 号');
		return false
	}
	return true 
}
//-----------------------------------------------------------------------------
function IsNum(obj){
	if(isNaN(obj.value)){
		obj.setAttribute("ErrorMessage",obj.getAttribute("msg")+"只能为数字");
		return false	
	}
	return true;
}
//-----------------------------------------------------------------------------
function IsDate(obj){//检测值是否为日期型
	var tempdate=obj.value;
	var count=tempdate.indexOf("-");
	if(count<0){
		obj.setAttribute("ErrorMessage",obj.getAttribute("msg")+"非法格式。(yyyy-mm-dd)");
		return false;
	}
	var year=Number(tempdate.substring(0,count));
	if(year<100 && year>30){
		year=year+1900
	}
	else if(year<30 && year>=0){
		year=year+2000
	}
	tempdate=tempdate.substring(count+1);
	var count=tempdate.indexOf("-");
	if(count<0){
		obj.setAttribute("ErrorMessage",obj.getAttribute("msg")+"非法格式。(yyyy-mm-dd)");
		return false;
	}
	
	var month=Number(tempdate.substring(0,count));
	tempdate=tempdate.substring(count+1)
	var day=Number(tempdate);
	obj.value=year+"-"+month+"-"+day;

	//alert(year+"-"+month+"-"+day);
	if(year<1900 || year>2200){
		obj.setAttribute("ErrorMessage",obj.getAttribute("msg")+"不是个合法的日期,年份超出范围");
		return false;
	}
	if(month<1 || month>12){
		obj.setAttribute("ErrorMessage",obj.getAttribute("msg")+"不是个合法的日期，月份超出范围");
		return false;
	}
	if(month==1||month==3||month==5||month==7||month==8||month==10||month==12){
		if(day<1 || day>31){
			obj.setAttribute("ErrorMessage",obj.getAttribute("msg")+"不是合法的日期，日子超出范围");
			return false;
		}
	}
	else{
		if(day<1 || day>30){
			obj.setAttribute("ErrorMessage",obj.getAttribute("msg")+"不是合法的日期，日子超出范围");
			return false;
		}
		if(month==2){
			if(((year%4==0) || (year%400==0)) && (year%100!=0)){
				if(day<1 || day>29){
					obj.setAttribute("ErrorMessage",obj.getAttribute("msg")+"不是合法的日期,日子超出范围");
					return false;
				}
			}
			else{
				if(day<1 || day>28){
					obj.setAttribute("ErrorMessage",obj.getAttribute("msg")+"不是合法的日期,日子超出范围");
					return false;	
				}
			}
		}
	}
	

	return true
	}
//-------------------------------------------------------------------------------------------*/

	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, "");}
