3 Rakka.showLoginPanel = function () {
4 var $area = Rakka.switchScreen();
6 $area.append($.H1({}, "Login"));
9 = $.INPUT({type: "text"});
12 = $.INPUT({type: "password"});
15 = $.INPUT({type: "button", value: "Login"});
17 $(btnLogin).click(function () {
18 login(fldUserID.value, fldPassword.value);
22 = $.INPUT({type: "button", value: "Cancel"});
24 $(btnCancel).click(function () {
25 Rakka.restoreScreen();
29 = $.TABLE({className: "loginPanel"},
41 $.TD({}, btnLogin, btnCancel)
46 $area.append(loginPanel);
49 var login = function (userID, password) {
52 url : Rakka.baseURI + "checkAuth",
53 beforeSend: function (req) {
56 "Basic " + Rakka.encodeBase64(userID + ":" + password));
58 success : function () {
61 + Rakka.encodeBase64(userID + ":" + password)
62 + ";max-age=31536000";
64 Rakka.restoreScreen();
66 error : function (req) {
67 if (req.status == 403) {
68 alert("Login failed: wrong ID or password");
71 alert("Error: " + req.status + " " + req.statusText);
77 var logout = function () {
78 document.cookie = "rakkaLoginInfo=;max-age=0";
85 var updateLoginState = function () {
87 currentPassword = null;
89 var cookies = document.cookie.split(/;\s*/);
90 $.each(cookies, function () {
91 var m = this.match(/^([^=]*)=(.*)$/);
96 if (key == "rakkaLoginInfo") {
97 m = Rakka.decodeBase64(value).match(/^([^:]*):(.*)$/);
100 currentPassword = m[2];
106 if (currentUserID != null) {
108 $("input.loginButton")
109 .val("Logout [" + currentUserID + "]")
117 $("input.loginButton")
120 .click(Rakka.showLoginPanel);
124 $(document).ready(function () {