/*

==============================================================================================
名称：Common.js

功能：
	通用JavaScript脚本函数库。主要用于页面有效性验证，以及一些常用的JS代码。

包括：
	1、CheckForm(theForm)
	2、ValidateForm(theForm)
	3、AddError(index,str)
	4、MustChecked(name, min, max)
	5、isIdCardNo(sId)
	6、TextareaLen(len,min, max)
	7、ByteLen(str)
	8、isDate(str)
	9、isTime(str)
	10、isDateTime(str)
	11、LTrim(string)
	12、RTrim(string)
	13、Trim(string)
	14、AllTrim(string)
	15、enterToTab()
	16、CheckAll(filename)
	17、CalendarSelected(cal, date)
	18、CalendarCloseHandler(cal)
	19、showCalendar(inputId, format, displayId, showsTime)
	20、InputBirthday(sId)
	20、SelectHelp(filename)

作者：庞华

日期：2005-7-20
==============================================================================================

*/

var PatternsDict = new Object();
/*
正则表达式检测
*/
/*
1、电话号码的验证

要求： 
　　(1)电话号码由数字、"("、")"和"-"构成 
　　(2)电话号码为3到8位 
　　(3)如果电话号码中包含有区号，那么区号为三位或四位 
　　(4)区号用"("、")"或"-"和其他部分隔开 
　　(5)移动电话号码为11或12位，如果为12位,那么第一位为0 
　　(6)11位移动电话号码的第一位和第二位为"13" 
　　(7)12位移动电话号码的第二位和第三位为"13" 
　　根据这几条规则，可以写出以下正则表达式： 
　　(^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)
2、Integer数据类型验证：正负Integer数据类型，0
3、EMail验证
4、Select下拉框选择验证
5、全中文输入验证
6、全英文输入验证
7、Double数据类型验证：正负Double数据类型，0
8、邮政编码验证：610041
9、Url输入验证：http://www.163.com
10、全数字验证
*/
PatternsDict.PhonePat = /(^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/;
PatternsDict.IntegerPat = /^\-*\d+$/;  
PatternsDict.EmailPat = /^\w+([-+.]\w+)*@\w+([-.]\\w+)*\.\w+([-.]\w+)*$/;
PatternsDict.SelectPat = /.+/;
PatternsDict.ChinesePat = /^[\u0391-\uFFE5]+$/;
PatternsDict.EnglishPat = /^[A-Za-z]+$/;
PatternsDict.DoublePat = /^[-\+]?\d+(\.\d+)?$/;
PatternsDict.ZipPat = /^[1-9]\d{5}$/;
PatternsDict.UrlPat = /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/;
PatternsDict.NumberPat = /^\d+$/;
/*
函数检测
1、radio或checkbox选中验证
2、身份证验证
3、Textarea文字长度检测
4、Textarea文字字节长度检测
5、判断日期的表达式，2005-7-20
6、判断时间的表达式，13:04:06
7、判断日期时间的表达式，2003-12-05 13:04:06
*/
PatternsDict.GroupPat = "this.MustChecked(getAttribute('name'), getAttribute('min'), getAttribute('max'))";
PatternsDict.IdCardPat = "this.isIdCardNo(value)";
PatternsDict.TextareaPat = "this.TextareaLen(value.length,getAttribute('min'),getAttribute('max'))";
PatternsDict.TextareaBPat = "this.TextareaLen(this.ByteLen(value),getAttribute('min'),getAttribute('max'))";
PatternsDict.DatePat = "this.isDate(value)";  
PatternsDict.TimePat = "this.isTime(value)";
PatternsDict.DateTimePat = "this.isDateTime(value)";

//错误条目和错误提示信息
ErrorItem = [document.forms[0]];
ErrorMessage = ["以下原因导致出错：\t\t\n"];

//城市代码，用于身份证验证
var aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"};

/*

==============================================================================================
函数名称：
		CheckForm(theForm)
功能说明：
		处理数据验证。对<INPUT>进行验证，类型有TEXT、Radio、CheckBox、Select、Textarea。
使用参数：
		require：false为必须填写项；空为可填写项。
		dataType：数据类型，根据数据类型使用不同的正则表达式或函数进行验证。
		msg：提示信息。
		min：最小数。主要用于Radio、CheckBox、Textarea
		max：最大数。主要用于Radio、CheckBox、Textarea
返回结果：
		正确返回true，错误返回false。
使用说明：
		页面调用CheckForm(theForm)函数。
		可以作为页面数据类型正确性校验，也可单独对各个INPUT进行校验。
		将显示页面上第一个需要校验的出错信息，并弹出提示。
		如：<input type="text" name="Name8" require="false" DataType="ChinesePat" msg="">;
		<textarea name="History" dataType="TextareaPat" min="3" max="10"  msg=""></textarea>
==============================================================================================

*/

function CheckForm(theForm){
	var elArr = theForm.elements;

	for(var i = 0; i < elArr.length; i++) with(elArr[i]){
		// 获取其require属性，必填项，判断是否为空
		var _require = getAttribute("require");
		if(_require == "false" && value == "") {
			alert("错误信息：\n\n"+getAttribute("msg"));
			// 设置焦点到出错处
			var els = document.getElementsByName(getAttribute("name"));
			els[0].focus();
			return false;
		}
		// 不是必填项的，没有值时忽略
		if(value == "") continue;
		// 获取其dataType属性
		var _dataType = getAttribute("dataType");
		// 如果该属性不存在,忽略当前元素
		if(!_dataType) continue;
		// 选择验证用的正则表达式
		var thePat = PatternsDict[_dataType];
		// 根据数据类型不同，选择不同操作
		switch(_dataType){
			case "IdCardPat" :
				// 身份证号码的验证
				var str = eval(thePat);
				if (str != ""){
					alert("错误信息：\n\n"+str);
					// 设置焦点到出错处
					var els = document.getElementsByName(getAttribute("name"));
					els[0].focus();
					return false;
				}
				break;
			case "GroupPat" :
				// 是否必须选择
				if(!_require) continue;
				// 执行对应函数，进行验证
				var gotIt = eval(thePat);
				break;
			case "DatePat" :
			case "TimePat" :
			case "DateTimePat" :
			case "TextareaPat" :
			case "TextareaBPat" :
				// 执行对应函数，进行验证
				var gotIt = eval(thePat);
				break;
			default :
				// 用正则表达式验证elArr[i]的值
				var gotIt = thePat.test(value);
				break;
		}
		if(!gotIt){
			alert("错误信息：\n\n"+getAttribute("msg"));
			// 设置焦点到出错处
			var els = document.getElementsByName(getAttribute("name"));
			els[0].focus();
			return false;
		}
	}
	return true;
}

/*

==============================================================================================
函数名称：
		ValidateForm(theForm)
功能说明：
		处理数据验证。对<INPUT>进行验证，类型有TEXT、Radio、CheckBox、Select、Textarea。
使用参数：
		require：false为必须填写项；空为可填写项。
		dataType：数据类型，根据数据类型使用不同的正则表达式或函数进行验证。
		msg：提示信息。
		min：最小数。主要用于Radio、CheckBox、Textarea
		max：最大数。主要用于Radio、CheckBox、Textarea
返回结果：
		正确返回true，错误返回false。
使用说明：
		页面调用ValidateForm(theForm)函数。
		可以作为页面数据类型正确性校验，也可单独对各个INPUT进行校验。
		将显示页面上所有需要校验的出错信息，并弹出提示。
		如：<input type="text" name="Name8" require="false" DataType="ChinesePat" msg="">;
		<textarea name="History" dataType="TextareaPat" min="3" max="10"  msg=""></textarea>
==============================================================================================

*/

function ValidateForm(theForm){
	var elArr = theForm.elements;

	var obj = theForm || event.srcElement;
	this.ErrorMessage.length = 1;
	this.ErrorItem.length = 1;
	this.ErrorItem[0] = obj;
			

	for(var i = 0; i < elArr.length; i++) with(elArr[i]){
		// 获取其require属性，必填项，判断是否为空
		var _require = getAttribute("require");

		if(_require == "false" && value == "") {
			// 添加错误提示信息
			this.AddError(i, getAttribute("msg"));
		}
		
		// 不是必填项的，没有值时忽略
		if(value == "") continue;
		// 获取其dataType属性
		var _dataType = getAttribute("dataType");
		
		// 如果该属性不存在,忽略当前元素
		if(!_dataType) continue;
		// 选择验证用的正则表达式
		var thePat = PatternsDict[_dataType];
		// 根据数据类型不同，选择不同操作
		switch(_dataType){
			case "IdCardPat" :
				// 身份证号码的验证
				var str = eval(thePat);
				if(str != ""){
					this.AddError(i, str);
				}
				gotIt = "true";
				break;
			case "GroupPat" :
				// 是否必须选择
				if(!_require) continue;
				// 执行对应函数，进行验证
				var gotIt = eval(thePat);
				break;
			case "DatePat" :
			case "TimePat" :
			case "DateTimePat" :
			case "TextareaPat" :
			case "TextareaBPat" :
				// 执行对应函数，进行验证
				var gotIt = eval(thePat);
				break;
			default :
				// 用正则表达式验证elArr[i]的值
				var gotIt = thePat.test(value);
				break;
		}
		if(!gotIt){
			// 添加错误提示信息
			this.AddError(i, getAttribute("msg"));
		}
	}
	// 显示所有错误提示信息，并聚焦到底一个出错点
	if(this.ErrorMessage.length > 1){
		this.ErrorItem[1].focus();
		alert(this.ErrorMessage.join("\n"));
		return false;
	}
	return true;
}

/*

==============================================================================================
函数名称：
		AddError(index,str)
功能说明：
		添加错误信息和校验域序号。
所需参数：
		index：校验域序号
		str：错误信息
返回结果：
		返回ErrorItem[]和ErrorMessage[]。
使用说明：
		主要用于ValidateForm(theForm)函数中。传递进相应的参数即可，
==============================================================================================

*/

function AddError(index,str){
	this.ErrorItem[this.ErrorItem.length] = this.ErrorItem[0].elements[index];
	this.ErrorMessage[this.ErrorMessage.length] = this.ErrorMessage.length + "、" + str;
}

/*

==============================================================================================
函数名称：
		MustChecked(name, min, max)
功能说明：
		检查单选按钮或者复选框是否有选中。
所需参数：
		name：单选按钮或者复选框名称
		min：最少选择个数
		max：最大选择个数
返回结果：
		正确返回true，错误返回false。
使用说明：
		主要用于ValidateForm(theForm)、CheckForm(theForm)函数中。也可以单独使用。传递进相应的参数即可，
==============================================================================================

*/

function MustChecked(name, min, max){
	var groups = document.getElementsByName(name);
	var hasChecked = 0;
	min = min || 1;
	max = max || groups.length;
	for(var i=groups.length-1;i>=0;i--)
		if(groups[i].checked) hasChecked++;
	return min <= hasChecked && hasChecked <= max;
}

/*

==============================================================================================
函数名称：
		isIdCardNo(sId)
功能说明：
		身份证号码的验证。
所需参数：
		sId：身份证号码
返回结果：
		返回错误提示信息str。
使用说明：
		主要用于ValidateForm(theForm)、CheckForm(theForm)函数中。也可以单独使用。传递进相应的参数即可，
==============================================================================================

*/

function isIdCardNo(sId){
	var str = "";
	var len = sId.length;
	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|x|X)$/);
	else{
		str = "输入的身份证号码位数不对，应该是15位或者18位！";
		return str;
		return false;
	}
	if(len == 15)
		if (isNaN(sId)){
			str = "输入的身份证号码不是数字！";
			return str;
			return false;
		}
	if(len == 18)
		if (isNaN(sId.substr(0,17))){
			str = "输入的身份证号码不是数字！";
			return str;
			return false;
		}
	// 根据正则表达式判定身份证号码的正确性
	var a = sId.match(re);
	if (a != null){
		// 验证身份证地区是否正确
		if(aCity[parseInt(sId.substr(0,2))]==null || aCity[parseInt(sId.substr(0,2))]=="undefined"){
			str = "输入的身份证号码里地区不对！";
			return str;
			return false;
		}
		// 验证身份证出生日期是否正确
		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) {
			str = "输入的身份证号码里出生日期不对！";
			return str;
			return false;
		} 
	}
	// 验证身份证号码是否正确
	if(len == 18){
		if(a == null){
			str = "输入的身份证号码里验证码无效！";
			return str;
			return false;
		}else{
			// 校验身份证号码
			var strJiaoYan  =["1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"];
			var intQuan =[7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1];
			var intTemp=0;
			for(i = 0; i < len - 1; i++)
				intTemp +=  sId.substring(i, i + 1) * intQuan[i]; 
			intTemp %= 11;
			if(sId.substring(len - 1,len).toUpperCase()!=strJiaoYan[intTemp]){
				str = "输入的身份证号码无效！";
				return str;
				return false;
			}
		}
	}
	return str;
} 

