基础版本
diff --git a/www/js/lib/aui-dialog.js b/www/js/lib/aui-dialog.js
new file mode 100644
index 0000000..90e85aa
--- /dev/null
+++ b/www/js/lib/aui-dialog.js
@@ -0,0 +1,125 @@
+/**
+ * aui-dialog.js
+ * @author 流浪男
+ * @todo more things to abstract, e.g. Loading css etc.
+ * Licensed under the MIT license.
+ * http://www.opensource.org/licenses/mit-license.php
+ */
+(function( window, undefined ) {
+    "use strict";
+    var auiDialog = function() {
+    };
+    var isShow = false;
+    auiDialog.prototype = {
+        params: {
+            title:'',
+            msg:'',
+            buttons: ['取消','确定'],
+            input:false
+        },
+        create: function(params,callback) {
+        	var self = this;
+            var dialogHtml = '';
+            var buttonsHtml = '';
+            var headerHtml = params.title ? '<div class="aui-dialog-header">' + params.title + '</div>' : '<div class="aui-dialog-header">' + self.params.title + '</div>';
+            if(params.input){
+                params.text = params.text ? params.text: '';
+                var msgHtml = '<div class="aui-dialog-body"><input type="text" placeholder="'+params.text+'"></div>';
+            }else{
+                var msgHtml = params.msg ? '<div class="aui-dialog-body">' + params.msg + '</div>' : '<div class="aui-dialog-body">' + self.params.msg + '</div>';
+            }
+            var buttons = params.buttons ? params.buttons : self.params.buttons;
+            if (buttons && buttons.length > 0) {
+                for (var i = 0; i < buttons.length; i++) {
+                    buttonsHtml += '<div class="aui-dialog-btn" tapmode button-index="'+i+'">'+buttons[i]+'</div>';
+                }
+            }
+            var footerHtml = '<div class="aui-dialog-footer">'+buttonsHtml+'</div>';
+            dialogHtml = '<div class="aui-dialog">'+headerHtml+msgHtml+footerHtml+'</div>';
+            document.body.insertAdjacentHTML('beforeend', dialogHtml);
+            // listen buttons click
+            var dialogButtons = document.querySelectorAll(".aui-dialog-btn");
+            if(dialogButtons && dialogButtons.length > 0){
+                for(var ii = 0; ii < dialogButtons.length; ii++){
+                    dialogButtons[ii].onclick = function(){
+                        if(callback){
+                            if(params.input){
+                                callback({
+                                    buttonIndex: parseInt(this.getAttribute("button-index"))+1,
+                                    text: document.querySelector("input").value
+                                });
+                            }else{
+                                callback({
+                                    buttonIndex: parseInt(this.getAttribute("button-index"))+1
+                                });
+                            }
+                        };
+                        self.close();
+                        return;
+                    }
+                }
+            }
+            self.open();
+        },
+        open: function(){
+            if(!document.querySelector(".aui-dialog"))return;
+            var self = this;
+            document.querySelector(".aui-dialog").style.marginTop =  "-"+Math.round(document.querySelector(".aui-dialog").offsetHeight/2)+"px";
+            if(!document.querySelector(".aui-mask")){
+                var maskHtml = '<div class="aui-mask"></div>';
+                document.body.insertAdjacentHTML('beforeend', maskHtml);
+            }
+            // document.querySelector(".aui-dialog").style.display = "block";
+            setTimeout(function(){
+                document.querySelector(".aui-dialog").classList.add("aui-dialog-in");
+                document.querySelector(".aui-mask").classList.add("aui-mask-in");
+                document.querySelector(".aui-dialog").classList.add("aui-dialog-in");
+            }, 10)
+            document.querySelector(".aui-mask").addEventListener("touchmove", function(e){
+                e.preventDefault();
+            })
+            document.querySelector(".aui-dialog").addEventListener("touchmove", function(e){
+                e.preventDefault();
+            })
+            return;
+        },
+        close: function(){
+            var self = this;
+            document.querySelector(".aui-mask").classList.remove("aui-mask-in");
+            document.querySelector(".aui-dialog").classList.remove("aui-dialog-in");
+            document.querySelector(".aui-dialog").classList.add("aui-dialog-out");
+            if (document.querySelector(".aui-dialog:not(.aui-dialog-out)")) {
+                setTimeout(function(){
+                    if(document.querySelector(".aui-dialog"))document.querySelector(".aui-dialog").parentNode.removeChild(document.querySelector(".aui-dialog"));
+                    self.open();
+                    return true;
+                },200)
+            }else{
+                document.querySelector(".aui-mask").classList.add("aui-mask-out");
+                document.querySelector(".aui-dialog").addEventListener("webkitTransitionEnd", function(){
+                    self.remove();
+                })
+                document.querySelector(".aui-dialog").addEventListener("transitionend", function(){
+                    self.remove();
+                })
+            }
+        },
+        remove: function(){
+            if(document.querySelector(".aui-dialog"))document.querySelector(".aui-dialog").parentNode.removeChild(document.querySelector(".aui-dialog"));
+            if(document.querySelector(".aui-mask")){
+                document.querySelector(".aui-mask").classList.remove("aui-mask-out");
+            }
+            return true;
+        },
+        alert: function(params,callback){
+        	var self = this;
+            return self.create(params,callback);
+        },
+        prompt:function(params,callback){
+            var self = this;
+            params.input = true;
+            return self.create(params,callback);
+        }
+    };
+	window.auiDialog = auiDialog;
+})(window);
\ No newline at end of file