/*
 * /validate/base.js 表单验证的一些基本方法
 * @author: 林刘炜
 * @date:  2007-05-20
 */
var status_left = "form_notice_left";
var status_join = "form_notice_join";
var status_error = "form_notice_error";
var status_ok = "form_notice_ok";
var status_hide = "form_notice_hide;";
var validateInfo_ok = "OK";
var validateInfo_vCodeEmpty = "Please enter the Validate Code.";
var validateInfo_vCodeNotNubmer = "Please enter the number.";
var validateInfo_vCodeValid = "Validate Code is invalid.";
var validateInfo_notEnglish = "Sorry, the information you filled is not in English. Please enter in English instead.";
var errorFieldName = "";
/*
 *验证通过
 *@param element - 字段提示元素
 *@param info - 字段提示信息
 */
function setValidateOK(element, info) {
	if (info == undefined || info == "") {
		element.innerHTML = validateInfo_ok;
	} else {
		element.innerHTML = info;
	}
	element.className = status_ok;
}
/*
 *验证取消,掩藏字段提示元素
 *@param element - 字段提示元素
 */
function setValidateCancel(element) {
	element.innerHTML = "";
	element.className = status_hide;
}
/*
 *验证错误
 *@param element - 提示元素
 *@param info - 提示信息
 *@param fieldName - 字段名
 */
function setValidateError(element, info, fieldName) {
	element.innerHTML = info;
	element.className = status_error;
	if (errorFieldName == "") {
		errorFieldName = fieldName;
	}
}
function initValidateError() {
	errorFieldName = "";
}
function isValidateError(form) {
	var validate = true;
	if (errorFieldName != "") {
		validate = false;
		try {
			form.elements[errorFieldName].focus();
		}
		catch (e) {
			return validate;
		}
	}
	return validate;
}
/*
 *取得字段提示元素
 *@param fieldName - 表单字段名
 */
function getFieldNotice(fieldName) {
	var notice = document.getElementById(fieldName + "_notice");
	return notice;
}
/*
 *焦点离开
 *@param field - 表单字段
 */
function focus_left(field) {
	eval("validate_" + field.name + "()");
}
/*
 *焦点进入
 *@param obj - 表单字段
 */
function focus_join(field) {
	var notice = getFieldNotice(field.name);
	if (notice.innerHTML != "") {
		notice.className = status_join;
	}
}
/**
 * 去掉字符串左边的空格
 *
 * @param str 带处理的字符串变量
 * @return string
 */
function toLeftTrim(str) {
	var whitespace = " \t\n\r";
	if (whitespace.indexOf(str.charAt(0)) != -1) {
		var j = 0, i = str.length;
		while (j < i && whitespace.indexOf(str.charAt(j)) != -1) {
			j++;
		}
		str = str.substring(j, i);
	}
	return str;
}
/**
 * 去掉字符串右边的空格
 *
 * @param str 带处理的字符串变量
 * @return string
 */
function toRightTrim(str) {
	var whitespace = " \t\n\r";
	if (whitespace.indexOf(str.charAt(str.length - 1)) != -1) {
		var i = str.length - 1;
		while (i >= 0 && whitespace.indexOf(str.charAt(i)) != -1) {
			i--;
		}
		str = str.substring(0, i + 1);
	}
	return str;
}
/**
 * 去掉字符串两边的空格
 *
 * @param str 带处理的字符串变量
 * @return string
 */
function toTrim(str) {
	return toRightTrim(toLeftTrim(str));
}
/**
 * 去掉表单文本框值两边的空格
 *
 * @param form 表单元素
 * @param fields 用逗号隔开的字段名
 */
function form_text_to_trim(form, fields) {
	var array = fields.split(",");
	for (var i = 0; i < array.length; i++) {
		var e = form.elements[array[i]];
		if (e) {
			e.value = toTrim(e.value);
		}
	}
}
/*
 *验证字符串是否为空,忽略空格
 *@param str - 被验证的字符串
 *@return boolean - true为空
 */
function isEmpty(str) {
	if ((str == null) || (toTrim(str).length == 0)) {
		return true;
	} else {
		return false;
	}
}
function isNotEmpty(str) {
	return isEmpty(str) ? false : true;
}
/*
 *验证字符串是否小于最小长度,忽略空格
 *@param str - 被验证的字符串
 *@param length - 最小长度
 *@return boolean - true小于最小长度
 */
