﻿ /** **************************************************************************\ 
 | 2010-02-22修改版本
 |
 | 《！————请确保在使用该函数时 引入了jQuery文件！！！！
 |该版本用于日期格式为（yyyy-mm-dd) 
 |
 | 函数名称：checkForm 
 | 传入参数：Form（表单） 
 | 返回值：boolean型 
 | 函数功能：自动验证表单的输入值。在控件里加入验证属性即可，不需要修改任何代码。 
 | 调用方式：onSubmit="return checkForm(this)" 
 | 验证属性格式：<input ... checkStr="控件名称" checkType="验证类型" canEmpty="Y" equal="另一个控件的ID"> 
 | 如果使用equal，请确保 另一个控件的checkStr有值。
 | 无类型：不写checkType 
 | 字符串：string,10,20 
 | 整数型：integer,-111,120 
 | 浮点型：float,-2.1,10000 
 | 日期型：date,2003年01月01日,2003年01月01日 
 | 时间性：time,8:30,18:30 
 | 邮 件：email 
 | 身份证：idcard 
 | QQ：qq 电话：phone URL: url 
 | 文件后缀：file, 要增加一个属性为fileExt,如fileExt="gif,GIF,jpg,JPG,bmp,BMP" 为只允许使用gif,jpg,bmp三种文件格式 
 | 验证属性带逗号的表示最小值和最大值，如果不指定则不写，但逗号不能省略 
 | 如果是整数型并且有位数限制：number,0,14 
 | canEmpty="Y": 是否可以为空 
 \******************************************************************************/

function checkForm(myform) {
	var form = jQuery(myform);
	var formName = form.attr("name");
	var inputs = jQuery(form).find("input");
	var obj = null;
		var jumpFromFor = false;
		var isSelected = false; // 单选项是否选中
		for (i = 0; i < inputs.length; i++) {
			jumpFromFor = true; // 如果中途跳出，jumpFromFor的值将被保持为true,表示验证未通过
			obj = inputs[i];
			var checkStr = jQuery(obj).attr("checkStr");
			var checkType = jQuery(obj).attr("checkType"); 
			if (checkStr != '' && checkStr != null) {
				if (jQuery(obj).attr("value").length == 0) {
					if (jQuery(obj).attr("canEmpty") != "Y") {
						showMsg("『" + checkStr + "』不能为空，请重新输入"); 
						break;
					}
				}

				if (jQuery(obj).attr("equal") != null && jQuery(obj).attr("equal").length > 0) {
					var id = jQuery(obj).attr("equal");
					var obj2 = jQuery("#"+id); 
					if (obj2 != null) { 
						if (jQuery(obj).val() != obj2.val()) {
							showMsg("『" + checkStr + "』必须与『"
									+ jQuery(obj2).attr("checkStr") + "』相等")
							break;
						}
					}
				}

//				if (jQuery(obj).attr("compareDate") != null && jQuery(obj).attr("compareDate").length > 0) {
//					var obj2 = eval(formName + "." + obj.compareDate);
//					if (obj2 != null) {
//						if (obj2.value != "") {
//							if (!compareDate(obj, obj2)) {
//								showMsg("『" + obj.checkStr + "』必须比『"
//										+ obj2.checkStr + "』要大")
//								break;
//							}
//						}
//					}
//				}

				if (checkType == "url") {
					if (!checkUrl(obj)) {
						showMsg("您输入的『" + checkStr + "』不是合法的网址格式");
						break;
					}
				}
				if (checkType == "radio") {
					if (jQuery(obj).attr("checked") == true)
						isSelected = true;
					if (isSelected == false) {
						showMsg("『" + checkStr + "』没有选择，请选择!");
						break;
					}
				}
				if (checkType == "email") {
					if (!checkEmail(obj)) {
						showMsg("您输入的『" + checkStr + "』不是合法的邮件格式");
						break;
					}
				}
				if (checkType == "idcard") {
					if (!checkIDCard(obj)) {
						showMsg("您输入的『" + checkStr + "』不是合法的身份证");
						break;
					}
				}
				if (checkType == "phone") {
					if (!checkPhone(obj)) {
						showMsg("您输入的『" + checkStr
								+ "』不是合法的电话号码格式,请按此格式输入(区号-电话号码)");
						break;
					}
				}
				if (checkType == "qq") {
					if (obj.value != "") {
						if (isNaN(obj.value) || obj.value.length < 5) {
							showMsg("您输入的『" + checkStr + "』不是合法的QQ号码");
							break;
						}
					}
				}
				if (checkType == "ip") {
					if (!checkIP(obj)) {
						showMsg("您输入的『" + checkStr + "』不是合法的IP地址");
						break;
					}
				}
				if (checkType == "file") {
					if (!checkfilext(obj, jQuery(obj).attr("fileExt"))) {
						showMsg("您选择的『" + checkStr + "』不是合法的文件格式");
						break;
					}
				}
				if (/^string/.test(checkType)) {
					tempArr = checkString(obj);
					if (!tempArr[0]) {
						showMsg(tempArr[1]);
						break;
					}
				}

				if (/^float/.test(checkType)) {
					tempArr = checkFloat(obj);
					if (!tempArr[0]) {
						showMsg(tempArr[1]);
						break;
					}
				}
				
				if (/^integer/.test(checkType)) { 
					tempArr = checkInteger(obj);
					if (!tempArr[0]) {
						showMsg(tempArr[1]);
						break;
					}
				}
				if (/^number/.test(checkType)) {
					tempArr = checkNumber(obj);
					if (!tempArr[0]) {
						showMsg(tempArr[1]);
						break;
					}
				}
				if (/^date/.test(checkType)) {
					tempArr = checkDate(obj);
					if (!tempArr[0]) {
						showMsg(tempArr[1]);
						break;
					}
				}

				if (/^time/.test(checkType)) {
					tempArr = checkTime(obj);
					if (!tempArr[0]) {
						showMsg(tempArr[1]);
						break;
					}
				}

			}
			jumpFromFor = false; // 循环正常结束，未从循环中跳出,验证结果：全部满足要求
		}
		if (jumpFromFor) {
			obj.focus();
			obj.select();
			return false;
		}
		return true;
}

