summaryrefslogtreecommitdiff
path: root/www/js/api.js
diff options
context:
space:
mode:
Diffstat (limited to 'www/js/api.js')
-rw-r--r--www/js/api.js120
1 files changed, 51 insertions, 69 deletions
diff --git a/www/js/api.js b/www/js/api.js
index 67c8320..c92d3d7 100644
--- a/www/js/api.js
+++ b/www/js/api.js
@@ -28,7 +28,7 @@ window.html5ks.api = {
return false;
}
return true;
- };
+ }.bind(this);
if (nextVol()) this._fading[channel] = setInterval(nextVol, 50);
return when.resolve();
},
@@ -214,6 +214,7 @@ window.html5ks.api = {
runInst: function (inst) {
+ console.debug(inst);
var cmd = inst[0].replace(/"/g, '');
return this._safeCall(cmd, this[cmd], inst.slice(1));
},
@@ -273,79 +274,60 @@ window.html5ks.api = {
Show: function (imspec) {
var deferred = when.defer();
- var name =
console.log(imspec);
- return when.resolve();
- var lookup = document.getElementById(name),
- el = lookup || document.createElement("img");
- if (!location && !lookup) location = "center";
- el.onload = function () {
- if (location) {
- // calculate position
- // we don't actually know how big the image is till we fetch it
- var pos = html5ks.api._positions[location];
- if (pos) {
- el.style.left = pos.xpos * 800 + "px";
- el.style.top = pos.ypos * 600 + "px";
- el.style.marginLeft = "-" + pos.xanchor * el.width + "px";
- el.style.marginTop = "-" + pos.yanchor * el.height + "px";
- }
- el.style.display = "block";
- }
- html5ks.spin(-1);
- deferred.resolve();
- };
- el.onerror = function () {
- el.parentNode.removeChild(el);
- html5ks.spin(-1);
- deferred.resolve();
- };
- var nom = name;
- if (type && type !== "None") {
- nom = name + "_" + type;
- }
- var image = html5ks.data.images[nom];
- switch (typeof image) {
- case "string":
- if (image.substring(0, 1) === "#") {
- el = document.createElement("div");
- el.style.backgroundColor = image;
- el.style.height = "100%";
- html5ks.elements.show.appendChild(el);
- deferred.resolve();
- return deferred.promise;
- }
- break;
- case "undefined":
- switch (name) {
- case "bg":
- image = "bgs/" + type + ".jpg";
+ html5ks.fetch("json", "ui_settings").then(function (d) {
+ var name = imspec[0].join(' ');
+ var image = d[name];
+ if (!image) {
+ switch (imspec[0][0]) {
+ case 'url':
+ image = {eval: imspec[0][1]};
break;
- case "url":
- name = type;
- image = type;
+ case 'bg':
+ image = {eval: "bgs/" + imspec[0][1] + ".jpg"};
break;
default:
- image = "sprites/" + name + "/" + (type && type.indexOf("_close") > -1 ? "close/" : "") + name + "_" + type + ".png";
+ return deferred.resolve();
}
- }
- if (typeof image === "string") {
- image = {image: image};
- }
- var src = "";
- if (Modernizr.webp) {
- src = image.image.replace(/\.[a-z]+$/, ".webp");
- } else {
- src = image.image;
- }
- el.id = name;
- el.src = "dump/" + src;
- html5ks.spin(1);
- // prevent FOUIPC (flash of incorrectly placed content)
- if (!lookup) {
- el.style.display = "none";
- html5ks.elements.show.appendChild(el);
- }
+ }
+ console.log(image);
+ var lookup = document.getElementById(name),
+ el = lookup || document.createElement("img");
+ if (!location && !lookup) location = "center";
+ el.onload = function () {
+ if (location) {
+ // calculate position
+ // we don't actually know how big the image is till we fetch it
+ var pos = html5ks.api._positions[location];
+ if (pos) {
+ el.style.left = pos.xpos * 800 + "px";
+ el.style.top = pos.ypos * 600 + "px";
+ el.style.marginLeft = "-" + pos.xanchor * el.width + "px";
+ el.style.marginTop = "-" + pos.yanchor * el.height + "px";
+ }
+ el.style.display = "block";
+ }
+ html5ks.spin(-1);
+ deferred.resolve();
+ };
+ el.onerror = function () {
+ el.parentNode.removeChild(el);
+ html5ks.spin(-1);
+ deferred.resolve();
+ };
+ var src = image.eval;
+ if (Modernizr.webp) {
+ src = src.replace(/\.[a-z]+$/, ".webp");
+ }
+ el.id = name;
+ el.src = "dump/" + src;
+ html5ks.spin(1);
+ // prevent FOUIPC (flash of incorrectly placed content)
+ if (!lookup) {
+ el.style.display = "none";
+ html5ks.elements.show.appendChild(el);
+ }
+ });
return deferred.promise;
},
hide: function (name) {