Widget:WikidocBoardReview: Difference between revisions

Jump to navigation Jump to search
Matt Pijoan (talk | contribs)
No edit summary
Matt Pijoan (talk | contribs)
No edit summary
Line 1: Line 1:
<includeonly>
<includeonly>
<script src="http://wikidoc.org/includes/jquery.timer.js"></script>
<style type="text/css">
<style type="text/css">
.boxed{
.boxed{
border:5px solid black;
border:2px solid black !important;
}
.redBoxed{
border:2px solid #F00 !important;
}
}


Line 32: Line 36:
margin-right:10px;
margin-right:10px;
}
}
 
#globalWrapper{
z-index:-1;
}
#navPane{
#navPane{
position:relative;  
position:relative;  
Line 68: Line 74:
</style>
</style>
<script type="text/javascript">
<script type="text/javascript">
function stepOne() {
function ensureLoggedIn(){
mw.loader.load('mediaWiki.user');
if ($.isEmptyObject(wgUserName)) {
alert("Please Log In To Continue.");
window.location.replace("http://wikidoc.org/index.php?title=Special:UserLogin&returnto=User%3AMatt+Pijoan");
} else {
curriculumType();
}
}
function curriculumType() {
var options = {
var options = {
examtype : null,
examtype : null,
Line 74: Line 89:
qbank : null,
qbank : null,
timer : null,
timer : null,
timeAmt : null,
                examType : '',
timeAmt : 0,
questionListAll : new Array(),
questionListAll : new Array(),
numQuestion : null,
numQuestion : null,
Line 97: Line 113:
AnswerEExp : null,
AnswerEExp : null,
selectedAnswer : 'F',
selectedAnswer : 'F',
lastParsed : 0
lastParsed : 0,
                        creditReceived : false
}
}
}
}
var stuffs = "<a href='#' class='examType' id='USMLE Step 1'><img src='http://static.wikidoc.org/8/87/Step1.png' /></a>";
var stuffs = "<a href='#' class='Curric' id='USMLE Step 1'><img src='http://static.wikidoc.org/8/87/Step1.png' /></a>";
stuffs += "<a href='#' class='examType' id='USMLE Step 2 CK'><img src='http://static.wikidoc.org/0/07/Step2CK.png' /></a>";
stuffs += "<a href='#' class='Curric' id='USMLE Step 2 CK'><img src='http://static.wikidoc.org/0/07/Step2CK.png' /></a>";
stuffs += "<a href='#' class='examType' id='USMLE Step 3'><img src='http://static.wikidoc.org/0/08/Step3.png' /></a>";
stuffs += "<a href='#' class='Curric' id='USMLE Step 3'><img src='http://static.wikidoc.org/0/08/Step3.png' /></a>";
stuffs += "<a href='#' class='examType' id='Board Review'><img src='http://static.wikidoc.org/7/75/Boardcertification.png' /></a>";
stuffs += "<a href='#' class='Curric' id='Board Review'><img src='http://static.wikidoc.org/7/75/Boardcertification.png' /></a>";
stuffs += "<a href='#' class='examType' id='MCAT'><img src='http://static.wikidoc.org/4/4b/MCAT.png' /></a><br />";
stuffs += "<a href='#' class='Curric' id='MCAT'><img src='http://static.wikidoc.org/4/4b/MCAT.png' /></a><br />";
$("#exam").html(stuffs);
$("#exam").html(stuffs);
$('.examType').click(options, stepTwo);
$('.Curric').click(options, chooseQBank);


}
}
function stepTwo(event) {
function chooseQBank(event) {
event.data.examtype = $(this).attr('id');
event.data.examtype = $(this).attr('id');
var divs = null;
var divs = null;
divs = "<center><h1>Build your own exam!</h1></center><div id='Pat' class='noSelect WBRButton stepTwo'><br />USMLE Format</div><div id='Flash' class='noSelect WBRButton stepTwo'><br />Flash Cards</div><br /><br /><br />";
divs = "<center><h1>Build your own exam!</h1></center><div id='Pat' class='noSelect WBRButton stepTwo'><br />USMLE Format</div><div id='Flash' class='noSelect WBRButton stepTwo'><br />Flash Cards</div><br /><br /><br />";
$("#exam").html(divs);
$("#exam").html(divs);
$('.stepTwo').click(event.data, stepThree);
$('.stepTwo').click(event.data, tutorOrExam);
}
}
function stepThree(event) {
function tutorOrExam(event) {
event.data.qbank = $(this).attr('id');
event.data.qbank = $(this).attr('id');
        var buttons = '';
        buttons = "<div id='Tutor' class='noSelect WBRButton ToE'><br />Tutor Mode</div><div id='Exam' class='noSelect WBRButton ToE'><br />Exam Mode</div><br /><br /><br />";
$("#exam").append(buttons);
        $('.ToE').click(event.data, timerToggle);
}
function timerToggle(event) {
        event.data.examType = $(this).attr('id');
var form = null;
var form = null;
form = "<div id='yes' class='noSelect WBRButton stepThree'><br />Enable Timer</div><div id='nop' class='noSelect WBRButton stepThree'><br />Disable Timer</div><br /><br /><br />";
form = "<div id='yes' class='noSelect WBRButton stepThree'><br />Enable Timer</div><div id='nop' class='noSelect WBRButton stepThree'><br />Disable Timer</div><br /><br /><br />";
Line 123: Line 147:
$("#exam").append(form);
$("#exam").append(form);
}
}
$('.stepThree').click(event.data, stepFour);
$('#yes').click(event.data, timerDuration);
$('#nop').click(event.data, selectCats);
}
}
function stepFour(event) {
function timerDuration(event) {
 
if ($(this).attr('id') === 'nop') {
event.data.timer = false;
$('.stepFour').trigger('click', event.data);
} else {
event.data.timer = true;
event.data.timer = true;
var form = null;
var form = null;
Line 137: Line 157:
$("#exam").append(form);
$("#exam").append(form);
}
}
$('.stepFour').click(event.data, stepFive);
$('.stepFour').click(event.data, selectCats);
}
}
}
function stepFive(event) {
function selectCats(event) {
var categories = [];
var categories = [];
var table = null;
var table = null;
event.data.timeAmt = parseInt($(this).attr("id"), 10) * 6000;
table = "<br /><b>Select All That Apply:</b><br /><br /><br />"; ;
table = "<br /><b>Select All That Apply:</b><br /><br /><br />"; ;
if (event.data.examtype === "MCAT") {
if (event.data.examtype === "MCAT") {
Line 223: Line 243:
});
});


