code: function(_binarray){
          var _index = 0,c,
              _result = [];
          while(_index<_binarray.length){
              c = _binarray[_index];
              // all the signs of asci => 1byte
              if (c<128){
                  _result.push(String.fromCharCode(c));
                  _index++;
              // all the signs between 127 and 2047 => 2byte
              }else if(c>191&&c<224){
                  _result.push(String.fromCharCode(((c&31)<<6)|(_binarray[_index+1]&63)));
                  _index += 2;
              // all the signs between 2048 and 66536 => 3byte
              }else{
                  _result.push(String.fromCharCode(((c&15)<<12)|((_binarray[_index+1]&63)<<6)|(_binarray[_index+2]&63)));
                  _index += 3;
              }
          }
          return _result.join('');
      }
docs: returns an array of byterepresenting dezimal numbers which represent the plaintext in an UTF-8 encoded version. Expects a string. This function includes an exception management for those nasty browsers like NN401, which returns negative decimal numbers for chars>128. I hate it!! This handling is unfortunately limited to the user's charset. Anyway, it works in most of the cases! Special signs with an unicode>256 return numbers, which can not be converted to the actual unicode and so not to the valid utf-8 representation. Anyway, this function does always return values which can not misinterpretd by RC4 or base64 en- or decoding, because every value is >0 and <255!! Arrays are faster and easier to handle in b64 encoding or encrypting....