function minLength(str, length) {
	if (!isEmpty(str)) {
		if (toTrim(str).length < length) {
			return true;
		} else {
			return false;
		}
	}
	return false;
}
/*
 *验证字符串是否超过最大长度,忽略空格
 *@param str - 被验证的字符串
 *@param length - 最大长度
 *@return boolean - true超过最大长度
 */
function maxLength(str, length) {
	if (!isEmpty(str)) {
		if (toTrim(str).length > length) {
			return true;
		} else {
			return false;
		}
	}
	return false;
}
/*
 *验证字符串的长度范围,忽略空格
 *@param str - 被验证的字符串
 *@param minLength - 最小长度
 *@param maxLength - 最大长度
 *@return boolean - true在许可的范围内
 */
function isLength(str, minLength, maxLength) {
	if (!isEmpty(str)) {
		var tmp = toTrim(str);
		if (tmp.length > maxLength || tmp.length < minLength) {
			return false;
		} else {
			return true;
		}
	}
	return false;
}
/*
 *正则表达式验证
 *@param pattern - 正则模式
 *@param str - 被验证的字符串
 *@return boolean - 返回true表示正确匹配
 */
function regExp(pattern, str) {
	str = toTrim(str);
	if (pattern.test(str)) {
		return true;
	} else {
		return false;
	}
}
/*
 *验证字符串是否全由整数组成
 *@param str - 被验证的字符串
 *@return boolean
 */
function isNumber(str) {
	var pattern = /^[\-]?[\d]+$/;
	return regExp(pattern, str);
}
/*
 *验证Email
 *@param str - 被验证的字符串
 *@return boolean 
 */
function isEmail(str) {
	var pattern = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
	return regExp(pattern, str);
}
/*
 *验证网站URL
 *@param str - 被验证的字符串
 *@return boolean 
 */
function isURL(str) {
	str = str.toLowerCase();
	var pattern = /[\w]+:\/\/[^\s]*/;
	return regExp(pattern, str);
}
/*
 *验证中国邮政编码
 *@param str - 被验证的字符串
 *@return boolean 
 */
function isPostCode(str) {
	var pattern = /[1-9]\d{5}(?!\d)/;
	return regExp(pattern, str);
}
/*
 *验证电话号码,传真号码
 *@param str - 被验证的字符串
 *@return boolean 
 */
function isTelePhone(str) {
	var pattern = /^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
	return regExp(pattern, str);
}
/*
 *验证字符串是否为英文
 *@param str - 被验证的字符串
 *@return boolean 
 */
function isEnglish(str) {
	return false;
}
/*
 *验证字符串是否为中文
 *@param str - 被验证的字符串
 *@return boolean 
 */
function isChinese(str) {
	var pattern = /^(\u4E00-\u9FA5|\uFE30-\uFFA0)*$/;
	if (isEmpty(str)) {
		return false;
	}
	if (pattern.test(toTrim(str))) {
		return true;
	}
	return false;
}
/*
 *验证是否选中了复选框
 *@param box_name - 复选框name
 *@return boolean - 选中了返回true
 */
function isChecked(box_name) {
	var box = document.getElementsByName(box_name);
	for (var i = 0; i < box.length; i++) {
		if (box[i].type == "checkbox" && box[i].checked) {
			return true;
		}
	}
	return false;
}
/**
 * 从上传文件的路径中提取文件名
 * @param path - 上传文件的路径
 */
function getUploadFileName(path) {
	var fileName = "";
	var len = path.length;
	if (len <= 0) {
		return "";
	}
	var start = path.lastIndexOf("/");
	if (start >= 0) {
		fileName = path.substring(start + 1);
	}
	var start2 = path.lastIndexOf("\\");
	if (start2 >= 0) {
		fileName = path.substring(start2 + 1);
	}
	return fileName;
}
/**
 * 检测一个字符串中是否包含中文字符
 * @param str - 字符串
 */
function checkChineseChar(str) {
	var flag = false;
	for (i = 0; i < str.length; i++) {
		var char = str.charCodeAt(i);
		if (char > 256 && !isOkChar(char)) {
			flag = true;
			break;
		}
	}
	return flag;
}
var checkOk = new Array();
checkOk[0] = "12288";
checkOk[1] = "8364";
function isOkChar(ch) {
	for (j = 0; j < checkOk.length; j++) {
		if (ch == checkOk[j]) {
			return true;
		}
	}
	return false;
}


