window.fuzzySearch = function (m, p, f, i) { var a = $.fn.zTree.getZTreeObj(m); a || alert("fail to get ztree object"); var l = a.setting.data.key.name; f = f !== !1, i = !!i, a.setting.view.nameIsHTML = f; var s = "[\\[\\]\\\\^\\$\\.\\|\\?\\*\\+\\(\\)]", N = new RegExp(s, "gi"); function d(t, r, g) { r || (r = ""); function c(e) { if (e && e.oldname && e.oldname.length > 0 && (e[l] = e.oldname), t.updateNode(e), r.length == 0) return t.showNode(e), t.expandNode(e, i), !0; if (e[l] && e[l].toLowerCase().indexOf(r.toLowerCase()) != -1) { if (f) { var n = r.replace(N, function (h) { return "\\" + h }); e.oldname = e[l]; var F = new RegExp(n, "gi"); e[l] = e.oldname.replace(F, function (h) { var y = '' + h + ""; return y }), t.updateNode(e) } return t.showNode(e), !0 } return t.hideNode(e), !1 } var u = t.getNodesByFilter(c); w(u, r) } function w(t, r) { if (t && t.length > 0) if (r.length > 0) $.each(t, function (c, u) { var e = u.getPath(); if (e && e.length > 0) for (var n = 0; n < e.length - 1; n++) a.showNode(e[n]), a.expandNode(e[n], !0) }); else { var g = a.getNodesByParam("level", "0"); var p = a.getNodesByParam("level", "1"); $.each(g, function (c, u) { a.expandNode(u, !0) }) $.each(p, function (c, u) { a.expandNode(u, 0) }) } } $(p).bind("input propertychange", function () { var t = $(this).val(); x(t) }); var o = null, v = ""; function x(t) { o && clearTimeout(o), o = setTimeout(function () { v !== t && (d(a, t), v = t) }, 500) } };