/* Programmer Ng Hun Yang. Apr 2002 Revision history 10 Apr 2002 nhy First written 2 Jul 2002 nhy Modified pw dialog box opening 4 Jul 2002 nhy Added Netscape/IE check 9 Sep 2002 nhy Put parameters in url */ function disp_pw_prompt(new_user_level) { var p_win = window; var win_xsize = 300; var win_ysize = 100; //alert("x ofs: " + p_win.pageXOffset + ". width: " + p_win.outerWidth + // ". size: " + win_xsize); //alert("y ofs: " + p_win.pageYOffset + ". height: " + p_win.outerHeight + // ". size: " + win_ysize); var w = window.open( gbl_pw_pg_name + "?level=" + new_user_level, // url "PasswordWin", // name "alwaysRaised,dependent," + // features "width=" + win_xsize + "," + "height=" + win_ysize + "," + "screenX=" + (p_win.pageXOffset + (p_win.outerWidth - win_xsize) / 2) + "," + "screenY=" + (p_win.pageYOffset + (p_win.outerHeight - win_ysize) / 2) ); } function disp_pw_prompt_on_load(d) { var myurl; var param_list; var new_user_level; myurl = "" + d.location; //alert("myurl = " + myurl); param_list = extract_params(myurl); new_user_level = param_list["level"]; //alert("new user level: " + new_user_level); write_body(d); d.writeln("
"); d.writeln(BEGIN_SCRIPT); d.writeln(pw_set_focus.toString() + "\n"); d.writeln(pw_handle_okay.toString() + "\n"); d.writeln(pw_handle_cancel.toString() + "\n"); d.writeln(END_SCRIPT); d.writeln("Enter password "); d.writeln(""); d.writeln("

"); d.writeln("
"); d.writeln(""); d.writeln(""); d.writeln("
"); d.writeln("
"); if(!isNavigator) { d.writeln(BEGIN_SCRIPT); d.writeln("pw_set_focus(myform);"); d.writeln(END_SCRIPT); } d.writeln(END_BODY); } function pw_one_way_hash(pw) { var tbl = [ 0xea5e, 0x5f74, 0x925a, 0xac30, 0x619e, 0x3e39, 0x081a, 0x1b0f, 0x6ac3, 0x9e17, 0xc73b, 0xa31e, 0x603d, 0x5201, 0x36ae, 0x1135 ]; var hash = 0xffffffff; for(var i = 0; i < pw.length; ++i) { var ch = pw.charCodeAt(i); var hash_l = 0; var hash_h = 0; hash_h = tbl[((hash >> 28) ^ (ch >> 4)) & 0x0f]; hash_l = tbl[((hash >> 24) ^ (ch & 0x0f)) & 0x0f]; hash = (hash << 8) ^ ((hash_h << 16) | hash_l); } return ~hash & 0x7fffffff; } function pw_set_focus(myform) { myform.elements["pw_box"].focus(); } function pw_handle_okay(myform, new_user_level) { //alert("okay"); var msr_w = window.opener; var usr_pw = msr_w.uar_ref_list[new_user_level][2]; //alert("usr_pw: " + usr_pw + // ". window.opener.name: " + window.opener.name + // ". pw_box: " + myform.pw_box.value); var inp_pw = msr_w.pw_one_way_hash(myform.pw_box.value); var new_user_level_name = msr_w.uar_ref_list[new_user_level][0]; var url = "ChgUserLevel-" + new_user_level_name + "-" + inp_pw + ".html"; //alert(url); var w = window.open(url, "ChgUserLevelWin", // name "width=10,height=10" // features ); return false; } function pw_handle_cancel() { //alert("cancel"); window.close(); }