blob: 9c7ec3e2421b6953388335dfe68d17d4b7fcfc22 (
about) (
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
|
(function($) {
$.fn.randomize = function(childElem) {
return this.each(function() {
var $this = $(this);
var elems = $this.children(childElem);
elems.each(function() {
$(this).data("sortIndex", Math.random());
});
elems.sort(function(a,b) { var as = $(a).data("sortIndex"); var bs = $(b).data("sortIndex"); return as < bs ? -1 : bs < as ? 1 : 0;});
$this.remove(childElem);
for(var i=0; i < elems.length; i++)
$this.append(elems[i]);
});
};
$.fn.fullclick = function(callback) {
var mousedown = false;
this.mousedown(function() {
mousedown = true;
});
this.mouseup(function() {
if (mousedown) {
callback.apply(this, arguments);
}
mousedown = false;
});
};
})(jQuery);
var startGame = (function () {
return function(source, target, message) {
var $message = $(message);
var $source = $(source);
var $target = $(target);
var $both = $source.add($target);
$source.randomize("li");
var areAllOver = function() {
return $source.find("li").size() == 0;
};
var areInOrder = function() {
var success = true;
$target.find("li").each(function(i, val) {
success = success && (i == $(val).data("index"));
});
return success;
};
var checkGameResult = function() {
if (areAllOver() && areInOrder()) {
$message.text("Well done!");
$target.addClass("success");
} else {
$message.text(null);
$target.removeClass("success");
}
};
$source.fullclick(function(event) {
if (event.target != $(source)[0]) {
$target.append(event.target);
checkGameResult();
}
});
$target.fullclick(function(event) {
if (event.target != $(target)[0]) {
$source.append(event.target);
checkGameResult();
}
});
$both.sortable({
connectWith: ".bible-game",
update: function (event) {
checkGameResult();
}
});
};
})();
|