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

  1. package com.google.analytics.v4
  2. {
  3.    import com.google.analytics.campaign.CampaignInfo;
  4.    import com.google.analytics.campaign.CampaignManager;
  5.    import com.google.analytics.core.BrowserInfo;
  6.    import com.google.analytics.core.Buffer;
  7.    import com.google.analytics.core.DocumentInfo;
  8.    import com.google.analytics.core.DomainNameMode;
  9.    import com.google.analytics.core.EventInfo;
  10.    import com.google.analytics.core.EventTracker;
  11.    import com.google.analytics.core.GIFRequest;
  12.    import com.google.analytics.core.ServerOperationMode;
  13.    import com.google.analytics.core.Utils;
  14.    import com.google.analytics.data.X10;
  15.    import com.google.analytics.debug.DebugConfiguration;
  16.    import com.google.analytics.debug.VisualDebugMode;
  17.    import com.google.analytics.external.AdSenseGlobals;
  18.    import com.google.analytics.utils.Environment;
  19.    import com.google.analytics.utils.Protocols;
  20.    import com.google.analytics.utils.URL;
  21.    import com.google.analytics.utils.Variables;
  22.    
  23.    public class Tracker implements GoogleAnalyticsAPI
  24.    {
  25.       private var _adSense:AdSenseGlobals;
  26.       
  27.       private const EVENT_TRACKER_LABEL_KEY_NUM:int = 3;
  28.       
  29.       private var _eventTracker:X10;
  30.       
  31.       private const EVENT_TRACKER_VALUE_VALUE_NUM:int = 1;
  32.       
  33.       private var _noSessionInformation:Boolean = false;
  34.       
  35.       private var _browserInfo:BrowserInfo;
  36.       
  37.       private var _debug:DebugConfiguration;
  38.       
  39.       private var _isNewVisitor:Boolean = false;
  40.       
  41.       private var _buffer:Buffer;
  42.       
  43.       private var _config:Configuration;
  44.       
  45.       private var _x10Module:X10;
  46.       
  47.       private var _campaign:CampaignManager;
  48.       
  49.       private var _formatedReferrer:String;
  50.       
  51.       private var _timeStamp:Number;
  52.       
  53.       private var _info:Environment;
  54.       
  55.       private var _domainHash:Number;
  56.       
  57.       private const EVENT_TRACKER_PROJECT_ID:int = 5;
  58.       
  59.       private var _campaignInfo:CampaignInfo;
  60.       
  61.       private const EVENT_TRACKER_OBJECT_NAME_KEY_NUM:int = 1;
  62.       
  63.       private var _gifRequest:GIFRequest;
  64.       
  65.       private const EVENT_TRACKER_TYPE_KEY_NUM:int = 2;
  66.       
  67.       private var _hasInitData:Boolean = false;
  68.       
  69.       private var _account:String;
  70.       
  71.       public function Tracker(param1:String, param2:Configuration, param3:DebugConfiguration, param4:Environment, param5:Buffer, param6:GIFRequest, param7:AdSenseGlobals)
  72.       {
  73.          var _loc8_:* = null;
  74.          super();
  75.          _account = param1;
  76.          _config = param2;
  77.          _debug = param3;
  78.          _info = param4;
  79.          _buffer = param5;
  80.          _gifRequest = param6;
  81.          _adSense = param7;
  82.          if(!Utils.validateAccount(param1))
  83.          {
  84.             _loc8_ = "Account \"" + param1 + "\" is not valid.";
  85.             _debug.warning(_loc8_);
  86.             throw new Error(_loc8_);
  87.          }
  88.          _initData();
  89.       }
  90.       
  91.       private function _doTracking() : Boolean
  92.       {
  93.          if(_info.protocol != Protocols.file && _info.protocol != Protocols.none && _isNotGoogleSearch())
  94.          {
  95.             return true;
  96.          }
  97.          if(_config.allowLocalTracking)
  98.          {
  99.             return true;
  100.          }
  101.          return false;
  102.       }
  103.       
  104.       public function addOrganic(param1:String, param2:String) : void
  105.       {
  106.          _debug.info("addOrganic( " + [param1,param2].join(", ") + " )");
  107.          _config.organic.addSource(param1,param2);
  108.       }
  109.       
  110.       public function setAllowLinker(param1:Boolean) : void
  111.       {
  112.          _config.allowLinker = param1;
  113.          _debug.info("setAllowLinker( " + _config.allowLinker + " )");
  114.       }
  115.       
  116.       public function trackEvent(param1:String, param2:String, param3:String = null, param4:Number = NaN) : Boolean
  117.       {
  118.          var _loc5_:Boolean = true;
  119.          var _loc6_:int = 2;
  120.          if(param1 != "" && param2 != "")
  121.          {
  122.             _eventTracker.clearKey(EVENT_TRACKER_PROJECT_ID);
  123.             _eventTracker.clearValue(EVENT_TRACKER_PROJECT_ID);
  124.             _loc5_ = _eventTracker.setKey(EVENT_TRACKER_PROJECT_ID,EVENT_TRACKER_OBJECT_NAME_KEY_NUM,param1);
  125.             _loc5_ = _eventTracker.setKey(EVENT_TRACKER_PROJECT_ID,EVENT_TRACKER_TYPE_KEY_NUM,param2);
  126.             if(Boolean(param3) && param3 != "")
  127.             {
  128.                _loc5_ = _eventTracker.setKey(EVENT_TRACKER_PROJECT_ID,EVENT_TRACKER_LABEL_KEY_NUM,param3);
  129.                _loc6_ = 3;
  130.                if(!isNaN(param4))
  131.                {
  132.                   _loc5_ = _eventTracker.setValue(EVENT_TRACKER_PROJECT_ID,EVENT_TRACKER_VALUE_VALUE_NUM,param4);
  133.                   _loc6_ = 4;
  134.                }
  135.             }
  136.             if(_loc5_)
  137.             {
  138.                _debug.info("valid event tracking call\ncategory: " + param1 + "\naction: " + param2,VisualDebugMode.geek);
  139.                _sendXEvent(_eventTracker);
  140.             }
  141.          }
  142.          else
  143.          {
  144.             _debug.warning("event tracking call is not valid, failed!\ncategory: " + param1 + "\naction: " + param2,VisualDebugMode.geek);
  145.             _loc5_ = false;
  146.          }
  147.          switch(_loc6_)
  148.          {
  149.             case 4:
  150.                _debug.info("trackEvent( " + [param1,param2,param3,param4].join(", ") + " )");
  151.                break;
  152.             case 3:
  153.                _debug.info("trackEvent( " + [param1,param2,param3].join(", ") + " )");
  154.                break;
  155.             case 2:
  156.             default:
  157.                _debug.info("trackEvent( " + [param1,param2].join(", ") + " )");
  158.          }
  159.          return _loc5_;
  160.       }
  161.       
  162.       public function trackPageview(param1:String = "") : void
  163.       {
  164.          _debug.info("trackPageview( " + param1 + " )");
  165.          if(_doTracking())
  166.          {
  167.             _initData();
  168.             _trackMetrics(param1);
  169.             _noSessionInformation = false;
  170.          }
  171.          else
  172.          {
  173.             _debug.warning("trackPageview( " + param1 + " ) failed");
  174.          }
  175.       }
  176.       
  177.       public function setCookieTimeout(param1:int) : void
  178.       {
  179.          _config.conversionTimeout = param1;
  180.          _debug.info("setCookieTimeout( " + _config.conversionTimeout + " )");
  181.       }
  182.       
  183.       public function trackTrans() : void
  184.       {
  185.          _debug.warning("trackTrans() not implemented");
  186.       }
  187.       
  188.       public function setClientInfo(param1:Boolean) : void
  189.       {
  190.          _config.detectClientInfo = param1;
  191.          _debug.info("setClientInfo( " + _config.detectClientInfo + " )");
  192.       }
  193.       
  194.       public function linkByPost(param1:Object, param2:Boolean = false) : void
  195.       {
  196.          _debug.warning("linkByPost( " + [param1,param2].join(", ") + " ) not implemented");
  197.       }
  198.       
  199.       private function _initData() : void
  200.       {
  201.          var _loc1_:* = null;
  202.          var _loc2_:* = null;
  203.          if(!_hasInitData)
  204.          {
  205.             _updateDomainName();
  206.             _domainHash = _getDomainHash();
  207.             _timeStamp = Math.round(new Date().getTime() / 1000);
  208.             if(_debug.verbose)
  209.             {
  210.                _loc1_ = "";
  211.                _loc1_ += "_initData 0";
  212.                _loc1_ += "\ndomain name: " + _config.domainName;
  213.                _loc1_ += "\ndomain hash: " + _domainHash;
  214.                _loc1_ += "\ntimestamp:   " + _timeStamp + " (" + new Date(_timeStamp * 1000) + ")";
  215.                _debug.info(_loc1_,VisualDebugMode.geek);
  216.             }
  217.          }
  218.          if(_doTracking())
  219.          {
  220.             _handleCookie();
  221.          }
  222.          if(!_hasInitData)
  223.          {
  224.             if(_doTracking())
  225.             {
  226.                _formatedReferrer = _formatReferrer();
  227.                _browserInfo = new BrowserInfo(_config,_info);
  228.                _debug.info("browserInfo: " + _browserInfo.toURLString(),VisualDebugMode.advanced);
  229.                if(_config.campaignTracking)
  230.                {
  231.                   _campaign = new CampaignManager(_config,_debug,_buffer,_domainHash,_formatedReferrer,_timeStamp);
  232.                   _campaignInfo = _campaign.getCampaignInformation(_info.locationSearch,_noSessionInformation);
  233.                   _debug.info("campaignInfo: " + _campaignInfo.toURLString(),VisualDebugMode.advanced);
  234.                }
  235.             }
  236.             _x10Module = new X10();
  237.             _eventTracker = new X10();
  238.             _hasInitData = true;
  239.          }
  240.          if(_config.hasSiteOverlay)
  241.          {
  242.             _debug.warning("Site Overlay is not supported");
  243.          }
  244.          if(_debug.verbose)
  245.          {
  246.             _loc2_ = "";
  247.             _loc2_ += "_initData (misc)";
  248.             _loc2_ += "\nflash version: " + _info.flashVersion.toString(4);
  249.             _loc2_ += "\nprotocol: " + _info.protocol;
  250.             _loc2_ += "\ndefault domain name (auto): \"" + _info.domainName + "\"";
  251.             _loc2_ += "\nlanguage: " + _info.language;
  252.             _loc2_ += "\ndomain hash: " + _getDomainHash();
  253.             _loc2_ += "\nuser-agent: " + _info.userAgent;
  254.             _debug.info(_loc2_,VisualDebugMode.geek);
  255.          }
  256.       }
  257.       
  258.       public function getDetectTitle() : Boolean
  259.       {
  260.          _debug.info("getDetectTitle()");
  261.          return _config.detectTitle;
  262.       }
  263.       
  264.       public function resetSession() : void
  265.       {
  266.          _debug.info("resetSession()");
  267.          _buffer.resetCurrentSession();
  268.       }
  269.       
  270.       public function getClientInfo() : Boolean
  271.       {
  272.          _debug.info("getClientInfo()");
  273.          return _config.detectClientInfo;
  274.       }
  275.       
  276.       private function _sendXEvent(param1:X10 = null) : void
  277.       {
  278.          var _loc2_:Variables = null;
  279.          var _loc3_:EventInfo = null;
  280.          var _loc4_:Variables = null;
  281.          var _loc5_:Variables = null;
  282.          _initData();
  283.          if(_takeSample())
  284.          {
  285.             _loc2_ = new Variables();
  286.             _loc2_.URIencode = true;
  287.             _loc3_ = new EventInfo(true,_x10Module,param1);
  288.             _loc4_ = _loc3_.toVariables();
  289.             _loc5_ = _renderMetricsSearchVariables();
  290.             _loc2_.join(_loc4_,_loc5_);
  291.             _gifRequest.send(_account,_loc2_,false,true);
  292.          }
  293.       }
  294.       
  295.       public function setDetectFlash(param1:Boolean) : void
  296.       {
  297.          _config.detectFlash = param1;
  298.          _debug.info("setDetectFlash( " + _config.detectFlash + " )");
  299.       }
  300.       
  301.       public function setCampNameKey(param1:String) : void
  302.       {
  303.          _config.campaignKey.UCCN = param1;
  304.          var _loc2_:* = "setCampNameKey( " + _config.campaignKey.UCCN + " )";
  305.          if(_debug.mode == VisualDebugMode.geek)
  306.          {
  307.             _debug.info(_loc2_ + " [UCCN]");
  308.          }
  309.          else
  310.          {
  311.             _debug.info(_loc2_);
  312.          }
  313.       }
  314.       
  315.       private function _formatReferrer() : String
  316.       {
  317.          var _loc2_:String = null;
  318.          var _loc3_:URL = null;
  319.          var _loc4_:URL = null;
  320.          var _loc1_:String = _info.referrer;
  321.          if(_loc1_ == "" || _loc1_ == "localhost")
  322.          {
  323.             _loc1_ = "-";
  324.          }
  325.          else
  326.          {
  327.             _loc2_ = _info.domainName;
  328.             _loc3_ = new URL(_loc1_);
  329.             _loc4_ = new URL("http://" + _loc2_);
  330.             if(_loc3_.hostName == _loc2_)
  331.             {
  332.                return "-";
  333.             }
  334.             if(_loc4_.domain == _loc3_.domain)
  335.             {
  336.                if(_loc4_.subDomain != _loc3_.subDomain)
  337.                {
  338.                   _loc1_ = "0";
  339.                }
  340.             }
  341.             if(_loc1_.charAt(0) == "[" && Boolean(_loc1_.charAt(_loc1_.length - 1)))
  342.             {
  343.                _loc1_ = "-";
  344.             }
  345.          }
  346.          _debug.info("formated referrer: " + _loc1_,VisualDebugMode.advanced);
  347.          return _loc1_;
  348.       }
  349.       
  350.       private function _visitCode() : Number
  351.       {
  352.          if(_debug.verbose)
  353.          {
  354.             _debug.info("visitCode: " + _buffer.utma.sessionId,VisualDebugMode.geek);
  355.          }
  356.          return _buffer.utma.sessionId;
  357.       }
  358.       
  359.       public function createEventTracker(param1:String) : EventTracker
  360.       {
  361.          _debug.info("createEventTracker( " + param1 + " )");
  362.          return new EventTracker(param1,this);
  363.       }
  364.       
  365.       public function addItem(param1:String, param2:String, param3:String, param4:String, param5:Number, param6:int) : void
  366.       {
  367.          _debug.warning("addItem( " + [param1,param2,param3,param4,param5,param6].join(", ") + " ) not implemented");
  368.       }
  369.       
  370.       public function clearIgnoredOrganic() : void
  371.       {
  372.          _debug.info("clearIgnoredOrganic()");
  373.          _config.organic.clearIgnoredKeywords();
  374.       }
  375.       
  376.       public function setVar(param1:String) : void
  377.       {
  378.          var _loc2_:Variables = null;
  379.          if(param1 != "" && _isNotGoogleSearch())
  380.          {
  381.             _initData();
  382.             _buffer.utmv.domainHash = _domainHash;
  383.             _buffer.utmv.value = param1;
  384.             if(_debug.verbose)
  385.             {
  386.                _debug.info(_buffer.utmv.toString(),VisualDebugMode.geek);
  387.             }
  388.             _debug.info("setVar( " + param1 + " )");
  389.             if(_takeSample())
  390.             {
  391.                _loc2_ = new Variables();
  392.                _loc2_.utmt = "var";
  393.                _gifRequest.send(_account,_loc2_);
  394.             }
  395.          }
  396.          else
  397.          {
  398.             _debug.warning("setVar \"" + param1 + "\" is ignored");
  399.          }
  400.       }
  401.       
  402.       public function setDomainName(param1:String) : void
  403.       {
  404.          if(param1 == "auto")
  405.          {
  406.             _config.domain.mode = DomainNameMode.auto;
  407.          }
  408.          else if(param1 == "none")
  409.          {
  410.             _config.domain.mode = DomainNameMode.none;
  411.          }
  412.          else
  413.          {
  414.             _config.domain.mode = DomainNameMode.custom;
  415.             _config.domain.name = param1;
  416.          }
  417.          _updateDomainName();
  418.          _debug.info("setDomainName( " + _config.domainName + " )");
  419.       }
  420.       
  421.       private function _updateDomainName() : void
  422.       {
  423.          var _loc1_:String = null;
  424.          if(_config.domain.mode == DomainNameMode.auto)
  425.          {
  426.             _loc1_ = _info.domainName;
  427.             if(_loc1_.substring(0,4) == "www.")
  428.             {
  429.                _loc1_ = _loc1_.substring(4);
  430.             }
  431.             _config.domain.name = _loc1_;
  432.          }
  433.          _config.domainName = _config.domain.name.toLowerCase();
  434.          _debug.info("domain name: " + _config.domainName,VisualDebugMode.advanced);
  435.       }
  436.       
  437.       public function addTrans(param1:String, param2:String, param3:Number, param4:Number, param5:Number, param6:String, param7:String, param8:String) : Object
  438.       {
  439.          _debug.warning("addTrans( " + [param1,param2,param3,param4,param5,param6,param7,param8].join(", ") + " ) not implemented");
  440.          return null;
  441.       }
  442.       
  443.       private function _renderMetricsSearchVariables(param1:String = "") : Variables
  444.       {
  445.          var _loc4_:Variables = null;
  446.          var _loc2_:Variables = new Variables();
  447.          _loc2_.URIencode = true;
  448.          var _loc3_:DocumentInfo = new DocumentInfo(_config,_info,_formatedReferrer,param1,_adSense);
  449.          _debug.info("docInfo: " + _loc3_.toURLString(),VisualDebugMode.geek);
  450.          if(_config.campaignTracking)
  451.          {
  452.             _loc4_ = _campaignInfo.toVariables();
  453.          }
  454.          var _loc5_:Variables = _browserInfo.toVariables();
  455.          _loc2_.join(_loc3_.toVariables(),_loc5_,_loc4_);
  456.          return _loc2_;
  457.       }
  458.       
  459.       public function setCampContentKey(param1:String) : void
  460.       {
  461.          _config.campaignKey.UCCT = param1;
  462.          var _loc2_:* = "setCampContentKey( " + _config.campaignKey.UCCT + " )";
  463.          if(_debug.mode == VisualDebugMode.geek)
  464.          {
  465.             _debug.info(_loc2_ + " [UCCT]");
  466.          }
  467.          else
  468.          {
  469.             _debug.info(_loc2_);
  470.          }
  471.       }
  472.       
  473.       private function _handleCookie() : void
  474.       {
  475.          var _loc1_:* = null;
  476.          var _loc2_:* = null;
  477.          var _loc3_:Array = null;
  478.          var _loc4_:* = null;
  479.          if(_config.allowLinker)
  480.          {
  481.          }
  482.          if(_buffer.hasUTMA() && !_buffer.utma.isEmpty())
  483.          {
  484.             if(!_buffer.hasUTMB() || !_buffer.hasUTMC())
  485.             {
  486.                _buffer.updateUTMA(_timeStamp);
  487.                _noSessionInformation = true;
  488.             }
  489.             if(_debug.verbose)
  490.             {
  491.                _debug.info("from cookie " + _buffer.utma.toString(),VisualDebugMode.geek);
  492.             }
  493.          }
  494.          else
  495.          {
  496.             _debug.info("create a new utma",VisualDebugMode.advanced);
  497.             _buffer.utma.domainHash = _domainHash;
  498.             _buffer.utma.sessionId = _getUniqueSessionId();
  499.             _buffer.utma.firstTime = _timeStamp;
  500.             _buffer.utma.lastTime = _timeStamp;
  501.             _buffer.utma.currentTime = _timeStamp;
  502.             _buffer.utma.sessionCount = 1;
  503.             if(_debug.verbose)
  504.             {
  505.                _debug.info(_buffer.utma.toString(),VisualDebugMode.geek);
  506.             }
  507.             _noSessionInformation = true;
  508.             _isNewVisitor = true;
  509.          }
  510.          if(Boolean(_adSense.gaGlobal) && _adSense.dh == String(_domainHash))
  511.          {
  512.             if(_adSense.sid)
  513.             {
  514.                _buffer.utma.currentTime = Number(_adSense.sid);
  515.                if(_debug.verbose)
  516.                {
  517.                   _loc1_ = "";
  518.                   _loc1_ += "AdSense sid found\n";
  519.                   _loc1_ += "Override currentTime(" + _buffer.utma.currentTime + ") from AdSense sid(" + Number(_adSense.sid) + ")";
  520.                   _debug.info(_loc1_,VisualDebugMode.geek);
  521.                }
  522.             }
  523.             if(_isNewVisitor)
  524.             {
  525.                if(_adSense.sid)
  526.                {
  527.                   _buffer.utma.lastTime = Number(_adSense.sid);
  528.                   if(_debug.verbose)
  529.                   {
  530.                      _loc2_ = "";
  531.                      _loc2_ += "AdSense sid found (new visitor)\n";
  532.                      _loc2_ += "Override lastTime(" + _buffer.utma.lastTime + ") from AdSense sid(" + Number(_adSense.sid) + ")";
  533.                      _debug.info(_loc2_,VisualDebugMode.geek);
  534.                   }
  535.                }
  536.                if(_adSense.vid)
  537.                {
  538.                   _loc3_ = _adSense.vid.split(".");
  539.                   _buffer.utma.sessionId = Number(_loc3_[0]);
  540.                   _buffer.utma.firstTime = Number(_loc3_[1]);
  541.                   if(_debug.verbose)
  542.                   {
  543.                      _loc4_ = "";
  544.                      _loc4_ = _loc4_ + "AdSense vid found (new visitor)\n";
  545.                      _loc4_ = _loc4_ + ("Override sessionId(" + _buffer.utma.sessionId + ") from AdSense vid(" + Number(_loc3_[0]) + ")\n");
  546.                      _loc4_ = _loc4_ + ("Override firstTime(" + _buffer.utma.firstTime + ") from AdSense vid(" + Number(_loc3_[1]) + ")");
  547.                      _debug.info(_loc4_,VisualDebugMode.geek);
  548.                   }
  549.                }
  550.                if(_debug.verbose)
  551.                {
  552.                   _debug.info("AdSense modified : " + _buffer.utma.toString(),VisualDebugMode.geek);
  553.                }
  554.             }
  555.          }
  556.          _buffer.utmb.domainHash = _domainHash;
  557.          if(isNaN(_buffer.utmb.trackCount))
  558.          {
  559.             _buffer.utmb.trackCount = 0;
  560.          }
  561.          if(isNaN(_buffer.utmb.token))
  562.          {
  563.             _buffer.utmb.token = _config.tokenCliff;
  564.          }
  565.          if(isNaN(_buffer.utmb.lastTime))
  566.          {
  567.             _buffer.utmb.lastTime = _buffer.utma.currentTime;
  568.          }
  569.          _buffer.utmc.domainHash = _domainHash;
  570.          if(_debug.verbose)
  571.          {
  572.             _debug.info(_buffer.utmb.toString(),VisualDebugMode.advanced);
  573.             _debug.info(_buffer.utmc.toString(),VisualDebugMode.advanced);
  574.          }
  575.       }
  576.       
  577.       public function setLocalServerMode() : void
  578.       {
  579.          _config.serverMode = ServerOperationMode.local;
  580.          _debug.info("setLocalServerMode()");
  581.       }
  582.       
  583.       public function clearIgnoredRef() : void
  584.       {
  585.          _debug.info("clearIgnoredRef()");
  586.          _config.organic.clearIgnoredReferrals();
  587.       }
  588.       
  589.       public function setCampSourceKey(param1:String) : void
  590.       {
  591.          _config.campaignKey.UCSR = param1;
  592.          var _loc2_:* = "setCampSourceKey( " + _config.campaignKey.UCSR + " )";
  593.          if(_debug.mode == VisualDebugMode.geek)
  594.          {
  595.             _debug.info(_loc2_ + " [UCSR]");
  596.          }
  597.          else
  598.          {
  599.             _debug.info(_loc2_);
  600.          }
  601.       }
  602.       
  603.       public function getLocalGifPath() : String
  604.       {
  605.          _debug.info("getLocalGifPath()");
  606.          return _config.localGIFpath;
  607.       }
  608.       
  609.       public function setLocalGifPath(param1:String) : void
  610.       {
  611.          _config.localGIFpath = param1;
  612.          _debug.info("setLocalGifPath( " + _config.localGIFpath + " )");
  613.       }
  614.       
  615.       public function getVersion() : String
  616.       {
  617.          _debug.info("getVersion()");
  618.          return _config.version;
  619.       }
  620.       
  621.       public function setAllowAnchor(param1:Boolean) : void
  622.       {
  623.          _config.allowAnchor = param1;
  624.          _debug.info("setAllowAnchor( " + _config.allowAnchor + " )");
  625.       }
  626.       
  627.       private function _isNotGoogleSearch() : Boolean
  628.       {
  629.          var _loc1_:String = _config.domainName;
  630.          var _loc2_:* = _loc1_.indexOf("www.google.") < 0;
  631.          var _loc3_:* = _loc1_.indexOf(".google.") < 0;
  632.          var _loc4_:* = _loc1_.indexOf("google.") < 0;
  633.          var _loc5_:* = _loc1_.indexOf("google.org") > -1;
  634.          return _loc2_ || _loc3_ || _loc4_ || _config.cookiePath != "/" || _loc5_;
  635.       }
  636.       
  637.       public function setSampleRate(param1:Number) : void
  638.       {
  639.          if(param1 < 0)
  640.          {
  641.             _debug.warning("sample rate can not be negative, ignoring value.");
  642.          }
  643.          else
  644.          {
  645.             _config.sampleRate = param1;
  646.          }
  647.          _debug.info("setSampleRate( " + _config.sampleRate + " )");
  648.       }
  649.       
  650.       private function _takeSample() : Boolean
  651.       {
  652.          if(_debug.verbose)
  653.          {
  654.             _debug.info("takeSample: (" + _visitCode() % 10000 + ") < (" + _config.sampleRate * 10000 + ")",VisualDebugMode.geek);
  655.          }
  656.          return _visitCode() % 10000 < _config.sampleRate * 10000;
  657.       }
  658.       
  659.       public function setCookiePath(param1:String) : void
  660.       {
  661.          _config.cookiePath = param1;
  662.          _debug.info("setCookiePath( " + _config.cookiePath + " )");
  663.       }
  664.       
  665.       public function setAllowHash(param1:Boolean) : void
  666.       {
  667.          _config.allowDomainHash = param1;
  668.          _debug.info("setAllowHash( " + _config.allowDomainHash + " )");
  669.       }
  670.       
  671.       private function _generateUserDataHash() : Number
  672.       {
  673.          var _loc1_:String = "";
  674.          _loc1_ += _info.appName;
  675.          _loc1_ += _info.appVersion;
  676.          _loc1_ += _info.language;
  677.          _loc1_ += _info.platform;
  678.          _loc1_ += _info.userAgent.toString();
  679.          _loc1_ += _info.screenWidth + "x" + _info.screenHeight + _info.screenColorDepth;
  680.          _loc1_ += _info.referrer;
  681.          return Utils.generateHash(_loc1_);
  682.       }
  683.       
  684.       public function setCampNOKey(param1:String) : void
  685.       {
  686.          _config.campaignKey.UCNO = param1;
  687.          var _loc2_:* = "setCampNOKey( " + _config.campaignKey.UCNO + " )";
  688.          if(_debug.mode == VisualDebugMode.geek)
  689.          {
  690.             _debug.info(_loc2_ + " [UCNO]");
  691.          }
  692.          else
  693.          {
  694.             _debug.info(_loc2_);
  695.          }
  696.       }
  697.       
  698.       public function addIgnoredOrganic(param1:String) : void
  699.       {
  700.          _debug.info("addIgnoredOrganic( " + param1 + " )");
  701.          _config.organic.addIgnoredKeyword(param1);
  702.       }
  703.       
  704.       public function setLocalRemoteServerMode() : void
  705.       {
  706.          _config.serverMode = ServerOperationMode.both;
  707.          _debug.info("setLocalRemoteServerMode()");
  708.       }
  709.       
  710.       public function cookiePathCopy(param1:String) : void
  711.       {
  712.          _debug.warning("cookiePathCopy( " + param1 + " ) not implemented");
  713.       }
  714.       
  715.       public function setDetectTitle(param1:Boolean) : void
  716.       {
  717.          _config.detectTitle = param1;
  718.          _debug.info("setDetectTitle( " + _config.detectTitle + " )");
  719.       }
  720.       
  721.       public function setCampTermKey(param1:String) : void
  722.       {
  723.          _config.campaignKey.UCTR = param1;
  724.          var _loc2_:* = "setCampTermKey( " + _config.campaignKey.UCTR + " )";
  725.          if(_debug.mode == VisualDebugMode.geek)
  726.          {
  727.             _debug.info(_loc2_ + " [UCTR]");
  728.          }
  729.          else
  730.          {
  731.             _debug.info(_loc2_);
  732.          }
  733.       }
  734.       
  735.       public function getServiceMode() : ServerOperationMode
  736.       {
  737.          _debug.info("getServiceMode()");
  738.          return _config.serverMode;
  739.       }
  740.       
  741.       private function _trackMetrics(param1:String = "") : void
  742.       {
  743.          var _loc2_:Variables = null;
  744.          var _loc3_:Variables = null;
  745.          var _loc4_:Variables = null;
  746.          var _loc5_:EventInfo = null;
  747.          if(_takeSample())
  748.          {
  749.             _loc2_ = new Variables();
  750.             _loc2_.URIencode = true;
  751.             if(Boolean(_x10Module) && _x10Module.hasData())
  752.             {
  753.                _loc5_ = new EventInfo(false,_x10Module);
  754.                _loc3_ = _loc5_.toVariables();
  755.             }
  756.             _loc4_ = _renderMetricsSearchVariables(param1);
  757.             _loc2_.join(_loc3_,_loc4_);
  758.             _gifRequest.send(_account,_loc2_);
  759.          }
  760.       }
  761.       
  762.       public function setCampaignTrack(param1:Boolean) : void
  763.       {
  764.          _config.campaignTracking = param1;
  765.          _debug.info("setCampaignTrack( " + _config.campaignTracking + " )");
  766.       }
  767.       
  768.       public function addIgnoredRef(param1:String) : void
  769.       {
  770.          _debug.info("addIgnoredRef( " + param1 + " )");
  771.          _config.organic.addIgnoredReferral(param1);
  772.       }
  773.       
  774.       public function clearOrganic() : void
  775.       {
  776.          _debug.info("clearOrganic()");
  777.          _config.organic.clearEngines();
  778.       }
  779.       
  780.       public function getDetectFlash() : Boolean
  781.       {
  782.          _debug.info("getDetectFlash()");
  783.          return _config.detectFlash;
  784.       }
  785.       
  786.       public function setCampMediumKey(param1:String) : void
  787.       {
  788.          _config.campaignKey.UCMD = param1;
  789.          var _loc2_:* = "setCampMediumKey( " + _config.campaignKey.UCMD + " )";
  790.          if(_debug.mode == VisualDebugMode.geek)
  791.          {
  792.             _debug.info(_loc2_ + " [UCMD]");
  793.          }
  794.          else
  795.          {
  796.             _debug.info(_loc2_);
  797.          }
  798.       }
  799.       
  800.       private function _getUniqueSessionId() : Number
  801.       {
  802.          var _loc1_:Number = (Utils.generate32bitRandom() ^ _generateUserDataHash()) * 2147483647;
  803.          _debug.info("Session ID: " + _loc1_,VisualDebugMode.geek);
  804.          return _loc1_;
  805.       }
  806.       
  807.       private function _getDomainHash() : Number
  808.       {
  809.          if(!_config.domainName || _config.domainName == "" || _config.domain.mode == DomainNameMode.none)
  810.          {
  811.             _config.domainName = "";
  812.             return 1;
  813.          }
  814.          _updateDomainName();
  815.          if(_config.allowDomainHash)
  816.          {
  817.             return Utils.generateHash(_config.domainName);
  818.          }
  819.          return 1;
  820.       }
  821.       
  822.       public function setSessionTimeout(param1:int) : void
  823.       {
  824.          _config.sessionTimeout = param1;
  825.          _debug.info("setSessionTimeout( " + _config.sessionTimeout + " )");
  826.       }
  827.       
  828.       public function getAccount() : String
  829.       {
  830.          _debug.info("getAccount()");
  831.          return _account;
  832.       }
  833.       
  834.       public function link(param1:String, param2:Boolean = false) : void
  835.       {
  836.          _debug.warning("link( " + [param1,param2].join(", ") + " ) not implemented");
  837.       }
  838.       
  839.       public function setRemoteServerMode() : void
  840.       {
  841.          _config.serverMode = ServerOperationMode.remote;
  842.          _debug.info("setRemoteServerMode()");
  843.       }
  844.    }
  845. }
  846.  
  847.