$("#CountQ").click(event.data, stepSix);
$("#CountQ").click(event.data, selectExamLength);
}
}


function stepSix(event) {
function selectExamLength(event) {
var Main = new Array();
var Main = new Array();
var Sub = new Array();
var Sub = new Array();
Line 254: Line 274:
$("#exam").append(output);
$("#exam").append(output);
}
}
$("#Go").click(event.data, stepSeven);
$("#Go").click(event.data, inputValidation);
} else {
} else {
alert('Please ensure you have both a main and a sub category selected');
alert('Please ensure you have both a main and a sub category selected');
Line 260: Line 280:
}
}


function stepSeven(event) {
function inputValidation(event) {
if ($("#numQues").val().length > 0 && parseInt($("#numQues").val(), 10) <= parseInt($("#countShow").html(), 10) && parseInt($("#numQues").val(), 10) > 0) {
if ($("#numQues").val().length > 0 && parseInt($("#numQues").val(), 10) <= parseInt($("#countShow").html(), 10) && parseInt($("#numQues").val(), 10) > 0) {
event.data.numQuestion = $("#numQues").val();
event.data.numQuestion = $("#numQues").val();
$("#exam").html("<img src='http://static.wikidoc.org/5/51/Index.gif' />");
$("#exam").html("<img src='http://static.wikidoc.org/5/51/Index.gif' />");
if (event.data.timer) {
event.data.examTimer = $.timer(function () {
var rem = parseInt($("#timeRem").html());
$('#timerBox').css("visibility", "visible");
$('#timerBox').html(formatTime(rem));
if (rem == 0) {
event.data.examTimer.stop();
$("#content").click(event.data, endExam);
} else {
var temp = rem - 7;
$("#timeRem").html(temp.toString());
if (rem < 0) {
$("#timeRem").html("0");
}
}
}, 70, false);
event.data.examTimer.toggle();
}
loadNextQuestion(event.data);
loadNextQuestion(event.data);
} else {
} else {
alert('Invalid entry in number of questions input');
alert('Invalid entry in number of questions input');
}
}
}
// Common functions
function pad(number, length) {
var str = '' + number;
while (str.length < length) {
str = '0' + str;
}
return str;
}
function formatTime(time) {
var min = parseInt(time / 6000),
sec = parseInt(time / 100) - (min * 60),
hundredths = pad(time - (sec * 100) - (min * 6000), 2);
return (min > 0 ? pad(min, 2) : "00") + ":" + pad(sec, 2);
}
}


