
////////////////////////函数四//////////////////////////////////
//校验数值型
//function checkNum( FormField , MinChkLength , MaxChkLength )
//FormField    form表单域名称
//MinChkLength 表单域最小值
//MaxChkLength 表单域最大值
//update  date 2002-8-21
//
////////////////////////////////////////////////////////////////

function checkNum( FormField , MinChkLength , MaxChkLength )
{
	//	整数数值检查正则表达式
	
	var NumRegExp = new RegExp("^[0-9]{"+MinChkLength+","+MaxChkLength+"}$");

	if ( NumRegExp.test( FormField.value ))
	{
		return true;
	}
	else
	{
		WrongCode = 10000002;		//	错误编码
		return false;
	}
}



////////////////////////函数七//////////////////////////////////
//校验日期类型
//function checkDate( FormField )
//FormField    form表单域名称
//update  date 2002-8-21
//
////////////////////////////////////////////////////////////////
function checkDate( FormField )
{
	//	日期校验
	
	var DateRegExp = /^20{1}[0-9]{2}-((0{1}[1-9]{1})|(1{1}[1-2]{1}))-(([0-2]{1}[0-9]{1})|(3[1]|[0-1]{1}))$/
	
	if (DateRegExp.test( FormField.value ))
	{
		return true;
	}
	else 
	{
		WrongCode = "10000007";		//	错误编码
		return false;
	}
}

////////////////////////函数八//////////////////////////////////
//校验RadioBox信息
//function checkRadio( RadioName )
//FormField    form表单域名称
//update  date 2002-8-21
//
////////////////////////////////////////////////////////////////
function checkRadio( RadioName )
{
	//	RADIO BUTTON检查
	
	var checkedFlag = false;
	var checkedIndex;	//	未选择编码
	
	if ( RadioName.length == null )
	{
		if ( RadioName.checked )
		{
			checkedIndex = 0;
			checkedFlag = true;
		}
	}
	else
	{
		for ( var i=0; i < RadioName.length; i++ )
		{
			if ( RadioName[i].checked )
			{
				checkedIndex = i;
				checkedFlag = true;
			}
		}
	}
	if ( checkedFlag ) return checkedIndex
	else
	{
		WrongCode = "10000005";
		return checkedFlag;
	}
}

////////////////////////函数九//////////////////////////////////
//检查是否为空
//function isNull( val )
//FormField    form表单域值
//update  date 2002-8-21
//
////////////////////////////////////////////////////////////////
function isNull( val ) {
	return ( val == "" );
}


////////////////////////函数十//////////////////////////////////
//检查是否为小数，且检查小数位
//function isFloat( val ,intDec)
//val          form表单域值
//intDec       校验小数位数
//update  date 2002-8-21
//update 2003-4-2
//reson:当小数最后一位是0时，原始的函数校验出错。
////////////////////////////////////////////////////////////////


function isFloat(val, intDec)
{
	var ret = false;
	if (/^([0-9]+)([\.]?)([0-9]*)$/.test(val))
	{
		if ((valDot = val.indexOf(".",0)) == -1)
		{
			ret = true;
		}
		else
		{
			valDot = val.length - valDot - 1;
			  
			if ((valDot > intDec)||(valDot == 0))
				ret = false;//小数过多
			else
				ret = true;
		}

	}

	return ret

}






////////////////////////函数十三//////////////////////////////////
//检查邮政编码是否正确
//function checkZipCode(inputID)
//inputID         form表单域值
//update  date 2002-8-21
//
////////////////////////////////////////////////////////////////
function checkZipCode(inputID)
{
 var strValue = String(inputID.value);
 if(strValue.length!=6)return false;
 if(strValue.indexOf(".")!=-1)return false;
 if(strValue.indexOf("-")!=-1)return false;
 var numValue = strValue * 1;
 if(isNaN(numValue))return false;
 return true;
}



////////////////////////函数十八//////////////////////////////////
//校验是否可以删除信息
//function clicked()
//update  date 2002-8-21
////////////////////////////////////////////////////////////////
function clicked(){
	yesno=window.confirm("您确信要删除该记录吗？") 
	if (yesno==1)
		{return true;}
	else
		{return false;}  
  }