function isNumberString(InString, RefString) {
	if (InString.length == 0){
			return (false);
		}
	for (Count = 0; Count < InString.length; Count++) {
		TempChar = InString.substring(Count, Count + 1);
		if (RefString.indexOf(TempChar, 0) == -1){
			return (false);
		}
	}
	return (true);
}
function checkUrl(obj) {
	if (jQuery(obj).attr("canEmpty") == "Y" && obj.value.length == 0){
		return true;
	}
	// var re="/^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$/";
	var strRegex = "^((https|http|ftp|rtsp|mms)?://)"
			+ "?(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?" // ftp的user@
			+ "(([0-9]{1,3}\.){3}[0-9]{1,3}" // IP形式的URL- 199.194.52.184
			+ "|" // 允许IP和DOMAIN（域名）
			+ "([0-9a-z_!~*'()-]+\.)*" // 域名- www.
			+ "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\." // 二级域名
			+ "[a-z]{2,6})" // first level domain- .com or .museum
			+ "(:[0-9]{1,4})?" // 端口- :80
			+ "((/?)|" // a slash isn't required if there is no file name
			+ "(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$";
	var re = new RegExp(strRegex);
	var val = obj.value.toLowerCase();
	if (re.test(val)) {
		return (true);
	} else {
		return (false);
	}
}
function checkEmail(obj) {
	if (jQuery(obj).attr("canEmpty") == "Y" && obj.value.length == 0)
		return true;
	return (/^.*@([\w-]){1,}(\.([\w]){1,}){1,3}$/.test(obj.value));
}

function compareDate(obj, obj1) {
	var date1 = obj.value;
	var date2 = obj1.value;
	if (date1 >= date2)
		return true;
	else
		return false;
}

function checkIP(obj) {
	if (jQuery(obj).attr("canEmpty") == "Y" && obj.value.length == 0)
		return true;
	return (/^(((2[0-5][0-5])|([01]\d\d)|(\d\d?))\.){3}((2[0-5][0-5])|([01]\d\d)|(\d\d?))$/
			.test(obj.value));
}

function checkIDCard(obj) {
	if (jQuery(obj).attr("canEmpty") == "Y" && obj.value.length == 0)
		return true;
	if (obj.value.length == 15)
		return (/^([0-9]){15,15}$/.test(obj.value));
	if (obj.value.length == 18)
		return (/^([0-9]){17,17}([0-9xX]){1,1}$/.test(obj.value));
	return false;
}

function checkPhone(obj) {
	if (jQuery(obj).attr("canEmpty") == "Y" && obj.value.length == 0)
		return true;
	return (/^([0-9]{3,5}\-[0-9]{7,10})$/.test(obj.value));
}

function checkString(obj) {
	var checkStr = jQuery(obj).attr("checkStr");
	var tempArr = new Array(true, "");
	if (jQuery(obj).attr("canEmpty") == "Y" && obj.value.length == 0)
		return tempArr;
	var length = obj.value.length;

	var arr = jQuery(obj).attr("checkType").split(",");
	var smallLength = parseInt(arr[1]);
	var bigLength = parseInt(arr[2]);

	// add by hanxr at 2004-3-25---
	if (obj.value.indexOf("'") != -1) {
		tempArr[0] = false;
		tempArr[1] = "『" + checkStr + "』不能含有单引号，请重新输入";
		return tempArr;
	}
	if (obj.value.indexOf("%") != -1) {
		tempArr[0] = false;
		tempArr[1] = "『" + checkStr + "』不能含有小写的百分号，请重新输入";
		return tempArr;
	}
	if (obj.value.indexOf("&") != -1) {
		tempArr[0] = false;
		tempArr[1] = "『" + checkStr + "』不能含有连接号，请重新输入";
		return tempArr;
	}
	// ----------------------------

	if (length < smallLength) {
		tempArr[0] = false;
		tempArr[1] = "『" + checkStr + "』长度不能小于" + smallLength + "，请重新输入";
		return tempArr;
	}
	if (length > bigLength) {
		tempArr[0] = false;
		tempArr[1] = "『" + checkStr + "』长度不能大于" + bigLength + "，请重新输入";
		return tempArr;
	}
	return tempArr;
}

