diff open-web-challenges.js @ 0:4845b395874c

Origination.
author Atul Varma <varmaa@toolness.com>
date Mon, 30 Mar 2009 13:33:32 -0700
parents
children fa2194344c43
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/open-web-challenges.js	Mon Mar 30 13:33:32 2009 -0700
@@ -0,0 +1,52 @@
+var OWC = {
+  _makeHintButton: function makeHintButton(hints) {
+    var hintButton = $('<div class="hint-button"></div>');
+    hintButton.text($('#msg-show-first-hint').text());
+    hintButton.click(
+      function() {
+        hints.find("p:hidden:first").fadeIn();
+        if (hints.find("p:hidden").length)
+          $(this).text($('#msg-show-another-hint').text());
+        else
+          $(this).fadeOut();
+      });
+    return hintButton;
+  },
+
+  load: function load(id) {
+    var challenge = $("#challenge-" + id);
+    var content = challenge.find(".content").clone();
+    var current = $("#current-challenge");
+    current.empty();
+    current.append(content);
+
+    var hints = $('<div class="hints"></div>');
+    hints.append(challenge.find(".hints").clone());
+    hints.find("p").hide();
+    current.append(this._makeHintButton(hints));
+    current.append(hints);
+
+    var validatorCode = challenge.find(".validator").text();
+
+    var validate = eval("(" + validatorCode + ")");
+
+    function maybeDisplaySuccess() {
+      if (validate(current)) {
+        var success= $('<div class="success"></div>');
+        success.text($('#msg-success').text());
+        success.hide();
+        current.append(success);
+        success.slideDown("slow");
+        window.clearInterval(intervalId);
+      }
+    }
+    var intervalId = window.setInterval(maybeDisplaySuccess, 100);
+
+    current.fadeIn();
+  }
+};
+
+$(window).ready(
+  function() {
+    OWC.load(1);
+  });