| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- var broken = "img/egg-broken.svg";
- var maxId;
- document.addEventListener("DOMContentLoaded", function() {
- document.getElementById("egg1").style.marginTop = rnd(5) + "em";
- document.getElementById("egg2").style.marginTop = rnd(15) + "em";
- document.getElementById("egg3").style.marginTop = rnd(5) + "em";
- document.getElementById("egg4").style.marginTop = rnd(15) + "em";
- document.getElementById("egg5").style.marginTop = rnd(5) + "em";
- });
- function rnd(range) {
- return Math.floor((Math.random() * range));
- }
- function findEgg1() {
- httpGet("/api/greet/", function(data) {
- document.getElementById("title").textContent = data;
- document.getElementById("egg1").src = "img/egg1.svg";
- }, function () {
- document.getElementById("egg1").src = broken;
- });
- }
- function findEgg2() {
- getJson("GET", "/api/greet/", null, function(data) {
- if (data.title && data.subtitle) {
- document.getElementById("title").textContent = data.title;
- document.getElementById("subtitle").textContent = data.subtitle;
- document.getElementById("egg2").src = "img/egg2.svg";
- } else {
- document.getElementById("egg2").src = broken;
- }
- }, function () {
- document.getElementById("egg2").src = broken;
- });
- }
- function findEgg3() {
- var nums = [];
- var count = 50 + rnd(50);
- var start = rnd(50);
- var end = start + rnd(count - start);
- var answer = 0;
- for (var i = 0; i < count; i++) {
- var r = rnd(100);
- nums.push(r);
- if (i >= start && i < end) {
- answer += r
- }
- }
- var requestBody = {start: start, end: end, numbers: nums};
- getJson("POST", "/api/sum/", requestBody, function(data) {
- if (data.answer === answer && data.contributers === (end - start)) {
- document.getElementById("egg3").src = "img/egg3.svg";
- } else {
- document.getElementById("egg3").src = broken;
- }
- }, function () {
- document.getElementById("egg3").src = broken;
- });
- }
- function findEgg4() {
- var name = document.getElementById("name").value;
- var message = document.getElementById("message").value;
- if (!name || !message) {
- document.getElementById("egg4").src = broken;
- }
- var requestBody = {
- name: name,
- message: message
- };
- getJson("POST", "/api/store/", requestBody, function(data) {
- if (data.id) {
- maxId = data.id;
- document.getElementById("egg4").src = "img/egg4.svg";
- } else {
- document.getElementById("egg4").src = broken;
- }
- }, function () {
- document.getElementById("egg4").src = broken;
- });
- }
- function findEgg5() {
- if (!maxId) {
- document.getElementById("egg5").src = broken;
- return;
- }
- var id = 1 + rnd(maxId);
- getJson("GET", "/api/store/"+ id, null, function(data) {
- if (data.name && data.message) {
- document.getElementById("subtitle").textContent = data.message + " -- " + data.name;
- document.getElementById("egg5").src = "img/egg5.svg";
- } else {
- document.getElementById("egg5").src = broken;
- }
- }, function() {
- document.getElementById("egg5").src = broken;
- });
- }
- function httpGet(url, callbackOK, callbackError) {
- var req = new XMLHttpRequest();
- req.onreadystatechange = function() {
- if (req.readyState === XMLHttpRequest.DONE && req.status === 200) {
- callbackOK(req.responseText);
- } else {
- callbackError();
- }
- };
- req.open("GET", url, true);
- req.setRequestHeader("Accept", "text/plain");
- req.send(null);
- }
- function getJson(action, url, data, callbackOK, callbackError) {
- var req = new XMLHttpRequest();
- req.onreadystatechange = function() {
- if (req.readyState === XMLHttpRequest.DONE && req.status === 200
- && req.getResponseHeader("Content-Type").indexOf("application/json") !== -1) {
- callbackOK(JSON.parse(req.responseText));
- } else {
- callbackError();
- }
- };
- req.open(action, url, true);
- req.setRequestHeader("Accept", "application/json");
- req.send(JSON.stringify(data));
- }
|