function checkFloat(obj) {
	var checkStr = jQuery(obj).attr("checkStr");
	var tempArr = new Array(true, "");
	if (jQuery(obj).attr("canEmpty") == "Y" && obj.value.length == 0)
		return tempArr;
	if (!(/^([-]){0,1}([0-9]){1,}([.]){0,1}([0-9]){0,}$/.test(obj.value))) {
		tempArr[0] = false;
		tempArr[1] = "不是合法的实数，请重新输入『" + checkStr + "』";
		return tempArr;
	}
	var floatvalue = parseFloat(obj.value);
	var arr = jQuery(obj).attr("checkType").split(",");
	var smallFloat = parseFloat(arr[1]);
	var bigFloat = parseFloat(arr[2]);
	if (floatvalue < smallFloat) {
		tempArr[0] = false;
		tempArr[1] = "不能小于" + smallFloat + "，请重新输入『" + checkStr + "』";
		return tempArr;
	}
	if (floatvalue > bigFloat) {
		tempArr[0] = false;
		tempArr[1] = "不能大于" + bigFloat + "，请重新输入『" + checkStr + "』";
		return tempArr;
	}
	return tempArr;
}

function checkInteger(obj) {
	var checkStr = jQuery(obj).attr("checkStr");
	var tempArr = new Array(true, "");
	if (jQuery(obj).attr("canEmpty") == "Y" && obj.value.length == 0){
		return tempArr;
	}
	if (isNaN(obj.value)) {
		tempArr[0] = false;
		tempArr[1] = "不是合法的整数，请重新输入『" + checkStr + "』";
		return tempArr;
	}
	var integervalue = parseInt(obj.value);
	var arr = jQuery(obj).attr("checkType").split(",");
	var smallInteger = parseInt(arr[1]);
	var bigInteger = parseInt(arr[2]);
	if (integervalue < smallInteger) {
		tempArr[0] = false;
		tempArr[1] = "不能小于" + smallInteger + "，请重新输入『" + checkStr + "』";
		return tempArr;
	}
	if (integervalue > bigInteger) {
		tempArr[0] = false;
		tempArr[1] = "不能大于" + bigInteger + "，请重新输入『" + checkStr + "』";
		return tempArr;
	}
	return tempArr;
}

// wangx 加入校验数字类型长度有限制。
function checkNumber(obj) {
	var tempArr = new Array(true, "");
	if (jQuery(obj).attr("canEmpty") == "Y" && obj.value.length == 0)
		return tempArr;
	if (!(/^([-]){0,1}([0-9]){1,}$/.test(obj.value))) {
		tempArr[0] = false;
		tempArr[1] = "不是合法的数字，请重新输入『" + jQuery(obj).attr("checkStr") + "』";
		return tempArr;
	}
	var integervalue = obj.value.length
	var arr = jQuery(obj).attr("checkType").split(",");
	var smallInteger = parseInt(arr[1]);
	var bigInteger = parseInt(arr[2]);
	if (integervalue < smallInteger) {
		tempArr[0] = false;
		tempArr[1] = "不能小于" + smallInteger + "位，请重新输入『" + jQuery(obj).attr("checkStr") + "』";
		return tempArr;
	}
	if (integervalue > bigInteger) {
		tempArr[0] = false;
		tempArr[1] = "不能大于" + bigInteger + "位，请重新输入『" + jQuery(obj).attr("checkStr") + "』";
		return tempArr;
	}
	return tempArr;
}

function checkDate(obj) {
	var tempArr = new Array(true, "");

	if (jQuery(obj).attr("canEmpty") == "Y" && obj.value.length == 0)
		return tempArr;
	if (!(/^([0-9]){4,4}-([0-9]){1,2}-([0-9]){1,2}$/.test(obj.value))) {
		tempArr[0] = false;
		tempArr[1] = "不是合法的日期，请按\"YYYY-MM-DD\"的格式输入『" + jQuery(obj).attr("checkStr") + "』";
		return tempArr;
	}
	var arr = obj.value.match(/\d+/g);
	year = Number(arr[0]);
	month = Number(arr[1]);
	day = Number(arr[2]);
	var monthDay = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
	if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0))
		monthDay[1] = 29;
	if (year < 0 || month < 0 || month > 12 || day > 31
			|| day > monthDay[month - 1]) {
		tempArr[0] = false;
		tempArr[1] = "您输入了一个不存在的日期，请重新输入『" + jQuery(obj).attr("checkStr") + "』";
		return tempArr;
	}
	arr = jQuery(obj).attr("checkType").split(",");
	if (arr[1].length > 0) {
		var arr2 = arr[1].match(/\d+/g);
		var smallYear = Number(arr2[0]);
		var smallMonth = Number(arr2[1]);
		var smallDay = Number(arr2[2]);
		if (smallYear > year || (smallYear == year && smallMonth > month)
				|| (smallYear == year && smallMonth == month && smallDay > day)) {
			tempArr[0] = false;
			tempArr[1] = "日期不能小于" + arr[1] + "，请重新输入『" + jQuery(obj).attr("checkStr") + "』";
			return tempArr;
		}
	}

	if (arr[2].length > 0) {
		arr2 = arr[2].match(/\d+/g);
		var bigYear = Number(arr2[0]);
		var bigMonth = Number(arr2[1]);
		var bigDay = Number(arr2[2]);
		if (bigYear < year || (bigYear == year && bigMonth < month)
				|| (bigYear == year && bigMonth == month && bigDay < day)) {
			tempArr[0] = false;
			tempArr[1] = "日期不能大于" + arr[2] + "，请重新输入『" + jQuery(obj).attr("checkStr") + "』";
			return tempArr;
		}
	}
	return tempArr;
}

