';
if (r) {
var s = '
';
k--
}
var f = 0;
for (var w = 0; w < z; w++) {
var x = B.columns.records[w];
var t = x.width;
if (t < x.minwidth) {
t = x.minwidth
}
if (t > x.maxwidth) {
t = x.maxwidth
}
if (B.rtl) {
var q = k - z + 2 * w;
var d = '
';
s += d
}
if (p == 0) {
B.table.width(parseInt(f) + 2);
p = f
}
s += "
";
v += s
}
if (B.WinJS) {
MSApp.execUnsafeLocalFunction(function() {
B.table.html(v)
})
} else {
B.table[0].innerHTML = v
}
B.table[0].rows = new Array();
var m = B.table.children();
for (var y = 0; y < u; y++) {
var h = m[y];
B.table[0].rows.push(h);
h.cells = new Array();
var e = b(h).children();
for (var w = 0; w < z; w++) {
h.cells.push(e[w])
}
}
if (u == 0) {
var f = 0;
if (B.showemptyrow) {
var s = b('
');
B.table.append(s);
s.height(B.rowsheight);
B.table[0].rows[0] = s[0];
B.table[0].rows[0].cells = new Array()
}
for (var w = 0; w < z; w++) {
var x = B.columns.records[w];
var t = x.width;
if (B.showemptyrow) {
var d = b('
');
d.height(B.rowsheight);
s.append(d);
B.table[0].rows[0].cells[w] = d[0]
}
if (t < x.minwidth) {
t = x.minwidth
}
if (t > x.maxwidth) {
t = x.maxwidth
}
if (! (x.hidden && x.hideable)) {
f += t
}
}
B.table.width(parseInt(f) + 2);
p = f
}
B._updatescrollbarsafterrowsprerender();
if (B.rendered) {
B.rendered("rows")
}
B.toCompile = new Array();
B._addoverlayelement()
}
},
_groupsheader: function() {
return this.groupable && this.showgroupsheader
},
_arrange: function() {
var A = null;
var x = null;
this.tableheight = null;
var F = this.that;
var n = false;
var m = false;
if (F.width != null && F.width.toString().indexOf("px") != -1) {
A = F.width
} else {
if (F.width != undefined && !isNaN(F.width)) {
A = F.width
}
}
if (F.width != null && F.width.toString().indexOf("%") != -1) {
A = F.width;
n = true
}
if (F.scrollbarautoshow) {
F.vScrollBar[0].style.display = "none";
F.hScrollBar[0].style.display = "none";
F.vScrollBar[0].style.zIndex = F.tableZIndex + F.headerZIndex;
F.hScrollBar[0].style.zIndex = F.tableZIndex + F.headerZIndex
}
if (F.autowidth) {
var p = 0;
for (var B = 0; B < F.columns.records.length; B++) {
var e = F.columns.records[B].width;
if (e == "auto") {
e = F._measureElementWidth(F.columns.records[B].text);
p += e
} else {
p += e
}
}
if (F.vScrollBar.css("visibility") != "hidden") {
p += F.scrollbarsize + 4
}
A = p;
F.width = A
}
if (F.height != null && F.height.toString().indexOf("px") != -1) {
x = F.height
} else {
if (F.height != undefined && !isNaN(F.height)) {
x = F.height
}
}
if (F.height != null && F.height.toString().indexOf("%") != -1) {
x = F.height;
m = true
}
var k = function() {
var i = 0;
var w = F.showheader ? F.columnsheader != null ? F.columnsheader.height() + 2 : 0 : 0;
i += w;
if (F.pageable) {
i += F.pagerheight
}
if (F._groupsheader()) {
i += F.groupsheaderheight
}
if (F.showtoolbar) {
i += F.toolbarheight
}
if (F.showstatusbar) {
i += F.statusbarheight
}
if (F.showeverpresentrow && F.everpresentrowposition === "bottom") {
i += F.everpresentrowheight
}
if (F.hScrollBar[0].style.visibility == "visible") {
i += 20
}
return i
};
if (F.autoheight && F.virtualsizeinfo) {
if (F.pageable && F.gotopage) {
var C = 0;
x = C + (F._pageviews[0] ? F._pageviews[0].height: 0);
x += k();
if (F.showemptyrow && F.dataview.totalrecords == 0) {
x += F.rowsheight
}
} else {
var C = F.host.height() - F._gettableheight();
if (F._pageviews.length > 0) {
x = C + F._pageviews[F._pageviews.length - 1].height + F._pageviews[F._pageviews.length - 1].top;
F.vScrollBar[0].style.visibility = "hidden"
} else {
x = k();
if (F.showemptyrow) {
x += F.rowsheight
}
}
}
} else {
if (F.autoheight) {
x = F.dataview.totalrecords * F.rowsheight;
if (F.pageable && F.gotopage) {
x = F.pagesize * F.rowsheight
}
if (F._loading) {
x = 250;
F.dataloadelement.height(x)
}
x += k();
if (x > 10000) {
x = 10000
}
}
}
if (A != null) {
A = parseInt(A);
if (!n) {
if (F.element.style.width != parseInt(F.width) + "px") {
F.element.style.width = parseInt(F.width) + "px"
}
} else {
F.element.style.width = F.width
}
if (n) {
A = F.host.width();
if (A <= 2) {
A = 600;
F.host.width(A)
}
if (!F._oldWidth) {
F._oldWidth = A
}
}
} else {
F.host.width(250)
}
if (x != null) {
if (!m) {
x = parseInt(x)
}
if (!m) {
if (F.element.style.height != parseInt(x) + "px") {
F.element.style.height = parseInt(x) + "px"
}
} else {
F.element.style.height = F.height
}
if (m && !F.autoheight) {
x = F.host.height();
if (x == 0) {
x = 400;
F.host.height(x)
}
if (!F._oldHeight) {
F._oldHeight = x
}
}
} else {
F.host.height(250)
}
if (F.autoheight) {
F.tableheight = null;
F._gettableheight()
}
var v = 0;
if (F.showtoolbar) {
F.toolbar.width(A);
F.toolbar.height(F.toolbarheight - 1);
F.toolbar.css("top", 0);
v += F.toolbarheight;
x -= parseInt(F.toolbarheight)
} else {
F.toolbar[0].style.height = "0px"
}
if (F.showstatusbar) {
if (F.showaggregates) {
F.statusbar.width(!F.table ? A: Math.max(A, F.table.width()))
} else {
F.statusbar.width(A)
}
F.statusbar.height( - 1 + F.statusbarheight)
} else {
F.statusbar[0].style.height = "0px"
}
if (F.showeverpresentrow && F.everpresentrowposition === "bottom") {
F.addnewrow.width(A);
F.addnewrow.height(F.everpresentrowheight)
} else {
F.addnewrow[0].style.height = "0px"
}
if (F._groupsheader()) {
F.groupsheader.width(A);
F.groupsheader.height(F.groupsheaderheight);
F.groupsheader.css("top", v);
var y = F.groupsheader.height() + 1;
v += y;
if (x > y) {
x -= parseInt(y)
}
} else {
if (F.groupsheader[0].style.width != A + "px") {
F.groupsheader[0].style.width = parseInt(A) + "px"
}
F.groupsheader[0].style.height = "0px";
if (F.groupsheader[0].style.top != v + "px") {
F.groupsheader.css("top", v)
}
var y = F.showgroupsheader && F.groupable ? F.groupsheaderheight: 0;
var f = v + y + "px";
if (F.content[0].style.top != f) {
F.content.css("top", v + F.groupsheaderheight)
}
}
var d = F.scrollbarsize;
if (isNaN(d)) {
d = parseInt(d);
if (isNaN(d)) {
d = "17px"
} else {
d = d + "px"
}
}
d = parseInt(d);
var s = 4;
var h = 2;
var j = 0;
if (F.vScrollBar[0].style.visibility == "visible") {
j = d + s
}
if (F.hScrollBar[0].style.visibility == "visible") {
h = d + s + 2
}
var r = 0;
if (F.pageable) {
r = F.pagerheight;
h += F.pagerheight
}
if (F.showstatusbar) {
h += F.statusbarheight;
r += F.statusbarheight
}
if (F.showeverpresentrow && F.everpresentrowposition === "bottom") {
h += F.everpresentrowheight;
r += F.everpresentrowheight
}
if (F.hScrollBar[0].style.height != d + "px") {
F.hScrollBar[0].style.height = parseInt(d) + "px"
}
if (F.hScrollBar[0].style.top != v + x - s - d - r + "px" || F.hScrollBar[0].style.left != "0px") {
F.hScrollBar.css({
top: v + x - s - d - r + "px",
left: "0px"
})
}
var q = F.hScrollBar[0].style.width;
var l = false;
var D = false;
if (j == 0) {
if (q != (A - 2) + "px") {
F.hScrollBar.width(A - 2);
l = true
}
} else {
if (q != (A - d - s) + "px") {
F.hScrollBar.width(A - d - s + "px");
l = true
}
}
if (!F.autoheight) {
if (F.vScrollBar[0].style.width != d + "px") {
F.vScrollBar.width(d);
D = true
}
if (F.vScrollBar[0].style.height != parseInt(x) - h + "px") {
F.vScrollBar.height(parseInt(x) - h + "px");
D = true
}
if (F.vScrollBar[0].style.left != parseInt(A) - parseInt(d) - s + "px" || F.vScrollBar[0].style.top != v + "px") {
F.vScrollBar.css({
left: parseInt(A) - parseInt(d) - s + "px",
top: v
})
}
}
if (F.rtl) {
F.vScrollBar.css({
left: "0px",
top: v
});
if (F.vScrollBar.css("visibility") != "hidden") {
F.hScrollBar.css({
left: d + 2
})
}
}
var o = F.vScrollInstance;
o.disabled = F.disabled;
if (!F.autoheight) {
if (D) {
o.refresh()
}
}
var z = F.hScrollInstance;
z.disabled = F.disabled;
if (l) {
z.refresh()
}
if (F.autowidth) {
F.hScrollBar[0].style.visibility = "hidden"
}
F.statusbarheight = parseInt(F.statusbarheight);
F.toolbarheight = parseInt(F.toolbarheight);
var t = function(w) {
if ((w.vScrollBar[0].style.visibility == "visible") && (w.hScrollBar[0].style.visibility == "visible")) {
w.bottomRight[0].style.visibility = "visible";
w.bottomRight.css({
left: 1 + parseInt(w.vScrollBar.css("left")),
top: parseInt(w.hScrollBar.css("top"))
});
if (w.rtl) {
w.bottomRight.css("left", "0px")
}
w.bottomRight.width(parseInt(d) + 3);
w.bottomRight.height(parseInt(d) + 4);
var G = w.showeverpresentrow && w.everpresentrowposition == "bottom";
var i = G ? w.everpresentrowheight: 0;
if (i > 0 && !w.showaggregates) {
w.bottomRight.css("z-index", 99);
w.bottomRight.height(parseInt(d) + 4 + i);
w.bottomRight.css({
top: parseInt(w.hScrollBar.css("top")) - i
})
}
if (w.showaggregates) {
w.bottomRight.css("z-index", 99);
w.bottomRight.height(parseInt(d) + 4 + w.statusbarheight + i);
w.bottomRight.css({
top: parseInt(w.hScrollBar.css("top")) - w.statusbarheight - i
})
}
} else {
w.bottomRight[0].style.visibility = "hidden"
}
};
t(this);
if (F.content[0].style.width != A - j + "px") {
F.content.width(A - j)
}
if (F.content[0].style.height != x - h + 3 + "px") {
F.content.height(x - h + 3)
}
if (F.scrollbarautoshow) {
if (F.content[0].style.width != A + "px") {
F.content.width(A)
}
if (F.content[0].style.height != x + "px") {
F.content.height(x)
}
}
if (F.content[0].style.top != v + "px") {
F.content.css("top", v)
}
if (F.rtl) {
F.content.css("left", j);
if (F.scrollbarautoshow) {
F.content.css("left", "0px")
}
if (F.table) {
var u = F.table.width();
if (u < A - j) {
F.content.css("left", A - u)
}
}
}
if (F.showstatusbar) {
F.statusbar.css("top", v + x - F.statusbarheight - (F.pageable ? F.pagerheight: 0));
if (F.showaggregates) {
if (F.hScrollBar.css("visibility") == "visible") {
F.hScrollBar.css({
top: v + x - s - d - r + F.statusbarheight + "px"
});
F.statusbar.css("top", 1 + v + x - d - 5 - F.statusbarheight - (F.pageable ? F.pagerheight: 0))
}
t(this)
}
if (F.rtl) {
if (F.hScrollBar.css("visibility") != "visible") {
F.statusbar.css("left", F.content.css("left"))
} else {
F.statusbar.css("left", "0px")
}
}
}
if (F.showeverpresentrow && F.everpresentrowposition === "bottom") {
F.addnewrow.css("top", v + x - (F.showstatusbar ? F.statusbarheight: 0) - (F.pageable ? F.pagerheight: 0) - F.everpresentrowheight);
if (F.rtl) {
if (F.hScrollBar.css("visibility") != "visible") {
F.addnewrow.css("left", F.content.css("left"))
} else {
F.addnewrow.css("left", "0px")
}
}
}
if (F.pageable) {
F.pager.width(A);
F.pager.height(F.pagerheight);
F.pager.css("top", v + x - F.pagerheight - 1)
} else {
F.pager[0].style.height = "0px"
}
if (F.table != null) {
var g = -2;
if (F.vScrollBar[0].style.visibility == "visible") {
g = F.scrollbarsize + 3
}
if (F.hScrollBar[0].style.visibility == "visible") {
var E = g + F.table.width() - F.host.width();
if (E >= 0) {
F.hScrollBar.jqxScrollBar("max", E)
}
if (F.hScrollBar[0].style.visibility == "visible" && E == 0) {
F.hScrollBar[0].style.visibility = "hidden";
F._arrange()
}
}
}
if (A != parseInt(F.dataloadelement[0].style.width)) {
F.dataloadelement[0].style.width = F.element.style.width
}
if (x != parseInt(F.dataloadelement[0].style.height)) {
F.dataloadelement[0].style.height = F.element.style.height
}
F._hostwidth = A
},
destroy: function() {
delete b.jqx.dataFormat.datescache;
delete this.gridlocalization;
b.jqx.utilities.resize(this.host, null, true);
if (this.table && this.table[0]) {
var m = this.table[0].rows.length;
for (var k = 0; k < m; k++) {
var q = this.table[0].rows[k];
var p = q.cells;
var f = p.length;
for (var h = 0; h < f; h++) {
b(q.cells[h]).remove();
q.cells[h] = null;
delete q.cells[h]
}
q.cells = null;
if (q.cells) {
delete q.cells
}
b(this.table[0].rows[k]).remove();
this.table[0].rows[k] = null
}
try {
delete this.table[0].rows
} catch(n) {}
this.table.remove();
delete this.table
}
if (this.columns && this.columns.records) {
for (var k = 0; k < this.columns.records.length; k++) {
var e = this.columns.records[k];
if (e.addnewrowwidget) {
if (e.destroyeverpresentrowwidget) {
e.destroyeverpresentrowwidget(e.addnewrowwidget)
}
}
this._removecolumnhandlers(this.columns.records[k]);
if (e.element) {
b(e.element).remove();
b(e.sortasc).remove();
b(e.sortdesc).remove();
b(e.filtericon).remove();
b(e.menu).remove();
e.element = null;
e.uielement = null;
e.sortasc = null;
e.sortdesc = null;
e.filtericon = null;
e.menu = null;
delete e.element;
delete e.uielement;
delete e.sortasc;
delete e.sortdesc;
delete e.filtericon;
delete e.menu;
delete this.columnsrow[0].cells[k]
}
}
try {
delete this.columnsrow[0].cells
} catch(n) {}
delete this.columnsrow
}
b.removeData(document.body, "contextmenu" + this.element.id);
if (this.host.jqxDropDownList) {
if (this._destroyfilterpanel) {
this._destroyfilterpanel()
}
}
if (this.editable && this._destroyeditors) {
this._destroyeditors()
}
if (this.filterable && this._destroyedfilters && this.showfilterrow) {
this._destroyedfilters()
}
if (this.host.jqxMenu) {
if (this.gridmenu) {
this.removeHandler(b(document), "click.menu" + this.element.id);
this.removeHandler(this.gridmenu, "keydown");
this.removeHandler(this.gridmenu, "closed");
this.removeHandler(this.gridmenu, "itemclick");
this.gridmenu.jqxMenu("destroy");
this.gridmenu = null
}
}
if (this.pagershowrowscombo) {
this.pagershowrowscombo.jqxDropDownList("destroy");
this.pagershowrowscombo = null
}
if (this.pagerrightbutton) {
this.removeHandler(this.pagerrightbutton, "mousedown");
this.removeHandler(this.pagerrightbutton, "mouseup");
this.removeHandler(this.pagerrightbutton, "click");
this.pagerrightbutton.jqxButton("destroy");
this.pagerrightbutton = null
}
if (this.pagerleftbutton) {
this.removeHandler(this.pagerleftbutton, "mousedown");
this.removeHandler(this.pagerleftbutton, "mouseup");
this.removeHandler(this.pagerleftbutton, "click");
this.pagerleftbutton.jqxButton("destroy");
this.removeHandler(b(document), "mouseup.pagerbuttons" + this.element.id);
this.pagerleftbutton = null
}
this.removeHandler(b(document), "selectstart." + this.element.id);
this.removeHandler(b(document), "mousedown.resize" + this.element.id);
this.removeHandler(b(document), "mouseup.resize" + this.element.id);
this.removeHandler(b(document), "mousemove.resize" + this.element.id);
if (this.isTouchDevice()) {
var l = b.jqx.mobile.getTouchEventName("touchmove") + ".resize" + this.element.id;
var d = b.jqx.mobile.getTouchEventName("touchstart") + ".resize" + this.element.id;
var g = b.jqx.mobile.getTouchEventName("touchend") + ".resize" + this.element.id;
this.removeHandler(b(document), l);
this.removeHandler(b(document), d);
this.removeHandler(b(document), g)
}
this.removeHandler(b(document), "mousedown.reorder" + this.element.id);
this.removeHandler(b(document), "mouseup.reorder" + this.element.id);
this.removeHandler(b(document), "mousemove.reorder" + this.element.id);
if (this.isTouchDevice()) {
var l = b.jqx.mobile.getTouchEventName("touchmove") + ".reorder" + this.element.id;
var d = b.jqx.mobile.getTouchEventName("touchstart") + ".reorder" + this.element.id;
var g = b.jqx.mobile.getTouchEventName("touchend") + ".reorder" + this.element.id;
this.removeHandler(b(document), l);
this.removeHandler(b(document), d);
this.removeHandler(b(document), g)
}
this.removeHandler(b(window), "resize." + this.element.id);
if (this.groupable) {
var l = "mousemove.grouping" + this.element.id;
var d = "mousedown.grouping" + this.element.id;
var g = "mouseup.grouping" + this.element.id;
this.removeHandler(b(document), l);
this.removeHandler(b(document), d);
this.removeHandler(b(document), g)
}
if (this.columnsreorder) {
var l = "mousemove.reorder" + this.element.id;
var d = "mousedown.reorder" + this.element.id;
var g = "mouseup.reorder" + this.element.id;
this.removeHandler(b(document), l);
this.removeHandler(b(document), d);
this.removeHandler(b(document), g);
delete this.columnsbounds
}
if (this.content) {
this.removeHandler(this.content, "mousedown");
this.removeHandler(this.content, "scroll")
}
this._removeHandlers();
this.hScrollInstance.destroy();
this.vScrollInstance.destroy();
this.hScrollBar.remove();
this.vScrollBar.remove();
this._clearcaches();
delete this.hScrollInstance;
delete this.vScrollInstance;
delete this.visiblerows;
delete this.hittestinfo;
delete this.rows;
delete this.columns;
delete this.columnsbydatafield;
delete this.pagescache;
delete this.pageviews;
delete this.cellscache;
delete this.heights;
delete this.hiddens;
delete this.hiddenboundrows;
delete this.heightboundrows;
delete this.detailboundrows;
delete this.details;
delete this.expandedgroups;
delete this._rowdetailscache;
delete this._rowdetailselementscache;
delete this.columnsmenu;
if (this.columnsheader) {
this.columnsheader.remove();
delete this.columnsheader
}
if (this.selectionarea) {
this.selectionarea.remove();
delete this.selectionarea
}
if (this.menuitemsarray && this.menuitemsarray.length) {
var o = this.menuitemsarray.length;
for (var k = 0; k < o; k++) {
b(this.menuitemsarray[k]).remove()
}
}
delete this.menuitemsarray;
this.dataview._clearcaches();
this.content.removeClass();
this.content.remove();
this.content = null;
delete this.content;
this.vScrollBar = null;
this.hScrollBar = null;
delete this.hScrollBar;
delete this.hScrollBar;
if (this.gridcontent) {
this.gridcontent.remove();
delete this.gridcontent
}
if (this.gridmenu) {
this.gridmenu = null;
delete this.gridmenu
}
delete this._mousemovefunc;
delete this._mousewheelfunc;
this.dataview.destroy();
delete this.dataview;
this.bottomRight.remove();
delete this.bottomRight;
this.wrapper.remove();
delete this.wrapper;
if (this.pagerdiv) {
this.pagerdiv.remove();
delete this.pagerdiv
}
if (this.pagerpageinput) {
this.pagerpageinput.remove();
delete this.pagerpageinput
}
if (this.pagergoto) {
this.pagergoto.remove();
delete this.pagergoto
}
if (this.pagershowrows) {
this.pagershowrows.remove();
delete this.pagershowrows
}
if (this.pagerfirstbutton) {
this.pagerfirstbutton.remove();
delete this.pagerfirstbutton
}
if (this.pagerlastbutton) {
this.pagerlastbutton.remove();
delete this.pagerlastbutton
}
if (this.pagerbuttons) {
this.pagerbuttons.remove();
delete this.pagerbuttons
}
if (this.pagerdetails) {
this.pagerdetails.remove();
delete this.pagerdetails
}
if (this.pagergotoinput) {
this.pagergotoinput.remove();
delete this.pagergotoinput
}
this.pager.remove();
delete this.pager;
this.groupsheader.remove();
delete this.groupsheader;
this.dataloadelement.remove();
delete this.dataloadelement;
this.toolbar.remove();
delete this.toolbar;
this.statusbar.remove();
delete this.statusbar;
this.host.removeData();
this.host.removeClass();
this.host.remove();
this.host = null;
delete this.host;
delete this.element;
delete this.set;
delete this.get;
delete this.that;
delete this.call
},
_initializeColumns: function() {
var f = this.source ? this.source.datafields: null;
if (f == null && this.source && this.source._source) {
f = this.source._source.datafields
}
var j = f ? f.length > 0 : false;
if (this.autogeneratecolumns) {
var l = new Array();
if (f) {
b.each(f,
function() {
var i = {
datafield: this.name,
text: this.text || this.name,
cellsformat: this.format || ""
};
l.push(i)
})
} else {
if (this.source.records.length > 0) {
var n = this.source.records[0];
for (obj in n) {
if (obj != "uid") {
var g = {
width: 100,
datafield: obj,
text: obj
};
l.push(g)
}
}
}
}
this.columns = l
}
if (this.columns && this.columns.records) {
for (var h = 0; h < this.columns.records.length; h++) {
this._removecolumnhandlers(this.columns.records[h])
}
}
var k = this.that;
var e = new b.jqx.collection(this.element);
var d = 0;
this._haspinned = false;
if (!this._columns) {
this._columns = this.columns
} else {
this.columns = this._columns
}
if (this.groupable) {
b.each(this.groups,
function(i) {
var o = new c(k, this);
o.visibleindex = d++;
o.width = k.groupindentwidth;
e.add(o);
o.grouped = true;
o.filterable = false;
o.sortable = false;
o.editable = false;
o.resizable = false;
o.draggable = false
})
}
if (this.rowdetails && this.showrowdetailscolumn) {
var g = new c(k, this);
g.visibleindex = d++;
g.width = k.groupindentwidth;
g.pinned = true;
g.editable = false;
g.filterable = false;
g.draggable = false;
g.groupable = false;
g.resizable = false;
e.add(g);
k._haspinned = true
}
if (this.selectionmode == "checkbox") {
var g = new c(k, null);
g.visibleindex = d++;
g.width = k.groupindentwidth;
g.checkboxcolumn = true;
g.editable = false;
g.columntype = "checkbox";
g.groupable = false;
g.draggable = false;
g.filterable = false;
g.resizable = false;
g.datafield = "_checkboxcolumn";
e.add(g)
}
var m = new Array();
b.each(this.columns,
function(i) {
if (k.columns[i] != undefined) {
var o = new c(k, this);
o.visibleindex = d++;
if (this.dataField != undefined) {
this.datafield = this.dataField
}
if (this.pinned) {
k._haspinned = true
}
if (k.showeverpresentrow) {
if (this.datafield === "addButtonColumn" || this.datafield === "resetButtonColumn" || this.datafield === "updateButtonColumn" || this.datafield === "deleteButtonColumn") {
o.editable = false;
o.groupable = false;
o.draggable = false;
o.filterable = false;
o.resizable = false;
o.menu = false
}
}
if (this.datafield == null) {
if (k.source && k.source._source && (k.source._source.datatype == "array")) {
if (!j) {
if (!k.source._source.datafields) {
k.source._source.datafields = new Array();
k.source._source.datafields.push({
name: i.toString()
})
} else {
k.source._source.datafields.push({
name: i.toString()
})
}
}
this.datafield = i.toString();
this.displayfield = i.toString();
o.datafield = this.datafield;
o.displayfield = this.displayfield
}
} else {
if (m[this.datafield]) {
throw new Error("jqxGrid: Invalid column 'datafield' setting. jqxGrid's columns should be initialized with unique data fields.");
k.host.remove();
return false
} else {
m[this.datafield] = true
}
}
e.add(o)
}
});
if (this.rtl) {
e.records.reverse()
}
this.columns = e
},
_initializeRows: function() {
var d = new b.jqx.collection(this.element);
if (this.rows) {
this.rows.clear()
}
this.rows = d
},
_raiseEvent: function(i, e) {
if (e == undefined) {
e = {
owner: null
}
}
if (this._trigger === false) {
return
}
var f = this.events[i];
if (!this._camelCase) {
f = f.toLowerCase()
}
if (i == 2 || i == 15) {
if (this.showeverpresentrow && (this.everpresentrowactions.indexOf("delete") >= 0 || this.everpresentrowactions.indexOf("update") >= 0)) {
if (this.updateeverpresentrow) {
var h = this
}
setTimeout(function() {
h.updateeverpresentrow()
},
50)
}
}
args = e;
args.owner = this;
var g = new b.Event(f);
g.owner = this;
g.args = args;
var d = this.host.trigger(g);
e = g.args;
return d
},
wheel: function(f, e) {
if (e.autoheight && e.hScrollBar.css("visibility") != "visible") {
f.returnValue = true;
return true
}
var g = 0;
if (!f) {
f = window.event
}
if (f.originalEvent && f.originalEvent.wheelDelta) {
f.wheelDelta = f.originalEvent.wheelDelta
}
if (f.wheelDelta) {
g = f.wheelDelta / 120
} else {
if (f.detail) {
g = -f.detail / 3
}
}
if (g) {
var d = e._handleDelta(g);
if (d) {
if (f.preventDefault) {
f.preventDefault()
}
if (f.originalEvent != null) {
f.originalEvent.mouseHandled = true
}
if (f.stopPropagation != undefined) {
f.stopPropagation()
}
}
if (d) {
d = false;
f.returnValue = d;
return d
} else {
return false
}
}
if (f.preventDefault) {
f.preventDefault()
}
f.returnValue = false
},
_handleDelta: function(f) {
if (this.vScrollBar.css("visibility") != "hidden") {
var e = this.vScrollInstance.value;
if (f < 0) {
this.scrollDown()
} else {
this.scrollUp()
}
var d = this.vScrollInstance.value;
if (e != d) {
return true
}
} else {
if (this.hScrollBar.css("visibility") != "hidden") {
var e = this.hScrollInstance.value;
if (f > 0) {
if (this.hScrollInstance.value > 2 * this.horizontalscrollbarstep) {
this.hScrollInstance.setPosition(this.hScrollInstance.value - 2 * this.horizontalscrollbarstep)
} else {
this.hScrollInstance.setPosition(0)
}
} else {
if (this.hScrollInstance.value < this.hScrollInstance.max) {
this.hScrollInstance.setPosition(this.hScrollInstance.value + 2 * this.horizontalscrollbarstep)
} else {
this.hScrollInstance.setPosition(this.hScrollInstance.max)
}
}
var d = this.hScrollInstance.value;
if (e != d) {
return true
}
}
}
return false
},
scrollDown: function() {
if (this.vScrollBar.css("visibility") == "hidden") {
return
}
var d = this.vScrollInstance;
if (d.value + this.rowsheight <= d.max) {
d.setPosition(parseInt(d.value) + this.rowsheight)
} else {
d.setPosition(d.max)
}
},
scrollUp: function() {
if (this.vScrollBar.css("visibility") == "hidden") {
return
}
var d = this.vScrollInstance;
if (d.value - this.rowsheight >= d.min) {
d.setPosition(parseInt(d.value) - this.rowsheight)
} else {
d.setPosition(d.min)
}
},
_removeHandlers: function() {
var d = this.that;
d.removeHandler(b(window), "orientationchange.jqxgrid" + d.element.id);
d.removeHandler(b(window), "orientationchanged.jqxgrid" + d.element.id);
d.removeHandler(d.vScrollBar, "valueChanged");
d.removeHandler(d.hScrollBar, "valueChanged");
d.vScrollInstance.valueChanged = null;
d.hScrollInstance.valueChanged = null;
var e = "mousedown.jqxgrid";
if (d.isTouchDevice()) {
e = b.jqx.mobile.getTouchEventName("touchend")
}
d.removeHandler(d.host, "dblclick.jqxgrid");
d.removeHandler(d.host, e);
d.removeHandler(d.content, "mousemove", d._mousemovefunc);
d.removeHandler(d.host, "mouseleave.jqxgrid");
d.removeHandler(d.content, "mouseenter");
d.removeHandler(d.content, "mouseleave");
d.removeHandler(d.content, "mousedown");
d.removeHandler(d.content, "scroll");
d.removeHandler(d.content, "selectstart." + d.element.id);
d.removeHandler(d.host, "dragstart." + d.element.id);
d.removeHandler(d.host, "keydown.edit" + d.element.id);
d.removeHandler(b(document), "keydown.edit" + d.element.id);
d.removeHandler(b(document), "keyup.edit" + d.element.id);
if (d._mousemovedocumentfunc) {
d.removeHandler(b(document), "mousemove.selection" + d.element.id, d._mousemovedocumentfunc)
}
d.removeHandler(b(document), "mouseup.selection" + d.element.id);
if (d._mousewheelfunc) {
d.removeHandler(d.host, "mousewheel", d._mousewheelfunc)
}
if (d.editable) {
d.removeHandler(b(document), "mousedown.gridedit" + d.element.id)
}
if (d.host.off) {
d.content.off("mousemove");
d.host.off("mousewheel")
}
},
_addHandlers: function() {
var e = this.that;
var d = e.isTouchDevice();
if (!d) {
e.addHandler(e.host, "dragstart." + e.element.id,
function(j) {
return false
})
}
if (e.scrollbarautoshow) {
e.addHandler(e.host, "mouseenter.gridscroll" + e.element.id,
function(j) {
e.vScrollBar.fadeIn("fast");
e.hScrollBar.fadeIn("fast")
});
e.addHandler(e.host, "mouseleave.gridscroll" + e.element.id,
function(j) {
if (!e.vScrollInstance.isScrolling() && !e.hScrollInstance.isScrolling()) {
e.vScrollBar.fadeOut("fast");
e.hScrollBar.fadeOut("fast")
}
})
}
if (e.editable) {
e.addHandler(b(document), "mousedown.gridedit" + e.element.id,
function(m) {
if (e.editable && e.begincelledit) {
if (e.editcell) {
if (!e.vScrollInstance.isScrolling() && !e.vScrollInstance.isScrolling()) {
var r = e.host.coord();
var q = e.host.width();
var n = e.host.height();
var v = false;
var k = false;
var t = false;
if (m.pageY < r.top || m.pageY > r.top + n) {
v = true;
k = true
}
if (m.pageX < r.left || m.pageX > r.left + q) {
v = true;
t = true
}
if (v) {
var u = false;
if (e.editcell && e.editcell.editor) {
switch (e.editcell.columntype) {
case "datetimeinput":
if (e.editcell.editor.jqxDateTimeInput && e.editcell.editor.jqxDateTimeInput("container") && e.editcell.editor.jqxDateTimeInput("container")[0].style.display == "block") {
var s = e.editcell.editor.jqxDateTimeInput("container").coord().top;
var j = e.editcell.editor.jqxDateTimeInput("container").coord().top + e.editcell.editor.jqxDateTimeInput("container").height();
if (k && (m.pageY < s || m.pageY > j)) {
v = true;
e.editcell.editor.jqxDateTimeInput("close")
} else {
return
}
}
break;
case "combobox":
if (e.editcell.editor.jqxComboBox && e.editcell.editor.jqxComboBox("container") && e.editcell.editor.jqxComboBox("container")[0].style.display == "block") {
var s = e.editcell.editor.jqxComboBox("container").coord().top;
var j = e.editcell.editor.jqxComboBox("container").coord().top + e.editcell.editor.jqxComboBox("container").height();
if (k && (m.pageY < s || m.pageY > j)) {
v = true;
e.editcell.editor.jqxComboBox("close")
} else {
return
}
}
break;
case "dropdownlist":
if (e.editcell.editor.jqxDropDownList && e.editcell.editor.jqxDropDownList("container") && e.editcell.editor.jqxDropDownList("container")[0].style.display == "block") {
var s = e.editcell.editor.jqxDropDownList("container").coord().top;
var j = e.editcell.editor.jqxDropDownList("container").coord().top + e.editcell.editor.jqxDropDownList("container").height();
if (k && (m.pageY < s || m.pageY > j)) {
v = true;
e.editcell.editor.jqxDropDownList("close")
} else {
return
}
}
break;
case "template":
case "custom":
var l = ["jqxDropDownList", "jqxComboBox", "jqxDropDownButton", "jqxDateTimeInput"];
var p = function(A) {
var z = e.editcell.editor.data();
if (z[A] && z[A].instance.container && z[A].instance.container[0].style.display == "block") {
var x = z[A].instance;
var B = x.container.coord().top;
var y = x.container.coord().top + x.container.height();
if (k && (m.pageY < B || m.pageY > y)) {
v = true;
x.close();
return true
} else {
return false
}
}
};
for (var o = 0; o < l.length; o++) {
var w = p(l[o]);
if (w == false) {
return
}
}
break
}
}
e.endcelledit(e.editcell.row, e.editcell.column, false, true);
e._oldselectedcell = null
}
}
}
}
})
}
e.vScrollInstance.valueChanged = function(j) {
if (e.virtualsizeinfo) {
e._closemenu();
if (e.scrollmode != "physical") {
e._renderrows(e.virtualsizeinfo);
e.currentScrollValue = j.currentValue
} else {
if (e.currentScrollValue != undefined && Math.abs(e.currentScrollValue - j.currentValue) >= 5) {
e._renderrows(e.virtualsizeinfo);
e.currentScrollValue = j.currentValue
} else {
e._renderrows(e.virtualsizeinfo);
e.currentScrollValue = j.currentValue
}
}
if (!e.pageable && !e.groupable && e.dataview.virtualmode) {
if (e.loadondemandupdate) {
clearTimeout(e.loadondemandupdate)
}
e.loadondemandupdate = setTimeout(function() {
e.loadondemand = true;
e._renderrows(e.virtualsizeinfo)
},
100)
}
if (d) {
e._lastScroll = new Date()
}
}
};
e.hScrollInstance.valueChanged = function(l) {
if (e.virtualsizeinfo) {
e._closemenu();
var k = function() {
e._renderhorizontalscroll();
e._renderrows(e.virtualsizeinfo);
if (e.editcell && !e.editrow) {
if (e._showcelleditor && e.editcell.editing) {
if (!e.hScrollInstance.isScrolling()) {
e._showcelleditor(e.editcell.row, e.getcolumn(e.editcell.column), e.editcell.element, e.editcell.init)
}
}
}
};
var j = e._browser == undefined ? e._isIE10() : e._browser;
if (navigator && navigator.userAgent.indexOf("Safari") != -1 && navigator.userAgent.indexOf("Chrome") == -1) {
if (e._hScrollTimer) {
clearTimeout(e._hScrollTimer)
}
e._hScrollTimer = setTimeout(function() {
k()
},
1)
} else {
if (b.jqx.browser.msie) {
if (e._hScrollTimer) {
clearTimeout(e._hScrollTimer)
}
e._hScrollTimer = setTimeout(function() {
k()
},
0.01)
} else {
k()
}
}
if (d) {
e._lastScroll = new Date()
}
}
};
e._mousewheelfunc = e._mousewheelfunc ||
function(j) {
if (!e.editcell && e.enablemousewheel) {
e.wheel(j, e);
return false
}
};
e.removeHandler(e.host, "mousewheel", e._mousewheelfunc);
e.addHandler(e.host, "mousewheel", e._mousewheelfunc);
var h = "mousedown.jqxgrid";
if (d) {
h = b.jqx.mobile.getTouchEventName("touchend")
}
e.addHandler(e.host, h,
function(k) {
if (e.isTouchDevice()) {
e._newScroll = new Date();
if (e._newScroll - e._lastScroll < 500) {
return false
}
if (b(k.target).ischildof(e.vScrollBar)) {
return false
}
if (b(k.target).ischildof(e.hScrollBar)) {
return false
}
}
e._mousedown = new Date();
var j = e._handlemousedown(k, e);
if (e.isNestedGrid) {
if (!e.resizablecolumn && !e.columnsreorder) {
k.stopPropagation()
}
}
e._lastmousedown = new Date();
return j
});
if (!d) {
e.addHandler(e.host, "dblclick.jqxgrid",
function(k) {
if (e.editable && e.begincelledit && e.editmode == "dblclick") {
e._handledblclick(k, e)
} else {
if (b.jqx.browser.msie && b.jqx.browser.version < 9) {
var j = e._handlemousedown(k, e)
}
}
e.mousecaptured = false;
e._lastmousedown = new Date();
return true
});
e._mousemovefunc = function(j) {
if (e._handlemousemove) {
return e._handlemousemove(j, e)
}
};
e.addHandler(e.content, "mousemove", e._mousemovefunc);
if (e._handlemousemoveselection) {
e._mousemovedocumentfunc = function(j) {
if (e._handlemousemoveselection) {
return e._handlemousemoveselection(j, e)
}
};
e.addHandler(b(document), "mousemove.selection" + e.element.id, e._mousemovedocumentfunc)
}
e.addHandler(b(document), "mouseup.selection" + e.element.id,
function(j) {
if (e._handlemouseupselection) {
e._handlemouseupselection(j, e)
}
})
}
try {
if (document.referrer != "" || window.frameElement) {
if (window.top != null && window.top != window.self) {
var i = null;
if (window.parent && document.referrer) {
i = document.referrer
}
if (i && i.indexOf(document.location.host) != -1) {
var g = function(k) {
if (e._handlemouseupselection) {
try {
e._handlemouseupselection(k, e)
} catch(j) {}
}
};
if (window.top.document.addEventListener) {
window.top.document.addEventListener("mouseup", g, false)
} else {
if (window.top.document.attachEvent) {
window.top.document.attachEvent("onmouseup", g)
}
}
}
}
}
} catch(f) {}
e.focused = false;
if (!d) {
e.addHandler(e.content, "mouseenter",
function(j) {
e.focused = true;
if (e.wrapper) {
e.wrapper.attr("tabindex", 1);
e.content.attr("tabindex", 2)
}
if (e._overlayElement) {
if (e.vScrollInstance.isScrolling() || e.hScrollInstance.isScrolling()) {
e._overlayElement[0].style.visibility = "visible"
} else {
e._overlayElement[0].style.visibility = "hidden"
}
}
});
e.addHandler(e.content, "mouseleave",
function(j) {
if (e._handlemousemove) {
if (e.enablehover) {
e._clearhoverstyle()
}
}
if (e._overlayElement) {
e._overlayElement[0].style.visibility = "hidden"
}
e.focused = false
});
if (e.groupable || e.columnsreorder) {
e.addHandler(b(document), "selectstart." + e.element.id,
function(j) {
if (e.__drag === true) {
return false
}
})
}
e.addHandler(e.content, "selectstart." + e.element.id,
function(j) {
if (e.enablebrowserselection) {
return true
}
if (e.showfilterrow) {
if (b(j.target).ischildof(e.filterrow)) {
return true
}
}
if (e.showeverpresentrow) {
if (b(j.target).ischildof(e.addnewrow)) {
return true
}
if (e.addnewrowtop) {
if (b(j.target).ischildof(e.addnewrowtop)) {
return true
}
}
}
if (!e.editcell) {
return false
}
if (j.stopPropagation) {
j.stopPropagation()
}
});
e.addHandler(b(document), "keyup.edit" + e.element.id,
function(j) {
e._keydown = false
});
e.addHandler(b(document), "keydown.edit" + e.element.id,
function(l) {
e._keydown = true && !e.editcell;
var k = l.charCode ? l.charCode: l.keyCode ? l.keyCode: 0;
if (e.handlekeyboardnavigation) {
var m = e.handlekeyboardnavigation(l);
if (m == true) {
return false
}
}
if (e.editable && e.editcell) {
if (k == 13 || k == 27) {
if (e._handleeditkeydown) {
j = e._handleeditkeydown(l, e)
}
}
}
if (k == 27) {
e.mousecaptured = false;
if (e.selectionarea.css("visibility") == "visible") {
e.selectionarea.css("visibility", "hidden")
}
}
if (b.jqx.browser.msie && b.jqx.browser.version < 12 && e.focused && !e.isNestedGrid) {
if (k == 13 && j == false) {
return j
}
var j = true;
var k = l.charCode ? l.charCode: l.keyCode ? l.keyCode: 0;
if (!e.editcell && e.editable && e.editmode != "programmatic") {
if (e._handleeditkeydown) {
j = e._handleeditkeydown(l, e)
}
}
if (j && e.keyboardnavigation && e._handlekeydown) {
j = e._handlekeydown(l, e);
if (!j) {
if (l.preventDefault) {
l.preventDefault()
}
if (l.stopPropagation != undefined) {
l.stopPropagation()
}
}
return j
}
}
return true
});
e.addHandler(e.host, "keydown.edit" + e.element.id,
function(k) {
var j = true;
if (e.handlekeyboardnavigation) {
var l = e.handlekeyboardnavigation(k);
if (l == true) {
return false
}
}
if (e.editable && e.editmode != "programmatic") {
if (e._handleeditkeydown) {
j = e._handleeditkeydown(k, e);
if (e.isNestedGrid) {
k.stopPropagation()
}
}
}
if (! (b.jqx.browser.msie && b.jqx.browser.version < 8)) {
if (j && e.keyboardnavigation && e._handlekeydown) {
j = e._handlekeydown(k, e);
if (e.isNestedGrid) {
k.stopPropagation()
}
}
} else {
if (e.isNestedGrid) {
if (j && e.keyboardnavigation && e._handlekeydown) {
j = e._handlekeydown(k, e);
k.stopPropagation()
}
}
}
if (!j) {
if (k.preventDefault) {
k.preventDefault()
}
if (k.stopPropagation != undefined) {
k.stopPropagation()
}
}
return j
})
}
},
_hittestrow: function(s, q) {
if (this.vScrollInstance == null || this.hScrollInstance == null) {
return
}
if (s == undefined) {
s = 0
}
if (q == undefined) {
q == 0
}
var l = this.vScrollInstance;
var k = this.hScrollInstance;
var f = l.value;
if (this.vScrollBar.css("visibility") != "visible") {
f = 0
}
var m = k.value;
if (this.hScrollBar.css("visibility") != "visible") {
m = 0
}
if (this.scrollmode == "deferred" && this._newmax != null) {
if (f > this._newmax) {
f = this._newmax
}
}
var r = parseInt(f) + q;
var j = parseInt(m) + s;
if (this.visiblerows == null) {
return
}
if (this.visiblerows.length == 0) {
return
}
var e = false;
var i = this._findvisiblerow(r, this.visiblerows);
if (i >= 0) {
var o = this.visiblerows[i];
var d = this.rowdetails && o.rowdetails;
var n = !o.rowdetailshidden;
if (d) {
var g = this.visiblerows[i - 1];
if (g == o) {
o = g;
i--
}
if (n) {
var h = b(this.hittestinfo[i].visualrow).position().top + parseInt(this.table.css("top"));
var p = b(this.hittestinfo[i].visualrow).height();
if (! (q >= h && q <= h + p)) {
i++;
o = this.visiblerows[i];
e = true
}
}
}
}
return {
index: i,
row: o,
details: e
}
},
getcellatposition: function(j, q) {
var r = this.that;
var z = this.showheader ? this.columnsheader.height() + 2 : 0;
var s = this._groupsheader() ? this.groupsheader.height() : 0;
var B = this.showtoolbar ? this.toolbarheight: 0;
s += B;
var g = this.host.coord();
if (this.hasTransform) {
g = b.jqx.utilities.getOffset(this.host)
}
var p = j - g.left;
var n = q - z - g.top - s;
var d = this._hittestrow(p, n);
var k = d.row;
var l = d.index;
var t = this.table[0].rows[l];
if (this.dataview && this.dataview.records.length == 0) {
var o = this.table[0].rows;
var C = 0;
for (var w = 0; w < o.length; w++) {
if (n >= C && n < C + this.rowsheight) {
t = o[w];
break
}
C += this.rowsheight
}
k = {
boundindex: w
}
}
if (t == null) {
return true
}
var u = this.hScrollInstance;
var v = u.value;
var f = 0;
var m = this.groupable ? this.groups.length: 0;
for (var w = 0; w < t.cells.length; w++) {
var h = parseInt(b(this.columnsrow[0].cells[w]).css("left"));
var j = h - v;
if (r.columns.records[w].pinned) {
j = h
}
if (r.columns.records[w].hidden) {
continue
}
var A = j + b(this.columnsrow[0].cells[w]).width();
if (A >= p && p >= j) {
f = w;
break
}
}
if (k != null) {
var e = this._getcolumnat(f);
return {
row: this.getboundindex(k),
column: e.datafield,
value: this.getcellvalue(this.getboundindex(k), e.datafield)
}
}
return null
},
_handlemousedown: function(P, l) {
if (P.target == null) {
return true
}
if (l.disabled) {
return true
}
if (b(P.target).ischildof(this.columnsheader) || b(P.target).ischildof(this.hScrollBar) || b(P.target).ischildof(this.vScrollBar)) {
return true
}
var m;
if (P.which) {
m = (P.which == 3)
} else {
if (P.button) {
m = (P.button == 2)
}
}
var I;
if (P.which) {
I = (P.which == 2)
} else {
if (P.button) {
I = (P.button == 1)
}
}
if (I) {
return true
}
if (this.showstatusbar) {
if (b(P.target).ischildof(this.statusbar)) {
return true
}
if (P.target == this.statusbar[0]) {
return true
}
}
if (this.showtoolbar) {
if (b(P.target).ischildof(this.toolbar)) {
return true
}
if (P.target == this.toolbar[0]) {
return true
}
}
if (this.pageable) {
if (b(P.target).ischildof(this.pager)) {
return true
}
if (P.target == this.pager[0]) {
return true
}
}
if (!this.columnsheader) {
return true
}
if (!this.editcell) {
if (this.pageable) {
if (b(P.target).ischildof(this.pager)) {
return true
}
}
}
var N = this.showheader ? this.columnsheader.height() + 2 : 0;
var u = this._groupsheader() ? this.groupsheader.height() : 0;
var z = this.showtoolbar ? this.toolbarheight: 0;
u += z;
var L = this.host.coord();
if (this.hasTransform) {
L = b.jqx.utilities.getOffset(this.host);
var R = this._getBodyOffset();
L.left -= R.left;
L.top -= R.top
}
var h = parseInt(P.pageX);
var j = parseInt(P.pageY);
if (this.isTouchDevice()) {
var Q = l.getTouches(P);
var H = Q[0];
h = parseInt(H.pageX);
j = parseInt(H.pageY);
if (l.touchmode == true) {
if (H._pageX != undefined) {
h = parseInt(H._pageX);
j = parseInt(H._pageY)
}
}
}
var C = h - L.left;
var B = j - N - L.top - u;
if (this.pageable && !this.autoheight && this.gotopage) {
var d = this.pager.coord().top - L.top - u - N;
if (B > d) {
return
}
}
var M = this._hittestrow(C, B);
if (!M) {
return
}
if (M.details) {
return
}
var p = M.row;
var w = M.index;
var q = P.target.className;
var g = this.table[0].rows[w];
if (g == null) {
if (l.editable && l.begincelledit) {
if (l.editcell) {
l.endcelledit(l.editcell.row, l.editcell.column, false, true)
}
}
return true
}
l.mousecaptured = true;
l.mousecaptureposition = {
left: P.pageX,
top: P.pageY - u,
clickedrow: g
};
var k = this.hScrollInstance;
var s = k.value;
if (this.rtl) {
if (this.hScrollBar.css("visibility") != "hidden") {
s = k.max - k.value
}
}
var A = -1;
var v = this.groupable ? this.groups.length: 0;
if (this.rtl) {
if (this.vScrollBar[0].style.visibility != "hidden") {
s -= this.scrollbarsize + 4
}
if (this.hScrollBar[0].style.visibility == "hidden") {
s = -parseInt(this.content.css("left"))
}
}
for (var J = 0; J < g.cells.length; J++) {
var K = parseInt(b(this.columnsrow[0].cells[J]).css("left"));
var h = K - s;
if (l.columns.records[J].pinned && !l.rtl) {
h = K
}
var D = this._getcolumnat(J);
if (D != null && D.hidden) {
continue
}
var E = h + b(this.columnsrow[0].cells[J]).width();
if (E >= C && C >= h) {
A = J;
l.mousecaptureposition.clickedcell = J;
break
}
}
if (this.rtl && this._haspinned) {
for (var J = g.cells.length - 1; J >= 0; J--) {
if (!l.columns.records[J].pinned) {
break
}
var K = b(this.columnsrow[0].cells[J]).coord().left - this.host.coord().left;
var h = K;
var D = this._getcolumnat(J);
if (D != null && D.hidden) {
continue
}
var E = h + b(this.columnsrow[0].cells[J]).width();
if (E >= C && C >= h) {
A = J;
l.mousecaptureposition.clickedcell = J;
break
}
}
}
if (p != null && A >= 0) {
this._raiseEvent(1, {
rowindex: this.getboundindex(p),
visibleindex: p.visibleindex,
row: p,
group: p.group,
rightclick: m,
originalEvent: P
});
var D = this._getcolumnat(A);
var F = this.getcellvalue(this.getboundindex(p), D.datafield);
if (this.editable && this.editcell) {
if (D.datafield == this.editcell.column) {
if (this.getboundindex(p) == this.editcell.row) {
this.mousecaptured = false
}
}
}
this._raiseEvent(8, {
rowindex: this.getboundindex(p),
column: D ? D.getcolumnproperties() : null,
row: p,
visibleindex: p.visibleindex,
datafield: D ? D.datafield: null,
columnindex: A,
value: F,
rightclick: m,
originalEvent: P
});
if (this.isTouchDevice()) {
if (D.columntype == "checkbox" && this.editable && this._overlayElement) {
if (!this.editcell) {
this._overlayElement.css("visibility", "hidden");
this.editcell = this.getcell(w, D.datafield);
return true
}
} else {
if (D.columntype == "button" && this._overlayElement) {
if (D.buttonclick) {
D.buttonclick(g.cells[A].buttonrow, P)
}
return true
}
}
}
var f = false;
if (this._lastmousedown != null) {
if (this._mousedown - this._lastmousedown < 300) {
if (this._clickedrowindex == this.getboundindex(p)) {
this._raiseEvent(22, {
rowindex: this.getboundindex(p),
row: p,
visibleindex: p.visibleindex,
group: p.group,
rightclick: m,
originalEvent: P
});
if (this._clickedcolumn == D.datafield) {
this._raiseEvent(23, {
rowindex: this.getboundindex(p),
row: p,
visibleindex: p.visibleindex,
column: D ? D.getcolumnproperties() : null,
datafield: D ? D.datafield: null,
columnindex: A,
value: F,
rightclick: m,
originalEvent: P
})
}
f = true;
this._clickedrowindex = -1;
this._clickedcolumn = null;
if (P.isPropagationStopped && P.isPropagationStopped()) {
return false
}
}
}
}
if (m) {
return true
}
if (!f) {
this._clickedrowindex = this.getboundindex(p);
this._clickedcolumn = D.datafield
}
var e = b.jqx.utilities.getBrowser();
if (e.browser == "msie" && parseInt(e.version) <= 7) {
if (A == 0 && this.rowdetails) {
q = "jqx-grid-group-collapse"
}
if (v > 0) {
if (A <= v) {
q = "jqx-grid-group-collapse"
}
}
}
if (q.indexOf("jqx-grid-group-expand") != -1 || q.indexOf("jqx-grid-group-collapse") != -1) {
if (!this.rtl) {
if (v > 0 && A < v && this._togglegroupstate) {
this._togglegroupstate(p.bounddata, true)
} else {
if (A == v && this.rowdetails && this.showrowdetailscolumn) {
this._togglerowdetails(p.bounddata, true);
this.gridcontent[0].scrollTop = 0;
this.gridcontent[0].scrollLeft = 0
}
}
} else {
if (v > 0 && A > g.cells.length - v - 1 && this._togglegroupstate) {
this._togglegroupstate(p.bounddata, true)
} else {
if (A == g.cells.length - 1 - v && this.rowdetails && this.showrowdetailscolumn) {
this._togglerowdetails(p.bounddata, true);
this.gridcontent[0].scrollTop = 0;
this.gridcontent[0].scrollLeft = 0
}
}
}
} else {
if (p.boundindex != -1) {
var n = this.selectedrowindexes.slice(0);
var O = false;
if (l.selectionmode != "none" && l.selectionmode != "checkbox" && this._selectrowwithmouse) {
if (l.selectionmode == "multiplecellsadvanced" || l.selectionmode == "multiplecellsextended" || l.selectionmode == "multiplerowsextended" || l.selectionmode == "multiplerowsadvanced") {
if (!P.ctrlKey && !P.shiftKey && !P.metaKey) {
l.selectedrowindexes = new Array();
l.selectedcells = new Array()
}
}
var t = false;
var o = this.getboundindex(p);
if (l._oldselectedrow === o || l.selectionmode === "none") {
t = true
}
if (l.selectionmode.indexOf("cell") == -1) {
if ((l.selectionmode != "singlerow") || (l.selectedrowindex != o && l.selectionmode == "singlerow")) {
this._applyrowselection(o, true, false, null, D.datafield);
this._selectrowwithmouse(l, M, n, D.datafield, P.ctrlKey || P.metaKey, P.shiftKey)
}
} else {
if (D.datafield != null) {
this._selectrowwithmouse(l, M, n, D.datafield, P.ctrlKey || P.metaKey, P.shiftKey);
if (!P.shiftKey) {
this._applycellselection(o, D.datafield, true, false)
}
}
}
if (l._oldselectedcell) {
if (l._oldselectedcell.datafield == l.selectedcell.datafield && l._oldselectedcell.rowindex == l.selectedcell.rowindex) {
O = true
}
}
l._oldselectedcell = l.selectedcell;
l._oldselectedrow = o
}
if (l.autosavestate) {
if (l.savestate) {
l.savestate()
}
}
if (l.editable && l.begincelledit && l.editmode != "programmatic") {
if (P.isPropagationStopped && P.isPropagationStopped()) {
return false
}
if (l.editmode == "selectedrow") {
if (t && !l.editcell) {
if (D.columntype !== "checkbox") {
var r = l.beginrowedit(this.getboundindex(p))
}
} else {
if (l.editcell && !t && l.selectionmode != "none") {
var r = l.endrowedit(l.editcell.row)
}
}
} else {
var G = l.editmode == "click" || (O && l.editmode == "selectedcell");
if (l.selectionmode.indexOf("cell") == -1) {
if (l.editmode != "dblclick") {
G = true
}
}
if (G) {
if (p.boundindex != undefined && D.editable) {
var r = l.begincelledit(this.getboundindex(p), D.datafield, D.defaulteditorvalue);
if (l.selectionmode.indexOf("cell") != -1) {
l._applycellselection(o, D.datafield, false, false)
}
}
}
if (l.selectionmode.indexOf("cell") != -1) {
if (l.editmode == "selectedcell" && !O && l.editcell) {
l.endcelledit(l.editcell.row, l.editcell.column, false, true)
}
}
}
return true
}
}
}
}
return true
},
_columnPropertyChanged: function(e, d, g, f) {},
_rowPropertyChanged: function(g, d, f, e) {},
_serializeObject: function(d) {
if (d == null) {
return ""
}
var e = "";
b.each(d,
function(g) {
var h = this;
if (g > 0) {
e += ", "
}
e += "[";
var f = 0;
for (obj in h) {
if (f > 0) {
e += ", "
}
e += "{" + obj + ":" + h[obj] + "}";
f++
}
e += "]"
});
return e
},
isbindingcompleted: function() {
return ! this._loading
},
propertyChangedHandler: function(e, f, i, h) {
if (this.isInitialized == undefined || this.isInitialized == false) {
return
}
f = f.toLowerCase();
switch (f) {
case "editable":
e.refresh();
break;
case "everpresentrowactionsmode":
if (i != h) {
e._removeaddnewrow();
e.render()
}
break;
case "everpresentrowactions":
e._updateaddnewrowui();
break;
case "showeverpresentrow":
case "everpresentrowposition":
case "everpresentrowheight":
if (i != h) {
e._removeaddnewrow();
e.render()
}
break;
case "rtl":
e.content.css("left", "");
e.columns = e._columns;
e._filterrowcache = [];
e.vScrollBar.jqxScrollBar({
rtl: h
});
e.hScrollBar.jqxScrollBar({
rtl: h
});
if (e._initpager) {
e._initpager()
}
if (e._initgroupsheader) {
e._initgroupsheader()
}
e.render();
break;
case "enablebrowserselection":
if (!e.showfilterrow) {
if (!e.showstatusbar && !e.showtoolbar) {
e.host.addClass("jqx-disableselect")
}
e.content.addClass("jqx-disableselect")
}
if (e.enablebrowserselection) {
e.content.removeClass("jqx-disableselect");
e.host.removeClass("jqx-disableselect")
}
break;
case "columnsheight":
if (e.columnsheight != 25 || e.columngroups) {
e._measureElement("column")
}
e._render(true, true, true, false, false);
break;
case "rowsheight":
if (h != i) {
if (e.rowsheight != 25) {
e._measureElement("cell")
}
e.virtualsizeinfo = null;
e.rendergridcontent(true, false);
e.refresh()
}
break;
case "scrollMode":
e.vScrollInstance.thumbStep = e.rowsheight;
break;
case "showdefaultloadelement":
e._builddataloadelement();
break;
case "showfiltermenuitems":
case "showsortmenuitems":
case "showgroupmenuitems":
case "filtermode":
e._initmenu();
break;
case "touchmode":
if (i != h) {
e._removeHandlers();
e.touchDevice = null;
e.vScrollBar.jqxScrollBar({
touchMode: h
});
e.hScrollBar.jqxScrollBar({
touchMode: h
});
e._updateTouchScrolling();
e._arrange();
e._updatecolumnwidths();
e._updatecellwidths();
e._addHandlers()
}
break;
case "autoshowcolumnsmenubutton":
if (i != h) {
e._rendercolumnheaders()
}
break;
case "rendergridrows":
if (i != h) {
e.updatebounddata()
}
break;
case "editmode":
if (i != h) {
e._removeHandlers();
e._addHandlers()
}
break;
case "source":
e.updatebounddata();
if (e.virtualmode && !e._loading) {
e.loadondemand = true;
e._renderrows(e.virtualsizeinfo)
}
break;
case "horizontalscrollbarstep":
case "verticalscrollbarstep":
case "horizontalscrollbarlargestep":
case "verticalscrollbarlargestep":
this.vScrollBar.jqxScrollBar({
step:
this.verticalscrollbarstep,
largestep: this.verticalscrollbarlargestep
});
this.hScrollBar.jqxScrollBar({
step: this.horizontalscrollbarstep,
largestep: this.horizontalscrollbarlargestep
});
break;
case "closeablegroups":
if (e._initgroupsheader) {
e._initgroupsheader()
}
break;
case "showgroupsheader":
if (i != h) {
e._arrange();
if (e._initgroupsheader) {
e._initgroupsheader()
}
e._renderrows(e.virtualsizeinfo)
}
break;
case "theme":
if (h != i) {
b.jqx.utilities.setTheme(i, h, e.host);
if (e.gridmenu) {
e.gridmenu.jqxMenu({
theme: h
})
}
if (e.pageable) {
e._updatepagertheme()
}
if (e.filterable) {
e._updatefilterrowui(true)
}
if (e.showeverpresentrow) {
e._updateaddnewrowui(true)
}
}
break;
case "showtoolbar":
case "toolbarheight":
if (i != h) {
e._arrange();
e.refresh()
}
break;
case "showstatusbar":
if (i != h) {
if (e.statusbar) {
if (h) {
e.statusbar.show()
} else {
e.statusbar.hide()
}
}
e._arrange();
e.refresh()
}
break;
case "statusbarheight":
if (i != h) {
e._arrange();
e.refresh()
}
break;
case "filterable":
case "showfilterrow":
if (i != h) {
e.render()
}
break;
case "autoshowfiltericon":
case "showfiltercolumnbackground":
case "showpinnedcolumnbackground":
case "showsortcolumnbackground":
if (i != h) {
e.rendergridcontent()
}
break;
case "showrowdetailscolumn":
if (i != h) {
e.render()
}
break;
case "scrollbarsize":
if (i != h) {
e._arrange()
}
break;
case "width":
case "height":
if (i != h) {
e._updatesize(true, true);
e._resizeWindow();
if (e.virtualmode && !e._loading) {
e.vScrollInstance.setPosition(0)
} else {
setTimeout(function() {
e._renderrows(e.virtualsizeinfo)
},
100)
}
}
break;
case "altrows":
case "altstart":
case "altstep":
if (i != h) {
e._renderrows(e.virtualsizeinfo)
}
break;
case "groupsheaderheight":
if (i != h) {
e._arrange();
if (e._initgroupsheader) {
e._initgroupsheader()
}
}
break;
case "pagerheight":
if (i != h) {
e._initpager()
}
break;
case "selectedrowindex":
e.selectrow(h);
break;
case "selectionmode":
if (i != h) {
if (h == "none") {
e.selectedrowindexes = new Array();
e.selectedcells = new Array();
e.selectedrowindex = -1
}
e._renderrows(e.virtualsizeinfo);
if (h == "checkbox") {
e._render(false, false, true, false, false)
}
}
break;
case "showheader":
if (h) {
e.columnsheader.css("display", "block")
} else {
e.columnsheader.css("display", "none")
}
break;
case "virtualmode":
if (i != h) {
e.dataview.virtualmode = e.virtualmode;
e.dataview.refresh(false);
e._render(false, false, false)
}
break;
case "columnsmenu":
if (i != h) {
e.render()
}
break;
case "columngroups":
e._render(true, true, true, false, false);
break;
case "columns":
if (e._serializeObject(e._cachedcolumns) !== e._serializeObject(h)) {
var d = false;
if (e.filterable) {
if (i && i.records) {
b.each(i.records,
function() {
if (this.filter) {
d = true
}
e.dataview.removefilter(this.displayfield, this.filter)
})
}
}
e._columns = null;
e._filterrowcache = [];
e.render();
if (d) {
e.applyfilters()
}
e._cachedcolumns = e.columns;
if (e.removesort) {
e.removesort()
}
} else {
e[f] = i
}
break;
case "autoheight":
if (i != h) {
e._render(false, false, true)
}
break;
case "pagermode":
case "pagerbuttonscount":
if (i != h) {
if (e._initpager) {
if (e.pagershowrowscombo) {
e.pagershowrowscombo.jqxDropDownList("destroy");
e.pagershowrowscombo = null
}
if (e.pagerrightbutton) {
e.removeHandler(e.pagerrightbutton, "mousedown");
e.removeHandler(e.pagerrightbutton, "mouseup");
e.removeHandler(e.pagerrightbutton, "click");
e.pagerrightbutton.jqxButton("destroy");
e.pagerrightbutton = null
}
if (e.pagerleftbutton) {
e.removeHandler(e.pagerleftbutton, "mousedown");
e.removeHandler(e.pagerleftbutton, "mouseup");
e.removeHandler(e.pagerleftbutton, "click");
e.pagerleftbutton.jqxButton("destroy");
e.removeHandler(b(document), "mouseup.pagerbuttons" + e.element.id);
e.pagerleftbutton = null
}
e.pagerdiv.remove();
e._initpager()
}
}
break;
case "pagesizeoptions":
case "pageable":
case "pagesize":
if (i != h) {
if (e._loading) {
throw new Error("jqxGrid: " + e.loadingerrormessage);
return
}
if (!e.host.jqxDropDownList || !e.host.jqxListBox) {
e._testmodules();
return
}
if (e._initpager) {
if (f != "pageable" && f != "pagermode") {
if (typeof(h) == "string") {
var g = "The expected value type is: Int.";
if (f != "pagesize") {
var g = "The expected value type is: Array of Int values."
}
throw new Error("Invalid Value for: " + f + ". " + g)
}
}
e.dataview.pageable = e.pageable;
e.dataview.pagenum = 0;
e.dataview.pagesize = e._getpagesize();
if (e.virtualmode) {
e.updatebounddata()
}
e.dataview.refresh(true);
e._initpager();
if (f == "pagesizeoptions") {
if (h != null && h.length > 0) {
e.pagesize = parseInt(h[0]);
e.dataview.pagesize = parseInt(h[0]);
e.prerenderrequired = true;
e._requiresupdate = true;
e.dataview.pagenum = -1;
e.gotopage(0)
}
}
}
e._render(false, false, false)
}
break;
case "groups":
if (e._serializeObject(i) !== e._serializeObject(h)) {
e.dataview.groups = h;
e._refreshdataview();
e._render(true, true, true, false)
}
break;
case "groupable":
if (i != h) {
e.dataview.groupable = e.groupable;
e.dataview.pagenum = 0;
e.dataview.refresh(false);
e._render(false, false, true)
}
break;
case "renderstatusbar":
if (h != null) {
e.renderstatusbar(e.statusbar)
}
break;
case "rendertoolbar":
if (h != null) {
e.rendertoolbar(e.toolbar)
}
break;
case "disabled":
if (h) {
e.host.addClass(e.toThemeProperty("jqx-fill-state-disabled"))
} else {
e.host.removeClass(e.toThemeProperty("jqx-fill-state-disabled"))
}
b.jqx.aria(e, "aria-disabled", e.disabled);
if (e.pageable) {
if (e.pagerrightbutton) {
e.pagerrightbutton.jqxButton({
disabled: h
});
e.pagerleftbutton.jqxButton({
disabled: h
});
e.pagershowrowscombo.jqxDropDownList({
disabled: h
});
e.pagergotoinput.attr("disabled", h)
}
if (e.pagerfirstbutton) {
e.pagerfirstbutton.jqxButton({
disabled: h
});
e.pagerlastbutton.jqxButton({
disabled: h
})
}
}
e.vScrollBar.jqxScrollBar({
disabled: h
});
e.hScrollBar.jqxScrollBar({
disabled: h
});
if (e.filterable && e.showfilterrow) {
e._updatefilterrowui(true)
}
if (e.showeverpresentrow) {
e._updateaddnewrowui(true)
}
break
}
}
});
function c(d, e) {
this.owner = d;
this.datafield = null;
this.displayfield = null;
this.text = "";
this.createfilterpanel = null;
this.sortable = true;
this.hideable = true;
this.editable = true;
this.hidden = false;
this.groupable = true;
this.renderer = null;
this.cellsrenderer = null;
this.checkchange = null,
this.threestatecheckbox = false;
this.buttonclick = null,
this.columntype = null;
this.cellsformat = "";
this.align = "left";
this.cellsalign = "left";
this.width = "auto";
this.minwidth = 25;
this.maxwidth = "auto";
this.pinned = false;
this.visibleindex = -1;
this.filterable = true;
this.filter = null;
this.filteritems = [];
this.resizable = true;
this.initeditor = null;
this.createeditor = null;
this.destroyeditor = null;
this.geteditorvalue = null;
this.validation = null;
this.classname = "";
this.cellclassname = "";
this.cellendedit = null;
this.cellbeginedit = null;
this.cellvaluechanging = null;
this.aggregates = null;
this.aggregatesrenderer = null;
this.menu = true;
this.createfilterwidget = null;
this.filtertype = "default";
this.filtercondition = null;
this.rendered = null;
this.exportable = true;
this.exporting = false;
this.draggable = true;
this.nullable = true;
this.clipboard = true;
this.enabletooltips = true;
this.columngroup = null;
this.filterdelay = 800;
this.reseteverpresentrowwidgetvalue = null;
this.geteverpresentrowwidgetvalue = null;
this.createeverpresentrowwidget = null;
this.initeverpresentrowwidget = null;
this.validateeverpresentrowwidgetvalue = null;
this.destroyeverpresentrowwidget = null;
this.getcolumnproperties = function() {
return {
nullable: this.nullable,
sortable: this.sortable,
hideable: this.hideable,
hidden: this.hidden,
groupable: this.groupable,
width: this.width,
align: this.align,
editable: this.editable,
minwidth: this.minwidth,
maxwidth: this.maxwidth,
resizable: this.resizable,
datafield: this.datafield,
text: this.text,
exportable: this.exportable,
cellsalign: this.cellsalign,
pinned: this.pinned,
cellsformat: this.cellsformat,
columntype: this.columntype,
classname: this.classname,
cellclassname: this.cellclassname,
menu: this.menu
}
},
this.setproperty = function(f, g) {
if (this[f]) {
var h = this[f];
this[f] = g;
this.owner._columnPropertyChanged(this, f, g, h)
} else {
if (this[f.toLowerCase()]) {
var h = this[f.toLowerCase()];
this[f.toLowerCase()] = g;
this.owner._columnPropertyChanged(this, f.toLowerCase(), g, h)
}
}
};
this._initfields = function(g) {
if (g != null) {
var f = this.that;
if (b.jqx.hasProperty(g, "dataField")) {
this.datafield = b.jqx.get(g, "dataField")
}
if (b.jqx.hasProperty(g, "displayField")) {
this.displayfield = b.jqx.get(g, "displayField")
} else {
this.displayfield = this.datafield
}
if (b.jqx.hasProperty(g, "enableTooltips")) {
this.enabletooltips = b.jqx.get(g, "enableTooltips")
}
if (b.jqx.hasProperty(g, "text")) {
this.text = b.jqx.get(g, "text")
} else {
this.text = this.displayfield
}
if (b.jqx.hasProperty(g, "createfilterpanel")) {
this.createfilterpanel = b.jqx.get(g, "createfilterpanel")
}
if (b.jqx.hasProperty(g, "sortable")) {
this.sortable = b.jqx.get(g, "sortable")
}
if (b.jqx.hasProperty(g, "hideable")) {
this.hideable = b.jqx.get(g, "hideable")
}
if (b.jqx.hasProperty(g, "hidden")) {
this.hidden = b.jqx.get(g, "hidden")
}
if (b.jqx.hasProperty(g, "groupable")) {
this.groupable = b.jqx.get(g, "groupable")
}
if (b.jqx.hasProperty(g, "renderer")) {
this.renderer = b.jqx.get(g, "renderer")
}
if (b.jqx.hasProperty(g, "align")) {
this.align = b.jqx.get(g, "align")
}
if (b.jqx.hasProperty(g, "cellsAlign")) {
this.cellsalign = b.jqx.get(g, "cellsAlign")
}
if (b.jqx.hasProperty(g, "clipboard")) {
this.cellsalign = b.jqx.get(g, "clipboard")
}
if (b.jqx.hasProperty(g, "cellsFormat")) {
this.cellsformat = b.jqx.get(g, "cellsFormat")
}
if (b.jqx.hasProperty(g, "width")) {
this.width = b.jqx.get(g, "width")
}
if (b.jqx.hasProperty(g, "minWidth")) {
this.minwidth = parseInt(b.jqx.get(g, "minWidth"));
if (isNaN(this.minwidth)) {
this.minwidth = 25
}
}
if (b.jqx.hasProperty(g, "maxWidth")) {
this.maxwidth = parseInt(b.jqx.get(g, "maxWidth"));
if (isNaN(this.maxwidth)) {
this.maxwidth = "auto"
}
}
if (b.jqx.hasProperty(g, "cellsRenderer")) {
this.cellsrenderer = b.jqx.get(g, "cellsRenderer")
} else {
if (g.cellsRenderer) {
this.cellsrenderer = g.cellsRenderer
}
}
if (b.jqx.hasProperty(g, "columnType")) {
this.columntype = b.jqx.get(g, "columnType")
}
if (b.jqx.hasProperty(g, "checkChange")) {
this.checkchange = b.jqx.get(g, "checkChange")
}
if (b.jqx.hasProperty(g, "buttonClick")) {
this.buttonclick = b.jqx.get(g, "buttonClick")
} else {
if (g.buttonClick) {
this.buttonclick = g.buttonClick
}
}
if (b.jqx.hasProperty(g, "pinned")) {
this.pinned = b.jqx.get(g, "pinned")
}
if (b.jqx.hasProperty(g, "visibleIndex")) {
this.visibleindex = b.jqx.get(g, "visibleIndex")
}
if (b.jqx.hasProperty(g, "filterable")) {
this.filterable = b.jqx.get(g, "filterable")
}
if (b.jqx.hasProperty(g, "filter")) {
this.filter = b.jqx.get(g, "filter")
}
if (b.jqx.hasProperty(g, "resizable")) {
this.resizable = b.jqx.get(g, "resizable")
}
if (b.jqx.hasProperty(g, "editable")) {
this.editable = b.jqx.get(g, "editable")
}
if (b.jqx.hasProperty(g, "initEditor")) {
this.initeditor = b.jqx.get(g, "initEditor")
} else {
if (g.initEditor) {
this.initeditor = g.initEditor
}
}
if (b.jqx.hasProperty(g, "createEditor")) {
this.createeditor = b.jqx.get(g, "createEditor")
} else {
if (g.createEditor) {
this.createeditor = g.createEditor
}
}
if (b.jqx.hasProperty(g, "reseteverpresentrowwidgetvalue") || b.jqx.hasFunction(g, "reseteverpresentrowwidgetvalue")) {
this.reseteverpresentrowwidgetvalue = b.jqx.get(g, "reseteverpresentrowwidgetvalue")
} else {
if (g.resetEverPresentRowWidgetValue) {
this.reseteverpresentrowwidgetvalue = g.resetEverPresentRowWidgetValue
}
}
if (b.jqx.hasProperty(g, "geteverpresentrowwidgetvalue") || b.jqx.hasFunction(g, "geteverpresentrowwidgetvalue")) {
this.geteverpresentrowwidgetvalue = b.jqx.get(g, "geteverpresentrowwidgetvalue")
} else {
if (g.getEverPresentRowWidgetValue) {
this.geteverpresentrowwidgetvalue = g.getEverPresentRowWidgetValue
}
}
if (b.jqx.hasProperty(g, "createeverpresentrowwidget") || b.jqx.hasFunction(g, "createeverpresentrowwidget")) {
this.createeverpresentrowwidget = b.jqx.get(g, "createeverpresentrowwidget")
} else {
if (g.createEverPresentRowWidget) {
this.createeverpresentrowwidget = g.createEverPresentRowWidget
}
}
if (b.jqx.hasProperty(g, "initeverpresentrowwidget") || b.jqx.hasFunction(g, "initeverpresentrowwidget")) {
this.initeverpresentrowwidget = b.jqx.get(g, "initeverpresentrowwidget")
} else {
if (g.initEverPresentRowWidget) {
this.initeverpresentrowwidget = g.initEverPresentRowWidget
}
}
if (b.jqx.hasProperty(g, "validateeverpresentrowwidgetvalue")) {
this.validateeverpresentrowwidgetvalue = b.jqx.get(g, "validateeverpresentrowwidgetvalue")
} else {
if (g.validateEverPresentRowWidgetValue) {
this.validateeverpresentrowwidgetvalue = g.validateEverPresentRowWidgetValue
}
}
if (b.jqx.hasProperty(g, "destroyeverpresentrowwidget") || b.jqx.hasFunction(g, "destroyeverpresentrowwidget")) {
this.destroyeverpresentrowwidget = b.jqx.get(g, "destroyeverpresentrowwidget")
} else {
if (g.destroyEverPresentRowWidget) {
this.destroyEverPresentRowWidget = g.destroyEverPresentRowWidget
}
}
if (b.jqx.hasProperty(g, "destroyEditor")) {
this.destroyeditor = b.jqx.get(g, "destroyEditor")
} else {
if (g.destroyEditor) {
this.destroyeditor = g.destroyEditor
}
}
if (b.jqx.hasProperty(g, "getEditorValue")) {
this.geteditorvalue = b.jqx.get(g, "getEditorValue")
} else {
if (g.getEditorValue) {
this.geteditorvalue = g.getEditorValue
}
}
if (b.jqx.hasProperty(g, "validation")) {
this.validation = b.jqx.get(g, "validation")
} else {
if (g.validation) {
this.validation = g.validation
}
}
if (b.jqx.hasProperty(g, "cellBeginEdit")) {
this.cellbeginedit = b.jqx.get(g, "cellBeginEdit")
} else {
if (g.cellBeginEdit) {
this.cellbeginedit = g.cellBeginEdit
}
}
if (b.jqx.hasProperty(g, "cellEndEdit")) {
this.cellendedit = b.jqx.get(g, "cellEndEdit")
} else {
if (g.cellEndEdit) {
this.cellendedit = g.cellEndEdit
}
}
if (b.jqx.hasProperty(g, "className")) {
this.classname = b.jqx.get(g, "className")
}
if (b.jqx.hasProperty(g, "cellClassName")) {
this.cellclassname = b.jqx.get(g, "cellClassName")
} else {
if (g.cellClassName) {
this.cellclassname = g.cellClassName
}
}
if (b.jqx.hasProperty(g, "menu")) {
this.menu = b.jqx.get(g, "menu")
}
if (b.jqx.hasProperty(g, "aggregates")) {
this.aggregates = b.jqx.get(g, "aggregates")
}
if (b.jqx.hasProperty(g, "aggregatesRenderer")) {
this.aggregatesrenderer = b.jqx.get(g, "aggregatesRenderer")
}
if (b.jqx.hasProperty(g, "createFilterWidget")) {
this.createfilterwidget = b.jqx.get(g, "createFilterWidget")
}
if (b.jqx.hasProperty(g, "filterType")) {
this.filtertype = b.jqx.get(g, "filterType")
}
if (b.jqx.hasProperty(g, "filterDelay")) {
this.filterdelay = b.jqx.get(g, "filterDelay")
}
if (b.jqx.hasProperty(g, "rendered")) {
this.rendered = b.jqx.get(g, "rendered")
}
if (b.jqx.hasProperty(g, "exportable")) {
this.exportable = b.jqx.get(g, "exportable")
}
if (b.jqx.hasProperty(g, "filterItems")) {
this.filteritems = b.jqx.get(g, "filterItems")
}
if (b.jqx.hasProperty(g, "cellValueChanging")) {
this.cellvaluechanging = b.jqx.get(g, "cellValueChanging")
}
if (b.jqx.hasProperty(g, "draggable")) {
this.draggable = b.jqx.get(g, "draggable")
}
if (b.jqx.hasProperty(g, "filterCondition")) {
this.filtercondition = b.jqx.get(g, "filterCondition")
}
if (b.jqx.hasProperty(g, "threeStateCheckbox")) {
this.threestatecheckbox = b.jqx.get(g, "threeStateCheckbox")
}
if (b.jqx.hasProperty(g, "nullable")) {
this.nullable = b.jqx.get(g, "nullable")
}
if (b.jqx.hasProperty(g, "columnGroup")) {
this.columngroup = b.jqx.get(g, "columnGroup")
}
if (!g instanceof String && !(typeof g == "string")) {
for (var h in g) {
if (!f.hasOwnProperty(h)) {
if (!f.hasOwnProperty(h.toLowerCase())) {
d.host.remove();
throw new Error("jqxGrid: Invalid property name - " + h + ".")
}
}
}
}
}
};
this._initfields(e);
return this
}
function a(d, e) {
this.setdata = function(f) {
if (f != null) {
this.bounddata = f;
this.boundindex = f.boundindex;
this.visibleindex = f.visibleindex;
this.group = f.group;
this.parentbounddata = f.parentItem;
this.uniqueid = f.uniqueid;
this.level = f.level
}
};
this.setdata(e);
this.parentrow = null;
this.subrows = new Array();
this.owner = d;
this.height = 25;
this.hidden = false;
this.rowdetails = null;
this.rowdetailsheight = 100;
this.rowdetailshidden = true;
this.top = -1;
this.setrowinfo = function(f) {
this.hidden = f.hidden;
this.rowdetails = f.rowdetails;
this.rowdetailsheight = f.rowdetailsheight;
this.rowdetailshidden = !f.showdetails;
this.height = f.height
};
return this
}
b.jqx.collection = function(d) {
this.records = new Array();
this.owner = d;
this.updating = false;
this.beginupdate = function() {
this.updating = true
};
this.resumeupdate = function() {
this.updating = false
};
this._raiseEvent = function(e) {};
this.clear = function() {
this.records = new Array()
};
this.replace = function(f, e) {
this.records[f] = e;
if (!this.updating) {
this._raiseEvent({
type: "replace",
element: e
})
}
};
this.isempty = function(e) {
if (this.records[e] == undefined) {
return true
}
return false
};
this.initialize = function(e) {
if (e < 1) {
e = 1
}
this.records[e - 1] = -1
};
this.length = function() {
return this.records.length
};
this.indexOf = function(e) {
return this.records.indexOf(e)
};
this.add = function(e) {
if (e == null) {
return false
}
this.records[this.records.length] = e;
if (!this.updating) {
this._raiseEvent({
type: "add",
element: e
})
}
return true
};
this.insertAt = function(f, e) {
if (f == null || f == undefined) {
return false
}
if (e == null) {
return false
}
if (f >= 0) {
if (f < this.records.length) {
this.records.splice(f, 0, e);
if (!this.updating) {
this._raiseEvent({
type: "insert",
index: f,
element: e
})
}
return true
} else {
return this.add(e)
}
}
return false
};
this.remove = function(f) {
if (f == null || f == undefined) {
return false
}
var e = this.records.indexOf(f);
if (e != -1) {
this.records.splice(e, 1);
if (!this.updating) {
this._raiseEvent({
type: "remove",
element: f
})
}
return true
}
return false
};
this.removeAt = function(f) {
if (f == null || f == undefined) {
return false
}
if (f < 0) {
return false
}
if (f < this.records.length) {
var e = this.records[f];
this.records.splice(f, 1);
if (!this.updating) {
this._raiseEvent({
type: "removeAt",
index: f,
element: e
})
}
return true
}
return false
};
return this
};
b.jqx.dataview = function() {
this.self = this;
this.grid = null;
this.uniqueId = "id";
this.records = [];
this.rows = [];
this.columns = [];
this.groups = [];
this.filters = new Array();
this.updated = null;
this.update = null;
this.suspend = false;
this.pagesize = 0;
this.pagenum = 0;
this.totalrows = 0;
this.totalrecords = 0;
this.groupable = true;
this.loadedrecords = [];
this.loadedrootgroups = [];
this.loadedgroups = [];
this.loadedgroupsByKey = [];
this.virtualmode = true;
this._cachegrouppages = new Array();
this.source = null;
this.changedrecords = new Array();
this.rowschangecallback = null;
this.that = this;
this.destroy = function() {
delete this.self;
delete this.grid;
delete this.uniqueId;
delete this.records;
delete this.rows;
delete this.columns;
delete this.groups;
delete this.filters;
delete this.updated;
delete this.update;
delete this.suspend;
delete this.pagesize;
delete this.pagenum;
delete this.totalrows;
delete this.totalrecords;
delete this.groupable;
delete this.loadedrecords;
delete this.loadedrootgroups;
delete this.loadedgroups;
delete this.loadedgroupsByKey;
delete this.virtualmode;
delete this._cachegrouppages;
delete this.source;
delete this.changedrecords;
delete this.rowschangecallback;
delete this.that
},
this.suspendupdate = function() {
this.suspend = true
},
this.isupdating = function() {
return this.suspend
},
this.resumeupdate = function(d) {
this.suspend = false;
if (d == undefined) {
d = true
}
this.refresh(d)
},
this.getrecords = function() {
return this.records
},
this.clearrecords = function() {
this.recordids = new Array()
};
this.databind = function(q, l) {
var p = q._source ? true: false;
var g = null;
if (p) {
g = q;
q = q._source
} else {
g = new b.jqx.dataAdapter(q, {
autoBind: false
})
}
var e = function(m) {
g.recordids = [];
g.records = new Array();
g.cachedrecords = new Array();
g.originaldata = new Array();
g._options.virtualmode = m.virtualmode;
g._options.totalrecords = m.totalrecords;
g._options.originaldata = m.originaldata;
g._options.recordids = m.recordids;
g._options.cachedrecords = new Array();
g._options.pagenum = m.pagenum;
g._options.pageable = m.pageable;
if (q.type != undefined) {
g._options.type = q.type
}
if (q.formatdata != undefined) {
g._options.formatData = q.formatdata
}
if (q.contenttype != undefined) {
g._options.contentType = q.contenttype
}
if (q.async != undefined) {
g._options.async = q.async
}
if (q.updaterow != undefined) {
g._options.updaterow = q.updaterow
}
if (q.addrow != undefined) {
g._options.addrow = q.addrow
}
if (q.deleterow != undefined) {
g._options.deleterow = q.deleterow
}
if (m.pagesize == 0) {
m.pagesize = 10
}
g._options.pagesize = m.pagesize
};
var t = function(C) {
C.totalrecords = g.totalrecords;
if (!C.virtualmode) {
C.originaldata = g.originaldata;
C.records = g.records;
C.recordids = g.recordids;
C.cachedrecords = g.cachedrecords
} else {
var x = {
startindex: C.pagenum * C.pagesize,
endindex: (C.pagenum * C.pagesize + C.pagesize)
};
if (q.recordstartindex != undefined) {
x.startindex = parseInt(q.recordstartindex)
}
if (q.recordendindex != undefined) {
x.endindex = parseInt(q.recordendindex)
} else {
if (!C.grid.pageable) {
x.endindex = x.startindex + 100;
if (C.grid.autoheight) {
x.endindex = x.startindex + C.totalrecords
}
}
}
if (!q.recordendindex) {
if (!C.grid.pageable) {
x.endindex = x.startindex + 100;
if (C.grid.autoheight) {
x.endindex = x.startindex + C.totalrecords
}
} else {
x = {
startindex: C.pagenum * C.pagesize,
endindex: (C.pagenum * C.pagesize + C.pagesize)
}
}
}
x.data = g.records;
if (C.grid.rendergridrows && C.totalrecords > 0) {
var E = 0;
q.records = C.grid.rendergridrows(x);
if (q.records.length) {
E = q.records.length
}
if (q.records && !q.records[x.startindex]) {
var m = new Array();
var D = x.startindex;
b.each(q.records,
function() {
m[D] = this;
D++;
E++
});
q.records = m
}
if (E == 0) {
if (q.records) {
b.each(q.records,
function() {
E++
})
}
}
if (E > 0 && E < x.endindex - x.startindex && !C.grid.groupable) {
var A = q.records[0];
for (var z = 0; z < x.endindex - x.startindex - E; z++) {
var B = {};
for (obj in A) {
B[obj] = ""
}
if (q.records.push) {
q.records.push(B)
}
}
}
}
if (!q.records || C.totalrecords == 0) {
q.records = new Array()
}
C.originaldata = q.records;
C.records = q.records;
C.cachedrecords = q.records
}
};
e(this);
this.source = q;
if (l !== undefined) {
uniqueId = l
}
var y = this.that;
switch (q.datatype) {
case "local":
case "array":
default:
if (q.localdata == null) {
q.localdata = []
}
if (q.localdata != null) {
g.unbindBindingUpdate(y.grid.element.id);
if ((!y.grid.autobind && y.grid.isInitialized) || y.grid.autobind) {
g.dataBind()
}
var k = function(x) {
if (x != undefined && x != "") {
var z = g._changedrecords[0];
if (z) {
var A = new Array();
b.each(g._changedrecords,
function(E) {
var B = this.index;
var C = this.record;
y.grid._updateFromAdapter = true;
switch (x) {
case "update":
var D = y.grid.getrowid(B);
if (E == g._changedrecords.length - 1) {
y.grid.updaterow(D, C)
} else {
y.grid.updaterow(D, C, false)
}
y.grid._updateFromAdapter = false;
return;
case "add":
y.grid.addrow(null, C);
y.grid._updateFromAdapter = false;
return;
case "remove":
var D = y.grid.getrowid(B);
A.push(D);
return
}
});
if (A.length > 0) {
y.grid.deleterow(A, false);
y.grid._updateFromAdapter = false
}
}
if (x == "update") {
return
}
}
var m = y.totalrecords;
t(y, x);
if (q.localdata.notifier === null && q.localdata.name == "observableArray") {
q.localdata.notifier = function(F) {
if (this._updating) {
return
}
this._updating = true;
var E = y.grid.getrowid(F.index);
switch (F.type) {
case "add":
var B = b.extend({},
F.object[F.index]);
var D = g.getid(q.id, B, F.index);
if (F.index === 0) {
y.grid.addrow(D, B, "first")
} else {
y.grid.addrow(D, B)
}
break;
case "delete":
y.grid.deleterow(E);
break;
case "update":
if (F.path && F.path.split(".").length > 1) {
var C = F.path.split(".");
y.grid.setcellvalue(F.index, C[C.length - 1], F.newValue)
} else {
var B = b.extend({},
F.object[F.index]);
y.grid.updaterow(E, B)
}
break
}
this._updating = false
}
}
if (x == "updateData") {
y.refresh();
y.grid._updateGridData()
} else {
if (q.recordstartindex && this.virtualmode) {
y.updateview(q.recordstartindex, q.recordstartindex + y.pagesize)
} else {
y.refresh()
}
y.update(m != y.totalrecords)
}
};
k();
g.bindBindingUpdate(y.grid.element.id, k)
}
break;
case "json":
case "jsonp":
case "xml":
case "xhtml":
case "script":
case "text":
case "csv":
case "tab":
if (q.localdata != null) {
g.unbindBindingUpdate(y.grid.element.id);
if ((!y.grid.autobind && y.grid.isInitialized) || y.grid.autobind) {
g.dataBind()
}
var k = function(x) {
var m = y.totalrecords;
t(y);
if (x == "updateData") {
y.refresh();
y.grid._updateGridData()
} else {
if (q.recordstartindex && y.virtualmode) {
y.updateview(q.recordstartindex, q.recordstartindex + y.pagesize)
} else {
y.refresh()
}
y.update(m != y.totalrecords)
}
};
k();
g.bindBindingUpdate(y.grid.element.id, k);
return
}
var u = {};
var o = 0;
var v = {};
for (var i = 0; i < this.filters.length; i++) {
var f = this.filters[i].datafield;
var j = this.filters[i].filter;
if (!j.getfilters) {
continue
}
var h = j.getfilters();
v[f + "operator"] = j.operator;
for (var s = 0; s < h.length; s++) {
h[s].datafield = f;
var n = h[s].value;
if (h[s].type == "datefilter") {
if (h[s].value && h[s].value.toLocaleString) {
var d = this.grid.getcolumn(h[s].datafield);
if (d && d.cellsformat) {
var r = this.grid.source.formatDate(h[s].value, d.cellsformat, this.grid.gridlocalization);
if (r) {
v["filtervalue" + o] = r
} else {
v["filtervalue" + o] = h[s].value.toLocaleString()
}
} else {
v["filtervalue" + o] = n.toString()
}
} else {
v["filtervalue" + o] = n.toString()
}
} else {
v["filtervalue" + o] = n.toString();
if (h[s].data) {
v["filterid" + o] = h[s].data.toString()
}
if (h[s].id) {
v["filterid" + o] = h[s].id.toString()
}
}
v["filtercondition" + o] = h[s].condition;
v["filteroperator" + o] = h[s].operator;
v["filterdatafield" + o] = f;
o++
}
}
v.filterscount = o;
v.groupscount = y.groups.length;
for (var i = 0; i < y.groups.length; i++) {
v["group" + i] = y.groups[i]
}
if (q.recordstartindex == undefined) {
q.recordstartindex = 0
}
if (q.recordendindex == undefined || q.recordendindex == 0) {
if (y.grid.height && y.grid.height.toString().indexOf("%") == -1) {
q.recordendindex = parseInt(y.grid.height) / y.grid.rowsheight;
q.recordendindex += 2;
q.recordendindex = parseInt(q.recordendindex)
} else {
q.recordendindex = b(window).height() / y.grid.rowsheight;
q.recordendindex = parseInt(q.recordendindex)
}
if (this.pageable) {
q.recordendindex = this.pagesize
}
}
if (this.pageable) {
q.recordstartindex = (this.pagenum) * this.pagesize;
q.recordendindex = (this.pagenum + 1) * this.pagesize
}
b.extend(v, {
sortdatafield: y.sortfield,
sortorder: y.sortfielddirection,
pagenum: y.pagenum,
pagesize: y.grid.pagesize,
recordstartindex: q.recordstartindex,
recordendindex: q.recordendindex
});
var w = g._options.data;
if (g._options.data) {
b.extend(g._options.data, v)
} else {
if (q.data) {
b.extend(v, q.data)
}
g._options.data = v
}
var k = function() {
var x = b.jqx.browser.msie && b.jqx.browser.version < 9;
var z = function() {
var A = y.totalrecords;
t(y);
if (q.recordstartindex && y.virtualmode) {
y.updateview(q.recordstartindex, q.recordstartindex + y.pagesize)
} else {
y.refresh()
}
y.update(A != y.totalrecords)
};
if (x) {
try {
z()
} catch(m) {}
} else {
z()
}
};
g.unbindDownloadComplete(y.grid.element.id);
g.bindDownloadComplete(y.grid.element.id, k);
if ((!y.grid.autobind && y.grid.isInitialized) || y.grid.autobind) {
g.dataBind()
} else {
if (!y.grid.isInitialized && !y.grid.autobind) {
k()
}
}
g._options.data = w
}
};
this.getid = function(g, e, f) {
if (b(g, e).length > 0) {
return b(g, e).text()
}
if (g) {
if (g.toString().length > 0) {
var d = b(e).attr(g);
if (d != null && d.toString().length > 0) {
return d
}
}
}
return f
};
this.getvaluebytype = function(g, d) {
var e = g;
if (d.type == "date") {
var f = new Date(g);
if (f.toString() == "NaN" || f.toString() == "Invalid Date") {
if (b.jqx.dataFormat) {
g = b.jqx.dataFormat.tryparsedate(g)
} else {
g = f
}
} else {
g = f
}
if (g == null) {
g = e
}
} else {
if (d.type == "float") {
var g = parseFloat(g);
if (isNaN(g)) {
g = e
}
} else {
if (d.type == "int") {
var g = parseInt(g);
if (isNaN(g)) {
g = e
}
} else {
if (d.type == "bool") {
if (g != null) {
if (g.toLowerCase() == "false") {
g = false
} else {
if (g.toLowerCase() == "true") {
g = true
}
}
}
if (g == 1) {
g = true
} else {
if (g == 0) {
g = false
} else {
g = ""
}
}
}
}
}
}
return g
};
this.setpaging = function(d) {
if (d.pageSize != undefined) {
this.pagesize = d.pageSize
}
if (d.pageNum != undefined) {
this.pagenum = Math.min(d.pageNum, Math.ceil(this.totalrows / this.pagesize))
}
this.refresh()
};
this.getpagingdetails = function() {
return {
pageSize: this.pagesize,
pageNum: this.pagenum,
totalrows: this.totalrows
}
};
this._clearcaches = function() {
this.sortcache = {};
this.sortdata = null;
this.changedrecords = new Array();
this.records = new Array();
this.rows = new Array();
this.cacheddata = new Array();
this.originaldata = new Array();
this.bounditems = new Array();
this.loadedrecords = new Array();
this.loadedrootgroups = new Array();
this.loadedgroups = new Array();
this.loadedgroupsByKey = new Array();
this._cachegrouppages = new Array();
this.recordsbyid = new Array();
this.cachedrecords = new Array();
this.recordids = new Array()
};
this.addfilter = function(g, f) {
var e = -1;
for (var d = 0; d < this.filters.length; d++) {
if (this.filters[d].datafield == g) {
e = d;
break
}
}
if (e == -1) {
this.filters[this.filters.length] = {
filter: f,
datafield: g
}
} else {
this.filters[e] = {
filter: f,
datafield: g
}
}
};
this.removefilter = function(e) {
for (var d = 0; d < this.filters.length; d++) {
if (this.filters[d].datafield == e) {
this.filters.splice(d, 1);
break
}
}
};
this.getItemFromIndex = function(d) {
return this.records[d]
};
this.updaterow = function(d, n, l) {
var e = this.filters && this.filters.length > 0 && !this.virtualmode;
if (!e && n != undefined && d != undefined) {
n.uid = d;
if (! (n[this.source.id])) {
n[this.source.id] = n.uid
}
var j = this.recordsbyid["id" + d];
var k = this.records.indexOf(j);
if (k == -1) {
return false
}
this.records[k] = n;
if (this.cachedrecords) {
this.cachedrecords[k] = n
}
if (l == true || l == undefined) {
this.refresh()
}
this.changedrecords[n.uid] = {
Type: "Update",
OldData: j,
Data: n
};
return true
} else {
if (this.filters && this.filters.length > 0) {
var f = this.cachedrecords;
var j = null;
var k = -1;
for (var h = 0; h < f.length; h++) {
if (f[h].uid == d) {
j = f[h];
k = h;
break
}
}
if (j) {
var m = this.that;
for (var g in n) {
m.cachedrecords[k][g] = n[g]
}
if (l == true || l == undefined) {
this.refresh()
}
return true
}
}
}
return false
};
this.addrow = function(h, i, d, g) {
if (i != undefined) {
if (b.isEmptyObject(i)) {
if (this.source && this.source.datafields) {
b.each(this.source.datafields,
function() {
var j = "";
if (this.type == "number") {
j = null
}
if (this.type == "date") {
j = null
}
if (this.type == "bool" || this.type == "boolean") {
j = false
}
i[this.name] = j
})
}
}
if (!h || this.recordsbyid["id" + h]) {
i.uid = this.getid(this.source.id, i, this.totalrecords);
var e = this.recordsbyid["id" + i.uid];
while (e != null) {
var f = Math.floor(Math.random() * 10000).toString();
i.uid = f;
e = this.recordsbyid["id" + f]
}
} else {
i.uid = h
}
if (! (i[this.source.id])) {
if (this.source.id != undefined) {
i[this.source.id] = i.uid
}
}
if (d == "last") {
this.records.push(i)
} else {
if (typeof d === "number" && isFinite(d)) {
this.records.splice(d, 0, i)
} else {
this.records.splice(0, 0, i)
}
}
if (this.filters && this.filters.length > 0) {
if (d == "last") {
this.cachedrecords.push(i)
} else {
if (typeof d === "number" && isFinite(d)) {
this.cachedrecords.splice(d, 0, i)
} else {
this.cachedrecords.splice(0, 0, i)
}
}
}
this.totalrecords++;
if (this.virtualmode) {
this.source.totalrecords = this.totalrecords
}
if (g == true || g == undefined) {
this.refresh()
}
this.changedrecords[i.uid] = {
Type: "New",
Data: i
};
return true
}
return false
};
this.deleterow = function(j, h) {
if (j != undefined) {
var d = this.filters && this.filters.length > 0;
if (this.recordsbyid["id" + j] && !d) {
var e = this.recordsbyid["id" + j];
var k = this.records.indexOf(e);
this.changedrecords[j] = {
Type: "Delete",
Data: this.records[k]
};
this.records.splice(k, 1);
this.totalrecords--;
if (this.virtualmode) {
this.source.totalrecords = this.totalrecords
}
if (h == true || h == undefined) {
this.refresh()
}
return true
} else {
if (this.filters && this.filters.length > 0) {
var f = this.cachedrecords;
var e = null;
var k = -1;
for (var g = 0; g < f.length; g++) {
if (f[g].uid == j) {
e = f[g];
k = g;
break
}
}
if (e) {
this.cachedrecords.splice(k, 1);
if (h == true || h == undefined) {
this.totalrecords = 0;
this.records = this.cachedrecords;
this.refresh()
}
return true
}
}
}
return false
}
return false
};
this.reload = function(f, d, r, g, h, u, t) {
var m = this.that;
var l = new Array();
var o = f;
var i = d;
var j = r;
var p = g;
var k = i.length;
var w = 0;
var e = 0;
var s, n;
this.columns = [];
this.bounditems = new Array();
this.loadedrecords = new Array();
this.loadedrootgroups = new Array();
this.loadedgroups = new Array();
this.loadedgroupsByKey = new Array();
this._cachegrouppages = new Array();
this.recordsbyid = {};
if (this.totalrecords == 0) {
Object.size = function(z) {
var y = 0,
x;
for (x in z) {
if (z.hasOwnProperty(x)) {
y++
}
}
return y
};
var v = Object.size(o);
this.totalrecords = v;
b.each(this.records,
function(y) {
var z = this;
var x = 0;
b.each(z,
function(A, B) {
m.columns[x++] = A
});
return false
})
}
if (this.virtualmode) {
if (this.pageable) {
this.updateview();
return
}
var u = 0;
if (!this.groupable) {
this.updateview();
return
} else {
var t = this.totalrecords
}
} else {
var u = 0;
var t = this.totalrecords
}
if (this.groupable && this.groups.length > 0 && this.loadgrouprecords) {
var q = u;
q = this.loadgrouprecords(0, u, t, j, e, p, i, k, l)
} else {
w = this.loadflatrecords(u, t, j, e, p, i, k, l)
}
if (k > e) {
i.splice(e, k - e)
}
if (this.groups.length > 0 && this.groupable) {
this.totalrows = q
} else {
this.totalrows = w
}
return l
};
this.loadflatrecords = function(d, o, e, p, l, u, n, q) {
var t = this.that;
var k = d;
var m = d;
o = Math.min(o, this.totalrecords);
var g = this.sortdata != null;
var f = this.source.id && (this.source.datatype == "local" || this.source.datatype == "array" || this.source.datatype == "");
var j = g ? this.sortdata: this.records;
for (var h = d; h < o; h++) {
var s = {};
if (!g) {
s = b.extend({},
j[h]);
id = s[t.uniqueId];
s.boundindex = k;
t.loadedrecords[k] = s;
if (s.uid == undefined) {
s.uid = t.getid(t.source.id, s, k)
}
t.recordsbyid["id" + s.uid] = j[h];
s.uniqueid = t.generatekey();
t.bounditems[this.bounditems.length] = s
} else {
s = b.extend({},
j[h].value);
id = s[t.uniqueId];
s.boundindex = j[h].index;
if (s.uid == undefined) {
s.uid = t.getid(t.source.id, s, s.boundindex)
}
t.recordsbyid["id" + s.uid] = j[h].value;
t.loadedrecords[k] = s;
s.uniqueid = t.generatekey();
t.bounditems[s.boundindex] = s
}
if (p >= n || id != u[p][t.uniqueId] || (l && l[id])) {
q[q.length] = p
}
u[p] = s;
p++;
s.visibleindex = m;
m++;
k++
}
if (t.grid.summaryrows) {
var r = k;
b.each(t.grid.summaryrows,
function() {
var i = b.extend({},
this);
i.boundindex = o++;
t.loadedrecords[r] = i;
i.uniqueid = t.generatekey();
t.bounditems[t.bounditems.length] = i;
u[p] = i;
p++;
i.visibleindex = m;
m++;
r++
})
}
return m
},
this.updateview = function(o, p) {
var r = this.that;
var k = this.pagesize * this.pagenum;
var n = 0;
var s = new Array();
var e = this.filters;
var j = this.updated;
var l = s.length;
if (this.pageable) {
if (this.virtualmode) {
if (!this.groupable || this.groups.length == 0) {
this.loadflatrecords(this.pagesize * this.pagenum, this.pagesize * (1 + this.pagenum), e, n, j, s, l, []);
this.totalrows = s.length
} else {
if (this.groupable && this.groups.length > 0 && this.loadgrouprecords) {
if (this._cachegrouppages[this.pagenum + "_" + this.pagesize] != undefined) {
this.rows = this._cachegrouppages[this.pagenum + "_" + this.pagesize];
this.totalrows = this.rows.length;
return
}
var m = this.pagesize * (1 + this.pagenum);
if (m > this.totalrecords) {
m = this.totalrecords
}
this.loadgrouprecords(0, this.pagesize * this.pagenum, m, e, n, j, s, l, []);
this._cachegrouppages[this.pagenum + "_" + this.pagesize] = this.rows;
this.totalrows = this.rows.length;
return
}
}
}
} else {
if (this.virtualmode && (!this.groupable || this.groups.length == 0)) {
var g = this.pagesize;
if (g == 0) {
g = Math.min(100, this.totalrecords)
}
var d = g * this.pagenum;
if (this.loadedrecords.length == 0) {
d = 0
}
if (o != null && p != null) {
this.loadflatrecords(o, p, e, n, j, s, l, [])
} else {
this.loadflatrecords(this.pagesize * this.pagenum, this.pagesize * (1 + this.pagenum), e, n, j, s, l, [])
}
this.totalrows = this.loadedrecords.length;
this.rows = s;
if (s.length >= g) {
return
}
}
}
if (this.groupable && this.pageable && this.groups.length > 0 && this._updategroupsinpage) {
s = this._updategroupsinpage(r, e, k, n, l, this.pagesize * this.pagenum, this.pagesize * (1 + this.pagenum))
} else {
for (var h = this.pagesize * this.pagenum; h < this.pagesize * (1 + this.pagenum); h++) {
var q = h < this.loadedrecords.length ? this.loadedrecords[h] : null;
if (q == null) {
continue
}
if (!this.pagesize || (k >= this.pagesize * this.pagenum && k <= this.pagesize * (this.pagenum + 1))) {
s[n] = q;
n++
}
k++
}
}
if ((s.length == 0 || s.length < this.pagesize) && !this.pageable && this.virtualmode) {
n = s.length;
var f = s.length;
for (var h = this.pagesize * this.pagenum; h < this.pagesize * (1 + this.pagenum) - f; h++) {
var q = {};
q.boundindex = h + f;
q.visibleindex = h + f;
q.uniqueid = r.generatekey();
q.empty = true;
r.bounditems[h + f] = q;
s[n] = q;
n++
}
}
this.rows = s
};
this.generatekey = function() {
var d = function() {
return (((1 + Math.random()) * 16) | 0)
};
return ("" + d() + d() + "-" + d() + "-" + d() + "-" + d() + "-" + d() + d() + d())
};
this.reloaddata = function() {
this.reload(this.records, this.rows, this.filter, this.updated, true)
};
this.refresh = function(h) {
if (this.suspend) {
return
}
if (h == undefined) {
h = true
}
var l = this.rows.length;
var k = this.totalrows;
if (this.filters.length > 0 && !this.virtualmode) {
var e = "";
var g = this.cachedrecords.length;
var s = new Array();
this.totalrecords = 0;
var n = this.cachedrecords;
this._dataIndexToBoundIndex = new Array();
var f = this.filters.length;
if (this.source != null && this.source.filter != undefined && this.source.localdata != undefined) {
s = this.source.filter(this.filters, n, g);
if (s == undefined) {
s = new Array()
}
this.records = s
} else {
if (this.source.filter == null || this.source.filter == undefined) {
for (var u = 0; u < g; u++) {
var o = n[u];
var d = undefined;
for (var m = 0; m < f; m++) {
var e = this.filters[m].filter;
var r = o[this.filters[m].datafield];
var t = e.evaluate(r);
if (d == undefined) {
d = t
} else {
if (e.operator == "or") {
d = d || t
} else {
d = d && t
}
}
}
if (d) {
s[s.length] = b.extend({
dataindex: u
},
o);
this._dataIndexToBoundIndex[u] = {
boundindex: s.length - 1
}
} else {
this._dataIndexToBoundIndex[u] = null
}
}
this.records = s
}
}
if (this.sortdata) {
var i = this.sortfield;
if (this.sortcache[i]) {
this.sortdata = null;
var p = this.sortcache[i].direction;
this.sortcache[i] = null;
this.sortby(this.sortfield, p);
return
}
}
} else {
if (this.filters.length == 0 && !this.virtualmode) {
if (this.cachedrecords) {
this.totalrecords = 0;
var n = this.cachedrecords;
this.records = n;
if (this.sortdata) {
var i = this.sortfield;
if (this.sortcache[i]) {
this.sortdata = null;
var p = this.sortcache[i].direction;
this.sortcache[i] = null;
this.sortby(this.sortfield, p);
return
}
}
}
}
}
var q = this.reload(this.records, this.rows, this.filter, this.updated, h);
this.updated = null;
if (this.rowschangecallback != null) {
if (k != totalrows) {
this.rowschangecallback({
type: "PagingChanged",
data: getpagingdetails()
})
}
if (l != rows.length) {
this.rowschangecallback({
type: "RowsCountChanged",
data: {
previous: l,
current: rows.length
}
})
}
if (q.length > 0 || l != rows.length) {
this.rowschangecallback({
type: "RowsChanged",
data: {
previous: l,
current: rows.length,
diff: q
}
})
}
}
};
return this
}
})(jqxBaseFramework);