////////////////////////函数十九//////////////////////////////////
//打印信息弹出窗口
//function printSubmit(in_Form)
//in_Form   新窗口链接页面
//update  date 2002-8-21
////////////////////////////////////////////////////////////////
function printSubmit(in_Form){
		window.open("about:blank","submitwin","");
		printform.target = "submitwin";
		printform.action=in_Form;
		printform.submit();
	}	
////////////////////////函数二十//////////////////////////////////
//校验checkbox选框信息
//function checkbox_submit(in_Form)
//in_Form   新窗口链接页面
//checkboxName  checkbox名称
//inName     form表单名称
//inMessage   提示信息
//update  date 2002-8-21
////////////////////////////////////////////////////////////////

function checkbox_submit(in_Form,checkboxName,inName,inMessage) 
	{    
		var i
		var checkvalue
		checkvalue=false;
		if (inName.checkboxName.checked){
			checkvalue=true;
		}
		for(i=0;i<inName.checkboxName.length;i++){
			if (inName.checkboxName[i].checked==true){
				checkvalue=true;
				break;
			}
		}
		
		if (checkvalue==false){
			alert(inMessage);
		}
		else{
			inName.action=in_Form; 
			inName.submit();
		}	
	}
////////////////////////函数二十一//////////////////////////////////
//以下四个函数在系统管理中调用
//function TabControl(name,active)
//function AddTabItem(tbCtrl,name,tabDiv,contentDiv)
//function SetActiveTab(tbCtrl,name)
//function SetActiveVTab(tbCtrl,name)
//
//update  date 2002-8-21
////////////////////////////////////////////////////////////////
	
	function TabControl(name,active)
{
	this.name = name;
	this.tabName = new Array();
	this.tabDiv = new Array();
	this.contentDiv = new Array();
	this.activeTab = active;
	return this;
}
/////////////////////////////////////////////////////////////////////////////////////////

function AddTabItem(tbCtrl,name,tabDiv,contentDiv)
{
	tbCtrl.tabName[tbCtrl.tabName.length] = name;
	tbCtrl.tabDiv[tbCtrl.tabDiv.length] = tabDiv;
	tbCtrl.contentDiv[tbCtrl.contentDiv.length] = contentDiv;
}
/////////////////////////////////////////////////////////////////////////////////////////

function SetActiveTab(tbCtrl,name)
{
	var i;
	for (i=0;i<tbCtrl.tabName.length;i++){
		if (tbCtrl.tabName[i]==name)
			break;
	}
	if (i>=tbCtrl.tabName.length)
		return false;
	document.all[tbCtrl.tabDiv[tbCtrl.activeTab]].className = "normalTab";
	document.all[tbCtrl.contentDiv[tbCtrl.activeTab]].style.display = "none";
	
	document.all[tbCtrl.tabDiv[i]].className = "activeTab";
	document.all[tbCtrl.contentDiv[i]].style.display = "block";
	tbCtrl.activeTab = i;
	return false;
}
/////////////////////////////////////////////////////////////////////////////////////////
function SetActiveVTab(tbCtrl,name)
{
	var i;
	for (i=0;i<tbCtrl.tabName.length;i++){
		if (tbCtrl.tabName[i]==name)
			break;
	}
	if (i>=tbCtrl.tabName.length)
		return false;
	document.all[tbCtrl.tabDiv[tbCtrl.activeTab]].className = "normalVTab";
	document.all[tbCtrl.contentDiv[tbCtrl.activeTab]].style.display = "none";
	document.all[tbCtrl.tabDiv[i]].className = "activeVTab";
	document.all[tbCtrl.contentDiv[i]].style.display = "block";
	tbCtrl.activeTab = i;
	window.top.StatFrame.RegisterVar(tbCtrl.name,name);
	return false;
}

