--- loncom/xml/lonxml.pm	2006/03/09 00:39:28	1.400
+++ loncom/xml/lonxml.pm	2006/04/13 19:00:40	1.406
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # XML Parser Module 
 #
-# $Id: lonxml.pm,v 1.400 2006/03/09 00:39:28 albertel Exp $
+# $Id: lonxml.pm,v 1.406 2006/04/13 19:00:40 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -204,9 +204,9 @@ sub xmlend {
 	$discussion.='<tex>\keephidden{ENDOFPROBLEM}\vskip 0.5mm\noindent\makebox[\textwidth/$number_of_columns][b]{\hrulefill}\end{document}</tex>';
 	&Apache::lonxml::newparser($parser,\$discussion,'');
 	return '';
-    } else {
-	return $discussion.&Apache::loncommon::endbodytag();
     }
+
+    return $discussion.&Apache::loncommon::end_page();
 }
 
 sub tokeninputfield {
@@ -1038,6 +1038,7 @@ sub init_counter {
 
 sub store_counter {
     &Apache::lonnet::appenv(('form.counter' => $Apache::lonxml::counter));
+    $Apache::lonxml::counter_changed=0;
     return '';
 }
 
@@ -1060,6 +1061,11 @@ sub store_counter {
 	    &Apache::lonnet::appenv(('form.counter' => $state));
 	}
     }
+    sub get_problem_counter {
+	if ($Apache::lonxml::counter_changed) { &store_counter() }
+	&Apache::lonnet::transfer_profile_to_env();
+	return $env{'form.counter'};
+    }
 }
 
 sub get_all_text {
@@ -1452,17 +1458,13 @@ sub handler {
     my $result = '';
     my $filecontents=&Apache::lonnet::getfile($file);
     if ($filecontents eq -1) {
-	my $bodytag=&Apache::loncommon::bodytag('File Error');
+	my $start_page=&Apache::loncommon::start_page('File Error');
+	my $end_page=&Apache::loncommon::end_page('File Error');
 	my $fnf=&mt('File not found');
 	$result=(<<ENDNOTFOUND);
-<html>
-<head>
-<title>$fnf</title>
-</head>
-$bodytag
+$start_page
 <b>$fnf: $file</b>
-</body>
-</html>
+$end_page
 ENDNOTFOUND
         $filecontents='';
 	if ($env{'request.state'} ne 'published') {
@@ -1500,18 +1502,20 @@ ENDNOTFOUND
 	if ($env{'form.editmode'} && (!($env{'form.viewmode'}))) {
 	    my $displayfile=$request->uri;
 	    $displayfile=~s/^\/[^\/]*//;
-	    my $bodytag='<body bgcolor="#FFFFFF">';
-	    if ($env{'environment.remote'} eq 'off') {
-		$bodytag=&Apache::loncommon::bodytag();
+	    my %options = ();
+	    if ($env{'environment.remote'} ne 'off') {
+		$options{'bgcolor'}   = '#FFFFFF';
 	    }
-	    $result='<html>'.$bodytag.
+	    my $start_page = &Apache::loncommon::start_page(undef,undef,
+							    \%options);
+	    $result=$start_page.
 		&Apache::lonxml::message_location().'<h3>'.
 		$displayfile.
-		'</h3></body></html>';
+		'</h3>'.&Apache::loncommon::end_page();
 	    $result=&inserteditinfo($result,$filecontents,$filetype);
 	}
     }
-    if ($filetype eq 'html') { writeallows($request->uri); }
+    if ($filetype eq 'html') { &writeallows($request->uri); }
 	
     
     &Apache::lonxml::add_messages(\$result);
@@ -1574,9 +1578,10 @@ sub error {
 	if ( !$symb ) {
 	    #public or browsers
 	    $errormsg=&mt("An error occured while processing this resource. The author has been notified.");
-	} 
+	}
+	my $msg = join('<br />',@_);
 	#notify author
-	&Apache::lonmsg::author_res_msg($env{'request.filename'},join('<br />',@_));
+	&Apache::lonmsg::author_res_msg($env{'request.filename'},$msg);
 	#notify course
 	if ( $symb && $env{'request.course.id'} ) {
 	    my $cnum=$env{'course.'.$env{'request.course.id'}.'.num'};
@@ -1594,7 +1599,7 @@ sub error {
 		my $now=time;
 		if ($now-$lastnotified{$key}>86400) {
 		    &Apache::lonmsg::user_normal_msg($user,$domain,
-						 "Error [$declutter]",join('<br />',@_));
+						 "Error [$declutter]",$msg);
 		    &Apache::lonnet::put('nohist_xmlerrornotifications',
 					 {$key => $now},
 					 $cdom,$cnum);