//去除空格
String.prototype.trim = function()
{
    return this.replace(/(^[\s]*)|([\s]*$)/g, "");
}
String.prototype.replaceAll  = function(s1,s2){    
return this.replace(new RegExp(s1,"g"),s2);    
}
//验证电话（座机）
function validatePhone(phone)
{
	var valPhone=/^(\d{2,4}\-?)?\d*$/;
	if(phone.trim().match(valPhone)==null)
		return false;
	else
		return true;
}

//验证EMAIL
function validateEmail(mail)
{
	var valEmail=/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
	if(mail.trim().match(valEmail)==null)
		return false;
	else
		return true;
}

//验证手机号
function validateMobile(mnum)
{
	return validateTel(mnum);
}
function validateTel(tel)
{
	var valTel=/^1[358]\d{9}$/;
	if(tel.trim().match(valTel)==null)
		return false;
	else
		return true;
}

//验证QQ
function validateQQ(qq)
{
	var valQQ=/^(\d){4,12}$/;
	if(qq.trim().match(valQQ)==null)
		return false;
	else
		return true;
}
//验证身份证号
function validateIcard(card)
{
	var valIc=/^(\d{18,18}|\d{15,15}|\d{17,17}(x|X))$/;
	if(card.trim().match(valIc)==null)
		return false;
	else
		return true;
}
//验证纯数字整数
function isInt(val)
{
	var valint=/^\d*$/;			
	if(val.trim().match(valint)==null) {		
		return false;
	}
	return true;	
}
//验证是否是数字，整数、小数等
function isNum(val)
{
	var valint=/^[0-9]+\.?[0-9]{0,4}$/;			
	if(val.trim().match(valint)==null) {		
		return false;
	}
	return true;
}
//金额输入框OnBlur处理，格式错误变为0.00
function moneyInputOnBlur(input) 
{				
	var valMoney=/^[0-9]+\.?[0-9]{0,2}$/;			
	if(input.value.trim().match(valMoney)==null) {
		input.value = "0.00";
		input.focus();
		return;
	}					
}
//金额输入框OnBlur处理，格式错误变为val
function moneyInputOnBlur2(input,val) 
{				
	var valMoney=/^[0-9]+\.?[0-9]{0,2}$/;			
	if(input.value.trim().trim()!="" && input.value.match(valMoney)==null) {
		input.value = val;
		input.focus();
		return;
	}					
}
function moneyInputOnBlur3(input) 
{				
	var valMoney=/^[0-9]+\.?[0-9]{0,2}$/;			
	if(input.value.trim().match(valMoney)==null) {
		alert("格式错误");
		input.value = "0.00";
		input.select();
		input.focus();
		return;
	}					
}
//数字输入框(可为负数)OnBlur处理，格式错误提示
function intInputOnBlur(input) 
{				
	var valMoney=/^-?\d*$/;			
	if(input.value.trim().match(valMoney)==null) {
		alert("格式错误");
		input.focus();
		input.select();
		return;
	}					
}
function intInputOnBlur(input,val) 
{				
	var valMoney=/^-?\d*$/;			
	if(input.value.trim().match(valMoney)==null) {
		alert("格式错误");
		input.value=val;
		input.focus();
		input.select();
		return;
	}					
}
//检查表单是否含有非法字符
function validateKeyWord()
{
	var inputs=document.getElementsByTagName("input");
	for(j=0;j<inputs.length;j++)
	{
		if(inputs[j].type=="text" && inputs[j].readOnly==false)
		{
			var rword=filterString(inputs[j].value.trim());
			if(rword!="")
			{
				alert("\""+rword+"\" 为非法字符，请重新输入!");
				inputs[j].focus();
				inputs[j].select();
				return false;
			}
		}
		if(inputs[j].type=="hidden")
		{
			var rword=filterString(inputs[j].value.trim());
			if(rword!="")
			{
				alert("\""+rword+"\" 为非法字符!");
				return false;
			}
		}
	}
	var textareas=document.getElementsByTagName("textarea");	
	for(k=0;k<textareas.length;k++)
	{		
		var rword=filterString(textareas[k].value.trim());
		if(rword!="")
		{
			alert("\""+rword+"\" 为非法字符，请重新输入!");
			textareas[k].focus();
			textareas[k].select();
			return false;
		}		
	}
	return true;
}

//结束日期 是否晚于 起始日期
function checkDateLater(begindate,enddate)
{
	var str1 = begindate.replaceAll("-","/");
	var str2 = enddate.replaceAll("-","/");
	var dt1=new Date(Date.parse(str1));
    var dt2=new Date(Date.parse(str2));	
	if(dt1>dt2)
	{
		return false;	
	}
	return true;
}
//禁用页面上所有按钮
function cancelAllButton()
{
	var btns=document.getElementsByTagName("input");
	if(btns!=null){
		for(i=0;i<btns.length;i++)
		{
			if(btns[i].type=="button" || btns[i].type=="submit" || btns[i].type=="reset")
				btns[i].disabled=true;
		}
	}
}
//是否为指定的数字位数
function chkLen(checkStr,lens){
	if(checkStr.length<lens)
	{
		return false;
	}else{
		return true;
	}
}
//给定的是否为特殊字符
function chkStr(checkStr){
	var checkOK = "'<>@#$%^&*()_";

	for (i = 0;  i < checkStr.length;  i++) {
		ch = checkStr.charAt(i);
		for (j = 0;  j < checkOK.length;  j++) {
			if (ch == checkOK.charAt(j)) {
	    		return false;
				break;
			}	
		}
	}
	return true;
}
//有特殊字符，返回true
function easysysfilter(str)
{
	var key=["and ", "and%", "or ", "or%", "shutdown", ";", "'", "[", "]", " (",")", "--", "sysobjects", "exec", "cmd", "shell", "db_name", "backup", "select", "update","delete", "join", "drop", " ", "%"];
	for(i=0;i<key.length;i++)
	{
		if(str.indexOf(key[i])!=-1)
		{
			return true;
			break;
		}
	}
	return false;
}

