﻿// Code to initialize google analytics and track page view
var _gaq = _gaq || [];
_gaq.push(['_setAccount', window.googleAccount == undefined ? false : window.googleAccount]);
_gaq.push(['_setDomainName', '.cyberu.com']);

(function () {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();

var Analytics = function () {

    return {
        TrackViewAllFreeCourses : function() {
            Analytics.TrackPageview('/catalog/free-courses');
        },

        TrackViewAllFeaturedCourses : function() {
            Analytics.TrackPageview('/catalog/featured-list');
        },

        TrackFreeCourseLaunch: function (title) {
            Analytics.TrackPageview('/free/activate/' + title);
            Analytics.TagReturningFree();
        },

        TrackError: function (errorLocation, errorDescription) {
            var error = '/error';

            if (errorLocation != null && errorLocation != "") {
                error += '/' + errorLocation;

                if (errorDescription != null && errorDescription != "") {
                    error += '/' + errorDescription;
                }
                else {
                    error != '/unspecified';
                }
            }
            else {
                error += '/unspecified';
            }

            Analytics.TrackPageview(error);

            return true;
        },

        TrackPageview: function (url) {
            if (url == null || url == "") {
                _gaq.push(['_trackPageview']);
            }
            else {
                // Add / if not at start
                if (url.substring(0, 1) != "/") {
                    url = "/" + url;
                }
                url = url.replace(/ /g, "-"); // Turn all spaces into -
                url = url.replace("&amp;", "&");
                _gaq.push(['_trackPageview', url]);
            }

            return true;
        },

        AddItem: function (order_id, item_id, item_name, item_seller, item_price, item_qty) {
            _gaq.push(['_addItem', order_id, item_id, item_name, item_seller, item_price, item_qty]);
        },

        CompleteTransactionStart: function (order_id, partner, total, tax, shipping, city, state, country) {
            _gaq.push(['_addTrans', order_id, partner, total, tax, shipping, city, state, country]);
        },

        CompleteTransactionEnd: function () {
            _gaq.push(['_trackTrans']);
        },

        TagReturningMember: function () {
            _gaq.push(['_setCustomVar', 1, 'Member', 'ReturningMember', 1], ['_trackPageview']);
        },

        TagReturningCustomer: function () {
            _gaq.push(['_setCustomVar', 2, 'Customer', 'ReturningCustomer', 1], ['_trackPageview']);
        },

        TagReturningFree: function () {
            _gaq.push(['_setCustomVar', 3, 'FreeCourse', 'ReturningFree', 1], ['_trackPageview']);
        },

        TagReturningStudent: function () {
            _gaq.push(['_setCustomVar', 4, 'WatchCourse', 'ReturningStudent', 1], ['_trackPageview']);
        }
    }

} ();
