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 })()