var Text = {
	as:function(a1) { return '' + (a1 || '') },
	is:function(a1) { return '' + a1 === a1 },
	no:function(a1) {
		a1 = isNaN(a1 = Number(a1)) ? parseFloat(a1) : a1;
		return isNaN(a1) ? 0 : a1;
	},
	ex:function(a1,a2) {
		var mo = Math.floor(a2/2);
		if (mo > 1) return Text.ex(a1 + a1, mo) + (a2 % 2 && a1 || '');
		var fo = '';
		while (a2 > 0) { fo += a1; a2-- }
		return fo;
	}
}

Text.pad = function(a1,a2,a3) {
	return Text.is(a1)
		? a1 + Text.ex(a3 || ' ', a2 - a1.length)
		: Text.ex(a3 || ' ', a1 - ('' + a2).length) + a2;
}

Text.trim = function(a1,a2,a3) {
	a1 = Text.as(a1).replace(a3 || /^\s+|\s+$/g, '');
	return a2 && a1.length > a2 ? a1.substr(0,a2-1) + '\u2026' : a1; 
}

Text.line = function(a1) {
	var OS = navigator.platform, NL = OS.indexOf('Mac') != -1
		&& '\r' || OS.indexOf('Win') != -1
		&& '\r\n' || '\n';
	return Text.as(a1) + NL;
}

Text.code = function(a1) { return 'unescape("' + escape(Text.as(a1)) + '")' }
