function amount_key_press(event,elem) { // {{{
	var event = new Event(event);
	if (event.key != 0 && !parseInt(event.key)) {
		if (event.key != ","  && event.key != "." && event.key != 'backspace' && event.key != 'delete' 
			&& event.key != "left" && event.key != "right" && event.key != "up" && event.key != "down" && event.key != "tab") 
		{
			event.stopPropagation();
			event.stop();
			//alert(event.key);
		} 
	} 
	if (event.key == "enter") { if (elem) { elem.blur() } }//this.blur;
} // }}}

Number.implement({ // {{{

	/*
	Property: numberFormat
	Format a number with grouped thousands.

	Arguments:
	decimals, optional - integer, number of decimal percision; default, 2
	dec_point, optional - string, decimal point notation; default, '.'
	thousands_sep, optional - string, grouped thousands notation; default, ','

	Returns:
	a formatted version of number.

	Example:
	>(36432.556).numberFormat()  // returns 36,432.56
	>(36432.556).numberFormat(2, '.', ',')  // returns 36,432.56
	*/

	numberFormat : function(decimals, dec_point, thousands_sep) {
		decimals = Math.abs(decimals) + 1 ? decimals : 2;
		dec_point = dec_point || '.';
		thousands_sep = thousands_sep || ',';

		var matches = /(-)?(\d+)(\.\d+)?/.exec((isNaN(this) ? 0 : this) + ''); // returns matches[1] as sign, matches[2] as numbers and matches[2] as decimals
		var remainder = matches[2].length > 3 ? matches[2].length % 3 : 0;
		return (matches[1] ? matches[1] : '') + (remainder ? matches[2].substr(0, remainder) + thousands_sep : '') + matches[2].substr(remainder).replace(/(\d{3})(?=\d)/g, "$1" + thousands_sep) + 
		(decimals ? dec_point + (+matches[3] || 0).toFixed(decimals).substr(2) : '');
	}


}); // }}}

function parseNum(num) { // {{{
	if ( num.indexOf(",") > 0 ) {
		num = num.replace(/\./,'');
		num = num.replace(/,/,'.');
	}
	return parseFloat(num);
} // }}}


