
function NumberUtils()
{
	this.formatCurrency=function formatCurrency(valueNumber,numDec)
	{
		var j=1;
		var returnValue="";
		var separator = ',';
		var rg = new RegExp(separator,"gi");
		var sign="";
		var number="";
		var decimal="";
		valueNumber=valueNumber.replace(rg,"");
		if (valueNumber.substring(0,1)=="-")
		{
			sign="-";
			valueNumber=valueNumber.substring(1,valueNumber.length);
		}
		var posDot=valueNumber.indexOf(".");
		if (posDot!=-1)
		{
			number=valueNumber.substring(0,posDot);
			decimal=valueNumber.substring(posDot+1,valueNumber.length);
		}
		else
		{
			number=valueNumber;
		}
		var i=number.length;
		while (i>0)
		{
			if (j % 4==0)
			{
				returnValue=number.substring(i-1,i)+","+returnValue;
				j=1;	
			}
			else
			{
				returnValue=number.substring(i-1,i)+returnValue;
			}
			i--;
			j++;
		}
		if (posDot!=-1) 
		{
			if (numDec==-1)//------ ตอนนี้เกิด event keypress ยังไม่ต้องไปหาจำนวนทศนิยมหลังจุด
			{
				decimal="."+decimal;
			}
			else
			{
				decimal="."+placeDecDigit(decimal,numDec);
				if (decimal=="") decimal="";
			}
		}
		return sign+returnValue+decimal;
	}

	this.placeDecDigit=function placeDecDigit(num,sdigit)
    {
	   var strNum;
	   var digit;
	   digit = parseFloat(sdigit);
	   if(digit == null)digit =0;
	   strNum = num.toString();
	   strNum = strNum.replace(".","");
	   if (num.length > digit) return num.substring(0,digit);
	   var strDigit = "";
	   for(x=strNum.length;x<digit;x++){
		   strDigit =strDigit + "0";
	   }
	   return strNum + strDigit;
    }	
	
	this.validateCurrency=function scValidateCurrency(currencyValue,limitLen,decimalLen)
	{
		 var positionDot, positionBeforeDot,positionAfterDot;
		 var beforeDotLen,afterDotLen,limitBeforeDotLen;
		 var valueBeforeDot,valueAfterDot;
		 var positionNegative;
		 var separator = ',';
		 var rg = new RegExp(separator,"gi")
		 if (currencyValue=="") return true;
		 positionNegative=currencyValue.indexOf("-",0)
		 if (positionNegative!=-1)
		 {
			 if (positionNegative!=0) return false;
			 currencyValue=currencyValue.substring(1,currencyValue.length);
		 }
		 limitBeforeDotLen=parseInt(limitLen); //-parseInt(decimalLen);
		 currencyValue=currencyValue.replace(rg,"");
		 positionDot=currencyValue.indexOf(".",0);
		 if (positionDot==-1)
		 {
			beforeDotLen=currencyValue.length;
			return !(beforeDotLen>limitBeforeDotLen);
		 }
		 else
		 {
			 valueBeforeDot=currencyValue.substring(0,positionDot);
			 valueAfterDot=currencyValue.substring(positionDot+1,currencyValue.length);
			 beforeDotLen=valueBeforeDot.length;
			 afterDotLen=valueAfterDot.length;
			 if (positionDot==0) return !(afterDotLen>decimalLen);
			 if (positionDot>0)
			 {
				if (beforeDotLen>limitBeforeDotLen) 	return false;
				if (afterDotLen>decimalLen) return false;
				return true;
			 }
		}
	}

}
