--- loncom/interface/Attic/londropadd.pm	2000/12/26 21:40:26	1.2
+++ loncom/interface/Attic/londropadd.pm	2000/12/27 17:58:45	1.3
@@ -14,7 +14,7 @@
 # 11/20,11/21,11/22,11/23,11/24,11/25,11/27,11/28,
 # 12/08,12/12 Gerd Kortemeyer)
 #
-# 12/26 Gerd Kortemeyer
+# 12/26, 12/27 Gerd Kortemeyer
 
 package Apache::londropadd;
 
@@ -95,6 +95,9 @@ ENDUPFORM
              }
              my @lines=split(/\n/,$ENV{'form.upfile'});
              my $total=$#lines+1;
+             $ENV{'SERVER_NAME'}=~/(\w+\.\w+)$/;
+	     my $krbdefdom=$1;
+             $krbdefdom=~tr/a-z/A-Z/;
 	     $r->print(<<ENDPICK);
 <input type=hidden name=phase value=three>
 <input type=hidden name=datatoken value="$datatoken">
@@ -102,6 +105,125 @@ ENDUPFORM
 <hr>
 <h3>Identify fields</h3>
 Total number of students: $total
+<script>
+function verify(vf) {
+    var founduname=0;
+    var foundpwd=0;
+    var foundname=0;
+    var foundid=0;
+    var foundsec=0;
+    var foundatype=0;
+    var tw;
+    var message='';
+    for (i=0;i<=vf.nfields.value;i++) {
+        tw=eval('vf.f'+i+'.selectedIndex');
+        if (tw==1) { founduname=1; }
+        if ((tw>=2) && (tw<=6)) { foundname=1; }
+        if (tw==7) { foundid=1; }
+        if (tw==8) { foundsec=1; } 
+        if (tw==9) { foundpwd=1; }
+    }
+    if (founduname==0) {
+	alert('You need to specify at least the username field');
+        return;
+    }
+    if (vf.login[0].checked) {
+	foundatype=1;
+        if (vf.krbdom.value=='') {
+	    alert('You need to specify the Kerberos domain');
+            return;
+        }
+    }
+    if (vf.login[1].checked) {
+	foundatype=1;
+        if ((vf.intpwd.value=='') && (foundpwd==0)) {
+	    alert('You need to specify the initial password');
+            return;
+        }
+    }
+    if (foundatype==0) {
+	alert('You need to set the login type');
+        return;
+    }
+    if (foundname==0) { message='No name fields specified. '; }
+    if (foundid==0) { message+='No ID or student number field specified. '; }
+    if (foundsec==0) { message+='No section or group field specified. '; }
+    message+='Complete enrollment?';
+    if (confirm(message)) {
+	vf.submit();
+    }
+}
+
+function flip(vf,tf) {
+   var nw=eval('vf.f'+tf+'.selectedIndex');
+   var i;
+   for (i=0;i<=vf.nfields.value;i++) {
+      if ((i!=tf) && (eval('vf.f'+i+'.selectedIndex')==nw)) {
+          eval('vf.f'+i+'.selectedIndex=0;')      
+      } 
+   }
+   if (nw==2) {
+      for (i=0;i<=vf.nfields.value;i++) {
+         if ((eval('vf.f'+i+'.selectedIndex')>=3) &&
+             (eval('vf.f'+i+'.selectedIndex')<=6)) {
+             eval('vf.f'+i+'.selectedIndex=0;')
+         }
+      }      
+   }
+   if ((nw>=3) && (nw<=6)) {
+      for (i=0;i<=vf.nfields.value;i++) {
+         if (eval('vf.f'+i+'.selectedIndex')==2) {
+             eval('vf.f'+i+'.selectedIndex=0;')
+         }
+      }      
+   }
+   if (nw==9) {
+       vf.login[1].checked=true;
+       vf.intpwd.value='';
+       vf.krbdom.value='';
+   }
+
+}
+
+function clearpwd(vf) {
+    var i;
+    for (i=0;i<=vf.nfields.value;i++) {
+        if (eval('vf.f'+i+'.selectedIndex')==9) {
+            eval('vf.f'+i+'.selectedIndex=0;')
+        }
+    }      
+}
+
+function setkrb(vf) {
+    if (vf.krbdom.value!='') {
+       clearpwd(vf);
+       vf.login[0].checked=true;
+       vf.krbdom.value=vf.krbdom.value.toUpperCase();
+       vf.intpwd.value='';
+   }
+}
+
+function setint(vf) {
+    if (vf.intpwd.value!='') {
+       clearpwd(vf);
+       vf.login[1].checked=true;
+       vf.krbdom.value='';
+   }
+}
+
+function clickkrb(vf) {
+    vf.krbdom.value='$krbdefdom';
+    clearpwd(vf);
+    vf.intpwd.value='';
+}
+
+function clickint(vf) {
+    vf.krbdom.value='';
+}
+
+
+    
+</script>
 <table border=2><tr><th>Field</th><th>Samples</th></tr>
 ENDPICK
              my @sone; my @stwo; my @sthree; my $nfields=0;
@@ -124,7 +246,8 @@ ENDPICK
 	        }
                 my $i;
                 for ($i=0;$i<=$nfields;$i++) {
-                   $r->print('<tr><td><select name=f'.$i.'>');
+                   $r->print('<tr><td><select name=f'.$i.
+                       ' onChange="flip(this.form,'.$i.');">');
                    map {
                       my ($value,$display)=split(/\:/,$_);
                       $r->print('<option value='.$value.'>'.$display.
@@ -133,7 +256,8 @@ ENDPICK
                       'names:Last Name, First Names',
                       'fname:First Name','mname:Middle Names/Initials',
                       'lname:Last Name','gen:Generation',
-                      'id:ID/Student Number','sec:Group/Section');
+                      'id:ID/Student Number','sec:Group/Section',
+                      'ipwd:Initial Password');
                    $r->print('</select></td><td>');
                    if (defined($sone[$i])) { 
                       $r->print($sone[$i]."</br>\n"); 
@@ -147,8 +271,18 @@ ENDPICK
                    $r->print('</td></tr>');
 	       }
 	     }
-             $r->print(
-              '</table><p><input type=submit value="Submit Field Selection">');
+             $r->print(<<ENDPICK);
+</table>
+<input type=hidden name=nfields value=$nfields>
+<h3>Login Type</h3>
+<input type=radio name=login value=krb onClick="clickkrb(this.form);">
+Kerberos authenticated with domain
+<input type=text size=10 name=krbdom onChange="setkrb(this.form);"><p>
+<input type=radio name=login value=int onClick="clickint(this.form);"> 
+Internally authenticated (with initial password 
+<input type=text size=10 name=intpwd onChange="setint(this.form);">)<p>
+<input type=button onClick="verify(this.form)" value="Submit Selection">
+ENDPICK
          } elsif ($ENV{'form.enroll'}) {
          } elsif ($ENV{'form.drop'}) {
          }