﻿



/**************************************************
//函数名称：DocumentOnkeydown
//参数说明：无
//功能描述：窗体上输入回车键转换成TAB键，除 button、submit、reset等元素
//使用说明：
			第一步：引用该文件
				<script src="../css/ControlEdit.js"></script>
			第二步：在WEB页面上的HTML代码中对body元素的添加onkeydown事件
			<body onkeydown="DocumentOnkeydown()">
**************************************************/
function DocumentOnkeydown()
{
  if(event.keyCode==13 && 
	 event.srcElement.type!='button' && 
	 event.srcElement.type!='submit' && 
	 event.srcElement.type!='reset' && 
	 event.srcElement.type!='textarea' &&
	 event.srcElement.type!='')
     event.keyCode=9;
}

/**************************************************
//函数名称：CheckInputStr
//参数说明：无
//功能描述：字符串输入校验，不允许输入单引号等一系列非法字符。
//调用示例：
			第一步：引用该文件
				<script src="../css/ControlEdit.js"></script>
			第二步：在WEB页面上的HTML代码中，为指定元素添加onkeypress事件
				<input type=text id=txtTest onkeypress="CheckInputStr()">
**************************************************/
function CheckInputStr()
{
	var k = window.event.keyCode;  
	if( 
		(k >= 33 && k<=47) ||
		(k >= 58 && k<=64) ||
		(k >= 91 && k<=96) ||
		(k >= 123 && k<=136) 
	   ) 
		window.event.keyCode = 0;	
}

/**************************************************
//函数名称：validEdit
//参数说明：输入参数1. com1 ，类型：输入控件 
//功能描述：
//	不允许输入在输入框中输入单引号’
**************************************************/
function validEdit(com1)
{
  var r, re;
  var s = com1.value;
  re = /'/gi;
  r = s.search(re);
  if (r==-1) 
    	return true
  else
  {
  	alert("输入有误，不能包含单引号！");
  	com1.focus();
  	return false;
  }
}


/**************************************************
//函数名称：keyUp
//参数说明：输入参数1. com1，类型：控件类型 
//功能描述：
//敲入回车后，跳到下一个输入框

keychar keycode bessness event
"left" ==> 37 ==> move left
"up" ==> 38 ==> move up
"right" ==> 39 ==> move right
"down" ==> 40 ==> move down
"Enter" ==> 13 ==> Enter
**************************************************/
///////////////////////////////////////////
function keyUp(com1)
{
    var keycode = event.keyCode
	
	if (keycode == 13) //回车键
	{
		if (com1 != null) 
		{
			com1.focus(); 
		}
	}
	
	if (keycode==39)
	{
		event.returnValue=false
	}
}

/**************************************************
//函数名称：CheckInput39Key
//参数说明： 
//功能描述：
//			屏蔽键盘输入单引号
//使用说明：
			第一步：引用该文件
				<script src="../css/ControlEdit.js"></script>
			第二步：在WEB页面上的HTML代码中对body元素的添加onkeypress事件
				<body onkeypress="CheckInput39Key()">
**************************************************/
function CheckInput39Key()
{
	var k = window.event.keyCode;  
	if (k == 39) 
		window.event.keyCode = 0;	
}

/**************************************************
//函数名称：KeyPressFloat
//参数说明：
//功能描述：对键盘按下的字母进行交验，只允许输入数字键，包括“-”负号和“.”小数点。
//调用：输入框的onkeypress事件，onkeypress="JavaScript:return KeyPressFloat();"
**************************************************/
function KeyPressFloat()
{
	if (event.keyCode >=45 && event.keyCode <= 57 && event.keyCode!=47)
		event.returnValue = true;
	else
		event.returnValue = false;	
}

/**************************************************
//函数名称：KeyPressInt
//参数说明：输入参数1. NoNegative 是否允许负数，参数类型：整数。0为允许，默认是1不允许
//功能描述：对键盘按下的字母进行交验，只允许输入整数，包括“-”负号和“.”小数点。
//调用：输入框的onkeypress事件，onkeypress="javascript:return KeyPressInt();"
**************************************************/
function KeyPressInt(NoNegative)
{
	if( (typeof(NoNegative) == "undefined") || (NoNegative == null) )
		NoNegative = 1
	if( typeof(NoNegative) == "string" )
		NoNegative = parseInt(NoNegative)
	if(isNaN(NoNegative))
		NoNegative=0
		
	if (NoNegative==0)
	{				
		if ( (event.keyCode >=48 && event.keyCode <= 57) || event.keyCode==45)
			event.returnValue = true;
		else
			event.returnValue = false;
	}
	else
	{
		if ( (event.keyCode >=48 && event.keyCode <= 57))
			event.returnValue = true;
		else
			event.returnValue = false;		
	}	
}

/**************************************************
//函数名称：CheckInputFloat
//参数说明：
//			输入参数1. NoNegative 是否允许负数，参数类型：整数。0为允许，默认是1不允许
//功能描述：只允许输入金额
//调用：输入框的onchange事件，onchange="CheckInputFloat();"
**************************************************/
function CheckInputFloat(NoNegative) 
{  	
	var strSourceString = event.srcElement.value
	var TotalLength = 19
	var FractionLength = 2
	if( (typeof(NoNegative) == "undefined") || (NoNegative == null) )
		NoNegative = 1
	if( typeof(NoNegative) == "string" )
		NoNegative = parseInt(NoNegative)
      
    strSourceString=strSourceString.substr(0,TotalLength)
    if( strSourceString.indexOf(".")>0 )
		strSourceString=strSourceString.substr(0,strSourceString.indexOf(".")+1+FractionLength)
	if ( !(isNaN(parseFloat(strSourceString,10))) )
   		if (NoNegative==0)
			event.srcElement.value	=parseFloat(strSourceString,10)
		else
			event.srcElement.value	=Math.abs(parseFloat(strSourceString,10))
	else
		event.srcElement.value	=""
	return
}