/*

==============================================================================================
函数名称：
		TextareaLen(len,min, max)
功能说明：
		检查Textarea中文字长度。
所需参数：
		len：Textarea中文字长度
		min：最少字数
		max：最大字数
返回结果：
		正确返回true，错误返回false。
使用说明：
		主要用于ValidateForm(theForm)、CheckForm(theForm)函数中。也可以单独使用。传递进相应的参数即可，
==============================================================================================

*/

function TextareaLen(len,min, max){
	min = min || 0;
	max = max || Number.MAX_VALUE;
	return min <= len && len <= max;
}

/*

==============================================================================================
函数名称：
		ByteLen(str)
功能说明：
		得到字符串字节长度。
所需参数：
		str：需要检测的字符串
返回结果：
		字符串字节长度。
使用说明：
		主要用于ValidateForm(theForm)、CheckForm(theForm)函数中。也可以单独使用。传递进相应的参数即可，
==============================================================================================

*/

function ByteLen(str){
	return str.replace(/[^\x00-\xff]/g,"**").length;
}

/*

==============================================================================================
函数名称：
		isDate(str)
功能说明：
		判断是否为日期格式，格式为：2004-12-20。
所需参数：
		str：需要检测的日期字符串
返回结果：
		正确返回true，错误返回false。
使用说明：
		主要用于ValidateForm(theForm)、CheckForm(theForm)函数中。也可以单独使用。传递进相应的参数即可，
==============================================================================================

*/

