﻿String.prototype.JSONStringToDate = function () { var d = eval("(" + this.replace(/\/Date(.*?)\//gi, "new Date$1") + ")"); return this.indexOf("+") != -1 ? d : d.addMinutes(d.getTimezoneOffset()) }; Date.prototype.toJSONString2 = function () { if (this) { var a = this.addMinutes(-this.getTimezoneOffset()), b = "/Date(" + Date.UTC(a.getUTCFullYear(), a.getUTCMonth(), a.getUTCDate(), a.getUTCHours(), a.getUTCMinutes(), a.getUTCSeconds(), a.getUTCMilliseconds()) + ")/"; return b } return null }; String.prototype.format = function () { for (var b = this, c = arguments.length, a = 0; a <= c; a++) b = b.replace(new RegExp("\\{" + a + "\\}", "gi"), arguments[a]); return b }; String.prototype.isHex = function () { var a = new RegExp("([0-9a-fA-F]){" + this.length + ",}", "g"); return this.match(a) ? true : false }; String.prototype.highlightFound = function (a, b) { if (a != "") { var c = new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + a.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi, "\\$1") + ")(?![^<>]*>)(?![^&;]+;)", "gi"); return this.replace(c, "<span class='" + b + "'>$1</span>") } return this }; String.prototype.replaceTextToUrl = function () { var a = /([a-z0-9_\-]{1,5}:\/\/)?(([a-z0-9_\-]{1,}):([a-z0-9_\-]{1,})\@)?((www\.)|([a-z0-9_\-]{1,}\.)+)?([a-z0-9_\-]{3,})(\.[a-z]{2,4})(\/([a-z0-9_\-]{1,}\/)+)?([a-z0-9_\-]{1,})?(\.[a-z]{2,})?(\?)?(((\&)?[a-z0-9_\-]{1,}(\=[a-z0-9_\-]{1,})?)+)?/gi; return this.replace(a, '<a href="http://$5$8$9$10$12$13$14$15" target="_blank">$5$8$9$10$12$13$14$15</a>'); return this }; (function (a) { a.fn.preloadImages = function () { for (var b = 0; b < arguments.length; b++) a("<img>").attr("src", arguments[b]) } })(jQuery); (function (a) { a.fn.center = function (c) { var b = this, d = a.extend({ animate: false }, c || {}); b.css("position", "absolute"); if (d.animate) { b.stop(true, true); b.animate({ left: a(window).width() / 2 - b.width() / 2 + a(window).scrollLeft() }, 100, "linear") } else { b.css("top", (a(window).height() - b.height()) / 2 + a(window).scrollTop() + "px"); b.css("left", (a(window).width() - b.width()) / 2 + a(window).scrollLeft() + "px") } return b } })(jQuery); (function (a) { var d = false, j = "kwindowInstanceId", f = "#kwindowContent", c = null, i = "undefined", k = ".iRequired", e = true, h = "kwin-over-all", g = "winData"; a.fn.kwindowShow = function () { var c = this.data(g), d = h, b = this; if (c) { c.settings.isModal && a(".kmodal").length == 0 && fnAddModalLayer(); c.settings.showOverAll && setTimeout(function () { a("." + d).removeClass(d); b.addClass(d) }, 50) } b.removeClass("khidden"); a.fn.kcomboboxAdjustment && b.find(".iCombobox:visible").kcomboboxAdjustment(e); a.fn.kvalidCheck && c && b.find(k).kvalidCheck(c.settings.kvalidCheckHidden); b.center().show(); return b }; a.fn.kwindowHide = function () { var d = this, a = d.data(g) || { settings: {} }; if (a) { a.settings.isModal && fnRemoveModalLayer(); if (a.settings.removeAfterClose) { if (typeof a.settings.instanceId !== i && b[a.settings.instanceId]) b[a.settings.instanceId].destroy(); else d.empty().remove(); return c } else { d.hide(); return d } } }; a.fn.kwindowSetButtonText = function (b, a) { this.find("a#" + b).text(a || ""); return this }; a.fn.kwindowButtonHide = function (a) { this.find("a#" + a).hide(); return this }; a.fn.kwindowButtonShow = function (a) { this.find("a#" + a).show(); return this }; a.fn.kwindowSetHeader = function (a) { this.find("#kwindowHeader span").html(a); return this }; a.fn.kwindowSetBodyWidth = function (a) { this.find(f).width(a); return this }; a.fn.kwindowSetBodyHeight = function (a) { this.find(f).height(a); return this }; a.fn.kwindowGetBody = function () { return this.find(f) }; var b = []; a.fn.kwindowGetInstance = function () { var a = this.data(j); if (typeof a !== i && b[a]) return b[a] }; a.fn.kwindow = function (c) { var f = "</div>", g = this, h = d; if (this.length == 0) { h = e; var k = '<div class="kwin"><div id="kwindowHeader">' + f + '<div id="kwindowContent">' + f + '<div id="kwindowButtons">' + f + f; g = a(k); c.id && c.idPrefix && g.attr("id", c.idPrefix + c.id) } g.each(function () { var e = this, d = a.data(e, j); typeof d !== i && b[d] && b[d].destroy(); d = parseInt(b.push({}), 10) - 1; a.data(e, j, d); b[d] = new a.kwindow(c, a(e), d); h && a(e).appendTo("body") }); return g }; a.kwindow = function (y, j, x) { var v = "</span></a>", o = "click"; this.settings = a.extend({ id: c, idPrefix: "kwindow_", header: "Редактирование", type: c, isModal: d, showAfterCreate: e, showOverAll: e, removeAfterClose: d, showCloseButtonAtTop: e, draggable: e, width: c, bodyWidth: c, cancelButtonText: "Отмена", content: c, buttons: c, instanceId: x, kvalidCheckHidden: c, addWindowToBodyTag: e }, y || {}); var i = this, n, l, p; n = j.find(f); i.settings.content && n.append(a(i.settings.content)); l = j.find("#kwindowHeader"); if (i.settings.header) p = a("<span>" + i.settings.header + "</span>"); if (i.settings.type) { var m = '<img src="/content/images/admin/icons/{0}" style="padding-right: 5px;" />'; if (i.settings.type == "warning") { p.addClass("kwarningText"); l.append(m.format("warning.png")) } else if (i.settings.type == "error") { p.addClass("kerrorText"); l.append(m.format("error.png")) } else if (i.settings.type == "confirm") l.append(m.format("confirm.png")); else if (i.settings.type == "add") l.append(m.format("add.png")); else if (i.settings.type == "add_page") l.append(m.format("add_page.png")); else i.settings.type == "info" && l.append(m.format("info.png")) } l.append(p); this.destroy = function () { j.empty().remove(); delete b[x] }; i.fnCancelAction = function () { i.settings.cancelAction && i.settings.cancelAction({ winBody: n, win: j }); j.kwindowHide() }; i.fnLocalAddClassShowOverAll = function () { if (i.settings.showOverAll) { a(".kwin-over-all").removeClass(h); j.addClass(h) } }; if (i.settings.draggable && j.draggable) { gs = { handle: l.css({ cursor: "move" }) }; if (a.browser.msie && a.browser.version != "8.0") gs.opacity = .7; else if (!a.browser.msie) gs.opacity = .7; j.draggable(gs) } if (i.settings.showCloseButtonAtTop) { var w = a('<a href="#" class="kwin-close-btn">x</a>'); w.bind(o, function () { i.fnCancelAction(); return d }); l.append(w) } var t = j.find("#kwindowButtons"), s = a('<a href="#" class="kbutton" id="btn_edit_cancel"><span>' + i.settings.cancelButtonText + v); s.bind(o, function () { i.fnCancelAction(); return d }); if (i.settings.buttons) { var q = i.settings.buttons; for (var r in q) { var u = a('<a href="#" class="kbutton" id="' + r + '"><span>' + q[r].text + v), z = { winBody: n, winThis: j, $el: j }; u.bind(o, { action: q[r].action, skipValidation: q[r].skipValidation }, function (b) { if (!b.data.skipValidation) if (a.fn.kvalidCheck) if (!j.find(k).kvalidCheck(i.settings.kvalidCheckHidden)) return d; var c; if (b.data.action) c = b.data.action(z); c !== d && i.fnCancelAction(); return d }); t.append(u) } } j.data(g, { settings: i.settings, window: j }); t.append(s); if (i.settings.width) j.width(i.settings.width); else i.settings.bodyWidth && n.width(i.settings.bodyWidth); i.settings.addWindowToBodyTag && j.appendTo("body"); j.bind(o, function () { i.fnLocalAddClassShowOverAll() }); i.settings.showAfterCreate && j.kwindowShow(); return i } })(jQuery); (function (a) { a.fn.kpopupMessage = function (e) { var c = a.extend({ text: "", delay: 3e3, type: "info" }, e || {}), b = '<img src="/content/images/admin/icons/{0}" style="padding-right: 5px;" />'; if (c.type == "info") b = b.format("info.png"); else if (c.type == "error") b = b.format("error.png"); else if (c.type == "warning") b = b.format("warning.png"); else if (c.type == "confirm") b = b.format("confirm.png"); var d = a('<div class="kpopup khidden">' + b + "<span>" + c.text + "</span></div>"), f = (a(window).height() - d.height()) / 2 + a(window).scrollTop(), g = (a(window).width() - d.width()) / 2 + a(window).scrollLeft(); d.appendTo("body").center().animate({ top: f + "px", opacity: "toggle" }, "slow").delay(c.delay).animate({ top: "0px", opacity: "toggle" }, "slow", function () { a(this).remove() }) } })(jQuery); (function (a) { var d = "undefined", c = "kgalleryInstanceId", b = []; a.fn.kgalleryGetInstance = function () { var a = this.data(c); if (typeof a !== d && b[a]) return b[a] }; a.fn.kgallery = function (e) { this.each(function () { var f = a.data(this, c); typeof f !== d && b[f] && b[f].destroy(); f = parseInt(b.push({}), 10) - 1; a.data(this, c, f); b[f] = new a.kgallery(e, a(this), f) }); return this }; a.kgallery = function (U, e, y) { var w = "input#kgallerySearchString", s = "mouseleave", r = "mouseenter", H = '<div class="{0}"></div>', v = "включить", u = "остановить", l = "click", G = "startPage.kgallery", t = "prevPage.kgallery", F = "nextPage.kgallery", f = ".", q = "next", E = "top-right", j = true, i = false, g = null, d = a.extend({ generateId: g, idPrefix: "kgallery_", remoteFuncName: g, dataToRemoteFunc: g, tmpl: g, tmplName: y, tmplNamePrefix: "kgalleryTmplName_", tmplOptions: g, itemsPerPage: 4, cacheDepth: 1, scrollTime: 500, easing: "swing", offset: 50, height: g, enableScrollBar: i, fnCustomCallBack: g, fnUpdatedataToRemoteFunc: g, fnGalleryOnClick: g, fnPageOnClick: g, fnPageItemOnClick: g, fnGalleryOnMouseenter: g, fnGalleryOnMouseleave: g, fnPageOnMouseenter: g, fnPageOnMouseleave: g, fnPageItemOnMouseenter: g, fnPageItemOnMouseleave: g, fnInTmpl: g, defaultParamPageIndex: "_iPageIndex", defaultParamPageSize: "_iPageSize", enablePaging: j, enableServerSidePaging: i, enableSearch: i, searchSelector: "*", enableAutosearch: j, autosearchTimeout: 1e3, enableSearchHighlightFound: j, defaultParamSearchText: "_iSearchRequest", cssHighlightFound: "ksearch-highlight", cssSearch: "kgallery-search", cssSearchInput: "kgallery-search-input", cssSearchIcon: "kgallery-search-icon", pageIdPrefix: "kgalleryPage_", pagingButtonMarginTop: -30, pagingButtonPosition: E, pageWidth: "fixed", enableAutoChangePage: i, changePageDelay: 1e4, atEndAction: "start", showButtonOnHover: i, setContainerOpacityOnHover: j, containerOpacityValue: .3, cssClassBase: "kgallery", cssClassContainer: "kgallery-container", cssClassPage: "kgallery-page", cssClassPageItem: "kgallery-page-item", cssClassButtons: "kgallery-btns", cssClassPageRightActive: "kgallery-br-active", cssClassPageRightDisabled: "kgallery-br-disabled", cssClassPageLeftActive: "kgallery-bl-active", cssClassPageLeftDisabled: "kgallery-bl-disabled", cssClassPageEndActive: "kgallery-be-active", cssClassPageEndDisabled: "kgallery-be-disabled", cssClassPageStartActive: "kgallery-bs-active", cssClassPageStartDisabled: "kgallery-bs-disabled", cssClassPagePlayActive: "kgallery-by-active", cssClassPagePauseActive: "kgallery-bp-active", cssScrollbar: "scrollbar", cssScrollbarTrack: "track", cssScrollbarThumb: "thumb", cssScrollbarEnd: "end" }, U || {}), c = this; c.currentPage = c.startPage = d.dataToRemoteFunc[d.defaultParamPageIndex] || 1; c.previousPage; c.lastDirection = 0; c.$element = e; c.$search = g; c.settings = d; c.stopped = d.enableAutoChangePage; c.autoChangePageDir = q; c.totalCount = c.totalPages = c.countInLastPage = c.loadedItemsCount = c.data = g; var h, k = e.width(), V, S = i, A = i, o = i, D = i, x = d.tmplNamePrefix + d.tmplName, C = x + "outer"; c.outerTmpl = '{{each(i, val) List}} {{if i % $item.itemsPerPage == 0}} <div id="' + d.pageIdPrefix + '${$item.currentPage + (i / $item.itemsPerPage)}" class="{0}" style="{1}"> {{/if}}  {{tmpl(val, { $index: i, fn: $item.fn }) "' + x + '"}} {{if i == $item.itemsPerPage - 1 || (i > $item.itemsPerPage && (i + 1) % $item.itemsPerPage == 0) || $item.itemsPerPage == 1}} </div> {{/if}} {{/each}}'; c.innerTmpl = d.tmpl; var T = function (b) { h && h.find(f + d.cssClassPage).each(function () { var e = parseInt(a(this).attr("id").substring(d.pageIdPrefix.length), 10); if (e && e != NaN) if (e < c.currentPage - d.cacheDepth || e > c.currentPage + d.cacheDepth) if (c.lastDirection > 0) { a(this).empty().remove(); b && h.css({ marginLeft: -1 * b(c.currentPage) }) } else a(this).empty().remove() }) }, m = function (g, j) { var e, b = function (c) { var b = 0; h.find(f + d.cssClassPage).each(function () { if (a(this).attr("id") == d.pageIdPrefix + c) return i; b += a(this).width() }); return b }; d.enableServerSidePaging && c.lastDirection < 0 && h.css({ marginLeft: -1 * b(c.previousPage) }); if (d.cacheDepth == 0 && d.enableServerSidePaging) e = 0; else e = b(c.currentPage); h.animate({ marginLeft: -1 * e }, j ? 0 : d.scrollTime, d.easing, function () { if (d.enableServerSidePaging) { g && g(); T(b) } }) }, J = function () { e.bind(F, function (b, a) { if (c.currentPage < c.totalPages) { c.currentPage++; a && a.fn && a.fn(); m() } }); e.bind(t, function (b, a) { if (c.currentPage > 1) { c.currentPage--; a && a.fn && a.fn(); m() } }); e.bind(G, function (b, a) { c.currentPage = 1; a && a.fn && a.fn(); m() }); e.bind("endPage.kgallery", function (b, a) { c.currentPage = c.totalPages; a && a.fn && a.fn(); m() }) }, M = function () { B(); if (c.totalPages != 1) { e.find(f + d.cssClassPageRightDisabled).removeClass().addClass(d.cssClassPageRightActive); e.find(f + d.cssClassPageEndDisabled).removeClass().addClass(d.cssClassPageEndActive) } }, B = function () { e.find(f + d.cssClassPageStartActive).removeClass().addClass(d.cssClassPageStartDisabled); e.find(f + d.cssClassPageEndActive).removeClass().addClass(d.cssClassPageEndDisabled); e.find(f + d.cssClassPageRightActive).removeClass().addClass(d.cssClassPageRightDisabled); e.find(f + d.cssClassPageLeftActive).removeClass().addClass(d.cssClassPageLeftDisabled) }, n = function (b) { if (!b) return; b.bind(l, function () { c.lastDirection = 0, b = a(this); var g, h = function () { if (d.enableServerSidePaging) { B(); g; p(c.currentPage, g) } else { g(); m() } }; if (b.hasClass(d.cssClassPageRightActive)) { c.previousPage = c.currentPage++; c.lastDirection = 1; g = function () { if (c.currentPage == c.totalPages) { b.removeClass().addClass(d.cssClassPageRightDisabled); e.find(f + d.cssClassPageEndActive).removeClass().addClass(d.cssClassPageEndDisabled) } else { b.removeClass().addClass(d.cssClassPageRightActive); e.find(f + d.cssClassPageEndDisabled).removeClass().addClass(d.cssClassPageEndActive) } e.find(f + d.cssClassPageStartDisabled).removeClass().addClass(d.cssClassPageStartActive); e.find(f + d.cssClassPageLeftDisabled).removeClass().addClass(d.cssClassPageLeftActive) }; h() } else if (b.hasClass(d.cssClassPageLeftActive)) { c.previousPage = c.currentPage--; c.lastDirection = -1; g = function () { if (c.currentPage == 1) { b.removeClass().addClass(d.cssClassPageLeftDisabled); e.find(f + d.cssClassPageStartActive).removeClass().addClass(d.cssClassPageStartDisabled) } else { b.removeClass().addClass(d.cssClassPageLeftActive); e.find(f + d.cssClassPageStartDisabled).removeClass().addClass(d.cssClassPageStartActive) } e.find(f + d.cssClassPageEndDisabled).removeClass().addClass(d.cssClassPageEndActive); e.find(f + d.cssClassPageRightDisabled).removeClass().addClass(d.cssClassPageRightActive) }; h() } else if (b.hasClass(d.cssClassPageEndActive)) { c.previousPage = c.currentPage; c.currentPage = c.totalPages; c.lastDirection = 1; g = function () { b.removeClass().addClass(d.cssClassPageEndDisabled); e.find(f + d.cssClassPageStartDisabled).removeClass().addClass(d.cssClassPageStartActive); e.find(f + d.cssClassPageRightActive).removeClass().addClass(d.cssClassPageRightDisabled); e.find(f + d.cssClassPageLeftDisabled).removeClass().addClass(d.cssClassPageLeftActive) }; h() } else if (b.hasClass(d.cssClassPageStartActive)) { c.previousPage = c.currentPage; c.currentPage = 1; c.lastDirection = -1; g = function () { b.removeClass().addClass(d.cssClassPageStartDisabled); e.find(f + d.cssClassPageEndDisabled).removeClass().addClass(d.cssClassPageEndActive); e.find(f + d.cssClassPageRightDisabled).removeClass().addClass(d.cssClassPageRightActive); e.find(f + d.cssClassPageLeftActive).removeClass().addClass(d.cssClassPageLeftDisabled) }; h() } else if (b.hasClass(d.cssClassPagePlayActive)) { b.removeClass().addClass(d.cssClassPagePauseActive).attr("title", u).children("img").attr("alt", u); z() } else if (b.hasClass(d.cssClassPagePauseActive)) { if (c.timerReference) { b.removeClass().addClass(d.cssClassPagePlayActive).attr("title", v).children("img").attr("alt", v); clearTimeout(c.timerReference) } } else return }) }, L = function () { var b = '<a href="javascript:" class="', g = a(H.format(d.cssClassButtons)), h, k, m, i, l, f = '" title="{0}"><img alt="{0}" src="data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" /></a>'; if (d.cssClassPageRightActive) h = a(b + (c.totalPages != 1 ? d.cssClassPageRightActive : d.cssClassPageRightDisabled) + f.format("туда")); if (d.cssClassPageLeftActive) k = a(b + (c.currentPage != 1 ? d.cssClassPageLeftActive : d.cssClassPageLeftDisabled) + f.format("сюда")); if (d.cssClassPageEndActive) m = a(b + (c.totalPages != 1 ? d.cssClassPageEndActive : d.cssClassPageEndDisabled) + f.format("конец")); if (d.cssClassPageStartActive) i = a(b + (c.currentPage != 1 ? d.cssClassPageStartActive : d.cssClassPageStartDisabled) + f.format("начало")); if (d.cssClassPagePlayActive) l = a(b + (d.enableAutoChangePage ? d.cssClassPagePauseActive : d.cssClassPagePlayActive) + f.format(d.enableAutoChangePage ? u : v)); J(); n(h); n(k); n(m); n(i); n(l); d.showButtonOnHover && g.css({ opacity: 0 }); g.append(i).append(k).append(l).append(h).append(m).prependTo(e); K(g); A = j }, K = function (b) { var f = ".kgallery-container", c = d.height || e.height(); if (d.pagingButtonPosition == E) b.css({ marginLeft: k - b.outerWidth(), marginTop: d.pagingButtonMarginTop }); else if (d.pagingButtonPosition == "top-left") b.css({ marginLeft: 0, marginTop: d.pagingButtonMarginTop }); else if (d.pagingButtonPosition == "bottom-left") b.css({ marginLeft: 0, marginTop: c - b.outerHeight() + d.pagingButtonMarginTop }); else if (d.pagingButtonPosition == "bottom-right") b.css({ marginLeft: k - b.outerWidth(), marginTop: c - b.outerHeight() + d.pagingButtonMarginTop }); else d.pagingButtonPosition == "center" && b.css({ marginLeft: (k - b.outerWidth()) * .5, marginTop: (c - b.outerHeight() + d.pagingButtonMarginTop) * .5 }); d.showButtonOnHover && e.bind(r, function () { b.css({ opacity: 1 }); d.setContainerOpacityOnHover && a(this).find(f).css({ opacity: d.containerOpacityValue }) }).bind(s, function () { b.css({ opacity: 0 }); d.setContainerOpacityOnHover && a(this).find(f).css({ opacity: 1 }) }) }, N = function () { var a = c.totalCount % d.itemsPerPage; c.countInLastPage = a == 0 ? d.itemsPerPage : a; c.totalPages = (c.totalCount - a) / d.itemsPerPage; if (a != 0) ++c.totalPages; if (c.totalPages > 1) if (c.currentPage == c.totalPages - 1) c.loadedItemsCount = c.countInLastPage + d.itemsPerPage; else c.loadedItemsCount = d.itemsPerPage * 2; else c.loadedItemsCount = c.countInLastPage }, O = function () { var b = ""; if (d.pageWidth == "fixed") b = "width: " + (k - d.offset) + "px"; a.template(C, c.outerTmpl.format(d.cssClassPage, b)); a.template(x, c.innerTmpl) }, P = function (o, p, n) { if (!h) { var b; if (d.enableServerSidePaging) if (c.settings.enableScrollBar) b = k; else b = (d.cacheDepth * 2 + 1) * k; else b = k * c.totalPages; h = a('<div class="' + c.settings.cssClassContainer + '"></div>').css("width", +b + "px"); e.css("width", k + "px").append(h) } else (n || d.cacheDepth == 0 && d.enableServerSidePaging) && h.find(f + d.cssClassPage).empty().remove(); var g = a.tmpl(C, { List: p }, { itemsPerPage: d.enablePaging ? d.itemsPerPage : c.totalCount, currentPage: o, fn: c.settings.fnInTmpl }); if (c.lastDirection >= 0) g.appendTo(h); else g.prependTo(h); if (c.settings.enableSearch && c.settings.enableSearchHighlightFound && c.$search) { var m = a.trim(c.$search.find(w).val()); m != "" && g.find(c.settings.searchSelector).each(function () { var b = this; if (b.innerHTML != "" && !a(b).hasClass(c.settings.cssClassPageItem)) b.innerHTML = b.innerHTML.highlightFound(m, c.settings.cssHighlightFound) }) } if (c.settings.enableScrollBar && !D) { D = j; e.append('<div class="{0}"><div class="{1}"><div class="{2}"><div class="{3}"></div></div></div></div>'.format(c.settings.cssScrollbar, c.settings.cssScrollbarTrack, c.settings.cssScrollbarThumb, c.settings.cssScrollbarEnd)); e.css("height", c.settings.height || 300); var l = { asPartKgallery: i, scrollbarPosX: 0, cssViewport: c.settings.cssClassBase, cssOverview: c.settings.cssClassContainer }; if (c.settings.enableServerSidePaging) l.fnScrollDataLoader = c.fnScrollDataLoader; e.parent().tinyscrollbar(l) } }, p = function (e, a) { if (c.settings.remoteFuncName && c.settings.dataToRemoteFunc) { var f = function (g, b, f) { if (b.TotalCount && b.List) { c.totalCount = b.TotalCount || 0; c.data = b.List } else { S = j; c.totalCount = b.length || 0; c.data = b } d.fnCustomCallBack && d.fnCustomCallBack(g, b, f); N(); P(e, c.data); d.enablePaging && !A && !c.settings.enableScrollBar && L(); c.settings.enableSearch && !c.$search && R(); if (o) if (!c.settings.enableScrollBar) m(function () { a && a() }); else a && a(); o = j }; if (Q(c.currentPage)) m(function () { a && a() }); else { var b = c.settings.dataToRemoteFunc; b = I(b, e); if (c.settings.fnUpdatedataToRemoteFunc) b = c.settings.fnUpdatedataToRemoteFunc(b); kajaxCall("POST", b, o ? {} : g, d.remoteFuncName, f) } } }, I = function (b, e) { if (c.settings.enableServerSidePaging) { b[c.settings.defaultParamPageIndex] = e; b[c.settings.defaultParamPageSize] = c.settings.itemsPerPage } if (c.settings.enableSearch && c.$search) { var d = a.trim(c.$search.find(w).val()); if (d != "") b[c.settings.defaultParamSearchText] = d; else delete b[c.settings.defaultParamSearchText] } return b }, Q = function (a) { return o && h && h.find("#" + d.pageIdPrefix + a).length != 0 ? j : i }, R = function () { var g = 50, h = a(f + c.settings.cssClassButtons); c.$search = a('<div class="{0}" style="width: {1}px"><div class="{2}"><span><input id="kgallerySearchString" type="text" val=""/></span></div></div>'.format(c.settings.cssSearch, k - g, c.settings.cssSearchInput)); var d = a(H.format(c.settings.cssSearchIcon)); e.prepend(c.$search.prepend(d)); c.$search.bind("keydown", function (a) { if (a.keyCode == 13) { c.autosearchTimer && clearTimeout(c.autosearchTimer); c.fnReload() } }); if (c.settings.enableAutosearch) { var b = [9, 13, 16, 17, 18, 19, 20, 27, 32, 33, 34, 35, 36, 37, 38, 39, 40, 91, 92, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 144]; c.$search.find(w).bind("keyup", function (d) { if (a.inArray(d.keyCode, b) == -1) { c.autosearchTimer && clearTimeout(c.autosearchTimer); c.autosearchTimer = setTimeout(function () { c.fnReload() }, c.settings.autosearchTimeout) } }) } }, z = function () { c.timerReference = setInterval(function () { var b = "back", a; if (c.currentPage == 1 && c.autoChangePageDir == b) c.autoChangePageDir = q; else if (c.currentPage == c.totalPages && c.autoChangePageDir == q) if (d.atEndAction == "start") { a = e.find(f + d.cssClassPageStartActive); if (a.length > 0) a.trigger(l); else e.trigger(G); return } else { c.autoChangePageDir = b; a = e.find(f + d.cssClassPageLeftActive); if (a.length > 0) a.trigger(l); else e.trigger(t); return } if (c.currentPage < c.totalPages) if (c.autoChangePageDir == q) { a = e.find(f + d.cssClassPageRightActive); if (a.length > 0) a.trigger(l); else e.trigger(F) } else if (c.autoChangePageDir == b) { a = e.find(f + d.cssClassPageLeftActive); if (a.length > 0) a.trigger(l); else e.trigger(t) } }, d.changePageDelay) }; c.destroy = function () { c.timerReference && clearTimeout(c.timerReference); c.autosearchTimer && clearTimeout(c.autosearchTimer); e.undelegate().empty().remove(); delete b[y] }; c.fnReload = function (b, a) { h && h.empty(); c.previousPage = g; c.lastDirection = 0; M(); p(c.currentPage = b || c.startPage, function () { c.settings.enableScrollBar && e.parent().tinyscrollbar_update(); a && a() }) }; c.fnGalleryOnClick = function () { c.settings.fnGalleryOnClick && c.settings.fnGalleryOnClick({ $this: a(this) }) }; c.fnPageOnClick = function () { c.settings.fnPageOnClick && c.settings.fnPageOnClick({ $this: a(this), tmplItem: a(this).tmplItem() }) }; c.fnPageItemOnClick = function () { c.settings.fnPageItemOnClick && c.settings.fnPageItemOnClick({ $this: a(this), tmplItem: a(this).tmplItem() }) }; c.fnGalleryOnMouseenter = function () { c.settings.fnGalleryOnMouseenter && c.settings.fnGalleryOnMouseenter({ $this: a(this) }) }; c.fnPageOnMouseenter = function () { c.settings.fnPageOnMouseenter && c.settings.fnPageOnMouseenter({ $this: a(this), tmplItem: a(this).tmplItem() }) }; c.fnPageItemOnMouseenter = function () { c.settings.fnPageItemOnMouseenter && c.settings.fnPageItemOnMouseenter({ $this: a(this), tmplItem: a(this).tmplItem() }) }; c.fnGalleryOnMouseleave = function () { c.settings.fnGalleryOnMouseleave && c.settings.fnGalleryOnMouseleave({ $this: a(this) }) }; c.fnPageOnMouseleave = function () { c.settings.fnPageOnMouseleave && c.settings.fnPageOnMouseleave({ $this: a(this), tmplItem: a(this).tmplItem() }) }; c.fnPageItemOnMouseleave = function () { c.settings.fnPageItemOnMouseleave && c.settings.fnPageItemOnMouseleave({ $this: a(this), tmplItem: a(this).tmplItem() }) }; c.fnScrollDataLoader = function (a) { if (c.currentPage < c.totalPages) { c.currentPage++; p(c.currentPage, function () { a.update("relative") }) } }; e.delegate(f + c.settings.cssClassBase, l, c.fnGalleryOnClick).delegate(f + c.settings.cssClassBase, r, c.fnGalleryOnMouseenter).delegate(f + c.settings.cssClassBase, s, c.fnGalleryOnMouseleave); e.delegate(f + c.settings.cssClassPage, l, c.fnPageOnClick).delegate(f + c.settings.cssClassPage, r, c.fnPageOnMouseenter).delegate(f + c.settings.cssClassPage, s, c.fnPageOnMouseleave); e.delegate(f + c.settings.cssClassPageItem, l, c.fnPageItemOnClick).delegate(f + c.settings.cssClassPageItem, r, c.fnPageItemOnMouseenter).delegate(f + c.settings.cssClassPageItem, s, c.fnPageItemOnMouseleave); d.generateId && e.attr("id", d.idPrefix + y); e.addClass(d.cssClassBase); c.settings.height && e.height(c.settings.height); O(); p(c.currentPage); d.enableAutoChangePage && z(); return c } })(jQuery); (function (a) { var d = null, b = false, c = "auto"; a.tiny = a.tiny || {}; a.tiny.scrollbar = { options: { axis: "y", wheel: 40, scroll: true, size: c, sizethumb: c, asPartKgallery: b, scrollbarPosX: d, thresholdWhenLoadData: 20, cssViewport: "viewport", cssOverview: "overview", cssScrollbar: "scrollbar", cssTrack: "track", cssThumb: "thumb", fnScrollDataLoader: d} }; a.fn.tinyscrollbar = function (b) { var b = a.extend({}, a.tiny.scrollbar.options, b); this.each(function () { a(this).data("tsb", new e(a(this), b)) }); return this }; a.fn.tinyscrollbar_update = function (b) { return a(this).data("tsb").update(b) }; function e(s, e) { var t = "mousemove", m = "mouseup", p = this, u = s, k = { obj: a("." + e.cssViewport, s) }, g = { obj: a("." + e.cssOverview, s) }, i = { obj: a("." + e.cssScrollbar, s) }, l = { obj: a("." + e.cssTrack, i.obj) }, f = { obj: a("." + e.cssThumb, i.obj) }, q = e.axis == "x", j = q ? "left" : e.asPartKgallery ? "margin-top" : "top", w = q ? "Width" : "Height", h, n = { start: 0, now: 0 }, v = {}; function z() { e.scrollbarPosX != d && i.obj.css("right", e.scrollbarPosX); p.update(); A(); return p } this.update = function (a) { k[e.axis] = k.obj[0]["offset" + w]; g[e.axis] = g.obj[0]["scroll" + w]; g.ratio = k[e.axis] / g[e.axis]; i.obj.toggleClass("disable", g.ratio >= 1); l[e.axis] = e.size == c ? k[e.axis] : e.size; f[e.axis] = Math.min(l[e.axis], Math.max(0, e.sizethumb == c ? l[e.axis] * g.ratio : e.sizethumb)); i.ratio = e.sizethumb == c ? g[e.axis] / l[e.axis] : (g[e.axis] - k[e.axis]) / (l[e.axis] - f[e.axis]); h = a == "relative" && g.ratio <= 1 ? Math.min(g[e.axis] - k[e.axis], Math.max(0, h)) : 0; h = a == "bottom" && g.ratio <= 1 ? g[e.axis] - k[e.axis] : isNaN(parseInt(a)) ? h : parseInt(a); B() }; function B() { f.obj.css(j, h / i.ratio); g.obj.css(j, -h); v.start = f.obj.offset()[j]; var a = w.toLowerCase(); i.obj.css(a, l[e.axis]); l.obj.css(a, l[e.axis]); f.obj.css(a, f[e.axis]) } function A() { var a = "mousedown"; f.obj.bind(a, y); f.obj[0].ontouchstart = function (c) { c.preventDefault(); f.obj.unbind(a); y(c.touches[0]); return b }; l.obj.bind(m, r); if (e.scroll && this.addEventListener) { u[0].addEventListener("DOMMouseScroll", x, b); u[0].addEventListener("mousewheel", x, b) } else if (e.scroll) u[0].onmousewheel = x } function y(e) { v.start = q ? e.pageX : e.pageY; var d = parseInt(f.obj.css(j)); n.start = d == c ? 0 : d; a(document).bind(t, r); document.ontouchmove = function (b) { a(document).unbind(t); r(b.touches[0]) }; a(document).bind(m, o); f.obj.bind(m, o); f.obj[0].ontouchend = document.ontouchend = function (b) { a(document).unbind(m); f.obj.unbind(m); o(b.touches[0]) }; return b } function x(b) { if (!(g.ratio >= 1)) { b = a.event.fix(b || window.event); var d = b.originalEvent.wheelDelta ? b.originalEvent.wheelDelta / 120 : -b.originalEvent.detail / 3; h -= d * e.wheel; h = Math.min(g[e.axis] - k[e.axis], Math.max(0, h)); var c = h / i.ratio; f.obj.css(j, c); g.obj.css(j, -h); e.asPartKgallery && i.obj.css(j, h); if (e.fnScrollDataLoader) k[e.axis] - c - f.obj.height() < e.thresholdWhenLoadData && e.fnScrollDataLoader(p); b = a.event.fix(b); b.preventDefault() } } function o() { a(document).unbind(t, r); a(document).unbind(m, o); f.obj.unbind(m, o); document.ontouchmove = f.obj[0].ontouchend = document.ontouchend = d; if (e.fnScrollDataLoader) k[e.axis] - n.now - f.obj.height() < e.thresholdWhenLoadData && e.fnScrollDataLoader(p); return b } function r(a) { if (!(g.ratio >= 1)) { n.now = Math.min(l[e.axis] - f[e.axis], Math.max(0, n.start + ((q ? a.pageX : a.pageY) - v.start))); h = n.now * i.ratio; g.obj.css(j, -h); f.obj.css(j, n.now); e.asPartKgallery && i.obj.css(j, h) } return b } return z() } })(jQuery); (function (a) { var j = "keypress", i = null, g = "keydown", h = "kinvalid", k = ":visible", c = "kvalidSettings", d = true, b = false; function l(g, f, l, i, k) { var j = "должно быть более ", h = " символов, у Вас ", c = a(g).val().length; switch (l) { case "<=": if (c > f) { e(a(g), "должно быть не более " + f + h + c, i); return b } return d; case "<": if (c + 1 >= f) { e(a(g), "должно быть менее " + f + h + c, i); return b } return d; case "=": if (c != f) { e(a(g), "должно быть ровно " + f + h + c, i); return b } return d; case ">=": if (c < f) { e(a(g), "должно быть не менее " + f + h + c, i); return b } return d; case ">": if (c <= f) { e(a(g), j + f + h + c, i); return b } return d; case "<>": if (c <= k || c >= f) { e(a(g), j + k + " и менее " + f + h + c, i); return b } return d } } function e(f, g, d) { var b = a(f), e = b.data(c) || {}; if (b.is(k) && e[d] && !e[d].disabled) { b.kvalidShowMessage(g); b.addClass(h) } } function f(b) { var c = a(b); c.removeClass(h) } a.fn.kvalidShowMessage = function (b) { this.each(function () { var c = '<div class="kvalid-message"><span>{0}</span></div>'.format(b); a(c).css({ left: a(this).offset().left, top: a(this).offset().top }).appendTo("body").animate({ opacity: .8, top: a(this).offset().top - 20 }, function () { a(this).delay(2e3).animate({ opacity: 0, top: "-=15" }, function () { a(this).remove() }) }) }); return this }; a.fn.kvalidDisable = function (b) { this.each(function () { var f = this, e = a(f).data(c) || {}; for (var g in e) if (b && g == b) { e[g].disabled = d; a(f).removeClass(h) } else if (!b) { e[g].disabled = d; a(f).removeClass(h) } a(f).data(c, e) }); return this }; a.fn.kvalidEnable = function (d) { this.each(function () { var e = a(this).data(c) || {}; for (var f in e) if (d && f == d) e[f].disabled = b; else if (!d) e[f].disabled = b; a(this).data(c, e) }); return this }; a.fn.kvalidCheck = function (f) { var e = d; this.each(function () { var g = a(this).data(c) || {}, j, i = d; for (var h in g) if (g[h].fnOnSubmitCheck && i && !g[h].disabled) i = g[h].fnOnSubmitCheck(a(this), g[h], f); if (!i) e = b }); return e }; function m(f, e) { if (!e) return b; var c = e.split(""); if (c.length == 0) return b; var g = a.inArray(String.fromCharCode(f), c); return g == -1 ? b : d } a.fn.kvalidRemove = function () { this.each(function () { a(this).die().undelegate().unbind().removeClass(h); a(this).removeData(c) }); return this }; a.fn.kvalidSize = function (j, e, i, o) { if (!e) return this; var h = "restrictSize", m = this, p = function (a, m, g) { var c = d; if (a.is(k) || g) if (!l(a, j, e, h, i)) { a.fadeOut().fadeIn(); c = b } else f(a); else f(a); return c }; m.each(function () { var d = { validType: h, size: j, minSize: i, fnOnSubmitCheck: o || p }, b = a(this).data(c) || {}; b[h] = d; a(this).addClass("iRequired iSize").data(c, b) }); var n = function (b, a) { if (a.keyCode != 27 && a.keyCode != 37 && a.keyCode != 39 && a.keyCode != 46 && a.keyCode != 8 && a.keyCode != 0 && e != ">=" && e != "=" && e != "<>") return l(b, j, e, h, i) }; m.live(g, function (a) { return n(this, a) }).bind(g, function (a) { return n(this, a) }); return this }; a.fn.kvalidRequiredField = function (m, i, o, n) { var j = "keydown keyup change", h = "requiredField", g = "обязательно заполните", q = this, p = function (a, c, h) { var g = d; if ((a.val().length == 0 || a.val() == c.attentionText) && (a.is(k) || h)) { e(a, c.attentionText, c.validType); a.fadeOut().fadeIn(); g = b } else f(a); return g }; q.each(function () { var b = this; o && a(b).kvalidRemove(); a(b).length != 0 && a(b).val().length == 0 && e(a(b), g, h); var f = { parentObjSelector: m, attentionText: g, validType: h, disableKeyPressWatch: i, fnOnSubmitCheck: n || p }, d = a(b).data(c) || {}; d[h] = f; a(b).addClass("iRequired").data(c, d) }); if (!i) { var l = function (c, b) { if (b.keyCode != 8 && b.keyCode != 46 && b.keyCode != 27 && b.keyCode != 37 && b.keyCode != 39) f(c); else (a(c).val().length == 0 || a(c).val() == g) && e(c, g, h) }; this.live(j, function (a) { return l(this, a) }).bind(j, function (a) { return l(this, a) }) } return this }; a.fn.kvalidNum = function (n) { var k = "только цифры", d = this, h = "num"; d.each(function () { var d = a.extend({ parentObjSelector: i, isRequired: i, attentionText: k, validType: h }, n || {}), b = a(this).data(c) || {}; b[h] = d; a(this).addClass("iNumsOnly").data(c, b) }); var l = function (c, a) { if (a.keyCode != 27 && a.keyCode != 37 && a.keyCode != 39 && a.keyCode != 46 && a.keyCode != 8 && a.keyCode != 0 && (a.keyCode < 48 || a.keyCode > 57)) { e(c, k, h); return b } f(c) }, m = function (b, a) { (a.keyCode == 27 || a.keyCode == 37 || a.keyCode == 39 || a.keyCode == 46) && f(b) }; d.bind(j, function (a) { return l(this, a) }).bind(g, function (a) { return m(this, a) }); d.live(j, function (a) { return l(this, a) }).live(g, function (a) { return m(this, a) }); return d }; a.fn.kvalidNumAndLatin = function (d) { var l = "только латиница и цифры", h = this; d = d || {}; var k = "numAndLatin"; h.each(function () { var e = a.extend({ parentObjSelector: i, ex: i, attentionText: l, validType: k }, d || {}), b = a(this).data(c) || {}; b[k] = e; a(this).addClass("iNumsAndLatin").data(c, b) }); var n = function (g, c) { var a = c.keyCode ? c.keyCode : c.which; if (c.keyCode != 27 && c.keyCode != 37 && c.keyCode != 39 && c.keyCode != 46 && a != 8 && a != 0 && !m(a, d.ex) && (a < 65 || a > 90) && (a < 97 || a > 122) && (a < 48 || a > 57)) { e(g, l, k); return b } f(g) }, o = function (b, a) { (a.keyCode == 27 || a.keyCode == 37 || a.keyCode == 39 || a.keyCode == 46) && f(b) }; h.live(j, function (a) { return n(this, a) }).live(g, function (a) { return o(this, a) }); h.bind(j, function (a) { return n(this, a) }).bind(g, function (a) { return o(this, a) }); return h } })(jQuery); (function (a) { a.fn.getHiddenDimensions = function (c) { var a = this, d = { position: "absolute", visibility: "hidden", display: "block" }, b = { width: 0, height: 0, innerWidth: 0, innerHeight: 0, outerWidth: 0, outerHeight: 0 }, e = a.parents().andSelf().not(":visible"), c = c == null ? false : c, f = []; e.each(function () { var b = {}; for (var a in d) { b[a] = this.style[a]; this.style[a] = d[a] } f.push(b) }); b.width = a.width(); b.outerWidth = a.outerWidth(c); b.innerWidth = a.innerWidth(); b.height = a.height(); b.innerHeight = a.innerHeight(); b.outerHeight = a.outerHeight(c); e.each(function (c) { var b = f[c]; for (var a in d) this.style[a] = b[a] }); return b } })(jQuery); jQuery.cookie = function (d, b, a) { if (arguments.length > 1 && String(b) !== "[object Object]") { a = jQuery.extend({}, a); if (b === null || b === undefined) a.expires = -1; if (typeof a.expires === "number") { var g = a.expires, e = a.expires = new Date; e.setDate(e.getDate() + g) } b = String(b); return document.cookie = [encodeURIComponent(d), "=", a.raw ? b : encodeURIComponent(b), a.expires ? "; expires=" + a.expires.toUTCString() : "", a.path ? "; path=" + a.path : "", a.domain ? "; domain=" + a.domain : "", a.secure ? "; secure" : ""].join("") } a = b || {}; var c, f = a.raw ? function (a) { return a } : decodeURIComponent; return (c = new RegExp("(?:^|; )" + encodeURIComponent(d) + "=([^;]*)").exec(document.cookie)) ? f(c[1]) : null }; function kajaxCall(k, b, a, g, f, c, d, j, i, h) { var e = null; a = a || { disableLoadingMask: true }; if (g == e || g == "") { var l; if (c) l = c(b, e, a); f && f(b, e, a); d && d(b, e, a); return } if (a && !a.disableLoadingMask) a.disableLoadingMask = false; var m = '<div class="kloading"><img src="/content/images/admin/design/ajax-loader.gif" alt="ajax" /></div>', n = $.ajax({ type: k, url: g, data: k == "POST" ? JSON.stringify(b) : b, contentType: a.contentType || "application/json; charset=utf-8", dataType: a.dataType || "json", beforeSend: function (b) { i && i(b, a); if (a && !a.disableLoadingMask) { var c = $(m); c.appendTo("body").center().show() } }, success: function (g) { fnRecursiveFindDateInObj(g); var e; if (c) e = c(b, g.d, a); else e = g.d; f && f(b, e, a); d && d(b, e, a) }, error: function (c) { j && j(b, c, a); (!a || !a.suppressErrorMessage) && fnErrorAjax(c) }, complete: function (c, b) { h && h(c, b, a); a && !a.disableLoadingMask && $("div.kloading").remove() } }) } function fnErrorAjax(result) { var ev = "<span>" + result.statusText + "</span>", headerTxt = "Неизвестная ошибка", typeError, errorCode; try { if (result.responseText != "") { var ex = eval("(" + result.responseText + ")"); switch (ex.ExceptionDetail.HelpLink) { case "-5": errorCode = ex.ExceptionDetail.HelpLink; ev = '<span class="kerrorBody">' + ex.ExceptionDetail.Message + "</span>"; headerTxt = "Внимание"; typeError = "info"; kcms.sec.Logout(fnAfterLogoutActions); break; case "-1": ev = '<span class="kerrorBody">' + ex.ExceptionDetail.Message + "</span>"; headerTxt = "Ошибка"; typeError = "error"; break; case "1": ev = '<span class="kerrorBody">' + ex.ExceptionDetail.Message + "</span>"; headerTxt = "Предупреждение"; typeError = "warning"; break; default: var errTxt = "Неизвестная ошибка"; typeError = "error"; var code = parseInt(ex.ExceptionDetail.HelpLink); if (code != NaN && code != 0) if (code < 0) errTxt = "Ошибка"; else if (code > 0) { errTxt = "Предупреждение"; typeError = "warning" } ev = '<span class="kerrorBody">' + ex.ExceptionDetail.Message + "</span>"; headerTxt = errTxt } } } catch (e) { typeError = "error" } finally { $.fn.kwindow({ header: headerTxt, content: ev, width: "500px", type: typeError, isModal: false, showAfterCreate: true, removeAfterClose: true, cancelButtonText: "Закрыть" }) } } function fnCallAfterAllAjax(g) { var a = $.extend({ sendMethod: "POST", contentType: null, dataType: null, disableLoadingMask: true }, g || {}), b = 0; if (a.funcTotalCount) b = a.funcTotalCount; else for (var c in a.ajaxCalls) b++; b == 0 && a.fnFinishCall(a.ajaxCalls); var d = function (e, d, c) { b--; a.ajaxCalls[c.funcDataName].returnData = d; b == 0 && a.fnFinishCall(a.ajaxCalls) }; for (var c in a.ajaxCalls) { var f = a.ajaxCalls[c].remoteFuncName, e = a.ajaxCalls[c].remoteFuncParams, h = { disableLoadingMask: a.disableLoadingMask, contentType: a.contentType, dataType: a.dataType, funcDataName: c }; kajaxCall(a.sendMethod, e, h, f, a.ajaxCalls[c].fnCallBack, null, d) } } function fnRecursiveFindDateInObj(a) { for (n in a) { a[n] instanceof Object && fnRecursiveFindDateInObj(a[n]); var b = typeof a[n]; if (b == "string") if (a[n].substring(0, 6) == "/Date(") a[n] = a[n].JSONStringToDate() } } function fnAddModalLayer() { var a; a = '<div class="kmodal"></div>'; $("body").append(a) } function fnRemoveModalLayer() { $(".kmodal").remove() } function fnGetQueryString(a, c) { a = a.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]"); var d = new RegExp("[?&]" + a + "=([^&#]*)"), b = d.exec(c); return b == null ? "" : b[1] } function fnGetUniqueId() { return Date.now().getTime().toString() } function fnToLongDateString(a) { return a ? a.toString("dd.MM.yyyy H:mm:ss") : "" } function fnToShortDateString(a) { return a ? a.toString("dd.MM.yyyy") : "" } function fnFromFormObjToDataObj2(a, f, b, c, d, e, g) { if (!a) a = {}; b = b || ""; c = c || 0; f.each(function () { var l = "iSelectControlData", f = this; elemTagSrc = f.tagName.toLowerCase(); elemTypeSrc = $(f).attr("type"); elemSrcId = $(f).attr("id"); useComboboxTextVal = $(f).attr("useTextVal"); var h = null; if (elemSrcId) { if (elemTagSrc == "input") { if (elemTypeSrc == "checkbox") h = $(f)[0].checked ? 1 : 0; else if (elemTypeSrc == "text" || elemTypeSrc == "password") if (g && ($(f).hasClass("iDatePicker") || $(f).hasClass("iDateTimePicker"))) { if ($(f).val() != "") h = Date.parse($(f).val()).toJSONString2() } else if ($(f).hasClass("iCombobox") && !useComboboxTextVal) { var m = $(f).kcomboboxGetSelectedItemData(), k = $(f).data("kdata"); if (m && k) { var n = k.settings; h = m[n.defaultSelectedField] } } else if ($(f).hasClass("iSelectControl") && $(f).data(l)) h = $(f).data(l); else h = $(f).val() } else if (elemTagSrc == "span" || elemTagSrc == "pre") { h = $(f).text(); if ($(f).attr("title") != "" && elemTagSrc == "span") { var j = parseInt($(f).attr("title")); if (!isNaN(j) && j != 0) h = j } } else if (elemTagSrc == "select" || elemTagSrc == "textarea") h = $(f).val(); var i = b + elemSrcId.substring(c); if (h === 0 || h) { if (!e) a[i] = h; else if (a[i] === undefined) a[i] = h } else if (d) a[i] = null } }); return a } function fnFromDataObjToFormObj(f, i, j, l, m) { for (var h in f) for (var k = "#" + (j || "") + h.substring(l || ""), c = f[h], b = i.find(k), e, d, a = 0; a < b.length; a++) { d = b[a].tagName.toLowerCase(); e = $(b[a]).attr("type"); if (c && c.getMonth) switch (m) { case "long": default: c = fnToLongDateString(c); break; case "short": c = fnToShortDateString(c) } if (d == "input") { if (e == "checkbox") $(b[a]).attr("checked", c != 0 && c !== null ? true : false); else if (e == "text") if ($(b[a]).hasClass("iCombobox") && $(b[a]).kcomboboxGetInstance() != null) (function (a, b) { a.kcomboboxGetInstance().fnLocalGetDataFromServer(false, true, function () { a.kcomboboxSelect(b) }) })($(b[a]), c); else if ($(b[a]).hasClass("iSelectControl")) { $(b[a]).data("iSelectControlData", c); var n = $(b[a]).attr("ktermField"), g = f[n]; g && $(b[a]).val(g) } else $(b[a]).val(c) } else if (d == "span") $(b[a]).text(c); else (d == "select" || d == "textarea") && $(b[a]).val(c) } } function fnGetObjByKey(c, e, a) { var d = "" + e + ""; for (var b in a) { if (a[b][c] === undefined) return null; if ("" + a[b][c] + "" == d) return a[b] } } function fnConfirmAction(d, e, a, b, c) { return $.fn.kwindow({ header: d || "Подтверждение действия", type: "confirm", isModal: c || true, showAfterCreate: false, cancelButtonText: "Закрыть", content: e, removeAfterClose: true, cancelButtonText: "Отмена", buttons: { bnt_create_apply: { text: b || "Да", action: a}} }) } function fnExecFnByName(d) { for (var c, e = Array.prototype.slice.call(arguments).splice(1, arguments.length - 1), a = d.split("."), f = a.pop(), b = 0; b < a.length; b++) c = window[a[b]]; return c[f].apply(this, e) } function classObserver() { this._observers = {}, this._subUid = -1 } classObserver.prototype = { raise: function (a) { if (!this._observers[a]) return false; var d = this, e = Array.prototype.slice.call(arguments).splice(1, arguments.length - 1), b = this._observers[a].settings, c = function () { var b = d._observers[a].array, f = b ? b.length : 0; while (f--) { var c = b[f]; c.subscriber.apply(c.context, e) } }; if (b && !b.async) c(); else setTimeout(function () { c() }, 0); return true }, subscribe: function (e, d, g, f) { for (var h = g || null, c = (++this._subUid).toString(), b = e.split(" "), a = 0; a < b.length; a++) { this._observers[b[a]] = { array: [], settings: f }; this._observers[b[a]].array.push({ subscriber: d, context: h, token: c }) } return c }, unsubscribe: function (e) { var a = this, d = 0; for (var c in a._observers) if (a._observers[c]) for (var b = 0, f = a._observers[c].array.length; b < f; b++) if (a._observers[c].array[b].token === e) { a._observers[c].array.splice(b, 1); d++ } return d } };