//格式化数字，保留两位小数
function outputMoney(number) 
{ 
  number=number.replace(/\,/g,""); 
  if (number=="") return ""; 
  if(number<0) 
  return '-'+outputDollars(Math.floor(Math.abs(number)-0) + '') + outputCents(Math.abs(number) - 0); 
  else 
  return outputDollars(Math.floor(number-0) + '') + outputCents(number - 0); 
} 
function outputDollars(number) 
{ 
  if (number.length<= 3) 
  return (number == '' ? '0' : number); 
  else 
  { 
    var mod = number.length%3; 
    var output = (mod == 0 ? '' : (number.substring(0,mod))); 
    for (i=0 ; i< Math.floor(number.length/3) ; i++) 
    { 
      if ((mod ==0) && (i ==0)) 
      output+= number.substring(mod+3*i,mod+3*i+3); 
      else 
      output+= ',' + number.substring(mod+3*i,mod+3*i+3); 
    } 
    return (output); 
  } 
} 
function outputCents(amount) 
{ 
  amount = Math.round( ( (amount) - Math.floor(amount) ) *100); 
  return (amount<10 ? '.0' + amount : '.' + amount); 
} 


//除法函数，用来得到精确的除法结果
//说明：javascript的除法结果会有误差，在两个浮点数相除的时候会比较明显。这个函数返回较为精确的除法结果。
//调用：accDiv(arg1,arg2)
//返回值：arg1除以arg2的精确结果
function accDiv(arg1,arg2){
	var t1=0,t2=0,r1,r2;
	try{t1=arg1.toString().split(".")[1].length}catch(e){}
	try{t2=arg2.toString().split(".")[1].length}catch(e){}
	with(Math){
		r1=Number(arg1.toString().replace(".",""))
		r2=Number(arg2.toString().replace(".",""))
		return (r1/r2)*pow(10,t2-t1);
	}
}

//给Number类型增加一个div方法，调用起来更加方便。
Number.prototype.div = function (arg){
	return accDiv(this, arg);
}

//乘法函数，用来得到精确的乘法结果
//说明：javascript的乘法结果会有误差，在两个浮点数相乘的时候会比较明显。这个函数返回较为精确的乘法结果。
//调用：accMul(arg1,arg2)
//返回值：arg1乘以arg2的精确结果
function accMul(arg1,arg2)
{
	var m=0,s1=arg1.toString(),s2=arg2.toString();
	try{m+=s1.split(".")[1].length}catch(e){}
	try{m+=s2.split(".")[1].length}catch(e){}
	return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m)
}

//给Number类型增加一个mul方法，调用起来更加方便。
Number.prototype.mul = function (arg){
	return accMul(arg, this);
}

//加法函数，用来得到精确的加法结果
//说明：javascript的加法结果会有误差，在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。
//调用：accAdd(arg1,arg2)
//返回值：arg1加上arg2的精确结果
function accAdd(arg1,arg2){
	var r1,r2,m;
	try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
	try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
	m=Math.pow(10,Math.max(r1,r2))
	return (arg1*m+arg2*m)/m
}

//给Number类型增加一个add方法，调用起来更加方便。
Number.prototype.add = function (arg){
	return accAdd(arg,this);
}

//减法函数，用来得到精确的减法结果
function accSub(arg1,arg2){
　　 var r1,r2,m,n;
　　 try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
　　 try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
　　 m=Math.pow(10,Math.max(r1,r2));
　　 //last modify by deeka
　　 //动态控制精度长度
　　 n=(r1>=r2)?r1:r2;
　　 return ((arg1*m-arg2*m)/m).toFixed(n);
}
Number.prototype.sub = function (arg2){
	return accSub(this,arg2);
}

　　//document.writeln("未改进的运算：7*0.8="+7*0.8+"\<br>");
　　//document.writeln("改进以后的运算：7*0.8="+(7).mul(0.8)+"\<br>");
　　//你可以修改代码进行其它的运算测试

//根据url字符串获取相应的值
function getQueryStringRegExp(name, urlstr) {
	var reg = new RegExp("(^|\\?|&)" + name + "=([^&]*)(\\s|&|$)", "i");
	if (reg.test(val)) {
		return unescape(RegExp.$2.replace(/\+/g, " "));
	}
	return "";
}
function formatCurrency(num) { 
      num = num.toString().replace(/\$|\,/g,''); 
      if(isNaN(num)) 
      num = "0"; 
      sign = (num == (num = Math.abs(num))); 
      num = Math.floor(num*100+0.50000000001); 
      cents = num%100; 
      num = Math.floor(num/100).toString(); 
      if(cents <10) 
      cents = "0" + cents; 
      for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++) 
      num = num.substring(0,num.length-(4*i+3))+','+ 
      num.substring(num.length-(4*i+3)); 
      return (((sign)?'':'-') + num + '.' + cents); 
} 
