var langFlag = "Chinese";	//定义环境语言 Chinese or English

// 公共表单检查函数
function check_form(formName){
	var eles = formName.elements ;
	for(var i=0;i<eles.length;i++){
		//检查是否为空
		if(eles[i].not_null == "yes" && trim(eles[i].value) == ""){
			if(eles[i].r_name+"" != "undefined"){
				if(langFlag == "Chinese"){
					alert("'"+eles[i].r_name+"' 不能为空!");
				}else{
					alert("the '"+eles[i].r_name+"' can not be empty !");
				}
			}
			focus_to(eles[i]);
			return false;
		}
		//检查字段长度
		//检查字段长度
		if(eles[i].maxlen+"" != "undefined" && (chnLen(eles[i].value)*1 < eles[i].minlen*1)){
			if(eles[i].r_name+"" != "undefined"){
				if(langFlag == "Chinese"){
					alert("'"+eles[i].r_name+"' 处长度必须在"+eles[i].minlen+"个字符以上!");
				}else{
					alert("the value of '"+eles[i].r_name+"' is too longer !\n it should be no longer than "+eles[i].maxlen);
				}
			}
			focus_to(eles[i]);
			return false;
		}
		if(eles[i].maxlen+"" != "undefined" && (chnLen(eles[i].value)*1 > eles[i].maxlen*1)){
			if(eles[i].r_name+"" != "undefined"){
				if(langFlag == "Chinese"){
					alert("'"+eles[i].r_name+"' 处超过允许的长度("+eles[i].maxlen+"字符)!");
				}else{
					alert("the value of '"+eles[i].r_name+"' is too longer !\n it should be no longer than "+eles[i].maxlen);
				}
			}
			focus_to(eles[i]);
			return false;
		}
		//检查数据类型合法性
		if(eles[i].r_type == "int" && eles[i].value!=""){
			if(!isInt(eles[i].value)){
				if(eles[i].r_name+"" != "undefined"){
					if(langFlag == "Chinese"){
						alert("'"+eles[i].r_name+"' 处请使用整数数据!");
					}else{
						alert("the value of '"+eles[i].r_name+"' must be integer !");
					}
				}
				focus_to(eles[i]);
				return false;
			}
		}else if(eles[i].r_type == "num" && eles[i].value!=""){
			if(!isNum(eles[i].value)){
				if(eles[i].r_name+"" != "undefined"){
					if(langFlag == "Chinese"){
						alert("'"+eles[i].r_name+"' 处请使用数值型数据!");
					}else{
						alert("the value of '"+eles[i].r_name+"' must be number !");
					}
				}
				focus_to(eles[i]);
				return false;
			}else{
				//格式化数值
				var ifdefined = eles[i].r_decl+"";
				if(ifdefined != "undefined"){
					eles[i].value = numFormat(eles[i].value,eles[i].r_decl);
				}else{
					eles[i].value = numFormat(eles[i].value,2);
				}
			}
		}else if(eles[i].r_type == "account" && eles[i].value!=""){
			if(!isAccount(eles[i].value)){
				if(langFlag == "Chinese"){
					alert("请填写合法的帐号!");
				}else{
					alert("invalid account !");
				}
				focus_to(eles[i]);
				return false;
			}
		}else if(eles[i].r_type == "email" && eles[i].value!=""){
			if(!isEmail(eles[i].value)){
				if(langFlag == "Chinese"){
					alert("请填写合法的email数据!");
				}else{
					alert("invalid email !");
				}
				focus_to(eles[i]);
				return false;
			}
		}else if(eles[i].r_type == "tel" && eles[i].value!=""){
			if(!isTel(eles[i].value)){
				if(langFlag == "Chinese"){
					alert("'"+eles[i].r_name+"' 处请填写合法的电话号码!");
				}else{
					alert("invalid telephone number !");
				}
				focus_to(eles[i]);
				return false;
			}
		}else if(eles[i].r_type == "date" && eles[i].value != ""){
			var d_format = "";
			if(eles[i].date_format+"" == "undefined"){
				d_format = "YYYY-MM-DD";
			}else{
				d_format = eles[i].date_format+"";
			}
			if(!isDate(eles[i].value,d_format)){
				if(langFlag == "Chinese"){
					alert("日期数据非法,请重新填写(格式: "+d_format+")!");
				}else{
					alert("invalid date !");
				}
				focus_to(eles[i]);
				return false;
			}
		}else if(eles[i].r_type == "idcard" && eles[i].value!=""){
			if(!isIDcard(eles[i].value)){
				if(langFlag == "Chinese"){
					alert("不是有效的省份证号码!");
				}else{
					alert("invalid ID card!");
				}
				focus_to(eles[i]);
				return false;
			}
		}
	}
	return true;
}
//剔除左边的空格
function ltrim(val){
	while(val.length>=1 && val.substring(0,1)==" "){
		val = val.substring(1);
	}
	return val;
}
//剔除右边的空格
function rtrim(val){
	while(val.length>=1 && val.substring(val.length-1)==" "){
		val = val.substring(0,val.length-1);
	}
	return val;
}
//剔除两边的空格
function trim(resourceVal){
	resourceVal = ltrim(resourceVal);
	resourceVal = rtrim(resourceVal);
	return resourceVal ;
}
//判断是否为整数
function isInt(val){
	if(val == "0"){
		return true;
	}
	re = new RegExp("^[1-9][0-9]*$","g");
	return re.test(val);
}
//判断是否为小数
function isNum(val){
	re = new RegExp("^[1-9][0-9]*[.]?[0-9]*$","g");
	return re.test(val);
}
//将num格式化为n为小数型
function numFormat(num,n){
	var t = 10;
	for(var i=1;i<n;i++){
		t = t*10;
	}
	num = Math.round(num*t)/t;
	var str = num+"";
	var nnn = 0;
	if(str.indexOf(".") != -1){
		nnn = str.substring(str.indexOf(".")+1).length;
	}
	if(nnn==0){
		str += ".";
	}
	for(var i=n;i>nnn;i--){
		str = str + "0";
	}
	return str;
}
//alert(numFormat(123123.1232,2));
//判断是否为有效的电话号码
function isTel(val){
	re = new RegExp("[+]?[0-9]*[-]?[0-9]*[0-9]$","g");
	return re.test(val);
}
//检查是否为有效的帐号(仅仅包含 a-z A-Z 0-9 and _)
function isAccount(val){
	re = new RegExp("^[a-zA-Z0-9_][a-zA-Z0-9_]*$");
	return re.test(val)
}
function isEmail(val){
	re = new RegExp(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/);
	return re.test(val);
}

