split engine/ into manifold/ (backend oriented) and unfold/ (the UI)
[unfold.git] / unfold / js / onavail.js
diff --git a/unfold/js/onavail.js b/unfold/js/onavail.js
new file mode 100644 (file)
index 0000000..6740503
--- /dev/null
@@ -0,0 +1,18 @@
+onavail_debug=false;
+
+function onFunctionAvailable(sMethod, oCallback, oObject, bScope) {
+    if (eval('typeof ' + sMethod) == 'function') {
+       if (onavail_debug) console.log("onFunctionAvailable, running");
+        bScope ? oCallback.call(oObject) : oCallback(oObject);
+    } else { 
+       if (onavail_debug) console.log("onFunctionAvailable, delaying for 50 ms");
+        setTimeout(function () {onFunctionAvailable(sMethod, oCallback, oObject, bScope);}, 50);
+    }
+}       
+function onObjectAvailable(sMethod, oCallback, oObject, bScope) {
+    if (eval('typeof ' + sMethod) == 'object') {
+        bScope ? oCallback.call(oObject) : oCallback(oObject);
+    } else {
+        setTimeout(function () {onObjectAvailable(sMethod, oCallback, oObject, bScope);}, 50);
+    }
+}