--- loncom/interface/loncommon.pm	2009/04/25 20:22:07	1.796
+++ loncom/interface/loncommon.pm	2009/05/27 18:56:22	1.829
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # a pile of common routines
 #
-# $Id: loncommon.pm,v 1.796 2009/04/25 20:22:07 www Exp $
+# $Id: loncommon.pm,v 1.829 2009/05/27 18:56:22 kalberla Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -407,6 +407,7 @@ sub studentbrowser_javascript {
           ) { return ''; }  
    return (<<'ENDSTDBRW');
 <script type="text/javascript" language="Javascript">
+// <![CDATA[
     var stdeditbrowser;
     function openstdbrowser(formname,uname,udom,roleflag,ignorefilter,courseadvonly) {
         var url = '/adm/pickstudent?';
@@ -429,6 +430,7 @@ sub studentbrowser_javascript {
         stdeditbrowser = open(url,title,options,'1');
         stdeditbrowser.focus();
     }
+// ]]>
 </script>
 ENDSTDBRW
 }
@@ -461,6 +463,7 @@ sub selectstudent_link {
 sub authorbrowser_javascript {
     return <<"ENDAUTHORBRW";
 <script type="text/javascript" language="JavaScript">
+// <![CDATA[
 var stdeditbrowser;
 
 function openauthorbrowser(formname,udom) {
@@ -473,6 +476,7 @@ function openauthorbrowser(formname,udom
     stdeditbrowser.focus();
 }
 
+// ]]>
 </script>
 ENDAUTHORBRW
 }
@@ -482,6 +486,7 @@ sub coursebrowser_javascript {
     my $crs_or_grp_alert = &mt('Please select the type of LON-CAPA entity - Course or Group - for which you wish to add/modify a user role');
    my $output = '
 <script type="text/javascript" language="JavaScript">
+// <![CDATA[
     var stdeditbrowser;'."\n";
    $output .= <<"ENDSTDBRW";
     function opencrsbrowser(formname,uname,udom,desc,extra_element,multflag,crstype) {
@@ -517,6 +522,10 @@ sub coursebrowser_javascript {
             else {
                 if (formname == 'portform') {
                     url += '&setroles='+extra_element;
+                } else {
+                    if (formname == 'rules') {
+                        url += '&fixeddom='+extra_element; 
+                    }
                 }
             }     
         }
@@ -564,6 +573,7 @@ ENDSTDBRW
         $output .= &setsec_javascript($sec_element,$formname);
     }
     $output .= '
+// ]]>
 </script>';
     return $output;
 }
@@ -825,6 +835,7 @@ sub linked_select_forms {
     # output the javascript to do the changing
     my $result = '';
     $result.='<script type="text/javascript" language="JavaScript">'."\n";
+    $result.="// <![CDATA[\n";
     $result.="var select2data = new Object();\n";
     $" = '","';
     my $debug = '';
@@ -870,6 +881,7 @@ function select1_changed() {
         }
     }
 }
+// ]]>
 </script>
 END
     # output the initial values for the selection lists
@@ -931,9 +943,6 @@ sub help_open_topic {
     my ($topic, $text, $stayOnPage, $width, $height) = @_;
     $text = "" if (not defined $text);
     $stayOnPage = 0 if (not defined $stayOnPage);
-    if ($env{'browser.interface'} eq 'textual') {
-	$stayOnPage=1;
-    }
     $width = 350 if (not defined $width);
     $height = 400 if (not defined $height);
     my $filename = $topic;
@@ -1026,7 +1035,9 @@ sub update_help_link {
     my $banner_link = "/adm/helpmenu?page=banner&amp;topic=$topic&amp;component_help=$component_help&amp;faq=$faq&amp;bug=$bug&amp;origurl=$origurl&amp;stamp=$timestamp&amp;stayonpage=$stayOnPage";
     my $output .= <<"ENDOUTPUT";
 <script type="text/javascript">
+// <![CDATA[
 banner_link = '$banner_link';
+// ]]>
 </script>
 ENDOUTPUT
     return $output;
@@ -1039,8 +1050,7 @@ sub help_open_menu {
     $stayOnPage = 0 if (not defined $stayOnPage);
     # only use pop-up help (stayOnPage == 0)
     # if environment.remote is on (using remote control UI)
-    if ($env{'browser.interface'} eq 'textual' ||
-    	$env{'environment.remote'} eq 'off' ) {
+    if ($env{'environment.remote'} eq 'off' ) {
         $stayOnPage=1;
     }
     my $output;
@@ -1064,8 +1074,7 @@ sub top_nav_help {
     my ($text) = @_;
     $text = &mt($text);
     my $stay_on_page = 
-	($env{'browser.interface'}  eq 'textual' ||
-	 $env{'environment.remote'} eq 'off' );
+	($env{'environment.remote'} eq 'off' );
     my $link = ($stay_on_page) ? "javascript:helpMenu('display')"
 	                     : "javascript:helpMenu('open')";
     my $banner_link = &update_help_link(undef,undef,undef,undef,$stay_on_page);
@@ -1082,8 +1091,7 @@ sub help_menu_js {
     my ($text) = @_;
 
     my $stayOnPage = 
-	($env{'browser.interface'}  eq 'textual' ||
-	 $env{'environment.remote'} eq 'off' );
+	($env{'environment.remote'} eq 'off' );
 
     my $width = 620;
     my $height = 600;
@@ -1142,8 +1150,7 @@ sub help_open_bug {
     unless ($Apache::lonnet::perlvar{'BugzillaHost'}) { return ''; }
     $text = "" if (not defined $text);
     $stayOnPage = 0 if (not defined $stayOnPage);
-    if ($env{'browser.interface'} eq 'textual' ||
-	$env{'environment.remote'} eq 'off' ) {
+    if ($env{'environment.remote'} eq 'off' ) {
 	$stayOnPage=1;
     }
     $width = 600 if (not defined $width);
@@ -1187,8 +1194,7 @@ sub help_open_faq {
     unless ($Apache::lonnet::perlvar{'FAQHost'}) { return ''; }
     $text = "" if (not defined $text);
     $stayOnPage = 0 if (not defined $stayOnPage);
-    if ($env{'browser.interface'} eq 'textual' ||
-	$env{'environment.remote'} eq 'off' ) {
+    if ($env{'environment.remote'} eq 'off' ) {
 	$stayOnPage=1;
     }
     $width = 350 if (not defined $width);
@@ -1398,6 +1404,7 @@ sub resize_textarea_js {
     my $geometry = &viewport_geometry_js();
     return <<"RESIZE";
     <script type="text/javascript">
+// <![CDATA[
 $geometry
 
 function getX(element) {
@@ -1436,6 +1443,7 @@ function resize_textarea(textarea_id,bot
     }
     textarea.style.height=new_height+'px';
 }
+// ]]>
 </script>
 RESIZE
 
@@ -1859,7 +1867,7 @@ sub home_server_form_item {
     if ($numlib > 1) {
         $result .= '<select name="'.$name.'" />'."\n";
         if ($default) {
-            $result .= '<option value="default" selected>'.&mt('default').
+            $result .= '<option value="default" selected="selected">'.&mt('default').
                        '</option>'."\n";
         }
         foreach my $hostid (sort(keys(%servers))) {
@@ -2303,7 +2311,7 @@ sub authform_internal{
     $result = &mt
         ('[_1] Internally authenticated (with initial password [_2])',
          '<label>'.$authtype,'</label>'.$autharg);
-    $result.="<label><input type=\"checkbox\" name=\"visible\" onClick='if (this.checked) { this.form.intarg.type=\"text\" } else { this.form.intarg.type=\"password\" }' />".&mt('Visible input').'</label>';
+    $result.="<label><input type=\"checkbox\" name=\"visible\" onclick='if (this.checked) { this.form.intarg.type=\"text\" } else { this.form.intarg.type=\"password\" }' />".&mt('Visible input').'</label>';
     return $result;
 }
 
@@ -2818,6 +2826,26 @@ sub screenname {
 }
 
 
+# ------------------------------------------------------------- Confirm Wrapper
+=pod
+
+=item confirmwrapper
+
+Wrap messages about completion of operation in box
+
+=cut
+
+sub confirmwrapper {
+    my ($message)=@_;
+    if ($message) {
+        return "\n".'<div class="LC_confirm_box">'."\n"
+               .$message."\n"
+               .'</div>'."\n";
+    } else {
+        return $message;
+    }
+}
+
 # ------------------------------------------------------------- Message Wrapper
 
 sub messagewrapper {
@@ -2828,6 +2856,7 @@ sub messagewrapper {
 	'&amp;subject='.&escape($subject).'&amp;text='.&escape($text).'" '.
         'title="'.&mt('Send message').'">'.$link.'</a>';
 }
+
 # --------------------------------------------------------------- Notes Wrapper
 
 sub noteswrapper {
@@ -2835,6 +2864,7 @@ sub noteswrapper {
     return 
 "<a href='/adm/email?recordftf=retrieve&recname=$un&recdom=$do'>$link</a>";
 }
+
 # ------------------------------------------------------------- Aboutme Wrapper
 
 sub aboutmewrapper {
@@ -2848,12 +2878,13 @@ sub aboutmewrapper {
 
 # ------------------------------------------------------------ Syllabus Wrapper
 
-
 sub syllabuswrapper {
     my ($linktext,$coursedir,$domain)=@_;
     return qq{<a href="/public/$domain/$coursedir/syllabus">$linktext</a>};
 }
 
+# -----------------------------------------------------------------------------
+
 sub track_student_link {
     my ($linktext,$sname,$sdom,$target,$start) = @_;
     my $link ="/adm/trackstudent?";
@@ -4125,41 +4156,92 @@ Returns: value of designparamter $which
 ##############################################
 sub designparm {
     my ($which,$domain)=@_;
-    if ($env{'browser.blackwhite'} eq 'on') {
-	if ($which=~/\.(font|alink|vlink|link|textcol)$/) {
-	    return '#000000';
-	}
-	if ($which=~/\.(pgbg|sidebg|bgcol)$/) {
-	    return '#FFFFFF';
-	}
-	if ($which=~/\.tabbg$/) {
-	    return '#CCCCCC';
-	}
-    }
     if (exists($env{'environment.color.'.$which})) {
-	return $env{'environment.color.'.$which};
+        return $env{'environment.color.'.$which};
     }
     $domain=&determinedomain($domain);
     my %domdesign = &get_domainconf($domain);
     my $output;
     if ($domdesign{$domain.'.'.$which} ne '') {
-	$output = $domdesign{$domain.'.'.$which};
+        $output = $domdesign{$domain.'.'.$which};
     } else {
         $output = $defaultdesign{$which};
     }
     if (($which =~ /^(student|coordinator|author|admin)\.img$/) ||
         ($which =~ /login\.(img|logo|domlogo|login)/)) {
         if ($output =~ m{^/(adm|res)/}) {
-	    if ($output =~ m{^/res/}) {
-		my $local_name = &Apache::lonnet::filelocation('',$output);
-		&Apache::lonnet::repcopy($local_name);
-	    }
+            if ($output =~ m{^/res/}) {
+                my $local_name = &Apache::lonnet::filelocation('',$output);
+                &Apache::lonnet::repcopy($local_name);
+            }
             $output = &lonhttpdurl($output);
         }
     }
     return $output;
 }
 
+##############################################
+=pod
+
+=item * &head_subbox()
+
+Inputs: $content (contains HTML code with page functions, etc.)
+
+Returns: HTML div with $content
+         To be included in page header
+
+=cut
+
+sub head_subbox {
+    my ($content)=@_;
+    my $output =
+        '<div id="LC_head_subbox2">' #FIXME: solve conflicts with lonhtmlcommon:breadcrumbs LC_head_subbox
+       .$content
+       .'</div>'
+}
+
+##############################################
+=pod
+
+=item * &CSTR_pageheader()
+
+Inputs: ./.
+
+Returns: HTML div with CSTR path and recent box
+         To be included on Construction Space pages
+
+=cut
+
+sub CSTR_pageheader {
+    # this is for resources; directories have customtitle, and crumbs
+            # and select recent are created in lonpubdir.pm  
+    my ($uname,$thisdisfn)=
+        ($env{'request.filename'} =~ m|^/home/([^/]+)/public_html/(.*)|);
+    my $formaction='/priv/'.$uname.'/'.$thisdisfn;
+    $formaction=~s/\/+/\//g;
+
+    my $parentpath = '';
+    my $lastitem = '';
+    if ($thisdisfn =~ m-(.+/)([^/]*)$-) {
+        $parentpath = $1;
+        $lastitem = $2;
+    } else {
+        $lastitem = $thisdisfn;
+    }
+    return
+         '<div>'
+        .&Apache::loncommon::help_open_menu('','',3,'Authoring') #FIXME: Broken? Where is it?
+        .'<b>'.&mt('Construction Space:').'</b> '
+        .'<form name="dirs" method="post" action="'.$formaction
+        .'" target="_top"><tt><b>' #FIXME lonpubdir: target="_parent"
+        .&Apache::lonhtmlcommon::crumbs($uname.'/'.$parentpath,'_top','/priv','','+1',1)."$lastitem</b></tt><br />"
+        #FIXME lonpubdir: &Apache::lonhtmlcommon::crumbs($uname.$thisdisfn.'/','_top','/priv','','+1',1)."</b></tt><br />"
+        .&Apache::lonhtmlcommon::select_recent('construct','recent','this.form.action=this.form.recent.value;this.form.submit()')
+        .'</form>'
+        .&Apache::lonmenu::constspaceform()
+        .'</div>';
+}
+
 ###############################################
 ###############################################
 
@@ -4196,13 +4278,11 @@ Inputs:
                       in the title box that appears, this text
                       is not auto translated like the $title is
 
-=item * $notopbar, if true, keep the 'what is this' info but remove the
-                   navigational links
+=item * $no_nav_bar, if true, keep the 'what is this' info but remove the
+                     navigational links
 
 =item * $bgcolor, used to override the bgcolor on a webpage to a specific value
 
-=item * $notitle, if true keep the nav controls, but remove the title bar
-
 =item * $no_inline_link, if true and in remote mode, don't show the 
          'Switch To Inline Menu' link
 
@@ -4223,7 +4303,7 @@ other decorations will be returned.
 
 sub bodytag {
     my ($title,$function,$addentries,$bodyonly,$domain,$forcereg,$customtitle,
-	$notopbar,$bgcolor,$notitle,$no_inline_link,$args)=@_;
+        $no_nav_bar,$bgcolor,$no_inline_link,$args)=@_;
 
     if (!$args->{'no_auto_mt_title'}) { $title = &mt($title); }
 
@@ -4232,7 +4312,7 @@ sub bodytag {
     my $font =   &designparm($function.'.font',$domain);
     my $pgbg   = $bgcolor || &designparm($function.'.pgbg',$domain);
 
-    my %design = ( 'style'   => 'margin-top: 0px',
+    my %design = ( 'style'   => 'margin-top: 0',
 		   'bgcolor' => $pgbg,
 		   'text'    => $font,
                    'alink'   => &designparm($function.'.alink',$domain),
@@ -4268,15 +4348,7 @@ sub bodytag {
 
     if ($bodyonly) {
         return $bodytag;
-    } elsif ($env{'browser.interface'} eq 'textual') {
-# Accessibility
-          
-	$bodytag.=&Apache::lonmenu::menubuttons($forcereg,$forcereg);
-	if (!$notitle) {
-	    $bodytag.='<h1>LON-CAPA: '.$title.'</h1>';
-	}
-	return $bodytag;
-    }
+    } 
 
     my $name = &plainname($env{'user.name'},$env{'user.domain'});
     if ($env{'user.name'} eq 'public' && $env{'user.domain'} eq 'public') {
@@ -4322,43 +4394,19 @@ ENDROLE
 	    $forcereg=1;
 	}
 
-	if (!$customtitle && $env{'request.state'} eq 'construct') {
-	    # this is for resources; directories have customtitle, and crumbs
-            # and select recent are created in lonpubdir.pm  
-	    my ($uname,$thisdisfn)=
-		($env{'request.filename'} =~ m|^/home/([^/]+)/public_html/(.*)|);
-	    my $formaction='/priv/'.$uname.'/'.$thisdisfn;
-	    $formaction=~s/\/+/\//g;
-
-	    my $parentpath = '';
-	    my $lastitem = '';
-	    if ($thisdisfn =~ m-(.+/)([^/]*)$-) {
-		$parentpath = $1;
-		$lastitem = $2;
-	    } else {
-		$lastitem = $thisdisfn;
-	    }
-	    $titleinfo = 
-		&Apache::loncommon::help_open_menu('','',3,'Authoring')
-		.'<b>'.&mt('Construction Space').'</b>:&nbsp;'
-		.'<form name="dirs" method="post" action="'.$formaction
-		.'" target="_top"><tt><b>'
-		.&Apache::lonhtmlcommon::crumbs($uname.'/'.$parentpath,'_top','/priv','','+1',1)."<span class=\"LC_fontsize_big\">$lastitem</span></b></tt><br />"
-		.&Apache::lonhtmlcommon::select_recent('construct','recent','this.form.action=this.form.recent.value;this.form.submit()')
-		.'</form>'
-		.&Apache::lonmenu::constspaceform();
-        }
-
-        my $titletable;
-	if (!$notitle) {
-	    $titletable =
-		'<table id="LC_title_bar">'.
-                         "<tr><td> $titleinfo $dc_info</td>".$roleinfo.
-			 '</tr></table>';
-	}
-	if ($notopbar) {
+    if (!$customtitle && $env{'request.state'} eq 'construct') {
+        $titleinfo = &CSTR_pageheader(); #FIXME: Will be removed once all scripts have their own calls
+    }
+
+        my $titletable = '<table id="LC_title_bar">'
+                        ."<tr><td> $titleinfo $dc_info</td>".$roleinfo
+                        .'</tr></table>';
+
+	if ($no_nav_bar) {
 	    $bodytag .= $titletable;
 	} else {
+        $bodytag .= qq|<div id="LC_nav_bar">$name ($role)<br />
+            <em>$realm</em> $dc_info</div>|;
 	    if ($env{'request.state'} eq 'construct') {
                 $bodytag .= &Apache::lonmenu::menubuttons($forcereg,$forcereg,
 							  $titletable);
@@ -4384,9 +4432,6 @@ ENDROLE
     my $menu= ($no_inline_link?''
 	       :'<br /><a href="/adm/remote?action=collapse">'.&mt('Switch to Inline Menu Mode').'</a>');
     #
-    if ($notitle) {
-	return $bodytag;
-    }
     return(<<ENDBODY);
 $bodytag
 <table id="LC_title_bar" class="LC_with_remote">
@@ -4439,15 +4484,6 @@ sub make_attr_string {
 	$attr_ref->{'style'}=$style.'; font-size: x-large;';
     }
 
-    if ($env{'browser.blackwhite'} eq 'on') {
-	delete($attr_ref->{'font'});
-	delete($attr_ref->{'link'});
-	delete($attr_ref->{'alink'});
-	delete($attr_ref->{'vlink'});
-	delete($attr_ref->{'bgcolor'});
-	delete($attr_ref->{'background'});
-    }
-
     my $attr_string;
     foreach my $attr (keys(%$attr_ref)) {
 	$attr_string .= " $attr=\"".$attr_ref->{$attr}.'" ';
@@ -4508,6 +4544,7 @@ sub standard_css {
     my $img    = &designparm($function.'.img',   $domain);
     my $tabbg  = &designparm($function.'.tabbg', $domain);
     my $font   = &designparm($function.'.font',  $domain);
+    my $fontmenu = &designparm($function.'.fontmenu', $domain);
 #second colour for later usage
     my $sidebg = &designparm($function.'.sidebg',$domain);
     my $pgbg_or_bgcolor =
@@ -4542,8 +4579,8 @@ sub standard_css {
     my $lg_border_color	     = '#C8C8C8';
 
     my $border = ($env{'browser.type'} eq 'explorer' ||
-		  $env{'browser.type'} eq 'safari'     ) ? '0px 2px 0px 2px'
-	                                                 : '0px 3px 0px 4px';
+		  $env{'browser.type'} eq 'safari'     ) ? '0 2px 0 2px'
+	                                                 : '0 3px 0 4px';
 
 
     return <<END;
@@ -4563,20 +4600,6 @@ a:focus {
   background: yellow 
 }
 
-table.thinborder,
-table.thinborder tr th {
-  border-style: solid;
-  border-width: 1px;
-  border-color: $lg_border_color;
-  background: $tabbg;
-}
-
-table.thinborder tr td {
-  border-style: solid;
-  border-width: 1px;
-  border-color: $lg_border_color;
-}
-
 form, .inline { 
    display: inline; 
 }
@@ -4622,18 +4645,21 @@ form, .inline {
   color: green;
 }
 
-.LC_unknown {
-  color: yellow;
+div.LC_confirm_box {
+  background-color: #FAFAFA;
+  border: 1px solid $lg_border_color;
+  margin-right: 0;
+  padding: 5px;
 }
 
-.LC_icon {
-  border: none;
+div.LC_confirm_box .LC_error img,
+div.LC_confirm_box .LC_success img {
   vertical-align: middle;
 }
 
-.LC_indexer_icon {
-  border: 0px;
-  height: 22px;
+.LC_icon {
+  border: none;
+  vertical-align: middle;
 }
 
 .LC_docs_spacer {
@@ -4654,8 +4680,7 @@ form, .inline {
 
 .LC_disc_action_links_bar {
    background: $tabbg;
-   font-family: $sans;
-   border: 0px;
+   border: none;
    margin: 4px;
 }
 
@@ -4691,7 +4716,16 @@ table#LC_nav_location {
   background: $pgbg;
   border: 2px;
   border-collapse: separate;
-  padding: 0px;
+  padding: 0;
+}
+
+table#LC_title_bar a {
+  color: $fontmenu;
+}
+    
+table#LC_title_bar {
+  clear: both;
+  /*display: none;*/
 }
 
 table#LC_title_bar,
@@ -4702,18 +4736,18 @@ table#LC_title_bar.LC_with_remote {
   border-style: solid;
   border-width: $border;
   background: $pgbg;
-  font-family: $sans;
+  color: $fontmenu;
   border-collapse: collapse;
-  padding: 0px;
+  padding: 0;
+  margin: 0;
 }
 
 table.LC_docs_path {
   width: 100%;
   border: 0;
   background: $pgbg;
-  font-family: $sans;
   border-collapse: collapse;
-  padding: 0px;
+  padding: 0;
 }
 
 table#LC_title_bar td {
@@ -4722,35 +4756,31 @@ table#LC_title_bar td {
 
 table#LC_title_bar .LC_title_bar_who {
   background: $tabbg;
-  color: $font;
-  font: small $sans;
+  color: $fontmenu;
+  font: small;
   text-align: right;
-  margin: 0px;
-}
-
-table#LC_title_bar .LC_title_bar_name {
-  margin: 0px;
+  margin: 0;
 }
 
-table#LC_title_bar .LC_title_bar_role {
-  margin: 0px;
+table#LC_title_bar div.LC_title_bar_name {
+  margin: 0;
 }
 
-table#LC_title_bar .LC_title_bar_realm {
-  margin: 0px;
+table#LC_title_bar div.LC_title_bar_role {
+  margin: 0;
 }
 
-span.LC_metadata {
-  font-family: $sans;
+table#LC_title_bar div.LC_title_bar_realm {
+  margin: 0;
 }
 
 table#LC_menubuttons img{
-  border: 0px;
+  border: none;
 }
 
 table#LC_top_nav td {
   background: $tabbg;
-  border: 0px;
+  border: none;
   font-size: small;
   vertical-align:top;
   padding:2px 5px 2px 5px;
@@ -4759,7 +4789,6 @@ table#LC_top_nav td {
 table#LC_top_nav td a,
 div#LC_top_nav a {
   color: $font;
-  font-family: $sans;
 }
 
 table#LC_top_nav td.LC_top_nav_logo {
@@ -4770,7 +4799,7 @@ table#LC_top_nav td.LC_top_nav_logo {
 }
 
 table#LC_top_nav td.LC_top_nav_logo img {
-  border: 0px;
+  border: none;
   vertical-align: bottom;
 }
 
@@ -4787,16 +4816,14 @@ table#LC_top_nav td.LC_top_nav_login {
 table.LC_breadcrumbs td,
 table.LC_docs_path td  {
   background: $tabbg;
-  color: $font;
-  font-family: $sans;
+  color: $fontmenu;
   font-size: smaller;
 }
 
 table.LC_breadcrumbs td.LC_breadcrumbs_component,
 table.LC_docs_path td.LC_docs_path_component {
   background: $tabbg;
-  color: $font;
-  font-family: $sans;
+  color: $fontmenu;
   font-size: larger;
   text-align: right;
 }
@@ -4813,6 +4840,24 @@ table#LC_mainmenu td.LC_mainmenu_column
  font-size: 70%;
 }
 
+#LC_head_subbox {
+ clear:both;
+ background: $sidebg;
+ border-bottom: 1px solid $lg_border_color;
+ height: 32px;
+ line-height: 32px; 
+ margin: 0;
+ padding: 0;
+}
+
+#LC_head_subbox2 { /* FIXME: replace by LC_head_subbox once lonhtmlcommon::breadcrumbs has been fixed */
+ clear:both;
+ background: #F8F8F8; /* $sidebg; */
+ border-bottom: 1px solid $lg_border_color;
+ margin: 0 0 10px 0;
+ padding: 5px;
+}
+
 .LC_fontsize_medium {
  font-size: 85%;
 }
@@ -4823,7 +4868,6 @@ table#LC_mainmenu td.LC_mainmenu_column
 
 .LC_menubuttons_inline_text {
   color: $font;
-  font-family: $sans;
   font-size: 90%;
   padding-left:3px;
 }
@@ -4835,7 +4879,6 @@ table#LC_mainmenu td.LC_mainmenu_column
 .LC_menubuttons_category {
   color: $font;
   background: $pgbg;
-  font-family: $sans;
   font-size: larger;
   font-weight: bold;
 }
@@ -4845,26 +4888,14 @@ td.LC_menubuttons_text {
 }
 
 .LC_current_location {
-  font-family: $sans;
   background: $tabbg;
 }
 
 .LC_new_mail {
-  font-family: $sans;
   background: $tabbg;
   font-weight: bold;
 }
 
-.LC_dropadd_labeltext {
-  font-family: $sans;
-  text-align: right;
-}
-
-.LC_preferences_labeltext {
-  font-family: $sans;
-  text-align: right;
-}
-
 .LC_roleslog_note {
   font-size: small;
 }
@@ -4873,12 +4904,6 @@ td.LC_menubuttons_text {
     font-weight: bold;
 }
 
-table.LC_aboutme_port {
-  border: 0px;
-  border-collapse: collapse;
-  border-spacing: 0px;
-}
-
 table.LC_data_table,
 table.LC_mail_list {
   border: 1px solid #000000;
@@ -4894,14 +4919,14 @@ table.LC_mail_list {
 table.LC_nested_outer {
   border: 1px solid #000000;
   border-collapse: collapse;
-  border-spacing: 0px;
+  border-spacing: 0;
   width: 100%;
 }
 
 table.LC_nested {
-  border: 0px;
+  border: none;
   border-collapse: collapse;
-  border-spacing: 0px;
+  border-spacing: 0;
   width: 100%;
 }
 
@@ -4911,6 +4936,7 @@ table.LC_mail_list tr th,
 table.LC_prior_tries tr th {
   font-weight: bold;
   background-color: $data_table_head;
+  color:$fontmenu;
   font-size:90%;
 }
 
@@ -4921,15 +4947,13 @@ table.LC_data_table tr.LC_info_row > td
 }
 
 table.LC_data_table tr.LC_odd_row > td,
-table.LC_pick_box tr > td.LC_odd_row,
-table.LC_aboutme_port tr td {
+table.LC_pick_box tr > td.LC_odd_row {
   background-color: $data_table_light;
   padding: 2px;
 }
 
 table.LC_data_table tr.LC_even_row > td,
-table.LC_pick_box tr > td.LC_even_row,
-table.LC_aboutme_port tr.LC_even_row td {
+table.LC_pick_box tr > td.LC_even_row {
   background-color: $data_table_dark;
   padding: 2px;
 }
@@ -4958,6 +4982,7 @@ table.LC_nested tr.LC_empty_row td {
 
 table.LC_nested_outer tr th {
   font-weight: bold;
+  color:$fontmenu;
   background-color: $data_table_head;
   font-size: small;
   border-bottom: 1px solid #000000;
@@ -5126,7 +5151,6 @@ span.LC_current_location {
 
 span.LC_parm_menu_item {
   font-size: larger;
-  font-family: $sans;
 }
 
 span.LC_parm_scope_all {
@@ -5174,9 +5198,9 @@ table.LC_parm_overview_restrictions th {
 }
 
 table#LC_helpmenu {
-  border: 0px;
+  border: none;
   height: 55px;
-  border-spacing: 0px;
+  border-spacing: 0;
 }
 
 table#LC_helpmenu fieldset legend {
@@ -5188,7 +5212,7 @@ table#LC_helpmenu_links {
   width: 100%;
   border: 1px solid black;
   background: $pgbg;
-  padding: 0px;
+  padding: 0;
   border-spacing: 1px;
 }
 
@@ -5261,7 +5285,7 @@ table.LC_pick_box td.LC_pick_box_select
 }
 
 table.LC_pick_box td.LC_pick_box_separator {
-  padding: 0px;
+  padding: 0;
   height: 1px;
   background: black;
 }
@@ -5311,7 +5335,7 @@ table.LC_helpform_receipt td.LC_oddrow_v
 }
 
 table.LC_helpform_receipt td.LC_pick_box_separator {
-  padding: 0px;
+  padding: 0;
   height: 1px;
   background: black;
 }
@@ -5351,7 +5375,7 @@ table.LC_group_priv_box td.LC_groups_fun
 
 table.LC_group_priv td {
   text-align: left;
-  padding: 0px;
+  padding: 0;
 }
 
 table.LC_notify_front_page {
@@ -5369,12 +5393,12 @@ table.LC_notify_front_page td {
 }
 
 .LC_topic_bar {
-  font-family: $sans;
   font-weight: bold;
   width: 100%;
   background: $tabbg;
   vertical-align: middle;
   margin: 2ex 0ex 2ex 0ex;
+  padding: 3px;
 }
 
 .LC_topic_bar span {
@@ -5395,25 +5419,25 @@ table.LC_status_selector td {
   padding: 4px;
 }
 
-table.LC_descriptive_input td.LC_description {
-  vertical-align: top;
-  text-align: right;
-  font-weight: bold;
-}
-
 div.LC_feedback_link {
   clear: both;
-  background: white;
+  background: $sidebg;
   width: 100%;
+  padding-bottom: 10px;
+  border: 1px $tabbg solid;
+}
+
+div.LC_feedback_link a{
+  text-decoration: none;
 }
 
 span.LC_feedback_link {
-  background: $feedback_link_bg;
+  //background: $feedback_link_bg;
   font-size: larger;
 }
 
 span.LC_message_link {
-  background: $feedback_link_bg;
+  //background: $feedback_link_bg;
   font-size: larger;
   position: absolute;
   right: 1em;
@@ -5431,14 +5455,12 @@ table.LC_prior_tries td {
 
 .LC_answer_correct {
   background: lightgreen;
-  font-family: $sans;
   color: darkgreen;
   padding: 6px;
 }
 
 .LC_answer_charged_try {
-  background: lightred;
-  font-family: $sans;
+  background: #FFAAAA;
   color: darkred;
   padding: 6px;
 }
@@ -5447,28 +5469,24 @@ table.LC_prior_tries td {
 .LC_answer_no_grade,
 .LC_answer_late {
   background: lightyellow;
-  font-family: $sans;
   color: black;
   padding: 6px;
 }
 
 .LC_answer_previous {
   background: lightblue;
-  font-family: $sans;
   color: darkblue;
   padding: 6px;
 }
 
 .LC_answer_no_message {
   background: #FFFFFF;
-  font-family: $sans;
   color: black;
   padding: 6px;
 }
 
 .LC_answer_unknown {
   background: orange;
-  font-family: $sans;
   color: black;
   padding: 6px;
 }
@@ -5519,7 +5537,7 @@ span.LC_cusr_subheading {
 
 table.LC_docs_documents {
   background: #BBBBBB;
-  border-width: 0px;
+  border-width: 0;
   border-collapse: collapse;
 }
 
@@ -5529,7 +5547,7 @@ table.LC_docs_documents td.LC_docs_docum
 }
 
 .LC_docs_entry_move {
-  border: 0px;
+  border: none;
   border-collapse: collapse;
 }
 
@@ -5591,7 +5609,7 @@ table.LC_sty_end {
 }
 
 table.LC_double_column {
-  border-width: 0px;
+  border-width: 0;
   border-collapse: collapse;
   width: 100%;
   padding: 2px;
@@ -5728,7 +5746,7 @@ table.LC_edit_problem_header_title {
   border-width: $border;
   background: $tabbg;
   border-collapse: collapse;
-  padding: 0px
+  padding: 0;
 }
 
 div.LC_edit_problem_discards {
@@ -5746,12 +5764,12 @@ hr.LC_edit_problem_divide {
   color: $tabbg;
   background-color: $tabbg;
   height: 3px;
-  border: 0px;
+  border: none;
 }
 
 img.stift{
-  border-width:0;
-  vertical-align:middle;
+  border-width: 0;
+  vertical-align: middle;
 }
 
 table#LC_mainmenu{
@@ -5767,7 +5785,6 @@ table#LC_mainmenu td.LC_mainmenu_col_fie
 .LC_mainmenu_fieldset_category {
   color: $font;
   background: $pgbg;
-  font-family: $sans;
   font-size: small;
   font-weight: bold;
 }
@@ -5795,25 +5812,26 @@ ul.LC_TabContent   li:hover a {
 }
 
 h1 {
-	padding:5px 10px 5px 20px;
+	padding: 0;
 	line-height:130%;
 }
 
 h2,h3,h4,h5,h6 {
-	margin:5px 0px 5px 0px;
-	padding:0px;
+	margin: 5px 0 5px 0;
+	padding: 0;
 	line-height:130%;
 }
 
 .LC_hcell {
         padding:3px 15px 3px 15px;
-        margin:0px;
+        margin: 0;
 	background-color:$tabbg;
+	color:$fontmenu;
 	border-bottom:solid 1px $lg_border_color;
 }
 
 .LC_noBorder {
-        border:0px;
+        border: 0;
 }
 
 
@@ -5821,13 +5839,13 @@ h2,h3,h4,h5,h6 {
 
 .LC_Right {
         float: right;
-        margin: 0px;
-        padding: 0px;
+        margin: 0;
+        padding: 0;
 }
 
 .LC_FormSectionClearButton input {
         background-color:transparent;
-        border:0px;
+        border: none;
         cursor:pointer;
         text-decoration:underline;
 }
@@ -5843,17 +5861,31 @@ h2,h3,h4,h5,h6 {
 }
 
 dl,ul,div,fieldset {
-	margin: 10px 10px 10px 0px;
-	overflow:hidden;
+	margin: 10px 10px 10px 0;
+/*	overflow: hidden; */
+}
+
+#LC_nav_bar {
+    float: left;
+    margin: 0;
+}
+
+#LC_nav_bar em{
+    font-weight: bold;
+    font-style: normal;
+}
+
+ol.LC_smallMenu {
+    float: right;
 }
 
 ol.LC_smallMenu, ol#LC_PathBreadcrumbs {
-	margin: 0px;
+	margin: 0;
 }
 
 ol.LC_smallMenu li {
 	display: inline;
-	padding: 5px 5px 0px 10px;
+	padding: 5px 5px 0 10px;
 	vertical-align: top;
 }
 
@@ -5867,16 +5899,35 @@ ol.LC_smallMenu a {
 	text-decoration: none;
 }
 
-ol#LC_TabMainMenuContent, 
+ul#LC_TabMainMenuContent {
+    clear: both;
+    color: $fontmenu;
+    background: $tabbg;
+    list-style: none;
+    padding: 0;
+    margin: 0;
+    float:left;
+    width: 100%;
+}
+
+ul#LC_TabMainMenuContent li {
+    float: left;
+    font-weight: bold;
+    line-height: 1.8em;
+    padding: 0 0.8em; 
+    border-right: 1px solid black;
+    display: inline;
+    vertical-align: middle;
+}
+
 ul.LC_TabContent ,
 ul.LC_TabContentBigger {
 	display:block;
 	list-style:none;
-	margin: 0px;
-	padding: 0px;
+	margin: 0;
+	padding: 0;
 }
 
-ol#LC_TabMainMenuContent li,
 ul.LC_TabContent li,
 ul.LC_TabContentBigger li {
 	display: inline;
@@ -5886,18 +5937,8 @@ ul.LC_TabContentBigger li {
 	white-space:nowrap;
 }
 
-ol#LC_TabMainMenuContent li {
-	vertical-align: bottom;
-	border-bottom: solid 1px RGB(175, 175, 175);
-	padding: 5px 10px 5px 10px;
-	margin-right:5px;
-	margin-bottom:3px;
-	font-weight: bold;
-	background: url(/adm/lonIcons/lightGreyBG.png) repeat-x left top;
-}
-
-ol#LC_TabMainMenuContent li a {
-	color: RGB(47, 47, 47);
+ul#LC_TabMainMenuContent li a {
+    color: $fontmenu;
 	text-decoration: none;
 }
 
@@ -5907,7 +5948,7 @@ ul.LC_TabContent {
 
 ul.LC_TabContent li {
 	vertical-align:middle;
-	padding:0px 10px 0px 10px;
+	padding: 0 10px 0 10px;
 	background-color:$tabbg;
 	border-bottom:solid 1px $lg_border_color;
 }
@@ -5948,30 +5989,22 @@ ul.LC_TabContentBigger li a {
 
 ol#LC_MenuBreadcrumbs, 
 ol#LC_PathBreadcrumbs, 
-ul.LC_CourseBreadcrumbs {
-	border-top: solid 1px RGB(255, 255, 255);
-	height: 20px;
-	line-height: 20px;
-	vertical-align: bottom;
-	margin: 0px 0px 30px 0px;
+ul#LC_CourseBreadcrumbs {
 	padding-left: 10px;
+	margin: 0;
 	list-style-position: inside;
-	background: url(/adm/lonIcons/lightGreyBG.png) repeat-x left top;
 }
 
 ol#LC_MenuBreadcrumbs li, 
 ol#LC_PathBreadcrumbs li, 
-ul.LC_CourseBreadcrumbs li {
-/*
-	background: url(/adm/lonIcons/arrow_white.png) no-repeat left center;
-*/
+ul#LC_CourseBreadcrumbs li {
 	display: inline;
-	padding: 0px 0px 0px 10px;
-/*	vertical-align: bottom; */
+	padding: 0 0 0 10px;
 	overflow:hidden;
 }
 
-ol#LC_MenuBreadcrumbs li a, ul.LC_CourseBreadcrumbs li a {
+ol#LC_MenuBreadcrumbs li a,
+ul#LC_CourseBreadcrumbs li a {
 	text-decoration: none;
 	font-size:90%;
 }
@@ -6023,7 +6056,7 @@ dl.LC_ListStyleClean dd {
 	list-style-position: inside;
 	list-style-type: none;
 	overflow: hidden;
-	padding: 0px;
+	padding: 0;
 }
 
 .LC_ListStyleSimple li,
@@ -6032,15 +6065,15 @@ dl.LC_ListStyleClean dd {
 .LC_ListStyleNormal dd,
 .LC_ListStyleSpecial li,
 .LC_ListStyleSpecial dd {
-	margin: 0px;
+	margin: 0;
 	padding: 5px 5px 5px 10px;
 	clear: both;
 }
 
 .LC_ListStyleClean li,
 .LC_ListStyleClean dd {
-	padding-top: 0px;
-	padding-bottom: 0px;
+	padding-top: 0;
+	padding-bottom: 0;
 }
 
 .LC_ListStyleSimple dd,
@@ -6061,7 +6094,7 @@ table.LC_SimpleTable {
 }
 
 table.LC_SimpleTable tr {
-	padding:0px;
+	padding: 0;
 	border:solid 1px $lg_border_color;
 }
 
@@ -6073,12 +6106,12 @@ div.LC_columnSection {
 	display: block;
 	clear: both;
 	overflow: hidden;
-	margin:0px;
+	margin: 0;
 }
 
 div.LC_columnSection>* {
 	float: left;
-	margin: 10px 20px 10px 0px;
+	margin: 10px 20px 10px 0;
 	overflow:hidden;
 }
 
@@ -6097,9 +6130,9 @@ div.LC_columnSection > .ContentBoxSpecia
 
 .clear {
 	clear: both;
-	line-height: 0px;
-	font-size: 0px;
-	height: 0px;
+	line-height: 0;
+	font-size: 0;
+	height: 0;
 }
 
 .LC_loginpage_container {
@@ -6122,7 +6155,7 @@ div.LC_columnSection > .ContentBoxSpecia
 }
 
 .LC_loginpage_loginContainer h2 {
-	margin-top:0;
+	margin-top: 0;
 	display:block;
 	background:$bgcol;
 	color:$textcol;
@@ -6221,7 +6254,7 @@ ul#LC_toolbar li a:hover {
 }
 
 ul#LC_toolbar {
-	padding:0;
+	padding: 0;
 	margin: 2px;
 	list-style:none;
 	position:relative;
@@ -6230,7 +6263,7 @@ ul#LC_toolbar {
 
 ul#LC_toolbar li {
 	border:1px solid white;
-	padding:0;
+	padding: 0;
 	margin: 0;
         float: left;
 	display:inline;
@@ -6240,12 +6273,12 @@ ul#LC_toolbar li {
 
 a.LC_toolbarItem {
 	display:block;
-	padding:0;
-	margin:0;
+	padding: 0;
+	margin: 0;
 	height: 32px;
 	width: 32px;
 	color:white;
-	border:0 none;
+	border: none;
 	background-repeat:no-repeat;
 	background-color:transparent;
 }
@@ -6254,7 +6287,7 @@ ul.LC_functionslist li {
   float: left;
   white-space: nowrap;
   height: 35px; /* at least as high as heighest list item */
-  margin: 0px 15px 15px 10px;
+  margin: 0 15px 15px 10px;
 }
 
 
@@ -6447,7 +6480,7 @@ $args - additional optional args support
 
              only_body      -> is true will set &bodytag() onlybodytag
                                     arg on
-             no_nav_bar     -> is true will set &bodytag() notopbar arg on
+             no_nav_bar     -> is true will set &bodytag() no_nav_bar arg on
              add_entries    -> additional attributes to add to the  <body>
              domain         -> force to color decorate a page for a 
                                     specific domain
@@ -6466,7 +6499,6 @@ $args - additional optional args support
                                     is not auto translated like the $title is
              frameset       -> if true will start with a <frameset>
                                     rather than <body>
-             no_title       -> if true the title bar won't be shown
              skip_phases    -> hash ref of 
                                     head -> skip the <html><head> generation
                                     body -> skip all <body> generation
@@ -6515,7 +6547,7 @@ sub start_page {
 			 $args->{'only_body'},      $args->{'domain'},
 			 $args->{'force_register'}, $args->{'body_title'},
 			 $args->{'no_nav_bar'},     $args->{'bgcolor'},
-			 $args->{'no_title'},       $args->{'no_inline_link'},
+			 $args->{'no_inline_link'},
 			 $args);
 	}
     }
@@ -6527,7 +6559,15 @@ sub start_page {
 		$result = &html_encode($result);
     }
 
-	#Breadcrumbs
+    # Preparation for new and consistent functionlist at top of screen
+    # if ($args->{'functionlist'}) {
+    #            $result .= &build_functionlist();
+    #}
+
+    # Don't add anything more if only_body wanted
+    return $result if $args->{'only_body'};
+
+    #Breadcrumbs
     if (exists($args->{'bread_crumbs'}) or exists($args->{'bread_crumbs_component'})) {
 		&Apache::lonhtmlcommon::clear_breadcrumbs();
 		#if any br links exists, add them to the breadcrumbs
@@ -6771,14 +6811,17 @@ Returns either 'student','coordinator','
 
 ###############################################
 sub get_users_function {
-    my $function = 'student';
+    my $function = 'norole';
+    if ($env{'request.role'}=~/^(st)/) {
+        $function='student';
+    }
     if ($env{'request.role'}=~/^(cc|in|ta|ep)/) {
         $function='coordinator';
     }
     if ($env{'request.role'}=~/^(su|dc|ad|li)/) {
         $function='admin';
     }
-    if (($env{'request.role'}=~/^(au|ca)/) ||
+    if (($env{'request.role'}=~/^(au|ca|aa)/) ||
         ($ENV{'REQUEST_URI'}=~/^(\/priv|\~)/)) {
         $function='author';
     }
@@ -6789,6 +6832,38 @@ sub get_users_function {
 
 =pod
 
+=item * &show_course()
+
+Used by lonmenu.pm and lonroles.pm to determine whether to use the word
+'Courses' or 'Roles' in inline navigation and on screen displaying user's roles.
+
+Inputs:
+None
+
+Outputs:
+Scalar: 1 if 'Course' to be used, 0 otherwise.
+
+=cut
+
+###############################################
+sub show_course {
+    my $course = !$env{'user.adv'};
+    if (!$env{'user.adv'}) {
+        foreach my $env (keys(%env)) {
+            next if ($env !~ m/^user\.priv\./);
+            if ($env !~ m/^user\.priv\.(?:st|cm)/) {
+                $course = 0;
+                last;
+            }
+        }
+    }
+    return $course;
+}
+
+###############################################
+
+=pod
+
 =item * &check_user_status()
 
 Determines current status of supplied role for a
@@ -7485,12 +7560,17 @@ sub user_picker {
                 if ($cancreate) {
                     $new_user_create = '<p> <input type="submit" name="forcenew" value="'.&HTML::Entities::encode(&mt('Make new user "[_1]"',$srchterm),'<>&"').'" onclick="javascript:setSearch(\'1\','.$caller.');" /> </p>';
                 } else {
-                    my $helplink = ' href="javascript:helpMenu('."'display'".')"';
+                    my $helplink = 'javascript:helpMenu('."'display'".')';
                     my %usertypetext = (
                         official   => 'institutional',
                         unofficial => 'non-institutional',
                     );
-                    $new_user_create = '<br /><span class="LC_warning">'.&mt("You are not authorized to create new $usertypetext{$usertype} users in this domain.").' '.&mt('Contact the <a[_1]>helpdesk</a> for assistance.',$helplink).'</span><br /><br />';
+                    $new_user_create = '<p class="LC_warning">'
+                                      .&mt("You are not authorized to create new $usertypetext{$usertype} users in this domain.")
+                                      .' '
+                                      .&mt('Please contact the [_1]helpdesk[_2] for assistance.'
+                                          ,'<a href="'.$helplink.'">','</a>')
+                                      .'</p><br />';
                 }
             }
         }
@@ -7527,6 +7607,7 @@ ENDSCRIPT
 
     my $output = <<"END_BLOCK";
 <script type="text/javascript">
+// <![CDATA[
 function validateEntry(callingForm) {
 
     var checkok = 1;
@@ -7595,6 +7676,7 @@ function validateEntry(callingForm) {
 
 $newuserscript
 
+// ]]>
 </script>
 
 $new_user_create
@@ -10202,7 +10284,23 @@ sub escape_url {
     return join('/',@urlslices).'/'.$lastitem;
 }
 
-# -------------------------------------------------------- Initliaze user login
+sub compare_arrays {
+    my ($arrayref1,$arrayref2) = @_;
+    my (@difference,%count);
+    @difference = ();
+    %count = ();
+    if ((ref($arrayref1) eq 'ARRAY') && (ref($arrayref2) eq 'ARRAY')) {
+        foreach my $element (@{$arrayref1}, @{$arrayref2}) { $count{$element}++; }
+        foreach my $element (keys(%count)) {
+            if ($count{$element} == 1) {
+                push(@difference,$element);
+            }
+        }
+    }
+    return @difference;
+}
+
+# -------------------------------------------------------- Initialize user login
 sub init_user_environment {
     my ($r, $username, $domain, $authhost, $form, $args) = @_;
     my $lonids=$Apache::lonnet::perlvar{'lonIDsDir'};
@@ -10256,19 +10354,6 @@ sub init_user_environment {
     my ($httpbrowser,$clientbrowser,$clientversion,$clientmathml,
         $clientunicode,$clientos) = &decode_user_agent($r);
 
-# -------------------------------------- Any accessibility options to remember?
-    if (($form->{'interface'}) && ($form->{'remember'} eq 'true')) {
-	foreach my $option ('imagesuppress','appletsuppress',
-			    'embedsuppress','fontenhance','blackwhite') {
-	    if ($form->{$option} eq 'true') {
-		&Apache::lonnet::put('environment',{$option => 'on'},
-				     $domain,$username);
-	    } else {
-		&Apache::lonnet::del('environment',[$option],
-				     $domain,$username);
-	    }
-	}
-    }
 # ------------------------------------------------------------- Get environment
 
     my %userenv = &Apache::lonnet::dump('environment',$domain,$username);
@@ -10286,10 +10371,8 @@ sub init_user_environment {
     if ($userenv{'texengine'} eq 'ttm') { $clientmathml=1; }
 
 # --------------- Do not trust query string to be put directly into environment
-    foreach my $option ('imagesuppress','appletsuppress',
-			'embedsuppress','fontenhance','blackwhite',
-			'interface','localpath','localres') {
-	$form->{$option}=~s/[\n\r\=]//gs;
+    foreach my $option ('interface','localpath','localres') {
+        $form->{$option}=~s/[\n\r\=]//gs;
     }
 # --------------------------------------------------------- Write first profile
 
@@ -10323,13 +10406,6 @@ sub init_user_environment {
 	    $form->{'interface'}=~s/\W//gs;
 	    $initial_env{"browser.interface"} = $form->{'interface'};
 	    $env{'browser.interface'}=$form->{'interface'};
-	    foreach my $option ('imagesuppress','appletsuppress',
-				'embedsuppress','fontenhance','blackwhite') {
-		if (($form->{$option} eq 'true') ||
-		    ($userenv{$option} eq 'on')) {
-		    $initial_env{"browser.$option"} = "on";
-		}
-	    }
 	}
 
         foreach my $tool ('aboutme','blog','portfolio') {