lwsgs.js 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530
  1. <!-- lwsgs rewrites the below $vars $v $v into the correct values on the fly -->
  2. var lwsgs_user = "$lwsgs_user";
  3. var lwsgs_auth = "$lwsgs_auth";
  4. var lwsgs_email = "$lwsgs_email";
  5. var lwsgs_html = '\
  6. <div id="dlogin" style="display:none"> \
  7. <form action="lwsgs-login" method="post"> \
  8. <input type="hidden" name="admin" value="needadmin/admin-login.html"> \
  9. <input type="hidden" name="good" value="index.html"> \
  10. <input type="hidden" name="bad" value="failed-login.html"> \
  11. <input type="hidden" name="forgot-good" value="sent-forgot-ok.html"> \
  12. <input type="hidden" name="forgot-bad" value="sent-forgot-fail.html">\
  13. <input type="hidden" name="forgot-post-good" value="post-forgot-ok.html">\
  14. <input type="hidden" name="forgot-post-bad" value="post-forgot-fail.html">\
  15. <table style="vertical-align:top;text-align:right"\
  16. <tr>\
  17. <td>User Name\
  18. <input type="text" size="10" id="username" name="username"></td>\
  19. <td>Password\
  20. <input type="password" id="password" size="10" name="password"><div id="pw1"></div></td>\
  21. </tr><tr>\
  22. <td colspan="2" style="text-align:center"><input type="submit" id="login" name="login" value="Login" style="margin: 4px; padding: 2px; font-weight=bold;">\
  23. &nbsp;<input type="submit" id="forgot" name="forgot" value="Forgot password" style="margin: 2px; padding: 2px">\
  24. &nbsp;<input id="doreg" type="button" value="Sign up" style="margin: 2px; padding: 2px"></td>\
  25. </tr>\
  26. </table>\
  27. </form>\
  28. </div>\
  29. \
  30. <div id="dlogout" style="display:none;text-align:right">\
  31. <form action="lwsgs-logout" method="post" style="text-align:right">\
  32. <input type="hidden" name="good" value="index.html">\
  33. <table style="vertical-align:top;text-align:right">\
  34. <tr><td><span id=grav></span></td>\
  35. <td style="text-align:center"><table><tr><td style="text-align:center">\
  36. <a href="#" id="clink">\
  37. <span id="curuser"></span></a></td></tr><tr>\
  38. <td style="text-align:center"><input type="submit" name="logout" value="Logout" style="margin: 2px; padding: 2px"></td>\
  39. </tr></table></td></tr>\
  40. </table>\
  41. </form></div>\
  42. \
  43. <div id="dregister" style="display:none">\
  44. <form action="lwsgs-login" method="post">\
  45. <input type="hidden" name="admin" value="needadmin/admin-login.html">\
  46. <input type="hidden" name="good" value="successful-login.html">\
  47. <input type="hidden" name="bad" value="failed-login.html">\
  48. <input type="hidden" name="reg-good" value="post-register-ok.html">\
  49. <input type="hidden" name="reg-bad" value="post-register-fail.html">\
  50. <input type="hidden" name="forgot-good" value="sent-forgot-ok.html">\
  51. <input type="hidden" name="forgot-bad" value="sent-forgot-fail.html">\
  52. <input type="hidden" name="forgot-post-good" value="post-forgot-ok.html">\
  53. <input type="hidden" name="forgot-post-bad" value="post-forgot-fail.html">\
  54. <table style="vertical-align:top;text-align:left">\
  55. <tr>\
  56. <td colspan=2 align=center>\
  57. <span id="curuser"></span>\
  58. <script>\
  59. if (lwsgs_user)\
  60. document.getElementById("curuser").innerHTML = "currently logged in as " + lwsgs_san(lwsgs_user) + "</br>";\
  61. </script>\
  62. <b>Please enter your details to register</b>:\
  63. </td>\
  64. </tr>\
  65. <tr><td align=right>\
  66. User Name:</td>\
  67. <td><input type="text" size="10" id="rusername" name="username" &nbsp;<span id=uchk></span></td>\
  68. </tr>\
  69. <tr>\
  70. <td align=right>Password:</td>\
  71. <td><input type="password" size="10" id="rpassword" name="password">&nbsp;<span id="rpw1"></span></td>\
  72. </tr>\
  73. <tr>\
  74. </tr>\
  75. <tr>\
  76. <td align=right><span id="pw2">Password (again):</span></td>\
  77. <td><input type="password" size="10" id="password2" name="password2">&nbsp;<span id="match"></span></td>\
  78. </tr>\
  79. <tr>\
  80. <td align=right>Email:</td>\
  81. <td><input type="email" size="10" id="email" name="email"\
  82. placeholder="me@example.com" &nbsp;<span id=echk></span></td>\
  83. </tr>\
  84. <tr>\
  85. <td colspan=2 align=center>\
  86. <input type="submit" id="register" name="register" value="Register" style="margin: 2px; padding: 2px">\
  87. <input type="submit" id="rforgot" name="forgot" value="Forgot Password" style="margin: 2px; padding: 2px;display: none">\
  88. <input type="button" id="cancel" name="cancel" value="Cancel" style="margin: 2px; padding: 2px;">\
  89. </td>\
  90. </tr>\
  91. </table>\
  92. </form>\
  93. </div>\
  94. \
  95. <div id="dchange" style="display:none">\
  96. <form action="lwsgs-change" method="post">\
  97. <input type="hidden" id="cusername" name="username">\
  98. <input type="hidden" name="admin" value="needadmin/admin-login.html">\
  99. <input type="hidden" name="good" value="index.html">\
  100. <input type="hidden" name="bad" value="failed-login.html">\
  101. <input type="hidden" name="reg-good" value="post-register-ok.html">\
  102. <input type="hidden" name="reg-bad" value="post-register-fail.html">\
  103. <input type="hidden" name="forgot-good" value="sent-forgot-ok.html">\
  104. <input type="hidden" name="forgot-bad" value="sent-forgot-fail.html">\
  105. <input type="hidden" name="forgot-post-good" value="post-forgot-ok.html">\
  106. <input type="hidden" name="forgot-post-bad" value="post-forgot-fail.html">\
  107. <table style="vertical-align:top;text-align:left">\
  108. <tr>\
  109. <td colspan=2 align=center>\
  110. <span id="ccuruser"></span>\
  111. <script nonce="lwscaro">\
  112. if (lwsgs_user)\
  113. document.getElementById("ccuruser").innerHTML =\
  114. "<span class=\"gstitle\">Login settings for " +\
  115. lwsgs_san(lwsgs_user) + "</span></br>";\
  116. </script>\
  117. <b>Please enter your details to change</b>:\
  118. </td>\
  119. </tr>\
  120. <tr><td align=right id="ccurpw_name">\
  121. Current Password:</td>\
  122. <td><input type="password" size="10" id="ccurpw" name="curpw"\
  123. >&nbsp;<span id=cuchk></span></td>\
  124. </tr>\
  125. <tr>\
  126. <td align=right>Password:</td>\
  127. <td><input type="password" size="10" id="cpassword" name="password"\
  128. &nbsp;<span id="cpw1"></span></td>\
  129. </tr>\
  130. <tr>\
  131. <td align=right><span id="pw2">Password (again)</span></td>\
  132. <td><input type="password" size="10" id="cpassword2" name="password2"\
  133. >&nbsp;<span id="cmatch"></span></td>\
  134. </tr>\
  135. <!-- not supported yet\
  136. <tr>\
  137. <td align=right id="cemail_name">Email:</td>\
  138. <td><input type="email" size="10" id="cemail" name="email"\
  139. placeholder="?" \
  140. &nbsp;<span id=cechk></span></td>\
  141. </tr> -->\
  142. <tr>\
  143. <td colspan=2 align=center>\
  144. <input type="submit" id="change" name="change"\
  145. value="Change" style="margin: 6px; padding: 6px">\
  146. <input type="submit" id="cforgot" name="forgot"\
  147. value="Forgot Password" style="margin: 6px; padding: 6px;display: none">\
  148. <input type="button" id="cancel2" name="cancel"\
  149. value="Cancel" style="margin: 6px; padding: 6px;">\
  150. </td>\
  151. </tr>\
  152. <tr>\
  153. <td colspan=2>\
  154. <input type="checkbox" id="showdel" name="showdel"\
  155. > Show Delete&nbsp;\
  156. <input type="submit" id="delete" name="delete" \
  157. value="Delete Account" style="margin: 6px; padding: 6px;display: none">\
  158. </td>\
  159. </tr>\
  160. </table>\
  161. </form>\
  162. </div>\
  163. \
  164. <div id="dadmin" style="display:none">\
  165. Admin settings TBD\
  166. </div>\
  167. ';
  168. /*-- this came from
  169. -- https://raw.githubusercontent.com/blueimp/JavaScript-MD5/master/js/md5.min.js
  170. -- under MIT license */
  171. !function(n){"use strict";function t(n,t){var r=(65535&n)+(65535&t),e=(n>>16)+(t>>16)+(r>>16);return e<<16|65535&r}function r(n,t){return n<<t|n>>>32-t}function e(n,e,o,u,c,f){return t(r(t(t(e,n),t(u,f)),c),o)}function o(n,t,r,o,u,c,f){return e(t&r|~t&o,n,t,u,c,f)}function u(n,t,r,o,u,c,f){return e(t&o|r&~o,n,t,u,c,f)}function c(n,t,r,o,u,c,f){return e(t^r^o,n,t,u,c,f)}function f(n,t,r,o,u,c,f){return e(r^(t|~o),n,t,u,c,f)}function i(n,r){n[r>>5]|=128<<r%32,n[(r+64>>>9<<4)+14]=r;var e,i,a,h,d,l=1732584193,g=-271733879,v=-1732584194,m=271733878;for(e=0;e<n.length;e+=16)i=l,a=g,h=v,d=m,l=o(l,g,v,m,n[e],7,-680876936),m=o(m,l,g,v,n[e+1],12,-389564586),v=o(v,m,l,g,n[e+2],17,606105819),g=o(g,v,m,l,n[e+3],22,-1044525330),l=o(l,g,v,m,n[e+4],7,-176418897),m=o(m,l,g,v,n[e+5],12,1200080426),v=o(v,m,l,g,n[e+6],17,-1473231341),g=o(g,v,m,l,n[e+7],22,-45705983),l=o(l,g,v,m,n[e+8],7,1770035416),m=o(m,l,g,v,n[e+9],12,-1958414417),v=o(v,m,l,g,n[e+10],17,-42063),g=o(g,v,m,l,n[e+11],22,-1990404162),l=o(l,g,v,m,n[e+12],7,1804603682),m=o(m,l,g,v,n[e+13],12,-40341101),v=o(v,m,l,g,n[e+14],17,-1502002290),g=o(g,v,m,l,n[e+15],22,1236535329),l=u(l,g,v,m,n[e+1],5,-165796510),m=u(m,l,g,v,n[e+6],9,-1069501632),v=u(v,m,l,g,n[e+11],14,643717713),g=u(g,v,m,l,n[e],20,-373897302),l=u(l,g,v,m,n[e+5],5,-701558691),m=u(m,l,g,v,n[e+10],9,38016083),v=u(v,m,l,g,n[e+15],14,-660478335),g=u(g,v,m,l,n[e+4],20,-405537848),l=u(l,g,v,m,n[e+9],5,568446438),m=u(m,l,g,v,n[e+14],9,-1019803690),v=u(v,m,l,g,n[e+3],14,-187363961),g=u(g,v,m,l,n[e+8],20,1163531501),l=u(l,g,v,m,n[e+13],5,-1444681467),m=u(m,l,g,v,n[e+2],9,-51403784),v=u(v,m,l,g,n[e+7],14,1735328473),g=u(g,v,m,l,n[e+12],20,-1926607734),l=c(l,g,v,m,n[e+5],4,-378558),m=c(m,l,g,v,n[e+8],11,-2022574463),v=c(v,m,l,g,n[e+11],16,1839030562),g=c(g,v,m,l,n[e+14],23,-35309556),l=c(l,g,v,m,n[e+1],4,-1530992060),m=c(m,l,g,v,n[e+4],11,1272893353),v=c(v,m,l,g,n[e+7],16,-155497632),g=c(g,v,m,l,n[e+10],23,-1094730640),l=c(l,g,v,m,n[e+13],4,681279174),m=c(m,l,g,v,n[e],11,-358537222),v=c(v,m,l,g,n[e+3],16,-722521979),g=c(g,v,m,l,n[e+6],23,76029189),l=c(l,g,v,m,n[e+9],4,-640364487),m=c(m,l,g,v,n[e+12],11,-421815835),v=c(v,m,l,g,n[e+15],16,530742520),g=c(g,v,m,l,n[e+2],23,-995338651),l=f(l,g,v,m,n[e],6,-198630844),m=f(m,l,g,v,n[e+7],10,1126891415),v=f(v,m,l,g,n[e+14],15,-1416354905),g=f(g,v,m,l,n[e+5],21,-57434055),l=f(l,g,v,m,n[e+12],6,1700485571),m=f(m,l,g,v,n[e+3],10,-1894986606),v=f(v,m,l,g,n[e+10],15,-1051523),g=f(g,v,m,l,n[e+1],21,-2054922799),l=f(l,g,v,m,n[e+8],6,1873313359),m=f(m,l,g,v,n[e+15],10,-30611744),v=f(v,m,l,g,n[e+6],15,-1560198380),g=f(g,v,m,l,n[e+13],21,1309151649),l=f(l,g,v,m,n[e+4],6,-145523070),m=f(m,l,g,v,n[e+11],10,-1120210379),v=f(v,m,l,g,n[e+2],15,718787259),g=f(g,v,m,l,n[e+9],21,-343485551),l=t(l,i),g=t(g,a),v=t(v,h),m=t(m,d);return[l,g,v,m]}function a(n){var t,r="";for(t=0;t<32*n.length;t+=8)r+=String.fromCharCode(n[t>>5]>>>t%32&255);return r}function h(n){var t,r=[];for(r[(n.length>>2)-1]=void 0,t=0;t<r.length;t+=1)r[t]=0;for(t=0;t<8*n.length;t+=8)r[t>>5]|=(255&n.charCodeAt(t/8))<<t%32;return r}function d(n){return a(i(h(n),8*n.length))}function l(n,t){var r,e,o=h(n),u=[],c=[];for(u[15]=c[15]=void 0,o.length>16&&(o=i(o,8*n.length)),r=0;16>r;r+=1)u[r]=909522486^o[r],c[r]=1549556828^o[r];return e=i(u.concat(h(t)),512+8*t.length),a(i(c.concat(e),640))}function g(n){var t,r,e="0123456789abcdef",o="";for(r=0;r<n.length;r+=1)t=n.charCodeAt(r),o+=e.charAt(t>>>4&15)+e.charAt(15&t);return o}function v(n){return unescape(encodeURIComponent(n))}function m(n){return d(v(n))}function p(n){return g(m(n))}function s(n,t){return l(v(n),v(t))}function C(n,t){return g(s(n,t))}function A(n,t,r){return t?r?s(t,n):C(t,n):r?m(n):p(n)}"function"==typeof define&&define.amd?define(function(){return A}):"object"==typeof module&&module.exports?module.exports=A:n.md5=A}(this);
  172. if (lwsgs_user.substring(0, 1) == "$") {
  173. alert("lwsgs.js: lws generic sessions misconfigured and not providing vars");
  174. }
  175. function lwsgs_san(s)
  176. {
  177. if (s.search("<") != -1)
  178. return "invalid string";
  179. return s;
  180. }
  181. function lwsgs_update()
  182. {
  183. var en_login = 1, en_forgot = 1;
  184. if (document.getElementById('password').value.length &&
  185. document.getElementById('password').value.length < 8)
  186. en_login = 0;
  187. if (!document.getElementById('username').value ||
  188. !document.getElementById('password').value)
  189. en_login = 0;
  190. if (!document.getElementById('username').value ||
  191. document.getElementById('password').value)
  192. en_forgot = 0;
  193. document.getElementById('login').disabled = !en_login;
  194. document.getElementById('forgot').disabled = !en_forgot;
  195. if (lwsgs_user)
  196. document.getElementById("curuser").innerHTML = lwsgs_san(lwsgs_user);
  197. if (lwsgs_user === "")
  198. document.getElementById("dlogin").style.display = "inline";
  199. else
  200. document.getElementById("dlogout").style.display = "inline";
  201. }
  202. function lwsgs_open_registration()
  203. {
  204. document.getElementById("dadmin").style.display = "none";
  205. document.getElementById("dlogin").style.display = "none";
  206. document.getElementById("dlogout").style.display = "none";
  207. document.getElementById("dchange").style.display = "none";
  208. document.getElementById("dregister").style.display = "inline";
  209. }
  210. function lwsgs_cancel_registration()
  211. {
  212. document.getElementById("dadmin").style.display = "none";
  213. document.getElementById("dregister").style.display = "none";
  214. document.getElementById("dchange").style.display = "none";
  215. if (lwsgs_user === "")
  216. document.getElementById("dlogin").style.display = "inline";
  217. else
  218. document.getElementById("dlogout").style.display = "inline";
  219. }
  220. function lwsgs_select_change()
  221. {
  222. document.getElementById("dlogin").style.display = "none";
  223. document.getElementById("dlogout").style.display = "none";
  224. document.getElementById("dregister").style.display = "none";
  225. if (lwsgs_auth & 2) {
  226. document.getElementById("dadmin").style.display = "inline";
  227. document.getElementById("dchange").style.display = "none";
  228. } else {
  229. document.getElementById("dadmin").style.display = "none";
  230. document.getElementById("dchange").style.display = "inline";
  231. }
  232. event.preventDefault()
  233. }
  234. var lwsgs_user_check = '0';
  235. var lwsgs_email_check = '0';
  236. function lwsgs_rupdate()
  237. {
  238. var en_register = 1, en_forgot = 0;
  239. if (document.getElementById('rpassword').value ==
  240. document.getElementById('password2').value) {
  241. if (document.getElementById('rpassword').value.length)
  242. document.getElementById('match').innerHTML =
  243. "<b style=\"color:green\">\u2713</b>";
  244. else
  245. document.getElementById('match').innerHTML = "";
  246. document.getElementById('pw2').style = "";
  247. } else {
  248. if (document.getElementById('password2').value ||
  249. document.getElementById('email').value) { // ie, he is filling in "register" path and cares
  250. document.getElementById('match').innerHTML =
  251. "<span style=\"color: red\">\u2718 <b>Passwords do not match</b></span>";
  252. } else
  253. document.getElementById('match').innerHTML =
  254. "<span style=\"color: gray\">\u2718 Passwords do not match</span>";
  255. en_register = 0;
  256. }
  257. if (document.getElementById('rpassword').value.length &&
  258. document.getElementById('rpassword').value.length < 8) {
  259. en_register = 0;
  260. document.getElementById('rpw1').innerHTML = "Need 8 chars";
  261. } else
  262. if (document.getElementById('rpassword').value.length)
  263. document.getElementById('rpw1').innerHTML = "<b style=\"color:green\">\u2713</b>";
  264. else
  265. document.getElementById('rpw1').innerHTML = "";
  266. if (!document.getElementById('rpassword').value ||
  267. !document.getElementById('password2').value ||
  268. !document.getElementById('rusername').value ||
  269. !document.getElementById('email').value ||
  270. lwsgs_email_check === '1'||
  271. lwsgs_user_check === '1')
  272. en_register = 0;
  273. document.getElementById('register').disabled = !en_register;
  274. document.getElementById('rpassword').disabled = lwsgs_user_check === '1';
  275. document.getElementById('password2').disabled = lwsgs_user_check === '1';
  276. document.getElementById('email').disabled = lwsgs_user_check === '1';
  277. if (lwsgs_user_check === '0') {
  278. var uc = document.getElementById('uchk');
  279. if (uc) {
  280. if (document.getElementById('rusername').value)
  281. uc.innerHTML = "<b style=\"color:green\">\u2713</b>";
  282. else
  283. uc.innerHTML = "";
  284. }
  285. } else {
  286. if (document.getElementById('uchk'))
  287. ocument.getElementById('uchk').innerHTML = "<b style=\"color:red\">\u2718 Already registered</b>";
  288. en_forgot = 1;
  289. }
  290. if (lwsgs_email_check === '0') {
  291. var ec = document.getElementById('echk');
  292. if (ec) {
  293. if (document.getElementById('email').value)
  294. ec.innerHTML = "<b style=\"color:green\">\u2713</b>";
  295. else
  296. ec.innerHTML = "";
  297. }
  298. } else {
  299. if (document.getElementById('echk'))
  300. document.getElementById('echk').innerHTML = "<b style=\"color:red\">\u2718 Already registered</b>";
  301. en_forgot = 1;
  302. }
  303. if (en_forgot)
  304. document.getElementById('rforgot').style.display = "inline";
  305. else
  306. document.getElementById('rforgot').style.display = "none";
  307. if (lwsgs_user_check === '1')
  308. op = '0.5';
  309. else
  310. op = '1.0';
  311. document.getElementById('rpassword').style.opacity = op;
  312. document.getElementById('password2').style.opacity = op;
  313. document.getElementById('email').style.opacity = op;
  314. }
  315. function lwsgs_cupdate()
  316. {
  317. var en_change = 1, en_forgot = 1, pwok = 1;
  318. if (lwsgs_auth & 8) {
  319. document.getElementById('ccurpw').style.display = "none";
  320. document.getElementById('ccurpw_name').style.display = "none";
  321. } else {
  322. if (!document.getElementById('ccurpw').value ||
  323. document.getElementById('ccurpw').value.length < 8) {
  324. en_change = 0;
  325. pwok = 0;
  326. document.getElementById('cuchk').innerHTML = "<b style=\"color:red\">\u2718</b>";
  327. } else {
  328. en_forgot = 0;
  329. document.getElementById('cuchk').innerHTML = "";
  330. }
  331. document.getElementById('ccurpw').style.display = "inline";
  332. document.getElementById('ccurpw_name').style.display = "inline";
  333. }
  334. if (document.getElementById('cpassword').value ==
  335. document.getElementById('cpassword2').value) {
  336. if (document.getElementById('cpassword').value.length)
  337. document.getElementById('cmatch').innerHTML = "<b style=\"color:green\">\u2713</b>";
  338. else
  339. document.getElementById('cmatch').innerHTML = "";
  340. document.getElementById('pw2').style = "";
  341. } else {
  342. if (document.getElementById('cpassword2').value //||
  343. //document.getElementById('cemail').value
  344. ) { // ie, he is filling in "register" path and cares
  345. document.getElementById('cmatch').innerHTML =
  346. "<span style=\"color: red\">\u2718 <b>Passwords do not match</b></span>";
  347. } else
  348. document.getElementById('cmatch').innerHTML = "<span style=\"color: gray\">\u2718 Passwords do not match</span>";
  349. en_change = 0;
  350. }
  351. if (document.getElementById('cpassword').value.length &&
  352. document.getElementById('cpassword').value.length < 8) {
  353. en_change = 0;
  354. document.getElementById('cpw1').innerHTML = "Need 8 chars";
  355. } else {
  356. var cpw = document.getElementById('cpw1');
  357. if (cpw) {
  358. if (document.getElementById('cpassword').value.length)
  359. cpw.innerHTML = "<b style=\"color:green\">\u2713</b>";
  360. else
  361. cpw.innerHTML = "";
  362. }
  363. }
  364. if (!document.getElementById('cpassword').value ||
  365. !document.getElementById('cpassword2').value ||
  366. pwok == 0)
  367. en_change = 0;
  368. if (document.getElementById('showdel').checked)
  369. document.getElementById('delete').style.display = "inline";
  370. else
  371. document.getElementById('delete').style.display = "none";
  372. document.getElementById('change').disabled = !en_change;
  373. document.getElementById('cpassword').disabled = pwok === 0;
  374. document.getElementById('cpassword2').disabled = pwok === 0;
  375. document.getElementById('showdel').disabled = pwok === 0;
  376. document.getElementById('delete').disabled = pwok === 0;
  377. //document.getElementById('cemail').disabled = pwok === 0;
  378. /*
  379. if (lwsgs_auth & 8) {
  380. document.getElementById('cemail').style.display = "none";
  381. document.getElementById('cemail_name').style.display = "none";
  382. } else {
  383. document.getElementById('cemail').style.display = "inline";
  384. document.getElementById('cemail_name').style.display = "inline";
  385. if (lwsgs_email_check === '0' &&
  386. document.getElementById('cemail').value != lwsgs_email) {
  387. if (document.getElementById('cemail').value)
  388. document.getElementById('cechk').innerHTML = "<b style=\"color:green\">\u2713</b>";
  389. else
  390. document.getElementById('cechk').innerHTML = "";
  391. } else {
  392. document.getElementById('cechk').innerHTML = "<b style=\"color:red\">\u2718 Already registered</b>";
  393. en_forgot = 1;
  394. }
  395. } */
  396. if (lwsgs_auth & 8)
  397. en_forgot = 0;
  398. if (en_forgot)
  399. document.getElementById('cforgot').style.display = "inline";
  400. else
  401. document.getElementById('cforgot').style.display = "none";
  402. if (pwok == 0)
  403. op = '0.5';
  404. else
  405. op = '1.0';
  406. document.getElementById('cpassword').style.opacity = op;
  407. document.getElementById('cpassword2').style.opacity = op;
  408. // document.getElementById('cemail').style.opacity = op;
  409. }
  410. function lwsgs_check_user()
  411. {
  412. var xmlHttp = new XMLHttpRequest();
  413. xmlHttp.onreadystatechange = function() {
  414. if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
  415. lwsgs_user_check = xmlHttp.responseText;
  416. lwsgs_rupdate();
  417. }
  418. }
  419. xmlHttp.open("GET", "lwsgs-check?username="+document.getElementById('rusername').value, true);
  420. xmlHttp.send(null);
  421. }
  422. function lwsgs_check_email(id)
  423. {
  424. var xmlHttp = new XMLHttpRequest();
  425. xmlHttp.onreadystatechange = function() {
  426. if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
  427. lwsgs_email_check = xmlHttp.responseText;
  428. lwsgs_rupdate();
  429. }
  430. }
  431. xmlHttp.open("GET", "lwsgs-check?email="+document.getElementById(id).value, true);
  432. xmlHttp.send(null);
  433. }
  434. function rupdate_user()
  435. {
  436. lwsgs_rupdate();
  437. lwsgs_check_user();
  438. }
  439. function rupdate_email()
  440. {
  441. lwsgs_rupdate();
  442. lwsgs_check_email('email');
  443. }
  444. function cupdate_email()
  445. {
  446. lwsgs_cupdate();
  447. lwsgs_check_email('cemail');
  448. }
  449. function lwsgs_initial()
  450. {
  451. document.getElementById('lwsgs').innerHTML = lwsgs_html;
  452. document.getElementById('username').oninput = lwsgs_update;
  453. document.getElementById('username').onchange = lwsgs_update;
  454. document.getElementById('password').oninput = lwsgs_update;
  455. document.getElementById('password').onchange = lwsgs_update;
  456. document.getElementById('doreg').onclick = lwsgs_open_registration;
  457. document.getElementById('clink').onclick = lwsgs_select_change;
  458. document.getElementById('cancel').onclick =lwsgs_cancel_registration;
  459. document.getElementById('cancel2').onclick =lwsgs_cancel_registration;
  460. document.getElementById('rpassword').oninput = lwsgs_rupdate;
  461. document.getElementById('password2').oninput = lwsgs_rupdate;
  462. document.getElementById('rusername').oninput = rupdate_user;
  463. document.getElementById('email').oninput = rupdate_email;
  464. document.getElementById('ccurpw').oninput = lwsgs_cupdate;
  465. document.getElementById('cpassword').oninput = lwsgs_cupdate;
  466. document.getElementById('cpassword2').oninput = lwsgs_cupdate;
  467. <!-- document.getElementById('cemail').oninput = cupdate_email;-->
  468. document.getElementById('showdel').onchange = lwsgs_cupdate;
  469. if (lwsgs_email)
  470. document.getElementById('grav').innerHTML =
  471. "<img src=\"https://www.gravatar.com/avatar/" + md5(lwsgs_email) +
  472. "?d=identicon\">";
  473. //if (lwsgs_email)
  474. //document.getElementById('cemail').placeholder = lwsgs_email;
  475. document.getElementById('cusername').value = lwsgs_user;
  476. lwsgs_update();
  477. lwsgs_cupdate();
  478. }