//************************************************************************
var Money = {
	dollarFormat: function(strUnformatted) {
		var decValue = parseFloat(strUnformatted);
		if (isNaN(decValue))
			return "";
		//round to two decimal places	
		decValue = Math.round(decValue*100)/100;
		//convert to string
		strValue = decValue.toString();
		//separate integer value and number after the decimal point
		arValue = strValue.split(".");
		if (arValue.length > 2)
			return "";	//invalid number	
		strIntValue = arValue[0];
		// add in thousands separators
		var j = 0;
		for (var i=strIntValue.length;i>=0;i--)
		{
			j = j + 1;
			if (j%4 == 0 && i!=0)
			{ //insert a thousands separator
				strIntValue = strIntValue.substring(0,i) + "," + strIntValue.substring(i,strIntValue.length);
			}
		}
		//get remainder after decimal point
		//padd with zeros if necessary	
		if (arValue.length > 1)
		{
			remValue = arValue[1];
			if (remValue.length == 1)
				remValue = remValue + "0";
		} else {
			remValue = "00";
		}
		//add dollar sign			
		var dollarValue = "$" + strIntValue  + "." + remValue;
		return dollarValue;
	},
	add: function(strValue1,strValue2) {
		
		if (isNaN(parseFloat(strValue1)) || isNaN(parseFloat(strValue2)))
			return "NaN";
		
		var decResult = (parseInt(parseFloat(strValue1)*100,10) + parseInt(parseFloat(strValue2)*100,10))/100;
		return decResult;
	},
	
	subtract: function(strValue1,strValue2)
	{
		if (isNaN(parseFloat(strValue1)) || isNaN(parseFloat(strValue2)))
			return "NaN";
		
		var decResult = (parseInt(parseFloat(strValue1)*100,10) - parseInt(parseFloat(strValue2)*100,10))/100;
		return decResult;	
	}, 
	
	isValidDollarValue: function(strNumber) {
		
		var decValue = parseFloat(strNumber);
		if (isNaN(decValue))
			return false;		
		strValue = decValue.toString();
		//separate integer value and number after the decimal point
		arValue = strValue.split(".");
		if (arValue.length > 2)
			return false; //invalid number	
		//get remainder after decimal point
		if (arValue.length > 1)
		{
			if (arValue[1].toString().length > 2)
				return false;
		}
		return true;
	}	
}
//************************************************************************