Line 303: Line 356:
obj.AnswerDExp = temp.AnswerDExp[0];
obj.AnswerDExp = temp.AnswerDExp[0];
obj.AnswerEExp = temp.AnswerEExp[0];
obj.AnswerEExp = temp.AnswerEExp[0];
obj.selectedAnswer = null;
obj.isParsed = 0;
obj.isParsed = 0;
obj.lastParsed = 0;
obj.lastParsed = 0;
                                obj.creditReceived = 0;
                                obj.selectedAnswer = 'F';
event.examQuestions[event.examQuestions.length] = obj;
event.examQuestions[event.examQuestions.length] = obj;
if (event.examQuestions.length < event.numQuestion) {
if (event.examQuestions.length < event.numQuestion) {
Line 317: Line 371:
}
}
function addToNavBar(exam) {
function addToNavBar(exam) {
$("#exam").html("<div id='navPane'></div><div id='examSpace'></div>");
$("#exam").html("<div id='navPane'></div><div id='examSpace'></div><span id='timeRem' style='height: 0px; visibility: hidden'>" + exam.timeAmt.toString() + "</span>");
if (exam.timer) {
$("#bodyContent").append("<div style='position:absolute; z-index:1000; width:300px; height:50px; top:0px; right:0px; border: 1px solid #000; background-color:#EEE; float:right; visibility:hidden;' id='timerBox'>Testing.</div>");
$("#timerBox").click(function () {
exam.examTimer.toggle();
});
}
$.each(exam.examQuestions, function (index, value) {
$.each(exam.examQuestions, function (index, value) {
$("#navPane").append("<div id='" + index + "' class='navPaneButton'>" + value.PageName + " : " + (index - -1) + "</div>");
$("#navPane").append("<div id='" + index + "' class='navPaneButton'>" + value.PageName + " : " + (index - -1) + "</div>");
});
});
$("#" + exam.currentQuestion).addClass("boxed");
$(".navPaneButton").click(exam, questionNavigation);
$(".navPaneButton").click(exam, questionNavigation);
questionDisplay(exam);
questionDisplay(exam);
Line 332: Line 393:
parseQuestions(exam);
parseQuestions(exam);
} else {
} else {
var htmlStuff = "<b>Author:</b> " + obj.PageAuthor + "<br /><br /><b>Question " + (exam.currentQuestion - -1) + " / " + (exam.examQuestions.length - -1) + "</b><br /><br />" + obj.Prompt + "<br />";
var htmlStuff = "<b>Author:</b> " + obj.PageAuthor + "<br /><br /><b>Question " + (exam.currentQuestion - -1) + " / " + (exam.examQuestions.length) + "</b><br /><br />" + obj.Prompt + "<br />";
if (obj.AnswerA && obj.AnswerA.length > 0) {
if (obj.AnswerA && obj.AnswerA.length > 0) {
htmlStuff += "<div class='answer answerNoBorder' id='A'>  " + obj.AnswerA + "</div>";
htmlStuff += "<div class='answer answerNoBorder' id='A'>  " + obj.AnswerA + "</div>";
}
}
if (obj.AnswerAExp && obj.AnswerAExp.length > 0) {
if (obj.AnswerAExp && obj.AnswerAExp.length > 0 && exam.examType === "Tutor") {
htmlStuff += "<div class='answerExp explanationHide' id='Ae'><i>&nbsp;&nbsp;&nbsp;&nbsp;" + obj.AnswerAExp + "</i></div>";
htmlStuff += "<div class='answerExp explanationHide' id='Ae'><i>&nbsp;&nbsp;&nbsp;&nbsp;" + obj.AnswerAExp + "</i></div>";
}
}
Line 342: Line 403:
htmlStuff += "<div class='answer answerNoBorder' id='B'> " + obj.AnswerB + "</div>";
htmlStuff += "<div class='answer answerNoBorder' id='B'> " + obj.AnswerB + "</div>";
}
}
if (obj.AnswerBExp && obj.AnswerBExp.length > 0) {
if (obj.AnswerBExp && obj.AnswerBExp.length > 0 && exam.examType === "Tutor") {
htmlStuff += "<div class='answerExp explanationHide' id='Be'><i>&nbsp;&nbsp;&nbsp;&nbsp;" + obj.AnswerBExp + "</i></div>";
htmlStuff += "<div class='answerExp explanationHide' id='Be'><i>&nbsp;&nbsp;&nbsp;&nbsp;" + obj.AnswerBExp + "</i></div>";
}
}
Line 348: Line 409:
htmlStuff += "<div class='answer answerNoBorder' id='C'> " + obj.AnswerC + "</div>";
htmlStuff += "<div class='answer answerNoBorder' id='C'> " + obj.AnswerC + "</div>";
}
}
if (obj.AnswerCExp && obj.AnswerCExp.length > 0) {
if (obj.AnswerCExp && obj.AnswerCExp.length > 0 && exam.examType === "Tutor") {
htmlStuff += "<div class='answerExp explanationHide' id='Ce'><i>&nbsp;&nbsp;&nbsp;&nbsp;" + obj.AnswerCExp + "</i></div>";
htmlStuff += "<div class='answerExp explanationHide' id='Ce'><i>&nbsp;&nbsp;&nbsp;&nbsp;" + obj.AnswerCExp + "</i></div>";
}
}
Line 354: Line 415:
htmlStuff += "<div class='answer answerNoBorder' id='D'> " + obj.AnswerD + "</div>";
htmlStuff += "<div class='answer answerNoBorder' id='D'> " + obj.AnswerD + "</div>";
}
}
if (obj.AnswerDExp && obj.AnswerDExp.length > 0) {
if (obj.AnswerDExp && obj.AnswerDExp.length > 0 && exam.examType === "Tutor") {
htmlStuff += "<div class='answerExp explanationHide' id='De'><i>&nbsp;&nbsp;&nbsp;&nbsp;" + obj.AnswerDExp + "</i></div>";
htmlStuff += "<div class='answerExp explanationHide' id='De'><i>&nbsp;&nbsp;&nbsp;&nbsp;" + obj.AnswerDExp + "</i></div>";
}
}
Line 360: Line 421:
htmlStuff += "<div class='answer answerNoBorder' id='E'> " + obj.AnswerE + "</div>";
htmlStuff += "<div class='answer answerNoBorder' id='E'> " + obj.AnswerE + "</div>";
}
}
if (obj.AnswerEExp && obj.AnswerEExp.length > 0) {
if (obj.AnswerEExp && obj.AnswerEExp.length > 0 && exam.examType === "Tutor") {
htmlStuff += "<div class='answerExp explanationHide' id='Ee'><i>&nbsp;&nbsp;&nbsp;&nbsp;" + obj.AnswerEExp + "</i></div>";
htmlStuff += "<div class='answerExp explanationHide' id='Ee'><i>&nbsp;&nbsp;&nbsp;&nbsp;" + obj.AnswerEExp + "</i></div>";
}
}
$("#examSpace").html(htmlStuff);
$("#examSpace").html(htmlStuff);
 
                if(exam.examQuestions[exam.currentQuestion].selectedAnswer !== 'F'){
$("div.answer").mouseover(function () {
                $("#"+exam.examQuestions[exam.currentQuestion].selectedAnswer).addClass("boxed");
                }
                $("div.answer").mouseover(function () {
$(this).css({
$(this).css({
'border' : '5px solid #000'
'border' : '5px solid #000'
Line 375: Line 438:
});
});
$("div.answer").click(exam, answerClicked);
$("div.answer").click(exam, answerClicked);
}
}
function questionReview(exam) {
var obj = new Object();
obj = exam.examQuestions[exam.currentQuestion];
if (obj.isParsed === 0) {
$("#examSpace").html("<img src='http://static.wikidoc.org/5/51/Index.gif' />");
parseQuestions(exam);
} else {
var htmlStuff = "<b>Author:</b> " + obj.PageAuthor + "<br /><br /><b>Question " + (exam.currentQuestion - -1) + " / " + (exam.examQuestions.length) + "</b><br /><br />" + obj.Prompt + "<br />";
if (obj.AnswerA && obj.AnswerA.length > 0) {
htmlStuff += "<div class='answer answerNoBorder' id='A'>  " + obj.AnswerA + "</div>";
}
if (obj.AnswerAExp && obj.AnswerAExp.length > 0 && exam.examType === "Tutor") {
htmlStuff += "<div class='answerExp explanationHide' id='Ae'><i>&nbsp;&nbsp;&nbsp;&nbsp;" + obj.AnswerAExp + "</i></div>";
}
if (obj.AnswerB && obj.AnswerB.length > 0) {
htmlStuff += "<div class='answer answerNoBorder' id='B'> " + obj.AnswerB + "</div>";
}
if (obj.AnswerBExp && obj.AnswerBExp.length > 0 && exam.examType === "Tutor") {
htmlStuff += "<div class='answerExp explanationHide' id='Be'><i>&nbsp;&nbsp;&nbsp;&nbsp;" + obj.AnswerBExp + "</i></div>";
}
if (obj.AnswerC && obj.AnswerC.length > 0) {
htmlStuff += "<div class='answer answerNoBorder' id='C'> " + obj.AnswerC + "</div>";
}
if (obj.AnswerCExp && obj.AnswerCExp.length > 0 && exam.examType === "Tutor") {
htmlStuff += "<div class='answerExp explanationHide' id='Ce'><i>&nbsp;&nbsp;&nbsp;&nbsp;" + obj.AnswerCExp + "</i></div>";
}
if (obj.AnswerD && obj.AnswerD.length > 0) {
htmlStuff += "<div class='answer answerNoBorder' id='D'> " + obj.AnswerD + "</div>";
}
if (obj.AnswerDExp && obj.AnswerDExp.length > 0 && exam.examType === "Tutor") {
htmlStuff += "<div class='answerExp explanationHide' id='De'><i>&nbsp;&nbsp;&nbsp;&nbsp;" + obj.AnswerDExp + "</i></div>";
}
if (obj.AnswerEExp && obj.AnswerE.length > 0) {
htmlStuff += "<div class='answer answerNoBorder' id='E'> " + obj.AnswerE + "</div>";
}
if (obj.AnswerEExp && obj.AnswerEExp.length > 0 && exam.examType === "Tutor") {
htmlStuff += "<div class='answerExp explanationHide' id='Ee'><i>&nbsp;&nbsp;&nbsp;&nbsp;" + obj.AnswerEExp + "</i></div>";
}
$("#examSpace").html(htmlStuff);
                if(exam.examQuestions[exam.currentQuestion].selectedAnswer && exam.examQuestions[exam.currentQuestion].RightAnswer == exam.examQuestions[exam.currentQuestion].selectedAnswer){
                $("#" + exam.examQuestions[exam.currentQuestion].RightAnswer).addClass("boxed");
                } else {
             
                $("#" + exam.examQuestions[exam.currentQuestion].RightAnswer).addClass("redBoxed");
                $("#" + exam.examQuestions[exam.currentQuestion].RightAnswer).removeClass("answerNoBorder");
                $("#" + exam.examQuestions[exam.currentQuestion].selectedAnswer).addClass("boxed");
                $("#" + exam.examQuestions[exam.currentQuestion].selectedAnswer).removeClass("answerNoBorder");
                }
$("#examSpace").append("<br /><br />The correct answer is: " + exam.examQuestions[exam.currentQuestion].RightAnswer + "<br /><br /><i>" + exam.examQuestions[exam.currentQuestion].Explanation + "</i><br />");
if (exam.currentQuestion > 0) {
$("#examSpace").append("<div id='back' class='noSelect WBRButton'><br />Back</div>");
$("#back").click(exam, questionReviewNavigation);
}
if (exam.currentQuestion < exam.examQuestions.length - 1) {
$("#examSpace").append("<div id='next' class='noSelect WBRButton'><br />Next</div>");
$("#next").click(exam, questionReviewNavigation);
}
$("#examSpace").append("<div id='finish' class='noSelect WBRButton'><br />Finish</div>");
$("#finish").click(function () {
window.location.replace("http://wikidoc.org/index.php?title=Special:UserLogin&returnto=User%3AMatt+Pijoan");
});
}
}
}
}


