(function(y, g) { Date.prototype.format = function(a) { var d = { "M+": this.getMonth() + 1, "d+": this.getDate(), "h+": this.getHours(), "m+": this.getMinutes(), "s+": this.getSeconds(), "q+": Math.floor((this.getMonth() + 3) / 3), S: this.getMilliseconds() }; /(y+)/.test(a) && (a = a.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length))); for (var c in d)(new RegExp("(" + c + ")")).test(a) && (a = a.replace(RegExp.$1, 1 == RegExp.$1.length ? d[c] : ("00" + d[c]).substr(("" + d[c]).length))); return a }; g.leftTime = function(a, d, c) { function w(a) { return - 1 != a.indexOf("-") || -1 != a.indexOf("/") ? !0 : !1 } function g(a) { return /^(20|21|22|23|[0-1]\d):[0-5]\d$/.test(y.trim(a)) ? !0 : !1 } function r(a) { 10 > a && c && (a = "0" + a); return a } function z() { if ("string" === typeof a || "number" === typeof a) { var b = (new Date).getTime(), c; "string" === typeof a || 12 <= a.toString().length ? (a = "string" === typeof a && 1 == w(a) ? a.replace(/-/g, "/") : a, c = (new Date(a)).getTime(), b = c - b) : (c = a - A.count, b = 1E3 * c, A.count++); 0 < b ? (h = Math.floor(b / 1E3 / 60 / 60 / 24), k = Math.floor(b / 1E3 / 60 / 60 % 24), l = Math.floor(b / 1E3 / 60 % 60), m = Math.floor(b / 1E3 % 60), n = !0) : (window.clearInterval(e), m = l = k = h = 0, n = !1) } else "object" === typeof a && (b = (new Date).getTime() + (0 < t ? -1 * t: Math.abs(t)), c = 0, u < f ? (c = f, v = 1) : u >= f && u < p ? (c = p, v = 2) : u >= p && (v = 3), b = c - b, 0 < b ? (h = Math.floor(b / 1E3 / 60 / 60 / 24), k = Math.floor(b / 1E3 / 60 / 60 % 24), l = Math.floor(b / 1E3 / 60 % 60), m = Math.floor(b / 1E3 % 60), n = !0) : (window.clearInterval(e), m = l = k = h = 0, n = !1)); b = { d: r(h), h: r(k), m: r(l), s: r(m) }; b.status = n; b.step = v; if (d && "function" === typeof d) return d(b) } var e = this.timer; c || 0 == c || (c = !0); var A = { count: 0 }, h = 0, k = 0, l = 0, m = 0, v = 0, n = !1; if ("object" === typeof a) { a.init || 1 == a.init || (a.init = !1); var t = 0, x, q = 0; if (0 != a.setday || "0" != a.setday) q = 864E5 * parseInt(a.setday); a.nowdate && null != a.nowdate && void 0 != a.nowdate && "undefined" != a.nowdate ? (t = (new Date).getTime() - parseInt(a.nowdate), x = new Date(a.nowdate)) : (a.nowdate = (new Date).getTime(), x = new Date); var q = new Date(parseInt(a.nowdate) + q), f = 0, p = 0; 0 == a.startdate || "0" == a.startdate || a.init || ("string" === typeof a.startdate ? w(a.startdate) ? f = (new Date(a.startdate.replace(/-/g, "/"))).getTime() : g(a.startdate) && (f = (new Date(q.format("yyyy/MM/dd") + " " + a.startdate)).getTime()) : "number" === typeof a.startdate && (f = a.startdate)); if (0 != a.enddate || "0" != a.enddate)"string" === typeof a.enddate ? w(a.enddate) ? p = (new Date(a.enddate.replace(/-/g, "/"))).getTime() : g(a.enddate) && (p = (new Date(q.format("yyyy/MM/dd") + " " + a.enddate)).getTime()) : "number" === typeof a.enddate && (f = a.enddate); var u = x.getTime() } z(); e = setInterval(z, 1E3); if ("undefined" != e || null != e || void 0 != e) return e }; y.extend(g) })(jQuery || zepto, {});