function formhandle(form,callback){
	
	if(typeof callback=='function'){
		var _ures = callback();
		if(!_ures)return false;
	}

	if(typeof form != 'object')
		var form = document.getElementById(form)
	var _elements = form.elements;
	if(!_elements.length)
	{
		return true;
	}else{
		for(var i=0; i<_elements.length; i++){
			var _element = _elements[i];
			//alert(_element.attributes["usrtype"].value);
			//return;
			
			if(_element.attributes["usrtype"]!=null)
			if(!_element.attributes["usrtype"].value){
					continue;
			}else{
				try{
					//alert("forms_function_"+_element.attributes["usrtype"].value+"(form,_element)");
					//return;
					var _rs = eval("forms_function_"+_element.attributes["usrtype"].value+"(form,_element)");
					if(!_rs) return false;
				}catch(e){
					alert("usrtype:'"+_element.attributes["usrtype"].value+"' is not implemented."+"\nMessage:"+e.message);
					return false;
				}
			}
		}
	}
	return true;
}

function forms_function_empty(form,element){
	var _message = element.attributes["message"].value;
	if(element.value == ''){
		try{
		element.focus();
		}catch(e){}
		if(_message)alert(_message);
		return false;
	}
	return true;
}

function forms_function_string(form,element){
	var _min_length = element.attributes["minlen"].value;
	var _max_length = element.attributes["maxlen"].value;
	var _message = element.attributes["message"].value;
	if(element.value.length>_max_length || element.value.length<_min_length){
		try{
		element.focus();
		}catch(e){}
		if(_message)alert(_message);
		return false;
	}
	return true;
}

function forms_function_int(form,element){
	
	if(element.attributes["empty"]!=null){
		var empty = element.attributes["empty"].value;
		if(empty=="true"){
			if(element.value=='' || element.value=='0'){
				element.value='0';
				return true;
			}	
		}		
	}	
	
	
	if(element.attributes["minlen"]!=null){
		var _min_length = element.attributes["minlen"].value-1;
	}else{
		var _min_length = 1-1;
	}

	if(element.attributes["maxlen"]!=null){
		var _max_length = element.attributes["maxlen"].value-1;
	}else{
		var _max_length = 11-1;
	}
	var _message = element.attributes["message"].value;
	var _int_reg = new RegExp('^[-\+]?[1-9][0-9]{'+_min_length+','+_max_length+'}$');
	if(!_int_reg.test(element.value)){
		try{
		element.focus();
		}catch(e){}
		if(_message)alert(_message);
		return false;
	}
	return true;
}

function forms_function_number(form,element){
	if(element.attributes["empty"]!=null){
		var empty = element.attributes["empty"].value;
		if(empty=="true"){
			if(element.value=='' || element.value=='0'){
				element.value='0';
				return true;
			}	
		}		
	}	
	
	if(element.attributes["minlen"]!=null){
		var _min_length = element.attributes["minlen"].value-1;
	}else{
		var _min_length = 1;
	}

	if(element.attributes["maxlen"]!=null){
		var _max_length = element.attributes["maxlen"].value-1;
	}else{
		var _max_length = 11;
	}
	var _message = element.attributes["message"].value;
	var _int_reg = new RegExp('^[0-9]{'+_min_length+','+_max_length+'}$');
	if(!_int_reg.test(element.value)){
		try{
		element.focus();
		}catch(e){}
		if(_message)alert(_message);
		return false;
	}
	return true;
}

function forms_function_float(form,element){
	if(element.attributes["empty"]!=null){
		var empty = element.attributes["empty"].value;
		if(empty=="true"){
			if(element.value=='' || element.value=='0'){
				element.value='0';
				return true;
			}	
		}		
	}	
	
	var _float_reg = /^[-\+]?\d+(\.\d+)?$/;
	var _message = element.attributes["message"].value;
	
	if(!_float_reg.test(element.value)){
		try{
		element.focus();
		}catch(e){}
		if(_message)alert(_message);
		return false;
	}
	return true;
}

//与其他表单对比，需要内容一致
function forms_function_confirm(form,element){
	var _require = element.attributes["require"].value;
	var _require_obj = form.elements[_require];
	//alert(form.elements[_require]);
	//return;
	var _message = element.attributes["message"].value;
	if(_require_obj.value != element.value){
		try{
		element.focus();
		}catch(e){}
		if(_message)alert(_message);
		return false;
	}
	return true;
}

//与其他表单对比，需要不能同时为空
function forms_function_confirm_empty(form,element){
	var _require = element.attributes["require"].value;
	var _require_obj = form.elements[_require];
	//alert(form.elements[_require]);
	//return;
	var _message = element.attributes["message"].value;
	if(_require_obj.value =="" && element.value==""){
		try{
		element.focus();
		}catch(e){}
		if(_message)alert(_message);
		return false;
	}
	return true;
}

/*
function forms_function_fckeditor(form,element){
	var _require = element.require;
	var _require_obj = form.elements[_require];
	var _message = element.message;
	alert(_require_obj.value)
	if(_require_obj.value == ''){
		//_require_obj.focus();
		if(_message)alert(_message);
		return false;
	}
	return true;
}
*/



function forms_function_ftp(form,element){
	var _regexp_string = "^ftp:\/\/.*";
	var _message = element.attributes["message"].value;
	var _regexp = new RegExp(_regexp_string);
	if(!_regexp.test(element.value)){
		try{
		element.focus();
		}catch(e){}
		if(_message)alert(_message);
		return false;
	}
	return true;
}

function forms_function_http(form,element){
	var _regexp_string = "^http:\/\/.*";
	var _message = element.attributes["message"].value;
	var _regexp = new RegExp(_regexp_string);
	if(!_regexp.test(element.value)){
		try{
		element.focus();
		}catch(e){}
		if(_message)alert(_message);
		return false;
	}
	return true;
}