function isDate(str){
	var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/); 
	if(r==null)return false; 
	var d= new Date(r[1], r[3]-1, r[4]); 
	return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]); 
}

/*

==============================================================================================
函数名称：
		isTime(str)
功能说明：
		判断是否为时间格式，格式为：13:04:06。
所需参数：
		str：需要检测的时间字符串
返回结果：
		正确返回true，错误返回false。
使用说明：
		主要用于ValidateForm(theForm)、CheckForm(theForm)函数中。也可以单独使用。传递进相应的参数即可，
==============================================================================================

*/

function isTime(str){
	var r = str.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/); 
	if(r==null)return false;
	if (r[1]>24 || r[3]>60 || r[4]>60)
		return false;
	else
		return true;
}

/*

==============================================================================================
函数名称：
		isDateTime(str)
功能说明：
		判断是否为时间格式，格式为：2003-12-05 13:04:06。
所需参数：
		str：需要检测的时间字符串
返回结果：
		正确返回true，错误返回false。
使用说明：
		主要用于ValidateForm(theForm)、CheckForm(theForm)函数中。也可以单独使用。传递进相应的参数即可，
==============================================================================================

*/

function isDateTime(str){
	var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/); 
	if(r==null) return false;
	var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]); 
	return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]);
}

/*

==============================================================================================
函数名称：
		LTrim(string)
功能说明：
		去除左边的空格
所需参数：
		string：字符串
返回结果：
		返回去掉左边的空格的字符串。
使用说明：
		传递进相应的参数即可，
==============================================================================================

*/

