/* $Id: googleLoader.js 33816 2010-07-02 05:56:16Z rjeschofnik $ */
_gl_alwaysLog = false;
function googleLoader(id, page)
{
    var urchinId = id;
    var _page = page;
    var loadInterval = 100;
    var ready = false;
    var devId = 'UA-3172639-5';
    
    return {
        _load: function()
        {
              
            var gaHost = ("https:" == document.location.protocol) ? "https://ssl." : "http://www.";
            var s = document.createElement('script');
            s.src = gaHost + "google-analytics.com/ga.js";
            document.getElementsByTagName("head")[0].appendChild(s);
            var checker = this._wrap(this, this._check);
            setTimeout(checker, loadInterval);
        },

        _check: function()
        {      
            if (window['_gat'])
            {
                gaTracker = _gat._getTracker(urchinId);
				gaTracker._setDomainName('.defencejobs.gov.au');
                gaTracker._initData();
                
        		if (_page == null)
		        {
		                gaTracker._trackPageview();
        		}
                else
                {
		                gaTracker._trackPageview(_page);
                }
                
                pageTracker = gaTracker;
                ready = true;
                this.log('onload track: ' + _page);
            }
            else
            {
                var checker = this._wrap(this, this._check);
                setTimeout(checker, loadInterval);
            }
        },
        
        trackPageview: function(page)
        {
            //alert('called google.trackPageView(): page=' + page);
            if (ready)
            {
                if (page == null)
                    gaTracker._trackPageview();
                else
                    gaTracker._trackPageview(page);
                    
                this.log('manual trackPageview: ' + page);
            }
            else
            {
                var tpv = this._wrap(this, this.trackPageview);
                setTimeout(function() { tpv(page); }, loadInterval);
            }
        },
        
        trackEvent: function(category, action, label)
        {
            if (ready)
            {
                gaTracker._trackEvent(category, action, label);
                this.log('trackEvent: ' + category + ', ' + action + ', ' + label);
            }
            else
            {
                var te = this._wrap(this, this.trackEvent);
                setTimeout(function() { te(category, action, label); }, loadInterval);
            }
        },
        
        log: function(msg)
        {
            if (window.console && window.console.log && (urchinId == devId || _gl_alwaysLog))
                console.log(msg);
        },

        _wrap: function(obj, method)
        {
            return function() { return method.apply(obj, arguments); };
        }
    };
}

var trackPageview = function(page) { google.trackPageview(page); };
var trackPage = function(page) { trackPageview(page); };
var trackEvent = function(category, action, label) { google.trackEvent(category, action, label) };
