annotate BoosterPack/logintets/login_presentation.js @ 0:0d795f02a8bb tip

initial committ. what was I thinking?
author Robert McIntyre <rlm@mit.edu>
date Mon, 27 Sep 2010 16:57:26 -0400
parents
children
rev   line source
rlm@0 1 var showingLoggedIn = false;
rlm@0 2 var messageElement = false;
rlm@0 3 var messageP = false;
rlm@0 4
rlm@0 5 // focusField method: called when username and password gain focus
rlm@0 6 function focusField()
rlm@0 7 {
rlm@0 8 try {
rlm@0 9 if (messageElement != false)
rlm@0 10 {
rlm@0 11 document.getElementById('message').removeChild(messageElement);
rlm@0 12 }
rlm@0 13 getSeed();
rlm@0 14 }
rlm@0 15 catch (e)
rlm@0 16 { } // do nothing... hides an apparent firefox bug: https://bugzilla.mozilla.org/show_bug.cgi?id=236791
rlm@0 17 }
rlm@0 18
rlm@0 19 // blurField method: called when username and password are blurred
rlm@0 20 function blurField()
rlm@0 21 {
rlm@0 22 try {
rlm@0 23 validateLogin();
rlm@0 24 }
rlm@0 25 catch (e)
rlm@0 26 { } // hide bug https://bugzilla.mozilla.org/show_bug.cgi?id=236791
rlm@0 27 }
rlm@0 28
rlm@0 29 // showLogin method: displays if necessariy that we are logged in
rlm@0 30 function showLogin() {
rlm@0 31 if (messageElement != false)
rlm@0 32 {
rlm@0 33 try {
rlm@0 34 document.getElementById('message').removeChild(messageElement);
rlm@0 35 }
rlm@0 36 catch (e) { }
rlm@0 37 }
rlm@0 38 if (loggedIn)
rlm@0 39 {
rlm@0 40 showingLoggedIn = true;
rlm@0 41
rlm@0 42 loginPanel = document.getElementById('login');
rlm@0 43 p = document.createElement('p');
rlm@0 44 pre = document.createTextNode('Logged in as ');
rlm@0 45 strong = document.createElement('strong');
rlm@0 46 strong_text = document.createTextNode(fullname);
rlm@0 47 strong.appendChild(strong_text);
rlm@0 48 mid = document.createTextNode(' [');
rlm@0 49 a = document.createElement('a');
rlm@0 50 a.href='javascript:logout();';
rlm@0 51 a_text = document.createTextNode('logout');
rlm@0 52 a.appendChild(a_text);
rlm@0 53 post = document.createTextNode(']');
rlm@0 54
rlm@0 55 p.appendChild(pre);
rlm@0 56 p.appendChild(strong);
rlm@0 57 p.appendChild(mid);
rlm@0 58 p.appendChild(a);
rlm@0 59 p.appendChild(post);
rlm@0 60
rlm@0 61 messageP = document.getElementById('message');
rlm@0 62 loginPanel.removeChild(messageP);
rlm@0 63 loginPanel.appendChild(p);
rlm@0 64
rlm@0 65 messageElement = p;
rlm@0 66
rlm@0 67 document.getElementById('username').disabled = 'disabled';
rlm@0 68 document.getElementById('password').disabled = 'disabled';
rlm@0 69
rlm@0 70 document.getElementById('comments').focus();
rlm@0 71 }
rlm@0 72 else
rlm@0 73 {
rlm@0 74 messageElement = document.createElement('strong');
rlm@0 75 messageElement.appendChild(document.createTextNode(' ' + messages));
rlm@0 76 messageElement.style.color = '#ff0000';
rlm@0 77 document.getElementById('message').appendChild(messageElement);
rlm@0 78 }
rlm@0 79 }
rlm@0 80
rlm@0 81 // logout method: prepares for a new login
rlm@0 82 function logout()
rlm@0 83 {
rlm@0 84 resetLogin();
rlm@0 85 username = document.getElementById('username');
rlm@0 86 password = document.getElementById('password');
rlm@0 87 loginPanel = document.getElementById('login');
rlm@0 88 username.value = '';
rlm@0 89 password.value = '';
rlm@0 90 username.disabled = null;
rlm@0 91 password.disabled = null;
rlm@0 92
rlm@0 93 loginPanel.removeChild(messageElement);
rlm@0 94 loginPanel.appendChild(messageP);
rlm@0 95
rlm@0 96 messageElement = false;
rlm@0 97 showingLoggedIn = false;
rlm@0 98
rlm@0 99 username.focus();
rlm@0 100 }
rlm@0 101
rlm@0 102 // setupLogin method: to be called on page load, sets up the login script
rlm@0 103 function setupLogin()
rlm@0 104 {
rlm@0 105 username = document.getElementById('username');
rlm@0 106 password = document.getElementById('password');
rlm@0 107 addEvent(username, 'focus', focusField);
rlm@0 108 addEvent(username, 'blur', blurField);
rlm@0 109 addEvent(password, 'focus', focusField);
rlm@0 110 addEvent(password, 'blur', blurField);
rlm@0 111 }
rlm@0 112
rlm@0 113
rlm@0 114 // function to add events to the page in a cross-browser manner
rlm@0 115 function addEvent(objObject, strEventName, fnHandler) {
rlm@0 116 // DOM-compliant way to add an event listener
rlm@0 117 if (objObject.addEventListener) {
rlm@0 118 objObject.addEventListener(strEventName, fnHandler, false);
rlm@0 119 }
rlm@0 120 // IE/windows way to add an event listener
rlm@0 121 else if (objObject.attachEvent) {
rlm@0 122 objObject.attachEvent('on' + strEventName, fnHandler);
rlm@0 123 }
rlm@0 124 }
rlm@0 125
rlm@0 126 addEvent(window,'load',setupLogin);