summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--public/js/lib/user.js49
1 files changed, 49 insertions, 0 deletions
diff --git a/public/js/lib/user.js b/public/js/lib/user.js
new file mode 100644
index 0000000..87b657e
--- /dev/null
+++ b/public/js/lib/user.js
@@ -0,0 +1,49 @@
+var user = (function(){}
+ var user = {}
+ user.init = function(){
+ user.load()
+ user.bind()
+ }
+ user.bind = function(){
+ $("#username").on("input", user.save)
+ }
+ user.load = function(){
+ user.username = user.getCookie()
+ $("#username").val(user.username)
+ }
+ user.prefs = new function(){}
+ user.prefs.get = function (key){
+ return localStorage.getItem("im.prefs." + key)
+ }
+ user.prefs.set = function (key,value){
+ return localStorage.setItem("im.prefs." + key, value)
+ }
+ user.sanitize = function(){
+ return $("#username").val().replace(/[^-_ a-zA-Z0-9]/g,"")
+ }
+ user.getCookie = function () {
+ var username = localStorage.getItem("im.name") || "";
+ if (document.cookie && ! username.length) {
+ var cookies = document.cookie.split(";")
+ for (i in cookies) {
+ var cookie = cookies[i].split("=")
+ if (cookie[0].indexOf("imname") !== -1) {
+ if (cookie[1] !== 'false' && cookie[1] !== 'undefined' && cookie[1].length) {
+ return cookie[1]
+ }
+ }
+ }
+ }
+ return username
+ }
+ user.save = function(){
+ var username = user.sanitize()
+ if (username != user.username) user.setCookie(username);
+ }
+ user.setCookie = function(username){
+ console.log("setting to " + username)
+ document.cookie = "imname="+username+";path=/;domain=.asdf.us;max-age=1086400"
+ localStorage.setItem("im.name", username);
+ }
+ return user
+})()