/**************************************************
//函数名称：FormatNumber
//参数说明：
//			输入参数1. 金额
//			输入参数2. 小数点后的位数
//功能描述：格式化输出金额
//调用：FormatNumber(5,2); 结果5.00
**************************************************/
function FormatNumber2(srcStr,nAfterDot){
    var srcStr,nAfterDot;
    var resultStr,nTen;
    srcStr = ""+srcStr+"";
    strLen = srcStr.length;
    dotPos = srcStr.indexOf(".",0);
    if (dotPos == -1){
    　　resultStr = srcStr+".";
    　　for (i=0;i<nAfterDot;i++){
    　　　　resultStr = resultStr+"0";
    　　}
    　　return resultStr;
    }
    else{
    　　if ((strLen - dotPos - 1) >= nAfterDot){
    　　　　nAfter = dotPos + nAfterDot + 1;
    　　　　nTen =1;
    　　　　for(j=0;j<nAfterDot;j++){
    　　　　　　nTen = nTen*10;
    　　　　}
    　　　　resultStr = Math.round(parseFloat(srcStr)*nTen)/nTen;
    　　　　return resultStr;
    　　}
    　　else{
    　　　　resultStr = srcStr;
    　　　　for (i=0;i<(nAfterDot - strLen + dotPos + 1);i++){
    　　　　　　resultStr = resultStr+"0";
    　　　　}
    　　　　return resultStr;
    　　}
    }
}
function FormatNumber(srcStr,nAfterDot){
	var nTen=10;
    for (i=0;i<nAfterDot;i++){
    　　　　nTen = nTen*10;
    　　}
	return srcStr=(Math.round(srcStr*nTen)/nTen).toFixed(nAfterDot);
}

/**************************************************
//函数名称：ValidatorTrim
//参数说明：
//功能描述：
//如果输入参数是空或者空格，那么返回“”，否则返回输入参数
**************************************************/
function ValidatorTrim(s) 
{
	var m = s.match(/^\s*(\S+(\s+\S+)*)\s*$/);
	return (m == null) ? "" : m[1];
}

/**************************************************
//函数名称：RegularExpressionValidatorEvaluateIsValid
//参数说明：输入参数1. obj，类型：控件类型 
//功能描述：
//校验电子邮箱地址是否输入正确
**************************************************/
function RegularExpressionValidatorEvaluateIsValid(obj) 
{
	var ValidationExpression=/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
	var value = obj.value;
	var rx = new RegExp(ValidationExpression);
	var matches = rx.exec(value);
	return (matches != null && value == matches[0]);
}


/**************************************************
//函数名称：CheckboxChecked
//参数说明：参数1. obj ,DataGrid模板列中的头模板
//          参数2. strname ,DataGrid模板列中的列模板
//功能描述：使DataGrid中的CheckBox列全选
//使用说明：DataGrid中的调用方法如下：  
		<Columns>
		<asp:TemplateColumn>
			<HeaderTemplate>
				<asp:CheckBox id=CheckBox1 style="CURSOR: hand" onclick="CheckboxChecked(this,'chkboxSelect')" runat="server" Text="选择" Checked="True"></asp:CheckBox>
			</HeaderTemplate>
			<ItemTemplate>
				<INPUT id=chkboxSelect type=checkbox CHECKED value="" name=chkboxSelect runat="server"> 
			</ItemTemplate>
		</asp:TemplateColumn>
		<asp:BoundColumn HeaderText="课程代码" DataField="CourseCode"></asp:BoundColumn>
		<asp:BoundColumn HeaderText="课程名称" DataField="CourseName"></asp:BoundColumn>
		</Columns>
**************************************************/
function CheckboxChecked(obj,strname)
{
	var chkboxs=document.all.tags("INPUT");   
	for(var i=0;i<chkboxs.length;i++)
	{
		if(chkboxs[i].type=="checkbox")		    	
		{
		    if(chkboxs[i].id.toLowerCase().indexOf(strname.toLowerCase()) > -1)
		    	chkboxs[i].checked=obj.checked;
		}
	}
}

/**************************************************
//函数名称：CheckboxOnlyChecked
//参数说明：参数1. obj ,DataGrid模板列中的头模板
//          参数2. strname ,DataGrid模板列中的列模板
//功能描述：使DataGrid中的CheckBox唯一选中
//使用说明：DataGrid中的调用方法如下：  
		
**************************************************/
function CheckboxOnlyChecked(obj,strname)
{
	var bChecked = obj.checked;
	var chkboxs=document.all.tags("INPUT");   
	for(var i=0;i<chkboxs.length;i++)
	{
		if(chkboxs[i].type=="checkbox")		    	
		{
		    if(chkboxs[i].id.toLowerCase().indexOf(strname.toLowerCase()) > -1)
		    	chkboxs[i].checked=false;
		}
	}
	obj.checked = bChecked;
}

/************************************************************
函数：PasteValueToObj
参数：
	1. obj   	编辑控件
	2. tmpObj  	临时控件（用来存储要粘贴的字符）
	3. objValue     粘贴的值
功能：把值粘贴到指定的编辑控件中
************************************************************/
function PasteValueToObj(obj,tmpObj,objValue)
{ 
	var OldValue = tmpObj.value;	
	tmpObj.value = objValue;
	tmpObj.select()
	var theTextRange = tmpObj.createTextRange() 
	theTextRange.execCommand("Copy")   
	obj.focus()
	document.execCommand("Paste")
	tmpObj.value = OldValue;
}   


