/* 
 * Utility Class for MxM Analytics
 * Handles cookies and generating IDs
 */

/* SET SOME UNIVERSAL PARAMETERS */
	var COOKIE_NAME 	= application;
	var date 			= new Date();
	var userID 			= null;
	var sesID 			= null;

/* RUN ON EVERY PAGE WHEN DOCUMENT IS READY */
	$(function(){
		generateSessionID();
		handleCookie();
	});

/** UNIQUE NUMBER GENERATION **/

	// Generate Session ID
	function generateSessionID() { sesID = "s" + generateUnique(); }

	// Generate User ID
	function generateUserID() { userID = "u" + generateUnique(); }
	/**
	 * GENERATE A UNIQUE NUMBER FOR USE IN USER IDs AND SESSION IDs
	 */
	function generateUnique() {
		var randomnumber = Math.floor(Math.random()*1001);
		var year         = date.getFullYear();
		var monthnumber  = date.getMonth() + 1;
		var monthday     = date.getDate();
	    var hour         = date.getHours();
		var minute       = date.getMinutes();
		var second       = date.getSeconds();
		var unique = randomnumber + "-" + year + "-" + monthnumber + "-" + monthday + "-" + hour + "-" + minute + "-" + second;
		return unique;
	}

/** COOKIE FUNCTIONS **/

	// Check for a cookie first and do stuff
	function handleCookie() {
		if(checkCookie()) {
			userID = $.cookie(COOKIE_NAME);
		} else {
			createCookie();
		}
	}
	
	/* CHECK TO SEE IF COOKIE EXISTS */
	function checkCookie() {
		if ($.cookie(COOKIE_NAME)) { return true; } else { return false; }
	}
	
	// Create a new cookie
	function createCookie() {
		generateUserID();
		date.setTime(date.getTime() + (3 * 365 * 24 * 60 * 60 * 1000));// SETS DATE VALUE TO 3 YEARS IN THE FUTURE
	    $.cookie(COOKIE_NAME, userID, { path: '/', expires: date });
	}