function forms_function_https(form,element){
	var _regexp_string = "^https:\/\/.*";
	var _message = element.attributes["message"].value;
	var _regexp = new RegExp(_regexp_string);
	if(!_regexp.test(element.value)){
		try{
		element.focus();
		}catch(e){}
		if(_message)alert(_message);
		return false;
	}
	return true;
}

function forms_function_radio(form,element){
	var _message = element.attributes["message"].value;
	var element = form.elements[element.name];
	if(!element.length){
		if(!element.checked){
			if(_message)alert(_message);
			return false;
		}
	}else{
		var _checked = false;
		for(var i=0; i<element.length; i++){
			if(element[i].checked){ 
				_checked = true;
				break;
			}
		}
		if(!_checked){
			if(_message)alert(_message);
			return false;
		}
	}
	return true;
}

function forms_function_checkbox(form,element){
	var _message = element.attributes["message"].value;
	
	var element = form.elements[element.name];
	if(!element[0]){
		if(!element.checked){
			if(_message)alert(_message);
			return false;
		}
	}else{
		var _checked = 0;
		//默认至少选择1项
		var _require=1;
		if(element.attributes["require"]!=null){
			_require = element.attributes["require"].value;
		}
		
		for(var i=0; i<element.length; i++){
			if(element[i].checked){
				_checked++;
			}
		}
		if(_checked<_require){
			if(_message)alert(_message);
			return false;
		}
	}
	return true;
}

function forms_function_regexp(form,element){
	var _regexp_string = element.attributes["regexp"].value;
	var _message = element.attributes["message"].value;
	try{
	var _regexp = new RegExp(_regexp_string);
	}catch(e){alert(e.message)}

	if(!_regexp.test(element.value)){
		try{
		element.focus();
		}catch(e){}
		if(_message)alert(_message);
		return false;
	}
	return true;
}


function forms_function_range(form,element){
	
	if(element.attributes["empty"]!=null){
		var empty = element.attributes["empty"].value;
		if(empty=="true"){
			if(element.value=='' || element.value=='0'){
				element.value='0';
				return true;
			}	
		}		
	}
	
	//用正则判断是否是正整数
	var _message = element.attributes["message"].value;
	
	var _int_reg = new RegExp('^[1-9][0-9]{0,10}$');
	if(!_int_reg.test(element.value)){
		try{
		element.focus();
		}catch(e){}
		if(_message)alert(_message);
		return false;
	}
	
	var _min_value=0;
	if(element.attributes["minvalue"]!=null){
		_min_value = parseInt(element.attributes["minvalue"].value);
	}

	var _max_value=9999999;
	if(element.attributes["maxvalue"]!=null){
		_max_value = parseInt(element.attributes["maxvalue"].value);
	}
	
	var test_value=parseInt(element.value); 
	if(test_value<_min_value || test_value>_max_value ){
		try{
		element.focus();
		}catch(e){}
		if(_message)alert(_message);
		return false;
	}
	
	return true;
}

//以下开始为常用验证

function forms_function_email(form,element){
	if(element.attributes["empty"]!=null){
		var empty = element.attributes["empty"].value;
		if(empty=="true" && element.value=='')
			return true;
	}
	/*if(element.value=='')
		return true;*/
	
	var _mail_reg = /^\w+([-+.]\w+)*@\w+([-.]\\w+)*\.\w+([-.]\w+)*$/;
	var _message = element.attributes["message"].value;
	if(!_mail_reg.test(element.value)){
		try{
		element.focus();
		}catch(e){}
		if(_message)alert(_message);
		return false;
	}
	return true;
}

function forms_function_IDcard(form,element){	
	
	if(element.attributes["empty"]!=null){
		var empty = element.attributes["empty"].value;
		if(empty=="true" && element.value=='')
			return true;
	}
	
	
	/*if(element.value=='')
		return true;*/
	
	var _int_reg = new RegExp('^[0-9]{15}|[0-9]{18}$');

	if(!_int_reg.test(element.value)){
		try{
		element.focus();
		}catch(e){}
		alert("请输入正确的15位或18位身份证号");
		return false;
	}
	return true;
}



function forms_function_mobile(form,element){	
	
	if(element.attributes["empty"]!=null){
		var empty = element.attributes["empty"].value;
		if(empty=="true" && element.value=='')
			return true;
	}
	
	var _int_reg = new RegExp('^1[3-9][0-9]{9}$');
	if(!_int_reg.test(element.value)){
		try{
		element.focus();
		}catch(e){}
		alert("请输入正确的11位手机号码");
		return false;
	}
	return true;
}

function forms_function_tel(form,element){	
	
	if(element.attributes["empty"]!=null){
		var empty = element.attributes["empty"].value;
		if(empty=="true" && element.value=='')
			return true;
	}
	
	
	var _int_reg = new RegExp('^([0-9]{3,4}|[0-9]{3,4}-)?[0-9]{7,8}$');
	if(!_int_reg.test(element.value)){
		try{
		element.focus();
		}catch(e){}
		alert("请输入正确的电话号码");
		return false;
	}
	return true;
}

function forms_function_postCode(form,element){	
	
	if(element.attributes["empty"]!=null){
		var empty = element.attributes["empty"].value;
		if(empty=="true" && element.value=='')
			return true;
	}
	
	var _int_reg = new RegExp('^[0-9]{6}$');
	if(!_int_reg.test(element.value)){
		try{
		element.focus();
		}catch(e){}
		alert("请输入正确的6位邮编");
		return false;
	}
	return true;
}

