﻿function CheckForm(formObj)
{
	for(var i=0;i<formObj.length;i++)
	{
		if((formObj[i].nextSibling!=null && typeof(formObj[i].nextSibling)=="object" && formObj[i].nextSibling.tagName=="FONT" && typeof(formObj[i].nextSibling.innerText)=='string' && formObj[i].nextSibling.innerText.indexOf("*")!=-1)||(formObj[i].nextSibling!=null && formObj[i].nextSibling.nextSibling!=null && typeof(formObj[i].nextSibling.nextSibling)=="object" && formObj[i].nextSibling.nextSibling.tagName=="FONT" && typeof(formObj[i].nextSibling.nextSibling.innerText)=='string' && formObj[i].nextSibling.nextSibling.innerText.indexOf("*")!=-1))
		{
			if(!CheckNull(formObj[i]))
			{
				return false;
			}
		}
	}
	return true
}

function CheckNull(obj,desc)
{
	if(obj.value.replace(/(^\s*)|(\s*$)/g,"")=="" || (obj.className=="number" && obj.value=="0") || (obj.tagName=="SELECT" && (obj.value=="-1" || obj.value=="")))
	{	  
		Warn(obj,desc);		
		return false;		
	}
	else
	{
		return true;
	}
}

function Warn(obj,desc)
{
  	if(obj.tagName=="SELECT")
	{
	   
		Open("标有*号的选择框不能为空!");
		if(obj.Visible)
		{
		
		 obj.focus();
		}
	}
	else
	{
	   
		Open("标有*号的输入框不能为空!");
		if(obj.Visible)
		{
		
		 obj.focus();
		}
	}
}

function Open(Text)
{
	window.alert(Text);
}
//**************************************************//


function KeyFiltr(type)
{
	var berr=false;
	switch(type.toLowerCase())
	{
		case 'number':
		//alert(event.keyCode);
			if (event.keyCode>=48 && event.keyCode<=57)
				berr=true;
			break;
		case 'long':
			if (event.keyCode == 45 || (event.keyCode>=48 && event.keyCode<=57))
				berr=true;
			break;
		case 'double':
			if (event.keyCode == 46 || event.keyCode == 110 || (event.keyCode>=48 && event.keyCode<=57))
				berr=true;
			break;
		case 'negdouble':
			if (event.keyCode == 45 || event.keyCode == 46 || event.keyCode == 109 || event.keyCode == 110 || (event.keyCode>=48 && event.keyCode<=57))
				berr=true;
			break;
		default:
			if (event.keyCode == 35 || event.keyCode == 37 || event.keyCode==38)
				berr=true;
	}
	return berr;
}

function KeyJudge(type,len)
{
	var berr=false;
	switch(type.toLowerCase())
	{
		case 'number'://整数
			berr=JudgeNumber(1,len);
			break;
		case 'long'://无符号整数
			berr=JudgeNumber(2,len);
			break;
		case 'double'://小数
			berr=JudgeNumber(3,len);
			break;
		case 'negdouble'://无符号小数
			berr=JudgeNumber(4,len);
			break;
		default:
			berr=true;
	}
	return !berr;	
}

function JudgeNumber(type,len)
{
	var ipt=window.event.srcElement;
	var v=ipt.value;
	if (v!="")
	{
		/***** 过滤字符串前面的（0）,防止以八进制数对待 **********/
		v=delZero(v);
		/************* end here **********************************/
		
		if (!IsNum(v))
		{
			window.alert ("请输入正确的数字！");
			ipt.select ();
			return false;
		}
		
		if (v==Infinity)
		{
			window.alert ("请输入正确的数字！");
			ipt.select ();
			return false;
		}
		
		if(type!=2 && type!=4)//如果是正的数字
		{
			if(parseFloat(v)<0 && !ipt.negative)
			{
				window.alert ("请输入正确的数字！");
				ipt.select ();
				return false;
			}
		}
		else//如果允许负数
		{
			try
			{
				parseFloat(v);
			}
			catch(e)
			{	
				window.alert ("请输入正确的数字！");
				ipt.select ();
				return false;
			}
			
			//ipt.value=FormatNumber(v,len);
		}
		
		
		
		if(type==1 || type==2)//如果是整数
		{
			ipt.value=FormatNumber(v,0);
		}
		else if(type==3 || type==4)//如果是小数
		{
			if(len)
			{
				ipt.value=FormatNumber(v,len);
			}
			else
			{
				ipt.value=FormatNumber(v,2);
			}
		}
	}
	
	return false;
}