function LTrim(str)
{
    var whitespace = new String(" \t\n\r");
    var s = new String(str);
    if (whitespace.indexOf(s.charAt(0)) != -1)
    {
        var j=0, i = s.length;
        while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
        {
            j++;
        }
        s = s.substring(j, i);
    }
    return s;
}

/*

==============================================================================================
函数名称：
		RTrim(string)
功能说明：
		去除右边的空格
所需参数：
		string：字符串
返回结果：
		返回去掉右边的空格的字符串。
使用说明：
		传递进相应的参数即可，
==============================================================================================

*/

function RTrim(str)
{
    var whitespace = new String(" \t\n\r");
    var s = new String(str);
    if (whitespace.indexOf(s.charAt(s.length-1)) != -1)
    {
        var i = s.length - 1;
        while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
        {
            i--;
        }
        s = s.substring(0, i+1);
    }
    return s;
}

/*

==============================================================================================
函数名称：
		Trim(string)
功能说明：
		去除前后空格
所需参数：
		string：字符串
返回结果：
		返回去掉前后空格的字符串。
使用说明：
		传递进相应的参数即可，
==============================================================================================

*/

function Trim(str)
{
    return RTrim(LTrim(str));
}

/*

==============================================================================================
函数名称：
		AllTrim(string)
功能说明：
		去除所有空格
所需参数：
		string：字符串
返回结果：
		返回去掉所有空格的字符串。
使用说明：
		传递进相应的参数即可，
==============================================================================================

*/