////////////////////////函数二十二//////////////////////////////////
//表单域值搜集程序
//function collectValue( FormName,SpecificCollect )
//参数说明：
//FormName:			需要搜集的表单名
//SpecificCollect:	需要特殊搜集的表单域名，数组类型 
//					特殊搜集说明：表单域名重复
//					例如：CHECKBOX，RADIO等
//返回值说明：
//AllValue		Array
//AllValue[0]		一般值数组，所有未被注名需要特殊搜集的域值
//AllValue[1]		特殊值数组，与SpecificCollect下标相同的数组
//例1.	AllValue[0][1]		表单的第二个非特殊域的值
//例2.	AllValue[1][1][0]	表单的第二个特殊域的第一个选择值
//
//update  date 2002-8-21
////////////////////////////////////////////////////////////////
function collectValue( FormName,SpecificCollect )
{
	//	搜集所有表单域值
	
	var AllValue = new Array();					//	返回所有值的数组，包含以下两个数组
	var CommonValue = new Array();				//	返回一般值的数组
	var SpecificValue = new Array();				//	返回特殊值的数组
	var counter = 0;

	for ( var i=0; i < FormName.all.length; i++ )
	{
		if ( FormName.all[i].tagName != "OPTION" )
		{
			var isspecialflag = false;
			for ( var j=0; j < SpecificCollect.length; j++ )
			{
				if (( FormName.all[i].name == SpecificCollect[j] )||( FormName.all[i].id == SpecificCollect[j] )) 
				{
					isspecialflag = true;
				}
			}

			if ( !isspecialflag )
			{
				CommonValue[counter] = FormName.all[i].value;
				counter++;
			}
		}
	}
	
	eval("alert(FormName.all."+SpecificCollect[0]+".length);");

	for ( var i=0; i < SpecificCollect.length; i++ )
	{
		eval("var tmplen = FormName.all." + SpecificCollect[i] + ".length");
		SpecificValue[i] = new Array();
		for ( var j=0; j < tmplen; j++ )
		{
			eval("var tmpflgc = FormName.all." + SpecificCollect[i] + "[" + j + "].checked");
			eval("var tmpflgs = FormName.all." + SpecificCollect[i] + "[" + j + "].selected");
			eval("var tmpval = FormName.all." + SpecificCollect[i] + "[" + j + "].value");
			if ( tmpflgc || tmpflgs )
			{
				SpecificValue[i][j] = tmpval;
			}
		};
	};

	AllValue[0] = CommonValue;
	AllValue[1] = SpecificValue;
	return AllValue;
}

////////////////////////函数二十三//////////////////////////////////
//数据初始化
//function createTab( targetElement, tabTitle, tabFieldWidth, tabData, titleStyle, bodyStyle )
//参数说明：
//var tableTitle = new Array("编号","姓名","年龄","性别","职业","备注");	//标题
//var tabFieldWidth = new Array(100,200,100,100,100,100);					//宽度
//	var tr1 = new Array("1","run","年龄","性别","职业","备注");
//	var tr2 = new Array("2","zhao","年龄","性别","职业","备注");
//	var tr3 = new Array("3","wang","年龄","性别","职业","备注");
//	var tr4 = new Array("4","li","年龄","性别","职业","备注");				
//	var data = new Array(tr1,tr2,tr3,tr4);									//数据数组(2维)
//CSS定义
//<style>
//	.ti
//	{
//		color: white;
//		background-color: gray;
//	};
//	.good
//	{
//		background-color: lightskyblue;
//	}
//	</style>
//update  date 2002-8-21
////////////////////////////////////////////////////////////////
function createTab( targetElement, tabTitle, tabFieldWidth, tabData, titleStyle, bodyStyle )
{
	targetElement.insertAdjacentHTML("AfterBegin","<table id=resultTab><tbody></tbody></table>");

	resultTab.insertRow(0);
	var currentTR = resultTab.all.tags("tr")[0];
	currentTR.className = titleStyle;

	for ( var i=0; i < tabTitle.length; i++ )
	{
		currentTR.insertCell();
		currentTR.all[i].width = tabFieldWidth[i];
		currentTR.all[i].innerHTML = tabTitle[i];
	}

	for ( var j=1; j <= tabData.length; j++ )
	{
		resultTab.insertRow(j);
		var currentTR = resultTab.all.tags("tr")[j];

		if ((j%2)!=(1))
		{
			currentTR.className = bodyStyle;
		}

		for ( var i=0; i < tabTitle.length; i++ )
		{
			currentTR.insertCell();
			currentTR.all[i].innerText = tabData[j-1][i];
		}
	}
}
////////////////////////函数二十四//////////////////////////////////
//提交函数
//function showForm_Confirm(in_Form)
//in_Form 程序跳转页面
//update  date 2002-8-21
////////////////////////////////////////////////////////////////
function showForm_Confirm(in_Form) {    
	form1.action=in_Form;
    form1.submit();
    }

