diff --git a/lib/client/edward.js b/lib/client/edward.js
index 16238584..40db4090 100644
--- a/lib/client/edward.js
+++ b/lib/client/edward.js
@@ -1,6 +1,6 @@
-var join, Util, DOM;
+var join, DOM;
-(function(global, join, DOM, exec) {
+(function(global, join, DOM, load) {
'use strict';
if (typeof module !== 'undefined' && module.exports)
@@ -10,31 +10,45 @@ var join, Util, DOM;
function edward() {
var Element,
+ ElementMsg,
+
ed = function(el, callback) {
Element = el || document.body;
loadFiles(callback);
};
+ function createMsg() {
+ var msg,
+ wrapper = document.createElement('div'),
+ html = '
/div>';
+
+ wrapper.innerHTML = html;
+ msg = wrapper.firstChild;
+
+ return msg;
+ }
+
ed.showMessage = function(text) {
- var msg, HIDE_TIME = 2000;
+ var HIDE_TIME = 2000;
/*
* Msg should be created and removed
* if it's not and just inner text
- * is changing, and hide and show of DOM
+ * is changing, when hide and show of DOM
* is called - bug occures: empty box
* with no text inside.
*/
- msg = DOM.load({
- name : 'div',
- className : 'edward-msg',
- parent : Element,
- inner : text,
- func : alert
- });
+
+ if (!ElementMsg) {
+ ElementMsg = createMsg();
+ Element.appendChild(ElementMsg);
+ }
+
+ ElementMsg.hidden = false;
+ ElementMsg.textContent = text;
setTimeout(function() {
- DOM.remove(msg, Element);
+ ElementMsg.hidden = true;
}, HIDE_TIME);
};
@@ -51,13 +65,11 @@ var join, Util, DOM;
}));
DOM.loadRemote('ace', function() {
- DOM.load.parallel([url, css], function() {
- exec(callback);
- });
+ load.parallel([url, css], callback);
});
}
return ed;
}
-})(this, join, DOM, Util.exec);
+})(this, join, DOM, DOM.load);