//身份证的验证
function isIDcard(num){
	if(isNaN(num)){
		return false;
	}
    var len = num.length,re; 
	if (len == 15){
		re = new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{3})$/);
	}else if (len == 18){
		re = new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\d)$/);
	}else {
		return false;
	}
    var a = num.match(re);
	if(a != null){
		if (len==15){
			var D = new Date("19"+a[3]+"/"+a[4]+"/"+a[5]);
			var B = D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
		}else{
			var D = new Date(a[3]+"/"+a[4]+"/"+a[5]);
			var B = D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
		}
		if (!B) {
			return false;
		}
	}
    return true;
}

var dateFormat_matrix = new Array("YYYY-MM-DD","YYYY/MM/DD","YYYYMMDD");
var dateRegExp_matrix = new Array(/^([1-9])[0-9]{3}\-[0-9]{2}\-([0-9]{2})$/g,/^([1-9])[0-9]{3}\/[0-9]{2}\/([0-9]{2})$/g,/^[0-9]{8}$/g);
var dateValues_matrix = new Array("8,5","8,5","");

function isDate(d_value,dateFormat){
	var dateValue = d_value;
	var reg_ex = null;
	var values;
	for(var i=0;i<dateFormat_matrix.length;i++){
		if(dateFormat_matrix[i] == dateFormat){
			reg_ex = dateRegExp_matrix[i];
			values = dateValues_matrix[i];
			break;
		}
	}
	if(dateValue.match(reg_ex)){
		var charArray = splitStr(values,",");
		for(var i=0;i<charArray.length;i++){
			dateValue = dateValue.substring(0,charArray[i]*1-1)+dateValue.substring(charArray[i]);
		}
		if(isDateValue(dateValue)){
			return true;
		}
	}
	return false;
}