//判断数字(包括负数)
function IsNum()
{
	var ipt=window.event.srcElement;
	var v=ipt.value;
	var patten=/^[-]?\d+\.?\d*$/;
	
	if (v!="")
	{
		if (!patten.test(v))
		{
			//window.alert ("请输入正确的数字！");
			ipt.select ();
			return false;
		}
	}
	return true;
}

function delZero(str)
{
	var str=new String(str);
	var tStr=parseFloat(str);
	var mStr,i
	var n=str.length;
	if (Math.floor(str)==0 || Math.ceil(str)==0)
	{
		mStr=str.substring(str.indexOf(".")-1,n);
	}
	else
	{
		for(i=0;i<n;i++)
		{
			if (parseInt(str.charAt(i))>0)
			{
			    break;
			}
		}
		mStr=str.substring(i,n)
	}
	if(tStr<0)
	{
		mStr="-"+mStr;
	}
	
	return mStr;
}

//格式化小数点位数
function FormatNumber(srcStr,nAfterDot)  //srcStr--字符串,nAfterDot--要保留的小数位数
{
  var resultStr,nTen,strLen,dotPos;
  srcStr = ""+srcStr+"";
  strLen = srcStr.length;
  dotPos = srcStr.indexOf(".",0);
  if (dotPos == -1)//如果没有小数点
  {
    if(nAfterDot<=0)//如果不需要保留小数
    {
        return srcStr;
    }
    else//如果需要保留小数点的
    {
	    resultStr = srcStr+".";
	    for (i=0;i<nAfterDot;i++)
	    {
		    resultStr = resultStr+"0";
	    }
	    return resultStr;
	}
  }
  else//如果有小数点
  {
    if(nAfterDot==0)//如果不保留
    {
        return srcStr.substring(0,dotPos);
    }
    
    if((strLen - dotPos - 1)==nAfterDot)//如果刚好符合要求
    {
        return srcStr;
    }
	else if ((strLen - dotPos - 1)< nAfterDot)//如果当前小数点后的位数小于等于要求保留的位数
	{
	   resultStr = srcStr;
	   for (i=0;i<(nAfterDot - strLen + dotPos + 1);i++)
	   {
	      resultStr = resultStr+"0";
	   }
	   return resultStr;
	}
	else
	{
	   nTen =1;
	   for(i=1;i<=nAfterDot;i++)
	   {
	     nTen = nTen*10;
	   }
	   resultStr = Math.round(parseFloat(srcStr)*nTen)/nTen;
	   
	   return resultStr;
	}
  }
}

function tmpFormatNumber(num,len)
{
//将num按小数位为len来进行格式化默认为2位小数点
	var dot=0
	var num1=0
	var i=0,nb=1,ndot=0
	if (typeof(len)=="undefined" || len==null || isNaN(parseInt(len))) 
		dot=2
	else
		dot=parseInt(len)
	
	if (isNaN(parseFloat(num)))
		return 0
	else
		num1=parseFloat(num)
		
	nb=Math.pow(10,dot)

	if (nb==1)
	{ 
		var iValue= Math.round(num1);
		return iValue;
	}
	else
	{
		var iValue=Math.round(num1*nb)/nb
	}
	var sValue = iValue.toString();
	if (sValue.indexOf(".") == -1)
	{
		sValue = sValue + ".";
		for(i=1;i<=dot;i++){
			sValue +="0"
		}
	}
	else
	{	
		ndot=sValue.length-sValue.indexOf(".")-1
		if (ndot < dot){
			for(i=ndot;i<dot;i++){
				sValue += "0"
			}
		}
	}
	return sValue
}