Mercurial > boosterpack
diff logintets/login_presentation.js @ 0:477258d09353 boosterpack
[svn r1] initial import
author | robert |
---|---|
date | Sun, 30 Aug 2009 02:19:26 -0400 |
parents | |
children |
line wrap: on
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/logintets/login_presentation.js Sun Aug 30 02:19:26 2009 -0400 1.3 @@ -0,0 +1,126 @@ 1.4 +var showingLoggedIn = false; 1.5 +var messageElement = false; 1.6 +var messageP = false; 1.7 + 1.8 +// focusField method: called when username and password gain focus 1.9 +function focusField() 1.10 +{ 1.11 + try { 1.12 + if (messageElement != false) 1.13 + { 1.14 + document.getElementById('message').removeChild(messageElement); 1.15 + } 1.16 + getSeed(); 1.17 + } 1.18 + catch (e) 1.19 + { } // do nothing... hides an apparent firefox bug: https://bugzilla.mozilla.org/show_bug.cgi?id=236791 1.20 +} 1.21 + 1.22 +// blurField method: called when username and password are blurred 1.23 +function blurField() 1.24 +{ 1.25 + try { 1.26 + validateLogin(); 1.27 + } 1.28 + catch (e) 1.29 + { } // hide bug https://bugzilla.mozilla.org/show_bug.cgi?id=236791 1.30 +} 1.31 + 1.32 +// showLogin method: displays if necessariy that we are logged in 1.33 +function showLogin() { 1.34 + if (messageElement != false) 1.35 + { 1.36 + try { 1.37 + document.getElementById('message').removeChild(messageElement); 1.38 + } 1.39 + catch (e) { } 1.40 + } 1.41 + if (loggedIn) 1.42 + { 1.43 + showingLoggedIn = true; 1.44 + 1.45 + loginPanel = document.getElementById('login'); 1.46 + p = document.createElement('p'); 1.47 + pre = document.createTextNode('Logged in as '); 1.48 + strong = document.createElement('strong'); 1.49 + strong_text = document.createTextNode(fullname); 1.50 + strong.appendChild(strong_text); 1.51 + mid = document.createTextNode(' ['); 1.52 + a = document.createElement('a'); 1.53 + a.href='javascript:logout();'; 1.54 + a_text = document.createTextNode('logout'); 1.55 + a.appendChild(a_text); 1.56 + post = document.createTextNode(']'); 1.57 + 1.58 + p.appendChild(pre); 1.59 + p.appendChild(strong); 1.60 + p.appendChild(mid); 1.61 + p.appendChild(a); 1.62 + p.appendChild(post); 1.63 + 1.64 + messageP = document.getElementById('message'); 1.65 + loginPanel.removeChild(messageP); 1.66 + loginPanel.appendChild(p); 1.67 + 1.68 + messageElement = p; 1.69 + 1.70 + document.getElementById('username').disabled = 'disabled'; 1.71 + document.getElementById('password').disabled = 'disabled'; 1.72 + 1.73 + document.getElementById('comments').focus(); 1.74 + } 1.75 + else 1.76 + { 1.77 + messageElement = document.createElement('strong'); 1.78 + messageElement.appendChild(document.createTextNode(' ' + messages)); 1.79 + messageElement.style.color = '#ff0000'; 1.80 + document.getElementById('message').appendChild(messageElement); 1.81 + } 1.82 +} 1.83 + 1.84 +// logout method: prepares for a new login 1.85 +function logout() 1.86 +{ 1.87 + resetLogin(); 1.88 + username = document.getElementById('username'); 1.89 + password = document.getElementById('password'); 1.90 + loginPanel = document.getElementById('login'); 1.91 + username.value = ''; 1.92 + password.value = ''; 1.93 + username.disabled = null; 1.94 + password.disabled = null; 1.95 + 1.96 + loginPanel.removeChild(messageElement); 1.97 + loginPanel.appendChild(messageP); 1.98 + 1.99 + messageElement = false; 1.100 + showingLoggedIn = false; 1.101 + 1.102 + username.focus(); 1.103 +} 1.104 + 1.105 +// setupLogin method: to be called on page load, sets up the login script 1.106 +function setupLogin() 1.107 +{ 1.108 + username = document.getElementById('username'); 1.109 + password = document.getElementById('password'); 1.110 + addEvent(username, 'focus', focusField); 1.111 + addEvent(username, 'blur', blurField); 1.112 + addEvent(password, 'focus', focusField); 1.113 + addEvent(password, 'blur', blurField); 1.114 +} 1.115 + 1.116 + 1.117 +// function to add events to the page in a cross-browser manner 1.118 +function addEvent(objObject, strEventName, fnHandler) { 1.119 + // DOM-compliant way to add an event listener 1.120 + if (objObject.addEventListener) { 1.121 + objObject.addEventListener(strEventName, fnHandler, false); 1.122 + } 1.123 + // IE/windows way to add an event listener 1.124 + else if (objObject.attachEvent) { 1.125 + objObject.attachEvent('on' + strEventName, fnHandler); 1.126 + } 1.127 +} 1.128 + 1.129 +addEvent(window,'load',setupLogin); 1.130 \ No newline at end of file