123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- /**
- * @author ZhangHuihua@msn.com
- */
- $.setRegional("alertMsg", {
- title:{error:"Error", info:"Information", warn:"Warning", correct:"Successful", confirm:"Confirmation"},
- butMsg:{ok:"OK", yes:"Yes", no:"No", cancel:"Cancel"}
- });
- var alertMsg = {
- _boxId: "#alertMsgBox",
- _bgId: "#alertBackground",
- _closeTimer: null,
- _types: {error:"error", info:"info", warn:"warn", correct:"correct", confirm:"confirm"},
- _getTitle: function(key){
- return $.regional.alertMsg.title[key];
- },
- _keydownOk: function(event){
- if (event.keyCode == DWZ.keyCode.ENTER) event.data.target.trigger("click");
- return false;
- },
- _keydownEsc: function(event){
- if (event.keyCode == DWZ.keyCode.ESC) event.data.target.trigger("click");
- },
- /**
- *
- * @param {Object} type
- * @param {Object} msg
- * @param {Object} buttons [button1, button2]
- */
- _open: function(type, msg, buttons){
- $(this._boxId).remove();
- var butsHtml = "";
- if (buttons) {
- for (var i = 0; i < buttons.length; i++) {
- var sRel = buttons[i].call ? "callback" : "";
- butsHtml += DWZ.frag["alertButFrag"].replace("#butMsg#", buttons[i].name).replace("#callback#", sRel);
- }
- }
- var boxHtml = DWZ.frag["alertBoxFrag"].replace("#type#", type).replace("#title#", this._getTitle(type)).replace("#message#", msg).replace("#butFragment#", butsHtml);
- $(boxHtml).appendTo("body").css({top:-$(this._boxId).height()+"px"}).animate({top:"0px"}, 500);
-
- if (this._closeTimer) {
- clearTimeout(this._closeTimer);
- this._closeTimer = null;
- }
- if (this._types.info == type || this._types.correct == type){
- this._closeTimer = setTimeout(function(){alertMsg.close()}, 3500);
- } else {
- $(this._bgId).show();
- }
-
- var jButs = $(this._boxId).find("a.button");
- var jCallButs = jButs.filter("[rel=callback]");
- var jDoc = $(document);
-
- for (var i = 0; i < buttons.length; i++) {
- if (buttons[i].call) jCallButs.eq(i).click(buttons[i].call);
- if (buttons[i].keyCode == DWZ.keyCode.ENTER) {
- jDoc.bind("keydown",{target:jButs.eq(i)}, this._keydownOk);
- }
- if (buttons[i].keyCode == DWZ.keyCode.ESC) {
- jDoc.bind("keydown",{target:jButs.eq(i)}, this._keydownEsc);
- }
- }
- },
- close: function(){
- $(document).unbind("keydown", this._keydownOk).unbind("keydown", this._keydownEsc);
- $(this._boxId).animate({top:-$(this._boxId).height()}, 500, function(){
- $(this).remove();
- });
- $(this._bgId).hide();
- },
- error: function(msg, options) {
- this._alert(this._types.error, msg, options);
- },
- info: function(msg, options) {
- this._alert(this._types.info, msg, options);
- },
- warn: function(msg, options) {
- this._alert(this._types.warn, msg, options);
- },
- correct: function(msg, options) {
- this._alert(this._types.correct, msg, options);
- },
- _alert: function(type, msg, options) {
- var op = {okName:$.regional.alertMsg.butMsg.ok, okCall:null};
- $.extend(op, options);
- var buttons = [
- {name:op.okName, call: op.okCall, keyCode:DWZ.keyCode.ENTER}
- ];
- this._open(type, msg, buttons);
- },
- /**
- *
- * @param {Object} msg
- * @param {Object} options {okName, okCal, cancelName, cancelCall}
- */
- confirm: function(msg, options) {
- var op = {okName:$.regional.alertMsg.butMsg.ok, okCall:null, cancelName:$.regional.alertMsg.butMsg.cancel, cancelCall:null};
- $.extend(op, options);
- var buttons = [
- {name:op.okName, call: op.okCall, keyCode:DWZ.keyCode.ENTER},
- {name:op.cancelName, call: op.cancelCall, keyCode:DWZ.keyCode.ESC}
- ];
- this._open(this._types.confirm, msg, buttons);
- }
- };
|