summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorHalil İbrahim Kalkan <hikalkan@gmail.com>2013-01-30 21:48:29 +0200
committerHalil İbrahim Kalkan <hikalkan@gmail.com>2013-01-30 21:48:29 +0200
commitccb806db75fc25f02a704171b248cae04fd1a497 (patch)
treeb6f5fd5afb9a2bfb3f4495ea10674c88251a84ba /lib
parentc26fddbe3a9d4df9405236d5c339942bd5aa18f9 (diff)
downloadjtable-ccb806db75fc25f02a704171b248cae04fd1a497.zip
jtable-ccb806db75fc25f02a704171b248cae04fd1a497.tar.gz
jtable-ccb806db75fc25f02a704171b248cae04fd1a497.tar.bz2
jTable v2.1.1v2.1.1
Multiple dependsOn support. [#94] Enhanced option caching. [#63] Portuguese - Portugal localization. [#142] Chinese localization. [#103] Fixed some issues. [#90, #28, #130]
Diffstat (limited to 'lib')
-rw-r--r--lib/jquery.jtable.js258
-rw-r--r--lib/jquery.jtable.min.js202
2 files changed, 280 insertions, 180 deletions
diff --git a/lib/jquery.jtable.js b/lib/jquery.jtable.js
index 5ebd494..7f2af06 100644
--- a/lib/jquery.jtable.js
+++ b/lib/jquery.jtable.js
@@ -1,6 +1,6 @@
/*
-jTable 2.1.0
+jTable 2.1.1
http://www.jtable.org
---------------------------------------------------------------------------
@@ -138,8 +138,21 @@ THE SOFTWARE.
/* Normalizes some options for a field (sets default values).
*************************************************************************/
_normalizeFieldOptions: function (fieldName, props) {
- props.listClass = props.listClass || '';
- props.inputClass = props.inputClass || '';
+ if (props.listClass == undefined) {
+ props.listClass = '';
+ }
+ if (props.inputClass == undefined) {
+ props.inputClass = '';
+ }
+
+ //Convert dependsOn to array if it's a comma seperated lists
+ if (props.dependsOn && $.type(props.dependsOn) === 'string') {
+ var dependsOnArray = props.dependsOn.split(',');
+ props.dependsOn = [];
+ for (var i = 0; i < dependsOnArray.length; i++) {
+ props.dependsOn.push($.trim(dependsOnArray[i]));
+ }
+ }
},
/* Intializes some private variables.
@@ -551,11 +564,14 @@ THE SOFTWARE.
}
//remove from DOM
- $rows.remove();
+ $rows.addClass('jtable-row-removed').remove();
//remove from _$tableRows array
$rows.each(function () {
- self._$tableRows.splice(self._findRowIndex($(this)), 1);
+ var index = self._findRowIndex($(this));
+ if (index >= 0) {
+ self._$tableRows.splice(index, 1);
+ }
});
self._onRowsRemoved($rows, reason);
@@ -600,6 +616,10 @@ THE SOFTWARE.
/* Adds "no data available" row to the table.
*************************************************************************/
_addNoDataRow: function () {
+ if (this._$tableBody.find('>tr.jtable-no-data-row').length > 0) {
+ return;
+ }
+
var $tr = $('<tr></tr>')
.addClass('jtable-no-data-row')
.appendTo(this._$tableBody);
@@ -649,6 +669,7 @@ THE SOFTWARE.
} else if (field.options) { //combobox or radio button list since there are options.
var options = this._getOptionsForField(fieldName, {
record: record,
+ value: fieldValue,
source: 'list',
dependedValues: this._createDependedValuesUsingRecord(record, field.dependsOn)
});
@@ -657,17 +678,24 @@ THE SOFTWARE.
return fieldValue;
}
},
-
+
+ /* Creates and returns an object that's properties are depended values of a record.
+ *************************************************************************/
_createDependedValuesUsingRecord: function (record, dependsOn) {
if (!dependsOn) {
return {};
}
var dependedValues = {};
- dependedValues[dependsOn] = record[dependsOn];
+ for (var i = 0; i < dependsOn.length; i++) {
+ dependedValues[dependsOn[i]] = record[dependsOn[i]];
+ }
+
return dependedValues;
},
+ /* Finds an option object by given value.
+ *************************************************************************/
_findOptionByValue: function (options, value) {
for (var i = 0; i < options.length; i++) {
if (options[i].Value == value) {
@@ -697,7 +725,6 @@ THE SOFTWARE.
var optionsSource = field.options;
if ($.isFunction(optionsSource)) {
-
//prepare parameter to the function
funcParams = $.extend(true, {
_cacheCleared: false,
@@ -715,10 +742,22 @@ THE SOFTWARE.
//Build options according to it's source type
if (typeof optionsSource == 'string') { //It is an Url to download options
- var cacheKey = 'options_' + fieldName + '_' + optionsSource;
+ var cacheKey = 'options_' + fieldName + '_' + optionsSource; //create a unique cache key
if (funcParams._cacheCleared || (!this._cache[cacheKey])) {
- this._cache[cacheKey] = this._downloadOptions(fieldName, optionsSource);
+ //if user calls clearCache() or options are not found in the cache, download options
+ this._cache[cacheKey] = this._buildOptionsFromArray(this._downloadOptions(fieldName, optionsSource));
this._sortFieldOptions(this._cache[cacheKey], field.optionsSorting);
+ } else {
+ //found on cache..
+ //if this method (_getOptionsForField) is called to get option for a specific value (on funcParams.source == 'list')
+ //and this value is not in cached options, we need to re-download options to get the unfound (probably new) option.
+ if (funcParams.value != undefined) {
+ var optionForValue = this._findOptionByValue(this._cache[cacheKey], funcParams.value);
+ if(optionForValue.DisplayText == undefined) { //this value is not in cached options...
+ this._cache[cacheKey] = this._buildOptionsFromArray(this._downloadOptions(fieldName, optionsSource));
+ this._sortFieldOptions(this._cache[cacheKey], field.optionsSorting);
+ }
+ }
}
options = this._cache[cacheKey];
@@ -733,16 +772,45 @@ THE SOFTWARE.
return options;
},
+ /* Download options for a field from server.
+ *************************************************************************/
+ _downloadOptions: function (fieldName, url) {
+ var self = this;
+ var options = [];
+
+ self._ajax({
+ url: url,
+ async: false,
+ success: function (data) {
+ if (data.Result != 'OK') {
+ self._showError(data.Message);
+ return;
+ }
+
+ options = data.Options;
+ },
+ error: function () {
+ var errMessage = self._formatString(self.options.messages.cannotLoadOptionsFor, fieldName);
+ self._showError(errMessage);
+ }
+ });
+
+ return options;
+ },
+
+ /* Sorts given options according to sorting parameter.
+ * sorting can be: 'value', 'value-desc', 'text' or 'text-desc'.
+ *************************************************************************/
_sortFieldOptions: function (options, sorting) {
-
+
if ((!options) || (!options.length) || (!sorting)) {
return;
}
-
+
//Determine using value of text
var dataSelector;
if (sorting.indexOf('value') == 0) {
- dataSelector = function(option) {
+ dataSelector = function (option) {
return option.Value;
};
} else { //assume as text
@@ -773,6 +841,8 @@ THE SOFTWARE.
}
},
+ /* Creates an array of options from given object.
+ *************************************************************************/
_buildOptionsArrayFromObject: function (options) {
var list = [];
@@ -786,14 +856,13 @@ THE SOFTWARE.
return list;
},
- /* Creates an options object (that it's property is value, value is displaytext)
- * from a simple array.
+ /* Creates array of options from giving options array.
*************************************************************************/
_buildOptionsFromArray: function (optionsArray) {
var list = [];
for (var i = 0; i < optionsArray.length; i++) {
- if ($.isPlainObject) {
+ if ($.isPlainObject(optionsArray[i])) {
list.push(optionsArray[i]);
} else { //assumed as primitive type (int, string...)
list.push({
@@ -1102,6 +1171,26 @@ THE SOFTWARE.
});
+ /* Fix for array.indexOf method in IE7.
+ * This code is taken from http://www.tutorialspoint.com/javascript/array_indexof.htm */
+ if (!Array.prototype.indexOf) {
+ Array.prototype.indexOf = function (elt) {
+ var len = this.length;
+ var from = Number(arguments[1]) || 0;
+ from = (from < 0)
+ ? Math.ceil(from)
+ : Math.floor(from);
+ if (from < 0)
+ from += len;
+ for (; from < len; from++) {
+ if (from in this &&
+ this[from] === elt)
+ return from;
+ }
+ return -1;
+ };
+ }
+
})(jQuery);
@@ -1311,10 +1400,6 @@ THE SOFTWARE.
var $select = $('<select class="' + field.inputClass + '" id="Edit-' + fieldName + '" name="' + fieldName + '"></select>')
.appendTo($containerDiv);
- if (field.dependsOn) {
- $select.attr('data-depends-on', field.dependsOn);
- }
-
//add options
var options = this._getOptionsForField(fieldName, {
record: record,
@@ -1337,19 +1422,26 @@ THE SOFTWARE.
}
},
+ /* Creates depended values object from given form.
+ *************************************************************************/
_createDependedValuesUsingForm: function ($form, dependsOn) {
-
if (!dependsOn) {
return {};
}
- var $dependsOn = $form.find('select[name=' + dependsOn + ']');
- if ($dependsOn.length <= 0) {
- return {};
+ var dependedValues = {};
+
+ for (var i = 0; i < dependsOn.length; i++) {
+ var dependedField = dependsOn[i];
+
+ var $dependsOn = $form.find('select[name=' + dependedField + ']');
+ if ($dependsOn.length <= 0) {
+ continue;
+ }
+
+ dependedValues[dependedField] = $dependsOn.val();
}
- var dependedValues = {};
- dependedValues[dependsOn] = $dependsOn.val();
return dependedValues;
},
@@ -1443,34 +1535,46 @@ THE SOFTWARE.
_makeCascadeDropDowns: function ($form, record, source) {
var self = this;
- $form.find('select[data-depends-on]')
+ $form.find('select') //for each combobox
.each(function () {
var $thisDropdown = $(this);
+
+ //get field name
var fieldName = $thisDropdown.attr('name');
if (!fieldName) {
return;
}
- var dependsOnField = $thisDropdown.attr('data-depends-on');
- var $dependsOn = $form.find('select[name=' + dependsOnField + ']');
- $dependsOn.change(function () {
-
- //Refresh options
-
- var funcParams = {
- record: record,
- source: source,
- form: $form,
- dependedValues: {}
- };
- funcParams.dependedValues[dependsOnField] = $dependsOn.val();
-
- var options = self._getOptionsForField(fieldName, funcParams);
- self._fillDropDownListWithOptions($thisDropdown, options, undefined);
+ var field = self.options.fields[fieldName];
+
+ //check if this combobox depends on others
+ if (!field.dependsOn) {
+ return;
+ }
- //Thigger change event to refresh multi cascade dropdowns.
-
- $thisDropdown.change();
+ //for each dependency
+ $.each(field.dependsOn, function (index, dependsOnField) {
+ //find the depended combobox
+ var $dependsOnDropdown = $form.find('select[name=' + dependsOnField + ']');
+ //when depended combobox changes
+ $dependsOnDropdown.change(function () {
+
+ //Refresh options
+ var funcParams = {
+ record: record,
+ source: source,
+ form: $form,
+ dependedValues: {}
+ };
+ funcParams.dependedValues = self._createDependedValuesUsingForm($form, field.dependsOn);
+ var options = self._getOptionsForField(fieldName, funcParams);
+
+ //Fill combobox with new options
+ self._fillDropDownListWithOptions($thisDropdown, options, undefined);
+
+ //Thigger change event to refresh multi cascade dropdowns.
+ $thisDropdown.change();
+ });
});
});
},
@@ -1495,13 +1599,20 @@ THE SOFTWARE.
//Update field in record according to it's type
if (field.type == 'date') {
- var displayFormat = field.displayFormat || this.options.defaultDateFormat;
- try {
- var date = $.datepicker.parseDate(displayFormat, $inputElement.val());
- record[fieldName] = '/Date(' + date.getTime() + ')/';
- } catch (e) {
- //TODO: Handle incorrect/different date formats
- record[fieldName] = '/Date(' + (new Date()).getTime() + ')/';
+ var dateVal = $inputElement.val();
+ if (dateVal) {
+ var displayFormat = field.displayFormat || this.options.defaultDateFormat;
+ try {
+ var date = $.datepicker.parseDate(displayFormat, dateVal);
+ record[fieldName] = '/Date(' + date.getTime() + ')/';
+ } catch (e) {
+ //TODO: Handle incorrect/different date formats
+ this._logWarn('Date format is incorrect for field ' + fieldName + ': ' + dateVal);
+ record[fieldName] = undefined;
+ }
+ } else {
+ this._logDebug('Date is empty for ' + fieldName);
+ record[fieldName] = undefined; //TODO: undefined, null or empty string?
}
} else if (field.options && field.type == 'radiobutton') {
var $checkedElement = $inputElement.filter(':checked');
@@ -1516,32 +1627,6 @@ THE SOFTWARE.
}
},
- /* Download options for a field from server.
- *************************************************************************/
- _downloadOptions: function (fieldName, url) {
- var self = this;
- var options = [];
-
- self._ajax({
- url: url,
- async: false,
- success: function (data) {
- if (data.Result != 'OK') {
- self._showError(data.Message);
- return;
- }
-
- options = data.Options;
- },
- error: function () {
- var errMessage = self._formatString(self.options.messages.cannotLoadOptionsFor, fieldName);
- self._showError(errMessage);
- }
- });
-
- return options;
- },
-
/* Sets enabled/disabled state of a dialog button.
*************************************************************************/
_setEnabledOfDialogButton: function ($button, enabled, buttonText) {
@@ -1940,6 +2025,13 @@ THE SOFTWARE.
id: 'EditDialogSaveButton',
text: self.options.messages.save,
click: function () {
+
+ //row maybe removed by another source, if so, do nothing
+ if (self._$editingRow.hasClass('jtable-row-removed')) {
+ self._$editDiv.dialog('close');
+ return;
+ }
+
var $saveButton = self._$editDiv.find('#EditDialogSaveButton');
var $editForm = self._$editDiv.find('form');
if (self._trigger("formSubmitting", null, { form: $editForm, formType: 'edit', row: self._$editingRow }) != false) {
@@ -2311,6 +2403,13 @@ THE SOFTWARE.
id: 'DeleteDialogButton',
text: self.options.messages.deleteText,
click: function () {
+
+ //row maybe removed by another source, if so, do nothing
+ if (self._$deletingRow.hasClass('jtable-row-removed')) {
+ self._$deleteRecordDiv.dialog('close');
+ return;
+ }
+
var $deleteButton = $('#DeleteDialogButton');
self._setEnabledOfDialogButton($deleteButton, false, self.options.messages.deleting);
self._deleteRecordFromServer(
@@ -3301,7 +3400,6 @@ THE SOFTWARE.
//Reference to base object members
var base = {
- _create: $.hik.jtable.prototype._create,
_normalizeFieldOptions: $.hik.jtable.prototype._normalizeFieldOptions,
_createHeaderCellForField: $.hik.jtable.prototype._createHeaderCellForField,
_createRecordLoadUrl: $.hik.jtable.prototype._createRecordLoadUrl
diff --git a/lib/jquery.jtable.min.js b/lib/jquery.jtable.min.js
index ea102e3..3a3b486 100644
--- a/lib/jquery.jtable.min.js
+++ b/lib/jquery.jtable.min.js
@@ -1,5 +1,5 @@
/*
-jTable 2.1.0
+jTable 2.1.1
http://www.jtable.org
---------------------------------------------------------------------------
Copyright (C) 2011-2012 by Halil Ýbrahim Kalkan (http://www.halilibrahimkalkan.com)
@@ -22,113 +22,115 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
-(function(c){c.widget("hik.jtable",{options:{actions:{},fields:{},animationsEnabled:!0,defaultDateFormat:"yy-mm-dd",dialogShowEffect:"fade",dialogHideEffect:"fade",showCloseButton:!1,loadingAnimationDelay:500,ajaxSettings:{type:"POST",dataType:"json"},closeRequested:function(){},formCreated:function(){},formSubmitting:function(){},formClosed:function(){},loadingRecords:function(){},recordsLoaded:function(){},rowInserted:function(){},rowsRemoved:function(){},messages:{serverCommunicationError:"An error occured while communicating to the server.",
+(function(d){d.widget("hik.jtable",{options:{actions:{},fields:{},animationsEnabled:!0,defaultDateFormat:"yy-mm-dd",dialogShowEffect:"fade",dialogHideEffect:"fade",showCloseButton:!1,loadingAnimationDelay:500,ajaxSettings:{type:"POST",dataType:"json"},closeRequested:function(){},formCreated:function(){},formSubmitting:function(){},formClosed:function(){},loadingRecords:function(){},recordsLoaded:function(){},rowInserted:function(){},rowsRemoved:function(){},messages:{serverCommunicationError:"An error occured while communicating to the server.",
loadingMessage:"Loading records...",noDataAvailable:"No data available!",areYouSure:"Are you sure?",save:"Save",saving:"Saving",cancel:"Cancel",error:"Error",close:"Close",cannotLoadOptionsFor:"Can not load options for field {0}"}},_$mainContainer:null,_$table:null,_$tableBody:null,_$tableRows:null,_$bottomPanel:null,_$busyDiv:null,_$busyMessageDiv:null,_$errorDialogDiv:null,_columnList:null,_fieldList:null,_keyField:null,_firstDataColumnOffset:0,_lastPostData:null,_cache:null,_create:function(){this._normalizeFieldsOptions();
-this._initializeFields();this._createFieldAndColumnList();this._createMainContainer();this._createTableTitle();this._createTable();this._createBottomPanel();this._createBusyPanel();this._createErrorDialogDiv();this._addNoDataRow()},_normalizeFieldsOptions:function(){var b=this;c.each(b.options.fields,function(a,d){b._normalizeFieldOptions(a,d)})},_normalizeFieldOptions:function(b,a){a.listClass=a.listClass||"";a.inputClass=a.inputClass||""},_initializeFields:function(){this._lastPostData={};this._$tableRows=
-[];this._columnList=[];this._fieldList=[];this._cache=[]},_createFieldAndColumnList:function(){var b=this;c.each(b.options.fields,function(a,d){b._fieldList.push(a);!0==d.key&&(b._keyField=a);!1!=d.list&&"hidden"!=d.type&&b._columnList.push(a)})},_createMainContainer:function(){this._$mainContainer=c("<div />").addClass("jtable-main-container").appendTo(this.element)},_createTableTitle:function(){var b=this;if(b.options.title){var a=c("<div />").addClass("jtable-title").appendTo(b._$mainContainer);
-c("<div />").addClass("jtable-title-text").appendTo(a).append(b.options.title);if(b.options.showCloseButton){var d=c("<span />").html(b.options.messages.close);c("<button></button>").addClass("jtable-command-button jtable-close-button").attr("title",b.options.messages.close).append(d).appendTo(a).click(function(a){a.preventDefault();a.stopPropagation();b._onCloseRequested()})}}},_createTable:function(){this._$table=c("<table></table>").addClass("jtable").appendTo(this._$mainContainer);this._createTableHead();
-this._createTableBody()},_createTableHead:function(){var b=c("<thead></thead>").appendTo(this._$table);this._addRowToTableHead(b)},_addRowToTableHead:function(b){b=c("<tr></tr>").appendTo(b);this._addColumnsToHeaderRow(b)},_addColumnsToHeaderRow:function(b){for(var a=0;a<this._columnList.length;a++){var d=this._columnList[a];this._createHeaderCellForField(d,this.options.fields[d]).appendTo(b)}},_createHeaderCellForField:function(b,a){a.width=a.width||"10%";var d=c("<span />").addClass("jtable-column-header-text").html(a.title),
-d=c("<div />").addClass("jtable-column-header-container").append(d);return c("<th></th>").addClass("jtable-column-header").css("width",a.width).data("fieldName",b).append(d)},_createEmptyCommandHeader:function(){return c("<th></th>").addClass("jtable-command-column-header").css("width","1%")},_createTableBody:function(){this._$tableBody=c("<tbody></tbody>").appendTo(this._$table)},_createBottomPanel:function(){this._$bottomPanel=c("<div />").addClass("jtable-bottom-panel").appendTo(this._$mainContainer);
-c("<div />").addClass("jtable-left-area").appendTo(this._$bottomPanel);c("<div />").addClass("jtable-right-area").appendTo(this._$bottomPanel)},_createBusyPanel:function(){this._$busyMessageDiv=c("<div />").addClass("jtable-busy-message").prependTo(this._$mainContainer);this._$busyDiv=c("<div />").addClass("jtable-busy-panel-background").prependTo(this._$mainContainer);this._hideBusy()},_createErrorDialogDiv:function(){var b=this;b._$errorDialogDiv=c("<div></div>").appendTo(b._$mainContainer);b._$errorDialogDiv.dialog({autoOpen:!1,
-show:b.options.dialogShowEffect,hide:b.options.dialogHideEffect,modal:!0,title:b.options.messages.error,buttons:[{text:b.options.messages.close,click:function(){b._$errorDialogDiv.dialog("close")}}]})},load:function(b,a){this._lastPostData=b;this._reloadTable(a)},reload:function(b){this._reloadTable(b)},getRowByKey:function(b){for(var a=0;a<this._$tableRows.length;a++)if(b==this._getKeyValueOfRecord(this._$tableRows[a].data("record")))return this._$tableRows[a];return null},destroy:function(){this.element.empty();
-c.Widget.prototype.destroy.call(this)},_reloadTable:function(b){var a=this;a._showBusy(a.options.messages.loadingMessage,a.options.loadingAnimationDelay);var d=a._createRecordLoadUrl();a._onLoadingRecords();a._ajax({url:d,data:a._lastPostData,success:function(f){a._hideBusy();"OK"!=f.Result?a._showError(f.Message):(a._removeAllRows("reloading"),a._addRecordsToTable(f.Records),a._onRecordsLoaded(f),b&&b())},error:function(){a._hideBusy();a._showError(a.options.messages.serverCommunicationError)}})},
-_createRecordLoadUrl:function(){return this.options.actions.listAction},_createRowFromRecord:function(b){b=c("<tr></tr>").addClass("jtable-data-row").attr("data-record-key",this._getKeyValueOfRecord(b)).data("record",b);this._addCellsToRowUsingRecord(b);return b},_addCellsToRowUsingRecord:function(b){for(var a=b.data("record"),d=0;d<this._columnList.length;d++)this._createCellForRecordField(a,this._columnList[d]).appendTo(b)},_createCellForRecordField:function(b,a){return c("<td></td>").addClass(this.options.fields[a].listClass).append(this._getDisplayTextForRecordField(b,
-a))},_addRecordsToTable:function(b){var a=this;c.each(b,function(b,f){a._addRow(a._createRowFromRecord(f))});a._refreshRowStyles()},_addRowToTable:function(b,a,d,f){a={index:this._normalizeNumber(a,0,this._$tableRows.length,this._$tableRows.length)};!0==d&&(a.isNewRow=!0);!1==f&&(a.animationsEnabled=!1);this._addRow(b,a)},_addRow:function(b,a){a=c.extend({index:this._$tableRows.length,isNewRow:!1,animationsEnabled:!0},a);0>=this._$tableRows.length&&this._removeNoDataRow();a.index=this._normalizeNumber(a.index,
-0,this._$tableRows.length,this._$tableRows.length);a.index==this._$tableRows.length?(this._$tableBody.append(b),this._$tableRows.push(b)):0==a.index?(this._$tableBody.prepend(b),this._$tableRows.unshift(b)):(this._$tableRows[a.index-1].after(b),this._$tableRows.splice(a.index,0,b));this._onRowInserted(b,a.isNewRow);a.isNewRow&&(this._refreshRowStyles(),this.options.animationsEnabled&&a.animationsEnabled&&this._showNewRowAnimation(b))},_showNewRowAnimation:function(b){b.addClass("jtable-row-created",
-"slow","",function(){b.removeClass("jtable-row-created",5E3)})},_removeRowsFromTable:function(b,a){var d=this;0>=b.length||(b.remove(),b.each(function(){d._$tableRows.splice(d._findRowIndex(c(this)),1)}),d._onRowsRemoved(b,a),0==d._$tableRows.length&&d._addNoDataRow(),d._refreshRowStyles())},_findRowIndex:function(b){return this._findIndexInArray(b,this._$tableRows,function(a,b){return a.data("record")==b.data("record")})},_removeAllRows:function(b){if(!(0>=this._$tableRows.length)){var a=this._$tableBody.find("tr.jtable-data-row");
-this._$tableBody.empty();this._$tableRows=[];this._onRowsRemoved(a,b);this._addNoDataRow()}},_addNoDataRow:function(){var b=c("<tr></tr>").addClass("jtable-no-data-row").appendTo(this._$tableBody),a=this._$table.find("thead th").length;c("<td></td>").attr("colspan",a).html(this.options.messages.noDataAvailable).appendTo(b)},_removeNoDataRow:function(){this._$tableBody.find(".jtable-no-data-row").remove()},_refreshRowStyles:function(){for(var b=0;b<this._$tableRows.length;b++)0==b%2?this._$tableRows[b].addClass("jtable-row-even"):
-this._$tableRows[b].removeClass("jtable-row-even")},_getDisplayTextForRecordField:function(b,a){var d=this.options.fields[a],f=b[a];return d.display?d.display({record:b}):"date"==d.type?this._getDisplayTextForDateRecordField(d,f):"checkbox"==d.type?this._getCheckBoxTextForFieldByValue(a,f):d.options?(d=this._getOptionsForField(a,{record:b,source:"list",dependedValues:this._createDependedValuesUsingRecord(b,d.dependsOn)}),this._findOptionByValue(d,f).DisplayText):f},_createDependedValuesUsingRecord:function(b,
-a){if(!a)return{};var d={};d[a]=b[a];return d},_findOptionByValue:function(b,a){for(var d=0;d<b.length;d++)if(b[d].Value==a)return b[d];return{}},_getDisplayTextForDateRecordField:function(b,a){if(!a)return"";var d=b.displayFormat||this.options.defaultDateFormat,f=this._parseDate(a);return c.datepicker.formatDate(d,f)},_getOptionsForField:function(b,a){var d=this.options.fields[b],f=d.options;c.isFunction(f)&&(a=c.extend(!0,{_cacheCleared:!1,dependedValues:{},clearCache:function(){this._cacheCleared=
-!0}},a),f=f(a));if("string"==typeof f){var g="options_"+b+"_"+f;if(a._cacheCleared||!this._cache[g])this._cache[g]=this._downloadOptions(b,f),this._sortFieldOptions(this._cache[g],d.optionsSorting);f=this._cache[g]}else f=jQuery.isArray(f)?this._buildOptionsFromArray(f):this._buildOptionsArrayFromObject(f),this._sortFieldOptions(f,d.optionsSorting);return f},_sortFieldOptions:function(b,a){if(b&&b.length&&a){var d;d=0==a.indexOf("value")?function(a){return a.Value}:function(a){return a.DisplayText};
-var f;f="string"==c.type(d(b[0]))?function(a,f){return d(a).localeCompare(d(f))}:function(a,f){return d(a)-d(f)};0<a.indexOf("desc")?b.sort(function(a,b){return f(b,a)}):b.sort(function(a,b){return f(a,b)})}},_buildOptionsArrayFromObject:function(b){var a=[];c.each(b,function(b,f){a.push({Value:b,DisplayText:f})});return a},_buildOptionsFromArray:function(b){for(var a=[],d=0;d<b.length;d++)c.isPlainObject?a.push(b[d]):a.push({Value:b[d],DisplayText:b[d]});return a},_parseDate:function(b){if(0<=b.indexOf("Date"))return new Date(parseInt(b.substr(6)));
-if(10==b.length)return new Date(parseInt(b.substr(0,4)),parseInt(b.substr(5,2))-1,parseInt(b.substr(8,2)));if(19==b.length)return new Date(parseInt(b.substr(0,4)),parseInt(b.substr(5,2))-1,parseInt(b.substr(8,2)),parseInt(b.substr(11,2)),parseInt(b.substr(14,2)),parseInt(b.substr(17,2)));this._logWarn("Given date is not properly formatted: "+b);return"format error!"},_showError:function(b){this._$errorDialogDiv.html(b).dialog("open")},_setBusyTimer:null,_showBusy:function(b,a){var d=this,f=function(){d._$busyMessageDiv.is(":visible")||
-(d._$busyDiv.width(d._$mainContainer.width()),d._$busyDiv.height(d._$mainContainer.height()),d._$busyDiv.show(),d._$busyMessageDiv.show());d._$busyMessageDiv.html(b)};a?d._setBusyTimer=setTimeout(f,a):f()},_hideBusy:function(){clearTimeout(this._setBusyTimer);this._$busyDiv.hide();this._$busyMessageDiv.html("").hide()},_isBusy:function(){return this._$busyMessageDiv.is(":visible")},_performAjaxCall:function(b,a,d,f,g){this._ajax({url:b,data:a,async:d,success:f,error:g})},_ajax:function(b){var a=c.extend({},
-this.options.ajaxSettings,b);a.success=function(a){b.success&&b.success(a)};a.error=function(){b.error&&b.error()};a.complete=function(){b.complete&&b.complete()};c.ajax(a)},_getKeyValueOfRecord:function(b){return b[this._keyField]},_onLoadingRecords:function(){this._trigger("loadingRecords",null,{})},_onRecordsLoaded:function(b){this._trigger("recordsLoaded",null,{records:b.Records,serverResponse:b})},_onRowInserted:function(b,a){this._trigger("rowInserted",null,{row:b,record:b.data("record"),isNewRow:a})},
-_onRowsRemoved:function(b,a){this._trigger("rowsRemoved",null,{rows:b,reason:a})},_onCloseRequested:function(){this._trigger("closeRequested",null,{})}})})(jQuery);
-(function(c){c.extend(!0,c.hik.jtable.prototype,{_getPropertyOfObject:function(b,a){if(0>a.indexOf("."))return b[a];var d=a.substring(0,a.indexOf(".")),f=a.substring(a.indexOf(".")+1);return this._getPropertyOfObject(b[d],f)},_setPropertyOfObject:function(b,a,d){if(0>a.indexOf("."))b[a]=d;else{var f=a.substring(0,a.indexOf("."));a=a.substring(a.indexOf(".")+1);this._setPropertyOfObject(b[f],a,d)}},_insertToArrayIfDoesNotExists:function(b,a){0>c.inArray(a,b)&&b.push(a)},_findIndexInArray:function(b,
-a,d){d||(d=function(a,f){return a==f});for(var f=0;f<a.length;f++)if(d(b,a[f]))return f;return-1},_normalizeNumber:function(b,a,d,f){return void 0==b||null==b?f:b<a?a:b>d?d:b},_formatString:function(){if(0==arguments.length)return null;for(var b=arguments[0],a=1;a<arguments.length;a++)b=b.replace("{"+(a-1)+"}",arguments[a]);return b},_logDebug:function(b){window.console&&console.log("jTable DEBUG: "+b)},_logInfo:function(b){window.console&&console.log("jTable INFO: "+b)},_logWarn:function(b){window.console&&
-console.log("jTable WARNING: "+b)},_logError:function(b){window.console&&console.log("jTable ERROR: "+b)}})})(jQuery);
-(function(c){c.extend(!0,c.hik.jtable.prototype,{_submitFormUsingAjax:function(b,a,d,f){this._ajax({url:b,data:a,success:d,error:f})},_createInputLabelForRecordField:function(b){return c("<div />").addClass("jtable-input-label").html(this.options.fields[b].title)},_createInputForRecordField:function(b){var a=b.fieldName,d=b.value,f=b.record,g=b.formType;b=b.form;var e=this.options.fields[a];if(void 0==d||null==d)d=e.defaultValue;return e.input?(d=c(e.input({value:d,record:f,formType:g,form:b})),d.attr("id")||
-d.attr("id","Edit-"+a),c("<div />").addClass("jtable-input jtable-custom-input").append(d)):"date"==e.type?this._createDateInputForField(e,a,d):"textarea"==e.type?this._createTextAreaForField(e,a,d):"password"==e.type?this._createPasswordInputForField(e,a,d):"checkbox"==e.type?this._createCheckboxForField(e,a,d):e.options?"radiobutton"==e.type?this._createRadioButtonListForField(e,a,d,f,g):this._createDropDownListForField(e,a,d,f,g,b):this._createTextInputForField(e,a,d)},_createInputForHidden:function(b,
-a){if(void 0==a||null==a)a="";return c('<input type="hidden" value="'+a+'" name="'+b+'" id="Edit-'+b+'"></input>')},_createDateInputForField:function(b,a,d){a=c('<input class="'+b.inputClass+'" id="Edit-'+a+'" type="text"'+(void 0!=d?'value="'+d+'"':"")+' name="'+a+'"></input>');a.datepicker({dateFormat:b.displayFormat||this.options.defaultDateFormat});return c("<div />").addClass("jtable-input jtable-date-input").append(a)},_createTextAreaForField:function(b,a,d){b=c('<textarea class="'+b.inputClass+
-'" id="Edit-'+a+'" name="'+a+'">'+(d||"")+"</textarea>");return c("<div />").addClass("jtable-input jtable-textarea-input").append(b)},_createTextInputForField:function(b,a,d){b=c('<input class="'+b.inputClass+'" id="Edit-'+a+'" type="text"'+(void 0!=d?'value="'+d+'"':"")+' name="'+a+'"></input>');return c("<div />").addClass("jtable-input jtable-text-input").append(b)},_createPasswordInputForField:function(b,a,d){b=c('<input class="'+b.inputClass+'" id="Edit-'+a+'" type="password"'+(void 0!=d?'value="'+
-d+'"':"")+' name="'+a+'"></input>');return c("<div />").addClass("jtable-input jtable-password-input").append(b)},_createCheckboxForField:function(b,a,d){var f=this;void 0==d&&(d=f._getCheckBoxPropertiesForFieldByState(a,!1).Value);var g=c("<div />").addClass("jtable-input jtable-checkbox-input"),e=c('<input class="'+b.inputClass+'" id="Edit-'+a+'" type="checkbox" name="'+a+'" value="'+d+'" />').appendTo(g),h=c("<span>"+(b.formText||f._getCheckBoxTextForFieldByValue(a,d))+"</span>").appendTo(g);f._getIsCheckBoxSelectedForFieldByValue(a,
-d)&&e.attr("checked","checked");var l=function(){var g=f._getCheckBoxPropertiesForFieldByState(a,e.is(":checked"));e.attr("value",g.Value);h.html(b.formText||g.DisplayText)};e.click(function(){l()});!1!=b.setOnTextClick&&h.addClass("jtable-option-text-clickable").click(function(){e.is(":checked")?e.attr("checked",!1):e.attr("checked",!0);l()});return g},_createDropDownListForField:function(b,a,d,f,g,e){var h=c("<div />").addClass("jtable-input jtable-dropdown-input"),l=c('<select class="'+b.inputClass+
-'" id="Edit-'+a+'" name="'+a+'"></select>').appendTo(h);b.dependsOn&&l.attr("data-depends-on",b.dependsOn);b=this._getOptionsForField(a,{record:f,source:g,form:e,dependedValues:this._createDependedValuesUsingForm(e,b.dependsOn)});this._fillDropDownListWithOptions(l,b,d);return h},_fillDropDownListWithOptions:function(b,a,d){b.empty();for(var f=0;f<a.length;f++)b.append('<option value="'+a[f].Value+'"'+(a[f].Value==d?' selected="selected"':"")+">"+a[f].DisplayText+"</option>")},_createDependedValuesUsingForm:function(b,
-a){if(!a)return{};var d=b.find("select[name="+a+"]");if(0>=d.length)return{};var f={};f[a]=d.val();return f},_createRadioButtonListForField:function(b,a,d,f,g){var e=c("<div />").addClass("jtable-input jtable-radiobuttonlist-input");f=this._getOptionsForField(a,{record:f,source:g});c.each(f,function(f,g){var j=c('<div class=""></div>').addClass("jtable-radio-input").appendTo(e),k=c('<input type="radio" id="Edit-'+a+"-"+f+'" class="'+b.inputClass+'" name="'+a+'" value="'+g.Value+'"'+(g.Value==d+""?
-' checked="true"':"")+" />").appendTo(j),j=c("<span></span>").html(g.DisplayText).appendTo(j);!1!=b.setOnTextClick&&j.addClass("jtable-option-text-clickable").click(function(){k.is(":checked")||k.attr("checked",!0)})});return e},_getCheckBoxTextForFieldByValue:function(b,a){return this.options.fields[b].values[a]},_getIsCheckBoxSelectedForFieldByValue:function(b,a){return this._createCheckBoxStateArrayForFieldWithCaching(b)[1].Value.toString()==a.toString()},_getCheckBoxPropertiesForFieldByState:function(b,
-a){return this._createCheckBoxStateArrayForFieldWithCaching(b)[a?1:0]},_createCheckBoxStateArrayForFieldWithCaching:function(b){var a="checkbox_"+b;this._cache[a]||(this._cache[a]=this._createCheckBoxStateArrayForField(b));return this._cache[a]},_createCheckBoxStateArrayForField:function(b){var a=[],d=0;c.each(this.options.fields[b].values,function(f,b){2>d++&&a.push({Value:f,DisplayText:b})});return a},_makeCascadeDropDowns:function(b,a,d){var f=this;b.find("select[data-depends-on]").each(function(){var g=
-c(this),e=g.attr("name");if(e){var h=g.attr("data-depends-on"),l=b.find("select[name="+h+"]");l.change(function(){var c={record:a,source:d,form:b,dependedValues:{}};c.dependedValues[h]=l.val();c=f._getOptionsForField(e,c);f._fillDropDownListWithOptions(g,c,void 0);g.change()})}})},_updateRecordValuesFromForm:function(b,a){for(var d=0;d<this._fieldList.length;d++){var f=this._fieldList[d],g=this.options.fields[f];if(!1!=g.edit){var e=a.find('[name="'+f+'"]');if(!(0>=e.length))if("date"==g.type){g=
-g.displayFormat||this.options.defaultDateFormat;try{var h=c.datepicker.parseDate(g,e.val());b[f]="/Date("+h.getTime()+")/"}catch(l){b[f]="/Date("+(new Date).getTime()+")/"}}else g.options&&"radiobutton"==g.type?(e=e.filter(":checked"),b[f]=e.length?e.val():void 0):b[f]=e.val()}}},_downloadOptions:function(b,a){var d=this,f=[];d._ajax({url:a,async:!1,success:function(a){"OK"!=a.Result?d._showError(a.Message):f=a.Options},error:function(){var a=d._formatString(d.options.messages.cannotLoadOptionsFor,
-b);d._showError(a)}});return f},_setEnabledOfDialogButton:function(b,a,d){b&&(!1!=a?b.removeAttr("disabled").removeClass("ui-state-disabled"):b.attr("disabled","disabled").addClass("ui-state-disabled"),d&&b.find("span").text(d))}})})(jQuery);
-(function(c){var b=c.hik.jtable.prototype._create;c.extend(!0,c.hik.jtable.prototype,{options:{recordAdded:function(){},messages:{addNewRecord:"+ Add new record"}},_$addRecordDiv:null,_create:function(){b.apply(this,arguments);this._createAddRecordDialogDiv()},_createAddRecordDialogDiv:function(){var a=this;a.options.actions.createAction&&(a._$addRecordDiv=c("<div />").appendTo(a._$mainContainer),a._$addRecordDiv.dialog({autoOpen:!1,show:a.options.dialogShowEffect,hide:a.options.dialogHideEffect,
-width:"auto",minWidth:"300",modal:!0,title:a.options.messages.addNewRecord,buttons:[{text:a.options.messages.cancel,click:function(){a._$addRecordDiv.dialog("close")}},{id:"AddRecordDialogSaveButton",text:a.options.messages.save,click:function(){var b=c("#AddRecordDialogSaveButton"),f=a._$addRecordDiv.find("form");!1!=a._trigger("formSubmitting",null,{form:f,formType:"create"})&&(a._setEnabledOfDialogButton(b,!1,a.options.messages.saving),a._saveAddRecordForm(f,b))}}],close:function(){var b=a._$addRecordDiv.find("form").first(),
-f=c("#AddRecordDialogSaveButton");a._trigger("formClosed",null,{form:b,formType:"create"});a._setEnabledOfDialogButton(f,!0,a.options.messages.save);b.remove()}}),a.options.addRecordButton||(a.options.addRecordButton=a._createAddRecordButton()),a.options.addRecordButton.click(function(b){b.preventDefault();a._showAddRecordForm()}))},_createAddRecordButton:function(){var a=c("<a></a>").attr("href","#").html(this.options.messages.addNewRecord);return c("<span></span>").addClass("jtable-add-record").append(a).appendTo(this._$bottomPanel.find(".jtable-right-area"))},
-showCreateForm:function(){this._showAddRecordForm()},addRecord:function(a){var b=this;a=c.extend({clientOnly:!1,animationsEnabled:b.options.animationsEnabled,url:b.options.actions.createAction,success:function(){},error:function(){}},a);a.record?a.clientOnly?(b._addRow(b._createRowFromRecord(a.record),{isNewRow:!0,animationsEnabled:a.animationsEnabled}),a.success()):b._submitFormUsingAjax(a.url,c.param(a.record),function(f){"OK"!=f.Result?(b._showError(f.Message),a.error(f)):f.Record?(b._onRecordAdded(f),
-b._addRow(b._createRowFromRecord(f.Record),{isNewRow:!0,animationsEnabled:a.animationsEnabled}),a.success(f)):(b._logError("Server must return the created Record object."),a.error(f))},function(){b._showError(b.options.messages.serverCommunicationError);a.error()}):b._logWarn("options parameter in addRecord method must contain a record property.")},_showAddRecordForm:function(){for(var a=c('<form id="jtable-create-form" class="jtable-dialog-form jtable-create-form" action="'+this.options.actions.createAction+
-'" method="POST"></form>'),b=0;b<this._fieldList.length;b++){var f=this._fieldList[b],g=this.options.fields[f];!(!0==g.key&&!0!=g.create)&&!1!=g.create&&("hidden"==g.type?a.append(this._createInputForHidden(f,g.defaultValue)):(g=c("<div />").addClass("jtable-input-field-container").appendTo(a),g.append(this._createInputLabelForRecordField(f)),g.append(this._createInputForRecordField({fieldName:f,formType:"create",form:a}))))}this._makeCascadeDropDowns(a,void 0,"create");this._$addRecordDiv.append(a).dialog("open");
+this._initializeFields();this._createFieldAndColumnList();this._createMainContainer();this._createTableTitle();this._createTable();this._createBottomPanel();this._createBusyPanel();this._createErrorDialogDiv();this._addNoDataRow()},_normalizeFieldsOptions:function(){var b=this;d.each(b.options.fields,function(a,c){b._normalizeFieldOptions(a,c)})},_normalizeFieldOptions:function(b,a){void 0==a.listClass&&(a.listClass="");void 0==a.inputClass&&(a.inputClass="");if(a.dependsOn&&"string"===d.type(a.dependsOn)){var c=
+a.dependsOn.split(",");a.dependsOn=[];for(var f=0;f<c.length;f++)a.dependsOn.push(d.trim(c[f]))}},_initializeFields:function(){this._lastPostData={};this._$tableRows=[];this._columnList=[];this._fieldList=[];this._cache=[]},_createFieldAndColumnList:function(){var b=this;d.each(b.options.fields,function(a,c){b._fieldList.push(a);!0==c.key&&(b._keyField=a);!1!=c.list&&"hidden"!=c.type&&b._columnList.push(a)})},_createMainContainer:function(){this._$mainContainer=d("<div />").addClass("jtable-main-container").appendTo(this.element)},
+_createTableTitle:function(){var b=this;if(b.options.title){var a=d("<div />").addClass("jtable-title").appendTo(b._$mainContainer);d("<div />").addClass("jtable-title-text").appendTo(a).append(b.options.title);if(b.options.showCloseButton){var c=d("<span />").html(b.options.messages.close);d("<button></button>").addClass("jtable-command-button jtable-close-button").attr("title",b.options.messages.close).append(c).appendTo(a).click(function(f){f.preventDefault();f.stopPropagation();b._onCloseRequested()})}}},
+_createTable:function(){this._$table=d("<table></table>").addClass("jtable").appendTo(this._$mainContainer);this._createTableHead();this._createTableBody()},_createTableHead:function(){var b=d("<thead></thead>").appendTo(this._$table);this._addRowToTableHead(b)},_addRowToTableHead:function(b){b=d("<tr></tr>").appendTo(b);this._addColumnsToHeaderRow(b)},_addColumnsToHeaderRow:function(b){for(var a=0;a<this._columnList.length;a++){var c=this._columnList[a];this._createHeaderCellForField(c,this.options.fields[c]).appendTo(b)}},
+_createHeaderCellForField:function(b,a){a.width=a.width||"10%";var c=d("<span />").addClass("jtable-column-header-text").html(a.title),c=d("<div />").addClass("jtable-column-header-container").append(c);return d("<th></th>").addClass("jtable-column-header").css("width",a.width).data("fieldName",b).append(c)},_createEmptyCommandHeader:function(){return d("<th></th>").addClass("jtable-command-column-header").css("width","1%")},_createTableBody:function(){this._$tableBody=d("<tbody></tbody>").appendTo(this._$table)},
+_createBottomPanel:function(){this._$bottomPanel=d("<div />").addClass("jtable-bottom-panel").appendTo(this._$mainContainer);d("<div />").addClass("jtable-left-area").appendTo(this._$bottomPanel);d("<div />").addClass("jtable-right-area").appendTo(this._$bottomPanel)},_createBusyPanel:function(){this._$busyMessageDiv=d("<div />").addClass("jtable-busy-message").prependTo(this._$mainContainer);this._$busyDiv=d("<div />").addClass("jtable-busy-panel-background").prependTo(this._$mainContainer);this._hideBusy()},
+_createErrorDialogDiv:function(){var b=this;b._$errorDialogDiv=d("<div></div>").appendTo(b._$mainContainer);b._$errorDialogDiv.dialog({autoOpen:!1,show:b.options.dialogShowEffect,hide:b.options.dialogHideEffect,modal:!0,title:b.options.messages.error,buttons:[{text:b.options.messages.close,click:function(){b._$errorDialogDiv.dialog("close")}}]})},load:function(b,a){this._lastPostData=b;this._reloadTable(a)},reload:function(b){this._reloadTable(b)},getRowByKey:function(b){for(var a=0;a<this._$tableRows.length;a++)if(b==
+this._getKeyValueOfRecord(this._$tableRows[a].data("record")))return this._$tableRows[a];return null},destroy:function(){this.element.empty();d.Widget.prototype.destroy.call(this)},_reloadTable:function(b){var a=this;a._showBusy(a.options.messages.loadingMessage,a.options.loadingAnimationDelay);var c=a._createRecordLoadUrl();a._onLoadingRecords();a._ajax({url:c,data:a._lastPostData,success:function(f){a._hideBusy();"OK"!=f.Result?a._showError(f.Message):(a._removeAllRows("reloading"),a._addRecordsToTable(f.Records),
+a._onRecordsLoaded(f),b&&b())},error:function(){a._hideBusy();a._showError(a.options.messages.serverCommunicationError)}})},_createRecordLoadUrl:function(){return this.options.actions.listAction},_createRowFromRecord:function(b){b=d("<tr></tr>").addClass("jtable-data-row").attr("data-record-key",this._getKeyValueOfRecord(b)).data("record",b);this._addCellsToRowUsingRecord(b);return b},_addCellsToRowUsingRecord:function(b){for(var a=b.data("record"),c=0;c<this._columnList.length;c++)this._createCellForRecordField(a,
+this._columnList[c]).appendTo(b)},_createCellForRecordField:function(b,a){return d("<td></td>").addClass(this.options.fields[a].listClass).append(this._getDisplayTextForRecordField(b,a))},_addRecordsToTable:function(b){var a=this;d.each(b,function(b,f){a._addRow(a._createRowFromRecord(f))});a._refreshRowStyles()},_addRowToTable:function(b,a,c,f){a={index:this._normalizeNumber(a,0,this._$tableRows.length,this._$tableRows.length)};!0==c&&(a.isNewRow=!0);!1==f&&(a.animationsEnabled=!1);this._addRow(b,
+a)},_addRow:function(b,a){a=d.extend({index:this._$tableRows.length,isNewRow:!1,animationsEnabled:!0},a);0>=this._$tableRows.length&&this._removeNoDataRow();a.index=this._normalizeNumber(a.index,0,this._$tableRows.length,this._$tableRows.length);a.index==this._$tableRows.length?(this._$tableBody.append(b),this._$tableRows.push(b)):0==a.index?(this._$tableBody.prepend(b),this._$tableRows.unshift(b)):(this._$tableRows[a.index-1].after(b),this._$tableRows.splice(a.index,0,b));this._onRowInserted(b,a.isNewRow);
+a.isNewRow&&(this._refreshRowStyles(),this.options.animationsEnabled&&a.animationsEnabled&&this._showNewRowAnimation(b))},_showNewRowAnimation:function(b){b.addClass("jtable-row-created","slow","",function(){b.removeClass("jtable-row-created",5E3)})},_removeRowsFromTable:function(b,a){var c=this;0>=b.length||(b.addClass("jtable-row-removed").remove(),b.each(function(){var f=c._findRowIndex(d(this));0<=f&&c._$tableRows.splice(f,1)}),c._onRowsRemoved(b,a),0==c._$tableRows.length&&c._addNoDataRow(),
+c._refreshRowStyles())},_findRowIndex:function(b){return this._findIndexInArray(b,this._$tableRows,function(a,b){return a.data("record")==b.data("record")})},_removeAllRows:function(b){if(!(0>=this._$tableRows.length)){var a=this._$tableBody.find("tr.jtable-data-row");this._$tableBody.empty();this._$tableRows=[];this._onRowsRemoved(a,b);this._addNoDataRow()}},_addNoDataRow:function(){if(!(0<this._$tableBody.find(">tr.jtable-no-data-row").length)){var b=d("<tr></tr>").addClass("jtable-no-data-row").appendTo(this._$tableBody),
+a=this._$table.find("thead th").length;d("<td></td>").attr("colspan",a).html(this.options.messages.noDataAvailable).appendTo(b)}},_removeNoDataRow:function(){this._$tableBody.find(".jtable-no-data-row").remove()},_refreshRowStyles:function(){for(var b=0;b<this._$tableRows.length;b++)0==b%2?this._$tableRows[b].addClass("jtable-row-even"):this._$tableRows[b].removeClass("jtable-row-even")},_getDisplayTextForRecordField:function(b,a){var c=this.options.fields[a],f=b[a];return c.display?c.display({record:b}):
+"date"==c.type?this._getDisplayTextForDateRecordField(c,f):"checkbox"==c.type?this._getCheckBoxTextForFieldByValue(a,f):c.options?(c=this._getOptionsForField(a,{record:b,value:f,source:"list",dependedValues:this._createDependedValuesUsingRecord(b,c.dependsOn)}),this._findOptionByValue(c,f).DisplayText):f},_createDependedValuesUsingRecord:function(b,a){if(!a)return{};for(var c={},f=0;f<a.length;f++)c[a[f]]=b[a[f]];return c},_findOptionByValue:function(b,a){for(var c=0;c<b.length;c++)if(b[c].Value==
+a)return b[c];return{}},_getDisplayTextForDateRecordField:function(b,a){if(!a)return"";var c=b.displayFormat||this.options.defaultDateFormat,f=this._parseDate(a);return d.datepicker.formatDate(c,f)},_getOptionsForField:function(b,a){var c=this.options.fields[b],f=c.options;d.isFunction(f)&&(a=d.extend(!0,{_cacheCleared:!1,dependedValues:{},clearCache:function(){this._cacheCleared=!0}},a),f=f(a));if("string"==typeof f){var g="options_"+b+"_"+f;a._cacheCleared||!this._cache[g]?(this._cache[g]=this._buildOptionsFromArray(this._downloadOptions(b,
+f)),this._sortFieldOptions(this._cache[g],c.optionsSorting)):void 0!=a.value&&void 0==this._findOptionByValue(this._cache[g],a.value).DisplayText&&(this._cache[g]=this._buildOptionsFromArray(this._downloadOptions(b,f)),this._sortFieldOptions(this._cache[g],c.optionsSorting));f=this._cache[g]}else f=jQuery.isArray(f)?this._buildOptionsFromArray(f):this._buildOptionsArrayFromObject(f),this._sortFieldOptions(f,c.optionsSorting);return f},_downloadOptions:function(b,a){var c=this,f=[];c._ajax({url:a,
+async:!1,success:function(a){"OK"!=a.Result?c._showError(a.Message):f=a.Options},error:function(){var f=c._formatString(c.options.messages.cannotLoadOptionsFor,b);c._showError(f)}});return f},_sortFieldOptions:function(b,a){if(b&&b.length&&a){var c;c=0==a.indexOf("value")?function(f){return f.Value}:function(f){return f.DisplayText};var f;f="string"==d.type(c(b[0]))?function(f,a){return c(f).localeCompare(c(a))}:function(f,a){return c(f)-c(a)};0<a.indexOf("desc")?b.sort(function(a,b){return f(b,a)}):
+b.sort(function(a,b){return f(a,b)})}},_buildOptionsArrayFromObject:function(b){var a=[];d.each(b,function(b,f){a.push({Value:b,DisplayText:f})});return a},_buildOptionsFromArray:function(b){for(var a=[],c=0;c<b.length;c++)d.isPlainObject(b[c])?a.push(b[c]):a.push({Value:b[c],DisplayText:b[c]});return a},_parseDate:function(b){if(0<=b.indexOf("Date"))return new Date(parseInt(b.substr(6)));if(10==b.length)return new Date(parseInt(b.substr(0,4)),parseInt(b.substr(5,2))-1,parseInt(b.substr(8,2)));if(19==
+b.length)return new Date(parseInt(b.substr(0,4)),parseInt(b.substr(5,2))-1,parseInt(b.substr(8,2)),parseInt(b.substr(11,2)),parseInt(b.substr(14,2)),parseInt(b.substr(17,2)));this._logWarn("Given date is not properly formatted: "+b);return"format error!"},_showError:function(b){this._$errorDialogDiv.html(b).dialog("open")},_setBusyTimer:null,_showBusy:function(b,a){var c=this,f=function(){c._$busyMessageDiv.is(":visible")||(c._$busyDiv.width(c._$mainContainer.width()),c._$busyDiv.height(c._$mainContainer.height()),
+c._$busyDiv.show(),c._$busyMessageDiv.show());c._$busyMessageDiv.html(b)};a?c._setBusyTimer=setTimeout(f,a):f()},_hideBusy:function(){clearTimeout(this._setBusyTimer);this._$busyDiv.hide();this._$busyMessageDiv.html("").hide()},_isBusy:function(){return this._$busyMessageDiv.is(":visible")},_performAjaxCall:function(b,a,c,f,g){this._ajax({url:b,data:a,async:c,success:f,error:g})},_ajax:function(b){var a=d.extend({},this.options.ajaxSettings,b);a.success=function(a){b.success&&b.success(a)};a.error=
+function(){b.error&&b.error()};a.complete=function(){b.complete&&b.complete()};d.ajax(a)},_getKeyValueOfRecord:function(b){return b[this._keyField]},_onLoadingRecords:function(){this._trigger("loadingRecords",null,{})},_onRecordsLoaded:function(b){this._trigger("recordsLoaded",null,{records:b.Records,serverResponse:b})},_onRowInserted:function(b,a){this._trigger("rowInserted",null,{row:b,record:b.data("record"),isNewRow:a})},_onRowsRemoved:function(b,a){this._trigger("rowsRemoved",null,{rows:b,reason:a})},
+_onCloseRequested:function(){this._trigger("closeRequested",null,{})}})})(jQuery);
+(function(d){d.extend(!0,d.hik.jtable.prototype,{_getPropertyOfObject:function(b,a){if(0>a.indexOf("."))return b[a];var c=a.substring(0,a.indexOf(".")),f=a.substring(a.indexOf(".")+1);return this._getPropertyOfObject(b[c],f)},_setPropertyOfObject:function(b,a,c){if(0>a.indexOf("."))b[a]=c;else{var f=a.substring(0,a.indexOf("."));a=a.substring(a.indexOf(".")+1);this._setPropertyOfObject(b[f],a,c)}},_insertToArrayIfDoesNotExists:function(b,a){0>d.inArray(a,b)&&b.push(a)},_findIndexInArray:function(b,
+a,c){c||(c=function(f,a){return f==a});for(var f=0;f<a.length;f++)if(c(b,a[f]))return f;return-1},_normalizeNumber:function(b,a,c,f){return void 0==b||null==b?f:b<a?a:b>c?c:b},_formatString:function(){if(0==arguments.length)return null;for(var b=arguments[0],a=1;a<arguments.length;a++)b=b.replace("{"+(a-1)+"}",arguments[a]);return b},_logDebug:function(b){window.console&&console.log("jTable DEBUG: "+b)},_logInfo:function(b){window.console&&console.log("jTable INFO: "+b)},_logWarn:function(b){window.console&&
+console.log("jTable WARNING: "+b)},_logError:function(b){window.console&&console.log("jTable ERROR: "+b)}});Array.prototype.indexOf||(Array.prototype.indexOf=function(b,a){var c=this.length,f=Number(a)||0,f=0>f?Math.ceil(f):Math.floor(f);for(0>f&&(f+=c);f<c;f++)if(f in this&&this[f]===b)return f;return-1})})(jQuery);
+(function(d){d.extend(!0,d.hik.jtable.prototype,{_submitFormUsingAjax:function(b,a,c,f){this._ajax({url:b,data:a,success:c,error:f})},_createInputLabelForRecordField:function(b){return d("<div />").addClass("jtable-input-label").html(this.options.fields[b].title)},_createInputForRecordField:function(b){var a=b.fieldName,c=b.value,f=b.record,g=b.formType;b=b.form;var e=this.options.fields[a];if(void 0==c||null==c)c=e.defaultValue;return e.input?(c=d(e.input({value:c,record:f,formType:g,form:b})),c.attr("id")||
+c.attr("id","Edit-"+a),d("<div />").addClass("jtable-input jtable-custom-input").append(c)):"date"==e.type?this._createDateInputForField(e,a,c):"textarea"==e.type?this._createTextAreaForField(e,a,c):"password"==e.type?this._createPasswordInputForField(e,a,c):"checkbox"==e.type?this._createCheckboxForField(e,a,c):e.options?"radiobutton"==e.type?this._createRadioButtonListForField(e,a,c,f,g):this._createDropDownListForField(e,a,c,f,g,b):this._createTextInputForField(e,a,c)},_createInputForHidden:function(b,
+a){if(void 0==a||null==a)a="";return d('<input type="hidden" value="'+a+'" name="'+b+'" id="Edit-'+b+'"></input>')},_createDateInputForField:function(b,a,c){a=d('<input class="'+b.inputClass+'" id="Edit-'+a+'" type="text"'+(void 0!=c?'value="'+c+'"':"")+' name="'+a+'"></input>');a.datepicker({dateFormat:b.displayFormat||this.options.defaultDateFormat});return d("<div />").addClass("jtable-input jtable-date-input").append(a)},_createTextAreaForField:function(b,a,c){b=d('<textarea class="'+b.inputClass+
+'" id="Edit-'+a+'" name="'+a+'">'+(c||"")+"</textarea>");return d("<div />").addClass("jtable-input jtable-textarea-input").append(b)},_createTextInputForField:function(b,a,c){b=d('<input class="'+b.inputClass+'" id="Edit-'+a+'" type="text"'+(void 0!=c?'value="'+c+'"':"")+' name="'+a+'"></input>');return d("<div />").addClass("jtable-input jtable-text-input").append(b)},_createPasswordInputForField:function(b,a,c){b=d('<input class="'+b.inputClass+'" id="Edit-'+a+'" type="password"'+(void 0!=c?'value="'+
+c+'"':"")+' name="'+a+'"></input>');return d("<div />").addClass("jtable-input jtable-password-input").append(b)},_createCheckboxForField:function(b,a,c){var f=this;void 0==c&&(c=f._getCheckBoxPropertiesForFieldByState(a,!1).Value);var g=d("<div />").addClass("jtable-input jtable-checkbox-input"),e=d('<input class="'+b.inputClass+'" id="Edit-'+a+'" type="checkbox" name="'+a+'" value="'+c+'" />').appendTo(g),j=d("<span>"+(b.formText||f._getCheckBoxTextForFieldByValue(a,c))+"</span>").appendTo(g);f._getIsCheckBoxSelectedForFieldByValue(a,
+c)&&e.attr("checked","checked");var k=function(){var g=f._getCheckBoxPropertiesForFieldByState(a,e.is(":checked"));e.attr("value",g.Value);j.html(b.formText||g.DisplayText)};e.click(function(){k()});!1!=b.setOnTextClick&&j.addClass("jtable-option-text-clickable").click(function(){e.is(":checked")?e.attr("checked",!1):e.attr("checked",!0);k()});return g},_createDropDownListForField:function(b,a,c,f,g,e){var j=d("<div />").addClass("jtable-input jtable-dropdown-input"),k=d('<select class="'+b.inputClass+
+'" id="Edit-'+a+'" name="'+a+'"></select>').appendTo(j);b=this._getOptionsForField(a,{record:f,source:g,form:e,dependedValues:this._createDependedValuesUsingForm(e,b.dependsOn)});this._fillDropDownListWithOptions(k,b,c);return j},_fillDropDownListWithOptions:function(b,a,c){b.empty();for(var f=0;f<a.length;f++)b.append('<option value="'+a[f].Value+'"'+(a[f].Value==c?' selected="selected"':"")+">"+a[f].DisplayText+"</option>")},_createDependedValuesUsingForm:function(b,a){if(!a)return{};for(var c=
+{},f=0;f<a.length;f++){var g=a[f],e=b.find("select[name="+g+"]");0>=e.length||(c[g]=e.val())}return c},_createRadioButtonListForField:function(b,a,c,f,g){var e=d("<div />").addClass("jtable-input jtable-radiobuttonlist-input");f=this._getOptionsForField(a,{record:f,source:g});d.each(f,function(f,g){var h=d('<div class=""></div>').addClass("jtable-radio-input").appendTo(e),l=d('<input type="radio" id="Edit-'+a+"-"+f+'" class="'+b.inputClass+'" name="'+a+'" value="'+g.Value+'"'+(g.Value==c+""?' checked="true"':
+"")+" />").appendTo(h),h=d("<span></span>").html(g.DisplayText).appendTo(h);!1!=b.setOnTextClick&&h.addClass("jtable-option-text-clickable").click(function(){l.is(":checked")||l.attr("checked",!0)})});return e},_getCheckBoxTextForFieldByValue:function(b,a){return this.options.fields[b].values[a]},_getIsCheckBoxSelectedForFieldByValue:function(b,a){return this._createCheckBoxStateArrayForFieldWithCaching(b)[1].Value.toString()==a.toString()},_getCheckBoxPropertiesForFieldByState:function(b,a){return this._createCheckBoxStateArrayForFieldWithCaching(b)[a?
+1:0]},_createCheckBoxStateArrayForFieldWithCaching:function(b){var a="checkbox_"+b;this._cache[a]||(this._cache[a]=this._createCheckBoxStateArrayForField(b));return this._cache[a]},_createCheckBoxStateArrayForField:function(b){var a=[],c=0;d.each(this.options.fields[b].values,function(f,b){2>c++&&a.push({Value:f,DisplayText:b})});return a},_makeCascadeDropDowns:function(b,a,c){var f=this;b.find("select").each(function(){var g=d(this),e=g.attr("name");if(e){var j=f.options.fields[e];j.dependsOn&&d.each(j.dependsOn,
+function(d,h){b.find("select[name="+h+"]").change(function(){var d={record:a,source:c,form:b,dependedValues:{}};d.dependedValues=f._createDependedValuesUsingForm(b,j.dependsOn);d=f._getOptionsForField(e,d);f._fillDropDownListWithOptions(g,d,void 0);g.change()})})}})},_updateRecordValuesFromForm:function(b,a){for(var c=0;c<this._fieldList.length;c++){var f=this._fieldList[c],g=this.options.fields[f];if(!1!=g.edit){var e=a.find('[name="'+f+'"]');if(!(0>=e.length))if("date"==g.type)if(e=e.val()){g=g.displayFormat||
+this.options.defaultDateFormat;try{var j=d.datepicker.parseDate(g,e);b[f]="/Date("+j.getTime()+")/"}catch(k){this._logWarn("Date format is incorrect for field "+f+": "+e),b[f]=void 0}}else this._logDebug("Date is empty for "+f),b[f]=void 0;else g.options&&"radiobutton"==g.type?(g=e.filter(":checked"),b[f]=g.length?g.val():void 0):b[f]=e.val()}}},_setEnabledOfDialogButton:function(b,a,c){b&&(!1!=a?b.removeAttr("disabled").removeClass("ui-state-disabled"):b.attr("disabled","disabled").addClass("ui-state-disabled"),
+c&&b.find("span").text(c))}})})(jQuery);
+(function(d){var b=d.hik.jtable.prototype._create;d.extend(!0,d.hik.jtable.prototype,{options:{recordAdded:function(){},messages:{addNewRecord:"+ Add new record"}},_$addRecordDiv:null,_create:function(){b.apply(this,arguments);this._createAddRecordDialogDiv()},_createAddRecordDialogDiv:function(){var a=this;a.options.actions.createAction&&(a._$addRecordDiv=d("<div />").appendTo(a._$mainContainer),a._$addRecordDiv.dialog({autoOpen:!1,show:a.options.dialogShowEffect,hide:a.options.dialogHideEffect,
+width:"auto",minWidth:"300",modal:!0,title:a.options.messages.addNewRecord,buttons:[{text:a.options.messages.cancel,click:function(){a._$addRecordDiv.dialog("close")}},{id:"AddRecordDialogSaveButton",text:a.options.messages.save,click:function(){var b=d("#AddRecordDialogSaveButton"),f=a._$addRecordDiv.find("form");!1!=a._trigger("formSubmitting",null,{form:f,formType:"create"})&&(a._setEnabledOfDialogButton(b,!1,a.options.messages.saving),a._saveAddRecordForm(f,b))}}],close:function(){var b=a._$addRecordDiv.find("form").first(),
+f=d("#AddRecordDialogSaveButton");a._trigger("formClosed",null,{form:b,formType:"create"});a._setEnabledOfDialogButton(f,!0,a.options.messages.save);b.remove()}}),a.options.addRecordButton||(a.options.addRecordButton=a._createAddRecordButton()),a.options.addRecordButton.click(function(b){b.preventDefault();a._showAddRecordForm()}))},_createAddRecordButton:function(){var a=d("<a></a>").attr("href","#").html(this.options.messages.addNewRecord);return d("<span></span>").addClass("jtable-add-record").append(a).appendTo(this._$bottomPanel.find(".jtable-right-area"))},
+showCreateForm:function(){this._showAddRecordForm()},addRecord:function(a){var b=this;a=d.extend({clientOnly:!1,animationsEnabled:b.options.animationsEnabled,url:b.options.actions.createAction,success:function(){},error:function(){}},a);a.record?a.clientOnly?(b._addRow(b._createRowFromRecord(a.record),{isNewRow:!0,animationsEnabled:a.animationsEnabled}),a.success()):b._submitFormUsingAjax(a.url,d.param(a.record),function(f){"OK"!=f.Result?(b._showError(f.Message),a.error(f)):f.Record?(b._onRecordAdded(f),
+b._addRow(b._createRowFromRecord(f.Record),{isNewRow:!0,animationsEnabled:a.animationsEnabled}),a.success(f)):(b._logError("Server must return the created Record object."),a.error(f))},function(){b._showError(b.options.messages.serverCommunicationError);a.error()}):b._logWarn("options parameter in addRecord method must contain a record property.")},_showAddRecordForm:function(){for(var a=d('<form id="jtable-create-form" class="jtable-dialog-form jtable-create-form" action="'+this.options.actions.createAction+
+'" method="POST"></form>'),b=0;b<this._fieldList.length;b++){var f=this._fieldList[b],g=this.options.fields[f];!(!0==g.key&&!0!=g.create)&&!1!=g.create&&("hidden"==g.type?a.append(this._createInputForHidden(f,g.defaultValue)):(g=d("<div />").addClass("jtable-input-field-container").appendTo(a),g.append(this._createInputLabelForRecordField(f)),g.append(this._createInputForRecordField({fieldName:f,formType:"create",form:a}))))}this._makeCascadeDropDowns(a,void 0,"create");this._$addRecordDiv.append(a).dialog("open");
this._trigger("formCreated",null,{form:a,formType:"create"})},_saveAddRecordForm:function(a,b){var f=this;a.data("submitting",!0);f._submitFormUsingAjax(a.attr("action"),a.serialize(),function(a){"OK"!=a.Result?(f._showError(a.Message),f._setEnabledOfDialogButton(b,!0,f.options.messages.save)):a.Record?(f._onRecordAdded(a),f._addRow(f._createRowFromRecord(a.Record),{isNewRow:!0}),f._$addRecordDiv.dialog("close")):(f._logError("Server must return the created Record object."),f._setEnabledOfDialogButton(b,
!0,f.options.messages.save))},function(){f._showError(f.options.messages.serverCommunicationError);f._setEnabledOfDialogButton(b,!0,f.options.messages.save)})},_onRecordAdded:function(a){this._trigger("recordAdded",null,{record:a.Record,serverResponse:a})}})})(jQuery);
-(function(c){var b=c.hik.jtable.prototype._create,a=c.hik.jtable.prototype._addColumnsToHeaderRow,d=c.hik.jtable.prototype._addCellsToRowUsingRecord;c.extend(!0,c.hik.jtable.prototype,{options:{recordUpdated:function(){},rowUpdated:function(){},messages:{editRecord:"Edit Record"}},_$editDiv:null,_$editingRow:null,_create:function(){b.apply(this,arguments);this._createEditDialogDiv()},_createEditDialogDiv:function(){var a=this;a._$editDiv=c("<div></div>").appendTo(a._$mainContainer);a._$editDiv.dialog({autoOpen:!1,
-show:a.options.dialogShowEffect,hide:a.options.dialogHideEffect,width:"auto",minWidth:"300",modal:!0,title:a.options.messages.editRecord,buttons:[{text:a.options.messages.cancel,click:function(){a._$editDiv.dialog("close")}},{id:"EditDialogSaveButton",text:a.options.messages.save,click:function(){var b=a._$editDiv.find("#EditDialogSaveButton"),e=a._$editDiv.find("form");!1!=a._trigger("formSubmitting",null,{form:e,formType:"edit",row:a._$editingRow})&&(a._setEnabledOfDialogButton(b,!1,a.options.messages.saving),
-a._saveEditForm(e,b))}}],close:function(){var b=a._$editDiv.find("form:first"),e=c("#EditDialogSaveButton");a._trigger("formClosed",null,{form:b,formType:"edit",row:a._$editingRow});a._setEnabledOfDialogButton(e,!0,a.options.messages.save);b.remove()}})},updateRecord:function(a){var b=this;a=c.extend({clientOnly:!1,animationsEnabled:b.options.animationsEnabled,url:b.options.actions.updateAction,success:function(){},error:function(){}},a);if(a.record){var e=b._getKeyValueOfRecord(a.record);if(void 0==
-e||null==e)b._logWarn("options parameter in updateRecord method must contain a record that contains the key field property.");else{var h=b.getRowByKey(e);null==h?b._logWarn("Can not found any row by key: "+e):a.clientOnly?(c.extend(h.data("record"),a.record),b._updateRowTexts(h),b._onRecordUpdated(h,null),a.animationsEnabled&&b._showUpdateAnimationForRow(h),a.success()):b._submitFormUsingAjax(a.url,c.param(a.record),function(e){"OK"!=e.Result?(b._showError(e.Message),a.error(e)):(c.extend(h.data("record"),
-a.record),b._updateRecordValuesFromServerResponse(h.data("record"),e),b._updateRowTexts(h),b._onRecordUpdated(h,e),a.animationsEnabled&&b._showUpdateAnimationForRow(h),a.success(e))},function(){b._showError(b.options.messages.serverCommunicationError);a.error()})}}else b._logWarn("options parameter in updateRecord method must contain a record property.")},_addColumnsToHeaderRow:function(b){a.apply(this,arguments);void 0!=this.options.actions.updateAction&&b.append(this._createEmptyCommandHeader())},
-_addCellsToRowUsingRecord:function(a){var b=this;d.apply(this,arguments);if(void 0!=b.options.actions.updateAction){var e=c("<span></span>").html(b.options.messages.editRecord),e=c('<button title="'+b.options.messages.editRecord+'"></button>').addClass("jtable-command-button jtable-edit-command-button").append(e).click(function(e){e.preventDefault();e.stopPropagation();b._showEditForm(a)});c("<td></td>").addClass("jtable-command-column").append(e).appendTo(a)}},_showEditForm:function(a){for(var b=
-a.data("record"),e=c('<form id="jtable-edit-form" class="jtable-dialog-form jtable-edit-form" action="'+this.options.actions.updateAction+'" method="POST"></form>'),h=0;h<this._fieldList.length;h++){var d=this._fieldList[h],j=this.options.fields[d],k=b[d];if(!0==j.key)if(!0!=j.edit){e.append(this._createInputForHidden(d,k));continue}else e.append(this._createInputForHidden("jtRecordKey",k));!1!=j.edit&&("hidden"==j.type?e.append(this._createInputForHidden(d,k)):(j=c('<div class="jtable-input-field-container"></div>').appendTo(e),
-j.append(this._createInputLabelForRecordField(d)),k=this._getValueForRecordField(b,d),j.append(this._createInputForRecordField({fieldName:d,value:k,record:b,formType:"edit",form:e}))))}this._makeCascadeDropDowns(e,b,"edit");this._$editingRow=a;this._$editDiv.append(e).dialog("open");this._trigger("formCreated",null,{form:e,formType:"edit",record:b,row:a})},_saveEditForm:function(a,b){var e=this;e._submitFormUsingAjax(a.attr("action"),a.serialize(),function(c){if("OK"!=c.Result)e._showError(c.Message),
-e._setEnabledOfDialogButton(b,!0,e.options.messages.save);else{var d=e._$editingRow.data("record");e._updateRecordValuesFromForm(d,a);e._updateRecordValuesFromServerResponse(d,c);e._updateRowTexts(e._$editingRow);e._$editingRow.attr("data-record-key",e._getKeyValueOfRecord(d));e._onRecordUpdated(e._$editingRow,c);e.options.animationsEnabled&&e._showUpdateAnimationForRow(e._$editingRow);e._$editDiv.dialog("close")}},function(){e._showError(e.options.messages.serverCommunicationError);e._setEnabledOfDialogButton(b,
-!0,e.options.messages.save)})},_updateRecordValuesFromServerResponse:function(a,b){b&&b.Record&&c.extend(!0,a,b.Record)},_getValueForRecordField:function(a,b){var e=this.options.fields[b],c=a[b];return"date"==e.type?this._getDisplayTextForDateRecordField(e,c):c},_updateRowTexts:function(a){for(var b=a.data("record"),e=a.find("td"),c=0;c<this._columnList.length;c++){var d=this._getDisplayTextForRecordField(b,this._columnList[c]);e.eq(this._firstDataColumnOffset+c).html(d||"")}this._onRowUpdated(a)},
-_showUpdateAnimationForRow:function(a){a.stop(!0,!0).addClass("jtable-row-updated","slow","",function(){a.removeClass("jtable-row-updated",5E3)})},_onRowUpdated:function(a){this._trigger("rowUpdated",null,{row:a,record:a.data("record")})},_onRecordUpdated:function(a,b){this._trigger("recordUpdated",null,{record:a.data("record"),row:a,serverResponse:b})}})})(jQuery);
-(function(c){var b=c.hik.jtable.prototype._create,a=c.hik.jtable.prototype._addColumnsToHeaderRow,d=c.hik.jtable.prototype._addCellsToRowUsingRecord;c.extend(!0,c.hik.jtable.prototype,{options:{deleteConfirmation:!0,recordDeleted:function(){},messages:{deleteConfirmation:"This record will be deleted. Are you sure?",deleteText:"Delete",deleting:"Deleting",canNotDeletedRecords:"Can not delete {0} of {1} records!",deleteProggress:"Deleting {0} of {1} records, processing..."}},_$deleteRecordDiv:null,
-_$deletingRow:null,_create:function(){b.apply(this,arguments);this._createDeleteDialogDiv()},_createDeleteDialogDiv:function(){var a=this;a._$deleteRecordDiv=c('<div><p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span><span class="jtable-delete-confirm-message"></span></p></div>').appendTo(a._$mainContainer);a._$deleteRecordDiv.dialog({autoOpen:!1,show:a.options.dialogShowEffect,hide:a.options.dialogHideEffect,modal:!0,title:a.options.messages.areYouSure,buttons:[{text:a.options.messages.cancel,
-click:function(){a._$deleteRecordDiv.dialog("close")}},{id:"DeleteDialogButton",text:a.options.messages.deleteText,click:function(){var b=c("#DeleteDialogButton");a._setEnabledOfDialogButton(b,!1,a.options.messages.deleting);a._deleteRecordFromServer(a._$deletingRow,function(){a._removeRowsFromTableWithAnimation(a._$deletingRow);a._$deleteRecordDiv.dialog("close")},function(e){a._showError(e);a._setEnabledOfDialogButton(b,!0,a.options.messages.deleteText)})}}],close:function(){var b=c("#DeleteDialogButton");
-a._setEnabledOfDialogButton(b,!0,a.options.messages.deleteText)}})},deleteRows:function(a){var b=this;if(0>=a.length)b._logWarn("No rows specified to jTable deleteRows method.");else if(b._isBusy())b._logWarn("Can not delete rows since jTable is busy!");else if(1==a.length)b._deleteRecordFromServer(a,function(){b._removeRowsFromTableWithAnimation(a)},function(a){b._showError(a)});else{b._showBusy(b._formatString(b.options.messages.deleteProggress,0,a.length));var e=0,d=function(){var e=a.filter(".jtable-row-ready-to-remove");
-e.length<a.length&&b._showError(b._formatString(b.options.messages.canNotDeletedRecords,a.length-e.length,a.length));0<e.length&&b._removeRowsFromTableWithAnimation(e);b._hideBusy()},l=0;a.each(function(){var j=c(this);b._deleteRecordFromServer(j,function(){++l;++e;j.addClass("jtable-row-ready-to-remove");b._showBusy(b._formatString(b.options.messages.deleteProggress,l,a.length));e>=a.length&&d()},function(){++e;e>=a.length&&d()})})}},deleteRecord:function(a){var b=this;a=c.extend({clientOnly:!1,
-animationsEnabled:b.options.animationsEnabled,url:b.options.actions.deleteAction,success:function(){},error:function(){}},a);if(void 0==a.key)b._logWarn("options parameter in deleteRecord method must contain a key property.");else{var e=b.getRowByKey(a.key);null==e?b._logWarn("Can not found any row by key: "+a.key):a.clientOnly?(b._removeRowsFromTableWithAnimation(e,a.animationsEnabled),a.success()):b._deleteRecordFromServer(e,function(c){b._removeRowsFromTableWithAnimation(e,a.animationsEnabled);
-a.success(c)},function(e){b._showError(e);a.error(e)},a.url)}},_addColumnsToHeaderRow:function(b){a.apply(this,arguments);void 0!=this.options.actions.deleteAction&&b.append(this._createEmptyCommandHeader())},_addCellsToRowUsingRecord:function(a){d.apply(this,arguments);var b=this;if(void 0!=b.options.actions.deleteAction){var e=c("<span></span>").html(b.options.messages.deleteText),e=c('<button title="'+b.options.messages.deleteText+'"></button>').addClass("jtable-command-button jtable-delete-command-button").append(e).click(function(e){e.preventDefault();
-e.stopPropagation();b._deleteButtonClickedForRow(a)});c("<td></td>").addClass("jtable-command-column").append(e).appendTo(a)}},_deleteButtonClickedForRow:function(a){var b=this,e,d=b.options.messages.deleteConfirmation;if(c.isFunction(b.options.deleteConfirmation)){e={row:a,record:a.data("record"),deleteConfirm:!0,deleteConfirmMessage:d,cancel:!1,cancelMessage:null};b.options.deleteConfirmation(e);if(e.cancel){e.cancelMessage&&b._showError(e.cancelMessage);return}d=e.deleteConfirmMessage;e=e.deleteConfirm}else e=
-b.options.deleteConfirmation;!1!=e?(b._$deleteRecordDiv.find(".jtable-delete-confirm-message").html(d),b._showDeleteDialog(a)):b._deleteRecordFromServer(a,function(){b._removeRowsFromTableWithAnimation(a)},function(a){b._showError(a)})},_showDeleteDialog:function(a){this._$deletingRow=a;this._$deleteRecordDiv.dialog("open")},_deleteRecordFromServer:function(a,b,e,c){var d=this;if(!0!=a.data("deleting")){a.data("deleting",!0);var j={};j[d._keyField]=d._getKeyValueOfRecord(a.data("record"));this._ajax({url:c||
-d.options.actions.deleteAction,data:j,success:function(c){"OK"!=c.Result?(a.data("deleting",!1),e&&e(c.Message)):(d._trigger("recordDeleted",null,{record:a.data("record"),row:a,serverResponse:c}),b&&b(c))},error:function(){a.data("deleting",!1);e&&e(d.options.messages.serverCommunicationError)}})}},_removeRowsFromTableWithAnimation:function(a,b){var e=this;void 0==b&&(b=e.options.animationsEnabled);b?a.stop(!0,!0).addClass("jtable-row-deleting","slow","").promise().done(function(){e._removeRowsFromTable(a,
-"deleted")}):e._removeRowsFromTable(a,"deleted")}})})(jQuery);
-(function(c){var b=c.hik.jtable.prototype._create,a=c.hik.jtable.prototype._addColumnsToHeaderRow,d=c.hik.jtable.prototype._addCellsToRowUsingRecord,f=c.hik.jtable.prototype._onLoadingRecords,g=c.hik.jtable.prototype._onRecordsLoaded,e=c.hik.jtable.prototype._onRowsRemoved;c.extend(!0,c.hik.jtable.prototype,{options:{selecting:!1,multiselect:!1,selectingCheckboxes:!1,selectOnRowClick:!0,selectionChanged:function(){}},_selectedRecordIdsBeforeLoad:null,_$selectAllCheckbox:null,_shiftKeyDown:!1,_create:function(){this.options.selecting&&
-this.options.selectingCheckboxes&&++this._firstDataColumnOffset;this._bindKeyboardEvents();b.apply(this,arguments)},_bindKeyboardEvents:function(){var a=this;c(document).keydown(function(b){switch(b.which){case 16:a._shiftKeyDown=!0}}).keyup(function(b){switch(b.which){case 16:a._shiftKeyDown=!1}})},selectedRows:function(){return this._getSelectedRows()},selectRows:function(a){this._selectRows(a);this._onSelectionChanged()},_addColumnsToHeaderRow:function(b){this.options.selecting&&this.options.selectingCheckboxes&&
-(this.options.multiselect?b.append(this._createSelectAllHeader()):b.append(this._createEmptyCommandHeader()));a.apply(this,arguments)},_addCellsToRowUsingRecord:function(a){this.options.selecting&&this._makeRowSelectable(a);d.apply(this,arguments)},_onLoadingRecords:function(){this._storeSelectionList();f.apply(this,arguments)},_onRecordsLoaded:function(){this._restoreSelectionList();g.apply(this,arguments)},_onRowsRemoved:function(a,b){"reloading"!=b&&(this.options.selecting&&0<a.filter(".jtable-row-selected").length)&&
-this._onSelectionChanged();e.apply(this,arguments)},_createSelectAllHeader:function(){var a=this,b=c('<th class=""></th>').addClass("jtable-command-column-header jtable-column-header-selecting"),e=c("<div />").addClass("jtable-column-header-container").appendTo(b);a._$selectAllCheckbox=c('<input type="checkbox" />').appendTo(e).click(function(){if(0>=a._$tableRows.length)a._$selectAllCheckbox.attr("checked",!1);else{var b=a._$tableBody.find("tr.jtable-data-row");a._$selectAllCheckbox.is(":checked")?
-a._selectRows(b):a._deselectRows(b);a._onSelectionChanged()}});return b},_storeSelectionList:function(){var a=this;a.options.selecting&&(a._selectedRecordIdsBeforeLoad=[],a._getSelectedRows().each(function(){a._selectedRecordIdsBeforeLoad.push(a._getKeyValueOfRecord(c(this).data("record")))}))},_restoreSelectionList:function(){if(this.options.selecting){for(var a=0,b=0;b<this._$tableRows.length;++b){var e=this._getKeyValueOfRecord(this._$tableRows[b].data("record"));-1<c.inArray(e,this._selectedRecordIdsBeforeLoad)&&
-(this._selectRows(this._$tableRows[b]),++a)}0<this._selectedRecordIdsBeforeLoad.length&&this._selectedRecordIdsBeforeLoad.length!=a&&this._onSelectionChanged();this._selectedRecordIdsBeforeLoad=[];this._refreshSelectAllCheckboxState()}},_getSelectedRows:function(){return this._$tableBody.find(".jtable-row-selected")},_makeRowSelectable:function(a){var b=this;b.options.selectOnRowClick&&a.click(function(){b._invertRowSelection(a)});if(b.options.selectingCheckboxes){var e=c("<td></td>").addClass("jtable-selecting-column"),
-d=c('<input type="checkbox" />').appendTo(e);b.options.selectOnRowClick||d.click(function(){b._invertRowSelection(a)});a.append(e)}},_invertRowSelection:function(a){if(a.hasClass("jtable-row-selected"))this._deselectRows(a);else if(this._shiftKeyDown){var b=this._findRowIndex(a),e=this._findFirstSelectedRowIndexBeforeIndex(b)+1;0<e&&e<b?this._selectRows(this._$tableBody.find("tr").slice(e,b+1)):(e=this._findFirstSelectedRowIndexAfterIndex(b)-1,e>b?this._selectRows(this._$tableBody.find("tr").slice(b,
+(function(d){var b=d.hik.jtable.prototype._create,a=d.hik.jtable.prototype._addColumnsToHeaderRow,c=d.hik.jtable.prototype._addCellsToRowUsingRecord;d.extend(!0,d.hik.jtable.prototype,{options:{recordUpdated:function(){},rowUpdated:function(){},messages:{editRecord:"Edit Record"}},_$editDiv:null,_$editingRow:null,_create:function(){b.apply(this,arguments);this._createEditDialogDiv()},_createEditDialogDiv:function(){var a=this;a._$editDiv=d("<div></div>").appendTo(a._$mainContainer);a._$editDiv.dialog({autoOpen:!1,
+show:a.options.dialogShowEffect,hide:a.options.dialogHideEffect,width:"auto",minWidth:"300",modal:!0,title:a.options.messages.editRecord,buttons:[{text:a.options.messages.cancel,click:function(){a._$editDiv.dialog("close")}},{id:"EditDialogSaveButton",text:a.options.messages.save,click:function(){if(a._$editingRow.hasClass("jtable-row-removed"))a._$editDiv.dialog("close");else{var b=a._$editDiv.find("#EditDialogSaveButton"),e=a._$editDiv.find("form");!1!=a._trigger("formSubmitting",null,{form:e,formType:"edit",
+row:a._$editingRow})&&(a._setEnabledOfDialogButton(b,!1,a.options.messages.saving),a._saveEditForm(e,b))}}}],close:function(){var b=a._$editDiv.find("form:first"),e=d("#EditDialogSaveButton");a._trigger("formClosed",null,{form:b,formType:"edit",row:a._$editingRow});a._setEnabledOfDialogButton(e,!0,a.options.messages.save);b.remove()}})},updateRecord:function(a){var b=this;a=d.extend({clientOnly:!1,animationsEnabled:b.options.animationsEnabled,url:b.options.actions.updateAction,success:function(){},
+error:function(){}},a);if(a.record){var e=b._getKeyValueOfRecord(a.record);if(void 0==e||null==e)b._logWarn("options parameter in updateRecord method must contain a record that contains the key field property.");else{var c=b.getRowByKey(e);null==c?b._logWarn("Can not found any row by key: "+e):a.clientOnly?(d.extend(c.data("record"),a.record),b._updateRowTexts(c),b._onRecordUpdated(c,null),a.animationsEnabled&&b._showUpdateAnimationForRow(c),a.success()):b._submitFormUsingAjax(a.url,d.param(a.record),
+function(e){"OK"!=e.Result?(b._showError(e.Message),a.error(e)):(d.extend(c.data("record"),a.record),b._updateRecordValuesFromServerResponse(c.data("record"),e),b._updateRowTexts(c),b._onRecordUpdated(c,e),a.animationsEnabled&&b._showUpdateAnimationForRow(c),a.success(e))},function(){b._showError(b.options.messages.serverCommunicationError);a.error()})}}else b._logWarn("options parameter in updateRecord method must contain a record property.")},_addColumnsToHeaderRow:function(b){a.apply(this,arguments);
+void 0!=this.options.actions.updateAction&&b.append(this._createEmptyCommandHeader())},_addCellsToRowUsingRecord:function(a){var b=this;c.apply(this,arguments);if(void 0!=b.options.actions.updateAction){var e=d("<span></span>").html(b.options.messages.editRecord),e=d('<button title="'+b.options.messages.editRecord+'"></button>').addClass("jtable-command-button jtable-edit-command-button").append(e).click(function(e){e.preventDefault();e.stopPropagation();b._showEditForm(a)});d("<td></td>").addClass("jtable-command-column").append(e).appendTo(a)}},
+_showEditForm:function(a){for(var b=a.data("record"),e=d('<form id="jtable-edit-form" class="jtable-dialog-form jtable-edit-form" action="'+this.options.actions.updateAction+'" method="POST"></form>'),c=0;c<this._fieldList.length;c++){var k=this._fieldList[c],h=this.options.fields[k],l=b[k];if(!0==h.key)if(!0!=h.edit){e.append(this._createInputForHidden(k,l));continue}else e.append(this._createInputForHidden("jtRecordKey",l));!1!=h.edit&&("hidden"==h.type?e.append(this._createInputForHidden(k,l)):
+(h=d('<div class="jtable-input-field-container"></div>').appendTo(e),h.append(this._createInputLabelForRecordField(k)),l=this._getValueForRecordField(b,k),h.append(this._createInputForRecordField({fieldName:k,value:l,record:b,formType:"edit",form:e}))))}this._makeCascadeDropDowns(e,b,"edit");this._$editingRow=a;this._$editDiv.append(e).dialog("open");this._trigger("formCreated",null,{form:e,formType:"edit",record:b,row:a})},_saveEditForm:function(a,b){var e=this;e._submitFormUsingAjax(a.attr("action"),
+a.serialize(),function(c){if("OK"!=c.Result)e._showError(c.Message),e._setEnabledOfDialogButton(b,!0,e.options.messages.save);else{var d=e._$editingRow.data("record");e._updateRecordValuesFromForm(d,a);e._updateRecordValuesFromServerResponse(d,c);e._updateRowTexts(e._$editingRow);e._$editingRow.attr("data-record-key",e._getKeyValueOfRecord(d));e._onRecordUpdated(e._$editingRow,c);e.options.animationsEnabled&&e._showUpdateAnimationForRow(e._$editingRow);e._$editDiv.dialog("close")}},function(){e._showError(e.options.messages.serverCommunicationError);
+e._setEnabledOfDialogButton(b,!0,e.options.messages.save)})},_updateRecordValuesFromServerResponse:function(a,b){b&&b.Record&&d.extend(!0,a,b.Record)},_getValueForRecordField:function(a,b){var e=this.options.fields[b],c=a[b];return"date"==e.type?this._getDisplayTextForDateRecordField(e,c):c},_updateRowTexts:function(a){for(var b=a.data("record"),e=a.find("td"),c=0;c<this._columnList.length;c++){var d=this._getDisplayTextForRecordField(b,this._columnList[c]);e.eq(this._firstDataColumnOffset+c).html(d||
+"")}this._onRowUpdated(a)},_showUpdateAnimationForRow:function(a){a.stop(!0,!0).addClass("jtable-row-updated","slow","",function(){a.removeClass("jtable-row-updated",5E3)})},_onRowUpdated:function(a){this._trigger("rowUpdated",null,{row:a,record:a.data("record")})},_onRecordUpdated:function(a,b){this._trigger("recordUpdated",null,{record:a.data("record"),row:a,serverResponse:b})}})})(jQuery);
+(function(d){var b=d.hik.jtable.prototype._create,a=d.hik.jtable.prototype._addColumnsToHeaderRow,c=d.hik.jtable.prototype._addCellsToRowUsingRecord;d.extend(!0,d.hik.jtable.prototype,{options:{deleteConfirmation:!0,recordDeleted:function(){},messages:{deleteConfirmation:"This record will be deleted. Are you sure?",deleteText:"Delete",deleting:"Deleting",canNotDeletedRecords:"Can not delete {0} of {1} records!",deleteProggress:"Deleting {0} of {1} records, processing..."}},_$deleteRecordDiv:null,
+_$deletingRow:null,_create:function(){b.apply(this,arguments);this._createDeleteDialogDiv()},_createDeleteDialogDiv:function(){var a=this;a._$deleteRecordDiv=d('<div><p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span><span class="jtable-delete-confirm-message"></span></p></div>').appendTo(a._$mainContainer);a._$deleteRecordDiv.dialog({autoOpen:!1,show:a.options.dialogShowEffect,hide:a.options.dialogHideEffect,modal:!0,title:a.options.messages.areYouSure,buttons:[{text:a.options.messages.cancel,
+click:function(){a._$deleteRecordDiv.dialog("close")}},{id:"DeleteDialogButton",text:a.options.messages.deleteText,click:function(){if(a._$deletingRow.hasClass("jtable-row-removed"))a._$deleteRecordDiv.dialog("close");else{var b=d("#DeleteDialogButton");a._setEnabledOfDialogButton(b,!1,a.options.messages.deleting);a._deleteRecordFromServer(a._$deletingRow,function(){a._removeRowsFromTableWithAnimation(a._$deletingRow);a._$deleteRecordDiv.dialog("close")},function(e){a._showError(e);a._setEnabledOfDialogButton(b,
+!0,a.options.messages.deleteText)})}}}],close:function(){var b=d("#DeleteDialogButton");a._setEnabledOfDialogButton(b,!0,a.options.messages.deleteText)}})},deleteRows:function(a){var b=this;if(0>=a.length)b._logWarn("No rows specified to jTable deleteRows method.");else if(b._isBusy())b._logWarn("Can not delete rows since jTable is busy!");else if(1==a.length)b._deleteRecordFromServer(a,function(){b._removeRowsFromTableWithAnimation(a)},function(a){b._showError(a)});else{b._showBusy(b._formatString(b.options.messages.deleteProggress,
+0,a.length));var e=0,c=function(){var e=a.filter(".jtable-row-ready-to-remove");e.length<a.length&&b._showError(b._formatString(b.options.messages.canNotDeletedRecords,a.length-e.length,a.length));0<e.length&&b._removeRowsFromTableWithAnimation(e);b._hideBusy()},k=0;a.each(function(){var h=d(this);b._deleteRecordFromServer(h,function(){++k;++e;h.addClass("jtable-row-ready-to-remove");b._showBusy(b._formatString(b.options.messages.deleteProggress,k,a.length));e>=a.length&&c()},function(){++e;e>=a.length&&
+c()})})}},deleteRecord:function(a){var b=this;a=d.extend({clientOnly:!1,animationsEnabled:b.options.animationsEnabled,url:b.options.actions.deleteAction,success:function(){},error:function(){}},a);if(void 0==a.key)b._logWarn("options parameter in deleteRecord method must contain a key property.");else{var e=b.getRowByKey(a.key);null==e?b._logWarn("Can not found any row by key: "+a.key):a.clientOnly?(b._removeRowsFromTableWithAnimation(e,a.animationsEnabled),a.success()):b._deleteRecordFromServer(e,
+function(c){b._removeRowsFromTableWithAnimation(e,a.animationsEnabled);a.success(c)},function(e){b._showError(e);a.error(e)},a.url)}},_addColumnsToHeaderRow:function(b){a.apply(this,arguments);void 0!=this.options.actions.deleteAction&&b.append(this._createEmptyCommandHeader())},_addCellsToRowUsingRecord:function(a){c.apply(this,arguments);var b=this;if(void 0!=b.options.actions.deleteAction){var e=d("<span></span>").html(b.options.messages.deleteText),e=d('<button title="'+b.options.messages.deleteText+
+'"></button>').addClass("jtable-command-button jtable-delete-command-button").append(e).click(function(e){e.preventDefault();e.stopPropagation();b._deleteButtonClickedForRow(a)});d("<td></td>").addClass("jtable-command-column").append(e).appendTo(a)}},_deleteButtonClickedForRow:function(a){var b=this,e,c=b.options.messages.deleteConfirmation;if(d.isFunction(b.options.deleteConfirmation)){e={row:a,record:a.data("record"),deleteConfirm:!0,deleteConfirmMessage:c,cancel:!1,cancelMessage:null};b.options.deleteConfirmation(e);
+if(e.cancel){e.cancelMessage&&b._showError(e.cancelMessage);return}c=e.deleteConfirmMessage;e=e.deleteConfirm}else e=b.options.deleteConfirmation;!1!=e?(b._$deleteRecordDiv.find(".jtable-delete-confirm-message").html(c),b._showDeleteDialog(a)):b._deleteRecordFromServer(a,function(){b._removeRowsFromTableWithAnimation(a)},function(a){b._showError(a)})},_showDeleteDialog:function(a){this._$deletingRow=a;this._$deleteRecordDiv.dialog("open")},_deleteRecordFromServer:function(a,b,e,c){var d=this;if(!0!=
+a.data("deleting")){a.data("deleting",!0);var h={};h[d._keyField]=d._getKeyValueOfRecord(a.data("record"));this._ajax({url:c||d.options.actions.deleteAction,data:h,success:function(c){"OK"!=c.Result?(a.data("deleting",!1),e&&e(c.Message)):(d._trigger("recordDeleted",null,{record:a.data("record"),row:a,serverResponse:c}),b&&b(c))},error:function(){a.data("deleting",!1);e&&e(d.options.messages.serverCommunicationError)}})}},_removeRowsFromTableWithAnimation:function(a,b){var e=this;void 0==b&&(b=e.options.animationsEnabled);
+b?a.stop(!0,!0).addClass("jtable-row-deleting","slow","").promise().done(function(){e._removeRowsFromTable(a,"deleted")}):e._removeRowsFromTable(a,"deleted")}})})(jQuery);
+(function(d){var b=d.hik.jtable.prototype._create,a=d.hik.jtable.prototype._addColumnsToHeaderRow,c=d.hik.jtable.prototype._addCellsToRowUsingRecord,f=d.hik.jtable.prototype._onLoadingRecords,g=d.hik.jtable.prototype._onRecordsLoaded,e=d.hik.jtable.prototype._onRowsRemoved;d.extend(!0,d.hik.jtable.prototype,{options:{selecting:!1,multiselect:!1,selectingCheckboxes:!1,selectOnRowClick:!0,selectionChanged:function(){}},_selectedRecordIdsBeforeLoad:null,_$selectAllCheckbox:null,_shiftKeyDown:!1,_create:function(){this.options.selecting&&
+this.options.selectingCheckboxes&&++this._firstDataColumnOffset;this._bindKeyboardEvents();b.apply(this,arguments)},_bindKeyboardEvents:function(){var a=this;d(document).keydown(function(b){switch(b.which){case 16:a._shiftKeyDown=!0}}).keyup(function(b){switch(b.which){case 16:a._shiftKeyDown=!1}})},selectedRows:function(){return this._getSelectedRows()},selectRows:function(a){this._selectRows(a);this._onSelectionChanged()},_addColumnsToHeaderRow:function(b){this.options.selecting&&this.options.selectingCheckboxes&&
+(this.options.multiselect?b.append(this._createSelectAllHeader()):b.append(this._createEmptyCommandHeader()));a.apply(this,arguments)},_addCellsToRowUsingRecord:function(a){this.options.selecting&&this._makeRowSelectable(a);c.apply(this,arguments)},_onLoadingRecords:function(){this._storeSelectionList();f.apply(this,arguments)},_onRecordsLoaded:function(){this._restoreSelectionList();g.apply(this,arguments)},_onRowsRemoved:function(a,b){"reloading"!=b&&(this.options.selecting&&0<a.filter(".jtable-row-selected").length)&&
+this._onSelectionChanged();e.apply(this,arguments)},_createSelectAllHeader:function(){var a=this,b=d('<th class=""></th>').addClass("jtable-command-column-header jtable-column-header-selecting"),e=d("<div />").addClass("jtable-column-header-container").appendTo(b);a._$selectAllCheckbox=d('<input type="checkbox" />').appendTo(e).click(function(){if(0>=a._$tableRows.length)a._$selectAllCheckbox.attr("checked",!1);else{var b=a._$tableBody.find("tr.jtable-data-row");a._$selectAllCheckbox.is(":checked")?
+a._selectRows(b):a._deselectRows(b);a._onSelectionChanged()}});return b},_storeSelectionList:function(){var a=this;a.options.selecting&&(a._selectedRecordIdsBeforeLoad=[],a._getSelectedRows().each(function(){a._selectedRecordIdsBeforeLoad.push(a._getKeyValueOfRecord(d(this).data("record")))}))},_restoreSelectionList:function(){if(this.options.selecting){for(var a=0,b=0;b<this._$tableRows.length;++b){var e=this._getKeyValueOfRecord(this._$tableRows[b].data("record"));-1<d.inArray(e,this._selectedRecordIdsBeforeLoad)&&
+(this._selectRows(this._$tableRows[b]),++a)}0<this._selectedRecordIdsBeforeLoad.length&&this._selectedRecordIdsBeforeLoad.length!=a&&this._onSelectionChanged();this._selectedRecordIdsBeforeLoad=[];this._refreshSelectAllCheckboxState()}},_getSelectedRows:function(){return this._$tableBody.find(".jtable-row-selected")},_makeRowSelectable:function(a){var b=this;b.options.selectOnRowClick&&a.click(function(){b._invertRowSelection(a)});if(b.options.selectingCheckboxes){var e=d("<td></td>").addClass("jtable-selecting-column"),
+c=d('<input type="checkbox" />').appendTo(e);b.options.selectOnRowClick||c.click(function(){b._invertRowSelection(a)});a.append(e)}},_invertRowSelection:function(a){if(a.hasClass("jtable-row-selected"))this._deselectRows(a);else if(this._shiftKeyDown){var b=this._findRowIndex(a),e=this._findFirstSelectedRowIndexBeforeIndex(b)+1;0<e&&e<b?this._selectRows(this._$tableBody.find("tr").slice(e,b+1)):(e=this._findFirstSelectedRowIndexAfterIndex(b)-1,e>b?this._selectRows(this._$tableBody.find("tr").slice(b,
e+1)):this._selectRows(a))}else this._selectRows(a);this._onSelectionChanged()},_findFirstSelectedRowIndexBeforeIndex:function(a){for(a-=1;0<=a;--a)if(this._$tableRows[a].hasClass("jtable-row-selected"))return a;return-1},_findFirstSelectedRowIndexAfterIndex:function(a){for(a+=1;a<this._$tableRows.length;++a)if(this._$tableRows[a].hasClass("jtable-row-selected"))return a;return-1},_selectRows:function(a){this.options.multiselect||this._deselectRows(this._getSelectedRows());a.addClass("jtable-row-selected");
this.options.selectingCheckboxes&&a.find("td.jtable-selecting-column input").attr("checked",!0);this._refreshSelectAllCheckboxState()},_deselectRows:function(a){a.removeClass("jtable-row-selected");this.options.selectingCheckboxes&&a.find("td.jtable-selecting-column input").removeAttr("checked");this._refreshSelectAllCheckboxState()},_refreshSelectAllCheckboxState:function(){if(this.options.selectingCheckboxes&&this.options.multiselect){var a=this._$tableRows.length,b=this._getSelectedRows().length;
0==b?(this._$selectAllCheckbox.prop("indeterminate",!1),this._$selectAllCheckbox.attr("checked",!1)):b==a?(this._$selectAllCheckbox.prop("indeterminate",!1),this._$selectAllCheckbox.attr("checked",!0)):(this._$selectAllCheckbox.attr("checked",!1),this._$selectAllCheckbox.prop("indeterminate",!0))}},_onSelectionChanged:function(){this._trigger("selectionChanged",null,{})}})})(jQuery);
-(function(c){var b=c.hik.jtable.prototype.load,a=c.hik.jtable.prototype._create,d=c.hik.jtable.prototype._createRecordLoadUrl,f=c.hik.jtable.prototype._addRowToTable,g=c.hik.jtable.prototype._addRow,e=c.hik.jtable.prototype._removeRowsFromTable,h=c.hik.jtable.prototype._onRecordsLoaded;c.extend(!0,c.hik.jtable.prototype,{options:{paging:!1,pageSize:10,messages:{pagingInfo:"Showing {0} to {1} of {2} records"}},_$pagingListArea:null,_totalRecordCount:0,_currentPageNo:1,_create:function(){a.apply(this,
-arguments);this._createPageListArea()},_createPageListArea:function(){this.options.paging&&(this._$pagingListArea=c("<span></span>").addClass("jtable-page-list").prependTo(this._$bottomPanel.find(".jtable-left-area")))},load:function(){this._currentPageNo=1;b.apply(this,arguments)},_createRecordLoadUrl:function(){var a=d.apply(this,arguments);return a=this._addPagingInfoToUrl(a,this._currentPageNo)},_addRowToTable:function(a,b,e){e&&this.options.paging?this._reloadTable():f.apply(this,arguments)},
-_addRow:function(a,b){b&&b.isNewRow&&this.options.paging?this._reloadTable():g.apply(this,arguments)},_removeRowsFromTable:function(a,b){e.apply(this,arguments);this.options.paging&&(0>=this._$tableRows.length&&1<this._currentPageNo&&--this._currentPageNo,this._reloadTable())},_onRecordsLoaded:function(a){this._totalRecordCount=a.TotalRecordCount;this._createPagingList();h.apply(this,arguments)},_addPagingInfoToUrl:function(a,b){if(!this.options.paging)return a;var e=(b-1)*this.options.pageSize,c=
+(function(d){var b=d.hik.jtable.prototype.load,a=d.hik.jtable.prototype._create,c=d.hik.jtable.prototype._createRecordLoadUrl,f=d.hik.jtable.prototype._addRowToTable,g=d.hik.jtable.prototype._addRow,e=d.hik.jtable.prototype._removeRowsFromTable,j=d.hik.jtable.prototype._onRecordsLoaded;d.extend(!0,d.hik.jtable.prototype,{options:{paging:!1,pageSize:10,messages:{pagingInfo:"Showing {0} to {1} of {2} records"}},_$pagingListArea:null,_totalRecordCount:0,_currentPageNo:1,_create:function(){a.apply(this,
+arguments);this._createPageListArea()},_createPageListArea:function(){this.options.paging&&(this._$pagingListArea=d("<span></span>").addClass("jtable-page-list").prependTo(this._$bottomPanel.find(".jtable-left-area")))},load:function(){this._currentPageNo=1;b.apply(this,arguments)},_createRecordLoadUrl:function(){var a=c.apply(this,arguments);return a=this._addPagingInfoToUrl(a,this._currentPageNo)},_addRowToTable:function(a,b,e){e&&this.options.paging?this._reloadTable():f.apply(this,arguments)},
+_addRow:function(a,b){b&&b.isNewRow&&this.options.paging?this._reloadTable():g.apply(this,arguments)},_removeRowsFromTable:function(a,b){e.apply(this,arguments);this.options.paging&&(0>=this._$tableRows.length&&1<this._currentPageNo&&--this._currentPageNo,this._reloadTable())},_onRecordsLoaded:function(a){this._totalRecordCount=a.TotalRecordCount;this._createPagingList();j.apply(this,arguments)},_addPagingInfoToUrl:function(a,b){if(!this.options.paging)return a;var e=(b-1)*this.options.pageSize,c=
this.options.pageSize;return a+(0>a.indexOf("?")?"?":"&")+"jtStartIndex="+e+"&jtPageSize="+c},_createPagingList:function(){if(this.options.paging&&!(0>=this.options.pageSize)){this._$pagingListArea.empty();var a=this._calculatePageCount();this._createFirstAndPreviousPageButtons();this._createPageNumberButtons(this._calculatePageNumbers(a));this._createLastAndNextPageButtons(a);this._createPagingInfo();this._bindClickEventsToPageNumberButtons()}},_createFirstAndPreviousPageButtons:function(){1<this._currentPageNo&&
-(c("<span></span>").addClass("jtable-page-number-first").html("|&lt").data("pageNumber",1).appendTo(this._$pagingListArea),c("<span></span>").addClass("jtable-page-number-previous").html("&lt").data("pageNumber",this._currentPageNo-1).appendTo(this._$pagingListArea))},_createLastAndNextPageButtons:function(a){this._currentPageNo<a&&(c("<span></span>").addClass("jtable-page-number-next").html("&gt").data("pageNumber",this._currentPageNo+1).appendTo(this._$pagingListArea),c("<span></span>").addClass("jtable-page-number-last").html("&gt|").data("pageNumber",
-a).appendTo(this._$pagingListArea))},_createPageNumberButtons:function(a){for(var b=0,e=0;e<a.length;e++)1<a[e]-b&&c("<span></span>").addClass("jtable-page-number-space").html("...").appendTo(this._$pagingListArea),this._createPageNumberButton(a[e]),b=a[e]},_createPageNumberButton:function(a){c('<span class="'+(this._currentPageNo==a?"jtable-page-number-active":"jtable-page-number")+'">'+a+"</span>").data("pageNumber",a).appendTo(this._$pagingListArea)},_calculatePageCount:function(){var a=Math.floor(this._totalRecordCount/
+(d("<span></span>").addClass("jtable-page-number-first").html("|&lt").data("pageNumber",1).appendTo(this._$pagingListArea),d("<span></span>").addClass("jtable-page-number-previous").html("&lt").data("pageNumber",this._currentPageNo-1).appendTo(this._$pagingListArea))},_createLastAndNextPageButtons:function(a){this._currentPageNo<a&&(d("<span></span>").addClass("jtable-page-number-next").html("&gt").data("pageNumber",this._currentPageNo+1).appendTo(this._$pagingListArea),d("<span></span>").addClass("jtable-page-number-last").html("&gt|").data("pageNumber",
+a).appendTo(this._$pagingListArea))},_createPageNumberButtons:function(a){for(var b=0,e=0;e<a.length;e++)1<a[e]-b&&d("<span></span>").addClass("jtable-page-number-space").html("...").appendTo(this._$pagingListArea),this._createPageNumberButton(a[e]),b=a[e]},_createPageNumberButton:function(a){d('<span class="'+(this._currentPageNo==a?"jtable-page-number-active":"jtable-page-number")+'">'+a+"</span>").data("pageNumber",a).appendTo(this._$pagingListArea)},_calculatePageCount:function(){var a=Math.floor(this._totalRecordCount/
this.options.pageSize);0!=this._totalRecordCount%this.options.pageSize&&++a;return a},_calculatePageNumbers:function(a){if(6>=a){for(var b=[],e=1;e<=a;++e)b.push(e);return b}b=[1,2,3,a-2,a-1,a];e=this._normalizeNumber(this._currentPageNo-1,1,a,1);a=this._normalizeNumber(this._currentPageNo+1,1,a,1);this._insertToArrayIfDoesNotExists(b,e);this._insertToArrayIfDoesNotExists(b,this._currentPageNo);this._insertToArrayIfDoesNotExists(b,a);b.sort(function(a,b){return a-b});return b},_createPagingInfo:function(){var a=
-(this._currentPageNo-1)*this.options.pageSize+1,b=this._currentPageNo*this.options.pageSize,b=this._normalizeNumber(b,a,this._totalRecordCount,0);b>=a&&(a=this._formatString(this.options.messages.pagingInfo,a,b,this._totalRecordCount),c("<span></span>").addClass("jtable-page-info").html(a).appendTo(this._$pagingListArea))},_bindClickEventsToPageNumberButtons:function(){var a=this;a._$pagingListArea.find(".jtable-page-number,.jtable-page-number-previous,.jtable-page-number-next,.jtable-page-number-first,.jtable-page-number-last").click(function(b){b.preventDefault();
-b=c(this);a._currentPageNo=b.data("pageNumber");a._reloadTable()})}})})(jQuery);
-(function(c){var b=c.hik.jtable.prototype._normalizeFieldOptions,a=c.hik.jtable.prototype._createHeaderCellForField,d=c.hik.jtable.prototype._createRecordLoadUrl;c.extend(!0,c.hik.jtable.prototype,{options:{sorting:!1,defaultSorting:""},_lastSorting:"",_normalizeFieldOptions:function(a,c){b.apply(this,arguments);c.sorting=!1!=c.sorting},_createHeaderCellForField:function(b,c){var e=a.apply(this,arguments);this.options.sorting&&c.sorting&&this._makeColumnSortable(e,b);return e},_createRecordLoadUrl:function(){var a=
-d.apply(this,arguments);return a=this._addSortingInfoToUrl(a)},_makeColumnSortable:function(a,b){var e=this;a.addClass("jtable-column-header-sortable").click(function(b){b.preventDefault();e._sortTableByColumn(a)});-1<e.options.defaultSorting.indexOf(b)&&(-1<e.options.defaultSorting.indexOf(" DESC")?(a.addClass("jtable-column-header-sorted-desc"),e._lastSorting=b+" DESC"):(a.addClass("jtable-column-header-sorted-asc"),e._lastSorting=b+" ASC"))},_sortTableByColumn:function(a){a.siblings().removeClass("jtable-column-header-sorted-asc jtable-column-header-sorted-desc");
+(this._currentPageNo-1)*this.options.pageSize+1,b=this._currentPageNo*this.options.pageSize,b=this._normalizeNumber(b,a,this._totalRecordCount,0);b>=a&&(a=this._formatString(this.options.messages.pagingInfo,a,b,this._totalRecordCount),d("<span></span>").addClass("jtable-page-info").html(a).appendTo(this._$pagingListArea))},_bindClickEventsToPageNumberButtons:function(){var a=this;a._$pagingListArea.find(".jtable-page-number,.jtable-page-number-previous,.jtable-page-number-next,.jtable-page-number-first,.jtable-page-number-last").click(function(b){b.preventDefault();
+b=d(this);a._currentPageNo=b.data("pageNumber");a._reloadTable()})}})})(jQuery);
+(function(d){var b=d.hik.jtable.prototype._normalizeFieldOptions,a=d.hik.jtable.prototype._createHeaderCellForField,c=d.hik.jtable.prototype._createRecordLoadUrl;d.extend(!0,d.hik.jtable.prototype,{options:{sorting:!1,defaultSorting:""},_lastSorting:"",_normalizeFieldOptions:function(a,c){b.apply(this,arguments);c.sorting=!1!=c.sorting},_createHeaderCellForField:function(b,c){var e=a.apply(this,arguments);this.options.sorting&&c.sorting&&this._makeColumnSortable(e,b);return e},_createRecordLoadUrl:function(){var a=
+c.apply(this,arguments);return a=this._addSortingInfoToUrl(a)},_makeColumnSortable:function(a,b){var e=this;a.addClass("jtable-column-header-sortable").click(function(b){b.preventDefault();e._sortTableByColumn(a)});-1<e.options.defaultSorting.indexOf(b)&&(-1<e.options.defaultSorting.indexOf(" DESC")?(a.addClass("jtable-column-header-sorted-desc"),e._lastSorting=b+" DESC"):(a.addClass("jtable-column-header-sorted-asc"),e._lastSorting=b+" ASC"))},_sortTableByColumn:function(a){a.siblings().removeClass("jtable-column-header-sorted-asc jtable-column-header-sorted-desc");
a.hasClass("jtable-column-header-sorted-asc")?(a.removeClass("jtable-column-header-sorted-asc").addClass("jtable-column-header-sorted-desc"),this._lastSorting=a.data("fieldName")+" DESC"):(a.removeClass("jtable-column-header-sorted-desc").addClass("jtable-column-header-sorted-asc"),this._lastSorting=a.data("fieldName")+" ASC");this._reloadTable()},_addSortingInfoToUrl:function(a){return!this.options.sorting||""==this._lastSorting?a:a+(0>a.indexOf("?")?"?":"&")+"jtSorting="+this._lastSorting}})})(jQuery);
-(function(c){var b=c.hik.jtable.prototype._create,a=c.hik.jtable.prototype._normalizeFieldOptions,d=c.hik.jtable.prototype._createHeaderCellForField,f=c.hik.jtable.prototype._createCellForRecordField;c.extend(!0,c.hik.jtable.prototype,{options:{tableId:void 0,columnResizable:!0,columnSelectable:!0,saveUserPreferences:!0},_$columnSelectionDiv:null,_$columnResizeBar:null,_cookieKeyPrefix:null,_currentResizeArgs:null,_create:function(){b.apply(this,arguments);this._createColumnResizeBar();this._createColumnSelection();
-this._cookieKeyPrefix=this._generateCookieKeyPrefix();this.options.saveUserPreferences&&this._loadColumnSettings();this._normalizeColumnWidths()},_normalizeFieldOptions:function(b,e){a.apply(this,arguments);this.options.columnResizable&&(e.columnResizable=!1!=e.columnResizable);e.visibility||(e.visibility="visible")},_createHeaderCellForField:function(a,b){var c=d.apply(this,arguments);this.options.columnResizable&&(b.columnResizable&&a!=this._columnList[this._columnList.length-1])&&this._makeColumnResizable(c);
-"hidden"==b.visibility&&c.hide();return c},_createCellForRecordField:function(a,b){var c=f.apply(this,arguments);"hidden"==this.options.fields[b].visibility&&c.hide();return c},changeColumnVisibility:function(a,b){this._changeColumnVisibilityInternal(a,b);this._normalizeColumnWidths();this.options.saveUserPreferences&&this._saveColumnSettings()},_changeColumnVisibilityInternal:function(a,b){var c=this._columnList.indexOf(a);if(0>c)this._logWarn('Column "'+a+'" does not exist in fields!');else if(0>
+(function(d){var b=d.hik.jtable.prototype._create,a=d.hik.jtable.prototype._normalizeFieldOptions,c=d.hik.jtable.prototype._createHeaderCellForField,f=d.hik.jtable.prototype._createCellForRecordField;d.extend(!0,d.hik.jtable.prototype,{options:{tableId:void 0,columnResizable:!0,columnSelectable:!0,saveUserPreferences:!0},_$columnSelectionDiv:null,_$columnResizeBar:null,_cookieKeyPrefix:null,_currentResizeArgs:null,_create:function(){b.apply(this,arguments);this._createColumnResizeBar();this._createColumnSelection();
+this._cookieKeyPrefix=this._generateCookieKeyPrefix();this.options.saveUserPreferences&&this._loadColumnSettings();this._normalizeColumnWidths()},_normalizeFieldOptions:function(b,e){a.apply(this,arguments);this.options.columnResizable&&(e.columnResizable=!1!=e.columnResizable);e.visibility||(e.visibility="visible")},_createHeaderCellForField:function(a,b){var d=c.apply(this,arguments);this.options.columnResizable&&(b.columnResizable&&a!=this._columnList[this._columnList.length-1])&&this._makeColumnResizable(d);
+"hidden"==b.visibility&&d.hide();return d},_createCellForRecordField:function(a,b){var c=f.apply(this,arguments);"hidden"==this.options.fields[b].visibility&&c.hide();return c},changeColumnVisibility:function(a,b){this._changeColumnVisibilityInternal(a,b);this._normalizeColumnWidths();this.options.saveUserPreferences&&this._saveColumnSettings()},_changeColumnVisibilityInternal:function(a,b){var c=this._columnList.indexOf(a);if(0>c)this._logWarn('Column "'+a+'" does not exist in fields!');else if(0>
["visible","hidden","fixed"].indexOf(b))this._logWarn('Visibility value is not valid: "'+b+'"! Options are: visible, hidden, fixed.');else{var d=this.options.fields[a];d.visibility!=b&&(c=this._firstDataColumnOffset+c+1,"hidden"!=d.visibility&&"hidden"==b?this._$table.find(">thead >tr >th:nth-child("+c+"),>tbody >tr >td:nth-child("+c+")").hide():"hidden"==d.visibility&&"hidden"!=b&&this._$table.find(">thead >tr >th:nth-child("+c+"),>tbody >tr >td:nth-child("+c+")").show().css("display","table-cell"),
-d.visibility=b)}},_createColumnSelection:function(){var a=this;this._$columnSelectionDiv=c("<div />").addClass("jtable-column-selection-container").appendTo(a._$mainContainer);this._$table.children("thead").bind("contextmenu",function(b){if(a.options.columnSelectable){b.preventDefault();c("<div />").addClass("jtable-contextmenu-overlay").click(function(){c(this).remove();a._$columnSelectionDiv.hide()}).bind("contextmenu",function(){return!1}).appendTo(document.body);a._fillColumnSelection();var d=
-a._$mainContainer.offset(),f=b.pageY-d.top;b=b.pageX-d.left;d=a._$mainContainer.width();100<d&&b>d-100&&(b=d-100);a._$columnSelectionDiv.css({left:b,top:f,"min-width":"100px"}).show()}})},_fillColumnSelection:function(){for(var a=this,b=c("<ul></ul>").addClass("jtable-column-select-list"),d=0;d<this._columnList.length;d++){var f=this._columnList[d],j=this.options.fields[f],k=c("<li></li>").appendTo(b),k=c('<label for="'+f+'"></label>').append(c("<span>"+(j.title||f)+"</span>")).appendTo(k),f=c('<input type="checkbox" name="'+
-f+'">').prependTo(k).click(function(){var b=c(this),e=b.attr("name");"fixed"!=a.options.fields[e].visibility&&a.changeColumnVisibility(e,b.is(":checked")?"visible":"hidden")});"hidden"!=j.visibility&&f.attr("checked","checked");"fixed"==j.visibility&&f.attr("disabled","disabled")}this._$columnSelectionDiv.html(b)},_createColumnResizeBar:function(){this._$columnResizeBar=c("<div />").addClass("jtable-column-resize-bar").appendTo(this._$mainContainer).hide()},_makeColumnResizable:function(a){var b=
-this;c("<div />").addClass("jtable-column-resize-handler").appendTo(a.find(".jtable-column-header-container")).mousedown(function(d){d.preventDefault();d.stopPropagation();var f=b._$mainContainer.offset(),j=a.nextAll("th.jtable-column-header:visible:first");if(j.length){b._currentResizeArgs={currentColumnStartWidth:a.outerWidth(),minWidth:10,maxWidth:a.outerWidth()+j.outerWidth()-10,mouseStartX:d.pageX,minResizeX:function(){return this.mouseStartX-(this.currentColumnStartWidth-this.minWidth)},maxResizeX:function(){return this.mouseStartX+
-(this.maxWidth-this.currentColumnStartWidth)}};var k=function(a){b._currentResizeArgs&&(a=b._normalizeNumber(a.pageX,b._currentResizeArgs.minResizeX(),b._currentResizeArgs.maxResizeX()),b._$columnResizeBar.css("left",a-f.left+"px"))},m=function(d){if(b._currentResizeArgs){c(document).unbind("mousemove",k);c(document).unbind("mouseup",m);b._$columnResizeBar.hide();d=b._normalizeNumber(b._currentResizeArgs.currentColumnStartWidth+(d.pageX-b._currentResizeArgs.mouseStartX),b._currentResizeArgs.minWidth,
-b._currentResizeArgs.maxWidth);var f=j.outerWidth()+(b._currentResizeArgs.currentColumnStartWidth-d),h=a.data("width-in-percent")/b._currentResizeArgs.currentColumnStartWidth;a.data("width-in-percent",d*h);j.data("width-in-percent",f*h);a.css("width",a.data("width-in-percent")+"%");j.css("width",j.data("width-in-percent")+"%");b._normalizeColumnWidths();b._currentResizeArgs=null;b.options.saveUserPreferences&&b._saveColumnSettings()}};b._$columnResizeBar.show().css({top:a.offset().top-f.top+"px",
-left:d.pageX-f.left+"px",height:b._$table.outerHeight()+"px"});c(document).bind("mousemove",k);c(document).bind("mouseup",m)}})},_normalizeColumnWidths:function(){var a=this._$table.find(">thead th.jtable-command-column-header").data("width-in-percent",1).css("width","1%"),b=this._$table.find(">thead th.jtable-column-header"),d=0;b.each(function(){var a=c(this);a.is(":visible")&&(d+=a.outerWidth())});var f={},j=100-a.length;b.each(function(){var a=c(this);if(a.is(":visible")){var b=a.data("fieldName"),
-a=a.outerWidth()*j/d;f[b]=a}});b.each(function(){var a=c(this);if(a.is(":visible")){var b=a.data("fieldName");a.data("width-in-percent",f[b]).css("width",f[b]+"%")}})},_saveColumnSettings:function(){var a=this,b="";this._$table.find(">thead >tr >th.jtable-column-header").each(function(){var d=c(this),f=d.data("fieldName"),d=d.data("width-in-percent");b=b+(f+"="+a.options.fields[f].visibility+";"+d)+"|"});this._setCookie("column-settings",b.substr(0,b.length-1))},_loadColumnSettings:function(){var a=
-this,b=this._getCookie("column-settings");if(b){var d={};c.each(b.split("|"),function(a,b){var c=b.split("="),e=c[0],c=c[1].split(";");d[e]={columnVisibility:c[0],columnWidth:c[1]}});this._$table.find(">thead >tr >th.jtable-column-header").each(function(){var b=c(this),e=b.data("fieldName"),f=a.options.fields[e];d[e]&&("fixed"!=f.visibility&&a._changeColumnVisibilityInternal(e,d[e].columnVisibility),b.data("width-in-percent",d[e].columnWidth).css("width",d[e].columnWidth+"%"))})}},_setCookie:function(a,
-b){a=this._cookieKeyPrefix+a;var d=new Date;d.setDate(d.getDate()+30);document.cookie=encodeURIComponent(a)+"="+encodeURIComponent(b)+"; expires="+d.toUTCString()},_getCookie:function(a){a=this._cookieKeyPrefix+a;for(var b=document.cookie.split("; "),d=0;d<b.length;d++)if(b[d]){var c=b[d].split("=");if(2==c.length&&decodeURIComponent(c[0])===a)return decodeURIComponent(c[1]||"")}return null},_generateCookieKeyPrefix:function(){var a="";this.options.tableId&&(a=a+this.options.tableId+"#");a=a+this._columnList.join("$")+
-"#c"+this._$table.find("thead th").length;var b=0;if(0!=a.length)for(var d=0;d<a.length;d++)var c=a.charCodeAt(d),b=(b<<5)-b+c,b=b&b;return"jtable#"+b}})})(jQuery);
-(function(c){var b=c.hik.jtable.prototype._removeRowsFromTable;c.extend(!0,c.hik.jtable.prototype,{options:{openChildAsAccordion:!1},openChildTable:function(a,b,f){var g=this;b.showCloseButton=!1!=b.showCloseButton;b.showCloseButton&&!b.closeRequested&&(b.closeRequested=function(){g.closeChildTable(a)});g.options.openChildAsAccordion&&a.siblings(".jtable-data-row").each(function(){g.closeChildTable(c(this))});g.closeChildTable(a,function(){var e=g.getChildRow(a).children("td").empty(),h=c("<div />").addClass("jtable-child-table-container").appendTo(e);
-e.data("childTable",h);h.jtable(b);g.openChildRow(a);h.hide().slideDown("fast",function(){f&&f({childTable:h})})})},closeChildTable:function(a,b){var c=this,g=this.getChildRow(a).children("td"),e=g.data("childTable");e?(g.data("childTable",null),e.slideUp("fast",function(){e.jtable("destroy");e.remove();c.closeChildRow(a);b&&b()})):b&&b()},isChildRowOpen:function(a){return this.getChildRow(a).is(":visible")},getChildRow:function(a){return a.data("childRow")||this._createChildRow(a)},openChildRow:function(a){a=
-this.getChildRow(a);a.is(":visible")||a.show();return a},closeChildRow:function(a){a=this.getChildRow(a);a.is(":visible")&&a.hide()},_removeRowsFromTable:function(a,d){var f=this;"deleted"==d&&a.each(function(){var a=c(this),b=a.data("childRow");b&&(f.closeChildTable(a),b.remove())});b.apply(this,arguments)},_createChildRow:function(a){var b=this._$table.find("thead th").length,b=c("<tr></tr>").addClass("jtable-child-row").append('<td colspan="'+b+'"></td>');a.after(b);a.data("childRow",b);b.hide();
+d.visibility=b)}},_createColumnSelection:function(){var a=this;this._$columnSelectionDiv=d("<div />").addClass("jtable-column-selection-container").appendTo(a._$mainContainer);this._$table.children("thead").bind("contextmenu",function(b){if(a.options.columnSelectable){b.preventDefault();d("<div />").addClass("jtable-contextmenu-overlay").click(function(){d(this).remove();a._$columnSelectionDiv.hide()}).bind("contextmenu",function(){return!1}).appendTo(document.body);a._fillColumnSelection();var c=
+a._$mainContainer.offset(),f=b.pageY-c.top;b=b.pageX-c.left;c=a._$mainContainer.width();100<c&&b>c-100&&(b=c-100);a._$columnSelectionDiv.css({left:b,top:f,"min-width":"100px"}).show()}})},_fillColumnSelection:function(){for(var a=this,b=d("<ul></ul>").addClass("jtable-column-select-list"),c=0;c<this._columnList.length;c++){var f=this._columnList[c],h=this.options.fields[f],l=d("<li></li>").appendTo(b),l=d('<label for="'+f+'"></label>').append(d("<span>"+(h.title||f)+"</span>")).appendTo(l),f=d('<input type="checkbox" name="'+
+f+'">').prependTo(l).click(function(){var b=d(this),c=b.attr("name");"fixed"!=a.options.fields[c].visibility&&a.changeColumnVisibility(c,b.is(":checked")?"visible":"hidden")});"hidden"!=h.visibility&&f.attr("checked","checked");"fixed"==h.visibility&&f.attr("disabled","disabled")}this._$columnSelectionDiv.html(b)},_createColumnResizeBar:function(){this._$columnResizeBar=d("<div />").addClass("jtable-column-resize-bar").appendTo(this._$mainContainer).hide()},_makeColumnResizable:function(a){var b=
+this;d("<div />").addClass("jtable-column-resize-handler").appendTo(a.find(".jtable-column-header-container")).mousedown(function(c){c.preventDefault();c.stopPropagation();var f=b._$mainContainer.offset(),h=a.nextAll("th.jtable-column-header:visible:first");if(h.length){b._currentResizeArgs={currentColumnStartWidth:a.outerWidth(),minWidth:10,maxWidth:a.outerWidth()+h.outerWidth()-10,mouseStartX:c.pageX,minResizeX:function(){return this.mouseStartX-(this.currentColumnStartWidth-this.minWidth)},maxResizeX:function(){return this.mouseStartX+
+(this.maxWidth-this.currentColumnStartWidth)}};var l=function(a){b._currentResizeArgs&&(a=b._normalizeNumber(a.pageX,b._currentResizeArgs.minResizeX(),b._currentResizeArgs.maxResizeX()),b._$columnResizeBar.css("left",a-f.left+"px"))},m=function(c){if(b._currentResizeArgs){d(document).unbind("mousemove",l);d(document).unbind("mouseup",m);b._$columnResizeBar.hide();c=b._normalizeNumber(b._currentResizeArgs.currentColumnStartWidth+(c.pageX-b._currentResizeArgs.mouseStartX),b._currentResizeArgs.minWidth,
+b._currentResizeArgs.maxWidth);var f=h.outerWidth()+(b._currentResizeArgs.currentColumnStartWidth-c),j=a.data("width-in-percent")/b._currentResizeArgs.currentColumnStartWidth;a.data("width-in-percent",c*j);h.data("width-in-percent",f*j);a.css("width",a.data("width-in-percent")+"%");h.css("width",h.data("width-in-percent")+"%");b._normalizeColumnWidths();b._currentResizeArgs=null;b.options.saveUserPreferences&&b._saveColumnSettings()}};b._$columnResizeBar.show().css({top:a.offset().top-f.top+"px",
+left:c.pageX-f.left+"px",height:b._$table.outerHeight()+"px"});d(document).bind("mousemove",l);d(document).bind("mouseup",m)}})},_normalizeColumnWidths:function(){var a=this._$table.find(">thead th.jtable-command-column-header").data("width-in-percent",1).css("width","1%"),b=this._$table.find(">thead th.jtable-column-header"),c=0;b.each(function(){var a=d(this);a.is(":visible")&&(c+=a.outerWidth())});var f={},h=100-a.length;b.each(function(){var a=d(this);if(a.is(":visible")){var b=a.data("fieldName"),
+a=a.outerWidth()*h/c;f[b]=a}});b.each(function(){var a=d(this);if(a.is(":visible")){var b=a.data("fieldName");a.data("width-in-percent",f[b]).css("width",f[b]+"%")}})},_saveColumnSettings:function(){var a=this,b="";this._$table.find(">thead >tr >th.jtable-column-header").each(function(){var c=d(this),f=c.data("fieldName"),c=c.data("width-in-percent");b=b+(f+"="+a.options.fields[f].visibility+";"+c)+"|"});this._setCookie("column-settings",b.substr(0,b.length-1))},_loadColumnSettings:function(){var a=
+this,b=this._getCookie("column-settings");if(b){var c={};d.each(b.split("|"),function(a,b){var e=b.split("="),d=e[0],e=e[1].split(";");c[d]={columnVisibility:e[0],columnWidth:e[1]}});this._$table.find(">thead >tr >th.jtable-column-header").each(function(){var b=d(this),e=b.data("fieldName"),f=a.options.fields[e];c[e]&&("fixed"!=f.visibility&&a._changeColumnVisibilityInternal(e,c[e].columnVisibility),b.data("width-in-percent",c[e].columnWidth).css("width",c[e].columnWidth+"%"))})}},_setCookie:function(a,
+b){a=this._cookieKeyPrefix+a;var c=new Date;c.setDate(c.getDate()+30);document.cookie=encodeURIComponent(a)+"="+encodeURIComponent(b)+"; expires="+c.toUTCString()},_getCookie:function(a){a=this._cookieKeyPrefix+a;for(var b=document.cookie.split("; "),c=0;c<b.length;c++)if(b[c]){var d=b[c].split("=");if(2==d.length&&decodeURIComponent(d[0])===a)return decodeURIComponent(d[1]||"")}return null},_generateCookieKeyPrefix:function(){var a="";this.options.tableId&&(a=a+this.options.tableId+"#");a=a+this._columnList.join("$")+
+"#c"+this._$table.find("thead th").length;var b=0;if(0!=a.length)for(var c=0;c<a.length;c++)var d=a.charCodeAt(c),b=(b<<5)-b+d,b=b&b;return"jtable#"+b}})})(jQuery);
+(function(d){var b=d.hik.jtable.prototype._removeRowsFromTable;d.extend(!0,d.hik.jtable.prototype,{options:{openChildAsAccordion:!1},openChildTable:function(a,b,f){var g=this;b.showCloseButton=!1!=b.showCloseButton;b.showCloseButton&&!b.closeRequested&&(b.closeRequested=function(){g.closeChildTable(a)});g.options.openChildAsAccordion&&a.siblings(".jtable-data-row").each(function(){g.closeChildTable(d(this))});g.closeChildTable(a,function(){var e=g.getChildRow(a).children("td").empty(),j=d("<div />").addClass("jtable-child-table-container").appendTo(e);
+e.data("childTable",j);j.jtable(b);g.openChildRow(a);j.hide().slideDown("fast",function(){f&&f({childTable:j})})})},closeChildTable:function(a,b){var d=this,g=this.getChildRow(a).children("td"),e=g.data("childTable");e?(g.data("childTable",null),e.slideUp("fast",function(){e.jtable("destroy");e.remove();d.closeChildRow(a);b&&b()})):b&&b()},isChildRowOpen:function(a){return this.getChildRow(a).is(":visible")},getChildRow:function(a){return a.data("childRow")||this._createChildRow(a)},openChildRow:function(a){a=
+this.getChildRow(a);a.is(":visible")||a.show();return a},closeChildRow:function(a){a=this.getChildRow(a);a.is(":visible")&&a.hide()},_removeRowsFromTable:function(a,c){var f=this;"deleted"==c&&a.each(function(){var a=d(this),b=a.data("childRow");b&&(f.closeChildTable(a),b.remove())});b.apply(this,arguments)},_createChildRow:function(a){var b=this._$table.find("thead th").length,b=d("<tr></tr>").addClass("jtable-child-row").append('<td colspan="'+b+'"></td>');a.after(b);a.data("childRow",b);b.hide();
return b}})})(jQuery); \ No newline at end of file