function isDateValue(val){
	//yyyymmdd
	if(!isInt(val)){
		return false ;
	}
	var y = val.substring(0,4);
	var m = val.substring(4,6)*1;
	var d = val.substring(6,8)*1;

	if(y.length != 4 || m<1 || m>12 || d<1 || d>31){
		return false;
	}
	var max = 31 ;
	if(m==4 || m==6 || m==9 || m==11){
		max = 30 ;
	}else if(m==2){
		if((y%100!=0 && y%4==0) || y%400==0){
			max = 29 ;
		}else{
			max = 28 ;
		}
	}
	if(d > max){
		return false;
	}
	return true;
}
//判断字长
function chnLen(str){
    var len = str.length;
    var n = len*1 ;
    for (var i=0;i<len;i++){
        if(str.charCodeAt(i)<0 || str.charCodeAt(i)>255){
			n++;
		}
    }
    return n;
}
function focus_to(ele){
	try{
		var ele_type = ele.type;
		if(ele_type=="password" || ele_type=="text" || ele_type=="textarea"){
			ele.select();
		}else if(ele_type=="select" || ele_type=="radio" || ele_type=="checkbox"){
			ele.focus();
		}
	}catch(e){
	}
}
function replaceAll(str,reg1,reg2){
	var len1 = reg1.length;
	var len2 = reg2.length;
	var index = 0 ;
	index = str.indexOf(reg1);
	while(index>0){
		str = str.substring(0,index)+reg2+str.substring(index+len1);
		index = str.indexOf(reg1,index+len2);
	}
	return str;
}
function optionsCheckTo(list_box,val){
	for(var i=0;i<list_box.options.length;i++){
		if(list_box.options[i].value == val){
			list_box.options[i].selected = true ;
			return ;
		}
	}
	return ;
}
//用chr 将str分割为数组
function splitStr(str,chr){
	var matrix = new Array();
	while(true){
		var index = str.indexOf(chr);
		if(index < 0){
			matrix[matrix.length] = str ;
			break ;
		}else{
			matrix[matrix.length] = str.substring(0,index);
			str = str.substring(index+1);
		}
	}
	return matrix ;
}
function splitStr_noNull(str,chr){
	var matrix = splitStr(str,chr);
	for(var i=0;i<matrix.length;i++){
		if(matrix[i] != ""){
			continue;
		}
		var found = false;
		for(var j=i;j<matrix.length;j++){
			if(matrix[j] != ""){
				matrix[i] = matrix[j];
				matrix[j] = "";
				found = true;
				break;
			}
		}
		if(!found){
			matrix.length = i;
			break;
		}
	}
	return matrix;
}
//用chr 将数组里面变量连接起来
function linkArray(matrix,chr){
	if(matrix.length == 0){
		return ""
	}else{
		var str = "";
		for(var i=0;i<matrix.length;i++){
			str += chr+matrix[i];
		}
		return str.substring(chr.length);
	}
}

function isChinese(str){
	if (str == ""){//如果值为空，通过校验
		return true;
	}
	var pattern = /^([\u4E00-\u9FA5]|[\uFE30-\uFFA0])*$/gi;
	if (pattern.test(str)){
		return true;
	}else{
		return false;
	}
}

function beyond(ele,matrix){
	for(var i=0;i<matrix.length;i++){
		if(ele == matrix[i]){
			return true;
		}
	}
	return false;
}

function lpad(str,chr,len){
	while(str.length < len){
		str = chr+str;
	}
	return str ;
}
function rpad(str,chr,len){
	while(str.length < len){
		str = str+chr;
	}
	return str ;
}

function left(str,len){
	return str.substring(0,len);
}
function right(str,len){
	return str.substring(str.lenght-len);
}

function do_nav(url,pageNo,limit){
	window.location = url+"?system_pageNo="+pageNo+limit;
}
//文件上传
function do_upload(dir_name,fileType){
	showModalDialog("/common/upload_1.jsp?a=1&dir_name="+dir_name+"&fileType="+fileType,window,"status:0;dialogWidth:420px;dialogHeight:180px");
}

//窗口最大化
function windowMaxSize(){
	window.moveTo(0,0);
	window.resizeTo(screen.width,screen.height);
	try{
		//win.Click();
		//alert(window.screenX);
	}catch(e){
		//
	}
}

function op_select(flag,list1,list2){
	for(var i=1;i<list1.options.length;i++){
		if(flag == "all" || list1.options[i].selected){
			var newOption = document.createElement("OPTION");
			newOption.value = list1.options[i].value;
			newOption.text  = list1.options[i].text;
			list2.options.add(newOption);
		}
	}
	op_min(list1,list2);
}
//从list1中减去list2中含有的options
function op_min(list1,list2){
	for(var i=(list1.options.length-1);i>=1;i--){
		for(var j=1;j<list2.options.length;j++){
			if(list1.options[i].value == list2.options[j].value && list1.options[i].text == list2.options[j].text){
				list1.options.remove(i);
				break;
			}
		}
	}
}

function do_reload(){
	var url = document.URL ;
	var urls = splitStr(url,"?");
	window.location = urls[0];
}

function do_refresh(){
	var url = document.URL ;
	window.location = url ;
}