////////////////////////函数二十五//////////////////////////////////
//以下四个函数为显示提示信息函数，提示信息样式需CSS支持；样式名作为dispMessage的第四个参数传递函数体
//function initMessage(targetElement)
//function dispMessage( Message, width, height, ClassName )
//function moveMessage()
//function clearMessage()
//function showMessage( TargetElement, Message, width, height, ClassName )
//update  date 2002-8-21
////////////////////////////////////////////////////////////////

function initMessage(targetElement)
{
	targetElement.insertAdjacentHTML("BeforeEnd","<div id=messageDiv></div>");
}

function dispMessage( Message, width, height, ClassName )
{
	messageDiv.style.display = "";
	messageDiv.style.position = "absolute";
	messageDiv.style.width = width;
	messageDiv.style.height = height;
	messageDiv.innerText = Message;
	messageDiv.className = ClassName;
}

function moveMessage()
{
	messageDiv.style.top = event.clientY+15;
	messageDiv.style.left = event.clientX+15;
}

function clearMessage()
{
	messageDiv.style.display = "None";
}

//		showMessage( document.body.all[0], "good", 200, 100, "box" )

function showMessage( TargetElement, Message, width, height, ClassName )
{
	document.body.onload = Function("initMessage(document.body)");
	TargetElement.onmouseover = Function("dispMessage( '"+Message+"', "+width+", "+height+", '"+ClassName+"' )");
	TargetElement.onmousemove = Function("moveMessage()");
	TargetElement.onmouseout = Function("clearMessage()");
}

////////////////////////函数二十六//////////////////////////////////
//将2002/5/13日期格式转为2002-5-13
//function changeDate( initDate )
//initDate   需转换日期值
//update  date 2002-8-21
////////////////////////////////////////////////////////////////

function changeDate( initDate )
{
	var t = initDate.split("/");
	t[1] = (t[1])*1;
	t[2] = (t[2])*1;
	
	var y = t[0].substr(2,2);
	
	var d = t[2];
	if (t[2]<10)
	{
		d = "0"+t[2];
	}

	var m;

	switch (t[1])
	{
		case 1: m = "JAN";break;
		case 2: m = "FEB";break;
		case 3: m = "MAR";break;
		case 4: m = "APR";break;
		case 5: m = "MAY";break;
		case 6: m = "JUN";break;
		case 7: m = "JUL";break;
		case 8: m = "AUG";break;
		case 9: m = "SEP";break;
		case 10: m = "OCT";break;
		case 11: m = "NOV";break;
		case 12: m = "DEC";break;
	}
	return d+"-"+m+"-"+y;
}

//*********************************************************
//**************通过回车实现form元素之间的跳转*************
//*********************************************************
//修改者:丁亚坤
//因为存在隐藏控件,所以加上一个异常处理.
function keyEnter(iKeyCode) {
	var srcElement=window.event.srcElement;

	//if(srcElement.name=="save" || iKeyCode==-1) {
	//document.forms[0].submit();
	//return true;
	//} 　

	if(iKeyCode!=13) return false;
	if ((srcElement.tagName=="INPUT"||srcElement.tagName=="SELECT") && srcElement.style.display =="") {
		var i = 0
		while (srcElement!=srcElement.form.elements[i])
			i++
		//跳过hidden
		while(typeof(srcElement.form.elements[i+1]) == "object" && srcElement.form.elements[i+1].type=="hidden")
			i++;
		if (typeof(srcElement.form.elements[i+1]) == "object" && srcElement.form.elements[i+1].style.display == "")
			try{
			srcElement.form.elements[i+1].focus();
		}catch(e){}
	}
	return false;
}


