--- loncom/interface/loncommon.pm	2003/10/13 22:35:05	1.128
+++ loncom/interface/loncommon.pm	2003/10/24 21:09:24	1.135
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # a pile of common routines
 #
-# $Id: loncommon.pm,v 1.128 2003/10/13 22:35:05 albertel Exp $
+# $Id: loncommon.pm,v 1.135 2003/10/24 21:09:24 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -274,7 +274,7 @@ of the element the selection from the se
 sub browser_and_searcher_javascript {
     return <<END;
     var editbrowser = null;
-    function openbrowser(formname,elementname,only,omit) {
+    function openbrowser(formname,elementname,only,omit,titleelement) {
         var url = '/res/?';
         if (editbrowser == null) {
             url += 'launch=1&';
@@ -288,6 +288,9 @@ sub browser_and_searcher_javascript {
         if (omit != null) {
             url += 'omit=' + omit + '&';
         }
+        if (titleelement != null) {
+            url += 'titleelement=' + titleelement + '&';
+        }
         url += 'element=' + elementname + '';
         var title = 'Browser';
         var options = 'scrollbars=1,resizable=1,menubar=0';
@@ -296,7 +299,7 @@ sub browser_and_searcher_javascript {
         editbrowser.focus();
     }
     var editsearcher;
-    function opensearcher(formname,elementname) {
+    function opensearcher(formname,elementname,titleelement) {
         var url = '/adm/searchcat?';
         if (editsearcher == null) {
             url += 'launch=1&';
@@ -304,6 +307,9 @@ sub browser_and_searcher_javascript {
         url += 'catalogmode=interactive&';
         url += 'mode=edit&';
         url += 'form=' + formname + '&';
+        if (titleelement != null) {
+            url += 'titleelement=' + titleelement + '&';
+        }
         url += 'element=' + elementname + '';
         var title = 'Search';
         var options = 'scrollbars=1,resizable=1,menubar=0';
@@ -2663,7 +2669,7 @@ $uname, optional the username of the use
 
 sub check_if_partid_hidden {
     my ($id,$symb,$udom,$uname) = @_;
-    my $hiddenparts=&Apache::lonnet::EXT('resource.0.parameter_hiddenparts',
+    my $hiddenparts=&Apache::lonnet::EXT('resource.0.hiddenparts',
 					 $symb,$udom,$uname);
     my @hiddenlist=split(/,/,$hiddenparts);
     foreach my $checkid (@hiddenlist) {
@@ -2677,21 +2683,35 @@ sub check_if_partid_hidden {
 
 =pod
 
-=item DrawGraph
+=item DrawBarGraph
 
-Returns a link to cgi-bin/graph
 
 =cut
 
 ############################################################
 ############################################################
-sub DrawGraph {
-    my ($Title,$xlabel,$ylabel,$Max,$values1,$values2)=@_;
+sub DrawBarGraph {
+    my ($Title,$xlabel,$ylabel,$Max,$colors,@Values)=@_;
+    #
+    if (! defined($colors)) {
+        $colors = ['#33ff00', 
+                  '#0033cc', '#990000', '#aaaa66', '#663399', '#ff9933',
+                  '#66ccff', '#ff9999', '#cccc33', '#660000', '#33cc66',
+                  ]; 
+    }
     #
     my $identifier = time.'_'.int(rand(1000));
-    if (! defined($values1) || ref($values1) ne 'ARRAY') {
+    if (! @Values || ref($Values[0]) ne 'ARRAY') {
         return '';
     }
+    my $NumBars = scalar(@{$Values[0]});
+    my %ValuesHash;
+    my $NumSets=1;
+    foreach my $array (@Values) {
+        next if (! ref($array));
+        $ValuesHash{'cgi.'.$identifier.'.data.'.$NumSets++} = 
+            join(',',@$array);
+    }
     #
     $Title  = '' if (! defined($Title));
     $xlabel = '' if (! defined($xlabel));
@@ -2700,27 +2720,21 @@ sub DrawGraph {
     $xlabel = &Apache::lonnet::escape($xlabel);
     $ylabel = &Apache::lonnet::escape($ylabel);
     #
-    my $data1 = join(',', @$values1);
-    my $data2;
-    if (defined($values2)) {
-        $data2 = join(',', @$values2);
-    }
-    #
-    my $NumBars = scalar(@$values1);
     $Max = 1 if ($Max < 1);
     if ( int($Max) < $Max ) {
         $Max++;
         $Max = int($Max);
     }
     #
-    &Apache::lonnet::appenv($identifier.'.title'   => $Title,
-                            $identifier.'.xlabel'  => $xlabel,
-                            $identifier.'.ylabel'  => $ylabel,
-                            $identifier.'.Max'     => $Max,
-                            $identifier.'.NumBars' => $NumBars,
-                            $identifier.'.data1'   => $data1,
-                            $identifier.'.data2'   => $data2);
-    return '<IMG src="/cgi-bin/graph.png?'.$identifier.'" border="1" />';
+    &Apache::lonnet::appenv('cgi.'.$identifier.'.title'   => $Title,
+                            'cgi.'.$identifier.'.xlabel'  => $xlabel,
+                            'cgi.'.$identifier.'.ylabel'  => $ylabel,
+                            'cgi.'.$identifier.'.Max'     => $Max,
+                            'cgi.'.$identifier.'.NumBars' => $NumBars,
+                            'cgi.'.$identifier.'.NumSets' => $NumSets,
+                            'cgi.'.$identifier.'.Colors'  => join(',',@{$colors}),
+                            %ValuesHash);
+    return '<img src="/cgi-bin/graph.png?'.$identifier.'" border="1" />';
 }
 
 ############################################################