function checkTime(obj) { 
	var tempArr = new Array(true, "");
	if (jQuery(obj).attr("canEmpty") == "Y" && obj.value.length == 0)
		return tempArr;
	if (!(/^([0-9]){1,2}:([0-9]){1,2}$/.test(obj.value))) {
		tempArr[0] = false;
		tempArr[1] = "不是合法的时间，请按\"hh:mm\"的格式输入『" + jQuery(obj).attr("checkStr") + "』";
		return tempArr;
	}
	var arr = obj.value.match(/\d+/g);
	hour = Number(arr[0]);
	minute = Number(arr[1]);
	if (hour < 0 || hour >= 24 || minute < 0 || minute >= 60) {
		tempArr[0] = false;
		tempArr[1] = "您输入了一个不存在的时间，请重新输入『" + jQuery(obj).attr("checkStr") + "』";
		return tempArr;
	}
	arr = jQuery(obj).attr("checkType").split(",");
	if (arr[1].length > 0) {
		var arr2 = arr[1].match(/\d+/g);
		var smallHour = Number(arr2[0]);
		var smallMinute = Number(arr2[1]);
		if (smallHour > hour || (smallHour == hour && smallMinute > minute)) {
			tempArr[0] = false;
			tempArr[1] = "时间不能小于" + arr[1] + "，请重新输入『" + jQuery(obj).attr("checkStr") + "』";
			return tempArr;
		}
	}

	if (arr[2].length > 0) {
		arr2 = arr[2].match(/\d+/g);
		var bigHour = Number(arr2[0]);
		var bigMinute = Number(arr2[1]);
		if (bigHour < hour || (bigHour == hour && bigMinute < minute)) {
			tempArr[0] = false;
			tempArr[1] = "时间不能大于" + arr[2] + "，请重新输入『" + jQuery(obj).attr("checkStr") + "』";
			return tempArr;
		}
	}
	return tempArr;
}

