// Format moneyvalues to format ( E2%82%AC = € ) 0000
function formatMoneyValueNoFraction(value) {
	return decodeURI("%E2%82%AC") + " " + addThousandSeparators(parseInt(value));
}

// Format moneyvalues to format ( E2%82%AC = € ) 0000,00
function formatMoneyValue(value) {
	value = '' + value;
	value = value.replace("\.", ",");
	
	var containsComma = /,/;
	var oneFraction = /.*?(,\d)$/;
	var doubleFraction = /.*?(,(\d){2})$/;

	if (!containsComma.test(value)) {
		return decodeURI("%E2%82%AC") + " " + addThousandSeparators(value) + ",00";
	} else if (oneFraction.test(value)) {
		return decodeURI("%E2%82%AC") + " " + addThousandSeparators(value.split(",", 1)[0]) + "," + value.split(",", 2)[1] + "0";
	} else if (doubleFraction.test(value)) {
		return decodeURI("%E2%82%AC") + " " + addThousandSeparators(value.split(",", 1)[0]) + "," + value.split(",", 2)[1];
	}
}

function formatPercentageValue(value) {
	value = '' + value;
	value = value.replace("\.", ",");
	
	var containsComma = /,/;
	var oneFraction = /.*?(,\d)$/;
	var doubleFraction = /.*?(,(\d){2})$/;
	var tripleFraction = /.*?(,(\d){3})$/;

	if (!containsComma.test(value)) {
		return value + ",00 %";
	} else if (oneFraction.test(value)) {
		return value + "0 %";
	} else if (doubleFraction.test(value)) {
		return value + " %";
	}
}

function addThousandSeparators(value) {
	var length = parseInt(("" + value).length);
	var stringvalue = "" + value; // Make sure we have a string representation
	var intvalue = parseInt(value); // Cast to int
	
	var div = Math.floor((length - 1) / 3);
	
	var newValue = stringvalue.substring(0, parseInt(length - (div * 3)));

	for (var i=div; i > 0; i--) {
		newValue += "." + stringvalue.substring(parseInt(length - (i * 3)), parseInt(length - (i * 3) + 3));
	}
	return newValue;
}
