/**
 * @author buenger 
 */
var Utilities = {
	
	/**
	 * @param 	{Number} 	a_value
	 * @return 	{Number} 					A number with is rounded to swiss currency format CHF. 
	 */
	round: function (a_value) {
		var rappen = Math.round(a_value*100);
		var mod = rappen%5;
		(mod > 2.5) ? rappen += (5-mod) : rappen -= mod;
		var betrag = rappen / 100;
		return betrag;
	},
	
	/**
	 * @param 	{Number} 	a_effInterest	An nominal interest, e.g. 12.5
	 * @return 	{Number}					The correspondent effective interest
	 */
	getEffInterest: function  (a_nomInterest) {
		return (Math.pow(((a_nomInterest / 1200) + 1) , 12) - 1) * 100;
	},
	
	/**
	 * @param 	{Number} 	a_effInterest	An effective interest, e.g. 12.5
	 * @return 	{Number}					The correspondent nominal interest
	 */
	getNomInterest: function  (a_effInterest) {
		return ((Math.pow((a_effInterest / 100 + 1),(1 / 12)) - 1) * 12) * 100;
	},
	
	/**
	 * @return 	{Number}	The current swiss VAT (MwSt. or Mehrwertsteuer)
	 */
	MWST: function  () {
		return 1.076;
	},
	
	inclVAT: function (a_number) {
		return a_number * Utilities.MWST();
	},
	
	exclVAT: function (a_number) {
		return a_number / Utilities.MWST();
	},
	
	/**
	 * 
	 * @param 	{Number} 	a_number
	 * @return 	{String}	a_string 		A currency-formatted string, e.g. 14'330.65
	 */
	getQuotedNumber: function (a_number) {
		var str, ary, i, value, decimals;
		value = a_number - a_number%1;
		decimals = a_number.toFixed(2);
		str = "";
		ary = value.toString().split("");
		for (i = ary.length-1; i >= 0; i--) {
			str = ((i-ary.length)%3 == 0 && (i-ary.length) != 0 && i != 0 ? "'": "") + ary[i] + str;
		}
		str += decimals.substring(decimals.length-3);
		return str;
	}
};

