summaryrefslogtreecommitdiff
path: root/js/dojo-1.6/dojox/analytics
diff options
context:
space:
mode:
Diffstat (limited to 'js/dojo-1.6/dojox/analytics')
-rw-r--r--js/dojo-1.6/dojox/analytics/README139
-rw-r--r--js/dojo-1.6/dojox/analytics/Urchin.js141
-rw-r--r--js/dojo-1.6/dojox/analytics/Urchin.xd.js145
-rw-r--r--js/dojo-1.6/dojox/analytics/_base.js143
-rw-r--r--js/dojo-1.6/dojox/analytics/_base.xd.js147
-rw-r--r--js/dojo-1.6/dojox/analytics/plugins/consoleMessages.js32
-rw-r--r--js/dojo-1.6/dojox/analytics/plugins/consoleMessages.xd.js37
-rw-r--r--js/dojo-1.6/dojox/analytics/plugins/dojo.js23
-rw-r--r--js/dojo-1.6/dojox/analytics/plugins/idle.js42
-rw-r--r--js/dojo-1.6/dojox/analytics/plugins/idle.xd.js47
-rw-r--r--js/dojo-1.6/dojox/analytics/plugins/mouseClick.js57
-rw-r--r--js/dojo-1.6/dojox/analytics/plugins/mouseClick.xd.js62
-rw-r--r--js/dojo-1.6/dojox/analytics/plugins/mouseOver.js98
-rw-r--r--js/dojo-1.6/dojox/analytics/plugins/mouseOver.xd.js103
-rw-r--r--js/dojo-1.6/dojox/analytics/plugins/window.js42
-rw-r--r--js/dojo-1.6/dojox/analytics/plugins/window.xd.js47
-rw-r--r--js/dojo-1.6/dojox/analytics/profiles/analytics.profile.js28
-rw-r--r--js/dojo-1.6/dojox/analytics/profiles/analytics.profile.xd.js32
-rw-r--r--js/dojo-1.6/dojox/analytics/profiles/analyticsInBase.profile.js29
-rw-r--r--js/dojo-1.6/dojox/analytics/profiles/analyticsInBase.profile.xd.js33
20 files changed, 1427 insertions, 0 deletions
diff --git a/js/dojo-1.6/dojox/analytics/README b/js/dojo-1.6/dojox/analytics/README
new file mode 100644
index 0000000..7299925
--- /dev/null
+++ b/js/dojo-1.6/dojox/analytics/README
@@ -0,0 +1,139 @@
+-------------------------------------------------------------------------------
+dojox.analytics
+-------------------------------------------------------------------------------
+Version 1.0
+Release date: 12/17/2007
+-------------------------------------------------------------------------------
+Project state:
+[base]: alpha
+[Urchin]: alpha
+-------------------------------------------------------------------------------
+Project authors
+ Dustin Machi (dmachi)
+ Peter Higgins (dante)
+-------------------------------------------------------------------------------
+Project description
+ analytics and client monitoring system. Including the base analytics
+system and any number of plugins enables logging of different system data
+back to the server. Plugins included at this time:
+
+ dojo - reports dojo startup collected information
+ window - reports available window information to the server
+ mouseOver - allows periodic sampling of mouseOver
+ mouseClick - reports any mouse clicks to the server
+ idle - reports idle/activity
+ consoleMessages - reports console.* messages to the server
+
+ Additionally, a Google Analytics (Urchin tracker) helper is included
+ in this project, though is unrelated to the Core dojox.analytics
+ project code.
+
+-------------------------------------------------------------------------------
+Dependencies:
+
+Dojo Core (package loader).
+-------------------------------------------------------------------------------
+Documentation
+
+Usage:
+
+The primary intended usage will be to create a custom build layer that includes
+the particular plugins you need for your project. However in practice you
+can use the system as such:
+
+ <script type="text/javascript" src="../../../dojo/dojo.js"
+ djConfig="parseOnLoad: true, isDebug: false, usePlainJson: true, sendMethod: 'script', sendInterval: 5000"></script>
+
+ <script language="JavaScript" type="text/javascript">
+ // include the analytics system
+ dojo.require("dojox.analytics");
+
+ //tracks mouse clicks on the page
+ dojo.require("dojox.analytics.plugins.mouseClick");
+
+ // this plugin returns the informatin dojo collects when it launches
+ dojo.require("dojox.analytics.plugins.dojo");
+
+ // this plugin return the information the window has when it launches
+ // and it also ties to a few events such as window.option
+ dojo.require("dojox.analytics.plugins.window");
+
+ // this plugin tracks console. message, It logs console.error, warn, and
+ // info messages to the tracker. It also defines console.rlog() which
+ // can be used to log only to the server. Note that if isDebug() is disabled
+ // you will still see the console messages on the sever, but not in the actual
+ // browser console.
+ dojo.require("dojox.analytics.plugins.consoleMessages");
+
+ // tracks where a mouse is on a page an what it is over, periodically sampling
+ // and storing this data
+ dojo.require("dojox.analytics.plugins.mouseOver");
+
+ //tracks when the user has gone idle
+ dojo.require("dojox.analytics.plugins.idle");
+
+ </script>
+
+When done using a build, none of the dojo.require() statement will be requires
+would already be in the build.
+
+Most of the plugins and the base itself have a number of configurable params
+that are passed in via the djConfig variable set. This approach is taken so that
+the parameters can be easily provided in the case of a build or for a custom
+dojo.js build with analytics built in. Examples for different build profiles
+are in the profiles directory.
+
+Available Configuration Parameters:
+
+ Base Configs
+ sendInterval - Normal send interval. Default 5000
+ sendMethod - "script" || "xhrPost"
+ inTransitRetry - Delay before retrying an a send if it was in transit
+ or if there is still data to be sent after a post.
+ Default 1000
+ analyticsUrl - url to send logging data to. defaults to the test php
+ file for now
+ maxRequestSize - Maximum size of GET style requests. Capped at 2000 for
+ IE, and 4000 otherwise
+
+ consoleMessages Config:
+
+ consoleLogFuncs - functions from the console object that you will log to
+ the server. If the console object doesn't exist
+ or a particuarl method doesn't exist it will be
+ created as a remote logging only method. This provides
+ a quick and convient way to automatically define
+ a remote logging funciton that includes the functions
+ name in the log. The 'rlog' in the default paramerters
+ is an example of this. Defaults to ["error", "warn", "info", "rlog"]
+
+ idle Config:
+
+ idleTime - Number of ms to be idle before being reported to the server as idle
+
+ mouseOver config:
+ targetProps - the properties whose values will be reported for each target from
+ a mouse over sample. defaults to ["id","className","localName","href", "spellcheck", "lang", "textContent", "value" ]
+
+ sampleDelay - the delay in ms between mouseover samples. Defaults to 2500
+
+ window config:
+ windowConnects - methods on the window objec that will be attached to
+ have its data passed to the server when called.
+
+
+Note that the basic usage of this system simply serializes json with toJson() when passed
+to the analytics addData() method. If data is passed that has circular references
+it will die. Take care not to do that or be surprised when it doens't work
+in those cases.
+
+-------------------------------------------------------------------------------
+Installation instructions
+
+Grab the following from the Dojo SVN Repository:
+http://svn.dojotoolkit.org/var/src/dojo/dojox/trunk/analytics
+
+Install into the following directory structure:
+/dojox/analytics/
+
+...which should be at the same level as your Dojo checkout.
diff --git a/js/dojo-1.6/dojox/analytics/Urchin.js b/js/dojo-1.6/dojox/analytics/Urchin.js
new file mode 100644
index 0000000..b6106e9
--- /dev/null
+++ b/js/dojo-1.6/dojox/analytics/Urchin.js
@@ -0,0 +1,141 @@
+/*
+ Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+
+if(!dojo._hasResource["dojox.analytics.Urchin"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojox.analytics.Urchin"] = true;
+dojo.provide("dojox.analytics.Urchin");
+
+/*=====
+dojo.mixin(djConfig,{
+ // urchin: String
+ // Used by `dojox.analytics.Urchin` as the default UA-123456-7 account
+ // number used when being created. Alternately, you can pass an acct:""
+ // parameter to the constructor a la: new dojox.analytics.Urchin({ acct:"UA-123456-7" });
+ urchin: ""
+});
+=====*/
+
+dojo.declare("dojox.analytics.Urchin", null, {
+ // summary: A Google-analytics helper, for post-onLoad inclusion of the tracker, and
+ // dynamic tracking during long-lived page cycles.
+ //
+ // description:
+ // A small class object will allows for lazy-loading the Google Analytics API
+ // at any point during a page lifecycle. Most commonly, Google-Analytics is loaded
+ // via a synchronous script tag in the body, which causes `dojo.addOnLoad` to
+ // stall until the external API has been completely loaded. The Urchin helper
+ // will load the API on the fly, and provide a convenient API to use, wrapping
+ // Analytics for Ajaxy or single page applications.
+ //
+ // The class can be instantiated two ways: Programatically, by passing an
+ // `acct:` parameter, or via Markup / dojoType and defining a djConfig
+ // parameter `urchin:`
+ //
+ // IMPORTANT:
+ // This module will not work simultaneously with the core dojox.analytics
+ // package. If you need the ability to run Google Analytics AND your own local
+ // analytics system, you MUST include dojox.analytics._base BEFORE dojox.analytics.Urchin
+ //
+ // example:
+ // | // create the tracker programatically:
+ // | var tracker = new dojox.analytics.Urchin({ acct:"UA-123456-7" });
+ //
+ // example:
+ // | // define the urchin djConfig option:
+ // | var djConfig = { urchin: "UA-123456-7" };
+ // |
+ // | // and in markup:
+ // | <div dojoType="dojox.analytics.Urchin"></div>
+ // | // or code:
+ // | new dojox.analytics.Urchin();
+ //
+ // example:
+ // | // create and define all analytics with one tag.
+ // | <div dojoType="dojox.analytics.Urchin" acct="UA-12345-67"></div>
+ //
+ // acct: String
+ // your GA urchin tracker account number. Overrides `djConfig.urchin`
+ acct: "",
+
+ constructor: function(args){
+ // summary:
+ // Initialize this Urchin instance. Immediately starts the load
+ // sequence, so defer construction until (ideally) after onLoad and
+ // potentially widget parsing.
+ this.tracker = null;
+ dojo.mixin(this, args);
+ this.acct = this.acct || dojo.config.urchin;
+
+ var re = /loaded|complete/,
+ gaHost = ("https:" == dojo.doc.location.protocol) ? "https://ssl." : "http://www.",
+ h = dojo.doc.getElementsByTagName("head")[0],
+ n = dojo.create('script', {
+ src: gaHost + "google-analytics.com/ga.js"
+ }, h);
+
+ n.onload = n.onreadystatechange = dojo.hitch(this, function(e){
+ if(e && e.type == "load" || re.test(n.readyState)){
+ n.onload = n.onreadystatechange = null;
+ this._gotGA();
+ h.removeChild(n);
+ }
+ });
+
+ },
+
+ _gotGA: function(){
+ // summary: initialize the tracker
+ this.tracker = _gat._getTracker(this.acct);
+ this.GAonLoad.apply(this, arguments);
+ },
+
+ GAonLoad: function(){
+ // summary:
+ // Stub function to fire when urchin is complete
+ // description:
+ // This function is executed when the tracker variable is
+ // complete and initialized. The initial trackPageView (with
+ // no arguments) is called here as well, so remeber to call
+ // manually if overloading this method.
+ //
+ // example:
+ // Create an Urchin tracker that will track a specific page on init
+ // after page load (or parsing, if parseOnLoad is true)
+ // | dojo.addOnLoad(function(){
+ // | new dojox.ananlytics.Urchin({
+ // | acct:"UA-12345-67",
+ // | GAonLoad: function(){
+ // | this.trackPageView("/custom-page");
+ // | }
+ // | });
+ // | });
+
+ this.trackPageView();
+ },
+
+ trackPageView: function(/* string */url){
+ // summary: A public API attached to this widget instance, allowing you
+ // Ajax-like notification of updates.
+ //
+ // url: String
+ // A location to tell the tracker to track, eg: "/my-ajaxy-endpoint"
+ //
+ // example:
+ // Track clicks from a container of anchors and populate a `ContentPane`
+ // | // 'tracker' is our `Urchin` instance, pane is the `ContentPane` ref.
+ // | dojo.connect(container, "onclick", function(e){
+ // | var ref = dojo.attr(e.target, "href");
+ // | tracker.trackPageView(ref);
+ // | pane.attr("href", ref);
+ // | });
+
+ this.tracker._trackPageview.apply(this, arguments);
+ }
+
+});
+
+}
diff --git a/js/dojo-1.6/dojox/analytics/Urchin.xd.js b/js/dojo-1.6/dojox/analytics/Urchin.xd.js
new file mode 100644
index 0000000..801b778
--- /dev/null
+++ b/js/dojo-1.6/dojox/analytics/Urchin.xd.js
@@ -0,0 +1,145 @@
+/*
+ Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+
+dojo._xdResourceLoaded(function(dojo, dijit, dojox){
+return {depends: [["provide", "dojox.analytics.Urchin"]],
+defineResource: function(dojo, dijit, dojox){if(!dojo._hasResource["dojox.analytics.Urchin"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojox.analytics.Urchin"] = true;
+dojo.provide("dojox.analytics.Urchin");
+
+/*=====
+dojo.mixin(djConfig,{
+ // urchin: String
+ // Used by `dojox.analytics.Urchin` as the default UA-123456-7 account
+ // number used when being created. Alternately, you can pass an acct:""
+ // parameter to the constructor a la: new dojox.analytics.Urchin({ acct:"UA-123456-7" });
+ urchin: ""
+});
+=====*/
+
+dojo.declare("dojox.analytics.Urchin", null, {
+ // summary: A Google-analytics helper, for post-onLoad inclusion of the tracker, and
+ // dynamic tracking during long-lived page cycles.
+ //
+ // description:
+ // A small class object will allows for lazy-loading the Google Analytics API
+ // at any point during a page lifecycle. Most commonly, Google-Analytics is loaded
+ // via a synchronous script tag in the body, which causes `dojo.addOnLoad` to
+ // stall until the external API has been completely loaded. The Urchin helper
+ // will load the API on the fly, and provide a convenient API to use, wrapping
+ // Analytics for Ajaxy or single page applications.
+ //
+ // The class can be instantiated two ways: Programatically, by passing an
+ // `acct:` parameter, or via Markup / dojoType and defining a djConfig
+ // parameter `urchin:`
+ //
+ // IMPORTANT:
+ // This module will not work simultaneously with the core dojox.analytics
+ // package. If you need the ability to run Google Analytics AND your own local
+ // analytics system, you MUST include dojox.analytics._base BEFORE dojox.analytics.Urchin
+ //
+ // example:
+ // | // create the tracker programatically:
+ // | var tracker = new dojox.analytics.Urchin({ acct:"UA-123456-7" });
+ //
+ // example:
+ // | // define the urchin djConfig option:
+ // | var djConfig = { urchin: "UA-123456-7" };
+ // |
+ // | // and in markup:
+ // | <div dojoType="dojox.analytics.Urchin"></div>
+ // | // or code:
+ // | new dojox.analytics.Urchin();
+ //
+ // example:
+ // | // create and define all analytics with one tag.
+ // | <div dojoType="dojox.analytics.Urchin" acct="UA-12345-67"></div>
+ //
+ // acct: String
+ // your GA urchin tracker account number. Overrides `djConfig.urchin`
+ acct: "",
+
+ constructor: function(args){
+ // summary:
+ // Initialize this Urchin instance. Immediately starts the load
+ // sequence, so defer construction until (ideally) after onLoad and
+ // potentially widget parsing.
+ this.tracker = null;
+ dojo.mixin(this, args);
+ this.acct = this.acct || dojo.config.urchin;
+
+ var re = /loaded|complete/,
+ gaHost = ("https:" == dojo.doc.location.protocol) ? "https://ssl." : "http://www.",
+ h = dojo.doc.getElementsByTagName("head")[0],
+ n = dojo.create('script', {
+ src: gaHost + "google-analytics.com/ga.js"
+ }, h);
+
+ n.onload = n.onreadystatechange = dojo.hitch(this, function(e){
+ if(e && e.type == "load" || re.test(n.readyState)){
+ n.onload = n.onreadystatechange = null;
+ this._gotGA();
+ h.removeChild(n);
+ }
+ });
+
+ },
+
+ _gotGA: function(){
+ // summary: initialize the tracker
+ this.tracker = _gat._getTracker(this.acct);
+ this.GAonLoad.apply(this, arguments);
+ },
+
+ GAonLoad: function(){
+ // summary:
+ // Stub function to fire when urchin is complete
+ // description:
+ // This function is executed when the tracker variable is
+ // complete and initialized. The initial trackPageView (with
+ // no arguments) is called here as well, so remeber to call
+ // manually if overloading this method.
+ //
+ // example:
+ // Create an Urchin tracker that will track a specific page on init
+ // after page load (or parsing, if parseOnLoad is true)
+ // | dojo.addOnLoad(function(){
+ // | new dojox.ananlytics.Urchin({
+ // | acct:"UA-12345-67",
+ // | GAonLoad: function(){
+ // | this.trackPageView("/custom-page");
+ // | }
+ // | });
+ // | });
+
+ this.trackPageView();
+ },
+
+ trackPageView: function(/* string */url){
+ // summary: A public API attached to this widget instance, allowing you
+ // Ajax-like notification of updates.
+ //
+ // url: String
+ // A location to tell the tracker to track, eg: "/my-ajaxy-endpoint"
+ //
+ // example:
+ // Track clicks from a container of anchors and populate a `ContentPane`
+ // | // 'tracker' is our `Urchin` instance, pane is the `ContentPane` ref.
+ // | dojo.connect(container, "onclick", function(e){
+ // | var ref = dojo.attr(e.target, "href");
+ // | tracker.trackPageView(ref);
+ // | pane.attr("href", ref);
+ // | });
+
+ this.tracker._trackPageview.apply(this, arguments);
+ }
+
+});
+
+}
+
+}};});
diff --git a/js/dojo-1.6/dojox/analytics/_base.js b/js/dojo-1.6/dojox/analytics/_base.js
new file mode 100644
index 0000000..e41066f
--- /dev/null
+++ b/js/dojo-1.6/dojox/analytics/_base.js
@@ -0,0 +1,143 @@
+/*
+ Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+
+if(!dojo._hasResource["dojox.analytics._base"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojox.analytics._base"] = true;
+dojo.provide("dojox.analytics._base");
+
+dojox.analytics = function(){
+ // summary: TODOC
+ // where we store data until we're ready to send it off.
+ //
+ //the data queue;
+ this._data = [];
+
+ //id of messages for this session/page
+ this._id = 1;
+
+ //some default values
+ this.sendInterval = dojo.config["sendInterval"] || 5000;
+ this.inTransitRetry = dojo.config["inTransitRetry"] || 200;
+ this.dataUrl = dojo.config["analyticsUrl"] || dojo.moduleUrl("dojox.analytics.logger", "dojoxAnalytics.php");
+ this.sendMethod = dojo.config["sendMethod"] || "xhrPost";
+ this.maxRequestSize = dojo.isIE ? 2000 : dojo.config["maxRequestSize"] || 4000;
+
+ //while we can go ahead and being logging as soon as this constructor is completed
+ //we're not going to schedule pushing data to the server until after the page
+ //has completed loading
+ dojo.addOnLoad(this, "schedulePusher");
+ dojo.addOnUnload(this, "pushData", true);
+};
+
+dojo.extend(dojox.analytics, {
+ schedulePusher: function(/* Int */interval){
+ // summary: Schedule the data pushing routines to happen in interval ms
+ setTimeout(dojo.hitch(this, "checkData"), interval || this.sendInterval);
+ },
+
+ addData: function(dataType, data){
+ // summary:
+ // add data to the queue. Will be pusshed to the server on the next
+ // data push
+
+ if(arguments.length > 2){
+ // FIXME: var c = dojo._toArray(arguments) ?
+ var c = [];
+ for(var i = 1; i < arguments.length; i++){
+ c.push(arguments[i]);
+ }
+ data = c;
+ }
+
+ this._data.push({ plugin: dataType, data: data });
+ },
+
+ checkData: function(){
+ // summary: TODOC?
+ if(this._inTransit){
+ this.schedulePusher(this.inTransitRetry);
+ return;
+ }
+
+ if(this.pushData()){ return; }
+ this.schedulePusher();
+ },
+
+ pushData: function(){
+ // summary:
+ // pushes data to the server if any exists. If a push is done, return
+ // the deferred after hooking up completion callbacks. If there is no data
+ // to be pushed, return false;
+ if(this._data.length){
+ //clear the queue
+ this._inTransit = this._data;
+ this._data = [];
+ var def;
+ switch(this.sendMethod){
+ case "script":
+ def = dojo.io.script.get({
+ url: this.getQueryPacket(),
+ preventCache: 1,
+ callbackParamName: "callback"
+ });
+ break;
+ case "xhrPost":
+ default:
+ def = dojo.xhrPost({
+ url:this.dataUrl,
+ content:{
+ id: this._id++,
+ data: dojo.toJson(this._inTransit)
+ }
+ });
+ break;
+ }
+ def.addCallback(this, "onPushComplete");
+ return def;
+ }
+ return false;
+ },
+
+ getQueryPacket: function(){
+ // summary: TODOC
+ while(true){
+ var content = {
+ id: this._id++,
+ data: dojo.toJson(this._inTransit)
+ };
+
+ //FIXME would like a much better way to get the query down to lenght
+ var query = this.dataUrl + '?' + dojo.objectToQuery(content);
+ if(query.length > this.maxRequestSize){
+ this._data.unshift(this._inTransit.pop());
+ this._split = 1;
+ }else{
+ return query;
+ }
+ }
+ },
+
+ onPushComplete: function(results){
+ // summary:
+ // If our data push was successfully, remove the _inTransit data and schedule the next
+ // parser run.
+ if(this._inTransit){
+ delete this._inTransit;
+ }
+
+ if(this._data.length > 0){
+ this.schedulePusher(this.inTransitRetry);
+ }else{
+ this.schedulePusher();
+ }
+ }
+});
+
+//create the analytics singleton
+dojox.analytics = new dojox.analytics();
+
+}
diff --git a/js/dojo-1.6/dojox/analytics/_base.xd.js b/js/dojo-1.6/dojox/analytics/_base.xd.js
new file mode 100644
index 0000000..8a54a7c
--- /dev/null
+++ b/js/dojo-1.6/dojox/analytics/_base.xd.js
@@ -0,0 +1,147 @@
+/*
+ Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+
+dojo._xdResourceLoaded(function(dojo, dijit, dojox){
+return {depends: [["provide", "dojox.analytics._base"]],
+defineResource: function(dojo, dijit, dojox){if(!dojo._hasResource["dojox.analytics._base"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojox.analytics._base"] = true;
+dojo.provide("dojox.analytics._base");
+
+dojox.analytics = function(){
+ // summary: TODOC
+ // where we store data until we're ready to send it off.
+ //
+ //the data queue;
+ this._data = [];
+
+ //id of messages for this session/page
+ this._id = 1;
+
+ //some default values
+ this.sendInterval = dojo.config["sendInterval"] || 5000;
+ this.inTransitRetry = dojo.config["inTransitRetry"] || 200;
+ this.dataUrl = dojo.config["analyticsUrl"] || dojo.moduleUrl("dojox.analytics.logger", "dojoxAnalytics.php");
+ this.sendMethod = dojo.config["sendMethod"] || "xhrPost";
+ this.maxRequestSize = dojo.isIE ? 2000 : dojo.config["maxRequestSize"] || 4000;
+
+ //while we can go ahead and being logging as soon as this constructor is completed
+ //we're not going to schedule pushing data to the server until after the page
+ //has completed loading
+ dojo.addOnLoad(this, "schedulePusher");
+ dojo.addOnUnload(this, "pushData", true);
+};
+
+dojo.extend(dojox.analytics, {
+ schedulePusher: function(/* Int */interval){
+ // summary: Schedule the data pushing routines to happen in interval ms
+ setTimeout(dojo.hitch(this, "checkData"), interval || this.sendInterval);
+ },
+
+ addData: function(dataType, data){
+ // summary:
+ // add data to the queue. Will be pusshed to the server on the next
+ // data push
+
+ if(arguments.length > 2){
+ // FIXME: var c = dojo._toArray(arguments) ?
+ var c = [];
+ for(var i = 1; i < arguments.length; i++){
+ c.push(arguments[i]);
+ }
+ data = c;
+ }
+
+ this._data.push({ plugin: dataType, data: data });
+ },
+
+ checkData: function(){
+ // summary: TODOC?
+ if(this._inTransit){
+ this.schedulePusher(this.inTransitRetry);
+ return;
+ }
+
+ if(this.pushData()){ return; }
+ this.schedulePusher();
+ },
+
+ pushData: function(){
+ // summary:
+ // pushes data to the server if any exists. If a push is done, return
+ // the deferred after hooking up completion callbacks. If there is no data
+ // to be pushed, return false;
+ if(this._data.length){
+ //clear the queue
+ this._inTransit = this._data;
+ this._data = [];
+ var def;
+ switch(this.sendMethod){
+ case "script":
+ def = dojo.io.script.get({
+ url: this.getQueryPacket(),
+ preventCache: 1,
+ callbackParamName: "callback"
+ });
+ break;
+ case "xhrPost":
+ default:
+ def = dojo.xhrPost({
+ url:this.dataUrl,
+ content:{
+ id: this._id++,
+ data: dojo.toJson(this._inTransit)
+ }
+ });
+ break;
+ }
+ def.addCallback(this, "onPushComplete");
+ return def;
+ }
+ return false;
+ },
+
+ getQueryPacket: function(){
+ // summary: TODOC
+ while(true){
+ var content = {
+ id: this._id++,
+ data: dojo.toJson(this._inTransit)
+ };
+
+ //FIXME would like a much better way to get the query down to lenght
+ var query = this.dataUrl + '?' + dojo.objectToQuery(content);
+ if(query.length > this.maxRequestSize){
+ this._data.unshift(this._inTransit.pop());
+ this._split = 1;
+ }else{
+ return query;
+ }
+ }
+ },
+
+ onPushComplete: function(results){
+ // summary:
+ // If our data push was successfully, remove the _inTransit data and schedule the next
+ // parser run.
+ if(this._inTransit){
+ delete this._inTransit;
+ }
+
+ if(this._data.length > 0){
+ this.schedulePusher(this.inTransitRetry);
+ }else{
+ this.schedulePusher();
+ }
+ }
+});
+
+//create the analytics singleton
+dojox.analytics = new dojox.analytics();
+
+}
+
+}};});
diff --git a/js/dojo-1.6/dojox/analytics/plugins/consoleMessages.js b/js/dojo-1.6/dojox/analytics/plugins/consoleMessages.js
new file mode 100644
index 0000000..80c91dd
--- /dev/null
+++ b/js/dojo-1.6/dojox/analytics/plugins/consoleMessages.js
@@ -0,0 +1,32 @@
+/*
+ Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+
+if(!dojo._hasResource["dojox.analytics.plugins.consoleMessages"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojox.analytics.plugins.consoleMessages"] = true;
+dojo.require("dojox.analytics._base");
+dojo.provide("dojox.analytics.plugins.consoleMessages");
+
+dojox.analytics.plugins.consoleMessages = new (function(){
+ // summary:
+ // plugin to have analyitcs return the base info dojo collects
+ this.addData = dojo.hitch(dojox.analytics, "addData", "consoleMessages");
+
+ var lvls = dojo.config["consoleLogFuncs"] || ["error", "warn", "info", "rlog"];
+ if(!console){
+ console = {};
+ }
+
+ for(var i=0; i < lvls.length; i++){
+ if(console[lvls[i]]){
+ dojo.connect(console, lvls[i], dojo.hitch(this, "addData", lvls[i]));
+ }else{
+ console[lvls[i]] = dojo.hitch(this, "addData", lvls[i]);
+ }
+ }
+})();
+
+}
diff --git a/js/dojo-1.6/dojox/analytics/plugins/consoleMessages.xd.js b/js/dojo-1.6/dojox/analytics/plugins/consoleMessages.xd.js
new file mode 100644
index 0000000..dd2d820
--- /dev/null
+++ b/js/dojo-1.6/dojox/analytics/plugins/consoleMessages.xd.js
@@ -0,0 +1,37 @@
+/*
+ Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+
+dojo._xdResourceLoaded(function(dojo, dijit, dojox){
+return {depends: [["require", "dojox.analytics._base"],
+["provide", "dojox.analytics.plugins.consoleMessages"]],
+defineResource: function(dojo, dijit, dojox){if(!dojo._hasResource["dojox.analytics.plugins.consoleMessages"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojox.analytics.plugins.consoleMessages"] = true;
+dojo.require("dojox.analytics._base");
+dojo.provide("dojox.analytics.plugins.consoleMessages");
+
+dojox.analytics.plugins.consoleMessages = new (function(){
+ // summary:
+ // plugin to have analyitcs return the base info dojo collects
+ this.addData = dojo.hitch(dojox.analytics, "addData", "consoleMessages");
+
+ var lvls = dojo.config["consoleLogFuncs"] || ["error", "warn", "info", "rlog"];
+ if(!console){
+ console = {};
+ }
+
+ for(var i=0; i < lvls.length; i++){
+ if(console[lvls[i]]){
+ dojo.connect(console, lvls[i], dojo.hitch(this, "addData", lvls[i]));
+ }else{
+ console[lvls[i]] = dojo.hitch(this, "addData", lvls[i]);
+ }
+ }
+})();
+
+}
+
+}};});
diff --git a/js/dojo-1.6/dojox/analytics/plugins/dojo.js b/js/dojo-1.6/dojox/analytics/plugins/dojo.js
new file mode 100644
index 0000000..a7b24ff
--- /dev/null
+++ b/js/dojo-1.6/dojox/analytics/plugins/dojo.js
@@ -0,0 +1,23 @@
+if(!dojo._hasResource["dojox.analytics.plugins.dojo"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojox.analytics.plugins.dojo"] = true;
+dojo.require("dojox.analytics._base");
+dojo.provide("dojox.analytics.plugins.dojo");
+
+dojox.analytics.plugins.dojo = new (function(){
+ // summary:
+ // plugin to have analyitcs return the base info dojo collects
+ this.addData = dojo.hitch(dojox.analytics, "addData", "dojo");
+ dojo.addOnLoad(dojo.hitch(this, function(){
+ var data = {};
+ for(var i in dojo){
+ if ((i=="version") || ((!dojo.isObject(dojo[i]))&&(i[0]!="_"))){
+ data[i]=dojo[i];
+ }
+ }
+
+ if (dojo.config){data.djConfig=dojo.config}
+ this.addData(data);
+ }));
+})();
+
+}
diff --git a/js/dojo-1.6/dojox/analytics/plugins/idle.js b/js/dojo-1.6/dojox/analytics/plugins/idle.js
new file mode 100644
index 0000000..201a3b3
--- /dev/null
+++ b/js/dojo-1.6/dojox/analytics/plugins/idle.js
@@ -0,0 +1,42 @@
+/*
+ Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+
+if(!dojo._hasResource["dojox.analytics.plugins.idle"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojox.analytics.plugins.idle"] = true;
+dojo.require("dojox.analytics._base");
+dojo.provide("dojox.analytics.plugins.idle");
+
+// window startup data
+dojox.analytics.plugins.idle = new (function(){
+ this.addData = dojo.hitch(dojox.analytics, "addData", "idle");
+ this.idleTime=dojo.config["idleTime"] || 60000;
+ this.idle=true;
+
+ this.setIdle = function(){
+ this.addData("isIdle");
+ this.idle=true;
+
+ }
+
+ dojo.addOnLoad(dojo.hitch(this, function(){
+ var idleResets=["onmousemove","onkeydown","onclick","onscroll"];
+ for (var i=0;i<idleResets.length;i++){
+ dojo.connect(dojo.doc,idleResets[i],this, function(e){
+ if (this.idle){
+ this.idle=false;
+ this.addData("isActive");
+ this.idleTimer=setTimeout(dojo.hitch(this,"setIdle"), this.idleTime);
+ }else{
+ clearTimeout(this.idleTimer);
+ this.idleTimer=setTimeout(dojo.hitch(this,"setIdle"), this.idleTime);
+ }
+ });
+ }
+ }));
+})();
+
+}
diff --git a/js/dojo-1.6/dojox/analytics/plugins/idle.xd.js b/js/dojo-1.6/dojox/analytics/plugins/idle.xd.js
new file mode 100644
index 0000000..67821c0
--- /dev/null
+++ b/js/dojo-1.6/dojox/analytics/plugins/idle.xd.js
@@ -0,0 +1,47 @@
+/*
+ Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+
+dojo._xdResourceLoaded(function(dojo, dijit, dojox){
+return {depends: [["require", "dojox.analytics._base"],
+["provide", "dojox.analytics.plugins.idle"]],
+defineResource: function(dojo, dijit, dojox){if(!dojo._hasResource["dojox.analytics.plugins.idle"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojox.analytics.plugins.idle"] = true;
+dojo.require("dojox.analytics._base");
+dojo.provide("dojox.analytics.plugins.idle");
+
+// window startup data
+dojox.analytics.plugins.idle = new (function(){
+ this.addData = dojo.hitch(dojox.analytics, "addData", "idle");
+ this.idleTime=dojo.config["idleTime"] || 60000;
+ this.idle=true;
+
+ this.setIdle = function(){
+ this.addData("isIdle");
+ this.idle=true;
+
+ }
+
+ dojo.addOnLoad(dojo.hitch(this, function(){
+ var idleResets=["onmousemove","onkeydown","onclick","onscroll"];
+ for (var i=0;i<idleResets.length;i++){
+ dojo.connect(dojo.doc,idleResets[i],this, function(e){
+ if (this.idle){
+ this.idle=false;
+ this.addData("isActive");
+ this.idleTimer=setTimeout(dojo.hitch(this,"setIdle"), this.idleTime);
+ }else{
+ clearTimeout(this.idleTimer);
+ this.idleTimer=setTimeout(dojo.hitch(this,"setIdle"), this.idleTime);
+ }
+ });
+ }
+ }));
+})();
+
+}
+
+}};});
diff --git a/js/dojo-1.6/dojox/analytics/plugins/mouseClick.js b/js/dojo-1.6/dojox/analytics/plugins/mouseClick.js
new file mode 100644
index 0000000..7a309a0
--- /dev/null
+++ b/js/dojo-1.6/dojox/analytics/plugins/mouseClick.js
@@ -0,0 +1,57 @@
+/*
+ Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+
+if(!dojo._hasResource["dojox.analytics.plugins.mouseClick"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojox.analytics.plugins.mouseClick"] = true;
+dojo.require("dojox.analytics._base");
+dojo.provide("dojox.analytics.plugins.mouseClick");
+
+// window startup data
+dojox.analytics.plugins.mouseClick = new (function(){
+ this.addData = dojo.hitch(dojox.analytics, "addData", "mouseClick");
+
+ this.onClick=function(e){
+ this.addData(this.trimEvent(e));
+ }
+ dojo.connect(dojo.doc, "onclick", this, "onClick");
+
+ this.trimEvent=function(e){
+ var t = {};
+ for (var i in e){
+ switch(i){
+ case "target":
+ case "originalTarget":
+ case "explicitOriginalTarget":
+ var props=["id","className","nodeName", "localName","href", "spellcheck", "lang"];
+ t[i]={};
+ for(var j=0;j<props.length;j++){
+ if(e[i][props[j]]){
+ if (props[j]=="text" || props[j]=="textContent"){
+ if ((e[i]["localName"]!="HTML")&&(e[i]["localName"]!="BODY")){
+ t[i][props[j]]=e[i][props[j]].substr(0,50);
+ }
+ }else{
+ t[i][props[j]]=e[i][props[j]];
+ }
+ }
+ }
+ break;
+ case "clientX":
+ case "clientY":
+ case "pageX":
+ case "pageY":
+ case "screenX":
+ case "screenY":
+ t[i]=e[i];
+ break;
+ }
+ }
+ return t;
+ }
+})();
+
+}
diff --git a/js/dojo-1.6/dojox/analytics/plugins/mouseClick.xd.js b/js/dojo-1.6/dojox/analytics/plugins/mouseClick.xd.js
new file mode 100644
index 0000000..09a31b8
--- /dev/null
+++ b/js/dojo-1.6/dojox/analytics/plugins/mouseClick.xd.js
@@ -0,0 +1,62 @@
+/*
+ Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+
+dojo._xdResourceLoaded(function(dojo, dijit, dojox){
+return {depends: [["require", "dojox.analytics._base"],
+["provide", "dojox.analytics.plugins.mouseClick"]],
+defineResource: function(dojo, dijit, dojox){if(!dojo._hasResource["dojox.analytics.plugins.mouseClick"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojox.analytics.plugins.mouseClick"] = true;
+dojo.require("dojox.analytics._base");
+dojo.provide("dojox.analytics.plugins.mouseClick");
+
+// window startup data
+dojox.analytics.plugins.mouseClick = new (function(){
+ this.addData = dojo.hitch(dojox.analytics, "addData", "mouseClick");
+
+ this.onClick=function(e){
+ this.addData(this.trimEvent(e));
+ }
+ dojo.connect(dojo.doc, "onclick", this, "onClick");
+
+ this.trimEvent=function(e){
+ var t = {};
+ for (var i in e){
+ switch(i){
+ case "target":
+ case "originalTarget":
+ case "explicitOriginalTarget":
+ var props=["id","className","nodeName", "localName","href", "spellcheck", "lang"];
+ t[i]={};
+ for(var j=0;j<props.length;j++){
+ if(e[i][props[j]]){
+ if (props[j]=="text" || props[j]=="textContent"){
+ if ((e[i]["localName"]!="HTML")&&(e[i]["localName"]!="BODY")){
+ t[i][props[j]]=e[i][props[j]].substr(0,50);
+ }
+ }else{
+ t[i][props[j]]=e[i][props[j]];
+ }
+ }
+ }
+ break;
+ case "clientX":
+ case "clientY":
+ case "pageX":
+ case "pageY":
+ case "screenX":
+ case "screenY":
+ t[i]=e[i];
+ break;
+ }
+ }
+ return t;
+ }
+})();
+
+}
+
+}};});
diff --git a/js/dojo-1.6/dojox/analytics/plugins/mouseOver.js b/js/dojo-1.6/dojox/analytics/plugins/mouseOver.js
new file mode 100644
index 0000000..6084316
--- /dev/null
+++ b/js/dojo-1.6/dojox/analytics/plugins/mouseOver.js
@@ -0,0 +1,98 @@
+/*
+ Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+
+if(!dojo._hasResource["dojox.analytics.plugins.mouseOver"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojox.analytics.plugins.mouseOver"] = true;
+dojo.require("dojox.analytics._base");
+dojo.provide("dojox.analytics.plugins.mouseOver");
+
+dojox.analytics.plugins.mouseOver = new (function(){
+ this.watchMouse = dojo.config["watchMouseOver"] || true;
+ this.mouseSampleDelay = dojo.config["sampleDelay"] || 2500;
+ this.addData = dojo.hitch(dojox.analytics, "addData", "mouseOver");
+ this.targetProps = dojo.config["targetProps"] || ["id","className","localName","href", "spellcheck", "lang", "textContent", "value" ];
+
+ this.toggleWatchMouse=function(){
+ if (this._watchingMouse){
+ dojo.disconnect(this._watchingMouse);
+ delete this._watchingMouse;
+ return;
+ }
+ dojo.connect(dojo.doc, "onmousemove", this, "sampleMouse");
+ }
+
+ if (this.watchMouse){
+ dojo.connect(dojo.doc, "onmouseover", this, "toggleWatchMouse");
+ dojo.connect(dojo.doc, "onmouseout", this, "toggleWatchMouse");
+ }
+
+ this.sampleMouse=function(e){
+ if (!this._rateLimited){
+ this.addData("sample",this.trimMouseEvent(e));
+ this._rateLimited=true;
+ setTimeout(dojo.hitch(this, function(){
+ if (this._rateLimited){
+ //this.addData("sample", this.trimMouseEvent(this._lastMouseEvent));
+ this.trimMouseEvent(this._lastMouseEvent);
+ delete this._lastMouseEvent;
+ delete this._rateLimited;
+ }
+ }), this.mouseSampleDelay);
+ }
+ this._lastMouseEvent = e;
+ return e;
+ }
+
+ this.trimMouseEvent=function(e){
+ var t = {};
+ for (var i in e){
+ switch(i){
+ //case "currentTarget":
+ case "target":
+ //case "originalTarget":
+ //case "explicitOriginalTarget":
+ var props=this.targetProps;
+ t[i]={};
+ //console.log(e, i, e[i]);
+ for(var j=0;j<props.length;j++){
+ if(dojo.isObject(e[i]) && props[j] in e[i]){
+
+ if (props[j]=="text" || props[j]=="textContent"){
+ if (e[i]["localName"] && (e[i]["localName"]!="HTML")&&(e[i]["localName"]!="BODY")){
+ t[i][props[j]]=e[i][props[j]].substr(0,50);
+ }
+ }else{
+ t[i][props[j]]=e[i][props[j]];
+ }
+ }
+ }
+ break;
+ //case "clientX":
+ //case "clientY":
+ //case "pageX":
+ //case "pageY":
+ //case "screenX":
+ //case "screenY":
+ case "x":
+ case "y":
+ if (e[i]) {
+ //console.log("Attempting: " + i);
+ var val = e[i];
+ //console.log("val: " + val); console.log(i + "e of i: " + val);
+ t[i]=val + '';
+ }
+ break;
+ default:
+ //console.log("Skipping: ", i);
+ break;
+ }
+ }
+ return t;
+ }
+})();
+
+}
diff --git a/js/dojo-1.6/dojox/analytics/plugins/mouseOver.xd.js b/js/dojo-1.6/dojox/analytics/plugins/mouseOver.xd.js
new file mode 100644
index 0000000..c3b1fd9
--- /dev/null
+++ b/js/dojo-1.6/dojox/analytics/plugins/mouseOver.xd.js
@@ -0,0 +1,103 @@
+/*
+ Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+
+dojo._xdResourceLoaded(function(dojo, dijit, dojox){
+return {depends: [["require", "dojox.analytics._base"],
+["provide", "dojox.analytics.plugins.mouseOver"]],
+defineResource: function(dojo, dijit, dojox){if(!dojo._hasResource["dojox.analytics.plugins.mouseOver"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojox.analytics.plugins.mouseOver"] = true;
+dojo.require("dojox.analytics._base");
+dojo.provide("dojox.analytics.plugins.mouseOver");
+
+dojox.analytics.plugins.mouseOver = new (function(){
+ this.watchMouse = dojo.config["watchMouseOver"] || true;
+ this.mouseSampleDelay = dojo.config["sampleDelay"] || 2500;
+ this.addData = dojo.hitch(dojox.analytics, "addData", "mouseOver");
+ this.targetProps = dojo.config["targetProps"] || ["id","className","localName","href", "spellcheck", "lang", "textContent", "value" ];
+
+ this.toggleWatchMouse=function(){
+ if (this._watchingMouse){
+ dojo.disconnect(this._watchingMouse);
+ delete this._watchingMouse;
+ return;
+ }
+ dojo.connect(dojo.doc, "onmousemove", this, "sampleMouse");
+ }
+
+ if (this.watchMouse){
+ dojo.connect(dojo.doc, "onmouseover", this, "toggleWatchMouse");
+ dojo.connect(dojo.doc, "onmouseout", this, "toggleWatchMouse");
+ }
+
+ this.sampleMouse=function(e){
+ if (!this._rateLimited){
+ this.addData("sample",this.trimMouseEvent(e));
+ this._rateLimited=true;
+ setTimeout(dojo.hitch(this, function(){
+ if (this._rateLimited){
+ //this.addData("sample", this.trimMouseEvent(this._lastMouseEvent));
+ this.trimMouseEvent(this._lastMouseEvent);
+ delete this._lastMouseEvent;
+ delete this._rateLimited;
+ }
+ }), this.mouseSampleDelay);
+ }
+ this._lastMouseEvent = e;
+ return e;
+ }
+
+ this.trimMouseEvent=function(e){
+ var t = {};
+ for (var i in e){
+ switch(i){
+ //case "currentTarget":
+ case "target":
+ //case "originalTarget":
+ //case "explicitOriginalTarget":
+ var props=this.targetProps;
+ t[i]={};
+ //console.log(e, i, e[i]);
+ for(var j=0;j<props.length;j++){
+ if(dojo.isObject(e[i]) && props[j] in e[i]){
+
+ if (props[j]=="text" || props[j]=="textContent"){
+ if (e[i]["localName"] && (e[i]["localName"]!="HTML")&&(e[i]["localName"]!="BODY")){
+ t[i][props[j]]=e[i][props[j]].substr(0,50);
+ }
+ }else{
+ t[i][props[j]]=e[i][props[j]];
+ }
+ }
+ }
+ break;
+ //case "clientX":
+ //case "clientY":
+ //case "pageX":
+ //case "pageY":
+ //case "screenX":
+ //case "screenY":
+ case "x":
+ case "y":
+ if (e[i]) {
+ //console.log("Attempting: " + i);
+ var val = e[i];
+ //console.log("val: " + val); console.log(i + "e of i: " + val);
+ t[i]=val + '';
+ }
+ break;
+ default:
+ //console.log("Skipping: ", i);
+ break;
+ }
+ }
+ return t;
+ }
+})();
+
+}
+
+}};});
diff --git a/js/dojo-1.6/dojox/analytics/plugins/window.js b/js/dojo-1.6/dojox/analytics/plugins/window.js
new file mode 100644
index 0000000..9136fc7
--- /dev/null
+++ b/js/dojo-1.6/dojox/analytics/plugins/window.js
@@ -0,0 +1,42 @@
+/*
+ Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+
+if(!dojo._hasResource["dojox.analytics.plugins.window"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojox.analytics.plugins.window"] = true;
+dojo.require("dojox.analytics._base");
+dojo.provide("dojox.analytics.plugins.window");
+
+// window startup data
+dojox.analytics.plugins.window = new (function(){
+ this.addData = dojo.hitch(dojox.analytics, "addData", "window");
+ this.windowConnects = dojo.config["windowConnects"] || ["open", "onerror"];
+
+ for(var i=0; i<this.windowConnects.length;i++){
+ dojo.connect(window, this.windowConnects[i], dojo.hitch(this, "addData", this.windowConnects[i]));
+ }
+
+ dojo.addOnLoad(dojo.hitch(this, function(){
+ var data = {};
+ for(var i in window){
+ if (dojo.isObject(window[i])){
+ switch(i){
+ case "location":
+ case "console":
+ data[i]=window[i];
+ break;
+ default:
+ break;
+ }
+ }else{
+ data[i]=window[i];
+ }
+ }
+ this.addData(data);
+ }));
+})();
+
+}
diff --git a/js/dojo-1.6/dojox/analytics/plugins/window.xd.js b/js/dojo-1.6/dojox/analytics/plugins/window.xd.js
new file mode 100644
index 0000000..837fac7
--- /dev/null
+++ b/js/dojo-1.6/dojox/analytics/plugins/window.xd.js
@@ -0,0 +1,47 @@
+/*
+ Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+
+dojo._xdResourceLoaded(function(dojo, dijit, dojox){
+return {depends: [["require", "dojox.analytics._base"],
+["provide", "dojox.analytics.plugins.window"]],
+defineResource: function(dojo, dijit, dojox){if(!dojo._hasResource["dojox.analytics.plugins.window"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
+dojo._hasResource["dojox.analytics.plugins.window"] = true;
+dojo.require("dojox.analytics._base");
+dojo.provide("dojox.analytics.plugins.window");
+
+// window startup data
+dojox.analytics.plugins.window = new (function(){
+ this.addData = dojo.hitch(dojox.analytics, "addData", "window");
+ this.windowConnects = dojo.config["windowConnects"] || ["open", "onerror"];
+
+ for(var i=0; i<this.windowConnects.length;i++){
+ dojo.connect(window, this.windowConnects[i], dojo.hitch(this, "addData", this.windowConnects[i]));
+ }
+
+ dojo.addOnLoad(dojo.hitch(this, function(){
+ var data = {};
+ for(var i in window){
+ if (dojo.isObject(window[i])){
+ switch(i){
+ case "location":
+ case "console":
+ data[i]=window[i];
+ break;
+ default:
+ break;
+ }
+ }else{
+ data[i]=window[i];
+ }
+ }
+ this.addData(data);
+ }));
+})();
+
+}
+
+}};});
diff --git a/js/dojo-1.6/dojox/analytics/profiles/analytics.profile.js b/js/dojo-1.6/dojox/analytics/profiles/analytics.profile.js
new file mode 100644
index 0000000..71878b0
--- /dev/null
+++ b/js/dojo-1.6/dojox/analytics/profiles/analytics.profile.js
@@ -0,0 +1,28 @@
+/*
+ Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+
+dependencies = {
+ layers: [
+ {
+ name: "../dojox/analytics.js",
+ dependencies: [
+ "dojox.analytics",
+ "dojox.analytics.plugins.dojo",
+ "dojox.analytics.plugins.window",
+ "dojox.analytics.plugins.consoleMessages",
+ "dojox.analytics.plugins.mouseOver",
+ "dojox.analytics.plugins.mouseClick",
+ "dojox.analytics.plugins.idle"
+ ]
+ }
+ ],
+
+ prefixes: [
+ [ "dojox", "../dojox" ],
+ [ "dijit", "../dijit" ]
+ ]
+}
diff --git a/js/dojo-1.6/dojox/analytics/profiles/analytics.profile.xd.js b/js/dojo-1.6/dojox/analytics/profiles/analytics.profile.xd.js
new file mode 100644
index 0000000..269d64b
--- /dev/null
+++ b/js/dojo-1.6/dojox/analytics/profiles/analytics.profile.xd.js
@@ -0,0 +1,32 @@
+/*
+ Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+
+dojo._xdResourceLoaded(function(dojo, dijit, dojox){
+return {
+defineResource: function(dojo, dijit, dojox){dependencies = {
+ layers: [
+ {
+ name: "../dojox/analytics.js",
+ dependencies: [
+ "dojox.analytics",
+ "dojox.analytics.plugins.dojo",
+ "dojox.analytics.plugins.window",
+ "dojox.analytics.plugins.consoleMessages",
+ "dojox.analytics.plugins.mouseOver",
+ "dojox.analytics.plugins.mouseClick",
+ "dojox.analytics.plugins.idle"
+ ]
+ }
+ ],
+
+ prefixes: [
+ [ "dojox", "../dojox" ],
+ [ "dijit", "../dijit" ]
+ ]
+}
+
+}};});
diff --git a/js/dojo-1.6/dojox/analytics/profiles/analyticsInBase.profile.js b/js/dojo-1.6/dojox/analytics/profiles/analyticsInBase.profile.js
new file mode 100644
index 0000000..0b35edd
--- /dev/null
+++ b/js/dojo-1.6/dojox/analytics/profiles/analyticsInBase.profile.js
@@ -0,0 +1,29 @@
+/*
+ Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+
+dependencies = {
+ layers: [
+ {
+ //name: "../dojox/analytics.js",
+ name: "dojo.js",
+ dependencies: [
+ "dojox.analytics",
+ "dojox.analytics.plugins.dojo",
+ "dojox.analytics.plugins.window",
+ "dojox.analytics.plugins.consoleMessages",
+ "dojox.analytics.plugins.mouseOver",
+ "dojox.analytics.plugins.mouseClick",
+ "dojox.analytics.plugins.idle"
+ ]
+ }
+ ],
+
+ prefixes: [
+ [ "dojox", "../dojox" ],
+ [ "dijit", "../dijit" ]
+ ]
+}
diff --git a/js/dojo-1.6/dojox/analytics/profiles/analyticsInBase.profile.xd.js b/js/dojo-1.6/dojox/analytics/profiles/analyticsInBase.profile.xd.js
new file mode 100644
index 0000000..7e4265c
--- /dev/null
+++ b/js/dojo-1.6/dojox/analytics/profiles/analyticsInBase.profile.xd.js
@@ -0,0 +1,33 @@
+/*
+ Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
+ Available via Academic Free License >= 2.1 OR the modified BSD license.
+ see: http://dojotoolkit.org/license for details
+*/
+
+
+dojo._xdResourceLoaded(function(dojo, dijit, dojox){
+return {
+defineResource: function(dojo, dijit, dojox){dependencies = {
+ layers: [
+ {
+ //name: "../dojox/analytics.js",
+ name: "dojo.js",
+ dependencies: [
+ "dojox.analytics",
+ "dojox.analytics.plugins.dojo",
+ "dojox.analytics.plugins.window",
+ "dojox.analytics.plugins.consoleMessages",
+ "dojox.analytics.plugins.mouseOver",
+ "dojox.analytics.plugins.mouseClick",
+ "dojox.analytics.plugins.idle"
+ ]
+ }
+ ],
+
+ prefixes: [
+ [ "dojox", "../dojox" ],
+ [ "dijit", "../dijit" ]
+ ]
+}
+
+}};});