/** * 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 + " Evalution
"; for (i = 0; i < this.data.length; i += 2) { text += "" + "" + "" + ""; } text += ""; text += "
" + this.data[i] + "" + this.data[i+1] + "
" + "" + "
" + 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 "
" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "
BestGoodAveragePoorWorst
" + "
"; } }