
var User = { "Id":null, "nickName":null, "isManager":0, "refresh":false, "Register":function() { var cbox = new Cbox({name:'register', title:Local.register, cssName:'CDlg', width:480, height:360, url:'/sys/user.register.xml', screenCover:true}, document.body); return cbox; }, "Login":function() { var cbox = new Cbox({name:'login', title:Local.login, cssName:'CDlg', width:480, height:360, url:'/sys/user.login.xml', screenCover:true}, document.body); return cbox; }, "Relogin":function() { if(User.Id == null) { var uid = getCookie("uid"); var ppt = getCookie("ppt"); if(uid != null && ppt != null && parseInt(uid) > 0 && parseInt(ppt) > 0) { function onResponse(response) { var root = Request.Validate(response); if(root && root.tagName == "user") { var ret = root.getElementsByTagName("relogin")[0]; var nic = root.getElementsByTagName("nic")[0]; if(ret != null && nic != null) { ret = parseInt(_text(ret)); if(ret > 0) { User.Id = ret; User.nickName = _text(nic); } } if(User.nickName == null) { User.Id = null; User.nickName = null; User.isManager = 0; delCookie("uid"); delCookie("ppt"); } } SetPannel(); } Request.GET("/User.aspx?todo=relogin", onResponse); return; } } SetPannel(); }, "SetId":function(nId, szNickName) { User.Id = nId; User.nickName = szNickName; }, "Logout":function() { var uid = getCookie("uid"); var ppt = getCookie("ppt"); if(uid != null && ppt != null && parseInt(uid) > 0 && parseInt(ppt) > 0) { function onLogout(response) { if(response) { var rootNode = response.responseXML.documentElement; if(rootNode && rootNode.tagName == "user") { var ret = rootNode.getElementsByTagName("logout")[0]; if(ret != null) { ret = parseInt(_text(ret)); if(ret >= 0) { User.Id = null; User.nickName = null; User.isManager = 0; delCookie("uid"); delCookie("ppt"); SetPannel(); if(User.refresh) window.location.reload(); } } } } } Request.GET("/User.aspx?todo=logout",onLogout); } }, "Manage":function(callback) { var uid = getCookie("uid"); var ppt = getCookie("ppt"); if(uid != null && ppt != null && parseInt(uid) > 0 && parseInt(ppt) > 0) { function onManage(response) { var root = Request.Validate(response); if(root && root.tagName == "user") { var ret = root.getElementsByTagName("manage")[0]; if(ret != null) { ret = parseInt(_text(ret)); User.isManager = ret; if(User.isManager > 3) { callback(ret); } } } } Request.GET("/User.aspx?todo=manage",onManage); } } }; function EnsureUser(call) { if(User.Id) { var uid = getCookie("uid"); var ppt = getCookie("ppt"); if(uid != null && ppt != null && parseInt(uid) > 0 && parseInt(ppt) > 0) { call(); return true; } else { User.Id = null; } } if(User.Id == null) { var cbox = User.Login(); cbox.Close = function() { cbox.Free(); SetPannel(); if(User.Id) call(); }; return false; } } function SetPannel() { var pannel = $("UserPannel"); if(pannel) { while(pannel.firstChild) { _removeNode(pannel.firstChild); } if(User.nickName && User.Id) { var sname = _newElement("span"); sname.innerHTML = User.nickName; pannel.appendChild(sname); pannel.appendChild(_newText(" | ")); var slout = _newElement("span"); slout.innerHTML = Local.logout; pannel.appendChild(slout); slout.onclick = function() { User.Logout(); } } else { var slin = _newElement("span"); slin.innerHTML = Local.login; pannel.appendChild(slin); slin.onclick = function() { var cbox = User.Login(); cbox.Close = function() { cbox.Free(); SetPannel(); } }; pannel.appendChild(_newText(" | ")); var sreg = _newElement("span"); sreg.innerHTML = Local.register; pannel.appendChild(sreg); sreg.onclick = function() { var cbox = User.Register(); cbox.Close = function() { cbox.Free(); SetPannel(); } }; if(User.GuestId == null) { function onGuestLogin(response) { var root = Request.Validate(response); if(root && root.tagName == "user") { var ret = root.getElementsByTagName("guest")[0]; if(ret != null) { ret = parseInt(_text(ret)); if(ret > 0) { pannel.appendChild(_newText(" | #"+ret)); User.GuestId = ret; } } } } User.GuestId = 0; Request.GET("/User.aspx?todo=guest", onGuestLogin); } else if(User.GuestId > 0) { pannel.appendChild(_newText(" | #"+User.GuestId)); } } } }; window.onfocus = function() { var uid = getCookie("uid"); var ppt = getCookie("ppt"); if(uid != null && ppt != null && parseInt(uid) > 0 && parseInt(ppt) > 0) { if(User.nickName == null) { User.Id = null; User.Relogin(); } else { SetPannel(); } } else { User.Id = null; User.nickName = null; SetPannel(); } }; 
