var Analytics = Class.create();
Analytics.prototype = {
	initialize: function() {
		if (_gat) {
			var subscribe = $$('#subscribe input.send');
			if (subscribe && subscribe.length > 0) {
				subscribe = subscribe[0];
				subscribe.writeAttribute("rel", "/subscribe");
			}
			var enquiry = $$('div.enquiry input.send');
			if (enquiry && enquiry.length > 0) {
				enquiry = enquiry[0];
				enquiry.writeAttribute("rel", "/enquiry");
			}
			this.pageTracker = _gat._getTracker(AnalyticsOptions.code);
			this.pageTracker._initData();
			this.pageTracker._trackPageview();
			this.trackGoals();
			this.trackEvents();
		}
	},

	trackPageView: function(url) {
		this.pageTracker._trackPageview(url);
	},

	trackEvents: function() {
		var links = $$("a.trackEvent");
		for (var x = 0, y = links.length; x < y; x++) {
			Event.observe(links[x], 'click', this.onTrackEvent.bind(this));
		}
	},

	trackGoals: function() {
		var links = $$("a.trackGoal", "input.trackGoal");
		for (var x = 0, y = links.length; x < y; x++) {
			Event.observe(links[x], 'click', this.onTrackGoal.bind(this));
		}
	},

	onTrackGoal: function(e) {
		var rel = Event.element(e).getAttribute("rel");
		if (rel) {
			this.trackPageView(rel);
		}
	},

	onTrackEvent: function(e) {
		var rel = Event.element(e).getAttribute("rel");
		var evt = rel.split("||");

		for (var x = 0, y = evt.length; x < y; x++) {
			if (evt[x] == "external") {
				evt.splice(x);
			}
		}

		switch (evt.length) {
			case 1:
				this.pageTracker._trackEvent('Downloads', "'" + evt[0] + "'", "'" + evt[0] + "'");
				break;
			case 2:
				this.pageTracker._trackEvent('Downloads', "'" + evt[0] + "'", "'" + evt[1] + "'");
				break;
			case 3:
				this.pageTracker._trackEvent("'" + evt[0] + "'", "'" + evt[1] + "'", "'" + evt[2] + "'");
				break;
			case 4:
				this.pageTracker._trackEvent("'" + evt[0] + "'", "'" + evt[1] + "'", "'" + evt[2] + "'", "'" + evt[3] + "'");
				break;
			default:
				break;
		}
	}
};

var AnalyticsOptions = {
	code: "UA-5475412-1"
};

var analytics;
FastInit.addOnLoad(function() {
	analytics = new Analytics();
});
