--- loncom/homework/bridgetask.pm	2006/03/28 20:45:58	1.123
+++ loncom/homework/bridgetask.pm	2006/04/10 18:08:50	1.128.2.8
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA 
 # definition of tags that give a structure to a document
 #
-# $Id: bridgetask.pm,v 1.123 2006/03/28 20:45:58 albertel Exp $
+# $Id: bridgetask.pm,v 1.128.2.8 2006/04/10 18:08:50 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -259,64 +259,14 @@ sub preserve_grade_info {
 }
 
 sub style {
-    return (<<STYLE);
-<style type="text/css">
-.LC_fail, .LC_pass, .LC_neutral {
-    position: relative;
-    margin : 5px;
-    margin-bottom :10px;
-    padding : 4px;
-    padding-left : 75px;
-	border : thin solid;
-    font-weight : bolder;
-    font-size: smaller;
-    font-family: Arial;
-    background-color : rgb(255,240,225);
-}
-
-.LC_fail h4, .LC_pass h4 {
-	position:absolute;
-	left: -4px;
-	top: -8px;
-	padding:2px;
-	margin:0;
-	background-color : rgb(255,240,225);
-	border : thin solid;
-}
-
-.LC_fail {
-	color: red;
-}
-
-.LC_pass {
-    color : green;
-}
-
-.LC_neutral {
-	color : blue;
-}
-
-.LC_question {
-	border : thin solid black;
-	padding : 4px;
-	margin-bottom : 1em;
-}
-
-.LC_grade {
-	font-size: x-large;
-	font-family: Arial;
-	position:absolute;
-	left: 5px;
-	top: -5px;
-	width: 70px;
-}
-
-div#feedback h1 {
-    color : inherit;
-}
-</style>
+    my ($target) = @_;
+    if ($target eq 'web'
+	|| $target eq 'webgrade') {
+	return (<<STYLE);
+<link rel="stylesheet" type="text/css" href="/res/adm/includes/task.css" />
 STYLE
-
+    }
+    return;
 }
 
 sub show_task {
@@ -429,6 +379,7 @@ sub start_Task {
     my ($result,$head_tag_start,$body_tag_start,$form_tag_start)=
 	&Apache::structuretags::page_start($target,$token,$tagstack,$parstack,$parser,$safeeval);
     
+    $head_tag_start .= &style($target);
     $body_tag_start .= '<div class="LC_task">'."\n";
 
     if ($target eq 'web' || $target eq 'webgrade') {
@@ -504,11 +455,7 @@ sub start_Task {
 		    my $files = '<ul>';
 		    foreach my $file (@files) {
 			my $url="/uploaded/$domain/$user/portfolio$file";
-			if (! &Apache::lonnet::stat_file($url)) {
-			    $file = &mt('<font color="red"> Nonexistant file:</font> <tt>[_1]</tt>',$file);
-			} else {
-			    $file = '<tt>'.$file.'</tt>';
-			}
+			$file = '<tt>'.$file.'</tt>';
 			$files .= '<li>'.$file.'</li>';
 		    }
 		    $files.='</ul>';
@@ -547,7 +494,7 @@ DONESCREEN
 	    }
 	} elsif ($target eq 'web') {
 	    $result.="$head_tag_start</head>
-              $body_tag_start \n".&style();
+              $body_tag_start \n";
 	    
 	    $result.=&preserve_grade_info();
 	    $result.=&internal_location();
@@ -559,7 +506,11 @@ DONESCREEN
 	      $target eq 'webgrade') {
 	my $webgrade='yes';
 	if ($target eq 'webgrade') {
-	    $result.=$head_tag_start.'</head>'.$body_tag_start;
+	    $result.=$head_tag_start.
+		'</head>'.$body_tag_start.
+		"\n".'<div class="LC_GRADING_task">'."\n".
+		'<script type="text/javascript" 
+                         src="/res/adm/includes/task_grading.js"></script>';
 	    #$result.='<br />Review'.&show_queue('reviewqueue');
 	    #$result.='<br />Grade'.&show_queue('gradingqueue');
 	}
@@ -1019,7 +970,7 @@ DONEBUTTON
 	    &Apache::structuretags::finalize_storage();
 	}
     } elsif ($target eq 'webgrade') {
-	$result.="</div>\n<hr />";
+	$result.="</div>";
 	#$result.='<input type="submit" name="next" value="'.
 	#    &mt('Save &amp; Next').'" /> ';
 	#$result.='<input type="submit" name="end" value="'.
@@ -1028,7 +979,7 @@ DONEBUTTON
 	#    &mt('Throw Away &amp; Stop Grading').'" /> ';
 	#$result.='<input type="submit" name="save" value="'.
 	#    &mt('Save Partial Grade and Continue Grading').'" /> ';
-	$result.='</form>'."\n</div>\n".
+	$result.='</form>'."\n</div>\n</div>\n".
 	    &Apache::loncommon::endbodytag().'</html>';
     } elsif ($target eq 'meta') {
 	$result.=&Apache::response::meta_package_write('Task');
@@ -1364,9 +1315,15 @@ sub pick_from_queue_data {
     if (@possible) {
         # sort entries in order by slot end time
 	@possible = sort { $a->[1] <=> $b->[1] } @possible;
-	# pick one of the first ten entries
-	my $max=($#possible < 10) ? $#possible : 10;
-	return $possible[int(rand($max))][0];
+	# pick one of the entries in the top 10% in small queues and one
+	# of the first ten entries in large queues
+	#my $ten_percent = int($#possible * 0.1);
+	#if ($ten_percent < 1 ) { $ten_percent = 1;  }
+	#if ($ten_percent > 10) { $ten_percent = 10; }
+	#my $max=($#possible < $ten_percent) ? $#possible : $ten_percent;
+	
+	#return $possible[int(rand($max))][0];
+	return $possible[0][0];
     }
     return undef;
 }
@@ -1809,9 +1766,7 @@ sub get_instance {
 		my $link=&link($instance,$id);
 		my $status=$Apache::lonhomework::history{"resource.$version.0.$dim.$instance.$id.status"};
 		$result.='<div class="LC_GRADING_criteria" id="'.$link.'">'."\n".
-		    '<a name="'.$link.'" />'."\n".
-		    '<a name="next_'.$last_link.'" />'."\n".
-		    '<div class="LC_GRADING_criteriatext">'."\n";
+		    '<div class="LC_GRADING_criteriatext" id="next_'.$last_link.'">'."\n";
 		@Apache::scripttag::parser_env = @_;
 		$result.=&Apache::scripttag::xmlparse($dimension{$instance.'.criteria.'.$id});
 		$result.='</div>'."\n".
@@ -1919,8 +1874,8 @@ sub start_IntroParagraph {
 	if ($tagstack->[-2] eq 'Dimension') {
 	    $dimension{'intro'}=&Apache::lonxml::get_all_text('/introparagraph',$parser,$style);
 	
-	} elsif ($target eq 'webgrade') {
-	    &Apache::lonxml::get_all_text('/introparagraph',$parser,$style);
+	} elsif ($tagstack->[-2] eq 'Task' && $target eq 'webgrade') {
+	    &Apache::lonxml::startredirection();
 	}
 	
     }
@@ -1928,6 +1883,10 @@ sub start_IntroParagraph {
 }
 
 sub end_IntroParagraph {
+    my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
+    if ($tagstack->[-2] eq 'Task' && $target eq 'webgrade') {
+	my $result = &Apache::lonxml::endredirection();
+    }
 }
 
 sub start_Instance {