var fileNameEncode, fileNameDecode;
(function() {
var sEncode = [ '0', '1', '2', 'a', 'b', 'c', '-', '+', '_' ];
// реальный массив должен быть большим, напр. 0..9, a..z, другие символы
var sDecode = {};
var x1, i;
for( i = 0; i < sEncode.length; ++i )
sDecode[ sEncode[i] ] = i;
fileNameEncode = function( x ) {
x = +x; // преобразуем в десятичное число
var ret = "";
do {
ret = sEncode[ x % sEncode.length ] + ret;
x = Math.floor( x / sEncode.length );
} while( x );
return ret;
}
fileNameDecode = function( x ) {
x = x.toString();
var ret = 0;
for( i = 0; i < x.length; ++i )
ret = ret * sEncode.length + sDecode[ x.charAt(i) ];
return ret;
}
})();
var tt = fileNameEncode( '12345' );
alert( tt + " " + fileNameDecode( tt ) );