function answerClicked(event) {
function answerClicked(event) {
event.data.examQuestions[event.data.currentQuestion].selectedAnswer = event.target.id;
        $(".answer").removeClass("boxed");
if (event.data.examQuestions[event.data.currentQuestion].RightAnswer === $(this).attr("id")) {
event.data.examQuestions[event.data.currentQuestion].selectedAnswer = $(this).attr("id");
if (event.data.examQuestions[event.data.currentQuestion].creditRecieved === false && event.data.examQuestions[event.data.currentQuestion].selectedAnswer === event.data.examQuestions[event.data.currentQuestion].RightAnswer) {
event.data.answeredRight += 1;
event.data.answeredRight += 1;
                event.data.examQuestions[event.data.currentQuestion].creditRecieved = true;
}
if (event.data.examType === "Tutor") {
$(".answerExp").css("height", "auto");
$(".answerExp").css("visibility", "visible");
}
$("div.answer").unbind('click');
if (event.data.examType === "Exam") {
$("#" + event.data.examQuestions[event.data.currentQuestion].selectedAnswer).addClass("boxed");
        } else if (event.data.examType === "Tutor") {
$("#examSpace").append("<br /><br />The correct answer is: " + event.data.examQuestions[event.data.currentQuestion].RightAnswer + "<br /><br /><i>" + event.data.examQuestions[event.data.currentQuestion].Explanation + "</i><br />");
                $("#" + event.data.examQuestions[event.data.currentQuestion].selectedAnswer).addClass("boxed");
                $("#" + event.data.examQuestions[event.data.currentQuestion].RightAnswer).addClass("redBoxed");
}
}
$(".answerExp").css("height", "auto");
$(".answerExp").css("visibility", "visible");
$(event.target).css({
'border' : '5px solid #000'
});
$("#examSpace").append("<br /><br />The correct answer is: " + event.data.examQuestions[event.data.currentQuestion].RightAnswer + "<br /><br /><i>" + event.data.examQuestions[event.data.currentQuestion].Explanation + "</i><br />");
if (event.data.currentQuestion > 0) {
if (event.data.currentQuestion > 0) {
$("#examSpace").append("<div id='back' class='noSelect WBRButton'><br />Back</div>");
$("#examSpace").append("<div id='back' class='noSelect WBRButton'><br />Back</div>");
Line 403: Line 539:


}
}


function questionNavigation(event) {
function questionNavigation(event) {
Line 415: Line 553:
$("#" + event.data.currentQuestion).addClass("boxed");
$("#" + event.data.currentQuestion).addClass("boxed");
questionDisplay(event.data);
questionDisplay(event.data);
}
function questionReviewNavigation(event) {
$("#" + event.data.currentQuestion).removeClass("boxed");
if ($(this).attr("id") === "back") {
event.data.currentQuestion--;
} else if ($(this).attr("id") === "next") {
event.data.currentQuestion++;
} else if ($(this).attr("class") === "navPaneButton") {
event.data.currentQuestion = $(this).attr("id");
}
$("#" + event.data.currentQuestion).addClass("boxed");
questionReview(event.data);
}
}
function endExam(event) {
function endExam(event) {
        if(event.data.timer){
        $('#timerBox').html("");
        $('#timerBox').css("visibility","hidden");
        event.data.examTimer.stop();
        }
$("#examSpace").html("");
$("#examSpace").html("");
var datas;
var datas;
datas = "You answered " + event.data.answeredRight + " out of " + event.data.examQuestions.length + " correctly.<br /> Your percentage score is: ";
datas = "You answered " + event.data.answeredRight + " out of " + event.data.examQuestions.length + " correctly.<br /> Your percentage score is: ";
var percent = (event.data.answeredRight / event.data.numQuestion) * 100;
var percent = (event.data.answeredRight / event.data.numQuestion) * 100;
datas += percent + "%";
datas += percent + "%<br /><br />Click the Navigation Buttons on the left to review the questions you answered.";
$("#examSpace").append(datas);
$("#examSpace").append(datas);
        $(".navPaneButton").unbind('click');
        $(".navPaneButton").click(event.data, questionReviewNavigation);
}
}
function parseQuestions(examObj) {
function parseQuestions(examObj) {
Line 587: Line 745:
return swap.split(' ').join('+');
return swap.split(' ').join('+');
}
}
 
$(document).ready(ensureLoggedIn);
$(document).ready(stepOne);
</script>
</script>
<div id="exam"></div>
<div id="exam"></div>
</includeonly>
</includeonly>

Revision as of 17:39, 1 August 2013