﻿function blessNumber(pValue, piDecPts, bRemoveChars)
{

	var sReturn;
	var sInitVal;
	var sDecimalVal = "";
	var sTempDecimalVal;
	var sWholeVal;
	var iDecimalPosition;
	var sBeforeDecPoint;
	var sAfterDecPoint;
	var sTrailing;
	var i;
	
	if (bRemoveChars) {
		sInitVal = stripChars(pValue);
	} else {
		sInitVal = pValue;
	}

  	iDecimalPosition = sInitVal.indexOf('.');
	
	if (iDecimalPosition != -1) {
	
		sBeforeDecPoint 	= sInitVal.substring(0, iDecimalPosition);
		sAfterDecPoint 		= sInitVal.substring(iDecimalPosition + 1, sInitVal.length);
		sTempDecimalVal 	= sAfterDecPoint.substring(0, piDecPts);
		sTrailing 			= sAfterDecPoint.substring(0 + piDecPts, piDecPts + 1);
		
		if (piDecPts > 0) {
			if (parseInt(sTrailing) >= 5) {
				sDecimalVal = parseInt(sTempDecimalVal) + 1;
			} else {
				sDecimalVal = parseInt(sTempDecimalVal);
			}
			
			if (isNaN(sDecimalVal) || sDecimalVal == "") {sDecimalVal = "00"};
		    if (isNaN(sBeforeDecPoint) || sBeforeDecPoint == "") {sBeforeDecPoint = "0"};
			sReturn = sBeforeDecPoint + "." + sDecimalVal;
			
		} else {
			sReturn = sBeforeDecPoint;
		}
	} else {
		i = 1;
		while (i <= piDecPts)
		{
			sDecimalVal += "0";
			i++;
		}
		
		if (sDecimalVal != "") sDecimalVal = "." + sDecimalVal;	
		
		if (isNaN(sDecimalVal) || sDecimalVal == "") {sDecimalVal = "00"};
		if (isNaN(sInitVal) || sInitVal == "") {sInitVal = "0"};
		sReturn = sInitVal + sDecimalVal;
	}
	return sReturn;
}

function stripChars(pNumberVal)
{
	var objRegExp = new RegExp(/[^0123456789.]/);
	sNew = pNumberVal.replace(objRegExp, '');
	if (sNew.length < pNumberVal.length) {
		stripChars(sNew);
	}
	return sNew;
}