You can subscribe to this list here.
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(486) |
Jul
(201) |
Aug
(194) |
Sep
(87) |
Oct
(72) |
Nov
(72) |
Dec
(4) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(6) |
Feb
(41) |
Mar
(22) |
Apr
(4) |
May
(12) |
Jun
|
Jul
|
Aug
(42) |
Sep
(21) |
Oct
(14) |
Nov
(10) |
Dec
|
2007 |
Jan
(14) |
Feb
(34) |
Mar
(61) |
Apr
(54) |
May
(140) |
Jun
(184) |
Jul
(164) |
Aug
(130) |
Sep
(241) |
Oct
(175) |
Nov
(148) |
Dec
(96) |
2008 |
Jan
(5) |
Feb
(38) |
Mar
(30) |
Apr
(46) |
May
(25) |
Jun
(22) |
Jul
(5) |
Aug
(17) |
Sep
(2) |
Oct
(100) |
Nov
(83) |
Dec
(33) |
2009 |
Jan
(127) |
Feb
(43) |
Mar
(86) |
Apr
(34) |
May
(50) |
Jun
(168) |
Jul
(48) |
Aug
(66) |
Sep
(38) |
Oct
(75) |
Nov
(113) |
Dec
(72) |
2010 |
Jan
(123) |
Feb
(68) |
Mar
(26) |
Apr
(11) |
May
(39) |
Jun
(131) |
Jul
(56) |
Aug
(79) |
Sep
(69) |
Oct
(17) |
Nov
(166) |
Dec
(32) |
2011 |
Jan
(21) |
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
(2) |
Sep
|
Oct
(1) |
Nov
(8) |
Dec
|
2012 |
Jan
(2) |
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Simon H. <sim...@us...> - 2010-11-30 10:34:45
|
Update of /cvsroot/stack/stack-dev/lib/ui In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv25539/lib/ui Modified Files: Tag: item_state_separation DisplayItem.php Log Message: Index: DisplayItem.php =================================================================== RCS file: /cvsroot/stack/stack-dev/lib/ui/DisplayItem.php,v retrieving revision 1.91.2.4.2.5 retrieving revision 1.91.2.4.2.6 diff -C2 -d -r1.91.2.4.2.5 -r1.91.2.4.2.6 *** DisplayItem.php 19 Nov 2010 18:16:19 -0000 1.91.2.4.2.5 --- DisplayItem.php 30 Nov 2010 10:34:33 -0000 1.91.2.4.2.6 *************** *** 212,217 **** $this->seed = $seed; } ! //$this->itemOpts = new ItemOption(); ! $this->itemOpts = NULL; //load the item options stored with the question $this->item = new InstantiatedItem($questionId, $this->itemOpts, $this->seed, $userId); --- 212,217 ---- $this->seed = $seed; } ! //$this->itemOpts = new ItemOption(); // but will load the options stored with the question - check line a little below ! $this->itemOpts = NULL; $this->item = new InstantiatedItem($questionId, $this->itemOpts, $this->seed, $userId); |
From: Simon H. <sim...@us...> - 2010-11-30 10:34:42
|
Update of /cvsroot/stack/stack-dev/lib/database In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv25539/lib/database Modified Files: Tag: item_state_separation StackDBCache.php Log Message: Index: StackDBCache.php =================================================================== RCS file: /cvsroot/stack/stack-dev/lib/database/StackDBCache.php,v retrieving revision 1.12.6.2.2.8 retrieving revision 1.12.6.2.2.9 diff -C2 -d -r1.12.6.2.2.8 -r1.12.6.2.2.9 *** StackDBCache.php 28 Nov 2010 16:15:45 -0000 1.12.6.2.2.8 --- StackDBCache.php 30 Nov 2010 10:34:34 -0000 1.12.6.2.2.9 *************** *** 159,163 **** for($i = 0; $i < $n; $i++) { $seed = time() + $i*104; // ensuring differing seeds ! $itemOptions = NULL; $userID = -1; // not needed! $instance = new DisplayItem($userID, $qID, false, $seed); // non user-specific starter question --- 159,163 ---- for($i = 0; $i < $n; $i++) { $seed = time() + $i*104; // ensuring differing seeds ! $itemOptions = new ItemOptions(); $userID = -1; // not needed! $instance = new DisplayItem($userID, $qID, false, $seed); // non user-specific starter question |
From: Tim H. <tj...@us...> - 2010-11-29 18:06:59
|
Update of /cvsroot/stack/stack-dev/lib/items In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv26176/lib/items Modified Files: PotentialResponse.php Log Message: More un-quoted strings. Index: PotentialResponse.php =================================================================== RCS file: /cvsroot/stack/stack-dev/lib/items/PotentialResponse.php,v retrieving revision 1.49 retrieving revision 1.50 diff -C2 -d -r1.49 -r1.50 *** PotentialResponse.php 30 Sep 2010 16:56:15 -0000 1.49 --- PotentialResponse.php 29 Nov 2010 18:06:51 -0000 1.50 *************** *** 622,626 **** public function getTrueAN() { ! return $this->trueArray[AnsNote]; } --- 622,626 ---- public function getTrueAN() { ! return $this->trueArray['AnsNote']; } *************** *** 632,636 **** public function getFalseAN() { ! return $this->falseArray[AnsNote]; } --- 632,636 ---- public function getFalseAN() { ! return $this->falseArray['AnsNote']; } |
From: Tim H. <tj...@us...> - 2010-11-29 17:48:07
|
Update of /cvsroot/stack/stack-dev/lib/items In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv22886/lib/items Modified Files: CasTextType.php Meta.php CasString.php KeyVal.php RawKeyVal.php QuestionType.php Log Message: Fix un-quoted strings in som lib/items classes. This was causing Notices all over the place. Index: QuestionType.php =================================================================== RCS file: /cvsroot/stack/stack-dev/lib/items/QuestionType.php,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** QuestionType.php 30 Sep 2010 16:56:15 -0000 1.13 --- QuestionType.php 29 Nov 2010 17:47:59 -0000 1.14 *************** *** 81,85 **** * @access protected */ ! protected $type = QuestionType; /** --- 81,85 ---- * @access protected */ ! protected $type = 'QuestionType'; /** *************** *** 126,130 **** $this->xmlType = $xmlType; //$this->errorLog = new error(); ! if(self::$errorLog == null) self::$errorLog = new error(); } --- 126,130 ---- $this->xmlType = $xmlType; //$this->errorLog = new error(); ! if(self::$errorLog === null) self::$errorLog = new error(); } Index: Meta.php =================================================================== RCS file: /cvsroot/stack/stack-dev/lib/items/Meta.php,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** Meta.php 30 Sep 2010 16:56:15 -0000 1.20 --- Meta.php 29 Nov 2010 17:47:59 -0000 1.21 *************** *** 30,34 **** * @access protected */ ! protected $type = meta; --- 30,34 ---- * @access protected */ ! protected $type = 'meta'; Index: KeyVal.php =================================================================== RCS file: /cvsroot/stack/stack-dev/lib/items/KeyVal.php,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** KeyVal.php 27 Aug 2009 16:23:00 -0000 1.17 --- KeyVal.php 29 Nov 2010 17:47:59 -0000 1.18 *************** *** 58,62 **** * @access protected */ ! protected $type = keyval; --- 58,62 ---- * @access protected */ ! protected $type = 'keyval'; Index: RawKeyVal.php =================================================================== RCS file: /cvsroot/stack/stack-dev/lib/items/RawKeyVal.php,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** RawKeyVal.php 13 Oct 2010 12:15:19 -0000 1.33 --- RawKeyVal.php 29 Nov 2010 17:47:59 -0000 1.34 *************** *** 44,48 **** * @access protected */ ! protected $type = rawkeyval; /** --- 44,48 ---- * @access protected */ ! protected $type = 'rawkeyval'; /** Index: CasTextType.php =================================================================== RCS file: /cvsroot/stack/stack-dev/lib/items/CasTextType.php,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** CasTextType.php 13 Oct 2010 12:15:19 -0000 1.27 --- CasTextType.php 29 Nov 2010 17:47:59 -0000 1.28 *************** *** 44,48 **** * @access protected */ ! protected $type = casText; // Associations --- 44,48 ---- * @access protected */ ! protected $type = 'casText'; // Associations Index: CasString.php =================================================================== RCS file: /cvsroot/stack/stack-dev/lib/items/CasString.php,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** CasString.php 13 Oct 2010 12:15:19 -0000 1.17 --- CasString.php 29 Nov 2010 17:47:59 -0000 1.18 *************** *** 38,42 **** * @access protected */ ! protected $type = casString; // Associations --- 38,42 ---- * @access protected */ ! protected $type = 'casString'; // Associations |
From: Tim H. <tj...@us...> - 2010-11-29 17:43:26
|
Update of /cvsroot/stack/stack-dev/lib/ui In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv22042/lib/ui Modified Files: questionImporter.php Log Message: Fix notices generated by lib/ui/questionImporter.php. Index: questionImporter.php =================================================================== RCS file: /cvsroot/stack/stack-dev/lib/ui/questionImporter.php,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** questionImporter.php 30 Sep 2010 16:56:15 -0000 1.18 --- questionImporter.php 29 Nov 2010 17:43:18 -0000 1.19 *************** *** 35,39 **** die($diemessage); } ! $root = $config->get('docroot'); --- 35,39 ---- die($diemessage); } ! $sumbiturl = $url.'/lib/ui/questionImporter.php'; $root = $config->get('docroot'); *************** *** 43,46 **** --- 43,47 ---- require_once $root.'/lib/translator.php'; + $error = ''; if(!empty($_FILES['uploaded'])) { *************** *** 66,70 **** // not uploaded a file but has AiM text been entered? ! $entry = trim($_POST['entry']); if(!empty($entry)) { $converter = new AimConverter(); --- 67,78 ---- // not uploaded a file but has AiM text been entered? ! if (array_key_exists('entry', $_POST)) ! { ! $entry = trim($_POST['entry']); ! } ! else ! { ! $entry = ''; ! } if(!empty($entry)) { $converter = new AimConverter(); *************** *** 176,180 **** ?> </p> ! <form action="<?php $PHP_SELF ?>" method="POST"> <p><textarea name="entry" cols="80" rows="20" /><?php echo get_magic_quotes_gpc() ? stripslashes($entry) : $entry; ?></textarea></p> <p><input type="submit" value="<?php echo get_string('stackImport_button_submitAim','stack',''); ?>" /> --- 184,188 ---- ?> </p> ! <form action="<?php $sumbiturl ?>" method="post"> <p><textarea name="entry" cols="80" rows="20" /><?php echo get_magic_quotes_gpc() ? stripslashes($entry) : $entry; ?></textarea></p> <p><input type="submit" value="<?php echo get_string('stackImport_button_submitAim','stack',''); ?>" /> *************** *** 186,193 **** else { ! if($_GET['src'] == 'aim') { ?> <p><?php echo get_string('stackImport_Aim_description','stack',''); ?></p> ! <form action="<?php echo $PHP_SELF."?src=aim" ?>" method="POST"> <p><textarea name="entry" cols="80" rows="20" /></textarea></p> <p><input type="submit" value="<?php echo get_string('stackImport_button_submitAim','stack',''); ?>" /> --- 194,201 ---- else { ! if(array_key_exists('src', $_GET) && $_GET['src'] == 'aim') { ?> <p><?php echo get_string('stackImport_Aim_description','stack',''); ?></p> ! <form action="<?php echo $sumbiturl."?src=aim" ?>" method="post"> <p><textarea name="entry" cols="80" rows="20" /></textarea></p> <p><input type="submit" value="<?php echo get_string('stackImport_button_submitAim','stack',''); ?>" /> *************** *** 199,203 **** ?> <p><?php echo get_string('stackImport_description','stack',''); ?></p> ! <form enctype="multipart/form-data" action="<?php echo $PHP_SELF ?>" method="POST"> <p><?php echo get_string('stackImport_fileSelect','stack',''); ?> <input type="hidden" name="MAX_FILE_SIZE" value="10000000" /> --- 207,211 ---- ?> <p><?php echo get_string('stackImport_description','stack',''); ?></p> ! <form enctype="multipart/form-data" action="<?php echo $sumbiturl ?>" method="post"> <p><?php echo get_string('stackImport_fileSelect','stack',''); ?> <input type="hidden" name="MAX_FILE_SIZE" value="10000000" /> |
From: Tim H. <tj...@us...> - 2010-11-29 16:57:33
|
Update of /cvsroot/stack/stack-dev/lib/ui In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv14108/lib/ui Modified Files: logViewer.php Log Message: logViewer was giving an error if you tried to look at the logs before anything had been logged. Index: logViewer.php =================================================================== RCS file: /cvsroot/stack/stack-dev/lib/ui/logViewer.php,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** logViewer.php 8 Jun 2008 20:51:42 -0000 1.1 --- logViewer.php 29 Nov 2010 16:57:25 -0000 1.2 *************** *** 52,65 **** $file = $logs.'stack.log'; ! ! $temp = file_get_contents($file); ! if($temp == false){ echo 'Logs empty'; } ! else{ ! $out = nl2br($temp); ! echo '<p class="logs">'.$out.'</p>'; } - ?> <hr> --- 52,68 ---- $file = $logs.'stack.log'; ! if (!is_readable($file)) { echo 'Logs empty'; } ! else { ! $temp = file_get_contents($file); ! if($temp == false){ ! echo 'Logs empty'; ! } ! else{ ! $out = nl2br($temp); ! echo '<p class="logs">'.$out.'</p>'; ! } } ?> <hr> |
From: Simon H. <sim...@us...> - 2010-11-29 15:40:13
|
Update of /cvsroot/stack/stack-dev/lib/reporting In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv30474/lib/reporting Modified Files: StackReport.php Log Message: Ongoing quick reporting interface. Index: StackReport.php =================================================================== RCS file: /cvsroot/stack/stack-dev/lib/reporting/StackReport.php,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** StackReport.php 29 Nov 2010 08:21:46 -0000 1.25 --- StackReport.php 29 Nov 2010 15:40:04 -0000 1.26 *************** *** 1341,1364 **** $widgets = new ReportWidgets(); ! /*$xhtml .= "<select>"; foreach($students as $student) { ! $xhtml .= "<option value='$student[0]'>$student[2] $student[3]</option>"; } $xhtml .= "</select>"; ! *///$xhtml = print_r($students,1); ! //$questions = $db->questionList(); ! $xhtml .= "<form method='POST' action='report.php?type=simple'>"; /* $xhtml .= $db->getStudentSelector('student'). ' or '. $db->getQuestionSelector('question', 1, $_POST['question']);*/ ! $xhtml .= $widgets->studentSelector($_POST['studentSelector']); ! $xhtml .= '<input type="submit" name="submit" value="student report" /><p />'; ! $xhtml .= $widgets->questionSelector($_POST['questionSelector']); ! $xhtml .= '<input type="submit" name="submit" value="question report" />'; $xhtml .= '</form>'; ! if($_POST['submit'] == 'student report' && isset($_POST['studentSelector'])) { $xhtml .= print_r($db->questionsByStudent($_POST['studentSelector']),1); $questions = $db->questionsByStudent($_POST['studentSelector']); --- 1341,1382 ---- $widgets = new ReportWidgets(); ! ! $xhtml .= print_r($_POST,1); ! ! $xhtml .= "<form id='form1' method='POST' action='report.php?type=simple'>"; ! ! $xhtml .= "<select name='studentSelector' onChange='document.getElementById(\"form1\").submit()'>"; ! $xhtml .= "<option value=''>All students</option>"; foreach($students as $student) { ! $xhtml .= "<option value='$student[0]'"; ! if($student[0] == $_POST['studentSelector']) $xhtml .= " SELECTED"; ! $xhtml .= ">$student[2] $student[3]</option>"; } $xhtml .= "</select>"; ! ! $questions = $db->questionList(); ! $xhtml .= "<select name='questionSelector' onChange='document.getElementById(\"form1\").submit()'>"; ! $xhtml .= "<option value=''>All questions</option>"; ! foreach($questions as $question) { ! $xhtml .= "<option value='$question[0]'"; ! if($question[0] == $_POST['questionSelector']) $xhtml .= " SELECTED"; ! $xhtml .= ">$question[1]</option>"; ! } ! $xhtml .= "</select>"; ! ! ! //$xhtml .= print_r($questions,1); /* $xhtml .= $db->getStudentSelector('student'). ' or '. $db->getQuestionSelector('question', 1, $_POST['question']);*/ ! //$xhtml .= $widgets->studentSelector($_POST['studentSelector']); ! //$xhtml .= '<input type="submit" name="submit" value="student report" /><p />'; ! //$xhtml .= $widgets->questionSelector($_POST['questionSelector']); ! // $xhtml .= '<input type="submit" name="submit" value="question report" />'; $xhtml .= '</form>'; ! if(!empty($_POST['studentSelector'])) { $xhtml .= print_r($db->questionsByStudent($_POST['studentSelector']),1); $questions = $db->questionsByStudent($_POST['studentSelector']); *************** *** 1370,1377 **** } } ! if($_POST['submit'] == 'question report' && isset($_POST['questionSelector'])) { //$xhtml .= print_r($db->studentAnswerNotes($_POST['questionSelector']),1); ! $xhtml .= print_r($_POST['questionSelector']); $xhtml .= $db->answerNoteChart($_POST['questionSelector']); } --- 1388,1395 ---- } } ! if(!empty($_POST['questionSelector'])) { //$xhtml .= print_r($db->studentAnswerNotes($_POST['questionSelector']),1); ! $xhtml .= print_r($_POST['questionSelector'],1); $xhtml .= $db->answerNoteChart($_POST['questionSelector']); } |
From: Simon H. <sim...@us...> - 2010-11-29 15:40:13
|
Update of /cvsroot/stack/stack-dev/lib/database In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv30474/lib/database Modified Files: StackDBReporting.php Log Message: Ongoing quick reporting interface. Index: StackDBReporting.php =================================================================== RCS file: /cvsroot/stack/stack-dev/lib/database/StackDBReporting.php,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** StackDBReporting.php 29 Nov 2010 08:21:46 -0000 1.30 --- StackDBReporting.php 29 Nov 2010 15:40:05 -0000 1.31 *************** *** 1026,1030 **** public function gPieChart($values, $labels) { // pesky pipes conflict with gChart separators so am substituting them ! return '<img src="http://chart.apis.google.com/chart?cht=p&chs=500x100&chd=t:'.implode($values, ',').'&chdl='.str_replace('|', '~', implode($labels, '|')).'" />'; } } --- 1026,1033 ---- public function gPieChart($values, $labels) { // pesky pipes conflict with gChart separators so am substituting them ! foreach($labels as $key => $val) { ! $labels[$key] = str_replace('|', '→', $val); ! } ! return '<img src="http://chart.apis.google.com/chart?cht=p&chs=500x100&chd=t:'.implode($values, ',').'&chdl='.implode($labels, '|').'" />'; } } |
From: Simon H. <sim...@us...> - 2010-11-29 08:21:54
|
Update of /cvsroot/stack/stack-dev/lib/reporting In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv31462/lib/reporting Modified Files: StackReport.php json.php Log Message: Index: StackReport.php =================================================================== RCS file: /cvsroot/stack/stack-dev/lib/reporting/StackReport.php,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** StackReport.php 24 Nov 2010 16:44:26 -0000 1.24 --- StackReport.php 29 Nov 2010 08:21:46 -0000 1.25 *************** *** 87,92 **** default: ! $xhtml = 'consequence';//$this->interactiveInterface(); ! $result = array('a','b','c'); break; } --- 87,91 ---- default: ! break; } *************** *** 235,239 **** students = {fields: [], list: []}; students.list = ' ! . json_encode($db->studentList()) . '; students.fields = [ --- 234,238 ---- students = {fields: [], list: []}; students.list = ' ! . json_encode($db->appendTwoFields($db->studentList())) . '; students.fields = [ *************** *** 248,252 **** questions= {fields: [], list: []}; questions.list = ' ! . json_encode($db->questionList()) . '; questions.fields = [ --- 247,251 ---- questions= {fields: [], list: []}; questions.list = ' ! . json_encode($db->appendTwoFields($db->questionList())) . '; questions.fields = [ Index: json.php =================================================================== RCS file: /cvsroot/stack/stack-dev/lib/reporting/json.php,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** json.php 30 Sep 2010 16:56:15 -0000 1.2 --- json.php 29 Nov 2010 08:21:46 -0000 1.3 *************** *** 43,47 **** case 'questions': // Formats it in the way datatables likes ! $questions = array('aaData' => $db->listQuestions()); echo json_encode($questions); break; --- 43,47 ---- case 'questions': // Formats it in the way datatables likes ! $questions = array('aaData' => $db->appendTwoFields($db->listQuestions())); echo json_encode($questions); break; *************** *** 70,74 **** case 'students': ! $students = array('aaData' => $db->listStudents()); echo json_encode($students); break; --- 70,74 ---- case 'students': ! $students = array('aaData' => $db->appendTwoFields($db->listStudents())); echo json_encode($students); break; |
From: Simon H. <sim...@us...> - 2010-11-29 08:21:54
|
Update of /cvsroot/stack/stack-dev/lib/database In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv31462/lib/database Modified Files: StackDBReporting.php Log Message: Index: StackDBReporting.php =================================================================== RCS file: /cvsroot/stack/stack-dev/lib/database/StackDBReporting.php,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** StackDBReporting.php 24 Nov 2010 16:44:26 -0000 1.29 --- StackDBReporting.php 29 Nov 2010 08:21:46 -0000 1.30 *************** *** 94,99 **** $student['firstname'], $student['lastname'], - '', // These two are for the two hidden colums - '' // the data is populated later via AJAX ); } --- 94,97 ---- |
From: Chris S. <san...@us...> - 2010-11-28 17:34:26
|
Update of /cvsroot/stack/stack-dev/maxima In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv22370 Modified Files: stackmaxima.mac Log Message: Index: stackmaxima.mac =================================================================== RCS file: /cvsroot/stack/stack-dev/maxima/stackmaxima.mac,v retrieving revision 1.85 retrieving revision 1.86 diff -C2 -d -r1.85 -r1.86 *** stackmaxima.mac 9 Nov 2010 13:41:57 -0000 1.85 --- stackmaxima.mac 28 Nov 2010 17:34:18 -0000 1.86 *************** *** 635,638 **** --- 635,643 ---- /* ********************************** */ + /* Logarithms to the base 10 */ + /* ********************************** */ + + + /* ********************************** */ /* Algebraic tests */ /* ********************************** */ *************** *** 1093,1097 **** if (is(SBB=[STACKERROR]) or is(SBB=[])) then return(StackReturnOb("0","ATGT_STACKERROR_TAns","")), ! ex:ev(float(trigreduce(trigexpand(trigrat(SA-SB)))),simp), if numberp(ex) then if ex>0 then --- 1098,1102 ---- if (is(SBB=[STACKERROR]) or is(SBB=[])) then return(StackReturnOb("0","ATGT_STACKERROR_TAns","")), ! ex:ev(float(trigreduce(trigexpand(SA-SB))),simp), if numberp(ex) then if ex>0 then *************** *** 1113,1117 **** if (is(SBB=[STACKERROR]) or is(SBB=[])) then return(StackReturnOb("0","ATGTE_STACKERROR_TAns","")), ! ex:ev(float(trigreduce(trigexpand(trigrat(SA-SB)))),simp), if numberp(ex) then if ex>=0 then --- 1118,1122 ---- if (is(SBB=[STACKERROR]) or is(SBB=[])) then return(StackReturnOb("0","ATGTE_STACKERROR_TAns","")), ! ex:ev(float(trigreduce(trigexpand(SA-SB))),simp), if numberp(ex) then if ex>=0 then *************** *** 1848,1878 **** )$ - /* ===================== ATEquations ===================== */ - ATEquations(SA,SBl) := - block([old_simp,keepfloat,RawMark,FeedBack,AnswerNote,cont:true,ret,SB,AT,var:0], - old_simp:simp, simp:true, RawMark:0, FeedBack:"", AnswerNote:"", - /* SBL is a list: the teacher's answer, the variable, and whether formative feedback is to be provided. */ - if listp(SBl) then - (var:SBl[2], SB:SBl[1], cont:true) - else - (cont:false, ret:[false,0,"ATEquation_list","ATEquation_list"]), - if listp(var) then - (AT:var[2], var:var[1],cont:true) - else - (cont:false, ret:[false,0,"ATEquation_list_var","ATEquation_list_var"]), - /* Check we really do have a variable */ - if not(AT="AE") then - if atom(var) then - (if stringp(var) or numberp(var) then - (cont:false, ret:[false,0,"ATEquation_var_wrong",""]) - ) - else - (cont:false, ret:[false,0,"ATEquation_var_wrong",""]), - /* If ok, we perform the test */ - if cont then ret:ATEquationfun(SA,SB,var,AT), - ret:StackReturnOb(string(ret[2]),ret[3],ret[4]), - return(ret) - )$ - /* Description : forme echelonne par lignes d'une matrice rectangulaire --- 1853,1856 ---- |
From: Simon H. <sim...@us...> - 2010-11-28 16:15:53
|
Update of /cvsroot/stack/stack-dev/lib/database In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv31317/lib/database Modified Files: Tag: item_state_separation StackDBCache.php Log Message: Index: StackDBCache.php =================================================================== RCS file: /cvsroot/stack/stack-dev/lib/database/StackDBCache.php,v retrieving revision 1.12.6.2.2.7 retrieving revision 1.12.6.2.2.8 diff -C2 -d -r1.12.6.2.2.7 -r1.12.6.2.2.8 *** StackDBCache.php 26 Nov 2010 19:04:42 -0000 1.12.6.2.2.7 --- StackDBCache.php 28 Nov 2010 16:15:45 -0000 1.12.6.2.2.8 *************** *** 48,52 **** //$state->reduceToState(); $this->logger->debug("state size in add: ".strlen($this->base64_serialize($state))); ! $this->logger->debug("DI in add(): ".print_r($state, 1)); // add the new state --- 48,52 ---- //$state->reduceToState(); $this->logger->debug("state size in add: ".strlen($this->base64_serialize($state))); ! //$this->logger->debug("DI in add(): ".print_r($state, 1)); // add the new state *************** *** 163,169 **** $instance = new DisplayItem($userID, $qID, false, $seed); // non user-specific starter question ! //$instance->reduceToState(); $logger = new Logger("STATIC deploy cache"); ! //$logger->debug("state in deployCache: ".print_r($instance, true)); // discard if this duplicates an existing instance (defined by question note) --- 163,169 ---- $instance = new DisplayItem($userID, $qID, false, $seed); // non user-specific starter question ! $instance->reduceToState(); $logger = new Logger("STATIC deploy cache"); ! $logger->debug("state in deployCache: ".print_r($instance, true)); // discard if this duplicates an existing instance (defined by question note) *************** *** 196,200 **** $logger->debug("pre-reduce size:".strlen($db->base64_serialize($instance))); $instance->reduceToState(); ! $logger->debug("whole DI:".print_r($instance, 1)); $logger->debug("post-reduce size:".strlen($db->base64_serialize($instance))); --- 196,200 ---- $logger->debug("pre-reduce size:".strlen($db->base64_serialize($instance))); $instance->reduceToState(); ! //$logger->debug("whole DI:".print_r($instance, 1)); $logger->debug("post-reduce size:".strlen($db->base64_serialize($instance))); |
From: Simon H. <sim...@us...> - 2010-11-28 16:15:53
|
Update of /cvsroot/stack/stack-dev/lib/items In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv31317/lib/items Modified Files: Tag: item_state_separation ItemOption.php Log Message: Index: ItemOption.php =================================================================== RCS file: /cvsroot/stack/stack-dev/lib/items/ItemOption.php,v retrieving revision 1.19.8.2 retrieving revision 1.19.8.3 diff -C2 -d -r1.19.8.2 -r1.19.8.3 *** ItemOption.php 26 Nov 2010 19:04:42 -0000 1.19.8.2 --- ItemOption.php 28 Nov 2010 16:15:45 -0000 1.19.8.3 *************** *** 78,82 **** global $config; ! ItemOption::errorLog = new error(); //Setup the default values/options --- 78,82 ---- global $config; ! self::$errorLog = new error(); //Setup the default values/options *************** *** 110,122 **** public function __clone() { ! if(!empty(ItemOption::options)) ! { ! ! // do we need this any more with static defaults? ! /*foreach($this->options as $label => $opt) ! { ! $this->selected[$label] = $opt; ! } ! } } --- 110,114 ---- public function __clone() { ! // obsolete? } *************** *** 131,135 **** { $valid = true; ! foreach($this->options as $name => $option) { $tmp = $option->validate(); --- 123,127 ---- { $valid = true; ! foreach(self::$options as $name => $option) { $tmp = $option->validate(); *************** *** 137,142 **** { $valid = false; ! $this->errorLog->addError("$name invalid: $option->getErrors"); ! $this->errorLog->addUserError('itemOptions', $name.' '.get_string('','stack','').' '.$option->getError); } } --- 129,134 ---- { $valid = false; ! self::$errorLog->addError("$name invalid: $option->getErrors"); ! self::$errorLog->addUserError('itemOptions', $name.' '.get_string('','stack','').' '.$option->getError); } } *************** *** 163,173 **** if ($valid) { ! ItemOption::options[$name] = $tmp; // new option for ItemOption $this->selected[$name] = $value; // and value set for the instance } else { ! ItemOption::errorLog->addError("Attempted to insert invalid stackOption: $name ".$tmp->getErrors()); ! ItemOption::errorLog->addUserError('itemOptions', get_string('stackOptions_invalidOption','stack','').$name.': '.$tmp->getErrors()); } return $valid; --- 155,165 ---- if ($valid) { ! self::$options[$name] = $tmp; // new option for ItemOption $this->selected[$name] = $value; // and value set for the instance } else { ! self::$errorLog->addError("Attempted to insert invalid stackOption: $name ".$tmp->getErrors()); ! self::$errorLog->addUserError('itemOptions', get_string('stackOptions_invalidOption','stack','').$name.': '.$tmp->getErrors()); } return $valid; *************** *** 188,198 **** if($valid) { ! ItemOption::options[$name] = $option; $this->selected[$name] = $option->getSelection(); } else { ! $this->errorLog->addError("Attempted to insert invalid stackOption: $option->getErrors"); ! $this->errorLog->addUserError('itemOptions', get_string('stackOptions_invalidOption','stack','').$tmp->getErrors()); } return $valid; --- 180,190 ---- if($valid) { ! self::$options[$name] = $option; $this->selected[$name] = $option->getSelection(); } else { ! self::$errorLog->addError("Attempted to insert invalid stackOption: $option->getErrors"); ! self::$errorLog->addUserError('itemOptions', get_string('stackOptions_invalidOption','stack','').$tmp->getErrors()); } return $valid; *************** *** 208,218 **** public function getOption($name) { ! if (array_key_exists($name, $this->options)) { ! return $this->options[$name]; } else { ! $this->errorLog->addError('Attempted to retrieve option '.$name.' which does not exist.'); return NULL; } --- 200,210 ---- public function getOption($name) { ! if (array_key_exists($name, self::$options)) { ! return self::$options[$name]; } else { ! self::$errorLog->addError('Attempted to retrieve option '.$name.' which does not exist.'); return NULL; } *************** *** 228,239 **** public function getDefault($name) { ! if (array_key_exists($name, $this->options)) { ! $default = $this->options[$name]->getDefault(); return $default; } else { ! $this->errorLog->addError('Attempted to retrieve default for '.$name.' which does not exist.'); return NULL; } --- 220,231 ---- public function getDefault($name) { ! if (array_key_exists($name, self::$options)) { ! $default = self::$options[$name]->getDefault(); return $default; } else { ! self::$errorLog->addError('Attempted to retrieve default for '.$name.' which does not exist.'); return NULL; } *************** *** 249,259 **** public function getType($name) { ! if (array_key_exists($name, $this->options)) { ! return $this->options[$name]->getType(); } else { ! $this->errorLog->addError('Attempted to retrieve type of '.$name.' which does not exist.'); return NULL; } --- 241,251 ---- public function getType($name) { ! if (array_key_exists($name, self::$options)) { ! return self::$options[$name]->getType(); } else { ! self::$errorLog->addError('Attempted to retrieve type of '.$name.' which does not exist.'); return NULL; } *************** *** 269,279 **** public function getValues($name) { ! if (array_key_exists($name, $this->options)) { ! return $this->options[$name]->getValues(); } else { ! $this->errorLog->addError('Attempted to retrieve value of '.$name.' which does not exist.'); return NULL; } --- 261,271 ---- public function getValues($name) { ! if (array_key_exists($name, self::$options)) { ! return self::$options[$name]->getValues(); } else { ! self::$errorLog->addError('Attempted to retrieve value of '.$name.' which does not exist.'); return NULL; } *************** *** 289,299 **** public function getCasKey($name) { ! if (array_key_exists($name, $this->options)) { ! return $this->options[$name]->getCasKey(); } else { ! $this->errorLog->addError('Attempted to retrieve caskey of '.$name.' which does not exist.'); return NULL; } --- 281,291 ---- public function getCasKey($name) { ! if (array_key_exists($name, self::$options)) { ! return self::$options[$name]->getCasKey(); } else { ! self::$errorLog->addError('Attempted to retrieve caskey of '.$name.' which does not exist.'); return NULL; } *************** *** 310,320 **** public function getCasType($name) { ! if (array_key_exists($name, $this->options)) { ! return $this->options[$name]->getCasType(); } else { ! $this->errorLog->addError('Attempted to retrieve castype of '.$name.' which does not exist.'); return NULL; } --- 302,312 ---- public function getCasType($name) { ! if (array_key_exists($name, self::$options)) { ! return self::$options[$name]->getCasType(); } else { ! self::$errorLog->addError('Attempted to retrieve castype of '.$name.' which does not exist.'); return NULL; } *************** *** 330,334 **** { $returnArray; ! foreach($this->options as $name => $option) { --- 322,326 ---- { $returnArray; ! foreach(self::$options as $name => $option) { *************** *** 350,363 **** public function getSelected($name) { ! if (array_key_exists($name, $this->options)) { if(array_key_exists($name, $this->selected)) { return $this->selected[$name]; } ! else return $this->options[$name]->getSelected(); // default } else { ! $this->errorLog->addError('Attempted to retrieve selected of '.$name.' which does not exist.'); return NULL; } --- 342,355 ---- public function getSelected($name) { ! if (array_key_exists($name, self::$options)) { if(array_key_exists($name, $this->selected)) { return $this->selected[$name]; } ! else return self::$options[$name]->getSelected(); // default } else { ! self::$errorLog->addError('Attempted to retrieve selected of '.$name.' which does not exist.'); return NULL; } *************** *** 381,385 **** else { ! $this->errorLog->addError('Attempted to set selected of '.$name.' which does not exist.'); return false; } --- 373,377 ---- else { ! self::$errorLog->addError('Attempted to set selected of '.$name.' which does not exist.'); return false; } *************** *** 392,401 **** public function getErrors() { ! return $this->errorLog->displayErrors(); } public function getErrorLog() { ! return $this->errorLog; } --- 384,393 ---- public function getErrors() { ! return self::$errorLog->displayErrors(); } public function getErrorLog() { ! return self::$errorLog; } *************** *** 412,416 **** { // rather kludgy way of setting Option up with correct selection ! $option = clone $this->options[$name]; $option->setSelected($this->selected[$name]); return $options->editWidget($name, $size); --- 404,408 ---- { // rather kludgy way of setting Option up with correct selection ! $option = clone self::$options[$name]; $option->setSelected($this->selected[$name]); return $options->editWidget($name, $size); *************** *** 425,429 **** public function getUserErrors() { ! return $this->errorLog->getUserErrors(); } --- 417,421 ---- public function getUserErrors() { ! return self::$errorLog->getUserErrors(); } *************** *** 438,444 **** { $node = $dom->createElement($name); ! if(!empty($this->options)) { ! foreach($this->options as $optName => $option) { $optNode = $option->toXML($dom, $optName); --- 430,436 ---- { $node = $dom->createElement($name); ! if(!empty(self::$options)) { ! foreach(self::$options as $optName => $option) { $optNode = $option->toXML($dom, $optName); *************** *** 464,472 **** // copy value over, involves checks. ! $this->options[$optName]->setSelected($src->options[$optName]->getSelected()); $this->selected[$optName] = $selection; } else { ! $this->errorLog->addError('Attempted to copy selection of '.$optName.' which does not exist in current item.'); } } --- 456,464 ---- // copy value over, involves checks. ! self::$options[$optName]->setSelected($src->options[$optName]->getSelected()); $this->selected[$optName] = $selection; } else { ! self::$errorLog->addError('Attempted to copy selection of '.$optName.' which does not exist in current item.'); } } *************** *** 475,484 **** public function equals($other) { ! if(empty($this->options) != empty($other->options)) return false; ! if(!empty($this->options)) { ! foreach($this->options as $optName => $option) { //if($other->options[$optName]->getSelected() != $option->getSelected()) return false; ! if($other->getSelected() != $this->option->getSelected()) } } --- 467,477 ---- public function equals($other) { ! if(empty($this->selected) != empty($other->selected)) return false; ! if(!empty($this->selected)) { ! foreach($this->selected as $key => $value) { //if($other->options[$optName]->getSelected() != $option->getSelected()) return false; ! //if($other->getSelected() != $this->option->getSelected()); ! if($other->selected[$key] != $this->selected[$key]) return false; } } |
From: Simon H. <sim...@us...> - 2010-11-26 19:04:50
|
Update of /cvsroot/stack/stack-dev/lib/database In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv32484/lib/database Modified Files: Tag: item_state_separation StackDBCache.php Log Message: Index: StackDBCache.php =================================================================== RCS file: /cvsroot/stack/stack-dev/lib/database/StackDBCache.php,v retrieving revision 1.12.6.2.2.6 retrieving revision 1.12.6.2.2.7 diff -C2 -d -r1.12.6.2.2.6 -r1.12.6.2.2.7 *** StackDBCache.php 25 Nov 2010 13:37:43 -0000 1.12.6.2.2.6 --- StackDBCache.php 26 Nov 2010 19:04:42 -0000 1.12.6.2.2.7 *************** *** 48,52 **** //$state->reduceToState(); $this->logger->debug("state size in add: ".strlen($this->base64_serialize($state))); ! //$this->logger->debug("DI in add(): ".print_r($state, 1)); // add the new state --- 48,52 ---- //$state->reduceToState(); $this->logger->debug("state size in add: ".strlen($this->base64_serialize($state))); ! $this->logger->debug("DI in add(): ".print_r($state, 1)); // add the new state *************** *** 196,200 **** $logger->debug("pre-reduce size:".strlen($db->base64_serialize($instance))); $instance->reduceToState(); ! //$logger->debug("whole DI:".print_r($instance, 1)); $logger->debug("post-reduce size:".strlen($db->base64_serialize($instance))); --- 196,200 ---- $logger->debug("pre-reduce size:".strlen($db->base64_serialize($instance))); $instance->reduceToState(); ! $logger->debug("whole DI:".print_r($instance, 1)); $logger->debug("post-reduce size:".strlen($db->base64_serialize($instance))); |
From: Simon H. <sim...@us...> - 2010-11-26 19:04:50
|
Update of /cvsroot/stack/stack-dev/lib/items In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv32484/lib/items Modified Files: Tag: item_state_separation ItemOption.php Log Message: Index: ItemOption.php =================================================================== RCS file: /cvsroot/stack/stack-dev/lib/items/ItemOption.php,v retrieving revision 1.19.8.1 retrieving revision 1.19.8.2 diff -C2 -d -r1.19.8.1 -r1.19.8.2 *** ItemOption.php 9 Nov 2010 16:51:37 -0000 1.19.8.1 --- ItemOption.php 26 Nov 2010 19:04:42 -0000 1.19.8.2 *************** *** 36,45 **** // Attributes /** ! * List of stackOptions in format name => stackOption * * @var array(stackOption) * @access private */ ! private $options; /** --- 36,53 ---- // Attributes /** ! * List of default stackOptions in format name => stackOption * * @var array(stackOption) * @access private */ ! static private $options; // the defaults ! ! /** ! * Selected values for stackOptions in format name => stackOption ! * ! * @var array(name=>value) ! * @access private ! */ ! private $selected; // the selected values - SPH /** *************** *** 49,53 **** * @access private */ ! private $errorLog; // Associations --- 57,61 ---- * @access private */ ! private static $errorLog; // Associations *************** *** 70,74 **** global $config; ! $this->errorLog = new error(); //Setup the default values/options --- 78,82 ---- global $config; ! ItemOption::errorLog = new error(); //Setup the default values/options *************** *** 77,81 **** $this->addOption('MultiplicationSign','list','dot',array('(none)' => get_string('stackOption_none', 'stack', ''),'dot'=> get_string('stackOption_dot', 'stack', ''),'cross'=> get_string('stackOption_cross', 'stack', '')),'make_multsgn','fun'); $this->addOption('ComplexNo','list','i',array('i','j','symi','symj'),'make_complexJ','fun'); ! $this->addOption('Floats','list','true',array('true' => get_string('stack_True','stack',''),'false' => get_string('stack_False', 'stack','')),'OPT_NoFloats','ex'); $this->addOption('SqrtSign','list','true',array('true' => get_string('stack_True','stack',''),'false' => get_string('stack_False', 'stack','')),'sqrtdispflag','ex'); $this->addOption('Simplify','list','true',array('true' => get_string('stack_True','stack',''),'false' => get_string('stack_False', 'stack','')),'simp','ex'); --- 85,89 ---- $this->addOption('MultiplicationSign','list','dot',array('(none)' => get_string('stackOption_none', 'stack', ''),'dot'=> get_string('stackOption_dot', 'stack', ''),'cross'=> get_string('stackOption_cross', 'stack', '')),'make_multsgn','fun'); $this->addOption('ComplexNo','list','i',array('i','j','symi','symj'),'make_complexJ','fun'); ! $this->addOption('Floats','list','true',array('true' => get_string('stack_True','stack',''),'false' => get_string('stack_False', 'stack','')),'OPT_NoFloats','ex'); $this->addOption('SqrtSign','list','true',array('true' => get_string('stack_True','stack',''),'false' => get_string('stack_False', 'stack','')),'sqrtdispflag','ex'); $this->addOption('Simplify','list','true',array('true' => get_string('stack_True','stack',''),'false' => get_string('stack_False', 'stack','')),'simp','ex'); *************** *** 98,111 **** $this->addOption('FeedbackGenericPCorrect','html',get_string('stackOptions_FeedBackGenericPCorrect_def','stack',''),''); $this->addOption('OptWorkedSol','list','true',array('true' => get_string('stack_True','stack',''),'false' => get_string('stack_False', 'stack','')),'',''); - } public function __clone() { ! if(!empty($this->options)) { ! foreach($this->options as $label => $opt) { ! $this->options[$label] = clone $opt; } } --- 106,120 ---- $this->addOption('FeedbackGenericPCorrect','html',get_string('stackOptions_FeedBackGenericPCorrect_def','stack',''),''); $this->addOption('OptWorkedSol','list','true',array('true' => get_string('stack_True','stack',''),'false' => get_string('stack_False', 'stack','')),'',''); } public function __clone() { ! if(!empty(ItemOption::options)) { ! ! // do we need this any more with static defaults? ! /*foreach($this->options as $label => $opt) { ! $this->selected[$label] = $opt; } } *************** *** 154,163 **** if ($valid) { ! $this->options[$name] = $tmp; } else { ! $this->errorLog->addError("Attempted to insert invalid stackOption: $name ".$tmp->getErrors()); ! $this->errorLog->addUserError('itemOptions', get_string('stackOptions_invalidOption','stack','').$name.': '.$tmp->getErrors()); } return $valid; --- 163,173 ---- if ($valid) { ! ItemOption::options[$name] = $tmp; // new option for ItemOption ! $this->selected[$name] = $value; // and value set for the instance } else { ! ItemOption::errorLog->addError("Attempted to insert invalid stackOption: $name ".$tmp->getErrors()); ! ItemOption::errorLog->addUserError('itemOptions', get_string('stackOptions_invalidOption','stack','').$name.': '.$tmp->getErrors()); } return $valid; *************** *** 178,182 **** if($valid) { ! $this->options[$name] = $option; } else --- 188,193 ---- if($valid) { ! ItemOption::options[$name] = $option; ! $this->selected[$name] = $option->getSelection(); } else *************** *** 341,345 **** if (array_key_exists($name, $this->options)) { ! return $this->options[$name]->getSelected(); } else --- 352,359 ---- if (array_key_exists($name, $this->options)) { ! if(array_key_exists($name, $this->selected)) { ! return $this->selected[$name]; ! } ! else return $this->options[$name]->getSelected(); // default } else *************** *** 358,366 **** * @return bool */ ! public function setSelected($name, $selected) { ! if(array_key_exists($name, $this->options)) { ! $this->options[$name]->setSelected($selected); return true; } --- 372,380 ---- * @return bool */ ! public function setSelected($name, $value) { ! if(array_key_exists($name, $this->selected)) // we have the option { ! $this->selected[$name] = $value; return true; } *************** *** 397,401 **** if(array_key_exists($name, $this->options)) { ! return $this->options[$name]->editWidget($name, $size); } else --- 411,418 ---- if(array_key_exists($name, $this->options)) { ! // rather kludgy way of setting Option up with correct selection ! $option = clone $this->options[$name]; ! $option->setSelected($this->selected[$name]); ! return $options->editWidget($name, $size); } else *************** *** 444,451 **** if(array_key_exists($optName, $this->options)) { ! $selected = $src->options[$optName]->getSelected(); // copy value over, involves checks. $this->options[$optName]->setSelected($src->options[$optName]->getSelected()); } else { --- 461,469 ---- if(array_key_exists($optName, $this->options)) { ! $selection = $src->selection[$optName]; // copy value over, involves checks. $this->options[$optName]->setSelected($src->options[$optName]->getSelected()); + $this->selected[$optName] = $selection; } else { *************** *** 461,465 **** { foreach($this->options as $optName => $option) { ! if($other->options[$optName]->getSelected() != $option->getSelected()) return false; } } --- 479,484 ---- { foreach($this->options as $optName => $option) { ! //if($other->options[$optName]->getSelected() != $option->getSelected()) return false; ! if($other->getSelected() != $this->option->getSelected()) } } |
From: Simon H. <sim...@us...> - 2010-11-25 13:37:52
|
Update of /cvsroot/stack/stack-dev/lib/database In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv31191/lib/database Modified Files: Tag: item_state_separation StackDBCache.php Log Message: Fixed smalled regression due to debugging. Index: StackDBCache.php =================================================================== RCS file: /cvsroot/stack/stack-dev/lib/database/StackDBCache.php,v retrieving revision 1.12.6.2.2.5 retrieving revision 1.12.6.2.2.6 diff -C2 -d -r1.12.6.2.2.5 -r1.12.6.2.2.6 *** StackDBCache.php 18 Nov 2010 14:21:14 -0000 1.12.6.2.2.5 --- StackDBCache.php 25 Nov 2010 13:37:43 -0000 1.12.6.2.2.6 *************** *** 48,52 **** //$state->reduceToState(); $this->logger->debug("state size in add: ".strlen($this->base64_serialize($state))); ! $this->logger->debug("DI in add(): ".print_r($state, 1)); // add the new state --- 48,52 ---- //$state->reduceToState(); $this->logger->debug("state size in add: ".strlen($this->base64_serialize($state))); ! //$this->logger->debug("DI in add(): ".print_r($state, 1)); // add the new state *************** *** 164,168 **** //$instance->reduceToState(); ! //$logger = new Logger("STATIC deploy cache"); //$logger->debug("state in deployCache: ".print_r($instance, true)); --- 164,168 ---- //$instance->reduceToState(); ! $logger = new Logger("STATIC deploy cache"); //$logger->debug("state in deployCache: ".print_r($instance, true)); |
From: Simon H. <sim...@us...> - 2010-11-24 16:44:34
|
Update of /cvsroot/stack/stack-dev/lib/reporting In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv22656/lib/reporting Modified Files: StackReport.php Log Message: Towards restoring standard reporting option. Index: StackReport.php =================================================================== RCS file: /cvsroot/stack/stack-dev/lib/reporting/StackReport.php,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** StackReport.php 30 Sep 2010 16:56:15 -0000 1.23 --- StackReport.php 24 Nov 2010 16:44:26 -0000 1.24 *************** *** 28,32 **** require_once $root . '/lib/database/StackDBAttemptPRTMeta.php'; require_once $root . '/lib/database/StackDBUser.php'; ! require_once $root . '/lib/dateTime.php'; require_once $root . '/lib/translator.php'; --- 28,32 ---- require_once $root . '/lib/database/StackDBAttemptPRTMeta.php'; require_once $root . '/lib/database/StackDBUser.php'; ! require_once $root . '/lib/dateTime.php'; [...2402 lines suppressed...] + $questions = $db->questionsByStudent($_POST['studentSelector']); + if($questions) { + foreach($questions as $key => $val) { + $q['questionSelector'] = $key; + $xhtml .= $db->answerNoteStatistics($q); + } + } + } + if($_POST['submit'] == 'question report' && isset($_POST['questionSelector'])) { + + //$xhtml .= print_r($db->studentAnswerNotes($_POST['questionSelector']),1); + $xhtml .= print_r($_POST['questionSelector']); + $xhtml .= $db->answerNoteChart($_POST['questionSelector']); + } + $xhtml .= '</div>'; + $xhtml .= $_POST['questionSelector']; + return $xhtml; + } } ?> |
From: Simon H. <sim...@us...> - 2010-11-24 16:44:34
|
Update of /cvsroot/stack/stack-dev/lib/database In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv22656/lib/database Modified Files: StackDBReporting.php Log Message: Towards restoring standard reporting option. Index: StackDBReporting.php =================================================================== RCS file: /cvsroot/stack/stack-dev/lib/database/StackDBReporting.php,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** StackDBReporting.php 30 Sep 2010 16:56:13 -0000 1.28 --- StackDBReporting.php 24 Nov 2010 16:44:26 -0000 1.29 *************** *** 49,56 **** public function questionList($ids = null) { ! $sql = 'SELECT questionID, questionName, questionDescription FROM stackquestion'; ! if (isset($ids)) { ! $sql .= " WHERE questionID IN ($ids)"; ! } $this->connect(); $this->query($sql); --- 49,60 ---- public function questionList($ids = null) { [...1124 lines suppressed...] ! $PRTName = $this->result($i, 'PRTName'); ! $RawMark = $this->result($i, 'RawMark'); ! $ModMark = $this->result($i, 'ModMark'); ! ! if(!array_key_exists($questionId, $resultsArray) || !array_key_exists($userId, $resultsArray[$questionId])) ! { ! $resultsArray[$questionId][$userId] = new MarksAttempt($userId, $questionId); ! } ! $resultsArray[$questionId][$userId]->addAttempt($attemptId, $PRTName, $RawMark, $ModMark); ! } ! ! return $resultsArray; ! } ! ! public function gPieChart($values, $labels) { ! // pesky pipes conflict with gChart separators so am substituting them ! return '<img src="http://chart.apis.google.com/chart?cht=p&chs=500x100&chd=t:'.implode($values, ',').'&chdl='.str_replace('|', '~', implode($labels, '|')).'" />'; ! } } |
From: Simon H. <sim...@us...> - 2010-11-24 16:44:34
|
Update of /cvsroot/stack/stack-dev/lib/ui In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv22656/lib/ui Modified Files: report.php Log Message: Towards restoring standard reporting option. Index: report.php =================================================================== RCS file: /cvsroot/stack/stack-dev/lib/ui/report.php,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** report.php 1 Nov 2010 18:18:29 -0000 1.12 --- report.php 24 Nov 2010 16:44:25 -0000 1.13 *************** *** 67,71 **** <body> <?php ! if (isset($_GET['type'])) { // Have supplied report parameters, go ahead and make it --- 67,71 ---- <body> <?php ! echo '<p><a href="../../index.php">' . get_string('FE_index_main','stack') . '</a></p>'; if (isset($_GET['type'])) { // Have supplied report parameters, go ahead and make it *************** *** 92,97 **** . $report->studentFilterInterface($_REQUEST) . '</form>'; ! ! echo '<p><a href="../../index.php">' . get_string('FE_index_main','stack') . '</a></p>'; } ?> --- 92,101 ---- . $report->studentFilterInterface($_REQUEST) . '</form>'; ! /* ! echo '<form action="report.php?type=simple" method="post">' ! . $report->simpleInterface($_REQUEST) ! . '<input type="submit" value"submit" />' ! . '</form>'; ! */ } ?> |
From: Simon H. <sim...@us...> - 2010-11-24 16:44:34
|
Update of /cvsroot/stack/stack-dev/opaque In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv22656/opaque Modified Files: MoodleStackReport.php Log Message: Towards restoring standard reporting option. Index: MoodleStackReport.php =================================================================== RCS file: /cvsroot/stack/stack-dev/opaque/MoodleStackReport.php,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** MoodleStackReport.php 30 Sep 2010 16:56:21 -0000 1.5 --- MoodleStackReport.php 24 Nov 2010 16:44:26 -0000 1.6 *************** *** 24,28 **** class MoodleStackReport { - private $report; --- 24,27 ---- *************** *** 41,45 **** if (isset($param['type'])) { ! $reportType = $param['type']; $xhtml .= $this->report->displayResults($param); --- 40,44 ---- if (isset($param['type'])) { ! $reportType = $param['type']; $xhtml .= $this->report->displayResults($param); *************** *** 48,52 **** } else { ! $xhtml .= '<h1>Select a report type</h1>'; --- 47,51 ---- } else { ! $xhtml .= '<h1>Select a report type</h1>'; *************** *** 55,65 **** <p> <a href="stackSessionPage.php?page=report&type=interactive"><button >Load the interactive interface</button></a> </p> </div>'; - $xhtml .= '<form action="stackSessionPage.php?page=report&type=question" method="post">' ! . $report->questionFilterInterface($param) . '</form>'; $xhtml .= '<form action="stackSessionPage.php?page=report&type=student" method="post">' ! . $report->studentFilterInterface($param) . '</form>'; } --- 54,63 ---- <p> <a href="stackSessionPage.php?page=report&type=interactive"><button >Load the interactive interface</button></a> </p> </div>'; $xhtml .= '<form action="stackSessionPage.php?page=report&type=question" method="post">' ! . $this->report->questionFilterInterface($param) . '</form>'; $xhtml .= '<form action="stackSessionPage.php?page=report&type=student" method="post">' ! . $this->report->studentFilterInterface($param) . '</form>'; } |
From: Ben H. <bdv...@us...> - 2010-11-24 11:34:00
|
Update of /cvsroot/stack/stack-dev/lib/reporting In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv26098/lib/reporting Modified Files: Tag: question_reporting StackReport.php json.php Log Message: Adjusted StackDBReporting.php to account for the question lines feature. Index: StackReport.php =================================================================== RCS file: /cvsroot/stack/stack-dev/lib/reporting/StackReport.php,v retrieving revision 1.22.2.19 retrieving revision 1.22.2.20 diff -C2 -d -r1.22.2.19 -r1.22.2.20 *** StackReport.php 22 Nov 2010 23:05:52 -0000 1.22.2.19 --- StackReport.php 24 Nov 2010 11:33:51 -0000 1.22.2.20 *************** *** 215,219 **** students = {fields: [], list: []}; students.list = ' ! . json_encode($db->studentList()) . '; students.fields = [ --- 215,219 ---- students = {fields: [], list: []}; students.list = ' ! . json_encode($db->appendTwoFields($db->studentList())) . '; students.fields = [ *************** *** 228,232 **** questions= {fields: [], list: []}; questions.list = ' ! . json_encode($db->questionList()) . '; questions.fields = [ --- 228,232 ---- questions= {fields: [], list: []}; questions.list = ' ! . json_encode($db->appendTwoFields($db->questionList())) . '; questions.fields = [ Index: json.php =================================================================== RCS file: /cvsroot/stack/stack-dev/lib/reporting/json.php,v retrieving revision 1.2.6.2 retrieving revision 1.2.6.3 diff -C2 -d -r1.2.6.2 -r1.2.6.3 *** json.php 22 Nov 2010 23:05:52 -0000 1.2.6.2 --- json.php 24 Nov 2010 11:33:51 -0000 1.2.6.3 *************** *** 43,47 **** case 'questions': // Formats it in the way datatables likes ! $questions = array('aaData' => $db->listQuestions()); echo json_encode($questions); break; --- 43,47 ---- case 'questions': // Formats it in the way datatables likes ! $questions = array('aaData' => $db->appendTwoFields($db->listQuestions())); echo json_encode($questions); break; *************** *** 70,74 **** case 'students': ! $students = array('aaData' => $db->listStudents()); echo json_encode($students); break; --- 70,74 ---- case 'students': ! $students = array('aaData' => $db->appendTwoFields($db->listStudents())); echo json_encode($students); break; |
From: Ben H. <bdv...@us...> - 2010-11-24 11:33:59
|
Update of /cvsroot/stack/stack-dev/lib/database In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv26098/lib/database Modified Files: Tag: question_reporting StackDBReporting.php Log Message: Adjusted StackDBReporting.php to account for the question lines feature. Index: StackDBReporting.php =================================================================== RCS file: /cvsroot/stack/stack-dev/lib/database/StackDBReporting.php,v retrieving revision 1.27.2.21 retrieving revision 1.27.2.22 diff -C2 -d -r1.27.2.21 -r1.27.2.22 *** StackDBReporting.php 22 Nov 2010 23:05:52 -0000 1.27.2.21 --- StackDBReporting.php 24 Nov 2010 11:33:51 -0000 1.27.2.22 *************** *** 49,56 **** public function questionList($ids = null) { ! $sql = 'SELECT questionID, questionName, questionDescription FROM stackquestion'; ! if (isset($ids)) { ! $sql .= " WHERE questionID IN ($ids)"; ! } $this->connect(); $this->query($sql); --- 49,60 ---- public function questionList($ids = null) { ! $sql = 'SELECT questionID, questionName, questionDescription ! FROM stackquestion, question_lines ! WHERE line = question_lines.id'; ! ! if (isset($ids)) $sql .= " AND questionID IN ($ids)"; ! ! $sql .= ' GROUP BY line'; ! $this->connect(); $this->query($sql); *************** *** 65,71 **** $this->result($i, 'questionID'), $this->result($i, 'questionName'), ! $this->result($i, 'questionDescription'), ! '', // These two are for the two hidden colums ! '' // the data is popoluated later via AJAX ); } --- 69,73 ---- $this->result($i, 'questionID'), $this->result($i, 'questionName'), ! $this->result($i, 'questionDescription') ); } *************** *** 73,76 **** --- 75,82 ---- return $questions; } + + /** + * + */ /** *************** *** 92,97 **** $student['firstname'], $student['lastname'], - '', // These two are for the two hidden colums - '' // the data is popoluated later via AJAX ); } --- 98,101 ---- *************** *** 414,866 **** return $answerNotes; } ! ! // The following code is believed to be legacy. To be removed. ! // ! // /** ! // * Displays a student selector ! // * ! // * ! // */ ! // public function getStudentSelector($name=NULL, $size=1, $selected=NULL) ! // { ! // if($name == NULL) ! // { ! // $name = 'studentSelector'; ! // } ! // ! // ! // $selector = '<select name="'.$name.'" size="'.$size.'">'; ! // ! // $db = new StackDBUser(); ! // $db->connect(); ! // $users = $db->getAllUsersDetails(); ! // $db->disconnect(); ! // if(empty($users)) ! // { ! // $selector = '<option value="">No Students in Moodle database</option>'; ! // } ! // else ! // { ! // ! // $selector .= '<option value="">All</option>'; ! // ! // foreach($users as $sID => $user) ! // { ! // /*$sID = $this->result($i, 'id'); ! // $username = $this->result($i, 'username');*/ ! // //$sID = $id; ! // $username = $user['username'].' ('.$user['firstname'].' '.$user['lastname'].')'; ! // if($selected == $sID) ! // { ! // $selector .= '<option value="'.$sID.'" selected>'.$username.'</option>'; ! // } ! // else ! // { ! // $selector .= '<option value="'.$sID.'">'.$username.'</option>'; ! // } ! // } ! // } ! // $selector .= '</select>'; ! // ! // return $selector; ! // } ! // ! // /** ! // * Performs a search by student ! // * @return array ! // * @param $param Object ! // */ ! // public function studentSearch($param) ! // { ! // //convert dates to timestamps ! // $startDate = $this->conn->DBTimeStamp(mktime(0,0,0,$param['startMonth'],$param['startDate'],$param['startYear'])); ! // $endDate = $this->conn->DBTimeStamp(mktime(23,59,59,$param['endMonth'],$param['endDate'],$param['endYear'])); //till end of the day ! // ! // //echo '<br /><br />'.date('d-m-Y', $startDate).'<hr>'; ! // //echo '<br /><br />'.date('d-m-Y', $endDate).'<hr>'; ! // //echo "<pre>";print_r($param);echo "</pre>"; ! // ! // if($param['studentSelector'] == "") ! // { ! // $studentSelection = '>= 0'; ! // } ! // else ! // { ! // $studentSelection = "=".$param['studentSelector']; ! // } ! // ! // if($param['questionSelector'] == "") ! // { ! // $questionSelection = '>= 0'; ! // } ! // else ! // { ! // $questionSelection = "=".$param['questionSelector']; ! // } ! // ! // $sql = "SELECT DISTINCT question_attempts.AttemptID, question_attempts.TransitionID, display_cache_sequence.nextNode, question_attempts.UserID, question_attempts.TimeStamp, display_cache.qID, display_cache.currentTotalMark, display_cache.questionNote ! // FROM question_attempts, display_cache, display_cache_sequence ! // WHERE ! // display_cache.qID $questionSelection ! // AND ! // (display_cache_sequence.nextNode = display_cache.id) ! // AND ! // (question_attempts.TransitionID = display_cache_sequence.id) ! // AND ! // (display_cache_sequence.nextNode != display_cache_sequence.currentNode) ! // AND ! // (question_attempts.TimeStamp >= $startDate) AND (question_attempts.TimeStamp <= $endDate) ! // AND ! // UserID $studentSelection ! // ORDER BY UserID, AttemptID"; ! // ! // //echo $sql; ! // $this->query($sql); ! // $no = $this->noRows(); ! // ! // ! // if($no > 0) ! // { ! // for($i=0; $i < $no; $i++) ! // { ! // $trans = $this->result($i,'TransitionID'); ! // $attempt = $this->result($i,'AttemptID'); ! // $userId = $this->result($i, 'UserID'); ! // $timestamp = $this->result($i, 'TimeStamp'); ! // $qu = $this->result($i, 'qID'); ! // $qnote = $this->result($i, 'questionNote'); ! // $mark = $this->result($i, 'currentTotalMark'); ! // $next = $this->result($i, 'nextNode'); ! // $return[] = array('UserID'=>$userId,'TimeStamp'=>$timestamp,'nextNode'=>$next,'QuestionId'=>$qu,'QuestionNote'=>$qnote,'Score'=>$mark,); ! // } ! // ! // return $return; ! // } ! // else ! // { ! // return NULL; ! // } ! // } ! // ! // /** ! // * Performs a search of student answers by question ! // * ! // */ ! // public function questionSearch($param) ! // { ! // $startDate = $this->conn->DBTimeStamp(mktime(0,0,0,$param['startMonth'],$param['startDate'],$param['startYear'])); ! // $endDate = $this->conn->DBTimeStamp(mktime(23,59,59,$param['endMonth'],$param['endDate'],$param['endYear'])); //till end of the day ! // ! // $qid = $param["questionSelector"]; ! // ! // $sql = "SELECT DISTINCT question_attempts.AttemptID, question_attempts.UserID, display_cache.questionNote, attempt_meta_answer.AnsName, attempt_meta_answer.RawAns, attempt_meta_answer.Status ! // FROM question_attempts, attempt_meta_answer, display_cache, display_cache_sequence ! // WHERE ! // display_cache.qID = $qid ! // AND ! // (attempt_meta_answer.CacheID = display_cache.id) ! // AND ! // (display_cache_sequence.nextNode = display_cache.id) ! // AND ! // (question_attempts.TransitionID = display_cache_sequence.id) ! // AND ! // (display_cache_sequence.nextNode != display_cache_sequence.currentNode)"; ! // ! // $sql .= "AND (question_attempts.TimeStamp >= $startDate) AND (question_attempts.TimeStamp <= $endDate)"; ! // ! // if($param['status'] !== 'all') ! // { ! // $status = StackDBAttemptAnsMeta::$states[$param['status']]; ! // if ('' !== $status) { ! // $sql .= " AND (attempt_meta_answer.Status = '".$status."')"; ! // } ! // } ! // ! // //echo $sql.$param['status'].$status; ! // ! // $this->query($sql); ! // $no = $this->noRows(); ! // if($no > 0) ! // { ! // $userAttempts = array(); ! // for($i =0; $i < $no; $i++) ! // { ! // $attemptID = $this->result($i, 'AttemptID'); ! // $UserID = $this->result($i, 'UserID'); ! // $QuestionNote = $this->result($i, 'QuestionNote'); ! // $ansName = $this->result($i, 'AnsName'); ! // $rawAns = $this->result($i, 'RawAns'); ! // $status = $this->result($i, 'Status'); ! // $seed = 0; ! // ! // if(!array_key_exists($UserID, $userAttempts)) ! // { ! // $userAttempts[$UserID] = new UserAttempts($UserID, $QuestionNote, $seed); ! // } ! // $userAttempts[$UserID]->addAttempt($attemptID, $ansName, $status, $rawAns); ! // } ! // ! // return $userAttempts; ! // ! // } ! // else ! // { ! // return NULL; ! // } ! // ! // } ! // ! // ! // /* Generates an XHTML table with statistics about the entered question Id's answers ! // * @param int questionid ! // * @return string ! // */ ! // public function answerNoteStatistics($param) ! // { ! // $qid = $param["questionSelector"]; ! // ! // $sql = "SELECT attempt_meta_prt.PRTName , attempt_meta_prt.RawMark , display_cache.questionNote, attempt_meta_prt.AnsNote, COUNT( attempt_meta_prt.AnsNote ) as Count ! // FROM question_attempts, attempt_meta_prt, display_cache, display_cache_sequence ! // WHERE ! // display_cache.qID = $qid ! // AND ! // (attempt_meta_prt.CacheID = display_cache.id) ! // AND ! // (display_cache_sequence.nextNode = display_cache.id) ! // AND ! // (question_attempts.TransitionID = display_cache_sequence.id) ! // AND ! // (display_cache_sequence.nextNode != display_cache_sequence.currentNode)"; ! // ! // $sql.= "GROUP BY display_cache.id ! // ORDER BY attempt_meta_prt.PRTName ASC, attempt_meta_prt.RawMark DESC "; ! // ! // //echo $sql; ! // $this->connect(); ! // $this->query($sql); ! // $no = $this->noRows(); ! // ! // $xhtml = ''; ! // if ($no>0) { ! // ! // $total = array(); ! // $RawMark = array(); ! // $summary = array(); ! // $data = array(); ! // $allAnsNotes = array(); ! // $allQueNotes = array(); ! // for($i=0; $i < $no; $i++) ! // { ! // $PRTName = $this->result($i,'PRTName'); ! // $questionNote = $this->result($i,'questionNote'); ! // $allQueNotes[$questionNote] = true; ! // $AnsNote = $this->result($i,'AnsNote'); ! // $count = $this->result($i,'Count'); ! // $total[$PRTName] += $count; ! // $RawMark[$PRTName][$AnsNote] = $this->result($i,'RawMark'); ! // $summary[$PRTName][$AnsNote] += $count; ! // $data[$PRTName][$AnsNote][$questionNote] += $count; ! // } ! // $allPRTNames = array_keys($data); ! // $allQueNotes = array_keys($allQueNotes); ! // ! // $xhtml .= '<h2>Potential response trees</h2>'; ! // ! // /*$xhtml .= '<table class="reportsStatsTable" border="1" cellpadding="2" cellspacing="0"> ! // <tbody> ! // <tr class="tableHeader"> ! // <td></td> ! // <td>Question Note</td> ! // </tr>'; ! // foreach($allQueNotes as $key => $note) { ! // $xhtml .= "<tr><td>$key</td><td>$note</td></tr>"; ! // } ! // $xhtml .= '</tbody></table>';*/ ! // ! // foreach($allPRTNames as $keyp => $PRT) { ! // ! // $allAnsNotes = array_keys($data[$PRT]); ! // ! // $xhtml .= '<h3>Potential response: '.$PRT.'</h2>'; ! // $xhtml .= '<table class="reportsStatsTable" border="1" cellpadding="2" cellspacing="0"><tbody><tr class="tableHeader"><td></td><td>Raw Mark</td>'; ! // foreach($allQueNotes as $key => $note) { ! // $xhtml .= "<td>$key</td>"; ! // } ! // $xhtml .= "<td>Total</td><td>%</td>"; ! // $xhtml .= '</tr>'; ! // foreach($allAnsNotes as $anote) { ! // $xhtml .= '<tr><td>'.$anote.'</td><td>'.round($RawMark[$PRT][$anote],2).'</td>'; ! // foreach($allQueNotes as $qnote) { ! // $count = $data[$PRT][$anote][$qnote]; ! // $xhtml .= "<td>$count</td>"; ! // } ! // $xhtml .= '<td>'.$summary[$PRT][$anote].'</td>'; ! // $xhtml .= '<td>'.round(100*$summary[$PRT][$anote]/$total[$PRT],1).'</td>'; ! // $xhtml .= '</tr>'; ! // } ! // $xhtml .= '</tbody></table>'; ! // ! // } ! // } ! // ! // return $xhtml; ! // } ! // ! // /** ! // * Displays the number of marks per for a question and the average. ! // * Takes all attempts into account ! // * ! // * ! // */ ! // public function marksStatistics($qid) ! // { ! // $sql = "SELECT PRTName , ModMark , COUNT( ModMark ) AS Count ! // FROM attempt_meta_PRT, display_cache ! // WHERE display_cache.qID = $qid ! // AND display_cache.id = attempt_meta_PRT.CacheID ! // GROUP BY ModMark ! // ORDER BY PRTName "; ! // ! // $this->connect(); ! // $this->query($sql); ! // $this->disconnect(); ! // ! // $no = $this->noRows(); ! // ! // //echo $sql; ! // ! // $xhtml = '<table class="reportsStatsTable" border="1" cellpadding="2" cellspacing="0"> ! // <tbody> ! // <tr> ! // <td>PRT Name</td> ! // <td>Modified Mark</td> ! // <td>Count</td> ! // </tr>'; ! // ! // for($i =0; $i < $no; $i++) ! // { ! // $PRTName = $this->result($i, 'PRTName'); ! // $modMark = $this->result($i, 'ModMark'); ! // $count = $this->result($i, 'Count'); ! // ! // $xhtml .= "<tr> ! // <td>$PRTName</td> ! // <td>$modMark</td> ! // <td>$count</td> ! // </tr>"; ! // ! // } ! // ! // $xhtml .= '</tbody></table>'; ! // ! // return $xhtml; ! // } ! // ! // ! // public function markbookSearch($param) ! // { ! // $startDate = $this->conn->DBTimeStamp(mktime(0,0,0,$param['startMonth'],$param['startDate'],$param['startYear'])); ! // $endDate = $this->conn->DBTimeStamp(mktime(23,59,59,$param['endMonth'],$param['endDate'],$param['endYear'])); //till end of the day ! // ! // $sql = "SELECT questionattempts.AttemptID, QuestionID, UserID, PRTName, attempt_meta_PRT.RawMark, ModMark ! // FROM questionattempts questionattempts, attempt_meta_PRT attempt_meta_PRT ! // WHERE ! // (questionattempts.AttemptID = attempt_meta_PRT.AttemptID) ! // AND ! // (questionattempts.TimeStamp >= $startDate) ! // AND ! // (questionattempts.TimeStamp <= $endDate)"; ! // ! // //set question Id selector ! // if($param["questionSelector"] != '') //ie != all ! // { ! // $qid = $param["questionSelector"]; ! // $sql .= "AND ! // (questionattempts.QuestionID = $qid)"; ! // } ! // ! // //select a certain student ! // if($param['studentSelector'] != '') ! // { ! // $sql .= " AND (questionattempts.UserID = ".$param['studentSelector'].") "; ! // } ! // ! // //set rawmark query ! // switch($param['rawmarks']) ! // { ! // case 'any': ! // //don't add anything ! // break; ! // ! // case 'zero': ! // $sql .= "AND (attempt_meta_PRT.RawMark = 0.0)"; ! // break; ! // ! // case 'notZero': ! // $sql .= "AND (attempt_meta_PRT.RawMark > 0.0)"; ! // break; ! // ! // case 'notFull': ! // $sql .= "AND (attempt_meta_PRT.RawMark < 1.0)"; ! // break; ! // ! // case 'full': ! // $sql .= "AND (attempt_meta_PRT.RawMark = 1.0)"; ! // break; ! // ! // } ! // ! // //set modmark query ! // switch($param['modmarks']) ! // { ! // case 'any': ! // //don't add anything ! // break; ! // ! // case 'zero': ! // $sql .= "AND (attempt_meta_PRT.ModMark = 0.0)"; ! // break; ! // ! // case 'notZero': ! // $sql .= "AND (attempt_meta_PRT.ModMark > 0.0)"; ! // break; ! // ! // case 'notFull': ! // $sql .= "AND (attempt_meta_PRT.ModMark < 1.0)"; ! // break; ! // ! // case 'full': ! // $sql .= "AND (attempt_meta_PRT.ModMark = 1.0)"; ! // break; ! // ! // } ! // ! // $sql .= " ORDER BY QuestionID, UserID, PRTName"; ! // ! // //echo $sql; ! // $this->query($sql); ! // ! // $no = $this->noRows(); ! // $resultsArray = array(); ! // for($i=0; $i < $no; $i++) ! // { ! // $attemptId = $this->result($i, 'AttemptID'); ! // $questionId = $this->result($i, 'QuestionID'); ! // $userId = $this->result($i, 'UserID'); ! // $PRTName = $this->result($i, 'PRTName'); ! // $RawMark = $this->result($i, 'RawMark'); ! // $ModMark = $this->result($i, 'ModMark'); ! // ! // if(!array_key_exists($questionId, $resultsArray) || !array_key_exists($userId, $resultsArray[$questionId])) ! // { ! // $resultsArray[$questionId][$userId] = new MarksAttempt($userId, $questionId); ! // } ! // $resultsArray[$questionId][$userId]->addAttempt($attemptId, $PRTName, $RawMark, $ModMark); ! // } ! // ! // return $resultsArray; ! // } ! // ! } ! ! ?> \ No newline at end of file --- 418,449 ---- return $answerNotes; } ! ! function versions($question) { ! $sql = "SELECT latestVersion, questionID ! FROM stackquestion, question_lines ! WHERE line = SELECT line FROM stackquestion WHERE questionID = $question ! ORDER BY latestVersion DESC"; ! ! $this->connect(); ! $this->query($sql); ! $this->disconnect(); ! ! for ($i=0; $i < $this->noRows(); $i+) { ! $versions[] = array( ! 'version' => $this->result($i, 'latestVersion'); ! 'id' => $this->result($i, 'quesitonID'); ! ) ! } ! return $versions; ! } ! ! function appendTwoFields($arrayOfArrays) { ! foreach ($arrayOfArrays as $key => $array) { ! $array[] = ''; ! $array[] = ''; ! $arrayOfArrays[$key] = $array; ! } ! return $arrayOfArrays; ! } ! ! } \ No newline at end of file |
Update of /cvsroot/stack/stack-dev/other In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv29766/other Modified Files: Tag: question_reporting load.js jquery.js Added Files: Tag: question_reporting jquery.dataTables.js jquery.ui.js flyfeedback.js Removed Files: Tag: question_reporting jquery.ui.min.js jquery.dataTables.min.js Log Message: Merging from the current HEAD into question_reporting. Apologies in advance if this all goes horribly wrong. Index: jquery.js =================================================================== RCS file: /cvsroot/stack/stack-dev/other/jquery.js,v retrieving revision 1.1 retrieving revision 1.1.2.1 diff -C2 -d -r1.1 -r1.1.2.1 *** jquery.js 22 Oct 2009 17:37:56 -0000 1.1 --- jquery.js 22 Nov 2010 23:05:45 -0000 1.1.2.1 *************** *** 1,19 **** ! /* ! * jQuery JavaScript Library v1.3.2 * http://jquery.com/ * ! * Copyright (c) 2009 John Resig ! * Dual licensed under the MIT and GPL licenses. ! * http://docs.jquery.com/License * ! * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009) ! * Revision: 6246 ! */ ! (function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F<J;F++){var G=M[F];if(G.selected){K=o(G).val();if(H){return K}L.push(K)}}return L}return(E.value||"").replace(/\r/g,"")}return g}if(typeof K==="number"){K+=""}return this.each(function(){if(this.nodeType!=1){return}if(o.isArray(K)&&/radio|checkbox/.test(this.type)){this.checked=(o.inArray(this.value,K)>=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G<E;G++){L.call(K(this[G],H),this.length>1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H<I;H++){if((G=arguments[H])!=null){for(var F in G){var K=J[F],L=G[F];if(J===L){continue}if(E&&L&&typeof L==="object"&&!L.nodeType){J[F]=o.extend(E,K||(L.length!=null?[]:{}),L)}else{if(L!==g){J[F]=L}}}}}return J};var b=/z-?index|font-?weight|opacity|zoom|line-?height/i,q=document.defaultView||{},s=Object.prototype.toString;o.extend({noConflict:function(E){l.$=p;if(E){l.jQuery=y}return o},isFunction:function(E){return s.call(E)==="[object Function]"},isArray:function(E){return s.call(E)==="[object Array]"},isXMLDoc:function(E){return E.nodeType===9&&E.documentElement.nodeName!=="HTML"||!!E.ownerDocument&&o.isXMLDoc(E.ownerDocument)},globalEval:function(G){if(G&&/\S/.test(G)){var F=document.getElementsByTagName("head")[0]||document.documentElement,E=document.createElement("script");E.type="text/javascript";if(o.support.scriptEval){E.appendChild(document.createTextNode(G))}else{E.text=G}F.insertBefore(E,F.firstChild);F.removeChild(E)}},nodeName:function(F,E){return F.nodeName&&F.nodeName.toUpperCase()==E.toUpperCase()},each:function(G,K,F){var E,H=0,I=G.length;if(F){if(I===g){for(E in G){if(K.apply(G[E],F)===false){break}}}else{for(;H<I;){if(K.apply(G[H++],F)===false){break}}}}else{if(I===g){for(E in G){if(K.call(G[E],E,G[E])===false){break}}}else{for(var J=G[0];H<I&&K.call(J,H,J)!==false;J=G[++H]){}}}return G},prop:function(H,I,G,F,E){if(o.isFunction(I)){I=I.call(H,F)}return typeof I==="number"&&G=="curCSS"&&!b.test(E)?I+"px":I},className:{add:function(E,F){o.each((F||"").split(/\s+/),function(G,H){if(E.nodeType==1&&!o.className.has(E.className,H)){E.className+=(E.className?" ":"")+H}})},remove:function(E,F){if(E.nodeType==1){E.className=F!==g?o.grep(E.className.split(/\s+/),function(G){return !o.className.has(F,G)}).join(" "):""}},has:function(F,E){return F&&o.inArray(E,(F.className||F).toString().split(/\s+/))>-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+"></"+T+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!O.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!O.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!O.indexOf("<td")||!O.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!O.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!o.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/<tbody/i.test(S),N=!O.indexOf("<table")&&!R?L.firstChild&&L.firstChild.childNodes:Q[1]=="<table>"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E<F;E++){if(H[E]===G){return E}}return -1},merge:function(H,E){var F=0,G,I=H.length;if(!o.support.getAll){while((G=E[F++])!=null){if(G.nodeType!=8){H[I++]=G}}}else{while((G=E[F++])!=null){H[I++]=G}}return H},unique:function(K){var F=[],E={};try{for(var G=0,H=K.length;G<H;G++){var J=o.data(K[G]);if(!E[J]){E[J]=true;F.push(K[G])}}}catch(I){F=K}return F},grep:function(F,J,E){var G=[];for(var H=0,I=F.length;H<I;H++){if(!E!=!J(F[H],H)){G.push(F[H])}}return G},map:function(E,J){var F=[];for(var G=0,H=E.length;G<H;G++){var I=J(E[G],G);if(I!=null){F[F.length]=I}}return F.concat.apply([],F)}});var C=navigator.userAgent.toLowerCase();o.browser={version:(C.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(C),opera:/opera/.test(C),msie:/msie/.test(C)&&!/opera/.test(C),mozilla:/mozilla/.test(C)&&!/(compatible|webkit)/.test(C)};o.each({parent:function(E){return E.parentNode},parents:function(E){return o.dir(E,"parentNode")},next:function(E){return o.nth(E,2,"nextSibling")},prev:function(E){return o.nth(E,2,"previousSibling")},nextAll:function(E){return o.dir(E,"nextSibling")},prevAll:function(E){return o.dir(E,"previousSibling")},siblings:function(E){return o.sibling(E.parentNode.firstChild,E)},children:function(E){return o.sibling(E.firstChild)},contents:function(E){return o.nodeName(E,"iframe")?E.contentDocument||E.contentWindow.document:o.makeArray(E.childNodes)}},function(E,F){o.fn[E]=function(G){var H=o.map(this,F);if(G&&typeof G=="string"){H=o.multiFilter(G,H)}return this.pushStack(o.unique(H),E,G)}});o.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(E,F){o.fn[E]=function(G){var J=[],L=o(G);for(var K=0,H=L.length;K<H;K++){var I=(K>0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}}); ! /* ! * Sizzle CSS Selector Engine - v0.9.3 ! * Copyright 2009, The Dojo Foundation ! * Released under the MIT, BSD, and GPL Licenses. ! * More information: http://sizzlejs.com/ */ ! (function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa<ab.length;aa++){if(ab[aa]===ab[aa-1]){ab.splice(aa--,1)}}}}}return ab};F.matches=function(T,U){return F(T,null,null,U)};F.find=function(aa,T,ab){var Z,X;if(!aa){return[]}for(var W=0,V=I.order.length;W<V;W++){var Y=I.order[W],X;if((X=I.match[Y].exec(aa))){var U=RegExp.leftContext;if(U.substr(U.length-1)!=="\\"){X[1]=(X[1]||"").replace(/\\/g,"");Z=I.find[Y](X,T,ab);if(Z!=null){aa=aa.replace(I.match[Y],"");break}}}}if(!Z){Z=T.getElementsByTagName("*")}return{set:Z,expr:aa}};F.filter=function(ad,ac,ag,W){var V=ad,ai=[],aa=ac,Y,T,Z=ac&&ac[0]&&Q(ac[0]);while(ad&&ac.length){for(var ab in I.filter){if((Y=I.match[ab].exec(ad))!=null){var U=I.filter[ab],ah,af;T=false;if(aa==ai){ai=[]}if(I.preFilter[ab]){Y=I.preFilter[ab](Y,aa,ag,ai,W,Z);if(!Y){T=ah=true}else{if(Y===true){continue}}}if(Y){for(var X=0;(af=aa[X])!=null;X++){if(af){ah=U(af,Y,X,aa);var ae=W^!!ah;if(ag&&ah!=null){if(ae){T=true}else{aa[X]=false}}else{if(ae){ai.push(af);T=true}}}}}if(ah!==g){if(!ag){aa=ai}ad=ad.replace(I.match[ab],"");if(!T){return[]}break}}}if(ad==V){if(T==null){throw"Syntax error, unrecognized expression: "+ad}else{break}}V=ad}return aa};var I=F.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(T){return T.getAttribute("href")}},relative:{"+":function(aa,T,Z){var X=typeof T==="string",ab=X&&!/\W/.test(T),Y=X&&!ab;if(ab&&!Z){T=T.toUpperCase()}for(var W=0,V=aa.length,U;W<V;W++){if((U=aa[W])){while((U=U.previousSibling)&&U.nodeType!==1){}aa[W]=Y||U&&U.nodeName===T?U||false:U===T}}if(Y){F.filter(T,aa,true)}},">":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){var W=Y.parentNode;Z[V]=W.nodeName===U?W:false}}}else{for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){Z[V]=X?Y.parentNode:Y.parentNode===U}}if(X){F.filter(U,Z,true)}}},"":function(W,U,Y){var V=L++,T=S;if(!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("parentNode",U,V,W,X,Y)},"~":function(W,U,Y){var V=L++,T=S;if(typeof U==="string"&&!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("previousSibling",U,V,W,X,Y)}},find:{ID:function(U,V,W){if(typeof V.getElementById!=="undefined"&&!W){var T=V.getElementById(U[1]);return T?[T]:[]}},NAME:function(V,Y,Z){if(typeof Y.getElementsByName!=="undefined"){var U=[],X=Y.getElementsByName(V[1]);for(var W=0,T=X.length;W<T;W++){if(X[W].getAttribute("name")===V[1]){U.push(X[W])}}return U.length===0?null:U}},TAG:function(T,U){return U.getElementsByTagName(T[1])}},preFilter:{CLASS:function(W,U,V,T,Z,aa){W=" "+W[1].replace(/\\/g,"")+" ";if(aa){return W}for(var X=0,Y;(Y=U[X])!=null;X++){if(Y){if(Z^(Y.className&&(" "+Y.className+" ").indexOf(W)>=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return U<T[3]-0},gt:function(V,U,T){return U>T[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W<T;W++){if(Y[W]===Z){return false}}return true}}}},CHILD:function(T,W){var Z=W[1],U=T;switch(Z){case"only":case"first":while(U=U.previousSibling){if(U.nodeType===1){return false}}if(Z=="first"){return true}U=T;case"last":while(U=U.nextSibling){if(U.nodeType===1){return false}}return true;case"nth":var V=W[2],ac=W[3];if(V==1&&ac==0){return true}var Y=W[0],ab=T.parentNode;if(ab&&(ab.sizcache!==Y||!T.nodeIndex)){var X=0;for(U=ab.firstChild;U;U=U.nextSibling){if(U.nodeType===1){U.nodeIndex=++X}}ab.sizcache=Y}var aa=T.nodeIndex-ac;if(V==0){return aa==0}else{return(aa%V==0&&aa/V>=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V<T;V++){U.push(X[V])}}else{for(var V=0;X[V];V++){U.push(X[V])}}}return U}}var G;if(document.documentElement.compareDocumentPosition){G=function(U,T){var V=U.compareDocumentPosition(T)&4?-1:U===T?0:1;if(V===0){hasDuplicate=true}return V}}else{if("sourceIndex" in document.documentElement){G=function(U,T){var V=U.sourceIndex-T.sourceIndex;if(V===0){hasDuplicate=true}return V}}else{if(document.createRange){G=function(W,U){var V=W.ownerDocument.createRange(),T=U.ownerDocument.createRange();V.selectNode(W);V.collapse(true);T.selectNode(U);T.collapse(true);var X=V.compareBoundaryPoints(Range.START_TO_END,T);if(X===0){hasDuplicate=true}return X}}}}(function(){var U=document.createElement("form"),V="script"+(new Date).getTime();U.innerHTML="<input name='"+V+"'/>";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="<a href='#'></a>";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="<p class='TEST'></p>";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="<div class='test e'></div><div class='test'></div>";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1&&!ac){T.sizcache=Y;T.sizset=W}if(T.nodeName===Z){X=T;break}T=T[U]}ad[W]=X}}}function S(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1){if(!ac){T.sizcache=Y;T.sizset=W}if(typeof Z!=="string"){if(T===Z){X=true;break}}else{if(F.filter(Z,[T]).length>0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z<U;Z++){F(T,V[Z],W)}return F.filter(X,W)};o.find=F;o.filter=F.filter;o.expr=F.selectors;o.expr[":"]=o.expr.filters;F.selectors.filters.hidden=function(T){return T.offsetWidth===0||T.offsetHeight===0};F.selectors.filters.visible=function(T){return T.offsetWidth>0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F<E.length){o.event.proxy(G,E[F++])}return this.click(o.event.proxy(G,function(H){this.lastToggle=(this.lastToggle||0)%F;H.preventDefault();return E[this.lastToggle++].apply(this,arguments)||false}))},hover:function(E,F){return this.mouseenter(E).mouseleave(F)},ready:function(E){B();if(o.isReady){E.call(document,o)}else{o.readyList.push(E)}return this},live:function(G,F){var E=o.event.proxy(F);E.guid+=this.selector+G;o(document).bind(i(G,this.selector),this.selector,E);return this},die:function(F,E){o(document).unbind(i(F,this.selector),E?{guid:E.guid+this.selector+F}:null);return this}});function c(H){var E=RegExp("(^|\\.)"+H.type+"(\\.|$)"),G=true,F=[];o.each(o.data(this,"events").live||[],function(I,J){if(E.test(J.type)){var K=o(H.target).closest(J.data)[0];if(K){F.push({elem:K,fn:J})}}});F.sort(function(J,I){return o.data(J.elem,"closest")-o.data(I.elem,"closest")});o.each(F,function(){if(this.fn.call(this.elem,H,this.fn.data)===false){return(G=false)}});return G}function i(F,E){return["live",F,E.replace(/\./g,"`").replace(/ /g,"|")].join(".")}o.extend({isReady:false,readyList:[],ready:function(){if(!o.isReady){o.isReady=true;if(o.readyList){o.each(o.readyList,function(){this.call(document,o)});o.readyList=null}o(document).triggerHandler("ready")}}});var x=false;function B(){if(x){return}x=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);o.ready()},false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);o.ready()}});if(document.documentElement.doScroll&&l==l.top){(function(){if(o.isReady){return}try{document.documentElement.doScroll("left")}catch(E){setTimeout(arguments.callee,0);return}o.ready()})()}}}o.event.add(l,"load",o.ready)}o.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error").split(","),function(F,E){o.fn[E]=function(G){return G?this.bind(E,G):this.trigger(E)}});o(l).bind("unload",function(){for(var E in o.cache){if(E!=1&&o.cache[E].handle){o.event.remove(o.cache[E].handle.elem)}}});(function(){o.support={};var F=document.documentElement,G=document.createElement("script"),K=document.createElement("div"),J="script"+(new Date).getTime();K.style.display="none";K.innerHTML=' <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var H=K.getElementsByTagName("*"),E=K.getElementsByTagName("a")[0];if(!H||!H.length||!E){return}o.support={leadingWhitespace:K.firstChild.nodeType==3,tbody:!K.getElementsByTagName("tbody").length,objectAll:!!K.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!K.getElementsByTagName("link").length,style:/red/.test(E.getAttribute("style")),hrefNormalized:E.getAttribute("href")==="/a",opacity:E.style.opacity==="0.5",cssFloat:!!E.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};G.type="text/javascript";try{G.appendChild(document.createTextNode("window."+J+"=1;"))}catch(I){}F.insertBefore(G,F.firstChild);if(l[J]){o.support.scriptEval=true;delete l[J]}F.removeChild(G);if(K.attachEvent&&K.fireEvent){K.attachEvent("onclick",function(){o.support.noCloneEvent=false;K.detachEvent("onclick",arguments.callee)});K.cloneNode(true).fireEvent("onclick")}o(function(){var L=document.createElement("div");L.style.width=L.style.paddingLeft="1px";document.body.appendChild(L);o.boxModel=o.support.boxModel=L.offsetWidth===2;document.body.removeChild(L).style.display="none"})})();var w=o.support.cssFloat?"cssFloat":"styleFloat";o.props={"for":"htmlFor","class":"className","float":w,cssFloat:w,styleFloat:w,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};o.fn.extend({_load:o.fn.load,load:function(G,J,K){if(typeof G!=="string"){return this._load(G)}var I=G.indexOf(" ");if(I>=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("<div/>").append(M.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H<F;H++){var E=o.data(this[H],"olddisplay");this[H].style.display=E||"";if(o.css(this[H],"display")==="none"){var G=this[H].tagName,K;if(m[G]){K=m[G]}else{var I=o("<"+G+" />").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H<F;H++){this[H].style.display=o.data(this[H],"olddisplay")||""}return this}},hide:function(H,I){if(H){return this.animate(t("hide",3),H,I)}else{for(var G=0,F=this.length;G<F;G++){var E=o.data(this[G],"olddisplay");if(!E&&E!=="none"){o.data(this[G],"olddisplay",o.css(this[G],"display"))}}for(var G=0,F=this.length;G<F;G++){this[G].style.display="none"}return this}},_toggle:o.fn.toggle,toggle:function(G,F){var E=typeof G==="boolean";return o.isFunction(G)&&o.isFunction(F)?this._toggle.apply(this,arguments):G==null||E?this.each(function(){var H=E?G:o(this).is(":hidden");o(this)[H?"show":"hide"]()}):this.animate(t("toggle",3),G,F)},fadeTo:function(E,G,F){return this.animate({opacity:G},E,F)},animate:function(I,F,H,G){var E=o.speed(F,H,G);return this[E.queue===false?"each":"queue"](function(){var K=o.extend({},E),M,L=this.nodeType==1&&o(this).is(":hidden"),J=this;for(M in I){if(I[M]=="hide"&&L||I[M]=="show"&&!L){return K.complete.call(this)}if((M=="height"||M=="width")&&this.style){K.display=o.css(this,"display");K.overflow=this.style.overflow}}if(K.overflow!=null){this.style.overflow="hidden"}K.curAnim=o.extend({},I);o.each(I,function(O,S){var R=new o.fx(J,K,O);if(/toggle|show|hide/.test(S)){R[S=="toggle"?L?"show":"hide":S](I)}else{var Q=S.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),T=R.cur(true)||0;if(Q){var N=parseFloat(Q[2]),P=Q[3]||"px";if(P!="px"){J.style[O]=(N||1)+P;T=((N||1)/R.cur(true))*T;J.style[O]=T+P}if(Q[1]){N=((Q[1]=="-="?-1:1)*N)+T}R.custom(T,N,P)}else{R.custom(T,S,"")}}});return true})},stop:function(F,E){var G=o.timers;if(F){this.queue([])}this.each(function(){for(var H=G.length-1;H>=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J<K.length;J++){if(!K[J]()){K.splice(J--,1)}}if(!K.length){clearInterval(n);n=g}},13)}},show:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());o(this.elem).show()},hide:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(H){var G=e();if(H||G>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})(); \ No newline at end of file --- 1,154 ---- ! /*! ! * jQuery JavaScript Library v1.4.2 * http://jquery.com/ * ! * Copyright 2010, John Resig ! * Dual licensed under the MIT or GPL Version 2 licenses. ! * http://jquery.org/license * ! * Includes Sizzle.js ! * http://sizzlejs.com/ ! * Copyright 2010, The Dojo Foundation ! * Released under the MIT, BSD, and GPL Licenses. ! * ! * Date: Sat Feb 13 22:33:48 2010 -0500 */ ! (function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o<i;o++)e(a[o],b,f?d.call(a[o],o,e(a[o],b)):d,j);return a}return i? ! e(a[0],b):w}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function na(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function oa(a){var b,d=[],f=[],e=arguments,j,i,o,k,n,r;i=c.data(this,"events");if(!(a.liveFired===this||!i||!i.live||a.button&&a.type==="click")){a.liveFired=this;var u=i.live.slice(0);for(k=0;k<u.length;k++){i=u[k];i.origType.replace(O,"")===a.type?f.push(i.selector):u.splice(k--,1)}j=c(a.target).closest(f,a.currentTarget);n=0;for(r= ! j.length;n<r;n++)for(k=0;k<u.length;k++){i=u[k];if(j[n].selector===i.selector){o=j[n].elem;f=null;if(i.preType==="mouseenter"||i.preType==="mouseleave")f=c(a.relatedTarget).closest(i.selector)[0];if(!f||f!==o)d.push({elem:o,handleObj:i})}}n=0;for(r=d.length;n<r;n++){j=d[n];a.currentTarget=j.elem;a.data=j.handleObj.data;a.handleObj=j.handleObj;if(j.handleObj.origHandler.apply(j.elem,e)===false){b=false;break}}return b}}function pa(a,b){return"live."+(a&&a!=="*"?a+".":"")+b.replace(/\./g,"`").replace(/ /g, ! "&")}function qa(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function ra(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var j in f)for(var i in f[j])c.event.add(this,j,f[j][i],f[j][i].data)}}})}function sa(a,b,d){var f,e,j;b=b&&b[0]?b[0].ownerDocument||b[0]:s;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===s&&!ta.test(a[0])&&(c.support.checkClone||!ua.test(a[0]))){e= ! true;if(j=c.fragments[a[0]])if(j!==1)f=j}if(!f){f=b.createDocumentFragment();c.clean(a,b,f,d)}if(e)c.fragments[a... [truncated message content] |
From: Ben H. <bdv...@us...> - 2010-11-22 23:06:32
|
Update of /cvsroot/stack/stack-dev/opaque/minimalClient In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv29766/opaque/minimalClient Modified Files: Tag: question_reporting minimalClient.php Log Message: Merging from the current HEAD into question_reporting. Apologies in advance if this all goes horribly wrong. Index: minimalClient.php =================================================================== RCS file: /cvsroot/stack/stack-dev/opaque/minimalClient/minimalClient.php,v retrieving revision 1.8 retrieving revision 1.8.2.1 diff -C2 -d -r1.8 -r1.8.2.1 *** minimalClient.php 8 Oct 2009 09:19:51 -0000 1.8 --- minimalClient.php 22 Nov 2010 23:05:51 -0000 1.8.2.1 *************** *** 19,27 **** $engine_URL = 'http://127.0.0.1/stack-dev/opaque/soapServer.php'; ! $passkey = 'MTI3NjU2'; // See config.php "passkey", or the testsuite throught the web interface. // NOTE: You *must* have a space before the id number. This is weird, and I can't explain it. ! $remoteid = ' 50'; // The questionID number of the stackquestion ! $selection_seed = 1; // This is used to select a random version from the items. $userID = 1; --- 19,27 ---- $engine_URL = 'http://127.0.0.1/stack-dev/opaque/soapServer.php'; ! $passkey = 'Mzg3NTM5'; // See config.php "passkey", or the testsuite throught the web interface. // NOTE: You *must* have a space before the id number. This is weird, and I can't explain it. ! $remoteid = ' 3'; // The questionID number of the stackquestion ! $selection_seed = 2; // This is used to select a random version from the items. $userID = 1; *************** *** 102,106 **** <script> document.getElementById('stacksubmit').style.display = 'inline'; - document.getElementById('stackfinish').style.display = 'inline'; </script> <input type="hidden" id="session" name="session" value="<?php echo $session ?>"><p> --- 102,105 ---- *************** *** 108,112 **** <hr /><p><a href="minimalClient.php">Start again</a></p> <?php ! if(isset($response)) echo '<pre>$response:'.print_r($response, true).'</pre>'; //echo '<pre>$_POST:'.print_r($response, true).'</pre>'; --- 107,111 ---- <hr /><p><a href="minimalClient.php">Start again</a></p> <?php ! //if(isset($response)) echo '<pre>$response:'.print_r($response, true).'</pre>'; //echo '<pre>$_POST:'.print_r($response, true).'</pre>'; |
Update of /cvsroot/stack/stack-dev/sample_questions In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv29766/sample_questions Modified Files: Tag: question_reporting interaction_element_test.xml test_7.xml test_3.xml Added Files: Tag: question_reporting test_10.xml test-venn.xml Removed Files: Tag: question_reporting demo_venn.xml Log Message: Merging from the current HEAD into question_reporting. Apologies in advance if this all goes horribly wrong. Index: interaction_element_test.xml =================================================================== RCS file: /cvsroot/stack/stack-dev/sample_questions/interaction_element_test.xml,v retrieving revision 1.6 retrieving revision 1.6.2.1 diff -C2 -d -r1.6 -r1.6.2.1 *** interaction_element_test.xml 26 Aug 2009 16:55:33 -0000 1.6 --- interaction_element_test.xml 22 Nov 2010 23:05:45 -0000 1.6.2.1 *************** *** 1,18 **** <?xml version="1.0" encoding="UTF-8"?> ! <mathQuiz version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:lom="http://www.imsglobal.org/xsd/imsmd_v1p2"><assessmentItem version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:lom="http://www.imsglobal.org/xsd/imsmd_v1p2"><questionCasValues><questionStem type="CasText"><castext>Type in the algebraic expression ! \[ @ta@ \] ! #ans# <IEfeedback>ans</IEfeedback><PRTfeedback>1</PRTfeedback> ! <p>The algebraic input box is the default input option. It can be used for all other kinds, for example ! <ul> ! <li> Sets <tt>{1,2,3}</tt> </li> ! <li> List <tt>[1,2,3]</tt> </li> ! <li> Martices <tt>matrix([1,2],[3,4])</tt> </li> ! </ul> ! </p></castext><forbidFloats>false</forbidFloats><simplify>true</simplify></questionStem><questionVariables type="RawKeyVal"><rawKeyVals>ta = 1/(1+x^2)</rawKeyVals><forbidFloats>false</forbidFloats><simplify>true</simplify></questionVariables><workedSolution type="CasText"><castext></castext><forbidFloats>false</forbidFloats><simplify>true</simplify></workedSolution><questionNote type="CasText"><castext></castext><forbidFloats>false</forbidFloats><simplify>true</simplify></questionNote></questionCasValues><questionparts><questionpart><name>ans</name><inputType type="Meta"><selection>Algebraic Input</selection><default>Algebraic Input</default><values/></inputType><boxsize>15</boxsize><teachersAns type="CasString"><casString>ta</casString><forbidFloats>false</forbidFloats><simplify>true</simplify></teachersAns><studentAnsKey>ans</studentAnsKey><syntax type="Meta"><selection></selection><default></default><values/></syntax><stackoption><name>formalSyntax</name><type>list</type><default>true</default><values><value>true</value><value>false</value></values><casKey></casKey><casType></casType><selected>true</selected></stackoption><stackoption><name>forbidFloats</name><type>list</type><default>true</default><values><value>true</value><value>false</value></values><casKey>OPT_NoFloats</casKey><casType>ex</casType><selected>true</selected></stackoption><stackoption><name>insertStars</name><type>list</type><default>false</default><values><value>true</value><value>false</value></values><casKey></casKey><casType></casType><selected>false</selected></stackoption><stackoption><name>sameType</name><type>list</type><default>true</default><values><value>true</value><value>false</value></values><casKey></casKey><casType></casType><selected>true</selected></stackoption><stackoption><name>lowestTerms</name><type>list</type><default>true</default><values><value>true</value><value>false</value></values><casKey>OPT_LowestTerms</casKey><casType>ex</casType><selected>true</selected></stackoption><inputTypesParameters/></questionpart></questionparts><PotentialResponseTrees><PotentialResponseTree><prtname>PotResTree_1</prtname><questionValue>1</questionValue><autoSimplify>true</autoSimplify><feedbackVariables></feedbackVariables><description type="Meta"><selection></selection><default></default><values/></description><PotentialResponses><PR id="0"><answerTest>AlgEquiv</answerTest><teachersAns>ta</teachersAns><studentAns>ans</studentAns><testoptions></testoptions><quietAnsTest></quietAnsTest><true><rawModMark>=</rawModMark><rawMark>1</rawMark><feedback></feedback><ansnote>1-0-T </ansnote><nextPR>-1</nextPR></true><false><rawModMark>=</rawModMark><rawMark>0</rawMark><feedback></feedback><ansnote>1-0-F </ansnote><nextPR>-1</nextPR></false><teacherNote></teacherNote></PR></PotentialResponses></PotentialResponseTree></PotentialResponseTrees><MetaData><dc:Publisher stackname="lastUserEditor" type="Meta"><selection>2</selection><default></default><values/></dc:Publisher><dc:language stackname="language" type="Meta"><selection>en</selection><default>en</default><values><value key="en">en</value><value key="fr">fr</value><value key="nl">nl</value><value key="es">es</value><value key="unspecified">Unspecified</value></values></dc:language><dc:title stackname="questionName" type="Meta"><selection>interaction_element_test_alg</selection><default></default><values/></dc:title><dc:description stackname="questionDescription" type="Meta"><selection></selection><default></default><values/></dc:description><dc:publisher stackname="questionPublisher" type="Meta"><selection>http://localhost/stack-dev</selection><default>http://stack.bham.ac.uk/new-stack-dev</default><values/></dc:publisher><dc:format stackname="questionFormat" type="Meta"><selection>text/xml; charset="utf-8"</selection><default>text/xml; charset="utf-8"</default><values><value key="0">application</value><value key="1">audio</value><value key="2">image</value><value key="3">message</value><value key="4">model</value><value key="5">text</value><value key="6">video</value><value key="7">multipart</value></values></dc:format><lom:context stackname="questionLearningContext" type="Meta"><selection>unspecified</selection><default>unspecified</default><values><value key="PrimaryEducation">Primary Education</value><value key="SecondaryEducation">Secondary Education</value><value key="HigherEducation">Higher Education</value><value key="UniversityFirstCycle">University First Cycle</value><value key="UniversitySecondCycle">University Second Cycle</value><value key="UniversityPostGrade">University Post Grade</value><value key="TechnicalSchoolFirstCycle">Technical School First Cycle</value><value key="TechnicalSchoolSecondCycle">Technical School Second Cycle</value><value key="ProfessionalFormation">Professional Formation</value><value key="ContinuousFormation">Continuous Formation</value><value key="VocationalTraining">Vocational Training</value><value key="unspecified">Unspecified</value></values></lom:context><lom:difficulty stackname="questionDifficulty" type="Meta"><selection>unspecified</selection><default>unspecified</default><values><value key="VeryEasy">Very Easy</value><value key="Easy">Easy</value><value key="Medium">Medium</value><value key="Difficult">Difficult</value><value key="VeryDifficult">Very Difficult</value><value key="unspecified">Unspecified</value></values></lom:difficulty><questionCompetency type="Meta"><selection>unspecified</selection><default>unspecified</default><values><value key="Think">Think</value><value key="Argue">Argue</value><value key="Solve">Solve</value><value key="Represent">Represent</value><value key="Language">Language</value><value key="Communicate">Communicate</value><value key="Tools">Tools</value><value key="unspecified">Unspecified</value></values></questionCompetency><questionCompentencyLevel type="Meta"><selection>unspecified</selection><default>unspecified</default><values><value key="Elementary">Elementary</value><value key="SimpleConceptual">Simple conceptual</value><value key="Multi-step">Multi-step</value><value key="Complex">Complex</value><value key="unspecified">Unspecified</value></values></questionCompentencyLevel><lom:typicallearningtime stackname="questionTimeAllocated" type="Meta"><selection>00:00:00</selection><default>00:00:00</default><values/></lom:typicallearningtime><dc:rights stackname="questionRights" type="Meta"><selection>http://www.gnu.org/copyleft/gpl.html</selection><default>http://www.gnu.org/copyleft/gpl.html</default><values/></dc:rights><questionExerciseType type="Meta"><selection>AlgebraicExpression</selection><default>AlgebraicExpression</default><values><value key="AlgebraicExpression">Algebraic Expression</value><value key="MCQSingleAnswer">MCQ Single Answer</value><value key="MCQMultpleAnswer">MCQ Multiple Answer</value><value key="FillInBlank">Fill in blank</value><value key="Unspecified">Unspecified</value></values></questionExerciseType><dc:date stackname="questionDateLastEdited" type="Meta"><selection>2009-07-03 21:18:46</selection><default>2009-07-03 21:18:43</default><values/></dc:date><lom:status stackname="questionStatus" type="Meta"><selection>Draft</selection><default>Draft</default><values><value key="Draft">Draft</value><value key="Deployed">Deployed</value><value key="Buggy">Buggy</value></values></lom:status><published type="Meta"><selection>Published</selection><default>Unpublished</default><values><value key="Unpublished">Unpublished</value><value key="Published">Published</value><value key="Private">Private</value></values></published><lom:keyword stackname="keywords" type="Meta"><selection>demo, test</selection><default>demo, test</default><values/></lom:keyword></MetaData><ItemOptions><stackoption><name>Display</name><type>list</type><default>LaTeX</default><values><value>LaTeX</value><value>MathML</value></values><casKey>OPT_OUTPUT</casKey><casType>string</casType><selected>LaTeX</selected></stackoption><stackoption><name>MultiplicationSign</name><type>list</type><default>dot</default><values><value>(none)</value><value>dot</value><value>cross</value></values><casKey>make_multsgn</casKey><casType>fun</casType><selected>dot</selected></stackoption><stackoption><name>ComplexNo</name><type>list</type><default>true</default><values><value>true</value><value>false</value></values><casKey>make_complexI</casKey><casType>fun</casType><selected>true</selected></stackoption><stackoption><name>Floats</name><type>list</type><default>true</default><values><value>true</value><value>false</value></values><casKey>OPT_NoFloats</casKey><casType>ex</casType><selected>true</selected></stackoption><stackoption><name>SqrtSign</name><type>list</type><default>true</default><values><value>true</value><value>false</value></values><casKey>sqrtdispflag</casKey><casType>ex</casType><selected>true</selected></stackoption><stackoption><name>Simplify</name><type>list</type><default>true</default><values><value>true</value><value>false</value></values><casKey>simp</casKey><casType>ex</casType><selected>true</selected></stackoption><stackoption><name>MarkModMethod</name><type>list</type><default>Penalty</default><values><value>Penalty</value><value>First Answer</value><value>Last Answer</value></values><casKey></casKey><casType></casType><selected>Penalty</selected></stackoption><stackoption><name>AssumePos</name><type>list</type><default>false</default><values><value>true</value><value>false</value></values><casKey>assume_pos</casKey><casType>ex</casType><selected>false</selected></stackoption><stackoption><name>TeacherEmail</name><type>string</type><default></default><casKey></casKey><casType></casType><selected></selected></stackoption><stackoption><name>Feedback</name><type>list</type><default>TGS</default><values><value>TGS</value><value>TG</value><value>GS</value><value>T</value><value>G</value><value>S</value><value>none</value></values><casKey></casKey><casType></casType><selected>TGS</selected></stackoption><stackoption><name>FeedbackGenericCorrect</name><type>html</type><default><span class='correct'>Correct answer, well done.</span></default><casKey></casKey><casType></casType><selected><span class='correct'>Correct answer, well done.</span></selected></stackoption><stackoption><name>FeedbackGenericIncorrect</name><type>html</type><default><span class='incorrect'>Incorrect answer.</span></default><casKey></casKey><casType></casType><selected><span class='incorrect'>Incorrect answer.</span></selected></stackoption><stackoption><name>FeedbackGenericPCorrect</name><type>html</type><default><span class='partially'>Your answer is partially correct.</span></default><casKey></casKey><casType></casType><selected><span class='partially'>Your answer is partially correct.</span></selected></stackoption></ItemOptions><ItemTests><test><col><key>IE_ans</key><value>ta</value></col><col><key>PRT_PotResTree_1</key><value>1-0-T </value></col></test><test><col><key>IE_ans</key><value>0</value></col><col><key>PRT_PotResTree_1</key><value>1-0-F </value></col></test></ItemTests></assessmentItem><assessmentItem version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:lom="http://www.imsglobal.org/xsd/imsmd_v1p2"><questionCasValues><questionStem type="CasText"><castext>Enter \[ @ta@ \] #ans# <IEfeedback>ans</IEfeedback><PRTfeedback>1</PRTfeedback> ! <p>This is a simple true/false dropdown. The "Not answered" option is important in multi-part questions where a student might like to go back and only answer another part.</p></castext><forbidFloats>false</forbidFloats><simplify>true</simplify></questionStem><questionVariables type="RawKeyVal"><rawKeyVals>ta = true</rawKeyVals><forbidFloats>false</forbidFloats><simplify>true</simplify></questionVariables><workedSolution type="CasText"><castext></castext><forbidFloats>false</forbidFloats><simplify>true</simplify></workedSolution><questionNote type="CasText"><castext></castext><forbidFloats>false</forbidFloats><simplify>true</simplify></questionNote></questionCasValues><questionparts><questionpart><name>ans</name><inputType type="Meta"><selection>True/False</selection><default>Algebraic Input</default><values/></inputType><boxsize>15</boxsize><teachersAns type="CasString"><casString>ta</casString><forbidFloats>false</forbidFloats><simplify>true</simplify></teachersAns><studentAnsKey>ans</studentAnsKey><syntax type="Meta"><selection></selection><default></default><values/></syntax><stackoption><name>formalSyntax</name><type>list</type><default>true</default><values><value>true</value><value>false</value></values><casKey></casKey><casType></casType><selected>true</selected></stackoption><stackoption><name>forbidFloats</name><type>list</type><default>true</default><values><value>true</value><value>false</value></values><casKey>OPT_NoFloats</casKey><casType>ex</casType><selected>true</selected></stackoption><stackoption><name>insertStars</name><type>list</type><default>false</default><values><value>true</value><value>false</value></values><casKey></casKey><casType></casType><selected>false</selected></stackoption><stackoption><name>sameType</name><type>list</type><default>true</default><values><value>true</value><value>false</value></values><casKey></casKey><casType></casType><selected>true</selected></stackoption><stackoption><name>lowestTerms</name><type>list</type><default>true</default><values><value>true</value><value>false</value></values><casKey>OPT_LowestTerms</casKey><casType>ex</casType><selected>true</selected></stackoption><inputTypesParameters/></questionpart></questionparts><PotentialResponseTrees><PotentialResponseTree><prtname>PotResTree_1</prtname><questionValue>1</questionValue><autoSimplify>true</autoSimplify><feedbackVariables></feedbackVariables><description type="Meta"><selection></selection><default></default><values/></description><PotentialResponses><PR id="0"><answerTest>AlgEquiv</answerTest><teachersAns>ta</teachersAns><studentAns>ans</studentAns><testoptions></testoptions><quietAnsTest></quietAnsTest><true><rawModMark>=</rawModMark><rawMark>1</rawMark><feedback></feedback><ansnote>1-0-T </ansnote><nextPR>-1</nextPR></true><false><rawModMark>=</rawModMark><rawMark>0</rawMark><feedback></feedback><ansnote>1-0-F </ansnote><nextPR>-1</nextPR></false><teacherNote></teacherNote></PR></PotentialResponses></PotentialResponseTree></PotentialResponseTrees><MetaData><dc:Publisher stackname="lastUserEditor" type="Meta"><selection>2</selection><default></default><values/></dc:Publisher><dc:language stackname="language" type="Meta"><selection>en</selection><default>en</default><values><value key="en">en</value><value key="fr">fr</value><value key="nl">nl</value><value key="es">es</value><value key="unspecified">Unspecified</value></values></dc:language><dc:title stackname="questionName" type="Meta"><selection>interaction_element_test_TrueFalse</selection><default></default><values/></dc:title><dc:description stackname="questionDescription" type="Meta"><selection></selection><default></default><values/></dc:description><dc:publisher stackname="questionPublisher" type="Meta"><selection>http://localhost/stack-dev</selection><default>http://stack.bham.ac.uk/new-stack-dev</default><values/></dc:publisher><dc:format stackname="questionFormat" type="Meta"><selection>text/xml; charset="utf-8"</selection><default>text/xml; charset="utf-8"</default><values><value key="0">application</value><value key="1">audio</value><value key="2">image</value><value key="3">message</value><value key="4">model</value><value key="5">text</value><value key="6">video</value><value key="7">multipart</value></values></dc:format><lom:context stackname="questionLearningContext" type="Meta"><selection>unspecified</selection><default>unspecified</default><values><value key="PrimaryEducation">Primary Education</value><value key="SecondaryEducation">Secondary Education</value><value key="HigherEducation">Higher Education</value><value key="UniversityFirstCycle">University First Cycle</value><value key="UniversitySecondCycle">University Second Cycle</value><value key="UniversityPostGrade">University Post Grade</value><value key="TechnicalSchoolFirstCycle">Technical School First Cycle</value><value key="TechnicalSchoolSecondCycle">Technical School Second Cycle</value><value key="ProfessionalFormation">Professional Formation</value><value key="ContinuousFormation">Continuous Formation</value><value key="VocationalTraining">Vocational Training</value><value key="unspecified">Unspecified</value></values></lom:context><lom:difficulty stackname="questionDifficulty" type="Meta"><selection>unspecified</selection><default>unspecified</default><values><value key="VeryEasy">Very Easy</value><value key="Easy">Easy</value><value key="Medium">Medium</value><value key="Difficult">Difficult</value><value key="VeryDifficult">Very Difficult</value><value key="unspecified">Unspecified</value></values></lom:difficulty><questionCompetency type="Meta"><selection>unspecified</selection><default>unspecified</default><values><value key="Think">Think</value><value key="Argue">Argue</value><value key="Solve">Solve</value><value key="Represent">Represent</value><value key="Language">Language</value><value key="Communicate">Communicate</value><value key="Tools">Tools</value><value key="unspecified">Unspecified</value></values></questionCompetency><questionCompentencyLevel type="Meta"><selection>unspecified</selection><default>unspecified</default><values><value key="Elementary">Elementary</value><value key="SimpleConceptual">Simple conceptual</value><value key="Multi-step">Multi-step</value><value key="Complex">Complex</value><value key="unspecified">Unspecified</value></values></questionCompentencyLevel><lom:typicallearningtime stackname="questionTimeAllocated" type="Meta"><selection>00:00:00</selection><default>00:00:00</default><values/></lom:typicallearningtime><dc:rights stackname="questionRights" type="Meta"><selection>http://www.gnu.org/copyleft/gpl.html</selection><default>http://www.gnu.org/copyleft/gpl.html</default><values/></dc:rights><questionExerciseType type="Meta"><selection>AlgebraicExpression</selection><default>AlgebraicExpression</default><values><value key="AlgebraicExpression">Algebraic Expression</value><value key="MCQSingleAnswer">MCQ Single Answer</value><value key="MCQMultpleAnswer">MCQ Multiple Answer</value><value key="FillInBlank">Fill in blank</value><value key="Unspecified">Unspecified</value></values></questionExerciseType><dc:date stackname="questionDateLastEdited" type="Meta"><selection>2009-07-03 21:18:48</selection><default>2009-07-03 21:18:43</default><values/></dc:date><lom:status stackname="questionStatus" type="Meta"><selection>Draft</selection><default>Draft</default><values><value key="Draft">Draft</value><value key="Deployed">Deployed</value><value key="Buggy">Buggy</value></values></lom:status><published type="Meta"><selection>Published</selection><default>Unpublished</default><values><value key="Unpublished">Unpublished</value><value key="Published">Published</value><value key="Private">Private</value></values></published><lom:keyword stackname="keywords" type="Meta"><selection>demo, test</selection><default>demo, test</default><values/></lom:keyword></MetaData><ItemOptions><stackoption><name>Display</name><type>list</type><default>LaTeX</default><values><value>LaTeX</value><value>MathML</value></values><casKey>OPT_OUTPUT</casKey><casType>string</casType><selected>LaTeX</selected></stackoption><stackoption><name>MultiplicationSign</name><type>list</type><default>dot</default><values><value>(none)</value><value>dot</value><value>cross</value></values><casKey>make_multsgn</casKey><casType>fun</casType><selected>dot</selected></stackoption><stackoption><name>ComplexNo</name><type>list</type><default>true</default><values><value>true</value><value>false</value></values><casKey>make_complexI</casKey><casType>fun</casType><selected>true</selected></stackoption><stackoption><name>Floats</name><type>list</type><default>true</default><values><value>true</value><value>false</value></values><casKey>OPT_NoFloats</casKey><casType>ex</casType><selected>true</selected></stackoption><stackoption><name>SqrtSign</name><type>list</type><default>true</default><values><value>true</value><value>false</value></values><casKey>sqrtdispflag</casKey><casType>ex</casType><selected>true</selected></stackoption><stackoption><name>Simplify</name><type>list</type><default>true</default><values><value>true</value><value>false</value></values><casKey>simp</casKey><casType>ex</casType><selected>true</selected></stackoption><stackoption><name>MarkModMethod</name><type>list</type><default>Penalty</default><values><value>Penalty</value><value>First Answer</value><value>Last Answer</value></values><casKey></casKey><casType></casType><selected>Penalty</selected></stackoption><stackoption><name>AssumePos</name><type>list</type><default>false</default><values><value>true</value><value>false</value></values><casKey>assume_pos</casKey><casType>ex</casType><selected>false</selected></stackoption><stackoption><name>TeacherEmail</name><type>string</type><default></default><casKey></casKey><casType></casType><selected></selected></stackoption><stackoption><name>Feedback</name><type>list</type><default>TGS</default><values><value>TGS</value><value>TG</value><value>GS</value><value>T</value><value>G</value><value>S</value><value>none</value></values><casKey></casKey><casType></casType><selected>TGS</selected></stackoption><stackoption><name>FeedbackGenericCorrect</name><type>html</type><default><span class='correct'>Correct answer, well done.</span></default><casKey></casKey><casType></casType><selected><span class='correct'>Correct answer, well done.</span></selected></stackoption><stackoption><name>FeedbackGenericIncorrect</name><type>html</type><default><span class='incorrect'>Incorrect answer.</span></default><casKey></casKey><casType></casType><selected><span class='incorrect'>Incorrect answer.</span></selected></stackoption><stackoption><name>FeedbackGenericPCorrect</name><type>html</type><default><span class='partially'>Your answer is partially correct.</span></default><casKey></casKey><casType></casType><selected><span class='partially'>Your answer is partially correct.</span></selected></stackoption></ItemOptions><ItemTests><test><col><key>IE_ans</key><value>ta</value></col><col><key>PRT_PotResTree_1</key><value>1-0-T </value></col></test><test><col><key>IE_ans</key><value>0</value></col><col><key>PRT_PotResTree_1</key><value>1-0-F </value></col></test></ItemTests></assessmentItem><assessmentItem version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:lom="http://www.imsglobal.org/xsd/imsmd_v1p2"><questionCasValues><questionStem type="CasText"><castext>Enter \[ @ta@ \] #ans# <IEfeedback>ans</IEfeedback> --- 1,22 ---- <?xml version="1.0" encoding="UTF-8"?> ! <mathQuiz version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:lom="http://www.imsglobal.org/xsd/imsmd_v1p2"><assessmentItem version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:lom="http://www.imsglobal.org/xsd/imsmd_v1p2"><questionCasValues><questionStem type="CasText"><castext>What is $30+40$? ! #ans1# ! <IEfeedback>ans1</IEfeedback><PRTfeedback>1</PRTfeedback> ! </castext><forbidFloats>false</forbidFloats><simplify>true</simplify></questionStem><questionVariables type="RawKeyVal"><rawKeyVals></rawKeyVals><forbidFloats>false</forbidFloats><simplify>true</simplify></questionVariables><workedSolution type="CasText"><castext></castext><forbidFloats>false</forbidFloats><simplify>true</simplify></workedSolution><questionNote type="CasText"><castext></castext><forbidFloats>false</forbidFloats><simplify>true</simplify></questionNote></questionCasValues><questionparts><questionpart><name>ans1</name><inputType type="Meta"><selection>Slider</selection><default>Algebraic Input</default><values/></inputType><boxsize>200</boxsize><teachersAns type="CasString"><casString>70</casString><forbidFloats>false</forbidFloats><simplify>true</simplify></teachersAns><studentAnsKey>ans1</studentAnsKey><syntax type="Meta"><selection></selection><default></default><values/></syntax><stackoption><name>formalSyntax</name><type>list</type><default>true</default><values><value>true</value><value>false</value></values><casKey></casKey><casType></casType><selected>true</selected></stackoption><stackoption><name>forbidFloats</name><type>list</type><default>true</default><values><value>true</value><value>false</value></values><casKey>OPT_NoFloats</casKey><casType>ex</casType><selected>true</selected></stackoption><stackoption><name>insertStars</name><type>list</type><default>false</default><values><value>true</value><value>false</value></values><casKey></casKey><casType></casType><selected>false</selected></stackoption><stackoption><name>sameType</name><type>list</type><default>true</default><values><value>true</value><value>false</value></values><casKey></casKey><casType></casType><selected>true</selected></stackoption><stackoption><name>lowestTerms</name><type>list</type><default>true</default><values><value>true</value><value>false</value></values><casKey>OPT_LowestTerms</casKey><casType>ex</casType><selected>true</selected></stackoption><inputTypesParameters/></questionpart></questionparts><PotentialResponseTrees><PotentialResponseTree><prtname>PotResTree_1</prtname><questionValue>1</questionValue><autoSimplify>true</autoSimplify><feedbackVariables></feedbackVariables><description type="Meta"><selection></selection><default></default><values/></description><PotentialResponses><PR id="0"><answerTest>NumAbsolute</answerTest><teachersAns>70</teachersAns><studentAns>ans1</studentAns><testoptions>3</testoptions><quietAnsTest></quietAnsTest><true><rawModMark>=</rawModMark><rawMark>1</rawMark><feedback></feedback><ansnote>1-0-T </ansnote><nextPR>-1</nextPR></true><false><rawModMark>=</rawModMark><rawMark>0</rawMark><feedback></feedback><ansnote>1-0-F </ansnote><nextPR>-1</nextPR></false><teacherNote></teacherNote></PR></PotentialResponses></PotentialResponseTree></PotentialResponseTrees><MetaData><dc:Publisher stackname="lastUserEditor" type="Meta"><selection>2</selection><default></default><values/></dc:Publisher><dc:language stackname="language" type="Meta"><selection>en</selection><default>en</default><values><value key="en">en</value><value key="fr">fr</value><value key="nl">nl</value><value key="es">es</value><value key="unspecified">Unspecified</value></values></dc:language><dc:title stackname="questionName" type="Meta"><selection>interaction_element_test_slider</selection><default></default><values/></dc:title><dc:description stackname="questionDescription" type="Meta"><selection>A trivial slider question. </selection><default></default><values/></dc:description><dc:publisher stackname="questionPublisher" type="Meta"><selection>http://localhost/stack-dev</selection><default>http://localhost/stack-dev</default><values/></dc:publisher><dc:format stackname="questionFormat" type="Meta"><selection>text/xml; charset="utf-8"</selection><default>text/xml; charset="utf-8"</default><values><value key="0">application</value><value key="1">audio</value><value key="2">image</value><value key="3">message</value><value key="4">model</value><value key="5">text</value><value key="6">video</value><value key="7">multipart</value></values></dc:format><lom:context stackname="questionLearningContext" type="Meta"><selection>PrimaryEducation</selection><default>unspecified</default><values><value key="PrimaryEducation">Primary Education</value><value key="SecondaryEducation">Secondary Education</value><value key="HigherEducation">Higher Education</value><value key="UniversityFirstCycle">University First Cycle</value><value key="UniversitySecondCycle">University Second Cycle</value><value key="UniversityPostGrade">University Post Grade</value><value key="TechnicalSchoolFirstCycle">Technical School First Cycle</value><value key="TechnicalSchoolSecondCycle">Technical School Second Cycle</value><value key="ProfessionalFormation">Professional Formation</value><value key="ContinuousFormation">Continuous Formation</value><value key="VocationalTraining">Vocational Training</value><value key="unspecified">Unspecified</value></values></lom:context><lom:difficulty stackname="questionDifficulty" type="Meta"><selection>VeryEasy</selection><default>unspecified</default><values><value key="VeryEasy">Very Easy</value><value key="Easy">Easy</value><value key="Medium">Medium</value><value key="Difficult">Difficult</value><value key="VeryDifficult">Very Difficult</value><value key="unspecified">Unspecified</value></values></lom:difficulty><questionCompetency type="Meta"><selection>Think</selection><default>unspecified</default><values><value key="Think">Think</value><value key="Argue">Argue</value><value key="Solve">Solve</value><value key="Represent">Represent</value><value key="Language">Language</value><value key="Communicate">Communicate</value><value key="Tools">Tools</value><value key="unspecified">Unspecified</value></values></questionCompetency><questionCompentencyLevel type="Meta"><selection>Elementary</selection><default>unspecified</default><values><value key="Elementary">Elementary</value><value key="SimpleConceptual">Simple conceptual</value><value key="Multi-step">Multi-step</value><value key="Complex">Complex</value><value key="unspecified">Unspecified</value></values></questionCompentencyLevel><lom:typicallearningtime stackname="questionTimeAllocated" type="Meta"><selection>00:00:00</selection><default>00:00:00</default><values/></lom:typicallearningtime><dc:rights stackname="questionRights" type="Meta"><selection>http://www.gnu.org/copyleft/gpl.html</selection><default>http://www.gnu.org/copyleft/gpl.html</default><values/></dc:rights><questionExerciseType type="Meta"><selection>AlgebraicExpression</selection><default>AlgebraicExpression</default><values><value key="AlgebraicExpression">Algebraic Expression</value><value key="MCQSingleAnswer">MCQ Single Answer</value><value key="MCQMultpleAnswer">MCQ Multiple Answer</value><value key="FillInBlank">Fill in blank</value><value key="Unspecified">Unspecified</value></values></questionExerciseType><dc:date stackname="questionDateLastEdited" type="Meta"><selection>2010-08-02 11:53:15</selection><default>2010-08-02 11:04:10</default><values/></dc:date><lom:status stackname="questionStatus" type="Meta"><selection>Draft</selection><default>Draft</default><values><value key="Draft">Draft</value><value key="Deployed">Deployed</value><value key="Buggy">Buggy</value></values></lom:status><published type="Meta"><selection>Published</selection><default>Unpublished</default><values><value key="Unpublished">Unpublished</value><value key="Published">Published</value><value key="Private">Private</value></values></published><lom:keyword stackname="keywords" type="Meta"><selection></selection><default></default><values/></lom:keyword></MetaData><ItemOptions><stackoption><name>Display</name><type>list</type><default>LaTeX</default><values><value>LaTeX</value><value>MathML</value></values><casKey>OPT_OUTPUT</casKey><casType>string</casType><selected>LaTeX</selected></stackoption><stackoption><name>MultiplicationSign</name><type>list</type><default>dot</default><values><value>(none)</value><value>dot</value><value>cross</value></values><casKey>make_multsgn</casKey><casType>fun</casType><selected>dot</selected></stackoption><stackoption><name>ComplexNo</name><type>list</type><default>i</default><values><value>i</value><value>j</value><value>symi</value><value>symj</value></values><casKey>make_complexJ</casKey><casType>fun</casType><selected>i</selected></stackoption><stackoption><name>Floats</name><type>list</type><default>true</default><values><value>true</value><value>false</value></values><casKey>OPT_NoFloats</casKey><casType>ex</casType><selected>true</selected></stackoption><stackoption><name>SqrtSign</name><type>list</type><default>true</default><values><value>true</value><value>false</value></values><casKey>sqrtdispflag</casKey><casType>ex</casType><selected>true</selected></stackoption><stackoption><name>Simplify</name><type>list</type><default>true</default><values><value>true</value><value>false</value></values><casKey>simp</casKey><casType>ex</casType><selected>true</selected></stackoption><stackoption><name>MarkModMethod</name><type>list</type><default>Penalty</default><values><value>Penalty</value><value>First Answer</value><value>Last Answer</value></values><casKey></casKey><casType></casType><selected>Penalty</selected></stackoption><stackoption><name>AssumePos</name><type>list</type><default>false</default><values><value>true</value><value>false</value></values><casKey>assume_pos</casKey><casType>ex</casType><selected>false</selected></stackoption><stackoption><name>TeacherEmail</name><type>string</type><default> </default><casKey></casKey><casType></casType><selected></selected></stackoption><stackoption><name>Feedback</name><type>list</type><default>TGS</default><values><value>TGS</value><value>TG</value><value>GS</value><value>T</value><value>G</value><value>S</value><value>none</value></values><casKey></casKey><casType></casType><selected>TGS</selected></stackoption><stackoption><name>FeedbackGenericCorrect</name><type>html</type><default><span class='correct'>Correct answer, well done.</span></default><casKey></casKey><casType></casType><selected><span class='correct'>Correct answer, well done.</span></selected></stackoption><stackoption><name>FeedbackGenericIncorrect</name><type>html</type><default><span class='incorrect'>Incorrect answer.</span></default><casKey></casKey><casType></casType><selected><span class='incorrect'>Incorrect answer.</span></selected></stackoption><stackoption><name>FeedbackGenericPCorrect</name><type>html</type><default><span class='partially'>Your answer is partially correct.</span></default><casKey></casKey><casType></casType><selected><span class='partially'>Your answer is partially correct.</span></selected></stackoption><stackoption><name>OptWorkedSol</name><type>list</type><default>true</default><values><value>true</value><value>false</value></values><casKey></casKey><casType></casType><selected>true</selected></stackoption></ItemOptions><ItemTests><test><col><key>IE_ans1</key><value>70</value></col><col><key>PRT_PotResTree_1</key><value>1-0-T </value></col><col><key>IE_con1</key><value></value></col></test><test><col><key>IE_ans1</key><value>72</value></col><col><key>PRT_PotResTree_1</key><value>1-0-T </value></col><col><key>IE_con1</key><value></value></col></test><test><col><key>IE_ans1</key><value>75</value></col><col><key>PRT_PotResTree_1</key><value>1-0-F </value></col></test></ItemTests></assessmentItem><assessmentItem version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:lom="http://www.imsglobal.org/xsd/imsmd_v1p2"><questionCasValues><questionStem type="CasText"><castext>Type in the following system of equations, one per line ! \[ \left. ! \begin{array}{c} ! @eq1@\\ ! @eq2@\\ ! @eq3@\\ ! \end{array} ! \right\} ! \] ! #ans1# <IEfeedback>ans1</IEfeedback><PRTfeedback>1</PRTfeedback> ! </castext><forbidFloats>false</forbidFloats><simplify>true</simplify></questionStem><questionVariables type="RawKeyVal"><rawKeyVals>eq1 = x^2+y^2=4; eq2 = x+z=2; eq3 = 2*z+1=y; ta = [eq1,eq2,eq3]</rawKeyVals><forbidFloats>false</forbidFloats><simplify>true</simplify></questionVariables><workedSolution type="CasText"><castext></castext><forbidFloats>false</forbidFloats><simplify>true</simplify></workedSolution><questionNote type="CasText"><castext></castext><forbidFloats>false</forbidFloats><simplify>true</simplify></questionNote></questionCasValues><questionparts><questionpart><name>ans1</name><inputType type="Meta"><selection>Textarea</selection><default>Algebraic Input</default><values/></inputType><boxsize>25</boxsize><teachersAns type="CasString"><casString>ta</casString><forbidFloats>false</forbidFloats><simplify>true</simplify></teachersAns><studentAnsKey>ans1</studentAnsKey><syntax type="Meta"><selection></selection><default></default><values/></syntax><stackoption><name>formalSyntax</name><type>list</type><default>true</default><values><value>true</value><value>false</value></values><casKey></casKey><casType></casType><selected>true</selected></stackoption><stackoption><name>forbidFloats</name><type>list</type><default>true</default><values><value>true</value><value>false</value></values><casKey>OPT_NoFloats</casKey><casType>ex</casType><selected>true</selected></stackoption><stackoption><name>insertStars</name><type>list</type><default>false</default><values><value>true</value><value>false</value></values><casKey></casKey><casType></casType><selected>false</selected></stackoption><stackoption><name>sameType</name><type>list</type><default>true</default><values><value>true</value><value>false</value></values><casKey></casKey><casType></casType><selected>true</selected></stackoption><stackoption><name>lowestTerms</name><type>list</type><default>true</default><values><value>true</value><value>false</value></values><casKey>OPT_LowestTerms</casKey><casType>ex</casType><selected>true</selected></stackoption><inputTypesParameters/></questionpart></questionparts><PotentialResponseTrees><PotentialResponseTree><prtname>PotResTree_1</prtname><questionValue>1</questionValue><autoSimplify>true</autoSimplify><feedbackVariables></feedbackVariables><description type="Meta"><selection></selection><default></default><values/></description><PotentialResponses><PR id="0"><answerTest>AlgEquiv</answerTest><teachersAns>ta</teachersAns><studentAns>ans1</studentAns><testoptions></testoptions><quietAnsTest></quietAnsTest><true><rawModMark>=</rawModMark><rawMark>1</rawMark><feedback></feedback><ansnote>1-0-T </ansnote><nextPR>-1</nextPR></true><false><rawModMark>=</rawModMark><rawMark>0</rawMark><feedback></feedback><ansnote>1-0-F </ansnote><nextPR>-1</nextPR></false><teacherNote></teacherNote></PR></PotentialResponses></PotentialResponseTree></PotentialResponseTrees><MetaData><dc:Publisher stackname="lastUserEditor" type="Meta"><selection>2</selection><default></default><values/></dc:Publisher><dc:language stackname="language" type="Meta"><selection>en</selection><default>en</default><values><value key="en">en</value><value key="fr">fr</value><value key="nl">nl</value><value key="es">es</value><value key="unspecified">Unspecified</value></values></dc:language><dc:title stackname="questionName" type="Meta"><selection>interaction_element_test_textarea</selection><default></default><values/></dc:title><dc:description stackname="questionDescription" type="Meta"><selection></selection><default></default><values/></dc:description><dc:publisher stackname="questionPublisher" type="Meta"><selection>http://localhost/stack-dev</selection><default>http://localhost/stack-dev</default><values/></dc:publisher><dc:format stackname="questionFormat" type="Meta"><selection>text/xml; charset="utf-8"</selection><default>text/xml; charset="utf-8"</default><values><value key="0">application</value><value key="1">audio</value><value key="2">image</value><value key="3">message</value><value key="4">model</value><value key="5">text</value><value key="6">video</value><value key="7">multipart</value></values></dc:format><lom:context stackname="questionLearningContext" type="Meta"><selection>unspecified</selection><default>unspecified</default><values><value key="PrimaryEducation">Primary Education</value><value key="SecondaryEducation">Secondary Education</value><value key="HigherEducation">Higher Education</value><value key="UniversityFirstCycle">University First Cycle</value><value key="UniversitySecondCycle">University Second Cycle</value><value key="UniversityPostGrade">University Post Grade</value><value key="TechnicalSchoolFirstCycle">Technical School First Cycle</value><value key="TechnicalSchoolSecondCycle">Technical School Second Cycle</value><value key="ProfessionalFormation">Professional Formation</value><value key="ContinuousFormation">Continuous Formation</value><value key="VocationalTraining">Vocational Training</value><value key="unspecified">Unspecified</value></values></lom:context><lom:difficulty stackname="questionDifficulty" type="Meta"><selection>unspecified</selection><default>unspecified</default><values><value key="VeryEasy">Very Easy</value><value key="Easy">Easy</value><value key="Medium">Medium</value><value key="Difficult">Difficult</value><value key="VeryDifficult">Very Difficult</value><value key="unspecified">Unspecified</value></values></lom:difficulty><questionCompetency type="Meta"><selection>unspecified</selection><default>unspecified</default><values><value key="Think">Think</value><value key="Argue">Argue</value><value key="Solve">Solve</value><value key="Represent">Represent</value><value key="Language">Language</value><value key="Communicate">Communicate</value><value key="Tools">Tools</value><value key="unspecified">Unspecified</value></values></questionCompetency><questionCompentencyLevel type="Meta"><selection>unspecified</selection><default>unspecified</default><values><value key="Elementary">Elementary</value><value key="SimpleConceptual">Simple conceptual</value><value key="Multi-step">Multi-step</value><value key="Complex">Complex</value><value key="unspecified">Unspecified</value></values></questionCompentencyLevel><lom:typicallearningtime stackname="questionTimeAllocated" type="Meta"><selection>00:00:00</selection><default>00:00:00</default><values/></lom:typicallearningtime><dc:rights stackname="questionRights" type="Meta"><selection>http://www.gnu.org/copyleft/gpl.html</selection><default>http://www.gnu.org/copyleft/gpl.html</default><values/></dc:rights><questionExerciseType type="Meta"><selection>AlgebraicExpression</selection><default>AlgebraicExpression</default><values><value key="AlgebraicExpression">Algebraic Expression</value><value key="MCQSingleAnswer">MCQ Single Answer</value><value key="MCQMultpleAnswer">MCQ Multiple Answer</value><value key="FillInBlank">Fill in blank</value><value key="Unspecified">Unspecified</value></values></questionExerciseType><dc:date stackname="questionDateLastEdited" type="Meta"><selection>2010-08-02 11:53:03</selection><default>2010-08-02 11:04:11</default><values/></dc:date><lom:status stackname="questionStatus" type="Meta"><selection>Draft</selection><default>Draft</default><values><value key="Draft">Draft</value><value key="Deployed">Deployed</value><value key="Buggy">Buggy</value></values></lom:status><published type="Meta"><selection>Published</selection><default>Unpublished</default><values><value key="Unpublished">Unpublished</value><value key="Published">Published</value><value key="Private">Private</value></values></published><lom:keyword stackname="keywords" type="Meta"><selection></selection><default></default><values/></lom:keyword></MetaData><ItemOptions><stackoption><name>Display</name><type>list</type><default>LaTeX</default><values><value>LaTeX</value><value>MathML</value></values><casKey>OPT_OUTPUT</casKey><casType>string</casType><selected>LaTeX</selected></stackoption><stackoption><name>MultiplicationSign</name><type>list</type><default>dot</default><values><value>(none)</value><value>dot</value><value>cross</value></values><casKey>make_multsgn</casKey><casType>fun</casType><selected>dot</selected></stackoption><stackoption><name>ComplexNo</name><type>list</type><default>i</default><values><value>i</value><value>j</value><value>symi</value><value>symj</value></values><casKey>make_complexJ</casKey><casType>fun</casType><selected>i</selected></stackoption><stackoption><name>Floats</name><type>list</type><default>true</default><values><value>true</value><value>false</value></values><casKey>OPT_NoFloats</casKey><casType>ex</casType><selected>true</selected></stackoption><stackoption><name>SqrtSign</name><type>list</type><default>true</default><values><value>true</value><value>false</value></values><casKey>sqrtdispflag</casKey><casType>ex</casType><selected>true</selected></stackoption><stackoption><name>Simplify</name><type>list</type><default>true</default><values><value>true</value><value>false</value></values><casKey>simp</casKey><casType>ex</casType><selected>true</selected></stackoption><stackoption><name>MarkModMethod</name><type>list</type><default>Penalty</default><values><value>Penalty</value><value>First Answer</value><value>Last Answer</value></values><casKey></casKey><casType></casType><selected>Penalty</selected></stackoption><stackoption><name>AssumePos</name><type>list</type><default>false</default><values><value>true</value><value>false</value></values><casKey>assume_pos</casKey><casType>ex</casType><selected>false</selected></stackoption><stackoption><name>TeacherEmail</name><type>string</type><default> </default><casKey></casKey><casType></casType><selected></selected></stackoption><stackoption><name>Feedback</name><type>list</type><default>TGS</default><values><value>TGS</value><value>TG</value><value>GS</value><value>T</value><value>G</value><value>S</value><value>none</value></values><casKey></casKey><casType></casType><selected>TGS</selected></stackoption><stackoption><name>FeedbackGenericCorrect</name><type>html</type><default><span class='correct'>Correct answer, well done.</span></default><casKey></casKey><casType></casType><selected><span class='correct'>Correct answer, well done.</span></selected></stackoption><stackoption><name>FeedbackGenericIncorrect</name><type>html</type><default><span class='incorrect'>Incorrect answer.</span></default><casKey></casKey><casType></casType><selected><span class='incorrect'>Incorrect answer.</span></selected></stackoption><stackoption><name>FeedbackGenericPCorrect</name><type>html</type><default><span class='partially'>Your answer is partially correct.</span></default><casKey></casKey><casType></casType><selected><span class='partially'>Your answer is partially correct.</span></selected></stackoption><stackoption><name>OptWorkedSol</name><type>list</type><default>true</default><values><value>true</value><value>false</value></values><casKey></casKey><casType></casType><selected>true</selected></stackoption></ItemOptions><ItemTests><test><col><key>IE_ans1</key><value>[eq1,eq2,eq3]</value></col><col><key>PRT_PotResTree_1</key><value>1-0-T </value></col></test><test><col><key>IE_ans1</key><value>[eq1,eq2]</value></col><col><key>PRT_PotResTree_1</key><value>1-0-F </value></col></test></ItemTests></assessmentItem><assessmentItem version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:lom="http://www.imsglobal.org/xsd/imsmd_v1p2"><questionCasValues><questionStem type="CasText"><castext>Enter \[ @ta@ \] #ans# <IEfeedback>ans</IEfeedback><PRTfeedback>1</PRTfeedback> ! <p>This is a simple true/false dropdown. The "Not answered" option is important in multi-part questions where a student might like to go back and only answer another part.</p></castext><forbidFloats>false</forbidFloats><simplify>true</simplify></questionStem><questionVariables type="RawKeyVal"><rawKeyVals>ta = true</rawKeyVals><forbidFloats>false</forbidFloats><simplify>true</simplify></questionVariables><workedSolution type="CasText"><castext></castext><forbidFloats>false</forbidFloats><simplify>true</simplify></workedSolution><questionNote type="CasText"><castext></castext><forbidFloats>false</forbidFloats><simplify>true</simplify></questionNote></questionCasValues><questionparts><questionpart><name>ans</name><inputType type="Meta"><selection>True/False</selection><default>Algebraic Input</default><values/></inputType><boxsize>15</boxsize><teachersAns type="CasString"><casString>ta</casString><forbidFloats>false</forbidFloats><simplify>true</simplify></teachersAns><studentAnsKey>ans</studentAnsKey><syntax type="Meta"><selection></selection><default></default><values/></syntax><stackoption><name>formalSyntax</name><type>list</type><default>true</default><values><value>true</value><value>false</value></values><casKey></casKey><casType></casType><selected>true</selected></stackoption><stackoption><name>forbidFloats</name><type>list</type><default>true</default><values><value>true</value><value>false</value></values><casKey>OPT_NoFloats</casKey><casType>ex</casType><selected>true</selected></stackoption><stackoption><name>insertStars</name><type>list</type><default>false</default><values><value>true</value><value>false</value></values><casKey></casKey><casType></casType><selected>false</selected></stackoption><stackoption><name>sameType</name><type>list</type><default>true</default><values><value>true</value><value>false</value></values><casKey></casKey><casType></casType><selected>true</selected></stackoption><stackoption><name>lowestTerms</name><type>list</type><default>true</default><values><value>true</value><value>false</value></values><casKey>OPT_LowestTerms</casKey><casType>ex</casType><selected>true</selected></stackoption><inputTypesParameters/></questionpart></questionparts><PotentialResponseTrees><PotentialResponseTree><prtname>PotResTree_1</prtname><questionValue>1</questionValue><autoSimplify>true</autoSimplify><feedbackVariables></feedbackVariables><description type="Meta"><selection></selection><default></default><values/></description><PotentialResponses><PR id="0"><answerTest>AlgEquiv</answerTest><teachersAns>ta</teachersAns><studentAns>ans</studentAns><testoptions></testoptions><quietAnsTest></quietAnsTest><true><rawModMark>=</rawModMark><rawMark>1</rawMark><feedback></feedback><ansnote>1-0-T </ansnote><nextPR>-1</nextPR></true><false><rawModMark>=</rawModMark><rawMark>0</rawMark><feedback></feedback><ansnote>1-0-F </ansnote><nextPR>-1</nextPR></false><teacherNote></teacherNote></PR></PotentialResponses></PotentialResponseTree></PotentialResponseTrees><MetaData><dc:Publisher stackname="lastUserEditor" type="Meta"><selection>2</selection><default></default><values/></dc:Publisher><dc:language stackname="language" type="Meta"><selection>en</selection><default>en</default><values><value key="en">en</value><value key="fr">fr</value><value key="nl">nl</value><value key="es">es</value><value key="unspecified">Unspecified</value></values></dc:language><dc:title stackname="questionName" type="Meta"><selection>interaction_element_test_TrueFalse</selection><default></default><values/></dc:title><dc:description stackname="questionDescription" type="Meta"><selection></selection><default></default><values/></dc:description><dc:publisher stackname="questionPublisher" type="Meta"><selection>http://localhost/stack-dev</selection><default>http://localhost/stack-dev</default><values/></dc:publisher><dc:format stackname="questionFormat" type="Meta"><selection>text/xml; charset="utf-8"</selection><default>text/xml; charset="utf-8"</default><values><value key="0">application</value><value key="1">audio</value><value key="2">image</value><value key="3">message</value><value key="4">model</value><value key="5">text</value><value key="6">video</value><value key="7">multipart</value></values></dc:format><lom:context stackname="questionLearningContext" type="Meta"><selection>unspecified</selection><default>unspecified</default><values><value key="PrimaryEducation">Primary Education</value><value key="SecondaryEducation">Secondary Education</value><value key="HigherEducation">Higher Education</value><value key="UniversityFirstCycle">University First Cycle</value><value key="UniversitySecondCycle">University Second Cycle</value><value key="UniversityPostGrade">University Post Grade</value><value key="TechnicalSchoolFirstCycle">Technical School First Cycle</value><value key="TechnicalSchoolSecondCycle">Technical School Second Cycle</value><value key="ProfessionalFormation">Professional Formation</value><value key="ContinuousFormation">Continuous Formation</value><value key="VocationalTraining">Vocational Training</value><value key="unspecified">Unspecified</value></values></lom:context><lom:difficulty stackname="questionDifficulty" type="Meta"><selection>unspecified</selection><default>unspecified</default><values><value key="VeryEasy">Very Easy</value><value key="Easy">Easy</value><value key="Medium">Medium</value><value key="Difficult">Difficult</value><value key="VeryDifficult">Very Difficult</value><value key="unspecified">Unspecified</value></values></lom:difficulty><questionCompetency type="Meta"><selection>unspecified</selection><default>unspecified</default><values><value key="Think">Think</value><value key="Argue">Argue</value><value key="Solve">Solve</value><value key="Represent">Represent</value><value key="Language">Language</value><value key="Communicate">Communicate</value><value key="Tools">Tools</value><value key="unspecified">Unspecified</value></values></questionCompetency><questionCompentencyLevel type="Meta"><selection>unspecified</selection><default>unspecified</default><values><value key="Elementary">Elementary</value><value key="SimpleConceptual">Simple conceptual</value><value key="Multi-step">Multi-step</value><value key="Complex">Complex</value><value key="unspecified">Unspecified</value></values></questionCompentencyLevel><lom:typicallearningtime stackname="questionTimeAllocated" type="Meta"><selection>00:00:00</selection><default>00:00:00</default><values/></lom:typicallearningtime><dc:rights stackname="questionRights" type="Meta"><selection>http://www.gnu.org/copyleft/gpl.html</selection><default>http://www.gnu.org/copyleft/gpl.html</default><values/></dc:rights><questionExerciseType type="Meta"><selection>AlgebraicExpression</selection><default>AlgebraicExpression</default><values><value key="AlgebraicExpression">Algebraic Expression</value><value key="MCQSingleAnswer">MCQ Single Answer</value><value key="MCQMultpleAnswer">MCQ Multiple Answer</value><value key="FillInBlank">Fill in blank</value><value key="Unspecified">Unspecified</value></values></questionExerciseType><dc:date stackname="questionDateLastEdited" type="Meta"><selection>2010-08-02 11:52:18</selection><default>2010-08-02 11:04:11</default><values/></dc:date><lom:status stackname="questionStatus" type="Meta"><selection>Draft</selection><default>Draft</default><values><value key="Draft">Draft</value><value key="Deployed">Deployed</value><value key="Buggy">Buggy</value></values></lom:status><published type="Meta"><selection>Published</selection><default>Unpublished</default><values><value key="Unpublished">Unpublished</value><value key="Published">Published</value><value key="Private">Private</value></values></published><lom:keyword stackname="keywords" type="Meta"><selection>demo, test</selection><default>demo, test</default><values/></lom:keyword></MetaData><ItemOptions><stackoption><name>Display</name><type>list</type><default>LaTeX</default><values><value>LaTeX</value><value>MathML</value></values><casKey>OPT_OUTPUT</casKey><casType>string</casType><selected>LaTeX</selected></stackoption><stackoption><name>MultiplicationSign</name><type>list</type><default>dot</default><values><value>(none)</value><value>dot</value><value>cross</value></values><casKey>make_multsgn</casKey><casType>fun</casType><selected>dot</selected></stackoption><stackoption><name>ComplexNo</name><type>list</type><default>i</default><values><value>i</value><value>j</value><value>symi</value><value>symj</value></values><casKey>make_complexJ</casKey><casType>fun</casType><selected>i</selected></stackoption><stackoption><name>Floats</name><type>list</type><default>true</default><values><value>true</value><value>false</value></values><casKey>OPT_NoFloats</casKey><casType>ex</casType><selected>true</selected></stackoption><stackoption><name>SqrtSign</name><type>list</type><default>true</default><values><value>true</value><value>false</value></values><casKey>sqrtdispflag</casKey><casType>ex</casType><selected>true</selected></stackoption><stackoption><name>Simplify</name><type>list</type><default>true</default><values><value>true</value><value>false</value></values><casKey>simp</casKey><casType>ex</casType><selected>true</selected></stackoption><stackoption><name>MarkModMethod</name><type>list</type><default>Penalty</default><values><value>Penalty</value><value>First Answer</value><value>Last Answer</value></values><casKey></casKey><casType></casType><selected>Penalty</selected></stackoption><stackoption><name>AssumePos</name><type>list</type><default>false</default><values><value>true</value><value>false</value></values><casKey>assume_pos</casKey><casType>ex</casType><selected>false</selected></stackoption><stackoption><name>TeacherEmail</name><type>string</type><default> </default><casKey></casKey><casType></casType><selected></selected></stackoption><stackoption><name>Feedback</name><type>list</type><default>TGS</default><values><value>TGS</value><value>TG</value><value>GS</value><value>T</value><value>G</value><value>S</value><value>none</value></values><casKey></casKey><casType></casType><selected>TGS</selected></stackoption><stackoption><name>FeedbackGenericCorrect</name><type>html</type><default><span class='correct'>Correct answer, well done.</span></default><casKey></casKey><casType></casType><selected><span class='correct'>Correct answer, well done.</span></selected></stackoption><stackoption><name>FeedbackGenericIncorrect</name><type>html</type><default><span class='incorrect'>Incorrect answer.</span></default><casKey></casKey><casType></casType><selected><span class='incorrect'>Incorrect answer.</span></selected></stackoption><stackoption><name>FeedbackGenericPCorrect</name><type>html</type><default><span class='partially'>Your answer is partially correct.</span></default><casKey></casKey><casType></casType><selected><span class='partially'>Your answer is partially correct.</span></selected></stackoption><stackoption><name>OptWorkedSol</name><type>list</type><default>true</default><values><value>true</value><value>false</value></values><casKey></casKey><casType></cas... [truncated message content] |