function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}

function ltrim(stringToTrim) {
	return stringToTrim.replace(/^\s+/,"");
}

function rtrim(stringToTrim) {
	return stringToTrim.replace(/\s+$/,"");
}

var STR_PAD_LEFT = 1;
var STR_PAD_RIGHT = 2;
var STR_PAD_BOTH = 3;

function str_pad(str, len, pad, dir) {
	if (typeof(len) == "undefined") { var len = 0; }
	if (typeof(pad) == "undefined") { var pad = ' '; }
	if (typeof(dir) == "undefined") { var dir = STR_PAD_LEFT; }

	if ((len + 1) >= str.length) {
		switch (dir){
			case STR_PAD_LEFT:
				str = Array(len + 1 - str.length).join(pad) + str;
			break;
			case STR_PAD_BOTH:
				var right = Math.ceil((padlen = len - str.length) / 2);
				var left = padlen - right;
				str = Array(left + 1).join(pad) + str + Array(right + 1).join(pad);
			break;
			default:
				str = str + Array(len + 1 - str.length).join(pad);
			break;
		} // switch
	}
	return str;
}

function numberFormat(num, digits, decSeparator, thousSeparator) {
	var fract = '';
	var parts = ('' + num).split('.');
	var base = parts[0];
	if (parts[1] != undefined) {
		fract = parts[1];
	}
	if (fract.length > digits) {
		fract = fract.slice(0, digits);
	} else {
		fract = str_pad(fract, digits, '0', STR_PAD_RIGHT);
	}
	var baseFormatted = '';
	while (base.length > 3) {
		baseFormatted = base.substring(base.length - 3, base.length) + baseFormatted;
		base = base.slice(0, base.length - 3);
		if (base.length > 0) {
			baseFormatted = thousSeparator + baseFormatted;
		}
	}
	if (base.length <= 3) {
		baseFormatted = base + baseFormatted;
	}
	return baseFormatted + decSeparator + fract;
}
