/**
* Represents an evaluation (e.g., a "CMS evaluation").
* @param type {String} Ex: "CMS" or "ATMS" ...
* @param data Array(label1, text1, label2, text2, ...)
*/
function Evaluation(type, data)
{
//========== private static members ==========//
Evaluation.id = (typeof Evaluation.id == 'undefined') ? 0 : ++Evaluation.id;
//========== public constants ==========//
this.id = Evaluation.id;
this.ratingGroupName = "evaluationGroup" + this.id;
this.textID = "evaluationText" + this.id;
this.type = type;
this.data = data;
//========== public read-only members ==========//
this.text = "";
this.rating = -1;
//========== public methods ==========//
this.html = html;
this.recordText = recordText;
this.recordRating = recordRating;
//========== private methods ==========//
this.smallScaleForm = smallScaleForm;
this.evaluationForm = evaluationForm;
//========== function definitions ==========//
/**
* @return The html representation of this evaluation.
*/
function html()
{
var text = "
" +
"" +
"| " + type + " Evaluation | " +
"
" +
"" +
" | " +
"" + this.evaluationForm() + " | " +
"
" +
"
";
return text;
}
/**
* Stores the rating given by the evaluation scale radio button form.
*/
function recordRating()
{
// list of radio buttons
var radioButtons;
// get list of radio buttons
radioButtons = events.doc.getElementsByName(this.ratingGroupName);
// FOR each radio button
for (var i = 0; i < radioButtons.length; i++)
{
// IF the radio button is checked THEN
if (radioButtons[i].checked)
{
// save rating
this.rating = radioButtons[i].value;
}
}
}
/**
* Stores the text in the written response text box.
*/
function recordText()
{
this.text = events.doc.getElementById(this.textID).value;
}
/**
* @return The html for appropriate evaluation form for grading.
*/
function evaluationForm()
{
return this.smallScaleForm();
}
/**
* @return The html for a 1-5 grading scale.
*/
function smallScaleForm()
{
return "";
}
}