// 将数字字符串转化为中文大写数字字符串
function price2chinese(Num) {
	Num = String(Num);
	for (i = Num.length - 1; i >= 0; i--) {
		Num = Num.replace(",", "")// 替换tomoney()中的“,”
		Num = Num.replace(" ", "")// 替换tomoney()中的空格
	}
	Num = Num.replace("￥", "")// 替换掉可能出现的￥字符
	if (isNaN(Num)) { // 验证输入的字符是否为数字
		showMsg("请检查小写金额是否正确");
		return;
	}
	// ---字符处理完毕，开始转换，转换采用前后两部分分别转换---//
	part = String(Num).split(".");
	newchar = "";
	// 小数点前进行转化
	for (i = part[0].length - 1; i >= 0; i--) {
		if (part[0].length > 10) {
			showMsg("位数过大，无法计算");
			return "";
		}// 若数量超过拾亿单位，提示
		tmpnewchar = ""
		perchar = part[0].charAt(i);
		switch (perchar) {
		case "0":
			tmpnewchar = "零" + tmpnewchar;
			break;
		case "1":
			tmpnewchar = "壹" + tmpnewchar;
			break;
		case "2":
			tmpnewchar = "贰" + tmpnewchar;
			break;
		case "3":
			tmpnewchar = "叁" + tmpnewchar;
			break;
		case "4":
			tmpnewchar = "肆" + tmpnewchar;
			break;
		case "5":
			tmpnewchar = "伍" + tmpnewchar;
			break;
		case "6":
			tmpnewchar = "陆" + tmpnewchar;
			break;
		case "7":
			tmpnewchar = "柒" + tmpnewchar;
			break;
		case "8":
			tmpnewchar = "捌" + tmpnewchar;
			break;
		case "9":
			tmpnewchar = "玖" + tmpnewchar;
			break;
		}
		switch (part[0].length - i - 1) {
		case 0:
			tmpnewchar = tmpnewchar + "元";
			break;
		case 1:
			if (perchar != 0)
				tmpnewchar = tmpnewchar + "拾";
			break;
		case 2:
			if (perchar != 0)
				tmpnewchar = tmpnewchar + "佰";
			break;
		case 3:
			if (perchar != 0)
				tmpnewchar = tmpnewchar + "仟";
			break;
		case 4:
			tmpnewchar = tmpnewchar + "万";
			break;
		case 5:
			if (perchar != 0)
				tmpnewchar = tmpnewchar + "拾";
			break;
		case 6:
			if (perchar != 0)
				tmpnewchar = tmpnewchar + "佰";
			break;
		case 7:
			if (perchar != 0)
				tmpnewchar = tmpnewchar + "仟";
			break;
		case 8:
			tmpnewchar = tmpnewchar + "亿";
			break;
		case 9:
			tmpnewchar = tmpnewchar + "拾";
			break;
		}
		newchar = tmpnewchar + newchar;
	}
	// 小数点之后进行转化
	if (Num.indexOf(".") != -1) {
		if (part[1].length > 2) {
			// showMsg("小数点之后只能保留两位,系统将自动截段");
			part[1] = part[1].substr(0, 2)
		}
		for (i = 0; i < part[1].length; i++) {
			tmpnewchar = ""
			perchar = part[1].charAt(i)
			switch (perchar) {
			case "0":
				tmpnewchar = "零" + tmpnewchar;
				break;
			case "1":
				tmpnewchar = "壹" + tmpnewchar;
				break;
			case "2":
				tmpnewchar = "贰" + tmpnewchar;
				break;
			case "3":
				tmpnewchar = "叁" + tmpnewchar;
				break;
			case "4":
				tmpnewchar = "肆" + tmpnewchar;
				break;
			case "5":
				tmpnewchar = "伍" + tmpnewchar;
				break;
			case "6":
				tmpnewchar = "陆" + tmpnewchar;
				break;
			case "7":
				tmpnewchar = "柒" + tmpnewchar;
				break;
			case "8":
				tmpnewchar = "捌" + tmpnewchar;
				break;
			case "9":
				tmpnewchar = "玖" + tmpnewchar;
				break;
			}
			if (i == 0)
				tmpnewchar = tmpnewchar + "角";
			if (i == 1)
				tmpnewchar = tmpnewchar + "分";
			newchar = newchar + tmpnewchar;
		}
	}
	// 替换所有无用汉字
	while (newchar.search("零零") != -1)
		newchar = newchar.replace("零零", "零");
	newchar = newchar.replace("零亿", "亿");
	newchar = newchar.replace("亿万", "亿");
	newchar = newchar.replace("零万", "万");
	newchar = newchar.replace("零元", "元");
	newchar = newchar.replace("零角", "");
	newchar = newchar.replace("零分", "");

	if (newchar.charAt(newchar.length - 1) == "元"
			|| newchar.charAt(newchar.length - 1) == "角")
		newchar = newchar + "整"
	return newchar;
}

// To clear starting & ending space in a string object
function trimStr(sVal) {
	var iPos;
	// clear starting space
	while (true) {
		iPos = sVal.indexOf(' ');
		if (iPos == -1)
			break;
		if (iPos > 0)
			break;
		sVal = sVal.slice(1);
	}
	// clear ending space
	while (true) {
		iPos = sVal.lastIndexOf(' ');
		if (iPos == -1)
			break;
		if (iPos < sVal.length - 1)
			break;
		sVal = sVal.slice(0, iPos);
	}
	return (sVal);
}

function openWindow(url, h, w) {
	var Y = (window.screen.availHeight - h) / 4;
	var X = (window.screen.availWidth - w) / 4;
	var dm = "Height="
			+ h
			+ ",Width="
			+ w
			+ ",resizable=auto,scrollbars=no,status=no,location=no,menubar=no,toolbar=no,directories=no,top="
			+ Y + ",left=" + X;
	mywin = window.open(url, "", dm);
}
function openWindow2(url, h, w) {
	var Y = (window.screen.availHeight - h) / 4;
	var X = (window.screen.availWidth - w) / 4;
	var dm = "Height="
			+ h
			+ ",Width="
			+ w
			+ ",resizable=auto,scrollbars=yes,status=no,location=no,menubar=no,toolbar=no,directories=no,top="
			+ Y + ",left=" + X;
	mywin = window.open(url, "", dm);
}
function openWindowInSame(url, h, w) {
	var Y = (window.screen.availHeight - h) / 2;
	var X = (window.screen.availWidth - w) / 2;
	var dm = "Height="
			+ h
			+ ",Width="
			+ w
			+ ",resizable=no,scrollbars=auto,status=no,location=no,menubar=no,toolbar=no,directories=no,top="
			+ Y + ",left=" + X;
	mywin = window.open(url, "alertWin", dm);
}
function openFixWindow(url, h, w) {
	var Y = (window.screen.availHeight - h) / 2;
	var X = (window.screen.availWidth - w) / 2;
	var dm = "Height="
			+ h
			+ ",Width="
			+ w
			+ ",resizable=no,scrollbars=no,status=no,location=no,titlebar=no,menubar=no,toolbar=no,directories=no,top="
			+ Y + ",left=" + X;
	mywin = window.open(url, "", dm);
}