function AllTrim(str)
{
    return str.replace(/ /gi,"");
}

/*

==============================================================================================
函数名称：
		enterToTab()
功能说明：
		回车键换为tab 
所需参数：
返回结果：
使用说明：
		在INPUT的onkeydown事件中调用，如：onkeydown="javascript:enterToTab() ; "
==============================================================================================

*/

function enterToTab() 
{ 
    if(event.srcElement.type != 'button' && event.srcElement.type != 'textarea' && event.keyCode == 13) 
    {
        event.keyCode = 9; 
    } 
} 

/*

==============================================================================================
函数名称：
		CheckAll(filename)
功能说明：
		全选,全不选 
所需参数：
		filename：CheckBox复选框名称。
返回结果：
使用说明：
		用CheckBox复选框调用，在CheckBox复选框的onclick时间中调用
==============================================================================================

*/

function CheckAll(filename){
	var _CheckBox = document.getElementsByName(filename);
	var len = _CheckBox.length;
	for (var i = 0; i < len; i++)
		_CheckBox[i].checked = window.event.srcElement.checked;
}

/*

==============================================================================================
函数名称：
		CalendarSelected(cal, date)
功能说明：
		日历选中 
所需参数：
		cal：日历对象。
		date：日期值。
返回结果：
使用说明：
		主要用于showCalendar函数中
==============================================================================================

*/

function CalendarSelected(cal, date) {
	cal.sel.value = date;
	if (cal.dateClicked){
		cal.callCloseHandler();
	}
}

/*

==============================================================================================
函数名称：
		CalendarCloseHandler(cal)
功能说明：
		日历关闭
所需参数：
		cal：日历对象。
返回结果：
使用说明：
		主要用于showCalendar函数中
==============================================================================================

*/

function CalendarCloseHandler(cal){
	cal.hide();
	_popupCalendar = null;
}

/*

==============================================================================================
函数名称：
		showCalendar(inputId, format, displayId, showsTime)
功能说明：
		日历显示
所需参数：
		inputId：文本框ID。
		format：日期格式。
		displayId：日历弹出显示按钮ID，可以是button，img等。
		showsTime：可选参数，弹出日历中是否显示时间，参数有12和24。
返回结果：
		返回选择的日期。
使用说明：
		在需要的位置直接调用showCalendar函数。
==============================================================================================

*/

_popupCalendar = null;

