--- loncom/homework/chemresponse.pm 2003/07/01 21:10:43 1.11
+++ loncom/homework/chemresponse.pm 2004/06/07 21:56:24 1.34
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# chemical equation style response
#
-# $Id: chemresponse.pm,v 1.11 2003/07/01 21:10:43 albertel Exp $
+# $Id: chemresponse.pm,v 1.34 2004/06/07 21:56:24 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -35,11 +35,39 @@ BEGIN {
&Apache::lonxml::register('Apache::chemresponse',('organicresponse','organicstructure','reactionresponse'));
}
-sub seperate_jme_window {
+sub chem_standard_order {
+ my ($reaction) = @_;
+ my ($re,$pr) = split(/->|<=>/,$reaction);
+ my @reactants = split(/\s\+/,$re);
+ my @products = split(/\s\+/,$pr);
+ foreach my $substance (@reactants,@products) {
+ $substance =~ s/(\^\d*)\s+/$1_/g; # protect superscript space
+ $substance =~ s/\s*//g; # strip whitespace
+ $substance =~ s/_/ /g; # restore superscript space
+ }
+ @reactants = sort @reactants;
+ @products = sort @products;
+ my $standard = '';
+ foreach my $substance (@reactants) {
+ $standard .= $substance;
+ $standard .= ' + ';
+ }
+ $standard =~ s/ \+ $//; # get rid of trailing plus sign
+ $standard .= ' -> ';
+ foreach my $substance (@products) {
+ $standard .= $substance;
+ $standard .= ' + ';
+ }
+ $standard =~ s/ \+ $//; # get rid of trailing plus sign
+ return $standard;
+}
+
+sub separate_jme_window {
my ($smile_input,$jme_input,$molecule,$options)=@_;
my $smilesection;
if (defined($smile_input)) {
$smilesection=<'; }
my $body=<
Molecule Editor