/**	@file
 *	@brief 62 進数文字列ライブラリ
 *
 *	62 進数文字列ライブラリです。
 *	このファイルは単独で使用できます。
 *
 *	@author bgvur
 *	@date   06/09/13
 */

var NUM_62_ENCODE_BASE_NUMBER = 62;
var NUM_62_ENCODE_TABLE = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';

/**
 *	10 進数の a を 62 進数文字列にして返します。
 *	a は正の整数でなければなりません。
 */
function num62Encode(a)
{
	var result = '';

	for (var i = a; i > 0; i = Math.floor(i / NUM_62_ENCODE_BASE_NUMBER))
		result = NUM_62_ENCODE_TABLE.charAt(i % NUM_62_ENCODE_BASE_NUMBER) + result;

	if (result == '')
		return '0';

	return result;
}

/**
 *	62 進数文字列の a を 10 進数にして返します。
 */
function num62Decode(a)
{
	var result = 0;

	for (var i = 0; i < a.length; i++)
	{
		result *= NUM_62_ENCODE_BASE_NUMBER;
		result += NUM_62_ENCODE_TABLE.indexOf(a.charAt(i));
	}

	return result;
}
