mirror of
git://git.acid.vegas/asciiblaster.git
synced 2024-11-24 08:56:42 +00:00
68 lines
1.8 KiB
JavaScript
68 lines
1.8 KiB
JavaScript
var user = (function(){
|
|
|
|
var user = {}
|
|
var el = document.getElementById("username_input")
|
|
|
|
user.init = function(){
|
|
user.load()
|
|
user.bind()
|
|
}
|
|
user.bind = function(){
|
|
el.addEventListener("input", user.save)
|
|
}
|
|
user.load = function(){
|
|
user.username = user.getCookie()
|
|
if (! user.username) {
|
|
user.username = '00' + randint(9876876)
|
|
user.setCookie(user.username)
|
|
}
|
|
if (!user.username.match(/^00/)) {
|
|
el.value = 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 el.value.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
|
|
}
|
|
var timeout
|
|
user.save = function(){
|
|
clearTimeout(timeout)
|
|
timeout = setTimeout(function(){
|
|
var username = user.sanitize()
|
|
if (username != user.username) user.setCookie(username);
|
|
})
|
|
}
|
|
user.setCookie = function(username){
|
|
if (!user.username.match(/^00/)) {
|
|
console.log("setting to " + username)
|
|
}
|
|
document.cookie = "imname="+username+";path=/;domain=.asdf.us;max-age=1086400"
|
|
localStorage.setItem("im.name", username);
|
|
}
|
|
|
|
user.init()
|
|
|
|
return user
|
|
})()
|