
var IS_NULL = 128; //	10000000
var IS_FULL = 64; //	01000000
var IS_HALF = 32; //	00100000
var IS_ASCII = 16; //	00010000
var IS_NUM = 8; //	00001000
var IS_DATE = 4; //	00000100
var IS_PHONE = 2; //	00000010
var IS_EMAIL = 1; //	00000001
var IS_NOT_NULL = 0; //	00000000
/****************************************一、弹出窗口*************************************************/
//1.日期选择窗口
function fPopUpCalendarDlg(ctrlobj) {
	var showx = event.screenX - event.offsetX; // + deltaX;
	var showy = event.screenY - event.offsetY + 18; // + deltaY;
	var newWINwidth = 210 + 4 + 18;
	var retval = window.showModalDialog("../pub/CalendarDlg.htm", "", "dialogWidth:197px; dialogHeight:210px; dialogLeft:" + showx + "px; dialogTop:" + showy + "px; status:no; directories:yes;scrollbars:no;Resizable=no; ");
	if (retval != null) {
		retval = retval.replace(/\//g, "-");
		ctrlobj.value = retval;
	}
}
/****************************************二、控制键盘录入*************************************************/

//1.控制键盘输入，只允许数字键录入整数
function intOnly() {
	if (!((window.event.keyCode >= 48) && (window.event.keyCode <= 57))) {
		window.event.keyCode = 0;
		alert("请输入整数数字!");
	}
}
//2.控制键盘输入，只允许数字键录入小数和整数
function numberOnly() {
	if (!(((window.event.keyCode >= 48) && (window.event.keyCode <= 57)) || (window.event.keyCode == 13) || (window.event.keyCode == 46))) {
		window.event.keyCode = 0;
		alert("请输入数字!");
	}
}
/***************************************/
//检查<html:file><input type="file">中地址所指文件是否是图片类型
function isImage(obj) {
	var str = obj.value;
	var temp = str.indexOf(".");
	if (temp > 0) {
		str = str.substring(temp + 1).toLowerCase();
		var myTypes = new Array("gif", "jpg", "jpeg", "png");
		for (i = 0; i < myTypes.length; i++) {
			if (str == myTypes[i]) {
				return;
			}
		}
		alert("\u8bf7\u9009\u62e9\u683c\u5f0f\u4e3agif,jpg,jpeg,png\u7684\u56fe\u7247");
		obj.select();
	}
}
/****************************************三、数字的格式化操作函数*************************************************/
//取浮点数，可以定义小数点后精确的位数,并且四舍五入。
function getFloat(number, reserve) {
	var index = number.indexOf(".");
	if (index == -1) {
		return number;
	} else {
		var index = index + reserve + 1;
		if (index >= number.length) {
			return number;
		} else {
			var temp = number.charAt(index);
			number = number.substring(0, index);
			if (parseInt(temp) < 5) {
				return number;
			} else {
				for (var i = index - 1; i >= 0; i--) {
					if (number.charAt(i) == ".") {
						continue;
					}
					var value = parseInt(number.charAt(i));
					value++;
					if (value != 10) {
						number = replace(number, i, value);
						return number;
					} else {
						number = replace(number, i, "0");
						if (i == 0) {
							number = "1" + number;
						}
					}
				}
				return number;
			}
		}
	}
}
function replace(number, i, value) {
	var newnumber = number.substring(0, i) + value;
	newnumber = newnumber + number.substring(i + 1, number.length);
	return newnumber;
}
/****************************************四、字符串的格式化操作函数*************************************************/
//1.子字符串替换
function replaceStr(str, sFnd, sRep) {
	var sTmp = "";
	var endIndex = 0;
	var beginIndex = 0;
	var len = sFnd.length;
	while (endIndex >= 0) {
		var endIndex = str.indexOf(sFnd, beginIndex);
		if (endIndex >= 0) {
			sTmp += str.substring(beginIndex, endIndex) + sRep;
			beginIndex = endIndex + len;
		} else {
			if (beginIndex >= 0) {
				sTmp += str.substring(beginIndex);
				break;
			}
		}
	}
	return sTmp;
}
//2.单双引号替换（基于子字符串替换函数）
function replaceCommas(str) {
	if (str == "") {
		return str;
	}
	str = replaceStr(str, "'", "'");
    //str = replaceStr(str, '"', '"');
	return str;
}

//3.去掉字符串中的给定字符
function removeChar(str, c) {
	if (str == null || str == "") {
		return str;
	}
	var i = str.indexOf(c);
	while (i >= 0) {
		str = str.substring(0, i) + str.substring(i + 1, str.length);
		i = str.indexOf(c);
	}
	return str;
}

//4.验证strings中是否包含string，其中strings是一','为分隔符的字符串，例："a,ab,cd"
function isContainString(strings, string){
	var array = strings.split(",");
	if ("" == string)
		return false;
	if (array.length == 0)
		return false;
	for (var i = 0; i < array.length; i++) {
		if(string == array[i]) {
			return true;
		}
	}
	return false;
}

/****************************************五、日期的格式化操作函数*************************************************/
//1.年月日组合成格式化的字符串
function formatDate(sYear, sMonth, sDay) {
	if (sMonth.length == 1) {
		sMonth = "0" + sMonth;
	}
	if (sDay.length == 1) {
		sDay = "0" + sDay;
	}
	return sYear + sMonth + sDay;
}
//2.日期型转换为格式化的字符串
function convDate(sDate, sSep) {
	var pos = 0;
	var str = sDate;
	var len = str.length;
	if ((len < 8) || (len > 10)) {
		return str;
	} else {
		if (str.indexOf(sSep) == 4) {
			pos = str.indexOf(sSep, 5);
			if (pos == 6) {
				if (len == 8) {
					return str.substring(0, 4) + "0" + str.substring(5, 6) + "0" + str.substring(7, 8);
				} else {
					return str.substring(0, 4) + "0" + str.substring(5, 6) + str.substring(7, 9);
				}
			} else {
				if (pos == 7) {
					if (len == 9) {
						return str.substring(0, 4) + str.substring(5, 7) + "0" + str.substring(8, 9);
					} else {
						return str.substring(0, 4) + str.substring(5, 7) + str.substring(8, 10);
					}
				} else {
					return str;
				}
			}
		} else {
			return str;
		}
	}
}
//3.判断是否为闰年
function checkLeapYear(year) {
	if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) {
		return true;
	}
	return false;
}
//4.获得格式化的系统时间
function getSysDate() {
	var today = new Date();
	var nYear = today.getYear();
	var nMonth = today.getMonth() + 1;
	var nDay = today.getDate();
	var sToday = "";
	if (nYear < 1000) {
		sToday += "" + (1900 + nYear);
	} else {
		sToday += nYear;
	}
	if (nMonth < 10) {
		sToday += "0" + nMonth;
	} else {
		sToday += nMonth;
	}
	if (nDay < 10) {
		sToday += "0" + nDay;
	} else {
		sToday += nDay;
	}
	return sToday;
}
//5.比较两个日期的大小
//dateStr1 >,=,< dateStr2 return 1,0,-1
function compareDateStr(dateStr1, dateStr2) {
	if (dateStr1.indexOf("/") > 0) {
		dateStr1 = convDate(dateStr1, "/");
	} else {
		if (dateStr1.indexOf("-") > 0) {
			dateStr1 = convDate(dateStr1, "-");
		}
	}
	if (dateStr2.indexOf("/") > 0) {
		dateStr2 = convDate(dateStr2, "/");
	} else {
		if (dateStr2.indexOf("-") > 0) {
			dateStr2 = convDate(dateStr2, "-");
		}
	}    
    //dateStr2 = convDate(dateStr2, "/");
	if (dateStr1 > dateStr2) {
		return 1;
	} else {
		if (dateStr1 == dateStr2) {
			return 0;
		} else {
			return -1;
		}
	}
	return dateStr1;
}
//6.判断是否小于当前时间
function checkBeforeDate(str) {
	str = convDate(str, "/");
	if (str.length == 6) {
		str += "01";
	}
	if (str >= getSysDate()) {
		return false;
	}
	return true;
}
//7.判断是否等于当前时间
function checkIsToday(str) {
	str = convDate(str, "/");
	if (str.length == 6) {
		str += "01";
	}
	if (str == getSysDate()) {
		return true;
	} else {
		return false;
	}
}
//8.判断是否大于当前时间
function checkAfterDate(str) {
	str = convDate(str, "/");
	if (str.length == 6) {
		str += "01";
	}
	if (str <= getSysDate()) {
		return false;
	}
	return true;
}
//比较两个时间大小
function compareDate(fromDate, toDate) {
	if (checkDate(fromDate) != true) {
		return false;
	}
	if (checkDate(toDate) != true) {
		return false;
	}
	if (fromDate.indexOf("/") > 0) {
		fromDate = convDate(fromDate, "/");
	} else {
		if (fromDate.indexOf("-") > 0) {
			fromDate = convDate(fromDate, "-");
		}
	}
	if (toDate.indexOf("/") > 0) {
		toDate = convDate(toDate, "/");
	} else {
		if (toDate.indexOf("-") > 0) {
			toDate = convDate(toDate, "-");
		}
	}
	if ((fromDate.length != 8) || !checkNumber(fromDate) || (toDate.length != 8) || !checkNumber(toDate)) {
		return false;
	}
	if (fromDate <= toDate) {
		return true;
	} else {
		return false;
	}
}