function showCalendar(inputId, format, displayId, showsTime) {
	var el = document.getElementById(inputId);
	var _button = document.getElementById(displayId);
	if (_popupCalendar != null) {
		_popupCalendar.hide();
	}
	else{
		var cal = new Zapatec.Calendar(1, null, CalendarSelected, CalendarCloseHandler);
		if (typeof showsTime == "string") {
			cal.showsTime = true;
			cal.time24 = (showsTime == "24");			
		}
		_popupCalendar = cal;
		cal.create();
	}
	_popupCalendar.setDateFormat(format);
	_popupCalendar.parseDate(el.value);
	_popupCalendar.sel = el;

	_popupCalendar.showAtElement(_button, "Br");
	
	return false;
}

/*

==============================================================================================
函数名称：
		InputBirthday(sId)
功能说明：
		根据身份证号，返回出生日期。
所需参数：
		sId：身份证号码
返回结果：
		返回出生日期。
使用说明：
		主要用校验身份证号正确后再返回出生日期。也可以单独使用。传递进相应的参数即可，
==============================================================================================

*/

function InputBirthday(sId){
	var str="";
	var len = sId.length;
	if(len == 15)
		re = new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{3})$/);
	else
		re = new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\d|x|X)$/);
	var a = sId.match(re); 
	if (a != null){
		if (len==15)
			str = "19"+a[3]+"-"+a[4]+"-"+a[5];
		else
			str = a[3]+"-"+a[4]+"-"+a[5];
	}
	return str;
}

/*

==============================================================================================
函数名称：
		SelectHelp(filename)
功能说明：
		确定为一选择。
所需参数：
		filename：选择的域
返回结果：
		
使用说明：
		
==============================================================================================

*/

function SelectHelp(filename){
	var isLeaseDerate = document.getElementById("isLeaseDerate");
	var isDerate = document.getElementById("isDerate");
	var isLeaseHouse = document.getElementById("isLeaseHouse");
	switch(filename){
		case "isLeaseDerate" :
			if(isLeaseDerate.value == "Y"){
				isDerate.value = "N";
				isLeaseHouse.value = "N";
			}
			break;
		case "isDerate" :
			if(isDerate.value == "Y"){
				isLeaseDerate.value = "N";
				isLeaseHouse.value = "N";
			}
			break;
		case "isLeaseHouse" :
			if(isLeaseHouse.value == "Y"){
				isDerate.value = "N";
				isLeaseDerate.value = "N";
			}
			break;
	}
}

/*

==============================================================================================
函数名称：
		showWaitMsg()
功能说明：
		显示提示信息。
所需参数：
		
返回结果：
		
使用说明：
		
==============================================================================================

*/

function showWaitMsg(){
	var IfrRef = document.getElementById('DivShim');
	var DivRef = document.getElementById('waitmsg');
	DivRef.style.pixelTop = (document.body.offsetHeight - 120) / 2 + document.body.scrollTop;
	DivRef.style.pixelLeft = (document.body.offsetWidth - 360) / 2 + document.body.scrollLeft;
	DivRef.style.display = "block";
	IfrRef.style.width = DivRef.offsetWidth;
	IfrRef.style.height = DivRef.offsetHeight;
	IfrRef.style.top = DivRef.style.top;
	IfrRef.style.left = DivRef.style.left;
	IfrRef.style.zIndex = DivRef.style.zIndex - 1;
	IfrRef.style.display = "block";
	document.getElementById('sbar').width = 1;
	times = setInterval('showloading();',100);
}

/*

==============================================================================================
函数名称：
		hideWaitMsg()
功能说明：
		隐藏提示信息。
所需参数：
		
返回结果：
		
使用说明：
		
==============================================================================================

*/

function hideWaitMsg(){
	var IfrRef = document.getElementById('DivShim');
	var DivRef = document.getElementById('waitmsg');
	DivRef.style.display = "none";
	IfrRef.style.display = "none";
}
/*

==============================================================================================
函数名称：
		showloading()
功能说明：
		显示Loading。
所需参数：
		
返回结果：
		
使用说明：
		
==============================================================================================

*/
function showloading()
{
	if (document.getElementById('sbar').width>356)
	{
		document.getElementById('sbar').width=1
	}
	else
	{
		document.getElementById('sbar').width += 2;
	}
}