function openWindowScroll(url, h, w) {
	var Y = (window.screen.availHeight - h) / 2;
	var X = (window.screen.availWidth - w) / 2;
	var dm = "Height="
			+ h
			+ ",Width="
			+ w
			+ ",resizable=yes,scrollbars=yes,status=no,location=no,menubar=no,toolbar=no,directories=no,top="
			+ Y + "px,left=" + X + "px";
	// var dm =
	// "Height="+h+",Width="+w+",resizable=no,scrollbars=auto,status=no,location=no,menubar=no,toolbar=no,directories=no,top=0,left=0"
	// ;
	mywin = window.open(url, "", dm);
	return mywin;
}

function openWindowScroll4Email(url, h, w) {
	var Y = (window.screen.availHeight - h) / 2;
	var X = (window.screen.availWidth - w) / 2;
	var dm = "Height="
			+ h
			+ ",Width="
			+ w
			+ ",resizable=yes,scrollbars=yes,status=no,location=no,menubar=no,toolbar=no,directories=no,top="
			+ Y + "px,left=" + X + "px";
	// var dm =
	// "Height="+h+",Width="+w+",resizable=no,scrollbars=auto,status=no,location=no,menubar=no,toolbar=no,directories=no,top=0,left=0"
	// ;
	mywin = window.open(url, "email", dm);
	return mywin;
}

function openWindow4Flow(url) {

	var dm = "Height="
			+ (window.screen.availHeight - 30)
			+ ",Width="
			+ (window.screen.availWidth - 10)
			+ ",resizable=no,scrollbars=yes,status=no,location=no,menubar=no,toolbar=no,directories=no,top=0,left=0";
	mywin = window.open(url, "", dm);
}

function openWindowForFlow(url) {

	var dm = "fullscreen=1,resizable=no,scrollbars=yes,status=no,location=no,menubar=no,toolbar=no,directories=no,top=0,left=0";
	mywin = window.open(url, "", dm);
}

function openNewWindow(strfileName, intWidth, intHeight) {
	var d = Math.floor(Math.random() * 10000000000000000);
	var StrWindowName = d.toString();
	var splashWin = window
			.open(
					strfileName,
					StrWindowName,
					"toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,top=0,left=0,width="
							+ intWidth + ",height=" + intHeight)
	var intLeft, intTop;
	intLeft = (screen.availWidth - intWidth) / 2
	intTop = (screen.availheight - intHeight) / 2
	splashWin.moveTo(intLeft, intTop);
}

function changSecond(sec) {
	var hour = parseInt(sec / 3600);
	var l1 = parseInt(sec % 3600);
	var minute = parseInt(l1 / 60);
	var l2 = parseInt(l1 % 60);
	return hour + "小时" + minute + "分钟" + l2 + "秒";
}

function replaceString(strSource, strFind, strReplace) {
	var pos = 0
	var srcLen
	var fndLen
	var repLen
	var strRtn = ""

	if (typeof (strSource) != 'string' || typeof (strFind) != 'string'
			|| typeof (strReplace) != 'string') {
		reportError(L_errFuncParaTypeMissMatch_ErrMsg, "replaceString")
		return -1;
	}
	srcLen = strSource.length;
	fndLen = strFind.length;
	repLen = strReplace.length;
	if (srcLen == 0 || srcLen < fndLen || fndLen == 0)
		return strSource;
	pos = strSource.indexOf(strFind, 0);
	while (pos != -1) {
		strRtn += strSource.substr(0, pos);
		strRtn += strReplace;
		strSource = strSource.substr(pos + fndLen);
		pos = strSource.indexOf(strFind, 0);
	}
	strRtn += strSource;
	return strRtn;
}

function checkfilext(obj, extStr) {
	if (obj.value == "")
		return true;
	var fileext = obj.value.match(/^(.*)(\.)(.{1,8})$/)[3];
	if (extStr.indexOf(fileext) == -1)
		return false;
	else
		return true;
}
/*******************************************************************************
 * | 打开日历选择器取得选择的日历值
 */
function setShortMonth(obj) {
	var Y = (window.screen.height - 420) / 2;
	var X = (window.screen.width - 200) / 2;
	var dm = "dialogHeight:368px;dialogWidth:200px;dialogLeft:" + X
			+ "px;dialogTop:" + Y
			+ "px;center:yes;resizable:no;status:no;scroll:no;";
	var retv = window.showModalDialog(
			serverAddress + "/public/monthPicker.jsp", "", dm);
	if (retv == null)
		obj.value = "";
	else
		obj.value = retv;
}
function setShortDay(obj) {
	var Y = (window.screen.height - 368) / 2;
	var X = (window.screen.width - 200) / 2;
	var dm = "dialogHeight:368px;dialogWidth:200px;dialogLeft:" + X
			+ "px;dialogTop:" + Y
			+ "px;center:yes;resizable:no;status:no;scroll:no;";
	var retv = window.showModalDialog(serverAddress
			+ "/public/shortDayPicker.jsp", "", dm);
	if (retv == null)
		obj.value = "";
	else
		obj.value = retv;
}
function setLongDay(obj) {
	var Y = (window.screen.height - 420) / 2;
	var X = (window.screen.width - 200) / 2;
	var dm = "dialogHeight:420px;dialogWidth:200px;dialogLeft:" + X
			+ "px;dialogTop:" + Y
			+ "px;center:yes;resizable:no;status:no;scroll:no;";
	var retv = window.showModalDialog(serverAddress
			+ "/public/longDayPicker.jsp", "", dm);
	if (retv == null)
		obj.value = "";
	else
		obj.value = retv;
}

