--- loncom/interface/loncommon.pm	2002/09/13 20:46:09	1.67
+++ loncom/interface/loncommon.pm	2002/12/30 14:10:58	1.74
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # a pile of common routines
 #
-# $Id: loncommon.pm,v 1.67 2002/09/13 20:46:09 www Exp $
+# $Id: loncommon.pm,v 1.74 2002/12/30 14:10:58 www Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -311,7 +311,44 @@ sub browser_and_searcher_javascript {
 END
 }
 
+sub studentbrowser_javascript {
+   unless ($ENV{'request.course.id'}) { return ''; }  
+   unless (&Apache::lonnet::allowed('srm',$ENV{'request.course.id'})) {
+        return '';
+   }
+   return (<<'ENDSTDBRW');
+<script type="text/javascript" language="Javascript" >
+    var stdeditbrowser;
+    function openstdbrowser(formname,uname,udom) {
+        var url = '/adm/pickstudent?';
+        var filter;
+        eval('filter=document.'+formname+'.'+uname+'.value;');
+        if (filter != null) {
+           if (filter != '') {
+               url += 'filter='+filter+'&';
+	   }
+        }
+        url += 'form=' + formname + '&unameelement='+uname+
+                                    '&udomelement='+udom;
+        var title = 'Student Browser';
+        var options = 'scrollbars=1,resizable=1,menubar=0';
+        options += ',width=700,height=600';
+        stdeditbrowser = open(url,title,options,'1');
+        stdeditbrowser.focus();
+    }
+</script>
+ENDSTDBRW
+}
 
+sub selectstudent_link {
+    my ($form,$unameele,$udomele)=@_;
+   unless ($ENV{'request.course.id'}) { return ''; }  
+   unless (&Apache::lonnet::allowed('srm',$ENV{'request.course.id'})) {
+        return '';
+   }
+    return "<a href='".'javascript:openstdbrowser("'.$form.'","'.$unameele.
+        '","'.$udomele.'");'."'>Select</a>";
+}
 
 ###############################################################
 
@@ -493,7 +530,7 @@ sub help_open_topic {
 
     if (!$stayOnPage)
     {
-	$link = "javascript:void(open('/adm/help/${filename}.hlp', 'Help_for_$topic', 'menubar=0,toolbar=1,scrollbars=1,width=$width,height=$height'))";
+	$link = "javascript:void(open('/adm/help/${filename}.hlp', 'Help_for_$topic', 'menubar=0,toolbar=1,scrollbars=1,width=$width,height=$height,resizable=yes'))";
     }
     else
     {
@@ -981,7 +1018,7 @@ sub nickname {
     my ($uname,$udom)=@_;
     my %names=&Apache::lonnet::get('environment',
   ['nickname','firstname','middlename','lastname','generation'],$udom,$uname);
-    my $name=&Apache::lonnet::unescape($names{'nickname'});
+    my $name=$names{'nickname'};
     if ($name) {
        $name='&quot;'.$name.'&quot;'; 
     } else {
@@ -1000,7 +1037,7 @@ sub screenname {
     my ($uname,$udom)=@_;
     my %names=
  &Apache::lonnet::get('environment',['screenname'],$udom,$uname);
-    return &Apache::lonnet::unescape($names{'screenname'});
+    return $names{'screenname'};
 }
 
 # ------------------------------------------------------------- Message Wrapper
@@ -1010,18 +1047,26 @@ sub messagewrapper {
     return 
 "<a href='/adm/email?compose=individual&recname=$un&recdom=$do'>$link</a>";
 }
+# --------------------------------------------------------------- Notes Wrapper
+
+sub noteswrapper {
+    my ($link,$un,$do)=@_;
+    return 
+"<a href='/adm/email?recordftf=retrieve&recname=$un&recdom=$do'>$link</a>";
+}
 # ------------------------------------------------------------- Aboutme Wrapper
 
 sub aboutmewrapper {
-    my ($link,$un,$do)=@_;
-    return "<a href='/adm/$do/$un/aboutme'>$link</a>";
+    my ($link,$username,$domain)=@_;
+    return "<a href='/adm/$domain/$username/aboutme'>$link</a>";
 }
 
 # ------------------------------------------------------------ Syllabus Wrapper
 
 
 sub syllabuswrapper {
-    my ($link,$un,$do)=@_;
+    my ($link,$un,$do,$tf)=@_;
+    if ($tf) { $link='<font color="'.$tf.'">'.$link.'</font>'; }
     return "<a href='/public/$do/$un/syllabus'>$link</a>";
 }
 
@@ -1222,6 +1267,22 @@ sub maketime {
 }
 
 
+#########################################
+#
+# Retro-fixing of un-backward-compatible time format
+
+sub unsqltime {
+    my $timestamp=shift;
+    if ($timestamp=~/^(\d+)\-(\d+)\-(\d+)\s+(\d+)\:(\d+)\:(\d+)$/) {
+       $timestamp=&maketime(
+	   'year'=>$1,'month'=>$2,'day'=>$3,
+           'hours'=>$4,'minutes'=>$5,'seconds'=>$6);
+    }
+    return $timestamp;
+}
+
+#########################################
+
 sub findallcourses {
     my %courses=();
     my $now=time;
@@ -1283,7 +1344,8 @@ sub domainlogo {
     my $domain = &determinedomain(shift);    
      # See if there is a logo
     if (-e '/home/httpd/html/adm/lonDomLogos/'.$domain.'.gif') {
-        return '<img src="/adm/lonDomLogos/'.$domain.'.gif" />';
+        return '<img src="http://'.$ENV{'HTTP_HOST'}.':8080/adm/lonDomLogos/'.
+               $domain.'.gif" />';
     } elsif(exists($Apache::lonnet::domaindescription{$domain})) {
         return $Apache::lonnet::domaindescription{$domain};
     } else {
@@ -1387,7 +1449,7 @@ END
 $bodytag
 <table width="100%" cellspacing="0" border="0" cellpadding="0">
 <tr><td bgcolor="$font">
-<img src="$img" /></td>
+<img src="http://$ENV{'HTTP_HOST'}:8080/$img" /></td>
 <td bgcolor="$font"><font color='$sidebg'>$messages</font></td>
 </tr>
 <tr>