var paperBuilder = function (options) { var builder = this; options = options || {}; options.paperTemplate = options.paperTemplate || CMS_SystemConfig.VirtualDirectoryPath + '/Scripts/Examinee/Template/PaperTemplate.htm?v=1.1'; options.questionTemplate = options.questionTemplate || CMS_SystemConfig.VirtualDirectoryPath + '/Scripts/Examinee/Template/QuestionTemplate.htm?v=1.1'; options.navigationTemplate = options.navigationTemplate || CMS_SystemConfig.VirtualDirectoryPath + '/Scripts/Examinee/Template/NavigationTemplate.htm'; options.informationTemplate = options.informationTemplate || CMS_SystemConfig.VirtualDirectoryPath + '/Scripts/Examinee/Template/InformationTemplate.htm?v=1.5'; this.BuildInformationPanel = function (examInfo) { if (typeof (examInfo) == 'undefined' || !examInfo) return false; behaviour.togglePapert(!examinee.isTakePaper); $("#information_bar").setTemplateURL(options.informationTemplate); $("#information_bar").processTemplate(examInfo); $("#exam_sign").text(0); $("#exam_over").text(0); $("#exam_count").text(examInfo.questionCount); behaviour.registTimer(); return true; } this.BuildPaper = function (paperInfo) { if (typeof (paperInfo) == 'undefined' || !paperInfo) return false; // 设定导航条和答卷的高度 $(window).resize(function () { AdjustTestPanel(); }); AdjustTestPanel(); // 呈现导航条 $("#navigation_body").setTemplateURL(options.navigationTemplate); $("#navigation_body").processTemplate(paperInfo); // 呈现答卷 if (examInfo.display_type == 2) { $("#question").setTemplateURL(options.questionTemplate, null, { filter_data: false }); } else { $("#question").setTemplateURL(options.paperTemplate, null, { filter_data: false }); } $("#question").processTemplate(paperInfo); // 如果考试为可控,则注册轮询事件 if (controllable) { var server = new serverInteractively({ test_id: examInfo.test_id, user_id: examinee.userid }); server.registPersonExchange(); //server.registPublicExchange(); } $(".PageLoad").hide(); return true; } } function AdjustTestPanel() { $(".navigation_body").height(document.documentElement.clientHeight - 267); $("#question").height(document.documentElement.clientHeight - 215); } // 模版行为 --- 与样式相关 var WordSerial = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"]; // 乱序题目缓存 var buff = new Hashtable(); // 修改乱序答案的序号 function ReplaceFirstChar(answer) { if (typeof (examInfo) == 'undefined' || !examInfo || examInfo.breaking == 1 || examInfo.breaking == 4) return answer; var reg1 = /^.{2}/; for (var i = 0; i < answer.length; i++) { answer[i].content = answer[i].content.replace(reg1, WordSerial[i] + "、"); } return answer; } // 转换填空题单体占位符 function transformSingle(type, question, answer) { var body = question.content; var answers = ""; //GetTextAnswer(question.id); var target = ""; body = transform(body, target); return body; } // 转换多项填空题占位符 function transformMuilte(type, question, answer) { var body = question.content; var answers = ""; //GetTextAnswer(question.id).split('|'); for (var a in question.answers) { var an = ""; // if (answers.length > a) // an = answers[a]; var ctrlName = "ST-" + type.id + "-" + question.question_id; var target = ""; body = transform(body, target); } return body; } // 显示答卷问题及答案 function transform2(type, question, answer) { var body = question.content; for (var a in question.answers) { var an = ""; // if (answers.length > a) // an = answers[a]; var ctrlName = "ST-" + type.id + "-" + question.question_id; var target = ""; body = transform(body, target); } return body; } function GetCheckAnswer() { return false; } //是否用户已选答案 function IsUserAnswer(question_id, answer_id, rightAnswer) { var lan = rightAnswer.split(','); if (lan.toString().indexOf(answer_id) > -1) { return "checked='checked'"; } return ''; } // 替换占位符 function transform(content, target) { var reg = /【.*?】/; return content.replace(reg, target); } // 检查完成状况 function ChecComplate(id) { } function PreBtnEvent(sender) { var me = $(sender); var parent = me.closest(".q_container").hide(); parent.prev().show(); } function NextBtnEvent(sender) { var me = $(sender); var parent = me.closest(".q_container").hide(); parent.next().show(); } function q(question_id) { if (examInfo.display_type == 2) { $(".q_container").hide(); $("#q_" + question_id).show(); } } // 准备题目集 function prepareQuestions(typeid, questions) { if (examInfo.breaking == 1 || examInfo.breaking == 3) { if (buff.contains(typeid)) return buff.items(typeid); var result = chaosArray(questions); buff.add(typeid, result); return result; } return questions; } // 准备答案集 function prepareAnswers(answers) { if (examInfo.breaking == 2 || examInfo.breaking == 3) return chaosArray(answers); return answers; } // 题目乱序,需要产生2个拷贝 function chaosArray(array) { var src = array.slice(); var result = new Array(); var count = array.length; while (count > 0) { var index = 0; if (count > 1) index = getRandom(1, count) - 1 result[result.length] = src[index]; src.splice(index, 1); count--; } return result; } // 获取指定范围的随机数 function getRandom(start, end) { return Math.ceil(Math.random() * ((end - start) + start)); } //填空题题 function ShowAnswer2(rightAnswer, provid_answer) { var rightlist = new Array(); var lan = rightAnswer.split(','); for (var index in provid_answer) { var ans = provid_answer[index]; if (lan.toString().indexOf(ans.answer_id) > -1) { rightlist.push(ans.content); } } return rightlist.join(","); } //选择题 function ShowAnswerSelect(rightAnswer, provid_answer) { var rightlist = new Array(); var lan = rightAnswer.split(','); for (var index in provid_answer) { var ans = provid_answer[index]; if (lan.toString().indexOf(ans.answer_id) > -1) { rightlist.push(ans.content.substring(0, 1)); } } return rightlist.join(","); }