﻿;(function($) { // hide the namespace

/* Tracker  */

function Tracker() {
	this.debug = false; // Change this to true to start debugging
	this.disabled = false; // Change this to true to disable tracking
	this.callbackUrl = "/ClassifiedsTrackingScripts/OpenExternalLink.js";
}

$.extend(Tracker.prototype, {
	/* Class name added to elements to indicate already configured with a date picker. */
	markerClassName: 'hasTracker',

	/* Debug logging (if enabled). */
	log: function () {
		if (this.debug)
			console.log.apply('', arguments);
	},	

	/* Retrieve a particular date picker instance based on its ID. */
	_trackPageview: function(externalUrl, obj) {
		this.log('_trackPageview: ' + externalUrl);
		
		if (typeof(obj) == "undefined")
		    obj = null;
		    
		if (obj != null)
		{		
		    obj.href = externalUrl;
		}
		
		if (this.disabled)
		{
		    if (obj == null)
		    {
		        window.open(externalUrl);
		        return false;
		    }
            return true;
        }		            
            
        var pathname = location.pathname.toLowerCase();
        
        var appPrefix = "/fr-ca";
        if (pathname.indexOf("/en-ca/") == 0)
            appPrefix = "/en-ca";
        
        var callbackUrl = appPrefix + this.callbackUrl;
        		
        $.ajax({ 
            type: "GET", 
            url: callbackUrl, 
            datatype: "html", 
            data: {externalUrl: externalUrl}, 
            complete: function( data ) 
            {            
                pageTracker.log("Ajax call complete.")
            }
         });
  
        if (obj == null)
        {
            window.open(externalUrl);
            return false;
        }       
        return true;
	}

});

/* jQuery extend now ignores nulls! */
function extendRemove(target, props) {
	$.extend(target, props);
	for (var name in props)
		if (props[name] == null)
			target[name] = null;
	return target;
};

$.tracker = new Tracker(); // singleton instance

})(jQuery);

/* Initialise the page tracker */
var pageTracker = null;
$(document).ready(function() {
	pageTracker = $.tracker;
});
