home *** CD-ROM | disk | FTP | other *** search
- // used to dynamically resize textareas based on browser type
- var isIE = navigator.userAgent.indexOf( "MSIE" ) != -1;
- var isNN = ( navigator.userAgent.indexOf( "Mozilla" ) != -1 ) && ( !isIE );
- var isWin = navigator.userAgent.indexOf( "Win" ) != -1;
- var isMac = navigator.userAgent.indexOf( "Mac" ) != -1;
-
-
- function getTextArea( qCount ) {
- var columns = 0;
- if ( isIE && isWin ) {
- columns = 45;
- } else if ( isIE && isMac ) {
- columns = 60;
- } else if ( isNN && isWin ) {
- columns = 35;
- } else if ( isNN && isMac ) {
- columns = 55;
- } else {
- // unsupported browser, guess at correct size
- columns = 40;
- }
- var html = "<textarea name='";
- html += qCount;
- html += "' wrap='hard' rows='5' cols='";
- html += columns;
- html += "'></textarea>";
- return html;
- }
-
-
- // for the mutiple choice
- function getChecked (buttonGroup)
- {
- for(var j = 0; j < buttonGroup.length; j++) {
- if(buttonGroup[j].checked) {
- return j;
- }
- }
- return -1;
- }
-
- function isFormFilled(assessObj) {
-
- with(assessObj) {
-
- var temp = ""; // hold the name of the objects we have checked already
- var regexp;
- var selectedButton;
-
- for (var i=0;i<elements.length;i++) {
-
- if (elements[i].type == 'radio') {
-
- var regexp = new RegExp(elements[i].name);
- if (regexp.test(temp) == false) { // has not checked yet
- temp = temp + "|" + elements[i].name;
-
- selectedButton = getChecked(eval(elements[i].name));
- if(selectedButton == -1)
- return false;
- }
- } // if
- } // for
- } // with
-
- return true;
- }
-
- function checkForm(assessObj)
- {
- if(isFormFilled(assessObj) == false) {
- alert("There are unanswered questions.\nPlease answer them before submit!");
- return false;
- }
- return true;
- }
-
-
- function printAnswer(assessObj, isbn)
- {
- if (checkForm(assessObj) == true) {
- openAssessmentWnd(assessObj.name, "print", isbn);
- }
- }
-
-
- function submitAnswer(assessObj, isbn)
- {
- if (checkForm(assessObj) == true) {
- openAssessmentWnd(assessObj.name, "check", isbn);
- }
- }
-
-
- function emailAnswer(assessObj, isbn)
- {
- if (checkForm(assessObj) == true) {
- openAssessmentWnd(assessObj.name, "email", isbn);
- }
- }
-
- function isValidEmail(str) {
- var index = str.indexOf("@");
- if(index < 1)
- return false;
-
- return str.substring(index + 1, str.length - 1).indexOf(".") > 1;
- }
-
- function checkEmail(Sender, Recipient) {
- if(!isValidEmail(Sender)) {
- alert("The Sender email address is invalid.");
- return false;
- }
-
- if(!isValidEmail(Recipient)) {
- alert("The Recipient email address is invalid.");
- return false;
- }
- return true;
- }
-
- function generateHiddenInput(qnum, answer)
- {
- var html = "<input name='" + qnum + "' type='hidden' value='" + answer + "'/>";
- return html;
- }
-
- function getFormattedAnswer( answer , mode )
- {
- if(mode == 'normal') {
- var html = "<span class='AText'>" + answer + "</span> "
- return html;
- }
- if(mode == 'correct') {
- var html = "<span class='CText'>" + answer + "</span> "
- return html;
- }
- if(mode == 'wrong') {
- var html = "<span class='WText'>" + answer + "</span> "
- return html;
- }
-
- }
-
- function getChecked (radioGroup) {
- for(var j = 0; j < radioGroup.length; j++) {
- if(radioGroup[j].checked) {
- return j;
- }
- }
- return -1;
- }
-
- function evaluateAnswer(qnum, option)
- {
- for(i = 0; i < ansArray.length; i++) {
- if(ansArray[i][0] == qnum) {
- if(ansArray[i][1] == option) {
- calculateScore(qnum);
- return true;
- }
- else
- return false;
- }
- }
- }
-
- function getCorrectAnswer(qnum)
- {
- for(i = 0; i < ansArray.length; i++) {
- if(ansArray[i][0] == qnum) {
- return ansArray[i][1];
- }
- }
- }
-
- function calculateScore(qnum) {
- for(i = 0; i < ansArray.length; i++) {
- if(ansArray[i][0] == qnum) {
- score = score + ((100 /parseInt(ansArray[i][2])) / 100);
- }
- }
- }
-
- function addBonusScore() {
- score = score + 1;
- }