Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/examples/QuickMultiplication/js/lesson.js
blob: ebc85b06ebe9f0bbfa20b24fecf8a9663e28c099 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
$(document).ready(function(){
	var k = Karma ({
		svg: [{domId:"truck", name:"truck"}]
	});

	k.ready(function(){
		var TIMER_DELAY=1000, TOTAL_SECONDS=10;
        var boxInTruckA=0,boxInTruckB=0,level=1,num1=0,num2=0,numTime=TOTAL_SECONDS;
        var selectedOpt="#optA";
		var isRunning=false;
		var isFirstRun=true;
        var timer;

        var init = function() {
            $("#happyFace",k.svg.truck.root).hide();
            $("#sadFace",k.svg.truck.root).hide();
            $("#rightBox",k.svg.truck.root).text("");
            $(selectedOpt,k.svg.truck.root).animate({svgTransform: 'translate(0 -10)'},500);
            $("#box1",k.svg.truck.root).text("");
            $("#box2",k.svg.truck.root).text("");
        };

        var addBoxInTruck = function(truckName,num) {
            $("#"+truckName+"box"+num,k.svg.truck.root).show();
        };

		var timesOut =function(){
			numTime--;
			$("#tmrValue",k.svg.truck.root).text(numTime);
			if (numTime===0) {
                boxInTruckA++;
                addBoxInTruck("truckA",boxInTruckA);
                if (boxInTruckA===9) {
					$("#truckAtext",k.svg.truck.root).show();
                    $("#truckA",k.svg.truck.root).animate({svgTransform: 'translate(600)'}, 4000);
                    endGame();
                    return;
                }
                numTime=TOTAL_SECONDS;
                showQuestion();
			}
            timer = window.setTimeout(timesOut,TIMER_DELAY);
		};
        
        var showQuestion = function() {
            $("#rightBox",k.svg.truck.root).text(num1+" X "+num2+" = "+num1*num2);
            num1=Karma.rand(2+level,3+(level*3));
            num2=Karma.rand(2+level,num1);
            $("#box1",k.svg.truck.root).text(num1);
            $("#box2",k.svg.truck.root).text(num2);
        };

        var checkAnswer = function(event) {
            if(isRunning===true){
                $("#answerBox").css('background-color','white');
                if(event.keyCode===13) {
                    $("#happyFace",k.svg.truck.root).hide();
                    $("#sadFace",k.svg.truck.root).hide();
                    if($("#answerBox").val()==(num1*num2)) {
                        $("#happyFace",k.svg.truck.root).show();
                        numTime=TOTAL_SECONDS;
                        boxInTruckB++;
                        addBoxInTruck("truckB",boxInTruckB);
                        if (boxInTruckB===9) {
							$("#truckBtext",k.svg.truck.root).show();
                            $("#truckB",k.svg.truck.root).animate({svgTransform: 'translate(600 198)'}, 4000);
                            endGame();
                            return;
                        }
                        else {
                            showQuestion();
                        }
                    }
                    else {
                        $("#sadFace",k.svg.truck.root).show();
                        $("#answerBox").css('background-color','red');
                    }
                    $("#answerBox").val('');
                }
            }
        };

        var addEvent = function() {
            $("#answerBox").keydown(checkAnswer);
			$("#btnStart",k.svg.truck.root).click(startGame);
            $(".optBtns",k.svg.truck.root).click(function(){
				if(isFirstRun===true) {
					if (selectedOpt==="#"+this.id) {  //if same option clicked, do nothing
						return;
					}
					$(selectedOpt,k.svg.truck.root).animate({svgTransform: 'translate(0 0)'},500);
					$(this).animate({svgTransform: 'translate(0 -10)'},500);
					selectedOpt="#"+this.id;
					level = selectedOpt.charCodeAt(4) - 64;  //A=65, B=66, C=67
				}
            });
        };

        var endGame=function() {
			isRunning=false;
            clearTimeout(timer);
        };

		var startGame = function() {
			if(isFirstRun===true) {
				$(".box",k.svg.truck.root).hide();
				$(".truckText",k.svg.truck.root).hide();
				isRunning=true;
				isFirstRun=false;
				timesOut();
				showQuestion();
				$("#answerBox").val('').focus();
			}
		}

		addEvent();
        init();
	});
});