/* tracking.js */
var MILK = window.MILK || {};

MILK.Tracking = (function($) {
	
	var pingSeconds = 10;
	var url = MILK.BaseUrl + 'tracking';
	
	function getTimestamp() {
		return Math.round(new Date().getTime() / 1000);
	}
	
	return {
		init: function() {
			this.log('init');
			setInterval("MILK.Tracking.ping()", pingSeconds * 1000);
		},
		log: function(operation, timestamp, extraData) {
			$.post(url, {
				operation: operation,
				timestamp: timestamp || getTimestamp(),
				extraData: extraData || ''
			});
		},
		flashLog: function(operation, timestamp, extraData) {
			if (timestamp) {
				this.log(operation, timestamp / 1000, extraData);
			}
		},
		ping: function() {
			$.post(url + '/ping', {
				timestamp: getTimestamp()
			});
		},
		logFrameRate: function(data) {
			var dataString = '';
			
			$.each(data, function() {
				var page = this[0];
				var framerate = this[1];
				
				dataString += page + "|" + framerate + ";";
			});
			$.post(url + '/framerate', {
				data: dataString
			});
		}
	}
	
})(jQuery);
MILK.Tracking.init();

function nsm_preloader_init(timestamp) {
	MILK.Tracking.flashLog('preloader_init', timestamp);
}
function nsm_preloader_complete(timestamp) {
	MILK.Tracking.flashLog('preloader_complete', timestamp);
}
function nsm_fps_init(timestamp, flashVersion) {
	MILK.Tracking.flashLog('fps_init', timestamp, flashVersion);
}
function nsm_fps_tracking(data) {
	if (data && typeof data == 'object') {
		MILK.Tracking.logFrameRate(data);
	}
}
