var DateDlg = { result: "cancel", DoDialog: function () { return app.execDialog(this); }, // strDefFmt: "dd-mm-yyyy", strFmt: "dd/mm/yyyy", vDate: new Date, strDate: "", // SetListSel: function (list, path) { if (path.length == 0) return; eval("list[\"" + ((path.join != "function") ? path : path.join("\"][\"")) + "\"] = 1"); }, GetListSel: function (oLstResult) { for (var item in oLstResult) { if ((typeof oLstResult[item] == "number") && (oLstResult[item] > 0)) return item; } return ""; }, formatDate: function (d, f) { return util.printd(f, d); }, // initialize: function (dialog) { var fmt_list = { "dd/mm/yyyy": -1, "dd.mm.yyyy": -1, "mm-dd-yyyy": -1, "mm/dd/yyyy": -1, "mmm dd, yyyy": -1, "mmmm dd, yyyy": -1, "yyyy-mm-dd": -1, "ddd, mmmm d, yyyy": -1, "m/d/yyyy": -1, "dd.mm.yyyy HH:MM:ss": -1, "mm-dd-yyyy hh:MM:ss tt": -1, "HH:MM:ss": -1, "H:MM:ss": -1, "hh:MM:ss tt": -1, "h:MM:ss tt": -1, }; this.SetListSel(fmt_list, this.strFmt); this.strDate = this.formatDate(this.vDate, this.strDefFmt); // var dlgInit = { "fmt1": fmt_list, "date": this.strDate, "prev": this.formatDate(this.vDate, this.strFmt), }; dialog.load(dlgInit); }, commit: function (dialog) { var oRslt = dialog.store(); var path = new Array(); this.strFmt = this.GetListSel(oRslt["fmt1"]); var d = oRslt["date"]; if (typeof d == "string") d = util.scand(this.strDefFmt, d); if (d != null) { var cur = new Date; d = new Date(d.getFullYear(), d.getMonth(), d.getDate(), cur.getHours(), cur.getMinutes(), cur.getSeconds()); } this.vDate = d; this.strDate = oRslt["date"]; }, // handlers "date": function (dialog) { this["fmt1"](dialog); }, "fmt1": function (dialog) { var rslts = dialog.store(); var sel = this.GetListSel(rslts["fmt1"]); this.strFmt = sel; var prev = ""; var d = rslts["date"]; if (typeof d == "string") d = util.scand(this.strDefFmt, d); if (d != null) { var cur = new Date; var dd = new Date(d.getFullYear(), d.getMonth(), d.getDate(), cur.getHours(), cur.getMinutes(), cur.getSeconds()); prev = this.formatDate(dd, this.strFmt); } var l = { "prev": prev, }; dialog.load(l); }, // description: { name: "Specify Date", elements: [ { type: "view", elements: [ { type: "cluster", name: "Title", elements: [ { type: "view", //align_children: "align_row", elements: [ { item_id: "lbl1", name: "&Date (mm-dd-yyyy):", type: "static_text", }, { item_id: "date", type: "edit_text", width: 150, DateEdit: true, }, ] }, { type: "view", // align_children: "align_row", elements: [ { item_id: "lbl1", name: "&Format:", type: "static_text", }, { item_id: "fmt1", type: "popup", width: 150, } ] }, ] }, { type: "cluster", name: "Result Preview", elements: [ { item_id: "prev", name: "", alignment: "align_center", type: "static_text", char_width: 25, } ] }, { type: "ok_cancel", }, ] } ] } }; if (event.source.forReal && (event.source.stampName == "#6sZlWIFvcCxnFlmCjcN7BB")) { if (DateDlg.DoDialog() == "ok") { var d = DateDlg.vDate; event.value = util.printd(DateDlg.strFmt, d); } else { event.value = "Canceled!"; } } else { var d = DateDlg.vDate; event.value = util.printd(DateDlg.strFmt, d); }