////////////////////////函数三//////////////////////////////////
//校验空值
//function checkNull( FormField )
//FormField    form表单域名称
//update  date 2002-8-21
//
////////////////////////////////////////////////////////////////
function checkNull( FormField ) // modify by sun, xuefeng 2003-08-27
{
	//	空值校验
	if (( FormField.value == "" )||( FormField.value == null ))
	{
		WrongCode = "10000001";		//	错误编码
		return false;
	}
	else
	{	
		return CheckString(FormField);
		//return true;
	}
}

function CheckString(sText)	// write by sun, xuefeng 2003-08-27
{
	if (sText.value.indexOf("'") > 0)
		return false;
	if (sText.value.indexOf("\"") > 0)
		return false;

	return true;
}
/*  函数功能：判断传入参数是否为yyyy-mm-dd或
			  yyyy/mm/dd格式的正确日期
			  2001/01/2和2001-3-04也是允许的格式
			  如果是，则返回一个对应的日期对象
			  如果否，则返回false
*/
function isDate(strDate){
	var regYear = /\d{4}[-/]/g;	//year pattern
	var regMonth;			
	var regDay =  /\d{1,2}/g;;
	var chrSeperator;
	var arr,str;
	if ((arr = regYear.exec(strDate)) == null) 
		return false;
	var intYearlen = arr.lastIndex - arr.index - 1;
	if (arr.index != 0 || (intYearlen != 4 && intYearlen != 2))
		return false;
	str = arr[0];
	chrSeperator = str.charAt(str.length - 1);  // get the seperator ('-' or '/') 
	intYear = parseInt(str.substr(0, str.length - 1));	// get the year
	if (intYear < 1900 || intYear > 2099)  //Error Year
		return false;

	strDate = strDate.substr(arr.lastIndex);
	if (chrSeperator == "-")
		regMonth = /\d{1,2}[-]/g;
	else
		regMonth = /\d{1,2}[/]/g;
	if ((arr = regMonth.exec(strDate)) == null) 
		return false;
	if (arr.index != 0)
		return false;
	str = arr[0];
	if (str.charAt(0) == '0') {
		intMonth = parseInt(str.substr(1, str.length - 2)); // get the month
	} else {
		intMonth = parseInt(str.substr(0, str.length - 1)); // get the month
	}
	if (intMonth < 1 || intMonth > 12) //Error Month
		return false;

	strDate = strDate.substr(arr.lastIndex);

	if ((arr = regDay.exec(strDate)) == null) 
		return false;
	if (arr.index != 0 || arr.lastIndex != strDate.length)
		return false;
	str = arr[0];
	if (str.charAt(0) == '0') {
		intDay = parseInt(str.substr(1, str.length - 1)); // get the day
	} else {
		intDay = parseInt(str); // get the day
	}	
	if (intDay < 1 || intDay > 31)  //Error Day
		return false;

	datDate = new Date(intYear, intMonth - 1, intDay); //Test the Date
	if (isNaN(datDate))  //Error Date Format
		return false;
	if (datDate.getMonth() != intMonth - 1 || datDate.getDate() != intDay)  //invalid date such as '1999/02/29' and '1999/04/31'
		return false;
	return datDate;  //Return the Date in parsed format
}
/** 
LogicalValue:用于判断对象的值是否符合条件，现已提供的选择有： 
integer：整型，还可判断正整型和负整型 
number ：数值型，同样可判断正负 
date ：日期型，可支持以自定义分隔符的日期格式，缺省是以'-'为分隔符 
string ：判断一个字符串包括或不包括某些字符 
返回值： 
true或false 

参数： 
ObjStr ：对象标识符——对象名； 
ObjType：对象类型('integer','number','date','string'之一) 

其他说明： 
当对象值为空时，则返回错误。 

Author:丁亚坤  

**/
function LogicalValue(ObjStr,ObjType) 
{ 
	var str=''; 
	if ((ObjStr==null) || (ObjStr=='') || ObjType==null) 
	{ 
		alert('函数LogicalValue缺少参数'); 
		return false; 
	} 
	//var obj = document.all(ObjStr); 
	if (ObjStr=='') return false; 
	for (var i=2;i<arguments.length;i++) 
	{  
		if (str!='') 
		str += ','; 
	str += 'arguments['+i+']'; 
	} 
	str=(str==''?'ObjStr':'ObjStr,'+str); 
	var temp=ObjType.toLowerCase(); 
	if (temp=='integer') 
	{ 
	return eval('IsInteger('+str+')'); 
	} 
	else if (temp=='number') 
	{ 
	return eval('IsNumber('+str+')'); 
	} 
	else if (temp=='string') 
	{ 
	return eval('SpecialString('+str+')'); 
	} 
	else if (temp=='date') 
	{ 
	return eval('IsDate('+str+')'); 
	} 
	else 
	{ 
	alert('"'+temp+'"类型在现在版本中未提供'); 
	return false; 
	} 
} 
/** 
IsInteger: 用于判断一个数字型字符串是否为整形， 
还可判断是否是正整数或负整数，返回值为true或false 
string: 需要判断的字符串 
sign: 若要判断是正负数是使用，是正用'+'，负'-'，不用则表示不作判断 
Author: 丁亚坤 
sample: 
var a = '123'; 
if (IsInteger(a)) 
{ 
alert('a is a integer'); 
} 
if (IsInteger(a,'+')) 
{ 
alert(a is a positive integer); 
} 
if (IsInteger(a,'-')) 
{ 
alert('a is a negative integer'); 
} 
**/ 

