--- loncom/interface/loncommon.pm	2004/10/12 22:11:26	1.217
+++ loncom/interface/loncommon.pm	2004/10/21 09:53:44	1.221
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # a pile of common routines
 #
-# $Id: loncommon.pm,v 1.217 2004/10/12 22:11:26 albertel Exp $
+# $Id: loncommon.pm,v 1.221 2004/10/21 09:53:44 foxr Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -254,6 +254,7 @@ sub browser_and_searcher_javascript {
     if (!defined($mode)) { $mode='edit'; }
     my $resurl=&lastresurl();
     return <<END;
+// <!-- BEGIN LON-CAPA Internal
     var editbrowser = null;
     function openbrowser(formname,elementname,only,omit,titleelement) {
         var url = '$resurl/?';
@@ -306,6 +307,7 @@ sub browser_and_searcher_javascript {
         editsearcher = open(url,title,options,'1');
         editsearcher.focus();
     }
+// END LON-CAPA Internal -->
 END
 }
 
@@ -491,7 +493,7 @@ sub linked_select_forms {
     my $first = "document.$formname.$firstselectname";
     # output the javascript to do the changing
     my $result = '';
-    $result.="<script>\n";
+    $result.="<script type=\"text/javascript\">\n";
     $result.="var select2data = new Object();\n";
     $" = '","';
     my $debug = '';
@@ -621,7 +623,7 @@ sub help_open_topic {
     my $title = &mt('Online Help');
     my $helpicon=&lonhttpdurl("/adm/help/gif/smallHelp.gif");
     $template .= <<"ENDTEMPLATE";
- <a href="$link" title="$title"><image src="$helpicon" border="0" alt="(Help: $topic)" /></a>
+ <a href="$link" title="$title"><img src="$helpicon" border="0" alt="(Help: $topic)" /></a>
 ENDTEMPLATE
     if ($text ne '') { $template.='</td></tr></table>' };
     return $template;
@@ -681,7 +683,8 @@ sub help_open_menu {
     }
     my $helpicon=&lonhttpdurl("/adm/lonIcons/helpgateway.gif");
     $template .= <<"ENDTEMPLATE";
- <script>
+ <script type="text/javascript">
+//<!-- BEGIN LON-CAPA Internal
 function helpMenu(caller) {
     if (caller == 'open') {
         newWindow =  window.open("","helpmenu","HEIGHT=$height,WIDTH=$width,resize=yes,scrollbars=yes" )
@@ -697,8 +700,9 @@ function helpMenu(caller) {
         caller.focus()
     }
 }
+// END LON-CAPA Internal -->
  </script>
- <a href="$link" title="$title"><image src="$helpicon" border="0" alt="(Help Menu)" /></a>
+ <a href="$link" title="$title"><img src="$helpicon" border="0" alt="(Help Menu)" /></a>
 ENDTEMPLATE
     if ($component_help) {
 	if (!$text) {
@@ -755,7 +759,7 @@ sub help_open_bug {
     my $title = &mt('Report a Bug');
     my $bugicon=&lonhttpdurl("/adm/lonMisc/smallBug.gif");
     $template .= <<"ENDTEMPLATE";
- <a href="$link" title="$title"><image src="$bugicon" border="0" alt="(Bug: $topic)" /></a>
+ <a href="$link" title="$title"><img src="$bugicon" border="0" alt="(Bug: $topic)" /></a>
 ENDTEMPLATE
     if ($text ne '') { $template.='</td></tr></table>' };
     return $template;
@@ -800,7 +804,7 @@ sub help_open_faq {
     my $title = &mt('View the FAQ');
     my $faqicon=&lonhttpdurl("/adm/lonMisc/smallFAQ.gif");
     $template .= <<"ENDTEMPLATE";
- <a href="$link" title="$title"><image src="$faqicon" border="0" alt="(FAQ: $topic)" /></a>
+ <a href="$link" title="$title"><img src="$faqicon" border="0" alt="(FAQ: $topic)" /></a>
 ENDTEMPLATE
     if ($text ne '') { $template.='</td></tr></table>' };
     return $template;
@@ -3289,7 +3293,11 @@ sub DrawBarGraph {
     }
     #
     my ($height,$width,$xskip,$bar_width) = (200,120,1,15);
-    if ($NumBars < 10) {
+    if ($NumBars < 5) {
+        $width = 120+$NumBars*25;
+        $xskip = 1;
+        $bar_width = 25;
+    } elsif ($NumBars < 10) {
         $width = 120+$NumBars*15;
         $xskip = 1;
         $bar_width = 15;
@@ -3572,8 +3580,8 @@ Inputs:
 sub chartlink {
     my ($linktext, $sname, $sdomain) = @_;
     my $link = '<a href="/adm/statistics?reportSelected=student_assessment'.
-        '&SelectedStudent='.&Apache::lonnet::escape($sname.':'.$sdomain).
-        '&chartoutputmode='.HTML::Entities::encode('html, with all links').
+        '&amp;SelectedStudent='.&Apache::lonnet::escape($sname.':'.$sdomain).
+        '&amp;chartoutputmode='.HTML::Entities::encode('html, with all links').
        '">'.$linktext.'</a>';
 }
 
@@ -3724,6 +3732,31 @@ sub connection_aborted {
     return $c->aborted();
 }
 
+#
+#    Escapes strings that may have embedded 's that will be put into
+#    javascript strings as 'strings'.
+#    The assumptions are:
+#       There has been no effort to escape ' with \'
+#       Any \'s in the string are intended to be there as part of the URL
+#        and must also be escaped.
+# Parameters:
+#     input     - The string to escape.
+# Returns:
+#     The escaped string (' replaced by \' and \ replaced by \\).
+#
+sub javascript_escape {
+    my ($input) = @_;
+
+    #  I imagine a regexp wizard could combine the two expressions below.
+    #  If you do you might want to comment the result.
+
+    $input =~ s/\\/\\\\/g;	# Escape the /'s..(must be first)>
+    $input =~ s/\'/\\\'/g;	# Esacpe the 's....
+
+    return $input;
+}
+
+
 =pod
 
 =back