asciiblaster- draw irc art in your web browser |
git clone git://git.acid.vegas/asciiblaster.git |
Log | Files | Refs | Archive | README |
user.js (1797B)
1 var user = (function(){ 2 3 var user = {} 4 var el = document.getElementById("username_input") 5 6 user.init = function(){ 7 user.load() 8 user.bind() 9 } 10 user.bind = function(){ 11 el.addEventListener("input", user.save) 12 } 13 user.load = function(){ 14 user.username = user.getCookie() 15 if (! user.username) { 16 user.username = '00' + randint(9876876) 17 user.setCookie(user.username) 18 } 19 if (!user.username.match(/^00/)) { 20 el.value = user.username 21 } 22 } 23 user.prefs = new function(){} 24 user.prefs.get = function (key){ 25 return localStorage.getItem("im.prefs." + key) 26 } 27 user.prefs.set = function (key,value){ 28 return localStorage.setItem("im.prefs." + key, value) 29 } 30 user.sanitize = function(){ 31 return el.value.replace(/[^-_ a-zA-Z0-9]/g,"") 32 } 33 user.getCookie = function () { 34 var username = localStorage.getItem("im.name") || ""; 35 if (document.cookie && ! username.length) { 36 var cookies = document.cookie.split(";") 37 for (i in cookies) { 38 var cookie = cookies[i].split("=") 39 if (cookie[0].indexOf("imname") !== -1) { 40 if (cookie[1] !== 'false' && cookie[1] !== 'undefined' && cookie[1].length) { 41 return cookie[1] 42 } 43 } 44 } 45 } 46 return username 47 } 48 var timeout 49 user.save = function(){ 50 clearTimeout(timeout) 51 timeout = setTimeout(function(){ 52 var username = user.sanitize() 53 if (username != user.username) user.setCookie(username); 54 }) 55 } 56 user.setCookie = function(username){ 57 if (!user.username.match(/^00/)) { 58 console.log("setting to " + username) 59 } 60 document.cookie = "imname="+username+";path=/;domain=.asdf.us;max-age=1086400" 61 localStorage.setItem("im.name", username); 62 } 63 64 user.init() 65 66 return user 67 })()