Login Creator Version3.1

<html> <head> <title>Login Script Creator v 3.1</title> <script language="javascript"> var member = new Array(); </script> </head> <body bgcolor="#8090a0" background="bgrlogin.gif" onload="init(document.login.ml);"> <script language="javascript" src="members.js"></script> <table border=1 bgcolor="#8090a0"> <tr><form><td align="center"><input type="button" value="HELP" onclick="top.location='ver3help.htm';"></td></form> <td colspan=2 align="center"><font size=4><b>Login Script Creator V3.1 &copy Dion</b></font></td></tr> <tr><form name="login" method="get"><td align="center" rowspan=4> <select name="ml" size=8 onchange="changed(this.form);"> <option value="zero">No Members Available. </select></td> <td align="right"><font size=3>Member:</font></td> <td align="left"><input type="text" name="membername" size=25></td></tr> <tr><td align="right"><font size=3>Password:</font></td> <td align="left"><input type="text" name="password" size=16 maxlength=16>(a-z/0-9/'-')max 16</td></tr> <tr><td align="right"><font size=3>Destination(s):</font></td> <td align="left"><input type="text" name="destination" size=32><input type="button" value=" ? " onclick="alert('Multiple destinations must be written as follows: URL1(title1);URL2(title2)');"></td></tr> <tr><td colspan=2 align="center"><input type="button" value="Blank" onclick="add(this.form);"> <input type="button" value="Delete" onclick="del(this.form);"> <input type="button" value="Create" onclick="create(this.form);"> HideNames:<input type="checkbox" name="invis"></td></tr> <tr><td>Total:<input type="text" value="0" name="total" size=4><input type="button" value="List" onclick="list(this.form);"></td> <td colspan=2><input type="text" size=40 name="message"></td></tr> <tr><td colspan=3><textarea cols=70 rows=10 name="scrpt" wrap="off"> <html><center><form name="login"> <select name="memlist"> <option selected value="x">Select Name #<html><script language="javascript">var mem=new Array(); #</select><br> #</script><center><form name="login"> Login Name:<br> <input type='text' size=16 maxlength=32 name='member'><br> # Password:<br> <input type='password' size=16 maxlength=16 name='pass'><br> <input type='button' value='LOGIN' onclick='check(this.form);'> <input type=reset value=reset> </form> <script language="javascript"> var prop="Copyright dion 6/98"; var params=new Array(16); var alpha="ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789-ABCDEFGHI"; function check(form) { # choice = form.memlist.options[form.memlist.selectedIndex].value; if (choice=="x") { alert("Please Select Your Name From The List"); return; }; splt(choice,","); # flag=0; h0=makehash(form.member.value,7); for (j=0;j<mem.length;j++) { splt(mem[j],","); if (h0==params[0]) { flag=1; break; }; }; if (flag==0) { alert("Member name was not found."); return; }; # h1=makehash(form.pass.value,3); h2=makehash(form.pass.value,10)+" "; if (h1!=params[1]) { alert("Incorrect Password!"); return; }; var page=""; var hp=0; for (var i=0;i<params[2].length;i++) { letter=params[2].substring(i,i+1) ul=letter.toUpperCase(); a=alpha.indexOf(ul,0); if (a>=0) { a-=(h2.substring(hp,hp+1)*1); hp++; if (hp==h2.length-1) hp=0; if (a<0) a+=38; page+=alpha.substring(a,a+1); } else { page+=letter; }; }; text=""; c=0; splt(page,";"); choice=params[0]; while (params[c]) { a=params[c].indexOf("(",0); b=params[c].indexOf(")",a); text+=params[c].substring(a+1,b)+", "; c++; }; if (c>1) { pick=prompt("Destinations: "+text,"Choose Destination").toUpperCase(); choice=null; if (pick) for (i=0;i<c;i++) if (params[i].indexOf("("+pick+")",0)>0) choice=params[i].substring(0,params[i].indexOf("(",0)); }; if (choice) top.location=choice.toLowerCase(); }; function makehash(pw,mult) { pass=pw.toUpperCase(); hash=0; for (i=0;i<pass.length;i++) { letter=pass.substring(i,i+1); c=alpha.indexOf(letter,0)+1; hash=hash*mult+c; }; return(hash); }; function splt(str,delim) { p=0; i=0; val=str+delim; while (val.indexOf(delim,p+1)>0) { a=val.indexOf(delim,p); params[i]=val.substring(a,p); p=a+1; i++; }; params[i]=null; }; </script> # </textarea> </td><input type="hidden" name="current" value=0></form></tr> </table> <script language="javascript"> var params=new Array(16); var bits=new Array(7); var alpha="ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789-ABCDEFGHI"; function init(a) { c=0; if (document.login.total.value!=0) c=member.length; while (member[c]) { n=member[c].substring(member[c].indexOf(",",0),0); if (a[c]) { a[c].text=n; a[c].value=member[c]; } else { a[a.length]=new Option(n, member[c], false, true); }; c=(c+1)%20; }; a.selectedIndex=0; document.login.total.value=a.length; getmem(document.login); x=0; for (i=0; i<8;i++) { y=document.login.scrpt.value.indexOf("#",x); bits[i]=document.login.scrpt.value.substring(y,x); x=y+1; }; document.login.scrpt.value="Version 3.1 contains many suggestions from people who needed special \n features or who had problems. Thanks to all who contributed ideas. \n You all gave me about 100 hours of programming challenge. \n \n Postcards and donations can be made to: \n \n Dion & Jung \n U3 / 211 Railway Ave \n Kelmscott WA 6111 \n Western Australia."; }; function getmem(form) { splt(form.ml[form.ml.selectedIndex].value,","); for (i=1;i<4;i++) form.elements[i].value=params[i-1]; }; function splt(str,delim) { p=0; i=0; val=str+delim; while (val.indexOf(delim,p+1)>0) { a=val.indexOf(delim,p); params[i]=val.substring(a,p); p=a+1; i++; }; params[i]=null; }; function changed(form) { temp=""; form.message.value=""; m=form.ml; cv=form.current; for (i=1;i<4;i++) { a=form.elements[i]; temp+=a.value+","; if (i>1) { if (a.value.length<8) alert(a.name+" requires 8 or more characters!"); for (k=0;k<a.value.length;k++) { b=a.value.substring(k,k+1); c=b.toUpperCase(); if (alpha.indexOf(c,0)<0 && i==2) { alert(a.name+" Must Use Letters A - Z, Digits 0 - 9 and ' - ' Only!"); break; }; }; }; }; m[cv.value].text=form.membername.value; m[cv.value].value=temp; cv.value=m.selectedIndex; getmem(form); }; function add(form) { changed(form); form.current.value=form.ml.length; form.ml[form.ml.length]=new Option("undefined","undefined,password,destination(s)",false,true); form.message.value="Blank Member Added."; if (navigator.appName=="Netscape") history.go(0); getmem(form); }; function del(form) { if(form.ml.length==1) return; if (confirm("Really delete "+form.membername.value+"?")) { form.ml.options[form.ml.selectedIndex]=null; form.message.value=form.membername.value+" Deleted"; form.ml.selectedIndex=0; if (navigator.appName=="Netscape") history.go(0); getmem(form); }; }; function list(form) { temp=""; for (i=0;i<form.ml.length;i++) temp+='member['+i+']="'+form.ml[i].value+'";\n'; form.scrpt.value=temp; }; function create(form) { changed(form); form.scrpt.value=""; bval="082457"; if (form.invis.checked) bval="183467"; for (l=0;l<bval.length;l++) { a=bval.substring(l,l+1)*1; if (a==8) makelist(form); else form.scrpt.value+=bits[a]; }; form.scrpt.value+="</ht"+"ml>"; }; function makelist(form) { for (j=0;j<form.ml.length;j++) { splt(form.ml.options[j].value,","); h0=params[0]; pre='<option value="'; post='">'+h0; if (form.invis.checked) { h0=makehash(params[0],7); pre='mem['+j+']="'; post='";'; }; h1=makehash(params[1],3); h2=makehash(params[1],10)+" "; var page=""; hp=0; for (var i=0;i<params[2].length;i++) { letter=params[2].substring(i,i+1) ul=letter.toUpperCase(); a=alpha.indexOf(ul,0); if (a>=0) { a+=(h2.substring(hp,hp+1)*1); hp++; if (hp==h2.length-1) hp=0; page+=alpha.substring(a,a+1); } else { page+=letter; }; }; form.scrpt.value+=pre+h0+","+h1+","+page+post+"\n"; }; }; function makehash(pw,mult) { pass=pw.toUpperCase(); hash=0; for (i=0;i<pass.length;i++) { letter=pass.substring(i,i+1); c=alpha.indexOf(letter,0)+1; hash=hash*mult+c; }; return(hash); }; function test(form) { a=""; if (form.invis.checked) a="i"; top.location="testv3"+a+".htm"; }; </script> </body> </html>