function CalcolaRisparmio() {

	var o;
	var input;
	var output1;
	var output2;
	var submit;

	this.init = function init(_input, _output1, _output2, _submit) {
		o = this;
		o.input  = $(_input);
		o.output1 = $(_output1);
		o.output2 = $(_output2);
		o.submit = $(_submit);
		o.handleEvents();
	}

	this.isNumber = function isNumber(number) {
		var pattern = /^[0-9]{1,}$/;
		result = number.search(pattern);
		if (result == -1) {
			return false;
		} else {
			return true;
		}
	}
	
	this.formatField = 	function formatField() {
		prezzoString = $(this).val().replace(/(,)/g, "").replace(/(\.)/g, "");
		valPrezzo = parseFloat(prezzoString);
		if (valPrezzo) {
			$(this).val(valPrezzo.numberFormat("#,###"));
		} else {
			$(this).val("");
		}
	}

	this.handleEvents = function handleEvents() {
		o.input.click(o.cleanForm);
		o.input.keyup(o.formatField);
		o.input.blur(o.calculate);
		o.submit.click(o.calculate);
	}

	this.cleanForm = function cleanForm() {
		if (!o.isNumber($(this).val().replace(/(,)/g, "").replace(/(\.)/g, ""))) {
			o.input.val('');
			o.output1.val('');
			o.output2.val('');
		}
	}

	this.calculate = function calculate() {
		valore = o.input.val();
		valore = valore.replace(/(,)/g, "").replace(/(\.)/g, "");
		if (o.isNumber(valore)) {
			risultato1 = valore * 0.03;
			risultato2 = valore * 0.06;
			o.output1.val(risultato1.numberFormat("#,###")+' €');
			o.output2.val(risultato2.numberFormat("#,###")+' €');
		} else {
			o.input.val('valore non valido');
		}
		return false;
	}
}