1  /**
     2   * com.sekati.services.Urchin
     3   * @version 2.0.3
     4   * @author jason m horwitz | sekati.com
     5   * Copyright (C) 2007  jason m horwitz, Sekat LLC. All Rights Reserved.
     6   * Released under the MIT License: http://www.opensource.org/licenses/mit-license.php
     7   */
     8   
     9  import com.sekati.core.App;
    10  import flash.external.ExternalInterface;
    11  
    12  /**
    13   * Easily add Google Analytics (Urchin) tracking of Flash events
    14   * 
    15   * {@code Usage:
    16   * // Add google analytics javascript to your swf html page:
    17   * <script src="http://www.google-analytics.com/urchin.js" type="text/javascript"></script>
    18   * <script type="text/javascript">
    19   * _uacct = "UA-000000-0";
    20   * urchinTracker();
    21   * </script>
    22   * // enable swLiveConnect:
    23   * fscommand ("swLiveConnect", "true");
    24   * }
    25   * @see <a href="http://www.google.com/support/analytics/bin/answer.py?answer=27243&hl=en">http://www.google.com/support/analytics/bin/answer.py?answer=27243&hl=en</a>
    26   */
    27  class com.sekati.services.Urchin {
    28  
    29  	private static var _base:String = "/swf/";
    30  
    31  	/**
    32  	 * set site base
    33  	 * @return Void
    34  	 * {@code Usage:
    35  	 *  Urchin.setBase("homepage"); // set optional webroot [default: "site"]
    36  	 * }
    37  	 */
    38  	public static function setBase(base:String):Void {
    39  		_base = (base) ? "/" + base + "/" : _base;
    40  	}
    41  
    42  	/**
    43  	 * return site base
    44  	 * @return String
    45  	 */
    46  	public static function getBase():String {
    47  		return (_base);
    48  	}
    49  
    50  	/**
    51  	 * track a page event
    52  	 * @return Void
    53  	 * {@code Usage
    54  	 * 	Urchin.track("projects"); // register '/homepage/projects'
    55  	 * 	Urchin.track("projects/page1");	// register '/homepage/projects/page1'
    56  	 * }
    57  	 */
    58  	public static function track(pg:String):Void {
    59  		if( !App.TRACK_ENABLE ) return;
    60  		var pv:String = _base + pg;
    61  		App.log.info( "Urchin", "* Urchin.track ('" + pv + "')" );
    62  		ExternalInterface.call( "urchinTracker", pv );
    63  	}
    64  
    65  	private function Urchin() {
    66  	}
    67  }