/****************************************五、表单值的格式化操作*************************************************/
//1.上传文件时取得表单的上传路径中的文件名
function getFileName(fullpath) {
	var platform = navigator.platform;
	var fileseperator = (platform.indexOf("Win") == -1) ? "/" : "\\";
	var idx = fullpath.lastIndexOf(fileseperator);
	if (idx == -1) {
		return fullpath;
	} else {
		if (idx >= fullpath.length - 1) {
			return "";
		} else {
			return fullpath.substring(idx + 1);
		}
	}
}
//2.去掉FORM中所有TEXT和TEXTAREA表单的值两边的空格
function trimItems(oFrm) {
	var i = 0;
	var type = "";
	for (i = 0; i < oFrm.elements.length; i++) {
		type = oFrm.elements[i].type;
		if ((type == "text") || (type == "textarea")) {
			oFrm.elements[i].value = trim(oFrm.elements[i].value);
		}
	}
}
/****************************************六、提交前的表单值检查*************************************************/
//1.在删除操作时选择复选框
function isSelected() {
	for (var i = 0; i < document.all.length; i++) {
		if (document.all[i].tagName.toUpperCase() == "INPUT") {
			var tmp = document.all[i].type.toUpperCase();
			var name = document.all[i].name;
			if ((tmp == "CHECKBOX") && (document.all[i].checked == true) && (name == "selection" || name == "selected")) {
				return true;
			}
		}
	}
	return false;
}
//2.检查表单的值是否为空,是否符合最大最小长度限制
var MSG_CHECK_SUCCESS = "Check Success";
function checkItem(sCheck, nMinLen, nMaxLen, chkFlg) {
	var strLen = 0;
	if ((sCheck == null) || (sCheck == "")) {
		if (((chkFlg & 128) == 128) || ((chkFlg & 0) == 0)) {
			return "\u662f\u5fc5\u987b\u8f93\u5165\u7684\u9879\u76ee";
		} else {
			return MSG_CHECK_SUCCESS;
		}
	}
	if ((nMinLen > 0) || (nMaxLen > 0)) {
		strLen = getLength(sCheck);
		if (nMinLen > 0) {
			if (nMinLen == nMaxLen) {
				if (strLen != nMinLen) {
					if ((chkFlg & 8) == 8) {
						return "\u7684\u957f\u5ea6\u5fc5\u987b" + nMinLen + "\u5b57\u8282";
					} else {
						return "\u7684\u957f\u5ea6\u5fc5\u987b" + nMinLen + "\u5b57\u8282";
					}
				}
			} else {
				if (strLen < nMinLen) {
					if ((chkFlg & 8) == 8) {
						return "\u4e0d\u662f\u6570\u5b57";
					} else {
						return "\u8fc7\u4e8e\u77ed\u5c0f\uff0c\u6700\u5c0f\u957f\u5ea6\u4e3a" + nMinLen + "\u5b57\u8282";
					}
				}
			}
		}
		if (nMaxLen > 0) {
			if (strLen > nMaxLen) {
				return "\u8d85\u8fc7\u4e86\u6700\u5927\u957f\u5ea6" + nMaxLen + "\u5b57\u8282";
			}
		}
	}
	if ((chkFlg & 16) == 16) {
		if (!checkASCII(sCheck)) {
			return "\u4e0d\u6b63\u786e";
		}
	}
	if ((chkFlg & 8) == 8) {
		if (!checkNumber(sCheck)) {
			return "\u662f\u6570\u5b57\u9879\u76ee";
		}
	}
	if ((chkFlg & 4) == 4) {
		if (!checkDate(sCheck)) {
			return "\u662f\u65e5\u671f\u9879\u76ee";
		}
	}
	if ((chkFlg & 2) == 2) {
		if (!checkPhone(sCheck)) {
			return "\u4e0d\u6b63\u786e";
		}
	}
	if ((chkFlg & 1) == 1) {
		if (!checkEmail(sCheck)) {
			return "\u4e0d\u6b63\u786e";
		}
	}
	return MSG_CHECK_SUCCESS;
}
function check(sItemName, sCheck, nMinLen, nMaxLen, chkFlg) {
	sRet = checkItem(sCheck, nMinLen, nMaxLen, chkFlg);
	if (sRet != MSG_CHECK_SUCCESS) {
		sErr += sItemName + sRet + "\n";
		return false;
	}
	return true;
}
//3.检查电子邮件表单的格式是否正确
function checkEmail(str) {
	var i;
	var len = str.length;
	var aPos = str.indexOf("@");
	var dPos = str.indexOf(".");
	var aaPos = str.indexOf("@@");
	var adPos = str.indexOf("@.");
	var ddPos = str.indexOf("..");
	var daPos = str.indexOf(".@");
	var chkStr = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-_@.";
	if ((aPos <= 0) || (aPos == len - 1) || (dPos == len - 1) || (adPos > 0) || (daPos > 0) || (str.charAt(len - 1) == "@") || (str.charAt(len - 1) == ".") || (aaPos > 0) || (ddPos > 0)) {
		return false;
	}
	if (str.indexOf("@", aPos + 1) > 0) {
		return false;
	}
	for (i = 0; i < len; i++) {
		if (chkStr.indexOf(str.charAt(i)) < 0) {
			return false;
		}
	}
	return true;
}
//4.检查电话号码表单的格式是否正确
function checkPhone(str) {
	var i = str.indexOf("--");
	var len = str.length;
	if (i >= 0) {
		return false;
	}
	i = str.indexOf("-");
	if ((i == 0) || (i == len - 1)) {
		return false;
	} else {
		if (i > 0) {
			i = str.lastIndexOf("-");
			if (i == len - 1) {
				return false;
			}
			str = removeChar(str, "-");
		}
	}
	if (!checkNumber(str)) {
		return false;
	} else {
		return true;
	}
}
//5.检查是否为英文字母
function checkEngNum(str) {
	if (str == null || str == "") {
		return true;
	}
	var c = new RegExp();
	c = / ^ [\d | a - zA - Z] + $ /;
	if (c.test(str)) {
		return true;
	} else {
		return false;
	}
}
//6.检查是否为数字型元素
function checkNumber(str) {
	var i;
	var len = str.length;
	var chkStr = "1234567890";
	if (len == 1) {
		if (chkStr.indexOf(str.charAt(i)) < 0) {
			return false;
		}
	} else {
		if ((chkStr.indexOf(str.charAt(0)) < 0)) {
			return false;
		}
		for (i = 1; i < len; i++) {
			if (chkStr.indexOf(str.charAt(i)) < 0) {
				return false;
			}
		}
	}
	return true;
}
//7.检查是否为浮点型元素
function checkFloat(str) {
	var i;
	var len = str.length;
	var chkStr = "1234567890.";
	if (len == 1) {
		if (chkStr.indexOf(str.charAt(i)) < 0) {
			return false;
		}
	} else {
  //if ((chkStr.indexOf(str.charAt(0)) < 0) || (str.charAt(0) == "0")) {
		if ((chkStr.indexOf(str.charAt(0)) < 0)) {
			return false;
		}
		for (i = 1; i < len; i++) {
			if (chkStr.indexOf(str.charAt(i)) < 0) {
				return false;
			}
		}
	}
	return true;
}
//8.检查是否为日期
function checkDate(str) {
	var dateIndex = str.indexOf("/");
	var index = str.indexOf("-");
	var subIndex = str.indexOf("-",index+1);
	if(str.substring(parseInt(subIndex)+1,str.length).length>2){
	    return false;
	}
	if(str.indexOf("-")==-1){
	    return false;
	}
	if (dateIndex > 0) {
		str = convDate(str, "/");
	} else {
		str = convDate(str, "-");
	}
	if ((str.length != 8) || !checkNumber(str)) {
		return false;
	}
	var year = str.substring(0, 4);
	var month = str.substring(4, 6);
	var day = str.substring(6, 8);
	dayOfMonth = new Array(31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
	if ((month < 1) || (month > 12)) {
		return false;
	}
	if ((day < 1) || (day > dayOfMonth[month - 1])) {
		return false;
	}
	if (!checkLeapYear(year) && (month == 2) && (day == 29)) {
		return false;
	}
	//sqlserver中日期不能小于1753年，故在此对日期加以限定
	if(year<1800){
		return false;
	}
	return true;
}

function  checkInputDate(object){
    if(object.value!=""&&checkDate(object.value)==false){
	         alert("日期输入不合法，请重新输入！");
	         document.all[object.name].focus();
	         document.all[object.name].select();
	    }
}
/****************************************七、子窗口的弹出与关闭*************************************************/
var childWindow = null;
var fatherWindow = null;
var form = null;

// 打开子窗口，在打开之前定义父窗口的名字
function openNew(URL, Width, Height) {

 //   window.name = "fatherWindow";
	closeChildNew();
	showx = event.screenX - event.offsetX - Width; // + deltaX;
	showy = event.screenY - event.offsetY - Height - 30; // + deltaY;
	var features = "width = " + Width + ",height = " + Height + ",left = " + showx + ",top = " + showy + ",directories = no, localtion = no, menubar = no, status = yes, toolbar = no,scrollbars = yes, resizeable = no";
	childWindow = window.open(URL, "", features);
}
// 如果已经有子窗口打开，则关闭之
function closeChildNew() {
	if (childWindow && childWindow.open && !childWindow.closed) {
		childWindow.close();
	}
}

// 关闭子窗口的同时，进行提交，并将提交之后的得页面转到父窗口，关闭子窗口
// 这里本应该是使用同一个函数,但是时间有点急,就
function closeChildWindow(fatherForm, childForm, actionType) {
	childForm.actionType.value = actionType;
	childForm.target = "mainFrame";
	childForm.submit();
	window.close();
	return true;
}
function closeChildWindowNew(childForm, actionType) {
	childForm.actionType.value = actionType;
	childForm.target = "fatherWindow";
	childForm.submit();
	window.close();
	return true;
}
/* SelectAllOptions ***********************************************************/
// set all options to selected
/******************************************************************************/
function SelectAllOptions(theSelect) {
	for (var i = 0; i < theSelect.options.length; i++) {
		theSelect.options[i].selected = true;
	}
}
//改变选中行的css;author：lithlin   for rdms only!
function changeCss(CB, className) {
	if (CB.checked) {
		while (CB.tagName != "TR") {
			CB = CB.parentElement;
		}
		CB.className = "ListTrLight";
	} else {
		while (CB.tagName != "TR") {
			CB = CB.parentElement;
		}
		CB.className = className;
	}
}
//  
function MoveAllOptionsTo(fromSelect, toSelect) {
	var myform = document.expertslistform;
	removeAllItem(toSelect);
	for (i = 0; i < fromSelect.options.length; i++) {
		var name = fromSelect.item(i).text;
		var newOpt = new Option(name, fromSelect.item(i).value);
		toSelect.add(newOpt);
	}
}
function removeAllItem(from) {
	for (i = from.options.length - 1; i >= 0; i--) {
		from.remove(i);
	}
}
//在两个选择框中移动数据
function MoveOptionsTo(fromSelect, toSelect) {
	var myform = document.expertslistform;
	for (i = 0; i < fromSelect.options.length; i++) {
    // alert(fromSelect.options.length);
		if (fromSelect.options(i).selected == true) {
			j = toSelect.options.length - 1;
            // alert(toSelect.options.length);
			for (; j >= 0; j--) {
				if (fromSelect.item(i).value == toSelect.item(j).value) {
					break;
				}
			}
			if (j < 0) {
				var name = fromSelect.item(i).text;
				var newOpt = new Option(name, fromSelect.item(i).value);
				toSelect.add(newOpt);
			}
		}
	}
}
//移走某个多选框中的数据
function removeItem(from) {
	for (i = from.options.length - 1; i >= 0; i--) {
		if (from.options(i).selected == true) {
			from.remove(i);
		}
	}
}
//上移或者下移某个多选框的数据
function upOrDownItem(form,flag) {
    var j=0; 
	for (i =0; i < form.options.length; i++) {
		if (form.options(i).selected == true) {
		if(flag=="up"){
		  j=i-1;
		  if(j<0){
		    j=form.options.length-1;
		  }
		}else if(flag=="down"&&i<form.options.length-1){
		  j=i+1;
		}
		if(i!=j){
		var value=form.options(i).value;
		var text=form.options(i).text;
		form.options(i).value=form.options(j).value;
		form.options(i).text=form.options(j).text;
		form.options(i).selected=false;
		form.options(j).value=value;
		form.options(j).text=text;
		form.options(j).selected=true;
			 return;
		}
		}
	}
}
//===============全选按钮操纵所有多选框==========================================
function checkAll() {
	var state = document.forms[0].selectstate.value;
	var j = 0;
	for (var i = 0; i < document.forms[0].elements.length; i++) {
		var e = document.forms[0].elements[i];
		if ((!e.disabled) && e.name == "selected") {
			e.checked = state;
			j++;
		}
	}
	if (state == "on") {
		document.forms[0].selectstate.value = "";
	} else {
		document.forms[0].selectstate.value = "on";
	}
}

//控制键盘输入时只能输入数字和小数点
function floatOnly() {
	if (!(((window.event.keyCode >= 48) && (window.event.keyCode <= 57)) || (window.event.keyCode == 13) || (window.event.keyCode == 46))) {
		window.event.keyCode = 0;
		alert("请输入一个数字!");
	}
}

//控制键盘输入时只能输入数字和'-'，用于限制电话号码的输入
function phoneOnly() {
	if (!(((window.event.keyCode >= 48) && (window.event.keyCode <= 57)) || (window.event.keyCode == 45) || (window.event.keyCode == "\uff0d"))) {
		window.event.keyCode = 0;
	}
}

//判断第1个数字是否大于第2个数字
function oneBigThanTwo(one,two){
	var temp1=parseFloat(one);
	var temp2=parseFloat(two);
	return temp1>temp2?true:false;
}

//将值转化成Float型
function turnToFloat(name) {
	trimValue(name);
	var value = document.all[name].value;
	value = getFloat(value, 2);
	document.all[name].value = value;
}

//对数字型数据值进行整理
function trimValue(name) {
	var value = document.all[name].value;
	if (value == "" || parseFloat(value) == 0) {
		document.all[name].value = 0;
		return;
	}
   //去掉开头的0
	for (var i = 0; i < value.length; i++) {
		if (value.charAt(i) == 0) {
			continue;
		} else {
			value = value.substring(i);
			break;
		}
	}
	document.all[name].value = value;
}

//百分比计算，结果保留小数点两位
function getRatio(num1, num2) {
	if (num2 == 0) {
		return 0;
	}
	var result = num1 / num2 * 100;
	return getFloat(result + "", 2);
}
/*给出起始日期的年月日year,month,day及此后的天数days，算出这days天中的工作日数目*/
function getWorkDay(year, month, day, days) {
	date = new Date();
	date.setFullYear(year, month, day);
	startWeekDay = date.getDay();
	yushu = days % 7;
	weekNum = (days - yushu) / 7;
	if ((startWeekDay == 1) || (startWeekDay + yushu == 8)) {
		total = weekNum * 2 + 1;
	} else {
		if (startWeekDay + yushu > 8) {
			total = weekNum * 2 + 2;
		} else {
			total = weekNum * 2;
		}
	}
	return days - total;
}

//判断页面输入内容是否超过字数限制
function checkLimit(field, limit) {
	var fieldLength = strlength(field.value);
	var newLimit = limit * 2;
	if (fieldLength > newLimit) {
		return false;
	} else {
		return true;
	}
}

//计算字符长的字节长度
function strlength(str) {
	var l = str.length;
	var n = l;
	for (var i = 0; i < l; i++) {
		if (str.charCodeAt(i) < 0 || str.charCodeAt(i) > 255) {
			n++;
		}
	}
	return n;
}
function printDocument() {
	window.open("../pub/print.htm");
}
//改变页面查询类型	
function changeSearchMode() {
	if (document.all["queryBean.searchMode"].value == "a") {
		document.all["simple"].style.display = "none";	
		document.getElementById("simpleHead").setAttribute("background","../images/searchbg01.gif");
		document.all["advance"].style.display = "";	
		document.getElementById("advanceHead").setAttribute("background","../images/searchbg002.gif");
	} else {
		document.all["simple"].style.display = "";
		document.getElementById("simpleHead").setAttribute("background","../images/searchbg002.gif");
		document.all["advance"].style.display = "none";		
		document.getElementById("advanceHead").setAttribute("background","../images/searchbg01.gif");
	}
	//如果更多查询存在
	if(document.all["more"]!=null){
		if(document.all["queryBean.defaultSearchFlag"].value=="1"){
			document.all["more"].style.display="none";
		}
		else{
			document.all["more"].style.display="block";
		}
	}
}

function convert(act){
	if(act=="simple"){
      	document.all["queryBean.searchMode"].value="s";
   	}else if(act=="advance"){
      	document.all["queryBean.searchMode"].value="a";
   	}
   	changeSearchMode();
}
//改变查询页面提交方式
function changeSubmitType() {
	var submitType;
	for (var i = 0; i < document.all["submitType"].length; i++) {
		if (document.all["submitType"][i].checked) {
			submitType = document.all["submitType"][i].value;
		}
	}
	if (submitType == "exportExcel") {
		document.all["exportExcel"].style.display = "block";
		document.all["statistic"].style.display = "none";
	} else {
		if (submitType == "statistic") {
			document.all["exportExcel"].style.display = "none";
			document.all["statistic"].style.display = "block";
		} else {
			if (submitType == "search") {
				document.all["exportExcel"].style.display = "none";
				document.all["statistic"].style.display = "none";
			}
		}
	}
}
//清空查询页面
function searchFormClear(){
	var i = 0;
	var type = "";
	for (i = 0; i <document.forms[0].elements.length; i++) {
	   var ele=document.forms[0].elements[i];
		type = document.forms[0].elements[i].type;
		if ((type == "text") || (type == "textarea")) {
			ele.value ="";
		}
		else if(type=="select-one"){
			ele.options[0].selected=true;
		}
		else if(type == "radio"){
		  //查询页面清空时，单选框选中“所有”选项
		  if(ele.value!=""){
		  	ele.checked=false;
		  }
		  else{
			 ele.checked=true;
		 }
		}
	}
}
//返回列表页面
function backListPage(){
	document.all["actionType"].value = "list";
   	document.forms[0].submit();
}
//通用提交验证方法
function onsubmit() {
	var property;
	var message;
	var dateProperty;
	var dateMessage;
    //TODO 下边这个判断可能存在着问题
	if (propertys!= null&&propertys!= ""&&msg!=null&&msg!="") {
		property = propertys.split(",");
		message = msg.split(",");
		for (i = 0; i < property.length; i++) {
			//判断字段是否在页面存在,存在时校验必填
			if(document.all[property[i]]!=null){
				var propertyValue=getPropertyValue(property[i]);
				var theResulet = checkItem(propertyValue, 0, 0, IS_NOT_NULL);
				if (theResulet == MSG_CHECK_SUCCESS) {
				} else {
					alert(message[i] + theResulet);
					//转移焦点到字段内
					if (document.all[property[i]].type == "text"||	//文本框
						document.all[property[i]].type == "textarea"|| //文本区
						document.all[property[i]].type == "select-one" //下拉框
						) {
						document.all[property[i]].focus();
					}
					return false;
					break;
				}
			}
		}
	}
	if (datePropertys!= null&&datePropertys!= ""&&dateMsg!=null&&dateMsg!="") {
		dateProperty = datePropertys.split(",");
		dateMessage = dateMsg.split(",");
		for (i = 0; i < dateProperty.length; i++) {
			//判断改字段信息是否在页面存在
			if(document.all[dateProperty[i]]!=null){
				//日期字段如果有值，校验其合法性
				if(document.all[dateProperty[i]].value.length>0){
					var theResulet = checkDate(document.all[dateProperty[i]].value);
					if (theResulet) {
					} else {
						alert(dateMessage[i] + "不是合法的日期形式");
						document.all[dateProperty[i]].focus();
						document.all[dateProperty[i]].select();
						return false;
						break;
					}
				}
			}
		}
	}
	return true;
}
//根据属性名得到其页面上的值
function getPropertyValue(propertyName){
	var propertyValue="";
	//如果是单选框
	if(document.all[propertyName].length!=null&&document.all[propertyName][0].type=="radio"){
		for(var i=0;i<document.all[propertyName].length;i++){
			if(document.all[propertyName][i].checked==true) 
				propertyValue = " ";
		}
	}
	//文本框、文本区或下拉框
	else{
		propertyValue=document.all(propertyName).value;
	}
	return propertyValue;
}
	//删除和重新上传附件时删除原附件方法 往后台提交一次,将原附件id设置为0,保存时从数据库删除
		function deleteFile(){
		    document.forms[0].actionType.value="removeFile";
	   		document.forms[0].submit();
		}
		
   var xmlHttp;
   /*****************************************************以下操作，完成页面生成下拉框的功能**************************************/
   //创建xmlHttp对象
   function createXMLHttpRequest(){
   		//如果浏览器支持ActiveX
	   	if(window.ActiveXObject){
	   		xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
	   	}
	   	//如果浏览器支持对象XMLHttpRequest
	   	else if(window.XMLHttpRequest){
	   		xmlHttp=new XMLHttpRequest();
	   	}
   }
   /**
   selfName 自身对象名称
   tgtName 目标对象名称
   categoryName 目标对象对应的常量名
   **/
   function generateOption(modelName,selfName,tgtName,categoryName){
   		//创建xmlHttpRequest对象
   		createXMLHttpRequest();
   		var selfValue=document.all[selfName].value;
   		//请求地址
   		var url="option.option?categoryName="+categoryName+"&modelName="+modelName+"&param="+selfValue+"&target="+tgtName+"&timeStamp="+new Date().getTime();
   		xmlHttp.open("GET",url,true);
   		xmlHttp.onreadystatechange=callback;
   		xmlHttp.send(null);
   }
  /**
   selfName 自身对象名称
   tgtName 目标对象名称
   categoryName 目标对象对应的常量名
   checkRight 是否检查权限
   **/
   function generateOptionWithRight(modelName,selfName,tgtName,categoryName,checkRight){
   		//创建xmlHttpRequest对象
   		createXMLHttpRequest();
   		var selfValue=document.all[selfName].value;
   		//请求地址
   		var url="option.option?categoryName="+categoryName+"&modelName="+modelName+"&param="+selfValue+"&target="+tgtName+"&checkRight="+checkRight+"&timeStamp="+new Date().getTime();
   		xmlHttp.open("GET",url,true);
   		xmlHttp.onreadystatechange=callback;
   		xmlHttp.send(null);
   }
   //处理请求结果
   function callback(){
   		if(xmlHttp.readyState==4){
   			if(xmlHttp.status==200){ 
   				var mes=xmlHttp.responseXML;
   				var targetName=mes.getElementsByTagName("target")[0].firstChild.nodeValue;
   				var mb=document.getElementById(targetName);
   				//如果目标对象存在,对其赋值
   				if(mb){
	   				cleanList(mb);
	   				var options=mes.getElementsByTagName("option");
	   				for(i=0;i<options.length;i++){
	   					var option=document.createElement("option");
	   					if(options[i].childNodes[0].firstChild!=null){
	   						option.setAttribute("value",options[i].childNodes[0].firstChild.nodeValue);
	   					}else{
	   						option.setAttribute("value","");
	   					}
	   					option.appendChild(document.createTextNode(options[i].childNodes[1].firstChild.nodeValue));
	   					mb.appendChild(option);
	   				}
   				}
   				
   				
   			}
   		}
   }
   	//清除下拉框中的值
	function   cleanList(listObject){
		
		while(listObject.hasChildNodes()){
			listObject.removeChild(listObject.firstChild);
		}
	
	}

   /*****************************************************以上操作，完成页面生成下拉框的功能**************************************/
	function WaitObj(ac,ti,ca){
		var action=ac;
		var title=ti==''?'提交':ti;
		var isCancel=ca;
	}
	/**
		将oFrm中的独立单选按钮自动选择
	*/
	function automaticChooseSingleRadio(oFrm){
		for (i = 0; i < oFrm.elements.length; i++) {
		type = oFrm.elements[i].type;
		if ((type == "radio") && isNaN(document.all[oFrm.elements[i].name].length)) {
			oFrm.elements[i].checked="true";
		}
		}
	}
	
	/**
		显示更多查询
	**/
	function moreSearch(){
		var moreSearchDisplay=false;
		if(document.all["queryBean.defaultSearchFlag"].value=="1"){
			moreSearchDisplay=true;
		}
		
		if(moreSearchDisplay){
			document.all['more'].style.display='block';
			document.all["queryBean.defaultSearchFlag"].value="0";
		}else{
			document.all['more'].style.display='none';
			document.all["queryBean.defaultSearchFlag"].value="1";
		}
	}

//控制左侧框架的宽度
	function changeframe(direction){
	     if(direction=="left"){
		  table.style.display="none";
		  toLeft.style.display="none";
		  toRight.style.display="";
		  top.window.frames["leftFrame"].scrollTo(0, 0);
		  top.window.frames["leftFrame"].document.body.scroll="no";
	      top.content.cols="25,*";
		 }
		 if(direction=="right"){
		  table.style.display="";
		  toLeft.style.display="";
		  toRight.style.display="none";
		  top.window.frames["leftFrame"].document.body.scroll="auto";
	      top.content.cols="146,*";
		 }
	}
	//根据左侧框架的宽度，决定显示的内容
	function adjustContent(){
	    if(top.content.cols=="25,*"){
	    	top.window.frames["leftFrame"].document.body.scroll="no";
		  	table.style.display="none";
		    toLeft.style.display="none";
		    toRight.style.display="";
		}
	}



