var google_analytics_loaded = false;
var google_analytics_initialized = false;
var google_analytics_tracker = null;

function GoogleAnalytics (){
	var me = this;
	
	var timeout = 500;
	var dom = new Dom();	
				
	/**
	 *	Creates page tracker and runs first track.
	 */			 										
	var constructor = function() {
		if (google_analytics_initialized)
			return;		

		try {
			google_analytics_tracker = _gat._getTracker("UA-4643536-5");
			google_analytics_tracker._setDomainName("none");
            google_analytics_tracker._setAllowLinker(true);
			google_analytics_initialized = true;
			me.track();
		} catch(err) {
			setTimeout(constructor, timeout);
		}
	};
	
	/**
	 *	Tracks three parameters (for now)
	 *	@param option_1
	 *	@param option_2
	 *	@param option_3			 			 			 
	 */			 										
	this.track = function (data){
		async_loop(
			function (){
				return google_analytics_initialized;
			},
			function (){
				var track_string = '';

				for (var index in data)
					if (data[index] != null && data[index] != '')
						track_string += '/' + data[index];

				google_analytics_tracker._trackPageview(track_string);
			},
			timeout
		);
	};	
	
	/**
	 *	Adds google analytics script to head.
	 */			 			
	(function() {	
		if (google_analytics_loaded)
			return;
		google_analytics_loaded = true;
		var script = dom.new_script((("https:" == document.location.protocol) ? "https://ssl." : "http://www.") + "google-analytics.com/ga.js");		        	
		dom.add_to_head(script);
		
		constructor();
	})();
}