function IsInteger(string ,sign) 
{  
	var integer; 
	if ((sign!=null) && (sign!='-') && (sign!='+')) 
	{ 
		alert('IsInter(string,sign)的参数出错：\nsign为null或"-"或"+"'); 
		return false; 
	} 
	integer = parseInt(string); 
	if (isNaN(integer)) 
	{ 
		return false; 
	} 
	else if (integer.toString().length==string.length) 
	{  
	if ((sign==null) || (sign=='-' && integer<0) || (sign=='+' && integer>0)) 
	{ 
		return true; 
	} 
	else 
		return false;  
	} 
	else 
		return false; 
} 

////////////////////////函数//////////////////////////////////
//格式化数值，以取得相应小数位数
//function FormatFloatNumber ( Val , Num )
//Val   待格式化的数值
//Num    欲保留的小数位数
//make  date 2003-10-27
// 丁亚坤
////////////////////////////////////////////////////////////////
	function FormatFloatNumber ( Val , Num ) {
		try {
			var str = Val.toString();
			var strArea = str.split('.');
			var endStr = strArea[1].slice(0,Num);
			return strArea[0] + "." + endStr;
		}catch(e){return Val;}
	}
                    
	function switchSysBar(){
		//alert(top.leftright.cols)
	if (top.leftright.cols!="0,*"){	

		switchPoint.alt="分屏显示";
		//switchPoint.src="/images/open_icon.png"
		top.leftright.cols="0,*";
	}
	else
	{		
		switchPoint.alt="全屏显示";
		//switchPoint.src="/image/open_icon.png"
		top.leftright.cols="118,*";		
	}
}

function Rep_Null( str,num ) // 
{
	//	空值校验
	if (( str == "" )||( str == null ))
	{
		
		return "";
	}
	else
	{	
		var temp_str = parseFloat(str);
		
	if (temp_str == NaN) {
		return str;
	}
	if (typeof(str) == "string") {
		return str;
	}
	if (str == str * 1){
		return str.toFixed(num);
	}

	//return str*1;
	}
}
//四舍五入
Number.prototype.toFixed=function(len)
{
    var add = 0;
    var s,temp;
    var s1 = this + "";
    var start = s1.indexOf(".");
    if(s1.substr(start+len+1,1)>=5)add=1;
    var temp = Math.pow(10,len);
    s = Math.floor(this * temp) + add;
    return s/temp;
}

//四舍五入