home *** CD-ROM | disk | FTP | other *** search
/ Ice Age Fan CD 1 / CD1_Scrat.iso / flash / data / game.swf / scripts / com / google / analytics / data / X10.as < prev   
Encoding:
Text File  |  2012-07-04  |  7.0 KB  |  255 lines

  1. package com.google.analytics.data
  2. {
  3.    public class X10
  4.    {
  5.       private var _delimEnd:String = ")";
  6.       
  7.       private var _minimum:int;
  8.       
  9.       private var _delimSet:String = "*";
  10.       
  11.       private var _escapeChar:String = "\'";
  12.       
  13.       private var _delimBegin:String = "(";
  14.       
  15.       private var _delimNumValue:String = "!";
  16.       
  17.       private var _key:String = "k";
  18.       
  19.       private var _set:Array;
  20.       
  21.       private var _hasData:int;
  22.       
  23.       private var _escapeCharMap:Object;
  24.       
  25.       private var _projectData:Object;
  26.       
  27.       private var _value:String = "v";
  28.       
  29.       public function X10()
  30.       {
  31.          _set = [_key,_value];
  32.          super();
  33.          _projectData = {};
  34.          _escapeCharMap = {};
  35.          _escapeCharMap[_escapeChar] = "\'0";
  36.          _escapeCharMap[_delimEnd] = "\'1";
  37.          _escapeCharMap[_delimSet] = "\'2";
  38.          _escapeCharMap[_delimNumValue] = "\'3";
  39.          _minimum = 1;
  40.       }
  41.       
  42.       private function _setInternal(param1:Number, param2:String, param3:Number, param4:String) : void
  43.       {
  44.          if(!hasProject(param1))
  45.          {
  46.             _projectData[param1] = {};
  47.          }
  48.          if(_projectData[param1][param2] == undefined)
  49.          {
  50.             _projectData[param1][param2] = [];
  51.          }
  52.          _projectData[param1][param2][param3] = param4;
  53.          _hasData += 1;
  54.       }
  55.       
  56.       private function _renderProject(param1:Object) : String
  57.       {
  58.          var _loc4_:int = 0;
  59.          var _loc5_:Array = null;
  60.          var _loc2_:String = "";
  61.          var _loc3_:Boolean = false;
  62.          var _loc6_:int = int(_set.length);
  63.          _loc4_ = 0;
  64.          while(_loc4_ < _loc6_)
  65.          {
  66.             _loc5_ = param1[_set[_loc4_]];
  67.             if(_loc5_)
  68.             {
  69.                if(_loc3_)
  70.                {
  71.                   _loc2_ += _set[_loc4_];
  72.                }
  73.                _loc2_ += _renderDataType(_loc5_);
  74.                _loc3_ = false;
  75.             }
  76.             else
  77.             {
  78.                _loc3_ = true;
  79.             }
  80.             _loc4_++;
  81.          }
  82.          return _loc2_;
  83.       }
  84.       
  85.       public function hasProject(param1:Number) : Boolean
  86.       {
  87.          return _projectData[param1];
  88.       }
  89.       
  90.       public function clearKey(param1:Number) : void
  91.       {
  92.          _clearInternal(param1,_key);
  93.       }
  94.       
  95.       private function _renderDataType(param1:Array) : String
  96.       {
  97.          var _loc3_:String = null;
  98.          var _loc4_:int = 0;
  99.          var _loc2_:Array = [];
  100.          _loc4_ = 0;
  101.          while(_loc4_ < param1.length)
  102.          {
  103.             if(param1[_loc4_] != undefined)
  104.             {
  105.                _loc3_ = "";
  106.                if(_loc4_ != _minimum && param1[_loc4_ - 1] == undefined)
  107.                {
  108.                   _loc3_ += _loc4_.toString();
  109.                   _loc3_ += _delimNumValue;
  110.                }
  111.                _loc3_ += _escapeExtensibleValue(param1[_loc4_]);
  112.                _loc2_.push(_loc3_);
  113.             }
  114.             _loc4_++;
  115.          }
  116.          return _delimBegin + _loc2_.join(_delimSet) + _delimEnd;
  117.       }
  118.       
  119.       public function getKey(param1:Number, param2:Number) : String
  120.       {
  121.          return _getInternal(param1,_key,param2) as String;
  122.       }
  123.       
  124.       public function hasData() : Boolean
  125.       {
  126.          return _hasData > 0;
  127.       }
  128.       
  129.       public function renderMergedUrlString(param1:X10 = null) : String
  130.       {
  131.          var _loc3_:String = null;
  132.          if(!param1)
  133.          {
  134.             return renderUrlString();
  135.          }
  136.          var _loc2_:Array = [param1.renderUrlString()];
  137.          for(_loc3_ in _projectData)
  138.          {
  139.             if(hasProject(Number(_loc3_)) && !param1.hasProject(Number(_loc3_)))
  140.             {
  141.                _loc2_.push(_loc3_ + _renderProject(_projectData[_loc3_]));
  142.             }
  143.          }
  144.          return _loc2_.join("");
  145.       }
  146.       
  147.       public function setValue(param1:Number, param2:Number, param3:Number) : Boolean
  148.       {
  149.          if(Math.round(param3) != param3 || isNaN(param3) || param3 == Infinity)
  150.          {
  151.             return false;
  152.          }
  153.          _setInternal(param1,_value,param2,param3.toString());
  154.          return true;
  155.       }
  156.       
  157.       public function renderUrlString() : String
  158.       {
  159.          var _loc2_:String = null;
  160.          var _loc1_:Array = [];
  161.          for(_loc2_ in _projectData)
  162.          {
  163.             if(hasProject(Number(_loc2_)))
  164.             {
  165.                _loc1_.push(_loc2_ + _renderProject(_projectData[_loc2_]));
  166.             }
  167.          }
  168.          return _loc1_.join("");
  169.       }
  170.       
  171.       private function _getInternal(param1:Number, param2:String, param3:Number) : Object
  172.       {
  173.          if(hasProject(param1) && _projectData[param1][param2] != undefined)
  174.          {
  175.             return _projectData[param1][param2][param3];
  176.          }
  177.          return undefined;
  178.       }
  179.       
  180.       public function setKey(param1:Number, param2:Number, param3:String) : Boolean
  181.       {
  182.          _setInternal(param1,_key,param2,param3);
  183.          return true;
  184.       }
  185.       
  186.       public function clearValue(param1:Number) : void
  187.       {
  188.          _clearInternal(param1,_value);
  189.       }
  190.       
  191.       private function _clearInternal(param1:Number, param2:String) : void
  192.       {
  193.          var _loc3_:Boolean = false;
  194.          var _loc4_:int = 0;
  195.          var _loc5_:int = 0;
  196.          if(hasProject(param1) && _projectData[param1][param2] != undefined)
  197.          {
  198.             _projectData[param1][param2] = undefined;
  199.             _loc3_ = true;
  200.             _loc5_ = int(_set.length);
  201.             _loc4_ = 0;
  202.             while(_loc4_ < _loc5_)
  203.             {
  204.                if(_projectData[param1][_set[_loc4_]] != undefined)
  205.                {
  206.                   _loc3_ = false;
  207.                   break;
  208.                }
  209.                _loc4_++;
  210.             }
  211.             if(_loc3_)
  212.             {
  213.                _projectData[param1] = undefined;
  214.                --_hasData;
  215.             }
  216.          }
  217.       }
  218.       
  219.       public function getValue(param1:Number, param2:Number) : *
  220.       {
  221.          var _loc3_:* = _getInternal(param1,_value,param2);
  222.          if(_loc3_ == null)
  223.          {
  224.             return null;
  225.          }
  226.          return Number(_loc3_);
  227.       }
  228.       
  229.       private function _escapeExtensibleValue(param1:String) : String
  230.       {
  231.          var _loc3_:int = 0;
  232.          var _loc4_:String = null;
  233.          var _loc5_:String = null;
  234.          var _loc2_:String = "";
  235.          _loc3_ = 0;
  236.          while(_loc3_ < param1.length)
  237.          {
  238.             _loc4_ = param1.charAt(_loc3_);
  239.             _loc5_ = _escapeCharMap[_loc4_];
  240.             if(_loc5_)
  241.             {
  242.                _loc2_ += _loc5_;
  243.             }
  244.             else
  245.             {
  246.                _loc2_ += _loc4_;
  247.             }
  248.             _loc3_++;
  249.          }
  250.          return _loc2_;
  251.       }
  252.    }
  253. }
  254.  
  255.