"use strict"; angular.module("iisland").factory('analytics', ['$http', 'user_service', function($http, user_service) { var user = {}; function guid() { function s4() { return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1); } return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4(); } var default_nick; if (!!$.cookie('user')) { default_nick=$.cookie('user'); //console.log("KLEN: Cokie Exists: "+default_nick); } else { default_nick = guid(); $.cookie("user", default_nick, { expires : 356 }); //console.log("KLEN: Cokie Set: "+$.cookie('user')); } user_service.state_subscribe(function(new_state) { user = new_state.user; }); return { "report_event" : function(data) { var event_data = { "user" : default_nick, "app" : "uknown", "event" : "uknown", "label" : "", "data" : "" }; if (user !== undefined) { event_data.user = user.nick; } angular.forEach(["app", "event", "label", "data"], function(key) { if (data[key] !== undefined) { event_data[key] = data[key]; } }); $http.post("/api/analytics/report_event", event_data); } }; }]);