// JavaScript Document

$(document).ready(function(){
	$("#btn_fechar_message").click(function(){
		var clicado = $(this).attr("id");
		var aexibir = clicado.substring(4);
		$(".message_float").css("display","none");
	});
	(function($) {
	
		$.fn.priceFormat = function(options) {
	
			var defaults = {
				prefix: 'US$ ',
				centsSeparator: '.', 
				thousandsSeparator: ',',
				limit: false,
				centsLimit: 2
			};
	
			var options = $.extend(defaults, options);
	
			return this.each(function() {
	
				// pre defined options
				var obj = $(this);
				var is_number = /[0-9]/;
	
				// load the pluggings settings
				var prefix = options.prefix;
				var centsSeparator = options.centsSeparator;
				var thousandsSeparator = options.thousandsSeparator;
				var limit = options.limit;
				var centsLimit = options.centsLimit;
	
				// skip everything that isn't a number
				// and also skip the left zeroes
				function to_numbers (str) {
					var formatted = '';
					for (var i=0;i<(str.length);i++) {
						char = str.charAt(i);
						if (formatted.length==0 && char==0) char = false;
						if (char && char.match(is_number)) {
							if (limit) {
								if (formatted.length < limit) formatted = formatted+char;
							}else{
								formatted = formatted+char;
							}
						}
					}
					return formatted;
				}
	
				// format to fill with zeros to complete cents chars
				function fill_with_zeroes (str) {
					while (str.length<(centsLimit+1)) str = '0'+str;
					return str;
				}
	
				// format as price
				function price_format (str) {
	
					// formatting settings
					var formatted = fill_with_zeroes(to_numbers(str));
					var thousandsFormatted = '';
					var thousandsCount = 0;
	
					// split integer from cents
					var centsVal = formatted.substr(formatted.length-centsLimit,centsLimit);
					var integerVal = formatted.substr(0,formatted.length-centsLimit);
	
					// apply cents pontuation
					formatted = integerVal+centsSeparator+centsVal;
	
					// apply thousands pontuation
					if (thousandsSeparator) {
						for (var j=integerVal.length;j>0;j--) {
							char = integerVal.substr(j-1,1);
							thousandsCount++;
							if (thousandsCount%3==0) char = thousandsSeparator+char;
							thousandsFormatted = char+thousandsFormatted;
						}
						if (thousandsFormatted.substr(0,1)==thousandsSeparator) thousandsFormatted = thousandsFormatted.substring(1,thousandsFormatted.length);
						formatted = thousandsFormatted+centsSeparator+centsVal;
					}
	
					// apply the prefix
					if (prefix) formatted = prefix+formatted;
	
					return formatted;
	
				}
	
				// filter what user type (only numbers and functional keys)
				function key_check (e) {
			
					var code = (e.keyCode ? e.keyCode : e.which);
					var typed = String.fromCharCode(code);
					var functional = false;
					var str = obj.val();
					var newValue = price_format(str+typed);
					
					// allow keypad numbers, 0 to 9
					if(code >= 96 && code <= 105) functional = true;
	
					// check Backspace, Tab, Enter, and left/right arrows
					if (code ==  8) functional = true;
					if (code ==  9) functional = true;
					if (code == 13) functional = true;
					if (code == 37) functional = true;
					if (code == 39) functional = true;
	
					if (!functional) {
						e.preventDefault();
						e.stopPropagation();
						if (str!=newValue) obj.val(newValue);
					}
	
				}
	
				// inster formatted price as a value of an input field
				function price_it () {
					var str = obj.val();
					var price = price_format(str);
					if (str != price) obj.val(price);
				}
	
				// bind the actions
				$(this).bind('keydown', key_check);
				$(this).bind('keyup', price_it);
				if ($(this).val().length>0) price_it();
		
			});
		
		}; 		
		
	})(jQuery);

});


