home *** CD-ROM | disk | FTP | other *** search
- class RLE
- {
- function RLE()
- {
- }
- static function encode(str)
- {
- var str2encode = str;
- var _loc2_ = str2encode.split("");
- var _loc3_ = "";
- var counter = 1;
- var res = "";
- var _loc1_ = 0;
- while(_loc1_ < _loc2_.length)
- {
- if(_loc2_[_loc1_] == _loc3_)
- {
- counter++;
- _loc3_ = _loc2_[_loc1_];
- if(_loc1_ == _loc2_.length - 1)
- {
- res = res + counter + "." + _loc3_;
- }
- }
- else if(_loc3_ != "")
- {
- res = res + counter + "." + _loc3_;
- _loc3_ = _loc2_[_loc1_];
- counter = 1;
- if(_loc1_ == _loc2_.length - 1)
- {
- res = res + counter + "." + _loc2_[_loc1_];
- }
- }
- else
- {
- _loc3_ = _loc2_[_loc1_];
- }
- _loc1_ = _loc1_ + 1;
- }
- return res;
- }
- static function decode(str)
- {
- var str2decode = str;
- var _loc2_ = str2decode.split(".");
- var res = "";
- var _loc1_ = 0;
- while(_loc1_ < _loc2_.length - 1)
- {
- _loc2_[_loc1_] = _loc2_[_loc1_] + "." + _loc2_[_loc1_ + 1].substr(0,1);
- if(_loc1_ > 0)
- {
- _loc2_[_loc1_] = _loc2_[_loc1_].substr(1,_loc2_[_loc1_].length - 1);
- }
- _loc2_[_loc1_] = _loc2_[_loc1_].split(".");
- var _loc3_ = 0;
- while(_loc3_ < Number(_loc2_[_loc1_][0]))
- {
- res += _loc2_[_loc1_][1];
- _loc3_ = _loc3_ + 1;
- }
- _loc1_ = _loc1_ + 1;
- }
- return res;
- }
- }
-