
// JavaScript functions that handle any type of conversion

function convert_to_dollars(pennies, prefix_pennies_with_zero_dollar) {
	return convert_to_dollars(pennies, prefix_pennies_with_zero_dollar, false);
}

function convert_to_dollars(pennies, prefix_pennies_with_zero_dollar, show_commas) {
	var pennies_prefix = '';

	if (prefix_pennies_with_zero_dollar) {

		// if true, it will return 0.00 or 0.05 or 0.10
		// otherwise, it returns .00 or .05 or .10
		pennies_prefix = '0';
	}

	if (pennies == 0) {
		return pennies_prefix + '.00';
	} else {
		if (pennies < 10) {
			return pennies_prefix + '.0' + pennies;
		} else if (pennies >= 10 && pennies < 100) {
			return pennies_prefix + '.' + pennies;
		} else {
			if (pennies % 100 == 0) {
				if (show_commas) {
					return add_commas(pennies / 100 + '.00');
				} else {
					return pennies / 100 + '.00';
				}
			} else {
				if (show_commas) {
					return add_commas(pennies /100);
				} else {
					var penny_string = pennies.toString();
                    var delimiter = pennies.toString().length - 2;
                    var pretty_string = penny_string.substring(0, delimiter) + '.' + penny_string.substring(delimiter);
					return pretty_string;					
				}
			}
		}
	}
}

function convert_to_pennies(dollars) {
	var new_dollars = dollars;
	
	// remove dollar sign
	if (new_dollars.charAt(0) == '$') {
		new_dollars = new_dollars.substr(1);
	}
	
	// remove any commas
	new_dollars = new_dollars.replace(/\,/g,'')
	
	return new_dollars * 100;
}

function add_commas(nStr) {
	nStr += '';
	var x = nStr.split('.');
	var x1 = x[0];
	var x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	
	return x1 + x2;
}

