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);