/* simulate PHP str_replace() function */
function str_replace(from, to, str) {
	var s = new String(str);
	while (s.indexOf(from) >= 0) s = s.substring(0, s.indexOf(from)) + s.substring(s.indexOf(from) + from.length, s.length);
	return s;
}

/* simulate PHP number_format() function */
function number_format(d, dec) {
	var v_min = 0.000001;
	var dec_point = '.';
	var thousands_sep = ',';
	d = str_replace(thousands_sep, '', d);
	d = parseFloat(d);
	if (isNaN(d) || d < v_min) d = 0;

	dec = Math.floor(dec);
	if (dec < 0) dec = 0;

	var x = d.toString().split(dec_point);
	var x1 = x[0];
	var x2 = '';
	if (x.length > 1 && x[1].length <= dec) {
		x2 = dec_point + x[1];
	} else if (x.length == 1 && dec > 0) {
		x2 = dec_point;
	} else {
		var n = 1;
		for (var j = 0; j < dec; j++) n *= 10;
		d *= n;
		var rounded = Math.ceil(d);
		rounded /= n;
		rounded = rounded.toString();
		x = rounded.split(dec_point);
		x1 = x[0];
		x2 = x.length > 1 ? dec_point + x[1] : '';
		if (dec > 0 && x2 == '') x2 = dec_point;
	}
	if (x2.length > 0 && dec > 0) while (x2.length < 1 + dec) x2 += '0';
	x1 = x1.split('').reverse();
	var res = new Array();
	res[0] = x1[0];
	for (var i = 1; i < x1.length; i++) {
		if (i % 3 == 0) res[res.length] = thousands_sep;
		res[res.length] = x1[i];
	}
	res = res.reverse().join('');
	return res + x2;
}

/* old functions */
function o_number_format(d, dec) {
	var v_min = 0.000001;
	var dec_point = '.';
	var thousands_sep = ',';
	d = str_replace(thousands_sep, '', d);
	d = parseFloat(d);
	if (isNaN(d) || d < v_min) d = 0;
	dec = Math.floor(dec);
	if (dec < 0) dec = 0;
	var n = 1;
	for (var j = 0; j < dec; j++) n *= 10;
	n *= d;
	//var n = Math.pow(10, dec) * d;
	var rounded = Math.ceil(n);
	var is_negative = (rounded < 0);
	if (is_negative) rounded *= -1;
	rounded = rounded.toString();
	var integral = 0;
	var decimal = '';
	if (rounded.length > dec) {
		integral = rounded.substring(0, rounded.length - dec);
		decimal = rounded.substring(rounded.length - dec, rounded.length);
	} else {
		integral = '0';
		decimal = rounded;
		if (rounded.length < dec) for (var i = 0; i < rounded.length - dec; i++) decimal = '0' + decimal;
	}

	integral = integral.split('').reverse();
	var res = new Array();
	res[0] = integral[0];
	for (var i = 1; i < integral.length; i++) {
		if (i % 3 == 0) res[res.length] = thousands_sep;
		res[res.length] = integral[i];
	}
	res = res.reverse().join('');
	if (decimal) res += dec_point + decimal;
	if (is_negative) res = '-' + res;
	return res;
}

function validateFormat(fld, validChars) {
	var s = fld.value;
	var r = '';
	for (var i = 0, j = s.length; i < j; i++) if (validChars.indexOf(s.charAt(i)) >= 0) r += s.charAt(i);
	fld.value = r;
}

function phoneFormat(fld) {
	//validateFormat(fld, '0123456789-()');
	validateFormat(fld, '0123456789');
}

function nameFormat(fld) {
	validateFormat(fld, 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.-, ');
}

if (navigator.appName == 'Microsoft Internet Explorer' && navigator.userAgent.indexOf('MSIE 5.0') != -1) {
	document.writeln('<script type="text/javascript" src="' + BaseHref + '../jscript/currency_format_ie5.js"></script>');
} else {
	document.writeln('<script type="text/javascript" src="' + BaseHref + '../jscript/currency_format.js"></script>');
}