function setFixShortDay(obj) {
	var Y = (window.screen.height - 310) / 2;
	var X = (window.screen.width - 200) / 2;
	var dm = "dialogHeight:310px;dialogWidth:200px;dialogLeft:" + X
			+ "px;dialogTop:" + Y
			+ "px;center:yes;resizable:no;status:no;scroll:no;";
	var retv = window.showModalDialog(serverAddress
			+ "/public/shortFixDayPicker.jsp", "", dm);
	if (retv == null)
		obj.value = "";
	else
		obj.value = retv;
}
function setFixLongDay(obj) {
	var Y = (window.screen.height - 340) / 2;
	var X = (window.screen.width - 200) / 2;
	var dm = "dialogHeight:340px;dialogWidth:200px;dialogLeft:" + X
			+ "px;dialogTop:" + Y
			+ "px;center:yes;resizable:no;status:no;scroll:no;";
	var retv = window.showModalDialog(serverAddress
			+ "/public/longFixDayPicker.jsp", "", dm);
	if (retv == null)
		obj.value = "";
	else
		obj.value = retv;
}

function getDays_in_Month(Year, Month) {
	var Days_in_Month = new Array(0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31,
			30, 31);
	if (Month == 2) {
		if ((Year % 400 == 0) || ((Year % 4 == 0) && (Year % 100 != 0))) {
			Days_in_Month[2] = 29;
		}
	}
	return Days_in_Month[2];
}
function showMsg(strCont) {
	alert(strCont);
	// var
	// dm="dialogHeight:180px;dialogWidth:420px;center:yes;resizable:no;status:no;";
	// window.showModalDialog(serverAddress+"/public/MsgBox.jsp?contStr="+strCont,"",dm);
}

function showMsgModeless(strCont) {
	var dm = "dialogHeight:180px;dialogWidth:420px;center:yes;resizable:no;status:no;";
	openWindowInSame(serverAddress + "/public/MsgBox.jsp?contStr=" + strCont,
			200, 360);
}

function alertMsg(strCont) {
	var dm = "dialogHeight:180px;dialogWidth:420px;center:yes;resizable:no;status:no;";
	window.showModalDialog(serverAddress + "/public/alertMsgBox.jsp?contStr="
			+ strCont, "", dm);
}
function promptMsg(strCont) {
	// var
	// dm="dialogHeight:180px;dialogWidth:420px;center:yes;resizable:no;status:no;";
	// return
	// window.showModalDialog(serverAddress+"/public/promptBox.jsp?contStr="+strCont,"",dm);
	if (confirm(strCont)) {
		return true;
	} else
		return false;

}

function ListBox2ListBox(fromObj, toObj, stype) {
	if (stype == 0) {
		for (i = 0; i < fromObj.options.length; i++) {
			if (fromObj.options(i).selected == true) {
				found = 0;
				for (j = 0; j < toObj.options.length; j++) {
					if (fromObj.options(i).value == toObj.options(j).value) {
						found = 1;
						break;
					}
				}
				if (found == 0) {
					var oOption = document.createElement("OPTION");
					oOption.text = fromObj.options(i).text;
					oOption.value = fromObj.options(i).value;
					toObj.add(oOption);
				}
			}
		}
	} else {
		while (toObj.options.length > 0)
			toObj.options.remove(0);
		for (i = 0; i < fromObj.options.length; i++) {
			var oOption = document.createElement("OPTION");
			oOption.text = fromObj.options(i).text;
			oOption.value = fromObj.options(i).value;
			toObj.add(oOption);
		}
	}
}

function removeListItem(Obj, stype) {
	if (stype == 0) {
		for (i = 0; i < Obj.options.length; i++) {
			if (Obj.options(i).selected == true) {
				Obj.options.remove(i);
			}
		}
	} else {
		while (Obj.options.length > 0)
			Obj.options.remove(0);
	}
}

function getCheckBoxSelection(formName, objName) {
	var frm = document.forms(formName);
	var e;
	var ss = "";
	for ( var i = 0; i < frm.elements.length; i++) {
		e = frm.elements[i];
		if (e.name == objName)
			if (e.checked == true) {
				ss += e.value + ",";
			}
	}
	return ss;
}

function DrawImage(ImgD) {
	var image = new Image();
	image.src = ImgD.src;
	if (image.width > 0 && image.height > 0) {
		flag = true;
		if (image.width / image.height >= 120 / 150) {
			if (image.width > 120) {
				ImgD.width = 120;
				ImgD.height = (image.height * 120) / image.width;
			} else {
				ImgD.width = image.width;
				ImgD.height = image.height;
			}
			ImgD.alt = image.width + "×" + image.height;
		} else {
			if (image.height > 70) {
				ImgD.height = 70;
				ImgD.width = (image.width * 150) / image.height;
			} else {
				ImgD.width = image.width;
				ImgD.height = image.height;
			}
			ImgD.alt = image.width + "×" + image.height;
		}
	}
}

function uploadFile(fileName, savepath) {
	var retv = "";
	var filev = fileName;
	var tfile = replaceString(filev, "\\", "\\\\");
	var nfile = filev.substring(filev.lastIndexOf("\\") + 1, filev.length);
	var fext = nfile.substring(nfile.lastIndexOf(".") + 1, nfile.length);
	fext = fext.toLowerCase();
	nfile = nfile.substring(0, nfile.lastIndexOf("."));
	var upjsp = serverAddress + "/public/uploadFile.jsp?filename=" + nfile
			+ "&fileext=" + fext + "&filepath=" + savepath;
	try {
		retv = KyOfficeCtrl.UpLoadFile(upjsp, tfile);
	} catch (e) {
		retv = "";
		showMsg("error when upload file...");
	}
	return retv;
}

/*
 * 类似Word编辑器代码生成构建
 */
// load htmlarea
_editor_url = "../editor/";
// URL to htmlarea files
var win_ie_ver = parseFloat(navigator.appVersion.split("MSIE")[1]);
if (navigator.userAgent.indexOf('Mac') >= 0) {
	win_ie_ver = 0;
}
if (navigator.userAgent.indexOf('Windows CE') >= 0) {
	win_ie_ver = 0;
}
if (navigator.userAgent.indexOf('Opera') >= 0) {
	win_ie_ver = 0;
}
if (win_ie_ver >= 5.5) {
	document.write('<scr' + 'ipt src="' + _editor_url + 'editor.js"');
	document.write(' language="Javascript1.2"></scr' + 'ipt>');
} else {
	document
			.write('<scr' + 'ipt>function editor_generate() { return false; }</scr' + 'ipt>');
}

// --------------限定小数位数----------------------------
function outputMoney(number) {
	if (number < 0)
		return '-' + Math.floor(Math.abs(number) - 0)
				+ outputCents(Math.abs(number) - 0);
	else
		var tNum;
	tNum = parseFloat(Math.floor(number - 0))
			+ parseFloat(outputCents(number - 0));
	tNum = Math.floor(tNum - 0) + outputCents(tNum - 0);
	return tNum;

}
function outputCents(amount) {
	amount = Math.round(((amount) - Math.floor(amount)) * 100);
	var amount1;
	return amount < 10 ? '.0' + amount : (amount < 100 ? '.' + amount : '1.00');
}
function onchangeclass(obj) {
	obj.className = "ButtonCss11";
}
function onchangeclass1(obj) {
	obj.className = "ButtonCss";
}
/*
 * END
 */
/** *********************extends***************************** */
/**
 * 根据传入来的arrays生成一个select表单元素 arrays:是一个二维数据，如var qyxz = new
 * Array(Array('-1','---请选择---'),Array('1','机关'));下标元素为0的必须为:Array('-1','---请选择---')
 * selectElementById: HTML页面上的<select id='xxx'>元素的id名称xxx selectValue:
 * 页面加载时的选定值,即生成<option value='1' checked>选中</option>
 */
function createSelectElement(arrays, selectElementById, selectedValue) {
	var obj = document.getElementById(selectElementById);
	var eduLength = arrays.length;
	var oOption;
	for (i = 0; i < eduLength; i++) {
		oOption = new Option();
		oOption.text = arrays[i][1];
		oOption.value = arrays[i][0];
		obj.options.add(oOption);
		if (selectedValue != '' && selectedValue == arrays[i][0]) {
			obj.options[i].selected = true;
		}
	}
	if (selectedValue == null || selectedValue == ''
			|| selectedValue == 'undefined') {
		obj.options[0].selected = true;
	}

}

/**
 * 根据传入来的selectedValue查找出相对应的arrays里的文本值 arrays:是一个二维数据，如var qyxz = new
 * Array(Array('-1','---请选择---'),Array('1','机关'));下标元素为0的必须为:Array('-1','---请选择---')
 * selectValue: 页面加载时的选定值,即生成一个与arrays相对应的值在页面
 */

function getArraysText(arrays, selectedValue) {
	var eduLength = arrays.length;
	for (i = 0; i < eduLength; i++) {
		if (selectedValue != '' && selectedValue == arrays[i][0]) {
			document.write('<span>' + arrays[i][1] + '</span>');
		}
	}
}

function getSelected(selectElementById, selectedValue){
	if(selectedValue.length==0) selectedValue = "-1";
	var obj = document.getElementById(selectElementById);
	var length = obj.options.length;
	for (i = 0; i < length; i++) {
		var value=obj.options[i].value;
		if(selectedValue!="-1" && selectedValue == value){
			obj.options[i].selected = true;
		}
	}
}

