Your IP : 216.73.216.86


Current Path : /home/emeraadmin/public_html/4d695/
Upload File :
Current File : /home/emeraadmin/public_html/4d695/jqGrid.tar

build.properties000064400000000406151676727230010001 0ustar00# Path for the Google Compiler jar file. By default in the same directory as this properties file.
GoogleCompiler = compiler.jar

srcdir = js
distdir = dist

target = jquery.jqGrid.js
target.min = jquery.jqGrid.min.js
target.map = jquery.jqGrid.min.map
gradlew000064400000011723151676727230006140 0ustar00#!/bin/bash

##############################################################################
##
##  Gradle start up script for UN*X
##
##############################################################################

# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""

APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`

# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"

warn ( ) {
    echo "$*"
}

die ( ) {
    echo
    echo "$*"
    echo
    exit 1
}

# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
case "`uname`" in
  CYGWIN* )
    cygwin=true
    ;;
  Darwin* )
    darwin=true
    ;;
  MINGW* )
    msys=true
    ;;
esac

# For Cygwin, ensure paths are in UNIX format before anything is touched.
if $cygwin ; then
    [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
fi

# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
    ls=`ls -ld "$PRG"`
    link=`expr "$ls" : '.*-> \(.*\)$'`
    if expr "$link" : '/.*' > /dev/null; then
        PRG="$link"
    else
        PRG=`dirname "$PRG"`"/$link"
    fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/"
APP_HOME="`pwd -P`"
cd "$SAVED"

CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar

# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
        # IBM's JDK on AIX uses strange locations for the executables
        JAVACMD="$JAVA_HOME/jre/sh/java"
    else
        JAVACMD="$JAVA_HOME/bin/java"
    fi
    if [ ! -x "$JAVACMD" ] ; then
        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
    fi
else
    JAVACMD="java"
    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi

# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
    MAX_FD_LIMIT=`ulimit -H -n`
    if [ $? -eq 0 ] ; then
        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
            MAX_FD="$MAX_FD_LIMIT"
        fi
        ulimit -n $MAX_FD
        if [ $? -ne 0 ] ; then
            warn "Could not set maximum file descriptor limit: $MAX_FD"
        fi
    else
        warn "Could not query businessSystem maximum file descriptor limit: $MAX_FD_LIMIT"
    fi
fi

# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
    JAVA_OPTS="$JAVA_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi

# For Cygwin, switch paths to Windows format before running java
if $cygwin ; then
    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`

    # We build the pattern for arguments to be converted via cygpath
    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
    SEP=""
    for dir in $ROOTDIRSRAW ; do
        ROOTDIRS="$ROOTDIRS$SEP$dir"
        SEP="|"
    done
    OURCYGPATTERN="(^($ROOTDIRS))"
    # Add a user-defined pattern to the cygpath arguments
    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
    fi
    # Now convert the arguments - kludge to limit ourselves to /bin/sh
    i=0
    for arg in "$@" ; do
        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option

        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
        else
            eval `echo args$i`="\"$arg\""
        fi
        i=$((i+1))
    done
    case $i in
        (0) set -- ;;
        (1) set -- "$args0" ;;
        (2) set -- "$args0" "$args1" ;;
        (3) set -- "$args0" "$args1" "$args2" ;;
        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
    esac
fi

# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
function splitJvmOpts() {
    JVM_OPTS=("$@")
}
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"

exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
build.xml000064400000005745151676727230006420 0ustar00<?xml version="1.0"?>
<project name="jqGrid" default="build" basedir=".">

    <!-- define the path of compressor in this file -->
    <property file="build.properties" />

    <target name="init">
        <mkdir dir="${distdir}" />
    </target>

    <target name="jqgrid" depends="init">
        <concat destfile="${distdir}/${target}">
		<fileset file="js/grid.base.js"/>
		<fileset file="js/jqModal.js"/>
		<fileset file="js/jqDnR.js"/>
		<fileset file="js/grid.utils.js"/>
		<fileset file="js/jquery.fmatter.js"/>
		<fileset file="js/grid.common.js"/>
		<fileset file="js/grid.filter.js"/>
		<fileset file="js/grid.formedit.js"/>
		<fileset file="js/grid.inlinedit.js"/>
		<fileset file="js/grid.celledit.js"/>
		<fileset file="js/grid.subgrid.js"/>
		<fileset file="js/grid.treegrid.js"/>
		<fileset file="js/grid.grouping.js"/>
		<fileset file="js/grid.import.js"/>
		<fileset file="js/grid.jqueryui.js"/>
		<fileset file="js/grid.pivot.js"/>
		<fileset file="js/grid.export.js"/>
		<fileset file="js/grid.aria.js"/>
		<fileset file="js/grid.transposed.js"/>
		<fileset file="js/grid.frozenrows.js"/>
		<fileset file="js/grid.database.js"/>
        </concat>
    </target>

    <target name="jqgrid.min" depends="jqgrid">
        <apply executable="java" parallel="false" verbose="true" failonerror="true" dest="${distdir}">
            <fileset dir="${distdir}">
                <include name="${target}" />
            </fileset>
            <arg line="-jar" />
            <arg path="${GoogleCompiler}" />
            <arg value="--warning_level" />
            <arg value="QUIET" />
            <arg value="--create_source_map" />
            <arg value="${distdir}/${target.map}" />
            <arg value="--js_output_file" />
            <targetfile />
            <arg value="--js" />
            <mapper type="glob" from="${target}" to="${target.min}" />
        </apply>
      	<echo message="${target.min} built." />
    </target>
    
    <target name="minfiles">
      <mkdir dir="${distdir}/min" />
	<apply executable="java" parallel="false" verbose="true" failonerror="true" dest="${distdir}/min">
	    <fileset dir="${srcdir}">
                <include name="*.js" />
            </fileset>
            <arg line="-jar" />
            <arg path="${GoogleCompiler}" />
            <arg value="--warning_level" />
            <arg value="QUIET" />
            <arg value="--js_output_file" />
            <targetfile />
            <arg value="--js" />
	    <mapper type="glob" from="*.js" to="*.js" />
        </apply>      
    </target>
    
    <target name="i18n">
        <mkdir dir="${distdir}/i18n" />
        <copy todir="${distdir}/i18n" overwrite="true">
            <fileset dir="${srcdir}/i18n">
                <include name="grid.locale-*.js" />
            </fileset>
        </copy>
    </target>

    <target name="build" depends="jqgrid, jqgrid.min, i18n, minfiles"/>

    <target name="clean">
        <delete dir="${distdir}" />
    </target>

    <target name="all" depends="clean,build"/>

</project>
package.json000064400000003303151676727230007051 0ustar00{
  "_from": "jqGrid",
  "_id": "jqGrid@5.8.7",
  "_inBundle": false,
  "_integrity": "sha512-zRSzjQj54/9p5z31gB0d8sGbOCh/hk1T+QByStHSm6xaIYEyQ20iVlhy9Omdmc+EQT+CxtkZOMOfvqVHSO59tA==",
  "_location": "/jqGrid",
  "_phantomChildren": {},
  "_requested": {
    "type": "tag",
    "registry": true,
    "raw": "jqGrid",
    "name": "jqGrid",
    "escapedName": "jqGrid",
    "rawSpec": "",
    "saveSpec": null,
    "fetchSpec": "latest"
  },
  "_requiredBy": [
    "#USER",
    "/"
  ],
  "_resolved": "https://registry.npmjs.org/jqGrid/-/jqGrid-5.8.7.tgz",
  "_shasum": "26825b4123e33e72aafd0cdcc13cb55866801f08",
  "_spec": "jqGrid",
  "_where": "C:\\xampp\\htdocs\\emeraltd",
  "author": {
    "name": "Tony Tomov",
    "email": "tony@trirand.com",
    "url": "http://www.guriddo.net"
  },
  "bugs": {
    "url": "https://github.com/tonytomov/jqGrid/issues"
  },
  "bundleDependencies": false,
  "dependencies": {
    "grunt-cli": "^1.3.2",
    "npm": "^10.6.0"
  },
  "deprecated": false,
  "description": "jqGrid is an Ajax-enabled JavaScript control that provides solutions for representing and manipulating tabular data on the web.",
  "devDependencies": {
    "grunt": "^1.6.1",
    "grunt-contrib-concat": "^1.0.1",
    "grunt-contrib-jshint": "^3.0.0",
    "grunt-contrib-requirejs": ">0.4.4",
    "grunt-contrib-uglify": "^5.0.0",
    "ip": "^2.0.1"
  },
  "homepage": "http://www.guriddo.net",
  "licenses": [
    {
      "type": "Creative Commons Attribution-Non-Commercial 3.0 License",
      "url": "http://guriddo.net/?page_id=103334"
    }
  ],
  "name": "jqGrid",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/tonytomov/jqGrid.git"
  },
  "title": "Guriddo jqGrid",
  "version": "5.8.7"
}
gradle/wrapper/gradle-wrapper.properties000064400000000370151676727230014534 0ustar00#Wed Mar 07 18:29:13 CET 2012
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=http\://services.gradle.org/distributions/gradle-1.0-milestone-8a-bin.zip
gradle/wrapper/gradle-wrapper.jar000064400000130430151676727230013115 0ustar00PK
�N@	META-INF/PK
�N@��META-INF/MANIFEST.MF�M��LK-.�
K-*��ϳR0�3����PK
�N@org/PK
�N@org/gradle/PK
�N@org/gradle/wrapper/PK
�N@h�df��#org/gradle/wrapper/Download$1.class}�M
�0��h5Z+v/�׆��p!.<AlCl	II�����q�<�=�|���	 C�bB|�7��}�%a����V�J�a�3���4�(��-&��u�+'
-y�D]K���Br0F���KOH;��(~�T2o�?�t=|���"BF���
u-}PK
�N@Љ��pDorg/gradle/wrapper/Download$SystemPropertiesProxyAuthenticator.class�SmoA~(����`����zT�o�`b��֘~���\���"�_��h��Gg�*A&އ��y�yvv��ϯ����D
VR�mbk)�����;&6p�D��M��/��S�q�xȐ��
��P��sr,�?�)b��:����~L��1��"%N�d�Ry""ﴷ�Q-(��U(��A d��Q$��ʦ۔���+y���n�
��7�g�0,6�ڣr�P6F0/֜b����@(wrR�}�|g��rE&v��P���`�Y�<=��T�R,d0O5f�b�o)�.����FBx`����p��Ȗ����x�;<6�a���ː��rX�:�l�����0��=
��6��H��^Ь�1<������x�D����rGJN"N�ʐ��⨪�{i�1�B���ӷJ�h�v.YzQ��<C�391diM���L�5H��kd�!?$�PTc�o���瘳��q��\:��i�ܻ�r�A93�1,��ll��M֒$�ho	7���~�-\%k��FW`�:YdS�PK
�N@��Xs��"org/gradle/wrapper/IDownload.classE��
�0������
^�b�
AP�^�26J;�t>���;�ɗ���|��{�z~�+%5O��&�WΔ(�a�_�4[gR��#!X�bQ��Vg=�{}1����A��Y��C�X����'R����5��c/�J����$����S�@pP��\�mKu���l�PK
�N@��Uӈ	-org/gradle/wrapper/WrapperConfiguration.class���sGǿ�~�I�1$ml��54�h�{	DS	 �d�7�Mrųx��f�o��iF���Gu���A`��t��}~~�y����_��L"��q<J�16�x����ǖ��q��,DZ#�S�<ˮX~��y��^9�m��u}��Q��ϐ���ox�ív��9��~�0�m[��-o�wz�lX�T+5��j�s�ߺ-��O~g`�Ӂ�d�Y���ϩ�R��g�كj��[�]���oqאTu�d��3��Q���#�2�M�˹<�D��S��TL˨�^�/��c��'���S�Ce�{i����m��v��û]�)�Z���9\`R�ե�Qe�s�5<��
��~L�G3߁�mx���ry�K"l�)���f�TA���FG<몜�s��U�F ��I�=��+�K���v�91vL1�����e|ɐ}��K���AC��ˍ��gÞ�*j1�5�@C�<�0,�c�/Z�U�
�ZMryV�+k��� ��C�MW�"2�bY�X`��?�U��q�q⍨�o]�xM��eXoVUCQ�4}�۲�����k��b��&R�W���ȀfK�K�Y���y���N5�ty_R�|��l(�|9C9hx�~E�3�3���`�̥O��	�sD���>V��ϑ(d������]�u1Z�!�ad��uZsTt���ɪ��5�!�p�!D���E"�� 鄯\
��oR� x��y	�)�koP̪��J�f;�7Q8��� y%HA
�AnS������U�L��@֕ �)�r��2���"^�(\�w
���@	���U 	�1�l���?u�;J�IDW��U�L� e����l(A4dW	rO
�� {S�
A�+A�d�J�� S2H�b�ǀ,� ���PK
�N@!���
0org/gradle/wrapper/SystemPropertiesHandler.class�V�sU�m�d���*���P�@���lJUJ+��$P,��Mo��d7l6���F�����~r�c
vF��G���	m^ ���{���;�ٿ���/��v��xCCF4�ƨ�75�%�c�0.w*&UL�xK�&�qV�1I�Ir^��� .hx3��b#��F\ƻ��'/;/��k00+I\��T�oDI��+
�e��
���
|C��P�e̴�D.=+�s�l���1;n��
ǔ�"��&ͬ��1�ID�1����d��-e]��rl\SdO�NT���p+�
��Ǯ׍�iGF̔�v�9�LEƍ킦sa���tG�L�-���0��u����b\d\Ӷ(��*�d.�4eX��L+A��6�xR8�ν������'�K�-�29{E�]����(q0�
�pmi�9�������45���,B%Z���%�
 e&��V�L�
��4/+�R�qQ�ʯ���3H�
13an���}j1;��E��Oh�^i�c?���{N�$�RqUG
l���R��V�-62:�I��k�֍���,�L�aKeV'sfjN6�aDZ������R�1GY�Fu���	���:r�.ZP�5�å�pog��EK�@�
|��#㦊Ot|
f�>�q_��R�-�
_��FǷ�N��A�m?�'���He�+�K��p1����r�ũ�
9pd�
vm�J_����SvV:��X��	W7KG��t�B��R��t��-�V�Fg�J8璎� ��� j�Ng<|��R����	WBZ�F���rng}�z�lj��2�����t᳼����w�4�����ĵ���F��
����7o�:����l�֬��JqI	+�&��%M��O���(���lD�k�?�C�����O�x�pU��;W����<�"�
��k:�E-+��C��?�P7�����<|��ߵ�?��5�3����ɣ���2�~�܄|���6�}f
����iK[�b[M=���i�4Ot��!Z�B��إ�.N�]�,OȟGk�B�<v�ŁP����jH�c�=4w��n�����V��>�ZA=9�^&Ћ�5�c�G#%�i4��c���B̶1�-�	�!�ЅnZu�&B�Dy����q7p��%�F��eܣ�
��SK�:�a�L=�-�ݴ�pw���0?�n�#���>z�c	�8C_�;A�q��5���7�"��+p�Ź��A�J�X�z���^���;��PK
�N@+Nm	q&org/gradle/wrapper/PathAssembler.class�V�{W=cKe<I�Y�:A��F�l�i(N�-%V�l�[�ꎭ�<�4�Β�P(]e�e
(�.�R�i���;3�duL�O��6��{޹�ݙ���;��_���g�*A�u�F�pS�,B�e�'k"�� ��+&��(l�	"n��Mn�ElH8�OK�?;�����Ix���	/�%��̣["���%�+�|IėE|%��J��ע�:��o��Wy�Z���Q|'��J���8nG�(~�;o��#����2�e�ڲck�.@��j���R-G.͌d&�K�ٙ��|vivn&7yI@l�rCI����%z񼀽c�nيn/(%G�ozf����\m׾��J꼥��F�-<7�����TryL�5����D߂�ИQ ����N:�e՜S�K*�g�����_٫��0�b���i*kk���V��:U�,M
t �34G�_T�|,%�|]�z:�5��
۞�{Ϩ'�E8s���E@�����ˊ�N*Ld�@n�a�itӛ���f�芶&`*���}�sd^t�Ҹb�
���|�7y0 P�eղ���ъ�e8�Y�cj�F:�����6�����y��kv}E]�)�Xnʭ���jv�Vu�e:��	D��#��{����u�N���v953:o�j:޶&�k�y��QJ�����٨_��6�����"�}��y��a\�q�����,~,�SxJ�"���	L�]n�,�'x]�2V�V7�u�RA5e��m~��#i���0~)�W<�5^��9�����ʘ���SV�����bj���b������t��s"�(�O���M�!�/���wK�¥G�bN��"�~�
��#�8�]��G�����{�pJ��n��Un\��;�Ig�}W����d�Ö��3#�8\{s���6�!q�ŏ�C�n���"��'h�$m�2��$��f��ݸI`��E������D_�46U�QWp�@�7O���p(� `�}]p__\�lcֿ��M8�тw��fy���a$�4�,�A��H�In��\3L������D��������y�'�7W�gvgt�j�*��P��Kb�Y+(6�'���I#?Z$��V%r�`�A/���ܪi��׭K`})���>u�]`'^�X��v>�������g�d5��&���<mX�Z�H�6
�������O���y׊N|���J��h>�0�?UVGi�
-���#�ԇ�Uo���V��#DFh${F��� �;�H�l+��d�-�Խ�#X���NbN��{־'1,�%_��R$��[�T�U���*“ɁT����E~�b���*�h&W�7����5쯢}(�m{`�ml��;�o�l��b�3���c�v�.D�M�Q���=�A:D�x�=ڸ�v�[�Dk�<�墅v��4j��:��%j��~�(�����(B���ɸNOB�O��
Uqx2v$�6�.��fC�wѹٔ����s.�����긋@pG���,c�rQ��̏{����X�]<�'Һ'�*8���!��*���
Nl�л;I9:u�|=�kdm���h�ӵ�xzH�e�E�gݘ�,�h#f�0OXzi����ik�񤋾��
|�O�5�#{�����wNm�Z�+H�y����P���"q=�Ə{{k:pō ��U|ҕ7}���L�f?]�G_���s��1
ؿ�,�t�z��t2PnÔU���N,�u=+]��]X��#�CP\��t}8>g��q����>f$����ۈ&�D�f*6���Y��HW��&���|��;�Zx[��oB:OJ]���)Oҕ��pa35����k���:z�R.�A�PK
�N@�4{6�� org/gradle/wrapper/Install.class�X	|�uO�ҬF��Xx�t�`F`@ a�BFE�Gڑ�����	;؉�رs�II��MJ츉��d��q/7M��i�&=���J��H�ޡ�7���;?���w������/��W�hD�F�j9�K_���*�}C�?��OT�&��J�ӟ��ҷ��|�\��PI����/��W��|�+3-���
}?@#������W�?�d���?����
���4�RA�J�&͏���w!�i��#@�)�R��?
��J[�TZG?��W�Ȅs�K�����~iJe�Lh�.WX
pE�5Y]�R'WJ�X�*^�j�k^*�Z�vq�J;�^�e*�۝�r�����+T��W*�J�>^�
�j���r���B_n�:����
7�4��ҴTp+�IӮp�JG���U囅`���E�1٠�&1f��t���oUy+wI�Sz�
oc
�����;t�'<x�`x�С��݇�1U���O�Q=>�1��f|��IG�;��h��v�@�:�Zz�iU�eOvL�z$jt���D°;�=�uٞН�ɤ�6Ӛb�i��l�7�L{_����5f��"��>3n�bc�}HǢl���úm�8=�wN�I�E%�+�Q���ۆ�=f�a�ZT�a��M��)[wL+����iu�5��0rb�#fBFL��W}N+1�2-��R��;�Y�E���ް*�H���XJ�Cv4�@�p:��AR�GO��ɞl���M��8RlIT�ؓ�K��0�7;��8�����\��	��\�Y��<�O�z�k~�2��և5�+��t"��<����!��7�HRa@4��AR����i�d����_�m�t��x��Ff*4'㺓�A�u8�sY�pz���#�
v�L&Ekf>��1,,���NML�9h��nJ&����k�D���8.�?������B2`[�F2�;eF=N�`�YH +F�=T�zz[62�p"�T�1"�$���}V|y�=V,��
;,{?�X.7��f��վ�&`��J�벳<bD
�l���@�$S�0�5��0�6���b��4?c���Z�R#����(����WV����C��"�Q}ގ�x*fd3\9�I���\Ә[<n%���Dʁ҆cj��7�S�@���z��.o�vqSW|7?�b
LFw�8*�T��=nx�k��.4rx�F	�O#����4����K��%�{ef�Ʒ�>��t	�}���î~~���N��x?�#"�	�v4>���.pP�/� �f�"v�d�!��4>��
�:��G��G�	�}T��-���
ߣ�.�1zzv�	e�Gq�ψH~�^�K�G	!B���%�C��9��;f��&�=��i�/�
���e$Cq�	�pt3���Y�@U{�w*��YH��1��;��І���9��NbZCO���5���2���\9�t�5�Ik��0+�yu��a�۶�i����Q�c��8[]H�cf<}� �U�
��`T���Y()�-�7k�f.6���f��Rbih�p�d�������.��x���Hyk���"nJ�����X�3��4$���3d�EU��l���U��=V*q����M[���D���\�$�)��tȜM[��i\$%�)�8'�PCaO���q�`���g~P�m����i�Zk��C�w�7E�ѫ�����q	��`uū����S���G$�Te`�.#�K��j�;���w*�~�?�T�C?�F�^�.��*3#Y�j���߉2vØ;m�����G����jl�%�2���.����̕0t=����K��uMTaM���5$w�*3�<�/ဎC��h����̮�C�LT�kE[���;r���ce��ME/��2�6RX�����?p@�;Q��j��*US�
���QT�bFB���6��x2�Yx�	��p�!O�y�s�_���\�d&{c	�/`��@H���p�Өz�,X�Г������0�iwy��=���)��!n�u�{�1�F\.�!����
�'�3��������ʽ�7-x+T�ɞ�ه=z$2/T=pi���=z܊�HϜ��"�U���d�J�똻�/Y0)�Y7����JH*�L��%^��pY�k��P�[J?A�x�#}�;c�����׊���c�B�߶_Aֺ7���2�S���~��?��-H���:�†�1'#���Ǟ1u`�Iv�]I/XE����(|�]�"�-��1�D��BR%=D"����f<U��`.���QK�SSd+�؃�qt����,��M��
���ô��F"�Q��#�8F%dQ�<"Я�w��9�B{
���]�<K����4��@������6?��h�P9�D����0��4�!r{"�ݞ*A�~z_�)�4)��c-3�ߏ�t��N���CO�*
��P���ש�<O��*?O��H�~�i#��H��3���
�-���@00C5×hi�����3T������`�2-�w�!8��TD��@s00K7t��*空�2�/�
�stQz+��Ԡz�V�T��ndz�Ԯ�<�!HV��jO-����5����Gv���yd�ke(�S&
���,��u#��/S㈯u�Ej���/4�}���D���V�n�>�&o�G�G����M+Ю�R�G�&��ZNm�x;"�A7�o�6�(mln��h=F��	��>H[�<m���v�2�F?���ū����nn�=|+��~��GiOR��;]�<B�����Jg�/Cփ�U�,�<Do�.@K]轝�J�a�|P��Yz'=
+�x
=
�.�8���[VC�{����r�އU����J;O?�`\Ns
|��'1�a�1��S��/}_��9�@ o���[����J���YZ[Z��Bm����$�ϑ�,�L����#�|��wZs�_�2<u�2w����A��.�Iî������b�R��<}��!`�_��7�q�W*�e���5	���%YC��'1�Kn��x�zՀ�)嘿�j���/J��ToF���9�){�����o�Wo)E�u
�Ҷ.�?C۽4��<���/s0�@{�h�����Y�=K{���z���ޑ��kTT�o�p��>$�����/P�'�Nt+����h}����V}ߋ0��>I��{����գ���]Ǩ���B�Ǩ��i7E0���&�Y���pf<lp���(��C�*��/����6�� A��O!Þ�_����$>J+��P��v�}!������i�~�����n����|%�+�D	{
}
�u-�
=~>�/B#�������/�]���
��T����OR��Y߳����~�C=_�bA��!-[ù��S"?��|
Z
0����Ў��+[_y�V7��j]��B���K�-�=��O�59%�!���h(KQ���pX+����&�kՌ[䨚En��g�H�]��dݵ�-9���h.��?F�)�ך�ᑖYz�������tD*� :�R��zX��Ջ%�28[f�80���_f�#@)����Y�̐q��3�~"w޶�UQ��P���Iߊ��
��B�N7&�j��R����ˮ�����w�=�-����*��U�M8E%�~�~��Լ;��}�O`N�5,����-m349��U���j���W�8�ȯ�9������T���x�,.����ec�Y�5�=W��"�>��э�%��X�T�C���T,�a!��B��W����M(�PK
�N@G����	-org/gradle/wrapper/BootstrapMainStarter.class�VY[�V=²eT%�Y�@��f�Ӕ�(MB�
I0K�E�#"KT�	tK���
}�K_��W���}�h;W���ꇻ�̝9g�ޑ��緗��2�'��$�/aZFfd�bN�<��(Ã��%,����+d4aUš�ulH���$w��|x�LJ2>��>�C��-W�����͞�	G��Sf�	h�k[�g����n�$	�͔�����E�h�h9��iebKM�,��R����g�vΦ͒�	[�lf���R@ox3���1]52��miFfܕhflF�ٸ�G�2�����
9gf	����]�j��i����\.n�iF {�`vlm%^�⇳��	h)��xh�_b��I9�,3�ض�Rv�ՑeGe��J�k�v;10�=O�؞��FN/Ŷf��j�H�0�!���S5sq[s��ZV/9ج��� �0/�A���0�V��8���
��p]�;�-��9���kl##aG��]	O��*0��)aO����@w���QԭZT/2��:{�EA�����hUeO�Sh>��ڥJH8T�>/!+��.��mq_(�_)x����~�~8:��[�Q�-��b�X���e�0=e�t�0�Ne�Y��a!�B��3�pw%�%qZ�lk[y�!�ߗ�*x��9��ϧEo�X"�m��P��Ñ��>?^Y���e��2N��U�.պ-���a�f�ʇU�P}�y��~�Z̠zGJ=��S���uu�b*=������ma])�c�T���~E�F�����m>5��J-�N�3�5g"�j���Q�֌}�	����a�^�(�Ԋ�T��:$�D��z�Ñ�^"�e�7���6��j�ɪ6=��^/����i�Q�:y�C�4r]��N������4o�.F�@�w��Z4��F�#�D/��k�>�N3=N�Ɋ���$�7��а|OR�b�3\��_�R�#4��ǐ�b�ŀR��1o��H�MIO+�����>�$��g���/�N��*��}7����%��Üs�a�U�
�"�><�0���D��Hsnҿ/�j�-�IV#EҮ�-ҍ�D$��䅾��QD͋'hKڏ�Q�������Q�]�׆��[�j��:�/��(���_'��\->F���8�@��	�a�MZ�!Nu�†����"�ct��l�%����{�9�Ӕ,:����Ĺ�PK
�N@f[��A
�(org/gradle/wrapper/WrapperExecutor.class�Wi`e~&�t7�iJ7I/RXJK�M6ᦴ����\d���Lv�ɔ��2;�E�*(���z[�&@�(�}��}�<��dwv����~�����O=�0�s�@�qk�	�
���0jp0���ۃx}o�a܁;è�]a,� ��b�%�ex�o��m�}����Cx�|�);�١�-�����'���>(��p8�{C�����F��U32���!< ?Ĝ�<('w��A<�y8���}$�����
�!|2�O�� c��}Z�����B<�ϊ���0z�Q��0��/�i_	�Z_�7B���ݽ�����ё�����};���z�G�D�vk{������Hؖ��ܨ`Q����Z�ޮ�󺂕%:�$z|���ڙ�)?)e�2��2[�I8k�Yݲ
=�`�k_�6�C�}�XW���H��:��0;d-^�լ��ټ]帺%��3)m�!\�43��I�Lk�c��Ri�c�����s�]M��l�̐�~�iѠ�z��6,���_���R+*�<���}z2OaT�2Stlq������5"�43���k�!koS`�Q���y��pZ����f�T����x�]�Ba���}I=���Fo��9�4k�Y�һ�Sp"/BF-C�)-�\���`�̼�,ƻx.��[���k)G�9j���%�n�J�����4���Mk��[�$.�ߦ��TQX]��RC�Dm>)4���a���tAyz3�Qw{c�f�'uۏ��NI*hmy&)�ȉ�U-W[��$�JH�+�u��M��l�&i��$4k���W�A#W���)T�0QA�qj��)��l�9M�>/��Y-�������g�h"e}�����wi��|S���~���e����N��E�PV4�"_��_^���K-e��2�-ۋmUEߡ�J�,gߕ!��{�>����p>c�z��y6E�£�hL�ym�9�2�̘vT��|og�e
NHK�*~�����N2�U�U*F0�b;�T<�*l�Uح�'�)��|E֩�t?�*^�W����+���)��_ʡz��Mf�e�������V�+tLB�e��)�,ѽ��i�v��w*Lq�"����?�����ޑ*i�i��|"x
SEVH��'jg�H��Ђy+=̺R���ݾ�	��8=�oo׭���R�nWZcz�2Dp��Ш������*x����f�碩B���"U�gts[�����=��樖I���mn��L�9=��H��z�ҧ�=T�3�L{t(�3��|�3Mz/�����'�����7����k������T�W*k?v�1��*UJ��-f��4Ǟ�^��w��zR�Mр��3���T$��}�4�/�G���3����oxl��-2.p�8�,w�ԲKJ
��Upq�^�3���L+�o�_�+�6���>����r��e�k���>W��\������n��;�����G��-b'�hF�,so�)VK1��.�H�9>�2���o��˸�@�p3'I��6�#�9/=�%��A�!ۜ��g�c�Z
���
�K�Ҭ�~m^�$��J^�Kʒ�y�H��+����ɐ
(�6%l+��ra�$��Ǭ��'�@;&L��J/ڕ������+sg��B����
�c��A���zȷ^�����\��M\'|�Ո�e�yD�[��+��&�wu>�%���r+砌ϡj<��E`5�X�:��aG�N���p5ǥ.4G��D���U<6�НX>���H8��W��C�ŢGDo���:Tsl���y�Om�sMf�Z�3�U��'G
w�͢��S�)G�$�v�X����G��J��
�m��1v�g�t˜id�|f�b+gp�����r�Ns�Nw������jw�Lgo�!4m8���z�*��̢��{i�Zy�pt}��)�G�X�Ѐ�p֓f����M��%�y3�ť�滑�p��nt;8�On�2��EY���r��Nqf�(U�LP��o2����l
qi�#X��
'A�C�b�a�3h;�Z�Y��v�o��mL�>_��xV�0��A�VLs�7�s���Jgt#��ڏb�:���Y�=�sӪs�S�J�f&�:*UW��ү([P�$sZ8(}s8�yr~,r5����Eb����bg��d��[m�0�K(b3E\�����MrB�D�l㪡m���
c����q�{L<k�h_,��p�	M+��;��,Ś��<+mW�3�W;u�Z��E�=,	��~�à
/E��E4���и�XH�V͡g�_��J{��o�!��g�VѨ:4���qm,a%���ed�(:ˆ6��D�����B�r�OZF��K)�f�㏏/���˯�2��UoyC��w�sU�ux������9�>����b����L"m��m��L�g�[�}/&�7b	^R(@)������Wqf/"m�3�����12ct}�?�.xltJ�Z6�r�*,XP�˝PW9��$K���EX��񣨉n��v8��.
w�y�s3�W�݂z�ʐ�V�7�*(<�S(�Wr&i!��c��o��[��i�}5^S8���
e.��s�����Ө�:���PK
�N@�ÒϨ�*org/gradle/wrapper/GradleWrapperMain.class�Wyx��-6^yY��̭��
V)�&�6�����Ę�]���v�Պ�W�+�}�i��M���j܄�Jۤ���}��G����"�Ғ��I�7�7�f�ͼ}��`+��`;l�DsV4���1z�����b�zҞ��f�"�Y2��@�-�9b�
�y
�V�)
ě�|/P�$�^�`� 6�Eb�bѼDL_*�e2^�+��+�
��׈浢y]��
n��M2ެ��E�[�6o�;���nw*��=
ދ��~��|PƇ���b�X�K]�8��|D���Q�2��@A����Hh��9�9;6qh��;�312�34qx��GB0vF;�ES�1���1�WšJ��������ccG{�$,�2��������į���uY�%���!�&�P�e&�aq,i��)�:��J�B3��F5+)��֞Jf%l���dt��)=z��2݊r���Y��4�wm���e���S9�5k�x�>��W�$,r9�f�`2�suQ�2�h'���H�-Ӵ���m�^��zz��@
��9;����Y�	�9��s����w|6�Ю�|\��I^��颌fe��
�-3��q��
����2�����Y�թ�rM�d���L�5#!|�ue1��K�A���WbuU����IC�s��;}�UsTS:ܨ%��S��l���X[I���%�@
�*6�GX�
ݎ��`�����H1�Ÿ^�/�T#4�a3M��>Zͽ9ʰ���v˪�]@���Q#�Q�$U\���{U܇�*&����>�bS*>�O����Y	+}"�੔�U>���9#ej		!��A͞��f�4ﰥ"#t�B{�9	->;�*emN�y�mM����A	������o�x_P�E|Iŗ�_�ט�f����ˌ���
ę�.�*��o���8�w���a澓�A‚�-2�����C�ӹ�6?R�c�D�OU�?���įd�Z�o�[z�QB�.ݒ��a'�zqQ��;�W��r�i�T��'	]�a�v(�Ӧi�.Oi�l��
�6���n�	3t��'gn?�e�P��lK;�II�3z�V�g�EH����	q
�EstI�_����E�?�������%S	�2��_�E�vW��y���e�)��
/F¤n�_��p�j)}������Nq��ኬ+�N���%4�� �a�4��&��.	T�>8^���@��jeY���FB�W�9U���ߑ+9`����X�D*7��}E�)�w�/c8rDA;��tj���cW!���R�s#ƍ�4�YQA#s)b�B,a��@p�%�p� {5XŽ*���#��[E�k����O��!+��a�I����P]C��˲�ss4K7l7�s^�p���%��_U��r�9��3)M�?+K�]�<|Ŵ�m+
��D�)ϵ�`�܌�n�}h��r�,c�J���<���9\��g�[�%��B-���jk�3D��g�[b{�4o�صM��*N� i.7ֱ)�<���� G\ǧt�:���������a9A&��F?�qƸ�?G6��ur�j��k/l/�����t�,��&%l��V��7�m�$\�O��P��
Q�8Z�C�%�x�p~�l����6FJ���~~�4���>�uq�٪.0ȾO���� '0P��X[5}lj����vEmkuy�[
l����=�W�o�����c�X8�Ec,�F�4�� HZcKKjl�8`#j�Q?�#hD+Vc3Bh�,J�9jv��`����#��<�q��qw'���U#�0��y'y�';�$�E�d�#��]þeMToYl��7��m�c�+��mn�cU��ǚ�E՗�A�Dv�K~7V�BՐ���5���~�Ǒ ���*|G{�'��D����Za��i�
��f���e��9;��~�q]�[#�E@A|�{��{1���Z�J�r#��b�chq����-wt��Z�777��2�p%ܡ2��E8~fxpw@&?�ۈH�j˃��r�N,�G�cm�x�eҷ�Ƕ��,��'�ދ�c5�����˞2�����#�����i��2�Qü��,e,�a�G�tT���y��#���=0`:�f��������S�ޣ�@u�
��}<q�h9I.��Q�QV:�|=�1B��:�T�$C������F�����x��9fV�`?��`'u��@��M�w�CD�Tf�[���PK
�N@����V8org/gradle/wrapper/PathAssembler$LocalDistribution.class�R[KA��f��t�qk�j�xy��ڭ�EE�-(>� �&C��ɦ�[-4���%��4*v�ܾ���͟�6�:�̕�a�Doͱ�c�G��7U�8Wm�x�J|���C�ʝ~�@i�W\���G�J=׭��E3��w-�m��/����t�u�J�8��T�Kث
����~ޔ�����q�:��T0���HτV&�]c�0i{l_��[�<#GY&�~*X�G��Z[{D�o[���d�S��?�]��x�&��$�ꆼK����,�h�>V[��n��Td��sr%�T3��c�2��3%��G�1T*Ƣ��&��q�.��{*z�E��D�{(E=�?��`�r�����j�$*\�2c1�ld�u���}��o�{$��ҏ{r��Z��n�OH�y�>�'���s�݂�N�Y��-PK
�N@!Jf�}
!org/gradle/wrapper/Download.class�V�SU���d�e��@CSzk	-{�B�-�6I��V�¶�n��P��zE�Vg�>8uF�PB�:�ƃ���%�B3H��s��ﻟ�����O��8'c�xA�F%����E�H�8�	�L��|I�.J�$᲌^��	�ȸ�We����B��odO� y322����j��pM�邢K��`H0%d��$�[}�j��fhN.����,��۴[X<�sf��h)�1-�����d�J�ى�s,����4lG5�IU���Cm�����d���Z����9=5��Io�����5���榹u^�։R7l�T}R�4q.�άF^�6�L<c�i���-5K���yC7�t7Î�i�h���׻��C ]e���^W�w���Փf�5�w%5���MVC��]�ێfPC���B�gӖ�Cx�l�p�e�:� g�뀇I�?����iϥ^��͍s���ef�3}fN`P���9���ќ��9I����y)�޶
#T,���o$�ш����0��夙�R\�DE^Kr�Vpm
��b�u�lGV�{��K�
�g�R�n6r�+�ǂ�E��
oↂ�ĮG$����K�_���M O��rP^�r��rS,�Ix_�-ܖ�񑄏|�O�a���!�3�㎄/|����_�$4m+�ߵ��F&>:}��O�VQH�4vn����%�b�U�Y�/uj�;�,/2�+4���ciF���I���m�Aw@"žZwM�6w�����)Ҧ�A��s1���P���vl���H]'�W-RYe�c��g�?w-�Y�RaF|�I�^�R�-�'�=�>E%���M�4F�י��Hu�Ple��X\�$�W!�x[���]�mM�����r����DZ�:�bn��
R��4�
!��D½%] ��t��x���������Ѿ��)btn-;�t���N�n���	���`��y�u�="�E3xq:)��x��X!w�4H҂�PW����7Ŗ�i=�>�kA=9V�l(`2������|c[���}H�<���-���x�� �Z�@�!���U����1�d#:�!���J�׌�{���a]�y(]���4��)��yᑨ?�-]ި7��.ߖ���.)����R�S��q(���v#�4�����k�c�K���T�5�G�+��=���o��/��+hm�c�}4w�VeK����!9�CK�]�K�� J�Q:u��q�R�M8A�=Iu��̟�O/t��G?.ci�!�!,�n`7�w�m���%�D�G����+�����d��~~��SqN��Sn��^X
�K�X���x���O%l�wa���K�L>�u�(.�F:D}
��N���څ���PK
�N@�k�PN#gradle-wrapper-classpath.propertiesS��O)�IUHIM���,����R)MUpKMR04Q00�25�2�Ppv
Q0204�*(��JM.)�M/JL�I�M���**�+��M��PK
�N@org/gradle/cli/PK
�N@���`��1org/gradle/cli/AbstractCommandLineConverter.class�UmOA~�^_8ˋX��B���R@E��	!I*iH�x���J�W�?�o�/%���2��N(�3;73�3���_�������Qd�`U�(ָ�ε
�<���(�E��s�HɴL��Jg���V]g������i�t���d���4�q��&�{F�d��m[�7��0;��c����j6U�Γ�S�vt��0}9����|7IT�V�e��\C:]9VO�BC������L��]�X�
�T� 扠jʉj�u�aq�P��C�A��>ۡc��!�ʯ�h��c��v[���a�NǦ��C��P���Ar�Q��bp��q+�d<����q� t��W�אX�1��r�e����Zu6���]��{�o�b|S)�:���6�\/\5ǫ'�8�R׍[/�G�8�"G��d����0LVǰ4Dy~�>���4u��
9
8]Ώ�!|�7R���ߠ��}[���CL�!�w�	�轔AE�k�$���!ɸU��FJ�F�q
���]ܦ=p�%A���MSOwF2Dr�F>\ �V�u!)�l�."�=�q�@���(���P�k3HR�E��,�p�i��W��u���.�|�9�F0/��<b$y��d�.�]������r��L���eyoQ�-yx_IJ$�^#��<oD�7"w	���U9O�H	��c��:��GX&���3�s�^O�^O\���?�vE���#��W��jY��PK
�N@2_e���(org/gradle/cli/CommandLineParser$1.class��A
�0E�h�Zv庈kC�PE��v�-iI�p.<��S\�p>�?f��x��CD��ln��m����M�J]�k�'i�u#�0��BW���Ք!f������,�B���y�@�wZ�͕t�!�BI]���#��HI�9|g���|{����
�-�|PK
�N@
�����<org/gradle/cli/CommandLineParser$MissingOptionArgState.class��kO�`��6���d� ^�ed�D�%Ɖ&3��g��j������|!���~?��<m��-,M�s���;״���
��M	T$QL�4/՛*RX�g%)-Ʊ�-���L[ı�0�—_r�՝��=�A{*��T,˰\��d8�a�]�,U�f��F�z�7�٠(��0�{��a�m�X�nP>��p�լ��+^��d�j�rk�;���Ø�Τt'���k
#@�w�����Y�R2M�����x�;�����y���(�<��6�;Q�2���i[A��A���-�lq*ud���>8��[t�<
�=�ߎ�6�5�>e1"���0{�f��]��)e��fA�C�(2�A�
��Ұ�;.ᲆuL�A���a�4-fX:}f��a��	�0��R���Y���;�¨~+ZM]x�A���,	�J�r$)��	��iOH��3U`��?�'5B� �(y�ao�2g�l20�9��K��:���B�B��طO�\�]��Qp}mI�yF�)�?mc�8߆�n��e�.⤤�!�
�C��0��S����VW��4��1�k!j��C��T�ξ ���8-0p�fC�C��
;�?�L����]�/���+��y��A��S��?�2& ae\%}���$�PK
�N@�
���=org/gradle/cli/CommandLineParser$OptionStringComparator.class�TAOA�f;eam�"TE+(
�,��"ibBl�C���Lʒe��n�N�<؋H41��IF�7۵
����yo��o�y�/�>(⑁�0ԢcVG�ǜZL�*M��cAG��o�r�`�!���f�wW2U-G>k�H�ر)2\uk�����Q�{�ϐ�<,��
<˩W܃C���#��-|_n��zu��][�5�2	{ �]���|�e�W*3�pGM�s�}q$L[8u��,wFf6�V+*��vz�D�\/ {�k�p���ξ��Έj�����#ʩ)�Ȁ�\��/��%d��0�e�4�(���,���j�kT��r^M>�ԭ�;�ͩC	$�L�!�t,3<�ɱ"|����:���1��:N&0�4C�2o����Zb1�tS��^���S��7D�0����4W��rhJX�
��$Kӂ�����h��O�W��O�����"y����8��?E����߂��
�x��(?A\kfN�{�8o~������n|��C��a�}G��c��@Nc(jJ	-��F��w7B��I�F�J�-��A���u"���?�L�lr6�z�~��ov�����,I��fIʍCK)�&��+d�HN�]�t�.��Y��p?�Oa:�9\#;F��1L�]�H��
��c?PK
�N@����FK1org/gradle/cli/CommandLineArgumentException.class���J1�O�3���Zmłbwڪ��JADA\��}:
��L"���\\�>������,nrO��	y�x}p��
�2a�E�E��9炧=���O�Qz�Tqv���K9fU�v��#�ti��ˀFC����b!���ė*�BE��{�2��ȅ
�����9`)��K��,Ihh��\��x��&J>���p1�Y�I�����T������ة�Q�cB���W4���e"�1[\�����r f����z:���iw� /�~EǒUwue��ԘUi}�R����U��n���v�x��O؞nڷ��Y���a�Tņ��i�k�PK
�N@w��p�=org/gradle/cli/CommandLineParser$KnownOptionParserState.class�X[|W��d�Y&M
h;��$�ˆ�FCJ%6$h 1�_���t3t2������k��ް6-�^hQ�
��R
Z�Z�>���_��~����6�/g�s�w;�}��\y�N�M�el-��N���L>�����%�˧ߑ�F�I�ʸ'e(�`�T�k�>�H���Y|�����-�b_��_��|�o��5|���7���|O�򤄧��i�~F�$�H���F�Q<�����\S�}^�8˸ߕ�A�(�%	�P�g�֠�VZ��d`�	m{-KwzL�uuW �g;�D��R��H�F��׬T�a�G4�՝����	�߀4�!���a	_Dj!�T����~Hԁ
�| �^^�E���I���+k�Nh'�D�3�D��zt�n�H[��u�qò��Ԭt"|w�������/4`�ex]�M�����/o��yH �c��Z71Jv|Tw�j�&���fi����0���|�eOX�VK�����Iɶ�mu;��ny���ռ�P�j~�bv����<-�ѴfҺwHs4�lj��QfL��R凬@�� �iQ\�z��y6G���9�aQx�:�		� ��,���ڊS��䥓�]���eg�*ؐ����18�7ᴳ�܃�(�zY`��G;͕��^Q�at+؅��{|��LJ�1���u���SI=t���ͤ{5(�j�v�QMٺ�Z��z�ú�Yj>�۩".���	=I��ǏX�+�	^��m��x�;] S'4W�8�I#��ԇlGM� �]�?��aP��\�1�pL�kw���a�u)���W�E���9����o�]��i	93��`�J��`o(���:�5=����U'tG_5�7qM�u�d�
o-1�A
~͖�
���ز�@�0S�C��蘮*�=���������3��$���6B�#�%�I����_��_1 p׻,����K�n.qֶ�#к��@-�|^4�/�a�JMk5�y\�½�D�9޷<����$u��37u+��z�Y,I�XK��Q��PQ�`�k�~�MӞ(t jϒ��$�!���Wa��v�Z�hɤ�
;wwP��Y��B�/a��*�:4�]�&���oʷ��A`�L������# ��gC�kj.c���/R��5¡����E�D����bLsy�!�-�����8��e���8SG����~Xs,?u�|S����U%!�N!ް���Q[�dt�����(�B%ݷŤ]��zv�m,�
.�;�<���1�
��ֶ��B����1��$�i�4�_�hf;@pzjky��)+xޠ�C�{�t��[�Q3���!22��iT�[�!�ۦ��G��.^O��%�c/��B���	��qԉ'�U<�����.�A�8���nT1܋À��>ĚW���!־����@AG����P�<��A���\ņ���/��^k���u�����Yl��01�t��l�$1Eڿ��,�ċ�/�/�H/��G�1�M��u&�iD�v�͡n
�,o���~[Fظ�\\*z?_�#�����8%`�<مB:}� oB.�T󹸰�>Z��+)�dH6�;l�)4.�0�Z}I���el
�n���C�f�#��/�5��J{`�މí�x��#�v�븣��-���g�f�<:	���sh�pl�5�gn9��Z�	ʁhۃ}b1��p�C�E�.���q	�k���� �L�Y�WpV��W�U�]\�?�u�[��5N�;C�9L��ģ؆O`ď�wBSwa��8D-(����s$vK����>R_5�җ:�1_¡�g
��>�`�3
�0g��9� ��C)�~�?�KH�N��Ք�����g]��i}��I��6�-����I|?"�PK
�N@��|��7org/gradle/cli/CommandLineParser$OptionComparator.class�UmO�P~���Q:oS�D�6��A("8�,.`2C��2�Yҵ��?��������_b��`<�m�`���{�s�s�yi����@�R����_=�1/A���E,�x,bYB��x"b���D�"�E<e�Z7,��`���{B�>��ʆ��4��V�7I3P�����9߇J�{o���#ϰ��]?�ͳ�dY�S45��	�X���Rs�SW�����Y<��qug�*�� V�z��� �T��qھ\`��vh��u�{
��cM15��T<ǰjj`#H6�b��?ԫ�ڮᧈ}��Lڸ� ���.2k�Wm�&@��Q�4��3Z��Q�a*˰��
��*vé��o�L[�9N-#�~ϰ)b�a�-d���2�
�?+⹌"^PW^-�fdȢ��%��-��c�=�XB�^2�Ge��F
�=�.T�a�S�ţۂJWӽ 
j.�����5w	X�[�&�)���`P�s�N��
��;�ť�
�]�/a��o�4<}�u�-G��)��\!1u��'b�wW��"Y�m�	����,A���)��ޱ3$>����L�jM8G��gG�SH'�h�����Ȳ_~ԥ�9�ʥ;��d�H�qc䛥���$���t�ӽ&�"55}��zN!�t��xlKa�ș/M�K��QH�Jk,�뜳Lh&�0G�8�>~
�:�[�NPST�e��H'I�Џl�~P
V0�PK
�N@သy�n?org/gradle/cli/CommandLineParser$UnknownOptionParserState.class�UKOQ��Ӗ��@�"��C���� �D�	A��K;G�3d:U���Ņ$<nM���7n�wϝNJ���.ܜs����9�~����<n+�a\A&:h�fR��8�R0��(�Fq�A.{�ӣ�c�?�nYw�D�A}`ۺ�l�rY/3L�8��3\^��\�2s�N����i�U�H|�!�]�!���9��Fn�sM۠�x��0|���)��$�`ڦ�Ƞ��36'h���:Cx�)Rq�"e�R����|��ŋ��ֹk�}{OMi��v^��<ӱ����N��ݻ��K�Q)�G�3vl�p�U}�[rO�3�Iq�C�;
�m�1�k|DN�[�.F�^��6��M��'��3%�4�H+`zٚSq�=S�?u,gB�QE/���Wэ��$U(�R1��(T��b��y:��b�zIJ�L?��B1��[m�P�!`�����m���ܪо�Ѹ6�:v%��C�A���!�J����D>I��&��v%څ�k��6�����CX߃�CRdS�i�?Bf�����f_�Ǿ��iU��ą�_�+%%�	Q�,�Wgɋ,)��vODD�7�W����1 sR�ys��,�H�*x��t��NUj/�q���,R��"��Z��#JN>dT��8�UWR��J���k�$}�Ʋ�`;G�z��g�9��b���h�si_g����0�e�I~�"q�B
��Y��*/�GB��,���?PK
�N@�|]��&org/gradle/cli/CommandLineOption.class�V[WW�1�BD@�T0$bl���*�P.�P�Z�Cr��t2Q��ҷ֗v���ಮ��'�V�DH�}&C�d����ܾ����o����x_Gq�*�h�|a���-Ő�rbE~���(�;���<�X�(���>��r�P�t��A.���|*�
*�U
T��V���{�X�T��d�3��#k��S���c��Sե���c���4oh�]�l������K=��S/��۸7��7cyQ�نKFA"� Z��嬍
��gD^�l��e��n��b�$lC�M�]�)�h8�
��>�YG��)&�V�f������X�l�	{Y�IVN7Wtېko3lyی�55nY\PDzI5�,��9�.d
��7E&g��*}�iхi(H�����䬧G����H�9V�!Z��z�c?�4�H[�˗<#(8�[{(����$����w'w�'�z��l�#�%��{b�� ����ߏa[�+&�`_�f^ȦwQAݭa.����/�=9F[���(���� �.��ףY�b��5Cz�/���a���ݦ����l��A���3
&�5aXņ�",%
���o����+xL���sF��#��oQ
�p\�lj����B.�$н]�C�C|��5�@R��4w�_��������#�sܺ��vV,��
-߹}��
��{�,p��}/=ܥ���ɬ��;Ի�J��;�^9�y��d0Vz&��JB�s���[3l�b�Ywk0�`09�_�Ǫna�?���FB�
��
G��ej����|�G��}����1��Ns���x1�J���@�B���o��K�
�O�DD�3�C��.�~Ah�%bmX}��_?�'�}�A2!��#�Ӥ8Mj�<I��4b8ER�2��m�z��� ΐ�;�k�;gk"�qv<	�d�>I�G7�[)�9�&����TA���&�-A�sG�t��#J�]���n*��ux`
���h�@N$��=H	��l�s����y߻|��2��Jo�3��</]p!��a����Ć�̗kL���+t��sd
--�m�rL�F2���� ��m�w5�8 �dP$���gh�pC�qp����U��(�$3@uGHo���q���ʓk��-�b	7�l��&<i��c������i�uʶ��1�N�p������0�ͷPC�j���y����kͻ����ν�8���%�P���F=q'j�>�RS�-���>>j��ͦ�N4:�h��[n�ܿPK
�N@���>��8org/gradle/cli/CommandLineParser$OptionParserState.class�R]KA=�Y�vMM���w�)F)n_$"h@�
�<�6I���fVf'%O�O}*��U��	�XH��p��=�\�����g���#�M.6=�<l3dO���!S�k3���'�M��͠���w"�,6�.��\K{']�M&�OF���D��~宕��$D9n�:B�{���q��U��Uމ��cE�67bh�u��0��O��7Y���+��2��#�΃��0h-UX�Zq>�'��d�Cڈ*�"a��0�V'k��&�a���?ljԊ�+.�]J��N���*Gӯ�����m�QtiȯӸ�P�<
Ci�-�va�,;���- $�1���O
̦$�|�87"��G���a!�E|Jq	�)m�`�+c�Bg,�-^F�i����l=�oP{P.Cgs��<a��3!
�/PK
�N@���i�&org/gradle/cli/ParsedCommandLine.class�V�WW�M�	���@F[�*P,������eH�06d��Ċ�v��ڽ_���S����[{�7�c����LB��ғsf�{�{��w�̟������VB�D(<��@3�E�%��EB�*!h/�U"��Jh8�O�H���P�)	UHWBnj�L%.��aIt-+a.�xRB�����sA\f律����v�g�xV�v<W���;yQ�K"^P�g,MO���F-CK'ig�rQ�e--V2�*F�dZ���*`����^��t2f�ҍd,i(������q�0�D�>;��CZZ=�=vv�媌��jڲ��b磪E*;�w\rC�%�Pz�dv�̑��׆4�Y�Y����@��֬nZ
�-�P�Sjg�_��PY��f$;;��ؙ�АWRc�����YaSL.�B�Om��ڂ�3K7�L�p�l����]¡;w���q�Y3��[f�tE=��Z7���0��Q��E���ᱴt�ecUwYƂ����ږV�$�������ƈvO��̀�Xm�d�g�L��Pv�PVK%T�ZQ3�j�IZ�$ˬ<�
�Z��k�3�����-���%.r������j)��P��ž�U���5J"�-�)���B�h�E����s Ϻ�޽p�\iT�q���j��Lo7�.�^�B�,��S��2Z);�Q'���[>�1e��$c��xU�kx]�2��[2��;�wCF����w�i���'��#[�a�n2���1��.�>��)�~��А]�?h*F�2>�5j�f�OF7N˸��d|�/hXtA*�&�T��Kq�Zoc	77���n��9B���2)�K_1�_�r�ʈ��j:��xKi����ma�*�K�=�3Ω6�ʽ`̇�wi@P����:5�/��̦�!�\���ȑ�O��h�hMeHN����Rn�|�5��9ݘU����;��F����ɨ鄀v���8
���h�z�@o����vꆧ�x2�}*,�D�'����R�q�N%�'�$��'Xh�Ëkp����Ѓ(����������{��T��H�6��v�F D��X��6|$�I܆Hb�Ċې�Q)`8�Y�5��F�o�YB5���ϣf!���fW\���_C����Z/�o��Ɲ�oQ^�O�$zn���UcI�h�&�f�a}�6�2¸B<@�}�F���q�/�o�>Bڅ��AZw��Kܜ�����!�?�I��m��3v�$�$�0@^�N8��3�&��#.`�脏�D�M~�!���x����������M��O.����8�����1�8�������rR4�i�ǣ�-���/Xy�o�#:�ƛ%ܶR0���'J�v���b��y��`�vSD-�]?H���:9{>e�����	�0F�D6��8�\f�i��3z��Q�r����H�<��3:	y؃��J\��s�Vg_�QCgȜ�F�c֤��2�����6�V=��K�>����kc�Z��_��q��TU$RM
s�a�`�m�㶊�՚��1�;��?���r8QP~ǠM�#���C�̌�&�o��r��v�9��3<@�Q<�XL���X���=�[w�h_�������$���'b[�i��'p������rJ��{��z�_PK
�N@�A5l|:org/gradle/cli/ProjectPropertiesCommandLineConverter.class��KO�@��D|?Pâ�u�#Q�+�$�C;�1m�	�JW&.��(��1�D�,��9��v�o�/���[@yl汕G)��v�
}FHWkw�LS����!�]�nY�7�ZK:̿cJD�����ZRy����s���V�;�H�+-��)���n�kS�#cruLX��gh|��B���j���F�Y���D��Ώ�%�L��%���񎅎*�_���?�ֈ:("�<�ڄbJՍ�	��؊t�f�^*K���
ߵ�
XU��V����i01�k
��p8��wZ��8T0g�?P�a��m����=���C
S�s����|	�1\���Z�q-}C�_�J��Eˉ�j��E+	��w'��PK
�N@1��PForg/gradle/cli/CommandLineParser$CaseInsensitiveStringComparator.class�S]oA=�|l��E��g+Z��ꋁ�Ą��	M��i��fwi�+�^|���g�Q��β��`01��w�{��sg����	@
�S�� ��$������
�uTu<ԱːlHGM�X�t�o���֑�x9��w�{6E����#�I������/ڎ/_�TtO:V��p���`�Gx-������׳L��[�}[��qg����/���:��wt��b瘟r��eN���H�M9�I ]����̎����X���ޱ����b���'���IM�ɀ�ni󵺚E�_��]i9<+%��8���G��|�M�Juݱ�/�nn�ܮJ2��%{��)��He`:1<��1�c�6İ��#���j1�G���m[��	U�as�R]�����I�>7ʢ0M�D;�v&Y>��ޓ�!MkR�W\&ߘ��,�3!	��!��d���bͭwHlM��̘�
��!ɾ#�~�`?C��43bU�&ra�,����\�u�2Ϩ捨�b����g$��?Cr���)pV"����Hc�<-R"?!�EJ��J䦀a���y�!�
���+a�^A��~�,2+�PK
�N@�%�t�&&org/gradle/cli/CommandLineParser.class�Z{|\�u���qw��mY���`[`9�Ӳ
��Y6`�d@#�<��W�ګ]�we[�I���@H �	��Mm XB�hJJۤ��4iJ�h�RҴi��{wW��F�hf�̙�s�9�?}���^�\�F�TͿ��_U�w�x��#��u���m�@ït����5�S-����h��r���1������tT��r��H�j|��u�$��u�M�������Uc(�i:����P3���f*C2�Z��Ti2GG#>�d9I��:��AH"�e�jNV;NQ�|�`��P5՚��c5���4M�X+5:���r��,ѤV����hR�I�����]4i�q�Zl��!i�d�ZYB\i�B5��r��T�M�,�Ų*$�5iU�5-kC�N�>$g��5iӱK1� ��.i�ە	��dM6�d���=r���͔KO��\ [4�@`lN$�T{ܴm���:��%]�T,�ߞ4Sf:�ҤS��ݴ��	�Jرtl�UL$�pw���*��-�7�ܟp/4S���J�iK�)��]$��1}���#f�����%��֗�RI�`�3sN,e���z�׀�����/����5�$瀶�f�*����Y0q)�{K0#��0��ٲ��g6�c��sp� ��O����T�������f���-�Tsʌƭ��x�9��X�rE�YO�3�x<��#v��f���,g���\��Z�)��t<K)t=�ʎ%������zV�
���uc�6{��\K�����:��ߞ�Z�X��94�c�.Q��%�k�/5S1����wǨ�ia��g%�6�WF%%��xRT[g��,�b]�(�4O 9��N|R�&ڦ�V6��V��Qm�&�©�3�3�%8cRoԔ���D�������Jf�Qy�C}��\��ܛ����CY������=��5��B3w�ņy���1��K'7���9�Q5<��,���H*�2[�L;��\8��ēL$�m��|��-a��J�m��O{"ѿu(=8��R�9�䀑,����T�Je�ɝ���JS��~��g��"�fK�VD���0sj��:�R"��H�ԦMn_U�m5δb�J�#�4�1L\0���8';M���҂@����
��
m>A�Y}�5^fx���ӋU�����Z��ߓ�1�����oO��V���=@"@xV�� [{����g��`��m�ʁ`�P_�:ɹ%�68+J\������+���H-NѨ�]^q�7S)�?n%jr�I�fo�e�5+�-,��<��x!�X6�s��y�Tv�Y�����rG��SgXrه֒޽���P�����9%,�*��]���V���<��vEhr�����gpL5���^$�gڻi$o`5�a�N�e�xHP=2�pfjr�!Wȕ-W���Lzy�jw�&��D�a�!����-���Zn��8C��ɐa�6M*4��U������W�����A�r���%mȐ��eV�-�7d�PÆ\#��p�%����9i�n�|i=�sBնl��)�J��uJѓJ�7����r��`ȍr�!7+�?)����bȭr�!�����GsIʲx4��S��&^�/�V���a�A�3�p�{�h.��#�$�	ST���c�]rw��m��9��M>c�=ʕe����?7�^���}�|N����^��
y��G��1�*����ʼn��r�ِ/�C�a
Y�˃<c��Zm0�K��x��&)�/�ϫ����f������\��Zǵ�z�b{Iu̮6����pu�uEŠ.UZ<�N�CU!��n&�t��V'�ܛ���4v�L����һ��4-Y��'��&������޳'%��zR'z�N%���Â��0`;�Sz����e=��)~_?�+`*�Y�6o81�G�����J^ȹ���(�YM[���v�VQu������'��&���u'*�"'(����$�w)W�N�<���3��m�#��T^D��Ò�T`^ރ��t�h�۴;�i�gVS���1��ΫT�0�{�3��B{U�G�C���2�vA��H���k��h��zw��
�C=v&<�j7{��T癰�Ä�W�~į	�3”��_�M��Z�8�b��u`k��&mVg���4�'������.�M&�f,a_���Asp�R����E�*���ܳ��S��V�5ń��[��-MA��ӻ�0�ʓ��d"{�e֌MJ�%��d&v�r>{%9ky�RA^�m�G[�!�g�̂lt.�^�U�Ǣh�u�F��MŲ�!
�g�*��9!�,�ZÎ��';L�ŀ
 �1���Є(�R�lj ��q��L��l�u��L��@_|ȦV��|�[l���y���X��'�1t����ǔ�fL�8��3��KY�\���g�Ʃ�a���k��U�O�;g|��+ջ�����NZ>���˯u�s̨G��iG��"���lu��Zn[��82\r|�V�gX�"+E{J�(�d�w���|�
��v2����Yl[��l��6���G��݉(�f>"��5W�2�*\��,��`�7sl��z[�X�s��8��\�ce���Ǘ)|���>���l������g�C�`�F1�cU��2�9�
c8���?��\�!yC�"��0�5�	���C�d$Py��B�8t��;��C�����0����O���`$8�\G����H�b�>�t)�H�D�j-�/�U��Zn:���M�:��@��l#�`�n�Ө?�*R7��0���ȃj�6���5�̎ǰ��x3���V͡�2�77�����U.�
E�b��~Qk(��P	eͥ*8��WvZ�Ua岖ǰ�V�Kٵ�U/d�gX�9�+;o	����Yԥ,_��Q,�L/E�;Gvf���5�`U��'�O���a.��;�;q>C�\W`/��0���=L�^|Q</��~�����o�DZW�!.'a@�#!�HJ��3��.زiك}2��r=�A�\#O�n��q�����M�*��6��׸K>Ľe*T܏0���	_��l��B<�G9�*M�i��pW��K�Q�ix�C�i��S�g5D��̨������Nfo�V�
G8D�<��� ���k*������μ�+��x��H~�'�g�(/�72�E��8~���JΨl���௟���a��ì��,�JX&�=Y<�c._;�&n�ƱZ�\+�b
dm7�}�(�w6�dg�a�8�f@����ư�0�luao��#�A��F�f�89��>'��\29�1��\‘p�˥j�#]�K���	ye�6��Q,�X>�t���H��gq�P�-��(wx�V�	$����S��|-�[��J���G�j��N�
�Lly�����rQ�ܖ�����lw���Xy��l�v��j��ӠՍY{.�)UL����Q��n����]�#�T���t3�#�:��
��m���`�g ?� ~�a�"�?g���T�����g�?/xA��Ҏ��/�~|G�+�:^�7�Z�~�3q�F%R��Fn�2�3��S��8�Կu���Ύ�r/00[�&a�2
'�5Y���\�򯠾/q�"rt�T g������yX^���DD���PVȃx���_Y��'��`��zN�?%l����9�ǟ�x�����l��G���.����
�!Xٱ�~W�_�X��v[�#�����
ʯR#�����i�p^OI����8ob&�
���2����Y���M�[�$�S�Fo2<��,���K�3�>��2�ᯩ�����ʃ4��-�.��
�#��@���W�Ň:_\�k�W��?���*��րs�2�ld=ݕ���t=��(,��*������yM>9��nU0�bwG�$L�Φl^6������7f��'���z�m��?��V�����"��	��+�]��V{���.F�l���R(��V�8���3j|�ۥ������ĨiF����lw���
�=<+�e!�ڏ3X��^yZy�DQE�2���ɐ��?���+.'�7���䲩I~��+�,S�L�,W��;+��g!6�=�b�Q�}�B�S�5�ϩ�X����a1��E�Rf#��!�~��Z�W�O��y�i�Cܹ��~���9���5�e׫�_��7�ˈ\1�L�O���.�o��`��PK
�N@�`�ť)3org/gradle/cli/CommandLineParser$AfterOptions.class��O�@ǿ׍ut�
���@����1Q����$�[���j���|/�!�J��/�e|������1Mz���s��y�k���@KTLjHc��$]Ŵ�$f5��SQT1ϐ�����-,�ђ��ͺ�k�eV�|Ƚ�U[��YbHݰ���d��w��0$���sҰ��ش�G|�!�`ɭr��=[�1鿴��[/|�[�ۮ������f�"��93H������
�~�*���[F����+���u��{��/Mm0$�W��uL2�"�Pq�a�%��ҤO5lt!w�_D[��qŚ+�T��+���j�����2Vq���b�
��|���A+�[^պg����Ef�AV��d�M��b,��x-�w���4%c\Uq-�E\g�9R2Le���t��w�a��D:�B�Çn��&ڊ��nG\���V���{�-뀏@�b�!�P�I=Pd�������)4ft�E7� �C��~z�#A+W��֠�u��6�rGǀ@�XF�q�������f� /a9�P��,'�N��UZAё���SC���̰��>�Xh����(�3$)$��};�Y�T�+R�U�3���y$U�M�Z�,|4��!?��`;�2|�0��p!�6)�a<��b�r�N
��T ��4�J���s4hD>M�@3�~PK
�N@Q�b���3org/gradle/cli/CommandLineParser$OptionString.class�S�NA=��,+]˗(��U�-e)�'��#�
�Z�lw������D ���q��Gb�w�+B��s��;s�=��̷?��(�a/Ρ��1T�(©J*�a*�Q��(LY��n��s
n)���~�!����p��n�\
}ۭ�3�x��\rl�&��:3�5�DūY�%۵�����o8���U���}[�Q2n���"��P��u-��� �h�\�Y�yͱ̪c����nM�x���sG�$��n�����w˼A}�nBS����aóS�<�OY�"�vF��0�����x�jA�<7C�J���
UW�m�j=��Ї;*L����5d0 �]
i�ļTRpO�<F�K?ڶ���k��E
�1�J.aL��ҙ�3��llYՐa���[΋q���Hwr?^��&�P��-��WΛM˭�n:R�f�j�$n�ҏ�����8�ˈ)Ӛ��zs��S�5m�#nw�0�v�v$tH�d����^����0L�l�\�'�0�F1��6�6�e,���$���c_���#%�^�3Z��~�迍�c9��Z�%�U7��S�z�������
��p�օ�l^!yB�b���i�} �F����G3P0!g ���!��p
�;���vYǘ���1LJ�Ǩ����M\��+�BO�PK
�N@��E#�!;org/gradle/cli/AbstractPropertiesCommandLineConverter.class�V�WE�M�aò�#6 -��HI[j�h
TbÇ����$KXv����ǻ�㻯���=}����P�l�4��6嘜3w�Ν;���3w�Ͽ��|+�"ޕЋۼIJXƊ�U���{������V$$�ֱц�ن��Ǜ�A|$��� >nC�›m�$-"å*bGD��eV�5{��]g捌�Б�tu�����w��iBI#���S�cW)ػ��0�4�l,k*��K�X|۲M%m��F^5mM��}E�p��~@J՜a�ʪ�F��y[3t�ӑ��r��r����lSӳd��1]PmE˩��sV��\��iC�Ѳ� G�VA[SL�pq"Z�N�a��dm�[=Ϻ����t�QB�lEO���x���-+y�hMiY]����^z��9�"��T3��D�@�T�������l����P=\Wru��7U�rB5ʚO��V�JP��उeҬ�y�1H��i��]w�=����'-�j��]��^��&�:izk/����I��4��u
]���ys�6�����F�}�DQ:�H3���x6Ǜ�-ܗ���c�+ce�M��D<��þ�a>�à{��b�fyn��S�[DA��(�8ħ2>C�n�
����e|��y�(.1��!B�e��'*���K��k]e7��}U�+��a�E���{޴�6S��%�w���HS��iUM����O=��a�ߞu�F����^8����!�Y�.��j��[i�4�,���!���2�m��.=�35=�WwbN�@v�"�R�d�i�
��?�9�h��4�������{j��(F�n"cO�~���Զ8�n����p^9��a.�f��N�d�'92��M�X	�Ԧ@BH�X��в��XBp�ٮ!��g�9j���y�@�[�Ӌ`���A՛qZ-��A��~�$G�
��O �T�`UTA��c�ɠjC�q?Q-$��9��J��p�a�����"u:��w]�B�%tM��a�����#����p�W�%�ݩ~�rt~]?D'�a�q�"|�b�St��}�p�s�h�tWi6@�o�����mLa��i�����M'�-\�E8[��kn�f��i�r9x�s���{�G	�D68�q"𦛈%��Ic�ѧ�)�����*�%̻�%,`��υy�8r�_PK
�N@)*�ͥ�,org/gradle/cli/ParsedCommandLineOption.class�S[OA���-�r�\TX.B[��Z�Ą���
�d��%{!�?����� ���2��]�I|ؙ3g����9���2�^̪(�lzPʣ�9w���!�y6��+�E��~_�U<R��gV�=}�]�ό��Q�_Q�U����
�;~/Eg�٦Q�]a��*�d��-���d��� ��4)��&l�&hms�۶�S�9
fm0W�s�L�;�*)��4L�5-n4,a�e�Ǜ+N��즤Z��cS���
)@�@�t�$�p� ��)�]��%����\v͠�m_�`�2J*β3H�_���N�6�k!ߺBق�0�!���-�.;�j������ੂ��<k��Mf�}���
�"�՛�t����uf�a�d�I
�@������Ş�#�G�%<�Y����t��׸�ۻ�A�5��c�9
�%������V[{�A8b[44�8��a�V���Z�,DHY�:�ѹ�_i�zzA��W��K{?���"��A�u�T�$�+A)� �y��7�������§�,-�c#�S�1s1W���c�|D�	2��ٟ���T~�ݹSw��~A�|�viZ�)�٣��桷�P9+a�%K0�$��%�9Y&tN�����Vt�M`2��<R�&I�ѝ���("�R�7ac>iMQ&Y��0f�/PK
�N@7Ɋ���=org/gradle/cli/CommandLineParser$OptionAwareParserState.class�U]OQ=�]��v����b)B�G��$bH4�i�o��Z����֏��/��MD�$��qnYjIk�/���3�L�����K،!�I
:2�iJ���1�!���Y
*�U,h�aQŒ�C��4ܮM�`HQ���YF�j���\�Fm�f�!�=7��bt�U($zôM�.�Ù`x�|�̠l;5j6!{�F�OxŢ�@ѩr�̅)}?��vR�^z�co���W+yܣ��kۆض���[
�2ӛ��k���V�w�a�)�W<oq��/y´��٧a.��$�ı��� ~����;>ݦVr��j��xR]���#����X�я:naLŊ��XU��cˁ�[�<C��J͊�f��jw���y|>40�ӕ�k+�!�ܿ���{`�^��Rku��{2؉�]g��ڃ7��en5��,S���K�fΫU�u3ˋtq��p咾�/W��g�ۥv~�t0N��7�N���ɤ\z����
�d/�W$D�l27{�c_��"�ɯ�R�
Cc#H�QQ,E9�!;
���F�8/c�g^#_�"��/P>��"�k5�i�Dp�g��	��}-T!�a��#˾!��#��ғ�<��#�}W����$K#�&;tm݂��VM#ds���˰����"�2Y�"F6O�7�"�
PK
�N@$�R�<Y)org/gradle/cli/CommandLineConverter.class��]K�0�Of���5��Z�V����P

-�gmm*Y:�m^��Qb�B).����y�O'?�_�p�6�p���s>'B"p�`���K1�޳$OR⻵��dJb�#�=|��C���l8B�
�X� �2�k�P
Ʃ?��(RY#v�j��Mc�b��;'����IJ�8e�+3���,�<	_��y�F<58ٰ��QUk]5�wF�Ζ�5������>���q�a^��<�T�����"�z�Bp��\E��@p��x/h�.���A����m!XK��jg�zl�j��V����
����-������uYم=��PK
�N@@ͤ1�|<org/gradle/cli/CommandLineParser$BeforeFirstSubCommand.class�V�r�F��V�AV�qqJچ���!%S�$���:�&;��#˅W�#�-�L;����3���C0����`'rf�g/g�=��Og���<��='�x��%Q,r�dH�(c�p	�p|*&+����9��*�5�qC�0�9�2"��(p�bt~0�Y���eWժ�m�t�R3�5�^���a�4���9B_4Lù�pu��:�5ow�r�Mi���N�F�^���Z�F�Hުh�M�6ļe�]��~ϲ�+��p��r�'�r�4u{��5:�}I�{:���*{��t��a�2��f;���a�_0�xc/-:�kk:_�QSk�YU��m��\�%�O��7qjvUH�叾���I$o�-д�o����x�C�B+�a��arE0<x+���:�[��h���c����A.ZM�Bi"rp�3#�Vp
c
F�.�m�̑d��(�ė_)(a�!�'�����a�7��i=2{$㩃����`�C��+v�Y�M�����gZ.c�����r.65٘�a��g�|_�8�+�P+�GZ?�@���_�ެ�C���H����Z�;��{埮�&�bX��{�d�R����,]��}����5���P�}*dU�a8�I�˔W{;M{���~lq���}��K��Pz:kt���_gB�R���,K=x�=\�v����+�e�������M�+b��;��â��(�����z�f�h�^I�~C �J� ��x���b�Mc�%bI|@�QZ#<��7�U[�1�Ź��1��]H�T��``#�+O1��<��0�,�I#뙏���.�R���$�'�.E�K�D)�)>Ex#�w)��1��'m�����QU1�f1��H�9��<�\���6}S�&�b��Q!l!�4}���`R$Y�u��H�sW-��֠pæ�0I��1G�3wt��K���=.�>�!����Iz�&K��II<����W�J=�C��5���2n.J��R�P��$�PK
�N@�;�|�9org/gradle/cli/SystemPropertiesCommandLineConverter.class���J�@��ثm���j�E�5BDą�R/P�~�ӑ$&�B�JW���'i�A�Y�3��͜�����l� �"l�Y��l�E �<&�	d��@���H��g�L��{:r�R�s�:C*X4NĬ����Q�۴;hZ3a ѽ�G!]��G�v�7S"�5eb
o}ɸG����tFM�z�9��y���~X{()spL`7e.�KV,
�TXxɢ����fDT�E�G��P�W��Jm�h~���49A�jx��Ѱ
��s�h��
gԙ�n8��5��]�.F�Ԓ�s�9��Q��΢��*�s�/@�Ug	J*�c�e+s��+1�
��$p���6���/t-�,�;�h-�.�Z
�>k�Z�PK
�N@��I�2org/gradle/cli/CommandLineParser$ParserState.class�S�n�@}��q�4	�@A��$MSn(�HHQ�����6��r���E�O\��ā��vZ�&R�%{fvg޼������/pX�v��vUϱc�n�AȾd�!d��ى�a�H��r�Ա臼R�F��x�h�g����(��S�XļX� ��:��=�lu#廾��sa�v��Hȡ��U��ۄ�H|�{���""IX�w��'�B�n/V��ۍSB._�d��5˙<�j$��l�J����&s�.�3���<��ٷ��,}N��Jy'�6�j��Pm=m��B��	N/�T�}��1��҂
���Y췚6�
�G�F����4V��p���� &�\��	[���h�N�`�D<8ӗ����🕅~lZ>`�#�-O����1��7��B��B��v
0�	J	P�m
��*CC7˙�0�ނYI`6Ҕ&������ ~�M���]3���ͬ4ŌRȢ�|2)|�֘Ț)���X�|,<E%){��o��Mdx��U���}���_PK
�N@�6�7<�	;org/gradle/cli/CommandLineParser$AfterFirstSubCommand.class�V�NA�m[8�P* �G��µ �R, �bP�vm�zP��_��=0Ѡ����(>�q��@��B◝ٙ�������?߾�⹈V�ʹDD�AI6���k�E��H��/�E�x,�8C��F+"�)���yS�T9[�䄱��蹔��+�YT�YOj�fM3��6������bk���Sڸ`yg+��/�L�$���U
k���}I���2t�_[���̢���)A2H�����R,�d5V��i8�7{lyJj*#ah1�UK1����C��;W��"�W��
�"=/�Z���c���ڞW`�n����U�ї3l{r�,�tIvַwlbf��y)�vxQ�8\�"|��e�!P�9q��1�jR��Ua3��#��+|h�TBs�%,�CO�l0L�t䥾���)%�]M%�nrǖ�vk^�X���b�Κrj���|��Z�K�a�BmUOL΍�]�TO�TM1|�>�r�]Eg�cDu�d�j��P����Ng�XZA^R���8!�ΫC_��Hg6Ԭux�\$`�FՉ�ޟ6^.���L�ͻXר����~�yi�ԅσ��˷�{��||�熋�7��������}�+
����.t���ul
l
^6�.�u���q����D2�[t���M��?����W4���˃?�?��"MS��y��:�;�w=&�4x�l�;r����Y�l���	:��]���G���� ��p�8J��4��O
v��8�F~����#p�l.hG͹�vVm�!\#:Ch�W7In���G�&:��S+��D��iQ�x\X$��PK
�N@(T�jFDgradle-cli-classpath.propertiesS��O)�IUHIM���,����R)MUpKMR04Q00�25�26Spv
Q0204�*(��JM.)��**�+��M��PK
�N@	�AMETA-INF/PK
�N@����)META-INF/MANIFEST.MFPK
�N@�Avorg/PK
�N@�A�org/gradle/PK
�N@�A�org/gradle/wrapper/PK
�N@h�df��#���org/gradle/wrapper/Download$1.classPK
�N@Љ��pD���org/gradle/wrapper/Download$SystemPropertiesProxyAuthenticator.classPK
�N@��Xs��"��Torg/gradle/wrapper/IDownload.classPK
�N@��Uӈ	-��>org/gradle/wrapper/WrapperConfiguration.classPK
�N@!���
0��	org/gradle/wrapper/SystemPropertiesHandler.classPK
�N@+Nm	q&��Eorg/gradle/wrapper/PathAssembler.classPK
�N@�4{6�� ���org/gradle/wrapper/Install.classPK
�N@G����	-���$org/gradle/wrapper/BootstrapMainStarter.classPK
�N@f[��A
�(���)org/gradle/wrapper/WrapperExecutor.classPK
�N@�ÒϨ�*��J4org/gradle/wrapper/GradleWrapperMain.classPK
�N@����V8��:=org/gradle/wrapper/PathAssembler$LocalDistribution.classPK
�N@!Jf�}
!��B?org/gradle/wrapper/Download.classPK
�N@�k�PN#���Dgradle-wrapper-classpath.propertiesPK
�N@�A�Eorg/gradle/cli/PK
�N@���`��1���Eorg/gradle/cli/AbstractCommandLineConverter.classPK
�N@2_e���(���Horg/gradle/cli/CommandLineParser$1.classPK
�N@
�����<���Iorg/gradle/cli/CommandLineParser$MissingOptionArgState.classPK
�N@�
���=���Lorg/gradle/cli/CommandLineParser$OptionStringComparator.classPK
�N@����FK1���Oorg/gradle/cli/CommandLineArgumentException.classPK
�N@w��p�=��^Qorg/gradle/cli/CommandLineParser$KnownOptionParserState.classPK
�N@��|��7��8Yorg/gradle/cli/CommandLineParser$OptionComparator.classPK
�N@သy�n?��`\org/gradle/cli/CommandLineParser$UnknownOptionParserState.classPK
�N@�|]��&���_org/gradle/cli/CommandLineOption.classPK
�N@���>��8���dorg/gradle/cli/CommandLineParser$OptionParserState.classPK
�N@���i�&���forg/gradle/cli/ParsedCommandLine.classPK
�N@�A5l|:���morg/gradle/cli/ProjectPropertiesCommandLineConverter.classPK
�N@1��PF��Voorg/gradle/cli/CommandLineParser$CaseInsensitiveStringComparator.classPK
�N@�%�t�&&��
rorg/gradle/cli/CommandLineParser.classPK
�N@�`�ť)3��‚org/gradle/cli/CommandLineParser$AfterOptions.classPK
�N@Q�b���3����org/gradle/cli/CommandLineParser$OptionString.classPK
�N@��E#�!;����org/gradle/cli/AbstractPropertiesCommandLineConverter.classPK
�N@)*�ͥ�,����org/gradle/cli/ParsedCommandLineOption.classPK
�N@7Ɋ���=����org/gradle/cli/CommandLineParser$OptionAwareParserState.classPK
�N@$�R�<Y)����org/gradle/cli/CommandLineConverter.classPK
�N@@ͤ1�|<���org/gradle/cli/CommandLineParser$BeforeFirstSubCommand.classPK
�N@�;�|�9��S�org/gradle/cli/SystemPropertiesCommandLineConverter.classPK
�N@��I�2��&�org/gradle/cli/CommandLineParser$ParserState.classPK
�N@�6�7<�	;��y�org/gradle/cli/CommandLineParser$AfterFirstSubCommand.classPK
�N@(T�jFD���gradle-cli-classpath.propertiesPK,,q��jquery.js000064400000274175151676727230006461 0ustar00/*! jQuery v1.11.0 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */
!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k="".trim,l={},m="1.11.0",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(n.isPlainObject(c)||(b=n.isArray(c)))?(b?(b=!1,f=a&&n.isArray(a)?a:[]):f=a&&n.isPlainObject(a)?a:{},g[d]=n.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray||function(a){return"array"===n.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(l.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&n.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:k&&!k.call("\ufeff\xa0")?function(a){return null==a?"":k.call(a)}:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),n.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||n.guid++,e):void 0},now:function(){return+new Date},support:l}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s="sizzle"+-new Date,t=a.document,u=0,v=0,w=eb(),x=eb(),y=eb(),z=function(a,b){return a===b&&(j=!0),0},A="undefined",B=1<<31,C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=D.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",M=L.replace("w","w#"),N="\\["+K+"*("+L+")"+K+"*(?:([*^$|!~]?=)"+K+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+M+")|)|)"+K+"*\\]",O=":("+L+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+N.replace(3,8)+")*)|.*)\\)|)",P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(O),U=new RegExp("^"+M+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L.replace("w","w*")+")"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=/'|\\/g,ab=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),bb=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{G.apply(D=H.call(t.childNodes),t.childNodes),D[t.childNodes.length].nodeType}catch(cb){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function db(a,b,d,e){var f,g,h,i,j,m,p,q,u,v;if((b?b.ownerDocument||b:t)!==l&&k(b),b=b||l,d=d||[],!a||"string"!=typeof a)return d;if(1!==(i=b.nodeType)&&9!==i)return[];if(n&&!e){if(f=Z.exec(a))if(h=f[1]){if(9===i){if(g=b.getElementById(h),!g||!g.parentNode)return d;if(g.id===h)return d.push(g),d}else if(b.ownerDocument&&(g=b.ownerDocument.getElementById(h))&&r(b,g)&&g.id===h)return d.push(g),d}else{if(f[2])return G.apply(d,b.getElementsByTagName(a)),d;if((h=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(h)),d}if(c.qsa&&(!o||!o.test(a))){if(q=p=s,u=b,v=9===i&&a,1===i&&"object"!==b.nodeName.toLowerCase()){m=ob(a),(p=b.getAttribute("id"))?q=p.replace(_,"\\$&"):b.setAttribute("id",q),q="[id='"+q+"'] ",j=m.length;while(j--)m[j]=q+pb(m[j]);u=$.test(a)&&mb(b.parentNode)||b,v=m.join(",")}if(v)try{return G.apply(d,u.querySelectorAll(v)),d}catch(w){}finally{p||b.removeAttribute("id")}}}return xb(a.replace(P,"$1"),b,d,e)}function eb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function fb(a){return a[s]=!0,a}function gb(a){var b=l.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function hb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function ib(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||B)-(~a.sourceIndex||B);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function jb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function kb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function lb(a){return fb(function(b){return b=+b,fb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function mb(a){return a&&typeof a.getElementsByTagName!==A&&a}c=db.support={},f=db.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},k=db.setDocument=function(a){var b,e=a?a.ownerDocument||a:t,g=e.defaultView;return e!==l&&9===e.nodeType&&e.documentElement?(l=e,m=e.documentElement,n=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){k()},!1):g.attachEvent&&g.attachEvent("onunload",function(){k()})),c.attributes=gb(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=gb(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(e.getElementsByClassName)&&gb(function(a){return a.innerHTML="<div class='a'></div><div class='a i'></div>",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=gb(function(a){return m.appendChild(a).id=s,!e.getElementsByName||!e.getElementsByName(s).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==A&&n){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ab,bb);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ab,bb);return function(a){var c=typeof a.getAttributeNode!==A&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==A?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==A&&n?b.getElementsByClassName(a):void 0},p=[],o=[],(c.qsa=Y.test(e.querySelectorAll))&&(gb(function(a){a.innerHTML="<select t=''><option selected=''></option></select>",a.querySelectorAll("[t^='']").length&&o.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||o.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll(":checked").length||o.push(":checked")}),gb(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&o.push("name"+K+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||o.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),o.push(",.*:")})),(c.matchesSelector=Y.test(q=m.webkitMatchesSelector||m.mozMatchesSelector||m.oMatchesSelector||m.msMatchesSelector))&&gb(function(a){c.disconnectedMatch=q.call(a,"div"),q.call(a,"[s!='']:x"),p.push("!=",O)}),o=o.length&&new RegExp(o.join("|")),p=p.length&&new RegExp(p.join("|")),b=Y.test(m.compareDocumentPosition),r=b||Y.test(m.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},z=b?function(a,b){if(a===b)return j=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===t&&r(t,a)?-1:b===e||b.ownerDocument===t&&r(t,b)?1:i?I.call(i,a)-I.call(i,b):0:4&d?-1:1)}:function(a,b){if(a===b)return j=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],k=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:i?I.call(i,a)-I.call(i,b):0;if(f===g)return ib(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)k.unshift(c);while(h[d]===k[d])d++;return d?ib(h[d],k[d]):h[d]===t?-1:k[d]===t?1:0},e):l},db.matches=function(a,b){return db(a,null,null,b)},db.matchesSelector=function(a,b){if((a.ownerDocument||a)!==l&&k(a),b=b.replace(S,"='$1']"),!(!c.matchesSelector||!n||p&&p.test(b)||o&&o.test(b)))try{var d=q.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return db(b,l,null,[a]).length>0},db.contains=function(a,b){return(a.ownerDocument||a)!==l&&k(a),r(a,b)},db.attr=function(a,b){(a.ownerDocument||a)!==l&&k(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!n):void 0;return void 0!==f?f:c.attributes||!n?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},db.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},db.uniqueSort=function(a){var b,d=[],e=0,f=0;if(j=!c.detectDuplicates,i=!c.sortStable&&a.slice(0),a.sort(z),j){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return i=null,a},e=db.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=db.selectors={cacheLength:50,createPseudo:fb,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ab,bb),a[3]=(a[4]||a[5]||"").replace(ab,bb),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||db.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&db.error(a[0]),a},PSEUDO:function(a){var b,c=!a[5]&&a[2];return V.CHILD.test(a[0])?null:(a[3]&&void 0!==a[4]?a[2]=a[4]:c&&T.test(c)&&(b=ob(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ab,bb).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=w[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&w(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==A&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=db.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),t=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&t){k=q[s]||(q[s]={}),j=k[a]||[],n=j[0]===u&&j[1],m=j[0]===u&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[u,n,m];break}}else if(t&&(j=(b[s]||(b[s]={}))[a])&&j[0]===u)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(t&&((l[s]||(l[s]={}))[a]=[u,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||db.error("unsupported pseudo: "+a);return e[s]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?fb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:fb(function(a){var b=[],c=[],d=g(a.replace(P,"$1"));return d[s]?fb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:fb(function(a){return function(b){return db(a,b).length>0}}),contains:fb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:fb(function(a){return U.test(a||"")||db.error("unsupported lang: "+a),a=a.replace(ab,bb).toLowerCase(),function(b){var c;do if(c=n?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===m},focus:function(a){return a===l.activeElement&&(!l.hasFocus||l.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:lb(function(){return[0]}),last:lb(function(a,b){return[b-1]}),eq:lb(function(a,b,c){return[0>c?c+b:c]}),even:lb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:lb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:lb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:lb(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=jb(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=kb(b);function nb(){}nb.prototype=d.filters=d.pseudos,d.setFilters=new nb;function ob(a,b){var c,e,f,g,h,i,j,k=x[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=Q.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=R.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(P," ")}),h=h.slice(c.length));for(g in d.filter)!(e=V[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?db.error(a):x(a,i).slice(0)}function pb(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function qb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=v++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[u,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[s]||(b[s]={}),(h=i[d])&&h[0]===u&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function rb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function sb(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function tb(a,b,c,d,e,f){return d&&!d[s]&&(d=tb(d)),e&&!e[s]&&(e=tb(e,f)),fb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||wb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:sb(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=sb(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=sb(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ub(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],i=g||d.relative[" "],j=g?1:0,k=qb(function(a){return a===b},i,!0),l=qb(function(a){return I.call(b,a)>-1},i,!0),m=[function(a,c,d){return!g&&(d||c!==h)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>j;j++)if(c=d.relative[a[j].type])m=[qb(rb(m),c)];else{if(c=d.filter[a[j].type].apply(null,a[j].matches),c[s]){for(e=++j;f>e;e++)if(d.relative[a[e].type])break;return tb(j>1&&rb(m),j>1&&pb(a.slice(0,j-1).concat({value:" "===a[j-2].type?"*":""})).replace(P,"$1"),c,e>j&&ub(a.slice(j,e)),f>e&&ub(a=a.slice(e)),f>e&&pb(a))}m.push(c)}return rb(m)}function vb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,i,j,k){var m,n,o,p=0,q="0",r=f&&[],s=[],t=h,v=f||e&&d.find.TAG("*",k),w=u+=null==t?1:Math.random()||.1,x=v.length;for(k&&(h=g!==l&&g);q!==x&&null!=(m=v[q]);q++){if(e&&m){n=0;while(o=a[n++])if(o(m,g,i)){j.push(m);break}k&&(u=w)}c&&((m=!o&&m)&&p--,f&&r.push(m))}if(p+=q,c&&q!==p){n=0;while(o=b[n++])o(r,s,g,i);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=E.call(j));s=sb(s)}G.apply(j,s),k&&!f&&s.length>0&&p+b.length>1&&db.uniqueSort(j)}return k&&(u=w,h=t),r};return c?fb(f):f}g=db.compile=function(a,b){var c,d=[],e=[],f=y[a+" "];if(!f){b||(b=ob(a)),c=b.length;while(c--)f=ub(b[c]),f[s]?d.push(f):e.push(f);f=y(a,vb(e,d))}return f};function wb(a,b,c){for(var d=0,e=b.length;e>d;d++)db(a,b[d],c);return c}function xb(a,b,e,f){var h,i,j,k,l,m=ob(a);if(!f&&1===m.length){if(i=m[0]=m[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&c.getById&&9===b.nodeType&&n&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(ab,bb),b)||[])[0],!b)return e;a=a.slice(i.shift().value.length)}h=V.needsContext.test(a)?0:i.length;while(h--){if(j=i[h],d.relative[k=j.type])break;if((l=d.find[k])&&(f=l(j.matches[0].replace(ab,bb),$.test(i[0].type)&&mb(b.parentNode)||b))){if(i.splice(h,1),a=f.length&&pb(i),!a)return G.apply(e,f),e;break}}}return g(a,m)(f,b,!n,e,$.test(a)&&mb(b.parentNode)||b),e}return c.sortStable=s.split("").sort(z).join("")===s,c.detectDuplicates=!!j,k(),c.sortDetached=gb(function(a){return 1&a.compareDocumentPosition(l.createElement("div"))}),gb(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||hb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&gb(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||hb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),gb(function(a){return null==a.getAttribute("disabled")})||hb(J,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),db}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return n.inArray(a,b)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;e>b;b++)if(n.contains(d[b],this))return!0}));for(b=0;e>b;b++)n.find(a,d[b],c);return c=this.pushStack(e>1?n.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=a.document,A=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,B=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:A.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:z,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=z.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return y.find(a);this.length=1,this[0]=d}return this.context=z,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};B.prototype=n.fn,y=n(z);var C=/^(?:parents|prev(?:Until|All))/,D={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!n(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b,c=n(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(n.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?n.inArray(this[0],n(a)):n.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function E(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return E(a,"nextSibling")},prev:function(a){return E(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return n.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(D[a]||(e=n.unique(e)),C.test(a)&&(e=e.reverse())),this.pushStack(e)}});var F=/\S+/g,G={};function H(a){var b=G[a]={};return n.each(a.match(F)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?G[a]||H(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&n.each(arguments,function(a,c){var d;while((d=n.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var I;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){if(a===!0?!--n.readyWait:!n.isReady){if(!z.body)return setTimeout(n.ready);n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(z,[n]),n.fn.trigger&&n(z).trigger("ready").off("ready"))}}});function J(){z.addEventListener?(z.removeEventListener("DOMContentLoaded",K,!1),a.removeEventListener("load",K,!1)):(z.detachEvent("onreadystatechange",K),a.detachEvent("onload",K))}function K(){(z.addEventListener||"load"===event.type||"complete"===z.readyState)&&(J(),n.ready())}n.ready.promise=function(b){if(!I)if(I=n.Deferred(),"complete"===z.readyState)setTimeout(n.ready);else if(z.addEventListener)z.addEventListener("DOMContentLoaded",K,!1),a.addEventListener("load",K,!1);else{z.attachEvent("onreadystatechange",K),a.attachEvent("onload",K);var c=!1;try{c=null==a.frameElement&&z.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!n.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}J(),n.ready()}}()}return I.promise(b)};var L="undefined",M;for(M in n(l))break;l.ownLast="0"!==M,l.inlineBlockNeedsLayout=!1,n(function(){var a,b,c=z.getElementsByTagName("body")[0];c&&(a=z.createElement("div"),a.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",b=z.createElement("div"),c.appendChild(a).appendChild(b),typeof b.style.zoom!==L&&(b.style.cssText="border:0;margin:0;width:1px;padding:1px;display:inline;zoom:1",(l.inlineBlockNeedsLayout=3===b.offsetWidth)&&(c.style.zoom=1)),c.removeChild(a),a=b=null)}),function(){var a=z.createElement("div");if(null==l.deleteExpando){l.deleteExpando=!0;try{delete a.test}catch(b){l.deleteExpando=!1}}a=null}(),n.acceptData=function(a){var b=n.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(O,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}n.data(a,b,c)}else c=void 0}return c}function Q(a){var b;for(b in a)if(("data"!==b||!n.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function R(a,b,d,e){if(n.acceptData(a)){var f,g,h=n.expando,i=a.nodeType,j=i?n.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||n.guid++:h),j[k]||(j[k]=i?{}:{toJSON:n.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=n.extend(j[k],b):j[k].data=n.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[n.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[n.camelCase(b)])):f=g,f
}}function S(a,b,c){if(n.acceptData(a)){var d,e,f=a.nodeType,g=f?n.cache:a,h=f?a[n.expando]:n.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){n.isArray(b)?b=b.concat(n.map(b,n.camelCase)):b in d?b=[b]:(b=n.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!Q(d):!n.isEmptyObject(d))return}(c||(delete g[h].data,Q(g[h])))&&(f?n.cleanData([a],!0):l.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}n.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?n.cache[a[n.expando]]:a[n.expando],!!a&&!Q(a)},data:function(a,b,c){return R(a,b,c)},removeData:function(a,b){return S(a,b)},_data:function(a,b,c){return R(a,b,c,!0)},_removeData:function(a,b){return S(a,b,!0)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=n.data(f),1===f.nodeType&&!n._data(f,"parsedAttrs"))){c=g.length;while(c--)d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d]));n._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){n.data(this,a)}):arguments.length>1?this.each(function(){n.data(this,a,b)}):f?P(f,a,n.data(f,a)):void 0},removeData:function(a){return this.each(function(){n.removeData(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=n._data(a,b),c&&(!d||n.isArray(c)?d=n._data(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return n._data(a,c)||n._data(a,c,{empty:n.Callbacks("once memory").add(function(){n._removeData(a,b+"queue"),n._removeData(a,c)})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?n.queue(this[0],a):void 0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=n.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=n._data(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var T=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,U=["Top","Right","Bottom","Left"],V=function(a,b){return a=b||a,"none"===n.css(a,"display")||!n.contains(a.ownerDocument,a)},W=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},X=/^(?:checkbox|radio)$/i;!function(){var a=z.createDocumentFragment(),b=z.createElement("div"),c=z.createElement("input");if(b.setAttribute("className","t"),b.innerHTML="  <link/><table></table><a href='/a'>a</a>",l.leadingWhitespace=3===b.firstChild.nodeType,l.tbody=!b.getElementsByTagName("tbody").length,l.htmlSerialize=!!b.getElementsByTagName("link").length,l.html5Clone="<:nav></:nav>"!==z.createElement("nav").cloneNode(!0).outerHTML,c.type="checkbox",c.checked=!0,a.appendChild(c),l.appendChecked=c.checked,b.innerHTML="<textarea>x</textarea>",l.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,a.appendChild(b),b.innerHTML="<input type='radio' checked='checked' name='t'/>",l.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,l.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){l.noCloneEvent=!1}),b.cloneNode(!0).click()),null==l.deleteExpando){l.deleteExpando=!0;try{delete b.test}catch(d){l.deleteExpando=!1}}a=b=c=null}(),function(){var b,c,d=z.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(l[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),l[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var Y=/^(?:input|select|textarea)$/i,Z=/^key/,$=/^(?:mouse|contextmenu)|click/,_=/^(?:focusinfocus|focusoutblur)$/,ab=/^([^.]*)(?:\.(.+)|)$/;function bb(){return!0}function cb(){return!1}function db(){try{return z.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=n.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof n===L||a&&n.event.triggered===a.type?void 0:n.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(F)||[""],h=b.length;while(h--)f=ab.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=n.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=n.event.special[o]||{},l=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},i),(m=g[o])||(m=g[o]=[],m.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,l):m.push(l),n.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n.hasData(a)&&n._data(a);if(r&&(k=r.events)){b=(b||"").match(F)||[""],j=b.length;while(j--)if(h=ab.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=m.length;while(f--)g=m[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(m.splice(f,1),g.selector&&m.delegateCount--,l.remove&&l.remove.call(a,g));i&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(k)&&(delete r.handle,n._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,m,o=[d||z],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||z,3!==d.nodeType&&8!==d.nodeType&&!_.test(p+n.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[n.expando]?b:new n.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),k=n.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!n.isWindow(d)){for(i=k.delegateType||p,_.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||z)&&o.push(l.defaultView||l.parentWindow||a)}m=0;while((h=o[m++])&&!b.isPropagationStopped())b.type=m>1?i:k.bindType||p,f=(n._data(h,"events")||{})[b.type]&&n._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&n.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&n.acceptData(d)&&g&&d[p]&&!n.isWindow(d)){l=d[g],l&&(d[g]=null),n.event.triggered=p;try{d[p]()}catch(r){}n.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(n._data(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((n.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?n(c,this).index(i)>=0:n.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[n.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=$.test(e)?this.mouseHooks:Z.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new n.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=f.srcElement||z),3===a.target.nodeType&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,g.filter?g.filter(a,f):a},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button,g=b.fromElement;return null==a.pageX&&null!=b.clientX&&(d=a.target.ownerDocument||z,e=d.documentElement,c=d.body,a.pageX=b.clientX+(e&&e.scrollLeft||c&&c.scrollLeft||0)-(e&&e.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(e&&e.scrollTop||c&&c.scrollTop||0)-(e&&e.clientTop||c&&c.clientTop||0)),!a.relatedTarget&&g&&(a.relatedTarget=g===a.target?b.toElement:g),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==db()&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){return this===db()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return n.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(a){return n.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=n.extend(new n.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?n.event.trigger(e,null,b):n.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},n.removeEvent=z.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]===L&&(a[d]=null),a.detachEvent(d,c))},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&(a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault())?bb:cb):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!0)):new n.Event(a,b)},n.Event.prototype={isDefaultPrevented:cb,isPropagationStopped:cb,isImmediatePropagationStopped:cb,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=bb,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=bb,a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=bb,this.stopPropagation()}},n.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!n.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),l.submitBubbles||(n.event.special.submit={setup:function(){return n.nodeName(this,"form")?!1:void n.event.add(this,"click._submit keypress._submit",function(a){var b=a.target,c=n.nodeName(b,"input")||n.nodeName(b,"button")?b.form:void 0;c&&!n._data(c,"submitBubbles")&&(n.event.add(c,"submit._submit",function(a){a._submit_bubble=!0}),n._data(c,"submitBubbles",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&n.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){return n.nodeName(this,"form")?!1:void n.event.remove(this,"._submit")}}),l.changeBubbles||(n.event.special.change={setup:function(){return Y.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(n.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._just_changed=!0)}),n.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),n.event.simulate("change",this,a,!0)})),!1):void n.event.add(this,"beforeactivate._change",function(a){var b=a.target;Y.test(b.nodeName)&&!n._data(b,"changeBubbles")&&(n.event.add(b,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||n.event.simulate("change",this.parentNode,a,!0)}),n._data(b,"changeBubbles",!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return n.event.remove(this,"._change"),!Y.test(this.nodeName)}}),l.focusinBubbles||n.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a),!0)};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=n._data(d,b);e||d.addEventListener(a,c,!0),n._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=n._data(d,b)-1;e?n._data(d,b,e):(d.removeEventListener(a,c,!0),n._removeData(d,b))}}}),n.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(f in a)this.on(f,b,c,a[f],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=cb;else if(!d)return this;return 1===e&&(g=d,d=function(a){return n().off(a),g.apply(this,arguments)},d.guid=g.guid||(g.guid=n.guid++)),this.each(function(){n.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,n(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=cb),this.each(function(){n.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?n.event.trigger(a,b,c,!0):void 0}});function eb(a){var b=fb.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}var fb="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gb=/ jQuery\d+="(?:null|\d+)"/g,hb=new RegExp("<(?:"+fb+")[\\s/>]","i"),ib=/^\s+/,jb=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,kb=/<([\w:]+)/,lb=/<tbody/i,mb=/<|&#?\w+;/,nb=/<(?:script|style|link)/i,ob=/checked\s*(?:[^=]|=\s*.checked.)/i,pb=/^$|\/(?:java|ecma)script/i,qb=/^true\/(.*)/,rb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,sb={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:l.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},tb=eb(z),ub=tb.appendChild(z.createElement("div"));sb.optgroup=sb.option,sb.tbody=sb.tfoot=sb.colgroup=sb.caption=sb.thead,sb.th=sb.td;function vb(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==L?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==L?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||n.nodeName(d,b)?f.push(d):n.merge(f,vb(d,b));return void 0===b||b&&n.nodeName(a,b)?n.merge([a],f):f}function wb(a){X.test(a.type)&&(a.defaultChecked=a.checked)}function xb(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function yb(a){return a.type=(null!==n.find.attr(a,"type"))+"/"+a.type,a}function zb(a){var b=qb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ab(a,b){for(var c,d=0;null!=(c=a[d]);d++)n._data(c,"globalEval",!b||n._data(b[d],"globalEval"))}function Bb(a,b){if(1===b.nodeType&&n.hasData(a)){var c,d,e,f=n._data(a),g=n._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)n.event.add(b,c,h[c][d])}g.data&&(g.data=n.extend({},g.data))}}function Cb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!l.noCloneEvent&&b[n.expando]){e=n._data(b);for(d in e.events)n.removeEvent(b,d,e.handle);b.removeAttribute(n.expando)}"script"===c&&b.text!==a.text?(yb(b).text=a.text,zb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),l.html5Clone&&a.innerHTML&&!n.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&X.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}n.extend({clone:function(a,b,c){var d,e,f,g,h,i=n.contains(a.ownerDocument,a);if(l.html5Clone||n.isXMLDoc(a)||!hb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(ub.innerHTML=a.outerHTML,ub.removeChild(f=ub.firstChild)),!(l.noCloneEvent&&l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(d=vb(f),h=vb(a),g=0;null!=(e=h[g]);++g)d[g]&&Cb(e,d[g]);if(b)if(c)for(h=h||vb(a),d=d||vb(f),g=0;null!=(e=h[g]);g++)Bb(e,d[g]);else Bb(a,f);return d=vb(f,"script"),d.length>0&&Ab(d,!i&&vb(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k,m=a.length,o=eb(b),p=[],q=0;m>q;q++)if(f=a[q],f||0===f)if("object"===n.type(f))n.merge(p,f.nodeType?[f]:f);else if(mb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(kb.exec(f)||["",""])[1].toLowerCase(),k=sb[i]||sb._default,h.innerHTML=k[1]+f.replace(jb,"<$1></$2>")+k[2],e=k[0];while(e--)h=h.lastChild;if(!l.leadingWhitespace&&ib.test(f)&&p.push(b.createTextNode(ib.exec(f)[0])),!l.tbody){f="table"!==i||lb.test(f)?"<table>"!==k[1]||lb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)n.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}n.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),l.appendChecked||n.grep(vb(p,"input"),wb),q=0;while(f=p[q++])if((!d||-1===n.inArray(f,d))&&(g=n.contains(f.ownerDocument,f),h=vb(o.appendChild(f),"script"),g&&Ab(h),c)){e=0;while(f=h[e++])pb.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=n.expando,j=n.cache,k=l.deleteExpando,m=n.event.special;null!=(d=a[h]);h++)if((b||n.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)m[e]?n.event.remove(d,e):n.removeEvent(d,e,g.handle);j[f]&&(delete j[f],k?delete d[i]:typeof d.removeAttribute!==L?d.removeAttribute(i):d[i]=null,c.push(f))}}}),n.fn.extend({text:function(a){return W(this,function(a){return void 0===a?n.text(this):this.empty().append((this[0]&&this[0].ownerDocument||z).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=xb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=xb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(vb(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&Ab(vb(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&n.cleanData(vb(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&n.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return W(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(gb,""):void 0;if(!("string"!=typeof a||nb.test(a)||!l.htmlSerialize&&hb.test(a)||!l.leadingWhitespace&&ib.test(a)||sb[(kb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(jb,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(vb(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(vb(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,k=this.length,m=this,o=k-1,p=a[0],q=n.isFunction(p);if(q||k>1&&"string"==typeof p&&!l.checkClone&&ob.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(k&&(i=n.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=n.map(vb(i,"script"),yb),f=g.length;k>j;j++)d=i,j!==o&&(d=n.clone(d,!0,!0),f&&n.merge(g,vb(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,n.map(g,zb),j=0;f>j;j++)d=g[j],pb.test(d.type||"")&&!n._data(d,"globalEval")&&n.contains(h,d)&&(d.src?n._evalUrl&&n._evalUrl(d.src):n.globalEval((d.text||d.textContent||d.innerHTML||"").replace(rb,"")));i=c=null}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=0,e=[],g=n(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),n(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Db,Eb={};function Fb(b,c){var d=n(c.createElement(b)).appendTo(c.body),e=a.getDefaultComputedStyle?a.getDefaultComputedStyle(d[0]).display:n.css(d[0],"display");return d.detach(),e}function Gb(a){var b=z,c=Eb[a];return c||(c=Fb(a,b),"none"!==c&&c||(Db=(Db||n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=(Db[0].contentWindow||Db[0].contentDocument).document,b.write(),b.close(),c=Fb(a,b),Db.detach()),Eb[a]=c),c}!function(){var a,b,c=z.createElement("div"),d="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;padding:0;margin:0;border:0";c.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",a=c.getElementsByTagName("a")[0],a.style.cssText="float:left;opacity:.5",l.opacity=/^0.5/.test(a.style.opacity),l.cssFloat=!!a.style.cssFloat,c.style.backgroundClip="content-box",c.cloneNode(!0).style.backgroundClip="",l.clearCloneStyle="content-box"===c.style.backgroundClip,a=c=null,l.shrinkWrapBlocks=function(){var a,c,e,f;if(null==b){if(a=z.getElementsByTagName("body")[0],!a)return;f="border:0;width:0;height:0;position:absolute;top:0;left:-9999px",c=z.createElement("div"),e=z.createElement("div"),a.appendChild(c).appendChild(e),b=!1,typeof e.style.zoom!==L&&(e.style.cssText=d+";width:1px;padding:1px;zoom:1",e.innerHTML="<div></div>",e.firstChild.style.width="5px",b=3!==e.offsetWidth),a.removeChild(c),a=c=e=null}return b}}();var Hb=/^margin/,Ib=new RegExp("^("+T+")(?!px)[a-z%]+$","i"),Jb,Kb,Lb=/^(top|right|bottom|left)$/;a.getComputedStyle?(Jb=function(a){return a.ownerDocument.defaultView.getComputedStyle(a,null)},Kb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Jb(a),g=c?c.getPropertyValue(b)||c[b]:void 0,c&&(""!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),Ib.test(g)&&Hb.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0===g?g:g+""}):z.documentElement.currentStyle&&(Jb=function(a){return a.currentStyle},Kb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Jb(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Ib.test(g)&&!Lb.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function Mb(a,b){return{get:function(){var c=a();if(null!=c)return c?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d,e,f,g,h=z.createElement("div"),i="border:0;width:0;height:0;position:absolute;top:0;left:-9999px",j="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;padding:0;margin:0;border:0";h.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",b=h.getElementsByTagName("a")[0],b.style.cssText="float:left;opacity:.5",l.opacity=/^0.5/.test(b.style.opacity),l.cssFloat=!!b.style.cssFloat,h.style.backgroundClip="content-box",h.cloneNode(!0).style.backgroundClip="",l.clearCloneStyle="content-box"===h.style.backgroundClip,b=h=null,n.extend(l,{reliableHiddenOffsets:function(){if(null!=c)return c;var a,b,d,e=z.createElement("div"),f=z.getElementsByTagName("body")[0];if(f)return e.setAttribute("className","t"),e.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",a=z.createElement("div"),a.style.cssText=i,f.appendChild(a).appendChild(e),e.innerHTML="<table><tr><td></td><td>t</td></tr></table>",b=e.getElementsByTagName("td"),b[0].style.cssText="padding:0;margin:0;border:0;display:none",d=0===b[0].offsetHeight,b[0].style.display="",b[1].style.display="none",c=d&&0===b[0].offsetHeight,f.removeChild(a),e=f=null,c},boxSizing:function(){return null==d&&k(),d},boxSizingReliable:function(){return null==e&&k(),e},pixelPosition:function(){return null==f&&k(),f},reliableMarginRight:function(){var b,c,d,e;if(null==g&&a.getComputedStyle){if(b=z.getElementsByTagName("body")[0],!b)return;c=z.createElement("div"),d=z.createElement("div"),c.style.cssText=i,b.appendChild(c).appendChild(d),e=d.appendChild(z.createElement("div")),e.style.cssText=d.style.cssText=j,e.style.marginRight=e.style.width="0",d.style.width="1px",g=!parseFloat((a.getComputedStyle(e,null)||{}).marginRight),b.removeChild(c)}return g}});function k(){var b,c,h=z.getElementsByTagName("body")[0];h&&(b=z.createElement("div"),c=z.createElement("div"),b.style.cssText=i,h.appendChild(b).appendChild(c),c.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:absolute;display:block;padding:1px;border:1px;width:4px;margin-top:1%;top:1%",n.swap(h,null!=h.style.zoom?{zoom:1}:{},function(){d=4===c.offsetWidth}),e=!0,f=!1,g=!0,a.getComputedStyle&&(f="1%"!==(a.getComputedStyle(c,null)||{}).top,e="4px"===(a.getComputedStyle(c,null)||{width:"4px"}).width),h.removeChild(b),c=h=null)}}(),n.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Nb=/alpha\([^)]*\)/i,Ob=/opacity\s*=\s*([^)]*)/,Pb=/^(none|table(?!-c[ea]).+)/,Qb=new RegExp("^("+T+")(.*)$","i"),Rb=new RegExp("^([+-])=("+T+")","i"),Sb={position:"absolute",visibility:"hidden",display:"block"},Tb={letterSpacing:0,fontWeight:400},Ub=["Webkit","O","Moz","ms"];function Vb(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=Ub.length;while(e--)if(b=Ub[e]+c,b in a)return b;return d}function Wb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=n._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&V(d)&&(f[g]=n._data(d,"olddisplay",Gb(d.nodeName)))):f[g]||(e=V(d),(c&&"none"!==c||!e)&&n._data(d,"olddisplay",e?c:n.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function Xb(a,b,c){var d=Qb.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Yb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=n.css(a,c+U[f],!0,e)),d?("content"===c&&(g-=n.css(a,"padding"+U[f],!0,e)),"margin"!==c&&(g-=n.css(a,"border"+U[f]+"Width",!0,e))):(g+=n.css(a,"padding"+U[f],!0,e),"padding"!==c&&(g+=n.css(a,"border"+U[f]+"Width",!0,e)));return g}function Zb(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Jb(a),g=l.boxSizing()&&"border-box"===n.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Kb(a,b,f),(0>e||null==e)&&(e=a.style[b]),Ib.test(e))return e;d=g&&(l.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Yb(a,b,c||(g?"border":"content"),d,f)+"px"}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Kb(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":l.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;if(b=n.cssProps[h]||(n.cssProps[h]=Vb(i,h)),g=n.cssHooks[b]||n.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=Rb.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(n.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||n.cssNumber[h]||(c+="px"),l.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]="",i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=Vb(a.style,h)),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Kb(a,b,d)),"normal"===f&&b in Tb&&(f=Tb[b]),""===c||c?(e=parseFloat(f),c===!0||n.isNumeric(e)?e||0:f):f}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?0===a.offsetWidth&&Pb.test(n.css(a,"display"))?n.swap(a,Sb,function(){return Zb(a,b,d)}):Zb(a,b,d):void 0},set:function(a,c,d){var e=d&&Jb(a);return Xb(a,c,d?Yb(a,b,d,l.boxSizing()&&"border-box"===n.css(a,"boxSizing",!1,e),e):0)}}}),l.opacity||(n.cssHooks.opacity={get:function(a,b){return Ob.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=n.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===n.trim(f.replace(Nb,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Nb.test(f)?f.replace(Nb,e):f+" "+e)}}),n.cssHooks.marginRight=Mb(l.reliableMarginRight,function(a,b){return b?n.swap(a,{display:"inline-block"},Kb,[a,"marginRight"]):void 0}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+U[d]+b]=f[d]||f[d-2]||f[0];return e}},Hb.test(a)||(n.cssHooks[a+b].set=Xb)}),n.fn.extend({css:function(a,b){return W(this,function(a,b,c){var d,e,f={},g=0;if(n.isArray(b)){for(d=Jb(a),e=b.length;e>g;g++)f[b[g]]=n.css(a,b[g],!1,d);return f}return void 0!==c?n.style(a,b,c):n.css(a,b)
},a,b,arguments.length>1)},show:function(){return Wb(this,!0)},hide:function(){return Wb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){V(this)?n(this).show():n(this).hide()})}});function $b(a,b,c,d,e){return new $b.prototype.init(a,b,c,d,e)}n.Tween=$b,$b.prototype={constructor:$b,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(n.cssNumber[c]?"":"px")},cur:function(){var a=$b.propHooks[this.prop];return a&&a.get?a.get(this):$b.propHooks._default.get(this)},run:function(a){var b,c=$b.propHooks[this.prop];return this.pos=b=this.options.duration?n.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):$b.propHooks._default.set(this),this}},$b.prototype.init.prototype=$b.prototype,$b.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=n.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[n.cssProps[a.prop]]||n.cssHooks[a.prop])?n.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},$b.propHooks.scrollTop=$b.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},n.fx=$b.prototype.init,n.fx.step={};var _b,ac,bc=/^(?:toggle|show|hide)$/,cc=new RegExp("^(?:([+-])=|)("+T+")([a-z%]*)$","i"),dc=/queueHooks$/,ec=[jc],fc={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=cc.exec(b),f=e&&e[3]||(n.cssNumber[a]?"":"px"),g=(n.cssNumber[a]||"px"!==f&&+d)&&cc.exec(n.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,n.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function gc(){return setTimeout(function(){_b=void 0}),_b=n.now()}function hc(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=U[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function ic(a,b,c){for(var d,e=(fc[b]||[]).concat(fc["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function jc(a,b,c){var d,e,f,g,h,i,j,k,m=this,o={},p=a.style,q=a.nodeType&&V(a),r=n._data(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,m.always(function(){m.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=n.css(a,"display"),k=Gb(a.nodeName),"none"===j&&(j=k),"inline"===j&&"none"===n.css(a,"float")&&(l.inlineBlockNeedsLayout&&"inline"!==k?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",l.shrinkWrapBlocks()||m.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],bc.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||n.style(a,d)}if(!n.isEmptyObject(o)){r?"hidden"in r&&(q=r.hidden):r=n._data(a,"fxshow",{}),f&&(r.hidden=!q),q?n(a).show():m.done(function(){n(a).hide()}),m.done(function(){var b;n._removeData(a,"fxshow");for(b in o)n.style(a,b,o[b])});for(d in o)g=ic(q?r[d]:0,d,m),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function kc(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=n.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function lc(a,b,c){var d,e,f=0,g=ec.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=_b||gc(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:n.extend({},b),opts:n.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:_b||gc(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(kc(k,j.opts.specialEasing);g>f;f++)if(d=ec[f].call(j,a,k,j.opts))return d;return n.map(k,ic,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}n.Animation=n.extend(lc,{tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],fc[c]=fc[c]||[],fc[c].unshift(b)},prefilter:function(a,b){b?ec.unshift(a):ec.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(V).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=lc(this,n.extend({},a),f);(e||n._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=n.timers,g=n._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&dc.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&n.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=n._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:0;for(c.finish=!0,n.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(hc(b,!0),a,d,e)}}),n.each({slideDown:hc("show"),slideUp:hc("hide"),slideToggle:hc("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=n.timers,c=0;for(_b=n.now();c<b.length;c++)a=b[c],a()||b[c]!==a||b.splice(c--,1);b.length||n.fx.stop(),_b=void 0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=13,n.fx.start=function(){ac||(ac=setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){clearInterval(ac),ac=null},n.fx.speeds={slow:600,fast:200,_default:400},n.fn.delay=function(a,b){return a=n.fx?n.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a,b,c,d,e=z.createElement("div");e.setAttribute("className","t"),e.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",a=e.getElementsByTagName("a")[0],c=z.createElement("select"),d=c.appendChild(z.createElement("option")),b=e.getElementsByTagName("input")[0],a.style.cssText="top:1px",l.getSetAttribute="t"!==e.className,l.style=/top/.test(a.getAttribute("style")),l.hrefNormalized="/a"===a.getAttribute("href"),l.checkOn=!!b.value,l.optSelected=d.selected,l.enctype=!!z.createElement("form").enctype,c.disabled=!0,l.optDisabled=!d.disabled,b=z.createElement("input"),b.setAttribute("value",""),l.input=""===b.getAttribute("value"),b.value="t",b.setAttribute("type","radio"),l.radioValue="t"===b.value,a=b=c=d=e=null}();var mc=/\r/g;n.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(mc,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.text(a)}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(l.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)if(d=e[g],n.inArray(n.valHooks.option.get(d),f)>=0)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){return n.isArray(b)?a.checked=n.inArray(n(a).val(),b)>=0:void 0}},l.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var nc,oc,pc=n.expr.attrHandle,qc=/^(?:checked|selected)$/i,rc=l.getSetAttribute,sc=l.input;n.fn.extend({attr:function(a,b){return W(this,n.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===L?n.prop(a,b,c):(1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),d=n.attrHooks[b]||(n.expr.match.bool.test(b)?oc:nc)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=n.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void n.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(F);if(f&&1===a.nodeType)while(c=f[e++])d=n.propFix[c]||c,n.expr.match.bool.test(c)?sc&&rc||!qc.test(c)?a[d]=!1:a[n.camelCase("default-"+c)]=a[d]=!1:n.attr(a,c,""),a.removeAttribute(rc?c:d)},attrHooks:{type:{set:function(a,b){if(!l.radioValue&&"radio"===b&&n.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),oc={set:function(a,b,c){return b===!1?n.removeAttr(a,c):sc&&rc||!qc.test(c)?a.setAttribute(!rc&&n.propFix[c]||c,c):a[n.camelCase("default-"+c)]=a[c]=!0,c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=pc[b]||n.find.attr;pc[b]=sc&&rc||!qc.test(b)?function(a,b,d){var e,f;return d||(f=pc[b],pc[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,pc[b]=f),e}:function(a,b,c){return c?void 0:a[n.camelCase("default-"+b)]?b.toLowerCase():null}}),sc&&rc||(n.attrHooks.value={set:function(a,b,c){return n.nodeName(a,"input")?void(a.defaultValue=b):nc&&nc.set(a,b,c)}}),rc||(nc={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c)?b:void 0}},pc.id=pc.name=pc.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},n.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:nc.set},n.attrHooks.contenteditable={set:function(a,b,c){nc.set(a,""===b?!1:b,c)}},n.each(["width","height"],function(a,b){n.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),l.style||(n.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var tc=/^(?:input|select|textarea|button|object)$/i,uc=/^(?:a|area)$/i;n.fn.extend({prop:function(a,b){return W(this,n.prop,a,b,arguments.length>1)},removeProp:function(a){return a=n.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),n.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!n.isXMLDoc(a),f&&(b=n.propFix[b]||b,e=n.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=n.find.attr(a,"tabindex");return b?parseInt(b,10):tc.test(a.nodeName)||uc.test(a.nodeName)&&a.href?0:-1}}}}),l.hrefNormalized||n.each(["href","src"],function(a,b){n.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),l.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}}),n.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){n.propFix[this.toLowerCase()]=this}),l.enctype||(n.propFix.enctype="encoding");var vc=/[\t\r\n\f]/g;n.fn.extend({addClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j="string"==typeof a&&a;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(F)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(vc," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=n.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j=0===arguments.length||"string"==typeof a&&a;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(F)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(vc," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?n.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(n.isFunction(a)?function(c){n(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=n(this),f=a.match(F)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===L||"boolean"===c)&&(this.className&&n._data(this,"__className__",this.className),this.className=this.className||a===!1?"":n._data(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(vc," ").indexOf(b)>=0)return!0;return!1}}),n.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){n.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),n.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var wc=n.now(),xc=/\?/,yc=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;n.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=n.trim(b+"");return e&&!n.trim(e.replace(yc,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():n.error("Invalid JSON: "+b)},n.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||n.error("Invalid XML: "+b),c};var zc,Ac,Bc=/#.*$/,Cc=/([?&])_=[^&]*/,Dc=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Ec=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Fc=/^(?:GET|HEAD)$/,Gc=/^\/\//,Hc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Ic={},Jc={},Kc="*/".concat("*");try{Ac=location.href}catch(Lc){Ac=z.createElement("a"),Ac.href="",Ac=Ac.href}zc=Hc.exec(Ac.toLowerCase())||[];function Mc(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(F)||[];if(n.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Nc(a,b,c,d){var e={},f=a===Jc;function g(h){var i;return e[h]=!0,n.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Oc(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&n.extend(!0,a,c),a}function Pc(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Qc(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}n.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ac,type:"GET",isLocal:Ec.test(zc[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Kc,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":n.parseJSON,"text xml":n.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Oc(Oc(a,n.ajaxSettings),b):Oc(n.ajaxSettings,a)},ajaxPrefilter:Mc(Ic),ajaxTransport:Mc(Jc),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=n.ajaxSetup({},b),l=k.context||k,m=k.context&&(l.nodeType||l.jquery)?n(l):n.event,o=n.Deferred(),p=n.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!j){j={};while(b=Dc.exec(f))j[b[1].toLowerCase()]=b[2]}b=j[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return i&&i.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||Ac)+"").replace(Bc,"").replace(Gc,zc[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=n.trim(k.dataType||"*").toLowerCase().match(F)||[""],null==k.crossDomain&&(c=Hc.exec(k.url.toLowerCase()),k.crossDomain=!(!c||c[1]===zc[1]&&c[2]===zc[2]&&(c[3]||("http:"===c[1]?"80":"443"))===(zc[3]||("http:"===zc[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=n.param(k.data,k.traditional)),Nc(Ic,k,b,v),2===t)return v;h=k.global,h&&0===n.active++&&n.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!Fc.test(k.type),e=k.url,k.hasContent||(k.data&&(e=k.url+=(xc.test(e)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=Cc.test(e)?e.replace(Cc,"$1_="+wc++):e+(xc.test(e)?"&":"?")+"_="+wc++)),k.ifModified&&(n.lastModified[e]&&v.setRequestHeader("If-Modified-Since",n.lastModified[e]),n.etag[e]&&v.setRequestHeader("If-None-Match",n.etag[e])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+Kc+"; q=0.01":""):k.accepts["*"]);for(d in k.headers)v.setRequestHeader(d,k.headers[d]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(d in{success:1,error:1,complete:1})v[d](k[d]);if(i=Nc(Jc,k,b,v)){v.readyState=1,h&&m.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,i.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,c,d){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),i=void 0,f=d||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,c&&(u=Pc(k,v,c)),u=Qc(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(n.lastModified[e]=w),w=v.getResponseHeader("etag"),w&&(n.etag[e]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,h&&m.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),h&&(m.trigger("ajaxComplete",[v,k]),--n.active||n.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void 0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void 0),n.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},n.fn.extend({wrapAll:function(a){if(n.isFunction(a))return this.each(function(b){n(this).wrapAll(a.call(this,b))});if(this[0]){var b=n(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return this.each(n.isFunction(a)?function(b){n(this).wrapInner(a.call(this,b))}:function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}}),n.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0||!l.reliableHiddenOffsets()&&"none"===(a.style&&a.style.display||n.css(a,"display"))},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var Rc=/%20/g,Sc=/\[\]$/,Tc=/\r?\n/g,Uc=/^(?:submit|button|image|reset|file)$/i,Vc=/^(?:input|select|textarea|keygen)/i;function Wc(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||Sc.test(a)?d(a,e):Wc(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)Wc(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)Wc(c,a[c],b,e);return d.join("&").replace(Rc,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&Vc.test(this.nodeName)&&!Uc.test(a)&&(this.checked||!X.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(Tc,"\r\n")}}):{name:b.name,value:c.replace(Tc,"\r\n")}}).get()}}),n.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&$c()||_c()}:$c;var Xc=0,Yc={},Zc=n.ajaxSettings.xhr();a.ActiveXObject&&n(a).on("unload",function(){for(var a in Yc)Yc[a](void 0,!0)}),l.cors=!!Zc&&"withCredentials"in Zc,Zc=l.ajax=!!Zc,Zc&&n.ajaxTransport(function(a){if(!a.crossDomain||l.cors){var b;return{send:function(c,d){var e,f=a.xhr(),g=++Xc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)void 0!==c[e]&&f.setRequestHeader(e,c[e]+"");f.send(a.hasContent&&a.data||null),b=function(c,e){var h,i,j;if(b&&(e||4===f.readyState))if(delete Yc[g],b=void 0,f.onreadystatechange=n.noop,e)4!==f.readyState&&f.abort();else{j={},h=f.status,"string"==typeof f.responseText&&(j.text=f.responseText);try{i=f.statusText}catch(k){i=""}h||!a.isLocal||a.crossDomain?1223===h&&(h=204):h=j.text?200:404}j&&d(h,i,j,f.getAllResponseHeaders())},a.async?4===f.readyState?setTimeout(b):f.onreadystatechange=Yc[g]=b:b()},abort:function(){b&&b(void 0,!0)}}}});function $c(){try{return new a.XMLHttpRequest}catch(b){}}function _c(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=z.head||n("head")[0]||z.documentElement;return{send:function(d,e){b=z.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||e(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var ad=[],bd=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=ad.pop()||n.expando+"_"+wc++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(bd.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&bd.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(bd,"$1"+e):b.jsonp!==!1&&(b.url+=(xc.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||n.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,ad.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),n.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||z;var d=v.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=n.buildFragment([a],b,e),e&&e.length&&n(e).remove(),n.merge([],d.childNodes))};var cd=n.fn.load;n.fn.load=function(a,b,c){if("string"!=typeof a&&cd)return cd.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=a.slice(h,a.length),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(f="POST"),g.length>0&&n.ajax({url:a,type:f,dataType:"html",data:b}).done(function(a){e=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};var dd=a.document.documentElement;function ed(a){return n.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&n.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,n.contains(b,e)?(typeof e.getBoundingClientRect!==L&&(d=e.getBoundingClientRect()),c=ed(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===n.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(c=a.offset()),c.top+=n.css(a[0],"borderTopWidth",!0),c.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-n.css(d,"marginTop",!0),left:b.left-c.left-n.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||dd;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||dd})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);n.fn[a]=function(d){return W(this,function(a,d,e){var f=ed(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?n(f).scrollLeft():e,c?e:n(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=Mb(l.pixelPosition,function(a,c){return c?(c=Kb(a,b),Ib.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return W(this,function(b,c,d){var e;return n.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var fd=a.jQuery,gd=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=gd),b&&a.jQuery===n&&(a.jQuery=fd),n},typeof b===L&&(a.jQuery=a.$=n),n});
config.js000064400000000412151676727230006364 0ustar00require.config({
	"baseUrl": "../",

	"paths": {

		// jqgrid
		"jqgrid": "js",

		// plugins
		"css": "bower_components/require-css/css.min",

		// jquery
		"jquery": "bower_components/jquery/dist/jquery.min",
		"jquery-ui": "bower_components/jquery-ui/ui"

	}
});
jqGrid.jquery.json000064400000001677151676727230010230 0ustar00{
	"name": "jqGrid",
	"title": "Guriddo jqGrid",
	"description": "jqGrid is an Ajax-enabled JavaScript control that provides solutions for representing and manipulating tabular data on the web.",
	"keywords": [
		"grid",
		"table",
		"treegrid",
		"sorting",
		"paging",
		"editing",
		"grouping",
		"searching",
		"aria",
		"transposed",
		"forzen rows",
		"frozen columns"
	],
	"version": "5.8.7",
	"author": {
		"name": "Tony Tomov",
		"email": "tony@trirand.com",
		"url": "http://guriddo.new"
	},
	"maintainers": [
		{
			"name": "Tony Tomov",
			"email": "tony@trirand.com",
			"url": "http://guriddo.net"
		}
	],
	"licenses": [
		{
		  "type": "Creative Commons Attribution-Non-Commercial 3.0 License",
		  "url": "http://guriddo.net/?page_id=103334"
		}
	],
	"bugs": "https://github.com/tonytomov/jqGrid/issues",
	"homepage": "http://www.trirand.com",
	"docs": "http://www.trirand.com/jqgridwiki/doku.php",
	"dependencies": {
		"jquery": ">=1.7"
	}
}
jqGrid.js000064400000001133151676727230006340 0ustar00require([
	"jquery",

	// grid
	"jqgrid/grid.base",
	"jqgrid/grid.celledit",
	"jqgrid/grid.common",
	"jqgrid/grid.filter",
	"jqgrid/grid.formedit",
	"jqgrid/grid.grouping",
	"jqgrid/grid.import",
	"jqgrid/grid.inlinedit",
	"jqgrid/grid.jqueryui",
	"jqgrid/grid.pivot",
	"jqgrid/grid.subgrid",
	"jqgrid/grid.treegrid",
	"jqgrid/jqDnR",
	"jqgrid/jqModal",
	"jqgrid/jquery.fmatter",
	"jqgrid/grid.utils",
	"jqgrid/addons/ui.multiselect",
	"jqgrid/grid.aria",
	"jqgrid/grid.transposed",
	"jqgrid/grid.frozenrows",
	"jqgrid/grid.database"

], function ($) {
	"use strict";
	console.log("jqGrid loaded!");
});Gruntfile.js000064400000007531151676727230007067 0ustar00module.exports = function(grunt) {
	"use strict";
var
	//builddir = "dist", // not used
	// files
	allFiles = [
		"grid.base",
		"grid.celledit",
		"grid.common",
		"grid.filter",
		"grid.formedit",
		"grid.grouping",
		"grid.import",
		"grid.inlinedit",
		"grid.jqueryui",
		"grid.pivot",
		"grid.subgrid",
		"grid.treegrid",
		"jqDnR",
		"jqModal",
		"jquery.fmatter",
		"jquery.sortable",
		"grid.utils",
		"grid.export",
		"grid.aria",
		"grid.transposed",
		"grid.frozenrows",
		"grid.database"
	],

	gridFiles = allFiles.map(function( file ) {
		return "js/" + file+".js";
	}),
	allI18nFiles = expandFiles( "js/i18n/*.js" ),
	
	cssFiles = [
		"css/ui.jqgrid.css",
		"css/addons/ui.multiselect.css"
	],
	// minified files
	minify = {
		options: {
			preserveComments: false,
			mangle: {
				toplevel: true
			},
			sourceMap :  true
		},
		main: {
			options: {
				banner: createBanner( true )
			},
			files: {
				"js/jquery.jqGrid.min.js": "js/jquery.jqGrid.js"
			}
		}
	};
	
	function mapMinFile( file ) {
		return "js/" + file.replace( /js\//, "minified/" );
	}
	function mapi18nFile( file ) {
		return "js/" + file.replace( /js\//, "minified/" );
	}

	function expandFiles( files ) {
		return grunt.util._.map( grunt.file.expandMapping( files ), "src" ).map(function( values ) {
			return values[ 0 ];
		});
	}

	var header = ''+
		'(function( factory ) {'+'\n'+
		'	"use strict";'+'\n'+
		'	if ( typeof define === "function" && define.amd ) {'+'\n'+
		'		// AMD. Register as an anonymous module.'+'\n'+
		'		define([ '+'\n'+
		'			"jquery"'+'\n'+
		'		], factory );' +'\n'+
		' 	} else {'+'\n'+
		'		// Browser globals'+'\n'+
		'		factory( jQuery );'+'\n'+
		' 	}'+'\n'+
		'}(function( $ ) {'+'\n'+
		'"use strict";'+'\n';


	function createBanner( date ) {
		return date === true ? "/**\n*\n"+
			"* @license Guriddo <%= pkg.name %> JS - v<%= pkg.version %> " +
			( date ? "- <%= grunt.template.today('isoDate') %>\n" : "\n") +
			"* Copyright(c) 2008, <%=pkg.author.name%>, <%=pkg.author.email%>\n"+
			"* \n"+
			"* License: <%= pkg.licenses[0].url %>\n"+
			"*/\n" : "";
	}
	// grid files min
	gridFiles.concat( ).forEach(function( file ) {
		minify[ file ] = {
			options: {
				banner: createBanner( false ),
				sourceMap: false
			},
			files: {}
		};
		minify[ file ].files[ mapMinFile( file ) ] = file;
	});
	// i18n files min
	allI18nFiles.concat( ).forEach(function( file ) {
		minify[ file ] = {
			options :{
				sourceMap: false
			},
			files:{}
		};
		minify[ file ].files[ mapi18nFile( file ) ] = file;
	});

	grunt.initConfig({
		pkg: grunt.file.readJSON( "package.json" ),
		files: {
			dist: "<%= pkg.name %>-<%= pkg.version %>"
		},
		jshint: {
			options: {
				jshintrc: true
			},
			core: {
				src: [
				"	Gruntfile.js",
					"js/*.js"
				]
			}
		},
		concat: {
			grid: {
				options: {
					banner: createBanner( true )+ header,
					footer: '\n'+"}));",
					process: function(src, filepath) {
						var begin = src.indexOf("//module begin");
						var end = src.lastIndexOf('//module end');
						return (begin === -1 || end === -1) ? "" : src.substring(begin,end);
					}

				},
				src: gridFiles,
				dest: "js/jquery.jqGrid.js"
			}
		},
		// create requiere js version
		requirejs: {
			compile: {
				options: {
					baseUrl: ".",
					mainConfigFile: "config.js",
					name: "jqGrid",
					out: "build/jqGrid.js",
					optimize: "none",
					normalizeDirDefines:  "all",
					paths: {
						"jquery": "empty:",
						"jquery-ui": "empty:"
					}
				}
			}
		},
		uglify : minify
	});

	// These plugins provide necessary tasks.
	grunt.loadNpmTasks("grunt-contrib-jshint");
	grunt.loadNpmTasks("grunt-contrib-requirejs");
	grunt.loadNpmTasks('grunt-contrib-uglify');
	grunt.loadNpmTasks('grunt-contrib-concat');
	
	grunt.registerTask("default", ["build"]);
	grunt.registerTask("build", ["requirejs", "concat:grid","uglify"]);
	grunt.registerTask("test", ["jshint"]);

};
gradlew.bat000064400000004544151676727230006710 0ustar00@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem  Gradle startup script for Windows
@rem
@rem ##########################################################################

@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal

@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS=

set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%

@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome

set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto init

echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.

goto fail

:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe

if exist "%JAVA_EXE%" goto init

echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.

goto fail

:init
@rem Get command-line arguments, handling Windowz variants

if not "%OS%" == "Windows_NT" goto win9xME_args
if "%@eval[2+2]" == "4" goto 4NT_args

:win9xME_args
@rem Slurp the command line arguments.
set CMD_LINE_ARGS=
set _SKIP=2

:win9xME_args_slurp
if "x%~1" == "x" goto execute

set CMD_LINE_ARGS=%*
goto execute

:4NT_args
@rem Get arguments from the 4NT Shell from JP Software
set CMD_LINE_ARGS=%$

:execute
@rem Setup the command line

set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar

@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%

:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd

:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1

:mainEnd
if "%OS%"=="Windows_NT" endlocal

:omega
js/grid.grouping.js000064400000100155151676727230010316 0ustar00/*jshint eqeqeq:false, eqnull:true */
/*global jQuery, define */
// Grouping module
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"./grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {
"use strict";
//module begin
$.jgrid.extend({
	groupingInit : function () {
		return this.each(function (){
			var $t = this;
			$.extend ($t.p.groupingView, {
				groupField :[],
				groupOrder:[],
				groupText:[],
				groupColumnShow:[],
				groupSummary:[],
				showSummaryOnHide: false,
				sortitems:[],
				sortnames:[],
				summary:[],
				summaryval:[],
				plusicon: '',
				minusicon: '',
				displayField: [],
				groupSummaryPos:[],
				formatDisplayField : [],
				_locgr : false
			}, true);
		});
	},
	groupingSetup : function () {
		return this.each(function (){
			var $t = this, i, j, cml, cm = $t.p.colModel, grp = $t.p.groupingView,
			classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].grouping;
			if(grp !== null && ( (typeof grp === 'object') || $.jgrid.isFunction(grp) ) ) {
				if(!grp.plusicon) { grp.plusicon = classes.icon_plus;}
				if(!grp.minusicon) { grp.minusicon = classes.icon_minus;}
				if(!grp.groupField.length) {
					$t.p.grouping = false;
				} else {
					if (grp.visibiltyOnNextGrouping === undefined) {
						grp.visibiltyOnNextGrouping = [];
					}

					grp.lastvalues=[];
					if(!grp._locgr) {
						grp.groups =[];
					}
					grp.counters =[];
					for(i=0;i<grp.groupField.length;i++) {
						if(!grp.groupOrder[i]) {
							grp.groupOrder[i] = 'asc';
						}
						if(!grp.groupText[i]) {
							grp.groupText[i] = '{0}';
						}
						if( typeof grp.groupColumnShow[i] !== 'boolean') {
							grp.groupColumnShow[i] = true;
						}
						if( typeof grp.groupSummary[i] !== 'boolean') {
							grp.groupSummary[i] = false;
						}
						if( !grp.groupSummaryPos[i]) {
							grp.groupSummaryPos[i] = 'footer';
						}
						if(grp.groupColumnShow[i] === true) {
							grp.visibiltyOnNextGrouping[i] = true;
							$($t).jqGrid('showCol',grp.groupField[i]);
						} else {
							grp.visibiltyOnNextGrouping[i] = $("#"+$.jgrid.jqID($t.p.id+"_"+grp.groupField[i])).is(":visible");
							$($t).jqGrid('hideCol',grp.groupField[i]);
						}
					}
					grp.summary =[];
					if(grp.hideFirstGroupCol) {
						if(Array.isArray(grp.formatDisplayField) && !$.jgrid.isFunction(grp.formatDisplayField[0] ) ) {
							grp.formatDisplayField[0] = function (v) { return v;};
						}
					}
					for(j=0, cml = cm.length; j < cml; j++) {
						if(grp.hideFirstGroupCol) {
							if(!cm[j].hidden && grp.groupField[0] === cm[j].name) {
								cm[j].formatter = function(){return '';};
							}
						}
						if(cm[j].summaryType ) {
							if(cm[j].summaryDivider) {
								grp.summary.push({nm:cm[j].name,st:cm[j].summaryType, v: '', sd:cm[j].summaryDivider, vd:'', sr: cm[j].summaryRound, srt: cm[j].summaryRoundType || 'round'});
							} else {
								grp.summary.push({nm:cm[j].name,st:cm[j].summaryType, v: '', sr: cm[j].summaryRound, srt: cm[j].summaryRoundType || 'round'});
							}
						}
					}
				}
			} else {
				$t.p.grouping = false;
			}
		});
	},
	groupingPrepare : function ( record, irow ) {
		this.each(function(){
			var grp = this.p.groupingView, $t= this, i,
			sumGroups = function() {
				if ($.jgrid.isFunction(this.st)) {
					this.v = this.st.call($t, this.v, this.nm, record);
				} else {
					this.v = $($t).jqGrid('groupingCalculations.handler',this.st, this.v, this.nm, this.sr, this.srt, record);
					if(this.st.toLowerCase() === 'avg' && this.sd) {
						this.vd = $($t).jqGrid('groupingCalculations.handler',this.st, this.vd, this.sd, this.sr, this.srt, record);
					}
				}
			},
			grlen = grp.groupField.length, 
			fieldName,
			v,
			displayName,
			displayValue,
			changed = 0;
			for(i=0;i<grlen;i++) {
				fieldName = grp.groupField[i];
				displayName = grp.displayField[i];
				v = record[fieldName];
				displayValue = displayName == null ? null : record[displayName];

				if( displayValue == null ) {
					displayValue = v;
				}
				if( v !== undefined ) {
					if(irow === 0 ) {
						// First record always starts a new group
						grp.groups.push({idx:i,dataIndex:fieldName,value:v, displayValue: displayValue, startRow: irow, cnt:1, summary : [] } );
						grp.lastvalues[i] = v;
						grp.counters[i] = {cnt:1, pos:grp.groups.length-1, summary: $.extend(true,[],grp.summary)};
						$.each(grp.counters[i].summary, sumGroups);
						grp.groups[grp.counters[i].pos].summary = grp.counters[i].summary;
					} else {
						if (typeof v !== "object" && (Array.isArray(grp.isInTheSameGroup) && $.jgrid.isFunction(grp.isInTheSameGroup[i]) ? ! grp.isInTheSameGroup[i].call($t, grp.lastvalues[i], v, i, grp): grp.lastvalues[i] !== v)) {
							// This record is not in same group as previous one
							grp.groups.push({idx:i,dataIndex:fieldName,value:v, displayValue: displayValue, startRow: irow, cnt:1, summary : [] } );
							grp.lastvalues[i] = v;
							changed = 1;
							grp.counters[i] = {cnt:1, pos:grp.groups.length-1, summary: $.extend(true,[],grp.summary)};
							$.each(grp.counters[i].summary, sumGroups);
							grp.groups[grp.counters[i].pos].summary = grp.counters[i].summary;
						} else {
							if (changed === 1) {
								// This group has changed because an earlier group changed.
								grp.groups.push({idx:i,dataIndex:fieldName,value:v, displayValue: displayValue, startRow: irow, cnt:1, summary : [] } );
								grp.lastvalues[i] = v;
								grp.counters[i] = {cnt:1, pos:grp.groups.length-1, summary: $.extend(true,[],grp.summary)};
								$.each(grp.counters[i].summary, sumGroups);
								grp.groups[grp.counters[i].pos].summary = grp.counters[i].summary;
							} else {
								grp.counters[i].cnt += 1;
								grp.groups[grp.counters[i].pos].cnt = grp.counters[i].cnt;
								$.each(grp.counters[i].summary, sumGroups);
								grp.groups[grp.counters[i].pos].summary = grp.counters[i].summary;
							}
						}
					}
				}
			}
			//gdata.push( rData );
		});
		return this;
	},
	groupingToggle : function(hid){
		this.each(function(){
			var $t = this,
			grp = $t.p.groupingView,
			strpos = hid.split('_'),
			num = parseInt(strpos[strpos.length-2], 10);
			strpos.splice(strpos.length-2,2);
			var uid = strpos.join("_"),
			minus = grp.minusicon,
			plus = grp.plusicon,
			tar = $("#"+$.jgrid.jqID(hid)),
			r = tar.length ? tar[0].nextSibling : null,
			tarspan = $("#"+$.jgrid.jqID(hid)+" span."+"tree-wrap-"+$t.p.direction),
			getGroupingLevelFromClass = function (className) {
				var nums = $.map(className.split(" "), function (item) {
					if (item.substring(0, uid.length + 1) === uid + "_") {
						return parseInt(item.substring(uid.length + 1), 10);
					}
				});
				return nums.length > 0 ? nums[0] : undefined;
			},
			itemGroupingLevel,
			showData,
			collapsed = false,
			footLevel,
			skip = false,
			frz = $t.p.frozenColumns ? $t.p.id+"_frozen" : false,
			tar2 = frz ? $("#"+$.jgrid.jqID(hid), "#"+$.jgrid.jqID(frz) ) : false,
			r2 = (tar2 && tar2.length) ? tar2[0].nextSibling : null;
			if( tarspan.hasClass(minus) ) {
				if(r){
					while(r) {
						itemGroupingLevel = getGroupingLevelFromClass(r.className);
						if (itemGroupingLevel !== undefined && itemGroupingLevel <= num) {
							break;
						}
						footLevel = parseInt($(r).attr("jqfootlevel") ,10);
						skip = isNaN(footLevel) ? false : 
						 (grp.showSummaryOnHide && footLevel >= num);
						if( !skip) {
							$(r).hide();
						}
						r = r.nextSibling;
						if(frz) {
							if(!skip) {
								$(r2).hide();
							}
							r2 = r2.nextSibling;
						}
					}
				}
				tarspan.removeClass(minus).addClass(plus);
				collapsed = true;
			} else {
				if(r){
					showData = undefined;
					while(r) {
						itemGroupingLevel = getGroupingLevelFromClass(r.className);
						footLevel = parseInt($(r).attr("jqfootlevel") ,10);
						if (showData === undefined) {
							showData = itemGroupingLevel === undefined; // if the first row after the opening group is data row then show the data rows
						}
						skip = $(r).hasClass("ui-subgrid") && $(r).hasClass("ui-sg-collapsed");
						if (itemGroupingLevel !== undefined) {
							if (itemGroupingLevel <= num) {
								break;// next item of the same lever are found
							}
							if (itemGroupingLevel === num + 1) {
								if(!skip) {
									$(r).show().find(">td>span."+"tree-wrap-"+$t.p.direction).removeClass(minus).addClass(plus);
									if(frz) {
										$(r2).show().find(">td>span."+"tree-wrap-"+$t.p.direction).removeClass(minus).addClass(plus);
									}
								}
							}
						} else if (showData) {
							if(!skip) {
								$(r).show();
								if(frz) {
									$(r2).show();
								}
							}
						} else if(!isNaN(footLevel) &&  footLevel >=0 &&  footLevel === num) {
								$(r).show();
								if(frz) {
									$(r2).show();
							}
						}
						r = r.nextSibling;
						if(frz) {
							r2 = r2.nextSibling;
						}
					}
				}
				tarspan.removeClass(plus).addClass(minus);
			}
			if(frz && $t.p.height === 'auto'){
				$t.grid.fbDiv.height($($t).height());
				if($t.grid.fsDiv) {
					var hasscroll = $($t.grid.bDiv)[0].scrollWidth > $($t.grid.bDiv)[0].clientWidth,
					//scrollbar height
					scrollh = hasscroll ? $.jgrid.scrollbarHeight() : 0;
					$t.grid.fsDiv.css('top', ($t.grid.fbDiv.position().top + $($t).height()) + scrollh + 'px');
				}
			}
			$($t).triggerHandler("jqGridGroupingClickGroup", [hid , collapsed]);
			if( $.jgrid.isFunction($t.p.onClickGroup)) { $t.p.onClickGroup.call($t, hid , collapsed); }

		});
		return false;
	},
	groupingRender : function (grdata, colspans, page, rn ) {
		return this.each(function(){
			var $t = this,
			grp = $t.p.groupingView,
			str = "", icon = "", hid, clid, pmrtl = grp.groupCollapse ? grp.plusicon : grp.minusicon, gv, cp=[], len =grp.groupField.length,
			//classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')]['grouping'],
			common = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].common;

			pmrtl = pmrtl+" tree-wrap-"+$t.p.direction; 
			$.each($t.p.colModel, function (i,n){
				var ii;
				for(ii=0;ii<len;ii++) {
					if(grp.groupField[ii] === n.name ) {
						cp[ii] = i;
						break;
					}
				}
			});
			var toEnd = 0;
			function findGroupIdx( ind , offset, grp) {
				var ret = false, i;
				if(offset===0) {
					ret = grp[ind];
				} else {
					var id = grp[ind].idx;
					if(id===0) { 
						ret = grp[ind]; 
					}  else {
						for(i=ind;i >= 0; i--) {
							if(grp[i].idx === id-offset) {
								ret = grp[i];
								break;
							}
						}
					}
				}
				return ret;
			}
			function buildSummaryTd(i, ik, grp, foffset, fstr) {
				var fdata = findGroupIdx(i, ik, grp),
				cm = $t.p.colModel,
				vv, grlen = fdata.cnt, str="", k , isput = false, tmpdata, tplfld;
				for(k=foffset; k<colspans;k++) {
					if(cm[k].hidden ) {
						tmpdata = "<td role=\"gridcell\" "+$t.formatCol(k,1,'')+">&#160;</td>";
					} else if(!isput && fstr) {
						tmpdata = fstr;
						isput = true;
					} else {
						tmpdata = "<td role=\"gridcell\" "+$t.formatCol(k,1,'')+">&#160;</td>";
					}
					$.each(fdata.summary,function(){
						if(this.nm === cm[k].name) {
							
							tplfld = (cm[k].summaryTpl) ? cm[k].summaryTpl :  "{0}";
							
							vv = this.v;
							try {
								this.groupCount = fdata.cnt;
								this.groupIndex = fdata.dataIndex;
								this.groupValue = fdata.value;
								//vv = $t.formatter('', vv, k, this);
							} catch (ef) {
								//vv = this.v;
							}
							tmpdata= "<td role=\"gridcell\" "+$t.formatCol(k,1,'')+">"+$.jgrid.template(tplfld, vv, fdata.cnt, fdata.dataIndex, fdata.displayValue, fdata.summary)+ "</td>";
							return false;
						}
					});
					str += tmpdata;
				}
				return str;
			}
			var sumreverse = $.makeArray(grp.groupSummary), mul;
			sumreverse.reverse();
			mul = $t.p.multiselect ? " colspan=\"2\"" : "";
			$.each(grp.groups,function(i,n){
				if(grp._locgr) {
					if( !(n.startRow +n.cnt > (page-1)*rn && n.startRow < page*rn)) {
						return true;
					}
				}
				toEnd++;
				clid = $t.p.id+"ghead_"+n.idx;
				hid = clid+"_"+i;
				icon = "<span style='cursor:pointer;margin-right:8px;margin-left:5px;' class='" + common.icon_base +" "+pmrtl+"' onclick=\"jQuery('#"+$.jgrid.jqID($t.p.id)+"').jqGrid('groupingToggle','"+hid+"');return false;\"></span>";
				try {
					if (Array.isArray(grp.formatDisplayField) && $.jgrid.isFunction(grp.formatDisplayField[n.idx])) {
						gv = grp.formatDisplayField[n.idx].call($t, n.displayValue, n.value, $t.p.colModel[cp[n.idx]], n.idx, grp);
					} else {
						gv = $t.formatter(hid, n.displayValue, cp[n.idx], n.value );
					}
				} catch (egv) {
					gv = n.displayValue;
				}
				var grpTextStr = ''; 
				// format summary values if formatter
				for( var kk =0;kk< n.summary.length; kk++) {  
					var nv = n.summary[kk];
					var ci = $.jgrid.getElemByAttrVal($t.p.colModel, 'name', nv.nm, true);
					if(ci>=0) {
						if(typeof nv.st === 'string' && nv.st.toLowerCase() === 'avg') {
							if(nv.sd && nv.vd) { 
								nv.v = (nv.v/nv.vd);
							} else if(nv.v && n.cnt > 0) {
								nv.v = (nv.v/n.cnt);
							}
						}
						nv.uv = nv.v;
						try {
							nv.v = $t.formatter('',nv.v, ci, this);
						} catch (e) {}
					}
				}
				
				if($.jgrid.isFunction(grp.groupText[n.idx])) { 
					grpTextStr = grp.groupText[n.idx].call($t, gv, n.cnt, n.summary);
				} else {
					grpTextStr = $.jgrid.template.call($t, grp.groupText[n.idx], gv, n.cnt, n.summary);
				}
				if( !(typeof grpTextStr ==='string' || typeof grpTextStr ==='number' ) ) {
					grpTextStr = gv;
				}
				if(grp.groupSummaryPos[n.idx] === 'header')  {
					str += "<tr id=\""+hid+"\"" +(grp.groupCollapse && n.idx>0 ? " style=\"display:none;\" " : " ") + "role=\"row\" class= \"" + common.content + " jqgroup ui-row-"+$t.p.direction+" "+clid+"\">";
					str += buildSummaryTd(i, 0, grp.groups, (mul==="" ? 0 : 1), "<td role=\"gridcell\" style=\"padding-left:"+(n.idx * 12) + "px;"+"\"" + mul +">" + icon+grpTextStr + "</td>" );
					str += "</tr>";
				} else {
					str += "<tr id=\""+hid+"\"" +(grp.groupCollapse && n.idx>0 ? " style=\"display:none;\" " : " ") + "role=\"row\" class= \"" + common.content + " jqgroup ui-row-"+$t.p.direction+" "+clid+"\"><td style=\"padding-left:"+(n.idx * 12) + "px;"+"\" colspan=\""+(grp.groupColumnShow[n.idx] === false ? colspans-1 : colspans)+"\">" + icon + grpTextStr + "</td></tr>";
				}
				var leaf = len-1 === n.idx; 
				if( leaf ) {
					var gg = grp.groups[i+1], kk, ik, offset = 0, sgr = n.startRow,
					end = gg !== undefined ?  gg.startRow : grp.groups[i].startRow + grp.groups[i].cnt;
					if(grp._locgr) {
						offset = (page-1)*rn;
						if(offset > n.startRow) {
							sgr = offset;
						}
					}
					for(kk=sgr;kk<end;kk++) {
						if(!grdata[kk - offset]) { break; }
						str += grdata[kk - offset].join('');
					}
					if(grp.groupSummaryPos[n.idx] !== 'header') {
						var jj;
						if (gg !== undefined) {
							for (jj = 0; jj < grp.groupField.length; jj++) {
								if (gg.dataIndex === grp.groupField[jj]) {
									break;
								}
							}
							toEnd = grp.groupField.length - jj;
						}
						for (ik = 0; ik < toEnd; ik++) {
							if(!sumreverse[ik]) { continue; }
							var hhdr = "";
							if(grp.groupCollapse && !grp.showSummaryOnHide) {
								hhdr = " style=\"display:none;\"";
							}
							str += "<tr"+hhdr+" jqfootlevel=\""+(n.idx-ik)+"\" role=\"row\" class=\"" + common.content + " jqfoot ui-row-"+$t.p.direction+"\">";
							str += buildSummaryTd(i, ik, grp.groups, 0, false);
							str += "</tr>";
						}
						toEnd = jj;
					}
				}
			});
			$("#"+$.jgrid.jqID($t.p.id)+" tbody").first().append(str);
			// free up memory
			str = null;
		});
	},
	groupingGroupBy : function (name, options ) {
		return this.each(function(){
			var $t = this;
			if(typeof name === "string") {
				name = [name];
			}
			var grp = $t.p.groupingView;
			$t.p.grouping = true;
			grp._locgr = false;
			//Set default, in case visibilityOnNextGrouping is undefined 
			if (grp.visibiltyOnNextGrouping === undefined) {
				grp.visibiltyOnNextGrouping = [];
			}
			var i;
			// show previous hidden groups if they are hidden and weren't removed yet
			for(i=0;i<grp.groupField.length;i++) {
				if(!grp.groupColumnShow[i] && grp.visibiltyOnNextGrouping[i]) {
					$($t).jqGrid('showCol',grp.groupField[i]);
				}
			}
			// set visibility status of current group columns on next grouping
			for(i=0;i<name.length;i++) {
				grp.visibiltyOnNextGrouping[i] = $("#"+$.jgrid.jqID($t.p.id)+"_"+$.jgrid.jqID(name[i])).is(":visible");
			}
			$t.p.groupingView = $.extend($t.p.groupingView, options || {});
			grp.groupField = name;
			$($t).trigger("reloadGrid");
		});
	},
	groupingRemove : function (current, grpViewInit) {
		return this.each(function(){
			var $t = this;
			if(current === undefined) {
				current = true;
			}
			if(grpViewInit === undefined) {
				grpViewInit = false;
			}
			$t.p.grouping = false;
			if(current===true) {
				var grp = $t.p.groupingView, i;
				// show previous hidden groups if they are hidden and weren't removed yet
				for(i=0;i<grp.groupField.length;i++) {
				if (!grp.groupColumnShow[i] && grp.visibiltyOnNextGrouping[i]) {
						$($t).jqGrid('showCol', grp.groupField);
					}
				}
				$("#"+$.jgrid.jqID($t.p.id)+" tbody").first().find("tr.jqgroup, tr.jqfoot").remove();
				$("#"+$.jgrid.jqID($t.p.id)+" tbody").first().find("tr.jqgrow:hidden").show();
			} else {
				$($t).trigger("reloadGrid");
			}
			if(grpViewInit) {
				$($t).jqGrid('groupingInit');
			}
		});
	},
	groupingCalculations : {
		handler: function(fn, v, field, round, roundType, rc) {
			var funcs = {
				sum: function() {
					return $.jgrid.floatNum(v) + $.jgrid.floatNum(rc[field]);
				},

				min: function() {
					if(v==="") {
						return $.jgrid.floatNum(rc[field]);
					}
					return Math.min($.jgrid.floatNum(v),$.jgrid.floatNum(rc[field]));
				},

				max: function() {
					if(v==="") {
						return $.jgrid.floatNum(rc[field]);
					}
					return Math.max($.jgrid.floatNum(v),$.jgrid.floatNum(rc[field]));
				},

				count: function() {
					if(v==="") {v=0;}
					if(rc.hasOwnProperty(field)) {
						return v+1;
					}
					return 0;
				},

				avg: function() {
					// the same as sum, but at end we divide it
					// so use sum instead of duplicating the code (?)
					return funcs.sum();
				}
			};

			if(!funcs[fn]) {
				throw "jqGrid Grouping No such method: " + fn;
			}
			var res = funcs[fn]();

			if (round != null) {
				if (roundType === 'fixed') {
					res = res.toFixed(round);
				} else {
					var mul = Math.pow(10, round);
					res = Math.round(res * mul) / mul;
				}
			}

			return res;
		}	
	},
	groupingResetCalcs : function () {
		return this.each(function(){
			this.p.groupingView._locgr = false;
		});
	},
	setColSpanHeader : function( o ) {
		return this.each(function(){
			var ts = this,
			i, cmi, skip = 0, th, $th, thStyle, k,
			iCol,
			cghi,
			//startColumnName,
			numberOfColumns,
			titleText,
                        toolTip,
			cVisibleColumns,
			className,
			colModel = ts.p.colModel,
			cml = colModel.length,
			ths = ts.grid.headers,
			$htable = $("table.ui-jqgrid-htable", ts.grid.hDiv),
			$thead = $htable.children("thead"),
			$firstHeaderRow = $htable.find(".jqg-first-row-header"),
			$focusElem = false,
			frozen = false,
			//classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')]['grouping'],
			numberOfHeadRows = $thead.children("tr").length;
			//base = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].base;
			if(Array.isArray( o )) {
				ts.p.colSpanHeader =  o;
			}
			if($firstHeaderRow[0] === undefined) {
				$firstHeaderRow = $('<tr>', {role: "row", "aria-hidden": "true"}).addClass("jqg-first-row-header").css("height", "auto");
			} else {
				$firstHeaderRow.empty();
			}
			if(ts.p.frozenColumns) {
				$(ts).jqGrid("destroyFrozenColumns");
				frozen = true;
			}
			for (i = 0; i < cml; i++) {
				th = ths[i].el;
				$th = $(th);
				cmi = colModel[i];
				// build the next cell for the first header row
				thStyle = { height: '0px', width: ths[i].width + 'px', display: (cmi.hidden ? 'none' : '')};
				$("<th>", {role: 'gridcell'}).css(thStyle).addClass("ui-first-th-"+ts.p.direction + " " + (cmi.labelClasses || "") ).appendTo($firstHeaderRow);
			}
			$thead.prepend($firstHeaderRow);

			//$firstRow = $thead.find("tr.jqg-first-row-header");
			$(ts).on('jqGridResizeStop.setGroupHeaders', function (e, nw, idx) {
				$firstHeaderRow.find('th').eq(idx)[0].style.width = nw + "px";
			});
			for (i = 0; i < cml; i++) {
				th = ths[i].el;
				$th = $(th);
				cmi = colModel[i];
				iCol = $.jgrid.inColumnHeader(cmi.name, ts.p.colSpanHeader);
				if (iCol >= 0) {
					cghi = ts.p.colSpanHeader[iCol];
					numberOfColumns = cghi.numberOfColumns;
					titleText = cghi.titleText || "";
					className = cghi.className || "";
					toolTip = cghi.toolTip || "";
					// caclulate the number of visible columns from the next numberOfColumns columns
					for (cVisibleColumns = 0, iCol = 0; iCol < numberOfColumns && (i + iCol < cml); iCol++) {
						if (!colModel[i + iCol].hidden) {
							cVisibleColumns++;
						}
					}

					if(cVisibleColumns > 0) {
						$th.attr("colspan", String(cVisibleColumns));
						if(numberOfHeadRows > 1) {
							for(k=1;k<numberOfHeadRows; k++) {
								$("tr",$thead).eq(k+1).find("th").eq(i).attr("colspan", String(cVisibleColumns));
							}
						}
					}
					if (titleText) {
						var fl = $th.find("div.ui-th-div")[0];
						cghi.savedLabel = fl.innerHTML;
						fl.innerHTML = titleText;
						if(typeof toolTip === "string" && toolTip !== "") {
							$th.attr("title", toolTip);
						} else if (ts.p.headertitles) {
							$th.attr("title", titleText);
						}
					}
					$th.addClass(className);
					for( skip=0;skip < numberOfColumns-1;skip++) {
						$(ths[skip+i+1].el).hide();
						ts.p.colModel[skip+i+1].hidedlg = true;
						ts.p.colModel[skip+i+1]._colspancell = true;
						if(numberOfHeadRows > 1) {
							for(k=1;k<numberOfHeadRows; k++) {
								$("tr",$thead).eq(k+1).find("th").eq(i+skip+1).hide();
							}
						}
					}
				}
			}
			
			if( $focusElem ) {
				try {
					$($focusElem).focus();
				} catch(fe) {}
			}
			if(frozen) {
				$(ts).jqGrid("setFrozenColumns");
			}

		});
	},
	destroyColSpanHeader : function(emptyColSpan) {
		if(emptyColSpan === undefined) {
			emptyColSpan = true;
		}
		return this.each(function(){
			var ts = this,
			$htable = $("table.ui-jqgrid-htable", ts.grid.hDiv),
			clitem, fl, k, j, itm, cellInd,
			$thead = $htable.children("thead");
			$("tr.jqg-first-row-header", $thead).remove();
			if(ts.p.colSpanHeader.length) {
				for(j = 0;j<ts.p.colSpanHeader.length;j++) {
					clitem = ts.p.colSpanHeader[j];
					cellInd = $.jgrid.getElemByAttrVal( ts.p.colModel, 'name', clitem.startColumnName, true);
					if(cellInd < 0 ) {
						continue;
					}
					for(k = cellInd+1; k < cellInd + clitem.numberOfColumns; k++) {
						ts.p.colModel[k].hidedlg=false;
						ts.p.colModel[k]._colspancell=false;
					}
					$(">tr", $thead).each(function( i, n) {
						itm = $("th",n).eq(cellInd);
						if(!itm.className) {
							itm.className = "";
						}
						$(itm).attr("colspan","").removeClass( itm.className );
						if($(n).hasClass('ui-jqgrid-labels')) {
							fl = itm.find("div.ui-th-div")[0];
							fl.innerHTML = clitem.savedLabel;
						}
						for(k=1;k<clitem.numberOfColumns;k++) {
							$("th", n).eq(cellInd+k).show();
						}
					});
				}
			}
			if(emptyColSpan) {
				ts.p.colSpanHeader =[];
			}
		});
	},
	setGroupHeaders : function ( o ) {
		o = $.extend({
			useColSpanStyle :  false,
			groupHeaders: []
		},o  || {});
		return this.each(function(){
			var ts = this,
			i, cmi, skip = 0, $tr, $colHeader, th, $th, thStyle,
			iCol,
			cghi,
			//startColumnName,
			numberOfColumns,
			titleText,
			toolTip,
			cVisibleColumns,
			className,
			colModel = ts.p.colModel,
			cml = colModel.length,
			ths = ts.grid.headers,
			$htable = $("table.ui-jqgrid-htable", ts.grid.hDiv),
			$trLabels = $htable.children("thead").children("tr.ui-jqgrid-labels").last().addClass("jqg-second-row-header"),
			$thead = $htable.children("thead"),
			$theadInTable,
			$firstHeaderRow = $htable.find(".jqg-first-row-header"),
			$firstRow,
			$focusElem = false,
			frozen = false,
			//classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')]['grouping'],
			base = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].base;
			if(!ts.p.groupHeader) {
				ts.p.groupHeader = [];
			}
			ts.p.groupHeader.push(o);
			ts.p.groupHeaderOn = true;
			if($firstHeaderRow[0] === undefined) {
				$firstHeaderRow = $('<tr>', {role: "row", "aria-hidden": "true"}).addClass("jqg-first-row-header").css("height", "auto");
			} else {
				$firstHeaderRow.empty();
			}
			if(ts.p.frozenColumns) {
				$(ts).jqGrid("destroyFrozenColumns");
				frozen = true;
			}
			
			if( $(document.activeElement).is('input') || $(document.activeElement).is('textarea') ) {
				$focusElem = document.activeElement;
			}
			$(ts).prepend($thead);

			$tr = $('<tr>', {role: "row"}).addClass("ui-jqgrid-labels jqg-third-row-header");
			for (i = 0; i < cml; i++) {
				th = ths[i].el;
				$th = $(th);
				cmi = colModel[i];
				// build the next cell for the first header row
				thStyle = { height: '0px', width: ths[i].width + 'px', display: (cmi.hidden ? 'none' : '')};
				$("<th>", {role: 'gridcell'}).css(thStyle).addClass("ui-first-th-"+ts.p.direction + " " + (cmi.labelClasses || "") ).appendTo($firstHeaderRow);

				th.style.width = ""; // remove unneeded style
				iCol = $.jgrid.inColumnHeader(cmi.name, o.groupHeaders);
				if (iCol >= 0) {
					cghi = o.groupHeaders[iCol];
					numberOfColumns = cghi.numberOfColumns;
					titleText = cghi.titleText;
					toolTip = cghi.toolTip || "";
					className = cghi.className || "";
					// caclulate the number of visible columns from the next numberOfColumns columns
					for (cVisibleColumns = 0, iCol = 0; iCol < numberOfColumns && (i + iCol < cml); iCol++) {
						if (!colModel[i + iCol].hidden) {
							cVisibleColumns++;
						}
					}

					// The next numberOfColumns headers will be moved in the next row
					// in the current row will be placed the new column header with the titleText.
					// The text will be over the cVisibleColumns columns
					$colHeader = $('<th>').attr({role: "columnheader"})
						.addClass(base.headerBox+ " ui-th-column-header ui-th-"+ts.p.direction+" "+className + " "+(cmi.labelClasses || ""))
						//.css({'height':'22px', 'border-top': '0 none'})
						.html(titleText);
					if(cVisibleColumns > 0) {
						$colHeader.attr("colspan", String(cVisibleColumns));
					}
					if(typeof toolTip === "string" && toolTip !== "") {
						$colHeader.attr("title", toolTip);
					} else if (ts.p.headertitles) {
						$colHeader.attr("title", $colHeader.text());
					}
					// hide if not a visible cols
					if( cVisibleColumns === 0) {
						$colHeader.hide();
					}

					$th.before($colHeader); // insert new column header before the current
					$tr.append(th);         // move the current header in the next row

					// set the coumter of headers which will be moved in the next row
					skip = numberOfColumns - 1;
				} else {
					if (skip === 0) {
						if (o.useColSpanStyle) {
							// expand the header height to n rows
							var rowspan = $th.attr("rowspan") ? parseInt($th.attr("rowspan"),10) + 1 : 2;
							$th.attr("rowspan", rowspan);
						} else {
							$('<th>', {role: "columnheader"})
								.addClass(base.headerBox+" ui-th-column-header ui-th-"+ts.p.direction)
								.css({"display": cmi.hidden ? 'none' : ''})
								.insertBefore($th);
							$tr.append(th);
						}
					} else {
						// move the header to the next row
						//$th.css({"padding-top": "2px", height: "19px"});
						$tr.append(th);
						skip--;
					}
				}
			}
			$theadInTable = $(ts).children("thead");
			$theadInTable.prepend($firstHeaderRow);
			$tr.insertAfter($trLabels);
			$htable.append($theadInTable);

			if (o.useColSpanStyle) {
				// Increase the height of resizing span of visible headers
				$htable.find("span.ui-jqgrid-resize").each(function () {
					var $parent = $(this).parent();
					if ($parent.is(":visible")) {
						this.style.cssText = 'height: ' + $parent.height() + 'px !important; cursor: col-resize;';
					}
				});

				// Set position of the sortable div (the main lable)
				// with the column header text to the middle of the cell.
				// One should not do this for hidden headers.
				$htable.find("div.ui-jqgrid-sortable").each(function () {
					var $ts = $(this), $parent = $ts.parent();
					if ($parent.is(":visible") && $parent.is(":has(span.ui-jqgrid-resize)")) {
						// minus 4px from the margins of the resize markers
						$ts.css('top', ($parent.height() - $ts.outerHeight()) / 2  - 4 +  'px');
					}
				});
			}

			$firstRow = $theadInTable.find("tr.jqg-first-row-header");
			$(ts).on('jqGridResizeStop.setGroupHeaders', function (e, nw, idx) {
				$firstRow.find('th').eq(idx)[0].style.width = nw + "px";
			});
			if( $focusElem ) {
				try {
					$($focusElem).focus();
				} catch(fe) {}
			}
			var testws = $("tr.jqg-second-row-header th").eq( 0 );
			if( $.jgrid.type(testws)==='object' && testws.length && $.jgrid.trim(testws[0].outerText) === "" ) {
				$("tr.jqg-second-row-header th").eq( 0 ).prepend('&nbsp;');
			}
			if(frozen) {
				$(ts).jqGrid("setFrozenColumns");
			}			
			$(ts).triggerHandler("afterSetGroupHandler", [o]);
			
		});				
	},
	destroyGroupHeader : function(nullHeader) {
		if(nullHeader === undefined) {
			nullHeader = true;
		}
		return this.each(function()
		{
			var $t = this, $tr, i, l, headers, $th, $resizing, grid = $t.grid,
			thead = $("table.ui-jqgrid-htable thead", grid.hDiv), cm = $t.p.colModel, hc, frozen = false;
			if(!grid) { return; }
			if($t.p.frozenColumns) {
				$($t).jqGrid("destroyFrozenColumns");
				frozen = true;
			}

			$(this).off('.setGroupHeaders');
			$t.p.groupHeaderOn = false;
			$tr = $("<tr>", {role: "row"}).addClass("ui-jqgrid-labels");
			headers = grid.headers;
			for (i = 0, l = headers.length; i < l; i++) {
				hc = cm[i].hidden ? "none" : "";
				$th = $(headers[i].el)
					.width( $('tr.jqg-first-row-header th', thead).eq( i ).width() )
					.css('display',hc);
				try {
					$th.removeAttr("rowSpan");
				} catch (rs) {
					//IE 6/7
					$th.attr("rowSpan",1);
				}
				$tr.append($th);
				$resizing = $th.children("span.ui-jqgrid-resize");
				if ($resizing.length>0) {// resizable column
					$resizing[0].style.height = "";
				}
				$th.children("div")[0].style.top = "";
			}
			$(thead).children('tr.ui-jqgrid-labels').remove();
			$(thead).children('tr.jqg-first-row-header').remove();
			$(thead).prepend($tr);

			if(nullHeader === true) {
				$($t).jqGrid('setGridParam',{ 'groupHeader': null});
			}
			if(frozen) {
				$($t).jqGrid("setFrozenColumns");
			}
			$($t).off("afterSetGroupHandler");
		});
	},
	isGroupHeaderOn : function () {
		var $t = this[0];
		return $t.p.groupHeaderOn === true && $t.p.groupHeader && (Array.isArray($t.p.groupHeader) || $.jgrid.isFunction($t.p.groupHeader) );
	}, 
	refreshGroupHeaders : function() {
		return this.each(function(){
			var ts = this,
			gHead,
			gh = $(ts).jqGrid("isGroupHeaderOn");
			if(gh) { 
				$(ts).jqGrid('destroyGroupHeader', false);
				gHead = $.extend([],ts.p.groupHeader);
				ts.p.groupHeader = null;
			}
			if( gh && gHead)  {
				for(var k =0; k < gHead.length; k++) {
					$(ts).jqGrid('setGroupHeaders', gHead[k]);
				}
			}
		});
	}
});
//module end
}));
js/grid.formedit.js000064400000271120151676727230010276 0ustar00/*jshint eqeqeq:false, eqnull:true, devel:true */
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"./grid.base",
			"./grid.common"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {
"use strict";
//module begin
var rp_ge = {};
$.jgrid.extend({
	editGridRow : function(rowid, p){
		var regional =  $.jgrid.getRegional(this[0], 'edit'),
			currstyle = this[0].p.styleUI,
			styles = $.jgrid.styleUI[currstyle].formedit,
			commonstyle = $.jgrid.styleUI[currstyle].common;

		p = $.extend(true, {
			top : 0,
			left: 0,
			width: '500',
			datawidth: 'auto',
			height: 'auto',
			dataheight: 'auto',
			modal: false,
			overlay : 30,
			drag: true,
			resize: true,
			url: null,
			mtype : "POST",
			clearAfterAdd :true,
			closeAfterEdit : false,
			reloadAfterSubmit : true,
			onInitializeForm: null,
			beforeInitData: null,
			beforeShowForm: null,
			afterShowForm: null,
			beforeSubmit: null,
			afterSubmit: null,
			onclickSubmit: null,
			afterComplete: null,
			onclickPgButtons : null,
			afterclickPgButtons: null,
			editData : {},
			recreateForm : false,
			jqModal : true,
			closeOnEscape : false,
			addedrow : "first",
			topinfo : '',
			bottominfo: '',
			saveicon : [],
			closeicon : [],
			savekey: [false,13],
			navkeys: [false,38,40],
			checkOnSubmit : false,
			checkOnUpdate : false,
			processing : false,
			onClose : null,
			ajaxEditOptions : {},
			serializeEditData : null,
			viewPagerButtons : true,
			overlayClass : commonstyle.overlay,
			removemodal : true,
			form: 'edit',
			template : null,
			focusField : true,
			editselected : false,
			html5Check : false,
			buttons : []
		}, regional, p || {});
		rp_ge[$(this)[0].p.id] = p;
		return this.each(function(){
			var $t = this;
			if (!$t.grid || !rowid) {return;}
			$t.p.savedData = {};
			var gID = $t.p.id,
			frmgr = "FrmGrid_"+gID, frmtborg = "TblGrid_"+gID, frmtb = "#"+$.jgrid.jqID(frmtborg), frmtb2,
			IDs = {themodal:'editmod'+gID,modalhead:'edithd'+gID,modalcontent:'editcnt'+gID, scrollelm : frmgr},
			showFrm = true, maxCols = 1, maxRows=0,	postdata, diff, frmoper,
			templ = typeof rp_ge[$t.p.id].template === "string" && rp_ge[$t.p.id].template.length > 0,
			errors =$.jgrid.getRegional(this, 'errors');
			rp_ge[$t.p.id].styleUI = $t.p.styleUI || 'jQueryUI';
			if($.jgrid.isMobile()) {
				rp_ge[$t.p.id].resize = false;
			}
			if (rowid === "new") {
				rowid = "_empty";
				frmoper = "add";
				p.caption=rp_ge[$t.p.id].addCaption;
			} else {
				p.caption=rp_ge[$t.p.id].editCaption;
				frmoper = "edit";
			}
			if(!p.recreateForm) {
				if( $($t).data("formProp") ) {
					$.extend(rp_ge[$(this)[0].p.id], $($t).data("formProp"));
				}
			}
			var closeovrl = true;
			if(p.checkOnUpdate && p.jqModal && !p.modal) {
				closeovrl = false;
			}
			function getFormData(){
				var a2 ={}, i;
				$(frmtb).find(".FormElement").each(function() {
					var celm = $(".customelement", this);
					if (celm.length) {
						var  elem = celm[0], nm = $(elem).attr('name');
						$.each($t.p.colModel, function(){
							if(this.name === nm && this.editoptions && $.jgrid.isFunction(this.editoptions.custom_value)) {
								try {
									let cvr = this.editoptions.custom_value.call($t, $("#"+$.jgrid.jqID(nm),frmtb),'get');
									if( cvr === "#ignoreme#") {
										
									} else if (crv === undefined) {
										throw "e1";
									} else {
										postdata[nm] = cvr;
									}
								} catch (e) {
									if (e==="e1") {$.jgrid.info_dialog(errors.errcap,"function 'custom_value' "+rp_ge[$(this)[0]].p.msg.novalue,rp_ge[$(this)[0]].p.bClose, {styleUI : rp_ge[$(this)[0]].p.styleUI });}
									else {$.jgrid.info_dialog(errors.errcap,e.message,rp_ge[$(this)[0]].p.bClose, {styleUI : rp_ge[$(this)[0]].p.styleUI });}
								}
								return true;
							}
						});
					} else {
						switch ($(this).get(0).type) {
							case "checkbox":
								if($(this).is(":checked")) {
									postdata[this.name]= $(this).val();
								} else {
									var ofv = $(this).attr("offval");
									postdata[this.name]= ofv;
								}
							break;
							case "select-one":
								postdata[this.name]= $(this).val();
							break;
							case "select-multiple":
								postdata[this.name]= $(this).val();
								postdata[this.name] = postdata[this.name] ? postdata[this.name].join(",") : "";
							break;
							case "radio" :
								if(a2.hasOwnProperty(this.name)) {
									return true;
								} else {
									a2[this.name] = ($(this).attr("offval") === undefined) ? "off" : $(this).attr("offval");
								}
								break;
							default:
								postdata[this.name] = $(this).val();
						}
						if($t.p.autoencode) {
							postdata[this.name] = $.jgrid.htmlEncode(postdata[this.name]);
						}
					}
				});
				for(i in a2 ) {
					if( a2.hasOwnProperty(i)) {
						var val = $('input[name="'+i+'"]:checked',frmtb).val();
						postdata[i] = (val !== undefined) ? val : a2[i];
						if($t.p.autoencode) {
							postdata[i] = $.jgrid.htmlEncode(postdata[i]);
						}
					}
				}
				return true;
			}
			function createData(rowid,obj,tb,maxcols){
				var nm, hc,trdata, cnt=0,tmp, dc,elc, retpos=[], ind=false,
				tdtmpl = "<td class='CaptionTD'></td><td class='DataTD'></td>", tmpl="", i, ffld; //*2
				for (i =1; i<=maxcols;i++) {
					tmpl += tdtmpl;
				}
				if(rowid !== '_empty') {
					ind = $(obj).jqGrid("getInd",rowid);
				}
				$(obj.p.colModel).each( function(i) {
					nm = this.name;
					// hidden fields are included in the form
					if(this.editrules && this.editrules.edithidden === true) {
						hc = false;
					} else {
						hc = this.hidden === true ? true : false;
					}
					dc = hc ? "style='display:none'" : "";
					if ( nm !== 'cb' && nm !== 'subgrid' && this.editable===true && nm !== 'rn' && nm!=='sc') {
						if(ind === false) {
							tmp = "";
						} else {
							if(nm === obj.p.ExpandColumn && obj.p.treeGrid === true) {
								tmp = $("td[role='gridcell']",obj.rows[ind]).eq( i ).text();
							} else {
								try {
									tmp =  $.unformat.call(obj, $("td[role='gridcell']",obj.rows[ind]).eq( i ),{rowId:rowid, colModel:this},i);
								} catch (_) {
									tmp =  (this.edittype && this.edittype === "textarea") ? $("td[role='gridcell']",obj.rows[ind]).eq( i ).text() : $("td[role='gridcell']",obj.rows[ind]).eq( i ).html();
								}
								if(!tmp || tmp === "&nbsp;" || tmp === "&#160;" || (tmp.length===1 && tmp.charCodeAt(0)===160) ) {tmp='';}
							}
						}
						var opt = $.extend({}, this.editoptions || {} ,{id:nm,name:nm, rowId: rowid, oper:frmoper, module : 'form', checkUpdate : rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate}),
						frmopt = $.extend({}, {elmprefix:'',elmsuffix:'',rowabove:false,rowcontent:''}, this.formoptions || {}),
						rp = parseInt(frmopt.rowpos,10) || cnt+1,
						cp = parseInt((parseInt(frmopt.colpos,10) || 1)*2,10);
						if(rowid === "_empty" && opt.defaultValue ) {
							tmp = $.jgrid.isFunction(opt.defaultValue) ? opt.defaultValue.call($t) : opt.defaultValue;
						}
						if(!this.edittype) {
							this.edittype = "text";
						}
						if($t.p.autoencode) {
							tmp = $.jgrid.htmlDecode(tmp);
						}
						elc = $.jgrid.createEl.call($t,this.edittype,opt,tmp,false,$.extend({},$.jgrid.ajaxOptions,obj.p.ajaxSelectOptions || {}));
						//if(tmp === "" && this.edittype == "checkbox") {tmp = $(elc).attr("offval");}
						//if(tmp === "" && this.edittype == "select") {tmp = $("option:eq(0)",elc).text();}
						if(this.edittype === "select") {
							tmp = $(elc).val();
							if($(elc).get(0).type === 'select-multiple' && tmp) {
								tmp = tmp.join(",");
							}
						}
						if(this.edittype === 'checkbox') {
							if($(elc).is(":checked")) {
								tmp= $(elc).val();
							} else {
								tmp = $(elc).attr("offval");
							}
						}
						$(elc).addClass("FormElement");
						if(this.edittype === 'select') {
							$(elc).addClass( styles.selectClass );
						} else 	if( $.inArray(this.edittype, 
							['text','textarea','password', 
							'color', 'date', 'datetime', 'datetime-local','email','month',
							'number','range', 'search', 'tel', 'time', 'url','week'] ) > -1) {
							$(elc).addClass( styles.inputClass );
						}
						ffld = true;
						if(templ) {
							var ftmplfld = $(frm).find("#"+nm);
							if(ftmplfld.length){
								ftmplfld.replaceWith( elc );
							} else {
								ffld = false;
							}
						} else {
							//--------------------
							trdata = $(tb).find("tr[rowpos="+rp+"]");
							if(frmopt.rowabove) {
								var newdata = $("<tr><td class='contentinfo' colspan='"+(maxcols*2)+"'>"+frmopt.rowcontent+"</td></tr>");
								$(tb).append(newdata);
								newdata[0].rp = rp;
							}
							if ( trdata.length===0 ) {
								if(maxcols > 1) {
									trdata = $("<tr rowpos='"+rp+"'></tr>").addClass("FormData").attr("id","tr_"+nm);
								} else {
									trdata = $("<tr "+dc+" rowpos='"+rp+"'></tr>").addClass("FormData").attr("id","tr_"+nm);
								}
								$(trdata).append(tmpl);
								$(tb).append(trdata);
								trdata[0].rp = rp;
							}
							$("td",trdata[0]).eq( cp-2 ).html("<label for='"+nm+"' class='" + styles.labelClass + "'>"+ (frmopt.label === undefined ? obj.p.colNames[i]: frmopt.label) + "</label>");
							$("td",trdata[0]).eq( cp-1 ).append(frmopt.elmprefix).append(elc).append(frmopt.elmsuffix);
							if( maxcols > 1 && hc) {
								$("td",trdata[0]).eq( cp-2 ).hide();
								$("td",trdata[0]).eq( cp-1 ).hide();
							}
							//-------------------------
						}
						if( (rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) && ffld) {
							$t.p.savedData[nm] = tmp;
						}
						if(this.edittype==='custom' && $.jgrid.isFunction(opt.custom_value) ) {
							opt.custom_value.call($t, $("#"+nm, elc),'set',tmp);
						}
						$.jgrid.bindEv.call($t, elc, opt);
						retpos[cnt] = i;
						cnt++;
					}
				});
				if( cnt > 0) {
					var idrow;
					if(templ) {
						idrow = "<div class='FormData' style='display:none'><input class='FormElement' id='id_g' type='text' name='"+obj.p.id+"_id' value='"+rowid+"'/>";
						$(frm).append(idrow);
					} else {
						idrow = $("<tr class='FormData' style='display:none'><td class='CaptionTD'></td><td colspan='"+ (maxcols*2-1)+"' class='DataTD'><input class='FormElement' id='id_g' type='text' name='"+obj.p.id+"_id' value='"+rowid+"'/></td></tr>");
						idrow[0].rp = cnt+999;
						$(tb).append(idrow);
					} 
					//$(tb).append(idrow);
					if(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) {
						$t.p.savedData[obj.p.id+"_id"] = rowid;
					}
				}			
				return retpos;
			}
			function fillData(rowid,obj,fmid){
				var nm,cnt=0,tmp, fld,opt,vl,vlc;
				if(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) { 
					$t.p.savedData = {};
					$t.p.savedData[obj.p.id+"_id"]=rowid;
				}
				var cm = obj.p.colModel;
				if(rowid === '_empty') {
					$(cm).each(function(){
						nm = this.name;
						opt = $.extend({}, this.editoptions || {} );
						fld = $("#"+$.jgrid.jqID(nm),fmid);
						if(fld && fld.length && fld[0] !== null) {
							vl = "";
							if(this.edittype === 'custom' && $.jgrid.isFunction(opt.custom_value)) {
								opt.custom_value.call($t, $("#"+nm,fmid),'set',vl);
							} else if(opt.defaultValue ) {
								vl = $.jgrid.isFunction(opt.defaultValue) ? opt.defaultValue.call($t) : opt.defaultValue;
								if(fld[0].type==='checkbox') {
									vlc = vl.toLowerCase();
									if(vlc.search(/(false|f|0|no|n|off|undefined)/i)<0 && vlc!=="") {
										fld[0].checked = true;
										fld[0].defaultChecked = true;
										fld[0].value = vl;
									} else {
										fld[0].checked = false;
										fld[0].defaultChecked = false;
									}
								} else {fld.val(vl);}
							} else {
								if( fld[0].type==='checkbox' ) {
									fld[0].checked = false;
									fld[0].defaultChecked = false;
									vl = $(fld).attr("offval");
								} else if (fld[0].type && fld[0].type.slice(0,6)==='select') {
									fld[0].selectedIndex = 0;
								} else {
									fld.val(vl);
								}
							}
							if(rp_ge[$t.p.id].checkOnSubmit===true || rp_ge[$t.p.id].checkOnUpdate) {
								$t.p.savedData[nm] = vl;
							}
						}
					});
					$("#id_g",fmid).val(rowid);
					return;
				}
				var tre = $(obj).jqGrid("getInd",rowid,true);
				if(!tre) {return;}
				$('td[role="gridcell"]',tre).each( function(i) {
					nm = cm[i].name;
					// hidden fields are included in the form
					if ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn' && cm[i].editable===true && nm !== 'sc') {
						if(nm === obj.p.ExpandColumn && obj.p.treeGrid === true) {
							tmp = $(this).text();
						} else {
							try {
								tmp =  $.unformat.call(obj, $(this),{rowId:rowid, colModel:cm[i]},i);
							} catch (_) {
								tmp = cm[i].edittype==="textarea" ? $(this).text() : $(this).html();
							}
						}
						if($t.p.autoencode) {tmp = $.jgrid.htmlDecode(tmp);}
						if(rp_ge[$t.p.id].checkOnSubmit===true || rp_ge[$t.p.id].checkOnUpdate) { 
							$t.p.savedData[nm] = tmp;
						}
						nm = $.jgrid.jqID(nm);
						switch (cm[i].edittype) {
							case "select":
								var opv = tmp.split(",");
								opv = $.map(opv,function(n){return $.jgrid.trim(n);});
								$("#"+nm+" option",fmid).each(function(){
									if (!cm[i].editoptions.multiple && ($.jgrid.trim(tmp) === $.jgrid.trim($(this).text()) || opv[0] === $.jgrid.trim($(this).text()) || opv[0] === $.jgrid.trim($(this).val())) ){
										this.selected= true;
									} else if (cm[i].editoptions.multiple){
										if(  $.inArray($.jgrid.trim($(this).text()), opv ) > -1 || $.inArray($.jgrid.trim($(this).val()), opv ) > -1  ){
											this.selected = true;
										}else{
											this.selected = false;
										}
									} else {
										this.selected = false;
									}
								});
								if(rp_ge[$t.p.id].checkOnSubmit===true || rp_ge[$t.p.id].checkOnUpdate) {
									tmp = $("#"+nm,fmid).val();
									if(cm[i].editoptions.multiple) {
										tmp = tmp.join(",");
									}
									$t.p.savedData[nm] = tmp;
								}
								break;
							case "checkbox":
								tmp = String(tmp);
								if(cm[i].editoptions && cm[i].editoptions.value) {
									var cb = cm[i].editoptions.value.split(":");
									if(cb[0] === tmp) {
										$("#"+nm, fmid)[$t.p.useProp ? 'prop': 'attr']({"checked":true, "defaultChecked" : true});
									} else {
										$("#"+nm, fmid)[$t.p.useProp ? 'prop': 'attr']({"checked":false, "defaultChecked" : false});
									}
								} else {
									tmp = tmp.toLowerCase();
									if(tmp.search(/(false|f|0|no|n|off|undefined)/i)<0 && tmp!=="") {
										$("#"+nm, fmid)[$t.p.useProp ? 'prop': 'attr']("checked",true);
										$("#"+nm, fmid)[$t.p.useProp ? 'prop': 'attr']("defaultChecked",true); //ie
									} else {
										$("#"+nm, fmid)[$t.p.useProp ? 'prop': 'attr']("checked", false);
										$("#"+nm, fmid)[$t.p.useProp ? 'prop': 'attr']("defaultChecked", false); //ie
									}
								}
								if(rp_ge[$t.p.id].checkOnSubmit===true || rp_ge[$t.p.id].checkOnUpdate) {
									if($("#"+nm, fmid).is(":checked")) {
										tmp = $("#"+nm, fmid).val();
									} else {
										tmp = $("#"+nm, fmid).attr("offval");
									}
									$t.p.savedData[nm] = tmp;
								}
								break;
							case 'custom' :
								try {
									if(cm[i].editoptions && $.jgrid.isFunction(cm[i].editoptions.custom_value)) {
										cm[i].editoptions.custom_value.call($t, $("#"+nm, fmid),'set',tmp);
									} else {throw "e1";}
								} catch (e) {
									if (e==="e1") {$.jgrid.info_dialog(errors.errcap,"function 'custom_value' "+rp_ge[$(this)[0]].p.msg.nodefined,$.rp_ge[$(this)[0]].p.bClose, {styleUI : rp_ge[$(this)[0]].p.styleUI });}
									else {$.jgrid.info_dialog(errors.errcap,e.message,$.rp_ge[$(this)[0]].p.bClose, {styleUI : rp_ge[$(this)[0]].p.styleUI });}
								}
								break;
							default :
								if(tmp === "&nbsp;" || tmp === "&#160;" || (tmp.length===1 && tmp.charCodeAt(0)===160) ) {tmp='';}
								$("#"+nm,fmid).val(tmp);
						}
						cnt++;
					}
				});
				if(cnt>0) {
					$("#id_g",frmtb).val(rowid);
					if( rp_ge[$t.p.id].checkOnSubmit===true || rp_ge[$t.p.id].checkOnUpdate ) {
						$t.p.savedData[obj.p.id+"_id"] = rowid;
					}
				}
			}
			function setNulls() {
				$.each($t.p.colModel, function(i,n){
					if(n.editoptions && n.editoptions.NullIfEmpty === true) {
						if(postdata.hasOwnProperty(n.name) && postdata[n.name] === "") {
							postdata[n.name] = 'null';
						}
					}
				});
			}
			function postIt() {
				var copydata, ret=[true,"",""], onCS = {}, opers = $t.p.prmNames, idname, oper, key, selr, i, url;
				
				var retvals = $($t).triggerHandler("jqGridAddEditBeforeCheckValues", [postdata, $(frmgr), frmoper]);
				if(retvals && typeof retvals === 'object') {postdata = retvals;}
				
				if($.jgrid.isFunction(rp_ge[$t.p.id].beforeCheckValues)) {
					retvals = rp_ge[$t.p.id].beforeCheckValues.call($t, postdata, $(frmgr),frmoper);
					if(retvals && typeof retvals === 'object') {postdata = retvals;}
				}
				if(rp_ge[$t.p.id].html5Check) {
					if( !$.jgrid.validateForm(frm[0]) ) {
						return false;
					}
				}
				for( key in postdata ){
					if(postdata.hasOwnProperty(key)) {
						ret = $.jgrid.checkValues.call($t,postdata[key],key);
						if(ret[0] === false) {break;}
					}
				}
				setNulls();
				if(ret[0]) {
					onCS = $($t).triggerHandler("jqGridAddEditClickSubmit", [rp_ge[$t.p.id], postdata, frmoper]);
					if( onCS === undefined && $.jgrid.isFunction( rp_ge[$t.p.id].onclickSubmit)) { 
						onCS = rp_ge[$t.p.id].onclickSubmit.call($t, rp_ge[$t.p.id], postdata, frmoper) || {}; 
					}
					ret = $($t).triggerHandler("jqGridAddEditBeforeSubmit", [postdata, $(frmgr), frmoper]);
					if(ret === undefined) {
						ret = [true,"",""];
					}
					if( ret[0] && $.jgrid.isFunction(rp_ge[$t.p.id].beforeSubmit))  {
						ret = rp_ge[$t.p.id].beforeSubmit.call($t,postdata,$(frmgr), frmoper);
					}
				}

				if(ret[0] && !rp_ge[$t.p.id].processing) {
					rp_ge[$t.p.id].processing = true;
					$("#sData", frmtb+"_2").addClass( commonstyle.active );
					url = rp_ge[$t.p.id].url || $($t).jqGrid('getGridParam','editurl');
					oper = opers.oper;
					idname = (url === 'clientArray' || url==='storage') ? $t.p.keyName : opers.id;
					// we add to pos data array the action - the name is oper
					postdata[oper] = ($.jgrid.trim(postdata[$t.p.id+"_id"]) === "_empty") ? opers.addoper : opers.editoper;
					if(postdata[oper] !== opers.addoper) {
						postdata[idname] = postdata[$t.p.id+"_id"];
					} else {
						// check to see if we have allredy this field in the form and if yes lieve it
						if( postdata[idname] === undefined ) {postdata[idname] = postdata[$t.p.id+"_id"];}
					}
					delete postdata[$t.p.id+"_id"];
					postdata = $.extend(postdata,rp_ge[$t.p.id].editData,onCS);
					if($t.p.treeGrid === true)  {
						if(postdata[oper] === opers.addoper) {
						selr = $($t).jqGrid("getGridParam", 'selrow');
							var tr_par_id = $t.p.treeGridModel === 'adjacency' ? $t.p.treeReader.parent_id_field : 'parent_id';
							postdata[tr_par_id] = selr;
						}
						for(i in $t.p.treeReader){
							if($t.p.treeReader.hasOwnProperty(i)) {
								var itm = $t.p.treeReader[i];
								if(postdata.hasOwnProperty(itm)) {
									if(postdata[oper] === opers.addoper && i === 'parent_id_field') {continue;}
									delete postdata[itm];
								}
							}
						}
					}
					
					postdata[idname] = $.jgrid.stripPref($t.p.idPrefix, postdata[idname]);
					var ajaxOptions = $.extend({
						url: url,
						type: rp_ge[$t.p.id].mtype,
						data: $.jgrid.isFunction(rp_ge[$t.p.id].serializeEditData) ? rp_ge[$t.p.id].serializeEditData.call($t,postdata) :  postdata,
						success:function(res,status,data){
							var key;
							$("#sData", frmtb+"_2").removeClass( commonstyle.active );
							postdata[idname] = $t.p.idPrefix + postdata[idname];
							if(data.status >= 300 && data.status !== 304) {
								ret[0] = false;
								ret[1] = $($t).triggerHandler("jqGridAddEditErrorTextFormat", [data, frmoper]);
								if ($.jgrid.isFunction(rp_ge[$t.p.id].errorTextFormat)) {
									ret[1] = rp_ge[$t.p.id].errorTextFormat.call($t, data, frmoper);
								} else {
									ret[1] = status + " Status: '" + data.statusText + "'. Error code: " + data.status;
								}
							} else {
								// data is posted successful
								// execute aftersubmit with the returned data from server
								ret = $($t).triggerHandler("jqGridAddEditAfterSubmit", [data, postdata, frmoper]);
								if(ret === undefined) {
									ret = [true,"",""];
								}
								if( ret[0] && $.jgrid.isFunction(rp_ge[$t.p.id].afterSubmit) ) {
									ret = rp_ge[$t.p.id].afterSubmit.call($t, data,postdata, frmoper);
								}
							}
							if(ret[0] === false) {
								$(".FormError",frmgr).html(ret[1]);
								$(".FormError",frmgr).show();
							} else {
								if($t.p.autoencode) {
									$.each(postdata,function(n,v){
										postdata[n] = $.jgrid.htmlDecode(v);
									});
								}
								//rp_ge[$t.p.id].reloadAfterSubmit = rp_ge[$t.p.id].reloadAfterSubmit && $t.p.datatype != "local";
								// the action is add
								if(postdata[oper] === opers.addoper ) {
									//id processing
									// user not set the id ret[2]
									if(!ret[2]) {ret[2] = $.jgrid.randId();}
									if(postdata[idname] == null || postdata[idname] === ($t.p.idPrefix + "_empty") || postdata[idname] === ""){
										postdata[idname] = ret[2];
									} else {
										ret[2] = postdata[idname];
									}
									if(rp_ge[$t.p.id].reloadAfterSubmit) {
										$($t).trigger("reloadGrid");
									} else {
										if($t.p.treeGrid === true){
											$($t).jqGrid("addChildNode",ret[2],selr,postdata );
										} else {
											$($t).jqGrid("addRowData",ret[2],postdata,p.addedrow);
										}
									}
									if(rp_ge[$t.p.id].closeAfterAdd) {
										if($t.p.treeGrid !== true){
											$($t).jqGrid("setSelection",ret[2]);
										}
										$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});
									} else if (rp_ge[$t.p.id].clearAfterAdd) {
										fillData("_empty", $t, frmgr);
									}
								} else {
									// the action is update
									if(rp_ge[$t.p.id].reloadAfterSubmit) {
										$($t).trigger("reloadGrid");
										if( !rp_ge[$t.p.id].closeAfterEdit ) {setTimeout(function(){$($t).jqGrid("setSelection",postdata[idname]);},1000);}
									} else {
										if($t.p.treeGrid === true) {
											$($t).jqGrid("setTreeRow", postdata[idname],postdata);
										} else {
											$($t).jqGrid("setRowData", postdata[idname],postdata);
										}
									}
									if(rp_ge[$t.p.id].closeAfterEdit) {$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});}
								}
								if( $.jgrid.isFunction(rp_ge[$t.p.id].afterComplete) || Object.prototype.hasOwnProperty.call($._data( $($t)[0], 'events' ), 'jqGridAddEditAfterComplete') ) {
									copydata = data;
									setTimeout(function(){
										$($t).triggerHandler("jqGridAddEditAfterComplete", [copydata, postdata, $(frmgr), frmoper]);
										try { 
											rp_ge[$t.p.id].afterComplete.call($t, copydata, postdata, $(frmgr), frmoper);
										} catch(excacmp) {
											//do nothing
										}
										copydata=null;
									},500);
								}
								if(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) {
									$(frmgr).data("disabled",false);
									if($t.p.savedData[$t.p.id+"_id"] !== "_empty"){
										for(key in $t.p.savedData) {
											if($t.p.savedData.hasOwnProperty(key) && postdata[key]) {
												$t.p.savedData[key] = postdata[key];
											}
										}
									}
								}
							}
							rp_ge[$t.p.id].processing=false;
							try{$(':input:visible',frmgr)[0].focus();} catch (e){}
						}
					}, $.jgrid.ajaxOptions, rp_ge[$t.p.id].ajaxEditOptions );

					if (!ajaxOptions.url && !rp_ge[$t.p.id].useDataProxy) {
						if ($.jgrid.isFunction($t.p.dataProxy)) {
							rp_ge[$t.p.id].useDataProxy = true;
						} else {
							ret[0]=false;ret[1] += " "+errors.nourl;
						}
					}
					if (ret[0]) {
						if (rp_ge[$t.p.id].useDataProxy) {
							var dpret = $t.p.dataProxy.call($t, ajaxOptions, "set_"+$t.p.id); 
							if(dpret === undefined) {
								dpret = [true, ""];
							}
							if(dpret[0] === false ) {
								ret[0] = false;
								ret[1] = dpret[1] || "Error processing the row!" ;
							} else {
								if(ajaxOptions.data.oper === opers.addoper && rp_ge[$t.p.id].closeAfterAdd ) {
									$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});
								}
								if(ajaxOptions.data.oper === opers.editoper && rp_ge[$t.p.id].closeAfterEdit ) {
									$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});
								}
							}
						} else {
							if(ajaxOptions.url === "clientArray") {
								rp_ge[$t.p.id].reloadAfterSubmit = false;
								postdata = ajaxOptions.data;
								ajaxOptions.success(postdata,'',{status:200, statusText:''});
							} else if(ajaxOptions.url === "storage"){
								if(postdata[oper] === opers.addoper) {
									if(postdata[idname] === "_empty") {
										postdata[idname] = "";
									}
									$($t).jqGrid('addStorageRecord', postdata)
									.then(function(e){
										if(e.type==="complete") {
											ajaxOptions.success(postdata,'',{status:200, statusText:''});
										}
									})
									.catch(function(e) {
										$.jgrid.info_dialog("Error",e.target.error.name + " : "+e.target.error.message,'Close');
									});
								} else if(postdata[oper] === opers.editoper) {
									$($t).jqGrid('updateStorageRecord', postdata)
									.then(function(e){
										if(e.type==="complete") {
											ajaxOptions.success(postdata,'',{status:200, statusText:''});
										}
									})
									.catch(function(e) {
										$.jgrid.info_dialog("Error",e.target.error.name + " : "+e.target.error.message,'Close');
									});									
								}
							} else {
								$.ajax(ajaxOptions); 
							}
						}
					}
				}
				if(ret[0] === false) {
					$(frmgr).scrollTop(0);
					$(".FormError",frmgr).html(ret[1]);
					$(".FormError",frmgr).show();
					// return;
				}
			}
			function compareData(nObj, oObj ) {
				var ret = false,key;
				ret = !( $.isPlainObject(nObj) && $.isPlainObject(oObj) && Object.getOwnPropertyNames(nObj).length === Object.getOwnPropertyNames(oObj).length);
				if(!ret) {
					for (key in oObj) {
						if(oObj.hasOwnProperty(key) )  {
							if(nObj.hasOwnProperty(key) ) {
								if( nObj[key] !== oObj[key] ) {
									ret = true;
									break;
								}
							} else {
								ret = true;
								break;
							}
						}
					}
				}
				return ret;
			}
			function checkUpdates () {
				var stat = true;
				$(".FormError",frmgr).hide();
				if(rp_ge[$t.p.id].checkOnUpdate) {
					postdata = {};
					getFormData();
					diff = compareData(postdata, $t.p.savedData);
					if(diff) {
						$(frmgr).data("disabled",true);
						$(".confirm","#"+IDs.themodal).show();
						stat = false;
					}
				}
				return stat;
			}
			function restoreInline() {
				var i;
				if (rowid !== "_empty" && $t.p.savedRow !== undefined && $t.p.savedRow.length > 0 && $.jgrid.isFunction($.fn.jqGrid.restoreRow)) {
					for (i=0;i<$t.p.savedRow.length;i++) {
						if ($t.p.savedRow[i].id === rowid) {
							$($t).jqGrid('restoreRow',rowid);
							break;
						}
					}
				}
			}
			function updateNav(cr, posarr){
				var totr = posarr[1].length-1;
				if (cr===0) {
					$("#pData",frmtb2).addClass( commonstyle.disabled );
				} else if( posarr[1][cr-1] !== undefined && $("#"+$.jgrid.jqID(posarr[1][cr-1])).hasClass( commonstyle.disabled )) {
						$("#pData",frmtb2).addClass( commonstyle.disabled );
				} else {
					$("#pData",frmtb2).removeClass( commonstyle.disabled );
				}
				
				if (cr===totr) {
					$("#nData",frmtb2).addClass( commonstyle.disabled );
				} else if( posarr[1][cr+1] !== undefined && $("#"+$.jgrid.jqID(posarr[1][cr+1])).hasClass( commonstyle.disabled )) {
					$("#nData",frmtb2).addClass( commonstyle.disabled );
				} else {
					$("#nData",frmtb2).removeClass( commonstyle.disabled );
				}
			}
			function getCurrPos() {
				var rowsInGrid =  $($t).jqGrid("getDataIDs"),
				selrow = $("#id_g",frmtb).val(), pos;
				if($t.p.multiselect && rp_ge[$t.p.id].editselected) {
					var arr = [];
					for(var i=0, len = rowsInGrid.length;i<len;i++) {
						if($.inArray(rowsInGrid[i],$t.p.selarrrow) !== -1) {
							arr.push(rowsInGrid[i]);
						}
					}
					pos = $.inArray(selrow,arr);
					return [pos, arr];
				} else {
					pos = $.inArray(selrow,rowsInGrid);
				}
				return [pos,rowsInGrid];
			}
			function parseTemplate ( template ){
				var   tmpl ="";
				if(typeof template === "string") {
					tmpl = template.replace(/\{([\w\-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g, function(m,i){
						return '<span id="'+ i+ '" ></span>';
					});
				}
				return tmpl;
			}
			function syncSavedData () {
				if(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) {

					var a1=[], a2={};
					a1 = $.map($t.p.savedData, function(v, i){
						return i;
					});
					$(".FormElement", frm ).each(function(){
						if( $.jgrid.trim(this.name) !== "" && a1.indexOf(this.name) === -1 ) {
							var tv = $(this).val(), tt = $(this).get(0).type;
							if( tt === 'checkbox') {
								if(!$(this).is(":checked")) {
									tv = $(this).attr("offval");
								}
							} else if(tt === 'select-multiple') {
								tv = tv.join(",");
							} else if(tt === 'radio') {
								if(a2.hasOwnProperty(this.name)) {
									return true;
								} else {
									a2[this.name] = ($(this).attr("offval") === undefined) ? "off" : $(this).attr("offval");
								}
							}
							$t.p.savedData[this.name] = tv;
						}
					});
					for(var i in a2 ) {
						if( a2.hasOwnProperty(i)) {
							var val = $('input[name="'+i+'"]:checked',frm).val();
							$t.p.savedData[i] = (val !== undefined) ? val : a2[i];
						}
					}
				}
			}
			var dh = isNaN(rp_ge[$(this)[0].p.id].dataheight) ? rp_ge[$(this)[0].p.id].dataheight : rp_ge[$(this)[0].p.id].dataheight+"px",
			dw = isNaN(rp_ge[$(this)[0].p.id].datawidth) ? rp_ge[$(this)[0].p.id].datawidth : rp_ge[$(this)[0].p.id].datawidth+"px",
			frm = $("<form name='FormPost' id='"+frmgr+"' class='FormGrid' onSubmit='return false;' style='width:"+dw+";height:"+dh+";'></form>").data("disabled",false),
			tbl;
			if(templ) {
				tbl = parseTemplate( rp_ge[$(this)[0].p.id].template );
				frmtb2 = frmtb;
			} else {
				tbl = $("<table id='"+frmtborg+"' class='EditTable ui-common-table'><tbody></tbody></table>");
				frmtb2 = frmtb+"_2";
			}
			frmgr = "#"+ $.jgrid.jqID(frmgr);
			// errors
			$(frm).append("<div class='FormError " + commonstyle.error + "' style='display:none;'></div>" );
			// topinfo
			$(frm).append("<div class='tinfo topinfo'>"+rp_ge[$t.p.id].topinfo+"</div>");

			$($t.p.colModel).each( function() {
				var fmto = this.formoptions;
				maxCols = Math.max(maxCols, fmto ? fmto.colpos || 0 : 0 );
				maxRows = Math.max(maxRows, fmto ? fmto.rowpos || 0 : 0 );
			});
			$(frm).append(tbl);

			showFrm = $($t).triggerHandler("jqGridAddEditBeforeInitData", [frm, frmoper]);
			if(showFrm === undefined) {
				showFrm = true;
			}
			if(showFrm && $.jgrid.isFunction(rp_ge[$t.p.id].beforeInitData)) {
				showFrm = rp_ge[$t.p.id].beforeInitData.call($t,frm, frmoper);
			}
			if(showFrm === false) {return;}

			restoreInline();
			// set the id.
			// use carefull only to change here colproperties.
			// create data
			createData(rowid,$t,tbl,maxCols);
			// buttons at footer
			var rtlb = $t.p.direction === "rtl" ? true :false,
			bp = rtlb ? "nData" : "pData",
			bn = rtlb ? "pData" : "nData";
			var bP = "<a id='"+bp+"' class='fm-button " + commonstyle.button + "'><span class='" + commonstyle.icon_base + " " + styles.icon_prev+ "'></span></a>",
			bN = "<a id='"+bn+"' class='fm-button " + commonstyle.button + "'><span class='" + commonstyle.icon_base + " " + styles.icon_next+ "'></span></a>",
			bS  ="<a id='sData' class='fm-button " + commonstyle.button + "'>"+p.bSubmit+"</a>",
			bC  ="<a id='cData' class='fm-button " + commonstyle.button + "'>"+p.bCancel+"</a>",
			user_buttons = ( Array.isArray( rp_ge[$t.p.id].buttons ) ? $.jgrid.buildButtons( rp_ge[$t.p.id].buttons, bS + bC, commonstyle ) : bS + bC );
			var bt = "<table style='height:auto' class='EditTable ui-common-table' id='"+frmtborg+"_2'><tbody><tr><td colspan='2'><hr class='"+commonstyle.content+"' style='margin:1px'/></td></tr><tr id='Act_Buttons'><td class='navButton'>"+(rtlb ? bN+bP : bP+bN)+"</td><td class='EditButton'>"+ user_buttons +"</td></tr>";
			//bt += "<tr style='display:none' class='binfo'><td class='bottominfo' colspan='2'>"+rp_ge[$t.p.id].bottominfo+"</td></tr>";
			bt += "</tbody></table>";
			if(maxRows >  0) {
				var sd=[];
				$.each($(tbl)[0].rows,function(i,r){
					sd[i] = r;
				});
				sd.sort(function(a,b){
					if(a.rp > b.rp) {return 1;}
					if(a.rp < b.rp) {return -1;}
					return 0;
				});
				$.each(sd, function(index, row) {
					$('tbody',tbl).append(row);
				});
			}
			p.gbox = "#gbox_"+$.jgrid.jqID(gID);
			var cle = false;
			if(p.closeOnEscape===true){
				p.closeOnEscape = false;
				cle = true;
			}
			var tms;
			if(templ) {
				$(frm).find("#pData").replaceWith( bP );
				$(frm).find("#nData").replaceWith( bN );
				$(frm).find("#sData").replaceWith( bS );
				$(frm).find("#cData").replaceWith( bC );
				tms = $("<div id="+frmtborg+"></div>").append(frm);
			} else {
				tms = $("<div></div>").append(frm).append(bt);
			}
			
			$(frm).append("<div class='binfo topinfo bottominfo'>"+rp_ge[$t.p.id].bottominfo+"</div>");
			var fs =  $('.ui-jqgrid').css('font-size') || '11px';
			$.jgrid.createModal(IDs, tms, rp_ge[$(this)[0].p.id], "#gview_"+$.jgrid.jqID($t.p.id), $("#gbox_"+$.jgrid.jqID($t.p.id))[0], null, {"font-size": fs});

			if(rtlb) {
				$("#pData, #nData",frmtb+"_2").css("float","right");
				$(".EditButton",frmtb+"_2").css("text-align","left");
			}

			if(rp_ge[$t.p.id].topinfo) {$(".tinfo", frmgr).show();}
			if(rp_ge[$t.p.id].bottominfo) {$(".binfo",frmgr).show();}

			tms = null;bt=null;
			$("#"+$.jgrid.jqID(IDs.themodal)).keydown( function( e ) {
				var wkey = e.target;
				if ($(frmgr).data("disabled")===true ) {return false;}//??
				if(rp_ge[$t.p.id].savekey[0] === true && e.which === rp_ge[$t.p.id].savekey[1]) { // save
					if(wkey.tagName !== "TEXTAREA") {
						$("#sData", frmtb+"_2").trigger("click");
						return false;
					}
				}
				if(e.which === 27) {
					if(!checkUpdates()) {return false;}
					if(cle)	{$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:p.gbox,jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});}
					return false;
				}
				if(rp_ge[$t.p.id].navkeys[0]===true) {
					if($("#id_g",frmtb).val() === "_empty") {return true;}
					if(e.which === rp_ge[$t.p.id].navkeys[1]){ //up
						$("#pData", frmtb2).trigger("click");
						return false;
					}
					if(e.which === rp_ge[$t.p.id].navkeys[2]){ //down
						$("#nData", frmtb2).trigger("click");
						return false;
					}
				}
			});
			if(p.checkOnUpdate) {
				$("a.ui-jqdialog-titlebar-close span","#"+$.jgrid.jqID(IDs.themodal)).removeClass("jqmClose");
				$("a.ui-jqdialog-titlebar-close","#"+$.jgrid.jqID(IDs.themodal)).off("click")
				.click(function(){
					if(!checkUpdates()) {return false;}
					$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});
					return false;
				});
			}
			p.saveicon = $.extend([true,"left", styles.icon_save ],p.saveicon);
			p.closeicon = $.extend([true,"left", styles.icon_close ],p.closeicon);
			// beforeinitdata after creation of the form
			if(p.saveicon[0]===true) {
				$("#sData",frmtb2).addClass(p.saveicon[1] === "right" ? 'fm-button-icon-right' : 'fm-button-icon-left')
				.append("<span class='"+commonstyle.icon_base + " " +p.saveicon[2]+"'></span>");
			}
			if(p.closeicon[0]===true) {
				$("#cData",frmtb2).addClass(p.closeicon[1] === "right" ? 'fm-button-icon-right' : 'fm-button-icon-left')
				.append("<span class='" + commonstyle.icon_base +" "+p.closeicon[2]+"'></span>");
			}
			if(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) {
				bS  ="<a id='sNew' class='fm-button "+commonstyle.button + "' style='z-index:1002'>"+p.bYes+"</a>";
				bN  ="<a id='nNew' class='fm-button "+commonstyle.button + "' style='z-index:1002;margin-left:5px'>"+p.bNo+"</a>";
				bC  ="<a id='cNew' class='fm-button "+commonstyle.button + "' style='z-index:1002;margin-left:5px;'>"+p.bExit+"</a>";
				var zI = p.zIndex  || 999;zI ++;
				$("#"+IDs.themodal).append("<div class='"+ p.overlayClass+" jqgrid-overlay confirm' style='z-index:"+zI+";display:none;position:absolute;'>&#160;"+"</div><div class='confirm ui-jqconfirm "+commonstyle.content+"' style='z-index:"+(zI+1)+"'>"+p.saveData+"<br/><br/>"+bS+bN+bC+"</div>");
				$("#sNew","#"+$.jgrid.jqID(IDs.themodal)).click(function(){
					postIt();
					$(frmgr).data("disabled",false);
					$(".confirm","#"+$.jgrid.jqID(IDs.themodal)).hide();
					return false;
				});
				$("#nNew","#"+$.jgrid.jqID(IDs.themodal)).click(function(){
					$(".confirm","#"+$.jgrid.jqID(IDs.themodal)).hide();
					$(frmgr).data("disabled",false);
					setTimeout(function(){$(":input:visible",frmgr)[0].focus();},0);
					return false;
				});
				$("#cNew","#"+$.jgrid.jqID(IDs.themodal)).click(function(){
					$(".confirm","#"+$.jgrid.jqID(IDs.themodal)).hide();
					$(frmgr).data("disabled",false);
					$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});
					return false;
				});
			}
			// here initform 
			$($t).triggerHandler("jqGridAddEditInitializeForm", [$(frmgr), frmoper]);
			if($.jgrid.isFunction(rp_ge[$t.p.id].onInitializeForm)) { rp_ge[$t.p.id].onInitializeForm.call($t,$(frmgr), frmoper);}
			if(rowid==="_empty" || !rp_ge[$t.p.id].viewPagerButtons) {$("#pData,#nData",frmtb2).hide();} else {$("#pData,#nData",frmtb2).show();}
			$($t).triggerHandler("jqGridAddEditBeforeShowForm", [$(frmgr), frmoper]);
			if($.jgrid.isFunction(rp_ge[$t.p.id].beforeShowForm)) { rp_ge[$t.p.id].beforeShowForm.call($t, $(frmgr), frmoper);}
			syncSavedData();
			$("#"+$.jgrid.jqID(IDs.themodal)).data("onClose",rp_ge[$t.p.id].onClose);
			$.jgrid.viewModal("#"+$.jgrid.jqID(IDs.themodal),{
				gbox:"#gbox_"+$.jgrid.jqID(gID),
				jqm:p.jqModal, 
				overlay: p.overlay,
				modal:p.modal, 
				overlayClass: p.overlayClass,
				focusField : p.focusField,
				onHide :  function(h) {
					var fw = $('#editmod'+gID)[0].style.width ,
						//rtlsup = $("#gbox_"+$.jgrid.jqID(gID)).attr("dir") === "rtl" ? true : false,
						mdh = $('#editmod'+gID)[0].style.height;
						mdh = ['100%','auto'].includes(mdh) ? mdh : $.jgrid.floatNum(mdh, 200);
						fw = ['100%','auto'].includes(fw) ? fw : $.jgrid.floatNum(fw, 300);
					$($t).data("formProp", {
						top: $.jgrid.floatNum($(h.w).css("top")),
						left :  parseFloat($(h.w).css("left")),
						width : fw,
						height :  mdh ,
						dataheight : $(frmgr).height(),
						datawidth: $(frmgr).width()
					});
					h.w.remove();
					if(h.o) {h.o.remove();}
				}
			});
			if(!closeovrl) {
				$("." + $.jgrid.jqID(p.overlayClass)).click(function(){
					if(!checkUpdates()) {return false;}
					$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});
					return false;
				});
			}
			$(".fm-button","#"+$.jgrid.jqID(IDs.themodal)).hover(
				function(){$(this).addClass( commonstyle.hover );},
				function(){$(this).removeClass( commonstyle.hover );}
			);
			$("#sData", frmtb2).click(function(){
				postdata = {};
				$(".FormError",frmgr).hide();
				// all depend on ret array
				//ret[0] - succes
				//ret[1] - msg if not succes
				//ret[2] - the id  that will be set if reload after submit false
				getFormData();
				if(postdata[$t.p.id+"_id"] === "_empty")	{
					postIt();
				} else if(p.checkOnSubmit===true ) {
					diff = compareData(postdata, $t.p.savedData);
					if(diff) {
						$(frmgr).data("disabled",true);
						$(".confirm","#"+$.jgrid.jqID(IDs.themodal)).show();
					} else {
						postIt();
					}
				} else {
					postIt();
				}
				return false;
			});
			$("#cData", frmtb2).click(function(){
				if(!checkUpdates()) {return false;}
				$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});
				return false;
			});
			// user buttons bind
			$(frmtb2).find("[data-index]").each(function(){
				var index = parseInt($(this).attr('data-index'),10);
				if(index >=0 ) {
					if( p.buttons[index].hasOwnProperty('click')) {
						$(this).on('click', function(e) {
							p.buttons[index].click.call($t, $(frmgr)[0], rp_ge[$t.p.id], e);
						});
					}
				}
			});

			$("#nData", frmtb2).click(function(){
				if(!checkUpdates()) {return false;}
				$(".FormError",frmgr).hide();
				var npos = getCurrPos();
				npos[0] = parseInt(npos[0],10);
				if(npos[0] !== -1 && npos[1][npos[0]+1]) {
					$($t).triggerHandler("jqGridAddEditClickPgButtons", ['next',$(frmgr),npos[1][npos[0]]]);
					var nposret;
					if($.jgrid.isFunction(p.onclickPgButtons)) {
						nposret = p.onclickPgButtons.call($t, 'next',$(frmgr),npos[1][npos[0]]);
						if( nposret !== undefined && nposret === false ) {return false;}
					}
					if( $("#"+$.jgrid.jqID(npos[1][npos[0]+1])).hasClass( commonstyle.disabled )) {return false;}
					fillData(npos[1][npos[0]+1],$t,frmgr);
					if(!($t.p.multiselect &&  rp_ge[$t.p.id].editselected)) {
						$($t).jqGrid("setSelection",npos[1][npos[0]+1]);
					}
					$($t).triggerHandler("jqGridAddEditAfterClickPgButtons", ['next',$(frmgr),npos[1][npos[0]]]);
					if($.jgrid.isFunction(p.afterclickPgButtons)) {
						p.afterclickPgButtons.call($t, 'next',$(frmgr),npos[1][npos[0]+1]);
					}
					syncSavedData();
					updateNav(npos[0]+1,npos);
				}
				return false;
			});
			$("#pData", frmtb2).click(function(){
				if(!checkUpdates()) {return false;}
				$(".FormError",frmgr).hide();
				var ppos = getCurrPos();
				if(ppos[0] !== -1 && ppos[1][ppos[0]-1]) {
					$($t).triggerHandler("jqGridAddEditClickPgButtons", ['prev',$(frmgr),ppos[1][ppos[0]]]);
					var pposret;
					if($.jgrid.isFunction(p.onclickPgButtons)) {
						pposret = p.onclickPgButtons.call($t, 'prev',$(frmgr),ppos[1][ppos[0]]);
						if( pposret !== undefined && pposret === false ) {return false;}
					}
					if( $("#"+$.jgrid.jqID(ppos[1][ppos[0]-1])).hasClass( commonstyle.disabled )) {return false;}
					fillData(ppos[1][ppos[0]-1],$t,frmgr);
					if(!($t.p.multiselect &&  rp_ge[$t.p.id].editselected)) {
						$($t).jqGrid("setSelection",ppos[1][ppos[0]-1]);
					}
					$($t).triggerHandler("jqGridAddEditAfterClickPgButtons", ['prev',$(frmgr),ppos[1][ppos[0]]]);
					if($.jgrid.isFunction(p.afterclickPgButtons)) {
						p.afterclickPgButtons.call($t, 'prev',$(frmgr),ppos[1][ppos[0]-1]);
					}
					syncSavedData();
					updateNav(ppos[0]-1,ppos);
				}
				return false;
			});
			$($t).triggerHandler("jqGridAddEditAfterShowForm", [$(frmgr), frmoper]);
			if($.jgrid.isFunction(rp_ge[$t.p.id].afterShowForm)) { rp_ge[$t.p.id].afterShowForm.call($t, $(frmgr), frmoper); }
			var posInit =getCurrPos();
			updateNav(posInit[0],posInit);
			this.refreshEditForm = function( rid, force ) {
				if ( force === undefined) {
					force = false;
				}
				if( force || rowid === rid) {
					fillData(rid, this, frmgr);
				}
				if(force) {
					rowid = rid;
				}
			};
		});
	},
	viewGridRow : function(rowid, p){
		var regional =  $.jgrid.getRegional(this[0], 'view'),
			currstyle = this[0].p.styleUI,
			styles = $.jgrid.styleUI[currstyle].formedit,
			commonstyle = $.jgrid.styleUI[currstyle].common;

		p = $.extend(true, {
			top : 0,
			left: 0,
			width: 500,
			datawidth: 'auto',
			height: 'auto',
			dataheight: 'auto',
			modal: false,
			overlay: 30,
			drag: true,
			resize: true,
			jqModal: true,
			closeOnEscape : false,
			labelswidth: 'auto',
			closeicon: [],
			navkeys: [false,38,40],
			onClose: null,
			beforeShowForm : null,
			beforeInitData : null,
			viewPagerButtons : true,
			recreateForm : false,
			removemodal: true,
			form: 'view',
			buttons : []
		}, regional, p || {});
		rp_ge[$(this)[0].p.id] = p;
		return this.each(function(){
			var $t = this;
			if (!$t.grid || !rowid) {return;}
			var gID = $t.p.id,
			frmgr = "ViewGrid_"+$.jgrid.jqID( gID  ), frmtb = "ViewTbl_" + $.jgrid.jqID( gID ),
			frmgr_id = "ViewGrid_"+gID, frmtb_id = "ViewTbl_"+gID,
			IDs = {themodal:'viewmod'+gID,modalhead:'viewhd'+gID,modalcontent:'viewcnt'+gID, scrollelm : frmgr},
			showFrm = true,
			maxCols = 1, maxRows=0;
			rp_ge[$t.p.id].styleUI = $t.p.styleUI || 'jQueryUI';
			if(!p.recreateForm) {
				if( $($t).data("viewProp") ) {
					$.extend(rp_ge[$(this)[0].p.id], $($t).data("viewProp"));
				}
			}
			function focusaref(){ //Sfari 3 issues
				if(rp_ge[$t.p.id].closeOnEscape===true || rp_ge[$t.p.id].navkeys[0]===true) {
					setTimeout(function(){$(".ui-jqdialog-titlebar-close","#"+$.jgrid.jqID(IDs.modalhead)).attr("tabindex", "-1").focus();},0);
				}
			}
			function createData(rowid,obj,tb,maxcols){
				var nm, hc,trdata, cnt=0,tmp, dc, retpos=[], ind=false, i,
				tdtmpl = "<td class='CaptionTD form-view-label " + commonstyle.content + "' width='"+p.labelswidth+"'></td><td class='DataTD form-view-data ui-helper-reset "  + commonstyle.content +"'></td>", tmpl="",
				tdtmpl2 = "<td class='CaptionTD form-view-label " + commonstyle.content +"'></td><td class='DataTD form-view-data " + commonstyle.content +"'></td>",
				fmtnum = ['integer','number','currency'],max1 =0, max2=0 ,maxw,setme, viewfld;
				for (i=1;i<=maxcols;i++) {
					tmpl += i === 1 ? tdtmpl : tdtmpl2;
				}
				// find max number align rigth with property formatter
				$(obj.p.colModel).each( function() {
					if(this.editrules && this.editrules.edithidden === true) {
						hc = false;
					} else {
						hc = this.hidden === true ? true : false;
					}
					if(!hc && this.align==='right') {
						if(this.formatter && $.inArray(this.formatter,fmtnum) !== -1 ) {
							max1 = Math.max(max1,parseInt(this.width,10));
						} else {
							max2 = Math.max(max2,parseInt(this.width,10));
						}
					}
				});
				maxw  = max1 !==0 ? max1 : max2 !==0 ? max2 : 0;
				ind = $(obj).jqGrid("getInd",rowid);
				$(obj.p.colModel).each( function(i) {
					nm = this.name;
					setme = false;
					// hidden fields are included in the form
					if(this.editrules && this.editrules.edithidden === true) {
						hc = false;
					} else {
						hc = this.hidden === true ? true : false;
					}
					dc = hc ? "style='display:none'" : "";
					viewfld = (typeof this.viewable !== 'boolean') ? true : this.viewable;
					if ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn' && viewfld && nm !== 'sc') {
						if(ind === false) {
							tmp = "";
						} else {
							if(nm === obj.p.ExpandColumn && obj.p.treeGrid === true) {
								tmp = $("td",obj.rows[ind]).eq( i ).text();
							} else {
								tmp = $("td",obj.rows[ind]).eq( i ).html();
							}
						}
						setme = this.align === 'right' && maxw !==0 ? true : false;
						var frmopt = $.extend({},{rowabove:false,rowcontent:''}, this.formoptions || {}),
						rp = parseInt(frmopt.rowpos,10) || cnt+1,
						cp = parseInt((parseInt(frmopt.colpos,10) || 1)*2,10);
						if(frmopt.rowabove) {
							var newdata = $("<tr><td class='contentinfo' colspan='"+(maxcols*2)+"'>"+frmopt.rowcontent+"</td></tr>");
							$(tb).append(newdata);
							newdata[0].rp = rp;
						}
						trdata = $(tb).find("tr[rowpos="+rp+"]");
						if ( trdata.length===0 ) {
							trdata = $("<tr "+dc+" rowpos='"+rp+"'></tr>").addClass("FormData").attr("id","trv_"+nm);
							$(trdata).append(tmpl);
							$(tb).append(trdata);
							trdata[0].rp = rp;
						}
						$("td",trdata[0]).eq( cp-2 ).html('<b>'+ (frmopt.label === undefined ? obj.p.colNames[i]: frmopt.label)+'</b>');
						$("td",trdata[0]).eq( cp-1 ).append("<span>"+tmp+"</span>").attr("id","v_"+nm);
						if(setme){
							$("td",trdata[0]).eq( cp-1 ).find('span').css({ 'text-align':'right',width:maxw+"px" });
						}
						retpos[cnt] = i;
						cnt++;
					}
				});
				if( cnt > 0) {
					var idrow = $("<tr class='FormData' style='display:none'><td class='CaptionTD'></td><td colspan='"+ (maxcols*2-1)+"' class='DataTD'><input class='FormElement' id='id_g' type='text' name='id' value='"+rowid+"'/></td></tr>");
					idrow[0].rp = cnt+99;
					$(tb).append(idrow);
				}
				return retpos;
			}
			function fillData(rowid,obj){
				var nm, hc,cnt=0,tmp,trv;
				trv = $(obj).jqGrid("getInd",rowid,true);
				if(!trv) {return;}
				$('td',trv).each( function(i) {
					nm = obj.p.colModel[i].name;
					// hidden fields are included in the form
					if(obj.p.colModel[i].editrules && obj.p.colModel[i].editrules.edithidden === true) {
						hc = false;
					} else {
						hc = obj.p.colModel[i].hidden === true ? true : false;
					}
					if ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn' && nm !== 'sc') {
						if(nm === obj.p.ExpandColumn && obj.p.treeGrid === true) {
							tmp = $(this).text();
						} else {
							tmp = $(this).html();
						}
						nm = $.jgrid.jqID("v_"+nm);
						$("#"+nm+" span","#"+frmtb).html(tmp);
						if (hc) {$("#"+nm,"#"+frmtb).parents("tr").first().hide();}
						cnt++;
					}
				});
				if(cnt>0) {$("#id_g","#"+frmtb).val(rowid);}
			}
			function updateNav(cr,posarr){
				var totr = posarr[1].length-1;
				if (cr===0) {
					$("#pData","#"+frmtb+"_2").addClass( commonstyle.disabled );
				} else if( posarr[1][cr-1] !== undefined && $("#"+$.jgrid.jqID(posarr[1][cr-1])).hasClass(commonstyle.disabled)) {
					$("#pData",frmtb+"_2").addClass( commonstyle.disabled );
				} else {
					$("#pData","#"+frmtb+"_2").removeClass( commonstyle.disabled );
				}
				if (cr===totr) {
					$("#nData","#"+frmtb+"_2").addClass( commonstyle.disabled );
				} else if( posarr[1][cr+1] !== undefined && $("#"+$.jgrid.jqID(posarr[1][cr+1])).hasClass( commonstyle.disabled )) {
					$("#nData",frmtb+"_2").addClass( commonstyle.disabled );
				} else {
					$("#nData","#"+frmtb+"_2").removeClass( commonstyle.disabled );
				}
			}
			function getCurrPos() {
				var rowsInGrid =  $($t).jqGrid("getDataIDs"),
				selrow = $("#id_g","#"+frmtb).val(), pos;
				if($t.p.multiselect && rp_ge[$t.p.id].viewselected) {
					var arr = [];
					for(var i=0, len = rowsInGrid.length;i<len;i++) {
						if($.inArray(rowsInGrid[i],$t.p.selarrrow) !== -1) {
							arr.push(rowsInGrid[i]);
						}
					}
					pos = $.inArray(selrow,arr);
					return [pos, arr];
				} else {
					pos = $.inArray(selrow,rowsInGrid);
				}
				return [pos,rowsInGrid];
			}

			var dh = isNaN(rp_ge[$(this)[0].p.id].dataheight) ? rp_ge[$(this)[0].p.id].dataheight : rp_ge[$(this)[0].p.id].dataheight+"px",
			dw = isNaN(rp_ge[$(this)[0].p.id].datawidth) ? rp_ge[$(this)[0].p.id].datawidth : rp_ge[$(this)[0].p.id].datawidth+"px",
			frm = $("<form name='FormPost' id='"+frmgr_id+"' class='FormGrid' style='width:"+dw+";height:"+dh+";'></form>"),
			tbl =$("<table id='"+frmtb_id+"' class='EditTable ViewTable'><tbody></tbody></table>");
			$($t.p.colModel).each( function() {
				var fmto = this.formoptions;
				maxCols = Math.max(maxCols, fmto ? fmto.colpos || 0 : 0 );
				maxRows = Math.max(maxRows, fmto ? fmto.rowpos || 0 : 0 );
			});
			// set the id.
			$(frm).append(tbl);
			showFrm = $($t).triggerHandler("jqGridViewRowBeforeInitData", [frm]);
			if(showFrm === undefined) {
				showFrm = true;
			}
			if(showFrm && $.jgrid.isFunction(rp_ge[$t.p.id].beforeInitData)) {
				showFrm = rp_ge[$t.p.id].beforeInitData.call($t, frm);
			}
			if(showFrm === false) {return;}

			createData(rowid, $t, tbl, maxCols);
			var rtlb = $t.p.direction === "rtl" ? true :false,
			bp = rtlb ? "nData" : "pData",
			bn = rtlb ? "pData" : "nData",
				// buttons at footer
			bP = "<a id='"+bp+"' class='fm-button " + commonstyle.button + "'><span class='" + commonstyle.icon_base + " " + styles.icon_prev+ "'></span></a>",
			bN = "<a id='"+bn+"' class='fm-button " + commonstyle.button + "'><span class='" + commonstyle.icon_base + " " + styles.icon_next+ "'></span></a>",
			bC  ="<a id='cData' class='fm-button " + commonstyle.button + "'>"+p.bClose+"</a>",
			user_buttons = ( Array.isArray( rp_ge[$t.p.id].buttons ) ? $.jgrid.buildButtons( rp_ge[$t.p.id].buttons, bC, commonstyle ) : bC );
			if(maxRows >  0) {
				var sd=[];
				$.each($(tbl)[0].rows,function(i,r){
					sd[i] = r;
				});
				sd.sort(function(a,b){
					if(a.rp > b.rp) {return 1;}
					if(a.rp < b.rp) {return -1;}
					return 0;
				});
				$.each(sd, function(index, row) {
					$('tbody',tbl).append(row);
				});
			}
			p.gbox = "#gbox_"+$.jgrid.jqID(gID);
			var bt = $("<div></div>").append(frm).append("<table border='0' class='EditTable' id='"+frmtb+"_2'><tbody><tr id='Act_Buttons'><td class='navButton' width='"+p.labelswidth+"'>"+(rtlb ? bN+bP : bP+bN)+"</td><td class='EditButton'>"+ user_buttons+"</td></tr></tbody></table>"),
			fs =  $('.ui-jqgrid').css('font-size') || '11px';
			
			$.jgrid.createModal(IDs,bt, rp_ge[$(this)[0].p.id],"#gview_"+$.jgrid.jqID($t.p.id),$("#gview_"+$.jgrid.jqID($t.p.id))[0], null, {"font-size":fs});
			if(rtlb) {
				$("#pData, #nData","#"+frmtb+"_2").css("float","right");
				$(".EditButton","#"+frmtb+"_2").css("text-align","left");
			}
			if(!p.viewPagerButtons) {$("#pData, #nData","#"+frmtb+"_2").hide();}
			bt = null;
			$("#"+IDs.themodal).keydown( function( e ) {
				if(e.which === 27) {
					if(rp_ge[$t.p.id].closeOnEscape) {$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:p.gbox,jqm:p.jqModal, onClose: p.onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});}
					return false;
				}
				if(p.navkeys[0]===true) {
					if(e.which === p.navkeys[1]){ //up
						$("#pData", "#"+frmtb+"_2").trigger("click");
						return false;
					}
					if(e.which === p.navkeys[2]){ //down
						$("#nData", "#"+frmtb+"_2").trigger("click");
						return false;
					}
				}
			});
			p.closeicon = $.extend([true,"left", styles.icon_close ],p.closeicon);
			if(p.closeicon[0]===true) {
				$("#cData","#"+frmtb+"_2").addClass(p.closeicon[1] === "right" ? 'fm-button-icon-right' : 'fm-button-icon-left')
				.append("<span class='" + commonstyle.icon_base+ " " +p.closeicon[2]+"'></span>");
			}
			$($t).triggerHandler("jqGridViewRowBeforeShowForm", [$("#"+frmgr)]);
			if($.jgrid.isFunction(p.beforeShowForm)) {p.beforeShowForm.call($t,$("#"+frmgr));}

			$.jgrid.viewModal("#"+$.jgrid.jqID(IDs.themodal),{
				gbox:"#gbox_"+$.jgrid.jqID(gID),
				jqm:p.jqModal,
				overlay: p.overlay, 
				modal:p.modal,
				onHide :  function(h) {
					var rtlsup = $("#gbox_"+$.jgrid.jqID(gID)).attr("dir") === "rtl" ? true : false,
						fw = parseFloat($('#viewmod'+gID)[0].style.width);
					$($t).data("viewProp", {
						top:parseFloat($(h.w).css("top")),
						left : rtlsup ? ( $("#gbox_"+$.jgrid.jqID(gID)).outerWidth() - fw - parseFloat($(h.w).css("left")) + 12 ) : parseFloat($(h.w).css("left")),
						width : $(h.w).width(),
						height : $(h.w).height(),
						dataheight : $("#"+frmgr).height(),
						datawidth: $("#"+frmgr).width()
					});
					h.w.remove();
					if(h.o) {h.o.remove();}
				}
			});
			$(".fm-button:not(." + commonstyle.disabled + ")","#"+frmtb+"_2").hover(
				function(){$(this).addClass( commonstyle.hover );},
				function(){$(this).removeClass( commonstyle.hover );}
			);
			focusaref();
			$("#cData", "#"+frmtb+"_2").click(function(){
				$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: p.onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});
				return false;
			});
			$("#"+frmtb+"_2").find("[data-index]").each(function(){
				var index = parseInt($(this).attr('data-index'),10);
				if(index >=0 ) {
					if( p.buttons[index].hasOwnProperty('click')) {
						$(this).on('click', function(e) {
							p.buttons[index].click.call($t, $("#"+frmgr_id)[0], rp_ge[$t.p.id], e);
						});
					}
				}
			});

			$("#nData", "#"+frmtb+"_2").click(function(){
				$("#FormError","#"+frmtb).hide();
				var npos = getCurrPos();
				npos[0] = parseInt(npos[0],10);
				if(npos[0] !== -1 && npos[1][npos[0]+1]) {
					$($t).triggerHandler("jqGridViewRowClickPgButtons", ['next',$("#"+frmgr),npos[1][npos[0]]]);
					if($.jgrid.isFunction(p.onclickPgButtons)) {
						p.onclickPgButtons.call($t,'next',$("#"+frmgr),npos[1][npos[0]]);
					}
					fillData(npos[1][npos[0]+1],$t);
					if(!($t.p.multiselect &&  rp_ge[$t.p.id].viewselected)) {
						$($t).jqGrid("setSelection",npos[1][npos[0]+1]);
					}
					$($t).triggerHandler("jqGridViewRowAfterClickPgButtons", ['next',$("#"+frmgr),npos[1][npos[0]+1]]);
					if($.jgrid.isFunction(p.afterclickPgButtons)) {
						p.afterclickPgButtons.call($t,'next',$("#"+frmgr),npos[1][npos[0]+1]);
					}
					updateNav(npos[0]+1,npos);
				}
				focusaref();
				return false;
			});
			$("#pData", "#"+frmtb+"_2").click(function(){
				$("#FormError","#"+frmtb).hide();
				var ppos = getCurrPos();
				if(ppos[0] !== -1 && ppos[1][ppos[0]-1]) {
					$($t).triggerHandler("jqGridViewRowClickPgButtons", ['prev',$("#"+frmgr),ppos[1][ppos[0]]]);
					if($.jgrid.isFunction(p.onclickPgButtons)) {
						p.onclickPgButtons.call($t,'prev',$("#"+frmgr),ppos[1][ppos[0]]);
					}
					fillData(ppos[1][ppos[0]-1],$t);
					if(!($t.p.multiselect &&  rp_ge[$t.p.id].viewselected)) {
						$($t).jqGrid("setSelection",ppos[1][ppos[0]-1]);
					}
					$($t).triggerHandler("jqGridViewRowAfterClickPgButtons", ['prev',$("#"+frmgr),ppos[1][ppos[0]-1]]);
					if($.jgrid.isFunction(p.afterclickPgButtons)) {
						p.afterclickPgButtons.call($t,'prev',$("#"+frmgr),ppos[1][ppos[0]-1]);
					}
					updateNav(ppos[0]-1,ppos);
				}
				focusaref();
				return false;
			});
			var posInit =getCurrPos();
			updateNav(posInit[0],posInit);
			this.refreshViewForm = function( rid, force ) {
				if ( force === undefined) {
					force = false;
				}
				if( force || rowid === rid) {
					fillData(rid, this);
				}
				if(force) {
					rowid = rid;
				}
			};
		});
	},
	delGridRow : function(rowids,p) {
		var regional =  $.jgrid.getRegional(this[0], 'del'),
			currstyle = this[0].p.styleUI,
			styles = $.jgrid.styleUI[currstyle].formedit,
			commonstyle = $.jgrid.styleUI[currstyle].common;

		p = $.extend(true, {
			top : 0,
			left: 0,
			width: 300,
			height: 'auto',
			dataheight : 'auto',
			modal: false,
			overlay: 30,
			drag: true,
			resize: true,
			url : '',
			mtype : "POST",
			reloadAfterSubmit: true,
			beforeShowForm: null,
			beforeInitData : null,
			afterShowForm: null,
			beforeSubmit: null,
			onclickSubmit: null,
			afterSubmit: null,
			jqModal : true,
			closeOnEscape : false,
			delData: {},
			delicon : [],
			cancelicon : [],
			onClose : null,
			ajaxDelOptions : {},
			processing : false,
			serializeDelData : null,
			useDataProxy : false
		}, regional, p ||{});
		rp_ge[$(this)[0].p.id] = p;
		return this.each(function(){
			var $t = this;
			if (!$t.grid ) {return;}
			if(!rowids) {return;}
			var gID = $t.p.id, onCS = {},
			showFrm = true,
			dtbl = "DelTbl_"+$.jgrid.jqID(gID),postd, idname, opers, oper,
			dtbl_id = "DelTbl_" + gID,
			IDs = {themodal:'delmod'+gID,modalhead:'delhd'+gID,modalcontent:'delcnt'+gID, scrollelm: dtbl};
			rp_ge[$t.p.id].styleUI = $t.p.styleUI || 'jQueryUI';
			if (Array.isArray(rowids)) {rowids = rowids.join();}
			if ( $("#"+$.jgrid.jqID(IDs.themodal))[0] !== undefined ) {

				showFrm = $($t).triggerHandler("jqGridDelRowBeforeInitData", [$("#"+dtbl)]);
				if(showFrm === undefined) {
					showFrm = true;
				}
				if(showFrm && $.jgrid.isFunction(rp_ge[$t.p.id].beforeInitData)) {
					showFrm = rp_ge[$t.p.id].beforeInitData.call($t, $("#"+dtbl));
				}
				if(showFrm === false) {return;}

				$("#DelData>td","#"+dtbl).text(rowids);
				$("#DelError","#"+dtbl).hide();
				if( rp_ge[$t.p.id].processing === true) {
					rp_ge[$t.p.id].processing=false;
					$("#dData", "#"+dtbl).removeClass( commonstyle.active );
				}
				$($t).triggerHandler("jqGridDelRowBeforeShowForm", [$("#"+dtbl)]);
				if($.jgrid.isFunction( rp_ge[$t.p.id].beforeShowForm  )) {
					rp_ge[$t.p.id].beforeShowForm.call($t,$("#"+dtbl));
				}
				$.jgrid.viewModal("#"+$.jgrid.jqID(IDs.themodal),{gbox:"#gbox_"+$.jgrid.jqID(gID),jqm:rp_ge[$t.p.id].jqModal, overlay: rp_ge[$t.p.id].overlay, modal:rp_ge[$t.p.id].modal});
				$($t).triggerHandler("jqGridDelRowAfterShowForm", [$("#"+dtbl)]);
				if($.jgrid.isFunction( rp_ge[$t.p.id].afterShowForm )) {
					rp_ge[$t.p.id].afterShowForm.call($t, $("#"+dtbl));
				}
			} else {
				var dh = isNaN(rp_ge[$t.p.id].dataheight) ? rp_ge[$t.p.id].dataheight : rp_ge[$t.p.id].dataheight+"px",
				dw = isNaN(p.datawidth) ? p.datawidth : p.datawidth+"px",
				tbl = "<div id='"+dtbl_id+"' class='formdata' style='width:"+dw+";overflow:auto;position:relative;height:"+dh+";'>";
				tbl += "<table class='DelTable'><tbody>";
				// error data
				tbl += "<tr id='DelError' style='display:none'><td class='" + commonstyle.error +"'></td></tr>";
				tbl += "<tr id='DelData' style='display:none'><td >"+rowids+"</td></tr>";
				tbl += "<tr><td class=\"delmsg\" style=\"white-space:pre;\">"+rp_ge[$t.p.id].msg+"</td></tr><tr><td >&#160;</td></tr>";
				// buttons at footer
				tbl += "</tbody></table></div>";
				var bS  = "<a id='dData' class='fm-button " + commonstyle.button + "'>"+p.bSubmit+"</a>",
				bC  = "<a id='eData' class='fm-button " + commonstyle.button + "'>"+p.bCancel+"</a>",
				user_buttons = ( Array.isArray( rp_ge[$t.p.id].buttons ) ? $.jgrid.buildButtons( rp_ge[$t.p.id].buttons, bS + bC, commonstyle ) : bS + bC ),
				fs =  $('.ui-jqgrid').css('font-size') || '11px';

				tbl += "<table class='EditTable ui-common-table' id='"+dtbl+"_2'><tbody><tr><td><hr class='" + commonstyle.content + "' style='margin:1px'/></td></tr><tr><td class='DelButton EditButton'>"+ user_buttons +"</td></tr></tbody></table>";
				p.gbox = "#gbox_"+$.jgrid.jqID(gID);
				$.jgrid.createModal(IDs,tbl, rp_ge[$t.p.id] ,"#gview_"+$.jgrid.jqID($t.p.id),$("#gview_"+$.jgrid.jqID($t.p.id))[0], null, {"font-size": fs});

				$(".fm-button","#"+dtbl+"_2").hover(
					function(){$(this).addClass( commonstyle.hover );},
					function(){$(this).removeClass( commonstyle.hover );}
				);
				p.delicon = $.extend([true,"left", styles.icon_del ],rp_ge[$t.p.id].delicon);
				p.cancelicon = $.extend([true,"left", styles.icon_cancel ],rp_ge[$t.p.id].cancelicon);
				if(p.delicon[0]===true) {
					$("#dData","#"+dtbl+"_2").addClass(p.delicon[1] === "right" ? 'fm-button-icon-right' : 'fm-button-icon-left')
					.append("<span class='" + commonstyle.icon_base + " " + p.delicon[2]+"'></span>");
				}
				if(p.cancelicon[0]===true) {
					$("#eData","#"+dtbl+"_2").addClass(p.cancelicon[1] === "right" ? 'fm-button-icon-right' : 'fm-button-icon-left')
					.append("<span class='" + commonstyle.icon_base + " " + p.cancelicon[2]+"'></span>");
				}
				$("#dData","#"+dtbl+"_2").click(function(){
					var ret=[true,""], pk,
					postdata = $("#DelData>td","#"+dtbl).text(); //the pair is name=val1,val2,...
					onCS = {};
					onCS = $($t).triggerHandler("jqGridDelRowClickSubmit", [rp_ge[$t.p.id], postdata]);
					if(onCS === undefined && $.jgrid.isFunction( rp_ge[$t.p.id].onclickSubmit ) ) {
						onCS = rp_ge[$t.p.id].onclickSubmit.call($t, rp_ge[$t.p.id], postdata) || {};
					}
					ret = $($t).triggerHandler("jqGridDelRowBeforeSubmit", [postdata]);
					if(ret === undefined) {
						ret = [true,"",""];
					}
					if( ret[0] && $.jgrid.isFunction(rp_ge[$t.p.id].beforeSubmit))  {
						ret = rp_ge[$t.p.id].beforeSubmit.call($t, postdata);
					}
					if(ret[0] && !rp_ge[$t.p.id].processing) {
						rp_ge[$t.p.id].processing = true;
						opers = $t.p.prmNames;
						postd = $.extend({},rp_ge[$t.p.id].delData, onCS);
						oper = opers.oper;
						postd[oper] = opers.deloper;
						idname = opers.id;
						postdata = String(postdata).split(",");
						if(!postdata.length) { return false; }
						for(pk in postdata) {
							if(postdata.hasOwnProperty(pk)) {
								postdata[pk] = $.jgrid.stripPref($t.p.idPrefix, postdata[pk]);
							}
						}
						postd[idname] = postdata.join();
						$(this).addClass( commonstyle.active );
						var ajaxOptions = $.extend({
							url: rp_ge[$t.p.id].url || $($t).jqGrid('getGridParam','editurl'),
							type: rp_ge[$t.p.id].mtype,
							data: $.jgrid.isFunction(rp_ge[$t.p.id].serializeDelData) ? rp_ge[$t.p.id].serializeDelData.call($t,postd) : postd,
							success:function(res, status, data){
								var i;
								$("#dData", "#"+dtbl+"_2").removeClass( commonstyle.active );
								if(data.status >= 300 && data.status !== 304) {
									ret[0] = false;
									ret[1] = $($t).triggerHandler("jqGridDelRowErrorTextFormat", [data]);
									if ($.jgrid.isFunction(rp_ge[$t.p.id].errorTextFormat)) {
										ret[1] = rp_ge[$t.p.id].errorTextFormat.call($t, data);
									}
									if(ret[1] === undefined) {
										ret[1] = status + " Status: '" + data.statusText + "'. Error code: " + data.status;
									}
								} else {
									// data is posted successful
									// execute aftersubmit with the returned data from server
									ret = $($t).triggerHandler("jqGridDelRowAfterSubmit", [data, postd]);
									if(ret === undefined) {
										ret = [true,"",""];
									}
									if( ret[0] && $.jgrid.isFunction(rp_ge[$t.p.id].afterSubmit) ) {
										ret = rp_ge[$t.p.id].afterSubmit.call($t, data, postd);
									}
								}
								if(ret[0] === false) {
									$("#DelError>td","#"+dtbl).html(ret[1]);
									$("#DelError","#"+dtbl).show();
								} else {
									if(rp_ge[$t.p.id].reloadAfterSubmit && $t.p.datatype !== "local") {
										$($t).trigger("reloadGrid");
									} else {
										if($t.p.treeGrid===true){
												try {$($t).jqGrid("delTreeNode",$t.p.idPrefix+postdata[0], true);} catch(e){}
										} else {
											for(i=0;i<postdata.length;i++) {
												$($t).jqGrid("delRowData",$t.p.idPrefix+ postdata[i]);
											}
										}
										$t.p.selrow = null;
										$t.p.selarrrow = [];
									}
									if($.jgrid.isFunction(rp_ge[$t.p.id].afterComplete) || Object.prototype.hasOwnProperty.call($._data( $($t)[0], 'events' ), 'jqGridDelRowAfterComplete')) {
										var copydata = data;
										setTimeout(function(){
											$($t).triggerHandler("jqGridDelRowAfterComplete", [copydata, postd]);
											try {
												rp_ge[$t.p.id].afterComplete.call($t, copydata, postd);
											} catch(eacg) {
												// do nothing
											}
										},500);
									}
								}
								rp_ge[$t.p.id].processing=false;
								if(ret[0]) {$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose});}
							}
						}, $.jgrid.ajaxOptions, rp_ge[$t.p.id].ajaxDelOptions);


						if (!ajaxOptions.url && !rp_ge[$t.p.id].useDataProxy) {
							if ($.jgrid.isFunction($t.p.dataProxy)) {
								rp_ge[$t.p.id].useDataProxy = true;
							} else {
								ret[0]=false;ret[1] += " "+$.jgrid.getRegional($t, 'errors.nourl');
							}
						}
						if (ret[0]) {
							if (rp_ge[$t.p.id].useDataProxy) {
								var dpret = $t.p.dataProxy.call($t, ajaxOptions, "del_"+$t.p.id); 
								if(dpret === undefined) {
									dpret = [true, ""];
								}
								if(dpret[0] === false ) {
									ret[0] = false;
									ret[1] = dpret[1] || "Error deleting the selected row!" ;
								} else {
									$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose});
								}
							}
							else {
								if(ajaxOptions.url === "clientArray") {
									postd = ajaxOptions.data;
									ajaxOptions.success({status:200, statusText:''},'');
								} else if( ajaxOptions.url === "storage") {
									$($t).jqGrid('deleteStorageRecord', postdata)
									.then(function(e){
										if(e.type==="complete") {
											ajaxOptions.success(postdata,'',{status:200, statusText:''});
										}
									})
									.catch(function(e) {
										$.jgrid.info_dialog("Error",e.target.error.name + " : "+e.target.error.message,'Close');
									});
								} else {
									$.ajax(ajaxOptions); 
								}
							}
						}
					}

					if(ret[0] === false) {
						$("#DelError>td","#"+dtbl).html(ret[1]);
						$("#DelError","#"+dtbl).show();
					}
					return false;
				});
				$("#eData", "#"+dtbl+"_2").click(function(){
					$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:rp_ge[$t.p.id].jqModal, onClose: rp_ge[$t.p.id].onClose});
					return false;
				});
				$("#"+dtbl+"_2").find("[data-index]").each(function(){
					var index = parseInt($(this).attr('data-index'),10);
					if(index >=0 ) {
						if( p.buttons[index].hasOwnProperty('click')) {
							$(this).on('click', function(e) {
								p.buttons[index].click.call($t, $("#"+dtbl_id)[0], rp_ge[$t.p.id], e);
							});
						}
					}
				});

				showFrm = $($t).triggerHandler("jqGridDelRowBeforeInitData", [$("#"+dtbl)]);
				if(showFrm === undefined) {
					showFrm = true;
				}
				if(showFrm && $.jgrid.isFunction(rp_ge[$t.p.id].beforeInitData)) {
					showFrm = rp_ge[$t.p.id].beforeInitData.call($t, $("#"+dtbl));
				}
				if(showFrm === false) {return;}
				$($t).triggerHandler("jqGridDelRowBeforeShowForm", [$("#"+dtbl)]);
				if($.jgrid.isFunction( rp_ge[$t.p.id].beforeShowForm  )) {
					rp_ge[$t.p.id].beforeShowForm.call($t,$("#"+dtbl));
				}
				$.jgrid.viewModal("#"+$.jgrid.jqID(IDs.themodal),{gbox:"#gbox_"+$.jgrid.jqID(gID),jqm:rp_ge[$t.p.id].jqModal, overlay: rp_ge[$t.p.id].overlay, modal:rp_ge[$t.p.id].modal});
				$($t).triggerHandler("jqGridDelRowAfterShowForm", [$("#"+dtbl)]);
				if($.jgrid.isFunction( rp_ge[$t.p.id].afterShowForm )) {
					rp_ge[$t.p.id].afterShowForm.call($t,$("#"+dtbl));
				}
			}
			if(rp_ge[$t.p.id].closeOnEscape===true) {
				setTimeout(function(){$(".ui-jqdialog-titlebar-close","#"+$.jgrid.jqID(IDs.modalhead)).attr("tabindex","-1").focus();},0);
			}
		});
	},
	navGrid : function (elem, p, pEdit, pAdd, pDel, pSearch, pView) {
		var regional =  $.jgrid.getRegional(this[0], 'nav'),
			currstyle = this[0].p.styleUI,
			styles = $.jgrid.styleUI[currstyle].navigator,
			commonstyle = $.jgrid.styleUI[currstyle].common;
		p = $.extend({
			edit: true,
			editicon: styles.icon_edit_nav,
			add: true,
			addicon: styles.icon_add_nav,
			del: true,
			delicon: styles.icon_del_nav,
			search: true,
			searchicon: styles.icon_search_nav,
			refresh: true,
			refreshicon: styles.icon_refresh_nav,
			refreshstate: 'firstpage',
			view: false,
			viewicon : styles.icon_view_nav,
			position : "left",
			closeOnEscape : true,
			beforeRefresh : null,
			afterRefresh : null,
			cloneToTop : false,
			alertwidth : 200,
			alertheight : 'auto',
			alerttop: null,
			alertleft: null,
			alertzIndex : null,
			dropmenu : false,
			navButtonText : ''
		}, regional, p ||{});
		return this.each(function() {
			if(this.p.navGrid) {return;}
			var $t = this, twd, tdw, o;
			if(!$t.grid || typeof elem !== 'string') {return;}
			if(!$($t).data('navGrid')) {
				$($t).data('navGrid',p);
			}
			// speedoverhead, but usefull for future 
			o = $($t).data('navGrid');
			if($t.p.force_regional) {
				o = $.extend(o, regional);
			}
			if(!o.alerttop && !o.alertleft) {
				var pos=$.jgrid.findPos(this);
				pos[0]=Math.round(pos[0]);
				pos[1]=Math.round(pos[1]);
				var hg = isNaN(this.p.height) ? $($t.grid.bDiv).height(): this.p.height;
				if(hg === 0) {
					hg = 200;
				}
				o.alertleft = pos[0] + (this.p.width/2)-parseInt(o.alertwidth,10)/2;
				o.alerttop = pos[1] + (hg/2)-25;
			}
			var alert_info = function(){
				 $.jgrid.info_dialog(o.alertcap,"<div>"+o.alerttext+"</div><span tabindex='0'><span tabindex='-1' id='jqg_alrt'></span></span>","",{
						jqModal:true,
						drag:true,
						resize:true,
						caption:o.alertcap,
					width:o.alertwidth,
					height: o.alertheight,
						top:o.alerttop,
						left:o.alertleft,
						closeOnEscape:o.closeOnEscape, 
					styleUI: $t.p.styleUI,
					zIndex: o.alertzIndex}
				);
			};
			var clone = 1, i,
			onHoverIn = function () {
				if (!$(this).hasClass(commonstyle.disabled)) {
					$(this).addClass(commonstyle.hover);
				}
			},
			onHoverOut = function () {
				$(this).removeClass(commonstyle.hover);
			};
			if(o.cloneToTop && $t.p.toppager) {clone = 2;}
			for(i = 0; i<clone; i++) {
				var tbd,
				navtbl = $("<table class='ui-pg-table navtable ui-common-table'><tbody><tr></tr></tbody></table>"),
				sep = "<td class='ui-pg-button " +commonstyle.disabled + "' style='width:4px;'><span class='ui-separator'></span></td>",
				pgid, elemids;
				if(i===0) {
					pgid = elem;
					if(pgid.indexOf("#") === 0 ) {
						pgid = pgid.substring(1);
						pgid = "#"+ $.jgrid.jqID( pgid );
					}
					elemids = $t.p.id;
					if(pgid === $t.p.toppager) {
						elemids += "_top";
						clone = 1;
					}
				} else {
					pgid = $t.p.toppager;
					elemids = $t.p.id+"_top";
				}
				if($t.p.direction === "rtl") {
					$(navtbl).attr("dir","rtl").css("float","right");
				}
				pAdd = pAdd || {};
				if (o.add) {
					tbd = $("<td class='ui-pg-button "+commonstyle.cornerall+"'></td>");
					$(tbd).append("<div class='ui-pg-div'><span class='"+commonstyle.icon_base +" " +o.addicon+"'></span>"+o.addtext+"</div>");
					$("tr",navtbl).append(tbd);
					$(tbd,navtbl)
					.attr({"title":o.addtitle || "",id : pAdd.id || "add_"+elemids})
					.click(function(){
						if (!$(this).hasClass( commonstyle.disabled )) {
							$.jgrid.setSelNavIndex( $t, this);
							if ($.jgrid.isFunction( o.addfunc )) {
								o.addfunc.call($t);
							} else {
								$($t).jqGrid("editGridRow","new",pAdd);
							}
						}
						return false;
					}).hover(onHoverIn, onHoverOut);
					tbd = null;
				}
				pEdit = pEdit || {};
				if (o.edit) {
					tbd = $("<td class='ui-pg-button "+commonstyle.cornerall+"'></td>");
					$(tbd).append("<div class='ui-pg-div'><span class='"+commonstyle.icon_base+" "+o.editicon+"'></span>"+o.edittext+"</div>");
					$("tr",navtbl).append(tbd);
					$(tbd,navtbl)
					.attr({"title":o.edittitle || "",id: pEdit.id || "edit_"+elemids})
					.click(function(){
						if (!$(this).hasClass( commonstyle.disabled )) {
							var sr = $t.p.selrow;
							if (sr) {
								$.jgrid.setSelNavIndex( $t, this);
								if($.jgrid.isFunction( o.editfunc ) ) {
									o.editfunc.call($t, sr);
								} else {
									$($t).jqGrid("editGridRow",sr,pEdit);
								}
							} else {
								alert_info();
								$("#jqg_alrt").focus();
							}
						}
						return false;
					}).hover(onHoverIn, onHoverOut);
					tbd = null;
				}
				pView = pView || {};
				if (o.view) {
					tbd = $("<td class='ui-pg-button "+commonstyle.cornerall+"'></td>");
					$(tbd).append("<div class='ui-pg-div'><span class='"+commonstyle.icon_base+" "+o.viewicon+"'></span>"+o.viewtext+"</div>");
					$("tr",navtbl).append(tbd);
					$(tbd,navtbl)
					.attr({"title":o.viewtitle || "",id: pView.id || "view_"+elemids})
					.click(function(){
						if (!$(this).hasClass( commonstyle.disabled )) {
							var sr = $t.p.selrow;
							if (sr) {
								$.jgrid.setSelNavIndex( $t, this);
								if($.jgrid.isFunction( o.viewfunc ) ) {
									o.viewfunc.call($t, sr);
								} else {
									$($t).jqGrid("viewGridRow",sr,pView);
								}
							} else {
								alert_info();
								$("#jqg_alrt").focus();
							}
						}
						return false;
					}).hover(onHoverIn, onHoverOut);
					tbd = null;
				}
				pDel = pDel || {};
				if (o.del) {
					tbd = $("<td class='ui-pg-button "+commonstyle.cornerall+"'></td>");
					$(tbd).append("<div class='ui-pg-div'><span class='"+commonstyle.icon_base+" "+o.delicon+"'></span>"+o.deltext+"</div>");
					$("tr",navtbl).append(tbd);
					$(tbd,navtbl)
					.attr({"title":o.deltitle || "",id: pDel.id || "del_"+elemids})
					.click(function(){
						if (!$(this).hasClass( commonstyle.disabled )) {
							var dr;
							if($t.p.multiselect) {
								dr = $t.p.selarrrow;
								if(dr.length===0) {dr = null;}
							} else {
								dr = $t.p.selrow;
							}
							if(dr){
								$.jgrid.setSelNavIndex( $t, this);
								if($.jgrid.isFunction( o.delfunc )){
									o.delfunc.call($t, dr);
								}else{
									$($t).jqGrid("delGridRow",dr,pDel);
								}
							} else  {
								alert_info();
							}
						}
						return false;
					}).hover(onHoverIn, onHoverOut);
					tbd = null;
				}
				if(o.add || o.edit || o.del || o.view) {$("tr",navtbl).append(sep);}
				pSearch = pSearch || {};
				if (o.search) {
					tbd = $("<td class='ui-pg-button "+commonstyle.cornerall+"'></td>");
					$(tbd).append("<div class='ui-pg-div'><span class='"+commonstyle.icon_base+" "+o.searchicon+"'></span>"+o.searchtext+"</div>");
					$("tr",navtbl).append(tbd);
					$(tbd,navtbl)
					.attr({"title":o.searchtitle  || "",id:pSearch.id || "search_"+elemids})
					.click(function(){
						if (!$(this).hasClass( commonstyle.disabled )) {
							$.jgrid.setSelNavIndex( $t, this);
							if($.jgrid.isFunction( o.searchfunc )) {
								o.searchfunc.call($t, pSearch);
							} else {
								$($t).jqGrid("searchGrid",pSearch);
							}
						}
						return false;
					}).hover(onHoverIn, onHoverOut);
					if (pSearch.showOnLoad && pSearch.showOnLoad === true) {
						$(tbd,navtbl).click();
					}
					tbd = null;
				}
				if (o.refresh) {
					tbd = $("<td class='ui-pg-button "+commonstyle.cornerall+"'></td>");
					$(tbd).append("<div class='ui-pg-div'><span class='"+commonstyle.icon_base+" "+o.refreshicon+"'></span>"+o.refreshtext+"</div>");
					$("tr",navtbl).append(tbd);
					$(tbd,navtbl)
					.attr({"title":o.refreshtitle  || "",id: "refresh_"+elemids})
					.click(function(){
						if (!$(this).hasClass( commonstyle.disabled )) {
							if($.jgrid.isFunction(o.beforeRefresh)) {o.beforeRefresh.call($t);}
							$t.p.search = false;
							$t.p.resetsearch =  true;
							try {
								if( o.refreshstate !== 'currentfilter') {
									var gID = $t.p.id;
									$t.p.postData.filters ="";
									try {
										$("#fbox_"+$.jgrid.jqID(gID)).jqFilter('resetFilter');
									} catch(ef) {}
									if($.jgrid.isFunction($t.clearToolbar)) {$t.clearToolbar.call($t,false);}
								}
							} catch (e) {}
							switch (o.refreshstate) {
								case 'firstpage':
									$($t).trigger("reloadGrid", [{page:1}]);
									break;
								case 'current':
								case 'currentfilter':
									$($t).trigger("reloadGrid", [{current:true}]);
									break;
							}
							if($.jgrid.isFunction(o.afterRefresh)) {o.afterRefresh.call($t);}
							$.jgrid.setSelNavIndex( $t, this);
						}
						return false;
					}).hover(onHoverIn, onHoverOut);
					tbd = null;
				}
				tdw = $(".ui-jqgrid").css("font-size") || "11px";
				$('body').append("<div id='testpg2' class='ui-jqgrid "+$.jgrid.styleUI[currstyle].base.entrieBox+"' style='font-size:"+tdw+";visibility:hidden;' ></div>");
				twd = $(navtbl).clone().appendTo("#testpg2").width();
				$("#testpg2").remove();
				
				if($t.p._nvtd) {
					if(o.dropmenu) {
						navtbl = null;
						$($t).jqGrid('_buildNavMenu', pgid, elemids, $.extend(p,{'ainfo':alert_info}), pEdit, pAdd, pDel, pSearch, pView );						
					} else if(twd > $t.p._nvtd[0] ) {
						if($t.p.responsive) {
							navtbl = null;
							$($t).jqGrid('_buildNavMenu', pgid, elemids, $.extend(p,{'ainfo':alert_info}), pEdit, pAdd, pDel, pSearch, pView );
						} else {
							$(pgid+"_"+o.position,pgid).append(navtbl).width(twd);
						}
						$t.p._nvtd[0] = twd;
					} else {
						$(pgid+"_"+o.position,pgid).append(navtbl);
					}
					$t.p._nvtd[1] = twd;
				}
				$t.p.navGrid = true;
			}
			if($t.p.storeNavOptions) {
				$t.p.navOptions = o;
				$t.p.editOptions = pEdit;
				$t.p.addOptions = pAdd;
				$t.p.delOptions = pDel;
				$t.p.searchOptions = pSearch;
				$t.p.viewOptions = pView;
				$t.p.navButtons =[];
			}

		});
	},
	navButtonAdd : function (elem, p) {
		var	currstyle = this[0].p.styleUI,
			styles = $.jgrid.styleUI[currstyle].navigator;
		p = $.extend({
			caption : "newButton",
			title: '',
			buttonicon : styles.icon_newbutton_nav,
			onClickButton: null,
			position : "last",
			cursor : 'pointer',
			internal : false
		}, p ||{});
		return this.each(function() {
			if(!this.grid || typeof elem !== 'string') {return;}
			if( elem.indexOf("#") === 0 ) {
				elem = elem.substring(1);
			}
			elem = "#" +  $.jgrid.jqID(elem);
			var findnav = $(".navtable",elem)[0], $t = this,
			//getstyle = $.jgrid.getMethod("getStyleUI"),
			disabled = $.jgrid.styleUI[currstyle].common.disabled,
			hover = $.jgrid.styleUI[currstyle].common.hover,
			cornerall = $.jgrid.styleUI[currstyle].common.cornerall,
			iconbase = $.jgrid.styleUI[currstyle].common.icon_base;

			if ($t.p.storeNavOptions && !p.internal) {
				$t.p.navButtons.push([elem,p]);
			}

			if (findnav) {
				if( p.id && $("#"+$.jgrid.jqID(p.id), findnav)[0] !== undefined )  {return;}
				var tbd = $("<td></td>");
				if(p.buttonicon.toString().toUpperCase() === "NONE") {
                    $(tbd).addClass('ui-pg-button '+cornerall).append("<div class='ui-pg-div'>"+p.caption+"</div>");
				} else	{
					$(tbd).addClass('ui-pg-button '+cornerall).append("<div class='ui-pg-div'><span class='"+iconbase+" "+p.buttonicon+"'></span>"+p.caption+"</div>");
				}
				if(p.id) {$(tbd).attr("id",p.id);}
				if(p.position==='first'){
					if(findnav.rows[0].cells.length ===0 ) {
						$("tr",findnav).append(tbd);
					} else {
						$("tr td",findnav).eq( 0 ).before(tbd);
					}
				} else {
					$("tr",findnav).append(tbd);
				}
				$(tbd,findnav)
				.attr("title",p.title  || "")
				.click(function(e){
					if (!$(this).hasClass(disabled)) {
						$.jgrid.setSelNavIndex( $t, this);
						if ($.jgrid.isFunction(p.onClickButton) ) {p.onClickButton.call($t,e);}
					}
					return false;
				})
				.hover(
					function () {
						if (!$(this).hasClass(disabled)) {
							$(this).addClass(hover);
						}
					},
					function () {$(this).removeClass(hover);}
				);
			} else {
				findnav = $(".dropdownmenu",elem)[0];
				if (findnav) {
					var id = $(findnav).val(),
					eid = p.id || $.jgrid.randId(),
					item = $('<li class="ui-menu-item" role="presentation"><a class="'+ cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+eid+'">'+(p.caption || p.title)+'</a></li>');
					if(id) {
						if(p.position === 'first') {
							$("#"+id).prepend( item );
						} else {
							$("#"+id).append( item );
						}
						$(item).on("click", function(e){
							if (!$(this).hasClass(disabled)) {
								$("#"+id).hide();
								if ($.jgrid.isFunction(p.onClickButton) ) {
									p.onClickButton.call($t,e);
								}
							}
							return false;
						}).find("a")
						.hover(
							function () {
								if (!$(this).hasClass(disabled)) {
									$(this).addClass(hover);
								}
							},
							function () {$(this).removeClass(hover);}
						);
					}
				}
			}
		});
	},
	navSeparatorAdd:function (elem,p) {
		var	currstyle = this[0].p.styleUI,
			commonstyle = $.jgrid.styleUI[currstyle].common;
		p = $.extend({
			sepclass : "ui-separator",
			sepcontent: '',
			position : "last"
		}, p ||{});
		return this.each(function() {
			if( !this.grid)  {return;}
			if( typeof elem === "string" && elem.indexOf("#") !== 0) {elem = "#"+$.jgrid.jqID(elem);}
			var findnav = $(".navtable",elem)[0], sep, id;
			if ( this.p.storeNavOptions ) {
				this.p.navButtons.push([elem,p]);
			}
			
			if(findnav) {
				sep = "<td class='ui-pg-button "+ commonstyle.disabled +"' style='width:4px;'><span class='"+p.sepclass+"'></span>"+p.sepcontent+"</td>";
				if (p.position === 'first') {
					if (findnav.rows[0].cells.length === 0) {
						$("tr", findnav).append(sep);
					} else {
						$("tr td", findnav).eq( 0 ).before(sep);
					}
				} else {
					$("tr", findnav).append(sep);
				}
			} else {
				findnav = $(".dropdownmenu",elem)[0];
				sep = "<li class='ui-menu-item " +commonstyle.disabled + "' style='width:100%' role='presentation'><hr class='ui-separator-li'></li>";
				if(findnav) {
					id = $(findnav).val();
					if(id) {
						if(p.position === "first") {
							$("#"+id).prepend( sep );
						} else {
							$("#"+id).append( sep );
						}
					}
				}
			}
		});
	},
	_buildNavMenu : function ( elem, elemids, p, pEdit, pAdd, pDel, pSearch, pView ) {
		return this.each(function() {
			var $t = this,
			//actions = ['add','edit', 'del', 'view', 'search','refresh'],
			regional =  $.jgrid.getRegional($t, 'nav'),
			currstyle = $t.p.styleUI,
			//styles = $.jgrid.styleUI[currstyle].navigator,
			classes = $.jgrid.styleUI[currstyle].filter,
			commonstyle = $.jgrid.styleUI[currstyle].common,
			mid = "form_menu_"+$.jgrid.randId(),
			bt = p.navButtonText ? p.navButtonText : regional.selectcaption || 'Actions',
			act = "<button class='dropdownmenu "+commonstyle.button+"' value='"+mid+"'>" + bt +"</button>";
			$(elem+"_"+p.position, elem).append( act );
			var _buildMenu = function() {
				var fs =  $('.ui-jqgrid').css('font-size') || '11px',
				eid, itm,
				str = $('<ul id="'+mid+'" class="ui-nav-menu modal-content ui-menu column-menu jqgrid-column-menu ' + commonstyle.shadow + '" role="menu" tabindex="0" style="display:none;font-size:'+fs+'"></ul>');
				if( p.add ) {
					pAdd = pAdd || {};
					eid = pAdd.id || "add_"+elemids;
					itm = $('<li class="ui-menu-item" role="presentation"><a class="'+ commonstyle.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+eid+'">'+(p.addtext.trim() || p.addtitle)+'</a></li>').click(function(){
						if (!$(this).hasClass( commonstyle.disabled )) {
							if ($.jgrid.isFunction( p.addfunc )) {
								p.addfunc.call($t);
							} else {
								$($t).jqGrid("editGridRow","new",pAdd);
							}
							$(str).hide();
						}
						return false;
					});
					$(str).append(itm);
				}
				if( p.edit ) {
					pEdit = pEdit || {};
					eid = pEdit.id || "edit_"+elemids;
					itm = $('<li class="ui-menu-item" role="presentation"><a class="'+ commonstyle.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+eid+'">'+(p.edittext.trim() || p.edittitle)+'</a></li>').click(function(){
						if (!$(this).hasClass( commonstyle.disabled )) {
							var sr = $t.p.selrow;
							if (sr) {
								if($.jgrid.isFunction( p.editfunc ) ) {
									p.editfunc.call($t, sr);
								} else {
									$($t).jqGrid("editGridRow",sr,pEdit);
								}
							} else {
								p.ainfo();
								$("#jqg_alrt").focus();
							}
							$(str).hide();
						}
						return false;
					});
					$(str).append(itm);
				}
				if( p.view ) {
					pView = pView || {};
					eid = pView.id || "view_"+elemids;
					itm = $('<li class="ui-menu-item" role="presentation"><a class="'+ commonstyle.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+eid+'">'+(p.viewtext.trim() || p.viewtitle)+'</a></li>').click(function(){
						if (!$(this).hasClass( commonstyle.disabled )) {
							var sr = $t.p.selrow;
							if (sr) {
								if($.jgrid.isFunction( p.editfunc ) ) {
									p.viewfunc.call($t, sr);
								} else {
									$($t).jqGrid("viewGridRow",sr,pView);
								}
							} else {
								p.ainfo();
								$("#jqg_alrt").focus();
							}
							$(str).hide();
						}
						return false;
					});
					$(str).append(itm);
				}
				if( p.del ) {
					pDel = pDel || {};
					eid = pDel.id || "del_"+elemids;
					itm = $('<li class="ui-menu-item" role="presentation"><a class="'+ commonstyle.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+eid+'">'+(p.deltext.trim() || p.deltitle)+'</a></li>').click(function(){
						if (!$(this).hasClass( commonstyle.disabled )) {
							var dr;
							if($t.p.multiselect) {
								dr = $t.p.selarrrow;
								if(dr.length===0) {dr = null;}
							} else {
								dr = $t.p.selrow;
							}
							if(dr){
								if($.jgrid.isFunction( p.delfunc )){
									p.delfunc.call($t, dr);
								}else{
									$($t).jqGrid("delGridRow",dr,pDel);
								}
							} else  {
								p.ainfo();
							}
							$(str).hide();
						}
						return false;
					});
					$(str).append(itm);
				}
				if(p.add || p.edit || p.del || p.view) {
					$(str).append("<li class='ui-menu-item " +commonstyle.disabled + "' style='width:100%' role='presentation'><hr class='ui-separator-li'></li>");
				}
				if( p.search ) {
					pSearch = pSearch || {};
					eid = pSearch.id || "search_"+elemids;
					itm = $('<li class="ui-menu-item" role="presentation"><a class="'+ commonstyle.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+eid+'">'+(p.searchtext.trim() || p.searchtitle)+'</a></li>').click(function(){
						if (!$(this).hasClass( commonstyle.disabled )) {
							if($.jgrid.isFunction( p.searchfunc )) {
								p.searchfunc.call($t, pSearch);
							} else {
								$($t).jqGrid("searchGrid",pSearch);
							}
							$(str).hide();
						}
						return false;
					});
					$(str).append(itm);
					if (pSearch.showOnLoad && pSearch.showOnLoad === true) {
						$( itm ).click();
					}
				}
				if( p.refresh ) {
					eid = pSearch.id || "search_"+elemids;
					itm = $('<li class="ui-menu-item" role="presentation"><a class="'+ commonstyle.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+eid+'">'+(p.refreshtext || p.refreshtitle)+'</a></li>').click(function(){
						if (!$(this).hasClass( commonstyle.disabled )) {
							if($.jgrid.isFunction(p.beforeRefresh)) {p.beforeRefresh.call($t);}
							$t.p.search = false;
							$t.p.resetsearch =  true;
							try {
								if( p.refreshstate !== 'currentfilter') {
									var gID = $t.p.id;
									$t.p.postData.filters ="";
									try {
										$("#fbox_"+$.jgrid.jqID(gID)).jqFilter('resetFilter');
									} catch(ef) {}
									if($.jgrid.isFunction($t.clearToolbar)) {$t.clearToolbar.call($t,false);}
								}
							} catch (e) {}
							switch (p.refreshstate) {
								case 'firstpage':
									$($t).trigger("reloadGrid", [{page:1}]);
									break;
								case 'current':
								case 'currentfilter':
									$($t).trigger("reloadGrid", [{current:true}]);
									break;
							}
							if($.jgrid.isFunction(p.afterRefresh)) {p.afterRefresh.call($t);}
							$(str).hide();
						}
						return false;
					});
					$(str).append(itm);
				}
				$(str).hide();
				$('body').append(str);
				$("#"+mid).addClass("ui-menu " + classes.menu_widget);
				$("#"+mid+" > li > a").hover(
					function(){ $(this).addClass(commonstyle.hover); },
					function(){ $(this).removeClass(commonstyle.hover); }
				);
			};
			_buildMenu();
			$(".dropdownmenu", elem+"_"+p.position).on("click", function( e ){
				var offset = $(this).offset(),
				left = ( offset.left ),
				top = parseInt( offset.top),
				bid =$(this).val();
				//if( $("#"+mid)[0] === undefined)  {
					//_buildMenu();
				//}
				$("#"+bid).show().css({"top":top - ($("#"+bid).height() + 35)+"px", "left":left+"px"});
				e.stopPropagation();
			});
			$("body").on('click', function(e){
				if(!$(e.target).hasClass("dropdownmenu")) {
					$("#"+mid).hide();
				}
			});
		});
	},
	GridToForm : function( rowid, formid ) {
		return this.each(function(){
			var $t = this, i;
			if (!$t.grid) {return;}
			var rowdata = $($t).jqGrid("getRowData",rowid);
			if (rowdata) {
				for(i in rowdata) {
					if(rowdata.hasOwnProperty(i)) {
					if ( $("[name="+$.jgrid.jqID(i)+"]",formid).is("input:radio") || $("[name="+$.jgrid.jqID(i)+"]",formid).is("input:checkbox"))  {
						$("[name="+$.jgrid.jqID(i)+"]",formid).each( function() {
							if( $(this).val() == rowdata[i] ) {
								$(this)[$t.p.useProp ? 'prop': 'attr']("checked",true);
							} else {
								$(this)[$t.p.useProp ? 'prop': 'attr']("checked", false);
							}
						});
					} else {
					// this is very slow on big table and form.
						$("[name="+$.jgrid.jqID(i)+"]",formid).val(rowdata[i]);
					}
				}
			}
			}
		});
	},
	FormToGrid : function(rowid, formid, mode, position){
		return this.each(function() {
			var $t = this;
			if(!$t.grid) {return;}
			if(!mode) {mode = 'set';}
			if(!position) {position = 'first';}
			var fields = $(formid).serializeArray();
			var griddata = {};
			$.each(fields, function(i, field){
				griddata[field.name] = field.value;
			});
			if(mode==='add') {$($t).jqGrid("addRowData",rowid,griddata, position);}
			else if(mode==='set') {$($t).jqGrid("setRowData",rowid,griddata);}
		});
	}
});
//module end
}));
js/grid.utils.js000064400000022174151676727230007630 0ustar00/*global jQuery, define, URL */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {

	// AMD. Register as an anonymous module.
		define([
			"jquery"
		], factory );
	} else {

	// Browser globals
		factory( jQuery );
	}
}(function( $ ) {
"use strict";
//module begin
$.extend($.jgrid,{
//window.jqGridUtils = {
	isJSON : function (mixed) {
		if (typeof mixed !== 'string') {
			mixed = JSON.stringify( mixed );
		}
		try {
			JSON.parse( mixed );
			return true;
		} catch (e) {
			return false;
		}
	},
	stringify : function(obj) {
		return JSON.stringify(obj,function(key, value){
            return (typeof value === 'function' ) ? value.toString() : value;
        });
	},
	parseFunc : function(str) {
		return JSON.parse(str,function(key, value){
			if(typeof value === "string" && value.indexOf("function") !== -1) {
				var sv = value.split(" ");
				sv[0] = $.jgrid.trim( sv[0].toLowerCase() );
				if( (sv[0].indexOf('function') === 0) && value.trim().slice(-1) === "}") {
					return  $.jgrid.runCode( value ); //eval('('+value+')');
				} else {
					return value;
				}
			}
			return value;
		});
	},
	encode : function ( text ) { // repeated, but should not depend on grid
		return String(text).replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/"/g,'&quot;');
	},
	jsonToXML : function ( tree, options ) {
		var o = $.extend( {
			xmlDecl : '<?xml version="1.0" encoding="UTF-8" ?>\n',
			attr_prefix : '-',
			encode : true
		}, options || {}),
		that = this,
		scalarToxml = function ( name, text ) {
			if ( name === "#text" ) {
				return (o.encode ? that.encode(text) : text);
			} else if(typeof(text) ==='function') {
				return "<"+name+"><![CDATA["+ text +"]]></"+name+">\n";
			} if(text === "") {
				return "<"+name+">__EMPTY_STRING_</"+name+">\n";
			} else {
				return "<"+name+">"+(o.encode ? that.encode(text) : text )+"</"+name+">\n";
			}
		},
		arrayToxml = function ( name, array ) {
			var out = [];
		    for( var i=0; i<array.length; i++ ) {
				var val = array[i];
		        if ( typeof(val) === "undefined" || val == null ) {
					out[out.length] = "<"+name+" />";
				} else if ( typeof(val) === "object" && val.constructor == Array ) {
					out[out.length] = arrayToxml( name, val );
				} else if ( typeof(val) === "object" ) {
					out[out.length] = hashToxml( name, val );
				} else {
					out[out.length] = scalarToxml( name, val );
				}
			}
			if(!out.length) {
				out[0] = "<"+ name+">__EMPTY_ARRAY_</"+name+">\n";
			}
			return out.join("");
		},
		hashToxml = function ( name, tree ) {
			var elem = [];
		    var attr = [];
		    for( var key in tree ) {
				if ( ! tree.hasOwnProperty(key) ) continue;
				var val = tree[key];
				if ( key.charAt(0) !==  o.attr_prefix ) {
					if ( val == null ) { // null or undefined
		               elem[elem.length] = "<"+key+" />";
					} else if ( typeof(val) === "object" && val.constructor === Array ) {
		                elem[elem.length] = arrayToxml( key, val );
		            } else if ( typeof(val) === "object" ) {
						elem[elem.length] = hashToxml( key, val );
					} else {
						elem[elem.length] = scalarToxml( key, val );
					}
				} else {
					attr[attr.length] = " "+(key.substring(1))+'="'+(o.encode ? that.encode( val ) : val)+'"';
				}
			}
			var jattr = attr.join("");
			var jelem = elem.join("");
			if ( name == null ) { // null or undefined
				// no tag
			} else if ( elem.length > 0 ) {
				if ( jelem.match( /\n/ )) {
					jelem = "<"+name+jattr+">\n"+jelem+"</"+name+">\n";
				} else {
					jelem = "<"+name+jattr+">"  +jelem+"</"+name+">\n";
				}
			} else {
				jelem = "<"+name+jattr+" />\n";
			}
			return jelem;
		};

		var xml = hashToxml( null, tree );
		return o.xmlDecl + xml;
	},
	xmlToJSON : function ( root, options ) {
		var o = $.extend ( {
			force_array : [], //[ "rdf:li", "item", "-xmlns" ];
			attr_prefix : '-'
		}, options || {} );
		
		if(!root) { return; }
		
	    var __force_array = {};
		if ( o.force_array ) {
			for( var i=0; i< o.force_array.length; i++ ) {
				__force_array[o.force_array[i]] = 1;
			}
		}
		
		if(typeof root === 'string') {
			root = $.parseXML(root);
		} 
		if(root.documentElement) {
			root = root.documentElement;
		}
		var addNode = function ( hash, key, cnts, val ) {
			if(typeof val === 'string') {
				if( val.indexOf('function') !== -1) {
					val =  $.jgrid.runCode( val ); //eval( '(' + val +')'); // we need this in our implement
				} else {
					switch(val) {
						case '__EMPTY_ARRAY_' :
							val = [];
							break;
						case '__EMPTY_STRING_':
							val = "";
							break;
						case "false" :
							val = false;
							break;
						case "true":
							val = true;
							break;
					}
				}
			} 
			if ( __force_array[key] ) {
				if ( cnts === 1 ) {
					hash[key] = [];
				}
				hash[key][hash[key].length] = val;      // push
			} else if ( cnts === 1 ) {                   // 1st sibling
				hash[key] = val;
			} else if ( cnts === 2 ) {                   // 2nd sibling
				hash[key] = [ hash[key], val ];
			} else {                                    // 3rd sibling and more
				hash[key][hash[key].length] = val;
			}
		},
		parseElement = function ( elem ) {
			//  COMMENT_NODE
			if ( elem.nodeType === 7 ) {
				return;
			}

			//  TEXT_NODE CDATA_SECTION_NODE
			if ( elem.nodeType === 3 || elem.nodeType === 4 ) {
				var bool = elem.nodeValue.match( /[^\x00-\x20]/ );
				if ( bool == null ) return;     // ignore white spaces
				return elem.nodeValue;
			}
			
			var retval,	cnt = {}, i, key, val;

			//  parse attributes
			if ( elem.attributes && elem.attributes.length ) {
				retval = {};
				for ( i=0; i<elem.attributes.length; i++ ) {
					key = elem.attributes[i].nodeName;
					if ( typeof(key) !== "string" )  {
						continue;
					}
					val = elem.attributes[i].nodeValue;
					if ( ! val ) {
						continue;
					}
					key = o.attr_prefix + key;
					if ( typeof(cnt[key]) === "undefined" ) {
						cnt[key] = 0;
					}
					cnt[key] ++;
					addNode( retval, key, cnt[key], val );
				}
			}

			//  parse child nodes (recursive)
			if ( elem.childNodes && elem.childNodes.length ) {
				var textonly = true;
				if ( retval ) {
					textonly = false;
				}        // some attributes exists
				for ( i=0; i<elem.childNodes.length && textonly; i++ ) {
					var ntype = elem.childNodes[i].nodeType;
					if ( ntype === 3 || ntype === 4 ) {
						continue;
					}
					textonly = false;
				}
				if ( textonly ) {
					if ( ! retval ) {
						retval = "";
					}
					for ( i=0; i<elem.childNodes.length; i++ ) {
						retval += elem.childNodes[i].nodeValue;
					}
				} else {
					if ( ! retval ) {
						retval = {};
					}
					for ( i=0; i<elem.childNodes.length; i++ ) {
						key = elem.childNodes[i].nodeName;
						if ( typeof(key) !== "string" ) {
							continue;
						}
						val = parseElement( elem.childNodes[i] );
						if ( !val ) {
							continue;
						}
						if ( typeof(cnt[key]) === "undefined" ) {
							cnt[key] = 0;
						}
						cnt[key] ++;
						addNode( retval, key, cnt[key], val );
					}
				}
			}
			return retval;
		};
		
	    var json = parseElement( root );   // parse root node
		if ( __force_array[root.nodeName] ) {
			json = [ json ];
		}
		if ( root.nodeType !== 11 ) {            // DOCUMENT_FRAGMENT_NODE
			var tmp = {};
			tmp[root.nodeName] = json;          // root nodeName
			json = tmp;
		}
		return json;
	},
	saveAs : function (data, fname, opts) {
		opts = $.extend(true,{
			type : 'plain/text;charset=utf-8'
		}, opts || {});

		var file, url, tmp = []; 

		fname = fname == null || fname === '' ? 'jqGridFile.txt' : fname;

		if( !Array.isArray(data) ) {
			tmp[0]= data ;
		} else {
			tmp = data;	
		}
		try {
			file = new File(tmp, fname, opts);
		} catch (e) {
			file = new Blob(tmp, opts);
		}
		if ( window.navigator && window.navigator.msSaveOrOpenBlob) {
			window.navigator.msSaveOrOpenBlob( file , fname );
		} else {
			url = URL.createObjectURL(file);
			var a = document.createElement("a");
			a.href = url;
			a.download = fname;
			document.body.appendChild(a);
			a.click();
			setTimeout(function() {
				document.body.removeChild(a);
				window.URL.revokeObjectURL(url);
			}, 0);
		}
	},
	csvToArray : function (str, delimiter) {
		if(delimiter === undefined) {delimiter =",";}
		var headers=[],arrMatches, arr=[], objr = {}, k=0, len, lines=0;
		var objPattern = new RegExp(
			(
			// Delimiters.
			"(\\" + delimiter + "|\\r?\\n|\\r|^)" +
			// Quoted fields.
			"(?:\"([^\"]*(?:\"\"[^\"]*)*)\"|" +
			// Standard fields.
			"([^\"\\" + delimiter + "\\r\\n]*))"
			),
		"gi");

		while (arrMatches = objPattern.exec(str)) {
			var strMatchedDelimiter = arrMatches[1];
			if ( strMatchedDelimiter.length && strMatchedDelimiter !== delimiter ) {
				lines++;
				objr = {};
				k=0;
			}
			var strMatchedValue;
			if (arrMatches[2]) {
				strMatchedValue = arrMatches[2].replace(new RegExp("\"\"", "g"),"\"");
			} else {
				strMatchedValue = arrMatches[3];
			}
			if(lines === 0 ) {
				headers.push(strMatchedValue);
				len = headers.length;
			} else {
				objr[headers[k]] = strMatchedValue;
				if(k===len-1) {
					arr.push(objr);
				} else {
					k++;
				}
			}
		}
		return arr;
	}
});
//module end
//return window.jqGridUtils;
}));js/grid.common.js000064400000101233151676727230007752 0ustar00/*jshint eqeqeq:false */
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"./grid.base",
			"./jqModal",
			"./jqDnR"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {
"use strict";
//module begin
$.extend($.jgrid,{
// Modal functions
	showModal : function(h) {
		h.w.show();
	},
	closeModal : function(h) {
		h.w.hide().attr("aria-hidden","true");
		if(h.o) {h.o.remove();}
	},
	hideModal : function (selector,o) {
		o = $.extend({jqm : true, gb :'', removemodal: false, formprop: false, form : ''}, o || {});
		var thisgrid = o.gb && typeof o.gb === "string" && o.gb.slice(0,6) === "#gbox_" ? $("#" + o.gb.slice(6))[0] : false;
		if(o.onClose) {
			var oncret = thisgrid ? o.onClose.call(thisgrid, selector) : o.onClose(selector);
			if (typeof oncret === 'boolean'  && !oncret ) { return; }
		}
		if( o.formprop && thisgrid  && o.form) {
			var frmgr, frmdata;
			if(o.form==='edit'){
				frmgr = '#' +$.jgrid.jqID("FrmGrid_"+ o.gb.slice(6));
				frmdata = "formProp";
			} else if( o.form === 'view') {
				frmgr = '#' +$.jgrid.jqID("ViewGrid_"+ o.gb.slice(6));
				frmdata = "viewProp";
			}
			$(thisgrid).data(frmdata, {
				top: $.jgrid.floatNum($(selector).css("top")),
				left : $.jgrid.floatNum($(selector).css("left")),
				width : $.jgrid.floatNum( $(selector)[0].style.width ),
				height : $.jgrid.floatNum( $(selector)[0].style.height ),
				dataheight : $(frmgr).height(),
				datawidth: $(frmgr).width()
			});
		}
		if ($.fn.jqm && o.jqm === true) {
			$(selector).attr("aria-hidden","true").jqmHide();
		} else {
			if(o.gb !== '') {
				try {
					$(o.gb).find(".jqgrid-overlay").first().hide();
				} catch (e){}
			}
			try { $(".jqgrid-overlay-modal").hide(); } catch (e) {}
			$(selector).hide().attr("aria-hidden","true");
		}
		if( o.removemodal ) {
			$(selector).remove();
		}
	},
//Helper functions
	findPos : function(obj) {
		var offset = $(obj).offset();
		return [offset.left,offset.top];
	},
	createModal : function(aIDs, content, p, insertSelector, posSelector, appendsel, css) {
		p = $.extend(true, {}, $.jgrid.jqModal || {}, p);
		var self = this,
			rtlsup = $(p.gbox).attr("dir") === "rtl" ? true : false,
			classes = $.jgrid.styleUI[(p.styleUI || 'jQueryUI')].modal,
			common = $.jgrid.styleUI[(p.styleUI || 'jQueryUI')].common,
			mw  = document.createElement('div');
		css = $.extend({}, css || {});
		mw.className= "ui-jqdialog " + classes.modal;
		mw.id = aIDs.themodal;
		var mh = document.createElement('div');
		mh.className = "ui-jqdialog-titlebar " + classes.header;
		mh.id = aIDs.modalhead;
		$(mh).append("<span class='ui-jqdialog-title "+classes.title+"'>"+p.caption+"</span>");
		var ahr= $("<a class='ui-jqdialog-titlebar-close "+common.cornerall+"' aria-label='Close'></a>")
		.hover(function(){ahr.addClass(common.hover);},
			function(){ahr.removeClass(common.hover);})
		.append("<span class='" + common.icon_base+" " + classes.icon_close + "'></span>");
		$(mh).append(ahr);
		if(rtlsup) {
			mw.dir = "rtl";
			$(".ui-jqdialog-title",mh).css("float","right");
			$(".ui-jqdialog-titlebar-close",mh).css("left",0.3+"em");
		} else {
			mw.dir = "ltr";
			$(".ui-jqdialog-title",mh).css("float","left");
			$(".ui-jqdialog-titlebar-close",mh).css("right",0.3+"em");
		}
		var mc = document.createElement('div');
		$(mc).addClass("ui-jqdialog-content " + classes.content).attr("id",aIDs.modalcontent);
		$(mc).append(content);
		mw.appendChild(mc);
		$(mw).prepend(mh);
		if(appendsel===true) { 
			$('body').append(mw); 
		} //append as first child in body -for alert dialog
		else if (typeof appendsel === "string") {
			$(appendsel).append(mw);
		} else {
			$(mw).insertBefore(insertSelector);
		}
		$(mw).css(css);
		if(p.jqModal === undefined) {p.jqModal = true;} // internal use
		var coord = {};
		if ( $.fn.jqm && p.jqModal === true) {
			if(p.left ===0 && p.top===0 && p.overlay) {
				var pos = [];
				pos = $.jgrid.findPos(posSelector);
				p.left = pos[0] + 4;
				p.top = pos[1] + 4;
				if( rtlsup && !appendsel) {
					p.left = $(p.gbox).outerWidth()- (!isNaN(p.width) ? parseInt(p.width,10) :300);// to do
				}
			}
			coord.top = p.top+"px";
			coord.left = p.left+"px";			
		} else if(p.left !==0 || p.top!==0) {
			coord.left = p.left+"px";
			coord.top = p.top+"px";
		}
		$("a.ui-jqdialog-titlebar-close",mh).click(function(){
			var oncm = $("#"+$.jgrid.jqID(aIDs.themodal)).data("onClose") || p.onClose;
			var gboxclose = $("#"+$.jgrid.jqID(aIDs.themodal)).data("gbox") || p.gbox;
			self.hideModal("#"+$.jgrid.jqID(aIDs.themodal),{gb:gboxclose,jqm:p.jqModal,onClose:oncm, removemodal: p.removemodal || false, formprop : !p.recreateForm || false, form: p.form || ''});
			return false;
		});
		if (p.width === 0 || !p.width) {p.width = 300;}
		if(p.height === 0 || !p.height) {p.height =200;}
		if(!p.zIndex) {
			var parentZ = $(insertSelector).parents("*[role=dialog]").first().css("z-index");
			if(parentZ) {
				p.zIndex = parseInt(parentZ,10)+2;
			} else {
				p.zIndex = 950;
			}
		}
		$(mw).css($.extend({
			width: isNaN(p.width) ? "auto": p.width+"px",
			height:isNaN(p.height) ? "auto" : p.height + "px",
			zIndex:p.zIndex,
			overflow: 'hidden'
		},coord))
		.attr({tabIndex: "-1","role":"dialog","aria-labelledby":aIDs.modalhead,"aria-hidden":"true"});
		if(p.drag === undefined) { p.drag=true;}
		if(p.resize === undefined) {p.resize=true;}
		if (p.drag) {
			$(mh).css('cursor','move');
			if($.fn.tinyDraggable) {
				//$(mw).jqDrag(mh);
				$(mw).tinyDraggable({ handle:"#"+$.jgrid.jqID(mh.id) });
			} else {
				try {
					$(mw).draggable({handle: $("#"+$.jgrid.jqID(mh.id))});
				} catch (e) {}
			}
		}
		if(p.resize) {
			if($.fn.jqResize) {
				$(mw).append("<div class='jqResize "+classes.resizable+" "+common.icon_base + " " +classes.icon_resizable+"'></div>");
				$("#"+$.jgrid.jqID(aIDs.themodal)).jqResize(".jqResize",aIDs.scrollelm ? "#"+$.jgrid.jqID(aIDs.scrollelm) : false);
			} else {
				try {
					$(mw).resizable({handles: 'se, sw',alsoResize: aIDs.scrollelm ? "#"+$.jgrid.jqID(aIDs.scrollelm) : false});
				} catch (r) {}
			}
		}
		if(p.closeOnEscape === true){
			$(mw).keydown( function( e ) {
				if( e.which === 27 ) {
					var cone = $("#"+$.jgrid.jqID(aIDs.themodal)).data("onClose") || p.onClose;
					self.hideModal("#"+$.jgrid.jqID(aIDs.themodal),{gb:p.gbox,jqm:p.jqModal,onClose: cone, removemodal: p.removemodal || false, formprop : !p.recreateForm || false, form: p.form || ''});
				}
			});
		}
	},
	viewModal : function (selector,o){
		o = $.extend({
			toTop: true,
			overlay: 10,
			modal: false,
			overlayClass : 'ui-widget-overlay', // to be fixed
			onShow: $.jgrid.showModal,
			onHide: $.jgrid.closeModal,
			gbox: '',
			jqm : true,
			jqM : true
		}, o || {});
		var style="";
		if(o.gbox) {
			var grid = $("#"+o.gbox.substring(6))[0];
			try {
				style = $(grid).jqGrid('getStyleUI',  grid.p.styleUI+'.common','overlay', false, 'jqgrid-overlay-modal');
				o.overlayClass = $(grid).jqGrid('getStyleUI',  grid.p.styleUI+'.common','overlay', true);
			} catch (em){}
		}
		if(o.focusField === undefined) {
			o.focusField = 0;
		}
		if(typeof o.focusField === "number" && o.focusField >= 0 ) {
			o.focusField = parseInt(o.focusField,10);
		} else if(typeof o.focusField === "boolean" && !o.focusField) {
			o.focusField = false;
		} else {
			o.focusField = 0;
		}
		if ($.fn.jqm && o.jqm === true) {
			if(o.jqM) { $(selector).attr("aria-hidden","false").jqm(o).jqmShow(); }
			else {$(selector).attr("aria-hidden","false").jqmShow();}
		} else {
			if(o.gbox !== '') {
				var zInd = parseInt($(selector).css("z-index")) - 1;
				if(o.modal) {
					if(!$(".jqgrid-overlay-modal")[0] ) {
						$('body').prepend("<div "+style+"></div>" );
					}
					$(".jqgrid-overlay-modal").css("z-index",zInd).show();
				} else {
					$(o.gbox).find(".jqgrid-overlay").first().css("z-index",zInd).show();
					$(selector).data("gbox",o.gbox);
				}
			}
			$(selector).show().attr("aria-hidden","false");
			if(o.focusField >= 0) {
				try{$(':input:visible',selector)[o.focusField].focus();}catch(_){}
			}
		}
	},
	info_dialog : function(caption, content,c_b, modalopt) {
		var mopt = {
			width:350,
			height:'auto',
			dataheight: 'auto',
			drag: true,
			resize: false,
			left:(window.innerWidth / 2) - 145,
			top:window.innerHeight / 2 - 150,
			zIndex : 1000,
			jqModal : true,
			modal : false,
			closeOnEscape : true,
			align: 'center',
			buttonalign : 'center',
			buttons : [], 
			overlay : 10,
			overlayClass : ''
		// {text:'textbutt', id:"buttid", onClick : function(){...}}
		// if the id is not provided we set it like info_button_+ the index in the array - i.e info_button_0,info_button_1...
		};
		$.extend(true, mopt, $.jgrid.jqModal || {}, {caption:"<b>"+caption+"</b>"}, modalopt || {});
		var jm = mopt.jqModal, self = this,
		classes = $.jgrid.styleUI[(mopt.styleUI || $.jgrid.defaults.styleUI || 'jQueryUI')].modal,
		common = $.jgrid.styleUI[(mopt.styleUI || $.jgrid.defaults.styleUI || 'jQueryUI')].common;
		if(!mopt.overlayClass) {
			mopt.overlayClass = common.overlay;
		}
		if($.fn.jqm && !jm) { jm = false; }
		// in case there is no jqModal
		var buttstr ="", i;
		if(mopt.buttons.length > 0) {
			for(i=0;i<mopt.buttons.length;i++) {
				if(mopt.buttons[i].id === undefined) { mopt.buttons[i].id = "info_button_"+i; }
				buttstr += "<a id='"+mopt.buttons[i].id+"' class='fm-button " + common.button+"'>"+mopt.buttons[i].text+"</a>";
			}
		}
		var dh = isNaN(mopt.dataheight) ? mopt.dataheight : mopt.dataheight+"px",
		cn = "text-align:"+mopt.align+";";
		var cnt = "<div id='info_id'>";
		cnt += "<div id='infocnt' class='"+classes.body+"' style='margin:0px;padding-bottom:1em;width:100%;overflow:auto;position:relative;height:"+dh+";"+cn+"'>"+content+"</div>";
		cnt += c_b ? "<div class='" + classes.footer + "' style='text-align:"+mopt.buttonalign+";padding-bottom:0.8em;padding-top:0.5em;background-image: none;border-width: 1px 0 0 0;'><a id='closedialog' class='fm-button " + common.button + "'>"+c_b+"</a>"+buttstr+"</div>" :
			buttstr !== ""  ? "<div class='" + classes.footer + "' style='text-align:"+mopt.buttonalign+";padding-bottom:0.8em;padding-top:0.5em;background-image: none;border-width: 1px 0 0 0;'>"+buttstr+"</div>" : "";
		cnt += "</div>";

		try {
			if($("#info_dialog").attr("aria-hidden") === "false") {
				$.jgrid.hideModal("#info_dialog",{jqm:jm});
			}
			$("#info_dialog").remove();
		} catch (e){}
		var fs =  $('.ui-jqgrid').css('font-size') || '11px';
		$.jgrid.createModal({
			themodal:'info_dialog',
			modalhead:'info_head',
			modalcontent:'info_content',
			scrollelm: 'infocnt'},
			cnt,
			mopt,
			'','',true, 
			{ "font-size":fs}
		);
		// attach onclick after inserting into the dom
		if(buttstr) {
			$.each(mopt.buttons,function(i){
				$("#"+$.jgrid.jqID(this.id),"#info_id").on('click',function(){mopt.buttons[i].onClick.call($("#info_dialog")); return false;});
			});
		}
		$("#closedialog", "#info_id").on('click',function(){
			self.hideModal("#info_dialog",{
				jqm:jm,
				onClose: $("#info_dialog").data("onClose") || mopt.onClose,
				gb: $("#info_dialog").data("gbox") || mopt.gbox
			});
			return false;
		});
		$(".fm-button","#info_dialog").hover(
			function(){$(this).addClass(common.hover);},
			function(){$(this).removeClass(common.hover);}
		);
		if($.jgrid.isFunction(mopt.beforeOpen) ) { mopt.beforeOpen(); }
		$.jgrid.viewModal("#info_dialog",{
			onHide: function(h) {
				h.w.hide().remove();
				if(h.o) { h.o.remove(); }
			},
			modal :mopt.modal,
			jqm:jm,
			overlay : mopt.overlay,
			overlayClass : mopt.overlayClass
		});
		if($.jgrid.isFunction(mopt.afterOpen) ) { mopt.afterOpen(); }
		try{ $("#info_dialog").focus();} catch (m){}
	},
	bindEv: function  (el, opt) {
		var $t = this;
		if($.jgrid.isFunction(opt.dataInit)) {
			opt.dataInit.call($t,el,opt);
		}
		if(opt.dataEvents) {
			$.each(opt.dataEvents, function() {
				var tfn = this.fn;
				if (this.data !== undefined) {
					$(el).on(this.type, this.data, function(ev) {tfn.call(this, ev, opt);});
				} else {
					$(el).on(this.type, function(ev){ tfn.call(this, ev, opt);} );
				}
			});
		}
	},
// Form Functions
	createEl : function(eltype,options,vl,autowidth, ajaxso) {
		var elem = "", $t = this;
		function setAttributes(elm, atr, exl ) {
			var exclude = ['dataInit','dataEvents','dataUrl', 'buildSelect','sopt', 'searchhidden', 'defaultValue', 'attr', 'custom_element', 'custom_value', 'oper'];
			exclude = exclude.concat(['cacheUrlData','delimiter','separator']);
			if(exl !== undefined && Array.isArray(exl)) {
				$.merge(exclude, exl);
			}
			$.each(atr, function(key, value){
				if($.inArray(key, exclude) === -1) {
					$(elm).attr(key,value);
				}
			});
			if(!atr.hasOwnProperty('id')) {
				$(elm).attr('id', $.jgrid.randId());
			}
		}
		switch (eltype)
		{
			case "textarea" :
				elem = document.createElement("textarea");
				if(autowidth) {
					if(!options.cols) { $(elem).css({width:"98%"});}
				} else if (!options.cols) { options.cols = 20; }
				if(!options.rows) { options.rows = 2; }
				if(vl==='&nbsp;' || vl==='&#160;' || (vl.length===1 && vl.charCodeAt(0)===160)) {vl="";}
				elem.value = vl;
				$(elem).attr({"role":"textbox","multiline":"true"});
				setAttributes(elem, options);
			break;
			case "checkbox" : //what code for simple checkbox
				elem = document.createElement("input");
				elem.type = "checkbox";
				if( !options.value ) {
					var vl1 = (vl+"").toLowerCase();
					if(vl1.search(/(false|f|0|no|n|off|undefined)/i)<0 && vl1!=="") {
						elem.checked=true;
						elem.defaultChecked=true;
						elem.value = vl;
					} else {
						elem.value = "on";
					}
					$(elem).attr("offval","off");
				} else {
					var cbval = options.value.split(":");
					if(vl === cbval[0]) {
						elem.checked=true;
						elem.defaultChecked=true;
					}
					elem.value = cbval[0];
					$(elem).attr("offval",cbval[1]);
				}
				$(elem).attr("role","checkbox");
				setAttributes(elem, options, ['value']);
			break;
			case "select" :
				elem = document.createElement("select");
				elem.setAttribute("role","listbox");
				var msl, ovm = [];
				if(options.multiple===true) {
					msl = true;
					elem.multiple="multiple";
					$(elem).attr("aria-multiselectable","true");
				} else { msl = false; }
				if(options.dataUrl != null) {
					var rowid = null, postData = options.postData || ajaxso.postData;
					try {
						rowid = options.rowId;
					} catch(e) {}

					if ($t.p && $t.p.idPrefix) {
						rowid = $.jgrid.stripPref($t.p.idPrefix, rowid);
					}
					$.ajax($.extend({
						url: $.jgrid.isFunction(options.dataUrl) ? options.dataUrl.call($t, rowid, vl, String(options.name)) : options.dataUrl,
						type : "GET",
						dataType: "html",
						data: $.jgrid.isFunction(postData) ? postData.call($t, rowid, vl, String(options.name)) : postData,
						context: {elem:elem, options:options, vl:vl},
						success: function(data){
							var ovm = [], elem = this.elem, vl = this.vl,
							options = $.extend({},this.options),
							msl = options.multiple===true,
							cU = options.cacheUrlData === true,
							oV ='', txt, mss =[],
							a = $.jgrid.isFunction(options.buildSelect) ? options.buildSelect.call($t,data) : data;
							if(typeof a === 'string') {
								a = $( $.jgrid.trim( a ) ).html();
							}
							if(a) {
								$(elem).append(a);
								setAttributes(elem, options, postData ? ['postData'] : undefined );
								if(options.size === undefined) { options.size =  msl ? 3 : 1;}
								if(msl) {
									var multiseparator = options.multiseparator === undefined ? ",": options.multiseparator;
									ovm = vl.split(multiseparator);									
									ovm = $.map(ovm,function(n){return $.jgrid.trim(n);});
								} else {
									ovm[0] = $.jgrid.trim(vl);
								}
								//$(elem).attr(options);
								//setTimeout(function(){
								$("option",elem).each(function(i){
									txt = $(this).text();
									vl = $(this).val();
									if(cU) {
										oV += (i!== 0 ? ";": "")+ vl+":"+txt; 
									}
									//if(i===0) { this.selected = ""; }
									// fix IE8/IE7 problem with selecting of the first item on multiple=true
									if (i === 0 && elem.multiple) { this.selected = false; }
									$(this).attr("role","option");
									if($.inArray($.jgrid.trim(txt),ovm) > -1 || $.inArray($.jgrid.trim(vl),ovm) > -1 ) {
										this.selected= "selected";
										mss.push(vl);
									}
								});
								if( options.hasOwnProperty('checkUpdate') ) {
									if (options.checkUpdate) {
										$t.p.savedData[options.name] = mss.join(",");
									}
								}
								if(cU) {
									if(options.oper === 'edit') {
										$($t).jqGrid('setColProp',options.name,{ editoptions: {buildSelect: null, dataUrl : null, value : oV} });
									} else if(options.oper === 'search') {
										$($t).jqGrid('setColProp',options.name,{ searchoptions: {dataUrl : null, value : oV} });
									} else if(options.oper ==='filter') {
										if($("#fbox_"+$t.p.id)[0].p) {
											var cols = $("#fbox_"+$t.p.id)[0].p.columns, nm;
											$.each(cols,function(i) {
												nm  =  this.index || this.name;
												if(options.name === nm) {
													this.searchoptions.dataUrl = null;
													this.searchoptions.value = oV;
													return false;
												}
											});
										}
									}
								}
								$($t).triggerHandler("jqGridAddEditAfterSelectUrlComplete", [elem]);
								//},0);
							}
						}
					},ajaxso || {}));
				} else if(options.value) {
					var i;
					if(options.size === undefined) {
						options.size = msl ? 3 : 1;
					}
					if(msl) {
						ovm = vl.split(",");
						ovm = $.map(ovm,function(n){return $.jgrid.trim(n);});
					}
					if(typeof options.value === 'function') { 
						options.value = options.value.call($t, vl, options); 
					}
					var so,sv, ov, oSv, key, value,
					sep = options.separator === undefined ? ":" : options.separator,
					delim = options.delimiter === undefined ? ";" : options.delimiter;
					if(typeof options.value === 'string') {
						so = options.value.split(delim);
						for(i=0; i<so.length;i++){
							sv = so[i].split(sep);
							if(sv.length > 2 ) {
								sv[1] = $.map(sv,function(n,ii){if(ii>0) { return n;} }).join(sep);
							}
							ov = document.createElement("option");
							ov.setAttribute("role","option");
							ov.value = sv[0]; 
							ov.innerHTML = sv[1];
							if (sv[1].length == 0) {
								ov.setAttribute("aria-label","none");
							}	
							elem.appendChild(ov);
							if (!msl &&  
									($.jgrid.trim(sv[0]) === $.jgrid.trim(vl) || 
									$.jgrid.trim(sv[1]) === $.jgrid.trim(vl))) {

								ov.selected ="selected"; 
							}
							if (msl && ($.inArray($.jgrid.trim(sv[1]), ovm)>-1 || $.inArray($.jgrid.trim(sv[0]), ovm)>-1)) {ov.selected ="selected";}
						}
					} else if (Object.prototype.toString.call(options.value) === "[object Array]") {
						oSv = options.value;
						// array of arrays [[Key, Value], [Key, Value], ...]
						for (i=0; i<oSv.length; i++) {
							if(oSv[i].length === 2) {
								key = oSv[i][0]; 
								value = oSv[i][1];
								ov = document.createElement("option");
								ov.setAttribute("role","option");
								ov.value = key; ov.innerHTML = value;
								if (value.length == 0) {
									ov.setAttribute("aria-label","none");
								}
								elem.appendChild(ov);
								if (!msl &&  ( $.jgrid.trim(key) === $.jgrid.trim(vl) || $.jgrid.trim(value) === $.jgrid.trim(vl)) ) { ov.selected ="selected"; }
								if (msl && ($.inArray($.jgrid.trim(value),ovm)>-1 || $.inArray($.jgrid.trim(key),ovm)>-1)) { ov.selected ="selected"; }
							}
						}
					} else if (typeof options.value === 'object') {
						oSv = options.value;
						for (key in oSv) {
							if (oSv.hasOwnProperty(key ) ){
								ov = document.createElement("option");
								ov.setAttribute("role","option");
								ov.value = key; ov.innerHTML = oSv[key];
								if (oSv[key].length == 0) {
									ov.setAttribute("aria-label","none");
								}
								elem.appendChild(ov);
								if (!msl &&  ( $.jgrid.trim(key) === $.jgrid.trim(vl) || $.jgrid.trim(oSv[key]) === $.jgrid.trim(vl)) ) { ov.selected ="selected"; }
								if (msl && ($.inArray($.jgrid.trim(oSv[key]),ovm)>-1 || $.inArray($.jgrid.trim(key),ovm)>-1)) { ov.selected ="selected"; }
							}
						}
					}
					setAttributes(elem, options, ['value']);
				} else {
					setAttributes(elem, options );
				}
			break;
			case "image" :
			case "file" :
				elem = document.createElement("input");
				elem.type = eltype;
				setAttributes(elem, options);
				break;
			case "custom" :
				elem = document.createElement("span");
				try {
					if($.jgrid.isFunction(options.custom_element)) {
						var celm = options.custom_element.call($t,vl,options);
						if(celm) {
							celm = $(celm).addClass("customelement").attr({id:options.id,name:options.name});
							$(elem).empty().append(celm);
						} else {
							throw "e2";
						}
					} else {
						throw "e1";
					}
				} catch (e) {
					var errors = $.jgrid.getRegional($t, 'errors'),
						edit =$.jgrid.getRegional($t, 'edit');

					if (e==="e1") { $.jgrid.info_dialog(errors.errcap,"function 'custom_element' "+edit.msg.nodefined, edit.bClose, {styleUI : $t.p.styleUI });}
					else if (e==="e2") { $.jgrid.info_dialog(errors.errcap,"function 'custom_element' "+edit.msg.novalue,edit.bClose, {styleUI : $t.p.styleUI });}
					else { $.jgrid.info_dialog(errors.errcap,typeof e==="string"?e:e.message,edit.bClose, {styleUI : $t.p.styleUI }); }
				}
			break;
			default :
				var role;
				if(eltype==="button") { role = "button"; }
				else { role = "textbox"; } // ???
				elem = document.createElement("input");
				elem.type = eltype;
				elem.value = vl;
				if(eltype !== "button"){
					if(autowidth) {
						if(!options.size) { $(elem).css({width:"96%"}); }
					} else if (!options.size) { options.size = 20; }
				}
				$(elem).attr("role",role);
				setAttributes(elem, options);
		}
		return elem;
	},
// Date Validation Javascript
	checkDate : function (format, date) {
		var daysInFebruary = function(year){
		// February has 29 days in any year evenly divisible by four,
		// EXCEPT for centurial years which are not also divisible by 400.
			return (((year % 4 === 0) && ( year % 100 !== 0 || (year % 400 === 0))) ? 29 : 28 );
		},
		tsp = {}, sep;
		format = format.toLowerCase();
		//we search for /,-,. for the date separator
		if(format.indexOf("/") !== -1) {
			sep = "/";
		} else if(format.indexOf("-") !== -1) {
			sep = "-";
		} else if(format.indexOf(".") !== -1) {
			sep = ".";
		} else {
			sep = "/";
		}
		format = format.split(sep);
		date = date.split(sep);
		if (date.length !== 3) { return false; }
		var j=-1,yln, dln=-1, mln=-1, i;
		for(i=0;i<format.length;i++){
			var dv =  isNaN(date[i]) ? 0 : parseInt(date[i],10);
			tsp[format[i]] = dv;
			yln = format[i];
			if(yln.indexOf("y") !== -1) { j=i; }
			if(yln.indexOf("m") !== -1) { mln=i; }
			if(yln.indexOf("d") !== -1) { dln=i; }
		}
		if (format[j] === "y" || format[j] === "yyyy") {
			yln=4;
		} else if(format[j] ==="yy"){
			yln = 2;
		} else {
			yln = -1;
		}
		var daysInMonth = [0,31,29,31,30,31,30,31,31,30,31,30,31],
		strDate;
		if (j === -1) {
			return false;
		}
			strDate = tsp[format[j]].toString();
			if(yln === 2 && strDate.length === 1) {yln = 1;}
			if (strDate.length !== yln || (tsp[format[j]]===0 && date[j]!=="00")){
				return false;
			}
		if(mln === -1) {
			return false;
		}
			strDate = tsp[format[mln]].toString();
			if (strDate.length<1 || tsp[format[mln]]<1 || tsp[format[mln]]>12){
				return false;
			}
		if(dln === -1) {
			return false;
		}
			strDate = tsp[format[dln]].toString();
			if (strDate.length<1 || tsp[format[dln]]<1 || tsp[format[dln]]>31 || (tsp[format[mln]]===2 && tsp[format[dln]]>daysInFebruary(tsp[format[j]])) || tsp[format[dln]] > daysInMonth[tsp[format[mln]]]){
				return false;
			}
		return true;
	},
	isEmpty : function(val)
	{
		if (val === undefined || val.match(/^\s+$/) || val === "")	{
			return true;
		}
		return false;
	},
	checkTime : function(time){
	// checks only hh:ss (and optional am/pm)
		var re = /^(\d{1,2}):(\d{2})([apAP][Mm])?$/,regs;
		if(!$.jgrid.isEmpty(time))
		{
			regs = time.match(re);
			if(regs) {
				if(regs[3]) {
					if(regs[1] < 1 || regs[1] > 12) { return false; }
				} else {
					if(regs[1] > 23) { return false; }
				}
				if(regs[2] > 59) {
					return false;
				}
			} else {
				return false;
			}
		}
		return true;
	},
	checkValues : function(val, valref, customobject, nam) {
		var edtrul,i, nm, dft, len, g = this, cm = g.p.colModel,
		msg = $.jgrid.getRegional(this, 'edit.msg'), fmtdate,
		isNum = function(vn) {
			vn = vn.toString();
			if(vn.length >= 2) {
				var chkv, dot;
				if(vn[0] === "-" ) {
					chkv = vn[1];
					if(vn[2]) { dot = vn[2];}
				} else {
					chkv = vn[0];
					if(vn[1]) { dot = vn[1];}
				}
				if( chkv === "0"  && dot !== ".") {
					return false; //octal
				} 
			}
			return typeof Number(vn) === 'number' && isFinite(vn); 
		};

		if(customobject === undefined) {
			if(typeof valref==='string'){
				for( i =0, len=cm.length;i<len; i++){
					if(cm[i].name===valref) {
						edtrul = cm[i].editrules;
						valref = i;
						if(cm[i].formoptions != null) { nm = cm[i].formoptions.label; }
						break;
					}
				}
			} else if(valref >=0) {
				edtrul = cm[valref].editrules;
			}
		} else {
			edtrul = customobject;
			nm = nam===undefined ? "_" : nam;
		}
		if(edtrul) {
			if(!nm) { nm = g.p.colNames != null ? g.p.colNames[valref] : cm[valref].label; }
			if(edtrul.required === true) {
				if( $.jgrid.isEmpty(val) )  { return [false,nm+": "+msg.required,""]; }
			}
			// force required
			var rqfield = edtrul.required === false ? false : true;
			if(edtrul.number === true) {
				if( !(rqfield === false && $.jgrid.isEmpty(val)) ) {
					if(!isNum(val)) { return [false,nm+": "+msg.number,""]; }
				}
			}
			if(edtrul.minValue !== undefined && !isNaN(edtrul.minValue)) {
				if ($.jgrid.floatNum(val) < $.jgrid.floatNum(edtrul.minValue) ) { return [false,nm+": "+msg.minValue+" "+edtrul.minValue,""];}
			}
			if(edtrul.maxValue !== undefined && !isNaN(edtrul.maxValue)) {
				if ($.jgrid.floatNum(val) > $.jgrid.floatNum(edtrul.maxValue) ) { return [false,nm+": "+msg.maxValue+" "+edtrul.maxValue,""];}
			}
			var filter;
			if(edtrul.email === true) {
				if( !(rqfield === false && $.jgrid.isEmpty(val)) ) {
				// taken from $ Validate plugin
					filter = /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i;
					if(!filter.test(val)) {return [false,nm+": "+msg.email,""];}
				}
			}
			if(edtrul.integer === true) {
				if( !(rqfield === false && $.jgrid.isEmpty(val)) ) {
					if(!isNum(val)) { return [false,nm+": "+msg.integer,""]; }
					if ((val % 1 !== 0) || (val.indexOf('.') !== -1)) { return [false,nm+": "+msg.integer,""];}
				}
			}
			if(edtrul.date === true) {
				if( !(rqfield === false && $.jgrid.isEmpty(val)) ) {
					if(cm[valref].formatoptions && cm[valref].formatoptions.newformat) {
						dft = cm[valref].formatoptions.newformat;
						fmtdate = $.jgrid.getRegional(g, 'formatter.date.masks');
						if(fmtdate && fmtdate.hasOwnProperty(dft) ) {
							dft = fmtdate[dft];
						}
					} else {
						dft = cm[valref].datefmt || "Y-m-d";
					}
					if(!$.jgrid.checkDate (dft, val)) { return [false,nm+": "+msg.date+" - "+dft,""]; }
				}
			}
			if(edtrul.time === true) {
				if( !(rqfield === false && $.jgrid.isEmpty(val)) ) {
					if(!$.jgrid.checkTime (val)) { return [false,nm+": "+msg.date+" - hh:mm (am/pm)",""]; }
				}
			}
			if(edtrul.url === true) {
				if( !(rqfield === false && $.jgrid.isEmpty(val)) ) {
					filter = /^(((https?)|(ftp)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&#;`~=%!]*)(\.\w{2,})?)*\/?)/i;
					if(!filter.test(val)) {return [false,nm+": "+msg.url,""];}
				}
			}
			if(edtrul.custom === true) {
				if( !(rqfield === false && $.jgrid.isEmpty(val)) ) {
					if($.jgrid.isFunction(edtrul.custom_func)) {
						var ret = edtrul.custom_func.call(g,val,nm,valref);
						return Array.isArray(ret) ? ret : [false,msg.customarray,""];
					}
					return [false,msg.customfcheck,""];
				}
			}
		}
		return [true,"",""];
	},
	validateForm : function(form) {
		var	f, field, formvalid = true;

		for (f = 0; f < form.elements.length; f++) {
			field = form.elements[f];
			// ignore buttons, fieldsets, etc.
			if (field.nodeName !== "INPUT" && field.nodeName !== "TEXTAREA" && field.nodeName !== "SELECT") continue;
			// is native browser validation available?
			if (typeof field.willValidate !== "undefined") {
				// native validation available
				if (field.nodeName === "INPUT" && field.type !== field.getAttribute("type")) {
					// input type not supported! Use legacy JavaScript validation
					field.setCustomValidity($.jgrid.LegacyValidation(field) ? "" : "error");
				}
				// native browser check display error
				field.reportValidity();
			} else {
				// native validation not available
				field.validity = field.validity || {};
				field.validity.valid = $.jgrid.LegacyValidation(field);
			}

			if (field.validity.valid) {
				// remove error styles and messages
			} else {
				// style field, show error, etc.
				// form is invalid
				//var message = field.validationMessage;
				formvalid = false;
				break;
			}
		}
		return formvalid;
	},
	// basic legacy validation checking
	LegacyValidation : function (field) {
	var	valid = true,
		val = field.value,
		type = field.getAttribute("type"),
		chkbox = (type === "checkbox" || type === "radio"),
		required = field.getAttribute("required"),
		minlength = field.getAttribute("minlength"),
		maxlength = field.getAttribute("maxlength"),
		pattern = field.getAttribute("pattern");

		// disabled fields should not be validated
		if ( field.disabled ) { 
			return valid;
		}
		// value required?
		valid = valid && (!required ||
			(chkbox && field.checked) ||
			(!chkbox && val !== "")
		);

		// minlength or maxlength set?
		valid = valid && (chkbox || (
			(!minlength || val.length >= minlength) &&
			(!maxlength || val.length <= maxlength)
		));

		// test pattern
		if (valid && pattern) {
			pattern = new RegExp(pattern);
			valid = pattern.test(val);
		}

		return valid;
	},
	buildButtons : function ( buttons, source, commonstyle) {
		var icon, str;
		$.each(buttons, function(i,n) {
			// side, position, text, icon, click, id, index
			if(!n.id) {
				n.id = $.jgrid.randId();
			}
			if(!n.position) {
				n.position = 'last';
			}
			if(!n.side) {
				n.side = 'left';
			}
			icon = n.icon ? " fm-button-icon-" + n.side + "'><span class='" + commonstyle.icon_base + " " + n.icon + "'></span>" : "'>";
			str = "<a  data-index='"+i+"' id='" + n.id + "' class='fm-button " + commonstyle.button + icon + n.text+"</a>";
			if(n.position === "last" ) {
				source = source + str;
			} else {
				source = str + source;
			}
		});
		return source;
	},
	setSelNavIndex : function ($t,  selelem ) {
		var cels = $(".ui-pg-button",$t.p.pager);
		$.each(cels, function(i,n) {
			if(selelem===n) {
				$t.p.navIndex = i;
				return false;
			}
		});
		$(selelem).attr("tabindex","0");		
	},
	getFirstVisibleCol : function( $t ) {
		var ret = -1;
		for(var i = 0;i<$t.p.colModel.length;i++) {
			if($t.p.colModel[i].hidden !== true ) {
				ret = i;
				break;
			}
		}
		return ret;
	},
	getLastVisibleCol : function( $t ) {
		var ret = -1;
		for(var i = $t.p.colModel.length - 1; i>=0; i--) {
			if($t.p.colModel[i].hidden !== true ) {
				ret = i;
				break;
			}	
		}
		return ret;
	},
	/* post data to server get or post without ajax */
	postForm : function (path, params, method) {
		method = method || 'post';
		
	    var form = document.createElement('form');
		form.setAttribute('method', method);
		form.setAttribute('action', path);
		for (var key in params) {
			if (params.hasOwnProperty(key)) {
				var hiddenField = document.createElement('input');
				hiddenField.setAttribute('type', 'hidden');
				hiddenField.setAttribute('name', key);
				hiddenField.setAttribute('value', params[key]);

				form.appendChild(hiddenField);
			}
		}

		document.body.appendChild(form);
		form.submit();
		form.parentNode.removeChild(form);
	}	
});
//module end
}));
js/grid.inlinedit.js000064400000066433151676727230010455 0ustar00/*jshint eqeqeq:false, eqnull:true, devel:true */
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"./grid.base",
			"./grid.common"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {
"use strict";
//module begin
$.jgrid.inlineEdit = $.jgrid.inlineEdit || {};
$.jgrid.extend({
//Editing
	editRow : function(rowid,keys,oneditfunc,successfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc) {
		// Compatible mode old versions
		var o={}, args = $.makeArray(arguments).slice(1), $t = this[0];

		if( $.jgrid.type(args[0]) === "object" ) {
			o = args[0];
		} else {
			if (keys !== undefined) { o.keys = keys; }
			if ($.jgrid.isFunction(oneditfunc)) { o.oneditfunc = oneditfunc; }
			if ($.jgrid.isFunction(successfunc)) { o.successfunc = successfunc; }
			if (url !== undefined) { o.url = url; }
			if (extraparam !== undefined) { o.extraparam = extraparam; }
			if ($.jgrid.isFunction(aftersavefunc)) { o.aftersavefunc = aftersavefunc; }
			if ($.jgrid.isFunction(errorfunc)) { o.errorfunc = errorfunc; }
			if ($.jgrid.isFunction(afterrestorefunc)) { o.afterrestorefunc = afterrestorefunc; }
			// last two not as param, but as object (sorry)
			//if (restoreAfterError !== undefined) { o.restoreAfterError = restoreAfterError; }
			//if (mtype !== undefined) { o.mtype = mtype || "POST"; }
		}
		o = $.extend(true, {
			keys : false,
			keyevent : "keydown",
			onEnter : null,
			onEscape : null,
			oneditfunc: null,
			successfunc: null,
			url: null,
			extraparam: {},
			aftersavefunc: null,
			errorfunc: null,
			afterrestorefunc: null,
			restoreAfterError: true,
			mtype: "POST",
			focusField : true,
			saveui : "enable",
			savetext : $.jgrid.getRegional($t,'defaults.savetext')
		}, $.jgrid.inlineEdit, o );

		// End compatible
		return this.each(function(){
			var nm, tmp, editable, cnt=0, focus=null, svr={}, ind,cm, bfer,
			inpclass = $(this).jqGrid('getStyleUI',$t.p.styleUI+".inlinedit",'inputClass', true),
			selclass = $(this).jqGrid('getStyleUI',$t.p.styleUI+".inlinedit",'selectClass', true);
			if (!$t.grid ) { return; }
			ind = $($t).jqGrid("getInd",rowid,true);
			if( ind === false ) {return;}
			$t.p.beforeAction = true;
			bfer = $.jgrid.isFunction( o.beforeEditRow ) ? o.beforeEditRow.call($t,o, rowid) :  undefined;
			if( bfer === undefined ) {
				bfer = true;
			}
			if(!bfer) {
				$t.p.beforeAction = false;
				return;
			}
			editable = $(ind).attr("editable") || "0";
			if (editable === "0" && !$(ind).hasClass("not-editable-row")) {
				cm = $t.p.colModel;
				$(ind).children('td[role="gridcell"]').each( function(i) {
					nm = cm[i].name;
					var treeg = $t.p.treeGrid===true && nm === $t.p.ExpandColumn;
					if(treeg) { tmp = $(this).find("span").first().html();}
					else {
						try {
							tmp = $.unformat.call($t,this,{rowId:rowid, colModel:cm[i]},i);
						} catch (_) {
							tmp =  ( cm[i].edittype && cm[i].edittype === 'textarea' ) ? $(this).text() : $(this).html();
						}
					}
					if ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn' && nm !== 'sc') {
						if($t.p.autoencode) { tmp = $.jgrid.htmlDecode(tmp); }
						//svr[nm]=tmp;
						if(cm[i].editable===true) {
							svr[nm]=tmp;
							if(focus===null) { focus = i; }
							if (treeg) { $(this).find("span").first().html(""); }
							else { $(this).html(""); }
							var opt = $.extend({},cm[i].editoptions || {},{id:rowid+"_"+nm,name:nm,rowId:rowid, oper:'edit', module : 'inline'});
							if(!cm[i].edittype) { cm[i].edittype = "text"; }
							if(tmp === "&nbsp;" || tmp === "&#160;" || (tmp !== null && tmp.length===1 && tmp.charCodeAt(0)===160) ) {tmp='';}
							var elc = $.jgrid.createEl.call($t,cm[i].edittype,opt,tmp,true,$.extend({},$.jgrid.ajaxOptions,$t.p.ajaxSelectOptions || {}));
							$(elc).addClass("editable inline-edit-cell");
							if( $.inArray(cm[i].edittype, ['text','textarea','password']) > -1) {
								$(elc).addClass( inpclass );
							} else if (cm[i].edittype === 'select') {
								$(elc).addClass( selclass );
							}
							if(treeg) { $(this).find("span").first().append(elc); }
							else { $(this).append(elc); }
							$.jgrid.bindEv.call($t, elc, opt);
							//Again IE
							if(cm[i].edittype === "select" && cm[i].editoptions!==undefined && cm[i].editoptions.multiple===true  && cm[i].editoptions.dataUrl===undefined && $.jgrid.msie()) {
								$(elc).width($(elc).width());
							}
							cnt++;
						}
					}
				});
				if(cnt > 0) {
					svr.id = rowid; $t.p.savedRow.push(svr);
					$(ind).attr("editable","1");
					if(o.focusField ) {
						if(typeof o.focusField === 'number' && parseInt(o.focusField,10) <= cm.length) {
							focus = o.focusField;
						}
						setTimeout(function(){
							var fe = $("td", ind).eq( focus ).find(":input:visible").not(":disabled");
							if(fe.length > 0) {
								fe.focus();
							}
						},0);
					}
					if(o.keys===true) {
						$(ind).on( o.keyevent ,function(e) {
							if (e.keyCode === 27) {
								if($.jgrid.isFunction( o.onEscape )) {
									o.onEscape.call($t, rowid, o, e);
									return true;
								}
								$($t).jqGrid("restoreRow",rowid, o);
								if($t.p.inlineNav) {
									try {
										$($t).jqGrid('showAddEditButtons');
									} catch (eer1) {}
								}
								return false;
							}
							if (e.keyCode === 13) {
								e.preventDefault();
								if($.jgrid.isFunction( o.onEnter )) {
									o.onEnter.call($t, rowid, o, e);
									return true;
								}
								if(e.target.tagName === 'TEXTAREA') { return true; }
								if( $($t).jqGrid("saveRow", rowid, o ) ) {
									if($t.p.inlineNav) {
										try {
											$($t).jqGrid('showAddEditButtons');
										} catch (eer2) {}
									}
								}
								return false;
							}
						});
					}
					$($t).triggerHandler("jqGridInlineEditRow", [rowid, o]);
					if( $.jgrid.isFunction(o.oneditfunc)) { o.oneditfunc.call($t, rowid); }
				}
			}
		});
	},
	saveRow : function(rowid, successfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc) {
		// Compatible mode old versions
		var args = $.makeArray(arguments).slice(1), o = {}, $t = this[0];

		if( $.jgrid.type(args[0]) === "object" ) {
			o = args[0];
		} else {
			if ($.jgrid.isFunction(successfunc)) { o.successfunc = successfunc; }
			if (url !== undefined) { o.url = url; }
			if (extraparam !== undefined) { o.extraparam = extraparam; }
			if ($.jgrid.isFunction(aftersavefunc)) { o.aftersavefunc = aftersavefunc; }
			if ($.jgrid.isFunction(errorfunc)) { o.errorfunc = errorfunc; }
			if ($.jgrid.isFunction(afterrestorefunc)) { o.afterrestorefunc = afterrestorefunc; }
		}
		o = $.extend(true, {
			successfunc: null,
			url: null,
			extraparam: {},
			aftersavefunc: null,
			errorfunc: null,
			afterrestorefunc: null,
			restoreAfterError: true,
			mtype: "POST",
			saveui : "enable",
			savetext : $.jgrid.getRegional($t,'defaults.savetext')
		}, $.jgrid.inlineEdit, o );
		// End compatible

		var success = false, nm, tmp={}, tmp2={}, tmp3= {}, editable, fr, cv, ind, nullIfEmpty=false,
		error = $.jgrid.trim( $($t).jqGrid('getStyleUI', $t.p.styleUI+'.common', 'error', true) );
		if (!$t.grid ) { return success; }
		ind = $($t).jqGrid("getInd",rowid,true);
		if(ind === false) {return success;}
		var errors = $.jgrid.getRegional($t, 'errors'),
		edit =$.jgrid.getRegional($t, 'edit'),
		bfsr = $.jgrid.isFunction( o.beforeSaveRow ) ? o.beforeSaveRow.call($t,o, rowid) :  undefined;
		if( bfsr === undefined ) {
			bfsr = true;
		}
		if(!bfsr) { return; }
		editable = $(ind).attr("editable");
		o.url = o.url || $t.p.editurl;
		if (editable==="1") {
			var cm, index, elem;
			$(ind).children('td[role="gridcell"]').each(function(i) {
				cm = $t.p.colModel[i];
				nm = cm.name;
				elem = "";
				if ( nm !== 'cb' && nm !== 'subgrid' && cm.editable===true && nm !== 'rn'  && nm !== 'sc' && !$(this).hasClass('not-editable-cell')) {
					switch (cm.edittype) {
						case "checkbox":
							var cbv = ["Yes","No"];
							if(cm.editoptions && cm.editoptions.value) {
								cbv = cm.editoptions.value.split(":");
							}
							tmp[nm]=  $("input",this).is(":checked") ? cbv[0] : cbv[1];
							elem = $("input",this);
							break;
						case 'text':
						case 'password':
						case 'textarea':
						case "button" :
							tmp[nm]=$("input, textarea",this).val();
							elem = $("input, textarea",this);
							break;
						case 'select':
							if(!cm.editoptions.multiple) {
								tmp[nm] = $("select option:selected",this).val();
								tmp2[nm] = $("select option:selected", this).text();
							} else {
								var sel = $("select",this), selectedText = [];
								tmp[nm] = $(sel).val();
								if(tmp[nm]) { tmp[nm]= tmp[nm].join(","); } else { tmp[nm] =""; }
								$("select option:selected",this).each(
									function(i,selected){
										selectedText[i] = $(selected).text();
									}
								);
								tmp2[nm] = selectedText.join(",");
							}
							if(cm.formatter) { tmp2={}; }
							elem = $("select",this);
							break;
						case 'custom' :
							try {
								if(cm.editoptions && $.jgrid.isFunction(cm.editoptions.custom_value)) {
									tmp[nm] = cm.editoptions.custom_value.call($t, $(".customelement",this),'get');
									if (tmp[nm] === undefined) { throw "e2"; }
								} else { throw "e1"; }
							} catch (e) {
								if (e==="e1") { $.jgrid.info_dialog(errors.errcap,"function 'custom_value' "+edit.msg.nodefined,edit.bClose, {styleUI : $t.p.styleUI }); }
								else { $.jgrid.info_dialog(errors.errcap,e.message,edit.bClose, {styleUI : $t.p.styleUI }); }
							}
							break;
					}
					cv = $.jgrid.checkValues.call($t,tmp[nm],i);
					if(cv[0] === false) {
						index = i;
						return false;
					}
					if($t.p.autoencode) { tmp[nm] = $.jgrid.htmlEncode(tmp[nm]); }
					if(o.url !== 'clientArray' && cm.editoptions && cm.editoptions.NullIfEmpty === true) {
						if(tmp[nm] === "") {
							tmp3[nm] = 'null';
							nullIfEmpty = true;
						}
					}
				}
			});
			if (cv[0] === false){
				try {
					if( $.jgrid.isFunction($t.p.validationCell) ) {
						$t.p.validationCell.call($t, elem, cv[1], ind.rowIndex, index);
					} else {
						var tr = $($t).jqGrid('getGridRowById', rowid),
							positions = $.jgrid.findPos(tr);
						$.jgrid.info_dialog(errors.errcap,cv[1],edit.bClose,{
							left:positions[0],
							top:positions[1]+$(tr).outerHeight(),
							styleUI : $t.p.styleUI,
							onClose: function(){
								if(index >= 0 ) {
									$("#"+rowid+"_" +$t.p.colModel[index].name).focus();
								}
							}
						});
					}
				} catch (e) {
					alert(cv[1]);
				}
				return success;
			}
			var idname, opers = $t.p.prmNames, oldRowId = rowid;
			if ($t.p.keyName === false) {
				idname = opers.id;
			} else {
				idname = $t.p.keyName;
			}
			if(!$.isEmptyObject(tmp)) {
				tmp[opers.oper] = opers.editoper;
				if (tmp[idname] === undefined || tmp[idname]==="") {
					tmp[idname] = rowid;
				} else if (ind.id !== $t.p.idPrefix + tmp[idname]) {
					// rename rowid
					var oldid = $.jgrid.stripPref($t.p.idPrefix, rowid);
					if ($t.p._index[oldid] !== undefined) {
						$t.p._index[tmp[idname]] = $t.p._index[oldid];
						delete $t.p._index[oldid];
					}
					rowid = $t.p.idPrefix + tmp[idname];
					$(ind).attr("id", rowid);
					if ($t.p.selrow === oldRowId) {
						$t.p.selrow = rowid;
					}
					if (Array.isArray($t.p.selarrrow)) {
						var i = $.inArray(oldRowId, $t.p.selarrrow);
						if (i>=0) {
							$t.p.selarrrow[i] = rowid;
						}
					}
					if ($t.p.multiselect) {
						var newCboxId = "jqg_" + $t.p.id + "_" + rowid;
						$("input.cbox",ind)
							.attr("id", newCboxId)
							.attr("name", newCboxId);
					}
					// TODO: to test the case of frozen columns
				}
				if($t.p.inlineData === undefined) { $t.p.inlineData ={}; }
				tmp = $.extend({},tmp,$t.p.inlineData,o.extraparam);
			}
			if (o.url === 'clientArray') {
				tmp = $.extend({},tmp, tmp2);
				if($t.p.autoencode) {
					$.each(tmp,function(n,v){
						tmp[n] = $.jgrid.htmlDecode(v);
					});
				}
				tmp = $.jgrid.isFunction($t.p.serializeRowData) ? $t.p.serializeRowData.call($t, tmp) : tmp;
				var k, resp = $($t).jqGrid("setRowData",rowid,tmp);
				$(ind).attr("editable","0");
				for(k=0;k<$t.p.savedRow.length;k++) {
					if( String($t.p.savedRow[k].id) === String(oldRowId)) {fr = k; break;}
				}
				$($t).triggerHandler("jqGridInlineAfterSaveRow", [rowid, resp, tmp, o]);
				if( $.jgrid.isFunction(o.aftersavefunc) ) { o.aftersavefunc.call($t, rowid, resp, tmp, o); }
				if(fr >= 0) { $t.p.savedRow.splice(fr,1); }
				success = true;
				$(ind).removeClass("jqgrid-new-row").off("keydown");
			} else if(o.url === 'storage') {
				tmp = $.extend({},tmp, tmp2);
				if($t.p.autoencode) {
					$.each(tmp,function(n,v){
						tmp[n] = $.jgrid.htmlDecode(v);
					});
				}
				tmp = $.jgrid.isFunction($t.p.serializeRowData) ? $t.p.serializeRowData.call($t, tmp) : tmp;
				if($(ind).hasClass("jqgrid-new-row")) {
					$($t).jqGrid('addStorageRecord', tmp)
					.then(function(e){
						if(e.type==="complete") {
							var k, resp = $($t).jqGrid("setRowData",rowid,tmp);
							$(ind).attr("editable","0");
							for(k=0;k<$t.p.savedRow.length;k++) {
								if( String($t.p.savedRow[k].id) === String(oldRowId)) {fr = k; break;}
							}
							$($t).triggerHandler("jqGridInlineAfterSaveRow", [rowid, resp, tmp, o]);
							if( $.jgrid.isFunction(o.aftersavefunc) ) { o.aftersavefunc.call($t, rowid, resp, tmp, o); }
							if(fr >= 0) { $t.p.savedRow.splice(fr,1); }
							success = true;
							$(ind).removeClass("jqgrid-new-row").off("keydown");
							if($t.p.inlineNav===true) {$($t).jqGrid('showAddEditButtons');}
						}
					})
					.catch(function(e) {
						$.jgrid.info_dialog("Error",e.target.error.name + " : "+e.target.error.message,'Close');
					});
			} else {
					$($t).jqGrid('updateStorageRecord', tmp)
					.then(function(e){
						if(e.type==="complete") {
							var k, resp = $($t).jqGrid("setRowData",rowid,tmp);
							$(ind).attr("editable","0");
							for(k=0;k<$t.p.savedRow.length;k++) {
								if( String($t.p.savedRow[k].id) === String(oldRowId)) {fr = k; break;}
							}
							$($t).triggerHandler("jqGridInlineAfterSaveRow", [rowid, resp, tmp, o]);
							if( $.jgrid.isFunction(o.aftersavefunc) ) { o.aftersavefunc.call($t, rowid, resp, tmp, o); }
							if(fr >= 0) { $t.p.savedRow.splice(fr,1); }
							success = true;
							$(ind).off("keydown");
							if($t.p.inlineNav===true) {$($t).jqGrid('showAddEditButtons');}
						}
					})
					.catch(function(e) {
						$.jgrid.info_dialog("Error",e.target.error.name + " : "+e.target.error.message,'Close');
					});			
				}
			} else {
				$($t).jqGrid("progressBar", {method:"show", loadtype : o.saveui, htmlcontent: o.savetext });
				tmp3 = $.extend({},tmp,tmp3);
				tmp3[idname] = $.jgrid.stripPref($t.p.idPrefix, tmp3[idname]);
				$.ajax($.extend({
					url:o.url,
					data: $.jgrid.isFunction($t.p.serializeRowData) ? $t.p.serializeRowData.call($t, tmp3) : tmp3,
					type: o.mtype,
					async : false, //?!?
					success: function(resuly,stat,res){
						$($t).jqGrid("progressBar", {method:"hide", loadtype : o.saveui, htmlcontent: o.savetext});
						if (stat === "success"){
							var ret = true, sucret, k;
							sucret = $($t).triggerHandler("jqGridInlineSuccessSaveRow", [res, rowid, o]);
							if ( !Array.isArray(sucret) ) {sucret = [true, tmp3];}
							if (sucret[0] && $.jgrid.isFunction(o.successfunc)) {sucret = o.successfunc.call($t, res);}
							if( Array.isArray(sucret) ) {
								// expect array - status, data, rowid
								ret = sucret[0];
								tmp = sucret[1] || tmp;
							} else {
								ret = sucret;
							}
							if (ret===true) {
								if($t.p.autoencode) {
									$.each(tmp,function(n,v){
										tmp[n] = $.jgrid.htmlDecode(v);
									});
								}
								if(nullIfEmpty) {
									$.each(tmp,function( n ){
										if(tmp[n] === 'null' ) {
											tmp[n] = '';
										}
									});
								}
								tmp = $.extend({},tmp, tmp2);
								$($t).jqGrid("setRowData",rowid,tmp);
								$(ind).attr("editable","0");
								for(k=0;k<$t.p.savedRow.length;k++) {
									if( String($t.p.savedRow[k].id) === String(rowid)) {fr = k; break;}
								}
								$($t).triggerHandler("jqGridInlineAfterSaveRow", [rowid, res, tmp, o]);
								if( $.jgrid.isFunction(o.aftersavefunc) ) { o.aftersavefunc.call($t, rowid, res, tmp, o); }
								if(fr >= 0) { $t.p.savedRow.splice(fr,1); }
								success = true;
								$(ind).removeClass("jqgrid-new-row").off("keydown");
							} else {
								$($t).triggerHandler("jqGridInlineErrorSaveRow", [rowid, res, stat, null, o]);
								if($.jgrid.isFunction(o.errorfunc) ) {
									o.errorfunc.call($t, rowid, res, stat, null);
								}
								if(o.restoreAfterError === true) {
									$($t).jqGrid("restoreRow",rowid, o);
								}
							}
						}
					},
					error:function(res,stat,err){
						$("#lui_"+$.jgrid.jqID($t.p.id)).hide();
						$($t).triggerHandler("jqGridInlineErrorSaveRow", [rowid, res, stat, err, o]);
						if($.jgrid.isFunction(o.errorfunc) ) {
							o.errorfunc.call($t, rowid, res, stat, err);
						} else {
							var rT = res.responseText || res.statusText;
							try {
								$.jgrid.info_dialog(errors.errcap,'<div class="'+error+'">'+ rT +'</div>', edit.bClose, {buttonalign:'right', styleUI : $t.p.styleUI });
							} catch(e) {
								alert(rT);
							}
						}
						if(o.restoreAfterError === true) {
							$($t).jqGrid("restoreRow",rowid, o);
						}
					}
				}, $.jgrid.ajaxOptions, $t.p.ajaxRowOptions || {}));
			}
		}
		return success;
	},
	restoreRow : function(rowid, afterrestorefunc) {
		// Compatible mode old versions
		var args = $.makeArray(arguments).slice(1), o={};

		if( $.jgrid.type(args[0]) === "object" ) {
			o = args[0];
		} else {
			if ($.jgrid.isFunction(afterrestorefunc)) { o.afterrestorefunc = afterrestorefunc; }
		}
		o = $.extend(true, {}, $.jgrid.inlineEdit, o );

		// End compatible

		return this.each(function(){
			var $t= this, fr=-1, ind, ares={}, k;
			if (!$t.grid ) { return; }
			ind = $($t).jqGrid("getInd",rowid,true);
			if(ind === false) {return;}
			var bfcr = $.jgrid.isFunction( o.beforeCancelRow ) ?	o.beforeCancelRow.call($t, o, rowid) :  undefined;
			if( bfcr === undefined ) {
				bfcr = true;
			}
			if(!bfcr) { return; }
			for(k=0;k<$t.p.savedRow.length;k++) {
				if( String($t.p.savedRow[k].id) === String(rowid)) {fr = k; break;}
			}
			if(fr >= 0) {
				if($.jgrid.isFunction($.fn.datepicker)) {
					try {
						$("input.hasDatepicker","#"+$.jgrid.jqID(ind.id)).datepicker('hide');
					} catch (e) {}
				}
				$.each($t.p.colModel, function(){
					if( $t.p.savedRow[fr].hasOwnProperty(this.name)) {
						ares[this.name] = $t.p.savedRow[fr][this.name];
					}
				});
				$($t).jqGrid("setRowData",rowid,ares);
				$(ind).attr("editable","0").off("keydown");
				$t.p.savedRow.splice(fr,1);
				if($("#"+$.jgrid.jqID(rowid), "#"+$.jgrid.jqID($t.p.id)).hasClass("jqgrid-new-row")){
					setTimeout(function(){
						$($t).jqGrid("delRowData",rowid);
						$($t).jqGrid('showAddEditButtons');
					},0);
				}
			}
			$($t).triggerHandler("jqGridInlineAfterRestoreRow", [rowid]);
			if ($.jgrid.isFunction(o.afterrestorefunc))
			{
				o.afterrestorefunc.call($t, rowid);
			}
		});
	},
	addRow : function ( p ) {
		p = $.extend(true, {
			rowID : null,
			initdata : {},
			position :"first",
			useDefValues : true,
			useFormatter : false,
			addRowParams : {extraparam:{}}
		},p  || {});
		return this.each(function(){
			if (!this.grid ) { return; }
			var $t = this;
			$t.p.beforeAction = true;
			var bfar = $.jgrid.isFunction( p.beforeAddRow ) ?	p.beforeAddRow.call($t,p.addRowParams) :  undefined;
			if( bfar === undefined ) {
				bfar = true;
			}
			if(!bfar) {
				$t.p.beforeAction = false;
				return;
			}
			p.rowID = $.jgrid.isFunction(p.rowID) ? p.rowID.call($t, p) : ( (p.rowID != null) ? p.rowID : $.jgrid.randId());
			if(p.useDefValues === true) {
				$($t.p.colModel).each(function(){
					if( this.editoptions && this.editoptions.defaultValue ) {
						var opt = this.editoptions.defaultValue,
						tmp = $.jgrid.isFunction(opt) ? opt.call($t) : opt;
						p.initdata[this.name] = tmp;
					}
				});
			}
			$($t).jqGrid('addRowData', p.rowID, p.initdata, p.position);
			p.rowID = $t.p.idPrefix + p.rowID;
			$("#"+$.jgrid.jqID(p.rowID), "#"+$.jgrid.jqID($t.p.id)).addClass("jqgrid-new-row");
			if(p.useFormatter) {
				$("#"+$.jgrid.jqID(p.rowID)+" .ui-inline-edit", "#"+$.jgrid.jqID($t.p.id)).click();
			} else {
				var opers = $t.p.prmNames,
				oper = opers.oper;
				p.addRowParams.extraparam[oper] = opers.addoper;
				$($t).jqGrid('editRow', p.rowID, p.addRowParams);
				$($t).jqGrid('setSelection', p.rowID);
			}
		});
	},
	inlineNav : function (elem, o) {
		var $t = this[0],
		regional =  $.jgrid.getRegional($t, 'nav'),
		icons = $.jgrid.styleUI[$t.p.styleUI].inlinedit;
		o = $.extend(true,{
			edit: true,
			editicon: icons.icon_edit_nav,
			add: true,
			addicon:icons.icon_add_nav,
			save: true,
			saveicon: icons.icon_save_nav,
			cancel: true,
			cancelicon: icons.icon_cancel_nav,
			addParams : {addRowParams: {extraparam: {}}},
			editParams : {},
			restoreAfterSelect : true,
			saveAfterSelect : false
		}, regional, o ||{});
		return this.each(function(){
			if (!this.grid  || this.p.inlineNav) { return; }
			var gID = $.jgrid.jqID($t.p.id),
			disabled = $.jgrid.trim( $($t).jqGrid('getStyleUI', $t.p.styleUI+'.common', 'disabled', true) );
			// check to see if navgrid is started, if not call it with all false parameters.
			if(!$t.p.navGrid) {
				$($t).jqGrid('navGrid',elem, {refresh:false, edit: false, add: false, del: false, search: false, view: false});
			}
			if(!$($t).data('inlineNav')) {
				$($t).data('inlineNav',o);
			}
			if($t.p.force_regional) {
				o = $.extend(o, regional);
			}

			$t.p.inlineNav = true;
			// detect the formatactions column
			if(o.addParams.useFormatter === true) {
				var cm = $t.p.colModel,i;
				for (i = 0; i<cm.length; i++) {
					if(cm[i].formatter && cm[i].formatter === "actions" ) {
						if(cm[i].formatoptions) {
							var defaults =  {
								keys:false,
								onEdit : null,
								onSuccess: null,
								afterSave:null,
								onError: null,
								afterRestore: null,
								extraparam: {},
								url: null
							},
							ap = $.extend( defaults, cm[i].formatoptions );
							o.addParams.addRowParams = {
								"keys" : ap.keys,
								"oneditfunc" : ap.onEdit,
								"successfunc" : ap.onSuccess,
								"url" : ap.url,
								"extraparam" : ap.extraparam,
								"aftersavefunc" : ap.afterSave,
								"errorfunc": ap.onError,
								"afterrestorefunc" : ap.afterRestore
							};
						}
						break;
					}
				}
			}
			if(o.add) {
				$($t).jqGrid('navButtonAdd', elem,{
					caption : o.addtext,
					title : o.addtitle,
					buttonicon : o.addicon,
					id : $t.p.id+"_iladd",
					internal : true,
					onClickButton : function () {
						if($t.p.beforeAction === undefined) {
							$t.p.beforeAction = true;
						}
						$($t).jqGrid('addRow', o.addParams);
						if(!o.addParams.useFormatter && $t.p.beforeAction) {
							$("#"+gID+"_ilsave").removeClass( disabled );
							$("#"+gID+"_ilcancel").removeClass( disabled );
							$("#"+gID+"_iladd").addClass( disabled );
							$("#"+gID+"_iledit").addClass( disabled );
						}
					}
				});
			}
			if(o.edit) {
				$($t).jqGrid('navButtonAdd', elem,{
					caption : o.edittext,
					title : o.edittitle,
					buttonicon : o.editicon,
					id : $t.p.id+"_iledit",
					internal : true,
					onClickButton : function () {
						var sr = $($t).jqGrid('getGridParam','selrow');
						if(sr) {
							if($t.p.beforeAction === undefined) {
								$t.p.beforeAction = true;
							}
							$($t).jqGrid('editRow', sr, o.editParams);
							if($t.p.beforeAction) {
								$("#"+gID+"_ilsave").removeClass( disabled );
								$("#"+gID+"_ilcancel").removeClass( disabled );
								$("#"+gID+"_iladd").addClass( disabled );
								$("#"+gID+"_iledit").addClass( disabled );
							}
						} else {
							$.jgrid.viewModal("#alertmod_"+gID, {gbox:"#gbox_"+gID,jqm:true});$("#jqg_alrt").focus();
						}
					}
				});
			}
			if(o.save) {
				$($t).jqGrid('navButtonAdd', elem,{
					caption : o.savetext || '',
					title : o.savetitle || 'Save row',
					buttonicon : o.saveicon,
					id : $t.p.id+"_ilsave",
					internal : true,
					onClickButton : function () {
						var sr = $t.p.savedRow[0].id;
						if(sr) {
							var opers = $t.p.prmNames,
							oper = opers.oper, tmpParams = o.editParams;
							if($("#"+$.jgrid.jqID(sr), "#"+gID ).hasClass("jqgrid-new-row")) {
								o.addParams.addRowParams.extraparam[oper] = opers.addoper;
								tmpParams = o.addParams.addRowParams;
							} else {
								if(!o.editParams.extraparam) {
									o.editParams.extraparam = {};
								}
								o.editParams.extraparam[oper] = opers.editoper;
							}
							if( $($t).jqGrid('saveRow', sr, tmpParams) ) {
								$($t).jqGrid('showAddEditButtons');
							}
						} else {
							$.jgrid.viewModal("#alertmod_"+gID, {gbox:"#gbox_"+gID,jqm:true});$("#jqg_alrt").focus();
						}
					}
				});
				$("#"+gID+"_ilsave").addClass( disabled );
			}
			if(o.cancel) {
				$($t).jqGrid('navButtonAdd', elem,{
					caption : o.canceltext || '',
					title : o.canceltitle || 'Cancel row editing',
					buttonicon : o.cancelicon,
					id : $t.p.id+"_ilcancel",
					internal : true,
					onClickButton : function () {
						var sr = $t.p.savedRow[0].id, cancelPrm = o.editParams;
						if(sr) {
							if($("#"+$.jgrid.jqID(sr), "#"+gID ).hasClass("jqgrid-new-row")) {
								cancelPrm = o.addParams.addRowParams;
							}
							$($t).jqGrid('restoreRow', sr, cancelPrm);
							$($t).jqGrid('showAddEditButtons');
						} else {
							$.jgrid.viewModal("#alertmod",{gbox:"#gbox_"+gID,jqm:true});$("#jqg_alrt").focus();
						}
					}
				});
				$("#"+gID+"_ilcancel").addClass( disabled );
			}
			if(o.restoreAfterSelect === true || o.saveAfterSelect === true) {
				$($t).on("jqGridBeforeSelectRow.inlineNav", function( event, id ) {
					if($t.p.savedRow.length > 0 && $t.p.inlineNav===true && ( id !== $t.p.selrow && $t.p.selrow !==null) ) {
						var success = true;
						if($t.p.selrow === o.addParams.rowID ) {
							$($t).jqGrid('delRowData', $t.p.selrow);
						} else {
							if(o.restoreAfterSelect === true) {
								$($t).jqGrid('restoreRow', $t.p.selrow, o.editParams);
							} else {
								success = $($t).jqGrid('saveRow', $t.p.selrow, o.editParams);
							}
						}
						if(success) {
							$($t).jqGrid('showAddEditButtons');
						}
					}
				});
			}

		});
	},
	showAddEditButtons : function()  {
		return this.each(function(){
			if (!this.grid ) { return; }
			var gID = $.jgrid.jqID(this.p.id),
			disabled = $.jgrid.trim( $(this).jqGrid('getStyleUI', this.p.styleUI+'.common', 'disabled', true) );
			$("#"+gID+"_ilsave").addClass( disabled );
			$("#"+gID+"_ilcancel").addClass( disabled );
			$("#"+gID+"_iladd").removeClass( disabled );
			$("#"+gID+"_iledit").removeClass( disabled );
		});
	},
	showSaveCancelButtons : function()  {
		return this.each(function(){
			if (!this.grid ) { return; }
			var gID = $.jgrid.jqID(this.p.id),
			disabled = $.jgrid.trim( $(this).jqGrid('getStyleUI', this.p.styleUI+'.common', 'disabled', true) );
			$("#"+gID+"_ilsave").removeClass( disabled );
			$("#"+gID+"_ilcancel").removeClass( disabled );
			$("#"+gID+"_iladd").addClass( disabled );
			$("#"+gID+"_iledit").addClass( disabled );
		});
	}
//end inline edit
});
//module end
}));
js/grid.database.js000064400000023006151676727230010227 0ustar00/*jshint eqeqeq:false, eqnull:true */
/*global jQuery, define */
// Grouping module
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"./grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {
"use strict";
//module begin
$.jgrid.extend({
	dbInit : function (dbtype) {
		return this.each(function (){
			switch (dbtype) {
				case  'indexeddb':
					$(this).jqGrid('_initIndexedDB_');
				break;
			}
		});
	},
	_initIndexedDB_ : function() { 
	this.each(function(){
		var ts = this;
		indexedDB.databases().then(function(r) { 
			const connection  = indexedDB.open(ts.p.dbconfig.dbname /*, ts.p.dbconfig.dbversion*/);
			connection.onupgradeneeded = (e) => {
				console.info('Database created: '+ts.p.dbconfig.dbname);
			};
			connection.onsuccess = function(e) {
				const db = e.target.result;
				var version =  parseInt(db.version),
				idcol = $.jgrid.getElemByAttrVal(ts.p.colModel, 'key', true);

				async function getIndexedDbData( skipCreate ) {
					var data, options = ts.p.dbconfig;
					if(typeof options.dataUrl === 'string') {
						try {
						let req = await fetch(options.dataUrl, options.fetchOptions);	
							data = await req.json();
							if(options.reader !== null) {
								data = $.jgrid.getAccessor(data, options.reader);
							}
						} catch(error) {
							console.log("Error:" +error);
							return;
						}
						if($.jgrid.isFunction(options.beforeInsertData)) {
							data = options.beforeInsertData.call(ts, data);
						}
					} else if(Array.isArray(options.dataUrl)) {
						data = options.dataUrl;
					}
						ts.p.dbconfig.dbversion = version + 1;
					var secondconn = indexedDB.open(options.dbname, version + 1/*, ts.p.dbconfig.dbversion*/);
						secondconn.onupgradeneeded = function (e) {
							var db = e.target.result;
							if(!skipCreate) {
								const objectStore = db.createObjectStore(ts.p.dbconfig.dbtable, {keyPath: idcol.name});
								for(let i =0;i<ts.p.colModel.length; i++) {
									let cm = ts.p.colModel[i];
									if(cm.name === idcol.name) {
										objectStore.createIndex(cm.name, cm.name, { unique: true });
									} else {
										objectStore.createIndex(cm.name, cm.name, { unique: false });
									}
								}
							}
							const transaction = e.target.transaction;
							const objectStore1 = transaction.objectStore(ts.p.dbconfig.dbtable);
							objectStore1.transaction.oncomplete = function(e){
								// data added
								//ts.p.dbconfig.loadIfExists = false;
							};
							objectStore1.transaction.onerror = function(e){
								$.jgrid.info_dialog("Error",e.target.error.name + " : "+e.target.error.message,'Close');
							};
							for(var row of data){
								if(!ts.p.dbconfig.isKeyInData) {
									row[idcol.name] = Math.random().toString(16).slice(2);
								}
								objectStore1.put(row);
							}
							ts.p.dbconfig.ready_req = true;
							ts.grid.populate();
						};
						secondconn.onerror =(e) => {
							$.jgrid.info_dialog("Error",e.target.error.name + " : "+e.target.error.message,'Close');
						};
					}
					if($.isEmptyObject(idcol)) {
						$.jgrid.info_dialog("Warning","Missed key: No uniquie key is set in colModel. Creating table fail",'Close');
						return;
					}
					if( !db.objectStoreNames.contains(ts.p.dbconfig.dbtable) ) {
						db.close();
						getIndexedDbData( false );
				} else if(ts.p.dbconfig.loadIfExists || ts.p.dbconfig.deleteIfExists) {
					const tr = db.transaction(ts.p.dbconfig.dbtable, "readwrite");
						const oS = tr.objectStore(ts.p.dbconfig.dbtable);
						const countRequest = oS.count();
						countRequest.onsuccess = () => {						
							if(countRequest.result > 0)  {
							if(ts.p.dbconfig.deleteIfExists) {
								const objectStoreRequest = oS.clear();
								objectStoreRequest.onsuccess = (event) => {
									// report the success of our request
									console.log("All records are cleared");
									db.close();
									getIndexedDbData( true );
								};
								objectStoreRequest.onerror = (e) => {
									// report the success of our request
									$.jgrid.info_dialog("Error",e.target.error.name + " : "+e.target.error.message,'Close');
								};
							} else if(ts.p.dbconfig.loadIfExists) {
								db.close();
								getIndexedDbData( true );								
								} else {
									db.close();
									ts.p.dbconfig.ready_req = true;
									ts.grid.populate();
								}
							} else {
							db.close();
							getIndexedDbData( true );			
						}
					};
				} else {
					db.close();
					ts.p.dbconfig.ready_req = true;
					ts.grid.populate();
				}
			};
			connection.onerror =(e) => {
				$.jgrid.info_dialog("Error",e.target.error.name + " : "+e.target.error.message,'Close');
			};
		});	
	});},
	updateStorageRecord : async function (data, keyName) {
		let ts = this[0], dbcfg = ts.p.dbconfig, type = ts.p.datatype;
		return new Promise(function(resolve, reject){
			if(!Array.isArray(data)) {
				data = [data];
			}
			if(!keyName) {
				keyName = ts.p.keyName;
			}
			data = $.jgrid.normalizeDbData.call(ts, data, ts.p.colModel );
			switch(type) {
				case 'indexeddb' :
					const DBOpenRequest = window.indexedDB.open(dbcfg.dbname /*, dbcfg.dbversion*/);
					DBOpenRequest.onsuccess = (event) => {
						const db = DBOpenRequest.result;
						const transaction = db.transaction(dbcfg.dbtable, "readwrite");
						transaction.oncomplete = (event) => {
							resolve(event);
							console.log("Transaction completed succefully");
						};
						transaction.onerror = (event) => {
							reject(event);
							try {
								$.jgrid.info_dialog.call("Error", event.target.error, "Close", {styleUI : ts.p.styleUI});
							} catch (e) {
								console.log(event.target.error);
							}
						};
						const objectStore = transaction.objectStore(dbcfg.dbtable);
						for(let i=0;i<data.length;i++) {
							if(!data[i].hasOwnProperty(keyName) || data[i][keyName] === "") {
								transaction.abort();
								break;
							}
							const req2 = objectStore.openCursor();
							req2.onsuccess = (e) => {
								 const cursor = e.target.result;
								 if(!cursor) {
									 return;
								 }
								var updateData = cursor.value;
								if(updateData[keyName] === data[i][keyName]) {
									delete data[i].oper;
									updateData = Object.assign(updateData, data[i]);
									const updateRequest = cursor.update(updateData);
									return;
								} else {
									 cursor.continue();
								}
								};
							req2.onerror = (e) => {
								console.log(e.target.error);
							};
						}
					};
				break;
			} 
		});
	},
	addStorageRecord : async function (data, keyName) {
		let ts = this[0], dbcfg = ts.p.dbconfig, type = ts.p.datatype;
		return new Promise(function(resolve, reject){
			if(!Array.isArray(data)) {
				data = [data];
			}
			if(!keyName) {
				keyName = ts.p.keyName;
			}
			data = $.jgrid.normalizeDbData.call(ts, data, ts.p.colModel );
			switch(type) {
				case 'indexeddb' :
					const DBOpenRequest = window.indexedDB.open(dbcfg.dbname /*, dbcfg.dbversion*/);
					DBOpenRequest.onsuccess = (event) => {
						const db = DBOpenRequest.result;
						const transaction = db.transaction(dbcfg.dbtable, "readwrite");
						transaction.oncomplete = (event) => {
							resolve(event);
							console.log("Transaction completed succefully");
						};
						transaction.onerror = (event) => {
							reject(event);
							try {
								$.jgrid.info_dialog.call("Error", event.target.error, "Close", {styleUI : ts.p.styleUI});
							} catch (e) {
								console.log(event.target.error);
							}
						};
						const objectStore = transaction.objectStore(dbcfg.dbtable);
						for(let i=0;i<data.length;i++) {
							if(!data[i].hasOwnProperty(keyName) || data[i][keyName] === "") {
								data[i][keyName] = Math.random().toString(16).slice(2);
							}
							var objectStoreRequest = objectStore.add(data[i]);
							objectStoreRequest.onsuccess = (event) => {
								//console.log(event.type, objectStoreRequest.result);
							};
						}
					};
				break;
			} 
		});
	},
	deleteStorageRecord : async function (data, keyName) {
		let ts = this[0], dbcfg = ts.p.dbconfig, type = ts.p.datatype;
		return new Promise(function(resolve, reject){
			if(!Array.isArray(data)) {
				data = data.split(",");
			}	
			if(!keyName) {
				keyName = ts.p.keyName;
			}
			switch(type) {
				case 'indexeddb' :
					var test =[], obj={};
					for (let i=0;i<data.length;i++) {
						obj[keyName] = data[i];
						test.push(obj);
					}
					// detect keytype
					test = $.jgrid.normalizeDbData.call(ts, test, ts.p.colModel );			
					const DBOpenRequest = window.indexedDB.open(dbcfg.dbname /*, dbcfg.dbversion*/);
					DBOpenRequest.onsuccess = (event) => {
						const db = DBOpenRequest.result;
						const transaction = db.transaction(dbcfg.dbtable, "readwrite");
						transaction.oncomplete = (event) => {
							resolve(event);
							console.log("Transaction completed succefully");
						};
						transaction.onerror = (event) => {
							reject(event);
							try {
								$.jgrid.info_dialog.call("Error", event.target.error, "Close", {styleUI : ts.p.styleUI});
							} catch (e) {
								console.log(event.target.error);
							}
						};
						const objectStore = transaction.objectStore(dbcfg.dbtable);
						for(let i=0;i<data.length;i++) {
							var objectStoreRequest = objectStore.delete(test[i][keyName]);
							objectStoreRequest.onsuccess = (event) => {
								console.log("Deleted record: " + data[i]);
							};							
						}
					};
				break;
			} 
		});
	}	
});
//module end
}));
js/grid.export.js000064400000230423151676727230010007 0ustar00/*jshint eqeqeq:false, eqnull:true, devel:true */
/*global jQuery, JSZip, pdfMake, XMLSerializer, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"./grid.base",
			"./jquery.fmatter",
			"./grid.utils"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {
"use strict";
//module begin

$.jgrid = $.jgrid || {};


$.extend($.jgrid,{
	formatCell : function ( cellval , colpos, rwdat, cm, $t, etype){
		var v;
		if(cm.formatter !== undefined) {
			var opts= {rowId: '', colModel:cm, gid: $t.p.id, pos:colpos, styleUI: '', isExported : true, exporttype : etype };
			if($.jgrid.isFunction( cm.formatter ) ) {
				v = cm.formatter.call($t,cellval,opts,rwdat);
			} else if($.fmatter){
				v = $.fn.fmatter.call($t,cm.formatter,cellval,opts,rwdat);
			} else {
				v = cellval;
			}
		} else {
			v = cellval;
		}
		return v;
	},
	formatCellCsv : function (v, p) {
		v = v == null ? '' : String(v);
		try {
			v = $.jgrid.stripHtml( v.replace(p._regexsep ,p.separatorReplace).replace(/\r\n/g, p.replaceNewLine).replace(/\n/g, p.replaceNewLine));
		} catch (_e) {
			v="";
		}
		if(p.escquote) {
			v = v.replace(p._regexquot, p.escquote + p.quote);
		}
		if( v.indexOf(p.separator) === -1 || v.indexOf(p.qoute) === -1) {
			v = p.quote + v + p.quote;
		}
		return v;
	},

	excelCellPos : function ( n ){
		var ordA = 'A'.charCodeAt(0),
		ordZ = 'Z'.charCodeAt(0),
		len = ordZ - ordA + 1,
		s = "";

		while( n >= 0 ) {
			s = String.fromCharCode(n % len + ordA) + s;
			n = Math.floor(n / len) - 1;
		}

		return s;
	},

	makeNode : function ( root, elemName, options ) {
		var currNode = root.createElement( elemName );

		if ( options ) {
			if ( options.attr ) {
				$(currNode).attr( options.attr );
			}
			if( options.children ) {
				$.each( options.children, function ( key, value ) {
					currNode.appendChild( value );
				});
			}
			if( options.hasOwnProperty('text') ) {
				currNode.appendChild( root.createTextNode( options.text ) );
			}
		}
		return currNode;
	},
	xmlToZip : function ( zip, obj ) {
		var $t = this,
		xmlserialiser = new XMLSerializer(),
		// IE >= 9
		ieExcel = xmlserialiser.serializeToString(
			$.parseXML( $.jgrid.excelStrings['xl/worksheets/sheet1.xml'] ) )
			.indexOf( 'xmlns:r' ) === -1,
		newDir, worksheet, i, ien, attr, attrs = [], str;

		$.each( obj, function ( name, val ) {
			if ( $.isPlainObject( val ) ) {
				newDir = zip.folder( name );
				$t.xmlToZip( newDir, val );
			} else {
				if ( ieExcel ) {
					worksheet = val.childNodes[0];
					for ( i=worksheet.attributes.length-1 ; i>=0 ; i-- ) {
						var attrName = worksheet.attributes[i].nodeName;
						var attrValue = worksheet.attributes[i].nodeValue;

						if ( attrName.indexOf( ':' ) !== -1 ) {
							attrs.push( { name: attrName, value: attrValue } );

							worksheet.removeAttribute( attrName );
						}
					}

					for ( i=0, ien=attrs.length ; i<ien ; i++ ) {
						attr = val.createAttribute( attrs[i].name.replace( ':', '_dt_b_namespace_token_' ) );
						attr.value = attrs[i].value;
						worksheet.setAttributeNode( attr );
					}
				}
				// suuport of all browsers
				str = xmlserialiser.serializeToString(val);
				// Fix IE's XML
				if ( ieExcel ) {
					if ( str.indexOf( '<?xml' ) === -1 ) {
						str = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+str;
					}
					str = str.replace( /_dt_b_namespace_token_/g, ':' );
				}

				str = str
					.replace( /<row xmlns="" /g, '<row ' )
					.replace( /<cols xmlns="">/g, '<cols>' )
					.replace( /<mergeCells xmlns="" /g, '<mergeCells ' )
					.replace( /<numFmt xmlns="" /g, '<numFmt ' )
					.replace( /<xf xmlns="" /g, '<xf ' );

				zip.file( name, str );
			}
		} );
	},
	excelStrings  : {
		"_rels/.rels":
			'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+
			'<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">'+
				'<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/>'+
			'</Relationships>',

		"xl/_rels/workbook.xml.rels":
			'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+
			'<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">'+
				'<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet1.xml"/>'+
				'<Relationship Id="rId2" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/>'+
			'</Relationships>',

		"[Content_Types].xml":
			'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+
			'<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">'+
				'<Default Extension="xml" ContentType="application/xml" />'+
				'<Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml" />'+
				'<Default Extension="jpeg" ContentType="image/jpeg" />'+
				'<Override PartName="/xl/workbook.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml" />'+
				'<Override PartName="/xl/worksheets/sheet1.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml" />'+
				'<Override PartName="/xl/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml" />'+
			'</Types>',

		"xl/workbook.xml":
			'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+
			'<workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">'+
				'<fileVersion appName="xl" lastEdited="5" lowestEdited="5" rupBuild="24816"/>'+
				'<workbookPr showInkAnnotation="0" autoCompressPictures="0"/>'+
				'<bookViews>'+
					'<workbookView xWindow="0" yWindow="0" windowWidth="25600" windowHeight="19020" tabRatio="500"/>'+
				'</bookViews>'+
				'<sheets>'+
					'<sheet name="Sheet1" sheetId="1" r:id="rId1"/>'+
				'</sheets>'+
			'</workbook>',

		"xl/worksheets/sheet1.xml":
			'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+
			'<worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac">'+
				'<sheetData/>'+
			'</worksheet>',

		"xl/styles.xml":
			'<?xml version="1.0" encoding="UTF-8"?>'+
			'<styleSheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac">'+
				'<numFmts count="7">'+
					'<numFmt numFmtId="164" formatCode="#,##0.00_-\ [$$-45C]"/>'+
					'<numFmt numFmtId="165" formatCode="&quot;£&quot;#,##0.00"/>'+
					'<numFmt numFmtId="166" formatCode="[$€-2]\ #,##0.00"/>'+
					'<numFmt numFmtId="167" formatCode="0.0%"/>'+
					'<numFmt numFmtId="168" formatCode="#,##0;(#,##0)"/>'+
					'<numFmt numFmtId="169" formatCode="#,##0.00;(#,##0.00)"/>'+
					'<numFmt numFmtId="170" formatCode="yyyy/mm/dd;@"/>'+
				'</numFmts>'+
				'<fonts count="5" x14ac:knownFonts="1">'+
					'<font>'+
						'<sz val="11" />'+
						'<name val="Calibri" />'+
					'</font>'+
					'<font>'+
						'<sz val="11" />'+
						'<name val="Calibri" />'+
						'<color rgb="FFFFFFFF" />'+
					'</font>'+
					'<font>'+
						'<sz val="11" />'+
						'<name val="Calibri" />'+
						'<b />'+
					'</font>'+
					'<font>'+
						'<sz val="11" />'+
						'<name val="Calibri" />'+
						'<i />'+
					'</font>'+
					'<font>'+
						'<sz val="11" />'+
						'<name val="Calibri" />'+
						'<u />'+
					'</font>'+
				'</fonts>'+
				'<fills count="6">'+
					'<fill>'+
						'<patternFill patternType="none" />'+
					'</fill>'+
					'<fill/>'+
					'<fill>'+
						'<patternFill patternType="solid">'+
							'<fgColor rgb="FFD9D9D9" />'+
							'<bgColor indexed="64" />'+
						'</patternFill>'+
					'</fill>'+
					'<fill>'+
						'<patternFill patternType="solid">'+
							'<fgColor rgb="FFD99795" />'+
							'<bgColor indexed="64" />'+
						'</patternFill>'+
					'</fill>'+
					'<fill>'+
						'<patternFill patternType="solid">'+
							'<fgColor rgb="ffc6efce" />'+
							'<bgColor indexed="64" />'+
						'</patternFill>'+
					'</fill>'+
					'<fill>'+
						'<patternFill patternType="solid">'+
							'<fgColor rgb="ffc6cfef" />'+
							'<bgColor indexed="64" />'+
						'</patternFill>'+
					'</fill>'+
				'</fills>'+
				'<borders count="2">'+
					'<border>'+
						'<left />'+
						'<right />'+
						'<top />'+
						'<bottom />'+
						'<diagonal />'+
					'</border>'+
					'<border diagonalUp="false" diagonalDown="false">'+
						'<left style="thin">'+
							'<color auto="1" />'+
						'</left>'+
						'<right style="thin">'+
							'<color auto="1" />'+
						'</right>'+
						'<top style="thin">'+
							'<color auto="1" />'+
						'</top>'+
						'<bottom style="thin">'+
							'<color auto="1" />'+
						'</bottom>'+
						'<diagonal />'+
					'</border>'+
				'</borders>'+
				'<cellStyleXfs count="1">'+
					'<xf numFmtId="0" fontId="0" fillId="0" borderId="0" />'+
				'</cellStyleXfs>'+
				'<cellXfs count="69">'+
					'<xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="1" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="2" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="3" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="4" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="0" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="1" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="2" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="3" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="4" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="0" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="1" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="2" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="3" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="4" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="0" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="1" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="2" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="3" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="4" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="0" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="1" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="2" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="3" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="4" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="0" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="1" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="2" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="3" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="4" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="0" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="1" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="2" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="3" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="4" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="0" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="1" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="2" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="3" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="4" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="0" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="1" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="2" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="3" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="4" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="0" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="1" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="2" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="3" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="4" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1">'+
						'<alignment horizontal="left"/>'+
					'</xf>'+
					'<xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1">'+
						'<alignment horizontal="center"/>'+
					'</xf>'+
					'<xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1">'+
						'<alignment horizontal="right"/>'+
					'</xf>'+
					'<xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1">'+
						'<alignment horizontal="fill"/>'+
					'</xf>'+
					'<xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1">'+
						'<alignment textRotation="90"/>'+
					'</xf>'+
					'<xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1">'+
						'<alignment wrapText="1"/>'+
					'</xf>'+
					'<xf numFmtId="9"   fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+
					'<xf numFmtId="164" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+
					'<xf numFmtId="165" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+
					'<xf numFmtId="166" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+
					'<xf numFmtId="167" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+
					'<xf numFmtId="168" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+
					'<xf numFmtId="169" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+
					'<xf numFmtId="3" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+
					'<xf numFmtId="4" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+
					'<xf numFmtId="1" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+
					'<xf numFmtId="2" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+
					'<xf numFmtId="170" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+
					'<xf numFmtId="49" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/>'+
				'</cellXfs>'+
				'<cellStyles count="1">'+
					'<cellStyle name="Normal" xfId="0" builtinId="0" />'+
				'</cellStyles>'+
				'<dxfs count="0" />'+
				'<tableStyles count="0" defaultTableStyle="TableStyleMedium9" defaultPivotStyle="PivotStyleMedium4" />'+
			'</styleSheet>'
	},
	excelParsers : [
		{ match: /^\-?\d+\.\d%$/,       style: 60, fmt: function (d) { return d/100; } }, // Precent with d.p.
		{ match: /^\-?\d+\.?\d*%$/,     style: 56, fmt: function (d) { return d/100; } }, // Percent
		{ match: /^\-?\$[\d,]+.?\d*$/,  style: 57 }, // Dollars
		{ match: /^\-?£[\d,]+.?\d*$/,   style: 58 }, // Pounds
		{ match: /^\-?€[\d,]+.?\d*$/,   style: 59 }, // Euros
		{ match: /^\-?\d+$/,            style: 65 }, // Numbers without thousand separators
		{ match: /^\-?\d+\.\d{2}$/,     style: 66 }, // Numbers 2 d.p. without thousands separators
		{ match: /^\([\d,]+\)$/,        style: 61, fmt: function (d) { return -1 * d.replace(/[\(\)]/g, ''); } },  // Negative numbers indicated by brackets
		{ match: /^\([\d,]+\.\d{2}\)$/, style: 62, fmt: function (d) { return -1 * d.replace(/[\(\)]/g, ''); } },  // Negative numbers indicated by brackets - 2d.p.
		{ match: /^\-?[\d,]+$/,         style: 63 }, // Numbers with thousand separators
		{ match: /^\-?[\d,]+\.\d{2}$/,  style: 64 },  // Numbers with 2 d.p. and thousands separators
		{ match: /^\d{4}\-\d{2}\-\d{2}$/, style: 67 }, // Dates
		{ match: /(https?:\/\/(?:www\.|(?!www))[^\s\.]+\.[^\s]{2,}|www\.[^\s]+\.[^\s]{2,})/gi, style : 4} // hyperlink
	],
	addExcelStyle : function ( obj, options, alignment, styleSh) {
		options = $.extend({
			numFmtId : "0",
			fontId: "0",
			fillId: "0",
			borderId: "0",
			applyFont:"1",
			applyFill:"1",
			applyBorder:"1",
			xfId:"0",
			applyNumberFormat:"0",
			applyAlignment  : "0"
		}, options || {});
		alignment =  $.extend({
			horizontal: "left", // left, center, right, fill, justified
			indent: "0", // indent from left
			shrinkToFit : "1", //"0"
			textRotation : "0", // in degree
			vertical : "center", // top, bottom
			wrapText : "0"
		}, alignment || {});
		if( $.isEmptyObject( obj )) {
			obj.excel_parsers = true;
		}
		//var	styleSh = $.parseXML( $.jgrid.excelStrings['xl/styles.xml']), //xlsx.xl["styles.xml"];
		var formats = styleSh.getElementsByTagName("numFmts")[0],
		celsX = styleSh.getElementsByTagName("cellXfs")[0];

		var format=null, style=null;

		for(var k in obj) {
			if(obj.hasOwnProperty(k)) {
				if(k.indexOf('format') !== -1) {
					format = k;
				}
				if(k.indexOf('style') !== -1) {
					style = k;
				}
			}
		}
		if(style && !obj[style]) {
			// add the sformatter
			var count = 0,
			maxfmtid =0,
			fmnt, mycell;

			if(format && obj[format]) {
				fmnt= $(formats.getElementsByTagName("numFmt"));
				$.each( fmnt, function(i,n) {
					count++;
					maxfmtid = Math.max(maxfmtid,  parseInt( $(n).attr("numFmtId"), 10) );
				});
				mycell = $.jgrid.makeNode( styleSh , "numFmt", {attr: {numFmtId : maxfmtid + 1, formatCode : obj[format] } });
				formats.appendChild( mycell );
				$(formats).attr("count", count + 1);
			}

			var numid = maxfmtid !== 0 ? maxfmtid + 1 +"" : "0";
			count = 0;
			options.numFmtId = numid;
			mycell = options.applyAlignment === "1" ?
				$.jgrid.makeNode( styleSh , "xf", { 
					attr: options , 
					children: [	$.jgrid.makeNode( styleSh, 'alignment', {  attr : alignment } ) ]
				}) :
				$.jgrid.makeNode( styleSh , "xf", { 
					attr: options 
				});
			celsX.appendChild( mycell );
			count = $('cellXfs xf', styleSh).length;
			$(celsX).attr("count", count);
			obj[style] = count - 1;
		}
		return obj;
	},
	newExcelStyle : function ( xlsx, options ) {
		options = $.extend(true, {
			font : { size : 11, name : 'Calibri', options :""}, // options <b/> <i/> <u/>
			color : { patternType : "solid", fgColor : "FFFFFFF", bgColor : 64 } // bgColor if number 0-64
		}, options || {});
		//PatterType can be one of the following
		/*
			none, solid,darkDown,darkGray,darkGrid,darkHorizontal,darkTrellis,
			darkUp,darkVertical,gray0625,gray125,lightDown,lightGray,lightGrid
			lightHorizontal,lightTrellis,lightUp,lightVertical,mediumGray
		*/
		//styleSheet.childNodes[0].childNodes[0] ==> number formats  <numFmts count="6"> </numFmts>
		//styleSheet.childNodes[0].childNodes[1] ==> fonts           <fonts count="5" x14ac:knownFonts="1"> </fonts>
		//styleSheet.childNodes[0].childNodes[2] ==> fills           <fills count="6"> </fills>
		//styleSheet.childNodes[0].childNodes[3] ==> borders         <borders count="2"> </borders>
		//styleSheet.childNodes[0].childNodes[4] ==> cell style xfs  <cellStyleXfs count="1"> </cellStyleXfs>
		//styleSheet.childNodes[0].childNodes[5] ==> cell xfs        <cellXfs count="69"> </cellXfs>
		//on the last line we have the 69 currently built in styles (0 - 68)

		var sSh = xlsx.xl['styles.xml'];
		var lastXfIndex   = $('cellXfs xf', sSh).length - 1;
		var lastFontIndex = $('fonts font', sSh).length - 1;
		var lastFillIndex = $('fills fill', sSh).length - 1;


		var font1 =
        '<font>'+
                '<sz val="'+options.font.size+'" />'+
                '<name val="'+options.font.name+'" />'+
                options.font.options +
        '</font>';
		sSh.childNodes[0].childNodes[1].innerHTML += font1; //new font
		var bgcolor = 'indexed=';
		if(parseInt(options.color.bgColor,10) >= 0 ) {
			bgcolor = 'rgb=';
		}
		bgcolor += '"'+options.color.bgColor+'"';
		var color1 = 
			'<fill>'+
			'<patternFill patternType="'+options.color.patternType+'">'+
			'<fgColor rgb="'+options.color.fgColor+'" />'+
			'<bgColor ' + bgcolor+' />'+
			'</patternFill>'+
		'</fill>';		
		sSh.childNodes[0].childNodes[2].innerHTML += color1; //new color
        var s1 = '<xf numFmtId="0" fontId="'+(lastFontIndex+1)+'" fillId="'+(lastFillIndex+1)+'" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1"></xf>';
		sSh.childNodes[0].childNodes[5].innerHTML += s1;
		return (lastXfIndex + 1);
	}
});
/********************************************************************
*
* due to speed, every export method will have separate module
* to collect grouped data
*
*********************************************************************/
$.jgrid.extend({
	exportToCsv : function ( p ) {
		p = $.extend(true, {
			separator: ",",
			separatorReplace : " ",
			quote : '"',
			escquote : '"',
			newLine : "\r\n", // navigator.userAgent.match(/Windows/) ?	'\r\n' : '\n';
			replaceNewLine : " ",
			includeCaption : true,
			includeLabels : true,
			includeGroupHeader : true,
			includeFooter: true,
			includeHeader: true,
			fileName : "jqGridExport.csv",
			mimetype : "text/csv;charset=utf-8",
			returnAsString : false,
			onBeforeExport : null,
			treeindent : ' ',
			visibleTreeNodes : false,
			loadIndicator : true // can be a function
		}, p || {});
		var ret ="";
		this.each(function(){

			p._regexsep = new RegExp(p.separator, "g");
			p._regexquot = new RegExp(p.quote, "g");

			var $t = this,
			// get the filtered data
			data1 = $t.p.treeGrid ? $($t).jqGrid('getRowData', null, true, p.treeindent, p.visibleTreeNodes) : $t.addLocalData( true ), //this.addLocalData( true ),
			dlen = data1.length,
			cm = $t.p.colModel,
			cmlen = cm.length,
			clbl = $t.p.colNames,
			i, j=0, row, str = '' , tmp, k,
			cap = "", hdr = "", ftr="",	lbl="", albl=[], htr="";
			function groupToCsv (grdata, p) {
				var str="",
				grp = $t.p.groupingView,
				cp=[], len =grp.groupField.length,
				cm = $t.p.colModel,
				colspans = cm.length,
				toEnd = 0;

				$.each(cm, function (i,n){
					var ii;
					for(ii=0;ii<len;ii++) {
						if(grp.groupField[ii] === n.name ) {
							cp[ii] = i;
							break;
						}
					}
				});
				function findGroupIdx( ind , offset, grp) {
					var ret = false, i;
					if(offset===0) {
						ret = grp[ind];
					} else {
						var id = grp[ind].idx;
						if(id===0) {
							ret = grp[ind];
						}  else {
							for(i=ind;i >= 0; i--) {
								if(grp[i].idx === id-offset) {
									ret = grp[i];
									break;
								}
							}
						}
					}
					return ret;
				}
				function buildSummaryTd(i, ik, grp, foffset) {
					var fdata = findGroupIdx(i, ik, grp),
					//cm = $t.p.colModel,
					vv, grlen = fdata.cnt, k, retarr= new Array(p.collen), j=0;
					for(k=foffset; k<colspans;k++) {
						if(!cm[k]._expcol) {
							continue;
						}
						var tplfld = "{0}";
						$.each(fdata.summary,function(){
							if(this.nm === cm[k].name) {
								if(cm[k].summaryTpl)  {
									tplfld = cm[k].summaryTpl;
								}
								vv = this.v;
								if(typeof this.st === 'string' && this.st.toLowerCase() === 'avg') {
									if(this.sd && this.vd) {
										vv = (this.v/this.vd);
									} else if(this.v && grlen > 0) {
										vv = (this.v/grlen);
									}
								}
								try {
									this.groupCount = fdata.cnt;
									this.groupIndex = fdata.dataIndex;
									this.groupValue = fdata.value;
									vv = $t.formatter('', vv, k, this);
								} catch (ef) {
									vv = this.v;
								}
								retarr[j] =
									$.jgrid.formatCellCsv(
									$.jgrid.stripHtml(
									$.jgrid.template(tplfld,vv)
									), p ) ;
								return false;
							}
						});
						j++;
					}
					return retarr;
				}
				var sumreverse = $.makeArray(grp.groupSummary), gv, k;
				sumreverse.reverse();
				if($t.p.datatype === 'local' && !$t.p.loadonce) {
					$($t).jqGrid('groupingSetup');
					var groupingPrepare = $.jgrid.getMethod("groupingPrepare");
					for(var ll=0; ll < dlen; ll++) {
						groupingPrepare.call($($t), data1[ll], ll);
					}
				}
				$.each(grp.groups,function(i,n){
					toEnd++;
					try {
						if (Array.isArray(grp.formatDisplayField) && $.jgrid.isFunction(grp.formatDisplayField[n.idx])) {
							gv = grp.formatDisplayField[n.idx].call($t, n.displayValue, n.value, $t.p.colModel[cp[n.idx]], n.idx, grp);
						} else {
							gv = $t.formatter('', n.displayValue, cp[n.idx], n.value );
						}
					} catch (egv) {
						gv = n.displayValue;
					}
					var grpTextStr = '';
					if($.jgrid.isFunction(grp.groupText[n.idx])) {
						grpTextStr = grp.groupText[n.idx].call($t, gv, n.cnt, n.summary);
					} else {
						grpTextStr = $.jgrid.template(grp.groupText[n.idx], gv, n.cnt, n.summary);
					}
					if( !(typeof grpTextStr ==='string' || typeof grpTextStr ==='number' ) ) {
						grpTextStr = gv;
					}
					var arr;
					if(grp.groupSummaryPos[n.idx] === 'header')  {
						arr = buildSummaryTd(i, 0, grp.groups, 0 /*grp.groupColumnShow[n.idx] === false ? (mul ==="" ? 2 : 3) : ((mul ==="") ? 1 : 2)*/ );
					} else {
						arr = new Array(p.collen);
					}
					arr[0] = $.jgrid.formatCellCsv( $.jgrid.stripHtml( grpTextStr ), p);
					str +=  arr.join( p.separator ) + p.newLine;
					var leaf = len-1 === n.idx;
					if( leaf ) {
						var gg = grp.groups[i+1], kk, ik, offset = 0, sgr = n.startRow, to,
						end = gg !== undefined ?  gg.startRow : grp.groups[i].startRow + grp.groups[i].cnt;
						for(kk=sgr;kk<end;kk++) {
							if(!grdata[kk - offset]) { break; }
							to = grdata[kk - offset];
							k = 0;
							for(ik = 0; ik < cm.length; ik++) {
								if(cm[ik]._expcol) {
									arr[k] = $.jgrid.formatCellCsv(
										$.jgrid.formatCell( $.jgrid.getAccessor(to, cm[ik].name), ik, to, cm[ik], $t, 'csv' ) , p);
									k++;
								}
							}
							str += arr.join( p.separator ) + p.newLine;
						}

						if(grp.groupSummaryPos[n.idx] !== 'header') {
							var jj;
							if (gg !== undefined) {
								for (jj = 0; jj < grp.groupField.length; jj++) {
									if (gg.dataIndex === grp.groupField[jj]) {
										break;
									}
								}
								toEnd = grp.groupField.length - jj;
							}
							for (ik = 0; ik < toEnd; ik++) {
								if(!sumreverse[ik]) { continue; }
								arr = buildSummaryTd(i, ik, grp.groups, 0);
								str += arr.join( p.separator ) + p.newLine;
							}
							toEnd = jj;
						}
					}
				});
				return str;
			}
			if( $.jgrid.isFunction( p.loadIndicator )) {
				p.loadIndicator.call($t,'show');
			} else if(p.loadIndicator) {
				$($t).jqGrid("progressBar", {method:"show", loadtype : $t.p.loadui, htmlcontent: $.jgrid.getRegional($t,'defaults.loadtext') });
			}
			// end group function
			var def = [], key;
			$.each(cm,function(i,n) {
				n._expcol = true;
				if(n.exportcol === undefined) {
					if(n.hidden) {
						n._expcol = false;
					}
				} else {
					n._expcol = n.exportcol;
				}
				if(n.name === 'cb' || n.name === 'rn' || n.name === 'subgrid' || n.name === 'sc') {
					n._expcol = false;
				}
				if(n._expcol) {
					albl.push( $.jgrid.formatCellCsv( clbl[i], p) );
					def.push( n.name ); // clbl[i];
				}
			});

			if(p.includeLabels) {
				lbl = albl.join( p.separator ) + p.newLine;
			}

			p.collen = albl.length;

			if( $t.p.grouping ) {
				var savlcgr = $t.p.groupingView._locgr ? true : false;
				$t.p.groupingView._locgr = false;
				str += groupToCsv(data1, p);
				$t.p.groupingView._locgr  = savlcgr;

			}  else {
				while(j < dlen) {
					row = data1[j];
					tmp = [];
					k =0;
					for(i = 0; i < cmlen; i++) {
						if(cm[i]._expcol) {
							tmp[k] = $.jgrid.formatCellCsv( $.jgrid.formatCell( $.jgrid.getAccessor(row, cm[i].name) , i, row, cm[i], $t, 'csv' ), p );
							k++;
						}
					}
					str += tmp.join( p.separator ) + p.newLine;
					j++;
				}
			}
			data1 = null; // free
			// get the column length.
			tmp = new Array(p.collen);
			if(p.includeCaption && $t.p.caption) {
				j=p.collen;
				while(--j) {tmp[j]="";}
				tmp[0] = $.jgrid.formatCellCsv( $t.p.caption, p );
				cap += tmp.join( p.separator ) + p.newLine;
			}
			if(p.includeGroupHeader && $($t).jqGrid('isGroupHeaderOn')) {
				var gh = $t.p.groupHeader;
				for (i=0;i < gh.length; i++) {
					var ghdata = gh[i].groupHeaders;
					j = 0; tmp = [];
					for(key=0; key<def.length; key++ ) {
						//if(!def.hasOwnProperty( key )) {
						//	continue;
						//}
						tmp[j] = '';
						for(k=0;k<ghdata.length;k++) {
							if(ghdata[k].startColumnName === def[key]) {
								tmp[j]= $.jgrid.formatCellCsv( ghdata[k].titleText, p);
							}
						}
						j++;
					}
					hdr += tmp.join( p.separator ) + p.newLine;
				}
			}
			var hlen, il;
			if(p.includeFooter && $t.p.footerrow) {
				// already formated
				hlen = $($t).jqGrid("footerData", "getlength");
				var frows, fc;
				for(il=0;il<hlen;il++) {
					frows = $($t).jqGrid("footerData", "get", null, false, il, false);
					i=0; tmp=[];
					while(i < p.collen){
						fc = def[i];
						if(frows.hasOwnProperty(fc) ) {
							tmp.push( $.jgrid.formatCellCsv( $.jgrid.stripHtml( frows[fc] ), p ) );
						}
						i++;
					}
					ftr += tmp.join( p.separator ) + p.newLine;
				}
			}
			if(p.includeHeader && $t.p.headerrow) {
				var hrows, hc;
				hlen = $($t).jqGrid("headerData", "getlength");
				for(il=0;il<hlen;il++) {
					hrows = $($t).jqGrid("headerData", "get", null, false, il, false);
				i=0; tmp=[];
				while(i < p.collen){
						hc = def[i];
					if(hrows.hasOwnProperty(hc) ) {
						tmp.push( $.jgrid.formatCellCsv( $.jgrid.stripHtml( hrows[hc] ), p ) );
					}
					i++;
				}
				htr += tmp.join( p.separator ) + p.newLine;
			}
			}
			ret = cap + hdr + lbl + htr + str + ftr;
			if( $.jgrid.isFunction( p.loadIndicator )) {
				p.loadIndicator.call($t,'hide');
			} else if(p.loadIndicator) {
				$($t).jqGrid("progressBar", {method:"hide", loadtype : $t.p.loadui });
			}
			if($.jgrid.isFunction( p.onBeforeExport) ) {
				ret = p.onBeforeExport.call($t,ret);
				if(!ret) {
					throw "Before export does not return data!";
				}
			}
			if (p.returnAsString) {
				//return ret;
			} else {
				// add BOM fix Excel
				if(p.mimetype.toUpperCase().indexOf("UTF-8") !== -1) {
					ret = '\ufeff' + ret;
				}
				$.jgrid.saveAs( ret, p.fileName, { type : p.mimetype });
			}
		});
		return ret;
	},
	/*
	 *
	 * @param object o - settings for the export
	 * @returns excel 2007 document
	 * The method requiere jsZip lib in order to create excel document
	 */
	exportToExcel : function ( o ) {
		o = $.extend(true, {
			includeLabels : true,
			includeGroupHeader : true,
			includeFooter: true,
			includeHeader: true,
			fileName : "jqGridExport.xlsx",
			mimetype : "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
			maxlength : 40, // maxlength for visible string data
			onBeforeExport : null,
			customizeData : null,
			replaceStr : null,
			treeindent : ' ',
			visibleTreeNodes : false,
			loadIndicator : true // can be a function
		}, o || {} );
		this.each(function() {
			var $t = this,
			es = $.jgrid.excelStrings,
			rowPos = 0,
			rels = $.parseXML( es['xl/worksheets/sheet1.xml']),
			relsGet = rels.getElementsByTagName( "sheetData" )[0],
			styleSh = $.parseXML( es['xl/styles.xml']), //xlsx.xl["styles.xml"];

			//= styleSh.getElementsByTagName("numFmts")[0],
			//celsX = styleSh.getElementsByTagName("cellXfs")[0],

			xlsx = {
				_rels: {
					".rels": $.parseXML( es['_rels/.rels'])
				},
				xl: {
					_rels: {
						"workbook.xml.rels": $.parseXML( es['xl/_rels/workbook.xml.rels'])
					},
					"workbook.xml": $.parseXML( es['xl/workbook.xml']),
					"styles.xml": styleSh, //$.parseXML( es['xl/styles.xml']),
					"worksheets": {
						"sheet1.xml": rels
					}
				},
				"[Content_Types].xml": $.parseXML( es['[Content_Types].xml'])
			},
			cm = $t.p.colModel,
			i=0, j, ien,
			data = {
				body  : $t.p.treeGrid ? $($t).jqGrid('getRowData', null, true, o.treeindent, o.visibleTreeNodes) : $t.addLocalData( true ),
				header : [],
				footer : [],
				width : [],
				map : [],
				parser :[],
				labels : [],
				hidden : [],
				mergecell:[]
			};
			var defaultHeaderStyle = $.jgrid.addExcelStyle( {excel_header_style:""}, {fontId :"2", applyAlignment : "1"} , {horizontal: "center", vertical :"center"}, styleSh).excel_header_style;
			for ( j=0, ien=cm.length ; j<ien ; j++ ) {
				cm[j]._expcol = true;
				if(cm[j].exportcol === undefined) {
					if(cm[j].hidden) {
						cm[j]._expcol = false;
					}
				} else {
					cm[j]._expcol = cm[j].exportcol;
				}
				if(cm[j]._colspancell === undefined) {
					cm[j]._colspancell = false;
				}
				if( $.jgrid.isServiceCol(cm[j].name) || !cm[j]._expcol ) {
					data.hidden.push(cm[j].name);
					continue;
				}
				data.header[i] = cm[j].name;
				data.width[ i ] = 5;
				data.map[i] = j;
				//data.parser[j] = $.jgrid.addExcelStyle( cm[j].hasOwnProperty('exportoptions') ? $.extend( {}, cm[j].exportoptions ) : {} );
				data.labels[i] = $t.p.colNames[j];
				if(cm[j].hasOwnProperty('exportoptions')) {
					var ef={}, ehf={};
					if(cm[j].exportoptions.excel_format) {
						ef = $.jgrid.addExcelStyle( { excel_format : cm[j].exportoptions.excel_format, excel_style : cm[j].exportoptions.excel_style || ""}, {}, {}, styleSh );
					}
					if(cm[j].exportoptions.excel_header_format) {
						ehf = $.jgrid.addExcelStyle( { excel_header_format : cm[j].exportoptions.excel_header_format, excel_header_style : cm[j].exportoptions.excel_header_style || ""}, {fontId:"2",applyAlignment:"1" },{horizontal:"center"}, styleSh );
					}
					data.parser[j] = $.extend (ef,ehf);
					if(cm[j].exportoptions.replace_format) {
						data.parser[j].replace_format = cm[j].exportoptions.replace_format;
					}
					if(cm[j].exportoptions.replace_header_format) {
						data.parser[j].replace_header_format = cm[j].exportoptions.replace_header_format;
					}
				} else {
					data.parser[j] =  { excel_parsers : true };
				}
				
				i++;
			}
			if ( o.includeFooter || $t.p.footerrow) {
				var dfl = $($t).jqGrid("footerData", "getlength"), dil, dfooter;
				for(dil=0; dil<dfl; dil++) {
					dfooter = $($t).jqGrid("footerData", "get", null, false, dil, false);
					for( i in dfooter) {
						if(dfooter.hasOwnProperty(i)) {
							dfooter[i] = $.jgrid.stripHtml(dfooter[i]);
					}
				}
					data.footer.push( dfooter);
			}
			}
			if( $.jgrid.isFunction(o.customizeData) ) {
				o.customizeData.call($t, data);
			}
			function _replStrFunc (v) {
				return v.replace(/</g, '&lt;')
						.replace(/>/g, '&gt;')
						.replace(/[\x00-\x09\x0B\x0C\x0E-\x1F\x7F-\x9F]/g, '');
			}
			function _makeCellSpecial ( p, v ) {
				return $.jgrid.makeNode(
						rels,
						'c',
						{
							attr: p,
							children: [	$.jgrid.makeNode( rels, 'v', { text: v } ) ]
						});
			}
			function _makeCellFunction ( p, v ) {
				return $.jgrid.makeNode(
						rels,
						'c',
						{
							attr: p,
							children: [	$.jgrid.makeNode( rels, 'f', { text: v } ) ]
						});
			}
			function _makeCellString ( cellId, text, estyle ) {
				if( estyle === undefined) {
					estyle = 68;
				}
				return $.jgrid.makeNode(
						rels,
						'c',
						{
							attr: { t: 'inlineStr', r: cellId, s: estyle },
							children:{ row: $.jgrid.makeNode( rels, 'is',
								{
									children: {
										row: $.jgrid.makeNode( rels, 't', {	text: text} )
									}
								})
							}
						} );
			}
			function linkParse(strLinkHTML) {
				var oDiv, oNode;

				(oDiv = document.createElement('div')).innerHTML = strLinkHTML;
				oNode = oDiv.firstChild;
				if(oNode.nodeName === 'A' ) {
					return [oNode.href,oNode.text];
				} else if (oNode.nodeName === '#text') {
					return [oNode.textContent,oNode.textContent];
				}
				return false;

			}

			var _replStr = $.jgrid.isFunction(o.replaceStr) ? o.replaceStr : _replStrFunc,
			currentRow, rowNode,
			addRow = function ( row, header, labels, skipfirstcol ) {
				if(labels===undefined) {
					labels = false;
				}
				if(skipfirstcol===undefined) {
					skipfirstcol = false;
				}
				currentRow = rowPos+1;
				rowNode = $.jgrid.makeNode( rels, "row", { attr: {r:currentRow} } );
				var maxieenum = 15, text, omit;
				for ( var i =0; i < data.header.length; i++) {
					// key = cm[i].name;
					// Concat both the Cell Columns as a letter and the Row of the cell.
					var cellId = $.jgrid.excelCellPos(i) + '' + currentRow,
					cell,
					match,
					v= (Array.isArray(row) && header) ? data.labels[i] : $.jgrid.getAccessor( row,  data.header[i] );
					if ( v == null ) {
						v = '';
					}
					if(!header) {
						omit = (i===0 && skipfirstcol);
						v = omit || (skipfirstcol && v==='') ? v : $.jgrid.formatCell( v, data.map[i], row, cm[data.map[i]], $t, 'excel');
						// convert whitespace from formatter to empty string
						if(v && (v==='&nbsp;' || v==='&#160;' || (v.length===1 && v.charCodeAt(0)===160))) { 
							v = '';
						}
					}
					data.width[i] = Math.max(data.width[i], Math.min(parseInt(v.toString().length,10), o.maxlength) );
					cell = null;
					var expo = data.parser[data.map[i]];
					if( header && labels) {
						if(expo.replace_header_format) {
							v = expo.replace_header_format(v);
						}
						if(expo.excel_header_style !== undefined) {
							if(expo.excel_header_style === 'text') {
								cell = _makeCellString( cellId, v);
							} else if (expo.excel_header_style <= 55) { 
								cell = _makeCellString( cellId, v, expo.excel_header_style);
								//cell = _makeCellSpecial( {r: cellId,s: expo.excel_style}, v );
							} else {
								cell = _makeCellSpecial( {r: cellId,s: expo.excel_header_style}, v );
							}
						} else {
							cell = _makeCellString( cellId, v, defaultHeaderStyle);
						}
						rowNode.appendChild( cell );
					} else if( expo.excel_parsers === true && !cell) {
						for ( var j=0, jen=$.jgrid.excelParsers.length ; j<jen ; j++ ) {
							var special = $.jgrid.excelParsers[j];

							if ( v.match && ! v.match(/^0\d+/) && v.match( special.match ) ) {
								var a = v;
								v = v.replace(/[^\d\.\-]/g, '');
								if ( special.fmt ) {
									v = special.fmt( v );
								}
								if(special.style === 67) { //Dates
									cell = _makeCellSpecial( { t: 'd', r: cellId, s: special.style }, v);
								}  else if(special.style === 4) { // hyperlink
									v = linkParse (a);
									if(v) {
										cell = _makeCellFunction( { t: 'str', r: cellId, s: special.style }, 'HYPERLINK(\"'+v[0]+'\",\"'+v[1]+'\")');
									} else {
										cell = _makeCellString( cellId, a);
									}
								} else {
									if(  $.inArray( special.style, ["63", "64", "65", "66"]) ) { // Numbers

										if( v.toString().length > maxieenum ) {
											text = ! a.replace ? a : _replStr(a);
											cell = _makeCellString( cellId, text);
											rowNode.appendChild( cell );
											break;
										}
									}
									cell = _makeCellSpecial( {r: cellId,s: special.style}, v );
								}
								rowNode.appendChild( cell );
								break;
							}
						}
					} else if( expo.excel_style !== undefined  && !header && !cell) {
						if(expo.replace_format) {
							v = expo.replace_format(v);
						}
						if(expo.excel_style === 'text') {
							cell = _makeCellString( cellId, v);
						} else if (expo.excel_style <= 55) { 
							cell = _makeCellString( cellId, v, expo.excel_style);
							//cell = _makeCellSpecial( {r: cellId,s: expo.excel_style}, v );
						} else {
						cell = _makeCellSpecial( {r: cellId,s: expo.excel_style}, v );
						}
						rowNode.appendChild( cell );
					}
					if( ! cell ) {
						// Detect numbers - don't match numbers with leading zeros or a negative
						if(v.match) {
							match = v.match(/^-?([1-9]\d+)(\.(\d+))?$/);
						}
						if ( (typeof v === 'number' && v.toString().length <= maxieenum) || (
								match &&
								(match[1].length + (match[2] ? match[3].length : 0) <= maxieenum))
						) {
							cell = _makeCellSpecial( {t: 'n', r: cellId }, v );
						} else {
							// Replace non standard characters for text output
							text = ! v.replace ? v : _replStr(v);
							cell = _makeCellString( cellId, text);
						}
						rowNode.appendChild( cell );
					}
				}
				relsGet.appendChild(rowNode);
				rowPos++;
			};
//=========================================================================
			function groupToExcel ( grdata ) {
				var grp = $t.p.groupingView,
				cp=[], len =grp.groupField.length,
				colspans = cm.length,
				toEnd = 0;
					$.each(cm, function (i,n){
					var ii;
					for(ii=0;ii<len;ii++) {
						if(grp.groupField[ii] === n.name ) {
							cp[ii] = i;
							break;
						}
					}
				});
				function findGroupIdx( ind , offset, grp) {
					var ret = false, i;
					if(offset===0) {
						ret = grp[ind];
					} else {
						var id = grp[ind].idx;
						if(id===0) {
							ret = grp[ind];
						}  else {
							for(i=ind;i >= 0; i--) {
								if(grp[i].idx === id-offset) {
									ret = grp[i];
									break;
								}
							}
						}
					}
					return ret;
				}
				function buildSummaryTd(i, ik, grp, foffset) {
					var fdata = findGroupIdx(i, ik, grp),
					//cm = $t.p.colModel,
					vv, grlen = fdata.cnt, k, retarr = emptyData(data.header);
					for(k=foffset; k<colspans;k++) {
						if(!cm[k]._expcol) {
							continue;
						}
						var tplfld = "{0}";
						$.each(fdata.summary,function(){
							if(this.nm === cm[k].name) {
								if(cm[k].summaryTpl)  {
									tplfld = cm[k].summaryTpl;
								}
								vv = this.v;
								if(typeof this.st === 'string' && this.st.toLowerCase() === 'avg') {
									if(this.sd && this.vd) {
										vv = (this.v/this.vd);
									} else if(this.v && grlen > 0) {
										vv = (this.v/grlen);
									}
								}
								try {
									this.groupCount = fdata.cnt;
									this.groupIndex = fdata.dataIndex;
									this.groupValue = fdata.value;
									//vv = $t.formatter('', this.v, k, this);
									//vv = this.v;
								} catch (ef) {
									vv = this.v;
								}
								retarr[this.nm] = $.jgrid.stripHtml( $.jgrid.template(tplfld,vv) );
								return false;
							}
						});
					}
					return retarr;
				}
				function emptyData ( d ) {
					var clone = {};
					for(var key=0;key<d.length; key++ ) {
						clone[ d[key] ] = "";
					}
					return clone;
				}
				var sumreverse = $.makeArray(grp.groupSummary), gv;
				sumreverse.reverse();
				if($t.p.datatype === 'local' && !$t.p.loadonce) {
					$($t).jqGrid('groupingSetup');
					var groupingPrepare = $.jgrid.getMethod("groupingPrepare");
					for(var ll=0; ll < data.body.length; ll++) {
						groupingPrepare.call($($t), data.body[ll], ll);
					}
				}
				$.each(grp.groups,function(i,n){
					toEnd++;
					try {
						if (Array.isArray(grp.formatDisplayField) && $.jgrid.isFunction(grp.formatDisplayField[n.idx])) {
							gv = grp.formatDisplayField[n.idx].call($t, n.displayValue, n.value, $t.p.colModel[cp[n.idx]], n.idx, grp);
						} else {
							gv = $t.formatter('', n.displayValue, cp[n.idx], n.value );
						}
					} catch (egv) {
						gv = n.displayValue;
					}
					var grpTextStr = '';
					if($.jgrid.isFunction(grp.groupText[n.idx])) {
						grpTextStr = grp.groupText[n.idx].call($t, gv, n.cnt, n.summary);
					} else {
						grpTextStr = $.jgrid.template(grp.groupText[n.idx], gv, n.cnt, n.summary);
					}
					if( !(typeof grpTextStr ==='string' || typeof grpTextStr ==='number' ) ) {
						grpTextStr = gv;
					}
					var arr;
					if(grp.groupSummaryPos[n.idx] === 'header')  {
						arr = buildSummaryTd(i, 0, grp.groups, 0 /*grp.groupColumnShow[n.idx] === false ? (mul ==="" ? 2 : 3) : ((mul ==="") ? 1 : 2)*/ );
					} else {
						arr = emptyData(data.header);
					}
					var fkey = Object.keys(arr);
					arr[fkey[0]] = $.jgrid.stripHtml( new Array(n.idx*5).join(' ') + grpTextStr );
					addRow( arr, false, false, true );
					var leaf = len-1 === n.idx;
					if( leaf ) {
						var gg = grp.groups[i+1], kk, ik, offset = 0, sgr = n.startRow,
						end = gg !== undefined ?  gg.startRow : grp.groups[i].startRow + grp.groups[i].cnt;
						for(kk=sgr;kk<end;kk++) {
							if(!grdata[kk - offset]) { break; }
							var to = grdata[kk - offset];
							addRow( to, false );
						}

						if(grp.groupSummaryPos[n.idx] !== 'header') {
							var jj;
							if (gg !== undefined) {
								for (jj = 0; jj < grp.groupField.length; jj++) {
									if (gg.dataIndex === grp.groupField[jj]) {
										break;
									}
								}
								toEnd = grp.groupField.length - jj;
							}
							for (ik = 0; ik < toEnd; ik++) {
								if(!sumreverse[ik]) { continue; }
								arr = buildSummaryTd(i, ik, grp.groups, 0);
								addRow( arr, false, false, true );
							}
							toEnd = jj;
						}
					}
				});
			}
//============================================================================
			if( $.jgrid.isFunction( o.loadIndicator )) {
				o.loadIndicator.call($t, 'show');
			} else if(o.loadIndicator) {
				$($t).jqGrid("progressBar", {method:"show", loadtype : $t.p.loadui, htmlcontent: $.jgrid.getRegional($t,'defaults.loadtext') });
			}
			$( 'sheets sheet', xlsx.xl['workbook.xml'] ).attr( 'name', o.sheetName );
			var mrow =0,  gh , mergecell=[],key, l, clone ={}, ind, ghdata, start, end;
			if(o.includeGroupHeader && $($t).jqGrid('isGroupHeaderOn') ) {
				gh = $t.p.groupHeader;
				for (l = 0; l < gh.length; l++) {
					ghdata = gh[l].groupHeaders;
					var colspan = gh[l].useColSpanStyle && gh.length === 1, colToSkip=[],
					ghputin = [], colInHeader = [], k, nok, cpos, fk;
					mrow++;
					// column to skip
					if(colspan) {
						for(k = 0; k < ghdata.length; k++) {
							key = ghdata[k].startColumnName;
							nok = ghdata[k].numberOfColumns;
							cpos = $.jgrid.getElemByAttrVal (cm,  'name', key, true) ;
							for(fk = cpos; fk < cpos + ghdata[k].numberOfColumns;fk++) {
								colInHeader[cm[fk].name] = key;
								ind = data.header.indexOf(cm[fk].name);
								if(  ind !== -1) {
									colToSkip.push(ind);
								}
							}
						}
					}
					
					for(j = 0; j < data.header.length; j++  ) {
						key = data.header[j];
						clone[key] = colspan ? data.labels[j] : "";
						start = -1; end = -1;
						for(k = 0; k < ghdata.length; k++) {
							if(ghdata[k].startColumnName === key) {
								ghputin.push(key);
								clone[key] = ghdata[k].titleText;
								nok = ghdata[k].numberOfColumns;
								cpos = $.jgrid.getElemByAttrVal (cm,  'name', key, true) ;
								for(fk = cpos; fk < cpos + ghdata[k].numberOfColumns;fk++) {
									if(cm[fk].hidden === true) {
										nok--;
									}
								}
								start = $.jgrid.excelCellPos(j) + mrow;
								end = $.jgrid.excelCellPos(j+ nok - 1) + mrow;

								mergecell.push({ ref: start+":"+end });
									}
								}
						if(start === -1 && end === -1 && colspan && colToSkip.indexOf(j) === -1) {
							start = $.jgrid.excelCellPos(j) + mrow;
							end = $.jgrid.excelCellPos(j) + (mrow + 1);
							mergecell.push({ ref: start+":"+end });
						}
					}
					// we are lost - need to find way					
					if(ghputin.length < ghdata.length) {
						for(k=0;k < data.hidden.length;k++) {
							var icol = $.jgrid.inColumnHeader(data.hidden[k], ghdata);
							// if hidden startColumnName 
							if(icol >= 0 ) {
								key = data.hidden[k];
								for(var key2 in colInHeader) {
									if(colInHeader[key2] === key) {
										if(clone[key2]) { // first visible in group
											clone[key2] = ghdata[icol].titleText;
											ind  = data.header.indexOf(key2);
											nok = ghdata[icol].numberOfColumns;
											cpos = $.jgrid.getElemByAttrVal (cm,  'name', key, true) ;
											for(fk = cpos; fk < cpos + ghdata[icol].numberOfColumns;fk++) {
												if(cm[fk].hidden === true) {
													nok--;
												}
											}
											start = $.jgrid.excelCellPos(ind) + mrow;
											end = $.jgrid.excelCellPos(ind+ nok - 1) + mrow;
											mergecell.push({ ref: start+":"+end });
											break;
										}
									}
								}
							}
						}
					}					
					addRow( clone, true, true );
				}

				//$('row c', rels).attr( 's', defaultHeaderStyle ); // bold

					}
			if ( o.includeLabels ) {
				if($t.p.colSpanHeader.length) {
					mrow++; gh = $t.p.colSpanHeader; clone ={};
					for(j = 0; j < data.header.length; j++  ) {
						key = data.header[j];
						clone[key] =  data.labels[j];
						for (l = 0; l < gh.length; l++) {
							ghdata = gh[l];
							if(ghdata.startColumnName === key) {
								clone[key] = ghdata.titleText;
								start = $.jgrid.excelCellPos(j) + mrow;
								end = $.jgrid.excelCellPos(j+ghdata.numberOfColumns -1) + mrow;
								mergecell.push({ ref: start+":"+end });
							}
						}
					}
					addRow( clone, true, true );
				} else {
				addRow( data.header, true, true );
				}
			
				//$('row', rels).last().find('c').attr( 's', '2' ); // bold
			}
			if (data.mergecell.length) {
			  mergecell = mergecell.concat(data.mergecell);
			}
			if(mergecell.length) {
				var merge = $.jgrid.makeNode( rels, 'mergeCells', {
					attr : {
						count : mergecell.length
					}
				});
				$('worksheet', rels).append( merge );
				for(i=0;i<mergecell.length;i++) {
					merge.appendChild($.jgrid.makeNode(rels, 'mergeCell',{
						attr:  mergecell[i]
					}));
				}
			}
			if ( o.includeHeader || $t.p.headerrow) {
				var hlen = $($t).jqGrid("headerData", "getlength"), il, hdata;
				for(il=0; il < hlen; il++) {
					hdata = $($t).jqGrid("headerData", "get", null, false, il, false);
				for( i in hdata) {
					if(hdata.hasOwnProperty(i)) {
						hdata[i] = $.jgrid.stripHtml(hdata[i]);
					}
				}
				if(!$.isEmptyObject(hdata)) {
					addRow( hdata, true );
					$('row', rels).last().find('c').attr( 's', '2' ); // bold
				}
			}
			}
			if( $t.p.grouping ) {
				var savlcgr = $t.p.groupingView._locgr ? true : false;
				$t.p.groupingView._locgr = false;
				groupToExcel(data.body);
				$t.p.groupingView._locgr = savlcgr;
			} else {
				for ( var n=0, ie=data.body.length ; n<ie ; n++ ) {
					addRow( data.body[n], false );
				}
			}
			if ( o.includeFooter || $t.p.footerrow) {
				if(!$.isEmptyObject(data.footer)) {
					if(Array.isArray(data.footer)) {
						for(var n=0;n<data.footer.length;n++) {
							addRow( data.footer[n], true );
							$('row', rels).last().find('c').attr( 's', '2' ); // bold
						}
					} else {
						addRow( data.footer, true );
						$('row', rels).last().find('c').attr( 's', '2' ); // bold						
					}
				}
			}

			// Set column widths
			var cols = $.jgrid.makeNode( rels, 'cols' );
			$('worksheet', rels).prepend( cols );

			for ( i=0, ien=data.width.length ; i<ien ; i++ ) {
				cols.appendChild( $.jgrid.makeNode( rels, 'col', {
					attr: {
						min: i+1,
						max: i+1,
						width: data.width[i],
						customWidth: 1
					}
				} ) );
			}
			if($.jgrid.isFunction( o.onBeforeExport) ) {
				o.onBeforeExport.call($t, xlsx, rowPos );
			}
			data = null; // free memory
			try {
				var zip = new JSZip();
				var zipConfig = {
					type: 'blob',
					mimeType: o.mimetype
				};
				$.jgrid.xmlToZip( zip, xlsx );
				if ( zip.generateAsync ) {
					// JSZip 3+
					zip.generateAsync( zipConfig )
					.then( function ( blob ) {
						$.jgrid.saveAs( blob, o.fileName, { type : o.mimetype } );
					});
				} else {
					// JSZip 2.5
					$.jgrid.saveAs( zip.generate( zipConfig ), o.fileName, { type : o.mimetype } );				}
			} catch(e) {
				throw e;
			} finally {
				if( $.jgrid.isFunction( o.loadIndicator )) {
					o.loadIndicator.call($t, 'hide');
				} else if(o.loadIndicator) {
					$($t).jqGrid("progressBar", {method:"hide", loadtype : $t.p.loadui });
				}
			}
		});
	},
	exportToPdf : function (o) {
		o = $.extend(true,{
			title: null,
			orientation: 'portrait',
			pageSize: 'A4',
			description: null,
			onBeforeExport: null,
			download: 'download',
			includeLabels : true,
			includeGroupHeader : true,
			includeFooter : true,
			includeHeader : true,
			fileName : "jqGridExport.pdf",
			mimetype : "application/pdf",
			treeindent : "-",
			visibleTreeNodes : false,
			centerTableOnPage : false,
			loadIndicator : true // can be a function

		}, o || {} );
		return this.each(function() {
			var $t = this, rows = [], j, cm = $t.p.colModel, ien, obj = {}, key,
			data = $t.p.treeGrid ? $($t).jqGrid('getRowData', null, true, o.treeindent, o.visibleTreeNodes) : $t.addLocalData( true ),  def = [], i=0, map=[], test=[], widths = [],  align={};
// Group function
			function groupToPdf ( grdata ) {
				var grp = $t.p.groupingView,
				cp=[], len =grp.groupField.length,
				cm = $t.p.colModel,
				colspans = cm.length,
				toEnd = 0;

				$.each(cm, function (i,n){
					var ii;
					for(ii=0;ii<len;ii++) {
						if(grp.groupField[ii] === n.name ) {
							cp[ii] = i;
							break;
						}
					}
				});

				function constructRow( row, fmt, skipfirstcol ) {
					var k =0, test=[], ommit, val;
					if(skipfirstcol === undefined ) {
						skipfirstcol = false;
					}
					//row = data[i];
					for( var key=0; key < def.length; key++ ) {
						ommit = !(key === 0 && skipfirstcol);// ? false : true;
						val = row[def[key]];
						obj = {
							text: val == null || val === '' ? '' : (fmt && ommit ? $.jgrid.formatCell( val + '', map[k], data[i], cm[map[k]], $t, 'pdf') : val),
							alignment : align[key],
							style : 'tableBody'
						};
						test.push(obj);
						k++;
					}
					return test;
				}

				function findGroupIdx( ind , offset, grp) {
					var ret = false, i;
					if(offset===0) {
						ret = grp[ind];
					} else {
						var id = grp[ind].idx;
						if(id===0) {
							ret = grp[ind];
						}  else {
							for(i=ind;i >= 0; i--) {
								if(grp[i].idx === id-offset) {
									ret = grp[i];
									break;
								}
							}
						}
					}
					return ret;
				}

				function buildSummaryTd(i, ik, grp, foffset) {
					var fdata = findGroupIdx(i, ik, grp),
					//cm = $t.p.colModel,
					vv, grlen = fdata.cnt, k, retarr = emptyData(def);
					for(k=foffset; k<colspans;k++) {
						if(!cm[k]._expcol) {
							continue;
						}
						var tplfld = "{0}";
						$.each(fdata.summary,function(){
							if(this.nm === cm[k].name) {
								if(cm[k].summaryTpl)  {
									tplfld = cm[k].summaryTpl;
								}
								vv = this.v;
								if(typeof this.st === 'string' && this.st.toLowerCase() === 'avg') {
									if(this.sd && this.vd) {
										vv = (this.v/this.vd);
									} else if(this.v && grlen > 0) {
										vv = (this.v/grlen);
									}
								}
								try {
									this.groupCount = fdata.cnt;
									this.groupIndex = fdata.dataIndex;
									this.groupValue = fdata.value;
									//vv = this.v;
								} catch (ef) {
									vv = this.v;
								}
								retarr[this.nm] = $.jgrid.stripHtml( $.jgrid.template(tplfld,vv) );
								return false;
							}
						});
					}
					return retarr;
				}

				function emptyData ( d ) {
					var clone = {};
					for(var key = 0; key< d.length; key++ ) {
						clone[d[key]] = "";
					}
					return clone;
				}

				var sumreverse = $.makeArray(grp.groupSummary), gv;
				sumreverse.reverse();
				if($t.p.datatype === 'local' && !$t.p.loadonce) {
					$($t).jqGrid('groupingSetup');
					var groupingPrepare = $.jgrid.getMethod("groupingPrepare");
					for(var ll=0; ll < data.length; ll++) {
						groupingPrepare.call($($t), data[ll], ll);
					}
				}
				$.each(grp.groups,function(i,n){
					toEnd++;
					try {
						if (Array.isArray(grp.formatDisplayField) && $.jgrid.isFunction(grp.formatDisplayField[n.idx])) {
							gv = grp.formatDisplayField[n.idx].call($t, n.displayValue, n.value, $t.p.colModel[cp[n.idx]], n.idx, grp);
						} else {
							gv = $t.formatter('', n.displayValue, cp[n.idx], n.value );
						}
					} catch (egv) {
						gv = n.displayValue;
					}
					var grpTextStr = '';
					if($.jgrid.isFunction(grp.groupText[n.idx])) {
						grpTextStr = grp.groupText[n.idx].call($t, gv, n.cnt, n.summary);
					} else {
						grpTextStr = $.jgrid.template(grp.groupText[n.idx], gv, n.cnt, n.summary);
					}
					if( !(typeof grpTextStr ==='string' || typeof grpTextStr ==='number' ) ) {
						grpTextStr = gv;
					}
					var arr;
					if(grp.groupSummaryPos[n.idx] === 'header')  {
						arr = buildSummaryTd(i, 0, grp.groups, 0 /*grp.groupColumnShow[n.idx] === false ? (mul ==="" ? 2 : 3) : ((mul ==="") ? 1 : 2)*/ );
					} else {
						arr = emptyData(def);
					}
					var fkey = Object.keys(arr);
					arr[fkey[0]] = $.jgrid.stripHtml( new Array(n.idx*5).join(' ') + grpTextStr );
					rows.push( constructRow (arr, true, true) );
					var leaf = len-1 === n.idx;
					if( leaf ) {
						var gg = grp.groups[i+1], kk, ik, offset = 0, sgr = n.startRow,
						end = gg !== undefined ?  gg.startRow : grp.groups[i].startRow + grp.groups[i].cnt;
						for(kk=sgr;kk<end;kk++) {
							if(!grdata[kk - offset]) { break; }
							var to = grdata[kk - offset];
							rows.push( constructRow (to, true) );
						}

						if(grp.groupSummaryPos[n.idx] !== 'header') {
							var jj;
							if (gg !== undefined) {
								for (jj = 0; jj < grp.groupField.length; jj++) {
									if (gg.dataIndex === grp.groupField[jj]) {
										break;
									}
								}
								toEnd = grp.groupField.length - jj;
							}
							for (ik = 0; ik < toEnd; ik++) {
								if(!sumreverse[ik]) { continue; }
								arr = buildSummaryTd(i, ik, grp.groups, 0);
								rows.push( constructRow (arr, true, true) );
							}
							toEnd = jj;
						}
					}
				});
			}
//============================================================================
			if( $.jgrid.isFunction( o.loadIndicator )) {
				o.loadIndicator.call($t, 'show');
			} else if(o.loadIndicator) {
				$($t).jqGrid("progressBar", {method:"show", loadtype : $t.p.loadui, htmlcontent: $.jgrid.getRegional($t,'defaults.loadtext') });
			}
			var k;
			for ( j=0, ien=cm.length ; j<ien ; j++ ) {
				cm[j]._expcol = true;
				if(cm[j].exportcol === undefined ) {
					if(cm[j].hidden) {
						cm[j]._expcol = false;
					}
				} else {
					cm[j]._expcol = cm[j].exportcol;
				}
				if( $.jgrid.isServiceCol(cm[j].name)  || !cm[j]._expcol ) {
					continue;
				}
				obj = { text:  $t.p.colNames[j], style: 'tableHeader' };
				test.push( obj );
				def[i]  = cm[j].name;
				map[i] = j;
				widths.push(cm[j].width);
				align[cm[j].name] = cm[j].align || 'left';
				i++;
			}
			var gh, clone;
			if(o.includeGroupHeader && $($t).jqGrid('isGroupHeaderOn') ) {
				gh = $t.p.groupHeader;
				for (i=0;i < gh.length; i++) {
					clone = [];
					var ghdata = gh[i].groupHeaders,
					colSpan = gh[i].useColSpanStyle;
					for(key=0; key < cm.length; key++ ) {
						/*
						if(colSpan) {
							obj = {text: $t.p.colNames[key], style: 'tableHeader', rowSpan : 2, verticalAlign : "center"};
						} else {
							obj = {text:'', style: 'tableHeader'};
						}
						*/
						var put_me = true;
						if( $.jgrid.isServiceCol( cm[key].name ) || !cm[key]._expcol ) {
							put_me = false;
						} else {
							if(colSpan) {
								obj = {text: $t.p.colNames[key], style: 'tableHeader', rowSpan : 2, verticalAlign : "center"};
							} else {
								obj = {text:'', style: 'tableHeader'};
							}		
						}
						for(k=0;k<ghdata.length;k++) {
							if(ghdata[k].startColumnName === cm[key].name) {
								var nok = ghdata[k].numberOfColumns;
								for(var fk = key; fk<key+ghdata[k].numberOfColumns;fk++) {
									if(cm[fk].hidden === true) {
										nok--;
									}
								}
								obj = {
									text : ghdata[k].titleText,
									colSpan: nok, /*ghdata[k].numberOfColumns,*/
									style: 'tableHeader'
								};
								if(put_me===false && nok >0) {
									put_me = true;
									key=key+(ghdata[k].numberOfColumns-nok);
								}
							}
						}
						if(put_me) {
							clone.push(obj);
						}
						//j++;
					}
					rows.push(clone);
				}
			}

			if(o.includeLabels) {
				if($t.p.colSpanHeader.length) {
					gh = $t.p.colSpanHeader;
					clone = [];
					for(key=0; key < def.length; key++ ) {
						obj = {text: $t.p.colNames[key], style: 'tableHeader', verticalAlign : "center"};
						for(k=0;k<gh.length;k++) {
							if(gh[k].startColumnName === def[key]) {
								obj = {
									text : gh[k].titleText,
									colSpan: gh[k].numberOfColumns,
									style: 'tableHeader'
								};
							}
						}
						clone.push(obj);
						j++;
					}
					rows.push( clone );
				} else { 
				rows.push( test );
			}
			}
			var hlen, il;
			if ( o.includeHeader && $t.p.headerrow) {
				var hdata;
				hlen = $($t).jqGrid("headerData", "getlength");
				for(il=0; il < hlen; il++) {
					hdata = $($t).jqGrid("headerData", "get", null, false, il, false);
				test=[];
				for( key =0; key< def.length; key++) {
					obj  =  {
						text : $.jgrid.stripHtml( $.jgrid.getAccessor(hdata, def[key]) ),
						style : 'tableFooter',
						alignment : align[def[key]]
					};
					test.push( obj );
				}
				rows.push( test );
			}
			}
			if($t.p.grouping) {
				var savlcgr = $t.p.groupingView._locgr ? true : false;
				$t.p.groupingView._locgr = false;
				groupToPdf(data);
				$t.p.groupingView._locgr = savlcgr;
			} else {
				var row;
				for ( i=0, ien=data.length ; i<ien ; i++ ) {
					k =0;
					test=[];
					row = data[i];
					for( key = 0;key < def.length; key++ ) {
						obj	= {
							text: row[def[key]] == null ? '' : $.jgrid.stripHtml($.jgrid.formatCell( $.jgrid.getAccessor(row, def[key]) + '', map[k], data[i], cm[map[k]], $t, 'pdf')),
							alignment : align[def[key]],
							style : 'tableBody'
						};
						test.push(obj);
						k++;
					}
					rows.push(test);
				}
			}

			if ( o.includeFooter && $t.p.footerrow) {
				hlen = $($t).jqGrid("footerData", "getlength");
				for(il=0; il < hlen; il++) {				
					var fdata = $($t).jqGrid("footerData", "get", null, false, il, false);
				test=[];
				for( key =0; key< def.length; key++) {
					obj  =  {
						text : $.jgrid.stripHtml( $.jgrid.getAccessor(fdata, def[key]) ),
						style : 'tableFooter',
						alignment : align[def[key]]
					};
					test.push( obj );
				}
				rows.push( test );
			}
			}
			var tblcnt = {
				style : 'tableExample',
				widths : widths,
				table: {
					headerRows: (gh!=null) ? 0 : 1,
					body: rows
				}
			};
			if(o.centerTableOnPage) {
				tblcnt = {
					columns : [
						{ width: '*', text: '' },
					{
						style : 'tableExample',
							width: 'auto',
						widths : widths,
						table: {
							headerRows: (gh!=null) ? 0 : 1,
							body: rows
							},
							alignment: "center"
						},
						{ width: '*', text: '' }
					]
				};
			}
			var doc = {
				pageSize: o.pageSize,
				pageOrientation: o.orientation,
				content: [ tblcnt ],
				styles: {
					tableHeader: {
						bold: true,
						fontSize: 11,
						color: '#2e6e9e',
						fillColor: '#dfeffc',
						alignment: 'center'
					},
					tableBody: {
						fontSize: 10
					},
					tableFooter: {
						bold: true,
						fontSize: 11,
						color: '#2e6e9e',
						fillColor: '#dfeffc'
					},
					title: {
						alignment: 'center',
						fontSize: 15
					},
					description: {}
				},
				defaultStyle: {
					fontSize: 10
				}
			};
			if ( o.description ) {
				doc.content.unshift( {
					text: o.description,
					style: 'description',
					margin: [ 0, 0, 0, 12 ]
				} );
			}

			if ( o.title ) {
				doc.content.unshift( {
					text: o.title,
					style: 'title',
					margin: [ 0, 0, 0, 12 ]
				} );
			}
			if( $.jgrid.isFunction( o.onBeforeExport ) ) {
				o.onBeforeExport.call($t, doc);
			}
			try {
				var pdf = pdfMake.createPdf( doc );
				pdf.getDataUrl(function(url) {
					if( $.jgrid.isFunction( o.loadIndicator )) {
						o.loadIndicator.call($t, 'hide');
					} else if(o.loadIndicator) {
						$($t).jqGrid("progressBar", {method:"hide", loadtype : $t.p.loadui });
					}
				});
				if ( o.download === 'open' ) {
					pdf.open();
				} else {
					pdf.getBuffer( function (buffer) {
						$.jgrid.saveAs( buffer, o.fileName, {type: o.mimetype } );
					} );
				}

			} catch(e) {
				throw e;
			}
		});
	},
	exportToHtml : function ( o ) {
		o = $.extend(true,{
			title: '',
			onBeforeExport: null,
			includeLabels : true,
			includeGroupHeader : true,
			includeFooter: true,
			includeHeader: true,
			tableClass : 'jqgridprint',
			autoPrint : false,
			topText : '',
			bottomText : '',
			returnAsString : false,
			treeindent : '&nbsp;',
			visibleTreeNodes : false,
			loadIndicator : true // can be a function
		}, o || {} );
		var ret;
		this.each(function() {
			var $t = this,
			cm = $t.p.colModel,
			i=0, j, ien, //obj={},
			data = {
				body  : $t.p.treeGrid ? $($t).jqGrid('getRowData', null, true, o.treeindent, o.visibleTreeNodes) : $t.addLocalData( true ),
				header : [],
				footer : [],
				width : [],
				map : [],
				align:[]
			};
			for ( j=0, ien=cm.length ; j<ien ; j++ ) {
				cm[j]._expcol = true;
				if(cm[j].exportcol === undefined) {
					if(cm[j].hidden) {
						cm[j]._expcol = false;
					}
				} else {
					cm[j]._expcol = cm[j].exportcol;
				}
				if( cm[j].name === 'cb' || cm[j].name === 'rn' ||  cm[j].name === 'subgrid' || cm[j].name === 'sc' || !cm[j]._expcol) {
					continue;
				}
				data.header[i] = cm[j].name;
				data.width[ i ] = cm[j].width;
				data.map[i] = j;
				data.align[i] = cm[j].align || 'left';
				i++;
			}

			var _link = document.createElement( 'a' );

			var _styleToAbs = function( el ) {
				var clone = $(el).clone()[0];

				if ( clone.nodeName.toLowerCase() === 'link' ) {
					clone.href = _relToAbs( clone.href );
				}

				return clone.outerHTML;
			};

			var _relToAbs = function( href ) {
				// Assign to a link on the original page so the browser will do all the
				// hard work of figuring out where the file actually is
				_link.href = href;
				var linkHost = _link.host;

				// IE doesn't have a trailing slash on the host
				// Chrome has it on the pathname
				if ( linkHost.indexOf('/') === -1 && _link.pathname.indexOf('/') !== 0) {
					linkHost += '/';
				}

				return _link.protocol+"//"+linkHost+_link.pathname+_link.search;
			};

			var addRow = function ( d, tag , style ) {
				var str = '<tr>', stl;
				for ( var i=0, ien=d.length ; i<ien ; i++ ) {
					stl = (style === true ? " style=width:"+data.width[i]+"px;":"");
					str += '<'+tag+stl+'>'+$t.p.colNames[data.map[i]]+'</'+tag+'>';
				}

				return str + '</tr>';
			};
			var addBodyRow = function ( d, tag, frm, style, colsp) {
				var str = '<tr>', f, stl;
				//style = true;

				for ( var i=0, ien = data.header.length; i< ien; i++ ) {
					if(colsp) {
						stl = ' colspan= "'+ (data.header.length) +'"' + " style=text-align:left";
					} else {
						stl = (style === true ? " style=width:"+data.width[i]+"px;text-align:"+data.align[i]+";" : " style=text-align:"+data.align[i]+";");
					}
					f= data.header[i];
					if (d.hasOwnProperty(f) ) {
						str += '<'+tag+stl+'>'+ (frm ? $.jgrid.formatCell( $.jgrid.getAccessor( d, f ), data.map[i], d, cm[data.map[i]], $t, 'html') : d[f])+'</'+tag+'>';
					}
					if(colsp) {
						break;
					}
				}

				return str + '</tr>';
			};
//=========================================================================
			function groupToHtml ( grdata ) {
				var grp = $t.p.groupingView,
				cp=[], len =grp.groupField.length,
				colspans = cm.length,
				toEnd = 0, retstr="";
				$.each(cm, function (i,n){
					var ii;
					for(ii=0;ii<len;ii++) {
						if(grp.groupField[ii] === n.name ) {
							cp[ii] = i;
							break;
						}
					}
				});
				function findGroupIdx( ind , offset, grp) {
					var ret = false, i;
					if(offset===0) {
						ret = grp[ind];
					} else {
						var id = grp[ind].idx;
						if(id===0) {
							ret = grp[ind];
						}  else {
							for(i=ind;i >= 0; i--) {
								if(grp[i].idx === id-offset) {
									ret = grp[i];
									break;
								}
							}
						}
					}
					return ret;
				}
				function buildSummaryTd(i, ik, grp, foffset) {
					var fdata = findGroupIdx(i, ik, grp),
					//cm = $t.p.colModel,
					vv, grlen = fdata.cnt, k, retarr = emptyData(data.header);
					for(k=foffset; k<colspans;k++) {
						if(!cm[k]._expcol) {
							continue;
						}
						var tplfld = "{0}";
						$.each(fdata.summary,function(){
							if(this.nm === cm[k].name) {
								if(cm[k].summaryTpl)  {
									tplfld = cm[k].summaryTpl;
								}
								vv = this.v;
								if(typeof this.st === 'string' && this.st.toLowerCase() === 'avg') {
									if(this.sd && this.vd) {
										vv = (this.v/this.vd);
									} else if(this.v && grlen > 0) {
										vv = (this.v/grlen);
									}
								}
								try {
									this.groupCount = fdata.cnt;
									this.groupIndex = fdata.dataIndex;
									this.groupValue = fdata.value;
									//vv = $t.formatter('', this.v, k, this);
									//vv = this.v;
								} catch (ef) {
									vv = this.v;
								}
								retarr[this.nm] = $.jgrid.stripHtml( $.jgrid.template(tplfld,vv) );
								return false;
							}
						});
					}
					return retarr;
				}
				function emptyData ( d ) {
					var clone = {};
					for(var key=0;key<d.length; key++ ) {
						clone[ d[key] ] = "";
					}
					return clone;
				}
				var sumreverse = $.makeArray(grp.groupSummary), gv;
				sumreverse.reverse();
				if($t.p.datatype === 'local' && !$t.p.loadonce) {
					$($t).jqGrid('groupingSetup');
					var groupingPrepare = $.jgrid.getMethod("groupingPrepare");
					for(var ll=0; ll < data.body.length; ll++) {
						groupingPrepare.call($($t), data.body[ll], ll);
					}
				}
				$.each(grp.groups,function(i,n){
					toEnd++;
					try {
						if (Array.isArray(grp.formatDisplayField) && $.jgrid.isFunction(grp.formatDisplayField[n.idx])) {
							gv = grp.formatDisplayField[n.idx].call($t, n.displayValue, n.value, $t.p.colModel[cp[n.idx]], n.idx, grp);
						} else {
							gv = $t.formatter('', n.displayValue, cp[n.idx], n.value );
						}
					} catch (egv) {
						gv = n.displayValue;
					}
					var grpTextStr = '';
					if($.jgrid.isFunction(grp.groupText[n.idx])) {
						grpTextStr = grp.groupText[n.idx].call($t, gv, n.cnt, n.summary);
					} else {
						grpTextStr = $.jgrid.template(grp.groupText[n.idx], gv, n.cnt, n.summary);
					}
					if( !(typeof grpTextStr ==='string' || typeof grpTextStr ==='number' ) ) {
						grpTextStr = gv;
					}
					var arr, colSpan = false;
					if(grp.groupSummaryPos[n.idx] === 'header')  {
						arr = buildSummaryTd(i, 0, grp.groups, 0 /*grp.groupColumnShow[n.idx] === false ? (mul ==="" ? 2 : 3) : ((mul ==="") ? 1 : 2)*/ );
					} else {
						arr = emptyData(data.header);
						colSpan = true;
					}
					var fkey = Object.keys(arr);
					arr[fkey[0]] =  new Array(n.idx*5).join(' ') + grpTextStr ;
					retstr += addBodyRow( arr, 'td', true, toEnd === 1, colSpan  );
					var leaf = len-1 === n.idx;
					if( leaf ) {
						var gg = grp.groups[i+1], kk, ik, offset = 0, sgr = n.startRow,
						end = gg !== undefined ?  gg.startRow : grp.groups[i].startRow + grp.groups[i].cnt;
						for(kk=sgr;kk<end;kk++) {
							if(!grdata[kk - offset]) { break; }
							var to = grdata[kk - offset];
							retstr += addBodyRow( to, 'td', true );
							//addRow( to, false );
						}

						if(grp.groupSummaryPos[n.idx] !== 'header') {
							var jj;
							if (gg !== undefined) {
								for (jj = 0; jj < grp.groupField.length; jj++) {
									if (gg.dataIndex === grp.groupField[jj]) {
										break;
									}
								}
								toEnd = grp.groupField.length - jj;
							}
							for (ik = 0; ik < toEnd; ik++) {
								if(!sumreverse[ik]) { continue; }
								arr = buildSummaryTd(i, ik, grp.groups, 0);
								retstr += addBodyRow( arr, 'td', true );
								//addRow( arr, true );
							}
							toEnd = jj;
						}
					}
				});
				return retstr;
			}
			if( $.jgrid.isFunction( o.loadIndicator )) {
				o.loadIndicator.call($t, 'show');
			} else if(o.loadIndicator) {
				$($t).jqGrid("progressBar", {method:"show", loadtype : $t.p.loadui, htmlcontent: $.jgrid.getRegional($t,'defaults.loadtext') });
			}

			var html = '<table class="'+o.tableClass+'">';

			if ( o.includeLabels ) {
				html += '<thead>'+ addRow( data.header, 'th', true ) +'</thead>';
			}

			html += '<tbody>';
			var hlen, il;
			if ( o.includeHeader && $t.p.headerrow ) {
				var hdata;
				hlen = $($t).jqGrid("footerData", "getlength");
				for(il=0; il < hlen; il++) {
					for(il=0; il < hlen; il++) {				
						hdata = $($t).jqGrid("headerData", "get", null, false, il, false);
				html += addBodyRow( hdata, 'td' , false);
			}
				}
			}
			if( $t.p.grouping ) {
				var savlcgr = $t.p.groupingView._locgr ? true : false;
				$t.p.groupingView._locgr = false;
				html += groupToHtml(data.body);
				$t.p.groupingView._locgr = savlcgr;
			} else {
				for ( i=0, ien=data.body.length ; i<ien ; i++ ) {
					html += addBodyRow( data.body[i], 'td', true, (i===0?true:false) );
				}
			}

			if ( o.includeFooter && $t.p.footerrow ) {
				hlen = $($t).jqGrid("footerData", "getlength");
				for(il=0; il < hlen; il++) {				
					data.footer[il] = $($t).jqGrid("footerData", "get", null, false, il, false);
					html += addBodyRow( data.footer[il], 'td' , false);
			}
			}
			html += '</tbody>';
			html += '</table>';
			if (o.returnAsString ) {
				ret = html;
			} else {
				// Open a new window for the printable table
				var win = window.open( '', '' );
				win.document.close();

				var head = o.title ? '<title>'+o.title+'</title>' : '';
				$('style, link').each( function () {
					head += _styleToAbs( this );
				} );

				try {
					win.document.head.innerHTML = head; // Work around for Edge
				}
				catch (e) {
					$(win.document.head).html( head ); // Old IE
				}

				win.document.body.innerHTML =
					(o.title ? '<h1>'+o.title+'</h1>' : '') +
					'<div>'+(o.topText || '')+'</div>'+
					html+
					'<div>'+(o.bottomText || '')+'</div>';

				$(win.document.body).addClass('html-view');

				$('img', win.document.body).each( function ( i, img ) {
					img.setAttribute( 'src', _relToAbs( img.getAttribute('src') ) );
				} );

				if( $.jgrid.isFunction( o.onBeforeExport ) ) {
					o.onBeforeExport.call($t, win);
				}

				if(Boolean(win.chrome)) {
					if ( o.autoPrint ) {
						win.print();
						win.close();
					}
				} else {
					setTimeout( function () {
						if ( o.autoPrint ) {
							win.print();
							win.close();
						}
					}, 1000 );
				}
			}
			if( $.jgrid.isFunction( o.loadIndicator )) {
				o.loadIndicator.call($t, 'hide');
			} else if(o.loadIndicator) {
				$($t).jqGrid("progressBar", {method:"hide", loadtype : $t.p.loadui });
			}
		});
		return ret;
	}
});
//module end
}));
js/i18n/grid.locale-cs.js000064400000014200151676727230011100 0ustar00/**
 * jqGrid Czech Translation
 * Pavel Jirak pavel.jirak@jipas.cz
 * doplnil Thomas Wagner xwagne01@stud.fit.vutbr.cz
 * http://trirand.com/blog/ 
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
**/
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"../grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {

$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("regional")) {
	$.jgrid.regional = [];
}
$.jgrid.regional["cs"] = {
	defaults : {
		recordtext: "Zobrazeno {0} - {1} z {2} záznamů",
	    emptyrecords: "Nenalezeny žádné záznamy",
		loadtext: "Načítám...",
		savetext: "Saving...",
		pgtext : "Strana {0} z {1}",
		pgfirst : "First Page",
		pglast : "Last Page",
		pgnext : "Next Page",
		pgprev : "Previous Page",
		pgrecs : "Records per Page",
		showhide: "Toggle Expand Collapse Grid",
		// mobile
		pagerCaption : "Grid::Page Settings",
		pageText : "Page:",
		recordPage : "Records per Page",
		nomorerecs : "No more records...",
		scrollPullup: "Pull up to load more...",
		scrollPulldown : "Pull down to refresh...",
		scrollRefresh : "Release to refresh...",
		valT : "checked",
		valF : "unchecked",
		selectLine : "Select row",
		selectAllLines : "Select all rows"
	},
	search : {
		caption: "Vyhledávám...",
		Find: "Hledat",
		Reset: "Reset",
	    odata: [{ oper:'eq', text:"rovno"},{ oper:'ne', text:"nerovno"},{ oper:'lt', text:"menší"},{ oper:'le', text:"menší nebo rovno"},{ oper:'gt', text:"větší"},{ oper:'ge', text:"větší nebo rovno"},{ oper:'bw', text:"začíná s"},{ oper:'bn', text:"nezačíná s"},{ oper:'in', text:"je v"},{ oper:'ni', text:"není v"},{ oper:'ew', text:"končí s"},{ oper:'en', text:"nekončí s"},{ oper:'cn', text:"obsahuje"},{ oper:'nc', text:"neobsahuje"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],
	    groupOps: [	{ op: "AND", text: "všech" },	{ op: "OR",  text: "některého z" }	],
		operandTitle : "Click to select search operation.",
		resetTitle : "Reset Search Value",
		addsubgrup : "Add subgroup",
		addrule : "Add rule",
		delgroup : "Delete group",
		delrule : "Delete rule",
		Close : "Close",
		Operand : "Operand : ",
		Operation : "Oper : ",
		filterFor : "filter for"
	},
	edit : {
		addCaption: "Přidat záznam",
		editCaption: "Editace záznamu",
		bSubmit: "Uložit",
		bCancel: "Storno",
		bClose: "Zavřít",
		saveData: "Data byla změněna! Uložit změny?",
		bYes : "Ano",
		bNo : "Ne",
		bExit : "Zrušit",
		msg: {
		    required:"Pole je vyžadováno",
		    number:"Prosím, vložte validní číslo",
		    minValue:"hodnota musí být větší než nebo rovná ",
		    maxValue:"hodnota musí být menší než nebo rovná ",
		    email: "není validní e-mail",
		    integer: "Prosím, vložte celé číslo",
			date: "Prosím, vložte validní datum",
			url: "není platnou URL. Vyžadován prefix ('http://' or 'https://')",
			nodefined : " není definován!",
			novalue : " je vyžadována návratová hodnota!",
			customarray : "Custom function mělá vrátit pole!",
			customfcheck : "Custom function by měla být přítomna v případě custom checking!"
		}
	},
	view : {
	    caption: "Zobrazit záznam",
	    bClose: "Zavřít"
	},
	del : {
		caption: "Smazat",
		msg: "Smazat vybraný(é) záznam(y)?",
		bSubmit: "Smazat",
		bCancel: "Storno"
	},
	nav : {
		edittext: " ",
		edittitle: "Editovat vybraný řádek",
		addtext:" ",
		addtitle: "Přidat nový řádek",
		deltext: " ",
		deltitle: "Smazat vybraný záznam ",
		searchtext: " ",
		searchtitle: "Najít záznamy",
		refreshtext: "",
		refreshtitle: "Obnovit tabulku",
		alertcap: "Varování",
		alerttext: "Prosím, vyberte řádek",
		viewtext: "",
		viewtitle: "Zobrazit vybraný řádek",
		savetext: "",
		savetitle: "Save row",
		canceltext: "",
		canceltitle : "Cancel row editing",
		selectcaption : "Actions..."
	},
	col : {
		caption: "Zobrazit/Skrýt sloupce",
		bSubmit: "Uložit",
		bCancel: "Storno"	
	},
	errors : {
		errcap : "Chyba",
		nourl : "Není nastavena url",
		norecords: "Žádné záznamy ke zpracování",
		model : "Délka colNames <> colModel!"
	},
	formatter : {
		integer : {thousandsSeparator: " ", defaultValue: '0'},
		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
		date : {
			dayNames:   [
				"Ne", "Po", "Út", "St", "Čt", "Pá", "So",
				"Neděle", "Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota"
			],
			monthNames: [
				"Led", "Úno", "Bře", "Dub", "Kvě", "Čer", "Čvc", "Srp", "Zář", "Říj", "Lis", "Pro",
				"Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec"
			],
			AmPm : ["do","od","DO","OD"],
			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
			srcformat: 'Y-m-d',
			newformat: 'd/m/Y',
			parseRe : /[#%\\\/:_;.,\t\s-]/,
			masks : {
		        ISO8601Long:"Y-m-d H:i:s",
		        ISO8601Short:"Y-m-d",
		        ShortDate: "n/j/Y",
		        LongDate: "l, F d, Y",
		        FullDateTime: "l, F d, Y g:i:s A",
		        MonthDay: "F d",
		        ShortTime: "g:i A",
		        LongTime: "g:i:s A",
		        SortableDateTime: "Y-m-d\\TH:i:s",
		        UniversalSortableDateTime: "Y-m-d H:i:sO",
		        YearMonth: "F, Y"
		    },
		    reformatAfterEdit : false,
			userLocalTime : false
		},
		baseLinkUrl: '',
		showAction: '',
	    target: '',
	    checkbox : {disabled:true},
		idName : 'id'
	},
	colmenu : {
		sortasc : "Sort Ascending",
		sortdesc : "Sort Descending",
		columns : "Columns",
		filter : "Filter",
		grouping : "Group By",
		ungrouping : "Ungroup",
		searchTitle : "Get items with value that:",
		freeze : "Freeze",
		unfreeze : "Unfreeze",
		reorder : "Move to reorder",
		hovermenu: "Click for column quick actions"
	}
};
}));
js/i18n/grid.locale-th.js000064400000020115151676727230011110 0ustar00/**
 * jqGrid Thai Translation
 * Kittituch Manakul m.kittituch@Gmail.com
 * http://trirand.com/blog/ 
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
**/
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"../grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {

$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("regional")) {
	$.jgrid.regional = [];
}
$.jgrid.regional["th"] = {
	defaults : {
		recordtext: "แสดง {0} - {1} จาก {2}",
		emptyrecords: "ไม่พบข้อมูล",
		loadtext: "กำลังร้องขอข้อมูล...",
		pgtext : "หน้า {0} จาก {1}",
		savetext: "Saving...",
		pgfirst : "First Page",
		pglast : "Last Page",
		pgnext : "Next Page",
		pgprev : "Previous Page",
		pgrecs : "Records per Page",
		showhide: "Toggle Expand Collapse Grid",
		// mobile
		pagerCaption : "Grid::Page Settings",
		pageText : "Page:",
		recordPage : "Records per Page",
		nomorerecs : "No more records...",
		scrollPullup: "Pull up to load more...",
		scrollPulldown : "Pull down to refresh...",
		scrollRefresh : "Release to refresh...",
		valT : "checked",
		valF : "unchecked",
		selectLine : "Select row",
		selectAllLines : "Select all rows"
	},
	search : {
		caption: "กำลังค้นหา...",
		Find: "ค้นหา",
		Reset: "คืนค่ากลับ",
		odata: [{ oper:'eq', text:"เท่ากับ"},{ oper:'ne', text:"ไม่เท่ากับ"},{ oper:'lt', text:"น้อยกว่า"},{ oper:'le', text:"ไม่มากกว่า"},{ oper:'gt', text:"มากกกว่า"},{ oper:'ge', text:"ไม่น้อยกว่า"},{ oper:'bw', text:"ขึ้นต้นด้วย"},{ oper:'bn', text:"ไม่ขึ้นต้นด้วย"},{ oper:'in', text:"มีคำใดคำหนึ่งใน"},{ oper:'ni', text:"ไม่มีคำใดคำหนึ่งใน"},{ oper:'ew', text:"ลงท้ายด้วย"},{ oper:'en', text:"ไม่ลงท้ายด้วย"},{ oper:'cn', text:"มีคำว่า"},{ oper:'nc', text:"ไม่มีคำว่า"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],
		groupOps: [	{ op: "และ", text: "ทั้งหมด" },	{ op: "หรือ",  text: "ใดๆ" }	],
		operandTitle : "Click to select search operation.",
		resetTitle : "Reset Search Value",
		addsubgrup : "Add subgroup",
		addrule : "Add rule",
		delgroup : "Delete group",
		delrule : "Delete rule",
		Close : "Close",
		Operand : "Operand : ",
		Operation : "Oper : ",
		filterFor : "filter for"
	},
	edit : {
		addCaption: "เพิ่มข้อมูล",
		editCaption: "แก้ไขข้อมูล",
		bSubmit: "บันทึก",
		bCancel: "ยกเลิก",
		bClose: "ปิด",
		saveData: "คุณต้องการบันทึการแก้ไข ใช่หรือไม่?",
		bYes : "บันทึก",
		bNo : "ละทิ้งการแก้ไข",
		bExit : "ยกเลิก",
		msg: {
			required:"ข้อมูลนี้จำเป็น",
			number:"กรุณากรอกหมายเลขให้ถูกต้อง",
			minValue:"ค่าของข้อมูลนี้ต้องไม่น้อยกว่า",
			maxValue:"ค่าของข้อมูลนี้ต้องไม่มากกว่า",
			email: "อีเมลล์นี้ไม่ถูกต้อง",
			integer: "กรุณากรอกเป็นจำนวนเต็ม",
			date: "กรุณากรอกวันที่ให้ถูกต้อง",
			url: "URL ไม่ถูกต้อง URL จำเป็นต้องขึ้นต้นด้วย 'http://' หรือ 'https://'",
			nodefined : "ไม่ได้ถูกกำหนดค่า!",
			novalue : "ต้องการการคืนค่า!",
			customarray : "ฟังก์ชันที่สร้างขึ้นต้องส่งค่ากลับเป็นแบบแอเรย์",
			customfcheck : "ระบบต้องการฟังก์ชันที่สร้างขึ้นสำหรับการตรวจสอบ!"
			
		}
	},
	view : {
		caption: "เรียกดูข้อมูล",
		bClose: "ปิด"
	},
	del : {
		caption: "ลบข้อมูล",
		msg: "คุณต้องการลบข้อมูลที่ถูกเลือก ใช่หรือไม่?",
		bSubmit: "ต้องการลบ",
		bCancel: "ยกเลิก"
	},
	nav : {
		edittext: "",
		edittitle: "แก้ไขข้อมูล",
		addtext:"",
		addtitle: "เพิ่มข้อมูล",
		deltext: "",
		deltitle: "ลบข้อมูล",
		searchtext: "",
		searchtitle: "ค้นหาข้อมูล",
		refreshtext: "",
		refreshtitle: "รีเฟรช",
		alertcap: "คำเตือน",
		alerttext: "กรุณาเลือกข้อมูล",
		viewtext: "",
		viewtitle: "ดูรายละเอียดข้อมูล",
		savetext: "",
		savetitle: "Save row",
		canceltext: "",
		canceltitle : "Cancel row editing",
		selectcaption : "Actions..."
	},
	col : {
		caption: "กรุณาเลือกคอลัมน์",
		bSubmit: "ตกลง",
		bCancel: "ยกเลิก"
	},
	errors : {
		errcap : "เกิดความผิดพลาด",
		nourl : "ไม่ได้กำหนด URL",
		norecords: "ไม่มีข้อมูลให้ดำเนินการ",
		model : "จำนวนคอลัมน์ไม่เท่ากับจำนวนคอลัมน์โมเดล!"
	},
	formatter : {
		integer : {thousandsSeparator: " ", defaultValue: '0'},
		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
		date : {
			dayNames:   [
				"อา", "จ", "อ", "พ", "พฤ", "ศ", "ส",
				"อาทิตย์", "จันทร์", "อังคาร", "พุธ", "พฤหัสบดี", "ศูกร์", "เสาร์"
			],
			monthNames: [
				"ม.ค.", "ก.พ.", "มี.ค.", "เม.ย.", "พ.ค.", "มิ.ย.", "ก.ค.", "ส.ค.", "ก.ย.", "ต.ค.", "พ.ย.", "ธ.ค.",
				"มกราคม", "กุมภาพันธ์", "มีนาคม", "เมษายน", "พฤษภาคม", "มิถุนายน", "กรกฏาคม", "สิงหาคม", "กันยายน", "ตุลาคม", "พฤศจิกายน", "ธันวาคม"
			],
			AmPm : ["am","pm","AM","PM"],
			S: function (j) {return ''},
			srcformat: 'Y-m-d',
			newformat: 'd/m/Y',
			parseRe : /[#%\\\/:_;.,\t\s-]/,
			masks : {
				ISO8601Long:"Y-m-d H:i:s",
				ISO8601Short:"Y-m-d",
				ShortDate: "n/j/Y",
				LongDate: "l, F d, Y",
				FullDateTime: "l, F d, Y g:i:s A",
				MonthDay: "F d",
				ShortTime: "g:i A",
				LongTime: "g:i:s A",
				SortableDateTime: "Y-m-d\\TH:i:s",
				UniversalSortableDateTime: "Y-m-d H:i:sO",
				YearMonth: "F, Y"
			},
			reformatAfterEdit : false,
			userLocalTime : false
		},
		baseLinkUrl: '',
		showAction: '',
		target: '',
		checkbox : {disabled:true},
		idName : 'id'
	},
	colmenu : {
		sortasc : "Sort Ascending",
		sortdesc : "Sort Descending",
		columns : "Columns",
		filter : "Filter",
		grouping : "Group By",
		ungrouping : "Ungroup",
		searchTitle : "Get items with value that:",
		freeze : "Freeze",
		unfreeze : "Unfreeze",
		reorder : "Move to reorder",
		hovermenu: "Click for column quick actions"
	}
};
}));
js/i18n/grid.locale-fr.js000064400000015034151676727230011110 0ustar00/**
 * jqGrid French Translation
 * Tony Tomov tony@trirand.com
 * http://trirand.com/blog/ 
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
**/
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"../grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {

$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("regional")) {
	$.jgrid.regional = [];
}
$.jgrid.regional["fr"] = {
	defaults : {
		recordtext: "Enregistrements {0} - {1} sur {2}",
		emptyrecords: "Aucun enregistrement à afficher",
		loadtext: "Chargement...",
		savetext: "Sauvegarde en cours...",
		pgtext : "Page {0} de {1}",
		pgfirst : "Première page",
		pglast : "Dernière page",
		pgnext : "Page suivante",
		pgprev : "Page précédente",
		pgrecs : "Enregistrements par page",
		showhide: "Réduire/Agrandir la grille",
		// mobile
		pagerCaption : "Grille::Options de pagination",
		pageText : "Page:",
		recordPage: "Enregistrements par page",
		nomorerecs : "Plus de données...",
		scrollPullup: "Glisser vers le haut pour charger plus de données...",
		scrollPulldown : "Glisser vers le bas pour rafraîchir...",
		scrollRefresh : "Relâcher pour rafraîchir...",
		valueCheckbox : "Case à cocher",
		valT : "cochée",
		valF : "décochée",
		selectLine : "Sélectionner une ligne",
		selectAllLines : "Sélectionner toutes les lignes"
	},
	search : {
		caption: "Recherche...",
		Find: "Chercher",
		Reset: "Réinitialiser",
		odata: [{ oper:'eq', text:"égal"},{ oper:'ne', text:"différent"},{ oper:'lt', text:"inférieur"},{ oper:'le', text:"inférieur ou égal"},{ oper:'gt', text:"supérieur"},{ oper:'ge', text:"supérieur ou égal"},{ oper:'bw', text:"commence par"},{ oper:'bn', text:"ne commence pas par"},{ oper:'in', text:"est dans"},{ oper:'ni', text:"n'est pas dans"},{ oper:'ew', text:"finit par"},{ oper:'en', text:"ne finit pas par"},{ oper:'cn', text:"contient"},{ oper:'nc', text:"ne contient pas"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'entre'}],
		groupOps: [	{ op: "AND", text: "tous" },	{ op: "OR",  text: "au moins un" }	],
		operandTitle : "Cliquer pour sélectionner l'opérateur.",
		resetTitle : "Réinitialiser la valeur de recherche",
		addsubgrup : "Add subgroup",
		addrule : "Add rule",
		delgroup : "Delete group",
		delrule : "Delete rule",
		Close : "Close",
		Operand : "Operand : ",
		Operation : "Oper : ",
		filterFor : "filtre pour"
	},
	edit : {
		addCaption: "Ajouter",
		editCaption: "Éditer",
		bSubmit: "Valider",
		bCancel: "Annuler",
		bClose: "Fermer",
		saveData: "Les données ont changé ! Enregistrer les modifications ?",
		bYes: "Oui",
		bNo: "Non",
		bExit: "Annuler",
		msg: {
			required: "Champ obligatoire",
			number: "Saisissez un nombre correct",
			minValue: "La valeur doit être supérieure ou égale à",
			maxValue: "La valeur doit être inférieure ou égale à",
			email: "n'est pas un email valide",
			integer: "Saisissez un entier valide",
			url: "n'est pas une adresse valide. Préfixe requis ('http://' or 'https://')",
			nodefined : " n'est pas défini!",
			novalue : " la valeur de retour est requise!",
			customarray : "Une fonction personnalisée devrait retourner un tableau (array)!",
			customfcheck : "Une fonction personnalisée devrait être présente dans le cas d'une vérification personnalisée!"
		}
	},
	view : {
		caption: "Voir les enregistrements",
		bClose: "Fermer"
	},
	del : {
		caption: "Supprimer",
		msg: "Supprimer les enregistrements sélectionnés ?",
		bSubmit: "Supprimer",
		bCancel: "Annuler"
	},
	nav : {
		edittext: " ",
		edittitle: "Editer la ligne sélectionnée",
		addtext:" ",
		addtitle: "Ajouter une ligne",
		deltext: " ",
		deltitle: "Supprimer la ligne sélectionnée",
		searchtext: " ",
		searchtitle: "Chercher un enregistrement",
		refreshtext: "",
		refreshtitle: "Recharger le tableau",
		alertcap: "Avertissement",
		alerttext: "Veuillez sélectionner une ligne",
		viewtext: "",
		viewtitle: "Afficher la ligne sélectionnée",
		savetext: "",
		savetitle: "Sauvegarder la ligne",
		canceltext: "",
		canceltitle : "Annuler l'édition de la ligne",
		selectcaption : "Actions..."
	},
	col : {
		caption: "Afficher/Masquer les colonnes",
		bSubmit: "Valider",
		bCancel: "Annuler"
	},
	errors : {
		errcap : "Erreur",
		nourl : "Aucune adresse n'est paramétrée",
		norecords: "Aucun enregistrement à traiter",
		model : "Nombre de titres (colNames) <> Nombre de données (colModel)!"
	},
	formatter : {
		integer : {thousandsSeparator: " ", defaultValue: '0'},
		number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'},
		currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
		date : {
			dayNames:   [
				"Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam",
				"Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"
			],
			monthNames: [
				"Jan", "Fév", "Mar", "Avr", "Mai", "Jui", "Jul", "Aou", "Sep", "Oct", "Nov", "Déc",
				"Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Décembre"
			],
			AmPm : ["am","pm","AM","PM"],
			S: function (j) {return j == 1 ? 'er' : 'e';},
			srcformat: 'Y-m-d',
			newformat: 'd/m/Y',
			parseRe : /[#%\\\/:_;.,\t\s-]/,
			masks : {
				ISO8601Long:"Y-m-d H:i:s",
				ISO8601Short:"Y-m-d",
				ShortDate: "n/j/Y",
				LongDate: "l, F d, Y",
				FullDateTime: "l, F d, Y g:i:s A",
				MonthDay: "F d",
				ShortTime: "g:i A",
				LongTime: "g:i:s A",
				SortableDateTime: "Y-m-d\\TH:i:s",
				UniversalSortableDateTime: "Y-m-d H:i:sO",
				YearMonth: "F, Y"
			},
			reformatAfterEdit : false,
			userLocalTime : false
		},
		baseLinkUrl: '',
		showAction: '',
		target: '',
		checkbox : {disabled:true},
		idName : 'id'
	},
	colmenu : {
		sortasc : "Trier en ordre croissant",
		sortdesc: "Trier en ordre décroissant",
		columns : "Colonnes",
		filter : "Filtrer",
		grouping : "Grouper par",
		ungrouping : "Séparer",
		searchTitle : "Prendre les items avec la valeur:",
		freeze : "Figer",
		unfreeze : "Relâcher",
		reorder : "Déplacer pour changer l'ordre",
		hovermenu: "Click for column quick actions"
	}
};
}));
js/i18n/grid.locale-kr.js000064400000014124151676727230011114 0ustar00/**
 * jqGrid English Translation
 * Tony Tomov tony@trirand.com
 * http://trirand.com/blog/ 
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
**/
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"../grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {

$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("regional")) {
	$.jgrid.regional = [];
}
$.jgrid.regional["kr"] = {
	defaults : {
		recordtext: "보기 {0} - {1} / {2}",
		emptyrecords: "표시할 행이 없습니다",
		loadtext: "조회중...",
		pgtext : "페이지 {0} / {1}",
		savetext: "Saving...",
		pgfirst : "First Page",
		pglast : "Last Page",
		pgnext : "Next Page",
		pgprev : "Previous Page",
		pgrecs : "Records per Page",
		showhide: "Toggle Expand Collapse Grid",
		// mobile
		pagerCaption : "Grid::Page Settings",
		pageText : "Page:",
		recordPage : "Records per Page",
		nomorerecs : "No more records...",
		scrollPullup: "Pull up to load more...",
		scrollPulldown : "Pull down to refresh...",
		scrollRefresh : "Release to refresh...",
		valT : "checked",
		valF : "unchecked",
		selectLine : "Select row",
		selectAllLines : "Select all rows"
	},
	search : {
		caption: "검색...",
		Find: "찾기",
		Reset: "초기화",
		odata: [{ oper:'eq', text:"같다"},{ oper:'ne', text:"같지 않다"},{ oper:'lt', text:"작다"},{ oper:'le', text:"작거나 같다"},{ oper:'gt', text:"크다"},{ oper:'ge', text:"크거나 같다"},{ oper:'bw', text:"로 시작한다"},{ oper:'bn', text:"로 시작하지 않는다"},{ oper:'in', text:"내에 있다"},{ oper:'ni', text:"내에 있지 않다"},{ oper:'ew', text:"로 끝난다"},{ oper:'en', text:"로 끝나지 않는다"},{ oper:'cn', text:"내에 존재한다"},{ oper:'nc', text:"내에 존재하지 않는다"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],
		groupOps: [	{ op: "AND", text: "전부" },	{ op: "OR",  text: "임의" }	],
		operandTitle : "Click to select search operation.",
		resetTitle : "Reset Search Value",
		addsubgrup : "Add subgroup",
		addrule : "Add rule",
		delgroup : "Delete group",
		delrule : "Delete rule",
		Close : "Close",
		Operand : "Operand : ",
		Operation : "Oper : ",
		filterFor : "filter for"
	},
	edit : {
		addCaption: "행 추가",
		editCaption: "행 수정",
		bSubmit: "전송",
		bCancel: "취소",
		bClose: "닫기",
		saveData: "자료가 변경되었습니다! 저장하시겠습니까?",
		bYes : "예",
		bNo : "아니오",
		bExit : "취소",
		msg: {
			required:"필수항목입니다",
			number:"유효한 번호를 입력해 주세요",
			minValue:"입력값은 크거나 같아야 합니다",
			maxValue:"입력값은 작거나 같아야 합니다",
			email: "유효하지 않은 이메일주소입니다",
			integer: "유효한 숫자를 입력하세요",
			date: "유효한 날짜를 입력하세요",
			url: "은 유효하지 않은 URL입니다. 문장앞에 다음단어가 필요합니다('http://' or 'https://')",
			nodefined : " 은 정의도지 않았습니다!",
			novalue : " 반환값이 필요합니다!",
			customarray : "사용자정의 함수는 배열을 반환해야 합니다!",
			customfcheck : "Custom function should be present in case of custom checking!"
			
		}
	},
	view : {
		caption: "행 조회",
		bClose: "닫기"
	},
	del : {
		caption: "삭제",
		msg: "선택된 행을 삭제하시겠습니까?",
		bSubmit: "삭제",
		bCancel: "취소"
	},
	nav : {
		edittext: "",
		edittitle: "선택된 행 편집",
		addtext:"",
		addtitle: "행 삽입",
		deltext: "",
		deltitle: "선택된 행 삭제",
		searchtext: "",
		searchtitle: "행 찾기",
		refreshtext: "",
		refreshtitle: "그리드 갱신",
		alertcap: "경고",
		alerttext: "행을 선택하세요",
		viewtext: "",
		viewtitle: "선택된 행 조회",
		savetext: "",
		savetitle: "Save row",
		canceltext: "",
		canceltitle : "Cancel row editing",
		selectcaption : "Actions..."
	},
	col : {
		caption: "열을 선택하세요",
		bSubmit: "확인",
		bCancel: "취소"
	},
	errors : {
		errcap : "오류",
		nourl : "설정된 url이 없습니다",
		norecords: "처리할 행이 없습니다",
		model : "colNames의 길이가 colModel과 일치하지 않습니다!"
	},
	formatter : {
		integer : {thousandsSeparator: ",", defaultValue: '0'},
		number : {decimalSeparator:".", thousandsSeparator: ",", decimalPlaces: 2, defaultValue: '0.00'},
		currency : {decimalSeparator:".", thousandsSeparator: ",", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
		date : {
			dayNames:   [
				"Sun", "Mon", "Tue", "Wed", "Thr", "Fri", "Sat",
				"일", "월", "화", "수", "목", "금", "토"
			],
			monthNames: [
				"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
				"1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"
			],
			AmPm : ["am","pm","AM","PM"],
			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
			srcformat: 'Y-m-d',
			newformat: 'm-d-Y',
			parseRe : /[#%\\\/:_;.,\t\s-]/,
			masks : {
				ISO8601Long:"Y-m-d H:i:s",
				ISO8601Short:"Y-m-d",
				ShortDate: "Y/j/n",
				LongDate: "l, F d, Y",
				FullDateTime: "l, F d, Y g:i:s A",
				MonthDay: "F d",
				ShortTime: "g:i A",
				LongTime: "g:i:s A",
				SortableDateTime: "Y-m-d\\TH:i:s",
				UniversalSortableDateTime: "Y-m-d H:i:sO",
				YearMonth: "F, Y"
			},
			reformatAfterEdit : false,
			userLocalTime : false
		},
		baseLinkUrl: '',
		showAction: '',
		target: '',
		checkbox : {disabled:true},
		idName : 'id'
	},
	colmenu : {
		sortasc : "Sort Ascending",
		sortdesc : "Sort Descending",
		columns : "Columns",
		filter : "Filter",
		grouping : "Group By",
		ungrouping : "Ungroup",
		searchTitle : "Get items with value that:",
		freeze : "Freeze",
		unfreeze : "Unfreeze",
		reorder : "Move to reorder",
		hovermenu: "Click for column quick actions"
	}
};
}));
js/i18n/grid.locale-ru.js000064400000017765151676727230011144 0ustar00/**
 * jqGrid Russian Translation v1.0 02.07.2009 (based on translation by Alexey Kanaev v1.1 21.01.2009, http://softcore.com.ru)
 * Sergey Dyagovchenko
 * http://d.sumy.ua
 * Tony Tomov
 * http://www.guriddo.net
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
**/
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"../grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {

$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("regional")) {
	$.jgrid.regional = [];
}
$.jgrid.regional["ru"] = {
	defaults : {
		recordtext: "Просмотр {0} - {1} из {2}",
		emptyrecords: "Нет записей для просмотра",
		loadtext: "Загрузка...",
		pgtext : "Стр. {0} из {1}",
		savetext: "Сохранения...",
		pgfirst : "Первая",
		pglast : "Последняя",
		pgnext : "Следующая",
		pgprev : "Предыдущая",
		pgrecs : "Записей на стр.",
		showhide: "Показать/Скрыть таблицу",
		// mobile
		pagerCaption : "Грид::Параметры страницы",
		pageText : "Страница:",
		recordPage : "Записей на стр.",
		nomorerecs : "Нет больше записей...",
		scrollPullup: "Потяните, чтобы загрузить более...",
		scrollPulldown : "Потяните вниз чтобы обновить...",
		scrollRefresh : "Отпустите, чтобы обновить...",
		valT : "checked",
		valF : "unchecked",
		selectLine : "Select row",
		selectAllLines : "Select all rows"
	},
	search : {
		caption: "Поиск...",
		Find: "Найти",
		Reset: "Сброс",
		odata: [{ oper:'eq', text:"равно"},{ oper:'ne', text:"не равно"},{ oper:'lt', text:"меньше"},{ oper:'le', text:"меньше или равно"},{ oper:'gt', text:"больше"},{ oper:'ge', text:"больше или равно"},{ oper:'bw', text:"начинается с"},{ oper:'bn', text:"не начинается с"},{ oper:'in', text:"находится в"},{ oper:'ni', text:"не находится в"},{ oper:'ew', text:"заканчивается на"},{ oper:'en', text:"не заканчивается на"},{ oper:'cn', text:"содержит"},{ oper:'nc', text:"не содержит"},{ oper:'nu', text:"равно NULL"},{ oper:'nn', text:"не равно NULL"}, {oper:'bt', text:'между'}],
		groupOps: [	{ op: "AND", text: "все" }, { op: "OR", text: "любой" }],
		operandTitle : "Выбрать поисковую операцию.",
		resetTitle : "Сбросить поиск",
		addsubgrup : "Добавить группу",
		addrule : "Добавить правило",
		delgroup : "Удалить группу",
		delrule : "Удалить правило",
		Close : "Закрыть",
		Operand : "Операнд : ",
		Operation : "Опер. : ",
		filterFor : "filter for"
	},
	edit : {
		addCaption: "Добавить запись",
		editCaption: "Редактировать запись",
		bSubmit: "Сохранить",
		bCancel: "Отмена",
		bClose: "Закрыть",
		saveData: "Данные были измененны! Сохранить изменения?",
		bYes : "Да",
		bNo : "Нет",
		bExit : "Отмена",
		msg: {
			required:"Поле является обязательным",
			number:"Пожалуйста, введите правильное число",
			minValue:"значение должно быть больше либо равно",
			maxValue:"значение должно быть меньше либо равно",
			email: "некорректное значение e-mail",
			integer: "Пожалуйста, введите целое число",
			date: "Пожалуйста, введите правильную дату",
			url: "неверная ссылка. Необходимо ввести префикс ('http://' или 'https://')",
			nodefined : " не определено!",
			novalue : " возвращаемое значение обязательно!",
			customarray : "Пользовательская функция должна возвращать массив!",
			customfcheck : "Пользовательская функция должна присутствовать в случаи пользовательской проверки!"
		}
	},
	view : {
		caption: "Просмотр записи",
		bClose: "Закрыть"
	},
	del : {
		caption: "Удалить",
		msg: "Удалить выбранную запись(и)?",
		bSubmit: "Удалить",
		bCancel: "Отмена"
	},
	nav : {
		edittext: " ",
		edittitle: "Редактировать выбранную запись",
		addtext:" ",
		addtitle: "Добавить новую запись",
		deltext: " ",
		deltitle: "Удалить выбранную запись",
		searchtext: " ",
		searchtitle: "Найти записи",
		refreshtext: "",
		refreshtitle: "Обновить таблицу",
		alertcap: "Внимание",
		alerttext: "Пожалуйста, выберите запись",
		viewtext: "",
		viewtitle: "Просмотреть выбранную запись",
		savetext: "",
		savetitle: "Сохранить запись",
		canceltext: "",
		canceltitle : "Отмена сохранения",
		selectcaption : "Действия..."
	},
	col : {
		caption: "Показать/скрыть столбцы",
		bSubmit: "Сохранить",
		bCancel: "Отмена"	
	},
	errors : {
		errcap : "Ошибка",
		nourl : "URL не установлен",
		norecords: "Нет записей для обработки",
		model : "Число полей не соответствует числу столбцов таблицы!"
	},
	formatter : {
		integer : {thousandsSeparator: " ", defaultValue: '0'},
		number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'},
		currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
		date : {
			dayNames:   [
				"Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб",
				"Воскресение", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота"
			],
			monthNames: [
				"Янв", "Фев", "Мар", "Апр", "Май", "Июн", "Июл", "Авг", "Сен", "Окт", "Ноя", "Дек",
				"Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"
			],
			AmPm : ["am","pm","AM","PM"],
			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th';},
			srcformat: 'Y-m-d',
			newformat: 'd.m.Y',
			parseRe : /[#%\\\/:_;.,\t\s-]/,
			masks : {
				ISO8601Long:"Y-m-d H:i:s",
				ISO8601Short:"Y-m-d",
				ShortDate: "n.j.Y",
				LongDate: "l, F d, Y",
				FullDateTime: "l, F d, Y G:i:s",
				MonthDay: "F d",
				ShortTime: "G:i",
				LongTime: "G:i:s",
				SortableDateTime: "Y-m-d\\TH:i:s",
				UniversalSortableDateTime: "Y-m-d H:i:sO",
				YearMonth: "F, Y"
			},
			reformatAfterEdit : false,
			userLocalTime : false
		},
		baseLinkUrl: '',
		showAction: '',
		target: '',
		checkbox : {disabled:true},
		idName : 'id'
	},
	colmenu : {
		sortasc : "Сортировка по возрастанию",
		sortdesc : "Сортировка по убыванию",
		columns : "Колонны",
		filter : "Филтрировать",
		grouping : "Группа по",
		ungrouping : "Разгруппировать",
		searchTitle : "Строки со значениями",
		freeze : "Закрепление",
		unfreeze : "Отмена закрепление",
		reorder : "Переместить в порядок",
		hovermenu: "Щелкните, чтобы перейти к быстрым действиям в столбце "
	}
};
}));
js/i18n/grid.locale-sv.js000064400000014117151676727230011132 0ustar00/**
 * jqGrid Swedish Translation
 * Harald Normann harald.normann@wts.se, harald.normann@gmail.com
 * http://www.worldteamsoftware.com 
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
**/
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"../grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {

$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("regional")) {
	$.jgrid.regional = [];
}
$.jgrid.regional["sv"] = {
	defaults : {
		recordtext: "Visar {0} - {1} av {2}",
		emptyrecords: "Det finns inga poster att visa",
		loadtext: "Laddar...",
		pgtext : "Sida {0} av {1}",
		savetext: "Saving...",
		pgfirst : "First Page",
		pglast : "Last Page",
		pgnext : "Next Page",
		pgprev : "Previous Page",
		pgrecs : "Records per Page",
		showhide: "Toggle Expand Collapse Grid",
		// mobile
		pagerCaption : "Grid::Page Settings",
		pageText : "Page:",
		recordPage : "Records per Page",
		nomorerecs : "No more records...",
		scrollPullup: "Pull up to load more...",
		scrollPulldown : "Pull down to refresh...",
		scrollRefresh : "Release to refresh...",
		valT : "checked",
		valF : "unchecked",
		selectLine : "Select row",
		selectAllLines : "Select all rows"
	},
	search : {
		caption: "Sök Poster - Ange sökvillkor",
		Find: "Sök",
		Reset: "Nollställ Villkor",
		odata: [{ oper:'eq', text:"lika"},{ oper:'ne', text:"ej lika"},{ oper:'lt', text:"mindre"},{ oper:'le', text:"mindre eller lika"},{ oper:'gt', text:"större"},{ oper:'ge', text:"större eller lika"},{ oper:'bw', text:"börjar med"},{ oper:'bn', text:"börjar inte med"},{ oper:'in', text:"tillhör"},{ oper:'ni', text:"tillhör inte"},{ oper:'ew', text:"slutar med"},{ oper:'en', text:"slutar inte med"},{ oper:'cn', text:"innehåller"},{ oper:'nc', text:"innehåller inte"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],
		groupOps: [	{ op: "AND", text: "alla" },	{ op: "OR",  text: "eller" }	],
		operandTitle : "Click to select search operation.",
		resetTitle : "Reset Search Value",
		addsubgrup : "Add subgroup",
		addrule : "Add rule",
		delgroup : "Delete group",
		delrule : "Delete rule",
		Close : "Close",
		Operand : "Operand : ",
		Operation : "Oper : ",
		filterFor : "filter for"
	},
	edit : {
		addCaption: "Ny Post",
		editCaption: "Redigera Post",
		bSubmit: "Spara",
		bCancel: "Avbryt",
		bClose: "Stäng",
		saveData: "Data har ändrats! Spara förändringar?",
		bYes : "Ja",
		bNo : "Nej",
		bExit : "Avbryt",
		msg: {
	        required:"Fältet är obligatoriskt",
	        number:"Välj korrekt nummer",
	        minValue:"värdet måste vara större än eller lika med",
	        maxValue:"värdet måste vara mindre än eller lika med",
	        email: "är inte korrekt e-post adress",
	        integer: "Var god ange korrekt heltal",
	        date: "Var god ange korrekt datum",
	        url: "är inte en korrekt URL. Prefix måste anges ('http://' or 'https://')",
	        nodefined : " är inte definierad!",
	        novalue : " returvärde måste anges!",
	        customarray : "Custom funktion måste returnera en vektor!",
			customfcheck : "Custom funktion måste finnas om Custom kontroll sker!"
		}
	},
	view : {
		caption: "Visa Post",
		bClose: "Stäng"
	},
	del : {
		caption: "Radera",
		msg: "Radera markerad(e) post(er)?",
		bSubmit: "Radera",
		bCancel: "Avbryt"
	},
	nav : {
		edittext: "",
		edittitle: "Redigera markerad rad",
		addtext:"",
		addtitle: "Skapa ny post",
		deltext: "",
		deltitle: "Radera markerad rad",
		searchtext: "",
		searchtitle: "Sök poster",
		refreshtext: "",
		refreshtitle: "Uppdatera data",
		alertcap: "Varning",
		alerttext: "Ingen rad är markerad",
		viewtext: "",
		viewtitle: "Visa markerad rad",
		savetext: "",
		savetitle: "Save row",
		canceltext: "",
		canceltitle : "Cancel row editing",
		selectcaption : "Actions..."
	},
	col : {
		caption: "Välj Kolumner",
		bSubmit: "OK",
		bCancel: "Avbryt"
	},
	errors : {
		errcap : "Fel",
		nourl : "URL saknas",
		norecords: "Det finns inga poster att bearbeta",
		model : "Antal colNames <> colModel!"
	},
	formatter : {
		integer : {thousandsSeparator: " ", defaultValue: '0'},
		number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'},
		currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"Kr", defaultValue: '0,00'},
		date : {
			dayNames:   [
				"Sön", "Mån", "Tis", "Ons", "Tor", "Fre", "Lör",
				"Söndag", "Måndag", "Tisdag", "Onsdag", "Torsdag", "Fredag", "Lördag"
			],
			monthNames: [
				"Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec",
				"Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"
			],
			AmPm : ["fm","em","FM","EM"],
			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
			srcformat: 'Y-m-d',
			newformat: 'Y-m-d',
			parseRe : /[#%\\\/:_;.,\t\s-]/,
			masks : {
	            ISO8601Long:"Y-m-d H:i:s",
	            ISO8601Short:"Y-m-d",
	            ShortDate:  "n/j/Y",
	            LongDate: "l, F d, Y",
	            FullDateTime: "l, F d, Y g:i:s A",
	            MonthDay: "F d",
	            ShortTime: "g:i A",
	            LongTime: "g:i:s A",
	            SortableDateTime: "Y-m-d\\TH:i:s",
	            UniversalSortableDateTime: "Y-m-d H:i:sO",
	            YearMonth: "F, Y"
			},
			reformatAfterEdit : false,
			userLocalTime : false
		},
		baseLinkUrl: '',
		showAction: '',
		target: '',
		checkbox : {disabled:true},
		idName : 'id'
	},
	colmenu : {
		sortasc : "Sort Ascending",
		sortdesc : "Sort Descending",
		columns : "Columns",
		filter : "Filter",
		grouping : "Group By",
		ungrouping : "Ungroup",
		searchTitle : "Get items with value that:",
		freeze : "Freeze",
		unfreeze : "Unfreeze",
		reorder : "Move to reorder",
		hovermenu: "Click for column quick actions"
	}
};
}));
js/i18n/grid.locale-dk.js000064400000013734151676727230011104 0ustar00/**
 * jqGrid Danish Translation
 * Kaare Rasmussen kjs@jasonic.dk
 * http://jasonic.dk/blog 
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
**/
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"../grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {

$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("regional")) {
	$.jgrid.regional = [];
}
$.jgrid.regional["dk"] = {
	defaults : {
		recordtext: "View {0} - {1} of {2}",
	    emptyrecords: "No records to view",
		loadtext: "Loading...",
		savetext: "Saving...",
		pgtext : "Page {0} of {1}",
		pgfirst : "First Page",
		pglast : "Last Page",
		pgnext : "Next Page",
		pgprev : "Previous Page",
		pgrecs : "Records per Page",
		showhide: "Toggle Expand Collapse Grid",
		// mobile
		pagerCaption : "Grid::Page Settings",
		pageText : "Page:",
		recordPage : "Records per Page",
		nomorerecs : "No more records...",
		scrollPullup: "Pull up to load more...",
		scrollPulldown : "Pull down to refresh...",
		scrollRefresh : "Release to refresh...",
		valT : "checked",
		valF : "unchecked",
		selectLine : "Select row",
		selectAllLines : "Select all rows"
	},
	search : {
	    caption: "Søg...",
	    Find: "Find",
	    Reset: "Nulstil",
	    odata: [{ oper:'eq', text:'equal'},{ oper:'ne', text:'not equal'},{ oper:'lt', text:'less'},{ oper:'le', text:'less or equal'},{ oper:'gt', text:'greater'},{ oper:'ge', text:'greater or equal'},{ oper:'bw', text:'begins with'},{ oper:'bn', text:'does not begin with'},{ oper:'in', text:'is in'},{ oper:'ni', text:'is not in'},{ oper:'ew', text:'ends with'},{ oper:'en', text:'does not end with'},{ oper:'cn', text:'contains'},{ oper:'nc', text:'does not contain'},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],
	    groupOps: [	{ op: "AND", text: "all" },	{ op: "OR",  text: "any" }	],
		operandTitle : "Click to select search operation.",
		resetTitle : "Reset Search Value",
		addsubgrup : "Add subgroup",
		addrule : "Add rule",
		delgroup : "Delete group",
		delrule : "Delete rule",
		Close : "Close",
		Operand : "Operand : ",
		Operation : "Oper : ",
		filterFor : "filter for"
	},
	edit : {
	    addCaption: "Tilføj",
	    editCaption: "Ret",
	    bSubmit: "Send",
	    bCancel: "Annuller",
		bClose: "Luk",
		saveData: "Data has been changed! Save changes?",
		bYes : "Yes",
		bNo : "No",
		bExit : "Cancel",
	    msg: {
	        required:"Felt er nødvendigt",
	        number:"Indtast venligst et validt tal",
	        minValue:"værdi skal være større end eller lig med",
	        maxValue:"værdi skal være mindre end eller lig med",
	        email: "er ikke en valid email",
	        integer: "Indtast venligst et validt heltalt",
			date: "Indtast venligst en valid datoværdi",
			url: "is not a valid URL. Prefix required ('http://' or 'https://')",
			nodefined : " is not defined!",
			novalue : " return value is required!",
			customarray : "Custom function should return array!",
			customfcheck : "Custom function should be present in case of custom checking!"
		}
	},
	view : {
	    caption: "View Record",
	    bClose: "Close"
	},
	del : {
	    caption: "Slet",
	    msg: "Slet valgte række(r)?",
	    bSubmit: "Slet",
	    bCancel: "Annuller"
	},
	nav : {
		edittext: " ",
	    edittitle: "Rediger valgte række",
		addtext:" ",
	    addtitle: "Tilføj ny række",
	    deltext: " ",
	    deltitle: "Slet valgte række",
	    searchtext: " ",
	    searchtitle: "Find poster",
	    refreshtext: "",
	    refreshtitle: "Indlæs igen",
	    alertcap: "Advarsel",
	    alerttext: "Vælg venligst række",
		viewtext: "",
		viewtitle: "View selected row",
		savetext: "",
		savetitle: "Save row",
		canceltext: "",
		canceltitle : "Cancel row editing",
		selectcaption : "Actions..."
	},
	col : {
	    caption: "Vis/skjul kolonner",
	    bSubmit: "Send",
	    bCancel: "Annuller"
	},
	errors : {
		errcap : "Fejl",
		nourl : "Ingel url valgt",
		norecords: "Ingen poster at behandle",
	    model : "colNames og colModel har ikke samme længde!"
	},
	formatter : {
		integer : {thousandsSeparator: " ", defaultValue: '0'},
		number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'},
		currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
		date : {
			dayNames:   [
				"Søn", "Man", "Tirs", "Ons", "Tors", "Fre", "Lør",
				"Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"
			],
			monthNames: [
				"Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec",
				"Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December"
			],
			AmPm : ["","","",""],
			S: function (j) {return '.'},
			srcformat: 'Y-m-d',
			newformat: 'd/m/Y',
			parseRe : /[#%\\\/:_;.,\t\s-]/,
			masks : {
	            ISO8601Long:"Y-m-d H:i:s",
	            ISO8601Short:"Y-m-d",
	            ShortDate: "j/n/Y",
	            LongDate: "l d. F Y",
	            FullDateTime: "l d F Y G:i:s",
	            MonthDay: "d. F",
	            ShortTime: "G:i",
	            LongTime: "G:i:s",
	            SortableDateTime: "Y-m-d\\TH:i:s",
	            UniversalSortableDateTime: "Y-m-d H:i:sO",
	            YearMonth: "F Y"
	        },
	        reformatAfterEdit : false,
			userLocalTime : false
		},
		baseLinkUrl: '',
		showAction: '',
	    target: '',
	    checkbox : {disabled:true},
		idName : 'id'
	},
	colmenu : {
		sortasc : "Sort Ascending",
		sortdesc : "Sort Descending",
		columns : "Columns",
		filter : "Filter",
		grouping : "Group By",
		ungrouping : "Ungroup",
		searchTitle : "Get items with value that:",
		freeze : "Freeze",
		unfreeze : "Unfreeze",
		reorder : "Move to reorder",
		hovermenu: "Click for column quick actions"
	}
};
// DK
}));
js/i18n/grid.locale-no.js000064400000012376151676727230011123 0ustar00//NORWAY
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"../grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {

$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("regional")) {
	$.jgrid.regional = [];
}
$.jgrid.regional["no"] = {
    defaults : {
        recordtext: "Rad {0} - {1}, totalt {2}",
        loadtext: "Laster...",
        pgtext: "Side {0} av {1}",
		savetext: "Saving...",
        pgfirst: "First Page",
        pglast: "Last Page",
        pgnext: "Next Page",
        pgprev: "Previous Page",
        pgrecs: "Records per Page",
        showhide: "Toggle Expand Collapse Grid",
        emptyrecords: "Ingen poster funnet",
		// mobile
		pagerCaption : "Grid::Page Settings",
		pageText : "Page:",
		recordPage : "Records per Page",
		nomorerecs : "No more records...",
		scrollPullup: "Pull up to load more...",
		scrollPulldown : "Pull down to refresh...",
		scrollRefresh : "Release to refresh...",
		valT : "checked",
		valF : "unchecked",
		selectLine : "Select row",
		selectAllLines : "Select all rows"
    },
    search : {
		caption: "Søk...", 
		Find: "Finn", 
		Reset: "Nullstill", 
		odata: [
        {oper: 'eq', text: "lik"},
        {oper: 'ne', text: "forskjellig fra"},
        {oper: 'lt', text: "mindre enn"},
        {oper: 'le', text: "mindre eller lik"},
        {oper: 'gt', text: "større enn"},
        {oper: 'ge', text: " større eller lik"},
        {oper: 'bw', text: "starter med"},
        {oper: 'ew', text: "slutter med"},
        {oper: 'cn', text: "inneholder"},
        { oper: 'nu', text: 'is null'},
        { oper: 'nn', text: 'is not null'}, 
		{oper:'bt', text:'between'}
		], 
		operandTitle: "Click to select search operation.", 
		resetTitle: "Reset Search Value",
		addsubgrup : "Add subgroup",
		addrule : "Add rule",
		delgroup : "Delete group",
		delrule : "Delete rule",
		Close : "Close",
		Operand : "Operand : ",
		Operation : "Oper : ",
		filterFor : "filter for"
	},
    edit : {addCaption: "Ny rad", editCaption: "Rediger", bSubmit: "Send", bCancel: "Avbryt", bClose: "Lukk", processData: "Laster...", msg: {required: "Felt er obligatorisk", number: "Legg inn et gyldig tall", minValue: "verdi mø vøre større enn eller lik", maxValue: "verdi må være mindre enn eller lik", email: "er ikke en gyldig e-post adresse", integer: "Legg inn et gyldig heltall", date: "Legg inn en gyldig dato", url: "er ikke en gyldig URL. Prefiks påkrevd ('http://' eller 'https://')", nodefined: " er ikke definert!", novalue: " returverdi er påkrevd!", customarray: "Tilpasset funksjon må returnere en tabell!", customfcheck: "Tilpasset funksjon må eksistere!"}},
    view : {caption: "Åpne post", bClose: "Lukk"},
    del : {caption: "Slett", msg: "Slett valgte rad(er)?", bSubmit: "Slett", bCancel: "Avbryt", processData: "Behandler..."},
    nav : {edittext: " ", edittitle: "Rediger valgte rad(er)", addtext: " ", addtitle: "Legg til ny rad", deltext: " ", deltitle: "Slett valgte rad(er)", searchtext: " ", searchtitle: "Søk", refreshtext: "", refreshtitle: "Oppdater tabell", alertcap: "Advarsel", alerttext: "Velg rad", viewtext: " ", viewtitle: "Åpne valgt rad",
		savetext: "",
		savetitle: "Save row",
		canceltext: "",
		canceltitle : "Cancel row editing",
		selectcaption : "Actions..."
	},
    col : {caption: "Vis/skjul kolonner", bSubmit: "Utfør", bCancel: "Avbryt"},
    errors : {errcap: "Feil", nourl: "Ingen url er satt", norecords: "Ingen poster å behandle", model: "colNames og colModel har forskjellig lengde!"},
    formatter : {integer: {thousandsSeparator: " ", defaultValue: 0}, number: {decimalSeparator: ",", thousandsSeparator: " ", decimalPlaces: 2, defaulValue: 0}, currency: {decimalSeparator: ",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix: "", defaulValue: 0}, date: {dayNames: ["sø.", "ma.", "ti.", "on.", "to.", "fr.", "lø.", "Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"], monthNames: ["jan.", "feb.", "mars", "april", "mai", "juni", "juli", "aug.", "sep.", "okt.", "nov.", "des.", "januar", "februar", "mars", "april", "mai", "juni", "juli", "august", "september", "oktober", "november", "desember"], AmPm: ["", "", "", ""], S: function (b) {
        return".";
    }, srcformat: "Y-m-d H:i:s", newformat: "Y-m-d H:i:s", parseRe: /[#%\\\/:_;.,\t\s-]/, masks: {ISO8601Long: "Y-m-d H:i:s", ISO8601Short: "Y-m-d", ShortDate: "j.n.Y", LongDate: "l j. F Y", FullDateTime: "l j. F Y kl. G.i.s", MonthDay: "j. F", ShortTime: "H:i", LongTime: "H:i:s", SortableDateTime: "Y-m-d\\TH:i:s", UniversalSortableDateTime: "Y-m-d H:i:sO", YearMonth: "F Y"}, reformatAfterEdit: false, userLocalTime: false}, baseLinkUrl: "", showAction: "show", addParam: "", checkbox: {disabled: true}
	},
	colmenu : {
		sortasc : "Sort Ascending",
		sortdesc : "Sort Descending",
		columns : "Columns",
		filter : "Filter",
		grouping : "Group By",
		ungrouping : "Ungroup",
		searchTitle : "Get items with value that:",
		freeze : "Freeze",
		unfreeze : "Unfreeze",
		reorder : "Move to reorder",
		hovermenu: "Click for column quick actions"
	}

};
}));
js/i18n/grid.locale-vi.js000064400000021316151676727230011117 0ustar00/**
 * jqGrid Vietnamese Translation
 * Lê Đình Dũng dungtdc@gmail.com
 * http://trirand.com/blog/ 
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
**/
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"../grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {

$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("regional")) {
	$.jgrid.regional = [];
}
$.jgrid.regional["vi"] = {
	defaults : {
		recordtext: "View {0} - {1} of {2}",
		emptyrecords: "Không có dữ liệu",
		loadtext: "Đang nạp dữ liệu...",
		pgtext : "Trang {0} trong tổng số {1}",
		savetext: "Saving...",
		pgfirst : "First Page",
		pglast : "Last Page",
		pgnext : "Next Page",
		pgprev : "Previous Page",
		pgrecs : "Records per Page",
		showhide: "Toggle Expand Collapse Grid",
		// mobile
		pagerCaption : "Grid::Page Settings",
		pageText : "Page:",
		recordPage : "Records per Page",
		nomorerecs : "No more records...",
		scrollPullup: "Pull up to load more...",
		scrollPulldown : "Pull down to refresh...",
		scrollRefresh : "Release to refresh...",
		valT : "checked",
		valF : "unchecked",
		selectLine : "Select row",
		selectAllLines : "Select all rows"
	},
	search : {
		caption: "Tìm kiếm...",
		Find: "Tìm",
		Reset: "Khởi tạo lại",
		odata: [{ oper:'eq', text:"bằng"},{ oper:'ne', text:"không bằng"},{ oper:'lt', text:"bé hơn"},{ oper:'le', text:"bé hơn hoặc bằng"},{ oper:'gt', text:"lớn hơn"},{ oper:'ge', text:"lớn hơn hoặc bằng"},{ oper:'bw', text:"bắt đầu với"},{ oper:'bn', text:"không bắt đầu với"},{ oper:'in', text:"trong"},{ oper:'ni', text:"không nằm trong"},{ oper:'ew', text:"kết thúc với"},{ oper:'en', text:"không kết thúc với"},{ oper:'cn', text:"chứa"},{ oper:'nc', text:"không chứa"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],
		groupOps: [	{ op: "VÀ", text: "tất cả" },	{ op: "HOẶC",  text: "bất kỳ" }	],
		operandTitle : "Click to select search operation.",
		resetTitle : "Reset Search Value",
		addsubgrup : "Add subgroup",
		addrule : "Add rule",
		delgroup : "Delete group",
		delrule : "Delete rule",
		Close : "Close",
		Operand : "Operand : ",
		Operation : "Oper : ",
		filterFor : "filter for"
	},
	edit : {
		addCaption: "Thêm bản ghi",
		editCaption: "Sửa bản ghi",
		bSubmit: "Gửi",
		bCancel: "Hủy bỏ",
		bClose: "Đóng",
		saveData: "Dữ liệu đã thay đổi! Có lưu thay đổi không?",
		bYes : "Có",
		bNo : "Không",
		bExit : "Hủy bỏ",
		msg: {
			required:"Trường dữ liệu bắt buộc có",
			number:"Hãy điền đúng số",
			minValue:"giá trị phải lớn hơn hoặc bằng với ",
			maxValue:"giá trị phải bé hơn hoặc bằng",
			email: "không phải là một email đúng",
			integer: "Hãy điền đúng số nguyên",
			date: "Hãy điền đúng ngày tháng",
			url: "không phải là URL. Khởi đầu bắt buộc là ('http://' hoặc 'https://')",
			nodefined : " chưa được định nghĩa!",
			novalue : " giá trị trả về bắt buộc phải có!",
			customarray : "Hàm nên trả về một mảng!",
			customfcheck : "Custom function should be present in case of custom checking!"
			
		}
	},
	view : {
		caption: "Xem bản ghi",
		bClose: "Đóng"
	},
	del : {
		caption: "Xóa",
		msg: "Xóa bản ghi đã chọn?",
		bSubmit: "Xóa",
		bCancel: "Hủy bỏ"
	},
	nav : {
		edittext: "",
		edittitle: "Sửa dòng đã chọn",
		addtext:"",
		addtitle: "Thêm mới 1 dòng",
		deltext: "",
		deltitle: "Xóa dòng đã chọn",
		searchtext: "",
		searchtitle: "Tìm bản ghi",
		refreshtext: "",
		refreshtitle: "Nạp lại lưới",
		alertcap: "Cảnh báo",
		alerttext: "Hãy chọn một dòng",
		viewtext: "",
		viewtitle: "Xem dòng đã chọn",
		savetext: "",
		savetitle: "Save row",
		canceltext: "",
		canceltitle : "Cancel row editing",
		selectcaption : "Actions..."
	},
	col : {
		caption: "Chọn cột",
		bSubmit: "OK",
		bCancel: "Hủy bỏ"
	},
	errors : {
		errcap : "Lỗi",
		nourl : "không url được đặt",
		norecords: "Không có bản ghi để xử lý",
		model : "Chiều dài của colNames <> colModel!"
	},
	formatter : {
		integer : {thousandsSeparator: ".", defaultValue: '0'},
		number : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, defaultValue: '0'},
		currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0'},
		date : {
			dayNames:   [
				"CN", "T2", "T3", "T4", "T5", "T6", "T7",
				"Chủ nhật", "Thứ hai", "Thứ ba", "Thứ tư", "Thứ năm", "Thứ sáu", "Thứ bảy"
			],
			monthNames: [
				"Th1", "Th2", "Th3", "Th4", "Th5", "Th6", "Th7", "Th8", "Th9", "Th10", "Th11", "Th12",
				"Tháng một", "Tháng hai", "Tháng ba", "Tháng tư", "Tháng năm", "Tháng sáu", "Tháng bảy", "Tháng tám", "Tháng chín", "Tháng mười", "Tháng mười một", "Tháng mười hai"
			],
			AmPm : ["sáng","chiều","SÁNG","CHIỀU"],
			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th';},
			srcformat: 'Y-m-d',
			newformat: 'n/j/Y',
			parseRe : /[#%\\\/:_;.,\t\s-]/,
			masks : {
				// see http://php.net/manual/en/function.date.php for PHP format used in jqGrid
				// and see http://docs.jquery.com/UI/Datepicker/formatDate
				// and https://github.com/jquery/globalize#dates for alternative formats used frequently
				// one can find on https://github.com/jquery/globalize/tree/master/lib/cultures many
				// information about date, time, numbers and currency formats used in different countries
				// one should just convert the information in PHP format
				ISO8601Long:"Y-m-d H:i:s",
				ISO8601Short:"Y-m-d",
				// short date:
				//    n - Numeric representation of a month, without leading zeros
				//    j - Day of the month without leading zeros
				//    Y - A full numeric representation of a year, 4 digits
				// example: 3/1/2012 which means 1 March 2012
				ShortDate: "n/j/Y", // in jQuery UI Datepicker: "M/d/yyyy"
				// long date:
				//    l - A full textual representation of the day of the week
				//    F - A full textual representation of a month
				//    d - Day of the month, 2 digits with leading zeros
				//    Y - A full numeric representation of a year, 4 digits
				LongDate: "l, F d, Y", // in jQuery UI Datepicker: "dddd, MMMM dd, yyyy"
				// long date with long time:
				//    l - A full textual representation of the day of the week
				//    F - A full textual representation of a month
				//    d - Day of the month, 2 digits with leading zeros
				//    Y - A full numeric representation of a year, 4 digits
				//    g - 12-hour format of an hour without leading zeros
				//    i - Minutes with leading zeros
				//    s - Seconds, with leading zeros
				//    A - Uppercase Ante meridiem and Post meridiem (AM or PM)
				FullDateTime: "l, F d, Y g:i:s A", // in jQuery UI Datepicker: "dddd, MMMM dd, yyyy h:mm:ss tt"
				// month day:
				//    F - A full textual representation of a month
				//    d - Day of the month, 2 digits with leading zeros
				MonthDay: "F d", // in jQuery UI Datepicker: "MMMM dd"
				// short time (without seconds)
				//    g - 12-hour format of an hour without leading zeros
				//    i - Minutes with leading zeros
				//    A - Uppercase Ante meridiem and Post meridiem (AM or PM)
				ShortTime: "g:i A", // in jQuery UI Datepicker: "h:mm tt"
				// long time (with seconds)
				//    g - 12-hour format of an hour without leading zeros
				//    i - Minutes with leading zeros
				//    s - Seconds, with leading zeros
				//    A - Uppercase Ante meridiem and Post meridiem (AM or PM)
				LongTime: "g:i:s A", // in jQuery UI Datepicker: "h:mm:ss tt"
				SortableDateTime: "Y-m-d\\TH:i:s",
				UniversalSortableDateTime: "Y-m-d H:i:sO",
				// month with year
				//    Y - A full numeric representation of a year, 4 digits
				//    F - A full textual representation of a month
				YearMonth: "F, Y" // in jQuery UI Datepicker: "MMMM, yyyy"
			},
			reformatAfterEdit : false,
			userLocalTime : false
		},
		baseLinkUrl: '',
		showAction: '',
		target: '',
		checkbox : {disabled:true},
		idName : 'id'
	},
	colmenu : {
		sortasc : "Sort Ascending",
		sortdesc : "Sort Descending",
		columns : "Columns",
		filter : "Filter",
		grouping : "Group By",
		ungrouping : "Ungroup",
		searchTitle : "Get items with value that:",
		freeze : "Freeze",
		unfreeze : "Unfreeze",
		reorder : "Move to reorder",
		hovermenu: "Click for column quick actions"
	}
};
}));
js/i18n/grid.locale-ro.js000064400000015373151676727230011127 0ustar00/**
 * jqGrid Romanian Translation
 * Alexandru Emil Lupu contact@alecslupu.ro
 * http://www.alecslupu.ro/ 
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
**/
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"../grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {

$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("regional")) {
	$.jgrid.regional = [];
}
$.jgrid.regional["ro"] = {
	defaults : {
		recordtext: "Vizualizare {0} - {1} din {2}",
		emptyrecords: "Nu există înregistrări de vizualizat",
		loadtext: "Încărcare...",
		pgtext : "Pagina {0} din {1}",
		savetext: "Salvare...",
		pgfirst : "Prima pagină",
		pglast : "Ultima pagină",
		pgnext : "Următoarea pagină",
		pgprev : "Pagina anterioară",
		pgrecs : "Înregistrări pe pagină",
		showhide: "Comutați Extindeți Restrângeți grila",
		// mobile
		pagerCaption : "Setări Grid::Page",
		pageText : "Pagina:",
		recordPage : "Înregistrări pe pagină",
		nomorerecs : "Nu mai există înregistrări...",
		scrollPullup: "Trageți în sus pentru a încărca mai multe...",
		scrollPulldown : "Trageți în jos pentru a reîmprospăta...",
		scrollRefresh : "Eliberați pentru a reîmprospăta...",
		valT : "checked",
		valF : "unchecked",
		selectLine : "Select row",
		selectAllLines : "Select all rows"
	},
	search : {
		caption: "Caută...",
		Find: "Caută",
		Reset: "Resetare",
		odata: [{ oper:'eq', text:"egal"},{ oper:'ne', text:"diferit"},{ oper:'lt', text:"mai mic"},{ oper:'le', text:"mai mic sau egal"},{ oper:'gt', text:"mai mare"},{ oper:'ge', text:"mai mare sau egal"},{ oper:'bw', text:"începe cu"},{ oper:'bn', text:"nu începe cu"},{ oper:'in', text:"se găsește în"},{ oper:'ni', text:"nu se găsește în"},{ oper:'ew', text:"se termină cu"},{ oper:'en', text:"nu se termină cu"},{ oper:'cn', text:"conține"},{ oper:'nc', text:""},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],
		groupOps: [	{ op: "AND", text: "toate" },	{ op: "OR",  text: "oricare" }	],
		operandTitle : "Faceți clic pentru a selecta operația de căutare.",
		resetTitle : "Resetați valoarea căutării",
		addsubgrup : "Adăugați subgrup",
		addrule : "Adăugați o regulă",
		delgroup : "Șterge grupul",
		delrule : "Ștergeți regula",
		Close : "Închide",
		Operand : "Operand : ",
		Operation : "Operație : ",
		filterFor : "filter for"
	},
	edit : {
		addCaption: "Adăugare înregistrare",
		editCaption: "Modificare înregistrare",
		bSubmit: "Salvează",
		bCancel: "Anulare",
		bClose: "Închide",
		saveData: "Informațiile au fost modificate! Salvați modificările?",
		bYes : "Da",
		bNo : "Nu",
		bExit : "Anulare",
		msg: {
			required:"Câmpul este obligatoriu",
			number:"Vă rugăm introduceți un număr valid",
			minValue:"valoarea trebuie sa fie mai mare sau egală cu",
			maxValue:"valoarea trebuie sa fie mai mică sau egală cu",
			email: "nu este o adresă de e-mail validă",
			integer: "Vă rugăm introduceți un număr valid",
			date: "Vă rugăm să introduceți o dată validă",
			url: "Nu este un URL valid. Prefixul  este necesar('http://' or 'https://')",
			nodefined : " nu este definit!",
			novalue : " valoarea returnată este necesară!",
			customarray : "Funcția personalizată ar trebui să returneze Array!",
			customfcheck : "Funcția personalizată ar trebui să fie prezentă în cazul verificării personalizate!"
		}
	},
	view : {
		caption: "Vizualizare înregistrare",
		bClose: "Închidere"
	},
	del : {
		caption: "Ștegere",
		msg: "Ștergeți înregistrarea (înregistrările) selectate?",
		bSubmit: "Șterge",
		bCancel: "Anulare"
	},
	nav : {
		edittext: "",
		edittitle: "Modifică rândul selectat",
		addtext:"",
		addtitle: "Adaugă rând nou",
		deltext: "",
		deltitle: "Șterge rândul selectat",
		searchtext: "",
		searchtitle: "Căutare înregistrări",
		refreshtext: "",
		refreshtitle: "Reîncarcare Grid",
		alertcap: "Avertisment",
		alerttext: "Vă rugăm să selectați un rând",
		viewtext: "",
		viewtitle: "Vizualizează rândul selectat",
		savetext: "",
		savetitle: "Salvați rândul",
		canceltext: "",
		canceltitle : "Anulați editarea rândurilor",
		selectcaption : "Acțiuni..."
	},
	col : {
		caption: "Arată/Ascunde coloanele",
		bSubmit: "Salvează",
		bCancel: "Anulare"
	},
	errors : {
		errcap : "Eroare",
		nourl : "Niciun url nu este setat",
		norecords: "Nu sunt înregistrări de procesat",
		model : "Lungimea colNames <> colModel!"
	},
	formatter : {
		integer : {thousandsSeparator: " ", defaultValue: '0'},
		number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'},
		currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
		date : {
			dayNames:   [
				"Dum", "Lun", "Mar", "Mie", "Joi", "Vin", "Sâm",
				"Duminică", "Luni", "Marți", "Miercuri", "Joi", "Vineri", "Sâmbătă"
			],
			monthNames: [
				"Ian", "Feb", "Mar", "Apr", "Mai", "Iun", "Iul", "Aug", "Sep", "Oct", "Noi", "Dec",
				"Ianuarie", "Februarie", "Martie", "Aprilie", "Mai", "Iunie", "Iulie", "August", "Septembrie", "Octombrie", "Noiembrie", "Decembrie"
			],
			AmPm : ["am","pm","AM","PM"],
			/*
			 Here is a problem in romanian: 
					M	/	F
			 1st = primul / prima
			 2nd = Al doilea / A doua
			 3rd = Al treilea / A treia 
			 4th = Al patrulea/ A patra
			 5th = Al cincilea / A cincea 
			 6th = Al șaselea / A șasea
			 7th = Al șaptelea / A șaptea
			 .... 
			 */
			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
			srcformat: 'Y-m-d',
			newformat: 'd/m/Y',
			parseRe : /[#%\\\/:_;.,\t\s-]/,
			masks : {
				ISO8601Long:"Y-m-d H:i:s",
				ISO8601Short:"Y-m-d",
				ShortDate: "n/j/Y",
				LongDate: "l, F d, Y",
				FullDateTime: "l, F d, Y g:i:s A",
				MonthDay: "F d",
				ShortTime: "g:i A",
				LongTime: "g:i:s A",
				SortableDateTime: "Y-m-d\\TH:i:s",
				UniversalSortableDateTime: "Y-m-d H:i:sO",
				YearMonth: "F, Y"
			},
			reformatAfterEdit : false,
			userLocalTime : false
		},
		baseLinkUrl: '',
		showAction: '',
		target: '',
		checkbox : {disabled:true},
		idName : 'id'
	},
	colmenu : {
		sortasc : "Sortare ascendentă",
		sortdesc : "Sortează descrescător",
		columns : "Coloane",
		filter : "Filtru",
		grouping : "Grupează după",
		ungrouping : "Eliminarea Gruparea",
		searchTitle : "Obțineți elemente cu valoare care:",
		freeze : "Freeze",
		unfreeze : "Unfreeze",
		reorder : "Mutați pentru a reordona",
		hovermenu: "Faceți clic pentru acțiuni rapide pe coloană"
	}
};
}));
js/i18n/grid.locale-sk.js000064400000014151151676727230011115 0ustar00/**
 * jqGrid Slovak Translation
 * Milan Cibulka
 * http://trirand.com/blog/ 
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
**/
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"../grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {

$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("regional")) {
	$.jgrid.regional = [];
}
$.jgrid.regional["sk"] = {
	defaults : {
		recordtext: "Zobrazených {0} - {1} z {2} záznamov",
	    emptyrecords: "Neboli nájdené žiadne záznamy",
		loadtext: "Načítám...",
		pgtext : "Strana {0} z {1}",
		savetext: "Saving...",
		pgfirst : "First Page",
		pglast : "Last Page",
		pgnext : "Next Page",
		pgprev : "Previous Page",
		pgrecs : "Records per Page",
		showhide: "Toggle Expand Collapse Grid",
		// mobile
		pagerCaption : "Grid::Page Settings",
		pageText : "Page:",
		recordPage : "Records per Page",
		nomorerecs : "No more records...",
		scrollPullup: "Pull up to load more...",
		scrollPulldown : "Pull down to refresh...",
		scrollRefresh : "Release to refresh...",
		valT : "checked",
		valF : "unchecked",
		selectLine : "Select row",
		selectAllLines : "Select all rows"
	},
	search : {
		caption: "Vyhľadávam...",
		Find: "Hľadať",
		Reset: "Reset",
	    odata: [{ oper:'eq', text:"rovná sa"},{ oper:'ne', text:"nerovná sa"},{ oper:'lt', text:"menšie"},{ oper:'le', text:"menšie alebo rovnajúce sa"},{ oper:'gt', text:"väčšie"},{ oper:'ge', text:"väčšie alebo rovnajúce sa"},{ oper:'bw', text:"začína s"},{ oper:'bn', text:"nezačína s"},{ oper:'in', text:"je v"},{ oper:'ni', text:"nie je v"},{ oper:'ew', text:"končí s"},{ oper:'en', text:"nekončí s"},{ oper:'cn', text:"obahuje"},{ oper:'nc', text:"neobsahuje"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],
	    groupOps: [	{ op: "AND", text: "všetkých" },	{ op: "OR",  text: "niektorého z" }	],
		operandTitle : "Click to select search operation.",
		resetTitle : "Reset Search Value",
		addsubgrup : "Add subgroup",
		addrule : "Add rule",
		delgroup : "Delete group",
		delrule : "Delete rule",
		Close : "Close",
		Operand : "Operand : ",
		Operation : "Oper : ",
		filterFor : "filter for"
	},
	edit : {
		addCaption: "Pridať záznam",
		editCaption: "Editácia záznamov",
		bSubmit: "Uložiť",
		bCancel: "Storno",
		bClose: "Zavrieť",
		saveData: "Údaje boli zmenené! Uložiť zmeny?",
		bYes : "Ano",
		bNo : "Nie",
		bExit : "Zrušiť",
		msg: {
		    required:"Pole je požadované",
		    number:"Prosím, vložte valídne číslo",
		    minValue:"hodnota musí býť väčšia ako alebo rovná ",
		    maxValue:"hodnota musí býť menšia ako alebo rovná ",
		    email: "nie je valídny e-mail",
		    integer: "Prosím, vložte celé číslo",
			date: "Prosím, vložte valídny dátum",
			url: "nie je platnou URL. Požadovaný prefix ('http://' alebo 'https://')",
			nodefined : " nie je definovaný!",
			novalue : " je vyžadovaná návratová hodnota!",
			customarray : "Custom function mala vrátiť pole!",
			customfcheck : "Custom function by mala byť prítomná v prípade custom checking!"
		}
	},
	view : {
	    caption: "Zobraziť záznam",
	    bClose: "Zavrieť"
	},
	del : {
		caption: "Zmazať",
		msg: "Zmazať vybraný(é) záznam(y)?",
		bSubmit: "Zmazať",
		bCancel: "Storno"
	},
	nav : {
		edittext: " ",
		edittitle: "Editovať vybraný riadok",
		addtext:" ",
		addtitle: "Pridať nový riadek",
		deltext: " ",
		deltitle: "Zmazať vybraný záznam ",
		searchtext: " ",
		searchtitle: "Nájsť záznamy",
		refreshtext: "",
		refreshtitle: "Obnoviť tabuľku",
		alertcap: "Varovanie",
		alerttext: "Prosím, vyberte riadok",
		viewtext: "",
		viewtitle: "Zobraziť vybraný riadok",
		savetext: "",
		savetitle: "Save row",
		canceltext: "",
		canceltitle : "Cancel row editing",
		selectcaption : "Actions..."
	},
	col : {
		caption: "Zobrazit/Skrýť stĺpce",
		bSubmit: "Uložiť",
		bCancel: "Storno"	
	},
	errors : {
		errcap : "Chyba",
		nourl : "Nie je nastavená url",
		norecords: "Žiadne záznamy k spracovaniu",
		model : "Dĺžka colNames <> colModel!"
	},
	formatter : {
		integer : {thousandsSeparator: " ", defaultValue: '0'},
		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
		date : {
			dayNames:   [
				"Ne", "Po", "Ut", "St", "Št", "Pi", "So",
				"Nedela", "Pondelok", "Utorok", "Streda", "Štvrtok", "Piatek", "Sobota"
			],
			monthNames: [
				"Jan", "Feb", "Mar", "Apr", "Máj", "Jún", "Júl", "Aug", "Sep", "Okt", "Nov", "Dec",
				"Január", "Február", "Marec", "Apríl", "Máj", "Jún", "Júl", "August", "September", "Október", "November", "December"
			],
			AmPm : ["do","od","DO","OD"],
			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
			srcformat: 'Y-m-d',
			newformat: 'd/m/Y',
			parseRe : /[#%\\\/:_;.,\t\s-]/,
			masks : {
		        ISO8601Long:"Y-m-d H:i:s",
		        ISO8601Short:"Y-m-d",
		        ShortDate: "n/j/Y",
		        LongDate: "l, F d, Y",
		        FullDateTime: "l, F d, Y g:i:s A",
		        MonthDay: "F d",
		        ShortTime: "g:i A",
		        LongTime: "g:i:s A",
		        SortableDateTime: "Y-m-d\\TH:i:s",
		        UniversalSortableDateTime: "Y-m-d H:i:sO",
		        YearMonth: "F, Y"
		    },
		    reformatAfterEdit : false,
			userLocalTime : false
		},
		baseLinkUrl: '',
		showAction: '',
	    target: '',
	    checkbox : {disabled:true},
		idName : 'id'
	},
	colmenu : {
		sortasc : "Sort Ascending",
		sortdesc : "Sort Descending",
		columns : "Columns",
		filter : "Filter",
		grouping : "Group By",
		ungrouping : "Ungroup",
		searchTitle : "Get items with value that:",
		freeze : "Freeze",
		unfreeze : "Unfreeze",
		reorder : "Move to reorder",
		hovermenu: "Click for column quick actions"
	}
};
}));
js/i18n/grid.locale-hu.js000064400000013735151676727230011123 0ustar00/**
 * jqGrid Hungarian Translation
 * Őrszigety Ádám udx6bs@freemail.hu
 * http://trirand.com/blog/ 
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
**/

/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"../grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {

$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("regional")) {
	$.jgrid.regional = [];
}
$.jgrid.regional["hu"] = {
	defaults : {
		recordtext: "Oldal {0} - {1} / {2}",
		emptyrecords: "Nincs találat",
		loadtext: "Betöltés...",
		pgtext : "Oldal {0} / {1}",
		savetext: "Mentés...",
		pgfirst : "Első oldal",
		pglast : "Utolsó oldal",
		pgnext : "Következő oldal",
		pgprev : "Előző oldal",
		pgrecs : "Rekordok oldalanként",
		showhide: "Toggle Expand Collapse Grid",
		// mobile
		pagerCaption : "Grid::Page Settings",
		pageText : "Oldal:",
		recordPage : "Rekordok oldalanként",
		nomorerecs : "Nincs több rekord...",
		scrollPullup: "Pull up to load more...",
		scrollPulldown : "Pull down to refresh...",
		scrollRefresh : "Release to refresh...",
		valT : "checked",
		valF : "unchecked",
		selectLine : "Select row",
		selectAllLines : "Select all rows"
	},
	search : {
		caption: "Keresés...",
		Find: "Keres",
		Reset: "Alapértelmezett",
		odata: [{ oper:'eq', text:"egyenlő"},{ oper:'ne', text:"nem egyenlő"},{ oper:'lt', text:"kevesebb"},{ oper:'le', text:"kevesebb vagy egyenlő"},{ oper:'gt', text:"nagyobb"},{ oper:'ge', text:"nagyobb vagy egyenlő"},{ oper:'bw', text:"ezzel kezdődik"},{ oper:'bn', text:"nem ezzel kezdődik"},{ oper:'in', text:"tartalmaz"},{ oper:'ni', text:"nem tartalmaz"},{ oper:'ew', text:"végződik"},{ oper:'en', text:"nem végződik"},{ oper:'cn', text:"tartalmaz"},{ oper:'nc', text:"nem tartalmaz"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'között'}],
		groupOps: [	{ op: "AND", text: "all" },	{ op: "OR",  text: "any" }	],
		operandTitle : "Click to select search operation.",
		resetTitle : "Reset Search Value",
		addsubgrup : "Add subgroup",
		addrule : "Add rule",
		delgroup : "Delete group",
		delrule : "Delete rule",
		Close : "Close",
		Operand : "Operand : ",
		Operation : "Oper : ",
		filterFor : "filter for"
	},
	edit : {
		addCaption: "Új tétel",
		editCaption: "Tétel szerkesztése",
		bSubmit: "Mentés",
		bCancel: "Mégse",
		bClose: "Bezárás",
		saveData: "A tétel megváltozott! Tétel mentése?",
		bYes : "Igen",
		bNo : "Nem",
		bExit : "Mégse",
		msg: {
			required:"Kötelező mező",
			number:"Kérjük, adjon meg egy helyes számot",
			minValue:"Nagyobb vagy egyenlőnek kell lenni mint ",
			maxValue:"Kisebb vagy egyenlőnek kell lennie mint",
			email: "Hibás email cím",
			integer: "Kérjük adjon meg egy helyes egész számot",
			date: "Kérjük adjon meg egy helyes dátumot",
			url: "nem helyes cím. Előtag kötelező ('http://' vagy 'https://')",
			nodefined : " nem definiált!",
			novalue : " visszatérési érték kötelező!!",
			customarray : "Custom function should return array!",
			customfcheck : "Custom function should be present in case of custom checking!"
			
		}
	},
	view : {
		caption: "Tétel megtekintése",
		bClose: "Bezárás"
	},
	del : {
		caption: "Törlés",
		msg: "Kiválaztott tétel(ek) törlése?",
		bSubmit: "Törlés",
		bCancel: "Mégse"
	},
	nav : {
		edittext: "",
		edittitle: "Tétel szerkesztése",
		addtext:"",
		addtitle: "Új tétel hozzáadása",
		deltext: "",
		deltitle: "Tétel törlése",
		searchtext: "",
		searchtitle: "Keresés",
		refreshtext: "",
		refreshtitle: "Frissítés",
		alertcap: "Figyelmeztetés",
		alerttext: "Kérem válasszon tételt.",
		viewtext: "",
		viewtitle: "Tétel megtekintése",
		savetext: "",
		savetitle: "Save row",
		canceltext: "",
		canceltitle : "Cancel row editing",
		selectcaption : "Actions..."
	},
	col : {
		caption: "Oszlopok kiválasztása",
		bSubmit: "Ok",
		bCancel: "Mégse"
	},
	errors : {
		errcap : "Hiba",
		nourl : "Nincs URL beállítva",
		norecords: "Nincs feldolgozásra váró tétel",
		model : "colNames és colModel hossza nem egyenlő!"
	},
	formatter : {
		integer : {thousandsSeparator: " ", defaultValue: '0'},
		number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'},
		currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
		date : {
			dayNames:   [
				"Va", "Hé", "Ke", "Sze", "Csü", "Pé", "Szo",
				"Vasárnap", "Hétfő", "Kedd", "Szerda", "Csütörtök", "Péntek", "Szombat"
			],
			monthNames: [
				"Jan", "Feb", "Már", "Ápr", "Máj", "Jún", "Júl", "Aug", "Szep", "Okt", "Nov", "Dec",
				"Január", "Február", "Március", "Áprili", "Május", "Június", "Július", "Augusztus", "Szeptember", "Október", "November", "December"
			],
			AmPm : ["de","du","DE","DU"],
			S: function (j) {return '.-ik';},
			srcformat: 'Y-m-d',
			newformat: 'Y/m/d',
			parseRe : /[#%\\\/:_;.,\t\s-]/,
			masks : {
				ISO8601Long:"Y-m-d H:i:s",
				ISO8601Short:"Y-m-d",
				ShortDate: "Y/j/n",
				LongDate: "Y. F hó d., l",
				FullDateTime: "l, F d, Y g:i:s A",
				MonthDay: "F d",
				ShortTime: "a g:i",
				LongTime: "a g:i:s",
				SortableDateTime: "Y-m-d\\TH:i:s",
				UniversalSortableDateTime: "Y-m-d H:i:sO",
				YearMonth: "Y, F"
			},
			reformatAfterEdit : false,
			userLocalTime : false
		},
		baseLinkUrl: '',
		showAction: '',
		target: '',
		checkbox : {disabled:true},
		idName : 'id'
	},
	colmenu : {
		sortasc : "Sort Ascending",
		sortdesc : "Sort Descending",
		columns : "Columns",
		filter : "Filter",
		grouping : "Group By",
		ungrouping : "Ungroup",
		searchTitle : "Get items with value that:",
		freeze : "Freeze",
		unfreeze : "Unfreeze",
		reorder : "Move to reorder",
		hovermenu: "Click for column quick actions"
	}
};
}));
js/i18n/grid.locale-el.js000064400000015733151676727230011107 0ustar00/**
 * jqGrid Greek (el) Translation
 * Alex Cicovic
 * http://www.alexcicovic.com
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
**/
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"../grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {

$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("regional")) {
	$.jgrid.regional = [];
}
$.jgrid.regional["el"] = {
	defaults : {
		recordtext: "View {0} - {1} of {2}",
	    emptyrecords: "No records to view",
		loadtext: "Φόρτωση...",
		savetext: "Saving...",
		pgtext : "Page {0} of {1}",
		pgfirst : "First Page",
		pglast : "Last Page",
		pgnext : "Next Page",
		pgprev : "Previous Page",
		pgrecs : "Records per Page",
		showhide: "Toggle Expand Collapse Grid",
		// mobile
		pagerCaption : "Grid::Page Settings",
		pageText : "Page:",
		recordPage : "Records per Page",
		nomorerecs : "No more records...",
		scrollPullup: "Pull up to load more...",
		scrollPulldown : "Pull down to refresh...",
		scrollRefresh : "Release to refresh...",
		valT : "checked",
		valF : "unchecked",
		selectLine : "Select row",
		selectAllLines : "Select all rows"
	},
	search : {
	    caption: "Αναζήτηση...",
	    Find: "Εύρεση",
	    Reset: "Επαναφορά",
	    odata: [{ oper:'eq', text:'equal'},{ oper:'ne', text:'not equal'},{ oper:'lt', text:'less'},{ oper:'le', text:'less or equal'},{ oper:'gt', text:'greater'},{ oper:'ge', text:'greater or equal'},{ oper:'bw', text:'begins with'},{ oper:'bn', text:'does not begin with'},{ oper:'in', text:'is in'},{ oper:'ni', text:'is not in'},{ oper:'ew', text:'ends with'},{ oper:'en', text:'does not end with'},{ oper:'cn', text:'contains'},{ oper:'nc', text:'does not contain'},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],
	    groupOps: [	{ op: "AND", text: "all" },	{ op: "OR",  text: "any" }	],
		operandTitle : "Click to select search operation.",
		resetTitle : "Reset Search Value",
		addsubgrup : "Add subgroup",
		addrule : "Add rule",
		delgroup : "Delete group",
		delrule : "Delete rule",
		Close : "Close",
		Operand : "Operand : ",
		Operation : "Oper : ",
		filterFor : "filter for"
	},
	edit : {
	    addCaption: "Εισαγωγή Εγγραφής",
	    editCaption: "Επεξεργασία Εγγραφής",
	    bSubmit: "Καταχώρηση",
	    bCancel: "Άκυρο",
		bClose: "Κλείσιμο",
		saveData: "Data has been changed! Save changes?",
		bYes : "Yes",
		bNo : "No",
		bExit : "Cancel",
	    msg: {
	        required:"Το πεδίο είναι απαραίτητο",
	        number:"Το πεδίο δέχεται μόνο αριθμούς",
	        minValue:"Η τιμή πρέπει να είναι μεγαλύτερη ή ίση του ",
	        maxValue:"Η τιμή πρέπει να είναι μικρότερη ή ίση του ",
	        email: "Η διεύθυνση e-mail δεν είναι έγκυρη",
	        integer: "Το πεδίο δέχεται μόνο ακέραιους αριθμούς",
			url: "is not a valid URL. Prefix required ('http://' or 'https://')",
			nodefined : " is not defined!",
			novalue : " return value is required!",
			customarray : "Custom function should return array!",
			customfcheck : "Custom function should be present in case of custom checking!"
		}
	},
	view : {
	    caption: "View Record",
	    bClose: "Close"
	},
	del : {
	    caption: "Διαγραφή",
	    msg: "Διαγραφή των επιλεγμένων εγγραφών;",
	    bSubmit: "Ναι",
	    bCancel: "Άκυρο"
	},
	nav : {
		edittext: " ",
	    edittitle: "Επεξεργασία επιλεγμένης εγγραφής",
		addtext:" ",
	    addtitle: "Εισαγωγή νέας εγγραφής",
	    deltext: " ",
	    deltitle: "Διαγραφή επιλεγμένης εγγραφής",
	    searchtext: " ",
	    searchtitle: "Εύρεση Εγγραφών",
	    refreshtext: "",
	    refreshtitle: "Ανανέωση Πίνακα",
	    alertcap: "Προσοχή",
	    alerttext: "Δεν έχετε επιλέξει εγγραφή",
		viewtext: "",
		viewtitle: "View selected row",
		savetext: "",
		savetitle: "Save row",
		canceltext: "",
		canceltitle : "Cancel row editing",
		selectcaption : "Actions..."
	},
	col : {
	    caption: "Εμφάνιση / Απόκρυψη Στηλών",
	    bSubmit: "ΟΚ",
	    bCancel: "Άκυρο"
	},
	errors : {
		errcap : "Σφάλμα",
		nourl : "Δεν έχει δοθεί διεύθυνση χειρισμού για τη συγκεκριμένη ενέργεια",
		norecords: "Δεν υπάρχουν εγγραφές προς επεξεργασία",
		model : "Άνισος αριθμός πεδίων colNames/colModel!"
	},
	formatter : {
		integer : {thousandsSeparator: " ", defaultValue: '0'},
		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
		date : {
			dayNames:   [
				"Κυρ", "Δευ", "Τρι", "Τετ", "Πεμ", "Παρ", "Σαβ",
				"Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο"
			],
			monthNames: [
				"Ιαν", "Φεβ", "Μαρ", "Απρ", "Μαι", "Ιουν", "Ιουλ", "Αυγ", "Σεπ", "Οκτ", "Νοε", "Δεκ",
				"Ιανουάριος", "Φεβρουάριος", "Μάρτιος", "Απρίλιος", "Μάιος", "Ιούνιος", "Ιούλιος", "Αύγουστος", "Σεπτέμβριος", "Οκτώβριος", "Νοέμβριος", "Δεκέμβριος"
			],
			AmPm : ["πμ","μμ","ΠΜ","ΜΜ"],
			S: function (j) {return j == 1 || j > 1 ? ['η'][Math.min((j - 1) % 10, 3)] : ''},
			srcformat: 'Y-m-d',
			newformat: 'd/m/Y',
			parseRe : /[#%\\\/:_;.,\t\s-]/,
			masks : {
	            ISO8601Long:"Y-m-d H:i:s",
	            ISO8601Short:"Y-m-d",
	            ShortDate: "n/j/Y",
	            LongDate: "l, F d, Y",
	            FullDateTime: "l, F d, Y g:i:s A",
	            MonthDay: "F d",
	            ShortTime: "g:i A",
	            LongTime: "g:i:s A",
	            SortableDateTime: "Y-m-d\\TH:i:s",
	            UniversalSortableDateTime: "Y-m-d H:i:sO",
	            YearMonth: "F, Y"
	        },
	        reformatAfterEdit : false,
			userLocalTime : false
		},
		baseLinkUrl: '',
		showAction: '',
	    target: '',
	    checkbox : {disabled:true},
		idName : 'id'
	},
	colmenu : {
		sortasc : "Sort Ascending",
		sortdesc : "Sort Descending",
		columns : "Columns",
		filter : "Filter",
		grouping : "Group By",
		ungrouping : "Ungroup",
		searchTitle : "Get items with value that:",
		freeze : "Freeze",
		unfreeze : "Unfreeze",
		reorder : "Move to reorder",
		hovermenu: "Click for column quick actions"
	}
};
}));
js/i18n/grid.locale-de.js000064400000021004151676727230011063 0ustar00/**
 * jqGrid German Translation
 * Version 1.0.0 (developed for jQuery Grid 3.3.1)
 * Olaf Klöppel opensource@blue-hit.de
 * http://blue-hit.de/ 
 *
 * Updated for jqGrid 3.8
 * Andreas Flack
 * http://www.contentcontrol-berlin.de
 *
 * Updated for jQuery 4.4
 * Oleg Kiriljuk oleg.kiriljuk@ok-soft-gmbh.com
 * the format corresponds now the format from
 * https://github.com/jquery/globalize/blob/master/lib/cultures/globalize.culture.de.js
 * 
 * Updated for jqGrid 4.8
 * Tony Tomov
 * http://www.guriddo.net
 *
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
**/
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"../grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {

$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("regional")) {
	$.jgrid.regional = [];
}
$.jgrid.regional["de"] = {
	defaults : {
		recordtext: "Zeige {0} - {1} von {2}",
		emptyrecords: "Keine Datensätze vorhanden",
		loadtext: "Lädt...",
		savetext: "Speichern...",
		pgtext : "Seite {0} von {1}",
		pgfirst : "erste Seite",
		pglast : "letzte Seite",
		pgnext : "nächste Seite",
		pgprev : "vorherige Seite",
		pgrecs : "Datensätze pro Seite",
		showhide: "Toggle erweitern reduzieren",
		// mobile
		pagerCaption : "Grid::Seite Optionen",
		pageText : "Seite:",
		recordPage : "Ergebnisse pro Seite",
		nomorerecs : "Keine weiteren Datensätze...",
		scrollPullup: "Ziehen Sie, um mehr zu laden...",
		scrollPulldown : "Pulldown zu aktualisieren...",
		scrollRefresh : "Lassen Sie zu aktualisieren..."
	},
	search : {
		caption: "Suche...",
		Find: "Suchen",
		Reset: "Zurücksetzen",
		odata: [{ oper:'eq', text:"gleich"},{ oper:'ne', text:"ungleich"},{ oper:'lt', text:"kleiner"},{ oper:'le', text:"kleiner gleich"},{ oper:'gt', text:"größer"},{ oper:'ge', text:"größer gleich"},{ oper:'bw', text:"beginnt mit"},{ oper:'bn', text:"beginnt nicht mit"},{ oper:'in', text:"ist in"},{ oper:'ni', text:"ist nicht in"},{ oper:'ew', text:"endet mit"},{ oper:'en', text:"endet nicht mit"},{ oper:'cn', text:"enthält"},{ oper:'nc', text:"enthält nicht"}, { oper:'nu', text:"ist Null" }, { oper:'nn', text:"ist nicht Null" }, {oper:'bt', text:'zwischen'}],
		groupOps: [{ op: "AND", text: "alle" },{ op: "OR", text: "mindestens eine" }],
		operandTitle : "Klicken Sie auf Suchoperation zu wählen.",
		resetTitle : "Reset Suche Wert",
		addsubgrup : "Gruppe hinzufügen",
		addrule : "In der Regel",
		delgroup : "Gruppe löschen",
		delrule : "Regel löschen",
		Close : "Close",
		Operand : "Operand : ",
		Operation : "Oper : ",
		filterFor : "filter for"
	},
	edit : {
		addCaption: "Datensatz hinzufügen",
		editCaption: "Datensatz bearbeiten",
		bSubmit: "Speichern",
		bCancel: "Abbrechen",
		bClose: "Schließen",
		saveData: "Daten wurden geändert! Änderungen speichern?",
		bYes : "ja",
		bNo : "nein",
		bExit : "abbrechen",
		msg: {
			required:"Feld ist erforderlich",
			number: "Bitte geben Sie eine Zahl ein",
			minValue:"Wert muss größer oder gleich sein, als ",
			maxValue:"Wert muss kleiner oder gleich sein, als ",
			email: "ist keine gültige E-Mail-Adresse",
			integer: "Bitte geben Sie eine Ganzzahl ein",
			date: "Bitte geben Sie ein gültiges Datum ein",
			url: "ist keine gültige URL. Präfix muss eingegeben werden ('http://' oder 'https://')",
			nodefined : " ist nicht definiert!",
			novalue : " Rückgabewert ist erforderlich!",
			customarray : "Benutzerdefinierte Funktion sollte ein Array zurückgeben!",
			customfcheck : "Benutzerdefinierte Funktion sollte im Falle der benutzerdefinierten Überprüfung vorhanden sein!"
		}
	},
	view : {
		caption: "Datensatz anzeigen",
		bClose: "Schließen"
	},
	del : {
		caption: "Löschen",
		msg: "Ausgewählte Datensätze löschen?",
		bSubmit: "Löschen",
		bCancel: "Abbrechen"
	},
	nav : {
		edittext: " ",
		edittitle: "Ausgewählte Zeile editieren",
		addtext:" ",
		addtitle: "Neue Zeile einfügen",
		deltext: " ",
		deltitle: "Ausgewählte Zeile löschen",
		searchtext: " ",
		searchtitle: "Datensatz suchen",
		refreshtext: "",
		refreshtitle: "Tabelle neu laden",
		alertcap: "Warnung",
		alerttext: "Bitte Zeile auswählen",
		viewtext: "",
		viewtitle: "Ausgewählte Zeile anzeigen",
		savetext: "",
		savetitle: "Zeile speihern",
		canceltext: "",
		canceltitle : "Zeile abbrechen",
		selectcaption : "Aktionen..."
	},
	col : {
		caption: "Spalten auswählen",
		bSubmit: "Speichern",
		bCancel: "Abbrechen"	
	},
	errors : {
		errcap : "Fehler",
		nourl : "Keine URL angegeben",
		norecords: "Keine Datensätze zu bearbeiten",
		model : "colNames und colModel sind unterschiedlich lang!"
	},
	formatter : {
		integer : {thousandsSeparator: ".", defaultValue: '0'},
		number : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, defaultValue: '0,00'},
		currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "", suffix:" €", defaultValue: '0,00'},
		date : {
			dayNames:   [
				"So", "Mo", "Di", "Mi", "Do", "Fr", "Sa",
				"Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"
			],
			monthNames: [
				"Jan", "Feb", "Mar", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez",
				"Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"
			],
			AmPm : ["","","",""],
			S: function () {return '.';}, // one can also use 'er' instead of '.' but one have to use additional word like 'der' or 'den' before
			srcformat: 'Y-m-d',
			newformat: 'd.m.Y',
			parseRe : /[#%\\\/:_;.,\t\s-]/,
			masks : {
				// see http://php.net/manual/en/function.date.php for PHP format used in jqGrid
				// and see http://docs.jquery.com/UI/Datepicker/formatDate
				// and https://github.com/jquery/globalize#dates for alternative formats used frequently
				ISO8601Long: "Y-m-d H:i:s",
				ISO8601Short: "Y-m-d",
				// short date:
				//    d - Day of the month, 2 digits with leading zeros
				//    m - Numeric representation of a month, with leading zeros
				//    Y - A full numeric representation of a year, 4 digits
				ShortDate: "d.m.Y",	// in jQuery UI Datepicker: "dd.MM.yyyy"
				// long date:
				//    l - A full textual representation of the day of the week
				//    j - Day of the month without leading zeros
				//    F - A full textual representation of a month
				//    Y - A full numeric representation of a year, 4 digits
				LongDate: "l, j. F Y", // in jQuery UI Datepicker: "dddd, d. MMMM yyyy"
				// long date with long time:
				//    l - A full textual representation of the day of the week
				//    j - Day of the month without leading zeros
				//    F - A full textual representation of a month
				//    Y - A full numeric representation of a year, 4 digits
				//    H - 24-hour format of an hour with leading zeros
				//    i - Minutes with leading zeros
				//    s - Seconds, with leading zeros
				FullDateTime: "l, j. F Y H:i:s", // in jQuery UI Datepicker: "dddd, d. MMMM yyyy HH:mm:ss"
				// month day:
				//    d - Day of the month, 2 digits with leading zeros
				//    F - A full textual representation of a month
				MonthDay: "d F", // in jQuery UI Datepicker: "dd MMMM"
				// short time (without seconds)
				//    H - 24-hour format of an hour with leading zeros
				//    i - Minutes with leading zeros
				ShortTime: "H:i", // in jQuery UI Datepicker: "HH:mm"
				// long time (with seconds)
				//    H - 24-hour format of an hour with leading zeros
				//    i - Minutes with leading zeros
				//    s - Seconds, with leading zeros
				LongTime: "H:i:s", // in jQuery UI Datepicker: "HH:mm:ss"
				SortableDateTime: "Y-m-d\\TH:i:s",
				UniversalSortableDateTime: "Y-m-d H:i:sO",
				// month with year
				//    F - A full textual representation of a month
				//    Y - A full numeric representation of a year, 4 digits
				YearMonth: "F Y" // in jQuery UI Datepicker: "MMMM yyyy"
			},
			reformatAfterEdit : false,
			userLocalTime : false
		},
		baseLinkUrl: '',
		showAction: '',
		target: '',
		checkbox : {disabled:true},
		idName : 'id'
	},
	colmenu : {
		sortasc : "Aufsteigend sortieren",
		sortdesc : "Absteigend sortieren",
		columns : "Spalte",
		filter : "Filter",
		grouping : "Gruppiere nach",
		ungrouping : "Gruppierung aufheben",
		searchTitle : "Erhalten Sie Artikel mit Wert:",
		freeze : "Einfrieren",
		unfreeze : "Freigeben",
		reorder : "Bewegen neu anordnen",
		hovermenu: "Click for column quick actions"
	}
};
}));
js/i18n/grid.locale-sr-latin.js000064400000014157151676727230012237 0ustar00/**
 * jqGrid Serbian latin Translation
 * Bild Studio info@bild-studio.net
 * http://www.bild-studio.com
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
**/
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"../grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {

$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("regional")) {
	$.jgrid.regional = [];
}
$.jgrid.regional["sr-latin"] = {
	defaults : {
		recordtext: "Pregled {0} - {1} od {2}",
		emptyrecords: "Ne postoji nijedan zapis",
		loadtext: "Učitavanje…",
		pgtext : "Strana {0} od {1}",
		savetext: "Saving...",
		pgfirst : "First Page",
		pglast : "Last Page",
		pgnext : "Next Page",
		pgprev : "Previous Page",
		pgrecs : "Records per Page",
		showhide: "Toggle Expand Collapse Grid",
		// mobile
		pagerCaption : "Grid::Page Settings",
		pageText : "Page:",
		recordPage : "Records per Page",
		nomorerecs : "No more records...",
		scrollPullup: "Pull up to load more...",
		scrollPulldown : "Pull down to refresh...",
		scrollRefresh : "Release to refresh...",
		valT : "checked",
		valF : "unchecked",
		selectLine : "Select row",
		selectAllLines : "Select all rows"
	},
	search : {
		caption: "Traženje...",
		Find: "Traži",
		Reset: "Resetuj",
		odata: [{ oper:'eq', text:"jednako"},{ oper:'ne', text:"nije jednako"},{ oper:'lt', text:"manje"},{ oper:'le', text:"manje ili jednako"},{ oper:'gt', text:"veće"},{ oper:'ge', text:"veće ili jednako"},{ oper:'bw', text:"počinje sa"},{ oper:'bn', text:"ne počinje sa"},{ oper:'in', text:"je u"},{ oper:'ni', text:"nije u"},{ oper:'ew', text:"završava sa"},{ oper:'en', text:"ne završava sa"},{ oper:'cn', text:"sadrži"},{ oper:'nc', text:"ne sadrži"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],
		groupOps: [	{ op: "AND", text: "sva" },	{ op: "OR",  text: "bilo koje" }	],
		operandTitle : "Click to select search operation.",
		resetTitle : "Reset Search Value",
		addsubgrup : "Add subgroup",
		addrule : "Add rule",
		delgroup : "Delete group",
		delrule : "Delete rule",
		Close : "Close",
		Operand : "Operand : ",
		Operation : "Oper : ",
		filterFor : "filter for"
	},
	edit : {
		addCaption: "Dodaj zapis",
		editCaption: "Izmeni zapis",
		bSubmit: "Pošalji",
		bCancel: "Odustani",
		bClose: "Zatvori",
		saveData: "Podatak je izmenjen! Sačuvaj izmene?",
		bYes : "Da",
		bNo : "Ne",
		bExit : "Odustani",
		msg: {
			required: "Polje je obavezno",
			number: "Unesite ispravan broj",
			minValue: "vrednost mora biti veća od ili jednaka sa ",
			maxValue: "vrednost mora biti manja ili jednaka sa",
			email: "nije ispravna email adresa, nije valjda da ne umeš ukucati mail!?",
			integer: "Unesi celobrojnu vrednost ",
			date: "Unesite ispravan datum",
			url: "nije ispravan URL. Potreban je prefiks ('http://' or 'https://')",
			nodefined : " nije definisan!",
			novalue : " zahtevana je povratna vrednost!",
			customarray : "Prilagođena funkcija treba da vrati niz!",
			customfcheck : "Prilagođena funkcija treba da bude prisutana u slučaju prilagođene provere!"
			
		}
	},
	view : {
		caption: "Pogledaj zapis",
		bClose: "Zatvori"
	},
	del : {
		caption: "Izbrisi",
		msg: "Izbrisi izabran(e) zapise(e)?",
		bSubmit: "Izbriši",
		bCancel: "Odbaci"
	},
	nav : {
		edittext: "",
		edittitle: "Izmeni izabrani red",
		addtext:"",
		addtitle: "Dodaj novi red",
		deltext: "",
		deltitle: "Izbriši izabran red",
		searchtext: "",
		searchtitle: "Nađi zapise",
		refreshtext: "",
		refreshtitle: "Ponovo učitaj podatke",
		alertcap: "Upozorenje",
		alerttext: "Izaberite red",
		viewtext: "",
		viewtitle: "Pogledaj izabrani red",
		savetext: "",
		savetitle: "Save row",
		canceltext: "",
		canceltitle : "Cancel row editing",
		selectcaption : "Actions..."
	},
	col : {
		caption: "Izaberi kolone",
		bSubmit: "OK",
		bCancel: "Odbaci"
	},
	errors : {
		errcap : "Greška",
		nourl : "Nije postavljen URL",
		norecords: "Nema zapisa za obradu",
		model : "Dužina modela colNames <> colModel!"
	},
	formatter : {
		integer : {thousandsSeparator: " ", defaultValue: '0'},
		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
		date : {
			dayNames:   [
				"Ned", "Pon", "Uto", "Sre", "Čet", "Pet", "Sub",
				"Nedelja", "Ponedeljak", "Utorak", "Srijeda", "Četvrtak", "Petak", "Subota"
			],
			monthNames: [
				"Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Avg", "Sep", "Okt", "Nov", "Dec",
				"Januar", "Februar", "Mart", "April", "Maj", "Jun", "Jul", "Avgust", "Septembar", "Oktobar", "Novembar", "Decembar"
			],
			AmPm : ["am","pm","AM","PM"],
			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
			srcformat: 'Y-m-d',
			newformat: 'd/m/Y',
			parseRe : /[#%\\\/:_;.,\t\s-]/,
			masks : {
				ISO8601Long:"Y-m-d H:i:s",
				ISO8601Short:"Y-m-d",
				ShortDate: "n/j/Y",
				LongDate: "l, F d, Y",
				FullDateTime: "l, F d, Y g:i:s A",
				MonthDay: "F d",
				ShortTime: "g:i A",
				LongTime: "g:i:s A",
				SortableDateTime: "Y-m-d\\TH:i:s",
				UniversalSortableDateTime: "Y-m-d H:i:sO",
				YearMonth: "F, Y"
			},
			reformatAfterEdit : false,
			userLocalTime : false
		},
		baseLinkUrl: '',
		showAction: '',
		target: '',
		checkbox : {disabled:true},
		idName : 'id'
	},
	colmenu : {
		sortasc : "Sort Ascending",
		sortdesc : "Sort Descending",
		columns : "Columns",
		filter : "Filter",
		grouping : "Group By",
		ungrouping : "Ungroup",
		searchTitle : "Get items with value that:",
		freeze : "Freeze",
		unfreeze : "Unfreeze",
		reorder : "Move to reorder",
		hovermenu: "Click for column quick actions"
	}
};
}));
js/i18n/grid.locale-pl.js000064400000014227151676727230011117 0ustar00/**
 * jqGrid Polish Translation
 * Łukasz Schab lukasz@freetree.pl
 * http://FreeTree.pl
 *
 * Updated names, abbreviations, currency and date/time formats for Polish norms (also corresponding with CLDR v21.0.1 --> http://cldr.unicode.org/index) 
 * Tomasz Pęczek tpeczek@gmail.com
 * http://tpeczek.blogspot.com; http://tpeczek.codeplex.com
 *
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
**/
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"../grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {

$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("regional")) {
	$.jgrid.regional = [];
}
$.jgrid.regional["pl"] = {
	defaults : {
		recordtext: "Pokaż {0} - {1} z {2}",
		emptyrecords: "Brak rekordów do pokazania",
		loadtext: "Ładowanie...",
		pgtext : "Strona {0} z {1}",
		savetext: "Saving...",
		pgfirst : "First Page",
		pglast : "Last Page",
		pgnext : "Next Page",
		pgprev : "Previous Page",
		pgrecs : "Records per Page",
		showhide: "Toggle Expand Collapse Grid",
		// mobile
		pagerCaption : "Grid::Page Settings",
		pageText : "Page:",
		recordPage : "Records per Page",
		nomorerecs : "No more records...",
		scrollPullup: "Pull up to load more...",
		scrollPulldown : "Pull down to refresh...",
		scrollRefresh : "Release to refresh...",
		valT : "checked",
		valF : "unchecked",
		selectLine : "Select row",
		selectAllLines : "Select all rows"
	},
	search : {
		caption: "Wyszukiwanie...",
		Find: "Szukaj",
		Reset: "Czyść",
		odata: [{ oper:'eq', text:"dokładnie"},{ oper:'ne', text:"różne od"},{ oper:'lt', text:"mniejsze od"},{ oper:'le', text:"mniejsze lub równe"},{ oper:'gt', text:"większe od"},{ oper:'ge', text:"większe lub równe"},{ oper:'bw', text:"zaczyna się od"},{ oper:'bn', text:"nie zaczyna się od"},{ oper:'in', text:"jest w"},{ oper:'ni', text:"nie jest w"},{ oper:'ew', text:"kończy się na"},{ oper:'en', text:"nie kończy się na"},{ oper:'cn', text:"zawiera"},{ oper:'nc', text:"nie zawiera"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],
		groupOps: [	{ op: "AND", text: "oraz" },	{ op: "OR",  text: "lub" }	],
		operandTitle : "Click to select search operation.",
		resetTitle : "Reset Search Value",
		addsubgrup : "Add subgroup",
		addrule : "Add rule",
		delgroup : "Delete group",
		delrule : "Delete rule",
		Close : "Close",
		Operand : "Operand : ",
		Operation : "Oper : ",
		filterFor : "filter for"
	},
	edit : {
		addCaption: "Dodaj rekord",
		editCaption: "Edytuj rekord",
		bSubmit: "Zapisz",
		bCancel: "Anuluj",
		bClose: "Zamknij",
		saveData: "Dane zostały zmienione! Zapisać zmiany?",
		bYes: "Tak",
		bNo: "Nie",
		bExit: "Anuluj",
		msg: {
			required: "Pole jest wymagane",
			number: "Proszę wpisać poprawną liczbę",
			minValue: "wartość musi być większa lub równa od",
			maxValue: "wartość musi być mniejsza lub równa od",
			email: "nie jest poprawnym adresem e-mail",
			integer: "Proszę wpisać poprawną liczbę",
			date: "Proszę podaj poprawną datę",
			url: "jest niewłaściwym adresem URL. Pamiętaj o prefiksie ('http://' lub 'https://')",
			nodefined: " niezdefiniowane!",
			novalue: " wymagana jest wartość zwracana!",
			customarray: "Funkcja niestandardowa powinna zwracać tablicę!",
			customfcheck: "Funkcja niestandardowa powinna być obecna w przypadku niestandardowego sprawdzania!"
		}
	},
	view : {
		caption: "Pokaż rekord",
		bClose: "Zamknij"
	},
	del : {
		caption: "Usuń",
		msg: "Czy usunąć wybrany rekord(y)?",
		bSubmit: "Usuń",
		bCancel: "Anuluj"
	},
	nav : {
		edittext: "",
		edittitle: "Edytuj wybrany wiersz",
		addtext: "",
		addtitle: "Dodaj nowy wiersz",
		deltext: "",
		deltitle: "Usuń wybrany wiersz",
		searchtext: "",
		searchtitle: "Wyszukaj rekord",
		refreshtext: "",
		refreshtitle: "Przeładuj",
		alertcap: "Uwaga",
		alerttext: "Proszę wybrać wiersz",
		viewtext: "",
		viewtitle: "Pokaż wybrany wiersz",
		savetext: "",
		savetitle: "Save row",
		canceltext: "",
		canceltitle : "Cancel row editing",
		selectcaption : "Actions..."
	},
	col : {
		caption: "Pokaż/Ukryj kolumny",
		bSubmit: "Zatwierdź",
		bCancel: "Anuluj"
	},
	errors : {
		errcap: "Błąd",
		nourl: "Brak adresu url",
		norecords: "Brak danych",
		model : "Długość colNames <> colModel!"
	},
	formatter : {
		integer : {thousandsSeparator: " ", defaultValue: '0'},
		number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'},
		currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:" zł", defaultValue: '0,00'},
		date : {
			dayNames:   [
				"niedz.", "pon.", "wt.", "śr.", "czw.", "pt.", "sob.",
				"niedziela", "poniedziałek", "wtorek", "środa", "czwartek", "piątek", "sobota"
			],
			monthNames: [
				"sty", "lut", "mar", "kwi", "maj", "cze", "lip", "sie", "wrz", "paź", "lis", "gru",
				"styczeń", "luty", "marzec", "kwiecień", "maj", "czerwiec", "lipiec", "sierpień", "wrzesień", "październik", "listopad", "grudzień"
				],
			AmPm : ["","","",""],
			S: function (j) {return '';},
			srcformat: 'Y-m-d',
			newformat: 'd.m.Y',
			parseRe : /[#%\\\/:_;.,\t\s-]/,
			masks : {
				ISO8601Long: "Y-m-d H:i:s",
				ISO8601Short: "Y-m-d",
				ShortDate: "d.m.y",
				LongDate: "l, j F Y",
				FullDateTime: "l, j F Y H:i:s",
				MonthDay: "j F",
				ShortTime: "H:i",
				LongTime: "H:i:s",
				SortableDateTime: "Y-m-d\\TH:i:s",
				UniversalSortableDateTime: "Y-m-d H:i:sO",
				YearMonth: "F Y"
			},
			reformatAfterEdit : false,
			userLocalTime : false
		},
		baseLinkUrl: '',
		showAction: '',
		target: '',
		checkbox : {disabled:true},
		idName : 'id'
	},
	colmenu : {
		sortasc : "Sort Ascending",
		sortdesc : "Sort Descending",
		columns : "Columns",
		filter : "Filter",
		grouping : "Group By",
		ungrouping : "Ungroup",
		searchTitle : "Get items with value that:",
		freeze : "Freeze",
		unfreeze : "Unfreeze",
		reorder : "Move to reorder",
		hovermenu: "Click for column quick actions"
	}
};
}));js/i18n/grid.locale-sq.js000064400000020613151676727230011123 0ustar00/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"../grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {

$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("regional")) {
	$.jgrid.regional = [];
}
$.jgrid.regional["sq"] = {
	defaults : {
		recordtext: "Shfaq {0} - {1}/{2}",
		emptyrecords: "Nuk ka rreshta për të shfaqur",
		loadtext: "Duke u ngarkuar...",
		savetext: "Duke ruajtur...",
		pgtext : "Faqja {0}/{1}",
		pgfirst : "Faqja e parë",
		pglast : "Faqja e fundit",
		pgnext : "Faqja tjetër",
		pgprev : "Faqja mëparshme",
		pgrecs : "Rreshta për faqe",
		showhide: "Shpalos ose mbyll tabelën",
		// mobile
		pagerCaption : "Tabela::Kruskoti i faqes",
		pageText : "Faqja:",
		recordPage : "Rreshta për faqe",
		nomorerecs : "Nuk ka rreshta të tjerë...",
		scrollPullup: "Tërhiq për lart për të tjerë...",
		scrollPulldown : "Tërqiq për poshtë për rifreskim...",
		scrollRefresh : "Lësho për rifreskim...",
		valT : "checked",
		valF : "unchecked",
		selectLine : "Select row",
		selectAllLines : "Select all rows"
	},
	search : {
		caption: "Kërko...",
		Find: "Gjej",
		Reset: "Pastro",
		odata: [{ oper:'eq', text:'baraz'},{ oper:'ne', text:'jo baraz'},{ oper:'lt', text:'me e vogel'},{ oper:'le', text:'me e vogel ose baraz'},{ oper:'gt', text:'me e madhe'},{ oper:'ge', text:'me e madhe ose baraz'},{ oper:'bw', text:'fillon me'},{ oper:'bn', text:'nuk fillon me'},{ oper:'in', text:'brenda'},{ oper:'ni', text:'jo brenda'},{ oper:'ew', text:'mbaron me'},{ oper:'en', text:'nuk mbaron me'},{ oper:'cn', text:'permban'},{ oper:'nc', text:'nuk permban'},{ oper:'nu', text:'eshte bosh'},{ oper:'nn', text:'nuk eshte bosh'}, {oper:'bt', text:'between'}],
		groupOps: [{ op: "AND", text: "te gjithe" },{ op: "OR",  text: "cfaredo" }],
		operandTitle : "Kliko per te zgjedhur veprimin.",
		resetTitle : "Fshi vlerat e kerkimit",
		addsubgrup : "Add subgroup",
		addrule : "Add rule",
		delgroup : "Delete group",
		delrule : "Delete rule",
		Close : "Close",
		Operand : "Operand : ",
		Operation : "Oper : ",
		filterFor : "filter for"
	},
	edit : {
		addCaption: "Shto rresht",
		editCaption: "Fshi rresht",
		bSubmit: "Vendos",
		bCancel: "Anullo",
		bClose: "Mbyll",
		saveData: "Te dhenat jane ndryshuar! Deshironi ti ruani ndryshimet?",
		bYes : "Po",
		bNo : "Jo",
		bExit : "Anullo",
		msg: {
			required:"Kjo fushe eshte e detyrueshme",
			number:"Ju lutem, vendosni nje numer te vlefshem",
			minValue:"vlera duhet te jete me e madhe ose e njejte me ",
			maxValue:"vlera duhet te jete me e vogel ose e njejte me",
			email: "nuk eshte adrese poste elektronike e vlefshme",
			integer: "Ju lutem, vendosni nje numer te plote te vlefshem",
			date: "Ju lutem, vendosni nje date te vlefshme",
			url: "nuk eshte URL e vlefshme. Nevojitet prefiksi ('http://' ose 'https://')",
			nodefined : " nuk eshte percaktuar!",
			novalue : " vlera si pergjigje eshte e detyreshme!",
			customarray : "Funksioni i personalizuar duhet te ktheje nje array!",
			customfcheck : "unksioni i personalizuar duhet te egzistoje ne rast kontrolli te personalizuar!"
			
		}
	},
	view : {
		caption: "Shfaq Rreshtin",
		bClose: "Mbyll"
	},
	del : {
		caption: "Fshi",
		msg: "Deshironi te fshini rreshtin/rreshtat e zgjedhur?",
		bSubmit: "Fshi",
		bCancel: "Anullo"
	},
	nav : {
		edittext: "",
		edittitle: "Modifiko rreshtin e zgjedhur",
		addtext:"",
		addtitle: "Shto rresht te ri",
		deltext: "",
		deltitle: "Fshi rreshtin e zgjedhur",
		searchtext: "",
		searchtitle: "Gjej rreshtat",
		refreshtext: "",
		refreshtitle: "Ringarko listen",
		alertcap: "Paralajmerim",
		alerttext: "Ju lutem, zgjidh nje rresht",
		viewtext: "",
		viewtitle: "Shfaq rreshtin e zgjedhur",
		savetext: "",
		savetitle: "Ruaj rreshtin",
		canceltext: "",
		canceltitle : "Anullo modifikim rreshti",
		selectcaption : "Veprime..."
	},
	col : {
		caption: "Zgjidh kolona",
		bSubmit: "Ok",
		bCancel: "Anullo"
	},
	errors : {
		errcap : "Gabim",
		nourl : "Nuk eshte percaktuar asnje URL",
		norecords: "Nuk ka rreshta per perpunim",
		model : "Gjatesia e emrit te kolones <> modeli i kolones!"
	},
	formatter : {
		integer : {thousandsSeparator: ",", defaultValue: '0'},
		number : {decimalSeparator:".", thousandsSeparator: ",", decimalPlaces: 2, defaultValue: '0.00'},
		currency : {decimalSeparator:".", thousandsSeparator: ",", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
		date : {
			dayNames:   [
				"Dje", "Hën", "Mar", "Mër", "Enj", "Pre", "Sht",
				"Djelë", "Hënë", "Martë", "Mërkurë", "Enjte", "Premte", "Shtunë"
			],
			monthNames: [
				"Jan", "Shk", "Mar", "Pri", "Maj", "Qer", "Kor", "Gus", "Sht", "Tet", "Nën", "Dhj",
				"Janar", "Shkurt", "Mars", "Prill", "Maj", "Qershor", "Korrik", "Gusht", "Shtator", "Tetor", "Nëntor", "Dhjetor"
			],
			AmPm : ["am","pm","AM","PM"],
			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th';},
			srcformat: 'Y-m-d',
			newformat: 'n/j/Y',
			parseRe : /[#%\\\/:_;.,\t\s-]/,
			masks : {
				// see http://php.net/manual/en/function.date.php for PHP format used in jqGrid
				// and see http://docs.jquery.com/UI/Datepicker/formatDate
				// and https://github.com/jquery/globalize#dates for alternative formats used frequently
				// one can find on https://github.com/jquery/globalize/tree/master/lib/cultures many
				// information about date, time, numbers and currency formats used in different countries
				// one should just convert the information in PHP format
				ISO8601Long:"Y-m-d H:i:s",
				ISO8601Short:"Y-m-d",
				// short date:
				//    n - Numeric representation of a month, without leading zeros
				//    j - Day of the month without leading zeros
				//    Y - A full numeric representation of a year, 4 digits
				// example: 3/1/2012 which means 1 March 2012
				ShortDate: "n/j/Y", // in jQuery UI Datepicker: "M/d/yyyy"
				// long date:
				//    l - A full textual representation of the day of the week
				//    F - A full textual representation of a month
				//    d - Day of the month, 2 digits with leading zeros
				//    Y - A full numeric representation of a year, 4 digits
				LongDate: "l, F d, Y", // in jQuery UI Datepicker: "dddd, MMMM dd, yyyy"
				// long date with long time:
				//    l - A full textual representation of the day of the week
				//    F - A full textual representation of a month
				//    d - Day of the month, 2 digits with leading zeros
				//    Y - A full numeric representation of a year, 4 digits
				//    g - 12-hour format of an hour without leading zeros
				//    i - Minutes with leading zeros
				//    s - Seconds, with leading zeros
				//    A - Uppercase Ante meridiem and Post meridiem (AM or PM)
				FullDateTime: "l, F d, Y g:i:s A", // in jQuery UI Datepicker: "dddd, MMMM dd, yyyy h:mm:ss tt"
				// month day:
				//    F - A full textual representation of a month
				//    d - Day of the month, 2 digits with leading zeros
				MonthDay: "F d", // in jQuery UI Datepicker: "MMMM dd"
				// short time (without seconds)
				//    g - 12-hour format of an hour without leading zeros
				//    i - Minutes with leading zeros
				//    A - Uppercase Ante meridiem and Post meridiem (AM or PM)
				ShortTime: "g:i A", // in jQuery UI Datepicker: "h:mm tt"
				// long time (with seconds)
				//    g - 12-hour format of an hour without leading zeros
				//    i - Minutes with leading zeros
				//    s - Seconds, with leading zeros
				//    A - Uppercase Ante meridiem and Post meridiem (AM or PM)
				LongTime: "g:i:s A", // in jQuery UI Datepicker: "h:mm:ss tt"
				SortableDateTime: "Y-m-d\\TH:i:s",
				UniversalSortableDateTime: "Y-m-d H:i:sO",
				// month with year
				//    Y - A full numeric representation of a year, 4 digits
				//    F - A full textual representation of a month
				YearMonth: "F, Y" // in jQuery UI Datepicker: "MMMM, yyyy"
			},
			reformatAfterEdit : false,
			userLocalTime : false
		},
		baseLinkUrl: '',
		showAction: '',
		target: '',
		checkbox : {disabled:true},
		idName : 'id'
	},
	colmenu : {
		sortasc : "Sort Ascending",
		sortdesc : "Sort Descending",
		columns : "Columns",
		filter : "Filter",
		grouping : "Group By",
		ungrouping : "Ungroup",
		searchTitle : "Get items with value that:",
		freeze : "Freeze",
		unfreeze : "Unfreeze",
		reorder : "Move to reorder",
		hovermenu: "Click for column quick actions"
	}
};
}));
js/i18n/grid.locale-ja.js000064400000022304151676727230011071 0ustar00/**
 * jqGrid Japanese Translation
 * OKADA Yoshitada okada.dev@sth.jp
 * http://trirand.com/blog/ 
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
**/
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"../grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {

$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("regional")) {
	$.jgrid.regional = [];
}
$.jgrid.regional["ja"] = {
	defaults : {
		recordtext: "{2} \u4EF6\u4E2D {0} - {1} \u3092\u8868\u793A ",
	    emptyrecords: "\u8868\u793A\u3059\u308B\u30EC\u30B3\u30FC\u30C9\u304C\u3042\u308A\u307E\u305B\u3093",
		loadtext: "\u8aad\u307f\u8fbc\u307f\u4e2d...",
		pgtext : "{1} \u30DA\u30FC\u30B8\u4E2D {0} \u30DA\u30FC\u30B8\u76EE ",
		savetext: "\u4fdd\u5b58\u4e2d...",
		pgfirst : "\u6700\u521d\u306e\u30da\u30fc\u30b8\u3078",
		pglast : "\u6700\u5f8c\u306e\u30da\u30fc\u30b8\u3078",
		pgnext : "\u6b21\u306e\u30da\u30fc\u30b8",
		pgprev : "\u524d\u306e\u30da\u30fc\u30b8",
		pgrecs : "\u30da\u30fc\u30b8\u5358\u4f4d\u306e\u30ec\u30b3\u30fc\u30c9\u6570",
		showhide: "\u30b0\u30ea\u30c3\u30c9\u306e\u5c55\u958b/\u9589\u3058\u8fbc\u307f",
		// mobile
		pagerCaption : "\u30b0\u30ea\u30c3\u30c9::\u30da\u30fc\u30b8\u8a2d\u5b9a",
		pageText : "\u30da\u30fc\u30b8:",
		recordPage : "\u30da\u30fc\u30b8\u5358\u4f4d\u306e\u30ec\u30b3\u30fc\u30c9\u6570",
		nomorerecs : "\u30ec\u30b3\u30fc\u30c9\u304c\u3042\u308a\u307e\u305b\u3093...",
		scrollPullup: "\u4e0a\u306b\u30b9\u30af\u30ed\u30fc\u30eb\u3057\u3066\u8aad\u307f\u8fbc\u307f...",
		scrollPulldown : "\u4e0b\u306b\u30b9\u30af\u30ed\u30fc\u30eb\u3057\u3066\u66f4\u65b0...",
		scrollRefresh : "\u653e\u3057\u3066\u66f4\u65b0...",
		valT : "checked",
		valF : "unchecked",
		selectLine : "Select row",
		selectAllLines : "Select all rows"
	},
	search : {
	    caption: "\u691c\u7d22...",
	    Find: "\u691c\u7d22",
	    Reset: "\u30ea\u30bb\u30c3\u30c8",
	    odata: [{ oper:'eq', text:"\u6B21\u306B\u7B49\u3057\u3044"}, { oper:'ne', text:"\u6B21\u306B\u7B49\u3057\u304F\u306A\u3044"},
            { oper:'lt', text:"\u6B21\u3088\u308A\u5C0F\u3055\u3044"}, { oper:'le', text:"\u6B21\u306B\u7B49\u3057\u3044\u304B\u5C0F\u3055\u3044"},
            { oper:'gt', text:"\u6B21\u3088\u308A\u5927\u304D\u3044"}, { oper:'ge', text:"\u6B21\u306B\u7B49\u3057\u3044\u304B\u5927\u304D\u3044"},
            { oper:'bw', text:"\u6B21\u3067\u59CB\u307E\u308B"}, { oper:'bn', text:"\u6B21\u3067\u59CB\u307E\u3089\u306A\u3044"},
            { oper:'in', text:"\u6B21\u306B\u542B\u307E\u308C\u308B"}, { oper:'ni', text:"\u6B21\u306B\u542B\u307E\u308C\u306A\u3044"},
            { oper:'ew', text:"\u6B21\u3067\u7D42\u308F\u308B"}, { oper:'en', text:"\u6B21\u3067\u7D42\u308F\u3089\u306A\u3044"},
            { oper:'cn', text:"\u6B21\u3092\u542B\u3080"}, { oper:'nc', text:"\u6B21\u3092\u542B\u307E\u306A\u3044"},
			{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],
	    groupOps: [{
                op: "AND",
                text: "\u3059\u3079\u3066\u306E"
            },
            {
                op: "OR",
                text: "\u3044\u305A\u308C\u304B\u306E"
            }],
		operandTitle : "\u30af\u30ea\u30c3\u30af\u3057\u3066\u691c\u7d22\u64cd\u4f5c\u3092\u9078\u629e",
		resetTitle : "\u691c\u7d22\u5024\u3092\u30ea\u30bb\u30c3\u30c8",
		addsubgrup : "Add subgroup",
		addrule : "Add rule",
		delgroup : "Delete group",
		delrule : "Delete rule",
		Close : "Close",
		Operand : "Operand : ",
		Operation : "Oper : ",
		filterFor : "filter for"
	},
	edit : {
	    addCaption: "\u30ec\u30b3\u30fc\u30c9\u8ffd\u52a0",
	    editCaption: "\u30ec\u30b3\u30fc\u30c9\u7de8\u96c6",
	    bSubmit: "\u9001\u4fe1",
	    bCancel: "\u30ad\u30e3\u30f3\u30bb\u30eb",
  		bClose: "\u9589\u3058\u308b",
      saveData: "\u30C7\u30FC\u30BF\u304C\u5909\u66F4\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u4FDD\u5B58\u3057\u307E\u3059\u304B\uFF1F",
      bYes: "\u306F\u3044",
      bNo: "\u3044\u3044\u3048",
      bExit: "\u30AD\u30E3\u30F3\u30BB\u30EB",
	    msg: {
	        required:"\u3053\u306e\u9805\u76ee\u306f\u5fc5\u9808\u3067\u3059\u3002",
	        number:"\u6b63\u3057\u3044\u6570\u5024\u3092\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002",
	        minValue:"\u6b21\u306e\u5024\u4ee5\u4e0a\u3067\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002",
	        maxValue:"\u6b21\u306e\u5024\u4ee5\u4e0b\u3067\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002",
	        email: "e-mail\u304c\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093\u3002",
	        integer: "\u6b63\u3057\u3044\u6574\u6570\u5024\u3092\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002",
    			date: "\u6b63\u3057\u3044\u5024\u3092\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002",
          url: "\u306F\u6709\u52B9\u306AURL\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u30D7\u30EC\u30D5\u30A3\u30C3\u30AF\u30B9\u304C\u5FC5\u8981\u3067\u3059\u3002 ('http://' \u307E\u305F\u306F 'https://')",
          nodefined: " \u304C\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u307E\u305B\u3093",
          novalue: " \u623B\u308A\u5024\u304C\u5FC5\u8981\u3067\u3059",
          customarray: "\u30AB\u30B9\u30BF\u30E0\u95A2\u6570\u306F\u914D\u5217\u3092\u8FD4\u3059\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059",
          customfcheck: "\u30AB\u30B9\u30BF\u30E0\u691C\u8A3C\u306B\u306F\u30AB\u30B9\u30BF\u30E0\u95A2\u6570\u304C\u5FC5\u8981\u3067\u3059"
		}
	},
	view : {
      caption: "\u30EC\u30B3\u30FC\u30C9\u3092\u8868\u793A",
      bClose: "\u9589\u3058\u308B"
	},
	del : {
	    caption: "\u524a\u9664",
	    msg: "\u9078\u629e\u3057\u305f\u30ec\u30b3\u30fc\u30c9\u3092\u524a\u9664\u3057\u307e\u3059\u304b\uff1f",
	    bSubmit: "\u524a\u9664",
	    bCancel: "\u30ad\u30e3\u30f3\u30bb\u30eb"
	},
	nav : {
    	edittext: " ",
	    edittitle: "\u9078\u629e\u3057\u305f\u884c\u3092\u7de8\u96c6",
      addtext:" ",
	    addtitle: "\u884c\u3092\u65b0\u898f\u8ffd\u52a0",
	    deltext: " ",
	    deltitle: "\u9078\u629e\u3057\u305f\u884c\u3092\u524a\u9664",
	    searchtext: " ",
	    searchtitle: "\u30ec\u30b3\u30fc\u30c9\u691c\u7d22",
	    refreshtext: "",
	    refreshtitle: "\u30b0\u30ea\u30c3\u30c9\u3092\u30ea\u30ed\u30fc\u30c9",
	    alertcap: "\u8b66\u544a",
	    alerttext: "\u884c\u3092\u9078\u629e\u3057\u3066\u4e0b\u3055\u3044\u3002",
      viewtext: "",
      viewtitle: "\u9078\u629E\u3057\u305F\u884C\u3092\u8868\u793A",
		savetext: "",
		savetitle: "\u5217\u3092\u4fdd\u5b58",
		canceltext: "",
		canceltitle : "\u5217\u306e\u7de8\u96c6\u3092\u30ad\u30e3\u30f3\u30bb\u30eb",
		selectcaption : "\u30a2\u30af\u30b7\u30e7\u30f3..."
	},
	col : {
	    caption: "\u5217\u3092\u8868\u793a\uff0f\u96a0\u3059",
	    bSubmit: "\u9001\u4fe1",
	    bCancel: "\u30ad\u30e3\u30f3\u30bb\u30eb"	
	},
	errors : {
		errcap : "\u30a8\u30e9\u30fc",
		nourl : "URL\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002",
		norecords: "\u51e6\u7406\u5bfe\u8c61\u306e\u30ec\u30b3\u30fc\u30c9\u304c\u3042\u308a\u307e\u305b\u3093\u3002",
	    model : "colNames\u306e\u9577\u3055\u304ccolModel\u3068\u4e00\u81f4\u3057\u307e\u305b\u3093\u3002"
	},
	formatter : {
            integer: {
                thousandsSeparator: ",",
                defaultValue: '0'
            },
            number: {
                decimalSeparator: ".",
                thousandsSeparator: ",",
                decimalPlaces: 2,
                defaultValue: '0.00'
            },
            currency: {
                decimalSeparator: ".",
                thousandsSeparator: ",",
                decimalPlaces: 0,
                prefix: "",
                suffix: "",
                defaultValue: '0'
            },
		date : {
			dayNames:   [
				"\u65e5", "\u6708", "\u706b", "\u6c34", "\u6728", "\u91d1", "\u571f",
				"\u65e5", "\u6708", "\u706b", "\u6c34", "\u6728", "\u91d1", "\u571f"
			],
			monthNames: [
				"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12",
				"1\u6708", "2\u6708", "3\u6708", "4\u6708", "5\u6708", "6\u6708", "7\u6708", "8\u6708", "9\u6708", "10\u6708", "11\u6708", "12\u6708"
			],
			AmPm : ["am","pm","AM","PM"],
			S: function (j) { return "\u756a\u76ee"; },
			srcformat: 'Y-m-d',
			newformat: 'd/m/Y',
			parseRe : /[#%\\\/:_;.,\t\s-]/,
			masks : {
	            ISO8601Long:"Y-m-d H:i:s",
	            ISO8601Short:"Y-m-d",
	            ShortDate: "n/j/Y",
	            LongDate: "l, F d, Y",
	            FullDateTime: "l, F d, Y g:i:s A",
	            MonthDay: "F d",
	            ShortTime: "g:i A",
	            LongTime: "g:i:s A",
	            SortableDateTime: "Y-m-d\\TH:i:s",
	            UniversalSortableDateTime: "Y-m-d H:i:sO",
	            YearMonth: "F, Y"
	        },
	        reformatAfterEdit : false,
			userLocalTime : false
		},
		baseLinkUrl: '',
		showAction: '',
	    target: '',
	    checkbox : {disabled:true},
		idName : 'id'
	},
	colmenu : {
		sortasc : "Sort Ascending",
		sortdesc : "Sort Descending",
		columns : "Columns",
		filter : "Filter",
		grouping : "Group By",
		ungrouping : "Ungroup",
		searchTitle : "Get items with value that:",
		freeze : "Freeze",
		unfreeze : "Unfreeze",
		reorder : "Move to reorder",
		hovermenu: "Click for column quick actions"
	}
};
}));
js/i18n/grid.locale-id.js000064400000021141151676727230011071 0ustar00/**
 * jqGrid Indonesian Translation
 * Tony Tomov tony@trirand.com
 * http://trirand.com/blog/ 
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
**/
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"../grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {

$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("regional")) {
	$.jgrid.regional = [];
}
$.jgrid.regional["id"] = {
	defaults : {
		recordtext: "Data {0} - {1} dari {2}",
		emptyrecords: "Tidak ada data",
		loadtext: "Memuat...",
		pgtext : "Halaman {0} dari {1}",
		savetext: "Saving...",
		pgfirst : "First Page",
		pglast : "Last Page",
		pgnext : "Next Page",
		pgprev : "Previous Page",
		pgrecs : "Records per Page",
		showhide: "Toggle Expand Collapse Grid",
		// mobile
		pagerCaption : "Grid::Page Settings",
		pageText : "Page:",
		recordPage : "Records per Page",
		nomorerecs : "No more records...",
		scrollPullup: "Pull up to load more...",
		scrollPulldown : "Pull down to refresh...",
		scrollRefresh : "Release to refresh...",
		valT : "checked",
		valF : "unchecked",
		selectLine : "Select row",
		selectAllLines : "Select all rows"
	},
	search : {
		caption: "Pencarian",
		Find: "Cari !",
		Reset: "Segarkan",
		odata: [{ oper:'eq', text:"sama dengan"},{ oper:'ne', text:"tidak sama dengan"},{ oper:'lt', text:"kurang dari"},{ oper:'le', text:"kurang dari atau sama dengan"},{ oper:'gt', text:"lebih besar"},{ oper:'ge', text:"lebih besar atau sama dengan"},{ oper:'bw', text:"dimulai dengan"},{ oper:'bn', text:"tidak dimulai dengan"},{ oper:'in', text:"di dalam"},{ oper:'ni', text:"tidak di dalam"},{ oper:'ew', text:"diakhiri dengan"},{ oper:'en', text:"tidak diakhiri dengan"},{ oper:'cn', text:"mengandung"},{ oper:'nc', text:"tidak mengandung"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],
		groupOps: [	{ op: "AND", text: "all" },	{ op: "OR",  text: "any" }	],
		operandTitle : "Click to select search operation.",
		resetTitle : "Reset Search Value",
		addsubgrup : "Add subgroup",
		addrule : "Add rule",
		delgroup : "Delete group",
		delrule : "Delete rule",
		Close : "Close",
		Operand : "Operand : ",
		Operation : "Oper : ",
		filterFor : "filter for"
	},
	edit : {
		addCaption: "Tambah Data",
		editCaption: "Sunting Data",
		bSubmit: "Submit",
		bCancel: "Tutup",
		bClose: "Tutup",
		saveData: "Data telah berubah! Simpan perubahan?",
		bYes : "Ya",
		bNo : "Tidak",
		bExit : "Tutup",
		msg: {
			required:"kolom wajib diisi",
			number:"hanya nomer yang diperbolehkan",
			minValue:"kolom harus lebih besar dari atau sama dengan",
			maxValue:"kolom harus lebih kecil atau sama dengan",
			email: "alamat e-mail tidak valid",
			integer: "hanya nilai integer yang diperbolehkan",
			date: "nilai tanggal tidak valid",
			url: "Bukan URL yang valid. Harap gunakan ('http://' or 'https://')",
			nodefined : " belum didefinisikan!",
			novalue : " return value is required!",
			customarray : "Custom function should return array!",
			customfcheck : "Custom function should be present in case of custom checking!"
			
		}
	},
	view : {
		caption: "Menampilkan data",
		bClose: "Tutup"
	},
	del : {
		caption: "Hapus",
		msg: "Hapus data terpilih?",
		bSubmit: "Hapus",
		bCancel: "Batalkan"
	},
	nav : {
		edittext: "",
		edittitle: "Sunting data terpilih",
		addtext:"",
		addtitle: "Tambah baris baru",
		deltext: "",
		deltitle: "Hapus baris terpilih",
		searchtext: "",
		searchtitle: "Temukan data",
		refreshtext: "",
		refreshtitle: "Segarkan Grid",
		alertcap: "Warning",
		alerttext: "Harap pilih baris",
		viewtext: "",
		viewtitle: "Tampilkan baris terpilih",
		savetext: "",
		savetitle: "Save row",
		canceltext: "",
		canceltitle : "Cancel row editing",
		selectcaption : "Actions..."
	},
	col : {
		caption: "Pilih Kolom",
		bSubmit: "Ok",
		bCancel: "Batal"
	},
	errors : {
		errcap : "Error",
		nourl : "Tidak ada url yang diset",
		norecords: "Tidak ada data untuk diproses",
		model : "Lebar dari colNames <> colModel!"
	},
	formatter : {
		integer : {thousandsSeparator: ".", defaultValue: '0'},
		number : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, defaultValue: '0'},
		currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "Rp. ", suffix:"", defaultValue: '0'},
		date : {
			dayNames:   [
				"Ming", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab",
				"Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"
			],
			monthNames: [
				"Jan", "Feb", "Mar", "Apr", "Mei", "Jun", "Jul", "Agu", "Sep", "Okt", "Nov", "Des",
				"Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"
			],
			AmPm : ["am","pm","AM","PM"],
			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th';},
			srcformat: 'Y-m-d',
			newformat: 'n/j/Y',
			parseRe : /[#%\\\/:_;.,\t\s-]/,
			masks : {
				// see http://php.net/manual/en/function.date.php for PHP format used in jqGrid
				// and see http://docs.jquery.com/UI/Datepicker/formatDate
				// and https://github.com/jquery/globalize#dates for alternative formats used frequently
				// one can find on https://github.com/jquery/globalize/tree/master/lib/cultures many
				// information about date, time, numbers and currency formats used in different countries
				// one should just convert the information in PHP format
				ISO8601Long:"Y-m-d H:i:s",
				ISO8601Short:"Y-m-d",
				// short date:
				//    n - Numeric representation of a month, without leading zeros
				//    j - Day of the month without leading zeros
				//    Y - A full numeric representation of a year, 4 digits
				// example: 3/1/2012 which means 1 March 2012
				ShortDate: "n/j/Y", // in jQuery UI Datepicker: "M/d/yyyy"
				// long date:
				//    l - A full textual representation of the day of the week
				//    F - A full textual representation of a month
				//    d - Day of the month, 2 digits with leading zeros
				//    Y - A full numeric representation of a year, 4 digits
				LongDate: "l, F d, Y", // in jQuery UI Datepicker: "dddd, MMMM dd, yyyy"
				// long date with long time:
				//    l - A full textual representation of the day of the week
				//    F - A full textual representation of a month
				//    d - Day of the month, 2 digits with leading zeros
				//    Y - A full numeric representation of a year, 4 digits
				//    g - 12-hour format of an hour without leading zeros
				//    i - Minutes with leading zeros
				//    s - Seconds, with leading zeros
				//    A - Uppercase Ante meridiem and Post meridiem (AM or PM)
				FullDateTime: "l, F d, Y g:i:s A", // in jQuery UI Datepicker: "dddd, MMMM dd, yyyy h:mm:ss tt"
				// month day:
				//    F - A full textual representation of a month
				//    d - Day of the month, 2 digits with leading zeros
				MonthDay: "F d", // in jQuery UI Datepicker: "MMMM dd"
				// short time (without seconds)
				//    g - 12-hour format of an hour without leading zeros
				//    i - Minutes with leading zeros
				//    A - Uppercase Ante meridiem and Post meridiem (AM or PM)
				ShortTime: "g:i A", // in jQuery UI Datepicker: "h:mm tt"
				// long time (with seconds)
				//    g - 12-hour format of an hour without leading zeros
				//    i - Minutes with leading zeros
				//    s - Seconds, with leading zeros
				//    A - Uppercase Ante meridiem and Post meridiem (AM or PM)
				LongTime: "g:i:s A", // in jQuery UI Datepicker: "h:mm:ss tt"
				SortableDateTime: "Y-m-d\\TH:i:s",
				UniversalSortableDateTime: "Y-m-d H:i:sO",
				// month with year
				//    Y - A full numeric representation of a year, 4 digits
				//    F - A full textual representation of a month
				YearMonth: "F, Y" // in jQuery UI Datepicker: "MMMM, yyyy"
			},
			reformatAfterEdit : false,
			userLocalTime : false
		},
		baseLinkUrl: '',
		showAction: '',
		target: '',
		checkbox : {disabled:true},
		idName : 'id'
	},
	colmenu : {
		sortasc : "Sort Ascending",
		sortdesc : "Sort Descending",
		columns : "Columns",
		filter : "Filter",
		grouping : "Group By",
		ungrouping : "Ungroup",
		searchTitle : "Get items with value that:",
		freeze : "Freeze",
		unfreeze : "Unfreeze",
		reorder : "Move to reorder",
		hovermenu: "Click for column quick actions"
	}
};
}));
js/i18n/grid.locale-pt.js000064400000014173151676727230011127 0ustar00/**
 * jqGrid Portuguese Translation
 * Traduçã da jqGrid em Portugues por Frederico Carvalho, http://www.eyeviewdesign.pt
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
**/
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"../grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {

$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("regional")) {
	$.jgrid.regional = [];
}
$.jgrid.regional["pt"] = {
	defaults : {
		recordtext: "View {0} - {1} of {2}",
	    emptyrecords: "No records to view",
		loadtext: "A carregar...",
		pgtext : "Página {0} de {1}",
		savetext: "Saving...",
		pgfirst : "First Page",
		pglast : "Last Page",
		pgnext : "Next Page",
		pgprev : "Previous Page",
		pgrecs : "Records per Page",
		showhide: "Toggle Expand Collapse Grid",
		// mobile
		pagerCaption : "Grid::Page Settings",
		pageText : "Page:",
		recordPage : "Records per Page",
		nomorerecs : "No more records...",
		scrollPullup: "Pull up to load more...",
		scrollPulldown : "Pull down to refresh...",
		scrollRefresh : "Release to refresh...",
		valT : "checked",
		valF : "unchecked",
		selectLine : "Select row",
		selectAllLines : "Select all rows"
	},
	search : {
	    caption: "Busca...",
	    Find: "Procurar",
	    Reset: "Limpar",
	    odata: [{ oper:'eq', text:'igual'},{ oper:'ne', text:'desigual'},{oper:'lt', text:'menor'},{ oper:'le', text:'menor ou igual'},{ oper:'gt',text:'maior'},{ oper:'ge', text:'maior ou igual'},{ oper:'bw', text:'comecacom'},{ oper:'bn', text:'nao comeca com'},{ oper:'in', text:'estadentro'},{ oper:'ni', text:'nao esta dentro'},{ oper:'ew', text:'finalizacom'},{ oper:'en', text:'nao finaliza com'},{ oper:'cn', text:'contem'},{oper:'nc', text:'nao contem'}],
	    groupOps: [ { op: "AND", text: "tudo" }, { op: "OR", text:"qualquer" } ],
		operandTitle : "Click to select search operation.",
		resetTitle : "Reset Search Value",
		addsubgrup : "Add subgroup",
		addrule : "Add rule",
		delgroup : "Delete group",
		delrule : "Delete rule",
		Close : "Close",
		Operand : "Operand : ",
		Operation : "Oper : ",
		filterFor : "filter for"

	},
	edit : {
	    addCaption: "Adicionar Registo",
	    editCaption: "Modificar Registo",
	    bSubmit: "Submeter",
	    bCancel: "Cancelar",
		bClose: "Fechar",
		saveData: "Dados foram alterados. Guardar?",
		bYes : "Sim",
		bNo : "Nao",
		bExit : "Cancelar",
	    msg: {
	        required:"Campo obrigatório",
	        number:"Por favor, introduza um numero",
	        minValue:"O valor deve ser maior ou igual que",
	        maxValue:"O valor deve ser menor ou igual a",
	        email: "Não é um email válid",
	        integer: "Por favor, introduza um numero inteiro",
			date: "Introduza una fecha correcta ",
			url: "nao e um URL valido. Requerido prefixo ('http://' or 'https://')",
			nodefined : " nao esta definido!",
			novalue : " valor requerido!",
			customarray : "Funcao customizada deve entrar!",
			customfcheck : "Funcao customizada deve estar presente em caso deconfirmar customizacao!"
		}
	},
	view : {
	    caption: "View Record",
	    bClose: "Close"
	},
	del : {
	    caption: "Eliminar",
	    msg: "Deseja eliminar o(s) registo(s) seleccionado(s)?",
	    bSubmit: "Eliminar",
	    bCancel: "Cancelar"
	},
	nav : {
		edittext: " ",
	    edittitle: "Modificar registo seleccionado",
		addtext:" ",
	    addtitle: "Adicionar novo registo",
	    deltext: " ",
	    deltitle: "Eliminar registo seleccionado",
	    searchtext: " ",
	    searchtitle: "Procurar",
	    refreshtext: "",
	    refreshtitle: "Actualizar",
	    alertcap: "Aviso",
	    alerttext: "Por favor, seleccione um registo",
		viewtext: "",
		viewtitle: "Ver coluna selecionada",
		savetext: "",
		savetitle: "Save row",
		canceltext: "",
		canceltitle : "Cancel row editing",
		selectcaption : "Actions..."
	},
	col : {
	    caption: "Mostrar/Ocultar Colunas",
	    bSubmit: "Enviar",
	    bCancel: "Cancelar"	
	},
	errors : {
		errcap : "Erro",
		nourl : "Não especificou um url",
		norecords: "Não existem dados para processar",
	    model : "Tamanho do colNames <> colModel!"
	},
	formatter : {
		integer : {thousandsSeparator: " ", defaultValue: '0'},
		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
		date : {
			dayNames:   [
				"Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sab",
				"Domingo", "Segunda-Feira", "Terça-Feira", "Quarta-Feira", "Quinta-Feira", "Sexta-Feira", "Sábado"
			],
			monthNames: [
				"Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez",
				"Janeiro", "Fevereiro", "Mar�o", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"
			],
			AmPm : ["am","pm","AM","PM"],
			S: function (j) {return j < 11 || j > 13 ? ['�', '�', '�', '�'][Math.min((j - 1) % 10, 3)] : '�'},
			srcformat: 'Y-m-d',
			newformat: 'd/m/Y',
			parseRe : /[#%\\\/:_;.,\t\s-]/,
			masks : {
	            ISO8601Long:"Y-m-d H:i:s",
	            ISO8601Short:"Y-m-d",
	            ShortDate: "n/j/Y",
	            LongDate: "l, F d, Y",
	            FullDateTime: "l, F d, Y g:i:s A",
	            MonthDay: "F d",
	            ShortTime: "g:i A",
	            LongTime: "g:i:s A",
	            SortableDateTime: "Y-m-d\\TH:i:s",
	            UniversalSortableDateTime: "Y-m-d H:i:sO",
	            YearMonth: "F, Y"
	        },
	        reformatAfterEdit : false,
			userLocalTime : false
		},
		baseLinkUrl: '',
		showAction: '',
	    target: '',
	    checkbox : {disabled:true},
		idName : 'id'
	},
	colmenu : {
		sortasc : "Sort Ascending",
		sortdesc : "Sort Descending",
		columns : "Columns",
		filter : "Filter",
		grouping : "Group By",
		ungrouping : "Ungroup",
		searchTitle : "Get items with value that:",
		freeze : "Freeze",
		unfreeze : "Unfreeze",
		reorder : "Move to reorder",
		hovermenu: "Click for column quick actions"
	}
};
}));
js/i18n/grid.locale-bg.js000064400000017120151676727230011067 0ustar00/**
 * jqGrid Bulgarian Translation 
 * Tony Tomov tony@trirand.com
 * http://trirand.com/blog/ 
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
**/
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"../grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {

$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("regional")) {
	$.jgrid.regional = [];
}
$.jgrid.regional["bg"] = {
	defaults : {
		recordtext: "{0} - {1} от {2}",
		emptyrecords: "Няма запис(и)",
		loadtext: "Зареждам...",
		savetext: "Записвам...",
		pgtext : "Стр. {0} от {1}",
		pgfirst : "Първа Стр.",
		pglast : "Последна Стр.",
		pgnext : "Следваща Стр.",
		pgprev : "Предишна Стр.",
		pgrecs : "Брой записи на Стр.",
		showhide: "Свиване/Разтягане на таблицата",
		// mobile
		pagerCaption : "Таблица::Настр. Страница",
		pageText : "Страница:",
		recordPage : "Записи на стр.",
		nomorerecs : "Няма повече записи...",
		scrollPullup: "Издърпайте нагоре за повече...",
		scrollPulldown : "Дръпнете надолу за опресняване...",
		scrollRefresh : "Освободете за да опресните...",
		valT : "с отметка",
		valF : "без отметка",
		selectLine : "Избери ред",
		selectAllLines : "Избери всички"
	},
	search : {
		caption: "Търсене...",
		Find: "Намери",
		Reset: "Изчисти",
		odata: [{ oper:'eq', text:"равно"},{ oper:'ne', text:"различно"},{ oper:'lt', text:"по-малко"},{ oper:'le', text:"по-малко или="},{ oper:'gt', text:"по-голямо"},{ oper:'ge', text:"по-голямо или ="},{ oper:'bw', text:"започва с"},{ oper:'bn', text:"не започва с"},{ oper:'in', text:"се намира в"},{ oper:'ni', text:"не се намира в"},{ oper:'ew', text:"завършва с"},{ oper:'en', text:"не завършава с"},{ oper:'cn', text:"съдържа"},{ oper:'nc', text:"не съдържа"},{ oper:'nu', text:'е NULL'},{ oper:'nn', text:'не е NULL'}, {oper:'bt', text:'между'}],
	    groupOps: [	{ op: "AND", text: "&nbsp;И " },	{ op: "OR",  text: "ИЛИ" }	],
		operandTitle : "Натисни за избор на операнд.",
		resetTitle : "Изчисти стойността",
		addsubgrup : "Добави група",
		addrule : "Добави правило",
		delgroup : "Изтрий група",
		delrule : "Изтрий правило",
		Close : "Затвори",
		Operand : "Операнд : ",
		Operation : "Опер. : ",
		filterFor : "филтър за"
	},
	edit : {
		addCaption: "Нов Запис",
		editCaption: "Редакция Запис",
		bSubmit: "Запиши",
		bCancel: "Изход",
		bClose: "Затвори",
		saveData: "Данните са променени! Да съхраня ли промените?",
		bYes : "Да",
		bNo : "Не",
		bExit : "Отказ",
		msg: {
			required:"Полето е задължително",
			number:"Въведете валидно число!",
			minValue:"стойността трябва да е по-голяма или равна от",
			maxValue:"стойността трябва да е по-малка или равна от",
			email: "не е валиден ел. адрес",
			integer: "Въведете валидно цяло число",
			date: "Въведете валидна дата",
			url: "e невалиден URL. Изискава се префикс('http://' или 'https://')",
			nodefined : " е недефинирана!",
			novalue : " изисква връщане на стойност!",
			customarray : "Потреб. Функция трябва да върне масив!",
			customfcheck : "Потребителска функция е задължителна при този тип елемент!"
		}
	},
	view : {
		caption: "Преглед запис",
		bClose: "Затвори"
	},
	del : {
		caption: "Изтриване",
		msg: "Да изтрия ли избраният запис?",
		bSubmit: "Изтрий",
		bCancel: "Отказ"
	},
	nav : {
		edittext: " ",
		edittitle: "Редакция избран запис",
		addtext:" ",
		addtitle: "Добавяне нов запис",
		deltext: " ",
		deltitle: "Изтриване избран запис",
		searchtext: " ",
		searchtitle: "Търсене запис(и)",
		refreshtext: "",
		refreshtitle: "Обнови таблица",
		alertcap: "Предупреждение",
		alerttext: "Моля, изберете запис",
		viewtext: "",
		viewtitle: "Преглед избран запис",
		savetext: "",
		savetitle: "Съхрани запис",
		canceltext: "",
		canceltitle : "Отказ редакция",
		selectcaption : "Действия..."
	},
	col : {
		caption: "Избери колони",
		bSubmit: "Ок",
		bCancel: "Изход"	
	},
	errors : {
		errcap : "Грешка",
		nourl : "Няма посочен url адрес",
		norecords: "Няма запис за обработка",
		model : "Модела не съответства на имената!"	
	},
	formatter : {
		integer : {thousandsSeparator: " ", defaultValue: '0'},
		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:" лв.", defaultValue: '0.00'},
		date : {
			dayNames:   [
				"Нед", "Пон", "Вт", "Ср", "Чет", "Пет", "Съб",
				"Неделя", "Понеделник", "Вторник", "Сряда", "Четвъртък", "Петък", "Събота"
			],
			monthNames: [
				"Яну", "Фев", "Мар", "Апр", "Май", "Юни", "Юли", "Авг", "Сеп", "Окт", "Нов", "Дек",
				"Януари", "Февруари", "Март", "Април", "Май", "Юни", "Юли", "Август", "Септември", "Октомври", "Ноември", "Декември"
			],
			AmPm : ["","","",""],
			S: function (j) {
				if(j==7 || j==8 || j== 27 || j== 28) {
					return 'ми';
				}
				return ['ви', 'ри', 'ти'][Math.min((j - 1) % 10, 2)];
			},
			srcformat: 'Y-m-d',
			newformat: 'd/m/Y',
			parseRe : /[#%\\\/:_;.,\t\s-]/,
			masks : {
				ISO8601Long:"Y-m-d H:i:s",
				ISO8601Short:"Y-m-d",
				ShortDate: "n/j/Y",
				LongDate: "l, F d, Y",
				FullDateTime: "l, F d, Y g:i:s A",
				MonthDay: "F d",
				ShortTime: "g:i A",
				LongTime: "g:i:s A",
				SortableDateTime: "Y-m-d\\TH:i:s",
				UniversalSortableDateTime: "Y-m-d H:i:sO",
				YearMonth: "F, Y"
			},
			reformatAfterEdit : false,
			userLocalTime : false
		},
		baseLinkUrl: '',
		showAction: '',
		target: '',
		checkbox : {disabled:true},
		idName : 'id'
	},
	colmenu : {
		sortasc : "Сортирай възходящо",
		sortdesc : "Сортирай низходящо",
		columns : "Колони",
		filter : "Филтрирай",
		grouping : "Групирай по",
		ungrouping : "Разгрупиране",
		searchTitle : "Търси данни със стойност, която",
		freeze : "Неподвижна",
		unfreeze : "Отмяна неподвижност",
		reorder : "Премести за пренареждане",
		hovermenu: "Щракнете за бързи действия в колоната"
	}
};
}));
js/i18n/grid.locale-he.js000064400000015376151676727230011106 0ustar00/**
 * jqGrid Hebrew Translation
 * Shuki Shukrun shukrun.shuki@gmail.com
 * http://trirand.com/blog/ 
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
**/
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"../grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {

$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("regional")) {
	$.jgrid.regional = [];
}
$.jgrid.regional["he"] = {
	defaults : {
		recordtext: "מציג {0} - {1} מתוך {2}",
		emptyrecords: "אין רשומות להציג",
		loadtext: "טוען...",
		pgtext : "דף {0} מתוך {1}",
		savetext: "שומר...",
		pgfirst : "דף ראשון",
		pglast : "דף אחרון",
		pgnext : "דף הבאה",
		pgprev : "דף הקודם",
		pgrecs : "רשומות לעמוד",
		showhide: "החלפת מצב: הרחב כווץ טבלה",
		// mobile
		pagerCaption : "טבלה::הגדרות עמוד",
		pageText : "דף:",
		recordPage : "רשומות לעמוד",
		nomorerecs : "אין יותר רשומות...",
		scrollPullup: "גלול למעלה כדי לטעון עוד...",
		scrollPulldown : "גלול למטה כדי לרענן...",
		scrollRefresh : "שחרר כדי לרענן...",
		valT : "מסומן",
		valF : "אינה מסומנת",
		selectLine : "בחר שורה",
		selectAllLines : "בחר כל השורות"
	},
	search : {
		caption: "מחפש...",
		Find: "חפש",
		Reset: "איפוס",
		odata: [{ oper:'eq', text:"שווה"},{ oper:'ne', text:"לא שווה"},{ oper:'lt', text:"קטן"},{ oper:'le', text:"קטן או שווה"},{ oper:'gt', text:"גדול"},{ oper:'ge', text:"גדול או שווה"},{ oper:'bw', text:"מתחיל ב"},{ oper:'bn', text:"לא מתחיל ב"},{ oper:'in', text:"נמצא ב"},{ oper:'ni', text:"לא נמצא ב"},{ oper:'ew', text:"מסתיים ב"},{ oper:'en', text:"לא מסתיים ב"},{ oper:'cn', text:"מכיל"},{ oper:'nc', text:"לא מכיל"},{ oper:'nu', text:'שווה ל null'},{ oper:'nn', text:'אינו null'}, {oper:'bt', text:'בֵּין'}],
		groupOps: [	{ op: "AND", text: "הכל" },	{ op: "OR",  text: "אחד מ" }],
		operandTitle : "לחץ כדי לבחור פעולת חיפוש.",
		resetTitle : "איפוס ערך חיפוש",
		addsubgrup : "הוסף תת-קבוצה",
		addrule : "הוסף כלל",
		delgroup : "מחק את הקבוצה",
		delrule : "מחק כלל",
		Close : "סגור",
		Operand : "Operand : ",
		Operation : "Oper : ",
		filterFor : "לסנן עבור"
	},
	edit : {
		addCaption: "הוסף רשומה",
		editCaption: "ערוך רשומה",
		bSubmit: "עדכן",
		bCancel: "בטל",
		bClose: "סגור",
		saveData: "נתונים השתנו! לשמור?",
		bYes : "כן",
		bNo : "לא",
		bExit : "בטל",
		msg: {
			required:"שדה חובה",
			number:"אנא, הכנס מספר תקין",
			minValue:"ערך צריך להיות גדול או שווה ל ",
			maxValue:"ערך צריך להיות קטן או שווה ל ",
			email: "היא לא כתובת איימל תקינה",
			integer: "אנא, הכנס מספר שלם",
			date: "אנא, הכנס תאריך תקין",
			url: "הכתובת אינה תקינה. דרושה תחילית ('http://' או 'https://')",
			nodefined : " אינו מוגדר!",
			novalue : " נדרש ערך החזרה!",
			customarray : "פונקציה מותאמת אישית אמורה להחזיר מערך!",
			customfcheck : "פונקציה מותאמת אישית צריכה להיות נוכחת במקרה של בדיקה מותאמת אישית!"
		}
	},
	view : {
		caption: "הצג רשומה",
		bClose: "סגור"
	},
	del : {
		caption: "מחק",
		msg: "האם למחוק את הרשומה/ות המסומנות?",
		bSubmit: "מחק",
		bCancel: "בטל"
	},
	nav : {
		edittext: "",
		edittitle: "ערוך שורה מסומנת",
		addtext:"",
		addtitle: "הוסף שורה חדשה",
		deltext: "",
		deltitle: "מחק שורה מסומנת",
		searchtext: "",
		searchtitle: "חפש רשומות",
		refreshtext: "",
		refreshtitle: "טען גריד מחדש",
		alertcap: "אזהרה",
		alerttext: "אנא, בחר שורה",
		viewtext: "",
		viewtitle: "הצג שורה מסומנת",
		savetext: "",
		savetitle: "שמור שורה",
		canceltext: "",
		canceltitle : "בטל את עריכת השורה",
		selectcaption : "פעולות..."
	},
	col : {
		caption: "הצג/הסתר עמודות",
		bSubmit: "שלח",
		bCancel: "בטל"
	},
	errors : {
		errcap : "שגיאה",
		nourl : "לא הוגדרה כתובת url",
		norecords: "אין רשומות לעבד",
		model : "אורך של colNames <> colModel!"
	},
	formatter : {
		integer : {thousandsSeparator: " ", defaultValue: '0'},
		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
		date : {
			dayNames:   [
				"א", "ב", "ג", "ד", "ה", "ו", "ש",
				"ראשון", "שני", "שלישי", "רביעי", "חמישי", "שישי", "שבת"
			],
			monthNames: [
				"ינו", "פבר", "מרץ", "אפר", "מאי", "יונ", "יול", "אוג", "ספט", "אוק", "נוב", "דצמ",
				"ינואר", "פברואר", "מרץ", "אפריל", "מאי", "יוני", "יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר", "דצמבר"
			],
			AmPm : ["לפני הצהרים","אחר הצהרים","לפני הצהרים","אחר הצהרים"],
			S: function (j) {return j < 11 || j > 13 ? ['', '', '', ''][Math.min((j - 1) % 10, 3)] : ''},
			srcformat: 'Y-m-d',
			newformat: 'd/m/Y',
			parseRe : /[#%\\\/:_;.,\t\s-]/,
			masks : {
				ISO8601Long:"Y-m-d H:i:s",
				ISO8601Short:"Y-m-d",
				ShortDate: "n/j/Y",
				LongDate: "l, F d, Y",
				FullDateTime: "l, F d, Y g:i:s A",
				MonthDay: "F d",
				ShortTime: "g:i A",
				LongTime: "g:i:s A",
				SortableDateTime: "Y-m-d\\TH:i:s",
				UniversalSortableDateTime: "Y-m-d H:i:sO",
				YearMonth: "F, Y"
			},
			reformatAfterEdit : false,
			userLocalTime : false
		},
		baseLinkUrl: '',
		showAction: '',
		target: '',
		checkbox : {disabled:true},
		idName : 'id'
	},
	colmenu : {
		sortasc : "מיון בסדר עולה",
		sortdesc : "מיון בסדר יורד",
		columns : "עמודות",
		filter : "מסנן",
		grouping : "קבץ לפי",
		ungrouping : "פירוק קבוצה",
		searchTitle : "קבל פריטים בעלי ערך אשר:",
		freeze : "קפא",
		unfreeze : "שחררו את ההקפאה",
		reorder : "העבר לסדר מחדש",
		hovermenu: "לחץ לפעולות מהירות בעמודה"
	}
};
}));
js/i18n/grid.locale-gl.js000064400000014366151676727230011112 0ustar00/**
 * jqGrid Galician Translation
 * Translated by Jorge Barreiro <yortx.barry@gmail.com>
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
**/
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"../grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {

$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("regional")) {
	$.jgrid.regional = [];
}
$.jgrid.regional["gl"] = {
	defaults : {
		recordtext: "Amosando {0} - {1} de {2}",
	    emptyrecords: "Sen rexistros que amosar",
		loadtext: "Cargando...",
		pgtext : "Páxina {0} de {1}",
		savetext: "Saving...",
		pgfirst : "First Page",
		pglast : "Last Page",
		pgnext : "Next Page",
		pgprev : "Previous Page",
		pgrecs : "Records per Page",
		showhide: "Toggle Expand Collapse Grid",
		// mobile
		pagerCaption : "Grid::Page Settings",
		pageText : "Page:",
		recordPage : "Records per Page",
		nomorerecs : "No more records...",
		scrollPullup: "Pull up to load more...",
		scrollPulldown : "Pull down to refresh...",
		scrollRefresh : "Release to refresh...",
		valT : "checked",
		valF : "unchecked",
		selectLine : "Select row",
		selectAllLines : "Select all rows"
	},
	search : {
	    caption: "Búsqueda...",
	    Find: "Buscar",
	    Reset: "Limpar",
	    odata: [{ oper:'eq', text:"igual "},{ oper:'ne', text:"diferente a"},{ oper:'lt', text:"menor que"},{ oper:'le', text:"menor ou igual que"},{ oper:'gt', text:"maior que"},{ oper:'ge', text:"maior ou igual a"},{ oper:'bw', text:"empece por"},{ oper:'bn', text:"non empece por"},{ oper:'in', text:"está en"},{ oper:'ni', text:"non está en"},{ oper:'ew', text:"termina por"},{ oper:'en', text:"non termina por"},{ oper:'cn', text:"contén"},{ oper:'nc', text:"non contén"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],
	    groupOps: [	{ op: "AND", text: "todo" },	{ op: "OR",  text: "calquera" }	],
		operandTitle : "Click to select search operation.",
		resetTitle : "Reset Search Value",
		addsubgrup : "Add subgroup",
		addrule : "Add rule",
		delgroup : "Delete group",
		delrule : "Delete rule",
		Close : "Close",
		Operand : "Operand : ",
		Operation : "Oper : ",
		filterFor : "filter for"
	},
	edit : {
	    addCaption: "Engadir rexistro",
	    editCaption: "Modificar rexistro",
	    bSubmit: "Gardar",
	    bCancel: "Cancelar",
		bClose: "Pechar",
		saveData: "Modificáronse os datos, quere gardar os cambios?",
		bYes : "Si",
		bNo : "Non",
		bExit : "Cancelar",
	    msg: {
	        required:"Campo obrigatorio",
	        number:"Introduza un número",
	        minValue:"O valor debe ser maior ou igual a ",
	        maxValue:"O valor debe ser menor ou igual a ",
	        email: "non é un enderezo de correo válido",
	        integer: "Introduza un valor enteiro",
			date: "Introduza unha data correcta ",
			url: "non é unha URL válida. Prefixo requerido ('http://' ou 'https://')",
			nodefined : " non está definido.",
			novalue : " o valor de retorno é obrigatorio.",
			customarray : "A función persoalizada debe devolver un array.",
			customfcheck : "A función persoalizada debe estar presente no caso de ter validación persoalizada."
		}
	},
	view : {
	    caption: "Consultar rexistro",
	    bClose: "Pechar"
	},
	del : {
	    caption: "Eliminar",
	    msg: "Desexa eliminar os rexistros seleccionados?",
	    bSubmit: "Eliminar",
	    bCancel: "Cancelar"
	},
	nav : {
		edittext: " ",
	    edittitle: "Modificar a fila seleccionada",
		addtext:" ",
	    addtitle: "Engadir unha nova fila",
	    deltext: " ",
	    deltitle: "Eliminar a fila seleccionada",
	    searchtext: " ",
	    searchtitle: "Buscar información",
	    refreshtext: "",
	    refreshtitle: "Recargar datos",
	    alertcap: "Aviso",
	    alerttext: "Seleccione unha fila",
		viewtext: "",
		viewtitle: "Ver fila seleccionada",
		savetext: "",
		savetitle: "Save row",
		canceltext: "",
		canceltitle : "Cancel row editing",
		selectcaption : "Actions..."
	},
	col : {
	    caption: "Mostrar/ocultar columnas",
	    bSubmit: "Enviar",
	    bCancel: "Cancelar"	
	},
	errors : {
		errcap : "Erro",
		nourl : "Non especificou unha URL",
		norecords: "Non hai datos para procesar",
	    model : "As columnas de nomes son diferentes das columnas de modelo"
	},
	formatter : {
		integer : {thousandsSeparator: ".", defaultValue: '0'},
		number : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, defaultValue: '0,00'},
		currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
		date : {
			dayNames:   [
				"Do", "Lu", "Ma", "Me", "Xo", "Ve", "Sa",
				"Domingo", "Luns", "Martes", "Mércoles", "Xoves", "Vernes", "Sábado"
			],
			monthNames: [
				"Xan", "Feb", "Mar", "Abr", "Mai", "Xuñ", "Xul", "Ago", "Set", "Out", "Nov", "Dec",
				"Xaneiro", "Febreiro", "Marzo", "Abril", "Maio", "Xuño", "Xullo", "Agosto", "Setembro", "Outubro", "Novembro", "Decembro"
			],
			AmPm : ["am","pm","AM","PM"],
			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
			srcformat: 'Y-m-d',
			newformat: 'd-m-Y',
			parseRe : /[#%\\\/:_;.,\t\s-]/,
			masks : {
	            ISO8601Long:"Y-m-d H:i:s",
	            ISO8601Short:"Y-m-d",
	            ShortDate: "n/j/Y",
	            LongDate: "l, F d, Y",
	            FullDateTime: "l, F d, Y g:i:s A",
	            MonthDay: "F d",
	            ShortTime: "g:i A",
	            LongTime: "g:i:s A",
	            SortableDateTime: "Y-m-d\\TH:i:s",
	            UniversalSortableDateTime: "Y-m-d H:i:sO",
	            YearMonth: "F, Y"
	        },
	        reformatAfterEdit : false,
			userLocalTime : false
		},
		baseLinkUrl: '',
		showAction: '',
	    target: '',
	    checkbox : {disabled:true},
		idName : 'id'
	},
	colmenu : {
		sortasc : "Sort Ascending",
		sortdesc : "Sort Descending",
		columns : "Columns",
		filter : "Filter",
		grouping : "Group By",
		ungrouping : "Ungroup",
		searchTitle : "Get items with value that:",
		freeze : "Freeze",
		unfreeze : "Unfreeze",
		reorder : "Move to reorder",
		hovermenu: "Click for column quick actions"
	}
};
}));
js/i18n/grid.locale-lt.js000064400000014140151676727230011115 0ustar00/**
 * jqGrid Lithuanian Translation
 * aur1mas aur1mas@devnet.lt
 * http://aur1mas.devnet.lt
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
**/
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"../grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {

$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("regional")) {
	$.jgrid.regional = [];
}
$.jgrid.regional["lt"] = {
	defaults : {
		recordtext: "Peržiūrima {0} - {1} iš {2}",
		emptyrecords: "Įrašų nėra",
		loadtext: "Kraunama...",
		pgtext : "Puslapis {0} iš {1}",
		savetext: "Saving...",
		pgfirst : "First Page",
		pglast : "Last Page",
		pgnext : "Next Page",
		pgprev : "Previous Page",
		pgrecs : "Records per Page",
		showhide: "Toggle Expand Collapse Grid",
		// mobile
		pagerCaption : "Grid::Page Settings",
		pageText : "Page:",
		recordPage : "Records per Page",
		nomorerecs : "No more records...",
		scrollPullup: "Pull up to load more...",
		scrollPulldown : "Pull down to refresh...",
		scrollRefresh : "Release to refresh...",
		valT : "checked",
		valF : "unchecked",
		selectLine : "Select row",
		selectAllLines : "Select all rows"
	},
	search : {
		caption: "Paieška...",
		Find: "Ieškoti",
		Reset: "Atstatyti",
		odata: [{ oper:'eq', text:"lygu"},{ oper:'ne', text:"nelygu"},{ oper:'lt', text:"mažiau"},{ oper:'le', text:"mažiau arba lygu"},{ oper:'gt', text:"daugiau"},{ oper:'ge', text:"daugiau arba lygu"},{ oper:'bw', text:"prasideda"},{ oper:'bn', text:"neprasideda"},{ oper:'in', text:"reikšmė yra"},{ oper:'ni', text:"reikšmės nėra"},{ oper:'ew', text:"baigiasi"},{ oper:'en', text:"nesibaigia"},{ oper:'cn', text:"yra sudarytas"},{ oper:'nc', text:"nėra sudarytas"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],
		groupOps: [	{ op: "AND", text: "visi" },	{ op: "OR",  text: "bet kuris" }	],
		operandTitle : "Click to select search operation.",
		resetTitle : "Reset Search Value",
		addsubgrup : "Add subgroup",
		addrule : "Add rule",
		delgroup : "Delete group",
		delrule : "Delete rule",
		Close : "Close",
		Operand : "Operand : ",
		Operation : "Oper : ",
		filterFor : "filter for"
	},
	edit : {
		addCaption: "Sukurti įrašą",
		editCaption: "Redaguoti įrašą",
		bSubmit: "Išsaugoti",
		bCancel: "Atšaukti",
		bClose: "Uždaryti",
		saveData: "Duomenys buvo pakeisti! Išsaugoti pakeitimus?",
		bYes : "Taip",
		bNo : "Ne",
		bExit : "Atšaukti",
		msg: {
			required:"Privalomas laukas",
			number:"Įveskite tinkamą numerį",
			minValue:"reikšmė turi būti didesnė arba lygi ",
			maxValue:"reikšmė turi būti mažesnė arba lygi",
			email: "neteisingas el. pašto adresas",
			integer: "Įveskite teisingą sveikąjį skaičių",
			date: "Įveskite teisingą datą",
			url: "blogas adresas. Nepamirškite pridėti ('http://' arba 'https://')",
			nodefined : " nėra apibrėžta!",
			novalue : " turi būti gražinama kokia nors reikšmė!",
			customarray : "Custom f-ja turi grąžinti masyvą!",
			customfcheck : "Custom f-ja tūrėtų būti sukurta, prieš bandant ją naudoti!"
			
		}
	},
	view : {
		caption: "Peržiūrėti įrašus",
		bClose: "Uždaryti"
	},
	del : {
		caption: "Ištrinti",
		msg: "Ištrinti pažymėtus įrašus(-ą)?",
		bSubmit: "Ištrinti",
		bCancel: "Atšaukti"
	},
	nav : {
		edittext: "",
		edittitle: "Redaguoti pažymėtą eilutę",
		addtext:"",
		addtitle: "Pridėti naują eilutę",
		deltext: "",
		deltitle: "Ištrinti pažymėtą eilutę",
		searchtext: "",
		searchtitle: "Rasti įrašus",
		refreshtext: "",
		refreshtitle: "Perkrauti lentelę",
		alertcap: "Įspėjimas",
		alerttext: "Pasirinkite eilutę",
		viewtext: "",
		viewtitle: "Peržiūrėti pasirinktą eilutę",
		savetext: "",
		savetitle: "Save row",
		canceltext: "",
		canceltitle : "Cancel row editing",
		selectcaption : "Actions..."
	},
	col : {
		caption: "Pasirinkti stulpelius",
		bSubmit: "Gerai",
		bCancel: "Atšaukti"
	},
	errors : {
		errcap : "Klaida",
		nourl : "Url reikšmė turi būti perduota",
		norecords: "Nėra įrašų, kuriuos būtų galima apdoroti",
		model : "colNames skaičius <> colModel skaičiui!"
	},
	formatter : {
		integer : {thousandsSeparator: "", defaultValue: '0'},
		number : {decimalSeparator:",", thousandsSeparator: "", decimalPlaces: 2, defaultValue: '0.00'},
		currency : {decimalSeparator:",", thousandsSeparator: "", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
		date : {
			dayNames:   [
				"Sek", "Pir", "Ant", "Tre", "Ket", "Pen", "Šeš",
				"Sekmadienis", "Pirmadienis", "Antradienis", "Trečiadienis", "Ketvirtadienis", "Penktadienis", "Šeštadienis"
			],
			monthNames: [
				"Sau", "Vas", "Kov", "Bal", "Geg", "Bir", "Lie", "Rugj", "Rugs", "Spa", "Lap", "Gru",
				"Sausis", "Vasaris", "Kovas", "Balandis", "Gegužė", "Birželis", "Liepa", "Rugpjūtis", "Rugsėjis", "Spalis", "Lapkritis", "Gruodis"
			],
			AmPm : ["am","pm","AM","PM"],
			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
			srcformat: 'Y-m-d',
			newformat: 'd/m/Y',
			parseRe : /[#%\\\/:_;.,\t\s-]/,
			masks : {
				ISO8601Long:"Y-m-d H:i:s",
				ISO8601Short:"Y-m-d",
				ShortDate: "n/j/Y",
				LongDate: "l, F d, Y",
				FullDateTime: "l, F d, Y g:i:s A",
				MonthDay: "F d",
				ShortTime: "g:i A",
				LongTime: "g:i:s A",
				SortableDateTime: "Y-m-d\\TH:i:s",
				UniversalSortableDateTime: "Y-m-d H:i:sO",
				YearMonth: "F, Y"
			},
			reformatAfterEdit : false,
			userLocalTime : false
		},
		baseLinkUrl: '',
		showAction: '',
		target: '',
		checkbox : {disabled:true},
		idName : 'id'
	},
	colmenu : {
		sortasc : "Sort Ascending",
		sortdesc : "Sort Descending",
		columns : "Columns",
		filter : "Filter",
		grouping : "Group By",
		ungrouping : "Ungroup",
		searchTitle : "Get items with value that:",
		freeze : "Freeze",
		unfreeze : "Unfreeze",
		reorder : "Move to reorder",
		hovermenu: "Click for column quick actions"
	}
};
}));
js/i18n/grid.locale-en.js000064400000020417151676727230011104 0ustar00/**
 * jqGrid English Translation
 * Tony Tomov tony@trirand.com
 * http://trirand.com/blog/ 
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
**/
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"../grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {

$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("regional")) {
	$.jgrid.regional = [];
}
$.jgrid.regional["en"] = {
	defaults : {
		recordtext: "View {0} - {1} of {2}",
		emptyrecords: "No records to view",
		loadtext: "Loading...",
		savetext: "Saving...",
		pgtext : "Page {0} of {1}",
		pgfirst : "First Page",
		pglast : "Last Page",
		pgnext : "Next Page",
		pgprev : "Previous Page",
		pgrecs : "Records per Page",
		showhide: "Toggle Expand Collapse Grid",
		// mobile
		pagerCaption : "Grid::Page Settings",
		pageText : "Page:",
		recordPage : "Records per Page",
		nomorerecs : "No more records...",
		scrollPullup: "Pull up to load more...",
		scrollPulldown : "Pull down to refresh...",
		scrollRefresh : "Release to refresh...",
		valueCheckbox : "Checkbox",
		valT : "checked",
		valF : "unchecked",
		selectLine : "Select row",
		selectAllLines : "Select all rows"
	},
	search : {
		caption: "Search...",
		Find: "Find",
		Reset: "Reset",
		odata: [{ oper:'eq', text:'equal'},{ oper:'ne', text:'not equal'},{ oper:'lt', text:'less'},{ oper:'le', text:'less or equal'},{ oper:'gt', text:'greater'},{ oper:'ge', text:'greater or equal'},{ oper:'bw', text:'begins with'},{ oper:'bn', text:'does not begin with'},{ oper:'in', text:'is in'},{ oper:'ni', text:'is not in'},{ oper:'ew', text:'ends with'},{ oper:'en', text:'does not end with'},{ oper:'cn', text:'contains'},{ oper:'nc', text:'does not contain'},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],
		groupOps: [{ op: "AND", text: "all" },{ op: "OR",  text: "any" }],
		operandTitle : "Click to select search operation.",
		resetTitle : "Reset Search Value",
		addsubgrup : "Add subgroup",
		addrule : "Add rule",
		delgroup : "Delete group",
		delrule : "Delete rule",
		Close : "Close",
		Operand : "Operand : ",
		Operation : "Oper : ",
		filterFor : "filter for"
	},
	edit : {
		addCaption: "Add Record",
		editCaption: "Edit Record",
		bSubmit: "Submit",
		bCancel: "Cancel",
		bClose: "Close",
		saveData: "Data has been changed! Save changes?",
		bYes : "Yes",
		bNo : "No",
		bExit : "Cancel",
		msg: {
			required:"Field is required",
			number:"Please, enter valid number",
			minValue:"value must be greater than or equal to ",
			maxValue:"value must be less than or equal to",
			email: "is not a valid e-mail",
			integer: "Please, enter valid integer value",
			date: "Please, enter valid date value",
			url: "is not a valid URL. Prefix required ('http://' or 'https://')",
			nodefined : " is not defined!",
			novalue : " return value is required!",
			customarray : "Custom function should return array!",
			customfcheck : "Custom function should be present in case of custom checking!"
			
		}
	},
	view : {
		caption: "View Record",
		bClose: "Close"
	},
	del : {
		caption: "Delete",
		msg: "Delete selected record(s)?",
		bSubmit: "Delete",
		bCancel: "Cancel"
	},
	nav : {
		edittext: "",
		edittitle: "Edit selected row",
		addtext:"",
		addtitle: "Add new row",
		deltext: "",
		deltitle: "Delete selected row",
		searchtext: "",
		searchtitle: "Find records",
		refreshtext: "",
		refreshtitle: "Reload Grid",
		alertcap: "Warning",
		alerttext: "Please, select row",
		viewtext: "",
		viewtitle: "View selected row",
		savetext: "",
		savetitle: "Save row",
		canceltext: "",
		canceltitle : "Cancel row editing",
		selectcaption : "Actions..."
	},
	col : {
		caption: "Select columns",
		bSubmit: "Ok",
		bCancel: "Cancel"
	},
	errors : {
		errcap : "Error",
		nourl : "No url is set",
		norecords: "No records to process",
		model : "Length of colNames <> colModel!"
	},
	formatter : {
		integer : {thousandsSeparator: ",", defaultValue: '0'},
		number : {decimalSeparator:".", thousandsSeparator: ",", decimalPlaces: 2, defaultValue: '0.00'},
		currency : {decimalSeparator:".", thousandsSeparator: ",", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
		date : {
			dayNames:   [
				"Sun", "Mon", "Tue", "Wed", "Thr", "Fri", "Sat",
				"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
			],
			monthNames: [
				"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
				"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
			],
			AmPm : ["am","pm","AM","PM"],
			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th';},
			srcformat: 'Y-m-d',
			newformat: 'n/j/Y',
			parseRe : /[#%\\\/:_;.,\t\s-]/,
			masks : {
				// see http://php.net/manual/en/function.date.php for PHP format used in jqGrid
				// and see http://docs.jquery.com/UI/Datepicker/formatDate
				// and https://github.com/jquery/globalize#dates for alternative formats used frequently
				// one can find on https://github.com/jquery/globalize/tree/master/lib/cultures many
				// information about date, time, numbers and currency formats used in different countries
				// one should just convert the information in PHP format
				ISO8601Long:"Y-m-d H:i:s",
				ISO8601Short:"Y-m-d",
				// short date:
				//    n - Numeric representation of a month, without leading zeros
				//    j - Day of the month without leading zeros
				//    Y - A full numeric representation of a year, 4 digits
				// example: 3/1/2012 which means 1 March 2012
				ShortDate: "n/j/Y", // in jQuery UI Datepicker: "M/d/yyyy"
				// long date:
				//    l - A full textual representation of the day of the week
				//    F - A full textual representation of a month
				//    d - Day of the month, 2 digits with leading zeros
				//    Y - A full numeric representation of a year, 4 digits
				LongDate: "l, F d, Y", // in jQuery UI Datepicker: "dddd, MMMM dd, yyyy"
				// long date with long time:
				//    l - A full textual representation of the day of the week
				//    F - A full textual representation of a month
				//    d - Day of the month, 2 digits with leading zeros
				//    Y - A full numeric representation of a year, 4 digits
				//    g - 12-hour format of an hour without leading zeros
				//    i - Minutes with leading zeros
				//    s - Seconds, with leading zeros
				//    A - Uppercase Ante meridiem and Post meridiem (AM or PM)
				FullDateTime: "l, F d, Y g:i:s A", // in jQuery UI Datepicker: "dddd, MMMM dd, yyyy h:mm:ss tt"
				// month day:
				//    F - A full textual representation of a month
				//    d - Day of the month, 2 digits with leading zeros
				MonthDay: "F d", // in jQuery UI Datepicker: "MMMM dd"
				// short time (without seconds)
				//    g - 12-hour format of an hour without leading zeros
				//    i - Minutes with leading zeros
				//    A - Uppercase Ante meridiem and Post meridiem (AM or PM)
				ShortTime: "g:i A", // in jQuery UI Datepicker: "h:mm tt"
				// long time (with seconds)
				//    g - 12-hour format of an hour without leading zeros
				//    i - Minutes with leading zeros
				//    s - Seconds, with leading zeros
				//    A - Uppercase Ante meridiem and Post meridiem (AM or PM)
				LongTime: "g:i:s A", // in jQuery UI Datepicker: "h:mm:ss tt"
				SortableDateTime: "Y-m-d\\TH:i:s",
				UniversalSortableDateTime: "Y-m-d H:i:sO",
				// month with year
				//    Y - A full numeric representation of a year, 4 digits
				//    F - A full textual representation of a month
				YearMonth: "F, Y" // in jQuery UI Datepicker: "MMMM, yyyy"
			},
			reformatAfterEdit : false,
			userLocalTime : false
		},
		baseLinkUrl: '',
		showAction: '',
		target: '',
		checkbox : {disabled:true},
		idName : 'id'
	},
	colmenu : {
		sortasc : "Sort Ascending",
		sortdesc : "Sort Descending",
		columns : "Columns",
		filter : "Filter",
		grouping : "Group By",
		ungrouping : "Ungroup",
		searchTitle : "Get items with value that:",
		freeze : "Freeze",
		unfreeze : "Unfreeze",
		reorder : "Move to reorder", 
		hovermenu: "Click for column quick actions"
	}
};
}));
js/i18n/grid.locale-ca.js000064400000014136151676727230011066 0ustar00/**
 * jqGrid Catalan Translation
 * Traducció jqGrid en Catatà per Faserline, S.L.
 * http://www.faserline.com
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
**/
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"../grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {

$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("regional")) {
	$.jgrid.regional = [];
}
$.jgrid.regional["ca"] = {
	defaults : {
		recordtext: "Mostrant {0} - {1} de {2}",
	    emptyrecords: "Sense registres que mostrar",
		loadtext: "Carregant...",
		savetext: "Saving...",
		pgtext : "Pàgina {0} de {1}",
		pgfirst : "First Page",
		pglast : "Last Page",
		pgnext : "Next Page",
		pgprev : "Previous Page",
		pgrecs : "Records per Page",
		showhide: "Toggle Expand Collapse Grid",
		// mobile
		pagerCaption : "Grid::Page Settings",
		pageText : "Page:",
		recordPage : "Records per Page",
		nomorerecs : "No more records...",
		scrollPullup: "Pull up to load more...",
		scrollPulldown : "Pull down to refresh...",
		scrollRefresh : "Release to refresh...",
		valT : "checked",
		valF : "unchecked",
		selectLine : "Select row",
		selectAllLines : "Select all rows"
	},
	search : {
		caption: "Cerca...",
		Find: "Cercar",
		Reset: "Buidar",
	    odata: [{ oper:'eq', text:"equal"},{ oper:'ne', text:"not equal"},{ oper:'lt', text:"less"},{ oper:'le', text:"less or equal"},{ oper:'gt', text:"greater"},{ oper:'ge', text:"greater or equal"},{ oper:'bw', text:"begins with"},{ oper:'bn', text:"does not begin with"},{ oper:'in', text:"is in"},{ oper:'ni', text:"is not in"},{ oper:'ew', text:"ends with"},{ oper:'en', text:"does not end with"},{ oper:'cn', text:"contains"},{ oper:'nc', text:"does not contain"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],
	    groupOps: [	{ op: "AND", text: "tot" },	{ op: "OR",  text: "qualsevol" }	],
		operandTitle : "Click to select search operation.",
		resetTitle : "Reset Search Value",
		addsubgrup : "Add subgroup",
		addrule : "Add rule",
		delgroup : "Delete group",
		delrule : "Delete rule",
		Close : "Close",
		Operand : "Operand : ",
		Operation : "Oper : ",
		filterFor : "filter for"
	},
	edit : {
		addCaption: "Afegir registre",
		editCaption: "Modificar registre",
		bSubmit: "Guardar",
		bCancel: "Cancelar",
		bClose: "Tancar",
		saveData: "Les dades han canviat. Guardar canvis?",
		bYes : "Yes",
		bNo : "No",
		bExit : "Cancel",
		msg: {
		    required:"Camp obligatori",
		    number:"Introdueixi un nombre",
		    minValue:"El valor ha de ser major o igual que ",
		    maxValue:"El valor ha de ser menor o igual a ",
		    email: "no és una direcció de correu vàlida",
		    integer: "Introdueixi un valor enter",
			date: "Introdueixi una data correcta ",
			url: "no és una URL vàlida. Prefix requerit ('http://' or 'https://')",
			nodefined : " is not defined!",
			novalue : " return value is required!",
			customarray : "Custom function should return array!",
			customfcheck : "Custom function should be present in case of custom checking!"
		}
	},
	view : {
		caption: "Veure registre",
		bClose: "Tancar"
	},
	del : {
		caption: "Eliminar",
		msg: "¿Desitja eliminar els registres seleccionats?",
		bSubmit: "Eliminar",
		bCancel: "Cancelar"
	},
	nav : {
		edittext: " ",
		edittitle: "Modificar fila seleccionada",
		addtext:" ",
		addtitle: "Agregar nova fila",
		deltext: " ",
		deltitle: "Eliminar fila seleccionada",
		searchtext: " ",
		searchtitle: "Cercar informació",
		refreshtext: "",
		refreshtitle: "Refrescar taula",
		alertcap: "Avís",
		alerttext: "Seleccioni una fila",
		viewtext: " ",
		viewtitle: "Veure fila seleccionada",
		savetext: "",
		savetitle: "Save row",
		canceltext: "",
		canceltitle : "Cancel row editing",
		selectcaption : "Actions..."
	},
// setcolumns module
	col : {
		caption: "Mostrar/ocultar columnes",
		bSubmit: "Enviar",
		bCancel: "Cancelar"	
	},
	errors : {
		errcap : "Error",
		nourl : "No s'ha especificat una URL",
		norecords: "No hi ha dades per processar",
		model : "Les columnes de noms són diferents de les columnes del model"
	},
	formatter : {
		integer : {thousandsSeparator: ".", defaultValue: '0'},
		number : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, defaultValue: '0,00'},
		currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
		date : {
			dayNames:   [
				"Dg", "Dl", "Dt", "Dc", "Dj", "Dv", "Ds",
				"Diumenge", "Dilluns", "Dimarts", "Dimecres", "Dijous", "Divendres", "Dissabte"
			],
			monthNames: [
				"Gen", "Febr", "Març", "Abr", "Maig", "Juny", "Jul", "Ag", "Set", "Oct", "Nov", "Des",
				"Gener", "Febrer", "Març", "Abril", "Maig", "Juny", "Juliol", "Agost", "Setembre", "Octubre", "Novembre", "Desembre"
			],
			AmPm : ["am","pm","AM","PM"],
			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
			srcformat: 'Y-m-d',
			newformat: 'd-m-Y',
			parseRe : /[#%\\\/:_;.,\t\s-]/,
			masks : {
		        ISO8601Long:"Y-m-d H:i:s",
		        ISO8601Short:"Y-m-d",
		        ShortDate: "n/j/Y",
		        LongDate: "l, F d, Y",
		        FullDateTime: "l, F d, Y g:i:s A",
		        MonthDay: "F d",
		        ShortTime: "g:i A",
		        LongTime: "g:i:s A",
		        SortableDateTime: "Y-m-d\\TH:i:s",
		        UniversalSortableDateTime: "Y-m-d H:i:sO",
		        YearMonth: "F, Y"
		    },
		    reformatAfterEdit : false,
			userLocalTime : false
		},
		baseLinkUrl: '',
		showAction: 'show',
	    target: '',
	    checkbox : {disabled:true},
		idName : 'id'
	},
	colmenu : {
		sortasc : "Sort Ascending",
		sortdesc : "Sort Descending",
		columns : "Columns",
		filter : "Filter",
		grouping : "Group By",
		ungrouping : "Ungroup",
		searchTitle : "Get items with value that:",
		freeze : "Freeze",
		unfreeze : "Unfreeze",
		reorder : "Move to reorder",
		hovermenu: "Click for column quick actions"
	}
};
}));
js/i18n/grid.locale-tr.js000064400000014242151676727230011126 0ustar00/**
 * jqGrid Turkish Translation
 * Erhan Gündoğan (erhan@trposta.net)
 * http://blog.zakkum.com
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
**/
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"../grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {

$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("regional")) {
	$.jgrid.regional = [];
}
$.jgrid.regional["tr"] = {
	defaults : {
		recordtext: "{0}-{1} listeleniyor. Toplam:{2}",
	    emptyrecords: "Kayıt bulunamadı",
		loadtext: "Yükleniyor...",
		pgtext : "{0}/{1}. Sayfa",
		savetext: "Saving...",
		pgfirst : "First Page",
		pglast : "Last Page",
		pgnext : "Next Page",
		pgprev : "Previous Page",
		pgrecs : "Records per Page",
		showhide: "Toggle Expand Collapse Grid",
		// mobile
		pagerCaption : "Grid::Page Settings",
		pageText : "Page:",
		recordPage : "Records per Page",
		nomorerecs : "No more records...",
		scrollPullup: "Pull up to load more...",
		scrollPulldown : "Pull down to refresh...",
		scrollRefresh : "Release to refresh...",
		valT : "checked",
		valF : "unchecked",
		selectLine : "Select row",
		selectAllLines : "Select all rows"
	},
	search : {
	    caption: "Arama...",
	    Find: "Bul",
	    Reset: "Temizle",	    
	    odata: [{ oper:'eq', text:"eşit"},{ oper:'ne', text:"eşit değil"},{ oper:'lt', text:"daha az"},{ oper:'le', text:"daha az veya eşit"},{ oper:'gt', text:"daha fazla"},{ oper:'ge', text:"daha fazla veya eşit"},{ oper:'bw', text:"ile başlayan"},{ oper:'bn', text:"ile başlamayan"},{ oper:'in', text:"içinde"},{ oper:'ni', text:"içinde değil"},{ oper:'ew', text:"ile biten"},{ oper:'en', text:"ile bitmeyen"},{ oper:'cn', text:"içeren"},{ oper:'nc', text:"içermeyen"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],
	    groupOps: [	{ op: "VE", text: "tüm" },	{ op: "VEYA",  text: "herhangi" }],
		operandTitle : "Click to select search operation.",
		resetTitle : "Reset Search Value",
		addsubgrup : "Add subgroup",
		addrule : "Add rule",
		delgroup : "Delete group",
		delrule : "Delete rule",
		Close : "Close",
		Operand : "Operand : ",
		Operation : "Oper : ",
		filterFor : "filter for"
	},
	edit : {
	    addCaption: "Kayıt Ekle",
	    editCaption: "Kayıt Düzenle",
	    bSubmit: "Gönder",
	    bCancel: "İptal",
		bClose: "Kapat",
		saveData: "Veriler değişti! Kayıt edilsin mi?",
		bYes : "Evet",
		bNo : "Hayıt",
		bExit : "İptal",
	    msg: {
	        required:"Alan gerekli",
	        number:"Lütfen bir numara giriniz",
	        minValue:"girilen değer daha büyük ya da buna eşit olmalıdır",
	        maxValue:"girilen değer daha küçük ya da buna eşit olmalıdır",
	        email: "geçerli bir e-posta adresi değildir",
	        integer: "Lütfen bir tamsayı giriniz",
			url: "Geçerli bir URL değil. ('http://' or 'https://') ön eki gerekli.",
			nodefined : " is not defined!",
			novalue : " return value is required!",
			customarray : "Custom function should return array!",
			customfcheck : "Custom function should be present in case of custom checking!"
		}
	},
	view : {
	    caption: "Kayıt Görüntüle",
	    bClose: "Kapat"
	},
	del : {
	    caption: "Sil",
	    msg: "Seçilen kayıtlar silinsin mi?",
	    bSubmit: "Sil",
	    bCancel: "İptal"
	},
	nav : {
		edittext: " ",
	    edittitle: "Seçili satırı düzenle",
		addtext:" ",
	    addtitle: "Yeni satır ekle",
	    deltext: " ",
	    deltitle: "Seçili satırı sil",
	    searchtext: " ",
	    searchtitle: "Kayıtları bul",
	    refreshtext: "",
	    refreshtitle: "Tabloyu yenile",
	    alertcap: "Uyarı",
	    alerttext: "Lütfen bir satır seçiniz",
		viewtext: "",
		viewtitle: "Seçilen satırı görüntüle",
		savetext: "",
		savetitle: "Save row",
		canceltext: "",
		canceltitle : "Cancel row editing",
		selectcaption : "Actions..."
	},
	col : {
	    caption: "Sütunları göster/gizle",
	    bSubmit: "Gönder",
	    bCancel: "İptal"	
	},
	errors : {
		errcap : "Hata",
		nourl : "Bir url yapılandırılmamış",
		norecords: "İşlem yapılacak bir kayıt yok",
	    model : "colNames uzunluğu <> colModel!"
	},
	formatter : {
		integer : {thousandsSeparator: " ", defaultValue: '0'},
		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
		date : {
			dayNames:   [
				"Paz", "Pts", "Sal", "Çar", "Per", "Cum", "Cts",
				"Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi"
			],
			monthNames: [
				"Oca", "Şub", "Mar", "Nis", "May", "Haz", "Tem", "Ağu", "Eyl", "Eki", "Kas", "Ara",
				"Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"
			],
			AmPm : ["am","pm","AM","PM"],
			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
			srcformat: 'Y-m-d',
			newformat: 'd/m/Y',
			parseRe : /[#%\\\/:_;.,\t\s-]/,
			masks : {
	            ISO8601Long:"Y-m-d H:i:s",
	            ISO8601Short:"Y-m-d",
	            ShortDate: "n/j/Y",
	            LongDate: "l, F d, Y",
	            FullDateTime: "l, F d, Y g:i:s A",
	            MonthDay: "F d",
	            ShortTime: "g:i A",
	            LongTime: "g:i:s A",
	            SortableDateTime: "Y-m-d\\TH:i:s",
	            UniversalSortableDateTime: "Y-m-d H:i:sO",
	            YearMonth: "F, Y"
	        },
	        reformatAfterEdit : false,
			userLocalTime : false
		},
		baseLinkUrl: '',
		showAction: '',
	    target: '',
	    checkbox : {disabled:true},
		idName : 'id'
	},
	colmenu : {
		sortasc : "Sort Ascending",
		sortdesc : "Sort Descending",
		columns : "Columns",
		filter : "Filter",
		grouping : "Group By",
		ungrouping : "Ungroup",
		searchTitle : "Get items with value that:",
		freeze : "Freeze",
		unfreeze : "Unfreeze",
		reorder : "Move to reorder",
		hovermenu: "Click for column quick actions"
	}
};
}));
js/i18n/grid.locale-uk.js000064400000016366151676727230011131 0ustar00/**
 * jqGrid Ukrainian Translation v1.0 02.07.2009
 * Sergey Dyagovchenko
 * http://d.sumy.ua
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
**/
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"../grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {

$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("regional")) {
	$.jgrid.regional = [];
}
$.jgrid.regional["ua"] = {
	defaults : {
		recordtext: "Перегляд {0} - {1} з {2}",
	  emptyrecords: "Немає записів для перегляду",
		loadtext: "Завантаження...",
		pgtext : "Стор. {0} з {1}",
		savetext: "Saving...",
		pgfirst : "First Page",
		pglast : "Last Page",
		pgnext : "Next Page",
		pgprev : "Previous Page",
		pgrecs : "Records per Page",
		showhide: "Toggle Expand Collapse Grid",
		// mobile
		pagerCaption : "Grid::Page Settings",
		pageText : "Page:",
		recordPage : "Records per Page",
		nomorerecs : "No more records...",
		scrollPullup: "Pull up to load more...",
		scrollPulldown : "Pull down to refresh...",
		scrollRefresh : "Release to refresh...",
		valT : "checked",
		valF : "unchecked",
		selectLine : "Select row",
		selectAllLines : "Select all rows"
	},
	search : {
    caption: "Пошук...",
    Find: "Знайти",
    Reset: "Скидання",
    odata: [{ oper:'eq', text:"рівно"},{ oper:'ne', text:"не рівно"},{ oper:'lt', text:"менше"},{ oper:'le', text:"менше або рівне"},{ oper:'gt', text:"більше"},{ oper:'ge', text:"більше або рівне"},{ oper:'bw', text:"починається з"},{ oper:'bn', text:"не починається з"},{ oper:'in', text:"знаходиться в"},{ oper:'ni', text:"не знаходиться в"},{ oper:'ew', text:"закінчується на"},{ oper:'en', text:"не закінчується на"},{ oper:'cn', text:"містить"},{ oper:'nc', text:"не містить"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],
    groupOps: [	{ op: "AND", text: "все" },	{ op: "OR",  text: "будь-який" }],
	operandTitle : "Click to select search operation.",
	resetTitle : "Reset Search Value",
	addsubgrup : "Add subgroup",
	addrule : "Add rule",
	delgroup : "Delete group",
	delrule : "Delete rule",
		Close : "Close",
		Operand : "Operand : ",
		Operation : "Oper : ",
		filterFor : "filter for"
	},
	edit : {
    addCaption: "Додати запис",
    editCaption: "Змінити запис",
    bSubmit: "Зберегти",
    bCancel: "Відміна",
		bClose: "Закрити",
		saveData: "До данних були внесені зміни! Зберегти зміни?",
		bYes : "Так",
		bNo : "Ні",
		bExit : "Відміна",
	    msg: {
        required:"Поле є обов'язковим",
        number:"Будь ласка, введіть правильне число",
        minValue:"значення повинне бути більше або дорівнює",
        maxValue:"значення повинно бути менше або дорівнює",
        email: "некоректна адреса електронної пошти",
        integer: "Будь ласка, введення дійсне ціле значення",
        date: "Будь ласка, введення дійсне значення дати",
        url: "не дійсний URL. Необхідна приставка ('http://' or 'https://')",
		nodefined : " is not defined!",
		novalue : " return value is required!",
		customarray : "Custom function should return array!",
		customfcheck : "Custom function should be present in case of custom checking!"
		}
	},
	view : {
	    caption: "Переглянути запис",
	    bClose: "Закрити"
	},
	del : {
	    caption: "Видалити",
	    msg: "Видалити обраний запис(и)?",
	    bSubmit: "Видалити",
	    bCancel: "Відміна"
	},
	nav : {
  		edittext: " ",
	    edittitle: "Змінити вибраний запис",
  		addtext:" ",
	    addtitle: "Додати новий запис",
	    deltext: " ",
	    deltitle: "Видалити вибраний запис",
	    searchtext: " ",
	    searchtitle: "Знайти записи",
	    refreshtext: "",
	    refreshtitle: "Оновити таблицю",
	    alertcap: "Попередження",
	    alerttext: "Будь ласка, виберіть запис",
  		viewtext: "",
  		viewtitle: "Переглянути обраний запис",
		savetext: "",
		savetitle: "Save row",
		canceltext: "",
		canceltitle : "Cancel row editing",
		selectcaption : "Actions..."
	},
	col : {
	    caption: "Показати/Приховати стовпці",
	    bSubmit: "Зберегти",
	    bCancel: "Відміна"
	},
	errors : {
		errcap : "Помилка",
		nourl : "URL не задан",
		norecords: "Немає записів для обробки",
    model : "Число полів не відповідає числу стовпців таблиці!"
	},
	formatter : {
		integer : {thousandsSeparator: " ", defaultValue: '0'},
		number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'},
		currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
		date : {
			dayNames:   [
				"Нд", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб",
				"Неділя", "Понеділок", "Вівторок", "Середа", "Четвер", "П'ятниця", "Субота"
			],
			monthNames: [
				"Січ", "Лют", "Бер", "Кві", "Тра", "Чер", "Лип", "Сер", "Вер", "Жов", "Лис", "Гру",
				"Січень", "Лютий", "Березень", "Квітень", "Травень", "Червень", "Липень", "Серпень", "Вересень", "Жовтень", "Листопад", "Грудень"
			],
			AmPm : ["am","pm","AM","PM"],
			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
			srcformat: 'Y-m-d',
			newformat: 'd.m.Y',
			parseRe : /[#%\\\/:_;.,\t\s-]/,
			masks : {
	            ISO8601Long:"Y-m-d H:i:s",
	            ISO8601Short:"Y-m-d",
	            ShortDate: "n.j.Y",
	            LongDate: "l, F d, Y",
	            FullDateTime: "l, F d, Y G:i:s",
	            MonthDay: "F d",
	            ShortTime: "G:i",
	            LongTime: "G:i:s",
	            SortableDateTime: "Y-m-d\\TH:i:s",
	            UniversalSortableDateTime: "Y-m-d H:i:sO",
	            YearMonth: "F, Y"
	        },
	        reformatAfterEdit : false,
			userLocalTime : false
		},
		baseLinkUrl: '',
		showAction: '',
	  target: '',
	  checkbox : {disabled:true},
		idName : 'id'
	},
	colmenu : {
		sortasc : "Sort Ascending",
		sortdesc : "Sort Descending",
		columns : "Columns",
		filter : "Filter",
		grouping : "Group By",
		ungrouping : "Ungroup",
		searchTitle : "Get items with value that:",
		freeze : "Freeze",
		unfreeze : "Unfreeze",
		reorder : "Move to reorder",
		hovermenu: "Click for column quick actions"
	}
};
}));
js/i18n/grid.locale-me.js000064400000014204151676727230011100 0ustar00/**
 * jqGrid Montenegrian Translation
 * Bild Studio info@bild-studio.net
 * http://www.bild-studio.com
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
**/
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"../grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {

$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("regional")) {
	$.jgrid.regional = [];
}
$.jgrid.regional["me"] = {
	defaults : {
		recordtext: "Pregled {0} - {1} od {2}",
		emptyrecords: "Ne postoji nijedan zapis",
		loadtext: "Učitivanje...",
		pgtext : "Strana {0} od {1}",
		savetext: "Saving...",
		pgfirst : "First Page",
		pglast : "Last Page",
		pgnext : "Next Page",
		pgprev : "Previous Page",
		pgrecs : "Records per Page",
		showhide: "Toggle Expand Collapse Grid",
		// mobile
		pagerCaption : "Grid::Page Settings",
		pageText : "Page:",
		recordPage : "Records per Page",
		nomorerecs : "No more records...",
		scrollPullup: "Pull up to load more...",
		scrollPulldown : "Pull down to refresh...",
		scrollRefresh : "Release to refresh...",
		valT : "checked",
		valF : "unchecked",
		selectLine : "Select row",
		selectAllLines : "Select all rows"
	},
	search : {
		caption: "Traženje...",
		Find: "Traži",
		Reset: "Resetuj",
		odata: [{ oper:'eq', text:"jednako"},{ oper:'ne', text:"nije jednako"},{ oper:'lt', text:"manje"},{ oper:'le', text:"manje ili jednako"},{ oper:'gt', text:"veće"},{ oper:'ge', text:"veće ili jednako"},{ oper:'bw', text:"počinje sa"},{ oper:'bn', text:"ne počinje sa"},{ oper:'in', text:"je u"},{ oper:'ni', text:"nije u"},{ oper:'ew', text:"završava sa"},{ oper:'en', text:"ne završava sa"},{ oper:'cn', text:"sadrži"},{ oper:'nc', text:"ne sadrži"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],
		groupOps: [	{ op: "AND", text: "sva" },	{ op: "OR",  text: "bilo koje" }	],
		operandTitle : "Click to select search operation.",
		resetTitle : "Reset Search Value",
		addsubgrup : "Add subgroup",
		addrule : "Add rule",
		delgroup : "Delete group",
		delrule : "Delete rule",
		Close : "Close",
		Operand : "Operand : ",
		Operation : "Oper : ",
		filterFor : "filter for"
	},
	edit : {
		addCaption: "Dodaj zapis",
		editCaption: "Izmjeni zapis",
		bSubmit: "Pošalji",
		bCancel: "Odustani",
		bClose: "Zatvori",
		saveData: "Podatak je izmjenjen! Sačuvaj izmjene?",
		bYes : "Da",
		bNo : "Ne",
		bExit : "Odustani",
		msg: {
			required:"Polje je obavezno",
			number:"Unesite ispravan broj",
			minValue:"vrijednost mora biti veća od ili jednaka sa ",
			maxValue:"vrijednost mora biti manja ili jednaka sa",
			email: "nije ispravna email adresa, nije valjda da ne umiješ ukucati mail!?",
			integer: "Ne zajebaji se unesi cjelobrojnu vrijednost ",
			date: "Unesite ispravan datum",
			url: "nije ispravan URL. Potreban je prefiks ('http://' or 'https://')",
			nodefined : " nije definisan!",
			novalue : " zahtjevana je povratna vrijednost!",
			customarray : "Prilagođena funkcija treba da vrati niz!",
			customfcheck : "Prilagođena funkcija treba da bude prisutana u slučaju prilagođene provjere!"
			
		}
	},
	view : {
		caption: "Pogledaj zapis",
		bClose: "Zatvori"
	},
	del : {
		caption: "Izbrisi",
		msg: "Izbrisi izabran(e) zapise(e)?",
		bSubmit: "Izbriši",
		bCancel: "Odbaci"
	},
	nav : {
		edittext: "",
		edittitle: "Izmjeni izabrani red",
		addtext:"",
		addtitle: "Dodaj novi red",
		deltext: "",
		deltitle: "Izbriši izabran red",
		searchtext: "",
		searchtitle: "Nađi zapise",
		refreshtext: "",
		refreshtitle: "Ponovo učitaj podatke",
		alertcap: "Upozorenje",
		alerttext: "Izaberite red",
		viewtext: "",
		viewtitle: "Pogledaj izabrani red",
		savetext: "",
		savetitle: "Save row",
		canceltext: "",
		canceltitle : "Cancel row editing",
		selectcaption : "Actions..."
	},
	col : {
		caption: "Izaberi kolone",
		bSubmit: "OK",
		bCancel: "Odbaci"
	},
	errors : {
		errcap : "Greška",
		nourl : "Nije postavljen URL",
		norecords: "Nema zapisa za obradu",
		model : "Dužina modela colNames <> colModel!"
	},
	formatter : {
		integer : {thousandsSeparator: " ", defaultValue: '0'},
		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
		date : {
			dayNames:   [
				"Ned", "Pon", "Uto", "Sre", "Čet", "Pet", "Sub",
				"Nedelja", "Ponedeljak", "Utorak", "Srijeda", "Četvrtak", "Petak", "Subota"
			],
			monthNames: [
				"Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Avg", "Sep", "Okt", "Nov", "Dec",
				"Januar", "Februar", "Mart", "April", "Maj", "Jun", "Jul", "Avgust", "Septembar", "Oktobar", "Novembar", "Decembar"
			],
			AmPm : ["am","pm","AM","PM"],
			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
			srcformat: 'Y-m-d',
			newformat: 'd/m/Y',
			parseRe : /[#%\\\/:_;.,\t\s-]/,
			masks : {
				ISO8601Long:"Y-m-d H:i:s",
				ISO8601Short:"Y-m-d",
				ShortDate: "n/j/Y",
				LongDate: "l, F d, Y",
				FullDateTime: "l, F d, Y g:i:s A",
				MonthDay: "F d",
				ShortTime: "g:i A",
				LongTime: "g:i:s A",
				SortableDateTime: "Y-m-d\\TH:i:s",
				UniversalSortableDateTime: "Y-m-d H:i:sO",
				YearMonth: "F, Y"
			},
			reformatAfterEdit : false,
			userLocalTime : false
		},
		baseLinkUrl: '',
		showAction: '',
		target: '',
		checkbox : {disabled:true},
		idName : 'id'
	},
	colmenu : {
		sortasc : "Sort Ascending",
		sortdesc : "Sort Descending",
		columns : "Columns",
		filter : "Filter",
		grouping : "Group By",
		ungrouping : "Ungroup",
		searchTitle : "Get items with value that:",
		freeze : "Freeze",
		unfreeze : "Unfreeze",
		reorder : "Move to reorder",
		hovermenu: "Click for column quick actions"
	}
};
}));
js/i18n/grid.locale-nl.js000064400000016404151676727230011114 0ustar00//NETHERLANDS
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"../grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {

$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("regional")) {
	$.jgrid.regional = [];
}
$.jgrid.regional["nl"] = {
        defaults:
        {
            recordtext: "regels {0} - {1} van {2}",
            emptyrecords: "Geen data gevonden.",
            loadtext: "Laden...",
            pgtext: "pagina  {0}  van {1}",
			savetext: "Saving...",
			pgfirst : "Eerste Pagina",
			pglast : "Laatste Pagina",
			pgnext : "Volgende Pagina",
			pgprev : "Vorige Pagina",
			pgrecs : "Records per Pagina",
			showhide: "Schakelen Uitklappen Inklappen Grid",
			// mobile
			pagerCaption : "Grid::Page Settings",
			pageText : "Page:",
			recordPage : "Records per Page",
			nomorerecs : "No more records...",
			scrollPullup: "Pull up to load more...",
			scrollPulldown : "Pull down to refresh...",
			scrollRefresh : "Release to refresh...",
			valT : "checked",
			valF : "unchecked",
			selectLine : "Select row",
			selectAllLines : "Select all rows"
        },
        search:
        {
            caption: "Zoeken...",
            Find: "Zoek",
            Reset: "Herstellen",
            odata: [{ oper:'eq', text:"gelijk aan"},{ oper:'ne', text:"niet gelijk aan"},{ oper:'lt', text:"kleiner dan"},{ oper:'le', text:"kleiner dan of gelijk aan"},{ oper:'gt', text:"groter dan"},{ oper:'ge', text:"groter dan of gelijk aan"},{ oper:'bw', text:"begint met"},{ oper:'bn', text:"begint niet met"},{ oper:'in', text:"is in"},{ oper:'ni', text:"is niet in"},{ oper:'ew', text:"eindigt met"},{ oper:'en', text:"eindigt niet met"},{ oper:'cn', text:"bevat"},{ oper:'nc', text:"bevat niet"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],
            groupOps: [{ op: "AND", text: "alle" }, { op: "OR", text: "een van de"}],
			operandTitle : "Klik om de zoekterm te selecteren.",
			resetTitle : "Herstel zoekterm",
			addsubgrup : "Add subgroup",
			addrule : "Add rule",
			delgroup : "Delete group",
			delrule : "Delete rule",
			Close : "Close",
			Operand : "Operand : ",
			Operation : "Oper : ",
			filterFor : "filter for"
        },
        edit:
        {
            addCaption: "Nieuw",
            editCaption: "Bewerken",
            bSubmit: "Opslaan",
            bCancel: "Annuleren",
            bClose: "Sluiten",
            saveData: "Er is data aangepast! Wijzigingen opslaan?",
            bYes: "Ja",
            bNo: "Nee",
            bExit: "Sluiten",
            msg:
            {
                required: "Veld is verplicht",
                number: "Voer a.u.b. geldig nummer in",
                minValue: "Waarde moet groter of gelijk zijn aan ",
                maxValue: "Waarde moet kleiner of gelijk zijn aan",
                email: "is geen geldig e-mailadres",
                integer: "Voer a.u.b. een geldig getal in",
                date: "Voer a.u.b. een geldige waarde in",
                url: "is geen geldige URL. Prefix is verplicht ('http://' or 'https://')",
                nodefined : " is niet gedefineerd!",
                novalue : " return waarde is verplicht!",
                customarray : "Aangepaste functie moet array teruggeven!",
                customfcheck : "Aangepaste function moet aanwezig zijn in het geval van aangepaste controle!"
            }
        },
        view:
        {
            caption: "Tonen",
            bClose: "Sluiten"
        },
        del:
        {
            caption: "Verwijderen",
            msg: "Verwijder geselecteerde regel(s)?",
            bSubmit: "Verwijderen",
            bCancel: "Annuleren"
        },
        nav:
        {
            edittext: "",
            edittitle: "Bewerken",
            addtext: "",
            addtitle: "Nieuw",
            deltext: "",
            deltitle: "Verwijderen",
            searchtext: "",
            searchtitle: "Zoeken",
            refreshtext: "",
            refreshtitle: "Vernieuwen",
            alertcap: "Waarschuwing",
            alerttext: "Selecteer a.u.b. een regel",
            viewtext: "",
            viewtitle: "Openen",
			savetext: "",
			savetitle: "Save row",
			canceltext: "",
			canceltitle : "Cancel row editing",
			selectcaption : "Actions..."
        },
        col:
        {
            caption: "Tonen/verbergen kolommen",
            bSubmit: "OK",
            bCancel: "Annuleren"
        },
        errors:
        {
            errcap: "Fout",
            nourl: "Er is geen URL gedefinieerd",
            norecords: "Geen data om te verwerken",
            model: "Lengte van 'colNames' is niet gelijk aan 'colModel'!"
        },
        formatter:
        {
            integer:
            {
                thousandsSeparator: ".",
                defaultValue: "0"
            },
            number:
            {
                decimalSeparator: ",",
                thousandsSeparator: ".",
                decimalPlaces: 2,
                defaultValue: "0.00"
            },
            currency:
            {
                decimalSeparator: ",",
                thousandsSeparator: ".",
                decimalPlaces: 2,
                prefix: "EUR ",
                suffix: "",
                defaultValue: "0.00"
            },
            date:
            {
                dayNames: ["Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za", "Zondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag"],
                monthNames: ["Jan", "Feb", "Maa", "Apr", "Mei", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "October", "November", "December"],
                AmPm: ["am", "pm", "AM", "PM"],
                S: function(b) {
                    return b < 11 || b > 13 ? ["st", "nd", "rd", "th"][Math.min((b - 1) % 10, 3)] : "th"
                },
                srcformat: "Y-m-d",
                newformat: "d/m/Y",
				parseRe : /[#%\\\/:_;.,\t\s-]/,
                masks:
                {
                    ISO8601Long: "Y-m-d H:i:s",
                    ISO8601Short: "Y-m-d",
                    ShortDate: "n/j/Y",
                    LongDate: "l, F d, Y",
                    FullDateTime: "l d F Y G:i:s",
                    MonthDay: "d F",
                    ShortTime: "G:i",
                    LongTime: "G:i:s",
                    SortableDateTime: "Y-m-d\\TH:i:s",
                    UniversalSortableDateTime: "Y-m-d H:i:sO",
                    YearMonth: "F, Y"
                },
                reformatAfterEdit: false,
				userLocalTime : false
            },
            baseLinkUrl: "",
            showAction: "",
            target: "",
            checkbox:
            {
                disabled: true
            },
            idName: "id"
        },
	colmenu : {
		sortasc : "Sort Ascending",
		sortdesc : "Sort Descending",
		columns : "Columns",
		filter : "Filter",
		grouping : "Group By",
		ungrouping : "Ungroup",
		searchTitle : "Get items with value that:",
		freeze : "Freeze",
		unfreeze : "Unfreeze",
		reorder : "Move to reorder",
		hovermenu: "Click for column quick actions"
	}
    };
}));
js/i18n/grid.locale-tw.js000064400000013346151676727230011137 0ustar00/**
 * jqGrid Chinese (Taiwan) Translation for v4.2
 * linquize
 * https://github.com/linquize/jqGrid
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 * 
**/
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"../grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {

$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("regional")) {
	$.jgrid.regional = [];
}
$.jgrid.regional["tw"] = {
	defaults : {
		recordtext: "{0} - {1} 共 {2} 條",
		emptyrecords: "沒有記錄",
		loadtext: "載入中...",
		pgtext : " {0} 共 {1} 頁",
		savetext: "Saving...",
		pgfirst : "First Page",
		pglast : "Last Page",
		pgnext : "Next Page",
		pgprev : "Previous Page",
		pgrecs : "Records per Page",
		showhide: "Toggle Expand Collapse Grid",
		// mobile
		pagerCaption : "Grid::Page Settings",
		pageText : "Page:",
		recordPage : "Records per Page",
		nomorerecs : "No more records...",
		scrollPullup: "Pull up to load more...",
		scrollPulldown : "Pull down to refresh...",
		scrollRefresh : "Release to refresh...",
		valT : "checked",
		valF : "unchecked",
		selectLine : "Select row",
		selectAllLines : "Select all rows"
	},
	search : {
		caption: "搜尋...",
		Find: "搜尋",
		Reset: "重設",
		odata: [{ oper:'eq', text:"等於 "},{ oper:'ne', text:"不等於 "},{ oper:'lt', text:"小於 "},{ oper:'le', text:"小於等於 "},{ oper:'gt', text:"大於 "},{ oper:'ge', text:"大於等於 "},{ oper:'bw', text:"開始於 "},{ oper:'bn', text:"不開始於 "},{ oper:'in', text:"在其中 "},{ oper:'ni', text:"不在其中 "},{ oper:'ew', text:"結束於 "},{ oper:'en', text:"不結束於 "},{ oper:'cn', text:"包含 "},{ oper:'nc', text:"不包含 "},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],
		groupOps: [	{ op: "AND", text: "所有" },	{ op: "OR",  text: "任一" }	],
		operandTitle : "Click to select search operation.",
		resetTitle : "Reset Search Value",
		addsubgrup : "Add subgroup",
		addrule : "Add rule",
		delgroup : "Delete group",
		delrule : "Delete rule",
		Close : "Close",
		Operand : "Operand : ",
		Operation : "Oper : ",
		filterFor : "filter for"
	},
	edit : {
		addCaption: "新增記錄",
		editCaption: "編輯記錄",
		bSubmit: "提交",
		bCancel: "取消",
		bClose: "關閉",
		saveData: "資料已改變,是否儲存?",
		bYes : "是",
		bNo : "否",
		bExit : "取消",
		msg: {
			required:"此欄必要",
			number:"請輸入有效的數字",
			minValue:"值必須大於等於 ",
			maxValue:"值必須小於等於 ",
			email: "不是有效的e-mail地址",
			integer: "請輸入有效整数",
			date: "請輸入有效時間",
			url: "網址無效。前綴必須為 ('http://' 或 'https://')",
			nodefined : " 未定義!",
			novalue : " 需要傳回值!",
			customarray : "自訂函數應傳回陣列!",
			customfcheck : "自訂檢查應有自訂函數!"
			
		}
	},
	view : {
		caption: "查看記錄",
		bClose: "關閉"
	},
	del : {
		caption: "刪除",
		msg: "刪除已選記錄?",
		bSubmit: "刪除",
		bCancel: "取消"
	},
	nav : {
		edittext: "",
		edittitle: "編輯已選列",
		addtext:"",
		addtitle: "新增列",
		deltext: "",
		deltitle: "刪除已選列",
		searchtext: "",
		searchtitle: "搜尋記錄",
		refreshtext: "",
		refreshtitle: "重新整理表格",
		alertcap: "警告",
		alerttext: "請選擇列",
		viewtext: "",
		viewtitle: "檢視已選列",
		savetext: "",
		savetitle: "Save row",
		canceltext: "",
		canceltitle : "Cancel row editing",
		selectcaption : "Actions..."
	},
	col : {
		caption: "選擇欄",
		bSubmit: "確定",
		bCancel: "取消"
	},
	errors : {
		errcap : "錯誤",
		nourl : "未設定URL",
		norecords: "無需要處理的記錄",
		model : "colNames 和 colModel 長度不同!"
	},
	formatter : {
		integer : {thousandsSeparator: " ", defaultValue: '0'},
		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
		date : {
			dayNames:   [
				"日", "一", "二", "三", "四", "五", "六",
		         "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"
			],
			monthNames: [
				"一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二",
				"一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"
			],
			AmPm : ["上午","下午","上午","下午"],
			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th';},
			srcformat: 'Y-m-d',
			newformat: 'm-d-Y',
			parseRe : /[#%\\\/:_;.,\t\s-]/,
			masks : {
				ISO8601Long:"Y-m-d H:i:s",
				ISO8601Short:"Y-m-d",
				ShortDate: "Y/j/n",
				LongDate: "l, F d, Y",
				FullDateTime: "l, F d, Y g:i:s A",
				MonthDay: "F d",
				ShortTime: "g:i A",
				LongTime: "g:i:s A",
				SortableDateTime: "Y-m-d\\TH:i:s",
				UniversalSortableDateTime: "Y-m-d H:i:sO",
				YearMonth: "F, Y"
			},
			reformatAfterEdit : false,
			userLocalTime : false
		},
		baseLinkUrl: '',
		showAction: '',
		target: '',
		checkbox : {disabled:true},
		idName : 'id'
	},
	colmenu : {
		sortasc : "Sort Ascending",
		sortdesc : "Sort Descending",
		columns : "Columns",
		filter : "Filter",
		grouping : "Group By",
		ungrouping : "Ungroup",
		searchTitle : "Get items with value that:",
		freeze : "Freeze",
		unfreeze : "Unfreeze",
		reorder : "Move to reorder",
		hovermenu: "Click for column quick actions"
	}
};
}));
js/i18n/grid.locale-hr.js000064400000020070151676727230011106 0ustar00/**
 * jqGrid Croatian Translation
 * Version 1.0.1 (developed for jQuery Grid 4.4)
 * msajko@gmail.com
 * 
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
**/
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"../grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {

$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("regional")) {
	$.jgrid.regional = [];
}
$.jgrid.regional["hr"] = {
	defaults : {
		recordtext: "Pregled {0} - {1} od {2}",
		emptyrecords: "Nema zapisa",
		loadtext: "Učitavam...",
		pgtext : "Stranica {0} od {1}",
		savetext: "Saving...",
		pgfirst : "First Page",
		pglast : "Last Page",
		pgnext : "Next Page",
		pgprev : "Previous Page",
		pgrecs : "Records per Page",
		showhide: "Toggle Expand Collapse Grid",
		// mobile
		pagerCaption : "Grid::Page Settings",
		pageText : "Page:",
		recordPage : "Records per Page",
		nomorerecs : "No more records...",
		scrollPullup: "Pull up to load more...",
		scrollPulldown : "Pull down to refresh...",
		scrollRefresh : "Release to refresh...",
		valT : "checked",
		valF : "unchecked",
		selectLine : "Select row",
		selectAllLines : "Select all rows"
	},
	search : {
		caption: "Traži...",
		Find: "Pretraživanje",
		Reset: "Poništi",
		odata: [{ oper:'eq', text:"jednak"},{ oper:'ne', text:"nije identičan"},{ oper:'lt', text:"manje"},{ oper:'le', text:"manje ili identično"},{ oper:'gt', text:"veće"},{ oper:'ge', text:"veće ili identično"},{ oper:'bw', text:"počinje sa"},{ oper:'bn', text:"ne počinje sa "},{ oper:'in', text:"je u"},{ oper:'ni', text:"nije u"},{ oper:'ew', text:"završava sa"},{ oper:'en', text:"ne završava sa"},{ oper:'cn', text:"sadrži"},{ oper:'nc', text:"ne sadrži"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],
		groupOps: [	{ op: "I", text: "sve" },	{ op: "ILI",  text: "bilo koji" }	],
		operandTitle : "Click to select search operation.",
		resetTitle : "Reset Search Value",
		addsubgrup : "Add subgroup",
		addrule : "Add rule",
		delgroup : "Delete group",
		delrule : "Delete rule",
		Close : "Close",
		Operand : "Operand : ",
		Operation : "Oper : ",
		filterFor : "filter for"
	},
	edit : {
		addCaption: "Dodaj zapis",
		editCaption: "Promijeni zapis",
		bSubmit: "Preuzmi",
		bCancel: "Odustani",
		bClose: "Zatvri",
		saveData: "Podaci su promijenjeni! Preuzmi promijene?",
		bYes : "Da",
		bNo : "Ne",
		bExit : "Odustani",
		msg: {
			required:"Polje je obavezno",
			number:"Molim, unesite ispravan broj",
			minValue:"Vrijednost mora biti veća ili identična ",
			maxValue:"Vrijednost mora biti manja ili identična",
			email: "neispravan e-mail",
			integer: "Molim, unjeti ispravan cijeli broj (integer)",
			date: "Molim, unjeti ispravan datum ",
			url: "neispravan URL. Prefiks je obavezan ('http://' or 'https://')",
			nodefined : " nije definiran!",
			novalue : " zahtjevan podatak je obavezan!",
			customarray : "Opcionalna funkcija trebala bi bili polje (array)!",
			customfcheck : "Custom function should be present in case of custom checking!"
			
		}
	},
	view : {
		caption: "Otvori zapis",
		bClose: "Zatvori"
	},
	del : {
		caption: "Obriši",
		msg: "Obriši označen zapis ili više njih?",
		bSubmit: "Obriši",
		bCancel: "Odustani"
	},
	nav : {
		edittext: "",
		edittitle: "Promijeni obilježeni red",
		addtext: "",
		addtitle: "Dodaj novi red",
		deltext: "",
		deltitle: "Obriši obilježeni red",
		searchtext: "",
		searchtitle: "Potraži zapise",
		refreshtext: "",
		refreshtitle: "Ponovo preuzmi podatke",
		alertcap: "Upozorenje",
		alerttext: "Molim, odaberi red",
		viewtext: "",
		viewtitle: "Pregled obilježenog reda",
		savetext: "",
		savetitle: "Save row",
		canceltext: "",
		canceltitle : "Cancel row editing",
		selectcaption : "Actions..."
	},
	col : {
		caption: "Obilježi kolonu",
		bSubmit: "Uredu",
		bCancel: "Odustani"
	},
	errors : {
		errcap : "Greška",
		nourl : "Nedostaje URL",
		norecords: "Bez zapisa za obradu",
		model : "colNames i colModel imaju različitu duljinu!"
	},
	formatter : {
		integer : {thousandsSeparator: ".", defaultValue: '0'},
		number : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, defaultValue: '0,00'},
		currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
		date : {
			dayNames:   [
				"Ned", "Pon", "Uto", "Sri", "Čet", "Pet", "Sub",
				"Nedjelja", "Ponedjeljak", "Utorak", "Srijeda", "Četvrtak", "Petak", "Subota"
			],
			monthNames: [
				"Sij", "Velj", "Ožu", "Tra", "Svi", "Lip", "Srp", "Kol", "Ruj", "Lis", "Stu", "Pro",
				"Siječanj", "Veljača", "Ožujak", "Travanj", "Svibanj", "Lipanj", "Srpanj", "Kolovoz", "Rujan", "Listopad", "Studeni", "Prosinac"
			],
			AmPm : ["am","pm","AM","PM"],
			S: function (j) {return ''},
			srcformat: 'Y-m-d',
			newformat: 'd.m.Y.',
			parseRe : /[#%\\\/:_;.,\t\s-]/,
			masks : {
				// see http://php.net/manual/en/function.date.php for PHP format used in jqGrid
				// and see http://docs.jquery.com/UI/Datepicker/formatDate
				// and https://github.com/jquery/globalize#dates for alternative formats used frequently
				ISO8601Long: "Y-m-d H:i:s",
				ISO8601Short: "Y-m-d",
				// short date:
				//    d - Day of the month, 2 digits with leading zeros
				//    m - Numeric representation of a month, with leading zeros
				//    Y - A full numeric representation of a year, 4 digits
				ShortDate: "d.m.Y.",	// in jQuery UI Datepicker: "dd.mm.yy."
				// long date:
				//    l - A full textual representation of the day of the week
				//    j - Day of the month without leading zeros
				//    F - A full textual representation of a month
				//    Y - A full numeric representation of a year, 4 digits
				LongDate: "l, j. F Y", // in jQuery UI Datepicker: "dddd, d. MMMM yyyy"
				// long date with long time:
				//    l - A full textual representation of the day of the week
				//    j - Day of the month without leading zeros
				//    F - A full textual representation of a month
				//    Y - A full numeric representation of a year, 4 digits
				//    H - 24-hour format of an hour with leading zeros
				//    i - Minutes with leading zeros
				//    s - Seconds, with leading zeros
				FullDateTime: "l, j. F Y H:i:s", // in jQuery UI Datepicker: "dddd, d. MMMM yyyy HH:mm:ss"
				// month day:
				//    d - Day of the month, 2 digits with leading zeros
				//    F - A full textual representation of a month
				MonthDay: "d F", // in jQuery UI Datepicker: "dd MMMM"
				// short time (without seconds)
				//    H - 24-hour format of an hour with leading zeros
				//    i - Minutes with leading zeros
				ShortTime: "H:i", // in jQuery UI Datepicker: "HH:mm"
				// long time (with seconds)
				//    H - 24-hour format of an hour with leading zeros
				//    i - Minutes with leading zeros
				//    s - Seconds, with leading zeros
				LongTime: "H:i:s", // in jQuery UI Datepicker: "HH:mm:ss"
				SortableDateTime: "Y-m-d\\TH:i:s",
				UniversalSortableDateTime: "Y-m-d H:i:sO",
				// month with year
				//    F - A full textual representation of a month
				//    Y - A full numeric representation of a year, 4 digits
				YearMonth: "F Y" // in jQuery UI Datepicker: "MMMM yyyy"
			},
			reformatAfterEdit : false,
			userLocalTime : false
		},
		baseLinkUrl: '',
		showAction: '',
		target: '',
		checkbox : {disabled:true},
		idName : 'id'
	},
	colmenu : {
		sortasc : "Sort Ascending",
		sortdesc : "Sort Descending",
		columns : "Columns",
		filter : "Filter",
		grouping : "Group By",
		ungrouping : "Ungroup",
		searchTitle : "Get items with value that:",
		freeze : "Freeze",
		unfreeze : "Unfreeze",
		reorder : "Move to reorder",
		hovermenu: "Click for column quick actions"
	}
};
}));
js/i18n/grid.locale-is.js000064400000014360151676727230011115 0ustar00/**
 * jqGrid Icelandic Translation
 * jtm@hi.is Univercity of Iceland
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
**/
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"../grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {

$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("regional")) {
	$.jgrid.regional = [];
}
$.jgrid.regional["is"] = {
	defaults : {
		recordtext: "Skoða {0} - {1} af {2}",
	    emptyrecords: "Engar færslur",
		loadtext: "Hleður...",
		pgtext : "Síða {0} af {1}",
		savetext: "Saving...",
		pgfirst : "First Page",
		pglast : "Last Page",
		pgnext : "Next Page",
		pgprev : "Previous Page",
		pgrecs : "Records per Page",
		showhide: "Toggle Expand Collapse Grid",
		// mobile
		pagerCaption : "Grid::Page Settings",
		pageText : "Page:",
		recordPage : "Records per Page",
		nomorerecs : "No more records...",
		scrollPullup: "Pull up to load more...",
		scrollPulldown : "Pull down to refresh...",
		scrollRefresh : "Release to refresh...",
		valT : "checked",
		valF : "unchecked",
		selectLine : "Select row",
		selectAllLines : "Select all rows"
	},
	search : {
	    caption: "Leita...",
	    Find: "Leita",
	    Reset: "Endursetja",
	    odata: [{ oper:'eq', text:"sama og"},{ oper:'ne', text:"ekki sama og"},{ oper:'lt', text:"minna en"},{ oper:'le', text:"minna eða jafnt og"},{ oper:'gt', text:"stærra en"},{ oper:'ge', text:"stærra eða jafnt og"},{ oper:'bw', text:"byrjar á"},{ oper:'bn', text:"byrjar ekki á"},{ oper:'in', text:"er í"},{ oper:'ni', text:"er ekki í"},{ oper:'ew', text:"endar á"},{ oper:'en', text:"endar ekki á"},{ oper:'cn', text:"inniheldur"},{ oper:'nc', text:"inniheldur ekki"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],
	    groupOps: [	{ op: "AND", text: "allt" },	{ op: "OR",  text: "eða" }	],
		operandTitle : "Click to select search operation.",
		resetTitle : "Reset Search Value",
		addsubgrup : "Add subgroup",
		addrule : "Add rule",
		delgroup : "Delete group",
		delrule : "Delete rule",
		Close : "Close",
		Operand : "Operand : ",
		Operation : "Oper : ",
		filterFor : "filter for"
	},
	edit : {
	    addCaption: "Bæta við færslu",
	    editCaption: "Breyta færslu",
	    bSubmit: "Vista",
	    bCancel: "Hætta við",
		bClose: "Loka",
		saveData: "Gögn hafa breyst! Vista breytingar?",
		bYes : "Já",
		bNo : "Nei",
		bExit : "Hætta við",
	    msg: {
	        required:"Reitur er nauðsynlegur",
	        number:"Vinsamlega settu inn tölu",
	        minValue:"gildi verður að vera meira en eða jafnt og ",
	        maxValue:"gildi verður að vera minna en eða jafnt og ",
	        email: "er ekki löglegt email",
	        integer: "Vinsamlega settu inn tölu",
			date: "Vinsamlega setti inn dagsetningu",
			url: "er ekki löglegt URL. Vantar ('http://' eða 'https://')",
			nodefined : " er ekki skilgreint!",
			novalue : " skilagildi nauðsynlegt!",
			customarray : "Fall skal skila fylki!",
			customfcheck : "Fall skal vera skilgreint!"
		}
	},
	view : {
	    caption: "Skoða færslu",
	    bClose: "Loka"
	},
	del : {
	    caption: "Eyða",
	    msg: "Eyða völdum færslum ?",
	    bSubmit: "Eyða",
	    bCancel: "Hætta við"
	},
	nav : {
		edittext: " ",
	    edittitle: "Breyta færslu",
		addtext:" ",
	    addtitle: "Ný færsla",
	    deltext: " ",
	    deltitle: "Eyða færslu",
	    searchtext: " ",
	    searchtitle: "Leita",
	    refreshtext: "",
	    refreshtitle: "Endurhlaða",
	    alertcap: "Viðvörun",
	    alerttext: "Vinsamlega veldu færslu",
		viewtext: "",
		viewtitle: "Skoða valda færslu",
		savetext: "",
		savetitle: "Save row",
		canceltext: "",
		canceltitle : "Cancel row editing",
		selectcaption : "Actions..."
	},
	col : {
	    caption: "Sýna / fela dálka",
	    bSubmit: "Vista",
	    bCancel: "Hætta við"	
	},
	errors : {
		errcap : "Villa",
		nourl : "Vantar slóð",
		norecords: "Engar færslur valdar",
	    model : "Lengd colNames <> colModel!"
	},
	formatter : {
		integer : {thousandsSeparator: " ", defaultValue: '0'},
		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
		date : {
			dayNames:   [
				"Sun", "Mán", "Þri", "Mið", "Fim", "Fös", "Lau",
				"Sunnudagur", "Mánudagur", "Þriðjudagur", "Miðvikudagur", "Fimmtudagur", "Föstudagur", "Laugardagur"
			],
			monthNames: [
				"Jan", "Feb", "Mar", "Apr", "Maí", "Jún", "Júl", "Ágú", "Sep", "Oct", "Nóv", "Des",
				"Janúar", "Febrúar", "Mars", "Apríl", "Maí", "Júný", "Júlý", "Ágúst", "September", "Október", "Nóvember", "Desember"
			],
			AmPm : ["am","pm","AM","PM"],
			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
			srcformat: 'Y-m-d',
			newformat: 'd/m/Y',
			parseRe : /[#%\\\/:_;.,\t\s-]/,
			masks : {
	            ISO8601Long:"Y-m-d H:i:s",
	            ISO8601Short:"Y-m-d",
	            ShortDate: "n/j/Y",
	            LongDate: "l, F d, Y",
	            FullDateTime: "l, F d, Y g:i:s A",
	            MonthDay: "F d",
	            ShortTime: "g:i A",
	            LongTime: "g:i:s A",
	            SortableDateTime: "Y-m-d\\TH:i:s",
	            UniversalSortableDateTime: "Y-m-d H:i:sO",
	            YearMonth: "F, Y"
	        },
	        reformatAfterEdit : false,
			userLocalTime : false
		},
		baseLinkUrl: '',
		showAction: '',
	    target: '',
	    checkbox : {disabled:true},
		idName : 'id'
	},
	colmenu : {
		sortasc : "Sort Ascending",
		sortdesc : "Sort Descending",
		columns : "Columns",
		filter : "Filter",
		grouping : "Group By",
		ungrouping : "Ungroup",
		searchTitle : "Get items with value that:",
		freeze : "Freeze",
		unfreeze : "Unfreeze",
		reorder : "Move to reorder",
		hovermenu: "Click for column quick actions"
	}
};
}));
js/i18n/grid.locale-fa.js000064400000020550151676727230011066 0ustar00/**
 * jqGrid Persian Translation
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
**/
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"../grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {

$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("regional")) {
	$.jgrid.regional = [];
}
$.jgrid.regional["fa"] = {
        defaults: {
            recordtext: "نمابش {0} - {1} از {2}",
            emptyrecords: "رکوردی یافت نشد",
            loadtext: "بارگزاري...",
			savetext: "Saving...",
			pgtext: "صفحه {0} از {1}",
			pgfirst : "First Page",
			pglast : "Last Page",
			pgnext : "Next Page",
			pgprev : "Previous Page",
			pgrecs : "Records per Page",
			showhide: "Toggle Expand Collapse Grid",
		// mobile
		pagerCaption : "Grid::Page Settings",
		pageText : "Page:",
		recordPage : "Records per Page",
		nomorerecs : "No more records...",
		scrollPullup: "Pull up to load more...",
		scrollPulldown : "Pull down to refresh...",
		scrollRefresh : "Release to refresh...",
		valT : "checked",
		valF : "unchecked",
		selectLine : "Select row",
		selectAllLines : "Select all rows"
        },
        search: {
            caption: "جستجو...",
            Find: "يافته ها",
            Reset: "از نو",
            odata: [{ oper:'eq', text:"برابر"},{ oper:'ne', text:"نا برابر"},{ oper:'lt', text:"به"},{ oper:'le', text:"کوچکتر"},{ oper:'gt', text:"از"},{ oper:'ge', text:"بزرگتر"},{ oper:'bw', text:"شروع با"},{ oper:'bn', text:"شروع نشود با"},{ oper:'in', text:"نباشد"},{ oper:'ni', text:"عضو این نباشد"},{ oper:'ew', text:"اتمام با"},{ oper:'en', text:"تمام نشود با"},{ oper:'cn', text:"حاوی"},{ oper:'nc', text:"نباشد حاوی"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],
            groupOps: [{
                op: "AND",
                text: "کل"
            },
            {
                op: "OR",
                text: "مجموع"
            }],
			operandTitle : "Click to select search operation.",
			resetTitle : "Reset Search Value",
			addsubgrup : "Add subgroup",
			addrule : "Add rule",
			delgroup : "Delete group",
			delrule : "Delete rule",
			Close : "Close",
			Operand : "Operand : ",
			Operation : "Oper : ",
			filterFor : "filter for"
        },
        edit: {
            addCaption: "اضافه کردن رکورد",
            editCaption: "ويرايش رکورد",
            bSubmit: "ثبت",
            bCancel: "انصراف",
            bClose: "بستن",
            saveData: "دیتا تعییر کرد! ذخیره شود؟",
            bYes: "بله",
            bNo: "خیر",
            bExit: "انصراف",
            msg: {
                required: "فيلدها بايد ختما پر شوند",
                number: "لطفا عدد وعتبر وارد کنيد",
                minValue: "مقدار وارد شده بايد بزرگتر يا مساوي با",
                maxValue: "مقدار وارد شده بايد کوچکتر يا مساوي",
                email: "پست الکترونيک وارد شده معتبر نيست",
                integer: "لطفا يک عدد صحيح وارد کنيد",
                date: "لطفا يک تاريخ معتبر وارد کنيد",
                url: "این آدرس صحیح نمی باشد. پیشوند نیاز است ('http://' یا 'https://')",
                nodefined: " تعریف نشده!",
                novalue: " مقدار برگشتی اجباری است!",
                customarray: "تابع شما باید مقدار آرایه داشته باشد!",
                customfcheck: "برای داشتن متد دلخواه شما باید سطون با چکینگ دلخواه داشته باشید!"
            }
        },
        view: {
            caption: "نمایش رکورد",
            bClose: "بستن"
        },
        del: {
            caption: "حذف",
            msg: "از حذف گزينه هاي انتخاب شده مطمئن هستيد؟",
            bSubmit: "حذف",
            bCancel: "ابطال"
        },
        nav: {
            edittext: " ",
            edittitle: "ويرايش رديف هاي انتخاب شده",
            addtext: " ",
            addtitle: "افزودن رديف جديد",
            deltext: " ",
            deltitle: "حذف ردبف هاي انتیاب شده",
            searchtext: " ",
            searchtitle: "جستجوي رديف",
            refreshtext: "",
            refreshtitle: "بازيابي مجدد صفحه",
            alertcap: "اخطار",
            alerttext: "لطفا يک رديف انتخاب کنيد",
            viewtext: "",
            viewtitle: "نمایش رکورد های انتخاب شده",
			savetext: "",
			savetitle: "Save row",
			canceltext: "",
			canceltitle : "Cancel row editing",
			selectcaption : "Actions..."
        },
        col: {
            caption: "نمايش/عدم نمايش ستون",
            bSubmit: "ثبت",
            bCancel: "انصراف"
        },
        errors: {
            errcap: "خطا",
            nourl: "هيچ آدرسي تنظيم نشده است",
            norecords: "هيچ رکوردي براي پردازش موجود نيست",
            model: "طول نام ستون ها محالف ستون هاي مدل مي باشد!"
        },
        formatter: {
            integer: {
                thousandsSeparator: " ",
                defaultValue: "0"
            },
            number: {
                decimalSeparator: ".",
                thousandsSeparator: " ",
                decimalPlaces: 2,
                defaultValue: "0.00"
            },
            currency: {
                decimalSeparator: ".",
                thousandsSeparator: " ",
                decimalPlaces: 2,
                prefix: "",
                suffix: "",
                defaultValue: "0"
            },
            date: {
                dayNames: ["يک", "دو", "سه", "چهار", "پنج", "جمع", "شنب", "يکشنبه", "دوشنبه", "سه شنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه"],
                monthNames: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "ژانويه", "فوريه", "مارس", "آوريل", "مه", "ژوئن", "ژوئيه", "اوت", "سپتامبر", "اکتبر", "نوامبر", "December"],
                AmPm: ["ب.ظ", "ب.ظ", "ق.ظ", "ق.ظ"],
                S: function (b) {
                    return b < 11 || b > 13 ? ["st", "nd", "rd", "th"][Math.min((b - 1) % 10, 3)] : "th"
                },
                srcformat: "Y-m-d",
                newformat: "d/m/Y",
				parseRe : /[#%\\\/:_;.,\t\s-]/,
                masks: {
                    ISO8601Long: "Y-m-d H:i:s",
                    ISO8601Short: "Y-m-d",
                    ShortDate: "n/j/Y",
                    LongDate: "l, F d, Y",
                    FullDateTime: "l, F d, Y g:i:s A",
                    MonthDay: "F d",
                    ShortTime: "g:i A",
                    LongTime: "g:i:s A",
                    SortableDateTime: "Y-m-d\\TH:i:s",
                    UniversalSortableDateTime: "Y-m-d H:i:sO",
                    YearMonth: "F, Y"
                },
                reformatAfterEdit: false,
				userLocalTime : false
            },
            baseLinkUrl: "",
            showAction: "نمايش",
            target: "",
            checkbox: {
                disabled: true
            },
            idName: "id"
        },
	colmenu : {
		sortasc : "Sort Ascending",
		sortdesc : "Sort Descending",
		columns : "Columns",
		filter : "Filter",
		grouping : "Group By",
		ungrouping : "Ungroup",
		searchTitle : "Get items with value that:",
		freeze : "Freeze",
		unfreeze : "Unfreeze",
		reorder : "Move to reorder",
		hovermenu: "Click for column quick actions"
	}
    };
}));js/i18n/grid.locale-ar.js000064400000015161151676727230011104 0ustar00/**
 * jqGrid Arabic Translation
 * 
 * http://trirand.com/blog/ 
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
**/
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"../grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {

$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("regional")) {
	$.jgrid.regional = [];
}
$.jgrid.regional["ar"] = {
	defaults : {
		recordtext: "تسجيل {0} - {1} على {2}",
		emptyrecords: "لا يوجد تسجيل",
		loadtext: "تحميل...",
		savetext: "Saving...",
		pgtext : "صفحة {0} على {1}",
		pgfirst : "First Page",
		pglast : "Last Page",
		pgnext : "Next Page",
		pgprev : "Previous Page",
		pgrecs : "Records per Page",
		showhide: "Toggle Expand Collapse Grid",
		// mobile
		pagerCaption : "Grid::Page Settings",
		pageText : "Page:",
		recordPage : "Records per Page",
		nomorerecs : "No more records...",
		scrollPullup: "Pull up to load more...",
		scrollPulldown : "Pull down to refresh...",
		scrollRefresh : "Release to refresh...",
		valT : "checked",
		valF : "unchecked",
		selectLine : "Select row",
		selectAllLines : "Select all rows"
	},
	search : {
		caption: "بحث...",
		Find: "بحث",
		Reset: "إلغاء",
		odata: [{ oper:'eq', text:"يساوي"},{ oper:'ne', text:"يختلف"},{ oper:'lt', text:"أقل"},{ oper:'le', text:"أقل أو يساوي"},{ oper:'gt', text:"أكبر"},{ oper:'ge', text:"أكبر أو يساوي"},{ oper:'bw', text:"يبدأ بـ"},{ oper:'bn', text:"لا يبدأ بـ"},{ oper:'in', text:"est dans"},{ oper:'ni', text:"n'est pas dans"},{ oper:'ew', text:"ينته بـ"},{ oper:'en', text:"لا ينته بـ"},{ oper:'cn', text:"يحتوي"},{ oper:'nc', text:"لا يحتوي"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],
		groupOps: [	{ op: "مع", text: "الكل" },	{ op: "أو",  text: "لا أحد" }],
		operandTitle : "Click to select search operation.",
		resetTitle : "Reset Search Value",
		addsubgrup : "Add subgroup",
		addrule : "Add rule",
		delgroup : "Delete group",
		delrule : "Delete rule",
		Close : "Close",
		Operand : "Operand : ",
		Operation : "Oper : ",
		filterFor : "filter for"
},
	edit : {
		addCaption: "اضافة",
		editCaption: "تحديث",
		bSubmit: "تثبيث",
		bCancel: "إلغاء",
		bClose: "غلق",
		saveData: "تغيرت المعطيات هل تريد التسجيل ?",
		bYes: "نعم",
		bNo: "لا",
		bExit: "إلغاء",
		msg: {
			required: "خانة إجبارية",
			number: "سجل رقم صحيح",
			minValue: "يجب أن تكون القيمة أكبر أو تساوي 0",
			maxValue: "يجب أن تكون القيمة أقل أو تساوي 0",
			email: "بريد غير صحيح",
			integer: "سجل عدد طبييعي صحيح",
			url: "ليس عنوانا صحيحا. البداية الصحيحة ('http://' أو 'https://')",
			nodefined : " ليس محدد!",
			novalue : " قيمة الرجوع مطلوبة!",
			customarray : "يجب على الدالة الشخصية أن تنتج جدولا",
			customfcheck : "الدالة الشخصية مطلوبة في حالة التحقق الشخصي"
		}
	},
	view : {
		caption: "رأيت التسجيلات",
		bClose: "غلق"
	},
	del : {
		caption: "حذف",
		msg: "حذف التسجيلات المختارة ?",
		bSubmit: "حذف",
		bCancel: "إلغاء"
	},
	nav : {
		edittext: " ",
		edittitle: "تغيير التسجيل المختار",
		addtext:" ",
		addtitle: "إضافة تسجيل",
		deltext: " ",
		deltitle: "حذف التسجيل المختار",
		searchtext: " ",
		searchtitle: "بحث عن تسجيل",
		refreshtext: "",
		refreshtitle: "تحديث الجدول",
		alertcap: "تحذير",
		alerttext: "يرجى إختيار السطر",
		viewtext: "",
		viewtitle: "إظهار السطر المختار",
		savetext: "",
		savetitle: "Save row",
		canceltext: "",
		canceltitle : "Cancel row editing",
		selectcaption : "Actions..."
	},
	col : {
		caption: "إظهار/إخفاء الأعمدة",
		bSubmit: "تثبيث",
		bCancel: "إلغاء"
	},
	errors : {
		errcap : "خطأ",
		nourl : "لا يوجد عنوان محدد",
		norecords: "لا يوجد تسجيل للمعالجة",
		model : "عدد العناوين (colNames) <> عدد التسجيلات (colModel)!"
	},
	formatter : {
		integer : {thousandsSeparator: " ", defaultValue: '0'},
		number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'},
		currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
		date : {
			dayNames:   [
				"الأحد", "الإثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت",
				"الأحد", "الإثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"
			],
			monthNames: [
				"جانفي", "فيفري", "مارس", "أفريل", "ماي", "جوان", "جويلية", "أوت", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر",
				"جانفي", "فيفري", "مارس", "أفريل", "ماي", "جوان", "جويلية", "أوت", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"
			],
			AmPm : ["صباحا","مساءا","صباحا","مساءا"],
			S: function (j) {return j == 1 ? 'er' : 'e';},
			srcformat: 'Y-m-d',
			newformat: 'd/m/Y',
			parseRe : /[#%\\\/:_;.,\t\s-]/,
			masks : {
				ISO8601Long:"Y-m-d H:i:s",
				ISO8601Short:"Y-m-d",
				ShortDate: "n/j/Y",
				LongDate: "l, F d, Y",
				FullDateTime: "l, F d, Y g:i:s A",
				MonthDay: "F d",
				ShortTime: "g:i A",
				LongTime: "g:i:s A",
				SortableDateTime: "Y-m-d\\TH:i:s",
				UniversalSortableDateTime: "Y-m-d H:i:sO",
				YearMonth: "F, Y"
			},
			reformatAfterEdit : false,
			userLocalTime : false
		},
		baseLinkUrl: '',
		showAction: '',
		target: '',
		checkbox : {disabled:true},
		idName : 'id'
	},
	colmenu : {
		sortasc : "Sort Ascending",
		sortdesc : "Sort Descending",
		columns : "Columns",
		filter : "Filter",
		grouping : "Group By",
		ungrouping : "Ungroup",
		searchTitle : "Get items with value that:",
		freeze : "Freeze",
		unfreeze : "Unfreeze",
		reorder : "Move to reorder",
		hovermenu: "Click for column quick actions"
	}
};
}));
js/i18n/grid.locale-es.js000064400000015171151676727230011112 0ustar00/**
 * jqGrid Spanish Translation
 * Traduccion jqGrid en Español por Yamil Bracho
 * Traduccion corregida y ampliada por Faserline, S.L. 
 * http://www.faserline.com
 * Traduccion corregida y ampliada por Fernán Castro Asensio
 * Traducción corregida y ampliada por Luis Sánchez
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
**/
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"../grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {

$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("regional")) {
	$.jgrid.regional = [];
}
$.jgrid.regional["es"] = {
	defaults : {
		recordtext: "Mostrando {0} - {1} de {2}",
	    emptyrecords: "Sin registros que mostrar",
		loadtext: "Cargando...",
		savetext: "Guardando...",
		pgtext : "Página {0} de {1}",
		pgfirst : "Primera Página",
		pglast : "Última Página",
		pgnext : "Página Siguiente",
		pgprev : "Página Anterior",
		pgrecs : "Registros por página",
		showhide: "Alternar Contraer Expandir Grid",
		// mobile
		pagerCaption : "Grid::Configurar página",
		pageText : "Página:",
		recordPage : "Registros por página",
		nomorerecs : "No más registros...",
		scrollPullup: "Arrastrar arriba para cargar más...",
		scrollPulldown : "Arrastrar arriba para refrescar...",
		scrollRefresh : "Soltar para refrescar...",
		valT : "marcada",
		valF : "sin marcar",
		selectLine : "Seleccionar fila",
		selectAllLines : "Seleccionar todas las filas"		
	},
	search : {
	    caption: "Búsqueda...",
	    Find: "Buscar",
	    Reset: "Limpiar",
	    odata: [{ oper:'eq', text:"igual "},{ oper:'ne', text:"no igual a"},{ oper:'lt', text:"menor que"},{ oper:'le', text:"menor o igual que"},{ oper:'gt', text:"mayor que"},{ oper:'ge', text:"mayor o igual a"},{ oper:'bw', text:"empiece por"},{ oper:'bn', text:"no empiece por"},{ oper:'in', text:"está en"},{ oper:'ni', text:"no está en"},{ oper:'ew', text:"termina por"},{ oper:'en', text:"no termina por"},{ oper:'cn', text:"contiene"},{ oper:'nc', text:"no contiene"},{ oper:'nu', text:'es nulo'},{ oper:'nn', text:'no es nulo'}, {oper:'bt', text:'entre'}],
	    groupOps: [	{ op: "AND", text: "todo" },	{ op: "OR",  text: "cualquier" }	],
		operandTitle : "Clic para seleccionar la operación de búsqueda.",
		resetTitle : "Reiniciar valores de búsqueda",
		addsubgrup : "Agregar subgrupo",
		addrule : "Agregar regla",
		delgroup : "Borrar grupo",
		delrule : "Borrar regla",
		Close : "Cerrar",
		Operand : "Operador : ",
		Operation : "Oper : ",
		filterFor : "filtro para"
	},
	edit : {
	    addCaption: "Agregar registro",
	    editCaption: "Modificar registro",
	    bSubmit: "Guardar",
	    bCancel: "Cancelar",
		bClose: "Cerrar",
		saveData: "Se han modificado los datos, ¿guardar cambios?",
		bYes : "Si",
		bNo : "No",
		bExit : "Cancelar",
	    msg: {
	        required:"Campo obligatorio",
	        number:"Introduzca un número",
	        minValue:"El valor debe ser mayor o igual a ",
	        maxValue:"El valor debe ser menor o igual a ",
	        email: "no es una dirección de correo válida",
	        integer: "Introduzca un valor entero",
		date: "Introduzca una fecha correcta ",
		url: "no es una URL válida. Prefijo requerido ('http://' or 'https://')",
		nodefined : " no está definido.",
		novalue : " valor de retorno es requerido.",
		customarray : "La función personalizada debe devolver un array.",
		customfcheck : "La función personalizada debe estar presente en el caso de validación personalizada."
		}
	},
	view : {
	    caption: "Consultar registro",
	    bClose: "Cerrar"
	},
	del : {
	    caption: "Eliminar",
	    msg: "¿Desea eliminar los registros seleccionados?",
	    bSubmit: "Eliminar",
	    bCancel: "Cancelar"
	},
	nav : {
	    edittext: " ",
	    edittitle: "Modificar fila seleccionada",
	    addtext:" ",
	    addtitle: "Agregar nueva fila",
	    deltext: " ",
	    deltitle: "Eliminar fila seleccionada",
	    searchtext: " ",
	    searchtitle: "Buscar información",
	    refreshtext: "",
	    refreshtitle: "Recargar datos",
	    alertcap: "Aviso",
	    alerttext: "Seleccione una fila",
		viewtext: "",
		viewtitle: "Ver fila seleccionada",
		savetext: "",
		savetitle: "Guardar fila",
		canceltext: "",
		canceltitle : "Cancelar edición de fila",
		selectcaption : "Acciones..."
	},
	col : {
	    caption: "Mostrar/ocultar columnas",
	    bSubmit: "Enviar",
	    bCancel: "Cancelar"	
	},
	errors : {
		errcap : "Error",
		nourl : "No se ha especificado una URL",
		norecords: "No hay datos para procesar",
	    model : "Las columnas de nombres son diferentes de las columnas del modelo"
	},
	formatter : {
		integer : {thousandsSeparator: ".", defaultValue: '0'},
		number : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, defaultValue: '0,00'},
		currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
		date : {
			dayNames:   [
				"Do", "Lu", "Ma", "Mi", "Ju", "Vi", "Sa",
				"Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"
			],
			monthNames: [
				"Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic",
				"Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"
			],
			AmPm : ["am","pm","AM","PM"],
			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
			srcformat: 'Y-m-d',
			newformat: 'd-m-Y',
			parseRe : /[#%\\\/:_;.,\t\s-]/,
			masks : {
	            ISO8601Long:"Y-m-d H:i:s",
	            ISO8601Short:"Y-m-d",
	            ShortDate: "n/j/Y",
	            LongDate: "l, F d, Y",
	            FullDateTime: "l, F d, Y g:i:s A",
	            MonthDay: "F d",
	            ShortTime: "g:i A",
	            LongTime: "g:i:s A",
	            SortableDateTime: "Y-m-d\\TH:i:s",
	            UniversalSortableDateTime: "Y-m-d H:i:sO",
	            YearMonth: "F, Y"
	        },
	        reformatAfterEdit : false,
			userLocalTime : false
		},
		baseLinkUrl: '',
		showAction: '',
	    target: '',
	    checkbox : {disabled:true},
		idName : 'id'
	},
	colmenu : {
		sortasc : "Orden Ascendente",
		sortdesc : "Orden Descendente",
		columns : "Columnas",
		filter : "Filtrar",
		grouping : "Agrupar por",
		ungrouping : "Desagrupar",
		searchTitle : "Obtener elementos con un valor que:",
		freeze : "Inmovilizar",
		unfreeze : "Movilizar",
		reorder : "Mover para reordenar",
		hovermenu: "Click para accion rápida de columna"
	}
};
}));
js/i18n/grid.locale-fi.js000064400000014737151676727230011110 0ustar00/**
 * jqGrid (fi) Finnish Translation
 * Jukka Inkeri  awot.fi  2010-05-19
 * Alex Grönholm  alex.gronholm@nextday.fi  2011-05-18
 * http://awot.fi
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
**/
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"../grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {

$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("regional")) {
	$.jgrid.regional = [];
}
$.jgrid.regional["fi"] = {
	defaults: {
		recordtext: "Rivit {0} - {1} / {2}",
	    emptyrecords: "Ei n&auml;ytett&auml;vi&auml;",
		loadtext: "Haetaan...",
		savetext: "Saving...",
		pgtext: "Sivu {0} / {1}",		
		pgfirst : "First Page",
		pglast : "Last Page",
		pgnext : "Next Page",
		pgprev : "Previous Page",
		pgrecs : "Records per Page",
		showhide: "Toggle Expand Collapse Grid",
		// mobile
		pagerCaption : "Grid::Page Settings",
		pageText : "Page:",
		recordPage : "Records per Page",
		nomorerecs : "No more records...",
		scrollPullup: "Pull up to load more...",
		scrollPulldown : "Pull down to refresh...",
		scrollRefresh : "Release to refresh...",
		valT : "checked",
		valF : "unchecked",
		selectLine : "Select row",
		selectAllLines : "Select all rows"
	},
	search: {
	    caption: "Etsi...",
	    Find: "Etsi",
	    Reset: "Tyhjenn&auml;",
	    odata: [{ oper:'eq', text:"on"},{ oper:'ne', text:"ei ole"},{ oper:'lt', text:"pienempi"},{ oper:'le', text:"pienempi tai yht&auml;suuri"},{ oper:'gt', text:"suurempi"},{ oper:'ge', text:"suurempi tai yht&auml;suuri"},{ oper:'bw', text:"alkaa"},{ oper:'bn', text:"ei ala"},{ oper:'in', text:"joukossa"},{ oper:'ni', text:"ei joukossa"},{ oper:'ew', text:"loppuu"},{ oper:'en', text:"ei lopu"},{ oper:'cn', text:"sis&auml;lt&auml;&auml;"},{ oper:'nc', text:"ei sis&auml;ll&auml;"},{ oper:'nu', text:"on tyhj&auml;"},{ oper:'nn', text:"ei ole tyhj&auml;"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],
	    groupOps: [	{ op: "AND", text: "kaikki" }, { op: "OR", text: "mik&auml; tahansa" }	],
		operandTitle : "Click to select search operation.",
		resetTitle : "Reset Search Value",
		addsubgrup : "Add subgroup",
		addrule : "Add rule",
		delgroup : "Delete group",
		delrule : "Delete rule",
		Close : "Close",
		Operand : "Operand : ",
		Operation : "Oper : ",
		filterFor : "filter for"
	},
	edit: {
	    addCaption: "Uusi rivi",
	    editCaption: "Muokkaa rivi&auml;",
	    bSubmit: "OK",
	    bCancel: "Peru",
		bClose: "Sulje",
		saveData: "Tietoja muutettu! Tallennetaanko?",
		bYes: "Kyll&auml;",
		bNo: "Ei",
		bExit: "Peru",
	    msg: {
	        required: "pakollinen",
	        number: "Anna kelvollinen nro",
	        minValue: "arvon oltava suurempi tai yht&auml;suuri kuin ",
	        maxValue: "arvon oltava pienempi tai yht&auml;suuri kuin ",
	        email: "ei ole kelvollinen s&auml;postiosoite",
	        integer: "Anna kelvollinen kokonaisluku",
			date: "Anna kelvollinen pvm",
			url: "Ei ole kelvollinen linkki(URL). Alku oltava ('http://' tai 'https://')",
			nodefined: " ei ole m&auml;&auml;ritelty!",
			novalue: " paluuarvo vaaditaan!",
			customarray: "Oman funktion tulee palauttaa jono!",
			customfcheck: "Oma funktio on m&auml;&auml;ritelt&auml;v&auml; r&auml;&auml;t&auml;l&ouml;ity&auml; tarkastusta varten!"
		}
	},
	view: {
	    caption: "N&auml;yt&auml; rivi",
	    bClose: "Sulje"
	},
	del: {
	    caption: "Poista",
	    msg: "Poista valitut rivit?",
	    bSubmit: "Poista",
	    bCancel: "Peru"
	},
	nav: {
		edittext: "",
	    edittitle: "Muokkaa valittua rivi&auml;",
		addtext: "",
	    addtitle: "Uusi rivi",
	    deltext: "",
	    deltitle: "Poista valittu rivi",
	    searchtext: "",
	    searchtitle: "Etsi tietoja",
	    refreshtext: "",
	    refreshtitle: "Lataa uudelleen",
	    alertcap: "Varoitus",
	    alerttext: "Valitse rivi",
		viewtext: "",
		viewtitle: "N&auml;yta valitut rivit",
		savetext: "",
		savetitle: "Save row",
		canceltext: "",
		canceltitle : "Cancel row editing",
		selectcaption : "Actions..."
	},
	col: {
	    caption: "Valitse sarakkeet",
	    bSubmit: "OK",
	    bCancel: "Peru"	
	},
	errors : {
		errcap: "Virhe",
		nourl: "URL on asettamatta",
		norecords: "Ei muokattavia tietoja",
	    model: "Pituus colNames <> colModel!"
	},
	formatter: {
		integer: {thousandsSeparator: "", defaultValue: '0'},
		number: {decimalSeparator:",", thousandsSeparator: "", decimalPlaces: 2, defaultValue: '0,00'},
		currency: {decimalSeparator:",", thousandsSeparator: "", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
		date: {
			dayNames:   [
				"Su", "Ma", "Ti", "Ke", "To", "Pe", "La",
				"Sunnuntai", "Maanantai", "Tiistai", "Keskiviikko", "Torstai", "Perjantai", "Lauantai"
			],
			monthNames: [
				"Tam", "Hel", "Maa", "Huh", "Tou", "Kes", "Hei", "Elo", "Syy", "Lok", "Mar", "Jou",
				"Tammikuu", "Helmikuu", "Maaliskuu", "Huhtikuu", "Toukokuu", "Kes&auml;kuu", "Hein&auml;kuu", "Elokuu", "Syyskuu", "Lokakuu", "Marraskuu", "Joulukuu"
			],
			AmPm: ["am","pm","AM","PM"],
			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
			srcformat: 'Y-m-d',
			newformat: 'd.m.Y',
			parseRe : /[#%\\\/:_;.,\t\s-]/,
			masks: {
	            ISO8601Long:"Y-m-d H:i:s",
	            ISO8601Short:"Y-m-d",
	            ShortDate: "d.m.Y",
	            LongDate: "l, F d, Y",
	            FullDateTime: "l, F d, Y g:i:s A",
	            MonthDay: "F d",
	            ShortTime: "g:i A",
	            LongTime: "g:i:s A",
	            SortableDateTime: "Y-m-d\\TH:i:s",
	            UniversalSortableDateTime: "Y-m-d H:i:sO",
	            YearMonth: "F, Y"
	        },
	        reformatAfterEdit : false,
			userLocalTime : false
		},
		baseLinkUrl: '',
		showAction: '',
	    target: '',
	    checkbox: {disabled:true},
		idName: 'id'
	},
	colmenu : {
		sortasc : "Sort Ascending",
		sortdesc : "Sort Descending",
		columns : "Columns",
		filter : "Filter",
		grouping : "Group By",
		ungrouping : "Ungroup",
		searchTitle : "Get items with value that:",
		freeze : "Freeze",
		unfreeze : "Unfreeze",
		reorder : "Move to reorder",
		hovermenu: "Click for column quick actions"
	}
};
// FI
}));
js/i18n/grid.locale-it.js000064400000013474151676727230011123 0ustar00/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"../grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {

$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("regional")) {
	$.jgrid.regional = [];
}
$.jgrid.regional["it"] = {
	defaults : {
		recordtext: "Mostra {0} - {1} di {2}",
		emptyrecords: "Non ci sono record da mostrare",
		loadtext: "Caricamento...",
		savetext: "Salvataggio...",
		pgtext : "Pagina {0} di {1}",
		pgfirst : "Prima Pagina",
		pglast : "Ultima Pagina",
		pgnext : "Pagina Successiva",
		pgprev : "Pagina Precedente",
		pgrecs : "Records per Pagina",
		showhide: "Espandi o collassa griglia",
		// mobile
		pagerCaption : "Griglia::Impostazioni della pagina",
		pageText : "Pagina:",
		recordPage : "Records per Pagina",
		nomorerecs : "Non ci sono altri record...",
		scrollPullup: "Trascina verso l'alto per altri...",
		scrollPulldown : "Trascina verso il basso per aggiornare...",
		scrollRefresh : "Rilascia per aggiornare...",
		valT : "checked",
		valF : "unchecked",
		selectLine : "Select row",
		selectAllLines : "Select all rows"
	},
	search : {
		caption: "Cerca...",
		Find: "Trova",
		Reset: "Reset",
		odata: [{ oper:'eq', text:'uguale'},{ oper:'ne', text:'diverso'},{ oper:'lt', text:'minore'},{ oper:'le', text:'minore o uguale'},{ oper:'gt', text:'maggiore'},{ oper:'ge', text:'maggiore o uguale'},{ oper:'bw', text:'inizia per'},{ oper:'bn', text:'non inizia per'},{ oper:'in', text:'è in'},{ oper:'ni', text:'non è in'},{ oper:'ew', text:'finisce per'},{ oper:'en', text:'non finisce per'},{ oper:'cn', text:'contiene'},{ oper:'nc', text:'non contiene'},{ oper:'nu', text:'è null'},{ oper:'nn', text:'non è null'}, {oper:'bt', text:'between'}],
		groupOps: [{ op: "AND", text: "tutti" },{ op: "OR",  text: "ciascuno" }],
		operandTitle : "Clicca sull'opzione di ricerca scelta.",
		resetTitle : "Resetta valori di ricerca",
		addsubgrup : "Aggiungi Sottogruppo",
		addrule : "Aggiungi Regola",
		delgroup : "Cancella Sottogruppo",
		delrule : "Cancella Regola",
		Close : "Close",
		Operand : "Operand : ",
		Operation : "Oper : ",
		filterFor : "filter for"
	},
	edit : {
		addCaption: "Aggiungi Record",
		editCaption: "Modifica Record",
		bSubmit: "Invia",
		bCancel: "Annulla",
		bClose: "Chiudi",
		saveData: "I dati sono stati modificati! Salvare le modifiche?",
		bYes : "Si",
		bNo : "No",
		bExit : "Annulla",
		msg: {
			required:"Campo obbligatorio",
			number:"Per favore, inserisci un numero valido",
			minValue:"il valore deve essere maggiore o uguale a ",
			maxValue:"il valore deve essere minore o uguale a ",
			email: "non è una e-mail valida",
			integer: "Per favore, inserisci un intero valido",
			date: "Per favore, inserisci una data valida",
			url: "non è un URL valido. Prefissi richiesti ('http://' o 'https://')",
			nodefined : " non è definito!",
			novalue : " valore di ritorno richiesto!",
			customarray : "La funzione personalizzata deve restituire un array!",
			customfcheck : "La funzione personalizzata deve essere presente in caso di controlli personalizzati!"
			
		}
	},
	view : {
		caption: "Visualizza Record",
		bClose: "Chiudi"
	},
	del : {
		caption: "Cancella",
		msg: "Cancellare i record selezionati?",
		bSubmit: "Cancella",
		bCancel: "Annulla"
	},
	nav : {
		edittext: "",
		edittitle: "Modifica riga selezionata",
		addtext:"",
		addtitle: "Aggiungi riga",
		deltext: "",
		deltitle: "Cancella riga",
		searchtext: "",
		searchtitle: "Trova record",
		refreshtext: "",
		refreshtitle: "Ricarica tabella",
		alertcap: "Attenzione",
		alerttext: "Per favore, seleziona un record",
		viewtext: "",
		viewtitle: "Visualizza riga selezionata",
		savetext: "",
		savetitle: "Salva riga",
		canceltext: "",
		canceltitle : "Annulla modifica riga",
		selectcaption : "Azioni..."
	},
	col : {
		caption: "Seleziona colonne",
		bSubmit: "Ok",
		bCancel: "Annulla"
	},
	errors : {
		errcap : "Errore",
		nourl : "Nessun url impostato",
		norecords: "Non ci sono record da elaborare",
		model : "Lunghezza dei colNames <> colModel!"
	},
	formatter:{
		integer:{ 
			thousandsSeparator:".",
			defaultValue:"0"
		},
		number:{
			decimalSeparator:",",
			thousandsSeparator:".",
			decimalPlaces:2,
			defaultValue:"0,00"
		},
		currency:{
			decimalSeparator:",",
			thousandsSeparator:".",
			decimalPlaces:2,
			prefix:"€ ",
			suffix:"",
			defaultValue:"0,00"
		},
		date:{
			dayNames:["Dom","Lun","Mar","Mer","Gio","Ven","Sab","Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"],
			monthNames:["Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic","Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],
			AmPm:["am","pm","AM","PM"],
			S:function(b){return b<11||b>13?["st","nd","rd","th"][Math.min((b-1)%10,3)]:"th"},
			srcformat:"Y-m-d",
			newformat:"d/m/Y",
			parseRe : /[#%\\\/:_;.,\t\s-]/,
			masks:{
				ISO8601Long:"Y-m-d H:i:s",
				ISO8601Short:"Y-m-d", 
				ShortDate:"d/m/Y", 
				LongDate:"l d F Y",
				FullDateTime:"l d F Y G:i:s",
				MonthDay:"F d",
				ShortTime:"H:i",
				LongTime:"H:i:s",
				SortableDateTime:"Y-m-d\\TH:i:s",
				UniversalSortableDateTime:"Y-m-d H:i:sO",
				YearMonth:"F, Y"
			},
			reformatAfterEdit:false,
			userLocalTime : false
		},
		baseLinkUrl:"",
		showAction:"",
		target:"",
		checkbox:{ disabled:true},
		idName:"id"
	},
	colmenu : {
		sortasc : "Ordinamento Ascendente",
		sortdesc : "Ordinamento Discendente",
		columns : "Colonne",
		filter : "Filtro",
		grouping : "Raggruppa",
		ungrouping : "Separa",
		searchTitle : "Cerca righe con i valori:",
		freeze : "Blocca",
		unfreeze : "Sblocca",
		reorder : "Sposta per riordinare",
		hovermenu: "Click for column quick actions"
	}
};
}));
js/i18n/grid.locale-cn.js000064400000023046151676727230011103 0ustar00/**
 * jqGrid Chinese Translation
 * 咖啡兔 yanhonglei@gmail.com 
 * http://www.kafeitu.me 
 * 
 * 花岗岩 marbleqi@163.com
 * 
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html 
**/
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"../grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {

$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("regional")) {
	$.jgrid.regional = [];
}
$.jgrid.regional["cn"] = {
    defaults : {
        recordtext: "第{0}到第{1}条\u3000共 {2} 条", // 共字前是全角空格
        emptyrecords: "没有记录!",
        loadtext: "读取中...",
	savetext: "保存中...",
        pgtext : "第{0}页\u3000共{1}页",
		pgfirst : "第一页",
		pglast : "最后一页",
		pgnext : "下一页",
		pgprev : "上一页",
		pgrecs : "每页记录数",
		showhide: "切换 展开 折叠 表格",
		// mobile
		pagerCaption : "表格::页面设置",
		pageText : "Page:",
		recordPage : "每页记录数",
		nomorerecs : "没有更多记录...",
		scrollPullup: "加载更多...",
		scrollPulldown : "刷新...",
		scrollRefresh : "滚动刷新...",
		valT : "checked",
		valF : "unchecked",
		selectLine : "Select row",
		selectAllLines : "Select all rows"
    },
    search : {
        caption: "搜索...",
        Find: "查找",
        Reset: "重置",
        odata: [{ oper:'eq', text:'等于\u3000\u3000'},{ oper:'ne', text:'不等于\u3000'},{ oper:'lt', text:'小于\u3000\u3000'},{ oper:'le', text:'小于等于'},{ oper:'gt', text:'大于\u3000\u3000'},{ oper:'ge', text:'大于等于'},{ oper:'bw', text:'开头是'},{ oper:'bn', text:'开头不是'},{ oper:'in', text:'属于\u3000\u3000'},{ oper:'ni', text:'不属于'},{ oper:'ew', text:'结尾是'},{ oper:'en', text:'结尾不是'},{ oper:'cn', text:'包含\u3000\u3000'},{ oper:'nc', text:'不包含'},{ oper:'nu', text:'为空'},{ oper:'nn', text:'不为空'}, {oper:'bt', text:'区间'}],
        groupOps: [ { op: "AND", text: "满足所有条件" },    { op: "OR",  text: "满足任一条件" } ],
		operandTitle : "单击进行搜索。",
		resetTitle : "重置搜索条件",
		addsubgrup : "添加条件组",
		addrule : "添加条件",
		delgroup : "删除条件组",
		delrule : "删除条件",
		Close : "Close",
		Operand : "Operand : ",
		Operation : "Oper : ",
		filterFor : "filter for"
    },
    edit : {
        addCaption: "添加记录",
        editCaption: "编辑记录",
        bSubmit: "提交",
        bCancel: "取消",
        bClose: "关闭",
        saveData: "数据已修改,是否保存?",
        bYes : "是",
        bNo : "否",
        bExit : "取消",
        msg: {
            required:"此字段必需",
            number:"请输入有效数字",
            minValue:"输值必须大于等于 ",
            maxValue:"输值必须小于等于 ",
            email: "这不是有效的e-mail地址",
            integer: "请输入有效整数",
            date: "请输入有效时间",
            url: "无效网址。前缀必须为 ('http://' 或 'https://')",
            nodefined : " 未定义!",
            novalue : " 需要返回值!",
            customarray : "自定义函数需要返回数组!",
            customfcheck : "必须有自定义函数!"
        }
    },
    view : {
        caption: "查看记录",
        bClose: "关闭"
    },
    del : {
        caption: "删除",
        msg: "删除所选记录?",
        bSubmit: "删除",
        bCancel: "取消"
    },
    nav : {
        edittext: "",
        edittitle: "编辑所选记录",
        addtext:"",
        addtitle: "添加新记录",
        deltext: "",
        deltitle: "删除所选记录",
        searchtext: "",
        searchtitle: "查找",
        refreshtext: "",
        refreshtitle: "刷新表格",
        alertcap: "注意",
        alerttext: "请选择记录",
        viewtext: "",
        viewtitle: "查看所选记录",
		savetext: "",
		savetitle: "保存记录",
		canceltext: "",
		canceltitle : "取消编辑记录",
		selectcaption : "操作..."
    },
    col : {
        caption: "选择列",
        bSubmit: "确定",
        bCancel: "取消"
    },
    errors : {
        errcap : "错误",
        nourl : "没有设置url",
        norecords: "没有需要处理的记录",
        model : "colNames 和 colModel 长度不等!"
    },
    formatter : {
        integer : {thousandsSeparator: ",", defaultValue: '0'},
        number : {decimalSeparator:".", thousandsSeparator: ",", decimalPlaces: 2, defaultValue: '0.00'},
        currency : {decimalSeparator:".", thousandsSeparator: ",", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
        date : {
            dayNames:   [
                "日", "一", "二", "三", "四", "五", "六",
                "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六",
            ],
            monthNames: [
                "一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二",
                "一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"
            ],
            AmPm : ["am","pm","上午","下午"],
            S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th';},
            srcformat: 'Y-m-d',
            newformat: 'Y-m-d',
            parseRe : /[#%\\\/:_;.,\t\s-]/,
            masks : {
                // see http://php.net/manual/en/function.date.php for PHP format used in jqGrid
                // and see http://docs.jquery.com/UI/Datepicker/formatDate
                // and https://github.com/jquery/globalize#dates for alternative formats used frequently
                // one can find on https://github.com/jquery/globalize/tree/master/lib/cultures many
                // information about date, time, numbers and currency formats used in different countries
                // one should just convert the information in PHP format
                ISO8601Long:"Y-m-d H:i:s",
                ISO8601Short:"Y-m-d",
                // short date:
                //    n - Numeric representation of a month, without leading zeros
                //    j - Day of the month without leading zeros
                //    Y - A full numeric representation of a year, 4 digits
                // example: 3/1/2012 which means 1 March 2012
                ShortDate: "n/j/Y", // in jQuery UI Datepicker: "M/d/yyyy"
                // long date:
                //    l - A full textual representation of the day of the week
                //    F - A full textual representation of a month
                //    d - Day of the month, 2 digits with leading zeros
                //    Y - A full numeric representation of a year, 4 digits
                LongDate: "l, F d, Y", // in jQuery UI Datepicker: "dddd, MMMM dd, yyyy"
                // long date with long time:
                //    l - A full textual representation of the day of the week
                //    F - A full textual representation of a month
                //    d - Day of the month, 2 digits with leading zeros
                //    Y - A full numeric representation of a year, 4 digits
                //    g - 12-hour format of an hour without leading zeros
                //    i - Minutes with leading zeros
                //    s - Seconds, with leading zeros
                //    A - Uppercase Ante meridiem and Post meridiem (AM or PM)
                FullDateTime: "l, F d, Y g:i:s A", // in jQuery UI Datepicker: "dddd, MMMM dd, yyyy h:mm:ss tt"
                // month day:
                //    F - A full textual representation of a month
                //    d - Day of the month, 2 digits with leading zeros
                MonthDay: "F d", // in jQuery UI Datepicker: "MMMM dd"
                // short time (without seconds)
                //    g - 12-hour format of an hour without leading zeros
                //    i - Minutes with leading zeros
                //    A - Uppercase Ante meridiem and Post meridiem (AM or PM)
                ShortTime: "g:i A", // in jQuery UI Datepicker: "h:mm tt"
                // long time (with seconds)
                //    g - 12-hour format of an hour without leading zeros
                //    i - Minutes with leading zeros
                //    s - Seconds, with leading zeros
                //    A - Uppercase Ante meridiem and Post meridiem (AM or PM)
                LongTime: "g:i:s A", // in jQuery UI Datepicker: "h:mm:ss tt"
                SortableDateTime: "Y-m-d\\TH:i:s",
                UniversalSortableDateTime: "Y-m-d H:i:sO",
                // month with year
                //    Y - A full numeric representation of a year, 4 digits
                //    F - A full textual representation of a month
                YearMonth: "F, Y" // in jQuery UI Datepicker: "MMMM, yyyy"
            },
            reformatAfterEdit : false,
			userLocalTime : false
        },
        baseLinkUrl: '',
        showAction: '',
        target: '',
        checkbox : {disabled:true},
        idName : 'id'
    },
	colmenu : {
		sortasc : "升序排序",
		sortdesc : "降序排序",
		columns : "列",
		filter : "筛选",
		grouping : "分类",
		ungrouping : "取消分类",
		searchTitle : "查找:",
		freeze : "冻结",
		unfreeze : "取消冻结",
		reorder : "重新排序",
		hovermenu: "Click for column quick actions"
	}
};
}));
js/i18n/grid.locale-pt-br.js000064400000014741151676727230011531 0ustar00/**
 * jqGrid Brazilian-Portuguese Translation
 * Sergio Righi sergio.righi@gmail.com
 * http://curve.com.br
 * 
 * Updated by Jonnas Fonini
 * http://fonini.net
 *
 *
 * Updated by Fabio Ferreira da Silva fabio_ferreiradasilva@yahoo.com.br
 * 
 * Updated by Anderson Pimentel anderson.pimentel[at]gmail.com
 *
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
**/
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"../grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {

$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("regional")) {
	$.jgrid.regional = [];
}
$.jgrid.regional["pt-br"] = {
	defaults : {
		recordtext: "Ver {0} - {1} de {2}",
	    emptyrecords: "Nenhum registro para visualizar",
		loadtext: "Carregando...",
		pgtext : "Página {0} de {1}",
		savetext: "Salvando...",
		pgfirst : "Primeira Página",
		pglast : "Última Página",
		pgnext : "Próxima Página",
		pgprev : "Página Anterior",
		pgrecs : "Registros por Página",
		showhide: "Mostrar/Ocultar Grid",
		// mobile
		pagerCaption : "Grid::Page Settings",
		pageText : "Page:",
		recordPage : "Records per Page",
		nomorerecs : "No more records...",
		scrollPullup: "Pull up to load more...",
		scrollPulldown : "Pull down to refresh...",
		scrollRefresh : "Release to refresh...",
		valT : "checked",
		valF : "unchecked",
		selectLine : "Select row",
		selectAllLines : "Select all rows"
	},
	search : {
	    caption: "Procurar...",
	    Find: "Procurar",
	    Reset: "Limpar",
	    odata: [{ oper:'eq', text:"igual"},{ oper:'ne', text:"diferente"},{ oper:'lt', text:"menor"},{ oper:'le', text:"menor ou igual"},{ oper:'gt', text:"maior"},{ oper:'ge', text:"maior ou igual"},{ oper:'bw', text:"inicia com"},{ oper:'bn', text:"não inicia com"},{ oper:'in', text:"está em"},{ oper:'ni', text:"não está em"},{ oper:'ew', text:"termina com"},{ oper:'en', text:"não termina com"},{ oper:'cn', text:"contém"},{ oper:'nc', text:"não contém"},{ oper:'nu', text:"nulo"},{ oper:'nn', text:"não nulo"}, {oper:'bt', text:'between'}],
	    groupOps: [	{ op: "AND", text: "todos" },{ op: "OR",  text: "qualquer um" }	],
		operandTitle : "Clique para escolher a operação de pesquisa.",
		resetTitle : "Limpar valor de pesquisa",
		addsubgrup : "Add subgroup",
		addrule : "Add rule",
		delgroup : "Delete group",
		delrule : "Delete rule",
		Close : "Close",
		Operand : "Operand : ",
		Operation : "Oper : ",
		filterFor : "filter for"
	},
	edit : {
	    addCaption: "Incluir",
	    editCaption: "Alterar",
	    bSubmit: "Enviar",
	    bCancel: "Cancelar",
		bClose: "Fechar",
		saveData: "Os dados foram alterados! Salvar alterações?",
		bYes : "Sim",
		bNo : "Não",
		bExit : "Cancelar",
	    msg: {
	        required:"Campo obrigatório",
	        number:"Por favor, informe um número válido",
	        minValue:"valor deve ser igual ou maior que ",
	        maxValue:"valor deve ser menor ou igual a",
	        email: "este e-mail não é válido",
	        integer: "Por favor, informe um valor inteiro",
			date: "Por favor, informe uma data válida",
			url: "não é uma URL válida. Prefixo obrigatório ('http://' or 'https://')",
			nodefined : " não está definido!",
			novalue : " um valor de retorno é obrigatório!",
			customarray : "Função customizada deve retornar um array!",
			customfcheck : "Função customizada deve estar presente em caso de validação customizada!"
		}
	},
	view : {
	    caption: "Ver Registro",
	    bClose: "Fechar"
	},
	del : {
    caption: "Apagar",
	    msg: "Apagar registro(s) selecionado(s)?",
	    bSubmit: "Apagar",
	    bCancel: "Cancelar"
	},
	nav : {
		edittext: " ",
	    edittitle: "Alterar registro selecionado",
		addtext:" ",
	    addtitle: "Incluir novo registro",
	    deltext: " ",
	    deltitle: "Apagar registro selecionado",
	    searchtext: " ",
	    searchtitle: "Procurar registros",
	    refreshtext: "",
	    refreshtitle: "Recarregar tabela",
	    alertcap: "Aviso",
	    alerttext: "Por favor, selecione um registro",
		viewtext: "",
		viewtitle: "Ver linha selecionada",
		savetext: "",
		savetitle: "Salvar linha",
		canceltext: "",
		canceltitle : "Cancelar edição da linha",
		selectcaption : "Actions..."
	},
	col : {
	    caption: "Mostrar/Esconder Colunas",
	    bSubmit: "Enviar",
	    bCancel: "Cancelar"
	},
	errors : {
		errcap : "Erro",
		nourl : "Nenhuma URL definida",
		norecords: "Sem registros para exibir",
	    model : "Comprimento de colNames <> colModel!"
	},
	formatter : {
		integer : {thousandsSeparator: " ", defaultValue: '0'},
		number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'},
		currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "R$ ", suffix:"", defaultValue: '0,00'},
		date : {
			dayNames:   [
				"Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb",
				"Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"
			],
			monthNames: [
				"Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez",
				"Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"
			],
			AmPm : ["am","pm","AM","PM"],
			S: function (j) {return j < 11 || j > 13 ? ['º', 'º', 'º', 'º'][Math.min((j - 1) % 10, 3)] : 'º'},
			srcformat: 'Y-m-d',
			newformat: 'd/m/Y',
			parseRe : /[#%\\\/:_;.,\t\s-]/,
			masks : {
	            ISO8601Long:"Y-m-d H:i:s",
	            ISO8601Short:"Y-m-d",
	            ShortDate: "n/j/Y",
	            LongDate: "l, F d, Y",
	            FullDateTime: "l, F d, Y g:i:s A",
	            MonthDay: "F d",
	            ShortTime: "g:i A",
	            LongTime: "g:i:s A",
	            SortableDateTime: "Y-m-d\\TH:i:s",
	            UniversalSortableDateTime: "Y-m-d H:i:sO",
	            YearMonth: "F, Y"
	        },
	        reformatAfterEdit : false,
			userLocalTime : false
		},
		baseLinkUrl: '',
		showAction: '',
	    target: '',
	    checkbox : {disabled:true},
		idName : 'id'
	},
	colmenu : {
		sortasc : "Sort Ascending",
		sortdesc : "Sort Descending",
		columns : "Columns",
		filter : "Filter",
		grouping : "Group By",
		ungrouping : "Ungroup",
		searchTitle : "Get items with value that:",
		freeze : "Freeze",
		unfreeze : "Unfreeze",
		reorder : "Move to reorder",
		hovermenu: "Click for column quick actions"
	}
};
}));
js/i18n/grid.locale-sr.js000064400000016022151676727230011123 0ustar00/**
 * jqGrid Serbian Translation
 * Александар Миловац(Aleksandar Milovac) aleksandar.milovac@gmail.com
 * http://trirand.com/blog/
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
**/
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"../grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {

$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("regional")) {
	$.jgrid.regional = [];
}
$.jgrid.regional["sr"] = {
	defaults : {
		recordtext: "Преглед {0} - {1} од {2}",
		emptyrecords: "Не постоји ниједан запис",
		loadtext: "Учитавање...",
		pgtext : "Страна {0} од {1}",
		savetext: "Saving...",
		pgfirst : "First Page",
		pglast : "Last Page",
		pgnext : "Next Page",
		pgprev : "Previous Page",
		pgrecs : "Records per Page",
		showhide: "Toggle Expand Collapse Grid",
		// mobile
		pagerCaption : "Grid::Page Settings",
		pageText : "Page:",
		recordPage : "Records per Page",
		nomorerecs : "No more records...",
		scrollPullup: "Pull up to load more...",
		scrollPulldown : "Pull down to refresh...",
		scrollRefresh : "Release to refresh...",
		valT : "checked",
		valF : "unchecked",
		selectLine : "Select row",
		selectAllLines : "Select all rows"
	},
	search : {
		caption: "Тражење...",
		Find: "Тражи",
		Reset: "Ресетуј",
		odata: [{ oper:'eq', text:"једнако"},{ oper:'ne', text:"није једнако"},{ oper:'lt', text:"мање"},{ oper:'le', text:"мање или једнако"},{ oper:'gt', text:"веће"},{ oper:'ge', text:"веће или једнако"},{ oper:'bw', text:"почиње са"},{ oper:'bn', text:"не почиње са"},{ oper:'in', text:"је у"},{ oper:'ni', text:"није у"},{ oper:'ew', text:"завршава са"},{ oper:'en', text:"не завршава са"},{ oper:'cn', text:"садржи"},{ oper:'nc', text:"не садржи"},{ oper:'nu', text:'is null'},{ oper:'nn', text:'is not null'}, {oper:'bt', text:'between'}],
		groupOps: [	{ op: "И", text: "сви" },	{ op: "ИЛИ",  text: "сваки" }	],
		operandTitle : "Click to select search operation.",
		resetTitle : "Reset Search Value",
		addsubgrup : "Add subgroup",
		addrule : "Add rule",
		delgroup : "Delete group",
		delrule : "Delete rule",
		Close : "Close",
		Operand : "Operand : ",
		Operation : "Oper : ",
		filterFor : "filter for"
	},
	edit : {
		addCaption: "Додај запис",
		editCaption: "Измени запис",
		bSubmit: "Пошаљи",
		bCancel: "Одустани",
		bClose: "Затвори",
		saveData: "Податак је измењен! Сачувај измене?",
		bYes : "Да",
		bNo : "Не",
		bExit : "Одустани",
		msg: {
			required:"Поље је обавезно",
			number:"Молим, унесите исправан број",
			minValue:"вредност мора бити већа од или једнака са ",
			maxValue:"вредност мора бити мања од или једнака са",
			email: "није исправна имејл адреса",
			integer: "Молим, унесите исправну целобројну вредност ",
			date: "Молим, унесите исправан датум",
			url: "није исправан УРЛ. Потребан је префикс ('http://' or 'https://')",
			nodefined : " није дефинисан!",
			novalue : " захтевана је повратна вредност!",
			customarray : "Custom function should return array!",
			customfcheck : "Custom function should be present in case of custom checking!"
			
		}
	},
	view : {
		caption: "Погледај запис",
		bClose: "Затвори"
	},
	del : {
		caption: "Избриши",
		msg: "Избриши изабран(е) запис(е)?",
		bSubmit: "Ибриши",
		bCancel: "Одбаци"
	},
	nav : {
		edittext: "",
		edittitle: "Измени изабрани ред",
		addtext:"",
		addtitle: "Додај нови ред",
		deltext: "",
		deltitle: "Избриши изабран ред",
		searchtext: "",
		searchtitle: "Нађи записе",
		refreshtext: "",
		refreshtitle: "Поново учитај податке",
		alertcap: "Упозорење",
		alerttext: "Молим, изаберите ред",
		viewtext: "",
		viewtitle: "Погледај изабрани ред",
		savetext: "",
		savetitle: "Save row",
		canceltext: "",
		canceltitle : "Cancel row editing",
		selectcaption : "Actions..."
	},
	col : {
		caption: "Изабери колоне",
		bSubmit: "ОК",
		bCancel: "Одбаци"
	},
	errors : {
		errcap : "Грешка",
		nourl : "Није постављен URL",
		norecords: "Нема записа за обраду",
		model : "Дужина модела colNames <> colModel!"
	},
	formatter : {
		integer : {thousandsSeparator: " ", defaultValue: '0'},
		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
		date : {
			dayNames:   [
				"Нед", "Пон", "Уто", "Сре", "Чет", "Пет", "Суб",
				"Недеља", "Понедељак", "Уторак", "Среда", "Четвртак", "Петак", "Субота"
			],
			monthNames: [
				"Јан", "Феб", "Мар", "Апр", "Мај", "Јун", "Јул", "Авг", "Сеп", "Окт", "Нов", "Дец",
				"Јануар", "Фебруар", "Март", "Април", "Мај", "Јун", "Јул", "Август", "Септембар", "Октобар", "Новембар", "Децембар"
			],
			AmPm : ["am","pm","AM","PM"],
			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
			srcformat: 'Y-m-d',
			newformat: 'd/m/Y',
			parseRe : /[#%\\\/:_;.,\t\s-]/,
			masks : {
				ISO8601Long:"Y-m-d H:i:s",
				ISO8601Short:"Y-m-d",
				ShortDate: "n/j/Y",
				LongDate: "l, F d, Y",
				FullDateTime: "l, F d, Y g:i:s A",
				MonthDay: "F d",
				ShortTime: "g:i A",
				LongTime: "g:i:s A",
				SortableDateTime: "Y-m-d\\TH:i:s",
				UniversalSortableDateTime: "Y-m-d H:i:sO",
				YearMonth: "F, Y"
			},
			reformatAfterEdit : false,
			userLocalTime : false
		},
		baseLinkUrl: '',
		showAction: '',
		target: '',
		checkbox : {disabled:true},
		idName : 'id'
	},
	colmenu : {
		sortasc : "Sort Ascending",
		sortdesc : "Sort Descending",
		columns : "Columns",
		filter : "Filter",
		grouping : "Group By",
		ungrouping : "Ungroup",
		searchTitle : "Get items with value that:",
		freeze : "Freeze",
		unfreeze : "Unfreeze",
		reorder : "Move to reorder",
		hovermenu: "Click for column quick actions"
	}
};
}));
js/grid.filter.js000064400000214370151676727230007756 0ustar00/*
 *
 * The filter uses JSON entities to hold filter rules and groups. Here is an example of a filter:

{ "groupOp": "AND",
      "groups" : [
        { "groupOp": "OR",
            "rules": [
                { "field": "name", "op": "eq", "data": "England" },
                { "field": "id", "op": "le", "data": "5"}
             ]
        }
      ],
      "rules": [
        { "field": "name", "op": "eq", "data": "Romania" },
        { "field": "id", "op": "le", "data": "1"}
      ]
}
*/
/*jshint eqeqeq:false, eqnull:true, devel:true */
/*global jQuery, define */

(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"./grid.base",
			"./grid.common"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {
"use strict";
//module begin
$.fn.jqFilter = function( arg ) {
	if (typeof arg === 'string') {

		var fn = $.fn.jqFilter[arg];
		if (!fn) {
			throw ("jqFilter - No such method: " + arg);
		}
		var args = $.makeArray(arguments).slice(1);
		return fn.apply(this,args);
	}

	var p = $.extend(true,{
		filter: null,
		columns: [],
		sortStrategy: null,
		onChange : null,
		afterRedraw : null,
		checkValues : null,
		error: false,
		errmsg : "",
		errorcheck : true,
		showQuery : true,
		sopt : null,
		ops : [],
		operands : null,
		numopts : ['eq','ne', 'lt', 'le', 'gt', 'ge', 'nu', 'nn', 'in', 'ni'],
		stropts : ['eq', 'ne', 'bw', 'bn', 'ew', 'en', 'cn', 'nc', 'nu', 'nn', 'in', 'ni'],
		strarr : ['text', 'string', 'blob'],
		groupOps : [{ op: "AND", text: "AND" },	{ op: "OR",  text: "OR" }],
		groupButton : true,
		ruleButtons : true,
		uniqueSearchFields : false,
		direction : "ltr",
		addsubgrup : "Add subgroup",
		addrule : "Add rule",
		delgroup : "Delete group",
		delrule : "Delete rule",
		autoencode : false,
		unaryOperations : []
	}, $.jgrid.filter, arg || {});
	return this.each( function() {
		if (this.filter) {return;}
		this.p = p;
		// setup filter in case if they is not defined
		if (this.p.filter === null || this.p.filter === undefined) {
			this.p.filter = {
				groupOp: this.p.groupOps[0].op,
				rules: [],
				groups: []
			};
		}

		// Sort the columns if the sort strategy is provided.
		if (this.p.sortStrategy != null && $.jgrid.isFunction(this.p.sortStrategy)) {
			this.p.columns.sort(this.p.sortStrategy);
		}

		var i, len = this.p.columns.length, cl,
		isIE = /msie/i.test(navigator.userAgent) && !window.opera;

		// translating the options
		this.p.initFilter = $.extend(true,{},this.p.filter);
		//this.p.initFilter = {};
		// set default values for the columns if they are not set
		if( !len ) {return;}
		for(i=0; i < len; i++) {
			cl = this.p.columns[i];
			if( cl.stype ) {
				// grid compatibility
				cl.inputtype = cl.stype;
			} else if(!cl.inputtype) {
				cl.inputtype = 'text';
			}
			if( cl.sorttype ) {
				// grid compatibility
				cl.searchtype = cl.sorttype;
			} else if (!cl.searchtype) {
				cl.searchtype = 'string';
			}
			if(cl.hidden === undefined) {
				// jqGrid compatibility
				cl.hidden = false;
			}
			if(!cl.label) {
				cl.label = cl.name;
			}
			if(cl.index) {
				cl.name = cl.index;
			}
			if(!cl.hasOwnProperty('searchoptions')) {
				cl.searchoptions = {};
			}
			if(!cl.hasOwnProperty('searchrules')) {
				cl.searchrules = {};
			}
			if(cl.search === undefined) {
				cl.inlist = true;
			} else {
				cl.inlist = cl.search;
			}
		}
		var getGrid = function () {
			return $("#" + $.jgrid.jqID(p.id))[0] || null;
		},

		$tg = getGrid(),
		classes = $.jgrid.styleUI[($tg.p.styleUI || 'jQueryUI')].filter,
		common = $.jgrid.styleUI[($tg.p.styleUI || 'jQueryUI')].common;


		if(this.p.showQuery) {
			$(this).append("<table class='queryresult " + classes.table_widget + "' style='display:block;max-width:440px;border:0px none;' dir='"+this.p.direction+"'><tbody><tr><td class='query'></td></tr></tbody></table>");
		}
		/*
		 *Perform checking.
		 *
		*/
		var checkData = function(val, colModelItem) {
			var ret = [true,""], $t = getGrid();
			if($.jgrid.isFunction(colModelItem.searchrules)) {
				ret = colModelItem.searchrules.call($t, val, colModelItem);
			} else if($.jgrid && $.jgrid.checkValues) {
				try {
					ret = $.jgrid.checkValues.call($t, val, -1, colModelItem.searchrules, colModelItem.label);
				} catch (e) {}
			}
			if(ret && ret.length && ret[0] === false) {
				p.error = !ret[0];
				p.errmsg = ret[1];
			}
		};
		/* moving to common
		randId = function() {
			return Math.floor(Math.random()*10000).toString();
		};
		*/

		this.onchange = function (  ){
			// clear any error
			this.p.error = false;
			this.p.errmsg="";
			return $.jgrid.isFunction(this.p.onChange) ? this.p.onChange.call( this, this.p ) : false;
		};
		/*
		 * Redraw the filter every time when new field is added/deleted
		 * and field is  changed
		 */
		this.reDraw = function() {
			$(this).find("table.group").first().remove();
			var t = this.createTableForGroup(p.filter, null);
			$(this).append(t);
			if($.jgrid.isFunction(this.p.afterRedraw) ) {
				this.p.afterRedraw.call(this, this.p);
			}
		};
		/*
		 * Creates a grouping data for the filter
		 * @param group - object
		 * @param parentgroup - object
		 */
		this.createTableForGroup = function(group, parentgroup) {
			var that = this,  i;
			// this table will hold all the group (tables) and rules (rows)
			var table = $("<table class='group " + classes.table_widget +" ui-search-table' style='border:0px none;'><tbody></tbody></table>"),
			// create error message row
			align = "left";
			if(this.p.direction === "rtl") {
				align = "right";
				table.attr("dir","rtl");
			}
			if(parentgroup === null) {
				table.append("<tr class='error' style='display:none;'><th colspan='5' class='" + common.error + "' align='"+align+"'></th></tr>");
			}

			var tr = $("<tr></tr>");
			table.append(tr);
			// this header will hold the group operator type and group action buttons for
			// creating subgroup "+ {}", creating rule "+" or deleting the group "-"
			var th = $("<th colspan='5' align='"+align+"'></th>");
			tr.append(th);

			if(this.p.ruleButtons === true) {
			// dropdown for: choosing group operator type
			var groupOpSelect = $("<select size='1' name='select_group_op' class='opsel " + classes.srSelect + "'></select>");
			th.append(groupOpSelect);
			// populate dropdown with all posible group operators: or, and
			var str= "", selected;
			for (i = 0; i < p.groupOps.length; i++) {
				selected =  group.groupOp === that.p.groupOps[i].op ? " selected='selected'" :"";
				str += "<option value='"+that.p.groupOps[i].op+"'" + selected+">"+that.p.groupOps[i].text+"</option>";
			}

			groupOpSelect
			.append(str)
			.on('change',function() {
				group.groupOp = $(groupOpSelect).val();
				that.onchange(); // signals that the filter has changed
			});
			}
			// button for adding a new subgroup
			var inputAddSubgroup ="<span></span>";
			if(this.p.groupButton) {
				inputAddSubgroup = $("<input type='button' value='+ {}' title='" +that.p.addsubgrup+"' class='add-group " + common.button + "' name='newsubgroup'/>");
				inputAddSubgroup.on('click',function() {
					if (group.groups === undefined ) {
						group.groups = [];
					}

					group.groups.push({
						groupOp: p.groupOps[0].op,
						rules: [],
						groups: []
					}); // adding a new group

					that.reDraw(); // the html has changed, force reDraw

					that.onchange(); // signals that the filter has changed
					return false;
				});
			}
			th.append(inputAddSubgroup);
			if(this.p.ruleButtons === true) {
			// button for adding a new rule
			var inputAddRule = $("<input type='button' value='+' title='"+that.p.addrule+"' class='add-rule ui-add " + common.button + "'/ name='newrule'>"), cm;
			inputAddRule.on('click',function() {
				//if(!group) { group = {};}
				if (group.rules === undefined) {
					group.rules = [];
				}
				for (i = 0; i < that.p.columns.length; i++) {
				// but show only serchable and serchhidden = true fields
					var searchable = (that.p.columns[i].search === undefined) ?  true: that.p.columns[i].search,
					hidden = (that.p.columns[i].hidden === true),
					ignoreHiding = (that.p.columns[i].searchoptions.searchhidden === true);
					if ((ignoreHiding && searchable) || (searchable && !hidden)) {
						cm = that.p.columns[i];
						break;
					}
				}
				if( !cm ) {
					return false;
				}
				var opr;
				if( cm.searchoptions.sopt ) {opr = cm.searchoptions.sopt;}
				else if(that.p.sopt) { opr= that.p.sopt; }
				else if  ( $.inArray(cm.searchtype, that.p.strarr) !== -1 ) {opr = that.p.stropts;}
				else {opr = that.p.numopts;}

				group.rules.push({
					field: cm.name,
					op: opr[0],
					data: ""
				}); // adding a new rule

				that.reDraw(); // the html has changed, force reDraw
				// for the moment no change have been made to the rule, so
				// this will not trigger onchange event
				return false;
			});
			th.append(inputAddRule);
			}

			// button for delete the group
			if (parentgroup !== null) { // ignore the first group
				var inputDeleteGroup = $("<input type='button' value='-' title='"+that.p.delgroup+"' class='delete-group " + common.button + "'/ name='delgroup'>");
				th.append(inputDeleteGroup);
				inputDeleteGroup.on('click',function() {
				// remove group from parent
					for (i = 0; i < parentgroup.groups.length; i++) {
						if (parentgroup.groups[i] === group) {
							parentgroup.groups.splice(i, 1);
							break;
						}
					}

					that.reDraw(); // the html has changed, force reDraw

					that.onchange(); // signals that the filter has changed
					return false;
				});
			}

			// append subgroup rows
			if (group.groups !== undefined) {
				for (i = 0; i < group.groups.length; i++) {
					var trHolderForSubgroup = $("<tr></tr>");
					table.append(trHolderForSubgroup);

					var tdFirstHolderForSubgroup = $("<td class='first'></td>");
					trHolderForSubgroup.append(tdFirstHolderForSubgroup);

					var tdMainHolderForSubgroup = $("<td colspan='4'></td>");
					tdMainHolderForSubgroup.append(this.createTableForGroup(group.groups[i], group));
					trHolderForSubgroup.append(tdMainHolderForSubgroup);
				}
			}
			if(group.groupOp === undefined) {
				group.groupOp = that.p.groupOps[0].op;
			}

			// append rules rows
			var suni = that.p.ruleButtons && that.p.uniqueSearchFields, ii;
			if( suni ) {
				for ( ii = 0; ii < that.p.columns.length; ii++) {
					if(that.p.columns[ii].inlist) {
						that.p.columns[ii].search = true;
					}
				}
			}
			if (group.rules !== undefined) {
				for (i = 0; i < group.rules.length; i++) {
					table.append(
                       this.createTableRowForRule(group.rules[i], group)
					);
					if( suni ) {
						var field = group.rules[i].field;
						for ( ii = 0; ii < that.p.columns.length; ii++) {
							if(field === that.p.columns[ii].name) {
								that.p.columns[ii].search = false;
								break;
							}
						}
					}
				}
			}
			return table;
		};
		/*
		 * Create the rule data for the filter
		 */
		this.createTableRowForRule = function(rule, group ) {
			// save current entity in a variable so that it could
			// be referenced in anonimous method calls

			var that=this, $t = getGrid(), tr = $("<tr></tr>"),
			//document.createElement("tr"),

			// first column used for padding
			//tdFirstHolderForRule = document.createElement("td"),
			i, op, trpar, cm, str="", selected;
			//tdFirstHolderForRule.setAttribute("class", "first");
			tr.append("<td class='first'></td>");


			// create field container
			var ruleFieldTd = $("<td class='columns'></td>");
			tr.append(ruleFieldTd);


			// dropdown for: choosing field
			var ruleFieldSelect = $("<select size='1' name='select_field' class='" + classes.srSelect + "'></select>"), ina, aoprs = [];
			ruleFieldTd.append(ruleFieldSelect);
			ruleFieldSelect.on('change',function() {
				if( that.p.ruleButtons && that.p.uniqueSearchFields ) {
					var prev = parseInt($(this).data('curr'),10),
					curr = this.selectedIndex;
					if(prev >= 0 ) {
						that.p.columns[prev].search = true;
						$(this).data('curr', curr);
						that.p.columns[curr].search = false;
					}
				}

				rule.field = $(ruleFieldSelect).val();

				trpar = $(this).parents("tr").first();
				$(".data",trpar).empty();
				for (i=0;i<that.p.columns.length;i++) {
					if(that.p.columns[i].name ===  rule.field) {
						cm = that.p.columns[i];
						break;
					}
				}
				if(!cm) {return;}
				cm.searchoptions.id = $.jgrid.randId();
				cm.searchoptions.name = rule.field;
				cm.searchoptions.oper = 'filter';

				if(isIE && cm.inputtype === "text") {
					if(!cm.searchoptions.size) {
						cm.searchoptions.size = 10;
					}
				}
				var elm = $.jgrid.createEl.call($t, cm.inputtype,cm.searchoptions, "", true, that.p.ajaxSelectOptions || {}, true);
				$(elm).addClass("input-elm " + (cm.inputtype === 'select' ? classes.srSelect : classes.srInput) );
				//that.createElement(rule, "");

				if( cm.searchoptions.sopt ) {op = cm.searchoptions.sopt;}
				else if(that.p.sopt) { op= that.p.sopt; }
				else if  ($.inArray(cm.searchtype, that.p.strarr) !== -1) {op = that.p.stropts;}
				else {op = that.p.numopts;}
				// operators
				var s ="", so = 0;
				aoprs = [];
				$.each(that.p.ops, function() { aoprs.push(this.oper); });
				for ( i = 0 ; i < op.length; i++) {
					ina = $.inArray(op[i],aoprs);
					if(ina !== -1) {
						if(so===0) {
							rule.op = that.p.ops[ina].oper;
						}
						s += "<option value='"+that.p.ops[ina].oper+"'>"+that.p.ops[ina].text+"</option>";
						so++;
					}
				}
				$(".selectopts",trpar).empty().append( s );
				$(".selectopts",trpar)[0].selectedIndex = 0;
				if( $.jgrid.msie() && $.jgrid.msiever() < 9) {
					var sw = parseInt($("select.selectopts",trpar)[0].offsetWidth, 10) + 1;
					$(".selectopts",trpar).width( sw );
					$(".selectopts",trpar).css("width","auto");
				}
				// data
				$(".data",trpar).append( elm );
				$.jgrid.bindEv.call($t, elm, cm.searchoptions);
				$(".input-elm",trpar).on('change',function( e ) {
					var elem = e.target;
					if( cm.inputtype === 'custom' && $.jgrid.isFunction(cm.searchoptions.custom_value) ) {
						rule.data =  cm.searchoptions.custom_value.call($t, $(".customelement", this), 'get');
					} else {
						rule.data = $(elem).val();
					}
					if(cm.inputtype === 'select' && cm.searchoptions.multiple ) {
						rule.data = rule.data.join(",");
					}
					that.onchange(); // signals that the filter has changed
				});
				setTimeout(function(){ //IE, Opera, Chrome
				rule.data = $(elm).val();
				if(rule.op === 'nu' || rule.op === 'nn' || $.inArray(rule.op, that.p.unaryOperations) >=0 ) {
					$(elm).attr('readonly','true');
					$(elm).attr('disabled','true');
				}
				
				if(cm.inputtype === 'select' && cm.searchoptions.multiple && Array.isArray(rule.data)) {
					rule.data = rule.data.join(",");
				}
				that.onchange();  // signals that the filter has changed
				}, 0);
			});

			// populate drop down with user provided column definitions
			var j=0;
			for (i = 0; i < that.p.columns.length; i++) {
				// but show only serchable and serchhidden = true fields
				var searchable = (that.p.columns[i].search === undefined) ? true: that.p.columns[i].search,
				hidden = (that.p.columns[i].hidden === true),
				ignoreHiding = (that.p.columns[i].searchoptions.searchhidden === true);
				if ((ignoreHiding && searchable) || (searchable && !hidden)) {
					selected = "";
					if(rule.field === that.p.columns[i].name) {
						selected = " selected='selected'";
						j=i;
					}
					str += "<option value='"+that.p.columns[i].name+"'" +selected+">"+that.p.columns[i].label+"</option>";
				}
			}
			ruleFieldSelect.append( str );
			ruleFieldSelect.data('curr', j);


			// create operator container
			var ruleOperatorTd = $("<td class='operators'></td>");
			tr.append(ruleOperatorTd);
			cm = p.columns[j];
			// create it here so it can be referentiated in the onchange event
			//var RD = that.createElement(rule, rule.data);
			cm.searchoptions.id = $.jgrid.randId();
			if(isIE && cm.inputtype === "text") {
				if(!cm.searchoptions.size) {
					cm.searchoptions.size = 10;
				}
			}
			cm.searchoptions.name = rule.field;
			cm.searchoptions.oper = 'filter';
			var ruleDataInput = $.jgrid.createEl.call($t, cm.inputtype,cm.searchoptions, rule.data, true, that.p.ajaxSelectOptions || {}, true);
			if(rule.op === 'nu' || rule.op === 'nn' || $.inArray(rule.op, that.p.unaryOperations) >=0 ) {
				$(ruleDataInput).attr('readonly','true');
				$(ruleDataInput).attr('disabled','true');
			} //retain the state of disabled text fields in case of null ops
			// dropdown for: choosing operator
			var ruleOperatorSelect = $("<select size='1' name='select_oper' class='selectopts " + classes.srSelect + "'></select>");
			ruleOperatorTd.append(ruleOperatorSelect);
			ruleOperatorSelect.on('change',function() {
				rule.op = $(ruleOperatorSelect).val();
				trpar = $(this).parents("tr").first();
				var rd = $(".input-elm",trpar)[0];
				if (rule.op === "nu" || rule.op === "nn" || $.inArray(rule.op, that.p.unaryOperations) >= 0 ) { // disable for operator "is null" and "is not null"
					rule.data = "";
					if(rd.tagName.toUpperCase() !== 'SELECT') { rd.value = ""; }
					rd.setAttribute("readonly", "true");
					rd.setAttribute("disabled", "true");
				} else {
					if(rd.tagName.toUpperCase() === 'SELECT') { rule.data = rd.value; }
					rd.removeAttribute("readonly");
					rd.removeAttribute("disabled");
				}

				that.onchange();  // signals that the filter has changed
			});

			// populate drop down with all available operators
			if( cm.searchoptions.sopt ) {op = cm.searchoptions.sopt;}
			else if(that.p.sopt) { op= that.p.sopt; }
			else if  ($.inArray(cm.searchtype, that.p.strarr) !== -1) {op = that.p.stropts;}
			else {op = that.p.numopts;}
			str="";
			$.each(that.p.ops, function() { aoprs.push(this.oper); });
			for ( i = 0; i < op.length; i++) {
				ina = $.inArray(op[i],aoprs);
				if(ina !== -1) {
					selected = rule.op === that.p.ops[ina].oper ? " selected='selected'" : "";
					str += "<option value='"+that.p.ops[ina].oper+"'"+selected+">"+that.p.ops[ina].text+"</option>";
				}
			}
			ruleOperatorSelect.append( str );
			// create data container
			var ruleDataTd = $("<td class='data'></td>");
			tr.append(ruleDataTd);

			// textbox for: data
			// is created previously
			//ruleDataInput.setAttribute("type", "text");
			ruleDataTd.append(ruleDataInput);
			$.jgrid.bindEv.call($t, ruleDataInput, cm.searchoptions);
			$(ruleDataInput)
			.addClass("input-elm " + (cm.inputtype === 'select' ? classes.srSelect : classes.srInput) )
			.on('change', function() {
				rule.data = cm.inputtype === 'custom' ? cm.searchoptions.custom_value.call($t, $(".customelement", this),'get') : $(this).val();
				that.onchange(); // signals that the filter has changed
			});

			// create action container
			var ruleDeleteTd = $("<td></td>");
			tr.append(ruleDeleteTd);

			// create button for: delete rule
			if(this.p.ruleButtons === true) {
			var ruleDeleteInput = $("<input type='button' value='-' title='"+that.p.delrule+"' class='delete-rule ui-del " + common.button + "'/ name='delrule'>");
			ruleDeleteTd.append(ruleDeleteInput);
			//$(ruleDeleteInput).html("").height(20).width(30).button({icons: {  primary: "ui-icon-minus", text:false}});
			ruleDeleteInput.on('click',function() {
				// remove rule from group
				for (i = 0; i < group.rules.length; i++) {
					if (group.rules[i] === rule) {
						group.rules.splice(i, 1);
						break;
					}
				}

				that.reDraw(); // the html has changed, force reDraw

				that.onchange(); // signals that the filter has changed
				return false;
			});
			}
			return tr;
		};

		this.getStringForGroup = function(group) {
			var s = "(", index;
			if (group.groups !== undefined) {
				for (index = 0; index < group.groups.length; index++) {
					if (s.length > 1) {
						s += " " + group.groupOp + " ";
					}
					try {
						s += this.getStringForGroup(group.groups[index]);
					} catch (eg) {alert(eg);}
				}
			}

			if (group.rules !== undefined) {
				try{
					for (index = 0; index < group.rules.length; index++) {
						if (s.length > 1) {
							s += " " + group.groupOp + " ";
						}
						s += this.getStringForRule(group.rules[index]);
					}
				} catch (e) {alert(e);}
			}

			s += ")";

			if (s === "()") {
				return ""; // ignore groups that don't have rules
			}
			return s;
		};
		this.getStringForRule = function(rule) {
			var opUF = "",opC="", i, cm, ret, val,
			numtypes = ['int', 'integer', 'float', 'number', 'currency']; // jqGrid
			for (i = 0; i < this.p.ops.length; i++) {
				if (this.p.ops[i].oper === rule.op) {
					opUF = this.p.operands.hasOwnProperty(rule.op) ? this.p.operands[rule.op] : "";
					opC = this.p.ops[i].oper;
					break;
				}
			}
			for (i=0; i<this.p.columns.length; i++) {
				if(this.p.columns[i].name === rule.field) {
					cm = this.p.columns[i];
					break;
				}
			}
			if (cm === undefined) { return ""; }
			val = this.p.autoencode ? $.jgrid.htmlEncode(rule.data) : rule.data;
			if(opC === 'bw' || opC === 'bn') { val = val+"%"; }
			if(opC === 'ew' || opC === 'en') { val = "%"+val; }
			if(opC === 'cn' || opC === 'nc') { val = "%"+val+"%"; }
			if(opC === 'in' || opC === 'ni') { val = " ("+val+")"; }
			if(p.errorcheck) { checkData(rule.data, cm); }
			if($.inArray(cm.searchtype, numtypes) !== -1 || opC === 'nn' || opC === 'nu' || $.inArray(rule.op, this.p.unaryOperations) >= 0 ) { 
				ret = rule.field + " " + opUF + " " + val; 
			} else { 
				ret = rule.field + " " + opUF + " \"" + val + "\""; 
			}
			return ret;
		};
		this.resetFilter = function () {
			this.p.filter = $.extend(true,{},this.p.initFilter);
			this.reDraw();
			this.onchange();
		};
		this.hideError = function() {
			$("th."+common.error, this).html("");
			$("tr.error", this).hide();
		};
		this.showError = function() {
			$("th."+common.error, this).html( $.jgrid.stripScript( this.p.errmsg ));
			$("tr.error", this).show();
		};
		this.toUserFriendlyString = function() {
			return this.getStringForGroup(p.filter);
		};
		this.toString = function() {
			// this will obtain a string that can be used to match an item.
			var that = this;
			function getStringRule(rule) {
				if(that.p.errorcheck) {
					var i, cm;
					for (i=0; i<that.p.columns.length; i++) {
						if(that.p.columns[i].name === rule.field) {
							cm = that.p.columns[i];
							break;
						}
					}
					if(cm) {checkData(rule.data, cm);}
				}
				return rule.op + "(item." + rule.field + ",'" + rule.data + "')";
			}

			function getStringForGroup(group) {
				var s = "(", index;

				if (group.groups !== undefined) {
					for (index = 0; index < group.groups.length; index++) {
						if (s.length > 1) {
							if (group.groupOp === "OR") {
								s += " || ";
							}
							else {
								s += " && ";
							}
						}
						s += getStringForGroup(group.groups[index]);
					}
				}

				if (group.rules !== undefined) {
					for (index = 0; index < group.rules.length; index++) {
						if (s.length > 1) {
							if (group.groupOp === "OR") {
								s += " || ";
							}
							else  {
								s += " && ";
							}
						}
						s += getStringRule(group.rules[index]);
					}
				}

				s += ")";

				if (s === "()") {
					return ""; // ignore groups that don't have rules
				}
				return s;
			}

			return getStringForGroup(this.p.filter);
		};

		// Here we init the filter
		this.reDraw();

		if(this.p.showQuery) {
			this.onchange();
		}
		// mark is as created so that it will not be created twice on this element
		this.filter = true;
	});
};
$.extend($.fn.jqFilter,{
	/*
	 * Return SQL like string. Can be used directly
	 */
	toSQLString : function()
	{
		var s ="";
		this.each(function(){
			s = this.toUserFriendlyString();
		});
		return s;
	},
	/*
	 * Return filter data as object.
	 */
	filterData : function()
	{
		var s;
		this.each(function(){
			s = this.p.filter;
		});
		return s;

	},
	getParameter : function (param) {
		var ret = null;
		if(param !== undefined) {
			this.each(function(i,n){
				if (n.p.hasOwnProperty(param) ) {
					ret = n.p[param];
				}
			});
		}
		return ret ? ret : this[0].p;	},
	resetFilter: function() {
		return this.each(function(){
			this.resetFilter();
		});
	},
	addFilter: function (pfilter) {
		if (typeof pfilter === "string") {
			pfilter = $.jgrid.parse( pfilter );
		}
		this.each(function(){
			this.p.filter = pfilter;
			this.reDraw();
			this.onchange();
		});
	}

});
$.extend($.jgrid,{
	filterRefactor : function ( p  )  {
		/*ruleGroup : {}, ssfield:[], splitSelect:",", groupOpSelect:"OR"*/
		var filters={} /*?*/, rules, k, rule, ssdata, group, rf;
		try {
			filters = typeof p.ruleGroup === "string" ? $.jgrid.parse(p.ruleGroup) : p.ruleGroup;
			if(filters.rules && filters.rules.length) {
				rules = filters.rules;
				for(k=0; k < rules.length; k++) {
					rule = rules[k];
					rf = rule.field;
					if($.inArray(rf, p.ssfield) > -1 ) {
						ssdata = rule.data.split(p.splitSelect);
						if(ssdata.length > 1) {
							if(filters.groups === undefined) {
								filters.groups = [];
							}
							group = { groupOp: p.groupOpSelect, groups: [], rules: [] };
							filters.groups.push(group);
							$.each(ssdata,function(l) {
								if (ssdata[l]) {
									group.rules.push({ data: ssdata[l],	op: rule.op, field: rule.field});
								}
							});
							rules.splice(k, 1);
							k--;
						}
					}
				}
			}
		} catch(e) {}
		return filters;
	}
});
$.jgrid.extend({
	filterToolbar : function(p){
		var regional =  $.jgrid.getRegional(this[0], 'search');
		p = $.extend({
			autosearch: true,
			autosearchDelay: 500,
			searchOnEnter : true,
			beforeSearch: null,
			afterSearch: null,
			beforeClear: null,
			afterClear: null,
			onClearSearchValue : null,
			url : '',
			stringResult: false,
			groupOp: 'AND',
			defaultSearch : "bw",
			searchOperators : false,
			resetIcon : "x",
			splitSelect : ",",
			groupOpSelect : "OR",
			errorcheck : true,
			operands : { "eq" :"==", "ne":"!","lt":"<","le":"<=","gt":">","ge":">=","bw":"^","bn":"!^","in":"=","ni":"!=","ew":"|","en":"!@","cn":"~","nc":"!~","nu":"#","nn":"!#", "bt":"..."},
			disabledKeys :  [9, 16, 17,18,19, 20, 33, 34, 35,36,37,38,39,40,30, 45,112,113,114,115,116,117,118,119,120,121,122,123, 144, 145]
		}, regional , p  || {});
		return this.each(function(){
			var $t = this, unaryOpers=[];
			if($t.p.filterToolbar) { return; }
			if(!$($t).data('filterToolbar')) {
				$($t).data('filterToolbar', p);
			}
			if($t.p.force_regional) {
				p = $.extend(p, regional);
			}
			if ($t.p.customFilterDef !== undefined) {
				for(var uskey in $t.p.customFilterDef) {
					if($t.p.customFilterDef.hasOwnProperty(uskey)  && !p.operands.hasOwnProperty(uskey) ) {
						p.odata.push({ oper: uskey, text: $t.p.customFilterDef[uskey].text} );
						p.operands[uskey] = $t.p.customFilterDef[uskey].operand;
						if($t.p.customFilterDef[uskey].unary === true) {
							unaryOpers.push(uskey);
						}
					}
				}
			}
			var classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].filter,
			common = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].common,
			base = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].base,

			triggerToolbar = function( currentPage) {
				if(typeof(currentPage) === "undefined"){
					currentPage = 1;
				}
				var sdata={}, j=0, v, nm, sopt={},so, ms = false, ssfield = [], msfield = [], afrcol={}, arcustom=[],
					bbt =false, sop, ret=[true,"",""], err=false;
				$.each($t.p.colModel,function(){
					var $elem, fcol = false;
					nm = this.index || this.name;
					sop = this.searchoptions || {};

					if(this.frozen===true && $t.p.frozenColumns === true) {
						$elem = $("#gs_"+ $t.p.idPrefix + $.jgrid.jqID(this.name), $t.grid.fhDiv );
						fcol = true;
					} else {
						$elem = $("#gs_"+ $t.p.idPrefix + $.jgrid.jqID(this.name), $t.grid.hDiv);
					}
					//var $elem = $("#gs_"+ $t.p.idPrefix + $.jgrid.jqID(this.name),  ?  $t.grid.fhDiv : $t.grid.hDiv);
					// in case frozen col is outside the rule list
					if($elem[0] === undefined) {
						$elem = $("#gs_"+ $t.p.idPrefix + $.jgrid.jqID(this.name), $t.grid.hDiv);
					}
					if(p.searchOperators &&  sop.searchOperMenu) {
						so = $elem.parents("table.ui-search-table").find("td.ui-search-oper").children("a").attr("soper") || p.defaultSearch;
					} else {
						so  = (sop.sopt) ? sop.sopt[0] : this.stype==='select' ?  'eq' : p.defaultSearch;
					}
					if( this.stype === "custom" && $.jgrid.isFunction(sop.custom_value) && $elem.length > 0 ) {
						v = sop.custom_value.call($t, $elem, "get");
						arcustom.push(nm);
					} else {
						v = $elem.val();
					}
					// detect multiselect
					if(this.stype === 'select' && sop.multiple && Array.isArray(v)) {
						if(v.length > 0) {
							ms = true;
							ssfield.push(nm);
							v= v.length === 1 ? v[0] : v;
						} else {
							v = "";
						}
					} else if( so !== "bt" && this.stype === 'text' && sop.splitSearchWord === true) {
						msfield.push(nm);
					}
					if(this.searchrules && p.errorcheck) {
						if($.jgrid.isFunction( this.searchrules)) {
							ret = this.searchrules.call($t, v, this);
						} else if($.jgrid && $.jgrid.checkValues) {
							ret = $.jgrid.checkValues.call($t, v, -1, this.searchrules, this.label || this.name);
						}
						if(ret && ret.length && ret[0] === false ) {
							if(this.searchrules.hasOwnProperty('validationError') ){
								err = this.searchrules.validationError;
							}
							return false;
						}
					}
					if(so==="bt") {
						bbt = true;
					}
					if(fcol && (nm !== 'cb' && nm!== 'rn' && nm !== 'subgrid' && nm !== 'sc') ) {
						afrcol[nm] = v;
					}
					if(v || so==="nu" || so==="nn" || $.inArray(so, unaryOpers) >=0) {
						sdata[nm] = v;
						sopt[nm] = so;
						j++;
					} else {
						try {
							delete $t.p.postData[nm];
						} catch (z) {}
					}
				});
				if(ret[0] === false ) {
					if($.jgrid.isFunction(err)) {
						err.call($t, ret[1]);
					} else {
						var errors = $.jgrid.getRegional($t, 'errors');
						$.jgrid.info_dialog(errors.errcap, ret[1], '', {styleUI : $t.p.styleUI });
					}
					return;
				}
				var sd =  j>0 ? true : false;
				if(p.stringResult === true || $t.p.datatype === "local" || p.searchOperators === true)
				{
					var ruleGroup = "{\"groupOp\":\"" + p.groupOp + "\",\"rules\":[";
					var gi=0;
					$.each(sdata,function(i,n){
						if (gi > 0) {ruleGroup += ",";}
						ruleGroup += "{\"field\":\"" + i + "\",";
						ruleGroup += "\"op\":\"" + sopt[i] + "\",";
						n+="";
						ruleGroup += "\"data\":\"" + n.replace(/\\/g,'\\\\').replace(/\"/g,'\\"') + "\"}";
						gi++;
					});
					ruleGroup += "]}";
					// multiselect
					var filters, rules, k, rule, ssdata, group;
					if(ms) {
						filters = $.jgrid.filterRefactor({
							ruleGroup : ruleGroup,
							ssfield : ssfield,
							splitSelect : p.splitSelect,
							groupOpSelect : p.groupOpSelect
						});
						//ruleGroup = JSON.stringify( filters );
					}
					if(bbt) {
						if(!$.isPlainObject(filters)) {
							filters = $.jgrid.parse(ruleGroup);
						}
						if(filters.rules && filters.rules.length) {
							rules = filters.rules;
							for(k=0;k < rules.length; k++) {
								rule = rules[k];
								if(rule.op === "bt") {
									ssdata = rule.data.split("...");
									if(ssdata.length > 1) {
										if(filters.groups === undefined) {
											filters.groups = [];
										}
										group = { groupOp: 'AND', groups: [], rules: [] };
										filters.groups.push(group);
										$.each(ssdata,function(l) {
											var btop = l === 0 ? 'ge' : 'le';
											if(ssdata[l]) {
												group.rules.push({ data: ssdata[l], op: btop, field: rule.field});
											}
										});
										rules.splice(k, 1);
										k--;
									}
								}
							}
						}
					}
					if(  msfield.length ) {
						filters = $.jgrid.filterRefactor({
							ruleGroup : ruleGroup,
							ssfield : msfield,
							splitSelect : sop.splitSearchSeparator || ";",
							groupOpSelect : "OR"
						});
					}
					if(bbt || ms || msfield.length) {
						ruleGroup = JSON.stringify( filters );
					}
					if($t.p.mergeSearch === true && $t.p.searchModules.hasOwnProperty('filterToolbar') && $t.p.searchModules.filterToolbar !== false ) {
						if(gi > 0) {
							$t.p.searchModules.filterToolbar = ruleGroup;
						} else {
							$t.p.searchModules.filterToolbar = null;
						}
						sd = true;
						$.extend($t.p.postData,{filters: $.jgrid.splitSearch($t.p.searchModules)});
					} else {
						$.extend($t.p.postData,{filters:ruleGroup});
					}
					
					$.each(['searchField', 'searchString', 'searchOper'], function(i, n){
						if($t.p.postData.hasOwnProperty(n)) { delete $t.p.postData[n];}
					});
				} else {
					$.extend($t.p.postData,sdata);
				}
				var saveurl;
				if(p.url) {
					saveurl = $t.p.url;
					$($t).jqGrid("setGridParam", { url: p.url });
				}
				var bsr = $($t).triggerHandler("jqGridToolbarBeforeSearch") === 'stop' ? true : false;
				if(!bsr && $.jgrid.isFunction(p.beforeSearch)){bsr = p.beforeSearch.call($t);}
				if(!bsr) { $($t).jqGrid("setGridParam",{search:sd}).trigger("reloadGrid",[ { page: currentPage } ] ); }
				if(saveurl) {$($t).jqGrid("setGridParam",{url:saveurl});}
				$($t).triggerHandler("jqGridToolbarAfterSearch");
				if($.jgrid.isFunction(p.afterSearch)){p.afterSearch.call($t);}
				if($t.p.frozenColumns) {
					setToolbarFozenVal(afrcol,sopt,ssfield, arcustom );
				}
			},
			clearToolbar = function(trigger){
				var sdata={}, so={}, j=0, nm, $elem, v;
				trigger = (typeof trigger !== 'boolean') ? true : trigger;
				$.each($t.p.colModel,function(){
					$elem = $("#gs_"+$t.p.idPrefix+$.jgrid.jqID(this.name),(this.frozen===true && $t.p.frozenColumns === true) ?  $t.grid.fhDiv : $t.grid.hDiv);
					if(this.searchoptions && this.searchoptions.defaultValue !== undefined) {
						v = this.searchoptions.defaultValue;
					} else {
						v = undefined;
					}
					nm = this.index || this.name;
					so[nm] = this.searchoptions && this.searchoptions.sopt ? this.searchoptions.sopt[0] : p.defaultSearch || 'eq';
					switch (this.stype) {
						case 'select' :
							$elem.find("option").each(function (i){
								if(i===0) { this.selected = true; }
								if ($(this).val() === v) {
									this.selected = true;
									return false;
								}
							});
							if ( v !== undefined ) {
								// post the key and not the text
								sdata[nm] = v;
								j++;
							} else {
								try {
									delete $t.p.postData[nm];
								} catch(e) {}
							}
							break;
						case 'text':
							$elem.val(v || "");
							if(v !== undefined) {
								sdata[nm] = v;
								j++;
							} else {
								try {
									delete $t.p.postData[nm];
								} catch (y){}
							}
							break;
						case 'custom':
							if ($.jgrid.isFunction(this.searchoptions.custom_value) && $elem.length > 0 ) {
								this.searchoptions.custom_value.call($t, $elem, "set", v || "");
							}
							break;
					}
				});
				var sd =  j>0 ? true : false;
				$t.p.resetsearch =  true;
				if(p.stringResult === true || $t.p.datatype === "local") {
					var ruleGroup = "{\"groupOp\":\"" + p.groupOp + "\",\"rules\":[";
					var gi=0;
					$.each(sdata,function(i,n){
						if (gi > 0) {ruleGroup += ",";}
						ruleGroup += "{\"field\":\"" + i + "\",";
						ruleGroup += "\"op\":\"" + so[i] + "\",";
						n+="";
						ruleGroup += "\"data\":\"" + n.replace(/\\/g,'\\\\').replace(/\"/g,'\\"') + "\"}";
						gi++;
						if(p.searchOperators) {
							$elem = $("#gs_"+$t.p.idPrefix+$.jgrid.jqID(i),(this.frozen===true && $t.p.frozenColumns === true) ?  $t.grid.fhDiv : $t.grid.hDiv);
							$elem.parents("table.ui-search-table").find("td.ui-search-oper").children("a").attr("soper", so[i]).html(p.operands[so[i]]);
						}
					});
					ruleGroup += "]}";
					if($t.p.mergeSearch === true && $t.p.searchModules.hasOwnProperty('filterToolbar') && $t.p.searchModules.filterToolbar !== false ) {
						if(gi > 0) {
							$t.p.searchModules.filterToolbar = ruleGroup;
						} else {
							$t.p.searchModules.filterToolbar = null;
						}
						sd = true;
						$.extend($t.p.postData,{filters: $.jgrid.splitSearch($t.p.searchModules)});
					} else {
						$.extend($t.p.postData,{filters:ruleGroup});
					}
					
					$.each(['searchField', 'searchString', 'searchOper'], function(i, n){
						if($t.p.postData.hasOwnProperty(n)) { delete $t.p.postData[n];}
					});
				} else {
					$.extend($t.p.postData,sdata);
				}
				var saveurl;
				if(p.url) {
					saveurl = $t.p.url;
					$($t).jqGrid("setGridParam",{url:p.url});
				}
				var bcv = $($t).triggerHandler("jqGridToolbarBeforeClear") === 'stop' ? true : false;
				if(!bcv && $.jgrid.isFunction(p.beforeClear)){bcv = p.beforeClear.call($t);}
				if(!bcv) {
					if(trigger) {
						$($t).jqGrid("setGridParam",{search:sd}).trigger("reloadGrid",[{page:1}]);
					}
				}
				if(saveurl) {$($t).jqGrid("setGridParam",{url:saveurl});}
				$($t).triggerHandler("jqGridToolbarAfterClear");
				if($.jgrid.isFunction(p.afterClear)){p.afterClear();}
			},
			toggleToolbar = function(){
				var trow = $("tr.ui-search-toolbar",$t.grid.hDiv);
				if($t.p.frozenColumns === true) {
					$($t).jqGrid('destroyFrozenColumns');
				}
				if(trow.css("display") === 'none') {
					trow.show();
				} else {
					trow.hide();
				}
				if($t.p.frozenColumns === true) {
					$($t).jqGrid("setFrozenColumns");
				}
			},
			buildRuleMenu = function( elem, left, top ){
				$("#sopt_menu").remove();

				left=parseInt(left,10);
				top=parseInt(top,10) + 18;

				var fs =  $('.ui-jqgrid').css('font-size') || '11px',
					str = '<ul id="sopt_menu" class="ui-search-menu modal-content" role="menu" tabindex="0" style="font-size:'+fs+';left:'+left+'px;top:'+top+'px;">',
					selected = $(elem).attr("soper"), selclass,
					aoprs = [], ina,
					i, nm = $(elem).attr("colname");
				i = $.jgrid.getElemByAttrVal($t.p.colModel, 'name', nm, true);
				if( i === -1 ) {
					return;
				}
				var cm = $t.p.colModel[i], options = $.extend({}, cm.searchoptions);
				if(!options.sopt) {
					options.sopt = [];
					options.sopt[0]= cm.stype==='select' ?  'eq' : p.defaultSearch;
				}
				$.each(p.odata, function() { aoprs.push(this.oper); });
				for ( i = 0 ; i < options.sopt.length; i++) {
					ina = $.inArray(options.sopt[i],aoprs);
					if(ina !== -1) {
						selclass = selected === p.odata[ina].oper ? common.highlight : "";
						str += '<li class="ui-menu-item '+selclass+'" role="presentation"><a class="'+ common.cornerall+' g-menu-item" tabindex="0" role="menuitem" value="'+p.odata[ina].oper+'" oper="'+p.operands[p.odata[ina].oper]+'"><table class="ui-common-table"><tr><td class="opersign">'+p.operands[p.odata[ina].oper]+'</td><td>'+ p.odata[ina].text+'</td></tr></table></a></li>';
					}
				}
				str += "</ul>";
				$('body').append(str);
				$("#sopt_menu").addClass("ui-menu " + classes.menu_widget);
				$("#sopt_menu > li > a").hover(
					function(){ $(this).addClass(common.hover); },
					function(){ $(this).removeClass(common.hover); }
				).click(function() {
					var v = $(this).attr("value"),
					oper = $(this).attr("oper");
					$($t).triggerHandler("jqGridToolbarSelectOper", [v, oper, elem]);
					$("#sopt_menu").hide();
					$(elem).text(oper).attr("soper",v);
					if(p.autosearch===true){
						var inpelm = $(elem).parent().next().children()[0];
						if( $(inpelm).val() || v==="nu" || v ==="nn" || $.inArray(v, unaryOpers) >=0) {
							triggerToolbar();
						}
					}
				});
			},
			setToolbarFozenVal = function( ffields, soper, smultiselect, arcustom) {
				var orgCol = $(".ui-search-toolbar", $t.grid.hDiv),
					frozenCol = $(".ui-search-toolbar", $t.grid.fhDiv);
				$.each(ffields, function(i,n){ 
					// multiselect
					// operations
					if(p.searchOperators) {
						var oper = soper[i];
						if(oper) {
							$(".ui-search-table .ui-search-oper [colname='userId']", orgCol).attr({'soper': oper}).text( p.operands[oper]);
							$(".ui-search-table .ui-search-oper [colname='userId']", frozenCol).attr({'soper': oper}).text( p.operands[oper]);
						}
					}
					// custom element
					if( $.inArray(i, arcustom) > -1) {
						var col = $.jgrid.getElemByAttrVal( $t.p.colModel, 'name', i );
						if ( col && col.searchoptions ) {
							var soptf = col.searchoptions || {};
							if( $.jgrid.isFunction( soptf.custom_value ) ) {
								var $elem = $("#gs_"+ $t.p.idPrefix + $.jgrid.jqID(i), $t.grid.fhDiv ),
								$elem2 = $("#gs_"+ $t.p.idPrefix + $.jgrid.jqID(i), $t.grid.hDiv);

								soptf.custom_value.call($t, $elem, "set", n);
								soptf.custom_value.call($t, $elem2, "set", n);
							}
 						}
					} else {
						$("#gs_"+ $t.p.idPrefix + $.jgrid.jqID(i), orgCol).val( n );
						$("#gs_"+ $t.p.idPrefix + $.jgrid.jqID(i), frozenCol).val( n );
					}
				});
			};
			// create the row
			var tr = $("<tr class='ui-search-toolbar' role='row'></tr>"),
			timeoutHnd, rules, filterobj;
			if( p.restoreFromFilters ) {
				if( $t.p.mergeSearch === true && $t.p.searchModules.hasOwnProperty('filterToolbar') && $t.p.searchModules.filterToolbar !== false) {
					filterobj = $t.p.searchModules.filterToolbar;
				} else {
					filterobj = $t.p.postData.filters;
				}
				if(filterobj) {
					if( typeof filterobj === "string") {
						filterobj = $.jgrid.parse( filterobj );
					}
					rules = (filterobj.rules && filterobj.rules.length) ? filterobj.rules : false;
				}
			}
			//p.disabledKeys = new Set(p.disabledKeys); // experimental 
			var dKeys = new Set(p.disabledKeys);
			if(dKeys.size !== p.disabledKeys.length) { // ie11
				for(var jj=0; jj< p.disabledKeys.length; jj++) {
					dKeys = new Set();
					dKeys.add(p.disabledKeys[jj]);
				}
			}
			var filterLabel;
			if (regional.filterFor) {
				filterLabel = regional.filterFor;
			}
			if($t.p.colSpanHeader.length) {
				$($t).jqGrid('destroyColSpanHeader', false);
			}
			
			$.each($t.p.colModel,function(ci){
				var cm=this, soptions, select="", sot="=", so, i, st, csv, df, elem, restores,
				th = $("<th role='columnheader' class='" + base.headerBox+" ui-th-"+$t.p.direction+" "+(cm.labelClasses || "")+"' id='gsh_" + $t.p.id + "_" + cm.name + "'></th>"),
				thd = $("<div><span aria-label=\"empty\" style=\"display: none;\">empty</span></div>"),
				stbl = $("<table class='ui-search-table' cellspacing='0'><tr><td class='ui-search-oper' headers=''></td><td class='ui-search-input' headers=''></td><td class='ui-search-clear' headers=''></td></tr></table>");
				if(this.hidden===true) { $(th).css("display","none");}
				this.search = this.search === false ? false : true;
				if(this.stype === undefined) {this.stype='text';}
				this.searchoptions = this.searchoptions || {};
				if(this.searchoptions.searchOperMenu === undefined) {
					this.searchoptions.searchOperMenu = true;
				}
				var title;
				if(filterLabel !== undefined){
					title = filterLabel + " " + $t.p.colNames[ci];
				} else {
					title = $t.p.colNames[ci];
				}
				soptions = $.extend({},this.searchoptions , {name:cm.index || cm.name, id: "gs_"+$t.p.idPrefix+cm.name, oper:'search', title:title});
				if(this.search){
					if( p.restoreFromFilters && rules) {
						restores = false;
						for( var is = 0; is < rules.length; is++) {
							if(rules[is].field ) {
								var snm = cm.index || cm.name;
								if( snm === rules[is].field) {
									restores = rules[is];
									break;
								}
							}
						}
					}
					if(p.searchOperators) {
						so  = (soptions.sopt) ? soptions.sopt[0] : cm.stype==='select' ?  'eq' : p.defaultSearch;
						// overwrite  search operators
						if( p.restoreFromFilters && restores) {
							so = restores.op;
						}
						for(i = 0;i<p.odata.length;i++) {
							if(p.odata[i].oper === so) {
								sot = p.operands[so] || "";
								break;
							}
						}
						st = soptions.searchtitle != null ? soptions.searchtitle : p.operandTitle;
						select = this.searchoptions.searchOperMenu ? "<a title='"+st+"' soper='"+so+"' class='soptclass' colname='"+this.name+"'>"+sot+"</a>" : "";
					}
					$("td",stbl).eq( 0 ).attr("columname", cm.name).append(select);
					if(soptions.clearSearch === undefined) {
						soptions.clearSearch = true;
					}
					if(soptions.clearSearch) {
						csv = p.resetTitle || 'Clear Search Value';
						$("td",stbl).eq( 2 ).append("<a title='"+csv+"' tabindex='0' style='padding-right: 0.3em;padding-left: 0.3em;' class='clearsearchclass'>"+p.resetIcon+"</a>");
					} else {
						$("td", stbl).eq( 2 ).hide();
					}
					if(this.surl) {
						soptions.dataUrl = this.surl;
					}
					df="";
					if(soptions.defaultValue ) {
						df = $.jgrid.isFunction(soptions.defaultValue) ? soptions.defaultValue.call($t) : soptions.defaultValue;
					}
					//overwrite default value if restore from filters
					if( p.restoreFromFilters && restores) {
						df = restores.data;
					}
					elem = $.jgrid.createEl.call($t, this.stype, soptions , df, false, $.extend({},$.jgrid.ajaxOptions, $t.p.ajaxSelectOptions || {}));
					if( this.stype !== 'custom') {
						if(this.stype==='select') {
							$(elem).addClass( classes.srSelect );
						} else  {
							$(elem).addClass( classes.srInput );
						}
					}
					$("td",stbl).eq( 1 ).append(elem);
					$(thd).append(stbl);
					if(soptions.dataEvents == null ) {
						soptions.dataEvents = [];
					}
					switch (this.stype)
					{
					case "select":
						if(p.autosearch === true) {
							soptions.dataEvents.push({
								type : "change",
								fn : function() {
									triggerToolbar();
									return false;
								}
							});
						}
						break;
					case "text":
					case "custom":
						if(p.autosearch===true){
							if(p.searchOnEnter) {
								soptions.dataEvents.push({
									type: "keypress",
									fn : function(e) {
										var key = e.charCode || e.keyCode || 0;
										if(key === 13){
											e.preventDefault();
											triggerToolbar();
											return false;
										}
										return this;
									}
								});
							} else {
								soptions.dataEvents.push({
									type: "keydown",
									fn : function(e) {
										var key = e.which;
										if( dKeys.has(key)) {
											// do nothing
										} else if( key === 13 ) {
											e.preventDefault();
											return false;
										} else {
											if(timeoutHnd) { clearTimeout(timeoutHnd); }
											timeoutHnd = setTimeout(function(){triggerToolbar();}, p.autosearchDelay);
										}
									}
								});
							}
						}
						break;
					}

					$.jgrid.bindEv.call($t, elem , soptions);
				}
				$(th).append(thd);
				$(tr).append(th);
				if(!p.searchOperators || select === "") {
					$("td",stbl).eq( 0 ).hide();
				}
			});
			$("table thead",$t.grid.hDiv).append(tr);
			if(p.searchOperators) {
				$(".soptclass",tr).click(function(e){
					var offset = $(this).offset(),
					left = ( offset.left ),
					top = ( offset.top);
					buildRuleMenu(this, left, top );
					e.stopPropagation();
				});
				$("body").on('click', function(e){
					if(e.target.className !== "soptclass") {
						$("#sopt_menu").remove();
					}
				});
			}
			$(".clearsearchclass",tr).click(function() {
				var ptr = $(this).parents("tr").first(),
					colname = $("td.ui-search-oper", ptr).attr('columname'), 
					coli=0,
					soper = $("td.ui-search-oper a", ptr).attr('soper'), 
					cm,
					vv;
				coli = $.jgrid.getElemByAttrVal($t.p.colModel, 'name', colname, true);
				if(coli === -1 ) {
					return false;
				}
				cm = $t.p.colModel[coli];
				var sval  = $.extend( {}, cm.searchoptions || {} ),
					dval = sval.defaultValue ? sval.defaultValue : "",
					elem;
				if(cm.stype === "select") {
					elem = $("td.ui-search-input select", ptr);
					if(dval) {
						elem.val( dval );
					} else {
						elem[0].selectedIndex = 0;
					}
				} else {
					elem = $("td.ui-search-input input", ptr);
					elem.val( dval );
				}
				$($t).triggerHandler("jqGridToolbarClearVal",[elem[0], coli, sval, dval]);
				if($.jgrid.isFunction(p.onClearSearchValue)) {
					p.onClearSearchValue.call($t, elem[0], coli, sval, dval);
				}
				var operText = "";
				if(soper==="nu" || soper==="nn" || $.inArray(soper, unaryOpers) >=0) {
					vv = sval.sopt ?
							sval.sopt[0] :
							cm.stype === "select" ?
								"eq" : 
								p.defaultSearch;
						operText = $t.p.customFilterDef != null && $t.p.customFilterDef[vv] != null ? 
						$t.p.customFilterDef[vv].operand :
						p.operands[vv] || "";
						if(vv === soper) {
							$("td.ui-search-oper a", ptr).attr('soper', 'dummy').text(operText);
						} else {
							$("td.ui-search-oper a", ptr).attr('soper',vv).text(operText);
						}
						
				}
				
				// ToDo custom search type
				if(p.autosearch===true){
					triggerToolbar();
					if(vv === soper) { 
						$("td.ui-search-oper a", ptr).attr('soper',vv).text(operText);
					}
				}
			});
			$(".clearsearchclass",tr).keydown(function(event) {
				if (event.keyCode === 13) {
					event.preventDefault();
					$(".clearsearchclass", tr).trigger("click");
				}
			});
			$($t.grid.hDiv).on("scroll", function(e){
				if(!$t.grid.hScroll) {
					$t.grid.bScroll = true;
				$t.grid.bDiv.scrollLeft = $t.grid.hDiv.scrollLeft;
					if($t.p.footerrow) {
						$t.grid.sDiv.scrollLeft = $t.grid.bDiv.scrollLeft;
					}
					if($t.p.headerrow) {
						$t.grid.hrDiv.scrollLeft = $t.grid.bDiv.scrollLeft;
					}
				}
				$t.grid.hScroll = false;
			});
			if($t.p.colSpanHeader.length) {
				setTimeout(function() { $($t).jqGrid('setColSpanHeader');},0);
			}			
			this.p.filterToolbar = true;
			this.triggerToolbar = triggerToolbar;
			this.clearToolbar = clearToolbar;
			this.toggleToolbar = toggleToolbar;
		});
	},
	destroyFilterToolbar: function () {
		return this.each(function () {
			if (!this.p.filterToolbar) {
				return;
			}
			this.triggerToolbar = null;
			this.clearToolbar = null;
			this.toggleToolbar = null;
			this.p.filterToolbar = false;
			$(this.grid.hDiv).find("table thead tr.ui-search-toolbar").remove();
		});
	},
	refreshFilterToolbar : function ( p ) {
		p = $.extend(true, {
			filters : "",
			onClearVal : null,
			onSetVal : null
		}, p || {});
		return this.each(function () {
			var $t = this, cm = $t.p.colModel, i, l = $t.p.colModel.length, params,
			searchitem, filters, rules, rule, ssfield =[], ia;
			// clear the values on toolbar.
			// do not call clearToolbar
			if(!$t.p.filterToolbar) {
				return;
			}
			params = $($t).data('filterToolbar');
			for (i = 0; i < l; i++) {
				ssfield.push(cm[i].index || cm[i].name);
				searchitem = $("#gs_" +$t.p.idPrefix+ $.jgrid.jqID(cm[i].name));
				switch (cm[i].stype) {
					case 'select' :
					case 'text' :
						searchitem.val("");
						break;
				}
				if($.jgrid.isFunction(p.onClearVal)) {
					p.onClearVal.call($t, searchitem, cm[i].name);
				}
			}
			function setrules (filter) {
				if(filter && filter.rules) { // condition to exit
					rules = filter.rules;
					l = rules.length;
					for (i = 0; i < l; i++) {
						rule = rules[i];
						ia = $.inArray(rule.field, ssfield);
						if( ia !== -1) {
							searchitem = $("#gs_" + $t.p.idPrefix + $.jgrid.jqID(cm[ia].name));
							// problem for between operator
							if ( searchitem.length > 0) {
								if (cm[ia].stype === "select") {
									searchitem.find("option[value='" + $.jgrid.jqID(rule.data) + "']").prop('selected', true);
								} else if (cm[ia].stype === "text") {
									searchitem.val(rule.data);
								}
								if($.jgrid.isFunction(p.onSetVal)) {
									p.onSetVal.call($t, searchitem, cm[ia].name);
								}
								if( params && params.searchOperators) {
									var fsi = searchitem.parent().prev();
									if( fsi.hasClass("ui-search-oper") ) {
										$(".soptclass", fsi ).attr("soper", rule.op);
										if(params.operands.hasOwnProperty(rule.op)) {
											$(".soptclass", fsi ).html( $.jgrid.stripScript( params.operands[rule.op] ) );
										}
									}
								}
							}
					    }
					}
					if(filter.groups) {
						for(var k=0;k<filter.groups.length;k++) {
							setrules(filter.groups[k]);
						}
					}
				}
			}
			if (typeof (p.filters) === "string") {
				if(p.filters.length) {
					filters = p.filters;
				// flat filters only
				} else if( $t.p.postData.hasOwnProperty("filters")) {
					filters = $t.p.postData.filters;
				}
				filters = $.jgrid.parse(filters);
			}
	        if ($.isPlainObject(filters)) {
				setrules( filters );
	        }
		});
	},
	searchGrid : function (p) {
		var regional =  $.jgrid.getRegional(this[0], 'search');
		p = $.extend(true, {
			recreateFilter: false,
			drag: true,
			sField:'searchField',
			sValue:'searchString',
			sOper: 'searchOper',
			sFilter: 'filters',
			loadDefaults: true, // this options activates loading of default filters from grid's postData for Multipe Search only.
			beforeShowSearch: null,
			afterShowSearch : null,
			onInitializeSearch: null,
			afterRedraw : null,
			afterChange: null,
			sortStrategy: null,
			closeAfterSearch : false,
			closeAfterReset: false,
			closeOnEscape : false,
			searchOnEnter : false,
			multipleSearch : false,
			multipleGroup : false,
			//cloneSearchRowOnAdd: true,
			top : 0,
			left: 0,
			jqModal : true,
			modal: false,
			resize : true,
			width: 450,
			height: 'auto',
			dataheight: 'auto',
			showQuery: false,
			errorcheck : true,
			sopt: null,
			stringResult: undefined,
			onClose : null,
			onSearch : null,
			onReset : null,
			toTop : true,
			overlay : 30,
			columns : [],
			tmplNames : null,
			tmplFilters : null,
			tmplLabel : ' Template: ',
			showOnLoad: false,
			layer: null,
			splitSelect : ",",
			groupOpSelect : "OR",
			operands : { "eq" :"=", "ne":"<>","lt":"<","le":"<=","gt":">","ge":">=","bw":"LIKE","bn":"NOT LIKE","in":"IN","ni":"NOT IN","ew":"LIKE","en":"NOT LIKE","cn":"LIKE","nc":"NOT LIKE","nu":"IS NULL","nn":"ISNOT NULL"},
			buttons :[]
		}, regional,  p || {});
		return this.each(function() {
			var $t = this;
			if(!$t.grid) {return;}
			var fid = "fbox_"+$t.p.id,
			showFrm = true,
			mustReload = true,
			IDs = {themodal:'searchmod'+fid,modalhead:'searchhd'+fid,modalcontent:'searchcnt'+fid, scrollelm : fid},
			defaultFilters,//  = ($.isPlainObject($t.p._savedFilter) && !$.isEmptyObject($t.p._savedFilter ) ) ? $t.p._savedFilter :  $t.p.postData[p.sFilter],
			fl,
			unaryOpers = [],
			classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].filter,
			common = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].common;
			p.styleUI = $t.p.styleUI;
			if($.isPlainObject($t.p._savedFilter) && !$.isEmptyObject($t.p._savedFilter )) {
				defaultFilters = $t.p._savedFilter;
			} else if($t.p.mergeSearch === true && $t.p.searchModules.hasOwnProperty('searchGrid') && $t.p.searchModules.searchGrid !== false ) {
				$.extend($t.p.postData,{filters: $.jgrid.splitSearch($t.p.searchModules)});
				defaultFilters =  $t.p.postData[p.sFilter];
			} else {
				defaultFilters = $t.p.postData[p.sFilter];
			}
			if(typeof defaultFilters === "string") {
				defaultFilters = $.jgrid.parse( defaultFilters );
			}
			if(p.recreateFilter === true) {
				$("#"+$.jgrid.jqID(IDs.themodal)).remove();
			}
			function showFilter(_filter) {
				showFrm = $($t).triggerHandler("jqGridFilterBeforeShow", [_filter]);
				if(showFrm === undefined) {
					showFrm = true;
				}
				if(showFrm && $.jgrid.isFunction(p.beforeShowSearch)) {
					showFrm = p.beforeShowSearch.call($t,_filter);
				}
				if(showFrm) {
					$.jgrid.viewModal("#"+$.jgrid.jqID(IDs.themodal),{gbox:"#gbox_"+$.jgrid.jqID( $t.p.id ),jqm:p.jqModal, modal:p.modal, overlay: p.overlay, toTop: p.toTop});
					$($t).triggerHandler("jqGridFilterAfterShow", [_filter]);
					if($.jgrid.isFunction(p.afterShowSearch)) {
						p.afterShowSearch.call($t, _filter);
					}
				}
			}
			if ( $("#"+$.jgrid.jqID(IDs.themodal))[0] !== undefined ) {
				showFilter($("#fbox_"+$.jgrid.jqID( $t.p.id )));
			} else {
				var fil = $("<div><div id='"+fid+"' class='searchFilter' style='overflow:auto'></div></div>").insertBefore("#gview_"+$.jgrid.jqID($t.p.id)),
				align = "left", butleft ="";
				if($t.p.direction === "rtl") {
					align = "right";
					butleft = " style='text-align:left'";
					fil.attr("dir","rtl");
				}
				var columns = $.extend([],$t.p.colModel),
				bS  ="<a id='"+fid+"_search' class='fm-button " + common.button + " fm-button-icon-right ui-search'><span class='" + common.icon_base + " " +classes.icon_search + "'></span>"+p.Find+"</a>",
				bC  ="<a id='"+fid+"_reset' class='fm-button " + common.button +" fm-button-icon-left ui-reset'><span class='" + common.icon_base + " " +classes.icon_reset + "'></span>"+p.Reset+"</a>",
				bQ = "", tmpl="", colnm, found = false, bt, cmi=-1, ms = false, ssfield = [];
				if(p.showQuery) {
					bQ ="<a id='"+fid+"_query' class='fm-button " + common.button + " fm-button-icon-left'><span class='" + common.icon_base + " " +classes.icon_query + "'></span>Query</a>";
				}
				var user_buttons = $.jgrid.buildButtons( p.buttons, bQ+ bS, common);

				// groupheaders names
				var groupH = null;
				if( $($t).jqGrid('isGroupHeaderOn') ) {
					var htable = $("table.ui-jqgrid-htable", $t.grid.hDiv), 
					secRow = htable.find(".jqg-second-row-header"),
					gh_len = $t.p.groupHeader.length;
					// use the last set one
					if(secRow[0] !== undefined) {
						groupH = $t.p.groupHeader[gh_len-1];
					}
				}
				if(!p.columns.length) {
					if(groupH !== null) {
						for(var ij=0;ij<columns.length; ij++){
							var iCol = $.jgrid.inColumnHeader( columns[ij].name, groupH.groupHeaders);
							if(iCol>=0) {
								columns[ij].label = groupH.groupHeaders[iCol].titleText + "::" + $t.p.colNames[ij];
								for(var jj= 1; jj<= groupH.groupHeaders[iCol].numberOfColumns-1; jj++) {
									columns[ij+jj].label = groupH.groupHeaders[iCol].titleText + "::"+$t.p.colNames[ij+jj];
								}
								ij = ij+groupH.groupHeaders[iCol].numberOfColumns-1;
							}
						}
					}
					$.each(columns, function(i,n){
						if(!n.label) {
							n.label = $t.p.colNames[i];
						}
						// find first searchable column and set it if no default filter
						if(!found) {
							var searchable = (n.search === undefined) ?  true: n.search ,
							hidden = (n.hidden === true),
							ignoreHiding = (n.searchoptions && n.searchoptions.searchhidden === true);
							if ((ignoreHiding && searchable) || (searchable && !hidden)) {
								found = true;
								colnm = n.index || n.name;
								cmi =i;
							}
						}
						if( n.stype==="select" &&  n.searchoptions && n.searchoptions.multiple) {
							ms = true;
							ssfield.push( n.index || n.name );
						}
					});
				} else {
					columns = p.columns;
					cmi = 0;
					colnm = columns[0].index || columns[0].name;
				}
				// old behaviour
				if( (!defaultFilters && colnm) || p.multipleSearch === false  ) {
					var cmop = "eq";
					if(cmi >=0 && columns[cmi].searchoptions && columns[cmi].searchoptions.sopt) {
						cmop = columns[cmi].searchoptions.sopt[0];
					} else if(p.sopt && p.sopt.length) {
						cmop = p.sopt[0];
					}
					defaultFilters = {groupOp: "AND", rules: [{field: colnm, op: cmop, data: ""}]};
				}
				found = false;
				if(p.tmplNames && p.tmplNames.length) {
					found = true;
					tmpl = "<tr><td class='ui-search-label'>"+ p.tmplLabel +"</td>";
					tmpl += "<td><select size='1' name='select_template' class='ui-template " + classes.srSelect + "'>";
					tmpl += "<option value='default'>Default</option>";
					$.each(p.tmplNames, function(i,n){
						tmpl += "<option value='"+i+"'>"+n+"</option>";
					});
					tmpl += "</select></td></tr>";
				}
				if ($t.p.customFilterDef !== undefined) {
					for(var uskey in $t.p.customFilterDef) {
						if($t.p.customFilterDef.hasOwnProperty(uskey)  && !p.operands.hasOwnProperty(uskey) ) {
							p.odata.push({ oper: uskey, text: $t.p.customFilterDef[uskey].text} );
							p.operands[uskey] = $t.p.customFilterDef[uskey].operand;
							if($t.p.customFilterDef[uskey].unary === true) {
								unaryOpers.push(uskey);
						}
					}
				}
				}
				bt = "<table class='EditTable' style='border:0px none;margin-top:5px' id='"+fid+"_2'><tbody><tr><td colspan='2'><hr class='" + common.content + "' style='margin:1px'/></td></tr>"+tmpl+"<tr><td class='EditButton' style='text-align:"+align+"'>"+bC+"</td><td class='EditButton' "+butleft+">"+ user_buttons +"</td></tr></tbody></table>";
				fid = $.jgrid.jqID( fid);
				$("#"+fid).jqFilter({
					columns: columns,
					sortStrategy: p.sortStrategy,
					filter: p.loadDefaults ? defaultFilters : null,
					showQuery: p.showQuery,
					errorcheck : p.errorcheck,
					sopt: p.sopt,
					groupButton : p.multipleGroup,
					ruleButtons : p.multipleSearch,
					uniqueSearchFields : p.uniqueSearchFields,
					afterRedraw : p.afterRedraw,
					ops : p.odata,
					operands : p.operands,
					ajaxSelectOptions: $t.p.ajaxSelectOptions,
					groupOps: p.groupOps,
					addsubgrup : p.addsubgrup,
					addrule : p.addrule,
					delgroup : p.delgroup,
					delrule : p.delrule,
					autoencode : $t.p.autoencode,
					unaryOperations : unaryOpers,
					onChange : function() {
						if(this.p.showQuery) {
							$('.query',this).text(this.toUserFriendlyString());
						}
						if ($.jgrid.isFunction(p.afterChange)) {
							p.afterChange.call($t, $("#"+fid), p);
						}
					},
					direction : $t.p.direction,
					id: $t.p.id
				});
				fil.append( bt );
				$("#"+fid+"_2").find("[data-index]").each(function(){
					var index = parseInt($(this).attr('data-index'),10);
					if(index >=0 ) {
						$(this).on('click', function(e) {
							p.buttons[index].click.call($t, $("#"+fid), p, e);
						});
					}
				});
				if(found && p.tmplFilters && p.tmplFilters.length) {
					$(".ui-template", fil).on('change', function(){
						var curtempl = $(this).val();
						if(curtempl==="default") {
							$("#"+fid).jqFilter('addFilter', defaultFilters);
						} else {
							$("#"+fid).jqFilter('addFilter', p.tmplFilters[parseInt(curtempl,10)]);
						}
						return false;
					});
				}
				if(p.multipleGroup === true) {p.multipleSearch = true;}
				$($t).triggerHandler("jqGridFilterInitialize", [$("#"+fid)]);
				if($.jgrid.isFunction(p.onInitializeSearch) ) {
					p.onInitializeSearch.call($t, $("#"+fid));
				}
				p.gbox = "#gbox_"+$.jgrid.jqID($t.p.id);//fid;
				var fs =  $('.ui-jqgrid').css('font-size') || '11px';
				if (p.layer) {
					$.jgrid.createModal(IDs ,fil,p,"#gview_"+$.jgrid.jqID($t.p.id),$("#gbox_"+$.jgrid.jqID($t.p.id))[0], (typeof p.layer ==="string" ? "#"+$.jgrid.jqID(p.layer) : p.layer), (typeof p.layer ==="string" ?  {position: "relative", "font-size":fs} :{ "font-size":fs} ) );
				} else {
					$.jgrid.createModal(IDs ,fil,p,"#gview_"+$.jgrid.jqID($t.p.id),$("#gbox_"+$.jgrid.jqID($t.p.id))[0], null, { "font-size":fs});
				}
				if (p.searchOnEnter || p.closeOnEscape) {
					$("#"+$.jgrid.jqID(IDs.themodal)).keydown(function (e) {
						var $target = $(e.target);
						if (p.searchOnEnter && e.which === 13 && // 13 === $.ui.keyCode.ENTER
								!$target.hasClass('add-group') && !$target.hasClass('add-rule') &&
								!$target.hasClass('delete-group') && !$target.hasClass('delete-rule') &&
								(!$target.hasClass("fm-button") || !$target.is("[id$=_query]"))) {
							e.preventDefault();
							$("#"+fid+"_search").click();
							return false;
						}
						if (p.closeOnEscape && e.which === 27) { // 27 === $.ui.keyCode.ESCAPE
							$("#"+$.jgrid.jqID(IDs.modalhead)).find(".ui-jqdialog-titlebar-close").click();
							return false;
						}
					});
				}
				if(bQ) {
					$("#"+fid+"_query").on('click', function(){
						$(".queryresult", fil).toggle();
						return false;
					});
				}
				if (p.stringResult===undefined) {
					// to provide backward compatibility, inferring stringResult value from multipleSearch
					p.stringResult = p.multipleSearch;
				}
				$("#"+fid+"_search").on('click', function(){
					var sdata={}, filters;
					fl = $("#"+fid);
					fl.find(".input-elm:focus").change();
					if( ms && p.multipleSearch) {
						$t.p._savedFilter = {};
						filters = $.jgrid.filterRefactor({
							ruleGroup: $.extend(true, {}, fl.jqFilter('filterData')),
							ssfield : ssfield,
							splitSelect : p.splitSelect,
							groupOpSelect : p.groupOpSelect
						});
						$t.p._savedFilter = $.extend(true, {}, fl.jqFilter('filterData'));
					} else {
						filters = fl.jqFilter('filterData');
					}
					if(p.errorcheck) {
						fl[0].hideError();
						if(!p.showQuery) {fl.jqFilter('toSQLString');}
						if(fl[0].p.error) {
							fl[0].showError();
							return false;
						}
					}

					if(p.stringResult) {
						sdata[p.sFilter] = JSON.stringify( filters );
						$.each([p.sField,p.sValue, p.sOper], function() {sdata[this] = "";});
					} else {
						if(p.multipleSearch) {
							sdata[p.sFilter] = filters;
							$.each([p.sField,p.sValue, p.sOper], function() {sdata[this] = "";});
						} else {
							sdata[p.sField] = filters.rules[0].field;
							sdata[p.sValue] = filters.rules[0].data;
							sdata[p.sOper] = filters.rules[0].op;
							sdata[p.sFilter] = "";
						}
					}
					if(typeof sdata[p.sFilter] !== "string") {
						sdata[p.sFilter] = JSON.stringify( sdata[p.sFilter] );
					}
					$t.p.search = true;
					if($t.p.mergeSearch === true && $t.p.searchModules.hasOwnProperty('searchGrid') && $t.p.searchModules.searchGrid !== false  && p.multipleSearch) {
						if(sdata[p.sFilter] !==  "") {
							$t.p.searchModules.searchGrid = sdata[p.sFilter];
						} else {
							$t.p.searchModules.searchGrid = null;
						}
						$.extend($t.p.postData,{filters: $.jgrid.splitSearch($t.p.searchModules)});						
					} else {
						$.extend($t.p.postData,sdata);
					}
					mustReload = $($t).triggerHandler("jqGridFilterSearch");
					if( mustReload === undefined) {
						mustReload = true;
					}
					if(mustReload && $.jgrid.isFunction(p.onSearch) ) {
						mustReload = p.onSearch.call($t, $t.p.filters);
					}
					if (mustReload !== false) {
						$($t).trigger("reloadGrid",[{page:1}]);
					}
					if(p.closeAfterSearch) {
						$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID($t.p.id),jqm:p.jqModal,onClose: p.onClose});
					}
					return false;
				});
				$("#"+fid+"_reset").on('click', function(){
					var sdata={},
					fl = $("#"+fid);
					$t.p.search = false;
					$t.p.resetsearch =  true;
					if(p.multipleSearch===false) {
						sdata[p.sField] = sdata[p.sValue] = sdata[p.sOper] = "";
					} else {
						sdata[p.sFilter] = "";
					}
					fl[0].resetFilter();
					if(found) {
						$(".ui-template", fil).val("default");
					}
					if($t.p.mergeSearch === true && $t.p.searchModules.hasOwnProperty('searchGrid') && $t.p.searchModules.searchGrid !== false ) {
						$t.p.searchModules.searchGrid = null;
						$.extend($t.p.postData,{filters: $.jgrid.splitSearch($t.p.searchModules)});
						$t.p.search = true;
					} else {
						$.extend($t.p.postData,sdata);
					}
					mustReload = $($t).triggerHandler("jqGridFilterReset");
					if(mustReload === undefined) {
						mustReload = true;
					}
					if(mustReload && $.jgrid.isFunction(p.onReset) ) {
						mustReload = p.onReset.call($t);
					}
					if(mustReload !== false) {
						$($t).trigger("reloadGrid",[{page:1}]);
					}
					if (p.closeAfterReset) {
						$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID($t.p.id),jqm:p.jqModal,onClose: p.onClose});
					}
					return false;
				});
				showFilter($("#"+fid));
				$(".fm-button:not(."+common.disabled+")",fil).hover(
					function(){$(this).addClass(common.hover);},
					function(){$(this).removeClass(common.hover);}
				);
			}
		});
	},
	filterInput : function( val, p) {
		p = $.extend(true, {
			defaultSearch : 'cn',
			groupOp : 'OR',
			searchAll : false,
			beforeSearch : null,
			afterSearch : null,
			selectFirstFound : false,
			firstFoundTimeout : 30
		}, p || {});
		return this.each(function(){
			var $t = this;
			if(!$t.grid) {return;}
			var nm, sop,ruleGroup = "{\"groupOp\":\"" + p.groupOp + "\",\"rules\":[", gi=0, so, searchable;
			val +="";
			//if($t.p.datatype !== 'local') { return; }
			$.each($t.p.colModel,function(){
				nm = this.index || this.name;
				sop = this.searchoptions || {};
				so  = p.defaultSearch ? p.defaultSearch : (sop.sopt) ? sop.sopt[0] : p.defaultSearch;
				searchable =  this.search === undefined  ? true : this.search;
				if ((searchable || p.searchAll) && val !== "") {
					if (gi > 0) {ruleGroup += ",";}
					ruleGroup += "{\"field\":\"" + nm + "\",";
					ruleGroup += "\"op\":\"" + so + "\",";
					ruleGroup += "\"data\":\"" + val.replace(/\\/g,'\\\\').replace(/\"/g,'\\"') + "\"}";
					gi++;
				}
			});
			ruleGroup += "]}";
			if($t.p.mergeSearch === true && $t.p.searchModules.hasOwnProperty('filterInput') && $t.p.searchModules.filterInput !== false  ) {
				if(gi > 0) {
					$t.p.searchModules.filterInput = ruleGroup;
				} else {
					$t.p.searchModules.filterInput = null;
				}
				$.extend($t.p.postData,{filters: $.jgrid.splitSearch($t.p.searchModules)});
			} else {
				$.extend($t.p.postData,{filters:ruleGroup});
			}
			$.each(['searchField', 'searchString', 'searchOper'], function(i, n){
				if($t.p.postData.hasOwnProperty(n)) { delete $t.p.postData[n];}
			});
			var bsr = $($t).triggerHandler("jqGridFilterInputBeforeSearch") === 'stop' ? true : false;
			if(!bsr && $.jgrid.isFunction(p.beforeSearch)){bsr = p.beforeSearch.call($t);}
			if(!bsr) { $($t).jqGrid("setGridParam",{search:true}).trigger("reloadGrid",[{page:1}]); }
			if(p.selectFirstFound ) {
				setTimeout(function(){
					var row = $($t).jqGrid('getGridRowByIndex', 1);
					$($t).jqGrid("setSelection", row.id, false);
				}, p.firstFoundTimeout);
			}
			$($t).triggerHandler("jqGridFilterInputAfterSearch");
			if($.jgrid.isFunction(p.afterSearch)){p.afterSearch.call($t);}
		});
	},
	autoSelect : function (o) {
		o = $.extend(true,{
			field : "",
			direction : "asc",
			src_date : "Y-m-d",
			allValues : "All",
			count_item : true,
			create_value : true
		}, o || {} );
		return this.each(function() {
			var $t = this, item, sdata="";
			if( o.field && $t.p.data && Array.isArray( $t.p.data )) {
				var query, res, s_cnt, tmp = [], cm,
				result, i;

				try {
					query = $.jgrid.from.call($t, $t.p.data);
					result = query.groupBy( o.field, o.direction, "text", o.src_date);
					i = result.length;
				} catch(e) {

				}
				if(result && result.length) {
					res =  $("#gsh_"+$t.p.id+"_"+o.field).find("td.ui-search-input > select");
					i = result.length;
					if(o.allValues) {
						sdata = "<option value=''>"+ o.allValues +"</option>";
						tmp.push(":" + o.allValues);
					}
					while(i--) {
						item = result[i];
						s_cnt = o.count_item ? " (" +item.items.length+")" : "";
						sdata += "<option value='"+item.unique+"'>"+ item.unique + s_cnt+"</option>";
						tmp.push(item.unique+":"+item.unique + s_cnt);
					}
					res.append(sdata);
					res.on('change',function(){
						$t.triggerToolbar();
					});
					if( o.create_value ) {
						cm = $.jgrid.getElemByAttrVal($t.p.colModel, 'name', o.field, false);
						if( !$.isEmptyObject( cm ) ) {
							if( cm.searchoptions ) {
								$.extend(cm.searchoptions, {value: tmp.join(";")});
							} else {
								cm.searchoptions = {};
								cm.searchoptions.value = tmp.join(";");
							}
						}
					}
				}
			}
		});
	}
});
//module end
}));
js/jquery.jqGrid.min.js000064400001705627151676727230011100 0ustar00/**
*
* @license Guriddo jqGrid JS - v5.8.7 - 2024-06-01
* Copyright(c) 2008, Tony Tomov, tony@trirand.com
* 
* License: http://guriddo.net/?page_id=103334
*/
!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)}(function(Ye){"use strict";Ye.jgrid=Ye.jgrid||{},Ye.jgrid.hasOwnProperty("defaults")||(Ye.jgrid.defaults={}),Ye.extend(Ye.jgrid,{version:"5.8.7",isNull:function(e,t){return t&&!0===t?null===e:null==e},trim:function(e){return"string"==typeof e?e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""):e},isFunction:function(e){return"function"==typeof e},type:function(e,t){return t?null===e?"[object Null]":Object.prototype.toString.call(e):null==e?(e+"").toLowerCase():"generatorfunction"===(t=Object.prototype.toString.call(e).slice(8,-1).toLowerCase())?"function":t.match(/^(array|bigint|date|error|function|generator|regexp|symbol)$/)?t:"object"==typeof e||"function"==typeof e?"object":typeof e},floatNum:function(e,t){return void 0===t&&(t=0),e=parseFloat(e),isNaN(e)?t:e},htmlDecode:function(e){return e&&("&nbsp;"===e||"&#160;"===e||1===e.length&&160===e.charCodeAt(0))?"":e&&String(e).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&quot;/g,'"').replace(/&amp;/g,"&")},htmlEncode:function(e){return e&&String(e).replace(/&/g,"&amp;").replace(/\"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")},template:function(e){var o,a=Ye.makeArray(arguments).slice(1),n=a.length;return(e=Ye.jgrid.isNull(e)?"":e).replace(/\{([\w\-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g,function(e,t){if(!isNaN(parseInt(t,10)))return a[parseInt(t,10)];for(o=0;o<n;o++)if(Array.isArray(a[o])){for(var r=a[o],i=r.length;i--;)if(t===r[i].nm)return r[i].v}else if("object"==typeof a[o]&&a[o][t])return Ye.jgrid.isFunction(a[o][t])?a[o][t]():a[o][t]})},msie:function(){return 0<Ye.jgrid.msiever()},msiever:function(){var e=0,t=window.navigator.userAgent,r=t.indexOf("MSIE");return 0<r?e=parseInt(t.substring(r+5,t.indexOf(".",r))):navigator.userAgent.match(/Trident\/7\./)&&(e=11),e},getCellIndex:function(e){e=Ye(e);return e.is("tr")?-1:(e=(e.is("td")||e.is("th")?e:e.closest("td,th"))[0],Ye.jgrid.msie()?Ye.inArray(e,e.parentNode.cells):e.cellIndex)},stripHtml:function(e){return(e=String(e))&&((e=e.replace(/<("[^"]*"|'[^']*'|[^'">])*>/gi,""))&&"&nbsp;"!==e&&"&#160;"!==e?e.replace(/\"/g,"'"):"")},stripPref:function(e,t){var r=Ye.jgrid.type(e);return t="string"!==r&&"number"!==r?t:""!==(e=String(e))?String(t).replace(String(e),""):t},stripScript:function(e){return e.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi," ")},useJSON:!0,runCode:function(e){return Function('"use strict";return ('+e+")")()},parse:function(e){e=(e="/*"===(e="while(1);"===(e=e).slice(0,9)?e.slice(9):e).slice(0,2)?e.slice(2,e.length-2):e)||"{}";return!0===Ye.jgrid.useJSON&&"object"==typeof JSON&&"function"==typeof JSON.parse?JSON.parse(e):Ye.jgrid.runCode(e)},dateToOADate:function(e){var t=new Date(e);return Math.round((t.setHours(0,0,0,0)-new Date(1899,11,30))/864e5)+(Math.abs((e-t)%864e5)/864e5).toFixed(10).slice(1)},parseDate:function(e,t,r,i){function o(e,t){for(e=String(e),t=parseInt(t,10)||2;e.length<t;)e="0"+e;return e}function a(e,t){return 0===e?12===t&&(t=0):12!==t&&(t+=12),t}var n,l,s,d=new RegExp("^/Date\\((([-+])?[0-9]+)(([-+])([0-9]{2})([0-9]{2}))?\\)/$"),d="string"==typeof t?t.match(d):null,p={m:1,d:1,y:1970,h:0,i:0,s:0,u:0},c=0,u=0;if(void 0===(i=void 0===(i=void 0===i?Ye.jgrid.getRegional(this,"formatter.date"):i)?{}:i).parseRe&&(i.parseRe=/[#%\\\/:_;.,\t\s-]/),void 0===i.AmPm&&(i.AmPm=["am","pm","AM","PM"]),i.masks&&i.masks.hasOwnProperty(e)&&(e=i.masks[e]),t&&!Ye.jgrid.isNull(t))if(isNaN(+t)||"u"!==String(e).toLowerCase())if(t.constructor===Date)c=t,i.validate=!1;else if(null!==d)c=new Date(parseInt(d[1],10)),d[3]&&(u=60*Number(d[5])+Number(d[6]),u=(u*="-"===d[4]?1:-1)-c.getTimezoneOffset(),c.setTime(Number(Number(c)+60*u*1e3))),i.validate=!1;else{for("ISO8601Long"===i.srcformat&&"Z"===t.charAt(t.length-1)&&(u-=(new Date).getTimezoneOffset()),t=String(t).replace(/\T/g,"#").replace(/\t/,"%").split(i.parseRe),l=0,s=(e=e.replace(/\T/g,"#").replace(/\t/,"%").split(i.parseRe)).length;l<s;l++){switch(e[l]){case"M":-1!==(n=Ye.inArray(t[l],i.monthNames))&&n<12&&(t[l]=n+1,p.m=t[l]);break;case"F":-1!==(n=Ye.inArray(t[l],i.monthNames,12))&&11<n&&(t[l]=n+1-12,p.m=t[l]);break;case"n":e[l]="m";break;case"j":e[l]="d";break;case"a":-1!==(n=Ye.inArray(t[l],i.AmPm))&&n<2&&t[l]===i.AmPm[n]&&(t[l]=n,p.h=a(t[l],p.h));break;case"A":-1!==(n=Ye.inArray(t[l],i.AmPm))&&1<n&&t[l]===i.AmPm[n]&&(t[l]=n-2,p.h=a(t[l],p.h));break;case"g":p.h=parseInt(t[l],10)}void 0!==t[l]&&(p[e[l].toLowerCase()]=parseInt(t[l],10))}if(p.f&&(p.m=p.f),0===p.m&&0===p.y&&0===p.d)return"&#160;";p.m=parseInt(p.m,10)-1;d=p.y;70<=d&&d<=99?p.y=1900+p.y:0<=d&&d<=69&&(p.y=2e3+p.y),c=new Date(p.y,p.m,p.d,p.h,p.i,p.s,p.u),0!==u&&c.setTime(Number(Number(c)+60*u*1e3))}else c=new Date(1e3*parseFloat(t)),i.validate=!1;else c=new Date(p.y,p.m,p.d,p.h,p.i,p.s,p.u);if(i&&!0===i.validate)return d=new Date(p.y,+p.m,p.d,p.h,p.i),Boolean(+d)&&d.getDate()===p.d&&d.getHours()===p.h&&d.getMinutes()===p.i;if(i.userLocalTime&&0===u&&0!==(u-=(new Date).getTimezoneOffset())&&c.setTime(Number(Number(c)+60*u*1e3)),void 0===r)return c;r=i.masks&&i.masks.hasOwnProperty(r)?i.masks[r]:r||"Y-m-d";var d=c.getHours(),u=c.getMinutes(),h=c.getDate(),g=c.getMonth()+1,f=c.getTimezoneOffset(),m=c.getSeconds(),v=c.getMilliseconds(),j=c.getDay(),b=c.getFullYear(),y=(j+6)%7+1,w=(new Date(b,g-1,h)-new Date(b,0,1))/864e5,x={d:o(h),D:i.dayNames[j],j:h,l:i.dayNames[j+7],N:y,S:i.S(h),w:j,z:w,W:y<5?Math.floor((w+y-1)/7)+1:Math.floor((w+y-1)/7)||((new Date(b-1,0,1).getDay()+6)%7<4?53:52),F:i.monthNames[g-1+12],m:o(g),M:i.monthNames[g-1],n:g,t:"?",L:"?",o:"?",Y:b,y:String(b).substring(2),a:d<12?i.AmPm[0]:i.AmPm[1],A:d<12?i.AmPm[2]:i.AmPm[3],B:"?",g:d%12||12,G:d,h:o(d%12||12),H:o(d),i:o(u),s:o(m),u:v,e:"?",I:"?",O:(0<f?"-":"+")+o(100*Math.floor(Math.abs(f)/60)+Math.abs(f)%60,4),P:(0<f?"-":"+")+(h=o(100*Math.floor(Math.abs(f)/60)+Math.abs(f)%60,4),j=-2,w=":",(h=String(h)).slice(0,j)+w+h.slice(j)),T:(String(c).match(/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g)||[""]).pop().replace(/[^-+\dA-Z]/g,""),Z:"?",c:"?",r:"?",U:Math.floor(c/1e3)};return r.replace(/\\.|[dDjlNSwzWFmMntLoYyaABgGhHisueIOPTZcrU]/g,function(e){return x.hasOwnProperty(e)?x[e]:e.substring(1)})},jqID:function(e){return String(e).replace(/[!"#$%&'()*+,.\/:; <=>?@\[\\\]\^`{|}~]/g,"\\$&")},guid:1,uidPref:"jqg",randId:function(e){return(e||Ye.jgrid.uidPref)+Ye.jgrid.guid++},getAccessor:function(e,t){var r,i,o=[];if("function"==typeof t)return t(e);if(void 0===(r=e[t]))try{if(i=(o="string"==typeof t?t.split("."):o).length)for(r=e;r&&i--;)r=r[o.shift()]}catch(e){}return r},getXmlData:function(e,t,r){var i="string"==typeof t?t.match(/^(.*)\[(\w+)\]$/):null;return"function"==typeof t?t(e):i&&i[2]?(i[1]?Ye(i[1],e):Ye(e)).attr(i[2]):(i=Ye(t,e),r?i:0<i.length?Ye(i).text():void 0)},cellWidth:function(){var e=Ye("<div class='ui-jqgrid' style='left:10000px'><table class='ui-jqgrid-btable ui-common-table' style='width:5px;'><tr class='jqgrow'><td style='width:5px;display:block;'></td></tr></table></div>"),t=e.appendTo("body").find("td").width();return e.remove(),.1<Math.abs(t-5)},isLocalStorage:function(){try{return"localStorage"in window&&null!==window.localStorage}catch(e){return!1}},getRegional:function(e,t,r){var i;return void 0!==r?r:void 0===(i=e.p&&e.p.regional&&Ye.jgrid.regional?Ye.jgrid.getAccessor(Ye.jgrid.regional[e.p.regional]||{},t):i)?Ye.jgrid.getAccessor(Ye.jgrid,t):i},isMobile:function(){try{return/Android|webOS|iPhone|iPad|iPod|pocket|psp|kindle|avantgo|blazer|midori|Tablet|Palm|maemo|plucker|phone|BlackBerry|symbian|IEMobile|mobile|ZuneWP7|Windows Phone|Opera Mini/i.test(navigator.userAgent)?!0:!1}catch(e){return!1}},cell_width:!0,scrollbarWidth:function(){var e=Ye('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div>'),t=(Ye("body").append(e),Ye("div",e).innerWidth()),r=(e.css("overflow-y","scroll"),Ye("div",e).innerWidth());return Ye(e).remove(),t-r<0?18:t-r},scrollbarHeight:function(){var e=Ye('<div style="width:50px;overflow-x:scroll;position:absolute;top:-200px;left:-200px;"<span>1234567890</span></div>'),t=(Ye("body").append(e),Ye(e).outerHeight()),r=Ye(e)[0].scrollHeight;return Ye(e).remove(),t-r<0?18:t-r},ajaxOptions:{},from:function(e){var v=this;return new function(e,t){"string"==typeof e&&(e=Ye.data(e));var g=this,o=e,f=!0,r=!1,i=t,m=/[\$,%]/g,a=null,n=null,l=0,s=!1,d="",u=[],p=!0;if("object"==typeof e&&e.push)return 0<e.length&&(p="object"==typeof e[0]),this._hasData=function(){return null!==o&&0!==o.length},this._getStr=function(e){var t=[];return r&&t.push("$.jgrid.trim("),t.push("String("+e+")"),r&&t.push(")"),f||t.push(".toLowerCase()"),t.join("")},this._strComp=function(e){return"string"==typeof e?".toString()":""},this._group=function(e,t){return{field:e.toString(),unique:t,items:[]}},this._toStr=function(e){return e=(e=r?Ye.jgrid.trim(e):e).toString().replace(/\\/g,"\\\\").replace(/\"/g,'\\"'),f?e:e.toLowerCase()},this._funcLoop=function(r){var i=[];return Ye.each(o,function(e,t){i.push(r(t))}),i},this._append=function(e){var t;for(null===i?i="":i+=""===d?" && ":d,t=0;t<l;t++)i+="(";s&&(i+="!"),i+="("+e+")",s=!1,d="",l=0},this._setCommand=function(e,t){a=e,n=t},this._resetNegate=function(){s=!1},this._repeatCommand=function(e,t){return null===a?g:null!==e&&null!==t?a(e,t):null!==n&&p?a(n,e):a(e)},this._equals=function(e,t){return 0===g._compare(e,t,1)},this._compare=function(e,t,r){var i=Object.prototype.toString;return void 0===r&&(r=1),void 0===t&&(t=null),null===(e=void 0===e?null:e)&&null===t?0:null===e&&null!==t?1:null!==e&&null===t?-1:"[object Date]"===i.call(e)&&"[object Date]"===i.call(t)||"number"==typeof e&&"number"==typeof t?t<e?r:e<t?-r:0:(i=String(e).localeCompare(String(t)))<0?-r:0<i?r:0},this._performSort=function(){0!==u.length&&(o=g._doSort(o,0))},this._doSort=function(e,t){var r=u[t].by,i=u[t].dir,o=u[t].type,a=u[t].datefmt,n=u[t].sfunc;if(t===u.length-1)return g._getOrder(e,r,i,o,a,n);t++;for(var l,s,d=g._getGroup(e,r,i,o,a),p=[],c=0;c<d.length;c++)for(s=g._doSort(d[c].items,t),l=0;l<s.length;l++)p.push(s[l]);return p},this._getOrder=function(e,r,t,i,o,a){for(var n,l,s,d,p=[],c=[],u="a"===t?1:-1,h=(d="float"===(i=void 0===i?"text":i)||"number"===i||"currency"===i||"numeric"===i?function(e){e=parseFloat(String(e).replace(m,""));return isNaN(e)?Number.NEGATIVE_INFINITY:e}:"int"===i||"integer"===i?function(e){return e?parseFloat(String(e).replace(m,"")):Number.NEGATIVE_INFINITY}:"date"===i||"datetime"===i?function(e){return Ye.jgrid.parseDate.call(v,o,e).getTime()}:Ye.jgrid.isFunction(i)?i:function(e){return e=e?Ye.jgrid.trim(String(e)):"",f?e:e.toLowerCase()},Ye.each(e,function(e,t){l=""!==r?Ye.jgrid.getAccessor(t,r):t,l=d(l=void 0===l?"":l,t),c.push({vSort:l,index:e})}),Ye.jgrid.isFunction(a)?c.sort(function(e,t){return a.call(this,e.vSort,t.vSort,u,e,t)}):c.sort(function(e,t){return g._compare(e.vSort,t.vSort,u)}),s=0,e.length);s<h;)n=c[s].index,p.push(e[n]),s++;return p},this._getGroup=function(e,r,t,i,o){var a,n=[],l=null,s=null;return Ye.each(g._getOrder(e,r,t,i,o),function(e,t){a=Ye.jgrid.getAccessor(t,r),Ye.jgrid.isNull(a)&&(a=""),g._equals(s,a)||(s=a,null!==l&&n.push(l),l=g._group(r,a)),l.items.push(t)}),null!==l&&n.push(l),n},this.ignoreCase=function(){return f=!1,g},this.useCase=function(){return f=!0,g},this.trim=function(){return r=!0,g},this.noTrim=function(){return r=!1,g},this.execute=function(){var e=i,t=[];return null!==e&&(Ye.each(o,function(){Ye.jgrid.runCode.call(v,e.replace(/this/g,JSON.stringify(this)))&&t.push(this)}),o=t),g},this.data=function(){return o},this.select=function(r){var i;return g._performSort(),g._hasData()?(g.execute(),Ye.jgrid.isFunction(r)?(i=[],Ye.each(o,function(e,t){i.push(r(t))}),i):o):[]},this.hasMatch=function(){return!!g._hasData()&&(g.execute(),0<o.length)},this.andNot=function(e,t,r){return s=!s,g.and(e,t,r)},this.orNot=function(e,t,r){return s=!s,g.or(e,t,r)},this.not=function(e,t,r){return g.andNot(e,t,r)},this.and=function(e,t,r){return d=" && ",void 0===e?g:g._repeatCommand(e,t,r)},this.or=function(e,t,r){return d=" || ",void 0===e?g:g._repeatCommand(e,t,r)},this.orBegin=function(){return l++,g},this.orEnd=function(){return null!==i&&(i+=")"),g},this.isNot=function(e){return s=!s,g.is(e)},this.is=function(e){return g._append("this."+e),g._resetNegate(),g},this._compareValues=function(e,t,r,i,o){var a=p?"jQuery.jgrid.getAccessor(this,'"+t+"')":"this",n=r=void 0===r?null:r,l=void 0===o.stype?"text":o.stype;if(null!==r)switch(l){case"int":case"integer":a="parseInt("+a+",10)",n="parseInt("+(n=isNaN(Number(n))||""===n?Number.NEGATIVE_INFINITY:n)+",10)";break;case"float":case"number":case"numeric":n=String(n).replace(m,""),a="parseFloat("+a+")",n="parseFloat("+(n=isNaN(Number(n))||""===n?Number.NEGATIVE_INFINITY:Number(n))+")";break;case"date":case"datetime":n=String(Ye.jgrid.parseDate.call(v,o.srcfmt||"Y-m-d",n).getTime()),a='jQuery.jgrid.parseDate.call(jQuery("#'+Ye.jgrid.jqID(v.p.id)+'")[0],"'+o.srcfmt+'",'+a+").getTime()";break;default:a=g._getStr(a),n=g._getStr('"'+g._toStr(n)+'"')}return g._append(a+" "+i+" "+n),g._setCommand(e,t),g._resetNegate(),g},this.equals=function(e,t,r){return g._compareValues(g.equals,e,t,"==",r)},this.notEquals=function(e,t,r){return g._compareValues(g.equals,e,t,"!==",r)},this.isNull=function(e,t,r){return g._compareValues(g.equals,e,null,"===",r)},this.greater=function(e,t,r){return g._compareValues(g.greater,e,t,">",r)},this.less=function(e,t,r){return g._compareValues(g.less,e,t,"<",r)},this.greaterOrEquals=function(e,t,r){return g._compareValues(g.greaterOrEquals,e,t,">=",r)},this.lessOrEquals=function(e,t,r){return g._compareValues(g.lessOrEquals,e,t,"<=",r)},this.startsWith=function(e,t){return p?g._append(g._getStr("jQuery.jgrid.getAccessor(this,'"+e+"')")+".startsWith("+g._getStr('"'+g._toStr(t)+'"')+")"):g._append(g._getStr("this")+".startsWith("+g._getStr('"'+g._toStr(e)+'"')+")"),g._setCommand(g.startsWith,e),g._resetNegate(),g},this.endsWith=function(e,t){return p?g._append(g._getStr("jQuery.jgrid.getAccessor(this,'"+e+"')")+".endsWith("+g._getStr('"'+g._toStr(t)+'"')+")"):g._append(g._getStr("this")+".endsWith("+g._getStr('"'+g._toStr(e)+'"')+")"),g._setCommand(g.endsWith,e),g._resetNegate(),g},this.contains=function(e,t){return p?g._append(g._getStr("jQuery.jgrid.getAccessor(this,'"+e+"')")+'.indexOf("'+g._toStr(t)+'",0) > -1'):g._append(g._getStr("this")+'.indexOf("'+g._toStr(e)+'",0) > -1'),g._setCommand(g.contains,e),g._resetNegate(),g},this.user=function(e,t,r){var i='$("#'+v.p.id+'")[0]';return g._append(i+".p.customFilterDef."+e+".action.call("+i+' ,{rowItem: this, searchName:"'+t+'",searchValue:"'+r+'"})'),g._setCommand(g.user,t),g._resetNegate(),g},this.inData=function(e,t,r){t=void 0===t?"":g._getStr('"'+g._toStr(t)+'"');return p?g._append(t+".split(',').indexOf( jQuery.jgrid.getAccessor(this,'"+e+"') ) > -1"):g._append(t+".split(',').indexOf(this."+e+") > -1"),g._setCommand(g.inData,e),g._resetNegate(),g},this.groupBy=function(e,t,r,i){return g._hasData()?g._getGroup(o,e,t,r,i):null},this.orderBy=function(e,t,r,i,o){return t=Ye.jgrid.isNull(t)?"a":Ye.jgrid.trim(t.toString().toLowerCase()),Ye.jgrid.isNull(r)&&(r="text"),Ye.jgrid.isNull(i)&&(i="Y-m-d"),Ye.jgrid.isNull(o)&&(o=!1),u.push({by:e,dir:t="asc"!==(t="desc"!==t&&"descending"!==t?t:"d")&&"ascending"!==t?t:"a",type:r,datefmt:i,sfunc:o}),g},g;throw"data provides is not an array"}(e,null)},getMethod:function(e){return this.getAccessor(Ye.fn.jqGrid,e)},extend:function(e){Ye.extend(Ye.fn.jqGrid,e),this.no_legacy_api||Ye.fn.extend(e)},clearBeforeUnload:function(e){var t,r=Ye("#"+Ye.jgrid.jqID(e))[0];if(r.grid){t=r.grid,Ye.jgrid.isFunction(t.emptyRows)&&t.emptyRows.call(r,!0,!0),Ye(document).off("mouseup.jqGrid"+r.p.id),Ye(t.hDiv).off("mousemove"),Ye(r).off();for(var i=t.headers.length,o=["formatCol","sortData","updatepager","refreshIndex","setHeadCheckBox","constructTr","formatter","addXmlData","addJSONData","grid","p","addLocalData"],a=0;a<i;a++)t.headers[a].el=null;for(a in t)t.hasOwnProperty(a)&&(t[a]=null);for(a in r.p)r.p.hasOwnProperty(a)&&(r.p[a]=Array.isArray(r.p[a])?[]:null);for(i=o.length,a=0;a<i;a++)r.hasOwnProperty(o[a])&&(r[o[a]]=null,delete r[o[a]])}},gridUnload:function(e){var t,r,i,o;e&&(0===(e=Ye.jgrid.trim(e)).indexOf("#")&&(e=e.substring(1)),(t=Ye("#"+Ye.jgrid.jqID(e))[0]).grid)&&(r={id:Ye(t).attr("id"),cl:Ye(t).attr("class")},t.p.pager&&Ye(t.p.pager).off().empty().removeClass("ui-state-default ui-jqgrid-pager ui-corner-bottom"),(i=document.createElement("table")).className=r.cl,o=Ye.jgrid.jqID(t.id),Ye(i).removeClass("ui-jqgrid-btable ui-common-table").insertBefore("#gbox_"+o),1===Ye(t.p.pager).parents("#gbox_"+o).length&&Ye(t.p.pager).insertBefore("#gbox_"+o),Ye.jgrid.clearBeforeUnload(e),Ye("#gbox_"+o).remove(),Ye(i).attr({id:r.id}),Ye("#alertmod_"+Ye.jgrid.jqID(e)).remove())},gridDestroy:function(e){if(e){0===(e=Ye.jgrid.trim(e)).indexOf("#")&&(e=e.substring(1));var t=Ye("#"+Ye.jgrid.jqID(e))[0];if(t&&t.grid){t.p.pager&&Ye(t.p.pager).remove();try{Ye.jgrid.clearBeforeUnload(e),Ye("#gbox_"+Ye.jgrid.jqID(e)).remove()}catch(e){}}}},isElementInViewport:function(e){e=e.getBoundingClientRect();return 0<=e.left&&e.right<=(window.innerWidth||document.documentElement.clientWidth)},getTextWidth:function(e,t){var r;return jQuery._cacheCanvas||(r=document.createElement("canvas"),document.createDocumentFragment().appendChild(r),jQuery._cacheCanvas=r.getContext("2d")),t&&(jQuery._cacheCanvas.font=t),jQuery._cacheCanvas.measureText(Ye.jgrid.stripHtml(e)).width},getFont:function(e){e=window.getComputedStyle(e,null);return e.getPropertyValue("font-style")+" "+e.getPropertyValue("font-variant")+" "+e.getPropertyValue("font-weight")+" "+e.getPropertyValue("font-size")+" "+e.getPropertyValue("font-family")},setSelNavIndex:function(r,i){var e=Ye(".ui-pg-button",r.p.pager);Ye.each(e,function(e,t){if(i===t)return r.p.navIndex=e,!1}),Ye(i).attr("tabindex","0")},splitSearch:function(e){var t,r='{"groupOp":"'+e.mergeOper+'","groups":[';for(t in e)e.hasOwnProperty(t)&&"mergeOper"!==t&&(r+=null!==e[t]&&""!==e[t]&&"boolean"!=typeof e[t]?e[t]+",":"",0);return-1===r.indexOf("[",r.length-"[".length)&&(r=r.slice(0,-1)),r+="]}"},getElemByAttrVal:function(e,t,r,i){"boolean"!=typeof i&&(i=!1);var o=Array.isArray(e)?e.length:0,a=0,n={},l=-1;if(0<o)for(;a<o;){if(e[a][t]===r){n=e[a],l=a;break}a++}return i?l:n},searchColOnEnter:function(e,t,r,i){var o,n=Ye("#"+e)[0];if(n.grid){var l,s,d=n.p.searchColOptions,e=!1;try{s=r.value}catch(e){s=""}if(n.p.frozenColumns&&(Ye(n.grid.bDiv).find(".jqgrid-searchcol >input#jqs_"+n.p.id+"_"+t).focus().val(s),e=!0),!n.p._ftsc){for(n.p._ftsc=!0,n.p._fthc=[],n.p._avc=[],o=0;o<n.p.colModel.length;o++)(n.p.colModel[o].hidden?n.p._fthc:n.p._avc).push(n.p.colModel[o].name);n.p._results={}}var a=[...new Set([...d._cnth,...d.visibleColumns])],p=new Set([...a,...n.p._fthc]);if(Ye(n).jqGrid("hideCol",n.p._avc.filter(function(e){return!a.includes(e)})),n.grid&&null==t)for(var c in n.p._results)n.p._results.hasOwnProperty(c)&&(s=n.p._results[c].v,g(c));else!n.grid||null===t&&void 0===t||g(t);var u=[],h=0;for(o in n.p._results)"OR"===d.searchOp.toUpperCase()?u=[...new Set([...u,...n.p._results[o].r])]:"AND"===d.searchOp.toUpperCase()&&(u=0===h?n.p._results[o].r:u.filter(function(e){return n.p._results[o].r.includes(e)}),h++);r=(u=Ye.isEmptyObject(n.p._results)?n.p._avc:u).concat(a);Ye(n).jqGrid("showCol",r),n.p.frozenColumns&&Ye(n.grid.fbDiv).find(".jqgrid-searchcol >input#jqs_"+n.p.id+"_"+t).val("").focus().val(s),n.p.frozenRows&&(e&&(n.p.frozenColumns=!1),Ye(n).trigger("jqGridAfterGridComplete.setFrozenRows"),e)&&(n.p.frozenColumns=!0)}function g(e){var t,r=Ye(n).jqGrid("getRowData",e),i=[];if(r&&s){for(var o in r)if(!p.has(o)&&r.hasOwnProperty(o)){if(t=s,d.useCase||(r[o]=r[o].toLowerCase(),t=s.toLowerCase()),d.aOperands.includes(d.operand))switch(d.operand){case"cn":l=-1!==r[o].search(t);break;case"eq":l=r[o]===t;break;case"ne":l=r[o]!==t;break;case"bw":l=r[o].substring(0,t.length)===t;break;case"ew":var a=r[o].length;l=r[o].substring(a-t.length,a)===t}l&&i.push(o)}n.p._results[e]={v:s,r:i}}else r&&""===s&&n.p._results[e]&&delete n.p._results[e]}},searchColOnKey:function(e,t,r,i){switch(i.key){case"ArrowRight":case"ArrowDown":case"ArrowUp":case"ArrowLeft":case"PageUp":case"PageDown":case"Alt":case"Control":case"Tab":case"Escape":case"Shift":return}setTimeout(function(){Ye.jgrid.searchColOnEnter(e,t,r,i)},50)},comboGrid:function(l,s,e){var t=Ye.jgrid.randId("combo"),r="div"+t,i=e.datatype,d=(e.datatype="local",e.onSelectRow=function(e){var e=Ye("#"+t).jqGrid("getRowData",e);Ye.isEmptyObject(e)||(e=Ye.jgrid.isFunction(s.return_fld)?s.return_fld.call(this,e):e[s.return_fld],Ye("#"+l).val(e),Ye("#"+r).hide())},e.data=[],e.scrollrows=!0,Ye("body").append("<div id='"+r+"'><table id='"+t+"'></table>"),e.pager&&Ye("body").append("<div id='"+e.pager+"'></div>"),Ye("body").append("</div>"),Ye("#"+t).jqGrid(e),Ye("#"+t).jqGrid("bindKeys",{onSelectRow:!1}),Ye("#"+l).attr("autocomplete","off").data("comboGrid",{grid:t,divgrid:r}),document.getElementById(l).getBoundingClientRect());Ye("#"+r).css({"background-color":"inherit",position:"absolute",top:d.top+50+"px",left:d.left+10+"px",zIndex:2e4}).hide(),Ye("#"+l).on("keydown",function(e){var t,r=Ye(this).data("comboGrid").grid,i=Ye(this).data("comboGrid").divgrid,o=this;if(Ye("#"+i).is(":hidden")&&(d=document.getElementById(l).getBoundingClientRect(),Ye("#"+i).show().css({top:d.top+50+"px",left:d.left+10+"px"})),-1<Ye.inArray(e.key,["Enter","Escape","ArrowUp","ArrowDown","ArrowLeft","ArrowRight"])){var a=Ye.Event("keydown");switch(e.key){case"Enter":var n=Ye("#"+r).jqGrid("getRowData",Ye("#"+r)[0].p.selrow);Ye.isEmptyObject(n)||(this.value=n[s.return_fld],Ye("#"+i).hide());break;case"Escape":Ye("#"+i).hide();break;case"ArrowUp":a.keyCode=38,Ye("#"+r).trigger(a);break;case"ArrowDown":a.keyCode=40,Ye("#"+r).trigger(a)}}else t&&clearTimeout(t),setTimeout(function(){Ye("#"+r).jqGrid("filterInput",o.value,{defaultSearch:s.defaultSearch||"bw",selectFirstFound:!0})},100)}),s.data&&("string"==typeof s.data?Ye("#"+t).jqGrid("setGridParam",{url:s.data}):Array.isArray(s.data)&&Ye("#"+t).jqGrid("setGridParam",{data:s.data})),Ye("#"+t).jqGrid("setGridParam",{datatype:i})},inColumnHeader:function(e,t){for(var r=t.length,i=0;i<r;i++)if(t[i].startColumnName===e)return i;return-1},isServiceCol:function(e){return["cb","rn","subgrid","sc"].includes(e)},normalizeDbData:function(r,i){Array.isArray(r)||(r=[r]);for(let t=0;t<r.length;t++)for(let e=0;e<i.length;e++){var o=i[e];if(!Ye.jgrid.isServiceCol(o.name)&&r[t].hasOwnProperty(o.name))switch(o.sorttype||o.stype||o.formatter||"text"){case"int":case"integer":r[t][o.name]=parseInt(r[t][o.name],10);break;case"float":case"number":case"numeric":case"currency":r[t][o.name]=parseFloat(r[t][o.name]);break;case"date":case"datetime":o.formatoptions.reformatAfterEdit=!0,r[t][o.name]=Ye.jgrid.parseDate.call(this,o.formatoptions.newformat,r[t][o.name],o.formatoptions.srcformat||"Y-m-d")}}return r},isVisible:function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},styleUI:{jQueryUI:{common:{disabled:"ui-state-disabled",highlight:"ui-state-highlight",hover:"ui-state-hover",cornerall:"ui-corner-all",cornertop:"ui-corner-top",cornerbottom:"ui-corner-bottom",hidden:"ui-helper-hidden",icon_base:"ui-icon",overlay:"ui-widget-overlay",active:"ui-state-active",error:"ui-state-error",button:"ui-state-default ui-corner-all",content:"ui-widget-content",shadow:""},base:{entrieBox:"ui-widget ui-widget-content ui-corner-all",viewBox:"",headerTable:"",headerBox:"ui-state-default",rowTable:"",rowBox:"ui-widget-content",stripedTable:"ui-jqgrid-table-striped",footerTable:"",footerBox:"ui-widget-content",headerRowTable:"",headerRowBox:"ui-widget-content",headerDiv:"ui-state-default",gridtitleBox:"ui-widget-header ui-corner-top ui-helper-clearfix",customtoolbarBox:"ui-state-default",loadingBox:"ui-state-default ui-state-active",rownumBox:"ui-state-default",scrollBox:"ui-widget-content",multiBox:"",searchBox:"ui-widget-content ui-corner-all",searchSelect:"ui-widget-content ui-corner-all",pagerBox:"ui-state-default ui-corner-bottom",pagerTable:"",toppagerBox:"ui-state-default",pgInput:"ui-corner-all",pgSelectBox:"ui-widget-content ui-corner-all",pgButtonBox:"ui-corner-all",icon_first:"ui-icon-seek-first",icon_prev:"ui-icon-seek-prev",icon_next:"ui-icon-seek-next",icon_end:"ui-icon-seek-end",icon_asc:"ui-icon-triangle-1-n",icon_desc:"ui-icon-triangle-1-s",icon_caption_open:"ui-icon-circle-triangle-n",icon_caption_close:"ui-icon-circle-triangle-s"},modal:{modal:"ui-widget ui-widget-content ui-corner-all ui-dialog",header:"ui-widget-header ui-corner-all ui-helper-clearfix",content:"ui-widget-content",body:"ui-widget-content",footer:"ui-widget-content",resizable:"ui-resizable-handle ui-resizable-se",icon_close:"ui-icon-closethick",icon_resizable:"ui-icon-gripsmall-diagonal-se"},celledit:{inputClass:"ui-widget-content ui-corner-all",selectClass:"ui-widget-content ui-corner-all"},inlinedit:{inputClass:"ui-widget-content ui-corner-all",selectClass:"ui-widget-content ui-corner-all",icon_edit_nav:"ui-icon-pencil",icon_add_nav:"ui-icon-plus",icon_save_nav:"ui-icon-disk",icon_cancel_nav:"ui-icon-cancel"},formedit:{labelClass:"",inputClass:"ui-widget-content ui-corner-all",selectClass:"ui-widget-content ui-corner-all",icon_prev:"ui-icon-triangle-1-w",icon_next:"ui-icon-triangle-1-e",icon_save:"ui-icon-disk",icon_close:"ui-icon-close",icon_del:"ui-icon-scissors",icon_cancel:"ui-icon-cancel"},navigator:{icon_edit_nav:"ui-icon-pencil",icon_add_nav:"ui-icon-plus",icon_del_nav:"ui-icon-trash",icon_search_nav:"ui-icon-search",icon_refresh_nav:"ui-icon-refresh",icon_view_nav:"ui-icon-document",icon_newbutton_nav:"ui-icon-newwin"},grouping:{icon_plus:"ui-icon-circlesmall-plus",icon_minus:"ui-icon-circlesmall-minus"},filter:{table_widget:"ui-widget ui-widget-content",srSelect:"ui-widget-content ui-corner-all",srInput:"ui-widget-content ui-corner-all",menu_widget:"ui-widget ui-widget-content ui-corner-all",icon_search:"ui-icon-search",icon_reset:"ui-icon-arrowreturnthick-1-w",icon_query:"ui-icon-comment"},subgrid:{icon_plus:"ui-icon-plus",icon_minus:"ui-icon-minus",icon_open:"ui-icon-carat-1-sw"},treegrid:{icon_plus:"ui-icon-triangle-1-",icon_minus:"ui-icon-triangle-1-s",icon_leaf:"ui-icon-radio-off"},fmatter:{icon_edit:"ui-icon-pencil",icon_add:"ui-icon-plus",icon_save:"ui-icon-disk",icon_cancel:"ui-icon-cancel",icon_del:"ui-icon-trash"},colmenu:{menu_widget:"ui-widget ui-widget-content ui-corner-all",input_checkbox:"ui-widget ui-widget-content",filter_select:"ui-widget-content ui-corner-all",filter_input:"ui-widget-content ui-corner-all",icon_menu:"ui-icon-comment",icon_search_menu:"ui-icon-grip-dotted-vertical",icon_sort_asc:"ui-icon-arrow-1-n",icon_sort_desc:"ui-icon-arrow-1-s",icon_columns:"ui-icon-extlink",icon_filter:"ui-icon-calculator",icon_group:"ui-icon-grip-solid-horizontal",icon_freeze:"ui-icon-grip-solid-vertical",icon_move:"ui-icon-arrow-4",icon_new_item:"ui-icon-newwin",icon_toolbar_menu:"ui-icon-document",icon_group_op:"ui-icon-bullet",icon_oper_op:"ui-icon-transfer-e-w",icon_reset:"ui-icon-arrowreturnthick-1-w",icon_close:"ui-icon-close"}},Bootstrap:{common:{disabled:"ui-disabled",highlight:"success",hover:"active",cornerall:"",cornertop:"",cornerbottom:"",hidden:"",icon_base:"glyphicon",overlay:"ui-overlay",active:"active",error:"bg-danger",button:"btn btn-default",content:"",shadow:""},base:{entrieBox:"",viewBox:"table-responsive",headerTable:"table table-bordered",headerBox:"",rowTable:"table table-bordered",rowBox:"",stripedTable:"table-striped",footerTable:"table table-bordered",footerBox:"",headerRowTable:"table table-bordered",headerRowBox:"",headerDiv:"",gridtitleBox:"",customtoolbarBox:"",loadingBox:"row",rownumBox:"active",scrollBox:"",multiBox:"checkbox",pagerBox:"",pagerTable:"table",toppagerBox:"",pgInput:"form-control",pgSelectBox:"form-control",pgButtonBox:"",icon_first:"glyphicon-step-backward",icon_prev:"glyphicon-backward",icon_next:"glyphicon-forward",icon_end:"glyphicon-step-forward",icon_asc:"glyphicon-triangle-top",icon_desc:"glyphicon-triangle-bottom",icon_caption_open:"glyphicon-circle-arrow-up",icon_caption_close:"glyphicon-circle-arrow-down"},modal:{modal:"modal",content:"modal-content",header:"modal-header",title:"modal-title",body:"modal-body",footer:"modal-footer",resizable:"ui-resizable-handle ui-resizable-se",icon_close:"glyphicon-remove-circle",icon_resizable:"glyphicon-import"},celledit:{inputClass:"form-control",selectClass:"form-control"},inlinedit:{inputClass:"form-control",selectClass:"form-control",icon_edit_nav:"glyphicon-edit",icon_add_nav:"glyphicon-plus",icon_save_nav:"glyphicon-save",icon_cancel_nav:"glyphicon-remove-circle"},formedit:{labelClass:"",inputClass:"form-control",selectClass:"form-control",icon_prev:"glyphicon-step-backward",icon_next:"glyphicon-step-forward",icon_save:"glyphicon-save",icon_close:"glyphicon-remove-circle",icon_del:"glyphicon-trash",icon_cancel:"glyphicon-remove-circle"},navigator:{icon_edit_nav:"glyphicon-edit",icon_add_nav:"glyphicon-plus",icon_del_nav:"glyphicon-trash",icon_search_nav:"glyphicon-search",icon_refresh_nav:"glyphicon-refresh",icon_view_nav:"glyphicon-info-sign",icon_newbutton_nav:"glyphicon-new-window"},grouping:{icon_plus:"glyphicon-triangle-right",icon_minus:"glyphicon-triangle-bottom"},filter:{table_widget:"table table-condensed",srSelect:"form-control",srInput:"form-control",menu_widget:"",icon_search:"glyphicon-search",icon_reset:"glyphicon-refresh",icon_query:"glyphicon-comment"},subgrid:{icon_plus:"glyphicon-triangle-right",icon_minus:"glyphicon-triangle-bottom",icon_open:"glyphicon-indent-left"},treegrid:{icon_plus:"glyphicon-triangle-right",icon_minus:"glyphicon-triangle-bottom",icon_leaf:"glyphicon-unchecked"},fmatter:{icon_edit:"glyphicon-edit",icon_add:"glyphicon-plus",icon_save:"glyphicon-save",icon_cancel:"glyphicon-remove-circle",icon_del:"glyphicon-trash"},colmenu:{menu_widget:"",input_checkbox:"",filter_select:"form-control",filter_input:"form-control",icon_menu:"glyphicon-menu-hamburger",icon_sort_asc:"glyphicon-sort-by-alphabet",icon_sort_desc:"glyphicon-sort-by-alphabet-alt",icon_columns:"glyphicon-list-alt",icon_filter:"glyphicon-filter",icon_group:"glyphicon-align-left",icon_freeze:"glyphicon-object-align-horizontal",icon_move:"glyphicon-move",icon_new_item:"glyphicon-new-window",icon_toolbar_menu:"glyphicon-menu-hamburger"}},Bootstrap4:{common:{disabled:"ui-disabled",highlight:"table-success",hover:"table-active",cornerall:"",cornertop:"",cornerbottom:"",hidden:"",overlay:"ui-overlay",active:"active",error:"alert-danger",button:"btn btn-light",content:"",shadow:"shadow p-3 mb-5 bg-white rounded"},base:{entrieBox:"",viewBox:"table-responsive",headerTable:"table table-bordered",headerBox:"",rowTable:"table table-bordered",rowBox:"",stripedTable:"table-striped",footerTable:"table table-bordered",footerBox:"",headerRowTable:"table table-bordered",headerRowBox:"",headerDiv:"",gridtitleBox:"",customtoolbarBox:"",loadingBox:"row",rownumBox:"active",scrollBox:"",multiBox:"checkbox",searchBox:"form-control",searchSelect:"form-control form-control-sm",pagerBox:"",pagerTable:"table",toppagerBox:"",pgInput:"form-control",pgSelectBox:"form-control",pgButtonBox:""},modal:{modal:"modal",content:"modal-content",header:"modal-header",title:"modal-title",body:"modal-body",footer:"modal-footer",resizable:"ui-resizable-handle ui-resizable-se",icon_close:"oi-circle-x",icon_resizable:"oi-circle-x"},celledit:{inputClass:"form-control",selectClass:"form-control"},inlinedit:{inputClass:"form-control",selectClass:"form-control"},formedit:{labelClass:"form-label",inputClass:"form-control",selectClass:"form-control"},navigator:{},grouping:{},filter:{table_widget:"table table-condensed",srSelect:"form-control",srInput:"form-control",menu_widget:""},subgrid:{},treegrid:{},fmatter:{},colmenu:{menu_widget:"",input_checkbox:"",filter_select:"form-control",filter_input:"form-control"}},Bootstrap5:{common:{disabled:"ui-disabled",highlight:"table-success",hover:"table-active",cornerall:"",cornertop:"",cornerbottom:"",hidden:"",overlay:"ui-overlay",active:"active",error:"alert alert-danger",button:"btn btn-light",content:"",shadow:"shadow p-3 mb-5 bg-body rounded"},base:{entrieBox:"",viewBox:"table-responsive",headerTable:"table table-bordered",headerBox:"",rowTable:"table table-bordered",rowBox:"",stripedTable:"table-striped",footerTable:"table table-bordered",footerBox:"",headerRowTable:"table table-bordered",headerRowBox:"",headerDiv:"",gridtitleBox:"",customtoolbarBox:"",loadingBox:"row",rownumBox:"active",scrollBox:"",multiBox:"checkbox",searchBox:"form-control",searchSelect:"form-select",pagerBox:"",pagerTable:"table",toppagerBox:"",pgInput:"form-control",pgSelectBox:"form-select",pgButtonBox:""},modal:{modal:"modal",header:"modal-header",title:"modal-title",content:"modal-content",body:"modal-body",footer:"modal-footer",resizable:"ui-resizable-handle ui-resizable-se",icon_close:"oi-circle-x",icon_resizable:"oi-circle-x"},celledit:{inputClass:"form-control",selectClass:"form-select"},inlinedit:{inputClass:"form-control",selectClass:"form-select"},formedit:{labelClass:"form-label",inputClass:"form-control",selectClass:"form-select"},navigator:{},grouping:{},filter:{table_widget:"table table-sm",srSelect:"form-select",srInput:"form-control",menu_widget:""},subgrid:{},treegrid:{},fmatter:{},colmenu:{menu_widget:"",input_checkbox:"",filter_select:"form-select",filter_input:"form-control"}}},iconSet:{Iconic:{common:{icon_base:"oi"},base:{icon_first:"oi-media-step-backward",icon_prev:"oi-caret-left",icon_next:"oi-caret-right",icon_end:"oi-media-step-forward",icon_asc:"oi-caret-top",icon_desc:"oi-caret-bottom",icon_caption_open:"oi-collapse-up",icon_caption_close:"oi-expand-down"},modal:{icon_close:"oi-circle-x",icon_resizable:"oi-plus"},inlinedit:{icon_edit_nav:"oi-pencil",icon_add_nav:"oi-plus",icon_save_nav:"oi-check",icon_cancel_nav:"oi-action-undo"},formedit:{icon_prev:"oi-chevron-left",icon_next:"oi-chevron-right",icon_save:"oi-check",icon_close:"oi-ban",icon_del:"oi-delete",icon_cancel:"oi-ban"},navigator:{icon_edit_nav:"oi-pencil",icon_add_nav:"oi-plus",icon_del_nav:"oi-trash",icon_search_nav:"oi-zoom-in",icon_refresh_nav:"oi-reload",icon_view_nav:"oi-browser",icon_newbutton_nav:"oi-book"},grouping:{icon_plus:"oi-caret-right",icon_minus:"oi-caret-bottom"},filter:{icon_search:"oi-magnifying-glass",icon_reset:"oi-reload",icon_query:"oi-comment-square"},subgrid:{icon_plus:"oi-chevron-right",icon_minus:"oi-chevron-bottom",icon_open:"oi-expand-left"},treegrid:{icon_plus:"oi-plus",icon_minus:"oi-minus",icon_leaf:"oi-media-record"},fmatter:{icon_edit:"oi-pencil",icon_add:"oi-plus",icon_save:"oi-check",icon_cancel:"oi-action-undo",icon_del:"oi-trash"},colmenu:{icon_menu:"oi-list",icon_sort_asc:"oi-sort-ascending",icon_sort_desc:"oi-sort-descending",icon_columns:"oi-project",icon_filter:"oi-magnifying-glass",icon_group:"oi-list-rich",icon_freeze:"oi-spreadsheet",icon_move:"oi-move",icon_new_item:"oi-external-link",icon_toolbar_menu:"oi-menu",icon_group_op:"",icon_oper_op:"",icon_reset:"oi-reload",icon_close:"oi-ban"}},Octicons:{common:{icon_base:"octicon"},base:{icon_first:"octicon-triangle-left",icon_prev:"octicon-chevron-left",icon_next:"octicon-chevron-right",icon_end:"octicon-triangle-right",icon_asc:"octicon-triangle-up",icon_desc:"octicon-triangle-down",icon_caption_open:"octicon-triangle-up",icon_caption_close:"octicon-triangle-down"},modal:{icon_close:"octicon-x",icon_resizable:"octicon-plus"},inlinedit:{icon_edit_nav:"octicon-pencil",icon_add_nav:"octicon-plus",icon_save_nav:"octicon-check",icon_cancel_nav:"octicon-circle-slash"},formedit:{icon_prev:"octicon-chevron-left",icon_next:"octicon-chevron-right",icon_save:"octicon-check",icon_close:"octicon-x",icon_del:"octicon-trashcan",icon_cancel:"octicon-circle-slash"},navigator:{icon_edit_nav:"octicon-pencil",icon_add_nav:"octicon-plus",icon_del_nav:"octicon-trashcan",icon_search_nav:"octicon-search",icon_refresh_nav:"octicon-sync",icon_view_nav:"octicon-file",icon_newbutton_nav:"octicon-link-external"},grouping:{icon_plus:"octicon-triangle-right",icon_minus:"octicon-triangle-down"},filter:{icon_search:"octicon-search",icon_reset:"octicon-sync",icon_query:"octicon-file-code"},subgrid:{icon_plus:"octicon-triangle-right",icon_minus:"octicon-triangle-down",icon_open:"octicon-git-merge"},treegrid:{icon_plus:"octicon-triangle-right",icon_minus:"octicon-triangle-down",icon_leaf:"octicon-primitive-dot"},fmatter:{icon_edit:"octicon-pencil",icon_add:"octicon-plus",icon_save:"octicon-check",icon_cancel:"octicon-circle-slash",icon_del:"octicon-trashcan"},colmenu:{icon_menu:"octicon-grabber",icon_sort_asc:"octicon-arrow-up",icon_sort_desc:"octicon-arrow-down",icon_columns:"octicon-repo",icon_filter:"octicon-search",icon_group:"octicon-list-unordered",icon_freeze:"octicon-repo",icon_move:"octicon-git-compare",icon_new_item:"octicon-link-external",icon_toolbar_menu:"octicon-three-bars",icon_group_op:"",icon_oper_op:"",icon_reset:"octicon-sync",icon_close:"octicon-x"}},fontAwesome:{common:{icon_base:"fas"},base:{icon_first:"fa-step-backward",icon_prev:"fa-backward",icon_next:"fa-forward",icon_end:"fa-step-forward",icon_asc:"fa-caret-up",icon_desc:"fa-caret-down",icon_caption_open:"fa-caret-square-up",icon_caption_close:"fa-caret-square-down "},modal:{icon_close:"fa-window-close",icon_resizable:"fa-plus"},inlinedit:{icon_edit_nav:"fa-edit",icon_add_nav:"fa-plus",icon_save_nav:"fa-save",icon_cancel_nav:"fa-replay"},formedit:{icon_prev:"fa-chevron-left",icon_next:"fa-chevron-right",icon_save:"fa-save",icon_close:"fa-window-close",icon_del:"fa-trash",icon_cancel:"fa-times"},navigator:{icon_edit_nav:"fa-edit",icon_add_nav:"fa-plus",icon_del_nav:"fa-trash",icon_search_nav:"fa-search",icon_refresh_nav:"fa-sync",icon_view_nav:"fa-sticky-note",icon_newbutton_nav:"fa-external-link-alt"},grouping:{icon_plus:"fa-caret-right",icon_minus:"fa-caret-down"},filter:{icon_search:"fa-search",icon_reset:"fa-reply",icon_query:"fa-pen-square "},subgrid:{icon_plus:"fa-arrow-circle-right",icon_minus:"fa-arrow-circle-down",icon_open:"fa-ellipsis-v"},treegrid:{icon_plus:"fa-plus",icon_minus:"fa-minus",icon_leaf:"fa-circle"},fmatter:{icon_edit:"fa-edit",icon_add:"fa-plus",icon_save:"fa-save",icon_cancel:"fa-undo",icon_del:"fa-trash"},colmenu:{icon_menu:"fa-ellipsis-v",icon_sort_asc:"fa-sort-amount-up",icon_sort_desc:"fa-sort-amount-down",icon_columns:"fa-columns",icon_filter:"fa-filter",icon_group:"fa-object-group",icon_freeze:"fa-snowflake",icon_move:"fa-expand-arrows-alt",icon_new_item:"fa-external-link-alt",icon_toolbar_menu:"fa-list",icon_group_op:"",icon_oper_op:"",icon_reset:"fa-reply",icon_close:"fa-window-close"}},Bootstrap5:{common:{icon_base:"bi"},base:{icon_first:"bi-chevron-bar-left",icon_prev:"bi-chevron-left",icon_next:"bi-chevron-right",icon_end:"bi-chevron-bar-right",icon_asc:"bi-caret-up-fill",icon_desc:"bi-caret-down-fill",icon_caption_open:"bi-arrows-collapse",icon_caption_close:"bi-arrows-expand"},modal:{icon_close:"bi-x-lg",icon_resizable:"bi-box-arrow-in-down-right"},inlinedit:{icon_edit_nav:"bi-pencil-square",icon_add_nav:"bi-plus-square",icon_save_nav:"bi-save",icon_cancel_nav:"bi-x-square"},formedit:{icon_prev:"bi-chevron-left",icon_next:"bi-chevron-right",icon_save:"bi-save",icon_close:"bi-x-square",icon_del:"bi-trash",icon_cancel:"bi-x-octagon"},navigator:{icon_edit_nav:"bi-pencil-square",icon_add_nav:"bi-plus-square",icon_del_nav:"bi-trash",icon_search_nav:"bi-search",icon_refresh_nav:"bi-arrow-clockwise",icon_view_nav:"bi-view-list",icon_newbutton_nav:"bi-window"},grouping:{icon_plus:"bi-caret-right",icon_minus:"bi-caret-down"},filter:{icon_search:"bi-search",icon_reset:"bi-arrow-clockwise",icon_query:"bi-journal-code"},subgrid:{icon_plus:"bi-chevron-right",icon_minus:"bi-chevron-down",icon_open:"bi-arrow-bar-right"},treegrid:{icon_plus:"bi-plus-square-dotted",icon_minus:"bi-dash-square-dotted",icon_leaf:"bi-circle"},fmatter:{icon_edit:"bi-pencil-square",icon_add:"bi-plus-square",icon_save:"bi-save",icon_cancel:"bi-x-square",icon_del:"bi-trash"},colmenu:{icon_menu:"bi-list",icon_sort_asc:"bi-sort-alpha-down",icon_sort_desc:"bi-sort-alpha-up",icon_columns:"bi-columns",icon_filter:"bi-search",icon_group:"bi-collection-play",icon_freeze:"bi-layout-text-sidebar-reverse",icon_move:"bi-arrows-move",icon_new_item:"bi-window",icon_toolbar_menu:"bi-card-text",icon_group_op:"",icon_oper_op:"",icon_reset:"bi-arrow-clockwise",icon_close:"bi-x-square"}}}}),Ye.fn.jqGrid=function($e){if("string"!=typeof $e)return this.each(function(){if(!this.grid){Ye.jgrid.isNull($e)||void 0===$e.data||(N=$e.data,$e.data=[]);var b=Ye.extend(!0,{url:"",height:150,defaultColWidth:150,page:1,rowNum:20,rowTotal:null,records:0,pager:"",pgbuttons:!0,pginput:!0,colModel:[],rowList:[],colNames:[],sortorder:"asc",sortname:"",datatype:"xml",mtype:"GET",altRows:!1,selarrrow:[],preserveSelection:!1,savedRow:[],shrinkToFit:!0,xmlReader:{},jsonReader:{},subGrid:!1,subGridModel:[],reccount:0,lastpage:0,lastsort:0,selrow:null,beforeSelectRow:null,onSelectRow:null,onSortCol:null,ondblClickRow:null,onRightClickRow:null,onPaging:null,onSelectAll:null,onInitGrid:null,loadComplete:null,gridComplete:null,loadError:null,loadBeforeSend:null,afterInsertRow:null,beforeRequest:null,beforeProcessing:null,onHeaderClick:null,viewrecords:!1,loadonce:!1,multiselect:!1,multikey:!1,multiboxonly:!1,multimail:!1,multiselectWidth:30,onMultiSleect:null,editurl:null,search:!1,caption:"",hidegrid:!0,hiddengrid:!1,postData:{},userData:{},treeGrid:!1,treeGridModel:"nested",treeReader:{},treeANode:-1,ExpandColumn:null,tree_root_level:0,prmNames:{page:"page",rows:"rows",sort:"sidx",order:"sord",search:"_search",nd:"nd",id:"id",oper:"oper",editoper:"edit",addoper:"add",deloper:"del",subgridid:"id",npage:null,totalrows:"totalrows"},forceFit:!1,gridstate:"visible",cellEdit:!1,cellsubmit:"remote",nv:0,loadui:"enable",toolbar:[!1,""],scroll:!1,deselectAfterSort:!0,scrollrows:!1,autowidth:!1,scrollOffset:Ye.jgrid.scrollbarWidth()+3,cellLayout:5,subGridWidth:20,gridview:!0,rownumWidth:35,rownumbers:!1,pagerpos:"center",recordpos:"right",footerrow:!1,userDataOnFooter:!1,headerrow:!1,userDataOnHeader:!1,hoverrows:!0,viewsortcols:[!1,"vertical",!0],resizeclass:"",autoencode:!1,remapColumns:[],ajaxGridOptions:{},direction:"ltr",toppager:!1,headertitles:!1,scrollTimeout:40,data:[],_index:{},grouping:!1,groupingView:{groupField:[],groupOrder:[],groupText:[],groupColumnShow:[],groupSummary:[],showSummaryOnHide:!1,sortitems:[],sortnames:[],summary:[],summaryval:[],plusicon:"",minusicon:"",displayField:[],groupSummaryPos:[],formatDisplayField:[],_locgr:!1},groupHeaderOn:!1,ignoreCase:!0,cmTemplate:{},idPrefix:"",multiSort:!1,minColWidth:33,minGridWidth:100,maxGridWidth:3e3,scrollPopUp:!1,scrollTopOffset:0,scrollLeftOffset:"100%",scrollMaxBuffer:0,storeNavOptions:!1,regional:"en",styleUI:"jQueryUI",iconSet:"Iconic",responsive:!1,forcePgButtons:!1,resizeHeight:!0,restoreCellonFail:!0,editNextRowCell:!1,colFilters:{},colMenu:!1,colMenuCustom:{},colMenuColumnDone:null,colMenuBeforeProcess:null,colSpanHeader:[],treeGrid_bigData:!1,treeGrid_rootParams:{otherData:{}},treeGrid_beforeRequest:null,treeGrid_afterLoadComplete:null,useNameForSearch:!1,formatFooterData:!1,formatHeaderData:!1,mergeSearch:!1,searchModules:{mergeOper:"AND",filterInput:!0,filterToolbar:!0,searchGrid:!0,colMenuSearch:!0},emptyRecordRow:!0,ariaBody:!1,searchCols:!1,searchColOptions:{colWidth:90,searchOp:"OR",operand:"cn",useCase:!1,colName:"Search Col",colmenu:!0,searchOnEnter:!0,aOperands:["cn","bw","ew","eq","ne"],_cnth:["cb","rn","sc","subgrid","col_name"],visibleColumns:[]},dbconfig:{dbname:"",dbversion:-1,dbtable:"",deleteIfExists:!1,loadIfExists:!1,isKeyInData:!1,dataUrl:"",reader:null,beforeInsertData:null,fetchOptions:{}}},Ye.jgrid.defaults,$e),Q=(void 0!==N&&(b.data=N,$e.data=N),this),x={headers:[],cols:[],footers:[],hrheaders:[],dragStart:function(e,t,r){var i=Ye(this.bDiv).offset().left,o=parseInt(b.colModel[e].minResizeWidth||b.minColWidth,10);isNaN(o)&&(o=33),this.resizing={idx:e,startX:t.pageX,sOL:t.pageX-i,minW:o},this.hDiv.style.cursor="col-resize",this.curGbox=Ye("#rs_m"+Ye.jgrid.jqID(b.id),"#gbox_"+Ye.jgrid.jqID(b.id)),this.curGbox.css({display:"block",left:t.pageX-i,top:r[1],height:r[2]}),Ye(Q).triggerHandler("jqGridResizeStart",[t,e]),Ye.jgrid.isFunction(b.resizeStart)&&b.resizeStart.call(Q,t,e),document.onselectstart=function(){return!1}},dragMove:function(e){var t,r,i,o;this.resizing&&(e=e.pageX-this.resizing.startX,t=this.headers[this.resizing.idx],(r="ltr"===b.direction?t.width+e:t.width-e)>this.resizing.minW)&&(this.curGbox.css({left:this.resizing.sOL+e}),!0===b.forceFit?(i=this.headers[this.resizing.idx+b.nv],(o="ltr"===b.direction?i.width-e:i.width+e)>this.resizing.minW&&(t.newWidth=r,i.newWidth=o)):(this.newWidth="ltr"===b.direction?b.tblwidth+e:b.tblwidth-e,t.newWidth=r))},dragEnd:function(e,t){var r,i;this.hDiv.style.cursor="default",void 0===t&&(t=!0),this.resizing&&(r=this.resizing.idx,i=this.headers[r].newWidth||this.headers[r].width,i=parseFloat(i),this.resizing=!1,Ye("#rs_m"+Ye.jgrid.jqID(b.id)).css("display","none"),b.colModel[r].width=i,this.headers[r].width=i,this.headers[r].el.style.width=i+"px",this.cols[r].style.width=i+"px",0<this.footers.length&&(this.footers[r].style.width=i+"px"),0<this.hrheaders.length&&(this.hrheaders[r].style.width=i+"px"),!0===b.forceFit?(i=this.headers[r+b.nv].newWidth||this.headers[r+b.nv].width,this.headers[r+b.nv].width=i,this.headers[r+b.nv].el.style.width=i+"px",this.cols[r+b.nv].style.width=i+"px",0<this.footers.length&&(this.footers[r+b.nv].style.width=i+"px"),0<this.hrheaders.length&&(this.hrheaders[r+b.nv].style.width=i+"px"),b.colModel[r+b.nv].width=i):(b.tblwidth=this.newWidth||b.tblwidth,Ye(this.bDiv).find("table").first().css("width",b.tblwidth+"px"),Ye(this.hDiv).find("table").first().css("width",b.tblwidth+"px"),this.hDiv.scrollLeft=this.bDiv.scrollLeft,b.footerrow&&(Ye(this.sDiv).find("table").first().css("width",b.tblwidth+"px"),this.sDiv.scrollLeft=this.bDiv.scrollLeft),b.headerrow&&(Ye(this.hrDiv).find("table").first().css("width",b.tblwidth+"px"),this.hrDiv.scrollLeft=this.bDiv.scrollLeft)),e&&(Ye(Q).triggerHandler("jqGridResizeStop",[i,r]),Ye.jgrid.isFunction(b.resizeStop))&&b.resizeStop.call(Q,i,r),b.frozenColumns)&&t&&(Ye("#"+Ye.jgrid.jqID(b.id)).jqGrid("destroyFrozenColumns"),Ye("#"+Ye.jgrid.jqID(b.id)).jqGrid("setFrozenColumns")),this.curGbox=null,document.onselectstart=function(){return!0}},populateVisible:function(){x.timer&&clearTimeout(x.timer),x.timer=null;var e=Ye(x.bDiv).height();if(e){var t,r,i,o,a,n,l,s,d,p=Ye(x.bDiv).find("table").first();if(p[0].rows.length)try{t=(r=p[0].rows[1])&&Ye(r).outerHeight()||x.prevRowHeight}catch(e){t=x.prevRowHeight}t&&(x.prevRowHeight=t,r=b.rowNum,i=x.scrollTop=x.bDiv.scrollTop,n=t*r,(a=(o=Math.round(p.position().top)-i)+p.height())<e&&o<=0&&(void 0===b.lastpage||(parseInt((a+i+n-1)/n,10)||0)<=b.lastpage)&&(s=parseInt((e-a+n-1)/n,10)||1,o=0<=a||s<2||!0===b.scroll?(l=(Math.round((a+i)/n)||0)+1,-1):1),0<o&&(l=(parseInt(i/n,10)||0)+1,s=(parseInt((i+e)/n,10)||0)+2-l,d=!0),!s||b.lastpage&&(l>b.lastpage||1===b.lastpage||l===b.page&&l===b.lastpage)||(x.hDiv.loading?x.timer=setTimeout(x.populateVisible,b.scrollTimeout):(b.page=l,(d=0<b.scrollMaxBuffer&&(0<r&&b.scrollMaxBuffer<r&&(b.scrollMaxBuffer=r+1),b.reccount>b.scrollMaxBuffer-(0<r?r:0))?!0:d)&&(x.selectionPreserver(p[0]),x.emptyRows.call(p[0],!1,!1)),x.populate(s)),b.scrollPopUp&&!Ye.jgrid.isNull(b.lastpage)&&(Ye("#scroll_g"+b.id).show().html(Ye.jgrid.template(Ye.jgrid.getRegional(Q,"defaults.pgtext",b.pgtext),b.page,b.lastpage)).css({top:b.scrollTopOffset+i*((parseInt(b.height,10)-45)/(parseInt(t,10)*parseInt(b.records,10)))+"px",left:b.scrollLeftOffset}),Ye(this).mouseout(function(){Ye("#scroll_g"+b.id).hide()}))))}},scrollGrid:function(){if(!x.bScroll){var e;x.hScroll=!0,b.scroll&&(e=x.bDiv.scrollTop,void 0===x.scrollTop&&(x.scrollTop=0),e!==x.scrollTop)&&(x.scrollTop=e,x.timer&&clearTimeout(x.timer),x.timer=setTimeout(x.populateVisible,b.scrollTimeout)),x.hDiv.scrollLeft=x.bDiv.scrollLeft,b.footerrow&&(x.sDiv.scrollLeft=x.bDiv.scrollLeft),b.headerrow&&(x.hrDiv.scrollLeft=x.bDiv.scrollLeft),b.frozenColumns&&Ye(x.fbDiv).scrollTop(x.bDiv.scrollTop);try{Ye("#column_menu").remove()}catch(e){}}x.bScroll=!1},selectionPreserver:function(t){function r(){var e;if(i.multiselect&&a&&0<a.length)for(e=0;e<a.length;e++)a[e]&&Ye(t).jqGrid("setSelection",a[e],!1,"_sp_");!i.multiselect&&o&&Ye(t).jqGrid("setSelection",o,!1,null),t.grid.bDiv.scrollLeft=n,Ye(t).off(".selectionPreserver",r)}var i=t.p,o=i.selrow,a=i.selarrrow?Ye.makeArray(i.selarrrow):null,n=t.grid.bDiv.scrollLeft;Ye(t).on("jqGridGridComplete.selectionPreserver",r)},hScroll:!1,bScroll:!1};if("TABLE"!==this.tagName.toUpperCase()||Ye.jgrid.isNull(this.id))alert("Element is not a table or has no id!");else if(void 0!==document.documentMode&&document.documentMode<=5)alert("Grid can not be used in this ('quirks') mode!");else{var S,k,v,X,e=0;for(k in Ye.jgrid.regional)Ye.jgrid.regional.hasOwnProperty(k)&&(0===e&&(S=k),e++);if(1===e&&S!==b.regional&&(b.regional=S),Ye(this).empty().attr("tabindex","0"),this.p=b,this.p.useProp=!!Ye.fn.prop,0===this.p.colNames.length)for(e=0;e<this.p.colModel.length;e++)this.p.colNames[e]=this.p.colModel[e].label||this.p.colModel[e].name;if(this.p.colNames.length!==this.p.colModel.length)alert(Ye.jgrid.getRegional(this,"errors.model"));else{"Bootstrap4"===Q.p.styleUI&&Ye.jgrid.iconSet.hasOwnProperty(Q.p.iconSet)&&Ye.extend(!0,Ye.jgrid.styleUI.Bootstrap4,Ye.jgrid.iconSet[Q.p.iconSet]),"Bootstrap5"===Q.p.styleUI&&Ye.jgrid.iconSet.hasOwnProperty(Q.p.iconSet)&&Ye.extend(!0,Ye.jgrid.styleUI.Bootstrap5,Ye.jgrid.iconSet[Q.p.iconSet]);var R,K=Ye.jgrid.getMethod("getStyleUI"),$=Q.p.styleUI+".common",j=K($,"disabled",!0),Y=K($,"highlight",!0),C=K($,"hover",!0),N=K($,"cornerall",!0),I=K($,"icon_base",!0),D=Ye.jgrid.styleUI[Q.p.styleUI||"jQueryUI"].colmenu,M=Ye.jgrid.msie(),F=[],G=[],O=[],$=Q.p.styleUI+".base",t=Ye("<div "+K($,"viewBox",!1,"ui-jqgrid-view")+" ></div>"),r=(Q.p.direction=Ye.jgrid.trim(Q.p.direction.toLowerCase()),Q.p._ald=!1,-1===Ye.inArray(Q.p.direction,["ltr","rtl"])&&(Q.p.direction="ltr"),v=Q.p.direction,Ye(t).insertBefore(this),Ye(this).appendTo(t),Ye("<div "+K($,"entrieBox",!1,"ui-jqgrid")+"></div>")),A=(Ye(r).attr({id:"gbox_"+this.id,dir:v}).insertBefore(t),Ye(t).attr("id","gview_"+this.id).appendTo(r),Ye("<div "+K(Q.p.styleUI+".common","overlay",!1,"jqgrid-overlay")+" id='lui_"+this.id+"'></div>").insertBefore(t),Ye("<div "+K($,"loadingBox",!1,"loading")+" id='load_"+this.id+"'>"+Ye.jgrid.getRegional(Q,"defaults.loadtext",this.p.loadtext)+"</div>").insertBefore(t),Ye(this).attr({role:"grid","aria-multiselectable":!!this.p.multiselect,"aria-labelledby":"gbox_"+this.id}),"indexeddb"===Q.p.datatype&&Ye(Q).jqGrid("dbInit",Q.p.datatype),Ye.jgrid.getFont(Q)),J=function(e,t){return void 0===t&&(t=0),e=parseInt(e,10),isNaN(e)?t:e},l=function(e,t,r,i,o,a){var n=Q.p.colModel[e],l=n.align,s='style="',d=n.classes,p=n.name,c=[];return l&&(s+="text-align:"+l+";"),!0===n.hidden&&(s+="display:none;"),0===t?s+="width: "+x.headers[e].width+"px;":(Ye.jgrid.isFunction(n.cellattr)||"string"==typeof n.cellattr&&!Ye.jgrid.isNull(Ye.jgrid.cellattr)&&Ye.jgrid.isFunction(Ye.jgrid.cellattr[n.cellattr]))&&(l=(Ye.jgrid.isFunction(n.cellattr)?n.cellattr:Ye.jgrid.cellattr[n.cellattr]).call(Q,o,r,i,n,a))&&"string"==typeof l&&(-1<l.indexOf("title")&&(n.title=!1),-1<l.indexOf("class")&&(d=void 0),2===(c=(l=String(l).replace(/\s+\=/g,"=")).split("style=")).length?(c[1]=Ye.jgrid.trim(c[1]),0!==c[1].indexOf("'")&&0!==c[1].indexOf('"')||(c[1]=c[1].substring(1)),s+=c[1].replace(/'/gi,'"')):s+='"'),c.length?2<c.length&&(c[0]=""):(c[0]="",s+='"'),(s=(s+=(void 0!==d?' class="'+d+'"':"")+(n.title&&r?' title="'+Ye.jgrid.stripHtml(r)+'"':""))+(' aria-describedby="'+Q.p.id+"_"+p+'"'))+c[0]},T=function(e){return Ye.jgrid.isNull(e)||""===e?"&#160;":Q.p.autoencode?Ye.jgrid.htmlEncode(e):String(e)},P=function(e,t,r,i,o){var a=Q.p.colModel[r],e={rowId:e=""!==String(Q.p.idPrefix)?Ye.jgrid.stripPref(Q.p.idPrefix,e):e,colModel:a,gid:Q.p.id,pos:r,styleUI:Q.p.styleUI},r=void 0!==a.formatter?Ye.jgrid.isFunction(a.formatter)?a.formatter.call(Q,t,e,i,o):Ye.fmatter?Ye.fn.fmatter.call(Q,a.formatter,t,e,i,o):T(t):T(t);return Q.p.autoResizing&&a.autosize&&(a._maxsize||(a._maxsize=a.canvas_width),a._maxsize=Math.max(Ye.jgrid.isFunction(a.sizingStringFunc)?a.sizingStringFunc.call(Q,r,A,e,i):Ye.jgrid.getTextWidth(r,A),a._maxsize)),r},Z=function(e,t,r,i,o,a){t=P(e,t,r,o,"add");return'<td role="gridcell" '+l(r,i,t,o,e,a)+">"+t+"</td>"},ee=function(e,t,r,i,o,a){var n=Ye.jgrid.getRegional(Q,"defaults.selectLine"),n='<input role="checkbox" title=\''+(n||Ye.jgrid.regional.en.defaults.selectLine)+'\' type="checkbox" id="jqg_'+Q.p.id+"_"+e+'" '+o+' name="jqg_'+Q.p.id+"_"+e+'"'+(i?'checked="checked"':"")+"/>",o=Q.p.colModel[t];return void 0!==o.formatter&&Ye.jgrid.isFunction(o.formatter)&&(n=o.formatter.call(Q,n,{rowId:e,colModel:o,gid:Q.p.id,pos:t,styleUI:Q.p.styleUI},a,"add")),'<td role="gridcell" '+l(t,r,n,a,e,!0)+">"+n+"</td>"},te=function(e,t,r,i,o){r=(parseInt(r,10)-1)*parseInt(i,10)+1+t;return'<td role="gridcell" '+o+" "+l(e,t,r,null,t,!0)+">"+r+"</td>"},re=function(e,t,r,i){var o=Q.p.searchColOptions.searchOnEnter?" onchange=\"$.jgrid.searchColOnEnter('"+Q.p.id+"',"+e+', this)"':" onkeydown=\"$.jgrid.searchColOnKey('"+Q.p.id+"',"+e+',this, event)"',i='<input type="text" id="jqs_'+Q.p.id+"_"+e+'" name="jqs_'+Q.p.id+"_"+e+'" '+i+o+"/>";return'<td role="gridcell" '+l(t,r,"",null,e,!0)+">"+i+"</td>"},ie=function(e){for(var t,r=[],i=0,o=0;o<Q.p.colModel.length;o++)"cb"!==(t=Q.p.colModel[o]).name&&"subgrid"!==t.name&&"rn"!==t.name&&"sc"!==t.name&&(r[i]="local"===e?t.name:"xml"===e||"xmlstring"===e?t.xmlmap||t.name:t.jsonmap||t.name,!1!==Q.p.keyName&&!0===t.key&&(Q.p.keyName=r[i],Q.p.keyIndex=i),i++);return r},oe=function(t){var e=Q.p.remapColumns;return e&&e.length||(e=Ye.map(Q.p.colModel,function(e,t){return t})),e=t?Ye.map(e,function(e){return e<t?null:e-t}):e},ae=function(e,t){var r;this.p.deepempty?Ye(this.rows).slice(1).remove():(r=0<this.rows.length?this.rows[0]:null,Ye(this.firstChild).empty().append(r)),e&&this.p.scroll&&(Ye(this.grid.bDiv.firstChild).css({height:"auto"}),Ye(this.grid.bDiv.firstChild.firstChild).css({height:"0px",display:"none"}),0!==this.grid.bDiv.scrollTop)&&(this.grid.bDiv.scrollTop=0),!0===t&&(this.p.data=[],this.p._index={})},B=function(){var e,t,r,i,o,a,n,l,s,d,p,c=Q.p,u=c.data,h=u.length,g=c.localReader,f=c.colModel,m=g.cell,v=(!0===c.multiselect?1:0)+(!0===c.subGrid?1:0)+(!0===c.rownumbers?1:0)+(!0===c.searchCols?1:0),j=c.scroll?Ye.jgrid.randId():1;if("local"===c.datatype&&!0===g.repeatitems)for(s=oe(v),d=ie("local"),i=!1===c.keyName?Ye.jgrid.isFunction(g.id)?g.id.call(Q,u):g.id:c.keyName,e=0;e<h;e++){for(r=u[e],void 0===(o=Ye.jgrid.getAccessor(r,i))&&void 0===(o="number"!=typeof i||Ye.jgrid.isNull(f[i+v])?o:Ye.jgrid.getAccessor(r,f[i+v].name))&&(o=j+e,m)&&(a=Ye.jgrid.getAccessor(r,m)||r,o=Ye.jgrid.isNull(a)||void 0===a[i]?o:a[i],0),(l={})[g.id]=o,m&&(r=Ye.jgrid.getAccessor(r,m)||r),p=Array.isArray(r)?s:d,t=0;t<p.length;t++)n=Ye.jgrid.getAccessor(r,p[t]),l[f[t+v].name]=n;u[e]=l}},ne=function(){var e,t,r=Q.p.data.length,i=!1!==Q.p.keyName?Q.p.keyName:Q.p.localReader.id;for(Q.p._index={},e=0;e<r;e++)void 0===(t=Ye.jgrid.getAccessor(Q.p.data[e],i))&&(t=String(e+1)),Q.p._index[t]=e},le=function(e,t,r,i,o){var a,n="-1",l="",t=t?"display:none;":"",s=Ye(Q).triggerHandler("jqGridRowAttr",[i,o,e]);if("object"!=typeof s&&(s=Ye.jgrid.isFunction(Q.p.rowattr)?Q.p.rowattr.call(Q,i,o,e):"string"==typeof Q.p.rowattr&&!Ye.jgrid.isNull(Ye.jgrid.rowattr)&&Ye.jgrid.isFunction(Ye.jgrid.rowattr[Q.p.rowattr])?Ye.jgrid.rowattr[Q.p.rowattr].call(Q,i,o,e):{}),!Ye.isEmptyObject(s)){s.hasOwnProperty("id")&&(e=s.id,delete s.id),s.hasOwnProperty("tabindex")&&(n=s.tabindex,delete s.tabindex),s.hasOwnProperty("style")&&(t+=s.style,delete s.style),s.hasOwnProperty("class")&&(r+=" "+s.class,delete s.class);try{delete s.role}catch(e){}for(a in s)s.hasOwnProperty(a)&&(l+=" "+a+"="+s[a])}return'<tr role="row" id="'+e+'" tabindex="'+n+'" class="'+r+'"'+(""===t?"":' style="'+t+'"')+l+">"},E=function(e,r,t,i){var A=new Date,o="local"!==Q.p.datatype&&Q.p.loadonce||"xmlstring"===Q.p.datatype,a="_id_",n=Q.p.xmlReader,l=[],T="local"===Q.p.datatype?"local":"xml";if(o&&(Q.p.data=[],Q.p._index={},Q.p.localReader.id=a),Q.p.reccount=0,Ye.isXMLDoc(e)){r=-1!==Q.p.treeANode||Q.p.scroll?1<r?r:1:(ae.call(Q,!1,!1),1);var s,d,p,c,u,h,g,f,m,v,j=Ye(Q),b=0,y=0,w=[],x={},_=[],P=K($,"rowBox",!0,"jqgrow ui-row-"+Q.p.direction),q=!0===Q.p.rownumbers?1:0,C=!0===Q.p.multiselect?1:0,I=!0===Q.p.searchCols?1:0,D=(!0===Q.p.subGrid&&(y=1,c=Ye.jgrid.getMethod("addSubGridCell")),n.repeatitems||(w=ie(T)),u=!1===Q.p.keyName?Ye.jgrid.isFunction(n.id)?n.id.call(Q,e):n.id:Q.p.keyName,n.repeatitems&&Q.p.keyName&&isNaN(u)&&(u=Q.p.keyIndex),h=-1===String(u).indexOf("[")?w.length?function(e,t){return Ye(u,e).text()||t}:function(e,t){return Ye(n.cell,e).eq(u).text()||t}:function(e,t){return e.getAttribute(u.replace(/[\[\]]/g,""))||t},Q.p.userData={},Q.p.page=J(Ye.jgrid.getXmlData(e,n.page),Q.p.page),Q.p.lastpage=J(Ye.jgrid.getXmlData(e,n.total),1),Q.p.records=J(Ye.jgrid.getXmlData(e,n.records)),Ye.jgrid.isFunction(n.userdata)?Q.p.userData=n.userdata.call(Q,e)||{}:Ye.jgrid.getXmlData(e,n.userdata,!0).each(function(){Q.p.userData[this.getAttribute("name")]=Ye(this).text()}),Ye.jgrid.getXmlData(e,n.root,!0)),F=(D=(D=Ye.jgrid.getXmlData(D,n.row,!0))||[]).length,G=0,S=[],k=parseInt(Q.p.rowNum,10),R=Q.p.scroll?Ye.jgrid.randId():1,N=Ye(Q).find("tbody").first(),M=!1;if(Q.p.grouping&&(M=!0===Q.p.groupingView.groupCollapse,m=Ye.jgrid.getMethod("groupingPrepare")),0<F&&Q.p.page<=0&&(Q.p.page=1),D&&F){i&&(k*=i+1);for(var B=Ye.jgrid.isFunction(Q.p.afterInsertRow),E=q?K($,"rownumBox",!1,"jqgrid-rownum"):"",z=I?K($,"searchBox",!1,""):"",H=C?K($,"multiBox",!1,"cbox"):"";G<F;){g=D[G],f=h(g,R+G),f=Q.p.idPrefix+f,Q.p.preserveSelection&&(Q.p.multiselect?(v=-1!==Q.p.selarrrow.indexOf(f),X=v?X+1:X):v=f===Q.p.selrow);var U=_.length;if(_.push(""),q&&_.push(te(0,G,Q.p.page,Q.p.rowNum,E)),C&&_.push(ee(f,q,G+1,v,H,g)),I&&_.push(re(f,C+q,G+1,z)),y&&_.push(c.call(j,C+q+I,G+1)),n.repeatitems){var O=O||oe(C+y+q+I),L=Ye.jgrid.getXmlData(g,n.cell,!0);Ye.each(O,function(e){var t=L[this];if(!t)return!1;p=t.textContent||t.text||"",x[Q.p.colModel[e+C+y+q+I].name]=p,_.push(Z(f,p,e+C+y+q+I,G+r,g,x))})}else for(s=0;s<w.length;s++)p=Ye.jgrid.getXmlData(g,w[s]),x[Q.p.colModel[s+C+y+q+I].name]=p,_.push(Z(f,p,s+C+y+q+I,G+r,g,x));if(_[U]=le(f,M,P,x,g),_.push("</tr>"),Q.p.grouping&&(S.push(_),Q.p.groupingView._locgr||m.call(j,x,G),_=[]),(o||!0===Q.p.treeGrid&&!Q.p._ald)&&(x[a]=Ye.jgrid.stripPref(Q.p.idPrefix,f),Q.p.data.push(x),Q.p._index[x[a]]=Q.p.data.length-1,-1<Q.p.treeANode)&&"adjacency"===Q.p.treeGridModel&&l.push(x),!1===Q.p.gridview&&(N.append(_.join("")),j.triggerHandler("jqGridAfterInsertRow",[f,x,g]),B&&Q.p.afterInsertRow.call(Q,f,x,g),_=[]),x={},G++,++b===k)break}}if(X=0<b&&Q.p.multiselect&&Q.p.preserveSelection&&b===X,!0===Q.p.gridview&&(d=-1<Q.p.treeANode?Q.p.treeANode:0,Q.p.grouping?o||(j.jqGrid("groupingRender",S,Q.p.colModel.length,Q.p.page,k),S=null):!0===Q.p.treeGrid&&0<d?Ye(Q.rows[d]).after(_.join("")):(N.append(_.join("")),Q.grid.cols=Q.rows[0].cells)),Q.p.totaltime=new Date-A,_=null,0<b&&0===Q.p.records&&(Q.p.records=F),!0===Q.p.treeGrid){try{j.jqGrid("setTreeNode",d+1,b+d+1)}catch(e){}if(-1<Q.p.treeANode&&"adjacency"===Q.p.treeGridModel&&(p=Q.rows[Q.p.treeANode].id,1<=(p=Q.p._index[p]+1))){for(Q.p.data.splice(-F,F),s=0;s<F;s++)Q.p.data.splice(p+s,0,l[s]);ne()}}if(Q.p.reccount=b,Q.p.treeANode=-1,Q.p.userDataOnFooter&&j.jqGrid("footerData","set",Q.p.userData,Q.p.formatFooterData,0,!1),Q.p.userDataOnHeader&&j.jqGrid("headerData","set",Q.p.userData,Q.p.formatHeaderData,0,!1),o&&(Q.p.records=F,Q.p.lastpage=Math.ceil(F/k)),t||Q.updatepager(!1,!0),X&&se(!0),o){for(;b<F;){if(g=D[b],f=h(g,b+R),f=Q.p.idPrefix+f,n.repeatitems){O=O||oe(C+y+q+I);var V=Ye.jgrid.getXmlData(g,n.cell,!0);Ye.each(O,function(e){var t=V[this];if(!t)return!1;p=t.textContent||t.text||"",x[Q.p.colModel[e+C+y+q+I].name]=p})}else for(s=0;s<w.length;s++)p=Ye.jgrid.getXmlData(g,w[s]),x[Q.p.colModel[s+C+y+q+I].name]=p;x[a]=Ye.jgrid.stripPref(Q.p.idPrefix,f),Q.p.grouping&&m.call(j,x,b),Q.p.data.push(x),Q.p._index[x[a]]=Q.p.data.length-1,x={},b++}Q.p.grouping&&(Q.p.groupingView._locgr=!0,j.jqGrid("groupingRender",S,Q.p.colModel.length,Q.p.page,k),S=null)}if(!0===Q.p.subGrid)try{j.jqGrid("addSubGrid",C+q)}catch(e){}}},z=function(e,t,A,r){var T=new Date;if(e){t=-1!==Q.p.treeANode||Q.p.scroll?1<t?t:1:(ae.call(Q,!1,!1),1),o="local"===Q.p.datatype?(i=Q.p.localReader,"local"):(i=Q.p.jsonReader,"json");var i,o,a,n,l,s,d,p,c,u,h,g,f,m,v="_id_",j="local"!==Q.p.datatype&&Q.p.loadonce||"jsonstring"===Q.p.datatype,b=Ye(Q),y=0,w=[],x=Q.p.multiselect?1:0,_=!0===Q.p.subGrid?1:0,q=!0===Q.p.rownumbers?1:0,C=!0===Q.p.searchCols?1:0,I=Q.p.scroll&&"local"!==Q.p.datatype?Ye.jgrid.randId():1,D=parseInt(Q.p.rowNum,10),F=!1,G=oe(x+_+q+C),P=ie(o),S={},k=[],B=[],E=K($,"rowBox",!0,"jqgrow ui-row-"+Q.p.direction),z=Ye.jgrid.isFunction(Q.p.afterInsertRow),R=[],H=!1,U=Ye(Q).find("tbody").first(),L=q?K($,"rownumBox",!1,"jqgrid-rownum"):"",V=C?K($,"searchBox",!1,""):"",W=x?K($,"multiBox",!1,"cbox"):"";for(j&&(Q.p.data=[],Q.p._index={},Q.p.localReader.id=v),Q.p.reccount=0,Q.p.page=J(Ye.jgrid.getAccessor(e,i.page),Q.p.page),Q.p.lastpage=J(Ye.jgrid.getAccessor(e,i.total),1),Q.p.records=J(Ye.jgrid.getAccessor(e,i.records)),Q.p.userData=Ye.jgrid.getAccessor(e,i.userdata)||{},_&&(s=Ye.jgrid.getMethod("addSubGridCell")),h=!1===Q.p.keyName?Ye.jgrid.isFunction(i.id)?i.id.call(Q,e):i.id:Q.p.keyName,i.repeatitems&&Q.p.keyName&&isNaN(h)&&(h=Q.p.keyIndex),u=Ye.jgrid.getAccessor(e,i.root),(n=0)<(c=(u=(u=Ye.jgrid.isNull(u)&&Array.isArray(e)?e:u)||[]).length)&&Q.p.page<=0&&(Q.p.page=1),r&&(D*=r+1),"local"!==Q.p.datatype||Q.p.deselectAfterSort||(F=!0),Q.p.grouping&&(H=!0===Q.p.groupingView.groupCollapse,f=Ye.jgrid.getMethod("groupingPrepare"));n<c;){var N,M=u[n],O=(void 0===(N=Ye.jgrid.getAccessor(M,h))&&void 0===(N="number"!=typeof h||Ye.jgrid.isNull(Q.p.colModel[h+x+_+q+C])?N:Ye.jgrid.getAccessor(M,Q.p.colModel[h+x+_+q+C].name))&&(N=I+n,0===w.length)&&i.cell&&(O=Ye.jgrid.getAccessor(M,i.cell)||M,N=Ye.jgrid.isNull(O)||void 0===O[h]?N:O[h],O=null),N=Q.p.idPrefix+N,(F||Q.p.preserveSelection)&&(Q.p.multiselect?(d=-1!==Q.p.selarrrow.indexOf(N),X=d?X+1:X):d=N===Q.p.selrow),k.length);for(k.push(""),q&&k.push(te(0,n,Q.p.page,Q.p.rowNum,L)),x&&k.push(ee(N,q,n+1,d,W,M)),C&&k.push(re(N,x+q,n+1,V)),_&&k.push(s.call(b,x+q+C,n+1)),p=P,i.repeatitems&&(i.cell&&(M=Ye.jgrid.getAccessor(M,i.cell)||M),Array.isArray(M))&&(p=G),l=0;l<p.length;l++)a=Ye.jgrid.getAccessor(M,p[l]),S[Q.p.colModel[l+x+_+q+C].name]=a,k.push(Z(N,a,l+x+_+q+C,n+t,M,S));if(k[O]=le(N,H,d?E+" "+Y:E,S,M),k.push("</tr>"),Q.p.grouping&&(R.push(k),Q.p.groupingView._locgr||f.call(b,S,n),k=[]),(j||!0===Q.p.treeGrid&&!Q.p._ald)&&(S[v]=Ye.jgrid.stripPref(Q.p.idPrefix,N),Q.p.data.push(S),Q.p._index[S[v]]=Q.p.data.length-1,-1<Q.p.treeANode)&&"adjacency"===Q.p.treeGridModel&&B.push(S),!1===Q.p.gridview&&(U.append(k.join("")),b.triggerHandler("jqGridAfterInsertRow",[N,S,M]),z&&Q.p.afterInsertRow.call(Q,N,S,M),k=[]),S={},n++,++y===D)break}if(X=0<y&&Q.p.multiselect&&(Q.p.preserveSelection||F)&&y===X,!0===Q.p.gridview&&(g=-1<Q.p.treeANode?Q.p.treeANode:0,Q.p.grouping?j||(b.jqGrid("groupingRender",R,Q.p.colModel.length,Q.p.page,D),R=null):!0===Q.p.treeGrid&&0<g?Ye(Q.rows[g]).after(k.join("")):(U.append(k.join("")),Q.grid.cols=Q.rows[0].cells)),Q.p.totaltime=new Date-T,k=null,0<y&&0===Q.p.records&&(Q.p.records=c),!0===Q.p.treeGrid){try{b.jqGrid("setTreeNode",g+1,y+g+1)}catch(e){}if(-1<Q.p.treeANode&&"adjacency"===Q.p.treeGridModel&&(a=Q.rows[Q.p.treeANode].id,1<=(a=Q.p._index[a]+1))){for(Q.p.data.splice(-c,c),n=0;n<c;n++)Q.p.data.splice(a+n,0,B[n]);ne()}}if(Q.p.reccount=y,Q.p.treeANode=-1,Q.p.userDataOnFooter&&b.jqGrid("footerData","set",Q.p.userData,Q.p.formatFooterData,0,!1),Q.p.userDataOnHeader&&b.jqGrid("headerData","set",Q.p.userData,Q.p.formatHeaderData,0,!1),j&&(Q.p.records=c,Q.p.lastpage=Math.ceil(c/D)),A||Q.updatepager(!1,!0),X&&se(!0),j){for(;y<c&&u[y];){if(M=u[y],void 0===(N=Ye.jgrid.getAccessor(M,h))&&void 0===(N="number"!=typeof h||Ye.jgrid.isNull(Q.p.colModel[h+x+_+q+C])?N:Ye.jgrid.getAccessor(M,Q.p.colModel[h+x+_+q+C].name))&&(N=I+y,0===w.length)&&i.cell&&(m=Ye.jgrid.getAccessor(M,i.cell)||M,N=Ye.jgrid.isNull(m)||void 0===m[h]?N:m[h],m=null),M){for(N=Q.p.idPrefix+N,p=P,i.repeatitems&&(i.cell&&(M=Ye.jgrid.getAccessor(M,i.cell)||M),Array.isArray(M))&&(p=G),l=0;l<p.length;l++)S[Q.p.colModel[l+x+_+q+C].name]=Ye.jgrid.getAccessor(M,p[l]);S[v]=Ye.jgrid.stripPref(Q.p.idPrefix,N),Q.p.grouping&&f.call(b,S,y),Q.p.data.push(S),Q.p._index[S[v]]=Q.p.data.length-1,S={}}y++}Q.p.grouping&&(Q.p.groupingView._locgr=!0,b.jqGrid("groupingRender",R,Q.p.colModel.length,Q.p.page,D),R=null)}if(!0===Q.p.subGrid)try{b.jqGrid("addSubGrid",x+q+C)}catch(e){}}},H=async function(e){return new Promise(function(a,n){let l=Q.p.sortname,s=Q.p.sortorder.toLowerCase(),d=parseInt(Q.p.rowNum,10),p=0,c,u=parseInt(Q.p.page,10),h,g="every";const f=Q.p.ignoreCase;e&&(u=1,d=1e6),l=l||(Q.p.sortname=Q.p.colModel[0].index||Q.p.colModel[0].name),!0===Q.p.search&&(h=Q.p.postData.filters)&&("OR"===(h="string"==typeof h?Ye.jgrid.parse(h):h).groupOp&&(g="some"),h.rules.map(e=>{f&&(e.data=e.data.toLowerCase()),e.type="text";var t=Ye(Q).jqGrid("getColProp",e.field),t=t.sorttype||t.stype,r=!("bt"===e.op||"in"===e.op||"ni"===e.op);switch(t){case"int":case"integer":r&&(e.data=parseInt(e.data,10)),e.type="num";break;case"float":case"number":case"numeric":r&&(e.data=parseFloat(e.data)),e.type="num"}}));var m={eq:function(e,t,r){return(r?t[e.field].toLowerCase():t[e.field])===e.data},ne:function(e,t,r){return(r?t[e.field].toLowerCase():t[e.field])!==e.data},lt:function(e,t,r){return(r?t[e.field].toLowerCase():t[e.field])<e.data},le:function(e,t,r){return(r?t[e.field].toLowerCase():t[e.field])<=e.data},gt:function(e,t,r){return(r?t[e.field].toLowerCase():t[e.field])>e.data},ge:function(e,t,r){return(r?t[e.field].toLowerCase():t[e.field])>=e.data},bw:function(e,t,r){return 0===(r?t[e.field].toLowerCase():t[e.field]).indexOf(e.data)},bn:function(e,t,r){return!(0===(r?t[e.field].toLowerCase():t[e.field]).indexOf(e.data))},ew:function(e,t,r){return(r?t[e.field].toLowerCase():t[e.field]).endsWith(e.data)},en:function(e,t,r){return!(r?t[e.field].toLowerCase():t[e.field]).endsWith(e.data)},cn:function(e,t,r){return-1<(r?t[e.field].toLowerCase():t[e.field]).indexOf(e.data)},nc:function(e,t,r){return-1<!(r?t[e.field].toLowerCase():t[e.field])},in:function(e,t,r){return-1<e.data.split(",").map(e=>r?e.trim().toLowerCase():e.trim()).indexOf(t[e.field])},ni:function(e,t,r){return-1===e.data.split(",").map(e=>r?e.trim().toLowerCase():e.trim()).indexOf(t[e.field].trim())},nu:function(e,t,r){return null===t[e.field]},nn:function(e,t,r){return null!==t[e.field]},bt:function(t,e,r){var i=t.data.split("...").map(e=>"num"===t.type?+e:e.trim());try{var o=r?e[t.field].toLowerCase():e[t.field];return o>=i[0]&&o<=i[1]}catch(e){return!1}}};const v=window.indexedDB.open(Q.p.dbconfig.dbname);v.onsuccess=function(e){var t=v.result.transaction(Q.p.dbconfig.dbtable,"readonly");let i={};i[Q.p.localReader.root]=[],t.oncomplete=function(e){"desc"!==s&&!Q.p.grouping||i[Q.p.localReader.root].sort(function(t,r){var i=[],o=[];if(Q.p.grouping){for(let e=0;e<Q.p.groupingView.groupField.length;e++)"asc"===Q.p.groupingView.groupOrder[e]?(i.push(t[Q.p.groupingView.groupField[e]]),o.push(r[Q.p.groupingView.groupField[e]])):(i.push(r[Q.p.groupingView.groupField[e]]),o.push(t[Q.p.groupingView.groupField[e]]));"asc"===s?(i.push(t[l]),o.push(r[l])):(i.push(r[l]),o.push(t[l]))}else i=[r[l]],o=[t[l]];return indexedDB.cmp(i,o)}),i[Q.p.localReader.root]=i[Q.p.localReader.root].slice((u-1)*d,u*d),c=Math.ceil(p/d),i[Q.p.localReader.total]=c,i[Q.p.localReader.page]=u,i[Q.p.localReader.records]=p,i[Q.p.localReader.userdata]=Q.p.userData,a(i)},t.onerror=function(e){y(),n(e.target)};var t=t.objectStore(Q.p.dbconfig.dbtable).index(l),r=(t.count(null).onsuccess=e=>{p=Q.p.search&&h.rules.length?0:e.target.result},Math.pow(2,32)-1),o=(!1!==Q.p.search||"asc"!==s||Q.p.grouping||(r=u*d),t.getAll(null,r));o.onsuccess=e=>{if(!0===Q.p.search&&h.hasOwnProperty("rules")&&h.rules.length)for(var t=o.result.length,r=0;r<t;)h.rules[g](function(e){return m[e.op](e,o.result[r],f&&"text"===e.type)})&&(p++,i[Q.p.localReader.root].push(o.result[r])),r++;else i[Q.p.localReader.root]=o.result},o.onerror=function(e){console.log(e)}}})},U=function(e){var t,r,i,o=Q.p.multiSort?[]:"",a=[],n=!1,p={},l=[],s=[];if(Array.isArray(Q.p.data)){var d,c,u,h=!!Q.p.grouping&&Q.p.groupingView;if(Ye.each(Q.p.colModel,function(){if("cb"===this.name||"subgrid"===this.name||"rn"===this.name||"sc"===this.name)return!0;if(r=this.sorttype||"text",u=this.index||this.name,"date"===r||"datetime"===r?(this.formatter&&"string"==typeof this.formatter&&"date"===this.formatter?(t=this.formatoptions&&this.formatoptions.srcformat?this.formatoptions.srcformat:Ye.jgrid.getRegional(Q,"formatter.date.srcformat"),i=this.formatoptions&&this.formatoptions.newformat?this.formatoptions.newformat:Ye.jgrid.getRegional(Q,"formatter.date.newformat")):t=i=this.datefmt||"Y-m-d",p[u]={stype:r,srcfmt:t,newfmt:i,sfunc:this.sortfunc||null,name:this.name}):p[u]={stype:r,srcfmt:"",newfmt:"",sfunc:this.sortfunc||null,name:this.name},Q.p.grouping)for(c=0,d=h.groupField.length;c<d;c++)this.name===h.groupField[c]&&(l[c]=p[u],s[c]=u);Q.p.multiSort||n||u!==Q.p.sortname||(o=u,n=!0)}),Q.p.multiSort&&(o=F,a=G),!Q.p.treeGrid||!Q.p._sort){var g={eq:function(e){return e.equals},ne:function(e){return e.notEquals},lt:function(e){return e.less},le:function(e){return e.lessOrEquals},gt:function(e){return e.greater},ge:function(e){return e.greaterOrEquals},cn:function(e){return e.contains},nc:function(e,t){return("OR"===t?e.orNot():e.andNot()).contains},bw:function(e){return e.startsWith},bn:function(e,t){return("OR"===t?e.orNot():e.andNot()).startsWith},en:function(e,t){return("OR"===t?e.orNot():e.andNot()).endsWith},ew:function(e){return e.endsWith},ni:function(e,t){return("OR"===t?e.orNot():e.andNot()).inData},in:function(e){return e.inData},nu:function(e){return e.isNull},nn:function(e,t){return("OR"===t?e.orNot():e.andNot()).isNull}},f=Ye.jgrid.from.call(Q,Q.p.data);if(Q.p.ignoreCase&&(f=f.ignoreCase()),!0===Q.p.search){var m=Q.p.postData.filters;if(m)!function e(t){var r,i,o,a,n,l,s,d=0;if(!Ye.jgrid.isNull(t.groups)){for((i=t.groups.length&&"OR"===t.groupOp.toString().toUpperCase())&&f.orBegin(),r=0;r<t.groups.length;r++){0<d&&i&&f.or();try{e(t.groups[r])}catch(e){alert(e)}d++}i&&f.orEnd()}if(!Ye.jgrid.isNull(t.rules))try{for((s=t.rules.length&&"OR"===t.groupOp.toString().toUpperCase())&&f.orBegin(),r=0;r<t.rules.length;r++){if(a=t.rules[r],o=t.groupOp.toString().toUpperCase(),g[a.op]&&a.field){0<d&&o&&"OR"===o&&(f=f.or()),l=a.field,Q.p.useNameForSearch&&p.hasOwnProperty(a.field)&&(l=p[a.field].name);try{"date"===(n=p[a.field]).stype&&"string"==typeof n.srcfmt&&"string"==typeof n.newfmt&&(a.data=Ye.jgrid.parseDate.call(Q,n.newfmt,a.data,n.srcfmt)),f=g[a.op](f,o)(l,a.data,n)}catch(e){}}else void 0!==Q.p.customFilterDef&&void 0!==Q.p.customFilterDef[a.op]&&Ye.jgrid.isFunction(Q.p.customFilterDef[a.op].action)&&(f=f.user.call(Q,a.op,a.field,a.data));d++}s&&f.orEnd()}catch(e){alert(e)}}(m="string"==typeof m?Ye.jgrid.parse(m):m);else try{"date"===(y=p[Q.p.postData.searchField]).stype&&y.srcfmt&&y.newfmt&&y.srcfmt!==y.newfmt&&(Q.p.postData.searchString=Ye.jgrid.parseDate.call(Q,y.newfmt,Q.p.postData.searchString,y.srcfmt)),g[Q.p.postData.searchOper]?f=g[Q.p.postData.searchOper](f)(Q.p.postData.searchField,Q.p.postData.searchString,p[Q.p.postData.searchField]):void 0!==Q.p.customFilterDef&&void 0!==Q.p.customFilterDef[Q.p.postData.searchOper]&&Ye.jgrid.isFunction(Q.p.customFilterDef[Q.p.postData.searchOper].action)&&(f=f.user.call(Q,Q.p.postData.searchOper,Q.p.postData.searchField,Q.p.postData.searchString))}catch(e){}}if(Q.p.treeGrid&&"nested"===Q.p.treeGridModel&&f.orderBy(Q.p.treeReader.left_field,"asc","integer","",null),Q.p.treeGrid&&"adjacency"===Q.p.treeGridModel&&(d=0,o=null),Q.p.grouping)for(c=0;c<d;c++)f.orderBy(s[c],h.groupOrder[c],l[c].stype,l[c].srcfmt);Q.p.multiSort?Ye.each(o,function(e){f.orderBy(this,a[e],p[this].stype,p[this].srcfmt,p[this].sfunc)}):o&&Q.p.sortorder&&n&&("DESC"===Q.p.sortorder.toUpperCase()?f.orderBy(Q.p.sortname,"d",p[o].stype,p[o].srcfmt,p[o].sfunc):f.orderBy(Q.p.sortname,"a",p[o].stype,p[o].srcfmt,p[o].sfunc));var v=f.select(),j=parseInt(Q.p.rowNum,10),b=v.length,m=parseInt(Q.p.page,10),y=Math.ceil(b/j),w={};if((Q.p.search||Q.p.resetsearch)&&Q.p.grouping&&Q.p.groupingView._locgr){Q.p.groupingView.groups=[];var x,_,q,C=Ye.jgrid.getMethod("groupingPrepare");if(Q.p.footerrow&&Q.p.userDataOnFooter){for(_ in Q.p.userData)Q.p.userData.hasOwnProperty(_)&&(Q.p.userData[_]=0);q=!0}for(x=0;x<b;x++){if(q)for(_ in Q.p.userData)Q.p.userData.hasOwnProperty(_)&&(Q.p.userData[_]+=parseFloat(v[x][_]||0));C.call(Ye(Q),v[x],x,j)}}return e?v:(v=Q.p.treeGrid&&Q.p.search?Ye(Q).jqGrid("searchTree",v):v.slice((m-1)*j,m*j),p=f=null,w[Q.p.localReader.total]=y,w[Q.p.localReader.page]=m,w[Q.p.localReader.records]=b,w[Q.p.localReader.root]=v,w[Q.p.localReader.userdata]=Q.p.userData,v=null,w)}Ye(Q).jqGrid("SortTree",o,Q.p.sortorder,p[o].stype||"text",p[o].srcfmt||"")}},L=function(){Q.grid.hDiv.loading=!0,Q.p.hiddengrid||Ye(Q).jqGrid("progressBar",{method:"show",loadtype:Q.p.loadui,htmlcontent:Ye.jgrid.getRegional(Q,"defaults.loadtext",Q.p.loadtext)})},y=function(){Q.grid.hDiv.loading=!1,Ye(Q).jqGrid("progressBar",{method:"hide",loadtype:Q.p.loadui})},V=function(e,t,r){var i=void 0===(i=Ye(Q).triggerHandler("jqGridBeforeProcessing",[e,t,r]))||"boolean"!=typeof i||i;return i=Ye.jgrid.isFunction(Q.p.beforeProcessing)&&!1===Q.p.beforeProcessing.call(Q,e,t,r)?!1:i},W=function(e,t){Ye(Q).triggerHandler("jqGridLoadComplete",[e]),t&&Q.p.loadComplete.call(Q,e),Ye(Q).triggerHandler("jqGridAfterLoadComplete",[e]),Q.p.datatype="local",Q.p.datastr=null,y()},w=function(i){if(!Q.grid.hDiv.loading){var o,a=Q.p.scroll&&!1===i,e={},t=Q.p.prmNames,r=(X=0,Q.p.page<=0&&(Q.p.page=Math.min(1,Q.p.lastpage)),Ye.jgrid.isNull(t.search,!0)||(e[t.search]=Q.p.search),Ye.jgrid.isNull(t.nd,!0)||(e[t.nd]=(new Date).getTime()),Ye.jgrid.isNull(t.rows,!0)||(e[t.rows]=Q.p.rowNum),Ye.jgrid.isNull(t.page,!0)||(e[t.page]=Q.p.page),Ye.jgrid.isNull(t.sort,!0)||(e[t.sort]=Q.p.sortname),Ye.jgrid.isNull(t.order,!0)||(e[t.order]=Q.p.sortorder),Ye.jgrid.isNull(Q.p.rowTotal,!0)||Ye.jgrid.isNull(t.totalrows,!0)||(e[t.totalrows]=Q.p.rowTotal),Ye.jgrid.isFunction(Q.p.loadComplete)),n=r?Q.p.loadComplete:null,l=0;if(1<(i=i||1)?Ye.jgrid.isNull(t.npage,!0)?n=function(e){Q.p.page++,Q.grid.hDiv.loading=!1,r&&Q.p.loadComplete.call(Q,e),w(i-1)}:(e[t.npage]=i,l=i-1,i=1):Ye.jgrid.isNull(t.npage,!0)||delete Q.p.postData[t.npage],Q.p.grouping){Ye(Q).jqGrid("groupingSetup");for(var s=Q.p.groupingView,d=[],p=0;p<s.groupField.length;p++){var c=s.groupField[p];Ye.each(Q.p.colModel,function(e,t){t.name===c&&t.index&&(c=t.index)}),d.push(c+" "+s.groupOrder[p])}h=d.join(),""!==Ye.jgrid.trim(e[t.sort])?e[t.sort]=""!==h?h+" ,"+e[t.sort]:e[t.sort]:(e[t.sort]=h,e[t.order]=""),"local"!==Q.p.datatype||s._locgr||(Q.p.datatype="jsonstring",Q.p.datastr=Q.p.data)}Ye.extend(Q.p.postData,e);var u=Q.p.scroll?Q.rows.length-1:1;if(Ye.jgrid.isFunction(Q.p.datatype))Q.p.datatype.call(Q,Q.p.postData,"load_"+Q.p.id,u,i,l);else{var h=Ye(Q).triggerHandler("jqGridBeforeRequest");if(!1!==h&&"stop"!==h&&(!Ye.jgrid.isFunction(Q.p.beforeRequest)||!1!==(h=Q.p.beforeRequest.call(Q))&&"stop"!==h)){switch(Ye.jgrid.isFunction(Q.treeGrid_beforeRequest)&&Q.treeGrid_beforeRequest.call(Q),o=Q.p.datatype.toLowerCase()){case"json":case"jsonp":case"xml":case"script":Ye.ajax(Ye.extend({url:Q.p.url,type:Q.p.mtype,dataType:o,data:Ye.jgrid.isFunction(Q.p.serializeGridData)?Q.p.serializeGridData.call(Q,Q.p.postData):Q.p.postData,success:function(e,t,r){V(e,t,r)?(("xml"===o?E:z)(e,u,1<i,l),Ye(Q).triggerHandler("jqGridLoadComplete",[e]),n&&n.call(Q,e),Ye(Q).triggerHandler("jqGridAfterLoadComplete",[e]),a&&Q.grid.populateVisible(),Q.p.treeGrid_bigData?Q.p.loadonce&&(Q.p.datatype="local"):(Q.p.loadonce||Q.p.treeGrid)&&(Q.p.datatype="local"),e=null,1===i&&y(),Ye.jgrid.isFunction(Q.treeGrid_afterLoadComplete)&&Q.treeGrid_afterLoadComplete.call(Q)):y()},error:function(e,t,r){Ye(Q).triggerHandler("jqGridLoadError",[e,t,r]),Ye.jgrid.isFunction(Q.p.loadError)&&Q.p.loadError.call(Q,e,t,r),1===i&&y()},beforeSend:function(e,t){var r=!0,r=Ye(Q).triggerHandler("jqGridLoadBeforeSend",[e,t]);if(!1===(r=void 0===(r=Ye.jgrid.isFunction(Q.p.loadBeforeSend)?Q.p.loadBeforeSend.call(Q,e,t):r)?!0:r))return!1;L()}},Ye.jgrid.ajaxOptions,Q.p.ajaxGridOptions));break;case"xmlstring":if(L(),g="string"!=typeof Q.p.datastr?Q.p.datastr:Ye.parseXML(Q.p.datastr),!V(g,200,null))return void y();E(g),W(g,r);break;case"jsonstring":if(L(),g="string"==typeof Q.p.datastr?Ye.jgrid.parse(Q.p.datastr):Q.p.datastr,!V(g,200,null))return void y();z(g),Q.p.grouping&&Q.p.groupingView._locgr&&(Q.p.data=g),W(g,r);break;case"local":case"clientside":L(),Q.p.datatype="local",Q.p._ald=!0;var g=U(!1);if(!V(g,200,null))return void y();z(g,u,1<i,l),Ye(Q).triggerHandler("jqGridLoadComplete",[g]),n&&n.call(Q,g),Ye(Q).triggerHandler("jqGridAfterLoadComplete",[g]),a&&Q.grid.populateVisible(),y(),Q.p._ald=!1;break;case"indexeddb":if(!Q.p.dbconfig.ready_req)return;L(),H(!1).then(function(e){V(e,200,null)?(z(e,u,1<i,l),Ye(Q).triggerHandler("jqGridLoadComplete",[e]),n&&n.call(Q,e),Ye(Q).triggerHandler("jqGridAfterLoadComplete",[e]),a&&Q.grid.populateVisible(),y(),Q.p._ald=!1):y()})}Q.p._sort=!1}}}},se=function(e){Ye("#cb_"+Ye.jgrid.jqID(Q.p.id),Q.grid.hDiv)[Q.p.useProp?"prop":"attr"]("checked",e),(Q.p.frozenColumns?Q.p.id+"_frozen":"")&&Ye("#cb_"+Ye.jgrid.jqID(Q.p.id),Q.grid.fhDiv)[Q.p.useProp?"prop":"attr"]("checked",e)},de=function(e,l){function s(e,t){var r=Ye(Q).triggerHandler("jqGridPaging",[e,t]);return"stop"!==r&&"stop"!==(r=Ye.jgrid.isFunction(Q.p.onPaging)?Q.p.onPaging.call(Q,e,t):r)&&(Q.p.selrow=null,Q.p.multiselect&&(Q.p.preserveSelection||(Q.p.selarrrow=[]),se(!1)),Q.p.savedRow=[])}var t,r,i,o="<td class='ui-pg-button "+j+"'><span class='ui-separator'></span></td>",a="",n="<table class='ui-pg-table ui-common-table ui-paging-pager'><tbody><tr>",d="";if(l+="_"+e,t="pg_"+e,m=e+"_left",g=e+"_center",f=e+"_right",Ye("#"+Ye.jgrid.jqID(e)).append("<div id='"+t+"' class='ui-pager-control' role='group'><table "+K($,"pagerTable",!1,"ui-pg-table ui-common-table ui-pager-table")+"><tbody><tr><td id='"+m+"' align='left'></td><td id='"+g+"' align='center' style='white-space:pre;'></td><td id='"+f+"' align='right'></td></tr></tbody></table></div>").attr("dir",v),0<Q.p.rowList.length){var p,d='<td dir="'+v+'">';for(d+="<select "+K($,"pgSelectBox",!1,"ui-pg-selbox")+' size="1" name="pg_sel_box" role="listbox" title="'+(Ye.jgrid.getRegional(Q,"defaults.pgrecs",Q.p.pgrecs)||"")+'">',r=0;r<Q.p.rowList.length;r++)1===(p=Q.p.rowList[r].toString().split(":")).length&&(p[1]=p[0]),0==p[1].length?d+='<option role="option" value="'+p[0]+'"'+(J(Q.p.rowNum,0)===J(p[0],0)?' aria-label="'+p[1]+'" selected="selected"':"")+">"+p[1]+"</option>":d+='<option role="option" value="'+p[0]+'"'+(J(Q.p.rowNum,0)===J(p[0],0)?' selected="selected"':"")+">"+p[1]+"</option>";d+="</select></td>"}"rtl"===v&&(n+=d,Ye("#"+f).attr("align","left")),!0===Q.p.pginput&&(a="<td id='input"+l+"' dir='"+v+"'>"+Ye.jgrid.template(Ye.jgrid.getRegional(Q,"defaults.pgtext",Q.p.pgtext)||"","<input "+K($,"pgInput",!1,"ui-pg-input")+" type='text' size='2' maxlength='7' value='0' role='textbox' name='jqgpginput'/>","<span id='sp_1_"+Ye.jgrid.jqID(e)+"'></span>")+"</td>");var c,u,h,g,f,m=["first"+l,"prev"+l,"next"+l,"last"+l];!0===Q.p.pgbuttons?(g=K($,"pgButtonBox",!0,"ui-pg-button"),f=[Ye.jgrid.getRegional(Q,"defaults.pgfirst",Q.p.pgfirst)||"",Ye.jgrid.getRegional(Q,"defaults.pgprev",Q.p.pgprev)||"",Ye.jgrid.getRegional(Q,"defaults.pgnext",Q.p.pgnext)||"",Ye.jgrid.getRegional(Q,"defaults.pglast",Q.p.pglast)||""],"rtl"===v&&(m.reverse(),f.reverse()),c="<td id='"+m[0]+"' class='"+g+"' title='"+f[0]+"'><span "+K($,"icon_first",!1,I)+"></span></td>",u="<td id='"+m[1]+"' class='"+g+"'  title='"+f[1]+"'><span "+K($,"icon_prev",!1,I)+"></span></td>",h="<td id='"+m[2]+"' class='"+g+"' title='"+f[2]+"'><span "+K($,"icon_next",!1,I)+"></span></td>",g="<td id='"+m[3]+"' class='"+g+"' title='"+f[3]+"'><span "+K($,"icon_end",!1,I)+"></span></td>",f=""!==a?o+a+o:"",n+="ltr"===v?c+u+f+h+g:g+h+f+u+c):""!==a&&(n+=a),"ltr"===v&&(n+=d),n+="</tr></tbody></table>",e=Ye.jgrid.jqID(e),t=Ye.jgrid.jqID(t),!0===Q.p.viewrecords&&Ye("td#"+e+"_"+Q.p.recordpos,"#"+t).append("<div dir='"+v+"' class='ui-paging-info'></div>"),Ye("td#"+e+"_"+Q.p.pagerpos,"#"+t).append(n),o=Ye("#gbox_"+Ye.jgrid.jqID(Q.p.id)).css("font-size")||"11px",Ye("#gbox_"+Ye.jgrid.jqID(Q.p.id)).append("<div id='testpg' "+K($,"entrieBox",!1,"ui-jqgrid")+" style='font-size:"+o+";visibility:hidden;' ></div>"),g=Ye(n).clone().appendTo("#testpg").width(),Ye("#testpg").remove(),0<g&&(""!==a&&(g+=50),i=g>Ye("td#"+e+"_"+Q.p.pagerpos,"#"+t).innerWidth(),Ye("td#"+e+"_"+Q.p.pagerpos,"#"+t).width(g)),Q.p._nvtd=[],Q.p._nvtd[0]=g?Math.floor((Q.p.width-g)/2):Math.floor(Q.p.width/3),Q.p._nvtd[1]=0,n=null,Ye(".ui-pg-selbox","#"+t).on("change",function(){return s("records",this)&&(Q.p.page=Math.round(Q.p.rowNum*(Q.p.page-1)/this.value-.5)+1,Q.p.rowNum=this.value,Q.p.pager&&Ye(".ui-pg-selbox",Q.p.pager).val(this.value),Q.p.toppager&&Ye(".ui-pg-selbox",Q.p.toppager).val(this.value),w()),!1}),!0===Q.p.pgbuttons&&(Ye(".ui-pg-button","#"+t).hover(function(){Ye(this).hasClass(j)?this.style.cursor="default":(Ye(this).addClass(C),this.style.cursor="pointer")},function(){Ye(this).hasClass(j)||(Ye(this).removeClass(C),this.style.cursor="default")}),Ye("#first"+Ye.jgrid.jqID(l)+", #prev"+Ye.jgrid.jqID(l)+", #next"+Ye.jgrid.jqID(l)+", #last"+Ye.jgrid.jqID(l)).click(function(){var e,t,r,i,o,a,n;return Ye(this).hasClass(j)||(e=J(Q.p.page,1),n=a=o=i=!(r=!1),0===(t=J(Q.p.lastpage,1))||1===t?n=a=o=i=!1:1<t&&1<=e?1===e?o=i=!1:e===t&&(n=a=!1):1<t&&0===e&&(n=a=!1,e=t-1),s(this.id.split("_")[0],this)&&(this.id==="first"+l&&i&&(Q.p.page=1,r=!0),this.id==="prev"+l&&o&&(Q.p.page=e-1,r=!0),this.id==="next"+l&&a&&(Q.p.page=e+1,r=!0),this.id==="last"+l&&n&&(Q.p.page=t,r=!0),r&&w(),Ye.jgrid.setSelNavIndex(Q,this))),!1})),!0===Q.p.pginput&&Ye("#"+t).on("keypress","input.ui-pg-input",function(e){return 13===(e.charCode||e.keyCode||0)?(e.preventDefault(),s("user",this)&&(Ye(this).val(J(Ye(this).val(),1)),Q.p.page=0<Ye(this).val()?Ye(this).val():Q.p.page,w()),!1):this}),i&&Q.p.responsive&&!Q.p.forcePgButtons&&(Ye("#"+m[0]+",#"+m[3]+",#input"+Ye.jgrid.jqID(l)).hide(),Ye(".ui-paging-info","td#"+e+"_"+Q.p.recordpos).hide(),Ye(".ui-pg-selbox","td#"+e+"_"+Q.p.pagerpos).hide())},pe=function(e,t,r){var i=Q.p.colModel,o=[],a="",i=(o.push(Q.grid.headers[e].el),Q.p.frozenColumns&&o.push(t),Ye("span.ui-grid-ico-sort",o).addClass(j),Ye(o).attr({"aria-selected":"false","aria-sort":"none"}),t=i[e].index||i[e].name,void 0===r?i[e].lso?"asc"===i[e].lso?(i[e].lso+="-desc",a="desc"):"desc"===i[e].lso?(i[e].lso+="-asc",a="asc"):"asc-desc"!==i[e].lso&&"desc-asc"!==i[e].lso||(i[e].lso=""):i[e].lso=a=i[e].firstsortorder||"asc":i[e].lso=a=r,a?(Ye("span.s-ico",o).show(),Ye("span.ui-icon-"+a,o).removeClass(j),Ye(o).attr({"aria-selected":"true","aria-sort":a+"ending"})):Q.p.viewsortcols[0]||Ye("span.s-ico",o).hide(),F.indexOf(t));-1===i?(F.push(t),G.push(a)):a?G[i]=a:(G.splice(i,1),F.splice(i,1)),Q.p.sortorder="",Q.p.sortname="";for(var n=0,l=F.length;n<l;n++)0<n&&(Q.p.sortname+=", "),Q.p.sortname+=F[n],n!==l-1&&(Q.p.sortname+=" "+G[n]);Q.p.sortorder=G[l-1]},ce=function(e,t,r,i,o){if(Q.p.colModel[t].sortable&&!(0<Q.p.savedRow.length)){if(r||(Q.p.lastsort===t&&""!==Q.p.sortname?"asc"===Q.p.sortorder?Q.p.sortorder="desc":"desc"===Q.p.sortorder&&(Q.p.sortorder="asc"):Q.p.sortorder=Q.p.colModel[t].firstsortorder||"asc",Q.p.page=1),Q.p.multiSort)pe(t,o,i);else{if(i){if(Q.p.lastsort===t&&Q.p.sortorder===i&&!r)return;Q.p.sortorder=i}var r=Q.grid.headers[Q.p.lastsort]?Q.grid.headers[Q.p.lastsort].el:null,i=Q.grid.headers[t].el,o=Q.p.frozenColumns?o:null,a="single"===Q.p.viewsortcols[1],n=Ye(r).find("span.ui-grid-ico-sort");n.addClass(j),a&&Ye(n).css("display","none"),Ye(r).attr({"aria-selected":"false","aria-sort":"none"}),Q.p.frozenColumns&&((n=Q.grid.fhDiv.find("span.ui-grid-ico-sort")).addClass(j),a&&n.css("display","none"),Q.grid.fhDiv.find("th").attr({"aria-selected":"false","aria-sort":"none"})),(n=Ye(i).find("span.ui-icon-"+Q.p.sortorder)).removeClass(j),a&&n.css("display",""),Ye(i).attr({"aria-selected":"true","aria-sort":Q.p.sortorder+"ending"}),Q.p.frozenColumns&&((n=Ye(o).find("span.ui-icon-"+Q.p.sortorder)).removeClass(j),a&&n.css("display",""),Ye(o).attr({"aria-selected":"true","aria-sort":Q.p.sortorder+"ending"})),Q.p.viewsortcols[0]||(Q.p.lastsort!==t?(Q.p.frozenColumns&&Q.grid.fhDiv.find("span.s-ico").hide(),Ye("span.s-ico",r).hide(),Ye("span.s-ico",i).show(),o&&Ye("span.s-ico",o).show()):""===Q.p.sortname&&Ye("span.s-ico",i).show()),e=e.substring(5+Q.p.id.length+1),Q.p.sortname=Q.p.colModel[t].index||e}("stop"===Ye(Q).triggerHandler("jqGridSortCol",[Q.p.sortname,t,Q.p.sortorder])||Ye.jgrid.isFunction(Q.p.onSortCol)&&"stop"===Q.p.onSortCol.call(Q,Q.p.sortname,t,Q.p.sortorder)||(se(!1),"local"===Q.p.datatype?Q.p.deselectAfterSort&&!Q.p.preserveSelection&&Ye(Q).jqGrid("resetSelection"):(Q.p.selrow=null,Q.p.multiselect&&!Q.p.preserveSelection&&(Q.p.selarrrow=[]),Q.p.savedRow=[]),Q.p.scroll&&(a=Q.grid.bDiv.scrollLeft,ae.call(Q,!0,!1),Q.grid.hDiv.scrollLeft=a),Q.p.subGrid&&"local"===Q.p.datatype&&Ye("td.sgexpanded","#"+Ye.jgrid.jqID(Q.p.id)).each(function(){Ye(this).trigger("click")}),Q.p._sort=!0,w(),Q.p.lastsort=t,Q.p.sortname!==e&&t))&&(Q.p.lastsort=t)}},ue=function(e){for(var t=Q.grid.headers,r=Ye.jgrid.getCellIndex(e),i=0;i<t.length;i++)if(e===t[i].el){r=i;break}return r},he=function(e,t,r,i){var o,a=Q.p.colModel,n=a.length,l=[],s=!0,d=[],p=Ye.extend([],Q.p.colNames),c=Ye.jgrid.styleUI[Q.p.styleUI||"jQueryUI"].common,u=Ye.jgrid.getRegional(Q,"colmenu"),h=[],g='<ul id="col_menu" class="ui-search-menu  ui-col-menu modal-content '+c.shadow+'" role="menu" tabindex="0" style="left:'+t+'px;">';if(i.columns_selectAll&&(g+='<li class="ui-menu-item disabled" role="presentation" draggable="false"><a class="g-menu-item" tabindex="0" role="menuitem" ><table class="ui-common-table" ><tr><td class="menu_icon" title="'+u.reorder+'"><span class="'+I+" "+D.icon_move+' notclick" style="visibility:hidden"></span></td><td class="menu_icon"><input id="chk_all" class="'+D.input_checkbox+'" type="checkbox" name="check_all"></td><td class="menu_text">Check/Uncheck</td></tr></table></a></li>'),Q.p.colSpanHeader.length)for(var f=0;f<Q.p.colSpanHeader.length;f++){var m,v=Q.p.colSpanHeader[f];0<=(m=Ye.jgrid.getElemByAttrVal(a,"name",v.startColumnName,!0))&&(h.push(m),p[m]=v.titleText)}if(Ye(Q).jqGrid("isGroupHeaderOn"))for(var c=Q.p.groupHeader.length,j=Q.p.groupHeader[c-1],b=0;b<p.length;b++)if(0<=(m=Ye.jgrid.inColumnHeader(a[b].name,j.groupHeaders))){p[b]=j.groupHeaders[m].titleText+"::"+p[b];for(var y=1;y<=j.groupHeaders[m].numberOfColumns-1;y++)p[b+y]=j.groupHeaders[m].titleText+"::"+p[b+y];b=b+j.groupHeaders[m].numberOfColumns-1}for(o=0;o<n;o++){var w,x=a[o].hidden?"":"checked",_=a[o].name,q=p[o];g+="<li "+(w="cb"===_||"subgrid"===_||"rn"===_||"sc"===_||a[o].hidedlg?"style='display:none'":"")+' class="ui-menu-item" role="presentation" draggable="true"><a class="g-menu-item" tabindex="0" role="menuitem" ><table class="ui-common-table" ><tr><td class="menu_icon" title="'+u.reorder+'"><span class="'+I+" "+D.icon_move+' notclick"></span></td><td class="menu_icon"><input class="'+D.input_checkbox+' chk_selected" type="checkbox" name="'+_+'" '+x+'></td><td class="menu_text">'+q+"</td></tr></table></a></li>",l.push(o),w||d.push(_),s&&!x&&(s=!1)}g+="</ul>",Ye(r).append(g),Ye("#col_menu").addClass("ui-menu "+D.menu_widget),Ye("#chk_all","#col_menu").prop("checked",s),Ye.jgrid.isElementInViewport(Ye("#col_menu")[0])||Ye("#col_menu").css("left",-parseInt(Ye("#column_menu").innerWidth(),10)+"px"),Ye.fn.html5sortable()&&Ye("#col_menu").html5sortable({handle:"span",items:":not(.disabled)",forcePlaceholderSize:!0}).on("sortupdate",function(e,t){for(l.splice(t.startindex,1),l.splice(t.endindex,0,t.startindex),Ye(Q).jqGrid("destroyFrozenColumns"),Ye(Q).jqGrid("remapColumns",l,!0),Ye(Q).triggerHandler("jqGridColMenuColumnDone",[l,null,null]),Ye.jgrid.isFunction(Q.p.colMenuColumnDone)&&Q.p.colMenuColumnDone.call(Q,l,null,null),Ye(Q).jqGrid("setFrozenColumns"),o=0;o<n;o++)l[o]=o}),Ye("#col_menu > li > a").on("click",function(e){var t;Ye(e.target).hasClass("notclick")||(Ye(e.target).is(":input")?t=Ye(e.target).is(":checked"):(t=!Ye("input",this).is(":checked"),Ye("input",this).prop("checked",t)),"check_all"===(e=Ye("input",this).attr("name"))?t?(Ye("input","#col_menu").prop("checked",!0),Ye(Q).jqGrid("showCol",d)):(Ye("input","#col_menu").prop("checked",!1),Ye(Q).jqGrid("hideCol",d)):(Ye(Q).triggerHandler("jqGridColMenuColumnDone",[l,e,t]),Ye.jgrid.isFunction(Q.p.colMenuColumnDone)&&Q.p.colMenuColumnDone.call(Q,l,e,t),t?(Ye(Q).jqGrid("showCol",e),Ye(this).parent().attr("draggable","true")):(Ye(Q).jqGrid("hideCol",e),Ye(this).parent().attr("draggable","false")),i.columns_selectAll&&Ye("#chk_all","#col_menu").prop("checked",Ye(".chk_selected:checked","#col_menu").length===Ye(".chk_selected","#col_menu").length),Ye("#column_menu").remove()))}).hover(function(){Ye(this).addClass(C)},function(){Ye(this).removeClass(C)})},ge=function(e,t,r,i){var o,a,n,l,s,d,p=Q.p.colModel[e],c="",e="",u="",h="",g="",f="",m=Ye.jgrid.getRegional(Q,"search"),v=Ye.jgrid.styleUI[Q.p.styleUI||"jQueryUI"].common,j=Ye.jgrid.styleUI[b.styleUI||"jQueryUI"].modal;p&&((n=!(!Q.p.colFilters||!Q.p.colFilters[p.name])&&Q.p.colFilters[p.name])&&!Ye.isEmptyObject(n)&&(c=n.oper1,e=n.value1,u=n.rule,h=n.oper2,g=n.value2),p.searchoptions||(p.searchoptions={}),a=p.searchoptions.sopt||(-1!==Ye.inArray(p.sorttype,["text","string","blob"])?["eq","ne","bw","bn","ew","en","cn","nc","nu","nn","in","ni"]:["eq","ne","lt","le","gt","ge","nu","nn","in","ni"]),n=p.searchoptions.groupOps||m.groupOps,l=Ye("<form></form>"),s="<a id='bs_close' aria-label='Close'><span class='"+I+" "+j.icon_close+"'></span></a>",s=(s+="<div>"+Ye.jgrid.getRegional(Q,"colmenu.searchTitle")+"</div>")+'<div><select size="1" id="oper1" class="'+D.filter_select+'">',Ye.each(m.odata,function(e,t){o=t.oper===c?'selected="selected"':"",-1!==Ye.inArray(t.oper,a)&&(f+='<option value="'+t.oper+'"  aria-label="'+t.text+'" '+o+">"+t.text+"</option>")}),s=s+f+"</select></div>",l.append(s),d="",p.searchoptions.defaultValue&&(d=Ye.jgrid.isFunction(p.searchoptions.defaultValue)?p.searchoptions.defaultValue.call(Q):p.searchoptions.defaultValue),e&&(d=e),j=Ye.extend(p.searchoptions,{name:p.index||p.name,id:"sval1_"+Q.p.idPrefix+p.name,oper:"search"}),e=Ye.jgrid.createEl.call(Q,p.stype,j,d,!1,Ye.extend({},Ye.jgrid.ajaxOptions,Q.p.ajaxSelectOptions||{})),Ye(e).addClass(D.filter_input),s=Ye("<div></div>").append(e),l.append(s),s='<div><select size="1" id="operand" class="'+D.filter_select+'">',Ye.each(n,function(e,t){o=t.op===u?'selected="selected"':"",s+="<option value='"+t.op+"' "+o+">"+t.text+"</option>"}),s+="</select></div>",l.append(s),f="",Ye.each(m.odata,function(e,t){o=t.oper===h?'selected="selected"':"",-1!==Ye.inArray(t.oper,a)&&(f+='<option value="'+t.oper+'" '+o+">"+t.text+"</option>")}),s='<div><select size="1" id="oper2" class="'+D.filter_select+'">'+f+"</select></div>",l.append(s),d=g||"",j=Ye.extend(p.searchoptions,{name:p.index||p.name,id:"sval2_"+Q.p.idPrefix+p.name,oper:"search"}),e=Ye.jgrid.createEl.call(Q,p.stype,j,d,!1,Ye.extend({},Ye.jgrid.ajaxOptions,Q.p.ajaxSelectOptions||{})),Ye(e).addClass(D.filter_input),s=Ye("<div></div>").append(e),l.append(s),s="<div>",s=(s+="<div class='search_buttons'><a tabindex='0' id='bs_reset' class='fm-button "+v.button+" ui-reset'>"+m.Reset+"</a></div>")+"<div class='search_buttons'><a tabindex='0' id='bs_search' class='fm-button "+v.button+" ui-search'>"+m.Find+"</a></div></div>",l.append(s),l=Ye('<li class="ui-menu-item" role="presentation"></li>').append(l),l=Ye('<ul id="search_menu" class="ui-search-menu modal-content '+v.shadow+'" role="menu" tabindex="0" style="left:'+r+'px;"></ul>').append(l),Ye(i).append(l),Ye("#search_menu").addClass("ui-menu "+D.menu_widget),Ye.jgrid.isElementInViewport(Ye("#search_menu")[0])||Ye("#search_menu").css("left",-parseInt(Ye("#column_menu").innerWidth(),10)+"px"),Ye("#bs_reset, #bs_search","#search_menu","#bs_close").hover(function(){Ye(this).addClass(C)},function(){Ye(this).removeClass(C)}),Ye("#bs_reset",l).on("click",function(e){Q.p.colFilters[p.name]={},!0===Q.p.mergeSearch&&Q.p.searchModules.hasOwnProperty("colMenuSearch")&&!1!==Q.p.searchModules.colMenuSearch?(Q.p.searchModules.colMenuSearch=fe(),Ye.extend(Q.p.postData,{filters:Ye.jgrid.splitSearch(Q.p.searchModules)}),Q.p.search=!0):(Q.p.postData.filters=fe(),Q.p.search=!1,Q.p.resetsearch=!0),d="",p.searchoptions.defaultValue&&(d=Ye.jgrid.isFunction(p.searchoptions.defaultValue)?p.searchoptions.defaultValue.call(Q):p.searchoptions.defaultValue),Ye("#sval1_"+Q.p.idPrefix+p.name,"#search_menu").val(d),Ye("#sval2_"+Q.p.idPrefix+p.name,"#search_menu").val(""),Ye.jgrid.isFunction(Q.p.colMenuBeforeProcess)&&Q.p.colMenuBeforeProcess.call(Q,{module:"filtering",action:"reset",column:p.name}),Ye(Q).trigger("reloadGrid")}),Ye("#bs_search",l).on("click",function(e){Q.p.colFilters[p.name]={oper1:Ye("#oper1","#search_menu").val(),value1:Ye("#sval1_"+Q.p.idPrefix+p.name,"#search_menu").val(),rule:Ye("#operand","#search_menu").val(),oper2:Ye("#oper2","#search_menu").val(),value2:Ye("#sval2_"+Q.p.idPrefix+p.name,"#search_menu").val()},!0===Q.p.mergeSearch&&Q.p.searchModules.hasOwnProperty("colMenuSearch")&&!1!==Q.p.searchModules.colMenuSearch?(Q.p.searchModules.colMenuSearch=fe(),Ye.extend(Q.p.postData,{filters:Ye.jgrid.splitSearch(Q.p.searchModules)})):Q.p.postData.filters=fe(),Q.p.search=!0,Ye.jgrid.isFunction(Q.p.colMenuBeforeProcess)&&Q.p.colMenuBeforeProcess.call(Q,{module:"filtering",action:"search",column:p.name}),Ye(Q).trigger("reloadGrid"),Ye("#column_menu").remove()}),Ye("#bs_close",l).on("click",function(){Ye("#column_menu").remove()}))},fe=function(){var e,t="",r=0;for(e in Q.p.colFilters)if(Q.p.colFilters.hasOwnProperty(e)){var i=Q.p.colFilters[e];if(!Ye.isEmptyObject(i)){if(""===i.value1&&""===i.value2)break;0<r&&(t+=","),t=(t=t+('{"groupOp":"'+i.rule+'","rules":[')+('{"field":"'+e+'",'))+('"op":"'+i.oper1+'",'),i.value1+="",t+='"data":"'+i.value1.replace(/\\/g,"\\\\").replace(/\"/g,'\\"')+'"}',i.value2&&(t=(t+=',{"field":"'+e+'",')+'"op":"'+i.oper2+'",',i.value2+="",t+='"data":"'+i.value2.replace(/\\/g,"\\\\").replace(/\"/g,'\\"')+'"}'),t+="]",r++}}return t+="}",t=0===r?"":t},me=function(e,t){var e=Q.p.colModel[e],r=Q.p.groupingView;-1!==t?r.groupField.splice(t,1):r.groupField.push(e.name),Ye.jgrid.isFunction(Q.p.colMenuBeforeProcess)&&Q.p.colMenuBeforeProcess.call(Q,{module:"grouping",action:-1!==t?"ungroup":"group",column:e.name}),Ye(Q).jqGrid("groupingGroupBy",r.groupField),Q.p.frozenColumns&&(Ye(Q).jqGrid("destroyFrozenColumns"),Ye(Q).jqGrid("setFrozenColumns"))},ve=function(e,t){for(var r=[],i=Q.p.colModel.length,o=-1,a=Q.p.colModel,n=0;n<i;n++)a[n].frozen&&(o=n),r.push(n);r.splice(e,1),r.splice(o+(t?1:0),0,e),a[e].frozen=t,Ye.jgrid.isFunction(Q.p.colMenuBeforeProcess)&&Q.p.colMenuBeforeProcess.call(Q,{module:"freeze",action:t?"freeze":"unfreeze",column:a[e].name}),Ye(Q).jqGrid("destroyFrozenColumns"),Ye(Q).jqGrid("remapColumns",r,!0),Ye(Q).jqGrid("setFrozenColumns")},je=function(e,t,r,i,o){Q.p.colModel;var a=Ye.jgrid.styleUI[Q.p.styleUI||"jQueryUI"].common,n=Ye.jgrid.styleUI[Q.p.styleUI||"jQueryUI"].colmenu,l=Q.p.colMenuCustom[i].items,s='<ul id="col_menu" class="ui-search-menu  ui-col-menu modal-content '+a.shadow+'" role="menu" tabindex="0" style="left:'+t+'px;">';l.forEach(e=>{e.icon||(e.icon=n.icon_new_item),"separator"==e.id?s+='<li class="ui-menu-item divider" role="separator"></li>':s+='<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="'+e.id+'"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+I+" "+e.icon+'"></span></td><td class="menu_text">'+e.title+"</td></tr></table></a></li>"}),s+="</ul>",Ye(r).append(s),Ye("#col_menu").addClass("ui-menu "+D.menu_widget),Ye.jgrid.isElementInViewport(Ye("#col_menu")[0])||Ye("#col_menu").css("left",-parseInt(Ye("#column_menu").innerWidth(),10)+"px"),Ye("#col_menu > li > a").on("click",function(e){var t=Ye(this).attr("data-value"),r=l.find(e=>e.id===t);r&&Ye.jgrid.isFunction(r.funcname)&&(r.funcname.call(Q,o),r.closeOnRun)&&Ye(this).remove()}).hover(function(){Ye(this).addClass(C)},function(){Ye(this).removeClass(C)})};for((Q.p.colMenu||Q.p.menubar)&&Ye("body").on("click",function(e){if(!Ye(e.target).closest("#column_menu").length)try{Ye("#column_menu").remove()}catch(e){}if(!Ye(e.target).closest(".ui-jqgrid-menubar").length)try{Ye("#"+Q.p.id+"_menubar").hide()}catch(e){}}),this.p.id=this.id,!0===Q.p.autowidth&&(a=Ye(r).parent().width(),i=Ye(window).width(),Q.p.width=3<i-a?a:i-1),-1===Ye.inArray(Q.p.multikey,["shiftKey","altKey","ctrlKey"])&&(Q.p.multikey=!1),Q.p.keyName=!1,e=0;e<Q.p.colModel.length;e++)R="string"==typeof Q.p.colModel[e].template?Ye.jgrid.isNull(Ye.jgrid.cmTemplate)||"object"!=typeof Ye.jgrid.cmTemplate[Q.p.colModel[e].template]?{}:Ye.jgrid.cmTemplate[Q.p.colModel[e].template]:Q.p.colModel[e].template,Q.p.colModel[e]=Ye.extend(!0,{},Q.p.cmTemplate,R||{},Q.p.colModel[e]),!1===Q.p.keyName&&!0===Q.p.colModel[e].key&&(Q.p.keyName=Q.p.colModel[e].name,Q.p.keyIndex=e);Q.p.sortorder=Q.p.sortorder.toLowerCase(),Ye.jgrid.cell_width=Ye.jgrid.cellWidth();var be=Ye("<table style='visibility:hidden'><tr class='jqgrow'><td>1</td></tr></table)").addClass(K($,"rowTable",!0,"ui-jqgrid-btable ui-common-table"));if(Ye(r).append(be),Q.p.cellLayout=Ye.jgrid.floatNum(Ye("td",be).css("padding-left"))+Ye.jgrid.floatNum(Ye("td",be).css("padding-right"),10)+1,Q.p.cellLayout<=0&&(Q.p.cellLayout=5),Ye(be).remove(),!null===Q.p.grouping&&(Q.p.scroll=!1,Q.p.rownumbers=!1,Q.p.treeGrid=!1,Q.p.gridview=!0),!0===this.p.treeGrid){try{Ye(this).jqGrid("setTreeGrid")}catch(e){}"local"!==Q.p.datatype?Q.p.localReader={id:"_id_"}:!1!==Q.p.keyName&&(Q.p.localReader={id:Q.p.keyName})}if(this.p.subGrid)try{Ye(Q).jqGrid("setSubGrid")}catch(e){}this.p.searchCols&&(this.p.colNames.unshift(Q.p.searchColOptions.colName),this.p.colModel.unshift({name:"sc",width:Q.p.searchColOptions.colWidth,sortable:!1,hidedlg:!0,search:!1,align:"left",fixed:!0,frozen:!0,colmenu:Q.p.searchColOptions.colmenu,classes:"jqgrid-searchcol",labelClasses:"jqgrid-searchcolumn",coloptions:{sorting:!1,columns:!1,filtering:!1,seraching:!1,grouping:!1,freeze:!1}})),this.p.multiselect&&(a=(a=Ye.jgrid.getRegional(Q,"defaults.selectAllLines"))||Ye.jgrid.regional.en.defaults.selectAllLines,this.p.colNames.unshift("<input role='checkbox' id='cb_"+this.p.id+"' class='cbox' type='checkbox' title='"+a+"'/>"),this.p.colModel.unshift({name:"cb",width:Ye.jgrid.cell_width?Q.p.multiselectWidth+Q.p.cellLayout:Q.p.multiselectWidth,sortable:!1,resizable:!1,hidedlg:!0,search:!1,align:"center",fixed:!0,frozen:!0,classes:"jqgrid-multibox",labelClasses:"jqgrid-multibox"})),this.p.rownumbers&&(this.p.colNames.unshift(""),this.p.colModel.unshift({name:"rn",width:Q.p.rownumWidth,sortable:!1,resizable:!1,hidedlg:!0,search:!1,align:"center",fixed:!0,frozen:!0,labelClasses:"jqgrid-rownumber"})),Q.p.xmlReader=Ye.extend(!0,{root:"rows",row:"row",page:"rows>page",total:"rows>total",records:"rows>records",repeatitems:!0,cell:"cell",id:"[id]",userdata:"userdata",subgrid:{root:"rows",row:"row",repeatitems:!0,cell:"cell"}},Q.p.xmlReader),Q.p.jsonReader=Ye.extend(!0,{root:"rows",page:"page",total:"total",records:"records",repeatitems:!0,cell:"cell",id:"id",userdata:"userdata",subgrid:{root:"rows",repeatitems:!0,cell:"cell"}},Q.p.jsonReader),Q.p.localReader=Ye.extend(!0,{root:"rows",page:"page",total:"total",records:"records",repeatitems:!1,cell:"cell",id:"id",userdata:"userdata",subgrid:{root:"rows",repeatitems:!0,cell:"cell"}},Q.p.localReader),Q.p.scroll&&(Q.p.pgbuttons=!1,Q.p.pginput=!1,Q.p.rowList=[]),Q.p.data.length&&(B(),ne());var ye,we,xe,p,c,_e,i,qe,Ce,o="<thead role='rowgroup'><tr class='ui-jqgrid-labels' role='row'>",Ie="",a="",n="";if(!0===Q.p.shrinkToFit&&!0===Q.p.forceFit)for(e=Q.p.colModel.length-1;0<=e;e--)if(!Q.p.colModel[e].hidden){Q.p.colModel[e].resizable=!1;break}if("horizontal"===Q.p.viewsortcols[1]?(a=" ui-i-asc",n=" ui-i-desc"):"single"===Q.p.viewsortcols[1]&&(a=" ui-single-sort-asc",Ie=" style='display:none'",Q.p.viewsortcols[0]=!(n=" ui-single-sort-desc")),ye=M?"class='ui-th-div-ie'":"",_e="<span class='s-ico' style='display:none'>",_e=(_e+="<span sort='asc'  class='ui-grid-ico-sort ui-icon-asc"+a+" ui-sort-"+v+" "+j+" "+I+" "+K($,"icon_asc",!0)+"'"+Ie+" aria-label='empty'><span style='display:none'>empty</span></span>")+("<span sort='desc' class='ui-grid-ico-sort ui-icon-desc"+n+" ui-sort-"+v+" "+j+" "+I+" "+K($,"icon_desc",!0)+"'"+Ie+" aria-label='empty'><span style='display:none'>empty</span></span></span>"),Q.p.multiSort&&Q.p.sortname)for(F=Q.p.sortname.split(","),e=0;e<F.length;e++)O=Ye.jgrid.trim(F[e]).split(" "),F[e]=Ye.jgrid.trim(O[0]),G[e]=O[1]?Ye.jgrid.trim(O[1]):Q.p.sortorder||"asc";for(e=0;e<this.p.colNames.length;e++){var De=Q.p.headertitles?' title="'+(Q.p.colModel[e].tooltip||Ye.jgrid.stripHtml(Q.p.colNames[e]))+'"':"";(i=Q.p.colModel[e]).hasOwnProperty("colmenu")||(i.colmenu="rn"!==i.name&&"cb"!==i.name&&"subgrid"!==i.name),o+="<th id='"+Q.p.id+"_"+i.name+"' role='columnheader'  scope='col' "+K($,"headerBox",!1,"ui-th-column ui-th-"+v+" "+(i.labelClasses||""))+De+">",De=i.index||i.name,o+="<div class='ui-th-div' id='jqgh_"+Q.p.id+"_"+i.name+"' "+ye+">"+Q.p.colNames[e],i.width?i.width=parseInt(i.width,10):i.width=Q.p.defaultColWidth,"boolean"!=typeof i.title&&(i.title=!0),i.lso="",De===Q.p.sortname&&(Q.p.lastsort=e),Q.p.multiSort&&-1!==(O=Ye.inArray(De,F))&&(i.lso=G[O]),o+=_e,Q.p.colMenu&&i.colmenu&&(o+="<a title='"+Ye.jgrid.getRegional(Q,"colmenu.hovermenu")+"' class='"+("ltr"===Q.p.direction?"colmenu":"colmenu-rtl")+"'><span class='colmenuspan "+I+" "+D.icon_menu+"'></span></a>"),o+="</div></th>"}o+="</tr></thead>",i=_e=null,Ye(this).append(o),Ye("thead tr",this).first().find("th").hover(function(){Ye(this).addClass(C)},function(){Ye(this).removeClass(C)}),this.p.multiselect&&(qe=[],Ye("#cb_"+Ye.jgrid.jqID(Q.p.id),this).on("click",function(){Q.p.preserveSelection||(Q.p.selarrrow=[]);var t=!0===Q.p.frozenColumns?Q.p.id+"_frozen":"";this.checked?(Ye(Q.rows).each(function(e){0<e&&(Ye(this).hasClass("ui-subgrid")||Ye(this).hasClass("jqgroup")||Ye(this).hasClass(j)||Ye(this).hasClass("jqfoot")||(Ye("#jqg_"+Ye.jgrid.jqID(Q.p.id)+"_"+Ye.jgrid.jqID(this.id))[Q.p.useProp?"prop":"attr"]("checked",!0),Ye(this).addClass(Y).attr("aria-selected","true"),Q.p.preserveSelection&&-1!==Q.p.selarrrow.indexOf(this.id)||Q.p.selarrrow.push(this.id),Q.p.selrow=this.id,t&&(Ye("#jqg_"+Ye.jgrid.jqID(Q.p.id)+"_"+Ye.jgrid.jqID(this.id),Q.grid.fbDiv)[Q.p.useProp?"prop":"attr"]("checked",!0),Ye("#"+Ye.jgrid.jqID(this.id),Q.grid.fbDiv).addClass(Y))))}),Ce=!0,qe=[]):(Ye(Q.rows).each(function(e){0<e&&(Ye(this).hasClass("ui-subgrid")||Ye(this).hasClass("jqgroup")||Ye(this).hasClass(j)||Ye(this).hasClass("jqfoot")||(Ye("#jqg_"+Ye.jgrid.jqID(Q.p.id)+"_"+Ye.jgrid.jqID(this.id))[Q.p.useProp?"prop":"attr"]("checked",!1),Ye(this).removeClass(Y).attr("aria-selected","false"),qe.push(this.id),Q.p.preserveSelection&&-1<(e=Q.p.selarrrow.indexOf(this.id))&&Q.p.selarrrow.splice(e,1),t&&(Ye("#jqg_"+Ye.jgrid.jqID(Q.p.id)+"_"+Ye.jgrid.jqID(this.id),Q.grid.fbDiv)[Q.p.useProp?"prop":"attr"]("checked",!1),Ye("#"+Ye.jgrid.jqID(this.id),Q.grid.fbDiv).removeClass(Y))))}),Q.p.selrow=null,Ce=!1),Ye(Q).triggerHandler("jqGridSelectAll",[Ce?Q.p.selarrrow:qe,Ce]),Ye.jgrid.isFunction(Q.p.onSelectAll)&&Q.p.onSelectAll.call(Q,Ce?Q.p.selarrrow:qe,Ce),Ye.jgrid.isFunction(Q.p.onMultiSelect)&&Q.p.onMultiSelect.call(Q,Q.p.selarrrow)}));var Fe,s,Ge,Se,ke="",Re="",a=-1!==Q.p.styleUI.search("Bootstrap")?2:0,d=0,u=Ye.jgrid.cell_width?0:J(Q.p.cellLayout,0),h=0,n=J(Q.p.scrollOffset,0),Ne=!1,g=0;if(Ye.each(Q.p.colModel,function(){var e;void 0===this.hidden&&(this.hidden=!1),Q.p.grouping&&Q.p.autowidth&&0<=(e=Ye.inArray(this.name,Q.p.groupingView.groupField))&&Q.p.groupingView.groupColumnShow.length>e&&(this.hidden=!Q.p.groupingView.groupColumnShow[e]),this.widthOrg=J(this.width,0),this.maxWidth&&J(this.width,0)>J(this.maxWidth,0)&&(this.width=this.maxWidth),s=J(this.width,0),!1===this.hidden&&(d+=s+u,this.fixed?g+=s+u:h++)}),isNaN(Q.p.width)&&(Q.p.width=d+(!1!==Q.p.shrinkToFit||isNaN(Q.p.height)?0:n)),x.width=parseInt(Q.p.width,10),Q.p.tblwidth=d,!1===Q.p.shrinkToFit&&!0===Q.p.forceFit&&(Q.p.forceFit=!1),!0===Q.p.shrinkToFit&&0<h){Ge=x.width-u*h-g,isNaN(Q.p.height)||(Ge-=n,Ne=!0);var d=0,Me=0,Oe=0,Ae=[],Te=0,f=(Ye.each(Q.p.colModel,function(e){!1!==this.hidden||this.fixed||(s=Math.round(Ge*this.width/(Q.p.tblwidth-u*h-g)),this.maxWidth&&s>this.maxWidth?(Me++,Oe+=s,this.width=this.maxWidth,Se=e):(this.width=s,Te+=s,Ae.push(e+"")),d+=this.width,Fe=e)}),d+=Oe,-1);if((Ve=0)<Me&&0<h){for(var Pe=0,Be=0;Be<Ae.length;Be++)f=parseInt(Ae[Be],10),Pe+=Math.round(Q.p.colModel[f].width*Oe/Te),Q.p.colModel[f].width=Q.p.colModel[f].width+Math.round(Q.p.colModel[f].width*Oe/Te);Pe!==Oe&&(Q.p.colModel[f].width+=Oe-Pe)}Ne?x.width-g-(d+u*h)!==n&&(Ve=x.width-g-(d+u*h)-n):0!==Math.abs(x.width-g-(d+u*h))&&(Ve=x.width-g-(d+u*h)-a),-1<f&&Fe===Se&&(Fe=f),Q.p.colModel[Fe].width+=Ve+-1,Q.p.tblwidth=d+Ve+u*h+g,Q.p.tblwidth>Q.p.width&&(Q.p.colModel[Fe].width-=Q.p.tblwidth-parseInt(Q.p.width,10),Q.p.tblwidth=Q.p.width)}be=-1!==Q.p.styleUI.search("Bootstrap"),Ye(r).css("width",x.width+"px").append("<div class='ui-jqgrid-resize-mark' id='rs_m"+Q.p.id+"'>&#160;</div>"),Q.p.scrollPopUp&&Ye(r).append("<div "+K($,"scrollBox",!1,"loading ui-scroll-popup")+" id='scroll_g"+Q.p.id+"'></div>"),Ye(t).css("width",x.width+"px"),o=Ye(Q).find("thead").first().get(0),Q.p.footerrow&&(ke+="<table role='presentation' style='width:"+Q.p.tblwidth+"px' "+K($,"footerTable",!1,"ui-jqgrid-ftable ui-common-table")+"><tbody><tr role='row' "+K($,"footerBox",!1,"footrow footrow-"+v)+">"),Q.p.headerrow&&(Re+="<table role='presentation' style='width:"+Q.p.tblwidth+"px' "+K($,"headerRowTable",!1,"ui-jqgrid-hrtable ui-common-table")+"><tbody><tr role='row' "+K($,"headerRowBox",!1,"hrheadrow hrheadrow-"+v)+">");var Ne=Ye(o).find("tr").first(),Ee="<tr class='jqgfirstrow "+("rtl"===Q.p.direction?"ui-row-rtl'":"'")+" role='row'>",ze=0,He=Ye.jgrid.getFont(Ye("th",Ne).first()[0]);if(Q.p.disableClick=!1,Ye("th",Ne).each(function(e){i=Q.p.colModel[e],we=i.width,void 0===i.resizable&&(i.resizable=!0),i.resizable?(xe=document.createElement("span"),Ye(xe).html("&#160;").addClass("ui-jqgrid-resize ui-jqgrid-resize-"+v).css("cursor","col-resize"),Ye(this).addClass(Q.p.resizeclass)):xe="",Ye(this).css("width",we+"px").prepend(xe),xe=null;var t="",r="",r=(i.hidden&&(Ye(this).css("display","none"),t="display:none;"),i.labelClasses&&(r="class='"+i.labelClasses+"'"),Ee+="<td "+r+" role='gridcell' style='height:0px;width:"+we+"px;"+t+"'></td>",x.headers[e]={width:we,el:this},"boolean"!=typeof(Ie=i.sortable)&&(i.sortable=!0,Ie=!0),i.name);"cb"!==r&&"subgrid"!==r&&"rn"!==r&&"sc"!==r&&Q.p.viewsortcols[2]&&Ye(">div",this).addClass("ui-jqgrid-sortable"),i.canvas_width=i.autosize_headers?Ye.jgrid.getTextWidth(Ye("div",this)[0].outerText,He)+(i.colmenu?Ye.jgrid.floatNum(Ye(".colmenuspan",this).parent().width()):0)+Ye.jgrid.floatNum(Ye("div",this).css("padding-left"))+Ye.jgrid.floatNum(Ye("div",this).css("padding-right"))+Ye.jgrid.floatNum(Ye(".ui-jqgrid-resize",this).width()):0,Ie&&(Q.p.multiSort?Q.p.viewsortcols[0]?(Ye("div span.s-ico",this).show(),i.lso&&Ye("div span.ui-icon-"+i.lso,this).removeClass(j).css("display","")):i.lso&&(Ye("div span.s-ico",this).show(),Ye("div span.ui-icon-"+i.lso,this).removeClass(j).css("display","")):Q.p.viewsortcols[0]?(Ye("div span.s-ico",this).show(),e===Q.p.lastsort&&Ye("div span.ui-icon-"+Q.p.sortorder,this).removeClass(j).css("display","")):e===Q.p.lastsort&&""!==Q.p.sortname&&(Ye("div span.s-ico",this).show(),Ye("div span.ui-icon-"+Q.p.sortorder,this).removeClass(j).css("display",""))),Q.p.footerrow&&(ke+="<td role='gridcell' "+l(e,0,"",null,"",!1)+">&#160;</td>"),Q.p.headerrow&&(Re+="<td role='gridcell' "+l(e,0,"",null,"",!1)+">&#160;</td>")}).mousedown(function(e){if(1===Ye(e.target).closest("th>span.ui-jqgrid-resize").length){var t,r=ue(this);if(e.preventDefault(),ze++,setTimeout(function(){ze=0},400),2!==ze)return!0===Q.p.forceFit&&(Q.p.nv=function(e){for(var t=e,r=e,i=e+1;i<Q.p.colModel.length;i++)if(!0!==Q.p.colModel[i].hidden){r=i;break}return r-t}(r)),x.dragStart(r,e,function(e){e=Ye(Q.grid.headers[e].el),e=[e.position().left+e.outerWidth()];return"rtl"===Q.p.direction&&(e[0]=Q.p.width-e[0]),e[0]-=Q.grid.bDiv.scrollLeft,e.push(Ye(Q.grid.hDiv).position().top),e.push(Ye(Q.grid.bDiv).offset().top-Ye(Q.grid.hDiv).offset().top+Ye(Q.grid.bDiv).height()),e}(r)),!1;try{!0===Q.p.colModel[r].autosize&&(t=Ye(Q).jqGrid("getCol",r,!1,"maxwidth"),Ye(Q).jqGrid("resizeColumn",r,t+(be?Q.p.cellLayout:0)).jqGrid("refreshGroupHeaders"))}catch(e){}finally{ze=0}}}).click(function(e){if(Q.p.disableClick)return Q.p.disableClick=!1;var t,r,i,o="th>div.ui-th-div",o=(Q.p.viewsortcols[2]||(o="th>div>span>span.ui-grid-ico-sort"),Ye(e.target).closest(o));if(1===o.length)if(i=Q.p.frozenColumns?(i=Ye(this)[0].id.substring(Q.p.id.length+1),Ye.jgrid.getElemByAttrVal(Q.p.colModel,"name",i,!0)):ue(this),Ye(e.target).hasClass("colmenuspan")){if(Ye.jgrid.isNull(Ye("#column_menu")[0])||Ye("#column_menu").remove(),void 0!==i){var a,n,l,s,d,p=Ye("#gbox_"+Q.p.id).offset(),p=Ye(this).offset().left-p.left,c=("ltr"===Q.p.direction&&(p+=Ye(this).outerWidth()),i),u=void 0,h=Ye(x.hDiv).height(),g=(Ye(".ui-search-toolbar",x.hDiv)[0]&&!isNaN(Ye(".ui-search-toolbar",x.hDiv).height())&&(h-=Ye(".ui-search-toolbar",x.hDiv).height()),Ye(x.cDiv).is(":hidden")||(h+=Ye(x.cDiv).outerHeight()),Q.p.toolbar[1]&&"bottom"!==Q.p.toolbar[2]&&!Ye.jgrid.isNull(Ye(x.uDiv),!0)&&(h+=Ye(x.uDiv).outerHeight()),Q.p.toppager&&(h+=Ye("#"+Ye.jgrid.jqID(Q.p.id)+"_toppager").outerHeight()),p=parseInt(p,10),u=h,""),f="",m=Q.p.colModel[c],v=Ye.extend({sorting:!0,columns:!0,filtering:!0,seraching:!0,grouping:!0,freeze:!0},m.coloptions),h=Ye.jgrid.styleUI[Q.p.styleUI||"jQueryUI"].common,j=Ye.jgrid.getRegional(Q,"colmenu"),b=Q.p.colNames[c],y=[],w=Ye.jgrid.trim(m.name);for(l in y.push(g),m.sortable&&v.sorting&&(g='<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="sortasc"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+I+" "+D.icon_sort_asc+'"></span></td><td class="menu_text">'+j.sortasc+"</td></tr></table></a></li>",g+='<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="sortdesc"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+I+" "+D.icon_sort_desc+'"></span></td><td class="menu_text">'+j.sortdesc+"</td></tr></table></a></li>",y.push(g)),v.columns&&(g='<li class="ui-menu-item divider" role="separator"></li>',g+='<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="columns"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+I+" "+D.icon_columns+'"></span></td><td class="menu_text">'+j.columns+"</td></tr></table></a></li>",y.push(g)),v.filtering&&(g='<li class="ui-menu-item divider" role="separator"></li>',g+='<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="filtering"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+I+" "+D.icon_filter+'"></span></td><td class="menu_text">'+j.filter+" "+b+"</td></tr></table></a></li>",y.push(g)),v.grouping&&(a=Ye.inArray(m.name,Q.p.groupingView.groupField),g='<li class="ui-menu-item divider" role="separator"></li>',g+='<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="grouping"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+I+" "+D.icon_group+'"></span></td><td class="menu_text">'+(-1!==a?j.ungrouping:j.grouping+" "+b)+"</td></tr></table></a></li>",y.push(g)),!v.freeze||Q.p.subGrid||Q.p.treeGrid||Q.p.cellEdit||(n=!m.frozen||!Q.p.frozenColumns,g='<li class="ui-menu-item divider" role="separator"></li>',g+='<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="freeze"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+I+" "+D.icon_freeze+'"></span></td><td class="menu_text">'+(n?j.freeze+" "+b:j.unfreeze)+"</td></tr></table></a></li>",y.push(g)),Q.p.colMenuCustom)Q.p.colMenuCustom.hasOwnProperty(l)&&(s=Q.p.colMenuCustom[l],Ye.jgrid.isFunction(Q.p.colMenuBeforeProcess)&&Q.p.colMenuBeforeProcess.call(Q,{module:"custom",action:s,column:s.colname}),Ye(Q).triggerHandler("jqGridcolMenuBeforeProcess",[{module:"custom",action:s,column:s.colname}]),d=s.exclude.split(","),d=Ye.map(d,function(e){return Ye.jgrid.trim(e)}),s.colname===w||"_all_"===s.colname&&-1===Ye.inArray(w,d))&&(d=s.items.length?"submenu":s.id,f='<li class="ui-menu-item divider" role="separator"></li>',g='<li class="ui-menu-item" role="presentation"><a id="'+s.id+'" class="g-menu-item" tabindex="0" role="menuitem" data-value="'+d+'"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+I+" "+s.icon+'"></span></td><td class="menu_text">'+s.title+"</td></tr></table></a></li>","last"===s.position?(s.separator&&y.push(f),y.push(g)):"first"===s.position&&(s.separator&&y.unshift(f),y.unshift(g)));y.unshift('<ul id="column_menu" role="menu" tabindex="0">'),y.push("</ul>"),Ye("#gbox_"+Q.p.id).append(y.join("")),Ye("#column_menu").addClass("ui-search-menu modal-content column-menu jqgrid-column-menu ui-menu "+h.shadow+"  "+D.menu_widget).css({left:p,top:u}),"ltr"===Q.p.direction&&(b=Ye("#column_menu").width()+26,Ye("#column_menu").css("left",p-b+"px")),Ye("#column_menu > li > a").hover(function(){var e,t;Ye("#col_menu").remove(),Ye("#search_menu").remove(),"columns"===Ye(this).attr("data-value")&&(e=Ye(this).parent().width()+8,t=Ye(this).parent().position().top-5,he(t,e,Ye(this).parent(),v)),"filtering"===Ye(this).attr("data-value")&&(e=Ye(this).parent().width()+8,t=Ye(this).parent().position().top-5,ge(c,t,e,Ye(this).parent())),"submenu"===Ye(this).attr("data-value")&&(e=Ye(this).parent().width()+8,t=Ye(this).parent().position().top-5,je(t,e,Ye(this).parent(),Ye(this).attr("id"),w)),Ye(this).addClass(C)},function(){Ye(this).removeClass(C)}).click(function(){var e=Ye(this).attr("data-value"),t=Q.grid.headers[c].el;"sortasc"===e||"sortdesc"===e?(Ye.jgrid.isFunction(Q.p.colMenuBeforeProcess)&&Q.p.colMenuBeforeProcess.call(Q,{module:"sorting",action:"sortasc"===e?"asc":"desc",column:m.name}),ce("jqgh_"+Q.p.id+"_"+m.name,c,!0,"sortasc"===e?"asc":"desc",t)):"grouping"===e?me(c,a):"freeze"===e&&ve(c,n),"grouping"!==e&&"freeze"!==e||Ye(this).remove(),Q.p.colMenuCustom.hasOwnProperty(e)&&(t=Q.p.colMenuCustom[e],Ye.jgrid.isFunction(t.funcname))&&(t.funcname.call(Q,w),t.closeOnRun)&&Ye(this).remove()}),parseFloat(Ye("#column_menu").css("left"))<0&&Ye("#column_menu").css("left",Ye(Q).css("left")),!0===Q.p.menubar&&Ye("#"+Q.p.id+"_menubar").hide(),e.stopPropagation()}}else Q.p.viewsortcols[2]||(t=!0,r=o.attr("sort")),Ye.jgrid.isNull(i)||ce(Ye("div",this)[0].id,i,t,r,this),void 0!==Q.p.selHeadInd&&Ye(x.headers[Q.p.selHeadInd].el).attr("tabindex","-1"),Q.p.selHeadInd=i,Ye(this).attr("tabindex","0")}),i=null,jQuery._cacheCanvas=null,Q.p.sortable&&Ye.fn.sortable)try{Ye(Q).jqGrid("sortableColumns",Ne)}catch(e){}Q.p.footerrow&&(ke+="</tr></tbody></table>"),Q.p.headerrow&&(Re+="</tr></tbody></table>"),Ee+="</tr>",n=document.createElement("tbody"),Ye(n).attr({role:"rowgroup"}),this.appendChild(n),Ye(this).addClass(K($,"rowTable",!0,"ui-jqgrid-btable ui-common-table")).append(Ee),Q.p.altRows&&Ye(this).addClass(K($,"stripedTable",!0,""));var m,_,Ue,Le,Ee=null,Ve=Ye("<table "+K($,"headerTable",!1,"ui-jqgrid-htable ui-common-table")+" style='width:"+Q.p.tblwidth+"px' role='grid' aria-labelledby='gbox_"+this.id+"'></table>").append(o),q=!(!Q.p.caption||!0!==Q.p.hiddengrid),t=Ye("<div class='ui-jqgrid-hbox"+("rtl"===v?"-rtl":"")+"'></div>"),o=null,We=(x.hDiv=document.createElement("div"),x.hDiv.style.width=x.width-a+"px",x.hDiv.className=K($,"headerDiv",!0,"ui-jqgrid-hdiv"),Ye(x.hDiv).append(t),Ye(t).append(Ve),q&&Ye(x.hDiv).hide(),Q.p.pager&&("string"==typeof Q.p.pager?"#"===Q.p.pager.slice(0,1)&&(Q.p.pager=Q.p.pager.substring(1)):Q.p.pager=Ye(Q.p.pager).attr("id"),Ye("#"+Ye.jgrid.jqID(Q.p.pager)).css({width:x.width-a+"px"}).addClass(K($,"pagerBox",!0,"ui-jqgrid-pager")).appendTo(r),q&&Ye("#"+Ye.jgrid.jqID(Q.p.pager)).hide(),de(Q.p.pager,""),Q.p.pager="#"+Ye.jgrid.jqID(Q.p.pager)),!1===Q.p.cellEdit&&!0===Q.p.hoverrows&&Ye(Q).on({mouseover:function(e){c=Ye(e.target).closest("tr.jqgrow"),"ui-subgrid"!==Ye(c).attr("class")&&Ye(c).addClass(C)},mouseout:function(e){c=Ye(e.target).closest("tr.jqgrow"),Ye(c).removeClass(C)}}),Ye(Q).before(x.hDiv).on({click:function(e){if(p=e.target,c=Ye(p,Q.rows).closest("tr.jqgrow"),0===Ye(c).length||-1<c[0].className.indexOf(j)||(Ye(p,Q).closest("table.ui-jqgrid-btable").attr("id")||"").replace("_frozen","")!==Q.id)return this;var t,r,i,o,a,n,l,s=Ye(p).filter(":enabled").hasClass("cbox"),d=!1!==(d=Ye(Q).triggerHandler("jqGridBeforeSelectRow",[c[0].id,e]))&&"stop"!==d;if(!Ye.jgrid.isFunction(Q.p.beforeSelectRow)||!1!==(l=Q.p.beforeSelectRow.call(Q,c[0].id,e))&&"stop"!==l||(d=!1),s&&!1===d&&Ye(e.target).prop("checked",!Ye(e.target).prop("checked")),"A"!==p.tagName&&("INPUT"!==p.tagName&&"TEXTAREA"!==p.tagName&&"OPTION"!==p.tagName&&"SELECT"!==p.tagName||s||"INPUT"===p.tagName&&p.id.startsWith("jqs_"+Q.p.id)))if(m=c[0].id,0<(p=Ye(p).closest("tr.jqgrow>td")).length&&(_=Ye.jgrid.getCellIndex(p)),!0!==Q.p.cellEdit||Q.p.ariaBody){if(0<p.length&&(Ue=Ye(p).closest("td,th").html(),Ye(Q).triggerHandler("jqGridCellSelect",[m,_,Ue,e]),Ye.jgrid.isFunction(Q.p.onCellSelect))&&Q.p.onCellSelect.call(Q,m,_,Ue,e),d)if(Q.p.multimail&&Q.p.multiselect){if(e.shiftKey){if(s)return l=Ye(Q).jqGrid("getGridParam","selrow"),t=Ye(Q).jqGrid("getInd",m),r=Ye(Q).jqGrid("getInd",l),o=i="",o=r<t?(i=l,m):(i=m,l),l=!(n=a=!1),-1<Ye.inArray(m,Q.p.selarrrow)&&(l=!1),Ye.each(Ye(this).getDataIDs(),function(e,t){return(n=t===i||n)&&Ye(Q).jqGrid("resetSelection",t),t!==o}),l&&Ye.each(Ye(this).getDataIDs(),function(e,t){return(a=t===i||a)&&Ye(Q).jqGrid("setSelection",t,!1),t!==o}),void(Q.p.selrow=r<t?o:i);window.getSelection().removeAllRanges()}Ke(m,s,e,!1)}else Q.p.multikey?e[Q.p.multikey]?Ye(Q).jqGrid("setSelection",m,!0,e):Q.p.multiselect&&s&&(s=Ye("#jqg_"+Ye.jgrid.jqID(Q.p.id)+"_"+m).is(":checked"),Ye("#jqg_"+Ye.jgrid.jqID(Q.p.id)+"_"+m)[Q.p.useProp?"prop":"attr"]("checked",!s)):Ke(m,s,e,!0)}else if(Q.p.multiselect&&s&&d)Ye(Q).jqGrid("setSelection",m,!0,e);else if(0<p.length)try{Ye(Q).jqGrid("editCell",c[0].rowIndex,_,!0,e)}catch(e){}},reloadGrid:function(e,t){var r;return!0===Q.p.treeGrid&&(Q.p.datatype=Q.p.treedatatype),(t=t||{}).current&&Q.grid.selectionPreserver(Q),"local"===Q.p.datatype?(Ye(Q).jqGrid("resetSelection"),Q.p.data.length&&(B(),ne())):Q.p.treeGrid||(Q.p.selrow=null,Q.p.multiselect&&!Q.p.preserveSelection&&(Q.p.selarrrow=[],se(!1)),Q.p.savedRow=[]),Q.p.scroll&&ae.call(Q,!0,!1),t.page&&((r=t.page)>Q.p.lastpage&&(r=Q.p.lastpage),Q.p.page=r=r<1?1:r,Q.grid.prevRowHeight?Q.grid.bDiv.scrollTop=(r-1)*Q.grid.prevRowHeight*Q.p.rowNum:Q.grid.bDiv.scrollTop=0),Q.grid.prevRowHeight&&Q.p.scroll&&void 0===t.page?(delete Q.p.lastpage,Q.grid.populateVisible()):Q.grid.populate(),!0===Q.p.inlineNav&&Ye(Q).jqGrid("showAddEditButtons"),Q.p.searchCols&&!Ye.isEmptyObject(Q.p._results)&&(Q.p._results={},Ye.jgrid.searchColOnEnter(Q.p.id,null)),!1},dblclick:function(e){var t;if(p=e.target,c=Ye(p,Q.rows).closest("tr.jqgrow"),0!==Ye(c).length)return m=c[0].rowIndex,_=Ye.jgrid.getCellIndex(p),t=Ye(Q).triggerHandler("jqGridDblClickRow",[Ye(c).attr("id"),m,_,e]),!Ye.jgrid.isNull(t)||Ye.jgrid.isFunction(Q.p.ondblClickRow)&&(t=Q.p.ondblClickRow.call(Q,Ye(c).attr("id"),m,_,e),!Ye.jgrid.isNull(t))?t:void 0},contextmenu:function(e){var t;if(p=e.target,c=Ye(p,Q.rows).closest("tr.jqgrow"),0!==Ye(c).length)return Q.p.multiselect||Ye(Q).jqGrid("setSelection",c[0].id,!0,e),m=c[0].rowIndex,_=Ye.jgrid.getCellIndex(p),t=Ye(Q).triggerHandler("jqGridRightClickRow",[Ye(c).attr("id"),m,_,e]),!Ye.jgrid.isNull(t)||Ye.jgrid.isFunction(Q.p.onRightClickRow)&&(t=Q.p.onRightClickRow.call(Q,Ye(c).attr("id"),m,_,e),!Ye.jgrid.isNull(t))?t:void 0}}),x.bDiv=document.createElement("div"),M&&"auto"===String(Q.p.height).toLowerCase()&&(Q.p.height="100%"),Ye(x.bDiv).append(Ye('<div style="position:relative;"></div>').append("<div></div>").append(this)).addClass("ui-jqgrid-bdiv").css({height:Q.p.height+(isNaN(Q.p.height)?"":"px"),width:x.width-a+"px"}).on("scroll",x.scrollGrid),Ye(x.bDiv).find("table").first().css({width:Q.p.tblwidth+"px"}),Ye.support.tbody||2===Ye("tbody",this).length&&Ye("tbody",this).slice(1).remove(),Q.p.multikey&&(Ye.jgrid.msie()?Ye(x.bDiv).on("selectstart",function(){return!1}):Ye(x.bDiv).on("mousedown",function(){return!1})),q&&Ye(x.bDiv).hide(),I+" "+K($,"icon_caption_open",!0)),Qe=I+" "+K($,"icon_caption_close",!0),Xe=(x.cDiv=document.createElement("div"),!0===Q.p.hidegrid?Ye("<a role='link' class='ui-jqgrid-titlebar-close HeaderButton "+N+"' title='"+(Ye.jgrid.getRegional(Q,"defaults.showhide",Q.p.showhide)||"")+"' />").hover(function(){Xe.addClass(C)},function(){Xe.removeClass(C)}).append("<span class='ui-jqgrid-headlink "+We+"'></span>").css("rtl"===v?"left":"right","0px"):"");Ye(x.cDiv).append(Xe).append("<span class='ui-jqgrid-title'>"+Q.p.caption+"</span>").addClass("ui-jqgrid-titlebar ui-jqgrid-caption"+("rtl"===v?"-rtl":"")+" "+K($,"gridtitleBox",!0)),!0===Q.p.menubar&&(Ne='<ul id="'+Q.p.id+'_menubar" class="ui-search-menu modal-content column-menu ui-menu jqgrid-caption-menu '+D.menu_widget+'" role="menubar" tabindex="0"></ul>',Ye("#gbox_"+Q.p.id).append(Ne),Ye(x.cDiv).append("<a role='link' class='ui-jqgrid-menubar menubar-"+("rtl"===v?"rtl":"ltr")+"' style=''><span class='colmenuspan "+I+" "+D.icon_toolbar_menu+"'></span></a>"),Ye(".ui-jqgrid-menubar",x.cDiv).hover(function(){Ye(this).addClass(C)},function(){Ye(this).removeClass(C)}).on("click",function(e){e=Ye(e.target).position();Ye("#"+Q.p.id+"_menubar").show(),"rtl"===Q.p.direction&&Ye("#"+Q.p.id+"_menubar").css({left:e.left-Ye("#"+Q.p.id+"_menubar").width()-20})})),Ye(x.cDiv).insertBefore(x.hDiv),Q.p.toolbar[0]&&(n=K($,"customtoolbarBox",!0,"ui-userdata"),x.uDiv=document.createElement("div"),"top"===Q.p.toolbar[1]?Ye(x.uDiv).insertBefore(x.hDiv):"bottom"===Q.p.toolbar[1]&&Ye(x.uDiv).insertAfter(x.hDiv),"both"===Q.p.toolbar[1]?(x.ubDiv=document.createElement("div"),Ye(x.uDiv).addClass(n+" ui-userdata-top").attr("id","t_"+this.id).insertBefore(x.hDiv).width(x.width-a),Ye(x.ubDiv).addClass(n+" ui-userdata-bottom").attr("id","tb_"+this.id).insertAfter(x.hDiv).width(x.width-a),q&&Ye(x.ubDiv).hide()):Ye(x.uDiv).width(x.width-a).addClass(n+" ui-userdata-top").attr("id","t_"+this.id),q)&&Ye(x.uDiv).hide(),Q.p.toppager&&(Q.p.toppager=Ye.jgrid.jqID(Q.p.id)+"_toppager",x.topDiv=Ye("<div id='"+Q.p.toppager+"'></div>")[0],Ye(x.topDiv).addClass(K($,"toppagerBox",!0,"ui-jqgrid-toppager")).width(x.width-a).insertBefore(x.hDiv),de(Q.p.toppager,"_t"),Q.p.toppager="#"+Q.p.toppager),Q.p.footerrow&&(x.sDiv=Ye("<div class='ui-jqgrid-sdiv'></div>")[0],t=Ye("<div class='ui-jqgrid-hbox"+("rtl"===v?"-rtl":"")+"'></div>"),Ye(x.sDiv).append(t).width(x.width-a).insertAfter(x.hDiv),Ye(t).append(ke),x.footers=Ye(".ui-jqgrid-ftable",x.sDiv)[0].rows[0].cells,Q.p.rownumbers&&(x.footers[0].className=K($,"rownumBox",!0,"jqgrid-rownum")),q)&&Ye(x.sDiv).hide(),Q.p.headerrow&&(x.hrDiv=Ye("<div class='ui-jqgrid-hrdiv'></div>")[0],t=Ye("<div class='ui-jqgrid-hbox"+("rtl"===v?"-rtl":"")+"'></div>"),Ye(x.hrDiv).append(t).width(x.width-a).insertAfter(x.hDiv),Ye(t).append(Re),x.hrheaders=Ye(".ui-jqgrid-hrtable",x.hrDiv)[0].rows[0].cells,Q.p.rownumbers&&(x.hrheaders[0].className=K($,"rownumBox",!0,"jqgrid-rownum")),q)&&Ye(x.nDiv).hide(),t=null,Q.p.caption?(Le=Q.p.datatype,!0===Q.p.hidegrid&&(Ye(".ui-jqgrid-titlebar-close",x.cDiv).click(function(e){var t,r=Ye.jgrid.isFunction(Q.p.onHeaderClick),i=".ui-jqgrid-bdiv, .ui-jqgrid-hdiv, .ui-jqgrid-toppager, .ui-jqgrid-pager, .ui-jqgrid-sdiv, .ui-jqgrid-hrdiv",o=this;return!0===Q.p.toolbar[0]&&("both"===Q.p.toolbar[1]&&(i+=", #"+Ye(x.ubDiv).attr("id")),i+=", #"+Ye(x.uDiv).attr("id")),t=Ye(i,"#gview_"+Ye.jgrid.jqID(Q.p.id)).length,"visible"===Q.p.gridstate?Ye(i,"#gbox_"+Ye.jgrid.jqID(Q.p.id)).slideUp("fast",function(){0===--t&&(Ye("span",o).removeClass(We).addClass(Qe),Q.p.gridstate="hidden",Ye("#gbox_"+Ye.jgrid.jqID(Q.p.id)).hasClass("ui-resizable")&&Ye(".ui-resizable-handle","#gbox_"+Ye.jgrid.jqID(Q.p.id)).hide(),Ye(Q).triggerHandler("jqGridHeaderClick",[Q.p.gridstate,e]),r)&&!q&&Q.p.onHeaderClick.call(Q,Q.p.gridstate,e)}):"hidden"===Q.p.gridstate&&Ye(i,"#gbox_"+Ye.jgrid.jqID(Q.p.id)).slideDown("fast",function(){0===--t&&(Ye("span",o).removeClass(Qe).addClass(We),q&&(Q.p.datatype=Le,w(),q=!1),Q.p.gridstate="visible",Ye("#gbox_"+Ye.jgrid.jqID(Q.p.id)).hasClass("ui-resizable")&&Ye(".ui-resizable-handle","#gbox_"+Ye.jgrid.jqID(Q.p.id)).show(),Ye(Q).triggerHandler("jqGridHeaderClick",[Q.p.gridstate,e]),r)&&!q&&Q.p.onHeaderClick.call(Q,Q.p.gridstate,e)}),!1}),q)&&(Q.p.datatype="local",Ye(".ui-jqgrid-titlebar-close",x.cDiv).trigger("click"))):(Ye(x.cDiv).hide(),Q.p.toppager||Ye(x.hDiv).addClass(K(Q.p.styleUI+".common","cornertop",!0))),(Q.p.headerrow?Ye(x.hrDiv):Ye(x.hDiv)).after(x.bDiv),Ye(x.hDiv).mousemove(function(e){if(x.resizing)return x.dragMove(e),!1}),Ye(".ui-jqgrid-labels",x.hDiv).on("selectstart",function(){return!1}),Ye(document).on("mouseup.jqGrid"+Q.p.id,function(){return!x.resizing||(x.dragEnd(!0),!1)}),"rtl"===Q.p.direction&&Ye(Q).on("jqGridAfterGridComplete.setRTLPadding",function(){var e=x.bDiv.offsetWidth-x.bDiv.clientWidth;0<e&&(e+=2),Ye(x.hDiv).find("div").first().hasClass("ui-jqgrid-hbox-rtl")&&Ye(x.hDiv).find("div").first().css({paddingLeft:e+"px"}),x.hDiv.scrollLeft=x.bDiv.scrollLeft}),Q.p.autoResizing&&Ye(Q).on("jqGridAfterGridComplete.setAutoSizeColumns",function(){var e=!1,t=!1;!0===Q.p.frozenColumns&&(t=Ye(":focus",".frozen-div").attr("id"),Ye(Q).jqGrid("destroyFrozenColumns"),e=!0),0<Q.p.colSpanHeader.length&&Ye(Q).jqGrid("destroyColSpanHeader",!1),Ye(Q.p.colModel).each(function(e){this.autosize&&!this.hidden&&this._maxsize&&0<this._maxsize&&Ye(Q).jqGrid("resizeColumn",e,this._maxsize+Q.p.cellLayout,!1,!1)}),Ye(Q).jqGrid("refreshGroupHeaders"),0<Q.p.colSpanHeader.length&&Ye(Q).jqGrid("setColSpanHeader",Q.p.colSpanHeader),e&&(Ye(Q).jqGrid("setFrozenColumns"),t)&&setTimeout(function(){Ye("#"+t,".frozen-div").trigger("focus")},10)}),Q.p.searchCols&&(Ye(Q).on("jqGridPaging.searchCols",function(){Ye.isEmptyObject(Q.p._results)||(Q.p._results={},Ye.jgrid.searchColOnEnter(Q.p.id,null))}),Ye(Q).on("jqGridSortCol.searchCols",function(){Ye.isEmptyObject(Q.p._results)||(Q.p._results={},Ye.jgrid.searchColOnEnter(Q.p.id,null))}),Q.p.colMenu)&&Q.p.searchColOptions.colmenu&&Ye(Q).jqGrid("addColSearchMenu"),Q.formatCol=l,Q.sortData=ce,Q.updatepager=function(e,t){var r,i,o,a,n,l,s,d=Q.p.pager?Q.p.pager.substring(1):"",d=d?"_"+d:"",p=Q.p.toppager?"_"+Q.p.toppager.slice(1):"",c=parseInt(Q.p.page,10)-1;c<0&&(c=0),r=(c*=parseInt(Q.p.rowNum,10))+Q.p.reccount,Q.p.scroll&&(a=Ye("tbody",Q.grid.bDiv).first().find("> tr").slice(1),r>Q.p.records&&(r=Q.p.records),c=r-a.length,Q.p.reccount=a.length,(a=a.outerHeight()||Q.grid.prevRowHeight)&&(s=c*a,l=parseInt(Q.p.records,10)*a,Ye(Q.grid.bDiv).find(">div").first().css({height:l}).children("div").first().css({height:s,display:s?"":"none"}),0===Q.grid.bDiv.scrollTop)&&1<Q.p.page&&(Q.grid.bDiv.scrollTop=Q.p.rowNum*(Q.p.page-1)*a),Q.grid.bDiv.scrollLeft=Q.grid.hDiv.scrollLeft),l=Q.p.pager||"",(l+=Q.p.toppager?l?","+Q.p.toppager:Q.p.toppager:"")&&(s=Ye.jgrid.getRegional(Q,"formatter.integer"),a=J(Q.p.page),n=J(Q.p.lastpage),Ye(".selbox",l)[this.p.useProp?"prop":"attr"]("disabled",!1),!0===Q.p.pginput&&(Ye(".ui-pg-input",l)[Ye(".ui-pg-input",l).first().is(":input")?"val":"html"](n<a?Q.p.lastpage:Q.p.page),o=Q.p.toppager?"#sp_1"+d+",#sp_1"+p:"#sp_1"+d,Ye(o).html(Ye.fmatter?Ye.fmatter.util.NumberFormat(Q.p.lastpage,s):Q.p.lastpage)),Q.p.viewrecords&&(0===Q.p.reccount?Ye(".ui-paging-info",l).html(Ye.jgrid.getRegional(Q,"defaults.emptyrecords",Q.p.emptyrecords)):(o=c+1,i=Q.p.records,Ye.fmatter&&(o=Ye.fmatter.util.NumberFormat(o,s),r=Ye.fmatter.util.NumberFormat(r,s),i=Ye.fmatter.util.NumberFormat(i,s)),s=Ye.jgrid.getRegional(Q,"defaults.recordtext",Q.p.recordtext),Ye(".ui-paging-info",l).html(Ye.jgrid.template(s,o,r,i)))),!0===Q.p.pgbuttons)&&(1===(a=a<=0?n=0:a)||0===a?(Ye("#first"+d+", #prev"+d).addClass(j).removeClass(C),Q.p.toppager&&Ye("#first_t"+p+", #prev_t"+p).addClass(j).removeClass(C)):(Ye("#first"+d+", #prev"+d).removeClass(j),Q.p.toppager&&Ye("#first_t"+p+", #prev_t"+p).removeClass(j)),a===n||0===a?(Ye("#next"+d+", #last"+d).addClass(j).removeClass(C),Q.p.toppager&&Ye("#next_t"+p+", #last_t"+p).addClass(j).removeClass(C)):(Ye("#next"+d+", #last"+d).removeClass(j),Q.p.toppager&&Ye("#next_t"+p+", #last_t"+p).removeClass(j))),!0===e&&!0===Q.p.rownumbers&&Ye(">td.jqgrid-rownum",Q.rows).each(function(e){Ye(this).html(c+1+e)}),0===Q.p.reccount&&(l=Q.p.emptyRecordRow?K($,"rowBox",!0,"jqgrow ui-row-"+Q.p.direction+" not-editable-row not-editable-cell "+j):"jqgfirstrow not-editable-row not-editable-cell",s=(s=le("norecs",!1,l,{},""))+(Q.p.emptyRecordRow?"<td style='text-align:center;' colspan='"+x.headers.length+"'>"+Ye.jgrid.getRegional(Q,"defaults.emptyrecords",Q.p.emptyrecords)+"</td>":"<td style='height:0.1px;visibility:hidden;' colspan='"+x.headers.length+"'>&nbsp;</td>")+"</tr>",Ye(x.bDiv).find("table").first().append(s)),t&&Q.p.jqgdnd&&Ye(Q).jqGrid("gridDnD","updateDnD"),Ye(Q).triggerHandler("jqGridGridComplete"),Ye.jgrid.isFunction(Q.p.gridComplete)&&Q.p.gridComplete.call(Q),Ye(Q).triggerHandler("jqGridAfterGridComplete")},Q.refreshIndex=ne,Q.setHeadCheckBox=se,Q.constructTr=le,Q.formatter=function(e,t,r,i,o){return P(e,t,r,i,o)},Ye.extend(x,{populate:w,emptyRows:ae,beginReq:L,endReq:y}),this.grid=x,Q.addXmlData=function(e){E(e)},Q.addJSONData=function(e){z(e)},Q.addLocalData=function(e){return U(e)},Q.addIndexedDBData=function(e){return H(e)},Q.treeGrid_beforeRequest=function(){Q.p.treeGrid&&Q.p.treeGrid_bigData&&void 0!==Q.p.postData.nodeid&&"string"==typeof Q.p.postData.nodeid&&(""!==Q.p.postData.nodeid||0<parseInt(Q.p.postData.nodeid,10))&&(Q.p.postData.rows=1e4,Q.p.postData.page=1,Q.p.treeGrid_rootParams.otherData.nodeid=Q.p.postData.nodeid)},Q.treeGrid_afterLoadComplete=function(){Q.p.treeGrid&&Q.p.treeGrid_bigData&&(void 0!==Q.p.treeGrid_rootParams.otherData.nodeid&&"string"==typeof Q.p.treeGrid_rootParams.otherData.nodeid&&(""!==Q.p.treeGrid_rootParams.otherData.nodeid||0<parseInt(Q.p.treeGrid_rootParams.otherData.nodeid,10))?void 0===Q.p.treeGrid_rootParams||Ye.jgrid.isNull(Q.p.treeGrid_rootParams)||(Q.p.page=Q.p.treeGrid_rootParams.page,Q.p.lastpage=Q.p.treeGrid_rootParams.lastpage,Q.p.postData.rows=Q.p.treeGrid_rootParams.postData.rows,Q.p.postData.totalrows=Q.p.treeGrid_rootParams.postData.totalrows,Q.p.treeGrid_rootParams.otherData.nodeid="",Q.updatepager(!1,!0)):Q.p.treeGrid_rootParams={page:Q.p.page,lastpage:Q.p.lastpage,postData:{rows:Q.p.postData.rows,totalrows:Q.p.postData.totalrows},rowNum:Q.p.rowNum,rowTotal:Q.p.rowTotal,otherData:{nodeid:""}})},this.grid.cols=this.rows[0].cells,Ye.jgrid.isFunction(Q.p.onInitGrid)&&Q.p.onInitGrid.call(Q),Ye(Q).triggerHandler("jqGridInitGrid"),w(),Q.p.hiddengrid=!1,Q.p.responsive&&(r="onorientationchange"in window?"orientationchange":"resize",Ye(window).on(r,function(){Ye.jgrid.isVisible(Q)&&Ye(Q).jqGrid("resizeGrid",500,!0,Q.p.resizeHeight,!0)}))}}}function Ke(e,t,r,i){var o;!(Q.p.multiselect&&Q.p.multiboxonly||Q.p.multimail)||t?Ye(Q).jqGrid("setSelection",e,i,r):Q.p.multiboxonly&&Q.p.multimail?(Ye(Q).triggerHandler("jqGridSelectRow",[e,!1,r]),Q.p.onSelectRow&&Q.p.onSelectRow.call(Q,e,!1,r)):(o=Q.p.frozenColumns?Q.p.id+"_frozen":"",Ye(Q.p.selarrrow).each(function(e,t){var r=Ye(Q).jqGrid("getGridRowById",t);r&&Ye(r).removeClass(Y),Ye("#jqg_"+Ye.jgrid.jqID(Q.p.id)+"_"+Ye.jgrid.jqID(t))[Q.p.useProp?"prop":"attr"]("checked",!1),o&&(Ye("#"+Ye.jgrid.jqID(t),"#"+Ye.jgrid.jqID(o)).removeClass(Y),Ye("#jqg_"+Ye.jgrid.jqID(Q.p.id)+"_"+Ye.jgrid.jqID(t),"#"+Ye.jgrid.jqID(o))[Q.p.useProp?"prop":"attr"]("checked",!1))}),Q.p.selarrrow=[],Ye(Q).jqGrid("setSelection",e,i,r))}});var e,t=Ye.jgrid.getMethod($e);if(t)return e=Ye.makeArray(arguments).slice(1),t.apply(this,e);throw"jqGrid - No such method: "+$e},Ye.jgrid.extend({getGridParam:function(e,t){var r,i=this[0];if(i&&i.grid){if(r=i.p,"jqGrid"!==(t=void 0===t&&"string"!=typeof t?"jqGrid":t))try{r=Ye(i).data(t)}catch(e){r=i.p}return e?void 0!==r[e]?r[e]:null:r}},setGridParam:function(t,r){return this.each(function(){var e;Ye.jgrid.isNull(r)&&(r=!1),this.grid&&"object"==typeof t&&(!0===r?(e=Ye.extend({},this.p,t),this.p=e):Ye.extend(!0,this.p,t))})},getGridRowById:function(t){var r;return this.each(function(){try{r=this.rows.namedItem(t)}catch(e){r=Ye(this.grid.bDiv).find("#"+Ye.jgrid.jqID(t))[0]}}),r},getGridRowByIndex:function(t){var r=null;return this.each(function(){var e=this.rows.length-1;1<=t&&1<=e&&t<=e&&(r=this.rows[t])}),r},getDataIDs:function(){var e,t=[],r=0,i=0;return this.each(function(){if((e=this.rows.length)&&0<e)for(;r<e;)Ye(this.rows[r]).hasClass("jqgrow")&&"norecs"!==this.rows[r].id&&(t[i]=this.rows[r].id,i++),r++}),t},setSelection:function(p,c,u,h){return this.each(function(){var e,t,r,i,o,a,n,l=this,s=Ye.jgrid.getMethod("getStyleUI"),d=s(l.p.styleUI+".common","highlight",!0),s=s(l.p.styleUI+".common","disabled",!0);void 0!==p&&(h=!1!==(h=void 0===h?!0:h),c=!1!==c,t=Ye(l).jqGrid("getGridRowById",p))&&t.className&&!(-1<t.className.indexOf(s))&&(!0===l.p.scrollrows&&0<=(s=Ye(l).jqGrid("getGridRowById",p).rowIndex)&&(s=s,o=Ye(l.grid.bDiv)[0].clientHeight,a=Ye(l.grid.bDiv)[0].scrollTop,n=Ye(l.rows[s]).position().top,s=l.rows[s].clientHeight,o+a<=n+s?Ye(l.grid.bDiv)[0].scrollTop=n-(o+a)+s+a:n<o+a&&n<a&&(Ye(l.grid.bDiv)[0].scrollTop=n)),!0===l.p.frozenColumns&&(r=l.p.id+"_frozen"),!0===l.p.frozenRows&&(i=l.p.id+"_fr"),l.p.multiselect?(l.setHeadCheckBox(!1),l.p.selrow=t.id,-1===(s=Ye.inArray(l.p.selrow,l.p.selarrrow))?("ui-subgrid"!==t.className&&Ye(t).addClass(d).attr("aria-selected","true"),e=!0,l.p.selarrrow.push(l.p.selrow)):-1!==s&&"_sp_"===u?("ui-subgrid"!==t.className&&Ye(t).addClass(d).attr("aria-selected","true"),e=!0):("ui-subgrid"!==t.className&&Ye(t).removeClass(d).attr("aria-selected","false"),e=!1,l.p.selarrrow.splice(s,1),o=l.p.selarrrow[0],l.p.selrow=void 0===o?null:o),Ye("#jqg_"+Ye.jgrid.jqID(l.p.id)+"_"+Ye.jgrid.jqID(t.id))[l.p.useProp?"prop":"attr"]("checked",e),r&&(h&&(-1===s?Ye("#"+Ye.jgrid.jqID(p),"#"+Ye.jgrid.jqID(r)).addClass(d):Ye("#"+Ye.jgrid.jqID(p),"#"+Ye.jgrid.jqID(r)).removeClass(d)),Ye("#jqg_"+Ye.jgrid.jqID(l.p.id)+"_"+Ye.jgrid.jqID(p),"#"+Ye.jgrid.jqID(r))[l.p.useProp?"prop":"attr"]("checked",e)),c&&(Ye(l).triggerHandler("jqGridSelectRow",[t.id,e,u]),l.p.onSelectRow)&&l.p.onSelectRow.call(l,t.id,e,u),Ye.jgrid.isFunction(l.p.onMultiSelect)&&l.p.onMultiSelect.call(l,l.p.selarrrow)):(i&&Ye("#"+Ye.jgrid.jqID(l.p.selrow),"#"+Ye.jgrid.jqID(i)).removeClass(d),"ui-subgrid"!==t.className&&(e=l.p.selrow!==t.id&&(h&&((a=Ye(l).jqGrid("getGridRowById",l.p.selrow))&&Ye(a).removeClass(d).attr({"aria-selected":"false",tabindex:"-1"}),Ye(t).addClass(d).attr({"aria-selected":"true",tabindex:"0"}),r)&&(Ye("#"+Ye.jgrid.jqID(l.p.selrow),"#"+Ye.jgrid.jqID(r)).removeClass(d),Ye("#"+Ye.jgrid.jqID(p),"#"+Ye.jgrid.jqID(r)).addClass(d)),!0),l.p.selrow=t.id,c)&&(Ye(l).triggerHandler("jqGridSelectRow",[t.id,e,u]),l.p.onSelectRow)&&l.p.onSelectRow.call(l,t.id,e,u)))})},resetSelection:function(n){return this.each(function(){var r,e,t,i=this,o=Ye.jgrid.getMethod("getStyleUI"),a=o(i.p.styleUI+".common","highlight",!0),o=o(i.p.styleUI+".common","hover",!0);!0===i.p.frozenColumns&&(r=i.p.id+"_frozen"),void 0!==n?(t=n===i.p.selrow?i.p.selrow:n,Ye("#"+Ye.jgrid.jqID(i.p.id)+" tbody").first().find("tr#"+Ye.jgrid.jqID(t)).removeClass(a).attr("aria-selected","false"),r&&Ye("#"+Ye.jgrid.jqID(t),"#"+Ye.jgrid.jqID(r)).removeClass(a),i.p.multiselect&&(Ye("#jqg_"+Ye.jgrid.jqID(i.p.id)+"_"+Ye.jgrid.jqID(t),"#"+Ye.jgrid.jqID(i.p.id))[i.p.useProp?"prop":"attr"]("checked",!1),r&&Ye("#jqg_"+Ye.jgrid.jqID(i.p.id)+"_"+Ye.jgrid.jqID(t),"#"+Ye.jgrid.jqID(r))[i.p.useProp?"prop":"attr"]("checked",!1),i.setHeadCheckBox(!1),-1!==(e=Ye.inArray(Ye.jgrid.jqID(t),i.p.selarrrow)))&&i.p.selarrrow.splice(e,1),i.p.onUnSelectRow&&i.p.onUnSelectRow.call(i,t),t=null):i.p.multiselect?(Ye(i.p.selarrrow).each(function(e,t){Ye(Ye(i).jqGrid("getGridRowById",t)).removeClass(a).attr("aria-selected","false"),Ye("#jqg_"+Ye.jgrid.jqID(i.p.id)+"_"+Ye.jgrid.jqID(t))[i.p.useProp?"prop":"attr"]("checked",!1),r&&(Ye("#"+Ye.jgrid.jqID(t),"#"+Ye.jgrid.jqID(r)).removeClass(a),Ye("#jqg_"+Ye.jgrid.jqID(i.p.id)+"_"+Ye.jgrid.jqID(t),"#"+Ye.jgrid.jqID(r))[i.p.useProp?"prop":"attr"]("checked",!1)),i.p.onUnSelectRow&&i.p.onUnSelectRow.call(i,t)}),i.setHeadCheckBox(!1),i.p.selarrrow=[],i.p.selrow=null):i.p.selrow&&(Ye("#"+Ye.jgrid.jqID(i.p.id)+" tbody").first().find("tr#"+Ye.jgrid.jqID(i.p.selrow)).removeClass(a).attr("aria-selected","false"),r&&Ye("#"+Ye.jgrid.jqID(i.p.selrow),"#"+Ye.jgrid.jqID(r)).removeClass(a),i.p.onUnSelectRow&&i.p.onUnSelectRow.call(i,i.p.selrow),i.p.selrow=null),!0===i.p.cellEdit&&0<=parseInt(i.p.iCol,10)&&0<=parseInt(i.p.iRow,10)&&(Ye("td",i.rows[i.p.iRow]).eq(i.p.iCol).removeClass("edit-cell "+a),Ye(i.rows[i.p.iRow]).removeClass("selected-row "+o)),Ye.jgrid.isFunction(i.p.onMultiSelect)&&i.p.onMultiSelect.call(i,i.p.selarrrow)})},getRowData:function(e,a,n,l){var s,d,p={},c=!1,u=0;return this.each(function(){var t,r,i=this;if(Ye.jgrid.isNull(e))c=!0,s=[],d=i.rows.length;else{if(!(r=Ye(i).jqGrid("getGridRowById",e)))return p;d=1}for(a&&!0===a&&0<i.p.data.length||(a=!1),Ye.jgrid.isNull(n)&&(n=!1),Ye.jgrid.isNull(l)&&(l=!1);u<d;){if(c&&(r=i.rows[u]),Ye(r).hasClass("jqgrow")&&"norecs"!==r.id){if(!0===i.p.treeGrid&&!0===l&&Ye(r).is(":hidden")){u++;continue}if(a?p=Ye.extend({},i.p.data[i.p._index[Ye.jgrid.stripPref(i.p.idPrefix,r.id)]]):Ye(r).children('td[role="gridcell"]').each(function(e){if("cb"!==(t=i.p.colModel[e].name)&&"subgrid"!==t&&"rn"!==t&&"sc"!==t)if(!0===i.p.treeGrid&&t===i.p.ExpandColumn)p[t]=Ye.jgrid.htmlDecode(Ye(this).find("span").first().html());else try{p[t]=Ye.unformat.call(i,this,{rowId:r.id,colModel:i.p.colModel[e]},e)}catch(e){p[t]=Ye.jgrid.htmlDecode(Ye(this).html())}}),!0===i.p.treeGrid&&n){var o=i.p.treeReader.level_field;n+="";try{o=parseInt(p[o],10)}catch(e){o=0}p[i.p.ExpandColumn]=n.repeat(o)+p[i.p.ExpandColumn]}c&&(s.push(p),p={})}u++}}),s||p},delRowData:function(r){var i,o,a=!1;return this.each(function(){var e,t=this;if(!(i=Ye(t).jqGrid("getGridRowById",r)))return!1;r=i.id,t.p.subGrid&&(o=Ye(i).next()).hasClass("ui-subgrid")&&o.remove(),Ye(i).remove(),t.p.records--,t.p.reccount--,t.updatepager(!0,!1),a=!0,t.p.frozenColumns&&Ye("#"+r,"#"+Ye.jgrid.jqID(t.p.id+"_frozen")).remove(),t.p.multiselect&&-1!==(o=Ye.inArray(r,t.p.selarrrow))&&t.p.selarrrow.splice(o,1),t.p.multiselect&&0<t.p.selarrrow.length?t.p.selrow=t.p.selarrrow[t.p.selarrrow.length-1]:t.p.selrow===r&&(t.p.selrow=null),"local"===t.p.datatype&&(e=Ye.jgrid.stripPref(t.p.idPrefix,r),void 0!==(e=t.p._index[e]))&&(t.p.data.splice(e,1),t.refreshIndex())}),a},setRowData:function(d,p,c,u){var h,g=!0;return this.each(function(){if(!this.grid)return!1;var r,e,i,o=this,a={},n=Ye(this).jqGrid("getGridRowById",d);if(!n)return!1;if(!0===u&&(e=Ye(o).jqGrid("getRowData",d,"local"===o.p.datatype)),p){u&&(p=Ye.extend(e,p));try{if(Ye(this.p.colModel).each(function(e){h=this.name;var t=Ye.jgrid.getAccessor(p,h);void 0!==t&&(a[h]=t,r=o.formatter(d,a[h],e,p,"edit"),i=this.title?{title:Ye.jgrid.stripHtml(r)}:{},(!0===o.p.treeGrid&&h===o.p.ExpandColumn?Ye("td[role='gridcell']",n).eq(e).find("span[class*='cell-wrapper']"):Ye("td[role='gridcell']",n).eq(e)).html(r).attr(i),o.p.frozenColumns)&&e<=o.p.frozenColCount&&Ye("#"+d+" td[role='gridcell']","#"+Ye.jgrid.jqID(o.p.id+"_frozen")).eq(e).html(r).attr(i)}),"local"===o.p.datatype){var t,l=Ye.jgrid.stripPref(o.p.idPrefix,d),s=o.p._index[l];if(o.p.treeGrid)for(t in o.p.treeReader)o.p.treeReader.hasOwnProperty(t)&&delete a[o.p.treeReader[t]];void 0!==s&&(o.p.data[s]=Ye.extend(!0,o.p.data[s],a)),a=null}}catch(e){g=!1}}g&&("string"==typeof c?Ye(n).addClass(c):Ye.jgrid.isNull(c)||"object"!=typeof c||Ye(n).css(c),Ye(o).triggerHandler("jqGridAfterGridComplete"))}),g},addRowData:function(n,l,s,d){-1===Ye.inArray(s,["first","last","before","after"])&&(s="last");var p,c,u,h,g,f,m,v,j,b,y,w,x=!1,_="",q="",C="";return l&&(Array.isArray(l)?(v=!0,j=n):v=!(l=[l]),this.each(function(){var e=this,t=l.length,r=(h=!0===e.p.rownumbers?1:0,c=!0===e.p.multiselect?1:0,u=!0===e.p.subGrid?1:0,v||(void 0!==n?n=String(n):(n=Ye.jgrid.randId(),!1!==e.p.keyName&&(j=e.p.keyName,void 0!==l[0][j])&&(n=l[0][j]))),0),i=Ye(e).jqGrid("getStyleUI",e.p.styleUI+".base","rowBox",!0,"jqgrow ui-row-"+e.p.direction),o={},a=!!Ye.jgrid.isFunction(e.p.afterInsertRow);for(h&&(_=Ye(e).jqGrid("getStyleUI",e.p.styleUI+".base","rownumBox",!1,"jqgrid-rownum")),c&&(q=Ye(e).jqGrid("getStyleUI",e.p.styleUI+".base","multiBox",!1,"cbox"));r<t;){if(b=l[r],p=[],v)try{void 0===(n=b[j])&&(n=Ye.jgrid.randId())}catch(e){n=Ye.jgrid.randId()}for(w=n,n=e.p.idPrefix+n,h&&(C=e.formatCol(0,1,"",null,n,!0),p[p.length]='<td role="gridcell" '+_+" "+C+">0</td>"),c&&(m='<input role="checkbox" type="checkbox" id="jqg_'+e.p.id+"_"+n+'" '+q+"/>",C=e.formatCol(h,1,"",null,n,!0),p[p.length]='<td role="gridcell" '+C+">"+m+"</td>"),u&&(p[p.length]=Ye(e).jqGrid("addSubGridCell",c+h,1)),f=c+u+h;f<e.p.colModel.length;f++)y=e.p.colModel[f],o[y=y.name]=b[y],m=e.formatter(n,Ye.jgrid.getAccessor(b,y),f,b),C=e.formatCol(f,1,m,b,n,o),p[p.length]='<td role="gridcell" '+C+">"+m+"</td>";if(p.unshift(e.constructTr(n,!1,i,o,b)),p[p.length]="</tr>",0===e.rows.length)Ye(e.grid.bDiv).find("table").first().append(p.join(""));else switch(s){case"last":Ye(e.rows[e.rows.length-1]).after(p.join("")),g=e.rows.length-1;break;case"first":Ye(e.rows[0]).after(p.join("")),g=1;break;case"after":(g=Ye(e).jqGrid("getGridRowById",d))&&(Ye(e.rows[g.rowIndex+1]).hasClass("ui-subgrid")?Ye(e.rows[g.rowIndex+1]).after(p):Ye(g).after(p.join("")),g=g.rowIndex+1);break;case"before":(g=Ye(e).jqGrid("getGridRowById",d))&&(Ye(g).before(p.join("")),g=g.rowIndex-1)}if(!0===e.p.subGrid&&Ye(e).jqGrid("addSubGrid",c+h,g),e.p.records++,e.p.reccount++,Ye(e).triggerHandler("jqGridAfterInsertRow",[n,b,b]),a&&e.p.afterInsertRow.call(e,n,b,b),r++,"local"===e.p.datatype)switch(o[e.p.localReader.id]=w,s){case"first":e.p.data.unshift(o);break;case"last":e.p.data.push(o);break;case"before":case"after":e.p.data.splice(g-1,0,o)}o={},1===e.p.reccount&&(g=Ye(e).jqGrid("getGridRowById","norecs"))&&g.rowIndex&&0<g.rowIndex&&Ye(e.rows[g.rowIndex]).remove()}"local"===e.p.datatype&&e.refreshIndex(),e.updatepager(!0,!0),x=!0})),x},footerData:function(n,l,s,d,p){var c,u=!1,h={};function g(e){for(var t in e)if(e.hasOwnProperty(t))return;return 1}return"boolean"!=typeof s&&(s=!0),void 0===d&&(d=0),void 0===p&&(p=!0),n=(n=void 0===n?"get":n).toLowerCase(),this.each(function(){var t,r,e,i=this,o=this.p.colModel.length,a=!1;return!(!i.grid||!i.p.footerrow||"set"===n&&g(l))&&("getlength"===n?(e=Ye(".ui-jqgrid-ftable tr",i.grid.sDiv).length,h=e||0,!1):(i.p.frozenColumns&&"get"!==n&&p&&(Ye(i).jqGrid("destroyFrozenColumns"),a=!0),u=!0,"addrow"===n&&(e=Ye(".ui-jqgrid-ftable tr",i.grid.sDiv).eq(0).clone(),Ye("td",e).html("&nbsp;"),Ye(".ui-jqgrid-ftable",i.grid.sDiv).append(e),g(l)||(n="set",d=Ye(".ui-jqgrid-stable tr",i.grid.sDiv).length-1)),"delrow"===n&&0<(d=void 0===d?Ye(".ui-jqgrid-stable tr",i.grid.sDiv).length-1:d)&&Ye(".ui-jqgrid-ftable tr",i.grid.sDiv).eq(d).remove(),o*=parseInt(d,10),"get"!==n&&"set"!==n||Ye(this.p.colModel).each(function(e){c=this.name,"set"===n?void 0!==l[c]&&(t=s?i.formatter("",l[c],e,l,"edit"):l[c],r=this.title?{title:Ye.jgrid.stripHtml(t)}:{},Ye("tr.footrow td",i.grid.sDiv).eq(e+o).html(t).attr(r),u=!0):"get"===n&&(h[c]=s?Ye.unformat.call(i,Ye("tr.footrow td",i.grid.sDiv).eq(e+o),{colModel:i.p.colModel[e]},e):Ye("tr.footrow td",i.grid.sDiv).eq(e+o).html())}),"remove"===n&&(Ye(i.grid.sDiv).remove(),i.grid.sDiv=null,i.p.footerrow=!1),void(a&&Ye(i).jqGrid("setFrozenColumns"))))}),"get"===n||"getlength"===n?h:u},headerData:function(n,l,s,d,p){var c,u=!1,h={};function g(e){for(var t in e)if(e.hasOwnProperty(t))return;return 1}return"boolean"!=typeof s&&(s=!0),void 0===d&&(d=0),void 0===p&&(p=!0),n=(n=void 0===n?"get":n).toLowerCase(),this.each(function(){var t,r,e,i=this,o=this.p.colModel.length,a=!1;return!(!i.grid||!i.p.headerrow||"set"===n&&g(l))&&("getlength"===n?(e=Ye(".ui-jqgrid-hrtable tr",i.grid.hrDiv).length,h=e||0,!0):(i.p.frozenColumns&&"get"!==n&&p&&(Ye(i).jqGrid("destroyFrozenColumns"),a=!0),u=!0,"addrow"===n&&(e=Ye(".ui-jqgrid-hrtable tr",i.grid.hrDiv).eq(0).clone(),Ye("td",e).html("&nbsp;"),Ye(".ui-jqgrid-hrtable",i.grid.hrDiv).append(e),g(l)||(n="set",d=Ye(".ui-jqgrid-hrtable tr",i.grid.hrDiv).length-1)),"delrow"===n&&0<(d=void 0===d?Ye(".ui-jqgrid-hrtable tr",i.grid.hrDiv).length-1:d)&&Ye(".ui-jqgrid-hrtable tr",i.grid.hrDiv).eq(d).remove(),o*=parseInt(d,10),"get"!==n&&"set"!==n||Ye(this.p.colModel).each(function(e){c=this.name,"set"===n?void 0!==l[c]&&(t=s?i.formatter("",l[c],e,l,"edit"):l[c],r=this.title?{title:Ye.jgrid.stripHtml(t)}:{},Ye("tr.hrheadrow td",i.grid.hrDiv).eq(e+o).html(t).attr(r),u=!0):"get"===n&&(h[c]=s?Ye.unformat.call(i,Ye("tr.hrheadrow td",i.grid.hrDiv).eq(e+o),{colModel:i.p.colModel[e]},e):Ye("tr.hrheadrow td",i.grid.hrDiv).eq(e+o).html())}),"remove"===n&&(Ye(i.grid.hrDiv).remove(),i.grid.hrDiv=null,i.p.headerrow=!1),void(a&&Ye(i).jqGrid("setFrozenColumns"))))}),"get"===n||"getlength"===n?h:u},showHideCol:function(d,p){return this.each(function(){var t,r=this,i=!1,o=Ye.jgrid.cell_width?0:r.p.cellLayout,e=!1;if(r.grid){"string"==typeof d&&(d=[d]);var a=""===(p="none"!==p?"":"none"),n=null,l=Ye(r).jqGrid("isGroupHeaderOn");if(r.p.frozenColumns&&(Ye(r).jqGrid("destroyFrozenColumns"),e=!0),l&&(Ye(r).jqGrid("destroyGroupHeader",!1),n=Ye.extend([],r.p.groupHeader),r.p.groupHeader=null),r.p.colSpanHeader.length&&Ye(r).jqGrid("destroyColSpanHeader",!1),Ye(this.p.colModel).each(function(e){-1!==Ye.inArray(this.name,d)&&this.hidden===a&&(Ye("tr[role=row]",r.grid.hDiv).each(function(){Ye(this.cells[e]).css("display",p)}),Ye(r.rows).each(function(){Ye(this).hasClass("jqgroup")||Ye(this.cells[e]).css("display",p)}),r.p.footerrow&&Ye("tr.footrow td",r.grid.sDiv).eq(e).css("display",p),r.p.headerrow&&Ye("tr.hrheadrow td",r.grid.hrDiv).eq(e).css("display",p),t=parseInt(this.width,10),"none"===p?r.p.tblwidth-=t+o:r.p.tblwidth+=t+o,this.hidden=!a,i=!0,Ye(r).triggerHandler("jqGridShowHideCol",[a,this.name,e]))}),!0===i&&(!0!==r.p.shrinkToFit||isNaN(r.p.height)||(r.p.tblwidth+=parseInt(r.p.scrollOffset,10)),Ye(r).jqGrid("setGridWidth",!0===r.p.shrinkToFit?r.p.tblwidth-(isNaN(r.p.height)?0:parseInt(r.p.scrollOffset,10)):r.p.width)),l&&n)for(var s=0;s<n.length;s++)Ye(r).jqGrid("setGroupHeaders",n[s]);r.p.colSpanHeader.length&&Ye(r).jqGrid("setColSpanHeader",r.p.colSpanHeader),e&&Ye(r).jqGrid("setFrozenColumns")}})},hideCol:function(e){return this.each(function(){Ye(this).jqGrid("showHideCol",e,"none")})},showCol:function(e){return this.each(function(){Ye(this).jqGrid("showHideCol",e,"")})},hideSearchCol:function(t){return this.each(function(){try{var e=this.p._avc.indexOf(t);-1<e&&(this.p._avc.splice(e,1),this.p._fthc.push(t),Ye(this).jqGrid("showHideCol",t,"none"))}catch(e){}})},showSearchCol:function(t){return this.each(function(){try{var e=this.p._fthc.indexOf(t);-1<e&&(this.p._fthc.splice(e,1),this.p._avc.push(t),Ye(this).jqGrid("showHideCol",t,""))}catch(e){}})},remapColumns:function(i,e,t){function r(t){var r=t.length?Ye.makeArray(t):Ye.extend({},t);Ye.each(i,function(e){t[e]=r[this]})}var o=this.get(0);function a(e,t){Ye(">tr"+(t||""),e).each(function(){var t=this,r=Ye.makeArray(t.cells);Ye.each(i,function(){var e=r[this];e&&t.appendChild(e)})})}r(o.p.colModel),r(o.p.colNames),r(o.grid.headers),a(Ye(o.grid.hDiv).find("thead").first(),t&&":not(.ui-jqgrid-labels)"),e&&a(Ye("#"+Ye.jgrid.jqID(o.p.id)+" tbody").first(),".jqgfirstrow, tr.jqgrow, tr.jqfoot, tr.jqgroup"),o.p.footerrow&&a(Ye(o.grid.sDiv).find("tbody").first()),o.p.headerrow&&a(Ye(o.grid.hrDiv).find("tbody").first()),o.p.remapColumns&&(o.p.remapColumns.length?r(o.p.remapColumns):o.p.remapColumns=Ye.makeArray(i)),o.p.lastsort=Ye.inArray(o.p.lastsort,i),o.p.treeGrid&&(o.p.expColInd=Ye.inArray(o.p.expColInd,i)),Ye(o).triggerHandler("jqGridRemapColumns",[i,e,t])},setGridWidth:function(v,j,b){return this.each(function(){if(this.grid){var e,t,r=this,i=!1,o=0,a=Ye.jgrid.cell_width?0:r.p.cellLayout,n=0,l=!1,s=r.p.scrollOffset,d=0,p=-1!==r.p.styleUI.search("Bootstrap")?2:0;if("boolean"!=typeof j&&(j=r.p.shrinkToFit),"boolean"!=typeof b&&(b=!0),!isNaN(v)&&!((v=parseInt(v,10))<r.p.minGridWidth||v>r.p.maxGridWidth)){if(r.grid.width=r.p.width=v,Ye("#gbox_"+Ye.jgrid.jqID(r.p.id)).css("width",v+"px"),Ye("#gview_"+Ye.jgrid.jqID(r.p.id)).css("width",v+"px"),Ye(r.grid.bDiv).css("width",v-p+"px"),Ye(r.grid.hDiv).css("width",v-p+"px"),r.p.pager&&Ye(r.p.pager).css("width",v-p+"px"),r.p.toppager&&Ye(r.p.toppager).css("width",v-p+"px"),!0===r.p.toolbar[0]&&(Ye(r.grid.uDiv).css("width",v-p+"px"),"both"===r.p.toolbar[1])&&Ye(r.grid.ubDiv).css("width",v-p+"px"),r.p.footerrow&&Ye(r.grid.sDiv).css("width",v-p+"px"),r.p.headerrow&&Ye(r.grid.hrDiv).css("width",v-p+"px"),(e=Ye(r).jqGrid("isGroupHeaderOn"))&&Ye(r).jqGrid("destroyGroupHeader",!1),r.p.frozenColumns&&b&&(Ye(r).jqGrid("destroyFrozenColumns"),i=!0),!1===j&&!0===r.p.forceFit&&(r.p.forceFit=!1),!0===j){if(Ye.each(r.p.colModel,function(){!1===this.hidden&&(g=this.widthOrg,o+=g+a,this.fixed?d+=g+a:n++)}),0===n)return;r.p.tblwidth=o;var c=v-a*n-d,u=Ye("#norecs","#"+Ye.jgrid.jqID(r.p.id)).eq(0),h=(isNaN(r.p.height)||(Ye(r.grid.bDiv)[0].clientHeight<=Ye(r.grid.bDiv)[0].scrollHeight||r.rows.length===u.length+1||"scroll"===Ye(r.grid.bDiv).css("overflow-y"))&&(l=!0,c-=s),(o=0)<r.grid.cols.length);if(Ye.each(r.p.colModel,function(e){!1!==this.hidden||this.fixed||(g=this.widthOrg,(g=Math.round(c*g/(r.p.tblwidth-a*n-d)))<0)||(this.width=g,o+=g,r.grid.headers[e].width=g,r.grid.headers[e].el.style.width=g+"px",r.p.footerrow&&(r.grid.footers[e].style.width=g+"px"),r.p.headerrow&&(r.grid.hrheaders[e].style.width=g+"px"),h&&(r.grid.cols[e].style.width=g+"px"),t=e)}),!t)return;u=0,l?v-d-(o+a*n)!==s&&(u=v-d-(o+a*n)-s):0!==Math.abs(v-d-(o+a*n))&&(u=v-d-(o+a*n)-p),r.p.colModel[t].width+=u,r.p.tblwidth=o+u+a*n+d,r.p.tblwidth>v?(l=r.p.tblwidth-parseInt(v,10),r.p.tblwidth=v,g=r.p.colModel[t].width=r.p.colModel[t].width-l):r.p.tblwidth===v?(g=r.p.colModel[t].width=r.p.colModel[t].width-p,r.p.tblwidth=v-p):g=r.p.colModel[t].width;var s=Ye(r.grid.bDiv)[0].scrollWidth>Ye(r.grid.bDiv).width()&&0!=p?-1:0,g=r.p.colModel[t].width+=s;r.grid.headers[t].width=g,r.grid.headers[t].el.style.width=g+"px",h&&(r.grid.cols[t].style.width=g+"px"),r.p.footerrow&&(r.grid.footers[t].style.width=g+"px"),r.p.headerrow&&(r.grid.hrheaders[t].style.width=g+"px")}if(Ye(r.grid.bDiv).find("table").first().css("width",r.p.tblwidth+"px"),Ye(r.grid.hDiv).find("table").first().css("width",r.p.tblwidth+"px"),r.grid.hDiv.scrollLeft=r.grid.bDiv.scrollLeft,r.p.footerrow&&Ye(r.grid.sDiv).find("table").first().css("width",r.p.tblwidth+"px"),r.p.headerrow&&Ye(r.grid.hrDiv).find("table").first().css("width",r.p.tblwidth+"px"),e){var f=Ye.extend([],r.p.groupHeader);r.p.groupHeader=null;for(var m=0;m<f.length;m++)Ye(r).jqGrid("setGroupHeaders",f[m]);r.grid.hDiv.scrollLeft=r.grid.bDiv.scrollLeft}i&&Ye(r).jqGrid("setFrozenColumns")}}})},setGridHeight:function(o,a,n){return this.each(function(){var e,t,r,i=this;i.grid&&(e=Ye(i.grid.bDiv),t=Ye(i.grid.hDiv).outerHeight(),"boolean"!=typeof n&&(n=!0),!(r=!1)===(a="boolean"!=typeof a?!1:a)&&(i.p.pager&&(t+=Ye(i.p.pager).outerHeight()),i.p.toppager&&(t+=Ye(i.p.toppager).outerHeight()),!0===i.p.toolbar[0]&&(t+=Ye(i.grid.uDiv).outerHeight(),"both"===i.p.toolbar[1])&&(t+=Ye(i.grid.ubDiv).outerHeight()),i.p.footerrow&&(t+=Ye(i.grid.sDiv).outerHeight()),i.p.headerrow&&(t+=Ye(i.grid.hrDiv).outerHeight()),i.p.caption&&(t+=Ye(i.grid.cDiv).outerHeight()),t<o)&&(o-=t),i.p.frozenColumns&&n&&(Ye(i).jqGrid("destroyFrozenColumns"),r=!0),e.css({height:o+(isNaN(o)?"":"px")}),i.p.height=o,r&&Ye(i).jqGrid("setFrozenColumns"),i.p.scroll)&&i.grid.populateVisible()})},maxGridHeight:function(i,o,a){return this.each(function(){var e,t,r=this;r.grid&&(void 0===a&&(a=25),e=Ye(r.grid.bDiv),"set"!==i||isNaN(o)?"remove"===i&&(t=["100%","auto"].includes(r.p.height)&&Ye(r.grid.bDiv).height()<Ye(r).height(),e.css("max-height",""),t)&&Ye("#"+Ye.jgrid.jqID(r.p.id)).jqGrid("setGridWidth",r.p.width-r.p.scrollOffset+2,!1,!1):(o=parseFloat(o))>parseFloat(a)&&(e.css("max-height",o),["100%","auto"].includes(r.p.height))&&Ye(r.grid.bDiv).height()<Ye(r).height()&&Ye("#"+Ye.jgrid.jqID(r.p.id)).jqGrid("setGridWidth",r.p.width+r.p.scrollOffset-2,!1,!1))})},setCaption:function(t){return this.each(function(){var e=Ye(this).jqGrid("getStyleUI",this.p.styleUI+".common","cornertop",!0);this.p.caption=t,Ye(".ui-jqgrid-title, .ui-jqgrid-title-rtl",this.grid.cDiv).html(t),Ye(this.grid.cDiv).show(),Ye(this.grid.hDiv).removeClass(e)})},setLabel:function(a,n,l,s){return this.each(function(){var e=this,t=-1;if(e.grid&&!Ye.jgrid.isNull(a)&&0<=(t=isNaN(a)?Ye.jgrid.getElemByAttrVal(e.p.colModel,"name",a,!0):parseInt(a,10))){var r=Ye("tr.ui-jqgrid-labels th",e.grid.hDiv).eq(t);if(n){var i=Ye(".s-ico",r),o=Ye(".colmenu",r);try{Ye("[id^=jqgh_]",r).empty().html(n).append(i).append(o)}catch(e){}e.p.colNames[t]=n,e.p.frozenColumns&&(r=Ye("tr.ui-jqgrid-labels th",e.grid.fhDiv).eq(t),i=Ye(".s-ico",r),Ye("[id^=jqgh_]",r).empty().html(n).append(i))}l&&("string"==typeof l?Ye(r).addClass(l):Ye(r).css(l)),"object"==typeof s&&Ye(r).attr(s);o=e.p.colModel[t];o.autosize_headers&&(i=Ye.jgrid.getFont(r[0]),o.canvas_width=Ye.jgrid.getTextWidth(Ye("div",r)[0].outerText,i)+(o.colmenu?Ye.jgrid.floatNum(Ye(".colmenuspan",r).parent().width()):0)+Ye.jgrid.floatNum(Ye("div",r).css("padding-left"))+Ye.jgrid.floatNum(Ye("div",r).css("padding-right"))+Ye.jgrid.floatNum(Ye(".ui-jqgrid-resize",r).width()))}})},setSortIcon:function(l,s){return this.each(function(){var e,t,r,i=this,o=-1,a=1;if(i.grid){Ye.jgrid.isNull(s)?a=i.p.colNames.length:o=isNaN(s)?Ye.jgrid.getElemByAttrVal(i.p.colModel,"name",s,!0):parseInt(s,10);for(var n=0;n<a;n++)0<=o&&(n=o),"cb"!==(e=i.p.colModel[n].name)&&"subgrid"!==e&&"rn"!==e&&"sc"===e&&(e=Ye("tr.ui-jqgrid-labels th",i.grid.hDiv).eq(n),t=i.p.colNames[n],r=e.find(".s-ico"),"left"===l?e.find("div.ui-th-div").first().empty().addClass("ui-icon-left").append(r).append(t):"right"===l&&e.find("div.ui-th-div").first().empty().removeClass("ui-icon-left").append(t).append(r),i.p.frozenColumns)&&(e=Ye("tr.ui-jqgrid-labels th",i.grid.fhDiv).eq(n),t=i.p.colNames[n],r=e.find(".s-ico"),"left"===l?e.find("div.ui-th-div").first().empty().addClass("ui-icon-left").append(r).append(t):"right"===l&&e.find("div.ui-th-div").first().empty().removeClass("ui-icon-left").append(t).append(r))}})},setCell:function(n,l,s,d,p,c){return this.each(function(){var e=this,t=-1;if(e.grid&&0<=(t=isNaN(l)?Ye.jgrid.getElemByAttrVal(e.p.colModel,"name",l,!0):parseInt(l,10))&&(i=Ye(e).jqGrid("getGridRowById",n))){var r,i,o={},a=e.p.colModel[t];try{r=i.cells[t]}catch(e){}r&&(""===s&&!0!==c||((o=Ye(e).jqGrid("getRowData",n,"local"===e.p.datatype))[a.name]=s,i=e.formatter(n,s,t,o,"edit"),o=a.title?{title:Ye.jgrid.stripHtml(i)}:{},(e.p.treeGrid&&e.p.ExpandColumn===a.name?Ye("span",Ye(r)):Ye(r)).html(i).attr(o),"local"===e.p.datatype&&void 0!==(i=e.p._index[Ye.jgrid.stripPref(e.p.idPrefix,n)])&&(e.p.data[i][a.name]=s)),"string"==typeof d?Ye(r).addClass(d):d&&Ye(r).css(d),"object"==typeof p&&Ye(r).attr(p),e.p.frozenColumns)&&t<=e.p.frozenColCount&&(o=Ye(r).clone(),Ye("#"+n+" td","#"+Ye.jgrid.jqID(e.p.id+"_frozen")).eq(t).replaceWith(o))}})},getCell:function(i,o,a){var n,l=!1;return"boolean"!=typeof a&&(a=!1),this.each(function(){var e,t=this,r=-1;if(t.grid&&0<=(r=isNaN(o)?Ye.jgrid.getElemByAttrVal(t.p.colModel,"name",o,!0):parseInt(o,10))&&(e=Ye(t).jqGrid("getGridRowById",i)))if(n=Ye("td",e).eq(r),a)l=n;else{try{l=Ye.unformat.call(t,n,{rowId:e.id,colModel:t.p.colModel[r]},r)}catch(e){l=Ye.jgrid.htmlDecode(n.html())}t.p.treeGrid&&l&&t.p.ExpandColumn===o&&(l=Ye("<div>"+l+"</div>").find("span").first().html())}}),l},getCol:function(n,l,s){var d,p,c,u,h=[],g=0,f=("boolean"!=typeof l&&(l=!1),void 0===s&&(s=!1),Ye.jgrid.getFont(this[0]));return this.each(function(){var t=this,r=-1,e=t.p.colModel;if(t.grid&&0<=(r=isNaN(n)?Ye.jgrid.getElemByAttrVal(t.p.colModel,"name",n,!0):parseInt(n,10))){var i=t.rows.length,o=0,a=0;if(i&&0<i){for(;o<i;o++)if(Ye(t.rows[o]).hasClass("jqgrow")&&"norecs"!==t.rows[o].id)if("maxwidth"===s)void 0===c&&(c=e[r].autosize_headers?e[r].canvas_width:0),c=Math.max(Ye.jgrid.getTextWidth(t.rows[o].cells[r].outerText,f),c);else{try{d=Ye.unformat.call(t,Ye(t.rows[o].cells[r]),{rowId:t.rows[o].id,colModel:t.p.colModel[r]},r)}catch(e){d=Ye.jgrid.htmlDecode(t.rows[o].cells[r].innerHTML)}s?(u=Ye.jgrid.floatNum(d),g+=u,void 0===c&&(c=p=u),p=Math.min(p,u),c=Math.max(c,u),a++):l?h.push({id:t.rows[o].id,value:d}):h.push(d)}if(s)switch(s.toLowerCase()){case"sum":h=g;break;case"avg":h=g/a;break;case"count":h=a;break;case"min":h=p;break;case"max":case"maxwidth":h=c}}}}),h},clearGridData:function(r,i){return this.each(function(){var e,t=this;t.grid&&("boolean"!=typeof r&&(r=!1),"boolean"!=typeof i&&(i=!1),t.p.deepempty?Ye("#"+Ye.jgrid.jqID(t.p.id)+" tbody").first().find("tr").slice(1).remove():(e=Ye("#"+Ye.jgrid.jqID(t.p.id)+" tbody").first().find("tr").first()[0],Ye("#"+Ye.jgrid.jqID(t.p.id)+" tbody").first().empty().append(e)),t.p.footerrow&&r&&Ye(".ui-jqgrid-ftable td",t.grid.sDiv).html("&#160;"),t.p.headerrow&&i&&Ye(".ui-jqgrid-hrtable td",t.grid.hrDiv).html("&#160;"),t.p.selrow=null,t.p.selarrrow=[],t.p.savedRow=[],t.p.records=0,t.p.page=1,t.p.lastpage=0,t.p.reccount=0,t.p.data=[],t.p._index={},t.p.groupingView._locgr=!1,t.updatepager(!0,!1))})},getInd:function(e,t){var r,i=!1;return this.each(function(){(r=Ye(this).jqGrid("getGridRowById",e))&&(i=!0===t?r:r.rowIndex)}),i},bindKeys:function(e){var s=Ye.extend({onEnter:null,onSpace:null,onLeftKey:null,onRightKey:null,onSelectRow:!0,scrollingRows:!0},e||{});return this.each(function(){var l=this;Ye("body").is("[role]")||Ye("body").attr("role","application"),l.p.scrollrows=s.scrollingRows,Ye(l).on("keydown",function(e){var t,r,i=Ye(l).find("tr[tabindex=0]")[0],o=l.p.treeReader.expanded_field;if(i){var a=l.p.selrow,n=l.p._index[Ye.jgrid.stripPref(l.p.idPrefix,i.id)];if(37===e.keyCode||38===e.keyCode||39===e.keyCode||40===e.keyCode){if(38===e.keyCode){if(t="",(r=i.previousSibling)&&Ye(r).hasClass("jqgrow")){if(Ye(r).is(":hidden")){for(;r;)if(r=r.previousSibling,!Ye(r).is(":hidden")&&Ye(r).hasClass("jqgrow")){t=r.id;break}}else t=r.id;Ye(l).jqGrid("setSelection",t,s.onSelectRow,e)}Ye(l).triggerHandler("jqGridKeyUp",[t,a,e]),Ye.jgrid.isFunction(s.onUpKey)&&s.onUpKey.call(l,t,a,e),e.preventDefault()}if(40===e.keyCode){if(t="",(r=i.nextSibling)&&Ye(r).hasClass("jqgrow")){if(Ye(r).is(":hidden")){for(;r;)if(r=r.nextSibling,!Ye(r).is(":hidden")&&Ye(r).hasClass("jqgrow")){t=r.id;break}}else t=r.id;Ye(l).jqGrid("setSelection",t,s.onSelectRow,e)}Ye(l).triggerHandler("jqGridKeyDown",[t,a,e]),Ye.jgrid.isFunction(s.onDownKey)&&s.onDownKey.call(l,t,a,e),e.preventDefault()}37===e.keyCode&&(l.p.treeGrid&&l.p.data[n][o]&&Ye(i).find("div.treeclick").trigger("click"),Ye(l).triggerHandler("jqGridKeyLeft",[l.p.selrow,e]),Ye.jgrid.isFunction(s.onLeftKey))&&s.onLeftKey.call(l,l.p.selrow,e),39===e.keyCode&&(l.p.treeGrid&&!l.p.data[n][o]&&Ye(i).find("div.treeclick").trigger("click"),Ye(l).triggerHandler("jqGridKeyRight",[l.p.selrow,e]),Ye.jgrid.isFunction(s.onRightKey))&&s.onRightKey.call(l,l.p.selrow,e)}else 13===e.keyCode?(e.preventDefault(),Ye(l).triggerHandler("jqGridKeyEnter",[l.p.selrow,e]),Ye.jgrid.isFunction(s.onEnter)&&s.onEnter.call(l,l.p.selrow,e)):32===e.keyCode&&(Ye(l).triggerHandler("jqGridKeySpace",[l.p.selrow,e]),Ye.jgrid.isFunction(s.onSpace))&&s.onSpace.call(l,l.p.selrow,e)}}).on("click",function(e){Ye(e.target).is("input, textarea, select")||Ye(e.target,l.rows).closest("tr.jqgrow").focus()})})},unbindKeys:function(){return this.each(function(){Ye(this).off("keydown")})},getLocalRow:function(e){var t,r=!1;return this.each(function(){void 0!==e&&0<=(t=this.p._index[Ye.jgrid.stripPref(this.p.idPrefix,e)])&&(r=this.p.data[t])}),r},progressBar:function(o){return o=Ye.extend({htmlcontent:"",method:"hide",loadtype:"disable"},o||{}),this.each(function(){var e,t="show"===o.method,r=Ye("#load_"+Ye.jgrid.jqID(this.p.id)),i=Ye(window).scrollTop();switch(""!==o.htmlcontent&&r.html(o.htmlcontent),o.loadtype){case"disable":break;case"enable":r.toggle(t);break;case"block":Ye("#lui_"+Ye.jgrid.jqID(this.p.id)).css(t?{top:0,left:0,height:Ye("#gbox_"+Ye.jgrid.jqID(this.p.id)).height(),width:Ye("#gbox_"+Ye.jgrid.jqID(this.p.id)).width(),"z-index":1e4,position:"absolute"}:{}).toggle(t),r.toggle(t)}r.is(":visible")&&(e=r.offsetParent(),r.css("top",""),r.offset().top<i)&&(i=Math.min(10+i-e.offset().top,e.height()-r.height()),r.css("top",i+"px"))})},getColProp:function(e){var t=this[0];return!!t.grid&&Ye.jgrid.getElemByAttrVal(t.p.colModel,"name",e,!1)},setColProp:function(t,r){return this.each(function(){var e;this.grid&&Ye.isPlainObject(r)&&0<=(e=Ye.jgrid.getElemByAttrVal(this.p.colModel,"name",t,!0))&&Ye.extend(!0,this.p.colModel[e],r)})},sortGrid:function(a,n,l){return this.each(function(){var e,t,r=this,i=-1,o=!1;if(r.grid){for(a=a||r.p.sortname,e=0;e<r.p.colModel.length;e++)if(r.p.colModel[e].index===a||r.p.colModel[e].name===a){i=e,!0===r.p.frozenColumns&&!0===r.p.colModel[e].frozen&&(o=r.grid.fhDiv.find("#"+r.p.id+"_"+a));break}-1!==i&&(t=r.p.colModel[i].sortable,o=o||r.grid.headers[i].el,"boolean"!=typeof n&&(n=!1),t="boolean"!=typeof t||t)&&r.sortData("jqgh_"+r.p.id+"_"+a,i,n,l,o)}})},setGridState:function(i){return this.each(function(){var e,t,r;this.grid&&(t=Ye(e=this).jqGrid("getStyleUI",this.p.styleUI+".base","icon_caption_open",!0),r=Ye(this).jqGrid("getStyleUI",this.p.styleUI+".base","icon_caption_close",!0),"hidden"===i?(Ye(".ui-jqgrid-bdiv, .ui-jqgrid-hdiv","#gview_"+Ye.jgrid.jqID(e.p.id)).slideUp("fast"),e.p.pager&&Ye(e.p.pager).slideUp("fast"),e.p.toppager&&Ye(e.p.toppager).slideUp("fast"),!0===e.p.toolbar[0]&&("both"===e.p.toolbar[1]&&Ye(e.grid.ubDiv).slideUp("fast"),Ye(e.grid.uDiv).slideUp("fast")),e.p.footerrow&&Ye(".ui-jqgrid-sdiv","#gbox_"+Ye.jgrid.jqID(e.p.id)).slideUp("fast"),e.p.headerrow&&Ye(".ui-jqgrid-hrdiv","#gbox_"+Ye.jgrid.jqID(e.p.id)).slideUp("fast"),Ye(".ui-jqgrid-headlink",e.grid.cDiv).removeClass(t).addClass(r),e.p.gridstate="hidden"):"visible"===i&&(Ye(".ui-jqgrid-hdiv, .ui-jqgrid-bdiv","#gview_"+Ye.jgrid.jqID(e.p.id)).slideDown("fast"),e.p.pager&&Ye(e.p.pager).slideDown("fast"),e.p.toppager&&Ye(e.p.toppager).slideDown("fast"),!0===e.p.toolbar[0]&&("both"===e.p.toolbar[1]&&Ye(e.grid.ubDiv).slideDown("fast"),Ye(e.grid.uDiv).slideDown("fast")),e.p.footerrow&&Ye(".ui-jqgrid-sdiv","#gbox_"+Ye.jgrid.jqID(e.p.id)).slideDown("fast"),e.p.headerrow&&Ye(".ui-jqgrid-hrdiv","#gbox_"+Ye.jgrid.jqID(e.p.id)).slideDown("fast"),Ye(".ui-jqgrid-headlink",e.grid.cDiv).removeClass(r).addClass(t),e.p.gridstate="visible"))})},setFrozenColumns:function(){return this.each(function(){if(this.grid){var e,t,r,i,o,a,n,l=this,s=l.p.colModel,d=0,p=s.length,c=Ye(l).jqGrid("getStyleUI",l.p.styleUI+".base","headerDiv",!0,"ui-jqgrid-hdiv"),u=Ye(l).jqGrid("getStyleUI",l.p.styleUI+".common","hover",!0),h="border-box"===Ye("#gbox_"+Ye.jgrid.jqID(l.p.id)).css("box-sizing")?1:0;if(!0!==l.p.subGrid&&!0!==l.p.treeGrid&&!0!==l.p.cellEdit&&!l.p.scroll&&!l.p.frozenColumns){for(l.p.frozenColCount=-1;d<p&&!0===s[d].frozen;)l.p.frozenColCount=d,d++;0<=l.p.frozenColCount&&(a=Ye(".ui-jqgrid-hdiv","#gview_"+Ye.jgrid.jqID(l.p.id)).height(),e=Ye(".ui-jqgrid-bdiv","#gview_"+Ye.jgrid.jqID(l.p.id)).position(),t=Ye(".ui-jqgrid-hdiv","#gview_"+Ye.jgrid.jqID(l.p.id)).position(),l.grid.fhDiv=Ye('<div style="position:absolute;'+("rtl"===l.p.direction?"right:0px;":"left:0px;")+"top:"+t.top+"px;height:"+(a-h)+'px;" class="frozen-div '+c+'"></div>'),l.grid.fbDiv=Ye('<div style="position:absolute;'+("rtl"===l.p.direction?"right:0px;":"left:0px;")+"top:"+e.top+'px;overflow-y:hidden" class="frozen-bdiv ui-jqgrid-bdiv"></div>'),Ye("#gview_"+Ye.jgrid.jqID(l.p.id)).append(l.grid.fhDiv),t=Ye(".ui-jqgrid-htable","#gview_"+Ye.jgrid.jqID(l.p.id)).clone(!0),Ye(t).width(1),Ye(l.grid.fhDiv).append(t),Ye(l).jqGrid("isGroupHeaderOn")?(Ye("tr.jqg-third-row-header",l.grid.hDiv).height(),Ye("tr.jqg-first-row-header, tr.jqg-third-row-header",t).each(function(){Ye("th",this).slice(l.p.frozenColCount+1).remove()}),i=r=-1,Ye("tr.jqg-second-row-header th",t).each(function(){if(o=parseInt(Ye(this).attr("colspan"),10),parseInt(Ye(this).attr("rowspan"),10)&&(r++,i++),o&&(r+=o,i++),r===l.p.frozenColCount)return i=l.p.frozenColCount,!1}),r!==l.p.frozenColCount&&(i=l.p.frozenColCount),Ye("tr.jqg-second-row-header",t).each(function(){Ye("th",this).slice(i+1).remove()}),a=Ye("tr.jqg-second-row-header th",t).filter(function(){return"none"!==Ye(this).css("display")}).first(),"object"===Ye.jgrid.type(a)&&a.length&&"hidden"!==a.css("visibility")&&""===Ye.jgrid.trim(a[0].outerText)&&a.html("&nbsp;"),a=Ye("tr.jqg-third-row-header th",t).filter(function(){return"none"!==Ye(this).css("display")}).first(),"object"===Ye.jgrid.type(a)&&a.length&&"hidden"!==a.css("visibility")&&""===Ye.jgrid.trim(a[0].outerText)&&Ye("div",a).prepend("&nbsp;")):(n=[],Ye("#gview_"+Ye.jgrid.jqID(l.p.id)+" .ui-jqgrid-htable > thead >tr").each(function(e,t){n.push(parseInt(Ye(this).height(),10))}),Ye("thead >tr",t).each(function(){Ye("th",this).slice(l.p.frozenColCount+1).remove()}),Ye("thead >tr",t).each(function(e){0===e&&--n[e],Ye(this).height(n[e])})),Ye.jgrid.msie()||Ye(t).css("height","100%"),Ye(l.grid.fhDiv).mousemove(function(e){if(l.grid.resizing)return l.grid.dragMove(e),!1}),l.p.sortable&&Ye.fn.sortable&&Ye(l.grid.fhDiv).find("tr.ui-jqgrid-labels th").addClass("sortable-disabled"),l.p.headerrow&&(l.grid.fhrDiv=Ye('<div style="position:absolute;'+("rtl"===l.p.direction?"right:0px;":"left:0px;")+'top:0px;" class="frozen-hrdiv ui-jqgrid-hrdiv "></div>'),Ye("#gview_"+Ye.jgrid.jqID(l.p.id)).append(l.grid.fhrDiv)),l.p.footerrow&&(l.grid.fsDiv=Ye('<div style="position:absolute;'+("rtl"===l.p.direction?"right:0px;":"left:0px;")+'top:0px;" class="frozen-sdiv ui-jqgrid-sdiv"></div>'),Ye("#gview_"+Ye.jgrid.jqID(l.p.id)).append(l.grid.fsDiv)),Ye("#gview_"+Ye.jgrid.jqID(l.p.id)).append(l.grid.fbDiv),Ye(l.grid.fbDiv).on("mousewheel DOMMouseScroll",function(e){l.grid.bDiv.scrollTop+="mousewheel"===e.type?-e.originalEvent.wheelDelta/10:6*e.originalEvent.detail}),!0===l.p.hoverrows&&Ye("#"+Ye.jgrid.jqID(l.p.id)).off("mouseover mouseout"),Ye(l).on("jqGridAfterGridComplete.setFrozenColumns",function(){Ye("#"+Ye.jgrid.jqID(l.p.id)+"_frozen").remove(),Ye(l.grid.fbDiv).height(Ye(l.grid.bDiv)[0].clientHeight);var e,i=[],t=(Ye("#"+Ye.jgrid.jqID(l.p.id)+" tr[role=row].jqgrow").each(function(){i.push(Ye(this).height())}),Ye("#"+Ye.jgrid.jqID(l.p.id)).clone(!0));Ye("tr[role=row]",t).each(function(){Ye("td[role=gridcell]",this).slice(l.p.frozenColCount+1).remove()}),Ye(t).width(1).attr("id",l.p.id+"_frozen"),Ye(l.grid.fbDiv).append(t),Ye("tr[role=row].jqgrow",t).each(function(e,t){var r;Ye(this).height(i[e]),.3<=Math.abs(Ye(this).height()-i[e])&&(r=Ye("td:visible",this).first()).height(i[e]-Math.round(parseFloat(r.css("border-bottom-width"))))}),l.rows[1]&&"norecs"===l.rows[1].id&&Ye("#norecs td",t).html(""),Ye(l.grid.fbDiv)[0].scrollTop=Ye(l.grid.bDiv)[0].scrollTop,!0===l.p.hoverrows&&(Ye("tr.jqgrow",t).hover(function(){Ye(this).addClass(u),Ye("#"+Ye.jgrid.jqID(this.id),"#"+Ye.jgrid.jqID(l.p.id)).addClass(u)},function(){Ye(this).removeClass(u),Ye("#"+Ye.jgrid.jqID(this.id),"#"+Ye.jgrid.jqID(l.p.id)).removeClass(u)}),Ye("tr.jqgrow","#"+Ye.jgrid.jqID(l.p.id)).hover(function(){Ye(this).addClass(u),Ye("#"+Ye.jgrid.jqID(this.id),"#"+Ye.jgrid.jqID(l.p.id)+"_frozen").addClass(u)},function(){Ye(this).removeClass(u),Ye("#"+Ye.jgrid.jqID(this.id),"#"+Ye.jgrid.jqID(l.p.id)+"_frozen").removeClass(u)})),l.p.headerrow&&(t=Ye(l.grid.hrDiv).position(),Ye("table",l.grid.fhrDiv).remove(),e=Ye(".ui-jqgrid-hrtable","#gview_"+Ye.jgrid.jqID(l.p.id)).clone(!0),Ye("tr",e).each(function(){Ye("td",this).slice(l.p.frozenColCount+1).remove()}),Ye(e).width(1),Ye(l.grid.fhrDiv).css("top",t.top+"px").append(e)),l.p.footerrow&&(t=Ye(l.grid.sDiv).position(),Ye("table",l.grid.fsDiv).remove(),e=Ye(".ui-jqgrid-ftable","#gview_"+Ye.jgrid.jqID(l.p.id)).clone(!0),Ye("tr",e).each(function(){Ye("td",this).slice(l.p.frozenColCount+1).remove()}),Ye(e).width(1),Ye(l.grid.fsDiv).css("top",t.top+"px").append(e))}),l.grid.hDiv.loading||Ye(l).triggerHandler("jqGridAfterGridComplete.setFrozenColumns"),l.p.frozenColumns=!0,Ye(l).triggerHandler("onFrozenColumnsCall"))}}})},destroyFrozenColumns:function(){return this.each(function(){var e,t,r;this.grid&&!0===this.p.frozenColumns&&(t=Ye(e=this).jqGrid("getStyleUI",e.p.styleUI+".common","hover",!0),Ye(e.grid.fhDiv).remove(),Ye(e.grid.fbDiv).remove(),e.grid.fhDiv=null,e.grid.fbDiv=null,e.p.footerrow&&(Ye(e.grid.fsDiv).remove(),e.grid.fsDiv=null),e.p.headerrow&&(Ye(e.grid.fhrDiv).remove(),e.grid.fhrDiv=null),Ye(this).off(".setFrozenColumns"),!0===e.p.hoverrows&&Ye("#"+Ye.jgrid.jqID(e.p.id)).on({mouseover:function(e){r=Ye(e.target).closest("tr.jqgrow"),"ui-subgrid"!==Ye(r).attr("class")&&Ye(r).addClass(t)},mouseout:function(e){r=Ye(e.target).closest("tr.jqgrow"),Ye(r).removeClass(t)}}),this.p.frozenColumns=!1,this.p.frozenColCount=-1)})},resizeColumn:function(n,l,s,d){return this.each(function(){var e,t,r=this.grid,i=this.p,o=i.colModel,a=o.length;if("boolean"!=typeof s&&(s=!1),"boolean"!=typeof d&&(d=!0),"string"==typeof n){for(e=0;e<a;e++)if(o[e].name===n){n=e;break}}else n=parseInt(n,10);if((o[n].resizable||s)&&!o[n].hidden&&(l=parseFloat(l),!("number"!=typeof n||n<0||n>o.length-1||"number"!=typeof l))){if(l<i.minColWidth&&(l=i.minColWidth),i.forceFit)for(i.nv=0,e=n+1;e<a;e++)if(!0!==o[e].hidden){i.nv=e-n;break}if(r.resizing={idx:n},t=l-r.headers[n].width,i.forceFit){if(r.headers[n+i.nv].width-t<i.minColWidth)return;r.headers[n+i.nv].newWidth=r.headers[n+i.nv].width-t}r.newWidth=i.tblwidth+t,r.headers[n].newWidth=l,r.dragEnd(!1,d)}})},getStyleUI:function(e,t,r,i){var o="",a="";try{var n=e.split(".");switch(r||(o="class=",a='"'),Ye.jgrid.isNull(i)&&(i=""),n.length){case 1:o+=a+Ye.jgrid.trim(i+" "+Ye.jgrid.styleUI[n[0]][t]+a);break;case 2:o+=a+Ye.jgrid.trim(i+" "+Ye.jgrid.styleUI[n[0]][n[1]][t]+a)}}catch(e){o=""}return o},resizeGrid:function(e,d,p,c){return this.each(function(){var l=this,s=!1;void 0===e&&(e=500),"boolean"!=typeof d&&(d=!0),"boolean"!=typeof p&&(p=!0),"boolean"!=typeof c&&(c=!0),setTimeout(function(){try{var e,t,r,i,o,a,n;l.p.frozenColumns&&c&&(Ye("#"+Ye.jgrid.jqID(l.p.id)).jqGrid("destroyFrozenColumns"),s=!0),d&&(e=Ye(window).width(),t=Ye("#gbox_"+Ye.jgrid.jqID(l.p.id)).parent().width(),r=l.p.width,r=3<e-t?t:e,Ye(l.grid.bDiv).css("max-height")&&["100%","auto"].includes(l.p.height)&&Ye(l.grid.bDiv).height()<Ye(l).height()?Ye("#"+Ye.jgrid.jqID(l.p.id)).jqGrid("setGridWidth",r+l.p.scrollOffset-2,!1,!1):Ye("#"+Ye.jgrid.jqID(l.p.id)).jqGrid("setGridWidth",r,l.p.shrinkToFit,!1)),"auto"!==l.p.height&&"100%"!==l.p.height&&p&&(n=l.p.height,i=-1===l.p.styleUI.search("Bootstrap")||isNaN(l.p.height)?0:2,n=3<(o=Ye(window).height())-(a=Ye("#gbox_"+Ye.jgrid.jqID(l.p.id)).parent().height())?a:o,Ye("#"+Ye.jgrid.jqID(l.p.id)).jqGrid("setGridHeight",n-i,!0,!1)),l.p.frozenRows&&Ye(l).trigger("jqGridAfterGridComplete.setFrozenRows"),s&&Ye("#"+Ye.jgrid.jqID(l.p.id)).jqGrid("setFrozenColumns")}catch(e){}},e)})},colMenuAdd:function(e,t){var r=this[0].p.styleUI,r=Ye.jgrid.styleUI[r].colmenu;return t=Ye.extend({title:"Item",icon:r.icon_new_item,funcname:null,position:"last",closeOnRun:!0,exclude:"",id:null,items:[]},t||{}),this.each(function(){t.colname="all"===e?"_all_":e;t.id=Ye.jgrid.isNull(t.id,!0)?Ye.jgrid.randId():t.id,this.p.colMenuCustom[t.id]=t})},colMenuDelete:function(e){return this.each(function(){this.p.colMenuCustom.hasOwnProperty(e)&&delete this.p.colMenuCustom[e]})},menubarAdd:function(o){var r,a,e=this[0].p.styleUI,n=Ye.jgrid.styleUI[e].common;return this.each(function(){var i=this;if(Array.isArray(o))for(var e=0;e<o.length;e++){(r=o[e]).id||(r.id=Ye.jgrid.randId());var t="";r.icon&&(t='<span class="'+n.icon_base+" "+r.icon+'"></span>'),r.position||(r.position="last"),r.closeoncall||(r.closeoncall=!0),r.divider?(a='<li class="ui-menu-item divider" role="separator"></li>',r.cick=null):a='<li class="ui-menu-item" role="presentation"><a id="'+r.id+'" class="g-menu-item" tabindex="0" role="menuitem" ><table class="ui-common-table"><tr><td class="menu_icon">'+t+'</td><td class="menu_text">'+r.title+"</td></tr></table></a></li>","last"===r.position?Ye("#"+this.p.id+"_menubar").append(a):Ye("#"+this.p.id+"_menubar").prepend(a)}Ye("li a","#"+this.p.id+"_menubar").each(function(e,r){Ye(o).each(function(e,t){if(t.id===r.id&&Ye.jgrid.isFunction(t.click))return Ye(r).on("click",function(e){t.click.call(i,e)}),!1}),Ye(this).hover(function(e){Ye(this).addClass(n.hover),e.stopPropagation()},function(e){Ye(this).removeClass(n.hover)})})})},menubarDelete:function(e){return this.each(function(){Ye("#"+e,"#"+this.p.id+"_menubar").remove()})},addColSearchMenu:function(){return this.each(function(){var e=this;Ye(e).colMenuAdd("sc",{title:"Reset",position:"first",id:"reset",funcname:function(){Ye("input[id^='jqs_']","#"+this.p.id).each(function(e){Ye(this).val("")}),Ye(this)[0].p._results={},Ye(this).jqGrid("showCol",this.p._avc)}}),Ye(e).colMenuAdd("sc",{separator:!0,id:"groupOp"}),Ye(e).colMenuAdd("sc",{separator:!0,id:"operOp"}),Ye(e).colMenuAdd("sc",{separator:!0,id:"close",funcname:function(){return!0}}),Ye(e).on("jqGridcolMenuBeforeProcess.custom",function(e,t){if("custom"===t.module&&"sc"===t.column){var r,i,o,a=Ye.jgrid.getRegional(this,"search"),n=this.p.searchColOptions,l=Ye.jgrid.getMethod("getStyleUI"),s=this.p.styleUI+".base";if("reset"===t.action.id&&(t.action.title=a.Reset||"Reset",t.action.icon=l(this.p.styleUI+".colmenu","icon_reset",!0,"")),"close"===t.action.id&&(t.action.title=a.Close||"Close",t.action.icon=l(this.p.styleUI+".colmenu","icon_close",!0,"")),"groupOp"===t.action.id){for(r=l(s,"searchSelect",!1,"search-col-input"),t.action.title=""+(a.Operand||"Operand: "),t.action.title+="<select data-grid-id="+this.p.id+' id="opselect"  '+r+">",r=l(this.p.styleUI+".colmenu","icon_group_op",!0,""),t.action.icon=r,i=0;i<a.groupOps.length;i++)o=n.searchOp===a.groupOps[i].op?"selected":"",t.action.title+='<option value="'+a.groupOps[i].op+'" '+o+">"+a.groupOps[i].text+"</option>";t.action.title+="</select>",setTimeout(function(){Ye("#opselect").on("change",function(){var e=Ye("#"+Ye(this).attr("data-grid-id"))[0];e.p.searchColOptions.searchOp=Ye(this).val(),Ye.jgrid.myfunc(e.p.id)})},200)}if("operOp"===t.action.id){for(r=l(s,"searchSelect",!1,"search-col-input"),t.action.title=a.Operation||"Oper : ",t.action.title+="<select data-grid-id="+this.p.id+' id="selectoper"  '+r+">",r=l(this.p.styleUI+".colmenu","icon_oper_op",!0,""),t.action.icon=r,i=0;i<a.odata.length;i++)o=n.operand===a.odata[i].oper?"selected":"",n.aOperands.includes(a.odata[i].oper)&&(t.action.title+='<option value="'+a.odata[i].oper+'" '+o+">"+a.odata[i].text+"</option>");t.action.title+="</select>",setTimeout(function(){Ye("#selectoper").on("change",function(){var e=Ye("#"+Ye(this).attr("data-grid-id"))[0];e.p.searchColOptions.operand=Ye(this).val(),Ye.jgrid.myfunc(e.p.id)})},200)}}})})},disableColMenu:function(e){return this.each(function(){Ye(this.grid.hDiv).find("tr #jqgh_"+this.p.id+"_"+e+" > .colmenu").css("display","none")})},enableColMenu:function(e){return this.each(function(){Ye(this.grid.hDiv).find("tr #jqgh_"+this.p.id+"_"+e+" > .colmenu").css("display","inline")})}}),Ye.jgrid.extend({editCell:function(c,u,h,g,f){return this.each(function(){var e,t,r,i=this,o=Ye(this).jqGrid("getStyleUI",i.p.styleUI+".common","highlight",!0),a=Ye(this).jqGrid("getStyleUI",i.p.styleUI+".common","disabled",!0),n=i.p.ariaBody?"":Ye(this).jqGrid("getStyleUI",i.p.styleUI+".common","hover",!0),l=Ye(this).jqGrid("getStyleUI",i.p.styleUI+".celledit","inputClass",!0),s=Ye(this).jqGrid("getStyleUI",i.p.styleUI+".celledit","selectClass",!0);if(i.grid&&!0===i.p.cellEdit&&!Ye(i.rows[c]).hasClass(a)){if(u=parseInt(u,10),i.p.selrow=i.rows[c].id,i.p.knv||i.p.ariaBody||Ye(i).jqGrid("GridNav"),0<i.p.savedRow.length){if(!0===h&&c==i.p.iRow&&u==i.p.iCol)return;Ye(i).jqGrid("saveCell",i.p.savedRow[0].id,i.p.savedRow[0].ic)}else window.setTimeout(function(){Ye("#"+Ye.jgrid.jqID(i.p.knv)).attr("tabindex","-1").focus()},1);if("subgrid"!==(e=(a=i.p.colModel[u]).name)&&"cb"!==e&&"rn"!==e&&"sc"!==e){try{r=Ye(i.rows[c].cells[u])}catch(e){r=Ye("td",i.rows[c]).eq(u)}if(0<=parseInt(i.p.iCol,10)&&0<=parseInt(i.p.iRow,10)&&void 0!==i.p.iRowId&&(d=Ye(i).jqGrid("getGridRowById",i.p.iRowId),Ye(d).removeClass("selected-row "+n).find("td").eq(i.p.iCol).removeClass("edit-cell "+o)),r.addClass("edit-cell "+o),Ye(i.rows[c]).addClass("selected-row "+n),!0!==a.editable||!0!==h||r.hasClass("not-editable-cell")||Ye.jgrid.isFunction(i.p.isCellEditable)&&!i.p.isCellEditable.call(i,e,c,u))t=r.html().replace(/\&#160\;/gi,""),Ye(i).triggerHandler("jqGridCellSelect",[i.rows[c].id,u,t,g]),Ye.jgrid.isFunction(i.p.onCellSelect)&&i.p.onCellSelect.call(i,i.rows[c].id,u,t,g);else{try{t=Ye.unformat.call(i,r,{rowId:i.rows[c].id,colModel:a},u)}catch(e){t=a.edittype&&"textarea"===a.edittype?r.text():r.html()}i.p.autoencode&&(t=Ye.jgrid.htmlDecode(t)),a.edittype||(a.edittype="text"),i.p.savedRow.push({id:c,ic:u,name:e,v:t,rowId:i.rows[c].id});try{("&nbsp;"===t||"&#160;"===t||1===t.length&&160===t.charCodeAt(0))&&(t="")}catch(e){}Ye.jgrid.isFunction(i.p.formatCell)&&void 0!==(d=i.p.formatCell.call(i,i.rows[c].id,e,t,c,u))&&(t=d),Ye(i).triggerHandler("jqGridBeforeEditCell",[i.rows[c].id,e,t,c,u]),Ye.jgrid.isFunction(i.p.beforeEditCell)&&i.p.beforeEditCell.call(i,i.rows[c].id,e,t,c,u);var d,o=Ye.extend({},a.editoptions||{},{id:c+"_"+e,name:e,rowId:i.rows[c].id,oper:"edit",module:"cell"}),p=(f&&(t=g.key),Ye.jgrid.createEl.call(i,a.edittype,o,t,!0,Ye.extend({},Ye.jgrid.ajaxOptions,i.p.ajaxSelectOptions||{})));-1<Ye.inArray(a.edittype,["text","textarea","password"])?Ye(p).addClass(l):"select"===a.edittype&&Ye(p).addClass(s),r.html("").append(p).attr("tabindex","0"),Ye.jgrid.bindEv.call(i,p,o),window.setTimeout(function(){Ye(p).focus()},1),Ye("input, select, textarea",r).on("keydown",function(e){var t=e.key;if(27===e.keyCode&&(!(0<Ye("input.hasDatepicker",r).length)||Ye(".ui-datepicker").is(":hidden")?Ye(i).jqGrid("restoreCell",c,u):Ye("input.hasDatepicker",r).datepicker("hide")),13===e.keyCode&&e.altKey&&"TEXTAREA"===this.nodeName)return this.value=this.value+"\r",e.preventDefault(),!0;if(13===e.keyCode&&!e.shiftKey)return e.preventDefault(),Ye(i).jqGrid("saveCell",c,u),c<i.rows.length-1&&f&&Ye(i).jqGrid("focusBodyCell",c+1,u),!1;if(9===e.keyCode&&!f){if(i.grid.hDiv.loading)return!1;e.shiftKey?i.p.ariaBody?(Ye(i).jqGrid("saveCell",c,u),1<u&&Ye(i).jqGrid("focusBodyCell",c,u-1)):!Ye(i).jqGrid("prevCell",c,u,e)&&i.p.editNextRowCell&&0<c-1&&i.rows[c-1]&&(c--,Ye(i).jqGrid("prevCell",c,i.p.colModel.length,e)):i.p.ariaBody?(Ye(i).jqGrid("saveCell",c,u),u<i.p.colModel.length-1&&Ye(i).jqGrid("focusBodyCell",c,u+1)):!Ye(i).jqGrid("nextCell",c,u,e)&&i.p.editNextRowCell&&i.rows[c+1]&&(c++,Ye(i).jqGrid("nextCell",c,0,e))}!f&&i.p.F2key&&i.p.ariaBody&&"F2"===e.key&&(Ye(i).jqGrid("saveCell",c,u),Ye(i).jqGrid("focusBodyCell",c,u),i.p.F2key=!1),f&&("ArrowUp"===t&&(Ye(i).jqGrid("saveCell",c,u),1<c)&&Ye(i).jqGrid("focusBodyCell",c-1,u),"ArrowDown"===t&&(Ye(i).jqGrid("saveCell",c,u),c<i.p.rows.length-1)&&Ye(i).jqGrid("focusBodyCell",c+1,u),"ArrowLeft"===t&&(Ye(i).jqGrid("saveCell",c,u),1<u)&&Ye(i).jqGrid("focusBodyCell",c,u-1),"ArrowRight"===t&&(Ye(i).jqGrid("saveCell",c,u),u<i.p.colModel.length-1)&&Ye(i).jqGrid("focusBodyCell",c,u+1),9===e.keyCode)&&(Ye(i).jqGrid("saveCell",c,u),e.shiftKey?1<u&&Ye(i).jqGrid("focusBodyCell",c,u-1):u<i.p.colModel.length-1&&Ye(i).jqGrid("focusBodyCell",c,u+1)),e.stopPropagation()}),Ye(i).triggerHandler("jqGridAfterEditCell",[i.rows[c].id,e,t,c,u]),Ye.jgrid.isFunction(i.p.afterEditCell)&&i.p.afterEditCell.call(i,i.rows[c].id,e,t,c,u)}i.p.iCol=u,i.p.iRow=c,i.p.iRowId=i.rows[c].id}}})},saveCell:function(w,x,_){return this.each(function(){var o=this,e=o.p.colModel[x],a=e.name,n=Ye(o).jqGrid("getGridRowById",o.rows[w].id),l=Ye("td",n).eq(x),s=(void 0!==_&&(i=Ye.unformat.call(o,l,{rowId:o.rows[w].id,colModel:e},x),o.p.savedRow.push({id:w,ic:x,name:a,v:i,rowId:o.rows[w].id}),o.p.savedValues={oldvalue:i,newvalue:_,indexRow:w}),1<=o.p.savedRow.length?0:null),d=Ye.jgrid.getRegional(this,"errors"),p=Ye.jgrid.getRegional(this,"edit");if(o.grid&&!0===o.p.cellEdit){if(null!==s){var c=Ye.jgrid.jqID(a),u=Ye(l).offset();if(void 0===_)switch(e.edittype){case"select":var r,h,g=e.editoptions.multiple?(t=Ye("#"+w+"_"+c,n),r=[],(h=Ye(t).val())?h.join(","):h="",Ye("option:selected",t).each(function(e,t){r[e]=Ye(t).text()}),r.join(",")):(h=Ye("#"+w+"_"+c+" option:selected",n).val(),Ye("#"+w+"_"+c+" option:selected",n).text());e.formatter&&(g=h);break;case"checkbox":var t=["Yes","No"];e.editoptions&&e.editoptions.value&&(t=e.editoptions.value.split(":")),h=Ye("#"+w+"_"+c,n).is(":checked")?t[0]:t[1],g=h;break;case"password":case"text":case"textarea":case"button":h=Ye("#"+w+"_"+c,n).val(),g=h;break;case"custom":try{if(!e.editoptions||!Ye.jgrid.isFunction(e.editoptions.custom_value))throw"e1";if(void 0===(h=e.editoptions.custom_value.call(o,Ye(".customelement",l),"get")))throw"e2";g=h}catch(e){"e1"===e?Ye.jgrid.info_dialog(d.errcap,"function 'custom_value' "+p.msg.nodefined,p.bClose,{styleUI:o.p.styleUI}):"e2"===e?Ye.jgrid.info_dialog(d.errcap,"function 'custom_value' "+p.msg.novalue,p.bClose,{styleUI:o.p.styleUI}):Ye.jgrid.info_dialog(d.errcap,e.message,p.bClose,{styleUI:o.p.styleUI})}}else{if(!0!==e.editable||l.hasClass("not-editable-cell")||Ye.jgrid.isFunction(o.p.isCellEditable)&&!o.p.isCellEditable.call(o,a,w,x))return g=h=_,void o.p.savedRow.splice(0,1);g=h=_}if(g!==o.p.savedRow[s].v){var i=Ye(o).triggerHandler("jqGridBeforeSaveCell",[o.p.savedRow[s].rowId,a,h,w,x]),f=(i&&(g=h=i),Ye.jgrid.isFunction(o.p.beforeSaveCell)&&(i=o.p.beforeSaveCell.call(o,o.p.savedRow[s].rowId,a,h,w,x))&&(g=h=i),Ye.jgrid.checkValues.call(o,h,x)),m=!1;if(!0===f[0]){var i=Ye(o).triggerHandler("jqGridBeforeSubmitCell",[o.p.savedRow[s].rowId,a,h,w,x])||{},v=(Ye.jgrid.isFunction(o.p.beforeSubmitCell)&&(i=(i=o.p.beforeSubmitCell.call(o,o.p.savedRow[s].rowId,a,h,w,x))||{}),Ye(o).triggerHandler("jqGridOnSubmitCell",[o.p.savedRow[s].rowId,a,h,w,x]));if(void 0===v&&(v=!0),!1===(v=Ye.jgrid.isFunction(o.p.onSubmitCell)&&void 0===(v=o.p.onSubmitCell(o.p.savedRow[s].rowId,a,h,w,x))?!0:v))return;0<Ye("input.hasDatepicker",l).length&&Ye("input.hasDatepicker",l).datepicker("hide");var j={};if("remote"===o.p.cellsubmit)if(o.p.cellurl){o.p.autoencode&&(h=Ye.jgrid.htmlEncode(h)),e.editoptions&&e.editoptions.NullIfEmpty&&""===h&&(h="null",m=!0),j[a]=h;var v=o.p.prmNames,b=v.id,y=v.oper;j[b]=Ye.jgrid.stripPref(o.p.idPrefix,o.p.savedRow[s].rowId),j[y]=v.editoper,j=Ye.extend(i,j),Ye(o).jqGrid("progressBar",{method:"show",loadtype:o.p.loadui,htmlcontent:Ye.jgrid.getRegional(o,"defaults.savetext")}),o.grid.hDiv.loading=!0,Ye.ajax(Ye.extend({url:o.p.cellurl,data:Ye.jgrid.isFunction(o.p.serializeCellData)?o.p.serializeCellData.call(o,j,a):j,type:"POST",success:function(e,t,r){var i;Ye(o).jqGrid("progressBar",{method:"hide",loadtype:o.p.loadui}),o.grid.hDiv.loading=!1,"success"===t&&(!0===(i=!0===(i=Ye(o).triggerHandler("jqGridAfterSubmitCell",[o,r,j[b],a,h,w,x])||[!0,""])[0]&&Ye.jgrid.isFunction(o.p.afterSubmitCell)?o.p.afterSubmitCell.call(o,r,j[b],a,h,w,x):i)[0]?(m&&(h=""),Ye(l).empty(),Ye(o).jqGrid("setCell",o.p.savedRow[s].rowId,x,g,!1,!1,!0),l=Ye("td",n).eq(x),Ye(l).addClass("dirty-cell"),Ye(n).addClass("edited"),Ye(o).triggerHandler("jqGridAfterSaveCell",[o.p.savedRow[s].rowId,a,h,w,x]),Ye.jgrid.isFunction(o.p.afterSaveCell)&&o.p.afterSaveCell.call(o,o.p.savedRow[s].rowId,a,h,w,x),o.p.savedRow.splice(0,1)):(Ye(o).triggerHandler("jqGridErrorCell",[r,t]),Ye.jgrid.isFunction(o.p.errorCell)?o.p.errorCell.call(o,r,t):Ye.jgrid.info_dialog(d.errcap,i[1],p.bClose,{styleUI:o.p.styleUI,top:u.top+30,left:u.left,onClose:function(){o.p.restoreCellonFail||Ye("#"+w+"_"+c,n).focus()}}),o.p.restoreCellonFail&&Ye(o).jqGrid("restoreCell",w,x)))},error:function(e,t,r){Ye("#lui_"+Ye.jgrid.jqID(o.p.id)).hide(),o.grid.hDiv.loading=!1,Ye(o).triggerHandler("jqGridErrorCell",[e,t,r]),Ye.jgrid.isFunction(o.p.errorCell)?o.p.errorCell.call(o,e,t,r):Ye.jgrid.info_dialog(d.errcap,e.status+" : "+e.statusText+"<br/>"+t,p.bClose,{styleUI:o.p.styleUI,top:u.top+30,left:u.left,onClose:function(){o.p.restoreCellonFail||Ye("#"+w+"_"+c,n).focus()}}),o.p.restoreCellonFail&&Ye(o).jqGrid("restoreCell",w,x)}},Ye.jgrid.ajaxOptions,o.p.ajaxCellOptions||{}))}else try{Ye.jgrid.info_dialog(d.errcap,d.nourl,p.bClose,{styleUI:o.p.styleUI}),o.p.restoreCellonFail&&Ye(o).jqGrid("restoreCell",w,x)}catch(e){}"clientArray"===o.p.cellsubmit?(Ye(l).empty(),Ye(o).jqGrid("setCell",o.p.savedRow[s].rowId,x,g,!1,!1,!0),l=Ye("td",n).eq(x),Ye(l).addClass("dirty-cell"),Ye(n).addClass("edited"),Ye(o).triggerHandler("jqGridAfterSaveCell",[o.p.savedRow[s].rowId,a,h,w,x]),Ye.jgrid.isFunction(o.p.afterSaveCell)&&o.p.afterSaveCell.call(o,o.p.savedRow[s].rowId,a,h,w,x),o.p.savedRow.splice(0,1)):"storage"===o.p.cellsubmit&&((j=o.p.savedRow[s])[a]=h,j[o.p.keyName]=Ye.jgrid.stripPref(o.p.idPrefix,o.p.savedRow[s].rowId),Ye(o).jqGrid("updateStorageRecord",j).then(function(e){"complete"===e.type&&(Ye(l).empty(),Ye(o).jqGrid("setCell",o.p.savedRow[s].rowId,x,g,!1,!1,!0),l=Ye("td",n).eq(x),Ye(l).addClass("dirty-cell"),Ye(n).addClass("edited"),Ye(o).triggerHandler("jqGridAfterSaveCell",[o.p.savedRow[s].rowId,a,h,w,x]),Ye.jgrid.isFunction(o.p.afterSaveCell)&&o.p.afterSaveCell.call(o,o.p.savedRow[s].rowId,a,h,w,x),o.p.savedRow.splice(0,1))}).catch(function(e){Ye.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")}))}else try{Ye.jgrid.isFunction(o.p.validationCell)?o.p.validationCell.call(o,Ye("#"+w+"_"+c,n),f[1],w,x):(window.setTimeout(function(){Ye.jgrid.info_dialog(d.errcap,h+" "+f[1],p.bClose,{styleUI:o.p.styleUI,top:u.top+30,left:u.left,onClose:function(){o.p.restoreCellonFail||Ye("#"+w+"_"+c,n).focus()}})},50),o.p.restoreCellonFail&&Ye(o).jqGrid("restoreCell",w,x))}catch(e){alert(f[1])}}else Ye(o).jqGrid("restoreCell",w,x)}window.setTimeout(function(){Ye("#"+Ye.jgrid.jqID(o.p.knv)).attr("tabindex","-1").focus(),o.p.ariaBody&&Ye(o).jqGrid("focusBodyCell",o.p.iRow,o.p.iCol)},0)}})},restoreCell:function(i,o){return this.each(function(){var e=this,t=1<=e.p.savedRow.length?0:null;if(e.grid&&!0===e.p.cellEdit){if(null!==t){var r=Ye(e).jqGrid("getGridRowById",e.p.savedRow[t].rowId),r=Ye("td",r).eq(o);if(Ye.jgrid.isFunction(Ye.fn.datepicker))try{Ye("input.hasDatepicker",r).datepicker("hide")}catch(e){}Ye(r).empty().attr("tabindex","-1"),Ye(e).jqGrid("setCell",e.p.savedRow[0].rowId,o,e.p.savedRow[t].v,!1,!1,!0),Ye(e).triggerHandler("jqGridAfterRestoreCell",[e.p.savedRow[t].rowId,e.p.savedRow[t].v,i,o]),Ye.jgrid.isFunction(e.p.afterRestoreCell)&&e.p.afterRestoreCell.call(e,e.p.savedRow[t].rowId,e.p.savedRow[t].v,i,o),e.p.savedRow.splice(0,1)}window.setTimeout(function(){Ye("#"+e.p.knv).attr("tabindex","-1").focus(),e.p.ariaBody&&Ye(e).jqGrid("focusBodyCell",e.p.iRow,e.p.iCol)},0)}})},nextCell:function(i,o,a){var n;return this.each(function(){var e,t=this,r=!1;if(t.grid&&!0===t.p.cellEdit){for(e=o+1;e<t.p.colModel.length;e++)if(!0===t.p.colModel[e].editable&&(!Ye.jgrid.isFunction(t.p.isCellEditable)||t.p.isCellEditable.call(t,t.p.colModel[e].name,i,e))){r=e;break}!1!==r?(n=!0,Ye(t).jqGrid("editCell",i,r,!0,a)):(n=!1,0<t.p.savedRow.length&&Ye(t).jqGrid("saveCell",i,o))}}),n},prevCell:function(i,o,a){var n;return this.each(function(){var e,t=this,r=!1;if(!t.grid||!0!==t.p.cellEdit)return!1;for(e=o-1;0<=e;e--)if(!0===t.p.colModel[e].editable&&(!Ye.jgrid.isFunction(t.p.isCellEditable)||t.p.isCellEditable.call(t,t.p.colModel[e].name,i,e))){r=e;break}!1!==r?(n=!0,Ye(t).jqGrid("editCell",i,r,!0,a)):(n=!1,0<t.p.savedRow.length&&Ye(t).jqGrid("saveCell",i,o))}),n},GridNav:function(){return this.each(function(){var e,t,r,l=this;function i(e,t,r){var i,o,a,n;"v"===r.slice(0,1)&&(i=Ye(l.grid.bDiv)[0].clientHeight,n=Ye(l.grid.bDiv)[0].scrollTop,o=l.rows[e].offsetTop+l.rows[e].clientHeight,a=l.rows[e].offsetTop,"vd"===r&&i<=o&&(Ye(l.grid.bDiv)[0].scrollTop=Ye(l.grid.bDiv)[0].scrollTop+l.rows[e].clientHeight),"vu"===r)&&a<n&&(Ye(l.grid.bDiv)[0].scrollTop=Ye(l.grid.bDiv)[0].scrollTop-l.rows[e].clientHeight),"h"===r&&(i=Ye(l.grid.bDiv)[0].clientWidth,o=Ye(l.grid.bDiv)[0].scrollLeft,a=l.rows[e].cells[t].offsetLeft+l.rows[e].cells[t].clientWidth,n=l.rows[e].cells[t].offsetLeft,a>=i+parseInt(o,10)?Ye(l.grid.bDiv)[0].scrollLeft=Ye(l.grid.bDiv)[0].scrollLeft+l.rows[e].cells[t].clientWidth:n<o&&(Ye(l.grid.bDiv)[0].scrollLeft=Ye(l.grid.bDiv)[0].scrollLeft-l.rows[e].cells[t].clientWidth))}function o(e,t){var r,i;if("lft"===t)for(r=e+1,i=e;0<=i;i--)if(!0!==l.p.colModel[i].hidden){r=i;break}if("rgt"===t)for(r=e-1,i=e;i<l.p.colModel.length;i++)if(!0!==l.p.colModel[i].hidden){r=i;break}return r}l.grid&&!0===l.p.cellEdit&&(l.p.knv=l.p.id+"_kn",e=Ye("<div style='position:fixed;top:0px;width:1px;height:1px;' tabindex='0'><div tabindex='-1' style='width:1px;height:1px;' id='"+l.p.knv+"'></div></div>"),Ye(e).insertBefore(l.grid.cDiv),Ye("#"+l.p.knv).focus().keydown(function(e){switch(r=e.keyCode,"rtl"===l.p.direction&&(37===r?r=39:39===r&&(r=37)),r){case 38:0<l.p.iRow-1&&(i(l.p.iRow-1,l.p.iCol,"vu"),Ye(l).jqGrid("editCell",l.p.iRow-1,l.p.iCol,!1,e));break;case 40:l.p.iRow+1<=l.rows.length-1&&(i(l.p.iRow+1,l.p.iCol,"vd"),Ye(l).jqGrid("editCell",l.p.iRow+1,l.p.iCol,!1,e));break;case 37:0<=l.p.iCol-1&&(t=o(l.p.iCol-1,"lft"),i(l.p.iRow,t,"h"),Ye(l).jqGrid("editCell",l.p.iRow,t,!1,e));break;case 39:l.p.iCol+1<=l.p.colModel.length-1&&(t=o(l.p.iCol+1,"rgt"),i(l.p.iRow,t,"h"),Ye(l).jqGrid("editCell",l.p.iRow,t,!1,e));break;case 13:0<=parseInt(l.p.iCol,10)&&0<=parseInt(l.p.iRow,10)&&(e.preventDefault(),Ye(l).jqGrid("editCell",l.p.iRow,l.p.iCol,!0,e));break;default:return!0}return!1}))})},getChangedCells:function(a){var e=[];return a=a||"all",this.each(function(){var i,o=this;o.grid&&!0===o.p.cellEdit&&Ye(o.rows).each(function(t){var r={};Ye(this).hasClass("edited")&&(Ye("td",this).each(function(e){if("cb"!==(i=o.p.colModel[e].name)&&"subgrid"!==i&&"sc"!==i)if("dirty"===a){if(Ye(this).hasClass("dirty-cell"))try{r[i]=Ye.unformat.call(o,this,{rowId:o.rows[t].id,colModel:o.p.colModel[e]},e)}catch(e){r[i]=Ye.jgrid.htmlDecode(Ye(this).html())}}else try{r[i]=Ye.unformat.call(o,this,{rowId:o.rows[t].id,colModel:o.p.colModel[e]},e)}catch(e){r[i]=Ye.jgrid.htmlDecode(Ye(this).html())}}),r.id=this.id,e.push(r))})}),e}}),Ye.extend(Ye.jgrid,{showModal:function(e){e.w.show()},closeModal:function(e){e.w.hide().attr("aria-hidden","true"),e.o&&e.o.remove()},hideModal:function(e,t){var r,i,o=!(!(t=Ye.extend({jqm:!0,gb:"",removemodal:!1,formprop:!1,form:""},t||{})).gb||"string"!=typeof t.gb||"#gbox_"!==t.gb.slice(0,6))&&Ye("#"+t.gb.slice(6))[0];if(t.onClose){var a=o?t.onClose.call(o,e):t.onClose(e);if("boolean"==typeof a&&!a)return}if(t.formprop&&o&&t.form&&("edit"===t.form?(r="#"+Ye.jgrid.jqID("FrmGrid_"+t.gb.slice(6)),i="formProp"):"view"===t.form&&(r="#"+Ye.jgrid.jqID("ViewGrid_"+t.gb.slice(6)),i="viewProp"),Ye(o).data(i,{top:Ye.jgrid.floatNum(Ye(e).css("top")),left:Ye.jgrid.floatNum(Ye(e).css("left")),width:Ye.jgrid.floatNum(Ye(e)[0].style.width),height:Ye.jgrid.floatNum(Ye(e)[0].style.height),dataheight:Ye(r).height(),datawidth:Ye(r).width()})),Ye.fn.jqm&&!0===t.jqm)Ye(e).attr("aria-hidden","true").jqmHide();else{if(""!==t.gb)try{Ye(t.gb).find(".jqgrid-overlay").first().hide()}catch(e){}try{Ye(".jqgrid-overlay-modal").hide()}catch(e){}Ye(e).hide().attr("aria-hidden","true")}t.removemodal&&Ye(e).remove()},findPos:function(e){e=Ye(e).offset();return[e.left,e.top]},createModal:function(r,e,i,t,o,a,n){i=Ye.extend(!0,{},Ye.jgrid.jqModal||{},i);var l=this,s="rtl"===Ye(i.gbox).attr("dir"),d=Ye.jgrid.styleUI[i.styleUI||"jQueryUI"].modal,p=Ye.jgrid.styleUI[i.styleUI||"jQueryUI"].common,c=document.createElement("div"),u=(n=Ye.extend({},n||{}),c.className="ui-jqdialog "+d.modal,c.id=r.themodal,document.createElement("div")),h=(u.className="ui-jqdialog-titlebar "+d.header,u.id=r.modalhead,Ye(u).append("<span class='ui-jqdialog-title "+d.title+"'>"+i.caption+"</span>"),Ye("<a class='ui-jqdialog-titlebar-close "+p.cornerall+"' aria-label='Close'></a>").hover(function(){h.addClass(p.hover)},function(){h.removeClass(p.hover)}).append("<span class='"+p.icon_base+" "+d.icon_close+"'></span>")),g=(Ye(u).append(h),s?(c.dir="rtl",Ye(".ui-jqdialog-title",u).css("float","right"),Ye(".ui-jqdialog-titlebar-close",u).css("left","0.3em")):(c.dir="ltr",Ye(".ui-jqdialog-title",u).css("float","left"),Ye(".ui-jqdialog-titlebar-close",u).css("right","0.3em")),document.createElement("div")),e=(Ye(g).addClass("ui-jqdialog-content "+d.content).attr("id",r.modalcontent),Ye(g).append(e),c.appendChild(g),Ye(c).prepend(u),!0===a?Ye("body").append(c):"string"==typeof a?Ye(a).append(c):Ye(c).insertBefore(t),Ye(c).css(n),void 0===i.jqModal&&(i.jqModal=!0),{});if(Ye.fn.jqm&&!0===i.jqModal?(0===i.left&&0===i.top&&i.overlay&&(g=[],g=Ye.jgrid.findPos(o),i.left=g[0]+4,i.top=g[1]+4,s)&&!a&&(i.left=Ye(i.gbox).outerWidth()-(isNaN(i.width)?300:parseInt(i.width,10))),e.top=i.top+"px",e.left=i.left+"px"):0===i.left&&0===i.top||(e.left=i.left+"px",e.top=i.top+"px"),Ye("a.ui-jqdialog-titlebar-close",u).click(function(){var e=Ye("#"+Ye.jgrid.jqID(r.themodal)).data("onClose")||i.onClose,t=Ye("#"+Ye.jgrid.jqID(r.themodal)).data("gbox")||i.gbox;return l.hideModal("#"+Ye.jgrid.jqID(r.themodal),{gb:t,jqm:i.jqModal,onClose:e,removemodal:i.removemodal||!1,formprop:!i.recreateForm||!1,form:i.form||""}),!1}),0!==i.width&&i.width||(i.width=300),0!==i.height&&i.height||(i.height=200),i.zIndex||(n=Ye(t).parents("*[role=dialog]").first().css("z-index"),i.zIndex=n?parseInt(n,10)+2:950),Ye(c).css(Ye.extend({width:isNaN(i.width)?"auto":i.width+"px",height:isNaN(i.height)?"auto":i.height+"px",zIndex:i.zIndex,overflow:"hidden"},e)).attr({tabIndex:"-1",role:"dialog","aria-labelledby":r.modalhead,"aria-hidden":"true"}),void 0===i.drag&&(i.drag=!0),void 0===i.resize&&(i.resize=!0),i.drag)if(Ye(u).css("cursor","move"),Ye.fn.tinyDraggable)Ye(c).tinyDraggable({handle:"#"+Ye.jgrid.jqID(u.id)});else try{Ye(c).draggable({handle:Ye("#"+Ye.jgrid.jqID(u.id))})}catch(e){}if(i.resize)if(Ye.fn.jqResize)Ye(c).append("<div class='jqResize "+d.resizable+" "+p.icon_base+" "+d.icon_resizable+"'></div>"),Ye("#"+Ye.jgrid.jqID(r.themodal)).jqResize(".jqResize",!!r.scrollelm&&"#"+Ye.jgrid.jqID(r.scrollelm));else try{Ye(c).resizable({handles:"se, sw",alsoResize:!!r.scrollelm&&"#"+Ye.jgrid.jqID(r.scrollelm)})}catch(e){}!0===i.closeOnEscape&&Ye(c).keydown(function(e){27===e.which&&(e=Ye("#"+Ye.jgrid.jqID(r.themodal)).data("onClose")||i.onClose,l.hideModal("#"+Ye.jgrid.jqID(r.themodal),{gb:i.gbox,jqm:i.jqModal,onClose:e,removemodal:i.removemodal||!1,formprop:!i.recreateForm||!1,form:i.form||""}))})},viewModal:function(e,t){var r="";if((t=Ye.extend({toTop:!0,overlay:10,modal:!1,overlayClass:"ui-widget-overlay",onShow:Ye.jgrid.showModal,onHide:Ye.jgrid.closeModal,gbox:"",jqm:!0,jqM:!0},t||{})).gbox){var i=Ye("#"+t.gbox.substring(6))[0];try{r=Ye(i).jqGrid("getStyleUI",i.p.styleUI+".common","overlay",!1,"jqgrid-overlay-modal"),t.overlayClass=Ye(i).jqGrid("getStyleUI",i.p.styleUI+".common","overlay",!0)}catch(e){}}if(void 0===t.focusField&&(t.focusField=0),"number"==typeof t.focusField&&0<=t.focusField?t.focusField=parseInt(t.focusField,10):"boolean"!=typeof t.focusField||t.focusField?t.focusField=0:t.focusField=!1,Ye.fn.jqm&&!0===t.jqm)(t.jqM?Ye(e).attr("aria-hidden","false").jqm(t):Ye(e).attr("aria-hidden","false")).jqmShow();else if(""!==t.gbox&&(i=parseInt(Ye(e).css("z-index"))-1,t.modal?(Ye(".jqgrid-overlay-modal")[0]||Ye("body").prepend("<div "+r+"></div>"),Ye(".jqgrid-overlay-modal").css("z-index",i).show()):(Ye(t.gbox).find(".jqgrid-overlay").first().css("z-index",i).show(),Ye(e).data("gbox",t.gbox))),Ye(e).show().attr("aria-hidden","false"),0<=t.focusField)try{Ye(":input:visible",e)[t.focusField].focus()}catch(e){}},info_dialog:function(e,t,r,i){var o,a={width:350,height:"auto",dataheight:"auto",drag:!0,resize:!1,left:window.innerWidth/2-145,top:window.innerHeight/2-150,zIndex:1e3,jqModal:!0,modal:!1,closeOnEscape:!0,align:"center",buttonalign:"center",buttons:[],overlay:10,overlayClass:""},n=(Ye.extend(!0,a,Ye.jgrid.jqModal||{},{caption:"<b>"+e+"</b>"},i||{}),a.jqModal),l=this,e=Ye.jgrid.styleUI[a.styleUI||Ye.jgrid.defaults.styleUI||"jQueryUI"].modal,s=Ye.jgrid.styleUI[a.styleUI||Ye.jgrid.defaults.styleUI||"jQueryUI"].common,d=(a.overlayClass||(a.overlayClass=s.overlay),Ye.fn.jqm&&!n&&(n=!1),"");if(0<a.buttons.length)for(o=0;o<a.buttons.length;o++)void 0===a.buttons[o].id&&(a.buttons[o].id="info_button_"+o),d+="<a id='"+a.buttons[o].id+"' class='fm-button "+s.button+"'>"+a.buttons[o].text+"</a>";var i=isNaN(a.dataheight)?a.dataheight:a.dataheight+"px",p="text-align:"+a.align+";",c="<div id='info_id'>",c=(c+="<div id='infocnt' class='"+e.body+"' style='margin:0px;padding-bottom:1em;width:100%;overflow:auto;position:relative;height:"+i+";"+p+"'>"+t+"</div>")+(r?"<div class='"+e.footer+"' style='text-align:"+a.buttonalign+";padding-bottom:0.8em;padding-top:0.5em;background-image: none;border-width: 1px 0 0 0;'><a id='closedialog' class='fm-button "+s.button+"'>"+r+"</a>"+d+"</div>":""!==d?"<div class='"+e.footer+"' style='text-align:"+a.buttonalign+";padding-bottom:0.8em;padding-top:0.5em;background-image: none;border-width: 1px 0 0 0;'>"+d+"</div>":"")+"</div>";try{"false"===Ye("#info_dialog").attr("aria-hidden")&&Ye.jgrid.hideModal("#info_dialog",{jqm:n}),Ye("#info_dialog").remove()}catch(e){}i=Ye(".ui-jqgrid").css("font-size")||"11px";Ye.jgrid.createModal({themodal:"info_dialog",modalhead:"info_head",modalcontent:"info_content",scrollelm:"infocnt"},c,a,"","",!0,{"font-size":i}),d&&Ye.each(a.buttons,function(e){Ye("#"+Ye.jgrid.jqID(this.id),"#info_id").on("click",function(){return a.buttons[e].onClick.call(Ye("#info_dialog")),!1})}),Ye("#closedialog","#info_id").on("click",function(){return l.hideModal("#info_dialog",{jqm:n,onClose:Ye("#info_dialog").data("onClose")||a.onClose,gb:Ye("#info_dialog").data("gbox")||a.gbox}),!1}),Ye(".fm-button","#info_dialog").hover(function(){Ye(this).addClass(s.hover)},function(){Ye(this).removeClass(s.hover)}),Ye.jgrid.isFunction(a.beforeOpen)&&a.beforeOpen(),Ye.jgrid.viewModal("#info_dialog",{onHide:function(e){e.w.hide().remove(),e.o&&e.o.remove()},modal:a.modal,jqm:n,overlay:a.overlay,overlayClass:a.overlayClass}),Ye.jgrid.isFunction(a.afterOpen)&&a.afterOpen();try{Ye("#info_dialog").focus()}catch(e){}},bindEv:function(e,r){Ye.jgrid.isFunction(r.dataInit)&&r.dataInit.call(this,e,r),r.dataEvents&&Ye.each(r.dataEvents,function(){var t=this.fn;void 0!==this.data?Ye(e).on(this.type,this.data,function(e){t.call(this,e,r)}):Ye(e).on(this.type,function(e){t.call(this,e,r)})})},createEl:function(e,t,r,i,o){var a="",c=this;function u(r,e,t){var i=(i=["dataInit","dataEvents","dataUrl","buildSelect","sopt","searchhidden","defaultValue","attr","custom_element","custom_value","oper"]).concat(["cacheUrlData","delimiter","separator"]);void 0!==t&&Array.isArray(t)&&Ye.merge(i,t),Ye.each(e,function(e,t){-1===Ye.inArray(e,i)&&Ye(r).attr(e,t)}),e.hasOwnProperty("id")||Ye(r).attr("id",Ye.jgrid.randId())}switch(e){case"textarea":a=document.createElement("textarea"),i?t.cols||Ye(a).css({width:"98%"}):t.cols||(t.cols=20),t.rows||(t.rows=2),("&nbsp;"===r||"&#160;"===r||1===r.length&&160===r.charCodeAt(0))&&(r=""),a.value=r,Ye(a).attr({role:"textbox",multiline:"true"}),u(a,t);break;case"checkbox":(a=document.createElement("input")).type="checkbox",t.value?(r===(d=t.value.split(":"))[0]&&(a.checked=!0,a.defaultChecked=!0),a.value=d[0],Ye(a).attr("offval",d[1])):((d=(r+"").toLowerCase()).search(/(false|f|0|no|n|off|undefined)/i)<0&&""!==d?(a.checked=!0,a.defaultChecked=!0,a.value=r):a.value="on",Ye(a).attr("offval","off")),Ye(a).attr("role","checkbox"),u(a,t,["value"]);break;case"select":(a=document.createElement("select")).setAttribute("role","listbox");var n,l,s=[];if(!0===t.multiple?(n=!0,a.multiple="multiple",Ye(a).attr("aria-multiselectable","true")):n=!1,null!=t.dataUrl){var d=null,h=t.postData||o.postData;try{d=t.rowId}catch(e){}c.p&&c.p.idPrefix&&(d=Ye.jgrid.stripPref(c.p.idPrefix,d)),Ye.ajax(Ye.extend({url:Ye.jgrid.isFunction(t.dataUrl)?t.dataUrl.call(c,d,r,String(t.name)):t.dataUrl,type:"GET",dataType:"html",data:Ye.jgrid.isFunction(h)?h.call(c,d,r,String(t.name)):h,context:{elem:a,options:t,vl:r},success:function(e){var t,r,i=[],o=this.elem,a=this.vl,n=Ye.extend({},this.options),l=!0===n.multiple,s=!0===n.cacheUrlData,d="",p=[],e=Ye.jgrid.isFunction(n.buildSelect)?n.buildSelect.call(c,e):e;(e="string"==typeof e?Ye(Ye.jgrid.trim(e)).html():e)&&(Ye(o).append(e),u(o,n,h?["postData"]:void 0),void 0===n.size&&(n.size=l?3:1),l?(e=void 0===n.multiseparator?",":n.multiseparator,i=a.split(e),i=Ye.map(i,function(e){return Ye.jgrid.trim(e)})):i[0]=Ye.jgrid.trim(a),Ye("option",o).each(function(e){t=Ye(this).text(),a=Ye(this).val(),s&&(d+=(0!==e?";":"")+a+":"+t),0===e&&o.multiple&&(this.selected=!1),Ye(this).attr("role","option"),(-1<Ye.inArray(Ye.jgrid.trim(t),i)||-1<Ye.inArray(Ye.jgrid.trim(a),i))&&(this.selected="selected",p.push(a))}),n.hasOwnProperty("checkUpdate")&&n.checkUpdate&&(c.p.savedData[n.name]=p.join(",")),s&&("edit"===n.oper?Ye(c).jqGrid("setColProp",n.name,{editoptions:{buildSelect:null,dataUrl:null,value:d}}):"search"===n.oper?Ye(c).jqGrid("setColProp",n.name,{searchoptions:{dataUrl:null,value:d}}):"filter"===n.oper&&Ye("#fbox_"+c.p.id)[0].p&&(l=Ye("#fbox_"+c.p.id)[0].p.columns,Ye.each(l,function(e){if(r=this.index||this.name,n.name===r)return this.searchoptions.dataUrl=null,this.searchoptions.value=d,!1}))),Ye(c).triggerHandler("jqGridAddEditAfterSelectUrlComplete",[o]))}},o||{}))}else if(t.value){void 0===t.size&&(t.size=n?3:1),n&&(s=r.split(","),s=Ye.map(s,function(e){return Ye.jgrid.trim(e)})),"function"==typeof t.value&&(t.value=t.value.call(c,r,t));var p,g,f,m,v,j,b=void 0===t.separator?":":t.separator,d=void 0===t.delimiter?";":t.delimiter;if("string"==typeof t.value)for(p=t.value.split(d),l=0;l<p.length;l++)2<(g=p[l].split(b)).length&&(g[1]=Ye.map(g,function(e,t){if(0<t)return e}).join(b)),(f=document.createElement("option")).setAttribute("role","option"),f.value=g[0],f.innerHTML=g[1],0==g[1].length&&f.setAttribute("aria-label","none"),a.appendChild(f),n||Ye.jgrid.trim(g[0])!==Ye.jgrid.trim(r)&&Ye.jgrid.trim(g[1])!==Ye.jgrid.trim(r)||(f.selected="selected"),n&&(-1<Ye.inArray(Ye.jgrid.trim(g[1]),s)||-1<Ye.inArray(Ye.jgrid.trim(g[0]),s))&&(f.selected="selected");else if("[object Array]"===Object.prototype.toString.call(t.value))for(m=t.value,l=0;l<m.length;l++)2===m[l].length&&(v=m[l][0],j=m[l][1],(f=document.createElement("option")).setAttribute("role","option"),f.value=v,0==(f.innerHTML=j).length&&f.setAttribute("aria-label","none"),a.appendChild(f),n||Ye.jgrid.trim(v)!==Ye.jgrid.trim(r)&&Ye.jgrid.trim(j)!==Ye.jgrid.trim(r)||(f.selected="selected"),n)&&(-1<Ye.inArray(Ye.jgrid.trim(j),s)||-1<Ye.inArray(Ye.jgrid.trim(v),s))&&(f.selected="selected");else if("object"==typeof t.value)for(v in m=t.value)m.hasOwnProperty(v)&&((f=document.createElement("option")).setAttribute("role","option"),f.value=v,f.innerHTML=m[v],0==m[v].length&&f.setAttribute("aria-label","none"),a.appendChild(f),n||Ye.jgrid.trim(v)!==Ye.jgrid.trim(r)&&Ye.jgrid.trim(m[v])!==Ye.jgrid.trim(r)||(f.selected="selected"),n)&&(-1<Ye.inArray(Ye.jgrid.trim(m[v]),s)||-1<Ye.inArray(Ye.jgrid.trim(v),s))&&(f.selected="selected");u(a,t,["value"])}else u(a,t);break;case"image":case"file":(a=document.createElement("input")).type=e,u(a,t);break;case"custom":a=document.createElement("span");try{if(!Ye.jgrid.isFunction(t.custom_element))throw"e1";var y=t.custom_element.call(c,r,t);if(!y)throw"e2";y=Ye(y).addClass("customelement").attr({id:t.id,name:t.name}),Ye(a).empty().append(y)}catch(e){d=Ye.jgrid.getRegional(c,"errors"),y=Ye.jgrid.getRegional(c,"edit");"e1"===e?Ye.jgrid.info_dialog(d.errcap,"function 'custom_element' "+y.msg.nodefined,y.bClose,{styleUI:c.p.styleUI}):"e2"===e?Ye.jgrid.info_dialog(d.errcap,"function 'custom_element' "+y.msg.novalue,y.bClose,{styleUI:c.p.styleUI}):Ye.jgrid.info_dialog(d.errcap,"string"==typeof e?e:e.message,y.bClose,{styleUI:c.p.styleUI})}break;default:d="button"===e?"button":"textbox";(a=document.createElement("input")).type=e,a.value=r,"button"!==e&&(i?t.size||Ye(a).css({width:"96%"}):t.size||(t.size=20)),Ye(a).attr("role",d),u(a,t)}return a},checkDate:function(e,t){var r={},i=-1!==(e=e.toLowerCase()).indexOf("/")?"/":-1!==e.indexOf("-")?"-":-1!==e.indexOf(".")?".":"/";if(e=e.split(i),3!==(t=t.split(i)).length)return!1;for(var o=-1,a=-1,n=-1,l=0;l<e.length;l++){var s=isNaN(t[l])?0:parseInt(t[l],10);r[e[l]]=s,-1!==(d=e[l]).indexOf("y")&&(o=l),-1!==d.indexOf("m")&&(n=l),-1!==d.indexOf("d")&&(a=l)}var d="y"===e[o]||"yyyy"===e[o]?4:"yy"===e[o]?2:-1;return-1!==o&&(i=r[e[o]].toString(),2===d&&1===i.length&&(d=1),i.length===d)&&(0!==r[e[o]]||"00"===t[o])&&-1!==n&&!(r[e[n]].toString().length<1||r[e[n]]<1||12<r[e[n]]||-1===a||r[e[a]].toString().length<1||r[e[a]]<1||31<r[e[a]]||2===r[e[n]]&&r[e[a]]>((i=r[e[o]])%4!=0||i%100==0&&i%400!=0?28:29)||r[e[a]]>[0,31,29,31,30,31,30,31,31,30,31,30,31][r[e[n]]])},isEmpty:function(e){return!(void 0!==e&&!e.match(/^\s+$/)&&""!==e)},checkTime:function(e){if(!Ye.jgrid.isEmpty(e)){if(!(e=e.match(/^(\d{1,2}):(\d{2})([apAP][Mm])?$/)))return!1;if(e[3]){if(e[1]<1||12<e[1])return!1}else if(23<e[1])return!1;if(59<e[2])return!1}return!0},checkValues:function(e,t,r,i){function o(e){var t,r;return!(2<=(e=e.toString()).length&&("-"===e[0]?(t=e[1],e[2]&&(r=e[2])):(t=e[0],e[1]&&(r=e[1])),"0"===t)&&"."!==r)&&"number"==typeof Number(e)&&isFinite(e)}var a,n,l,s,d,p=this,c=p.p.colModel,u=Ye.jgrid.getRegional(this,"edit.msg");if(void 0===r)if("string"==typeof t){for(n=0,d=c.length;n<d;n++)if(c[n].name===t){a=c[n].editrules,null!=c[t=n].formoptions&&(l=c[n].formoptions.label);break}}else 0<=t&&(a=c[t].editrules);else a=r,l=void 0===i?"_":i;if(a){if(l=l||(null!=p.p.colNames?p.p.colNames[t]:c[t].label),!0===a.required&&Ye.jgrid.isEmpty(e))return[!1,l+": "+u.required,""];r=!1!==a.required;if(!0===a.number&&!(!1==r&&Ye.jgrid.isEmpty(e)||o(e)))return[!1,l+": "+u.number,""];if(void 0!==a.minValue&&!isNaN(a.minValue)&&Ye.jgrid.floatNum(e)<Ye.jgrid.floatNum(a.minValue))return[!1,l+": "+u.minValue+" "+a.minValue,""];if(void 0!==a.maxValue&&!isNaN(a.maxValue)&&Ye.jgrid.floatNum(e)>Ye.jgrid.floatNum(a.maxValue))return[!1,l+": "+u.maxValue+" "+a.maxValue,""];if(!0===a.email&&!(!1==r&&Ye.jgrid.isEmpty(e)||/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(e)))return[!1,l+": "+u.email,""];if(!0===a.integer&&(!1!=r||!Ye.jgrid.isEmpty(e))){if(!o(e))return[!1,l+": "+u.integer,""];if(e%1!=0||-1!==e.indexOf("."))return[!1,l+": "+u.integer,""]}if(!0===a.date&&!(!1==r&&Ye.jgrid.isEmpty(e)||(c[t].formatoptions&&c[t].formatoptions.newformat?(s=c[t].formatoptions.newformat,(i=Ye.jgrid.getRegional(p,"formatter.date.masks"))&&i.hasOwnProperty(s)&&(s=i[s])):s=c[t].datefmt||"Y-m-d",Ye.jgrid.checkDate(s,e))))return[!1,l+": "+u.date+" - "+s,""];if(!0===a.time&&!(!1==r&&Ye.jgrid.isEmpty(e)||Ye.jgrid.checkTime(e)))return[!1,l+": "+u.date+" - hh:mm (am/pm)",""];if(!0===a.url&&!(!1==r&&Ye.jgrid.isEmpty(e)||/^(((https?)|(ftp)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&#;`~=%!]*)(\.\w{2,})?)*\/?)/i.test(e)))return[!1,l+": "+u.url,""];if(!0===a.custom)if(!1!=r||!Ye.jgrid.isEmpty(e))return Ye.jgrid.isFunction(a.custom_func)?(i=a.custom_func.call(p,e,l,t),Array.isArray(i)?i:[!1,u.customarray,""]):[!1,u.customfcheck,""]}return[!0,"",""]},validateForm:function(e){for(var t,r=!0,i=0;i<e.elements.length;i++)if(("INPUT"===(t=e.elements[i]).nodeName||"TEXTAREA"===t.nodeName||"SELECT"===t.nodeName)&&(void 0!==t.willValidate?("INPUT"===t.nodeName&&t.type!==t.getAttribute("type")&&t.setCustomValidity(Ye.jgrid.LegacyValidation(t)?"":"error"),t.reportValidity()):(t.validity=t.validity||{},t.validity.valid=Ye.jgrid.LegacyValidation(t)),!t.validity.valid)){r=!1;break}return r},LegacyValidation:function(e){var t=!0,r=e.value,i=e.getAttribute("type"),i="checkbox"===i||"radio"===i,o=e.getAttribute("required"),a=e.getAttribute("minlength"),n=e.getAttribute("maxlength"),l=e.getAttribute("pattern");return e.disabled||(t=(t=t&&(!o||i&&e.checked||!i&&""!==r))&&(i||(!a||r.length>=a)&&(!n||r.length<=n)))&&l&&(t=(l=new RegExp(l)).test(r)),t},buildButtons:function(e,r,i){var o;return Ye.each(e,function(e,t){t.id||(t.id=Ye.jgrid.randId()),t.position||(t.position="last"),t.side||(t.side="left"),o=t.icon?" fm-button-icon-"+t.side+"'><span class='"+i.icon_base+" "+t.icon+"'></span>":"'>",o="<a  data-index='"+e+"' id='"+t.id+"' class='fm-button "+i.button+o+t.text+"</a>","last"===t.position?r+=o:r=o+r}),r},setSelNavIndex:function(r,i){var e=Ye(".ui-pg-button",r.p.pager);Ye.each(e,function(e,t){if(i===t)return r.p.navIndex=e,!1}),Ye(i).attr("tabindex","0")},getFirstVisibleCol:function(e){for(var t=-1,r=0;r<e.p.colModel.length;r++)if(!0!==e.p.colModel[r].hidden){t=r;break}return t},getLastVisibleCol:function(e){for(var t=-1,r=e.p.colModel.length-1;0<=r;r--)if(!0!==e.p.colModel[r].hidden){t=r;break}return t},postForm:function(e,t,r){r=r||"post";var i,o,a=document.createElement("form");for(i in a.setAttribute("method",r),a.setAttribute("action",e),t)t.hasOwnProperty(i)&&((o=document.createElement("input")).setAttribute("type","hidden"),o.setAttribute("name",i),o.setAttribute("value",t[i]),a.appendChild(o));document.body.appendChild(a),a.submit(),a.parentNode.removeChild(a)}}),Ye.fn.jqFilter=function(e){if("string"==typeof e){var t,r=Ye.fn.jqFilter[e];if(r)return t=Ye.makeArray(arguments).slice(1),r.apply(this,t);throw"jqFilter - No such method: "+e}var q=Ye.extend(!0,{filter:null,columns:[],sortStrategy:null,onChange:null,afterRedraw:null,checkValues:null,error:!1,errmsg:"",errorcheck:!0,showQuery:!0,sopt:null,ops:[],operands:null,numopts:["eq","ne","lt","le","gt","ge","nu","nn","in","ni"],stropts:["eq","ne","bw","bn","ew","en","cn","nc","nu","nn","in","ni"],strarr:["text","string","blob"],groupOps:[{op:"AND",text:"AND"},{op:"OR",text:"OR"}],groupButton:!0,ruleButtons:!0,uniqueSearchFields:!1,direction:"ltr",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",autoencode:!1,unaryOperations:[]},Ye.jgrid.filter,e||{});return this.each(function(){if(!this.filter){this.p=q,null!==this.p.filter&&void 0!==this.p.filter||(this.p.filter={groupOp:this.p.groupOps[0].op,rules:[],groups:[]}),null!=this.p.sortStrategy&&Ye.jgrid.isFunction(this.p.sortStrategy)&&this.p.columns.sort(this.p.sortStrategy);var e,t,r=this.p.columns.length,y=/msie/i.test(navigator.userAgent)&&!window.opera;if(this.p.initFilter=Ye.extend(!0,{},this.p.filter),r){for(e=0;e<r;e++)(t=this.p.columns[e]).stype?t.inputtype=t.stype:t.inputtype||(t.inputtype="text"),t.sorttype?t.searchtype=t.sorttype:t.searchtype||(t.searchtype="string"),void 0===t.hidden&&(t.hidden=!1),t.label||(t.label=t.name),t.index&&(t.name=t.index),t.hasOwnProperty("searchoptions")||(t.searchoptions={}),t.hasOwnProperty("searchrules")||(t.searchrules={}),void 0===t.search?t.inlist=!0:t.inlist=t.search;var w=function(){return Ye("#"+Ye.jgrid.jqID(q.id))[0]||null},i=w(),x=Ye.jgrid.styleUI[i.p.styleUI||"jQueryUI"].filter,_=Ye.jgrid.styleUI[i.p.styleUI||"jQueryUI"].common,n=(this.p.showQuery&&Ye(this).append("<table class='queryresult "+x.table_widget+"' style='display:block;max-width:440px;border:0px none;' dir='"+this.p.direction+"'><tbody><tr><td class='query'></td></tr></tbody></table>"),function(e,t){var r=[!0,""],i=w();if(Ye.jgrid.isFunction(t.searchrules))r=t.searchrules.call(i,e,t);else if(Ye.jgrid&&Ye.jgrid.checkValues)try{r=Ye.jgrid.checkValues.call(i,e,-1,t.searchrules,t.label)}catch(e){}r&&r.length&&!1===r[0]&&(q.error=!r[0],q.errmsg=r[1])});this.onchange=function(){return this.p.error=!1,this.p.errmsg="",!!Ye.jgrid.isFunction(this.p.onChange)&&this.p.onChange.call(this,this.p)},this.reDraw=function(){Ye(this).find("table.group").first().remove();var e=this.createTableForGroup(q.filter,null);Ye(this).append(e),Ye.jgrid.isFunction(this.p.afterRedraw)&&this.p.afterRedraw.call(this,this.p)},this.createTableForGroup=function(i,e){var o=this,t=Ye("<table class='group "+x.table_widget+" ui-search-table' style='border:0px none;'><tbody></tbody></table>"),r="left",a=("rtl"===this.p.direction&&(r="right",t.attr("dir","rtl")),null===e&&t.append("<tr class='error' style='display:none;'><th colspan='5' class='"+_.error+"' align='"+r+"'></th></tr>"),Ye("<tr></tr>")),r=(t.append(a),Ye("<th colspan='5' align='"+r+"'></th>"));if(a.append(r),!0===this.p.ruleButtons){for(var n,l=Ye("<select size='1' name='select_group_op' class='opsel "+x.srSelect+"'></select>"),s=(r.append(l),""),d=0;d<q.groupOps.length;d++)n=i.groupOp===o.p.groupOps[d].op?" selected='selected'":"",s+="<option value='"+o.p.groupOps[d].op+"'"+n+">"+o.p.groupOps[d].text+"</option>";l.append(s).on("change",function(){i.groupOp=Ye(l).val(),o.onchange()})}var p,a="<span></span>";if(this.p.groupButton&&(a=Ye("<input type='button' value='+ {}' title='"+o.p.addsubgrup+"' class='add-group "+_.button+"' name='newsubgroup'/>")).on("click",function(){return void 0===i.groups&&(i.groups=[]),i.groups.push({groupOp:q.groupOps[0].op,rules:[],groups:[]}),o.reDraw(),o.onchange(),!1}),r.append(a),!0===this.p.ruleButtons&&((a=Ye("<input type='button' value='+' title='"+o.p.addrule+"' class='add-rule ui-add "+_.button+"'/ name='newrule'>")).on("click",function(){for(void 0===i.rules&&(i.rules=[]),d=0;d<o.p.columns.length;d++){var e=void 0===o.p.columns[d].search||o.p.columns[d].search,t=!0===o.p.columns[d].hidden;if(!0===o.p.columns[d].searchoptions.searchhidden&&e||e&&!t){p=o.p.columns[d];break}}var r;return p&&(r=p.searchoptions.sopt||o.p.sopt||(-1!==Ye.inArray(p.searchtype,o.p.strarr)?o.p.stropts:o.p.numopts),i.rules.push({field:p.name,op:r[0],data:""}),o.reDraw()),!1}),r.append(a)),null!==e&&(a=Ye("<input type='button' value='-' title='"+o.p.delgroup+"' class='delete-group "+_.button+"'/ name='delgroup'>"),r.append(a),a.on("click",function(){for(d=0;d<e.groups.length;d++)if(e.groups[d]===i){e.groups.splice(d,1);break}return o.reDraw(),o.onchange(),!1})),void 0!==i.groups)for(d=0;d<i.groups.length;d++){var c=Ye("<tr></tr>"),u=(t.append(c),Ye("<td class='first'></td>")),u=(c.append(u),Ye("<td colspan='4'></td>"));u.append(this.createTableForGroup(i.groups[d],i)),c.append(u)}void 0===i.groupOp&&(i.groupOp=o.p.groupOps[0].op);var h=o.p.ruleButtons&&o.p.uniqueSearchFields;if(h)for(f=0;f<o.p.columns.length;f++)o.p.columns[f].inlist&&(o.p.columns[f].search=!0);if(void 0!==i.rules)for(d=0;d<i.rules.length;d++)if(t.append(this.createTableRowForRule(i.rules[d],i)),h)for(var g=i.rules[d].field,f=0;f<o.p.columns.length;f++)if(g===o.p.columns[f].name){o.p.columns[f].search=!1;break}return t},this.createTableRowForRule=function(a,e){for(var n,l,s,t,d,p=this,c=w(),r=Ye("<tr></tr>"),i="",o=(r.append("<td class='first'></td>"),Ye("<td class='columns'></td>")),u=(r.append(o),Ye("<select size='1' name='select_field' class='"+x.srSelect+"'></select>")),h=[],g=(o.append(u),u.on("change",function(){var e;for(p.p.ruleButtons&&p.p.uniqueSearchFields&&(t=parseInt(Ye(this).data("curr"),10),e=this.selectedIndex,0<=t)&&(p.p.columns[t].search=!0,Ye(this).data("curr",e),p.p.columns[e].search=!1),a.field=Ye(u).val(),l=Ye(this).parents("tr").first(),Ye(".data",l).empty(),f=0;f<p.p.columns.length;f++)if(p.p.columns[f].name===a.field){s=p.p.columns[f];break}if(s){s.searchoptions.id=Ye.jgrid.randId(),s.searchoptions.name=a.field,s.searchoptions.oper="filter",!y||"text"!==s.inputtype||s.searchoptions.size||(s.searchoptions.size=10);var t,r=Ye.jgrid.createEl.call(c,s.inputtype,s.searchoptions,"",!0,p.p.ajaxSelectOptions||{},!0),i=(Ye(r).addClass("input-elm "+("select"===s.inputtype?x.srSelect:x.srInput)),n=s.searchoptions.sopt||p.p.sopt||(-1!==Ye.inArray(s.searchtype,p.p.strarr)?p.p.stropts:p.p.numopts),""),o=0;for(h=[],Ye.each(p.p.ops,function(){h.push(this.oper)}),f=0;f<n.length;f++)-1!==(d=Ye.inArray(n[f],h))&&(0===o&&(a.op=p.p.ops[d].oper),i+="<option value='"+p.p.ops[d].oper+"'>"+p.p.ops[d].text+"</option>",o++);Ye(".selectopts",l).empty().append(i),Ye(".selectopts",l)[0].selectedIndex=0,Ye.jgrid.msie()&&Ye.jgrid.msiever()<9&&(t=parseInt(Ye("select.selectopts",l)[0].offsetWidth,10)+1,Ye(".selectopts",l).width(t),Ye(".selectopts",l).css("width","auto")),Ye(".data",l).append(r),Ye.jgrid.bindEv.call(c,r,s.searchoptions),Ye(".input-elm",l).on("change",function(e){e=e.target;"custom"===s.inputtype&&Ye.jgrid.isFunction(s.searchoptions.custom_value)?a.data=s.searchoptions.custom_value.call(c,Ye(".customelement",this),"get"):a.data=Ye(e).val(),"select"===s.inputtype&&s.searchoptions.multiple&&(a.data=a.data.join(",")),p.onchange()}),setTimeout(function(){a.data=Ye(r).val(),("nu"===a.op||"nn"===a.op||0<=Ye.inArray(a.op,p.p.unaryOperations))&&(Ye(r).attr("readonly","true"),Ye(r).attr("disabled","true")),"select"===s.inputtype&&s.searchoptions.multiple&&Array.isArray(a.data)&&(a.data=a.data.join(",")),p.onchange()},0)}}),0),f=0;f<p.p.columns.length;f++){var m=void 0===p.p.columns[f].search||p.p.columns[f].search,v=!0===p.p.columns[f].hidden;(!0===p.p.columns[f].searchoptions.searchhidden&&m||m&&!v)&&(t="",a.field===p.p.columns[f].name&&(t=" selected='selected'",g=f),i+="<option value='"+p.p.columns[f].name+"'"+t+">"+p.p.columns[f].label+"</option>")}u.append(i),u.data("curr",g);var o=Ye("<td class='operators'></td>"),j=(r.append(o),(s=q.columns[g]).searchoptions.id=Ye.jgrid.randId(),!y||"text"!==s.inputtype||s.searchoptions.size||(s.searchoptions.size=10),s.searchoptions.name=a.field,s.searchoptions.oper="filter",Ye.jgrid.createEl.call(c,s.inputtype,s.searchoptions,a.data,!0,p.p.ajaxSelectOptions||{},!0)),b=(("nu"===a.op||"nn"===a.op||0<=Ye.inArray(a.op,p.p.unaryOperations))&&(Ye(j).attr("readonly","true"),Ye(j).attr("disabled","true")),Ye("<select size='1' name='select_oper' class='selectopts "+x.srSelect+"'></select>"));for(o.append(b),b.on("change",function(){a.op=Ye(b).val(),l=Ye(this).parents("tr").first();var e=Ye(".input-elm",l)[0];"nu"===a.op||"nn"===a.op||0<=Ye.inArray(a.op,p.p.unaryOperations)?(a.data="","SELECT"!==e.tagName.toUpperCase()&&(e.value=""),e.setAttribute("readonly","true"),e.setAttribute("disabled","true")):("SELECT"===e.tagName.toUpperCase()&&(a.data=e.value),e.removeAttribute("readonly"),e.removeAttribute("disabled")),p.onchange()}),n=s.searchoptions.sopt||p.p.sopt||(-1!==Ye.inArray(s.searchtype,p.p.strarr)?p.p.stropts:p.p.numopts),i="",Ye.each(p.p.ops,function(){h.push(this.oper)}),f=0;f<n.length;f++)-1!==(d=Ye.inArray(n[f],h))&&(t=a.op===p.p.ops[d].oper?" selected='selected'":"",i+="<option value='"+p.p.ops[d].oper+"'"+t+">"+p.p.ops[d].text+"</option>");b.append(i);o=Ye("<td class='data'></td>"),r.append(o),o.append(j),Ye.jgrid.bindEv.call(c,j,s.searchoptions),Ye(j).addClass("input-elm "+("select"===s.inputtype?x.srSelect:x.srInput)).on("change",function(){a.data="custom"===s.inputtype?s.searchoptions.custom_value.call(c,Ye(".customelement",this),"get"):Ye(this).val(),p.onchange()}),o=Ye("<td></td>");return r.append(o),!0===this.p.ruleButtons&&(j=Ye("<input type='button' value='-' title='"+p.p.delrule+"' class='delete-rule ui-del "+_.button+"'/ name='delrule'>"),o.append(j),j.on("click",function(){for(f=0;f<e.rules.length;f++)if(e.rules[f]===a){e.rules.splice(f,1);break}return p.reDraw(),p.onchange(),!1})),r},this.getStringForGroup=function(e){var t,r="(";if(void 0!==e.groups)for(t=0;t<e.groups.length;t++){1<r.length&&(r+=" "+e.groupOp+" ");try{r+=this.getStringForGroup(e.groups[t])}catch(e){alert(e)}}if(void 0!==e.rules)try{for(t=0;t<e.rules.length;t++)1<r.length&&(r+=" "+e.groupOp+" "),r+=this.getStringForRule(e.rules[t])}catch(e){alert(e)}return"()"===(r+=")")?"":r},this.getStringForRule=function(e){for(var t,r,i="",o="",a=0;a<this.p.ops.length;a++)if(this.p.ops[a].oper===e.op){i=this.p.operands.hasOwnProperty(e.op)?this.p.operands[e.op]:"",o=this.p.ops[a].oper;break}for(a=0;a<this.p.columns.length;a++)if(this.p.columns[a].name===e.field){t=this.p.columns[a];break}return void 0===t?"":(r=this.p.autoencode?Ye.jgrid.htmlEncode(e.data):e.data,"bw"!==o&&"bn"!==o||(r+="%"),"ew"!==o&&"en"!==o||(r="%"+r),"cn"!==o&&"nc"!==o||(r="%"+r+"%"),"in"!==o&&"ni"!==o||(r=" ("+r+")"),q.errorcheck&&n(e.data,t),-1!==Ye.inArray(t.searchtype,["int","integer","float","number","currency"])||"nn"===o||"nu"===o||0<=Ye.inArray(e.op,this.p.unaryOperations)?e.field+" "+i+" "+r:e.field+" "+i+' "'+r+'"')},this.resetFilter=function(){this.p.filter=Ye.extend(!0,{},this.p.initFilter),this.reDraw(),this.onchange()},this.hideError=function(){Ye("th."+_.error,this).html(""),Ye("tr.error",this).hide()},this.showError=function(){Ye("th."+_.error,this).html(Ye.jgrid.stripScript(this.p.errmsg)),Ye("tr.error",this).show()},this.toUserFriendlyString=function(){return this.getStringForGroup(q.filter)},this.toString=function(){var o=this;return function e(t){var r,i="(";if(void 0!==t.groups)for(r=0;r<t.groups.length;r++)1<i.length&&("OR"===t.groupOp?i+=" || ":i+=" && "),i+=e(t.groups[r]);if(void 0!==t.rules)for(r=0;r<t.rules.length;r++)1<i.length&&("OR"===t.groupOp?i+=" || ":i+=" && "),i+=function(e){if(o.p.errorcheck){for(var t,r=0;r<o.p.columns.length;r++)if(o.p.columns[r].name===e.field){t=o.p.columns[r];break}t&&n(e.data,t)}return e.op+"(item."+e.field+",'"+e.data+"')"}(t.rules[r]);return"()"==(i+=")")?"":i}(this.p.filter)},this.reDraw(),this.p.showQuery&&this.onchange(),this.filter=!0}}})},Ye.extend(Ye.fn.jqFilter,{toSQLString:function(){var e="";return this.each(function(){e=this.toUserFriendlyString()}),e},filterData:function(){var e;return this.each(function(){e=this.p.filter}),e},getParameter:function(r){var i=null;return void 0!==r&&this.each(function(e,t){t.p.hasOwnProperty(r)&&(i=t.p[r])}),i||this[0].p},resetFilter:function(){return this.each(function(){this.resetFilter()})},addFilter:function(e){"string"==typeof e&&(e=Ye.jgrid.parse(e)),this.each(function(){this.p.filter=e,this.reDraw(),this.onchange()})}}),Ye.extend(Ye.jgrid,{filterRefactor:function(e){var t,r,i,o,a,n,l={};try{if((l="string"==typeof e.ruleGroup?Ye.jgrid.parse(e.ruleGroup):e.ruleGroup).rules&&l.rules.length)for(t=l.rules,r=0;r<t.length;r++)n=(i=t[r]).field,-1<Ye.inArray(n,e.ssfield)&&1<(o=i.data.split(e.splitSelect)).length&&(void 0===l.groups&&(l.groups=[]),a={groupOp:e.groupOpSelect,groups:[],rules:[]},l.groups.push(a),Ye.each(o,function(e){o[e]&&a.rules.push({data:o[e],op:i.op,field:i.field})}),t.splice(r,1),r--)}catch(e){}return l}}),Ye.jgrid.extend({filterToolbar:function(S){var i=Ye.jgrid.getRegional(this[0],"search");return S=Ye.extend({autosearch:!0,autosearchDelay:500,searchOnEnter:!0,beforeSearch:null,afterSearch:null,beforeClear:null,afterClear:null,onClearSearchValue:null,url:"",stringResult:!1,groupOp:"AND",defaultSearch:"bw",searchOperators:!1,resetIcon:"x",splitSelect:",",groupOpSelect:"OR",errorcheck:!0,operands:{eq:"==",ne:"!",lt:"<",le:"<=",gt:">",ge:">=",bw:"^",bn:"!^",in:"=",ni:"!=",ew:"|",en:"!@",cn:"~",nc:"!~",nu:"#",nn:"!#",bt:"..."},disabledKeys:[9,16,17,18,19,20,33,34,35,36,37,38,39,40,30,45,112,113,114,115,116,117,118,119,120,121,122,123,144,145]},i,S||{}),this.each(function(){var D=this,F=[];if(!D.p.filterToolbar){if(Ye(D).data("filterToolbar")||Ye(D).data("filterToolbar",S),D.p.force_regional&&(S=Ye.extend(S,i)),void 0!==D.p.customFilterDef)for(var e in D.p.customFilterDef)D.p.customFilterDef.hasOwnProperty(e)&&!S.operands.hasOwnProperty(e)&&(S.odata.push({oper:e,text:D.p.customFilterDef[e].text}),S.operands[e]=D.p.customFilterDef[e].operand,!0===D.p.customFilterDef[e].unary)&&F.push(e);var u,h,t,g,f=Ye.jgrid.styleUI[D.p.styleUI||"jQueryUI"].filter,p=Ye.jgrid.styleUI[D.p.styleUI||"jQueryUI"].common,m=Ye.jgrid.styleUI[D.p.styleUI||"jQueryUI"].base,v=function(e){void 0===e&&(e=1);var r,i,o,a,n={},l=0,s={},d=!1,p=[],c=[],u={},h=[],g=!1,f=[!0,"",""],m=!1;if(Ye.each(D.p.colModel,function(){var e,t=!1;if(i=this.index||this.name,a=this.searchoptions||{},!0===this.frozen&&!0===D.p.frozenColumns?(e=Ye("#gs_"+D.p.idPrefix+Ye.jgrid.jqID(this.name),D.grid.fhDiv),t=!0):e=Ye("#gs_"+D.p.idPrefix+Ye.jgrid.jqID(this.name),D.grid.hDiv),void 0===e[0]&&(e=Ye("#gs_"+D.p.idPrefix+Ye.jgrid.jqID(this.name),D.grid.hDiv)),o=S.searchOperators&&a.searchOperMenu?e.parents("table.ui-search-table").find("td.ui-search-oper").children("a").attr("soper")||S.defaultSearch:a.sopt?a.sopt[0]:"select"===this.stype?"eq":S.defaultSearch,"custom"===this.stype&&Ye.jgrid.isFunction(a.custom_value)&&0<e.length?(r=a.custom_value.call(D,e,"get"),h.push(i)):r=e.val(),"select"===this.stype&&a.multiple&&Array.isArray(r)?r=0<r.length?(d=!0,p.push(i),1===r.length?r[0]:r):"":"bt"!==o&&"text"===this.stype&&!0===a.splitSearchWord&&c.push(i),this.searchrules&&S.errorcheck&&(Ye.jgrid.isFunction(this.searchrules)?f=this.searchrules.call(D,r,this):Ye.jgrid&&Ye.jgrid.checkValues&&(f=Ye.jgrid.checkValues.call(D,r,-1,this.searchrules,this.label||this.name)),f)&&f.length&&!1===f[0])return this.searchrules.hasOwnProperty("validationError")&&(m=this.searchrules.validationError),!1;if("bt"===o&&(g=!0),t&&"cb"!==i&&"rn"!==i&&"subgrid"!==i&&"sc"!==i&&(u[i]=r),r||"nu"===o||"nn"===o||0<=Ye.inArray(o,F))n[i]=r,s[i]=o,l++;else try{delete D.p.postData[i]}catch(e){}}),!1===f[0])Ye.jgrid.isFunction(m)?m.call(D,f[1]):(v=Ye.jgrid.getRegional(D,"errors"),Ye.jgrid.info_dialog(v.errcap,f[1],"",{styleUI:D.p.styleUI}));else{var t,v=0<l;if(!0===S.stringResult||"local"===D.p.datatype||!0===S.searchOperators){var j,b,y,w,x,_,q='{"groupOp":"'+S.groupOp+'","rules":[',C=0;if(Ye.each(n,function(e,t){0<C&&(q+=","),q=(q=(q+='{"field":"'+e+'",')+'"op":"'+s[e]+'",')+'"data":"'+(t+="").replace(/\\/g,"\\\\").replace(/\"/g,'\\"')+'"}',C++}),q+="]}",d&&(j=Ye.jgrid.filterRefactor({ruleGroup:q,ssfield:p,splitSelect:S.splitSelect,groupOpSelect:S.groupOpSelect})),g&&(j=Ye.isPlainObject(j)?j:Ye.jgrid.parse(q)).rules&&j.rules.length)for(b=j.rules,y=0;y<b.length;y++)"bt"===(w=b[y]).op&&1<(x=w.data.split("...")).length&&(void 0===j.groups&&(j.groups=[]),_={groupOp:"AND",groups:[],rules:[]},j.groups.push(_),Ye.each(x,function(e){x[e]&&_.rules.push({data:x[e],op:0===e?"ge":"le",field:w.field})}),b.splice(y,1),y--);c.length&&(j=Ye.jgrid.filterRefactor({ruleGroup:q,ssfield:c,splitSelect:a.splitSearchSeparator||";",groupOpSelect:"OR"})),(g||d||c.length)&&(q=JSON.stringify(j)),!0===D.p.mergeSearch&&D.p.searchModules.hasOwnProperty("filterToolbar")&&!1!==D.p.searchModules.filterToolbar?(D.p.searchModules.filterToolbar=0<C?q:null,v=!0,Ye.extend(D.p.postData,{filters:Ye.jgrid.splitSearch(D.p.searchModules)})):Ye.extend(D.p.postData,{filters:q}),Ye.each(["searchField","searchString","searchOper"],function(e,t){D.p.postData.hasOwnProperty(t)&&delete D.p.postData[t]})}else Ye.extend(D.p.postData,n);S.url&&(t=D.p.url,Ye(D).jqGrid("setGridParam",{url:S.url}));var I="stop"===Ye(D).triggerHandler("jqGridToolbarBeforeSearch");(I=!I&&Ye.jgrid.isFunction(S.beforeSearch)?S.beforeSearch.call(D):I)||Ye(D).jqGrid("setGridParam",{search:v}).trigger("reloadGrid",[{page:e}]),t&&Ye(D).jqGrid("setGridParam",{url:t}),Ye(D).triggerHandler("jqGridToolbarAfterSearch"),Ye.jgrid.isFunction(S.afterSearch)&&S.afterSearch.call(D),D.p.frozenColumns&&G(u,s,p,h)}},G=function(e,a,t,n){var l=Ye(".ui-search-toolbar",D.grid.hDiv),s=Ye(".ui-search-toolbar",D.grid.fhDiv);Ye.each(e,function(e,t){var r,i,o;S.searchOperators&&(r=a[e])&&(Ye(".ui-search-table .ui-search-oper [colname='userId']",l).attr({soper:r}).text(S.operands[r]),Ye(".ui-search-table .ui-search-oper [colname='userId']",s).attr({soper:r}).text(S.operands[r])),-1<Ye.inArray(e,n)?(r=Ye.jgrid.getElemByAttrVal(D.p.colModel,"name",e))&&r.searchoptions&&(r=r.searchoptions||{},Ye.jgrid.isFunction(r.custom_value))&&(i=Ye("#gs_"+D.p.idPrefix+Ye.jgrid.jqID(e),D.grid.fhDiv),o=Ye("#gs_"+D.p.idPrefix+Ye.jgrid.jqID(e),D.grid.hDiv),r.custom_value.call(D,i,"set",t),r.custom_value.call(D,o,"set",t)):(Ye("#gs_"+D.p.idPrefix+Ye.jgrid.jqID(e),l).val(t),Ye("#gs_"+D.p.idPrefix+Ye.jgrid.jqID(e),s).val(t))})},j=Ye("<tr class='ui-search-toolbar' role='row'></tr>"),b=(S.restoreFromFilters&&(t=!0===D.p.mergeSearch&&D.p.searchModules.hasOwnProperty("filterToolbar")&&!1!==D.p.searchModules.filterToolbar?D.p.searchModules.filterToolbar:D.p.postData.filters)&&("string"==typeof t&&(t=Ye.jgrid.parse(t)),h=!(!t.rules||!t.rules.length)&&t.rules),new Set(S.disabledKeys));if(b.size!==S.disabledKeys.length)for(var r=0;r<S.disabledKeys.length;r++)(b=new Set).add(S.disabledKeys[r]);i.filterFor&&(g=i.filterFor),D.p.colSpanHeader.length&&Ye(D).jqGrid("destroyColSpanHeader",!1),Ye.each(D.p.colModel,function(e){var t,r,i,o=this,a="",n="=",l=Ye("<th role='columnheader' class='"+m.headerBox+" ui-th-"+D.p.direction+" "+(o.labelClasses||"")+"' id='gsh_"+D.p.id+"_"+o.name+"'></th>"),s=Ye('<div><span aria-label="empty" style="display: none;">empty</span></div>'),d=Ye("<table class='ui-search-table' cellspacing='0'><tr><td class='ui-search-oper' headers=''></td><td class='ui-search-input' headers=''></td><td class='ui-search-clear' headers=''></td></tr></table>");if(!0===this.hidden&&Ye(l).css("display","none"),this.search=!1!==this.search,void 0===this.stype&&(this.stype="text"),this.searchoptions=this.searchoptions||{},void 0===this.searchoptions.searchOperMenu&&(this.searchoptions.searchOperMenu=!0),e=void 0!==g?g+" "+D.p.colNames[e]:D.p.colNames[e],t=Ye.extend({},this.searchoptions,{name:o.index||o.name,id:"gs_"+D.p.idPrefix+o.name,oper:"search",title:e}),this.search){if(S.restoreFromFilters&&h)for(var p=!1,c=0;c<h.length;c++)if(h[c].field)if((o.index||o.name)===h[c].field){p=h[c];break}if(S.searchOperators){for(r=t.sopt?t.sopt[0]:"select"===o.stype?"eq":S.defaultSearch,S.restoreFromFilters&&p&&(r=p.op),i=0;i<S.odata.length;i++)if(S.odata[i].oper===r){n=S.operands[r]||"";break}e=null!=t.searchtitle?t.searchtitle:S.operandTitle,a=this.searchoptions.searchOperMenu?"<a title='"+e+"' soper='"+r+"' class='soptclass' colname='"+this.name+"'>"+n+"</a>":""}switch(Ye("td",d).eq(0).attr("columname",o.name).append(a),void 0===t.clearSearch&&(t.clearSearch=!0),t.clearSearch?(e=S.resetTitle||"Clear Search Value",Ye("td",d).eq(2).append("<a title='"+e+"' tabindex='0' style='padding-right: 0.3em;padding-left: 0.3em;' class='clearsearchclass'>"+S.resetIcon+"</a>")):Ye("td",d).eq(2).hide(),this.surl&&(t.dataUrl=this.surl),e="",t.defaultValue&&(e=Ye.jgrid.isFunction(t.defaultValue)?t.defaultValue.call(D):t.defaultValue),S.restoreFromFilters&&p&&(e=p.data),e=Ye.jgrid.createEl.call(D,this.stype,t,e,!1,Ye.extend({},Ye.jgrid.ajaxOptions,D.p.ajaxSelectOptions||{})),"custom"!==this.stype&&("select"===this.stype?Ye(e).addClass(f.srSelect):Ye(e).addClass(f.srInput)),Ye("td",d).eq(1).append(e),Ye(s).append(d),null==t.dataEvents&&(t.dataEvents=[]),this.stype){case"select":!0===S.autosearch&&t.dataEvents.push({type:"change",fn:function(){return v(),!1}});break;case"text":case"custom":!0===S.autosearch&&(S.searchOnEnter?t.dataEvents.push({type:"keypress",fn:function(e){return 13===(e.charCode||e.keyCode||0)?(e.preventDefault(),v(),!1):this}}):t.dataEvents.push({type:"keydown",fn:function(e){var t=e.which;if(!b.has(t)){if(13===t)return e.preventDefault(),!1;u&&clearTimeout(u),u=setTimeout(function(){v()},S.autosearchDelay)}}}))}Ye.jgrid.bindEv.call(D,e,t)}Ye(l).append(s),Ye(j).append(l),S.searchOperators&&""!==a||Ye("td",d).eq(0).hide()}),Ye("table thead",D.grid.hDiv).append(j),S.searchOperators&&(Ye(".soptclass",j).click(function(e){var t=Ye(this).offset(),r=t.left,t=t.top,i=this;Ye("#sopt_menu").remove(),r=parseInt(r,10),t=parseInt(t,10)+18;var o,a='<ul id="sopt_menu" class="ui-search-menu modal-content" role="menu" tabindex="0" style="font-size:'+(Ye(".ui-jqgrid").css("font-size")||"11px")+";left:"+r+"px;top:"+t+'px;">',n=Ye(i).attr("soper"),l=[],r=Ye(i).attr("colname"),s=Ye.jgrid.getElemByAttrVal(D.p.colModel,"name",r,!0);if(-1!==s){var t=D.p.colModel[s],d=Ye.extend({},t.searchoptions);for(d.sopt||(d.sopt=[],d.sopt[0]="select"===t.stype?"eq":S.defaultSearch),Ye.each(S.odata,function(){l.push(this.oper)}),s=0;s<d.sopt.length;s++)-1!==(o=Ye.inArray(d.sopt[s],l))&&(a+='<li class="ui-menu-item '+(n===S.odata[o].oper?p.highlight:"")+'" role="presentation"><a class="'+p.cornerall+' g-menu-item" tabindex="0" role="menuitem" value="'+S.odata[o].oper+'" oper="'+S.operands[S.odata[o].oper]+'"><table class="ui-common-table"><tr><td class="opersign">'+S.operands[S.odata[o].oper]+"</td><td>"+S.odata[o].text+"</td></tr></table></a></li>");a+="</ul>",Ye("body").append(a),Ye("#sopt_menu").addClass("ui-menu "+f.menu_widget),Ye("#sopt_menu > li > a").hover(function(){Ye(this).addClass(p.hover)},function(){Ye(this).removeClass(p.hover)}).click(function(){var e=Ye(this).attr("value"),t=Ye(this).attr("oper");Ye(D).triggerHandler("jqGridToolbarSelectOper",[e,t,i]),Ye("#sopt_menu").hide(),Ye(i).text(t).attr("soper",e),!0===S.autosearch&&(t=Ye(i).parent().next().children()[0],Ye(t).val()||"nu"===e||"nn"===e||0<=Ye.inArray(e,F))&&v()})}e.stopPropagation()}),Ye("body").on("click",function(e){"soptclass"!==e.target.className&&Ye("#sopt_menu").remove()})),Ye(".clearsearchclass",j).click(function(){var e,t=Ye(this).parents("tr").first(),r=Ye("td.ui-search-oper",t).attr("columname"),i=Ye("td.ui-search-oper a",t).attr("soper");if(-1===(r=Ye.jgrid.getElemByAttrVal(D.p.colModel,"name",r,!0)))return!1;var o=D.p.colModel[r],a=Ye.extend({},o.searchoptions||{}),n=a.defaultValue||"",l=("select"===o.stype?(l=Ye("td.ui-search-input select",t),n?l.val(n):l[0].selectedIndex=0):(l=Ye("td.ui-search-input input",t)).val(n),Ye(D).triggerHandler("jqGridToolbarClearVal",[l[0],r,a,n]),Ye.jgrid.isFunction(S.onClearSearchValue)&&S.onClearSearchValue.call(D,l[0],r,a,n),"");("nu"===i||"nn"===i||0<=Ye.inArray(i,F))&&(e=a.sopt?a.sopt[0]:"select"===o.stype?"eq":S.defaultSearch,l=null!=D.p.customFilterDef&&null!=D.p.customFilterDef[e]?D.p.customFilterDef[e].operand:S.operands[e]||"",(e===i?Ye("td.ui-search-oper a",t).attr("soper","dummy"):Ye("td.ui-search-oper a",t).attr("soper",e)).text(l)),!0===S.autosearch&&(v(),e===i)&&Ye("td.ui-search-oper a",t).attr("soper",e).text(l)}),Ye(".clearsearchclass",j).keydown(function(e){13===e.keyCode&&(e.preventDefault(),Ye(".clearsearchclass",j).trigger("click"))}),Ye(D.grid.hDiv).on("scroll",function(e){D.grid.hScroll||(D.grid.bScroll=!0,D.grid.bDiv.scrollLeft=D.grid.hDiv.scrollLeft,D.p.footerrow&&(D.grid.sDiv.scrollLeft=D.grid.bDiv.scrollLeft),D.p.headerrow&&(D.grid.hrDiv.scrollLeft=D.grid.bDiv.scrollLeft)),D.grid.hScroll=!1}),D.p.colSpanHeader.length&&setTimeout(function(){Ye(D).jqGrid("setColSpanHeader")},0),this.p.filterToolbar=!0,this.triggerToolbar=v,this.clearToolbar=function(e){var t,r,i,o,a,n,l={},s={},d=0,p=(e="boolean"!=typeof e||e,Ye.each(D.p.colModel,function(){switch(r=Ye("#gs_"+D.p.idPrefix+Ye.jgrid.jqID(this.name),!0===this.frozen&&!0===D.p.frozenColumns?D.grid.fhDiv:D.grid.hDiv),i=this.searchoptions&&void 0!==this.searchoptions.defaultValue?this.searchoptions.defaultValue:void 0,t=this.index||this.name,s[t]=this.searchoptions&&this.searchoptions.sopt?this.searchoptions.sopt[0]:S.defaultSearch||"eq",this.stype){case"select":if(r.find("option").each(function(e){if(0===e&&(this.selected=!0),Ye(this).val()===i)return!(this.selected=!0)}),void 0!==i)l[t]=i,d++;else try{delete D.p.postData[t]}catch(e){}break;case"text":if(r.val(i||""),void 0!==i)l[t]=i,d++;else try{delete D.p.postData[t]}catch(e){}break;case"custom":Ye.jgrid.isFunction(this.searchoptions.custom_value)&&0<r.length&&this.searchoptions.custom_value.call(D,r,"set",i||"")}}),0<d),c=((D.p.resetsearch=!0)===S.stringResult||"local"===D.p.datatype?(o='{"groupOp":"'+S.groupOp+'","rules":[',a=0,Ye.each(l,function(e,t){0<a&&(o+=","),o=(o=(o+='{"field":"'+e+'",')+'"op":"'+s[e]+'",')+'"data":"'+(t+="").replace(/\\/g,"\\\\").replace(/\"/g,'\\"')+'"}',a++,S.searchOperators&&(r=Ye("#gs_"+D.p.idPrefix+Ye.jgrid.jqID(e),!0===this.frozen&&!0===D.p.frozenColumns?D.grid.fhDiv:D.grid.hDiv)).parents("table.ui-search-table").find("td.ui-search-oper").children("a").attr("soper",s[e]).html(S.operands[s[e]])}),o+="]}",!0===D.p.mergeSearch&&D.p.searchModules.hasOwnProperty("filterToolbar")&&!1!==D.p.searchModules.filterToolbar?(D.p.searchModules.filterToolbar=0<a?o:null,p=!0,Ye.extend(D.p.postData,{filters:Ye.jgrid.splitSearch(D.p.searchModules)})):Ye.extend(D.p.postData,{filters:o}),Ye.each(["searchField","searchString","searchOper"],function(e,t){D.p.postData.hasOwnProperty(t)&&delete D.p.postData[t]})):Ye.extend(D.p.postData,l),S.url&&(n=D.p.url,Ye(D).jqGrid("setGridParam",{url:S.url})),"stop"===Ye(D).triggerHandler("jqGridToolbarBeforeClear"));(c=!c&&Ye.jgrid.isFunction(S.beforeClear)?S.beforeClear.call(D):c)||e&&Ye(D).jqGrid("setGridParam",{search:p}).trigger("reloadGrid",[{page:1}]),n&&Ye(D).jqGrid("setGridParam",{url:n}),Ye(D).triggerHandler("jqGridToolbarAfterClear"),Ye.jgrid.isFunction(S.afterClear)&&S.afterClear()},this.toggleToolbar=function(){var e=Ye("tr.ui-search-toolbar",D.grid.hDiv);!0===D.p.frozenColumns&&Ye(D).jqGrid("destroyFrozenColumns"),"none"===e.css("display")?e.show():e.hide(),!0===D.p.frozenColumns&&Ye(D).jqGrid("setFrozenColumns")}}})},destroyFilterToolbar:function(){return this.each(function(){this.p.filterToolbar&&(this.triggerToolbar=null,this.clearToolbar=null,this.toggleToolbar=null,this.p.filterToolbar=!1,Ye(this.grid.hDiv).find("table thead tr.ui-search-toolbar").remove())})},refreshFilterToolbar:function(g){return g=Ye.extend(!0,{filters:"",onClearVal:null,onSetVal:null},g||{}),this.each(function(){var o,a,n,e,l,s,d,p=this,c=p.p.colModel,u=p.p.colModel.length,h=[];if(p.p.filterToolbar){for(a=Ye(p).data("filterToolbar"),o=0;o<u;o++){switch(h.push(c[o].index||c[o].name),n=Ye("#gs_"+p.p.idPrefix+Ye.jgrid.jqID(c[o].name)),c[o].stype){case"select":case"text":n.val("")}Ye.jgrid.isFunction(g.onClearVal)&&g.onClearVal.call(p,n,c[o].name)}"string"==typeof g.filters&&(g.filters.length?e=g.filters:p.p.postData.hasOwnProperty("filters")&&(e=p.p.postData.filters),e=Ye.jgrid.parse(e)),Ye.isPlainObject(e)&&!function e(t){if(t&&t.rules){for(l=t.rules,u=l.length,o=0;o<u;o++){var r;s=l[o],-1!==(d=Ye.inArray(s.field,h))&&0<(n=Ye("#gs_"+p.p.idPrefix+Ye.jgrid.jqID(c[d].name))).length&&("select"===c[d].stype?n.find("option[value='"+Ye.jgrid.jqID(s.data)+"']").prop("selected",!0):"text"===c[d].stype&&n.val(s.data),Ye.jgrid.isFunction(g.onSetVal)&&g.onSetVal.call(p,n,c[d].name),a)&&a.searchOperators&&(r=n.parent().prev()).hasClass("ui-search-oper")&&(Ye(".soptclass",r).attr("soper",s.op),a.operands.hasOwnProperty(s.op))&&Ye(".soptclass",r).html(Ye.jgrid.stripScript(a.operands[s.op]))}if(t.groups)for(var i=0;i<t.groups.length;i++)e(t.groups[i])}}(e)}})},searchGrid:function(k){var e=Ye.jgrid.getRegional(this[0],"search");return k=Ye.extend(!0,{recreateFilter:!1,drag:!0,sField:"searchField",sValue:"searchString",sOper:"searchOper",sFilter:"filters",loadDefaults:!0,beforeShowSearch:null,afterShowSearch:null,onInitializeSearch:null,afterRedraw:null,afterChange:null,sortStrategy:null,closeAfterSearch:!1,closeAfterReset:!1,closeOnEscape:!1,searchOnEnter:!1,multipleSearch:!1,multipleGroup:!1,top:0,left:0,jqModal:!0,modal:!1,resize:!0,width:450,height:"auto",dataheight:"auto",showQuery:!1,errorcheck:!0,sopt:null,stringResult:void 0,onClose:null,onSearch:null,onReset:null,toTop:!0,overlay:30,columns:[],tmplNames:null,tmplFilters:null,tmplLabel:" Template: ",showOnLoad:!1,layer:null,splitSelect:",",groupOpSelect:"OR",operands:{eq:"=",ne:"<>",lt:"<",le:"<=",gt:">",ge:">=",bw:"LIKE",bn:"NOT LIKE",in:"IN",ni:"NOT IN",ew:"LIKE",en:"NOT LIKE",cn:"LIKE",nc:"NOT LIKE",nu:"IS NULL",nn:"ISNOT NULL"},buttons:[]},e,k||{}),this.each(function(){var o=this;if(o.grid){var t,r,i="fbox_"+o.p.id,a=!0,n=!0,l={themodal:"searchmod"+i,modalhead:"searchhd"+i,modalcontent:"searchcnt"+i,scrollelm:i},e=[],s=Ye.jgrid.styleUI[o.p.styleUI||"jQueryUI"].filter,d=Ye.jgrid.styleUI[o.p.styleUI||"jQueryUI"].common;if(k.styleUI=o.p.styleUI,"string"==typeof(t=Ye.isPlainObject(o.p._savedFilter)&&!Ye.isEmptyObject(o.p._savedFilter)?o.p._savedFilter:(!0===o.p.mergeSearch&&o.p.searchModules.hasOwnProperty("searchGrid")&&!1!==o.p.searchModules.searchGrid&&Ye.extend(o.p.postData,{filters:Ye.jgrid.splitSearch(o.p.searchModules)}),o.p.postData[k.sFilter]))&&(t=Ye.jgrid.parse(t)),!0===k.recreateFilter&&Ye("#"+Ye.jgrid.jqID(l.themodal)).remove(),void 0!==Ye("#"+Ye.jgrid.jqID(l.themodal))[0])S(Ye("#fbox_"+Ye.jgrid.jqID(o.p.id)));else{var p,c,u=Ye("<div><div id='"+i+"' class='searchFilter' style='overflow:auto'></div></div>").insertBefore("#gview_"+Ye.jgrid.jqID(o.p.id)),h="left",g="",f=("rtl"===o.p.direction&&(h="right",g=" style='text-align:left'",u.attr("dir","rtl")),Ye.extend([],o.p.colModel)),m="<a id='"+i+"_search' class='fm-button "+d.button+" fm-button-icon-right ui-search'><span class='"+d.icon_base+" "+s.icon_search+"'></span>"+k.Find+"</a>",v="<a id='"+i+"_reset' class='fm-button "+d.button+" fm-button-icon-left ui-reset'><span class='"+d.icon_base+" "+s.icon_reset+"'></span>"+k.Reset+"</a>",j="",b="",y=!1,w=-1,x=!1,_=[],m=(k.showQuery&&(j="<a id='"+i+"_query' class='fm-button "+d.button+" fm-button-icon-left'><span class='"+d.icon_base+" "+s.icon_query+"'></span>Query</a>"),Ye.jgrid.buildButtons(k.buttons,j+m,d)),q=null;if(Ye(o).jqGrid("isGroupHeaderOn")&&(G=Ye("table.ui-jqgrid-htable",o.grid.hDiv).find(".jqg-second-row-header"),c=o.p.groupHeader.length,void 0!==G[0])&&(q=o.p.groupHeader[c-1]),k.columns.length)f=k.columns,p=f[w=0].index||f[0].name;else{if(null!==q)for(var C=0;C<f.length;C++){var I=Ye.jgrid.inColumnHeader(f[C].name,q.groupHeaders);if(0<=I){f[C].label=q.groupHeaders[I].titleText+"::"+o.p.colNames[C];for(var D=1;D<=q.groupHeaders[I].numberOfColumns-1;D++)f[C+D].label=q.groupHeaders[I].titleText+"::"+o.p.colNames[C+D];C=C+q.groupHeaders[I].numberOfColumns-1}}Ye.each(f,function(e,t){var r,i;t.label||(t.label=o.p.colNames[e]),!y&&(r=void 0===t.search||t.search,i=!0===t.hidden,t.searchoptions&&!0===t.searchoptions.searchhidden&&r||r&&!i)&&(y=!0,p=t.index||t.name,w=e),"select"===t.stype&&t.searchoptions&&t.searchoptions.multiple&&(x=!0,_.push(t.index||t.name))})}if((!t&&p||!1===k.multipleSearch)&&(G="eq",0<=w&&f[w].searchoptions&&f[w].searchoptions.sopt?G=f[w].searchoptions.sopt[0]:k.sopt&&k.sopt.length&&(G=k.sopt[0]),t={groupOp:"AND",rules:[{field:p,op:G,data:""}]}),y=!1,k.tmplNames&&k.tmplNames.length&&(y=!0,b=(b="<tr><td class='ui-search-label'>"+k.tmplLabel+"</td>")+"<td><select size='1' name='select_template' class='ui-template "+s.srSelect+"'><option value='default'>Default</option>",Ye.each(k.tmplNames,function(e,t){b+="<option value='"+e+"'>"+t+"</option>"}),b+="</select></td></tr>"),void 0!==o.p.customFilterDef)for(var F in o.p.customFilterDef)o.p.customFilterDef.hasOwnProperty(F)&&!k.operands.hasOwnProperty(F)&&(k.odata.push({oper:F,text:o.p.customFilterDef[F].text}),k.operands[F]=o.p.customFilterDef[F].operand,!0===o.p.customFilterDef[F].unary)&&e.push(F);c="<table class='EditTable' style='border:0px none;margin-top:5px' id='"+i+"_2'><tbody><tr><td colspan='2'><hr class='"+d.content+"' style='margin:1px'/></td></tr>"+b+"<tr><td class='EditButton' style='text-align:"+h+"'>"+v+"</td><td class='EditButton' "+g+">"+m+"</td></tr></tbody></table>",i=Ye.jgrid.jqID(i),Ye("#"+i).jqFilter({columns:f,sortStrategy:k.sortStrategy,filter:k.loadDefaults?t:null,showQuery:k.showQuery,errorcheck:k.errorcheck,sopt:k.sopt,groupButton:k.multipleGroup,ruleButtons:k.multipleSearch,uniqueSearchFields:k.uniqueSearchFields,afterRedraw:k.afterRedraw,ops:k.odata,operands:k.operands,ajaxSelectOptions:o.p.ajaxSelectOptions,groupOps:k.groupOps,addsubgrup:k.addsubgrup,addrule:k.addrule,delgroup:k.delgroup,delrule:k.delrule,autoencode:o.p.autoencode,unaryOperations:e,onChange:function(){this.p.showQuery&&Ye(".query",this).text(this.toUserFriendlyString()),Ye.jgrid.isFunction(k.afterChange)&&k.afterChange.call(o,Ye("#"+i),k)},direction:o.p.direction,id:o.p.id}),u.append(c),Ye("#"+i+"_2").find("[data-index]").each(function(){var t=parseInt(Ye(this).attr("data-index"),10);0<=t&&Ye(this).on("click",function(e){k.buttons[t].click.call(o,Ye("#"+i),k,e)})}),y&&k.tmplFilters&&k.tmplFilters.length&&Ye(".ui-template",u).on("change",function(){var e=Ye(this).val();return"default"===e?Ye("#"+i).jqFilter("addFilter",t):Ye("#"+i).jqFilter("addFilter",k.tmplFilters[parseInt(e,10)]),!1}),!0===k.multipleGroup&&(k.multipleSearch=!0),Ye(o).triggerHandler("jqGridFilterInitialize",[Ye("#"+i)]),Ye.jgrid.isFunction(k.onInitializeSearch)&&k.onInitializeSearch.call(o,Ye("#"+i)),k.gbox="#gbox_"+Ye.jgrid.jqID(o.p.id);var G=Ye(".ui-jqgrid").css("font-size")||"11px";k.layer?Ye.jgrid.createModal(l,u,k,"#gview_"+Ye.jgrid.jqID(o.p.id),Ye("#gbox_"+Ye.jgrid.jqID(o.p.id))[0],"string"==typeof k.layer?"#"+Ye.jgrid.jqID(k.layer):k.layer,"string"==typeof k.layer?{position:"relative","font-size":G}:{"font-size":G}):Ye.jgrid.createModal(l,u,k,"#gview_"+Ye.jgrid.jqID(o.p.id),Ye("#gbox_"+Ye.jgrid.jqID(o.p.id))[0],null,{"font-size":G}),(k.searchOnEnter||k.closeOnEscape)&&Ye("#"+Ye.jgrid.jqID(l.themodal)).keydown(function(e){var t=Ye(e.target);return!k.searchOnEnter||13!==e.which||t.hasClass("add-group")||t.hasClass("add-rule")||t.hasClass("delete-group")||t.hasClass("delete-rule")||t.hasClass("fm-button")&&t.is("[id$=_query]")?k.closeOnEscape&&27===e.which?(Ye("#"+Ye.jgrid.jqID(l.modalhead)).find(".ui-jqdialog-titlebar-close").click(),!1):void 0:(e.preventDefault(),Ye("#"+i+"_search").click(),!1)}),j&&Ye("#"+i+"_query").on("click",function(){return Ye(".queryresult",u).toggle(),!1}),void 0===k.stringResult&&(k.stringResult=k.multipleSearch),Ye("#"+i+"_search").on("click",function(){var e,t={};return(r=Ye("#"+i)).find(".input-elm:focus").change(),x&&k.multipleSearch?(o.p._savedFilter={},e=Ye.jgrid.filterRefactor({ruleGroup:Ye.extend(!0,{},r.jqFilter("filterData")),ssfield:_,splitSelect:k.splitSelect,groupOpSelect:k.groupOpSelect}),o.p._savedFilter=Ye.extend(!0,{},r.jqFilter("filterData"))):e=r.jqFilter("filterData"),k.errorcheck&&(r[0].hideError(),k.showQuery||r.jqFilter("toSQLString"),r[0].p.error)?r[0].showError():(k.stringResult?(t[k.sFilter]=JSON.stringify(e),Ye.each([k.sField,k.sValue,k.sOper],function(){t[this]=""})):k.multipleSearch?(t[k.sFilter]=e,Ye.each([k.sField,k.sValue,k.sOper],function(){t[this]=""})):(t[k.sField]=e.rules[0].field,t[k.sValue]=e.rules[0].data,t[k.sOper]=e.rules[0].op,t[k.sFilter]=""),"string"!=typeof t[k.sFilter]&&(t[k.sFilter]=JSON.stringify(t[k.sFilter])),(o.p.search=!0)===o.p.mergeSearch&&o.p.searchModules.hasOwnProperty("searchGrid")&&!1!==o.p.searchModules.searchGrid&&k.multipleSearch?(""!==t[k.sFilter]?o.p.searchModules.searchGrid=t[k.sFilter]:o.p.searchModules.searchGrid=null,Ye.extend(o.p.postData,{filters:Ye.jgrid.splitSearch(o.p.searchModules)})):Ye.extend(o.p.postData,t),!1!==(n=(n=void 0===(n=Ye(o).triggerHandler("jqGridFilterSearch"))?!0:n)&&Ye.jgrid.isFunction(k.onSearch)?k.onSearch.call(o,o.p.filters):n)&&Ye(o).trigger("reloadGrid",[{page:1}]),k.closeAfterSearch&&Ye.jgrid.hideModal("#"+Ye.jgrid.jqID(l.themodal),{gb:"#gbox_"+Ye.jgrid.jqID(o.p.id),jqm:k.jqModal,onClose:k.onClose})),!1}),Ye("#"+i+"_reset").on("click",function(){var e={},t=Ye("#"+i);return o.p.search=!1,!(o.p.resetsearch=!0)===k.multipleSearch?e[k.sField]=e[k.sValue]=e[k.sOper]="":e[k.sFilter]="",t[0].resetFilter(),y&&Ye(".ui-template",u).val("default"),!0===o.p.mergeSearch&&o.p.searchModules.hasOwnProperty("searchGrid")&&!1!==o.p.searchModules.searchGrid?(o.p.searchModules.searchGrid=null,Ye.extend(o.p.postData,{filters:Ye.jgrid.splitSearch(o.p.searchModules)}),o.p.search=!0):Ye.extend(o.p.postData,e),!1!==(n=(n=void 0===(n=Ye(o).triggerHandler("jqGridFilterReset"))?!0:n)&&Ye.jgrid.isFunction(k.onReset)?k.onReset.call(o):n)&&Ye(o).trigger("reloadGrid",[{page:1}]),k.closeAfterReset&&Ye.jgrid.hideModal("#"+Ye.jgrid.jqID(l.themodal),{gb:"#gbox_"+Ye.jgrid.jqID(o.p.id),jqm:k.jqModal,onClose:k.onClose}),!1}),S(Ye("#"+i)),Ye(".fm-button:not(."+d.disabled+")",u).hover(function(){Ye(this).addClass(d.hover)},function(){Ye(this).removeClass(d.hover)})}}function S(e){(a=(a=void 0===(a=Ye(o).triggerHandler("jqGridFilterBeforeShow",[e]))?!0:a)&&Ye.jgrid.isFunction(k.beforeShowSearch)?k.beforeShowSearch.call(o,e):a)&&(Ye.jgrid.viewModal("#"+Ye.jgrid.jqID(l.themodal),{gbox:"#gbox_"+Ye.jgrid.jqID(o.p.id),jqm:k.jqModal,modal:k.modal,overlay:k.overlay,toTop:k.toTop}),Ye(o).triggerHandler("jqGridFilterAfterShow",[e]),Ye.jgrid.isFunction(k.afterShowSearch))&&k.afterShowSearch.call(o,e)}})},filterInput:function(n,l){return l=Ye.extend(!0,{defaultSearch:"cn",groupOp:"OR",searchAll:!1,beforeSearch:null,afterSearch:null,selectFirstFound:!1,firstFoundTimeout:30},l||{}),this.each(function(){var e,t,r,i,o,a=this;a.grid&&(t='{"groupOp":"'+l.groupOp+'","rules":[',r=0,n+="",Ye.each(a.p.colModel,function(){e=this.index||this.name,i=this.searchoptions||{},i=l.defaultSearch||(i.sopt?i.sopt[0]:l.defaultSearch),(void 0===this.search||this.search||l.searchAll)&&""!==n&&(0<r&&(t+=","),t=(t=t+'{"field":"'+e+'","op":"'+i+'",')+'"data":"'+n.replace(/\\/g,"\\\\").replace(/\"/g,'\\"')+'"}',r++)}),t+="]}",!0===a.p.mergeSearch&&a.p.searchModules.hasOwnProperty("filterInput")&&!1!==a.p.searchModules.filterInput?(a.p.searchModules.filterInput=0<r?t:null,Ye.extend(a.p.postData,{filters:Ye.jgrid.splitSearch(a.p.searchModules)})):Ye.extend(a.p.postData,{filters:t}),Ye.each(["searchField","searchString","searchOper"],function(e,t){a.p.postData.hasOwnProperty(t)&&delete a.p.postData[t]}),(o=!(o="stop"===Ye(a).triggerHandler("jqGridFilterInputBeforeSearch"))&&Ye.jgrid.isFunction(l.beforeSearch)?l.beforeSearch.call(a):o)||Ye(a).jqGrid("setGridParam",{search:!0}).trigger("reloadGrid",[{page:1}]),l.selectFirstFound&&setTimeout(function(){var e=Ye(a).jqGrid("getGridRowByIndex",1);Ye(a).jqGrid("setSelection",e.id,!1)},l.firstFoundTimeout),Ye(a).triggerHandler("jqGridFilterInputAfterSearch"),Ye.jgrid.isFunction(l.afterSearch))&&l.afterSearch.call(a)})},autoSelect:function(s){return s=Ye.extend(!0,{field:"",direction:"asc",src_date:"Y-m-d",allValues:"All",count_item:!0,create_value:!0},s||{}),this.each(function(){var e,t=this,r="";if(s.field&&t.p.data&&Array.isArray(t.p.data)){var i,o,a,n,l=[];try{n=(a=Ye.jgrid.from.call(t,t.p.data).groupBy(s.field,s.direction,"text",s.src_date)).length}catch(e){}if(a&&a.length){for(o=Ye("#gsh_"+t.p.id+"_"+s.field).find("td.ui-search-input > select"),n=a.length,s.allValues&&(r="<option value=''>"+s.allValues+"</option>",l.push(":"+s.allValues));n--;)e=a[n],i=s.count_item?" ("+e.items.length+")":"",r+="<option value='"+e.unique+"'>"+e.unique+i+"</option>",l.push(e.unique+":"+e.unique+i);o.append(r),o.on("change",function(){t.triggerToolbar()}),s.create_value&&(o=Ye.jgrid.getElemByAttrVal(t.p.colModel,"name",s.field,!1),Ye.isEmptyObject(o)||(o.searchoptions?Ye.extend(o.searchoptions,{value:l.join(";")}):(o.searchoptions={},o.searchoptions.value=l.join(";"))))}}})}});var i,J={};Ye.jgrid.extend({editGridRow:function(X,K){var e=Ye.jgrid.getRegional(this[0],"edit"),t=this[0].p.styleUI,$=Ye.jgrid.styleUI[t].formedit,Y=Ye.jgrid.styleUI[t].common;return K=Ye.extend(!0,{top:0,left:0,width:"500",datawidth:"auto",height:"auto",dataheight:"auto",modal:!1,overlay:30,drag:!0,resize:!0,url:null,mtype:"POST",clearAfterAdd:!0,closeAfterEdit:!1,reloadAfterSubmit:!0,onInitializeForm:null,beforeInitData:null,beforeShowForm:null,afterShowForm:null,beforeSubmit:null,afterSubmit:null,onclickSubmit:null,afterComplete:null,onclickPgButtons:null,afterclickPgButtons:null,editData:{},recreateForm:!1,jqModal:!0,closeOnEscape:!1,addedrow:"first",topinfo:"",bottominfo:"",saveicon:[],closeicon:[],savekey:[!1,13],navkeys:[!1,38,40],checkOnSubmit:!1,checkOnUpdate:!1,processing:!1,onClose:null,ajaxEditOptions:{},serializeEditData:null,viewPagerButtons:!0,overlayClass:Y.overlay,removemodal:!0,form:"edit",template:null,focusField:!0,editselected:!1,html5Check:!1,buttons:[]},e,K||{}),J[Ye(this)[0].p.id]=K,this.each(function(){var u=this;if(u.grid&&X){u.p.savedData={};var h,g,r,e,f=u.p.id,m="FrmGrid_"+f,t="TblGrid_"+f,v="#"+Ye.jgrid.jqID(t),j={themodal:"editmod"+f,modalhead:"edithd"+f,modalcontent:"editcnt"+f,scrollelm:m},i=!0,o=1,a=0,n="string"==typeof J[u.p.id].template&&0<J[u.p.id].template.length,b=Ye.jgrid.getRegional(this,"errors"),A=(J[u.p.id].styleUI=u.p.styleUI||"jQueryUI",Ye.jgrid.isMobile()&&(J[u.p.id].resize=!1),"new"===X?(X="_empty",g="add",K.caption=J[u.p.id].addCaption):(K.caption=J[u.p.id].editCaption,g="edit"),K.recreateForm||Ye(u).data("formProp")&&Ye.extend(J[Ye(this)[0].p.id],Ye(u).data("formProp")),!0),l=(K.checkOnUpdate&&K.jqModal&&!K.modal&&(A=!1),isNaN(J[Ye(this)[0].p.id].dataheight)?J[Ye(this)[0].p.id].dataheight:J[Ye(this)[0].p.id].dataheight+"px"),s=isNaN(J[Ye(this)[0].p.id].datawidth)?J[Ye(this)[0].p.id].datawidth:J[Ye(this)[0].p.id].datawidth+"px",y=Ye("<form name='FormPost' id='"+m+"' class='FormGrid' onSubmit='return false;' style='width:"+s+";height:"+l+";'></form>").data("disabled",!1),d=n?(s=J[Ye(this)[0].p.id].template,l="",r=l="string"==typeof s?s.replace(/\{([\w\-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g,function(e,t){return'<span id="'+t+'" ></span>'}):l,v):(r=Ye("<table id='"+t+"' class='EditTable ui-common-table'><tbody></tbody></table>"),v+"_2"),m="#"+Ye.jgrid.jqID(m);if(Ye(y).append("<div class='FormError "+Y.error+"' style='display:none;'></div>"),Ye(y).append("<div class='tinfo topinfo'>"+J[u.p.id].topinfo+"</div>"),Ye(u.p.colModel).each(function(){var e=this.formoptions;o=Math.max(o,e&&e.colpos||0),a=Math.max(a,e&&e.rowpos||0)}),Ye(y).append(r),!1!==(i=(i=void 0===(i=Ye(u).triggerHandler("jqGridAddEditBeforeInitData",[y,g]))?!0:i)&&Ye.jgrid.isFunction(J[u.p.id].beforeInitData)?J[u.p.id].beforeInitData.call(u,y,g):i)){if("_empty"!==X&&void 0!==u.p.savedRow&&0<u.p.savedRow.length&&Ye.jgrid.isFunction(Ye.fn.jqGrid.restoreRow))for(e=0;e<u.p.savedRow.length;e++)if(u.p.savedRow[e].id===X){Ye(u).jqGrid("restoreRow",X);break}for(var p,c,w,x,T,_,P,q=X,C=u,I=r,D=o,F=0,G=!1,B="",E=1;E<=D;E++)B+="<td class='CaptionTD'></td><td class='DataTD'></td>";"_empty"!==q&&(G=Ye(C).jqGrid("getInd",q)),Ye(C.p.colModel).each(function(t){if(p=this.name,c=(!this.editrules||!0!==this.editrules.edithidden)&&!0===this.hidden,T=c?"style='display:none'":"","cb"!==p&&"subgrid"!==p&&!0===this.editable&&"rn"!==p&&"sc"!==p){if(!1===G)x="";else if(p===C.p.ExpandColumn&&!0===C.p.treeGrid)x=Ye("td[role='gridcell']",C.rows[G]).eq(t).text();else{try{x=Ye.unformat.call(C,Ye("td[role='gridcell']",C.rows[G]).eq(t),{rowId:q,colModel:this},t)}catch(e){x=this.edittype&&"textarea"===this.edittype?Ye("td[role='gridcell']",C.rows[G]).eq(t).text():Ye("td[role='gridcell']",C.rows[G]).eq(t).html()}x&&"&nbsp;"!==x&&"&#160;"!==x&&(1!==x.length||160!==x.charCodeAt(0))||(x="")}var e,r=Ye.extend({},this.editoptions||{},{id:p,name:p,rowId:q,oper:g,module:"form",checkUpdate:J[u.p.id].checkOnSubmit||J[u.p.id].checkOnUpdate}),i=Ye.extend({},{elmprefix:"",elmsuffix:"",rowabove:!1,rowcontent:""},this.formoptions||{}),o=parseInt(i.rowpos,10)||F+1,a=parseInt(2*(parseInt(i.colpos,10)||1),10);"_empty"===q&&r.defaultValue&&(x=Ye.jgrid.isFunction(r.defaultValue)?r.defaultValue.call(u):r.defaultValue),this.edittype||(this.edittype="text"),u.p.autoencode&&(x=Ye.jgrid.htmlDecode(x)),_=Ye.jgrid.createEl.call(u,this.edittype,r,x,!1,Ye.extend({},Ye.jgrid.ajaxOptions,C.p.ajaxSelectOptions||{})),"select"===this.edittype&&(x=Ye(_).val(),"select-multiple"===Ye(_).get(0).type)&&(x=x&&x.join(",")),"checkbox"===this.edittype&&(x=Ye(_).is(":checked")?Ye(_).val():Ye(_).attr("offval")),Ye(_).addClass("FormElement"),"select"===this.edittype?Ye(_).addClass($.selectClass):-1<Ye.inArray(this.edittype,["text","textarea","password","color","date","datetime","datetime-local","email","month","number","range","search","tel","time","url","week"])&&Ye(_).addClass($.inputClass),P=!0,n?(e=Ye(y).find("#"+p)).length?e.replaceWith(_):P=!1:(w=Ye(I).find("tr[rowpos="+o+"]"),i.rowabove&&(e=Ye("<tr><td class='contentinfo' colspan='"+2*D+"'>"+i.rowcontent+"</td></tr>"),Ye(I).append(e),e[0].rp=o),0===w.length&&(w=Ye(1<D?"<tr rowpos='"+o+"'></tr>":"<tr "+T+" rowpos='"+o+"'></tr>").addClass("FormData").attr("id","tr_"+p),Ye(w).append(B),Ye(I).append(w),w[0].rp=o),Ye("td",w[0]).eq(a-2).html("<label for='"+p+"' class='"+$.labelClass+"'>"+(void 0===i.label?C.p.colNames[t]:i.label)+"</label>"),Ye("td",w[0]).eq(a-1).append(i.elmprefix).append(_).append(i.elmsuffix),1<D&&c&&(Ye("td",w[0]).eq(a-2).hide(),Ye("td",w[0]).eq(a-1).hide())),(J[u.p.id].checkOnSubmit||J[u.p.id].checkOnUpdate)&&P&&(u.p.savedData[p]=x),"custom"===this.edittype&&Ye.jgrid.isFunction(r.custom_value)&&r.custom_value.call(u,Ye("#"+p,_),"set",x),Ye.jgrid.bindEv.call(u,_,r),F,F++}}),0<F&&((n?(k="<div class='FormData' style='display:none'><input class='FormElement' id='id_g' type='text' name='"+C.p.id+"_id' value='"+q+"'/>",Ye(y)):((k=Ye("<tr class='FormData' style='display:none'><td class='CaptionTD'></td><td colspan='"+(2*D-1)+"' class='DataTD'><input class='FormElement' id='id_g' type='text' name='"+C.p.id+"_id' value='"+q+"'/></td></tr>"))[0].rp=F+999,Ye(I))).append(k),J[u.p.id].checkOnSubmit||J[u.p.id].checkOnUpdate)&&(u.p.savedData[C.p.id+"_id"]=q);var S,s="rtl"===u.p.direction,l="<a id='"+(s?"nData":"pData")+"' class='fm-button "+Y.button+"'><span class='"+Y.icon_base+" "+$.icon_prev+"'></span></a>",i="<a id='"+(s?"pData":"nData")+"' class='fm-button "+Y.button+"'><span class='"+Y.icon_base+" "+$.icon_next+"'></span></a>",k="<a id='sData' class='fm-button "+Y.button+"'>"+K.bSubmit+"</a>",R="<a id='cData' class='fm-button "+Y.button+"'>"+K.bCancel+"</a>",N=Array.isArray(J[u.p.id].buttons)?Ye.jgrid.buildButtons(J[u.p.id].buttons,k+R,Y):k+R,N="<table style='height:auto' class='EditTable ui-common-table' id='"+t+"_2'><tbody><tr><td colspan='2'><hr class='"+Y.content+"' style='margin:1px'/></td></tr><tr id='Act_Buttons'><td class='navButton'>"+(s?i+l:l+i)+"</td><td class='EditButton'>"+N+"</td></tr>",z=(N+="</tbody></table>",0<a&&(S=[],Ye.each(Ye(r)[0].rows,function(e,t){S[e]=t}),S.sort(function(e,t){return e.rp>t.rp?1:e.rp<t.rp?-1:0}),Ye.each(S,function(e,t){Ye("tbody",r).append(t)})),K.gbox="#gbox_"+Ye.jgrid.jqID(f),!1),t=(!0===K.closeOnEscape&&(K.closeOnEscape=!1,z=!0),l=n?(Ye(y).find("#pData").replaceWith(l),Ye(y).find("#nData").replaceWith(i),Ye(y).find("#sData").replaceWith(k),Ye(y).find("#cData").replaceWith(R),Ye("<div id="+t+"></div>").append(y)):Ye("<div></div>").append(y).append(N),Ye(y).append("<div class='binfo topinfo bottominfo'>"+J[u.p.id].bottominfo+"</div>"),Ye(".ui-jqgrid").css("font-size")||"11px"),t=(Ye.jgrid.createModal(j,l,J[Ye(this)[0].p.id],"#gview_"+Ye.jgrid.jqID(u.p.id),Ye("#gbox_"+Ye.jgrid.jqID(u.p.id))[0],null,{"font-size":t}),s&&(Ye("#pData, #nData",v+"_2").css("float","right"),Ye(".EditButton",v+"_2").css("text-align","left")),J[u.p.id].topinfo&&Ye(".tinfo",m).show(),J[u.p.id].bottominfo&&Ye(".binfo",m).show(),l=null,Ye("#"+Ye.jgrid.jqID(j.themodal)).keydown(function(e){var t=e.target;return!0!==Ye(m).data("disabled")&&(!0===J[u.p.id].savekey[0]&&e.which===J[u.p.id].savekey[1]&&"TEXTAREA"!==t.tagName?(Ye("#sData",v+"_2").trigger("click"),!1):27===e.which?(O()&&z&&Ye.jgrid.hideModal("#"+Ye.jgrid.jqID(j.themodal),{gb:K.gbox,jqm:K.jqModal,onClose:J[u.p.id].onClose,removemodal:J[u.p.id].removemodal,formprop:!J[u.p.id].recreateForm,form:J[u.p.id].form}),!1):!0===J[u.p.id].navkeys[0]?"_empty"===Ye("#id_g",v).val()||(e.which===J[u.p.id].navkeys[1]?(Ye("#pData",d).trigger("click"),!1):e.which===J[u.p.id].navkeys[2]?(Ye("#nData",d).trigger("click"),!1):void 0):void 0)}),K.checkOnUpdate&&(Ye("a.ui-jqdialog-titlebar-close span","#"+Ye.jgrid.jqID(j.themodal)).removeClass("jqmClose"),Ye("a.ui-jqdialog-titlebar-close","#"+Ye.jgrid.jqID(j.themodal)).off("click").click(function(){return O()&&Ye.jgrid.hideModal("#"+Ye.jgrid.jqID(j.themodal),{gb:"#gbox_"+Ye.jgrid.jqID(f),jqm:K.jqModal,onClose:J[u.p.id].onClose,removemodal:J[u.p.id].removemodal,formprop:!J[u.p.id].recreateForm,form:J[u.p.id].form}),!1})),K.saveicon=Ye.extend([!0,"left",$.icon_save],K.saveicon),K.closeicon=Ye.extend([!0,"left",$.icon_close],K.closeicon),!0===K.saveicon[0]&&Ye("#sData",d).addClass("right"===K.saveicon[1]?"fm-button-icon-right":"fm-button-icon-left").append("<span class='"+Y.icon_base+" "+K.saveicon[2]+"'></span>"),!0===K.closeicon[0]&&Ye("#cData",d).addClass("right"===K.closeicon[1]?"fm-button-icon-right":"fm-button-icon-left").append("<span class='"+Y.icon_base+" "+K.closeicon[2]+"'></span>"),(J[u.p.id].checkOnSubmit||J[u.p.id].checkOnUpdate)&&(k="<a id='sNew' class='fm-button "+Y.button+"' style='z-index:1002'>"+K.bYes+"</a>",i="<a id='nNew' class='fm-button "+Y.button+"' style='z-index:1002;margin-left:5px'>"+K.bNo+"</a>",R="<a id='cNew' class='fm-button "+Y.button+"' style='z-index:1002;margin-left:5px;'>"+K.bExit+"</a>",N=K.zIndex||999,N++,Ye("#"+j.themodal).append("<div class='"+K.overlayClass+" jqgrid-overlay confirm' style='z-index:"+N+";display:none;position:absolute;'>&#160;</div><div class='confirm ui-jqconfirm "+Y.content+"' style='z-index:"+(1+N)+"'>"+K.saveData+"<br/><br/>"+k+i+R+"</div>"),Ye("#sNew","#"+Ye.jgrid.jqID(j.themodal)).click(function(){return U(),Ye(m).data("disabled",!1),Ye(".confirm","#"+Ye.jgrid.jqID(j.themodal)).hide(),!1}),Ye("#nNew","#"+Ye.jgrid.jqID(j.themodal)).click(function(){return Ye(".confirm","#"+Ye.jgrid.jqID(j.themodal)).hide(),Ye(m).data("disabled",!1),setTimeout(function(){Ye(":input:visible",m)[0].focus()},0),!1}),Ye("#cNew","#"+Ye.jgrid.jqID(j.themodal)).click(function(){return Ye(".confirm","#"+Ye.jgrid.jqID(j.themodal)).hide(),Ye(m).data("disabled",!1),Ye.jgrid.hideModal("#"+Ye.jgrid.jqID(j.themodal),{gb:"#gbox_"+Ye.jgrid.jqID(f),jqm:K.jqModal,onClose:J[u.p.id].onClose,removemodal:J[u.p.id].removemodal,formprop:!J[u.p.id].recreateForm,form:J[u.p.id].form}),!1})),Ye(u).triggerHandler("jqGridAddEditInitializeForm",[Ye(m),g]),Ye.jgrid.isFunction(J[u.p.id].onInitializeForm)&&J[u.p.id].onInitializeForm.call(u,Ye(m),g),"_empty"!==X&&J[u.p.id].viewPagerButtons?Ye("#pData,#nData",d).show():Ye("#pData,#nData",d).hide(),Ye(u).triggerHandler("jqGridAddEditBeforeShowForm",[Ye(m),g]),Ye.jgrid.isFunction(J[u.p.id].beforeShowForm)&&J[u.p.id].beforeShowForm.call(u,Ye(m),g),Q(),Ye("#"+Ye.jgrid.jqID(j.themodal)).data("onClose",J[u.p.id].onClose),Ye.jgrid.viewModal("#"+Ye.jgrid.jqID(j.themodal),{gbox:"#gbox_"+Ye.jgrid.jqID(f),jqm:K.jqModal,overlay:K.overlay,modal:K.modal,overlayClass:K.overlayClass,focusField:K.focusField,onHide:function(e){var t=Ye("#editmod"+f)[0].style.width,r=Ye("#editmod"+f)[0].style.height,r=["100%","auto"].includes(r)?r:Ye.jgrid.floatNum(r,200),t=["100%","auto"].includes(t)?t:Ye.jgrid.floatNum(t,300);Ye(u).data("formProp",{top:Ye.jgrid.floatNum(Ye(e.w).css("top")),left:parseFloat(Ye(e.w).css("left")),width:t,height:r,dataheight:Ye(m).height(),datawidth:Ye(m).width()}),e.w.remove(),e.o&&e.o.remove()}}),A||Ye("."+Ye.jgrid.jqID(K.overlayClass)).click(function(){return O()&&Ye.jgrid.hideModal("#"+Ye.jgrid.jqID(j.themodal),{gb:"#gbox_"+Ye.jgrid.jqID(f),jqm:K.jqModal,onClose:J[u.p.id].onClose,removemodal:J[u.p.id].removemodal,formprop:!J[u.p.id].recreateForm,form:J[u.p.id].form}),!1}),Ye(".fm-button","#"+Ye.jgrid.jqID(j.themodal)).hover(function(){Ye(this).addClass(Y.hover)},function(){Ye(this).removeClass(Y.hover)}),Ye("#sData",d).click(function(){return h={},Ye(".FormError",m).hide(),H(),"_empty"!==h[u.p.id+"_id"]&&!0===K.checkOnSubmit&&L(h,u.p.savedData)?(Ye(m).data("disabled",!0),Ye(".confirm","#"+Ye.jgrid.jqID(j.themodal)).show()):U(),!1}),Ye("#cData",d).click(function(){return O()&&Ye.jgrid.hideModal("#"+Ye.jgrid.jqID(j.themodal),{gb:"#gbox_"+Ye.jgrid.jqID(f),jqm:K.jqModal,onClose:J[u.p.id].onClose,removemodal:J[u.p.id].removemodal,formprop:!J[u.p.id].recreateForm,form:J[u.p.id].form}),!1}),Ye(d).find("[data-index]").each(function(){var t=parseInt(Ye(this).attr("data-index"),10);0<=t&&K.buttons[t].hasOwnProperty("click")&&Ye(this).on("click",function(e){K.buttons[t].click.call(u,Ye(m)[0],J[u.p.id],e)})}),Ye("#nData",d).click(function(){if(O()){Ye(".FormError",m).hide();var e,t=W();if(t[0]=parseInt(t[0],10),-1!==t[0]&&t[1][t[0]+1]){if(Ye(u).triggerHandler("jqGridAddEditClickPgButtons",["next",Ye(m),t[1][t[0]]]),Ye.jgrid.isFunction(K.onclickPgButtons)&&void 0!==(e=K.onclickPgButtons.call(u,"next",Ye(m),t[1][t[0]]))&&!1===e)return!1;if(Ye("#"+Ye.jgrid.jqID(t[1][t[0]+1])).hasClass(Y.disabled))return!1;M(t[1][t[0]+1],u,m),u.p.multiselect&&J[u.p.id].editselected||Ye(u).jqGrid("setSelection",t[1][t[0]+1]),Ye(u).triggerHandler("jqGridAddEditAfterClickPgButtons",["next",Ye(m),t[1][t[0]]]),Ye.jgrid.isFunction(K.afterclickPgButtons)&&K.afterclickPgButtons.call(u,"next",Ye(m),t[1][t[0]+1]),Q(),V(t[0]+1,t)}}return!1}),Ye("#pData",d).click(function(){if(O()){Ye(".FormError",m).hide();var e,t=W();if(-1!==t[0]&&t[1][t[0]-1]){if(Ye(u).triggerHandler("jqGridAddEditClickPgButtons",["prev",Ye(m),t[1][t[0]]]),Ye.jgrid.isFunction(K.onclickPgButtons)&&void 0!==(e=K.onclickPgButtons.call(u,"prev",Ye(m),t[1][t[0]]))&&!1===e)return!1;if(Ye("#"+Ye.jgrid.jqID(t[1][t[0]-1])).hasClass(Y.disabled))return!1;M(t[1][t[0]-1],u,m),u.p.multiselect&&J[u.p.id].editselected||Ye(u).jqGrid("setSelection",t[1][t[0]-1]),Ye(u).triggerHandler("jqGridAddEditAfterClickPgButtons",["prev",Ye(m),t[1][t[0]]]),Ye.jgrid.isFunction(K.afterclickPgButtons)&&K.afterclickPgButtons.call(u,"prev",Ye(m),t[1][t[0]-1]),Q(),V(t[0]-1,t)}}return!1}),Ye(u).triggerHandler("jqGridAddEditAfterShowForm",[Ye(m),g]),Ye.jgrid.isFunction(J[u.p.id].afterShowForm)&&J[u.p.id].afterShowForm.call(u,Ye(m),g),W());V(t[0],t),this.refreshEditForm=function(e,t){!(t=void 0===t?!1:t)&&X!==e||M(e,this,m),t&&(X=e)}}}function H(){var e,t,i={};for(e in Ye(v).find(".FormElement").each(function(){var e,t=Ye(".customelement",this);if(t.length){var t=t[0],r=Ye(t).attr("name");Ye.each(u.p.colModel,function(){if(this.name===r&&this.editoptions&&Ye.jgrid.isFunction(this.editoptions.custom_value)){try{var e=this.editoptions.custom_value.call(u,Ye("#"+Ye.jgrid.jqID(r),v),"get");if("#ignoreme#"!==e){if(void 0===crv)throw"e1";h[r]=e}}catch(e){"e1"===e?Ye.jgrid.info_dialog(b.errcap,"function 'custom_value' "+J[Ye(this)[0]].p.msg.novalue,J[Ye(this)[0]].p.bClose,{styleUI:J[Ye(this)[0]].p.styleUI}):Ye.jgrid.info_dialog(b.errcap,e.message,J[Ye(this)[0]].p.bClose,{styleUI:J[Ye(this)[0]].p.styleUI})}return!0}})}else{switch(Ye(this).get(0).type){case"checkbox":Ye(this).is(":checked")?h[this.name]=Ye(this).val():(e=Ye(this).attr("offval"),h[this.name]=e);break;case"select-one":h[this.name]=Ye(this).val();break;case"select-multiple":h[this.name]=Ye(this).val(),h[this.name]=h[this.name]?h[this.name].join(","):"";break;case"radio":if(i.hasOwnProperty(this.name))return!0;i[this.name]=void 0===Ye(this).attr("offval")?"off":Ye(this).attr("offval");break;default:h[this.name]=Ye(this).val()}u.p.autoencode&&(h[this.name]=Ye.jgrid.htmlEncode(h[this.name]))}}),i)i.hasOwnProperty(e)&&(t=Ye('input[name="'+e+'"]:checked',v).val(),h[e]=void 0!==t?t:i[e],u.p.autoencode)&&(h[e]=Ye.jgrid.htmlEncode(h[e]))}function M(r,i,o){var a,n,e,t,l,s,d=0,p=((J[u.p.id].checkOnSubmit||J[u.p.id].checkOnUpdate)&&(u.p.savedData={},u.p.savedData[i.p.id+"_id"]=r),i.p.colModel);"_empty"===r?(Ye(p).each(function(){a=this.name,l=Ye.extend({},this.editoptions||{}),(e=Ye("#"+Ye.jgrid.jqID(a),o))&&e.length&&null!==e[0]&&(t="","custom"===this.edittype&&Ye.jgrid.isFunction(l.custom_value)?l.custom_value.call(u,Ye("#"+a,o),"set",t):l.defaultValue?(t=Ye.jgrid.isFunction(l.defaultValue)?l.defaultValue.call(u):l.defaultValue,"checkbox"===e[0].type?(l=t.toLowerCase()).search(/(false|f|0|no|n|off|undefined)/i)<0&&""!==l?(e[0].checked=!0,e[0].defaultChecked=!0,e[0].value=t):(e[0].checked=!1,e[0].defaultChecked=!1):e.val(t)):"checkbox"===e[0].type?(e[0].checked=!1,e[0].defaultChecked=!1,t=Ye(e).attr("offval")):e[0].type&&"select"===e[0].type.slice(0,6)?e[0].selectedIndex=0:e.val(t),!0!==J[u.p.id].checkOnSubmit&&!J[u.p.id].checkOnUpdate||(u.p.savedData[a]=t))}),Ye("#id_g",o).val(r)):(s=Ye(i).jqGrid("getInd",r,!0))&&(Ye('td[role="gridcell"]',s).each(function(t){if("cb"!==(a=p[t].name)&&"subgrid"!==a&&"rn"!==a&&!0===p[t].editable&&"sc"!==a){if(a===i.p.ExpandColumn&&!0===i.p.treeGrid)n=Ye(this).text();else try{n=Ye.unformat.call(i,Ye(this),{rowId:r,colModel:p[t]},t)}catch(e){n="textarea"===p[t].edittype?Ye(this).text():Ye(this).html()}switch(u.p.autoencode&&(n=Ye.jgrid.htmlDecode(n)),!0!==J[u.p.id].checkOnSubmit&&!J[u.p.id].checkOnUpdate||(u.p.savedData[a]=n),a=Ye.jgrid.jqID(a),p[t].edittype){case"select":var e=n.split(","),e=Ye.map(e,function(e){return Ye.jgrid.trim(e)});Ye("#"+a+" option",o).each(function(){!(p[t].editoptions.multiple||Ye.jgrid.trim(n)!==Ye.jgrid.trim(Ye(this).text())&&e[0]!==Ye.jgrid.trim(Ye(this).text())&&e[0]!==Ye.jgrid.trim(Ye(this).val()))||p[t].editoptions.multiple&&(-1<Ye.inArray(Ye.jgrid.trim(Ye(this).text()),e)||-1<Ye.inArray(Ye.jgrid.trim(Ye(this).val()),e))?this.selected=!0:this.selected=!1}),!0!==J[u.p.id].checkOnSubmit&&!J[u.p.id].checkOnUpdate||(n=Ye("#"+a,o).val(),p[t].editoptions.multiple&&(n=n.join(",")),u.p.savedData[a]=n);break;case"checkbox":n=String(n),p[t].editoptions&&p[t].editoptions.value?p[t].editoptions.value.split(":")[0]===n?Ye("#"+a,o)[u.p.useProp?"prop":"attr"]({checked:!0,defaultChecked:!0}):Ye("#"+a,o)[u.p.useProp?"prop":"attr"]({checked:!1,defaultChecked:!1}):(n=n.toLowerCase()).search(/(false|f|0|no|n|off|undefined)/i)<0&&""!==n?(Ye("#"+a,o)[u.p.useProp?"prop":"attr"]("checked",!0),Ye("#"+a,o)[u.p.useProp?"prop":"attr"]("defaultChecked",!0)):(Ye("#"+a,o)[u.p.useProp?"prop":"attr"]("checked",!1),Ye("#"+a,o)[u.p.useProp?"prop":"attr"]("defaultChecked",!1)),!0!==J[u.p.id].checkOnSubmit&&!J[u.p.id].checkOnUpdate||(n=Ye("#"+a,o).is(":checked")?Ye("#"+a,o).val():Ye("#"+a,o).attr("offval"),u.p.savedData[a]=n);break;case"custom":try{if(!p[t].editoptions||!Ye.jgrid.isFunction(p[t].editoptions.custom_value))throw"e1";p[t].editoptions.custom_value.call(u,Ye("#"+a,o),"set",n)}catch(e){"e1"===e?Ye.jgrid.info_dialog(b.errcap,"function 'custom_value' "+J[Ye(this)[0]].p.msg.nodefined,Ye.rp_ge[Ye(this)[0]].p.bClose,{styleUI:J[Ye(this)[0]].p.styleUI}):Ye.jgrid.info_dialog(b.errcap,e.message,Ye.rp_ge[Ye(this)[0]].p.bClose,{styleUI:J[Ye(this)[0]].p.styleUI})}break;default:("&nbsp;"===n||"&#160;"===n||1===n.length&&160===n.charCodeAt(0))&&(n=""),Ye("#"+a,o).val(n)}d++}}),0<d)&&(Ye("#id_g",v).val(r),!0!==J[u.p.id].checkOnSubmit&&!J[u.p.id].checkOnUpdate||(u.p.savedData[i.p.id+"_id"]=r))}function U(){var o,a,n,e,t,l,r,s=[!0,"",""],i={},d=u.p.prmNames,p=Ye(u).triggerHandler("jqGridAddEditBeforeCheckValues",[h,Ye(m),g]);if(p&&"object"==typeof p&&(h=p),Ye.jgrid.isFunction(J[u.p.id].beforeCheckValues)&&(p=J[u.p.id].beforeCheckValues.call(u,h,Ye(m),g))&&"object"==typeof p&&(h=p),!J[u.p.id].html5Check||Ye.jgrid.validateForm(y[0])){for(e in h)if(h.hasOwnProperty(e)&&!1===(s=Ye.jgrid.checkValues.call(u,h[e],e))[0])break;if(Ye.each(u.p.colModel,function(e,t){t.editoptions&&!0===t.editoptions.NullIfEmpty&&h.hasOwnProperty(t.name)&&""===h[t.name]&&(h[t.name]="null")}),(s=s[0]&&(void 0===(i=Ye(u).triggerHandler("jqGridAddEditClickSubmit",[J[u.p.id],h,g]))&&Ye.jgrid.isFunction(J[u.p.id].onclickSubmit)&&(i=J[u.p.id].onclickSubmit.call(u,J[u.p.id],h,g)||{}),(s=void 0===(s=Ye(u).triggerHandler("jqGridAddEditBeforeSubmit",[h,Ye(m),g]))?[!0,"",""]:s)[0])&&Ye.jgrid.isFunction(J[u.p.id].beforeSubmit)?J[u.p.id].beforeSubmit.call(u,h,Ye(m),g):s)[0]&&!J[u.p.id].processing){if(J[u.p.id].processing=!0,Ye("#sData",v+"_2").addClass(Y.active),p=J[u.p.id].url||Ye(u).jqGrid("getGridParam","editurl"),n=d.oper,a="clientArray"===p||"storage"===p?u.p.keyName:d.id,h[n]="_empty"===Ye.jgrid.trim(h[u.p.id+"_id"])?d.addoper:d.editoper,(h[n]!==d.addoper||void 0===h[a])&&(h[a]=h[u.p.id+"_id"]),delete h[u.p.id+"_id"],h=Ye.extend(h,J[u.p.id].editData,i),!0===u.p.treeGrid)for(t in h[n]===d.addoper&&(l=Ye(u).jqGrid("getGridParam","selrow"),i="adjacency"===u.p.treeGridModel?u.p.treeReader.parent_id_field:"parent_id",h[i]=l),u.p.treeReader)u.p.treeReader.hasOwnProperty(t)&&(r=u.p.treeReader[t],!h.hasOwnProperty(r)||h[n]===d.addoper&&"parent_id_field"===t||delete h[r]);h[a]=Ye.jgrid.stripPref(u.p.idPrefix,h[a]);var c=Ye.extend({url:p,type:J[u.p.id].mtype,data:Ye.jgrid.isFunction(J[u.p.id].serializeEditData)?J[u.p.id].serializeEditData.call(u,h):h,success:function(e,t,r){if(Ye("#sData",v+"_2").removeClass(Y.active),h[a]=u.p.idPrefix+h[a],300<=r.status&&304!==r.status?(s[0]=!1,s[1]=Ye(u).triggerHandler("jqGridAddEditErrorTextFormat",[r,g]),Ye.jgrid.isFunction(J[u.p.id].errorTextFormat)?s[1]=J[u.p.id].errorTextFormat.call(u,r,g):s[1]=t+" Status: '"+r.statusText+"'. Error code: "+r.status):(s=void 0===(s=Ye(u).triggerHandler("jqGridAddEditAfterSubmit",[r,h,g]))?[!0,"",""]:s)[0]&&Ye.jgrid.isFunction(J[u.p.id].afterSubmit)&&(s=J[u.p.id].afterSubmit.call(u,r,h,g)),!1===s[0])Ye(".FormError",m).html(s[1]),Ye(".FormError",m).show();else if(u.p.autoencode&&Ye.each(h,function(e,t){h[e]=Ye.jgrid.htmlDecode(t)}),h[n]===d.addoper?(s[2]||(s[2]=Ye.jgrid.randId()),null==h[a]||h[a]===u.p.idPrefix+"_empty"||""===h[a]?h[a]=s[2]:s[2]=h[a],J[u.p.id].reloadAfterSubmit?Ye(u).trigger("reloadGrid"):!0===u.p.treeGrid?Ye(u).jqGrid("addChildNode",s[2],l,h):Ye(u).jqGrid("addRowData",s[2],h,K.addedrow),J[u.p.id].closeAfterAdd?(!0!==u.p.treeGrid&&Ye(u).jqGrid("setSelection",s[2]),Ye.jgrid.hideModal("#"+Ye.jgrid.jqID(j.themodal),{gb:"#gbox_"+Ye.jgrid.jqID(f),jqm:K.jqModal,onClose:J[u.p.id].onClose,removemodal:J[u.p.id].removemodal,formprop:!J[u.p.id].recreateForm,form:J[u.p.id].form})):J[u.p.id].clearAfterAdd&&M("_empty",u,m)):(J[u.p.id].reloadAfterSubmit?(Ye(u).trigger("reloadGrid"),J[u.p.id].closeAfterEdit||setTimeout(function(){Ye(u).jqGrid("setSelection",h[a])},1e3)):!0===u.p.treeGrid?Ye(u).jqGrid("setTreeRow",h[a],h):Ye(u).jqGrid("setRowData",h[a],h),J[u.p.id].closeAfterEdit&&Ye.jgrid.hideModal("#"+Ye.jgrid.jqID(j.themodal),{gb:"#gbox_"+Ye.jgrid.jqID(f),jqm:K.jqModal,onClose:J[u.p.id].onClose,removemodal:J[u.p.id].removemodal,formprop:!J[u.p.id].recreateForm,form:J[u.p.id].form})),(Ye.jgrid.isFunction(J[u.p.id].afterComplete)||Object.prototype.hasOwnProperty.call(Ye._data(Ye(u)[0],"events"),"jqGridAddEditAfterComplete"))&&(o=r,setTimeout(function(){Ye(u).triggerHandler("jqGridAddEditAfterComplete",[o,h,Ye(m),g]);try{J[u.p.id].afterComplete.call(u,o,h,Ye(m),g)}catch(e){}o=null},500)),(J[u.p.id].checkOnSubmit||J[u.p.id].checkOnUpdate)&&(Ye(m).data("disabled",!1),"_empty"!==u.p.savedData[u.p.id+"_id"]))for(var i in u.p.savedData)u.p.savedData.hasOwnProperty(i)&&h[i]&&(u.p.savedData[i]=h[i]);J[u.p.id].processing=!1;try{Ye(":input:visible",m)[0].focus()}catch(e){}}},Ye.jgrid.ajaxOptions,J[u.p.id].ajaxEditOptions);c.url||J[u.p.id].useDataProxy||(Ye.jgrid.isFunction(u.p.dataProxy)?J[u.p.id].useDataProxy=!0:(s[0]=!1,s[1]+=" "+b.nourl)),s[0]&&(J[u.p.id].useDataProxy?!1===(i=void 0===(i=u.p.dataProxy.call(u,c,"set_"+u.p.id))?[!0,""]:i)[0]?(s[0]=!1,s[1]=i[1]||"Error processing the row!"):(c.data.oper===d.addoper&&J[u.p.id].closeAfterAdd&&Ye.jgrid.hideModal("#"+Ye.jgrid.jqID(j.themodal),{gb:"#gbox_"+Ye.jgrid.jqID(f),jqm:K.jqModal,onClose:J[u.p.id].onClose,removemodal:J[u.p.id].removemodal,formprop:!J[u.p.id].recreateForm,form:J[u.p.id].form}),c.data.oper===d.editoper&&J[u.p.id].closeAfterEdit&&Ye.jgrid.hideModal("#"+Ye.jgrid.jqID(j.themodal),{gb:"#gbox_"+Ye.jgrid.jqID(f),jqm:K.jqModal,onClose:J[u.p.id].onClose,removemodal:J[u.p.id].removemodal,formprop:!J[u.p.id].recreateForm,form:J[u.p.id].form})):"clientArray"===c.url?(J[u.p.id].reloadAfterSubmit=!1,h=c.data,c.success(h,"",{status:200,statusText:""})):"storage"===c.url?h[n]===d.addoper?("_empty"===h[a]&&(h[a]=""),Ye(u).jqGrid("addStorageRecord",h).then(function(e){"complete"===e.type&&c.success(h,"",{status:200,statusText:""})}).catch(function(e){Ye.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")})):h[n]===d.editoper&&Ye(u).jqGrid("updateStorageRecord",h).then(function(e){"complete"===e.type&&c.success(h,"",{status:200,statusText:""})}).catch(function(e){Ye.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")}):Ye.ajax(c))}!1===s[0]&&(Ye(m).scrollTop(0),Ye(".FormError",m).html(s[1]),Ye(".FormError",m).show())}}function L(e,t){var r,i=!1;if(!(i=!(Ye.isPlainObject(e)&&Ye.isPlainObject(t)&&Object.getOwnPropertyNames(e).length===Object.getOwnPropertyNames(t).length)))for(r in t)if(t.hasOwnProperty(r)){if(!e.hasOwnProperty(r)){i=!0;break}if(e[r]!==t[r]){i=!0;break}}return i}function O(){var e=!0;return Ye(".FormError",m).hide(),J[u.p.id].checkOnUpdate&&(h={},H(),L(h,u.p.savedData))&&(Ye(m).data("disabled",!0),Ye(".confirm","#"+j.themodal).show(),e=!1),e}function V(e,t){var r=t[1].length-1;0===e||void 0!==t[1][e-1]&&Ye("#"+Ye.jgrid.jqID(t[1][e-1])).hasClass(Y.disabled)?Ye("#pData",d).addClass(Y.disabled):Ye("#pData",d).removeClass(Y.disabled),e===r||void 0!==t[1][e+1]&&Ye("#"+Ye.jgrid.jqID(t[1][e+1])).hasClass(Y.disabled)?Ye("#nData",d).addClass(Y.disabled):Ye("#nData",d).removeClass(Y.disabled)}function W(){var e=Ye(u).jqGrid("getDataIDs"),t=Ye("#id_g",v).val();if(u.p.multiselect&&J[u.p.id].editselected){for(var r=[],i=0,o=e.length;i<o;i++)-1!==Ye.inArray(e[i],u.p.selarrrow)&&r.push(e[i]);return[Ye.inArray(t,r),r]}return[Ye.inArray(t,e),e]}function Q(){if(J[u.p.id].checkOnSubmit||J[u.p.id].checkOnUpdate){var e,t,r=[],i={},r=Ye.map(u.p.savedData,function(e,t){return t});for(e in Ye(".FormElement",y).each(function(){if(""!==Ye.jgrid.trim(this.name)&&-1===r.indexOf(this.name)){var e=Ye(this).val(),t=Ye(this).get(0).type;if("checkbox"===t)Ye(this).is(":checked")||(e=Ye(this).attr("offval"));else if("select-multiple"===t)e=e.join(",");else if("radio"===t){if(i.hasOwnProperty(this.name))return!0;i[this.name]=void 0===Ye(this).attr("offval")?"off":Ye(this).attr("offval")}u.p.savedData[this.name]=e}}),i)i.hasOwnProperty(e)&&(t=Ye('input[name="'+e+'"]:checked',y).val(),u.p.savedData[e]=void 0!==t?t:i[e])}}})},viewGridRow:function(P,B){var e=Ye.jgrid.getRegional(this[0],"view"),t=this[0].p.styleUI,E=Ye.jgrid.styleUI[t].formedit,z=Ye.jgrid.styleUI[t].common;return B=Ye.extend(!0,{top:0,left:0,width:500,datawidth:"auto",height:"auto",dataheight:"auto",modal:!1,overlay:30,drag:!0,resize:!0,jqModal:!0,closeOnEscape:!1,labelswidth:"auto",closeicon:[],navkeys:[!1,38,40],onClose:null,beforeShowForm:null,beforeInitData:null,viewPagerButtons:!0,recreateForm:!1,removemodal:!0,form:"view",buttons:[]},e,B||{}),J[Ye(this)[0].p.id]=B,this.each(function(){var a=this;if(a.grid&&P){var i=a.p.id,o="ViewGrid_"+Ye.jgrid.jqID(i),l="ViewTbl_"+Ye.jgrid.jqID(i),r="ViewGrid_"+i,e="ViewTbl_"+i,t={themodal:"viewmod"+i,modalhead:"viewhd"+i,modalcontent:"viewcnt"+i,scrollelm:o},n=!0,s=1,d=0,p=(J[a.p.id].styleUI=a.p.styleUI||"jQueryUI",B.recreateForm||Ye(a).data("viewProp")&&Ye.extend(J[Ye(this)[0].p.id],Ye(a).data("viewProp")),isNaN(J[Ye(this)[0].p.id].dataheight)?J[Ye(this)[0].p.id].dataheight:J[Ye(this)[0].p.id].dataheight+"px"),c=isNaN(J[Ye(this)[0].p.id].datawidth)?J[Ye(this)[0].p.id].datawidth:J[Ye(this)[0].p.id].datawidth+"px",c=Ye("<form name='FormPost' id='"+r+"' class='FormGrid' style='width:"+c+";height:"+p+";'></form>"),u=Ye("<table id='"+e+"' class='EditTable ViewTable'><tbody></tbody></table>");if(Ye(a.p.colModel).each(function(){var e=this.formoptions;s=Math.max(s,e&&e.colpos||0),d=Math.max(d,e&&e.rowpos||0)}),Ye(c).append(u),!1!==(n=(n=void 0===(n=Ye(a).triggerHandler("jqGridViewRowBeforeInitData",[c]))?!0:n)&&Ye.jgrid.isFunction(J[a.p.id].beforeInitData)?J[a.p.id].beforeInitData.call(a,c):n)){for(var h,g,f,m,v,j,b,y,p=P,w=a,x=u,_=s,q=0,C="<td class='CaptionTD form-view-label "+z.content+"' width='"+B.labelswidth+"'></td><td class='DataTD form-view-data ui-helper-reset "+z.content+"'></td>",I="",A="<td class='CaptionTD form-view-label "+z.content+"'></td><td class='DataTD form-view-data "+z.content+"'></td>",T=["integer","number","currency"],D=0,F=0,G=1;G<=_;G++)I+=1===G?C:A;Ye(w.p.colModel).each(function(){(g=(!this.editrules||!0!==this.editrules.edithidden)&&!0===this.hidden)||"right"!==this.align||(this.formatter&&-1!==Ye.inArray(this.formatter,T)?D=Math.max(D,parseInt(this.width,10)):F=Math.max(F,parseInt(this.width,10)))}),j=0!==D?D:0!==F?F:0,v=Ye(w).jqGrid("getInd",p),Ye(w.p.colModel).each(function(e){var t,r,i,o;h=this.name,g=(!this.editrules||!0!==this.editrules.edithidden)&&!0===this.hidden,m=g?"style='display:none'":"",y="boolean"!=typeof this.viewable||this.viewable,"cb"!==h&&"subgrid"!==h&&"rn"!==h&&y&&"sc"!==h&&(y=!1===v?"":h===w.p.ExpandColumn&&!0===w.p.treeGrid?Ye("td",w.rows[v]).eq(e).text():Ye("td",w.rows[v]).eq(e).html(),b="right"===this.align&&0!==j,t=Ye.extend({},{rowabove:!1,rowcontent:""},this.formoptions||{}),r=parseInt(t.rowpos,10)||q+1,i=parseInt(2*(parseInt(t.colpos,10)||1),10),t.rowabove&&(o=Ye("<tr><td class='contentinfo' colspan='"+2*_+"'>"+t.rowcontent+"</td></tr>"),Ye(x).append(o),o[0].rp=r),0===(f=Ye(x).find("tr[rowpos="+r+"]")).length&&(f=Ye("<tr "+m+" rowpos='"+r+"'></tr>").addClass("FormData").attr("id","trv_"+h),Ye(f).append(I),Ye(x).append(f),f[0].rp=r),Ye("td",f[0]).eq(i-2).html("<b>"+(void 0===t.label?w.p.colNames[e]:t.label)+"</b>"),Ye("td",f[0]).eq(i-1).append("<span>"+y+"</span>").attr("id","v_"+h),b&&Ye("td",f[0]).eq(i-1).find("span").css({"text-align":"right",width:j+"px"}),q,q++)}),0<q&&((p=Ye("<tr class='FormData' style='display:none'><td class='CaptionTD'></td><td colspan='"+(2*_-1)+"' class='DataTD'><input class='FormElement' id='id_g' type='text' name='id' value='"+p+"'/></td></tr>"))[0].rp=q+99,Ye(x).append(p));var S,e="rtl"===a.p.direction,n="<a id='"+(e?"nData":"pData")+"' class='fm-button "+z.button+"'><span class='"+z.icon_base+" "+E.icon_prev+"'></span></a>",p="<a id='"+(e?"pData":"nData")+"' class='fm-button "+z.button+"'><span class='"+z.icon_base+" "+E.icon_next+"'></span></a>",k="<a id='cData' class='fm-button "+z.button+"'>"+B.bClose+"</a>",k=Array.isArray(J[a.p.id].buttons)?Ye.jgrid.buildButtons(J[a.p.id].buttons,k,z):k,c=(0<d&&(S=[],Ye.each(Ye(u)[0].rows,function(e,t){S[e]=t}),S.sort(function(e,t){return e.rp>t.rp?1:e.rp<t.rp?-1:0}),Ye.each(S,function(e,t){Ye("tbody",u).append(t)})),B.gbox="#gbox_"+Ye.jgrid.jqID(i),Ye("<div></div>").append(c).append("<table border='0' class='EditTable' id='"+l+"_2'><tbody><tr id='Act_Buttons'><td class='navButton' width='"+B.labelswidth+"'>"+(e?p+n:n+p)+"</td><td class='EditButton'>"+k+"</td></tr></tbody></table>")),n=Ye(".ui-jqgrid").css("font-size")||"11px",p=(Ye.jgrid.createModal(t,c,J[Ye(this)[0].p.id],"#gview_"+Ye.jgrid.jqID(a.p.id),Ye("#gview_"+Ye.jgrid.jqID(a.p.id))[0],null,{"font-size":n}),e&&(Ye("#pData, #nData","#"+l+"_2").css("float","right"),Ye(".EditButton","#"+l+"_2").css("text-align","left")),B.viewPagerButtons||Ye("#pData, #nData","#"+l+"_2").hide(),Ye("#"+t.themodal).keydown(function(e){return 27===e.which?(J[a.p.id].closeOnEscape&&Ye.jgrid.hideModal("#"+Ye.jgrid.jqID(t.themodal),{gb:B.gbox,jqm:B.jqModal,onClose:B.onClose,removemodal:J[a.p.id].removemodal,formprop:!J[a.p.id].recreateForm,form:J[a.p.id].form}),!1):!0===B.navkeys[0]?e.which===B.navkeys[1]?(Ye("#pData","#"+l+"_2").trigger("click"),!1):e.which===B.navkeys[2]?(Ye("#nData","#"+l+"_2").trigger("click"),!1):void 0:void 0}),B.closeicon=Ye.extend([!0,"left",E.icon_close],B.closeicon),!0===B.closeicon[0]&&Ye("#cData","#"+l+"_2").addClass("right"===B.closeicon[1]?"fm-button-icon-right":"fm-button-icon-left").append("<span class='"+z.icon_base+" "+B.closeicon[2]+"'></span>"),Ye(a).triggerHandler("jqGridViewRowBeforeShowForm",[Ye("#"+o)]),Ye.jgrid.isFunction(B.beforeShowForm)&&B.beforeShowForm.call(a,Ye("#"+o)),Ye.jgrid.viewModal("#"+Ye.jgrid.jqID(t.themodal),{gbox:"#gbox_"+Ye.jgrid.jqID(i),jqm:B.jqModal,overlay:B.overlay,modal:B.modal,onHide:function(e){var t="rtl"===Ye("#gbox_"+Ye.jgrid.jqID(i)).attr("dir"),r=parseFloat(Ye("#viewmod"+i)[0].style.width);Ye(a).data("viewProp",{top:parseFloat(Ye(e.w).css("top")),left:t?Ye("#gbox_"+Ye.jgrid.jqID(i)).outerWidth()-r-parseFloat(Ye(e.w).css("left"))+12:parseFloat(Ye(e.w).css("left")),width:Ye(e.w).width(),height:Ye(e.w).height(),dataheight:Ye("#"+o).height(),datawidth:Ye("#"+o).width()}),e.w.remove(),e.o&&e.o.remove()}}),Ye(".fm-button:not(."+z.disabled+")","#"+l+"_2").hover(function(){Ye(this).addClass(z.hover)},function(){Ye(this).removeClass(z.hover)}),R(),Ye("#cData","#"+l+"_2").click(function(){return Ye.jgrid.hideModal("#"+Ye.jgrid.jqID(t.themodal),{gb:"#gbox_"+Ye.jgrid.jqID(i),jqm:B.jqModal,onClose:B.onClose,removemodal:J[a.p.id].removemodal,formprop:!J[a.p.id].recreateForm,form:J[a.p.id].form}),!1}),Ye("#"+l+"_2").find("[data-index]").each(function(){var t=parseInt(Ye(this).attr("data-index"),10);0<=t&&B.buttons[t].hasOwnProperty("click")&&Ye(this).on("click",function(e){B.buttons[t].click.call(a,Ye("#"+r)[0],J[a.p.id],e)})}),Ye("#nData","#"+l+"_2").click(function(){Ye("#FormError","#"+l).hide();var e=O();return e[0]=parseInt(e[0],10),-1!==e[0]&&e[1][e[0]+1]&&(Ye(a).triggerHandler("jqGridViewRowClickPgButtons",["next",Ye("#"+o),e[1][e[0]]]),Ye.jgrid.isFunction(B.onclickPgButtons)&&B.onclickPgButtons.call(a,"next",Ye("#"+o),e[1][e[0]]),N(e[1][e[0]+1],a),a.p.multiselect&&J[a.p.id].viewselected||Ye(a).jqGrid("setSelection",e[1][e[0]+1]),Ye(a).triggerHandler("jqGridViewRowAfterClickPgButtons",["next",Ye("#"+o),e[1][e[0]+1]]),Ye.jgrid.isFunction(B.afterclickPgButtons)&&B.afterclickPgButtons.call(a,"next",Ye("#"+o),e[1][e[0]+1]),M(e[0]+1,e)),R(),!1}),Ye("#pData","#"+l+"_2").click(function(){Ye("#FormError","#"+l).hide();var e=O();return-1!==e[0]&&e[1][e[0]-1]&&(Ye(a).triggerHandler("jqGridViewRowClickPgButtons",["prev",Ye("#"+o),e[1][e[0]]]),Ye.jgrid.isFunction(B.onclickPgButtons)&&B.onclickPgButtons.call(a,"prev",Ye("#"+o),e[1][e[0]]),N(e[1][e[0]-1],a),a.p.multiselect&&J[a.p.id].viewselected||Ye(a).jqGrid("setSelection",e[1][e[0]-1]),Ye(a).triggerHandler("jqGridViewRowAfterClickPgButtons",["prev",Ye("#"+o),e[1][e[0]-1]]),Ye.jgrid.isFunction(B.afterclickPgButtons)&&B.afterclickPgButtons.call(a,"prev",Ye("#"+o),e[1][e[0]-1]),M(e[0]-1,e)),R(),!1}),O());M(p[0],p),this.refreshViewForm=function(e,t){!(t=void 0===t?!1:t)&&P!==e||N(e,this),t&&(P=e)}}}function R(){!0!==J[a.p.id].closeOnEscape&&!0!==J[a.p.id].navkeys[0]||setTimeout(function(){Ye(".ui-jqdialog-titlebar-close","#"+Ye.jgrid.jqID(t.modalhead)).attr("tabindex","-1").focus()},0)}function N(e,t){var r,i,o,a=0,n=Ye(t).jqGrid("getInd",e,!0);n&&(Ye("td",n).each(function(e){r=t.p.colModel[e].name,i=(!t.p.colModel[e].editrules||!0!==t.p.colModel[e].editrules.edithidden)&&!0===t.p.colModel[e].hidden,"cb"!==r&&"subgrid"!==r&&"rn"!==r&&"sc"!==r&&(o=r===t.p.ExpandColumn&&!0===t.p.treeGrid?Ye(this).text():Ye(this).html(),r=Ye.jgrid.jqID("v_"+r),Ye("#"+r+" span","#"+l).html(o),i&&Ye("#"+r,"#"+l).parents("tr").first().hide(),a++)}),0<a)&&Ye("#id_g","#"+l).val(e)}function M(e,t){var r=t[1].length-1;0===e?Ye("#pData","#"+l+"_2").addClass(z.disabled):void 0!==t[1][e-1]&&Ye("#"+Ye.jgrid.jqID(t[1][e-1])).hasClass(z.disabled)?Ye("#pData",l+"_2").addClass(z.disabled):Ye("#pData","#"+l+"_2").removeClass(z.disabled),e===r?Ye("#nData","#"+l+"_2").addClass(z.disabled):void 0!==t[1][e+1]&&Ye("#"+Ye.jgrid.jqID(t[1][e+1])).hasClass(z.disabled)?Ye("#nData",l+"_2").addClass(z.disabled):Ye("#nData","#"+l+"_2").removeClass(z.disabled)}function O(){var e=Ye(a).jqGrid("getDataIDs"),t=Ye("#id_g","#"+l).val();if(a.p.multiselect&&J[a.p.id].viewselected){for(var r=[],i=0,o=e.length;i<o;i++)-1!==Ye.inArray(e[i],a.p.selarrrow)&&r.push(e[i]);return[Ye.inArray(t,r),r]}return[Ye.inArray(t,e),e]}})},delGridRow:function(h,g){var e=Ye.jgrid.getRegional(this[0],"del"),t=this[0].p.styleUI,f=Ye.jgrid.styleUI[t].formedit,m=Ye.jgrid.styleUI[t].common;return g=Ye.extend(!0,{top:0,left:0,width:300,height:"auto",dataheight:"auto",modal:!1,overlay:30,drag:!0,resize:!0,url:"",mtype:"POST",reloadAfterSubmit:!0,beforeShowForm:null,beforeInitData:null,afterShowForm:null,beforeSubmit:null,onclickSubmit:null,afterSubmit:null,jqModal:!0,closeOnEscape:!1,delData:{},delicon:[],cancelicon:[],onClose:null,ajaxDelOptions:{},processing:!1,serializeDelData:null,useDataProxy:!1},e,g||{}),J[Ye(this)[0].p.id]=g,this.each(function(){var l=this;if(l.grid&&h){var s,i,o,d=l.p.id,p={},e=!0,c="DelTbl_"+Ye.jgrid.jqID(d),r="DelTbl_"+d,u={themodal:"delmod"+d,modalhead:"delhd"+d,modalcontent:"delcnt"+d,scrollelm:c};if(J[l.p.id].styleUI=l.p.styleUI||"jQueryUI",Array.isArray(h)&&(h=h.join()),void 0!==Ye("#"+Ye.jgrid.jqID(u.themodal))[0]){if(!1===(e=(e=void 0===(e=Ye(l).triggerHandler("jqGridDelRowBeforeInitData",[Ye("#"+c)]))?!0:e)&&Ye.jgrid.isFunction(J[l.p.id].beforeInitData)?J[l.p.id].beforeInitData.call(l,Ye("#"+c)):e))return;Ye("#DelData>td","#"+c).text(h),Ye("#DelError","#"+c).hide(),!0===J[l.p.id].processing&&(J[l.p.id].processing=!1,Ye("#dData","#"+c).removeClass(m.active))}else{var t=isNaN(J[l.p.id].dataheight)?J[l.p.id].dataheight:J[l.p.id].dataheight+"px",a=isNaN(g.datawidth)?g.datawidth:g.datawidth+"px",a="<div id='"+r+"' class='formdata' style='width:"+a+";overflow:auto;position:relative;height:"+t+";'>",t=(a=(a=(a=a+"<table class='DelTable'><tbody>"+("<tr id='DelError' style='display:none'><td class='"+m.error+"'></td></tr>"))+("<tr id='DelData' style='display:none'><td >"+h+"</td></tr>"))+('<tr><td class="delmsg" style="white-space:pre;">'+J[l.p.id].msg+"</td></tr><tr><td >&#160;</td></tr>")+"</tbody></table></div>","<a id='dData' class='fm-button "+m.button+"'>"+g.bSubmit+"</a>"),n="<a id='eData' class='fm-button "+m.button+"'>"+g.bCancel+"</a>",t=Array.isArray(J[l.p.id].buttons)?Ye.jgrid.buildButtons(J[l.p.id].buttons,t+n,m):t+n,n=Ye(".ui-jqgrid").css("font-size")||"11px";if(a+="<table class='EditTable ui-common-table' id='"+c+"_2'><tbody><tr><td><hr class='"+m.content+"' style='margin:1px'/></td></tr><tr><td class='DelButton EditButton'>"+t+"</td></tr></tbody></table>",g.gbox="#gbox_"+Ye.jgrid.jqID(d),Ye.jgrid.createModal(u,a,J[l.p.id],"#gview_"+Ye.jgrid.jqID(l.p.id),Ye("#gview_"+Ye.jgrid.jqID(l.p.id))[0],null,{"font-size":n}),Ye(".fm-button","#"+c+"_2").hover(function(){Ye(this).addClass(m.hover)},function(){Ye(this).removeClass(m.hover)}),g.delicon=Ye.extend([!0,"left",f.icon_del],J[l.p.id].delicon),g.cancelicon=Ye.extend([!0,"left",f.icon_cancel],J[l.p.id].cancelicon),!0===g.delicon[0]&&Ye("#dData","#"+c+"_2").addClass("right"===g.delicon[1]?"fm-button-icon-right":"fm-button-icon-left").append("<span class='"+m.icon_base+" "+g.delicon[2]+"'></span>"),!0===g.cancelicon[0]&&Ye("#eData","#"+c+"_2").addClass("right"===g.cancelicon[1]?"fm-button-icon-right":"fm-button-icon-left").append("<span class='"+m.icon_base+" "+g.cancelicon[2]+"'></span>"),Ye("#dData","#"+c+"_2").click(function(){var e,a=[!0,""],n=Ye("#DelData>td","#"+c).text();if(p={},void 0===(p=Ye(l).triggerHandler("jqGridDelRowClickSubmit",[J[l.p.id],n]))&&Ye.jgrid.isFunction(J[l.p.id].onclickSubmit)&&(p=J[l.p.id].onclickSubmit.call(l,J[l.p.id],n)||{}),(a=(a=void 0===(a=Ye(l).triggerHandler("jqGridDelRowBeforeSubmit",[n]))?[!0,"",""]:a)[0]&&Ye.jgrid.isFunction(J[l.p.id].beforeSubmit)?J[l.p.id].beforeSubmit.call(l,n):a)[0]&&!J[l.p.id].processing){if(J[l.p.id].processing=!0,i=l.p.prmNames,s=Ye.extend({},J[l.p.id].delData,p),o=i.oper,s[o]=i.deloper,o=i.id,!(n=String(n).split(",")).length)return!1;for(e in n)n.hasOwnProperty(e)&&(n[e]=Ye.jgrid.stripPref(l.p.idPrefix,n[e]));s[o]=n.join(),Ye(this).addClass(m.active);var t,r=Ye.extend({url:J[l.p.id].url||Ye(l).jqGrid("getGridParam","editurl"),type:J[l.p.id].mtype,data:Ye.jgrid.isFunction(J[l.p.id].serializeDelData)?J[l.p.id].serializeDelData.call(l,s):s,success:function(e,t,r){var i,o;if(Ye("#dData","#"+c+"_2").removeClass(m.active),300<=r.status&&304!==r.status?(a[0]=!1,a[1]=Ye(l).triggerHandler("jqGridDelRowErrorTextFormat",[r]),Ye.jgrid.isFunction(J[l.p.id].errorTextFormat)&&(a[1]=J[l.p.id].errorTextFormat.call(l,r)),void 0===a[1]&&(a[1]=t+" Status: '"+r.statusText+"'. Error code: "+r.status)):(a=void 0===(a=Ye(l).triggerHandler("jqGridDelRowAfterSubmit",[r,s]))?[!0,"",""]:a)[0]&&Ye.jgrid.isFunction(J[l.p.id].afterSubmit)&&(a=J[l.p.id].afterSubmit.call(l,r,s)),!1===a[0])Ye("#DelError>td","#"+c).html(a[1]),Ye("#DelError","#"+c).show();else{if(J[l.p.id].reloadAfterSubmit&&"local"!==l.p.datatype)Ye(l).trigger("reloadGrid");else{if(!0===l.p.treeGrid)try{Ye(l).jqGrid("delTreeNode",l.p.idPrefix+n[0],!0)}catch(e){}else for(i=0;i<n.length;i++)Ye(l).jqGrid("delRowData",l.p.idPrefix+n[i]);l.p.selrow=null,l.p.selarrrow=[]}(Ye.jgrid.isFunction(J[l.p.id].afterComplete)||Object.prototype.hasOwnProperty.call(Ye._data(Ye(l)[0],"events"),"jqGridDelRowAfterComplete"))&&(o=r,setTimeout(function(){Ye(l).triggerHandler("jqGridDelRowAfterComplete",[o,s]);try{J[l.p.id].afterComplete.call(l,o,s)}catch(e){}},500))}J[l.p.id].processing=!1,a[0]&&Ye.jgrid.hideModal("#"+Ye.jgrid.jqID(u.themodal),{gb:"#gbox_"+Ye.jgrid.jqID(d),jqm:g.jqModal,onClose:J[l.p.id].onClose})}},Ye.jgrid.ajaxOptions,J[l.p.id].ajaxDelOptions);r.url||J[l.p.id].useDataProxy||(Ye.jgrid.isFunction(l.p.dataProxy)?J[l.p.id].useDataProxy=!0:(a[0]=!1,a[1]+=" "+Ye.jgrid.getRegional(l,"errors.nourl"))),a[0]&&(J[l.p.id].useDataProxy?!1===(t=void 0===(t=l.p.dataProxy.call(l,r,"del_"+l.p.id))?[!0,""]:t)[0]?(a[0]=!1,a[1]=t[1]||"Error deleting the selected row!"):Ye.jgrid.hideModal("#"+Ye.jgrid.jqID(u.themodal),{gb:"#gbox_"+Ye.jgrid.jqID(d),jqm:g.jqModal,onClose:J[l.p.id].onClose}):"clientArray"===r.url?(s=r.data,r.success({status:200,statusText:""},"")):"storage"===r.url?Ye(l).jqGrid("deleteStorageRecord",n).then(function(e){"complete"===e.type&&r.success(n,"",{status:200,statusText:""})}).catch(function(e){Ye.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")}):Ye.ajax(r))}return!1===a[0]&&(Ye("#DelError>td","#"+c).html(a[1]),Ye("#DelError","#"+c).show()),!1}),Ye("#eData","#"+c+"_2").click(function(){return Ye.jgrid.hideModal("#"+Ye.jgrid.jqID(u.themodal),{gb:"#gbox_"+Ye.jgrid.jqID(d),jqm:J[l.p.id].jqModal,onClose:J[l.p.id].onClose}),!1}),Ye("#"+c+"_2").find("[data-index]").each(function(){var t=parseInt(Ye(this).attr("data-index"),10);0<=t&&g.buttons[t].hasOwnProperty("click")&&Ye(this).on("click",function(e){g.buttons[t].click.call(l,Ye("#"+r)[0],J[l.p.id],e)})}),!1===(e=(e=void 0===(e=Ye(l).triggerHandler("jqGridDelRowBeforeInitData",[Ye("#"+c)]))?!0:e)&&Ye.jgrid.isFunction(J[l.p.id].beforeInitData)?J[l.p.id].beforeInitData.call(l,Ye("#"+c)):e))return}Ye(l).triggerHandler("jqGridDelRowBeforeShowForm",[Ye("#"+c)]),Ye.jgrid.isFunction(J[l.p.id].beforeShowForm)&&J[l.p.id].beforeShowForm.call(l,Ye("#"+c)),Ye.jgrid.viewModal("#"+Ye.jgrid.jqID(u.themodal),{gbox:"#gbox_"+Ye.jgrid.jqID(d),jqm:J[l.p.id].jqModal,overlay:J[l.p.id].overlay,modal:J[l.p.id].modal}),Ye(l).triggerHandler("jqGridDelRowAfterShowForm",[Ye("#"+c)]),Ye.jgrid.isFunction(J[l.p.id].afterShowForm)&&J[l.p.id].afterShowForm.call(l,Ye("#"+c)),!0===J[l.p.id].closeOnEscape&&setTimeout(function(){Ye(".ui-jqdialog-titlebar-close","#"+Ye.jgrid.jqID(u.modalhead)).attr("tabindex","-1").focus()},0)}})},navGrid:function(g,f,m,v,j,b,y){var w=Ye.jgrid.getRegional(this[0],"nav"),x=this[0].p.styleUI,e=Ye.jgrid.styleUI[x].navigator,_=Ye.jgrid.styleUI[x].common;return f=Ye.extend({edit:!0,editicon:e.icon_edit_nav,add:!0,addicon:e.icon_add_nav,del:!0,delicon:e.icon_del_nav,search:!0,searchicon:e.icon_search_nav,refresh:!0,refreshicon:e.icon_refresh_nav,refreshstate:"firstpage",view:!1,viewicon:e.icon_view_nav,position:"left",closeOnEscape:!0,beforeRefresh:null,afterRefresh:null,cloneToTop:!1,alertwidth:200,alertheight:"auto",alerttop:null,alertleft:null,alertzIndex:null,dropmenu:!1,navButtonText:""},w,f||{}),this.each(function(){if(!this.p.navGrid){var t,r=this;if(r.grid&&"string"==typeof g){Ye(r).data("navGrid")||Ye(r).data("navGrid",f),t=Ye(r).data("navGrid"),(t=r.p.force_regional?Ye.extend(t,w):t).alerttop||t.alertleft||((e=Ye.jgrid.findPos(this))[0]=Math.round(e[0]),e[1]=Math.round(e[1]),0===(i=isNaN(this.p.height)?Ye(r.grid.bDiv).height():this.p.height)&&(i=200),t.alertleft=e[0]+this.p.width/2-parseInt(t.alertwidth,10)/2,t.alerttop=e[1]+i/2-25);var e,i,o,a=function(){Ye.jgrid.info_dialog(t.alertcap,"<div>"+t.alerttext+"</div><span tabindex='0'><span tabindex='-1' id='jqg_alrt'></span></span>","",{jqModal:!0,drag:!0,resize:!0,caption:t.alertcap,width:t.alertwidth,height:t.alertheight,top:t.alerttop,left:t.alertleft,closeOnEscape:t.closeOnEscape,styleUI:r.p.styleUI,zIndex:t.alertzIndex})},n=1,l=function(){Ye(this).hasClass(_.disabled)||Ye(this).addClass(_.hover)},s=function(){Ye(this).removeClass(_.hover)};for(t.cloneToTop&&r.p.toppager&&(n=2),o=0;o<n;o++){var d,p,c,u=Ye("<table class='ui-pg-table navtable ui-common-table'><tbody><tr></tr></tbody></table>"),h="<td class='ui-pg-button "+_.disabled+"' style='width:4px;'><span class='ui-separator'></span></td>";0===o?(0===(p=g).indexOf("#")&&(p=p.substring(1),p="#"+Ye.jgrid.jqID(p)),c=r.p.id,p===r.p.toppager&&(c+="_top",n=1)):(p=r.p.toppager,c=r.p.id+"_top"),"rtl"===r.p.direction&&Ye(u).attr("dir","rtl").css("float","right"),v=v||{},t.add&&(d=Ye("<td class='ui-pg-button "+_.cornerall+"'></td>"),Ye(d).append("<div class='ui-pg-div'><span class='"+_.icon_base+" "+t.addicon+"'></span>"+t.addtext+"</div>"),Ye("tr",u).append(d),Ye(d,u).attr({title:t.addtitle||"",id:v.id||"add_"+c}).click(function(){return Ye(this).hasClass(_.disabled)||(Ye.jgrid.setSelNavIndex(r,this),Ye.jgrid.isFunction(t.addfunc)?t.addfunc.call(r):Ye(r).jqGrid("editGridRow","new",v)),!1}).hover(l,s),d=null),m=m||{},t.edit&&(d=Ye("<td class='ui-pg-button "+_.cornerall+"'></td>"),Ye(d).append("<div class='ui-pg-div'><span class='"+_.icon_base+" "+t.editicon+"'></span>"+t.edittext+"</div>"),Ye("tr",u).append(d),Ye(d,u).attr({title:t.edittitle||"",id:m.id||"edit_"+c}).click(function(){var e;return Ye(this).hasClass(_.disabled)||((e=r.p.selrow)?(Ye.jgrid.setSelNavIndex(r,this),Ye.jgrid.isFunction(t.editfunc)?t.editfunc.call(r,e):Ye(r).jqGrid("editGridRow",e,m)):(a(),Ye("#jqg_alrt").focus())),!1}).hover(l,s),d=null),y=y||{},t.view&&(d=Ye("<td class='ui-pg-button "+_.cornerall+"'></td>"),Ye(d).append("<div class='ui-pg-div'><span class='"+_.icon_base+" "+t.viewicon+"'></span>"+t.viewtext+"</div>"),Ye("tr",u).append(d),Ye(d,u).attr({title:t.viewtitle||"",id:y.id||"view_"+c}).click(function(){var e;return Ye(this).hasClass(_.disabled)||((e=r.p.selrow)?(Ye.jgrid.setSelNavIndex(r,this),Ye.jgrid.isFunction(t.viewfunc)?t.viewfunc.call(r,e):Ye(r).jqGrid("viewGridRow",e,y)):(a(),Ye("#jqg_alrt").focus())),!1}).hover(l,s),d=null),j=j||{},t.del&&(d=Ye("<td class='ui-pg-button "+_.cornerall+"'></td>"),Ye(d).append("<div class='ui-pg-div'><span class='"+_.icon_base+" "+t.delicon+"'></span>"+t.deltext+"</div>"),Ye("tr",u).append(d),Ye(d,u).attr({title:t.deltitle||"",id:j.id||"del_"+c}).click(function(){var e;return Ye(this).hasClass(_.disabled)||(r.p.multiselect?0===(e=r.p.selarrrow).length&&(e=null):e=r.p.selrow,e?(Ye.jgrid.setSelNavIndex(r,this),Ye.jgrid.isFunction(t.delfunc)?t.delfunc.call(r,e):Ye(r).jqGrid("delGridRow",e,j)):a()),!1}).hover(l,s),d=null),(t.add||t.edit||t.del||t.view)&&Ye("tr",u).append(h),b=b||{},t.search&&(d=Ye("<td class='ui-pg-button "+_.cornerall+"'></td>"),Ye(d).append("<div class='ui-pg-div'><span class='"+_.icon_base+" "+t.searchicon+"'></span>"+t.searchtext+"</div>"),Ye("tr",u).append(d),Ye(d,u).attr({title:t.searchtitle||"",id:b.id||"search_"+c}).click(function(){return Ye(this).hasClass(_.disabled)||(Ye.jgrid.setSelNavIndex(r,this),Ye.jgrid.isFunction(t.searchfunc)?t.searchfunc.call(r,b):Ye(r).jqGrid("searchGrid",b)),!1}).hover(l,s),b.showOnLoad&&!0===b.showOnLoad&&Ye(d,u).click(),d=null),t.refresh&&(d=Ye("<td class='ui-pg-button "+_.cornerall+"'></td>"),Ye(d).append("<div class='ui-pg-div'><span class='"+_.icon_base+" "+t.refreshicon+"'></span>"+t.refreshtext+"</div>"),Ye("tr",u).append(d),Ye(d,u).attr({title:t.refreshtitle||"",id:"refresh_"+c}).click(function(){if(!Ye(this).hasClass(_.disabled)){Ye.jgrid.isFunction(t.beforeRefresh)&&t.beforeRefresh.call(r),r.p.search=!1,r.p.resetsearch=!0;try{if("currentfilter"!==t.refreshstate){var e=r.p.id;r.p.postData.filters="";try{Ye("#fbox_"+Ye.jgrid.jqID(e)).jqFilter("resetFilter")}catch(e){}Ye.jgrid.isFunction(r.clearToolbar)&&r.clearToolbar.call(r,!1)}}catch(e){}switch(t.refreshstate){case"firstpage":Ye(r).trigger("reloadGrid",[{page:1}]);break;case"current":case"currentfilter":Ye(r).trigger("reloadGrid",[{current:!0}])}Ye.jgrid.isFunction(t.afterRefresh)&&t.afterRefresh.call(r),Ye.jgrid.setSelNavIndex(r,this)}return!1}).hover(l,s),d=null),h=Ye(".ui-jqgrid").css("font-size")||"11px",Ye("body").append("<div id='testpg2' class='ui-jqgrid "+Ye.jgrid.styleUI[x].base.entrieBox+"' style='font-size:"+h+";visibility:hidden;' ></div>"),h=Ye(u).clone().appendTo("#testpg2").width(),Ye("#testpg2").remove(),r.p._nvtd&&(t.dropmenu?(u=null,Ye(r).jqGrid("_buildNavMenu",p,c,Ye.extend(f,{ainfo:a}),m,v,j,b,y)):h>r.p._nvtd[0]?(r.p.responsive?(u=null,Ye(r).jqGrid("_buildNavMenu",p,c,Ye.extend(f,{ainfo:a}),m,v,j,b,y)):Ye(p+"_"+t.position,p).append(u).width(h),r.p._nvtd[0]=h):Ye(p+"_"+t.position,p).append(u),r.p._nvtd[1]=h),r.p.navGrid=!0}r.p.storeNavOptions&&(r.p.navOptions=t,r.p.editOptions=m,r.p.addOptions=v,r.p.delOptions=j,r.p.searchOptions=b,r.p.viewOptions=y,r.p.navButtons=[])}}})},navButtonAdd:function(s,d){var p=this[0].p.styleUI,e=Ye.jgrid.styleUI[p].navigator;return d=Ye.extend({caption:"newButton",title:"",buttonicon:e.icon_newbutton_nav,onClickButton:null,position:"last",cursor:"pointer",internal:!1},d||{}),this.each(function(){var t,r,e,i,o,a,n,l;this.grid&&"string"==typeof s&&(0===s.indexOf("#")&&(s=s.substring(1)),s="#"+Ye.jgrid.jqID(s),l=Ye(".navtable",s)[0],r=Ye.jgrid.styleUI[p].common.disabled,e=Ye.jgrid.styleUI[p].common.hover,i=Ye.jgrid.styleUI[p].common.cornerall,a=Ye.jgrid.styleUI[p].common.icon_base,(t=this).p.storeNavOptions&&!d.internal&&t.p.navButtons.push([s,d]),l?d.id&&void 0!==Ye("#"+Ye.jgrid.jqID(d.id),l)[0]||(n=Ye("<td></td>"),"NONE"===d.buttonicon.toString().toUpperCase()?Ye(n).addClass("ui-pg-button "+i).append("<div class='ui-pg-div'>"+d.caption+"</div>"):Ye(n).addClass("ui-pg-button "+i).append("<div class='ui-pg-div'><span class='"+a+" "+d.buttonicon+"'></span>"+d.caption+"</div>"),d.id&&Ye(n).attr("id",d.id),"first"!==d.position||0===l.rows[0].cells.length?Ye("tr",l).append(n):Ye("tr td",l).eq(0).before(n),Ye(n,l).attr("title",d.title||"").click(function(e){return Ye(this).hasClass(r)||(Ye.jgrid.setSelNavIndex(t,this),Ye.jgrid.isFunction(d.onClickButton)&&d.onClickButton.call(t,e)),!1}).hover(function(){Ye(this).hasClass(r)||Ye(this).addClass(e)},function(){Ye(this).removeClass(e)})):(l=Ye(".dropdownmenu",s)[0])&&(o=Ye(l).val(),a=d.id||Ye.jgrid.randId(),n=Ye('<li class="ui-menu-item" role="presentation"><a class="'+i+' g-menu-item" tabindex="0" role="menuitem" id="'+a+'">'+(d.caption||d.title)+"</a></li>"),o)&&("first"===d.position?Ye("#"+o).prepend(n):Ye("#"+o).append(n),Ye(n).on("click",function(e){return Ye(this).hasClass(r)||(Ye("#"+o).hide(),Ye.jgrid.isFunction(d.onClickButton)&&d.onClickButton.call(t,e)),!1}).find("a").hover(function(){Ye(this).hasClass(r)||Ye(this).addClass(e)},function(){Ye(this).removeClass(e)})))})},navSeparatorAdd:function(r,i){var e=this[0].p.styleUI,o=Ye.jgrid.styleUI[e].common;return i=Ye.extend({sepclass:"ui-separator",sepcontent:"",position:"last"},i||{}),this.each(function(){var e,t;this.grid&&("string"==typeof r&&0!==r.indexOf("#")&&(r="#"+Ye.jgrid.jqID(r)),t=Ye(".navtable",r)[0],this.p.storeNavOptions&&this.p.navButtons.push([r,i]),t?(e="<td class='ui-pg-button "+o.disabled+"' style='width:4px;'><span class='"+i.sepclass+"'></span>"+i.sepcontent+"</td>","first"!==i.position||0===t.rows[0].cells.length?Ye("tr",t).append(e):Ye("tr td",t).eq(0).before(e)):(t=Ye(".dropdownmenu",r)[0],e="<li class='ui-menu-item "+o.disabled+"' style='width:100%' role='presentation'><hr class='ui-separator-li'></li>",t&&(t=Ye(t).val())&&("first"===i.position?Ye("#"+t).prepend(e):Ye("#"+t).append(e))))})},_buildNavMenu:function(d,p,c,u,h,g,f,m){return this.each(function(){var e,t,r,i=this,o=Ye.jgrid.getRegional(i,"nav"),a=i.p.styleUI,n=Ye.jgrid.styleUI[a].filter,l=Ye.jgrid.styleUI[a].common,s="form_menu_"+Ye.jgrid.randId(),a=c.navButtonText||o.selectcaption||"Actions",o="<button class='dropdownmenu "+l.button+"' value='"+s+"'>"+a+"</button>";Ye(d+"_"+c.position,d).append(o);a=Ye(".ui-jqgrid").css("font-size")||"11px",r=Ye('<ul id="'+s+'" class="ui-nav-menu modal-content ui-menu column-menu jqgrid-column-menu '+l.shadow+'" role="menu" tabindex="0" style="display:none;font-size:'+a+'"></ul>'),c.add&&(e=(h=h||{}).id||"add_"+p,t=Ye('<li class="ui-menu-item" role="presentation"><a class="'+l.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+e+'">'+(c.addtext.trim()||c.addtitle)+"</a></li>").click(function(){return Ye(this).hasClass(l.disabled)||(Ye.jgrid.isFunction(c.addfunc)?c.addfunc.call(i):Ye(i).jqGrid("editGridRow","new",h),Ye(r).hide()),!1}),Ye(r).append(t)),c.edit&&(e=(u=u||{}).id||"edit_"+p,t=Ye('<li class="ui-menu-item" role="presentation"><a class="'+l.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+e+'">'+(c.edittext.trim()||c.edittitle)+"</a></li>").click(function(){var e;return Ye(this).hasClass(l.disabled)||((e=i.p.selrow)?Ye.jgrid.isFunction(c.editfunc)?c.editfunc.call(i,e):Ye(i).jqGrid("editGridRow",e,u):(c.ainfo(),Ye("#jqg_alrt").focus()),Ye(r).hide()),!1}),Ye(r).append(t)),c.view&&(e=(m=m||{}).id||"view_"+p,t=Ye('<li class="ui-menu-item" role="presentation"><a class="'+l.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+e+'">'+(c.viewtext.trim()||c.viewtitle)+"</a></li>").click(function(){var e;return Ye(this).hasClass(l.disabled)||((e=i.p.selrow)?Ye.jgrid.isFunction(c.editfunc)?c.viewfunc.call(i,e):Ye(i).jqGrid("viewGridRow",e,m):(c.ainfo(),Ye("#jqg_alrt").focus()),Ye(r).hide()),!1}),Ye(r).append(t)),c.del&&(e=(g=g||{}).id||"del_"+p,t=Ye('<li class="ui-menu-item" role="presentation"><a class="'+l.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+e+'">'+(c.deltext.trim()||c.deltitle)+"</a></li>").click(function(){var e;return Ye(this).hasClass(l.disabled)||(i.p.multiselect?0===(e=i.p.selarrrow).length&&(e=null):e=i.p.selrow,e?Ye.jgrid.isFunction(c.delfunc)?c.delfunc.call(i,e):Ye(i).jqGrid("delGridRow",e,g):c.ainfo(),Ye(r).hide()),!1}),Ye(r).append(t)),(c.add||c.edit||c.del||c.view)&&Ye(r).append("<li class='ui-menu-item "+l.disabled+"' style='width:100%' role='presentation'><hr class='ui-separator-li'></li>"),c.search&&(e=(f=f||{}).id||"search_"+p,t=Ye('<li class="ui-menu-item" role="presentation"><a class="'+l.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+e+'">'+(c.searchtext.trim()||c.searchtitle)+"</a></li>").click(function(){return Ye(this).hasClass(l.disabled)||(Ye.jgrid.isFunction(c.searchfunc)?c.searchfunc.call(i,f):Ye(i).jqGrid("searchGrid",f),Ye(r).hide()),!1}),Ye(r).append(t),f.showOnLoad)&&!0===f.showOnLoad&&Ye(t).click(),c.refresh&&(e=f.id||"search_"+p,t=Ye('<li class="ui-menu-item" role="presentation"><a class="'+l.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+e+'">'+(c.refreshtext||c.refreshtitle)+"</a></li>").click(function(){if(!Ye(this).hasClass(l.disabled)){Ye.jgrid.isFunction(c.beforeRefresh)&&c.beforeRefresh.call(i),i.p.search=!1,i.p.resetsearch=!0;try{if("currentfilter"!==c.refreshstate){var e=i.p.id;i.p.postData.filters="";try{Ye("#fbox_"+Ye.jgrid.jqID(e)).jqFilter("resetFilter")}catch(e){}Ye.jgrid.isFunction(i.clearToolbar)&&i.clearToolbar.call(i,!1)}}catch(e){}switch(c.refreshstate){case"firstpage":Ye(i).trigger("reloadGrid",[{page:1}]);break;case"current":case"currentfilter":Ye(i).trigger("reloadGrid",[{current:!0}])}Ye.jgrid.isFunction(c.afterRefresh)&&c.afterRefresh.call(i),Ye(r).hide()}return!1}),Ye(r).append(t)),Ye(r).hide(),Ye("body").append(r),Ye("#"+s).addClass("ui-menu "+n.menu_widget),Ye("#"+s+" > li > a").hover(function(){Ye(this).addClass(l.hover)},function(){Ye(this).removeClass(l.hover)}),Ye(".dropdownmenu",d+"_"+c.position).on("click",function(e){var t=Ye(this).offset(),r=t.left,t=parseInt(t.top),i=Ye(this).val();Ye("#"+i).show().css({top:t-(Ye("#"+i).height()+35)+"px",left:r+"px"}),e.stopPropagation()}),Ye("body").on("click",function(e){Ye(e.target).hasClass("dropdownmenu")||Ye("#"+s).hide()})})},GridToForm:function(i,o){return this.each(function(){var e,t=this;if(t.grid){var r=Ye(t).jqGrid("getRowData",i);if(r)for(e in r)r.hasOwnProperty(e)&&(Ye("[name="+Ye.jgrid.jqID(e)+"]",o).is("input:radio")||Ye("[name="+Ye.jgrid.jqID(e)+"]",o).is("input:checkbox")?Ye("[name="+Ye.jgrid.jqID(e)+"]",o).each(function(){Ye(this).val()==r[e]?Ye(this)[t.p.useProp?"prop":"attr"]("checked",!0):Ye(this)[t.p.useProp?"prop":"attr"]("checked",!1)}):Ye("[name="+Ye.jgrid.jqID(e)+"]",o).val(r[e]))}})},FormToGrid:function(t,i,o,a){return this.each(function(){var e,r;this.grid&&(o=o||"set",a=a||"first",e=Ye(i).serializeArray(),r={},Ye.each(e,function(e,t){r[t.name]=t.value}),"add"===o?Ye(this).jqGrid("addRowData",t,r,a):"set"===o&&Ye(this).jqGrid("setRowData",t,r))})}}),Ye.jgrid.extend({groupingInit:function(){return this.each(function(){Ye.extend(this.p.groupingView,{groupField:[],groupOrder:[],groupText:[],groupColumnShow:[],groupSummary:[],showSummaryOnHide:!1,sortitems:[],sortnames:[],summary:[],summaryval:[],plusicon:"",minusicon:"",displayField:[],groupSummaryPos:[],formatDisplayField:[],_locgr:!1},!0)})},groupingSetup:function(){return this.each(function(){var e,t,r,i=this,o=i.p.colModel,a=i.p.groupingView,n=Ye.jgrid.styleUI[i.p.styleUI||"jQueryUI"].grouping;if(null===a||"object"!=typeof a&&!Ye.jgrid.isFunction(a))i.p.grouping=!1;else if(a.plusicon||(a.plusicon=n.icon_plus),a.minusicon||(a.minusicon=n.icon_minus),a.groupField.length){for(void 0===a.visibiltyOnNextGrouping&&(a.visibiltyOnNextGrouping=[]),a.lastvalues=[],a._locgr||(a.groups=[]),a.counters=[],e=0;e<a.groupField.length;e++)a.groupOrder[e]||(a.groupOrder[e]="asc"),a.groupText[e]||(a.groupText[e]="{0}"),"boolean"!=typeof a.groupColumnShow[e]&&(a.groupColumnShow[e]=!0),"boolean"!=typeof a.groupSummary[e]&&(a.groupSummary[e]=!1),a.groupSummaryPos[e]||(a.groupSummaryPos[e]="footer"),!0===a.groupColumnShow[e]?(a.visibiltyOnNextGrouping[e]=!0,Ye(i).jqGrid("showCol",a.groupField[e])):(a.visibiltyOnNextGrouping[e]=Ye("#"+Ye.jgrid.jqID(i.p.id+"_"+a.groupField[e])).is(":visible"),Ye(i).jqGrid("hideCol",a.groupField[e]));for(a.summary=[],a.hideFirstGroupCol&&Array.isArray(a.formatDisplayField)&&!Ye.jgrid.isFunction(a.formatDisplayField[0])&&(a.formatDisplayField[0]=function(e){return e}),t=0,r=o.length;t<r;t++)a.hideFirstGroupCol&&!o[t].hidden&&a.groupField[0]===o[t].name&&(o[t].formatter=function(){return""}),o[t].summaryType&&(o[t].summaryDivider?a.summary.push({nm:o[t].name,st:o[t].summaryType,v:"",sd:o[t].summaryDivider,vd:"",sr:o[t].summaryRound,srt:o[t].summaryRoundType||"round"}):a.summary.push({nm:o[t].name,st:o[t].summaryType,v:"",sr:o[t].summaryRound,srt:o[t].summaryRoundType||"round"}))}else i.p.grouping=!1})},groupingPrepare:function(d,p){return this.each(function(){for(var e,t,r,i=this.p.groupingView,o=this,a=function(){Ye.jgrid.isFunction(this.st)?this.v=this.st.call(o,this.v,this.nm,d):(this.v=Ye(o).jqGrid("groupingCalculations.handler",this.st,this.v,this.nm,this.sr,this.srt,d),"avg"===this.st.toLowerCase()&&this.sd&&(this.vd=Ye(o).jqGrid("groupingCalculations.handler",this.st,this.vd,this.sd,this.sr,this.srt,d)))},n=i.groupField.length,l=0,s=0;s<n;s++)e=i.groupField[s],r=i.displayField[s],t=d[e],null==(r=null==r?null:d[r])&&(r=t),void 0!==t&&(0===p?(i.groups.push({idx:s,dataIndex:e,value:t,displayValue:r,startRow:p,cnt:1,summary:[]}),i.lastvalues[s]=t,i.counters[s]={cnt:1,pos:i.groups.length-1,summary:Ye.extend(!0,[],i.summary)}):"object"==typeof t||(Array.isArray(i.isInTheSameGroup)&&Ye.jgrid.isFunction(i.isInTheSameGroup[s])?i.isInTheSameGroup[s].call(o,i.lastvalues[s],t,s,i):i.lastvalues[s]===t)?1===l?(i.groups.push({idx:s,dataIndex:e,value:t,displayValue:r,startRow:p,cnt:1,summary:[]}),i.lastvalues[s]=t,i.counters[s]={cnt:1,pos:i.groups.length-1,summary:Ye.extend(!0,[],i.summary)}):(i.counters[s].cnt+=1,i.groups[i.counters[s].pos].cnt=i.counters[s].cnt):(i.groups.push({idx:s,dataIndex:e,value:t,displayValue:r,startRow:p,cnt:1,summary:[]}),i.lastvalues[s]=t,i.counters[s]={cnt:l=1,pos:i.groups.length-1,summary:Ye.extend(!0,[],i.summary)}),Ye.each(i.counters[s].summary,a),i.groups[i.counters[s].pos].summary=i.counters[s].summary)}),this},groupingToggle:function(v){return this.each(function(){function e(e){return 0<(e=Ye.map(e.split(" "),function(e){if(e.substring(0,s.length+1)===s+"_")return parseInt(e.substring(s.length+1),10)})).length?e[0]:void 0}var t,r,i,o=this,a=o.p.groupingView,n=v.split("_"),l=parseInt(n[n.length-2],10),s=(n.splice(n.length-2,2),n.join("_")),d=a.minusicon,p=a.plusicon,n=Ye("#"+Ye.jgrid.jqID(v)),c=n.length?n[0].nextSibling:null,n=Ye("#"+Ye.jgrid.jqID(v)+" span.tree-wrap-"+o.p.direction),u=!1,h=!1,g=!!o.p.frozenColumns&&o.p.id+"_frozen",f=!!g&&Ye("#"+Ye.jgrid.jqID(v),"#"+Ye.jgrid.jqID(g)),m=f&&f.length?f[0].nextSibling:null;if(n.hasClass(d)){if(c)for(;c&&!(void 0!==(t=e(c.className))&&t<=l);)i=parseInt(Ye(c).attr("jqfootlevel"),10),(h=!isNaN(i)&&a.showSummaryOnHide&&l<=i)||Ye(c).hide(),c=c.nextSibling,g&&(h||Ye(m).hide(),m=m.nextSibling);n.removeClass(d).addClass(p),u=!0}else{if(c)for(r=void 0;c;){if(t=e(c.className),i=parseInt(Ye(c).attr("jqfootlevel"),10),void 0===r&&(r=void 0===t),h=Ye(c).hasClass("ui-subgrid")&&Ye(c).hasClass("ui-sg-collapsed"),void 0!==t){if(t<=l)break;t!==l+1||h||(Ye(c).show().find(">td>span.tree-wrap-"+o.p.direction).removeClass(d).addClass(p),g&&Ye(m).show().find(">td>span.tree-wrap-"+o.p.direction).removeClass(d).addClass(p))}else r?h||(Ye(c).show(),g&&Ye(m).show()):!isNaN(i)&&0<=i&&i===l&&(Ye(c).show(),g)&&Ye(m).show();c=c.nextSibling,g&&(m=m.nextSibling)}n.removeClass(p).addClass(d)}g&&"auto"===o.p.height&&(o.grid.fbDiv.height(Ye(o).height()),o.grid.fsDiv)&&(f=Ye(o.grid.bDiv)[0].scrollWidth>Ye(o.grid.bDiv)[0].clientWidth?Ye.jgrid.scrollbarHeight():0,o.grid.fsDiv.css("top",o.grid.fbDiv.position().top+Ye(o).height()+f+"px")),Ye(o).triggerHandler("jqGridGroupingClickGroup",[v,u]),Ye.jgrid.isFunction(o.p.onClickGroup)&&o.p.onClickGroup.call(o,v,u)}),!1},groupingRender:function(D,F,G,S){return this.each(function(){var u,h,g,f,m=this,v=m.p.groupingView,j="",b=v.groupCollapse?v.plusicon:v.minusicon,y=[],w=v.groupField.length,x=Ye.jgrid.styleUI[m.p.styleUI||"jQueryUI"].common,b=b+" tree-wrap-"+m.p.direction,_=(Ye.each(m.p.colModel,function(e,t){for(var r=0;r<w;r++)if(v.groupField[r]===t.name){y[r]=e;break}}),0);function q(e,t,r,i,o){for(var a,n,l,s=function(e,t,r){var i,o=!1;if(0===t)o=r[e];else{var a=r[e].idx;if(0===a)o=r[e];else for(i=e;0<=i;i--)if(r[i].idx===a-t){o=r[i];break}}return o}(e,t,r),d=m.p.colModel,p=(s.cnt,""),c=!1,u=i;u<F;u++)!d[u].hidden&&!c&&o?(n=o,c=!0):n='<td role="gridcell" '+m.formatCol(u,1,"")+">&#160;</td>",Ye.each(s.summary,function(){if(this.nm===d[u].name){l=d[u].summaryTpl||"{0}",a=this.v;try{this.groupCount=s.cnt,this.groupIndex=s.dataIndex,this.groupValue=s.value}catch(e){}return n='<td role="gridcell" '+m.formatCol(u,1,"")+">"+Ye.jgrid.template(l,a,s.cnt,s.dataIndex,s.displayValue,s.summary)+"</td>",!1}}),p+=n;return p}var C,I=Ye.makeArray(v.groupSummary);I.reverse(),C=m.p.multiselect?' colspan="2"':"",Ye.each(v.groups,function(e,t){if(v._locgr&&!(t.startRow+t.cnt>(G-1)*S&&t.startRow<G*S))return!0;_++,g=m.p.id+"ghead_"+t.idx,h=g+"_"+e,u="<span style='cursor:pointer;margin-right:8px;margin-left:5px;' class='"+x.icon_base+" "+b+"' onclick=\"jQuery('#"+Ye.jgrid.jqID(m.p.id)+"').jqGrid('groupingToggle','"+h+"');return false;\"></span>";try{f=Array.isArray(v.formatDisplayField)&&Ye.jgrid.isFunction(v.formatDisplayField[t.idx])?v.formatDisplayField[t.idx].call(m,t.displayValue,t.value,m.p.colModel[y[t.idx]],t.idx,v):m.formatter(h,t.displayValue,y[t.idx],t.value)}catch(e){f=t.displayValue}for(var r="",i=0;i<t.summary.length;i++){var o=t.summary[i],a=Ye.jgrid.getElemByAttrVal(m.p.colModel,"name",o.nm,!0);if(0<=a){"string"==typeof o.st&&"avg"===o.st.toLowerCase()&&(o.sd&&o.vd?o.v=o.v/o.vd:o.v&&0<t.cnt&&(o.v=o.v/t.cnt)),o.uv=o.v;try{o.v=m.formatter("",o.v,a,this)}catch(e){}}}if("string"!=typeof(r=Ye.jgrid.isFunction(v.groupText[t.idx])?v.groupText[t.idx].call(m,f,t.cnt,t.summary):Ye.jgrid.template.call(m,v.groupText[t.idx],f,t.cnt,t.summary))&&"number"!=typeof r&&(r=f),"header"===v.groupSummaryPos[t.idx]?j=(j+='<tr id="'+h+'"'+(v.groupCollapse&&0<t.idx?' style="display:none;" ':" ")+'role="row" class= "'+x.content+" jqgroup ui-row-"+m.p.direction+" "+g+'">')+q(e,0,v.groups,C?1:0,'<td role="gridcell" style="padding-left:'+12*t.idx+'px;"'+C+">"+u+r+"</td>")+"</tr>":j+='<tr id="'+h+'"'+(v.groupCollapse&&0<t.idx?' style="display:none;" ':" ")+'role="row" class= "'+x.content+" jqgroup ui-row-"+m.p.direction+" "+g+'"><td style="padding-left:'+12*t.idx+'px;" colspan="'+(!1===v.groupColumnShow[t.idx]?F-1:F)+'">'+u+r+"</td></tr>",w-1===t.idx){var n,l,s,d=v.groups[e+1],p=0,r=t.startRow,c=void 0!==d?d.startRow:v.groups[e].startRow+v.groups[e].cnt;for(i=r=v._locgr&&(p=(G-1)*S)>t.startRow?p:r;i<c&&D[i-p];i++)j+=D[i-p].join("");if("header"!==v.groupSummaryPos[t.idx]){if(void 0!==d){for(l=0;l<v.groupField.length&&d.dataIndex!==v.groupField[l];l++);_=v.groupField.length-l}for(n=0;n<_;n++)I[n]&&(s="",v.groupCollapse&&!v.showSummaryOnHide&&(s=' style="display:none;"'),j=(j+="<tr"+s+' jqfootlevel="'+(t.idx-n)+'" role="row" class="'+x.content+" jqfoot ui-row-"+m.p.direction+'">')+q(e,n,v.groups,0,!1)+"</tr>");_=l}}}),Ye("#"+Ye.jgrid.jqID(m.p.id)+" tbody").first().append(j),j=null})},groupingGroupBy:function(i,o){return this.each(function(){var e,t=this,r=("string"==typeof i&&(i=[i]),t.p.groupingView);for(t.p.grouping=!0,r._locgr=!1,void 0===r.visibiltyOnNextGrouping&&(r.visibiltyOnNextGrouping=[]),e=0;e<r.groupField.length;e++)!r.groupColumnShow[e]&&r.visibiltyOnNextGrouping[e]&&Ye(t).jqGrid("showCol",r.groupField[e]);for(e=0;e<i.length;e++)r.visibiltyOnNextGrouping[e]=Ye("#"+Ye.jgrid.jqID(t.p.id)+"_"+Ye.jgrid.jqID(i[e])).is(":visible");t.p.groupingView=Ye.extend(t.p.groupingView,o||{}),r.groupField=i,Ye(t).trigger("reloadGrid")})},groupingRemove:function(i,o){return this.each(function(){var e=this;if(void 0===i&&(i=!0),void 0===o&&(o=!1),!(e.p.grouping=!1)===i){for(var t=e.p.groupingView,r=0;r<t.groupField.length;r++)!t.groupColumnShow[r]&&t.visibiltyOnNextGrouping[r]&&Ye(e).jqGrid("showCol",t.groupField);Ye("#"+Ye.jgrid.jqID(e.p.id)+" tbody").first().find("tr.jqgroup, tr.jqfoot").remove(),Ye("#"+Ye.jgrid.jqID(e.p.id)+" tbody").first().find("tr.jqgrow:hidden").show()}else Ye(e).trigger("reloadGrid");o&&Ye(e).jqGrid("groupingInit")})},groupingCalculations:{handler:function(e,t,r,i,o,a){var n,l={sum:function(){return Ye.jgrid.floatNum(t)+Ye.jgrid.floatNum(a[r])},min:function(){return""===t?Ye.jgrid.floatNum(a[r]):Math.min(Ye.jgrid.floatNum(t),Ye.jgrid.floatNum(a[r]))},max:function(){return""===t?Ye.jgrid.floatNum(a[r]):Math.max(Ye.jgrid.floatNum(t),Ye.jgrid.floatNum(a[r]))},count:function(){return""===t&&(t=0),a.hasOwnProperty(r)?t+1:0},avg:function(){return l.sum()}};if(l[e])return n=l[e](),null!=i?"fixed"===o?n.toFixed(i):(o=Math.pow(10,i),Math.round(n*o)/o):n;throw"jqGrid Grouping No such method: "+e}},groupingResetCalcs:function(){return this.each(function(){this.p.groupingView._locgr=!1})},setColSpanHeader:function(_){return this.each(function(){var e,t,r,i,o,a,n,l,s,d,p,c,u,h,g=this,f=0,m=g.p.colModel,v=m.length,j=g.grid.headers,b=Ye("table.ui-jqgrid-htable",g.grid.hDiv),y=b.children("thead"),w=b.find(".jqg-first-row-header"),b=!1,x=y.children("tr").length;for(Array.isArray(_)&&(g.p.colSpanHeader=_),void 0===w[0]?w=Ye("<tr>",{role:"row","aria-hidden":"true"}).addClass("jqg-first-row-header").css("height","auto"):w.empty(),g.p.frozenColumns&&(Ye(g).jqGrid("destroyFrozenColumns"),b=!0),e=0;e<v;e++)r=j[e].el,i=Ye(r),t=m[e],o={height:"0px",width:j[e].width+"px",display:t.hidden?"none":""},Ye("<th>",{role:"gridcell"}).css(o).addClass("ui-first-th-"+g.p.direction+" "+(t.labelClasses||"")).appendTo(w);for(y.prepend(w),Ye(g).on("jqGridResizeStop.setGroupHeaders",function(e,t,r){w.find("th").eq(r)[0].style.width=t+"px"}),e=0;e<v;e++)if(r=j[e].el,i=Ye(r),t=m[e],0<=(n=Ye.jgrid.inColumnHeader(t.name,g.p.colSpanHeader))){for(s=(l=g.p.colSpanHeader[n]).numberOfColumns,d=l.titleText||"",u=l.className||"",p=l.toolTip||"",n=c=0;n<s&&e+n<v;n++)m[e+n].hidden||c++;if(0<c&&(i.attr("colspan",String(c)),1<x))for(a=1;a<x;a++)Ye("tr",y).eq(a+1).find("th").eq(e).attr("colspan",String(c));for(d&&(h=i.find("div.ui-th-div")[0],l.savedLabel=h.innerHTML,h.innerHTML=d,"string"==typeof p&&""!==p?i.attr("title",p):g.p.headertitles&&i.attr("title",d)),i.addClass(u),f=0;f<s-1;f++)if(Ye(j[f+e+1].el).hide(),g.p.colModel[f+e+1].hidedlg=!0,g.p.colModel[f+e+1]._colspancell=!0,1<x)for(a=1;a<x;a++)Ye("tr",y).eq(a+1).find("th").eq(e+f+1).hide()}b&&Ye(g).jqGrid("setFrozenColumns")})},destroyColSpanHeader:function(l){return void 0===l&&(l=!0),this.each(function(){var r,i,e,o,a,t=this,n=Ye("table.ui-jqgrid-htable",t.grid.hDiv).children("thead");if(Ye("tr.jqg-first-row-header",n).remove(),t.p.colSpanHeader.length)for(e=0;e<t.p.colSpanHeader.length;e++)if(r=t.p.colSpanHeader[e],!((a=Ye.jgrid.getElemByAttrVal(t.p.colModel,"name",r.startColumnName,!0))<0)){for(i=a+1;i<a+r.numberOfColumns;i++)t.p.colModel[i].hidedlg=!1,t.p.colModel[i]._colspancell=!1;Ye(">tr",n).each(function(e,t){for((o=Ye("th",t).eq(a)).className||(o.className=""),Ye(o).attr("colspan","").removeClass(o.className),Ye(t).hasClass("ui-jqgrid-labels")&&(o.find("div.ui-th-div")[0].innerHTML=r.savedLabel),i=1;i<r.numberOfColumns;i++)Ye("th",t).eq(a+i).show()})}l&&(t.p.colSpanHeader=[])})},setGroupHeaders:function(q){return q=Ye.extend({useColSpanStyle:!1,groupHeaders:[]},q||{}),this.each(function(){var e,t,r,i,o,a,n,l,s,d,p,c,u=this,h=0,g=u.p.colModel,f=g.length,m=u.grid.headers,v=Ye("table.ui-jqgrid-htable",u.grid.hDiv),j=v.children("thead").children("tr.ui-jqgrid-labels").last().addClass("jqg-second-row-header"),b=v.children("thead"),y=v.find(".jqg-first-row-header"),w=!1,x=!1,_=Ye.jgrid.styleUI[u.p.styleUI||"jQueryUI"].base;for(u.p.groupHeader||(u.p.groupHeader=[]),u.p.groupHeader.push(q),u.p.groupHeaderOn=!0,void 0===y[0]?y=Ye("<tr>",{role:"row","aria-hidden":"true"}).addClass("jqg-first-row-header").css("height","auto"):y.empty(),u.p.frozenColumns&&(Ye(u).jqGrid("destroyFrozenColumns"),x=!0),(Ye(document.activeElement).is("input")||Ye(document.activeElement).is("textarea"))&&(w=document.activeElement),Ye(u).prepend(b),r=Ye("<tr>",{role:"row"}).addClass("ui-jqgrid-labels jqg-third-row-header"),e=0;e<f;e++)if(i=m[e].el,o=Ye(i),t=g[e],d={height:"0px",width:m[e].width+"px",display:t.hidden?"none":""},Ye("<th>",{role:"gridcell"}).css(d).addClass("ui-first-th-"+u.p.direction+" "+(t.labelClasses||"")).appendTo(y),i.style.width="",0<=(a=Ye.jgrid.inColumnHeader(t.name,q.groupHeaders))){for(n=(d=q.groupHeaders[a]).numberOfColumns,c=d.titleText,l=d.toolTip||"",d=d.className||"",a=s=0;a<n&&e+a<f;a++)g[e+a].hidden||s++;d=Ye("<th>").attr({role:"columnheader"}).addClass(_.headerBox+" ui-th-column-header ui-th-"+u.p.direction+" "+d+" "+(t.labelClasses||"")).html(c),0<s&&d.attr("colspan",String(s)),"string"==typeof l&&""!==l?d.attr("title",l):u.p.headertitles&&d.attr("title",d.text()),0===s&&d.hide(),o.before(d),r.append(i),h=n-1}else 0===h?q.useColSpanStyle?(c=o.attr("rowspan")?parseInt(o.attr("rowspan"),10)+1:2,o.attr("rowspan",c)):(Ye("<th>",{role:"columnheader"}).addClass(_.headerBox+" ui-th-column-header ui-th-"+u.p.direction).css({display:t.hidden?"none":""}).insertBefore(o),r.append(i)):(r.append(i),h--);if((b=Ye(u).children("thead")).prepend(y),r.insertAfter(j),v.append(b),q.useColSpanStyle&&(v.find("span.ui-jqgrid-resize").each(function(){var e=Ye(this).parent();e.is(":visible")&&(this.style.cssText="height: "+e.height()+"px !important; cursor: col-resize;")}),v.find("div.ui-jqgrid-sortable").each(function(){var e=Ye(this),t=e.parent();t.is(":visible")&&t.is(":has(span.ui-jqgrid-resize)")&&e.css("top",(t.height()-e.outerHeight())/2-4+"px")})),p=b.find("tr.jqg-first-row-header"),Ye(u).on("jqGridResizeStop.setGroupHeaders",function(e,t,r){p.find("th").eq(r)[0].style.width=t+"px"}),w)try{Ye(w).focus()}catch(e){}j=Ye("tr.jqg-second-row-header th").eq(0);"object"===Ye.jgrid.type(j)&&j.length&&""===Ye.jgrid.trim(j[0].outerText)&&Ye("tr.jqg-second-row-header th").eq(0).prepend("&nbsp;"),x&&Ye(u).jqGrid("setFrozenColumns"),Ye(u).triggerHandler("afterSetGroupHandler",[q])})},destroyGroupHeader:function(c){return void 0===c&&(c=!0),this.each(function(){var e,t,r,i,o,a,n=this,l=n.grid,s=Ye("table.ui-jqgrid-htable thead",l.hDiv),d=n.p.colModel,p=!1;if(l){for(n.p.frozenColumns&&(Ye(n).jqGrid("destroyFrozenColumns"),p=!0),Ye(this).off(".setGroupHeaders"),n.p.groupHeaderOn=!1,e=Ye("<tr>",{role:"row"}).addClass("ui-jqgrid-labels"),t=0,r=(i=l.headers).length;t<r;t++){a=d[t].hidden?"none":"",a=Ye(i[t].el).width(Ye("tr.jqg-first-row-header th",s).eq(t).width()).css("display",a);try{a.removeAttr("rowSpan")}catch(e){a.attr("rowSpan",1)}e.append(a),0<(o=a.children("span.ui-jqgrid-resize")).length&&(o[0].style.height=""),a.children("div")[0].style.top=""}Ye(s).children("tr.ui-jqgrid-labels").remove(),Ye(s).children("tr.jqg-first-row-header").remove(),Ye(s).prepend(e),!0===c&&Ye(n).jqGrid("setGridParam",{groupHeader:null}),p&&Ye(n).jqGrid("setFrozenColumns"),Ye(n).off("afterSetGroupHandler")}})},isGroupHeaderOn:function(){var e=this[0];return!0===e.p.groupHeaderOn&&e.p.groupHeader&&(Array.isArray(e.p.groupHeader)||Ye.jgrid.isFunction(e.p.groupHeader))},refreshGroupHeaders:function(){return this.each(function(){var e,t=this,r=Ye(t).jqGrid("isGroupHeaderOn");if(r&&(Ye(t).jqGrid("destroyGroupHeader",!1),e=Ye.extend([],t.p.groupHeader),t.p.groupHeader=null),r&&e)for(var i=0;i<e.length;i++)Ye(t).jqGrid("setGroupHeaders",e[i])})}}),Ye.jgrid=Ye.jgrid||{},Ye.extend(Ye.jgrid,{saveState:function(e,t){if(t=Ye.extend({useStorage:!0,storageType:"localStorage",beforeSetItem:null,compression:!1,compressionModule:"LZString",compressionMethod:"compressToUTF16",debug:!1,saveData:!0},t||{}),e){var r,i="",o="",e=Ye("#"+e)[0];if(e.grid){if((n=Ye(e).data("inlineNav"))&&e.p.inlineNav&&Ye(e).jqGrid("setGridParam",{_iN:n}),(n=Ye(e).data("filterToolbar"))&&e.p.filterToolbar&&Ye(e).jqGrid("setGridParam",{_fT:n}),i=Ye(e).jqGrid("jqGridExport",{exptype:"jsonstring",ident:"",root:"",data:t.saveData}),o="",t.saveData&&(n=(o=Ye(e.grid.bDiv).find(".ui-jqgrid-btable tbody").first().html()).indexOf("</tr>"),o=o.slice(n+5)),Ye.jgrid.isFunction(t.beforeSetItem)&&null!=(r=t.beforeSetItem.call(e,i))&&(i=r),t.debug){Ye("#gbox_tree").prepend('<a id="link_save" target="_blank" download="jqGrid_dump.txt">Click to save Dump Data</a>');var a,n=[],l={};n.push("Grid Options\n"),n.push(i),n.push("\n"),n.push("GridData\n"),n.push(o),l.type="plain/text;charset=utf-8";try{a=new File(n,"jqGrid_dump.txt",l)}catch(e){a=new Blob(n,l)}n=URL.createObjectURL(a),Ye("#link_save").attr("href",n).on("click",function(){Ye(this).remove()})}if(t.compression&&t.compressionModule)try{null!=(r=window[t.compressionModule][t.compressionMethod](i))&&(i=r,o=window[t.compressionModule][t.compressionMethod](o))}catch(e){}if(t.useStorage&&Ye.jgrid.isLocalStorage())try{window[t.storageType].setItem("jqGrid"+e.p.id,i),window[t.storageType].setItem("jqGrid"+e.p.id+"_data",o)}catch(e){22===e.code&&alert("Local storage limit is over!")}return i}}},loadState:function(e,t,r){if(r=Ye.extend({useStorage:!0,storageType:"localStorage",clearAfterLoad:!1,beforeSetGrid:null,afterSetGrid:null,decompression:!1,decompressionModule:"LZString",decompressionMethod:"decompressFromUTF16",restoreData:!0},r||{}),e){var i,o,a,n=Ye("#"+e)[0];if(r.useStorage)try{t=window[r.storageType].getItem("jqGrid"+n.id),l=window[r.storageType].getItem("jqGrid"+n.id+"_data")}catch(e){}if(t){if(r.decompression&&r.decompressionModule)try{null!=(i=window[r.decompressionModule][r.decompressionMethod](t))&&(t=i,l=window[r.decompressionModule][r.decompressionMethod](l))}catch(e){}if((i=Ye.jgrid.parseFunc(t))&&"object"===Ye.jgrid.type(i)){n.grid&&Ye.jgrid.gridUnload(e);var l,t=function(e){return e},s={reccount:(i=Ye.jgrid.isFunction(r.beforeSetGrid)&&(s=r.beforeSetGrid(i))&&"object"===Ye.jgrid.type(s)?s:i).reccount,records:i.records,lastpage:i.lastpage,shrinkToFit:t(i.shrinkToFit),data:t(i.data),datatype:t(i.datatype),grouping:t(i.grouping)},d=(i.shrinkToFit=!1,i.data=[],i.datatype="local",i.grouping=!1,i.inlineNav&&(o=t(i._iN),i._iN=null,delete i._iN),i.filterToolbar&&(a=t(i._fT),i._fT=null,delete i._fT),Ye("#"+e).jqGrid(i));if(d.jqGrid("delRowData","norecs"),r.restoreData&&""!==Ye.jgrid.trim(l)&&d.append(l),d.jqGrid("setGridParam",s),i.storeNavOptions&&i.navGrid&&(d[0].p.navGrid=!1,d.jqGrid("navGrid",i.pager,i.navOptions,i.editOptions,i.addOptions,i.delOptions,i.searchOptions,i.viewOptions),i.navButtons)&&i.navButtons.length)for(var p=0;p<i.navButtons.length;p++)"sepclass"in i.navButtons[p][1]?d.jqGrid("navSeparatorAdd",i.navButtons[p][0],i.navButtons[p][1]):d.jqGrid("navButtonAdd",i.navButtons[p][0],i.navButtons[p][1]);if(d[0].refreshIndex(),i.subGrid&&(t=1===i.multiselect?1:0,l=!0===i.rownumbers?1:0,d.jqGrid("addSubGrid",t+l),Ye.each(d[0].rows,function(e,t){Ye(t).hasClass("ui-sg-expanded")&&Ye(d[0].rows[e-1]).find("td.sgexpanded").click().click()})),i.treeGrid)for(var c=1,u=d[0].rows.length,h=i.expColInd,g=i.treeReader.leaf_field,f=i.treeReader.expanded_field;c<u;)Ye(d[0].rows[c].cells[h]).find("div.treeclick").on("click",function(e){e=e.target||e.srcElement,e=Ye.jgrid.stripPref(i.idPrefix,Ye(e,d[0].rows).closest("tr.jqgrow")[0].id),e=d[0].p._index[e];return d[0].p.data[e][g]||(d[0].p.data[e][f]?(d.jqGrid("collapseRow",d[0].p.data[e]),d.jqGrid("collapseNode",d[0].p.data[e])):(d.jqGrid("expandRow",d[0].p.data[e]),d.jqGrid("expandNode",d[0].p.data[e]))),!1}),!0===i.ExpandColClick&&Ye(d[0].rows[c].cells[h]).find("span.cell-wrapper").css("cursor","pointer").on("click",function(e){var e=e.target||e.srcElement,e=Ye.jgrid.stripPref(i.idPrefix,Ye(e,d[0].rows).closest("tr.jqgrow")[0].id),t=d[0].p._index[e];return d[0].p.data[t][g]||(d[0].p.data[t][f]?(d.jqGrid("collapseRow",d[0].p.data[t]),d.jqGrid("collapseNode",d[0].p.data[t])):(d.jqGrid("expandRow",d[0].p.data[t]),d.jqGrid("expandNode",d[0].p.data[t]))),d.jqGrid("setSelection",e),!1}),c++;if(i.multiselect&&Ye.each(i.selarrrow,function(){Ye("#jqg_"+e+"_"+this)[i.useProp?"prop":"attr"]("checked","checked")}),d.jqGrid("isGroupHeaderOn")&&d.jqGrid("refreshGroupHeaders"),i.searchCols)for(var m in i._results)i._results.hasOwnProperty(m)&&Ye("#jqs_"+e+"_"+m).val(i._results[m].v);i.inlineNav&&o&&(d.jqGrid("setGridParam",{inlineNav:!1}),d.jqGrid("inlineNav",i.pager,o)),i.filterToolbar&&a&&(d.jqGrid("setGridParam",{filterToolbar:!1}),a.restoreFromFilters=!0,d.jqGrid("filterToolbar",a)),i.frozenColumns&&d.jqGrid("setFrozenColumns"),d[0].updatepager(!0,!0),Ye.jgrid.isFunction(r.afterSetGrid)&&r.afterSetGrid(d),r.clearAfterLoad&&(window[r.storageType].removeItem("jqGrid"+n.id),window[r.storageType].removeItem("jqGrid"+n.id+"_data"))}else alert("can not convert to object")}}},isGridInStorage:function(e,t){var r,i,o,t=Ye.extend({storageType:"localStorage"},t||{});try{i=window[t.storageType].getItem("jqGrid"+e),o=window[t.storageType].getItem("jqGrid"+e+"_data"),r=null!=i&&null!=o&&"string"==typeof i&&"string"==typeof o}catch(e){r=!1}return r},setRegional:function(e,t){var r={storageType:"sessionStorage"};if((r=Ye.extend(r,t||{})).regional){Ye.jgrid.saveState(e,r),r.beforeSetGrid=function(e){return e.regional=r.regional,e.force_regional=!0,e},Ye.jgrid.loadState(e,null,r);var t=Ye("#"+e)[0],i=Ye(t).jqGrid("getGridParam","colModel"),o=-1,a=Ye.jgrid.getRegional(t,"nav");Ye.each(i,function(e){if(this.formatter&&"actions"===this.formatter)return o=e,!1}),-1!==o&&a&&Ye("#"+e+" tbody tr").each(function(){var e=this.cells[o];Ye(e).find(".ui-inline-edit").attr("title",a.edittitle),Ye(e).find(".ui-inline-del").attr("title",a.deltitle),Ye(e).find(".ui-inline-save").attr("title",a.savetitle),Ye(e).find(".ui-inline-cancel").attr("title",a.canceltitle)});try{window[r.storageType].removeItem("jqGrid"+t.id),window[r.storageType].removeItem("jqGrid"+t.id+"_data")}catch(e){}}},jqGridImport:function(e,r){r=Ye.extend({imptype:"xml",impstring:"",impurl:"",mtype:"GET",impData:{},xmlGrid:{config:"root>grid",data:"root>rows"},jsonGrid:{config:"grid",data:"data"},ajaxOptions:{}},r||{});function i(e,t){var r,i,o,a=Ye(t.xmlGrid.config,e)[0],t=Ye(t.xmlGrid.data,e)[0];if(Ye.grid.xmlToJSON){for(o in r=Ye.jgrid.xmlToJSON(a))r.hasOwnProperty(o)&&(i=r[o]);t?(a=r.grid.datatype,r.grid.datatype="xmlstring",r.grid.datastr=e,Ye(n).jqGrid(i).jqGrid("setGridParam",{datatype:a})):setTimeout(function(){Ye(n).jqGrid(i)},0)}else alert("xml2json or parse are not present")}function t(e,t){var r;e&&"string"==typeof e&&(r=(e=Ye.jgrid.parseFunc(e))[t.jsonGrid.config],(e=e[t.jsonGrid.data])?(t=r.datatype,r.datatype="jsonstring",r.datastr=e,Ye(n).jqGrid(r).jqGrid("setGridParam",{datatype:t})):Ye(n).jqGrid(r))}var o,n=(0===e.indexOf("#")?"":"#")+Ye.jgrid.jqID(e);switch(r.imptype){case"xml":Ye.ajax(Ye.extend({url:r.impurl,type:r.mtype,data:r.impData,dataType:"xml",complete:function(e,t){"success"===t&&(i(e.responseXML,r),Ye(n).triggerHandler("jqGridImportComplete",[e,r]),Ye.jgrid.isFunction(r.importComplete))&&r.importComplete(e)}},r.ajaxOptions));break;case"xmlstring":r.impstring&&"string"==typeof r.impstring&&(o=Ye.parseXML(r.impstring))&&(i(o,r),Ye(n).triggerHandler("jqGridImportComplete",[o,r]),Ye.jgrid.isFunction(r.importComplete))&&r.importComplete(o);break;case"json":Ye.ajax(Ye.extend({url:r.impurl,type:r.mtype,data:r.impData,dataType:"json",complete:function(e){try{t(e.responseText,r),Ye(n).triggerHandler("jqGridImportComplete",[e,r]),Ye.jgrid.isFunction(r.importComplete)&&r.importComplete(e)}catch(e){}}},r.ajaxOptions));break;case"jsonstring":r.impstring&&"string"==typeof r.impstring&&(t(r.impstring,r),Ye(n).triggerHandler("jqGridImportComplete",[r.impstring,r]),Ye.jgrid.isFunction(r.importComplete))&&r.importComplete(r.impstring)}}}),Ye.jgrid.extend({jqGridExport:function(t){t=Ye.extend({exptype:"xmlstring",root:"grid",ident:"\t",addOptions:{},data:!0},t||{});var r=null;return this.each(function(){if(this.grid){var e=Ye.extend(!0,{},Ye(this).jqGrid("getGridParam"),t.addOptions);switch(e.rownumbers&&(e.colNames.splice(0,1),e.colModel.splice(0,1)),e.multiselect&&(e.colNames.splice(0,1),e.colModel.splice(0,1)),e.searchCols&&(e.colNames.splice(0,1),e.colModel.splice(0,1)),e.subGrid&&(e.colNames.splice(0,1),e.colModel.splice(0,1)),e.knv=null,t.data||(e.data=[],e._index={}),t.exptype){case"xmlstring":r="<"+t.root+">"+Ye.jgrid.jsonToXML(e,{xmlDecl:""})+"</"+t.root+">";break;case"jsonstring":r=Ye.jgrid.stringify(e),t.root&&(r="{"+t.root+":"+r+"}")}}}),r},excelExport:function(n){return n=Ye.extend({exptype:"remote",url:null,oper:"oper",tag:"excel",beforeExport:null,exporthidden:!1,exportgrouping:!1,exportOptions:{},method:"GET"},n||{}),this.each(function(){if(this.grid&&"remote"===n.exptype){var t=Ye.extend({},this.p.postData);if(t[n.oper]=n.tag,Ye.jgrid.isFunction(n.beforeExport)&&(a=n.beforeExport.call(this,t),Ye.isPlainObject(a))&&(t=a),n.exporthidden){for(var e=this.p.colModel,r=e.length,i=[],o=0;o<r;o++)void 0===e[o].hidden&&(e[o].hidden=!1),i.push({name:e[o].name,hidden:e[o].hidden});var a=JSON.stringify(i);"string"==typeof a&&(t.colModel=a)}n.exportgrouping&&"string"==typeof(a=JSON.stringify(this.p.groupingView))&&(t.groupingView=a);try{Ye.jgrid.postForm(n.url,t,n.method)}catch(e){a=jQuery.param(t),t=-1!==n.url.indexOf("?")?n.url+"&"+a:n.url+"?"+a;window.location=t}}})}}),Ye.jgrid.inlineEdit=Ye.jgrid.inlineEdit||{},Ye.jgrid.extend({editRow:function(u,e,t,r,i,o,a,n,l){var h={},s=Ye.makeArray(arguments).slice(1),g=this[0];return"object"===Ye.jgrid.type(s[0])?h=s[0]:(void 0!==e&&(h.keys=e),Ye.jgrid.isFunction(t)&&(h.oneditfunc=t),Ye.jgrid.isFunction(r)&&(h.successfunc=r),void 0!==i&&(h.url=i),void 0!==o&&(h.extraparam=o),Ye.jgrid.isFunction(a)&&(h.aftersavefunc=a),Ye.jgrid.isFunction(n)&&(h.errorfunc=n),Ye.jgrid.isFunction(l)&&(h.afterrestorefunc=l)),h=Ye.extend(!0,{keys:!1,keyevent:"keydown",onEnter:null,onEscape:null,oneditfunc:null,successfunc:null,url:null,extraparam:{},aftersavefunc:null,errorfunc:null,afterrestorefunc:null,restoreAfterError:!0,mtype:"POST",focusField:!0,saveui:"enable",savetext:Ye.jgrid.getRegional(g,"defaults.savetext")},Ye.jgrid.inlineEdit,h),this.each(function(){var o,a,t,n,e,l=0,s=null,d={},p=Ye(this).jqGrid("getStyleUI",g.p.styleUI+".inlinedit","inputClass",!0),c=Ye(this).jqGrid("getStyleUI",g.p.styleUI+".inlinedit","selectClass",!0);g.grid&&!1!==(t=Ye(g).jqGrid("getInd",u,!0))&&(g.p.beforeAction=!0,(e=void 0===(e=Ye.jgrid.isFunction(h.beforeEditRow)?h.beforeEditRow.call(g,h,u):void 0)?!0:e)?"0"!==(Ye(t).attr("editable")||"0")||Ye(t).hasClass("not-editable-row")||(n=g.p.colModel,Ye(t).children('td[role="gridcell"]').each(function(t){o=n[t].name;var e,r,i=!0===g.p.treeGrid&&o===g.p.ExpandColumn;if(i)a=Ye(this).find("span").first().html();else try{a=Ye.unformat.call(g,this,{rowId:u,colModel:n[t]},t)}catch(e){a=n[t].edittype&&"textarea"===n[t].edittype?Ye(this).text():Ye(this).html()}"cb"!==o&&"subgrid"!==o&&"rn"!==o&&"sc"!==o&&(g.p.autoencode&&(a=Ye.jgrid.htmlDecode(a)),!0===n[t].editable)&&(d[o]=a,null===s&&(s=t),(i?Ye(this).find("span").first():Ye(this)).html(""),e=Ye.extend({},n[t].editoptions||{},{id:u+"_"+o,name:o,rowId:u,oper:"edit",module:"inline"}),n[t].edittype||(n[t].edittype="text"),("&nbsp;"===a||"&#160;"===a||null!==a&&1===a.length&&160===a.charCodeAt(0))&&(a=""),r=Ye.jgrid.createEl.call(g,n[t].edittype,e,a,!0,Ye.extend({},Ye.jgrid.ajaxOptions,g.p.ajaxSelectOptions||{})),Ye(r).addClass("editable inline-edit-cell"),-1<Ye.inArray(n[t].edittype,["text","textarea","password"])?Ye(r).addClass(p):"select"===n[t].edittype&&Ye(r).addClass(c),(i?Ye(this).find("span").first():Ye(this)).append(r),Ye.jgrid.bindEv.call(g,r,e),"select"===n[t].edittype&&void 0!==n[t].editoptions&&!0===n[t].editoptions.multiple&&void 0===n[t].editoptions.dataUrl&&Ye.jgrid.msie()&&Ye(r).width(Ye(r).width()),l++)}),0<l&&(d.id=u,g.p.savedRow.push(d),Ye(t).attr("editable","1"),h.focusField&&("number"==typeof h.focusField&&parseInt(h.focusField,10)<=n.length&&(s=h.focusField),setTimeout(function(){var e=Ye("td",t).eq(s).find(":input:visible").not(":disabled");0<e.length&&e.focus()},0)),!0===h.keys&&Ye(t).on(h.keyevent,function(e){if(27===e.keyCode){if(Ye.jgrid.isFunction(h.onEscape))return h.onEscape.call(g,u,h,e),!0;if(Ye(g).jqGrid("restoreRow",u,h),g.p.inlineNav)try{Ye(g).jqGrid("showAddEditButtons")}catch(e){}return!1}if(13===e.keyCode){if(e.preventDefault(),Ye.jgrid.isFunction(h.onEnter))return h.onEnter.call(g,u,h,e),!0;if("TEXTAREA"===e.target.tagName)return!0;if(Ye(g).jqGrid("saveRow",u,h)&&g.p.inlineNav)try{Ye(g).jqGrid("showAddEditButtons")}catch(e){}return!1}}),Ye(g).triggerHandler("jqGridInlineEditRow",[u,h]),Ye.jgrid.isFunction(h.oneditfunc))&&h.oneditfunc.call(g,u)):g.p.beforeAction=!1)})},saveRow:function(n,e,t,r,i,o,a){var l,s,d,p,c=Ye.makeArray(arguments).slice(1),u={},h=this[0],g=("object"===Ye.jgrid.type(c[0])?u=c[0]:(Ye.jgrid.isFunction(e)&&(u.successfunc=e),void 0!==t&&(u.url=t),void 0!==r&&(u.extraparam=r),Ye.jgrid.isFunction(i)&&(u.aftersavefunc=i),Ye.jgrid.isFunction(o)&&(u.errorfunc=o),Ye.jgrid.isFunction(a)&&(u.afterrestorefunc=a)),u=Ye.extend(!0,{successfunc:null,url:null,extraparam:{},aftersavefunc:null,errorfunc:null,afterrestorefunc:null,restoreAfterError:!0,mtype:"POST",saveui:"enable",savetext:Ye.jgrid.getRegional(h,"defaults.savetext")},Ye.jgrid.inlineEdit,u),!1),f={},m={},v={},j=!1,b=Ye.jgrid.trim(Ye(h).jqGrid("getStyleUI",h.p.styleUI+".common","error",!0));if(!h.grid)return g;if(!1===(p=Ye(h).jqGrid("getInd",n,!0)))return g;var y,w,x,_,q,C=Ye.jgrid.getRegional(h,"errors"),I=Ye.jgrid.getRegional(h,"edit"),c=Ye.jgrid.isFunction(u.beforeSaveRow)?u.beforeSaveRow.call(h,u,n):void 0;if(c=void 0===c?!0:c){if(e=Ye(p).attr("editable"),u.url=u.url||h.p.editurl,"1"===e){if(Ye(p).children('td[role="gridcell"]').each(function(e){if(y=h.p.colModel[e],l=y.name,x="","cb"!==l&&"subgrid"!==l&&!0===y.editable&&"rn"!==l&&"sc"!==l&&!Ye(this).hasClass("not-editable-cell")){switch(y.edittype){case"checkbox":var t=["Yes","No"];y.editoptions&&y.editoptions.value&&(t=y.editoptions.value.split(":")),f[l]=Ye("input",this).is(":checked")?t[0]:t[1],x=Ye("input",this);break;case"text":case"password":case"textarea":case"button":f[l]=Ye("input, textarea",this).val(),x=Ye("input, textarea",this);break;case"select":var r;y.editoptions.multiple?(t=Ye("select",this),r=[],f[l]=Ye(t).val(),f[l]?f[l]=f[l].join(","):f[l]="",Ye("select option:selected",this).each(function(e,t){r[e]=Ye(t).text()}),m[l]=r.join(",")):(f[l]=Ye("select option:selected",this).val(),m[l]=Ye("select option:selected",this).text()),y.formatter&&(m={}),x=Ye("select",this);break;case"custom":try{if(!y.editoptions||!Ye.jgrid.isFunction(y.editoptions.custom_value))throw"e1";if(f[l]=y.editoptions.custom_value.call(h,Ye(".customelement",this),"get"),void 0===f[l])throw"e2"}catch(e){"e1"===e?Ye.jgrid.info_dialog(C.errcap,"function 'custom_value' "+I.msg.nodefined,I.bClose,{styleUI:h.p.styleUI}):Ye.jgrid.info_dialog(C.errcap,e.message,I.bClose,{styleUI:h.p.styleUI})}}if(!1===(d=Ye.jgrid.checkValues.call(h,f[l],e))[0])return w=e,!1;h.p.autoencode&&(f[l]=Ye.jgrid.htmlEncode(f[l])),"clientArray"!==u.url&&y.editoptions&&!0===y.editoptions.NullIfEmpty&&""===f[l]&&(v[l]="null",j=!0)}}),!1===d[0]){try{Ye.jgrid.isFunction(h.p.validationCell)?h.p.validationCell.call(h,x,d[1],p.rowIndex,w):(_=Ye(h).jqGrid("getGridRowById",n),q=Ye.jgrid.findPos(_),Ye.jgrid.info_dialog(C.errcap,d[1],I.bClose,{left:q[0],top:q[1]+Ye(_).outerHeight(),styleUI:h.p.styleUI,onClose:function(){0<=w&&Ye("#"+n+"_"+h.p.colModel[w].name).focus()}}))}catch(e){alert(d[1])}return g}var t=h.p.prmNames,D=n,r=!1===h.p.keyName?t.id:h.p.keyName;if(Ye.isEmptyObject(f)||(f[t.oper]=t.editoper,void 0===f[r]||""===f[r]?f[r]=n:p.id!==h.p.idPrefix+f[r]&&(i=Ye.jgrid.stripPref(h.p.idPrefix,n),void 0!==h.p._index[i]&&(h.p._index[f[r]]=h.p._index[i],delete h.p._index[i]),n=h.p.idPrefix+f[r],Ye(p).attr("id",n),h.p.selrow===D&&(h.p.selrow=n),Array.isArray(h.p.selarrrow)&&0<=(o=Ye.inArray(D,h.p.selarrrow))&&(h.p.selarrrow[o]=n),h.p.multiselect)&&(a="jqg_"+h.p.id+"_"+n,Ye("input.cbox",p).attr("id",a).attr("name",a)),void 0===h.p.inlineData&&(h.p.inlineData={}),f=Ye.extend({},f,h.p.inlineData,u.extraparam)),"clientArray"===u.url){f=Ye.extend({},f,m),h.p.autoencode&&Ye.each(f,function(e,t){f[e]=Ye.jgrid.htmlDecode(t)});var F,f=Ye.jgrid.isFunction(h.p.serializeRowData)?h.p.serializeRowData.call(h,f):f,c=Ye(h).jqGrid("setRowData",n,f);for(Ye(p).attr("editable","0"),F=0;F<h.p.savedRow.length;F++)if(String(h.p.savedRow[F].id)===String(D)){s=F;break}Ye(h).triggerHandler("jqGridInlineAfterSaveRow",[n,c,f,u]),Ye.jgrid.isFunction(u.aftersavefunc)&&u.aftersavefunc.call(h,n,c,f,u),0<=s&&h.p.savedRow.splice(s,1),g=!0,Ye(p).removeClass("jqgrid-new-row").off("keydown")}else"storage"===u.url?(f=Ye.extend({},f,m),h.p.autoencode&&Ye.each(f,function(e,t){f[e]=Ye.jgrid.htmlDecode(t)}),f=Ye.jgrid.isFunction(h.p.serializeRowData)?h.p.serializeRowData.call(h,f):f,Ye(p).hasClass("jqgrid-new-row")?Ye(h).jqGrid("addStorageRecord",f).then(function(e){if("complete"===e.type){var t,e=Ye(h).jqGrid("setRowData",n,f);for(Ye(p).attr("editable","0"),t=0;t<h.p.savedRow.length;t++)if(String(h.p.savedRow[t].id)===String(D)){s=t;break}Ye(h).triggerHandler("jqGridInlineAfterSaveRow",[n,e,f,u]),Ye.jgrid.isFunction(u.aftersavefunc)&&u.aftersavefunc.call(h,n,e,f,u),0<=s&&h.p.savedRow.splice(s,1),g=!0,Ye(p).removeClass("jqgrid-new-row").off("keydown"),!0===h.p.inlineNav&&Ye(h).jqGrid("showAddEditButtons")}}).catch(function(e){Ye.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")}):Ye(h).jqGrid("updateStorageRecord",f).then(function(e){if("complete"===e.type){var t,e=Ye(h).jqGrid("setRowData",n,f);for(Ye(p).attr("editable","0"),t=0;t<h.p.savedRow.length;t++)if(String(h.p.savedRow[t].id)===String(D)){s=t;break}Ye(h).triggerHandler("jqGridInlineAfterSaveRow",[n,e,f,u]),Ye.jgrid.isFunction(u.aftersavefunc)&&u.aftersavefunc.call(h,n,e,f,u),0<=s&&h.p.savedRow.splice(s,1),g=!0,Ye(p).off("keydown"),!0===h.p.inlineNav&&Ye(h).jqGrid("showAddEditButtons")}}).catch(function(e){Ye.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")})):(Ye(h).jqGrid("progressBar",{method:"show",loadtype:u.saveui,htmlcontent:u.savetext}),(v=Ye.extend({},f,v))[r]=Ye.jgrid.stripPref(h.p.idPrefix,v[r]),Ye.ajax(Ye.extend({url:u.url,data:Ye.jgrid.isFunction(h.p.serializeRowData)?h.p.serializeRowData.call(h,v):v,type:u.mtype,async:!1,success:function(e,t,r){if(Ye(h).jqGrid("progressBar",{method:"hide",loadtype:u.saveui,htmlcontent:u.savetext}),"success"===t){var i,o=!0,a=Ye(h).triggerHandler("jqGridInlineSuccessSaveRow",[r,n,u]);if((a=Array.isArray(a)?a:[!0,v])[0]&&Ye.jgrid.isFunction(u.successfunc)&&(a=u.successfunc.call(h,r)),Array.isArray(a)?(o=a[0],f=a[1]||f):o=a,!0===o){for(h.p.autoencode&&Ye.each(f,function(e,t){f[e]=Ye.jgrid.htmlDecode(t)}),j&&Ye.each(f,function(e){"null"===f[e]&&(f[e]="")}),f=Ye.extend({},f,m),Ye(h).jqGrid("setRowData",n,f),Ye(p).attr("editable","0"),i=0;i<h.p.savedRow.length;i++)if(String(h.p.savedRow[i].id)===String(n)){s=i;break}Ye(h).triggerHandler("jqGridInlineAfterSaveRow",[n,r,f,u]),Ye.jgrid.isFunction(u.aftersavefunc)&&u.aftersavefunc.call(h,n,r,f,u),0<=s&&h.p.savedRow.splice(s,1),g=!0,Ye(p).removeClass("jqgrid-new-row").off("keydown")}else Ye(h).triggerHandler("jqGridInlineErrorSaveRow",[n,r,t,null,u]),Ye.jgrid.isFunction(u.errorfunc)&&u.errorfunc.call(h,n,r,t,null),!0===u.restoreAfterError&&Ye(h).jqGrid("restoreRow",n,u)}},error:function(e,t,r){if(Ye("#lui_"+Ye.jgrid.jqID(h.p.id)).hide(),Ye(h).triggerHandler("jqGridInlineErrorSaveRow",[n,e,t,r,u]),Ye.jgrid.isFunction(u.errorfunc))u.errorfunc.call(h,n,e,t,r);else{t=e.responseText||e.statusText;try{Ye.jgrid.info_dialog(C.errcap,'<div class="'+b+'">'+t+"</div>",I.bClose,{buttonalign:"right",styleUI:h.p.styleUI})}catch(e){alert(t)}}!0===u.restoreAfterError&&Ye(h).jqGrid("restoreRow",n,u)}},Ye.jgrid.ajaxOptions,h.p.ajaxRowOptions||{})))}return g}},restoreRow:function(n,e){var t=Ye.makeArray(arguments).slice(1),l={};return"object"===Ye.jgrid.type(t[0])?l=t[0]:Ye.jgrid.isFunction(e)&&(l.afterrestorefunc=e),l=Ye.extend(!0,{},Ye.jgrid.inlineEdit,l),this.each(function(){var e,t,r=this,i=-1,o={};if(r.grid&&!1!==(e=Ye(r).jqGrid("getInd",n,!0))){var a=Ye.jgrid.isFunction(l.beforeCancelRow)?l.beforeCancelRow.call(r,l,n):void 0;if(a=void 0===a?!0:a){for(t=0;t<r.p.savedRow.length;t++)if(String(r.p.savedRow[t].id)===String(n)){i=t;break}if(0<=i){if(Ye.jgrid.isFunction(Ye.fn.datepicker))try{Ye("input.hasDatepicker","#"+Ye.jgrid.jqID(e.id)).datepicker("hide")}catch(e){}Ye.each(r.p.colModel,function(){r.p.savedRow[i].hasOwnProperty(this.name)&&(o[this.name]=r.p.savedRow[i][this.name])}),Ye(r).jqGrid("setRowData",n,o),Ye(e).attr("editable","0").off("keydown"),r.p.savedRow.splice(i,1),Ye("#"+Ye.jgrid.jqID(n),"#"+Ye.jgrid.jqID(r.p.id)).hasClass("jqgrid-new-row")&&setTimeout(function(){Ye(r).jqGrid("delRowData",n),Ye(r).jqGrid("showAddEditButtons")},0)}Ye(r).triggerHandler("jqGridInlineAfterRestoreRow",[n]),Ye.jgrid.isFunction(l.afterrestorefunc)&&l.afterrestorefunc.call(r,n)}}})},addRow:function(i){return i=Ye.extend(!0,{rowID:null,initdata:{},position:"first",useDefValues:!0,useFormatter:!1,addRowParams:{extraparam:{}}},i||{}),this.each(function(){var t,e,r;this.grid&&((t=this).p.beforeAction=!0,(e=void 0===(e=Ye.jgrid.isFunction(i.beforeAddRow)?i.beforeAddRow.call(t,i.addRowParams):void 0)?!0:e)?(i.rowID=Ye.jgrid.isFunction(i.rowID)?i.rowID.call(t,i):null!=i.rowID?i.rowID:Ye.jgrid.randId(),!0===i.useDefValues&&Ye(t.p.colModel).each(function(){var e;this.editoptions&&this.editoptions.defaultValue&&(e=this.editoptions.defaultValue,e=Ye.jgrid.isFunction(e)?e.call(t):e,i.initdata[this.name]=e)}),Ye(t).jqGrid("addRowData",i.rowID,i.initdata,i.position),i.rowID=t.p.idPrefix+i.rowID,Ye("#"+Ye.jgrid.jqID(i.rowID),"#"+Ye.jgrid.jqID(t.p.id)).addClass("jqgrid-new-row"),i.useFormatter?Ye("#"+Ye.jgrid.jqID(i.rowID)+" .ui-inline-edit","#"+Ye.jgrid.jqID(t.p.id)).click():(r=(e=t.p.prmNames).oper,i.addRowParams.extraparam[r]=e.addoper,Ye(t).jqGrid("editRow",i.rowID,i.addRowParams),Ye(t).jqGrid("setSelection",i.rowID))):t.p.beforeAction=!1)})},inlineNav:function(a,n){var l=this[0],s=Ye.jgrid.getRegional(l,"nav"),e=Ye.jgrid.styleUI[l.p.styleUI].inlinedit;return n=Ye.extend(!0,{edit:!0,editicon:e.icon_edit_nav,add:!0,addicon:e.icon_add_nav,save:!0,saveicon:e.icon_save_nav,cancel:!0,cancelicon:e.icon_cancel_nav,addParams:{addRowParams:{extraparam:{}}},editParams:{},restoreAfterSelect:!0,saveAfterSelect:!1},s,n||{}),this.each(function(){if(this.grid&&!this.p.inlineNav){var o=Ye.jgrid.jqID(l.p.id),t=Ye.jgrid.trim(Ye(l).jqGrid("getStyleUI",l.p.styleUI+".common","disabled",!0));if(l.p.navGrid||Ye(l).jqGrid("navGrid",a,{refresh:!1,edit:!1,add:!1,del:!1,search:!1,view:!1}),Ye(l).data("inlineNav")||Ye(l).data("inlineNav",n),l.p.force_regional&&(n=Ye.extend(n,s)),(l.p.inlineNav=!0)===n.addParams.useFormatter)for(var e,r=l.p.colModel,i=0;i<r.length;i++)if(r[i].formatter&&"actions"===r[i].formatter){r[i].formatoptions&&(e=Ye.extend({keys:!1,onEdit:null,onSuccess:null,afterSave:null,onError:null,afterRestore:null,extraparam:{},url:null},r[i].formatoptions),n.addParams.addRowParams={keys:e.keys,oneditfunc:e.onEdit,successfunc:e.onSuccess,url:e.url,extraparam:e.extraparam,aftersavefunc:e.afterSave,errorfunc:e.onError,afterrestorefunc:e.afterRestore});break}n.add&&Ye(l).jqGrid("navButtonAdd",a,{caption:n.addtext,title:n.addtitle,buttonicon:n.addicon,id:l.p.id+"_iladd",internal:!0,onClickButton:function(){void 0===l.p.beforeAction&&(l.p.beforeAction=!0),Ye(l).jqGrid("addRow",n.addParams),!n.addParams.useFormatter&&l.p.beforeAction&&(Ye("#"+o+"_ilsave").removeClass(t),Ye("#"+o+"_ilcancel").removeClass(t),Ye("#"+o+"_iladd").addClass(t),Ye("#"+o+"_iledit").addClass(t))}}),n.edit&&Ye(l).jqGrid("navButtonAdd",a,{caption:n.edittext,title:n.edittitle,buttonicon:n.editicon,id:l.p.id+"_iledit",internal:!0,onClickButton:function(){var e=Ye(l).jqGrid("getGridParam","selrow");e?(void 0===l.p.beforeAction&&(l.p.beforeAction=!0),Ye(l).jqGrid("editRow",e,n.editParams),l.p.beforeAction&&(Ye("#"+o+"_ilsave").removeClass(t),Ye("#"+o+"_ilcancel").removeClass(t),Ye("#"+o+"_iladd").addClass(t),Ye("#"+o+"_iledit").addClass(t))):(Ye.jgrid.viewModal("#alertmod_"+o,{gbox:"#gbox_"+o,jqm:!0}),Ye("#jqg_alrt").focus())}}),n.save&&(Ye(l).jqGrid("navButtonAdd",a,{caption:n.savetext||"",title:n.savetitle||"Save row",buttonicon:n.saveicon,id:l.p.id+"_ilsave",internal:!0,onClickButton:function(){var e,t,r,i=l.p.savedRow[0].id;i?(t=(e=l.p.prmNames).oper,r=n.editParams,Ye("#"+Ye.jgrid.jqID(i),"#"+o).hasClass("jqgrid-new-row")?(n.addParams.addRowParams.extraparam[t]=e.addoper,r=n.addParams.addRowParams):(n.editParams.extraparam||(n.editParams.extraparam={}),n.editParams.extraparam[t]=e.editoper),Ye(l).jqGrid("saveRow",i,r)&&Ye(l).jqGrid("showAddEditButtons")):(Ye.jgrid.viewModal("#alertmod_"+o,{gbox:"#gbox_"+o,jqm:!0}),Ye("#jqg_alrt").focus())}}),Ye("#"+o+"_ilsave").addClass(t)),n.cancel&&(Ye(l).jqGrid("navButtonAdd",a,{caption:n.canceltext||"",title:n.canceltitle||"Cancel row editing",buttonicon:n.cancelicon,id:l.p.id+"_ilcancel",internal:!0,onClickButton:function(){var e=l.p.savedRow[0].id,t=n.editParams;e?(Ye("#"+Ye.jgrid.jqID(e),"#"+o).hasClass("jqgrid-new-row")&&(t=n.addParams.addRowParams),Ye(l).jqGrid("restoreRow",e,t),Ye(l).jqGrid("showAddEditButtons")):(Ye.jgrid.viewModal("#alertmod",{gbox:"#gbox_"+o,jqm:!0}),Ye("#jqg_alrt").focus())}}),Ye("#"+o+"_ilcancel").addClass(t)),!0!==n.restoreAfterSelect&&!0!==n.saveAfterSelect||Ye(l).on("jqGridBeforeSelectRow.inlineNav",function(e,t){0<l.p.savedRow.length&&!0===l.p.inlineNav&&t!==l.p.selrow&&null!==l.p.selrow&&(t=!0,l.p.selrow===n.addParams.rowID?Ye(l).jqGrid("delRowData",l.p.selrow):!0===n.restoreAfterSelect?Ye(l).jqGrid("restoreRow",l.p.selrow,n.editParams):t=Ye(l).jqGrid("saveRow",l.p.selrow,n.editParams),t)&&Ye(l).jqGrid("showAddEditButtons")})}})},showAddEditButtons:function(){return this.each(function(){var e,t;this.grid&&(e=Ye.jgrid.jqID(this.p.id),t=Ye.jgrid.trim(Ye(this).jqGrid("getStyleUI",this.p.styleUI+".common","disabled",!0)),Ye("#"+e+"_ilsave").addClass(t),Ye("#"+e+"_ilcancel").addClass(t),Ye("#"+e+"_iladd").removeClass(t),Ye("#"+e+"_iledit").removeClass(t))})},showSaveCancelButtons:function(){return this.each(function(){var e,t;this.grid&&(e=Ye.jgrid.jqID(this.p.id),t=Ye.jgrid.trim(Ye(this).jqGrid("getStyleUI",this.p.styleUI+".common","disabled",!0)),Ye("#"+e+"_ilsave").removeClass(t),Ye("#"+e+"_ilcancel").removeClass(t),Ye("#"+e+"_iladd").addClass(t),Ye("#"+e+"_iledit").addClass(t))})}}),Ye.jgrid.msie()&&8===Ye.jgrid.msiever()&&(Ye.expr[":"].hidden=function(e){return 0===e.offsetWidth||0===e.offsetHeight||"none"===e.style.display}),Ye.jgrid._multiselect=!1,Ye.ui&&Ye.ui.multiselect&&(Ye.ui.multiselect.prototype._setSelected&&(i=Ye.ui.multiselect.prototype._setSelected,Ye.ui.multiselect.prototype._setSelected=function(e,t){var r,e=i.call(this,e,t);return t&&this.selectedList&&(r=this.element,this.selectedList.find("li").each(function(){Ye(this).data("optionLink")&&Ye(this).data("optionLink").remove().appendTo(r)})),e}),Ye.ui.multiselect.prototype.destroy&&(Ye.ui.multiselect.prototype.destroy=function(){this.element.show(),this.container.remove(),(void 0===Ye.Widget?Ye.widget:Ye.Widget).prototype.destroy.apply(this,arguments)}),Ye.jgrid._multiselect=!0),Ye.jgrid.extend({sortableColumns:function(l){return this.each(function(){var n=this,e=Ye.jgrid.jqID(n.p.id),t=!1;function r(){n.p.disableClick=!0,n.p.frozenColumns&&(Ye(n).jqGrid("destroyFrozenColumns"),t=!0)}function i(){setTimeout(function(){n.p.disableClick=!1,t&&(Ye(n).jqGrid("setFrozenColumns"),t=!1)},50)}var o,a,e={tolerance:"pointer",axis:"x",scrollSensitivity:"1",items:">th:not(:has(#jqgh_"+e+"_cb,#jqgh_"+e+"_rn,#jqgh_"+e+"_subgrid),:hidden)",cancel:".sortable-disabled",placeholder:{element:function(e){return Ye(document.createElement(e[0].nodeName)).addClass(e[0].className+" ui-sortable-placeholder ui-state-highlight").removeClass("ui-sortable-helper")[0]},update:function(e,t){t.height(e.currentItem.innerHeight()-parseInt(e.currentItem.css("paddingTop")||0,10)-parseInt(e.currentItem.css("paddingBottom")||0,10)),t.width(e.currentItem.innerWidth()-parseInt(e.currentItem.css("paddingLeft")||0,10)-parseInt(e.currentItem.css("paddingRight")||0,10))}},update:function(e,t){var t=Ye(t.item).parent(),t=Ye(">th",t),r=n.p.colModel,i={},o=n.p.id+"_",a=(Ye.each(r,function(e){i[this.name]=e}),[]);t.each(function(){var e=Ye(">div",this).get(0).id.replace(/^jqgh_/,"").replace(o,"");i.hasOwnProperty(e)&&a.push(i[e])}),Ye(n).jqGrid("remapColumns",a,!0,!0),Ye.jgrid.isFunction(n.p.sortable.update)&&n.p.sortable.update(a)}},e=(n.p.sortable.options?Ye.extend(e,n.p.sortable.options):Ye.jgrid.isFunction(n.p.sortable)&&(n.p.sortable={update:n.p.sortable}),e.start?(o=e.start,e.start=function(e,t){r(),o.call(this,e,t)}):e.start=r,e.stop?(a=e.stop,e.stop=function(e,t){i(),a.call(this,e,t)}):e.stop=i,n.p.sortable.exclude&&(e.items+=":not("+n.p.sortable.exclude+")"),l.sortable(e)),e=e.data("sortable")||e.data("uiSortable");null!=e&&(e.data("sortable").floating=!0)})},columnChooser:function(t){var r,i,o=this,n={},a=[],e=o.jqGrid("getGridParam","colModel"),l=Ye.extend([],o.jqGrid("getGridParam","colNames")),s=function(e){return Ye.ui.multiselect.prototype&&e.data(Ye.ui.multiselect.prototype.widgetFullName||Ye.ui.multiselect.prototype.widgetName)||e.data("ui-multiselect")||e.data("multiselect")},d=Ye.jgrid.getRegional(this[0],"col");if(!Ye("#colchooser_"+Ye.jgrid.jqID(o[0].p.id)).length){if(r=Ye('<div id="colchooser_'+o[0].p.id+'" style="position:relative;overflow:hidden"><div><select multiple="multiple"></select></div></div>'),i=Ye("select",r),t=Ye.extend({width:400,height:240,classname:null,groupHeaders:!1,done:function(e){e&&o.jqGrid("remapColumns",e,!0)},msel:"multiselect",dlog:"dialog",dialog_opts:{minWidth:470,dialogClass:"ui-jqdialog"},dlog_opts:function(e){var t={};return t[e.bSubmit]=function(){e.apply_perm(),e.cleanup(!1)},t[e.bCancel]=function(){e.cleanup(!0)},Ye.extend(!0,{buttons:t,close:function(){e.cleanup(!0)},modal:e.modal||!1,resizable:e.resizable||!0,width:e.width+70,resize:m},e.dialog_opts||{})},apply_perm:function(){var a=[];Ye("option",i).each(function(){Ye(this).is(":selected")?o.jqGrid("showCol",e[this.value].name):o.jqGrid("hideCol",e[this.value].name)}),Ye("option[selected]",i).each(function(){this.selected&&a.push(parseInt(this.value,10))}),Ye.each(a,function(){delete n[e[parseInt(this,10)].name]}),Ye.each(n,function(){var e,t,r,i,o=parseInt(this,10);e=a,t=o=o,a=0<=o?(i=(r=e.slice()).splice(o,Math.max(e.length-o,o)),r[o=o>e.length?e.length:o]=t,r.concat(i)):e}),t.done&&t.done.call(o,a),o.jqGrid("setGridWidth",o[0].p.width,o[0].p.shrinkToFit)},cleanup:function(e){f(t.dlog,r,"destroy"),f(t.msel,i,"destroy"),r.remove(),e&&t.done&&t.done.call(o)},msel_opts:{dividerLocation:.5}},d,t||{}),Ye.ui&&Ye.ui.multiselect&&Ye.ui.multiselect.defaults){if(!Ye.jgrid._multiselect)return void alert("Multiselect plugin loaded after jqGrid. Please load the plugin before the jqGrid!");t.msel_opts=Ye.extend(Ye.ui.multiselect.defaults,t.msel_opts)}if(o.jqGrid("isGroupHeaderOn")&&t.groupHeaders)for(var d=o[0].p.groupHeader.length,p=o[0].p.groupHeader[d-1],c=0;c<l.length;c++){var u=Ye.jgrid.inColumnHeader(e[c].name,p.groupHeaders);if(0<=u){l[c]=p.groupHeaders[u].titleText+"::"+l[c];for(var h=1;h<=p.groupHeaders[u].numberOfColumns-1;h++)l[c+h]=p.groupHeaders[u].titleText+"::"+l[c+h];c=c+p.groupHeaders[u].numberOfColumns-1}}t.caption&&r.attr("title",t.caption),t.classname&&(r.addClass(t.classname),i.addClass(t.classname)),t.width&&(Ye(">div",r).css({width:t.width,margin:"0 auto"}),i.css("width",t.width)),t.height&&(Ye(">div",r).css("height",t.height),i.css("height",t.height-10)),i.empty(),Ye.each(e,function(e){n[this.name]=e,this.hidedlg?this.hidden||a.push(e):i.append("<option value='"+e+"' "+(this.hidden?"":"selected='selected'")+">"+Ye.jgrid.stripHtml(l[e])+"</option>")}),d=Ye.jgrid.isFunction(t.dlog_opts)?t.dlog_opts.call(o,t):t.dlog_opts,f(t.dlog,r,d),d=Ye.jgrid.isFunction(t.msel_opts)?t.msel_opts.call(o,t):t.msel_opts,f(t.msel,i,d);var d=Ye("#colchooser_"+Ye.jgrid.jqID(o[0].p.id)),g=Ye(".ui-jqgrid").css("font-size")||"11px";d.parent().css("font-size",g),d.css({margin:"auto"}),d.find(">div").css({width:"100%",height:"100%",margin:"auto"}),(g=s(i)).container.css({width:"100%",height:"100%",margin:"auto"}),g.selectedContainer.css({width:100*g.options.dividerLocation+"%",height:"100%",margin:"auto",boxSizing:"border-box"}),g.availableContainer.css({width:100-100*g.options.dividerLocation+"%",height:"100%",margin:"auto",boxSizing:"border-box"}),g.selectedList.css("height","auto"),g.availableList.css("height","auto"),d=Math.max(g.selectedList.height(),g.availableList.height()),d=Math.min(d,Ye(window).height()),g.selectedList.css("height",d),g.availableList.css("height",d),m()}function f(e,t){e&&("string"==typeof e?Ye.fn[e]&&Ye.fn[e].apply(t,Ye.makeArray(arguments).slice(2)):Ye.jgrid.isFunction(e)&&e.apply(t,Ye.makeArray(arguments).slice(2)))}function m(){var e=s(i),t=e.container.closest(".ui-dialog-content");0<t.length&&"object"==typeof t[0].style?t[0].style.width="":t.css("width",""),e.selectedList.height(Math.max(e.selectedContainer.height()-e.selectedActions.outerHeight()-1,1)),e.availableList.height(Math.max(e.availableContainer.height()-e.availableActions.outerHeight()-1,1))}},sortableRows:function(o){return this.each(function(){var i=this;i.grid&&!i.p.treeGrid&&Ye.fn.sortable&&((o=Ye.extend({cursor:"move",axis:"y",items:" > .jqgrow"},o||{})).start&&Ye.jgrid.isFunction(o.start)?(o._start_=o.start,delete o.start):o._start_=!1,o.update&&Ye.jgrid.isFunction(o.update)?(o._update_=o.update,delete o.update):o._update_=!1,o.start=function(e,t){if(Ye(t.item).css("border-width","0"),Ye("td",t.item).each(function(e){this.style.width=i.grid.cols[e].style.width}),i.p.subGrid){var r=Ye(t.item).attr("id");try{Ye(i).jqGrid("collapseSubGridRow",r)}catch(e){}}o._start_&&o._start_.apply(this,[e,t])},o.update=function(e,t){Ye(t.item).css("border-width",""),!0===i.p.rownumbers&&Ye("td.jqgrid-rownum",i.rows).each(function(e){Ye(this).html(e+1+(parseInt(i.p.page,10)-1)*parseInt(i.p.rowNum,10))}),o._update_&&o._update_.apply(this,[e,t])},Ye(i).find("tbody").first().sortable(o),Ye("tbody",i).first().find(" > .jqgrow").disableSelection())})},gridDnD:function(i){return this.each(function(){var e,t,a=this;if(a.grid&&!a.p.treeGrid&&Ye.fn.draggable&&Ye.fn.droppable){var h;if(void 0===Ye("#jqgrid_dnd")[0]&&Ye("body").append("<table id='jqgrid_dnd' class='ui-jqgrid-dnd'></table>"),"string"==typeof i&&"updateDnD"===i&&!0===a.p.jqgdnd)r();else if((i=Ye.extend({drag:function(o){return Ye.extend({start:function(e,t){var r,i;if(a.p.subGrid){i=Ye(t.helper).attr("id");try{Ye(a).jqGrid("collapseSubGridRow",i)}catch(e){}}for(r=0;r<Ye.data(a,"dnd").connectWith.length;r++)0===Ye(Ye.data(a,"dnd").connectWith[r]).jqGrid("getGridParam","reccount")&&Ye(Ye.data(a,"dnd").connectWith[r]).jqGrid("addRowData","jqg_empty_row",{});t.helper.addClass("ui-state-highlight"),Ye("td",t.helper).each(function(e){this.style.width=a.grid.headers[e].width+"px"}),o.onstart&&Ye.jgrid.isFunction(o.onstart)&&o.onstart.call(Ye(a),e,t)},stop:function(e,t){var r,i;for(t.helper.dropped&&!o.dragcopy&&(void 0===(i=Ye(t.helper).attr("id"))&&(i=Ye(this).attr("id")),Ye(a).jqGrid("delRowData",i)),r=0;r<Ye.data(a,"dnd").connectWith.length;r++)Ye(Ye.data(a,"dnd").connectWith[r]).jqGrid("delRowData","jqg_empty_row");o.onstop&&Ye.jgrid.isFunction(o.onstop)&&o.onstop.call(Ye(a),e,t)}},o.drag_opts||{})},drop:function(u){return Ye.extend({accept:function(e){if(!Ye(e).hasClass("jqgrow"))return e;h=Ye(e).closest("table.ui-jqgrid-btable");var t,e=Ye(this).find("table.ui-jqgrid-btable").first()[0];return 0<h.length&&void 0!==Ye.data(h[0],"dnd")&&(t=Ye.data(h[0],"dnd").connectWith,-1!==Ye.inArray("#"+Ye.jgrid.jqID(e.id),t))},drop:function(e,t){if(Ye(t.draggable).hasClass("jqgrow")){var r,i,o=Ye(t.draggable).attr("id"),a=t.draggable.parent().parent().jqGrid("getRowData",o),n=[],o=Ye(this).find("table.ui-jqgrid-btable").first()[0];if(Ye.isPlainObject(a)&&(n=Object.keys(a)),!u.dropbyname){var l,s,d={},p=0,c=Ye("#"+Ye.jgrid.jqID(o.id)).jqGrid("getGridParam","colModel");try{for(l=0;l<c.length;l++)"cb"!==(s=c[l].name)&&"rn"!==s&&"subgrid"!==s&&"sc"!==s&&(void 0!==n[p]&&(d[s]=a[n[p]]),p++);a=d}catch(e){}}t.helper.dropped=!0,Ye.data(h[0],"dnd").beforedrop&&Ye.jgrid.isFunction(Ye.data(h[0],"dnd").beforedrop)&&null!=(r=Ye.data(h[0],"dnd").beforedrop.call(o,e,t,a,Ye(h[0]),Ye(o)))&&"object"==typeof r&&(a=r),t.helper.dropped&&(u.autoid&&(i=Ye.jgrid.isFunction(u.autoid)?u.autoid.call(o,a):(i=Math.ceil(1e3*Math.random()),u.autoidprefix+i)),Ye("#"+Ye.jgrid.jqID(o.id)).jqGrid("addRowData",i,a,u.droppos)),u.ondrop&&Ye.jgrid.isFunction(u.ondrop)&&u.ondrop.call(o,e,t,a)}}},u.drop_opts||{})},onstart:null,onstop:null,beforedrop:null,ondrop:null,drop_opts:{activeClass:"ui-state-active",hoverClass:"ui-state-hover",tolerance:"intersect"},drag_opts:{revert:"invalid",helper:"clone",cursor:"move",appendTo:"#jqgrid_dnd",zIndex:5e3},dragcopy:!1,dropbyname:!1,droppos:"first",autoid:!0,autoidprefix:"dnd_"},i||{})).connectWith)for(i.connectWith=i.connectWith.split(","),i.connectWith=Ye.map(i.connectWith,function(e){return Ye.jgrid.trim(e)}),Ye.data(a,"dnd",i),0===a.p.reccount||a.p.jqgdnd||r(),a.p.jqgdnd=!0,e=0;e<i.connectWith.length;e++)t=i.connectWith[e],Ye(t).closest(".ui-jqgrid-bdiv").droppable(Ye.jgrid.isFunction(i.drop)?i.drop.call(Ye(a),i):i.drop)}function r(){var e=Ye.data(a,"dnd");Ye("tr.jqgrow:not(.ui-draggable)",a).draggable(Ye.jgrid.isFunction(e.drag)?e.drag.call(Ye(a),e):e.drag)}})},gridResize:function(a){return this.each(function(){var r,e,t,i=this,o=Ye.jgrid.jqID(i.p.id);i.grid&&Ye.fn.resizable&&((a=Ye.extend({},{resizeclass:"ui-resizable-icon"},a||{})).alsoResize?(a._alsoResize_=a.alsoResize,delete a.alsoResize):a._alsoResize_=!1,a.stop&&Ye.jgrid.isFunction(a.stop)?(a._stop_=a.stop,delete a.stop):a._stop_=!1,e=a.resizeclass,"jQueryUI"!==i.p.styleUI&&(a.handles?a.handles.se?e+=" "+a.handles.se.replace(".",""):a.handles.se="."+e:(a.handles={},t=e.split(" "),a.handles.se="."+t[0]),e+=" ui-resizable-se ui-resizable-handle",Ye("#gbox_"+o).append('<span class="'+e+'"></span>')),a.stop=function(e,t){Ye(i).jqGrid("setGridParam",{height:Ye("#gview_"+o+" .ui-jqgrid-bdiv").height()}),Ye(i).jqGrid("setGridWidth",t.size.width,a.shrinkToFit),a._stop_&&a._stop_.call(i,e,t),i.p.caption&&Ye("#gbox_"+o).css({height:"auto"}),i.p.frozenColumns&&(r&&clearTimeout(r),r=setTimeout(function(){r&&clearTimeout(r),Ye("#"+o).jqGrid("destroyFrozenColumns"),Ye("#"+o).jqGrid("setFrozenColumns")}))},a._alsoResize_?a.alsoResize="#gview_"+o+" .ui-jqgrid-bdiv,"+a._alsoResize_:a.alsoResize=Ye(".ui-jqgrid-bdiv","#gview_"+o),delete a._alsoResize_,Ye("#gbox_"+o).resizable(a))})}}),Ye.assocArraySize=function(e){var t,r=0;for(t in e)e.hasOwnProperty(t)&&r++;return r},Ye.jgrid.extend({pivotSetup:function(k,e){var R=[],N=[],M=[],O=[],A=[],T={grouping:!0,groupingView:{groupField:[],groupSummary:[],groupSummaryPos:[]}},P=[],B=Ye.extend({rowTotals:!1,rowTotalsText:"Total",colTotals:!1,groupSummary:!0,groupSummaryPos:"header",frozenStaticCols:!1},e||{});return this.each(function(){var u,h,g,e,t,f=this,r=k.length,i=0;function o(e,t,r){e=function(e,t){var r,i,o,a=[];if(!this||"function"!=typeof e||e instanceof RegExp)throw new TypeError;for(o=this.length,r=0;r<o;r++)if(this.hasOwnProperty(r)&&(i=this[r],e.call(t,i,r,this))){a.push(i);break}return a}.call(e,t,r);return 0<e.length?e[0]:null}function a(e,t){var r,i=0,o=!0;for(r in e)if(e.hasOwnProperty(r)){if(e[r]!=this[i]){o=!1;break}if(++i>=this.length)break}return o&&(w=t),o}function n(e,t,r,i){var o,a,n,l,s=t.length,d="",p=[],c=1;for(Array.isArray(r)?(n=r.length,p=r):(n=1,p[0]=r),A=[],a=(O=[]).root=0;a<n;a++){for(var u,h=[],g=0;g<s;g++){if(l="string"==typeof t[g].aggregator?t[g].aggregator:"cust",null==r)u=o=Ye.jgrid.trim(t[g].member)+"_"+l,p[0]=t[g].label||l+" "+Ye.jgrid.trim(t[g].member);else{u=r[a].replace(/\s+/g,"");try{o=1===s?d+u:d+u+"_"+l+"_"+String(g)}catch(e){}p[a]=r[a]}o=isNaN(parseInt(o,10))?o:o+" ","avg"===t[g].aggregator&&(l=-1===w?N.length+"_"+o:w+"_"+o,m[l]?m[l]++:m[l]=1,c=m[l]),i[o]=h[o]=function(e,t,r,i,o){var a;if(Ye.jgrid.isFunction(e))a=e.call(f,t,r,i);else switch(e){case"sum":a=Ye.jgrid.floatNum(t)+Ye.jgrid.floatNum(i[r]);break;case"count":""!==t&&null!=t||(t=0),a=i.hasOwnProperty(r)?t+1:0;break;case"min":a=""===t||null==t?Ye.jgrid.floatNum(i[r]):Math.min(Ye.jgrid.floatNum(t),Ye.jgrid.floatNum(i[r]));break;case"max":a=""===t||null==t?Ye.jgrid.floatNum(i[r]):Math.max(Ye.jgrid.floatNum(t),Ye.jgrid.floatNum(i[r]));break;case"avg":a=(Ye.jgrid.floatNum(t)*(o-1)+Ye.jgrid.floatNum(i[r]))/o}return a}(t[g].aggregator,i[o],t[g].member,e,c)}d+=r&&null!=r[a]?r[a].replace(/\s+/g,""):"",O[o]=h,A[o]=p[a]}return i}if(B.rowTotals&&0<B.yDimension.length&&(e=B.yDimension[0].dataName,B.yDimension.splice(0,0,{dataName:e}),B.yDimension[0].converter=function(){return"_r_Totals"}),u=Array.isArray(B.xDimension)?B.xDimension.length:0,h=B.yDimension.length,g=Array.isArray(B.aggregates)?B.aggregates.length:0,0===u||0===g)throw"xDimension or aggregates optiona are not set!";for(j=0;j<u;j++)t={name:B.xDimension[j].dataName,frozen:B.frozenStaticCols},null==B.xDimension[j].isGroupField&&(B.xDimension[j].isGroupField=!0),t=Ye.extend(!0,t,B.xDimension[j]),R.push(t);for(var l=u-1,s={},m=[];i<r;){for(var d=k[i],p=[],c=[],v={},j=0;p[j]=Ye.jgrid.trim(d[B.xDimension[j].dataName]),v[B.xDimension[j].dataName]=p[j],++j<u;);var b,y=0,w=-1;if(b=o(N,a,p)){if(0<=w){if(y=0,1<=h){for(y=0;y<h;y++)c[y]=Ye.jgrid.trim(d[B.yDimension[y].dataName]),void 0===c[y]?c[y]=null:B.yDimension[y].converter&&Ye.jgrid.isFunction(B.yDimension[y].converter)&&(c[y]=B.yDimension[y].converter.call(this,c[y],p,c));b=n(d,B.aggregates,c,b)}else 0===h&&(b=n(d,B.aggregates,null,b));N[w]=b}}else{if(y=0,1<=h){for(y=0;y<h;y++)c[y]=Ye.jgrid.trim(d[B.yDimension[y].dataName]),void 0===c[y]?c[y]=null:B.yDimension[y].converter&&Ye.jgrid.isFunction(B.yDimension[y].converter)&&(c[y]=B.yDimension[y].converter.call(this,c[y],p,c));v=n(d,B.aggregates,c,v)}else 0===h&&(v=n(d,B.aggregates,null,v));N.push(v)}var x,_=0,q=null,C=null;for(x in O)if(O.hasOwnProperty(x)){if(0===_)q=(s=s.children&&void 0!==s.children?s:{text:x,level:0,children:[],label:x}).children;else{for(C=null,j=0;j<q.length;j++)if(q[j].text===x){C=q[j];break}q=(C||(q.push({children:[],text:x,level:_,fields:O[x],label:A[x]}),q[q.length-1])).children}_++}i++}var I,m=null,D=[],F=R.length,G=F;if(0<h&&(P[h-1]={useColSpanStyle:!1,groupHeaders:[]}),!function e(t){var r,i,o,a,n;for(o in t)if(t.hasOwnProperty(o)){if("object"!=typeof t[o]){if("level"===o){if(void 0===D[t.level]&&(D[t.level]="",0<t.level)&&-1===t.text.indexOf("_r_Totals")&&(P[t.level-1]={useColSpanStyle:!1,groupHeaders:[]}),D[t.level]!==t.text&&t.children.length&&-1===t.text.indexOf("_r_Totals")&&0<t.level){P[t.level-1].groupHeaders.push({titleText:t.label,numberOfColumns:0});var l=P[t.level-1].groupHeaders.length-1,s=0==l?G:F;if(t.level-1==(B.rowTotals?1:0)&&0<l){for(var d=0,p=0;p<l;p++)d+=P[t.level-1].groupHeaders[p].numberOfColumns;d&&(s=d+u)}R[s]&&(P[t.level-1].groupHeaders[l].startColumnName=R[s].name,P[t.level-1].groupHeaders[l].numberOfColumns=R.length-s),F=R.length}D[t.level]=t.text}if(t.level===h&&"level"===o&&0<h)if(1<g){var c=1;for(r in t.fields)t.fields.hasOwnProperty(r)&&(1===c&&P[h-1].groupHeaders.push({startColumnName:r,numberOfColumns:1,titleText:t.label||t.text}),c++);P[h-1].groupHeaders[P[h-1].groupHeaders.length-1].numberOfColumns=c-1}else P.splice(h-1,1)}if(null!=t[o]&&"object"==typeof t[o]&&e(t[o]),"level"===o&&0<t.level&&(t.level===(0===h?t.level:h)||-1!==D[t.level].indexOf("_r_Totals")))for(r in i=0,t.fields)if(t.fields.hasOwnProperty(r)){for(a in n={},B.aggregates[i])if(B.aggregates[i].hasOwnProperty(a))switch(a){case"member":case"label":case"aggregator":break;default:n[a]=B.aggregates[i][a]}1<g?(n.name=r,n.label=B.aggregates[i].label||t.label):(n.name=t.text,n.label="_r_Totals"===t.text?B.rowTotalsText:t.label),R.push(n),i++}}}(s),B.colTotals)for(var S=N.length;S--;)for(j=u;j<R.length;j++)I=R[j].name,M[I]?M[I]+=Ye.jgrid.floatNum(N[S][I]):M[I]=Ye.jgrid.floatNum(N[S][I]);if(0<l)for(j=0;j<l;j++)R[j].isGroupField&&(T.groupingView.groupField.push(R[j].name),T.groupingView.groupSummary.push(B.groupSummary),T.groupingView.groupSummaryPos.push(B.groupSummaryPos));else T.grouping=!1;T.sortname=R[l].name,T.groupingView.hideFirstGroupCol=!0}),{colModel:R,rows:N,groupOptions:T,groupHeaders:P,summary:M}},jqPivot:function(r,d,p,i){return this.each(function(){var s=this,e=p.regional||"en";function t(e){Ye.jgrid.isFunction(d.onInitPivot)&&d.onInitPivot.call(s),Array.isArray(e)||(e=[]);var t,r,i,o,a=jQuery(s).jqGrid("pivotSetup",e,d),e=0<Ye.assocArraySize(a.summary),n=Ye.jgrid.from.call(s,a.rows);for(d.ignoreCase&&(n=n.ignoreCase()),t=0;t<a.groupOptions.groupingView.groupField.length;t++)r=d.xDimension[t].sortorder||"asc",i=d.xDimension[t].sorttype||"text",n.orderBy(a.groupOptions.groupingView.groupField[t],r,i,"",i);if(o=d.xDimension.length,p.sortname){for(r=p.sortorder||"asc",i="text",t=0;t<o;t++)if(d.xDimension[t].dataName===p.sortname){i=d.xDimension[t].sorttype||"text";break}n.orderBy(p.sortname,r,i,"",i)}else a.groupOptions.sortname&&o&&(r=d.xDimension[o-1].sortorder||"asc",i=d.xDimension[o-1].sorttype||"text",n.orderBy(a.groupOptions.sortname,r,i,"",i));jQuery(s).jqGrid(Ye.extend(!0,{datastr:Ye.extend(n.select(),e?{userdata:a.summary}:{}),datatype:"jsonstring",footerrow:e,userDataOnFooter:e,colModel:a.colModel,viewrecords:!0,formatFooterData:!0===d.colTotals,sortname:d.xDimension[0].dataName},a.groupOptions,p||{}));var l=a.groupHeaders;if(l.length)for(t=0;t<l.length;t++)l[t]&&l[t].groupHeaders.length&&jQuery(s).jqGrid("setGroupHeaders",l[t]);d.frozenStaticCols&&jQuery(s).jqGrid("setFrozenColumns"),Ye.jgrid.isFunction(d.onCompletePivot)&&d.onCompletePivot.call(s),d.loadMsg&&Ye(".loading_pivot").remove()}void 0===d.loadMsg&&(d.loadMsg=!0),d.loadMsg&&Ye("<div class='loading_pivot ui-state-default ui-state-active row'>"+Ye.jgrid.getRegional(s,"regional."+e+".defaults.loadtext")+"</div>").insertBefore(s).show(),"string"==typeof r?Ye.ajax(Ye.extend({url:r,dataType:"json",success:function(e){t(Ye.jgrid.getAccessor(e,i&&i.reader?i.reader:"rows"))}},i||{})):t(r)})}}),Ye.jgrid.extend({setSubGrid:function(){return this.each(function(){var e,t,r=Ye.jgrid.styleUI[this.p.styleUI||"jQueryUI"].subgrid,r={plusicon:r.icon_plus,minusicon:r.icon_minus,openicon:r.icon_open,expandOnLoad:!1,selectOnExpand:!1,selectOnCollapse:!1,reloadOnExpand:!0,onErrorLoadData:null};if(this.p.subGridOptions=Ye.extend(r,this.p.subGridOptions||{}),this.p.colNames.unshift(""),this.p.colModel.unshift({name:"subgrid",width:Ye.jgrid.cell_width?this.p.subGridWidth+this.p.cellLayout:this.p.subGridWidth,sortable:!1,resizable:!1,hidedlg:!0,search:!1,fixed:!0}),(e=this.p.subGridModel)[0])for(e[0].align=Ye.extend([],e[0].align||[]),t=0;t<e[0].name.length;t++)e[0].align[t]=e[0].align[t]||"left"})},addSubGridCell:function(e,t){var r,i,o,a="";return this.each(function(){a=this.formatCol(e,t),i=this.p.id,r=this.p.subGridOptions.plusicon,o=Ye.jgrid.styleUI[this.p.styleUI||"jQueryUI"].common}),'<td role="gridcell" aria-describedby="'+i+'_subgrid" class="ui-sgcollapsed sgcollapsed" '+a+"><a style='cursor:pointer;' class='ui-sghref'><span class='"+o.icon_base+" "+r+"'></span></a></td>"},addSubGrid:function(b,a){return this.each(function(){var c=this;if(c.grid){var n,l,s,d,p,e,r,u=Ye.jgrid.styleUI[c.p.styleUI||"jQueryUI"].base,h=Ye.jgrid.styleUI[c.p.styleUI||"jQueryUI"].common,g=Ye.jgrid.getRegional(this,"errors"),f=function(e,t,r){r=Ye("<td align='"+c.p.subGridModel[0].align[r]+"'></td>").html(t);Ye(e).append(r)},m=function(e,t){for(var r,i,o=Ye("<table class='"+u.rowTable+" ui-common-table'><tbody></tbody></table>"),a=Ye("<tr></tr>"),n=0;n<c.p.subGridModel[0].name.length;n++)r=Ye("<th class='"+u.headerBox+" ui-th-subgrid ui-th-column ui-th-"+c.p.direction+"'></th>"),Ye(r).html(c.p.subGridModel[0].name[n]),Ye(r).width(c.p.subGridModel[0].width[n]),Ye(a).append(r);Ye(o).append(a),e&&(i=c.p.xmlReader.subgrid,Ye(i.root+" "+i.row,e).each(function(){if(a=Ye("<tr class='"+h.content+" ui-subtblcell'></tr>"),!0===i.repeatitems)Ye(i.cell,this).each(function(e){f(a,Ye(this).text()||"&#160;",e)});else{var e=c.p.subGridModel[0].mapping||c.p.subGridModel[0].name;if(e)for(n=0;n<e.length;n++)f(a,Ye.jgrid.getXmlData(this,e[n])||"&#160;",n)}Ye(o).append(a)}));e=Ye(c.grid.bDiv).find("table").first().attr("id")+"_";return Ye("#"+Ye.jgrid.jqID(e+t)).append(o),c.grid.hDiv.loading=!1,Ye("#load_"+Ye.jgrid.jqID(c.p.id)).hide(),!1},v=function(e,t){for(var r,i,o,a,n,l=Ye("<table class='"+u.rowTable+" ui-common-table'><tbody></tbody></table>"),s=Ye("<tr></tr>"),d=0;d<c.p.subGridModel[0].name.length;d++)r=Ye("<th class='"+u.headerBox+" ui-th-subgrid ui-th-column ui-th-"+c.p.direction+"'></th>"),Ye(r).html(c.p.subGridModel[0].name[d]),Ye(r).width(c.p.subGridModel[0].width[d]),Ye(s).append(r);if(Ye(l).append(s),e&&(a=c.p.jsonReader.subgrid,void 0!==(i=Ye.jgrid.getAccessor(e,a.root))))for(d=0;d<i.length;d++){if(o=i[d],s=Ye("<tr class='"+h.content+" ui-subtblcell'></tr>"),!0===a.repeatitems)for(a.cell&&(o=o[a.cell]),n=0;n<o.length;n++)f(s,o[n]||"&#160;",n);else{var p=c.p.subGridModel[0].mapping||c.p.subGridModel[0].name;if(p.length)for(n=0;n<p.length;n++)f(s,Ye.jgrid.getAccessor(o,p[n])||"&#160;",n)}Ye(l).append(s)}e=Ye(c.grid.bDiv).find("table").first().attr("id")+"_";return Ye("#"+Ye.jgrid.jqID(e+t)).append(l),c.grid.hDiv.loading=!1,Ye("#load_"+Ye.jgrid.jqID(c.p.id)).hide(),!1},j=0,t=(Ye.each(c.p.colModel,function(){!0!==this.hidden&&"rn"!==this.name&&"cb"!==this.name&&"sc"!==this.name||j++}),c.rows.length),i=1,o=Ye.jgrid.isFunction(c.p.isHasSubGrid);for(void 0!==a&&0<a&&(t=(i=a)+1);i<t;)Ye(c.rows[i]).hasClass("jqgrow")&&(c.p.scroll&&Ye(c.rows[i].cells[b]).off("click"),e=null,!1===(e=o?c.p.isHasSubGrid.call(c,c.rows[i].id):e)?c.rows[i].cells[b].innerHTML="":Ye(c.rows[i].cells[b]).on("click",function(){var e=Ye(this).parent("tr")[0];if(l=c.p.id,n=e.id,p=Ye("#"+l+"_"+n+"_expandedContent"),Ye(this).hasClass("sgcollapsed")){if(!1===(d=(d=!1!==(d=Ye(c).triggerHandler("jqGridSubGridBeforeExpand",[l+"_"+n,n]))&&"stop"!==d)&&Ye.jgrid.isFunction(c.p.subGridBeforeExpand)?c.p.subGridBeforeExpand.call(c,l+"_"+n,n):d))return!1;if(!0===c.p.subGridOptions.reloadOnExpand||!1===c.p.subGridOptions.reloadOnExpand&&!p.hasClass("ui-subgrid"))if(s=1<=b?"<td colspan='"+b+"'>&#160;</td>":"",Ye(e).after("<tr role='row' id='"+l+"_"+n+"_expandedContent' class='ui-subgrid ui-sg-expanded'>"+s+"<td class='"+h.content+" subgrid-cell'><span class='"+h.icon_base+" "+c.p.subGridOptions.openicon+"'></span></td><td colspan='"+parseInt(c.p.colNames.length-1-j,10)+"' class='"+h.content+" subgrid-data'><div id="+l+"_"+n+" class='tablediv'></div></td></tr>"),Ye(c).triggerHandler("jqGridSubGridRowExpanded",[l+"_"+n,n]),Ye.jgrid.isFunction(c.p.subGridRowExpanded))c.p.subGridRowExpanded.call(c,l+"_"+n,n);else{var t,r,i=e,o=Ye(i).attr("id"),a={nd_:(new Date).getTime()};if(a[c.p.prmNames.subgridid]=o,c.p.subGridModel[0]){if(c.p.subGridModel[0].params)for(r=0;r<c.p.subGridModel[0].params.length;r++)for(t=0;t<c.p.colModel.length;t++)c.p.colModel[t].name===c.p.subGridModel[0].params[r]&&(a[c.p.colModel[t].name]=Ye("td",i).eq(t).text().replace(/\&#160\;/gi,""));if(!c.grid.hDiv.loading)switch(c.grid.hDiv.loading=!0,Ye("#load_"+Ye.jgrid.jqID(c.p.id)).show(),c.p.subgridtype||(c.p.subgridtype=c.p.datatype),Ye.jgrid.isFunction(c.p.subgridtype)?c.p.subgridtype.call(c,a):c.p.subgridtype=c.p.subgridtype.toLowerCase(),c.p.subgridtype){case"xml":case"json":Ye.ajax(Ye.extend({type:c.p.mtype,url:Ye.jgrid.isFunction(c.p.subGridUrl)?c.p.subGridUrl.call(c,a):c.p.subGridUrl,dataType:c.p.subgridtype,data:Ye.jgrid.isFunction(c.p.serializeSubGridData)?c.p.serializeSubGridData.call(c,a):a,success:function(e,t,r){"xml"===c.p.subgridtype?m(r.responseXML,o):v(Ye.jgrid.parse(r.responseText),o)},error:function(e,t,r){if(Ye.jgrid.isFunction(c.p.subGridOptions.onErrorLoadData))c.p.subGridOptions.onErrorLoadData.call(c,rowid,e,t,r);else{t=e.responseText+" <br/>"+e.statusText;try{Ye.jgrid.info_dialog(g.errcap,'<div class="'+h.error+'">'+t+"</div>",edit.bClose,{buttonalign:"right",styleUI:c.p.styleUI})}catch(e){alert(t)}}}},Ye.jgrid.ajaxOptions,c.p.ajaxSubgridOptions||{}))}}}else p.show().removeClass("ui-sg-collapsed").addClass("ui-sg-expanded");Ye(this).html("<a style='cursor:pointer;' class='ui-sghref'><span class='"+h.icon_base+" "+c.p.subGridOptions.minusicon+"'></span></a>").removeClass("sgcollapsed").addClass("sgexpanded"),c.p.subGridOptions.selectOnExpand&&Ye(c).jqGrid("setSelection",n)}else if(Ye(this).hasClass("sgexpanded")){if(!1===(d=(d=!1!==(d=Ye(c).triggerHandler("jqGridSubGridRowColapsed",[l+"_"+n,n]))&&"stop"!==d)&&Ye.jgrid.isFunction(c.p.subGridRowColapsed)?c.p.subGridRowColapsed.call(c,l+"_"+n,n):d))return!1;!0===c.p.subGridOptions.reloadOnExpand?p.remove(".ui-subgrid"):p.hasClass("ui-subgrid")&&p.hide().addClass("ui-sg-collapsed").removeClass("ui-sg-expanded"),Ye(this).html("<a style='cursor:pointer;' class='ui-sghref'><span class='"+h.icon_base+" "+c.p.subGridOptions.plusicon+"'></span></a>").removeClass("sgexpanded").addClass("sgcollapsed"),c.p.subGridOptions.selectOnCollapse&&Ye(c).jqGrid("setSelection",n)}return!1})),i++;!0===c.p.subGridOptions.expandOnLoad&&(r=0,c.p.multiselect&&r++,c.p.rownumbers&&r++,Ye(c.rows).filter(".jqgrow").each(function(e,t){Ye(t.cells[r]).click()})),c.subGridXml=function(e,t){m(e,t)},c.subGridJson=function(e,t){v(e,t)}}})},expandSubGridRow:function(t){return this.each(function(){var e;(this.grid||t)&&!0===this.p.subGrid&&(e=Ye(this).jqGrid("getInd",t,!0))&&(e=Ye("td.sgcollapsed",e)[0])&&Ye(e).trigger("click")})},collapseSubGridRow:function(t){return this.each(function(){var e;(this.grid||t)&&!0===this.p.subGrid&&(e=Ye(this).jqGrid("getInd",t,!0))&&(e=Ye("td.sgexpanded",e)[0])&&Ye(e).trigger("click")})},toggleSubGridRow:function(r){return this.each(function(){var e,t;(this.grid||r)&&!0===this.p.subGrid&&(e=Ye(this).jqGrid("getInd",r,!0))&&(t=(t=Ye("td.sgcollapsed",e)[0])||Ye("td.sgexpanded",e)[0])&&Ye(t).trigger("click")})}}),Ye.jgrid.extend({setTreeNode:function(f,m){return this.each(function(){var r=this;if(r.grid&&r.p.treeGrid){var e,t,i,o,a,n=r.p.expColInd,l=r.p.treeReader.expanded_field,s=r.p.treeReader.leaf_field,d=r.p.treeReader.level_field,p=r.p.treeReader.icon_field,c=r.p.treeReader.loaded,u=Ye.jgrid.styleUI[r.p.styleUI||"jQueryUI"].common,h=f;for(Ye(r).triggerHandler("jqGridBeforeSetTreeNode",[h,m]),Ye.jgrid.isFunction(r.p.beforeSetTreeNode)&&r.p.beforeSetTreeNode.call(r,h,m);f<m;){var g=Ye.jgrid.stripPref(r.p.idPrefix,r.rows[f].id),g=r.p._index[g],g=r.p.data[g];"nested"!==r.p.treeGridModel||g[s]||(i=parseInt(g[r.p.treeReader.left_field],10),e=parseInt(g[r.p.treeReader.right_field],10),g[s]=e===i+1?"true":"false",r.rows[f].cells[r.p._treeleafpos].innerHTML=g[s]),e=parseInt(g[d],10),i=0===r.p.tree_root_level?(t=e+1,e):(t=e)-1,o="<div class='tree-wrap tree-wrap-"+r.p.direction+"' style='width:"+18*t+"px;'>",o+="<div style='"+("rtl"===r.p.direction?"right:":"left:")+18*i+"px;' class='"+u.icon_base+" ",void 0!==g[c]&&("true"===g[c]||!0===g[c]?g[c]=!0:g[c]=!1),a="true"===g[s]||!0===g[s]?(o+=(void 0!==g[p]&&""!==g[p]?g[p]:r.p.treeIcons.leaf)+" tree-leaf treeclick",g[s]=!0,"leaf"):(g[s]=!1,""),g[l]=("true"===g[l]||!0===g[l])&&(g[c]||void 0===g[c]),!1===g[l]?o+=!0===g[s]?"'":r.p.treeIcons.plus+" tree-plus treeclick'":o+=!0===g[s]?"'":r.p.treeIcons.minus+" tree-minus treeclick'",o+="></div></div>",Ye(r.rows[f].cells[n]).wrapInner("<span class='cell-wrapper"+a+"'></span>").prepend(o),e===parseInt(r.p.tree_root_level,10)||Ye(r).jqGrid("isVisibleNode",g)||Ye(r.rows[f]).css("display","none"),Ye(r.rows[f].cells[n]).find("div.treeclick").on("click",function(e){e=e.target||e.srcElement,e=Ye.jgrid.stripPref(r.p.idPrefix,Ye(e,r.rows).closest("tr.jqgrow")[0].id),e=r.p._index[e];r.p.data[e][s]||(r.p.data[e][l]?(Ye(r).jqGrid("collapseRow",r.p.data[e]),Ye(r).jqGrid("collapseNode",r.p.data[e])):(Ye(r).jqGrid("expandRow",r.p.data[e]),Ye(r).jqGrid("expandNode",r.p.data[e])))}),!0===r.p.ExpandColClick&&Ye(r.rows[f].cells[n]).find("span.cell-wrapper").css("cursor","pointer").on("click",function(e){var e=e.target||e.srcElement,e=Ye.jgrid.stripPref(r.p.idPrefix,Ye(e,r.rows).closest("tr.jqgrow")[0].id),t=r.p._index[e];r.p.data[t][s]||(r.p.data[t][l]?(Ye(r).jqGrid("collapseRow",r.p.data[t]),Ye(r).jqGrid("collapseNode",r.p.data[t])):(Ye(r).jqGrid("expandRow",r.p.data[t]),Ye(r).jqGrid("expandNode",r.p.data[t]))),Ye(r).jqGrid("setSelection",e)}),f++}Ye(r).triggerHandler("jqGridAfterSetTreeNode",[h,m]),Ye.jgrid.isFunction(r.p.afterSetTreeNode)&&r.p.afterSetTreeNode.call(r,h,m)}})},setTreeGrid:function(){return this.each(function(){var e,t,r,i,o=this,a=0,n=!1,l=[],s=Ye.jgrid.styleUI[o.p.styleUI||"jQueryUI"].treegrid;if(o.p.treeGrid){for(r in o.p.treedatatype||Ye.extend(o.p,{treedatatype:o.p.datatype}),o.p.loadonce&&(o.p.treedatatype="local"),o.p.subGrid=!1,o.p.altRows=!1,o.p.treeGrid_bigData||(o.p.pgbuttons=!1,o.p.pginput=!1,o.p.rowList=[]),o.p.gridview=!0,null!==o.p.rowTotal||o.p.treeGrid_bigData||(o.p.rowNum=1e4),o.p.multiselect=!1,o.p.expColInd=0,e=s.icon_plus,"jQueryUI"===o.p.styleUI&&(e+="rtl"===o.p.direction?"w":"e"),o.p.treeIcons=Ye.extend({plus:e,minus:s.icon_minus,leaf:s.icon_leaf},o.p.treeIcons||{}),"nested"===o.p.treeGridModel?o.p.treeReader=Ye.extend({level_field:"level",left_field:"lft",right_field:"rgt",leaf_field:"isLeaf",expanded_field:"expanded",loaded:"loaded",icon_field:"icon"},o.p.treeReader):"adjacency"===o.p.treeGridModel&&(o.p.treeReader=Ye.extend({level_field:"level",parent_id_field:"parent",leaf_field:"isLeaf",expanded_field:"expanded",loaded:"loaded",icon_field:"icon"},o.p.treeReader)),o.p.colModel)if(o.p.colModel.hasOwnProperty(r))for(i in(t=o.p.colModel[r].name)!==o.p.ExpandColumn||n||(n=!0,o.p.expColInd=a),a++,t!==o.p.treeReader.level_field&&t!==o.p.treeReader.left_field&&t!==o.p.treeReader.right_field||(o.p.colModel[r].sorttype="integer"),o.p.treeReader)o.p.treeReader.hasOwnProperty(i)&&o.p.treeReader[i]===t&&l.push(t);Ye.each(o.p.treeReader,function(e,t){t&&-1===Ye.inArray(t,l)&&("leaf_field"===e&&(o.p._treeleafpos=a),a++,o.p.colNames.push(t),o.p.colModel.push({name:t,width:1,hidden:!0,sortable:!1,resizable:!1,hidedlg:!0,editable:!0,search:!1}))})}})},expandRow:function(n){this.each(function(){var e,t,r,i,o,a=this;a.p.treeGrid_bigData||(e=a.p.lastpage),a.grid&&a.p.treeGrid&&(t=Ye(a).jqGrid("getNodeChildren",n),r=a.p.treeReader.expanded_field,i=n[a.p.localReader.id],!1===(o=(o=void 0===(o=Ye(a).triggerHandler("jqGridBeforeExpandTreeGridRow",[i,n,t]))?!0:o)&&Ye.jgrid.isFunction(a.p.beforeExpandTreeGridRow)?a.p.beforeExpandTreeGridRow.call(a,i,n,t):o)||(Ye(t).each(function(){var e=a.p.idPrefix+Ye.jgrid.getAccessor(this,a.p.localReader.id);Ye(Ye(a).jqGrid("getGridRowById",e)).css("display",""),this[r]&&Ye(a).jqGrid("expandRow",this)}),Ye(a).triggerHandler("jqGridAfterExpandTreeGridRow",[i,n,t]),Ye.jgrid.isFunction(a.p.afterExpandTreeGridRow)&&a.p.afterExpandTreeGridRow.call(a,i,n,t),a.p.treeGrid_bigData)||(a.p.lastpage=e))})},collapseRow:function(a){this.each(function(){var e,t,r,i,o=this;o.grid&&o.p.treeGrid&&(e=Ye(o).jqGrid("getNodeChildren",a),t=o.p.treeReader.expanded_field,r=a[o.p.localReader.id],!1!==(i=(i=void 0===(i=Ye(o).triggerHandler("jqGridBeforeCollapseTreeGridRow",[r,a,e]))?!0:i)&&Ye.jgrid.isFunction(o.p.beforeCollapseTreeGridRow)?o.p.beforeCollapseTreeGridRow.call(o,r,a,e):i))&&(Ye(e).each(function(){var e=o.p.idPrefix+Ye.jgrid.getAccessor(this,o.p.localReader.id);Ye(Ye(o).jqGrid("getGridRowById",e)).css("display","none"),this[t]&&Ye(o).jqGrid("collapseRow",this)}),Ye(o).triggerHandler("jqGridAfterCollapseTreeGridRow",[r,a,e]),Ye.jgrid.isFunction(o.p.afterCollapseTreeGridRow))&&o.p.afterCollapseTreeGridRow.call(o,r,a,e)})},getRootNodes:function(){var o=[];return this.each(function(){var e,t,r=this,i=r.p.data;if(r.grid&&r.p.treeGrid)switch(r.p.treeGridModel){case"nested":e=r.p.treeReader.level_field,Ye(i).each(function(){parseInt(this[e],10)===parseInt(r.p.tree_root_level,10)&&o.push(this)});break;case"adjacency":t=r.p.treeReader.parent_id_field,Ye(i).each(function(){null!==this[t]&&"null"!==String(this[t]).toLowerCase()||o.push(this)})}}),o},getNodeDepth:function(t){var r=null;return this.each(function(){if(this.grid&&this.p.treeGrid)switch(this.p.treeGridModel){case"nested":var e=this.p.treeReader.level_field;r=parseInt(t[e],10)-parseInt(this.p.tree_root_level,10);break;case"adjacency":r=Ye(this).jqGrid("getNodeAncestors",t).length}}),r},getNodeParent:function(c){var u=null;return this.each(function(){var e=this;if(e.grid&&e.p.treeGrid)switch(e.p.treeGridModel){case"nested":var t=e.p.treeReader.left_field,r=e.p.treeReader.right_field,i=e.p.treeReader.level_field,o=parseInt(c[t],10),a=parseInt(c[r],10),n=parseInt(c[i],10);Ye(this.p.data).each(function(){if(parseInt(this[i],10)===n-1&&parseInt(this[t],10)<o&&parseInt(this[r],10)>a)return u=this,!1});break;case"adjacency":for(var l=e.p.treeReader.parent_id_field,s=e.p.localReader.id,d=c[s],p=e.p._index[d];p--;)if(String(e.p.data[p][s])===String(Ye.jgrid.stripPref(e.p.idPrefix,c[l]))){u=e.p.data[p];break}}}),u},getNodeChildren:function(u){var h=[];return this.each(function(){var e=this;if(e.grid&&e.p.treeGrid){var t,r=this.p.data.length;switch(e.p.treeGridModel){case"nested":for(var i=e.p.treeReader.left_field,o=e.p.treeReader.right_field,a=e.p.treeReader.level_field,n=parseInt(u[i],10),l=parseInt(u[o],10),s=parseInt(u[a],10),d=0;d<r;d++)(t=e.p.data[d])&&parseInt(t[a],10)===s+1&&parseInt(t[i],10)>n&&parseInt(t[o],10)<l&&h.push(t);break;case"adjacency":var p=e.p.treeReader.parent_id_field,c=e.p.localReader.id;for(d=0;d<r;d++)(t=e.p.data[d])&&String(t[p])===String(Ye.jgrid.stripPref(e.p.idPrefix,u[c]))&&h.push(t)}}}),h},getFullTreeNode:function(c,u){var h=[];return this.each(function(){var t,r,i,o=this,a=o.p.treeReader.expanded_field;if(o.grid&&o.p.treeGrid)switch(null!=u&&"boolean"==typeof u||(u=!1),o.p.treeGridModel){case"nested":var e=o.p.treeReader.left_field,n=o.p.treeReader.right_field,l=o.p.treeReader.level_field,s=parseInt(c[e],10),d=parseInt(c[n],10),p=parseInt(c[l],10);Ye(this.p.data).each(function(){parseInt(this[l],10)>=p&&parseInt(this[e],10)>=s&&parseInt(this[e],10)<=d&&(u&&(this[a]=!0),h.push(this))});break;case"adjacency":c&&(h.push(c),r=o.p.treeReader.parent_id_field,i=o.p.localReader.id,Ye(this.p.data).each(function(e){for(t=h.length,e=0;e<t;e++)if(String(Ye.jgrid.stripPref(o.p.idPrefix,h[e][i]))===String(this[r])){u&&(this[a]=!0),h.push(this);break}}))}}),h},getNodeAncestors:function(t,r,i){var o=[];return void 0===r&&(r=!1),this.each(function(){if(this.grid&&this.p.treeGrid){i=void 0!==i&&this.p.treeReader.expanded_field;for(var e=Ye(this).jqGrid("getNodeParent",t);e;){if(i)try{e[i]=!0}catch(e){}r?o.unshift(e):o.push(e),e=Ye(this).jqGrid("getNodeParent",e)}}}),o},isVisibleNode:function(r){var i=!0;return this.each(function(){var e,t;this.grid&&this.p.treeGrid&&(e=Ye(this).jqGrid("getNodeAncestors",r),t=this.p.treeReader.expanded_field,Ye(e).each(function(){if(!(i=i&&this[t]))return!1}))}),i},isNodeLoaded:function(r){var i;return this.each(function(){var e,t;this.grid&&this.p.treeGrid&&(e=this.p.treeReader.leaf_field,t=this.p.treeReader.loaded,i=void 0!==r&&(void 0!==r[t]?r[t]:!!(r[e]||0<Ye(this).jqGrid("getNodeChildren",r).length)))}),i},setLeaf:function(o,a,n){return this.each(function(){var e=Ye.jgrid.getAccessor(o,this.p.localReader.id),t=Ye("#"+e,this.grid.bDiv)[0],r=this.p.treeReader.leaf_field;try{var i=this.p._index[e];null!=i&&(this.p.data[i][r]=a)}catch(e){}!0===a?Ye("div.treeclick",t).removeClass(this.p.treeIcons.minus+" tree-minus "+this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.leaf+" tree-leaf"):!1===a&&(e=this.p.treeIcons.minus+" tree-minus",n&&(e=this.p.treeIcons.plus+" tree-plus"),Ye("div.treeclick",t).removeClass(this.p.treeIcons.leaf+" tree-leaf").addClass(e))})},reloadNode:function(p,c){return this.each(function(){var e,t,r,i,o,a,n,l,s,d;this.grid&&this.p.treeGrid&&(t=this.p.localReader.id,e=this.p.selrow,Ye(this).jqGrid("delChildren",p[t]),(c=void 0===c?!1:c)||jQuery._data(this,"events").jqGridAfterSetTreeNode||Ye(this).on("jqGridAfterSetTreeNode.reloadNode",function(){var e,t,r=this.p.treeReader.leaf_field;this.p.reloadnode&&(e=this.p.reloadnode,t=Ye(this).jqGrid("getNodeChildren",e),e[r]&&t.length?Ye(this).jqGrid("setLeaf",e,!1):e[r]||0!==t.length||Ye(this).jqGrid("setLeaf",e,!0)),this.p.reloadnode=!1}),t=this.p.treeReader.expanded_field,r=this.p.treeReader.parent_id_field,i=this.p.treeReader.loaded,o=this.p.treeReader.level_field,a=this.p.treeReader.leaf_field,n=this.p.treeReader.left_field,l=this.p.treeReader.right_field,s=Ye.jgrid.getAccessor(p,this.p.localReader.id),d=Ye("#"+s,this.grid.bDiv)[0],p[t]=!0,p[a]||Ye("div.treeclick",d).removeClass(this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.minus+" tree-minus"),this.p.treeANode=d.rowIndex,this.p.datatype=this.p.treedatatype,this.p.reloadnode=p,c&&(this.p.treeANode=0<d.rowIndex?d.rowIndex-1:1,Ye(this).jqGrid("delRowData",s)),"nested"===this.p.treeGridModel?Ye(this).jqGrid("setGridParam",{postData:{nodeid:s,n_left:p[n],n_right:p[l],n_level:p[o]}}):Ye(this).jqGrid("setGridParam",{postData:{nodeid:s,parentid:p[r],n_level:p[o]}}),Ye(this).trigger("reloadGrid"),p[i]=!0,"nested"===this.p.treeGridModel?Ye(this).jqGrid("setGridParam",{selrow:e,postData:{nodeid:"",n_left:"",n_right:"",n_level:""}}):Ye(this).jqGrid("setGridParam",{selrow:e,postData:{nodeid:"",parentid:"",n_level:""}}))})},expandNode:function(p){return this.each(function(){var e,t,r,i,o,a,n,l,s,d;this.grid&&this.p.treeGrid&&(e=this.p.treeReader.expanded_field,t=this.p.treeReader.parent_id_field,r=this.p.treeReader.loaded,i=this.p.treeReader.level_field,o=this.p.treeReader.left_field,a=this.p.treeReader.right_field,p[e]||(n=Ye.jgrid.getAccessor(p,this.p.localReader.id),l=Ye("#"+this.p.idPrefix+Ye.jgrid.jqID(n),this.grid.bDiv)[0],s=this.p._index[n],!1!==(d=(d=void 0===(d=Ye(this).triggerHandler("jqGridBeforeExpandTreeGridNode",[n,p]))?!0:d)&&Ye.jgrid.isFunction(this.p.beforeExpandTreeGridNode)?this.p.beforeExpandTreeGridNode.call(this,n,p):d)&&(Ye(this).jqGrid("isNodeLoaded",this.p.data[s])?(p[e]=!0,Ye("div.treeclick",l).removeClass(this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.minus+" tree-minus")):this.grid.hDiv.loading||(p[e]=!0,Ye("div.treeclick",l).removeClass(this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.minus+" tree-minus"),this.p.treeANode=l.rowIndex,this.p.datatype=this.p.treedatatype,"nested"===this.p.treeGridModel?Ye(this).jqGrid("setGridParam",{postData:{nodeid:n,n_left:p[o],n_right:p[a],n_level:p[i]}}):Ye(this).jqGrid("setGridParam",{postData:{nodeid:n,parentid:p[t],n_level:p[i]}}),Ye(this).trigger("reloadGrid"),p[r]=!0,"nested"===this.p.treeGridModel?Ye(this).jqGrid("setGridParam",{postData:{nodeid:"",n_left:"",n_right:"",n_level:""}}):Ye(this).jqGrid("setGridParam",{postData:{nodeid:"",parentid:"",n_level:""}})),Ye(this).triggerHandler("jqGridAfterExpandTreeGridNode",[n,p]),Ye.jgrid.isFunction(this.p.afterExpandTreeGridNode))&&this.p.afterExpandTreeGridNode.call(this,n,p)))})},collapseNode:function(o){return this.each(function(){var e,t,r,i;this.grid&&this.p.treeGrid&&(e=this.p.treeReader.expanded_field,o[e])&&(t=Ye.jgrid.getAccessor(o,this.p.localReader.id),r=Ye("#"+this.p.idPrefix+Ye.jgrid.jqID(t),this.grid.bDiv)[0],(i=void 0===(i=Ye(this).triggerHandler("jqGridBeforeCollapseTreeGridNode",[t,o]))?!0:i)&&Ye.jgrid.isFunction(this.p.beforeCollapseTreeGridNode)&&(i=this.p.beforeCollapseTreeGridNode.call(this,t,o)),(o[e]=!1)!==i)&&(Ye("div.treeclick",r).removeClass(this.p.treeIcons.minus+" tree-minus").addClass(this.p.treeIcons.plus+" tree-plus"),Ye(this).triggerHandler("jqGridAfterCollapseTreeGridNode",[t,o]),Ye.jgrid.isFunction(this.p.afterCollapseTreeGridNode))&&this.p.afterCollapseTreeGridNode.call(this,t,o)})},SortTree:function(p,c,u,h){return this.each(function(){if(this.grid&&this.p.treeGrid){var e,t,r,i,o,a=[],n=this,l=Ye(this).jqGrid("getRootNodes",n.p.search),l=Ye.jgrid.from.call(this,l);for(Boolean(n.p.sortTreeByNodeType)&&(o=n.p.sortTreeNodeOrder&&"desc"===n.p.sortTreeNodeOrder.toLowerCase()?"d":"a",l.orderBy(n.p.treeReader.leaf_field,o,u,h)),l.orderBy(p,c,u,h),e=0,t=(i=l.select()).length;e<t;e++)r=i[e],a.push(r),Ye(this).jqGrid("collectChildrenSortTree",a,r,p,c,u,h);var s=Ye(this).jqGrid("getDataIDs"),d=1;Ye.each(a,function(e){var t=Ye.jgrid.getAccessor(this,n.p.localReader.id);-1!==Ye.inArray(t,s)&&(Ye("#"+Ye.jgrid.jqID(n.p.id)+" tbody tr").eq(d).after(Ye("#"+Ye.jgrid.jqID(n.p.id)+" tbody tr#"+Ye.jgrid.jqID(t))),d++)}),i=l=null}})},searchTree:function(r){var i,o,a,n,l,s,d,p=r.length||0,c=[],u=[],h=[];return this.each(function(){if(this.grid&&this.p.treeGrid&&p)for(i=this.p.localReader.id,d=0;d<p;d++){var e;if(c=Ye(this).jqGrid("getNodeAncestors",r[d],!0,!0),Boolean(this.p.FullTreeSearchResult)?(e=Ye(this).jqGrid("getFullTreeNode",r[d],!0),c=c.concat(e)):c.push(r[d]),o=c[0][i],-1!==Ye.inArray(o,u))for(l=0,a=c.length;l<a;l++){var t=!1;for(s=0,n=h.length;s<n;s++)if(c[l][i]===h[s][i]){t=!0;break}t||h.push(c[l])}else u.push(o),h=h.concat(c)}}),h},collectChildrenSortTree:function(a,n,l,s,d,p){return this.each(function(){if(this.grid&&this.p.treeGrid){var e,t,r,i,o=Ye(this).jqGrid("getNodeChildren",n,this.p.search),o=Ye.jgrid.from.call(this,o);for(o.orderBy(l,s,d,p),e=0,t=(i=o.select()).length;e<t;e++)r=i[e],a.push(r),Ye(this).jqGrid("collectChildrenSortTree",a,r,l,s,d,p)}})},setTreeRow:function(e,t){var r=!1;return this.each(function(){this.grid&&this.p.treeGrid&&(r=Ye(this).jqGrid("setRowData",e,t))}),r},delTreeNode:function(h,g){return this.each(function(){var e,t,r,i,o=this,a=o.p.localReader.id,n=o.p.treeReader.left_field,l=o.p.treeReader.right_field;if(o.grid&&o.p.treeGrid){h=Ye.jgrid.stripPref(o.p.idPrefix,h);var s=o.p._index[h];if(g&&(t=Ye(this).jqGrid("getNodeParent",o.p.data[s])),void 0!==s){var d,p,c=(d=parseInt(o.p.data[s][l],10))-parseInt(o.p.data[s][n],10)+1,u=Ye(o).jqGrid("getFullTreeNode",o.p.data[s]);if(0<u.length)for(e=0;e<u.length;e++)Ye(o).jqGrid("delRowData",o.p.idPrefix+u[e][a]);if("nested"===o.p.treeGridModel){if((r=Ye.jgrid.from.call(o,o.p.data).greater(n,d,{stype:"integer"}).select()).length)for(i in r)r.hasOwnProperty(i)&&(r[i][n]=parseInt(r[i][n],10)-c);if((r=Ye.jgrid.from.call(o,o.p.data).greater(l,d,{stype:"integer"}).select()).length)for(i in r)r.hasOwnProperty(i)&&(r[i][l]=parseInt(r[i][l],10)-c)}g&&(d=this.p.treeReader.leaf_field,p=Ye(this).jqGrid("getNodeChildren",t),t[d]&&p.length?Ye(this).jqGrid("setLeaf",t,!1):s[d]||0!==p.length||Ye(this).jqGrid("setLeaf",t,!0))}}})},delChildren:function(c){return this.each(function(){var e,t,r=this,i=r.p.localReader.id,o=r.p.treeReader.left_field,a=r.p.treeReader.right_field;if(r.grid&&r.p.treeGrid){c=Ye.jgrid.stripPref(r.p.idPrefix,c);var n=r.p._index[c];if(void 0!==n){var l,s=(l=parseInt(r.p.data[n][a],10))-parseInt(r.p.data[n][o],10)+1,d=Ye(r).jqGrid("getFullTreeNode",r.p.data[n]);if(0<d.length)for(var p=0;p<d.length;p++)d[p][i]!==c&&Ye(r).jqGrid("delRowData",r.p.idPrefix+d[p][i]);if("nested"===r.p.treeGridModel){if((e=Ye.jgrid.from(r.p.data).greater(o,l,{stype:"integer"}).select()).length)for(t in e)e.hasOwnProperty(t)&&(e[t][o]=parseInt(e[t][o],10)-s);if((e=Ye.jgrid.from(r.p.data).greater(a,l,{stype:"integer"}).select()).length)for(t in e)e.hasOwnProperty(t)&&(e[t][a]=parseInt(e[t][a],10)-s)}}}})},addChildNode:function(e,t,r,i){var o=this[0];if(r){var a,n=o.p.treeReader.expanded_field,l=o.p.treeReader.leaf_field,s=o.p.treeReader.level_field,d=o.p.treeReader.parent_id_field,p=o.p.treeReader.left_field,c=o.p.treeReader.right_field,u=o.p.treeReader.loaded,h=0,g=t;if(void 0===i&&(i=!1),null==e){if(0<=(q=o.p.data.length-1))for(;0<=q;)h=Math.max(h,parseInt(o.p.data[q][o.p.localReader.id],10)),q--;e=h+1}var f,m,v=Ye(o).jqGrid("getInd",t),j=!1;if(null==t||""===t)g=t=null,y="last",x=o.p.tree_root_level,q=o.p.data.length+1;else{var b,y="after",w=Ye.jgrid.stripPref(o.p.idPrefix,t),w=o.p._index[w],x=(t=(b=o.p.data[w])[o.p.localReader.id],parseInt(b[s],10)+1),_=Ye(o).jqGrid("getFullTreeNode",b),q=_.length?(g=q=_[_.length-1][o.p.localReader.id],Ye(o).jqGrid("getInd",o.p.idPrefix+g)):Ye(o).jqGrid("getInd",o.p.idPrefix+t);if(b[l]&&(b[n]=j=!0,Ye(o.rows[v]).find("span.cell-wrapperleaf").removeClass("cell-wrapperleaf").addClass("cell-wrapper").end().find("div.tree-leaf").removeClass(o.p.treeIcons.leaf+" tree-leaf").addClass(o.p.treeIcons.minus+" tree-minus"),o.p.data[w][l]=!1,b[u]=!0),!1===q)throw"Parent item with id: "+g+" ("+t+") can't be found";q++}if(_=q+1,void 0===r[n]&&(r[n]=!1),void 0===r[u]&&(r[u]=!1),r[s]=x,void 0===r[l]&&(r[l]=!0),"adjacency"===o.p.treeGridModel&&(r[d]=t),"nested"===o.p.treeGridModel)if(null!==t){if(a=parseInt(b[c],10),(f=Ye.jgrid.from.call(o,o.p.data).greaterOrEquals(c,a,{stype:"integer"}).select()).length)for(m in f)f.hasOwnProperty(m)&&(f[m][p]=f[m][p]>a?parseInt(f[m][p],10)+2:f[m][p],f[m][c]=f[m][c]>=a?parseInt(f[m][c],10)+2:f[m][c]);r[p]=a,r[c]=a+1}else{if(a=parseInt(Ye(o).jqGrid("getCol",c,!1,"max"),10),(f=Ye.jgrid.from.call(o,o.p.data).greater(p,a,{stype:"integer"}).select()).length)for(m in f)f.hasOwnProperty(m)&&(f[m][p]=parseInt(f[m][p],10)+2);if((f=Ye.jgrid.from.call(o,o.p.data).greater(c,a,{stype:"integer"}).select()).length)for(m in f)f.hasOwnProperty(m)&&(f[m][c]=parseInt(f[m][c],10)+2);r[p]=a+1,r[c]=a+2}(null===t||Ye(o).jqGrid("isNodeLoaded",b)||j)&&(Ye(o).jqGrid("addRowData",e,r,y,o.p.idPrefix+g),Ye(o).jqGrid("setTreeNode",q,_)),b&&!b[n]&&i&&Ye(o.rows[v]).find("div.treeclick").click()}}}),Ye.fn.jqDrag=function(e){return r(this,e,"d")},Ye.fn.jqResize=function(e,t){return r(this,e,"r",t)},Ye.jqDnR={dnr:{},e:0,drag:function(e){return"d"==n.k?l.css({left:n.X+e.pageX-n.pX,top:n.Y+e.pageY-n.pY}):(l.css({width:Math.max(e.pageX-n.pX+n.W,0),height:Math.max(e.pageY-n.pY+n.H,0)}),a&&o.css({width:Math.max(e.pageX-a.pX+a.W,0),height:Math.max(e.pageY-a.pY+a.H,0)})),!1},stop:function(){Ye(document).off("mousemove",e.drag).off("mouseup",e.stop)}};var o,a,e=Ye.jqDnR,n=e.dnr,l=e.e,r=function(e,t,r,i){return e.each(function(){(t=t?Ye(t,e):e).on("mousedown",{e:e,k:r},function(e){var t=e.data,r={};if(l=t.e,o=!!i&&Ye(i),"relative"!=l.css("position"))try{l.position(r)}catch(e){}if(n={X:r.left||s("left")||0,Y:r.top||s("top")||0,W:s("width")||l[0].scrollWidth||0,H:s("height")||l[0].scrollHeight||0,pX:e.pageX,pY:e.pageY,k:t.k},a=!(!o||"d"==t.k)&&{X:r.left||d("left")||0,Y:r.top||d("top")||0,W:o[0].offsetWidth||d("width")||0,H:o[0].offsetHeight||d("height")||0,pX:e.pageX,pY:e.pageY,k:t.k},Ye("input.hasDatepicker",l[0])[0])try{Ye("input.hasDatepicker",l[0]).datepicker("hide")}catch(e){}return Ye(document).mousemove(Ye.jqDnR.drag).mouseup(Ye.jqDnR.stop),!1})})},s=function(e){return parseInt(l.css(e),10)||!1},d=function(e){return parseInt(o.css(e),10)||!1},p=(Ye.fn.tinyDraggable=function(e){var a=Ye.extend({handle:0,exclude:0},e);return this.each(function(){var r,i,o=Ye(this);(a.handle?Ye(a.handle,o):o).on({mousedown:function(e){var t;a.exclude&&~Ye.inArray(e.target,Ye(a.exclude,o))||(e.preventDefault(),t=o.offset(),r=e.pageX-t.left,i=e.pageY-t.top,Ye(document).on("mousemove.drag",function(e){o.offset({top:e.pageY-i,left:e.pageX-r})}))},mouseup:function(e){Ye(document).off("mousemove.drag")}})})},Ye.fn.jqm=function(e){var t={overlay:50,closeoverlay:!0,overlayClass:"jqmOverlay",closeClass:"jqmClose",trigger:".jqModal",ajax:h,ajaxText:"",target:h,modal:h,toTop:h,onShow:h,onHide:h,onLoad:h};return this.each(function(){if(this._jqm)return c[this._jqm].c=Ye.extend({},c[this._jqm].c,e);p++,this._jqm=p,c[p]={c:Ye.extend(t,Ye.jqm.params,e),a:h,w:Ye(this).addClass("jqmID"+p),s:p},t.trigger&&Ye(this).jqmAddTrigger(t.trigger)})},Ye.fn.jqmAddClose=function(e){return m(this,e,"jqmHide")},Ye.fn.jqmAddTrigger=function(e){return m(this,e,"jqmShow")},Ye.fn.jqmShow=function(e){return this.each(function(){Ye.jqm.open(this._jqm,e)})},Ye.fn.jqmHide=function(e){return this.each(function(){Ye.jqm.close(this._jqm,e)})},Ye.jqm={hash:{},open:function(e,t){var r=c[e],i=r.c,o="."+i.closeClass,a=0<(a=parseInt(r.w.css("z-index")))?a:3e3,n=Ye("<div></div>").css({height:"100%",width:"100%",position:"fixed",left:0,top:0,"z-index":a-1,opacity:i.overlay/100});return r.a||(r.t=t,r.a=!0,r.w.css("z-index",a),i.modal?(u[0]||setTimeout(function(){new f("bind")},1),u.push(e)):0<i.overlay?i.closeoverlay&&r.w.jqmAddClose(n):n=h,r.o=n?n.addClass(i.overlayClass).prependTo("body"):h,i.ajax?(a=i.target||r.w,e=i.ajax,a="string"==typeof a?Ye(a,r.w):Ye(a),e="@"===e.substr(0,1)?Ye(t).attr(e.substring(1)):e,a.html(i.ajaxText).load(e,function(){i.onLoad&&i.onLoad.call(this,r),o&&r.w.jqmAddClose(Ye(o,r.w)),g(r)})):o&&r.w.jqmAddClose(Ye(o,r.w)),i.toTop&&r.o&&r.w.before('<span id="jqmP'+r.w[0]._jqm+'"></span>').insertAfter(r.o),i.onShow?i.onShow(r):r.w.show(),g(r)),h},close:function(e){e=c[e];return e.a&&(e.a=h,u[0]&&(u.pop(),u[0]||new f("unbind")),e.c.toTop&&e.o&&Ye("#jqmP"+e.w[0]._jqm).after(e.w).remove(),e.c.onHide?e.c.onHide(e):(e.w.hide(),e.o&&e.o.remove())),h},params:{}},0),c=Ye.jqm.hash,u=[],h=!1,g=function(e){void 0===e.c.focusField&&(e.c.focusField=0),0<=e.c.focusField&&s(e)},s=function(e){try{Ye(":input:visible",e.w)[parseInt(e.c.focusField,10)].focus()}catch(e){}},f=function(e){Ye(document)[e]("keypress",t)[e]("keydown",t)[e]("mousedown",t)},t=function(r){var e=c[u[u.length-1]],i=!Ye(r.target).parents(".jqmID"+e.s)[0];return i&&Ye(".jqmID"+e.s).each(function(){var e=Ye(this),t=e.offset();if(t.top<=r.pageY&&r.pageY<=t.top+e.height()&&t.left<=r.pageX&&r.pageX<=t.left+e.width())return i=!1}),!i},m=function(e,t,r){return e.each(function(){var e=this._jqm;Ye(t).each(function(){this[r]||(this[r]=[],Ye(this).click(function(){for(var e in{jqmShow:1,jqmHide:1})for(var t in this[e])c[this[e][t]]&&c[this[e][t]].w[e](this);return h})),this[r].push(e)})})};Ye.fmatter={},Ye.extend(Ye.fmatter,{isBoolean:function(e){return"boolean"==typeof e},isObject:function(e){return e&&("object"==typeof e||Ye.jgrid.isFunction(e))||!1},isString:function(e){return"string"==typeof e},isNumber:function(e){return"number"==typeof e&&isFinite(e)},isValue:function(e){return this.isObject(e)||this.isString(e)||this.isNumber(e)||this.isBoolean(e)},isEmpty:function(e){return!(!this.isString(e)&&this.isValue(e)||this.isValue(e)&&""!==Ye.jgrid.trim(e).replace(/\&nbsp\;/gi,"").replace(/\&#160\;/gi,""))}}),Ye.fn.fmatter=function(e,t,r,i,o){var a=t;r=Ye.extend({},Ye.jgrid.getRegional(this,"formatter"),r);try{a=Ye.fn.fmatter[e].call(this,t,r,i,o)}catch(e){}return a},Ye.fmatter.util={NumberFormat:function(e,t){if(Ye.fmatter.isNumber(e)||(e*=1),Ye.fmatter.isNumber(e)){var r=e<0,i=String(e),o=t.decimalSeparator||".";if(Ye.fmatter.isNumber(t.decimalPlaces)){var a=t.decimalPlaces,n=(i=String(Number(Math.round(e+"e"+a)+"e-"+a))).lastIndexOf(".");if(0<a)for(n<0?n=(i+=o).length-1:"."!==o&&(i=i.replace(".",o));i.length-1-n<a;)i+="0"}if(t.thousandsSeparator){for(var l=t.thousandsSeparator,s=(n=-1<(n=i.lastIndexOf(o))?n:i.length,i.substring(n)),d=-1,p=n;0<p;p--)++d%3==0&&p!==n&&(!r||1<p)&&(s=l+s),s=i.charAt(p-1)+s;i=s}return i=t.prefix?t.prefix+i:i,i=t.suffix?i+t.suffix:i}return e}},Ye.fn.fmatter.defaultFormat=function(e,t){return Ye.fmatter.isValue(e)&&""!==e?e:t.defaultValue||"&#160;"},Ye.fn.fmatter.email=function(e,t){return Ye.fmatter.isEmpty(e)?Ye.fn.fmatter.defaultFormat(e,t):'<a href="mailto:'+e+'">'+e+"</a>"},Ye.fn.fmatter.checkbox=function(e,t){var r=Ye.extend({},t.checkbox),i=Object.keys(Ye.jgrid.regional)[0],r=(t=!0===(r=void 0!==t.colModel&&void 0!==t.colModel.formatoptions?Ye.extend({},r,t.colModel.formatoptions):r).disabled?'disabled="disabled"':"",!Ye.fmatter.isEmpty(e)&&void 0!==e||(e=Ye.fn.fmatter.defaultFormat(e,r)),(e=((e=String(e))+"").toLowerCase()).search(/(false|f|0|no|n|off|undefined)/i)<0?" checked='checked' ":""),o=Ye.jgrid.regional[i].defaults.valueCheckbox,a=Ye.jgrid.regional[i].defaults.valT,i=Ye.jgrid.regional[i].defaults.valF,a=void 0!==o&&"true"===e?o+" "+a:void 0!==o&&"false"===e?o+" "+i:e;return'<input title="'+a+'" type="checkbox" '+r+' value="'+e+'" offval="no" '+t+"/>"},Ye.fn.fmatter.link=function(e,t){var r={target:t.target},i="";return(r=void 0!==t.colModel&&void 0!==t.colModel.formatoptions?Ye.extend({},r,t.colModel.formatoptions):r).target&&(i="target="+r.target),Ye.fmatter.isEmpty(e)?Ye.fn.fmatter.defaultFormat(e,t):"<a "+i+' href="'+e+'">'+e+"</a>"},Ye.fn.fmatter.showlink=function(e,t){var r={baseLinkUrl:t.baseLinkUrl,showAction:t.showAction,addParam:t.addParam||"",target:t.target,idName:t.idName},i="";return(r=void 0!==t.colModel&&void 0!==t.colModel.formatoptions?Ye.extend({},r,t.colModel.formatoptions):r).target&&(i="target="+r.target),r=r.baseLinkUrl+r.showAction+"?"+r.idName+"="+t.rowId+r.addParam,Ye.fmatter.isString(e)||Ye.fmatter.isNumber(e)?"<a "+i+' href="'+r+'">'+e+"</a>":Ye.fn.fmatter.defaultFormat(e,t)},Ye.fn.fmatter.integer=function(e,t){var r=Ye.extend({},t.integer);return void 0!==t.colModel&&void 0!==t.colModel.formatoptions&&(r=Ye.extend({},r,t.colModel.formatoptions)),Ye.fmatter.isEmpty(e)?r.defaultValue:Ye.fmatter.util.NumberFormat(e,r)},Ye.fn.fmatter.number=function(e,t){var r=Ye.extend({},t.number);return void 0!==t.colModel&&void 0!==t.colModel.formatoptions&&(r=Ye.extend({},r,t.colModel.formatoptions)),Ye.fmatter.isEmpty(e)?r.defaultValue:Ye.fmatter.util.NumberFormat(e,r)},Ye.fn.fmatter.currency=function(e,t){var r=Ye.extend({},t.currency);return void 0!==t.colModel&&void 0!==t.colModel.formatoptions&&(r=Ye.extend({},r,t.colModel.formatoptions)),Ye.fmatter.isEmpty(e)?r.defaultValue:Ye.fmatter.util.NumberFormat(e,r)},Ye.fn.fmatter.date=function(e,t,r,i){var o=Ye.extend({},t.date);return!(o=void 0!==t.colModel&&void 0!==t.colModel.formatoptions?Ye.extend({},o,t.colModel.formatoptions):o).reformatAfterEdit&&"edit"===i||Ye.fmatter.isEmpty(e)?Ye.fn.fmatter.defaultFormat(e,t):Ye.jgrid.parseDate.call(this,o.srcformat,e,o.newformat,o)},Ye.fn.fmatter.select=function(e,t){e=String(e);var r,i,o=!1,a=[];if(void 0!==t.colModel.formatoptions?(o=t.colModel.formatoptions.value,r=void 0===t.colModel.formatoptions.separator?":":t.colModel.formatoptions.separator,i=void 0===t.colModel.formatoptions.delimiter?";":t.colModel.formatoptions.delimiter):void 0!==t.colModel.editoptions&&(o=t.colModel.editoptions.value,r=void 0===t.colModel.editoptions.separator?":":t.colModel.editoptions.separator,i=void 0===t.colModel.editoptions.delimiter?";":t.colModel.editoptions.delimiter),o){var n,l=!0==(null!=t.colModel.editoptions&&!0===t.colModel.editoptions.multiple),s=[];if(l&&(s=e.split(","),s=Ye.map(s,function(e){return Ye.jgrid.trim(e)})),Ye.fmatter.isString(o)){for(var d=o.split(i),p=0,c=0;c<d.length;c++)if(2<(n=d[c].split(r)).length&&(n[1]=Ye.map(n,function(e,t){if(0<t)return e}).join(r)),l)-1<Ye.inArray(n[0],s)&&(a[p]=n[1],p++);else if(Ye.jgrid.trim(n[0])===Ye.jgrid.trim(e)){a[0]=n[1];break}}else Ye.fmatter.isObject(o)&&(l?a=Ye.map(s,function(e){return o[e]}):a[0]=o[e]||"")}return""===(e=a.join(", "))?Ye.fn.fmatter.defaultFormat(e,t):e},Ye.fn.fmatter.rowactions=function(e){function t(e){Ye.jgrid.isFunction(d.afterRestore)&&d.afterRestore.call(n,e),s.find("div.ui-inline-edit,div.ui-inline-del").show(),s.find("div.ui-inline-save,div.ui-inline-cancel").hide()}var r=Ye(this).closest("tr.jqgrow"),i=r.attr("id"),o=Ye(this).closest("table.ui-jqgrid-btable").attr("id").replace(/_frozen([^_]*)$/,"$1"),a=Ye("#"+o),n=a[0],o=n.p,l=o.colModel[Ye.jgrid.getCellIndex(this)],s=l.frozen?Ye("tr#"+i+" td",a).eq(Ye.jgrid.getCellIndex(this)).find("> div"):Ye(this).parent(),d={extraparam:{}},p=(void 0!==l.formatoptions&&(l=Ye.extend(!0,{},l.formatoptions),d=Ye.extend(d,l)),void 0!==o.editOptions&&(d.editOptions=o.editOptions),void 0!==o.delOptions&&(d.delOptions=o.delOptions),r.hasClass("jqgrid-new-row")&&(d.extraparam[o.prmNames.oper]=o.prmNames.addoper),{keys:d.keys,oneditfunc:d.onEdit,successfunc:d.onSuccess,url:d.url,extraparam:d.extraparam,aftersavefunc:function(e,t){Ye.jgrid.isFunction(d.afterSave)&&d.afterSave.call(n,e,t),s.find("div.ui-inline-edit,div.ui-inline-del").show(),s.find("div.ui-inline-save,div.ui-inline-cancel").hide()},errorfunc:d.onError,afterrestorefunc:t,restoreAfterError:d.restoreAfterError,mtype:d.mtype});switch(e){case"edit":a.jqGrid("editRow",i,p),a[0].p.beforeAction&&(s.find("div.ui-inline-edit,div.ui-inline-del").hide(),s.find("div.ui-inline-save,div.ui-inline-cancel").show(),a.triggerHandler("jqGridAfterGridComplete"));break;case"save":a.jqGrid("saveRow",i,p)&&(s.find("div.ui-inline-edit,div.ui-inline-del").show(),s.find("div.ui-inline-save,div.ui-inline-cancel").hide(),a.triggerHandler("jqGridAfterGridComplete"));break;case"cancel":a.jqGrid("restoreRow",i,t),s.find("div.ui-inline-edit,div.ui-inline-del").show(),s.find("div.ui-inline-save,div.ui-inline-cancel").hide(),a.triggerHandler("jqGridAfterGridComplete");break;case"del":a.jqGrid("delGridRow",i,d.delOptions);break;case"formedit":a.jqGrid("setSelection",i),a.jqGrid("editGridRow",i,d.editOptions)}},Ye.fn.fmatter.actions=function(e,t){var r={keys:!1,editbutton:!0,delbutton:!0,editformbutton:!1},i=t.rowId,o="",a=Ye.jgrid.getRegional(this,"nav"),n=Ye.jgrid.styleUI[t.styleUI||"jQueryUI"].fmatter,l=Ye.jgrid.styleUI[t.styleUI||"jQueryUI"].common;return void 0!==t.colModel.formatoptions&&(r=Ye.extend(r,t.colModel.formatoptions)),void 0===i||Ye.fmatter.isEmpty(i)?"":(t="onmouseover=jQuery(this).addClass('"+l.hover+"'); onmouseout=jQuery(this).removeClass('"+l.hover+"');  ",r.editformbutton?o+="<div title='"+a.edittitle+"' style='float:left;cursor:pointer;' class='ui-pg-div ui-inline-edit' "+("id='jEditButton_"+i+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'formedit'); "+t)+"><span class='"+l.icon_base+" "+n.icon_edit+"'></span></div>":r.editbutton&&(o+="<div title='"+a.edittitle+"' style='float:left;cursor:pointer;' class='ui-pg-div ui-inline-edit' "+("id='jEditButton_"+i+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'edit'); "+t)+"><span class='"+l.icon_base+" "+n.icon_edit+"'></span></div>"),r.delbutton&&(o+="<div title='"+a.deltitle+"' style='float:left;' class='ui-pg-div ui-inline-del' "+("id='jDeleteButton_"+i+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'del'); "+t)+"><span class='"+l.icon_base+" "+n.icon_del+"'></span></div>"),"<div  class='jqgrid_actions' style='margin-left:8px;'>"+(o=(o+="<div title='"+a.savetitle+"' style='float:left;display:none' class='ui-pg-div ui-inline-save' "+("id='jSaveButton_"+i+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'save'); "+t)+"><span class='"+l.icon_base+" "+n.icon_save+"'></span></div>")+("<div title='"+a.canceltitle+"' style='float:left;display:none;' class='ui-pg-div ui-inline-cancel' "+("id='jCancelButton_"+i+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'cancel'); "+t)+"><span class='"+l.icon_base+" "+n.icon_cancel+"'></span></div>"))+"</div>")},Ye.unformat=function(e,t,r,i){var o=t.colModel.formatter,a=t.colModel.formatoptions||{},n=/([\.\*\_\'\(\)\{\}\+\?\\])/g,l=t.colModel.unformat||Ye.fn.fmatter[o]&&Ye.fn.fmatter[o].unformat;if(void 0!==l&&Ye.jgrid.isFunction(l))c=l.call(this,Ye(e).text(),t,e);else if(void 0!==o&&Ye.fmatter.isString(o)){var s,d=Ye.jgrid.getRegional(this,"formatter")||{};switch(o){case"integer":p=(a=Ye.extend({},d.integer,a)).thousandsSeparator.replace(n,"\\$1"),s=new RegExp(p,"g"),c=Ye(e).text().replace(s,"");break;case"number":p=(a=Ye.extend({},d.number,a)).thousandsSeparator.replace(n,"\\$1"),s=new RegExp(p,"g"),c=Ye(e).text().replace(s,"").replace(a.decimalSeparator,".");break;case"currency":p=(a=Ye.extend({},d.currency,a)).thousandsSeparator.replace(n,"\\$1"),s=new RegExp(p,"g"),c=Ye(e).text(),a.prefix&&a.prefix.length&&(c=c.slice(a.prefix.length)),c=(c=a.suffix&&a.suffix.length?c.slice(0,c.length-a.suffix.length):c).replace(s,"").replace(a.decimalSeparator,".");break;case"checkbox":var p=t.colModel.editoptions?t.colModel.editoptions.value.split(":"):["Yes","No"],c=Ye("input",e).is(":checked")?p[0]:p[1];break;case"select":c=Ye.unformat.select(e,t,r,i);break;case"actions":return"";default:c=Ye(e).text()}}return void 0!==c?c:!0===i?Ye(e).text():Ye.jgrid.htmlDecode(Ye(e).html())},Ye.unformat.select=function(e,t,r,i){var o=[],a=Ye(e).text();if(!0===i)return a;var n=Ye.extend({},void 0!==t.colModel.formatoptions?t.colModel.formatoptions:t.colModel.editoptions),l=void 0===n.separator?":":n.separator,e=void 0===n.delimiter?";":n.delimiter;if(n.value){var s,d=n.value,p=!0===n.multiple,c=[];if(p&&(c=a.split(","),c=Ye.map(c,function(e){return Ye.jgrid.trim(e)})),Ye.fmatter.isString(d)){for(var u=d.split(e),h=0,g=0;g<u.length;g++)if(2<(s=u[g].split(l)).length&&(s[1]=Ye.map(s,function(e,t){if(0<t)return e}).join(l)),n.decodeValue&&!0===n.decodeValue&&(s[1]=Ye.jgrid.htmlDecode(s[1])),p)-1<Ye.inArray(Ye.jgrid.trim(s[1]),c)&&(o[h]=s[0],h++);else if(Ye.jgrid.trim(s[1])===Ye.jgrid.trim(a)){o[0]=s[0];break}}else(Ye.fmatter.isObject(d)||Array.isArray(d))&&(p||(c[0]=a),o=Ye.map(c,function(r){var i;if(Ye.each(d,function(e,t){if(t===r)return i=e,!1}),void 0!==i)return i}));return o.join(", ")}return a||""},Ye.unformat.date=function(e,t){var r=Ye.jgrid.getRegional(this,"formatter.date")||{};return void 0!==t.formatoptions&&(r=Ye.extend({},r,t.formatoptions)),Ye.fmatter.isEmpty(e)?Ye.fn.fmatter.defaultFormat(e,t):Ye.jgrid.parseDate.call(this,r.newformat,e,r.srcformat,r)};var v,j=Ye();Ye.fn.html5sortable=function(a){var e=String(a);return a=Ye.extend({connectWith:!1},a),this.each(function(){var t,r,i,o;/^enable|disable|destroy$/.test(e)?(i=Ye(this).children(Ye(this).data("items")).attr("draggable","enable"===e),"destroy"===e&&i.add(this).removeData("connectWith items").off("dragstart.h5s dragend.h5s selectstart.h5s dragover.h5s dragenter.h5s drop.h5s")):(i=Ye(this).children(a.items),o=Ye("<"+(/^ul|ol$/i.test(this.tagName)?"li":/^tbody$/i.test(this.tagName)?"tr":"div")+' class="sortable-placeholder '+a.placeholderClass+'">').html("&nbsp;"),i.find(a.handle).mousedown(function(){t=!0}).mouseup(function(){t=!1}),Ye(this).data("items",a.items),j=j.add(o),a.connectWith&&Ye(a.connectWith).add(this).data("connectWith",a.connectWith),i.attr("draggable","true").on("dragstart.h5s",function(e){if(a.handle&&!t)return!1;t=!1;e=e.originalEvent.dataTransfer;e.effectAllowed="move",e.setData("Text","dummy"),r=(v=Ye(this)).addClass("sortable-dragging").index()}).on("dragend.h5s",function(){v&&(v.removeClass("sortable-dragging").show(),j.detach(),r!==v.index()&&v.parent().trigger("sortupdate",{item:v,startindex:r,endindex:v.index()}),v=null)}).not("a[href], img").on("selectstart.h5s",function(){return this.dragDrop&&this.dragDrop(),!1}).end().add([this,o]).on("dragover.h5s dragenter.h5s drop.h5s",function(e){return!i.is(v)&&a.connectWith!==Ye(v).parent().data("connectWith")||("drop"===e.type?(e.stopPropagation(),j.filter(":visible").after(v),v.trigger("dragend.h5s")):(e.preventDefault(),e.originalEvent.dataTransfer.dropEffect="move",i.is(this)?(a.forcePlaceholderSize&&o.height(v.outerHeight()),v.hide(),Ye(this)[o.index()<Ye(this).index()?"after":"before"](o),j.not(o).detach()):j.is(this)||Ye(this).children(a.items).length||(j.detach(),Ye(this).append(o))),!1)}))})},Ye.extend(Ye.jgrid,{isJSON:function(e){"string"!=typeof e&&(e=JSON.stringify(e));try{return JSON.parse(e),!0}catch(e){return!1}},stringify:function(e){return JSON.stringify(e,function(e,t){return"function"==typeof t?t.toString():t})},parseFunc:function(e){return JSON.parse(e,function(e,t){var r;return"string"==typeof t&&-1!==t.indexOf("function")&&((r=t.split(" "))[0]=Ye.jgrid.trim(r[0].toLowerCase()),0===r[0].indexOf("function"))&&"}"===t.trim().slice(-1)?Ye.jgrid.runCode(t):t})},encode:function(e){return String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")},jsonToXML:function(e,t){var s=Ye.extend({xmlDecl:'<?xml version="1.0" encoding="UTF-8" ?>\n',attr_prefix:"-",encode:!0},t||{}),d=this,p=function(e,t){return"#text"===e?s.encode?d.encode(t):t:"function"==typeof t?"<"+e+"><![CDATA["+t+"]]></"+e+">\n":""===t?"<"+e+">__EMPTY_STRING_</"+e+">\n":"<"+e+">"+(s.encode?d.encode(t):t)+"</"+e+">\n"},c=function(e,t){for(var r=[],i=0;i<t.length;i++){var o=t[i];void 0===o||null==o?r[r.length]="<"+e+" />":"object"==typeof o&&o.constructor==Array?r[r.length]=c(e,o):r[r.length]=("object"==typeof o?u:p)(e,o)}return r.length||(r[0]="<"+e+">__EMPTY_ARRAY_</"+e+">\n"),r.join("")},u=function(e,t){var r,i,o=[],a=[];for(r in t)t.hasOwnProperty(r)&&(i=t[r],r.charAt(0)!==s.attr_prefix?null==i?o[o.length]="<"+r+" />":"object"==typeof i&&i.constructor===Array?o[o.length]=c(r,i):o[o.length]=("object"==typeof i?u:p)(r,i):a[a.length]=" "+r.substring(1)+'="'+(s.encode?d.encode(i):i)+'"');var n=a.join(""),l=o.join("");return l=null!=e?0<o.length?l.match(/\n/)?"<"+e+n+">\n"+l+"</"+e+">\n":"<"+e+n+">"+l+"</"+e+">\n":"<"+e+n+" />\n":l},t=u(null,e);return s.xmlDecl+t},xmlToJSON:function(e,t){var s=Ye.extend({force_array:[],attr_prefix:"-"},t||{});if(e){var o={};if(s.force_array)for(var r=0;r<s.force_array.length;r++)o[s.force_array[r]]=1;(e="string"==typeof e?Ye.parseXML(e):e).documentElement&&(e=e.documentElement);var i,d=function(e,t,r,i){if("string"==typeof i)if(-1!==i.indexOf("function"))i=Ye.jgrid.runCode(i);else switch(i){case"__EMPTY_ARRAY_":i=[];break;case"__EMPTY_STRING_":i="";break;case"false":i=!1;break;case"true":i=!0}o[t]?(1===r&&(e[t]=[]),e[t][e[t].length]=i):1===r?e[t]=i:2===r?e[t]=[e[t],i]:e[t][e[t].length]=i},p=function(e){if(7!==e.nodeType){if(3===e.nodeType||4===e.nodeType)return null==e.nodeValue.match(/[^\x00-\x20]/)?void 0:e.nodeValue;var t,r,i,o={};if(e.attributes&&e.attributes.length)for(t={},n=0;n<e.attributes.length;n++)"string"==typeof(r=e.attributes[n].nodeName)&&(i=e.attributes[n].nodeValue)&&(void 0===o[r=s.attr_prefix+r]&&(o[r]=0),o[r]++,d(t,r,o[r],i));if(e.childNodes&&e.childNodes.length){for(var a=t?!1:!0,n=0;n<e.childNodes.length&&a;n++){var l=e.childNodes[n].nodeType;3!==l&&4!==l&&(a=!1)}if(a)for(t=t||"",n=0;n<e.childNodes.length;n++)t+=e.childNodes[n].nodeValue;else for(t=t||{},n=0;n<e.childNodes.length;n++)"string"==typeof(r=e.childNodes[n].nodeName)&&(i=p(e.childNodes[n]))&&(void 0===o[r]&&(o[r]=0),o[r]++,d(t,r,o[r],i))}return t}},t=p(e);return o[e.nodeName]&&(t=[t]),11!==e.nodeType&&((i={})[e.nodeName]=t,t=i),t}},saveAs:function(e,t,r){r=Ye.extend(!0,{type:"plain/text;charset=utf-8"},r||{});var i,o,a,n=[];t=null==t||""===t?"jqGridFile.txt":t,Array.isArray(e)?n=e:n[0]=e;try{i=new File(n,t,r)}catch(e){i=new Blob(n,r)}window.navigator&&window.navigator.msSaveOrOpenBlob?window.navigator.msSaveOrOpenBlob(i,t):(o=URL.createObjectURL(i),(a=document.createElement("a")).href=o,a.download=t,document.body.appendChild(a),a.click(),setTimeout(function(){document.body.removeChild(a),window.URL.revokeObjectURL(o)},0))},csvToArray:function(e,t){void 0===t&&(t=",");for(var r,i,o=[],a=[],n={},l=0,s=0,d=new RegExp("(\\"+t+'|\\r?\\n|\\r|^)(?:"([^"]*(?:""[^"]*)*)"|([^"\\'+t+"\\r\\n]*))","gi");r=d.exec(e);){var p=r[1];p.length&&p!==t&&(s++,n={},l=0),p=r[2]?r[2].replace(new RegExp('""',"g"),'"'):r[3],0===s?(o.push(p),i=o.length):(n[o[l]]=p,l===i-1?a.push(n):l++)}return a}}),Ye.jgrid=Ye.jgrid||{},Ye.extend(Ye.jgrid,{formatCell:function(e,t,r,i,o,a){return void 0!==i.formatter?(t={rowId:"",colModel:i,gid:o.p.id,pos:t,styleUI:"",isExported:!0,exporttype:a},Ye.jgrid.isFunction(i.formatter)?i.formatter.call(o,e,t,r):Ye.fmatter?Ye.fn.fmatter.call(o,i.formatter,e,t,r):e):e},formatCellCsv:function(t,e){t=null==t?"":String(t);try{t=Ye.jgrid.stripHtml(t.replace(e._regexsep,e.separatorReplace).replace(/\r\n/g,e.replaceNewLine).replace(/\n/g,e.replaceNewLine))}catch(e){t=""}return t=-1!==(t=e.escquote?t.replace(e._regexquot,e.escquote+e.quote):t).indexOf(e.separator)&&-1!==t.indexOf(e.qoute)?t:e.quote+t+e.quote},excelCellPos:function(e){for(var t="A".charCodeAt(0),r="Z".charCodeAt(0)-t+1,i="";0<=e;)i=String.fromCharCode(e%r+t)+i,e=Math.floor(e/r)-1;return i},makeNode:function(e,t,r){var i=e.createElement(t);return r&&(r.attr&&Ye(i).attr(r.attr),r.children&&Ye.each(r.children,function(e,t){i.appendChild(t)}),r.hasOwnProperty("text"))&&i.appendChild(e.createTextNode(r.text)),i},xmlToZip:function(o,e){var a,n,l,s,d,p=this,c=new XMLSerializer,u=-1===c.serializeToString(Ye.parseXML(Ye.jgrid.excelStrings["xl/worksheets/sheet1.xml"])).indexOf("xmlns:r"),h=[];Ye.each(e,function(e,t){if(Ye.isPlainObject(t))d=o.folder(e),p.xmlToZip(d,t);else{if(u){for(a=t.childNodes[0],n=a.attributes.length-1;0<=n;n--){var r=a.attributes[n].nodeName,i=a.attributes[n].nodeValue;-1!==r.indexOf(":")&&(h.push({name:r,value:i}),a.removeAttribute(r))}for(n=0,l=h.length;n<l;n++)(s=t.createAttribute(h[n].name.replace(":","_dt_b_namespace_token_"))).value=h[n].value,a.setAttributeNode(s)}d=c.serializeToString(t),d=(d=u?(d=-1===d.indexOf("<?xml")?'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+d:d).replace(/_dt_b_namespace_token_/g,":"):d).replace(/<row xmlns="" /g,"<row ").replace(/<cols xmlns="">/g,"<cols>").replace(/<mergeCells xmlns="" /g,"<mergeCells ").replace(/<numFmt xmlns="" /g,"<numFmt ").replace(/<xf xmlns="" /g,"<xf "),o.file(e,d)}})},excelStrings:{"_rels/.rels":'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/></Relationships>',"xl/_rels/workbook.xml.rels":'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet1.xml"/><Relationship Id="rId2" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/></Relationships>',"[Content_Types].xml":'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="xml" ContentType="application/xml" /><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml" /><Default Extension="jpeg" ContentType="image/jpeg" /><Override PartName="/xl/workbook.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml" /><Override PartName="/xl/worksheets/sheet1.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml" /><Override PartName="/xl/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml" /></Types>',"xl/workbook.xml":'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"><fileVersion appName="xl" lastEdited="5" lowestEdited="5" rupBuild="24816"/><workbookPr showInkAnnotation="0" autoCompressPictures="0"/><bookViews><workbookView xWindow="0" yWindow="0" windowWidth="25600" windowHeight="19020" tabRatio="500"/></bookViews><sheets><sheet name="Sheet1" sheetId="1" r:id="rId1"/></sheets></workbook>',"xl/worksheets/sheet1.xml":'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac"><sheetData/></worksheet>',"xl/styles.xml":'<?xml version="1.0" encoding="UTF-8"?><styleSheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac"><numFmts count="7"><numFmt numFmtId="164" formatCode="#,##0.00_- [$$-45C]"/><numFmt numFmtId="165" formatCode="&quot;£&quot;#,##0.00"/><numFmt numFmtId="166" formatCode="[$€-2] #,##0.00"/><numFmt numFmtId="167" formatCode="0.0%"/><numFmt numFmtId="168" formatCode="#,##0;(#,##0)"/><numFmt numFmtId="169" formatCode="#,##0.00;(#,##0.00)"/><numFmt numFmtId="170" formatCode="yyyy/mm/dd;@"/></numFmts><fonts count="5" x14ac:knownFonts="1"><font><sz val="11" /><name val="Calibri" /></font><font><sz val="11" /><name val="Calibri" /><color rgb="FFFFFFFF" /></font><font><sz val="11" /><name val="Calibri" /><b /></font><font><sz val="11" /><name val="Calibri" /><i /></font><font><sz val="11" /><name val="Calibri" /><u /></font></fonts><fills count="6"><fill><patternFill patternType="none" /></fill><fill/><fill><patternFill patternType="solid"><fgColor rgb="FFD9D9D9" /><bgColor indexed="64" /></patternFill></fill><fill><patternFill patternType="solid"><fgColor rgb="FFD99795" /><bgColor indexed="64" /></patternFill></fill><fill><patternFill patternType="solid"><fgColor rgb="ffc6efce" /><bgColor indexed="64" /></patternFill></fill><fill><patternFill patternType="solid"><fgColor rgb="ffc6cfef" /><bgColor indexed="64" /></patternFill></fill></fills><borders count="2"><border><left /><right /><top /><bottom /><diagonal /></border><border diagonalUp="false" diagonalDown="false"><left style="thin"><color auto="1" /></left><right style="thin"><color auto="1" /></right><top style="thin"><color auto="1" /></top><bottom style="thin"><color auto="1" /></bottom><diagonal /></border></borders><cellStyleXfs count="1"><xf numFmtId="0" fontId="0" fillId="0" borderId="0" /></cellStyleXfs><cellXfs count="69"><xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="1" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="2" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="3" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="4" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="0" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="1" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="2" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="3" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="4" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="0" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="1" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="2" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="3" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="4" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="0" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="1" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="2" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="3" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="4" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="0" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="1" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="2" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="3" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="4" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="0" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="1" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="2" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="3" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="4" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="0" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="1" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="2" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="3" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="4" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="0" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="1" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="2" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="3" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="4" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="0" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="1" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="2" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="3" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="4" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="0" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="1" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="2" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="3" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="4" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1"><alignment horizontal="left"/></xf><xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1"><alignment horizontal="center"/></xf><xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1"><alignment horizontal="right"/></xf><xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1"><alignment horizontal="fill"/></xf><xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1"><alignment textRotation="90"/></xf><xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1"><alignment wrapText="1"/></xf><xf numFmtId="9"   fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="164" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="165" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="166" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="167" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="168" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="169" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="3" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="4" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="1" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="2" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="170" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="49" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/></cellXfs><cellStyles count="1"><cellStyle name="Normal" xfId="0" builtinId="0" /></cellStyles><dxfs count="0" /><tableStyles count="0" defaultTableStyle="TableStyleMedium9" defaultPivotStyle="PivotStyleMedium4" /></styleSheet>'},excelParsers:[{match:/^\-?\d+\.\d%$/,style:60,fmt:function(e){return e/100}},{match:/^\-?\d+\.?\d*%$/,style:56,fmt:function(e){return e/100}},{match:/^\-?\$[\d,]+.?\d*$/,style:57},{match:/^\-?£[\d,]+.?\d*$/,style:58},{match:/^\-?€[\d,]+.?\d*$/,style:59},{match:/^\-?\d+$/,style:65},{match:/^\-?\d+\.\d{2}$/,style:66},{match:/^\([\d,]+\)$/,style:61,fmt:function(e){return-1*e.replace(/[\(\)]/g,"")}},{match:/^\([\d,]+\.\d{2}\)$/,style:62,fmt:function(e){return-1*e.replace(/[\(\)]/g,"")}},{match:/^\-?[\d,]+$/,style:63},{match:/^\-?[\d,]+\.\d{2}$/,style:64},{match:/^\d{4}\-\d{2}\-\d{2}$/,style:67},{match:/(https?:\/\/(?:www\.|(?!www))[^\s\.]+\.[^\s]{2,}|www\.[^\s]+\.[^\s]{2,})/gi,style:4}],addExcelStyle:function(e,t,r,i){t=Ye.extend({numFmtId:"0",fontId:"0",fillId:"0",borderId:"0",applyFont:"1",applyFill:"1",applyBorder:"1",xfId:"0",applyNumberFormat:"0",applyAlignment:"0"},t||{}),r=Ye.extend({horizontal:"left",indent:"0",shrinkToFit:"1",textRotation:"0",vertical:"center",wrapText:"0"},r||{}),Ye.isEmptyObject(e)&&(e.excel_parsers=!0);var o,a,n,l,s=i.getElementsByTagName("numFmts")[0],d=i.getElementsByTagName("cellXfs")[0],p=null,c=null;for(o in e)e.hasOwnProperty(o)&&(-1!==o.indexOf("format")&&(p=o),-1!==o.indexOf("style"))&&(c=o);return c&&!e[c]&&(a=l=0,p&&e[p]&&(n=Ye(s.getElementsByTagName("numFmt")),Ye.each(n,function(e,t){l++,a=Math.max(a,parseInt(Ye(t).attr("numFmtId"),10))}),n=Ye.jgrid.makeNode(i,"numFmt",{attr:{numFmtId:a+1,formatCode:e[p]}}),s.appendChild(n),Ye(s).attr("count",l+1)),s=0!==a?a+1+"":"0",l=0,t.numFmtId=s,n="1"===t.applyAlignment?Ye.jgrid.makeNode(i,"xf",{attr:t,children:[Ye.jgrid.makeNode(i,"alignment",{attr:r})]}):Ye.jgrid.makeNode(i,"xf",{attr:t}),d.appendChild(n),l=Ye("cellXfs xf",i).length,Ye(d).attr("count",l),e[c]=l-1),e},newExcelStyle:function(e,t){t=Ye.extend(!0,{font:{size:11,name:"Calibri",options:""},color:{patternType:"solid",fgColor:"FFFFFFF",bgColor:64}},t||{});var e=e.xl["styles.xml"],r=Ye("cellXfs xf",e).length-1,i=Ye("fonts font",e).length-1,o=Ye("fills fill",e).length-1,a='<font><sz val="'+t.font.size+'" /><name val="'+t.font.name+'" />'+t.font.options+"</font>",a=(e.childNodes[0].childNodes[1].innerHTML+=a,"indexed="),t=(0<=parseInt(t.color.bgColor,10)&&(a="rgb="),a+='"'+t.color.bgColor+'"','<fill><patternFill patternType="'+t.color.patternType+'"><fgColor rgb="'+t.color.fgColor+'" /><bgColor '+a+" /></patternFill></fill>"),a=(e.childNodes[0].childNodes[2].innerHTML+=t,'<xf numFmtId="0" fontId="'+(1+i)+'" fillId="'+(1+o)+'" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1"></xf>');return e.childNodes[0].childNodes[5].innerHTML+=a,1+r}}),Ye.jgrid.extend({exportToCsv:function(S){S=Ye.extend(!0,{separator:",",separatorReplace:" ",quote:'"',escquote:'"',newLine:"\r\n",replaceNewLine:" ",includeCaption:!0,includeLabels:!0,includeGroupHeader:!0,includeFooter:!0,includeHeader:!0,fileName:"jqGridExport.csv",mimetype:"text/csv;charset=utf-8",returnAsString:!1,onBeforeExport:null,treeindent:" ",visibleTreeNodes:!1,loadIndicator:!0},S||{});var k="";return this.each(function(){S._regexsep=new RegExp(S.separator,"g"),S._regexquot=new RegExp(S.quote,"g");var e,t,_=this,r=_.p.treeGrid?Ye(_).jqGrid("getRowData",null,!0,S.treeindent,S.visibleTreeNodes):_.addLocalData(!0),i=r.length,o=_.p.colModel,a=o.length,n=_.p.colNames,l=0,s="",d="",p="",c="",u="",h=[],g="";function f(p,c){var u="",h=_.p.groupingView,g=[],f=h.groupField.length,m=_.p.colModel,v=m.length,j=0;function b(e,t,r,i){for(var o,a,n=function(e,t,r){var i,o=!1;if(0===t)o=r[e];else{var a=r[e].idx;if(0===a)o=r[e];else for(i=e;0<=i;i--)if(r[i].idx===a-t){o=r[i];break}}return o}(e,t,r),l=n.cnt,s=new Array(c.collen),d=0,p=i;p<v;p++)m[p]._expcol&&(a="{0}",Ye.each(n.summary,function(){if(this.nm===m[p].name){m[p].summaryTpl&&(a=m[p].summaryTpl),o=this.v,"string"==typeof this.st&&"avg"===this.st.toLowerCase()&&(this.sd&&this.vd?o=this.v/this.vd:this.v&&0<l&&(o=this.v/l));try{this.groupCount=n.cnt,this.groupIndex=n.dataIndex,this.groupValue=n.value,o=_.formatter("",o,p,this)}catch(e){o=this.v}return s[d]=Ye.jgrid.formatCellCsv(Ye.jgrid.stripHtml(Ye.jgrid.template(a,o)),c),!1}}),d++);return s}Ye.each(m,function(e,t){for(var r=0;r<f;r++)if(h.groupField[r]===t.name){g[r]=e;break}});var y,w,x=Ye.makeArray(h.groupSummary);if(x.reverse(),"local"===_.p.datatype&&!_.p.loadonce){Ye(_).jqGrid("groupingSetup");for(var e=Ye.jgrid.getMethod("groupingPrepare"),t=0;t<i;t++)e.call(Ye(_),r[t],t)}return Ye.each(h.groups,function(e,t){j++;try{y=Array.isArray(h.formatDisplayField)&&Ye.jgrid.isFunction(h.formatDisplayField[t.idx])?h.formatDisplayField[t.idx].call(_,t.displayValue,t.value,_.p.colModel[g[t.idx]],t.idx,h):_.formatter("",t.displayValue,g[t.idx],t.value)}catch(e){y=t.displayValue}var r,i="";if("string"!=typeof(i=Ye.jgrid.isFunction(h.groupText[t.idx])?h.groupText[t.idx].call(_,y,t.cnt,t.summary):Ye.jgrid.template(h.groupText[t.idx],y,t.cnt,t.summary))&&"number"!=typeof i&&(i=y),(r="header"===h.groupSummaryPos[t.idx]?b(e,0,h.groups,0):new Array(c.collen))[0]=Ye.jgrid.formatCellCsv(Ye.jgrid.stripHtml(i),c),u+=r.join(c.separator)+c.newLine,f-1===t.idx){for(var o,a,n,l=h.groups[e+1],i=t.startRow,s=void 0!==l?l.startRow:h.groups[e].startRow+h.groups[e].cnt,d=i;d<s&&p[+d];d++){for(a=p[+d],o=w=0;o<m.length;o++)m[o]._expcol&&(r[w]=Ye.jgrid.formatCellCsv(Ye.jgrid.formatCell(Ye.jgrid.getAccessor(a,m[o].name),o,a,m[o],_,"csv"),c),w++);u+=r.join(c.separator)+c.newLine}if("header"!==h.groupSummaryPos[t.idx]){if(void 0!==l){for(n=0;n<h.groupField.length&&l.dataIndex!==h.groupField[n];n++);j=h.groupField.length-n}for(o=0;o<j;o++)x[o]&&(r=b(e,o,h.groups,0),u+=r.join(c.separator)+c.newLine);j=n}}}),u}Ye.jgrid.isFunction(S.loadIndicator)?S.loadIndicator.call(_,"show"):S.loadIndicator&&Ye(_).jqGrid("progressBar",{method:"show",loadtype:_.p.loadui,htmlcontent:Ye.jgrid.getRegional(_,"defaults.loadtext")});var m,v,j=[];if(Ye.each(o,function(e,t){t._expcol=!0,void 0===t.exportcol?t.hidden&&(t._expcol=!1):t._expcol=t.exportcol,"cb"!==t.name&&"rn"!==t.name&&"subgrid"!==t.name&&"sc"!==t.name||(t._expcol=!1),t._expcol&&(h.push(Ye.jgrid.formatCellCsv(n[e],S)),j.push(t.name))}),S.includeLabels&&(u=h.join(S.separator)+S.newLine),S.collen=h.length,_.p.grouping){var b=!!_.p.groupingView._locgr;_.p.groupingView._locgr=!1,s+=f(r,S),_.p.groupingView._locgr=b}else for(;l<i;){for(e=r[l],q=[],w=t=0;w<a;w++)o[w]._expcol&&(q[t]=Ye.jgrid.formatCellCsv(Ye.jgrid.formatCell(Ye.jgrid.getAccessor(e,o[w].name),w,e,o[w],_,"csv"),S),t++);s+=q.join(S.separator)+S.newLine,l++}if(r=null,q=new Array(S.collen),S.includeCaption&&_.p.caption){for(l=S.collen;--l;)q[l]="";q[0]=Ye.jgrid.formatCellCsv(_.p.caption,S),d+=q.join(S.separator)+S.newLine}if(S.includeGroupHeader&&Ye(_).jqGrid("isGroupHeaderOn"))for(var y=_.p.groupHeader,w=0;w<y.length;w++){for(var x=y[w].groupHeaders,l=0,q=[],C=0;C<j.length;C++){for(q[l]="",t=0;t<x.length;t++)x[t].startColumnName===j[C]&&(q[l]=Ye.jgrid.formatCellCsv(x[t].titleText,S));l++}p+=q.join(S.separator)+S.newLine}if(S.includeFooter&&_.p.footerrow)for(var I,D,F=Ye(_).jqGrid("footerData","getlength"),G=0;G<F;G++){for(I=Ye(_).jqGrid("footerData","get",null,!1,G,!1),w=0,q=[];w<S.collen;)I.hasOwnProperty(D=j[w])&&q.push(Ye.jgrid.formatCellCsv(Ye.jgrid.stripHtml(I[D]),S)),w++;c+=q.join(S.separator)+S.newLine}if(S.includeHeader&&_.p.headerrow)for(F=Ye(_).jqGrid("headerData","getlength"),G=0;G<F;G++){for(m=Ye(_).jqGrid("headerData","get",null,!1,G,!1),w=0,q=[];w<S.collen;)m.hasOwnProperty(v=j[w])&&q.push(Ye.jgrid.formatCellCsv(Ye.jgrid.stripHtml(m[v]),S)),w++;g+=q.join(S.separator)+S.newLine}if(k=d+p+u+g+s+c,Ye.jgrid.isFunction(S.loadIndicator)?S.loadIndicator.call(_,"hide"):S.loadIndicator&&Ye(_).jqGrid("progressBar",{method:"hide",loadtype:_.p.loadui}),Ye.jgrid.isFunction(S.onBeforeExport)&&!(k=S.onBeforeExport.call(_,k)))throw"Before export does not return data!";S.returnAsString||(-1!==S.mimetype.toUpperCase().indexOf("UTF-8")&&(k="\ufeff"+k),Ye.jgrid.saveAs(k,S.fileName,{type:S.mimetype}))}),k},exportToExcel:function(ee){ee=Ye.extend(!0,{includeLabels:!0,includeGroupHeader:!0,includeFooter:!0,includeHeader:!0,fileName:"jqGridExport.xlsx",mimetype:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",maxlength:40,onBeforeExport:null,customizeData:null,replaceStr:null,treeindent:" ",visibleTreeNodes:!1,loadIndicator:!0},ee||{}),this.each(function(){for(var e,t,y=this,r=Ye.jgrid.excelStrings,m=0,v=Ye.parseXML(r["xl/worksheets/sheet1.xml"]),A=v.getElementsByTagName("sheetData")[0],i=Ye.parseXML(r["xl/styles.xml"]),r={_rels:{".rels":Ye.parseXML(r["_rels/.rels"])},xl:{_rels:{"workbook.xml.rels":Ye.parseXML(r["xl/_rels/workbook.xml.rels"])},"workbook.xml":Ye.parseXML(r["xl/workbook.xml"]),"styles.xml":i,worksheets:{"sheet1.xml":v}},"[Content_Types].xml":Ye.parseXML(r["[Content_Types].xml"])},w=y.p.colModel,o=0,x={body:y.p.treeGrid?Ye(y).jqGrid("getRowData",null,!0,ee.treeindent,ee.visibleTreeNodes):y.addLocalData(!0),header:[],footer:[],width:[],map:[],parser:[],labels:[],hidden:[],mergecell:[]},T=Ye.jgrid.addExcelStyle({excel_header_style:""},{fontId:"2",applyAlignment:"1"},{horizontal:"center",vertical:"center"},i).excel_header_style,a=0,n=w.length;a<n;a++)w[a]._expcol=!0,void 0===w[a].exportcol?w[a].hidden&&(w[a]._expcol=!1):w[a]._expcol=w[a].exportcol,void 0===w[a]._colspancell&&(w[a]._colspancell=!1),Ye.jgrid.isServiceCol(w[a].name)||!w[a]._expcol?x.hidden.push(w[a].name):(x.header[o]=w[a].name,x.width[o]=5,x.map[o]=a,x.labels[o]=y.p.colNames[a],w[a].hasOwnProperty("exportoptions")?(e={},t={},w[a].exportoptions.excel_format&&(e=Ye.jgrid.addExcelStyle({excel_format:w[a].exportoptions.excel_format,excel_style:w[a].exportoptions.excel_style||""},{},{},i)),w[a].exportoptions.excel_header_format&&(t=Ye.jgrid.addExcelStyle({excel_header_format:w[a].exportoptions.excel_header_format,excel_header_style:w[a].exportoptions.excel_header_style||""},{fontId:"2",applyAlignment:"1"},{horizontal:"center"},i)),x.parser[a]=Ye.extend(e,t),w[a].exportoptions.replace_format&&(x.parser[a].replace_format=w[a].exportoptions.replace_format),w[a].exportoptions.replace_header_format&&(x.parser[a].replace_header_format=w[a].exportoptions.replace_header_format)):x.parser[a]={excel_parsers:!0},o++);if(ee.includeFooter||y.p.footerrow)for(var l,P=Ye(y).jqGrid("footerData","getlength"),B=0;B<P;B++){for(o in l=Ye(y).jqGrid("footerData","get",null,!1,B,!1))l.hasOwnProperty(o)&&(l[o]=Ye.jgrid.stripHtml(l[o]));x.footer.push(l)}function j(e,t){return Ye.jgrid.makeNode(v,"c",{attr:e,children:[Ye.jgrid.makeNode(v,"v",{text:t})]})}function b(e,t,r){return Ye.jgrid.makeNode(v,"c",{attr:{t:"inlineStr",r:e,s:r=void 0===r?68:r},children:{row:Ye.jgrid.makeNode(v,"is",{children:{row:Ye.jgrid.makeNode(v,"t",{text:t})}})}})}Ye.jgrid.isFunction(ee.customizeData)&&ee.customizeData.call(y,x);var E,_,z=Ye.jgrid.isFunction(ee.replaceStr)?ee.replaceStr:function(e){return e.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/[\x00-\x09\x0B\x0C\x0E-\x1F\x7F-\x9F]/g,"")},q=function(e,t,r,i){void 0===r&&(r=!1),void 0===i&&(i=!1),E=m+1,_=Ye.jgrid.makeNode(v,"row",{attr:{r:E}});for(var o,a,n=0;n<x.header.length;n++){var l,s,d=Ye.jgrid.excelCellPos(n)+""+E,p=(null==(f=Array.isArray(e)&&t?x.labels[n]:Ye.jgrid.getAccessor(e,x.header[n]))&&(f=""),t||(f=0===n&&i||i&&""===f?f:Ye.jgrid.formatCell(f,x.map[n],e,w[x.map[n]],y,"excel"))&&("&nbsp;"===f||"&#160;"===f||1===f.length&&160===f.charCodeAt(0))&&(f=""),x.width[n]=Math.max(x.width[n],Math.min(parseInt(f.toString().length,10),ee.maxlength)),l=null,x.parser[x.map[n]]);if(t&&r)p.replace_header_format&&(f=p.replace_header_format(f)),l=void 0!==p.excel_header_style?"text"===p.excel_header_style?b(d,f):p.excel_header_style<=55?b(d,f,p.excel_header_style):j({r:d,s:p.excel_header_style},f):b(d,f,T),_.appendChild(l);else if(!0!==p.excel_parsers||l)void 0===p.excel_style||t||l||(p.replace_format&&(f=p.replace_format(f)),l="text"===p.excel_style?b(d,f):p.excel_style<=55?b(d,f,p.excel_style):j({r:d,s:p.excel_style},f),_.appendChild(l));else for(var c=0,u=Ye.jgrid.excelParsers.length;c<u;c++){var h=Ye.jgrid.excelParsers[c];if(f.match&&!f.match(/^0\d+/)&&f.match(h.match)){var g=f,f=f.replace(/[^\d\.\-]/g,"");if(h.fmt&&(f=h.fmt(f)),67===h.style)l=j({t:"d",r:d,s:h.style},f);else if(4===h.style)o=g,a=void 0,(a=document.createElement("div")).innerHTML=o,l=(f="A"===(o=a.firstChild).nodeName?[o.href,o.text]:"#text"===o.nodeName&&[o.textContent,o.textContent])?(a={t:"str",r:d,s:h.style},o='HYPERLINK("'+f[0]+'","'+f[1]+'")',Ye.jgrid.makeNode(v,"c",{attr:a,children:[Ye.jgrid.makeNode(v,"f",{text:o})]})):b(d,g);else{if(Ye.inArray(h.style,["63","64","65","66"])&&15<f.toString().length){l=b(d,g.replace?z(g):g),_.appendChild(l);break}l=j({r:d,s:h.style},f)}_.appendChild(l);break}}l||(f.match&&(s=f.match(/^-?([1-9]\d+)(\.(\d+))?$/)),l="number"==typeof f&&f.toString().length<=15||s&&s[1].length+(s[2]?s[3].length:0)<=15?j({t:"n",r:d},f):b(d,f.replace?z(f):f),_.appendChild(l))}A.appendChild(_),m++};function H(p){var c=y.p.groupingView,u=[],h=c.groupField.length,g=w.length,f=0;function m(e,t,r,i){for(var o,a,n=function(e,t,r){var i,o=!1;if(0===t)o=r[e];else{var a=r[e].idx;if(0===a)o=r[e];else for(i=e;0<=i;i--)if(r[i].idx===a-t){o=r[i];break}}return o}(e,t,r),l=n.cnt,s=v(x.header),d=i;d<g;d++)w[d]._expcol&&(a="{0}",Ye.each(n.summary,function(){if(this.nm===w[d].name){w[d].summaryTpl&&(a=w[d].summaryTpl),o=this.v,"string"==typeof this.st&&"avg"===this.st.toLowerCase()&&(this.sd&&this.vd?o=this.v/this.vd:this.v&&0<l&&(o=this.v/l));try{this.groupCount=n.cnt,this.groupIndex=n.dataIndex,this.groupValue=n.value}catch(e){o=this.v}return s[this.nm]=Ye.jgrid.stripHtml(Ye.jgrid.template(a,o)),!1}}));return s}function v(e){for(var t={},r=0;r<e.length;r++)t[e[r]]="";return t}Ye.each(w,function(e,t){for(var r=0;r<h;r++)if(c.groupField[r]===t.name){u[r]=e;break}});var j,b=Ye.makeArray(c.groupSummary);if(b.reverse(),"local"===y.p.datatype&&!y.p.loadonce){Ye(y).jqGrid("groupingSetup");for(var e=Ye.jgrid.getMethod("groupingPrepare"),t=0;t<x.body.length;t++)e.call(Ye(y),x.body[t],t)}Ye.each(c.groups,function(e,t){f++;try{j=Array.isArray(c.formatDisplayField)&&Ye.jgrid.isFunction(c.formatDisplayField[t.idx])?c.formatDisplayField[t.idx].call(y,t.displayValue,t.value,y.p.colModel[u[t.idx]],t.idx,c):y.formatter("",t.displayValue,u[t.idx],t.value)}catch(e){j=t.displayValue}var r="",i=("string"!=typeof(r=Ye.jgrid.isFunction(c.groupText[t.idx])?c.groupText[t.idx].call(y,j,t.cnt,t.summary):Ye.jgrid.template(c.groupText[t.idx],j,t.cnt,t.summary))&&"number"!=typeof r&&(r=j),"header"===c.groupSummaryPos[t.idx]?m(e,0,c.groups,0):v(x.header));if(i[Object.keys(i)[0]]=Ye.jgrid.stripHtml(new Array(5*t.idx).join(" ")+r),q(i,!1,!1,!0),h-1===t.idx){for(var o,a,n=c.groups[e+1],r=t.startRow,l=void 0!==n?n.startRow:c.groups[e].startRow+c.groups[e].cnt,s=r;s<l&&p[+s];s++){var d=p[+s];q(d,!1)}if("header"!==c.groupSummaryPos[t.idx]){if(void 0!==n){for(a=0;a<c.groupField.length&&n.dataIndex!==c.groupField[a];a++);f=c.groupField.length-a}for(o=0;o<f;o++)b[o]&&(i=m(e,o,c.groups,0),q(i,!1,!1,!0));f=a}}})}Ye.jgrid.isFunction(ee.loadIndicator)?ee.loadIndicator.call(y,"show"):ee.loadIndicator&&Ye(y).jqGrid("progressBar",{method:"show",loadtype:y.p.loadui,htmlcontent:Ye.jgrid.getRegional(y,"defaults.loadtext")}),Ye("sheets sheet",r.xl["workbook.xml"]).attr("name",ee.sheetName);var s,d,p,c,u,h,g=0,f=[],C={};if(ee.includeGroupHeader&&Ye(y).jqGrid("isGroupHeaderOn"))for(s=y.p.groupHeader,p=0;p<s.length;p++){var I,D,F,G,S=s[p].groupHeaders,U=s[p].useColSpanStyle&&1===s.length,L=[],V=[],W=[];if(g++,U)for(I=0;I<S.length;I++)for(d=S[I].startColumnName,D=S[I].numberOfColumns,G=F=Ye.jgrid.getElemByAttrVal(w,"name",d,!0);G<F+S[I].numberOfColumns;G++)W[w[G].name]=d,-1!==(c=x.header.indexOf(w[G].name))&&L.push(c);for(a=0;a<x.header.length;a++){for(C[d=x.header[a]]=U?x.labels[a]:"",h=u=-1,I=0;I<S.length;I++)if(S[I].startColumnName===d){for(V.push(d),C[d]=S[I].titleText,D=S[I].numberOfColumns,G=F=Ye.jgrid.getElemByAttrVal(w,"name",d,!0);G<F+S[I].numberOfColumns;G++)!0===w[G].hidden&&D--;u=Ye.jgrid.excelCellPos(a)+g,h=Ye.jgrid.excelCellPos(a+D-1)+g,f.push({ref:u+":"+h})}-1===u&&-1===h&&U&&-1===L.indexOf(a)&&(u=Ye.jgrid.excelCellPos(a)+g,h=Ye.jgrid.excelCellPos(a)+(g+1),f.push({ref:u+":"+h}))}if(V.length<S.length)for(I=0;I<x.hidden.length;I++){var k=Ye.jgrid.inColumnHeader(x.hidden[I],S);if(0<=k)for(var R in d=x.hidden[I],W)if(W[R]===d&&C[R]){for(C[R]=S[k].titleText,c=x.header.indexOf(R),D=S[k].numberOfColumns,G=F=Ye.jgrid.getElemByAttrVal(w,"name",d,!0);G<F+S[k].numberOfColumns;G++)!0===w[G].hidden&&D--;u=Ye.jgrid.excelCellPos(c)+g,h=Ye.jgrid.excelCellPos(c+D-1)+g,f.push({ref:u+":"+h});break}}q(C,!0,!0)}if(ee.includeLabels)if(y.p.colSpanHeader.length){for(g++,s=y.p.colSpanHeader,C={},a=0;a<x.header.length;a++)for(C[d=x.header[a]]=x.labels[a],p=0;p<s.length;p++)(S=s[p]).startColumnName===d&&(C[d]=S.titleText,u=Ye.jgrid.excelCellPos(a)+g,h=Ye.jgrid.excelCellPos(a+S.numberOfColumns-1)+g,f.push({ref:u+":"+h}));q(C,!0,!0)}else q(x.header,!0,!0);if((f=x.mergecell.length?f.concat(x.mergecell):f).length){var Q=Ye.jgrid.makeNode(v,"mergeCells",{attr:{count:f.length}});for(Ye("worksheet",v).append(Q),o=0;o<f.length;o++)Q.appendChild(Ye.jgrid.makeNode(v,"mergeCell",{attr:f[o]}))}if(ee.includeHeader||y.p.headerrow)for(var N,X=Ye(y).jqGrid("headerData","getlength"),K=0;K<X;K++){for(o in N=Ye(y).jqGrid("headerData","get",null,!1,K,!1))N.hasOwnProperty(o)&&(N[o]=Ye.jgrid.stripHtml(N[o]));Ye.isEmptyObject(N)||(q(N,!0),Ye("row",v).last().find("c").attr("s","2"))}if(y.p.grouping){var $=!!y.p.groupingView._locgr;y.p.groupingView._locgr=!1,H(x.body),y.p.groupingView._locgr=$}else for(var M=0,Y=x.body.length;M<Y;M++)q(x.body[M],!1);if((ee.includeFooter||y.p.footerrow)&&!Ye.isEmptyObject(x.footer))if(Array.isArray(x.footer))for(M=0;M<x.footer.length;M++)q(x.footer[M],!0),Ye("row",v).last().find("c").attr("s","2");else q(x.footer,!0),Ye("row",v).last().find("c").attr("s","2");var J=Ye.jgrid.makeNode(v,"cols");for(Ye("worksheet",v).prepend(J),o=0,n=x.width.length;o<n;o++)J.appendChild(Ye.jgrid.makeNode(v,"col",{attr:{min:o+1,max:o+1,width:x.width[o],customWidth:1}}));Ye.jgrid.isFunction(ee.onBeforeExport)&&ee.onBeforeExport.call(y,r,m),x=null;try{var O=new JSZip,Z={type:"blob",mimeType:ee.mimetype};Ye.jgrid.xmlToZip(O,r),O.generateAsync?O.generateAsync(Z).then(function(e){Ye.jgrid.saveAs(e,ee.fileName,{type:ee.mimetype})}):Ye.jgrid.saveAs(O.generate(Z),ee.fileName,{type:ee.mimetype})}catch(e){throw e}finally{Ye.jgrid.isFunction(ee.loadIndicator)?ee.loadIndicator.call(y,"hide"):ee.loadIndicator&&Ye(y).jqGrid("progressBar",{method:"hide",loadtype:y.p.loadui})}})},exportToPdf:function(S){return S=Ye.extend(!0,{title:null,orientation:"portrait",pageSize:"A4",description:null,onBeforeExport:null,download:"download",includeLabels:!0,includeGroupHeader:!0,includeFooter:!0,includeHeader:!0,fileName:"jqGridExport.pdf",mimetype:"application/pdf",treeindent:"-",visibleTreeNodes:!1,centerTableOnPage:!1,loadIndicator:!0},S||{}),this.each(function(){var e,t,r,x=this,_=[],i=x.p.colModel,l={},s=x.p.treeGrid?Ye(x).jqGrid("getRowData",null,!0,S.treeindent,S.visibleTreeNodes):x.addLocalData(!0),q=[],d=0,C=[],o=[],a=[],I={};function n(p){var c=x.p.groupingView,u=[],h=c.groupField.length,g=x.p.colModel,f=g.length,m=0;function v(e,t,r){var i,o=0,a=[];void 0===r&&(r=!1);for(var n=0;n<q.length;n++)i=e[q[n]],l={text:null==i||""===i?"":t&&!(0===n&&r)?Ye.jgrid.formatCell(i+"",C[o],s[d],g[C[o]],x,"pdf"):i,alignment:I[n],style:"tableBody"},a.push(l),o++;return a}function j(e,t,r,i){for(var o,a,n=function(e,t,r){var i,o=!1;if(0===t)o=r[e];else{var a=r[e].idx;if(0===a)o=r[e];else for(i=e;0<=i;i--)if(r[i].idx===a-t){o=r[i];break}}return o}(e,t,r),l=n.cnt,s=b(q),d=i;d<f;d++)g[d]._expcol&&(a="{0}",Ye.each(n.summary,function(){if(this.nm===g[d].name){g[d].summaryTpl&&(a=g[d].summaryTpl),o=this.v,"string"==typeof this.st&&"avg"===this.st.toLowerCase()&&(this.sd&&this.vd?o=this.v/this.vd:this.v&&0<l&&(o=this.v/l));try{this.groupCount=n.cnt,this.groupIndex=n.dataIndex,this.groupValue=n.value}catch(e){o=this.v}return s[this.nm]=Ye.jgrid.stripHtml(Ye.jgrid.template(a,o)),!1}}));return s}function b(e){for(var t={},r=0;r<e.length;r++)t[e[r]]="";return t}Ye.each(g,function(e,t){for(var r=0;r<h;r++)if(c.groupField[r]===t.name){u[r]=e;break}});var y,w=Ye.makeArray(c.groupSummary);if(w.reverse(),"local"===x.p.datatype&&!x.p.loadonce){Ye(x).jqGrid("groupingSetup");for(var e=Ye.jgrid.getMethod("groupingPrepare"),t=0;t<s.length;t++)e.call(Ye(x),s[t],t)}Ye.each(c.groups,function(e,t){m++;try{y=Array.isArray(c.formatDisplayField)&&Ye.jgrid.isFunction(c.formatDisplayField[t.idx])?c.formatDisplayField[t.idx].call(x,t.displayValue,t.value,x.p.colModel[u[t.idx]],t.idx,c):x.formatter("",t.displayValue,u[t.idx],t.value)}catch(e){y=t.displayValue}var r="",i=("string"!=typeof(r=Ye.jgrid.isFunction(c.groupText[t.idx])?c.groupText[t.idx].call(x,y,t.cnt,t.summary):Ye.jgrid.template(c.groupText[t.idx],y,t.cnt,t.summary))&&"number"!=typeof r&&(r=y),"header"===c.groupSummaryPos[t.idx]?j(e,0,c.groups,0):b(q));if(i[Object.keys(i)[0]]=Ye.jgrid.stripHtml(new Array(5*t.idx).join(" ")+r),_.push(v(i,!0,!0)),h-1===t.idx){for(var o,a,n=c.groups[e+1],r=t.startRow,l=void 0!==n?n.startRow:c.groups[e].startRow+c.groups[e].cnt,s=r;s<l&&p[+s];s++){var d=p[+s];_.push(v(d,!0))}if("header"!==c.groupSummaryPos[t.idx]){if(void 0!==n){for(a=0;a<c.groupField.length&&n.dataIndex!==c.groupField[a];a++);m=c.groupField.length-a}for(o=0;o<m;o++)w[o]&&(i=j(e,o,c.groups,0),_.push(v(i,!0,!0)));m=a}}})}for(Ye.jgrid.isFunction(S.loadIndicator)?S.loadIndicator.call(x,"show"):S.loadIndicator&&Ye(x).jqGrid("progressBar",{method:"show",loadtype:x.p.loadui,htmlcontent:Ye.jgrid.getRegional(x,"defaults.loadtext")}),e=0,D=i.length;e<D;e++)i[e]._expcol=!0,void 0===i[e].exportcol?i[e].hidden&&(i[e]._expcol=!1):i[e]._expcol=i[e].exportcol,!Ye.jgrid.isServiceCol(i[e].name)&&i[e]._expcol&&(l={text:x.p.colNames[e],style:"tableHeader"},o.push(l),q[d]=i[e].name,C[d]=e,a.push(i[e].width),I[i[e].name]=i[e].align||"left",d++);if(S.includeGroupHeader&&Ye(x).jqGrid("isGroupHeaderOn"))for(r=x.p.groupHeader,d=0;d<r.length;d++){for(var p=[],c=r[d].groupHeaders,u=r[d].useColSpanStyle,h=0;h<i.length;h++){var g=!0;for(Ye.jgrid.isServiceCol(i[h].name)||!i[h]._expcol?g=!1:l=u?{text:x.p.colNames[h],style:"tableHeader",rowSpan:2,verticalAlign:"center"}:{text:"",style:"tableHeader"},t=0;t<c.length;t++)if(c[t].startColumnName===i[h].name){for(var f=c[t].numberOfColumns,m=h;m<h+c[t].numberOfColumns;m++)!0===i[m].hidden&&f--;!(l={text:c[t].titleText,colSpan:f,style:"tableHeader"})===g&&0<f&&(g=!0,h+=c[t].numberOfColumns-f)}g&&p.push(l)}_.push(p)}if(S.includeLabels)if(x.p.colSpanHeader.length){for(r=x.p.colSpanHeader,p=[],h=0;h<q.length;h++){for(l={text:x.p.colNames[h],style:"tableHeader",verticalAlign:"center"},t=0;t<r.length;t++)r[t].startColumnName===q[h]&&(l={text:r[t].titleText,colSpan:r[t].numberOfColumns,style:"tableHeader"});p.push(l),e++}_.push(p)}else _.push(o);if(S.includeHeader&&x.p.headerrow)for(var v,j=Ye(x).jqGrid("headerData","getlength"),b=0;b<j;b++){for(v=Ye(x).jqGrid("headerData","get",null,!1,b,!1),o=[],h=0;h<q.length;h++)l={text:Ye.jgrid.stripHtml(Ye.jgrid.getAccessor(v,q[h])),style:"tableFooter",alignment:I[q[h]]},o.push(l);_.push(o)}if(x.p.grouping){var y=!!x.p.groupingView._locgr;x.p.groupingView._locgr=!1,n(s),x.p.groupingView._locgr=y}else for(var w,d=0,D=s.length;d<D;d++){for(o=[],w=s[d],h=t=0;h<q.length;h++)l={text:null==w[q[h]]?"":Ye.jgrid.stripHtml(Ye.jgrid.formatCell(Ye.jgrid.getAccessor(w,q[h])+"",C[t],s[d],i[C[t]],x,"pdf")),alignment:I[q[h]],style:"tableBody"},o.push(l),t++;_.push(o)}if(S.includeFooter&&x.p.footerrow)for(j=Ye(x).jqGrid("footerData","getlength"),b=0;b<j;b++){var F=Ye(x).jqGrid("footerData","get",null,!1,b,!1),o=[];for(h=0;h<q.length;h++)l={text:Ye.jgrid.stripHtml(Ye.jgrid.getAccessor(F,q[h])),style:"tableFooter",alignment:I[q[h]]},o.push(l);_.push(o)}y={style:"tableExample",widths:a,table:{headerRows:null!=r?0:1,body:_}},S.centerTableOnPage&&(y={columns:[{width:"*",text:""},{style:"tableExample",width:"auto",widths:a,table:{headerRows:null!=r?0:1,body:_},alignment:"center"},{width:"*",text:""}]}),y={pageSize:S.pageSize,pageOrientation:S.orientation,content:[y],styles:{tableHeader:{bold:!0,fontSize:11,color:"#2e6e9e",fillColor:"#dfeffc",alignment:"center"},tableBody:{fontSize:10},tableFooter:{bold:!0,fontSize:11,color:"#2e6e9e",fillColor:"#dfeffc"},title:{alignment:"center",fontSize:15},description:{}},defaultStyle:{fontSize:10}};S.description&&y.content.unshift({text:S.description,style:"description",margin:[0,0,0,12]}),S.title&&y.content.unshift({text:S.title,style:"title",margin:[0,0,0,12]}),Ye.jgrid.isFunction(S.onBeforeExport)&&S.onBeforeExport.call(x,y);try{var G=pdfMake.createPdf(y);G.getDataUrl(function(e){Ye.jgrid.isFunction(S.loadIndicator)?S.loadIndicator.call(x,"hide"):S.loadIndicator&&Ye(x).jqGrid("progressBar",{method:"hide",loadtype:x.p.loadui})}),"open"===S.download?G.open():G.getBuffer(function(e){Ye.jgrid.saveAs(e,S.fileName,{type:S.mimetype})})}catch(e){throw e}})},exportToHtml:function(g){var f;return g=Ye.extend(!0,{title:"",onBeforeExport:null,includeLabels:!0,includeGroupHeader:!0,includeFooter:!0,includeHeader:!0,tableClass:"jqgridprint",autoPrint:!1,topText:"",bottomText:"",returnAsString:!1,treeindent:"&nbsp;",visibleTreeNodes:!1,loadIndicator:!0},g||{}),this.each(function(){for(var x=this,c=x.p.colModel,e=0,_={body:x.p.treeGrid?Ye(x).jqGrid("getRowData",null,!0,g.treeindent,g.visibleTreeNodes):x.addLocalData(!0),header:[],footer:[],width:[],map:[],align:[]},t=0,r=c.length;t<r;t++)c[t]._expcol=!0,void 0===c[t].exportcol?c[t].hidden&&(c[t]._expcol=!1):c[t]._expcol=c[t].exportcol,"cb"!==c[t].name&&"rn"!==c[t].name&&"subgrid"!==c[t].name&&"sc"!==c[t].name&&c[t]._expcol&&(_.header[e]=c[t].name,_.width[e]=c[t].width,_.map[e]=t,_.align[e]=c[t].align||"left",e++);var i=document.createElement("a"),o=function(e){i.href=e;e=i.host;return-1===e.indexOf("/")&&0!==i.pathname.indexOf("/")&&(e+="/"),i.protocol+"//"+e+i.pathname+i.search},q=function(e,t,r,i,o){for(var a,n,l="<tr>",s=0,d=_.header.length;s<d&&(n=o?' colspan= "'+_.header.length+'" style=text-align:left':!0===i?" style=width:"+_.width[s]+"px;text-align:"+_.align[s]+";":" style=text-align:"+_.align[s]+";",a=_.header[s],e.hasOwnProperty(a)&&(l+="<"+t+n+">"+(r?Ye.jgrid.formatCell(Ye.jgrid.getAccessor(e,a),_.map[s],e,c[_.map[s]],x,"html"):e[a])+"</"+t+">"),!o);s++);return l+"</tr>"};function a(u){var h=x.p.groupingView,g=[],f=h.groupField.length,p=c.length,m=0,v="";function j(e,t,r,i){for(var o,a,n=function(e,t,r){var i,o=!1;if(0===t)o=r[e];else{var a=r[e].idx;if(0===a)o=r[e];else for(i=e;0<=i;i--)if(r[i].idx===a-t){o=r[i];break}}return o}(e,t,r),l=n.cnt,s=b(_.header),d=i;d<p;d++)c[d]._expcol&&(a="{0}",Ye.each(n.summary,function(){if(this.nm===c[d].name){c[d].summaryTpl&&(a=c[d].summaryTpl),o=this.v,"string"==typeof this.st&&"avg"===this.st.toLowerCase()&&(this.sd&&this.vd?o=this.v/this.vd:this.v&&0<l&&(o=this.v/l));try{this.groupCount=n.cnt,this.groupIndex=n.dataIndex,this.groupValue=n.value}catch(e){o=this.v}return s[this.nm]=Ye.jgrid.stripHtml(Ye.jgrid.template(a,o)),!1}}));return s}function b(e){for(var t={},r=0;r<e.length;r++)t[e[r]]="";return t}Ye.each(c,function(e,t){for(var r=0;r<f;r++)if(h.groupField[r]===t.name){g[r]=e;break}});var y,w=Ye.makeArray(h.groupSummary);if(w.reverse(),"local"===x.p.datatype&&!x.p.loadonce){Ye(x).jqGrid("groupingSetup");for(var e=Ye.jgrid.getMethod("groupingPrepare"),t=0;t<_.body.length;t++)e.call(Ye(x),_.body[t],t)}return Ye.each(h.groups,function(e,t){m++;try{y=Array.isArray(h.formatDisplayField)&&Ye.jgrid.isFunction(h.formatDisplayField[t.idx])?h.formatDisplayField[t.idx].call(x,t.displayValue,t.value,x.p.colModel[g[t.idx]],t.idx,h):x.formatter("",t.displayValue,g[t.idx],t.value)}catch(e){y=t.displayValue}var r="";"string"!=typeof(r=Ye.jgrid.isFunction(h.groupText[t.idx])?h.groupText[t.idx].call(x,y,t.cnt,t.summary):Ye.jgrid.template(h.groupText[t.idx],y,t.cnt,t.summary))&&"number"!=typeof r&&(r=y);var i,o=!1,a=("header"===h.groupSummaryPos[t.idx]?i=j(e,0,h.groups,0):(i=b(_.header),o=!0),Object.keys(i));if(i[a[0]]=new Array(5*t.idx).join(" ")+r,v+=q(i,"td",!0,1===m,o),f-1===t.idx){for(var n,l,s=h.groups[e+1],a=t.startRow,d=void 0!==s?s.startRow:h.groups[e].startRow+h.groups[e].cnt,p=a;p<d&&u[+p];p++){var c=u[+p];v+=q(c,"td",!0)}if("header"!==h.groupSummaryPos[t.idx]){if(void 0!==s){for(l=0;l<h.groupField.length&&s.dataIndex!==h.groupField[l];l++);m=h.groupField.length-l}for(n=0;n<m;n++)w[n]&&(i=j(e,n,h.groups,0),v+=q(i,"td",!0));m=l}}}),v}Ye.jgrid.isFunction(g.loadIndicator)?g.loadIndicator.call(x,"show"):g.loadIndicator&&Ye(x).jqGrid("progressBar",{method:"show",loadtype:x.p.loadui,htmlcontent:Ye.jgrid.getRegional(x,"defaults.loadtext")});var n='<table class="'+g.tableClass+'">';if(g.includeLabels&&(n+="<thead>"+function(e,t,r){for(var i="<tr>",o=0,a=e.length;o<a;o++)i+="<"+t+(!0===r?" style=width:"+_.width[o]+"px;":"")+">"+x.p.colNames[_.map[o]]+"</"+t+">";return i+"</tr>"}(_.header,"th",!0)+"</thead>"),n+="<tbody>",g.includeHeader&&x.p.headerrow)for(var l,s=Ye(x).jqGrid("footerData","getlength"),d=0;d<s;d++)for(d=0;d<s;d++)l=Ye(x).jqGrid("headerData","get",null,!1,d,!1),n+=q(l,"td",!1);if(x.p.grouping){var p=!!x.p.groupingView._locgr;x.p.groupingView._locgr=!1,n+=a(_.body),x.p.groupingView._locgr=p}else for(e=0,r=_.body.length;e<r;e++)n+=q(_.body[e],"td",!0,0===e);if(g.includeFooter&&x.p.footerrow)for(s=Ye(x).jqGrid("footerData","getlength"),d=0;d<s;d++)_.footer[d]=Ye(x).jqGrid("footerData","get",null,!1,d,!1),n+=q(_.footer[d],"td",!1);if(n=n+"</tbody>"+"</table>",g.returnAsString)f=n;else{var u=window.open("",""),h=(u.document.close(),g.title?"<title>"+g.title+"</title>":"");Ye("style, link").each(function(){h+=function(e){e=Ye(e).clone()[0];return"link"===e.nodeName.toLowerCase()&&(e.href=o(e.href)),e.outerHTML}(this)});try{u.document.head.innerHTML=h}catch(e){Ye(u.document.head).html(h)}u.document.body.innerHTML=(g.title?"<h1>"+g.title+"</h1>":"")+"<div>"+(g.topText||"")+"</div>"+n+"<div>"+(g.bottomText||"")+"</div>",Ye(u.document.body).addClass("html-view"),Ye("img",u.document.body).each(function(e,t){t.setAttribute("src",o(t.getAttribute("src")))}),Ye.jgrid.isFunction(g.onBeforeExport)&&g.onBeforeExport.call(x,u),Boolean(u.chrome)?g.autoPrint&&(u.print(),u.close()):setTimeout(function(){g.autoPrint&&(u.print(),u.close())},1e3)}Ye.jgrid.isFunction(g.loadIndicator)?g.loadIndicator.call(x,"hide"):g.loadIndicator&&Ye(x).jqGrid("progressBar",{method:"hide",loadtype:x.p.loadui})}),f}}),Ye.extend(Ye.jgrid,{focusableElementsList:[">a[href]",">button:not([disabled])",">area[href]",">input:not([disabled])",">select:not([disabled])",">textarea:not([disabled])",">iframe",">object",">embed",">*[tabindex]",">*[contenteditable]"]}),Ye.jgrid.extend({ariaBodyGrid:function(e){var h=Ye.extend({onEnterCell:null,onKeyCheck:null,customCellAction:null},e||{});return this.each(function(){var n=this,r=Ye.jgrid.getMethod("getStyleUI"),l=r(n.p.styleUI+".common","highlight",!0);function a(e,t){return!isNaN(e)&&!isNaN(t)&&0<=e&&0<=t&&n.rows.length&&e<n.rows.length&&t<n.p.colModel.length}function i(e,t){var r,t=n.p.iRow+t,i=n.p.iCol+e,o=n.rows.length,e=0!==e;return!!o&&(r=n.p.colModel.length,e&&(i<0&&2<=t&&(i=r-1,t--),r<=i)&&(i=0,t++),e||(t<1?(i--,n.rows[t=o-1]&&0<=i&&!n.rows[t].cells[i]&&t--):(o<=t||!n.rows[t].cells[i])&&(t=1,i++)),a(t,i)?{row:t,col:i}:!!a(n.p.iRow,n.p.iCol)&&{row:n.p.iRow,col:n.p.iCol})}function o(e,t){var r=i(e,t);if(!r)return!1;for(;Ye(n.rows[r.row].cells[r.col]).is(":hidden");)if(n.p.iRow=r.row,n.p.iCol=r.col,r=i(e,t),n.p.iRow===r.row&&n.p.iCol===r.col)return!1;return 0!==t&&Ye(n).jqGrid("setSelection",n.rows[r.row].id,!1,null,!1),r}function s(e){var t=n.p.page,r=n.p.lastpage;n.p.page!==(t=r<(t=(t+=e)<=0?1:t)?r:t)&&(n.p.page=t,n.grid.populate())}var t=Ye.jgrid.focusableElementsList.join(),d=(Ye(n).removeAttr("tabindex"),Ye(n).on("jqGridAfterGridComplete.setAriaGrid",function(e){Ye("tbody",n).first().find(">tr:not(.jqgfirstrow)>td:not(:hidden, :has("+t+"))").attr("tabindex",-1),Ye("tbody",n).first().find(">tr:not(.jqgfirstrow)").removeAttr("tabindex"),void 0!==n.p.iRow&&void 0!==n.p.iCol&&n.rows[n.p.iRow]&&Ye(n.rows[n.p.iRow].cells[n.p.iCol]).attr("tabindex",0).focus(function(){Ye(this).addClass(l)}).blur(function(){Ye(this).removeClass(l)})}),n.p.iRow=1,n.p.iCol=Ye.jgrid.getFirstVisibleCol(n),0),p=0,c=!!Ye.jgrid.isFunction(h.customCellAction)&&h.customCellAction,u=!!Ye.jgrid.isFunction(h.onKeyCheck)&&h.onKeyCheck;Ye(n).on("keydown",function(e){if((!n.p.navigationDisabled||!0!==n.p.navigationDisabled)&&!e.target.id.startsWith("jqs_"+n.p.id)&&(!u||u.call(n,n.rows[n.p.iRow].id,n.p.iRow,n.p.iCol,e))){var t;switch(e.which||e.keyCode){case 38:t=o(0,-1),d=t.row,p=t.col,e.preventDefault();break;case 40:t=o(0,1),d=t.row,p=t.col,e.preventDefault();break;case 37:t=o(-1,0),d=t.row,p=t.col,e.preventDefault();break;case 39:t=o(1,0),d=t.row,p=t.col,e.preventDefault();break;case 36:d=e.ctrlKey?1:n.p.iRow,p=0,e.preventDefault();break;case 35:d=e.ctrlKey?n.rows.length-1:n.p.iRow,p=n.p.colModel.length-1,e.preventDefault();break;case 33:s(-1),p=n.p.iCol,d=n.p.iRow,e.preventDefault();break;case 34:s(1),p=n.p.iCol,(d=n.p.iRow)>n.rows.length-1&&(d=n.rows.length-1,n.p.iRow=n.rows.length-1),e.preventDefault();break;case 13:return void(Ye.jgrid.isFunction(h.onEnterCell)&&(h.onEnterCell.call(n,n.rows[n.p.iRow].id,n.p.iRow,n.p.iCol,e),e.preventDefault()));case 113:try{Ye(n).jqGrid("editCell",n.p.iRow,n.p.iCol,!0,e)}catch(e){}break;default:return void(c&&c.call(n,n.rows[n.p.iRow].id,n.p.iRow,n.p.iCol,e))}setTimeout(function(){Ye(n).jqGrid("focusBodyCell",d,p,r,l)},50)}}),Ye(n).on("jqGridBeforeSelectRow.ariaGridClick",function(){return!1}),Ye(n).on("jqGridCellSelect.ariaGridClick",function(e,t,r,i,o){var a,o=o.target;0<n.p.iRow&&0<=n.p.iCol&&Ye(n.rows[n.p.iRow].cells[n.p.iCol]).attr("tabindex",-1),(Ye(o).is("td")||Ye(o).is("th")||o.id.startsWith("jqs_"+n.p.id))&&(n.p.iCol=o.cellIndex,a=Ye(o).closest("tr.jqgrow"),n.p.iRow=a[0].rowIndex,Ye(o).attr("tabindex",0).addClass(l).focus().blur(function(){Ye(this).removeClass(l)}))}),n.p.ariaBody=!0})},excelLikeGrid:function(e){var v=Ye.extend({beforeDeleteCell:null,customCellAction:null,customUndoFunction:null,specialChars:["~","!","@","#","$","%","^","&","*","(",")","_","+","{","}",":",'"',"|","<",">","?",",",".","/",";","\\","[","]"],addonChars:!1,onKeyCheck:null},e||{});return this.each(function(){var n=this,l=Ye.jgrid.getMethod("getStyleUI"),s=l(n.p.styleUI+".common","highlight",!0),d=(n.p.F2key=!1,{isValidCell:function(e,t){return!isNaN(e)&&!isNaN(t)&&0<=e&&0<=t&&n.rows.length&&e<n.rows.length&&t<n.p.colModel.length},getNextCell:function(e,t){var t=n.p.iRow+t,r=n.p.iCol+e,i=n.rows.length,e=0!==e,o=n.p.frozenColumns?n.p.frozenColCount+1:0;return!!i&&(i=n.p.colModel.length,e&&(r=r<o?o:r)===i&&(r=i),e||n.rows[t]&&0<=r&&!n.rows[t].cells[r]&&t--,this.isValidCell(t,r)?{row:t,col:r}:!!this.isValidCell(n.p.iRow,n.p.iCol)&&{row:n.p.iRow,col:n.p.iCol})},getNextVisibleCell:function(e,t){var r=this.getNextCell(e,t);if(!r)return!1;for(;Ye(n.rows[r.row].cells[r.col]).is(":hidden");)if(n.p.iRow=r.row,n.p.iCol=r.col,r=this.getNextCell(e,t),n.p.iRow===r.row&&n.p.iCol===r.col)return!1;return 0!==t&&Ye(n).jqGrid("setSelection",n.rows[r.row].id,!1,null,!1),r},movePage:function(e){var t=n.p.page,r=n.p.lastpage;n.p.page!==(t=r<(t=(t+=e)<=0?1:t)?r:t)&&(n.p.page=t,n.grid.populate())}}),t=Ye.jgrid.focusableElementsList.join(),p=(Ye(n).removeAttr("tabindex"),Ye(n).on("jqGridAfterGridComplete.setAriaGrid",function(e){Ye("tbody",n).first().find(">tr:not(.jqgfirstrow)>td:not(:hidden, :has("+t+"))").attr("tabindex",-1),Ye("tbody",n).first().find(">tr:not(.jqgfirstrow)").removeAttr("tabindex"),void 0!==n.p.iRow&&void 0!==n.p.iCol&&n.rows[n.p.iRow]&&Ye(n.rows[n.p.iRow].cells[n.p.iCol]).attr("tabindex",0).focus(function(){Ye(this).addClass(s)}).blur(function(){Ye(this).removeClass(s)})}),n.p.iRow=1,n.p.iCol=Ye.jgrid.getFirstVisibleCol(n),n.p.ariaBody=!0,0),c=0,u=!!Ye.jgrid.isFunction(v.customCellAction)&&v.customCellAction,h=!!Ye.jgrid.isFunction(v.beforeDeleteCell)&&v.beforeDeleteCell,g=new Set(v.specialChars),f=!1,m=(n.addEventListener("paste",function(e){f&&(e=(e.clipboardData||window.clipboardData).getData("text"),Ye(n).jqGrid("saveCell",n.p.iRow,n.p.iCol,e),f=!1)}),!!Ye.jgrid.isFunction(v.onKeyCheck)&&v.onKeyCheck);Ye(n).on("keydown",function(e){if((!n.p.navigationDisabled||!0!==n.p.navigationDisabled)&&!e.target.id.startsWith("jqs_"+n.p.id)&&(!m||m.call(n,n.rows[n.p.iRow].id,n.p.iRow,n.p.iCol,e,d))){var t=e.which||e.keyCode,r=e.ctrlKey||17===t;switch(t){case 38:i=d.getNextVisibleCell(0,-1),p=i.row,c=i.col,e.preventDefault();break;case 40:case 13:i=d.getNextVisibleCell(0,1),p=i.row,c=i.col,e.preventDefault();break;case 37:i=d.getNextVisibleCell(-1,0),p=i.row,c=i.col,e.preventDefault();break;case 39:i=d.getNextVisibleCell(1,0),p=i.row,c=i.col,e.preventDefault();break;case 36:p=e.ctrlKey?1:n.p.iRow,c=n.p.frozenColumns?n.p.frozenColCount+1:0,e.preventDefault();break;case 35:p=e.ctrlKey?n.rows.length-1:n.p.iRow,c=n.p.colModel.length-1,e.preventDefault();break;case 33:d.movePage(-1),c=n.p.iCol,p=n.p.iRow,e.preventDefault();break;case 34:d.movePage(1),c=n.p.iCol,(p=n.p.iRow)>n.rows.length-1&&(p=n.rows.length-1,n.p.iRow=n.rows.length-1),e.preventDefault();break;case 9:i=e.shiftKey?d.getNextVisibleCell(-1,0):d.getNextVisibleCell(1,0),p=i.row,c=i.col,e.preventDefault();break;case 113:try{Ye(n).jqGrid("editCell",n.p.iRow,n.p.iCol,!0,e,!1),n.p.F2key=!0}catch(e){}break;case 8:case 46:var i=!0;!0===(i=h?h.call(n,n.rows[n.p.iRow].id,n.p.iRow,n.p.iCol,e):i)&&Ye(n).jqGrid("saveCell",n.p.iRow,n.p.iCol,"");break;case 86:if(r)return f=!0;break;case 90:if(r)return i=!0,(i=Ye.jgrid.isFunction(v.customUndoFunction)?v.customUndoFunction.call(n,n.rows[n.p.iRow].id,n.p.iRow,n.p.iCol,e):i)&&n.p.savedValues&&Ye(n).jqGrid("getCell",n.rows[n.p.iRow].id,n.p.colModel[n.p.iCol].name,!1)===n.p.savedValues.newvalue&&n.p.iRow===n.p.savedValues.indexRow&&Ye(n).jqGrid("saveCell",n.p.iRow,n.p.iCol,n.p.savedValues.oldvalue),!0;break;default:var i=/^[a-z]$/i.test(e.key),o=/^[0-9]$/i.test(e.key),a=!1;return v.addonChars&&(a=v.addonChars.test(e.key)),(i||o||g.has(e.key)||a)&&Ye(n).jqGrid("editCell",n.p.iRow,n.p.iCol,!0,e,!0),void(u&&u.call(n,n.rows[n.p.iRow].id,n.p.iRow,n.p.iCol,e))}setTimeout(function(){Ye(n).jqGrid("focusBodyCell",p,c,l,s)},50)}}),Ye(n).on("jqGridBeforeSelectRow.ariaGridClick",function(){return!1}),Ye(n).on("jqGridCellSelect.ariaGridClick",function(e,t,r,i,o){var a,o=o.target;0<n.p.iRow&&0<=n.p.iCol&&Ye(n.rows[n.p.iRow].cells[n.p.iCol]).attr("tabindex",-1),(Ye(o).is("td")||Ye(o).is("th")||o.id.startsWith("jqs_"+n.p.id))&&(n.p.iCol=o.cellIndex,n.p.savedRow.length&&Ye(n).jqGrid("saveCell",n.p.savedRow[0].id,n.p.savedRow[0].ic),a=Ye(o).closest("tr.jqgrow"),n.p.iRow=a[0].rowIndex,Ye(o).attr("tabindex",0).addClass(s).focus().blur(function(){Ye(this).removeClass(s)}))}).on("jqGridDblClickRow.ariaGridDblClick",function(e,t,r,i,o){Ye(n).jqGrid("editCell",r,i,!0,o,!1),n.p.F2key=!0})})},focusBodyCell:function(n,l,s,d){return this.each(function(){var e,t=this,r=s||Ye.jgrid.getMethod("getStyleUI"),i=d||r(t.p.styleUI+".common","highlight",!0),o=Ye.jgrid.focusableElementsList.join();function a(e){return Ye(o,e)[0]}void 0!==n&&void 0!==l?!isNaN(t.p.iRow)&&!isNaN(t.p.iCol)&&0<=t.p.iCol&&(e=a(t.rows[t.p.iRow].cells[t.p.iCol]),Ye(e||t.rows[t.p.iRow].cells[t.p.iCol]).attr("tabindex",-1)):(n=t.p.iRow,l=t.p.iCol),n=parseInt(n,10),l=parseInt(l,10),0<n&&0<=l&&(e=a(t.rows[n].cells[l]),Ye(e||t.rows[n].cells[l]).attr("tabindex",0).addClass(i).focus().blur(function(){Ye(this).removeClass(i)}),t.p.iRow=n,t.p.iCol=l)})},resetAriaBody:function(){return this.each(function(){var t=this,r=!1,e=(t.p.ariaBody=!1,Ye(t).attr("tabindex","0").off("keydown").off("jqGridBeforeSelectRow.ariaGridClick").off("jqGridCellSelect.ariaGridClick").off("jqGridAfterGridComplete.setAriaGrid"),Ye.jgrid.focusableElementsList.join());Ye("tbody",t).first().find(">tr:not(.jqgfirstrow)>td:not(:hidden, :has("+e+"))").removeAttr("tabindex").off("focus"),Ye("tbody",t).first().find(">tr:not(.jqgfirstrow)").attr("tabindex",-1);try{t.removeEventListener("paste",function(e){r&&(e=(e.clipboardData||window.clipboardData).getData("text"),Ye(t).jqGrid("saveCell",t.p.iRow,t.p.iCol,e),r=!1)},!0)}catch(e){}})},ariaHeaderGrid:function(e){var r=Ye.extend({onHeaderKeyCheck:null},e||{});return this.each(function(){var o=this,e=Ye.jgrid.getMethod("getStyleUI")(o.p.styleUI+".common","highlight",!0),t=Ye("#gbox_"+o.p.id).find(".ui-jqgrid-hbox>table").first(),a=!!Ye.jgrid.isFunction(r.onHeaderKeyCheck)&&r.onHeaderKeyCheck;Ye("tr.ui-jqgrid-labels",t).on("keydown",function(e){var t=o.p.selHeadInd,r=e.which||e.keyCode,i=o.grid.headers.length;if(!a||a.call(o,t,e))switch(r){case 37:if(0<=t-1){for(t--;Ye(o.grid.headers[t].el).is(":hidden")&&0<=t-1&&!(--t<0););0<=t&&(Ye(o.grid.headers[t].el).focus(),Ye(o.grid.headers[o.p.selHeadInd].el).attr("tabindex","-1"),o.p.selHeadInd=t,e.preventDefault())}break;case 39:if(t+1<i){for(t++;Ye(o.grid.headers[t].el).is(":hidden")&&t+1<i&&!(i-1<++t););t<i&&(Ye(o.grid.headers[t].el).focus(),Ye(o.grid.headers[o.p.selHeadInd].el).attr("tabindex","-1"),o.p.selHeadInd=t,e.preventDefault())}break;case 13:Ye(o.grid.headers[t].el).find("div").first().trigger("click"),e.preventDefault();break;default:return}}),Ye("tr.ui-jqgrid-labels>th:not(:hidden)",t).attr("tabindex",-1).focus(function(){Ye(this).addClass(e).attr("tabindex","0")}).blur(function(){Ye(this).removeClass(e)}),o.p.selHeadInd=Ye.jgrid.getFirstVisibleCol(o),Ye(o.grid.headers[o.p.selHeadInd].el).attr("tabindex","0")})},focusHeaderCell:function(e){return this.each(function(){0<=(e=void 0===e?this.p.selHeadInd:e)&&e<this.p.colModel.length&&(Ye(this.grid.headers[this.p.selHeadInd].el).attr("tabindex","-1"),Ye(this.grid.headers[e].el).focus(),this.p.selHeadInd=e)})},resetAriaHeader:function(){return this.each(function(){var e=Ye("#gbox_"+this.p.id).find(".ui-jqgrid-hbox>table").first();Ye("tr.ui-jqgrid-labels",e).off("keydown"),Ye("tr.ui-jqgrid-labels>th:not(:hidden)",e).removeAttr("tabindex").off("focus blur")})},ariaPagerGrid:function(){return this.each(function(){var i=this,e=Ye.jgrid.getMethod("getStyleUI"),t=e(i.p.styleUI+".common","highlight",!0),o="."+e(i.p.styleUI+".common","disabled",!0),a=Ye(".ui-pg-button",i.p.pager),n=a.length;a.attr("tabindex","-1").focus(function(){Ye(this).addClass(t)}).blur(function(){Ye(this).removeClass(t)}),i.p.navIndex=0,setTimeout(function(){var e=a.not(o).first().attr("tabindex","0");i.p.navIndex=e[0]&&e[0].cellIndex?e[0].cellIndex-1:0},100),Ye(i.p.pager).find("table.ui-pager-table tr").first().on("keydown",function(e){var t=e.which||e.keyCode,r=i.p.navIndex;switch(t){case 37:if(0<=r-1){for(r--;Ye(a[r]).is(o)&&0<=r-1&&!(--r<0););0<=r&&(Ye(a[i.p.navIndex]).attr("tabindex","-1"),Ye(a[r]).attr("tabindex","0").focus(),i.p.navIndex=r),e.preventDefault()}break;case 39:if(r+1<n){for(r++;Ye(a[r]).is(o)&&r+1<n+1&&!(n-1<++r););r<n&&(Ye(a[i.p.navIndex]).attr("tabindex","-1"),Ye(a[r]).attr("tabindex","0").focus(),i.p.navIndex=r),e.preventDefault()}break;case 13:Ye(e.originalEvent.srcElement).hasClass("ui-pg-input")||(Ye(a[r]).trigger("click"),e.preventDefault());break;default:return}})})},focusPagerCell:function(r){return this.each(function(){var e=Ye(".ui-pg-button",this.p.pager),t=e.length;0<=(r=void 0===r?this.p.navIndex:r)&&r<t&&(Ye(e[this.p.navIndex]).attr("tabindex","-1"),Ye(e[r]).attr("tabindex","0").focus(),this.p.navIndex=r)})},resetAriaPager:function(){return this.each(function(){Ye(".ui-pg-button",this.p.pager).removeAttr("tabindex").off("focus"),Ye(this.p.pager).find("table.ui-pager-table tr").first().off("keydown")})},setAriaGrid:function(e){var t=Ye.extend({header:!0,body:!0,pager:!0,onEnterCell:null,customCellAction:null,excel:!1},e||{});return this.each(function(){t.header&&Ye(this).jqGrid("ariaHeaderGrid",t),t.body&&(t.excel?Ye(this).jqGrid("excelLikeGrid",t):Ye(this).jqGrid("ariaBodyGrid",t)),t.pager&&Ye(this).jqGrid("ariaPagerGrid")})},resetAriaGrid:function(e){var t=Ye.extend({header:!0,body:!0,pager:!0},e||{});return this.each(function(){t.body&&Ye(this).jqGrid("resetAriaBody"),t.header&&Ye(this).jqGrid("resetAriaHeader"),t.pager&&Ye(this).jqGrid("resetAriaPager")})}}),Ye.jgrid.extend({transposeSetup:function(n,e){var l=[],s=[],d=!1,p=Ye.extend({},e||{});return this.each(function(){var e,t,r=Object.keys(n[p.baseindex]);p.excludeSrcCols.length&&(r=r.filter(function(e){return!p.excludeSrcCols.includes(e)}));for(var i=0;i<r.length;i++){t=0,(e={}).col_name=r[i],d||l.push({name:"col_name"}),t++;for(var o=0;o<n.length;o++){var a=n[o];e[p.nameprefix+t]=a[r[i]],d||l.push({name:p.nameprefix+t,label:p.labelprefix+t}),t++}d=!0,s.push(e)}}),{colModel:l,rows:s}},jqTranspose:function(r,l,s,i){return l=Ye.extend({nameprefix:"col",labelprefix:"value ",baseindex:0,beforeCreateGrid:null,RowAsHeader:0,loadMsg:!1,excludeSrcCols:[]},l||{}),this.each(function(){var n=this,e=s&&s.regional?s.regional:"en";function t(e,t){Array.isArray(e)||(e=[]);var r=jQuery(n).jqGrid("transposeSetup",e,l);if(Ye.jgrid.isFunction(l.beforeCreateGrid)&&l.beforeCreateGrid.call(n,r,e),!1!==t.RowAsHeader&&0<=t.RowAsHeader&&r.rows.length&&t.RowAsHeader<r.rows.length){var i,o=r.rows[t.RowAsHeader],a=0;for(i in o)Object.prototype.hasOwnProperty.call(o,i)&&(r.colModel[a].label=o[i]),a++;r.rows.splice(t.RowAsHeader,1)}e=Ye.jgrid.from.call(n,r.rows);jQuery(n).jqGrid(Ye.extend(!0,{datastr:e.select(),datatype:"jsonstring",colModel:r.colModel,jsonReader:{repeatitems:!1},viewrecords:!0},s||{})),l.loadMsg&&Ye(".loading_pivot").remove()}l.loadMsg&&Ye("<div class='loading_pivot ui-state-default ui-state-active row'>"+Ye.jgrid.getRegional(n,"regional."+e+".defaults.loadtext")+"</div>").insertBefore(n).show(),"string"==typeof r?Ye.ajax(Ye.extend({url:r,dataType:"json",success:function(e){t(Ye.jgrid.getAccessor(e,i&&i.reader?i.reader:"rows"),l)}},i||{})):t(r,l)})}}),Ye.jgrid.extend({setupFrozenRows:function(e){var m=Ye.extend({first:0,last:0,rowids:[],saveFirstLastId:!1,classes:""},e||{});return this.each(function(){if(!(!0===this.p.subGrid||!0===this.p.treeGrid||!0===this.p.cellEdit||this.p.scroll||!0===this.p.frozenColumns||!0===this.p.frozenRows||!0===this.p.grouping||m.first<=0&&m.last<=0&&0===m.rowids.length)){var e,t,r,i=this,o="border-box"===Ye("#"+Ye.jgrid.jqID(i.p.id)).css("box-sizing")?1:0,a="#"+Ye.jgrid.jqID(i.p.id),n="#gview_"+Ye.jgrid.jqID(i.p.id),l=document.getElementById("gbox_"+i.p.id).getBoundingClientRect().top,s=document.getElementById(i.p.id).getBoundingClientRect().top,d=Ye(n).width(),p=[],s=Ye('<div style="position:absolute;left:0px;top:'+(s-l-o)+'px;height:0px;overflow-x:hidden;" class="frozen-rdiv ui-jqgrid-rdiv"></div>');if(Ye(n).append(s),Ye(".frozen-rdiv",n).css("width",d-(Ye.jgrid.scrollbarWidth()+2)),p.push(Ye(".jqgfirstrow",a).clone(!0)),m.rowids&&0<m.rowids.length){for(e=0;e<m.rowids.length;e++)for(t=i.rows.length;t--;)if(i.rows[t].id===m.rowids[e]){p.push(Ye(i.rows[t]).clone(!0)),Ye(i.rows[t]).insertBefore(i.rows[e+1]);break}}else if(0<m.first)for(e=0;e<m.first;e++)p.push(Ye(i.rows[e+1]).clone(!0)),m.saveFirstLastId&&(m.rowids||(m.rowids=[]),m.rowids.push(i.rows[e+1].id));else{if(!(0<m.last))return;for(t=i.rows.length,e=0;e<m.last;e++)p.splice(1,0,Ye(i.rows[t-1]).clone(!0)),m.saveFirstLastId&&(m.rowids||(m.rowids=[]),m.rowids.unshift(i.rows[t-1].id)),Ye(i.rows[t-1]).insertBefore(i.rows[1])}s.css("height","auto");var c=Ye(a).clone(!0);for(c.children("tbody").empty(),t=0,r=p.length;t<r;t++)p[t].addClass(m.classes).appendTo(c);c.appendTo(s);var u=i.p.id+"_fr",l=(Ye(a,s).attr("id",u),u="#"+Ye.jgrid.jqID(u),Ye.jgrid.getMethod("getStyleUI")),o=i.p.styleUI+".common",h=l(o,"highlight",!0),g=l(o,"hover",!0);if(Ye(".frozen-rdiv",n).on("click","tr",function(){i.p.selrow&&Ye(i).jqGrid("resetSelection",i.p.selrow);var e=Ye(this).index();Ye(this).addClass(h).siblings().removeClass(h),i.p.selrow=this.id,Ye(".frozen-rdiv tr").eq(e).addClass(h).siblings().removeClass(h)}),Ye(u).on("click",function(){Ye(".frozen-rdiv tbody").children("tr").each(function(){Ye(this).removeClass(h)})}),Ye(n+" .ui-jqgrid-bdiv").first().on("scroll",function(){var e=this.scrollLeft;Ye(".frozen-rdiv").scrollLeft(e)}),Ye(".frozen-rdiv tr").hover(function(){var e=Ye(this).index();Ye(".frozen-rdiv tr").eq(e).addClass(g)},function(){var e=Ye(this).index();Ye(".frozen-rdiv tr").eq(e).removeClass(g)}),i.p.rownumbers){var f=!1;try{if(Ye(i.rows[0].cells).each(function(e){if(Ye(this).hasClass("jqgrid-rownumber"))return f=e,!1}),!1!==f){for(t=i.rows.length,e=1;e<t;)Ye(i.rows[e].cells[f]).html(e),e++;for(t=Ye(u)[0].rows.length,e=1;e<t;)Ye(u)[0].rows[e].cells[f].innerHTML=e,e++}}catch(e){}}i.grid.frbDiv=s,i.p.frozenRows=!0,i.p.frozenRowsPrm=m}})},destroyFrozenRows:function(e){return this.each(function(){this.grid.frbDiv.remove(),this.p.frozenRows=!1,e&&(this.p.frozenRowsPrm=null)})},setFrozenRows:function(e){return this.each(function(){0<this.p.records&&Ye(this).jqGrid("setupFrozenRows",e),Ye(this).on("jqGridAfterGridComplete.setFrozenRows",function(){this.p.frozenRowsPrm&&!Ye.isEmptyObject(this.p.frozenRowsPrm)?(Ye(this).jqGrid("destroyFrozenRows"),Ye(this).jqGrid("setupFrozenRows",this.p.frozenRowsPrm)):Ye(this).jqGrid("setupFrozenRows",e)}),Ye(this).on("jqGridResizeStop.setFrozenRows",function(){if(this.p.frozenRowsPrm)try{Ye(this).jqGrid("destroyFrozenRows");var e=0<this.p.frozenRowsPrm.last&&!this.p.frozenRowsPrm.saveFirstLastId&&0===this.p.frozenRowsPrm.first;e&&(this.p.frozenRowsPrm.first=this.p.frozenRowsPrm.last),Ye(this).jqGrid("setupFrozenRows",this.p.frozenRowsPrm),e&&(this.p.frozenRowsPrm.first=0)}catch(e){}})})}}),Ye.jgrid.extend({dbInit:function(e){return this.each(function(){"indexeddb"===e&&Ye(this).jqGrid("_initIndexedDB_")})},_initIndexedDB_:function(){this.each(function(){var d=this;indexedDB.databases().then(function(e){var t=indexedDB.open(d.p.dbconfig.dbname);t.onupgradeneeded=e=>{console.info("Database created: "+d.p.dbconfig.dbname)},t.onsuccess=function(e){const t=e.target.result;var r=parseInt(t.version),s=Ye.jgrid.getElemByAttrVal(d.p.colModel,"key",!0);async function i(n){var e=d.p.dbconfig;if("string"==typeof e.dataUrl){try{var l=await(await fetch(e.dataUrl,e.fetchOptions)).json();null!==e.reader&&(l=Ye.jgrid.getAccessor(l,e.reader))}catch(e){return void console.log("Error:"+e)}Ye.jgrid.isFunction(e.beforeInsertData)&&(l=e.beforeInsertData.call(d,l))}else Array.isArray(e.dataUrl)&&(l=e.dataUrl);d.p.dbconfig.dbversion=r+1;e=indexedDB.open(e.dbname,r+1);e.onupgradeneeded=function(e){var t=e.target.result;if(!n){var r=t.createObjectStore(d.p.dbconfig.dbtable,{keyPath:s.name});for(let e=0;e<d.p.colModel.length;e++){var i=d.p.colModel[e];i.name===s.name?r.createIndex(i.name,i.name,{unique:!0}):r.createIndex(i.name,i.name,{unique:!1})}}var o,a=e.target.transaction.objectStore(d.p.dbconfig.dbtable);a.transaction.oncomplete=function(e){},a.transaction.onerror=function(e){Ye.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")};for(o of l)d.p.dbconfig.isKeyInData||(o[s.name]=Math.random().toString(16).slice(2)),a.put(o);d.p.dbconfig.ready_req=!0,d.grid.populate()},e.onerror=e=>{Ye.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")}}if(Ye.isEmptyObject(s))Ye.jgrid.info_dialog("Warning","Missed key: No uniquie key is set in colModel. Creating table fail","Close");else if(t.objectStoreNames.contains(d.p.dbconfig.dbtable))if(d.p.dbconfig.loadIfExists||d.p.dbconfig.deleteIfExists){const o=t.transaction(d.p.dbconfig.dbtable,"readwrite").objectStore(d.p.dbconfig.dbtable),a=o.count();a.onsuccess=()=>{var e;0<a.result?d.p.dbconfig.deleteIfExists?((e=o.clear()).onsuccess=e=>{console.log("All records are cleared"),t.close(),i(!0)},e.onerror=e=>{Ye.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")}):d.p.dbconfig.loadIfExists?(t.close(),i(!0)):(t.close(),d.p.dbconfig.ready_req=!0,d.grid.populate()):(t.close(),i(!0))}}else t.close(),d.p.dbconfig.ready_req=!0,d.grid.populate();else t.close(),i(!1)},t.onerror=e=>{Ye.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")}})})},updateStorageRecord:async function(l,s){let d=this[0],p=d.p.dbconfig,e=d.p.datatype;return new Promise(function(r,a){if(Array.isArray(l)||(l=[l]),s=s||d.p.keyName,l=Ye.jgrid.normalizeDbData.call(d,l,d.p.colModel),"indexeddb"===e){const n=window.indexedDB.open(p.dbname);n.onsuccess=e=>{var t=n.result.transaction(p.dbtable,"readwrite"),i=(t.oncomplete=e=>{r(e),console.log("Transaction completed succefully")},t.onerror=t=>{a(t);try{Ye.jgrid.info_dialog.call("Error",t.target.error,"Close",{styleUI:d.p.styleUI})}catch(e){console.log(t.target.error)}},t.objectStore(p.dbtable));for(let r=0;r<l.length;r++){if(!l[r].hasOwnProperty(s)||""===l[r][s]){t.abort();break}var o=i.openCursor();o.onsuccess=e=>{var t,e=e.target.result;e&&((t=e.value)[s]===l[r][s]?(delete l[r].oper,t=Object.assign(t,l[r]),e.update(t)):e.continue())},o.onerror=e=>{console.log(e.target.error)}}}}})},addStorageRecord:async function(n,l){let s=this[0],d=s.p.dbconfig,e=s.p.datatype;return new Promise(function(i,o){if(Array.isArray(n)||(n=[n]),l=l||s.p.keyName,n=Ye.jgrid.normalizeDbData.call(s,n,s.p.colModel),"indexeddb"===e){const a=window.indexedDB.open(d.dbname);a.onsuccess=e=>{var t=a.result.transaction(d.dbtable,"readwrite"),r=(t.oncomplete=e=>{i(e),console.log("Transaction completed succefully")},t.onerror=t=>{o(t);try{Ye.jgrid.info_dialog.call("Error",t.target.error,"Close",{styleUI:s.p.styleUI})}catch(e){console.log(t.target.error)}},t.objectStore(d.dbtable));for(let e=0;e<n.length;e++)n[e].hasOwnProperty(l)&&""!==n[e][l]||(n[e][l]=Math.random().toString(16).slice(2)),r.add(n[e]).onsuccess=e=>{}}}})},deleteStorageRecord:async function(l,s){let d=this[0],p=d.p.dbconfig,e=d.p.datatype;return new Promise(function(i,o){if(Array.isArray(l)||(l=l.split(",")),s=s||d.p.keyName,"indexeddb"===e){var a=[],t={};for(let e=0;e<l.length;e++)t[s]=l[e],a.push(t);a=Ye.jgrid.normalizeDbData.call(d,a,d.p.colModel);const n=window.indexedDB.open(p.dbname);n.onsuccess=e=>{var t=n.result.transaction(p.dbtable,"readwrite"),r=(t.oncomplete=e=>{i(e),console.log("Transaction completed succefully")},t.onerror=t=>{o(t);try{Ye.jgrid.info_dialog.call("Error",t.target.error,"Close",{styleUI:d.p.styleUI})}catch(e){console.log(t.target.error)}},t.objectStore(p.dbtable));for(let t=0;t<l.length;t++)r.delete(a[t][s]).onsuccess=e=>{console.log("Deleted record: "+l[t])}}}})}})});
//# sourceMappingURL=jquery.jqGrid.min.js.mapjs/grid.frozenrows.js000064400000014606151676727230010707 0ustar00/*jshint eqeqeq:false */
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"./grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {
"use strict";
//module begin
$.jgrid.extend({
	setupFrozenRows : function ( options ){
		var prm = $.extend({
			first : 0,
			last : 0,
			rowids :[],
			saveFirstLastId : false,
			classes : ""
		}, options || {});

		return this.each(function(){
			// restrictions
			if(this.p.subGrid === true ||
				this.p.treeGrid === true ||
				this.p.cellEdit === true ||
				/*$t.p.sortable ||*/ 
				this.p.scroll ||
				this.p.frozenColumns === true ||
				this.p.frozenRows === true||
				this.p.grouping === true)
			{
				return;
			}
			if(prm.first <= 0 && prm.last <= 0 && prm.rowids.length ===0 ) {
				return;
			}


			var $t = this, i, j, len,
				borderbox = $("#"+$.jgrid.jqID($t.p.id)).css("box-sizing") === 'border-box',
				pixelfix = borderbox ? 1 : 0,
				tid = '#'+$.jgrid.jqID($t.p.id),
				tvid ='#gview_'+$.jgrid.jqID($t.p.id),
				//hth = $(".ui-jqgrid-htable", tvid).height(),//Get the height of the column header to set the top value
				hgh = document.getElementById("gbox_"+$t.p.id).getBoundingClientRect().top,
				hth = document.getElementById($t.p.id).getBoundingClientRect().top,
				htw = $(tvid).width(),//Get the width of the content
				frowms = [],//store frozen rows
				fbDiv = $('<div style="position:absolute;left:0px;top:'+(hth-hgh-pixelfix)+'px;height:0px;overflow-x:hidden;" class="frozen-rdiv ui-jqgrid-rdiv"></div>');

			$(tvid).append(fbDiv);
			$('.frozen-rdiv', tvid).css('width',htw-($.jgrid.scrollbarWidth()+2));
			frowms.push($('.jqgfirstrow', tid).clone(true));

			if(prm.rowids && prm.rowids.length > 0 ) {
				for( i =0;i<prm.rowids.length; i++ ) {
					j = $t.rows.length;
					while( j-- ) {
						if($t.rows[j].id === prm.rowids[i]) {
							frowms.push($($t.rows[j]).clone(true));
							$($t.rows[j]).insertBefore($t.rows[i+1]);
							break;
						}
					}
				}
			} else if(prm.first > 0) {
				for(i = 0; i < prm.first; i++) {
					frowms.push($($t.rows[i+1]).clone(true));
					if(prm.saveFirstLastId) {
						if(!prm.rowids) {
							prm.rowids =[];
						}
						prm.rowids.push($t.rows[i+1].id);
					}
				}
			} else if(prm.last > 0) {
				j = $t.rows.length;
				for(i = 0; i < prm.last; i++) {
					frowms.splice(1,0,$($t.rows[j-1]).clone(true));
					if(prm.saveFirstLastId) {
						if(!prm.rowids) {
							prm.rowids =[];
						}
						prm.rowids.unshift($t.rows[j-1].id);
					}
					$($t.rows[j-1]).insertBefore($t.rows[1]);
				}
			} else {
				return;
			}

			fbDiv.css("height", 'auto');
			var out = $(tid).clone(true);//Get the <table><tbody></tbody></table> tag
			out.children('tbody').empty();

			for(j = 0 ,len = frowms.length; j <len; j++){//Loop insert the cloned row into the <tbody></tbody> tag
				frowms[j].addClass(prm.classes).appendTo(out);
			}
			out.appendTo(fbDiv);
			var tfid = $t.p.id +"_fr";
			$(tid, fbDiv).attr("id", tfid);
			tfid = '#'+$.jgrid.jqID(tfid);

			/*
			* Set the events required in freezing
			* */
			var getstyle = $.jgrid.getMethod("getStyleUI"),
			stylemodule = $t.p.styleUI + ".common",
			//disabled = getstyle(stylemodule,'disabled', true),
			highlight = getstyle(stylemodule,'highlight', true),
			hover = getstyle(stylemodule,'hover', true);
			$('.frozen-rdiv', tvid).on('click','tr',function(){//click on the frozen line to add a highlight effect
				if($t.p.selrow) {
					$($t).jqGrid('resetSelection',$t.p.selrow);
				}
				var index = $(this).index();
				$(this).addClass(highlight).siblings().removeClass(highlight);
				$t.p.selrow = this.id;
				$('.frozen-rdiv tr').eq(index).addClass(highlight).siblings().removeClass(highlight);
			});
			$(tfid).on('click',function(){//When the click is a frozen column, the highlighting effect of the frozen column is clear
				$('.frozen-rdiv tbody').children('tr').each(function(){
					$(this).removeClass(highlight);
				});
			});

			var bdiv = $(tvid +" .ui-jqgrid-bdiv").first();
			bdiv.on('scroll', function(){//Set the left and right scroll of the frozen line
				var curX = this.scrollLeft;
				$('.frozen-rdiv').scrollLeft(curX);
			});

			$('.frozen-rdiv tr').hover(//Set the effect of moving the mouse on the frozen line
				function(){
					var index = $(this).index();
					$('.frozen-rdiv tr').eq(index).addClass(hover);
				},
				function(){
					var index = $(this).index();
					$('.frozen-rdiv tr').eq(index).removeClass(hover);
				}
			);
			if($t.p.rownumbers) {
				var find_index = false;
				try {
					$($t.rows[0].cells).each(function(k){
						if( $(this).hasClass('jqgrid-rownumber')) {
							find_index = k;
							return false;
						}
					});
					if(find_index !== false) {
						j = $t.rows.length;
						i=1;
						while (i<j) {
							$($t.rows[i].cells[find_index]).html( i );
							i++;
						}
						j = $(tfid)[0].rows.length;
						i=1;					
						while (i<j) {
							$(tfid)[0].rows[i].cells[find_index].innerHTML =  i ;
							i++;
						}
					}
				} catch(e){}
			}

			$t.grid.frbDiv = fbDiv;
			$t.p.frozenRows = true;
			$t.p.frozenRowsPrm = prm;
		});
	},
	destroyFrozenRows : function(deep) {
		return this.each(function(){
			this.grid.frbDiv.remove();
			this.p.frozenRows = false;
			if(deep) {
				this.p.frozenRowsPrm = null;
			}
		});
	},
	setFrozenRows : function( options ) {
		return this.each(function(){
			
			if( this.p.records > 0 ) {
				$(this).jqGrid("setupFrozenRows", options);
			}

			$(this).on('jqGridAfterGridComplete.setFrozenRows', function () {  
				if(this.p.frozenRowsPrm && !$.isEmptyObject(this.p.frozenRowsPrm)) {
					$(this).jqGrid("destroyFrozenRows");
					$(this).jqGrid("setupFrozenRows", this.p.frozenRowsPrm);
				} else {
					$(this).jqGrid("setupFrozenRows", options);
				}
			});
			$(this).on('jqGridResizeStop.setFrozenRows', function () {
				if(this.p.frozenRowsPrm) {
					try {
						$(this).jqGrid("destroyFrozenRows");
						var test = this.p.frozenRowsPrm.last > 0 && !this.p.frozenRowsPrm.saveFirstLastId && this.p.frozenRowsPrm.first === 0; 
						if(test) {
							this.p.frozenRowsPrm.first = this.p.frozenRowsPrm.last;
						}
						$(this).jqGrid("setupFrozenRows", this.p.frozenRowsPrm);
						if(test) {
							this.p.frozenRowsPrm.first = 0;
						}
					} catch(e){}
				}
			});
		});
	}
});
//module end
}));js/grid.subgrid.js000064400000027474151676727230010137 0ustar00/*jshint eqeqeq:false */
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"./grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {
"use strict";
//module begin
$.jgrid.extend({
setSubGrid : function () {
	return this.each(function (){
		var $t = this, cm, i,
		classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].subgrid,
		suboptions = {
			plusicon : classes.icon_plus,
			minusicon : classes.icon_minus,
			openicon:  classes.icon_open,
			expandOnLoad:  false,
			selectOnExpand : false,
			selectOnCollapse : false,
			reloadOnExpand : true,
			onErrorLoadData : null
		};
		$t.p.subGridOptions = $.extend(suboptions, $t.p.subGridOptions || {});
		$t.p.colNames.unshift("");
		$t.p.colModel.unshift({name:'subgrid',width: $.jgrid.cell_width ?  $t.p.subGridWidth+$t.p.cellLayout : $t.p.subGridWidth,sortable: false,resizable:false,hidedlg:true,search:false,fixed:true});
		cm = $t.p.subGridModel;
		if(cm[0]) {
			cm[0].align = $.extend([],cm[0].align || []);
			for(i=0;i<cm[0].name.length;i++) { cm[0].align[i] = cm[0].align[i] || 'left';}
		}
	});
},
addSubGridCell :function (pos,iRow) {
	var prp='', ic, sid, icb ;
	this.each(function(){
		prp = this.formatCol(pos,iRow);
		sid= this.p.id;
		ic = this.p.subGridOptions.plusicon;
		icb = $.jgrid.styleUI[(this.p.styleUI || 'jQueryUI')].common;
	});
	return "<td role=\"gridcell\" aria-describedby=\""+sid+"_subgrid\" class=\"ui-sgcollapsed sgcollapsed\" "+prp+"><a style='cursor:pointer;' class='ui-sghref'><span class='" + icb.icon_base +" "+ic+"'></span></a></td>";
},
addSubGrid : function( pos, sind ) {
	return this.each(function(){
		var ts = this;
		if (!ts.grid ) { return; }
		var base = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].base,
			common = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].common,
			errors = $.jgrid.getRegional(this, 'errors');
		//-------------------------
		var subGridCell = function(trdiv,cell,pos)
		{
			var tddiv = $("<td align='"+ts.p.subGridModel[0].align[pos]+"'></td>").html(cell);
			$(trdiv).append(tddiv);
		};
		var subGridXml = function(sjxml, sbid){
			var tddiv, i,  sgmap,
			dummy = $("<table class='" + base.rowTable + " ui-common-table'><tbody></tbody></table>"),
			trdiv = $("<tr></tr>");
			for (i = 0; i<ts.p.subGridModel[0].name.length; i++) {
				tddiv = $("<th class='" + base.headerBox+" ui-th-subgrid ui-th-column ui-th-"+ts.p.direction+"'></th>");
				$(tddiv).html(ts.p.subGridModel[0].name[i]);
				$(tddiv).width( ts.p.subGridModel[0].width[i]);
				$(trdiv).append(tddiv);
			}
			$(dummy).append(trdiv);
			if (sjxml){
				sgmap = ts.p.xmlReader.subgrid;
				$(sgmap.root+" "+sgmap.row, sjxml).each( function(){
					trdiv = $("<tr class='" + common.content+" ui-subtblcell'></tr>");
					if(sgmap.repeatitems === true) {
						$(sgmap.cell,this).each( function(i) {
							subGridCell(trdiv, $(this).text() || '&#160;',i);
						});
					} else {
						var f = ts.p.subGridModel[0].mapping || ts.p.subGridModel[0].name;
						if (f) {
							for (i=0;i<f.length;i++) {
								subGridCell(trdiv, $.jgrid.getXmlData(this, f[i]) || '&#160;',i);
							}
						}
					}
					$(dummy).append(trdiv);
				});
			}
			var pID = $(ts.grid.bDiv).find("table").first().attr("id")+"_";
			$("#"+$.jgrid.jqID(pID+sbid)).append(dummy);
			ts.grid.hDiv.loading = false;
			$("#load_"+$.jgrid.jqID(ts.p.id)).hide();
			return false;
		};
		var subGridJson = function(sjxml, sbid){
			var tddiv,result,i,cur, sgmap,j,
			dummy = $("<table class='" + base.rowTable + " ui-common-table'><tbody></tbody></table>"),
			trdiv = $("<tr></tr>");
			for (i = 0; i<ts.p.subGridModel[0].name.length; i++) {
				tddiv = $("<th class='" + base.headerBox + " ui-th-subgrid ui-th-column ui-th-"+ts.p.direction+"'></th>");
				$(tddiv).html(ts.p.subGridModel[0].name[i]);
				$(tddiv).width( ts.p.subGridModel[0].width[i]);
				$(trdiv).append(tddiv);
			}
			$(dummy).append(trdiv);
			if (sjxml){
				sgmap = ts.p.jsonReader.subgrid;
				result = $.jgrid.getAccessor(sjxml, sgmap.root);
				if ( result !== undefined ) {
					for (i=0;i<result.length;i++) {
						cur = result[i];
						trdiv = $("<tr class='" + common.content+" ui-subtblcell'></tr>");
						if(sgmap.repeatitems === true) {
							if(sgmap.cell) { cur=cur[sgmap.cell]; }
							for (j=0;j<cur.length;j++) {
								subGridCell(trdiv, cur[j] || '&#160;',j);
							}
						} else {
							var f = ts.p.subGridModel[0].mapping || ts.p.subGridModel[0].name;
							if(f.length) {
								for (j=0;j<f.length;j++) {
									subGridCell(trdiv, $.jgrid.getAccessor(cur, f[j] ) || '&#160;',j);
								}
							}
						}
						$(dummy).append(trdiv);
					}
				}
			}
			var pID = $(ts.grid.bDiv).find("table").first().attr("id")+"_";
			$("#"+$.jgrid.jqID(pID+sbid)).append(dummy);
			ts.grid.hDiv.loading = false;
			$("#load_"+$.jgrid.jqID(ts.p.id)).hide();
			return false;
		};
		var populatesubgrid = function( rd )
		{
			var sid,dp, i, j;
			sid = $(rd).attr("id");
			dp = {nd_: (new Date().getTime())};
			dp[ts.p.prmNames.subgridid]=sid;
			if(!ts.p.subGridModel[0]) { return false; }
			if(ts.p.subGridModel[0].params) {
				for(j=0; j < ts.p.subGridModel[0].params.length; j++) {
					for(i=0; i<ts.p.colModel.length; i++) {
						if(ts.p.colModel[i].name === ts.p.subGridModel[0].params[j]) {
							dp[ts.p.colModel[i].name]= $("td", rd).eq( i ).text().replace(/\&#160\;/ig,'');
						}
					}
				}
			}
			if(!ts.grid.hDiv.loading) {
				ts.grid.hDiv.loading = true;
				$("#load_"+$.jgrid.jqID(ts.p.id)).show();
				if(!ts.p.subgridtype) { ts.p.subgridtype = ts.p.datatype; }
				if($.jgrid.isFunction(ts.p.subgridtype)) {
					ts.p.subgridtype.call(ts, dp);
				} else {
					ts.p.subgridtype = ts.p.subgridtype.toLowerCase();
				}
				switch(ts.p.subgridtype) {
					case "xml":
					case "json":
					$.ajax($.extend({
						type:ts.p.mtype,
						url: $.jgrid.isFunction(ts.p.subGridUrl) ? ts.p.subGridUrl.call(ts, dp) : ts.p.subGridUrl,
						dataType:ts.p.subgridtype,
						data: $.jgrid.isFunction(ts.p.serializeSubGridData)? ts.p.serializeSubGridData.call(ts, dp) : dp,
						success: function(res, stat, sxml) {
							if(ts.p.subgridtype === "xml") {
								subGridXml(sxml.responseXML, sid);
							} else {
								subGridJson($.jgrid.parse(sxml.responseText), sid);
							}
							sxml=null;
						}, 
						error : function(res, stat, err) {
							if($.jgrid.isFunction(ts.p.subGridOptions.onErrorLoadData) ) {
								ts.p.subGridOptions.onErrorLoadData.call(ts, rowid, res, stat, err);
							} else {
								var rT = res.responseText +" <br/>"+res.statusText;
								try {
									$.jgrid.info_dialog(errors.errcap,'<div class="'+common.error+'">'+ rT +'</div>', edit.bClose, {buttonalign:'right', styleUI : ts.p.styleUI });
								} catch(e) {
									alert(rT);
								}
							}							
						}
					}, $.jgrid.ajaxOptions, ts.p.ajaxSubgridOptions || {}));
					break;
				}
			}
			return false;
		};
		var _id, pID,atd, nhc=0, bfsc, $r;
		$.each(ts.p.colModel,function(){
			if(this.hidden === true || this.name === 'rn' || this.name === 'cb'  || this.name === 'sc' ) {
				nhc++;
			}
		});
		var len = ts.rows.length, i=1,hsret, ishsg = $.jgrid.isFunction(ts.p.isHasSubGrid);
		if( sind !== undefined && sind > 0) {
			i = sind;
			len = sind+1;
		}
		while(i < len) {
			if($(ts.rows[i]).hasClass('jqgrow')) {
				if(ts.p.scroll) {
					$(ts.rows[i].cells[pos]).off('click');
				}
				hsret = null;
				if(ishsg) {
					hsret = ts.p.isHasSubGrid.call(ts, ts.rows[i].id);
				}
				if(hsret === false) {
					ts.rows[i].cells[pos].innerHTML = "";
				} else {
					$(ts.rows[i].cells[pos]).on('click', function() {
						var tr = $(this).parent("tr")[0];
						pID = ts.p.id;
						_id = tr.id;
						$r = $("#" + pID + "_" + _id + "_expandedContent");
						if($(this).hasClass("sgcollapsed")) {
							bfsc = $(ts).triggerHandler("jqGridSubGridBeforeExpand", [pID + "_" + _id, _id]);
							bfsc = (bfsc === false || bfsc === 'stop') ? false : true;
							if(bfsc && $.jgrid.isFunction(ts.p.subGridBeforeExpand)) {
								bfsc = ts.p.subGridBeforeExpand.call(ts, pID+"_"+_id,_id);
							}
							if(bfsc === false) {return false;}

							if(ts.p.subGridOptions.reloadOnExpand === true || ( ts.p.subGridOptions.reloadOnExpand === false && !$r.hasClass('ui-subgrid') ) ) {
								atd = pos >=1 ? "<td colspan='"+pos+"'>&#160;</td>":"";
								$(tr).after( "<tr role='row' id='" + pID + "_" + _id + "_expandedContent" + "' class='ui-subgrid ui-sg-expanded'>"+atd+"<td class='" + common.content +" subgrid-cell'><span class='" + common.icon_base +" "+ts.p.subGridOptions.openicon+"'></span></td><td colspan='"+parseInt(ts.p.colNames.length-1-nhc,10)+"' class='" + common.content +" subgrid-data'><div id="+pID+"_"+_id+" class='tablediv'></div></td></tr>" );
								$(ts).triggerHandler("jqGridSubGridRowExpanded", [pID + "_" + _id, _id]);
								if( $.jgrid.isFunction(ts.p.subGridRowExpanded)) {
									ts.p.subGridRowExpanded.call(ts, pID+"_"+ _id,_id);
								} else {
									populatesubgrid(tr);
								}
							} else {
								$r.show().removeClass("ui-sg-collapsed").addClass("ui-sg-expanded");
							}
							$(this).html("<a style='cursor:pointer;' class='ui-sghref'><span class='" + common.icon_base +" "+ts.p.subGridOptions.minusicon+"'></span></a>").removeClass("sgcollapsed").addClass("sgexpanded");
							if(ts.p.subGridOptions.selectOnExpand) {
								$(ts).jqGrid('setSelection',_id);
							}
						} else if($(this).hasClass("sgexpanded")) {
							bfsc = $(ts).triggerHandler("jqGridSubGridRowColapsed", [pID + "_" + _id, _id]);
							bfsc = (bfsc === false || bfsc === 'stop') ? false : true;
							if( bfsc &&  $.jgrid.isFunction(ts.p.subGridRowColapsed)) {
								bfsc = ts.p.subGridRowColapsed.call(ts, pID+"_"+_id,_id );
							}
							if(bfsc===false) {return false;}
							if(ts.p.subGridOptions.reloadOnExpand === true) {
								$r.remove(".ui-subgrid");
							} else if($r.hasClass('ui-subgrid')) { // incase of dynamic deleting
								$r.hide().addClass("ui-sg-collapsed").removeClass("ui-sg-expanded");
							}
							$(this).html("<a style='cursor:pointer;' class='ui-sghref'><span class='"+common.icon_base +" "+ts.p.subGridOptions.plusicon+"'></span></a>").removeClass("sgexpanded").addClass("sgcollapsed");
							if(ts.p.subGridOptions.selectOnCollapse) {
								$(ts).jqGrid('setSelection',_id);
							}
						}
						return false;
					});
				}
			}
			i++;
		}
		if(ts.p.subGridOptions.expandOnLoad === true) {
			var offset = 0;
			if(ts.p.multiselect) { offset++;}
			if(ts.p.rownumbers) { offset++;}
			$(ts.rows).filter('.jqgrow').each(function(index,row){
				$(row.cells[offset]).click();
			});
		}
		ts.subGridXml = function(xml,sid) {subGridXml(xml,sid);};
		ts.subGridJson = function(json,sid) {subGridJson(json,sid);};
	});
},
expandSubGridRow : function(rowid) {
	return this.each(function () {
		var $t = this;
		if(!$t.grid && !rowid) {return;}
		if($t.p.subGrid===true) {
			var rc = $(this).jqGrid("getInd",rowid,true);
			if(rc) {
				var sgc = $("td.sgcollapsed",rc)[0];
				if(sgc) {
					$(sgc).trigger("click");
				}
			}
		}
	});
},
collapseSubGridRow : function(rowid) {
	return this.each(function () {
		var $t = this;
		if(!$t.grid && !rowid) {return;}
		if($t.p.subGrid===true) {
			var rc = $(this).jqGrid("getInd",rowid,true);
			if(rc) {
				var sgc = $("td.sgexpanded",rc)[0];
				if(sgc) {
					$(sgc).trigger("click");
				}
			}
		}
	});
},
toggleSubGridRow : function(rowid) {
	return this.each(function () {
		var $t = this;
		if(!$t.grid && !rowid) {return;}
		if($t.p.subGrid===true) {
			var rc = $(this).jqGrid("getInd",rowid,true);
			if(rc) {
				var sgc = $("td.sgcollapsed",rc)[0];
				if(sgc) {
					$(sgc).trigger("click");
				} else {
					sgc = $("td.sgexpanded",rc)[0];
					if(sgc) {
						$(sgc).trigger("click");
					}
				}
			}
		}
	});
}
});
//module end
}));
js/grid.import.js000064400000041432151676727230010000 0ustar00/*jshint eqeqeq:false, eqnull:true, devel:true */
/*global jQuery, define, URL */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"./grid.utils",
			"./grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {
"use strict";
//module begin
$.jgrid = $.jgrid || {};
$.extend($.jgrid,{
	saveState : function ( jqGridId, o ) {
		o = $.extend({
			useStorage : true,
			storageType : "localStorage", // localStorage or sessionStorage
			beforeSetItem : null,
			compression: false,
			compressionModule :  'LZString', // object by example gzip, LZString
			compressionMethod : 'compressToUTF16', // string by example zip, compressToUTF16
			debug : false,
			saveData : true
		}, o || {});
		if(!jqGridId) { return; }
		var gridstate = "", data = "", ret, $t = $("#"+jqGridId)[0], tmp;
		// to use navigator set storeNavOptions to true in grid options
		if(!$t.grid) { return;}
		tmp = $($t).data('inlineNav');
		if(tmp && $t.p.inlineNav) {
			$($t).jqGrid('setGridParam',{_iN: tmp});
		}
		tmp = $($t).data('filterToolbar');
		if(tmp && $t.p.filterToolbar) {
			$($t).jqGrid('setGridParam',{_fT: tmp});
		}
		gridstate  =  $($t).jqGrid('jqGridExport', { exptype : "jsonstring", ident:"", root:"", data : o.saveData });
		data = '';
		if( o.saveData ) {
			data = $($t.grid.bDiv).find(".ui-jqgrid-btable tbody").first().html();
			var firstrow  = data.indexOf("</tr>");
			data = data.slice(firstrow + 5);
		}
		if($.jgrid.isFunction(o.beforeSetItem)) {
			ret = o.beforeSetItem.call($t, gridstate);
			if(ret != null) {
				gridstate = ret;
			}
		}
		if(o.debug) {
			$("#gbox_tree").prepend('<a id="link_save" target="_blank" download="jqGrid_dump.txt">Click to save Dump Data</a>');
			var temp = [], file, properties = {}, url;
			temp.push("Grid Options\n");
			temp.push(gridstate);
			temp.push("\n");
			temp.push("GridData\n");
			temp.push(data);
			properties.type = 'plain/text;charset=utf-8'; // Specify the file's mime-type.
			try {
				file = new File(temp, "jqGrid_dump.txt", properties);
			} catch (e) {
				file = new Blob(temp, properties);
			}
			url = URL.createObjectURL(file);
			$("#link_save").attr("href",url).on('click',function(){
				$(this).remove();
			});
		}
		if(o.compression) {
			if(o.compressionModule) {
				try {
					ret = window[o.compressionModule][o.compressionMethod](gridstate);
					if(ret != null) {
						gridstate = ret;
						data = window[o.compressionModule][o.compressionMethod](data);
					}
				} catch (e) {
					// can not execute a compression.
				}
			}
		}
		if(o.useStorage && $.jgrid.isLocalStorage()) {
			try {
				window[o.storageType].setItem("jqGrid"+$t.p.id, gridstate);
				window[o.storageType].setItem("jqGrid"+$t.p.id+"_data", data);
			} catch (e) {
				if(e.code === 22) { // chrome is 21
					// just for now. we should make some additionla changes and eventually clear some local items
					alert("Local storage limit is over!");
				}
			}
		}
		return gridstate;
	},
	loadState : function (jqGridId, gridstring, o) {
		o = $.extend({
			useStorage : true,
			storageType : "localStorage",
			clearAfterLoad: false,  // clears the jqGrid localStorage items aftre load
			beforeSetGrid : null,
			afterSetGrid : null,
			decompression: false,
			decompressionModule :  'LZString', // object by example gzip, LZString
			decompressionMethod : 'decompressFromUTF16', // string by example unzip, decompressFromUTF16
			restoreData : true
		}, o || {});
		if(!jqGridId) { return; }
		var ret, tmp, $t = $("#"+jqGridId)[0], data, iN, fT;
		if(o.useStorage) {
			try {
				gridstring = window[o.storageType].getItem("jqGrid"+$t.id);
				data = window[o.storageType].getItem("jqGrid"+$t.id+"_data");
			} catch (e) {
				// can not get data
			}
		}
		if(!gridstring) { return; }
		if(o.decompression) {
			if(o.decompressionModule) {
			try {
					ret = window[o.decompressionModule][o.decompressionMethod]( gridstring );
					if(ret != null ) {
						gridstring = ret;
						data = window[o.decompressionModule][o.decompressionMethod]( data );
					}
				} catch (e) {
					// decompression can not be done
				}
			}
		}
		ret = $.jgrid.parseFunc( gridstring );
		if( ret && $.jgrid.type(ret) === 'object') {
			if($t.grid) {
				$.jgrid.gridUnload( jqGridId );
			}
			if($.jgrid.isFunction(o.beforeSetGrid)) {
				tmp = o.beforeSetGrid( ret );
				if(tmp && $.jgrid.type(tmp) === 'object') {
					ret = tmp;
				}
			}
			// some preparings
			var retfunc = function( param ) { var p; p = param; return p;},
			prm = {
				"reccount" : ret.reccount,
				"records" : ret.records,
				"lastpage" : ret.lastpage,
				"shrinkToFit" : retfunc( ret.shrinkToFit),
				"data": retfunc(ret.data),
				"datatype" : retfunc(ret.datatype),
				"grouping" : retfunc(ret.grouping)
			};
			ret.shrinkToFit = false;
			ret.data = [];
			ret.datatype = 'local';
			ret.grouping = false;
			//ret.navGrid = false;

			if(ret.inlineNav) {
				iN = retfunc( ret._iN );
				ret._iN = null; delete ret._iN;
			}
			if(ret.filterToolbar) {
				fT = retfunc( ret._fT );
				ret._fT = null; delete ret._fT;
			}
			var grid = $("#"+jqGridId).jqGrid( ret );
			grid.jqGrid('delRowData','norecs');
			if( o.restoreData && $.jgrid.trim( data ) !== '') {
				grid.append( data );
			}
			grid.jqGrid( 'setGridParam', prm);
			if(ret.storeNavOptions && ret.navGrid) {
				// set to false so that nav grid can be run
				grid[0].p.navGrid = false;
				grid.jqGrid('navGrid', ret.pager, ret.navOptions, ret.editOptions, ret.addOptions, ret.delOptions, ret.searchOptions, ret.viewOptions);
				if(ret.navButtons && ret.navButtons.length) {
					for(var b = 0; b < ret.navButtons.length; b++) {
						if( 'sepclass'  in ret.navButtons[b][1]) {
							grid.jqGrid('navSeparatorAdd', ret.navButtons[b][0], ret.navButtons[b][1]);
						} else {
							grid.jqGrid('navButtonAdd', ret.navButtons[b][0], ret.navButtons[b][1]);
						}
					}
				}
			}
			// refresh index
			grid[0].refreshIndex();
			// subgrid
			if(ret.subGrid) {
				var ms = ret.multiselect === 1 ? 1 : 0,
					rn = ret.rownumbers === true ? 1 :0;
				grid.jqGrid('addSubGrid', ms + rn);
				// reopen the sugrid in order to maintain the subgrid state.
				// currently only one level is supported
				// todo : supposrt for unlimited  levels
				$.each(grid[0].rows, function(i, srow){
					if( $(srow).hasClass('ui-sg-expanded') ) {
						// reopen the subgrid
						$(grid[0].rows[i-1]).find('td.sgexpanded').click().click();
					}
				});
			}
			// treegrid
			if(ret.treeGrid) {
				var i = 1, len = grid[0].rows.length,
				expCol = ret.expColInd,
				isLeaf = ret.treeReader.leaf_field,
				expanded = ret.treeReader.expanded_field;
				// optimization of code needed here
				while(i<len) {
					$(grid[0].rows[i].cells[expCol])
						.find("div.treeclick")
						.on("click",function(e){
							var target = e.target || e.srcElement,
							ind2 =$.jgrid.stripPref(ret.idPrefix,$(target,grid[0].rows).closest("tr.jqgrow")[0].id),
							pos = grid[0].p._index[ind2];
							if(!grid[0].p.data[pos][isLeaf]){
								if(grid[0].p.data[pos][expanded]){
									grid.jqGrid("collapseRow",grid[0].p.data[pos]);
									grid.jqGrid("collapseNode",grid[0].p.data[pos]);
								} else {
									grid.jqGrid("expandRow",grid[0].p.data[pos]);
									grid.jqGrid("expandNode",grid[0].p.data[pos]);
								}
							}
							return false;
						});
					if(ret.ExpandColClick === true) {
						$(grid[0].rows[i].cells[expCol])
							.find("span.cell-wrapper")
							.css("cursor","pointer")
							.on("click",function(e) {
								var target = e.target || e.srcElement,
								ind2 =$.jgrid.stripPref(ret.idPrefix,$(target,grid[0].rows).closest("tr.jqgrow")[0].id),
								pos = grid[0].p._index[ind2];
								if(!grid[0].p.data[pos][isLeaf]){
									if(grid[0].p.data[pos][expanded]){
										grid.jqGrid("collapseRow", grid[0].p.data[pos]);
										grid.jqGrid("collapseNode", grid[0].p.data[pos]);
									} else {
										grid.jqGrid("expandRow", grid[0].p.data[pos]);
										grid.jqGrid("expandNode", grid[0].p.data[pos]);
									}
								}
								grid.jqGrid("setSelection",ind2);
								return false;
						});
					}
					i++;
				}
			}
			// multiselect
			if(ret.multiselect) {
				$.each(ret.selarrrow, function(){
					$("#jqg_" + jqGridId + "_"+this)[ret.useProp ? 'prop': 'attr']("checked", "checked");
				});
			}
			// grouping
			if(grid.jqGrid('isGroupHeaderOn')) {
				grid.jqGrid('refreshGroupHeaders');
			}
			// searchcol
			if(ret.searchCols) {
				for(var key in ret._results) {
					if(ret._results.hasOwnProperty(key)) {
						$("#jqs_" + jqGridId + "_"+key).val(ret._results[key].v);
					}
				}
			}
			// pivotgrid
			// 
			// inline navigator
			if(ret.inlineNav && iN) {
				grid.jqGrid('setGridParam', { inlineNav:false });
				grid.jqGrid('inlineNav', ret.pager, iN);
			}
			// toolbar filter
			if(ret.filterToolbar && fT) {
				grid.jqGrid('setGridParam', { filterToolbar:false });
				fT.restoreFromFilters = true;
				grid.jqGrid('filterToolbar', fT);
			}
			// finally frozenColums
			if( ret.frozenColumns ) {
				grid.jqGrid('setFrozenColumns');
			}
			grid[0].updatepager(true, true);

			if($.jgrid.isFunction(o.afterSetGrid)) {
				o.afterSetGrid( grid );
			}
			if(o.clearAfterLoad) {
				window[o.storageType].removeItem("jqGrid"+$t.id);
				window[o.storageType].removeItem("jqGrid"+$t.id + "_data");
			}
		} else {
			alert("can not convert to object");
		}
	},
	isGridInStorage : function ( jqGridId, options ) {
		var o = {
			storageType: "localStorage"
		};
		o =  $.extend(o , options || {});
		var ret, gridstring, data;
		try {
			gridstring = window[o.storageType].getItem("jqGrid"+jqGridId);
			data = window[o.storageType].getItem("jqGrid" + jqGridId + "_data");
			ret = gridstring != null && data != null && typeof gridstring === "string" && typeof data === "string" ;
		} catch (e) {
			ret = false;
		}
		return ret;
	},
	setRegional : function( jqGridId , options) {
		var o = {
			storageType: "sessionStorage"
		};
		o =  $.extend(o , options || {});

		if( !o.regional ) {
			return;
		}

		$.jgrid.saveState( jqGridId, o );

		o.beforeSetGrid = function(params) {
			params.regional = o.regional;
			params.force_regional = true;
			return params;
		};

		$.jgrid.loadState( jqGridId, null, o);
		// check for formatter actions
		var grid = $("#"+jqGridId)[0],
		model = $(grid).jqGrid('getGridParam','colModel'), i=-1, nav = $.jgrid.getRegional(grid, 'nav');
		$.each(model,function(k){
			if(this.formatter && this.formatter === 'actions') {
				i = k;
				return false;
			}
		});
		if(i !== -1 && nav) {
			$("#"+jqGridId + " tbody tr").each(function(){
				var td = this.cells[i];
				$(td).find(".ui-inline-edit").attr("title",nav.edittitle);
				$(td).find(".ui-inline-del").attr("title",nav.deltitle);
				$(td).find(".ui-inline-save").attr("title",nav.savetitle);
				$(td).find(".ui-inline-cancel").attr("title",nav.canceltitle);
			});
		}
		try {
			window[o.storageType].removeItem("jqGrid"+grid.id);
			window[o.storageType].removeItem("jqGrid"+grid.id+"_data");
		} catch (e) {}
	},
	jqGridImport : function(jqGridId, o) {
		o = $.extend({
			imptype : "xml", // xml, json, xmlstring, jsonstring
			impstring: "",
			impurl: "",
			mtype: "GET",
			impData : {},
			xmlGrid :{
				config : "root>grid",
				data: "root>rows"
			},
			jsonGrid :{
				config : "grid",
				data: "data"
			},
			ajaxOptions :{}
		}, o || {});
		var $t = (jqGridId.indexOf("#") === 0 ? "": "#") + $.jgrid.jqID(jqGridId);
		var xmlConvert = function (xml,o) {
			var cnfg = $(o.xmlGrid.config,xml)[0];
			var xmldata = $(o.xmlGrid.data,xml)[0], jstr, jstr1, key;
			if($.grid.xmlToJSON ) {
				jstr = $.jgrid.xmlToJSON( cnfg );
				//jstr = $.jgrid.parse(jstr);
				for(key in jstr) {
					if(jstr.hasOwnProperty(key)) {
						jstr1=jstr[key];
					}
				}
				if(xmldata) {
				// save the datatype
					var svdatatype = jstr.grid.datatype;
					jstr.grid.datatype = 'xmlstring';
					jstr.grid.datastr = xml;
					$($t).jqGrid( jstr1 ).jqGrid("setGridParam",{datatype:svdatatype});
				} else {
					setTimeout(function() { $($t).jqGrid( jstr1 ); },0);
				}
			} else {
				alert("xml2json or parse are not present");
			}
		};
		var jsonConvert = function (jsonstr,o){
			if (jsonstr && typeof jsonstr === 'string') {
				var json = $.jgrid.parseFunc(jsonstr);
				var gprm = json[o.jsonGrid.config];
				var jdata = json[o.jsonGrid.data];
				if(jdata) {
					var svdatatype = gprm.datatype;
					gprm.datatype = 'jsonstring';
					gprm.datastr = jdata;
					$($t).jqGrid( gprm ).jqGrid("setGridParam",{datatype:svdatatype});
				} else {
					$($t).jqGrid( gprm );
				}
			}
		};
		switch (o.imptype){
			case 'xml':
				$.ajax($.extend({
					url:o.impurl,
					type:o.mtype,
					data: o.impData,
					dataType:"xml",
					complete: function(xml,stat) {
						if(stat === 'success') {
							xmlConvert(xml.responseXML,o);
							$($t).triggerHandler("jqGridImportComplete", [xml, o]);
							if($.jgrid.isFunction(o.importComplete)) {
								o.importComplete(xml);
							}
						}
						xml=null;
					}
				}, o.ajaxOptions));
				break;
			case 'xmlstring' :
				// we need to make just the conversion and use the same code as xml
				if(o.impstring && typeof o.impstring === 'string') {
					var xmld = $.parseXML(o.impstring);
					if(xmld) {
						xmlConvert(xmld,o);
						$($t).triggerHandler("jqGridImportComplete", [xmld, o]);
						if($.jgrid.isFunction(o.importComplete)) {
							o.importComplete(xmld);
						}
					}
				}
				break;
			case 'json':
				$.ajax($.extend({
					url:o.impurl,
					type:o.mtype,
					data: o.impData,
					dataType:"json",
					complete: function(json) {
						try {
							jsonConvert(json.responseText,o );
							$($t).triggerHandler("jqGridImportComplete", [json, o]);
							if($.jgrid.isFunction(o.importComplete)) {
								o.importComplete(json);
							}
						} catch (ee){}
						json=null;
					}
				}, o.ajaxOptions ));
				break;
			case 'jsonstring' :
				if(o.impstring && typeof o.impstring === 'string') {
					jsonConvert(o.impstring,o );
					$($t).triggerHandler("jqGridImportComplete", [o.impstring, o]);
					if($.jgrid.isFunction(o.importComplete)) {
						o.importComplete(o.impstring);
					}
				}
				break;
		}
	}
});
	$.jgrid.extend({
		jqGridExport : function(o) {
			o = $.extend({
				exptype : "xmlstring",
				root: "grid",
				ident: "\t",
				addOptions : {},
				data : true
			}, o || {});
			var ret = null;
			this.each(function () {
				if(!this.grid) { return;}
				var gprm = $.extend(true, {}, $(this).jqGrid("getGridParam"), o.addOptions);
				// we need to check for:
				// 1.multiselect, 2.subgrid  3. treegrid and remove the unneded columns from colNames
				if(gprm.rownumbers) {
					gprm.colNames.splice(0,1);
					gprm.colModel.splice(0,1);
				}
				if(gprm.multiselect) {
					gprm.colNames.splice(0,1);
					gprm.colModel.splice(0,1);
				}
				if(gprm.searchCols) {
					gprm.colNames.splice(0,1);
					gprm.colModel.splice(0,1);
				}
				if(gprm.subGrid) {
					gprm.colNames.splice(0,1);
					gprm.colModel.splice(0,1);
				}
				gprm.knv = null;
				if(!o.data) {
					gprm.data = [];
					gprm._index = {};
				}
				switch (o.exptype) {
					case 'xmlstring' :
						ret = "<"+o.root+">"+ $.jgrid.jsonToXML( gprm, {xmlDecl:""} )+"</"+o.root+">";
						break;
					case 'jsonstring' :
						ret =  $.jgrid.stringify( gprm );
						if(o.root) { ret = "{"+ o.root +":"+ret+"}"; }
						break;
				}
			});
			return ret;
		},
		excelExport : function(o) {
			o = $.extend({
				exptype : "remote",
				url : null,
				oper: "oper",
				tag: "excel",
				beforeExport : null,
				exporthidden : false,
				exportgrouping: false,
				exportOptions : {},
				method : 'GET'
			}, o || {});
			return this.each(function(){
				if(!this.grid) { return;}
				var url;
				if(o.exptype === "remote") {
					var pdata = $.extend({},this.p.postData), expg;
					pdata[o.oper] = o.tag;
					if($.jgrid.isFunction(o.beforeExport)) {
						var result = o.beforeExport.call(this, pdata );
						if( $.isPlainObject( result ) ) {
							pdata = result;
						}
					}
					if(o.exporthidden) {
						var cm = this.p.colModel, i, len = cm.length, newm=[];
						for(i=0; i< len; i++) {
							if(cm[i].hidden === undefined) { cm[i].hidden = false; }
							newm.push({name:cm[i].name, hidden:cm[i].hidden});
						}
						var newm1 = JSON.stringify( newm );
						if(typeof newm1 === 'string' ) {
							pdata.colModel = newm1;
						}
					}
					if(o.exportgrouping) {
						expg = JSON.stringify( this.p.groupingView );
						if(typeof expg === 'string' ) {
							pdata.groupingView = expg;
						}
					}
					try {
						$.jgrid.postForm(o.url, pdata, o.method);
					} catch (e) {
						var params = jQuery.param(pdata);
						if(o.url.indexOf("?") !== -1) { url = o.url+"&"+params; }
						else { url = o.url+"?"+params; }
						window.location = url;
					}
				}
			});
		}
    });
//module end
}));
js/grid.base.js000064400001060442151676727230007403 0ustar00/*jshint eqeqeq:false */
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {
"use strict";
//module begin
$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("defaults")) {
	$.jgrid.defaults = {};
}
$.extend($.jgrid,{
	version : "5.8.7",
	isNull : function( p, strict_eq) {
		if(strict_eq && strict_eq === true) {
			return p === null;
		} else {
			return p == null;
		}
	},
	trim : function (x) {
		if(typeof x === "string") {
			return x.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
		} else {
			return x;
		}
	},
	isFunction : function (x){
		return typeof x === 'function';
	},
	type : function (obj, fullClass) {
		// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof
		if (fullClass) {
			return (obj === null) ? '[object Null]' : Object.prototype.toString.call(obj);
		}
		if (obj == null) { return (obj + '').toLowerCase(); } // implicit toString() conversion
		var deepType = Object.prototype.toString.call(obj).slice(8,-1).toLowerCase();
		if (deepType === 'generatorfunction') { return 'function'; }
		return deepType.match(/^(array|bigint|date|error|function|generator|regexp|symbol)$/) ? deepType :
			(typeof obj === 'object' || typeof obj === 'function') ? 'object' : typeof obj;
	},	
	floatNum : function(val, defval) {
		if( defval === undefined ) {
			defval = 0;
		}
		val = parseFloat(val);
		return !isNaN(val) ?  val : defval;
	},
	htmlDecode : function(value){
		if(value && (value==='&nbsp;' || value==='&#160;' || (value.length===1 && value.charCodeAt(0)===160))) { return "";}
		return !value ? value : String(value).replace(/&gt;/g, ">").replace(/&lt;/g, "<").replace(/&quot;/g, '"').replace(/&amp;/g, "&");
	},
	htmlEncode : function (value){
		return !value ? value : String(value).replace(/&/g, "&amp;").replace(/\"/g, "&quot;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
	},
	template : function(format){ //jqgformat
		var args = $.makeArray(arguments).slice(1), j, al = args.length;
		if( $.jgrid.isNull(format) ) { 
			format = ""; 
		}
		return format.replace(/\{([\w\-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g, function(m,i){
			if(!isNaN(parseInt(i,10))) {
				return args[parseInt(i,10)];
			}
			for(j=0; j < al;j++) {
				if(Array.isArray(args[j])) {
					var nmarr = args[ j ],
					k = nmarr.length;
					while(k--) {
						if(i===nmarr[k].nm) {
							return nmarr[k].v;
						}
					}
				} else if(typeof args[j] === 'object' && args[j][i]) {
					return $.jgrid.isFunction(args[j][i]) ? args[j][i]() : args[j][i];
				}
			}
		});
	},
	msie : function () {
		return $.jgrid.msiever() > 0;
	},
	msiever : function () {
		var rv =0,
		sAgent = window.navigator.userAgent,
		Idx = sAgent.indexOf("MSIE");

		if (Idx > 0)  {
			rv = parseInt(sAgent.substring(Idx+ 5, sAgent.indexOf(".", Idx)));
		} else if ( !!navigator.userAgent.match(/Trident\/7\./) ) {
			rv = 11;
		}
		return rv;
	},
	getCellIndex : function (cell) {
		var c = $(cell);
		if (c.is('tr')) { return -1; }
		c = (!c.is('td') && !c.is('th') ? c.closest("td,th") : c)[0];
		if ($.jgrid.msie()) { return $.inArray(c, c.parentNode.cells); }
		return c.cellIndex;
	},
	stripHtml : function(v) {
		v = String(v);
		var regexp = /<("[^"]*"|'[^']*'|[^'">])*>/gi;
		if (v) {
			v = v.replace(regexp,"");
			return (v && v !== '&nbsp;' && v !== '&#160;') ? v.replace(/\"/g,"'") : "";
		}
		return v;
	},
	stripPref : function (pref, id) {
		var obj = $.jgrid.type( pref );
		if( obj === "string" || obj === "number") {
			pref =  String(pref);
			id = pref !== "" ? String(id).replace(String(pref), "") : id;
		}
		return id;
	},
	stripScript : function( v ) {
		return v.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, " ");
	},
	useJSON : true,
	runCode : function (obj){	
		return Function('"use strict";return (' + obj + ')')();
	},
	parse : function(jsonString) {
		var js = jsonString;
		if (js.slice(0,9) === "while(1);") { js = js.slice(9); }
		if (js.slice(0,2) === "/*") { js = js.slice(2,js.length-2); }
		if(!js) { js = "{}"; }
		return ($.jgrid.useJSON===true && typeof JSON === 'object' && typeof JSON.parse === 'function') ?
			JSON.parse(js) :
			$.jgrid.runCode( js );
			//eval('(' + js + ')');
	},
	dateToOADate :function  (date) {
		// Add 1462 in 1904 system (apple)
		var temp = new Date(date);
		// Set temp to start of day and get whole days between dates,
		var days = Math.round((temp.setHours(0,0,0,0) - new Date(1899, 11, 30)) / 8.64e7);
		// Get decimal part of day, OADate always assumes 24 hours in day
		var partDay = (Math.abs((date - temp) % 8.64e7) / 8.64e7).toFixed(10);
		return days + partDay.slice(1);
	},
	parseDate : function(format, date, newformat, opts) {
		var	token = /\\.|[dDjlNSwzWFmMntLoYyaABgGhHisueIOPTZcrU]/g,
		timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,
		timezoneClip = /[^-+\dA-Z]/g,
		msDateRegExp = new RegExp("^\/Date\\((([-+])?[0-9]+)(([-+])([0-9]{2})([0-9]{2}))?\\)\/$"),
		msMatch = ((typeof date === 'string') ? date.match(msDateRegExp): null),
		pad = function (value, length) {
			value = String(value);
			length = parseInt(length,10) || 2;
			while (value.length < length)  { value = '0' + value; }
			return value;
		},
		insStr = function( value, pos, ch) {
			value = String(value);
			return value.slice(0, pos) + ch + value.slice(pos);
		},
		ts = {m : 1, d : 1, y : 1970, h : 0, i : 0, s : 0, u:0},
		timestamp=0, dM, k,hl,
		h12to24 = function(ampm, h){
			if (ampm === 0){ if (h === 12) { h = 0;} }
			else { if (h !== 12) { h += 12; } }
			return h;
		},
		offset =0;
		if(opts === undefined) {
			opts = $.jgrid.getRegional(this, "formatter.date");//$.jgrid.formatter.date;
		}
		// old lang files
		if(opts === undefined) {
			opts = {};
		}
		if(opts.parseRe === undefined ) {
			opts.parseRe = /[#%\\\/:_;.,\t\s-]/;
		}
		if(opts.AmPm === undefined ) {
			opts.AmPm = ["am","pm","AM","PM"];
		}
		if( opts.masks && opts.masks.hasOwnProperty(format) ) { format = opts.masks[format]; }
		if(date && !$.jgrid.isNull( date ) ) {
			if( !isNaN( date - 0 ) && String(format).toLowerCase() === "u") {
				//Unix timestamp
				timestamp = new Date( parseFloat(date)*1000 );
				opts.validate = false;
			} else if(date.constructor === Date) {
				timestamp = date;
				opts.validate = false;
			} else if( msMatch !== null ) {
				// Microsoft date format support
				timestamp = new Date(parseInt(msMatch[1], 10));
				if (msMatch[3]) {
					offset = Number(msMatch[5]) * 60 + Number(msMatch[6]);
					offset *= ((msMatch[4] === '-') ? 1 : -1);
					offset -= timestamp.getTimezoneOffset();
					timestamp.setTime(Number(Number(timestamp) + (offset * 60 * 1000)));
				}
				opts.validate = false;
			} else {
				//Support ISO8601Long that have Z at the end to indicate UTC timezone
				if(opts.srcformat === 'ISO8601Long' && date.charAt(date.length - 1) === 'Z') {
					offset -= (new Date()).getTimezoneOffset();
				}
				date = String(date).replace(/\T/g,"#").replace(/\t/,"%").split(opts.parseRe);
				format = format.replace(/\T/g,"#").replace(/\t/,"%").split(opts.parseRe);
				// parsing for month names
				for(k=0,hl=format.length;k<hl;k++){
					switch ( format[k] ) {
						case 'M':
							dM = $.inArray(date[k],opts.monthNames);
							if(dM !== -1 && dM < 12){date[k] = dM+1; ts.m = date[k];}
							break;
						case 'F':
							dM = $.inArray(date[k],opts.monthNames,12);
							if(dM !== -1 && dM > 11){date[k] = dM+1-12; ts.m = date[k];}
							break;
						case 'n':
							format[k] = 'm';
							break;
						case 'j':
							format[k] = 'd';
							break;
						case 'a':
							dM = $.inArray(date[k],opts.AmPm);
							if(dM !== -1 && dM < 2 && date[k] === opts.AmPm[dM]){
								date[k] = dM;
								ts.h = h12to24(date[k], ts.h);
							}
							break;
						case 'A':
							dM = $.inArray(date[k],opts.AmPm);
							if(dM !== -1 && dM > 1 && date[k] === opts.AmPm[dM]){
								date[k] = dM-2;
								ts.h = h12to24(date[k], ts.h);
							}
							break;
						case 'g':
							ts.h = parseInt(date[k], 10);
							break;
					}
					if(date[k] !== undefined) {
						ts[format[k].toLowerCase()] = parseInt(date[k],10);
					}
				}
				if(ts.f) {ts.m = ts.f;}
				if( ts.m === 0 && ts.y === 0 && ts.d === 0) {
					return "&#160;" ;
				}
				ts.m = parseInt(ts.m,10)-1;
				var ty = ts.y;
				if (ty >= 70 && ty <= 99) {ts.y = 1900+ts.y;}
				else if (ty >=0 && ty <=69) {ts.y= 2000+ts.y;}
				timestamp = new Date(ts.y, ts.m, ts.d, ts.h, ts.i, ts.s, ts.u);
				//Apply offset to show date as local time.
				if(offset !== 0) {
					timestamp.setTime(Number(Number(timestamp) + (offset * 60 * 1000)));
				}
			}
		} else {
			timestamp = new Date(ts.y, ts.m, ts.d, ts.h, ts.i, ts.s, ts.u);
		}
		if(opts && opts.validate === true ) { // validation
			var valid_date =  new Date(ts.y, (+ts.m), ts.d, ts.h, ts.i);
			return (Boolean(+valid_date) && valid_date.getDate() === ts.d && valid_date.getHours() === ts.h && valid_date.getMinutes() === ts.i);
		}
		if(opts.userLocalTime && offset === 0) {
			offset -= (new Date()).getTimezoneOffset();
			if( offset !== 0 ) {
				timestamp.setTime(Number(Number(timestamp) + (offset * 60 * 1000)));
			}
		}
		if( newformat === undefined ) {
			return timestamp;
		}
		if( opts.masks && opts.masks.hasOwnProperty(newformat) )  {
			newformat = opts.masks[newformat];
		} else if ( !newformat ) {
			newformat = 'Y-m-d';
		}
		var
			G = timestamp.getHours(),
			i = timestamp.getMinutes(),
			j = timestamp.getDate(),
			n = timestamp.getMonth() + 1,
			o = timestamp.getTimezoneOffset(),
			s = timestamp.getSeconds(),
			u = timestamp.getMilliseconds(),
			w = timestamp.getDay(),
			Y = timestamp.getFullYear(),
			N = (w + 6) % 7 + 1,
			z = (new Date(Y, n - 1, j) - new Date(Y, 0, 1)) / 86400000,
			flags = {
				// Day
				d: pad(j),
				D: opts.dayNames[w],
				j: j,
				l: opts.dayNames[w + 7],
				N: N,
				S: opts.S(j),
				//j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th',
				w: w,
				z: z,
				// Week
				W: N < 5 ? Math.floor((z + N - 1) / 7) + 1 : Math.floor((z + N - 1) / 7) || ((new Date(Y - 1, 0, 1).getDay() + 6) % 7 < 4 ? 53 : 52),
				// Month
				F: opts.monthNames[n - 1 + 12],
				m: pad(n),
				M: opts.monthNames[n - 1],
				n: n,
				t: '?',
				// Year
				L: '?',
				o: '?',
				Y: Y,
				y: String(Y).substring(2),
				// Time
				a: G < 12 ? opts.AmPm[0] : opts.AmPm[1],
				A: G < 12 ? opts.AmPm[2] : opts.AmPm[3],
				B: '?',
				g: G % 12 || 12,
				G: G,
				h: pad(G % 12 || 12),
				H: pad(G),
				i: pad(i),
				s: pad(s),
				u: u,
				// Timezone
				e: '?',
				I: '?',
				O: (o > 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4),
				P: (o > 0 ? "-" : "+") + insStr( pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4), -2, ":"),
				T: (String(timestamp).match(timezone) || [""]).pop().replace(timezoneClip, ""),
				Z: '?',
				// Full Date/Time
				c: '?',
				r: '?',
				U: Math.floor(timestamp / 1000)
			};
		return newformat.replace(token, function ($0) {
			return flags.hasOwnProperty($0) ? flags[$0] : $0.substring(1);
		});
	},
	jqID : function(sid){
		return String(sid).replace(/[!"#$%&'()*+,.\/:; <=>?@\[\\\]\^`{|}~]/g,"\\$&");
	},
	guid : 1,
	uidPref: 'jqg',
	randId : function( prefix )	{
		return (prefix || $.jgrid.uidPref) + ($.jgrid.guid++);
	},
	getAccessor : function(obj, expr) {
		var ret,p,prm = [], i;
		if( typeof expr === 'function') { return expr(obj); }
		ret = obj[expr];
		if(ret===undefined) {
			try {
				if ( typeof expr === 'string' ) {
					prm = expr.split('.');
				}
				i = prm.length;
				if( i ) {
					ret = obj;
					while (ret && i--) {
						p = prm.shift();
						ret = ret[p];
					}
				}
			} catch (e) {}
		}
		return ret;
	},
	getXmlData: function (obj, expr, returnObj) {
		var ret, m = typeof expr === 'string' ? expr.match(/^(.*)\[(\w+)\]$/) : null;
		if (typeof expr === 'function') { return expr(obj); }
		if (m && m[2]) {
			// m[2] is the attribute selector
			// m[1] is an optional element selector
			// examples: "[id]", "rows[page]"
			return m[1] ? $(m[1], obj).attr(m[2]) : $(obj).attr(m[2]);
		}
		ret = $(expr, obj);
		if (returnObj) { return ret; }
		//$(expr, obj).filter(':last'); // we use ':last' to be more compatible with old version of jqGrid
		return ret.length > 0 ? $(ret).text() : undefined;
	},
	cellWidth : function () {
		var $testDiv = $("<div class='ui-jqgrid' style='left:10000px'><table class='ui-jqgrid-btable ui-common-table' style='width:5px;'><tr class='jqgrow'><td style='width:5px;display:block;'></td></tr></table></div>"),
		testCell = $testDiv.appendTo("body")
			.find("td")
			.width();
		$testDiv.remove();
		return Math.abs(testCell-5) > 0.1;
	},
	isLocalStorage : function () {
		try {
			return 'localStorage' in window && window.localStorage !== null;
		} catch (e) {
			return false;
		}
	},
	getRegional : function(inst, param, def_val) {
		var ret;
		if(def_val !== undefined) {
			return def_val;
		}
		if(inst.p && inst.p.regional && $.jgrid.regional) {
				ret = $.jgrid.getAccessor( $.jgrid.regional[inst.p.regional] || {}, param);
		}
		if(ret === undefined ) {
			ret = $.jgrid.getAccessor( $.jgrid, param);
		}
		return ret;
	},
	isMobile : function() {
		try {
			if(/Android|webOS|iPhone|iPad|iPod|pocket|psp|kindle|avantgo|blazer|midori|Tablet|Palm|maemo|plucker|phone|BlackBerry|symbian|IEMobile|mobile|ZuneWP7|Windows Phone|Opera Mini/i.test(navigator.userAgent)) {
				return true;
			}
			return false;
		} catch(e)	{
			return false;
		}
	},
	cell_width : true,
	scrollbarWidth : function() {
		// http://jdsharp.us/jQuery/minute/calculate-scrollbar-width.php
		var div = $('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div>');
		$('body').append(div);
		var w1 = $('div', div).innerWidth();
		div.css('overflow-y', 'scroll');
		var w2 = $('div', div).innerWidth();
		$(div).remove();
		return (w1 - w2) < 0 ? 18 : (w1 - w2);
	},
	scrollbarHeight : function() {
		var div = $('<div style="width:50px;overflow-x:scroll;position:absolute;top:-200px;left:-200px;"<span>1234567890</span></div>');
		$('body').append(div);
		var w1 = $(div).outerHeight();
		var w2 = $(div)[0].scrollHeight;
		$(div).remove();
		return (w1 - w2) < 0 ? 18 : (w1 - w2);
	},
	ajaxOptions: {},
	from : function(source){
		// Original Author Hugo Bonacci
		// License MIT http://jlinq.codeplex.com/license
		var $t = this,
		QueryObject=function(d,q){
		if(typeof d==="string"){
			d=$.data(d);
		}
		var self=this,
		_data=d,
		_usecase=true,
		_trim=false,
		_query=q,
		_stripNum = /[\$,%]/g,
		_lastCommand=null,
		_lastField=null,
		_orDepth=0,
		_negate=false,
		_queuedOperator="",
		_sorting=[],
		_useProperties=true;
		if(typeof d==="object"&&d.push) {
			if(d.length>0){
				if(typeof d[0]!=="object"){
					_useProperties=false;
				}else{
					_useProperties=true;
				}
			}
		}else{
			throw "data provides is not an array";
		}
		this._hasData=function(){
			return _data===null?false:_data.length===0?false:true;
		};
		this._getStr=function(s){
			var phrase=[];
			if(_trim){
				phrase.push("$.jgrid.trim(");
			}
			phrase.push("String("+s+")");
			if(_trim){
				phrase.push(")");
			}
			if(!_usecase){
				phrase.push(".toLowerCase()");
			}
			return phrase.join("");
		};
		this._strComp=function(val){
			if(typeof val==="string"){
				return".toString()";
			}
			return"";
		};
		this._group=function(f,u){
			return({field:f.toString(),unique:u,items:[]});
		};
		this._toStr=function(phrase){
			if(_trim){
				phrase=$.jgrid.trim(phrase);
			}
			phrase=phrase.toString().replace(/\\/g,'\\\\').replace(/\"/g,'\\"');
			return _usecase ? phrase : phrase.toLowerCase();
		};
		this._funcLoop=function(func){
			var results=[];
			$.each(_data,function(i,v){
				results.push(func(v));
			});
			return results;
		};
		this._append=function(s){
			var i;
			if(_query===null){
				_query="";
			} else {
				_query+=_queuedOperator === "" ? " && " :_queuedOperator;
			}
			for (i=0;i<_orDepth;i++){
				_query+="(";
			}
			if(_negate){
				_query+="!";
			}
			_query+="("+s+")";
			_negate=false;
			_queuedOperator="";
			_orDepth=0;
		};
		this._setCommand=function(f,c){
			_lastCommand=f;
			_lastField=c;
		};
		this._resetNegate=function(){
			_negate=false;
		};
		this._repeatCommand=function(f,v){
			if(_lastCommand===null){
				return self;
			}
			if(f!==null&&v!==null){
				return _lastCommand(f,v);
			}
			if(_lastField===null){
				return _lastCommand(f);
			}
			if(!_useProperties){
				return _lastCommand(f);
			}
			return _lastCommand(_lastField,f);
		};
		this._equals=function(a,b){
			return(self._compare(a,b,1)===0);
		};
		this._compare=function(a,b,d){
			var toString = Object.prototype.toString;
			if( d === undefined) { d = 1; }
			if(a===undefined) { a = null; }
			if(b===undefined) { b = null; }
			if(a===null && b===null){
				return 0;
			}
			if(a===null&&b!==null){
				return 1;
			}
			if(a!==null&&b===null){
				return -1;
			}
			if( (toString.call(a) === '[object Date]' && toString.call(b) === '[object Date]') || 
				(typeof a === "number" && typeof b === "number") ) {
				return a > b ? d : a < b ? -d : 0;
			}
			var ret = String(a).localeCompare(String(b));
			return ret < 0 ? -d : ret > 0 ? d : 0;
		};
		this._performSort=function(){
			if(_sorting.length===0){return;}
			_data=self._doSort(_data,0);
		};
		this._doSort=function(d,q){
			var by=_sorting[q].by,
			dir=_sorting[q].dir,
			type = _sorting[q].type,
			dfmt = _sorting[q].datefmt,
			sfunc = _sorting[q].sfunc;
			if(q===_sorting.length-1){
				return self._getOrder(d, by, dir, type, dfmt, sfunc);
			}
			q++;
			var values=self._getGroup(d,by,dir,type,dfmt), results=[], i, j, sorted;
			for(i=0;i<values.length;i++){
				sorted=self._doSort(values[i].items,q);
				for(j=0;j<sorted.length;j++){
					results.push(sorted[j]);
				}
			}
			return results;
		};
		this._getOrder=function(data,by,dir,type, dfmt, sfunc){
			var sortData=[],_sortData=[], newDir = dir==="a" ? 1 : -1, i,ab,j,
			findSortKey;

			if(type === undefined ) { type = "text"; }
			if (type === 'float' || type=== 'number' || type=== 'currency' || type=== 'numeric') {
				findSortKey = function($cell) {
					var key = parseFloat( String($cell).replace(_stripNum, ''));
					return isNaN(key) ? Number.NEGATIVE_INFINITY : key;
				};
			} else if (type==='int' || type==='integer') {
				findSortKey = function($cell) {
					return $cell ? parseFloat(String($cell).replace(_stripNum, '')) : Number.NEGATIVE_INFINITY;
				};
			} else if(type === 'date' || type === 'datetime') {
				findSortKey = function($cell) {
					return $.jgrid.parseDate.call($t, dfmt, $cell).getTime();
				};
			} else if($.jgrid.isFunction(type)) {
				findSortKey = type;
			} else {
				findSortKey = function($cell) {
					$cell = $cell ? $.jgrid.trim(String($cell)) : "";
					return _usecase ? $cell : $cell.toLowerCase();
				};
			}
			$.each(data,function(i,v){
				ab = by!=="" ? $.jgrid.getAccessor(v,by) : v;
				if(ab === undefined) { ab = ""; }
				ab = findSortKey(ab, v);
				_sortData.push({ 'vSort': ab,'index':i});
			});
			if($.jgrid.isFunction(sfunc)) {
				_sortData.sort(function(a,b){
					return sfunc.call(this,a.vSort, b.vSort, newDir, a, b);
				});
			} else {
				_sortData.sort(function(a,b){
					return self._compare(a.vSort, b.vSort,newDir);
				});
			}
			j=0;
			var nrec= data.length;
			// overhead, but we do not change the original data.
			while(j<nrec) {
				i = _sortData[j].index;
				sortData.push(data[i]);
				j++;
			}
			return sortData;
		};
		this._getGroup=function(data,by,dir,type, dfmt){
			var results=[],
			group=null,
			last=null, val;
			$.each(self._getOrder(data,by,dir,type, dfmt),function(i,v){
				val = $.jgrid.getAccessor(v, by);
				if($.jgrid.isNull(val)) { val = ""; }
				if(!self._equals(last,val)){
					last=val;
					if(group !== null){
						results.push(group);
					}
					group=self._group(by,val);
				}
				group.items.push(v);
			});
			if(group !== null){
				results.push(group);
			}
			return results;
		};
		this.ignoreCase=function(){
			_usecase=false;
			return self;
		};
		this.useCase=function(){
			_usecase=true;
			return self;
		};
		this.trim=function(){
			_trim=true;
			return self;
		};
		this.noTrim=function(){
			_trim=false;
			return self;
		};
		this.execute=function(){
			var match=_query, results=[];
			if(match === null){
				return self;
			}
			$.each(_data,function(){
				if($.jgrid.runCode.call($t, match.replace(/this/g, JSON.stringify(this)) ) ){ //eval(match)
					results.push(this);
				}
			});
			_data=results;
			return self;
		};
		this.data=function(){
			return _data;
		};
		this.select=function(f){
			self._performSort();
			if(!self._hasData()){ return[]; }
			self.execute();
			if($.jgrid.isFunction(f)){
				var results=[];
				$.each(_data,function(i,v){
					results.push(f(v));
				});
				return results;
			}
			return _data;
		};
		this.hasMatch=function(){
			if(!self._hasData()) { return false; }
			self.execute();
			return _data.length>0;
		};
		this.andNot=function(f,v,x){
			_negate=!_negate;
			return self.and(f,v,x);
		};
		this.orNot=function(f,v,x){
			_negate=!_negate;
			return self.or(f,v,x);
		};
		this.not=function(f,v,x){
			return self.andNot(f,v,x);
		};
		this.and=function(f,v,x){
			_queuedOperator=" && ";
			if(f===undefined){
				return self;
			}
			return self._repeatCommand(f,v,x);
		};
		this.or=function(f,v,x){
			_queuedOperator=" || ";
			if(f===undefined) { return self; }
			return self._repeatCommand(f,v,x);
		};
		this.orBegin=function(){
			_orDepth++;
			return self;
		};
		this.orEnd=function(){
			if (_query !== null){
				_query+=")";
			}
			return self;
		};
		this.isNot=function(f){
			_negate=!_negate;
			return self.is(f);
		};
		this.is=function(f){
			self._append('this.'+f);
			self._resetNegate();
			return self;
		};
		this._compareValues=function(func,f,v,how,t){
			var fld;
			if(_useProperties){
				fld='jQuery.jgrid.getAccessor(this,\''+f+'\')';
			}else{
				fld='this';
			}
			if(v===undefined) { v = null; }
			//var val=v===null?f:v,
			var val =v,
			swst = t.stype === undefined ? "text" : t.stype;
			if(v !== null) {
			switch(swst) {
				case 'int':
				case 'integer':
					val = (isNaN(Number(val)) || val==="") ? Number.NEGATIVE_INFINITY : val; // To be fixed with more inteligent code
					fld = 'parseInt('+fld+',10)';
					val = 'parseInt('+val+',10)';
					break;
				case 'float':
				case 'number':
				case 'numeric':
					val = String(val).replace(_stripNum, '');
					val = (isNaN(Number(val)) || val==="") ? Number.NEGATIVE_INFINITY : Number(val); // To be fixed with more inteligent code
					fld = 'parseFloat('+fld+')';
					val = 'parseFloat('+val+')';
					break;
				case 'date':
				case 'datetime':
					val = String($.jgrid.parseDate.call($t, t.srcfmt || 'Y-m-d',val).getTime());
					fld = 'jQuery.jgrid.parseDate.call(jQuery("#'+$.jgrid.jqID($t.p.id)+'")[0],"'+t.srcfmt+'",'+fld+').getTime()';
					break;
				default :
					fld=self._getStr(fld);
					val=self._getStr('"'+self._toStr(val)+'"');
			}
			}
			self._append(fld+' '+how+' '+val);
			self._setCommand(func,f);
			self._resetNegate();
			return self;
		};
		this.equals=function(f,v,t){
			return self._compareValues(self.equals,f,v,"==",t);
		};
		this.notEquals=function(f,v,t){
			return self._compareValues(self.equals,f,v,"!==",t);
		};
		this.isNull = function(f,v,t){
			return self._compareValues(self.equals,f,null,"===",t);
		};
		this.greater=function(f,v,t){
			return self._compareValues(self.greater,f,v,">",t);
		};
		this.less=function(f,v,t){
			return self._compareValues(self.less,f,v,"<",t);
		};
		this.greaterOrEquals=function(f,v,t){
			return self._compareValues(self.greaterOrEquals,f,v,">=",t);
		};
		this.lessOrEquals=function(f,v,t){
			return self._compareValues(self.lessOrEquals,f,v,"<=",t);
		};
		this.startsWith=function(f,v){
			//var val = $.jgrid.isNull(v) ? f: v,
			//length=_trim ? $.jgrid.trim(val.toString()).length : val.toString().length;
			if(_useProperties){
				//self._append(self._getStr('jQuery.jgrid.getAccessor(this,\''+f+'\')')+'.slice(0,'+length+') == '+self._getStr('"'+self._toStr(v)+'"'));
				self._append(self._getStr('jQuery.jgrid.getAccessor(this,\''+f+'\')')+'.startsWith('+self._getStr('"'+self._toStr(v)+'"')+')');
			}else{
				//if ( !$.jgrid.isNull(v) ) { length=_trim?$.jgrid.trim(v.toString()).length:v.toString().length; }
				self._append(self._getStr('this')+'.startsWith(' +self._getStr('"'+self._toStr(f)+'"')+')');
			}
			self._setCommand(self.startsWith,f);
			self._resetNegate();
			return self;
		};
		this.endsWith=function(f,v){
			//var val = $.jgrid.isNull(v) ? f: v,
			//length=_trim ? $.jgrid.trim(val.toString()).length:val.toString().length;
			if(_useProperties){
				//self._append(self._getStr('jQuery.jgrid.getAccessor(this,\''+f+'\')')+'.substr('+self._getStr('jQuery.jgrid.getAccessor(this,\''+f+'\')')+'.length-'+length+','+length+') == "'+self._toStr(v)+'"');
				self._append(self._getStr('jQuery.jgrid.getAccessor(this,\''+f+'\')')+'.endsWith('+self._getStr('"'+self._toStr(v)+'"')+')');
			} else {
				//self._append(self._getStr('this')+'.substr('+self._getStr('this')+'.length-"'+self._toStr(f)+'".length,"'+self._toStr(f)+'".length) == "'+self._toStr(f)+'"');
				self._append(self._getStr('this')+'.endsWith(' +self._getStr('"'+self._toStr(f)+'"')+')');
			}
			self._setCommand(self.endsWith,f);
			self._resetNegate();
			return self;
		};
		this.contains=function(f,v){
			if(_useProperties){
				self._append(self._getStr('jQuery.jgrid.getAccessor(this,\''+f+'\')')+'.indexOf("'+self._toStr(v)+'",0) > -1');
			}else{
				self._append(self._getStr('this')+'.indexOf("'+self._toStr(f)+'",0) > -1');
			}
			self._setCommand(self.contains,f);
			self._resetNegate();
			return self;
		};
		this.user=function(op, f, v){
			var _a = '$("#'+$t.p.id+'")[0]';
			self._append(_a + '.p.customFilterDef.' + op + '.action.call('+_a+' ,{rowItem: this, searchName:"' + f + '",searchValue:"' + v + '"})');
			self._setCommand(self.user,f);
			self._resetNegate();
			return self;
		};
		this.inData = function (f, v, t) {
			var vl =  v === undefined ? "" : self._getStr("\"" + self._toStr(v) + "\"");
			if( _useProperties ) {
				self._append(vl + '.split(\''+',' + '\')' + '.indexOf( jQuery.jgrid.getAccessor(this,\''+f+'\') ) > -1');
			} else {
				self._append(vl + '.split(\''+',' + '\')' + '.indexOf(this.'+f+') > -1');
			}
			self._setCommand(self.inData, f);
			self._resetNegate();
			return self;
		};
		this.groupBy=function(by,dir,type, datefmt){
			if(!self._hasData()){
				return null;
			}
			return self._getGroup(_data,by,dir,type, datefmt);
		};
		this.orderBy=function(by,dir,stype, dfmt, sfunc){
			dir = $.jgrid.isNull(dir) ? "a" :$.jgrid.trim(dir.toString().toLowerCase());
			if( $.jgrid.isNull(stype) ) { stype = "text"; }
			if( $.jgrid.isNull(dfmt) ) { dfmt = "Y-m-d"; }
			if( $.jgrid.isNull(sfunc) ) { sfunc = false; }
			if(dir==="desc"||dir==="descending"){dir="d";}
			if(dir==="asc"||dir==="ascending"){dir="a";}
			_sorting.push({by:by,dir:dir,type:stype, datefmt: dfmt, sfunc: sfunc});
			return self;
		};
		return self;
		};
	return new QueryObject(source,null);
	},
	getMethod: function (name) {
        return this.getAccessor($.fn.jqGrid, name);
	},
	extend : function(methods) {
		$.extend($.fn.jqGrid,methods);
		if (!this.no_legacy_api) {
			$.fn.extend(methods);
		}
	},
	clearBeforeUnload : function( jqGridId ) {
		var $t = $("#"+$.jgrid.jqID( jqGridId ))[0], grid;
		if(!$t.grid) { return;}
		grid = $t.grid;
		if ($.jgrid.isFunction(grid.emptyRows)) {
			grid.emptyRows.call($t, true, true); // this work quick enough and reduce the size of memory leaks if we have someone
		}

		$(document).off("mouseup.jqGrid" + $t.p.id );
		$(grid.hDiv).off("mousemove"); // TODO add namespace
		$($t).off();
		var i, l = grid.headers.length,
		removevents = ['formatCol','sortData','updatepager','refreshIndex','setHeadCheckBox','constructTr','formatter','addXmlData','addJSONData','grid','p', 'addLocalData'];
		for (i = 0; i < l; i++) {
			grid.headers[i].el = null;
		}

		for( i in grid) {
			if( grid.hasOwnProperty(i)) {
				grid[i] = null;
			}
		}
		// experimental
		for( i in $t.p) {
			if($t.p.hasOwnProperty(i)) {
				$t.p[i] = Array.isArray($t.p[i]) ? [] : null;
			}
		}
		l = removevents.length;
		for(i = 0; i < l; i++) {
			if($t.hasOwnProperty(removevents[i])) {
				$t[removevents[i]] = null;
				delete($t[removevents[i]]);
			}
		}
	},
	gridUnload : function ( jqGridId ) {
		if(!jqGridId) { return; }
		jqGridId = $.jgrid.trim(jqGridId);
		if(jqGridId.indexOf("#") === 0) {
			jqGridId = jqGridId.substring(1);
		}

		var $t = $("#"+ $.jgrid.jqID(jqGridId))[0];
		if ( !$t.grid ) {return;}
		var defgrid = {id: $($t).attr('id'),cl: $($t).attr('class')};
		if ($t.p.pager) {
			$($t.p.pager).off().empty().removeClass("ui-state-default ui-jqgrid-pager ui-corner-bottom");
		}
		var newtable = document.createElement('table');
		newtable.className = defgrid.cl;
		var gid = $.jgrid.jqID($t.id);
		$(newtable).removeClass("ui-jqgrid-btable ui-common-table").insertBefore("#gbox_"+gid);
		if( $($t.p.pager).parents("#gbox_"+gid).length === 1 ) {
			$($t.p.pager).insertBefore("#gbox_"+gid);
		}
		$.jgrid.clearBeforeUnload( jqGridId );
		$("#gbox_"+gid).remove();
		$(newtable).attr({id:defgrid.id});
		$("#alertmod_"+$.jgrid.jqID(jqGridId)).remove();
	},
	gridDestroy : function ( jqGridId ) {
		if(!jqGridId) { return; }
		jqGridId = $.jgrid.trim(jqGridId);
		if(jqGridId.indexOf("#") === 0) {
			jqGridId = jqGridId.substring(1);
		}
		var $t = $("#"+ $.jgrid.jqID(jqGridId))[0];
		if ( !$t || !$t.grid ) {return;}
		if ( $t.p.pager ) { // if not part of grid
			$($t.p.pager).remove();
		}
		try {
			$.jgrid.clearBeforeUnload( jqGridId );
			$("#gbox_"+$.jgrid.jqID(jqGridId)).remove();
		} catch (_) {}
	},
	isElementInViewport : function(el) {
		var rect = el.getBoundingClientRect();
		return (
			rect.left >= 0 &&
			rect.right <= (window.innerWidth || document.documentElement.clientWidth)
		);
	},
	getTextWidth : function(text, font) {
		if (!jQuery._cacheCanvas) {
			var canvas = document.createElement('canvas');
			var docFragment = document.createDocumentFragment();
			docFragment.appendChild(canvas);
			jQuery._cacheCanvas = canvas.getContext("2d");
		}
		if(font) {
			jQuery._cacheCanvas.font = font;
		}
		return jQuery._cacheCanvas.measureText( $.jgrid.stripHtml( text ) ).width;
	},
	getFont : function (instance) {
		var getfont = window.getComputedStyle( instance, null );
		return getfont.getPropertyValue( 'font-style' ) + " " +
				getfont.getPropertyValue( 'font-variant' ) + " " +
				getfont.getPropertyValue( 'font-weight' ) + " " +
				getfont.getPropertyValue( 'font-size' ) + " " +
				getfont.getPropertyValue( 'font-family');
	},
	setSelNavIndex : function ($t,  selelem ) {
		var cels = $(".ui-pg-button",$t.p.pager);
		$.each(cels, function(i,n) {
			if(selelem===n) {
				$t.p.navIndex = i;
				return false;
			}
		});
		$(selelem).attr("tabindex","0");		
	},
	splitSearch : function (p) {
		/*
		p : {
			mergeOper : 'OR',
			filterInput : null,
			filterToolbar : null,
			searchGrid : null
		}
		 */
		var rules = "{\"groupOp\":\"" + p.mergeOper + "\",\"groups\":[", i=0; //],\"groups\":[
		for( var property in p) {
			if(p.hasOwnProperty(property)) {
				if(property !== 'mergeOper') {
					rules += (p[property] !== null && p[property] !== "" && typeof p[property] !=='boolean' ) ? p[property] + ",": "";
					i++;
				}
			}
		}
		if( rules.indexOf("[", rules.length - "[".length)  === -1 ) {
			rules = rules.slice(0, -1);
		}
		rules += "]}";
		return rules;
	},
	getElemByAttrVal : function( elem, attr, value, position) {
		if( typeof position !== 'boolean' ) {
			position = false;
		}
		var len = Array.isArray(elem) ? elem.length : 0, i=0, ret = {}, pos = -1;
		if( len > 0 ) {
			while( i < len) {
				if( elem[i][attr] === value) {
					ret = elem[i];
					pos = i;
					break;
				}
				i++;
			}
		}
		return position ? pos : ret;
	},
	searchColOnEnter : function(gridid, rid, t, e ) {
		var tb = $("#"+gridid)[0], i;
		if(!tb.grid) {
			return;
		}
		var opt = tb.p.searchColOptions, res, val, frozen= false;
		try {
			val = t.value;
		} catch (e1){
			val = "";
		}
		if(tb.p.frozenColumns) {
			$(tb.grid.bDiv).find(".jqgrid-searchcol >input#jqs_"+tb.p.id+"_"+rid).focus().val(val);
			frozen = true;
		}

		if(!tb.p._ftsc) {
			// store originally hidden columns
			tb.p._ftsc = true;
			tb.p._fthc = [];
			tb.p._avc =[];
			for(i=0; i<tb.p.colModel.length; i++) {
				if(tb.p.colModel[i].hidden) {
					tb.p._fthc.push(tb.p.colModel[i].name);
				} else {
					tb.p._avc.push(tb.p.colModel[i].name);
				}
			}
			tb.p._results = {};
		}// else {
		//}
		var _cnth = [...new Set([...opt._cnth ,...opt.visibleColumns])], // exclude search here
				_cnthSet = new Set([..._cnth,...tb.p._fthc]); // add hidden columns
		//$(tb).jqGrid('hideCol',tb.p._avc.filter(x=>!_cnth.includes(x)));
		$(tb).jqGrid('hideCol',tb.p._avc.filter(function(x) { 
			return !_cnth.includes(x);
		}));
		
		//======================================================================
		function get_result (id) {
			var datarow = $(tb).jqGrid('getRowData', id), vall;
			var _cts =[];
			if(datarow && val) {
				for(var key in datarow) {
					if(!_cnthSet.has(key)) {
						if(datarow.hasOwnProperty(key)) {
							vall = val;
							if(!opt.useCase) {
								datarow[key] = datarow[key].toLowerCase();
								vall = val.toLowerCase();
							} 
							if(opt.aOperands.includes(opt.operand)) {
								switch( opt.operand) {
									case 'cn': // contain
										res = datarow[key].search(vall) !== -1; // find the column containing the search str
										break;
										case 'eq': // equal
										res = datarow[key] === vall;
										break;
									case 'ne': // not equal
										res = datarow[key] !== vall;
										break;
									case 'bw': // startWith
										res = datarow[key].substring(0, vall.length) === vall;
										break;
									case 'ew': // endWith
										var this_len = datarow[key].length;
										res = datarow[key].substring(this_len - vall.length, this_len) === vall;
									break;
								}
							}
							if(res) {
								_cts.push(key);
							}
						}
					}
				}
				tb.p._results[id] = {v:val, r:_cts};
			} else if(datarow && val==="") {
				if(tb.p._results[id]) {
					delete tb.p._results[id];
				}
			}
		}
		//======================================================================
		
		if(tb.grid && (rid === null || rid === undefined) ) { // reload
			for(var key in tb.p._results) {
				if(tb.p._results.hasOwnProperty(key)) {
					val = tb.p._results[key].v;
					get_result (key);
				}
			}
		} else if(tb.grid && (rid !== null || rid !== undefined)) {
			get_result (rid);
		}
		var to_show = [], count = 0;
		for(i in tb.p._results) {
			if(opt.searchOp.toUpperCase() === "OR") {
				to_show = [...new Set([...to_show, ...tb.p._results[i].r])]; // use union to meet OR
			} else if(opt.searchOp.toUpperCase() === "AND") {
				if(count===0) {
					to_show = tb.p._results[i].r;
				} else {
					//to_show = to_show.filter(x => tb.p._results[i].r.includes(x)); // use intersection
					to_show = to_show.filter( function(x) { return  tb.p._results[i].r.includes(x); }); // use intersection
				}
				count++;
			}
		}
		if($.isEmptyObject(tb.p._results)) { // if nosearch show all
			to_show = tb.p._avc;
		}
		var swap = to_show.concat(_cnth);

		$(tb).jqGrid('showCol',swap);
		if(tb.p.frozenColumns) {
			//setTimeout(function(){
				$(tb.grid.fbDiv).find(".jqgrid-searchcol >input#jqs_"+tb.p.id+"_"+rid).val("").focus().val(val);
			//}, 60);
		}
		if(tb.p.frozenRows) {
			if(frozen) { // for future processing
				tb.p.frozenColumns = false;
			}
			$(tb).trigger('jqGridAfterGridComplete.setFrozenRows');
			if(frozen) { // for future processing
				tb.p.frozenColumns = true;
			}
		}
		
		/// let intersection = arrA.filter(x => arrB.includes(x));
		/// let difference = arrA.filter(x => !arrB.includes(x));
		/// let difference = arrA
                 //.filter(x => !arrB.includes(x))
                 //.concat(arrB.filter(x => !arrA.includes(x)));
				 
		/// let union = [...new Set([...arrA, ...arrB])];
	},
	searchColOnKey : function(gridid, rid, t, e ) {
		switch(e.key) {
			case 'ArrowRight':
			case 'ArrowDown':
			case 'ArrowUp':
			case 'ArrowLeft':
			case 'PageUp':
			case 'PageDown':
			case 'Alt':
			case 'Control':
			case 'Tab':
			case 'Escape':
			case 'Shift':
				return;
			default :
		}
		setTimeout(function() {
			$.jgrid.searchColOnEnter(gridid, rid, t,e);
		}, 50);
	},
	comboGrid : function ( elemId, opt, gridopt ) {
		/*
		opt  = {
			data : "", // string, array or function
			return_fld : "", //string or function
			deaultSearch : "bw"
		};
		*/
		var gridId =  $.jgrid.randId("combo");
		var divId = "div"+gridId;
		var save_datatype = gridopt.datatype;
		gridopt.datatype = 'local';
		gridopt.onSelectRow = function(id) {
			var srow = $("#"+gridId).jqGrid('getRowData',id);
			if(!$.isEmptyObject(srow)) {
				var ret = $.jgrid.isFunction( opt.return_fld ) ? opt.return_fld.call(this, srow) : srow[opt.return_fld];
				$("#"+elemId).val( ret );
				$("#"+divId).hide();
			}
		};
		gridopt.data = [];
		gridopt.scrollrows = true;
		$('body').append("<div id='"+divId+"'><table id='"+gridId+"'></table>");
		if(gridopt.pager) {
			$('body').append("<div id='"+gridopt.pager+"'></div>");
		}
		$('body').append("</div>");
		$("#"+gridId).jqGrid( gridopt );
		$("#"+gridId).jqGrid('bindKeys', {onSelectRow : false});
		$("#"+elemId).attr("autocomplete","off").data("comboGrid", {grid:gridId, divgrid: divId});
		var coord = document.getElementById(elemId).getBoundingClientRect();
		
		$("#"+divId).css({"background-color": "inherit", position:"absolute", top:(coord.top+50)+"px", left: (coord.left+10)+"px", zIndex: 20000}).hide();
		$("#"+elemId).on("keydown", function(e){
			var gID = $(this).data("comboGrid").grid, dID=$(this).data("comboGrid").divgrid, self = this;
			//e.preventDefault();
			if($("#"+dID).is(":hidden")) {
				coord = document.getElementById(elemId).getBoundingClientRect();
				//var coord = $("#"+elemId).position();
				$("#"+dID).show().css({top:(coord.top+50)+"px", left: (coord.left+10)+"px"});
			}
			var timer;

			if($.inArray(e.key, ['Enter', 'Escape', 'ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight']) > -1) {
			var eee =  $.Event('keydown'), $t = this;

			switch (e.key) {
				case 'Enter' :
					// select the row
					var srow = $("#"+gID).jqGrid('getRowData',$("#"+gID)[0].p.selrow);
					if(!$.isEmptyObject(srow)) {
						$t.value = srow[opt.return_fld];
						$("#"+dID).hide();
					}
					break;
				case 'Escape' :
					$("#"+dID).hide();
					break;
				case 'ArrowUp' :
					eee.keyCode = 38;
					$("#"+gID).trigger(eee);
					break;
				case 'ArrowDown' :
					//console.log(eee);
					eee.keyCode = 40;
					$("#"+gID).trigger(eee);
					break;
			}
			} else {
				if(timer) { clearTimeout(timer); }
				timer = setTimeout(function(){ 
					$("#"+gID).jqGrid('filterInput', self.value, {defaultSearch: opt.defaultSearch || 'bw', selectFirstFound : true});
				}, 100);
			}
		});
		if(opt.data) {
			if(typeof opt.data === 'string') {
				$("#"+gridId).jqGrid('setGridParam', {url : opt.data});
			} else if (Array.isArray(opt.data) ) {
				$("#"+gridId).jqGrid('setGridParam', {data : opt.data});
			}
		}
		$("#"+gridId).jqGrid('setGridParam', { datatype : save_datatype });

	},
	inColumnHeader : function (text, columnHeaders) {
		var length = columnHeaders.length, i;
		for (i = 0; i < length; i++) {
			if (columnHeaders[i].startColumnName === text) {
				return i;
			}
		}
		return -1;
	},
	isServiceCol : function( name ) {
		return ['cb', 'rn','subgrid', 'sc'].includes( name );
	},
	normalizeDbData : function( input, colModel ) {
		if(!Array.isArray(input)) {
			input = [input];
		}
		for(let key = 0; key < input.length; key++) {
			for(let i = 0; i < colModel.length; i++) {
				let cm = colModel[i];
				if(!$.jgrid.isServiceCol( cm.name ) && input[key].hasOwnProperty(cm.name)) {
					let type = cm.sorttype || cm.stype || cm.formatter || 'text';
					switch(type) 
					{
						case 'int':
						case 'integer':
							input[key][cm.name] = parseInt(input[key][cm.name],10);
							break;
						case 'float':
						case 'number':
						case 'numeric':
						case 'currency':
							input[key][cm.name] = parseFloat(input[key][cm.name]);
							break;
						case 'date': // future development
						case 'datetime':
							cm.formatoptions.reformatAfterEdit = true;
							input[key][cm.name] = $.jgrid.parseDate.call(this, cm.formatoptions.newformat, input[key][cm.name], cm.formatoptions.srcformat || 'Y-m-d');
							break;
					}
				}
			}
		}
		return input;
	},
	isVisible : function(e) {
		return !!( e.offsetWidth || e.offsetHeight || e.getClientRects().length );
	},
	styleUI : {
		jQueryUI : {
			common : {
				disabled: "ui-state-disabled",
				highlight : "ui-state-highlight",
				hover : "ui-state-hover",
				cornerall: "ui-corner-all",
				cornertop: "ui-corner-top",
				cornerbottom : "ui-corner-bottom",
				hidden : "ui-helper-hidden",
				icon_base : "ui-icon",
				overlay : "ui-widget-overlay",
				active : "ui-state-active",
				error : "ui-state-error",
				button : "ui-state-default ui-corner-all",
				content : "ui-widget-content",
				shadow : ""
			},
			base : {
				entrieBox : "ui-widget ui-widget-content ui-corner-all", // entrie div  incl everthing
				viewBox : "", // view diw
				headerTable : "",
				headerBox : "ui-state-default",
				rowTable : "",
				rowBox : "ui-widget-content",
				stripedTable : "ui-jqgrid-table-striped",
				footerTable : "",
				footerBox : "ui-widget-content",
				headerRowTable : "",
				headerRowBox : "ui-widget-content",
				headerDiv : "ui-state-default",
				gridtitleBox : "ui-widget-header ui-corner-top ui-helper-clearfix",
				customtoolbarBox : "ui-state-default",
				//overlayBox: "ui-widget-overlay",
				loadingBox : "ui-state-default ui-state-active",
				rownumBox :  "ui-state-default",
				scrollBox : "ui-widget-content",
				multiBox : "",
				searchBox : "ui-widget-content ui-corner-all",
				searchSelect : "ui-widget-content ui-corner-all",
				pagerBox : "ui-state-default ui-corner-bottom",
				pagerTable : "",
				toppagerBox : "ui-state-default",
				pgInput : "ui-corner-all",
				pgSelectBox : "ui-widget-content ui-corner-all",
				pgButtonBox : "ui-corner-all",
				icon_first : "ui-icon-seek-first",
				icon_prev : "ui-icon-seek-prev",
				icon_next: "ui-icon-seek-next",
				icon_end: "ui-icon-seek-end",
				icon_asc : "ui-icon-triangle-1-n",
				icon_desc : "ui-icon-triangle-1-s",
				icon_caption_open : "ui-icon-circle-triangle-n",
				icon_caption_close : "ui-icon-circle-triangle-s"
			},
			modal : {
				modal : "ui-widget ui-widget-content ui-corner-all ui-dialog",
				header : "ui-widget-header ui-corner-all ui-helper-clearfix",
				content :"ui-widget-content",
				body : "ui-widget-content",
				footer : "ui-widget-content",
				resizable : "ui-resizable-handle ui-resizable-se",
				icon_close : "ui-icon-closethick",
				icon_resizable : "ui-icon-gripsmall-diagonal-se"
			},
			celledit : {
				inputClass : "ui-widget-content ui-corner-all",
				selectClass: "ui-widget-content ui-corner-all"
			},
			inlinedit : {
				inputClass : "ui-widget-content ui-corner-all",
				selectClass: "ui-widget-content ui-corner-all",
				icon_edit_nav : "ui-icon-pencil",
				icon_add_nav : "ui-icon-plus",
				icon_save_nav : "ui-icon-disk",
				icon_cancel_nav : "ui-icon-cancel"
			},
			formedit : {
				labelClass : "",
				inputClass : "ui-widget-content ui-corner-all",
				selectClass: "ui-widget-content ui-corner-all",
				icon_prev : "ui-icon-triangle-1-w",
				icon_next : "ui-icon-triangle-1-e",
				icon_save : "ui-icon-disk",
				icon_close : "ui-icon-close",
				icon_del : "ui-icon-scissors",
				icon_cancel : "ui-icon-cancel"
			},
			navigator : {
				icon_edit_nav : "ui-icon-pencil",
				icon_add_nav : "ui-icon-plus",
				icon_del_nav : "ui-icon-trash",
				icon_search_nav : "ui-icon-search",
				icon_refresh_nav : "ui-icon-refresh",
				icon_view_nav : "ui-icon-document",
				icon_newbutton_nav : "ui-icon-newwin"
			},
			grouping : {
				icon_plus : 'ui-icon-circlesmall-plus',
				icon_minus : 'ui-icon-circlesmall-minus'
			},
			filter : {
				table_widget : 'ui-widget ui-widget-content',
				srSelect : 'ui-widget-content ui-corner-all',
				srInput : 'ui-widget-content ui-corner-all',
				menu_widget : 'ui-widget ui-widget-content ui-corner-all',
				icon_search : 'ui-icon-search',
				icon_reset : 'ui-icon-arrowreturnthick-1-w',
				icon_query :'ui-icon-comment'
			},
			subgrid : {
				icon_plus : 'ui-icon-plus',
				icon_minus : 'ui-icon-minus',
				icon_open : 'ui-icon-carat-1-sw'
			},
			treegrid : {
				icon_plus : 'ui-icon-triangle-1-',
				icon_minus : 'ui-icon-triangle-1-s',
				icon_leaf : 'ui-icon-radio-off'
			},
			fmatter : {
				icon_edit : "ui-icon-pencil",
				icon_add : "ui-icon-plus",
				icon_save : "ui-icon-disk",
				icon_cancel : "ui-icon-cancel",
				icon_del : "ui-icon-trash"
			},
			colmenu : {
				menu_widget : 'ui-widget ui-widget-content ui-corner-all',
				input_checkbox : "ui-widget ui-widget-content",
				filter_select: "ui-widget-content ui-corner-all",
				filter_input : "ui-widget-content ui-corner-all",
				icon_menu : "ui-icon-comment",
				icon_search_menu : "ui-icon-grip-dotted-vertical",
				icon_sort_asc : "ui-icon-arrow-1-n",
				icon_sort_desc : "ui-icon-arrow-1-s",
				icon_columns : "ui-icon-extlink",
				icon_filter : "ui-icon-calculator",
				icon_group : "ui-icon-grip-solid-horizontal",
				icon_freeze : "ui-icon-grip-solid-vertical",
				icon_move: "ui-icon-arrow-4",
				icon_new_item : "ui-icon-newwin",
				icon_toolbar_menu : "ui-icon-document",
				icon_group_op :"ui-icon-bullet",
				icon_oper_op : "ui-icon-transfer-e-w",
				icon_reset : "ui-icon-arrowreturnthick-1-w",
				icon_close : "ui-icon-close"
			}
		},
		Bootstrap : {
			common : {
				disabled: "ui-disabled",
				highlight : "success",
				hover : "active",
				cornerall: "",
				cornertop: "",
				cornerbottom : "",
				hidden : "",
				icon_base : "glyphicon",
				overlay: "ui-overlay",
				active : "active",
				error : "bg-danger",
				button : "btn btn-default",
				content : "",
				shadow : ""
			},
			base : {
				entrieBox : "",
				viewBox : "table-responsive",
				headerTable : "table table-bordered",
				headerBox : "",
				rowTable : "table table-bordered",
				rowBox : "",
				stripedTable : "table-striped",
				footerTable : "table table-bordered",
				footerBox : "",
				headerRowTable : "table table-bordered",
				headerRowBox : "",
				headerDiv : "",
				gridtitleBox : "",
				customtoolbarBox : "",
				//overlayBox: "ui-overlay",
				loadingBox : "row",
				rownumBox :  "active",
				scrollBox : "",
				multiBox : "checkbox",
				pagerBox : "",
				pagerTable : "table",
				toppagerBox : "",
				pgInput : "form-control",
				pgSelectBox : "form-control",
				pgButtonBox : "",
				icon_first : "glyphicon-step-backward",
				icon_prev : "glyphicon-backward",
				icon_next: "glyphicon-forward",
				icon_end: "glyphicon-step-forward",
				icon_asc : "glyphicon-triangle-top",
				icon_desc : "glyphicon-triangle-bottom",
				icon_caption_open : "glyphicon-circle-arrow-up",
				icon_caption_close : "glyphicon-circle-arrow-down"
			},
			modal : {
				modal : "modal",
				content :"modal-content",
				header : "modal-header",
				title : "modal-title",
				body :"modal-body",
				footer :"modal-footer",
				resizable : "ui-resizable-handle ui-resizable-se",
				icon_close : "glyphicon-remove-circle",
				icon_resizable : "glyphicon-import"
			},
			celledit : {
				inputClass : 'form-control',
				selectClass: 'form-control'
			},
			inlinedit : {
				inputClass : 'form-control',
				selectClass: 'form-control',
				icon_edit_nav : "glyphicon-edit",
				icon_add_nav : "glyphicon-plus",
				icon_save_nav : "glyphicon-save",
				icon_cancel_nav : "glyphicon-remove-circle"
			},
			formedit : {
				labelClass : "", 
				inputClass : "form-control",
				selectClass: 'form-control',
				icon_prev : "glyphicon-step-backward",
				icon_next : "glyphicon-step-forward",
				icon_save : "glyphicon-save",
				icon_close : "glyphicon-remove-circle",
				icon_del : "glyphicon-trash",
				icon_cancel : "glyphicon-remove-circle"
			},
			navigator : {
				icon_edit_nav : "glyphicon-edit",
				icon_add_nav : "glyphicon-plus",
				icon_del_nav : "glyphicon-trash",
				icon_search_nav : "glyphicon-search",
				icon_refresh_nav : "glyphicon-refresh",
				icon_view_nav : "glyphicon-info-sign",
				icon_newbutton_nav : "glyphicon-new-window"
			},
			grouping : {
				icon_plus : 'glyphicon-triangle-right',
				icon_minus : 'glyphicon-triangle-bottom'
			},
			filter : {
				table_widget : 'table table-condensed',
				srSelect : 'form-control',
				srInput : 'form-control',
				menu_widget : '',
				icon_search : 'glyphicon-search',
				icon_reset : 'glyphicon-refresh',
				icon_query :'glyphicon-comment'
			},
			subgrid : {
				icon_plus : 'glyphicon-triangle-right',
				icon_minus : 'glyphicon-triangle-bottom',
				icon_open : 'glyphicon-indent-left'
			},
			treegrid : {
				icon_plus : 'glyphicon-triangle-right',
				icon_minus : 'glyphicon-triangle-bottom',
				icon_leaf : 'glyphicon-unchecked'
			},
			fmatter : {
				icon_edit : "glyphicon-edit",
				icon_add : "glyphicon-plus",
				icon_save : "glyphicon-save",
				icon_cancel : "glyphicon-remove-circle",
				icon_del : "glyphicon-trash"
			},
			colmenu : {
				menu_widget : '',
				input_checkbox : "",
				filter_select: "form-control",
				filter_input : "form-control",
				icon_menu : "glyphicon-menu-hamburger",
				icon_sort_asc : "glyphicon-sort-by-alphabet",
				icon_sort_desc : "glyphicon-sort-by-alphabet-alt",
				icon_columns : "glyphicon-list-alt",
				icon_filter : "glyphicon-filter",
				icon_group : "glyphicon-align-left",
				icon_freeze : "glyphicon-object-align-horizontal",
				icon_move: "glyphicon-move",
				icon_new_item : "glyphicon-new-window",
				icon_toolbar_menu : "glyphicon-menu-hamburger"
			}
		},
		Bootstrap4 : {
			common : {
				disabled: "ui-disabled",
				highlight : "table-success",
				hover : "table-active",
				cornerall: "",
				cornertop: "",
				cornerbottom : "",
				hidden : "",
				overlay: "ui-overlay",
				active : "active",
				error : "alert-danger",
				button : "btn btn-light",
				content : "",
				shadow : "shadow p-3 mb-5 bg-white rounded"
			},
			base : {
				entrieBox : "",
				viewBox : "table-responsive",
				headerTable : "table table-bordered",
				headerBox : "",
				rowTable : "table table-bordered",
				rowBox : "",
				stripedTable : "table-striped",
				footerTable : "table table-bordered",
				footerBox : "",
				headerRowTable : "table table-bordered",
				headerRowBox : "",
				headerDiv : "",
				gridtitleBox : "",
				customtoolbarBox : "",
				//overlayBox: "ui-overlay",
				loadingBox : "row",
				rownumBox :  "active",
				scrollBox : "",
				multiBox : "checkbox",
				searchBox : "form-control",				
				searchSelect : "form-control form-control-sm",
				pagerBox : "",
				pagerTable : "table",
				toppagerBox : "",
				pgInput : "form-control",
				pgSelectBox : "form-control",
				pgButtonBox : ""
			},
			modal : {
				modal : "modal",
				content :"modal-content",
				header : "modal-header",
				title : "modal-title",
				body :"modal-body",
				footer :"modal-footer",				
				resizable : "ui-resizable-handle ui-resizable-se",
				icon_close : "oi-circle-x",
				icon_resizable : "oi-circle-x"
			},
			celledit : {
				inputClass : 'form-control',
				selectClass: 'form-control'
			},
			inlinedit : {
				inputClass : 'form-control',
				selectClass: 'form-control'
			},
			formedit : {
				labelClass : "form-label", 
				inputClass : "form-control",
				selectClass: 'form-control'
			},
			navigator : {
			},
			grouping : {
			},
			filter : {
				table_widget : 'table table-condensed',
				srSelect : 'form-control',
				srInput : 'form-control',
				menu_widget : ''
			},
			subgrid : {
			},
			treegrid : {
			},
			fmatter : {
			},
			colmenu : {
				menu_widget : '',
				input_checkbox : "",
				filter_select: "form-control",
				filter_input : "form-control"
			}
		},
		Bootstrap5 : {
			common : {
				disabled: "ui-disabled",
				highlight : "table-success",
				hover : "table-active",
				cornerall: "",
				cornertop: "",
				cornerbottom : "",
				hidden : "",
				overlay: "ui-overlay",
				active : "active",
				error : "alert alert-danger",
				button : "btn btn-light",
				content : "",
				shadow : "shadow p-3 mb-5 bg-body rounded"
			},
			base : {
				entrieBox : "",
				viewBox : "table-responsive",
				headerTable : "table table-bordered",
				headerBox : "",
				rowTable : "table table-bordered",
				rowBox : "",
				stripedTable : "table-striped",
				footerTable : "table table-bordered",
				footerBox : "",
				headerRowTable : "table table-bordered",
				headerRowBox : "",
				headerDiv : "",
				gridtitleBox : "",
				customtoolbarBox : "",
				//overlayBox: "ui-overlay",
				loadingBox : "row",
				rownumBox :  "active",
				scrollBox : "",
				multiBox : "checkbox",
				searchBox : "form-control",				
				searchSelect : "form-select",
				pagerBox : "",
				pagerTable : "table",
				toppagerBox : "",
				pgInput : "form-control",
				pgSelectBox : "form-select",
				pgButtonBox : ""
			},
			modal : {
				modal : "modal",
				header : "modal-header",
				title : "modal-title",
				content :"modal-content",
				body :"modal-body",
				footer :"modal-footer",				
				resizable : "ui-resizable-handle ui-resizable-se",
				icon_close : "oi-circle-x",
				icon_resizable : "oi-circle-x"
			},
			celledit : {
				inputClass : 'form-control',
				selectClass: 'form-select'
			},
			inlinedit : {
				inputClass : 'form-control',
				selectClass: 'form-select'
			},
			formedit : {
				labelClass : "form-label", 
				inputClass : "form-control",
				selectClass: 'form-select'
			},
			navigator : {
			},
			grouping : {
			},
			filter : {
				table_widget : 'table table-sm',
				srSelect : 'form-select',
				srInput : 'form-control',
				menu_widget : ''
			},
			subgrid : {
			},
			treegrid : {
			},
			fmatter : {
			},
			colmenu : {
				menu_widget : '',
				input_checkbox : "",
				filter_select: "form-select",
				filter_input : "form-control"
			}
		}
	},
	iconSet : {
		Iconic : {
			common : {
				icon_base : "oi"
			},
			base : {
				icon_first : "oi-media-step-backward",
				icon_prev : "oi-caret-left",
				icon_next: "oi-caret-right",
				icon_end: "oi-media-step-forward",
				icon_asc : "oi-caret-top",
				icon_desc : "oi-caret-bottom",
				icon_caption_open : "oi-collapse-up",
				icon_caption_close : "oi-expand-down"
			},
			modal : {
				icon_close : "oi-circle-x",
				icon_resizable : "oi-plus"
			},
			inlinedit : {
				icon_edit_nav : "oi-pencil",
				icon_add_nav : "oi-plus",
				icon_save_nav : "oi-check",
				icon_cancel_nav : "oi-action-undo"
			},
			formedit : {
				icon_prev : "oi-chevron-left",
				icon_next : "oi-chevron-right",
				icon_save : "oi-check",
				icon_close : "oi-ban",
				icon_del : "oi-delete",
				icon_cancel : "oi-ban"
			},
			navigator : {
				icon_edit_nav : "oi-pencil",
				icon_add_nav : "oi-plus",
				icon_del_nav : "oi-trash",
				icon_search_nav : "oi-zoom-in",
				icon_refresh_nav : "oi-reload",
				icon_view_nav : "oi-browser",
				icon_newbutton_nav : "oi-book"
			},
			grouping : {
				icon_plus : 'oi-caret-right',
				icon_minus : 'oi-caret-bottom'
			},
			filter : {
				icon_search : 'oi-magnifying-glass',
				icon_reset : 'oi-reload',
				icon_query :'oi-comment-square'
			},
			subgrid : {
				icon_plus : 'oi-chevron-right',
				icon_minus : 'oi-chevron-bottom',
				icon_open : 'oi-expand-left'
			},
			treegrid : {
				icon_plus : 'oi-plus',
				icon_minus : 'oi-minus',
				icon_leaf : 'oi-media-record'
			},
			fmatter : {
				icon_edit : "oi-pencil",
				icon_add : "oi-plus",
				icon_save : "oi-check",
				icon_cancel : "oi-action-undo",
				icon_del : "oi-trash"
			},
			colmenu : {
				icon_menu : "oi-list",
				icon_sort_asc : "oi-sort-ascending",
				icon_sort_desc : "oi-sort-descending",
				icon_columns : "oi-project",
				icon_filter : "oi-magnifying-glass",
				icon_group : "oi-list-rich",
				icon_freeze : "oi-spreadsheet",
				icon_move: "oi-move",
				icon_new_item : "oi-external-link",
				icon_toolbar_menu : "oi-menu",
				icon_group_op :"",
				icon_oper_op : "",
				icon_reset : "oi-reload",
				icon_close : "oi-ban"				
			}
		},
		Octicons : {
			common : {
				icon_base : "octicon"
			},
			base : {
				icon_first : "octicon-triangle-left",
				icon_prev : "octicon-chevron-left",
				icon_next: "octicon-chevron-right",
				icon_end: "octicon-triangle-right",
				icon_asc : "octicon-triangle-up",
				icon_desc : "octicon-triangle-down",
				icon_caption_open : "octicon-triangle-up",
				icon_caption_close : "octicon-triangle-down"
			},
			modal : {
				icon_close : "octicon-x",
				icon_resizable : "octicon-plus"
			},
			inlinedit : {
				icon_edit_nav : "octicon-pencil",
				icon_add_nav : "octicon-plus",
				icon_save_nav : "octicon-check",
				icon_cancel_nav : "octicon-circle-slash"
			},
			formedit : {
				icon_prev : "octicon-chevron-left",
				icon_next : "octicon-chevron-right",
				icon_save : "octicon-check",
				icon_close : "octicon-x",
				icon_del : "octicon-trashcan",
				icon_cancel : "octicon-circle-slash"
			},
			navigator : {
				icon_edit_nav : "octicon-pencil",
				icon_add_nav : "octicon-plus",
				icon_del_nav : "octicon-trashcan",
				icon_search_nav : "octicon-search",
				icon_refresh_nav : "octicon-sync",
				icon_view_nav : "octicon-file",
				icon_newbutton_nav : "octicon-link-external"
			},
			grouping : {
				icon_plus : 'octicon-triangle-right',
				icon_minus : 'octicon-triangle-down'
			},
			filter : {
				icon_search : 'octicon-search',
				icon_reset : 'octicon-sync',
				icon_query :'octicon-file-code'
			},
			subgrid : {
				icon_plus : 'octicon-triangle-right',
				icon_minus : 'octicon-triangle-down',
				icon_open : 'octicon-git-merge'
			},
			treegrid : {
				icon_plus : 'octicon-triangle-right',
				icon_minus : 'octicon-triangle-down',
				icon_leaf : 'octicon-primitive-dot'
			},
			fmatter : {
				icon_edit : "octicon-pencil",
				icon_add : "octicon-plus",
				icon_save : "octicon-check",
				icon_cancel : "octicon-circle-slash",
				icon_del : "octicon-trashcan"
			},
			colmenu : {
				icon_menu : "octicon-grabber",
				icon_sort_asc : "octicon-arrow-up",
				icon_sort_desc : "octicon-arrow-down",
				icon_columns : "octicon-repo",
				icon_filter : "octicon-search",
				icon_group : "octicon-list-unordered",
				icon_freeze : "octicon-repo",
				icon_move: "octicon-git-compare",
				icon_new_item : "octicon-link-external",
				icon_toolbar_menu : "octicon-three-bars",
				icon_group_op :"",
				icon_oper_op : "",
				icon_reset : "octicon-sync",
				icon_close : "octicon-x"				
			}
		},
		fontAwesome : {
			common : {
				icon_base : "fas"
			},
			base : {
				icon_first : "fa-step-backward",
				icon_prev : "fa-backward",
				icon_next: "fa-forward",
				icon_end: "fa-step-forward",
				icon_asc : "fa-caret-up",
				icon_desc : "fa-caret-down",
				icon_caption_open : "fa-caret-square-up",
				icon_caption_close : "fa-caret-square-down "
			},
			modal : {
				icon_close : "fa-window-close",
				icon_resizable : "fa-plus"
			},
			inlinedit : {
				icon_edit_nav : "fa-edit",
				icon_add_nav : "fa-plus",
				icon_save_nav : "fa-save",
				icon_cancel_nav : "fa-replay"
			},
			formedit : {
				icon_prev : "fa-chevron-left",
				icon_next : "fa-chevron-right",
				icon_save : "fa-save",
				icon_close : "fa-window-close",
				icon_del : "fa-trash",
				icon_cancel : "fa-times"
			},
			navigator : {
				icon_edit_nav : "fa-edit",
				icon_add_nav : "fa-plus",
				icon_del_nav : "fa-trash",
				icon_search_nav : "fa-search",
				icon_refresh_nav : "fa-sync",
				icon_view_nav : "fa-sticky-note",
				icon_newbutton_nav : "fa-external-link-alt"
			},
			grouping : {
				icon_plus : 'fa-caret-right',
				icon_minus : 'fa-caret-down'
			},
			filter : {
				icon_search : 'fa-search',
				icon_reset : 'fa-reply',
				icon_query :'fa-pen-square '
			},
			subgrid : {
				icon_plus : 'fa-arrow-circle-right',
				icon_minus : 'fa-arrow-circle-down',
				icon_open : 'fa-ellipsis-v'
			},
			treegrid : {
				icon_plus : 'fa-plus',
				icon_minus : 'fa-minus',
				icon_leaf : 'fa-circle'
			},
			fmatter : {
				icon_edit : "fa-edit",
				icon_add : "fa-plus",
				icon_save : "fa-save",
				icon_cancel : "fa-undo",
				icon_del : "fa-trash"
			},
			colmenu : {
				icon_menu : "fa-ellipsis-v",
				icon_sort_asc : "fa-sort-amount-up",
				icon_sort_desc : "fa-sort-amount-down",
				icon_columns : "fa-columns",
				icon_filter : "fa-filter",
				icon_group : "fa-object-group",
				icon_freeze : "fa-snowflake",
				icon_move: "fa-expand-arrows-alt",
				icon_new_item : "fa-external-link-alt",
				icon_toolbar_menu : "fa-list",
				icon_group_op :"",
				icon_oper_op : "",
				icon_reset : "fa-reply",
				icon_close : "fa-window-close"
				
			}
		},
		Bootstrap5 : {
			common : {
				icon_base : "bi"
			},
			base : {
				icon_first : "bi-chevron-bar-left",
				icon_prev : "bi-chevron-left",
				icon_next: "bi-chevron-right",
				icon_end: "bi-chevron-bar-right",
				icon_asc : "bi-caret-up-fill",
				icon_desc : "bi-caret-down-fill",
				icon_caption_open : "bi-arrows-collapse",
				icon_caption_close : "bi-arrows-expand"
			},
			modal : {
				icon_close : "bi-x-lg",
				icon_resizable : "bi-box-arrow-in-down-right"
			},
			inlinedit : {
				icon_edit_nav : "bi-pencil-square",
				icon_add_nav : "bi-plus-square",
				icon_save_nav : "bi-save",
				icon_cancel_nav : "bi-x-square"
			},
			formedit : {
				icon_prev : "bi-chevron-left",
				icon_next : "bi-chevron-right",
				icon_save : "bi-save",
				icon_close : "bi-x-square",
				icon_del : "bi-trash",
				icon_cancel : "bi-x-octagon"
			},
			navigator : {
				icon_edit_nav : "bi-pencil-square",
				icon_add_nav : "bi-plus-square",
				icon_del_nav : "bi-trash",
				icon_search_nav : "bi-search",
				icon_refresh_nav : "bi-arrow-clockwise",
				icon_view_nav : "bi-view-list",
				icon_newbutton_nav : "bi-window"
			},
			grouping : {
				icon_plus : 'bi-caret-right',
				icon_minus : 'bi-caret-down'
			},
			filter : {
				icon_search : 'bi-search',
				icon_reset : 'bi-arrow-clockwise',
				icon_query :'bi-journal-code'
			},
			subgrid : {
				icon_plus : 'bi-chevron-right',
				icon_minus : 'bi-chevron-down',
				icon_open : 'bi-arrow-bar-right'
			},
			treegrid : {
				icon_plus : 'bi-plus-square-dotted',
				icon_minus : 'bi-dash-square-dotted',
				icon_leaf : 'bi-circle'
			},
			fmatter : {
				icon_edit : "bi-pencil-square",
				icon_add : "bi-plus-square",
				icon_save : "bi-save",
				icon_cancel : "bi-x-square",
				icon_del : "bi-trash"
			},
			colmenu : {
				icon_menu : "bi-list",
				icon_sort_asc : "bi-sort-alpha-down",
				icon_sort_desc : "bi-sort-alpha-up",
				icon_columns : "bi-columns",
				icon_filter : "bi-search",
				icon_group : "bi-collection-play",
				icon_freeze : "bi-layout-text-sidebar-reverse",
				icon_move: "bi-arrows-move",
				icon_new_item : "bi-window",
				icon_toolbar_menu : "bi-card-text",
				icon_group_op :"",
				icon_oper_op : "",
				icon_reset : "bi-arrow-clockwise",
				icon_close : "bi-x-square"				
			}
		}
	}
});

$.fn.jqGrid = function( pin ) {
	if (typeof pin === 'string') {
		var fn = $.jgrid.getMethod(pin);
		if (!fn) {
			throw "jqGrid - No such method: " + pin;
		}
		var args = $.makeArray(arguments).slice(1);
		return fn.apply(this,args);
	}
	return this.each( function() {
		if(this.grid) {return;}
		var localData;
		if ( !$.jgrid.isNull(pin) && pin.data !== undefined) {
			localData = pin.data;
			pin.data = [];
		}

		var p = $.extend(true,{
			url: "",
			height: 150,
			defaultColWidth : 150,
			page: 1,
			rowNum: 20,
			rowTotal : null,
			records: 0,
			pager: "",
			pgbuttons: true,
			pginput: true,
			colModel: [],
			rowList: [],
			colNames: [],
			sortorder: "asc",
			sortname: "",
			datatype: "xml",
			mtype: "GET",
			altRows: false,
			selarrrow: [],
			preserveSelection : false,
			savedRow: [],
			shrinkToFit: true,
			xmlReader: {},
			jsonReader: {},
			subGrid: false,
			subGridModel :[],
			reccount: 0,
			lastpage: 0,
			lastsort: 0,
			selrow: null,
			beforeSelectRow: null,
			onSelectRow: null,
			onSortCol: null,
			ondblClickRow: null,
			onRightClickRow: null,
			onPaging: null,
			onSelectAll: null,
			onInitGrid : null,
			loadComplete: null,
			gridComplete: null,
			loadError: null,
			loadBeforeSend: null,
			afterInsertRow: null,
			beforeRequest: null,
			beforeProcessing : null,
			onHeaderClick: null,
			viewrecords: false,
			loadonce: false,
			multiselect: false,
			multikey: false,
			multiboxonly : false,
			multimail : false,
			multiselectWidth: 30,
			onMultiSleect : null,
			editurl: null,
			search: false,
			caption: "",
			hidegrid: true,
			hiddengrid: false,
			postData: {},
			userData: {},
			treeGrid : false,
			treeGridModel : 'nested',
			treeReader : {},
			treeANode : -1,
			ExpandColumn: null,
			tree_root_level : 0,
			prmNames: {
				page:"page",
				rows:"rows",
				sort: "sidx",
				order: "sord",
				search:"_search",
				nd:"nd",
				id:"id",
				oper:"oper",
				editoper:"edit",
				addoper:"add",
				deloper:"del",
				subgridid:"id",
				npage: null,
				totalrows:"totalrows"
			},
			forceFit : false,
			gridstate : "visible",
			cellEdit: false,
			cellsubmit: "remote",
			nv:0,
			loadui: "enable",
			toolbar: [false,""],
			scroll: false,
			deselectAfterSort : true,
			scrollrows : false,
			autowidth: false,
			scrollOffset : $.jgrid.scrollbarWidth() + 3, // one extra for windows
			cellLayout: 5,
			subGridWidth: 20,
			gridview: true,
			rownumWidth: 35,
			rownumbers : false,
			pagerpos: 'center',
			recordpos: 'right',
			footerrow : false,
			userDataOnFooter : false,
			headerrow : false,
			userDataOnHeader : false,
			hoverrows : true,
			viewsortcols : [false,'vertical',true],
			resizeclass : '',
			autoencode : false,
			remapColumns : [],
			ajaxGridOptions :{},
			direction : "ltr",
			toppager: false,
			headertitles: false,
			scrollTimeout: 40,
			data : [],
			_index : {},
			grouping : false,
			groupingView : {
				groupField:[],
				groupOrder:[],
				groupText:[],
				groupColumnShow:[],
				groupSummary:[],
				showSummaryOnHide: false,
				sortitems:[],
				sortnames:[],
				summary:[],
				summaryval:[],
				plusicon: '',
				minusicon: '',
				displayField: [],
				groupSummaryPos:[],
				formatDisplayField : [],
				_locgr : false
			},
			groupHeaderOn : false,
			ignoreCase : true,
			cmTemplate : {},
			idPrefix : "",
			multiSort :  false,
			minColWidth : 33,
			minGridWidth : 100,
			maxGridWidth : 3000,
			scrollPopUp : false,
			scrollTopOffset: 0, // pixel
			scrollLeftOffset : "100%", //percent
			scrollMaxBuffer : 0,
			storeNavOptions: false,
			regional :  "en",
			styleUI : "jQueryUI",
			iconSet : "Iconic",
			responsive : false,
			forcePgButtons : false,
			resizeHeight : true,
			restoreCellonFail : true,
			editNextRowCell : false,
			colFilters : {},
			colMenu : false,
			colMenuCustom : {},
			colMenuColumnDone : null,
			colMenuBeforeProcess : null,
			colSpanHeader : [],
			// tree pagging
			treeGrid_bigData: false,
			treeGrid_rootParams: {otherData:{}},
			treeGrid_beforeRequest: null,
			treeGrid_afterLoadComplete: null,
			useNameForSearch : false,
			formatFooterData : false,
			formatHeaderData : false,
			mergeSearch : false,
			searchModules : {
				mergeOper : 'AND',
				filterInput : true,
				filterToolbar : true,
				searchGrid : true,
				colMenuSearch : true
			},
			emptyRecordRow : true,
			ariaBody : false,
			searchCols : false,
			searchColOptions : {
				colWidth : 90,
				searchOp : "OR", //default
				operand : "cn", // default
				useCase : false, // for searching
				colName : "Search Col", // header title 
				colmenu : true, // special colmenu
				searchOnEnter : true,
				aOperands : ['cn', 'bw', 'ew', 'eq', 'ne'], // allowed options
				_cnth : ['cb', 'rn', 'sc', 'subgrid', 'col_name'], // internal (just in case)
				visibleColumns : []
			},
			dbconfig: {
				dbname : "",
				dbversion : -1,
				dbtable : "",
				deleteIfExists : false,
				loadIfExists : false,
				isKeyInData : false,
				dataUrl : "",
				reader : null,
				beforeInsertData : null,
				fetchOptions : {}
			}
		}, $.jgrid.defaults , pin );
		if (localData !== undefined) {
			p.data = localData;
			pin.data = localData;
		}
		var ts= this, grid={
			headers:[],
			cols:[],
			footers: [],
			hrheaders : [],
			dragStart: function(i,x,y) {
				var gridLeftPos = $(this.bDiv).offset().left,
					minW = parseInt( (p.colModel[i].minResizeWidth ? p.colModel[i].minResizeWidth : p.minColWidth), 10);
				if(isNaN( minW )) {
					minW = 33;
				}
				this.resizing = { idx: i, startX: x.pageX, sOL : x.pageX - gridLeftPos, minW :  minW  };
				this.hDiv.style.cursor = "col-resize";
				this.curGbox = $("#rs_m"+$.jgrid.jqID(p.id),"#gbox_"+$.jgrid.jqID(p.id));
				this.curGbox.css({display:"block",left:x.pageX-gridLeftPos,top:y[1],height:y[2]});
				$(ts).triggerHandler("jqGridResizeStart", [x, i]);
				if($.jgrid.isFunction(p.resizeStart)) { p.resizeStart.call(ts,x,i); }
				document.onselectstart=function(){return false;};
			},
			dragMove: function(x) {
				if(this.resizing) {
					var diff = x.pageX-this.resizing.startX,
					h = this.headers[this.resizing.idx],
					newWidth = p.direction === "ltr" ? h.width + diff : h.width - diff, hn, nWn;
					if(newWidth > this.resizing.minW) {
						this.curGbox.css({left:this.resizing.sOL+diff});
						if(p.forceFit===true ){
							hn = this.headers[this.resizing.idx+p.nv];
							nWn = p.direction === "ltr" ? hn.width - diff : hn.width + diff;
							if(nWn > this.resizing.minW ) {
								h.newWidth = newWidth;
								hn.newWidth = nWn;
							}
						} else {
							this.newWidth = p.direction === "ltr" ? p.tblwidth+diff : p.tblwidth-diff;
							h.newWidth = newWidth;
						}
					}
				}
			},
			dragEnd: function( events, forceFrozen ) {
				this.hDiv.style.cursor = "default";
				if(forceFrozen === undefined) {
					forceFrozen = true;
				}
				if(this.resizing) {
					var idx = this.resizing.idx,
					nw = this.headers[idx].newWidth || this.headers[idx].width;
					nw = parseFloat(nw);
					this.resizing = false;
					$("#rs_m"+$.jgrid.jqID(p.id)).css("display","none");
					p.colModel[idx].width = nw;
					this.headers[idx].width = nw;
					this.headers[idx].el.style.width = nw + "px";
					this.cols[idx].style.width = nw+"px";
					if(this.footers.length>0) {this.footers[idx].style.width = nw+"px";}
					if(this.hrheaders.length>0) {this.hrheaders[idx].style.width = nw+"px";}
					if(p.forceFit===true){
						nw = this.headers[idx+p.nv].newWidth || this.headers[idx+p.nv].width;
						this.headers[idx+p.nv].width = nw;
						this.headers[idx+p.nv].el.style.width = nw + "px";
						this.cols[idx+p.nv].style.width = nw+"px";
						if(this.footers.length>0) {this.footers[idx+p.nv].style.width = nw+"px";}
						if(this.hrheaders.length>0) {this.hrheaders[idx+p.nv].style.width = nw+"px";}
						p.colModel[idx+p.nv].width = nw;
					} else {
						p.tblwidth = this.newWidth || p.tblwidth;
						$(this.bDiv).find('table').first().css("width",p.tblwidth+"px");
						$(this.hDiv).find('table').first().css("width",p.tblwidth+"px");
						this.hDiv.scrollLeft = this.bDiv.scrollLeft;
						if(p.footerrow) {
							$(this.sDiv).find('table').first().css("width",p.tblwidth+"px");
							this.sDiv.scrollLeft = this.bDiv.scrollLeft;
						}
						if(p.headerrow) {
							$(this.hrDiv).find('table').first().css("width",p.tblwidth+"px");
							this.hrDiv.scrollLeft = this.bDiv.scrollLeft;
						}
					}
					if(events) {
						$(ts).triggerHandler("jqGridResizeStop", [nw, idx]);
						if($.jgrid.isFunction(p.resizeStop)) { p.resizeStop.call(ts,nw,idx); }
					}
					if(p.frozenColumns && forceFrozen) {
						$("#"+$.jgrid.jqID(p.id)).jqGrid("destroyFrozenColumns");
						$("#"+$.jgrid.jqID(p.id)).jqGrid("setFrozenColumns");		
					}
				}
				this.curGbox = null;
				document.onselectstart=function(){return true;};
			},
			populateVisible: function() {
				if (grid.timer) { clearTimeout(grid.timer); }
				grid.timer = null;
				var dh = $(grid.bDiv).height();
				if (!dh) { return; }
				var table = $(grid.bDiv).find("table").first();
				var rows, rh;
				if(table[0].rows.length) {
					try {
						rows = table[0].rows[1];
						rh = rows ? $(rows).outerHeight() || grid.prevRowHeight : grid.prevRowHeight;
					} catch (pv) {
						rh = grid.prevRowHeight;
					}
				}
				if (!rh) { return; }
				grid.prevRowHeight = rh;
				var rn = p.rowNum;
				var scrollTop = grid.scrollTop = grid.bDiv.scrollTop;
				var ttop = Math.round(table.position().top) - scrollTop;
				var tbot = ttop + table.height();
				var div = rh * rn;
				var page, npage, empty;
				if ( tbot < dh && ttop <= 0 &&
					(p.lastpage===undefined||(parseInt((tbot + scrollTop + div - 1) / div,10) || 0) <= p.lastpage))
				{
					npage = parseInt((dh - tbot + div - 1) / div,10) || 1;
					if (tbot >= 0 || npage < 2 || p.scroll === true) {
						page = ( Math.round((tbot + scrollTop) / div) || 0) + 1;
						ttop = -1;
					} else {
						ttop = 1;
					}
				}
				if (ttop > 0) {
					page = ( parseInt(scrollTop / div,10) || 0 ) + 1;
					npage = (parseInt((scrollTop + dh) / div,10) || 0) + 2 - page;
					empty = true;
				}
				if (npage) {
					if (p.lastpage && (page > p.lastpage || p.lastpage===1 || (page === p.page && page===p.lastpage)) ) {
						return;
					}
					if (grid.hDiv.loading) {
						grid.timer = setTimeout(grid.populateVisible, p.scrollTimeout);
					} else {
						p.page = page;
						if( p.scrollMaxBuffer > 0 ) {
							if( rn > 0 && p.scrollMaxBuffer < rn ) {
								p.scrollMaxBuffer = rn + 1;
							}
							if(p.reccount  > (p.scrollMaxBuffer - (rn > 0 ? rn : 0) )  ) {
								empty = true;
							}
						}
						if (empty) {
							grid.selectionPreserver(table[0]);
							grid.emptyRows.call(table[0], false, false);
						}
						grid.populate(npage);
					}
					if(p.scrollPopUp && !$.jgrid.isNull(p.lastpage)) {
						$("#scroll_g"+p.id).show().html( $.jgrid.template( $.jgrid.getRegional(ts, "defaults.pgtext", p.pgtext) , p.page, p.lastpage)).css({ "top": p.scrollTopOffset+scrollTop*((parseInt(p.height,10) - 45)/ (parseInt(rh,10)*parseInt(p.records,10))) +"px", "left" : p.scrollLeftOffset});
						$(this).mouseout(function(){
							$("#scroll_g"+p.id).hide();
						});
					}
				}
			},
			scrollGrid: function() {
				if(!grid.bScroll) {
					grid.hScroll  = true;

					if(p.scroll) {
						var scrollTop = grid.bDiv.scrollTop;
						if(grid.scrollTop === undefined) { grid.scrollTop = 0; }
						if (scrollTop !== grid.scrollTop) {
							grid.scrollTop = scrollTop;
							if (grid.timer) { clearTimeout(grid.timer); }
							grid.timer = setTimeout(grid.populateVisible, p.scrollTimeout);
						}
					}
					grid.hDiv.scrollLeft = grid.bDiv.scrollLeft;
					if(p.footerrow) {
						grid.sDiv.scrollLeft = grid.bDiv.scrollLeft;
					}
					if(p.headerrow) {
						grid.hrDiv.scrollLeft = grid.bDiv.scrollLeft;
					}
					if(p.frozenColumns) {
						$(grid.fbDiv).scrollTop( grid.bDiv.scrollTop );
					}
					try {
						$("#column_menu").remove();
					} catch (e) {}
				}
				grid.bScroll = false;
			},
			selectionPreserver : function(ts) {
				var p = ts.p,
				sr = p.selrow, sra = p.selarrrow ? $.makeArray(p.selarrrow) : null,
				left = ts.grid.bDiv.scrollLeft,
				restoreSelection = function() {
					var i;
					//p.selrow = null;
					//p.selarrrow = [];
					if(p.multiselect && sra && sra.length>0) {
						for(i=0;i<sra.length;i++){
							if (sra[i]) {
								$(ts).jqGrid("setSelection", sra[i], false, "_sp_");
							}
						}
					}
					if (!p.multiselect && sr) {
						$(ts).jqGrid("setSelection", sr, false, null);
					}
					ts.grid.bDiv.scrollLeft = left;
					$(ts).off('.selectionPreserver', restoreSelection);
				};
				$(ts).on('jqGridGridComplete.selectionPreserver', restoreSelection);
			},
			hScroll : false,
			bScroll : false
		};
		if( this.tagName.toUpperCase() !== 'TABLE' || $.jgrid.isNull(this.id) ) {
			alert("Element is not a table or has no id!");
			return;
		}
		if(document.documentMode !== undefined ) { // IE only
			if(document.documentMode <= 5) {
				alert("Grid can not be used in this ('quirks') mode!");
				return;
			}
		}
		var i =0, lr, lk, dir, spsh;
		for( lk in $.jgrid.regional ){
			if($.jgrid.regional.hasOwnProperty(lk)) {
				if(i===0) { lr = lk; }
				i++;
			}
		}
		if(i === 1 && lr !== p.regional) {
			p.regional = lr;
		}
		$(this).empty().attr("tabindex","0");
		this.p = p ;
		this.p.useProp = !!$.fn.prop;
		if(this.p.colNames.length === 0) {
			for (i=0;i<this.p.colModel.length;i++){
				this.p.colNames[i] = this.p.colModel[i].label || this.p.colModel[i].name;
			}
		}
		if( this.p.colNames.length !== this.p.colModel.length ) {
			alert($.jgrid.getRegional(this,"errors.model"));
			return;
		}
		if(ts.p.styleUI === 'Bootstrap4') {
			if($.jgrid.iconSet.hasOwnProperty(ts.p.iconSet)) {
				$.extend(true, $.jgrid.styleUI.Bootstrap4, $.jgrid.iconSet[ts.p.iconSet]);
			}
		}
		if(ts.p.styleUI === 'Bootstrap5') {
			if($.jgrid.iconSet.hasOwnProperty(ts.p.iconSet)) {
				$.extend(true, $.jgrid.styleUI.Bootstrap5, $.jgrid.iconSet[ts.p.iconSet]);
			}
		}
		var getstyle = $.jgrid.getMethod("getStyleUI"),
		stylemodule = ts.p.styleUI + ".common",
		disabled = getstyle(stylemodule,'disabled', true),
		highlight = getstyle(stylemodule,'highlight', true),
		hover = getstyle(stylemodule,'hover', true),
		cornerall = getstyle(stylemodule,'cornerall', true),
		iconbase = getstyle(stylemodule,'icon_base', true),
		colmenustyle = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].colmenu,
		isMSIE = $.jgrid.msie(),
		gv, sortarr = [], sortord = [], sotmp=[];
		stylemodule = ts.p.styleUI + ".base";
		gv = $("<div "+getstyle(stylemodule, 'viewBox', false, 'ui-jqgrid-view')+" ></div>");
		ts.p.direction = $.jgrid.trim(ts.p.direction.toLowerCase());
		ts.p._ald = false;
		if($.inArray(ts.p.direction,["ltr","rtl"]) === -1) { ts.p.direction = "ltr"; }
		dir = ts.p.direction;

		$(gv).insertBefore(this);
		$(this).appendTo(gv);

		var eg = $("<div "+ getstyle(stylemodule, 'entrieBox', false, 'ui-jqgrid') +"></div>");
		$(eg).attr({"id" : "gbox_"+this.id,"dir":dir}).insertBefore(gv);
		$(gv).attr("id","gview_"+this.id).appendTo(eg);
		$("<div "+getstyle(ts.p.styleUI+'.common','overlay', false, 'jqgrid-overlay')+ " id='lui_"+this.id+"'></div>").insertBefore(gv);
		$("<div "+getstyle(stylemodule,'loadingBox', false, 'loading')+" id='load_"+this.id+"'>"+$.jgrid.getRegional(ts, "defaults.loadtext", this.p.loadtext)+"</div>").insertBefore(gv);

		$(this).attr({role:"grid","aria-multiselectable":!!this.p.multiselect,"aria-labelledby":"gbox_"+this.id});

		if(ts.p.datatype === 'indexeddb') { // datatype in databases
			$(ts).jqGrid('dbInit',ts.p.datatype );
		}
		var sortkeys = ["shiftKey","altKey","ctrlKey"],
		grid_font = $.jgrid.getFont( ts ) ,
		intNum = function(val, defval) {
			if( defval === undefined ) {
				defval = 0;
			}
			val = parseInt(val,10);
			return !isNaN(val) ? val : defval;
		},
		formatCol = function (pos, rowInd, tv, rawObject, rowId, rdata){
			var cm = ts.p.colModel[pos], cellAttrFunc,
			ral = cm.align, result="style=\"", clas = cm.classes, nm = cm.name, celp, acp=[];
			if(ral) { result += "text-align:"+ral+";"; }
			if(cm.hidden===true) { result += "display:none;"; }
			if(rowInd===0) {
				result += "width: "+grid.headers[pos].width+"px;";
			} else if ( $.jgrid.isFunction(cm.cellattr) || (typeof cm.cellattr === "string" && !$.jgrid.isNull( $.jgrid.cellattr ) && $.jgrid.isFunction($.jgrid.cellattr[cm.cellattr]))) {
				cellAttrFunc = $.jgrid.isFunction(cm.cellattr) ? cm.cellattr : $.jgrid.cellattr[cm.cellattr];
				celp = cellAttrFunc.call(ts, rowId, tv, rawObject, cm, rdata);
				if(celp && typeof celp === "string") {
					if(celp.indexOf('title') > -1) { cm.title=false;}
					if(celp.indexOf('class') > -1) { clas = undefined;}
					celp = String(celp).replace(/\s+\=/g, '=');
					acp = celp.split("style=");

					if(acp.length === 2 ) {
						acp[1] =  $.jgrid.trim(acp[1]);
						if(acp[1].indexOf("'") === 0 || acp[1].indexOf('"') === 0) {
							acp[1] = acp[1].substring(1);
						}
						result += acp[1].replace(/'/gi,'"');
					} else {
						result += "\"";
					}
				}
			}
			if(!acp.length ) { 
				acp[0] = ""; 
				result += "\"";
			} else if(acp.length > 2) {
				acp[0] = ""; 
			}
			result += (clas !== undefined ? (" class=\""+clas+"\"") :"") + ((cm.title && tv) ? (" title=\""+$.jgrid.stripHtml(tv)+"\"") :"");
			result += " aria-describedby=\""+ts.p.id+"_"+nm+"\"";
			return result + acp[0];
		},
		cellVal =  function (val) {
			return $.jgrid.isNull(val) || val === "" ? "&#160;" : (ts.p.autoencode ? $.jgrid.htmlEncode(val) : String(val));
		},
		formatter = function (rowId, cellval , colpos, rwdat, _act){
			var cm = ts.p.colModel[colpos],v;
			rowId = String(ts.p.idPrefix) !== "" ? $.jgrid.stripPref(ts.p.idPrefix, rowId) : rowId;
			var opts= {rowId: rowId, colModel:cm, gid:ts.p.id, pos:colpos, styleUI: ts.p.styleUI };
			if(cm.formatter !== undefined) {
				if($.jgrid.isFunction( cm.formatter ) ) {
					v = cm.formatter.call(ts,cellval,opts,rwdat,_act);
				} else if($.fmatter){
					v = $.fn.fmatter.call(ts,cm.formatter,cellval,opts,rwdat,_act);
				} else {
					v = cellVal(cellval);
				}
			} else {
				v = cellVal(cellval);
			}
			if(ts.p.autoResizing && cm.autosize) {
				if(!cm._maxsize) {
					cm._maxsize = cm.canvas_width;
				}
				cm._maxsize = Math.max( (!!$.jgrid.isFunction( cm.sizingStringFunc ) ? 
							cm.sizingStringFunc.call(ts, v, grid_font, opts, rwdat) : 
							$.jgrid.getTextWidth( v, grid_font ) ), 
					cm._maxsize );
			}
			return v;
		},
		addCell = function(rowId,cell,pos,irow, srvr, rdata) {
			var v,prp;
			v = formatter(rowId,cell,pos,srvr,'add');
			prp = formatCol( pos,irow, v, srvr, rowId, rdata);
			return "<td role=\"gridcell\" "+prp+">"+v+"</td>";
		},
		addMulti = function(rowid, pos, irow, checked, uiclass, srvr){
			var rowSelectTitle=$.jgrid.getRegional(ts, "defaults.selectLine");
			rowSelectTitle=rowSelectTitle ? rowSelectTitle : $.jgrid.regional['en'].defaults.selectLine;
			var	v = "<input role=\"checkbox\" title='"+rowSelectTitle+"' type=\"checkbox\""+" id=\"jqg_"+ts.p.id+"_"+rowid+"\" "+uiclass+" name=\"jqg_"+ts.p.id+"_"+rowid+"\"" + (checked ? "checked=\"checked\"" : "")+"/>",
			cm = ts.p.colModel[pos];
			if(cm.formatter !== undefined && $.jgrid.isFunction( cm.formatter )) {
				v = cm.formatter.call(ts,v,{rowId: rowid, colModel:cm, gid:ts.p.id, pos:pos, styleUI: ts.p.styleUI },srvr,'add');
			}
			var prp = formatCol( pos,irow, v, srvr, rowid, true);
			return "<td role=\"gridcell\" "+prp+">"+v+"</td>";
		},
		addRowNum = function (pos, irow, pG, rN, uiclass ) {
			var v =  (parseInt(pG,10)-1)*parseInt(rN,10)+1+irow,
			prp = formatCol( pos,irow,v, null, irow, true);
			return "<td role=\"gridcell\" "+uiclass+" "+prp+">"+v+"</td>";
		},
		addSearch = function(rowid, pos, irow, uiclass){
			var searchColEvent = ts.p.searchColOptions.searchOnEnter ? " onchange=\"$.jgrid.searchColOnEnter('"+ts.p.id+"',"+rowid+", this)\"" : " onkeydown=\"$.jgrid.searchColOnKey('"+ts.p.id+"',"+rowid+",this, event)\"";
			var	v = "<input type=\"text\""+" id=\"jqs_"+ts.p.id+"_"+rowid+"\" name=\"jqs_"+ts.p.id+"_"+rowid+"\" "+uiclass+ searchColEvent +"/>",
				prp = formatCol( pos,irow,'',null, rowid, true);
			return "<td role=\"gridcell\" "+prp+">"+v+"</td>";
		},
		reader = function (datatype) {
			var field, f=[], j=0, i;
			for(i =0; i<ts.p.colModel.length; i++){
				field = ts.p.colModel[i];
				if (field.name !== 'cb' && field.name !=='subgrid' && field.name !=='rn' && field.name !=='sc') {
					f[j]= datatype === "local" ?
					field.name :
					( (datatype==="xml" || datatype === "xmlstring") ? field.xmlmap || field.name : field.jsonmap || field.name );
					if(ts.p.keyName !== false && field.key===true ) {
						ts.p.keyName = f[j];
						ts.p.keyIndex = j;
					}
					j++;
				}
			}
			return f;
		},
		orderedCols = function (offset) {
			var order = ts.p.remapColumns;
			if (!order || !order.length) {
				order = $.map(ts.p.colModel, function(v,i) { return i; });
			}
			if (offset) {
				order = $.map(order, function(v) { return v<offset?null:v-offset; });
			}
			return order;
		},
		emptyRows = function (scroll, locdata) {
			var firstrow;
			if (this.p.deepempty) {
				$(this.rows).slice(1).remove();
			} else {
				firstrow = this.rows.length > 0 ? this.rows[0] : null;
				$(this.firstChild).empty().append(firstrow);
			}
			if (scroll && this.p.scroll) {
				$(this.grid.bDiv.firstChild).css({height: "auto"});
				$(this.grid.bDiv.firstChild.firstChild).css({height: "0px", display: "none"});
				if (this.grid.bDiv.scrollTop !== 0) {
					this.grid.bDiv.scrollTop = 0;
				}
			}
			if(locdata === true ) { //&& this.p.treeGrid && !this.p.loadonce ) {
				this.p.data = []; 
				this.p._index = {};
			}
		},
		normalizeData = function() {
			var p = ts.p, data = p.data, dataLength = data.length, i, j, cur, idn, idr, ccur, v, rd,
			localReader = p.localReader,
			colModel = p.colModel,
			cellName = localReader.cell,
			iOffset = (p.multiselect === true ? 1 : 0) + (p.subGrid === true ? 1 : 0) + (p.rownumbers === true ? 1 : 0) + (p.searchCols === true ? 1 : 0),
			br = p.scroll ? $.jgrid.randId() : 1,
			arrayReader, objectReader, rowReader;

			if (p.datatype !== "local" || localReader.repeatitems !== true) {
				return; // nothing to do
			}

			arrayReader = orderedCols(iOffset);
			objectReader = reader("local");
			// read ALL input items and convert items to be read by
			// $.jgrid.getAccessor with column name as the second parameter
			idn = p.keyName === false ?
				($.jgrid.isFunction(localReader.id) ? localReader.id.call(ts, data) : localReader.id) :
				p.keyName;
			for (i = 0; i < dataLength; i++) {
				cur = data[i];
				// read id in the same way like addJSONData do
				// probably it would be better to start with "if (cellName) {...}"
				// but the goal of the current implementation was just have THE SAME
				// id values like in addJSONData ...
				idr = $.jgrid.getAccessor(cur, idn);
				if (idr === undefined) {
					if (typeof idn === "number" &&  !$.jgrid.isNull( colModel[idn + iOffset]) ) {
						// reread id by name
						idr = $.jgrid.getAccessor(cur, colModel[idn + iOffset].name);
					}
					if (idr === undefined) {
						idr = br + i;
						if (cellName) {
							ccur = $.jgrid.getAccessor(cur, cellName) || cur;
							idr = !$.jgrid.isNull(ccur) && ccur[idn] !== undefined ? ccur[idn] : idr;
							ccur = null;
						}
					}
				}
				rd = { };
				rd[localReader.id] = idr;
				if (cellName) {
					cur = $.jgrid.getAccessor(cur, cellName) || cur;
				}
				rowReader = Array.isArray(cur) ? arrayReader : objectReader;
				for (j = 0; j < rowReader.length; j++) {
					v = $.jgrid.getAccessor(cur, rowReader[j]);
					rd[colModel[j + iOffset].name] = v;
				}
				data[i] = rd;
				//$.extend(true, data[i], rd);
			}
		},
		refreshIndex = function() {
			var datalen = ts.p.data.length, idname, i, val;

			idname =  ts.p.keyName !== false ? ts.p.keyName : idname = ts.p.localReader.id;
			ts.p._index = {};
			for(i =0;i < datalen; i++) {
				val = $.jgrid.getAccessor(ts.p.data[i],idname);
				if (val === undefined) { val=String(i+1); }
				ts.p._index[val] = i;
			}
		},
		constructTr = function(id, hide, classes, rd, cur ) {
			var tabindex = '-1', restAttr = '', attrName, style = hide ? 'display:none;' : '',
				//classes = getstyle(stylemodule, 'rowBox', true) + ts.p.direction + (altClass ? ' ' + altClass : '') + (selected ? ' ' + highlight : ''),
				rowAttrObj = $(ts).triggerHandler("jqGridRowAttr", [rd, cur, id]);
			if( typeof rowAttrObj !== "object" ) {
				rowAttrObj = $.jgrid.isFunction(ts.p.rowattr) ? ts.p.rowattr.call(ts, rd, cur, id) :
					(typeof ts.p.rowattr === "string" && !$.jgrid.isNull($.jgrid.rowattr) && $.jgrid.isFunction($.jgrid.rowattr[ts.p.rowattr]) ?
					$.jgrid.rowattr[ts.p.rowattr].call(ts, rd, cur, id) : {});
			}
			if(!$.isEmptyObject( rowAttrObj )) {
				if (rowAttrObj.hasOwnProperty("id")) {
					id = rowAttrObj.id;
					delete rowAttrObj.id;
				}
				if (rowAttrObj.hasOwnProperty("tabindex")) {
					tabindex = rowAttrObj.tabindex;
					delete rowAttrObj.tabindex;
				}
				if (rowAttrObj.hasOwnProperty("style")) {
					style += rowAttrObj.style;
					delete rowAttrObj.style;
				}
				if (rowAttrObj.hasOwnProperty("class")) {
					classes += ' ' + rowAttrObj['class'];
					delete rowAttrObj['class'];
				}
				// dot't allow to change role attribute
				try { delete rowAttrObj.role; } catch(ra){}
				for (attrName in rowAttrObj) {
					if (rowAttrObj.hasOwnProperty(attrName)) {
						restAttr += ' ' + attrName + '=' + rowAttrObj[attrName];
					}
				}
			}
			return '<tr role="row" id="' + id + '" tabindex="' + tabindex + '" class="' + classes + '"' +
				(style === '' ? '' : ' style="' + style + '"') + restAttr + '>';
		},
		//bvn13
		treeGrid_beforeRequest = function() {
			if (ts.p.treeGrid && ts.p.treeGrid_bigData) {
				if (	ts.p.postData.nodeid !== undefined &&
						typeof(ts.p.postData.nodeid) === 'string' &&
						( ts.p.postData.nodeid !== ""	||
							parseInt(ts.p.postData.nodeid,10) > 0 )
				) {
                    ts.p.postData.rows = 10000;
                    ts.p.postData.page = 1;
                    ts.p.treeGrid_rootParams.otherData.nodeid = ts.p.postData.nodeid;
				}
			}
		},
		treeGrid_afterLoadComplete = function() {
			if (ts.p.treeGrid && ts.p.treeGrid_bigData) {
				if (	ts.p.treeGrid_rootParams.otherData.nodeid !== undefined	&&
						typeof(ts.p.treeGrid_rootParams.otherData.nodeid) === 'string' &&
						(
							ts.p.treeGrid_rootParams.otherData.nodeid !== "" ||
                            parseInt(ts.p.treeGrid_rootParams.otherData.nodeid,10) > 0
						)
				) {
					if ( ts.p.treeGrid_rootParams !== undefined && !$.jgrid.isNull(ts.p.treeGrid_rootParams) ) {
						ts.p.page = ts.p.treeGrid_rootParams.page;
						ts.p.lastpage = ts.p.treeGrid_rootParams.lastpage;

						ts.p.postData.rows = ts.p.treeGrid_rootParams.postData.rows;
                        ts.p.postData.totalrows = ts.p.treeGrid_rootParams.postData.totalrows;

                        ts.p.treeGrid_rootParams.otherData.nodeid = "";
                        ts.updatepager(false,true);
					}
				} else {
					ts.p.treeGrid_rootParams = {
						page : ts.p.page,
						lastpage : ts.p.lastpage,
						postData : {
                            rows: ts.p.postData.rows,
                            totalrows: ts.p.postData.totalrows
                        },
                        rowNum : ts.p.rowNum,
                        rowTotal : ts.p.rowTotal,
                        otherData : {
                            nodeid : ""
                        }
					};
				}
			}
		},
		//-bvn13
		addXmlData = function (xml, rcnt, more, adjust) {
			var startReq = new Date(),
			locdata = (ts.p.datatype !== "local" && ts.p.loadonce) || ts.p.datatype === "xmlstring",
			xmlid = "_id_", xmlRd = ts.p.xmlReader,
			treeadjtmp =[],
			frd = ts.p.datatype === "local" ? "local" : "xml";
			if(locdata) {
				ts.p.data = [];
				ts.p._index = {};
				ts.p.localReader.id = xmlid;
			}
			ts.p.reccount = 0;
			if($.isXMLDoc(xml)) {
				if(ts.p.treeANode===-1 && !ts.p.scroll) {
					emptyRows.call(ts, false, false);
					rcnt=1;
				} else { rcnt = rcnt > 1 ? rcnt :1; }
			} else { return; }
			var self= $(ts), i,fpos,ir=0,v,si=0,addSubGridCell,idn, getId,f=[],F,rd ={},
					xmlr,rid, rowData=[], classes = getstyle(stylemodule, 'rowBox', true, 'jqgrow ui-row-'+ ts.p.direction),
					ni=ts.p.rownumbers===true ? 1 : 0,
					gi=ts.p.multiselect===true ? 1 : 0,
					sc = ts.p.searchCols ===true ? 1 : 0;
			if(ts.p.subGrid===true) {
				si = 1;
				addSubGridCell = $.jgrid.getMethod("addSubGridCell");
			}
			if(!xmlRd.repeatitems) {f = reader(frd);}
			if( ts.p.keyName===false) {
				idn = $.jgrid.isFunction( xmlRd.id ) ?  xmlRd.id.call(ts, xml) : xmlRd.id;
			} else {
				idn = ts.p.keyName;
			}
			if(xmlRd.repeatitems && ts.p.keyName && isNaN(idn)) {
				idn = ts.p.keyIndex;
			}
			if( String(idn).indexOf("[") === -1 ) {
				if (f.length) {
					getId = function( trow, k) {return $(idn,trow).text() || k;};
				} else {
					getId = function( trow, k) {return $(xmlRd.cell,trow).eq(idn).text() || k;};
				}
			}
			else {
				getId = function( trow, k) {return trow.getAttribute(idn.replace(/[\[\]]/g,"")) || k;};
			}
			ts.p.userData = {};
			ts.p.page = intNum($.jgrid.getXmlData(xml, xmlRd.page), ts.p.page);
			ts.p.lastpage = intNum($.jgrid.getXmlData(xml, xmlRd.total), 1);
			ts.p.records = intNum($.jgrid.getXmlData(xml, xmlRd.records));
			if($.jgrid.isFunction(xmlRd.userdata)) {
				ts.p.userData = xmlRd.userdata.call(ts, xml) || {};
			} else {
				$.jgrid.getXmlData(xml, xmlRd.userdata, true).each(function() {ts.p.userData[this.getAttribute("name")]= $(this).text();});
			}
			var gxml = $.jgrid.getXmlData( xml, xmlRd.root, true);
			gxml = $.jgrid.getXmlData( gxml, xmlRd.row, true);
			if (!gxml) { gxml = []; }
			var gl = gxml.length, j=0, grpdata=[], rn = parseInt(ts.p.rowNum,10), br=ts.p.scroll?$.jgrid.randId():1,
				tablebody = $(ts).find("tbody").first(),
				hiderow=false, groupingPrepare, selr;
			if(ts.p.grouping)  {
				hiderow = ts.p.groupingView.groupCollapse === true;
				groupingPrepare = $.jgrid.getMethod("groupingPrepare");
			}
			if (gl > 0 &&  ts.p.page <= 0) { ts.p.page = 1; }
			if(gxml && gl){
				if (adjust) { rn *= adjust+1; }
				var afterInsRow = $.jgrid.isFunction(ts.p.afterInsertRow),
				rnc = ni ? getstyle(stylemodule, 'rownumBox', false, 'jqgrid-rownum') :"",
				scc = sc ? getstyle(stylemodule, 'searchBox', false, '') :"",
				mlc = gi ? getstyle(stylemodule, 'multiBox', false, 'cbox'):"";

				while (j<gl) {
					xmlr = gxml[j];
					rid = getId(xmlr,br+j);
					rid  = ts.p.idPrefix + rid;
					if( ts.p.preserveSelection) {
						if( ts.p.multiselect) {
							selr = ts.p.selarrrow.indexOf( rid ) !== -1;
							spsh = selr ? spsh+1: spsh;
						} else {
							selr = (rid === ts.p.selrow);
						}
					}
					var iStartTrTag = rowData.length;
					rowData.push("");
					if( ni ) {
						rowData.push( addRowNum(0, j, ts.p.page, ts.p.rowNum, rnc ) );
					}
					if( gi ) {
						rowData.push( addMulti(rid, ni, j + 1, selr, mlc, xmlr) );
					}
					if( sc ){
						rowData.push( addSearch(rid, gi+ni, j + 1, scc) );
					}
					if( si ) {
						rowData.push( addSubGridCell.call(self, gi+ni+sc, j + 1) );
					}
					if(xmlRd.repeatitems){
						if (!F) { F=orderedCols(gi+si+ni+sc); }
						var cells = $.jgrid.getXmlData( xmlr, xmlRd.cell, true);
						$.each(F, function (k) {
							var cell = cells[this];
							if (!cell) { return false; }
							v = cell.textContent || cell.text || "";
							rd[ts.p.colModel[k+gi+si+ni+sc].name] = v;
							rowData.push( addCell(rid,v,k+gi+si+ni+sc,j+rcnt,xmlr, rd) );
						});
					} else {
						for(i = 0; i < f.length;i++) {
							v = $.jgrid.getXmlData( xmlr, f[i]);
							rd[ts.p.colModel[i+gi+si+ni+sc].name] = v;
							rowData.push( addCell(rid, v, i+gi+si+ni+sc, j+rcnt, xmlr, rd) );
						}
					}
					rowData[iStartTrTag] = constructTr(rid, hiderow, classes, rd, xmlr);
					rowData.push("</tr>");
					if(ts.p.grouping) {
						grpdata.push( rowData );
						if(!ts.p.groupingView._locgr) {
							groupingPrepare.call(self , rd, j );
						}
						rowData = [];
					}
					if(locdata || (ts.p.treeGrid === true && !(ts.p._ald)) ) {
						rd[xmlid] = $.jgrid.stripPref(ts.p.idPrefix, rid);
						ts.p.data.push(rd);
						ts.p._index[rd[xmlid]] = ts.p.data.length-1;
						if(ts.p.treeANode > -1 && ts.p.treeGridModel === 'adjacency') {
							treeadjtmp.push(rd);
						}
					}
					if(ts.p.gridview === false ) {
						tablebody.append(rowData.join(''));
						self.triggerHandler("jqGridAfterInsertRow", [rid, rd, xmlr]);
						if(afterInsRow) {ts.p.afterInsertRow.call(ts,rid,rd,xmlr);}
						rowData=[];
					}
					rd={};
					ir++;
					j++;
					if(ir===rn) {break;}
				}
			}
			spsh =  ir > 0 && ts.p.multiselect && ts.p.preserveSelection && ir === spsh ;
			if(ts.p.gridview === true) {
				fpos = ts.p.treeANode > -1 ? ts.p.treeANode: 0;
				if(ts.p.grouping) {
					if(!locdata) {
						self.jqGrid('groupingRender',grpdata,ts.p.colModel.length, ts.p.page, rn);
						grpdata = null;
					}
				} else if(ts.p.treeGrid === true && fpos > 0) {
					$(ts.rows[fpos]).after(rowData.join(''));
				} else {
					//$("tbody:first",t).append(rowData.join(''));
					tablebody.append(rowData.join(''));
					ts.grid.cols = ts.rows[0].cells; // update cached first row
				}
			}
			ts.p.totaltime = new Date() - startReq;
			rowData =null;
			if(ir>0) { if(ts.p.records===0) { ts.p.records=gl;} }
			if( ts.p.treeGrid === true) {
				try {self.jqGrid("setTreeNode", fpos+1, ir+fpos+1);} catch (e) {}
				if(ts.p.treeANode > -1 && ts.p.treeGridModel === 'adjacency') {
					v = ts.rows[ts.p.treeANode].id;
					v = ts.p._index[v]+1;
					if( v >= 1) {
						ts.p.data.splice(-(gl), gl);
						for(i=0; i < gl; i++) {
							ts.p.data.splice(v + i,0,treeadjtmp[i]);
						}
						refreshIndex();
					}
				}				
			}
			//if(!ts.p.treeGrid && !ts.p.scroll) {ts.grid.bDiv.scrollTop = 0;}
			ts.p.reccount=ir;
			ts.p.treeANode = -1;
			if(ts.p.userDataOnFooter) { self.jqGrid("footerData", "set", ts.p.userData, ts.p.formatFooterData, 0, false); }
			if(ts.p.userDataOnHeader) { self.jqGrid("headerData", "set", ts.p.userData, ts.p.formatHeaderData, 0, false); }
			if(locdata) {
				ts.p.records = gl;
				ts.p.lastpage = Math.ceil(gl/ rn);
			}
			if (!more) { ts.updatepager(false,true); }
			if(spsh) {
				setHeadCheckBox( true );
			}
			if(locdata) {
				while (ir<gl) {
					xmlr = gxml[ir];
					rid = getId(xmlr,ir+br);
					rid  = ts.p.idPrefix + rid;
					if(xmlRd.repeatitems){
						if (!F) { F=orderedCols(gi+si+ni+sc); }
						var cells2 = $.jgrid.getXmlData( xmlr, xmlRd.cell, true);
						$.each(F, function (k) {
							var cell = cells2[this];
							if (!cell) { return false; }
							v = cell.textContent || cell.text || "";
							rd[ts.p.colModel[k+gi+si+ni+sc].name] = v;
						});
					} else {
						for(i = 0; i < f.length;i++) {
							v = $.jgrid.getXmlData( xmlr, f[i]);
							rd[ts.p.colModel[i+gi+si+ni+sc].name] = v;
						}
					}
					rd[xmlid] = $.jgrid.stripPref(ts.p.idPrefix, rid);
					if( ts.p.grouping ) {
						groupingPrepare.call(self, rd, ir );
					}
					ts.p.data.push(rd);
					ts.p._index[rd[xmlid]] = ts.p.data.length-1;
					rd = {};
					ir++;
				}
				if(ts.p.grouping) {
					ts.p.groupingView._locgr = true;
					self.jqGrid('groupingRender', grpdata, ts.p.colModel.length, ts.p.page, rn);
					grpdata = null;
				}
			}
			if(ts.p.subGrid === true ) {
				try {self.jqGrid("addSubGrid",gi+ni);} catch (_){}
			}
		},
		addJSONData = function(data, rcnt, more, adjust) {
			var startReq = new Date();
			if(data) {
				if(ts.p.treeANode === -1 && !ts.p.scroll) {
					emptyRows.call(ts, false, false);
					rcnt=1;
				} else { rcnt = rcnt > 1 ? rcnt :1; }
			} else { return; }

			var dReader, frd;
			if(ts.p.datatype === "local") {
				dReader =  ts.p.localReader;
				frd= 'local';
			} else {
				dReader =  ts.p.jsonReader;
				frd='json';
			}

			var locid = "_id_",
				locdata = (ts.p.datatype !== "local" && ts.p.loadonce) || ts.p.datatype === "jsonstring",
				self = $(ts),
				ir=0,v,i,j,f=[],cur, addSubGridCell,
				gi = ts.p.multiselect ? 1 : 0,
				si = ts.p.subGrid ===true ? 1 : 0,
				ni = ts.p.rownumbers ===true ? 1 : 0,
				sc = ts.p.searchCols ===true ? 1 : 0,
				br = (ts.p.scroll && ts.p.datatype !== 'local') ? $.jgrid.randId() : 1,
				rn = parseInt(ts.p.rowNum,10),
				selected=false, selr,
				arrayReader=orderedCols(gi+si+ni+sc),
				objectReader=reader(frd),
				rowReader,len,drows,idn,rd={}, fpos, idr,rowData=[],
				treeadjtmp =[],
				classes = getstyle(stylemodule, 'rowBox', true, 'jqgrow ui-row-'+ ts.p.direction),
				afterInsRow = $.jgrid.isFunction(ts.p.afterInsertRow), grpdata=[],hiderow=false, groupingPrepare,
				tablebody = $(ts).find("tbody").first(),
				rnc = ni ? getstyle(stylemodule, 'rownumBox', false, 'jqgrid-rownum') :"",
				scc = sc ? getstyle(stylemodule, 'searchBox', false, '') :"",
				mlc = gi ? getstyle(stylemodule, 'multiBox', false, 'cbox'):"";

			if(locdata) {
				ts.p.data = [];
				ts.p._index = {};
				ts.p.localReader.id = locid;
			}

			ts.p.reccount = 0;
			ts.p.page = intNum($.jgrid.getAccessor(data,dReader.page), ts.p.page);
			ts.p.lastpage = intNum($.jgrid.getAccessor(data,dReader.total), 1);
			ts.p.records = intNum($.jgrid.getAccessor(data,dReader.records));
			ts.p.userData = $.jgrid.getAccessor(data,dReader.userdata) || {};
			
			if(si) {
				addSubGridCell = $.jgrid.getMethod("addSubGridCell");
			}
			if( ts.p.keyName===false ) {
				idn = $.jgrid.isFunction(dReader.id) ? dReader.id.call(ts, data) : dReader.id;
			} else {
				idn = ts.p.keyName;
			}
			if(dReader.repeatitems && ts.p.keyName && isNaN(idn)) {
				idn = ts.p.keyIndex;
			}
			drows = $.jgrid.getAccessor(data,dReader.root);
			if ( $.jgrid.isNull(drows) && Array.isArray(data)) { drows = data; }
			if (!drows) { drows = []; }
			len = drows.length; i = 0;
			if (len > 0 && ts.p.page <= 0) { ts.p.page = 1; }
			if (adjust) { rn *= adjust+1; }
			if(ts.p.datatype === "local" && !ts.p.deselectAfterSort) {
				selected = true;
			}
			if(ts.p.grouping)  {
				hiderow = ts.p.groupingView.groupCollapse === true;
				groupingPrepare = $.jgrid.getMethod("groupingPrepare");
			}
			while (i<len) {
				cur = drows[i];
				idr = $.jgrid.getAccessor(cur,idn);
				if(idr === undefined) {
					if (typeof idn === "number" && !$.jgrid.isNull( ts.p.colModel[idn+gi+si+ni+sc]) ) {
						// reread id by name
						idr = $.jgrid.getAccessor(cur,ts.p.colModel[idn+gi+si+ni+sc].name);
					}
					if(idr === undefined) {
						idr = br+i;
						if(f.length===0){
							if(dReader.cell){
								var ccur = $.jgrid.getAccessor(cur,dReader.cell) || cur;
								idr = !$.jgrid.isNull(ccur) && ccur[idn] !== undefined ? ccur[idn] : idr;
								ccur=null;
							}
						}
					}
				}
				idr  = ts.p.idPrefix + idr;
				if( selected || ts.p.preserveSelection) {
					if( ts.p.multiselect) {
						selr = ts.p.selarrrow.indexOf( idr ) !== -1;
						spsh = selr ? spsh+1: spsh;
					} else {
						selr = (idr === ts.p.selrow);
					}
				}
				var iStartTrTag = rowData.length;
				rowData.push("");
				if( ni ) {
					rowData.push( addRowNum(0, i, ts.p.page, ts.p.rowNum, rnc ) );
				}
				if( gi ){
					rowData.push( addMulti(idr, ni, i + 1, selr, mlc, cur) );
				}
				if( sc ){
					rowData.push( addSearch(idr, gi+ni, i + 1, scc) );
				}
				if( si ) {
					rowData.push( addSubGridCell.call(self ,gi+ni+sc,i + 1) );
				}
				rowReader=objectReader;
				if (dReader.repeatitems) {
					if(dReader.cell) {cur = $.jgrid.getAccessor(cur,dReader.cell) || cur;}
					if (Array.isArray(cur)) { rowReader=arrayReader; }
				}
				for (j=0;j<rowReader.length;j++) {
					v = $.jgrid.getAccessor(cur,rowReader[j]);
					rd[ts.p.colModel[j+gi+si+ni+sc].name] = v;
					rowData.push( addCell(idr,v,j+gi+si+ni+sc,i+rcnt,cur, rd) );
				}
				rowData[iStartTrTag] = constructTr(idr, hiderow, (selr ? classes + ' ' + highlight : classes), rd, cur);
				rowData.push( "</tr>" );
				if(ts.p.grouping) {
					grpdata.push( rowData );
					if(!ts.p.groupingView._locgr) {
						groupingPrepare.call(self , rd, i);
					}
					rowData = [];
				}
				if(locdata || (ts.p.treeGrid===true && !(ts.p._ald))) {
					rd[locid] = $.jgrid.stripPref(ts.p.idPrefix, idr);
					ts.p.data.push(rd);
					ts.p._index[rd[locid]] = ts.p.data.length-1;
					if(ts.p.treeANode > -1 && ts.p.treeGridModel === 'adjacency') {
						treeadjtmp.push(rd);
					}
				}
				if(ts.p.gridview === false ) {
					tablebody.append(rowData.join(''));
					self.triggerHandler("jqGridAfterInsertRow", [idr, rd, cur]);
					if(afterInsRow) {ts.p.afterInsertRow.call(ts,idr,rd,cur);}
					rowData=[];//ari=0;
				}
				rd={};
				ir++;
				i++;
				if(ir===rn) { break; }
			}
			spsh =  ir > 0 && ts.p.multiselect && (ts.p.preserveSelection || selected) && ir === spsh;
			if(ts.p.gridview === true ) {
				fpos = ts.p.treeANode > -1 ? ts.p.treeANode: 0;
				if(ts.p.grouping) {
					if(!locdata) {
						self.jqGrid('groupingRender', grpdata, ts.p.colModel.length, ts.p.page, rn);
						grpdata = null;
					}
				} else if(ts.p.treeGrid === true && fpos > 0) {
					$(ts.rows[fpos]).after(rowData.join(''));
				} else {
					tablebody.append(rowData.join(''));
					ts.grid.cols = ts.rows[0].cells;
				}
			}
			ts.p.totaltime = new Date() - startReq;
			rowData = null;
			if(ir>0) {
				if(ts.p.records===0) { ts.p.records=len; }
			}
			if( ts.p.treeGrid === true) {
				try {self.jqGrid("setTreeNode", fpos+1, ir+fpos+1);} catch (e) {}
				if(ts.p.treeANode > -1 && ts.p.treeGridModel === 'adjacency') {
					v = ts.rows[ts.p.treeANode].id;
					v = ts.p._index[v]+1;
					if( v >= 1) {
						ts.p.data.splice(-(len), len);
						for(i=0; i < len; i++) {
							ts.p.data.splice(v + i,0,treeadjtmp[i]);
						}
						refreshIndex();
					}
				}
			}
			//if(!ts.p.treeGrid && !ts.p.scroll) {ts.grid.bDiv.scrollTop = 0;}
			ts.p.reccount=ir;
			ts.p.treeANode = -1;
			if(ts.p.userDataOnFooter) { self.jqGrid("footerData", "set", ts.p.userData, ts.p.formatFooterData, 0, false); }
			if(ts.p.userDataOnHeader) { self.jqGrid("headerData", "set", ts.p.userData, ts.p.formatHeaderData, 0, false); }
			if(locdata) {
				ts.p.records = len;
				ts.p.lastpage = Math.ceil(len/ rn);
			}
			if (!more) { ts.updatepager(false,true); }
			if(spsh) {
				setHeadCheckBox( true );
			}
			if(locdata) {
				while (ir<len && drows[ir]) {
					cur = drows[ir];
					idr = $.jgrid.getAccessor(cur,idn);
					if(idr === undefined) {
						if (typeof idn === "number" && !$.jgrid.isNull(ts.p.colModel[idn+gi+si+ni+sc])) {
							// reread id by name
							idr = $.jgrid.getAccessor(cur,ts.p.colModel[idn+gi+si+ni+sc].name);
						}
						if(idr === undefined) {
							idr = br+ir;
							if(f.length===0){
								if(dReader.cell){
									var ccur2 = $.jgrid.getAccessor(cur,dReader.cell) || cur;
									idr = !$.jgrid.isNull(ccur2) && ccur2[idn] !== undefined ? ccur2[idn] : idr;
									ccur2=null;
								}
							}
						}
					}
					if(cur) {
						idr  = ts.p.idPrefix + idr;
						rowReader=objectReader;
						if (dReader.repeatitems) {
							if(dReader.cell) {cur = $.jgrid.getAccessor(cur,dReader.cell) || cur;}
							if (Array.isArray(cur)) { rowReader=arrayReader; }
						}

						for (j=0;j<rowReader.length;j++) {
							rd[ts.p.colModel[j+gi+si+ni+sc].name] = $.jgrid.getAccessor(cur,rowReader[j]);
						}
						rd[locid] = $.jgrid.stripPref(ts.p.idPrefix, idr);
						if(ts.p.grouping) {
							groupingPrepare.call(self, rd, ir );
						}
						ts.p.data.push(rd);
						ts.p._index[rd[locid]] = ts.p.data.length-1;
						rd = {};
					}
					ir++;
				}
				if(ts.p.grouping) {
					ts.p.groupingView._locgr = true;
					self.jqGrid('groupingRender', grpdata, ts.p.colModel.length, ts.p.page, rn);
					grpdata = null;
				}
			}
			if(ts.p.subGrid === true ) {
				try { self.jqGrid("addSubGrid",gi+ni+sc);} catch (_){}
			}
		},
		addIndexedDBData = async function ( retAll ) {
			return new Promise(function(resolve, reject){
			let INDEX_NAME = ts.p.sortname,
			ORDER = ts.p.sortorder.toLowerCase(),
			recordsperpage = parseInt(ts.p.rowNum,10),
			total=0, totalpages,
			page = parseInt(ts.p.page,10),
			srules, everyORsome = 'every',
			range = null;
			const _usecase = ts.p.ignoreCase;
			if(retAll) {
				page = 1;
				recordsperpage = 1000000;
			}
			if(!INDEX_NAME) {
				INDEX_NAME = ts.p.sortname = ts.p.colModel[0].index || ts.p.colModel[0].name;
			}
			if (ts.p.search === true) {
				srules = ts.p.postData.filters;
				if(srules) {
					if(typeof srules === "string") { srules = $.jgrid.parse(srules);}
					if(srules.groupOp === "OR") {
						everyORsome = 'some';
					}
					srules.rules.map(el=>{ 
						if(_usecase) {
							el.data = el.data.toLowerCase();
						}
						el.type = 'text';
						let col = $(ts).jqGrid('getColProp', el.field);
						let type = col.sorttype || col.stype;
						let conv =  !(el.op === 'bt' || el.op === 'in' || el.op === 'ni');
						switch(type) {
							case 'int':
							case 'integer':
								if(conv) {
									el.data = parseInt(el.data,10);
								}
								el.type='num';
								break;
							case 'float':
							case 'number':
							case 'numeric':
								if(conv) {
									el.data = parseFloat(el.data);
								}
								el.type='num';
								break;
						}
					});
				}
			}
			var compareFnMap = {
				'eq': function(queryObj, data, _uselwcs) { return (_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field])  === queryObj.data;},
				'ne': function(queryObj, data, _uselwcs) { return (_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]) !== queryObj.data;},
				'lt': function(queryObj, data, _uselwcs) { return (_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]) < queryObj.data;},
				'le': function(queryObj, data, _uselwcs) { return (_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]) <= queryObj.data;},
				'gt': function(queryObj, data, _uselwcs) { return (_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]) > queryObj.data;},
				'ge': function(queryObj, data, _uselwcs) { return (_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]) >= queryObj.data;},
				'bw': function(queryObj, data, _uselwcs) { return (_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]).indexOf(queryObj.data) === 0;},
				'bn': function(queryObj, data, _uselwcs) { return !((_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]).indexOf(queryObj.data) === 0);},
				'ew': function(queryObj, data, _uselwcs) { return (_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]).endsWith(queryObj.data);},
				'en': function(queryObj, data, _uselwcs) { return !((_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]).endsWith(queryObj.data));},
				'cn': function(queryObj, data, _uselwcs) { return (_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]).indexOf(queryObj.data) > -1;},
				'nc': function(queryObj, data, _uselwcs) { return !((_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field])) > -1;},
				'in': function(queryObj, data, _uselwcs) { return queryObj.data.split(",").map(el=>{return (_uselwcs ? el.trim().toLowerCase() : el.trim());}).indexOf(data[queryObj.field]) > -1;},
				'ni': function(queryObj, data, _uselwcs) { return queryObj.data.split(",").map(el=>{return (_uselwcs ? el.trim().toLowerCase() : el.trim());}).indexOf(data[queryObj.field].trim()) === -1;},
				'nu': function(queryObj, data, _uselwcs) { return data[queryObj.field] === null;},
				'nn': function(queryObj, data, _uselwcs) { return data[queryObj.field] !== null;},
				'bt': function(queryObj, data, _uselwcs) { 
					let minmax = queryObj.data.split("...").map(el=>{return  queryObj.type === "num" ? el - 0 : el.trim();}); 
					try { 
						let r = _uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]; 
						return r >= minmax[0] && r <= minmax[1];
					} catch(e) { 
						return false;
					}
				}
			};

			const connection = window.indexedDB.open(ts.p.dbconfig.dbname);
			connection.onsuccess = function( e ) {
				const db = connection.result;
				const transaction = db.transaction(ts.p.dbconfig.dbtable, 'readonly');
				let retresult ={};
				retresult[ts.p.localReader.root] =[];
			    transaction.oncomplete = function(event) {
					if(ORDER === 'desc' || ts.p.grouping) { // we need here multi sorting too
						retresult[ts.p.localReader.root].sort(function(a,b){
							var low=[], high=[];
							if(ts.p.grouping) {
								for(let j =0;j<ts.p.groupingView.groupField.length; j++) {
									if(ts.p.groupingView.groupOrder[j] === 'asc') {
										low.push(a[ts.p.groupingView.groupField[j]]);
										high.push(b[ts.p.groupingView.groupField[j]]);
									} else {
										low.push(b[ts.p.groupingView.groupField[j]]);
										high.push(a[ts.p.groupingView.groupField[j]]);										
									}
								}
								if(ORDER === 'asc') {
									low.push(a[INDEX_NAME]);
									high.push(b[INDEX_NAME]);
								} else {
									low.push(b[INDEX_NAME]);
									high.push(a[INDEX_NAME]);										
								}
							} else {
								low = [b[INDEX_NAME]];
								high = [a[INDEX_NAME]];
							}
							return indexedDB.cmp(low,high);
						});
					}
					retresult[ts.p.localReader.root]= retresult[ts.p.localReader.root].slice( (page-1)*recordsperpage , page*recordsperpage );
					totalpages = Math.ceil(total / recordsperpage);
					retresult[ts.p.localReader.total] = totalpages;
					retresult[ts.p.localReader.page] = page;
					retresult[ts.p.localReader.records] = total;
					retresult[ts.p.localReader.userdata] = ts.p.userData;
					resolve(retresult);
				};
				
				transaction.onerror = function(event) {
					endReq();
					reject(event.target);
					//console.log(event.target);
				};
				const store = transaction.objectStore(ts.p.dbconfig.dbtable);
				const index = store.index( INDEX_NAME );
				index.count(range).onsuccess = (e) => {
					//console.log(e);
					if(ts.p.search && srules.rules.length) {
						total = 0;
					} else  {
						total = e.target.result;
					}
				};
				var limit = Math.pow(2,32) - 1;
				if(ts.p.search === false && ORDER === 'asc' && !ts.p.grouping) {
					limit = page*recordsperpage;
				}
				var res = index.getAll(range, limit);
			    res.onsuccess = event => {
					if(ts.p.search === true && srules.hasOwnProperty('rules') &&  srules.rules.length) {
						var lenn = res.result.length, i=0;
						
						while(i<lenn) {
							if(srules.rules[everyORsome](function(c) {
								return compareFnMap[c.op](c, res.result[i], _usecase && c.type === 'text');}) ) {
								total++;
								retresult[ts.p.localReader.root].push(res.result[i]);
							}
							i++;
						}
					}  else {
						retresult[ts.p.localReader.root] = res.result;
					}
				};
				res.onerror = function(event) {
					console.log(event);
				};
			};
		});},
		addLocalData = function( retAll ) {
			var st = ts.p.multiSort ? [] : "", sto=[], fndsort=false, cmtypes={}, grtypes=[], grindexes=[], srcformat, sorttype, newformat, sfld;
			if(!Array.isArray(ts.p.data)) {
				return;
			}
			var grpview = ts.p.grouping ? ts.p.groupingView : false, lengrp, gin, si;
			$.each(ts.p.colModel,function(){
                if ( !(this.name !== 'cb' && this.name !== 'subgrid' && this.name !== 'rn' && this.name !== 'sc') ) {
                    return true;
                }
				sorttype = this.sorttype || "text";
				si = this.index || this.name;
				if(sorttype === "date" || sorttype === "datetime") {
					if(this.formatter && typeof this.formatter === 'string' && this.formatter === 'date') {
						if(this.formatoptions && this.formatoptions.srcformat) {
							srcformat = this.formatoptions.srcformat;
						} else {
							srcformat = $.jgrid.getRegional(ts, "formatter.date.srcformat");
						}
						if(this.formatoptions && this.formatoptions.newformat) {
							newformat = this.formatoptions.newformat;
						} else {
							newformat = $.jgrid.getRegional(ts, "formatter.date.newformat");
						}
					} else {
						srcformat = newformat = this.datefmt || "Y-m-d";
					}
					cmtypes[si] = {"stype": sorttype, "srcfmt": srcformat,"newfmt":newformat, "sfunc": this.sortfunc || null, name : this.name};
				} else {
					cmtypes[si] = {"stype": sorttype, "srcfmt":'',"newfmt":'', "sfunc": this.sortfunc || null, name : this.name};
				}
				if(ts.p.grouping ) {
					for(gin =0, lengrp = grpview.groupField.length; gin< lengrp; gin++) {
						if( this.name === grpview.groupField[gin]) {
							grtypes[gin] = cmtypes[si];
							grindexes[gin]= si;
						}
					}
				}
				if(!ts.p.multiSort) {
					if(!fndsort && (si === ts.p.sortname)){
						st = si;
						fndsort = true;
					}
				}
			});
			if(ts.p.multiSort) {
				st =  sortarr;
				sto = sortord;
			}
			if(ts.p.treeGrid && ts.p._sort) {
				$(ts).jqGrid("SortTree", st, ts.p.sortorder, cmtypes[st].stype || 'text', cmtypes[st].srcfmt || '');
				return;
			}
			var compareFnMap = {
				'eq':function(queryObj) {return queryObj.equals;},
				'ne':function(queryObj) {return queryObj.notEquals;},
				'lt':function(queryObj) {return queryObj.less;},
				'le':function(queryObj) {return queryObj.lessOrEquals;},
				'gt':function(queryObj) {return queryObj.greater;},
				'ge':function(queryObj) {return queryObj.greaterOrEquals;},
				'cn':function(queryObj) {return queryObj.contains;},
				'nc':function(queryObj,op) {return op === "OR" ? queryObj.orNot().contains : queryObj.andNot().contains;},
				'bw':function(queryObj) {return queryObj.startsWith;},
				'bn':function(queryObj,op) {return op === "OR" ? queryObj.orNot().startsWith : queryObj.andNot().startsWith;},
				'en':function(queryObj,op) {return op === "OR" ? queryObj.orNot().endsWith : queryObj.andNot().endsWith;},
				'ew':function(queryObj) {return queryObj.endsWith;},
				"ni":function (queryObj, op) { return op === "OR" ? queryObj.orNot().inData : queryObj.andNot().inData; },
				"in":function (queryObj) { return queryObj.inData; },
				'nu':function(queryObj) {return queryObj.isNull;},
				'nn':function(queryObj,op) {return op === "OR" ? queryObj.orNot().isNull : queryObj.andNot().isNull;}

			},
			query = $.jgrid.from.call(ts, ts.p.data);
			if (ts.p.ignoreCase) { query = query.ignoreCase(); }
			function tojLinq ( group ) {
				var s = 0, index, gor, ror, opr, rule, fld;
				if (!$.jgrid.isNull(group.groups)) {
					gor = group.groups.length && group.groupOp.toString().toUpperCase() === "OR";
					if (gor) {
						query.orBegin();
					}
					for (index = 0; index < group.groups.length; index++) {
						if (s > 0 && gor) {
							query.or();
						}
						try {
							tojLinq(group.groups[index]);
						} catch (e) {alert(e);}
						s++;
					}
					if (gor) {
						query.orEnd();
					}
				}
				if (!$.jgrid.isNull(group.rules)) {
					//if(s>0) {
					//	var result = query.select();
					//	query = $.jgrid.from( result);
					//	if (ts.p.ignoreCase) { query = query.ignoreCase(); }
					//}
					try{
						ror = group.rules.length && group.groupOp.toString().toUpperCase() === "OR";
						if (ror) {
							query.orBegin();
						}
						var rulefld;
						for (index = 0; index < group.rules.length; index++) {
							rule = group.rules[index];
							opr = group.groupOp.toString().toUpperCase();
							if (compareFnMap[rule.op] && rule.field ) {
								if(s > 0 && opr && opr === "OR") {
									query = query.or();
								}
								rulefld = rule.field;
								if( ts.p.useNameForSearch) {
									if(cmtypes.hasOwnProperty(rule.field)) {
										rulefld = cmtypes[rule.field].name;
									}
								}
								try {
									fld = cmtypes[rule.field];
									if(fld.stype === 'date') {
										if(typeof fld.srcfmt === "string" && typeof fld.newfmt === "string" ) {
											rule.data = $.jgrid.parseDate.call(ts, fld.newfmt, rule.data, fld.srcfmt);
										}
									}
									query = compareFnMap[rule.op](query, opr)(rulefld, rule.data, fld);
								} catch (e) {}
							} else if( ts.p.customFilterDef !== undefined && ts.p.customFilterDef[rule.op] !== undefined  && $.jgrid.isFunction(ts.p.customFilterDef[rule.op].action)) {
								query = query.user.call(ts, rule.op, rule.field, rule.data);
							}
							s++;
						}
						if (ror) {
							query.orEnd();
						}
					} catch (g) {alert(g);}
				}
			}

			if (ts.p.search === true) {
				var srules = ts.p.postData.filters;
				if(srules) {
					if(typeof srules === "string") { srules = $.jgrid.parse(srules);}
					tojLinq( srules );
				} else {
					try {
						sfld = cmtypes[ts.p.postData.searchField];
						if(sfld.stype === 'date') {
							if(sfld.srcfmt && sfld.newfmt && sfld.srcfmt !== sfld.newfmt ) {
								ts.p.postData.searchString = $.jgrid.parseDate.call(ts, sfld.newfmt, ts.p.postData.searchString, sfld.srcfmt);
							}
						}
 						if(compareFnMap[ts.p.postData.searchOper]) {
						query = compareFnMap[ts.p.postData.searchOper](query)(ts.p.postData.searchField, ts.p.postData.searchString,cmtypes[ts.p.postData.searchField]);
						} else if( ts.p.customFilterDef !== undefined && ts.p.customFilterDef[ts.p.postData.searchOper] !== undefined  && $.jgrid.isFunction(ts.p.customFilterDef[ts.p.postData.searchOper].action)) {
							query = query.user.call(ts, ts.p.postData.searchOper, ts.p.postData.searchField, ts.p.postData.searchString);
						}
					} catch (se){}
				}
			}
			if(ts.p.treeGrid && ts.p.treeGridModel === "nested") {
				query.orderBy(ts.p.treeReader.left_field, 'asc', 'integer', '', null);
			}
			if(ts.p.treeGrid && ts.p.treeGridModel === "adjacency") {
				lengrp =0;
				st = null;
			}
			if(ts.p.grouping) {
				for(gin=0; gin<lengrp;gin++) {
					query.orderBy(grindexes[gin],grpview.groupOrder[gin],grtypes[gin].stype, grtypes[gin].srcfmt);
				}
			}
			if(ts.p.multiSort) {
				$.each(st,function(i){
					query.orderBy(this, sto[i], cmtypes[this].stype, cmtypes[this].srcfmt, cmtypes[this].sfunc);
				});
			} else {
				if (st && ts.p.sortorder && fndsort) {
					// to be fixed in case sortname has more than one field
					if(ts.p.sortorder.toUpperCase() === "DESC") {
						query.orderBy(ts.p.sortname, "d", cmtypes[st].stype, cmtypes[st].srcfmt, cmtypes[st].sfunc);
					} else {
						query.orderBy(ts.p.sortname, "a", cmtypes[st].stype, cmtypes[st].srcfmt, cmtypes[st].sfunc);
					}
				}
			}
			var queryResults = query.select(),
			recordsperpage = parseInt(ts.p.rowNum,10),
			total = queryResults.length,
			page = parseInt(ts.p.page,10),
			totalpages = Math.ceil(total / recordsperpage),
			retresult = {};
			if((ts.p.search || ts.p.resetsearch) && ts.p.grouping && ts.p.groupingView._locgr) {
				ts.p.groupingView.groups =[];
				var j, grPrepare = $.jgrid.getMethod("groupingPrepare"), key, udc;
				if(ts.p.footerrow && ts.p.userDataOnFooter) {
					for (key in ts.p.userData) {
						if(ts.p.userData.hasOwnProperty(key)) {
							ts.p.userData[key] = 0;
						}
					}
					udc = true;
				}
				for(j=0; j<total; j++) {
					if(udc) {
						for(key in ts.p.userData){
							if( ts.p.userData.hasOwnProperty( key ) ) {
								ts.p.userData[key] += parseFloat(queryResults[j][key] || 0);
							}
						}
					}
					grPrepare.call($(ts),queryResults[j],j, recordsperpage );
				}
			}
			if( retAll ) {
				return  queryResults;
			}
			if(ts.p.treeGrid && ts.p.search) {
				queryResults = $(ts).jqGrid("searchTree", queryResults);
			} else {
				queryResults = queryResults.slice( (page-1)*recordsperpage , page*recordsperpage );
			}
			query = null;
			cmtypes = null;
			retresult[ts.p.localReader.total] = totalpages;
			retresult[ts.p.localReader.page] = page;
			retresult[ts.p.localReader.records] = total;
			retresult[ts.p.localReader.root] = queryResults;
			retresult[ts.p.localReader.userdata] = ts.p.userData;
			queryResults = null;
			return  retresult;
		},
		updatepager = function(rn, dnd) {
			var cp, last, base, from,to,tot,fmt, pgboxes = "", sppg,
			pgid = ts.p.pager ? ts.p.pager.substring(1) : "",
			tspg = pgid ? "_"+pgid : "",
			tspg_t = ts.p.toppager ? "_"+ts.p.toppager.slice(1) : "";
			base = parseInt(ts.p.page,10)-1;
			if(base < 0) { base = 0; }
			base = base*parseInt(ts.p.rowNum,10);
			to = base + ts.p.reccount;
			if (ts.p.scroll) {
				var rows = $("tbody", ts.grid.bDiv).first().find("> tr").slice( 1 );
				if(to > ts.p.records) {
					to = ts.p.records;
				}
				base = to - rows.length;
				ts.p.reccount = rows.length;
				var rh = rows.outerHeight() || ts.grid.prevRowHeight;
				if (rh) {
					var top = base * rh;
					var height = parseInt(ts.p.records,10) * rh;
					$(ts.grid.bDiv).find(">div").first().css({height : height}).children("div").first().css({height:top,display:top?"":"none"});
					if (ts.grid.bDiv.scrollTop === 0 && ts.p.page > 1) {
						ts.grid.bDiv.scrollTop = ts.p.rowNum * (ts.p.page - 1) * rh;
					}
				}
				ts.grid.bDiv.scrollLeft = ts.grid.hDiv.scrollLeft;
			}
			pgboxes = ts.p.pager || "";
			pgboxes += ts.p.toppager ?  (pgboxes ? "," + ts.p.toppager : ts.p.toppager) : "";
			if(pgboxes) {
				fmt = $.jgrid.getRegional(ts, "formatter.integer");
				cp = intNum(ts.p.page);
				last = intNum(ts.p.lastpage);
				$(".selbox",pgboxes)[ this.p.useProp ? 'prop' : 'attr' ]("disabled",false);
				if(ts.p.pginput===true) {
					$('.ui-pg-input',pgboxes)[$('.ui-pg-input',pgboxes).first().is(':input')?'val':'html']( (last < cp) ? ts.p.lastpage : ts.p.page);
					sppg = ts.p.toppager ? '#sp_1'+tspg+",#sp_1"+tspg_t : '#sp_1'+tspg;
					$(sppg).html($.fmatter ? $.fmatter.util.NumberFormat(ts.p.lastpage,fmt):ts.p.lastpage);
				}
				if (ts.p.viewrecords){
					if(ts.p.reccount === 0) {
						$(".ui-paging-info",pgboxes).html($.jgrid.getRegional(ts, "defaults.emptyrecords", ts.p.emptyrecords ));
					} else {
						from = base+1;
						tot=ts.p.records;
						if($.fmatter) {
							from = $.fmatter.util.NumberFormat(from,fmt);
							to = $.fmatter.util.NumberFormat(to,fmt);
							tot = $.fmatter.util.NumberFormat(tot,fmt);
						}
						var rt = $.jgrid.getRegional(ts, "defaults.recordtext", ts.p.recordtext);
						$(".ui-paging-info",pgboxes).html($.jgrid.template( rt ,from,to,tot));
					}
				}
				if(ts.p.pgbuttons===true) {
					if(cp<=0) {cp = last = 0;}
					if(cp===1 || cp === 0) {
						$("#first"+tspg+", #prev"+tspg).addClass( disabled ).removeClass( hover );
						if(ts.p.toppager) { $("#first_t"+tspg_t+", #prev_t"+tspg_t).addClass( disabled ).removeClass( hover ); }
					} else {
						$("#first"+tspg+", #prev"+tspg).removeClass( disabled );
						if(ts.p.toppager) { $("#first_t"+tspg_t+", #prev_t"+tspg_t).removeClass( disabled ); }
					}
					if(cp===last || cp === 0) {
						$("#next"+tspg+", #last"+tspg).addClass( disabled ).removeClass( hover );
						if(ts.p.toppager) { $("#next_t"+tspg_t+", #last_t"+tspg_t).addClass( disabled ).removeClass( hover ); }
					} else {
						$("#next"+tspg+", #last"+tspg).removeClass( disabled );
						if(ts.p.toppager) { $("#next_t"+tspg_t+", #last_t"+tspg_t).removeClass( disabled ); }
					}
				}
			}
			if(rn===true && ts.p.rownumbers === true) {
				$(">td.jqgrid-rownum",ts.rows).each(function(i){
					$(this).html(base+1+i);
				});
			}
			if(ts.p.reccount === 0 ) {
				var classes = ts.p.emptyRecordRow ?
					getstyle(stylemodule, 'rowBox', true, 'jqgrow ui-row-'+ ts.p.direction+' not-editable-row not-editable-cell '+ disabled) :
					'jqgfirstrow not-editable-row not-editable-cell',
				tstr = constructTr("norecs", false, classes, {}, "");
		
				tstr += ts.p.emptyRecordRow ? 
				"<td style='text-align:center;' colspan='"+grid.headers.length+"'>"+$.jgrid.getRegional(ts, "defaults.emptyrecords", ts.p.emptyrecords )+"</td>" :
				"<td style='height:0.1px;visibility:hidden;' colspan='"+grid.headers.length+"'>&nbsp;</td>";
				tstr += "</tr>";
				$(grid.bDiv).find("table").first().append(tstr);
			}
			if(dnd && ts.p.jqgdnd) { $(ts).jqGrid('gridDnD','updateDnD');}
			$(ts).triggerHandler("jqGridGridComplete");
			if($.jgrid.isFunction(ts.p.gridComplete)) {ts.p.gridComplete.call(ts);}
			$(ts).triggerHandler("jqGridAfterGridComplete");
		},
		beginReq = function() {
			ts.grid.hDiv.loading = true;
			if(ts.p.hiddengrid) { return;}
			$(ts).jqGrid("progressBar", {method:"show", loadtype : ts.p.loadui, htmlcontent: $.jgrid.getRegional(ts, "defaults.loadtext", ts.p.loadtext) });
		},
		endReq = function() {
			ts.grid.hDiv.loading = false;
			$(ts).jqGrid("progressBar", {method:"hide", loadtype : ts.p.loadui });
		},
		beforeprocess = function(data, st, xhr) {
			var bfpcr = $(ts).triggerHandler("jqGridBeforeProcessing", [data,st,xhr]);
			bfpcr = (bfpcr === undefined || typeof(bfpcr) !== 'boolean') ? true : bfpcr;
			if ($.jgrid.isFunction(ts.p.beforeProcessing)) {
				if (ts.p.beforeProcessing.call(ts, data, st, xhr) === false) {
					bfpcr =  false;
				}
			}
			return bfpcr;
		},
		afterprocess = function(dstr, lcf) {
			$(ts).triggerHandler("jqGridLoadComplete", [dstr]);
			if(lcf) {ts.p.loadComplete.call(ts,dstr);}
			$(ts).triggerHandler("jqGridAfterLoadComplete", [dstr]);
			ts.p.datatype = "local";
			ts.p.datastr = null;
			endReq();
		},
		populate = function (npage) {
			if(!ts.grid.hDiv.loading) {
				var pvis = ts.p.scroll && npage === false,
				prm = {}, dt, dstr, pN=ts.p.prmNames;
				spsh = 0;
				if(ts.p.page <=0) { ts.p.page = Math.min(1,ts.p.lastpage); }
				if( !$.jgrid.isNull(pN.search, true) ) {prm[pN.search] = ts.p.search;}
				if(!$.jgrid.isNull(pN.nd, true) ) {prm[pN.nd] = new Date().getTime();}
				if(!$.jgrid.isNull(pN.rows, true) ) {prm[pN.rows]= ts.p.rowNum;}
				if(!$.jgrid.isNull(pN.page, true) ) {prm[pN.page]= ts.p.page;}
				if(!$.jgrid.isNull(pN.sort, true) ) {prm[pN.sort]= ts.p.sortname;}
				if(!$.jgrid.isNull(pN.order, true) ) {prm[pN.order]= ts.p.sortorder;}
				if(!$.jgrid.isNull(ts.p.rowTotal, true) && !$.jgrid.isNull(pN.totalrows, true) ) { prm[pN.totalrows]= ts.p.rowTotal; }

				var lcf = $.jgrid.isFunction(ts.p.loadComplete), lc = lcf ? ts.p.loadComplete : null;
				var adjust = 0;
				npage = npage || 1;
				if (npage > 1) {
					if( !$.jgrid.isNull(pN.npage, true) ) {
						prm[pN.npage] = npage;
						adjust = npage - 1;
						npage = 1;
					} else {
						lc = function(req) {
							ts.p.page++;
							ts.grid.hDiv.loading = false;
							if (lcf) {
								ts.p.loadComplete.call(ts,req);
							}
							populate(npage-1);
						};
					}
				} else if (!$.jgrid.isNull(pN.npage, true) ) {
					delete ts.p.postData[pN.npage];
				}
				if(ts.p.grouping) {
					$(ts).jqGrid('groupingSetup');
					var grp = ts.p.groupingView, gi, gs="", tmpordarr = [];
					for(gi=0;gi<grp.groupField.length;gi++) {
						var index = grp.groupField[gi];
						$.each(ts.p.colModel, function(cmIndex, cmValue) {
							if (cmValue.name === index && cmValue.index){
								index = cmValue.index;
							}
						} );
						tmpordarr.push(index +" "+grp.groupOrder[gi]);
					}
					gs = tmpordarr.join();
					if( $.jgrid.trim(prm[pN.sort]) !== "") {
						prm[pN.sort] = gs!=="" ? gs + " ,"+prm[pN.sort] : prm[pN.sort];
					} else {
						prm[pN.sort] = gs;
						prm[pN.order] = "";
					}
					if(ts.p.datatype==='local' && !grp._locgr) {
						ts.p.datatype = 'jsonstring';
						ts.p.datastr = ts.p.data;
					}
				}
				$.extend(ts.p.postData,prm);
				var rcnt = !ts.p.scroll ? 1 : ts.rows.length-1;
				if ($.jgrid.isFunction(ts.p.datatype)) {
					ts.p.datatype.call(ts,ts.p.postData,"load_"+ts.p.id, rcnt, npage, adjust);
					return;
				}
				var bfr = $(ts).triggerHandler("jqGridBeforeRequest");
				if (bfr === false || bfr === 'stop') { return; }
				if ($.jgrid.isFunction(ts.p.beforeRequest)) {
					bfr = ts.p.beforeRequest.call(ts);
					if (bfr === false || bfr === 'stop') { return; }
				}
				//bvn
				if ($.jgrid.isFunction(ts.treeGrid_beforeRequest)) {
					ts.treeGrid_beforeRequest.call(ts);
				}

				dt = ts.p.datatype.toLowerCase();
				switch(dt)
				{
				case "json":
				case "jsonp":
				case "xml":
				case "script":
					$.ajax($.extend({
						url:ts.p.url,
						type:ts.p.mtype,
						dataType: dt ,
						data: $.jgrid.isFunction(ts.p.serializeGridData)? ts.p.serializeGridData.call(ts,ts.p.postData) : ts.p.postData,
						success:function(data,st, xhr) {
							if(!beforeprocess(data, st,xhr)) {
								endReq();
								return;
							}
							if(dt === "xml") { addXmlData(data, rcnt,npage>1,adjust); }
							else { addJSONData(data, rcnt, npage>1, adjust); }
							$(ts).triggerHandler("jqGridLoadComplete", [data]);
							if(lc) { lc.call(ts,data); }
							$(ts).triggerHandler("jqGridAfterLoadComplete", [data]);
							if (pvis) { ts.grid.populateVisible(); }
							if (!ts.p.treeGrid_bigData) {
								if( ts.p.loadonce || ts.p.treeGrid) {ts.p.datatype = "local";}
							} else {
								if( ts.p.loadonce) {ts.p.datatype = "local";} //bvn13
							}
							data=null;
							if (npage === 1) { endReq(); }
							// bvn
							if ($.jgrid.isFunction(ts.treeGrid_afterLoadComplete)) {
								ts.treeGrid_afterLoadComplete.call(ts);
							}
						},
						error:function(xhr,st,err){
							$(ts).triggerHandler("jqGridLoadError", [xhr,st,err]);
							if($.jgrid.isFunction(ts.p.loadError)) { ts.p.loadError.call(ts,xhr,st,err); }
							if (npage === 1) { endReq(); }
							xhr=null;
						},
						beforeSend: function(xhr, settings ){
							var gotoreq = true;
							gotoreq = $(ts).triggerHandler("jqGridLoadBeforeSend", [xhr,settings]);
							if($.jgrid.isFunction(ts.p.loadBeforeSend)) {
								gotoreq = ts.p.loadBeforeSend.call(ts,xhr, settings);
							}
							if(gotoreq === undefined) { gotoreq = true; }
							if(gotoreq === false) {
								return false;
							}
							beginReq();
						}
					},$.jgrid.ajaxOptions, ts.p.ajaxGridOptions));
				break;
				case "xmlstring":
					beginReq();
					dstr = typeof ts.p.datastr !== 'string' ? ts.p.datastr : $.parseXML(ts.p.datastr);
					if(!beforeprocess(dstr, 200 , null)) {
						endReq();
						return;
					}
					addXmlData(dstr);
					afterprocess(dstr, lcf);
				break;
				case "jsonstring":
					beginReq();
					if(typeof ts.p.datastr === 'string') { dstr = $.jgrid.parse(ts.p.datastr); }
					else { dstr = ts.p.datastr; }
					if(!beforeprocess(dstr, 200 , null)) {
						endReq();
						return;
					}
					addJSONData(dstr);
					if(ts.p.grouping && ts.p.groupingView._locgr) {
						// back to original data???
						ts.p.data = dstr;
					}
					afterprocess(dstr, lcf);
				break;
				case "local":
				case "clientside":
					beginReq();
					ts.p.datatype = "local";
					ts.p._ald = true;
					var req = addLocalData( false );
					if(!beforeprocess(req, 200 , null)) {
						endReq();
						return;
					}
					addJSONData(req,rcnt,npage>1,adjust);
					$(ts).triggerHandler("jqGridLoadComplete", [req]);
					if(lc) { lc.call(ts,req); }
					$(ts).triggerHandler("jqGridAfterLoadComplete", [req]);
					if (pvis) { ts.grid.populateVisible(); }
					endReq();
					ts.p._ald = false;
				break;
				case "indexeddb":
					if(!ts.p.dbconfig.ready_req) {
						return;
				}
					beginReq();
					addIndexedDBData(false).then(function(res) {
						if(!beforeprocess(res, 200 , null)) {
							endReq();
							return;
						}
						addJSONData(res, rcnt, npage>1, adjust);
						$(ts).triggerHandler("jqGridLoadComplete", [res]);
						if(lc) { lc.call(ts,res); }
						$(ts).triggerHandler("jqGridAfterLoadComplete", [res]);
						if (pvis) { ts.grid.populateVisible(); }
						endReq();
						ts.p._ald = false;
					});
				break;				
				}
				ts.p._sort = false;
			}
		},
		setHeadCheckBox = function ( checked ) {
			$('#cb_'+$.jgrid.jqID(ts.p.id),ts.grid.hDiv)[ts.p.useProp ? 'prop': 'attr']("checked", checked);
			var fid = ts.p.frozenColumns ? ts.p.id+"_frozen" : "";
			if(fid) {
				$('#cb_'+$.jgrid.jqID(ts.p.id),ts.grid.fhDiv)[ts.p.useProp ? 'prop': 'attr']("checked", checked);
			}
		},
		setPager = function (pgid, tp){
			// TBD - consider escaping pgid with pgid = $.jgrid.jqID(pgid);
			var sep = "<td class='ui-pg-button "+disabled+"'><span class='ui-separator'></span></td>",
			pginp = "",
			pgl="<table class='ui-pg-table ui-common-table ui-paging-pager'><tbody><tr>",
			str="", pgcnt, lft, cent, rgt, twd, tdw, i, removebutt,
			clearVals = function(onpaging, thus){
				var ret;
				ret = $(ts).triggerHandler("jqGridPaging", [onpaging, thus]);
				if(ret==='stop') {return false;}
				if ($.jgrid.isFunction(ts.p.onPaging) ) { ret = ts.p.onPaging.call(ts,onpaging, thus); }
				if(ret==='stop') {return false;}
				ts.p.selrow = null;
				if(ts.p.multiselect) {
					if(!ts.p.preserveSelection) {
						ts.p.selarrrow =[];
					}
					setHeadCheckBox( false );
				}
				ts.p.savedRow = [];
				return true;
			};
			//pgid = pgid.substr(1);
			tp += "_" + pgid;
			pgcnt = "pg_"+pgid;
			lft = pgid+"_left"; cent = pgid+"_center"; rgt = pgid+"_right";
			$("#"+$.jgrid.jqID(pgid) )
			.append("<div id='"+pgcnt+"' class='ui-pager-control' role='group'><table " + getstyle(stylemodule, 'pagerTable', false, 'ui-pg-table ui-common-table ui-pager-table') + "><tbody><tr><td id='"+lft+"' align='left'></td><td id='"+cent+"' align='center' style='white-space:pre;'></td><td id='"+rgt+"' align='right'></td></tr></tbody></table></div>")
			.attr("dir", dir); 
			if(ts.p.rowList.length >0){
				str = "<td dir=\""+dir+"\">";
				str +="<select "+getstyle(stylemodule, 'pgSelectBox', false, 'ui-pg-selbox')+" size=\"1\" name=\"pg_sel_box\" role=\"listbox\" title=\""+($.jgrid.getRegional(ts,"defaults.pgrecs",ts.p.pgrecs) || "")+ "\">";
				var strnm;
				for(i=0;i<ts.p.rowList.length;i++){
					strnm = ts.p.rowList[i].toString().split(":");
					if(strnm.length === 1) {
						strnm[1] = strnm[0];
					}
					if (strnm[1].length == 0) {
						str +="<option role=\"option\" value=\""+strnm[0]+"\""+(( intNum(ts.p.rowNum,0) === intNum(strnm[0],0))?" aria-label=\""+strnm[1]+"\" selected=\"selected\"":"")+">"+strnm[1]+"</option>";
					} else {
						str +="<option role=\"option\" value=\""+strnm[0]+"\""+(( intNum(ts.p.rowNum,0) === intNum(strnm[0],0))?" selected=\"selected\"":"")+">"+strnm[1]+"</option>";
					}
				}
				str +="</select></td>";
			}
			if(dir==="rtl") { 
				pgl += str; 
				$("#"+rgt).attr("align","left");
			}
			if(ts.p.pginput===true) {
				pginp= "<td id='input"+tp+"' dir='"+dir+"'>"+$.jgrid.template( $.jgrid.getRegional(ts, "defaults.pgtext", ts.p.pgtext) || "","<input "+getstyle(stylemodule, 'pgInput', false, 'ui-pg-input') + " type='text' size='2' maxlength='7' value='0' role='textbox' name='jqgpginput'/>","<span id='sp_1_"+$.jgrid.jqID(pgid)+"'></span>")+"</td>";
			}
			var po=["first"+tp,"prev"+tp, "next"+tp,"last"+tp];
			if(ts.p.pgbuttons===true) {
				var btc=getstyle(stylemodule, 'pgButtonBox', true, 'ui-pg-button'),
						pot = [($.jgrid.getRegional(ts,"defaults.pgfirst",ts.p.pgfirst) || ""),
								($.jgrid.getRegional(ts,"defaults.pgprev",ts.p.pgprev) || ""),
								($.jgrid.getRegional(ts,"defaults.pgnext",ts.p.pgnext) || ""),
								($.jgrid.getRegional(ts,"defaults.pglast",ts.p.pglast) || "")],
									n1, n2,n3, n4, nn;
				if(dir==="rtl") {
					po.reverse();
					pot.reverse();
				}
				n1 = "<td id='"+po[0]+"' class='"+btc+"' title='"+ pot[0] +"'" + "><span " + getstyle(stylemodule, 'icon_first', false, iconbase)+"></span></td>";
				n2 = "<td id='"+po[1]+"' class='"+btc+"'  title='"+ pot[1] +"'" +"><span " + getstyle(stylemodule, 'icon_prev', false, iconbase)+"></span></td>";
				n3 = "<td id='"+po[2]+"' class='"+btc+"' title='"+ pot[2] +"'" +"><span " + getstyle(stylemodule, 'icon_next',false, iconbase)+"></span></td>";
				n4 = "<td id='"+po[3]+"' class='"+btc+"' title='"+ pot[3] +"'" +"><span " + getstyle(stylemodule, 'icon_end',false, iconbase)+"></span></td>";
				nn = pginp !== "" ? sep+pginp+sep:"";
				if (dir === 'ltr') {
					pgl += n1 + n2 + nn + n3 + n4;
				} else {
					pgl += n4 + n3  +nn + n2 + n1;
				}
			} else if (pginp !== "") {
				pgl += pginp;
			}
			if(dir==="ltr") {
				pgl += str;
			}
			pgl += "</tr></tbody></table>";
			pgid = $.jgrid.jqID(pgid);
			pgcnt = $.jgrid.jqID(pgcnt);
			if(ts.p.viewrecords===true) {
				$("td#"+pgid+"_"+ts.p.recordpos,"#"+pgcnt).append("<div dir='"+dir+"' class='ui-paging-info'></div>");
			}
			$("td#"+pgid+"_"+ts.p.pagerpos,"#"+pgcnt).append(pgl);
			tdw = $("#gbox_"+$.jgrid.jqID(ts.p.id)).css("font-size") || "11px";
			$("#gbox_"+$.jgrid.jqID(ts.p.id)).append("<div id='testpg' "+getstyle(stylemodule, 'entrieBox', false, 'ui-jqgrid')+" style='font-size:"+tdw+";visibility:hidden;' ></div>");
			twd = $(pgl).clone().appendTo("#testpg").width();
			$("#testpg").remove();
			if(twd > 0) {
				if(pginp !== "") { twd += 50; } //should be param
				removebutt = twd > $("td#"+pgid+"_"+ts.p.pagerpos,"#"+pgcnt).innerWidth();
				$("td#"+pgid+"_"+ts.p.pagerpos,"#"+pgcnt).width(twd);
			}
			ts.p._nvtd = [];
			ts.p._nvtd[0] = twd ? Math.floor((ts.p.width - twd)/2) : Math.floor(ts.p.width/3);
			ts.p._nvtd[1] = 0;
			pgl=null;
			$('.ui-pg-selbox',"#"+pgcnt).on('change',function() {
				if(!clearVals('records', this)) { return false; }
				ts.p.page = Math.round(ts.p.rowNum*(ts.p.page-1)/this.value-0.5)+1;
				ts.p.rowNum = this.value;
				if(ts.p.pager) { $('.ui-pg-selbox', ts.p.pager ).val(this.value); }
				if(ts.p.toppager) { $('.ui-pg-selbox', ts.p.toppager).val(this.value); }
				populate();
				return false;
			});
			if(ts.p.pgbuttons===true) {
				$(".ui-pg-button","#"+pgcnt).hover(function(){
					if($(this).hasClass(disabled)) {
						this.style.cursor='default';
					} else {
						$(this).addClass(hover);
						this.style.cursor='pointer';
					}
				},function() {
					if(!$(this).hasClass(disabled)) {
						$(this).removeClass(hover);
						this.style.cursor= "default";
					}
				});
				$("#first"+$.jgrid.jqID(tp)+", #prev"+$.jgrid.jqID(tp)+", #next"+$.jgrid.jqID(tp)+", #last"+$.jgrid.jqID(tp)).click( function() {
					if ($(this).hasClass(disabled)) {
						return false;
					}
					var cp = intNum(ts.p.page,1),
					last = intNum(ts.p.lastpage,1), selclick = false,
					fp=true, pp=true, np=true,lp=true;
					if(last ===0 || last===1) {
						fp=false;
						pp=false;
						np=false;
						lp=false;
					} else if( last>1 && cp >=1) {
						if( cp === 1) {
							fp=false;
							pp=false;
						} else if( cp===last){
							np=false;
							lp=false;
						}
					} else if( last>1 && cp===0 ) {
						np=false;
						lp=false;
						cp=last-1;
					}
					if(!clearVals(this.id.split("_")[0], this)) { return false; }
					if( this.id === 'first'+tp && fp ) { ts.p.page=1; selclick=true;}
					if( this.id === 'prev'+tp && pp) { ts.p.page=(cp-1); selclick=true;}
					if( this.id === 'next'+tp && np) { ts.p.page=(cp+1); selclick=true;}
					if( this.id === 'last'+tp && lp) { ts.p.page=last; selclick=true;}
					if(selclick) {
						populate();
					}
					$.jgrid.setSelNavIndex(ts, this);
					return false;
				});
			}
			if(ts.p.pginput===true) {
				$("#"+pgcnt).on('keypress','input.ui-pg-input', function(e) {
					var key = e.charCode || e.keyCode || 0;
					if(key === 13) {
						e.preventDefault();
						if(!clearVals('user', this)) { return false; }
						$(this).val( intNum( $(this).val(), 1));
						ts.p.page = ($(this).val()>0) ? $(this).val():ts.p.page;
						populate();
						return false;
					}
					return this;
				});
			}
			if(removebutt && ts.p.responsive && !ts.p.forcePgButtons) {
				$("#"+po[0]+",#"+po[3]+",#input"+$.jgrid.jqID(tp)).hide();
				$(".ui-paging-info", "td#"+pgid+"_"+ts.p.recordpos).hide();
				$(".ui-pg-selbox","td#"+pgid+"_"+ts.p.pagerpos).hide();
			}
		},
		multiSort = function(iCol, obj, sor ) {
			var cm = ts.p.colModel,selarr =[],
					/*ts.p.frozenColumns ?  (ts.p.autoResizing ? ts.grid.headers[iCol].el : obj) :*/  so="", sn;
			selarr.push(ts.grid.headers[iCol].el);
			if(ts.p.frozenColumns) { 
				selarr.push(obj);
			}

			$("span.ui-grid-ico-sort",selarr).addClass(disabled);
			$(selarr).attr({"aria-selected":"false","aria-sort" : "none"});
			sn = (cm[iCol].index || cm[iCol].name);
			if ( typeof sor === "undefined" )
			{
				if(cm[iCol].lso) {
					if(cm[iCol].lso==="asc") {
						cm[iCol].lso += "-desc";
						so = "desc";
					} else if(cm[iCol].lso==="desc") {
						cm[iCol].lso += "-asc";
						so = "asc";
					} else if(cm[iCol].lso==="asc-desc" || cm[iCol].lso==="desc-asc") {
						cm[iCol].lso="";
					}
				} else {
					cm[iCol].lso = so = cm[iCol].firstsortorder || 'asc';
				}
			}
			else {
				cm[iCol].lso = so = sor;
			}
			if( so ) {
				$("span.s-ico",selarr).show();
				$("span.ui-icon-"+so,selarr).removeClass(disabled);
				$(selarr).attr({"aria-selected":"true","aria-sort" : so+"ending"});
			} else {
				if(!ts.p.viewsortcols[0]) {
					$("span.s-ico",selarr).hide();
				}
			}
			var isn = sortarr.indexOf( sn );
			if( isn === -1 ) {
				sortarr.push( sn );
				sortord.push( so );
			} else {
				if( so ) {
					sortord[isn] = so;
				} else {
					sortord.splice( isn, 1 );
					sortarr.splice( isn, 1 );
				}
			}
			ts.p.sortorder = "";
			ts.p.sortname = "";
			for( var i = 0, len = sortarr.length; i < len ; i++) {
				if( i > 0) {
					ts.p.sortname += ", ";
				}
				ts.p.sortname += sortarr[ i ];
				if( i !== len -1) {
					ts.p.sortname += " "+sortord[ i ];
				}
			}
			ts.p.sortorder = sortord[ len -1 ];
			/*
			$.each(cm, function(i){
				if(this.lso) {
					if(i>0 && fs) {
						sort += ", ";
					}
					splas = this.lso.split("-");
					sort += cm[i].index || cm[i].name;
					sort += " "+splas[splas.length-1];
					fs = true;
					ts.p.sortorder = splas[splas.length-1];
				}
			});
			ls = sort.lastIndexOf(ts.p.sortorder);
			sort = sort.substring(0, ls);
			ts.p.sortname = sort;
			*/
		},
		sortData = function (index, idxcol,reload,sor, obj){
			if(!ts.p.colModel[idxcol].sortable) { return; }
			if(ts.p.savedRow.length > 0) {return;}
			if(!reload) {
				if( ts.p.lastsort === idxcol && ts.p.sortname !== "" ) {
					if( ts.p.sortorder === 'asc') {
						ts.p.sortorder = 'desc';
					} else if(ts.p.sortorder === 'desc') { ts.p.sortorder = 'asc';}
				} else { ts.p.sortorder = ts.p.colModel[idxcol].firstsortorder || 'asc'; }
				ts.p.page = 1;
			}
			if(ts.p.multiSort) {
				multiSort( idxcol, obj, sor);
			} else {
				if(sor) {
					if(ts.p.lastsort === idxcol && ts.p.sortorder === sor && !reload) { return; }
					ts.p.sortorder = sor;
				}
				var previousSelectedTh = ts.grid.headers[ts.p.lastsort] ? ts.grid.headers[ts.p.lastsort].el : null, newSelectedTh = /*ts.p.frozenColumns ?  obj :*/ ts.grid.headers[idxcol].el,
						newSelThFC = ts.p.frozenColumns ?  obj : null,
						//sortrule = $.trim(ts.p.viewsortcols[1] === 'single' ? hidden : disabled);
					usehide = ts.p.viewsortcols[1] === 'single' ? true : false, tmpicon;
				tmpicon = $(previousSelectedTh).find("span.ui-grid-ico-sort");
				tmpicon.addClass(disabled);
				if(usehide) {
					$(tmpicon).css("display","none");
				}
				$(previousSelectedTh).attr({"aria-selected":"false","aria-sort" : "none"});
				if(ts.p.frozenColumns) {
					tmpicon = ts.grid.fhDiv.find("span.ui-grid-ico-sort");
					tmpicon.addClass(disabled);
					if(usehide) { tmpicon.css("display","none"); }
					ts.grid.fhDiv.find("th").attr({"aria-selected":"false","aria-sort" : "none"});
				}
				tmpicon = $(newSelectedTh).find("span.ui-icon-"+ts.p.sortorder);
				tmpicon.removeClass(disabled);
				if(usehide) { tmpicon.css("display",""); }
				$(newSelectedTh).attr({"aria-selected":"true","aria-sort" : ts.p.sortorder + "ending"});
				if(ts.p.frozenColumns) {
					tmpicon = $(newSelThFC).find("span.ui-icon-"+ts.p.sortorder);
					tmpicon.removeClass(disabled);
					if(usehide) { tmpicon.css("display",""); }
					$(newSelThFC).attr({"aria-selected":"true","aria-sort" : ts.p.sortorder + "ending"});
					
				}
				if(!ts.p.viewsortcols[0]) {
					if(ts.p.lastsort !== idxcol) {
						if(ts.p.frozenColumns){
							ts.grid.fhDiv.find("span.s-ico").hide();
						}
						$("span.s-ico",previousSelectedTh).hide();
						$("span.s-ico",newSelectedTh).show();
						if(newSelThFC) { 
							$("span.s-ico",newSelThFC).show();
						}
					} else if (ts.p.sortname === "") { // if ts.p.lastsort === idxcol but ts.p.sortname === ""
						$("span.s-ico",newSelectedTh).show();
					}
				}
				index = index.substring(5 + ts.p.id.length + 1); // bad to be changed!?!
				ts.p.sortname = ts.p.colModel[idxcol].index || index;
			}
			if ($(ts).triggerHandler("jqGridSortCol", [ts.p.sortname, idxcol, ts.p.sortorder]) === 'stop') {
				ts.p.lastsort = idxcol;
				return;
			}
			if($.jgrid.isFunction(ts.p.onSortCol)) {
				if (ts.p.onSortCol.call(ts, ts.p.sortname, idxcol, ts.p.sortorder)==='stop') {
					ts.p.lastsort = idxcol;
					return;
				}
			}
			setHeadCheckBox(false);
			if(ts.p.datatype === "local") {
				if(ts.p.deselectAfterSort && !ts.p.preserveSelection) {
					$(ts).jqGrid("resetSelection");
				}
			} else {
				ts.p.selrow = null;
				if(ts.p.multiselect){
					if(!ts.p.preserveSelection) {
						ts.p.selarrrow =[];
					}
				}
				ts.p.savedRow =[];
			}
			if(ts.p.scroll) {
				var sscroll = ts.grid.bDiv.scrollLeft;
				emptyRows.call(ts, true, false);
				ts.grid.hDiv.scrollLeft = sscroll;
			}
			if(ts.p.subGrid && ts.p.datatype === 'local') {
				$("td.sgexpanded","#"+$.jgrid.jqID(ts.p.id)).each(function(){
					$(this).trigger("click");
				});
			}
			ts.p._sort = true;
			populate();
			ts.p.lastsort = idxcol;
			if(ts.p.sortname !== index && idxcol) {ts.p.lastsort = idxcol;}
		},
		setColWidth = function () {
			var initwidth = 0, brd=$.jgrid.cell_width? 0: intNum(ts.p.cellLayout,0), vc=0, lvc, 
					scw=intNum(ts.p.scrollOffset,0),cw,hs=false,aw,gw=0,cr, chrome_fix, lvmc;
			$.each(ts.p.colModel, function() {
				if(this.hidden === undefined) {this.hidden=false;}
				if(ts.p.grouping && ts.p.autowidth) {
					var ind = $.inArray(this.name, ts.p.groupingView.groupField);
					if(ind >= 0 && ts.p.groupingView.groupColumnShow.length > ind) {
						this.hidden = !ts.p.groupingView.groupColumnShow[ind];
					}
				}
				this.widthOrg = intNum(this.width,0);
				// 
				if(this.maxWidth && intNum(this.width,0) > intNum(this.maxWidth,0) ) {
					this.width = this.maxWidth;
				}
				//
				cw = intNum(this.width,0);
				if(this.hidden===false){
					initwidth += cw+brd;
					if(this.fixed) {
						gw += cw+brd;
					} else {
						vc++;
					}
				}
			});
			if(isNaN(ts.p.width)) {
				ts.p.width  = initwidth + ((ts.p.shrinkToFit ===false && !isNaN(ts.p.height)) ? scw : 0);
			}
			grid.width = parseInt(ts.p.width,10);
			ts.p.tblwidth = initwidth;
			if(ts.p.shrinkToFit ===false && ts.p.forceFit === true) {ts.p.forceFit=false;}
			if(ts.p.shrinkToFit===true && vc > 0) {
				aw = grid.width-brd*vc-gw;
				if(!isNaN(ts.p.height)) {
					aw -= scw;
					hs = true;
				}
				initwidth =0;
				var maxwidthcount = 0, diffmaxwidth = 0, notmax = [], notmaxwidth=0;
				$.each(ts.p.colModel, function(i) {
					if(this.hidden === false && !this.fixed){
						cw = Math.round(aw*this.width/(ts.p.tblwidth-brd*vc-gw));
						if(this.maxWidth && cw > this.maxWidth) {
							maxwidthcount++;
							diffmaxwidth += cw;
							this.width = this.maxWidth;
							lvmc = i;
						} else {
						this.width =cw;
							notmaxwidth += cw;
							notmax.push(i+"");
						}
						initwidth += this.width	;
						lvc = i;
					}
				});
				cr = 0;
				chrome_fix = -1;/*bstw === 0 ? -1 :0;*/
				initwidth += diffmaxwidth;
				var jj = -1;
				// maxWidth columns available
				if(maxwidthcount > 0 && vc > 0) {
					// do recalc
					var testsum = 0;
					for(var nmi=0;nmi<notmax.length; nmi++) {
						jj  = parseInt(notmax[nmi],10);
						testsum += Math.round(ts.p.colModel[jj].width*diffmaxwidth/notmaxwidth);
						ts.p.colModel[jj].width = ts.p.colModel[jj].width + Math.round(ts.p.colModel[jj].width*diffmaxwidth/notmaxwidth);
					}
					// in case recalculated sum diffrent from the remeining sum
					if(testsum !== diffmaxwidth) {
						ts.p.colModel[jj].width += diffmaxwidth-testsum;
					}
				}
				if (hs) {
					if(grid.width-gw-(initwidth+brd*vc) !== scw){
						cr = grid.width-gw-(initwidth+brd*vc)-scw;
					}
				} else if(!hs && Math.abs(grid.width-gw-(initwidth+brd*vc)) !== 0) {
					cr = grid.width-gw-(initwidth+brd*vc) - bstw;
				}
				if(jj >-1 && lvc === lvmc) { // in case last visible = last maxWidth column
					lvc = jj; // change it
				}
				ts.p.colModel[lvc].width += cr + chrome_fix;
				//}
				ts.p.tblwidth = initwidth+cr+brd*vc+gw;
				if(ts.p.tblwidth > ts.p.width) {
					ts.p.colModel[lvc].width -= (ts.p.tblwidth - parseInt(ts.p.width,10));
					ts.p.tblwidth = ts.p.width;
				}
			}
		},
		nextVisible= function(iCol) {
			var ret = iCol, j=iCol, i;
			for (i = iCol+1;i<ts.p.colModel.length;i++){
				if(ts.p.colModel[i].hidden !== true ) {
					j=i; break;
				}
			}
			return j-ret;
		},
		getOffset = function (iCol) {
			var $th = $(ts.grid.headers[iCol].el), ret = [$th.position().left + $th.outerWidth()];
			if(ts.p.direction==="rtl") { ret[0] = ts.p.width - ret[0]; }
			ret[0] -= ts.grid.bDiv.scrollLeft;
			ret.push($(ts.grid.hDiv).position().top);
			ret.push($(ts.grid.bDiv).offset().top - $(ts.grid.hDiv).offset().top + $(ts.grid.bDiv).height());
			return ret;
		},
		getColumnHeaderIndex = function (th) {
			var i, headers = ts.grid.headers, ci = $.jgrid.getCellIndex(th);
			for (i = 0; i < headers.length; i++) {
				if (th === headers[i].el) {
					ci = i;
					break;
				}
			}
			return ci;
		},
		buildColItems = function (top, left, parent, op) {
			var cm = ts.p.colModel, len = cm.length, i, cols=[], disp, all_visible = true, cols_nm=[],
			colNm = $.extend([], ts.p.colNames), iCol,
			common = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].common,
			texts = $.jgrid.getRegional(ts, "colmenu"), colArr =[],
			str1 = '<ul id="col_menu" class="ui-search-menu  ui-col-menu modal-content ' + common.shadow + '" role="menu" tabindex="0" style="left:'+left+'px;">';
			if( op.columns_selectAll ) {
				str1 += '<li class="ui-menu-item disabled" role="presentation" draggable="false"><a class="g-menu-item" tabindex="0" role="menuitem" ><table class="ui-common-table" ><tr><td class="menu_icon" title="'+texts.reorder+'"><span class="'+iconbase+' '+colmenustyle.icon_move+' notclick" style="visibility:hidden"></span></td><td class="menu_icon"><input id="chk_all" class="'+colmenustyle.input_checkbox+'" type="checkbox" name="check_all"></td><td class="menu_text">Check/Uncheck</td></tr></table></a></li>';
			}
			if(ts.p.colSpanHeader.length) { // fo future work Currently does not work
				for(var cj = 0;cj<ts.p.colSpanHeader.length;cj++) {
					var clitem = ts.p.colSpanHeader[cj];
					iCol = $.jgrid.getElemByAttrVal( cm, 'name', clitem.startColumnName, true);
					if(iCol >= 0) {
						colArr.push(iCol);
						colNm[iCol] = clitem.titleText;
					}
				}
			}
			if( $(ts).jqGrid('isGroupHeaderOn') /*&& opts.groupHeaders*/) {
				var gh_len = ts.p.groupHeader.length,
				// use the last set one
				groupH = ts.p.groupHeader[gh_len-1];

				for(var ij=0;ij<colNm.length; ij++){
					iCol = $.jgrid.inColumnHeader( cm[ij].name, groupH.groupHeaders);
					if(iCol>=0) {
						colNm[ij] = groupH.groupHeaders[iCol].titleText + "::" + colNm[ij];
						for(var jj= 1; jj<= groupH.groupHeaders[iCol].numberOfColumns-1; jj++) {
							colNm[ij+jj] = groupH.groupHeaders[iCol].titleText + "::" + colNm[ij+jj];
						}
						ij = ij+groupH.groupHeaders[iCol].numberOfColumns-1;
					}
				}
			}

			for(i=0;i<len;i++) {
				//if(!cm[i].hidedlg) { // column chooser
				var hid = !cm[i].hidden ? "checked" : "", 
					nm = cm[i].name, 
					lb = colNm[i]; //ts.p.colNames[i];
				disp = (nm === 'cb' || nm==='subgrid' || nm==='rn' || nm==='sc' ||  cm[i].hidedlg) ? "style='display:none'" :"";
				str1 += '<li '+disp+' class="ui-menu-item" role="presentation" draggable="true"><a class="g-menu-item" tabindex="0" role="menuitem" ><table class="ui-common-table" ><tr><td class="menu_icon" title="'+texts.reorder+'"><span class="'+iconbase+' '+colmenustyle.icon_move+' notclick"></span></td><td class="menu_icon"><input class="'+colmenustyle.input_checkbox+' chk_selected" type="checkbox" name="'+nm+'" '+hid+'></td><td class="menu_text">'+lb+'</td></tr></table></a></li>';
				cols.push(i);
				if( disp === "") {
					cols_nm.push(nm);
			}
				if(all_visible && hid==="") {
					all_visible = false;
				}
			}
			str1 += "</ul>";
			$(parent).append(str1);
			$("#col_menu").addClass("ui-menu " + colmenustyle.menu_widget);

			$("#chk_all", "#col_menu").prop("checked",all_visible);
			if(!$.jgrid.isElementInViewport($("#col_menu")[0])){
				$("#col_menu").css("left", - parseInt($("#column_menu").innerWidth(),10) +"px");
			}
			if($.fn.html5sortable()) {
				$("#col_menu").html5sortable({
					handle: 'span',
					items: ':not(.disabled)',
					forcePlaceholderSize: true }
				).on('sortupdate', function(e, ui) {
					cols.splice( ui.startindex,1);
					cols.splice(ui.endindex, 0, ui.startindex);
					$(ts).jqGrid("destroyFrozenColumns");
					$(ts).jqGrid("remapColumns", cols, true);
					$(ts).triggerHandler("jqGridColMenuColumnDone", [cols, null, null]);
					if($.jgrid.isFunction(ts.p.colMenuColumnDone)) {
						ts.p.colMenuColumnDone.call( ts, cols, null, null);
					}
					$(ts).jqGrid("setFrozenColumns");
					for(i=0;i<len;i++) {
						cols[i] = i;
					}
					if(1===2 /*colArr.length*/) { // setColSpanis on refresh. For future work
						$("#col_menu").remove();
						setTimeout(function(){
							buildColItems(top, left, parent, op);
						}, 0);
					}
				});
			} // NO jQuery UI
			$("#col_menu > li > a").on("click", function(e) {
				var checked, col_name;
				if($(e.target).hasClass('notclick')) {
					return;
				}
				if($(e.target).is(":input")) {
					checked = $(e.target).is(":checked");
				} else {
					checked = !$("input", this).is(":checked");
					$("input", this).prop("checked",checked);
				}

				col_name = $("input", this).attr('name');

				if(col_name === "check_all") {
					if(!checked) {
						$("input", "#col_menu" ).prop("checked",false);
						$(ts).jqGrid('hideCol', cols_nm);
					} else {
						$("input", "#col_menu" ).prop("checked",true);
						$(ts).jqGrid('showCol', cols_nm);
					}
				} else {
				$(ts).triggerHandler("jqGridColMenuColumnDone", [cols, col_name, checked]);
				if($.jgrid.isFunction(ts.p.colMenuColumnDone)) {
					ts.p.colMenuColumnDone.call( ts, cols, col_name, checked);
				}
				if(!checked) {
					$(ts).jqGrid('hideCol', col_name);
					$(this).parent().attr("draggable","false");
				} else {
					$(ts).jqGrid('showCol', col_name );
					$(this).parent().attr("draggable","true");
				}
					if(op.columns_selectAll) {
						$("#chk_all", "#col_menu").prop("checked",  $('.chk_selected:checked', "#col_menu").length === $('.chk_selected', "#col_menu").length );
					}
					$("#column_menu").remove();
				}
			}).hover(function(){
				$(this).addClass(hover);
			},function(){
				$(this).removeClass(hover);
			});
		},
		buildSearchBox = function (index, top, left, parent) {
			var cm = ts.p.colModel[index], rules, o1='',v1='',r1='',o2='',v2='', so, op, repstr='',selected, elem,
			numopts = ['eq','ne', 'lt', 'le', 'gt', 'ge', 'nu', 'nn', 'in', 'ni'],
			stropts = ['eq', 'ne', 'bw', 'bn', 'ew', 'en', 'cn', 'nc', 'nu', 'nn', 'in', 'ni'],
			strarr = ['text', 'string', 'blob'],
			texts = $.jgrid.getRegional(ts, "search"),
			common = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].common,
			classes = $.jgrid.styleUI[(p.styleUI || 'jQueryUI')].modal;

			if(!cm ) {
				return;
			}
			rules = ts.p.colFilters && ts.p.colFilters[cm.name] ?  ts.p.colFilters[cm.name] : false;
			if(rules && !$.isEmptyObject( rules )) {
				o1 = rules.oper1;
				v1 = rules.value1;
				r1 = rules.rule;
				o2 = rules.oper2;
				v2 = rules.value2;
			}
			if(! cm.searchoptions ) {
				cm.searchoptions = {};
			}
			if(cm.searchoptions.sopt) {
				so = cm.searchoptions.sopt;
			} else if( $.inArray(cm.sorttype, strarr) !== -1 ) {
				so = stropts;
			} else {
				so = numopts;
			}
			if(cm.searchoptions.groupOps) {
				op = cm.searchoptions.groupOps;
			} else  {
				op = texts.groupOps;
			}

			//elem = $('<ul id="search_menu" class="ui-search-menu modal-content" role="menu" tabindex="0" style="left:'+left+'px;top:'+top+'px;"></ul>');
			elem = $('<form></form>');
			var str1 = "<a id='bs_close' aria-label='Close'><span class='" + iconbase + " " + classes.icon_close + "'></span></a>";
			str1 += '<div>'+$.jgrid.getRegional(ts, "colmenu.searchTitle")+'</div>';
			str1 += '<div><select size="1" id="oper1" class="'+colmenustyle.filter_select+'">';
			$.each(texts.odata, function(i, n) {
				selected = n.oper === o1 ? 'selected="selected"' : '';
				if($.inArray(n.oper, so) !== -1) {
					repstr += '<option value="'+n.oper+'"  aria-label="'+n.text+'" '+selected+'>'+n.text+'</option>';
				}
			});
			str1 += repstr;
			str1 += '</select></div>';
			elem.append(str1);
			var df="";
			if(cm.searchoptions.defaultValue ) {
				df = $.jgrid.isFunction(cm.searchoptions.defaultValue) ? cm.searchoptions.defaultValue.call(ts) : cm.searchoptions.defaultValue;
			}
			//overwrite default value if restore from filters
			if( v1 ) {
				df = v1;
			}
			var soptions = $.extend(cm.searchoptions, {name:cm.index || cm.name, id: "sval1_" + ts.p.idPrefix+cm.name, oper:'search'}),
			input = $.jgrid.createEl.call(ts, cm.stype, soptions , df, false, $.extend({},$.jgrid.ajaxOptions, ts.p.ajaxSelectOptions || {}));
			$(input).addClass( colmenustyle.filter_input );
			str1 = $('<div></div>').append(input);
			elem.append(str1);
			// and/or
			str1 ='<div><select size="1" id="operand" class="'+colmenustyle.filter_select+'">';
			$.each(op, function(i, n){
				selected = n.op === r1 ? 'selected="selected"' : '';
				str1 += "<option value='"+n.op+"' "+selected+">"+n.text+"</option>";
			});
			str1 += '</select></div>';
			elem.append(str1);
			//oper2
			repstr ='';
			$.each(texts.odata, function(i, n) {
				selected = n.oper === o2 ? 'selected="selected"' : '';
				if($.inArray(n.oper, so) !== -1) {
					repstr += '<option value="'+n.oper+'" '+selected+'>'+n.text+'</option>';
				}
			});
			str1 = '<div><select size="1" id="oper2" class="'+colmenustyle.filter_select+'">' + repstr +'</select></div>';
			elem.append(str1);
			// value2
			if( v2 ) {
				df = v2;
			} else {
				df = "";
			}
			soptions = $.extend(cm.searchoptions, {name:cm.index || cm.name, id: "sval2_" + ts.p.idPrefix+cm.name, oper:'search'});
			input = $.jgrid.createEl.call(ts, cm.stype, soptions , df, false, $.extend({},$.jgrid.ajaxOptions, ts.p.ajaxSelectOptions || {}));
			$(input).addClass( colmenustyle.filter_input );
			str1 = $('<div></div>').append(input);
			elem.append(str1);
			// buttons
			str1 = "<div>";
			str1 +="<div class='search_buttons'><a tabindex='0' id='bs_reset' class='fm-button " + common.button +" ui-reset'>"+texts.Reset+"</a></div>";
			str1 +="<div class='search_buttons'><a tabindex='0' id='bs_search' class='fm-button " + common.button + " ui-search'>"+texts.Find+"</a></div>";
			str1 += "</div>";
			elem.append(str1);
			elem = $('<li class="ui-menu-item" role="presentation"></li>').append( elem );
			elem = $('<ul id="search_menu" class="ui-search-menu modal-content ' + common.shadow + '" role="menu" tabindex="0" style="left:'+left+'px;"></ul>').append(elem);
			$(parent).append(elem);
			$("#search_menu").addClass("ui-menu " + colmenustyle.menu_widget);

			if(!$.jgrid.isElementInViewport($("#search_menu")[0])){
				$("#search_menu").css("left", -parseInt($("#column_menu").innerWidth(),10) +"px");
			}

			$("#bs_reset, #bs_search", "#search_menu", "#bs_close").hover(function(){
				$(this).addClass(hover);
			},function(){
				$(this).removeClass(hover);
			});

			$("#bs_reset", elem).on('click', function(e){
				ts.p.colFilters[cm.name] = {};
				if(ts.p.mergeSearch === true && ts.p.searchModules.hasOwnProperty('colMenuSearch') && ts.p.searchModules.colMenuSearch !== false ) {
					ts.p.searchModules.colMenuSearch = buildFilters();
					$.extend(ts.p.postData,{filters: $.jgrid.splitSearch(ts.p.searchModules)});
					ts.p.search = true;
				} else {
					ts.p.postData.filters = buildFilters();
					ts.p.search = false;
					ts.p.resetsearch =  true;
				}
				df = "";
				if(cm.searchoptions.defaultValue ) {
					df = $.jgrid.isFunction(cm.searchoptions.defaultValue) ? cm.searchoptions.defaultValue.call(ts) : cm.searchoptions.defaultValue;
				}
				$("#sval1_" + ts.p.idPrefix+cm.name,"#search_menu").val(df);
				$("#sval2_" + ts.p.idPrefix+cm.name,"#search_menu").val("");
				if( $.jgrid.isFunction( ts.p.colMenuBeforeProcess )) {
					ts.p.colMenuBeforeProcess.call(ts, { module: 'filtering', action : 'reset', column : cm.name});
				}
				$(ts).trigger("reloadGrid");
				//$("#column_menu").remove();
			});
			$("#bs_search", elem).on('click', function(e){
				ts.p.colFilters[cm.name] = {
					oper1: $("#oper1","#search_menu").val(),
					value1: $("#sval1_" + ts.p.idPrefix+cm.name,"#search_menu").val(),
					rule: $("#operand","#search_menu").val(),
					oper2 : $("#oper2","#search_menu").val(),
					value2 : $("#sval2_" + ts.p.idPrefix+cm.name,"#search_menu").val()
				};
				if(ts.p.mergeSearch === true && ts.p.searchModules.hasOwnProperty('colMenuSearch') && ts.p.searchModules.colMenuSearch !== false ) {
					ts.p.searchModules.colMenuSearch = buildFilters();
					$.extend(ts.p.postData,{filters: $.jgrid.splitSearch(ts.p.searchModules)});
				} else {
					ts.p.postData.filters = buildFilters();
				}
				ts.p.search = true;
				if( $.jgrid.isFunction( ts.p.colMenuBeforeProcess )) {
					ts.p.colMenuBeforeProcess.call(ts, { module: 'filtering', action : 'search', column : cm.name});
				}
				$(ts).trigger("reloadGrid");
				$("#column_menu").remove();
			});
			$("#bs_close", elem).on('click', function(){
				$("#column_menu").remove();
			});
		},
		buildFilters = function() {
			var go = "AND",
			filters ="", i=0; //{\"groupOp\":\"" + go + "\",\"rules\":[], \"groups\" : [
			for (var item in ts.p.colFilters) {
				if(ts.p.colFilters.hasOwnProperty(item)) {
					var si = ts.p.colFilters[item];
					if(!$.isEmptyObject(si)) {
						if(si.value1==="" && si.value2==="") {
							break;
						}
						if(i>0) {
							filters += ",";
						}
						filters += "{\"groupOp\":\""+si.rule +"\",\"rules\":[";
						filters += "{\"field\":\"" + item + "\",";
						filters += "\"op\":\"" + si.oper1 + "\",";
						si.value1 +="";
						filters += "\"data\":\"" + si.value1.replace(/\\/g,'\\\\').replace(/\"/g,'\\"') + "\"}";
						if(si.value2) {
							filters += ",{\"field\":\"" + item + "\",";
							filters += "\"op\":\"" + si.oper2 + "\",";
							si.value2 +="";
							filters += "\"data\":\"" + si.value2.replace(/\\/g,'\\\\').replace(/\"/g,'\\"') + "\"}";
						}
						filters += "]";
						i++;
					} else {
						//console.log('empty object');
					}
				}
			}
			filters += "}";
			if( i === 0) {
				filters = "";
			}
			return filters;
		},
		buildGrouping = function( index, isgroup ) {
			var cm = ts.p.colModel[index],
				group = ts.p.groupingView;
			if(isgroup !== -1) {
				group.groupField.splice(isgroup,1);
			} else {
				group.groupField.push( cm.name);
			}
			if( $.jgrid.isFunction( ts.p.colMenuBeforeProcess )) {
				ts.p.colMenuBeforeProcess.call(ts, { module: 'grouping', action : (isgroup !== -1? 'ungroup' : 'group'), column : cm.name});
			}
			$(ts).jqGrid('groupingGroupBy', group.groupField );
			if(ts.p.frozenColumns) {
				$(ts).jqGrid("destroyFrozenColumns");
				$(ts).jqGrid("setFrozenColumns");
			}
		},
		buildFreeze = function( index, isfreeze ) {
			var cols = [], i, len = ts.p.colModel.length, lastfrozen = -1, cm = ts.p.colModel;
			for(i=0; i < len; i++) {
				if(cm[i].frozen) {
					lastfrozen = i;
				}
				cols.push(i);
			}
				// from position index to lastfrozen+1
			cols.splice( index, 1);
			cols.splice(lastfrozen + (isfreeze ? 1 : 0), 0, index);
			cm[index].frozen = isfreeze;
			if( $.jgrid.isFunction( ts.p.colMenuBeforeProcess )) {
				ts.p.colMenuBeforeProcess.call(ts, { module: 'freeze', action : isfreeze ? 'freeze' : 'unfreeze', column : cm[index].name});
			}
			$(ts).jqGrid("destroyFrozenColumns");
			$(ts).jqGrid("remapColumns", cols, true);
			$(ts).jqGrid("setFrozenColumns");
		},
		buildSubmenuItems = function (top, left, parent, id, cname) {
			var cm = ts.p.colModel, i,
			common = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].common,
			styles = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].colmenu,
			items = ts.p.colMenuCustom[id].items,
			str1 = '<ul id="col_menu" class="ui-search-menu  ui-col-menu modal-content ' + common.shadow + '" role="menu" tabindex="0" style="left:'+left+'px;">';
			items.forEach((item)=>{
				if(!item.icon) {
					item.icon = styles.icon_new_item;
				}
				if(item.id =="separator") {
					str1 += '<li class="ui-menu-item divider" role="separator"></li>';
				} else {
					str1 += '<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="' + item.id + '"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+iconbase+' '+item.icon+'"></span></td><td class="menu_text">'+item.title+'</td></tr></table></a></li>';
				}
			});
			str1 += "</ul>";
			$(parent).append(str1);	
			$("#col_menu").addClass("ui-menu " + colmenustyle.menu_widget);
			if(!$.jgrid.isElementInViewport($("#col_menu")[0])){
				$("#col_menu").css("left", - parseInt($("#column_menu").innerWidth(),10) +"px");
			}
			$("#col_menu > li > a").on("click", function(e) {
				var v = $(this).attr("data-value");
				//sobj = ts.grid.headers[index].el;
				var itm = items.find( (exec) => exec.id===v);
				if(itm) {
					if($.jgrid.isFunction(itm.funcname)) {
						itm.funcname.call(ts, cname);
						if(itm.closeOnRun) {
							$(this).remove();
						}
					}
				}
			}).hover(function(){
				$(this).addClass(hover);
			},function(){
				$(this).removeClass(hover);
			});
		},
		buildColMenu = function( index, left, top ){
			var menu_offset = $(grid.hDiv).height();
			if($(".ui-search-toolbar",grid.hDiv)[0] && !isNaN($(".ui-search-toolbar",grid.hDiv).height())) {
				menu_offset -= $(".ui-search-toolbar",grid.hDiv).height();
			}
			if( !$(grid.cDiv).is(":hidden") ){
				menu_offset += $(grid.cDiv).outerHeight();
			}
			if(ts.p.toolbar[1] && ts.p.toolbar[2] !== "bottom" && !$.jgrid.isNull( $(grid.uDiv), true) )  {
				menu_offset += $(grid.uDiv).outerHeight();
			}
			if( ts.p.toppager) {
				menu_offset += $("#"+ $.jgrid.jqID(ts.p.id) +"_toppager").outerHeight();
			}
			//$("#sopt_menu").remove();
			
			left = parseInt(left,10);
			top = menu_offset; /* + parseInt(top,10)*/
			var strb = '<ul id="column_menu" role="menu" tabindex="0">',
			str = '',
			stre = "</ul>",
			strl ='',
			cm = ts.p.colModel[index], op = $.extend({sorting:true, columns: true, filtering: true, seraching:true, grouping:true, freeze : true}, cm.coloptions),
			common = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].common,
			texts = $.jgrid.getRegional(ts, "colmenu"),
			label = ts.p.colNames[index],
			isgroup,
			isfreeze,
			menuData = [],
			cname = $.jgrid.trim(cm.name); // ???
			// sorting
			menuData.push( str );
			if(cm.sortable && op.sorting) {
				str = '<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="sortasc"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+iconbase+' '+colmenustyle.icon_sort_asc+'"></span></td><td class="menu_text">'+texts.sortasc+'</td></tr></table></a></li>';
				str += '<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="sortdesc"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+iconbase+' '+colmenustyle.icon_sort_desc+'"></span></td><td class="menu_text">'+texts.sortdesc+'</td></tr></table></a></li>';
				menuData.push( str );
			}
			if(op.columns) {
				str = '<li class="ui-menu-item divider" role="separator"></li>';
				str += '<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="columns"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+iconbase+' '+colmenustyle.icon_columns+'"></span></td><td class="menu_text">'+texts.columns+'</td></tr></table></a></li>';
				menuData.push( str );
			}
			if(op.filtering) {
				str = '<li class="ui-menu-item divider" role="separator"></li>';
				str += '<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="filtering"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+iconbase+' '+colmenustyle.icon_filter+'"></span></td><td class="menu_text">'+texts.filter + ' ' + label +'</td></tr></table></a></li>';
				menuData.push( str );
			}
			if(op.grouping) {
				isgroup = $.inArray(cm.name, ts.p.groupingView.groupField);
				str = '<li class="ui-menu-item divider" role="separator"></li>';
				str += '<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="grouping"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+iconbase+' '+colmenustyle.icon_group+'"></span></td><td class="menu_text">'+(isgroup !== -1 ?  texts.ungrouping: texts.grouping + ' ' + label)+'</td></tr></table></a></li>';
				menuData.push( str );
			}
			if(op.freeze) {
				if( !(ts.p.subGrid || ts.p.treeGrid || ts.p.cellEdit) ) {
					isfreeze = (cm.frozen && ts.p.frozenColumns) ? false : true;
					str = '<li class="ui-menu-item divider" role="separator"></li>';
					str += '<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="freeze"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+iconbase+' '+colmenustyle.icon_freeze+'"></span></td><td class="menu_text">'+(isfreeze ? (texts.freeze + " "+ label) : texts.unfreeze)+'</td></tr></table></a></li>';
					menuData.push( str );
				}
			}
			for( var key in ts.p.colMenuCustom) {
				if(ts.p.colMenuCustom.hasOwnProperty(key)) {
					var menuitem = ts.p.colMenuCustom[key];
					if( $.jgrid.isFunction( ts.p.colMenuBeforeProcess )) {
						ts.p.colMenuBeforeProcess.call(ts, { module: 'custom', action: menuitem , column : menuitem.colname});
					}
					$(ts).triggerHandler("jqGridcolMenuBeforeProcess", [{ module: 'custom', action: menuitem , column : menuitem.colname}]);
					var	exclude = menuitem.exclude.split(",");
					exclude = $.map(exclude, function(item){ return $.jgrid.trim(item);});
					if( menuitem.colname === cname  || (menuitem.colname === '_all_' && $.inArray(cname, exclude) === -1)) {
						var subid = menuitem.items.length ? "submenu": menuitem.id;
						strl = '<li class="ui-menu-item divider" role="separator"></li>';
						str = '<li class="ui-menu-item" role="presentation"><a id="'+menuitem.id+'" class="g-menu-item" tabindex="0" role="menuitem" data-value="' + subid + '"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+iconbase+' '+menuitem.icon+'"></span></td><td class="menu_text">'+menuitem.title+'</td></tr></table></a></li>';
						if(menuitem.position === 'last') {
							if(menuitem.separator) {
								menuData.push( strl );
							}
							menuData.push( str );
						} else if( menuitem.position === 'first') {
							if(menuitem.separator) {
								menuData.unshift( strl );
							}
							menuData.unshift( str );
						}
					}
				}
			}
			menuData.unshift( strb );
			menuData.push( stre );
			//str += "</ul>";
			$('#gbox_'+ts.p.id).append( menuData.join('') );
			$("#column_menu")
				.addClass("ui-search-menu modal-content column-menu jqgrid-column-menu ui-menu "+ common.shadow+ "  " + colmenustyle.menu_widget)
				.css({"left":left,"top":top});
			if(ts.p.direction === "ltr") {
				var wcm = $("#column_menu").width() + 26;
				$("#column_menu").css("left", (left- wcm)+'px');
			}
			$("#column_menu > li > a").hover(
				function(){
					$("#col_menu").remove();
					$("#search_menu").remove();
					var left1, top1;
					if($(this).attr("data-value") === 'columns') {
						left1 = $(this).parent().width()+8;
						top1 = $(this).parent().position().top - 5;
						buildColItems(top1, left1, $(this).parent(), op);
					}
					if($(this).attr("data-value") === 'filtering') {
						left1 = $(this).parent().width()+8;
						top1 = $(this).parent().position().top - 5;
						buildSearchBox(index, top1, left1, $(this).parent());
					}
					if($(this).attr("data-value") === 'submenu') {
						left1 = $(this).parent().width()+8;
						top1 = $(this).parent().position().top - 5;
						buildSubmenuItems(top1, left1, $(this).parent(), $(this).attr("id"), cname);
					}
					$(this).addClass(hover);
				},
				function(){ $(this).removeClass(hover); }
			).click(function(){
				var v = $(this).attr("data-value"),
				sobj = ts.grid.headers[index].el;
				if(v === 'sortasc' || v === 'sortdesc') {
					if( $.jgrid.isFunction( ts.p.colMenuBeforeProcess )) {
						ts.p.colMenuBeforeProcess.call(ts, { module: 'sorting', action: v === 'sortasc' ? 'asc' : 'desc' , column : cm.name});
					}
					sortData( "jqgh_"+ts.p.id+"_" + cm.name, index, true, (v === 'sortasc' ? 'asc' : 'desc'), sobj);
				} else if (v === 'grouping') {
					buildGrouping(index, isgroup);
				} else if( v==='freeze') {
					buildFreeze( index, isfreeze);
				}
				if(v === 'grouping' || v==='freeze') {
					$(this).remove();
				}
				if(ts.p.colMenuCustom.hasOwnProperty(v)) {
					var exec = ts.p.colMenuCustom[v];
					if($.jgrid.isFunction(exec.funcname)) {
						exec.funcname.call(ts, cname);
						if(exec.closeOnRun) {
							$(this).remove();
						}
					}
				}
			});
			if( parseFloat($("#column_menu").css("left")) < 0 ) {
				$("#column_menu").css("left", $(ts).css("left") );
			}
		},
		colTemplate;
		if(ts.p.colMenu || ts.p.menubar) {
			$("body").on('click', function(e){
				if(!$(e.target).closest("#column_menu").length) {
					try {
					$("#column_menu").remove();
					} catch (e1) {}
				}
				if(!$(e.target).closest(".ui-jqgrid-menubar").length) {
					try {
						$("#"+ts.p.id+"_menubar").hide();
					} catch (e1) {}
				}
			});
		}
		this.p.id = this.id;
		if(ts.p.autowidth===true) {
			var pw = $(eg).parent().width();
			tmpcm = $(window).width();
			ts.p.width = tmpcm - pw > 3 ?  pw: tmpcm-1;
		}		
		if ($.inArray(ts.p.multikey,sortkeys) === -1 ) {ts.p.multikey = false;}
		ts.p.keyName=false;
		for (i=0; i<ts.p.colModel.length;i++) {
			colTemplate = typeof ts.p.colModel[i].template === "string" ?
				( !$.jgrid.isNull($.jgrid.cmTemplate) && typeof $.jgrid.cmTemplate[ts.p.colModel[i].template] === "object" ? $.jgrid.cmTemplate[ts.p.colModel[i].template]: {}) :
				ts.p.colModel[i].template;
			ts.p.colModel[i] = $.extend(true, {}, ts.p.cmTemplate, colTemplate || {}, ts.p.colModel[i]);
			if (ts.p.keyName === false && ts.p.colModel[i].key===true) {
				ts.p.keyName = ts.p.colModel[i].name;
				ts.p.keyIndex = i;
			}
		}
		ts.p.sortorder = ts.p.sortorder.toLowerCase();
		$.jgrid.cell_width = $.jgrid.cellWidth();
		// calculate cellLayout
		var bstw2 = $("<table style='visibility:hidden'><tr class='jqgrow'><td>1</td></tr></table)").addClass(getstyle(stylemodule,"rowTable", true, 'ui-jqgrid-btable ui-common-table'));
		$(eg).append(bstw2);
		ts.p.cellLayout = $.jgrid.floatNum( $("td", bstw2).css('padding-left')) + $.jgrid.floatNum($("td", bstw2).css('padding-right'), 10) + 1;
		if(ts.p.cellLayout <=0 ) {
			ts.p.cellLayout = 5;
		}
		$(bstw2).remove();
		bstw2 = null;
		
		if(ts.p.grouping===true) {
			ts.p.scroll = false;
			ts.p.rownumbers = false;
			//ts.p.subGrid = false; expiremental
			ts.p.treeGrid = false;
			ts.p.gridview = true;
		}
		if(this.p.treeGrid === true) {
			try { $(this).jqGrid("setTreeGrid");} catch (_) {}
			if(ts.p.datatype !== "local") { 
				ts.p.localReader = { id: "_id_" };
			} else if(ts.p.keyName !== false) {
				ts.p.localReader = { id: ts.p.keyName };
			}
		}
		if(this.p.subGrid) {
			try { $(ts).jqGrid("setSubGrid");} catch (s){}
		}
		if(this.p.searchCols) {
			this.p.colNames.unshift(ts.p.searchColOptions.colName);
			this.p.colModel.unshift({name:'sc',width: ts.p.searchColOptions.colWidth,sortable:false,hidedlg:true,search:false,align:'left',fixed:true, frozen: true, colmenu: ts.p.searchColOptions.colmenu, classes : "jqgrid-searchcol", labelClasses: "jqgrid-searchcolumn",
					coloptions : {sorting:false, columns: false, filtering: false, seraching:false, grouping:false, freeze : false}});
		}
		if(this.p.multiselect) {
			var allRowsSelectTitle=$.jgrid.getRegional(ts, "defaults.selectAllLines");
			allRowsSelectTitle=allRowsSelectTitle ? allRowsSelectTitle : $.jgrid.regional['en'].defaults.selectAllLines;
			this.p.colNames.unshift("<input role='checkbox' id='cb_"+this.p.id+"' class='cbox' type='checkbox' title='"+allRowsSelectTitle+"'/>");
			this.p.colModel.unshift({name:'cb',width:$.jgrid.cell_width ? ts.p.multiselectWidth+ts.p.cellLayout : ts.p.multiselectWidth,sortable:false,resizable:false,hidedlg:true,search:false,align:'center',fixed:true, frozen: true, classes : "jqgrid-multibox", labelClasses: "jqgrid-multibox" });
		}
		if(this.p.rownumbers) {
			this.p.colNames.unshift("");
			this.p.colModel.unshift({name:'rn',width:ts.p.rownumWidth,sortable:false,resizable:false,hidedlg:true,search:false,align:'center',fixed:true, frozen : true, labelClasses: "jqgrid-rownumber"});
		}
		ts.p.xmlReader = $.extend(true,{
			root: "rows",
			row: "row",
			page: "rows>page",
			total: "rows>total",
			records : "rows>records",
			repeatitems: true,
			cell: "cell",
			id: "[id]",
			userdata: "userdata",
			subgrid: {root:"rows", row: "row", repeatitems: true, cell:"cell"}
		}, ts.p.xmlReader);
		ts.p.jsonReader = $.extend(true,{
			root: "rows",
			page: "page",
			total: "total",
			records: "records",
			repeatitems: true,
			cell: "cell",
			id: "id",
			userdata: "userdata",
			subgrid: {root:"rows", repeatitems: true, cell:"cell"}
		},ts.p.jsonReader);
		ts.p.localReader = $.extend(true,{
			root: "rows",
			page: "page",
			total: "total",
			records: "records",
			repeatitems: false,
			cell: "cell",
			id: "id",
			userdata: "userdata",
			subgrid: {root:"rows", repeatitems: true, cell:"cell"}
		},ts.p.localReader);
		if(ts.p.scroll){
			ts.p.pgbuttons = false; ts.p.pginput=false; ts.p.rowList=[];
		}
		if(ts.p.data.length) {
			normalizeData();
			refreshIndex();
		}
		var thead = "<thead role='rowgroup'><tr class='ui-jqgrid-labels' role='row'>",
		tdc, idn, w, res, sort ="",
		td, ptr, tbody, imgs, iac="", idc="", tmpcm;
		if(ts.p.shrinkToFit===true && ts.p.forceFit===true) {
			for (i=ts.p.colModel.length-1;i>=0;i--){
				if(!ts.p.colModel[i].hidden) {
					ts.p.colModel[i].resizable=false;
					break;
				}
			}
		}
		if(ts.p.viewsortcols[1] === 'horizontal') {
			iac=" ui-i-asc";
			idc=" ui-i-desc";
		} else if(ts.p.viewsortcols[1] === "single") {
			iac = " ui-single-sort-asc";
			idc = " ui-single-sort-desc";
			sort = " style='display:none'";
			ts.p.viewsortcols[0] = false;
		}
		tdc = isMSIE ?  "class='ui-th-div-ie'" :"";
		imgs = "<span class='s-ico' style='display:none'>";
		imgs += "<span sort='asc'  class='ui-grid-ico-sort ui-icon-asc"+iac+" ui-sort-"+dir+" "+disabled+" " + iconbase + " " + getstyle(stylemodule, 'icon_asc', true)+ "'" + sort + " aria-label='empty'><span style='display:none'>empty</span></span>";
		imgs += "<span sort='desc' class='ui-grid-ico-sort ui-icon-desc"+idc+" ui-sort-"+dir+" "+disabled+" " + iconbase + " " + getstyle(stylemodule, 'icon_desc', true)+"'" + sort + " aria-label='empty'><span style='display:none'>empty</span></span></span>";
		if(ts.p.multiSort) {
			if(ts.p.sortname ) {
			sortarr = ts.p.sortname.split(",");
			for (i=0; i < sortarr.length; i++) {
				sotmp = $.jgrid.trim(sortarr[i]).split(" ");
				sortarr[i] = $.jgrid.trim(sotmp[0]);
				sortord[i] = sotmp[1] ? $.jgrid.trim(sotmp[1]) : ts.p.sortorder || "asc";
			}
			}
		}
		for(i=0;i<this.p.colNames.length;i++){
			var tooltip = ts.p.headertitles ? (" title=\"" + (ts.p.colModel[i].tooltip ? ts.p.colModel[i].tooltip : $.jgrid.stripHtml(ts.p.colNames[i])) + "\"") : "";
			tmpcm = ts.p.colModel[i];
			if(!tmpcm.hasOwnProperty('colmenu')) {
				tmpcm.colmenu = (tmpcm.name === "rn" || tmpcm.name === "cb" || tmpcm.name === "subgrid") ? false : true;
			}
			thead += "<th id='"+ts.p.id+"_" + tmpcm.name+"' role='columnheader'  scope='col' "+getstyle(stylemodule,'headerBox',false, "ui-th-column ui-th-" + dir + " " + ( tmpcm.labelClasses || "") ) +  tooltip+">";
			idn = tmpcm.index || tmpcm.name;
			thead += "<div class='ui-th-div' id='jqgh_"+ts.p.id+"_"+tmpcm.name+"' "+tdc+">"+ts.p.colNames[i];
			if(!tmpcm.width)  {
				tmpcm.width = ts.p.defaultColWidth;
			} else {
				tmpcm.width = parseInt(tmpcm.width,10);
			}
			if(typeof tmpcm.title !== "boolean") {
				tmpcm.title = true;
			}
			tmpcm.lso = "";
			if (idn === ts.p.sortname) {
				ts.p.lastsort = i;
			}
			if(ts.p.multiSort) {
				sotmp = $.inArray(idn,sortarr);
				if( sotmp !== -1 ) {
					tmpcm.lso = sortord[sotmp];
				}
			}
			thead += imgs;
			if(ts.p.colMenu && tmpcm.colmenu) {
				thead += "<a title='"+$.jgrid.getRegional(ts,"colmenu.hovermenu")+"' class='"+(ts.p.direction==='ltr' ? "colmenu" : "colmenu-rtl") +"'><span class='colmenuspan "+iconbase+' '+colmenustyle.icon_menu+"'></span></a>";
			}
			thead += "</div></th>";
		}
		thead += "</tr></thead>";
		imgs = null;
		tmpcm = null;
		$(this).append(thead);
		$("thead tr",this).first().find("th").hover(
			function(){ $(this).addClass(hover);},
			function(){	$(this).removeClass(hover);}
		);
		if(this.p.multiselect) {
			var emp=[], chk;
			$('#cb_'+$.jgrid.jqID(ts.p.id),this).on('click',function(){
				if(!ts.p.preserveSelection) {
					ts.p.selarrrow = [];
				}
				var froz = ts.p.frozenColumns === true ? ts.p.id + "_frozen" : "";
				if (this.checked) {
					$(ts.rows).each(function(i) {
						if (i>0) {
							if(!$(this).hasClass("ui-subgrid") && !$(this).hasClass("jqgroup") && !$(this).hasClass(disabled) && !$(this).hasClass("jqfoot")){
								$("#jqg_"+$.jgrid.jqID(ts.p.id)+"_"+$.jgrid.jqID(this.id) )[ts.p.useProp ? 'prop': 'attr']("checked",true);
								$(this).addClass(highlight).attr("aria-selected","true");
								if(ts.p.preserveSelection) {
									if(ts.p.selarrrow.indexOf(this.id) === -1) {
										ts.p.selarrrow.push(this.id);
									}
								} else {
									ts.p.selarrrow.push(this.id);
								}
								ts.p.selrow = this.id;
								if(froz) {
									$("#jqg_"+$.jgrid.jqID(ts.p.id)+"_"+$.jgrid.jqID(this.id), ts.grid.fbDiv )[ts.p.useProp ? 'prop': 'attr']("checked",true);
									$("#"+$.jgrid.jqID(this.id), ts.grid.fbDiv).addClass(highlight);
								}
							}
						}
					});
					chk=true;
					emp=[];
				}
				else {
					$(ts.rows).each(function(i) {
						if(i>0) {
							if(!$(this).hasClass("ui-subgrid") && !$(this).hasClass("jqgroup") && !$(this).hasClass(disabled) && !$(this).hasClass("jqfoot")){
								$("#jqg_"+$.jgrid.jqID(ts.p.id)+"_"+$.jgrid.jqID(this.id) )[ts.p.useProp ? 'prop': 'attr']("checked", false);
								$(this).removeClass(highlight).attr("aria-selected","false");
								emp.push(this.id);
								if(ts.p.preserveSelection) {
									var curind = ts.p.selarrrow.indexOf(this.id);
									if(curind > -1) {
										ts.p.selarrrow.splice(curind, 1);
									}
								}
								if(froz) {
									$("#jqg_"+$.jgrid.jqID(ts.p.id)+"_"+$.jgrid.jqID(this.id), ts.grid.fbDiv )[ts.p.useProp ? 'prop': 'attr']("checked",false);
									$("#"+$.jgrid.jqID(this.id), ts.grid.fbDiv).removeClass(highlight);
								}
							}
						}
					});
					ts.p.selrow = null;
					chk=false;
				}
				$(ts).triggerHandler("jqGridSelectAll", [chk ? ts.p.selarrrow : emp, chk]);
				if($.jgrid.isFunction(ts.p.onSelectAll)) {ts.p.onSelectAll.call(ts, chk ? ts.p.selarrrow : emp,chk);}
				if($.jgrid.isFunction(ts.p.onMultiSelect)) {ts.p.onMultiSelect.call(ts, ts.p.selarrrow);}
				//si
			});
		}

		var tfoot = "", trhead="", bstw = ts.p.styleUI.search('Bootstrap') !== -1  ? 2 : 0;
		setColWidth();
		bstw2 = ts.p.styleUI.search('Bootstrap') !== -1;
		$(eg).css("width",grid.width+"px").append("<div class='ui-jqgrid-resize-mark' id='rs_m"+ts.p.id+"'>&#160;</div>");
		if(ts.p.scrollPopUp) {
			$(eg).append("<div "+ getstyle(stylemodule, 'scrollBox', false, 'loading ui-scroll-popup')+" id='scroll_g"+ts.p.id+"'></div>");
		}
		$(gv).css("width",grid.width+"px");
		thead = $(ts).find("thead").first().get(0);
		if(ts.p.footerrow) { 
			tfoot += "<table role='presentation' style='width:"+ts.p.tblwidth+"px' "+getstyle(stylemodule,'footerTable', false, 'ui-jqgrid-ftable ui-common-table')+ "><tbody><tr role='row' "+getstyle(stylemodule,'footerBox', false, 'footrow footrow-'+dir)+">"; 
		}
		if(ts.p.headerrow) { 
			trhead += "<table role='presentation' style='width:"+ts.p.tblwidth+"px' "+getstyle(stylemodule,'headerRowTable', false, 'ui-jqgrid-hrtable ui-common-table')+ "><tbody><tr role='row' "+getstyle(stylemodule,'headerRowBox', false, 'hrheadrow hrheadrow-'+dir)+">"; 
		}
		var thr = $(thead).find("tr").first(),
		firstr = "<tr class='jqgfirstrow "+ (ts.p.direction === "rtl"? "ui-row-rtl'" :"'") +" role='row'>",
		clicks =0,
		// header font for full autosize
		hdr_font = $.jgrid.getFont( $("th",thr).first()[0] );
		ts.p.disableClick=false;
		$("th",thr).each(function ( j ) {
			tmpcm = ts.p.colModel[j];
			w = tmpcm.width;
			if(tmpcm.resizable === undefined) {
				tmpcm.resizable = true;
			}
			if(tmpcm.resizable){
				res = document.createElement("span");
				$(res).html("&#160;").addClass('ui-jqgrid-resize ui-jqgrid-resize-'+dir)
				.css("cursor","col-resize");
				$(this).addClass(ts.p.resizeclass);
			} else {
				res = "";
			}
			$(this).css("width",w+"px").prepend(res);
			res = null;
			var hdcol = "", clcol ="";
			if( tmpcm.hidden ) {
				$(this).css("display","none");
				hdcol = "display:none;";
			}
			if(tmpcm.labelClasses) {
				clcol = "class='"+tmpcm.labelClasses+"'";
			}
			firstr += "<td "+clcol+" role='gridcell' style='height:0px;width:"+w+"px;"+hdcol+"'></td>";
			grid.headers[j] = { width: w, el: this };
			sort = tmpcm.sortable;
			if( typeof sort !== 'boolean') {
				tmpcm.sortable =  true;
				sort=true;
			}
			var nm = tmpcm.name;
			if( !(nm === 'cb' || nm==='subgrid' || nm==='rn' || nm==='sc') ) {
				if(ts.p.viewsortcols[2]){
					$(">div",this).addClass('ui-jqgrid-sortable');
				}
			}
			tmpcm.canvas_width = tmpcm.autosize_headers ? ($.jgrid.getTextWidth( $("div", this)[0].outerText, hdr_font) +
					(tmpcm.colmenu ? $.jgrid.floatNum( $(".colmenuspan", this).parent().width()) : 0) +
					$.jgrid.floatNum( $("div", this).css("padding-left")) + $.jgrid.floatNum( $("div", this).css("padding-right")) +
					$.jgrid.floatNum($(".ui-jqgrid-resize", this).width())) : 0;
			if(sort) {
				if(ts.p.multiSort) {
					if(ts.p.viewsortcols[0]) {
						$("div span.s-ico",this).show();
						if( tmpcm.lso ){
							$("div span.ui-icon-"+tmpcm.lso,this).removeClass(disabled).css("display","");
						}
					} else if( tmpcm.lso) {
						$("div span.s-ico",this).show();
						$("div span.ui-icon-"+tmpcm.lso,this).removeClass(disabled).css("display","");
					}
				} else {
					if(ts.p.viewsortcols[0]) {
						$("div span.s-ico",this).show();
						if(j===ts.p.lastsort){
							$("div span.ui-icon-"+ts.p.sortorder,this).removeClass(disabled).css("display","");
						}
					} else if(j === ts.p.lastsort && ts.p.sortname !== "") {
						$("div span.s-ico",this).show();
						$("div span.ui-icon-"+ts.p.sortorder,this).removeClass(disabled).css("display","");
					}
				}
			}
			if(ts.p.footerrow) {
				tfoot += "<td role='gridcell' "+formatCol(j,0,'', null, '', false)+">&#160;</td>";
			}
			if(ts.p.headerrow) {
				trhead += "<td role='gridcell' "+formatCol(j,0,'', null, '', false)+">&#160;</td>";
			}
		}).mousedown(function(e) {
			if ($(e.target).closest("th>span.ui-jqgrid-resize").length !== 1) { return; }
			var ci = getColumnHeaderIndex(this), cmax;
			e.preventDefault();
			clicks++;

			setTimeout(function() {
				clicks = 0;
			}, 400);

			if (clicks === 2) {
				// double click event handler
				try {
					if(ts.p.colModel[ci].autosize === true) {
						cmax = $(ts).jqGrid('getCol', ci, false, 'maxwidth');
						$(ts).jqGrid('resizeColumn', ci, cmax + ( bstw2 ? ts.p.cellLayout : 0 ) )
						.jqGrid('refreshGroupHeaders');
					}
				} catch(e1) {
				} finally {
					clicks = 0;
				}
				return;
			} else {
				if(ts.p.forceFit===true) {
					ts.p.nv= nextVisible(ci);
				}
				grid.dragStart(ci, e, getOffset(ci));
			}
			return false;
		}).click(function(e) {
			if (ts.p.disableClick) {
				ts.p.disableClick = false;
				return false;
			}
			var s = "th>div.ui-th-div",r,d;
			if (!ts.p.viewsortcols[2]) { s = "th>div>span>span.ui-grid-ico-sort"; }
			var t = $(e.target).closest(s);
			if (t.length !== 1) { return; }
			var ci;
			if(ts.p.frozenColumns) {
				var tid =  $(this)[0].id.substring( ts.p.id.length + 1 );
				ci = $.jgrid.getElemByAttrVal(ts.p.colModel, 'name', tid, true);
			} else {
				ci = getColumnHeaderIndex(this);
			}
			//
			if($(e.target).hasClass('colmenuspan')) {
				if( !$.jgrid.isNull($("#column_menu")[0]) ) {
					$("#column_menu").remove();
				}

				if(ci === undefined) { return; }
				var grid_offset = $("#gbox_"+ts.p.id).offset();
				var offset = $(this).offset(),
				left = ( offset.left ) - (grid_offset.left),
				top = 0;//( offset.top);
				if(ts.p.direction === "ltr") {
					left += $(this).outerWidth();
				}
				buildColMenu(ci, left, top);
				if(ts.p.menubar === true) {
					$("#"+ts.p.id+"_menubar").hide();
				}
				e.stopPropagation();
				return;
			}
			//
			if (!ts.p.viewsortcols[2]) { r=true;d=t.attr("sort"); }
			if( !$.jgrid.isNull(ci) ){
				sortData( $('div',this)[0].id, ci, r, d, this);
			}
			// added aria grid
			if(ts.p.selHeadInd !== undefined) {
				$(grid.headers[ts.p.selHeadInd].el).attr("tabindex", "-1");
			}
			ts.p.selHeadInd = ci;
			$(this).attr("tabindex", "0");
			// end aria
			//return false;
		});
		tmpcm = null;
		// reset font cache
		jQuery._cacheCanvas = null;
		if (ts.p.sortable && $.fn.sortable) {
			try {
				$(ts).jqGrid("sortableColumns", thr);
			} catch (e){}
		}
		if(ts.p.footerrow) { tfoot += "</tr></tbody></table>"; }
		if(ts.p.headerrow) { trhead += "</tr></tbody></table>"; }
		 
		firstr += "</tr>";
		tbody = document.createElement("tbody");
		//$(this).append(firstr);
		$(tbody).attr({"role":"rowgroup"});
		this.appendChild(tbody);
		$(this).addClass(getstyle(stylemodule,"rowTable", true, 'ui-jqgrid-btable ui-common-table')).append(firstr);
		if(ts.p.altRows) {
			$(this).addClass(getstyle(stylemodule,"stripedTable", true, ''));
		}
		//$(firstr).insertAfter(this);
		firstr = null;
		var hTable = $("<table "+getstyle(stylemodule,'headerTable',false,'ui-jqgrid-htable ui-common-table')+" style='width:"+ts.p.tblwidth+"px' role='grid' aria-labelledby='gbox_"+this.id+"'></table>").append(thead),
		hg = (ts.p.caption && ts.p.hiddengrid===true) ? true : false,
		hb = $("<div class='ui-jqgrid-hbox" + (dir==="rtl" ? "-rtl" : "" )+"'></div>");
		thead = null;
		grid.hDiv = document.createElement("div");
		grid.hDiv.style.width = (grid.width - bstw) + "px";
		grid.hDiv.className = getstyle(stylemodule,'headerDiv', true,'ui-jqgrid-hdiv');

		$(grid.hDiv).append(hb);
		$(hb).append(hTable);
		hTable = null;
		if(hg) { $(grid.hDiv).hide(); }
		if(ts.p.pager){
			// TBD -- escape ts.p.pager here?
			if(typeof ts.p.pager === "string") {if(ts.p.pager.slice(0,1) === "#") { ts.p.pager = ts.p.pager.substring(1);} }
			else { ts.p.pager = $(ts.p.pager).attr("id");}
			$("#"+$.jgrid.jqID(ts.p.pager)).css({width: (grid.width - bstw) +"px"}).addClass(getstyle(stylemodule,'pagerBox', true,'ui-jqgrid-pager')).appendTo(eg);
			if(hg) {
				$("#"+$.jgrid.jqID(ts.p.pager)).hide();
			}
			setPager(ts.p.pager,'');
			ts.p.pager = "#" + $.jgrid.jqID(ts.p.pager);
		}
		if( ts.p.cellEdit === false && ts.p.hoverrows === true) {
			$(ts).on({
				mouseover: function(e) {
					ptr = $(e.target).closest("tr.jqgrow");
					if($(ptr).attr("class") !== "ui-subgrid") {
						$(ptr).addClass(hover);
					}
				},
				mouseout: function(e) {
					ptr = $(e.target).closest("tr.jqgrow");
					$(ptr).removeClass(hover);
				}
			});
		}
		var ri,ci, tdHtml;
		function selectMultiRow(ri, scb, e, selection) {
			if((ts.p.multiselect && ts.p.multiboxonly) || ts.p.multimail ) {
				if(scb){
					$(ts).jqGrid("setSelection", ri, selection, e);
				} else if(  ts.p.multiboxonly && ts.p.multimail) {
					// execute onSelectRow
					$(ts).triggerHandler("jqGridSelectRow", [ri, false, e]);
					if( ts.p.onSelectRow) { ts.p.onSelectRow.call(ts, ri, false, e); }
				} else {
					var frz = ts.p.frozenColumns ? ts.p.id+"_frozen" : "";
					$(ts.p.selarrrow).each(function(i,n){
						var trid = $(ts).jqGrid('getGridRowById',n);
						if(trid) {
							$( trid ).removeClass(highlight);
						}
						$("#jqg_"+$.jgrid.jqID(ts.p.id)+"_"+$.jgrid.jqID(n))[ts.p.useProp ? 'prop': 'attr']("checked", false);
						if(frz) {
							$("#"+$.jgrid.jqID(n), "#"+$.jgrid.jqID(frz)).removeClass(highlight);
							$("#jqg_"+$.jgrid.jqID(ts.p.id)+"_"+$.jgrid.jqID(n), "#"+$.jgrid.jqID(frz))[ts.p.useProp ? 'prop': 'attr']("checked", false);
						}
					});
					ts.p.selarrrow = [];
					$(ts).jqGrid("setSelection", ri, selection, e);
				}
			} else {
				$(ts).jqGrid("setSelection", ri, selection, e);
			}
		}
		$(ts).before(grid.hDiv).on({
			'click': function(e) {
				td = e.target;
				ptr = $(td,ts.rows).closest("tr.jqgrow");
				if($(ptr).length === 0 || ptr[0].className.indexOf( disabled ) > -1 || ($(td,ts).closest("table.ui-jqgrid-btable").attr('id') || '').replace("_frozen","") !== ts.id ) {
					return this;
				}
				var scb = $(td).filter(":enabled").hasClass("cbox"),
				cSel = $(ts).triggerHandler("jqGridBeforeSelectRow", [ptr[0].id, e]);
				cSel = (cSel === false || cSel === 'stop') ? false : true;
				if ($.jgrid.isFunction(ts.p.beforeSelectRow)) {
					var allowRowSelect = ts.p.beforeSelectRow.call(ts, ptr[0].id, e);
					if (allowRowSelect === false || allowRowSelect === 'stop') {
						cSel = false;
					}
				}
				if(scb && cSel === false){
					$(e.target).prop('checked',!$(e.target).prop('checked'));
				}
				if (td.tagName === 'A' || ((td.tagName === 'INPUT' || td.tagName === 'TEXTAREA' || td.tagName === 'OPTION' || td.tagName === 'SELECT' ) && 
						!scb && 
						!(td.tagName === 'INPUT' && td.id.startsWith("jqs_"+ts.p.id))) )  { 
					return; 
				}
				ri = ptr[0].id;
				td = $(td).closest("tr.jqgrow>td");
				if (td.length > 0) {
					ci = $.jgrid.getCellIndex(td);
				}
				if(ts.p.cellEdit === true && !ts.p.ariaBody) {
					if(ts.p.multiselect && scb && cSel){
						$(ts).jqGrid("setSelection", ri ,true,e);
					} else if (td.length > 0) {
						try {
							$(ts).jqGrid("editCell", ptr[0].rowIndex, ci, true, e);
						} catch (_) {}
					}
					return;
				}
				if (td.length > 0) {
					tdHtml = $(td).closest("td,th").html();
					$(ts).triggerHandler("jqGridCellSelect", [ri,ci,tdHtml,e]);
					if($.jgrid.isFunction(ts.p.onCellSelect)) {
						ts.p.onCellSelect.call(ts,ri,ci,tdHtml,e);
					}
				}
				if (!cSel) {
					return;
				}
				if( ts.p.multimail && ts.p.multiselect) {
					if (e.shiftKey) {
						if (scb) {
							var initialRowSelect = $(ts).jqGrid('getGridParam', 'selrow'),

							CurrentSelectIndex = $(ts).jqGrid('getInd', ri),
							InitialSelectIndex = $(ts).jqGrid('getInd', initialRowSelect),
							startID = "",
							endID = "";
							if (CurrentSelectIndex > InitialSelectIndex) {
								startID = initialRowSelect;
								endID = ri;
							} else {
								startID = ri;
								endID = initialRowSelect;
							}
							var shouldSelectRow = false,
							shouldResetRow = false,
							perform_select = true;

							if( $.inArray( ri, ts.p.selarrrow) > -1) {
								perform_select = false;
							}

							$.each($(this).getDataIDs(), function(_, id){
								if ((shouldResetRow = id === startID || shouldResetRow)){
									$(ts).jqGrid('resetSelection', id);
								}
								return id !== endID;
							});
							if(perform_select) {
								$.each($(this).getDataIDs(), function(_, id){
									if ((shouldSelectRow = id === startID || shouldSelectRow)){
										$(ts).jqGrid('setSelection', id, false);
									}
									return id !== endID;
								});
							}

							ts.p.selrow = (CurrentSelectIndex > InitialSelectIndex) ? endID : startID;
							return;
						}
						window.getSelection().removeAllRanges();
					}
					selectMultiRow( ri, scb, e, false );
				} else if ( !ts.p.multikey ) {
					selectMultiRow( ri, scb, e, true );
				} else {
					if(e[ts.p.multikey]) {
						$(ts).jqGrid("setSelection", ri, true, e);
					} else if(ts.p.multiselect && scb) {
						scb = $("#jqg_"+$.jgrid.jqID(ts.p.id)+"_"+ri).is(":checked");
						$("#jqg_"+$.jgrid.jqID(ts.p.id)+"_"+ri)[ts.p.useProp ? 'prop' : 'attr']("checked", !scb);
					}
				}
			},
			'reloadGrid': function(e,opts) {
				if(ts.p.treeGrid ===true) {
					ts.p.datatype = ts.p.treedatatype;
				}
				opts = opts || {};
				if (opts.current) {
					ts.grid.selectionPreserver(ts);
				}
				if(ts.p.datatype==="local"){
					$(ts).jqGrid("resetSelection");
					if(ts.p.data.length) {
						normalizeData();
						refreshIndex();
					}
				} else if(!ts.p.treeGrid) {
					ts.p.selrow=null;
					if(ts.p.multiselect) {
						if(!ts.p.preserveSelection) {
							ts.p.selarrrow =[];
							setHeadCheckBox(false);
						}
					}
					ts.p.savedRow = [];
				}
				if(ts.p.scroll) {
					emptyRows.call(ts, true, false);
				}
				if (opts.page) {
					var page = opts.page;
					if (page > ts.p.lastpage) { page = ts.p.lastpage; }
					if (page < 1) { page = 1; }
					ts.p.page = page;
					if (ts.grid.prevRowHeight) {
						ts.grid.bDiv.scrollTop = (page - 1) * ts.grid.prevRowHeight * ts.p.rowNum;
					} else {
						ts.grid.bDiv.scrollTop = 0;
					}
				}
				if (ts.grid.prevRowHeight && ts.p.scroll && opts.page === undefined) {
					delete ts.p.lastpage;
					ts.grid.populateVisible();
				} else {
					ts.grid.populate();
				}
				if(ts.p.inlineNav===true) {$(ts).jqGrid('showAddEditButtons');}
				if(ts.p.searchCols) {
					if(!$.isEmptyObject(ts.p._results) ) {
						ts.p._results ={};
						$.jgrid.searchColOnEnter( ts.p.id, null );
					}
				}
				return false;
			},
			'dblclick' : function(e) {
				td = e.target;
				ptr = $(td,ts.rows).closest("tr.jqgrow");
				if($(ptr).length === 0 ){return;}
				ri = ptr[0].rowIndex;
				ci = $.jgrid.getCellIndex(td);
				var dbcr = $(ts).triggerHandler("jqGridDblClickRow", [$(ptr).attr("id"),ri,ci,e]);
				if( !$.jgrid.isNull(dbcr) ) { return dbcr; }
				if ($.jgrid.isFunction(ts.p.ondblClickRow)) {
					dbcr = ts.p.ondblClickRow.call(ts,$(ptr).attr("id"),ri,ci, e);
					if( !$.jgrid.isNull(dbcr) ) { return dbcr; }
				}
			},
			'contextmenu' : function(e) {
				td = e.target;
				ptr = $(td,ts.rows).closest("tr.jqgrow");
				if($(ptr).length === 0 ){return;}
				if(!ts.p.multiselect) {	$(ts).jqGrid("setSelection",ptr[0].id,true,e);	}
				ri = ptr[0].rowIndex;
				ci = $.jgrid.getCellIndex(td);
				var rcr = $(ts).triggerHandler("jqGridRightClickRow", [$(ptr).attr("id"),ri,ci,e]);
				if( !$.jgrid.isNull(rcr) ) { return rcr; }
				if ($.jgrid.isFunction(ts.p.onRightClickRow)) {
					rcr = ts.p.onRightClickRow.call(ts,$(ptr).attr("id"),ri,ci, e);
					if( !$.jgrid.isNull(rcr) ) { return rcr; }
				}
			}
		});
		//---
		grid.bDiv = document.createElement("div");
		if(isMSIE) { if(String(ts.p.height).toLowerCase() === "auto") { ts.p.height = "100%"; } }
		$(grid.bDiv)
			.append($('<div style="position:relative;"></div>').append('<div></div>').append(this))
			.addClass("ui-jqgrid-bdiv")
			.css({ height: ts.p.height+(isNaN(ts.p.height)?"":"px"), width: (grid.width - bstw)+"px"})
			.on("scroll", grid.scrollGrid);
		$(grid.bDiv).find("table").first().css({width:ts.p.tblwidth+"px"});
		if( !$.support.tbody ) { //IE
			if( $("tbody",this).length === 2 ) { $("tbody",this).slice( 1 ).remove();}
		}
		if(ts.p.multikey){
			if( $.jgrid.msie()) {
				$(grid.bDiv).on("selectstart",function(){return false;});
			} else {
				$(grid.bDiv).on("mousedown",function(){return false;});
			}
		}
		if(hg) { // hidden grid
			$(grid.bDiv).hide();
		}
		var icoo =  iconbase + " " + getstyle(stylemodule,'icon_caption_open', true),
		icoc =  iconbase + " " + getstyle(stylemodule,'icon_caption_close', true);
		grid.cDiv = document.createElement("div");
		var arf = ts.p.hidegrid===true ? $("<a role='link' class='ui-jqgrid-titlebar-close HeaderButton "+cornerall+"' title='"+($.jgrid.getRegional(ts, "defaults.showhide", ts.p.showhide) || "")+"'" + " />").hover(
			function(){ arf.addClass(hover);},
			function() {arf.removeClass(hover);})
		.append("<span class='ui-jqgrid-headlink " + icoo +"'></span>").css((dir==="rtl"?"left":"right"),"0px") : "";
		$(grid.cDiv).append(arf).append("<span class='ui-jqgrid-title'>"+ts.p.caption+"</span>")
		.addClass("ui-jqgrid-titlebar ui-jqgrid-caption"+(dir==="rtl" ? "-rtl" :"" )+" "+getstyle(stylemodule,'gridtitleBox',true));
///// toolbar menu
		if( ts.p.menubar === true) {
			//var fs =  $('.ui-jqgrid-view').css('font-size') || '11px';
			var arf1 = '<ul id="'+ts.p.id+'_menubar" class="ui-search-menu modal-content column-menu ui-menu jqgrid-caption-menu ' + colmenustyle.menu_widget+'" role="menubar" tabindex="0"></ul>';
			$("#gbox_"+ts.p.id).append(arf1);
			$(grid.cDiv).append("<a role='link' class='ui-jqgrid-menubar menubar-"+(dir==="rtl" ? "rtl" :"ltr" )+"' style=''><span class='colmenuspan "+iconbase+' '+colmenustyle.icon_toolbar_menu+"'></span></a>");
			$(".ui-jqgrid-menubar",grid.cDiv).hover(
					function(){ $(this).addClass(hover);},
					function() {$(this).removeClass(hover);
			}).on('click',function(e) {
				var pos = $(e.target).position();
				$("#"+ts.p.id+"_menubar").show();
				if(ts.p.direction==="rtl") {
					$("#"+ts.p.id+"_menubar").css({left : pos.left - $("#"+ts.p.id+"_menubar").width() - 20 });
				}
			});
		}
///// end toolbar menu
		$(grid.cDiv).insertBefore(grid.hDiv);
		if( ts.p.toolbar[0] ) {
			var tbstyle = getstyle(stylemodule, 'customtoolbarBox', true, 'ui-userdata');
			grid.uDiv = document.createElement("div");
			if(ts.p.toolbar[1] === "top") {$(grid.uDiv).insertBefore(grid.hDiv);}
			else if (ts.p.toolbar[1]==="bottom" ) {$(grid.uDiv).insertAfter(grid.hDiv);}
			if(ts.p.toolbar[1]==="both") {
				grid.ubDiv = document.createElement("div");
				$(grid.uDiv).addClass( tbstyle + " ui-userdata-top").attr("id","t_"+this.id).insertBefore(grid.hDiv).width(grid.width - bstw);
				$(grid.ubDiv).addClass( tbstyle + " ui-userdata-bottom").attr("id","tb_"+this.id).insertAfter(grid.hDiv).width(grid.width - bstw);
				if(hg)  {$(grid.ubDiv).hide();}
			} else {
				$(grid.uDiv).width(grid.width - bstw).addClass( tbstyle + " ui-userdata-top").attr("id","t_"+this.id);
			}
			if(hg) {$(grid.uDiv).hide();}
		}
		if(ts.p.toppager) {
			ts.p.toppager = $.jgrid.jqID(ts.p.id)+"_toppager";
			grid.topDiv = $("<div id='"+ts.p.toppager+"'></div>")[0];
			$(grid.topDiv).addClass(getstyle(stylemodule, 'toppagerBox', true, 'ui-jqgrid-toppager')).width(grid.width - bstw).insertBefore(grid.hDiv);
			setPager(ts.p.toppager,'_t');
			ts.p.toppager = "#"+ts.p.toppager;
		}
		if(ts.p.footerrow) {
			grid.sDiv = $("<div class='ui-jqgrid-sdiv'></div>")[0];
			hb = $("<div class='ui-jqgrid-hbox"+(dir==="rtl"?"-rtl":"")+"'></div>");
			$(grid.sDiv).append(hb).width(grid.width - bstw).insertAfter(grid.hDiv);
			$(hb).append(tfoot);
			grid.footers = $(".ui-jqgrid-ftable",grid.sDiv)[0].rows[0].cells;
			if(ts.p.rownumbers) { grid.footers[0].className = getstyle(stylemodule, 'rownumBox', true, 'jqgrid-rownum'); }
			if(hg) {$(grid.sDiv).hide();}
		}
		if(ts.p.headerrow) {
			grid.hrDiv = $("<div class='ui-jqgrid-hrdiv'></div>")[0];
			hb = $("<div class='ui-jqgrid-hbox"+(dir==="rtl"?"-rtl":"")+"'></div>");
			$(grid.hrDiv).append(hb).width(grid.width - bstw).insertAfter(grid.hDiv);
			$(hb).append(trhead);
			grid.hrheaders = $(".ui-jqgrid-hrtable",grid.hrDiv)[0].rows[0].cells;
			if(ts.p.rownumbers) { 
				grid.hrheaders[0].className = getstyle(stylemodule, 'rownumBox', true, 'jqgrid-rownum'); 
			}
			if(hg) {
				$(grid.nDiv).hide();
			}
		}
		hb = null;
		if(ts.p.caption) {
			var tdt = ts.p.datatype;
			if(ts.p.hidegrid===true) {
				$(".ui-jqgrid-titlebar-close",grid.cDiv).click( function(e){
					var onHdCl = $.jgrid.isFunction(ts.p.onHeaderClick),
					elems = ".ui-jqgrid-bdiv, .ui-jqgrid-hdiv, .ui-jqgrid-toppager, .ui-jqgrid-pager, .ui-jqgrid-sdiv, .ui-jqgrid-hrdiv",
					counter, self = this;
					if(ts.p.toolbar[0]===true) {
						if( ts.p.toolbar[1]==='both') {
							elems += ', #' + $(grid.ubDiv).attr('id');
						}
						elems += ', #' + $(grid.uDiv).attr('id');
					}
					counter = $(elems,"#gview_"+$.jgrid.jqID(ts.p.id)).length;

					if(ts.p.gridstate === 'visible') {
						$(elems,"#gbox_"+$.jgrid.jqID(ts.p.id)).slideUp("fast", function() {
							counter--;
							if (counter === 0) {
								$("span",self).removeClass(icoo).addClass(icoc);
								ts.p.gridstate = 'hidden';
								if($("#gbox_"+$.jgrid.jqID(ts.p.id)).hasClass("ui-resizable")) { $(".ui-resizable-handle","#gbox_"+$.jgrid.jqID(ts.p.id)).hide(); }
								$(ts).triggerHandler("jqGridHeaderClick", [ts.p.gridstate,e]);
								if(onHdCl) {if(!hg) {ts.p.onHeaderClick.call(ts,ts.p.gridstate,e);}}
							}
						});
					} else if(ts.p.gridstate === 'hidden'){
						$(elems,"#gbox_"+$.jgrid.jqID(ts.p.id)).slideDown("fast", function() {
							counter--;
							if (counter === 0) {
								$("span",self).removeClass(icoc).addClass(icoo);
								if(hg) {ts.p.datatype = tdt;populate();hg=false;}
								ts.p.gridstate = 'visible';
								if($("#gbox_"+$.jgrid.jqID(ts.p.id)).hasClass("ui-resizable")) { $(".ui-resizable-handle","#gbox_"+$.jgrid.jqID(ts.p.id)).show(); }
								$(ts).triggerHandler("jqGridHeaderClick", [ts.p.gridstate,e]);
								if(onHdCl) {if(!hg) {ts.p.onHeaderClick.call(ts,ts.p.gridstate,e);}}
							}
						});
					}
					return false;
				});
				if(hg) {ts.p.datatype="local"; $(".ui-jqgrid-titlebar-close",grid.cDiv).trigger("click");}
			}
		} else {
			$(grid.cDiv).hide();
			if(!ts.p.toppager) {
				$(grid.hDiv).addClass(getstyle(ts.p.styleUI+'.common', 'cornertop', true));
			}
		}
		if(ts.p.headerrow) {
			$(grid.hrDiv).after(grid.bDiv);
		} else {
			$(grid.hDiv).after(grid.bDiv);
		}
		$(grid.hDiv)
		.mousemove(function (e) {
			if(grid.resizing){grid.dragMove(e);return false;}
		});
		$(".ui-jqgrid-labels",grid.hDiv).on("selectstart", function () { return false; });
		$(document).on( "mouseup.jqGrid" + ts.p.id, function () {
			if(grid.resizing) {	grid.dragEnd( true ); return false;}
			return true;
		});
		
		if(ts.p.direction === 'rtl') {
			$(ts).on('jqGridAfterGridComplete.setRTLPadding',function(){
					var  vScrollWidth = grid.bDiv.offsetWidth - grid.bDiv.clientWidth,
					gridhbox = $(grid.hDiv).find("div").first();
					//ts.p.scrollOffset = vScrollWidth;
					// for future implementation
					if( vScrollWidth > 0 ) vScrollWidth += 2;
					if (gridhbox.hasClass("ui-jqgrid-hbox-rtl")) {
						$(grid.hDiv).find("div").first().css({paddingLeft: vScrollWidth + "px"});
					}
					grid.hDiv.scrollLeft = grid.bDiv.scrollLeft;
			});
		}
		if(ts.p.autoResizing) {
			$(ts).on('jqGridAfterGridComplete.setAutoSizeColumns',function(){
				var arfrozen = false, focused = false;
				if(ts.p.frozenColumns === true) {
					focused = $(':focus', '.frozen-div').attr("id");
					$(ts).jqGrid("destroyFrozenColumns");
					arfrozen = true;
				}
				
				if(ts.p.colSpanHeader.length > 0) {
					$(ts).jqGrid('destroyColSpanHeader',false);
				}
				$(ts.p.colModel).each(function(i){
					if (this.autosize && !this.hidden) {
						if(this._maxsize && this._maxsize > 0) {
							$(ts).jqGrid('resizeColumn', i, this._maxsize +  ts.p.cellLayout, false, false );
							//this._maxsize = this.canvas_width;
						}
					}
				});
				$(ts).jqGrid('refreshGroupHeaders');
				if(ts.p.colSpanHeader.length > 0) {
					$(ts).jqGrid('setColSpanHeader', ts.p.colSpanHeader);
				}				
				if(arfrozen) {
					$(ts).jqGrid("setFrozenColumns");
					if(focused) {
						setTimeout(function(){
							$("#"+focused, '.frozen-div').trigger('focus');
						},10);
					}
				}
			});
		}
		if(ts.p.searchCols) {
			$(ts).on("jqGridPaging.searchCols", function() {
				if(!$.isEmptyObject(ts.p._results) ) {
					ts.p._results ={};
					$.jgrid.searchColOnEnter( ts.p.id, null );
				}

			});
			$(ts).on("jqGridSortCol.searchCols", function() {
				if(!$.isEmptyObject(ts.p._results) ) {
					ts.p._results ={};
					$.jgrid.searchColOnEnter( ts.p.id, null );
				}

			});
			if(ts.p.colMenu && ts.p.searchColOptions.colmenu) {
				$(ts).jqGrid('addColSearchMenu');
			}
		}
		ts.formatCol = formatCol;
		ts.sortData = sortData;
		ts.updatepager = updatepager;
		ts.refreshIndex = refreshIndex;
		ts.setHeadCheckBox = setHeadCheckBox;
		ts.constructTr = constructTr;
		ts.formatter = function ( rowId, cellval , colpos, rwdat, act){return formatter(rowId, cellval , colpos, rwdat, act);};
		$.extend(grid,{populate : populate, emptyRows: emptyRows, beginReq: beginReq, endReq: endReq});
		this.grid = grid;
		ts.addXmlData = function(d) {addXmlData( d );};
		ts.addJSONData = function(d) {addJSONData( d );};
		ts.addLocalData = function(d) { return addLocalData( d );};
		ts.addIndexedDBData = function(d) { return addIndexedDBData( d );};
		ts.treeGrid_beforeRequest = function() { treeGrid_beforeRequest(); }; //bvn13
		ts.treeGrid_afterLoadComplete = function() {treeGrid_afterLoadComplete(); };
		this.grid.cols = this.rows[0].cells;
		if ($.jgrid.isFunction( ts.p.onInitGrid )) { ts.p.onInitGrid.call(ts); }
		$(ts).triggerHandler("jqGridInitGrid");
		populate();
		ts.p.hiddengrid=false;
		if(ts.p.responsive) {
			var supportsOrientationChange = "onorientationchange" in window,
			orientationEvent = supportsOrientationChange ? "orientationchange" : "resize";
			$(window).on( orientationEvent, function(){
				if($.jgrid.isVisible(ts)) {
					$(ts).jqGrid('resizeGrid', 500, true, ts.p.resizeHeight,true);
				}
			});
		}
	});
};
$.jgrid.extend({
	getGridParam : function(name, grid_module) {
		var $t = this[0], ret;
		if (!$t || !$t.grid) {return;}
		if(grid_module === undefined && typeof grid_module !== 'string') {
			grid_module = 'jqGrid'; //$t.p
		}
		ret = $t.p;
		if(grid_module !== 'jqGrid') {
			try {
				ret = $($t).data( grid_module );
			} catch (e) {
				ret = $t.p;
			}
		}
		if (!name) { return ret; }
		return ret[name] !== undefined ? ret[name] : null;
	},
	setGridParam : function (newParams, overwrite){
		return this.each(function(){
			if( $.jgrid.isNull(overwrite) ) {
				overwrite = false;
			}
			if (this.grid && typeof newParams === 'object') {
				if(overwrite === true) {
					var params = $.extend({}, this.p, newParams);
					this.p = params;
				} else {
					$.extend(true,this.p,newParams);
				}
			}
		});
	},
	getGridRowById : function ( rowid ) {
		var row;
		this.each( function(){
			try {
				row = this.rows.namedItem( rowid );
				/*
				var i = this.rows.length;
				while(i--) {
					if( rowid.toString() === this.rows[i].id) {
						row = this.rows[i];
						break;
					}
				}
				*/
			} catch ( e ) {
				row = $(this.grid.bDiv).find( "#" + $.jgrid.jqID( rowid ))[0];
			}
		});
		return row;
	},
	getGridRowByIndex : function (index) { //first row = 1
		var row = null;
		this.each(function(){
			var i = this.rows.length - 1;
			if(index >= 1 && i>=1 && index <= i) {
				row = this.rows[index];
			}
		});
		return row;
	},
	getDataIDs : function () {
		var ids=[], i=0, len, j=0;
		this.each(function(){
			len = this.rows.length;
			if(len && len>0){
				while(i<len) {
					if($(this.rows[i]).hasClass('jqgrow') && this.rows[i].id !== "norecs") {
						ids[j] = this.rows[i].id;
						j++;
					}
					i++;
				}
			}
		});
		return ids;
	},
	setSelection : function(selection,onsr, e, isHight) {
		return this.each(function(){
			var $t = this, stat,pt, ner, ia, tpsr, fid, csr, tfid,
			getstyle = $.jgrid.getMethod("getStyleUI"),
			highlight = getstyle($t.p.styleUI+'.common','highlight', true),
			disabled = getstyle($t.p.styleUI+'.common','disabled', true);
			if(selection === undefined) { return; }
			if(isHight === undefined ) { 
				isHight = true;
			}
			isHight = isHight === false ? false : true; 
			onsr = onsr === false ? false : true;
			pt=$($t).jqGrid('getGridRowById', selection);
			if(!pt || !pt.className || pt.className.indexOf( disabled ) > -1 ) { return; }
			function scrGrid(iR){
				var ch = $($t.grid.bDiv)[0].clientHeight,
				st = $($t.grid.bDiv)[0].scrollTop,
				rpos = $($t.rows[iR]).position().top,
				rh = $t.rows[iR].clientHeight;
				if(rpos+rh >= ch+st) { $($t.grid.bDiv)[0].scrollTop = rpos-(ch+st)+rh+st; }
				else if(rpos < ch+st) {
					if(rpos < st) {
						$($t.grid.bDiv)[0].scrollTop = rpos;
					}
				}
			}
			if($t.p.scrollrows===true) {
				ner = $($t).jqGrid('getGridRowById',selection).rowIndex;
				if(ner >=0 ){
					scrGrid(ner);
				}
			}
			if($t.p.frozenColumns === true ) {
				fid = $t.p.id+"_frozen";
			}
			if($t.p.frozenRows === true ) {
				tfid = $t.p.id+"_fr";
			}
			
			if(!$t.p.multiselect) {
				if(tfid) {
					$("#"+$.jgrid.jqID($t.p.selrow), "#"+$.jgrid.jqID(tfid)).removeClass(highlight);
				}
				if(pt.className !== "ui-subgrid") {
					if( $t.p.selrow !== pt.id ) {
						if( isHight ) {
							csr = $($t).jqGrid('getGridRowById', $t.p.selrow);
							if( csr ) {
								$(  csr ).removeClass(highlight).attr({"aria-selected":"false" , "tabindex" : "-1"});
							}
							$(pt).addClass(highlight).attr({"aria-selected":"true" ,"tabindex" : "0"});//.focus();
							if(fid) {
								$("#"+$.jgrid.jqID($t.p.selrow), "#"+$.jgrid.jqID(fid)).removeClass(highlight);
								$("#"+$.jgrid.jqID(selection), "#"+$.jgrid.jqID(fid)).addClass(highlight);
							}
						}
						stat = true;
					} else {
						stat = false;
					}
					$t.p.selrow = pt.id;
					if( onsr ) {
						$($t).triggerHandler("jqGridSelectRow", [pt.id, stat, e]);
						if( $t.p.onSelectRow) { $t.p.onSelectRow.call($t, pt.id, stat, e); }
					}
				}
			} else {
				//unselect selectall checkbox when deselecting a specific row
				$t.setHeadCheckBox( false );
				$t.p.selrow = pt.id;
				ia = $.inArray($t.p.selrow,$t.p.selarrrow);
				if (  ia === -1 ){
					if(pt.className !== "ui-subgrid") { $(pt).addClass(highlight).attr("aria-selected","true");}
					stat = true;
					$t.p.selarrrow.push($t.p.selrow);
				} else if( ia !== -1 && e === "_sp_") { 
					// selection preserver multiselect
					if(pt.className !== "ui-subgrid") { $(pt).addClass(highlight).attr("aria-selected","true");}
					stat = true;					
				} else {
					if(pt.className !== "ui-subgrid") { $(pt).removeClass(highlight).attr("aria-selected","false");}
					stat = false;
					$t.p.selarrrow.splice(ia,1);
					tpsr = $t.p.selarrrow[0];
					$t.p.selrow = (tpsr === undefined) ? null : tpsr;
				}
				$("#jqg_"+$.jgrid.jqID($t.p.id)+"_"+$.jgrid.jqID(pt.id))[$t.p.useProp ? 'prop': 'attr']("checked",stat);
				if(fid) {
					if(isHight) {
						if(ia === -1) {
							$("#"+$.jgrid.jqID(selection), "#"+$.jgrid.jqID(fid)).addClass(highlight);
						} else {
							$("#"+$.jgrid.jqID(selection), "#"+$.jgrid.jqID(fid)).removeClass(highlight);
						}
					}
					$("#jqg_"+$.jgrid.jqID($t.p.id)+"_"+$.jgrid.jqID(selection), "#"+$.jgrid.jqID(fid))[$t.p.useProp ? 'prop': 'attr']("checked",stat);
				}
				if( onsr ) {
					$($t).triggerHandler("jqGridSelectRow", [pt.id, stat, e]);
					if( $t.p.onSelectRow) { $t.p.onSelectRow.call($t, pt.id , stat, e); }
				}
				//si
				if($.jgrid.isFunction($t.p.onMultiSelect)) {$t.p.onMultiSelect.call($t, $t.p.selarrrow);}
				
			}
		});
	},
	resetSelection : function( rowid ){
		return this.each(function(){
			var t = this, sr, fid,
			getstyle = $.jgrid.getMethod("getStyleUI"),
			highlight = getstyle(t.p.styleUI+'.common','highlight', true),
			hover = getstyle(t.p.styleUI+'.common','hover', true);
			if( t.p.frozenColumns === true ) {
				fid = t.p.id+"_frozen";
			}
			if(rowid !== undefined ) {
				sr = rowid === t.p.selrow ? t.p.selrow : rowid;
				$("#"+$.jgrid.jqID(t.p.id)+" tbody").first().find("tr#"+$.jgrid.jqID(sr)).removeClass( highlight ).attr("aria-selected","false");
				if (fid) { $("#"+$.jgrid.jqID(sr), "#"+$.jgrid.jqID(fid)).removeClass( highlight ); }
				if(t.p.multiselect) {
					$("#jqg_"+$.jgrid.jqID(t.p.id)+"_"+$.jgrid.jqID(sr), "#"+$.jgrid.jqID(t.p.id))[t.p.useProp ? 'prop': 'attr']("checked",false);
					if(fid) { $("#jqg_"+$.jgrid.jqID(t.p.id)+"_"+$.jgrid.jqID(sr), "#"+$.jgrid.jqID(fid))[t.p.useProp ? 'prop': 'attr']("checked",false); }
					t.setHeadCheckBox( false);
					var ia = $.inArray($.jgrid.jqID(sr), t.p.selarrrow);
					if (  ia !== -1 ){
						t.p.selarrrow.splice(ia,1);
					}
				}
				if( t.p.onUnSelectRow) { t.p.onUnSelectRow.call(t, sr ); }
				sr = null;
			} else if(!t.p.multiselect) {
				if(t.p.selrow) {
					$("#"+$.jgrid.jqID(t.p.id)+" tbody").first().find("tr#"+$.jgrid.jqID(t.p.selrow)).removeClass( highlight ).attr("aria-selected","false");
					if(fid) { $("#"+$.jgrid.jqID(t.p.selrow), "#"+$.jgrid.jqID(fid)).removeClass( highlight ); }
					if( t.p.onUnSelectRow) { t.p.onUnSelectRow.call(t, t.p.selrow ); }
					t.p.selrow = null;
				}
			} else {
				$(t.p.selarrrow).each(function(i,n){
					$( $(t).jqGrid('getGridRowById',n) ).removeClass( highlight ).attr("aria-selected","false");
					$("#jqg_"+$.jgrid.jqID(t.p.id)+"_"+$.jgrid.jqID(n))[t.p.useProp ? 'prop': 'attr']("checked",false);
					if(fid) {
						$("#"+$.jgrid.jqID(n), "#"+$.jgrid.jqID(fid)).removeClass( highlight );
						$("#jqg_"+$.jgrid.jqID(t.p.id)+"_"+$.jgrid.jqID(n), "#"+$.jgrid.jqID(fid))[t.p.useProp ? 'prop': 'attr']("checked",false);
					}
					if( t.p.onUnSelectRow) { t.p.onUnSelectRow.call(t, n); }
				});
				t.setHeadCheckBox( false );
				t.p.selarrrow = [];
				t.p.selrow = null;
			}
			if(t.p.cellEdit === true) {
				if(parseInt(t.p.iCol,10)>=0  && parseInt(t.p.iRow,10)>=0) {
					$("td",t.rows[t.p.iRow]).eq(t.p.iCol).removeClass("edit-cell " + highlight );
					$(t.rows[t.p.iRow]).removeClass("selected-row " + hover );
				}
			}
			//t.p.savedRow = [];
			//si
			if($.jgrid.isFunction(t.p.onMultiSelect)) {t.p.onMultiSelect.call(t, t.p.selarrrow);}

		});
	},
	getRowData : function( rowid, usedata, treeindent, visibleTreeNodes ) {
		var res = {}, resall, getall=false, len, j=0;
		this.each(function(){
			var $t = this,nm,ind;
			if( $.jgrid.isNull(rowid) ) {
				getall = true;
				resall = [];
				len = $t.rows.length;
			} else {
				ind = $($t).jqGrid('getGridRowById', rowid);
				if(!ind) { return res; }
				len = 1;
			}
			if( !(usedata && usedata === true && $t.p.data.length > 0)  ) {
				usedata = false;
			}
			if( $.jgrid.isNull(treeindent) ) {
				treeindent = false;
			}
			if( $.jgrid.isNull(visibleTreeNodes) ) {
				visibleTreeNodes = false;
			}
			while(j<len){
				if(getall) {
					ind = $t.rows[j];
				}
				if( $(ind).hasClass('jqgrow') && ind.id !== "norecs") { // ignore first not visible row and norecs one
					if($t.p.treeGrid===true && visibleTreeNodes===true && $(ind).is(":hidden")) {
						j++;
						continue;
					}
					if(usedata) {
						res = res = $.extend( {}, $t.p.data[ $t.p._index[ $.jgrid.stripPref($t.p.idPrefix, ind.id) ] ] );
					} else {
						$(ind).children('td[role="gridcell"]').each( function(i) {
							nm = $t.p.colModel[i].name;
							if ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn' && nm !== 'sc') {
								if($t.p.treeGrid===true && nm === $t.p.ExpandColumn) {
									res[nm] = $.jgrid.htmlDecode( $(this).find("span").first().html() );
								} else {
									try {
										res[nm] = $.unformat.call($t,this,{rowId:ind.id, colModel:$t.p.colModel[i]},i);
									} catch (e){
										res[nm] = $.jgrid.htmlDecode($(this).html());
									}
								}
							}
						});
					}
					if($t.p.treeGrid===true && treeindent) {
						var level = $t.p.treeReader.level_field;
						treeindent += '';
						try {
							level = parseInt(res[level],10);
						} catch(e_) {
							level = 0;
						}
						res[$t.p.ExpandColumn] = treeindent.repeat( level ) + res[$t.p.ExpandColumn];
					}
					
					if(getall) { resall.push(res); res={}; }
				}
				j++;
			}
		});
		return resall || res;
	},
	delRowData : function(rowid) {
		var success = false, rowInd, ia, nextRow;
		this.each(function() {
			var $t = this;
			rowInd = $($t).jqGrid('getGridRowById', rowid);
			if(!rowInd) {
				return false;
			} else {
				rowid = rowInd.id;
			}
			if($t.p.subGrid) {
				nextRow = $(rowInd).next();
				if(nextRow.hasClass('ui-subgrid')) {
					nextRow.remove();
				}
			}
			$(rowInd).remove();
			$t.p.records--;
			$t.p.reccount--;
			$t.updatepager(true,false);
			success=true;
			if($t.p.frozenColumns) {
				$("#" + rowid, "#" + $.jgrid.jqID($t.p.id + "_frozen")).remove();
			}
			if($t.p.multiselect) {
				ia = $.inArray(rowid,$t.p.selarrrow);
				if(ia !== -1) { $t.p.selarrrow.splice(ia,1);}
			}
			if ($t.p.multiselect && $t.p.selarrrow.length > 0) {
				$t.p.selrow = $t.p.selarrrow[$t.p.selarrrow.length-1];
			} else {
				if( $t.p.selrow === rowid ) {
					$t.p.selrow = null;
				}
			}
			if($t.p.datatype === 'local') {
				var id = $.jgrid.stripPref($t.p.idPrefix, rowid),
				pos = $t.p._index[id];
				if(pos !== undefined) {
					$t.p.data.splice(pos,1);
					$t.refreshIndex();
				}
			}
		});
		return success;
	},
	setRowData : function(rowid, data, cssp, usegetrow) {
		var nm, success=true;
		this.each(function(){
			if(!this.grid) {return false;}
			var t = this, vl, ind, lcdata={}, jsondat, title;
			ind = $(this).jqGrid('getGridRowById', rowid);
			if(!ind) { 
				return false; 
			}
			if(usegetrow === true) {
				jsondat = $(t).jqGrid("getRowData", rowid, (t.p.datatype === 'local'));
			}
			if( data ) {
				if(usegetrow) {
					data = $.extend( jsondat, data);
				}
				try {
					$(this.p.colModel).each(function(i){
						nm = this.name;
						var dval =$.jgrid.getAccessor(data,nm);
						if( dval !== undefined) {
							lcdata[nm] = dval; //this.formatter && typeof this.formatter === 'string' && this.formatter === 'date' ? $.unformat.date.call(t,dval,this) : dval;
							vl = t.formatter( rowid, lcdata[nm], i, data, 'edit');
							title = this.title ? {"title":$.jgrid.stripHtml(vl)} : {};
							
							if(t.p.treeGrid===true && nm === t.p.ExpandColumn) {
								$("td[role='gridcell']",ind).eq(i).find("span[class*='cell-wrapper']").html(vl).attr(title);
							} else {
								$("td[role='gridcell']",ind).eq(i).html(vl).attr(title);
							}
							if(t.p.frozenColumns && i <= t.p.frozenColCount) {
								$("#"+rowid+" td[role='gridcell']", "#" + $.jgrid.jqID(t.p.id + "_frozen")).eq(i).html(vl).attr(title);
							}
						}
					});
					if(t.p.datatype === 'local') {
						var id = $.jgrid.stripPref(t.p.idPrefix, rowid),
						pos = t.p._index[id], key;
						if(t.p.treeGrid) {
							for(key in t.p.treeReader){
								if(t.p.treeReader.hasOwnProperty(key)) {
									delete lcdata[t.p.treeReader[key]];
								}
							}
						}
						if(pos !== undefined) {
							t.p.data[pos] = $.extend(true, t.p.data[pos], lcdata);
						}
						lcdata = null;
					}
				} catch (e) {
					success = false;
				}
			}
			if(success) {
				if(typeof cssp === 'string') {
					$(ind).addClass(cssp);
				} else if( !$.jgrid.isNull(cssp) && typeof cssp === 'object') {
					$(ind).css(cssp);
				}
				$(t).triggerHandler("jqGridAfterGridComplete");
			}
		});
		return success;
	},
	addRowData : function(rowid,rdata,pos,src) {
		if($.inArray( pos, ["first", "last", "before", "after"] ) === -1) {pos = "last";}
		var success = false, nm, row, rnc="", msc="", gi, si, ni,sind, i, v, prp="", aradd, cnm, data, cm, id;
		if(rdata) {
			if(Array.isArray(rdata)) {
				aradd=true;
				//pos = "last";
				cnm = rowid;
			} else {
				rdata = [rdata];
				aradd = false;
			}
			this.each(function() {
				var t = this, datalen = rdata.length;
				ni = t.p.rownumbers===true ? 1 :0;
				gi = t.p.multiselect ===true ? 1 :0;
				si = t.p.subGrid===true ? 1 :0;
				if(!aradd) {
					if(rowid !== undefined) { rowid = String(rowid);}
					else {
						rowid = $.jgrid.randId();
						if(t.p.keyName !== false) {
							cnm = t.p.keyName;
							if(rdata[0][cnm] !== undefined) { rowid = rdata[0][cnm]; }
						}
					}
				}
				var k = 0, classes = $(t).jqGrid('getStyleUI',t.p.styleUI+".base",'rowBox', true, 'jqgrow ui-row-'+ t.p.direction), lcdata = {},
				air = $.jgrid.isFunction(t.p.afterInsertRow) ? true : false;
				if(ni) {
					rnc = $(t).jqGrid('getStyleUI',t.p.styleUI+".base",'rownumBox', false, 'jqgrid-rownum');
				}
				if(gi) {
					msc = $(t).jqGrid('getStyleUI',t.p.styleUI+".base",'multiBox', false, 'cbox');
				}
				while(k < datalen) {
					data = rdata[k];
					row=[];
					if(aradd) {
						try {
							rowid = data[cnm];
							if(rowid===undefined) {
								rowid = $.jgrid.randId();
							}
						}
						catch (e) {rowid = $.jgrid.randId();}
					}
					id = rowid;
					rowid  = t.p.idPrefix + rowid;
					if(ni){
						prp = t.formatCol(0,1,'',null,rowid, true);
						row[row.length] = "<td role=\"gridcell\" " + rnc +" "+prp+">0</td>";
					}
					if(gi) {
						v = "<input role=\"checkbox\" type=\"checkbox\""+" id=\"jqg_"+t.p.id+"_"+rowid+"\" "+msc+"/>";
						prp = t.formatCol(ni,1,'', null, rowid, true);
						row[row.length] = "<td role=\"gridcell\" "+prp+">"+v+"</td>";
					}
					if(si) {
						row[row.length] = $(t).jqGrid("addSubGridCell",gi+ni,1);
					}
					for(i = gi+si+ni; i < t.p.colModel.length;i++){
						cm = t.p.colModel[i];
						nm = cm.name;
						lcdata[nm] = data[nm];
						v = t.formatter( rowid, $.jgrid.getAccessor(data,nm), i, data );
						prp = t.formatCol(i,1,v, data, rowid, lcdata);
						row[row.length] = "<td role=\"gridcell\" "+prp+">"+v+"</td>";
					}
					row.unshift( t.constructTr(rowid, false, classes, lcdata, data ) );
					row[row.length] = "</tr>";
					if(t.rows.length === 0){
						$(t.grid.bDiv).find("table").first().append(row.join(''));
					} else {
						switch (pos) {
							case 'last':
								$(t.rows[t.rows.length-1]).after(row.join(''));
								sind = t.rows.length-1;
								break;
							case 'first':
								$(t.rows[0]).after(row.join(''));
								sind = 1;
								break;
							case 'after':
								sind = $(t).jqGrid('getGridRowById', src);
								if (sind) {
									if($(t.rows[sind.rowIndex+1]).hasClass("ui-subgrid")) { $(t.rows[sind.rowIndex+1]).after(row); }
									else { $(sind).after(row.join('')); }
									sind=sind.rowIndex + 1;
								}
								break;
							case 'before':
								sind = $(t).jqGrid('getGridRowById', src);
								if(sind) {
									$(sind).before(row.join(''));
									sind=sind.rowIndex - 1;
								}
								break;
						}
					}
					if(t.p.subGrid===true) {
						$(t).jqGrid("addSubGrid",gi+ni, sind);
					}
					t.p.records++;
					t.p.reccount++;
					$(t).triggerHandler("jqGridAfterInsertRow", [rowid,data,data]);
					if(air) { t.p.afterInsertRow.call(t,rowid,data,data); }
					k++;
					if(t.p.datatype === 'local') {
						lcdata[t.p.localReader.id] = id;
						switch (pos) {
							case 'first':
							t.p.data.unshift(lcdata);
								break;
							case 'last':
							t.p.data.push(lcdata);
								break;
							case 'before':
							case 'after':
								t.p.data.splice(sind-1, 0, lcdata);
								break;
						}
					}
					lcdata = {};
					if(t.p.reccount === 1) {
						sind = $(t).jqGrid('getGridRowById', "norecs");
						if(sind && sind.rowIndex && sind.rowIndex > 0) {
							$(t.rows[sind.rowIndex]).remove();
						}
					}
				}
				if(t.p.datatype === 'local') {
					t.refreshIndex();
				}
				t.updatepager(true,true);
				success = true;
			});
		}
		return success;
	},
	footerData : function(action,data, format, index, destroyFrozen) {
		var nm, success=false, res={};
		function isEmpty(obj) {
			var i;
			for(i in obj) {
				if (obj.hasOwnProperty(i)) { return false; }
			}
			return true;
		}
		if(action === undefined) { action = "get"; }
		if(typeof format !== "boolean") { format  = true; }
		if(index === undefined ) { index = 0;}
		if(destroyFrozen === undefined) { destroyFrozen = true; }
		action = action.toLowerCase();
		this.each(function(){
			var t = this, vl, title, len = this.p.colModel.length, frozen = false;
			if(!t.grid || !t.p.footerrow) {return false;}
			if(action === "set") { if(isEmpty(data)) { return false; } }
			if(action === "getlength") {
				var rowlen = $(".ui-jqgrid-ftable tr", t.grid.sDiv).length;
				res =  rowlen ? rowlen : 0;
				return false;
			}
			if(t.p.frozenColumns && action !== 'get' && destroyFrozen) {
				$(t).jqGrid("destroyFrozenColumns");
				frozen = true;
			}
			success=true;
			if(action === 'addrow') {
				var test = $(".ui-jqgrid-ftable tr", t.grid.sDiv).eq(0).clone();
				$("td", test).html("&nbsp;");
				$(".ui-jqgrid-ftable", t.grid.sDiv ).append(test);
				if(!isEmpty(data)) {
					action = 'set';
					index =  $(".ui-jqgrid-stable tr", t.grid.sDiv).length - 1;
				}
			}			
			if(action === 'delrow') {
				if(index === undefined) {
					index =  $(".ui-jqgrid-stable tr", t.grid.sDiv).length - 1;
				}
				if(index > 0 ) {
					$(".ui-jqgrid-ftable tr", t.grid.sDiv).eq(index).remove();
				}
			}			
			len = len * parseInt(index,10);
			if(action === 'get' || action === 'set') {	
			$(this.p.colModel).each(function(i){
				nm = this.name;
				if(action === "set") {
					if( data[nm] !== undefined) {
						vl = format ? t.formatter( "", data[nm], i, data, 'edit') : data[nm];
						title = this.title ? {"title":$.jgrid.stripHtml(vl)} : {};
							$("tr.footrow td",t.grid.sDiv).eq(i + len).html(vl).attr(title);
						success = true;
					}
				} else if(action === "get") {
					res[nm] = format ? $.unformat.call (t,  $("tr.footrow td",t.grid.sDiv).eq(i + len), { 'colModel' : t.p.colModel[i] }, i) :
						$("tr.footrow td",t.grid.sDiv).eq(i + len).html();
				}
			});
			}
			if(action === 'remove') {
				$(t.grid.sDiv).remove();
				t.grid.sDiv  = null;
				t.p.footerrow = false;
			}
			if(frozen) {
				$(t).jqGrid("setFrozenColumns");
			}
		});
		return (action === "get" || action === "getlength") ? res : success;
	},
	headerData : function(action, data, format, index, destroyFrozen) {
		var nm, success=false, res={};
		function isEmpty(obj) {
			var i;
			for(i in obj) {
				if (obj.hasOwnProperty(i)) { return false; }
			}
			return true;
		}
		if(action === undefined) { action = "get"; }
		if(typeof format !== "boolean") { format  = true; }
		if(index === undefined ) { index=0;}
		if(destroyFrozen === undefined) { destroyFrozen = true; }
		action = action.toLowerCase();
		this.each(function(){
			var t = this, vl, title,len = this.p.colModel.length, frozen = false;
			if(!t.grid || !t.p.headerrow) {return false;}
			if(action === "set") { if(isEmpty(data)) { return false; } }
			if(action === "getlength") {
				var rowlen = $(".ui-jqgrid-hrtable tr", t.grid.hrDiv).length;
				res =  rowlen ? rowlen : 0;
				return true;
			}
			if(t.p.frozenColumns && action !== 'get' && destroyFrozen) {
				$(t).jqGrid("destroyFrozenColumns");
				frozen = true;
			}
			success=true;
			if(action === 'addrow') {
				var test = $(".ui-jqgrid-hrtable tr", t.grid.hrDiv).eq(0).clone();
				$("td", test).html("&nbsp;");
				$(".ui-jqgrid-hrtable", t.grid.hrDiv ).append(test);
				if(!isEmpty(data)) {
					action = 'set';
					index =  $(".ui-jqgrid-hrtable tr", t.grid.hrDiv).length - 1;
				}
			}			
			if(action === 'delrow') {
				if(index === undefined) {
					index =  $(".ui-jqgrid-hrtable tr", t.grid.hrDiv).length - 1;
				}
				if(index > 0 ) {
					$(".ui-jqgrid-hrtable tr", t.grid.hrDiv).eq(index).remove();
				}
			}			
			len = len * parseInt(index,10);
			if(action === 'get' || action === 'set') {		
			$(this.p.colModel).each(function(i){
				nm = this.name;
				if(action === "set") {
					if( data[nm] !== undefined) {
						vl = format ? t.formatter( "", data[nm], i, data, 'edit') : data[nm];
						title = this.title ? {"title":$.jgrid.stripHtml(vl)} : {};
							$("tr.hrheadrow td",t.grid.hrDiv).eq(i + len).html(vl).attr(title);
						success = true;
					}
				} else if(action === "get") {
					res[nm] = format ? $.unformat.call (t,  $("tr.hrheadrow td",t.grid.hrDiv).eq(i+len), { 'colModel' : t.p.colModel[i] }, i) :
						$("tr.hrheadrow td",t.grid.hrDiv).eq(i+len).html();					
				}
			});
			}
			if(action === 'remove') {
				$(t.grid.hrDiv).remove();
				t.grid.hrDiv  = null;
				t.p.headerrow = false;
			}
			if(frozen) {
				$(t).jqGrid("setFrozenColumns");
			}
		});
		return (action === "get" || action === "getlength") ? res : success;
	},
	showHideCol : function(colname,show) {
		return this.each(function() {
			var $t = this, fndh=false, brd=$.jgrid.cell_width ? 0: $t.p.cellLayout, cw, frozen = false;
			if (!$t.grid ) {return;}
			if( typeof colname === 'string') {colname=[colname];}
			show = show !== "none" ? "" : "none";
			var sw = show === "" ? true :false,
			gHead = null,
			gh = $($t).jqGrid("isGroupHeaderOn");
			if($t.p.frozenColumns) {
				$($t).jqGrid('destroyFrozenColumns');
				frozen = true;
			}
			if(gh) { 
				$($t).jqGrid('destroyGroupHeader', false);
				gHead = $.extend([],$t.p.groupHeader);
				$t.p.groupHeader = null;
			}
			if($t.p.colSpanHeader.length) {
				$($t).jqGrid('destroyColSpanHeader', false);
			}
			$(this.p.colModel).each(function(i) {
				if ($.inArray(this.name,colname) !== -1 && this.hidden === sw) {
					//if($t.p.frozenColumns === true && this.frozen === true) {
					//	return true;
					//}
					$("tr[role=row]",$t.grid.hDiv).each(function(){
						$(this.cells[i]).css("display", show);
					});
					$($t.rows).each(function(){
						if (!$(this).hasClass("jqgroup")) {
							$(this.cells[i]).css("display", show);
						}
					});
					if($t.p.footerrow) { $("tr.footrow td", $t.grid.sDiv).eq( i ).css("display", show); }
					if($t.p.headerrow) { $("tr.hrheadrow td", $t.grid.hrDiv).eq( i ).css("display", show); }
					cw =  parseInt(this.width,10);
					if(show === "none") {
						$t.p.tblwidth -= cw+brd;
					} else {
						$t.p.tblwidth += cw+brd;
					}
					this.hidden = !sw;
					fndh=true;
					$($t).triggerHandler("jqGridShowHideCol", [sw,this.name,i]);
				}
			});
			if(fndh===true) {
				if($t.p.shrinkToFit === true && !isNaN($t.p.height)) { 
					$t.p.tblwidth += parseInt($t.p.scrollOffset,10);
				}
				$($t).jqGrid("setGridWidth",$t.p.shrinkToFit === true ? $t.p.tblwidth - (!isNaN($t.p.height) ? parseInt($t.p.scrollOffset,10) : 0) : $t.p.width );
			}
			if( gh && gHead)  {
				for(var k =0; k < gHead.length; k++) {
					$($t).jqGrid('setGroupHeaders', gHead[k]);
				}
			}
			if($t.p.colSpanHeader.length) {
				$($t).jqGrid('setColSpanHeader', $t.p.colSpanHeader);
			}
			if(frozen) {
				$($t).jqGrid("setFrozenColumns");
			}
		});
	},
	hideCol : function (colname) {
		return this.each(function(){$(this).jqGrid("showHideCol",colname,"none");});
	},
	showCol : function(colname) {
		return this.each(function(){$(this).jqGrid("showHideCol",colname,"");});
	},
	hideSearchCol : function(colname) {
		return this.each(function(){
			try {
				var index = this.p._avc.indexOf(colname);
				if(index > -1 ) {
					this.p._avc.splice(index, 1);
					this.p._fthc.push( colname );
					$(this).jqGrid("showHideCol",colname,"none");
				}
			} catch(_e) {} 
		});
	},
	showSearchCol : function(colname) {
		return this.each(function(){
			try {
				var index = this.p._fthc.indexOf(colname);
				if(index > -1 ) {
					this.p._fthc.splice(index, 1);
					this.p._avc.push( colname );
					$(this).jqGrid("showHideCol",colname,"");
				}
			} catch(_e) {} 
		});
	},
	remapColumns : function(permutation, updateCells, keepHeader) {
		function resortArray(a) {
			var ac;
			if (a.length) {
				ac = $.makeArray(a);
			} else {
				ac = $.extend({}, a);
			}
			$.each(permutation, function(i) {
				a[i] = ac[this];
			});
		}
		var ts = this.get(0);
		function resortRows(parent, clobj) {
			$(">tr"+(clobj||""), parent).each(function() {
				var row = this;
				var elems = $.makeArray(row.cells);
				$.each(permutation, function() {
					var e = elems[this];
					if (e) {
						row.appendChild(e);
					}
				});
			});
		}
		resortArray(ts.p.colModel);
		resortArray(ts.p.colNames);
		resortArray(ts.grid.headers);
		resortRows( $(ts.grid.hDiv).find("thead").first() , keepHeader && ":not(.ui-jqgrid-labels)");
		if (updateCells) {
			resortRows($("#"+$.jgrid.jqID(ts.p.id)+" tbody").first(), ".jqgfirstrow, tr.jqgrow, tr.jqfoot, tr.jqgroup");
		}
		if (ts.p.footerrow) {
			resortRows( $(ts.grid.sDiv).find("tbody").first() );
		}
		if (ts.p.headerrow) {
			resortRows( $(ts.grid.hrDiv).find("tbody").first());
		}
		if (ts.p.remapColumns) {
			if (!ts.p.remapColumns.length){
				ts.p.remapColumns = $.makeArray(permutation);
			} else {
				resortArray(ts.p.remapColumns);
			}
		}
		ts.p.lastsort = $.inArray(ts.p.lastsort, permutation);
		if(ts.p.treeGrid) { ts.p.expColInd = $.inArray(ts.p.expColInd, permutation); }
		$(ts).triggerHandler("jqGridRemapColumns", [permutation, updateCells, keepHeader]);
	},
	setGridWidth : function(nwidth, shrink, usefrozen) {
		return this.each(function(){
			if (!this.grid ) {return;}
			var $t = this, cw, setgr, frozen = false,
			initwidth = 0, brd=$.jgrid.cell_width ? 0: $t.p.cellLayout, lvc, vc=0, hs=false, scw=$t.p.scrollOffset, aw, gw=0, cr, bstw = $t.p.styleUI.search('Bootstrap') !== -1  ? 2 : 0;

			if(typeof shrink !== 'boolean') {
				shrink=$t.p.shrinkToFit;
			}
			if( typeof usefrozen !== 'boolean' ) {
				usefrozen = true;
			}
			if(isNaN(nwidth)) {return;}
			nwidth = parseInt(nwidth,10);
			if(nwidth < $t.p.minGridWidth || nwidth > $t.p.maxGridWidth) {
				return;
			}
			$t.grid.width = $t.p.width = nwidth;
			$("#gbox_"+$.jgrid.jqID($t.p.id)).css("width",nwidth+"px");
			$("#gview_"+$.jgrid.jqID($t.p.id)).css("width",nwidth+"px");
			$($t.grid.bDiv).css("width",(nwidth - bstw) +"px");
			$($t.grid.hDiv).css("width",(nwidth - bstw) +"px");
			if($t.p.pager ) {
				$($t.p.pager).css("width",(nwidth - bstw) +"px");
			}
			if($t.p.toppager ) {
				$($t.p.toppager).css("width",(nwidth - bstw)+"px");
			}
			if($t.p.toolbar[0] === true){
				$($t.grid.uDiv).css("width",(nwidth - bstw)+"px");
				if($t.p.toolbar[1]==="both") {$($t.grid.ubDiv).css("width",(nwidth - bstw)+"px");}
			}
			if($t.p.footerrow) {
				$($t.grid.sDiv).css("width",(nwidth - bstw)+"px");
			}
			if($t.p.headerrow) {
				$($t.grid.hrDiv).css("width",(nwidth - bstw)+"px");
			}
			// if (group_header)
			setgr = $($t).jqGrid("isGroupHeaderOn");
			if(setgr) { 
				$($t).jqGrid('destroyGroupHeader', false); 
			}
			if($t.p.frozenColumns && usefrozen) {
				$($t).jqGrid("destroyFrozenColumns");
				frozen = true;
			}

			if(shrink ===false && $t.p.forceFit === true) {$t.p.forceFit=false;}
			if(shrink===true) {
				$.each($t.p.colModel, function() {
					if(this.hidden===false){
						cw = this.widthOrg;
						initwidth += cw+brd;
						if(this.fixed) {
							gw += cw+brd;
						} else {
							vc++;
						}
					}
				});
				if(vc  === 0) { return; }
				$t.p.tblwidth = initwidth;
				aw = nwidth-brd*vc-gw;
				var norec_row = $("#norecs", "#"+$.jgrid.jqID($t.p.id)).eq(0);
				if(!isNaN($t.p.height)) {
					if($($t.grid.bDiv)[0].clientHeight <= $($t.grid.bDiv)[0].scrollHeight || $t.rows.length === (norec_row.length + 1)  || $($t.grid.bDiv).css('overflow-y') === 'scroll'){
						hs = true;
						aw -= scw;
					}
				}
				initwidth =0;
				var cle = $t.grid.cols.length >0;
				$.each($t.p.colModel, function(i) {
					if(this.hidden === false && !this.fixed){
						cw = this.widthOrg;
						cw = Math.round(aw*cw/($t.p.tblwidth-brd*vc-gw));
						if (cw < 0) { return; }
						this.width =cw;
						initwidth += cw;
						$t.grid.headers[i].width=cw;
						$t.grid.headers[i].el.style.width=cw+"px";
						if($t.p.footerrow) { $t.grid.footers[i].style.width = cw+"px"; }
						if($t.p.headerrow) { $t.grid.hrheaders[i].style.width = cw+"px"; }
						if(cle) { $t.grid.cols[i].style.width = cw+"px"; }
						lvc = i;
					}
				});

				if (!lvc) { return; }

				cr =0;
				if (hs) {
					if(nwidth-gw-(initwidth+brd*vc) !== scw){
						cr = nwidth-gw-(initwidth+brd*vc)-scw;
					}
				} else if( !hs && Math.abs(nwidth-gw-(initwidth+brd*vc)) !== 0) {
					cr = nwidth-gw-(initwidth+brd*vc) - bstw; // + 1 pix to remove scroll
				}

				$t.p.colModel[lvc].width += cr;
				$t.p.tblwidth = initwidth+cr+brd*vc+gw;
				if($t.p.tblwidth > nwidth) {
					var delta = $t.p.tblwidth - parseInt(nwidth,10);
					$t.p.tblwidth = nwidth;
					cw = $t.p.colModel[lvc].width = $t.p.colModel[lvc].width-delta;
				} else if ($t.p.tblwidth === nwidth){
					cw = $t.p.colModel[lvc].width = $t.p.colModel[lvc].width-bstw;
					$t.p.tblwidth = nwidth - bstw;
				} else {
					cw= $t.p.colModel[lvc].width;
				}
				var has_scroll = ($($t.grid.bDiv)[0].scrollWidth > $($t.grid.bDiv).width()) && bstw !==0 ? -1 : 0;
				cw = $t.p.colModel[lvc].width += has_scroll;

				$t.grid.headers[lvc].width = cw;
				$t.grid.headers[lvc].el.style.width=cw+"px";
				if(cle) { $t.grid.cols[lvc].style.width = cw+"px"; }
				if($t.p.footerrow) {
					$t.grid.footers[lvc].style.width = cw+"px";
				}
				if($t.p.headerrow) {
					$t.grid.hrheaders[lvc].style.width = cw+"px";
				}
			}

			$($t.grid.bDiv).find('table').first().css("width",$t.p.tblwidth+"px");
			$($t.grid.hDiv).find('table').first().css("width",$t.p.tblwidth+"px");
			$t.grid.hDiv.scrollLeft = $t.grid.bDiv.scrollLeft;
			if($t.p.footerrow) {
				$($t.grid.sDiv).find('table').first().css("width",$t.p.tblwidth+"px");
			}
			if($t.p.headerrow) {
				$($t.grid.hrDiv).find('table').first().css("width",$t.p.tblwidth+"px");
			}

			if( setgr )  {
				var gHead = $.extend([],$t.p.groupHeader);
				$t.p.groupHeader = null;
				for(var k =0; k < gHead.length; k++) {
					$($t).jqGrid('setGroupHeaders', gHead[k]);
				}
				$t.grid.hDiv.scrollLeft = $t.grid.bDiv.scrollLeft;
			}
			if(frozen) {
				$($t).jqGrid("setFrozenColumns");
			}
		});
	},
	setGridHeight : function ( nh, entrie_grid, usefrozen ) {
		return this.each(function (){
			var $t = this;
			if(!$t.grid) {return;}
			var bDiv = $($t.grid.bDiv),
			static_height = $($t.grid.hDiv).outerHeight(), frozen = false;

			if( typeof entrie_grid !== 'boolean' ) {
				entrie_grid = false;
			}

			if( typeof usefrozen !== 'boolean' ) {
				usefrozen = true;
			}

			if(entrie_grid === true) {
				if($t.p.pager ) {
					static_height += $($t.p.pager).outerHeight();
				}
				if($t.p.toppager ) {
					static_height += $($t.p.toppager).outerHeight();
				}
				if($t.p.toolbar[0] === true){
					static_height += $($t.grid.uDiv).outerHeight();
					if($t.p.toolbar[1]==="both") {
						static_height += $($t.grid.ubDiv).outerHeight();
					}
				}
				if($t.p.footerrow) {
					static_height += $($t.grid.sDiv).outerHeight();
				}
				if($t.p.headerrow) {
					static_height +=  $($t.grid.hrDiv).outerHeight();
				}
				if($t.p.caption) {
					static_height +=  $($t.grid.cDiv).outerHeight();
				}
				if(nh > static_height) { // set it for the body
					nh = nh - static_height;
				}
			}
			if($t.p.frozenColumns && usefrozen) {
				$($t).jqGrid("destroyFrozenColumns");
				frozen = true;
			}
			bDiv.css({height: nh+(isNaN(nh)?"":"px")});
			$t.p.height = nh;
			if(frozen) {
				$($t).jqGrid("setFrozenColumns");
			}
			if ($t.p.scroll) { 
				$t.grid.populateVisible(); 
			}
		});
	},
	maxGridHeight : function( action, newhgh, minrh ) {
		return this.each(function() {
			var $t = this;
			if(!$t.grid) {
				return;
			}
			if(minrh===undefined) {
				minrh = 25;
			}
			var bDiv = $($t.grid.bDiv);
			if( action === 'set' && !isNaN(newhgh)) { // row min height
				newhgh = parseFloat(newhgh);
				if( newhgh > parseFloat(minrh) ) { // min row height
					bDiv.css("max-height", newhgh ); 
					if( ['100%','auto'].includes($t.p.height) && $($t.grid.bDiv).height() < $($t).height())  {
						$("#"+$.jgrid.jqID($t.p.id)).jqGrid('setGridWidth', $t.p.width+$t.p.scrollOffset-2, false, false );
					}
				}
			} else if( action === 'remove') {
				var test = ['100%','auto'].includes($t.p.height) && $($t.grid.bDiv).height() < $($t).height();
				bDiv.css("max-height", "");
				if(test) {
					$("#"+$.jgrid.jqID($t.p.id)).jqGrid('setGridWidth', $t.p.width-$t.p.scrollOffset+2, false, false );
				}
			}
		});
	},
	setCaption : function (newcap){
		return this.each(function(){
			var ctop = $(this).jqGrid('getStyleUI',this.p.styleUI+".common",'cornertop', true);
			this.p.caption=newcap;
			$(".ui-jqgrid-title, .ui-jqgrid-title-rtl",this.grid.cDiv).html(newcap);
			$(this.grid.cDiv).show();
			$(this.grid.hDiv).removeClass(ctop);
		});
	},
	setLabel : function(colname, nData, prop, attrp ){
		return this.each(function(){
			var $t = this, pos=-1;
			if(!$t.grid) {return;}
			if( !$.jgrid.isNull(colname) ) {
				if(isNaN(colname)) {
					pos = $.jgrid.getElemByAttrVal($t.p.colModel, 'name', colname, true);
				} else {
					pos = parseInt(colname,10);
				}
			} else { return; }
			if( pos >= 0 ) {
				var thecol = $("tr.ui-jqgrid-labels th",$t.grid.hDiv).eq( pos );
				if (nData){
					var ico = $(".s-ico",thecol),
					col_menu = $(".colmenu",thecol);
					try {
						$("[id^=jqgh_]",thecol).empty().html(nData).append(ico).append(col_menu);
					} catch (er) {}
					$t.p.colNames[pos] = nData;
					if($t.p.frozenColumns) {
						thecol = $("tr.ui-jqgrid-labels th",$t.grid.fhDiv).eq( pos );
						ico = $(".s-ico",thecol);
						$("[id^=jqgh_]",thecol).empty().html(nData).append(ico);
					}
				}
				if (prop) {
					if(typeof prop === 'string') {$(thecol).addClass(prop);} else {$(thecol).css(prop);}
				}
				if(typeof attrp === 'object') {$(thecol).attr(attrp);}
				var tmpcm = $t.p.colModel[pos];
				if( tmpcm.autosize_headers ) {
					var hdr_font = $.jgrid.getFont( thecol[0]);
					tmpcm.canvas_width = ($.jgrid.getTextWidth( $("div", thecol)[0].outerText, hdr_font) +
						(tmpcm.colmenu ? $.jgrid.floatNum( $(".colmenuspan", thecol).parent().width()) : 0) +
						$.jgrid.floatNum( $("div", thecol).css("padding-left")) + $.jgrid.floatNum( $("div", thecol).css("padding-right")) +	
						$.jgrid.floatNum($(".ui-jqgrid-resize", thecol).width()));
				}
			}
		});
	},
	setSortIcon : function(position, colname) {
		return this.each(function(){
			var $t = this, pos=-1, len=1,
			nm, thecol, htmlcol, ico;
			if(!$t.grid) {return;}
			if( !$.jgrid.isNull(colname) ) {
				if(isNaN(colname)) {
					pos = $.jgrid.getElemByAttrVal($t.p.colModel, 'name', colname, true);
				} else {
					pos = parseInt(colname,10);
				}
			} else {
				len = $t.p.colNames.length;
			}
			for(var i =0; i<len; i++) {
			if(pos>=0) {
					i = pos;
				}
				
				nm = $t.p.colModel[i].name;
				if(nm === 'cb' || nm==='subgrid' || nm==='rn' || nm !== 'sc') {
					continue;
				}
				thecol = $("tr.ui-jqgrid-labels th", $t.grid.hDiv).eq( i );
				htmlcol = $t.p.colNames[i];
				ico = thecol.find(".s-ico");

				if(position === 'left') {
					thecol.find("div.ui-th-div").first().empty().addClass("ui-icon-left").append(ico).append(htmlcol);				
				} else if(position === 'right') {
					thecol.find("div.ui-th-div").first().empty().removeClass("ui-icon-left").append(htmlcol).append(ico);
				}
				if($t.p.frozenColumns) {
					thecol = $("tr.ui-jqgrid-labels th", $t.grid.fhDiv).eq( i );
					htmlcol = $t.p.colNames[i];
					ico = thecol.find(".s-ico");

					if(position === 'left') {
						thecol.find("div.ui-th-div").first().empty().addClass("ui-icon-left").append(ico).append(htmlcol);				
					} else if(position === 'right') {
						thecol.find("div.ui-th-div").first().empty().removeClass("ui-icon-left").append(htmlcol).append(ico);
					}
				}
			}
		});
	},
	setCell : function(rowid,colname,nData,cssp,attrp, forceupd) {
		return this.each(function(){
			var $t = this, pos =-1, v, ind;
			if(!$t.grid) {return;}
			if(isNaN(colname)) {
				pos = $.jgrid.getElemByAttrVal($t.p.colModel, 'name', colname, true);
			} else {
				pos = parseInt(colname,10);
			}
			if(pos>=0) {
				ind = $($t).jqGrid('getGridRowById', rowid);
				if (ind){
					var tcell, title, rawdat={}, cm = $t.p.colModel[pos], index;
					try {
						tcell = ind.cells[pos];
					} catch(e){}
					if(tcell) {
						if(nData !== "" || forceupd === true ) {
							rawdat = $($t).jqGrid("getRowData", rowid, ($t.p.datatype === 'local'));
							rawdat[cm.name] = nData;
							v = $t.formatter(rowid, nData, pos, rawdat, 'edit');
							title = cm.title ? {"title":$.jgrid.stripHtml(v)} : {};
							
							if($t.p.treeGrid && $t.p.ExpandColumn === cm.name ) {
								$("span",$(tcell)).html(v).attr(title);
							} else {
								$(tcell).html(v).attr(title);
							}
							if($t.p.datatype === "local") {
								//nData = cm.formatter && typeof cm.formatter === 'string' && cm.formatter === 'date' ? $.unformat.date.call($t,nData,cm) : nData;
								index = $t.p._index[$.jgrid.stripPref($t.p.idPrefix, rowid)];
								if(index !== undefined) {
									$t.p.data[index][cm.name] = nData;
								}
							}
						}
						if(typeof cssp === 'string'){
							$(tcell).addClass(cssp);
						} else if(cssp) {
							$(tcell).css(cssp);
						}
						if(typeof attrp === 'object') {
							$(tcell).attr(attrp);
						}
						if($t.p.frozenColumns && pos <= $t.p.frozenColCount) {
							var fcell = $(tcell).clone();
							$("#"+rowid +" td", "#" + $.jgrid.jqID($t.p.id + "_frozen") ).eq( pos ).replaceWith(fcell);
						}
					}
				}
			}
		});
	},
	getCell : function(rowid, col, returnobject) {
		var ret = false, obj;
		if(typeof returnobject !== 'boolean') {
			returnobject = false;
		}
		this.each(function(){
			var $t=this, pos=-1, ind;
			if(!$t.grid) {return;}
			if(isNaN(col)) {
				pos = $.jgrid.getElemByAttrVal($t.p.colModel, 'name', col, true);
			} else {
				pos = parseInt(col,10);
			}
			if(pos>=0) {
				ind = $($t).jqGrid('getGridRowById', rowid);
				if(ind) {
					obj = $("td",ind).eq( pos );
					if( returnobject ) {
						ret = obj;
					} else {
						try {
							ret = $.unformat.call($t, obj ,{rowId:ind.id, colModel:$t.p.colModel[pos]},pos);
						} catch (e){
							ret = $.jgrid.htmlDecode( obj.html() );
						}
						if($t.p.treeGrid && ret && $t.p.ExpandColumn === col ) {
							ret = $( "<div>" + ret +"</div>").find("span").first().html();
						}
					}
				}
			}
		});
		return ret;
	},
	getCol : function (col, obj, mathopr) {
		var ret = [], val, sum=0, min, max, v;
		if( typeof obj !== 'boolean') {
			obj = false;
		}
		if(mathopr === undefined) { mathopr = false; }
		var font = $.jgrid.getFont( this[0] );

		this.each(function(){
			var $t=this, pos=-1, cm = $t.p.colModel;
			if(!$t.grid) {return;}
			if(isNaN(col)) {
				pos = $.jgrid.getElemByAttrVal($t.p.colModel, 'name', col, true);
			} else {
				pos = parseInt(col,10);
			}
			if( pos >= 0 ) {
				var ln = $t.rows.length, i = 0, dlen = 0;
				if (ln && ln>0){
					for(; i < ln; i++){
						if($($t.rows[i]).hasClass('jqgrow') && $t.rows[i].id !== "norecs") {

							if(mathopr === 'maxwidth') {
								if(max === undefined) { 
									max = cm[pos].autosize_headers ? cm[pos].canvas_width  : 0;
								}
								max = Math.max( $.jgrid.getTextWidth($t.rows[i].cells[pos].outerText, font), max);
								continue;
							}

							try {
								val = $.unformat.call($t,$($t.rows[i].cells[pos]),{rowId:$t.rows[i].id, colModel:$t.p.colModel[pos]},pos);
							} catch (e) {
								val = $.jgrid.htmlDecode($t.rows[i].cells[pos].innerHTML);
							}
							if(mathopr) {
								v = $.jgrid.floatNum(val);
								//if(!isNaN(v)) {
								sum += v;
								if (max === undefined) {max = min = v;}
								min = Math.min(min, v);
								max = Math.max(max, v);
								dlen++;
								//}
							} else if(obj) {
								ret.push( {id:$t.rows[i].id,value:val} );
							} else {
								ret.push( val );
							}
						}
					}
					if(mathopr) {
						switch(mathopr.toLowerCase()){
							case 'sum': ret =sum; break;
							case 'avg': ret = sum/dlen; break;
							case 'count': ret = dlen; break;
							case 'min': ret = min; break;
							case 'max': ret = max; break;
							case 'maxwidth': ret = max;
						}
					}
				}
			}
		});
		return ret;
	},
	clearGridData : function(clearfooter, clearheader) {
		return this.each(function(){
			var $t = this;
			if(!$t.grid) {return;}
			if(typeof clearfooter !== 'boolean') { clearfooter = false; }
			if(typeof clearheader !== 'boolean') { clearheader = false; }
			if($t.p.deepempty) {
				$("#"+$.jgrid.jqID($t.p.id)+" tbody").first().find("tr").slice( 1 ).remove();
			}
			else {
				var trf = $("#"+$.jgrid.jqID($t.p.id)+" tbody").first().find("tr").first()[0];
				$("#"+$.jgrid.jqID($t.p.id)+" tbody").first().empty().append(trf);
			}
			if($t.p.footerrow && clearfooter) { $(".ui-jqgrid-ftable td",$t.grid.sDiv).html("&#160;"); }
			if($t.p.headerrow && clearheader) { $(".ui-jqgrid-hrtable td",$t.grid.hrDiv).html("&#160;"); }
			$t.p.selrow = null; $t.p.selarrrow= []; $t.p.savedRow = [];
			$t.p.records = 0;$t.p.page=1;$t.p.lastpage=0;$t.p.reccount=0;
			$t.p.data = []; $t.p._index = {};
			$t.p.groupingView._locgr = false;
			$t.updatepager(true,false);
		});
	},
	getInd : function(rowid,rc){
		var ret =false,rw;
		this.each(function(){
			rw = $(this).jqGrid('getGridRowById', rowid);
			if(rw) {
				ret = rc===true ? rw: rw.rowIndex;
			}
		});
		return ret;
	},
	bindKeys : function( settings ){
		var o = $.extend({
			onEnter: null,
			onSpace: null,
			onLeftKey: null,
			onRightKey: null,
			onSelectRow : true,
			scrollingRows : true
		},settings || {});
		return this.each(function(){
			var $t = this;
			if( !$('body').is('[role]') ){$('body').attr('role','application');}
			$t.p.scrollrows = o.scrollingRows;
			$($t).on("keydown", function(event){
				var target = $($t).find('tr[tabindex=0]')[0], id, r, mind,
				expanded = $t.p.treeReader.expanded_field;
				//check for arrow keys
				if(target) {
					var previd = $t.p.selrow;
					mind = $t.p._index[$.jgrid.stripPref($t.p.idPrefix, target.id)];
					if(event.keyCode === 37 || event.keyCode === 38 || event.keyCode === 39 || event.keyCode === 40){
						// up key
						if(event.keyCode === 38 ){
							r = target.previousSibling;
							id = "";
							if(r && $(r).hasClass('jqgrow')) {
								if($(r).is(":hidden")) {
									while(r) {
										r = r.previousSibling;
										if(!$(r).is(":hidden") && $(r).hasClass('jqgrow')) {id = r.id;break;}
									}
								} else {
									id = r.id;
								}
								$($t).jqGrid('setSelection', id, o.onSelectRow, event);
							}
							$($t).triggerHandler("jqGridKeyUp", [id, previd, event]);
							if($.jgrid.isFunction(o.onUpKey)) {
								o.onUpKey.call($t, id, previd, event);
							}
							event.preventDefault();
						}
						//if key is down arrow
						if(event.keyCode === 40){
							r = target.nextSibling;
							id ="";
							if(r && $(r).hasClass('jqgrow')) {
								if($(r).is(":hidden")) {
									while(r) {
										r = r.nextSibling;
										if(!$(r).is(":hidden") && $(r).hasClass('jqgrow') ) {id = r.id;break;}
									}
								} else {
									id = r.id;
								}
								$($t).jqGrid('setSelection', id, o.onSelectRow, event);
							}
							$($t).triggerHandler("jqGridKeyDown", [id, previd, event]);
							if($.jgrid.isFunction(o.onDownKey)) {
								o.onDownKey.call($t, id, previd, event);
							}
							event.preventDefault();
						}
						// left
						if(event.keyCode === 37 ){
							if($t.p.treeGrid && $t.p.data[mind][expanded]) {
								$(target).find("div.treeclick").trigger('click');
							}
							$($t).triggerHandler("jqGridKeyLeft", [$t.p.selrow, event]);
							if($.jgrid.isFunction(o.onLeftKey)) {
								o.onLeftKey.call($t, $t.p.selrow, event);
							}
						}
						// right
						if(event.keyCode === 39 ){
							if($t.p.treeGrid && !$t.p.data[mind][expanded]) {
								$(target).find("div.treeclick").trigger('click');
							}
							$($t).triggerHandler("jqGridKeyRight", [$t.p.selrow, event]);
							if($.jgrid.isFunction(o.onRightKey)) {
								o.onRightKey.call($t, $t.p.selrow, event);
							}
						}
					}
					//check if enter was pressed on a grid or treegrid node
					else if( event.keyCode === 13 ){
						event.preventDefault();
						$($t).triggerHandler("jqGridKeyEnter", [$t.p.selrow, event]);
						if($.jgrid.isFunction(o.onEnter)) {
							o.onEnter.call($t, $t.p.selrow, event);
						}
					} else if(event.keyCode === 32) {
						$($t).triggerHandler("jqGridKeySpace", [$t.p.selrow, event]);
						if($.jgrid.isFunction(o.onSpace)) {
							o.onSpace.call($t, $t.p.selrow, event);
						}
					}
				}
			}).on('click', function(e) {
				if( !$(e.target).is("input, textarea, select") ) {
					$(e.target,$t.rows).closest("tr.jqgrow").focus();
				}
			});
		});
	},
	unbindKeys : function(){
		return this.each(function(){
			$(this).off('keydown');
		});
	},
	getLocalRow : function (rowid) {
		var ret = false, ind;
		this.each(function(){
			if(rowid !== undefined) {
				ind = this.p._index[$.jgrid.stripPref(this.p.idPrefix, rowid)];
				if(ind >= 0 ) {
					ret = this.p.data[ind];
				}
			}
		});
		return ret;
	},
	progressBar : function ( pr ) {
		pr = $.extend({
			htmlcontent : "",
			method : "hide",
			loadtype : "disable"
		}, pr || {});
		return this.each(function(){
			var sh = pr.method==="show" ? true : false,
			loadDiv = $("#load_"+$.jgrid.jqID(this.p.id)),
			offsetParent, top,
			scrollTop = $(window).scrollTop();
			if(pr.htmlcontent !== "") {
				loadDiv.html( pr.htmlcontent );
			}
			switch(pr.loadtype) {
				case "disable":
					break;
				case "enable":
					loadDiv.toggle( sh );
					break;
				case "block":
					$("#lui_"+$.jgrid.jqID(this.p.id)).css(sh ? {top: 0,left:0, height: $("#gbox_" + $.jgrid.jqID(this.p.id) ).height(), width:$("#gbox_" + $.jgrid.jqID(this.p.id)).width(), "z-index":10000, position:"absolute"} : {}).toggle( sh );
					loadDiv.toggle( sh );
					break;
			}
			if (loadDiv.is(':visible')) {
				offsetParent = loadDiv.offsetParent();
				loadDiv.css('top', '');
				if (loadDiv.offset().top < scrollTop) {
					top = Math.min(
						10 + scrollTop - offsetParent.offset().top,
						offsetParent.height() - loadDiv.height()
					);
					loadDiv.css('top', top + 'px');
				}
			}
		});
	},
	getColProp : function(colname){
		var $t = this[0];
		if ( !$t.grid ) { return false; }
		return $.jgrid.getElemByAttrVal($t.p.colModel, 'name', colname, false);
	},
	setColProp : function(colname, obj){
		//do not set width will not work
		return this.each(function(){
			if ( this.grid ) {
				if ( $.isPlainObject( obj ) ) {
					var i = $.jgrid.getElemByAttrVal(this.p.colModel, 'name', colname, true);
					if ( i >= 0 ) {
						$.extend(true, this.p.colModel[i],obj);
					}
				}
			}
		});
	},
	sortGrid : function(colname,reload, sor){
		return this.each(function(){
			var $t=this,idx=-1,i, sobj=false;
			if ( !$t.grid ) { return;}
			if ( !colname ) { colname = $t.p.sortname; }
			for ( i=0;i<$t.p.colModel.length;i++ ) {
				if ( $t.p.colModel[i].index === colname || $t.p.colModel[i].name === colname ) {
					idx = i;
					if($t.p.frozenColumns === true && $t.p.colModel[i].frozen === true) {
						sobj = $t.grid.fhDiv.find("#" + $t.p.id + "_" + colname);
					}
					break;
				}
			}
			if ( idx !== -1 ){
				var sort = $t.p.colModel[idx].sortable;
				if(!sobj) {
					sobj = $t.grid.headers[idx].el;
				}
				if ( typeof sort !== 'boolean' ) { sort =  true; }
				if ( typeof reload !=='boolean' ) { reload = false; }
				if ( sort ) { $t.sortData("jqgh_"+$t.p.id+"_" + colname, idx, reload, sor, sobj); }
			}
		});
	},
	setGridState : function(state) {
		return this.each(function(){
			if ( !this.grid ) {return;}
			var $t = this,
			open = $(this).jqGrid('getStyleUI',this.p.styleUI+".base",'icon_caption_open', true),
			close = $(this).jqGrid('getStyleUI',this.p.styleUI+".base",'icon_caption_close', true);

			if(state === 'hidden'){
				$(".ui-jqgrid-bdiv, .ui-jqgrid-hdiv","#gview_"+$.jgrid.jqID($t.p.id)).slideUp("fast");
				if($t.p.pager) {$($t.p.pager).slideUp("fast");}
				if($t.p.toppager) {$($t.p.toppager).slideUp("fast");}
				if($t.p.toolbar[0]===true) {
					if( $t.p.toolbar[1] === 'both') {
						$($t.grid.ubDiv).slideUp("fast");
					}
					$($t.grid.uDiv).slideUp("fast");
				}
				if($t.p.footerrow) { $(".ui-jqgrid-sdiv","#gbox_"+$.jgrid.jqID($t.p.id)).slideUp("fast"); }
				if($t.p.headerrow) { $(".ui-jqgrid-hrdiv","#gbox_"+$.jgrid.jqID($t.p.id)).slideUp("fast"); }
				$(".ui-jqgrid-headlink",$t.grid.cDiv).removeClass( open ).addClass( close );
				$t.p.gridstate = 'hidden';
			} else if(state === 'visible') {
				$(".ui-jqgrid-hdiv, .ui-jqgrid-bdiv","#gview_"+$.jgrid.jqID($t.p.id)).slideDown("fast");
				if($t.p.pager) {$($t.p.pager).slideDown("fast");}
				if($t.p.toppager) {$($t.p.toppager).slideDown("fast");}
				if($t.p.toolbar[0]===true) {
					if( $t.p.toolbar[1] === 'both') {
						$($t.grid.ubDiv).slideDown("fast");
					}
					$($t.grid.uDiv).slideDown("fast");
				}
				if($t.p.footerrow) { $(".ui-jqgrid-sdiv","#gbox_"+$.jgrid.jqID($t.p.id)).slideDown("fast"); }
				if($t.p.headerrow) { $(".ui-jqgrid-hrdiv","#gbox_"+$.jgrid.jqID($t.p.id)).slideDown("fast"); }
				$(".ui-jqgrid-headlink",$t.grid.cDiv).removeClass( close ).addClass( open );
				$t.p.gridstate = 'visible';
			}

		});
	},
	setFrozenColumns : function () {
		return this.each(function() {
			if ( !this.grid ) {return;}
			var $t = this, cm = $t.p.colModel,i=0, len = cm.length,
			hd= $($t).jqGrid('getStyleUI',$t.p.styleUI+".base",'headerDiv', true, 'ui-jqgrid-hdiv'),
			hover = $($t).jqGrid('getStyleUI',$t.p.styleUI+".common",'hover', true),
			borderbox = $("#gbox_"+$.jgrid.jqID($t.p.id)).css("box-sizing") === 'border-box',
			pixelfix = borderbox ? 1 : 0;
			// TODO treeGrid and grouping  Support
			if($t.p.subGrid === true ||
				$t.p.treeGrid === true ||
				$t.p.cellEdit === true ||
				/*$t.p.sortable ||*/ 
				$t.p.scroll ||
				$t.p.frozenColumns
				/* $t.p.grouping === true*/)
			{
				return;
			}
			// get the max index of frozen col
			$t.p.frozenColCount = -1;
			while(i<len)
			{
				// from left, no breaking frozen
				if(cm[i].frozen === true)
				{
					$t.p.frozenColCount = i;
				} else {
					break;
				}
				i++;
			}
			if( $t.p.frozenColCount >= 0) {
				var divhth =  $(".ui-jqgrid-hdiv","#gview_"+$.jgrid.jqID($t.p.id)).height(),
				bpos = $(".ui-jqgrid-bdiv","#gview_"+$.jgrid.jqID($t.p.id)).position(),
				bhpos = $(".ui-jqgrid-hdiv","#gview_"+$.jgrid.jqID($t.p.id)).position();
				
				$t.grid.fhDiv = $('<div style="position:absolute;' + ($t.p.direction === "rtl" ? 'right:0px;' : 'left:0px;') + 'top:'+bhpos.top+'px;height:'+(divhth - pixelfix)+'px;" class="frozen-div ' + hd +'"></div>');
				$t.grid.fbDiv = $('<div style="position:absolute;' + ($t.p.direction === "rtl" ? 'right:0px;' : 'left:0px;') + 'top:'+ bpos.top +'px;overflow-y:hidden" class="frozen-bdiv ui-jqgrid-bdiv"></div>');
				$("#gview_"+$.jgrid.jqID($t.p.id)).append($t.grid.fhDiv);
				var htbl = $(".ui-jqgrid-htable","#gview_"+$.jgrid.jqID($t.p.id)).clone(true),
				fthh = null;
				// groupheader support - only if useColSpanstyle is false
				$(htbl).width(1);
				$($t.grid.fhDiv).append(htbl);
				if( $($t).jqGrid('isGroupHeaderOn') )  {
					fthh = $("tr.jqg-third-row-header", $t.grid.hDiv).height();
					$("tr.jqg-first-row-header, tr.jqg-third-row-header", htbl).each(function(){
						$("th", this).slice( $t.p.frozenColCount + 1 ).remove();
					});
					var swapfroz = -1, fdel = -1, cs, rs;
					$("tr.jqg-second-row-header th", htbl).each(function(){
						cs= parseInt($(this).attr("colspan"),10);
						rs= parseInt($(this).attr("rowspan"),10);
						if(rs) {
							swapfroz++;
							fdel++;
						}
						if(cs) {
							swapfroz = swapfroz+cs;
							fdel++;
						}
						if(swapfroz === $t.p.frozenColCount) {
							fdel = $t.p.frozenColCount;
							return false;
						}
					});
					if(swapfroz !== $t.p.frozenColCount) {
						fdel = $t.p.frozenColCount;
					}
					$("tr.jqg-second-row-header", htbl).each(function(){
						$("th", this).slice( fdel + 1 ).remove();
					});
					var testws = $("tr.jqg-second-row-header th", htbl).filter( function() { 
						return $(this).css("display") !== "none"; 
					}).first();
					if($.jgrid.type(testws) === 'object' && testws.length && testws.css("visibility") !== 'hidden' && $.jgrid.trim(testws[0].outerText) === "") {
						testws.html('&nbsp;');
					}
					testws = $("tr.jqg-third-row-header th", htbl).filter( function() { return $(this).css("display") !== "none"; }).first();
					if($.jgrid.type(testws) === 'object' && testws.length && testws.css("visibility") !== 'hidden' && $.jgrid.trim(testws[0].outerText) === "") {
						$("div",testws).prepend('&nbsp;');
					}
				} else {
					var maxdh=[];
					$("#gview_"+$.jgrid.jqID($t.p.id) +" .ui-jqgrid-htable > thead >tr").each(function(i,n){
						maxdh.push(parseInt($(this).height(),10));
					});
					$("thead >tr",htbl).each(function(){
						$("th", this).slice( $t.p.frozenColCount + 1 ).remove();
					});
					$("thead >tr",htbl).each(function(i){
						if(i===0) {
							maxdh[i] -=1;
						}
						$(this).height(maxdh[i]);
					});
				}
				//if( fthh ) {
					//$("tr.jqg-third-row-header th", htbl).eq(0).height(fthh);
				//}
				//$(htbl).width(1);
				if(!$.jgrid.msie()) {
					$(htbl).css("height","100%");
				}
				// resizing stuff
				$($t.grid.fhDiv)//.append(htbl)
				.mousemove(function (e) {
					if($t.grid.resizing){ $t.grid.dragMove(e);return false; }
				});
				if ($t.p.sortable && $.fn.sortable) {
					// disable sortable with mouse on frozen columns
					$($t.grid.fhDiv).find("tr.ui-jqgrid-labels th").addClass("sortable-disabled");
				}
				if($t.p.headerrow) {
					$t.grid.fhrDiv = $('<div style="position:absolute;' + ($t.p.direction === "rtl" ? 'right:0px;' : 'left:0px;') + 'top:0px;" class="frozen-hrdiv ui-jqgrid-hrdiv "></div>');
					$("#gview_"+$.jgrid.jqID($t.p.id)).append($t.grid.fhrDiv);
				}				
				if($t.p.footerrow) {
					$t.grid.fsDiv = $('<div style="position:absolute;' + ($t.p.direction === "rtl" ? 'right:0px;' : 'left:0px;') + 'top:0px;" class="frozen-sdiv ui-jqgrid-sdiv"></div>');
					$("#gview_"+$.jgrid.jqID($t.p.id)).append($t.grid.fsDiv);
				}
				// data stuff
				//TODO support for setRowData
				$("#gview_"+$.jgrid.jqID($t.p.id)).append($t.grid.fbDiv);

				$($t.grid.fbDiv).on('mousewheel DOMMouseScroll', function (e) {
					$t.grid.bDiv.scrollTop += 
						e.type === "mousewheel" ?
							-e.originalEvent.wheelDelta / 10 :
							e.originalEvent.detail * 6;
				});

				if($t.p.hoverrows === true) {
					$("#"+$.jgrid.jqID($t.p.id)).off('mouseover mouseout');
				}
				//var hasscroll;
				$($t).on('jqGridAfterGridComplete.setFrozenColumns', function () {
					$("#"+$.jgrid.jqID($t.p.id)+"_frozen").remove();
					
				   // hasscroll = parseInt($($t.grid.bDiv)[0].scrollWidth,10) > parseInt($($t.grid.bDiv)[0].clientWidth,10);
					$($t.grid.fbDiv).height( $($t.grid.bDiv)[0].clientHeight ); //- (hasscroll ? 0 : $t.p.scrollOffset-3));
					// find max height
					var mh = [];
					$("#"+$.jgrid.jqID($t.p.id) + " tr[role=row].jqgrow").each(function(){
						mh.push( $(this).height() );
					});

					var btbl = $("#"+$.jgrid.jqID($t.p.id)).clone(true);
					$("tr[role=row]",btbl).each(function(){
						$("td[role=gridcell]", this).slice( $t.p.frozenColCount + 1).remove();
					});

					$(btbl).width(1).attr("id",$t.p.id+"_frozen");
					$($t.grid.fbDiv).append(btbl);
					// set the height
					$("tr[role=row].jqgrow",btbl).each(function(i, n){
						$(this).height( mh[i] );
						if( Math.abs($(this).height() - mh[i]) >= 0.3  ) {
							var tt = $("td:visible", this).first();
							tt.height(mh[i] - Math.round(parseFloat(tt.css("border-bottom-width")) ));
						}
					});
					if($t.rows[1] && $t.rows[1].id === 'norecs') {
						$("#norecs td", btbl).html("");
					}
					$($t.grid.fbDiv)[0].scrollTop = $($t.grid.bDiv)[0].scrollTop;
					if($t.p.hoverrows === true) {
						$("tr.jqgrow", btbl).hover(
							function(){ 
								$(this).addClass( hover ); 
								$("#"+$.jgrid.jqID(this.id), "#"+$.jgrid.jqID($t.p.id)).addClass( hover ); 
							},function(){ 
								$(this).removeClass( hover ); 
								$("#"+$.jgrid.jqID(this.id), "#"+$.jgrid.jqID($t.p.id)).removeClass( hover ); 
							}
						);
						$("tr.jqgrow", "#"+$.jgrid.jqID($t.p.id)).hover(
							function(){ 
								$(this).addClass( hover ); 
								$("#"+$.jgrid.jqID(this.id), "#"+$.jgrid.jqID($t.p.id)+"_frozen").addClass( hover );
							
							},
							function(){ 
								$(this).removeClass( hover );
								$("#"+$.jgrid.jqID(this.id), "#"+$.jgrid.jqID($t.p.id)+"_frozen").removeClass( hover ); 
							}
						);
					}
					//btbl=null;
					if($t.p.headerrow) {
						var bhtop = $($t.grid.hrDiv).position();
						$("table",$t.grid.fhrDiv).remove();
						var hrtbl = $(".ui-jqgrid-hrtable","#gview_"+$.jgrid.jqID($t.p.id)).clone(true);
						$("tr",hrtbl).each(function(){
							$("td", this).slice( $t.p.frozenColCount + 1 ).remove();
						});
						$(hrtbl).width(1);
						$($t.grid.fhrDiv).css("top", bhtop.top+"px").append(hrtbl);
					}				
					if($t.p.footerrow) {
						var bttop = $($t.grid.sDiv).position();
						$("table",$t.grid.fsDiv).remove();
						var ftbl = $(".ui-jqgrid-ftable","#gview_"+$.jgrid.jqID($t.p.id)).clone(true);
						$("tr",ftbl).each(function(){
							$("td", this).slice( $t.p.frozenColCount + 1 ).remove();
						});
						$(ftbl).width(1);
						$($t.grid.fsDiv).css("top", bttop.top+"px").append(ftbl);
					}
				});
				if(!$t.grid.hDiv.loading) {
					$($t).triggerHandler("jqGridAfterGridComplete.setFrozenColumns");
				}
				$t.p.frozenColumns = true;
				$($t).triggerHandler("onFrozenColumnsCall");
			}
		});
	},
	destroyFrozenColumns :  function() {
		return this.each(function() {
			if ( !this.grid ) {return;}
			if(this.p.frozenColumns === true) {
				var $t = this,
				hover = $($t).jqGrid('getStyleUI',$t.p.styleUI+".common",'hover', true);
				$($t.grid.fhDiv).remove();
				$($t.grid.fbDiv).remove();
				$t.grid.fhDiv = null; $t.grid.fbDiv=null;
				if($t.p.footerrow) {
					$($t.grid.fsDiv).remove();
					$t.grid.fsDiv = null;
				}
				if($t.p.headerrow) {
					$($t.grid.fhrDiv).remove();
					$t.grid.fhrDiv = null;
				}
				$(this).off('.setFrozenColumns');
				if($t.p.hoverrows === true) {
					var ptr;
					$("#"+$.jgrid.jqID($t.p.id)).on({
						'mouseover': function(e) {
							ptr = $(e.target).closest("tr.jqgrow");
							if($(ptr).attr("class") !== "ui-subgrid") {
								$(ptr).addClass( hover );
							}
						},
						'mouseout' : function(e) {
							ptr = $(e.target).closest("tr.jqgrow");
							$(ptr).removeClass( hover );
						}
					});
				}
				this.p.frozenColumns = false;
				this.p.frozenColCount = -1;
			}
		});
	},
	resizeColumn : function ( iCol, newWidth, forceresize, setfrozen ) {
		return this.each(function() {
			var tgrid = this.grid, pr = this.p,
				cm = pr.colModel, i, cmLen = cm.length, diff, diffnv;

			if( typeof forceresize !== 'boolean' ) {
				forceresize = false;
			}
			if( typeof setfrozen !== 'boolean' ) {
				setfrozen = true;
			}
			if(typeof iCol === "string" ) {
				for(i = 0; i < cmLen; i++) {
					if(cm[i].name === iCol) {
						iCol = i;
						break;
					}
				}
			} else {
				iCol = parseInt( iCol, 10 );
			}
			if( !cm[iCol].resizable && !forceresize || cm[iCol].hidden) {
				return;
			}
			newWidth = parseFloat( newWidth );
			// filters
			if(typeof iCol !== "number" || iCol < 0 || iCol > cm.length-1 || typeof newWidth !== "number" ) {
				return;
			}

			if( newWidth < pr.minColWidth ) { 
				newWidth = pr.minColWidth;
			}

			if( pr.forceFit ) {
				pr.nv = 0;
				for (i = iCol+1; i < cmLen; i++){
					if(cm[i].hidden !== true ) {
						pr.nv = i - iCol;
						break;
					}
				}
			}
			// use resize stuff
			tgrid.resizing = {idx : iCol };
			diff = newWidth - tgrid.headers[iCol].width;
			if(pr.forceFit) {
				diffnv = tgrid.headers[ iCol + pr.nv].width - diff;
				if(diffnv < pr.minColWidth) { return; }
				tgrid.headers[ iCol + pr.nv].newWidth = tgrid.headers[ iCol + pr.nv].width - diff;
			}
			tgrid.newWidth = pr.tblwidth + diff;
			tgrid.headers[ iCol ].newWidth = newWidth;
			tgrid.dragEnd( false, setfrozen );
		});
	},
	getStyleUI : function( styleui, classui, notclasstag, gridclass) {
		var ret = "", q = "";
		try {
			var stylemod = styleui.split(".");
			if(!notclasstag) {
				ret = "class=";
				q = "\"";
			}
			if( $.jgrid.isNull(gridclass) ) {
				gridclass = "";
			}
			switch(stylemod.length) {
				case 1 :
					ret += q + $.jgrid.trim(gridclass + " " + $.jgrid.styleUI[stylemod[0]][classui] + q);
					break;
				case 2 :
					ret += q + $.jgrid.trim(gridclass + " " + $.jgrid.styleUI[stylemod[0]][stylemod[1]][classui] + q);
			}
		} catch (cls) {
			ret = "";
		}
		return ret;
	},
	resizeGrid : function (timeout, width, height, refreshfrozen) {
		return this.each(function(){
			var $t = this, frozen = false;
			if(timeout === undefined) {
				timeout = 500;
			}
			if( typeof width !== 'boolean' ) {
				width = true;
			}
			if( typeof height !== 'boolean' ) {
				height = true;
			}
			if( typeof refreshfrozen !== 'boolean' ) {
				refreshfrozen = true;
			}

			setTimeout(function(){
				try {
					if($t.p.frozenColumns && refreshfrozen) {
						$("#"+$.jgrid.jqID($t.p.id)).jqGrid("destroyFrozenColumns");
						frozen = true;
					}
					if(width) {
						var winwidth = $(window).width(),
						parentwidth = $("#gbox_"+$.jgrid.jqID($t.p.id)).parent().width(),
						ww = $t.p.width;
						if( (winwidth-parentwidth) > 3 ) {
							ww = parentwidth;
						} else {
							ww = winwidth;
						}
						if( $($t.grid.bDiv).css("max-height") && ['100%','auto'].includes($t.p.height) && $($t.grid.bDiv).height() < $($t).height())  {
							$("#"+$.jgrid.jqID($t.p.id)).jqGrid('setGridWidth', ww+$t.p.scrollOffset-2, false, false );
						} else {
							$("#"+$.jgrid.jqID($t.p.id)).jqGrid('setGridWidth', ww, $t.p.shrinkToFit, false );
						}
					}

					if( !($t.p.height === 'auto' || $t.p.height === '100%') && height) {
						var wh = $t.p.height,
						bstw = $t.p.styleUI.search('Bootstrap') !== -1 && !isNaN($t.p.height) ? 2 : 0,
						winheight = $(window).height(),
						parentheight = $("#gbox_"+$.jgrid.jqID($t.p.id)).parent().height();
						
						if( (winheight-parentheight) > 3 ) {
							wh = parentheight;
						} else {
							wh = winheight;
						}
						$("#"+$.jgrid.jqID($t.p.id)).jqGrid('setGridHeight', wh - bstw, true, false);
					}
					if($t.p.frozenRows) {
						$($t).trigger('jqGridAfterGridComplete.setFrozenRows');
					}		
					if(frozen) {
						$("#"+$.jgrid.jqID($t.p.id)).jqGrid("setFrozenColumns");
					}
				} catch(e){}
			}, timeout);
		});
	},
	colMenuAdd : function (colname, options ) {
		var	currstyle = this[0].p.styleUI,
			styles = $.jgrid.styleUI[currstyle].colmenu;
		options = $.extend({
			title: 'Item',
			icon : styles.icon_new_item,
			funcname: null,
			position : "last",
			closeOnRun : true,
			exclude : "",
			id : null, 
			items : []
		}, options ||{});
		return this.each(function(){
			options.colname = colname === 'all' ? "_all_" : colname;
			var $t = this;
			options.id = $.jgrid.isNull(options.id, true) ? $.jgrid.randId(): options.id;
			$t.p.colMenuCustom[options.id] = options;
		});
	},
	colMenuDelete : function ( id ) {
		return this.each(function(){
			if(this.p.colMenuCustom.hasOwnProperty( id )) {
				delete this.p.colMenuCustom[ id ];
			}
		});
	},
	menubarAdd : function( items ) {
		var	currstyle = this[0].p.styleUI,
			styles = $.jgrid.styleUI[currstyle].common, item, str;

		return this.each(function(){
			var $t = this;
			if( Array.isArray(items)) {
				for(var i = 0; i < items.length; i++) {
					item = items[i];
					// icon, title, position, id, click
					if(!item.id ) {
						item.id = $.jgrid.randId();
					}
					var ico = '';
					if( item.icon) {
						ico = '<span class="'+styles.icon_base+' ' + item.icon+'"></span>';
					}
					if(!item.position) {
						item.position = 'last';
					}
					if(!item.closeoncall) {
						item.closeoncall = true;
					}
					if(item.divider) {
						str = '<li class="ui-menu-item divider" role="separator"></li>';
						item.cick = null;
					} else {
					str = '<li class="ui-menu-item" role="presentation"><a id="'+ item.id+'" class="g-menu-item" tabindex="0" role="menuitem" ><table class="ui-common-table"><tr><td class="menu_icon">'+ico+'</td><td class="menu_text">'+item.title+'</td></tr></table></a></li>';
					}
					if(item.position === 'last') {
						$("#"+this.p.id+"_menubar").append(str);
					} else {
						$("#"+this.p.id+"_menubar").prepend(str);
					}
				}
			}
			$("li a", "#"+this.p.id+"_menubar").each(function(i,n){
				$(items).each(function(j,f){
					if(f.id === n.id && $.jgrid.isFunction(f.click)) {
						$(n).on('click', function(e){
							f.click.call($t, e);
						});
						return false;
					}
				});
				$(this).hover(
					function(e){
						$(this).addClass(styles.hover);
						e.stopPropagation();
					},
					function(e){ $(this).removeClass(styles.hover);}
				);
			});
		});
	},
	menubarDelete : function( itemid ) {
		return this.each(function(){
			$("#"+itemid, "#"+this.p.id+"_menubar").remove();
		});
	},
	addColSearchMenu :  function() {
		return this.each(function(){
			var $t = this;
			$($t).colMenuAdd('sc',{
				title: 'Reset',
				position : "first",
				id :"reset",
				funcname : function() {
					$("input[id^='jqs_']", "#"+this.p.id ).each(function(i){
						$(this).val("");
					});
					$(this)[0].p._results ={};
					$(this).jqGrid('showCol', this.p._avc);
				}
			});
			$($t).colMenuAdd('sc',{
				separator : true,
				id:"groupOp"
			});
			$($t).colMenuAdd('sc',{
				separator : true,
				id:"operOp"
			});
			$($t).colMenuAdd('sc',{
				//title: 'Close',
				separator : true,
				id :"close",
				funcname : function() {
					return true;
				}
			});
			$($t).on("jqGridcolMenuBeforeProcess.custom", function(t, p){
				if(p.module === 'custom' && p.column === 'sc') {
					var regional = $.jgrid.getRegional(this, "search"),
						tstl, i, selected,
						sopt = this.p.searchColOptions,
						getstyle = $.jgrid.getMethod("getStyleUI"),
						stylemodule = this.p.styleUI + ".base";
					if(p.action.id === "reset") {
						p.action.title = regional.Reset || 'Reset';
						p.action.icon = getstyle(this.p.styleUI + ".colmenu", 'icon_reset', true, '');
					}
					if(p.action.id === "close") {
						p.action.title = regional.Close || 'Close';
						p.action.icon = getstyle(this.p.styleUI + ".colmenu", 'icon_close', true, '');
					}
					if(p.action.id === "groupOp") {
						tstl = getstyle(stylemodule, 'searchSelect', false, 'search-col-input');
						p.action.title = ""+(regional.Operand || "Operand: ")+"";
						p.action.title +='<select data-grid-id='+this.p.id+' id="opselect"  '+ tstl+'>';
						tstl = getstyle(this.p.styleUI + ".colmenu", 'icon_group_op', true, ''); 
						p.action.icon = tstl;
						for (i = 0;i< regional.groupOps.length; i++) {
							selected = sopt.searchOp === regional.groupOps[i].op ? "selected" : "";
							p.action.title += "<option value=\"" + regional.groupOps[i].op +"\" " + selected+">"+regional.groupOps[i].text+"</option>";
						}
						p.action.title += "</select>";
						setTimeout(function() {
							$("#opselect").on('change', function(){
								var gid =$("#"+ $(this).attr('data-grid-id'))[0];
								gid.p.searchColOptions.searchOp = $(this).val();
								$.jgrid.myfunc(gid.p.id);
								//$("#column_menu").remove();
							});
						}, 200);
					}
					if(p.action.id === "operOp") {
						tstl = getstyle(stylemodule, 'searchSelect', false, 'search-col-input');
						p.action.title = regional.Operation || "Oper : ";
						p.action.title += '<select data-grid-id='+this.p.id+' id="selectoper"  '+ tstl+'>';
						tstl = getstyle(this.p.styleUI + ".colmenu", 'icon_oper_op', true, ''); 
						p.action.icon = tstl;
						for (i = 0;i <  regional.odata.length; i++) {
							selected = sopt.operand === regional.odata[i].oper ? "selected" : "";
							if(sopt.aOperands.includes( regional.odata[i].oper )) {
								p.action.title += "<option value=\"" + regional.odata[i].oper +"\" " + selected+">"+regional.odata[i].text+"</option>";
							}
						}
						p.action.title += "</select>";
						setTimeout(function() {
							$("#selectoper").on('change', function(){
								var gid =$("#"+ $(this).attr('data-grid-id'))[0];
								gid.p.searchColOptions.operand = $(this).val();
								$.jgrid.myfunc(gid.p.id);
								//$("#column_menu").remove();
							});
						}, 200);
					}
				}
			});
		});
	},
	disableColMenu : function( colname ) {
		return this.each(function (){
			$(this.grid.hDiv).find("tr #jqgh_"+this.p.id+"_"+colname+" > .colmenu").css("display","none");
		});
	},
	enableColMenu : function( colname ) {
		return this.each(function (){
			$(this.grid.hDiv).find("tr #jqgh_"+this.p.id+"_"+colname+" > .colmenu").css("display","inline");
		});
	}
});
//module end
}));
js/minified/grid.grouping.js000064400000040774151676727230012114 0ustar00!function(r){"use strict";"function"==typeof define&&define.amd?define(["jquery","./grid.base"],r):r(jQuery)}(function(N){"use strict";N.jgrid.extend({groupingInit:function(){return this.each(function(){N.extend(this.p.groupingView,{groupField:[],groupOrder:[],groupText:[],groupColumnShow:[],groupSummary:[],showSummaryOnHide:!1,sortitems:[],sortnames:[],summary:[],summaryval:[],plusicon:"",minusicon:"",displayField:[],groupSummaryPos:[],formatDisplayField:[],_locgr:!1},!0)})},groupingSetup:function(){return this.each(function(){var r,e,i,t=this,o=t.p.colModel,n=t.p.groupingView,s=N.jgrid.styleUI[t.p.styleUI||"jQueryUI"].grouping;if(null===n||"object"!=typeof n&&!N.jgrid.isFunction(n))t.p.grouping=!1;else if(n.plusicon||(n.plusicon=s.icon_plus),n.minusicon||(n.minusicon=s.icon_minus),n.groupField.length){for(void 0===n.visibiltyOnNextGrouping&&(n.visibiltyOnNextGrouping=[]),n.lastvalues=[],n._locgr||(n.groups=[]),n.counters=[],r=0;r<n.groupField.length;r++)n.groupOrder[r]||(n.groupOrder[r]="asc"),n.groupText[r]||(n.groupText[r]="{0}"),"boolean"!=typeof n.groupColumnShow[r]&&(n.groupColumnShow[r]=!0),"boolean"!=typeof n.groupSummary[r]&&(n.groupSummary[r]=!1),n.groupSummaryPos[r]||(n.groupSummaryPos[r]="footer"),!0===n.groupColumnShow[r]?(n.visibiltyOnNextGrouping[r]=!0,N(t).jqGrid("showCol",n.groupField[r])):(n.visibiltyOnNextGrouping[r]=N("#"+N.jgrid.jqID(t.p.id+"_"+n.groupField[r])).is(":visible"),N(t).jqGrid("hideCol",n.groupField[r]));for(n.summary=[],n.hideFirstGroupCol&&Array.isArray(n.formatDisplayField)&&!N.jgrid.isFunction(n.formatDisplayField[0])&&(n.formatDisplayField[0]=function(r){return r}),e=0,i=o.length;e<i;e++)n.hideFirstGroupCol&&!o[e].hidden&&n.groupField[0]===o[e].name&&(o[e].formatter=function(){return""}),o[e].summaryType&&(o[e].summaryDivider?n.summary.push({nm:o[e].name,st:o[e].summaryType,v:"",sd:o[e].summaryDivider,vd:"",sr:o[e].summaryRound,srt:o[e].summaryRoundType||"round"}):n.summary.push({nm:o[e].name,st:o[e].summaryType,v:"",sr:o[e].summaryRound,srt:o[e].summaryRoundType||"round"}))}else t.p.grouping=!1})},groupingPrepare:function(l,u){return this.each(function(){for(var r,e,i,t=this.p.groupingView,o=this,n=function(){N.jgrid.isFunction(this.st)?this.v=this.st.call(o,this.v,this.nm,l):(this.v=N(o).jqGrid("groupingCalculations.handler",this.st,this.v,this.nm,this.sr,this.srt,l),"avg"===this.st.toLowerCase()&&this.sd&&(this.vd=N(o).jqGrid("groupingCalculations.handler",this.st,this.vd,this.sd,this.sr,this.srt,l)))},s=t.groupField.length,a=0,d=0;d<s;d++)r=t.groupField[d],i=t.displayField[d],e=l[r],null==(i=null==i?null:l[i])&&(i=e),void 0!==e&&(0===u?(t.groups.push({idx:d,dataIndex:r,value:e,displayValue:i,startRow:u,cnt:1,summary:[]}),t.lastvalues[d]=e,t.counters[d]={cnt:1,pos:t.groups.length-1,summary:N.extend(!0,[],t.summary)}):"object"==typeof e||(Array.isArray(t.isInTheSameGroup)&&N.jgrid.isFunction(t.isInTheSameGroup[d])?t.isInTheSameGroup[d].call(o,t.lastvalues[d],e,d,t):t.lastvalues[d]===e)?1===a?(t.groups.push({idx:d,dataIndex:r,value:e,displayValue:i,startRow:u,cnt:1,summary:[]}),t.lastvalues[d]=e,t.counters[d]={cnt:1,pos:t.groups.length-1,summary:N.extend(!0,[],t.summary)}):(t.counters[d].cnt+=1,t.groups[t.counters[d].pos].cnt=t.counters[d].cnt):(t.groups.push({idx:d,dataIndex:r,value:e,displayValue:i,startRow:u,cnt:1,summary:[]}),t.lastvalues[d]=e,t.counters[d]={cnt:a=1,pos:t.groups.length-1,summary:N.extend(!0,[],t.summary)}),N.each(t.counters[d].summary,n),t.groups[t.counters[d].pos].summary=t.counters[d].summary)}),this},groupingToggle:function(y){return this.each(function(){function r(r){return 0<(r=N.map(r.split(" "),function(r){if(r.substring(0,d.length+1)===d+"_")return parseInt(r.substring(d.length+1),10)})).length?r[0]:void 0}var e,i,t,o=this,n=o.p.groupingView,s=y.split("_"),a=parseInt(s[s.length-2],10),d=(s.splice(s.length-2,2),s.join("_")),l=n.minusicon,u=n.plusicon,s=N("#"+N.jgrid.jqID(y)),p=s.length?s[0].nextSibling:null,s=N("#"+N.jgrid.jqID(y)+" span.tree-wrap-"+o.p.direction),g=!1,h=!1,c=!!o.p.frozenColumns&&o.p.id+"_frozen",m=!!c&&N("#"+N.jgrid.jqID(y),"#"+N.jgrid.jqID(c)),f=m&&m.length?m[0].nextSibling:null;if(s.hasClass(l)){if(p)for(;p&&!(void 0!==(e=r(p.className))&&e<=a);)t=parseInt(N(p).attr("jqfootlevel"),10),(h=!isNaN(t)&&n.showSummaryOnHide&&a<=t)||N(p).hide(),p=p.nextSibling,c&&(h||N(f).hide(),f=f.nextSibling);s.removeClass(l).addClass(u),g=!0}else{if(p)for(i=void 0;p;){if(e=r(p.className),t=parseInt(N(p).attr("jqfootlevel"),10),void 0===i&&(i=void 0===e),h=N(p).hasClass("ui-subgrid")&&N(p).hasClass("ui-sg-collapsed"),void 0!==e){if(e<=a)break;e!==a+1||h||(N(p).show().find(">td>span.tree-wrap-"+o.p.direction).removeClass(l).addClass(u),c&&N(f).show().find(">td>span.tree-wrap-"+o.p.direction).removeClass(l).addClass(u))}else i?h||(N(p).show(),c&&N(f).show()):!isNaN(t)&&0<=t&&t===a&&(N(p).show(),c)&&N(f).show();p=p.nextSibling,c&&(f=f.nextSibling)}s.removeClass(u).addClass(l)}c&&"auto"===o.p.height&&(o.grid.fbDiv.height(N(o).height()),o.grid.fsDiv)&&(m=N(o.grid.bDiv)[0].scrollWidth>N(o.grid.bDiv)[0].clientWidth?N.jgrid.scrollbarHeight():0,o.grid.fsDiv.css("top",o.grid.fbDiv.position().top+N(o).height()+m+"px")),N(o).triggerHandler("jqGridGroupingClickGroup",[y,g]),N.jgrid.isFunction(o.p.onClickGroup)&&o.p.onClickGroup.call(o,y,g)}),!1},groupingRender:function(H,F,I,D){return this.each(function(){var g,h,c,m,f=this,y=f.p.groupingView,v="",j=y.groupCollapse?y.plusicon:y.minusicon,w=[],x=y.groupField.length,q=N.jgrid.styleUI[f.p.styleUI||"jQueryUI"].common,j=j+" tree-wrap-"+f.p.direction,C=(N.each(f.p.colModel,function(r,e){for(var i=0;i<x;i++)if(y.groupField[i]===e.name){w[i]=r;break}}),0);function b(r,e,i,t,o){for(var n,s,a,d=function(r,e,i){var t,o=!1;if(0===e)o=i[r];else{var n=i[r].idx;if(0===n)o=i[r];else for(t=r;0<=t;t--)if(i[t].idx===n-e){o=i[t];break}}return o}(r,e,i),l=f.p.colModel,u=(d.cnt,""),p=!1,g=t;g<F;g++)!l[g].hidden&&!p&&o?(s=o,p=!0):s='<td role="gridcell" '+f.formatCol(g,1,"")+">&#160;</td>",N.each(d.summary,function(){if(this.nm===l[g].name){a=l[g].summaryTpl||"{0}",n=this.v;try{this.groupCount=d.cnt,this.groupIndex=d.dataIndex,this.groupValue=d.value}catch(r){}return s='<td role="gridcell" '+f.formatCol(g,1,"")+">"+N.jgrid.template(a,n,d.cnt,d.dataIndex,d.displayValue,d.summary)+"</td>",!1}}),u+=s;return u}var G,S=N.makeArray(y.groupSummary);S.reverse(),G=f.p.multiselect?' colspan="2"':"",N.each(y.groups,function(r,e){if(y._locgr&&!(e.startRow+e.cnt>(I-1)*D&&e.startRow<I*D))return!0;C++,c=f.p.id+"ghead_"+e.idx,h=c+"_"+r,g="<span style='cursor:pointer;margin-right:8px;margin-left:5px;' class='"+q.icon_base+" "+j+"' onclick=\"jQuery('#"+N.jgrid.jqID(f.p.id)+"').jqGrid('groupingToggle','"+h+"');return false;\"></span>";try{m=Array.isArray(y.formatDisplayField)&&N.jgrid.isFunction(y.formatDisplayField[e.idx])?y.formatDisplayField[e.idx].call(f,e.displayValue,e.value,f.p.colModel[w[e.idx]],e.idx,y):f.formatter(h,e.displayValue,w[e.idx],e.value)}catch(r){m=e.displayValue}for(var i="",t=0;t<e.summary.length;t++){var o=e.summary[t],n=N.jgrid.getElemByAttrVal(f.p.colModel,"name",o.nm,!0);if(0<=n){"string"==typeof o.st&&"avg"===o.st.toLowerCase()&&(o.sd&&o.vd?o.v=o.v/o.vd:o.v&&0<e.cnt&&(o.v=o.v/e.cnt)),o.uv=o.v;try{o.v=f.formatter("",o.v,n,this)}catch(r){}}}if("string"!=typeof(i=N.jgrid.isFunction(y.groupText[e.idx])?y.groupText[e.idx].call(f,m,e.cnt,e.summary):N.jgrid.template.call(f,y.groupText[e.idx],m,e.cnt,e.summary))&&"number"!=typeof i&&(i=m),"header"===y.groupSummaryPos[e.idx]?v=(v+='<tr id="'+h+'"'+(y.groupCollapse&&0<e.idx?' style="display:none;" ':" ")+'role="row" class= "'+q.content+" jqgroup ui-row-"+f.p.direction+" "+c+'">')+b(r,0,y.groups,G?1:0,'<td role="gridcell" style="padding-left:'+12*e.idx+'px;"'+G+">"+g+i+"</td>")+"</tr>":v+='<tr id="'+h+'"'+(y.groupCollapse&&0<e.idx?' style="display:none;" ':" ")+'role="row" class= "'+q.content+" jqgroup ui-row-"+f.p.direction+" "+c+'"><td style="padding-left:'+12*e.idx+'px;" colspan="'+(!1===y.groupColumnShow[e.idx]?F-1:F)+'">'+g+i+"</td></tr>",x-1===e.idx){var s,a,d,l=y.groups[r+1],u=0,i=e.startRow,p=void 0!==l?l.startRow:y.groups[r].startRow+y.groups[r].cnt;for(t=i=y._locgr&&(u=(I-1)*D)>e.startRow?u:i;t<p&&H[t-u];t++)v+=H[t-u].join("");if("header"!==y.groupSummaryPos[e.idx]){if(void 0!==l){for(a=0;a<y.groupField.length&&l.dataIndex!==y.groupField[a];a++);C=y.groupField.length-a}for(s=0;s<C;s++)S[s]&&(d="",y.groupCollapse&&!y.showSummaryOnHide&&(d=' style="display:none;"'),v=(v+="<tr"+d+' jqfootlevel="'+(e.idx-s)+'" role="row" class="'+q.content+" jqfoot ui-row-"+f.p.direction+'">')+b(r,s,y.groups,0,!1)+"</tr>");C=a}}}),N("#"+N.jgrid.jqID(f.p.id)+" tbody").first().append(v),v=null})},groupingGroupBy:function(t,o){return this.each(function(){var r,e=this,i=("string"==typeof t&&(t=[t]),e.p.groupingView);for(e.p.grouping=!0,i._locgr=!1,void 0===i.visibiltyOnNextGrouping&&(i.visibiltyOnNextGrouping=[]),r=0;r<i.groupField.length;r++)!i.groupColumnShow[r]&&i.visibiltyOnNextGrouping[r]&&N(e).jqGrid("showCol",i.groupField[r]);for(r=0;r<t.length;r++)i.visibiltyOnNextGrouping[r]=N("#"+N.jgrid.jqID(e.p.id)+"_"+N.jgrid.jqID(t[r])).is(":visible");e.p.groupingView=N.extend(e.p.groupingView,o||{}),i.groupField=t,N(e).trigger("reloadGrid")})},groupingRemove:function(t,o){return this.each(function(){var r=this;if(void 0===t&&(t=!0),void 0===o&&(o=!1),!(r.p.grouping=!1)===t){for(var e=r.p.groupingView,i=0;i<e.groupField.length;i++)!e.groupColumnShow[i]&&e.visibiltyOnNextGrouping[i]&&N(r).jqGrid("showCol",e.groupField);N("#"+N.jgrid.jqID(r.p.id)+" tbody").first().find("tr.jqgroup, tr.jqfoot").remove(),N("#"+N.jgrid.jqID(r.p.id)+" tbody").first().find("tr.jqgrow:hidden").show()}else N(r).trigger("reloadGrid");o&&N(r).jqGrid("groupingInit")})},groupingCalculations:{handler:function(r,e,i,t,o,n){var s,a={sum:function(){return N.jgrid.floatNum(e)+N.jgrid.floatNum(n[i])},min:function(){return""===e?N.jgrid.floatNum(n[i]):Math.min(N.jgrid.floatNum(e),N.jgrid.floatNum(n[i]))},max:function(){return""===e?N.jgrid.floatNum(n[i]):Math.max(N.jgrid.floatNum(e),N.jgrid.floatNum(n[i]))},count:function(){return""===e&&(e=0),n.hasOwnProperty(i)?e+1:0},avg:function(){return a.sum()}};if(a[r])return s=a[r](),null!=t?"fixed"===o?s.toFixed(t):(o=Math.pow(10,t),Math.round(s*o)/o):s;throw"jqGrid Grouping No such method: "+r}},groupingResetCalcs:function(){return this.each(function(){this.p.groupingView._locgr=!1})},setColSpanHeader:function(C){return this.each(function(){var r,e,i,t,o,n,s,a,d,l,u,p,g,h,c=this,m=0,f=c.p.colModel,y=f.length,v=c.grid.headers,j=N("table.ui-jqgrid-htable",c.grid.hDiv),w=j.children("thead"),x=j.find(".jqg-first-row-header"),j=!1,q=w.children("tr").length;for(Array.isArray(C)&&(c.p.colSpanHeader=C),void 0===x[0]?x=N("<tr>",{role:"row","aria-hidden":"true"}).addClass("jqg-first-row-header").css("height","auto"):x.empty(),c.p.frozenColumns&&(N(c).jqGrid("destroyFrozenColumns"),j=!0),r=0;r<y;r++)i=v[r].el,t=N(i),e=f[r],o={height:"0px",width:v[r].width+"px",display:e.hidden?"none":""},N("<th>",{role:"gridcell"}).css(o).addClass("ui-first-th-"+c.p.direction+" "+(e.labelClasses||"")).appendTo(x);for(w.prepend(x),N(c).on("jqGridResizeStop.setGroupHeaders",function(r,e,i){x.find("th").eq(i)[0].style.width=e+"px"}),r=0;r<y;r++)if(i=v[r].el,t=N(i),e=f[r],0<=(s=N.jgrid.inColumnHeader(e.name,c.p.colSpanHeader))){for(d=(a=c.p.colSpanHeader[s]).numberOfColumns,l=a.titleText||"",g=a.className||"",u=a.toolTip||"",s=p=0;s<d&&r+s<y;s++)f[r+s].hidden||p++;if(0<p&&(t.attr("colspan",String(p)),1<q))for(n=1;n<q;n++)N("tr",w).eq(n+1).find("th").eq(r).attr("colspan",String(p));for(l&&(h=t.find("div.ui-th-div")[0],a.savedLabel=h.innerHTML,h.innerHTML=l,"string"==typeof u&&""!==u?t.attr("title",u):c.p.headertitles&&t.attr("title",l)),t.addClass(g),m=0;m<d-1;m++)if(N(v[m+r+1].el).hide(),c.p.colModel[m+r+1].hidedlg=!0,c.p.colModel[m+r+1]._colspancell=!0,1<q)for(n=1;n<q;n++)N("tr",w).eq(n+1).find("th").eq(r+m+1).hide()}j&&N(c).jqGrid("setFrozenColumns")})},destroyColSpanHeader:function(a){return void 0===a&&(a=!0),this.each(function(){var i,t,r,o,n,e=this,s=N("table.ui-jqgrid-htable",e.grid.hDiv).children("thead");if(N("tr.jqg-first-row-header",s).remove(),e.p.colSpanHeader.length)for(r=0;r<e.p.colSpanHeader.length;r++)if(i=e.p.colSpanHeader[r],!((n=N.jgrid.getElemByAttrVal(e.p.colModel,"name",i.startColumnName,!0))<0)){for(t=n+1;t<n+i.numberOfColumns;t++)e.p.colModel[t].hidedlg=!1,e.p.colModel[t]._colspancell=!1;N(">tr",s).each(function(r,e){for((o=N("th",e).eq(n)).className||(o.className=""),N(o).attr("colspan","").removeClass(o.className),N(e).hasClass("ui-jqgrid-labels")&&(o.find("div.ui-th-div")[0].innerHTML=i.savedLabel),t=1;t<i.numberOfColumns;t++)N("th",e).eq(n+t).show()})}a&&(e.p.colSpanHeader=[])})},setGroupHeaders:function(b){return b=N.extend({useColSpanStyle:!1,groupHeaders:[]},b||{}),this.each(function(){var r,e,i,t,o,n,s,a,d,l,u,p,g=this,h=0,c=g.p.colModel,m=c.length,f=g.grid.headers,y=N("table.ui-jqgrid-htable",g.grid.hDiv),v=y.children("thead").children("tr.ui-jqgrid-labels").last().addClass("jqg-second-row-header"),j=y.children("thead"),w=y.find(".jqg-first-row-header"),x=!1,q=!1,C=N.jgrid.styleUI[g.p.styleUI||"jQueryUI"].base;for(g.p.groupHeader||(g.p.groupHeader=[]),g.p.groupHeader.push(b),g.p.groupHeaderOn=!0,void 0===w[0]?w=N("<tr>",{role:"row","aria-hidden":"true"}).addClass("jqg-first-row-header").css("height","auto"):w.empty(),g.p.frozenColumns&&(N(g).jqGrid("destroyFrozenColumns"),q=!0),(N(document.activeElement).is("input")||N(document.activeElement).is("textarea"))&&(x=document.activeElement),N(g).prepend(j),i=N("<tr>",{role:"row"}).addClass("ui-jqgrid-labels jqg-third-row-header"),r=0;r<m;r++)if(t=f[r].el,o=N(t),e=c[r],l={height:"0px",width:f[r].width+"px",display:e.hidden?"none":""},N("<th>",{role:"gridcell"}).css(l).addClass("ui-first-th-"+g.p.direction+" "+(e.labelClasses||"")).appendTo(w),t.style.width="",0<=(n=N.jgrid.inColumnHeader(e.name,b.groupHeaders))){for(s=(l=b.groupHeaders[n]).numberOfColumns,p=l.titleText,a=l.toolTip||"",l=l.className||"",n=d=0;n<s&&r+n<m;n++)c[r+n].hidden||d++;l=N("<th>").attr({role:"columnheader"}).addClass(C.headerBox+" ui-th-column-header ui-th-"+g.p.direction+" "+l+" "+(e.labelClasses||"")).html(p),0<d&&l.attr("colspan",String(d)),"string"==typeof a&&""!==a?l.attr("title",a):g.p.headertitles&&l.attr("title",l.text()),0===d&&l.hide(),o.before(l),i.append(t),h=s-1}else 0===h?b.useColSpanStyle?(p=o.attr("rowspan")?parseInt(o.attr("rowspan"),10)+1:2,o.attr("rowspan",p)):(N("<th>",{role:"columnheader"}).addClass(C.headerBox+" ui-th-column-header ui-th-"+g.p.direction).css({display:e.hidden?"none":""}).insertBefore(o),i.append(t)):(i.append(t),h--);if((j=N(g).children("thead")).prepend(w),i.insertAfter(v),y.append(j),b.useColSpanStyle&&(y.find("span.ui-jqgrid-resize").each(function(){var r=N(this).parent();r.is(":visible")&&(this.style.cssText="height: "+r.height()+"px !important; cursor: col-resize;")}),y.find("div.ui-jqgrid-sortable").each(function(){var r=N(this),e=r.parent();e.is(":visible")&&e.is(":has(span.ui-jqgrid-resize)")&&r.css("top",(e.height()-r.outerHeight())/2-4+"px")})),u=j.find("tr.jqg-first-row-header"),N(g).on("jqGridResizeStop.setGroupHeaders",function(r,e,i){u.find("th").eq(i)[0].style.width=e+"px"}),x)try{N(x).focus()}catch(r){}v=N("tr.jqg-second-row-header th").eq(0);"object"===N.jgrid.type(v)&&v.length&&""===N.jgrid.trim(v[0].outerText)&&N("tr.jqg-second-row-header th").eq(0).prepend("&nbsp;"),q&&N(g).jqGrid("setFrozenColumns"),N(g).triggerHandler("afterSetGroupHandler",[b])})},destroyGroupHeader:function(p){return void 0===p&&(p=!0),this.each(function(){var r,e,i,t,o,n,s=this,a=s.grid,d=N("table.ui-jqgrid-htable thead",a.hDiv),l=s.p.colModel,u=!1;if(a){for(s.p.frozenColumns&&(N(s).jqGrid("destroyFrozenColumns"),u=!0),N(this).off(".setGroupHeaders"),s.p.groupHeaderOn=!1,r=N("<tr>",{role:"row"}).addClass("ui-jqgrid-labels"),e=0,i=(t=a.headers).length;e<i;e++){n=l[e].hidden?"none":"",n=N(t[e].el).width(N("tr.jqg-first-row-header th",d).eq(e).width()).css("display",n);try{n.removeAttr("rowSpan")}catch(r){n.attr("rowSpan",1)}r.append(n),0<(o=n.children("span.ui-jqgrid-resize")).length&&(o[0].style.height=""),n.children("div")[0].style.top=""}N(d).children("tr.ui-jqgrid-labels").remove(),N(d).children("tr.jqg-first-row-header").remove(),N(d).prepend(r),!0===p&&N(s).jqGrid("setGridParam",{groupHeader:null}),u&&N(s).jqGrid("setFrozenColumns"),N(s).off("afterSetGroupHandler")}})},isGroupHeaderOn:function(){var r=this[0];return!0===r.p.groupHeaderOn&&r.p.groupHeader&&(Array.isArray(r.p.groupHeader)||N.jgrid.isFunction(r.p.groupHeader))},refreshGroupHeaders:function(){return this.each(function(){var r,e=this,i=N(e).jqGrid("isGroupHeaderOn");if(i&&(N(e).jqGrid("destroyGroupHeader",!1),r=N.extend([],e.p.groupHeader),e.p.groupHeader=null),i&&r)for(var t=0;t<r.length;t++)N(e).jqGrid("setGroupHeaders",r[t])})}})});js/minified/grid.formedit.js000064400000160111151676727230012057 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","./grid.base","./grid.common"],e):e(jQuery)}(function(Z){"use strict";var $={};Z.jgrid.extend({editGridRow:function(X,Y){var e=Z.jgrid.getRegional(this[0],"edit"),t=this[0].p.styleUI,J=Z.jgrid.styleUI[t].formedit,K=Z.jgrid.styleUI[t].common;return Y=Z.extend(!0,{top:0,left:0,width:"500",datawidth:"auto",height:"auto",dataheight:"auto",modal:!1,overlay:30,drag:!0,resize:!0,url:null,mtype:"POST",clearAfterAdd:!0,closeAfterEdit:!1,reloadAfterSubmit:!0,onInitializeForm:null,beforeInitData:null,beforeShowForm:null,afterShowForm:null,beforeSubmit:null,afterSubmit:null,onclickSubmit:null,afterComplete:null,onclickPgButtons:null,afterclickPgButtons:null,editData:{},recreateForm:!1,jqModal:!0,closeOnEscape:!1,addedrow:"first",topinfo:"",bottominfo:"",saveicon:[],closeicon:[],savekey:[!1,13],navkeys:[!1,38,40],checkOnSubmit:!1,checkOnUpdate:!1,processing:!1,onClose:null,ajaxEditOptions:{},serializeEditData:null,viewPagerButtons:!0,overlayClass:K.overlay,removemodal:!0,form:"edit",template:null,focusField:!0,editselected:!1,html5Check:!1,buttons:[]},e,Y||{}),$[Z(this)[0].p.id]=Y,this.each(function(){var u=this;if(u.grid&&X){u.p.savedData={};var h,m,i,e,f=u.p.id,g="FrmGrid_"+f,t="TblGrid_"+f,j="#"+Z.jgrid.jqID(t),v={themodal:"editmod"+f,modalhead:"edithd"+f,modalcontent:"editcnt"+f,scrollelm:g},a=!0,d=1,r=0,o="string"==typeof $[u.p.id].template&&0<$[u.p.id].template.length,b=Z.jgrid.getRegional(this,"errors"),M=($[u.p.id].styleUI=u.p.styleUI||"jQueryUI",Z.jgrid.isMobile()&&($[u.p.id].resize=!1),"new"===X?(X="_empty",m="add",Y.caption=$[u.p.id].addCaption):(Y.caption=$[u.p.id].editCaption,m="edit"),Y.recreateForm||Z(u).data("formProp")&&Z.extend($[Z(this)[0].p.id],Z(u).data("formProp")),!0),n=(Y.checkOnUpdate&&Y.jqModal&&!Y.modal&&(M=!1),isNaN($[Z(this)[0].p.id].dataheight)?$[Z(this)[0].p.id].dataheight:$[Z(this)[0].p.id].dataheight+"px"),s=isNaN($[Z(this)[0].p.id].datawidth)?$[Z(this)[0].p.id].datawidth:$[Z(this)[0].p.id].datawidth+"px",w=Z("<form name='FormPost' id='"+g+"' class='FormGrid' onSubmit='return false;' style='width:"+s+";height:"+n+";'></form>").data("disabled",!1),l=o?(s=$[Z(this)[0].p.id].template,n="",i=n="string"==typeof s?s.replace(/\{([\w\-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g,function(e,t){return'<span id="'+t+'" ></span>'}):n,j):(i=Z("<table id='"+t+"' class='EditTable ui-common-table'><tbody></tbody></table>"),j+"_2"),g="#"+Z.jgrid.jqID(g);if(Z(w).append("<div class='FormError "+K.error+"' style='display:none;'></div>"),Z(w).append("<div class='tinfo topinfo'>"+$[u.p.id].topinfo+"</div>"),Z(u.p.colModel).each(function(){var e=this.formoptions;d=Math.max(d,e&&e.colpos||0),r=Math.max(r,e&&e.rowpos||0)}),Z(w).append(i),!1!==(a=(a=void 0===(a=Z(u).triggerHandler("jqGridAddEditBeforeInitData",[w,m]))?!0:a)&&Z.jgrid.isFunction($[u.p.id].beforeInitData)?$[u.p.id].beforeInitData.call(u,w,m):a)){if("_empty"!==X&&void 0!==u.p.savedRow&&0<u.p.savedRow.length&&Z.jgrid.isFunction(Z.fn.jqGrid.restoreRow))for(e=0;e<u.p.savedRow.length;e++)if(u.p.savedRow[e].id===X){Z(u).jqGrid("restoreRow",X);break}for(var c,p,D,y,B,q,R,x=X,_=u,I=i,k=d,C=0,F=!1,T="",U=1;U<=k;U++)T+="<td class='CaptionTD'></td><td class='DataTD'></td>";"_empty"!==x&&(F=Z(_).jqGrid("getInd",x)),Z(_.p.colModel).each(function(t){if(c=this.name,p=(!this.editrules||!0!==this.editrules.edithidden)&&!0===this.hidden,B=p?"style='display:none'":"","cb"!==c&&"subgrid"!==c&&!0===this.editable&&"rn"!==c&&"sc"!==c){if(!1===F)y="";else if(c===_.p.ExpandColumn&&!0===_.p.treeGrid)y=Z("td[role='gridcell']",_.rows[F]).eq(t).text();else{try{y=Z.unformat.call(_,Z("td[role='gridcell']",_.rows[F]).eq(t),{rowId:x,colModel:this},t)}catch(e){y=this.edittype&&"textarea"===this.edittype?Z("td[role='gridcell']",_.rows[F]).eq(t).text():Z("td[role='gridcell']",_.rows[F]).eq(t).html()}y&&"&nbsp;"!==y&&"&#160;"!==y&&(1!==y.length||160!==y.charCodeAt(0))||(y="")}var e,i=Z.extend({},this.editoptions||{},{id:c,name:c,rowId:x,oper:m,module:"form",checkUpdate:$[u.p.id].checkOnSubmit||$[u.p.id].checkOnUpdate}),a=Z.extend({},{elmprefix:"",elmsuffix:"",rowabove:!1,rowcontent:""},this.formoptions||{}),d=parseInt(a.rowpos,10)||C+1,r=parseInt(2*(parseInt(a.colpos,10)||1),10);"_empty"===x&&i.defaultValue&&(y=Z.jgrid.isFunction(i.defaultValue)?i.defaultValue.call(u):i.defaultValue),this.edittype||(this.edittype="text"),u.p.autoencode&&(y=Z.jgrid.htmlDecode(y)),q=Z.jgrid.createEl.call(u,this.edittype,i,y,!1,Z.extend({},Z.jgrid.ajaxOptions,_.p.ajaxSelectOptions||{})),"select"===this.edittype&&(y=Z(q).val(),"select-multiple"===Z(q).get(0).type)&&(y=y&&y.join(",")),"checkbox"===this.edittype&&(y=Z(q).is(":checked")?Z(q).val():Z(q).attr("offval")),Z(q).addClass("FormElement"),"select"===this.edittype?Z(q).addClass(J.selectClass):-1<Z.inArray(this.edittype,["text","textarea","password","color","date","datetime","datetime-local","email","month","number","range","search","tel","time","url","week"])&&Z(q).addClass(J.inputClass),R=!0,o?(e=Z(w).find("#"+c)).length?e.replaceWith(q):R=!1:(D=Z(I).find("tr[rowpos="+d+"]"),a.rowabove&&(e=Z("<tr><td class='contentinfo' colspan='"+2*k+"'>"+a.rowcontent+"</td></tr>"),Z(I).append(e),e[0].rp=d),0===D.length&&(D=Z(1<k?"<tr rowpos='"+d+"'></tr>":"<tr "+B+" rowpos='"+d+"'></tr>").addClass("FormData").attr("id","tr_"+c),Z(D).append(T),Z(I).append(D),D[0].rp=d),Z("td",D[0]).eq(r-2).html("<label for='"+c+"' class='"+J.labelClass+"'>"+(void 0===a.label?_.p.colNames[t]:a.label)+"</label>"),Z("td",D[0]).eq(r-1).append(a.elmprefix).append(q).append(a.elmsuffix),1<k&&p&&(Z("td",D[0]).eq(r-2).hide(),Z("td",D[0]).eq(r-1).hide())),($[u.p.id].checkOnSubmit||$[u.p.id].checkOnUpdate)&&R&&(u.p.savedData[c]=y),"custom"===this.edittype&&Z.jgrid.isFunction(i.custom_value)&&i.custom_value.call(u,Z("#"+c,q),"set",y),Z.jgrid.bindEv.call(u,q,i),C,C++}}),0<C&&((o?(O="<div class='FormData' style='display:none'><input class='FormElement' id='id_g' type='text' name='"+_.p.id+"_id' value='"+x+"'/>",Z(w)):((O=Z("<tr class='FormData' style='display:none'><td class='CaptionTD'></td><td colspan='"+(2*k-1)+"' class='DataTD'><input class='FormElement' id='id_g' type='text' name='"+_.p.id+"_id' value='"+x+"'/></td></tr>"))[0].rp=C+999,Z(I))).append(O),$[u.p.id].checkOnSubmit||$[u.p.id].checkOnUpdate)&&(u.p.savedData[_.p.id+"_id"]=x);var G,s="rtl"===u.p.direction,n="<a id='"+(s?"nData":"pData")+"' class='fm-button "+K.button+"'><span class='"+K.icon_base+" "+J.icon_prev+"'></span></a>",a="<a id='"+(s?"pData":"nData")+"' class='fm-button "+K.button+"'><span class='"+K.icon_base+" "+J.icon_next+"'></span></a>",O="<a id='sData' class='fm-button "+K.button+"'>"+Y.bSubmit+"</a>",P="<a id='cData' class='fm-button "+K.button+"'>"+Y.bCancel+"</a>",S=Array.isArray($[u.p.id].buttons)?Z.jgrid.buildButtons($[u.p.id].buttons,O+P,K):O+P,S="<table style='height:auto' class='EditTable ui-common-table' id='"+t+"_2'><tbody><tr><td colspan='2'><hr class='"+K.content+"' style='margin:1px'/></td></tr><tr id='Act_Buttons'><td class='navButton'>"+(s?a+n:n+a)+"</td><td class='EditButton'>"+S+"</td></tr>",N=(S+="</tbody></table>",0<r&&(G=[],Z.each(Z(i)[0].rows,function(e,t){G[e]=t}),G.sort(function(e,t){return e.rp>t.rp?1:e.rp<t.rp?-1:0}),Z.each(G,function(e,t){Z("tbody",i).append(t)})),Y.gbox="#gbox_"+Z.jgrid.jqID(f),!1),t=(!0===Y.closeOnEscape&&(Y.closeOnEscape=!1,N=!0),n=o?(Z(w).find("#pData").replaceWith(n),Z(w).find("#nData").replaceWith(a),Z(w).find("#sData").replaceWith(O),Z(w).find("#cData").replaceWith(P),Z("<div id="+t+"></div>").append(w)):Z("<div></div>").append(w).append(S),Z(w).append("<div class='binfo topinfo bottominfo'>"+$[u.p.id].bottominfo+"</div>"),Z(".ui-jqgrid").css("font-size")||"11px"),t=(Z.jgrid.createModal(v,n,$[Z(this)[0].p.id],"#gview_"+Z.jgrid.jqID(u.p.id),Z("#gbox_"+Z.jgrid.jqID(u.p.id))[0],null,{"font-size":t}),s&&(Z("#pData, #nData",j+"_2").css("float","right"),Z(".EditButton",j+"_2").css("text-align","left")),$[u.p.id].topinfo&&Z(".tinfo",g).show(),$[u.p.id].bottominfo&&Z(".binfo",g).show(),n=null,Z("#"+Z.jgrid.jqID(v.themodal)).keydown(function(e){var t=e.target;return!0!==Z(g).data("disabled")&&(!0===$[u.p.id].savekey[0]&&e.which===$[u.p.id].savekey[1]&&"TEXTAREA"!==t.tagName?(Z("#sData",j+"_2").trigger("click"),!1):27===e.which?(A()&&N&&Z.jgrid.hideModal("#"+Z.jgrid.jqID(v.themodal),{gb:Y.gbox,jqm:Y.jqModal,onClose:$[u.p.id].onClose,removemodal:$[u.p.id].removemodal,formprop:!$[u.p.id].recreateForm,form:$[u.p.id].form}),!1):!0===$[u.p.id].navkeys[0]?"_empty"===Z("#id_g",j).val()||(e.which===$[u.p.id].navkeys[1]?(Z("#pData",l).trigger("click"),!1):e.which===$[u.p.id].navkeys[2]?(Z("#nData",l).trigger("click"),!1):void 0):void 0)}),Y.checkOnUpdate&&(Z("a.ui-jqdialog-titlebar-close span","#"+Z.jgrid.jqID(v.themodal)).removeClass("jqmClose"),Z("a.ui-jqdialog-titlebar-close","#"+Z.jgrid.jqID(v.themodal)).off("click").click(function(){return A()&&Z.jgrid.hideModal("#"+Z.jgrid.jqID(v.themodal),{gb:"#gbox_"+Z.jgrid.jqID(f),jqm:Y.jqModal,onClose:$[u.p.id].onClose,removemodal:$[u.p.id].removemodal,formprop:!$[u.p.id].recreateForm,form:$[u.p.id].form}),!1})),Y.saveicon=Z.extend([!0,"left",J.icon_save],Y.saveicon),Y.closeicon=Z.extend([!0,"left",J.icon_close],Y.closeicon),!0===Y.saveicon[0]&&Z("#sData",l).addClass("right"===Y.saveicon[1]?"fm-button-icon-right":"fm-button-icon-left").append("<span class='"+K.icon_base+" "+Y.saveicon[2]+"'></span>"),!0===Y.closeicon[0]&&Z("#cData",l).addClass("right"===Y.closeicon[1]?"fm-button-icon-right":"fm-button-icon-left").append("<span class='"+K.icon_base+" "+Y.closeicon[2]+"'></span>"),($[u.p.id].checkOnSubmit||$[u.p.id].checkOnUpdate)&&(O="<a id='sNew' class='fm-button "+K.button+"' style='z-index:1002'>"+Y.bYes+"</a>",a="<a id='nNew' class='fm-button "+K.button+"' style='z-index:1002;margin-left:5px'>"+Y.bNo+"</a>",P="<a id='cNew' class='fm-button "+K.button+"' style='z-index:1002;margin-left:5px;'>"+Y.bExit+"</a>",S=Y.zIndex||999,S++,Z("#"+v.themodal).append("<div class='"+Y.overlayClass+" jqgrid-overlay confirm' style='z-index:"+S+";display:none;position:absolute;'>&#160;</div><div class='confirm ui-jqconfirm "+K.content+"' style='z-index:"+(1+S)+"'>"+Y.saveData+"<br/><br/>"+O+a+P+"</div>"),Z("#sNew","#"+Z.jgrid.jqID(v.themodal)).click(function(){return H(),Z(g).data("disabled",!1),Z(".confirm","#"+Z.jgrid.jqID(v.themodal)).hide(),!1}),Z("#nNew","#"+Z.jgrid.jqID(v.themodal)).click(function(){return Z(".confirm","#"+Z.jgrid.jqID(v.themodal)).hide(),Z(g).data("disabled",!1),setTimeout(function(){Z(":input:visible",g)[0].focus()},0),!1}),Z("#cNew","#"+Z.jgrid.jqID(v.themodal)).click(function(){return Z(".confirm","#"+Z.jgrid.jqID(v.themodal)).hide(),Z(g).data("disabled",!1),Z.jgrid.hideModal("#"+Z.jgrid.jqID(v.themodal),{gb:"#gbox_"+Z.jgrid.jqID(f),jqm:Y.jqModal,onClose:$[u.p.id].onClose,removemodal:$[u.p.id].removemodal,formprop:!$[u.p.id].recreateForm,form:$[u.p.id].form}),!1})),Z(u).triggerHandler("jqGridAddEditInitializeForm",[Z(g),m]),Z.jgrid.isFunction($[u.p.id].onInitializeForm)&&$[u.p.id].onInitializeForm.call(u,Z(g),m),"_empty"!==X&&$[u.p.id].viewPagerButtons?Z("#pData,#nData",l).show():Z("#pData,#nData",l).hide(),Z(u).triggerHandler("jqGridAddEditBeforeShowForm",[Z(g),m]),Z.jgrid.isFunction($[u.p.id].beforeShowForm)&&$[u.p.id].beforeShowForm.call(u,Z(g),m),Q(),Z("#"+Z.jgrid.jqID(v.themodal)).data("onClose",$[u.p.id].onClose),Z.jgrid.viewModal("#"+Z.jgrid.jqID(v.themodal),{gbox:"#gbox_"+Z.jgrid.jqID(f),jqm:Y.jqModal,overlay:Y.overlay,modal:Y.modal,overlayClass:Y.overlayClass,focusField:Y.focusField,onHide:function(e){var t=Z("#editmod"+f)[0].style.width,i=Z("#editmod"+f)[0].style.height,i=["100%","auto"].includes(i)?i:Z.jgrid.floatNum(i,200),t=["100%","auto"].includes(t)?t:Z.jgrid.floatNum(t,300);Z(u).data("formProp",{top:Z.jgrid.floatNum(Z(e.w).css("top")),left:parseFloat(Z(e.w).css("left")),width:t,height:i,dataheight:Z(g).height(),datawidth:Z(g).width()}),e.w.remove(),e.o&&e.o.remove()}}),M||Z("."+Z.jgrid.jqID(Y.overlayClass)).click(function(){return A()&&Z.jgrid.hideModal("#"+Z.jgrid.jqID(v.themodal),{gb:"#gbox_"+Z.jgrid.jqID(f),jqm:Y.jqModal,onClose:$[u.p.id].onClose,removemodal:$[u.p.id].removemodal,formprop:!$[u.p.id].recreateForm,form:$[u.p.id].form}),!1}),Z(".fm-button","#"+Z.jgrid.jqID(v.themodal)).hover(function(){Z(this).addClass(K.hover)},function(){Z(this).removeClass(K.hover)}),Z("#sData",l).click(function(){return h={},Z(".FormError",g).hide(),z(),"_empty"!==h[u.p.id+"_id"]&&!0===Y.checkOnSubmit&&V(h,u.p.savedData)?(Z(g).data("disabled",!0),Z(".confirm","#"+Z.jgrid.jqID(v.themodal)).show()):H(),!1}),Z("#cData",l).click(function(){return A()&&Z.jgrid.hideModal("#"+Z.jgrid.jqID(v.themodal),{gb:"#gbox_"+Z.jgrid.jqID(f),jqm:Y.jqModal,onClose:$[u.p.id].onClose,removemodal:$[u.p.id].removemodal,formprop:!$[u.p.id].recreateForm,form:$[u.p.id].form}),!1}),Z(l).find("[data-index]").each(function(){var t=parseInt(Z(this).attr("data-index"),10);0<=t&&Y.buttons[t].hasOwnProperty("click")&&Z(this).on("click",function(e){Y.buttons[t].click.call(u,Z(g)[0],$[u.p.id],e)})}),Z("#nData",l).click(function(){if(A()){Z(".FormError",g).hide();var e,t=W();if(t[0]=parseInt(t[0],10),-1!==t[0]&&t[1][t[0]+1]){if(Z(u).triggerHandler("jqGridAddEditClickPgButtons",["next",Z(g),t[1][t[0]]]),Z.jgrid.isFunction(Y.onclickPgButtons)&&void 0!==(e=Y.onclickPgButtons.call(u,"next",Z(g),t[1][t[0]]))&&!1===e)return!1;if(Z("#"+Z.jgrid.jqID(t[1][t[0]+1])).hasClass(K.disabled))return!1;E(t[1][t[0]+1],u,g),u.p.multiselect&&$[u.p.id].editselected||Z(u).jqGrid("setSelection",t[1][t[0]+1]),Z(u).triggerHandler("jqGridAddEditAfterClickPgButtons",["next",Z(g),t[1][t[0]]]),Z.jgrid.isFunction(Y.afterclickPgButtons)&&Y.afterclickPgButtons.call(u,"next",Z(g),t[1][t[0]+1]),Q(),L(t[0]+1,t)}}return!1}),Z("#pData",l).click(function(){if(A()){Z(".FormError",g).hide();var e,t=W();if(-1!==t[0]&&t[1][t[0]-1]){if(Z(u).triggerHandler("jqGridAddEditClickPgButtons",["prev",Z(g),t[1][t[0]]]),Z.jgrid.isFunction(Y.onclickPgButtons)&&void 0!==(e=Y.onclickPgButtons.call(u,"prev",Z(g),t[1][t[0]]))&&!1===e)return!1;if(Z("#"+Z.jgrid.jqID(t[1][t[0]-1])).hasClass(K.disabled))return!1;E(t[1][t[0]-1],u,g),u.p.multiselect&&$[u.p.id].editselected||Z(u).jqGrid("setSelection",t[1][t[0]-1]),Z(u).triggerHandler("jqGridAddEditAfterClickPgButtons",["prev",Z(g),t[1][t[0]]]),Z.jgrid.isFunction(Y.afterclickPgButtons)&&Y.afterclickPgButtons.call(u,"prev",Z(g),t[1][t[0]-1]),Q(),L(t[0]-1,t)}}return!1}),Z(u).triggerHandler("jqGridAddEditAfterShowForm",[Z(g),m]),Z.jgrid.isFunction($[u.p.id].afterShowForm)&&$[u.p.id].afterShowForm.call(u,Z(g),m),W());L(t[0],t),this.refreshEditForm=function(e,t){!(t=void 0===t?!1:t)&&X!==e||E(e,this,g),t&&(X=e)}}}function z(){var e,t,a={};for(e in Z(j).find(".FormElement").each(function(){var e,t=Z(".customelement",this);if(t.length){var t=t[0],i=Z(t).attr("name");Z.each(u.p.colModel,function(){if(this.name===i&&this.editoptions&&Z.jgrid.isFunction(this.editoptions.custom_value)){try{var e=this.editoptions.custom_value.call(u,Z("#"+Z.jgrid.jqID(i),j),"get");if("#ignoreme#"!==e){if(void 0===crv)throw"e1";h[i]=e}}catch(e){"e1"===e?Z.jgrid.info_dialog(b.errcap,"function 'custom_value' "+$[Z(this)[0]].p.msg.novalue,$[Z(this)[0]].p.bClose,{styleUI:$[Z(this)[0]].p.styleUI}):Z.jgrid.info_dialog(b.errcap,e.message,$[Z(this)[0]].p.bClose,{styleUI:$[Z(this)[0]].p.styleUI})}return!0}})}else{switch(Z(this).get(0).type){case"checkbox":Z(this).is(":checked")?h[this.name]=Z(this).val():(e=Z(this).attr("offval"),h[this.name]=e);break;case"select-one":h[this.name]=Z(this).val();break;case"select-multiple":h[this.name]=Z(this).val(),h[this.name]=h[this.name]?h[this.name].join(","):"";break;case"radio":if(a.hasOwnProperty(this.name))return!0;a[this.name]=void 0===Z(this).attr("offval")?"off":Z(this).attr("offval");break;default:h[this.name]=Z(this).val()}u.p.autoencode&&(h[this.name]=Z.jgrid.htmlEncode(h[this.name]))}}),a)a.hasOwnProperty(e)&&(t=Z('input[name="'+e+'"]:checked',j).val(),h[e]=void 0!==t?t:a[e],u.p.autoencode)&&(h[e]=Z.jgrid.htmlEncode(h[e]))}function E(i,a,d){var r,o,e,t,n,s,l=0,c=(($[u.p.id].checkOnSubmit||$[u.p.id].checkOnUpdate)&&(u.p.savedData={},u.p.savedData[a.p.id+"_id"]=i),a.p.colModel);"_empty"===i?(Z(c).each(function(){r=this.name,n=Z.extend({},this.editoptions||{}),(e=Z("#"+Z.jgrid.jqID(r),d))&&e.length&&null!==e[0]&&(t="","custom"===this.edittype&&Z.jgrid.isFunction(n.custom_value)?n.custom_value.call(u,Z("#"+r,d),"set",t):n.defaultValue?(t=Z.jgrid.isFunction(n.defaultValue)?n.defaultValue.call(u):n.defaultValue,"checkbox"===e[0].type?(n=t.toLowerCase()).search(/(false|f|0|no|n|off|undefined)/i)<0&&""!==n?(e[0].checked=!0,e[0].defaultChecked=!0,e[0].value=t):(e[0].checked=!1,e[0].defaultChecked=!1):e.val(t)):"checkbox"===e[0].type?(e[0].checked=!1,e[0].defaultChecked=!1,t=Z(e).attr("offval")):e[0].type&&"select"===e[0].type.slice(0,6)?e[0].selectedIndex=0:e.val(t),!0!==$[u.p.id].checkOnSubmit&&!$[u.p.id].checkOnUpdate||(u.p.savedData[r]=t))}),Z("#id_g",d).val(i)):(s=Z(a).jqGrid("getInd",i,!0))&&(Z('td[role="gridcell"]',s).each(function(t){if("cb"!==(r=c[t].name)&&"subgrid"!==r&&"rn"!==r&&!0===c[t].editable&&"sc"!==r){if(r===a.p.ExpandColumn&&!0===a.p.treeGrid)o=Z(this).text();else try{o=Z.unformat.call(a,Z(this),{rowId:i,colModel:c[t]},t)}catch(e){o="textarea"===c[t].edittype?Z(this).text():Z(this).html()}switch(u.p.autoencode&&(o=Z.jgrid.htmlDecode(o)),!0!==$[u.p.id].checkOnSubmit&&!$[u.p.id].checkOnUpdate||(u.p.savedData[r]=o),r=Z.jgrid.jqID(r),c[t].edittype){case"select":var e=o.split(","),e=Z.map(e,function(e){return Z.jgrid.trim(e)});Z("#"+r+" option",d).each(function(){!(c[t].editoptions.multiple||Z.jgrid.trim(o)!==Z.jgrid.trim(Z(this).text())&&e[0]!==Z.jgrid.trim(Z(this).text())&&e[0]!==Z.jgrid.trim(Z(this).val()))||c[t].editoptions.multiple&&(-1<Z.inArray(Z.jgrid.trim(Z(this).text()),e)||-1<Z.inArray(Z.jgrid.trim(Z(this).val()),e))?this.selected=!0:this.selected=!1}),!0!==$[u.p.id].checkOnSubmit&&!$[u.p.id].checkOnUpdate||(o=Z("#"+r,d).val(),c[t].editoptions.multiple&&(o=o.join(",")),u.p.savedData[r]=o);break;case"checkbox":o=String(o),c[t].editoptions&&c[t].editoptions.value?c[t].editoptions.value.split(":")[0]===o?Z("#"+r,d)[u.p.useProp?"prop":"attr"]({checked:!0,defaultChecked:!0}):Z("#"+r,d)[u.p.useProp?"prop":"attr"]({checked:!1,defaultChecked:!1}):(o=o.toLowerCase()).search(/(false|f|0|no|n|off|undefined)/i)<0&&""!==o?(Z("#"+r,d)[u.p.useProp?"prop":"attr"]("checked",!0),Z("#"+r,d)[u.p.useProp?"prop":"attr"]("defaultChecked",!0)):(Z("#"+r,d)[u.p.useProp?"prop":"attr"]("checked",!1),Z("#"+r,d)[u.p.useProp?"prop":"attr"]("defaultChecked",!1)),!0!==$[u.p.id].checkOnSubmit&&!$[u.p.id].checkOnUpdate||(o=Z("#"+r,d).is(":checked")?Z("#"+r,d).val():Z("#"+r,d).attr("offval"),u.p.savedData[r]=o);break;case"custom":try{if(!c[t].editoptions||!Z.jgrid.isFunction(c[t].editoptions.custom_value))throw"e1";c[t].editoptions.custom_value.call(u,Z("#"+r,d),"set",o)}catch(e){"e1"===e?Z.jgrid.info_dialog(b.errcap,"function 'custom_value' "+$[Z(this)[0]].p.msg.nodefined,Z.rp_ge[Z(this)[0]].p.bClose,{styleUI:$[Z(this)[0]].p.styleUI}):Z.jgrid.info_dialog(b.errcap,e.message,Z.rp_ge[Z(this)[0]].p.bClose,{styleUI:$[Z(this)[0]].p.styleUI})}break;default:("&nbsp;"===o||"&#160;"===o||1===o.length&&160===o.charCodeAt(0))&&(o=""),Z("#"+r,d).val(o)}l++}}),0<l)&&(Z("#id_g",j).val(i),!0!==$[u.p.id].checkOnSubmit&&!$[u.p.id].checkOnUpdate||(u.p.savedData[a.p.id+"_id"]=i))}function H(){var d,r,o,e,t,n,i,s=[!0,"",""],a={},l=u.p.prmNames,c=Z(u).triggerHandler("jqGridAddEditBeforeCheckValues",[h,Z(g),m]);if(c&&"object"==typeof c&&(h=c),Z.jgrid.isFunction($[u.p.id].beforeCheckValues)&&(c=$[u.p.id].beforeCheckValues.call(u,h,Z(g),m))&&"object"==typeof c&&(h=c),!$[u.p.id].html5Check||Z.jgrid.validateForm(w[0])){for(e in h)if(h.hasOwnProperty(e)&&!1===(s=Z.jgrid.checkValues.call(u,h[e],e))[0])break;if(Z.each(u.p.colModel,function(e,t){t.editoptions&&!0===t.editoptions.NullIfEmpty&&h.hasOwnProperty(t.name)&&""===h[t.name]&&(h[t.name]="null")}),(s=s[0]&&(void 0===(a=Z(u).triggerHandler("jqGridAddEditClickSubmit",[$[u.p.id],h,m]))&&Z.jgrid.isFunction($[u.p.id].onclickSubmit)&&(a=$[u.p.id].onclickSubmit.call(u,$[u.p.id],h,m)||{}),(s=void 0===(s=Z(u).triggerHandler("jqGridAddEditBeforeSubmit",[h,Z(g),m]))?[!0,"",""]:s)[0])&&Z.jgrid.isFunction($[u.p.id].beforeSubmit)?$[u.p.id].beforeSubmit.call(u,h,Z(g),m):s)[0]&&!$[u.p.id].processing){if($[u.p.id].processing=!0,Z("#sData",j+"_2").addClass(K.active),c=$[u.p.id].url||Z(u).jqGrid("getGridParam","editurl"),o=l.oper,r="clientArray"===c||"storage"===c?u.p.keyName:l.id,h[o]="_empty"===Z.jgrid.trim(h[u.p.id+"_id"])?l.addoper:l.editoper,(h[o]!==l.addoper||void 0===h[r])&&(h[r]=h[u.p.id+"_id"]),delete h[u.p.id+"_id"],h=Z.extend(h,$[u.p.id].editData,a),!0===u.p.treeGrid)for(t in h[o]===l.addoper&&(n=Z(u).jqGrid("getGridParam","selrow"),a="adjacency"===u.p.treeGridModel?u.p.treeReader.parent_id_field:"parent_id",h[a]=n),u.p.treeReader)u.p.treeReader.hasOwnProperty(t)&&(i=u.p.treeReader[t],!h.hasOwnProperty(i)||h[o]===l.addoper&&"parent_id_field"===t||delete h[i]);h[r]=Z.jgrid.stripPref(u.p.idPrefix,h[r]);var p=Z.extend({url:c,type:$[u.p.id].mtype,data:Z.jgrid.isFunction($[u.p.id].serializeEditData)?$[u.p.id].serializeEditData.call(u,h):h,success:function(e,t,i){if(Z("#sData",j+"_2").removeClass(K.active),h[r]=u.p.idPrefix+h[r],300<=i.status&&304!==i.status?(s[0]=!1,s[1]=Z(u).triggerHandler("jqGridAddEditErrorTextFormat",[i,m]),Z.jgrid.isFunction($[u.p.id].errorTextFormat)?s[1]=$[u.p.id].errorTextFormat.call(u,i,m):s[1]=t+" Status: '"+i.statusText+"'. Error code: "+i.status):(s=void 0===(s=Z(u).triggerHandler("jqGridAddEditAfterSubmit",[i,h,m]))?[!0,"",""]:s)[0]&&Z.jgrid.isFunction($[u.p.id].afterSubmit)&&(s=$[u.p.id].afterSubmit.call(u,i,h,m)),!1===s[0])Z(".FormError",g).html(s[1]),Z(".FormError",g).show();else if(u.p.autoencode&&Z.each(h,function(e,t){h[e]=Z.jgrid.htmlDecode(t)}),h[o]===l.addoper?(s[2]||(s[2]=Z.jgrid.randId()),null==h[r]||h[r]===u.p.idPrefix+"_empty"||""===h[r]?h[r]=s[2]:s[2]=h[r],$[u.p.id].reloadAfterSubmit?Z(u).trigger("reloadGrid"):!0===u.p.treeGrid?Z(u).jqGrid("addChildNode",s[2],n,h):Z(u).jqGrid("addRowData",s[2],h,Y.addedrow),$[u.p.id].closeAfterAdd?(!0!==u.p.treeGrid&&Z(u).jqGrid("setSelection",s[2]),Z.jgrid.hideModal("#"+Z.jgrid.jqID(v.themodal),{gb:"#gbox_"+Z.jgrid.jqID(f),jqm:Y.jqModal,onClose:$[u.p.id].onClose,removemodal:$[u.p.id].removemodal,formprop:!$[u.p.id].recreateForm,form:$[u.p.id].form})):$[u.p.id].clearAfterAdd&&E("_empty",u,g)):($[u.p.id].reloadAfterSubmit?(Z(u).trigger("reloadGrid"),$[u.p.id].closeAfterEdit||setTimeout(function(){Z(u).jqGrid("setSelection",h[r])},1e3)):!0===u.p.treeGrid?Z(u).jqGrid("setTreeRow",h[r],h):Z(u).jqGrid("setRowData",h[r],h),$[u.p.id].closeAfterEdit&&Z.jgrid.hideModal("#"+Z.jgrid.jqID(v.themodal),{gb:"#gbox_"+Z.jgrid.jqID(f),jqm:Y.jqModal,onClose:$[u.p.id].onClose,removemodal:$[u.p.id].removemodal,formprop:!$[u.p.id].recreateForm,form:$[u.p.id].form})),(Z.jgrid.isFunction($[u.p.id].afterComplete)||Object.prototype.hasOwnProperty.call(Z._data(Z(u)[0],"events"),"jqGridAddEditAfterComplete"))&&(d=i,setTimeout(function(){Z(u).triggerHandler("jqGridAddEditAfterComplete",[d,h,Z(g),m]);try{$[u.p.id].afterComplete.call(u,d,h,Z(g),m)}catch(e){}d=null},500)),($[u.p.id].checkOnSubmit||$[u.p.id].checkOnUpdate)&&(Z(g).data("disabled",!1),"_empty"!==u.p.savedData[u.p.id+"_id"]))for(var a in u.p.savedData)u.p.savedData.hasOwnProperty(a)&&h[a]&&(u.p.savedData[a]=h[a]);$[u.p.id].processing=!1;try{Z(":input:visible",g)[0].focus()}catch(e){}}},Z.jgrid.ajaxOptions,$[u.p.id].ajaxEditOptions);p.url||$[u.p.id].useDataProxy||(Z.jgrid.isFunction(u.p.dataProxy)?$[u.p.id].useDataProxy=!0:(s[0]=!1,s[1]+=" "+b.nourl)),s[0]&&($[u.p.id].useDataProxy?!1===(a=void 0===(a=u.p.dataProxy.call(u,p,"set_"+u.p.id))?[!0,""]:a)[0]?(s[0]=!1,s[1]=a[1]||"Error processing the row!"):(p.data.oper===l.addoper&&$[u.p.id].closeAfterAdd&&Z.jgrid.hideModal("#"+Z.jgrid.jqID(v.themodal),{gb:"#gbox_"+Z.jgrid.jqID(f),jqm:Y.jqModal,onClose:$[u.p.id].onClose,removemodal:$[u.p.id].removemodal,formprop:!$[u.p.id].recreateForm,form:$[u.p.id].form}),p.data.oper===l.editoper&&$[u.p.id].closeAfterEdit&&Z.jgrid.hideModal("#"+Z.jgrid.jqID(v.themodal),{gb:"#gbox_"+Z.jgrid.jqID(f),jqm:Y.jqModal,onClose:$[u.p.id].onClose,removemodal:$[u.p.id].removemodal,formprop:!$[u.p.id].recreateForm,form:$[u.p.id].form})):"clientArray"===p.url?($[u.p.id].reloadAfterSubmit=!1,h=p.data,p.success(h,"",{status:200,statusText:""})):"storage"===p.url?h[o]===l.addoper?("_empty"===h[r]&&(h[r]=""),Z(u).jqGrid("addStorageRecord",h).then(function(e){"complete"===e.type&&p.success(h,"",{status:200,statusText:""})}).catch(function(e){Z.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")})):h[o]===l.editoper&&Z(u).jqGrid("updateStorageRecord",h).then(function(e){"complete"===e.type&&p.success(h,"",{status:200,statusText:""})}).catch(function(e){Z.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")}):Z.ajax(p))}!1===s[0]&&(Z(g).scrollTop(0),Z(".FormError",g).html(s[1]),Z(".FormError",g).show())}}function V(e,t){var i,a=!1;if(!(a=!(Z.isPlainObject(e)&&Z.isPlainObject(t)&&Object.getOwnPropertyNames(e).length===Object.getOwnPropertyNames(t).length)))for(i in t)if(t.hasOwnProperty(i)){if(!e.hasOwnProperty(i)){a=!0;break}if(e[i]!==t[i]){a=!0;break}}return a}function A(){var e=!0;return Z(".FormError",g).hide(),$[u.p.id].checkOnUpdate&&(h={},z(),V(h,u.p.savedData))&&(Z(g).data("disabled",!0),Z(".confirm","#"+v.themodal).show(),e=!1),e}function L(e,t){var i=t[1].length-1;0===e||void 0!==t[1][e-1]&&Z("#"+Z.jgrid.jqID(t[1][e-1])).hasClass(K.disabled)?Z("#pData",l).addClass(K.disabled):Z("#pData",l).removeClass(K.disabled),e===i||void 0!==t[1][e+1]&&Z("#"+Z.jgrid.jqID(t[1][e+1])).hasClass(K.disabled)?Z("#nData",l).addClass(K.disabled):Z("#nData",l).removeClass(K.disabled)}function W(){var e=Z(u).jqGrid("getDataIDs"),t=Z("#id_g",j).val();if(u.p.multiselect&&$[u.p.id].editselected){for(var i=[],a=0,d=e.length;a<d;a++)-1!==Z.inArray(e[a],u.p.selarrrow)&&i.push(e[a]);return[Z.inArray(t,i),i]}return[Z.inArray(t,e),e]}function Q(){if($[u.p.id].checkOnSubmit||$[u.p.id].checkOnUpdate){var e,t,i=[],a={},i=Z.map(u.p.savedData,function(e,t){return t});for(e in Z(".FormElement",w).each(function(){if(""!==Z.jgrid.trim(this.name)&&-1===i.indexOf(this.name)){var e=Z(this).val(),t=Z(this).get(0).type;if("checkbox"===t)Z(this).is(":checked")||(e=Z(this).attr("offval"));else if("select-multiple"===t)e=e.join(",");else if("radio"===t){if(a.hasOwnProperty(this.name))return!0;a[this.name]=void 0===Z(this).attr("offval")?"off":Z(this).attr("offval")}u.p.savedData[this.name]=e}}),a)a.hasOwnProperty(e)&&(t=Z('input[name="'+e+'"]:checked',w).val(),u.p.savedData[e]=void 0!==t?t:a[e])}}})},viewGridRow:function(R,T){var e=Z.jgrid.getRegional(this[0],"view"),t=this[0].p.styleUI,U=Z.jgrid.styleUI[t].formedit,N=Z.jgrid.styleUI[t].common;return T=Z.extend(!0,{top:0,left:0,width:500,datawidth:"auto",height:"auto",dataheight:"auto",modal:!1,overlay:30,drag:!0,resize:!0,jqModal:!0,closeOnEscape:!1,labelswidth:"auto",closeicon:[],navkeys:[!1,38,40],onClose:null,beforeShowForm:null,beforeInitData:null,viewPagerButtons:!0,recreateForm:!1,removemodal:!0,form:"view",buttons:[]},e,T||{}),$[Z(this)[0].p.id]=T,this.each(function(){var r=this;if(r.grid&&R){var a=r.p.id,d="ViewGrid_"+Z.jgrid.jqID(a),n="ViewTbl_"+Z.jgrid.jqID(a),i="ViewGrid_"+a,e="ViewTbl_"+a,t={themodal:"viewmod"+a,modalhead:"viewhd"+a,modalcontent:"viewcnt"+a,scrollelm:d},o=!0,s=1,l=0,c=($[r.p.id].styleUI=r.p.styleUI||"jQueryUI",T.recreateForm||Z(r).data("viewProp")&&Z.extend($[Z(this)[0].p.id],Z(r).data("viewProp")),isNaN($[Z(this)[0].p.id].dataheight)?$[Z(this)[0].p.id].dataheight:$[Z(this)[0].p.id].dataheight+"px"),p=isNaN($[Z(this)[0].p.id].datawidth)?$[Z(this)[0].p.id].datawidth:$[Z(this)[0].p.id].datawidth+"px",p=Z("<form name='FormPost' id='"+i+"' class='FormGrid' style='width:"+p+";height:"+c+";'></form>"),u=Z("<table id='"+e+"' class='EditTable ViewTable'><tbody></tbody></table>");if(Z(r.p.colModel).each(function(){var e=this.formoptions;s=Math.max(s,e&&e.colpos||0),l=Math.max(l,e&&e.rowpos||0)}),Z(p).append(u),!1!==(o=(o=void 0===(o=Z(r).triggerHandler("jqGridViewRowBeforeInitData",[p]))?!0:o)&&Z.jgrid.isFunction($[r.p.id].beforeInitData)?$[r.p.id].beforeInitData.call(r,p):o)){for(var h,m,f,g,j,v,b,w,c=R,D=r,y=u,q=s,x=0,_="<td class='CaptionTD form-view-label "+N.content+"' width='"+T.labelswidth+"'></td><td class='DataTD form-view-data ui-helper-reset "+N.content+"'></td>",I="",M="<td class='CaptionTD form-view-label "+N.content+"'></td><td class='DataTD form-view-data "+N.content+"'></td>",B=["integer","number","currency"],k=0,C=0,F=1;F<=q;F++)I+=1===F?_:M;Z(D.p.colModel).each(function(){(m=(!this.editrules||!0!==this.editrules.edithidden)&&!0===this.hidden)||"right"!==this.align||(this.formatter&&-1!==Z.inArray(this.formatter,B)?k=Math.max(k,parseInt(this.width,10)):C=Math.max(C,parseInt(this.width,10)))}),v=0!==k?k:0!==C?C:0,j=Z(D).jqGrid("getInd",c),Z(D.p.colModel).each(function(e){var t,i,a,d;h=this.name,m=(!this.editrules||!0!==this.editrules.edithidden)&&!0===this.hidden,g=m?"style='display:none'":"",w="boolean"!=typeof this.viewable||this.viewable,"cb"!==h&&"subgrid"!==h&&"rn"!==h&&w&&"sc"!==h&&(w=!1===j?"":h===D.p.ExpandColumn&&!0===D.p.treeGrid?Z("td",D.rows[j]).eq(e).text():Z("td",D.rows[j]).eq(e).html(),b="right"===this.align&&0!==v,t=Z.extend({},{rowabove:!1,rowcontent:""},this.formoptions||{}),i=parseInt(t.rowpos,10)||x+1,a=parseInt(2*(parseInt(t.colpos,10)||1),10),t.rowabove&&(d=Z("<tr><td class='contentinfo' colspan='"+2*q+"'>"+t.rowcontent+"</td></tr>"),Z(y).append(d),d[0].rp=i),0===(f=Z(y).find("tr[rowpos="+i+"]")).length&&(f=Z("<tr "+g+" rowpos='"+i+"'></tr>").addClass("FormData").attr("id","trv_"+h),Z(f).append(I),Z(y).append(f),f[0].rp=i),Z("td",f[0]).eq(a-2).html("<b>"+(void 0===t.label?D.p.colNames[e]:t.label)+"</b>"),Z("td",f[0]).eq(a-1).append("<span>"+w+"</span>").attr("id","v_"+h),b&&Z("td",f[0]).eq(a-1).find("span").css({"text-align":"right",width:v+"px"}),x,x++)}),0<x&&((c=Z("<tr class='FormData' style='display:none'><td class='CaptionTD'></td><td colspan='"+(2*q-1)+"' class='DataTD'><input class='FormElement' id='id_g' type='text' name='id' value='"+c+"'/></td></tr>"))[0].rp=x+99,Z(y).append(c));var G,e="rtl"===r.p.direction,o="<a id='"+(e?"nData":"pData")+"' class='fm-button "+N.button+"'><span class='"+N.icon_base+" "+U.icon_prev+"'></span></a>",c="<a id='"+(e?"pData":"nData")+"' class='fm-button "+N.button+"'><span class='"+N.icon_base+" "+U.icon_next+"'></span></a>",O="<a id='cData' class='fm-button "+N.button+"'>"+T.bClose+"</a>",O=Array.isArray($[r.p.id].buttons)?Z.jgrid.buildButtons($[r.p.id].buttons,O,N):O,p=(0<l&&(G=[],Z.each(Z(u)[0].rows,function(e,t){G[e]=t}),G.sort(function(e,t){return e.rp>t.rp?1:e.rp<t.rp?-1:0}),Z.each(G,function(e,t){Z("tbody",u).append(t)})),T.gbox="#gbox_"+Z.jgrid.jqID(a),Z("<div></div>").append(p).append("<table border='0' class='EditTable' id='"+n+"_2'><tbody><tr id='Act_Buttons'><td class='navButton' width='"+T.labelswidth+"'>"+(e?c+o:o+c)+"</td><td class='EditButton'>"+O+"</td></tr></tbody></table>")),o=Z(".ui-jqgrid").css("font-size")||"11px",c=(Z.jgrid.createModal(t,p,$[Z(this)[0].p.id],"#gview_"+Z.jgrid.jqID(r.p.id),Z("#gview_"+Z.jgrid.jqID(r.p.id))[0],null,{"font-size":o}),e&&(Z("#pData, #nData","#"+n+"_2").css("float","right"),Z(".EditButton","#"+n+"_2").css("text-align","left")),T.viewPagerButtons||Z("#pData, #nData","#"+n+"_2").hide(),Z("#"+t.themodal).keydown(function(e){return 27===e.which?($[r.p.id].closeOnEscape&&Z.jgrid.hideModal("#"+Z.jgrid.jqID(t.themodal),{gb:T.gbox,jqm:T.jqModal,onClose:T.onClose,removemodal:$[r.p.id].removemodal,formprop:!$[r.p.id].recreateForm,form:$[r.p.id].form}),!1):!0===T.navkeys[0]?e.which===T.navkeys[1]?(Z("#pData","#"+n+"_2").trigger("click"),!1):e.which===T.navkeys[2]?(Z("#nData","#"+n+"_2").trigger("click"),!1):void 0:void 0}),T.closeicon=Z.extend([!0,"left",U.icon_close],T.closeicon),!0===T.closeicon[0]&&Z("#cData","#"+n+"_2").addClass("right"===T.closeicon[1]?"fm-button-icon-right":"fm-button-icon-left").append("<span class='"+N.icon_base+" "+T.closeicon[2]+"'></span>"),Z(r).triggerHandler("jqGridViewRowBeforeShowForm",[Z("#"+d)]),Z.jgrid.isFunction(T.beforeShowForm)&&T.beforeShowForm.call(r,Z("#"+d)),Z.jgrid.viewModal("#"+Z.jgrid.jqID(t.themodal),{gbox:"#gbox_"+Z.jgrid.jqID(a),jqm:T.jqModal,overlay:T.overlay,modal:T.modal,onHide:function(e){var t="rtl"===Z("#gbox_"+Z.jgrid.jqID(a)).attr("dir"),i=parseFloat(Z("#viewmod"+a)[0].style.width);Z(r).data("viewProp",{top:parseFloat(Z(e.w).css("top")),left:t?Z("#gbox_"+Z.jgrid.jqID(a)).outerWidth()-i-parseFloat(Z(e.w).css("left"))+12:parseFloat(Z(e.w).css("left")),width:Z(e.w).width(),height:Z(e.w).height(),dataheight:Z("#"+d).height(),datawidth:Z("#"+d).width()}),e.w.remove(),e.o&&e.o.remove()}}),Z(".fm-button:not(."+N.disabled+")","#"+n+"_2").hover(function(){Z(this).addClass(N.hover)},function(){Z(this).removeClass(N.hover)}),P(),Z("#cData","#"+n+"_2").click(function(){return Z.jgrid.hideModal("#"+Z.jgrid.jqID(t.themodal),{gb:"#gbox_"+Z.jgrid.jqID(a),jqm:T.jqModal,onClose:T.onClose,removemodal:$[r.p.id].removemodal,formprop:!$[r.p.id].recreateForm,form:$[r.p.id].form}),!1}),Z("#"+n+"_2").find("[data-index]").each(function(){var t=parseInt(Z(this).attr("data-index"),10);0<=t&&T.buttons[t].hasOwnProperty("click")&&Z(this).on("click",function(e){T.buttons[t].click.call(r,Z("#"+i)[0],$[r.p.id],e)})}),Z("#nData","#"+n+"_2").click(function(){Z("#FormError","#"+n).hide();var e=A();return e[0]=parseInt(e[0],10),-1!==e[0]&&e[1][e[0]+1]&&(Z(r).triggerHandler("jqGridViewRowClickPgButtons",["next",Z("#"+d),e[1][e[0]]]),Z.jgrid.isFunction(T.onclickPgButtons)&&T.onclickPgButtons.call(r,"next",Z("#"+d),e[1][e[0]]),S(e[1][e[0]+1],r),r.p.multiselect&&$[r.p.id].viewselected||Z(r).jqGrid("setSelection",e[1][e[0]+1]),Z(r).triggerHandler("jqGridViewRowAfterClickPgButtons",["next",Z("#"+d),e[1][e[0]+1]]),Z.jgrid.isFunction(T.afterclickPgButtons)&&T.afterclickPgButtons.call(r,"next",Z("#"+d),e[1][e[0]+1]),E(e[0]+1,e)),P(),!1}),Z("#pData","#"+n+"_2").click(function(){Z("#FormError","#"+n).hide();var e=A();return-1!==e[0]&&e[1][e[0]-1]&&(Z(r).triggerHandler("jqGridViewRowClickPgButtons",["prev",Z("#"+d),e[1][e[0]]]),Z.jgrid.isFunction(T.onclickPgButtons)&&T.onclickPgButtons.call(r,"prev",Z("#"+d),e[1][e[0]]),S(e[1][e[0]-1],r),r.p.multiselect&&$[r.p.id].viewselected||Z(r).jqGrid("setSelection",e[1][e[0]-1]),Z(r).triggerHandler("jqGridViewRowAfterClickPgButtons",["prev",Z("#"+d),e[1][e[0]-1]]),Z.jgrid.isFunction(T.afterclickPgButtons)&&T.afterclickPgButtons.call(r,"prev",Z("#"+d),e[1][e[0]-1]),E(e[0]-1,e)),P(),!1}),A());E(c[0],c),this.refreshViewForm=function(e,t){!(t=void 0===t?!1:t)&&R!==e||S(e,this),t&&(R=e)}}}function P(){!0!==$[r.p.id].closeOnEscape&&!0!==$[r.p.id].navkeys[0]||setTimeout(function(){Z(".ui-jqdialog-titlebar-close","#"+Z.jgrid.jqID(t.modalhead)).attr("tabindex","-1").focus()},0)}function S(e,t){var i,a,d,r=0,o=Z(t).jqGrid("getInd",e,!0);o&&(Z("td",o).each(function(e){i=t.p.colModel[e].name,a=(!t.p.colModel[e].editrules||!0!==t.p.colModel[e].editrules.edithidden)&&!0===t.p.colModel[e].hidden,"cb"!==i&&"subgrid"!==i&&"rn"!==i&&"sc"!==i&&(d=i===t.p.ExpandColumn&&!0===t.p.treeGrid?Z(this).text():Z(this).html(),i=Z.jgrid.jqID("v_"+i),Z("#"+i+" span","#"+n).html(d),a&&Z("#"+i,"#"+n).parents("tr").first().hide(),r++)}),0<r)&&Z("#id_g","#"+n).val(e)}function E(e,t){var i=t[1].length-1;0===e?Z("#pData","#"+n+"_2").addClass(N.disabled):void 0!==t[1][e-1]&&Z("#"+Z.jgrid.jqID(t[1][e-1])).hasClass(N.disabled)?Z("#pData",n+"_2").addClass(N.disabled):Z("#pData","#"+n+"_2").removeClass(N.disabled),e===i?Z("#nData","#"+n+"_2").addClass(N.disabled):void 0!==t[1][e+1]&&Z("#"+Z.jgrid.jqID(t[1][e+1])).hasClass(N.disabled)?Z("#nData",n+"_2").addClass(N.disabled):Z("#nData","#"+n+"_2").removeClass(N.disabled)}function A(){var e=Z(r).jqGrid("getDataIDs"),t=Z("#id_g","#"+n).val();if(r.p.multiselect&&$[r.p.id].viewselected){for(var i=[],a=0,d=e.length;a<d;a++)-1!==Z.inArray(e[a],r.p.selarrrow)&&i.push(e[a]);return[Z.inArray(t,i),i]}return[Z.inArray(t,e),e]}})},delGridRow:function(h,m){var e=Z.jgrid.getRegional(this[0],"del"),t=this[0].p.styleUI,f=Z.jgrid.styleUI[t].formedit,g=Z.jgrid.styleUI[t].common;return m=Z.extend(!0,{top:0,left:0,width:300,height:"auto",dataheight:"auto",modal:!1,overlay:30,drag:!0,resize:!0,url:"",mtype:"POST",reloadAfterSubmit:!0,beforeShowForm:null,beforeInitData:null,afterShowForm:null,beforeSubmit:null,onclickSubmit:null,afterSubmit:null,jqModal:!0,closeOnEscape:!1,delData:{},delicon:[],cancelicon:[],onClose:null,ajaxDelOptions:{},processing:!1,serializeDelData:null,useDataProxy:!1},e,m||{}),$[Z(this)[0].p.id]=m,this.each(function(){var n=this;if(n.grid&&h){var s,a,d,l=n.p.id,c={},e=!0,p="DelTbl_"+Z.jgrid.jqID(l),i="DelTbl_"+l,u={themodal:"delmod"+l,modalhead:"delhd"+l,modalcontent:"delcnt"+l,scrollelm:p};if($[n.p.id].styleUI=n.p.styleUI||"jQueryUI",Array.isArray(h)&&(h=h.join()),void 0!==Z("#"+Z.jgrid.jqID(u.themodal))[0]){if(!1===(e=(e=void 0===(e=Z(n).triggerHandler("jqGridDelRowBeforeInitData",[Z("#"+p)]))?!0:e)&&Z.jgrid.isFunction($[n.p.id].beforeInitData)?$[n.p.id].beforeInitData.call(n,Z("#"+p)):e))return;Z("#DelData>td","#"+p).text(h),Z("#DelError","#"+p).hide(),!0===$[n.p.id].processing&&($[n.p.id].processing=!1,Z("#dData","#"+p).removeClass(g.active))}else{var t=isNaN($[n.p.id].dataheight)?$[n.p.id].dataheight:$[n.p.id].dataheight+"px",r=isNaN(m.datawidth)?m.datawidth:m.datawidth+"px",r="<div id='"+i+"' class='formdata' style='width:"+r+";overflow:auto;position:relative;height:"+t+";'>",t=(r=(r=(r=r+"<table class='DelTable'><tbody>"+("<tr id='DelError' style='display:none'><td class='"+g.error+"'></td></tr>"))+("<tr id='DelData' style='display:none'><td >"+h+"</td></tr>"))+('<tr><td class="delmsg" style="white-space:pre;">'+$[n.p.id].msg+"</td></tr><tr><td >&#160;</td></tr>")+"</tbody></table></div>","<a id='dData' class='fm-button "+g.button+"'>"+m.bSubmit+"</a>"),o="<a id='eData' class='fm-button "+g.button+"'>"+m.bCancel+"</a>",t=Array.isArray($[n.p.id].buttons)?Z.jgrid.buildButtons($[n.p.id].buttons,t+o,g):t+o,o=Z(".ui-jqgrid").css("font-size")||"11px";if(r+="<table class='EditTable ui-common-table' id='"+p+"_2'><tbody><tr><td><hr class='"+g.content+"' style='margin:1px'/></td></tr><tr><td class='DelButton EditButton'>"+t+"</td></tr></tbody></table>",m.gbox="#gbox_"+Z.jgrid.jqID(l),Z.jgrid.createModal(u,r,$[n.p.id],"#gview_"+Z.jgrid.jqID(n.p.id),Z("#gview_"+Z.jgrid.jqID(n.p.id))[0],null,{"font-size":o}),Z(".fm-button","#"+p+"_2").hover(function(){Z(this).addClass(g.hover)},function(){Z(this).removeClass(g.hover)}),m.delicon=Z.extend([!0,"left",f.icon_del],$[n.p.id].delicon),m.cancelicon=Z.extend([!0,"left",f.icon_cancel],$[n.p.id].cancelicon),!0===m.delicon[0]&&Z("#dData","#"+p+"_2").addClass("right"===m.delicon[1]?"fm-button-icon-right":"fm-button-icon-left").append("<span class='"+g.icon_base+" "+m.delicon[2]+"'></span>"),!0===m.cancelicon[0]&&Z("#eData","#"+p+"_2").addClass("right"===m.cancelicon[1]?"fm-button-icon-right":"fm-button-icon-left").append("<span class='"+g.icon_base+" "+m.cancelicon[2]+"'></span>"),Z("#dData","#"+p+"_2").click(function(){var e,r=[!0,""],o=Z("#DelData>td","#"+p).text();if(c={},void 0===(c=Z(n).triggerHandler("jqGridDelRowClickSubmit",[$[n.p.id],o]))&&Z.jgrid.isFunction($[n.p.id].onclickSubmit)&&(c=$[n.p.id].onclickSubmit.call(n,$[n.p.id],o)||{}),(r=(r=void 0===(r=Z(n).triggerHandler("jqGridDelRowBeforeSubmit",[o]))?[!0,"",""]:r)[0]&&Z.jgrid.isFunction($[n.p.id].beforeSubmit)?$[n.p.id].beforeSubmit.call(n,o):r)[0]&&!$[n.p.id].processing){if($[n.p.id].processing=!0,a=n.p.prmNames,s=Z.extend({},$[n.p.id].delData,c),d=a.oper,s[d]=a.deloper,d=a.id,!(o=String(o).split(",")).length)return!1;for(e in o)o.hasOwnProperty(e)&&(o[e]=Z.jgrid.stripPref(n.p.idPrefix,o[e]));s[d]=o.join(),Z(this).addClass(g.active);var t,i=Z.extend({url:$[n.p.id].url||Z(n).jqGrid("getGridParam","editurl"),type:$[n.p.id].mtype,data:Z.jgrid.isFunction($[n.p.id].serializeDelData)?$[n.p.id].serializeDelData.call(n,s):s,success:function(e,t,i){var a,d;if(Z("#dData","#"+p+"_2").removeClass(g.active),300<=i.status&&304!==i.status?(r[0]=!1,r[1]=Z(n).triggerHandler("jqGridDelRowErrorTextFormat",[i]),Z.jgrid.isFunction($[n.p.id].errorTextFormat)&&(r[1]=$[n.p.id].errorTextFormat.call(n,i)),void 0===r[1]&&(r[1]=t+" Status: '"+i.statusText+"'. Error code: "+i.status)):(r=void 0===(r=Z(n).triggerHandler("jqGridDelRowAfterSubmit",[i,s]))?[!0,"",""]:r)[0]&&Z.jgrid.isFunction($[n.p.id].afterSubmit)&&(r=$[n.p.id].afterSubmit.call(n,i,s)),!1===r[0])Z("#DelError>td","#"+p).html(r[1]),Z("#DelError","#"+p).show();else{if($[n.p.id].reloadAfterSubmit&&"local"!==n.p.datatype)Z(n).trigger("reloadGrid");else{if(!0===n.p.treeGrid)try{Z(n).jqGrid("delTreeNode",n.p.idPrefix+o[0],!0)}catch(e){}else for(a=0;a<o.length;a++)Z(n).jqGrid("delRowData",n.p.idPrefix+o[a]);n.p.selrow=null,n.p.selarrrow=[]}(Z.jgrid.isFunction($[n.p.id].afterComplete)||Object.prototype.hasOwnProperty.call(Z._data(Z(n)[0],"events"),"jqGridDelRowAfterComplete"))&&(d=i,setTimeout(function(){Z(n).triggerHandler("jqGridDelRowAfterComplete",[d,s]);try{$[n.p.id].afterComplete.call(n,d,s)}catch(e){}},500))}$[n.p.id].processing=!1,r[0]&&Z.jgrid.hideModal("#"+Z.jgrid.jqID(u.themodal),{gb:"#gbox_"+Z.jgrid.jqID(l),jqm:m.jqModal,onClose:$[n.p.id].onClose})}},Z.jgrid.ajaxOptions,$[n.p.id].ajaxDelOptions);i.url||$[n.p.id].useDataProxy||(Z.jgrid.isFunction(n.p.dataProxy)?$[n.p.id].useDataProxy=!0:(r[0]=!1,r[1]+=" "+Z.jgrid.getRegional(n,"errors.nourl"))),r[0]&&($[n.p.id].useDataProxy?!1===(t=void 0===(t=n.p.dataProxy.call(n,i,"del_"+n.p.id))?[!0,""]:t)[0]?(r[0]=!1,r[1]=t[1]||"Error deleting the selected row!"):Z.jgrid.hideModal("#"+Z.jgrid.jqID(u.themodal),{gb:"#gbox_"+Z.jgrid.jqID(l),jqm:m.jqModal,onClose:$[n.p.id].onClose}):"clientArray"===i.url?(s=i.data,i.success({status:200,statusText:""},"")):"storage"===i.url?Z(n).jqGrid("deleteStorageRecord",o).then(function(e){"complete"===e.type&&i.success(o,"",{status:200,statusText:""})}).catch(function(e){Z.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")}):Z.ajax(i))}return!1===r[0]&&(Z("#DelError>td","#"+p).html(r[1]),Z("#DelError","#"+p).show()),!1}),Z("#eData","#"+p+"_2").click(function(){return Z.jgrid.hideModal("#"+Z.jgrid.jqID(u.themodal),{gb:"#gbox_"+Z.jgrid.jqID(l),jqm:$[n.p.id].jqModal,onClose:$[n.p.id].onClose}),!1}),Z("#"+p+"_2").find("[data-index]").each(function(){var t=parseInt(Z(this).attr("data-index"),10);0<=t&&m.buttons[t].hasOwnProperty("click")&&Z(this).on("click",function(e){m.buttons[t].click.call(n,Z("#"+i)[0],$[n.p.id],e)})}),!1===(e=(e=void 0===(e=Z(n).triggerHandler("jqGridDelRowBeforeInitData",[Z("#"+p)]))?!0:e)&&Z.jgrid.isFunction($[n.p.id].beforeInitData)?$[n.p.id].beforeInitData.call(n,Z("#"+p)):e))return}Z(n).triggerHandler("jqGridDelRowBeforeShowForm",[Z("#"+p)]),Z.jgrid.isFunction($[n.p.id].beforeShowForm)&&$[n.p.id].beforeShowForm.call(n,Z("#"+p)),Z.jgrid.viewModal("#"+Z.jgrid.jqID(u.themodal),{gbox:"#gbox_"+Z.jgrid.jqID(l),jqm:$[n.p.id].jqModal,overlay:$[n.p.id].overlay,modal:$[n.p.id].modal}),Z(n).triggerHandler("jqGridDelRowAfterShowForm",[Z("#"+p)]),Z.jgrid.isFunction($[n.p.id].afterShowForm)&&$[n.p.id].afterShowForm.call(n,Z("#"+p)),!0===$[n.p.id].closeOnEscape&&setTimeout(function(){Z(".ui-jqdialog-titlebar-close","#"+Z.jgrid.jqID(u.modalhead)).attr("tabindex","-1").focus()},0)}})},navGrid:function(m,f,g,j,v,b,w){var D=Z.jgrid.getRegional(this[0],"nav"),y=this[0].p.styleUI,e=Z.jgrid.styleUI[y].navigator,q=Z.jgrid.styleUI[y].common;return f=Z.extend({edit:!0,editicon:e.icon_edit_nav,add:!0,addicon:e.icon_add_nav,del:!0,delicon:e.icon_del_nav,search:!0,searchicon:e.icon_search_nav,refresh:!0,refreshicon:e.icon_refresh_nav,refreshstate:"firstpage",view:!1,viewicon:e.icon_view_nav,position:"left",closeOnEscape:!0,beforeRefresh:null,afterRefresh:null,cloneToTop:!1,alertwidth:200,alertheight:"auto",alerttop:null,alertleft:null,alertzIndex:null,dropmenu:!1,navButtonText:""},D,f||{}),this.each(function(){if(!this.p.navGrid){var t,i=this;if(i.grid&&"string"==typeof m){Z(i).data("navGrid")||Z(i).data("navGrid",f),t=Z(i).data("navGrid"),(t=i.p.force_regional?Z.extend(t,D):t).alerttop||t.alertleft||((e=Z.jgrid.findPos(this))[0]=Math.round(e[0]),e[1]=Math.round(e[1]),0===(a=isNaN(this.p.height)?Z(i.grid.bDiv).height():this.p.height)&&(a=200),t.alertleft=e[0]+this.p.width/2-parseInt(t.alertwidth,10)/2,t.alerttop=e[1]+a/2-25);var e,a,d,r=function(){Z.jgrid.info_dialog(t.alertcap,"<div>"+t.alerttext+"</div><span tabindex='0'><span tabindex='-1' id='jqg_alrt'></span></span>","",{jqModal:!0,drag:!0,resize:!0,caption:t.alertcap,width:t.alertwidth,height:t.alertheight,top:t.alerttop,left:t.alertleft,closeOnEscape:t.closeOnEscape,styleUI:i.p.styleUI,zIndex:t.alertzIndex})},o=1,n=function(){Z(this).hasClass(q.disabled)||Z(this).addClass(q.hover)},s=function(){Z(this).removeClass(q.hover)};for(t.cloneToTop&&i.p.toppager&&(o=2),d=0;d<o;d++){var l,c,p,u=Z("<table class='ui-pg-table navtable ui-common-table'><tbody><tr></tr></tbody></table>"),h="<td class='ui-pg-button "+q.disabled+"' style='width:4px;'><span class='ui-separator'></span></td>";0===d?(0===(c=m).indexOf("#")&&(c=c.substring(1),c="#"+Z.jgrid.jqID(c)),p=i.p.id,c===i.p.toppager&&(p+="_top",o=1)):(c=i.p.toppager,p=i.p.id+"_top"),"rtl"===i.p.direction&&Z(u).attr("dir","rtl").css("float","right"),j=j||{},t.add&&(l=Z("<td class='ui-pg-button "+q.cornerall+"'></td>"),Z(l).append("<div class='ui-pg-div'><span class='"+q.icon_base+" "+t.addicon+"'></span>"+t.addtext+"</div>"),Z("tr",u).append(l),Z(l,u).attr({title:t.addtitle||"",id:j.id||"add_"+p}).click(function(){return Z(this).hasClass(q.disabled)||(Z.jgrid.setSelNavIndex(i,this),Z.jgrid.isFunction(t.addfunc)?t.addfunc.call(i):Z(i).jqGrid("editGridRow","new",j)),!1}).hover(n,s),l=null),g=g||{},t.edit&&(l=Z("<td class='ui-pg-button "+q.cornerall+"'></td>"),Z(l).append("<div class='ui-pg-div'><span class='"+q.icon_base+" "+t.editicon+"'></span>"+t.edittext+"</div>"),Z("tr",u).append(l),Z(l,u).attr({title:t.edittitle||"",id:g.id||"edit_"+p}).click(function(){var e;return Z(this).hasClass(q.disabled)||((e=i.p.selrow)?(Z.jgrid.setSelNavIndex(i,this),Z.jgrid.isFunction(t.editfunc)?t.editfunc.call(i,e):Z(i).jqGrid("editGridRow",e,g)):(r(),Z("#jqg_alrt").focus())),!1}).hover(n,s),l=null),w=w||{},t.view&&(l=Z("<td class='ui-pg-button "+q.cornerall+"'></td>"),Z(l).append("<div class='ui-pg-div'><span class='"+q.icon_base+" "+t.viewicon+"'></span>"+t.viewtext+"</div>"),Z("tr",u).append(l),Z(l,u).attr({title:t.viewtitle||"",id:w.id||"view_"+p}).click(function(){var e;return Z(this).hasClass(q.disabled)||((e=i.p.selrow)?(Z.jgrid.setSelNavIndex(i,this),Z.jgrid.isFunction(t.viewfunc)?t.viewfunc.call(i,e):Z(i).jqGrid("viewGridRow",e,w)):(r(),Z("#jqg_alrt").focus())),!1}).hover(n,s),l=null),v=v||{},t.del&&(l=Z("<td class='ui-pg-button "+q.cornerall+"'></td>"),Z(l).append("<div class='ui-pg-div'><span class='"+q.icon_base+" "+t.delicon+"'></span>"+t.deltext+"</div>"),Z("tr",u).append(l),Z(l,u).attr({title:t.deltitle||"",id:v.id||"del_"+p}).click(function(){var e;return Z(this).hasClass(q.disabled)||(i.p.multiselect?0===(e=i.p.selarrrow).length&&(e=null):e=i.p.selrow,e?(Z.jgrid.setSelNavIndex(i,this),Z.jgrid.isFunction(t.delfunc)?t.delfunc.call(i,e):Z(i).jqGrid("delGridRow",e,v)):r()),!1}).hover(n,s),l=null),(t.add||t.edit||t.del||t.view)&&Z("tr",u).append(h),b=b||{},t.search&&(l=Z("<td class='ui-pg-button "+q.cornerall+"'></td>"),Z(l).append("<div class='ui-pg-div'><span class='"+q.icon_base+" "+t.searchicon+"'></span>"+t.searchtext+"</div>"),Z("tr",u).append(l),Z(l,u).attr({title:t.searchtitle||"",id:b.id||"search_"+p}).click(function(){return Z(this).hasClass(q.disabled)||(Z.jgrid.setSelNavIndex(i,this),Z.jgrid.isFunction(t.searchfunc)?t.searchfunc.call(i,b):Z(i).jqGrid("searchGrid",b)),!1}).hover(n,s),b.showOnLoad&&!0===b.showOnLoad&&Z(l,u).click(),l=null),t.refresh&&(l=Z("<td class='ui-pg-button "+q.cornerall+"'></td>"),Z(l).append("<div class='ui-pg-div'><span class='"+q.icon_base+" "+t.refreshicon+"'></span>"+t.refreshtext+"</div>"),Z("tr",u).append(l),Z(l,u).attr({title:t.refreshtitle||"",id:"refresh_"+p}).click(function(){if(!Z(this).hasClass(q.disabled)){Z.jgrid.isFunction(t.beforeRefresh)&&t.beforeRefresh.call(i),i.p.search=!1,i.p.resetsearch=!0;try{if("currentfilter"!==t.refreshstate){var e=i.p.id;i.p.postData.filters="";try{Z("#fbox_"+Z.jgrid.jqID(e)).jqFilter("resetFilter")}catch(e){}Z.jgrid.isFunction(i.clearToolbar)&&i.clearToolbar.call(i,!1)}}catch(e){}switch(t.refreshstate){case"firstpage":Z(i).trigger("reloadGrid",[{page:1}]);break;case"current":case"currentfilter":Z(i).trigger("reloadGrid",[{current:!0}])}Z.jgrid.isFunction(t.afterRefresh)&&t.afterRefresh.call(i),Z.jgrid.setSelNavIndex(i,this)}return!1}).hover(n,s),l=null),h=Z(".ui-jqgrid").css("font-size")||"11px",Z("body").append("<div id='testpg2' class='ui-jqgrid "+Z.jgrid.styleUI[y].base.entrieBox+"' style='font-size:"+h+";visibility:hidden;' ></div>"),h=Z(u).clone().appendTo("#testpg2").width(),Z("#testpg2").remove(),i.p._nvtd&&(t.dropmenu?(u=null,Z(i).jqGrid("_buildNavMenu",c,p,Z.extend(f,{ainfo:r}),g,j,v,b,w)):h>i.p._nvtd[0]?(i.p.responsive?(u=null,Z(i).jqGrid("_buildNavMenu",c,p,Z.extend(f,{ainfo:r}),g,j,v,b,w)):Z(c+"_"+t.position,c).append(u).width(h),i.p._nvtd[0]=h):Z(c+"_"+t.position,c).append(u),i.p._nvtd[1]=h),i.p.navGrid=!0}i.p.storeNavOptions&&(i.p.navOptions=t,i.p.editOptions=g,i.p.addOptions=j,i.p.delOptions=v,i.p.searchOptions=b,i.p.viewOptions=w,i.p.navButtons=[])}}})},navButtonAdd:function(s,l){var c=this[0].p.styleUI,e=Z.jgrid.styleUI[c].navigator;return l=Z.extend({caption:"newButton",title:"",buttonicon:e.icon_newbutton_nav,onClickButton:null,position:"last",cursor:"pointer",internal:!1},l||{}),this.each(function(){var t,i,e,a,d,r,o,n;this.grid&&"string"==typeof s&&(0===s.indexOf("#")&&(s=s.substring(1)),s="#"+Z.jgrid.jqID(s),n=Z(".navtable",s)[0],i=Z.jgrid.styleUI[c].common.disabled,e=Z.jgrid.styleUI[c].common.hover,a=Z.jgrid.styleUI[c].common.cornerall,r=Z.jgrid.styleUI[c].common.icon_base,(t=this).p.storeNavOptions&&!l.internal&&t.p.navButtons.push([s,l]),n?l.id&&void 0!==Z("#"+Z.jgrid.jqID(l.id),n)[0]||(o=Z("<td></td>"),"NONE"===l.buttonicon.toString().toUpperCase()?Z(o).addClass("ui-pg-button "+a).append("<div class='ui-pg-div'>"+l.caption+"</div>"):Z(o).addClass("ui-pg-button "+a).append("<div class='ui-pg-div'><span class='"+r+" "+l.buttonicon+"'></span>"+l.caption+"</div>"),l.id&&Z(o).attr("id",l.id),"first"!==l.position||0===n.rows[0].cells.length?Z("tr",n).append(o):Z("tr td",n).eq(0).before(o),Z(o,n).attr("title",l.title||"").click(function(e){return Z(this).hasClass(i)||(Z.jgrid.setSelNavIndex(t,this),Z.jgrid.isFunction(l.onClickButton)&&l.onClickButton.call(t,e)),!1}).hover(function(){Z(this).hasClass(i)||Z(this).addClass(e)},function(){Z(this).removeClass(e)})):(n=Z(".dropdownmenu",s)[0])&&(d=Z(n).val(),r=l.id||Z.jgrid.randId(),o=Z('<li class="ui-menu-item" role="presentation"><a class="'+a+' g-menu-item" tabindex="0" role="menuitem" id="'+r+'">'+(l.caption||l.title)+"</a></li>"),d)&&("first"===l.position?Z("#"+d).prepend(o):Z("#"+d).append(o),Z(o).on("click",function(e){return Z(this).hasClass(i)||(Z("#"+d).hide(),Z.jgrid.isFunction(l.onClickButton)&&l.onClickButton.call(t,e)),!1}).find("a").hover(function(){Z(this).hasClass(i)||Z(this).addClass(e)},function(){Z(this).removeClass(e)})))})},navSeparatorAdd:function(i,a){var e=this[0].p.styleUI,d=Z.jgrid.styleUI[e].common;return a=Z.extend({sepclass:"ui-separator",sepcontent:"",position:"last"},a||{}),this.each(function(){var e,t;this.grid&&("string"==typeof i&&0!==i.indexOf("#")&&(i="#"+Z.jgrid.jqID(i)),t=Z(".navtable",i)[0],this.p.storeNavOptions&&this.p.navButtons.push([i,a]),t?(e="<td class='ui-pg-button "+d.disabled+"' style='width:4px;'><span class='"+a.sepclass+"'></span>"+a.sepcontent+"</td>","first"!==a.position||0===t.rows[0].cells.length?Z("tr",t).append(e):Z("tr td",t).eq(0).before(e)):(t=Z(".dropdownmenu",i)[0],e="<li class='ui-menu-item "+d.disabled+"' style='width:100%' role='presentation'><hr class='ui-separator-li'></li>",t&&(t=Z(t).val())&&("first"===a.position?Z("#"+t).prepend(e):Z("#"+t).append(e))))})},_buildNavMenu:function(l,c,p,u,h,m,f,g){return this.each(function(){var e,t,i,a=this,d=Z.jgrid.getRegional(a,"nav"),r=a.p.styleUI,o=Z.jgrid.styleUI[r].filter,n=Z.jgrid.styleUI[r].common,s="form_menu_"+Z.jgrid.randId(),r=p.navButtonText||d.selectcaption||"Actions",d="<button class='dropdownmenu "+n.button+"' value='"+s+"'>"+r+"</button>";Z(l+"_"+p.position,l).append(d);r=Z(".ui-jqgrid").css("font-size")||"11px",i=Z('<ul id="'+s+'" class="ui-nav-menu modal-content ui-menu column-menu jqgrid-column-menu '+n.shadow+'" role="menu" tabindex="0" style="display:none;font-size:'+r+'"></ul>'),p.add&&(e=(h=h||{}).id||"add_"+c,t=Z('<li class="ui-menu-item" role="presentation"><a class="'+n.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+e+'">'+(p.addtext.trim()||p.addtitle)+"</a></li>").click(function(){return Z(this).hasClass(n.disabled)||(Z.jgrid.isFunction(p.addfunc)?p.addfunc.call(a):Z(a).jqGrid("editGridRow","new",h),Z(i).hide()),!1}),Z(i).append(t)),p.edit&&(e=(u=u||{}).id||"edit_"+c,t=Z('<li class="ui-menu-item" role="presentation"><a class="'+n.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+e+'">'+(p.edittext.trim()||p.edittitle)+"</a></li>").click(function(){var e;return Z(this).hasClass(n.disabled)||((e=a.p.selrow)?Z.jgrid.isFunction(p.editfunc)?p.editfunc.call(a,e):Z(a).jqGrid("editGridRow",e,u):(p.ainfo(),Z("#jqg_alrt").focus()),Z(i).hide()),!1}),Z(i).append(t)),p.view&&(e=(g=g||{}).id||"view_"+c,t=Z('<li class="ui-menu-item" role="presentation"><a class="'+n.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+e+'">'+(p.viewtext.trim()||p.viewtitle)+"</a></li>").click(function(){var e;return Z(this).hasClass(n.disabled)||((e=a.p.selrow)?Z.jgrid.isFunction(p.editfunc)?p.viewfunc.call(a,e):Z(a).jqGrid("viewGridRow",e,g):(p.ainfo(),Z("#jqg_alrt").focus()),Z(i).hide()),!1}),Z(i).append(t)),p.del&&(e=(m=m||{}).id||"del_"+c,t=Z('<li class="ui-menu-item" role="presentation"><a class="'+n.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+e+'">'+(p.deltext.trim()||p.deltitle)+"</a></li>").click(function(){var e;return Z(this).hasClass(n.disabled)||(a.p.multiselect?0===(e=a.p.selarrrow).length&&(e=null):e=a.p.selrow,e?Z.jgrid.isFunction(p.delfunc)?p.delfunc.call(a,e):Z(a).jqGrid("delGridRow",e,m):p.ainfo(),Z(i).hide()),!1}),Z(i).append(t)),(p.add||p.edit||p.del||p.view)&&Z(i).append("<li class='ui-menu-item "+n.disabled+"' style='width:100%' role='presentation'><hr class='ui-separator-li'></li>"),p.search&&(e=(f=f||{}).id||"search_"+c,t=Z('<li class="ui-menu-item" role="presentation"><a class="'+n.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+e+'">'+(p.searchtext.trim()||p.searchtitle)+"</a></li>").click(function(){return Z(this).hasClass(n.disabled)||(Z.jgrid.isFunction(p.searchfunc)?p.searchfunc.call(a,f):Z(a).jqGrid("searchGrid",f),Z(i).hide()),!1}),Z(i).append(t),f.showOnLoad)&&!0===f.showOnLoad&&Z(t).click(),p.refresh&&(e=f.id||"search_"+c,t=Z('<li class="ui-menu-item" role="presentation"><a class="'+n.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+e+'">'+(p.refreshtext||p.refreshtitle)+"</a></li>").click(function(){if(!Z(this).hasClass(n.disabled)){Z.jgrid.isFunction(p.beforeRefresh)&&p.beforeRefresh.call(a),a.p.search=!1,a.p.resetsearch=!0;try{if("currentfilter"!==p.refreshstate){var e=a.p.id;a.p.postData.filters="";try{Z("#fbox_"+Z.jgrid.jqID(e)).jqFilter("resetFilter")}catch(e){}Z.jgrid.isFunction(a.clearToolbar)&&a.clearToolbar.call(a,!1)}}catch(e){}switch(p.refreshstate){case"firstpage":Z(a).trigger("reloadGrid",[{page:1}]);break;case"current":case"currentfilter":Z(a).trigger("reloadGrid",[{current:!0}])}Z.jgrid.isFunction(p.afterRefresh)&&p.afterRefresh.call(a),Z(i).hide()}return!1}),Z(i).append(t)),Z(i).hide(),Z("body").append(i),Z("#"+s).addClass("ui-menu "+o.menu_widget),Z("#"+s+" > li > a").hover(function(){Z(this).addClass(n.hover)},function(){Z(this).removeClass(n.hover)}),Z(".dropdownmenu",l+"_"+p.position).on("click",function(e){var t=Z(this).offset(),i=t.left,t=parseInt(t.top),a=Z(this).val();Z("#"+a).show().css({top:t-(Z("#"+a).height()+35)+"px",left:i+"px"}),e.stopPropagation()}),Z("body").on("click",function(e){Z(e.target).hasClass("dropdownmenu")||Z("#"+s).hide()})})},GridToForm:function(a,d){return this.each(function(){var e,t=this;if(t.grid){var i=Z(t).jqGrid("getRowData",a);if(i)for(e in i)i.hasOwnProperty(e)&&(Z("[name="+Z.jgrid.jqID(e)+"]",d).is("input:radio")||Z("[name="+Z.jgrid.jqID(e)+"]",d).is("input:checkbox")?Z("[name="+Z.jgrid.jqID(e)+"]",d).each(function(){Z(this).val()==i[e]?Z(this)[t.p.useProp?"prop":"attr"]("checked",!0):Z(this)[t.p.useProp?"prop":"attr"]("checked",!1)}):Z("[name="+Z.jgrid.jqID(e)+"]",d).val(i[e]))}})},FormToGrid:function(t,a,d,r){return this.each(function(){var e,i;this.grid&&(d=d||"set",r=r||"first",e=Z(a).serializeArray(),i={},Z.each(e,function(e,t){i[t.name]=t.value}),"add"===d?Z(this).jqGrid("addRowData",t,i,r):"set"===d&&Z(this).jqGrid("setRowData",t,i))})}})});js/minified/grid.utils.js000064400000007770151676727230011421 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)}(function(a){"use strict";a.extend(a.jgrid,{isJSON:function(e){"string"!=typeof e&&(e=JSON.stringify(e));try{return JSON.parse(e),!0}catch(e){return!1}},stringify:function(e){return JSON.stringify(e,function(e,n){return"function"==typeof n?n.toString():n})},parseFunc:function(e){return JSON.parse(e,function(e,n){var t;return"string"==typeof n&&-1!==n.indexOf("function")&&((t=n.split(" "))[0]=a.jgrid.trim(t[0].toLowerCase()),0===t[0].indexOf("function"))&&"}"===n.trim().slice(-1)?a.jgrid.runCode(n):n})},encode:function(e){return String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")},jsonToXML:function(e,n){var d=a.extend({xmlDecl:'<?xml version="1.0" encoding="UTF-8" ?>\n',attr_prefix:"-",encode:!0},n||{}),l=this,u=function(e,n){return"#text"===e?d.encode?l.encode(n):n:"function"==typeof n?"<"+e+"><![CDATA["+n+"]]></"+e+">\n":""===n?"<"+e+">__EMPTY_STRING_</"+e+">\n":"<"+e+">"+(d.encode?l.encode(n):n)+"</"+e+">\n"},f=function(e,n){for(var t=[],r=0;r<n.length;r++){var o=n[r];void 0===o||null==o?t[t.length]="<"+e+" />":"object"==typeof o&&o.constructor==Array?t[t.length]=f(e,o):t[t.length]=("object"==typeof o?s:u)(e,o)}return t.length||(t[0]="<"+e+">__EMPTY_ARRAY_</"+e+">\n"),t.join("")},s=function(e,n){var t,r,o=[],i=[];for(t in n)n.hasOwnProperty(t)&&(r=n[t],t.charAt(0)!==d.attr_prefix?null==r?o[o.length]="<"+t+" />":"object"==typeof r&&r.constructor===Array?o[o.length]=f(t,r):o[o.length]=("object"==typeof r?s:u)(t,r):i[i.length]=" "+t.substring(1)+'="'+(d.encode?l.encode(r):r)+'"');var c=i.join(""),a=o.join("");return a=null!=e?0<o.length?a.match(/\n/)?"<"+e+c+">\n"+a+"</"+e+">\n":"<"+e+c+">"+a+"</"+e+">\n":"<"+e+c+" />\n":a},n=s(null,e);return d.xmlDecl+n},xmlToJSON:function(e,n){var d=a.extend({force_array:[],attr_prefix:"-"},n||{});if(e){var o={};if(d.force_array)for(var t=0;t<d.force_array.length;t++)o[d.force_array[t]]=1;(e="string"==typeof e?a.parseXML(e):e).documentElement&&(e=e.documentElement);var r,l=function(e,n,t,r){if("string"==typeof r)if(-1!==r.indexOf("function"))r=a.jgrid.runCode(r);else switch(r){case"__EMPTY_ARRAY_":r=[];break;case"__EMPTY_STRING_":r="";break;case"false":r=!1;break;case"true":r=!0}o[n]?(1===t&&(e[n]=[]),e[n][e[n].length]=r):1===t?e[n]=r:2===t?e[n]=[e[n],r]:e[n][e[n].length]=r},u=function(e){if(7!==e.nodeType){if(3===e.nodeType||4===e.nodeType)return null==e.nodeValue.match(/[^\x00-\x20]/)?void 0:e.nodeValue;var n,t,r,o={};if(e.attributes&&e.attributes.length)for(n={},c=0;c<e.attributes.length;c++)"string"==typeof(t=e.attributes[c].nodeName)&&(r=e.attributes[c].nodeValue)&&(void 0===o[t=d.attr_prefix+t]&&(o[t]=0),o[t]++,l(n,t,o[t],r));if(e.childNodes&&e.childNodes.length){for(var i=n?!1:!0,c=0;c<e.childNodes.length&&i;c++){var a=e.childNodes[c].nodeType;3!==a&&4!==a&&(i=!1)}if(i)for(n=n||"",c=0;c<e.childNodes.length;c++)n+=e.childNodes[c].nodeValue;else for(n=n||{},c=0;c<e.childNodes.length;c++)"string"==typeof(t=e.childNodes[c].nodeName)&&(r=u(e.childNodes[c]))&&(void 0===o[t]&&(o[t]=0),o[t]++,l(n,t,o[t],r))}return n}},n=u(e);return o[e.nodeName]&&(n=[n]),11!==e.nodeType&&((r={})[e.nodeName]=n,n=r),n}},saveAs:function(e,n,t){t=a.extend(!0,{type:"plain/text;charset=utf-8"},t||{});var r,o,i,c=[];n=null==n||""===n?"jqGridFile.txt":n,Array.isArray(e)?c=e:c[0]=e;try{r=new File(c,n,t)}catch(e){r=new Blob(c,t)}window.navigator&&window.navigator.msSaveOrOpenBlob?window.navigator.msSaveOrOpenBlob(r,n):(o=URL.createObjectURL(r),(i=document.createElement("a")).href=o,i.download=n,document.body.appendChild(i),i.click(),setTimeout(function(){document.body.removeChild(i),window.URL.revokeObjectURL(o)},0))},csvToArray:function(e,n){void 0===n&&(n=",");for(var t,r,o=[],i=[],c={},a=0,d=0,l=new RegExp("(\\"+n+'|\\r?\\n|\\r|^)(?:"([^"]*(?:""[^"]*)*)"|([^"\\'+n+"\\r\\n]*))","gi");t=l.exec(e);){var u=t[1];u.length&&u!==n&&(d++,c={},a=0),u=t[2]?t[2].replace(new RegExp('""',"g"),'"'):t[3],0===d?(o.push(u),r=o.length):(c[o[a]]=u,a===r-1?i.push(c):a++)}return i}})});js/minified/grid.common.js000064400000046701151676727230011546 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","./grid.base","./jqModal","./jqDnR"],e):e(jQuery)}(function(y){"use strict";y.extend(y.jgrid,{showModal:function(e){e.w.show()},closeModal:function(e){e.w.hide().attr("aria-hidden","true"),e.o&&e.o.remove()},hideModal:function(e,t){var i,a,o=!(!(t=y.extend({jqm:!0,gb:"",removemodal:!1,formprop:!1,form:""},t||{})).gb||"string"!=typeof t.gb||"#gbox_"!==t.gb.slice(0,6))&&y("#"+t.gb.slice(6))[0];if(t.onClose){var r=o?t.onClose.call(o,e):t.onClose(e);if("boolean"==typeof r&&!r)return}if(t.formprop&&o&&t.form&&("edit"===t.form?(i="#"+y.jgrid.jqID("FrmGrid_"+t.gb.slice(6)),a="formProp"):"view"===t.form&&(i="#"+y.jgrid.jqID("ViewGrid_"+t.gb.slice(6)),a="viewProp"),y(o).data(a,{top:y.jgrid.floatNum(y(e).css("top")),left:y.jgrid.floatNum(y(e).css("left")),width:y.jgrid.floatNum(y(e)[0].style.width),height:y.jgrid.floatNum(y(e)[0].style.height),dataheight:y(i).height(),datawidth:y(i).width()})),y.fn.jqm&&!0===t.jqm)y(e).attr("aria-hidden","true").jqmHide();else{if(""!==t.gb)try{y(t.gb).find(".jqgrid-overlay").first().hide()}catch(e){}try{y(".jqgrid-overlay-modal").hide()}catch(e){}y(e).hide().attr("aria-hidden","true")}t.removemodal&&y(e).remove()},findPos:function(e){e=y(e).offset();return[e.left,e.top]},createModal:function(i,e,a,t,o,r,l){a=y.extend(!0,{},y.jgrid.jqModal||{},a);var n=this,d="rtl"===y(a.gbox).attr("dir"),s=y.jgrid.styleUI[a.styleUI||"jQueryUI"].modal,u=y.jgrid.styleUI[a.styleUI||"jQueryUI"].common,c=document.createElement("div"),m=(l=y.extend({},l||{}),c.className="ui-jqdialog "+s.modal,c.id=i.themodal,document.createElement("div")),f=(m.className="ui-jqdialog-titlebar "+s.header,m.id=i.modalhead,y(m).append("<span class='ui-jqdialog-title "+s.title+"'>"+a.caption+"</span>"),y("<a class='ui-jqdialog-titlebar-close "+u.cornerall+"' aria-label='Close'></a>").hover(function(){f.addClass(u.hover)},function(){f.removeClass(u.hover)}).append("<span class='"+u.icon_base+" "+s.icon_close+"'></span>")),g=(y(m).append(f),d?(c.dir="rtl",y(".ui-jqdialog-title",m).css("float","right"),y(".ui-jqdialog-titlebar-close",m).css("left","0.3em")):(c.dir="ltr",y(".ui-jqdialog-title",m).css("float","left"),y(".ui-jqdialog-titlebar-close",m).css("right","0.3em")),document.createElement("div")),e=(y(g).addClass("ui-jqdialog-content "+s.content).attr("id",i.modalcontent),y(g).append(e),c.appendChild(g),y(c).prepend(m),!0===r?y("body").append(c):"string"==typeof r?y(r).append(c):y(c).insertBefore(t),y(c).css(l),void 0===a.jqModal&&(a.jqModal=!0),{});if(y.fn.jqm&&!0===a.jqModal?(0===a.left&&0===a.top&&a.overlay&&(g=[],g=y.jgrid.findPos(o),a.left=g[0]+4,a.top=g[1]+4,d)&&!r&&(a.left=y(a.gbox).outerWidth()-(isNaN(a.width)?300:parseInt(a.width,10))),e.top=a.top+"px",e.left=a.left+"px"):0===a.left&&0===a.top||(e.left=a.left+"px",e.top=a.top+"px"),y("a.ui-jqdialog-titlebar-close",m).click(function(){var e=y("#"+y.jgrid.jqID(i.themodal)).data("onClose")||a.onClose,t=y("#"+y.jgrid.jqID(i.themodal)).data("gbox")||a.gbox;return n.hideModal("#"+y.jgrid.jqID(i.themodal),{gb:t,jqm:a.jqModal,onClose:e,removemodal:a.removemodal||!1,formprop:!a.recreateForm||!1,form:a.form||""}),!1}),0!==a.width&&a.width||(a.width=300),0!==a.height&&a.height||(a.height=200),a.zIndex||(l=y(t).parents("*[role=dialog]").first().css("z-index"),a.zIndex=l?parseInt(l,10)+2:950),y(c).css(y.extend({width:isNaN(a.width)?"auto":a.width+"px",height:isNaN(a.height)?"auto":a.height+"px",zIndex:a.zIndex,overflow:"hidden"},e)).attr({tabIndex:"-1",role:"dialog","aria-labelledby":i.modalhead,"aria-hidden":"true"}),void 0===a.drag&&(a.drag=!0),void 0===a.resize&&(a.resize=!0),a.drag)if(y(m).css("cursor","move"),y.fn.tinyDraggable)y(c).tinyDraggable({handle:"#"+y.jgrid.jqID(m.id)});else try{y(c).draggable({handle:y("#"+y.jgrid.jqID(m.id))})}catch(e){}if(a.resize)if(y.fn.jqResize)y(c).append("<div class='jqResize "+s.resizable+" "+u.icon_base+" "+s.icon_resizable+"'></div>"),y("#"+y.jgrid.jqID(i.themodal)).jqResize(".jqResize",!!i.scrollelm&&"#"+y.jgrid.jqID(i.scrollelm));else try{y(c).resizable({handles:"se, sw",alsoResize:!!i.scrollelm&&"#"+y.jgrid.jqID(i.scrollelm)})}catch(e){}!0===a.closeOnEscape&&y(c).keydown(function(e){27===e.which&&(e=y("#"+y.jgrid.jqID(i.themodal)).data("onClose")||a.onClose,n.hideModal("#"+y.jgrid.jqID(i.themodal),{gb:a.gbox,jqm:a.jqModal,onClose:e,removemodal:a.removemodal||!1,formprop:!a.recreateForm||!1,form:a.form||""}))})},viewModal:function(e,t){var i="";if((t=y.extend({toTop:!0,overlay:10,modal:!1,overlayClass:"ui-widget-overlay",onShow:y.jgrid.showModal,onHide:y.jgrid.closeModal,gbox:"",jqm:!0,jqM:!0},t||{})).gbox){var a=y("#"+t.gbox.substring(6))[0];try{i=y(a).jqGrid("getStyleUI",a.p.styleUI+".common","overlay",!1,"jqgrid-overlay-modal"),t.overlayClass=y(a).jqGrid("getStyleUI",a.p.styleUI+".common","overlay",!0)}catch(e){}}if(void 0===t.focusField&&(t.focusField=0),"number"==typeof t.focusField&&0<=t.focusField?t.focusField=parseInt(t.focusField,10):"boolean"!=typeof t.focusField||t.focusField?t.focusField=0:t.focusField=!1,y.fn.jqm&&!0===t.jqm)(t.jqM?y(e).attr("aria-hidden","false").jqm(t):y(e).attr("aria-hidden","false")).jqmShow();else if(""!==t.gbox&&(a=parseInt(y(e).css("z-index"))-1,t.modal?(y(".jqgrid-overlay-modal")[0]||y("body").prepend("<div "+i+"></div>"),y(".jqgrid-overlay-modal").css("z-index",a).show()):(y(t.gbox).find(".jqgrid-overlay").first().css("z-index",a).show(),y(e).data("gbox",t.gbox))),y(e).show().attr("aria-hidden","false"),0<=t.focusField)try{y(":input:visible",e)[t.focusField].focus()}catch(e){}},info_dialog:function(e,t,i,a){var o,r={width:350,height:"auto",dataheight:"auto",drag:!0,resize:!1,left:window.innerWidth/2-145,top:window.innerHeight/2-150,zIndex:1e3,jqModal:!0,modal:!1,closeOnEscape:!0,align:"center",buttonalign:"center",buttons:[],overlay:10,overlayClass:""},l=(y.extend(!0,r,y.jgrid.jqModal||{},{caption:"<b>"+e+"</b>"},a||{}),r.jqModal),n=this,e=y.jgrid.styleUI[r.styleUI||y.jgrid.defaults.styleUI||"jQueryUI"].modal,d=y.jgrid.styleUI[r.styleUI||y.jgrid.defaults.styleUI||"jQueryUI"].common,s=(r.overlayClass||(r.overlayClass=d.overlay),y.fn.jqm&&!l&&(l=!1),"");if(0<r.buttons.length)for(o=0;o<r.buttons.length;o++)void 0===r.buttons[o].id&&(r.buttons[o].id="info_button_"+o),s+="<a id='"+r.buttons[o].id+"' class='fm-button "+d.button+"'>"+r.buttons[o].text+"</a>";var a=isNaN(r.dataheight)?r.dataheight:r.dataheight+"px",u="text-align:"+r.align+";",c="<div id='info_id'>",c=(c+="<div id='infocnt' class='"+e.body+"' style='margin:0px;padding-bottom:1em;width:100%;overflow:auto;position:relative;height:"+a+";"+u+"'>"+t+"</div>")+(i?"<div class='"+e.footer+"' style='text-align:"+r.buttonalign+";padding-bottom:0.8em;padding-top:0.5em;background-image: none;border-width: 1px 0 0 0;'><a id='closedialog' class='fm-button "+d.button+"'>"+i+"</a>"+s+"</div>":""!==s?"<div class='"+e.footer+"' style='text-align:"+r.buttonalign+";padding-bottom:0.8em;padding-top:0.5em;background-image: none;border-width: 1px 0 0 0;'>"+s+"</div>":"")+"</div>";try{"false"===y("#info_dialog").attr("aria-hidden")&&y.jgrid.hideModal("#info_dialog",{jqm:l}),y("#info_dialog").remove()}catch(e){}a=y(".ui-jqgrid").css("font-size")||"11px";y.jgrid.createModal({themodal:"info_dialog",modalhead:"info_head",modalcontent:"info_content",scrollelm:"infocnt"},c,r,"","",!0,{"font-size":a}),s&&y.each(r.buttons,function(e){y("#"+y.jgrid.jqID(this.id),"#info_id").on("click",function(){return r.buttons[e].onClick.call(y("#info_dialog")),!1})}),y("#closedialog","#info_id").on("click",function(){return n.hideModal("#info_dialog",{jqm:l,onClose:y("#info_dialog").data("onClose")||r.onClose,gb:y("#info_dialog").data("gbox")||r.gbox}),!1}),y(".fm-button","#info_dialog").hover(function(){y(this).addClass(d.hover)},function(){y(this).removeClass(d.hover)}),y.jgrid.isFunction(r.beforeOpen)&&r.beforeOpen(),y.jgrid.viewModal("#info_dialog",{onHide:function(e){e.w.hide().remove(),e.o&&e.o.remove()},modal:r.modal,jqm:l,overlay:r.overlay,overlayClass:r.overlayClass}),y.jgrid.isFunction(r.afterOpen)&&r.afterOpen();try{y("#info_dialog").focus()}catch(e){}},bindEv:function(e,i){y.jgrid.isFunction(i.dataInit)&&i.dataInit.call(this,e,i),i.dataEvents&&y.each(i.dataEvents,function(){var t=this.fn;void 0!==this.data?y(e).on(this.type,this.data,function(e){t.call(this,e,i)}):y(e).on(this.type,function(e){t.call(this,e,i)})})},createEl:function(e,t,i,a,o){var r="",c=this;function m(i,e,t){var a=(a=["dataInit","dataEvents","dataUrl","buildSelect","sopt","searchhidden","defaultValue","attr","custom_element","custom_value","oper"]).concat(["cacheUrlData","delimiter","separator"]);void 0!==t&&Array.isArray(t)&&y.merge(a,t),y.each(e,function(e,t){-1===y.inArray(e,a)&&y(i).attr(e,t)}),e.hasOwnProperty("id")||y(i).attr("id",y.jgrid.randId())}switch(e){case"textarea":r=document.createElement("textarea"),a?t.cols||y(r).css({width:"98%"}):t.cols||(t.cols=20),t.rows||(t.rows=2),("&nbsp;"===i||"&#160;"===i||1===i.length&&160===i.charCodeAt(0))&&(i=""),r.value=i,y(r).attr({role:"textbox",multiline:"true"}),m(r,t);break;case"checkbox":(r=document.createElement("input")).type="checkbox",t.value?(i===(s=t.value.split(":"))[0]&&(r.checked=!0,r.defaultChecked=!0),r.value=s[0],y(r).attr("offval",s[1])):((s=(i+"").toLowerCase()).search(/(false|f|0|no|n|off|undefined)/i)<0&&""!==s?(r.checked=!0,r.defaultChecked=!0,r.value=i):r.value="on",y(r).attr("offval","off")),y(r).attr("role","checkbox"),m(r,t,["value"]);break;case"select":(r=document.createElement("select")).setAttribute("role","listbox");var l,n,d=[];if(!0===t.multiple?(l=!0,r.multiple="multiple",y(r).attr("aria-multiselectable","true")):l=!1,null!=t.dataUrl){var s=null,f=t.postData||o.postData;try{s=t.rowId}catch(e){}c.p&&c.p.idPrefix&&(s=y.jgrid.stripPref(c.p.idPrefix,s)),y.ajax(y.extend({url:y.jgrid.isFunction(t.dataUrl)?t.dataUrl.call(c,s,i,String(t.name)):t.dataUrl,type:"GET",dataType:"html",data:y.jgrid.isFunction(f)?f.call(c,s,i,String(t.name)):f,context:{elem:r,options:t,vl:i},success:function(e){var t,i,a=[],o=this.elem,r=this.vl,l=y.extend({},this.options),n=!0===l.multiple,d=!0===l.cacheUrlData,s="",u=[],e=y.jgrid.isFunction(l.buildSelect)?l.buildSelect.call(c,e):e;(e="string"==typeof e?y(y.jgrid.trim(e)).html():e)&&(y(o).append(e),m(o,l,f?["postData"]:void 0),void 0===l.size&&(l.size=n?3:1),n?(e=void 0===l.multiseparator?",":l.multiseparator,a=r.split(e),a=y.map(a,function(e){return y.jgrid.trim(e)})):a[0]=y.jgrid.trim(r),y("option",o).each(function(e){t=y(this).text(),r=y(this).val(),d&&(s+=(0!==e?";":"")+r+":"+t),0===e&&o.multiple&&(this.selected=!1),y(this).attr("role","option"),(-1<y.inArray(y.jgrid.trim(t),a)||-1<y.inArray(y.jgrid.trim(r),a))&&(this.selected="selected",u.push(r))}),l.hasOwnProperty("checkUpdate")&&l.checkUpdate&&(c.p.savedData[l.name]=u.join(",")),d&&("edit"===l.oper?y(c).jqGrid("setColProp",l.name,{editoptions:{buildSelect:null,dataUrl:null,value:s}}):"search"===l.oper?y(c).jqGrid("setColProp",l.name,{searchoptions:{dataUrl:null,value:s}}):"filter"===l.oper&&y("#fbox_"+c.p.id)[0].p&&(n=y("#fbox_"+c.p.id)[0].p.columns,y.each(n,function(e){if(i=this.index||this.name,l.name===i)return this.searchoptions.dataUrl=null,this.searchoptions.value=s,!1}))),y(c).triggerHandler("jqGridAddEditAfterSelectUrlComplete",[o]))}},o||{}))}else if(t.value){void 0===t.size&&(t.size=l?3:1),l&&(d=i.split(","),d=y.map(d,function(e){return y.jgrid.trim(e)})),"function"==typeof t.value&&(t.value=t.value.call(c,i,t));var u,g,p,h,j,v,b=void 0===t.separator?":":t.separator,s=void 0===t.delimiter?";":t.delimiter;if("string"==typeof t.value)for(u=t.value.split(s),n=0;n<u.length;n++)2<(g=u[n].split(b)).length&&(g[1]=y.map(g,function(e,t){if(0<t)return e}).join(b)),(p=document.createElement("option")).setAttribute("role","option"),p.value=g[0],p.innerHTML=g[1],0==g[1].length&&p.setAttribute("aria-label","none"),r.appendChild(p),l||y.jgrid.trim(g[0])!==y.jgrid.trim(i)&&y.jgrid.trim(g[1])!==y.jgrid.trim(i)||(p.selected="selected"),l&&(-1<y.inArray(y.jgrid.trim(g[1]),d)||-1<y.inArray(y.jgrid.trim(g[0]),d))&&(p.selected="selected");else if("[object Array]"===Object.prototype.toString.call(t.value))for(h=t.value,n=0;n<h.length;n++)2===h[n].length&&(j=h[n][0],v=h[n][1],(p=document.createElement("option")).setAttribute("role","option"),p.value=j,0==(p.innerHTML=v).length&&p.setAttribute("aria-label","none"),r.appendChild(p),l||y.jgrid.trim(j)!==y.jgrid.trim(i)&&y.jgrid.trim(v)!==y.jgrid.trim(i)||(p.selected="selected"),l)&&(-1<y.inArray(y.jgrid.trim(v),d)||-1<y.inArray(y.jgrid.trim(j),d))&&(p.selected="selected");else if("object"==typeof t.value)for(j in h=t.value)h.hasOwnProperty(j)&&((p=document.createElement("option")).setAttribute("role","option"),p.value=j,p.innerHTML=h[j],0==h[j].length&&p.setAttribute("aria-label","none"),r.appendChild(p),l||y.jgrid.trim(j)!==y.jgrid.trim(i)&&y.jgrid.trim(h[j])!==y.jgrid.trim(i)||(p.selected="selected"),l)&&(-1<y.inArray(y.jgrid.trim(h[j]),d)||-1<y.inArray(y.jgrid.trim(j),d))&&(p.selected="selected");m(r,t,["value"])}else m(r,t);break;case"image":case"file":(r=document.createElement("input")).type=e,m(r,t);break;case"custom":r=document.createElement("span");try{if(!y.jgrid.isFunction(t.custom_element))throw"e1";var F=t.custom_element.call(c,i,t);if(!F)throw"e2";F=y(F).addClass("customelement").attr({id:t.id,name:t.name}),y(r).empty().append(F)}catch(e){s=y.jgrid.getRegional(c,"errors"),F=y.jgrid.getRegional(c,"edit");"e1"===e?y.jgrid.info_dialog(s.errcap,"function 'custom_element' "+F.msg.nodefined,F.bClose,{styleUI:c.p.styleUI}):"e2"===e?y.jgrid.info_dialog(s.errcap,"function 'custom_element' "+F.msg.novalue,F.bClose,{styleUI:c.p.styleUI}):y.jgrid.info_dialog(s.errcap,"string"==typeof e?e:e.message,F.bClose,{styleUI:c.p.styleUI})}break;default:s="button"===e?"button":"textbox";(r=document.createElement("input")).type=e,r.value=i,"button"!==e&&(a?t.size||y(r).css({width:"96%"}):t.size||(t.size=20)),y(r).attr("role",s),m(r,t)}return r},checkDate:function(e,t){var i={},a=-1!==(e=e.toLowerCase()).indexOf("/")?"/":-1!==e.indexOf("-")?"-":-1!==e.indexOf(".")?".":"/";if(e=e.split(a),3!==(t=t.split(a)).length)return!1;for(var o=-1,r=-1,l=-1,n=0;n<e.length;n++){var d=isNaN(t[n])?0:parseInt(t[n],10);i[e[n]]=d,-1!==(s=e[n]).indexOf("y")&&(o=n),-1!==s.indexOf("m")&&(l=n),-1!==s.indexOf("d")&&(r=n)}var s="y"===e[o]||"yyyy"===e[o]?4:"yy"===e[o]?2:-1;return-1!==o&&(a=i[e[o]].toString(),2===s&&1===a.length&&(s=1),a.length===s)&&(0!==i[e[o]]||"00"===t[o])&&-1!==l&&!(i[e[l]].toString().length<1||i[e[l]]<1||12<i[e[l]]||-1===r||i[e[r]].toString().length<1||i[e[r]]<1||31<i[e[r]]||2===i[e[l]]&&i[e[r]]>((a=i[e[o]])%4!=0||a%100==0&&a%400!=0?28:29)||i[e[r]]>[0,31,29,31,30,31,30,31,31,30,31,30,31][i[e[l]]])},isEmpty:function(e){return!(void 0!==e&&!e.match(/^\s+$/)&&""!==e)},checkTime:function(e){if(!y.jgrid.isEmpty(e)){if(!(e=e.match(/^(\d{1,2}):(\d{2})([apAP][Mm])?$/)))return!1;if(e[3]){if(e[1]<1||12<e[1])return!1}else if(23<e[1])return!1;if(59<e[2])return!1}return!0},checkValues:function(e,t,i,a){function o(e){var t,i;return!(2<=(e=e.toString()).length&&("-"===e[0]?(t=e[1],e[2]&&(i=e[2])):(t=e[0],e[1]&&(i=e[1])),"0"===t)&&"."!==i)&&"number"==typeof Number(e)&&isFinite(e)}var r,l,n,d,s,u=this,c=u.p.colModel,m=y.jgrid.getRegional(this,"edit.msg");if(void 0===i)if("string"==typeof t){for(l=0,s=c.length;l<s;l++)if(c[l].name===t){r=c[l].editrules,null!=c[t=l].formoptions&&(n=c[l].formoptions.label);break}}else 0<=t&&(r=c[t].editrules);else r=i,n=void 0===a?"_":a;if(r){if(n=n||(null!=u.p.colNames?u.p.colNames[t]:c[t].label),!0===r.required&&y.jgrid.isEmpty(e))return[!1,n+": "+m.required,""];i=!1!==r.required;if(!0===r.number&&!(!1==i&&y.jgrid.isEmpty(e)||o(e)))return[!1,n+": "+m.number,""];if(void 0!==r.minValue&&!isNaN(r.minValue)&&y.jgrid.floatNum(e)<y.jgrid.floatNum(r.minValue))return[!1,n+": "+m.minValue+" "+r.minValue,""];if(void 0!==r.maxValue&&!isNaN(r.maxValue)&&y.jgrid.floatNum(e)>y.jgrid.floatNum(r.maxValue))return[!1,n+": "+m.maxValue+" "+r.maxValue,""];if(!0===r.email&&!(!1==i&&y.jgrid.isEmpty(e)||/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(e)))return[!1,n+": "+m.email,""];if(!0===r.integer&&(!1!=i||!y.jgrid.isEmpty(e))){if(!o(e))return[!1,n+": "+m.integer,""];if(e%1!=0||-1!==e.indexOf("."))return[!1,n+": "+m.integer,""]}if(!0===r.date&&!(!1==i&&y.jgrid.isEmpty(e)||(c[t].formatoptions&&c[t].formatoptions.newformat?(d=c[t].formatoptions.newformat,(a=y.jgrid.getRegional(u,"formatter.date.masks"))&&a.hasOwnProperty(d)&&(d=a[d])):d=c[t].datefmt||"Y-m-d",y.jgrid.checkDate(d,e))))return[!1,n+": "+m.date+" - "+d,""];if(!0===r.time&&!(!1==i&&y.jgrid.isEmpty(e)||y.jgrid.checkTime(e)))return[!1,n+": "+m.date+" - hh:mm (am/pm)",""];if(!0===r.url&&!(!1==i&&y.jgrid.isEmpty(e)||/^(((https?)|(ftp)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&#;`~=%!]*)(\.\w{2,})?)*\/?)/i.test(e)))return[!1,n+": "+m.url,""];if(!0===r.custom)if(!1!=i||!y.jgrid.isEmpty(e))return y.jgrid.isFunction(r.custom_func)?(a=r.custom_func.call(u,e,n,t),Array.isArray(a)?a:[!1,m.customarray,""]):[!1,m.customfcheck,""]}return[!0,"",""]},validateForm:function(e){for(var t,i=!0,a=0;a<e.elements.length;a++)if(("INPUT"===(t=e.elements[a]).nodeName||"TEXTAREA"===t.nodeName||"SELECT"===t.nodeName)&&(void 0!==t.willValidate?("INPUT"===t.nodeName&&t.type!==t.getAttribute("type")&&t.setCustomValidity(y.jgrid.LegacyValidation(t)?"":"error"),t.reportValidity()):(t.validity=t.validity||{},t.validity.valid=y.jgrid.LegacyValidation(t)),!t.validity.valid)){i=!1;break}return i},LegacyValidation:function(e){var t=!0,i=e.value,a=e.getAttribute("type"),a="checkbox"===a||"radio"===a,o=e.getAttribute("required"),r=e.getAttribute("minlength"),l=e.getAttribute("maxlength"),n=e.getAttribute("pattern");return e.disabled||(t=(t=t&&(!o||a&&e.checked||!a&&""!==i))&&(a||(!r||i.length>=r)&&(!l||i.length<=l)))&&n&&(t=(n=new RegExp(n)).test(i)),t},buildButtons:function(e,i,a){var o;return y.each(e,function(e,t){t.id||(t.id=y.jgrid.randId()),t.position||(t.position="last"),t.side||(t.side="left"),o=t.icon?" fm-button-icon-"+t.side+"'><span class='"+a.icon_base+" "+t.icon+"'></span>":"'>",o="<a  data-index='"+e+"' id='"+t.id+"' class='fm-button "+a.button+o+t.text+"</a>","last"===t.position?i+=o:i=o+i}),i},setSelNavIndex:function(i,a){var e=y(".ui-pg-button",i.p.pager);y.each(e,function(e,t){if(a===t)return i.p.navIndex=e,!1}),y(a).attr("tabindex","0")},getFirstVisibleCol:function(e){for(var t=-1,i=0;i<e.p.colModel.length;i++)if(!0!==e.p.colModel[i].hidden){t=i;break}return t},getLastVisibleCol:function(e){for(var t=-1,i=e.p.colModel.length-1;0<=i;i--)if(!0!==e.p.colModel[i].hidden){t=i;break}return t},postForm:function(e,t,i){i=i||"post";var a,o,r=document.createElement("form");for(a in r.setAttribute("method",i),r.setAttribute("action",e),t)t.hasOwnProperty(a)&&((o=document.createElement("input")).setAttribute("type","hidden"),o.setAttribute("name",a),o.setAttribute("value",t[a]),r.appendChild(o));document.body.appendChild(r),r.submit(),r.parentNode.removeChild(r)}})});js/minified/grid.inlinedit.js000064400000041450151676727230012231 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","./grid.base","./grid.common"],e):e(jQuery)}(function(C){"use strict";C.jgrid.inlineEdit=C.jgrid.inlineEdit||{},C.jgrid.extend({editRow:function(f,e,i,t,r,a,d,n,o){var p={},s=C.makeArray(arguments).slice(1),g=this[0];return"object"===C.jgrid.type(s[0])?p=s[0]:(void 0!==e&&(p.keys=e),C.jgrid.isFunction(i)&&(p.oneditfunc=i),C.jgrid.isFunction(t)&&(p.successfunc=t),void 0!==r&&(p.url=r),void 0!==a&&(p.extraparam=a),C.jgrid.isFunction(d)&&(p.aftersavefunc=d),C.jgrid.isFunction(n)&&(p.errorfunc=n),C.jgrid.isFunction(o)&&(p.afterrestorefunc=o)),p=C.extend(!0,{keys:!1,keyevent:"keydown",onEnter:null,onEscape:null,oneditfunc:null,successfunc:null,url:null,extraparam:{},aftersavefunc:null,errorfunc:null,afterrestorefunc:null,restoreAfterError:!0,mtype:"POST",focusField:!0,saveui:"enable",savetext:C.jgrid.getRegional(g,"defaults.savetext")},C.jgrid.inlineEdit,p),this.each(function(){var a,d,i,n,e,o=0,s=null,l={},c=C(this).jqGrid("getStyleUI",g.p.styleUI+".inlinedit","inputClass",!0),u=C(this).jqGrid("getStyleUI",g.p.styleUI+".inlinedit","selectClass",!0);g.grid&&!1!==(i=C(g).jqGrid("getInd",f,!0))&&(g.p.beforeAction=!0,(e=void 0===(e=C.jgrid.isFunction(p.beforeEditRow)?p.beforeEditRow.call(g,p,f):void 0)?!0:e)?"0"!==(C(i).attr("editable")||"0")||C(i).hasClass("not-editable-row")||(n=g.p.colModel,C(i).children('td[role="gridcell"]').each(function(i){a=n[i].name;var e,t,r=!0===g.p.treeGrid&&a===g.p.ExpandColumn;if(r)d=C(this).find("span").first().html();else try{d=C.unformat.call(g,this,{rowId:f,colModel:n[i]},i)}catch(e){d=n[i].edittype&&"textarea"===n[i].edittype?C(this).text():C(this).html()}"cb"!==a&&"subgrid"!==a&&"rn"!==a&&"sc"!==a&&(g.p.autoencode&&(d=C.jgrid.htmlDecode(d)),!0===n[i].editable)&&(l[a]=d,null===s&&(s=i),(r?C(this).find("span").first():C(this)).html(""),e=C.extend({},n[i].editoptions||{},{id:f+"_"+a,name:a,rowId:f,oper:"edit",module:"inline"}),n[i].edittype||(n[i].edittype="text"),("&nbsp;"===d||"&#160;"===d||null!==d&&1===d.length&&160===d.charCodeAt(0))&&(d=""),t=C.jgrid.createEl.call(g,n[i].edittype,e,d,!0,C.extend({},C.jgrid.ajaxOptions,g.p.ajaxSelectOptions||{})),C(t).addClass("editable inline-edit-cell"),-1<C.inArray(n[i].edittype,["text","textarea","password"])?C(t).addClass(c):"select"===n[i].edittype&&C(t).addClass(u),(r?C(this).find("span").first():C(this)).append(t),C.jgrid.bindEv.call(g,t,e),"select"===n[i].edittype&&void 0!==n[i].editoptions&&!0===n[i].editoptions.multiple&&void 0===n[i].editoptions.dataUrl&&C.jgrid.msie()&&C(t).width(C(t).width()),o++)}),0<o&&(l.id=f,g.p.savedRow.push(l),C(i).attr("editable","1"),p.focusField&&("number"==typeof p.focusField&&parseInt(p.focusField,10)<=n.length&&(s=p.focusField),setTimeout(function(){var e=C("td",i).eq(s).find(":input:visible").not(":disabled");0<e.length&&e.focus()},0)),!0===p.keys&&C(i).on(p.keyevent,function(e){if(27===e.keyCode){if(C.jgrid.isFunction(p.onEscape))return p.onEscape.call(g,f,p,e),!0;if(C(g).jqGrid("restoreRow",f,p),g.p.inlineNav)try{C(g).jqGrid("showAddEditButtons")}catch(e){}return!1}if(13===e.keyCode){if(e.preventDefault(),C.jgrid.isFunction(p.onEnter))return p.onEnter.call(g,f,p,e),!0;if("TEXTAREA"===e.target.tagName)return!0;if(C(g).jqGrid("saveRow",f,p)&&g.p.inlineNav)try{C(g).jqGrid("showAddEditButtons")}catch(e){}return!1}}),C(g).triggerHandler("jqGridInlineEditRow",[f,p]),C.jgrid.isFunction(p.oneditfunc))&&p.oneditfunc.call(g,f)):g.p.beforeAction=!1)})},saveRow:function(n,e,i,t,r,a,d){var o,s,l,c,u=C.makeArray(arguments).slice(1),f={},p=this[0],g=("object"===C.jgrid.type(u[0])?f=u[0]:(C.jgrid.isFunction(e)&&(f.successfunc=e),void 0!==i&&(f.url=i),void 0!==t&&(f.extraparam=t),C.jgrid.isFunction(r)&&(f.aftersavefunc=r),C.jgrid.isFunction(a)&&(f.errorfunc=a),C.jgrid.isFunction(d)&&(f.afterrestorefunc=d)),f=C.extend(!0,{successfunc:null,url:null,extraparam:{},aftersavefunc:null,errorfunc:null,afterrestorefunc:null,restoreAfterError:!0,mtype:"POST",saveui:"enable",savetext:C.jgrid.getRegional(p,"defaults.savetext")},C.jgrid.inlineEdit,f),!1),j={},v={},w={},m=!1,h=C.jgrid.trim(C(p).jqGrid("getStyleUI",p.p.styleUI+".common","error",!0));if(!p.grid)return g;if(!1===(c=C(p).jqGrid("getInd",n,!0)))return g;var R,y,q,x,b,I=C.jgrid.getRegional(p,"errors"),G=C.jgrid.getRegional(p,"edit"),u=C.jgrid.isFunction(f.beforeSaveRow)?f.beforeSaveRow.call(p,f,n):void 0;if(u=void 0===u?!0:u){if(e=C(c).attr("editable"),f.url=f.url||p.p.editurl,"1"===e){if(C(c).children('td[role="gridcell"]').each(function(e){if(R=p.p.colModel[e],o=R.name,q="","cb"!==o&&"subgrid"!==o&&!0===R.editable&&"rn"!==o&&"sc"!==o&&!C(this).hasClass("not-editable-cell")){switch(R.edittype){case"checkbox":var i=["Yes","No"];R.editoptions&&R.editoptions.value&&(i=R.editoptions.value.split(":")),j[o]=C("input",this).is(":checked")?i[0]:i[1],q=C("input",this);break;case"text":case"password":case"textarea":case"button":j[o]=C("input, textarea",this).val(),q=C("input, textarea",this);break;case"select":var t;R.editoptions.multiple?(i=C("select",this),t=[],j[o]=C(i).val(),j[o]?j[o]=j[o].join(","):j[o]="",C("select option:selected",this).each(function(e,i){t[e]=C(i).text()}),v[o]=t.join(",")):(j[o]=C("select option:selected",this).val(),v[o]=C("select option:selected",this).text()),R.formatter&&(v={}),q=C("select",this);break;case"custom":try{if(!R.editoptions||!C.jgrid.isFunction(R.editoptions.custom_value))throw"e1";if(j[o]=R.editoptions.custom_value.call(p,C(".customelement",this),"get"),void 0===j[o])throw"e2"}catch(e){"e1"===e?C.jgrid.info_dialog(I.errcap,"function 'custom_value' "+G.msg.nodefined,G.bClose,{styleUI:p.p.styleUI}):C.jgrid.info_dialog(I.errcap,e.message,G.bClose,{styleUI:p.p.styleUI})}}if(!1===(l=C.jgrid.checkValues.call(p,j[o],e))[0])return y=e,!1;p.p.autoencode&&(j[o]=C.jgrid.htmlEncode(j[o])),"clientArray"!==f.url&&R.editoptions&&!0===R.editoptions.NullIfEmpty&&""===j[o]&&(w[o]="null",m=!0)}}),!1===l[0]){try{C.jgrid.isFunction(p.p.validationCell)?p.p.validationCell.call(p,q,l[1],c.rowIndex,y):(x=C(p).jqGrid("getGridRowById",n),b=C.jgrid.findPos(x),C.jgrid.info_dialog(I.errcap,l[1],G.bClose,{left:b[0],top:b[1]+C(x).outerHeight(),styleUI:p.p.styleUI,onClose:function(){0<=y&&C("#"+n+"_"+p.p.colModel[y].name).focus()}}))}catch(e){alert(l[1])}return g}var i=p.p.prmNames,_=n,t=!1===p.p.keyName?i.id:p.p.keyName;if(C.isEmptyObject(j)||(j[i.oper]=i.editoper,void 0===j[t]||""===j[t]?j[t]=n:c.id!==p.p.idPrefix+j[t]&&(r=C.jgrid.stripPref(p.p.idPrefix,n),void 0!==p.p._index[r]&&(p.p._index[j[t]]=p.p._index[r],delete p.p._index[r]),n=p.p.idPrefix+j[t],C(c).attr("id",n),p.p.selrow===_&&(p.p.selrow=n),Array.isArray(p.p.selarrrow)&&0<=(a=C.inArray(_,p.p.selarrrow))&&(p.p.selarrrow[a]=n),p.p.multiselect)&&(d="jqg_"+p.p.id+"_"+n,C("input.cbox",c).attr("id",d).attr("name",d)),void 0===p.p.inlineData&&(p.p.inlineData={}),j=C.extend({},j,p.p.inlineData,f.extraparam)),"clientArray"===f.url){j=C.extend({},j,v),p.p.autoencode&&C.each(j,function(e,i){j[e]=C.jgrid.htmlDecode(i)});var A,j=C.jgrid.isFunction(p.p.serializeRowData)?p.p.serializeRowData.call(p,j):j,u=C(p).jqGrid("setRowData",n,j);for(C(c).attr("editable","0"),A=0;A<p.p.savedRow.length;A++)if(String(p.p.savedRow[A].id)===String(_)){s=A;break}C(p).triggerHandler("jqGridInlineAfterSaveRow",[n,u,j,f]),C.jgrid.isFunction(f.aftersavefunc)&&f.aftersavefunc.call(p,n,u,j,f),0<=s&&p.p.savedRow.splice(s,1),g=!0,C(c).removeClass("jqgrid-new-row").off("keydown")}else"storage"===f.url?(j=C.extend({},j,v),p.p.autoencode&&C.each(j,function(e,i){j[e]=C.jgrid.htmlDecode(i)}),j=C.jgrid.isFunction(p.p.serializeRowData)?p.p.serializeRowData.call(p,j):j,C(c).hasClass("jqgrid-new-row")?C(p).jqGrid("addStorageRecord",j).then(function(e){if("complete"===e.type){var i,e=C(p).jqGrid("setRowData",n,j);for(C(c).attr("editable","0"),i=0;i<p.p.savedRow.length;i++)if(String(p.p.savedRow[i].id)===String(_)){s=i;break}C(p).triggerHandler("jqGridInlineAfterSaveRow",[n,e,j,f]),C.jgrid.isFunction(f.aftersavefunc)&&f.aftersavefunc.call(p,n,e,j,f),0<=s&&p.p.savedRow.splice(s,1),g=!0,C(c).removeClass("jqgrid-new-row").off("keydown"),!0===p.p.inlineNav&&C(p).jqGrid("showAddEditButtons")}}).catch(function(e){C.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")}):C(p).jqGrid("updateStorageRecord",j).then(function(e){if("complete"===e.type){var i,e=C(p).jqGrid("setRowData",n,j);for(C(c).attr("editable","0"),i=0;i<p.p.savedRow.length;i++)if(String(p.p.savedRow[i].id)===String(_)){s=i;break}C(p).triggerHandler("jqGridInlineAfterSaveRow",[n,e,j,f]),C.jgrid.isFunction(f.aftersavefunc)&&f.aftersavefunc.call(p,n,e,j,f),0<=s&&p.p.savedRow.splice(s,1),g=!0,C(c).off("keydown"),!0===p.p.inlineNav&&C(p).jqGrid("showAddEditButtons")}}).catch(function(e){C.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")})):(C(p).jqGrid("progressBar",{method:"show",loadtype:f.saveui,htmlcontent:f.savetext}),(w=C.extend({},j,w))[t]=C.jgrid.stripPref(p.p.idPrefix,w[t]),C.ajax(C.extend({url:f.url,data:C.jgrid.isFunction(p.p.serializeRowData)?p.p.serializeRowData.call(p,w):w,type:f.mtype,async:!1,success:function(e,i,t){if(C(p).jqGrid("progressBar",{method:"hide",loadtype:f.saveui,htmlcontent:f.savetext}),"success"===i){var r,a=!0,d=C(p).triggerHandler("jqGridInlineSuccessSaveRow",[t,n,f]);if((d=Array.isArray(d)?d:[!0,w])[0]&&C.jgrid.isFunction(f.successfunc)&&(d=f.successfunc.call(p,t)),Array.isArray(d)?(a=d[0],j=d[1]||j):a=d,!0===a){for(p.p.autoencode&&C.each(j,function(e,i){j[e]=C.jgrid.htmlDecode(i)}),m&&C.each(j,function(e){"null"===j[e]&&(j[e]="")}),j=C.extend({},j,v),C(p).jqGrid("setRowData",n,j),C(c).attr("editable","0"),r=0;r<p.p.savedRow.length;r++)if(String(p.p.savedRow[r].id)===String(n)){s=r;break}C(p).triggerHandler("jqGridInlineAfterSaveRow",[n,t,j,f]),C.jgrid.isFunction(f.aftersavefunc)&&f.aftersavefunc.call(p,n,t,j,f),0<=s&&p.p.savedRow.splice(s,1),g=!0,C(c).removeClass("jqgrid-new-row").off("keydown")}else C(p).triggerHandler("jqGridInlineErrorSaveRow",[n,t,i,null,f]),C.jgrid.isFunction(f.errorfunc)&&f.errorfunc.call(p,n,t,i,null),!0===f.restoreAfterError&&C(p).jqGrid("restoreRow",n,f)}},error:function(e,i,t){if(C("#lui_"+C.jgrid.jqID(p.p.id)).hide(),C(p).triggerHandler("jqGridInlineErrorSaveRow",[n,e,i,t,f]),C.jgrid.isFunction(f.errorfunc))f.errorfunc.call(p,n,e,i,t);else{i=e.responseText||e.statusText;try{C.jgrid.info_dialog(I.errcap,'<div class="'+h+'">'+i+"</div>",G.bClose,{buttonalign:"right",styleUI:p.p.styleUI})}catch(e){alert(i)}}!0===f.restoreAfterError&&C(p).jqGrid("restoreRow",n,f)}},C.jgrid.ajaxOptions,p.p.ajaxRowOptions||{})))}return g}},restoreRow:function(n,e){var i=C.makeArray(arguments).slice(1),o={};return"object"===C.jgrid.type(i[0])?o=i[0]:C.jgrid.isFunction(e)&&(o.afterrestorefunc=e),o=C.extend(!0,{},C.jgrid.inlineEdit,o),this.each(function(){var e,i,t=this,r=-1,a={};if(t.grid&&!1!==(e=C(t).jqGrid("getInd",n,!0))){var d=C.jgrid.isFunction(o.beforeCancelRow)?o.beforeCancelRow.call(t,o,n):void 0;if(d=void 0===d?!0:d){for(i=0;i<t.p.savedRow.length;i++)if(String(t.p.savedRow[i].id)===String(n)){r=i;break}if(0<=r){if(C.jgrid.isFunction(C.fn.datepicker))try{C("input.hasDatepicker","#"+C.jgrid.jqID(e.id)).datepicker("hide")}catch(e){}C.each(t.p.colModel,function(){t.p.savedRow[r].hasOwnProperty(this.name)&&(a[this.name]=t.p.savedRow[r][this.name])}),C(t).jqGrid("setRowData",n,a),C(e).attr("editable","0").off("keydown"),t.p.savedRow.splice(r,1),C("#"+C.jgrid.jqID(n),"#"+C.jgrid.jqID(t.p.id)).hasClass("jqgrid-new-row")&&setTimeout(function(){C(t).jqGrid("delRowData",n),C(t).jqGrid("showAddEditButtons")},0)}C(t).triggerHandler("jqGridInlineAfterRestoreRow",[n]),C.jgrid.isFunction(o.afterrestorefunc)&&o.afterrestorefunc.call(t,n)}}})},addRow:function(r){return r=C.extend(!0,{rowID:null,initdata:{},position:"first",useDefValues:!0,useFormatter:!1,addRowParams:{extraparam:{}}},r||{}),this.each(function(){var i,e,t;this.grid&&((i=this).p.beforeAction=!0,(e=void 0===(e=C.jgrid.isFunction(r.beforeAddRow)?r.beforeAddRow.call(i,r.addRowParams):void 0)?!0:e)?(r.rowID=C.jgrid.isFunction(r.rowID)?r.rowID.call(i,r):null!=r.rowID?r.rowID:C.jgrid.randId(),!0===r.useDefValues&&C(i.p.colModel).each(function(){var e;this.editoptions&&this.editoptions.defaultValue&&(e=this.editoptions.defaultValue,e=C.jgrid.isFunction(e)?e.call(i):e,r.initdata[this.name]=e)}),C(i).jqGrid("addRowData",r.rowID,r.initdata,r.position),r.rowID=i.p.idPrefix+r.rowID,C("#"+C.jgrid.jqID(r.rowID),"#"+C.jgrid.jqID(i.p.id)).addClass("jqgrid-new-row"),r.useFormatter?C("#"+C.jgrid.jqID(r.rowID)+" .ui-inline-edit","#"+C.jgrid.jqID(i.p.id)).click():(t=(e=i.p.prmNames).oper,r.addRowParams.extraparam[t]=e.addoper,C(i).jqGrid("editRow",r.rowID,r.addRowParams),C(i).jqGrid("setSelection",r.rowID))):i.p.beforeAction=!1)})},inlineNav:function(d,n){var o=this[0],s=C.jgrid.getRegional(o,"nav"),e=C.jgrid.styleUI[o.p.styleUI].inlinedit;return n=C.extend(!0,{edit:!0,editicon:e.icon_edit_nav,add:!0,addicon:e.icon_add_nav,save:!0,saveicon:e.icon_save_nav,cancel:!0,cancelicon:e.icon_cancel_nav,addParams:{addRowParams:{extraparam:{}}},editParams:{},restoreAfterSelect:!0,saveAfterSelect:!1},s,n||{}),this.each(function(){if(this.grid&&!this.p.inlineNav){var a=C.jgrid.jqID(o.p.id),i=C.jgrid.trim(C(o).jqGrid("getStyleUI",o.p.styleUI+".common","disabled",!0));if(o.p.navGrid||C(o).jqGrid("navGrid",d,{refresh:!1,edit:!1,add:!1,del:!1,search:!1,view:!1}),C(o).data("inlineNav")||C(o).data("inlineNav",n),o.p.force_regional&&(n=C.extend(n,s)),(o.p.inlineNav=!0)===n.addParams.useFormatter)for(var e,t=o.p.colModel,r=0;r<t.length;r++)if(t[r].formatter&&"actions"===t[r].formatter){t[r].formatoptions&&(e=C.extend({keys:!1,onEdit:null,onSuccess:null,afterSave:null,onError:null,afterRestore:null,extraparam:{},url:null},t[r].formatoptions),n.addParams.addRowParams={keys:e.keys,oneditfunc:e.onEdit,successfunc:e.onSuccess,url:e.url,extraparam:e.extraparam,aftersavefunc:e.afterSave,errorfunc:e.onError,afterrestorefunc:e.afterRestore});break}n.add&&C(o).jqGrid("navButtonAdd",d,{caption:n.addtext,title:n.addtitle,buttonicon:n.addicon,id:o.p.id+"_iladd",internal:!0,onClickButton:function(){void 0===o.p.beforeAction&&(o.p.beforeAction=!0),C(o).jqGrid("addRow",n.addParams),!n.addParams.useFormatter&&o.p.beforeAction&&(C("#"+a+"_ilsave").removeClass(i),C("#"+a+"_ilcancel").removeClass(i),C("#"+a+"_iladd").addClass(i),C("#"+a+"_iledit").addClass(i))}}),n.edit&&C(o).jqGrid("navButtonAdd",d,{caption:n.edittext,title:n.edittitle,buttonicon:n.editicon,id:o.p.id+"_iledit",internal:!0,onClickButton:function(){var e=C(o).jqGrid("getGridParam","selrow");e?(void 0===o.p.beforeAction&&(o.p.beforeAction=!0),C(o).jqGrid("editRow",e,n.editParams),o.p.beforeAction&&(C("#"+a+"_ilsave").removeClass(i),C("#"+a+"_ilcancel").removeClass(i),C("#"+a+"_iladd").addClass(i),C("#"+a+"_iledit").addClass(i))):(C.jgrid.viewModal("#alertmod_"+a,{gbox:"#gbox_"+a,jqm:!0}),C("#jqg_alrt").focus())}}),n.save&&(C(o).jqGrid("navButtonAdd",d,{caption:n.savetext||"",title:n.savetitle||"Save row",buttonicon:n.saveicon,id:o.p.id+"_ilsave",internal:!0,onClickButton:function(){var e,i,t,r=o.p.savedRow[0].id;r?(i=(e=o.p.prmNames).oper,t=n.editParams,C("#"+C.jgrid.jqID(r),"#"+a).hasClass("jqgrid-new-row")?(n.addParams.addRowParams.extraparam[i]=e.addoper,t=n.addParams.addRowParams):(n.editParams.extraparam||(n.editParams.extraparam={}),n.editParams.extraparam[i]=e.editoper),C(o).jqGrid("saveRow",r,t)&&C(o).jqGrid("showAddEditButtons")):(C.jgrid.viewModal("#alertmod_"+a,{gbox:"#gbox_"+a,jqm:!0}),C("#jqg_alrt").focus())}}),C("#"+a+"_ilsave").addClass(i)),n.cancel&&(C(o).jqGrid("navButtonAdd",d,{caption:n.canceltext||"",title:n.canceltitle||"Cancel row editing",buttonicon:n.cancelicon,id:o.p.id+"_ilcancel",internal:!0,onClickButton:function(){var e=o.p.savedRow[0].id,i=n.editParams;e?(C("#"+C.jgrid.jqID(e),"#"+a).hasClass("jqgrid-new-row")&&(i=n.addParams.addRowParams),C(o).jqGrid("restoreRow",e,i),C(o).jqGrid("showAddEditButtons")):(C.jgrid.viewModal("#alertmod",{gbox:"#gbox_"+a,jqm:!0}),C("#jqg_alrt").focus())}}),C("#"+a+"_ilcancel").addClass(i)),!0!==n.restoreAfterSelect&&!0!==n.saveAfterSelect||C(o).on("jqGridBeforeSelectRow.inlineNav",function(e,i){0<o.p.savedRow.length&&!0===o.p.inlineNav&&i!==o.p.selrow&&null!==o.p.selrow&&(i=!0,o.p.selrow===n.addParams.rowID?C(o).jqGrid("delRowData",o.p.selrow):!0===n.restoreAfterSelect?C(o).jqGrid("restoreRow",o.p.selrow,n.editParams):i=C(o).jqGrid("saveRow",o.p.selrow,n.editParams),i)&&C(o).jqGrid("showAddEditButtons")})}})},showAddEditButtons:function(){return this.each(function(){var e,i;this.grid&&(e=C.jgrid.jqID(this.p.id),i=C.jgrid.trim(C(this).jqGrid("getStyleUI",this.p.styleUI+".common","disabled",!0)),C("#"+e+"_ilsave").addClass(i),C("#"+e+"_ilcancel").addClass(i),C("#"+e+"_iladd").removeClass(i),C("#"+e+"_iledit").removeClass(i))})},showSaveCancelButtons:function(){return this.each(function(){var e,i;this.grid&&(e=C.jgrid.jqID(this.p.id),i=C.jgrid.trim(C(this).jqGrid("getStyleUI",this.p.styleUI+".common","disabled",!0)),C("#"+e+"_ilsave").removeClass(i),C("#"+e+"_ilcancel").removeClass(i),C("#"+e+"_iladd").addClass(i),C("#"+e+"_iledit").addClass(i))})}})});js/minified/grid.database.js000064400000011577151676727230012025 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","./grid.base"],e):e(jQuery)}(function(g){"use strict";g.jgrid.extend({dbInit:function(e){return this.each(function(){"indexeddb"===e&&g(this).jqGrid("_initIndexedDB_")})},_initIndexedDB_:function(){this.each(function(){var s=this;indexedDB.databases().then(function(e){var r=indexedDB.open(s.p.dbconfig.dbname);r.onupgradeneeded=e=>{console.info("Database created: "+s.p.dbconfig.dbname)},r.onsuccess=function(e){const r=e.target.result;var o=parseInt(r.version),c=g.jgrid.getElemByAttrVal(s.p.colModel,"key",!0);async function t(i){var e=s.p.dbconfig;if("string"==typeof e.dataUrl){try{var d=await(await fetch(e.dataUrl,e.fetchOptions)).json();null!==e.reader&&(d=g.jgrid.getAccessor(d,e.reader))}catch(e){return void console.log("Error:"+e)}g.jgrid.isFunction(e.beforeInsertData)&&(d=e.beforeInsertData.call(s,d))}else Array.isArray(e.dataUrl)&&(d=e.dataUrl);s.p.dbconfig.dbversion=o+1;e=indexedDB.open(e.dbname,o+1);e.onupgradeneeded=function(e){var r=e.target.result;if(!i){var o=r.createObjectStore(s.p.dbconfig.dbtable,{keyPath:c.name});for(let e=0;e<s.p.colModel.length;e++){var t=s.p.colModel[e];t.name===c.name?o.createIndex(t.name,t.name,{unique:!0}):o.createIndex(t.name,t.name,{unique:!1})}}var n,a=e.target.transaction.objectStore(s.p.dbconfig.dbtable);a.transaction.oncomplete=function(e){},a.transaction.onerror=function(e){g.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")};for(n of d)s.p.dbconfig.isKeyInData||(n[c.name]=Math.random().toString(16).slice(2)),a.put(n);s.p.dbconfig.ready_req=!0,s.grid.populate()},e.onerror=e=>{g.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")}}if(g.isEmptyObject(c))g.jgrid.info_dialog("Warning","Missed key: No uniquie key is set in colModel. Creating table fail","Close");else if(r.objectStoreNames.contains(s.p.dbconfig.dbtable))if(s.p.dbconfig.loadIfExists||s.p.dbconfig.deleteIfExists){const n=r.transaction(s.p.dbconfig.dbtable,"readwrite").objectStore(s.p.dbconfig.dbtable),a=n.count();a.onsuccess=()=>{var e;0<a.result?s.p.dbconfig.deleteIfExists?((e=n.clear()).onsuccess=e=>{console.log("All records are cleared"),r.close(),t(!0)},e.onerror=e=>{g.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")}):s.p.dbconfig.loadIfExists?(r.close(),t(!0)):(r.close(),s.p.dbconfig.ready_req=!0,s.grid.populate()):(r.close(),t(!0))}}else r.close(),s.p.dbconfig.ready_req=!0,s.grid.populate();else r.close(),t(!1)},r.onerror=e=>{g.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")}})})},updateStorageRecord:async function(d,c){let s=this[0],l=s.p.dbconfig,e=s.p.datatype;return new Promise(function(o,a){if(Array.isArray(d)||(d=[d]),c=c||s.p.keyName,d=g.jgrid.normalizeDbData.call(s,d,s.p.colModel),"indexeddb"===e){const i=window.indexedDB.open(l.dbname);i.onsuccess=e=>{var r=i.result.transaction(l.dbtable,"readwrite"),t=(r.oncomplete=e=>{o(e),console.log("Transaction completed succefully")},r.onerror=r=>{a(r);try{g.jgrid.info_dialog.call("Error",r.target.error,"Close",{styleUI:s.p.styleUI})}catch(e){console.log(r.target.error)}},r.objectStore(l.dbtable));for(let o=0;o<d.length;o++){if(!d[o].hasOwnProperty(c)||""===d[o][c]){r.abort();break}var n=t.openCursor();n.onsuccess=e=>{var r,e=e.target.result;e&&((r=e.value)[c]===d[o][c]?(delete d[o].oper,r=Object.assign(r,d[o]),e.update(r)):e.continue())},n.onerror=e=>{console.log(e.target.error)}}}}})},addStorageRecord:async function(i,d){let c=this[0],s=c.p.dbconfig,e=c.p.datatype;return new Promise(function(t,n){if(Array.isArray(i)||(i=[i]),d=d||c.p.keyName,i=g.jgrid.normalizeDbData.call(c,i,c.p.colModel),"indexeddb"===e){const a=window.indexedDB.open(s.dbname);a.onsuccess=e=>{var r=a.result.transaction(s.dbtable,"readwrite"),o=(r.oncomplete=e=>{t(e),console.log("Transaction completed succefully")},r.onerror=r=>{n(r);try{g.jgrid.info_dialog.call("Error",r.target.error,"Close",{styleUI:c.p.styleUI})}catch(e){console.log(r.target.error)}},r.objectStore(s.dbtable));for(let e=0;e<i.length;e++)i[e].hasOwnProperty(d)&&""!==i[e][d]||(i[e][d]=Math.random().toString(16).slice(2)),o.add(i[e]).onsuccess=e=>{}}}})},deleteStorageRecord:async function(d,c){let s=this[0],l=s.p.dbconfig,e=s.p.datatype;return new Promise(function(t,n){if(Array.isArray(d)||(d=d.split(",")),c=c||s.p.keyName,"indexeddb"===e){var a=[],r={};for(let e=0;e<d.length;e++)r[c]=d[e],a.push(r);a=g.jgrid.normalizeDbData.call(s,a,s.p.colModel);const i=window.indexedDB.open(l.dbname);i.onsuccess=e=>{var r=i.result.transaction(l.dbtable,"readwrite"),o=(r.oncomplete=e=>{t(e),console.log("Transaction completed succefully")},r.onerror=r=>{n(r);try{g.jgrid.info_dialog.call("Error",r.target.error,"Close",{styleUI:s.p.styleUI})}catch(e){console.log(r.target.error)}},r.objectStore(l.dbtable));for(let r=0;r<d.length;r++)o.delete(a[r][c]).onsuccess=e=>{console.log("Deleted record: "+d[r])}}}})}})});js/minified/grid.export.js000064400000127716151676727230011605 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","./grid.base","./jquery.fmatter","./grid.utils"],e):e(jQuery)}(function(te){"use strict";te.jgrid=te.jgrid||{},te.extend(te.jgrid,{formatCell:function(e,t,r,l,o,a){return void 0!==l.formatter?(t={rowId:"",colModel:l,gid:o.p.id,pos:t,styleUI:"",isExported:!0,exporttype:a},te.jgrid.isFunction(l.formatter)?l.formatter.call(o,e,t,r):te.fmatter?te.fn.fmatter.call(o,l.formatter,e,t,r):e):e},formatCellCsv:function(t,e){t=null==t?"":String(t);try{t=te.jgrid.stripHtml(t.replace(e._regexsep,e.separatorReplace).replace(/\r\n/g,e.replaceNewLine).replace(/\n/g,e.replaceNewLine))}catch(e){t=""}return t=-1!==(t=e.escquote?t.replace(e._regexquot,e.escquote+e.quote):t).indexOf(e.separator)&&-1!==t.indexOf(e.qoute)?t:e.quote+t+e.quote},excelCellPos:function(e){for(var t="A".charCodeAt(0),r="Z".charCodeAt(0)-t+1,l="";0<=e;)l=String.fromCharCode(e%r+t)+l,e=Math.floor(e/r)-1;return l},makeNode:function(e,t,r){var l=e.createElement(t);return r&&(r.attr&&te(l).attr(r.attr),r.children&&te.each(r.children,function(e,t){l.appendChild(t)}),r.hasOwnProperty("text"))&&l.appendChild(e.createTextNode(r.text)),l},xmlToZip:function(o,e){var a,n,d,i,p,s=this,m=new XMLSerializer,f=-1===m.serializeToString(te.parseXML(te.jgrid.excelStrings["xl/worksheets/sheet1.xml"])).indexOf("xmlns:r"),c=[];te.each(e,function(e,t){if(te.isPlainObject(t))p=o.folder(e),s.xmlToZip(p,t);else{if(f){for(a=t.childNodes[0],n=a.attributes.length-1;0<=n;n--){var r=a.attributes[n].nodeName,l=a.attributes[n].nodeValue;-1!==r.indexOf(":")&&(c.push({name:r,value:l}),a.removeAttribute(r))}for(n=0,d=c.length;n<d;n++)(i=t.createAttribute(c[n].name.replace(":","_dt_b_namespace_token_"))).value=c[n].value,a.setAttributeNode(i)}p=m.serializeToString(t),p=(p=f?(p=-1===p.indexOf("<?xml")?'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+p:p).replace(/_dt_b_namespace_token_/g,":"):p).replace(/<row xmlns="" /g,"<row ").replace(/<cols xmlns="">/g,"<cols>").replace(/<mergeCells xmlns="" /g,"<mergeCells ").replace(/<numFmt xmlns="" /g,"<numFmt ").replace(/<xf xmlns="" /g,"<xf "),o.file(e,p)}})},excelStrings:{"_rels/.rels":'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/></Relationships>',"xl/_rels/workbook.xml.rels":'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet1.xml"/><Relationship Id="rId2" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/></Relationships>',"[Content_Types].xml":'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="xml" ContentType="application/xml" /><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml" /><Default Extension="jpeg" ContentType="image/jpeg" /><Override PartName="/xl/workbook.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml" /><Override PartName="/xl/worksheets/sheet1.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml" /><Override PartName="/xl/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml" /></Types>',"xl/workbook.xml":'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"><fileVersion appName="xl" lastEdited="5" lowestEdited="5" rupBuild="24816"/><workbookPr showInkAnnotation="0" autoCompressPictures="0"/><bookViews><workbookView xWindow="0" yWindow="0" windowWidth="25600" windowHeight="19020" tabRatio="500"/></bookViews><sheets><sheet name="Sheet1" sheetId="1" r:id="rId1"/></sheets></workbook>',"xl/worksheets/sheet1.xml":'<?xml version="1.0" encoding="UTF-8" standalone="yes"?><worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac"><sheetData/></worksheet>',"xl/styles.xml":'<?xml version="1.0" encoding="UTF-8"?><styleSheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac"><numFmts count="7"><numFmt numFmtId="164" formatCode="#,##0.00_- [$$-45C]"/><numFmt numFmtId="165" formatCode="&quot;£&quot;#,##0.00"/><numFmt numFmtId="166" formatCode="[$€-2] #,##0.00"/><numFmt numFmtId="167" formatCode="0.0%"/><numFmt numFmtId="168" formatCode="#,##0;(#,##0)"/><numFmt numFmtId="169" formatCode="#,##0.00;(#,##0.00)"/><numFmt numFmtId="170" formatCode="yyyy/mm/dd;@"/></numFmts><fonts count="5" x14ac:knownFonts="1"><font><sz val="11" /><name val="Calibri" /></font><font><sz val="11" /><name val="Calibri" /><color rgb="FFFFFFFF" /></font><font><sz val="11" /><name val="Calibri" /><b /></font><font><sz val="11" /><name val="Calibri" /><i /></font><font><sz val="11" /><name val="Calibri" /><u /></font></fonts><fills count="6"><fill><patternFill patternType="none" /></fill><fill/><fill><patternFill patternType="solid"><fgColor rgb="FFD9D9D9" /><bgColor indexed="64" /></patternFill></fill><fill><patternFill patternType="solid"><fgColor rgb="FFD99795" /><bgColor indexed="64" /></patternFill></fill><fill><patternFill patternType="solid"><fgColor rgb="ffc6efce" /><bgColor indexed="64" /></patternFill></fill><fill><patternFill patternType="solid"><fgColor rgb="ffc6cfef" /><bgColor indexed="64" /></patternFill></fill></fills><borders count="2"><border><left /><right /><top /><bottom /><diagonal /></border><border diagonalUp="false" diagonalDown="false"><left style="thin"><color auto="1" /></left><right style="thin"><color auto="1" /></right><top style="thin"><color auto="1" /></top><bottom style="thin"><color auto="1" /></bottom><diagonal /></border></borders><cellStyleXfs count="1"><xf numFmtId="0" fontId="0" fillId="0" borderId="0" /></cellStyleXfs><cellXfs count="69"><xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="1" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="2" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="3" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="4" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="0" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="1" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="2" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="3" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="4" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="0" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="1" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="2" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="3" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="4" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="0" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="1" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="2" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="3" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="4" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="0" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="1" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="2" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="3" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="4" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="0" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="1" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="2" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="3" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="4" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="0" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="1" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="2" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="3" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="4" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="0" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="1" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="2" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="3" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="4" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="0" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="1" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="2" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="3" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="4" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="0" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="1" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="2" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="3" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="4" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/><xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1"><alignment horizontal="left"/></xf><xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1"><alignment horizontal="center"/></xf><xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1"><alignment horizontal="right"/></xf><xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1"><alignment horizontal="fill"/></xf><xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1"><alignment textRotation="90"/></xf><xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1"><alignment wrapText="1"/></xf><xf numFmtId="9"   fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="164" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="165" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="166" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="167" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="168" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="169" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="3" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="4" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="1" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="2" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="170" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/><xf numFmtId="49" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/></cellXfs><cellStyles count="1"><cellStyle name="Normal" xfId="0" builtinId="0" /></cellStyles><dxfs count="0" /><tableStyles count="0" defaultTableStyle="TableStyleMedium9" defaultPivotStyle="PivotStyleMedium4" /></styleSheet>'},excelParsers:[{match:/^\-?\d+\.\d%$/,style:60,fmt:function(e){return e/100}},{match:/^\-?\d+\.?\d*%$/,style:56,fmt:function(e){return e/100}},{match:/^\-?\$[\d,]+.?\d*$/,style:57},{match:/^\-?£[\d,]+.?\d*$/,style:58},{match:/^\-?€[\d,]+.?\d*$/,style:59},{match:/^\-?\d+$/,style:65},{match:/^\-?\d+\.\d{2}$/,style:66},{match:/^\([\d,]+\)$/,style:61,fmt:function(e){return-1*e.replace(/[\(\)]/g,"")}},{match:/^\([\d,]+\.\d{2}\)$/,style:62,fmt:function(e){return-1*e.replace(/[\(\)]/g,"")}},{match:/^\-?[\d,]+$/,style:63},{match:/^\-?[\d,]+\.\d{2}$/,style:64},{match:/^\d{4}\-\d{2}\-\d{2}$/,style:67},{match:/(https?:\/\/(?:www\.|(?!www))[^\s\.]+\.[^\s]{2,}|www\.[^\s]+\.[^\s]{2,})/gi,style:4}],addExcelStyle:function(e,t,r,l){t=te.extend({numFmtId:"0",fontId:"0",fillId:"0",borderId:"0",applyFont:"1",applyFill:"1",applyBorder:"1",xfId:"0",applyNumberFormat:"0",applyAlignment:"0"},t||{}),r=te.extend({horizontal:"left",indent:"0",shrinkToFit:"1",textRotation:"0",vertical:"center",wrapText:"0"},r||{}),te.isEmptyObject(e)&&(e.excel_parsers=!0);var o,a,n,d,i=l.getElementsByTagName("numFmts")[0],p=l.getElementsByTagName("cellXfs")[0],s=null,m=null;for(o in e)e.hasOwnProperty(o)&&(-1!==o.indexOf("format")&&(s=o),-1!==o.indexOf("style"))&&(m=o);return m&&!e[m]&&(a=d=0,s&&e[s]&&(n=te(i.getElementsByTagName("numFmt")),te.each(n,function(e,t){d++,a=Math.max(a,parseInt(te(t).attr("numFmtId"),10))}),n=te.jgrid.makeNode(l,"numFmt",{attr:{numFmtId:a+1,formatCode:e[s]}}),i.appendChild(n),te(i).attr("count",d+1)),i=0!==a?a+1+"":"0",d=0,t.numFmtId=i,n="1"===t.applyAlignment?te.jgrid.makeNode(l,"xf",{attr:t,children:[te.jgrid.makeNode(l,"alignment",{attr:r})]}):te.jgrid.makeNode(l,"xf",{attr:t}),p.appendChild(n),d=te("cellXfs xf",l).length,te(p).attr("count",d),e[m]=d-1),e},newExcelStyle:function(e,t){t=te.extend(!0,{font:{size:11,name:"Calibri",options:""},color:{patternType:"solid",fgColor:"FFFFFFF",bgColor:64}},t||{});var e=e.xl["styles.xml"],r=te("cellXfs xf",e).length-1,l=te("fonts font",e).length-1,o=te("fills fill",e).length-1,a='<font><sz val="'+t.font.size+'" /><name val="'+t.font.name+'" />'+t.font.options+"</font>",a=(e.childNodes[0].childNodes[1].innerHTML+=a,"indexed="),t=(0<=parseInt(t.color.bgColor,10)&&(a="rgb="),a+='"'+t.color.bgColor+'"','<fill><patternFill patternType="'+t.color.patternType+'"><fgColor rgb="'+t.color.fgColor+'" /><bgColor '+a+" /></patternFill></fill>"),a=(e.childNodes[0].childNodes[2].innerHTML+=t,'<xf numFmtId="0" fontId="'+(1+l)+'" fillId="'+(1+o)+'" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1"></xf>');return e.childNodes[0].childNodes[5].innerHTML+=a,1+r}}),te.jgrid.extend({exportToCsv:function(N){N=te.extend(!0,{separator:",",separatorReplace:" ",quote:'"',escquote:'"',newLine:"\r\n",replaceNewLine:" ",includeCaption:!0,includeLabels:!0,includeGroupHeader:!0,includeFooter:!0,includeHeader:!0,fileName:"jqGridExport.csv",mimetype:"text/csv;charset=utf-8",returnAsString:!1,onBeforeExport:null,treeindent:" ",visibleTreeNodes:!1,loadIndicator:!0},N||{});var S="";return this.each(function(){N._regexsep=new RegExp(N.separator,"g"),N._regexquot=new RegExp(N.quote,"g");var e,t,j=this,r=j.p.treeGrid?te(j).jqGrid("getRowData",null,!0,N.treeindent,N.visibleTreeNodes):j.addLocalData(!0),l=r.length,o=j.p.colModel,a=o.length,n=j.p.colNames,d=0,i="",p="",s="",m="",f="",c=[],u="";function g(s,m){var f="",c=j.p.groupingView,u=[],g=c.groupField.length,y=j.p.colModel,h=y.length,x=0;function I(e,t,r,l){for(var o,a,n=function(e,t,r){var l,o=!1;if(0===t)o=r[e];else{var a=r[e].idx;if(0===a)o=r[e];else for(l=e;0<=l;l--)if(r[l].idx===a-t){o=r[l];break}}return o}(e,t,r),d=n.cnt,i=new Array(m.collen),p=0,s=l;s<h;s++)y[s]._expcol&&(a="{0}",te.each(n.summary,function(){if(this.nm===y[s].name){y[s].summaryTpl&&(a=y[s].summaryTpl),o=this.v,"string"==typeof this.st&&"avg"===this.st.toLowerCase()&&(this.sd&&this.vd?o=this.v/this.vd:this.v&&0<d&&(o=this.v/d));try{this.groupCount=n.cnt,this.groupIndex=n.dataIndex,this.groupValue=n.value,o=j.formatter("",o,s,this)}catch(e){o=this.v}return i[p]=te.jgrid.formatCellCsv(te.jgrid.stripHtml(te.jgrid.template(a,o)),m),!1}}),p++);return i}te.each(y,function(e,t){for(var r=0;r<g;r++)if(c.groupField[r]===t.name){u[r]=e;break}});var F,b,v=te.makeArray(c.groupSummary);if(v.reverse(),"local"===j.p.datatype&&!j.p.loadonce){te(j).jqGrid("groupingSetup");for(var e=te.jgrid.getMethod("groupingPrepare"),t=0;t<l;t++)e.call(te(j),r[t],t)}return te.each(c.groups,function(e,t){x++;try{F=Array.isArray(c.formatDisplayField)&&te.jgrid.isFunction(c.formatDisplayField[t.idx])?c.formatDisplayField[t.idx].call(j,t.displayValue,t.value,j.p.colModel[u[t.idx]],t.idx,c):j.formatter("",t.displayValue,u[t.idx],t.value)}catch(e){F=t.displayValue}var r,l="";if("string"!=typeof(l=te.jgrid.isFunction(c.groupText[t.idx])?c.groupText[t.idx].call(j,F,t.cnt,t.summary):te.jgrid.template(c.groupText[t.idx],F,t.cnt,t.summary))&&"number"!=typeof l&&(l=F),(r="header"===c.groupSummaryPos[t.idx]?I(e,0,c.groups,0):new Array(m.collen))[0]=te.jgrid.formatCellCsv(te.jgrid.stripHtml(l),m),f+=r.join(m.separator)+m.newLine,g-1===t.idx){for(var o,a,n,d=c.groups[e+1],l=t.startRow,i=void 0!==d?d.startRow:c.groups[e].startRow+c.groups[e].cnt,p=l;p<i&&s[+p];p++){for(a=s[+p],o=b=0;o<y.length;o++)y[o]._expcol&&(r[b]=te.jgrid.formatCellCsv(te.jgrid.formatCell(te.jgrid.getAccessor(a,y[o].name),o,a,y[o],j,"csv"),m),b++);f+=r.join(m.separator)+m.newLine}if("header"!==c.groupSummaryPos[t.idx]){if(void 0!==d){for(n=0;n<c.groupField.length&&d.dataIndex!==c.groupField[n];n++);x=c.groupField.length-n}for(o=0;o<x;o++)v[o]&&(r=I(e,o,c.groups,0),f+=r.join(m.separator)+m.newLine);x=n}}}),f}te.jgrid.isFunction(N.loadIndicator)?N.loadIndicator.call(j,"show"):N.loadIndicator&&te(j).jqGrid("progressBar",{method:"show",loadtype:j.p.loadui,htmlcontent:te.jgrid.getRegional(j,"defaults.loadtext")});var y,h,x=[];if(te.each(o,function(e,t){t._expcol=!0,void 0===t.exportcol?t.hidden&&(t._expcol=!1):t._expcol=t.exportcol,"cb"!==t.name&&"rn"!==t.name&&"subgrid"!==t.name&&"sc"!==t.name||(t._expcol=!1),t._expcol&&(c.push(te.jgrid.formatCellCsv(n[e],N)),x.push(t.name))}),N.includeLabels&&(f=c.join(N.separator)+N.newLine),N.collen=c.length,j.p.grouping){var I=!!j.p.groupingView._locgr;j.p.groupingView._locgr=!1,i+=g(r,N),j.p.groupingView._locgr=I}else for(;d<l;){for(e=r[d],w=[],b=t=0;b<a;b++)o[b]._expcol&&(w[t]=te.jgrid.formatCellCsv(te.jgrid.formatCell(te.jgrid.getAccessor(e,o[b].name),b,e,o[b],j,"csv"),N),t++);i+=w.join(N.separator)+N.newLine,d++}if(r=null,w=new Array(N.collen),N.includeCaption&&j.p.caption){for(d=N.collen;--d;)w[d]="";w[0]=te.jgrid.formatCellCsv(j.p.caption,N),p+=w.join(N.separator)+N.newLine}if(N.includeGroupHeader&&te(j).jqGrid("isGroupHeaderOn"))for(var F=j.p.groupHeader,b=0;b<F.length;b++){for(var v=F[b].groupHeaders,d=0,w=[],C=0;C<x.length;C++){for(w[d]="",t=0;t<v.length;t++)v[t].startColumnName===x[C]&&(w[d]=te.jgrid.formatCellCsv(v[t].titleText,N));d++}s+=w.join(N.separator)+N.newLine}if(N.includeFooter&&j.p.footerrow)for(var _,B,T=te(j).jqGrid("footerData","getlength"),k=0;k<T;k++){for(_=te(j).jqGrid("footerData","get",null,!1,k,!1),b=0,w=[];b<N.collen;)_.hasOwnProperty(B=x[b])&&w.push(te.jgrid.formatCellCsv(te.jgrid.stripHtml(_[B]),N)),b++;m+=w.join(N.separator)+N.newLine}if(N.includeHeader&&j.p.headerrow)for(T=te(j).jqGrid("headerData","getlength"),k=0;k<T;k++){for(y=te(j).jqGrid("headerData","get",null,!1,k,!1),b=0,w=[];b<N.collen;)y.hasOwnProperty(h=x[b])&&w.push(te.jgrid.formatCellCsv(te.jgrid.stripHtml(y[h]),N)),b++;u+=w.join(N.separator)+N.newLine}if(S=p+s+f+u+i+m,te.jgrid.isFunction(N.loadIndicator)?N.loadIndicator.call(j,"hide"):N.loadIndicator&&te(j).jqGrid("progressBar",{method:"hide",loadtype:j.p.loadui}),te.jgrid.isFunction(N.onBeforeExport)&&!(S=N.onBeforeExport.call(j,S)))throw"Before export does not return data!";N.returnAsString||(-1!==N.mimetype.toUpperCase().indexOf("UTF-8")&&(S="\ufeff"+S),te.jgrid.saveAs(S,N.fileName,{type:N.mimetype}))}),S},exportToExcel:function(ee){ee=te.extend(!0,{includeLabels:!0,includeGroupHeader:!0,includeFooter:!0,includeHeader:!0,fileName:"jqGridExport.xlsx",mimetype:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",maxlength:40,onBeforeExport:null,customizeData:null,replaceStr:null,treeindent:" ",visibleTreeNodes:!1,loadIndicator:!0},ee||{}),this.each(function(){for(var e,t,F=this,r=te.jgrid.excelStrings,y=0,h=te.parseXML(r["xl/worksheets/sheet1.xml"]),G=h.getElementsByTagName("sheetData")[0],l=te.parseXML(r["xl/styles.xml"]),r={_rels:{".rels":te.parseXML(r["_rels/.rels"])},xl:{_rels:{"workbook.xml.rels":te.parseXML(r["xl/_rels/workbook.xml.rels"])},"workbook.xml":te.parseXML(r["xl/workbook.xml"]),"styles.xml":l,worksheets:{"sheet1.xml":h}},"[Content_Types].xml":te.parseXML(r["[Content_Types].xml"])},b=F.p.colModel,o=0,v={body:F.p.treeGrid?te(F).jqGrid("getRowData",null,!0,ee.treeindent,ee.visibleTreeNodes):F.addLocalData(!0),header:[],footer:[],width:[],map:[],parser:[],labels:[],hidden:[],mergecell:[]},P=te.jgrid.addExcelStyle({excel_header_style:""},{fontId:"2",applyAlignment:"1"},{horizontal:"center",vertical:"center"},l).excel_header_style,a=0,n=b.length;a<n;a++)b[a]._expcol=!0,void 0===b[a].exportcol?b[a].hidden&&(b[a]._expcol=!1):b[a]._expcol=b[a].exportcol,void 0===b[a]._colspancell&&(b[a]._colspancell=!1),te.jgrid.isServiceCol(b[a].name)||!b[a]._expcol?v.hidden.push(b[a].name):(v.header[o]=b[a].name,v.width[o]=5,v.map[o]=a,v.labels[o]=F.p.colNames[a],b[a].hasOwnProperty("exportoptions")?(e={},t={},b[a].exportoptions.excel_format&&(e=te.jgrid.addExcelStyle({excel_format:b[a].exportoptions.excel_format,excel_style:b[a].exportoptions.excel_style||""},{},{},l)),b[a].exportoptions.excel_header_format&&(t=te.jgrid.addExcelStyle({excel_header_format:b[a].exportoptions.excel_header_format,excel_header_style:b[a].exportoptions.excel_header_style||""},{fontId:"2",applyAlignment:"1"},{horizontal:"center"},l)),v.parser[a]=te.extend(e,t),b[a].exportoptions.replace_format&&(v.parser[a].replace_format=b[a].exportoptions.replace_format),b[a].exportoptions.replace_header_format&&(v.parser[a].replace_header_format=b[a].exportoptions.replace_header_format)):v.parser[a]={excel_parsers:!0},o++);if(ee.includeFooter||F.p.footerrow)for(var d,O=te(F).jqGrid("footerData","getlength"),E=0;E<O;E++){for(o in d=te(F).jqGrid("footerData","get",null,!1,E,!1))d.hasOwnProperty(o)&&(d[o]=te.jgrid.stripHtml(d[o]));v.footer.push(d)}function x(e,t){return te.jgrid.makeNode(h,"c",{attr:e,children:[te.jgrid.makeNode(h,"v",{text:t})]})}function I(e,t,r){return te.jgrid.makeNode(h,"c",{attr:{t:"inlineStr",r:e,s:r=void 0===r?68:r},children:{row:te.jgrid.makeNode(h,"is",{children:{row:te.jgrid.makeNode(h,"t",{text:t})}})}})}te.jgrid.isFunction(ee.customizeData)&&ee.customizeData.call(F,v);var L,j,V=te.jgrid.isFunction(ee.replaceStr)?ee.replaceStr:function(e){return e.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/[\x00-\x09\x0B\x0C\x0E-\x1F\x7F-\x9F]/g,"")},w=function(e,t,r,l){void 0===r&&(r=!1),void 0===l&&(l=!1),L=y+1,j=te.jgrid.makeNode(h,"row",{attr:{r:L}});for(var o,a,n=0;n<v.header.length;n++){var d,i,p=te.jgrid.excelCellPos(n)+""+L,s=(null==(g=Array.isArray(e)&&t?v.labels[n]:te.jgrid.getAccessor(e,v.header[n]))&&(g=""),t||(g=0===n&&l||l&&""===g?g:te.jgrid.formatCell(g,v.map[n],e,b[v.map[n]],F,"excel"))&&("&nbsp;"===g||"&#160;"===g||1===g.length&&160===g.charCodeAt(0))&&(g=""),v.width[n]=Math.max(v.width[n],Math.min(parseInt(g.toString().length,10),ee.maxlength)),d=null,v.parser[v.map[n]]);if(t&&r)s.replace_header_format&&(g=s.replace_header_format(g)),d=void 0!==s.excel_header_style?"text"===s.excel_header_style?I(p,g):s.excel_header_style<=55?I(p,g,s.excel_header_style):x({r:p,s:s.excel_header_style},g):I(p,g,P),j.appendChild(d);else if(!0!==s.excel_parsers||d)void 0===s.excel_style||t||d||(s.replace_format&&(g=s.replace_format(g)),d="text"===s.excel_style?I(p,g):s.excel_style<=55?I(p,g,s.excel_style):x({r:p,s:s.excel_style},g),j.appendChild(d));else for(var m=0,f=te.jgrid.excelParsers.length;m<f;m++){var c=te.jgrid.excelParsers[m];if(g.match&&!g.match(/^0\d+/)&&g.match(c.match)){var u=g,g=g.replace(/[^\d\.\-]/g,"");if(c.fmt&&(g=c.fmt(g)),67===c.style)d=x({t:"d",r:p,s:c.style},g);else if(4===c.style)o=u,a=void 0,(a=document.createElement("div")).innerHTML=o,d=(g="A"===(o=a.firstChild).nodeName?[o.href,o.text]:"#text"===o.nodeName&&[o.textContent,o.textContent])?(a={t:"str",r:p,s:c.style},o='HYPERLINK("'+g[0]+'","'+g[1]+'")',te.jgrid.makeNode(h,"c",{attr:a,children:[te.jgrid.makeNode(h,"f",{text:o})]})):I(p,u);else{if(te.inArray(c.style,["63","64","65","66"])&&15<g.toString().length){d=I(p,u.replace?V(u):u),j.appendChild(d);break}d=x({r:p,s:c.style},g)}j.appendChild(d);break}}d||(g.match&&(i=g.match(/^-?([1-9]\d+)(\.(\d+))?$/)),d="number"==typeof g&&g.toString().length<=15||i&&i[1].length+(i[2]?i[3].length:0)<=15?x({t:"n",r:p},g):I(p,g.replace?V(g):g),j.appendChild(d))}G.appendChild(j),y++};function M(s){var m=F.p.groupingView,f=[],c=m.groupField.length,u=b.length,g=0;function y(e,t,r,l){for(var o,a,n=function(e,t,r){var l,o=!1;if(0===t)o=r[e];else{var a=r[e].idx;if(0===a)o=r[e];else for(l=e;0<=l;l--)if(r[l].idx===a-t){o=r[l];break}}return o}(e,t,r),d=n.cnt,i=h(v.header),p=l;p<u;p++)b[p]._expcol&&(a="{0}",te.each(n.summary,function(){if(this.nm===b[p].name){b[p].summaryTpl&&(a=b[p].summaryTpl),o=this.v,"string"==typeof this.st&&"avg"===this.st.toLowerCase()&&(this.sd&&this.vd?o=this.v/this.vd:this.v&&0<d&&(o=this.v/d));try{this.groupCount=n.cnt,this.groupIndex=n.dataIndex,this.groupValue=n.value}catch(e){o=this.v}return i[this.nm]=te.jgrid.stripHtml(te.jgrid.template(a,o)),!1}}));return i}function h(e){for(var t={},r=0;r<e.length;r++)t[e[r]]="";return t}te.each(b,function(e,t){for(var r=0;r<c;r++)if(m.groupField[r]===t.name){f[r]=e;break}});var x,I=te.makeArray(m.groupSummary);if(I.reverse(),"local"===F.p.datatype&&!F.p.loadonce){te(F).jqGrid("groupingSetup");for(var e=te.jgrid.getMethod("groupingPrepare"),t=0;t<v.body.length;t++)e.call(te(F),v.body[t],t)}te.each(m.groups,function(e,t){g++;try{x=Array.isArray(m.formatDisplayField)&&te.jgrid.isFunction(m.formatDisplayField[t.idx])?m.formatDisplayField[t.idx].call(F,t.displayValue,t.value,F.p.colModel[f[t.idx]],t.idx,m):F.formatter("",t.displayValue,f[t.idx],t.value)}catch(e){x=t.displayValue}var r="",l=("string"!=typeof(r=te.jgrid.isFunction(m.groupText[t.idx])?m.groupText[t.idx].call(F,x,t.cnt,t.summary):te.jgrid.template(m.groupText[t.idx],x,t.cnt,t.summary))&&"number"!=typeof r&&(r=x),"header"===m.groupSummaryPos[t.idx]?y(e,0,m.groups,0):h(v.header));if(l[Object.keys(l)[0]]=te.jgrid.stripHtml(new Array(5*t.idx).join(" ")+r),w(l,!1,!1,!0),c-1===t.idx){for(var o,a,n=m.groups[e+1],r=t.startRow,d=void 0!==n?n.startRow:m.groups[e].startRow+m.groups[e].cnt,i=r;i<d&&s[+i];i++){var p=s[+i];w(p,!1)}if("header"!==m.groupSummaryPos[t.idx]){if(void 0!==n){for(a=0;a<m.groupField.length&&n.dataIndex!==m.groupField[a];a++);g=m.groupField.length-a}for(o=0;o<g;o++)I[o]&&(l=y(e,o,m.groups,0),w(l,!1,!1,!0));g=a}}})}te.jgrid.isFunction(ee.loadIndicator)?ee.loadIndicator.call(F,"show"):ee.loadIndicator&&te(F).jqGrid("progressBar",{method:"show",loadtype:F.p.loadui,htmlcontent:te.jgrid.getRegional(F,"defaults.loadtext")}),te("sheets sheet",r.xl["workbook.xml"]).attr("name",ee.sheetName);var i,p,s,m,f,c,u=0,g=[],C={};if(ee.includeGroupHeader&&te(F).jqGrid("isGroupHeaderOn"))for(i=F.p.groupHeader,s=0;s<i.length;s++){var _,B,T,k,N=i[s].groupHeaders,R=i[s].useColSpanStyle&&1===i.length,z=[],$=[],X=[];if(u++,R)for(_=0;_<N.length;_++)for(p=N[_].startColumnName,B=N[_].numberOfColumns,k=T=te.jgrid.getElemByAttrVal(b,"name",p,!0);k<T+N[_].numberOfColumns;k++)X[b[k].name]=p,-1!==(m=v.header.indexOf(b[k].name))&&z.push(m);for(a=0;a<v.header.length;a++){for(C[p=v.header[a]]=R?v.labels[a]:"",c=f=-1,_=0;_<N.length;_++)if(N[_].startColumnName===p){for($.push(p),C[p]=N[_].titleText,B=N[_].numberOfColumns,k=T=te.jgrid.getElemByAttrVal(b,"name",p,!0);k<T+N[_].numberOfColumns;k++)!0===b[k].hidden&&B--;f=te.jgrid.excelCellPos(a)+u,c=te.jgrid.excelCellPos(a+B-1)+u,g.push({ref:f+":"+c})}-1===f&&-1===c&&R&&-1===z.indexOf(a)&&(f=te.jgrid.excelCellPos(a)+u,c=te.jgrid.excelCellPos(a)+(u+1),g.push({ref:f+":"+c}))}if($.length<N.length)for(_=0;_<v.hidden.length;_++){var S=te.jgrid.inColumnHeader(v.hidden[_],N);if(0<=S)for(var A in p=v.hidden[_],X)if(X[A]===p&&C[A]){for(C[A]=N[S].titleText,m=v.header.indexOf(A),B=N[S].numberOfColumns,k=T=te.jgrid.getElemByAttrVal(b,"name",p,!0);k<T+N[S].numberOfColumns;k++)!0===b[k].hidden&&B--;f=te.jgrid.excelCellPos(m)+u,c=te.jgrid.excelCellPos(m+B-1)+u,g.push({ref:f+":"+c});break}}w(C,!0,!0)}if(ee.includeLabels)if(F.p.colSpanHeader.length){for(u++,i=F.p.colSpanHeader,C={},a=0;a<v.header.length;a++)for(C[p=v.header[a]]=v.labels[a],s=0;s<i.length;s++)(N=i[s]).startColumnName===p&&(C[p]=N.titleText,f=te.jgrid.excelCellPos(a)+u,c=te.jgrid.excelCellPos(a+N.numberOfColumns-1)+u,g.push({ref:f+":"+c}));w(C,!0,!0)}else w(v.header,!0,!0);if((g=v.mergecell.length?g.concat(v.mergecell):g).length){var U=te.jgrid.makeNode(h,"mergeCells",{attr:{count:g.length}});for(te("worksheet",h).append(U),o=0;o<g.length;o++)U.appendChild(te.jgrid.makeNode(h,"mergeCell",{attr:g[o]}))}if(ee.includeHeader||F.p.headerrow)for(var H,Z=te(F).jqGrid("headerData","getlength"),W=0;W<Z;W++){for(o in H=te(F).jqGrid("headerData","get",null,!1,W,!1))H.hasOwnProperty(o)&&(H[o]=te.jgrid.stripHtml(H[o]));te.isEmptyObject(H)||(w(H,!0),te("row",h).last().find("c").attr("s","2"))}if(F.p.grouping){var J=!!F.p.groupingView._locgr;F.p.groupingView._locgr=!1,M(v.body),F.p.groupingView._locgr=J}else for(var D=0,K=v.body.length;D<K;D++)w(v.body[D],!1);if((ee.includeFooter||F.p.footerrow)&&!te.isEmptyObject(v.footer))if(Array.isArray(v.footer))for(D=0;D<v.footer.length;D++)w(v.footer[D],!0),te("row",h).last().find("c").attr("s","2");else w(v.footer,!0),te("row",h).last().find("c").attr("s","2");var Q=te.jgrid.makeNode(h,"cols");for(te("worksheet",h).prepend(Q),o=0,n=v.width.length;o<n;o++)Q.appendChild(te.jgrid.makeNode(h,"col",{attr:{min:o+1,max:o+1,width:v.width[o],customWidth:1}}));te.jgrid.isFunction(ee.onBeforeExport)&&ee.onBeforeExport.call(F,r,y),v=null;try{var q=new JSZip,Y={type:"blob",mimeType:ee.mimetype};te.jgrid.xmlToZip(q,r),q.generateAsync?q.generateAsync(Y).then(function(e){te.jgrid.saveAs(e,ee.fileName,{type:ee.mimetype})}):te.jgrid.saveAs(q.generate(Y),ee.fileName,{type:ee.mimetype})}catch(e){throw e}finally{te.jgrid.isFunction(ee.loadIndicator)?ee.loadIndicator.call(F,"hide"):ee.loadIndicator&&te(F).jqGrid("progressBar",{method:"hide",loadtype:F.p.loadui})}})},exportToPdf:function(N){return N=te.extend(!0,{title:null,orientation:"portrait",pageSize:"A4",description:null,onBeforeExport:null,download:"download",includeLabels:!0,includeGroupHeader:!0,includeFooter:!0,includeHeader:!0,fileName:"jqGridExport.pdf",mimetype:"application/pdf",treeindent:"-",visibleTreeNodes:!1,centerTableOnPage:!1,loadIndicator:!0},N||{}),this.each(function(){var e,t,r,v=this,j=[],l=v.p.colModel,d={},i=v.p.treeGrid?te(v).jqGrid("getRowData",null,!0,N.treeindent,N.visibleTreeNodes):v.addLocalData(!0),w=[],p=0,C=[],o=[],a=[],_={};function n(s){var m=v.p.groupingView,f=[],c=m.groupField.length,u=v.p.colModel,g=u.length,y=0;function h(e,t,r){var l,o=0,a=[];void 0===r&&(r=!1);for(var n=0;n<w.length;n++)l=e[w[n]],d={text:null==l||""===l?"":t&&!(0===n&&r)?te.jgrid.formatCell(l+"",C[o],i[p],u[C[o]],v,"pdf"):l,alignment:_[n],style:"tableBody"},a.push(d),o++;return a}function x(e,t,r,l){for(var o,a,n=function(e,t,r){var l,o=!1;if(0===t)o=r[e];else{var a=r[e].idx;if(0===a)o=r[e];else for(l=e;0<=l;l--)if(r[l].idx===a-t){o=r[l];break}}return o}(e,t,r),d=n.cnt,i=I(w),p=l;p<g;p++)u[p]._expcol&&(a="{0}",te.each(n.summary,function(){if(this.nm===u[p].name){u[p].summaryTpl&&(a=u[p].summaryTpl),o=this.v,"string"==typeof this.st&&"avg"===this.st.toLowerCase()&&(this.sd&&this.vd?o=this.v/this.vd:this.v&&0<d&&(o=this.v/d));try{this.groupCount=n.cnt,this.groupIndex=n.dataIndex,this.groupValue=n.value}catch(e){o=this.v}return i[this.nm]=te.jgrid.stripHtml(te.jgrid.template(a,o)),!1}}));return i}function I(e){for(var t={},r=0;r<e.length;r++)t[e[r]]="";return t}te.each(u,function(e,t){for(var r=0;r<c;r++)if(m.groupField[r]===t.name){f[r]=e;break}});var F,b=te.makeArray(m.groupSummary);if(b.reverse(),"local"===v.p.datatype&&!v.p.loadonce){te(v).jqGrid("groupingSetup");for(var e=te.jgrid.getMethod("groupingPrepare"),t=0;t<i.length;t++)e.call(te(v),i[t],t)}te.each(m.groups,function(e,t){y++;try{F=Array.isArray(m.formatDisplayField)&&te.jgrid.isFunction(m.formatDisplayField[t.idx])?m.formatDisplayField[t.idx].call(v,t.displayValue,t.value,v.p.colModel[f[t.idx]],t.idx,m):v.formatter("",t.displayValue,f[t.idx],t.value)}catch(e){F=t.displayValue}var r="",l=("string"!=typeof(r=te.jgrid.isFunction(m.groupText[t.idx])?m.groupText[t.idx].call(v,F,t.cnt,t.summary):te.jgrid.template(m.groupText[t.idx],F,t.cnt,t.summary))&&"number"!=typeof r&&(r=F),"header"===m.groupSummaryPos[t.idx]?x(e,0,m.groups,0):I(w));if(l[Object.keys(l)[0]]=te.jgrid.stripHtml(new Array(5*t.idx).join(" ")+r),j.push(h(l,!0,!0)),c-1===t.idx){for(var o,a,n=m.groups[e+1],r=t.startRow,d=void 0!==n?n.startRow:m.groups[e].startRow+m.groups[e].cnt,i=r;i<d&&s[+i];i++){var p=s[+i];j.push(h(p,!0))}if("header"!==m.groupSummaryPos[t.idx]){if(void 0!==n){for(a=0;a<m.groupField.length&&n.dataIndex!==m.groupField[a];a++);y=m.groupField.length-a}for(o=0;o<y;o++)b[o]&&(l=x(e,o,m.groups,0),j.push(h(l,!0,!0)));y=a}}})}for(te.jgrid.isFunction(N.loadIndicator)?N.loadIndicator.call(v,"show"):N.loadIndicator&&te(v).jqGrid("progressBar",{method:"show",loadtype:v.p.loadui,htmlcontent:te.jgrid.getRegional(v,"defaults.loadtext")}),e=0,B=l.length;e<B;e++)l[e]._expcol=!0,void 0===l[e].exportcol?l[e].hidden&&(l[e]._expcol=!1):l[e]._expcol=l[e].exportcol,!te.jgrid.isServiceCol(l[e].name)&&l[e]._expcol&&(d={text:v.p.colNames[e],style:"tableHeader"},o.push(d),w[p]=l[e].name,C[p]=e,a.push(l[e].width),_[l[e].name]=l[e].align||"left",p++);if(N.includeGroupHeader&&te(v).jqGrid("isGroupHeaderOn"))for(r=v.p.groupHeader,p=0;p<r.length;p++){for(var s=[],m=r[p].groupHeaders,f=r[p].useColSpanStyle,c=0;c<l.length;c++){var u=!0;for(te.jgrid.isServiceCol(l[c].name)||!l[c]._expcol?u=!1:d=f?{text:v.p.colNames[c],style:"tableHeader",rowSpan:2,verticalAlign:"center"}:{text:"",style:"tableHeader"},t=0;t<m.length;t++)if(m[t].startColumnName===l[c].name){for(var g=m[t].numberOfColumns,y=c;y<c+m[t].numberOfColumns;y++)!0===l[y].hidden&&g--;!(d={text:m[t].titleText,colSpan:g,style:"tableHeader"})===u&&0<g&&(u=!0,c+=m[t].numberOfColumns-g)}u&&s.push(d)}j.push(s)}if(N.includeLabels)if(v.p.colSpanHeader.length){for(r=v.p.colSpanHeader,s=[],c=0;c<w.length;c++){for(d={text:v.p.colNames[c],style:"tableHeader",verticalAlign:"center"},t=0;t<r.length;t++)r[t].startColumnName===w[c]&&(d={text:r[t].titleText,colSpan:r[t].numberOfColumns,style:"tableHeader"});s.push(d),e++}j.push(s)}else j.push(o);if(N.includeHeader&&v.p.headerrow)for(var h,x=te(v).jqGrid("headerData","getlength"),I=0;I<x;I++){for(h=te(v).jqGrid("headerData","get",null,!1,I,!1),o=[],c=0;c<w.length;c++)d={text:te.jgrid.stripHtml(te.jgrid.getAccessor(h,w[c])),style:"tableFooter",alignment:_[w[c]]},o.push(d);j.push(o)}if(v.p.grouping){var F=!!v.p.groupingView._locgr;v.p.groupingView._locgr=!1,n(i),v.p.groupingView._locgr=F}else for(var b,p=0,B=i.length;p<B;p++){for(o=[],b=i[p],c=t=0;c<w.length;c++)d={text:null==b[w[c]]?"":te.jgrid.stripHtml(te.jgrid.formatCell(te.jgrid.getAccessor(b,w[c])+"",C[t],i[p],l[C[t]],v,"pdf")),alignment:_[w[c]],style:"tableBody"},o.push(d),t++;j.push(o)}if(N.includeFooter&&v.p.footerrow)for(x=te(v).jqGrid("footerData","getlength"),I=0;I<x;I++){var T=te(v).jqGrid("footerData","get",null,!1,I,!1),o=[];for(c=0;c<w.length;c++)d={text:te.jgrid.stripHtml(te.jgrid.getAccessor(T,w[c])),style:"tableFooter",alignment:_[w[c]]},o.push(d);j.push(o)}F={style:"tableExample",widths:a,table:{headerRows:null!=r?0:1,body:j}},N.centerTableOnPage&&(F={columns:[{width:"*",text:""},{style:"tableExample",width:"auto",widths:a,table:{headerRows:null!=r?0:1,body:j},alignment:"center"},{width:"*",text:""}]}),F={pageSize:N.pageSize,pageOrientation:N.orientation,content:[F],styles:{tableHeader:{bold:!0,fontSize:11,color:"#2e6e9e",fillColor:"#dfeffc",alignment:"center"},tableBody:{fontSize:10},tableFooter:{bold:!0,fontSize:11,color:"#2e6e9e",fillColor:"#dfeffc"},title:{alignment:"center",fontSize:15},description:{}},defaultStyle:{fontSize:10}};N.description&&F.content.unshift({text:N.description,style:"description",margin:[0,0,0,12]}),N.title&&F.content.unshift({text:N.title,style:"title",margin:[0,0,0,12]}),te.jgrid.isFunction(N.onBeforeExport)&&N.onBeforeExport.call(v,F);try{var k=pdfMake.createPdf(F);k.getDataUrl(function(e){te.jgrid.isFunction(N.loadIndicator)?N.loadIndicator.call(v,"hide"):N.loadIndicator&&te(v).jqGrid("progressBar",{method:"hide",loadtype:v.p.loadui})}),"open"===N.download?k.open():k.getBuffer(function(e){te.jgrid.saveAs(e,N.fileName,{type:N.mimetype})})}catch(e){throw e}})},exportToHtml:function(u){var g;return u=te.extend(!0,{title:"",onBeforeExport:null,includeLabels:!0,includeGroupHeader:!0,includeFooter:!0,includeHeader:!0,tableClass:"jqgridprint",autoPrint:!1,topText:"",bottomText:"",returnAsString:!1,treeindent:"&nbsp;",visibleTreeNodes:!1,loadIndicator:!0},u||{}),this.each(function(){for(var v=this,m=v.p.colModel,e=0,j={body:v.p.treeGrid?te(v).jqGrid("getRowData",null,!0,u.treeindent,u.visibleTreeNodes):v.addLocalData(!0),header:[],footer:[],width:[],map:[],align:[]},t=0,r=m.length;t<r;t++)m[t]._expcol=!0,void 0===m[t].exportcol?m[t].hidden&&(m[t]._expcol=!1):m[t]._expcol=m[t].exportcol,"cb"!==m[t].name&&"rn"!==m[t].name&&"subgrid"!==m[t].name&&"sc"!==m[t].name&&m[t]._expcol&&(j.header[e]=m[t].name,j.width[e]=m[t].width,j.map[e]=t,j.align[e]=m[t].align||"left",e++);var l=document.createElement("a"),o=function(e){l.href=e;e=l.host;return-1===e.indexOf("/")&&0!==l.pathname.indexOf("/")&&(e+="/"),l.protocol+"//"+e+l.pathname+l.search},w=function(e,t,r,l,o){for(var a,n,d="<tr>",i=0,p=j.header.length;i<p&&(n=o?' colspan= "'+j.header.length+'" style=text-align:left':!0===l?" style=width:"+j.width[i]+"px;text-align:"+j.align[i]+";":" style=text-align:"+j.align[i]+";",a=j.header[i],e.hasOwnProperty(a)&&(d+="<"+t+n+">"+(r?te.jgrid.formatCell(te.jgrid.getAccessor(e,a),j.map[i],e,m[j.map[i]],v,"html"):e[a])+"</"+t+">"),!o);i++);return d+"</tr>"};function a(f){var c=v.p.groupingView,u=[],g=c.groupField.length,s=m.length,y=0,h="";function x(e,t,r,l){for(var o,a,n=function(e,t,r){var l,o=!1;if(0===t)o=r[e];else{var a=r[e].idx;if(0===a)o=r[e];else for(l=e;0<=l;l--)if(r[l].idx===a-t){o=r[l];break}}return o}(e,t,r),d=n.cnt,i=I(j.header),p=l;p<s;p++)m[p]._expcol&&(a="{0}",te.each(n.summary,function(){if(this.nm===m[p].name){m[p].summaryTpl&&(a=m[p].summaryTpl),o=this.v,"string"==typeof this.st&&"avg"===this.st.toLowerCase()&&(this.sd&&this.vd?o=this.v/this.vd:this.v&&0<d&&(o=this.v/d));try{this.groupCount=n.cnt,this.groupIndex=n.dataIndex,this.groupValue=n.value}catch(e){o=this.v}return i[this.nm]=te.jgrid.stripHtml(te.jgrid.template(a,o)),!1}}));return i}function I(e){for(var t={},r=0;r<e.length;r++)t[e[r]]="";return t}te.each(m,function(e,t){for(var r=0;r<g;r++)if(c.groupField[r]===t.name){u[r]=e;break}});var F,b=te.makeArray(c.groupSummary);if(b.reverse(),"local"===v.p.datatype&&!v.p.loadonce){te(v).jqGrid("groupingSetup");for(var e=te.jgrid.getMethod("groupingPrepare"),t=0;t<j.body.length;t++)e.call(te(v),j.body[t],t)}return te.each(c.groups,function(e,t){y++;try{F=Array.isArray(c.formatDisplayField)&&te.jgrid.isFunction(c.formatDisplayField[t.idx])?c.formatDisplayField[t.idx].call(v,t.displayValue,t.value,v.p.colModel[u[t.idx]],t.idx,c):v.formatter("",t.displayValue,u[t.idx],t.value)}catch(e){F=t.displayValue}var r="";"string"!=typeof(r=te.jgrid.isFunction(c.groupText[t.idx])?c.groupText[t.idx].call(v,F,t.cnt,t.summary):te.jgrid.template(c.groupText[t.idx],F,t.cnt,t.summary))&&"number"!=typeof r&&(r=F);var l,o=!1,a=("header"===c.groupSummaryPos[t.idx]?l=x(e,0,c.groups,0):(l=I(j.header),o=!0),Object.keys(l));if(l[a[0]]=new Array(5*t.idx).join(" ")+r,h+=w(l,"td",!0,1===y,o),g-1===t.idx){for(var n,d,i=c.groups[e+1],a=t.startRow,p=void 0!==i?i.startRow:c.groups[e].startRow+c.groups[e].cnt,s=a;s<p&&f[+s];s++){var m=f[+s];h+=w(m,"td",!0)}if("header"!==c.groupSummaryPos[t.idx]){if(void 0!==i){for(d=0;d<c.groupField.length&&i.dataIndex!==c.groupField[d];d++);y=c.groupField.length-d}for(n=0;n<y;n++)b[n]&&(l=x(e,n,c.groups,0),h+=w(l,"td",!0));y=d}}}),h}te.jgrid.isFunction(u.loadIndicator)?u.loadIndicator.call(v,"show"):u.loadIndicator&&te(v).jqGrid("progressBar",{method:"show",loadtype:v.p.loadui,htmlcontent:te.jgrid.getRegional(v,"defaults.loadtext")});var n='<table class="'+u.tableClass+'">';if(u.includeLabels&&(n+="<thead>"+function(e,t,r){for(var l="<tr>",o=0,a=e.length;o<a;o++)l+="<"+t+(!0===r?" style=width:"+j.width[o]+"px;":"")+">"+v.p.colNames[j.map[o]]+"</"+t+">";return l+"</tr>"}(j.header,"th",!0)+"</thead>"),n+="<tbody>",u.includeHeader&&v.p.headerrow)for(var d,i=te(v).jqGrid("footerData","getlength"),p=0;p<i;p++)for(p=0;p<i;p++)d=te(v).jqGrid("headerData","get",null,!1,p,!1),n+=w(d,"td",!1);if(v.p.grouping){var s=!!v.p.groupingView._locgr;v.p.groupingView._locgr=!1,n+=a(j.body),v.p.groupingView._locgr=s}else for(e=0,r=j.body.length;e<r;e++)n+=w(j.body[e],"td",!0,0===e);if(u.includeFooter&&v.p.footerrow)for(i=te(v).jqGrid("footerData","getlength"),p=0;p<i;p++)j.footer[p]=te(v).jqGrid("footerData","get",null,!1,p,!1),n+=w(j.footer[p],"td",!1);if(n=n+"</tbody>"+"</table>",u.returnAsString)g=n;else{var f=window.open("",""),c=(f.document.close(),u.title?"<title>"+u.title+"</title>":"");te("style, link").each(function(){c+=function(e){e=te(e).clone()[0];return"link"===e.nodeName.toLowerCase()&&(e.href=o(e.href)),e.outerHTML}(this)});try{f.document.head.innerHTML=c}catch(e){te(f.document.head).html(c)}f.document.body.innerHTML=(u.title?"<h1>"+u.title+"</h1>":"")+"<div>"+(u.topText||"")+"</div>"+n+"<div>"+(u.bottomText||"")+"</div>",te(f.document.body).addClass("html-view"),te("img",f.document.body).each(function(e,t){t.setAttribute("src",o(t.getAttribute("src")))}),te.jgrid.isFunction(u.onBeforeExport)&&u.onBeforeExport.call(v,f),Boolean(f.chrome)?u.autoPrint&&(f.print(),f.close()):setTimeout(function(){u.autoPrint&&(f.print(),f.close())},1e3)}te.jgrid.isFunction(u.loadIndicator)?u.loadIndicator.call(v,"hide"):u.loadIndicator&&te(v).jqGrid("progressBar",{method:"hide",loadtype:v.p.loadui})}),g}})});js/minified/i18n/grid.locale-cs.js000064400000011305151676727230012667 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.cs={defaults:{recordtext:"Zobrazeno {0} - {1} z {2} záznamů",emptyrecords:"Nenalezeny žádné záznamy",loadtext:"Načítám...",savetext:"Saving...",pgtext:"Strana {0} z {1}",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Vyhledávám...",Find:"Hledat",Reset:"Reset",odata:[{oper:"eq",text:"rovno"},{oper:"ne",text:"nerovno"},{oper:"lt",text:"menší"},{oper:"le",text:"menší nebo rovno"},{oper:"gt",text:"větší"},{oper:"ge",text:"větší nebo rovno"},{oper:"bw",text:"začíná s"},{oper:"bn",text:"nezačíná s"},{oper:"in",text:"je v"},{oper:"ni",text:"není v"},{oper:"ew",text:"končí s"},{oper:"en",text:"nekončí s"},{oper:"cn",text:"obsahuje"},{oper:"nc",text:"neobsahuje"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"všech"},{op:"OR",text:"některého z"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Přidat záznam",editCaption:"Editace záznamu",bSubmit:"Uložit",bCancel:"Storno",bClose:"Zavřít",saveData:"Data byla změněna! Uložit změny?",bYes:"Ano",bNo:"Ne",bExit:"Zrušit",msg:{required:"Pole je vyžadováno",number:"Prosím, vložte validní číslo",minValue:"hodnota musí být větší než nebo rovná ",maxValue:"hodnota musí být menší než nebo rovná ",email:"není validní e-mail",integer:"Prosím, vložte celé číslo",date:"Prosím, vložte validní datum",url:"není platnou URL. Vyžadován prefix ('http://' or 'https://')",nodefined:" není definován!",novalue:" je vyžadována návratová hodnota!",customarray:"Custom function mělá vrátit pole!",customfcheck:"Custom function by měla být přítomna v případě custom checking!"}},view:{caption:"Zobrazit záznam",bClose:"Zavřít"},del:{caption:"Smazat",msg:"Smazat vybraný(é) záznam(y)?",bSubmit:"Smazat",bCancel:"Storno"},nav:{edittext:" ",edittitle:"Editovat vybraný řádek",addtext:" ",addtitle:"Přidat nový řádek",deltext:" ",deltitle:"Smazat vybraný záznam ",searchtext:" ",searchtitle:"Najít záznamy",refreshtext:"",refreshtitle:"Obnovit tabulku",alertcap:"Varování",alerttext:"Prosím, vyberte řádek",viewtext:"",viewtitle:"Zobrazit vybraný řádek",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Zobrazit/Skrýt sloupce",bSubmit:"Uložit",bCancel:"Storno"},errors:{errcap:"Chyba",nourl:"Není nastavena url",norecords:"Žádné záznamy ke zpracování",model:"Délka colNames <> colModel!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0.00"},date:{dayNames:["Ne","Po","Út","St","Čt","Pá","So","Neděle","Pondělí","Úterý","Středa","Čtvrtek","Pátek","Sobota"],monthNames:["Led","Úno","Bře","Dub","Kvě","Čer","Čvc","Srp","Zář","Říj","Lis","Pro","Leden","Únor","Březen","Duben","Květen","Červen","Červenec","Srpen","Září","Říjen","Listopad","Prosinec"],AmPm:["do","od","DO","OD"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});js/minified/i18n/grid.locale-th.js000064400000015174151676727230012705 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.th={defaults:{recordtext:"แสดง {0} - {1} จาก {2}",emptyrecords:"ไม่พบข้อมูล",loadtext:"กำลังร้องขอข้อมูล...",pgtext:"หน้า {0} จาก {1}",savetext:"Saving...",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"กำลังค้นหา...",Find:"ค้นหา",Reset:"คืนค่ากลับ",odata:[{oper:"eq",text:"เท่ากับ"},{oper:"ne",text:"ไม่เท่ากับ"},{oper:"lt",text:"น้อยกว่า"},{oper:"le",text:"ไม่มากกว่า"},{oper:"gt",text:"มากกกว่า"},{oper:"ge",text:"ไม่น้อยกว่า"},{oper:"bw",text:"ขึ้นต้นด้วย"},{oper:"bn",text:"ไม่ขึ้นต้นด้วย"},{oper:"in",text:"มีคำใดคำหนึ่งใน"},{oper:"ni",text:"ไม่มีคำใดคำหนึ่งใน"},{oper:"ew",text:"ลงท้ายด้วย"},{oper:"en",text:"ไม่ลงท้ายด้วย"},{oper:"cn",text:"มีคำว่า"},{oper:"nc",text:"ไม่มีคำว่า"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"และ",text:"ทั้งหมด"},{op:"หรือ",text:"ใดๆ"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"เพิ่มข้อมูล",editCaption:"แก้ไขข้อมูล",bSubmit:"บันทึก",bCancel:"ยกเลิก",bClose:"ปิด",saveData:"คุณต้องการบันทึการแก้ไข ใช่หรือไม่?",bYes:"บันทึก",bNo:"ละทิ้งการแก้ไข",bExit:"ยกเลิก",msg:{required:"ข้อมูลนี้จำเป็น",number:"กรุณากรอกหมายเลขให้ถูกต้อง",minValue:"ค่าของข้อมูลนี้ต้องไม่น้อยกว่า",maxValue:"ค่าของข้อมูลนี้ต้องไม่มากกว่า",email:"อีเมลล์นี้ไม่ถูกต้อง",integer:"กรุณากรอกเป็นจำนวนเต็ม",date:"กรุณากรอกวันที่ให้ถูกต้อง",url:"URL ไม่ถูกต้อง URL จำเป็นต้องขึ้นต้นด้วย 'http://' หรือ 'https://'",nodefined:"ไม่ได้ถูกกำหนดค่า!",novalue:"ต้องการการคืนค่า!",customarray:"ฟังก์ชันที่สร้างขึ้นต้องส่งค่ากลับเป็นแบบแอเรย์",customfcheck:"ระบบต้องการฟังก์ชันที่สร้างขึ้นสำหรับการตรวจสอบ!"}},view:{caption:"เรียกดูข้อมูล",bClose:"ปิด"},del:{caption:"ลบข้อมูล",msg:"คุณต้องการลบข้อมูลที่ถูกเลือก ใช่หรือไม่?",bSubmit:"ต้องการลบ",bCancel:"ยกเลิก"},nav:{edittext:"",edittitle:"แก้ไขข้อมูล",addtext:"",addtitle:"เพิ่มข้อมูล",deltext:"",deltitle:"ลบข้อมูล",searchtext:"",searchtitle:"ค้นหาข้อมูล",refreshtext:"",refreshtitle:"รีเฟรช",alertcap:"คำเตือน",alerttext:"กรุณาเลือกข้อมูล",viewtext:"",viewtitle:"ดูรายละเอียดข้อมูล",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"กรุณาเลือกคอลัมน์",bSubmit:"ตกลง",bCancel:"ยกเลิก"},errors:{errcap:"เกิดความผิดพลาด",nourl:"ไม่ได้กำหนด URL",norecords:"ไม่มีข้อมูลให้ดำเนินการ",model:"จำนวนคอลัมน์ไม่เท่ากับจำนวนคอลัมน์โมเดล!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0.00"},date:{dayNames:["อา","จ","อ","พ","พฤ","ศ","ส","อาทิตย์","จันทร์","อังคาร","พุธ","พฤหัสบดี","ศูกร์","เสาร์"],monthNames:["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค.","มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฏาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม"],AmPm:["am","pm","AM","PM"],S:function(e){return""},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});js/minified/i18n/grid.locale-fr.js000064400000012125151676727230012672 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.fr={defaults:{recordtext:"Enregistrements {0} - {1} sur {2}",emptyrecords:"Aucun enregistrement à afficher",loadtext:"Chargement...",savetext:"Sauvegarde en cours...",pgtext:"Page {0} de {1}",pgfirst:"Première page",pglast:"Dernière page",pgnext:"Page suivante",pgprev:"Page précédente",pgrecs:"Enregistrements par page",showhide:"Réduire/Agrandir la grille",pagerCaption:"Grille::Options de pagination",pageText:"Page:",recordPage:"Enregistrements par page",nomorerecs:"Plus de données...",scrollPullup:"Glisser vers le haut pour charger plus de données...",scrollPulldown:"Glisser vers le bas pour rafraîchir...",scrollRefresh:"Relâcher pour rafraîchir...",valueCheckbox:"Case à cocher",valT:"cochée",valF:"décochée",selectLine:"Sélectionner une ligne",selectAllLines:"Sélectionner toutes les lignes"},search:{caption:"Recherche...",Find:"Chercher",Reset:"Réinitialiser",odata:[{oper:"eq",text:"égal"},{oper:"ne",text:"différent"},{oper:"lt",text:"inférieur"},{oper:"le",text:"inférieur ou égal"},{oper:"gt",text:"supérieur"},{oper:"ge",text:"supérieur ou égal"},{oper:"bw",text:"commence par"},{oper:"bn",text:"ne commence pas par"},{oper:"in",text:"est dans"},{oper:"ni",text:"n'est pas dans"},{oper:"ew",text:"finit par"},{oper:"en",text:"ne finit pas par"},{oper:"cn",text:"contient"},{oper:"nc",text:"ne contient pas"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"entre"}],groupOps:[{op:"AND",text:"tous"},{op:"OR",text:"au moins un"}],operandTitle:"Cliquer pour sélectionner l'opérateur.",resetTitle:"Réinitialiser la valeur de recherche",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filtre pour"},edit:{addCaption:"Ajouter",editCaption:"Éditer",bSubmit:"Valider",bCancel:"Annuler",bClose:"Fermer",saveData:"Les données ont changé ! Enregistrer les modifications ?",bYes:"Oui",bNo:"Non",bExit:"Annuler",msg:{required:"Champ obligatoire",number:"Saisissez un nombre correct",minValue:"La valeur doit être supérieure ou égale à",maxValue:"La valeur doit être inférieure ou égale à",email:"n'est pas un email valide",integer:"Saisissez un entier valide",url:"n'est pas une adresse valide. Préfixe requis ('http://' or 'https://')",nodefined:" n'est pas défini!",novalue:" la valeur de retour est requise!",customarray:"Une fonction personnalisée devrait retourner un tableau (array)!",customfcheck:"Une fonction personnalisée devrait être présente dans le cas d'une vérification personnalisée!"}},view:{caption:"Voir les enregistrements",bClose:"Fermer"},del:{caption:"Supprimer",msg:"Supprimer les enregistrements sélectionnés ?",bSubmit:"Supprimer",bCancel:"Annuler"},nav:{edittext:" ",edittitle:"Editer la ligne sélectionnée",addtext:" ",addtitle:"Ajouter une ligne",deltext:" ",deltitle:"Supprimer la ligne sélectionnée",searchtext:" ",searchtitle:"Chercher un enregistrement",refreshtext:"",refreshtitle:"Recharger le tableau",alertcap:"Avertissement",alerttext:"Veuillez sélectionner une ligne",viewtext:"",viewtitle:"Afficher la ligne sélectionnée",savetext:"",savetitle:"Sauvegarder la ligne",canceltext:"",canceltitle:"Annuler l'édition de la ligne",selectcaption:"Actions..."},col:{caption:"Afficher/Masquer les colonnes",bSubmit:"Valider",bCancel:"Annuler"},errors:{errcap:"Erreur",nourl:"Aucune adresse n'est paramétrée",norecords:"Aucun enregistrement à traiter",model:"Nombre de titres (colNames) <> Nombre de données (colModel)!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0,00"},date:{dayNames:["Dim","Lun","Mar","Mer","Jeu","Ven","Sam","Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"],monthNames:["Jan","Fév","Mar","Avr","Mai","Jui","Jul","Aou","Sep","Oct","Nov","Déc","Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Aout","Septembre","Octobre","Novembre","Décembre"],AmPm:["am","pm","AM","PM"],S:function(e){return 1==e?"er":"e"},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Trier en ordre croissant",sortdesc:"Trier en ordre décroissant",columns:"Colonnes",filter:"Filtrer",grouping:"Grouper par",ungrouping:"Séparer",searchTitle:"Prendre les items avec la valeur:",freeze:"Figer",unfreeze:"Relâcher",reorder:"Déplacer pour changer l'ordre",hovermenu:"Click for column quick actions"}}});js/minified/i18n/grid.locale-kr.js000064400000011474151676727230012705 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.kr={defaults:{recordtext:"보기 {0} - {1} / {2}",emptyrecords:"표시할 행이 없습니다",loadtext:"조회중...",pgtext:"페이지 {0} / {1}",savetext:"Saving...",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"검색...",Find:"찾기",Reset:"초기화",odata:[{oper:"eq",text:"같다"},{oper:"ne",text:"같지 않다"},{oper:"lt",text:"작다"},{oper:"le",text:"작거나 같다"},{oper:"gt",text:"크다"},{oper:"ge",text:"크거나 같다"},{oper:"bw",text:"로 시작한다"},{oper:"bn",text:"로 시작하지 않는다"},{oper:"in",text:"내에 있다"},{oper:"ni",text:"내에 있지 않다"},{oper:"ew",text:"로 끝난다"},{oper:"en",text:"로 끝나지 않는다"},{oper:"cn",text:"내에 존재한다"},{oper:"nc",text:"내에 존재하지 않는다"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"전부"},{op:"OR",text:"임의"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"행 추가",editCaption:"행 수정",bSubmit:"전송",bCancel:"취소",bClose:"닫기",saveData:"자료가 변경되었습니다! 저장하시겠습니까?",bYes:"예",bNo:"아니오",bExit:"취소",msg:{required:"필수항목입니다",number:"유효한 번호를 입력해 주세요",minValue:"입력값은 크거나 같아야 합니다",maxValue:"입력값은 작거나 같아야 합니다",email:"유효하지 않은 이메일주소입니다",integer:"유효한 숫자를 입력하세요",date:"유효한 날짜를 입력하세요",url:"은 유효하지 않은 URL입니다. 문장앞에 다음단어가 필요합니다('http://' or 'https://')",nodefined:" 은 정의도지 않았습니다!",novalue:" 반환값이 필요합니다!",customarray:"사용자정의 함수는 배열을 반환해야 합니다!",customfcheck:"Custom function should be present in case of custom checking!"}},view:{caption:"행 조회",bClose:"닫기"},del:{caption:"삭제",msg:"선택된 행을 삭제하시겠습니까?",bSubmit:"삭제",bCancel:"취소"},nav:{edittext:"",edittitle:"선택된 행 편집",addtext:"",addtitle:"행 삽입",deltext:"",deltitle:"선택된 행 삭제",searchtext:"",searchtitle:"행 찾기",refreshtext:"",refreshtitle:"그리드 갱신",alertcap:"경고",alerttext:"행을 선택하세요",viewtext:"",viewtitle:"선택된 행 조회",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"열을 선택하세요",bSubmit:"확인",bCancel:"취소"},errors:{errcap:"오류",nourl:"설정된 url이 없습니다",norecords:"처리할 행이 없습니다",model:"colNames의 길이가 colModel과 일치하지 않습니다!"},formatter:{integer:{thousandsSeparator:",",defaultValue:"0"},number:{decimalSeparator:".",thousandsSeparator:",",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:".",thousandsSeparator:",",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0.00"},date:{dayNames:["Sun","Mon","Tue","Wed","Thr","Fri","Sat","일","월","화","수","목","금","토"],monthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec","1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],AmPm:["am","pm","AM","PM"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"m-d-Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"Y/j/n",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});js/minified/i18n/grid.locale-ru.js000064400000015152151676727230012714 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.ru={defaults:{recordtext:"Просмотр {0} - {1} из {2}",emptyrecords:"Нет записей для просмотра",loadtext:"Загрузка...",pgtext:"Стр. {0} из {1}",savetext:"Сохранения...",pgfirst:"Первая",pglast:"Последняя",pgnext:"Следующая",pgprev:"Предыдущая",pgrecs:"Записей на стр.",showhide:"Показать/Скрыть таблицу",pagerCaption:"Грид::Параметры страницы",pageText:"Страница:",recordPage:"Записей на стр.",nomorerecs:"Нет больше записей...",scrollPullup:"Потяните, чтобы загрузить более...",scrollPulldown:"Потяните вниз чтобы обновить...",scrollRefresh:"Отпустите, чтобы обновить...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Поиск...",Find:"Найти",Reset:"Сброс",odata:[{oper:"eq",text:"равно"},{oper:"ne",text:"не равно"},{oper:"lt",text:"меньше"},{oper:"le",text:"меньше или равно"},{oper:"gt",text:"больше"},{oper:"ge",text:"больше или равно"},{oper:"bw",text:"начинается с"},{oper:"bn",text:"не начинается с"},{oper:"in",text:"находится в"},{oper:"ni",text:"не находится в"},{oper:"ew",text:"заканчивается на"},{oper:"en",text:"не заканчивается на"},{oper:"cn",text:"содержит"},{oper:"nc",text:"не содержит"},{oper:"nu",text:"равно NULL"},{oper:"nn",text:"не равно NULL"},{oper:"bt",text:"между"}],groupOps:[{op:"AND",text:"все"},{op:"OR",text:"любой"}],operandTitle:"Выбрать поисковую операцию.",resetTitle:"Сбросить поиск",addsubgrup:"Добавить группу",addrule:"Добавить правило",delgroup:"Удалить группу",delrule:"Удалить правило",Close:"Закрыть",Operand:"Операнд : ",Operation:"Опер. : ",filterFor:"filter for"},edit:{addCaption:"Добавить запись",editCaption:"Редактировать запись",bSubmit:"Сохранить",bCancel:"Отмена",bClose:"Закрыть",saveData:"Данные были измененны! Сохранить изменения?",bYes:"Да",bNo:"Нет",bExit:"Отмена",msg:{required:"Поле является обязательным",number:"Пожалуйста, введите правильное число",minValue:"значение должно быть больше либо равно",maxValue:"значение должно быть меньше либо равно",email:"некорректное значение e-mail",integer:"Пожалуйста, введите целое число",date:"Пожалуйста, введите правильную дату",url:"неверная ссылка. Необходимо ввести префикс ('http://' или 'https://')",nodefined:" не определено!",novalue:" возвращаемое значение обязательно!",customarray:"Пользовательская функция должна возвращать массив!",customfcheck:"Пользовательская функция должна присутствовать в случаи пользовательской проверки!"}},view:{caption:"Просмотр записи",bClose:"Закрыть"},del:{caption:"Удалить",msg:"Удалить выбранную запись(и)?",bSubmit:"Удалить",bCancel:"Отмена"},nav:{edittext:" ",edittitle:"Редактировать выбранную запись",addtext:" ",addtitle:"Добавить новую запись",deltext:" ",deltitle:"Удалить выбранную запись",searchtext:" ",searchtitle:"Найти записи",refreshtext:"",refreshtitle:"Обновить таблицу",alertcap:"Внимание",alerttext:"Пожалуйста, выберите запись",viewtext:"",viewtitle:"Просмотреть выбранную запись",savetext:"",savetitle:"Сохранить запись",canceltext:"",canceltitle:"Отмена сохранения",selectcaption:"Действия..."},col:{caption:"Показать/скрыть столбцы",bSubmit:"Сохранить",bCancel:"Отмена"},errors:{errcap:"Ошибка",nourl:"URL не установлен",norecords:"Нет записей для обработки",model:"Число полей не соответствует числу столбцов таблицы!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0,00"},date:{dayNames:["Вс","Пн","Вт","Ср","Чт","Пт","Сб","Воскресение","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота"],monthNames:["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек","Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],AmPm:["am","pm","AM","PM"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d.m.Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n.j.Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y G:i:s",MonthDay:"F d",ShortTime:"G:i",LongTime:"G:i:s",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Сортировка по возрастанию",sortdesc:"Сортировка по убыванию",columns:"Колонны",filter:"Филтрировать",grouping:"Группа по",ungrouping:"Разгруппировать",searchTitle:"Строки со значениями",freeze:"Закрепление",unfreeze:"Отмена закрепление",reorder:"Переместить в порядок",hovermenu:"Щелкните, чтобы перейти к быстрым действиям в столбце "}}});js/minified/i18n/grid.locale-sv.js000064400000011152151676727230012712 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.sv={defaults:{recordtext:"Visar {0} - {1} av {2}",emptyrecords:"Det finns inga poster att visa",loadtext:"Laddar...",pgtext:"Sida {0} av {1}",savetext:"Saving...",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Sök Poster - Ange sökvillkor",Find:"Sök",Reset:"Nollställ Villkor",odata:[{oper:"eq",text:"lika"},{oper:"ne",text:"ej lika"},{oper:"lt",text:"mindre"},{oper:"le",text:"mindre eller lika"},{oper:"gt",text:"större"},{oper:"ge",text:"större eller lika"},{oper:"bw",text:"börjar med"},{oper:"bn",text:"börjar inte med"},{oper:"in",text:"tillhör"},{oper:"ni",text:"tillhör inte"},{oper:"ew",text:"slutar med"},{oper:"en",text:"slutar inte med"},{oper:"cn",text:"innehåller"},{oper:"nc",text:"innehåller inte"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"alla"},{op:"OR",text:"eller"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Ny Post",editCaption:"Redigera Post",bSubmit:"Spara",bCancel:"Avbryt",bClose:"Stäng",saveData:"Data har ändrats! Spara förändringar?",bYes:"Ja",bNo:"Nej",bExit:"Avbryt",msg:{required:"Fältet är obligatoriskt",number:"Välj korrekt nummer",minValue:"värdet måste vara större än eller lika med",maxValue:"värdet måste vara mindre än eller lika med",email:"är inte korrekt e-post adress",integer:"Var god ange korrekt heltal",date:"Var god ange korrekt datum",url:"är inte en korrekt URL. Prefix måste anges ('http://' or 'https://')",nodefined:" är inte definierad!",novalue:" returvärde måste anges!",customarray:"Custom funktion måste returnera en vektor!",customfcheck:"Custom funktion måste finnas om Custom kontroll sker!"}},view:{caption:"Visa Post",bClose:"Stäng"},del:{caption:"Radera",msg:"Radera markerad(e) post(er)?",bSubmit:"Radera",bCancel:"Avbryt"},nav:{edittext:"",edittitle:"Redigera markerad rad",addtext:"",addtitle:"Skapa ny post",deltext:"",deltitle:"Radera markerad rad",searchtext:"",searchtitle:"Sök poster",refreshtext:"",refreshtitle:"Uppdatera data",alertcap:"Varning",alerttext:"Ingen rad är markerad",viewtext:"",viewtitle:"Visa markerad rad",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Välj Kolumner",bSubmit:"OK",bCancel:"Avbryt"},errors:{errcap:"Fel",nourl:"URL saknas",norecords:"Det finns inga poster att bearbeta",model:"Antal colNames <> colModel!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"Kr",defaultValue:"0,00"},date:{dayNames:["Sön","Mån","Tis","Ons","Tor","Fre","Lör","Söndag","Måndag","Tisdag","Onsdag","Torsdag","Fredag","Lördag"],monthNames:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec","Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December"],AmPm:["fm","em","FM","EM"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"Y-m-d",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});js/minified/i18n/grid.locale-dk.js000064400000010735151676727230012666 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.dk={defaults:{recordtext:"View {0} - {1} of {2}",emptyrecords:"No records to view",loadtext:"Loading...",savetext:"Saving...",pgtext:"Page {0} of {1}",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Søg...",Find:"Find",Reset:"Nulstil",odata:[{oper:"eq",text:"equal"},{oper:"ne",text:"not equal"},{oper:"lt",text:"less"},{oper:"le",text:"less or equal"},{oper:"gt",text:"greater"},{oper:"ge",text:"greater or equal"},{oper:"bw",text:"begins with"},{oper:"bn",text:"does not begin with"},{oper:"in",text:"is in"},{oper:"ni",text:"is not in"},{oper:"ew",text:"ends with"},{oper:"en",text:"does not end with"},{oper:"cn",text:"contains"},{oper:"nc",text:"does not contain"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"all"},{op:"OR",text:"any"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Tilføj",editCaption:"Ret",bSubmit:"Send",bCancel:"Annuller",bClose:"Luk",saveData:"Data has been changed! Save changes?",bYes:"Yes",bNo:"No",bExit:"Cancel",msg:{required:"Felt er nødvendigt",number:"Indtast venligst et validt tal",minValue:"værdi skal være større end eller lig med",maxValue:"værdi skal være mindre end eller lig med",email:"er ikke en valid email",integer:"Indtast venligst et validt heltalt",date:"Indtast venligst en valid datoværdi",url:"is not a valid URL. Prefix required ('http://' or 'https://')",nodefined:" is not defined!",novalue:" return value is required!",customarray:"Custom function should return array!",customfcheck:"Custom function should be present in case of custom checking!"}},view:{caption:"View Record",bClose:"Close"},del:{caption:"Slet",msg:"Slet valgte række(r)?",bSubmit:"Slet",bCancel:"Annuller"},nav:{edittext:" ",edittitle:"Rediger valgte række",addtext:" ",addtitle:"Tilføj ny række",deltext:" ",deltitle:"Slet valgte række",searchtext:" ",searchtitle:"Find poster",refreshtext:"",refreshtitle:"Indlæs igen",alertcap:"Advarsel",alerttext:"Vælg venligst række",viewtext:"",viewtitle:"View selected row",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Vis/skjul kolonner",bSubmit:"Send",bCancel:"Annuller"},errors:{errcap:"Fejl",nourl:"Ingel url valgt",norecords:"Ingen poster at behandle",model:"colNames og colModel har ikke samme længde!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0,00"},date:{dayNames:["Søn","Man","Tirs","Ons","Tors","Fre","Lør","Søndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag"],monthNames:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec","Januar","Februar","Marts","April","Maj","Juni","Juli","August","September","Oktober","November","December"],AmPm:["","","",""],S:function(e){return"."},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"j/n/Y",LongDate:"l d. F Y",FullDateTime:"l d F Y G:i:s",MonthDay:"d. F",ShortTime:"G:i",LongTime:"G:i:s",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});js/minified/i18n/grid.locale-no.js000064400000010311151676727230012672 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.no={defaults:{recordtext:"Rad {0} - {1}, totalt {2}",loadtext:"Laster...",pgtext:"Side {0} av {1}",savetext:"Saving...",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",emptyrecords:"Ingen poster funnet",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Søk...",Find:"Finn",Reset:"Nullstill",odata:[{oper:"eq",text:"lik"},{oper:"ne",text:"forskjellig fra"},{oper:"lt",text:"mindre enn"},{oper:"le",text:"mindre eller lik"},{oper:"gt",text:"større enn"},{oper:"ge",text:" større eller lik"},{oper:"bw",text:"starter med"},{oper:"ew",text:"slutter med"},{oper:"cn",text:"inneholder"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Ny rad",editCaption:"Rediger",bSubmit:"Send",bCancel:"Avbryt",bClose:"Lukk",processData:"Laster...",msg:{required:"Felt er obligatorisk",number:"Legg inn et gyldig tall",minValue:"verdi mø vøre større enn eller lik",maxValue:"verdi må være mindre enn eller lik",email:"er ikke en gyldig e-post adresse",integer:"Legg inn et gyldig heltall",date:"Legg inn en gyldig dato",url:"er ikke en gyldig URL. Prefiks påkrevd ('http://' eller 'https://')",nodefined:" er ikke definert!",novalue:" returverdi er påkrevd!",customarray:"Tilpasset funksjon må returnere en tabell!",customfcheck:"Tilpasset funksjon må eksistere!"}},view:{caption:"Åpne post",bClose:"Lukk"},del:{caption:"Slett",msg:"Slett valgte rad(er)?",bSubmit:"Slett",bCancel:"Avbryt",processData:"Behandler..."},nav:{edittext:" ",edittitle:"Rediger valgte rad(er)",addtext:" ",addtitle:"Legg til ny rad",deltext:" ",deltitle:"Slett valgte rad(er)",searchtext:" ",searchtitle:"Søk",refreshtext:"",refreshtitle:"Oppdater tabell",alertcap:"Advarsel",alerttext:"Velg rad",viewtext:" ",viewtitle:"Åpne valgt rad",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Vis/skjul kolonner",bSubmit:"Utfør",bCancel:"Avbryt"},errors:{errcap:"Feil",nourl:"Ingen url er satt",norecords:"Ingen poster å behandle",model:"colNames og colModel har forskjellig lengde!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:0},number:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,defaulValue:0},currency:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaulValue:0},date:{dayNames:["sø.","ma.","ti.","on.","to.","fr.","lø.","Søndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag"],monthNames:["jan.","feb.","mars","april","mai","juni","juli","aug.","sep.","okt.","nov.","des.","januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],AmPm:["","","",""],S:function(e){return"."},srcformat:"Y-m-d H:i:s",newformat:"Y-m-d H:i:s",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"j.n.Y",LongDate:"l j. F Y",FullDateTime:"l j. F Y kl. G.i.s",MonthDay:"j. F",ShortTime:"H:i",LongTime:"H:i:s",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"show",addParam:"",checkbox:{disabled:!0}},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});js/minified/i18n/grid.locale-vi.js000064400000011712151676727230012702 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.vi={defaults:{recordtext:"View {0} - {1} of {2}",emptyrecords:"Không có dữ liệu",loadtext:"Đang nạp dữ liệu...",pgtext:"Trang {0} trong tổng số {1}",savetext:"Saving...",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Tìm kiếm...",Find:"Tìm",Reset:"Khởi tạo lại",odata:[{oper:"eq",text:"bằng"},{oper:"ne",text:"không bằng"},{oper:"lt",text:"bé hơn"},{oper:"le",text:"bé hơn hoặc bằng"},{oper:"gt",text:"lớn hơn"},{oper:"ge",text:"lớn hơn hoặc bằng"},{oper:"bw",text:"bắt đầu với"},{oper:"bn",text:"không bắt đầu với"},{oper:"in",text:"trong"},{oper:"ni",text:"không nằm trong"},{oper:"ew",text:"kết thúc với"},{oper:"en",text:"không kết thúc với"},{oper:"cn",text:"chứa"},{oper:"nc",text:"không chứa"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"VÀ",text:"tất cả"},{op:"HOẶC",text:"bất kỳ"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Thêm bản ghi",editCaption:"Sửa bản ghi",bSubmit:"Gửi",bCancel:"Hủy bỏ",bClose:"Đóng",saveData:"Dữ liệu đã thay đổi! Có lưu thay đổi không?",bYes:"Có",bNo:"Không",bExit:"Hủy bỏ",msg:{required:"Trường dữ liệu bắt buộc có",number:"Hãy điền đúng số",minValue:"giá trị phải lớn hơn hoặc bằng với ",maxValue:"giá trị phải bé hơn hoặc bằng",email:"không phải là một email đúng",integer:"Hãy điền đúng số nguyên",date:"Hãy điền đúng ngày tháng",url:"không phải là URL. Khởi đầu bắt buộc là ('http://' hoặc 'https://')",nodefined:" chưa được định nghĩa!",novalue:" giá trị trả về bắt buộc phải có!",customarray:"Hàm nên trả về một mảng!",customfcheck:"Custom function should be present in case of custom checking!"}},view:{caption:"Xem bản ghi",bClose:"Đóng"},del:{caption:"Xóa",msg:"Xóa bản ghi đã chọn?",bSubmit:"Xóa",bCancel:"Hủy bỏ"},nav:{edittext:"",edittitle:"Sửa dòng đã chọn",addtext:"",addtitle:"Thêm mới 1 dòng",deltext:"",deltitle:"Xóa dòng đã chọn",searchtext:"",searchtitle:"Tìm bản ghi",refreshtext:"",refreshtitle:"Nạp lại lưới",alertcap:"Cảnh báo",alerttext:"Hãy chọn một dòng",viewtext:"",viewtitle:"Xem dòng đã chọn",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Chọn cột",bSubmit:"OK",bCancel:"Hủy bỏ"},errors:{errcap:"Lỗi",nourl:"không url được đặt",norecords:"Không có bản ghi để xử lý",model:"Chiều dài của colNames <> colModel!"},formatter:{integer:{thousandsSeparator:".",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,defaultValue:"0"},currency:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0"},date:{dayNames:["CN","T2","T3","T4","T5","T6","T7","Chủ nhật","Thứ hai","Thứ ba","Thứ tư","Thứ năm","Thứ sáu","Thứ bảy"],monthNames:["Th1","Th2","Th3","Th4","Th5","Th6","Th7","Th8","Th9","Th10","Th11","Th12","Tháng một","Tháng hai","Tháng ba","Tháng tư","Tháng năm","Tháng sáu","Tháng bảy","Tháng tám","Tháng chín","Tháng mười","Tháng mười một","Tháng mười hai"],AmPm:["sáng","chiều","SÁNG","CHIỀU"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"n/j/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});js/minified/i18n/grid.locale-ua.js000064400000011677151676727230012703 0ustar00!function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],a):a(jQuery)}(function(a){a.jgrid=a.jgrid||{},a.jgrid.hasOwnProperty("regional")||(a.jgrid.regional=[]),a.jgrid.regional.ua={defaults:{recordtext:"Перегляд {0} - {1} з {2}",emptyrecords:"Немає записів для перегляду",loadtext:"Завантаження...",pgtext:"Стор. {0} з {1}",savetext:"Saving...",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid"},search:{caption:"Пошук...",Find:"Знайти",Reset:"Скидання",odata:[{oper:"eq",text:"рівно"},{oper:"ne",text:"не рівно"},{oper:"lt",text:"менше"},{oper:"le",text:"менше або рівне"},{oper:"gt",text:"більше"},{oper:"ge",text:"більше або рівне"},{oper:"bw",text:"починається з"},{oper:"bn",text:"не починається з"},{oper:"in",text:"знаходиться в"},{oper:"ni",text:"не знаходиться в"},{oper:"ew",text:"закінчується на"},{oper:"en",text:"не закінчується на"},{oper:"cn",text:"містить"},{oper:"nc",text:"не містить"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"}],groupOps:[{op:"AND",text:"все"},{op:"OR",text:"будь-який"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value"},edit:{addCaption:"Додати запис",editCaption:"Змінити запис",bSubmit:"Зберегти",bCancel:"Відміна",bClose:"Закрити",saveData:"До данних були внесені зміни! Зберегти зміни?",bYes:"Так",bNo:"Ні",bExit:"Відміна",msg:{required:"Поле є обов'язковим",number:"Будь ласка, введіть правильне число",minValue:"значення повинне бути більше або дорівнює",maxValue:"значення повинно бути менше або дорівнює",email:"некоректна адреса електронної пошти",integer:"Будь ласка, введення дійсне ціле значення",date:"Будь ласка, введення дійсне значення дати",url:"не дійсний URL. Необхідна приставка ('http://' or 'https://')",nodefined:" is not defined!",novalue:" return value is required!",customarray:"Custom function should return array!",customfcheck:"Custom function should be present in case of custom checking!"}},view:{caption:"Переглянути запис",bClose:"Закрити"},del:{caption:"Видалити",msg:"Видалити обраний запис(и)?",bSubmit:"Видалити",bCancel:"Відміна"},nav:{edittext:" ",edittitle:"Змінити вибраний запис",addtext:" ",addtitle:"Додати новий запис",deltext:" ",deltitle:"Видалити вибраний запис",searchtext:" ",searchtitle:"Знайти записи",refreshtext:"",refreshtitle:"Оновити таблицю",alertcap:"Попередження",alerttext:"Будь ласка, виберіть запис",viewtext:"",viewtitle:"Переглянути обраний запис",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing"},col:{caption:"Показати/Приховати стовпці",bSubmit:"Зберегти",bCancel:"Відміна"},errors:{errcap:"Помилка",nourl:"URL не задан",norecords:"Немає записів для обробки",model:"Число полів не відповідає числу стовпців таблиці!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0,00"},date:{dayNames:["Нд","Пн","Вт","Ср","Чт","Пт","Сб","Неділя","Понеділок","Вівторок","Середа","Четвер","П'ятниця","Субота"],monthNames:["Січ","Лют","Бер","Кві","Тра","Чер","Лип","Сер","Вер","Жов","Лис","Гру","Січень","Лютий","Березень","Квітень","Травень","Червень","Липень","Серпень","Вересень","Жовтень","Листопад","Грудень"],AmPm:["am","pm","AM","PM"],S:function(a){return 11>a||a>13?["st","nd","rd","th"][Math.min((a-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d.m.Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n.j.Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y G:i:s",MonthDay:"F d",ShortTime:"G:i",LongTime:"G:i:s",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"}}});js/minified/i18n/grid.locale-ro.js000064400000012270151676727230012704 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.ro={defaults:{recordtext:"Vizualizare {0} - {1} din {2}",emptyrecords:"Nu există înregistrări de vizualizat",loadtext:"Încărcare...",pgtext:"Pagina {0} din {1}",savetext:"Salvare...",pgfirst:"Prima pagină",pglast:"Ultima pagină",pgnext:"Următoarea pagină",pgprev:"Pagina anterioară",pgrecs:"Înregistrări pe pagină",showhide:"Comutați Extindeți Restrângeți grila",pagerCaption:"Setări Grid::Page",pageText:"Pagina:",recordPage:"Înregistrări pe pagină",nomorerecs:"Nu mai există înregistrări...",scrollPullup:"Trageți în sus pentru a încărca mai multe...",scrollPulldown:"Trageți în jos pentru a reîmprospăta...",scrollRefresh:"Eliberați pentru a reîmprospăta...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Caută...",Find:"Caută",Reset:"Resetare",odata:[{oper:"eq",text:"egal"},{oper:"ne",text:"diferit"},{oper:"lt",text:"mai mic"},{oper:"le",text:"mai mic sau egal"},{oper:"gt",text:"mai mare"},{oper:"ge",text:"mai mare sau egal"},{oper:"bw",text:"începe cu"},{oper:"bn",text:"nu începe cu"},{oper:"in",text:"se găsește în"},{oper:"ni",text:"nu se găsește în"},{oper:"ew",text:"se termină cu"},{oper:"en",text:"nu se termină cu"},{oper:"cn",text:"conține"},{oper:"nc",text:""},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"toate"},{op:"OR",text:"oricare"}],operandTitle:"Faceți clic pentru a selecta operația de căutare.",resetTitle:"Resetați valoarea căutării",addsubgrup:"Adăugați subgrup",addrule:"Adăugați o regulă",delgroup:"Șterge grupul",delrule:"Ștergeți regula",Close:"Închide",Operand:"Operand : ",Operation:"Operație : ",filterFor:"filter for"},edit:{addCaption:"Adăugare înregistrare",editCaption:"Modificare înregistrare",bSubmit:"Salvează",bCancel:"Anulare",bClose:"Închide",saveData:"Informațiile au fost modificate! Salvați modificările?",bYes:"Da",bNo:"Nu",bExit:"Anulare",msg:{required:"Câmpul este obligatoriu",number:"Vă rugăm introduceți un număr valid",minValue:"valoarea trebuie sa fie mai mare sau egală cu",maxValue:"valoarea trebuie sa fie mai mică sau egală cu",email:"nu este o adresă de e-mail validă",integer:"Vă rugăm introduceți un număr valid",date:"Vă rugăm să introduceți o dată validă",url:"Nu este un URL valid. Prefixul  este necesar('http://' or 'https://')",nodefined:" nu este definit!",novalue:" valoarea returnată este necesară!",customarray:"Funcția personalizată ar trebui să returneze Array!",customfcheck:"Funcția personalizată ar trebui să fie prezentă în cazul verificării personalizate!"}},view:{caption:"Vizualizare înregistrare",bClose:"Închidere"},del:{caption:"Ștegere",msg:"Ștergeți înregistrarea (înregistrările) selectate?",bSubmit:"Șterge",bCancel:"Anulare"},nav:{edittext:"",edittitle:"Modifică rândul selectat",addtext:"",addtitle:"Adaugă rând nou",deltext:"",deltitle:"Șterge rândul selectat",searchtext:"",searchtitle:"Căutare înregistrări",refreshtext:"",refreshtitle:"Reîncarcare Grid",alertcap:"Avertisment",alerttext:"Vă rugăm să selectați un rând",viewtext:"",viewtitle:"Vizualizează rândul selectat",savetext:"",savetitle:"Salvați rândul",canceltext:"",canceltitle:"Anulați editarea rândurilor",selectcaption:"Acțiuni..."},col:{caption:"Arată/Ascunde coloanele",bSubmit:"Salvează",bCancel:"Anulare"},errors:{errcap:"Eroare",nourl:"Niciun url nu este setat",norecords:"Nu sunt înregistrări de procesat",model:"Lungimea colNames <> colModel!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0,00"},date:{dayNames:["Dum","Lun","Mar","Mie","Joi","Vin","Sâm","Duminică","Luni","Marți","Miercuri","Joi","Vineri","Sâmbătă"],monthNames:["Ian","Feb","Mar","Apr","Mai","Iun","Iul","Aug","Sep","Oct","Noi","Dec","Ianuarie","Februarie","Martie","Aprilie","Mai","Iunie","Iulie","August","Septembrie","Octombrie","Noiembrie","Decembrie"],AmPm:["am","pm","AM","PM"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sortare ascendentă",sortdesc:"Sortează descrescător",columns:"Coloane",filter:"Filtru",grouping:"Grupează după",ungrouping:"Eliminarea Gruparea",searchTitle:"Obțineți elemente cu valoare care:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Mutați pentru a reordona",hovermenu:"Faceți clic pentru acțiuni rapide pe coloană"}}});js/minified/i18n/grid.locale-sk.js000064400000011364151676727230012704 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.sk={defaults:{recordtext:"Zobrazených {0} - {1} z {2} záznamov",emptyrecords:"Neboli nájdené žiadne záznamy",loadtext:"Načítám...",pgtext:"Strana {0} z {1}",savetext:"Saving...",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Vyhľadávam...",Find:"Hľadať",Reset:"Reset",odata:[{oper:"eq",text:"rovná sa"},{oper:"ne",text:"nerovná sa"},{oper:"lt",text:"menšie"},{oper:"le",text:"menšie alebo rovnajúce sa"},{oper:"gt",text:"väčšie"},{oper:"ge",text:"väčšie alebo rovnajúce sa"},{oper:"bw",text:"začína s"},{oper:"bn",text:"nezačína s"},{oper:"in",text:"je v"},{oper:"ni",text:"nie je v"},{oper:"ew",text:"končí s"},{oper:"en",text:"nekončí s"},{oper:"cn",text:"obahuje"},{oper:"nc",text:"neobsahuje"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"všetkých"},{op:"OR",text:"niektorého z"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Pridať záznam",editCaption:"Editácia záznamov",bSubmit:"Uložiť",bCancel:"Storno",bClose:"Zavrieť",saveData:"Údaje boli zmenené! Uložiť zmeny?",bYes:"Ano",bNo:"Nie",bExit:"Zrušiť",msg:{required:"Pole je požadované",number:"Prosím, vložte valídne číslo",minValue:"hodnota musí býť väčšia ako alebo rovná ",maxValue:"hodnota musí býť menšia ako alebo rovná ",email:"nie je valídny e-mail",integer:"Prosím, vložte celé číslo",date:"Prosím, vložte valídny dátum",url:"nie je platnou URL. Požadovaný prefix ('http://' alebo 'https://')",nodefined:" nie je definovaný!",novalue:" je vyžadovaná návratová hodnota!",customarray:"Custom function mala vrátiť pole!",customfcheck:"Custom function by mala byť prítomná v prípade custom checking!"}},view:{caption:"Zobraziť záznam",bClose:"Zavrieť"},del:{caption:"Zmazať",msg:"Zmazať vybraný(é) záznam(y)?",bSubmit:"Zmazať",bCancel:"Storno"},nav:{edittext:" ",edittitle:"Editovať vybraný riadok",addtext:" ",addtitle:"Pridať nový riadek",deltext:" ",deltitle:"Zmazať vybraný záznam ",searchtext:" ",searchtitle:"Nájsť záznamy",refreshtext:"",refreshtitle:"Obnoviť tabuľku",alertcap:"Varovanie",alerttext:"Prosím, vyberte riadok",viewtext:"",viewtitle:"Zobraziť vybraný riadok",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Zobrazit/Skrýť stĺpce",bSubmit:"Uložiť",bCancel:"Storno"},errors:{errcap:"Chyba",nourl:"Nie je nastavená url",norecords:"Žiadne záznamy k spracovaniu",model:"Dĺžka colNames <> colModel!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0.00"},date:{dayNames:["Ne","Po","Ut","St","Št","Pi","So","Nedela","Pondelok","Utorok","Streda","Štvrtok","Piatek","Sobota"],monthNames:["Jan","Feb","Mar","Apr","Máj","Jún","Júl","Aug","Sep","Okt","Nov","Dec","Január","Február","Marec","Apríl","Máj","Jún","Júl","August","September","Október","November","December"],AmPm:["do","od","DO","OD"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});js/minified/i18n/grid.locale-hu.js000064400000011311151676727230012673 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.hu={defaults:{recordtext:"Oldal {0} - {1} / {2}",emptyrecords:"Nincs találat",loadtext:"Betöltés...",pgtext:"Oldal {0} / {1}",savetext:"Mentés...",pgfirst:"Első oldal",pglast:"Utolsó oldal",pgnext:"Következő oldal",pgprev:"Előző oldal",pgrecs:"Rekordok oldalanként",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Oldal:",recordPage:"Rekordok oldalanként",nomorerecs:"Nincs több rekord...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Keresés...",Find:"Keres",Reset:"Alapértelmezett",odata:[{oper:"eq",text:"egyenlő"},{oper:"ne",text:"nem egyenlő"},{oper:"lt",text:"kevesebb"},{oper:"le",text:"kevesebb vagy egyenlő"},{oper:"gt",text:"nagyobb"},{oper:"ge",text:"nagyobb vagy egyenlő"},{oper:"bw",text:"ezzel kezdődik"},{oper:"bn",text:"nem ezzel kezdődik"},{oper:"in",text:"tartalmaz"},{oper:"ni",text:"nem tartalmaz"},{oper:"ew",text:"végződik"},{oper:"en",text:"nem végződik"},{oper:"cn",text:"tartalmaz"},{oper:"nc",text:"nem tartalmaz"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"között"}],groupOps:[{op:"AND",text:"all"},{op:"OR",text:"any"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Új tétel",editCaption:"Tétel szerkesztése",bSubmit:"Mentés",bCancel:"Mégse",bClose:"Bezárás",saveData:"A tétel megváltozott! Tétel mentése?",bYes:"Igen",bNo:"Nem",bExit:"Mégse",msg:{required:"Kötelező mező",number:"Kérjük, adjon meg egy helyes számot",minValue:"Nagyobb vagy egyenlőnek kell lenni mint ",maxValue:"Kisebb vagy egyenlőnek kell lennie mint",email:"Hibás email cím",integer:"Kérjük adjon meg egy helyes egész számot",date:"Kérjük adjon meg egy helyes dátumot",url:"nem helyes cím. Előtag kötelező ('http://' vagy 'https://')",nodefined:" nem definiált!",novalue:" visszatérési érték kötelező!!",customarray:"Custom function should return array!",customfcheck:"Custom function should be present in case of custom checking!"}},view:{caption:"Tétel megtekintése",bClose:"Bezárás"},del:{caption:"Törlés",msg:"Kiválaztott tétel(ek) törlése?",bSubmit:"Törlés",bCancel:"Mégse"},nav:{edittext:"",edittitle:"Tétel szerkesztése",addtext:"",addtitle:"Új tétel hozzáadása",deltext:"",deltitle:"Tétel törlése",searchtext:"",searchtitle:"Keresés",refreshtext:"",refreshtitle:"Frissítés",alertcap:"Figyelmeztetés",alerttext:"Kérem válasszon tételt.",viewtext:"",viewtitle:"Tétel megtekintése",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Oszlopok kiválasztása",bSubmit:"Ok",bCancel:"Mégse"},errors:{errcap:"Hiba",nourl:"Nincs URL beállítva",norecords:"Nincs feldolgozásra váró tétel",model:"colNames és colModel hossza nem egyenlő!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0,00"},date:{dayNames:["Va","Hé","Ke","Sze","Csü","Pé","Szo","Vasárnap","Hétfő","Kedd","Szerda","Csütörtök","Péntek","Szombat"],monthNames:["Jan","Feb","Már","Ápr","Máj","Jún","Júl","Aug","Szep","Okt","Nov","Dec","Január","Február","Március","Áprili","Május","Június","Július","Augusztus","Szeptember","Október","November","December"],AmPm:["de","du","DE","DU"],S:function(e){return".-ik"},srcformat:"Y-m-d",newformat:"Y/m/d",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"Y/j/n",LongDate:"Y. F hó d., l",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"a g:i",LongTime:"a g:i:s",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"Y, F"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});js/minified/i18n/grid.locale-el.js000064400000012747151676727230012675 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.el={defaults:{recordtext:"View {0} - {1} of {2}",emptyrecords:"No records to view",loadtext:"Φόρτωση...",savetext:"Saving...",pgtext:"Page {0} of {1}",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Αναζήτηση...",Find:"Εύρεση",Reset:"Επαναφορά",odata:[{oper:"eq",text:"equal"},{oper:"ne",text:"not equal"},{oper:"lt",text:"less"},{oper:"le",text:"less or equal"},{oper:"gt",text:"greater"},{oper:"ge",text:"greater or equal"},{oper:"bw",text:"begins with"},{oper:"bn",text:"does not begin with"},{oper:"in",text:"is in"},{oper:"ni",text:"is not in"},{oper:"ew",text:"ends with"},{oper:"en",text:"does not end with"},{oper:"cn",text:"contains"},{oper:"nc",text:"does not contain"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"all"},{op:"OR",text:"any"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Εισαγωγή Εγγραφής",editCaption:"Επεξεργασία Εγγραφής",bSubmit:"Καταχώρηση",bCancel:"Άκυρο",bClose:"Κλείσιμο",saveData:"Data has been changed! Save changes?",bYes:"Yes",bNo:"No",bExit:"Cancel",msg:{required:"Το πεδίο είναι απαραίτητο",number:"Το πεδίο δέχεται μόνο αριθμούς",minValue:"Η τιμή πρέπει να είναι μεγαλύτερη ή ίση του ",maxValue:"Η τιμή πρέπει να είναι μικρότερη ή ίση του ",email:"Η διεύθυνση e-mail δεν είναι έγκυρη",integer:"Το πεδίο δέχεται μόνο ακέραιους αριθμούς",url:"is not a valid URL. Prefix required ('http://' or 'https://')",nodefined:" is not defined!",novalue:" return value is required!",customarray:"Custom function should return array!",customfcheck:"Custom function should be present in case of custom checking!"}},view:{caption:"View Record",bClose:"Close"},del:{caption:"Διαγραφή",msg:"Διαγραφή των επιλεγμένων εγγραφών;",bSubmit:"Ναι",bCancel:"Άκυρο"},nav:{edittext:" ",edittitle:"Επεξεργασία επιλεγμένης εγγραφής",addtext:" ",addtitle:"Εισαγωγή νέας εγγραφής",deltext:" ",deltitle:"Διαγραφή επιλεγμένης εγγραφής",searchtext:" ",searchtitle:"Εύρεση Εγγραφών",refreshtext:"",refreshtitle:"Ανανέωση Πίνακα",alertcap:"Προσοχή",alerttext:"Δεν έχετε επιλέξει εγγραφή",viewtext:"",viewtitle:"View selected row",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Εμφάνιση / Απόκρυψη Στηλών",bSubmit:"ΟΚ",bCancel:"Άκυρο"},errors:{errcap:"Σφάλμα",nourl:"Δεν έχει δοθεί διεύθυνση χειρισμού για τη συγκεκριμένη ενέργεια",norecords:"Δεν υπάρχουν εγγραφές προς επεξεργασία",model:"Άνισος αριθμός πεδίων colNames/colModel!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0.00"},date:{dayNames:["Κυρ","Δευ","Τρι","Τετ","Πεμ","Παρ","Σαβ","Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],monthNames:["Ιαν","Φεβ","Μαρ","Απρ","Μαι","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ","Ιανουάριος","Φεβρουάριος","Μάρτιος","Απρίλιος","Μάιος","Ιούνιος","Ιούλιος","Αύγουστος","Σεπτέμβριος","Οκτώβριος","Νοέμβριος","Δεκέμβριος"],AmPm:["πμ","μμ","ΠΜ","ΜΜ"],S:function(e){return 1==e||1<e?["η"][Math.min((e-1)%10,3)]:""},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});js/minified/i18n/grid.locale-de.js000064400000011452151676727230012655 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.de={defaults:{recordtext:"Zeige {0} - {1} von {2}",emptyrecords:"Keine Datensätze vorhanden",loadtext:"Lädt...",savetext:"Speichern...",pgtext:"Seite {0} von {1}",pgfirst:"erste Seite",pglast:"letzte Seite",pgnext:"nächste Seite",pgprev:"vorherige Seite",pgrecs:"Datensätze pro Seite",showhide:"Toggle erweitern reduzieren",pagerCaption:"Grid::Seite Optionen",pageText:"Seite:",recordPage:"Ergebnisse pro Seite",nomorerecs:"Keine weiteren Datensätze...",scrollPullup:"Ziehen Sie, um mehr zu laden...",scrollPulldown:"Pulldown zu aktualisieren...",scrollRefresh:"Lassen Sie zu aktualisieren..."},search:{caption:"Suche...",Find:"Suchen",Reset:"Zurücksetzen",odata:[{oper:"eq",text:"gleich"},{oper:"ne",text:"ungleich"},{oper:"lt",text:"kleiner"},{oper:"le",text:"kleiner gleich"},{oper:"gt",text:"größer"},{oper:"ge",text:"größer gleich"},{oper:"bw",text:"beginnt mit"},{oper:"bn",text:"beginnt nicht mit"},{oper:"in",text:"ist in"},{oper:"ni",text:"ist nicht in"},{oper:"ew",text:"endet mit"},{oper:"en",text:"endet nicht mit"},{oper:"cn",text:"enthält"},{oper:"nc",text:"enthält nicht"},{oper:"nu",text:"ist Null"},{oper:"nn",text:"ist nicht Null"},{oper:"bt",text:"zwischen"}],groupOps:[{op:"AND",text:"alle"},{op:"OR",text:"mindestens eine"}],operandTitle:"Klicken Sie auf Suchoperation zu wählen.",resetTitle:"Reset Suche Wert",addsubgrup:"Gruppe hinzufügen",addrule:"In der Regel",delgroup:"Gruppe löschen",delrule:"Regel löschen",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Datensatz hinzufügen",editCaption:"Datensatz bearbeiten",bSubmit:"Speichern",bCancel:"Abbrechen",bClose:"Schließen",saveData:"Daten wurden geändert! Änderungen speichern?",bYes:"ja",bNo:"nein",bExit:"abbrechen",msg:{required:"Feld ist erforderlich",number:"Bitte geben Sie eine Zahl ein",minValue:"Wert muss größer oder gleich sein, als ",maxValue:"Wert muss kleiner oder gleich sein, als ",email:"ist keine gültige E-Mail-Adresse",integer:"Bitte geben Sie eine Ganzzahl ein",date:"Bitte geben Sie ein gültiges Datum ein",url:"ist keine gültige URL. Präfix muss eingegeben werden ('http://' oder 'https://')",nodefined:" ist nicht definiert!",novalue:" Rückgabewert ist erforderlich!",customarray:"Benutzerdefinierte Funktion sollte ein Array zurückgeben!",customfcheck:"Benutzerdefinierte Funktion sollte im Falle der benutzerdefinierten Überprüfung vorhanden sein!"}},view:{caption:"Datensatz anzeigen",bClose:"Schließen"},del:{caption:"Löschen",msg:"Ausgewählte Datensätze löschen?",bSubmit:"Löschen",bCancel:"Abbrechen"},nav:{edittext:" ",edittitle:"Ausgewählte Zeile editieren",addtext:" ",addtitle:"Neue Zeile einfügen",deltext:" ",deltitle:"Ausgewählte Zeile löschen",searchtext:" ",searchtitle:"Datensatz suchen",refreshtext:"",refreshtitle:"Tabelle neu laden",alertcap:"Warnung",alerttext:"Bitte Zeile auswählen",viewtext:"",viewtitle:"Ausgewählte Zeile anzeigen",savetext:"",savetitle:"Zeile speihern",canceltext:"",canceltitle:"Zeile abbrechen",selectcaption:"Aktionen..."},col:{caption:"Spalten auswählen",bSubmit:"Speichern",bCancel:"Abbrechen"},errors:{errcap:"Fehler",nourl:"Keine URL angegeben",norecords:"Keine Datensätze zu bearbeiten",model:"colNames und colModel sind unterschiedlich lang!"},formatter:{integer:{thousandsSeparator:".",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,prefix:"",suffix:" €",defaultValue:"0,00"},date:{dayNames:["So","Mo","Di","Mi","Do","Fr","Sa","Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],monthNames:["Jan","Feb","Mar","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez","Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],AmPm:["","","",""],S:function(){return"."},srcformat:"Y-m-d",newformat:"d.m.Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"d.m.Y",LongDate:"l, j. F Y",FullDateTime:"l, j. F Y H:i:s",MonthDay:"d F",ShortTime:"H:i",LongTime:"H:i:s",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Aufsteigend sortieren",sortdesc:"Absteigend sortieren",columns:"Spalte",filter:"Filter",grouping:"Gruppiere nach",ungrouping:"Gruppierung aufheben",searchTitle:"Erhalten Sie Artikel mit Wert:",freeze:"Einfrieren",unfreeze:"Freigeben",reorder:"Bewegen neu anordnen",hovermenu:"Click for column quick actions"}}});js/minified/i18n/grid.locale-sr-latin.js000064400000011211151676727230014007 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional["sr-latin"]={defaults:{recordtext:"Pregled {0} - {1} od {2}",emptyrecords:"Ne postoji nijedan zapis",loadtext:"Učitavanje…",pgtext:"Strana {0} od {1}",savetext:"Saving...",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Traženje...",Find:"Traži",Reset:"Resetuj",odata:[{oper:"eq",text:"jednako"},{oper:"ne",text:"nije jednako"},{oper:"lt",text:"manje"},{oper:"le",text:"manje ili jednako"},{oper:"gt",text:"veće"},{oper:"ge",text:"veće ili jednako"},{oper:"bw",text:"počinje sa"},{oper:"bn",text:"ne počinje sa"},{oper:"in",text:"je u"},{oper:"ni",text:"nije u"},{oper:"ew",text:"završava sa"},{oper:"en",text:"ne završava sa"},{oper:"cn",text:"sadrži"},{oper:"nc",text:"ne sadrži"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"sva"},{op:"OR",text:"bilo koje"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Dodaj zapis",editCaption:"Izmeni zapis",bSubmit:"Pošalji",bCancel:"Odustani",bClose:"Zatvori",saveData:"Podatak je izmenjen! Sačuvaj izmene?",bYes:"Da",bNo:"Ne",bExit:"Odustani",msg:{required:"Polje je obavezno",number:"Unesite ispravan broj",minValue:"vrednost mora biti veća od ili jednaka sa ",maxValue:"vrednost mora biti manja ili jednaka sa",email:"nije ispravna email adresa, nije valjda da ne umeš ukucati mail!?",integer:"Unesi celobrojnu vrednost ",date:"Unesite ispravan datum",url:"nije ispravan URL. Potreban je prefiks ('http://' or 'https://')",nodefined:" nije definisan!",novalue:" zahtevana je povratna vrednost!",customarray:"Prilagođena funkcija treba da vrati niz!",customfcheck:"Prilagođena funkcija treba da bude prisutana u slučaju prilagođene provere!"}},view:{caption:"Pogledaj zapis",bClose:"Zatvori"},del:{caption:"Izbrisi",msg:"Izbrisi izabran(e) zapise(e)?",bSubmit:"Izbriši",bCancel:"Odbaci"},nav:{edittext:"",edittitle:"Izmeni izabrani red",addtext:"",addtitle:"Dodaj novi red",deltext:"",deltitle:"Izbriši izabran red",searchtext:"",searchtitle:"Nađi zapise",refreshtext:"",refreshtitle:"Ponovo učitaj podatke",alertcap:"Upozorenje",alerttext:"Izaberite red",viewtext:"",viewtitle:"Pogledaj izabrani red",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Izaberi kolone",bSubmit:"OK",bCancel:"Odbaci"},errors:{errcap:"Greška",nourl:"Nije postavljen URL",norecords:"Nema zapisa za obradu",model:"Dužina modela colNames <> colModel!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0.00"},date:{dayNames:["Ned","Pon","Uto","Sre","Čet","Pet","Sub","Nedelja","Ponedeljak","Utorak","Srijeda","Četvrtak","Petak","Subota"],monthNames:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec","Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar"],AmPm:["am","pm","AM","PM"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});js/minified/i18n/grid.locale-pl.js000064400000011227151676727230012700 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.pl={defaults:{recordtext:"Pokaż {0} - {1} z {2}",emptyrecords:"Brak rekordów do pokazania",loadtext:"Ładowanie...",pgtext:"Strona {0} z {1}",savetext:"Saving...",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Wyszukiwanie...",Find:"Szukaj",Reset:"Czyść",odata:[{oper:"eq",text:"dokładnie"},{oper:"ne",text:"różne od"},{oper:"lt",text:"mniejsze od"},{oper:"le",text:"mniejsze lub równe"},{oper:"gt",text:"większe od"},{oper:"ge",text:"większe lub równe"},{oper:"bw",text:"zaczyna się od"},{oper:"bn",text:"nie zaczyna się od"},{oper:"in",text:"jest w"},{oper:"ni",text:"nie jest w"},{oper:"ew",text:"kończy się na"},{oper:"en",text:"nie kończy się na"},{oper:"cn",text:"zawiera"},{oper:"nc",text:"nie zawiera"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"oraz"},{op:"OR",text:"lub"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Dodaj rekord",editCaption:"Edytuj rekord",bSubmit:"Zapisz",bCancel:"Anuluj",bClose:"Zamknij",saveData:"Dane zostały zmienione! Zapisać zmiany?",bYes:"Tak",bNo:"Nie",bExit:"Anuluj",msg:{required:"Pole jest wymagane",number:"Proszę wpisać poprawną liczbę",minValue:"wartość musi być większa lub równa od",maxValue:"wartość musi być mniejsza lub równa od",email:"nie jest poprawnym adresem e-mail",integer:"Proszę wpisać poprawną liczbę",date:"Proszę podaj poprawną datę",url:"jest niewłaściwym adresem URL. Pamiętaj o prefiksie ('http://' lub 'https://')",nodefined:" niezdefiniowane!",novalue:" wymagana jest wartość zwracana!",customarray:"Funkcja niestandardowa powinna zwracać tablicę!",customfcheck:"Funkcja niestandardowa powinna być obecna w przypadku niestandardowego sprawdzania!"}},view:{caption:"Pokaż rekord",bClose:"Zamknij"},del:{caption:"Usuń",msg:"Czy usunąć wybrany rekord(y)?",bSubmit:"Usuń",bCancel:"Anuluj"},nav:{edittext:"",edittitle:"Edytuj wybrany wiersz",addtext:"",addtitle:"Dodaj nowy wiersz",deltext:"",deltitle:"Usuń wybrany wiersz",searchtext:"",searchtitle:"Wyszukaj rekord",refreshtext:"",refreshtitle:"Przeładuj",alertcap:"Uwaga",alerttext:"Proszę wybrać wiersz",viewtext:"",viewtitle:"Pokaż wybrany wiersz",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Pokaż/Ukryj kolumny",bSubmit:"Zatwierdź",bCancel:"Anuluj"},errors:{errcap:"Błąd",nourl:"Brak adresu url",norecords:"Brak danych",model:"Długość colNames <> colModel!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:" zł",defaultValue:"0,00"},date:{dayNames:["niedz.","pon.","wt.","śr.","czw.","pt.","sob.","niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"],monthNames:["sty","lut","mar","kwi","maj","cze","lip","sie","wrz","paź","lis","gru","styczeń","luty","marzec","kwiecień","maj","czerwiec","lipiec","sierpień","wrzesień","październik","listopad","grudzień"],AmPm:["","","",""],S:function(e){return""},srcformat:"Y-m-d",newformat:"d.m.Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"d.m.y",LongDate:"l, j F Y",FullDateTime:"l, j F Y H:i:s",MonthDay:"j F",ShortTime:"H:i",LongTime:"H:i:s",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});js/minified/i18n/grid.locale-sq.js000064400000011605151676727230012710 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.sq={defaults:{recordtext:"Shfaq {0} - {1}/{2}",emptyrecords:"Nuk ka rreshta për të shfaqur",loadtext:"Duke u ngarkuar...",savetext:"Duke ruajtur...",pgtext:"Faqja {0}/{1}",pgfirst:"Faqja e parë",pglast:"Faqja e fundit",pgnext:"Faqja tjetër",pgprev:"Faqja mëparshme",pgrecs:"Rreshta për faqe",showhide:"Shpalos ose mbyll tabelën",pagerCaption:"Tabela::Kruskoti i faqes",pageText:"Faqja:",recordPage:"Rreshta për faqe",nomorerecs:"Nuk ka rreshta të tjerë...",scrollPullup:"Tërhiq për lart për të tjerë...",scrollPulldown:"Tërqiq për poshtë për rifreskim...",scrollRefresh:"Lësho për rifreskim...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Kërko...",Find:"Gjej",Reset:"Pastro",odata:[{oper:"eq",text:"baraz"},{oper:"ne",text:"jo baraz"},{oper:"lt",text:"me e vogel"},{oper:"le",text:"me e vogel ose baraz"},{oper:"gt",text:"me e madhe"},{oper:"ge",text:"me e madhe ose baraz"},{oper:"bw",text:"fillon me"},{oper:"bn",text:"nuk fillon me"},{oper:"in",text:"brenda"},{oper:"ni",text:"jo brenda"},{oper:"ew",text:"mbaron me"},{oper:"en",text:"nuk mbaron me"},{oper:"cn",text:"permban"},{oper:"nc",text:"nuk permban"},{oper:"nu",text:"eshte bosh"},{oper:"nn",text:"nuk eshte bosh"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"te gjithe"},{op:"OR",text:"cfaredo"}],operandTitle:"Kliko per te zgjedhur veprimin.",resetTitle:"Fshi vlerat e kerkimit",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Shto rresht",editCaption:"Fshi rresht",bSubmit:"Vendos",bCancel:"Anullo",bClose:"Mbyll",saveData:"Te dhenat jane ndryshuar! Deshironi ti ruani ndryshimet?",bYes:"Po",bNo:"Jo",bExit:"Anullo",msg:{required:"Kjo fushe eshte e detyrueshme",number:"Ju lutem, vendosni nje numer te vlefshem",minValue:"vlera duhet te jete me e madhe ose e njejte me ",maxValue:"vlera duhet te jete me e vogel ose e njejte me",email:"nuk eshte adrese poste elektronike e vlefshme",integer:"Ju lutem, vendosni nje numer te plote te vlefshem",date:"Ju lutem, vendosni nje date te vlefshme",url:"nuk eshte URL e vlefshme. Nevojitet prefiksi ('http://' ose 'https://')",nodefined:" nuk eshte percaktuar!",novalue:" vlera si pergjigje eshte e detyreshme!",customarray:"Funksioni i personalizuar duhet te ktheje nje array!",customfcheck:"unksioni i personalizuar duhet te egzistoje ne rast kontrolli te personalizuar!"}},view:{caption:"Shfaq Rreshtin",bClose:"Mbyll"},del:{caption:"Fshi",msg:"Deshironi te fshini rreshtin/rreshtat e zgjedhur?",bSubmit:"Fshi",bCancel:"Anullo"},nav:{edittext:"",edittitle:"Modifiko rreshtin e zgjedhur",addtext:"",addtitle:"Shto rresht te ri",deltext:"",deltitle:"Fshi rreshtin e zgjedhur",searchtext:"",searchtitle:"Gjej rreshtat",refreshtext:"",refreshtitle:"Ringarko listen",alertcap:"Paralajmerim",alerttext:"Ju lutem, zgjidh nje rresht",viewtext:"",viewtitle:"Shfaq rreshtin e zgjedhur",savetext:"",savetitle:"Ruaj rreshtin",canceltext:"",canceltitle:"Anullo modifikim rreshti",selectcaption:"Veprime..."},col:{caption:"Zgjidh kolona",bSubmit:"Ok",bCancel:"Anullo"},errors:{errcap:"Gabim",nourl:"Nuk eshte percaktuar asnje URL",norecords:"Nuk ka rreshta per perpunim",model:"Gjatesia e emrit te kolones <> modeli i kolones!"},formatter:{integer:{thousandsSeparator:",",defaultValue:"0"},number:{decimalSeparator:".",thousandsSeparator:",",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:".",thousandsSeparator:",",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0.00"},date:{dayNames:["Dje","Hën","Mar","Mër","Enj","Pre","Sht","Djelë","Hënë","Martë","Mërkurë","Enjte","Premte","Shtunë"],monthNames:["Jan","Shk","Mar","Pri","Maj","Qer","Kor","Gus","Sht","Tet","Nën","Dhj","Janar","Shkurt","Mars","Prill","Maj","Qershor","Korrik","Gusht","Shtator","Tetor","Nëntor","Dhjetor"],AmPm:["am","pm","AM","PM"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"n/j/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});js/minified/i18n/grid.locale-ja.js000064400000012243151676727230012656 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.ja={defaults:{recordtext:"{2} 件中 {0} - {1} を表示 ",emptyrecords:"表示するレコードがありません",loadtext:"読み込み中...",pgtext:"{1} ページ中 {0} ページ目 ",savetext:"保存中...",pgfirst:"最初のページへ",pglast:"最後のページへ",pgnext:"次のページ",pgprev:"前のページ",pgrecs:"ページ単位のレコード数",showhide:"グリッドの展開/閉じ込み",pagerCaption:"グリッド::ページ設定",pageText:"ページ:",recordPage:"ページ単位のレコード数",nomorerecs:"レコードがありません...",scrollPullup:"上にスクロールして読み込み...",scrollPulldown:"下にスクロールして更新...",scrollRefresh:"放して更新...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"検索...",Find:"検索",Reset:"リセット",odata:[{oper:"eq",text:"次に等しい"},{oper:"ne",text:"次に等しくない"},{oper:"lt",text:"次より小さい"},{oper:"le",text:"次に等しいか小さい"},{oper:"gt",text:"次より大きい"},{oper:"ge",text:"次に等しいか大きい"},{oper:"bw",text:"次で始まる"},{oper:"bn",text:"次で始まらない"},{oper:"in",text:"次に含まれる"},{oper:"ni",text:"次に含まれない"},{oper:"ew",text:"次で終わる"},{oper:"en",text:"次で終わらない"},{oper:"cn",text:"次を含む"},{oper:"nc",text:"次を含まない"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"すべての"},{op:"OR",text:"いずれかの"}],operandTitle:"クリックして検索操作を選択",resetTitle:"検索値をリセット",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"レコード追加",editCaption:"レコード編集",bSubmit:"送信",bCancel:"キャンセル",bClose:"閉じる",saveData:"データが変更されています。保存しますか?",bYes:"はい",bNo:"いいえ",bExit:"キャンセル",msg:{required:"この項目は必須です。",number:"正しい数値を入力して下さい。",minValue:"次の値以上で入力して下さい。",maxValue:"次の値以下で入力して下さい。",email:"e-mailが正しくありません。",integer:"正しい整数値を入力して下さい。",date:"正しい値を入力して下さい。",url:"は有効なURLではありません。プレフィックスが必要です。 ('http://' または 'https://')",nodefined:" が定義されていません",novalue:" 戻り値が必要です",customarray:"カスタム関数は配列を返す必要があります",customfcheck:"カスタム検証にはカスタム関数が必要です"}},view:{caption:"レコードを表示",bClose:"閉じる"},del:{caption:"削除",msg:"選択したレコードを削除しますか?",bSubmit:"削除",bCancel:"キャンセル"},nav:{edittext:" ",edittitle:"選択した行を編集",addtext:" ",addtitle:"行を新規追加",deltext:" ",deltitle:"選択した行を削除",searchtext:" ",searchtitle:"レコード検索",refreshtext:"",refreshtitle:"グリッドをリロード",alertcap:"警告",alerttext:"行を選択して下さい。",viewtext:"",viewtitle:"選択した行を表示",savetext:"",savetitle:"列を保存",canceltext:"",canceltitle:"列の編集をキャンセル",selectcaption:"アクション..."},col:{caption:"列を表示/隠す",bSubmit:"送信",bCancel:"キャンセル"},errors:{errcap:"エラー",nourl:"URLが設定されていません。",norecords:"処理対象のレコードがありません。",model:"colNamesの長さがcolModelと一致しません。"},formatter:{integer:{thousandsSeparator:",",defaultValue:"0"},number:{decimalSeparator:".",thousandsSeparator:",",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:".",thousandsSeparator:",",decimalPlaces:0,prefix:"",suffix:"",defaultValue:"0"},date:{dayNames:["日","月","火","水","木","金","土","日","月","火","水","木","金","土"],monthNames:["1","2","3","4","5","6","7","8","9","10","11","12","1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],AmPm:["am","pm","AM","PM"],S:function(e){return"番目"},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});js/minified/i18n/grid.locale-id.js000064400000011173151676727230012661 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.id={defaults:{recordtext:"Data {0} - {1} dari {2}",emptyrecords:"Tidak ada data",loadtext:"Memuat...",pgtext:"Halaman {0} dari {1}",savetext:"Saving...",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Pencarian",Find:"Cari !",Reset:"Segarkan",odata:[{oper:"eq",text:"sama dengan"},{oper:"ne",text:"tidak sama dengan"},{oper:"lt",text:"kurang dari"},{oper:"le",text:"kurang dari atau sama dengan"},{oper:"gt",text:"lebih besar"},{oper:"ge",text:"lebih besar atau sama dengan"},{oper:"bw",text:"dimulai dengan"},{oper:"bn",text:"tidak dimulai dengan"},{oper:"in",text:"di dalam"},{oper:"ni",text:"tidak di dalam"},{oper:"ew",text:"diakhiri dengan"},{oper:"en",text:"tidak diakhiri dengan"},{oper:"cn",text:"mengandung"},{oper:"nc",text:"tidak mengandung"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"all"},{op:"OR",text:"any"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Tambah Data",editCaption:"Sunting Data",bSubmit:"Submit",bCancel:"Tutup",bClose:"Tutup",saveData:"Data telah berubah! Simpan perubahan?",bYes:"Ya",bNo:"Tidak",bExit:"Tutup",msg:{required:"kolom wajib diisi",number:"hanya nomer yang diperbolehkan",minValue:"kolom harus lebih besar dari atau sama dengan",maxValue:"kolom harus lebih kecil atau sama dengan",email:"alamat e-mail tidak valid",integer:"hanya nilai integer yang diperbolehkan",date:"nilai tanggal tidak valid",url:"Bukan URL yang valid. Harap gunakan ('http://' or 'https://')",nodefined:" belum didefinisikan!",novalue:" return value is required!",customarray:"Custom function should return array!",customfcheck:"Custom function should be present in case of custom checking!"}},view:{caption:"Menampilkan data",bClose:"Tutup"},del:{caption:"Hapus",msg:"Hapus data terpilih?",bSubmit:"Hapus",bCancel:"Batalkan"},nav:{edittext:"",edittitle:"Sunting data terpilih",addtext:"",addtitle:"Tambah baris baru",deltext:"",deltitle:"Hapus baris terpilih",searchtext:"",searchtitle:"Temukan data",refreshtext:"",refreshtitle:"Segarkan Grid",alertcap:"Warning",alerttext:"Harap pilih baris",viewtext:"",viewtitle:"Tampilkan baris terpilih",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Pilih Kolom",bSubmit:"Ok",bCancel:"Batal"},errors:{errcap:"Error",nourl:"Tidak ada url yang diset",norecords:"Tidak ada data untuk diproses",model:"Lebar dari colNames <> colModel!"},formatter:{integer:{thousandsSeparator:".",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,defaultValue:"0"},currency:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,prefix:"Rp. ",suffix:"",defaultValue:"0"},date:{dayNames:["Ming","Sen","Sel","Rab","Kam","Jum","Sab","Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"],monthNames:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agu","Sep","Okt","Nov","Des","Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember"],AmPm:["am","pm","AM","PM"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"n/j/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});js/minified/i18n/grid.locale-pt.js000064400000011133151676727230012704 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.pt={defaults:{recordtext:"View {0} - {1} of {2}",emptyrecords:"No records to view",loadtext:"A carregar...",pgtext:"Página {0} de {1}",savetext:"Saving...",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Busca...",Find:"Procurar",Reset:"Limpar",odata:[{oper:"eq",text:"igual"},{oper:"ne",text:"desigual"},{oper:"lt",text:"menor"},{oper:"le",text:"menor ou igual"},{oper:"gt",text:"maior"},{oper:"ge",text:"maior ou igual"},{oper:"bw",text:"comecacom"},{oper:"bn",text:"nao comeca com"},{oper:"in",text:"estadentro"},{oper:"ni",text:"nao esta dentro"},{oper:"ew",text:"finalizacom"},{oper:"en",text:"nao finaliza com"},{oper:"cn",text:"contem"},{oper:"nc",text:"nao contem"}],groupOps:[{op:"AND",text:"tudo"},{op:"OR",text:"qualquer"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Adicionar Registo",editCaption:"Modificar Registo",bSubmit:"Submeter",bCancel:"Cancelar",bClose:"Fechar",saveData:"Dados foram alterados. Guardar?",bYes:"Sim",bNo:"Nao",bExit:"Cancelar",msg:{required:"Campo obrigatório",number:"Por favor, introduza um numero",minValue:"O valor deve ser maior ou igual que",maxValue:"O valor deve ser menor ou igual a",email:"Não é um email válid",integer:"Por favor, introduza um numero inteiro",date:"Introduza una fecha correcta ",url:"nao e um URL valido. Requerido prefixo ('http://' or 'https://')",nodefined:" nao esta definido!",novalue:" valor requerido!",customarray:"Funcao customizada deve entrar!",customfcheck:"Funcao customizada deve estar presente em caso deconfirmar customizacao!"}},view:{caption:"View Record",bClose:"Close"},del:{caption:"Eliminar",msg:"Deseja eliminar o(s) registo(s) seleccionado(s)?",bSubmit:"Eliminar",bCancel:"Cancelar"},nav:{edittext:" ",edittitle:"Modificar registo seleccionado",addtext:" ",addtitle:"Adicionar novo registo",deltext:" ",deltitle:"Eliminar registo seleccionado",searchtext:" ",searchtitle:"Procurar",refreshtext:"",refreshtitle:"Actualizar",alertcap:"Aviso",alerttext:"Por favor, seleccione um registo",viewtext:"",viewtitle:"Ver coluna selecionada",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Mostrar/Ocultar Colunas",bSubmit:"Enviar",bCancel:"Cancelar"},errors:{errcap:"Erro",nourl:"Não especificou um url",norecords:"Não existem dados para processar",model:"Tamanho do colNames <> colModel!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0.00"},date:{dayNames:["Dom","Seg","Ter","Qua","Qui","Sex","Sab","Domingo","Segunda-Feira","Terça-Feira","Quarta-Feira","Quinta-Feira","Sexta-Feira","Sábado"],monthNames:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez","Janeiro","Fevereiro","Mar�o","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],AmPm:["am","pm","AM","PM"],S:function(e){return e<11||13<e?["�","�","�","�"][Math.min((e-1)%10,3)]:"�"},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});js/minified/i18n/grid.locale-bg.js000064400000014420151676727230012653 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.bg={defaults:{recordtext:"{0} - {1} от {2}",emptyrecords:"Няма запис(и)",loadtext:"Зареждам...",savetext:"Записвам...",pgtext:"Стр. {0} от {1}",pgfirst:"Първа Стр.",pglast:"Последна Стр.",pgnext:"Следваща Стр.",pgprev:"Предишна Стр.",pgrecs:"Брой записи на Стр.",showhide:"Свиване/Разтягане на таблицата",pagerCaption:"Таблица::Настр. Страница",pageText:"Страница:",recordPage:"Записи на стр.",nomorerecs:"Няма повече записи...",scrollPullup:"Издърпайте нагоре за повече...",scrollPulldown:"Дръпнете надолу за опресняване...",scrollRefresh:"Освободете за да опресните...",valT:"с отметка",valF:"без отметка",selectLine:"Избери ред",selectAllLines:"Избери всички"},search:{caption:"Търсене...",Find:"Намери",Reset:"Изчисти",odata:[{oper:"eq",text:"равно"},{oper:"ne",text:"различно"},{oper:"lt",text:"по-малко"},{oper:"le",text:"по-малко или="},{oper:"gt",text:"по-голямо"},{oper:"ge",text:"по-голямо или ="},{oper:"bw",text:"започва с"},{oper:"bn",text:"не започва с"},{oper:"in",text:"се намира в"},{oper:"ni",text:"не се намира в"},{oper:"ew",text:"завършва с"},{oper:"en",text:"не завършава с"},{oper:"cn",text:"съдържа"},{oper:"nc",text:"не съдържа"},{oper:"nu",text:"е NULL"},{oper:"nn",text:"не е NULL"},{oper:"bt",text:"между"}],groupOps:[{op:"AND",text:"&nbsp;И "},{op:"OR",text:"ИЛИ"}],operandTitle:"Натисни за избор на операнд.",resetTitle:"Изчисти стойността",addsubgrup:"Добави група",addrule:"Добави правило",delgroup:"Изтрий група",delrule:"Изтрий правило",Close:"Затвори",Operand:"Операнд : ",Operation:"Опер. : ",filterFor:"филтър за"},edit:{addCaption:"Нов Запис",editCaption:"Редакция Запис",bSubmit:"Запиши",bCancel:"Изход",bClose:"Затвори",saveData:"Данните са променени! Да съхраня ли промените?",bYes:"Да",bNo:"Не",bExit:"Отказ",msg:{required:"Полето е задължително",number:"Въведете валидно число!",minValue:"стойността трябва да е по-голяма или равна от",maxValue:"стойността трябва да е по-малка или равна от",email:"не е валиден ел. адрес",integer:"Въведете валидно цяло число",date:"Въведете валидна дата",url:"e невалиден URL. Изискава се префикс('http://' или 'https://')",nodefined:" е недефинирана!",novalue:" изисква връщане на стойност!",customarray:"Потреб. Функция трябва да върне масив!",customfcheck:"Потребителска функция е задължителна при този тип елемент!"}},view:{caption:"Преглед запис",bClose:"Затвори"},del:{caption:"Изтриване",msg:"Да изтрия ли избраният запис?",bSubmit:"Изтрий",bCancel:"Отказ"},nav:{edittext:" ",edittitle:"Редакция избран запис",addtext:" ",addtitle:"Добавяне нов запис",deltext:" ",deltitle:"Изтриване избран запис",searchtext:" ",searchtitle:"Търсене запис(и)",refreshtext:"",refreshtitle:"Обнови таблица",alertcap:"Предупреждение",alerttext:"Моля, изберете запис",viewtext:"",viewtitle:"Преглед избран запис",savetext:"",savetitle:"Съхрани запис",canceltext:"",canceltitle:"Отказ редакция",selectcaption:"Действия..."},col:{caption:"Избери колони",bSubmit:"Ок",bCancel:"Изход"},errors:{errcap:"Грешка",nourl:"Няма посочен url адрес",norecords:"Няма запис за обработка",model:"Модела не съответства на имената!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:" лв.",defaultValue:"0.00"},date:{dayNames:["Нед","Пон","Вт","Ср","Чет","Пет","Съб","Неделя","Понеделник","Вторник","Сряда","Четвъртък","Петък","Събота"],monthNames:["Яну","Фев","Мар","Апр","Май","Юни","Юли","Авг","Сеп","Окт","Нов","Дек","Януари","Февруари","Март","Април","Май","Юни","Юли","Август","Септември","Октомври","Ноември","Декември"],AmPm:["","","",""],S:function(e){return 7==e||8==e||27==e||28==e?"ми":["ви","ри","ти"][Math.min((e-1)%10,2)]},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Сортирай възходящо",sortdesc:"Сортирай низходящо",columns:"Колони",filter:"Филтрирай",grouping:"Групирай по",ungrouping:"Разгрупиране",searchTitle:"Търси данни със стойност, която",freeze:"Неподвижна",unfreeze:"Отмяна неподвижност",reorder:"Премести за пренареждане",hovermenu:"Щракнете за бързи действия в колоната"}}});js/minified/i18n/grid.locale-he.js000064400000012742151676727230012664 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.he={defaults:{recordtext:"מציג {0} - {1} מתוך {2}",emptyrecords:"אין רשומות להציג",loadtext:"טוען...",pgtext:"דף {0} מתוך {1}",savetext:"שומר...",pgfirst:"דף ראשון",pglast:"דף אחרון",pgnext:"דף הבאה",pgprev:"דף הקודם",pgrecs:"רשומות לעמוד",showhide:"החלפת מצב: הרחב כווץ טבלה",pagerCaption:"טבלה::הגדרות עמוד",pageText:"דף:",recordPage:"רשומות לעמוד",nomorerecs:"אין יותר רשומות...",scrollPullup:"גלול למעלה כדי לטעון עוד...",scrollPulldown:"גלול למטה כדי לרענן...",scrollRefresh:"שחרר כדי לרענן...",valT:"מסומן",valF:"אינה מסומנת",selectLine:"בחר שורה",selectAllLines:"בחר כל השורות"},search:{caption:"מחפש...",Find:"חפש",Reset:"איפוס",odata:[{oper:"eq",text:"שווה"},{oper:"ne",text:"לא שווה"},{oper:"lt",text:"קטן"},{oper:"le",text:"קטן או שווה"},{oper:"gt",text:"גדול"},{oper:"ge",text:"גדול או שווה"},{oper:"bw",text:"מתחיל ב"},{oper:"bn",text:"לא מתחיל ב"},{oper:"in",text:"נמצא ב"},{oper:"ni",text:"לא נמצא ב"},{oper:"ew",text:"מסתיים ב"},{oper:"en",text:"לא מסתיים ב"},{oper:"cn",text:"מכיל"},{oper:"nc",text:"לא מכיל"},{oper:"nu",text:"שווה ל null"},{oper:"nn",text:"אינו null"},{oper:"bt",text:"בֵּין"}],groupOps:[{op:"AND",text:"הכל"},{op:"OR",text:"אחד מ"}],operandTitle:"לחץ כדי לבחור פעולת חיפוש.",resetTitle:"איפוס ערך חיפוש",addsubgrup:"הוסף תת-קבוצה",addrule:"הוסף כלל",delgroup:"מחק את הקבוצה",delrule:"מחק כלל",Close:"סגור",Operand:"Operand : ",Operation:"Oper : ",filterFor:"לסנן עבור"},edit:{addCaption:"הוסף רשומה",editCaption:"ערוך רשומה",bSubmit:"עדכן",bCancel:"בטל",bClose:"סגור",saveData:"נתונים השתנו! לשמור?",bYes:"כן",bNo:"לא",bExit:"בטל",msg:{required:"שדה חובה",number:"אנא, הכנס מספר תקין",minValue:"ערך צריך להיות גדול או שווה ל ",maxValue:"ערך צריך להיות קטן או שווה ל ",email:"היא לא כתובת איימל תקינה",integer:"אנא, הכנס מספר שלם",date:"אנא, הכנס תאריך תקין",url:"הכתובת אינה תקינה. דרושה תחילית ('http://' או 'https://')",nodefined:" אינו מוגדר!",novalue:" נדרש ערך החזרה!",customarray:"פונקציה מותאמת אישית אמורה להחזיר מערך!",customfcheck:"פונקציה מותאמת אישית צריכה להיות נוכחת במקרה של בדיקה מותאמת אישית!"}},view:{caption:"הצג רשומה",bClose:"סגור"},del:{caption:"מחק",msg:"האם למחוק את הרשומה/ות המסומנות?",bSubmit:"מחק",bCancel:"בטל"},nav:{edittext:"",edittitle:"ערוך שורה מסומנת",addtext:"",addtitle:"הוסף שורה חדשה",deltext:"",deltitle:"מחק שורה מסומנת",searchtext:"",searchtitle:"חפש רשומות",refreshtext:"",refreshtitle:"טען גריד מחדש",alertcap:"אזהרה",alerttext:"אנא, בחר שורה",viewtext:"",viewtitle:"הצג שורה מסומנת",savetext:"",savetitle:"שמור שורה",canceltext:"",canceltitle:"בטל את עריכת השורה",selectcaption:"פעולות..."},col:{caption:"הצג/הסתר עמודות",bSubmit:"שלח",bCancel:"בטל"},errors:{errcap:"שגיאה",nourl:"לא הוגדרה כתובת url",norecords:"אין רשומות לעבד",model:"אורך של colNames <> colModel!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0.00"},date:{dayNames:["א","ב","ג","ד","ה","ו","ש","ראשון","שני","שלישי","רביעי","חמישי","שישי","שבת"],monthNames:["ינו","פבר","מרץ","אפר","מאי","יונ","יול","אוג","ספט","אוק","נוב","דצמ","ינואר","פברואר","מרץ","אפריל","מאי","יוני","יולי","אוגוסט","ספטמבר","אוקטובר","נובמבר","דצמבר"],AmPm:["לפני הצהרים","אחר הצהרים","לפני הצהרים","אחר הצהרים"],S:function(e){return e<11||13<e?["","","",""][Math.min((e-1)%10,3)]:""},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"מיון בסדר עולה",sortdesc:"מיון בסדר יורד",columns:"עמודות",filter:"מסנן",grouping:"קבץ לפי",ungrouping:"פירוק קבוצה",searchTitle:"קבל פריטים בעלי ערך אשר:",freeze:"קפא",unfreeze:"שחררו את ההקפאה",reorder:"העבר לסדר מחדש",hovermenu:"לחץ לפעולות מהירות בעמודה"}}});js/minified/i18n/grid.locale-gl.js000064400000011356151676727230012672 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.gl={defaults:{recordtext:"Amosando {0} - {1} de {2}",emptyrecords:"Sen rexistros que amosar",loadtext:"Cargando...",pgtext:"Páxina {0} de {1}",savetext:"Saving...",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Búsqueda...",Find:"Buscar",Reset:"Limpar",odata:[{oper:"eq",text:"igual "},{oper:"ne",text:"diferente a"},{oper:"lt",text:"menor que"},{oper:"le",text:"menor ou igual que"},{oper:"gt",text:"maior que"},{oper:"ge",text:"maior ou igual a"},{oper:"bw",text:"empece por"},{oper:"bn",text:"non empece por"},{oper:"in",text:"está en"},{oper:"ni",text:"non está en"},{oper:"ew",text:"termina por"},{oper:"en",text:"non termina por"},{oper:"cn",text:"contén"},{oper:"nc",text:"non contén"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"todo"},{op:"OR",text:"calquera"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Engadir rexistro",editCaption:"Modificar rexistro",bSubmit:"Gardar",bCancel:"Cancelar",bClose:"Pechar",saveData:"Modificáronse os datos, quere gardar os cambios?",bYes:"Si",bNo:"Non",bExit:"Cancelar",msg:{required:"Campo obrigatorio",number:"Introduza un número",minValue:"O valor debe ser maior ou igual a ",maxValue:"O valor debe ser menor ou igual a ",email:"non é un enderezo de correo válido",integer:"Introduza un valor enteiro",date:"Introduza unha data correcta ",url:"non é unha URL válida. Prefixo requerido ('http://' ou 'https://')",nodefined:" non está definido.",novalue:" o valor de retorno é obrigatorio.",customarray:"A función persoalizada debe devolver un array.",customfcheck:"A función persoalizada debe estar presente no caso de ter validación persoalizada."}},view:{caption:"Consultar rexistro",bClose:"Pechar"},del:{caption:"Eliminar",msg:"Desexa eliminar os rexistros seleccionados?",bSubmit:"Eliminar",bCancel:"Cancelar"},nav:{edittext:" ",edittitle:"Modificar a fila seleccionada",addtext:" ",addtitle:"Engadir unha nova fila",deltext:" ",deltitle:"Eliminar a fila seleccionada",searchtext:" ",searchtitle:"Buscar información",refreshtext:"",refreshtitle:"Recargar datos",alertcap:"Aviso",alerttext:"Seleccione unha fila",viewtext:"",viewtitle:"Ver fila seleccionada",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Mostrar/ocultar columnas",bSubmit:"Enviar",bCancel:"Cancelar"},errors:{errcap:"Erro",nourl:"Non especificou unha URL",norecords:"Non hai datos para procesar",model:"As columnas de nomes son diferentes das columnas de modelo"},formatter:{integer:{thousandsSeparator:".",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0,00"},date:{dayNames:["Do","Lu","Ma","Me","Xo","Ve","Sa","Domingo","Luns","Martes","Mércoles","Xoves","Vernes","Sábado"],monthNames:["Xan","Feb","Mar","Abr","Mai","Xuñ","Xul","Ago","Set","Out","Nov","Dec","Xaneiro","Febreiro","Marzo","Abril","Maio","Xuño","Xullo","Agosto","Setembro","Outubro","Novembro","Decembro"],AmPm:["am","pm","AM","PM"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d-m-Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});js/minified/i18n/grid.locale-lt.js000064400000011510151676727230012677 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.lt={defaults:{recordtext:"Peržiūrima {0} - {1} iš {2}",emptyrecords:"Įrašų nėra",loadtext:"Kraunama...",pgtext:"Puslapis {0} iš {1}",savetext:"Saving...",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Paieška...",Find:"Ieškoti",Reset:"Atstatyti",odata:[{oper:"eq",text:"lygu"},{oper:"ne",text:"nelygu"},{oper:"lt",text:"mažiau"},{oper:"le",text:"mažiau arba lygu"},{oper:"gt",text:"daugiau"},{oper:"ge",text:"daugiau arba lygu"},{oper:"bw",text:"prasideda"},{oper:"bn",text:"neprasideda"},{oper:"in",text:"reikšmė yra"},{oper:"ni",text:"reikšmės nėra"},{oper:"ew",text:"baigiasi"},{oper:"en",text:"nesibaigia"},{oper:"cn",text:"yra sudarytas"},{oper:"nc",text:"nėra sudarytas"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"visi"},{op:"OR",text:"bet kuris"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Sukurti įrašą",editCaption:"Redaguoti įrašą",bSubmit:"Išsaugoti",bCancel:"Atšaukti",bClose:"Uždaryti",saveData:"Duomenys buvo pakeisti! Išsaugoti pakeitimus?",bYes:"Taip",bNo:"Ne",bExit:"Atšaukti",msg:{required:"Privalomas laukas",number:"Įveskite tinkamą numerį",minValue:"reikšmė turi būti didesnė arba lygi ",maxValue:"reikšmė turi būti mažesnė arba lygi",email:"neteisingas el. pašto adresas",integer:"Įveskite teisingą sveikąjį skaičių",date:"Įveskite teisingą datą",url:"blogas adresas. Nepamirškite pridėti ('http://' arba 'https://')",nodefined:" nėra apibrėžta!",novalue:" turi būti gražinama kokia nors reikšmė!",customarray:"Custom f-ja turi grąžinti masyvą!",customfcheck:"Custom f-ja tūrėtų būti sukurta, prieš bandant ją naudoti!"}},view:{caption:"Peržiūrėti įrašus",bClose:"Uždaryti"},del:{caption:"Ištrinti",msg:"Ištrinti pažymėtus įrašus(-ą)?",bSubmit:"Ištrinti",bCancel:"Atšaukti"},nav:{edittext:"",edittitle:"Redaguoti pažymėtą eilutę",addtext:"",addtitle:"Pridėti naują eilutę",deltext:"",deltitle:"Ištrinti pažymėtą eilutę",searchtext:"",searchtitle:"Rasti įrašus",refreshtext:"",refreshtitle:"Perkrauti lentelę",alertcap:"Įspėjimas",alerttext:"Pasirinkite eilutę",viewtext:"",viewtitle:"Peržiūrėti pasirinktą eilutę",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Pasirinkti stulpelius",bSubmit:"Gerai",bCancel:"Atšaukti"},errors:{errcap:"Klaida",nourl:"Url reikšmė turi būti perduota",norecords:"Nėra įrašų, kuriuos būtų galima apdoroti",model:"colNames skaičius <> colModel skaičiui!"},formatter:{integer:{thousandsSeparator:"",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:"",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:",",thousandsSeparator:"",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0.00"},date:{dayNames:["Sek","Pir","Ant","Tre","Ket","Pen","Šeš","Sekmadienis","Pirmadienis","Antradienis","Trečiadienis","Ketvirtadienis","Penktadienis","Šeštadienis"],monthNames:["Sau","Vas","Kov","Bal","Geg","Bir","Lie","Rugj","Rugs","Spa","Lap","Gru","Sausis","Vasaris","Kovas","Balandis","Gegužė","Birželis","Liepa","Rugpjūtis","Rugsėjis","Spalis","Lapkritis","Gruodis"],AmPm:["am","pm","AM","PM"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});js/minified/i18n/grid.locale-en.js000064400000011022151676727230012660 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.en={defaults:{recordtext:"View {0} - {1} of {2}",emptyrecords:"No records to view",loadtext:"Loading...",savetext:"Saving...",pgtext:"Page {0} of {1}",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valueCheckbox:"Checkbox",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Search...",Find:"Find",Reset:"Reset",odata:[{oper:"eq",text:"equal"},{oper:"ne",text:"not equal"},{oper:"lt",text:"less"},{oper:"le",text:"less or equal"},{oper:"gt",text:"greater"},{oper:"ge",text:"greater or equal"},{oper:"bw",text:"begins with"},{oper:"bn",text:"does not begin with"},{oper:"in",text:"is in"},{oper:"ni",text:"is not in"},{oper:"ew",text:"ends with"},{oper:"en",text:"does not end with"},{oper:"cn",text:"contains"},{oper:"nc",text:"does not contain"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"all"},{op:"OR",text:"any"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Add Record",editCaption:"Edit Record",bSubmit:"Submit",bCancel:"Cancel",bClose:"Close",saveData:"Data has been changed! Save changes?",bYes:"Yes",bNo:"No",bExit:"Cancel",msg:{required:"Field is required",number:"Please, enter valid number",minValue:"value must be greater than or equal to ",maxValue:"value must be less than or equal to",email:"is not a valid e-mail",integer:"Please, enter valid integer value",date:"Please, enter valid date value",url:"is not a valid URL. Prefix required ('http://' or 'https://')",nodefined:" is not defined!",novalue:" return value is required!",customarray:"Custom function should return array!",customfcheck:"Custom function should be present in case of custom checking!"}},view:{caption:"View Record",bClose:"Close"},del:{caption:"Delete",msg:"Delete selected record(s)?",bSubmit:"Delete",bCancel:"Cancel"},nav:{edittext:"",edittitle:"Edit selected row",addtext:"",addtitle:"Add new row",deltext:"",deltitle:"Delete selected row",searchtext:"",searchtitle:"Find records",refreshtext:"",refreshtitle:"Reload Grid",alertcap:"Warning",alerttext:"Please, select row",viewtext:"",viewtitle:"View selected row",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Select columns",bSubmit:"Ok",bCancel:"Cancel"},errors:{errcap:"Error",nourl:"No url is set",norecords:"No records to process",model:"Length of colNames <> colModel!"},formatter:{integer:{thousandsSeparator:",",defaultValue:"0"},number:{decimalSeparator:".",thousandsSeparator:",",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:".",thousandsSeparator:",",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0.00"},date:{dayNames:["Sun","Mon","Tue","Wed","Thr","Fri","Sat","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec","January","February","March","April","May","June","July","August","September","October","November","December"],AmPm:["am","pm","AM","PM"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"n/j/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});js/minified/i18n/grid.locale-ca.js000064400000011267151676727230012654 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.ca={defaults:{recordtext:"Mostrant {0} - {1} de {2}",emptyrecords:"Sense registres que mostrar",loadtext:"Carregant...",savetext:"Saving...",pgtext:"Pàgina {0} de {1}",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Cerca...",Find:"Cercar",Reset:"Buidar",odata:[{oper:"eq",text:"equal"},{oper:"ne",text:"not equal"},{oper:"lt",text:"less"},{oper:"le",text:"less or equal"},{oper:"gt",text:"greater"},{oper:"ge",text:"greater or equal"},{oper:"bw",text:"begins with"},{oper:"bn",text:"does not begin with"},{oper:"in",text:"is in"},{oper:"ni",text:"is not in"},{oper:"ew",text:"ends with"},{oper:"en",text:"does not end with"},{oper:"cn",text:"contains"},{oper:"nc",text:"does not contain"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"tot"},{op:"OR",text:"qualsevol"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Afegir registre",editCaption:"Modificar registre",bSubmit:"Guardar",bCancel:"Cancelar",bClose:"Tancar",saveData:"Les dades han canviat. Guardar canvis?",bYes:"Yes",bNo:"No",bExit:"Cancel",msg:{required:"Camp obligatori",number:"Introdueixi un nombre",minValue:"El valor ha de ser major o igual que ",maxValue:"El valor ha de ser menor o igual a ",email:"no és una direcció de correu vàlida",integer:"Introdueixi un valor enter",date:"Introdueixi una data correcta ",url:"no és una URL vàlida. Prefix requerit ('http://' or 'https://')",nodefined:" is not defined!",novalue:" return value is required!",customarray:"Custom function should return array!",customfcheck:"Custom function should be present in case of custom checking!"}},view:{caption:"Veure registre",bClose:"Tancar"},del:{caption:"Eliminar",msg:"¿Desitja eliminar els registres seleccionats?",bSubmit:"Eliminar",bCancel:"Cancelar"},nav:{edittext:" ",edittitle:"Modificar fila seleccionada",addtext:" ",addtitle:"Agregar nova fila",deltext:" ",deltitle:"Eliminar fila seleccionada",searchtext:" ",searchtitle:"Cercar informació",refreshtext:"",refreshtitle:"Refrescar taula",alertcap:"Avís",alerttext:"Seleccioni una fila",viewtext:" ",viewtitle:"Veure fila seleccionada",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Mostrar/ocultar columnes",bSubmit:"Enviar",bCancel:"Cancelar"},errors:{errcap:"Error",nourl:"No s'ha especificat una URL",norecords:"No hi ha dades per processar",model:"Les columnes de noms són diferents de les columnes del model"},formatter:{integer:{thousandsSeparator:".",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0,00"},date:{dayNames:["Dg","Dl","Dt","Dc","Dj","Dv","Ds","Diumenge","Dilluns","Dimarts","Dimecres","Dijous","Divendres","Dissabte"],monthNames:["Gen","Febr","Març","Abr","Maig","Juny","Jul","Ag","Set","Oct","Nov","Des","Gener","Febrer","Març","Abril","Maig","Juny","Juliol","Agost","Setembre","Octubre","Novembre","Desembre"],AmPm:["am","pm","AM","PM"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d-m-Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"show",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});js/minified/i18n/grid.locale-tr.js000064400000011222151676727230012705 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.tr={defaults:{recordtext:"{0}-{1} listeleniyor. Toplam:{2}",emptyrecords:"Kayıt bulunamadı",loadtext:"Yükleniyor...",pgtext:"{0}/{1}. Sayfa",savetext:"Saving...",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Arama...",Find:"Bul",Reset:"Temizle",odata:[{oper:"eq",text:"eşit"},{oper:"ne",text:"eşit değil"},{oper:"lt",text:"daha az"},{oper:"le",text:"daha az veya eşit"},{oper:"gt",text:"daha fazla"},{oper:"ge",text:"daha fazla veya eşit"},{oper:"bw",text:"ile başlayan"},{oper:"bn",text:"ile başlamayan"},{oper:"in",text:"içinde"},{oper:"ni",text:"içinde değil"},{oper:"ew",text:"ile biten"},{oper:"en",text:"ile bitmeyen"},{oper:"cn",text:"içeren"},{oper:"nc",text:"içermeyen"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"VE",text:"tüm"},{op:"VEYA",text:"herhangi"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Kayıt Ekle",editCaption:"Kayıt Düzenle",bSubmit:"Gönder",bCancel:"İptal",bClose:"Kapat",saveData:"Veriler değişti! Kayıt edilsin mi?",bYes:"Evet",bNo:"Hayıt",bExit:"İptal",msg:{required:"Alan gerekli",number:"Lütfen bir numara giriniz",minValue:"girilen değer daha büyük ya da buna eşit olmalıdır",maxValue:"girilen değer daha küçük ya da buna eşit olmalıdır",email:"geçerli bir e-posta adresi değildir",integer:"Lütfen bir tamsayı giriniz",url:"Geçerli bir URL değil. ('http://' or 'https://') ön eki gerekli.",nodefined:" is not defined!",novalue:" return value is required!",customarray:"Custom function should return array!",customfcheck:"Custom function should be present in case of custom checking!"}},view:{caption:"Kayıt Görüntüle",bClose:"Kapat"},del:{caption:"Sil",msg:"Seçilen kayıtlar silinsin mi?",bSubmit:"Sil",bCancel:"İptal"},nav:{edittext:" ",edittitle:"Seçili satırı düzenle",addtext:" ",addtitle:"Yeni satır ekle",deltext:" ",deltitle:"Seçili satırı sil",searchtext:" ",searchtitle:"Kayıtları bul",refreshtext:"",refreshtitle:"Tabloyu yenile",alertcap:"Uyarı",alerttext:"Lütfen bir satır seçiniz",viewtext:"",viewtitle:"Seçilen satırı görüntüle",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Sütunları göster/gizle",bSubmit:"Gönder",bCancel:"İptal"},errors:{errcap:"Hata",nourl:"Bir url yapılandırılmamış",norecords:"İşlem yapılacak bir kayıt yok",model:"colNames uzunluğu <> colModel!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0.00"},date:{dayNames:["Paz","Pts","Sal","Çar","Per","Cum","Cts","Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"],monthNames:["Oca","Şub","Mar","Nis","May","Haz","Tem","Ağu","Eyl","Eki","Kas","Ara","Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"],AmPm:["am","pm","AM","PM"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});js/minified/i18n/grid.locale-uk.js000064400000013372151676727230012707 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.ua={defaults:{recordtext:"Перегляд {0} - {1} з {2}",emptyrecords:"Немає записів для перегляду",loadtext:"Завантаження...",pgtext:"Стор. {0} з {1}",savetext:"Saving...",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Пошук...",Find:"Знайти",Reset:"Скидання",odata:[{oper:"eq",text:"рівно"},{oper:"ne",text:"не рівно"},{oper:"lt",text:"менше"},{oper:"le",text:"менше або рівне"},{oper:"gt",text:"більше"},{oper:"ge",text:"більше або рівне"},{oper:"bw",text:"починається з"},{oper:"bn",text:"не починається з"},{oper:"in",text:"знаходиться в"},{oper:"ni",text:"не знаходиться в"},{oper:"ew",text:"закінчується на"},{oper:"en",text:"не закінчується на"},{oper:"cn",text:"містить"},{oper:"nc",text:"не містить"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"все"},{op:"OR",text:"будь-який"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Додати запис",editCaption:"Змінити запис",bSubmit:"Зберегти",bCancel:"Відміна",bClose:"Закрити",saveData:"До данних були внесені зміни! Зберегти зміни?",bYes:"Так",bNo:"Ні",bExit:"Відміна",msg:{required:"Поле є обов'язковим",number:"Будь ласка, введіть правильне число",minValue:"значення повинне бути більше або дорівнює",maxValue:"значення повинно бути менше або дорівнює",email:"некоректна адреса електронної пошти",integer:"Будь ласка, введення дійсне ціле значення",date:"Будь ласка, введення дійсне значення дати",url:"не дійсний URL. Необхідна приставка ('http://' or 'https://')",nodefined:" is not defined!",novalue:" return value is required!",customarray:"Custom function should return array!",customfcheck:"Custom function should be present in case of custom checking!"}},view:{caption:"Переглянути запис",bClose:"Закрити"},del:{caption:"Видалити",msg:"Видалити обраний запис(и)?",bSubmit:"Видалити",bCancel:"Відміна"},nav:{edittext:" ",edittitle:"Змінити вибраний запис",addtext:" ",addtitle:"Додати новий запис",deltext:" ",deltitle:"Видалити вибраний запис",searchtext:" ",searchtitle:"Знайти записи",refreshtext:"",refreshtitle:"Оновити таблицю",alertcap:"Попередження",alerttext:"Будь ласка, виберіть запис",viewtext:"",viewtitle:"Переглянути обраний запис",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Показати/Приховати стовпці",bSubmit:"Зберегти",bCancel:"Відміна"},errors:{errcap:"Помилка",nourl:"URL не задан",norecords:"Немає записів для обробки",model:"Число полів не відповідає числу стовпців таблиці!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0,00"},date:{dayNames:["Нд","Пн","Вт","Ср","Чт","Пт","Сб","Неділя","Понеділок","Вівторок","Середа","Четвер","П'ятниця","Субота"],monthNames:["Січ","Лют","Бер","Кві","Тра","Чер","Лип","Сер","Вер","Жов","Лис","Гру","Січень","Лютий","Березень","Квітень","Травень","Червень","Липень","Серпень","Вересень","Жовтень","Листопад","Грудень"],AmPm:["am","pm","AM","PM"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d.m.Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n.j.Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y G:i:s",MonthDay:"F d",ShortTime:"G:i",LongTime:"G:i:s",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});js/minified/i18n/grid.locale-me.js000064400000011240151676727230012661 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.me={defaults:{recordtext:"Pregled {0} - {1} od {2}",emptyrecords:"Ne postoji nijedan zapis",loadtext:"Učitivanje...",pgtext:"Strana {0} od {1}",savetext:"Saving...",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Traženje...",Find:"Traži",Reset:"Resetuj",odata:[{oper:"eq",text:"jednako"},{oper:"ne",text:"nije jednako"},{oper:"lt",text:"manje"},{oper:"le",text:"manje ili jednako"},{oper:"gt",text:"veće"},{oper:"ge",text:"veće ili jednako"},{oper:"bw",text:"počinje sa"},{oper:"bn",text:"ne počinje sa"},{oper:"in",text:"je u"},{oper:"ni",text:"nije u"},{oper:"ew",text:"završava sa"},{oper:"en",text:"ne završava sa"},{oper:"cn",text:"sadrži"},{oper:"nc",text:"ne sadrži"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"sva"},{op:"OR",text:"bilo koje"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Dodaj zapis",editCaption:"Izmjeni zapis",bSubmit:"Pošalji",bCancel:"Odustani",bClose:"Zatvori",saveData:"Podatak je izmjenjen! Sačuvaj izmjene?",bYes:"Da",bNo:"Ne",bExit:"Odustani",msg:{required:"Polje je obavezno",number:"Unesite ispravan broj",minValue:"vrijednost mora biti veća od ili jednaka sa ",maxValue:"vrijednost mora biti manja ili jednaka sa",email:"nije ispravna email adresa, nije valjda da ne umiješ ukucati mail!?",integer:"Ne zajebaji se unesi cjelobrojnu vrijednost ",date:"Unesite ispravan datum",url:"nije ispravan URL. Potreban je prefiks ('http://' or 'https://')",nodefined:" nije definisan!",novalue:" zahtjevana je povratna vrijednost!",customarray:"Prilagođena funkcija treba da vrati niz!",customfcheck:"Prilagođena funkcija treba da bude prisutana u slučaju prilagođene provjere!"}},view:{caption:"Pogledaj zapis",bClose:"Zatvori"},del:{caption:"Izbrisi",msg:"Izbrisi izabran(e) zapise(e)?",bSubmit:"Izbriši",bCancel:"Odbaci"},nav:{edittext:"",edittitle:"Izmjeni izabrani red",addtext:"",addtitle:"Dodaj novi red",deltext:"",deltitle:"Izbriši izabran red",searchtext:"",searchtitle:"Nađi zapise",refreshtext:"",refreshtitle:"Ponovo učitaj podatke",alertcap:"Upozorenje",alerttext:"Izaberite red",viewtext:"",viewtitle:"Pogledaj izabrani red",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Izaberi kolone",bSubmit:"OK",bCancel:"Odbaci"},errors:{errcap:"Greška",nourl:"Nije postavljen URL",norecords:"Nema zapisa za obradu",model:"Dužina modela colNames <> colModel!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0.00"},date:{dayNames:["Ned","Pon","Uto","Sre","Čet","Pet","Sub","Nedelja","Ponedeljak","Utorak","Srijeda","Četvrtak","Petak","Subota"],monthNames:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec","Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar"],AmPm:["am","pm","AM","PM"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});js/minified/i18n/grid.locale-nl.js000064400000011220151676727230012667 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.nl={defaults:{recordtext:"regels {0} - {1} van {2}",emptyrecords:"Geen data gevonden.",loadtext:"Laden...",pgtext:"pagina  {0}  van {1}",savetext:"Saving...",pgfirst:"Eerste Pagina",pglast:"Laatste Pagina",pgnext:"Volgende Pagina",pgprev:"Vorige Pagina",pgrecs:"Records per Pagina",showhide:"Schakelen Uitklappen Inklappen Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Zoeken...",Find:"Zoek",Reset:"Herstellen",odata:[{oper:"eq",text:"gelijk aan"},{oper:"ne",text:"niet gelijk aan"},{oper:"lt",text:"kleiner dan"},{oper:"le",text:"kleiner dan of gelijk aan"},{oper:"gt",text:"groter dan"},{oper:"ge",text:"groter dan of gelijk aan"},{oper:"bw",text:"begint met"},{oper:"bn",text:"begint niet met"},{oper:"in",text:"is in"},{oper:"ni",text:"is niet in"},{oper:"ew",text:"eindigt met"},{oper:"en",text:"eindigt niet met"},{oper:"cn",text:"bevat"},{oper:"nc",text:"bevat niet"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"alle"},{op:"OR",text:"een van de"}],operandTitle:"Klik om de zoekterm te selecteren.",resetTitle:"Herstel zoekterm",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Nieuw",editCaption:"Bewerken",bSubmit:"Opslaan",bCancel:"Annuleren",bClose:"Sluiten",saveData:"Er is data aangepast! Wijzigingen opslaan?",bYes:"Ja",bNo:"Nee",bExit:"Sluiten",msg:{required:"Veld is verplicht",number:"Voer a.u.b. geldig nummer in",minValue:"Waarde moet groter of gelijk zijn aan ",maxValue:"Waarde moet kleiner of gelijk zijn aan",email:"is geen geldig e-mailadres",integer:"Voer a.u.b. een geldig getal in",date:"Voer a.u.b. een geldige waarde in",url:"is geen geldige URL. Prefix is verplicht ('http://' or 'https://')",nodefined:" is niet gedefineerd!",novalue:" return waarde is verplicht!",customarray:"Aangepaste functie moet array teruggeven!",customfcheck:"Aangepaste function moet aanwezig zijn in het geval van aangepaste controle!"}},view:{caption:"Tonen",bClose:"Sluiten"},del:{caption:"Verwijderen",msg:"Verwijder geselecteerde regel(s)?",bSubmit:"Verwijderen",bCancel:"Annuleren"},nav:{edittext:"",edittitle:"Bewerken",addtext:"",addtitle:"Nieuw",deltext:"",deltitle:"Verwijderen",searchtext:"",searchtitle:"Zoeken",refreshtext:"",refreshtitle:"Vernieuwen",alertcap:"Waarschuwing",alerttext:"Selecteer a.u.b. een regel",viewtext:"",viewtitle:"Openen",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Tonen/verbergen kolommen",bSubmit:"OK",bCancel:"Annuleren"},errors:{errcap:"Fout",nourl:"Er is geen URL gedefinieerd",norecords:"Geen data om te verwerken",model:"Lengte van 'colNames' is niet gelijk aan 'colModel'!"},formatter:{integer:{thousandsSeparator:".",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,prefix:"EUR ",suffix:"",defaultValue:"0.00"},date:{dayNames:["Zo","Ma","Di","Wo","Do","Vr","Za","Zondag","Maandag","Dinsdag","Woensdag","Donderdag","Vrijdag","Zaterdag"],monthNames:["Jan","Feb","Maa","Apr","Mei","Jun","Jul","Aug","Sep","Oct","Nov","Dec","Januari","Februari","Maart","April","Mei","Juni","Juli","Augustus","September","October","November","December"],AmPm:["am","pm","AM","PM"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l d F Y G:i:s",MonthDay:"d F",ShortTime:"G:i",LongTime:"G:i:s",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});js/minified/i18n/grid.locale-tw.js000064400000010672151676727230012722 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.tw={defaults:{recordtext:"{0} - {1} 共 {2} 條",emptyrecords:"沒有記錄",loadtext:"載入中...",pgtext:" {0} 共 {1} 頁",savetext:"Saving...",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"搜尋...",Find:"搜尋",Reset:"重設",odata:[{oper:"eq",text:"等於 "},{oper:"ne",text:"不等於 "},{oper:"lt",text:"小於 "},{oper:"le",text:"小於等於 "},{oper:"gt",text:"大於 "},{oper:"ge",text:"大於等於 "},{oper:"bw",text:"開始於 "},{oper:"bn",text:"不開始於 "},{oper:"in",text:"在其中 "},{oper:"ni",text:"不在其中 "},{oper:"ew",text:"結束於 "},{oper:"en",text:"不結束於 "},{oper:"cn",text:"包含 "},{oper:"nc",text:"不包含 "},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"所有"},{op:"OR",text:"任一"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"新增記錄",editCaption:"編輯記錄",bSubmit:"提交",bCancel:"取消",bClose:"關閉",saveData:"資料已改變,是否儲存?",bYes:"是",bNo:"否",bExit:"取消",msg:{required:"此欄必要",number:"請輸入有效的數字",minValue:"值必須大於等於 ",maxValue:"值必須小於等於 ",email:"不是有效的e-mail地址",integer:"請輸入有效整数",date:"請輸入有效時間",url:"網址無效。前綴必須為 ('http://' 或 'https://')",nodefined:" 未定義!",novalue:" 需要傳回值!",customarray:"自訂函數應傳回陣列!",customfcheck:"自訂檢查應有自訂函數!"}},view:{caption:"查看記錄",bClose:"關閉"},del:{caption:"刪除",msg:"刪除已選記錄?",bSubmit:"刪除",bCancel:"取消"},nav:{edittext:"",edittitle:"編輯已選列",addtext:"",addtitle:"新增列",deltext:"",deltitle:"刪除已選列",searchtext:"",searchtitle:"搜尋記錄",refreshtext:"",refreshtitle:"重新整理表格",alertcap:"警告",alerttext:"請選擇列",viewtext:"",viewtitle:"檢視已選列",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"選擇欄",bSubmit:"確定",bCancel:"取消"},errors:{errcap:"錯誤",nourl:"未設定URL",norecords:"無需要處理的記錄",model:"colNames 和 colModel 長度不同!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0.00"},date:{dayNames:["日","一","二","三","四","五","六","星期日","星期一","星期二","星期三","星期四","星期五","星期六"],monthNames:["一","二","三","四","五","六","七","八","九","十","十一","十二","一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],AmPm:["上午","下午","上午","下午"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"m-d-Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"Y/j/n",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});js/minified/i18n/grid.locale-hr.js000064400000011146151676727230012676 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.hr={defaults:{recordtext:"Pregled {0} - {1} od {2}",emptyrecords:"Nema zapisa",loadtext:"Učitavam...",pgtext:"Stranica {0} od {1}",savetext:"Saving...",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Traži...",Find:"Pretraživanje",Reset:"Poništi",odata:[{oper:"eq",text:"jednak"},{oper:"ne",text:"nije identičan"},{oper:"lt",text:"manje"},{oper:"le",text:"manje ili identično"},{oper:"gt",text:"veće"},{oper:"ge",text:"veće ili identično"},{oper:"bw",text:"počinje sa"},{oper:"bn",text:"ne počinje sa "},{oper:"in",text:"je u"},{oper:"ni",text:"nije u"},{oper:"ew",text:"završava sa"},{oper:"en",text:"ne završava sa"},{oper:"cn",text:"sadrži"},{oper:"nc",text:"ne sadrži"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"I",text:"sve"},{op:"ILI",text:"bilo koji"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Dodaj zapis",editCaption:"Promijeni zapis",bSubmit:"Preuzmi",bCancel:"Odustani",bClose:"Zatvri",saveData:"Podaci su promijenjeni! Preuzmi promijene?",bYes:"Da",bNo:"Ne",bExit:"Odustani",msg:{required:"Polje je obavezno",number:"Molim, unesite ispravan broj",minValue:"Vrijednost mora biti veća ili identična ",maxValue:"Vrijednost mora biti manja ili identična",email:"neispravan e-mail",integer:"Molim, unjeti ispravan cijeli broj (integer)",date:"Molim, unjeti ispravan datum ",url:"neispravan URL. Prefiks je obavezan ('http://' or 'https://')",nodefined:" nije definiran!",novalue:" zahtjevan podatak je obavezan!",customarray:"Opcionalna funkcija trebala bi bili polje (array)!",customfcheck:"Custom function should be present in case of custom checking!"}},view:{caption:"Otvori zapis",bClose:"Zatvori"},del:{caption:"Obriši",msg:"Obriši označen zapis ili više njih?",bSubmit:"Obriši",bCancel:"Odustani"},nav:{edittext:"",edittitle:"Promijeni obilježeni red",addtext:"",addtitle:"Dodaj novi red",deltext:"",deltitle:"Obriši obilježeni red",searchtext:"",searchtitle:"Potraži zapise",refreshtext:"",refreshtitle:"Ponovo preuzmi podatke",alertcap:"Upozorenje",alerttext:"Molim, odaberi red",viewtext:"",viewtitle:"Pregled obilježenog reda",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Obilježi kolonu",bSubmit:"Uredu",bCancel:"Odustani"},errors:{errcap:"Greška",nourl:"Nedostaje URL",norecords:"Bez zapisa za obradu",model:"colNames i colModel imaju različitu duljinu!"},formatter:{integer:{thousandsSeparator:".",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0,00"},date:{dayNames:["Ned","Pon","Uto","Sri","Čet","Pet","Sub","Nedjelja","Ponedjeljak","Utorak","Srijeda","Četvrtak","Petak","Subota"],monthNames:["Sij","Velj","Ožu","Tra","Svi","Lip","Srp","Kol","Ruj","Lis","Stu","Pro","Siječanj","Veljača","Ožujak","Travanj","Svibanj","Lipanj","Srpanj","Kolovoz","Rujan","Listopad","Studeni","Prosinac"],AmPm:["am","pm","AM","PM"],S:function(e){return""},srcformat:"Y-m-d",newformat:"d.m.Y.",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"d.m.Y.",LongDate:"l, j. F Y",FullDateTime:"l, j. F Y H:i:s",MonthDay:"d F",ShortTime:"H:i",LongTime:"H:i:s",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});js/minified/i18n/grid.locale-is.js000064400000011075151676727230012701 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.is={defaults:{recordtext:"Skoða {0} - {1} af {2}",emptyrecords:"Engar færslur",loadtext:"Hleður...",pgtext:"Síða {0} af {1}",savetext:"Saving...",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Leita...",Find:"Leita",Reset:"Endursetja",odata:[{oper:"eq",text:"sama og"},{oper:"ne",text:"ekki sama og"},{oper:"lt",text:"minna en"},{oper:"le",text:"minna eða jafnt og"},{oper:"gt",text:"stærra en"},{oper:"ge",text:"stærra eða jafnt og"},{oper:"bw",text:"byrjar á"},{oper:"bn",text:"byrjar ekki á"},{oper:"in",text:"er í"},{oper:"ni",text:"er ekki í"},{oper:"ew",text:"endar á"},{oper:"en",text:"endar ekki á"},{oper:"cn",text:"inniheldur"},{oper:"nc",text:"inniheldur ekki"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"allt"},{op:"OR",text:"eða"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Bæta við færslu",editCaption:"Breyta færslu",bSubmit:"Vista",bCancel:"Hætta við",bClose:"Loka",saveData:"Gögn hafa breyst! Vista breytingar?",bYes:"Já",bNo:"Nei",bExit:"Hætta við",msg:{required:"Reitur er nauðsynlegur",number:"Vinsamlega settu inn tölu",minValue:"gildi verður að vera meira en eða jafnt og ",maxValue:"gildi verður að vera minna en eða jafnt og ",email:"er ekki löglegt email",integer:"Vinsamlega settu inn tölu",date:"Vinsamlega setti inn dagsetningu",url:"er ekki löglegt URL. Vantar ('http://' eða 'https://')",nodefined:" er ekki skilgreint!",novalue:" skilagildi nauðsynlegt!",customarray:"Fall skal skila fylki!",customfcheck:"Fall skal vera skilgreint!"}},view:{caption:"Skoða færslu",bClose:"Loka"},del:{caption:"Eyða",msg:"Eyða völdum færslum ?",bSubmit:"Eyða",bCancel:"Hætta við"},nav:{edittext:" ",edittitle:"Breyta færslu",addtext:" ",addtitle:"Ný færsla",deltext:" ",deltitle:"Eyða færslu",searchtext:" ",searchtitle:"Leita",refreshtext:"",refreshtitle:"Endurhlaða",alertcap:"Viðvörun",alerttext:"Vinsamlega veldu færslu",viewtext:"",viewtitle:"Skoða valda færslu",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Sýna / fela dálka",bSubmit:"Vista",bCancel:"Hætta við"},errors:{errcap:"Villa",nourl:"Vantar slóð",norecords:"Engar færslur valdar",model:"Lengd colNames <> colModel!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0.00"},date:{dayNames:["Sun","Mán","Þri","Mið","Fim","Fös","Lau","Sunnudagur","Mánudagur","Þriðjudagur","Miðvikudagur","Fimmtudagur","Föstudagur","Laugardagur"],monthNames:["Jan","Feb","Mar","Apr","Maí","Jún","Júl","Ágú","Sep","Oct","Nóv","Des","Janúar","Febrúar","Mars","Apríl","Maí","Júný","Júlý","Ágúst","September","Október","Nóvember","Desember"],AmPm:["am","pm","AM","PM"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});js/minified/i18n/grid.locale-fa.js000064400000012720151676727230012652 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.fa={defaults:{recordtext:"نمابش {0} - {1} از {2}",emptyrecords:"رکوردی یافت نشد",loadtext:"بارگزاري...",savetext:"Saving...",pgtext:"صفحه {0} از {1}",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"جستجو...",Find:"يافته ها",Reset:"از نو",odata:[{oper:"eq",text:"برابر"},{oper:"ne",text:"نا برابر"},{oper:"lt",text:"به"},{oper:"le",text:"کوچکتر"},{oper:"gt",text:"از"},{oper:"ge",text:"بزرگتر"},{oper:"bw",text:"شروع با"},{oper:"bn",text:"شروع نشود با"},{oper:"in",text:"نباشد"},{oper:"ni",text:"عضو این نباشد"},{oper:"ew",text:"اتمام با"},{oper:"en",text:"تمام نشود با"},{oper:"cn",text:"حاوی"},{oper:"nc",text:"نباشد حاوی"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"کل"},{op:"OR",text:"مجموع"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"اضافه کردن رکورد",editCaption:"ويرايش رکورد",bSubmit:"ثبت",bCancel:"انصراف",bClose:"بستن",saveData:"دیتا تعییر کرد! ذخیره شود؟",bYes:"بله",bNo:"خیر",bExit:"انصراف",msg:{required:"فيلدها بايد ختما پر شوند",number:"لطفا عدد وعتبر وارد کنيد",minValue:"مقدار وارد شده بايد بزرگتر يا مساوي با",maxValue:"مقدار وارد شده بايد کوچکتر يا مساوي",email:"پست الکترونيک وارد شده معتبر نيست",integer:"لطفا يک عدد صحيح وارد کنيد",date:"لطفا يک تاريخ معتبر وارد کنيد",url:"این آدرس صحیح نمی باشد. پیشوند نیاز است ('http://' یا 'https://')",nodefined:" تعریف نشده!",novalue:" مقدار برگشتی اجباری است!",customarray:"تابع شما باید مقدار آرایه داشته باشد!",customfcheck:"برای داشتن متد دلخواه شما باید سطون با چکینگ دلخواه داشته باشید!"}},view:{caption:"نمایش رکورد",bClose:"بستن"},del:{caption:"حذف",msg:"از حذف گزينه هاي انتخاب شده مطمئن هستيد؟",bSubmit:"حذف",bCancel:"ابطال"},nav:{edittext:" ",edittitle:"ويرايش رديف هاي انتخاب شده",addtext:" ",addtitle:"افزودن رديف جديد",deltext:" ",deltitle:"حذف ردبف هاي انتیاب شده",searchtext:" ",searchtitle:"جستجوي رديف",refreshtext:"",refreshtitle:"بازيابي مجدد صفحه",alertcap:"اخطار",alerttext:"لطفا يک رديف انتخاب کنيد",viewtext:"",viewtitle:"نمایش رکورد های انتخاب شده",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"نمايش/عدم نمايش ستون",bSubmit:"ثبت",bCancel:"انصراف"},errors:{errcap:"خطا",nourl:"هيچ آدرسي تنظيم نشده است",norecords:"هيچ رکوردي براي پردازش موجود نيست",model:"طول نام ستون ها محالف ستون هاي مدل مي باشد!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0"},date:{dayNames:["يک","دو","سه","چهار","پنج","جمع","شنب","يکشنبه","دوشنبه","سه شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"],monthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec","ژانويه","فوريه","مارس","آوريل","مه","ژوئن","ژوئيه","اوت","سپتامبر","اکتبر","نوامبر","December"],AmPm:["ب.ظ","ب.ظ","ق.ظ","ق.ظ"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"نمايش",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});js/minified/i18n/grid.locale-ar.js000064400000012313151676727230012664 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.ar={defaults:{recordtext:"تسجيل {0} - {1} على {2}",emptyrecords:"لا يوجد تسجيل",loadtext:"تحميل...",savetext:"Saving...",pgtext:"صفحة {0} على {1}",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"بحث...",Find:"بحث",Reset:"إلغاء",odata:[{oper:"eq",text:"يساوي"},{oper:"ne",text:"يختلف"},{oper:"lt",text:"أقل"},{oper:"le",text:"أقل أو يساوي"},{oper:"gt",text:"أكبر"},{oper:"ge",text:"أكبر أو يساوي"},{oper:"bw",text:"يبدأ بـ"},{oper:"bn",text:"لا يبدأ بـ"},{oper:"in",text:"est dans"},{oper:"ni",text:"n'est pas dans"},{oper:"ew",text:"ينته بـ"},{oper:"en",text:"لا ينته بـ"},{oper:"cn",text:"يحتوي"},{oper:"nc",text:"لا يحتوي"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"مع",text:"الكل"},{op:"أو",text:"لا أحد"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"اضافة",editCaption:"تحديث",bSubmit:"تثبيث",bCancel:"إلغاء",bClose:"غلق",saveData:"تغيرت المعطيات هل تريد التسجيل ?",bYes:"نعم",bNo:"لا",bExit:"إلغاء",msg:{required:"خانة إجبارية",number:"سجل رقم صحيح",minValue:"يجب أن تكون القيمة أكبر أو تساوي 0",maxValue:"يجب أن تكون القيمة أقل أو تساوي 0",email:"بريد غير صحيح",integer:"سجل عدد طبييعي صحيح",url:"ليس عنوانا صحيحا. البداية الصحيحة ('http://' أو 'https://')",nodefined:" ليس محدد!",novalue:" قيمة الرجوع مطلوبة!",customarray:"يجب على الدالة الشخصية أن تنتج جدولا",customfcheck:"الدالة الشخصية مطلوبة في حالة التحقق الشخصي"}},view:{caption:"رأيت التسجيلات",bClose:"غلق"},del:{caption:"حذف",msg:"حذف التسجيلات المختارة ?",bSubmit:"حذف",bCancel:"إلغاء"},nav:{edittext:" ",edittitle:"تغيير التسجيل المختار",addtext:" ",addtitle:"إضافة تسجيل",deltext:" ",deltitle:"حذف التسجيل المختار",searchtext:" ",searchtitle:"بحث عن تسجيل",refreshtext:"",refreshtitle:"تحديث الجدول",alertcap:"تحذير",alerttext:"يرجى إختيار السطر",viewtext:"",viewtitle:"إظهار السطر المختار",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"إظهار/إخفاء الأعمدة",bSubmit:"تثبيث",bCancel:"إلغاء"},errors:{errcap:"خطأ",nourl:"لا يوجد عنوان محدد",norecords:"لا يوجد تسجيل للمعالجة",model:"عدد العناوين (colNames) <> عدد التسجيلات (colModel)!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0,00"},date:{dayNames:["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت","الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"],monthNames:["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويلية","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر","جانفي","فيفري","مارس","أفريل","ماي","جوان","جويلية","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],AmPm:["صباحا","مساءا","صباحا","مساءا"],S:function(e){return 1==e?"er":"e"},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});js/minified/i18n/grid.locale-es.js000064400000011656151676727230012702 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.es={defaults:{recordtext:"Mostrando {0} - {1} de {2}",emptyrecords:"Sin registros que mostrar",loadtext:"Cargando...",savetext:"Guardando...",pgtext:"Página {0} de {1}",pgfirst:"Primera Página",pglast:"Última Página",pgnext:"Página Siguiente",pgprev:"Página Anterior",pgrecs:"Registros por página",showhide:"Alternar Contraer Expandir Grid",pagerCaption:"Grid::Configurar página",pageText:"Página:",recordPage:"Registros por página",nomorerecs:"No más registros...",scrollPullup:"Arrastrar arriba para cargar más...",scrollPulldown:"Arrastrar arriba para refrescar...",scrollRefresh:"Soltar para refrescar...",valT:"marcada",valF:"sin marcar",selectLine:"Seleccionar fila",selectAllLines:"Seleccionar todas las filas"},search:{caption:"Búsqueda...",Find:"Buscar",Reset:"Limpiar",odata:[{oper:"eq",text:"igual "},{oper:"ne",text:"no igual a"},{oper:"lt",text:"menor que"},{oper:"le",text:"menor o igual que"},{oper:"gt",text:"mayor que"},{oper:"ge",text:"mayor o igual a"},{oper:"bw",text:"empiece por"},{oper:"bn",text:"no empiece por"},{oper:"in",text:"está en"},{oper:"ni",text:"no está en"},{oper:"ew",text:"termina por"},{oper:"en",text:"no termina por"},{oper:"cn",text:"contiene"},{oper:"nc",text:"no contiene"},{oper:"nu",text:"es nulo"},{oper:"nn",text:"no es nulo"},{oper:"bt",text:"entre"}],groupOps:[{op:"AND",text:"todo"},{op:"OR",text:"cualquier"}],operandTitle:"Clic para seleccionar la operación de búsqueda.",resetTitle:"Reiniciar valores de búsqueda",addsubgrup:"Agregar subgrupo",addrule:"Agregar regla",delgroup:"Borrar grupo",delrule:"Borrar regla",Close:"Cerrar",Operand:"Operador : ",Operation:"Oper : ",filterFor:"filtro para"},edit:{addCaption:"Agregar registro",editCaption:"Modificar registro",bSubmit:"Guardar",bCancel:"Cancelar",bClose:"Cerrar",saveData:"Se han modificado los datos, ¿guardar cambios?",bYes:"Si",bNo:"No",bExit:"Cancelar",msg:{required:"Campo obligatorio",number:"Introduzca un número",minValue:"El valor debe ser mayor o igual a ",maxValue:"El valor debe ser menor o igual a ",email:"no es una dirección de correo válida",integer:"Introduzca un valor entero",date:"Introduzca una fecha correcta ",url:"no es una URL válida. Prefijo requerido ('http://' or 'https://')",nodefined:" no está definido.",novalue:" valor de retorno es requerido.",customarray:"La función personalizada debe devolver un array.",customfcheck:"La función personalizada debe estar presente en el caso de validación personalizada."}},view:{caption:"Consultar registro",bClose:"Cerrar"},del:{caption:"Eliminar",msg:"¿Desea eliminar los registros seleccionados?",bSubmit:"Eliminar",bCancel:"Cancelar"},nav:{edittext:" ",edittitle:"Modificar fila seleccionada",addtext:" ",addtitle:"Agregar nueva fila",deltext:" ",deltitle:"Eliminar fila seleccionada",searchtext:" ",searchtitle:"Buscar información",refreshtext:"",refreshtitle:"Recargar datos",alertcap:"Aviso",alerttext:"Seleccione una fila",viewtext:"",viewtitle:"Ver fila seleccionada",savetext:"",savetitle:"Guardar fila",canceltext:"",canceltitle:"Cancelar edición de fila",selectcaption:"Acciones..."},col:{caption:"Mostrar/ocultar columnas",bSubmit:"Enviar",bCancel:"Cancelar"},errors:{errcap:"Error",nourl:"No se ha especificado una URL",norecords:"No hay datos para procesar",model:"Las columnas de nombres son diferentes de las columnas del modelo"},formatter:{integer:{thousandsSeparator:".",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0,00"},date:{dayNames:["Do","Lu","Ma","Mi","Ju","Vi","Sa","Domingo","Lunes","Martes","Miércoles","Jueves","Viernes","Sábado"],monthNames:["Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic","Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],AmPm:["am","pm","AM","PM"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d-m-Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Orden Ascendente",sortdesc:"Orden Descendente",columns:"Columnas",filter:"Filtrar",grouping:"Agrupar por",ungrouping:"Desagrupar",searchTitle:"Obtener elementos con un valor que:",freeze:"Inmovilizar",unfreeze:"Movilizar",reorder:"Mover para reordenar",hovermenu:"Click para accion rápida de columna"}}});js/minified/i18n/grid.locale-fi.js000064400000011345151676727230012664 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.fi={defaults:{recordtext:"Rivit {0} - {1} / {2}",emptyrecords:"Ei n&auml;ytett&auml;vi&auml;",loadtext:"Haetaan...",savetext:"Saving...",pgtext:"Sivu {0} / {1}",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Etsi...",Find:"Etsi",Reset:"Tyhjenn&auml;",odata:[{oper:"eq",text:"on"},{oper:"ne",text:"ei ole"},{oper:"lt",text:"pienempi"},{oper:"le",text:"pienempi tai yht&auml;suuri"},{oper:"gt",text:"suurempi"},{oper:"ge",text:"suurempi tai yht&auml;suuri"},{oper:"bw",text:"alkaa"},{oper:"bn",text:"ei ala"},{oper:"in",text:"joukossa"},{oper:"ni",text:"ei joukossa"},{oper:"ew",text:"loppuu"},{oper:"en",text:"ei lopu"},{oper:"cn",text:"sis&auml;lt&auml;&auml;"},{oper:"nc",text:"ei sis&auml;ll&auml;"},{oper:"nu",text:"on tyhj&auml;"},{oper:"nn",text:"ei ole tyhj&auml;"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"kaikki"},{op:"OR",text:"mik&auml; tahansa"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Uusi rivi",editCaption:"Muokkaa rivi&auml;",bSubmit:"OK",bCancel:"Peru",bClose:"Sulje",saveData:"Tietoja muutettu! Tallennetaanko?",bYes:"Kyll&auml;",bNo:"Ei",bExit:"Peru",msg:{required:"pakollinen",number:"Anna kelvollinen nro",minValue:"arvon oltava suurempi tai yht&auml;suuri kuin ",maxValue:"arvon oltava pienempi tai yht&auml;suuri kuin ",email:"ei ole kelvollinen s&auml;postiosoite",integer:"Anna kelvollinen kokonaisluku",date:"Anna kelvollinen pvm",url:"Ei ole kelvollinen linkki(URL). Alku oltava ('http://' tai 'https://')",nodefined:" ei ole m&auml;&auml;ritelty!",novalue:" paluuarvo vaaditaan!",customarray:"Oman funktion tulee palauttaa jono!",customfcheck:"Oma funktio on m&auml;&auml;ritelt&auml;v&auml; r&auml;&auml;t&auml;l&ouml;ity&auml; tarkastusta varten!"}},view:{caption:"N&auml;yt&auml; rivi",bClose:"Sulje"},del:{caption:"Poista",msg:"Poista valitut rivit?",bSubmit:"Poista",bCancel:"Peru"},nav:{edittext:"",edittitle:"Muokkaa valittua rivi&auml;",addtext:"",addtitle:"Uusi rivi",deltext:"",deltitle:"Poista valittu rivi",searchtext:"",searchtitle:"Etsi tietoja",refreshtext:"",refreshtitle:"Lataa uudelleen",alertcap:"Varoitus",alerttext:"Valitse rivi",viewtext:"",viewtitle:"N&auml;yta valitut rivit",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Valitse sarakkeet",bSubmit:"OK",bCancel:"Peru"},errors:{errcap:"Virhe",nourl:"URL on asettamatta",norecords:"Ei muokattavia tietoja",model:"Pituus colNames <> colModel!"},formatter:{integer:{thousandsSeparator:"",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:"",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:"",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0,00"},date:{dayNames:["Su","Ma","Ti","Ke","To","Pe","La","Sunnuntai","Maanantai","Tiistai","Keskiviikko","Torstai","Perjantai","Lauantai"],monthNames:["Tam","Hel","Maa","Huh","Tou","Kes","Hei","Elo","Syy","Lok","Mar","Jou","Tammikuu","Helmikuu","Maaliskuu","Huhtikuu","Toukokuu","Kes&auml;kuu","Hein&auml;kuu","Elokuu","Syyskuu","Lokakuu","Marraskuu","Joulukuu"],AmPm:["am","pm","AM","PM"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d.m.Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"d.m.Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});js/minified/i18n/grid.locale-it.js000064400000011546151676727230012705 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.it={defaults:{recordtext:"Mostra {0} - {1} di {2}",emptyrecords:"Non ci sono record da mostrare",loadtext:"Caricamento...",savetext:"Salvataggio...",pgtext:"Pagina {0} di {1}",pgfirst:"Prima Pagina",pglast:"Ultima Pagina",pgnext:"Pagina Successiva",pgprev:"Pagina Precedente",pgrecs:"Records per Pagina",showhide:"Espandi o collassa griglia",pagerCaption:"Griglia::Impostazioni della pagina",pageText:"Pagina:",recordPage:"Records per Pagina",nomorerecs:"Non ci sono altri record...",scrollPullup:"Trascina verso l'alto per altri...",scrollPulldown:"Trascina verso il basso per aggiornare...",scrollRefresh:"Rilascia per aggiornare...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Cerca...",Find:"Trova",Reset:"Reset",odata:[{oper:"eq",text:"uguale"},{oper:"ne",text:"diverso"},{oper:"lt",text:"minore"},{oper:"le",text:"minore o uguale"},{oper:"gt",text:"maggiore"},{oper:"ge",text:"maggiore o uguale"},{oper:"bw",text:"inizia per"},{oper:"bn",text:"non inizia per"},{oper:"in",text:"è in"},{oper:"ni",text:"non è in"},{oper:"ew",text:"finisce per"},{oper:"en",text:"non finisce per"},{oper:"cn",text:"contiene"},{oper:"nc",text:"non contiene"},{oper:"nu",text:"è null"},{oper:"nn",text:"non è null"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"tutti"},{op:"OR",text:"ciascuno"}],operandTitle:"Clicca sull'opzione di ricerca scelta.",resetTitle:"Resetta valori di ricerca",addsubgrup:"Aggiungi Sottogruppo",addrule:"Aggiungi Regola",delgroup:"Cancella Sottogruppo",delrule:"Cancella Regola",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Aggiungi Record",editCaption:"Modifica Record",bSubmit:"Invia",bCancel:"Annulla",bClose:"Chiudi",saveData:"I dati sono stati modificati! Salvare le modifiche?",bYes:"Si",bNo:"No",bExit:"Annulla",msg:{required:"Campo obbligatorio",number:"Per favore, inserisci un numero valido",minValue:"il valore deve essere maggiore o uguale a ",maxValue:"il valore deve essere minore o uguale a ",email:"non è una e-mail valida",integer:"Per favore, inserisci un intero valido",date:"Per favore, inserisci una data valida",url:"non è un URL valido. Prefissi richiesti ('http://' o 'https://')",nodefined:" non è definito!",novalue:" valore di ritorno richiesto!",customarray:"La funzione personalizzata deve restituire un array!",customfcheck:"La funzione personalizzata deve essere presente in caso di controlli personalizzati!"}},view:{caption:"Visualizza Record",bClose:"Chiudi"},del:{caption:"Cancella",msg:"Cancellare i record selezionati?",bSubmit:"Cancella",bCancel:"Annulla"},nav:{edittext:"",edittitle:"Modifica riga selezionata",addtext:"",addtitle:"Aggiungi riga",deltext:"",deltitle:"Cancella riga",searchtext:"",searchtitle:"Trova record",refreshtext:"",refreshtitle:"Ricarica tabella",alertcap:"Attenzione",alerttext:"Per favore, seleziona un record",viewtext:"",viewtitle:"Visualizza riga selezionata",savetext:"",savetitle:"Salva riga",canceltext:"",canceltitle:"Annulla modifica riga",selectcaption:"Azioni..."},col:{caption:"Seleziona colonne",bSubmit:"Ok",bCancel:"Annulla"},errors:{errcap:"Errore",nourl:"Nessun url impostato",norecords:"Non ci sono record da elaborare",model:"Lunghezza dei colNames <> colModel!"},formatter:{integer:{thousandsSeparator:".",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,prefix:"€ ",suffix:"",defaultValue:"0,00"},date:{dayNames:["Dom","Lun","Mar","Mer","Gio","Ven","Sab","Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"],monthNames:["Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic","Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],AmPm:["am","pm","AM","PM"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"d/m/Y",LongDate:"l d F Y",FullDateTime:"l d F Y G:i:s",MonthDay:"F d",ShortTime:"H:i",LongTime:"H:i:s",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Ordinamento Ascendente",sortdesc:"Ordinamento Discendente",columns:"Colonne",filter:"Filtro",grouping:"Raggruppa",ungrouping:"Separa",searchTitle:"Cerca righe con i valori:",freeze:"Blocca",unfreeze:"Sblocca",reorder:"Sposta per riordinare",hovermenu:"Click for column quick actions"}}});js/minified/i18n/grid.locale-cn.js000064400000010712151676727230012663 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.cn={defaults:{recordtext:"第{0}到第{1}条 共 {2} 条",emptyrecords:"没有记录!",loadtext:"读取中...",savetext:"保存中...",pgtext:"第{0}页 共{1}页",pgfirst:"第一页",pglast:"最后一页",pgnext:"下一页",pgprev:"上一页",pgrecs:"每页记录数",showhide:"切换 展开 折叠 表格",pagerCaption:"表格::页面设置",pageText:"Page:",recordPage:"每页记录数",nomorerecs:"没有更多记录...",scrollPullup:"加载更多...",scrollPulldown:"刷新...",scrollRefresh:"滚动刷新...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"搜索...",Find:"查找",Reset:"重置",odata:[{oper:"eq",text:"等于  "},{oper:"ne",text:"不等于 "},{oper:"lt",text:"小于  "},{oper:"le",text:"小于等于"},{oper:"gt",text:"大于  "},{oper:"ge",text:"大于等于"},{oper:"bw",text:"开头是"},{oper:"bn",text:"开头不是"},{oper:"in",text:"属于  "},{oper:"ni",text:"不属于"},{oper:"ew",text:"结尾是"},{oper:"en",text:"结尾不是"},{oper:"cn",text:"包含  "},{oper:"nc",text:"不包含"},{oper:"nu",text:"为空"},{oper:"nn",text:"不为空"},{oper:"bt",text:"区间"}],groupOps:[{op:"AND",text:"满足所有条件"},{op:"OR",text:"满足任一条件"}],operandTitle:"单击进行搜索。",resetTitle:"重置搜索条件",addsubgrup:"添加条件组",addrule:"添加条件",delgroup:"删除条件组",delrule:"删除条件",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"添加记录",editCaption:"编辑记录",bSubmit:"提交",bCancel:"取消",bClose:"关闭",saveData:"数据已修改,是否保存?",bYes:"是",bNo:"否",bExit:"取消",msg:{required:"此字段必需",number:"请输入有效数字",minValue:"输值必须大于等于 ",maxValue:"输值必须小于等于 ",email:"这不是有效的e-mail地址",integer:"请输入有效整数",date:"请输入有效时间",url:"无效网址。前缀必须为 ('http://' 或 'https://')",nodefined:" 未定义!",novalue:" 需要返回值!",customarray:"自定义函数需要返回数组!",customfcheck:"必须有自定义函数!"}},view:{caption:"查看记录",bClose:"关闭"},del:{caption:"删除",msg:"删除所选记录?",bSubmit:"删除",bCancel:"取消"},nav:{edittext:"",edittitle:"编辑所选记录",addtext:"",addtitle:"添加新记录",deltext:"",deltitle:"删除所选记录",searchtext:"",searchtitle:"查找",refreshtext:"",refreshtitle:"刷新表格",alertcap:"注意",alerttext:"请选择记录",viewtext:"",viewtitle:"查看所选记录",savetext:"",savetitle:"保存记录",canceltext:"",canceltitle:"取消编辑记录",selectcaption:"操作..."},col:{caption:"选择列",bSubmit:"确定",bCancel:"取消"},errors:{errcap:"错误",nourl:"没有设置url",norecords:"没有需要处理的记录",model:"colNames 和 colModel 长度不等!"},formatter:{integer:{thousandsSeparator:",",defaultValue:"0"},number:{decimalSeparator:".",thousandsSeparator:",",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:".",thousandsSeparator:",",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0.00"},date:{dayNames:["日","一","二","三","四","五","六","星期日","星期一","星期二","星期三","星期四","星期五","星期六"],monthNames:["一","二","三","四","五","六","七","八","九","十","十一","十二","一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],AmPm:["am","pm","上午","下午"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"Y-m-d",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"升序排序",sortdesc:"降序排序",columns:"列",filter:"筛选",grouping:"分类",ungrouping:"取消分类",searchTitle:"查找:",freeze:"冻结",unfreeze:"取消冻结",reorder:"重新排序",hovermenu:"Click for column quick actions"}}});js/minified/i18n/grid.locale-pt-br.js000064400000011403151676727230013305 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional["pt-br"]={defaults:{recordtext:"Ver {0} - {1} de {2}",emptyrecords:"Nenhum registro para visualizar",loadtext:"Carregando...",pgtext:"Página {0} de {1}",savetext:"Salvando...",pgfirst:"Primeira Página",pglast:"Última Página",pgnext:"Próxima Página",pgprev:"Página Anterior",pgrecs:"Registros por Página",showhide:"Mostrar/Ocultar Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Procurar...",Find:"Procurar",Reset:"Limpar",odata:[{oper:"eq",text:"igual"},{oper:"ne",text:"diferente"},{oper:"lt",text:"menor"},{oper:"le",text:"menor ou igual"},{oper:"gt",text:"maior"},{oper:"ge",text:"maior ou igual"},{oper:"bw",text:"inicia com"},{oper:"bn",text:"não inicia com"},{oper:"in",text:"está em"},{oper:"ni",text:"não está em"},{oper:"ew",text:"termina com"},{oper:"en",text:"não termina com"},{oper:"cn",text:"contém"},{oper:"nc",text:"não contém"},{oper:"nu",text:"nulo"},{oper:"nn",text:"não nulo"},{oper:"bt",text:"between"}],groupOps:[{op:"AND",text:"todos"},{op:"OR",text:"qualquer um"}],operandTitle:"Clique para escolher a operação de pesquisa.",resetTitle:"Limpar valor de pesquisa",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Incluir",editCaption:"Alterar",bSubmit:"Enviar",bCancel:"Cancelar",bClose:"Fechar",saveData:"Os dados foram alterados! Salvar alterações?",bYes:"Sim",bNo:"Não",bExit:"Cancelar",msg:{required:"Campo obrigatório",number:"Por favor, informe um número válido",minValue:"valor deve ser igual ou maior que ",maxValue:"valor deve ser menor ou igual a",email:"este e-mail não é válido",integer:"Por favor, informe um valor inteiro",date:"Por favor, informe uma data válida",url:"não é uma URL válida. Prefixo obrigatório ('http://' or 'https://')",nodefined:" não está definido!",novalue:" um valor de retorno é obrigatório!",customarray:"Função customizada deve retornar um array!",customfcheck:"Função customizada deve estar presente em caso de validação customizada!"}},view:{caption:"Ver Registro",bClose:"Fechar"},del:{caption:"Apagar",msg:"Apagar registro(s) selecionado(s)?",bSubmit:"Apagar",bCancel:"Cancelar"},nav:{edittext:" ",edittitle:"Alterar registro selecionado",addtext:" ",addtitle:"Incluir novo registro",deltext:" ",deltitle:"Apagar registro selecionado",searchtext:" ",searchtitle:"Procurar registros",refreshtext:"",refreshtitle:"Recarregar tabela",alertcap:"Aviso",alerttext:"Por favor, selecione um registro",viewtext:"",viewtitle:"Ver linha selecionada",savetext:"",savetitle:"Salvar linha",canceltext:"",canceltitle:"Cancelar edição da linha",selectcaption:"Actions..."},col:{caption:"Mostrar/Esconder Colunas",bSubmit:"Enviar",bCancel:"Cancelar"},errors:{errcap:"Erro",nourl:"Nenhuma URL definida",norecords:"Sem registros para exibir",model:"Comprimento de colNames <> colModel!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,prefix:"R$ ",suffix:"",defaultValue:"0,00"},date:{dayNames:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb","Domingo","Segunda","Terça","Quarta","Quinta","Sexta","Sábado"],monthNames:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez","Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],AmPm:["am","pm","AM","PM"],S:function(e){return e<11||13<e?["º","º","º","º"][Math.min((e-1)%10,3)]:"º"},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});js/minified/i18n/grid.locale-sr.js000064400000013001151676727230012701 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../grid.base"],e):e(jQuery)}(function(e){e.jgrid=e.jgrid||{},e.jgrid.hasOwnProperty("regional")||(e.jgrid.regional=[]),e.jgrid.regional.sr={defaults:{recordtext:"Преглед {0} - {1} од {2}",emptyrecords:"Не постоји ниједан запис",loadtext:"Учитавање...",pgtext:"Страна {0} од {1}",savetext:"Saving...",pgfirst:"First Page",pglast:"Last Page",pgnext:"Next Page",pgprev:"Previous Page",pgrecs:"Records per Page",showhide:"Toggle Expand Collapse Grid",pagerCaption:"Grid::Page Settings",pageText:"Page:",recordPage:"Records per Page",nomorerecs:"No more records...",scrollPullup:"Pull up to load more...",scrollPulldown:"Pull down to refresh...",scrollRefresh:"Release to refresh...",valT:"checked",valF:"unchecked",selectLine:"Select row",selectAllLines:"Select all rows"},search:{caption:"Тражење...",Find:"Тражи",Reset:"Ресетуј",odata:[{oper:"eq",text:"једнако"},{oper:"ne",text:"није једнако"},{oper:"lt",text:"мање"},{oper:"le",text:"мање или једнако"},{oper:"gt",text:"веће"},{oper:"ge",text:"веће или једнако"},{oper:"bw",text:"почиње са"},{oper:"bn",text:"не почиње са"},{oper:"in",text:"је у"},{oper:"ni",text:"није у"},{oper:"ew",text:"завршава са"},{oper:"en",text:"не завршава са"},{oper:"cn",text:"садржи"},{oper:"nc",text:"не садржи"},{oper:"nu",text:"is null"},{oper:"nn",text:"is not null"},{oper:"bt",text:"between"}],groupOps:[{op:"И",text:"сви"},{op:"ИЛИ",text:"сваки"}],operandTitle:"Click to select search operation.",resetTitle:"Reset Search Value",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",Close:"Close",Operand:"Operand : ",Operation:"Oper : ",filterFor:"filter for"},edit:{addCaption:"Додај запис",editCaption:"Измени запис",bSubmit:"Пошаљи",bCancel:"Одустани",bClose:"Затвори",saveData:"Податак је измењен! Сачувај измене?",bYes:"Да",bNo:"Не",bExit:"Одустани",msg:{required:"Поље је обавезно",number:"Молим, унесите исправан број",minValue:"вредност мора бити већа од или једнака са ",maxValue:"вредност мора бити мања од или једнака са",email:"није исправна имејл адреса",integer:"Молим, унесите исправну целобројну вредност ",date:"Молим, унесите исправан датум",url:"није исправан УРЛ. Потребан је префикс ('http://' or 'https://')",nodefined:" није дефинисан!",novalue:" захтевана је повратна вредност!",customarray:"Custom function should return array!",customfcheck:"Custom function should be present in case of custom checking!"}},view:{caption:"Погледај запис",bClose:"Затвори"},del:{caption:"Избриши",msg:"Избриши изабран(е) запис(е)?",bSubmit:"Ибриши",bCancel:"Одбаци"},nav:{edittext:"",edittitle:"Измени изабрани ред",addtext:"",addtitle:"Додај нови ред",deltext:"",deltitle:"Избриши изабран ред",searchtext:"",searchtitle:"Нађи записе",refreshtext:"",refreshtitle:"Поново учитај податке",alertcap:"Упозорење",alerttext:"Молим, изаберите ред",viewtext:"",viewtitle:"Погледај изабрани ред",savetext:"",savetitle:"Save row",canceltext:"",canceltitle:"Cancel row editing",selectcaption:"Actions..."},col:{caption:"Изабери колоне",bSubmit:"ОК",bCancel:"Одбаци"},errors:{errcap:"Грешка",nourl:"Није постављен URL",norecords:"Нема записа за обраду",model:"Дужина модела colNames <> colModel!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0.00"},currency:{decimalSeparator:".",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0.00"},date:{dayNames:["Нед","Пон","Уто","Сре","Чет","Пет","Суб","Недеља","Понедељак","Уторак","Среда","Четвртак","Петак","Субота"],monthNames:["Јан","Феб","Мар","Апр","Мај","Јун","Јул","Авг","Сеп","Окт","Нов","Дец","Јануар","Фебруар","Март","Април","Мај","Јун","Јул","Август","Септембар","Октобар","Новембар","Децембар"],AmPm:["am","pm","AM","PM"],S:function(e){return e<11||13<e?["st","nd","rd","th"][Math.min((e-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d/m/Y",parseRe:/[#%\\\/:_;.,\t\s-]/,masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:!1,userLocalTime:!1},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:!0},idName:"id"},colmenu:{sortasc:"Sort Ascending",sortdesc:"Sort Descending",columns:"Columns",filter:"Filter",grouping:"Group By",ungrouping:"Ungroup",searchTitle:"Get items with value that:",freeze:"Freeze",unfreeze:"Unfreeze",reorder:"Move to reorder",hovermenu:"Click for column quick actions"}}});js/minified/grid.filter.js000064400000120337151676727230011541 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","./grid.base","./grid.common"],e):e(jQuery)}(function(T){"use strict";T.fn.jqFilter=function(e){if("string"==typeof e){var t,r=T.fn.jqFilter[e];if(r)return t=T.makeArray(arguments).slice(1),r.apply(this,t);throw"jqFilter - No such method: "+e}var x=T.extend(!0,{filter:null,columns:[],sortStrategy:null,onChange:null,afterRedraw:null,checkValues:null,error:!1,errmsg:"",errorcheck:!0,showQuery:!0,sopt:null,ops:[],operands:null,numopts:["eq","ne","lt","le","gt","ge","nu","nn","in","ni"],stropts:["eq","ne","bw","bn","ew","en","cn","nc","nu","nn","in","ni"],strarr:["text","string","blob"],groupOps:[{op:"AND",text:"AND"},{op:"OR",text:"OR"}],groupButton:!0,ruleButtons:!0,uniqueSearchFields:!1,direction:"ltr",addsubgrup:"Add subgroup",addrule:"Add rule",delgroup:"Delete group",delrule:"Delete rule",autoencode:!1,unaryOperations:[]},T.jgrid.filter,e||{});return this.each(function(){if(!this.filter){this.p=x,null!==this.p.filter&&void 0!==this.p.filter||(this.p.filter={groupOp:this.p.groupOps[0].op,rules:[],groups:[]}),null!=this.p.sortStrategy&&T.jgrid.isFunction(this.p.sortStrategy)&&this.p.columns.sort(this.p.sortStrategy);var e,t,r=this.p.columns.length,b=/msie/i.test(navigator.userAgent)&&!window.opera;if(this.p.initFilter=T.extend(!0,{},this.p.filter),r){for(e=0;e<r;e++)(t=this.p.columns[e]).stype?t.inputtype=t.stype:t.inputtype||(t.inputtype="text"),t.sorttype?t.searchtype=t.sorttype:t.searchtype||(t.searchtype="string"),void 0===t.hidden&&(t.hidden=!1),t.label||(t.label=t.name),t.index&&(t.name=t.index),t.hasOwnProperty("searchoptions")||(t.searchoptions={}),t.hasOwnProperty("searchrules")||(t.searchrules={}),void 0===t.search?t.inlist=!0:t.inlist=t.search;var S=function(){return T("#"+T.jgrid.jqID(x.id))[0]||null},s=S(),F=T.jgrid.styleUI[s.p.styleUI||"jQueryUI"].filter,O=T.jgrid.styleUI[s.p.styleUI||"jQueryUI"].common,o=(this.p.showQuery&&T(this).append("<table class='queryresult "+F.table_widget+"' style='display:block;max-width:440px;border:0px none;' dir='"+this.p.direction+"'><tbody><tr><td class='query'></td></tr></tbody></table>"),function(e,t){var r=[!0,""],s=S();if(T.jgrid.isFunction(t.searchrules))r=t.searchrules.call(s,e,t);else if(T.jgrid&&T.jgrid.checkValues)try{r=T.jgrid.checkValues.call(s,e,-1,t.searchrules,t.label)}catch(e){}r&&r.length&&!1===r[0]&&(x.error=!r[0],x.errmsg=r[1])});this.onchange=function(){return this.p.error=!1,this.p.errmsg="",!!T.jgrid.isFunction(this.p.onChange)&&this.p.onChange.call(this,this.p)},this.reDraw=function(){T(this).find("table.group").first().remove();var e=this.createTableForGroup(x.filter,null);T(this).append(e),T.jgrid.isFunction(this.p.afterRedraw)&&this.p.afterRedraw.call(this,this.p)},this.createTableForGroup=function(s,e){var a=this,t=T("<table class='group "+F.table_widget+" ui-search-table' style='border:0px none;'><tbody></tbody></table>"),r="left",i=("rtl"===this.p.direction&&(r="right",t.attr("dir","rtl")),null===e&&t.append("<tr class='error' style='display:none;'><th colspan='5' class='"+O.error+"' align='"+r+"'></th></tr>"),T("<tr></tr>")),r=(t.append(i),T("<th colspan='5' align='"+r+"'></th>"));if(i.append(r),!0===this.p.ruleButtons){for(var o,l=T("<select size='1' name='select_group_op' class='opsel "+F.srSelect+"'></select>"),n=(r.append(l),""),p=0;p<x.groupOps.length;p++)o=s.groupOp===a.p.groupOps[p].op?" selected='selected'":"",n+="<option value='"+a.p.groupOps[p].op+"'"+o+">"+a.p.groupOps[p].text+"</option>";l.append(n).on("change",function(){s.groupOp=T(l).val(),a.onchange()})}var c,i="<span></span>";if(this.p.groupButton&&(i=T("<input type='button' value='+ {}' title='"+a.p.addsubgrup+"' class='add-group "+O.button+"' name='newsubgroup'/>")).on("click",function(){return void 0===s.groups&&(s.groups=[]),s.groups.push({groupOp:x.groupOps[0].op,rules:[],groups:[]}),a.reDraw(),a.onchange(),!1}),r.append(i),!0===this.p.ruleButtons&&((i=T("<input type='button' value='+' title='"+a.p.addrule+"' class='add-rule ui-add "+O.button+"'/ name='newrule'>")).on("click",function(){for(void 0===s.rules&&(s.rules=[]),p=0;p<a.p.columns.length;p++){var e=void 0===a.p.columns[p].search||a.p.columns[p].search,t=!0===a.p.columns[p].hidden;if(!0===a.p.columns[p].searchoptions.searchhidden&&e||e&&!t){c=a.p.columns[p];break}}var r;return c&&(r=c.searchoptions.sopt||a.p.sopt||(-1!==T.inArray(c.searchtype,a.p.strarr)?a.p.stropts:a.p.numopts),s.rules.push({field:c.name,op:r[0],data:""}),a.reDraw()),!1}),r.append(i)),null!==e&&(i=T("<input type='button' value='-' title='"+a.p.delgroup+"' class='delete-group "+O.button+"'/ name='delgroup'>"),r.append(i),i.on("click",function(){for(p=0;p<e.groups.length;p++)if(e.groups[p]===s){e.groups.splice(p,1);break}return a.reDraw(),a.onchange(),!1})),void 0!==s.groups)for(p=0;p<s.groups.length;p++){var d=T("<tr></tr>"),u=(t.append(d),T("<td class='first'></td>")),u=(d.append(u),T("<td colspan='4'></td>"));u.append(this.createTableForGroup(s.groups[p],s)),d.append(u)}void 0===s.groupOp&&(s.groupOp=a.p.groupOps[0].op);var h=a.p.ruleButtons&&a.p.uniqueSearchFields;if(h)for(f=0;f<a.p.columns.length;f++)a.p.columns[f].inlist&&(a.p.columns[f].search=!0);if(void 0!==s.rules)for(p=0;p<s.rules.length;p++)if(t.append(this.createTableRowForRule(s.rules[p],s)),h)for(var g=s.rules[p].field,f=0;f<a.p.columns.length;f++)if(g===a.p.columns[f].name){a.p.columns[f].search=!1;break}return t},this.createTableRowForRule=function(i,e){for(var o,l,n,t,p,c=this,d=S(),r=T("<tr></tr>"),s="",a=(r.append("<td class='first'></td>"),T("<td class='columns'></td>")),u=(r.append(a),T("<select size='1' name='select_field' class='"+F.srSelect+"'></select>")),h=[],g=(a.append(u),u.on("change",function(){var e;for(c.p.ruleButtons&&c.p.uniqueSearchFields&&(t=parseInt(T(this).data("curr"),10),e=this.selectedIndex,0<=t)&&(c.p.columns[t].search=!0,T(this).data("curr",e),c.p.columns[e].search=!1),i.field=T(u).val(),l=T(this).parents("tr").first(),T(".data",l).empty(),f=0;f<c.p.columns.length;f++)if(c.p.columns[f].name===i.field){n=c.p.columns[f];break}if(n){n.searchoptions.id=T.jgrid.randId(),n.searchoptions.name=i.field,n.searchoptions.oper="filter",!b||"text"!==n.inputtype||n.searchoptions.size||(n.searchoptions.size=10);var t,r=T.jgrid.createEl.call(d,n.inputtype,n.searchoptions,"",!0,c.p.ajaxSelectOptions||{},!0),s=(T(r).addClass("input-elm "+("select"===n.inputtype?F.srSelect:F.srInput)),o=n.searchoptions.sopt||c.p.sopt||(-1!==T.inArray(n.searchtype,c.p.strarr)?c.p.stropts:c.p.numopts),""),a=0;for(h=[],T.each(c.p.ops,function(){h.push(this.oper)}),f=0;f<o.length;f++)-1!==(p=T.inArray(o[f],h))&&(0===a&&(i.op=c.p.ops[p].oper),s+="<option value='"+c.p.ops[p].oper+"'>"+c.p.ops[p].text+"</option>",a++);T(".selectopts",l).empty().append(s),T(".selectopts",l)[0].selectedIndex=0,T.jgrid.msie()&&T.jgrid.msiever()<9&&(t=parseInt(T("select.selectopts",l)[0].offsetWidth,10)+1,T(".selectopts",l).width(t),T(".selectopts",l).css("width","auto")),T(".data",l).append(r),T.jgrid.bindEv.call(d,r,n.searchoptions),T(".input-elm",l).on("change",function(e){e=e.target;"custom"===n.inputtype&&T.jgrid.isFunction(n.searchoptions.custom_value)?i.data=n.searchoptions.custom_value.call(d,T(".customelement",this),"get"):i.data=T(e).val(),"select"===n.inputtype&&n.searchoptions.multiple&&(i.data=i.data.join(",")),c.onchange()}),setTimeout(function(){i.data=T(r).val(),("nu"===i.op||"nn"===i.op||0<=T.inArray(i.op,c.p.unaryOperations))&&(T(r).attr("readonly","true"),T(r).attr("disabled","true")),"select"===n.inputtype&&n.searchoptions.multiple&&Array.isArray(i.data)&&(i.data=i.data.join(",")),c.onchange()},0)}}),0),f=0;f<c.p.columns.length;f++){var m=void 0===c.p.columns[f].search||c.p.columns[f].search,y=!0===c.p.columns[f].hidden;(!0===c.p.columns[f].searchoptions.searchhidden&&m||m&&!y)&&(t="",i.field===c.p.columns[f].name&&(t=" selected='selected'",g=f),s+="<option value='"+c.p.columns[f].name+"'"+t+">"+c.p.columns[f].label+"</option>")}u.append(s),u.data("curr",g);var a=T("<td class='operators'></td>"),v=(r.append(a),(n=x.columns[g]).searchoptions.id=T.jgrid.randId(),!b||"text"!==n.inputtype||n.searchoptions.size||(n.searchoptions.size=10),n.searchoptions.name=i.field,n.searchoptions.oper="filter",T.jgrid.createEl.call(d,n.inputtype,n.searchoptions,i.data,!0,c.p.ajaxSelectOptions||{},!0)),j=(("nu"===i.op||"nn"===i.op||0<=T.inArray(i.op,c.p.unaryOperations))&&(T(v).attr("readonly","true"),T(v).attr("disabled","true")),T("<select size='1' name='select_oper' class='selectopts "+F.srSelect+"'></select>"));for(a.append(j),j.on("change",function(){i.op=T(j).val(),l=T(this).parents("tr").first();var e=T(".input-elm",l)[0];"nu"===i.op||"nn"===i.op||0<=T.inArray(i.op,c.p.unaryOperations)?(i.data="","SELECT"!==e.tagName.toUpperCase()&&(e.value=""),e.setAttribute("readonly","true"),e.setAttribute("disabled","true")):("SELECT"===e.tagName.toUpperCase()&&(i.data=e.value),e.removeAttribute("readonly"),e.removeAttribute("disabled")),c.onchange()}),o=n.searchoptions.sopt||c.p.sopt||(-1!==T.inArray(n.searchtype,c.p.strarr)?c.p.stropts:c.p.numopts),s="",T.each(c.p.ops,function(){h.push(this.oper)}),f=0;f<o.length;f++)-1!==(p=T.inArray(o[f],h))&&(t=i.op===c.p.ops[p].oper?" selected='selected'":"",s+="<option value='"+c.p.ops[p].oper+"'"+t+">"+c.p.ops[p].text+"</option>");j.append(s);a=T("<td class='data'></td>"),r.append(a),a.append(v),T.jgrid.bindEv.call(d,v,n.searchoptions),T(v).addClass("input-elm "+("select"===n.inputtype?F.srSelect:F.srInput)).on("change",function(){i.data="custom"===n.inputtype?n.searchoptions.custom_value.call(d,T(".customelement",this),"get"):T(this).val(),c.onchange()}),a=T("<td></td>");return r.append(a),!0===this.p.ruleButtons&&(v=T("<input type='button' value='-' title='"+c.p.delrule+"' class='delete-rule ui-del "+O.button+"'/ name='delrule'>"),a.append(v),v.on("click",function(){for(f=0;f<e.rules.length;f++)if(e.rules[f]===i){e.rules.splice(f,1);break}return c.reDraw(),c.onchange(),!1})),r},this.getStringForGroup=function(e){var t,r="(";if(void 0!==e.groups)for(t=0;t<e.groups.length;t++){1<r.length&&(r+=" "+e.groupOp+" ");try{r+=this.getStringForGroup(e.groups[t])}catch(e){alert(e)}}if(void 0!==e.rules)try{for(t=0;t<e.rules.length;t++)1<r.length&&(r+=" "+e.groupOp+" "),r+=this.getStringForRule(e.rules[t])}catch(e){alert(e)}return"()"===(r+=")")?"":r},this.getStringForRule=function(e){for(var t,r,s="",a="",i=0;i<this.p.ops.length;i++)if(this.p.ops[i].oper===e.op){s=this.p.operands.hasOwnProperty(e.op)?this.p.operands[e.op]:"",a=this.p.ops[i].oper;break}for(i=0;i<this.p.columns.length;i++)if(this.p.columns[i].name===e.field){t=this.p.columns[i];break}return void 0===t?"":(r=this.p.autoencode?T.jgrid.htmlEncode(e.data):e.data,"bw"!==a&&"bn"!==a||(r+="%"),"ew"!==a&&"en"!==a||(r="%"+r),"cn"!==a&&"nc"!==a||(r="%"+r+"%"),"in"!==a&&"ni"!==a||(r=" ("+r+")"),x.errorcheck&&o(e.data,t),-1!==T.inArray(t.searchtype,["int","integer","float","number","currency"])||"nn"===a||"nu"===a||0<=T.inArray(e.op,this.p.unaryOperations)?e.field+" "+s+" "+r:e.field+" "+s+' "'+r+'"')},this.resetFilter=function(){this.p.filter=T.extend(!0,{},this.p.initFilter),this.reDraw(),this.onchange()},this.hideError=function(){T("th."+O.error,this).html(""),T("tr.error",this).hide()},this.showError=function(){T("th."+O.error,this).html(T.jgrid.stripScript(this.p.errmsg)),T("tr.error",this).show()},this.toUserFriendlyString=function(){return this.getStringForGroup(x.filter)},this.toString=function(){var a=this;return function e(t){var r,s="(";if(void 0!==t.groups)for(r=0;r<t.groups.length;r++)1<s.length&&("OR"===t.groupOp?s+=" || ":s+=" && "),s+=e(t.groups[r]);if(void 0!==t.rules)for(r=0;r<t.rules.length;r++)1<s.length&&("OR"===t.groupOp?s+=" || ":s+=" && "),s+=function(e){if(a.p.errorcheck){for(var t,r=0;r<a.p.columns.length;r++)if(a.p.columns[r].name===e.field){t=a.p.columns[r];break}t&&o(e.data,t)}return e.op+"(item."+e.field+",'"+e.data+"')"}(t.rules[r]);return"()"==(s+=")")?"":s}(this.p.filter)},this.reDraw(),this.p.showQuery&&this.onchange(),this.filter=!0}}})},T.extend(T.fn.jqFilter,{toSQLString:function(){var e="";return this.each(function(){e=this.toUserFriendlyString()}),e},filterData:function(){var e;return this.each(function(){e=this.p.filter}),e},getParameter:function(r){var s=null;return void 0!==r&&this.each(function(e,t){t.p.hasOwnProperty(r)&&(s=t.p[r])}),s||this[0].p},resetFilter:function(){return this.each(function(){this.resetFilter()})},addFilter:function(e){"string"==typeof e&&(e=T.jgrid.parse(e)),this.each(function(){this.p.filter=e,this.reDraw(),this.onchange()})}}),T.extend(T.jgrid,{filterRefactor:function(e){var t,r,s,a,i,o,l={};try{if((l="string"==typeof e.ruleGroup?T.jgrid.parse(e.ruleGroup):e.ruleGroup).rules&&l.rules.length)for(t=l.rules,r=0;r<t.length;r++)o=(s=t[r]).field,-1<T.inArray(o,e.ssfield)&&1<(a=s.data.split(e.splitSelect)).length&&(void 0===l.groups&&(l.groups=[]),i={groupOp:e.groupOpSelect,groups:[],rules:[]},l.groups.push(i),T.each(a,function(e){a[e]&&i.rules.push({data:a[e],op:s.op,field:s.field})}),t.splice(r,1),r--)}catch(e){}return l}}),T.jgrid.extend({filterToolbar:function(G){var s=T.jgrid.getRegional(this[0],"search");return G=T.extend({autosearch:!0,autosearchDelay:500,searchOnEnter:!0,beforeSearch:null,afterSearch:null,beforeClear:null,afterClear:null,onClearSearchValue:null,url:"",stringResult:!1,groupOp:"AND",defaultSearch:"bw",searchOperators:!1,resetIcon:"x",splitSelect:",",groupOpSelect:"OR",errorcheck:!0,operands:{eq:"==",ne:"!",lt:"<",le:"<=",gt:">",ge:">=",bw:"^",bn:"!^",in:"=",ni:"!=",ew:"|",en:"!@",cn:"~",nc:"!~",nu:"#",nn:"!#",bt:"..."},disabledKeys:[9,16,17,18,19,20,33,34,35,36,37,38,39,40,30,45,112,113,114,115,116,117,118,119,120,121,122,123,144,145]},s,G||{}),this.each(function(){var w=this,I=[];if(!w.p.filterToolbar){if(T(w).data("filterToolbar")||T(w).data("filterToolbar",G),w.p.force_regional&&(G=T.extend(G,s)),void 0!==w.p.customFilterDef)for(var e in w.p.customFilterDef)w.p.customFilterDef.hasOwnProperty(e)&&!G.operands.hasOwnProperty(e)&&(G.odata.push({oper:e,text:w.p.customFilterDef[e].text}),G.operands[e]=w.p.customFilterDef[e].operand,!0===w.p.customFilterDef[e].unary)&&I.push(e);var u,h,t,g,f=T.jgrid.styleUI[w.p.styleUI||"jQueryUI"].filter,c=T.jgrid.styleUI[w.p.styleUI||"jQueryUI"].common,m=T.jgrid.styleUI[w.p.styleUI||"jQueryUI"].base,y=function(e){void 0===e&&(e=1);var r,s,a,i,o={},l=0,n={},p=!1,c=[],d=[],u={},h=[],g=!1,f=[!0,"",""],m=!1;if(T.each(w.p.colModel,function(){var e,t=!1;if(s=this.index||this.name,i=this.searchoptions||{},!0===this.frozen&&!0===w.p.frozenColumns?(e=T("#gs_"+w.p.idPrefix+T.jgrid.jqID(this.name),w.grid.fhDiv),t=!0):e=T("#gs_"+w.p.idPrefix+T.jgrid.jqID(this.name),w.grid.hDiv),void 0===e[0]&&(e=T("#gs_"+w.p.idPrefix+T.jgrid.jqID(this.name),w.grid.hDiv)),a=G.searchOperators&&i.searchOperMenu?e.parents("table.ui-search-table").find("td.ui-search-oper").children("a").attr("soper")||G.defaultSearch:i.sopt?i.sopt[0]:"select"===this.stype?"eq":G.defaultSearch,"custom"===this.stype&&T.jgrid.isFunction(i.custom_value)&&0<e.length?(r=i.custom_value.call(w,e,"get"),h.push(s)):r=e.val(),"select"===this.stype&&i.multiple&&Array.isArray(r)?r=0<r.length?(p=!0,c.push(s),1===r.length?r[0]:r):"":"bt"!==a&&"text"===this.stype&&!0===i.splitSearchWord&&d.push(s),this.searchrules&&G.errorcheck&&(T.jgrid.isFunction(this.searchrules)?f=this.searchrules.call(w,r,this):T.jgrid&&T.jgrid.checkValues&&(f=T.jgrid.checkValues.call(w,r,-1,this.searchrules,this.label||this.name)),f)&&f.length&&!1===f[0])return this.searchrules.hasOwnProperty("validationError")&&(m=this.searchrules.validationError),!1;if("bt"===a&&(g=!0),t&&"cb"!==s&&"rn"!==s&&"subgrid"!==s&&"sc"!==s&&(u[s]=r),r||"nu"===a||"nn"===a||0<=T.inArray(a,I))o[s]=r,n[s]=a,l++;else try{delete w.p.postData[s]}catch(e){}}),!1===f[0])T.jgrid.isFunction(m)?m.call(w,f[1]):(y=T.jgrid.getRegional(w,"errors"),T.jgrid.info_dialog(y.errcap,f[1],"",{styleUI:w.p.styleUI}));else{var t,y=0<l;if(!0===G.stringResult||"local"===w.p.datatype||!0===G.searchOperators){var v,j,b,S,F,O,x='{"groupOp":"'+G.groupOp+'","rules":[',D=0;if(T.each(o,function(e,t){0<D&&(x+=","),x=(x=(x+='{"field":"'+e+'",')+'"op":"'+n[e]+'",')+'"data":"'+(t+="").replace(/\\/g,"\\\\").replace(/\"/g,'\\"')+'"}',D++}),x+="]}",p&&(v=T.jgrid.filterRefactor({ruleGroup:x,ssfield:c,splitSelect:G.splitSelect,groupOpSelect:G.groupOpSelect})),g&&(v=T.isPlainObject(v)?v:T.jgrid.parse(x)).rules&&v.rules.length)for(j=v.rules,b=0;b<j.length;b++)"bt"===(S=j[b]).op&&1<(F=S.data.split("...")).length&&(void 0===v.groups&&(v.groups=[]),O={groupOp:"AND",groups:[],rules:[]},v.groups.push(O),T.each(F,function(e){F[e]&&O.rules.push({data:F[e],op:0===e?"ge":"le",field:S.field})}),j.splice(b,1),b--);d.length&&(v=T.jgrid.filterRefactor({ruleGroup:x,ssfield:d,splitSelect:i.splitSearchSeparator||";",groupOpSelect:"OR"})),(g||p||d.length)&&(x=JSON.stringify(v)),!0===w.p.mergeSearch&&w.p.searchModules.hasOwnProperty("filterToolbar")&&!1!==w.p.searchModules.filterToolbar?(w.p.searchModules.filterToolbar=0<D?x:null,y=!0,T.extend(w.p.postData,{filters:T.jgrid.splitSearch(w.p.searchModules)})):T.extend(w.p.postData,{filters:x}),T.each(["searchField","searchString","searchOper"],function(e,t){w.p.postData.hasOwnProperty(t)&&delete w.p.postData[t]})}else T.extend(w.p.postData,o);G.url&&(t=w.p.url,T(w).jqGrid("setGridParam",{url:G.url}));var q="stop"===T(w).triggerHandler("jqGridToolbarBeforeSearch");(q=!q&&T.jgrid.isFunction(G.beforeSearch)?G.beforeSearch.call(w):q)||T(w).jqGrid("setGridParam",{search:y}).trigger("reloadGrid",[{page:e}]),t&&T(w).jqGrid("setGridParam",{url:t}),T(w).triggerHandler("jqGridToolbarAfterSearch"),T.jgrid.isFunction(G.afterSearch)&&G.afterSearch.call(w),w.p.frozenColumns&&_(u,n,c,h)}},_=function(e,i,t,o){var l=T(".ui-search-toolbar",w.grid.hDiv),n=T(".ui-search-toolbar",w.grid.fhDiv);T.each(e,function(e,t){var r,s,a;G.searchOperators&&(r=i[e])&&(T(".ui-search-table .ui-search-oper [colname='userId']",l).attr({soper:r}).text(G.operands[r]),T(".ui-search-table .ui-search-oper [colname='userId']",n).attr({soper:r}).text(G.operands[r])),-1<T.inArray(e,o)?(r=T.jgrid.getElemByAttrVal(w.p.colModel,"name",e))&&r.searchoptions&&(r=r.searchoptions||{},T.jgrid.isFunction(r.custom_value))&&(s=T("#gs_"+w.p.idPrefix+T.jgrid.jqID(e),w.grid.fhDiv),a=T("#gs_"+w.p.idPrefix+T.jgrid.jqID(e),w.grid.hDiv),r.custom_value.call(w,s,"set",t),r.custom_value.call(w,a,"set",t)):(T("#gs_"+w.p.idPrefix+T.jgrid.jqID(e),l).val(t),T("#gs_"+w.p.idPrefix+T.jgrid.jqID(e),n).val(t))})},v=T("<tr class='ui-search-toolbar' role='row'></tr>"),j=(G.restoreFromFilters&&(t=!0===w.p.mergeSearch&&w.p.searchModules.hasOwnProperty("filterToolbar")&&!1!==w.p.searchModules.filterToolbar?w.p.searchModules.filterToolbar:w.p.postData.filters)&&("string"==typeof t&&(t=T.jgrid.parse(t)),h=!(!t.rules||!t.rules.length)&&t.rules),new Set(G.disabledKeys));if(j.size!==G.disabledKeys.length)for(var r=0;r<G.disabledKeys.length;r++)(j=new Set).add(G.disabledKeys[r]);s.filterFor&&(g=s.filterFor),w.p.colSpanHeader.length&&T(w).jqGrid("destroyColSpanHeader",!1),T.each(w.p.colModel,function(e){var t,r,s,a=this,i="",o="=",l=T("<th role='columnheader' class='"+m.headerBox+" ui-th-"+w.p.direction+" "+(a.labelClasses||"")+"' id='gsh_"+w.p.id+"_"+a.name+"'></th>"),n=T('<div><span aria-label="empty" style="display: none;">empty</span></div>'),p=T("<table class='ui-search-table' cellspacing='0'><tr><td class='ui-search-oper' headers=''></td><td class='ui-search-input' headers=''></td><td class='ui-search-clear' headers=''></td></tr></table>");if(!0===this.hidden&&T(l).css("display","none"),this.search=!1!==this.search,void 0===this.stype&&(this.stype="text"),this.searchoptions=this.searchoptions||{},void 0===this.searchoptions.searchOperMenu&&(this.searchoptions.searchOperMenu=!0),e=void 0!==g?g+" "+w.p.colNames[e]:w.p.colNames[e],t=T.extend({},this.searchoptions,{name:a.index||a.name,id:"gs_"+w.p.idPrefix+a.name,oper:"search",title:e}),this.search){if(G.restoreFromFilters&&h)for(var c=!1,d=0;d<h.length;d++)if(h[d].field)if((a.index||a.name)===h[d].field){c=h[d];break}if(G.searchOperators){for(r=t.sopt?t.sopt[0]:"select"===a.stype?"eq":G.defaultSearch,G.restoreFromFilters&&c&&(r=c.op),s=0;s<G.odata.length;s++)if(G.odata[s].oper===r){o=G.operands[r]||"";break}e=null!=t.searchtitle?t.searchtitle:G.operandTitle,i=this.searchoptions.searchOperMenu?"<a title='"+e+"' soper='"+r+"' class='soptclass' colname='"+this.name+"'>"+o+"</a>":""}switch(T("td",p).eq(0).attr("columname",a.name).append(i),void 0===t.clearSearch&&(t.clearSearch=!0),t.clearSearch?(e=G.resetTitle||"Clear Search Value",T("td",p).eq(2).append("<a title='"+e+"' tabindex='0' style='padding-right: 0.3em;padding-left: 0.3em;' class='clearsearchclass'>"+G.resetIcon+"</a>")):T("td",p).eq(2).hide(),this.surl&&(t.dataUrl=this.surl),e="",t.defaultValue&&(e=T.jgrid.isFunction(t.defaultValue)?t.defaultValue.call(w):t.defaultValue),G.restoreFromFilters&&c&&(e=c.data),e=T.jgrid.createEl.call(w,this.stype,t,e,!1,T.extend({},T.jgrid.ajaxOptions,w.p.ajaxSelectOptions||{})),"custom"!==this.stype&&("select"===this.stype?T(e).addClass(f.srSelect):T(e).addClass(f.srInput)),T("td",p).eq(1).append(e),T(n).append(p),null==t.dataEvents&&(t.dataEvents=[]),this.stype){case"select":!0===G.autosearch&&t.dataEvents.push({type:"change",fn:function(){return y(),!1}});break;case"text":case"custom":!0===G.autosearch&&(G.searchOnEnter?t.dataEvents.push({type:"keypress",fn:function(e){return 13===(e.charCode||e.keyCode||0)?(e.preventDefault(),y(),!1):this}}):t.dataEvents.push({type:"keydown",fn:function(e){var t=e.which;if(!j.has(t)){if(13===t)return e.preventDefault(),!1;u&&clearTimeout(u),u=setTimeout(function(){y()},G.autosearchDelay)}}}))}T.jgrid.bindEv.call(w,e,t)}T(l).append(n),T(v).append(l),G.searchOperators&&""!==i||T("td",p).eq(0).hide()}),T("table thead",w.grid.hDiv).append(v),G.searchOperators&&(T(".soptclass",v).click(function(e){var t=T(this).offset(),r=t.left,t=t.top,s=this;T("#sopt_menu").remove(),r=parseInt(r,10),t=parseInt(t,10)+18;var a,i='<ul id="sopt_menu" class="ui-search-menu modal-content" role="menu" tabindex="0" style="font-size:'+(T(".ui-jqgrid").css("font-size")||"11px")+";left:"+r+"px;top:"+t+'px;">',o=T(s).attr("soper"),l=[],r=T(s).attr("colname"),n=T.jgrid.getElemByAttrVal(w.p.colModel,"name",r,!0);if(-1!==n){var t=w.p.colModel[n],p=T.extend({},t.searchoptions);for(p.sopt||(p.sopt=[],p.sopt[0]="select"===t.stype?"eq":G.defaultSearch),T.each(G.odata,function(){l.push(this.oper)}),n=0;n<p.sopt.length;n++)-1!==(a=T.inArray(p.sopt[n],l))&&(i+='<li class="ui-menu-item '+(o===G.odata[a].oper?c.highlight:"")+'" role="presentation"><a class="'+c.cornerall+' g-menu-item" tabindex="0" role="menuitem" value="'+G.odata[a].oper+'" oper="'+G.operands[G.odata[a].oper]+'"><table class="ui-common-table"><tr><td class="opersign">'+G.operands[G.odata[a].oper]+"</td><td>"+G.odata[a].text+"</td></tr></table></a></li>");i+="</ul>",T("body").append(i),T("#sopt_menu").addClass("ui-menu "+f.menu_widget),T("#sopt_menu > li > a").hover(function(){T(this).addClass(c.hover)},function(){T(this).removeClass(c.hover)}).click(function(){var e=T(this).attr("value"),t=T(this).attr("oper");T(w).triggerHandler("jqGridToolbarSelectOper",[e,t,s]),T("#sopt_menu").hide(),T(s).text(t).attr("soper",e),!0===G.autosearch&&(t=T(s).parent().next().children()[0],T(t).val()||"nu"===e||"nn"===e||0<=T.inArray(e,I))&&y()})}e.stopPropagation()}),T("body").on("click",function(e){"soptclass"!==e.target.className&&T("#sopt_menu").remove()})),T(".clearsearchclass",v).click(function(){var e,t=T(this).parents("tr").first(),r=T("td.ui-search-oper",t).attr("columname"),s=T("td.ui-search-oper a",t).attr("soper");if(-1===(r=T.jgrid.getElemByAttrVal(w.p.colModel,"name",r,!0)))return!1;var a=w.p.colModel[r],i=T.extend({},a.searchoptions||{}),o=i.defaultValue||"",l=("select"===a.stype?(l=T("td.ui-search-input select",t),o?l.val(o):l[0].selectedIndex=0):(l=T("td.ui-search-input input",t)).val(o),T(w).triggerHandler("jqGridToolbarClearVal",[l[0],r,i,o]),T.jgrid.isFunction(G.onClearSearchValue)&&G.onClearSearchValue.call(w,l[0],r,i,o),"");("nu"===s||"nn"===s||0<=T.inArray(s,I))&&(e=i.sopt?i.sopt[0]:"select"===a.stype?"eq":G.defaultSearch,l=null!=w.p.customFilterDef&&null!=w.p.customFilterDef[e]?w.p.customFilterDef[e].operand:G.operands[e]||"",(e===s?T("td.ui-search-oper a",t).attr("soper","dummy"):T("td.ui-search-oper a",t).attr("soper",e)).text(l)),!0===G.autosearch&&(y(),e===s)&&T("td.ui-search-oper a",t).attr("soper",e).text(l)}),T(".clearsearchclass",v).keydown(function(e){13===e.keyCode&&(e.preventDefault(),T(".clearsearchclass",v).trigger("click"))}),T(w.grid.hDiv).on("scroll",function(e){w.grid.hScroll||(w.grid.bScroll=!0,w.grid.bDiv.scrollLeft=w.grid.hDiv.scrollLeft,w.p.footerrow&&(w.grid.sDiv.scrollLeft=w.grid.bDiv.scrollLeft),w.p.headerrow&&(w.grid.hrDiv.scrollLeft=w.grid.bDiv.scrollLeft)),w.grid.hScroll=!1}),w.p.colSpanHeader.length&&setTimeout(function(){T(w).jqGrid("setColSpanHeader")},0),this.p.filterToolbar=!0,this.triggerToolbar=y,this.clearToolbar=function(e){var t,r,s,a,i,o,l={},n={},p=0,c=(e="boolean"!=typeof e||e,T.each(w.p.colModel,function(){switch(r=T("#gs_"+w.p.idPrefix+T.jgrid.jqID(this.name),!0===this.frozen&&!0===w.p.frozenColumns?w.grid.fhDiv:w.grid.hDiv),s=this.searchoptions&&void 0!==this.searchoptions.defaultValue?this.searchoptions.defaultValue:void 0,t=this.index||this.name,n[t]=this.searchoptions&&this.searchoptions.sopt?this.searchoptions.sopt[0]:G.defaultSearch||"eq",this.stype){case"select":if(r.find("option").each(function(e){if(0===e&&(this.selected=!0),T(this).val()===s)return!(this.selected=!0)}),void 0!==s)l[t]=s,p++;else try{delete w.p.postData[t]}catch(e){}break;case"text":if(r.val(s||""),void 0!==s)l[t]=s,p++;else try{delete w.p.postData[t]}catch(e){}break;case"custom":T.jgrid.isFunction(this.searchoptions.custom_value)&&0<r.length&&this.searchoptions.custom_value.call(w,r,"set",s||"")}}),0<p),d=((w.p.resetsearch=!0)===G.stringResult||"local"===w.p.datatype?(a='{"groupOp":"'+G.groupOp+'","rules":[',i=0,T.each(l,function(e,t){0<i&&(a+=","),a=(a=(a+='{"field":"'+e+'",')+'"op":"'+n[e]+'",')+'"data":"'+(t+="").replace(/\\/g,"\\\\").replace(/\"/g,'\\"')+'"}',i++,G.searchOperators&&(r=T("#gs_"+w.p.idPrefix+T.jgrid.jqID(e),!0===this.frozen&&!0===w.p.frozenColumns?w.grid.fhDiv:w.grid.hDiv)).parents("table.ui-search-table").find("td.ui-search-oper").children("a").attr("soper",n[e]).html(G.operands[n[e]])}),a+="]}",!0===w.p.mergeSearch&&w.p.searchModules.hasOwnProperty("filterToolbar")&&!1!==w.p.searchModules.filterToolbar?(w.p.searchModules.filterToolbar=0<i?a:null,c=!0,T.extend(w.p.postData,{filters:T.jgrid.splitSearch(w.p.searchModules)})):T.extend(w.p.postData,{filters:a}),T.each(["searchField","searchString","searchOper"],function(e,t){w.p.postData.hasOwnProperty(t)&&delete w.p.postData[t]})):T.extend(w.p.postData,l),G.url&&(o=w.p.url,T(w).jqGrid("setGridParam",{url:G.url})),"stop"===T(w).triggerHandler("jqGridToolbarBeforeClear"));(d=!d&&T.jgrid.isFunction(G.beforeClear)?G.beforeClear.call(w):d)||e&&T(w).jqGrid("setGridParam",{search:c}).trigger("reloadGrid",[{page:1}]),o&&T(w).jqGrid("setGridParam",{url:o}),T(w).triggerHandler("jqGridToolbarAfterClear"),T.jgrid.isFunction(G.afterClear)&&G.afterClear()},this.toggleToolbar=function(){var e=T("tr.ui-search-toolbar",w.grid.hDiv);!0===w.p.frozenColumns&&T(w).jqGrid("destroyFrozenColumns"),"none"===e.css("display")?e.show():e.hide(),!0===w.p.frozenColumns&&T(w).jqGrid("setFrozenColumns")}}})},destroyFilterToolbar:function(){return this.each(function(){this.p.filterToolbar&&(this.triggerToolbar=null,this.clearToolbar=null,this.toggleToolbar=null,this.p.filterToolbar=!1,T(this.grid.hDiv).find("table thead tr.ui-search-toolbar").remove())})},refreshFilterToolbar:function(g){return g=T.extend(!0,{filters:"",onClearVal:null,onSetVal:null},g||{}),this.each(function(){var a,i,o,e,l,n,p,c=this,d=c.p.colModel,u=c.p.colModel.length,h=[];if(c.p.filterToolbar){for(i=T(c).data("filterToolbar"),a=0;a<u;a++){switch(h.push(d[a].index||d[a].name),o=T("#gs_"+c.p.idPrefix+T.jgrid.jqID(d[a].name)),d[a].stype){case"select":case"text":o.val("")}T.jgrid.isFunction(g.onClearVal)&&g.onClearVal.call(c,o,d[a].name)}"string"==typeof g.filters&&(g.filters.length?e=g.filters:c.p.postData.hasOwnProperty("filters")&&(e=c.p.postData.filters),e=T.jgrid.parse(e)),T.isPlainObject(e)&&!function e(t){if(t&&t.rules){for(l=t.rules,u=l.length,a=0;a<u;a++){var r;n=l[a],-1!==(p=T.inArray(n.field,h))&&0<(o=T("#gs_"+c.p.idPrefix+T.jgrid.jqID(d[p].name))).length&&("select"===d[p].stype?o.find("option[value='"+T.jgrid.jqID(n.data)+"']").prop("selected",!0):"text"===d[p].stype&&o.val(n.data),T.jgrid.isFunction(g.onSetVal)&&g.onSetVal.call(c,o,d[p].name),i)&&i.searchOperators&&(r=o.parent().prev()).hasClass("ui-search-oper")&&(T(".soptclass",r).attr("soper",n.op),i.operands.hasOwnProperty(n.op))&&T(".soptclass",r).html(T.jgrid.stripScript(i.operands[n.op]))}if(t.groups)for(var s=0;s<t.groups.length;s++)e(t.groups[s])}}(e)}})},searchGrid:function(C){var e=T.jgrid.getRegional(this[0],"search");return C=T.extend(!0,{recreateFilter:!1,drag:!0,sField:"searchField",sValue:"searchString",sOper:"searchOper",sFilter:"filters",loadDefaults:!0,beforeShowSearch:null,afterShowSearch:null,onInitializeSearch:null,afterRedraw:null,afterChange:null,sortStrategy:null,closeAfterSearch:!1,closeAfterReset:!1,closeOnEscape:!1,searchOnEnter:!1,multipleSearch:!1,multipleGroup:!1,top:0,left:0,jqModal:!0,modal:!1,resize:!0,width:450,height:"auto",dataheight:"auto",showQuery:!1,errorcheck:!0,sopt:null,stringResult:void 0,onClose:null,onSearch:null,onReset:null,toTop:!0,overlay:30,columns:[],tmplNames:null,tmplFilters:null,tmplLabel:" Template: ",showOnLoad:!1,layer:null,splitSelect:",",groupOpSelect:"OR",operands:{eq:"=",ne:"<>",lt:"<",le:"<=",gt:">",ge:">=",bw:"LIKE",bn:"NOT LIKE",in:"IN",ni:"NOT IN",ew:"LIKE",en:"NOT LIKE",cn:"LIKE",nc:"NOT LIKE",nu:"IS NULL",nn:"ISNOT NULL"},buttons:[]},e,C||{}),this.each(function(){var a=this;if(a.grid){var t,r,s="fbox_"+a.p.id,i=!0,o=!0,l={themodal:"searchmod"+s,modalhead:"searchhd"+s,modalcontent:"searchcnt"+s,scrollelm:s},e=[],n=T.jgrid.styleUI[a.p.styleUI||"jQueryUI"].filter,p=T.jgrid.styleUI[a.p.styleUI||"jQueryUI"].common;if(C.styleUI=a.p.styleUI,"string"==typeof(t=T.isPlainObject(a.p._savedFilter)&&!T.isEmptyObject(a.p._savedFilter)?a.p._savedFilter:(!0===a.p.mergeSearch&&a.p.searchModules.hasOwnProperty("searchGrid")&&!1!==a.p.searchModules.searchGrid&&T.extend(a.p.postData,{filters:T.jgrid.splitSearch(a.p.searchModules)}),a.p.postData[C.sFilter]))&&(t=T.jgrid.parse(t)),!0===C.recreateFilter&&T("#"+T.jgrid.jqID(l.themodal)).remove(),void 0!==T("#"+T.jgrid.jqID(l.themodal))[0])G(T("#fbox_"+T.jgrid.jqID(a.p.id)));else{var c,d,u=T("<div><div id='"+s+"' class='searchFilter' style='overflow:auto'></div></div>").insertBefore("#gview_"+T.jgrid.jqID(a.p.id)),h="left",g="",f=("rtl"===a.p.direction&&(h="right",g=" style='text-align:left'",u.attr("dir","rtl")),T.extend([],a.p.colModel)),m="<a id='"+s+"_search' class='fm-button "+p.button+" fm-button-icon-right ui-search'><span class='"+p.icon_base+" "+n.icon_search+"'></span>"+C.Find+"</a>",y="<a id='"+s+"_reset' class='fm-button "+p.button+" fm-button-icon-left ui-reset'><span class='"+p.icon_base+" "+n.icon_reset+"'></span>"+C.Reset+"</a>",v="",j="",b=!1,S=-1,F=!1,O=[],m=(C.showQuery&&(v="<a id='"+s+"_query' class='fm-button "+p.button+" fm-button-icon-left'><span class='"+p.icon_base+" "+n.icon_query+"'></span>Query</a>"),T.jgrid.buildButtons(C.buttons,v+m,p)),x=null;if(T(a).jqGrid("isGroupHeaderOn")&&(_=T("table.ui-jqgrid-htable",a.grid.hDiv).find(".jqg-second-row-header"),d=a.p.groupHeader.length,void 0!==_[0])&&(x=a.p.groupHeader[d-1]),C.columns.length)f=C.columns,c=f[S=0].index||f[0].name;else{if(null!==x)for(var D=0;D<f.length;D++){var q=T.jgrid.inColumnHeader(f[D].name,x.groupHeaders);if(0<=q){f[D].label=x.groupHeaders[q].titleText+"::"+a.p.colNames[D];for(var w=1;w<=x.groupHeaders[q].numberOfColumns-1;w++)f[D+w].label=x.groupHeaders[q].titleText+"::"+a.p.colNames[D+w];D=D+x.groupHeaders[q].numberOfColumns-1}}T.each(f,function(e,t){var r,s;t.label||(t.label=a.p.colNames[e]),!b&&(r=void 0===t.search||t.search,s=!0===t.hidden,t.searchoptions&&!0===t.searchoptions.searchhidden&&r||r&&!s)&&(b=!0,c=t.index||t.name,S=e),"select"===t.stype&&t.searchoptions&&t.searchoptions.multiple&&(F=!0,O.push(t.index||t.name))})}if((!t&&c||!1===C.multipleSearch)&&(_="eq",0<=S&&f[S].searchoptions&&f[S].searchoptions.sopt?_=f[S].searchoptions.sopt[0]:C.sopt&&C.sopt.length&&(_=C.sopt[0]),t={groupOp:"AND",rules:[{field:c,op:_,data:""}]}),b=!1,C.tmplNames&&C.tmplNames.length&&(b=!0,j=(j="<tr><td class='ui-search-label'>"+C.tmplLabel+"</td>")+"<td><select size='1' name='select_template' class='ui-template "+n.srSelect+"'><option value='default'>Default</option>",T.each(C.tmplNames,function(e,t){j+="<option value='"+e+"'>"+t+"</option>"}),j+="</select></td></tr>"),void 0!==a.p.customFilterDef)for(var I in a.p.customFilterDef)a.p.customFilterDef.hasOwnProperty(I)&&!C.operands.hasOwnProperty(I)&&(C.odata.push({oper:I,text:a.p.customFilterDef[I].text}),C.operands[I]=a.p.customFilterDef[I].operand,!0===a.p.customFilterDef[I].unary)&&e.push(I);d="<table class='EditTable' style='border:0px none;margin-top:5px' id='"+s+"_2'><tbody><tr><td colspan='2'><hr class='"+p.content+"' style='margin:1px'/></td></tr>"+j+"<tr><td class='EditButton' style='text-align:"+h+"'>"+y+"</td><td class='EditButton' "+g+">"+m+"</td></tr></tbody></table>",s=T.jgrid.jqID(s),T("#"+s).jqFilter({columns:f,sortStrategy:C.sortStrategy,filter:C.loadDefaults?t:null,showQuery:C.showQuery,errorcheck:C.errorcheck,sopt:C.sopt,groupButton:C.multipleGroup,ruleButtons:C.multipleSearch,uniqueSearchFields:C.uniqueSearchFields,afterRedraw:C.afterRedraw,ops:C.odata,operands:C.operands,ajaxSelectOptions:a.p.ajaxSelectOptions,groupOps:C.groupOps,addsubgrup:C.addsubgrup,addrule:C.addrule,delgroup:C.delgroup,delrule:C.delrule,autoencode:a.p.autoencode,unaryOperations:e,onChange:function(){this.p.showQuery&&T(".query",this).text(this.toUserFriendlyString()),T.jgrid.isFunction(C.afterChange)&&C.afterChange.call(a,T("#"+s),C)},direction:a.p.direction,id:a.p.id}),u.append(d),T("#"+s+"_2").find("[data-index]").each(function(){var t=parseInt(T(this).attr("data-index"),10);0<=t&&T(this).on("click",function(e){C.buttons[t].click.call(a,T("#"+s),C,e)})}),b&&C.tmplFilters&&C.tmplFilters.length&&T(".ui-template",u).on("change",function(){var e=T(this).val();return"default"===e?T("#"+s).jqFilter("addFilter",t):T("#"+s).jqFilter("addFilter",C.tmplFilters[parseInt(e,10)]),!1}),!0===C.multipleGroup&&(C.multipleSearch=!0),T(a).triggerHandler("jqGridFilterInitialize",[T("#"+s)]),T.jgrid.isFunction(C.onInitializeSearch)&&C.onInitializeSearch.call(a,T("#"+s)),C.gbox="#gbox_"+T.jgrid.jqID(a.p.id);var _=T(".ui-jqgrid").css("font-size")||"11px";C.layer?T.jgrid.createModal(l,u,C,"#gview_"+T.jgrid.jqID(a.p.id),T("#gbox_"+T.jgrid.jqID(a.p.id))[0],"string"==typeof C.layer?"#"+T.jgrid.jqID(C.layer):C.layer,"string"==typeof C.layer?{position:"relative","font-size":_}:{"font-size":_}):T.jgrid.createModal(l,u,C,"#gview_"+T.jgrid.jqID(a.p.id),T("#gbox_"+T.jgrid.jqID(a.p.id))[0],null,{"font-size":_}),(C.searchOnEnter||C.closeOnEscape)&&T("#"+T.jgrid.jqID(l.themodal)).keydown(function(e){var t=T(e.target);return!C.searchOnEnter||13!==e.which||t.hasClass("add-group")||t.hasClass("add-rule")||t.hasClass("delete-group")||t.hasClass("delete-rule")||t.hasClass("fm-button")&&t.is("[id$=_query]")?C.closeOnEscape&&27===e.which?(T("#"+T.jgrid.jqID(l.modalhead)).find(".ui-jqdialog-titlebar-close").click(),!1):void 0:(e.preventDefault(),T("#"+s+"_search").click(),!1)}),v&&T("#"+s+"_query").on("click",function(){return T(".queryresult",u).toggle(),!1}),void 0===C.stringResult&&(C.stringResult=C.multipleSearch),T("#"+s+"_search").on("click",function(){var e,t={};return(r=T("#"+s)).find(".input-elm:focus").change(),F&&C.multipleSearch?(a.p._savedFilter={},e=T.jgrid.filterRefactor({ruleGroup:T.extend(!0,{},r.jqFilter("filterData")),ssfield:O,splitSelect:C.splitSelect,groupOpSelect:C.groupOpSelect}),a.p._savedFilter=T.extend(!0,{},r.jqFilter("filterData"))):e=r.jqFilter("filterData"),C.errorcheck&&(r[0].hideError(),C.showQuery||r.jqFilter("toSQLString"),r[0].p.error)?r[0].showError():(C.stringResult?(t[C.sFilter]=JSON.stringify(e),T.each([C.sField,C.sValue,C.sOper],function(){t[this]=""})):C.multipleSearch?(t[C.sFilter]=e,T.each([C.sField,C.sValue,C.sOper],function(){t[this]=""})):(t[C.sField]=e.rules[0].field,t[C.sValue]=e.rules[0].data,t[C.sOper]=e.rules[0].op,t[C.sFilter]=""),"string"!=typeof t[C.sFilter]&&(t[C.sFilter]=JSON.stringify(t[C.sFilter])),(a.p.search=!0)===a.p.mergeSearch&&a.p.searchModules.hasOwnProperty("searchGrid")&&!1!==a.p.searchModules.searchGrid&&C.multipleSearch?(""!==t[C.sFilter]?a.p.searchModules.searchGrid=t[C.sFilter]:a.p.searchModules.searchGrid=null,T.extend(a.p.postData,{filters:T.jgrid.splitSearch(a.p.searchModules)})):T.extend(a.p.postData,t),!1!==(o=(o=void 0===(o=T(a).triggerHandler("jqGridFilterSearch"))?!0:o)&&T.jgrid.isFunction(C.onSearch)?C.onSearch.call(a,a.p.filters):o)&&T(a).trigger("reloadGrid",[{page:1}]),C.closeAfterSearch&&T.jgrid.hideModal("#"+T.jgrid.jqID(l.themodal),{gb:"#gbox_"+T.jgrid.jqID(a.p.id),jqm:C.jqModal,onClose:C.onClose})),!1}),T("#"+s+"_reset").on("click",function(){var e={},t=T("#"+s);return a.p.search=!1,!(a.p.resetsearch=!0)===C.multipleSearch?e[C.sField]=e[C.sValue]=e[C.sOper]="":e[C.sFilter]="",t[0].resetFilter(),b&&T(".ui-template",u).val("default"),!0===a.p.mergeSearch&&a.p.searchModules.hasOwnProperty("searchGrid")&&!1!==a.p.searchModules.searchGrid?(a.p.searchModules.searchGrid=null,T.extend(a.p.postData,{filters:T.jgrid.splitSearch(a.p.searchModules)}),a.p.search=!0):T.extend(a.p.postData,e),!1!==(o=(o=void 0===(o=T(a).triggerHandler("jqGridFilterReset"))?!0:o)&&T.jgrid.isFunction(C.onReset)?C.onReset.call(a):o)&&T(a).trigger("reloadGrid",[{page:1}]),C.closeAfterReset&&T.jgrid.hideModal("#"+T.jgrid.jqID(l.themodal),{gb:"#gbox_"+T.jgrid.jqID(a.p.id),jqm:C.jqModal,onClose:C.onClose}),!1}),G(T("#"+s)),T(".fm-button:not(."+p.disabled+")",u).hover(function(){T(this).addClass(p.hover)},function(){T(this).removeClass(p.hover)})}}function G(e){(i=(i=void 0===(i=T(a).triggerHandler("jqGridFilterBeforeShow",[e]))?!0:i)&&T.jgrid.isFunction(C.beforeShowSearch)?C.beforeShowSearch.call(a,e):i)&&(T.jgrid.viewModal("#"+T.jgrid.jqID(l.themodal),{gbox:"#gbox_"+T.jgrid.jqID(a.p.id),jqm:C.jqModal,modal:C.modal,overlay:C.overlay,toTop:C.toTop}),T(a).triggerHandler("jqGridFilterAfterShow",[e]),T.jgrid.isFunction(C.afterShowSearch))&&C.afterShowSearch.call(a,e)}})},filterInput:function(o,l){return l=T.extend(!0,{defaultSearch:"cn",groupOp:"OR",searchAll:!1,beforeSearch:null,afterSearch:null,selectFirstFound:!1,firstFoundTimeout:30},l||{}),this.each(function(){var e,t,r,s,a,i=this;i.grid&&(t='{"groupOp":"'+l.groupOp+'","rules":[',r=0,o+="",T.each(i.p.colModel,function(){e=this.index||this.name,s=this.searchoptions||{},s=l.defaultSearch||(s.sopt?s.sopt[0]:l.defaultSearch),(void 0===this.search||this.search||l.searchAll)&&""!==o&&(0<r&&(t+=","),t=(t=t+'{"field":"'+e+'","op":"'+s+'",')+'"data":"'+o.replace(/\\/g,"\\\\").replace(/\"/g,'\\"')+'"}',r++)}),t+="]}",!0===i.p.mergeSearch&&i.p.searchModules.hasOwnProperty("filterInput")&&!1!==i.p.searchModules.filterInput?(i.p.searchModules.filterInput=0<r?t:null,T.extend(i.p.postData,{filters:T.jgrid.splitSearch(i.p.searchModules)})):T.extend(i.p.postData,{filters:t}),T.each(["searchField","searchString","searchOper"],function(e,t){i.p.postData.hasOwnProperty(t)&&delete i.p.postData[t]}),(a=!(a="stop"===T(i).triggerHandler("jqGridFilterInputBeforeSearch"))&&T.jgrid.isFunction(l.beforeSearch)?l.beforeSearch.call(i):a)||T(i).jqGrid("setGridParam",{search:!0}).trigger("reloadGrid",[{page:1}]),l.selectFirstFound&&setTimeout(function(){var e=T(i).jqGrid("getGridRowByIndex",1);T(i).jqGrid("setSelection",e.id,!1)},l.firstFoundTimeout),T(i).triggerHandler("jqGridFilterInputAfterSearch"),T.jgrid.isFunction(l.afterSearch))&&l.afterSearch.call(i)})},autoSelect:function(n){return n=T.extend(!0,{field:"",direction:"asc",src_date:"Y-m-d",allValues:"All",count_item:!0,create_value:!0},n||{}),this.each(function(){var e,t=this,r="";if(n.field&&t.p.data&&Array.isArray(t.p.data)){var s,a,i,o,l=[];try{o=(i=T.jgrid.from.call(t,t.p.data).groupBy(n.field,n.direction,"text",n.src_date)).length}catch(e){}if(i&&i.length){for(a=T("#gsh_"+t.p.id+"_"+n.field).find("td.ui-search-input > select"),o=i.length,n.allValues&&(r="<option value=''>"+n.allValues+"</option>",l.push(":"+n.allValues));o--;)e=i[o],s=n.count_item?" ("+e.items.length+")":"",r+="<option value='"+e.unique+"'>"+e.unique+s+"</option>",l.push(e.unique+":"+e.unique+s);a.append(r),a.on("change",function(){t.triggerToolbar()}),n.create_value&&(a=T.jgrid.getElemByAttrVal(t.p.colModel,"name",n.field,!1),T.isEmptyObject(a)||(a.searchoptions?T.extend(a.searchoptions,{value:l.join(";")}):(a.searchoptions={},a.searchoptions.value=l.join(";"))))}}})}})});js/minified/grid.frozenrows.js000064400000007330151676727230012467 0ustar00!function(r){"use strict";"function"==typeof define&&define.amd?define(["jquery","./grid.base"],r):r(jQuery)}(function(z){"use strict";z.jgrid.extend({setupFrozenRows:function(r){var g=z.extend({first:0,last:0,rowids:[],saveFirstLastId:!1,classes:""},r||{});return this.each(function(){if(!(!0===this.p.subGrid||!0===this.p.treeGrid||!0===this.p.cellEdit||this.p.scroll||!0===this.p.frozenColumns||!0===this.p.frozenRows||!0===this.p.grouping||g.first<=0&&g.last<=0&&0===g.rowids.length)){var r,s,i,e=this,o="border-box"===z("#"+z.jgrid.jqID(e.p.id)).css("box-sizing")?1:0,t="#"+z.jgrid.jqID(e.p.id),n="#gview_"+z.jgrid.jqID(e.p.id),d=document.getElementById("gbox_"+e.p.id).getBoundingClientRect().top,f=document.getElementById(e.p.id).getBoundingClientRect().top,h=z(n).width(),l=[],f=z('<div style="position:absolute;left:0px;top:'+(f-d-o)+'px;height:0px;overflow-x:hidden;" class="frozen-rdiv ui-jqgrid-rdiv"></div>');if(z(n).append(f),z(".frozen-rdiv",n).css("width",h-(z.jgrid.scrollbarWidth()+2)),l.push(z(".jqgfirstrow",t).clone(!0)),g.rowids&&0<g.rowids.length){for(r=0;r<g.rowids.length;r++)for(s=e.rows.length;s--;)if(e.rows[s].id===g.rowids[r]){l.push(z(e.rows[s]).clone(!0)),z(e.rows[s]).insertBefore(e.rows[r+1]);break}}else if(0<g.first)for(r=0;r<g.first;r++)l.push(z(e.rows[r+1]).clone(!0)),g.saveFirstLastId&&(g.rowids||(g.rowids=[]),g.rowids.push(e.rows[r+1].id));else{if(!(0<g.last))return;for(s=e.rows.length,r=0;r<g.last;r++)l.splice(1,0,z(e.rows[s-1]).clone(!0)),g.saveFirstLastId&&(g.rowids||(g.rowids=[]),g.rowids.unshift(e.rows[s-1].id)),z(e.rows[s-1]).insertBefore(e.rows[1])}f.css("height","auto");var w=z(t).clone(!0);for(w.children("tbody").empty(),s=0,i=l.length;s<i;s++)l[s].addClass(g.classes).appendTo(w);w.appendTo(f);var c=e.p.id+"_fr",d=(z(t,f).attr("id",c),c="#"+z.jgrid.jqID(c),z.jgrid.getMethod("getStyleUI")),o=e.p.styleUI+".common",p=d(o,"highlight",!0),a=d(o,"hover",!0);if(z(".frozen-rdiv",n).on("click","tr",function(){e.p.selrow&&z(e).jqGrid("resetSelection",e.p.selrow);var r=z(this).index();z(this).addClass(p).siblings().removeClass(p),e.p.selrow=this.id,z(".frozen-rdiv tr").eq(r).addClass(p).siblings().removeClass(p)}),z(c).on("click",function(){z(".frozen-rdiv tbody").children("tr").each(function(){z(this).removeClass(p)})}),z(n+" .ui-jqgrid-bdiv").first().on("scroll",function(){var r=this.scrollLeft;z(".frozen-rdiv").scrollLeft(r)}),z(".frozen-rdiv tr").hover(function(){var r=z(this).index();z(".frozen-rdiv tr").eq(r).addClass(a)},function(){var r=z(this).index();z(".frozen-rdiv tr").eq(r).removeClass(a)}),e.p.rownumbers){var u=!1;try{if(z(e.rows[0].cells).each(function(r){if(z(this).hasClass("jqgrid-rownumber"))return u=r,!1}),!1!==u){for(s=e.rows.length,r=1;r<s;)z(e.rows[r].cells[u]).html(r),r++;for(s=z(c)[0].rows.length,r=1;r<s;)z(c)[0].rows[r].cells[u].innerHTML=r,r++}}catch(r){}}e.grid.frbDiv=f,e.p.frozenRows=!0,e.p.frozenRowsPrm=g}})},destroyFrozenRows:function(r){return this.each(function(){this.grid.frbDiv.remove(),this.p.frozenRows=!1,r&&(this.p.frozenRowsPrm=null)})},setFrozenRows:function(r){return this.each(function(){0<this.p.records&&z(this).jqGrid("setupFrozenRows",r),z(this).on("jqGridAfterGridComplete.setFrozenRows",function(){this.p.frozenRowsPrm&&!z.isEmptyObject(this.p.frozenRowsPrm)?(z(this).jqGrid("destroyFrozenRows"),z(this).jqGrid("setupFrozenRows",this.p.frozenRowsPrm)):z(this).jqGrid("setupFrozenRows",r)}),z(this).on("jqGridResizeStop.setFrozenRows",function(){if(this.p.frozenRowsPrm)try{z(this).jqGrid("destroyFrozenRows");var r=0<this.p.frozenRowsPrm.last&&!this.p.frozenRowsPrm.saveFirstLastId&&0===this.p.frozenRowsPrm.first;r&&(this.p.frozenRowsPrm.first=this.p.frozenRowsPrm.last),z(this).jqGrid("setupFrozenRows",this.p.frozenRowsPrm),r&&(this.p.frozenRowsPrm.first=0)}catch(r){}})})}})});js/minified/grid.subgrid.js000064400000017374151676727230011721 0ustar00!function(i){"use strict";"function"==typeof define&&define.amd?define(["jquery","./grid.base"],i):i(jQuery)}(function(x){"use strict";x.jgrid.extend({setSubGrid:function(){return this.each(function(){var i,e,s=this,d=x.jgrid.styleUI[s.p.styleUI||"jQueryUI"].subgrid,d={plusicon:d.icon_plus,minusicon:d.icon_minus,openicon:d.icon_open,expandOnLoad:!1,selectOnExpand:!1,selectOnCollapse:!1,reloadOnExpand:!0,onErrorLoadData:null};if(s.p.subGridOptions=x.extend(d,s.p.subGridOptions||{}),s.p.colNames.unshift(""),s.p.colModel.unshift({name:"subgrid",width:x.jgrid.cell_width?s.p.subGridWidth+s.p.cellLayout:s.p.subGridWidth,sortable:!1,resizable:!1,hidedlg:!0,search:!1,fixed:!0}),(i=s.p.subGridModel)[0])for(i[0].align=x.extend([],i[0].align||[]),e=0;e<i[0].name.length;e++)i[0].align[e]=i[0].align[e]||"left"})},addSubGridCell:function(i,e){var s,d,r,t="";return this.each(function(){t=this.formatCol(i,e),d=this.p.id,s=this.p.subGridOptions.plusicon,r=x.jgrid.styleUI[this.p.styleUI||"jQueryUI"].common}),'<td role="gridcell" aria-describedby="'+d+'_subgrid" class="ui-sgcollapsed sgcollapsed" '+t+"><a style='cursor:pointer;' class='ui-sghref'><span class='"+r.icon_base+" "+s+"'></span></a></td>"},addSubGrid:function(j,t){return this.each(function(){var u=this;if(u.grid){var n,a,l,o,p,i,s,c=x.jgrid.styleUI[u.p.styleUI||"jQueryUI"].base,g=x.jgrid.styleUI[u.p.styleUI||"jQueryUI"].common,b=x.jgrid.getRegional(this,"errors"),h=function(i,e,s){s=x("<td align='"+u.p.subGridModel[0].align[s]+"'></td>").html(e);x(i).append(s)},f=function(i,e){for(var s,d,r=x("<table class='"+c.rowTable+" ui-common-table'><tbody></tbody></table>"),t=x("<tr></tr>"),n=0;n<u.p.subGridModel[0].name.length;n++)s=x("<th class='"+c.headerBox+" ui-th-subgrid ui-th-column ui-th-"+u.p.direction+"'></th>"),x(s).html(u.p.subGridModel[0].name[n]),x(s).width(u.p.subGridModel[0].width[n]),x(t).append(s);x(r).append(t),i&&(d=u.p.xmlReader.subgrid,x(d.root+" "+d.row,i).each(function(){if(t=x("<tr class='"+g.content+" ui-subtblcell'></tr>"),!0===d.repeatitems)x(d.cell,this).each(function(i){h(t,x(this).text()||"&#160;",i)});else{var i=u.p.subGridModel[0].mapping||u.p.subGridModel[0].name;if(i)for(n=0;n<i.length;n++)h(t,x.jgrid.getXmlData(this,i[n])||"&#160;",n)}x(r).append(t)}));i=x(u.grid.bDiv).find("table").first().attr("id")+"_";return x("#"+x.jgrid.jqID(i+e)).append(r),u.grid.hDiv.loading=!1,x("#load_"+x.jgrid.jqID(u.p.id)).hide(),!1},G=function(i,e){for(var s,d,r,t,n,a=x("<table class='"+c.rowTable+" ui-common-table'><tbody></tbody></table>"),l=x("<tr></tr>"),o=0;o<u.p.subGridModel[0].name.length;o++)s=x("<th class='"+c.headerBox+" ui-th-subgrid ui-th-column ui-th-"+u.p.direction+"'></th>"),x(s).html(u.p.subGridModel[0].name[o]),x(s).width(u.p.subGridModel[0].width[o]),x(l).append(s);if(x(a).append(l),i&&(t=u.p.jsonReader.subgrid,void 0!==(d=x.jgrid.getAccessor(i,t.root))))for(o=0;o<d.length;o++){if(r=d[o],l=x("<tr class='"+g.content+" ui-subtblcell'></tr>"),!0===t.repeatitems)for(t.cell&&(r=r[t.cell]),n=0;n<r.length;n++)h(l,r[n]||"&#160;",n);else{var p=u.p.subGridModel[0].mapping||u.p.subGridModel[0].name;if(p.length)for(n=0;n<p.length;n++)h(l,x.jgrid.getAccessor(r,p[n])||"&#160;",n)}x(a).append(l)}i=x(u.grid.bDiv).find("table").first().attr("id")+"_";return x("#"+x.jgrid.jqID(i+e)).append(a),u.grid.hDiv.loading=!1,x("#load_"+x.jgrid.jqID(u.p.id)).hide(),!1},m=0,e=(x.each(u.p.colModel,function(){!0!==this.hidden&&"rn"!==this.name&&"cb"!==this.name&&"sc"!==this.name||m++}),u.rows.length),d=1,r=x.jgrid.isFunction(u.p.isHasSubGrid);for(void 0!==t&&0<t&&(e=(d=t)+1);d<e;)x(u.rows[d]).hasClass("jqgrow")&&(u.p.scroll&&x(u.rows[d].cells[j]).off("click"),i=null,!1===(i=r?u.p.isHasSubGrid.call(u,u.rows[d].id):i)?u.rows[d].cells[j].innerHTML="":x(u.rows[d].cells[j]).on("click",function(){var i=x(this).parent("tr")[0];if(a=u.p.id,n=i.id,p=x("#"+a+"_"+n+"_expandedContent"),x(this).hasClass("sgcollapsed")){if(!1===(o=(o=!1!==(o=x(u).triggerHandler("jqGridSubGridBeforeExpand",[a+"_"+n,n]))&&"stop"!==o)&&x.jgrid.isFunction(u.p.subGridBeforeExpand)?u.p.subGridBeforeExpand.call(u,a+"_"+n,n):o))return!1;if(!0===u.p.subGridOptions.reloadOnExpand||!1===u.p.subGridOptions.reloadOnExpand&&!p.hasClass("ui-subgrid"))if(l=1<=j?"<td colspan='"+j+"'>&#160;</td>":"",x(i).after("<tr role='row' id='"+a+"_"+n+"_expandedContent' class='ui-subgrid ui-sg-expanded'>"+l+"<td class='"+g.content+" subgrid-cell'><span class='"+g.icon_base+" "+u.p.subGridOptions.openicon+"'></span></td><td colspan='"+parseInt(u.p.colNames.length-1-m,10)+"' class='"+g.content+" subgrid-data'><div id="+a+"_"+n+" class='tablediv'></div></td></tr>"),x(u).triggerHandler("jqGridSubGridRowExpanded",[a+"_"+n,n]),x.jgrid.isFunction(u.p.subGridRowExpanded))u.p.subGridRowExpanded.call(u,a+"_"+n,n);else{var e,s,d=i,r=x(d).attr("id"),t={nd_:(new Date).getTime()};if(t[u.p.prmNames.subgridid]=r,u.p.subGridModel[0]){if(u.p.subGridModel[0].params)for(s=0;s<u.p.subGridModel[0].params.length;s++)for(e=0;e<u.p.colModel.length;e++)u.p.colModel[e].name===u.p.subGridModel[0].params[s]&&(t[u.p.colModel[e].name]=x("td",d).eq(e).text().replace(/\&#160\;/gi,""));if(!u.grid.hDiv.loading)switch(u.grid.hDiv.loading=!0,x("#load_"+x.jgrid.jqID(u.p.id)).show(),u.p.subgridtype||(u.p.subgridtype=u.p.datatype),x.jgrid.isFunction(u.p.subgridtype)?u.p.subgridtype.call(u,t):u.p.subgridtype=u.p.subgridtype.toLowerCase(),u.p.subgridtype){case"xml":case"json":x.ajax(x.extend({type:u.p.mtype,url:x.jgrid.isFunction(u.p.subGridUrl)?u.p.subGridUrl.call(u,t):u.p.subGridUrl,dataType:u.p.subgridtype,data:x.jgrid.isFunction(u.p.serializeSubGridData)?u.p.serializeSubGridData.call(u,t):t,success:function(i,e,s){"xml"===u.p.subgridtype?f(s.responseXML,r):G(x.jgrid.parse(s.responseText),r)},error:function(i,e,s){if(x.jgrid.isFunction(u.p.subGridOptions.onErrorLoadData))u.p.subGridOptions.onErrorLoadData.call(u,rowid,i,e,s);else{e=i.responseText+" <br/>"+i.statusText;try{x.jgrid.info_dialog(b.errcap,'<div class="'+g.error+'">'+e+"</div>",edit.bClose,{buttonalign:"right",styleUI:u.p.styleUI})}catch(i){alert(e)}}}},x.jgrid.ajaxOptions,u.p.ajaxSubgridOptions||{}))}}}else p.show().removeClass("ui-sg-collapsed").addClass("ui-sg-expanded");x(this).html("<a style='cursor:pointer;' class='ui-sghref'><span class='"+g.icon_base+" "+u.p.subGridOptions.minusicon+"'></span></a>").removeClass("sgcollapsed").addClass("sgexpanded"),u.p.subGridOptions.selectOnExpand&&x(u).jqGrid("setSelection",n)}else if(x(this).hasClass("sgexpanded")){if(!1===(o=(o=!1!==(o=x(u).triggerHandler("jqGridSubGridRowColapsed",[a+"_"+n,n]))&&"stop"!==o)&&x.jgrid.isFunction(u.p.subGridRowColapsed)?u.p.subGridRowColapsed.call(u,a+"_"+n,n):o))return!1;!0===u.p.subGridOptions.reloadOnExpand?p.remove(".ui-subgrid"):p.hasClass("ui-subgrid")&&p.hide().addClass("ui-sg-collapsed").removeClass("ui-sg-expanded"),x(this).html("<a style='cursor:pointer;' class='ui-sghref'><span class='"+g.icon_base+" "+u.p.subGridOptions.plusicon+"'></span></a>").removeClass("sgexpanded").addClass("sgcollapsed"),u.p.subGridOptions.selectOnCollapse&&x(u).jqGrid("setSelection",n)}return!1})),d++;!0===u.p.subGridOptions.expandOnLoad&&(s=0,u.p.multiselect&&s++,u.p.rownumbers&&s++,x(u.rows).filter(".jqgrow").each(function(i,e){x(e.cells[s]).click()})),u.subGridXml=function(i,e){f(i,e)},u.subGridJson=function(i,e){G(i,e)}}})},expandSubGridRow:function(e){return this.each(function(){var i;(this.grid||e)&&!0===this.p.subGrid&&(i=x(this).jqGrid("getInd",e,!0))&&(i=x("td.sgcollapsed",i)[0])&&x(i).trigger("click")})},collapseSubGridRow:function(e){return this.each(function(){var i;(this.grid||e)&&!0===this.p.subGrid&&(i=x(this).jqGrid("getInd",e,!0))&&(i=x("td.sgexpanded",i)[0])&&x(i).trigger("click")})},toggleSubGridRow:function(s){return this.each(function(){var i,e;(this.grid||s)&&!0===this.p.subGrid&&(i=x(this).jqGrid("getInd",s,!0))&&(e=(e=x("td.sgcollapsed",i)[0])||x("td.sgexpanded",i)[0])&&x(e).trigger("click")})}})});js/minified/grid.import.js000064400000023220151676727230011557 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","./grid.utils","./grid.base"],e):e(jQuery)}(function(G){"use strict";G.jgrid=G.jgrid||{},G.extend(G.jgrid,{saveState:function(e,t){if(t=G.extend({useStorage:!0,storageType:"localStorage",beforeSetItem:null,compression:!1,compressionModule:"LZString",compressionMethod:"compressToUTF16",debug:!1,saveData:!0},t||{}),e){var r,i="",o="",e=G("#"+e)[0];if(e.grid){if((d=G(e).data("inlineNav"))&&e.p.inlineNav&&G(e).jqGrid("setGridParam",{_iN:d}),(d=G(e).data("filterToolbar"))&&e.p.filterToolbar&&G(e).jqGrid("setGridParam",{_fT:d}),i=G(e).jqGrid("jqGridExport",{exptype:"jsonstring",ident:"",root:"",data:t.saveData}),o="",t.saveData&&(d=(o=G(e.grid.bDiv).find(".ui-jqgrid-btable tbody").first().html()).indexOf("</tr>"),o=o.slice(d+5)),G.jgrid.isFunction(t.beforeSetItem)&&null!=(r=t.beforeSetItem.call(e,i))&&(i=r),t.debug){G("#gbox_tree").prepend('<a id="link_save" target="_blank" download="jqGrid_dump.txt">Click to save Dump Data</a>');var a,d=[],n={};d.push("Grid Options\n"),d.push(i),d.push("\n"),d.push("GridData\n"),d.push(o),n.type="plain/text;charset=utf-8";try{a=new File(d,"jqGrid_dump.txt",n)}catch(e){a=new Blob(d,n)}d=URL.createObjectURL(a),G("#link_save").attr("href",d).on("click",function(){G(this).remove()})}if(t.compression&&t.compressionModule)try{null!=(r=window[t.compressionModule][t.compressionMethod](i))&&(i=r,o=window[t.compressionModule][t.compressionMethod](o))}catch(e){}if(t.useStorage&&G.jgrid.isLocalStorage())try{window[t.storageType].setItem("jqGrid"+e.p.id,i),window[t.storageType].setItem("jqGrid"+e.p.id+"_data",o)}catch(e){22===e.code&&alert("Local storage limit is over!")}return i}}},loadState:function(e,t,r){if(r=G.extend({useStorage:!0,storageType:"localStorage",clearAfterLoad:!1,beforeSetGrid:null,afterSetGrid:null,decompression:!1,decompressionModule:"LZString",decompressionMethod:"decompressFromUTF16",restoreData:!0},r||{}),e){var i,o,a,d=G("#"+e)[0];if(r.useStorage)try{t=window[r.storageType].getItem("jqGrid"+d.id),n=window[r.storageType].getItem("jqGrid"+d.id+"_data")}catch(e){}if(t){if(r.decompression&&r.decompressionModule)try{null!=(i=window[r.decompressionModule][r.decompressionMethod](t))&&(t=i,n=window[r.decompressionModule][r.decompressionMethod](n))}catch(e){}if((i=G.jgrid.parseFunc(t))&&"object"===G.jgrid.type(i)){d.grid&&G.jgrid.gridUnload(e);var n,t=function(e){return e},s={reccount:(i=G.jgrid.isFunction(r.beforeSetGrid)&&(s=r.beforeSetGrid(i))&&"object"===G.jgrid.type(s)?s:i).reccount,records:i.records,lastpage:i.lastpage,shrinkToFit:t(i.shrinkToFit),data:t(i.data),datatype:t(i.datatype),grouping:t(i.grouping)},l=(i.shrinkToFit=!1,i.data=[],i.datatype="local",i.grouping=!1,i.inlineNav&&(o=t(i._iN),i._iN=null,delete i._iN),i.filterToolbar&&(a=t(i._fT),i._fT=null,delete i._fT),G("#"+e).jqGrid(i));if(l.jqGrid("delRowData","norecs"),r.restoreData&&""!==G.jgrid.trim(n)&&l.append(n),l.jqGrid("setGridParam",s),i.storeNavOptions&&i.navGrid&&(l[0].p.navGrid=!1,l.jqGrid("navGrid",i.pager,i.navOptions,i.editOptions,i.addOptions,i.delOptions,i.searchOptions,i.viewOptions),i.navButtons)&&i.navButtons.length)for(var p=0;p<i.navButtons.length;p++)"sepclass"in i.navButtons[p][1]?l.jqGrid("navSeparatorAdd",i.navButtons[p][0],i.navButtons[p][1]):l.jqGrid("navButtonAdd",i.navButtons[p][0],i.navButtons[p][1]);if(l[0].refreshIndex(),i.subGrid&&(t=1===i.multiselect?1:0,n=!0===i.rownumbers?1:0,l.jqGrid("addSubGrid",t+n),G.each(l[0].rows,function(e,t){G(t).hasClass("ui-sg-expanded")&&G(l[0].rows[e-1]).find("td.sgexpanded").click().click()})),i.treeGrid)for(var c=1,g=l[0].rows.length,u=i.expColInd,m=i.treeReader.leaf_field,f=i.treeReader.expanded_field;c<g;)G(l[0].rows[c].cells[u]).find("div.treeclick").on("click",function(e){e=e.target||e.srcElement,e=G.jgrid.stripPref(i.idPrefix,G(e,l[0].rows).closest("tr.jqgrow")[0].id),e=l[0].p._index[e];return l[0].p.data[e][m]||(l[0].p.data[e][f]?(l.jqGrid("collapseRow",l[0].p.data[e]),l.jqGrid("collapseNode",l[0].p.data[e])):(l.jqGrid("expandRow",l[0].p.data[e]),l.jqGrid("expandNode",l[0].p.data[e]))),!1}),!0===i.ExpandColClick&&G(l[0].rows[c].cells[u]).find("span.cell-wrapper").css("cursor","pointer").on("click",function(e){var e=e.target||e.srcElement,e=G.jgrid.stripPref(i.idPrefix,G(e,l[0].rows).closest("tr.jqgrow")[0].id),t=l[0].p._index[e];return l[0].p.data[t][m]||(l[0].p.data[t][f]?(l.jqGrid("collapseRow",l[0].p.data[t]),l.jqGrid("collapseNode",l[0].p.data[t])):(l.jqGrid("expandRow",l[0].p.data[t]),l.jqGrid("expandNode",l[0].p.data[t]))),l.jqGrid("setSelection",e),!1}),c++;if(i.multiselect&&G.each(i.selarrrow,function(){G("#jqg_"+e+"_"+this)[i.useProp?"prop":"attr"]("checked","checked")}),l.jqGrid("isGroupHeaderOn")&&l.jqGrid("refreshGroupHeaders"),i.searchCols)for(var j in i._results)i._results.hasOwnProperty(j)&&G("#jqs_"+e+"_"+j).val(i._results[j].v);i.inlineNav&&o&&(l.jqGrid("setGridParam",{inlineNav:!1}),l.jqGrid("inlineNav",i.pager,o)),i.filterToolbar&&a&&(l.jqGrid("setGridParam",{filterToolbar:!1}),a.restoreFromFilters=!0,l.jqGrid("filterToolbar",a)),i.frozenColumns&&l.jqGrid("setFrozenColumns"),l[0].updatepager(!0,!0),G.jgrid.isFunction(r.afterSetGrid)&&r.afterSetGrid(l),r.clearAfterLoad&&(window[r.storageType].removeItem("jqGrid"+d.id),window[r.storageType].removeItem("jqGrid"+d.id+"_data"))}else alert("can not convert to object")}}},isGridInStorage:function(e,t){var r,i,o,t=G.extend({storageType:"localStorage"},t||{});try{i=window[t.storageType].getItem("jqGrid"+e),o=window[t.storageType].getItem("jqGrid"+e+"_data"),r=null!=i&&null!=o&&"string"==typeof i&&"string"==typeof o}catch(e){r=!1}return r},setRegional:function(e,t){var r={storageType:"sessionStorage"};if((r=G.extend(r,t||{})).regional){G.jgrid.saveState(e,r),r.beforeSetGrid=function(e){return e.regional=r.regional,e.force_regional=!0,e},G.jgrid.loadState(e,null,r);var t=G("#"+e)[0],i=G(t).jqGrid("getGridParam","colModel"),o=-1,a=G.jgrid.getRegional(t,"nav");G.each(i,function(e){if(this.formatter&&"actions"===this.formatter)return o=e,!1}),-1!==o&&a&&G("#"+e+" tbody tr").each(function(){var e=this.cells[o];G(e).find(".ui-inline-edit").attr("title",a.edittitle),G(e).find(".ui-inline-del").attr("title",a.deltitle),G(e).find(".ui-inline-save").attr("title",a.savetitle),G(e).find(".ui-inline-cancel").attr("title",a.canceltitle)});try{window[r.storageType].removeItem("jqGrid"+t.id),window[r.storageType].removeItem("jqGrid"+t.id+"_data")}catch(e){}}},jqGridImport:function(e,r){r=G.extend({imptype:"xml",impstring:"",impurl:"",mtype:"GET",impData:{},xmlGrid:{config:"root>grid",data:"root>rows"},jsonGrid:{config:"grid",data:"data"},ajaxOptions:{}},r||{});function i(e,t){var r,i,o,a=G(t.xmlGrid.config,e)[0],t=G(t.xmlGrid.data,e)[0];if(G.grid.xmlToJSON){for(o in r=G.jgrid.xmlToJSON(a))r.hasOwnProperty(o)&&(i=r[o]);t?(a=r.grid.datatype,r.grid.datatype="xmlstring",r.grid.datastr=e,G(d).jqGrid(i).jqGrid("setGridParam",{datatype:a})):setTimeout(function(){G(d).jqGrid(i)},0)}else alert("xml2json or parse are not present")}function t(e,t){var r;e&&"string"==typeof e&&(r=(e=G.jgrid.parseFunc(e))[t.jsonGrid.config],(e=e[t.jsonGrid.data])?(t=r.datatype,r.datatype="jsonstring",r.datastr=e,G(d).jqGrid(r).jqGrid("setGridParam",{datatype:t})):G(d).jqGrid(r))}var o,d=(0===e.indexOf("#")?"":"#")+G.jgrid.jqID(e);switch(r.imptype){case"xml":G.ajax(G.extend({url:r.impurl,type:r.mtype,data:r.impData,dataType:"xml",complete:function(e,t){"success"===t&&(i(e.responseXML,r),G(d).triggerHandler("jqGridImportComplete",[e,r]),G.jgrid.isFunction(r.importComplete))&&r.importComplete(e)}},r.ajaxOptions));break;case"xmlstring":r.impstring&&"string"==typeof r.impstring&&(o=G.parseXML(r.impstring))&&(i(o,r),G(d).triggerHandler("jqGridImportComplete",[o,r]),G.jgrid.isFunction(r.importComplete))&&r.importComplete(o);break;case"json":G.ajax(G.extend({url:r.impurl,type:r.mtype,data:r.impData,dataType:"json",complete:function(e){try{t(e.responseText,r),G(d).triggerHandler("jqGridImportComplete",[e,r]),G.jgrid.isFunction(r.importComplete)&&r.importComplete(e)}catch(e){}}},r.ajaxOptions));break;case"jsonstring":r.impstring&&"string"==typeof r.impstring&&(t(r.impstring,r),G(d).triggerHandler("jqGridImportComplete",[r.impstring,r]),G.jgrid.isFunction(r.importComplete))&&r.importComplete(r.impstring)}}}),G.jgrid.extend({jqGridExport:function(t){t=G.extend({exptype:"xmlstring",root:"grid",ident:"\t",addOptions:{},data:!0},t||{});var r=null;return this.each(function(){if(this.grid){var e=G.extend(!0,{},G(this).jqGrid("getGridParam"),t.addOptions);switch(e.rownumbers&&(e.colNames.splice(0,1),e.colModel.splice(0,1)),e.multiselect&&(e.colNames.splice(0,1),e.colModel.splice(0,1)),e.searchCols&&(e.colNames.splice(0,1),e.colModel.splice(0,1)),e.subGrid&&(e.colNames.splice(0,1),e.colModel.splice(0,1)),e.knv=null,t.data||(e.data=[],e._index={}),t.exptype){case"xmlstring":r="<"+t.root+">"+G.jgrid.jsonToXML(e,{xmlDecl:""})+"</"+t.root+">";break;case"jsonstring":r=G.jgrid.stringify(e),t.root&&(r="{"+t.root+":"+r+"}")}}}),r},excelExport:function(d){return d=G.extend({exptype:"remote",url:null,oper:"oper",tag:"excel",beforeExport:null,exporthidden:!1,exportgrouping:!1,exportOptions:{},method:"GET"},d||{}),this.each(function(){if(this.grid&&"remote"===d.exptype){var t=G.extend({},this.p.postData);if(t[d.oper]=d.tag,G.jgrid.isFunction(d.beforeExport)&&(a=d.beforeExport.call(this,t),G.isPlainObject(a))&&(t=a),d.exporthidden){for(var e=this.p.colModel,r=e.length,i=[],o=0;o<r;o++)void 0===e[o].hidden&&(e[o].hidden=!1),i.push({name:e[o].name,hidden:e[o].hidden});var a=JSON.stringify(i);"string"==typeof a&&(t.colModel=a)}d.exportgrouping&&"string"==typeof(a=JSON.stringify(this.p.groupingView))&&(t.groupingView=a);try{G.jgrid.postForm(d.url,t,d.method)}catch(e){a=jQuery.param(t),t=-1!==d.url.indexOf("?")?d.url+"&"+a:d.url+"?"+a;window.location=t}}})}})});js/minified/grid.base.js000064400000533451151676727230011173 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)}(function($e){"use strict";$e.jgrid=$e.jgrid||{},$e.jgrid.hasOwnProperty("defaults")||($e.jgrid.defaults={}),$e.extend($e.jgrid,{version:"5.8.7",isNull:function(e,t){return t&&!0===t?null===e:null==e},trim:function(e){return"string"==typeof e?e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""):e},isFunction:function(e){return"function"==typeof e},type:function(e,t){return t?null===e?"[object Null]":Object.prototype.toString.call(e):null==e?(e+"").toLowerCase():"generatorfunction"===(t=Object.prototype.toString.call(e).slice(8,-1).toLowerCase())?"function":t.match(/^(array|bigint|date|error|function|generator|regexp|symbol)$/)?t:"object"==typeof e||"function"==typeof e?"object":typeof e},floatNum:function(e,t){return void 0===t&&(t=0),e=parseFloat(e),isNaN(e)?t:e},htmlDecode:function(e){return e&&("&nbsp;"===e||"&#160;"===e||1===e.length&&160===e.charCodeAt(0))?"":e&&String(e).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&quot;/g,'"').replace(/&amp;/g,"&")},htmlEncode:function(e){return e&&String(e).replace(/&/g,"&amp;").replace(/\"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")},template:function(e){var o,n=$e.makeArray(arguments).slice(1),a=n.length;return(e=$e.jgrid.isNull(e)?"":e).replace(/\{([\w\-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g,function(e,t){if(!isNaN(parseInt(t,10)))return n[parseInt(t,10)];for(o=0;o<a;o++)if(Array.isArray(n[o])){for(var i=n[o],r=i.length;r--;)if(t===i[r].nm)return i[r].v}else if("object"==typeof n[o]&&n[o][t])return $e.jgrid.isFunction(n[o][t])?n[o][t]():n[o][t]})},msie:function(){return 0<$e.jgrid.msiever()},msiever:function(){var e=0,t=window.navigator.userAgent,i=t.indexOf("MSIE");return 0<i?e=parseInt(t.substring(i+5,t.indexOf(".",i))):navigator.userAgent.match(/Trident\/7\./)&&(e=11),e},getCellIndex:function(e){e=$e(e);return e.is("tr")?-1:(e=(e.is("td")||e.is("th")?e:e.closest("td,th"))[0],$e.jgrid.msie()?$e.inArray(e,e.parentNode.cells):e.cellIndex)},stripHtml:function(e){return(e=String(e))&&((e=e.replace(/<("[^"]*"|'[^']*'|[^'">])*>/gi,""))&&"&nbsp;"!==e&&"&#160;"!==e?e.replace(/\"/g,"'"):"")},stripPref:function(e,t){var i=$e.jgrid.type(e);return t="string"!==i&&"number"!==i?t:""!==(e=String(e))?String(t).replace(String(e),""):t},stripScript:function(e){return e.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi," ")},useJSON:!0,runCode:function(e){return Function('"use strict";return ('+e+")")()},parse:function(e){e=(e="/*"===(e="while(1);"===(e=e).slice(0,9)?e.slice(9):e).slice(0,2)?e.slice(2,e.length-2):e)||"{}";return!0===$e.jgrid.useJSON&&"object"==typeof JSON&&"function"==typeof JSON.parse?JSON.parse(e):$e.jgrid.runCode(e)},dateToOADate:function(e){var t=new Date(e);return Math.round((t.setHours(0,0,0,0)-new Date(1899,11,30))/864e5)+(Math.abs((e-t)%864e5)/864e5).toFixed(10).slice(1)},parseDate:function(e,t,i,r){function o(e,t){for(e=String(e),t=parseInt(t,10)||2;e.length<t;)e="0"+e;return e}function n(e,t){return 0===e?12===t&&(t=0):12!==t&&(t+=12),t}var a,s,l,d=new RegExp("^/Date\\((([-+])?[0-9]+)(([-+])([0-9]{2})([0-9]{2}))?\\)/$"),d="string"==typeof t?t.match(d):null,c={m:1,d:1,y:1970,h:0,i:0,s:0,u:0},p=0,u=0;if(void 0===(r=void 0===(r=void 0===r?$e.jgrid.getRegional(this,"formatter.date"):r)?{}:r).parseRe&&(r.parseRe=/[#%\\\/:_;.,\t\s-]/),void 0===r.AmPm&&(r.AmPm=["am","pm","AM","PM"]),r.masks&&r.masks.hasOwnProperty(e)&&(e=r.masks[e]),t&&!$e.jgrid.isNull(t))if(isNaN(+t)||"u"!==String(e).toLowerCase())if(t.constructor===Date)p=t,r.validate=!1;else if(null!==d)p=new Date(parseInt(d[1],10)),d[3]&&(u=60*Number(d[5])+Number(d[6]),u=(u*="-"===d[4]?1:-1)-p.getTimezoneOffset(),p.setTime(Number(Number(p)+60*u*1e3))),r.validate=!1;else{for("ISO8601Long"===r.srcformat&&"Z"===t.charAt(t.length-1)&&(u-=(new Date).getTimezoneOffset()),t=String(t).replace(/\T/g,"#").replace(/\t/,"%").split(r.parseRe),s=0,l=(e=e.replace(/\T/g,"#").replace(/\t/,"%").split(r.parseRe)).length;s<l;s++){switch(e[s]){case"M":-1!==(a=$e.inArray(t[s],r.monthNames))&&a<12&&(t[s]=a+1,c.m=t[s]);break;case"F":-1!==(a=$e.inArray(t[s],r.monthNames,12))&&11<a&&(t[s]=a+1-12,c.m=t[s]);break;case"n":e[s]="m";break;case"j":e[s]="d";break;case"a":-1!==(a=$e.inArray(t[s],r.AmPm))&&a<2&&t[s]===r.AmPm[a]&&(t[s]=a,c.h=n(t[s],c.h));break;case"A":-1!==(a=$e.inArray(t[s],r.AmPm))&&1<a&&t[s]===r.AmPm[a]&&(t[s]=a-2,c.h=n(t[s],c.h));break;case"g":c.h=parseInt(t[s],10)}void 0!==t[s]&&(c[e[s].toLowerCase()]=parseInt(t[s],10))}if(c.f&&(c.m=c.f),0===c.m&&0===c.y&&0===c.d)return"&#160;";c.m=parseInt(c.m,10)-1;d=c.y;70<=d&&d<=99?c.y=1900+c.y:0<=d&&d<=69&&(c.y=2e3+c.y),p=new Date(c.y,c.m,c.d,c.h,c.i,c.s,c.u),0!==u&&p.setTime(Number(Number(p)+60*u*1e3))}else p=new Date(1e3*parseFloat(t)),r.validate=!1;else p=new Date(c.y,c.m,c.d,c.h,c.i,c.s,c.u);if(r&&!0===r.validate)return d=new Date(c.y,+c.m,c.d,c.h,c.i),Boolean(+d)&&d.getDate()===c.d&&d.getHours()===c.h&&d.getMinutes()===c.i;if(r.userLocalTime&&0===u&&0!==(u-=(new Date).getTimezoneOffset())&&p.setTime(Number(Number(p)+60*u*1e3)),void 0===i)return p;i=r.masks&&r.masks.hasOwnProperty(i)?r.masks[i]:i||"Y-m-d";var d=p.getHours(),u=p.getMinutes(),g=p.getDate(),h=p.getMonth()+1,f=p.getTimezoneOffset(),m=p.getSeconds(),v=p.getMilliseconds(),w=p.getDay(),b=p.getFullYear(),j=(w+6)%7+1,_=(new Date(b,h-1,g)-new Date(b,0,1))/864e5,y={d:o(g),D:r.dayNames[w],j:g,l:r.dayNames[w+7],N:j,S:r.S(g),w:w,z:_,W:j<5?Math.floor((_+j-1)/7)+1:Math.floor((_+j-1)/7)||((new Date(b-1,0,1).getDay()+6)%7<4?53:52),F:r.monthNames[h-1+12],m:o(h),M:r.monthNames[h-1],n:h,t:"?",L:"?",o:"?",Y:b,y:String(b).substring(2),a:d<12?r.AmPm[0]:r.AmPm[1],A:d<12?r.AmPm[2]:r.AmPm[3],B:"?",g:d%12||12,G:d,h:o(d%12||12),H:o(d),i:o(u),s:o(m),u:v,e:"?",I:"?",O:(0<f?"-":"+")+o(100*Math.floor(Math.abs(f)/60)+Math.abs(f)%60,4),P:(0<f?"-":"+")+(g=o(100*Math.floor(Math.abs(f)/60)+Math.abs(f)%60,4),w=-2,_=":",(g=String(g)).slice(0,w)+_+g.slice(w)),T:(String(p).match(/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g)||[""]).pop().replace(/[^-+\dA-Z]/g,""),Z:"?",c:"?",r:"?",U:Math.floor(p/1e3)};return i.replace(/\\.|[dDjlNSwzWFmMntLoYyaABgGhHisueIOPTZcrU]/g,function(e){return y.hasOwnProperty(e)?y[e]:e.substring(1)})},jqID:function(e){return String(e).replace(/[!"#$%&'()*+,.\/:; <=>?@\[\\\]\^`{|}~]/g,"\\$&")},guid:1,uidPref:"jqg",randId:function(e){return(e||$e.jgrid.uidPref)+$e.jgrid.guid++},getAccessor:function(e,t){var i,r,o=[];if("function"==typeof t)return t(e);if(void 0===(i=e[t]))try{if(r=(o="string"==typeof t?t.split("."):o).length)for(i=e;i&&r--;)i=i[o.shift()]}catch(e){}return i},getXmlData:function(e,t,i){var r="string"==typeof t?t.match(/^(.*)\[(\w+)\]$/):null;return"function"==typeof t?t(e):r&&r[2]?(r[1]?$e(r[1],e):$e(e)).attr(r[2]):(r=$e(t,e),i?r:0<r.length?$e(r).text():void 0)},cellWidth:function(){var e=$e("<div class='ui-jqgrid' style='left:10000px'><table class='ui-jqgrid-btable ui-common-table' style='width:5px;'><tr class='jqgrow'><td style='width:5px;display:block;'></td></tr></table></div>"),t=e.appendTo("body").find("td").width();return e.remove(),.1<Math.abs(t-5)},isLocalStorage:function(){try{return"localStorage"in window&&null!==window.localStorage}catch(e){return!1}},getRegional:function(e,t,i){var r;return void 0!==i?i:void 0===(r=e.p&&e.p.regional&&$e.jgrid.regional?$e.jgrid.getAccessor($e.jgrid.regional[e.p.regional]||{},t):r)?$e.jgrid.getAccessor($e.jgrid,t):r},isMobile:function(){try{return/Android|webOS|iPhone|iPad|iPod|pocket|psp|kindle|avantgo|blazer|midori|Tablet|Palm|maemo|plucker|phone|BlackBerry|symbian|IEMobile|mobile|ZuneWP7|Windows Phone|Opera Mini/i.test(navigator.userAgent)?!0:!1}catch(e){return!1}},cell_width:!0,scrollbarWidth:function(){var e=$e('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div>'),t=($e("body").append(e),$e("div",e).innerWidth()),i=(e.css("overflow-y","scroll"),$e("div",e).innerWidth());return $e(e).remove(),t-i<0?18:t-i},scrollbarHeight:function(){var e=$e('<div style="width:50px;overflow-x:scroll;position:absolute;top:-200px;left:-200px;"<span>1234567890</span></div>'),t=($e("body").append(e),$e(e).outerHeight()),i=$e(e)[0].scrollHeight;return $e(e).remove(),t-i<0?18:t-i},ajaxOptions:{},from:function(e){var v=this;return new function(e,t){"string"==typeof e&&(e=$e.data(e));var h=this,o=e,f=!0,i=!1,r=t,m=/[\$,%]/g,n=null,a=null,s=0,l=!1,d="",u=[],c=!0;if("object"==typeof e&&e.push)return 0<e.length&&(c="object"==typeof e[0]),this._hasData=function(){return null!==o&&0!==o.length},this._getStr=function(e){var t=[];return i&&t.push("$.jgrid.trim("),t.push("String("+e+")"),i&&t.push(")"),f||t.push(".toLowerCase()"),t.join("")},this._strComp=function(e){return"string"==typeof e?".toString()":""},this._group=function(e,t){return{field:e.toString(),unique:t,items:[]}},this._toStr=function(e){return e=(e=i?$e.jgrid.trim(e):e).toString().replace(/\\/g,"\\\\").replace(/\"/g,'\\"'),f?e:e.toLowerCase()},this._funcLoop=function(i){var r=[];return $e.each(o,function(e,t){r.push(i(t))}),r},this._append=function(e){var t;for(null===r?r="":r+=""===d?" && ":d,t=0;t<s;t++)r+="(";l&&(r+="!"),r+="("+e+")",l=!1,d="",s=0},this._setCommand=function(e,t){n=e,a=t},this._resetNegate=function(){l=!1},this._repeatCommand=function(e,t){return null===n?h:null!==e&&null!==t?n(e,t):null!==a&&c?n(a,e):n(e)},this._equals=function(e,t){return 0===h._compare(e,t,1)},this._compare=function(e,t,i){var r=Object.prototype.toString;return void 0===i&&(i=1),void 0===t&&(t=null),null===(e=void 0===e?null:e)&&null===t?0:null===e&&null!==t?1:null!==e&&null===t?-1:"[object Date]"===r.call(e)&&"[object Date]"===r.call(t)||"number"==typeof e&&"number"==typeof t?t<e?i:e<t?-i:0:(r=String(e).localeCompare(String(t)))<0?-i:0<r?i:0},this._performSort=function(){0!==u.length&&(o=h._doSort(o,0))},this._doSort=function(e,t){var i=u[t].by,r=u[t].dir,o=u[t].type,n=u[t].datefmt,a=u[t].sfunc;if(t===u.length-1)return h._getOrder(e,i,r,o,n,a);t++;for(var s,l,d=h._getGroup(e,i,r,o,n),c=[],p=0;p<d.length;p++)for(l=h._doSort(d[p].items,t),s=0;s<l.length;s++)c.push(l[s]);return c},this._getOrder=function(e,i,t,r,o,n){for(var a,s,l,d,c=[],p=[],u="a"===t?1:-1,g=(d="float"===(r=void 0===r?"text":r)||"number"===r||"currency"===r||"numeric"===r?function(e){e=parseFloat(String(e).replace(m,""));return isNaN(e)?Number.NEGATIVE_INFINITY:e}:"int"===r||"integer"===r?function(e){return e?parseFloat(String(e).replace(m,"")):Number.NEGATIVE_INFINITY}:"date"===r||"datetime"===r?function(e){return $e.jgrid.parseDate.call(v,o,e).getTime()}:$e.jgrid.isFunction(r)?r:function(e){return e=e?$e.jgrid.trim(String(e)):"",f?e:e.toLowerCase()},$e.each(e,function(e,t){s=""!==i?$e.jgrid.getAccessor(t,i):t,s=d(s=void 0===s?"":s,t),p.push({vSort:s,index:e})}),$e.jgrid.isFunction(n)?p.sort(function(e,t){return n.call(this,e.vSort,t.vSort,u,e,t)}):p.sort(function(e,t){return h._compare(e.vSort,t.vSort,u)}),l=0,e.length);l<g;)a=p[l].index,c.push(e[a]),l++;return c},this._getGroup=function(e,i,t,r,o){var n,a=[],s=null,l=null;return $e.each(h._getOrder(e,i,t,r,o),function(e,t){n=$e.jgrid.getAccessor(t,i),$e.jgrid.isNull(n)&&(n=""),h._equals(l,n)||(l=n,null!==s&&a.push(s),s=h._group(i,n)),s.items.push(t)}),null!==s&&a.push(s),a},this.ignoreCase=function(){return f=!1,h},this.useCase=function(){return f=!0,h},this.trim=function(){return i=!0,h},this.noTrim=function(){return i=!1,h},this.execute=function(){var e=r,t=[];return null!==e&&($e.each(o,function(){$e.jgrid.runCode.call(v,e.replace(/this/g,JSON.stringify(this)))&&t.push(this)}),o=t),h},this.data=function(){return o},this.select=function(i){var r;return h._performSort(),h._hasData()?(h.execute(),$e.jgrid.isFunction(i)?(r=[],$e.each(o,function(e,t){r.push(i(t))}),r):o):[]},this.hasMatch=function(){return!!h._hasData()&&(h.execute(),0<o.length)},this.andNot=function(e,t,i){return l=!l,h.and(e,t,i)},this.orNot=function(e,t,i){return l=!l,h.or(e,t,i)},this.not=function(e,t,i){return h.andNot(e,t,i)},this.and=function(e,t,i){return d=" && ",void 0===e?h:h._repeatCommand(e,t,i)},this.or=function(e,t,i){return d=" || ",void 0===e?h:h._repeatCommand(e,t,i)},this.orBegin=function(){return s++,h},this.orEnd=function(){return null!==r&&(r+=")"),h},this.isNot=function(e){return l=!l,h.is(e)},this.is=function(e){return h._append("this."+e),h._resetNegate(),h},this._compareValues=function(e,t,i,r,o){var n=c?"jQuery.jgrid.getAccessor(this,'"+t+"')":"this",a=i=void 0===i?null:i,s=void 0===o.stype?"text":o.stype;if(null!==i)switch(s){case"int":case"integer":n="parseInt("+n+",10)",a="parseInt("+(a=isNaN(Number(a))||""===a?Number.NEGATIVE_INFINITY:a)+",10)";break;case"float":case"number":case"numeric":a=String(a).replace(m,""),n="parseFloat("+n+")",a="parseFloat("+(a=isNaN(Number(a))||""===a?Number.NEGATIVE_INFINITY:Number(a))+")";break;case"date":case"datetime":a=String($e.jgrid.parseDate.call(v,o.srcfmt||"Y-m-d",a).getTime()),n='jQuery.jgrid.parseDate.call(jQuery("#'+$e.jgrid.jqID(v.p.id)+'")[0],"'+o.srcfmt+'",'+n+").getTime()";break;default:n=h._getStr(n),a=h._getStr('"'+h._toStr(a)+'"')}return h._append(n+" "+r+" "+a),h._setCommand(e,t),h._resetNegate(),h},this.equals=function(e,t,i){return h._compareValues(h.equals,e,t,"==",i)},this.notEquals=function(e,t,i){return h._compareValues(h.equals,e,t,"!==",i)},this.isNull=function(e,t,i){return h._compareValues(h.equals,e,null,"===",i)},this.greater=function(e,t,i){return h._compareValues(h.greater,e,t,">",i)},this.less=function(e,t,i){return h._compareValues(h.less,e,t,"<",i)},this.greaterOrEquals=function(e,t,i){return h._compareValues(h.greaterOrEquals,e,t,">=",i)},this.lessOrEquals=function(e,t,i){return h._compareValues(h.lessOrEquals,e,t,"<=",i)},this.startsWith=function(e,t){return c?h._append(h._getStr("jQuery.jgrid.getAccessor(this,'"+e+"')")+".startsWith("+h._getStr('"'+h._toStr(t)+'"')+")"):h._append(h._getStr("this")+".startsWith("+h._getStr('"'+h._toStr(e)+'"')+")"),h._setCommand(h.startsWith,e),h._resetNegate(),h},this.endsWith=function(e,t){return c?h._append(h._getStr("jQuery.jgrid.getAccessor(this,'"+e+"')")+".endsWith("+h._getStr('"'+h._toStr(t)+'"')+")"):h._append(h._getStr("this")+".endsWith("+h._getStr('"'+h._toStr(e)+'"')+")"),h._setCommand(h.endsWith,e),h._resetNegate(),h},this.contains=function(e,t){return c?h._append(h._getStr("jQuery.jgrid.getAccessor(this,'"+e+"')")+'.indexOf("'+h._toStr(t)+'",0) > -1'):h._append(h._getStr("this")+'.indexOf("'+h._toStr(e)+'",0) > -1'),h._setCommand(h.contains,e),h._resetNegate(),h},this.user=function(e,t,i){var r='$("#'+v.p.id+'")[0]';return h._append(r+".p.customFilterDef."+e+".action.call("+r+' ,{rowItem: this, searchName:"'+t+'",searchValue:"'+i+'"})'),h._setCommand(h.user,t),h._resetNegate(),h},this.inData=function(e,t,i){t=void 0===t?"":h._getStr('"'+h._toStr(t)+'"');return c?h._append(t+".split(',').indexOf( jQuery.jgrid.getAccessor(this,'"+e+"') ) > -1"):h._append(t+".split(',').indexOf(this."+e+") > -1"),h._setCommand(h.inData,e),h._resetNegate(),h},this.groupBy=function(e,t,i,r){return h._hasData()?h._getGroup(o,e,t,i,r):null},this.orderBy=function(e,t,i,r,o){return t=$e.jgrid.isNull(t)?"a":$e.jgrid.trim(t.toString().toLowerCase()),$e.jgrid.isNull(i)&&(i="text"),$e.jgrid.isNull(r)&&(r="Y-m-d"),$e.jgrid.isNull(o)&&(o=!1),u.push({by:e,dir:t="asc"!==(t="desc"!==t&&"descending"!==t?t:"d")&&"ascending"!==t?t:"a",type:i,datefmt:r,sfunc:o}),h},h;throw"data provides is not an array"}(e,null)},getMethod:function(e){return this.getAccessor($e.fn.jqGrid,e)},extend:function(e){$e.extend($e.fn.jqGrid,e),this.no_legacy_api||$e.fn.extend(e)},clearBeforeUnload:function(e){var t,i=$e("#"+$e.jgrid.jqID(e))[0];if(i.grid){t=i.grid,$e.jgrid.isFunction(t.emptyRows)&&t.emptyRows.call(i,!0,!0),$e(document).off("mouseup.jqGrid"+i.p.id),$e(t.hDiv).off("mousemove"),$e(i).off();for(var r=t.headers.length,o=["formatCol","sortData","updatepager","refreshIndex","setHeadCheckBox","constructTr","formatter","addXmlData","addJSONData","grid","p","addLocalData"],n=0;n<r;n++)t.headers[n].el=null;for(n in t)t.hasOwnProperty(n)&&(t[n]=null);for(n in i.p)i.p.hasOwnProperty(n)&&(i.p[n]=Array.isArray(i.p[n])?[]:null);for(r=o.length,n=0;n<r;n++)i.hasOwnProperty(o[n])&&(i[o[n]]=null,delete i[o[n]])}},gridUnload:function(e){var t,i,r,o;e&&(0===(e=$e.jgrid.trim(e)).indexOf("#")&&(e=e.substring(1)),(t=$e("#"+$e.jgrid.jqID(e))[0]).grid)&&(i={id:$e(t).attr("id"),cl:$e(t).attr("class")},t.p.pager&&$e(t.p.pager).off().empty().removeClass("ui-state-default ui-jqgrid-pager ui-corner-bottom"),(r=document.createElement("table")).className=i.cl,o=$e.jgrid.jqID(t.id),$e(r).removeClass("ui-jqgrid-btable ui-common-table").insertBefore("#gbox_"+o),1===$e(t.p.pager).parents("#gbox_"+o).length&&$e(t.p.pager).insertBefore("#gbox_"+o),$e.jgrid.clearBeforeUnload(e),$e("#gbox_"+o).remove(),$e(r).attr({id:i.id}),$e("#alertmod_"+$e.jgrid.jqID(e)).remove())},gridDestroy:function(e){if(e){0===(e=$e.jgrid.trim(e)).indexOf("#")&&(e=e.substring(1));var t=$e("#"+$e.jgrid.jqID(e))[0];if(t&&t.grid){t.p.pager&&$e(t.p.pager).remove();try{$e.jgrid.clearBeforeUnload(e),$e("#gbox_"+$e.jgrid.jqID(e)).remove()}catch(e){}}}},isElementInViewport:function(e){e=e.getBoundingClientRect();return 0<=e.left&&e.right<=(window.innerWidth||document.documentElement.clientWidth)},getTextWidth:function(e,t){var i;return jQuery._cacheCanvas||(i=document.createElement("canvas"),document.createDocumentFragment().appendChild(i),jQuery._cacheCanvas=i.getContext("2d")),t&&(jQuery._cacheCanvas.font=t),jQuery._cacheCanvas.measureText($e.jgrid.stripHtml(e)).width},getFont:function(e){e=window.getComputedStyle(e,null);return e.getPropertyValue("font-style")+" "+e.getPropertyValue("font-variant")+" "+e.getPropertyValue("font-weight")+" "+e.getPropertyValue("font-size")+" "+e.getPropertyValue("font-family")},setSelNavIndex:function(i,r){var e=$e(".ui-pg-button",i.p.pager);$e.each(e,function(e,t){if(r===t)return i.p.navIndex=e,!1}),$e(r).attr("tabindex","0")},splitSearch:function(e){var t,i='{"groupOp":"'+e.mergeOper+'","groups":[';for(t in e)e.hasOwnProperty(t)&&"mergeOper"!==t&&(i+=null!==e[t]&&""!==e[t]&&"boolean"!=typeof e[t]?e[t]+",":"",0);return-1===i.indexOf("[",i.length-"[".length)&&(i=i.slice(0,-1)),i+="]}"},getElemByAttrVal:function(e,t,i,r){"boolean"!=typeof r&&(r=!1);var o=Array.isArray(e)?e.length:0,n=0,a={},s=-1;if(0<o)for(;n<o;){if(e[n][t]===i){a=e[n],s=n;break}n++}return r?s:a},searchColOnEnter:function(e,t,i,r){var o,a=$e("#"+e)[0];if(a.grid){var s,l,d=a.p.searchColOptions,e=!1;try{l=i.value}catch(e){l=""}if(a.p.frozenColumns&&($e(a.grid.bDiv).find(".jqgrid-searchcol >input#jqs_"+a.p.id+"_"+t).focus().val(l),e=!0),!a.p._ftsc){for(a.p._ftsc=!0,a.p._fthc=[],a.p._avc=[],o=0;o<a.p.colModel.length;o++)(a.p.colModel[o].hidden?a.p._fthc:a.p._avc).push(a.p.colModel[o].name);a.p._results={}}var n=[...new Set([...d._cnth,...d.visibleColumns])],c=new Set([...n,...a.p._fthc]);if($e(a).jqGrid("hideCol",a.p._avc.filter(function(e){return!n.includes(e)})),a.grid&&null==t)for(var p in a.p._results)a.p._results.hasOwnProperty(p)&&(l=a.p._results[p].v,h(p));else!a.grid||null===t&&void 0===t||h(t);var u=[],g=0;for(o in a.p._results)"OR"===d.searchOp.toUpperCase()?u=[...new Set([...u,...a.p._results[o].r])]:"AND"===d.searchOp.toUpperCase()&&(u=0===g?a.p._results[o].r:u.filter(function(e){return a.p._results[o].r.includes(e)}),g++);i=(u=$e.isEmptyObject(a.p._results)?a.p._avc:u).concat(n);$e(a).jqGrid("showCol",i),a.p.frozenColumns&&$e(a.grid.fbDiv).find(".jqgrid-searchcol >input#jqs_"+a.p.id+"_"+t).val("").focus().val(l),a.p.frozenRows&&(e&&(a.p.frozenColumns=!1),$e(a).trigger("jqGridAfterGridComplete.setFrozenRows"),e)&&(a.p.frozenColumns=!0)}function h(e){var t,i=$e(a).jqGrid("getRowData",e),r=[];if(i&&l){for(var o in i)if(!c.has(o)&&i.hasOwnProperty(o)){if(t=l,d.useCase||(i[o]=i[o].toLowerCase(),t=l.toLowerCase()),d.aOperands.includes(d.operand))switch(d.operand){case"cn":s=-1!==i[o].search(t);break;case"eq":s=i[o]===t;break;case"ne":s=i[o]!==t;break;case"bw":s=i[o].substring(0,t.length)===t;break;case"ew":var n=i[o].length;s=i[o].substring(n-t.length,n)===t}s&&r.push(o)}a.p._results[e]={v:l,r:r}}else i&&""===l&&a.p._results[e]&&delete a.p._results[e]}},searchColOnKey:function(e,t,i,r){switch(r.key){case"ArrowRight":case"ArrowDown":case"ArrowUp":case"ArrowLeft":case"PageUp":case"PageDown":case"Alt":case"Control":case"Tab":case"Escape":case"Shift":return}setTimeout(function(){$e.jgrid.searchColOnEnter(e,t,i,r)},50)},comboGrid:function(s,l,e){var t=$e.jgrid.randId("combo"),i="div"+t,r=e.datatype,d=(e.datatype="local",e.onSelectRow=function(e){var e=$e("#"+t).jqGrid("getRowData",e);$e.isEmptyObject(e)||(e=$e.jgrid.isFunction(l.return_fld)?l.return_fld.call(this,e):e[l.return_fld],$e("#"+s).val(e),$e("#"+i).hide())},e.data=[],e.scrollrows=!0,$e("body").append("<div id='"+i+"'><table id='"+t+"'></table>"),e.pager&&$e("body").append("<div id='"+e.pager+"'></div>"),$e("body").append("</div>"),$e("#"+t).jqGrid(e),$e("#"+t).jqGrid("bindKeys",{onSelectRow:!1}),$e("#"+s).attr("autocomplete","off").data("comboGrid",{grid:t,divgrid:i}),document.getElementById(s).getBoundingClientRect());$e("#"+i).css({"background-color":"inherit",position:"absolute",top:d.top+50+"px",left:d.left+10+"px",zIndex:2e4}).hide(),$e("#"+s).on("keydown",function(e){var t,i=$e(this).data("comboGrid").grid,r=$e(this).data("comboGrid").divgrid,o=this;if($e("#"+r).is(":hidden")&&(d=document.getElementById(s).getBoundingClientRect(),$e("#"+r).show().css({top:d.top+50+"px",left:d.left+10+"px"})),-1<$e.inArray(e.key,["Enter","Escape","ArrowUp","ArrowDown","ArrowLeft","ArrowRight"])){var n=$e.Event("keydown");switch(e.key){case"Enter":var a=$e("#"+i).jqGrid("getRowData",$e("#"+i)[0].p.selrow);$e.isEmptyObject(a)||(this.value=a[l.return_fld],$e("#"+r).hide());break;case"Escape":$e("#"+r).hide();break;case"ArrowUp":n.keyCode=38,$e("#"+i).trigger(n);break;case"ArrowDown":n.keyCode=40,$e("#"+i).trigger(n)}}else t&&clearTimeout(t),setTimeout(function(){$e("#"+i).jqGrid("filterInput",o.value,{defaultSearch:l.defaultSearch||"bw",selectFirstFound:!0})},100)}),l.data&&("string"==typeof l.data?$e("#"+t).jqGrid("setGridParam",{url:l.data}):Array.isArray(l.data)&&$e("#"+t).jqGrid("setGridParam",{data:l.data})),$e("#"+t).jqGrid("setGridParam",{datatype:r})},inColumnHeader:function(e,t){for(var i=t.length,r=0;r<i;r++)if(t[r].startColumnName===e)return r;return-1},isServiceCol:function(e){return["cb","rn","subgrid","sc"].includes(e)},normalizeDbData:function(i,r){Array.isArray(i)||(i=[i]);for(let t=0;t<i.length;t++)for(let e=0;e<r.length;e++){var o=r[e];if(!$e.jgrid.isServiceCol(o.name)&&i[t].hasOwnProperty(o.name))switch(o.sorttype||o.stype||o.formatter||"text"){case"int":case"integer":i[t][o.name]=parseInt(i[t][o.name],10);break;case"float":case"number":case"numeric":case"currency":i[t][o.name]=parseFloat(i[t][o.name]);break;case"date":case"datetime":o.formatoptions.reformatAfterEdit=!0,i[t][o.name]=$e.jgrid.parseDate.call(this,o.formatoptions.newformat,i[t][o.name],o.formatoptions.srcformat||"Y-m-d")}}return i},isVisible:function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},styleUI:{jQueryUI:{common:{disabled:"ui-state-disabled",highlight:"ui-state-highlight",hover:"ui-state-hover",cornerall:"ui-corner-all",cornertop:"ui-corner-top",cornerbottom:"ui-corner-bottom",hidden:"ui-helper-hidden",icon_base:"ui-icon",overlay:"ui-widget-overlay",active:"ui-state-active",error:"ui-state-error",button:"ui-state-default ui-corner-all",content:"ui-widget-content",shadow:""},base:{entrieBox:"ui-widget ui-widget-content ui-corner-all",viewBox:"",headerTable:"",headerBox:"ui-state-default",rowTable:"",rowBox:"ui-widget-content",stripedTable:"ui-jqgrid-table-striped",footerTable:"",footerBox:"ui-widget-content",headerRowTable:"",headerRowBox:"ui-widget-content",headerDiv:"ui-state-default",gridtitleBox:"ui-widget-header ui-corner-top ui-helper-clearfix",customtoolbarBox:"ui-state-default",loadingBox:"ui-state-default ui-state-active",rownumBox:"ui-state-default",scrollBox:"ui-widget-content",multiBox:"",searchBox:"ui-widget-content ui-corner-all",searchSelect:"ui-widget-content ui-corner-all",pagerBox:"ui-state-default ui-corner-bottom",pagerTable:"",toppagerBox:"ui-state-default",pgInput:"ui-corner-all",pgSelectBox:"ui-widget-content ui-corner-all",pgButtonBox:"ui-corner-all",icon_first:"ui-icon-seek-first",icon_prev:"ui-icon-seek-prev",icon_next:"ui-icon-seek-next",icon_end:"ui-icon-seek-end",icon_asc:"ui-icon-triangle-1-n",icon_desc:"ui-icon-triangle-1-s",icon_caption_open:"ui-icon-circle-triangle-n",icon_caption_close:"ui-icon-circle-triangle-s"},modal:{modal:"ui-widget ui-widget-content ui-corner-all ui-dialog",header:"ui-widget-header ui-corner-all ui-helper-clearfix",content:"ui-widget-content",body:"ui-widget-content",footer:"ui-widget-content",resizable:"ui-resizable-handle ui-resizable-se",icon_close:"ui-icon-closethick",icon_resizable:"ui-icon-gripsmall-diagonal-se"},celledit:{inputClass:"ui-widget-content ui-corner-all",selectClass:"ui-widget-content ui-corner-all"},inlinedit:{inputClass:"ui-widget-content ui-corner-all",selectClass:"ui-widget-content ui-corner-all",icon_edit_nav:"ui-icon-pencil",icon_add_nav:"ui-icon-plus",icon_save_nav:"ui-icon-disk",icon_cancel_nav:"ui-icon-cancel"},formedit:{labelClass:"",inputClass:"ui-widget-content ui-corner-all",selectClass:"ui-widget-content ui-corner-all",icon_prev:"ui-icon-triangle-1-w",icon_next:"ui-icon-triangle-1-e",icon_save:"ui-icon-disk",icon_close:"ui-icon-close",icon_del:"ui-icon-scissors",icon_cancel:"ui-icon-cancel"},navigator:{icon_edit_nav:"ui-icon-pencil",icon_add_nav:"ui-icon-plus",icon_del_nav:"ui-icon-trash",icon_search_nav:"ui-icon-search",icon_refresh_nav:"ui-icon-refresh",icon_view_nav:"ui-icon-document",icon_newbutton_nav:"ui-icon-newwin"},grouping:{icon_plus:"ui-icon-circlesmall-plus",icon_minus:"ui-icon-circlesmall-minus"},filter:{table_widget:"ui-widget ui-widget-content",srSelect:"ui-widget-content ui-corner-all",srInput:"ui-widget-content ui-corner-all",menu_widget:"ui-widget ui-widget-content ui-corner-all",icon_search:"ui-icon-search",icon_reset:"ui-icon-arrowreturnthick-1-w",icon_query:"ui-icon-comment"},subgrid:{icon_plus:"ui-icon-plus",icon_minus:"ui-icon-minus",icon_open:"ui-icon-carat-1-sw"},treegrid:{icon_plus:"ui-icon-triangle-1-",icon_minus:"ui-icon-triangle-1-s",icon_leaf:"ui-icon-radio-off"},fmatter:{icon_edit:"ui-icon-pencil",icon_add:"ui-icon-plus",icon_save:"ui-icon-disk",icon_cancel:"ui-icon-cancel",icon_del:"ui-icon-trash"},colmenu:{menu_widget:"ui-widget ui-widget-content ui-corner-all",input_checkbox:"ui-widget ui-widget-content",filter_select:"ui-widget-content ui-corner-all",filter_input:"ui-widget-content ui-corner-all",icon_menu:"ui-icon-comment",icon_search_menu:"ui-icon-grip-dotted-vertical",icon_sort_asc:"ui-icon-arrow-1-n",icon_sort_desc:"ui-icon-arrow-1-s",icon_columns:"ui-icon-extlink",icon_filter:"ui-icon-calculator",icon_group:"ui-icon-grip-solid-horizontal",icon_freeze:"ui-icon-grip-solid-vertical",icon_move:"ui-icon-arrow-4",icon_new_item:"ui-icon-newwin",icon_toolbar_menu:"ui-icon-document",icon_group_op:"ui-icon-bullet",icon_oper_op:"ui-icon-transfer-e-w",icon_reset:"ui-icon-arrowreturnthick-1-w",icon_close:"ui-icon-close"}},Bootstrap:{common:{disabled:"ui-disabled",highlight:"success",hover:"active",cornerall:"",cornertop:"",cornerbottom:"",hidden:"",icon_base:"glyphicon",overlay:"ui-overlay",active:"active",error:"bg-danger",button:"btn btn-default",content:"",shadow:""},base:{entrieBox:"",viewBox:"table-responsive",headerTable:"table table-bordered",headerBox:"",rowTable:"table table-bordered",rowBox:"",stripedTable:"table-striped",footerTable:"table table-bordered",footerBox:"",headerRowTable:"table table-bordered",headerRowBox:"",headerDiv:"",gridtitleBox:"",customtoolbarBox:"",loadingBox:"row",rownumBox:"active",scrollBox:"",multiBox:"checkbox",pagerBox:"",pagerTable:"table",toppagerBox:"",pgInput:"form-control",pgSelectBox:"form-control",pgButtonBox:"",icon_first:"glyphicon-step-backward",icon_prev:"glyphicon-backward",icon_next:"glyphicon-forward",icon_end:"glyphicon-step-forward",icon_asc:"glyphicon-triangle-top",icon_desc:"glyphicon-triangle-bottom",icon_caption_open:"glyphicon-circle-arrow-up",icon_caption_close:"glyphicon-circle-arrow-down"},modal:{modal:"modal",content:"modal-content",header:"modal-header",title:"modal-title",body:"modal-body",footer:"modal-footer",resizable:"ui-resizable-handle ui-resizable-se",icon_close:"glyphicon-remove-circle",icon_resizable:"glyphicon-import"},celledit:{inputClass:"form-control",selectClass:"form-control"},inlinedit:{inputClass:"form-control",selectClass:"form-control",icon_edit_nav:"glyphicon-edit",icon_add_nav:"glyphicon-plus",icon_save_nav:"glyphicon-save",icon_cancel_nav:"glyphicon-remove-circle"},formedit:{labelClass:"",inputClass:"form-control",selectClass:"form-control",icon_prev:"glyphicon-step-backward",icon_next:"glyphicon-step-forward",icon_save:"glyphicon-save",icon_close:"glyphicon-remove-circle",icon_del:"glyphicon-trash",icon_cancel:"glyphicon-remove-circle"},navigator:{icon_edit_nav:"glyphicon-edit",icon_add_nav:"glyphicon-plus",icon_del_nav:"glyphicon-trash",icon_search_nav:"glyphicon-search",icon_refresh_nav:"glyphicon-refresh",icon_view_nav:"glyphicon-info-sign",icon_newbutton_nav:"glyphicon-new-window"},grouping:{icon_plus:"glyphicon-triangle-right",icon_minus:"glyphicon-triangle-bottom"},filter:{table_widget:"table table-condensed",srSelect:"form-control",srInput:"form-control",menu_widget:"",icon_search:"glyphicon-search",icon_reset:"glyphicon-refresh",icon_query:"glyphicon-comment"},subgrid:{icon_plus:"glyphicon-triangle-right",icon_minus:"glyphicon-triangle-bottom",icon_open:"glyphicon-indent-left"},treegrid:{icon_plus:"glyphicon-triangle-right",icon_minus:"glyphicon-triangle-bottom",icon_leaf:"glyphicon-unchecked"},fmatter:{icon_edit:"glyphicon-edit",icon_add:"glyphicon-plus",icon_save:"glyphicon-save",icon_cancel:"glyphicon-remove-circle",icon_del:"glyphicon-trash"},colmenu:{menu_widget:"",input_checkbox:"",filter_select:"form-control",filter_input:"form-control",icon_menu:"glyphicon-menu-hamburger",icon_sort_asc:"glyphicon-sort-by-alphabet",icon_sort_desc:"glyphicon-sort-by-alphabet-alt",icon_columns:"glyphicon-list-alt",icon_filter:"glyphicon-filter",icon_group:"glyphicon-align-left",icon_freeze:"glyphicon-object-align-horizontal",icon_move:"glyphicon-move",icon_new_item:"glyphicon-new-window",icon_toolbar_menu:"glyphicon-menu-hamburger"}},Bootstrap4:{common:{disabled:"ui-disabled",highlight:"table-success",hover:"table-active",cornerall:"",cornertop:"",cornerbottom:"",hidden:"",overlay:"ui-overlay",active:"active",error:"alert-danger",button:"btn btn-light",content:"",shadow:"shadow p-3 mb-5 bg-white rounded"},base:{entrieBox:"",viewBox:"table-responsive",headerTable:"table table-bordered",headerBox:"",rowTable:"table table-bordered",rowBox:"",stripedTable:"table-striped",footerTable:"table table-bordered",footerBox:"",headerRowTable:"table table-bordered",headerRowBox:"",headerDiv:"",gridtitleBox:"",customtoolbarBox:"",loadingBox:"row",rownumBox:"active",scrollBox:"",multiBox:"checkbox",searchBox:"form-control",searchSelect:"form-control form-control-sm",pagerBox:"",pagerTable:"table",toppagerBox:"",pgInput:"form-control",pgSelectBox:"form-control",pgButtonBox:""},modal:{modal:"modal",content:"modal-content",header:"modal-header",title:"modal-title",body:"modal-body",footer:"modal-footer",resizable:"ui-resizable-handle ui-resizable-se",icon_close:"oi-circle-x",icon_resizable:"oi-circle-x"},celledit:{inputClass:"form-control",selectClass:"form-control"},inlinedit:{inputClass:"form-control",selectClass:"form-control"},formedit:{labelClass:"form-label",inputClass:"form-control",selectClass:"form-control"},navigator:{},grouping:{},filter:{table_widget:"table table-condensed",srSelect:"form-control",srInput:"form-control",menu_widget:""},subgrid:{},treegrid:{},fmatter:{},colmenu:{menu_widget:"",input_checkbox:"",filter_select:"form-control",filter_input:"form-control"}},Bootstrap5:{common:{disabled:"ui-disabled",highlight:"table-success",hover:"table-active",cornerall:"",cornertop:"",cornerbottom:"",hidden:"",overlay:"ui-overlay",active:"active",error:"alert alert-danger",button:"btn btn-light",content:"",shadow:"shadow p-3 mb-5 bg-body rounded"},base:{entrieBox:"",viewBox:"table-responsive",headerTable:"table table-bordered",headerBox:"",rowTable:"table table-bordered",rowBox:"",stripedTable:"table-striped",footerTable:"table table-bordered",footerBox:"",headerRowTable:"table table-bordered",headerRowBox:"",headerDiv:"",gridtitleBox:"",customtoolbarBox:"",loadingBox:"row",rownumBox:"active",scrollBox:"",multiBox:"checkbox",searchBox:"form-control",searchSelect:"form-select",pagerBox:"",pagerTable:"table",toppagerBox:"",pgInput:"form-control",pgSelectBox:"form-select",pgButtonBox:""},modal:{modal:"modal",header:"modal-header",title:"modal-title",content:"modal-content",body:"modal-body",footer:"modal-footer",resizable:"ui-resizable-handle ui-resizable-se",icon_close:"oi-circle-x",icon_resizable:"oi-circle-x"},celledit:{inputClass:"form-control",selectClass:"form-select"},inlinedit:{inputClass:"form-control",selectClass:"form-select"},formedit:{labelClass:"form-label",inputClass:"form-control",selectClass:"form-select"},navigator:{},grouping:{},filter:{table_widget:"table table-sm",srSelect:"form-select",srInput:"form-control",menu_widget:""},subgrid:{},treegrid:{},fmatter:{},colmenu:{menu_widget:"",input_checkbox:"",filter_select:"form-select",filter_input:"form-control"}}},iconSet:{Iconic:{common:{icon_base:"oi"},base:{icon_first:"oi-media-step-backward",icon_prev:"oi-caret-left",icon_next:"oi-caret-right",icon_end:"oi-media-step-forward",icon_asc:"oi-caret-top",icon_desc:"oi-caret-bottom",icon_caption_open:"oi-collapse-up",icon_caption_close:"oi-expand-down"},modal:{icon_close:"oi-circle-x",icon_resizable:"oi-plus"},inlinedit:{icon_edit_nav:"oi-pencil",icon_add_nav:"oi-plus",icon_save_nav:"oi-check",icon_cancel_nav:"oi-action-undo"},formedit:{icon_prev:"oi-chevron-left",icon_next:"oi-chevron-right",icon_save:"oi-check",icon_close:"oi-ban",icon_del:"oi-delete",icon_cancel:"oi-ban"},navigator:{icon_edit_nav:"oi-pencil",icon_add_nav:"oi-plus",icon_del_nav:"oi-trash",icon_search_nav:"oi-zoom-in",icon_refresh_nav:"oi-reload",icon_view_nav:"oi-browser",icon_newbutton_nav:"oi-book"},grouping:{icon_plus:"oi-caret-right",icon_minus:"oi-caret-bottom"},filter:{icon_search:"oi-magnifying-glass",icon_reset:"oi-reload",icon_query:"oi-comment-square"},subgrid:{icon_plus:"oi-chevron-right",icon_minus:"oi-chevron-bottom",icon_open:"oi-expand-left"},treegrid:{icon_plus:"oi-plus",icon_minus:"oi-minus",icon_leaf:"oi-media-record"},fmatter:{icon_edit:"oi-pencil",icon_add:"oi-plus",icon_save:"oi-check",icon_cancel:"oi-action-undo",icon_del:"oi-trash"},colmenu:{icon_menu:"oi-list",icon_sort_asc:"oi-sort-ascending",icon_sort_desc:"oi-sort-descending",icon_columns:"oi-project",icon_filter:"oi-magnifying-glass",icon_group:"oi-list-rich",icon_freeze:"oi-spreadsheet",icon_move:"oi-move",icon_new_item:"oi-external-link",icon_toolbar_menu:"oi-menu",icon_group_op:"",icon_oper_op:"",icon_reset:"oi-reload",icon_close:"oi-ban"}},Octicons:{common:{icon_base:"octicon"},base:{icon_first:"octicon-triangle-left",icon_prev:"octicon-chevron-left",icon_next:"octicon-chevron-right",icon_end:"octicon-triangle-right",icon_asc:"octicon-triangle-up",icon_desc:"octicon-triangle-down",icon_caption_open:"octicon-triangle-up",icon_caption_close:"octicon-triangle-down"},modal:{icon_close:"octicon-x",icon_resizable:"octicon-plus"},inlinedit:{icon_edit_nav:"octicon-pencil",icon_add_nav:"octicon-plus",icon_save_nav:"octicon-check",icon_cancel_nav:"octicon-circle-slash"},formedit:{icon_prev:"octicon-chevron-left",icon_next:"octicon-chevron-right",icon_save:"octicon-check",icon_close:"octicon-x",icon_del:"octicon-trashcan",icon_cancel:"octicon-circle-slash"},navigator:{icon_edit_nav:"octicon-pencil",icon_add_nav:"octicon-plus",icon_del_nav:"octicon-trashcan",icon_search_nav:"octicon-search",icon_refresh_nav:"octicon-sync",icon_view_nav:"octicon-file",icon_newbutton_nav:"octicon-link-external"},grouping:{icon_plus:"octicon-triangle-right",icon_minus:"octicon-triangle-down"},filter:{icon_search:"octicon-search",icon_reset:"octicon-sync",icon_query:"octicon-file-code"},subgrid:{icon_plus:"octicon-triangle-right",icon_minus:"octicon-triangle-down",icon_open:"octicon-git-merge"},treegrid:{icon_plus:"octicon-triangle-right",icon_minus:"octicon-triangle-down",icon_leaf:"octicon-primitive-dot"},fmatter:{icon_edit:"octicon-pencil",icon_add:"octicon-plus",icon_save:"octicon-check",icon_cancel:"octicon-circle-slash",icon_del:"octicon-trashcan"},colmenu:{icon_menu:"octicon-grabber",icon_sort_asc:"octicon-arrow-up",icon_sort_desc:"octicon-arrow-down",icon_columns:"octicon-repo",icon_filter:"octicon-search",icon_group:"octicon-list-unordered",icon_freeze:"octicon-repo",icon_move:"octicon-git-compare",icon_new_item:"octicon-link-external",icon_toolbar_menu:"octicon-three-bars",icon_group_op:"",icon_oper_op:"",icon_reset:"octicon-sync",icon_close:"octicon-x"}},fontAwesome:{common:{icon_base:"fas"},base:{icon_first:"fa-step-backward",icon_prev:"fa-backward",icon_next:"fa-forward",icon_end:"fa-step-forward",icon_asc:"fa-caret-up",icon_desc:"fa-caret-down",icon_caption_open:"fa-caret-square-up",icon_caption_close:"fa-caret-square-down "},modal:{icon_close:"fa-window-close",icon_resizable:"fa-plus"},inlinedit:{icon_edit_nav:"fa-edit",icon_add_nav:"fa-plus",icon_save_nav:"fa-save",icon_cancel_nav:"fa-replay"},formedit:{icon_prev:"fa-chevron-left",icon_next:"fa-chevron-right",icon_save:"fa-save",icon_close:"fa-window-close",icon_del:"fa-trash",icon_cancel:"fa-times"},navigator:{icon_edit_nav:"fa-edit",icon_add_nav:"fa-plus",icon_del_nav:"fa-trash",icon_search_nav:"fa-search",icon_refresh_nav:"fa-sync",icon_view_nav:"fa-sticky-note",icon_newbutton_nav:"fa-external-link-alt"},grouping:{icon_plus:"fa-caret-right",icon_minus:"fa-caret-down"},filter:{icon_search:"fa-search",icon_reset:"fa-reply",icon_query:"fa-pen-square "},subgrid:{icon_plus:"fa-arrow-circle-right",icon_minus:"fa-arrow-circle-down",icon_open:"fa-ellipsis-v"},treegrid:{icon_plus:"fa-plus",icon_minus:"fa-minus",icon_leaf:"fa-circle"},fmatter:{icon_edit:"fa-edit",icon_add:"fa-plus",icon_save:"fa-save",icon_cancel:"fa-undo",icon_del:"fa-trash"},colmenu:{icon_menu:"fa-ellipsis-v",icon_sort_asc:"fa-sort-amount-up",icon_sort_desc:"fa-sort-amount-down",icon_columns:"fa-columns",icon_filter:"fa-filter",icon_group:"fa-object-group",icon_freeze:"fa-snowflake",icon_move:"fa-expand-arrows-alt",icon_new_item:"fa-external-link-alt",icon_toolbar_menu:"fa-list",icon_group_op:"",icon_oper_op:"",icon_reset:"fa-reply",icon_close:"fa-window-close"}},Bootstrap5:{common:{icon_base:"bi"},base:{icon_first:"bi-chevron-bar-left",icon_prev:"bi-chevron-left",icon_next:"bi-chevron-right",icon_end:"bi-chevron-bar-right",icon_asc:"bi-caret-up-fill",icon_desc:"bi-caret-down-fill",icon_caption_open:"bi-arrows-collapse",icon_caption_close:"bi-arrows-expand"},modal:{icon_close:"bi-x-lg",icon_resizable:"bi-box-arrow-in-down-right"},inlinedit:{icon_edit_nav:"bi-pencil-square",icon_add_nav:"bi-plus-square",icon_save_nav:"bi-save",icon_cancel_nav:"bi-x-square"},formedit:{icon_prev:"bi-chevron-left",icon_next:"bi-chevron-right",icon_save:"bi-save",icon_close:"bi-x-square",icon_del:"bi-trash",icon_cancel:"bi-x-octagon"},navigator:{icon_edit_nav:"bi-pencil-square",icon_add_nav:"bi-plus-square",icon_del_nav:"bi-trash",icon_search_nav:"bi-search",icon_refresh_nav:"bi-arrow-clockwise",icon_view_nav:"bi-view-list",icon_newbutton_nav:"bi-window"},grouping:{icon_plus:"bi-caret-right",icon_minus:"bi-caret-down"},filter:{icon_search:"bi-search",icon_reset:"bi-arrow-clockwise",icon_query:"bi-journal-code"},subgrid:{icon_plus:"bi-chevron-right",icon_minus:"bi-chevron-down",icon_open:"bi-arrow-bar-right"},treegrid:{icon_plus:"bi-plus-square-dotted",icon_minus:"bi-dash-square-dotted",icon_leaf:"bi-circle"},fmatter:{icon_edit:"bi-pencil-square",icon_add:"bi-plus-square",icon_save:"bi-save",icon_cancel:"bi-x-square",icon_del:"bi-trash"},colmenu:{icon_menu:"bi-list",icon_sort_asc:"bi-sort-alpha-down",icon_sort_desc:"bi-sort-alpha-up",icon_columns:"bi-columns",icon_filter:"bi-search",icon_group:"bi-collection-play",icon_freeze:"bi-layout-text-sidebar-reverse",icon_move:"bi-arrows-move",icon_new_item:"bi-window",icon_toolbar_menu:"bi-card-text",icon_group_op:"",icon_oper_op:"",icon_reset:"bi-arrow-clockwise",icon_close:"bi-x-square"}}}}),$e.fn.jqGrid=function(Ye){if("string"!=typeof Ye)return this.each(function(){if(!this.grid){$e.jgrid.isNull(Ye)||void 0===Ye.data||(z=Ye.data,Ye.data=[]);var b=$e.extend(!0,{url:"",height:150,defaultColWidth:150,page:1,rowNum:20,rowTotal:null,records:0,pager:"",pgbuttons:!0,pginput:!0,colModel:[],rowList:[],colNames:[],sortorder:"asc",sortname:"",datatype:"xml",mtype:"GET",altRows:!1,selarrrow:[],preserveSelection:!1,savedRow:[],shrinkToFit:!0,xmlReader:{},jsonReader:{},subGrid:!1,subGridModel:[],reccount:0,lastpage:0,lastsort:0,selrow:null,beforeSelectRow:null,onSelectRow:null,onSortCol:null,ondblClickRow:null,onRightClickRow:null,onPaging:null,onSelectAll:null,onInitGrid:null,loadComplete:null,gridComplete:null,loadError:null,loadBeforeSend:null,afterInsertRow:null,beforeRequest:null,beforeProcessing:null,onHeaderClick:null,viewrecords:!1,loadonce:!1,multiselect:!1,multikey:!1,multiboxonly:!1,multimail:!1,multiselectWidth:30,onMultiSleect:null,editurl:null,search:!1,caption:"",hidegrid:!0,hiddengrid:!1,postData:{},userData:{},treeGrid:!1,treeGridModel:"nested",treeReader:{},treeANode:-1,ExpandColumn:null,tree_root_level:0,prmNames:{page:"page",rows:"rows",sort:"sidx",order:"sord",search:"_search",nd:"nd",id:"id",oper:"oper",editoper:"edit",addoper:"add",deloper:"del",subgridid:"id",npage:null,totalrows:"totalrows"},forceFit:!1,gridstate:"visible",cellEdit:!1,cellsubmit:"remote",nv:0,loadui:"enable",toolbar:[!1,""],scroll:!1,deselectAfterSort:!0,scrollrows:!1,autowidth:!1,scrollOffset:$e.jgrid.scrollbarWidth()+3,cellLayout:5,subGridWidth:20,gridview:!0,rownumWidth:35,rownumbers:!1,pagerpos:"center",recordpos:"right",footerrow:!1,userDataOnFooter:!1,headerrow:!1,userDataOnHeader:!1,hoverrows:!0,viewsortcols:[!1,"vertical",!0],resizeclass:"",autoencode:!1,remapColumns:[],ajaxGridOptions:{},direction:"ltr",toppager:!1,headertitles:!1,scrollTimeout:40,data:[],_index:{},grouping:!1,groupingView:{groupField:[],groupOrder:[],groupText:[],groupColumnShow:[],groupSummary:[],showSummaryOnHide:!1,sortitems:[],sortnames:[],summary:[],summaryval:[],plusicon:"",minusicon:"",displayField:[],groupSummaryPos:[],formatDisplayField:[],_locgr:!1},groupHeaderOn:!1,ignoreCase:!0,cmTemplate:{},idPrefix:"",multiSort:!1,minColWidth:33,minGridWidth:100,maxGridWidth:3e3,scrollPopUp:!1,scrollTopOffset:0,scrollLeftOffset:"100%",scrollMaxBuffer:0,storeNavOptions:!1,regional:"en",styleUI:"jQueryUI",iconSet:"Iconic",responsive:!1,forcePgButtons:!1,resizeHeight:!0,restoreCellonFail:!0,editNextRowCell:!1,colFilters:{},colMenu:!1,colMenuCustom:{},colMenuColumnDone:null,colMenuBeforeProcess:null,colSpanHeader:[],treeGrid_bigData:!1,treeGrid_rootParams:{otherData:{}},treeGrid_beforeRequest:null,treeGrid_afterLoadComplete:null,useNameForSearch:!1,formatFooterData:!1,formatHeaderData:!1,mergeSearch:!1,searchModules:{mergeOper:"AND",filterInput:!0,filterToolbar:!0,searchGrid:!0,colMenuSearch:!0},emptyRecordRow:!0,ariaBody:!1,searchCols:!1,searchColOptions:{colWidth:90,searchOp:"OR",operand:"cn",useCase:!1,colName:"Search Col",colmenu:!0,searchOnEnter:!0,aOperands:["cn","bw","ew","eq","ne"],_cnth:["cb","rn","sc","subgrid","col_name"],visibleColumns:[]},dbconfig:{dbname:"",dbversion:-1,dbtable:"",deleteIfExists:!1,loadIfExists:!1,isKeyInData:!1,dataUrl:"",reader:null,beforeInsertData:null,fetchOptions:{}}},$e.jgrid.defaults,Ye),K=(void 0!==z&&(b.data=z,Ye.data=z),this),y={headers:[],cols:[],footers:[],hrheaders:[],dragStart:function(e,t,i){var r=$e(this.bDiv).offset().left,o=parseInt(b.colModel[e].minResizeWidth||b.minColWidth,10);isNaN(o)&&(o=33),this.resizing={idx:e,startX:t.pageX,sOL:t.pageX-r,minW:o},this.hDiv.style.cursor="col-resize",this.curGbox=$e("#rs_m"+$e.jgrid.jqID(b.id),"#gbox_"+$e.jgrid.jqID(b.id)),this.curGbox.css({display:"block",left:t.pageX-r,top:i[1],height:i[2]}),$e(K).triggerHandler("jqGridResizeStart",[t,e]),$e.jgrid.isFunction(b.resizeStart)&&b.resizeStart.call(K,t,e),document.onselectstart=function(){return!1}},dragMove:function(e){var t,i,r,o;this.resizing&&(e=e.pageX-this.resizing.startX,t=this.headers[this.resizing.idx],(i="ltr"===b.direction?t.width+e:t.width-e)>this.resizing.minW)&&(this.curGbox.css({left:this.resizing.sOL+e}),!0===b.forceFit?(r=this.headers[this.resizing.idx+b.nv],(o="ltr"===b.direction?r.width-e:r.width+e)>this.resizing.minW&&(t.newWidth=i,r.newWidth=o)):(this.newWidth="ltr"===b.direction?b.tblwidth+e:b.tblwidth-e,t.newWidth=i))},dragEnd:function(e,t){var i,r;this.hDiv.style.cursor="default",void 0===t&&(t=!0),this.resizing&&(i=this.resizing.idx,r=this.headers[i].newWidth||this.headers[i].width,r=parseFloat(r),this.resizing=!1,$e("#rs_m"+$e.jgrid.jqID(b.id)).css("display","none"),b.colModel[i].width=r,this.headers[i].width=r,this.headers[i].el.style.width=r+"px",this.cols[i].style.width=r+"px",0<this.footers.length&&(this.footers[i].style.width=r+"px"),0<this.hrheaders.length&&(this.hrheaders[i].style.width=r+"px"),!0===b.forceFit?(r=this.headers[i+b.nv].newWidth||this.headers[i+b.nv].width,this.headers[i+b.nv].width=r,this.headers[i+b.nv].el.style.width=r+"px",this.cols[i+b.nv].style.width=r+"px",0<this.footers.length&&(this.footers[i+b.nv].style.width=r+"px"),0<this.hrheaders.length&&(this.hrheaders[i+b.nv].style.width=r+"px"),b.colModel[i+b.nv].width=r):(b.tblwidth=this.newWidth||b.tblwidth,$e(this.bDiv).find("table").first().css("width",b.tblwidth+"px"),$e(this.hDiv).find("table").first().css("width",b.tblwidth+"px"),this.hDiv.scrollLeft=this.bDiv.scrollLeft,b.footerrow&&($e(this.sDiv).find("table").first().css("width",b.tblwidth+"px"),this.sDiv.scrollLeft=this.bDiv.scrollLeft),b.headerrow&&($e(this.hrDiv).find("table").first().css("width",b.tblwidth+"px"),this.hrDiv.scrollLeft=this.bDiv.scrollLeft)),e&&($e(K).triggerHandler("jqGridResizeStop",[r,i]),$e.jgrid.isFunction(b.resizeStop))&&b.resizeStop.call(K,r,i),b.frozenColumns)&&t&&($e("#"+$e.jgrid.jqID(b.id)).jqGrid("destroyFrozenColumns"),$e("#"+$e.jgrid.jqID(b.id)).jqGrid("setFrozenColumns")),this.curGbox=null,document.onselectstart=function(){return!0}},populateVisible:function(){y.timer&&clearTimeout(y.timer),y.timer=null;var e=$e(y.bDiv).height();if(e){var t,i,r,o,n,a,s,l,d,c=$e(y.bDiv).find("table").first();if(c[0].rows.length)try{t=(i=c[0].rows[1])&&$e(i).outerHeight()||y.prevRowHeight}catch(e){t=y.prevRowHeight}t&&(y.prevRowHeight=t,i=b.rowNum,r=y.scrollTop=y.bDiv.scrollTop,a=t*i,(n=(o=Math.round(c.position().top)-r)+c.height())<e&&o<=0&&(void 0===b.lastpage||(parseInt((n+r+a-1)/a,10)||0)<=b.lastpage)&&(l=parseInt((e-n+a-1)/a,10)||1,o=0<=n||l<2||!0===b.scroll?(s=(Math.round((n+r)/a)||0)+1,-1):1),0<o&&(s=(parseInt(r/a,10)||0)+1,l=(parseInt((r+e)/a,10)||0)+2-s,d=!0),!l||b.lastpage&&(s>b.lastpage||1===b.lastpage||s===b.page&&s===b.lastpage)||(y.hDiv.loading?y.timer=setTimeout(y.populateVisible,b.scrollTimeout):(b.page=s,(d=0<b.scrollMaxBuffer&&(0<i&&b.scrollMaxBuffer<i&&(b.scrollMaxBuffer=i+1),b.reccount>b.scrollMaxBuffer-(0<i?i:0))?!0:d)&&(y.selectionPreserver(c[0]),y.emptyRows.call(c[0],!1,!1)),y.populate(l)),b.scrollPopUp&&!$e.jgrid.isNull(b.lastpage)&&($e("#scroll_g"+b.id).show().html($e.jgrid.template($e.jgrid.getRegional(K,"defaults.pgtext",b.pgtext),b.page,b.lastpage)).css({top:b.scrollTopOffset+r*((parseInt(b.height,10)-45)/(parseInt(t,10)*parseInt(b.records,10)))+"px",left:b.scrollLeftOffset}),$e(this).mouseout(function(){$e("#scroll_g"+b.id).hide()}))))}},scrollGrid:function(){if(!y.bScroll){var e;y.hScroll=!0,b.scroll&&(e=y.bDiv.scrollTop,void 0===y.scrollTop&&(y.scrollTop=0),e!==y.scrollTop)&&(y.scrollTop=e,y.timer&&clearTimeout(y.timer),y.timer=setTimeout(y.populateVisible,b.scrollTimeout)),y.hDiv.scrollLeft=y.bDiv.scrollLeft,b.footerrow&&(y.sDiv.scrollLeft=y.bDiv.scrollLeft),b.headerrow&&(y.hrDiv.scrollLeft=y.bDiv.scrollLeft),b.frozenColumns&&$e(y.fbDiv).scrollTop(y.bDiv.scrollTop);try{$e("#column_menu").remove()}catch(e){}}y.bScroll=!1},selectionPreserver:function(t){function i(){var e;if(r.multiselect&&n&&0<n.length)for(e=0;e<n.length;e++)n[e]&&$e(t).jqGrid("setSelection",n[e],!1,"_sp_");!r.multiselect&&o&&$e(t).jqGrid("setSelection",o,!1,null),t.grid.bDiv.scrollLeft=a,$e(t).off(".selectionPreserver",i)}var r=t.p,o=r.selrow,n=r.selarrrow?$e.makeArray(r.selarrrow):null,a=t.grid.bDiv.scrollLeft;$e(t).on("jqGridGridComplete.selectionPreserver",i)},hScroll:!1,bScroll:!1};if("TABLE"!==this.tagName.toUpperCase()||$e.jgrid.isNull(this.id))alert("Element is not a table or has no id!");else if(void 0!==document.documentMode&&document.documentMode<=5)alert("Grid can not be used in this ('quirks') mode!");else{var N,M,v,Q,e=0;for(M in $e.jgrid.regional)$e.jgrid.regional.hasOwnProperty(M)&&(0===e&&(N=M),e++);if(1===e&&N!==b.regional&&(b.regional=N),$e(this).empty().attr("tabindex","0"),this.p=b,this.p.useProp=!!$e.fn.prop,0===this.p.colNames.length)for(e=0;e<this.p.colModel.length;e++)this.p.colNames[e]=this.p.colModel[e].label||this.p.colModel[e].name;if(this.p.colNames.length!==this.p.colModel.length)alert($e.jgrid.getRegional(this,"errors.model"));else{"Bootstrap4"===K.p.styleUI&&$e.jgrid.iconSet.hasOwnProperty(K.p.iconSet)&&$e.extend(!0,$e.jgrid.styleUI.Bootstrap4,$e.jgrid.iconSet[K.p.iconSet]),"Bootstrap5"===K.p.styleUI&&$e.jgrid.iconSet.hasOwnProperty(K.p.iconSet)&&$e.extend(!0,$e.jgrid.styleUI.Bootstrap5,$e.jgrid.iconSet[K.p.iconSet]);var k,X=$e.jgrid.getMethod("getStyleUI"),Y=K.p.styleUI+".common",w=X(Y,"disabled",!0),$=X(Y,"highlight",!0),q=X(Y,"hover",!0),z=X(Y,"cornerall",!0),C=X(Y,"icon_base",!0),I=$e.jgrid.styleUI[K.p.styleUI||"jQueryUI"].colmenu,R=$e.jgrid.msie(),G=[],S=[],O=[],Y=K.p.styleUI+".base",t=$e("<div "+X(Y,"viewBox",!1,"ui-jqgrid-view")+" ></div>"),i=(K.p.direction=$e.jgrid.trim(K.p.direction.toLowerCase()),K.p._ald=!1,-1===$e.inArray(K.p.direction,["ltr","rtl"])&&(K.p.direction="ltr"),v=K.p.direction,$e(t).insertBefore(this),$e(this).appendTo(t),$e("<div "+X(Y,"entrieBox",!1,"ui-jqgrid")+"></div>")),B=($e(i).attr({id:"gbox_"+this.id,dir:v}).insertBefore(t),$e(t).attr("id","gview_"+this.id).appendTo(i),$e("<div "+X(K.p.styleUI+".common","overlay",!1,"jqgrid-overlay")+" id='lui_"+this.id+"'></div>").insertBefore(t),$e("<div "+X(Y,"loadingBox",!1,"loading")+" id='load_"+this.id+"'>"+$e.jgrid.getRegional(K,"defaults.loadtext",this.p.loadtext)+"</div>").insertBefore(t),$e(this).attr({role:"grid","aria-multiselectable":!!this.p.multiselect,"aria-labelledby":"gbox_"+this.id}),"indexeddb"===K.p.datatype&&$e(K).jqGrid("dbInit",K.p.datatype),$e.jgrid.getFont(K)),J=function(e,t){return void 0===t&&(t=0),e=parseInt(e,10),isNaN(e)?t:e},s=function(e,t,i,r,o,n){var a=K.p.colModel[e],s=a.align,l='style="',d=a.classes,c=a.name,p=[];return s&&(l+="text-align:"+s+";"),!0===a.hidden&&(l+="display:none;"),0===t?l+="width: "+y.headers[e].width+"px;":($e.jgrid.isFunction(a.cellattr)||"string"==typeof a.cellattr&&!$e.jgrid.isNull($e.jgrid.cellattr)&&$e.jgrid.isFunction($e.jgrid.cellattr[a.cellattr]))&&(s=($e.jgrid.isFunction(a.cellattr)?a.cellattr:$e.jgrid.cellattr[a.cellattr]).call(K,o,i,r,a,n))&&"string"==typeof s&&(-1<s.indexOf("title")&&(a.title=!1),-1<s.indexOf("class")&&(d=void 0),2===(p=(s=String(s).replace(/\s+\=/g,"=")).split("style=")).length?(p[1]=$e.jgrid.trim(p[1]),0!==p[1].indexOf("'")&&0!==p[1].indexOf('"')||(p[1]=p[1].substring(1)),l+=p[1].replace(/'/gi,'"')):l+='"'),p.length?2<p.length&&(p[0]=""):(p[0]="",l+='"'),(l=(l+=(void 0!==d?' class="'+d+'"':"")+(a.title&&i?' title="'+$e.jgrid.stripHtml(i)+'"':""))+(' aria-describedby="'+K.p.id+"_"+c+'"'))+p[0]},F=function(e){return $e.jgrid.isNull(e)||""===e?"&#160;":K.p.autoencode?$e.jgrid.htmlEncode(e):String(e)},A=function(e,t,i,r,o){var n=K.p.colModel[i],e={rowId:e=""!==String(K.p.idPrefix)?$e.jgrid.stripPref(K.p.idPrefix,e):e,colModel:n,gid:K.p.id,pos:i,styleUI:K.p.styleUI},i=void 0!==n.formatter?$e.jgrid.isFunction(n.formatter)?n.formatter.call(K,t,e,r,o):$e.fmatter?$e.fn.fmatter.call(K,n.formatter,t,e,r,o):F(t):F(t);return K.p.autoResizing&&n.autosize&&(n._maxsize||(n._maxsize=n.canvas_width),n._maxsize=Math.max($e.jgrid.isFunction(n.sizingStringFunc)?n.sizingStringFunc.call(K,i,B,e,r):$e.jgrid.getTextWidth(i,B),n._maxsize)),i},Z=function(e,t,i,r,o,n){t=A(e,t,i,o,"add");return'<td role="gridcell" '+s(i,r,t,o,e,n)+">"+t+"</td>"},ee=function(e,t,i,r,o,n){var a=$e.jgrid.getRegional(K,"defaults.selectLine"),a='<input role="checkbox" title=\''+(a||$e.jgrid.regional.en.defaults.selectLine)+'\' type="checkbox" id="jqg_'+K.p.id+"_"+e+'" '+o+' name="jqg_'+K.p.id+"_"+e+'"'+(r?'checked="checked"':"")+"/>",o=K.p.colModel[t];return void 0!==o.formatter&&$e.jgrid.isFunction(o.formatter)&&(a=o.formatter.call(K,a,{rowId:e,colModel:o,gid:K.p.id,pos:t,styleUI:K.p.styleUI},n,"add")),'<td role="gridcell" '+s(t,i,a,n,e,!0)+">"+a+"</td>"},te=function(e,t,i,r,o){i=(parseInt(i,10)-1)*parseInt(r,10)+1+t;return'<td role="gridcell" '+o+" "+s(e,t,i,null,t,!0)+">"+i+"</td>"},ie=function(e,t,i,r){var o=K.p.searchColOptions.searchOnEnter?" onchange=\"$.jgrid.searchColOnEnter('"+K.p.id+"',"+e+', this)"':" onkeydown=\"$.jgrid.searchColOnKey('"+K.p.id+"',"+e+',this, event)"',r='<input type="text" id="jqs_'+K.p.id+"_"+e+'" name="jqs_'+K.p.id+"_"+e+'" '+r+o+"/>";return'<td role="gridcell" '+s(t,i,"",null,e,!0)+">"+r+"</td>"},re=function(e){for(var t,i=[],r=0,o=0;o<K.p.colModel.length;o++)"cb"!==(t=K.p.colModel[o]).name&&"subgrid"!==t.name&&"rn"!==t.name&&"sc"!==t.name&&(i[r]="local"===e?t.name:"xml"===e||"xmlstring"===e?t.xmlmap||t.name:t.jsonmap||t.name,!1!==K.p.keyName&&!0===t.key&&(K.p.keyName=i[r],K.p.keyIndex=r),r++);return i},oe=function(t){var e=K.p.remapColumns;return e&&e.length||(e=$e.map(K.p.colModel,function(e,t){return t})),e=t?$e.map(e,function(e){return e<t?null:e-t}):e},ne=function(e,t){var i;this.p.deepempty?$e(this.rows).slice(1).remove():(i=0<this.rows.length?this.rows[0]:null,$e(this.firstChild).empty().append(i)),e&&this.p.scroll&&($e(this.grid.bDiv.firstChild).css({height:"auto"}),$e(this.grid.bDiv.firstChild.firstChild).css({height:"0px",display:"none"}),0!==this.grid.bDiv.scrollTop)&&(this.grid.bDiv.scrollTop=0),!0===t&&(this.p.data=[],this.p._index={})},P=function(){var e,t,i,r,o,n,a,s,l,d,c,p=K.p,u=p.data,g=u.length,h=p.localReader,f=p.colModel,m=h.cell,v=(!0===p.multiselect?1:0)+(!0===p.subGrid?1:0)+(!0===p.rownumbers?1:0)+(!0===p.searchCols?1:0),w=p.scroll?$e.jgrid.randId():1;if("local"===p.datatype&&!0===h.repeatitems)for(l=oe(v),d=re("local"),r=!1===p.keyName?$e.jgrid.isFunction(h.id)?h.id.call(K,u):h.id:p.keyName,e=0;e<g;e++){for(i=u[e],void 0===(o=$e.jgrid.getAccessor(i,r))&&void 0===(o="number"!=typeof r||$e.jgrid.isNull(f[r+v])?o:$e.jgrid.getAccessor(i,f[r+v].name))&&(o=w+e,m)&&(n=$e.jgrid.getAccessor(i,m)||i,o=$e.jgrid.isNull(n)||void 0===n[r]?o:n[r],0),(s={})[h.id]=o,m&&(i=$e.jgrid.getAccessor(i,m)||i),c=Array.isArray(i)?l:d,t=0;t<c.length;t++)a=$e.jgrid.getAccessor(i,c[t]),s[f[t+v].name]=a;u[e]=s}},ae=function(){var e,t,i=K.p.data.length,r=!1!==K.p.keyName?K.p.keyName:K.p.localReader.id;for(K.p._index={},e=0;e<i;e++)void 0===(t=$e.jgrid.getAccessor(K.p.data[e],r))&&(t=String(e+1)),K.p._index[t]=e},se=function(e,t,i,r,o){var n,a="-1",s="",t=t?"display:none;":"",l=$e(K).triggerHandler("jqGridRowAttr",[r,o,e]);if("object"!=typeof l&&(l=$e.jgrid.isFunction(K.p.rowattr)?K.p.rowattr.call(K,r,o,e):"string"==typeof K.p.rowattr&&!$e.jgrid.isNull($e.jgrid.rowattr)&&$e.jgrid.isFunction($e.jgrid.rowattr[K.p.rowattr])?$e.jgrid.rowattr[K.p.rowattr].call(K,r,o,e):{}),!$e.isEmptyObject(l)){l.hasOwnProperty("id")&&(e=l.id,delete l.id),l.hasOwnProperty("tabindex")&&(a=l.tabindex,delete l.tabindex),l.hasOwnProperty("style")&&(t+=l.style,delete l.style),l.hasOwnProperty("class")&&(i+=" "+l.class,delete l.class);try{delete l.role}catch(e){}for(n in l)l.hasOwnProperty(n)&&(s+=" "+n+"="+l[n])}return'<tr role="row" id="'+e+'" tabindex="'+a+'" class="'+i+'"'+(""===t?"":' style="'+t+'"')+s+">"},T=function(e,i,t,r){var B=new Date,o="local"!==K.p.datatype&&K.p.loadonce||"xmlstring"===K.p.datatype,n="_id_",a=K.p.xmlReader,s=[],F="local"===K.p.datatype?"local":"xml";if(o&&(K.p.data=[],K.p._index={},K.p.localReader.id=n),K.p.reccount=0,$e.isXMLDoc(e)){i=-1!==K.p.treeANode||K.p.scroll?1<i?i:1:(ne.call(K,!1,!1),1);var l,d,c,p,u,g,h,f,m,v,w=$e(K),b=0,j=0,_=[],y={},x=[],A=X(Y,"rowBox",!0,"jqgrow ui-row-"+K.p.direction),D=!0===K.p.rownumbers?1:0,q=!0===K.p.multiselect?1:0,C=!0===K.p.searchCols?1:0,I=(!0===K.p.subGrid&&(j=1,p=$e.jgrid.getMethod("addSubGridCell")),a.repeatitems||(_=re(F)),u=!1===K.p.keyName?$e.jgrid.isFunction(a.id)?a.id.call(K,e):a.id:K.p.keyName,a.repeatitems&&K.p.keyName&&isNaN(u)&&(u=K.p.keyIndex),g=-1===String(u).indexOf("[")?_.length?function(e,t){return $e(u,e).text()||t}:function(e,t){return $e(a.cell,e).eq(u).text()||t}:function(e,t){return e.getAttribute(u.replace(/[\[\]]/g,""))||t},K.p.userData={},K.p.page=J($e.jgrid.getXmlData(e,a.page),K.p.page),K.p.lastpage=J($e.jgrid.getXmlData(e,a.total),1),K.p.records=J($e.jgrid.getXmlData(e,a.records)),$e.jgrid.isFunction(a.userdata)?K.p.userData=a.userdata.call(K,e)||{}:$e.jgrid.getXmlData(e,a.userdata,!0).each(function(){K.p.userData[this.getAttribute("name")]=$e(this).text()}),$e.jgrid.getXmlData(e,a.root,!0)),G=(I=(I=$e.jgrid.getXmlData(I,a.row,!0))||[]).length,S=0,N=[],M=parseInt(K.p.rowNum,10),k=K.p.scroll?$e.jgrid.randId():1,z=$e(K).find("tbody").first(),R=!1;if(K.p.grouping&&(R=!0===K.p.groupingView.groupCollapse,m=$e.jgrid.getMethod("groupingPrepare")),0<G&&K.p.page<=0&&(K.p.page=1),I&&G){r&&(M*=r+1);for(var P=$e.jgrid.isFunction(K.p.afterInsertRow),T=D?X(Y,"rownumBox",!1,"jqgrid-rownum"):"",H=C?X(Y,"searchBox",!1,""):"",U=q?X(Y,"multiBox",!1,"cbox"):"";S<G;){h=I[S],f=g(h,k+S),f=K.p.idPrefix+f,K.p.preserveSelection&&(K.p.multiselect?(v=-1!==K.p.selarrrow.indexOf(f),Q=v?Q+1:Q):v=f===K.p.selrow);var L=x.length;if(x.push(""),D&&x.push(te(0,S,K.p.page,K.p.rowNum,T)),q&&x.push(ee(f,D,S+1,v,U,h)),C&&x.push(ie(f,q+D,S+1,H)),j&&x.push(p.call(w,q+D+C,S+1)),a.repeatitems){var O=O||oe(q+j+D+C),E=$e.jgrid.getXmlData(h,a.cell,!0);$e.each(O,function(e){var t=E[this];if(!t)return!1;c=t.textContent||t.text||"",y[K.p.colModel[e+q+j+D+C].name]=c,x.push(Z(f,c,e+q+j+D+C,S+i,h,y))})}else for(l=0;l<_.length;l++)c=$e.jgrid.getXmlData(h,_[l]),y[K.p.colModel[l+q+j+D+C].name]=c,x.push(Z(f,c,l+q+j+D+C,S+i,h,y));if(x[L]=se(f,R,A,y,h),x.push("</tr>"),K.p.grouping&&(N.push(x),K.p.groupingView._locgr||m.call(w,y,S),x=[]),(o||!0===K.p.treeGrid&&!K.p._ald)&&(y[n]=$e.jgrid.stripPref(K.p.idPrefix,f),K.p.data.push(y),K.p._index[y[n]]=K.p.data.length-1,-1<K.p.treeANode)&&"adjacency"===K.p.treeGridModel&&s.push(y),!1===K.p.gridview&&(z.append(x.join("")),w.triggerHandler("jqGridAfterInsertRow",[f,y,h]),P&&K.p.afterInsertRow.call(K,f,y,h),x=[]),y={},S++,++b===M)break}}if(Q=0<b&&K.p.multiselect&&K.p.preserveSelection&&b===Q,!0===K.p.gridview&&(d=-1<K.p.treeANode?K.p.treeANode:0,K.p.grouping?o||(w.jqGrid("groupingRender",N,K.p.colModel.length,K.p.page,M),N=null):!0===K.p.treeGrid&&0<d?$e(K.rows[d]).after(x.join("")):(z.append(x.join("")),K.grid.cols=K.rows[0].cells)),K.p.totaltime=new Date-B,x=null,0<b&&0===K.p.records&&(K.p.records=G),!0===K.p.treeGrid){try{w.jqGrid("setTreeNode",d+1,b+d+1)}catch(e){}if(-1<K.p.treeANode&&"adjacency"===K.p.treeGridModel&&(c=K.rows[K.p.treeANode].id,1<=(c=K.p._index[c]+1))){for(K.p.data.splice(-G,G),l=0;l<G;l++)K.p.data.splice(c+l,0,s[l]);ae()}}if(K.p.reccount=b,K.p.treeANode=-1,K.p.userDataOnFooter&&w.jqGrid("footerData","set",K.p.userData,K.p.formatFooterData,0,!1),K.p.userDataOnHeader&&w.jqGrid("headerData","set",K.p.userData,K.p.formatHeaderData,0,!1),o&&(K.p.records=G,K.p.lastpage=Math.ceil(G/M)),t||K.updatepager(!1,!0),Q&&le(!0),o){for(;b<G;){if(h=I[b],f=g(h,b+k),f=K.p.idPrefix+f,a.repeatitems){O=O||oe(q+j+D+C);var W=$e.jgrid.getXmlData(h,a.cell,!0);$e.each(O,function(e){var t=W[this];if(!t)return!1;c=t.textContent||t.text||"",y[K.p.colModel[e+q+j+D+C].name]=c})}else for(l=0;l<_.length;l++)c=$e.jgrid.getXmlData(h,_[l]),y[K.p.colModel[l+q+j+D+C].name]=c;y[n]=$e.jgrid.stripPref(K.p.idPrefix,f),K.p.grouping&&m.call(w,y,b),K.p.data.push(y),K.p._index[y[n]]=K.p.data.length-1,y={},b++}K.p.grouping&&(K.p.groupingView._locgr=!0,w.jqGrid("groupingRender",N,K.p.colModel.length,K.p.page,M),N=null)}if(!0===K.p.subGrid)try{w.jqGrid("addSubGrid",q+D)}catch(e){}}},H=function(e,t,B,i){var F=new Date;if(e){t=-1!==K.p.treeANode||K.p.scroll?1<t?t:1:(ne.call(K,!1,!1),1),o="local"===K.p.datatype?(r=K.p.localReader,"local"):(r=K.p.jsonReader,"json");var r,o,n,a,s,l,d,c,p,u,g,h,f,m,v="_id_",w="local"!==K.p.datatype&&K.p.loadonce||"jsonstring"===K.p.datatype,b=$e(K),j=0,_=[],y=K.p.multiselect?1:0,x=!0===K.p.subGrid?1:0,D=!0===K.p.rownumbers?1:0,q=!0===K.p.searchCols?1:0,C=K.p.scroll&&"local"!==K.p.datatype?$e.jgrid.randId():1,I=parseInt(K.p.rowNum,10),G=!1,S=oe(y+x+D+q),A=re(o),N={},M=[],P=[],T=X(Y,"rowBox",!0,"jqgrow ui-row-"+K.p.direction),H=$e.jgrid.isFunction(K.p.afterInsertRow),k=[],U=!1,L=$e(K).find("tbody").first(),E=D?X(Y,"rownumBox",!1,"jqgrid-rownum"):"",W=q?X(Y,"searchBox",!1,""):"",V=y?X(Y,"multiBox",!1,"cbox"):"";for(w&&(K.p.data=[],K.p._index={},K.p.localReader.id=v),K.p.reccount=0,K.p.page=J($e.jgrid.getAccessor(e,r.page),K.p.page),K.p.lastpage=J($e.jgrid.getAccessor(e,r.total),1),K.p.records=J($e.jgrid.getAccessor(e,r.records)),K.p.userData=$e.jgrid.getAccessor(e,r.userdata)||{},x&&(l=$e.jgrid.getMethod("addSubGridCell")),g=!1===K.p.keyName?$e.jgrid.isFunction(r.id)?r.id.call(K,e):r.id:K.p.keyName,r.repeatitems&&K.p.keyName&&isNaN(g)&&(g=K.p.keyIndex),u=$e.jgrid.getAccessor(e,r.root),(a=0)<(p=(u=(u=$e.jgrid.isNull(u)&&Array.isArray(e)?e:u)||[]).length)&&K.p.page<=0&&(K.p.page=1),i&&(I*=i+1),"local"!==K.p.datatype||K.p.deselectAfterSort||(G=!0),K.p.grouping&&(U=!0===K.p.groupingView.groupCollapse,f=$e.jgrid.getMethod("groupingPrepare"));a<p;){var z,R=u[a],O=(void 0===(z=$e.jgrid.getAccessor(R,g))&&void 0===(z="number"!=typeof g||$e.jgrid.isNull(K.p.colModel[g+y+x+D+q])?z:$e.jgrid.getAccessor(R,K.p.colModel[g+y+x+D+q].name))&&(z=C+a,0===_.length)&&r.cell&&(O=$e.jgrid.getAccessor(R,r.cell)||R,z=$e.jgrid.isNull(O)||void 0===O[g]?z:O[g],O=null),z=K.p.idPrefix+z,(G||K.p.preserveSelection)&&(K.p.multiselect?(d=-1!==K.p.selarrrow.indexOf(z),Q=d?Q+1:Q):d=z===K.p.selrow),M.length);for(M.push(""),D&&M.push(te(0,a,K.p.page,K.p.rowNum,E)),y&&M.push(ee(z,D,a+1,d,V,R)),q&&M.push(ie(z,y+D,a+1,W)),x&&M.push(l.call(b,y+D+q,a+1)),c=A,r.repeatitems&&(r.cell&&(R=$e.jgrid.getAccessor(R,r.cell)||R),Array.isArray(R))&&(c=S),s=0;s<c.length;s++)n=$e.jgrid.getAccessor(R,c[s]),N[K.p.colModel[s+y+x+D+q].name]=n,M.push(Z(z,n,s+y+x+D+q,a+t,R,N));if(M[O]=se(z,U,d?T+" "+$:T,N,R),M.push("</tr>"),K.p.grouping&&(k.push(M),K.p.groupingView._locgr||f.call(b,N,a),M=[]),(w||!0===K.p.treeGrid&&!K.p._ald)&&(N[v]=$e.jgrid.stripPref(K.p.idPrefix,z),K.p.data.push(N),K.p._index[N[v]]=K.p.data.length-1,-1<K.p.treeANode)&&"adjacency"===K.p.treeGridModel&&P.push(N),!1===K.p.gridview&&(L.append(M.join("")),b.triggerHandler("jqGridAfterInsertRow",[z,N,R]),H&&K.p.afterInsertRow.call(K,z,N,R),M=[]),N={},a++,++j===I)break}if(Q=0<j&&K.p.multiselect&&(K.p.preserveSelection||G)&&j===Q,!0===K.p.gridview&&(h=-1<K.p.treeANode?K.p.treeANode:0,K.p.grouping?w||(b.jqGrid("groupingRender",k,K.p.colModel.length,K.p.page,I),k=null):!0===K.p.treeGrid&&0<h?$e(K.rows[h]).after(M.join("")):(L.append(M.join("")),K.grid.cols=K.rows[0].cells)),K.p.totaltime=new Date-F,M=null,0<j&&0===K.p.records&&(K.p.records=p),!0===K.p.treeGrid){try{b.jqGrid("setTreeNode",h+1,j+h+1)}catch(e){}if(-1<K.p.treeANode&&"adjacency"===K.p.treeGridModel&&(n=K.rows[K.p.treeANode].id,1<=(n=K.p._index[n]+1))){for(K.p.data.splice(-p,p),a=0;a<p;a++)K.p.data.splice(n+a,0,P[a]);ae()}}if(K.p.reccount=j,K.p.treeANode=-1,K.p.userDataOnFooter&&b.jqGrid("footerData","set",K.p.userData,K.p.formatFooterData,0,!1),K.p.userDataOnHeader&&b.jqGrid("headerData","set",K.p.userData,K.p.formatHeaderData,0,!1),w&&(K.p.records=p,K.p.lastpage=Math.ceil(p/I)),B||K.updatepager(!1,!0),Q&&le(!0),w){for(;j<p&&u[j];){if(R=u[j],void 0===(z=$e.jgrid.getAccessor(R,g))&&void 0===(z="number"!=typeof g||$e.jgrid.isNull(K.p.colModel[g+y+x+D+q])?z:$e.jgrid.getAccessor(R,K.p.colModel[g+y+x+D+q].name))&&(z=C+j,0===_.length)&&r.cell&&(m=$e.jgrid.getAccessor(R,r.cell)||R,z=$e.jgrid.isNull(m)||void 0===m[g]?z:m[g],m=null),R){for(z=K.p.idPrefix+z,c=A,r.repeatitems&&(r.cell&&(R=$e.jgrid.getAccessor(R,r.cell)||R),Array.isArray(R))&&(c=S),s=0;s<c.length;s++)N[K.p.colModel[s+y+x+D+q].name]=$e.jgrid.getAccessor(R,c[s]);N[v]=$e.jgrid.stripPref(K.p.idPrefix,z),K.p.grouping&&f.call(b,N,j),K.p.data.push(N),K.p._index[N[v]]=K.p.data.length-1,N={}}j++}K.p.grouping&&(K.p.groupingView._locgr=!0,b.jqGrid("groupingRender",k,K.p.colModel.length,K.p.page,I),k=null)}if(!0===K.p.subGrid)try{b.jqGrid("addSubGrid",y+D+q)}catch(e){}}},U=async function(e){return new Promise(function(n,a){let s=K.p.sortname,l=K.p.sortorder.toLowerCase(),d=parseInt(K.p.rowNum,10),c=0,p,u=parseInt(K.p.page,10),g,h="every";const f=K.p.ignoreCase;e&&(u=1,d=1e6),s=s||(K.p.sortname=K.p.colModel[0].index||K.p.colModel[0].name),!0===K.p.search&&(g=K.p.postData.filters)&&("OR"===(g="string"==typeof g?$e.jgrid.parse(g):g).groupOp&&(h="some"),g.rules.map(e=>{f&&(e.data=e.data.toLowerCase()),e.type="text";var t=$e(K).jqGrid("getColProp",e.field),t=t.sorttype||t.stype,i=!("bt"===e.op||"in"===e.op||"ni"===e.op);switch(t){case"int":case"integer":i&&(e.data=parseInt(e.data,10)),e.type="num";break;case"float":case"number":case"numeric":i&&(e.data=parseFloat(e.data)),e.type="num"}}));var m={eq:function(e,t,i){return(i?t[e.field].toLowerCase():t[e.field])===e.data},ne:function(e,t,i){return(i?t[e.field].toLowerCase():t[e.field])!==e.data},lt:function(e,t,i){return(i?t[e.field].toLowerCase():t[e.field])<e.data},le:function(e,t,i){return(i?t[e.field].toLowerCase():t[e.field])<=e.data},gt:function(e,t,i){return(i?t[e.field].toLowerCase():t[e.field])>e.data},ge:function(e,t,i){return(i?t[e.field].toLowerCase():t[e.field])>=e.data},bw:function(e,t,i){return 0===(i?t[e.field].toLowerCase():t[e.field]).indexOf(e.data)},bn:function(e,t,i){return!(0===(i?t[e.field].toLowerCase():t[e.field]).indexOf(e.data))},ew:function(e,t,i){return(i?t[e.field].toLowerCase():t[e.field]).endsWith(e.data)},en:function(e,t,i){return!(i?t[e.field].toLowerCase():t[e.field]).endsWith(e.data)},cn:function(e,t,i){return-1<(i?t[e.field].toLowerCase():t[e.field]).indexOf(e.data)},nc:function(e,t,i){return-1<!(i?t[e.field].toLowerCase():t[e.field])},in:function(e,t,i){return-1<e.data.split(",").map(e=>i?e.trim().toLowerCase():e.trim()).indexOf(t[e.field])},ni:function(e,t,i){return-1===e.data.split(",").map(e=>i?e.trim().toLowerCase():e.trim()).indexOf(t[e.field].trim())},nu:function(e,t,i){return null===t[e.field]},nn:function(e,t,i){return null!==t[e.field]},bt:function(t,e,i){var r=t.data.split("...").map(e=>"num"===t.type?+e:e.trim());try{var o=i?e[t.field].toLowerCase():e[t.field];return o>=r[0]&&o<=r[1]}catch(e){return!1}}};const v=window.indexedDB.open(K.p.dbconfig.dbname);v.onsuccess=function(e){var t=v.result.transaction(K.p.dbconfig.dbtable,"readonly");let r={};r[K.p.localReader.root]=[],t.oncomplete=function(e){"desc"!==l&&!K.p.grouping||r[K.p.localReader.root].sort(function(t,i){var r=[],o=[];if(K.p.grouping){for(let e=0;e<K.p.groupingView.groupField.length;e++)"asc"===K.p.groupingView.groupOrder[e]?(r.push(t[K.p.groupingView.groupField[e]]),o.push(i[K.p.groupingView.groupField[e]])):(r.push(i[K.p.groupingView.groupField[e]]),o.push(t[K.p.groupingView.groupField[e]]));"asc"===l?(r.push(t[s]),o.push(i[s])):(r.push(i[s]),o.push(t[s]))}else r=[i[s]],o=[t[s]];return indexedDB.cmp(r,o)}),r[K.p.localReader.root]=r[K.p.localReader.root].slice((u-1)*d,u*d),p=Math.ceil(c/d),r[K.p.localReader.total]=p,r[K.p.localReader.page]=u,r[K.p.localReader.records]=c,r[K.p.localReader.userdata]=K.p.userData,n(r)},t.onerror=function(e){j(),a(e.target)};var t=t.objectStore(K.p.dbconfig.dbtable).index(s),i=(t.count(null).onsuccess=e=>{c=K.p.search&&g.rules.length?0:e.target.result},Math.pow(2,32)-1),o=(!1!==K.p.search||"asc"!==l||K.p.grouping||(i=u*d),t.getAll(null,i));o.onsuccess=e=>{if(!0===K.p.search&&g.hasOwnProperty("rules")&&g.rules.length)for(var t=o.result.length,i=0;i<t;)g.rules[h](function(e){return m[e.op](e,o.result[i],f&&"text"===e.type)})&&(c++,r[K.p.localReader.root].push(o.result[i])),i++;else r[K.p.localReader.root]=o.result},o.onerror=function(e){console.log(e)}}})},L=function(e){var t,i,r,o=K.p.multiSort?[]:"",n=[],a=!1,c={},s=[],l=[];if(Array.isArray(K.p.data)){var d,p,u,g=!!K.p.grouping&&K.p.groupingView;if($e.each(K.p.colModel,function(){if("cb"===this.name||"subgrid"===this.name||"rn"===this.name||"sc"===this.name)return!0;if(i=this.sorttype||"text",u=this.index||this.name,"date"===i||"datetime"===i?(this.formatter&&"string"==typeof this.formatter&&"date"===this.formatter?(t=this.formatoptions&&this.formatoptions.srcformat?this.formatoptions.srcformat:$e.jgrid.getRegional(K,"formatter.date.srcformat"),r=this.formatoptions&&this.formatoptions.newformat?this.formatoptions.newformat:$e.jgrid.getRegional(K,"formatter.date.newformat")):t=r=this.datefmt||"Y-m-d",c[u]={stype:i,srcfmt:t,newfmt:r,sfunc:this.sortfunc||null,name:this.name}):c[u]={stype:i,srcfmt:"",newfmt:"",sfunc:this.sortfunc||null,name:this.name},K.p.grouping)for(p=0,d=g.groupField.length;p<d;p++)this.name===g.groupField[p]&&(s[p]=c[u],l[p]=u);K.p.multiSort||a||u!==K.p.sortname||(o=u,a=!0)}),K.p.multiSort&&(o=G,n=S),!K.p.treeGrid||!K.p._sort){var h={eq:function(e){return e.equals},ne:function(e){return e.notEquals},lt:function(e){return e.less},le:function(e){return e.lessOrEquals},gt:function(e){return e.greater},ge:function(e){return e.greaterOrEquals},cn:function(e){return e.contains},nc:function(e,t){return("OR"===t?e.orNot():e.andNot()).contains},bw:function(e){return e.startsWith},bn:function(e,t){return("OR"===t?e.orNot():e.andNot()).startsWith},en:function(e,t){return("OR"===t?e.orNot():e.andNot()).endsWith},ew:function(e){return e.endsWith},ni:function(e,t){return("OR"===t?e.orNot():e.andNot()).inData},in:function(e){return e.inData},nu:function(e){return e.isNull},nn:function(e,t){return("OR"===t?e.orNot():e.andNot()).isNull}},f=$e.jgrid.from.call(K,K.p.data);if(K.p.ignoreCase&&(f=f.ignoreCase()),!0===K.p.search){var m=K.p.postData.filters;if(m)!function e(t){var i,r,o,n,a,s,l,d=0;if(!$e.jgrid.isNull(t.groups)){for((r=t.groups.length&&"OR"===t.groupOp.toString().toUpperCase())&&f.orBegin(),i=0;i<t.groups.length;i++){0<d&&r&&f.or();try{e(t.groups[i])}catch(e){alert(e)}d++}r&&f.orEnd()}if(!$e.jgrid.isNull(t.rules))try{for((l=t.rules.length&&"OR"===t.groupOp.toString().toUpperCase())&&f.orBegin(),i=0;i<t.rules.length;i++){if(n=t.rules[i],o=t.groupOp.toString().toUpperCase(),h[n.op]&&n.field){0<d&&o&&"OR"===o&&(f=f.or()),s=n.field,K.p.useNameForSearch&&c.hasOwnProperty(n.field)&&(s=c[n.field].name);try{"date"===(a=c[n.field]).stype&&"string"==typeof a.srcfmt&&"string"==typeof a.newfmt&&(n.data=$e.jgrid.parseDate.call(K,a.newfmt,n.data,a.srcfmt)),f=h[n.op](f,o)(s,n.data,a)}catch(e){}}else void 0!==K.p.customFilterDef&&void 0!==K.p.customFilterDef[n.op]&&$e.jgrid.isFunction(K.p.customFilterDef[n.op].action)&&(f=f.user.call(K,n.op,n.field,n.data));d++}l&&f.orEnd()}catch(e){alert(e)}}(m="string"==typeof m?$e.jgrid.parse(m):m);else try{"date"===(j=c[K.p.postData.searchField]).stype&&j.srcfmt&&j.newfmt&&j.srcfmt!==j.newfmt&&(K.p.postData.searchString=$e.jgrid.parseDate.call(K,j.newfmt,K.p.postData.searchString,j.srcfmt)),h[K.p.postData.searchOper]?f=h[K.p.postData.searchOper](f)(K.p.postData.searchField,K.p.postData.searchString,c[K.p.postData.searchField]):void 0!==K.p.customFilterDef&&void 0!==K.p.customFilterDef[K.p.postData.searchOper]&&$e.jgrid.isFunction(K.p.customFilterDef[K.p.postData.searchOper].action)&&(f=f.user.call(K,K.p.postData.searchOper,K.p.postData.searchField,K.p.postData.searchString))}catch(e){}}if(K.p.treeGrid&&"nested"===K.p.treeGridModel&&f.orderBy(K.p.treeReader.left_field,"asc","integer","",null),K.p.treeGrid&&"adjacency"===K.p.treeGridModel&&(d=0,o=null),K.p.grouping)for(p=0;p<d;p++)f.orderBy(l[p],g.groupOrder[p],s[p].stype,s[p].srcfmt);K.p.multiSort?$e.each(o,function(e){f.orderBy(this,n[e],c[this].stype,c[this].srcfmt,c[this].sfunc)}):o&&K.p.sortorder&&a&&("DESC"===K.p.sortorder.toUpperCase()?f.orderBy(K.p.sortname,"d",c[o].stype,c[o].srcfmt,c[o].sfunc):f.orderBy(K.p.sortname,"a",c[o].stype,c[o].srcfmt,c[o].sfunc));var v=f.select(),w=parseInt(K.p.rowNum,10),b=v.length,m=parseInt(K.p.page,10),j=Math.ceil(b/w),_={};if((K.p.search||K.p.resetsearch)&&K.p.grouping&&K.p.groupingView._locgr){K.p.groupingView.groups=[];var y,x,D,q=$e.jgrid.getMethod("groupingPrepare");if(K.p.footerrow&&K.p.userDataOnFooter){for(x in K.p.userData)K.p.userData.hasOwnProperty(x)&&(K.p.userData[x]=0);D=!0}for(y=0;y<b;y++){if(D)for(x in K.p.userData)K.p.userData.hasOwnProperty(x)&&(K.p.userData[x]+=parseFloat(v[y][x]||0));q.call($e(K),v[y],y,w)}}return e?v:(v=K.p.treeGrid&&K.p.search?$e(K).jqGrid("searchTree",v):v.slice((m-1)*w,m*w),c=f=null,_[K.p.localReader.total]=j,_[K.p.localReader.page]=m,_[K.p.localReader.records]=b,_[K.p.localReader.root]=v,_[K.p.localReader.userdata]=K.p.userData,v=null,_)}$e(K).jqGrid("SortTree",o,K.p.sortorder,c[o].stype||"text",c[o].srcfmt||"")}},E=function(){K.grid.hDiv.loading=!0,K.p.hiddengrid||$e(K).jqGrid("progressBar",{method:"show",loadtype:K.p.loadui,htmlcontent:$e.jgrid.getRegional(K,"defaults.loadtext",K.p.loadtext)})},j=function(){K.grid.hDiv.loading=!1,$e(K).jqGrid("progressBar",{method:"hide",loadtype:K.p.loadui})},W=function(e,t,i){var r=void 0===(r=$e(K).triggerHandler("jqGridBeforeProcessing",[e,t,i]))||"boolean"!=typeof r||r;return r=$e.jgrid.isFunction(K.p.beforeProcessing)&&!1===K.p.beforeProcessing.call(K,e,t,i)?!1:r},V=function(e,t){$e(K).triggerHandler("jqGridLoadComplete",[e]),t&&K.p.loadComplete.call(K,e),$e(K).triggerHandler("jqGridAfterLoadComplete",[e]),K.p.datatype="local",K.p.datastr=null,j()},_=function(r){if(!K.grid.hDiv.loading){var o,n=K.p.scroll&&!1===r,e={},t=K.p.prmNames,i=(Q=0,K.p.page<=0&&(K.p.page=Math.min(1,K.p.lastpage)),$e.jgrid.isNull(t.search,!0)||(e[t.search]=K.p.search),$e.jgrid.isNull(t.nd,!0)||(e[t.nd]=(new Date).getTime()),$e.jgrid.isNull(t.rows,!0)||(e[t.rows]=K.p.rowNum),$e.jgrid.isNull(t.page,!0)||(e[t.page]=K.p.page),$e.jgrid.isNull(t.sort,!0)||(e[t.sort]=K.p.sortname),$e.jgrid.isNull(t.order,!0)||(e[t.order]=K.p.sortorder),$e.jgrid.isNull(K.p.rowTotal,!0)||$e.jgrid.isNull(t.totalrows,!0)||(e[t.totalrows]=K.p.rowTotal),$e.jgrid.isFunction(K.p.loadComplete)),a=i?K.p.loadComplete:null,s=0;if(1<(r=r||1)?$e.jgrid.isNull(t.npage,!0)?a=function(e){K.p.page++,K.grid.hDiv.loading=!1,i&&K.p.loadComplete.call(K,e),_(r-1)}:(e[t.npage]=r,s=r-1,r=1):$e.jgrid.isNull(t.npage,!0)||delete K.p.postData[t.npage],K.p.grouping){$e(K).jqGrid("groupingSetup");for(var l=K.p.groupingView,d=[],c=0;c<l.groupField.length;c++){var p=l.groupField[c];$e.each(K.p.colModel,function(e,t){t.name===p&&t.index&&(p=t.index)}),d.push(p+" "+l.groupOrder[c])}g=d.join(),""!==$e.jgrid.trim(e[t.sort])?e[t.sort]=""!==g?g+" ,"+e[t.sort]:e[t.sort]:(e[t.sort]=g,e[t.order]=""),"local"!==K.p.datatype||l._locgr||(K.p.datatype="jsonstring",K.p.datastr=K.p.data)}$e.extend(K.p.postData,e);var u=K.p.scroll?K.rows.length-1:1;if($e.jgrid.isFunction(K.p.datatype))K.p.datatype.call(K,K.p.postData,"load_"+K.p.id,u,r,s);else{var g=$e(K).triggerHandler("jqGridBeforeRequest");if(!1!==g&&"stop"!==g&&(!$e.jgrid.isFunction(K.p.beforeRequest)||!1!==(g=K.p.beforeRequest.call(K))&&"stop"!==g)){switch($e.jgrid.isFunction(K.treeGrid_beforeRequest)&&K.treeGrid_beforeRequest.call(K),o=K.p.datatype.toLowerCase()){case"json":case"jsonp":case"xml":case"script":$e.ajax($e.extend({url:K.p.url,type:K.p.mtype,dataType:o,data:$e.jgrid.isFunction(K.p.serializeGridData)?K.p.serializeGridData.call(K,K.p.postData):K.p.postData,success:function(e,t,i){W(e,t,i)?(("xml"===o?T:H)(e,u,1<r,s),$e(K).triggerHandler("jqGridLoadComplete",[e]),a&&a.call(K,e),$e(K).triggerHandler("jqGridAfterLoadComplete",[e]),n&&K.grid.populateVisible(),K.p.treeGrid_bigData?K.p.loadonce&&(K.p.datatype="local"):(K.p.loadonce||K.p.treeGrid)&&(K.p.datatype="local"),e=null,1===r&&j(),$e.jgrid.isFunction(K.treeGrid_afterLoadComplete)&&K.treeGrid_afterLoadComplete.call(K)):j()},error:function(e,t,i){$e(K).triggerHandler("jqGridLoadError",[e,t,i]),$e.jgrid.isFunction(K.p.loadError)&&K.p.loadError.call(K,e,t,i),1===r&&j()},beforeSend:function(e,t){var i=!0,i=$e(K).triggerHandler("jqGridLoadBeforeSend",[e,t]);if(!1===(i=void 0===(i=$e.jgrid.isFunction(K.p.loadBeforeSend)?K.p.loadBeforeSend.call(K,e,t):i)?!0:i))return!1;E()}},$e.jgrid.ajaxOptions,K.p.ajaxGridOptions));break;case"xmlstring":if(E(),h="string"!=typeof K.p.datastr?K.p.datastr:$e.parseXML(K.p.datastr),!W(h,200,null))return void j();T(h),V(h,i);break;case"jsonstring":if(E(),h="string"==typeof K.p.datastr?$e.jgrid.parse(K.p.datastr):K.p.datastr,!W(h,200,null))return void j();H(h),K.p.grouping&&K.p.groupingView._locgr&&(K.p.data=h),V(h,i);break;case"local":case"clientside":E(),K.p.datatype="local",K.p._ald=!0;var h=L(!1);if(!W(h,200,null))return void j();H(h,u,1<r,s),$e(K).triggerHandler("jqGridLoadComplete",[h]),a&&a.call(K,h),$e(K).triggerHandler("jqGridAfterLoadComplete",[h]),n&&K.grid.populateVisible(),j(),K.p._ald=!1;break;case"indexeddb":if(!K.p.dbconfig.ready_req)return;E(),U(!1).then(function(e){W(e,200,null)?(H(e,u,1<r,s),$e(K).triggerHandler("jqGridLoadComplete",[e]),a&&a.call(K,e),$e(K).triggerHandler("jqGridAfterLoadComplete",[e]),n&&K.grid.populateVisible(),j(),K.p._ald=!1):j()})}K.p._sort=!1}}}},le=function(e){$e("#cb_"+$e.jgrid.jqID(K.p.id),K.grid.hDiv)[K.p.useProp?"prop":"attr"]("checked",e),(K.p.frozenColumns?K.p.id+"_frozen":"")&&$e("#cb_"+$e.jgrid.jqID(K.p.id),K.grid.fhDiv)[K.p.useProp?"prop":"attr"]("checked",e)},de=function(e,s){function l(e,t){var i=$e(K).triggerHandler("jqGridPaging",[e,t]);return"stop"!==i&&"stop"!==(i=$e.jgrid.isFunction(K.p.onPaging)?K.p.onPaging.call(K,e,t):i)&&(K.p.selrow=null,K.p.multiselect&&(K.p.preserveSelection||(K.p.selarrrow=[]),le(!1)),K.p.savedRow=[])}var t,i,r,o="<td class='ui-pg-button "+w+"'><span class='ui-separator'></span></td>",n="",a="<table class='ui-pg-table ui-common-table ui-paging-pager'><tbody><tr>",d="";if(s+="_"+e,t="pg_"+e,m=e+"_left",h=e+"_center",f=e+"_right",$e("#"+$e.jgrid.jqID(e)).append("<div id='"+t+"' class='ui-pager-control' role='group'><table "+X(Y,"pagerTable",!1,"ui-pg-table ui-common-table ui-pager-table")+"><tbody><tr><td id='"+m+"' align='left'></td><td id='"+h+"' align='center' style='white-space:pre;'></td><td id='"+f+"' align='right'></td></tr></tbody></table></div>").attr("dir",v),0<K.p.rowList.length){var c,d='<td dir="'+v+'">';for(d+="<select "+X(Y,"pgSelectBox",!1,"ui-pg-selbox")+' size="1" name="pg_sel_box" role="listbox" title="'+($e.jgrid.getRegional(K,"defaults.pgrecs",K.p.pgrecs)||"")+'">',i=0;i<K.p.rowList.length;i++)1===(c=K.p.rowList[i].toString().split(":")).length&&(c[1]=c[0]),0==c[1].length?d+='<option role="option" value="'+c[0]+'"'+(J(K.p.rowNum,0)===J(c[0],0)?' aria-label="'+c[1]+'" selected="selected"':"")+">"+c[1]+"</option>":d+='<option role="option" value="'+c[0]+'"'+(J(K.p.rowNum,0)===J(c[0],0)?' selected="selected"':"")+">"+c[1]+"</option>";d+="</select></td>"}"rtl"===v&&(a+=d,$e("#"+f).attr("align","left")),!0===K.p.pginput&&(n="<td id='input"+s+"' dir='"+v+"'>"+$e.jgrid.template($e.jgrid.getRegional(K,"defaults.pgtext",K.p.pgtext)||"","<input "+X(Y,"pgInput",!1,"ui-pg-input")+" type='text' size='2' maxlength='7' value='0' role='textbox' name='jqgpginput'/>","<span id='sp_1_"+$e.jgrid.jqID(e)+"'></span>")+"</td>");var p,u,g,h,f,m=["first"+s,"prev"+s,"next"+s,"last"+s];!0===K.p.pgbuttons?(h=X(Y,"pgButtonBox",!0,"ui-pg-button"),f=[$e.jgrid.getRegional(K,"defaults.pgfirst",K.p.pgfirst)||"",$e.jgrid.getRegional(K,"defaults.pgprev",K.p.pgprev)||"",$e.jgrid.getRegional(K,"defaults.pgnext",K.p.pgnext)||"",$e.jgrid.getRegional(K,"defaults.pglast",K.p.pglast)||""],"rtl"===v&&(m.reverse(),f.reverse()),p="<td id='"+m[0]+"' class='"+h+"' title='"+f[0]+"'><span "+X(Y,"icon_first",!1,C)+"></span></td>",u="<td id='"+m[1]+"' class='"+h+"'  title='"+f[1]+"'><span "+X(Y,"icon_prev",!1,C)+"></span></td>",g="<td id='"+m[2]+"' class='"+h+"' title='"+f[2]+"'><span "+X(Y,"icon_next",!1,C)+"></span></td>",h="<td id='"+m[3]+"' class='"+h+"' title='"+f[3]+"'><span "+X(Y,"icon_end",!1,C)+"></span></td>",f=""!==n?o+n+o:"",a+="ltr"===v?p+u+f+g+h:h+g+f+u+p):""!==n&&(a+=n),"ltr"===v&&(a+=d),a+="</tr></tbody></table>",e=$e.jgrid.jqID(e),t=$e.jgrid.jqID(t),!0===K.p.viewrecords&&$e("td#"+e+"_"+K.p.recordpos,"#"+t).append("<div dir='"+v+"' class='ui-paging-info'></div>"),$e("td#"+e+"_"+K.p.pagerpos,"#"+t).append(a),o=$e("#gbox_"+$e.jgrid.jqID(K.p.id)).css("font-size")||"11px",$e("#gbox_"+$e.jgrid.jqID(K.p.id)).append("<div id='testpg' "+X(Y,"entrieBox",!1,"ui-jqgrid")+" style='font-size:"+o+";visibility:hidden;' ></div>"),h=$e(a).clone().appendTo("#testpg").width(),$e("#testpg").remove(),0<h&&(""!==n&&(h+=50),r=h>$e("td#"+e+"_"+K.p.pagerpos,"#"+t).innerWidth(),$e("td#"+e+"_"+K.p.pagerpos,"#"+t).width(h)),K.p._nvtd=[],K.p._nvtd[0]=h?Math.floor((K.p.width-h)/2):Math.floor(K.p.width/3),K.p._nvtd[1]=0,a=null,$e(".ui-pg-selbox","#"+t).on("change",function(){return l("records",this)&&(K.p.page=Math.round(K.p.rowNum*(K.p.page-1)/this.value-.5)+1,K.p.rowNum=this.value,K.p.pager&&$e(".ui-pg-selbox",K.p.pager).val(this.value),K.p.toppager&&$e(".ui-pg-selbox",K.p.toppager).val(this.value),_()),!1}),!0===K.p.pgbuttons&&($e(".ui-pg-button","#"+t).hover(function(){$e(this).hasClass(w)?this.style.cursor="default":($e(this).addClass(q),this.style.cursor="pointer")},function(){$e(this).hasClass(w)||($e(this).removeClass(q),this.style.cursor="default")}),$e("#first"+$e.jgrid.jqID(s)+", #prev"+$e.jgrid.jqID(s)+", #next"+$e.jgrid.jqID(s)+", #last"+$e.jgrid.jqID(s)).click(function(){var e,t,i,r,o,n,a;return $e(this).hasClass(w)||(e=J(K.p.page,1),a=n=o=r=!(i=!1),0===(t=J(K.p.lastpage,1))||1===t?a=n=o=r=!1:1<t&&1<=e?1===e?o=r=!1:e===t&&(a=n=!1):1<t&&0===e&&(a=n=!1,e=t-1),l(this.id.split("_")[0],this)&&(this.id==="first"+s&&r&&(K.p.page=1,i=!0),this.id==="prev"+s&&o&&(K.p.page=e-1,i=!0),this.id==="next"+s&&n&&(K.p.page=e+1,i=!0),this.id==="last"+s&&a&&(K.p.page=t,i=!0),i&&_(),$e.jgrid.setSelNavIndex(K,this))),!1})),!0===K.p.pginput&&$e("#"+t).on("keypress","input.ui-pg-input",function(e){return 13===(e.charCode||e.keyCode||0)?(e.preventDefault(),l("user",this)&&($e(this).val(J($e(this).val(),1)),K.p.page=0<$e(this).val()?$e(this).val():K.p.page,_()),!1):this}),r&&K.p.responsive&&!K.p.forcePgButtons&&($e("#"+m[0]+",#"+m[3]+",#input"+$e.jgrid.jqID(s)).hide(),$e(".ui-paging-info","td#"+e+"_"+K.p.recordpos).hide(),$e(".ui-pg-selbox","td#"+e+"_"+K.p.pagerpos).hide())},ce=function(e,t,i){var r=K.p.colModel,o=[],n="",r=(o.push(K.grid.headers[e].el),K.p.frozenColumns&&o.push(t),$e("span.ui-grid-ico-sort",o).addClass(w),$e(o).attr({"aria-selected":"false","aria-sort":"none"}),t=r[e].index||r[e].name,void 0===i?r[e].lso?"asc"===r[e].lso?(r[e].lso+="-desc",n="desc"):"desc"===r[e].lso?(r[e].lso+="-asc",n="asc"):"asc-desc"!==r[e].lso&&"desc-asc"!==r[e].lso||(r[e].lso=""):r[e].lso=n=r[e].firstsortorder||"asc":r[e].lso=n=i,n?($e("span.s-ico",o).show(),$e("span.ui-icon-"+n,o).removeClass(w),$e(o).attr({"aria-selected":"true","aria-sort":n+"ending"})):K.p.viewsortcols[0]||$e("span.s-ico",o).hide(),G.indexOf(t));-1===r?(G.push(t),S.push(n)):n?S[r]=n:(S.splice(r,1),G.splice(r,1)),K.p.sortorder="",K.p.sortname="";for(var a=0,s=G.length;a<s;a++)0<a&&(K.p.sortname+=", "),K.p.sortname+=G[a],a!==s-1&&(K.p.sortname+=" "+S[a]);K.p.sortorder=S[s-1]},pe=function(e,t,i,r,o){if(K.p.colModel[t].sortable&&!(0<K.p.savedRow.length)){if(i||(K.p.lastsort===t&&""!==K.p.sortname?"asc"===K.p.sortorder?K.p.sortorder="desc":"desc"===K.p.sortorder&&(K.p.sortorder="asc"):K.p.sortorder=K.p.colModel[t].firstsortorder||"asc",K.p.page=1),K.p.multiSort)ce(t,o,r);else{if(r){if(K.p.lastsort===t&&K.p.sortorder===r&&!i)return;K.p.sortorder=r}var i=K.grid.headers[K.p.lastsort]?K.grid.headers[K.p.lastsort].el:null,r=K.grid.headers[t].el,o=K.p.frozenColumns?o:null,n="single"===K.p.viewsortcols[1],a=$e(i).find("span.ui-grid-ico-sort");a.addClass(w),n&&$e(a).css("display","none"),$e(i).attr({"aria-selected":"false","aria-sort":"none"}),K.p.frozenColumns&&((a=K.grid.fhDiv.find("span.ui-grid-ico-sort")).addClass(w),n&&a.css("display","none"),K.grid.fhDiv.find("th").attr({"aria-selected":"false","aria-sort":"none"})),(a=$e(r).find("span.ui-icon-"+K.p.sortorder)).removeClass(w),n&&a.css("display",""),$e(r).attr({"aria-selected":"true","aria-sort":K.p.sortorder+"ending"}),K.p.frozenColumns&&((a=$e(o).find("span.ui-icon-"+K.p.sortorder)).removeClass(w),n&&a.css("display",""),$e(o).attr({"aria-selected":"true","aria-sort":K.p.sortorder+"ending"})),K.p.viewsortcols[0]||(K.p.lastsort!==t?(K.p.frozenColumns&&K.grid.fhDiv.find("span.s-ico").hide(),$e("span.s-ico",i).hide(),$e("span.s-ico",r).show(),o&&$e("span.s-ico",o).show()):""===K.p.sortname&&$e("span.s-ico",r).show()),e=e.substring(5+K.p.id.length+1),K.p.sortname=K.p.colModel[t].index||e}("stop"===$e(K).triggerHandler("jqGridSortCol",[K.p.sortname,t,K.p.sortorder])||$e.jgrid.isFunction(K.p.onSortCol)&&"stop"===K.p.onSortCol.call(K,K.p.sortname,t,K.p.sortorder)||(le(!1),"local"===K.p.datatype?K.p.deselectAfterSort&&!K.p.preserveSelection&&$e(K).jqGrid("resetSelection"):(K.p.selrow=null,K.p.multiselect&&!K.p.preserveSelection&&(K.p.selarrrow=[]),K.p.savedRow=[]),K.p.scroll&&(n=K.grid.bDiv.scrollLeft,ne.call(K,!0,!1),K.grid.hDiv.scrollLeft=n),K.p.subGrid&&"local"===K.p.datatype&&$e("td.sgexpanded","#"+$e.jgrid.jqID(K.p.id)).each(function(){$e(this).trigger("click")}),K.p._sort=!0,_(),K.p.lastsort=t,K.p.sortname!==e&&t))&&(K.p.lastsort=t)}},ue=function(e){for(var t=K.grid.headers,i=$e.jgrid.getCellIndex(e),r=0;r<t.length;r++)if(e===t[r].el){i=r;break}return i},ge=function(e,t,i,r){var o,n=K.p.colModel,a=n.length,s=[],l=!0,d=[],c=$e.extend([],K.p.colNames),p=$e.jgrid.styleUI[K.p.styleUI||"jQueryUI"].common,u=$e.jgrid.getRegional(K,"colmenu"),g=[],h='<ul id="col_menu" class="ui-search-menu  ui-col-menu modal-content '+p.shadow+'" role="menu" tabindex="0" style="left:'+t+'px;">';if(r.columns_selectAll&&(h+='<li class="ui-menu-item disabled" role="presentation" draggable="false"><a class="g-menu-item" tabindex="0" role="menuitem" ><table class="ui-common-table" ><tr><td class="menu_icon" title="'+u.reorder+'"><span class="'+C+" "+I.icon_move+' notclick" style="visibility:hidden"></span></td><td class="menu_icon"><input id="chk_all" class="'+I.input_checkbox+'" type="checkbox" name="check_all"></td><td class="menu_text">Check/Uncheck</td></tr></table></a></li>'),K.p.colSpanHeader.length)for(var f=0;f<K.p.colSpanHeader.length;f++){var m,v=K.p.colSpanHeader[f];0<=(m=$e.jgrid.getElemByAttrVal(n,"name",v.startColumnName,!0))&&(g.push(m),c[m]=v.titleText)}if($e(K).jqGrid("isGroupHeaderOn"))for(var p=K.p.groupHeader.length,w=K.p.groupHeader[p-1],b=0;b<c.length;b++)if(0<=(m=$e.jgrid.inColumnHeader(n[b].name,w.groupHeaders))){c[b]=w.groupHeaders[m].titleText+"::"+c[b];for(var j=1;j<=w.groupHeaders[m].numberOfColumns-1;j++)c[b+j]=w.groupHeaders[m].titleText+"::"+c[b+j];b=b+w.groupHeaders[m].numberOfColumns-1}for(o=0;o<a;o++){var _,y=n[o].hidden?"":"checked",x=n[o].name,D=c[o];h+="<li "+(_="cb"===x||"subgrid"===x||"rn"===x||"sc"===x||n[o].hidedlg?"style='display:none'":"")+' class="ui-menu-item" role="presentation" draggable="true"><a class="g-menu-item" tabindex="0" role="menuitem" ><table class="ui-common-table" ><tr><td class="menu_icon" title="'+u.reorder+'"><span class="'+C+" "+I.icon_move+' notclick"></span></td><td class="menu_icon"><input class="'+I.input_checkbox+' chk_selected" type="checkbox" name="'+x+'" '+y+'></td><td class="menu_text">'+D+"</td></tr></table></a></li>",s.push(o),_||d.push(x),l&&!y&&(l=!1)}h+="</ul>",$e(i).append(h),$e("#col_menu").addClass("ui-menu "+I.menu_widget),$e("#chk_all","#col_menu").prop("checked",l),$e.jgrid.isElementInViewport($e("#col_menu")[0])||$e("#col_menu").css("left",-parseInt($e("#column_menu").innerWidth(),10)+"px"),$e.fn.html5sortable()&&$e("#col_menu").html5sortable({handle:"span",items:":not(.disabled)",forcePlaceholderSize:!0}).on("sortupdate",function(e,t){for(s.splice(t.startindex,1),s.splice(t.endindex,0,t.startindex),$e(K).jqGrid("destroyFrozenColumns"),$e(K).jqGrid("remapColumns",s,!0),$e(K).triggerHandler("jqGridColMenuColumnDone",[s,null,null]),$e.jgrid.isFunction(K.p.colMenuColumnDone)&&K.p.colMenuColumnDone.call(K,s,null,null),$e(K).jqGrid("setFrozenColumns"),o=0;o<a;o++)s[o]=o}),$e("#col_menu > li > a").on("click",function(e){var t;$e(e.target).hasClass("notclick")||($e(e.target).is(":input")?t=$e(e.target).is(":checked"):(t=!$e("input",this).is(":checked"),$e("input",this).prop("checked",t)),"check_all"===(e=$e("input",this).attr("name"))?t?($e("input","#col_menu").prop("checked",!0),$e(K).jqGrid("showCol",d)):($e("input","#col_menu").prop("checked",!1),$e(K).jqGrid("hideCol",d)):($e(K).triggerHandler("jqGridColMenuColumnDone",[s,e,t]),$e.jgrid.isFunction(K.p.colMenuColumnDone)&&K.p.colMenuColumnDone.call(K,s,e,t),t?($e(K).jqGrid("showCol",e),$e(this).parent().attr("draggable","true")):($e(K).jqGrid("hideCol",e),$e(this).parent().attr("draggable","false")),r.columns_selectAll&&$e("#chk_all","#col_menu").prop("checked",$e(".chk_selected:checked","#col_menu").length===$e(".chk_selected","#col_menu").length),$e("#column_menu").remove()))}).hover(function(){$e(this).addClass(q)},function(){$e(this).removeClass(q)})},he=function(e,t,i,r){var o,n,a,s,l,d,c=K.p.colModel[e],p="",e="",u="",g="",h="",f="",m=$e.jgrid.getRegional(K,"search"),v=$e.jgrid.styleUI[K.p.styleUI||"jQueryUI"].common,w=$e.jgrid.styleUI[b.styleUI||"jQueryUI"].modal;c&&((a=!(!K.p.colFilters||!K.p.colFilters[c.name])&&K.p.colFilters[c.name])&&!$e.isEmptyObject(a)&&(p=a.oper1,e=a.value1,u=a.rule,g=a.oper2,h=a.value2),c.searchoptions||(c.searchoptions={}),n=c.searchoptions.sopt||(-1!==$e.inArray(c.sorttype,["text","string","blob"])?["eq","ne","bw","bn","ew","en","cn","nc","nu","nn","in","ni"]:["eq","ne","lt","le","gt","ge","nu","nn","in","ni"]),a=c.searchoptions.groupOps||m.groupOps,s=$e("<form></form>"),l="<a id='bs_close' aria-label='Close'><span class='"+C+" "+w.icon_close+"'></span></a>",l=(l+="<div>"+$e.jgrid.getRegional(K,"colmenu.searchTitle")+"</div>")+'<div><select size="1" id="oper1" class="'+I.filter_select+'">',$e.each(m.odata,function(e,t){o=t.oper===p?'selected="selected"':"",-1!==$e.inArray(t.oper,n)&&(f+='<option value="'+t.oper+'"  aria-label="'+t.text+'" '+o+">"+t.text+"</option>")}),l=l+f+"</select></div>",s.append(l),d="",c.searchoptions.defaultValue&&(d=$e.jgrid.isFunction(c.searchoptions.defaultValue)?c.searchoptions.defaultValue.call(K):c.searchoptions.defaultValue),e&&(d=e),w=$e.extend(c.searchoptions,{name:c.index||c.name,id:"sval1_"+K.p.idPrefix+c.name,oper:"search"}),e=$e.jgrid.createEl.call(K,c.stype,w,d,!1,$e.extend({},$e.jgrid.ajaxOptions,K.p.ajaxSelectOptions||{})),$e(e).addClass(I.filter_input),l=$e("<div></div>").append(e),s.append(l),l='<div><select size="1" id="operand" class="'+I.filter_select+'">',$e.each(a,function(e,t){o=t.op===u?'selected="selected"':"",l+="<option value='"+t.op+"' "+o+">"+t.text+"</option>"}),l+="</select></div>",s.append(l),f="",$e.each(m.odata,function(e,t){o=t.oper===g?'selected="selected"':"",-1!==$e.inArray(t.oper,n)&&(f+='<option value="'+t.oper+'" '+o+">"+t.text+"</option>")}),l='<div><select size="1" id="oper2" class="'+I.filter_select+'">'+f+"</select></div>",s.append(l),d=h||"",w=$e.extend(c.searchoptions,{name:c.index||c.name,id:"sval2_"+K.p.idPrefix+c.name,oper:"search"}),e=$e.jgrid.createEl.call(K,c.stype,w,d,!1,$e.extend({},$e.jgrid.ajaxOptions,K.p.ajaxSelectOptions||{})),$e(e).addClass(I.filter_input),l=$e("<div></div>").append(e),s.append(l),l="<div>",l=(l+="<div class='search_buttons'><a tabindex='0' id='bs_reset' class='fm-button "+v.button+" ui-reset'>"+m.Reset+"</a></div>")+"<div class='search_buttons'><a tabindex='0' id='bs_search' class='fm-button "+v.button+" ui-search'>"+m.Find+"</a></div></div>",s.append(l),s=$e('<li class="ui-menu-item" role="presentation"></li>').append(s),s=$e('<ul id="search_menu" class="ui-search-menu modal-content '+v.shadow+'" role="menu" tabindex="0" style="left:'+i+'px;"></ul>').append(s),$e(r).append(s),$e("#search_menu").addClass("ui-menu "+I.menu_widget),$e.jgrid.isElementInViewport($e("#search_menu")[0])||$e("#search_menu").css("left",-parseInt($e("#column_menu").innerWidth(),10)+"px"),$e("#bs_reset, #bs_search","#search_menu","#bs_close").hover(function(){$e(this).addClass(q)},function(){$e(this).removeClass(q)}),$e("#bs_reset",s).on("click",function(e){K.p.colFilters[c.name]={},!0===K.p.mergeSearch&&K.p.searchModules.hasOwnProperty("colMenuSearch")&&!1!==K.p.searchModules.colMenuSearch?(K.p.searchModules.colMenuSearch=fe(),$e.extend(K.p.postData,{filters:$e.jgrid.splitSearch(K.p.searchModules)}),K.p.search=!0):(K.p.postData.filters=fe(),K.p.search=!1,K.p.resetsearch=!0),d="",c.searchoptions.defaultValue&&(d=$e.jgrid.isFunction(c.searchoptions.defaultValue)?c.searchoptions.defaultValue.call(K):c.searchoptions.defaultValue),$e("#sval1_"+K.p.idPrefix+c.name,"#search_menu").val(d),$e("#sval2_"+K.p.idPrefix+c.name,"#search_menu").val(""),$e.jgrid.isFunction(K.p.colMenuBeforeProcess)&&K.p.colMenuBeforeProcess.call(K,{module:"filtering",action:"reset",column:c.name}),$e(K).trigger("reloadGrid")}),$e("#bs_search",s).on("click",function(e){K.p.colFilters[c.name]={oper1:$e("#oper1","#search_menu").val(),value1:$e("#sval1_"+K.p.idPrefix+c.name,"#search_menu").val(),rule:$e("#operand","#search_menu").val(),oper2:$e("#oper2","#search_menu").val(),value2:$e("#sval2_"+K.p.idPrefix+c.name,"#search_menu").val()},!0===K.p.mergeSearch&&K.p.searchModules.hasOwnProperty("colMenuSearch")&&!1!==K.p.searchModules.colMenuSearch?(K.p.searchModules.colMenuSearch=fe(),$e.extend(K.p.postData,{filters:$e.jgrid.splitSearch(K.p.searchModules)})):K.p.postData.filters=fe(),K.p.search=!0,$e.jgrid.isFunction(K.p.colMenuBeforeProcess)&&K.p.colMenuBeforeProcess.call(K,{module:"filtering",action:"search",column:c.name}),$e(K).trigger("reloadGrid"),$e("#column_menu").remove()}),$e("#bs_close",s).on("click",function(){$e("#column_menu").remove()}))},fe=function(){var e,t="",i=0;for(e in K.p.colFilters)if(K.p.colFilters.hasOwnProperty(e)){var r=K.p.colFilters[e];if(!$e.isEmptyObject(r)){if(""===r.value1&&""===r.value2)break;0<i&&(t+=","),t=(t=t+('{"groupOp":"'+r.rule+'","rules":[')+('{"field":"'+e+'",'))+('"op":"'+r.oper1+'",'),r.value1+="",t+='"data":"'+r.value1.replace(/\\/g,"\\\\").replace(/\"/g,'\\"')+'"}',r.value2&&(t=(t+=',{"field":"'+e+'",')+'"op":"'+r.oper2+'",',r.value2+="",t+='"data":"'+r.value2.replace(/\\/g,"\\\\").replace(/\"/g,'\\"')+'"}'),t+="]",i++}}return t+="}",t=0===i?"":t},me=function(e,t){var e=K.p.colModel[e],i=K.p.groupingView;-1!==t?i.groupField.splice(t,1):i.groupField.push(e.name),$e.jgrid.isFunction(K.p.colMenuBeforeProcess)&&K.p.colMenuBeforeProcess.call(K,{module:"grouping",action:-1!==t?"ungroup":"group",column:e.name}),$e(K).jqGrid("groupingGroupBy",i.groupField),K.p.frozenColumns&&($e(K).jqGrid("destroyFrozenColumns"),$e(K).jqGrid("setFrozenColumns"))},ve=function(e,t){for(var i=[],r=K.p.colModel.length,o=-1,n=K.p.colModel,a=0;a<r;a++)n[a].frozen&&(o=a),i.push(a);i.splice(e,1),i.splice(o+(t?1:0),0,e),n[e].frozen=t,$e.jgrid.isFunction(K.p.colMenuBeforeProcess)&&K.p.colMenuBeforeProcess.call(K,{module:"freeze",action:t?"freeze":"unfreeze",column:n[e].name}),$e(K).jqGrid("destroyFrozenColumns"),$e(K).jqGrid("remapColumns",i,!0),$e(K).jqGrid("setFrozenColumns")},we=function(e,t,i,r,o){K.p.colModel;var n=$e.jgrid.styleUI[K.p.styleUI||"jQueryUI"].common,a=$e.jgrid.styleUI[K.p.styleUI||"jQueryUI"].colmenu,s=K.p.colMenuCustom[r].items,l='<ul id="col_menu" class="ui-search-menu  ui-col-menu modal-content '+n.shadow+'" role="menu" tabindex="0" style="left:'+t+'px;">';s.forEach(e=>{e.icon||(e.icon=a.icon_new_item),"separator"==e.id?l+='<li class="ui-menu-item divider" role="separator"></li>':l+='<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="'+e.id+'"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+C+" "+e.icon+'"></span></td><td class="menu_text">'+e.title+"</td></tr></table></a></li>"}),l+="</ul>",$e(i).append(l),$e("#col_menu").addClass("ui-menu "+I.menu_widget),$e.jgrid.isElementInViewport($e("#col_menu")[0])||$e("#col_menu").css("left",-parseInt($e("#column_menu").innerWidth(),10)+"px"),$e("#col_menu > li > a").on("click",function(e){var t=$e(this).attr("data-value"),i=s.find(e=>e.id===t);i&&$e.jgrid.isFunction(i.funcname)&&(i.funcname.call(K,o),i.closeOnRun)&&$e(this).remove()}).hover(function(){$e(this).addClass(q)},function(){$e(this).removeClass(q)})};for((K.p.colMenu||K.p.menubar)&&$e("body").on("click",function(e){if(!$e(e.target).closest("#column_menu").length)try{$e("#column_menu").remove()}catch(e){}if(!$e(e.target).closest(".ui-jqgrid-menubar").length)try{$e("#"+K.p.id+"_menubar").hide()}catch(e){}}),this.p.id=this.id,!0===K.p.autowidth&&(n=$e(i).parent().width(),r=$e(window).width(),K.p.width=3<r-n?n:r-1),-1===$e.inArray(K.p.multikey,["shiftKey","altKey","ctrlKey"])&&(K.p.multikey=!1),K.p.keyName=!1,e=0;e<K.p.colModel.length;e++)k="string"==typeof K.p.colModel[e].template?$e.jgrid.isNull($e.jgrid.cmTemplate)||"object"!=typeof $e.jgrid.cmTemplate[K.p.colModel[e].template]?{}:$e.jgrid.cmTemplate[K.p.colModel[e].template]:K.p.colModel[e].template,K.p.colModel[e]=$e.extend(!0,{},K.p.cmTemplate,k||{},K.p.colModel[e]),!1===K.p.keyName&&!0===K.p.colModel[e].key&&(K.p.keyName=K.p.colModel[e].name,K.p.keyIndex=e);K.p.sortorder=K.p.sortorder.toLowerCase(),$e.jgrid.cell_width=$e.jgrid.cellWidth();var be=$e("<table style='visibility:hidden'><tr class='jqgrow'><td>1</td></tr></table)").addClass(X(Y,"rowTable",!0,"ui-jqgrid-btable ui-common-table"));if($e(i).append(be),K.p.cellLayout=$e.jgrid.floatNum($e("td",be).css("padding-left"))+$e.jgrid.floatNum($e("td",be).css("padding-right"),10)+1,K.p.cellLayout<=0&&(K.p.cellLayout=5),$e(be).remove(),!null===K.p.grouping&&(K.p.scroll=!1,K.p.rownumbers=!1,K.p.treeGrid=!1,K.p.gridview=!0),!0===this.p.treeGrid){try{$e(this).jqGrid("setTreeGrid")}catch(e){}"local"!==K.p.datatype?K.p.localReader={id:"_id_"}:!1!==K.p.keyName&&(K.p.localReader={id:K.p.keyName})}if(this.p.subGrid)try{$e(K).jqGrid("setSubGrid")}catch(e){}this.p.searchCols&&(this.p.colNames.unshift(K.p.searchColOptions.colName),this.p.colModel.unshift({name:"sc",width:K.p.searchColOptions.colWidth,sortable:!1,hidedlg:!0,search:!1,align:"left",fixed:!0,frozen:!0,colmenu:K.p.searchColOptions.colmenu,classes:"jqgrid-searchcol",labelClasses:"jqgrid-searchcolumn",coloptions:{sorting:!1,columns:!1,filtering:!1,seraching:!1,grouping:!1,freeze:!1}})),this.p.multiselect&&(n=(n=$e.jgrid.getRegional(K,"defaults.selectAllLines"))||$e.jgrid.regional.en.defaults.selectAllLines,this.p.colNames.unshift("<input role='checkbox' id='cb_"+this.p.id+"' class='cbox' type='checkbox' title='"+n+"'/>"),this.p.colModel.unshift({name:"cb",width:$e.jgrid.cell_width?K.p.multiselectWidth+K.p.cellLayout:K.p.multiselectWidth,sortable:!1,resizable:!1,hidedlg:!0,search:!1,align:"center",fixed:!0,frozen:!0,classes:"jqgrid-multibox",labelClasses:"jqgrid-multibox"})),this.p.rownumbers&&(this.p.colNames.unshift(""),this.p.colModel.unshift({name:"rn",width:K.p.rownumWidth,sortable:!1,resizable:!1,hidedlg:!0,search:!1,align:"center",fixed:!0,frozen:!0,labelClasses:"jqgrid-rownumber"})),K.p.xmlReader=$e.extend(!0,{root:"rows",row:"row",page:"rows>page",total:"rows>total",records:"rows>records",repeatitems:!0,cell:"cell",id:"[id]",userdata:"userdata",subgrid:{root:"rows",row:"row",repeatitems:!0,cell:"cell"}},K.p.xmlReader),K.p.jsonReader=$e.extend(!0,{root:"rows",page:"page",total:"total",records:"records",repeatitems:!0,cell:"cell",id:"id",userdata:"userdata",subgrid:{root:"rows",repeatitems:!0,cell:"cell"}},K.p.jsonReader),K.p.localReader=$e.extend(!0,{root:"rows",page:"page",total:"total",records:"records",repeatitems:!1,cell:"cell",id:"id",userdata:"userdata",subgrid:{root:"rows",repeatitems:!0,cell:"cell"}},K.p.localReader),K.p.scroll&&(K.p.pgbuttons=!1,K.p.pginput=!1,K.p.rowList=[]),K.p.data.length&&(P(),ae());var je,_e,ye,c,p,xe,r,De,qe,o="<thead role='rowgroup'><tr class='ui-jqgrid-labels' role='row'>",Ce="",n="",a="";if(!0===K.p.shrinkToFit&&!0===K.p.forceFit)for(e=K.p.colModel.length-1;0<=e;e--)if(!K.p.colModel[e].hidden){K.p.colModel[e].resizable=!1;break}if("horizontal"===K.p.viewsortcols[1]?(n=" ui-i-asc",a=" ui-i-desc"):"single"===K.p.viewsortcols[1]&&(n=" ui-single-sort-asc",Ce=" style='display:none'",K.p.viewsortcols[0]=!(a=" ui-single-sort-desc")),je=R?"class='ui-th-div-ie'":"",xe="<span class='s-ico' style='display:none'>",xe=(xe+="<span sort='asc'  class='ui-grid-ico-sort ui-icon-asc"+n+" ui-sort-"+v+" "+w+" "+C+" "+X(Y,"icon_asc",!0)+"'"+Ce+" aria-label='empty'><span style='display:none'>empty</span></span>")+("<span sort='desc' class='ui-grid-ico-sort ui-icon-desc"+a+" ui-sort-"+v+" "+w+" "+C+" "+X(Y,"icon_desc",!0)+"'"+Ce+" aria-label='empty'><span style='display:none'>empty</span></span></span>"),K.p.multiSort&&K.p.sortname)for(G=K.p.sortname.split(","),e=0;e<G.length;e++)O=$e.jgrid.trim(G[e]).split(" "),G[e]=$e.jgrid.trim(O[0]),S[e]=O[1]?$e.jgrid.trim(O[1]):K.p.sortorder||"asc";for(e=0;e<this.p.colNames.length;e++){var Ie=K.p.headertitles?' title="'+(K.p.colModel[e].tooltip||$e.jgrid.stripHtml(K.p.colNames[e]))+'"':"";(r=K.p.colModel[e]).hasOwnProperty("colmenu")||(r.colmenu="rn"!==r.name&&"cb"!==r.name&&"subgrid"!==r.name),o+="<th id='"+K.p.id+"_"+r.name+"' role='columnheader'  scope='col' "+X(Y,"headerBox",!1,"ui-th-column ui-th-"+v+" "+(r.labelClasses||""))+Ie+">",Ie=r.index||r.name,o+="<div class='ui-th-div' id='jqgh_"+K.p.id+"_"+r.name+"' "+je+">"+K.p.colNames[e],r.width?r.width=parseInt(r.width,10):r.width=K.p.defaultColWidth,"boolean"!=typeof r.title&&(r.title=!0),r.lso="",Ie===K.p.sortname&&(K.p.lastsort=e),K.p.multiSort&&-1!==(O=$e.inArray(Ie,G))&&(r.lso=S[O]),o+=xe,K.p.colMenu&&r.colmenu&&(o+="<a title='"+$e.jgrid.getRegional(K,"colmenu.hovermenu")+"' class='"+("ltr"===K.p.direction?"colmenu":"colmenu-rtl")+"'><span class='colmenuspan "+C+" "+I.icon_menu+"'></span></a>"),o+="</div></th>"}o+="</tr></thead>",r=xe=null,$e(this).append(o),$e("thead tr",this).first().find("th").hover(function(){$e(this).addClass(q)},function(){$e(this).removeClass(q)}),this.p.multiselect&&(De=[],$e("#cb_"+$e.jgrid.jqID(K.p.id),this).on("click",function(){K.p.preserveSelection||(K.p.selarrrow=[]);var t=!0===K.p.frozenColumns?K.p.id+"_frozen":"";this.checked?($e(K.rows).each(function(e){0<e&&($e(this).hasClass("ui-subgrid")||$e(this).hasClass("jqgroup")||$e(this).hasClass(w)||$e(this).hasClass("jqfoot")||($e("#jqg_"+$e.jgrid.jqID(K.p.id)+"_"+$e.jgrid.jqID(this.id))[K.p.useProp?"prop":"attr"]("checked",!0),$e(this).addClass($).attr("aria-selected","true"),K.p.preserveSelection&&-1!==K.p.selarrrow.indexOf(this.id)||K.p.selarrrow.push(this.id),K.p.selrow=this.id,t&&($e("#jqg_"+$e.jgrid.jqID(K.p.id)+"_"+$e.jgrid.jqID(this.id),K.grid.fbDiv)[K.p.useProp?"prop":"attr"]("checked",!0),$e("#"+$e.jgrid.jqID(this.id),K.grid.fbDiv).addClass($))))}),qe=!0,De=[]):($e(K.rows).each(function(e){0<e&&($e(this).hasClass("ui-subgrid")||$e(this).hasClass("jqgroup")||$e(this).hasClass(w)||$e(this).hasClass("jqfoot")||($e("#jqg_"+$e.jgrid.jqID(K.p.id)+"_"+$e.jgrid.jqID(this.id))[K.p.useProp?"prop":"attr"]("checked",!1),$e(this).removeClass($).attr("aria-selected","false"),De.push(this.id),K.p.preserveSelection&&-1<(e=K.p.selarrrow.indexOf(this.id))&&K.p.selarrrow.splice(e,1),t&&($e("#jqg_"+$e.jgrid.jqID(K.p.id)+"_"+$e.jgrid.jqID(this.id),K.grid.fbDiv)[K.p.useProp?"prop":"attr"]("checked",!1),$e("#"+$e.jgrid.jqID(this.id),K.grid.fbDiv).removeClass($))))}),K.p.selrow=null,qe=!1),$e(K).triggerHandler("jqGridSelectAll",[qe?K.p.selarrrow:De,qe]),$e.jgrid.isFunction(K.p.onSelectAll)&&K.p.onSelectAll.call(K,qe?K.p.selarrrow:De,qe),$e.jgrid.isFunction(K.p.onMultiSelect)&&K.p.onMultiSelect.call(K,K.p.selarrrow)}));var Ge,l,Se,Ne,Me="",ke="",n=-1!==K.p.styleUI.search("Bootstrap")?2:0,d=0,u=$e.jgrid.cell_width?0:J(K.p.cellLayout,0),g=0,a=J(K.p.scrollOffset,0),ze=!1,h=0;if($e.each(K.p.colModel,function(){var e;void 0===this.hidden&&(this.hidden=!1),K.p.grouping&&K.p.autowidth&&0<=(e=$e.inArray(this.name,K.p.groupingView.groupField))&&K.p.groupingView.groupColumnShow.length>e&&(this.hidden=!K.p.groupingView.groupColumnShow[e]),this.widthOrg=J(this.width,0),this.maxWidth&&J(this.width,0)>J(this.maxWidth,0)&&(this.width=this.maxWidth),l=J(this.width,0),!1===this.hidden&&(d+=l+u,this.fixed?h+=l+u:g++)}),isNaN(K.p.width)&&(K.p.width=d+(!1!==K.p.shrinkToFit||isNaN(K.p.height)?0:a)),y.width=parseInt(K.p.width,10),K.p.tblwidth=d,!1===K.p.shrinkToFit&&!0===K.p.forceFit&&(K.p.forceFit=!1),!0===K.p.shrinkToFit&&0<g){Se=y.width-u*g-h,isNaN(K.p.height)||(Se-=a,ze=!0);var d=0,Re=0,Oe=0,Be=[],Fe=0,f=($e.each(K.p.colModel,function(e){!1!==this.hidden||this.fixed||(l=Math.round(Se*this.width/(K.p.tblwidth-u*g-h)),this.maxWidth&&l>this.maxWidth?(Re++,Oe+=l,this.width=this.maxWidth,Ne=e):(this.width=l,Fe+=l,Be.push(e+"")),d+=this.width,Ge=e)}),d+=Oe,-1);if((We=0)<Re&&0<g){for(var Ae=0,Pe=0;Pe<Be.length;Pe++)f=parseInt(Be[Pe],10),Ae+=Math.round(K.p.colModel[f].width*Oe/Fe),K.p.colModel[f].width=K.p.colModel[f].width+Math.round(K.p.colModel[f].width*Oe/Fe);Ae!==Oe&&(K.p.colModel[f].width+=Oe-Ae)}ze?y.width-h-(d+u*g)!==a&&(We=y.width-h-(d+u*g)-a):0!==Math.abs(y.width-h-(d+u*g))&&(We=y.width-h-(d+u*g)-n),-1<f&&Ge===Ne&&(Ge=f),K.p.colModel[Ge].width+=We+-1,K.p.tblwidth=d+We+u*g+h,K.p.tblwidth>K.p.width&&(K.p.colModel[Ge].width-=K.p.tblwidth-parseInt(K.p.width,10),K.p.tblwidth=K.p.width)}be=-1!==K.p.styleUI.search("Bootstrap"),$e(i).css("width",y.width+"px").append("<div class='ui-jqgrid-resize-mark' id='rs_m"+K.p.id+"'>&#160;</div>"),K.p.scrollPopUp&&$e(i).append("<div "+X(Y,"scrollBox",!1,"loading ui-scroll-popup")+" id='scroll_g"+K.p.id+"'></div>"),$e(t).css("width",y.width+"px"),o=$e(K).find("thead").first().get(0),K.p.footerrow&&(Me+="<table role='presentation' style='width:"+K.p.tblwidth+"px' "+X(Y,"footerTable",!1,"ui-jqgrid-ftable ui-common-table")+"><tbody><tr role='row' "+X(Y,"footerBox",!1,"footrow footrow-"+v)+">"),K.p.headerrow&&(ke+="<table role='presentation' style='width:"+K.p.tblwidth+"px' "+X(Y,"headerRowTable",!1,"ui-jqgrid-hrtable ui-common-table")+"><tbody><tr role='row' "+X(Y,"headerRowBox",!1,"hrheadrow hrheadrow-"+v)+">");var ze=$e(o).find("tr").first(),Te="<tr class='jqgfirstrow "+("rtl"===K.p.direction?"ui-row-rtl'":"'")+" role='row'>",He=0,Ue=$e.jgrid.getFont($e("th",ze).first()[0]);if(K.p.disableClick=!1,$e("th",ze).each(function(e){r=K.p.colModel[e],_e=r.width,void 0===r.resizable&&(r.resizable=!0),r.resizable?(ye=document.createElement("span"),$e(ye).html("&#160;").addClass("ui-jqgrid-resize ui-jqgrid-resize-"+v).css("cursor","col-resize"),$e(this).addClass(K.p.resizeclass)):ye="",$e(this).css("width",_e+"px").prepend(ye),ye=null;var t="",i="",i=(r.hidden&&($e(this).css("display","none"),t="display:none;"),r.labelClasses&&(i="class='"+r.labelClasses+"'"),Te+="<td "+i+" role='gridcell' style='height:0px;width:"+_e+"px;"+t+"'></td>",y.headers[e]={width:_e,el:this},"boolean"!=typeof(Ce=r.sortable)&&(r.sortable=!0,Ce=!0),r.name);"cb"!==i&&"subgrid"!==i&&"rn"!==i&&"sc"!==i&&K.p.viewsortcols[2]&&$e(">div",this).addClass("ui-jqgrid-sortable"),r.canvas_width=r.autosize_headers?$e.jgrid.getTextWidth($e("div",this)[0].outerText,Ue)+(r.colmenu?$e.jgrid.floatNum($e(".colmenuspan",this).parent().width()):0)+$e.jgrid.floatNum($e("div",this).css("padding-left"))+$e.jgrid.floatNum($e("div",this).css("padding-right"))+$e.jgrid.floatNum($e(".ui-jqgrid-resize",this).width()):0,Ce&&(K.p.multiSort?K.p.viewsortcols[0]?($e("div span.s-ico",this).show(),r.lso&&$e("div span.ui-icon-"+r.lso,this).removeClass(w).css("display","")):r.lso&&($e("div span.s-ico",this).show(),$e("div span.ui-icon-"+r.lso,this).removeClass(w).css("display","")):K.p.viewsortcols[0]?($e("div span.s-ico",this).show(),e===K.p.lastsort&&$e("div span.ui-icon-"+K.p.sortorder,this).removeClass(w).css("display","")):e===K.p.lastsort&&""!==K.p.sortname&&($e("div span.s-ico",this).show(),$e("div span.ui-icon-"+K.p.sortorder,this).removeClass(w).css("display",""))),K.p.footerrow&&(Me+="<td role='gridcell' "+s(e,0,"",null,"",!1)+">&#160;</td>"),K.p.headerrow&&(ke+="<td role='gridcell' "+s(e,0,"",null,"",!1)+">&#160;</td>")}).mousedown(function(e){if(1===$e(e.target).closest("th>span.ui-jqgrid-resize").length){var t,i=ue(this);if(e.preventDefault(),He++,setTimeout(function(){He=0},400),2!==He)return!0===K.p.forceFit&&(K.p.nv=function(e){for(var t=e,i=e,r=e+1;r<K.p.colModel.length;r++)if(!0!==K.p.colModel[r].hidden){i=r;break}return i-t}(i)),y.dragStart(i,e,function(e){e=$e(K.grid.headers[e].el),e=[e.position().left+e.outerWidth()];return"rtl"===K.p.direction&&(e[0]=K.p.width-e[0]),e[0]-=K.grid.bDiv.scrollLeft,e.push($e(K.grid.hDiv).position().top),e.push($e(K.grid.bDiv).offset().top-$e(K.grid.hDiv).offset().top+$e(K.grid.bDiv).height()),e}(i)),!1;try{!0===K.p.colModel[i].autosize&&(t=$e(K).jqGrid("getCol",i,!1,"maxwidth"),$e(K).jqGrid("resizeColumn",i,t+(be?K.p.cellLayout:0)).jqGrid("refreshGroupHeaders"))}catch(e){}finally{He=0}}}).click(function(e){if(K.p.disableClick)return K.p.disableClick=!1;var t,i,r,o="th>div.ui-th-div",o=(K.p.viewsortcols[2]||(o="th>div>span>span.ui-grid-ico-sort"),$e(e.target).closest(o));if(1===o.length)if(r=K.p.frozenColumns?(r=$e(this)[0].id.substring(K.p.id.length+1),$e.jgrid.getElemByAttrVal(K.p.colModel,"name",r,!0)):ue(this),$e(e.target).hasClass("colmenuspan")){if($e.jgrid.isNull($e("#column_menu")[0])||$e("#column_menu").remove(),void 0!==r){var n,a,s,l,d,c=$e("#gbox_"+K.p.id).offset(),c=$e(this).offset().left-c.left,p=("ltr"===K.p.direction&&(c+=$e(this).outerWidth()),r),u=void 0,g=$e(y.hDiv).height(),h=($e(".ui-search-toolbar",y.hDiv)[0]&&!isNaN($e(".ui-search-toolbar",y.hDiv).height())&&(g-=$e(".ui-search-toolbar",y.hDiv).height()),$e(y.cDiv).is(":hidden")||(g+=$e(y.cDiv).outerHeight()),K.p.toolbar[1]&&"bottom"!==K.p.toolbar[2]&&!$e.jgrid.isNull($e(y.uDiv),!0)&&(g+=$e(y.uDiv).outerHeight()),K.p.toppager&&(g+=$e("#"+$e.jgrid.jqID(K.p.id)+"_toppager").outerHeight()),c=parseInt(c,10),u=g,""),f="",m=K.p.colModel[p],v=$e.extend({sorting:!0,columns:!0,filtering:!0,seraching:!0,grouping:!0,freeze:!0},m.coloptions),g=$e.jgrid.styleUI[K.p.styleUI||"jQueryUI"].common,w=$e.jgrid.getRegional(K,"colmenu"),b=K.p.colNames[p],j=[],_=$e.jgrid.trim(m.name);for(s in j.push(h),m.sortable&&v.sorting&&(h='<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="sortasc"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+C+" "+I.icon_sort_asc+'"></span></td><td class="menu_text">'+w.sortasc+"</td></tr></table></a></li>",h+='<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="sortdesc"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+C+" "+I.icon_sort_desc+'"></span></td><td class="menu_text">'+w.sortdesc+"</td></tr></table></a></li>",j.push(h)),v.columns&&(h='<li class="ui-menu-item divider" role="separator"></li>',h+='<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="columns"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+C+" "+I.icon_columns+'"></span></td><td class="menu_text">'+w.columns+"</td></tr></table></a></li>",j.push(h)),v.filtering&&(h='<li class="ui-menu-item divider" role="separator"></li>',h+='<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="filtering"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+C+" "+I.icon_filter+'"></span></td><td class="menu_text">'+w.filter+" "+b+"</td></tr></table></a></li>",j.push(h)),v.grouping&&(n=$e.inArray(m.name,K.p.groupingView.groupField),h='<li class="ui-menu-item divider" role="separator"></li>',h+='<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="grouping"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+C+" "+I.icon_group+'"></span></td><td class="menu_text">'+(-1!==n?w.ungrouping:w.grouping+" "+b)+"</td></tr></table></a></li>",j.push(h)),!v.freeze||K.p.subGrid||K.p.treeGrid||K.p.cellEdit||(a=!m.frozen||!K.p.frozenColumns,h='<li class="ui-menu-item divider" role="separator"></li>',h+='<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="freeze"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+C+" "+I.icon_freeze+'"></span></td><td class="menu_text">'+(a?w.freeze+" "+b:w.unfreeze)+"</td></tr></table></a></li>",j.push(h)),K.p.colMenuCustom)K.p.colMenuCustom.hasOwnProperty(s)&&(l=K.p.colMenuCustom[s],$e.jgrid.isFunction(K.p.colMenuBeforeProcess)&&K.p.colMenuBeforeProcess.call(K,{module:"custom",action:l,column:l.colname}),$e(K).triggerHandler("jqGridcolMenuBeforeProcess",[{module:"custom",action:l,column:l.colname}]),d=l.exclude.split(","),d=$e.map(d,function(e){return $e.jgrid.trim(e)}),l.colname===_||"_all_"===l.colname&&-1===$e.inArray(_,d))&&(d=l.items.length?"submenu":l.id,f='<li class="ui-menu-item divider" role="separator"></li>',h='<li class="ui-menu-item" role="presentation"><a id="'+l.id+'" class="g-menu-item" tabindex="0" role="menuitem" data-value="'+d+'"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+C+" "+l.icon+'"></span></td><td class="menu_text">'+l.title+"</td></tr></table></a></li>","last"===l.position?(l.separator&&j.push(f),j.push(h)):"first"===l.position&&(l.separator&&j.unshift(f),j.unshift(h)));j.unshift('<ul id="column_menu" role="menu" tabindex="0">'),j.push("</ul>"),$e("#gbox_"+K.p.id).append(j.join("")),$e("#column_menu").addClass("ui-search-menu modal-content column-menu jqgrid-column-menu ui-menu "+g.shadow+"  "+I.menu_widget).css({left:c,top:u}),"ltr"===K.p.direction&&(b=$e("#column_menu").width()+26,$e("#column_menu").css("left",c-b+"px")),$e("#column_menu > li > a").hover(function(){var e,t;$e("#col_menu").remove(),$e("#search_menu").remove(),"columns"===$e(this).attr("data-value")&&(e=$e(this).parent().width()+8,t=$e(this).parent().position().top-5,ge(t,e,$e(this).parent(),v)),"filtering"===$e(this).attr("data-value")&&(e=$e(this).parent().width()+8,t=$e(this).parent().position().top-5,he(p,t,e,$e(this).parent())),"submenu"===$e(this).attr("data-value")&&(e=$e(this).parent().width()+8,t=$e(this).parent().position().top-5,we(t,e,$e(this).parent(),$e(this).attr("id"),_)),$e(this).addClass(q)},function(){$e(this).removeClass(q)}).click(function(){var e=$e(this).attr("data-value"),t=K.grid.headers[p].el;"sortasc"===e||"sortdesc"===e?($e.jgrid.isFunction(K.p.colMenuBeforeProcess)&&K.p.colMenuBeforeProcess.call(K,{module:"sorting",action:"sortasc"===e?"asc":"desc",column:m.name}),pe("jqgh_"+K.p.id+"_"+m.name,p,!0,"sortasc"===e?"asc":"desc",t)):"grouping"===e?me(p,n):"freeze"===e&&ve(p,a),"grouping"!==e&&"freeze"!==e||$e(this).remove(),K.p.colMenuCustom.hasOwnProperty(e)&&(t=K.p.colMenuCustom[e],$e.jgrid.isFunction(t.funcname))&&(t.funcname.call(K,_),t.closeOnRun)&&$e(this).remove()}),parseFloat($e("#column_menu").css("left"))<0&&$e("#column_menu").css("left",$e(K).css("left")),!0===K.p.menubar&&$e("#"+K.p.id+"_menubar").hide(),e.stopPropagation()}}else K.p.viewsortcols[2]||(t=!0,i=o.attr("sort")),$e.jgrid.isNull(r)||pe($e("div",this)[0].id,r,t,i,this),void 0!==K.p.selHeadInd&&$e(y.headers[K.p.selHeadInd].el).attr("tabindex","-1"),K.p.selHeadInd=r,$e(this).attr("tabindex","0")}),r=null,jQuery._cacheCanvas=null,K.p.sortable&&$e.fn.sortable)try{$e(K).jqGrid("sortableColumns",ze)}catch(e){}K.p.footerrow&&(Me+="</tr></tbody></table>"),K.p.headerrow&&(ke+="</tr></tbody></table>"),Te+="</tr>",a=document.createElement("tbody"),$e(a).attr({role:"rowgroup"}),this.appendChild(a),$e(this).addClass(X(Y,"rowTable",!0,"ui-jqgrid-btable ui-common-table")).append(Te),K.p.altRows&&$e(this).addClass(X(Y,"stripedTable",!0,""));var m,x,Le,Ee,Te=null,We=$e("<table "+X(Y,"headerTable",!1,"ui-jqgrid-htable ui-common-table")+" style='width:"+K.p.tblwidth+"px' role='grid' aria-labelledby='gbox_"+this.id+"'></table>").append(o),D=!(!K.p.caption||!0!==K.p.hiddengrid),t=$e("<div class='ui-jqgrid-hbox"+("rtl"===v?"-rtl":"")+"'></div>"),o=null,Ve=(y.hDiv=document.createElement("div"),y.hDiv.style.width=y.width-n+"px",y.hDiv.className=X(Y,"headerDiv",!0,"ui-jqgrid-hdiv"),$e(y.hDiv).append(t),$e(t).append(We),D&&$e(y.hDiv).hide(),K.p.pager&&("string"==typeof K.p.pager?"#"===K.p.pager.slice(0,1)&&(K.p.pager=K.p.pager.substring(1)):K.p.pager=$e(K.p.pager).attr("id"),$e("#"+$e.jgrid.jqID(K.p.pager)).css({width:y.width-n+"px"}).addClass(X(Y,"pagerBox",!0,"ui-jqgrid-pager")).appendTo(i),D&&$e("#"+$e.jgrid.jqID(K.p.pager)).hide(),de(K.p.pager,""),K.p.pager="#"+$e.jgrid.jqID(K.p.pager)),!1===K.p.cellEdit&&!0===K.p.hoverrows&&$e(K).on({mouseover:function(e){p=$e(e.target).closest("tr.jqgrow"),"ui-subgrid"!==$e(p).attr("class")&&$e(p).addClass(q)},mouseout:function(e){p=$e(e.target).closest("tr.jqgrow"),$e(p).removeClass(q)}}),$e(K).before(y.hDiv).on({click:function(e){if(c=e.target,p=$e(c,K.rows).closest("tr.jqgrow"),0===$e(p).length||-1<p[0].className.indexOf(w)||($e(c,K).closest("table.ui-jqgrid-btable").attr("id")||"").replace("_frozen","")!==K.id)return this;var t,i,r,o,n,a,s,l=$e(c).filter(":enabled").hasClass("cbox"),d=!1!==(d=$e(K).triggerHandler("jqGridBeforeSelectRow",[p[0].id,e]))&&"stop"!==d;if(!$e.jgrid.isFunction(K.p.beforeSelectRow)||!1!==(s=K.p.beforeSelectRow.call(K,p[0].id,e))&&"stop"!==s||(d=!1),l&&!1===d&&$e(e.target).prop("checked",!$e(e.target).prop("checked")),"A"!==c.tagName&&("INPUT"!==c.tagName&&"TEXTAREA"!==c.tagName&&"OPTION"!==c.tagName&&"SELECT"!==c.tagName||l||"INPUT"===c.tagName&&c.id.startsWith("jqs_"+K.p.id)))if(m=p[0].id,0<(c=$e(c).closest("tr.jqgrow>td")).length&&(x=$e.jgrid.getCellIndex(c)),!0!==K.p.cellEdit||K.p.ariaBody){if(0<c.length&&(Le=$e(c).closest("td,th").html(),$e(K).triggerHandler("jqGridCellSelect",[m,x,Le,e]),$e.jgrid.isFunction(K.p.onCellSelect))&&K.p.onCellSelect.call(K,m,x,Le,e),d)if(K.p.multimail&&K.p.multiselect){if(e.shiftKey){if(l)return s=$e(K).jqGrid("getGridParam","selrow"),t=$e(K).jqGrid("getInd",m),i=$e(K).jqGrid("getInd",s),o=r="",o=i<t?(r=s,m):(r=m,s),s=!(a=n=!1),-1<$e.inArray(m,K.p.selarrrow)&&(s=!1),$e.each($e(this).getDataIDs(),function(e,t){return(a=t===r||a)&&$e(K).jqGrid("resetSelection",t),t!==o}),s&&$e.each($e(this).getDataIDs(),function(e,t){return(n=t===r||n)&&$e(K).jqGrid("setSelection",t,!1),t!==o}),void(K.p.selrow=i<t?o:r);window.getSelection().removeAllRanges()}Xe(m,l,e,!1)}else K.p.multikey?e[K.p.multikey]?$e(K).jqGrid("setSelection",m,!0,e):K.p.multiselect&&l&&(l=$e("#jqg_"+$e.jgrid.jqID(K.p.id)+"_"+m).is(":checked"),$e("#jqg_"+$e.jgrid.jqID(K.p.id)+"_"+m)[K.p.useProp?"prop":"attr"]("checked",!l)):Xe(m,l,e,!0)}else if(K.p.multiselect&&l&&d)$e(K).jqGrid("setSelection",m,!0,e);else if(0<c.length)try{$e(K).jqGrid("editCell",p[0].rowIndex,x,!0,e)}catch(e){}},reloadGrid:function(e,t){var i;return!0===K.p.treeGrid&&(K.p.datatype=K.p.treedatatype),(t=t||{}).current&&K.grid.selectionPreserver(K),"local"===K.p.datatype?($e(K).jqGrid("resetSelection"),K.p.data.length&&(P(),ae())):K.p.treeGrid||(K.p.selrow=null,K.p.multiselect&&!K.p.preserveSelection&&(K.p.selarrrow=[],le(!1)),K.p.savedRow=[]),K.p.scroll&&ne.call(K,!0,!1),t.page&&((i=t.page)>K.p.lastpage&&(i=K.p.lastpage),K.p.page=i=i<1?1:i,K.grid.prevRowHeight?K.grid.bDiv.scrollTop=(i-1)*K.grid.prevRowHeight*K.p.rowNum:K.grid.bDiv.scrollTop=0),K.grid.prevRowHeight&&K.p.scroll&&void 0===t.page?(delete K.p.lastpage,K.grid.populateVisible()):K.grid.populate(),!0===K.p.inlineNav&&$e(K).jqGrid("showAddEditButtons"),K.p.searchCols&&!$e.isEmptyObject(K.p._results)&&(K.p._results={},$e.jgrid.searchColOnEnter(K.p.id,null)),!1},dblclick:function(e){var t;if(c=e.target,p=$e(c,K.rows).closest("tr.jqgrow"),0!==$e(p).length)return m=p[0].rowIndex,x=$e.jgrid.getCellIndex(c),t=$e(K).triggerHandler("jqGridDblClickRow",[$e(p).attr("id"),m,x,e]),!$e.jgrid.isNull(t)||$e.jgrid.isFunction(K.p.ondblClickRow)&&(t=K.p.ondblClickRow.call(K,$e(p).attr("id"),m,x,e),!$e.jgrid.isNull(t))?t:void 0},contextmenu:function(e){var t;if(c=e.target,p=$e(c,K.rows).closest("tr.jqgrow"),0!==$e(p).length)return K.p.multiselect||$e(K).jqGrid("setSelection",p[0].id,!0,e),m=p[0].rowIndex,x=$e.jgrid.getCellIndex(c),t=$e(K).triggerHandler("jqGridRightClickRow",[$e(p).attr("id"),m,x,e]),!$e.jgrid.isNull(t)||$e.jgrid.isFunction(K.p.onRightClickRow)&&(t=K.p.onRightClickRow.call(K,$e(p).attr("id"),m,x,e),!$e.jgrid.isNull(t))?t:void 0}}),y.bDiv=document.createElement("div"),R&&"auto"===String(K.p.height).toLowerCase()&&(K.p.height="100%"),$e(y.bDiv).append($e('<div style="position:relative;"></div>').append("<div></div>").append(this)).addClass("ui-jqgrid-bdiv").css({height:K.p.height+(isNaN(K.p.height)?"":"px"),width:y.width-n+"px"}).on("scroll",y.scrollGrid),$e(y.bDiv).find("table").first().css({width:K.p.tblwidth+"px"}),$e.support.tbody||2===$e("tbody",this).length&&$e("tbody",this).slice(1).remove(),K.p.multikey&&($e.jgrid.msie()?$e(y.bDiv).on("selectstart",function(){return!1}):$e(y.bDiv).on("mousedown",function(){return!1})),D&&$e(y.bDiv).hide(),C+" "+X(Y,"icon_caption_open",!0)),Ke=C+" "+X(Y,"icon_caption_close",!0),Qe=(y.cDiv=document.createElement("div"),!0===K.p.hidegrid?$e("<a role='link' class='ui-jqgrid-titlebar-close HeaderButton "+z+"' title='"+($e.jgrid.getRegional(K,"defaults.showhide",K.p.showhide)||"")+"' />").hover(function(){Qe.addClass(q)},function(){Qe.removeClass(q)}).append("<span class='ui-jqgrid-headlink "+Ve+"'></span>").css("rtl"===v?"left":"right","0px"):"");$e(y.cDiv).append(Qe).append("<span class='ui-jqgrid-title'>"+K.p.caption+"</span>").addClass("ui-jqgrid-titlebar ui-jqgrid-caption"+("rtl"===v?"-rtl":"")+" "+X(Y,"gridtitleBox",!0)),!0===K.p.menubar&&(ze='<ul id="'+K.p.id+'_menubar" class="ui-search-menu modal-content column-menu ui-menu jqgrid-caption-menu '+I.menu_widget+'" role="menubar" tabindex="0"></ul>',$e("#gbox_"+K.p.id).append(ze),$e(y.cDiv).append("<a role='link' class='ui-jqgrid-menubar menubar-"+("rtl"===v?"rtl":"ltr")+"' style=''><span class='colmenuspan "+C+" "+I.icon_toolbar_menu+"'></span></a>"),$e(".ui-jqgrid-menubar",y.cDiv).hover(function(){$e(this).addClass(q)},function(){$e(this).removeClass(q)}).on("click",function(e){e=$e(e.target).position();$e("#"+K.p.id+"_menubar").show(),"rtl"===K.p.direction&&$e("#"+K.p.id+"_menubar").css({left:e.left-$e("#"+K.p.id+"_menubar").width()-20})})),$e(y.cDiv).insertBefore(y.hDiv),K.p.toolbar[0]&&(a=X(Y,"customtoolbarBox",!0,"ui-userdata"),y.uDiv=document.createElement("div"),"top"===K.p.toolbar[1]?$e(y.uDiv).insertBefore(y.hDiv):"bottom"===K.p.toolbar[1]&&$e(y.uDiv).insertAfter(y.hDiv),"both"===K.p.toolbar[1]?(y.ubDiv=document.createElement("div"),$e(y.uDiv).addClass(a+" ui-userdata-top").attr("id","t_"+this.id).insertBefore(y.hDiv).width(y.width-n),$e(y.ubDiv).addClass(a+" ui-userdata-bottom").attr("id","tb_"+this.id).insertAfter(y.hDiv).width(y.width-n),D&&$e(y.ubDiv).hide()):$e(y.uDiv).width(y.width-n).addClass(a+" ui-userdata-top").attr("id","t_"+this.id),D)&&$e(y.uDiv).hide(),K.p.toppager&&(K.p.toppager=$e.jgrid.jqID(K.p.id)+"_toppager",y.topDiv=$e("<div id='"+K.p.toppager+"'></div>")[0],$e(y.topDiv).addClass(X(Y,"toppagerBox",!0,"ui-jqgrid-toppager")).width(y.width-n).insertBefore(y.hDiv),de(K.p.toppager,"_t"),K.p.toppager="#"+K.p.toppager),K.p.footerrow&&(y.sDiv=$e("<div class='ui-jqgrid-sdiv'></div>")[0],t=$e("<div class='ui-jqgrid-hbox"+("rtl"===v?"-rtl":"")+"'></div>"),$e(y.sDiv).append(t).width(y.width-n).insertAfter(y.hDiv),$e(t).append(Me),y.footers=$e(".ui-jqgrid-ftable",y.sDiv)[0].rows[0].cells,K.p.rownumbers&&(y.footers[0].className=X(Y,"rownumBox",!0,"jqgrid-rownum")),D)&&$e(y.sDiv).hide(),K.p.headerrow&&(y.hrDiv=$e("<div class='ui-jqgrid-hrdiv'></div>")[0],t=$e("<div class='ui-jqgrid-hbox"+("rtl"===v?"-rtl":"")+"'></div>"),$e(y.hrDiv).append(t).width(y.width-n).insertAfter(y.hDiv),$e(t).append(ke),y.hrheaders=$e(".ui-jqgrid-hrtable",y.hrDiv)[0].rows[0].cells,K.p.rownumbers&&(y.hrheaders[0].className=X(Y,"rownumBox",!0,"jqgrid-rownum")),D)&&$e(y.nDiv).hide(),t=null,K.p.caption?(Ee=K.p.datatype,!0===K.p.hidegrid&&($e(".ui-jqgrid-titlebar-close",y.cDiv).click(function(e){var t,i=$e.jgrid.isFunction(K.p.onHeaderClick),r=".ui-jqgrid-bdiv, .ui-jqgrid-hdiv, .ui-jqgrid-toppager, .ui-jqgrid-pager, .ui-jqgrid-sdiv, .ui-jqgrid-hrdiv",o=this;return!0===K.p.toolbar[0]&&("both"===K.p.toolbar[1]&&(r+=", #"+$e(y.ubDiv).attr("id")),r+=", #"+$e(y.uDiv).attr("id")),t=$e(r,"#gview_"+$e.jgrid.jqID(K.p.id)).length,"visible"===K.p.gridstate?$e(r,"#gbox_"+$e.jgrid.jqID(K.p.id)).slideUp("fast",function(){0===--t&&($e("span",o).removeClass(Ve).addClass(Ke),K.p.gridstate="hidden",$e("#gbox_"+$e.jgrid.jqID(K.p.id)).hasClass("ui-resizable")&&$e(".ui-resizable-handle","#gbox_"+$e.jgrid.jqID(K.p.id)).hide(),$e(K).triggerHandler("jqGridHeaderClick",[K.p.gridstate,e]),i)&&!D&&K.p.onHeaderClick.call(K,K.p.gridstate,e)}):"hidden"===K.p.gridstate&&$e(r,"#gbox_"+$e.jgrid.jqID(K.p.id)).slideDown("fast",function(){0===--t&&($e("span",o).removeClass(Ke).addClass(Ve),D&&(K.p.datatype=Ee,_(),D=!1),K.p.gridstate="visible",$e("#gbox_"+$e.jgrid.jqID(K.p.id)).hasClass("ui-resizable")&&$e(".ui-resizable-handle","#gbox_"+$e.jgrid.jqID(K.p.id)).show(),$e(K).triggerHandler("jqGridHeaderClick",[K.p.gridstate,e]),i)&&!D&&K.p.onHeaderClick.call(K,K.p.gridstate,e)}),!1}),D)&&(K.p.datatype="local",$e(".ui-jqgrid-titlebar-close",y.cDiv).trigger("click"))):($e(y.cDiv).hide(),K.p.toppager||$e(y.hDiv).addClass(X(K.p.styleUI+".common","cornertop",!0))),(K.p.headerrow?$e(y.hrDiv):$e(y.hDiv)).after(y.bDiv),$e(y.hDiv).mousemove(function(e){if(y.resizing)return y.dragMove(e),!1}),$e(".ui-jqgrid-labels",y.hDiv).on("selectstart",function(){return!1}),$e(document).on("mouseup.jqGrid"+K.p.id,function(){return!y.resizing||(y.dragEnd(!0),!1)}),"rtl"===K.p.direction&&$e(K).on("jqGridAfterGridComplete.setRTLPadding",function(){var e=y.bDiv.offsetWidth-y.bDiv.clientWidth;0<e&&(e+=2),$e(y.hDiv).find("div").first().hasClass("ui-jqgrid-hbox-rtl")&&$e(y.hDiv).find("div").first().css({paddingLeft:e+"px"}),y.hDiv.scrollLeft=y.bDiv.scrollLeft}),K.p.autoResizing&&$e(K).on("jqGridAfterGridComplete.setAutoSizeColumns",function(){var e=!1,t=!1;!0===K.p.frozenColumns&&(t=$e(":focus",".frozen-div").attr("id"),$e(K).jqGrid("destroyFrozenColumns"),e=!0),0<K.p.colSpanHeader.length&&$e(K).jqGrid("destroyColSpanHeader",!1),$e(K.p.colModel).each(function(e){this.autosize&&!this.hidden&&this._maxsize&&0<this._maxsize&&$e(K).jqGrid("resizeColumn",e,this._maxsize+K.p.cellLayout,!1,!1)}),$e(K).jqGrid("refreshGroupHeaders"),0<K.p.colSpanHeader.length&&$e(K).jqGrid("setColSpanHeader",K.p.colSpanHeader),e&&($e(K).jqGrid("setFrozenColumns"),t)&&setTimeout(function(){$e("#"+t,".frozen-div").trigger("focus")},10)}),K.p.searchCols&&($e(K).on("jqGridPaging.searchCols",function(){$e.isEmptyObject(K.p._results)||(K.p._results={},$e.jgrid.searchColOnEnter(K.p.id,null))}),$e(K).on("jqGridSortCol.searchCols",function(){$e.isEmptyObject(K.p._results)||(K.p._results={},$e.jgrid.searchColOnEnter(K.p.id,null))}),K.p.colMenu)&&K.p.searchColOptions.colmenu&&$e(K).jqGrid("addColSearchMenu"),K.formatCol=s,K.sortData=pe,K.updatepager=function(e,t){var i,r,o,n,a,s,l,d=K.p.pager?K.p.pager.substring(1):"",d=d?"_"+d:"",c=K.p.toppager?"_"+K.p.toppager.slice(1):"",p=parseInt(K.p.page,10)-1;p<0&&(p=0),i=(p*=parseInt(K.p.rowNum,10))+K.p.reccount,K.p.scroll&&(n=$e("tbody",K.grid.bDiv).first().find("> tr").slice(1),i>K.p.records&&(i=K.p.records),p=i-n.length,K.p.reccount=n.length,(n=n.outerHeight()||K.grid.prevRowHeight)&&(l=p*n,s=parseInt(K.p.records,10)*n,$e(K.grid.bDiv).find(">div").first().css({height:s}).children("div").first().css({height:l,display:l?"":"none"}),0===K.grid.bDiv.scrollTop)&&1<K.p.page&&(K.grid.bDiv.scrollTop=K.p.rowNum*(K.p.page-1)*n),K.grid.bDiv.scrollLeft=K.grid.hDiv.scrollLeft),s=K.p.pager||"",(s+=K.p.toppager?s?","+K.p.toppager:K.p.toppager:"")&&(l=$e.jgrid.getRegional(K,"formatter.integer"),n=J(K.p.page),a=J(K.p.lastpage),$e(".selbox",s)[this.p.useProp?"prop":"attr"]("disabled",!1),!0===K.p.pginput&&($e(".ui-pg-input",s)[$e(".ui-pg-input",s).first().is(":input")?"val":"html"](a<n?K.p.lastpage:K.p.page),o=K.p.toppager?"#sp_1"+d+",#sp_1"+c:"#sp_1"+d,$e(o).html($e.fmatter?$e.fmatter.util.NumberFormat(K.p.lastpage,l):K.p.lastpage)),K.p.viewrecords&&(0===K.p.reccount?$e(".ui-paging-info",s).html($e.jgrid.getRegional(K,"defaults.emptyrecords",K.p.emptyrecords)):(o=p+1,r=K.p.records,$e.fmatter&&(o=$e.fmatter.util.NumberFormat(o,l),i=$e.fmatter.util.NumberFormat(i,l),r=$e.fmatter.util.NumberFormat(r,l)),l=$e.jgrid.getRegional(K,"defaults.recordtext",K.p.recordtext),$e(".ui-paging-info",s).html($e.jgrid.template(l,o,i,r)))),!0===K.p.pgbuttons)&&(1===(n=n<=0?a=0:n)||0===n?($e("#first"+d+", #prev"+d).addClass(w).removeClass(q),K.p.toppager&&$e("#first_t"+c+", #prev_t"+c).addClass(w).removeClass(q)):($e("#first"+d+", #prev"+d).removeClass(w),K.p.toppager&&$e("#first_t"+c+", #prev_t"+c).removeClass(w)),n===a||0===n?($e("#next"+d+", #last"+d).addClass(w).removeClass(q),K.p.toppager&&$e("#next_t"+c+", #last_t"+c).addClass(w).removeClass(q)):($e("#next"+d+", #last"+d).removeClass(w),K.p.toppager&&$e("#next_t"+c+", #last_t"+c).removeClass(w))),!0===e&&!0===K.p.rownumbers&&$e(">td.jqgrid-rownum",K.rows).each(function(e){$e(this).html(p+1+e)}),0===K.p.reccount&&(s=K.p.emptyRecordRow?X(Y,"rowBox",!0,"jqgrow ui-row-"+K.p.direction+" not-editable-row not-editable-cell "+w):"jqgfirstrow not-editable-row not-editable-cell",l=(l=se("norecs",!1,s,{},""))+(K.p.emptyRecordRow?"<td style='text-align:center;' colspan='"+y.headers.length+"'>"+$e.jgrid.getRegional(K,"defaults.emptyrecords",K.p.emptyrecords)+"</td>":"<td style='height:0.1px;visibility:hidden;' colspan='"+y.headers.length+"'>&nbsp;</td>")+"</tr>",$e(y.bDiv).find("table").first().append(l)),t&&K.p.jqgdnd&&$e(K).jqGrid("gridDnD","updateDnD"),$e(K).triggerHandler("jqGridGridComplete"),$e.jgrid.isFunction(K.p.gridComplete)&&K.p.gridComplete.call(K),$e(K).triggerHandler("jqGridAfterGridComplete")},K.refreshIndex=ae,K.setHeadCheckBox=le,K.constructTr=se,K.formatter=function(e,t,i,r,o){return A(e,t,i,r,o)},$e.extend(y,{populate:_,emptyRows:ne,beginReq:E,endReq:j}),this.grid=y,K.addXmlData=function(e){T(e)},K.addJSONData=function(e){H(e)},K.addLocalData=function(e){return L(e)},K.addIndexedDBData=function(e){return U(e)},K.treeGrid_beforeRequest=function(){K.p.treeGrid&&K.p.treeGrid_bigData&&void 0!==K.p.postData.nodeid&&"string"==typeof K.p.postData.nodeid&&(""!==K.p.postData.nodeid||0<parseInt(K.p.postData.nodeid,10))&&(K.p.postData.rows=1e4,K.p.postData.page=1,K.p.treeGrid_rootParams.otherData.nodeid=K.p.postData.nodeid)},K.treeGrid_afterLoadComplete=function(){K.p.treeGrid&&K.p.treeGrid_bigData&&(void 0!==K.p.treeGrid_rootParams.otherData.nodeid&&"string"==typeof K.p.treeGrid_rootParams.otherData.nodeid&&(""!==K.p.treeGrid_rootParams.otherData.nodeid||0<parseInt(K.p.treeGrid_rootParams.otherData.nodeid,10))?void 0===K.p.treeGrid_rootParams||$e.jgrid.isNull(K.p.treeGrid_rootParams)||(K.p.page=K.p.treeGrid_rootParams.page,K.p.lastpage=K.p.treeGrid_rootParams.lastpage,K.p.postData.rows=K.p.treeGrid_rootParams.postData.rows,K.p.postData.totalrows=K.p.treeGrid_rootParams.postData.totalrows,K.p.treeGrid_rootParams.otherData.nodeid="",K.updatepager(!1,!0)):K.p.treeGrid_rootParams={page:K.p.page,lastpage:K.p.lastpage,postData:{rows:K.p.postData.rows,totalrows:K.p.postData.totalrows},rowNum:K.p.rowNum,rowTotal:K.p.rowTotal,otherData:{nodeid:""}})},this.grid.cols=this.rows[0].cells,$e.jgrid.isFunction(K.p.onInitGrid)&&K.p.onInitGrid.call(K),$e(K).triggerHandler("jqGridInitGrid"),_(),K.p.hiddengrid=!1,K.p.responsive&&(i="onorientationchange"in window?"orientationchange":"resize",$e(window).on(i,function(){$e.jgrid.isVisible(K)&&$e(K).jqGrid("resizeGrid",500,!0,K.p.resizeHeight,!0)}))}}}function Xe(e,t,i,r){var o;!(K.p.multiselect&&K.p.multiboxonly||K.p.multimail)||t?$e(K).jqGrid("setSelection",e,r,i):K.p.multiboxonly&&K.p.multimail?($e(K).triggerHandler("jqGridSelectRow",[e,!1,i]),K.p.onSelectRow&&K.p.onSelectRow.call(K,e,!1,i)):(o=K.p.frozenColumns?K.p.id+"_frozen":"",$e(K.p.selarrrow).each(function(e,t){var i=$e(K).jqGrid("getGridRowById",t);i&&$e(i).removeClass($),$e("#jqg_"+$e.jgrid.jqID(K.p.id)+"_"+$e.jgrid.jqID(t))[K.p.useProp?"prop":"attr"]("checked",!1),o&&($e("#"+$e.jgrid.jqID(t),"#"+$e.jgrid.jqID(o)).removeClass($),$e("#jqg_"+$e.jgrid.jqID(K.p.id)+"_"+$e.jgrid.jqID(t),"#"+$e.jgrid.jqID(o))[K.p.useProp?"prop":"attr"]("checked",!1))}),K.p.selarrrow=[],$e(K).jqGrid("setSelection",e,r,i))}});var e,t=$e.jgrid.getMethod(Ye);if(t)return e=$e.makeArray(arguments).slice(1),t.apply(this,e);throw"jqGrid - No such method: "+Ye},$e.jgrid.extend({getGridParam:function(e,t){var i,r=this[0];if(r&&r.grid){if(i=r.p,"jqGrid"!==(t=void 0===t&&"string"!=typeof t?"jqGrid":t))try{i=$e(r).data(t)}catch(e){i=r.p}return e?void 0!==i[e]?i[e]:null:i}},setGridParam:function(t,i){return this.each(function(){var e;$e.jgrid.isNull(i)&&(i=!1),this.grid&&"object"==typeof t&&(!0===i?(e=$e.extend({},this.p,t),this.p=e):$e.extend(!0,this.p,t))})},getGridRowById:function(t){var i;return this.each(function(){try{i=this.rows.namedItem(t)}catch(e){i=$e(this.grid.bDiv).find("#"+$e.jgrid.jqID(t))[0]}}),i},getGridRowByIndex:function(t){var i=null;return this.each(function(){var e=this.rows.length-1;1<=t&&1<=e&&t<=e&&(i=this.rows[t])}),i},getDataIDs:function(){var e,t=[],i=0,r=0;return this.each(function(){if((e=this.rows.length)&&0<e)for(;i<e;)$e(this.rows[i]).hasClass("jqgrow")&&"norecs"!==this.rows[i].id&&(t[r]=this.rows[i].id,r++),i++}),t},setSelection:function(c,p,u,g){return this.each(function(){var e,t,i,r,o,n,a,s=this,l=$e.jgrid.getMethod("getStyleUI"),d=l(s.p.styleUI+".common","highlight",!0),l=l(s.p.styleUI+".common","disabled",!0);void 0!==c&&(g=!1!==(g=void 0===g?!0:g),p=!1!==p,t=$e(s).jqGrid("getGridRowById",c))&&t.className&&!(-1<t.className.indexOf(l))&&(!0===s.p.scrollrows&&0<=(l=$e(s).jqGrid("getGridRowById",c).rowIndex)&&(l=l,o=$e(s.grid.bDiv)[0].clientHeight,n=$e(s.grid.bDiv)[0].scrollTop,a=$e(s.rows[l]).position().top,l=s.rows[l].clientHeight,o+n<=a+l?$e(s.grid.bDiv)[0].scrollTop=a-(o+n)+l+n:a<o+n&&a<n&&($e(s.grid.bDiv)[0].scrollTop=a)),!0===s.p.frozenColumns&&(i=s.p.id+"_frozen"),!0===s.p.frozenRows&&(r=s.p.id+"_fr"),s.p.multiselect?(s.setHeadCheckBox(!1),s.p.selrow=t.id,-1===(l=$e.inArray(s.p.selrow,s.p.selarrrow))?("ui-subgrid"!==t.className&&$e(t).addClass(d).attr("aria-selected","true"),e=!0,s.p.selarrrow.push(s.p.selrow)):-1!==l&&"_sp_"===u?("ui-subgrid"!==t.className&&$e(t).addClass(d).attr("aria-selected","true"),e=!0):("ui-subgrid"!==t.className&&$e(t).removeClass(d).attr("aria-selected","false"),e=!1,s.p.selarrrow.splice(l,1),o=s.p.selarrrow[0],s.p.selrow=void 0===o?null:o),$e("#jqg_"+$e.jgrid.jqID(s.p.id)+"_"+$e.jgrid.jqID(t.id))[s.p.useProp?"prop":"attr"]("checked",e),i&&(g&&(-1===l?$e("#"+$e.jgrid.jqID(c),"#"+$e.jgrid.jqID(i)).addClass(d):$e("#"+$e.jgrid.jqID(c),"#"+$e.jgrid.jqID(i)).removeClass(d)),$e("#jqg_"+$e.jgrid.jqID(s.p.id)+"_"+$e.jgrid.jqID(c),"#"+$e.jgrid.jqID(i))[s.p.useProp?"prop":"attr"]("checked",e)),p&&($e(s).triggerHandler("jqGridSelectRow",[t.id,e,u]),s.p.onSelectRow)&&s.p.onSelectRow.call(s,t.id,e,u),$e.jgrid.isFunction(s.p.onMultiSelect)&&s.p.onMultiSelect.call(s,s.p.selarrrow)):(r&&$e("#"+$e.jgrid.jqID(s.p.selrow),"#"+$e.jgrid.jqID(r)).removeClass(d),"ui-subgrid"!==t.className&&(e=s.p.selrow!==t.id&&(g&&((n=$e(s).jqGrid("getGridRowById",s.p.selrow))&&$e(n).removeClass(d).attr({"aria-selected":"false",tabindex:"-1"}),$e(t).addClass(d).attr({"aria-selected":"true",tabindex:"0"}),i)&&($e("#"+$e.jgrid.jqID(s.p.selrow),"#"+$e.jgrid.jqID(i)).removeClass(d),$e("#"+$e.jgrid.jqID(c),"#"+$e.jgrid.jqID(i)).addClass(d)),!0),s.p.selrow=t.id,p)&&($e(s).triggerHandler("jqGridSelectRow",[t.id,e,u]),s.p.onSelectRow)&&s.p.onSelectRow.call(s,t.id,e,u)))})},resetSelection:function(a){return this.each(function(){var i,e,t,r=this,o=$e.jgrid.getMethod("getStyleUI"),n=o(r.p.styleUI+".common","highlight",!0),o=o(r.p.styleUI+".common","hover",!0);!0===r.p.frozenColumns&&(i=r.p.id+"_frozen"),void 0!==a?(t=a===r.p.selrow?r.p.selrow:a,$e("#"+$e.jgrid.jqID(r.p.id)+" tbody").first().find("tr#"+$e.jgrid.jqID(t)).removeClass(n).attr("aria-selected","false"),i&&$e("#"+$e.jgrid.jqID(t),"#"+$e.jgrid.jqID(i)).removeClass(n),r.p.multiselect&&($e("#jqg_"+$e.jgrid.jqID(r.p.id)+"_"+$e.jgrid.jqID(t),"#"+$e.jgrid.jqID(r.p.id))[r.p.useProp?"prop":"attr"]("checked",!1),i&&$e("#jqg_"+$e.jgrid.jqID(r.p.id)+"_"+$e.jgrid.jqID(t),"#"+$e.jgrid.jqID(i))[r.p.useProp?"prop":"attr"]("checked",!1),r.setHeadCheckBox(!1),-1!==(e=$e.inArray($e.jgrid.jqID(t),r.p.selarrrow)))&&r.p.selarrrow.splice(e,1),r.p.onUnSelectRow&&r.p.onUnSelectRow.call(r,t),t=null):r.p.multiselect?($e(r.p.selarrrow).each(function(e,t){$e($e(r).jqGrid("getGridRowById",t)).removeClass(n).attr("aria-selected","false"),$e("#jqg_"+$e.jgrid.jqID(r.p.id)+"_"+$e.jgrid.jqID(t))[r.p.useProp?"prop":"attr"]("checked",!1),i&&($e("#"+$e.jgrid.jqID(t),"#"+$e.jgrid.jqID(i)).removeClass(n),$e("#jqg_"+$e.jgrid.jqID(r.p.id)+"_"+$e.jgrid.jqID(t),"#"+$e.jgrid.jqID(i))[r.p.useProp?"prop":"attr"]("checked",!1)),r.p.onUnSelectRow&&r.p.onUnSelectRow.call(r,t)}),r.setHeadCheckBox(!1),r.p.selarrrow=[],r.p.selrow=null):r.p.selrow&&($e("#"+$e.jgrid.jqID(r.p.id)+" tbody").first().find("tr#"+$e.jgrid.jqID(r.p.selrow)).removeClass(n).attr("aria-selected","false"),i&&$e("#"+$e.jgrid.jqID(r.p.selrow),"#"+$e.jgrid.jqID(i)).removeClass(n),r.p.onUnSelectRow&&r.p.onUnSelectRow.call(r,r.p.selrow),r.p.selrow=null),!0===r.p.cellEdit&&0<=parseInt(r.p.iCol,10)&&0<=parseInt(r.p.iRow,10)&&($e("td",r.rows[r.p.iRow]).eq(r.p.iCol).removeClass("edit-cell "+n),$e(r.rows[r.p.iRow]).removeClass("selected-row "+o)),$e.jgrid.isFunction(r.p.onMultiSelect)&&r.p.onMultiSelect.call(r,r.p.selarrrow)})},getRowData:function(e,n,a,s){var l,d,c={},p=!1,u=0;return this.each(function(){var t,i,r=this;if($e.jgrid.isNull(e))p=!0,l=[],d=r.rows.length;else{if(!(i=$e(r).jqGrid("getGridRowById",e)))return c;d=1}for(n&&!0===n&&0<r.p.data.length||(n=!1),$e.jgrid.isNull(a)&&(a=!1),$e.jgrid.isNull(s)&&(s=!1);u<d;){if(p&&(i=r.rows[u]),$e(i).hasClass("jqgrow")&&"norecs"!==i.id){if(!0===r.p.treeGrid&&!0===s&&$e(i).is(":hidden")){u++;continue}if(n?c=$e.extend({},r.p.data[r.p._index[$e.jgrid.stripPref(r.p.idPrefix,i.id)]]):$e(i).children('td[role="gridcell"]').each(function(e){if("cb"!==(t=r.p.colModel[e].name)&&"subgrid"!==t&&"rn"!==t&&"sc"!==t)if(!0===r.p.treeGrid&&t===r.p.ExpandColumn)c[t]=$e.jgrid.htmlDecode($e(this).find("span").first().html());else try{c[t]=$e.unformat.call(r,this,{rowId:i.id,colModel:r.p.colModel[e]},e)}catch(e){c[t]=$e.jgrid.htmlDecode($e(this).html())}}),!0===r.p.treeGrid&&a){var o=r.p.treeReader.level_field;a+="";try{o=parseInt(c[o],10)}catch(e){o=0}c[r.p.ExpandColumn]=a.repeat(o)+c[r.p.ExpandColumn]}p&&(l.push(c),c={})}u++}}),l||c},delRowData:function(i){var r,o,n=!1;return this.each(function(){var e,t=this;if(!(r=$e(t).jqGrid("getGridRowById",i)))return!1;i=r.id,t.p.subGrid&&(o=$e(r).next()).hasClass("ui-subgrid")&&o.remove(),$e(r).remove(),t.p.records--,t.p.reccount--,t.updatepager(!0,!1),n=!0,t.p.frozenColumns&&$e("#"+i,"#"+$e.jgrid.jqID(t.p.id+"_frozen")).remove(),t.p.multiselect&&-1!==(o=$e.inArray(i,t.p.selarrrow))&&t.p.selarrrow.splice(o,1),t.p.multiselect&&0<t.p.selarrrow.length?t.p.selrow=t.p.selarrrow[t.p.selarrrow.length-1]:t.p.selrow===i&&(t.p.selrow=null),"local"===t.p.datatype&&(e=$e.jgrid.stripPref(t.p.idPrefix,i),void 0!==(e=t.p._index[e]))&&(t.p.data.splice(e,1),t.refreshIndex())}),n},setRowData:function(d,c,p,u){var g,h=!0;return this.each(function(){if(!this.grid)return!1;var i,e,r,o=this,n={},a=$e(this).jqGrid("getGridRowById",d);if(!a)return!1;if(!0===u&&(e=$e(o).jqGrid("getRowData",d,"local"===o.p.datatype)),c){u&&(c=$e.extend(e,c));try{if($e(this.p.colModel).each(function(e){g=this.name;var t=$e.jgrid.getAccessor(c,g);void 0!==t&&(n[g]=t,i=o.formatter(d,n[g],e,c,"edit"),r=this.title?{title:$e.jgrid.stripHtml(i)}:{},(!0===o.p.treeGrid&&g===o.p.ExpandColumn?$e("td[role='gridcell']",a).eq(e).find("span[class*='cell-wrapper']"):$e("td[role='gridcell']",a).eq(e)).html(i).attr(r),o.p.frozenColumns)&&e<=o.p.frozenColCount&&$e("#"+d+" td[role='gridcell']","#"+$e.jgrid.jqID(o.p.id+"_frozen")).eq(e).html(i).attr(r)}),"local"===o.p.datatype){var t,s=$e.jgrid.stripPref(o.p.idPrefix,d),l=o.p._index[s];if(o.p.treeGrid)for(t in o.p.treeReader)o.p.treeReader.hasOwnProperty(t)&&delete n[o.p.treeReader[t]];void 0!==l&&(o.p.data[l]=$e.extend(!0,o.p.data[l],n)),n=null}}catch(e){h=!1}}h&&("string"==typeof p?$e(a).addClass(p):$e.jgrid.isNull(p)||"object"!=typeof p||$e(a).css(p),$e(o).triggerHandler("jqGridAfterGridComplete"))}),h},addRowData:function(a,s,l,d){-1===$e.inArray(l,["first","last","before","after"])&&(l="last");var c,p,u,g,h,f,m,v,w,b,j,_,y=!1,x="",D="",q="";return s&&(Array.isArray(s)?(v=!0,w=a):v=!(s=[s]),this.each(function(){var e=this,t=s.length,i=(g=!0===e.p.rownumbers?1:0,p=!0===e.p.multiselect?1:0,u=!0===e.p.subGrid?1:0,v||(void 0!==a?a=String(a):(a=$e.jgrid.randId(),!1!==e.p.keyName&&(w=e.p.keyName,void 0!==s[0][w])&&(a=s[0][w]))),0),r=$e(e).jqGrid("getStyleUI",e.p.styleUI+".base","rowBox",!0,"jqgrow ui-row-"+e.p.direction),o={},n=!!$e.jgrid.isFunction(e.p.afterInsertRow);for(g&&(x=$e(e).jqGrid("getStyleUI",e.p.styleUI+".base","rownumBox",!1,"jqgrid-rownum")),p&&(D=$e(e).jqGrid("getStyleUI",e.p.styleUI+".base","multiBox",!1,"cbox"));i<t;){if(b=s[i],c=[],v)try{void 0===(a=b[w])&&(a=$e.jgrid.randId())}catch(e){a=$e.jgrid.randId()}for(_=a,a=e.p.idPrefix+a,g&&(q=e.formatCol(0,1,"",null,a,!0),c[c.length]='<td role="gridcell" '+x+" "+q+">0</td>"),p&&(m='<input role="checkbox" type="checkbox" id="jqg_'+e.p.id+"_"+a+'" '+D+"/>",q=e.formatCol(g,1,"",null,a,!0),c[c.length]='<td role="gridcell" '+q+">"+m+"</td>"),u&&(c[c.length]=$e(e).jqGrid("addSubGridCell",p+g,1)),f=p+u+g;f<e.p.colModel.length;f++)j=e.p.colModel[f],o[j=j.name]=b[j],m=e.formatter(a,$e.jgrid.getAccessor(b,j),f,b),q=e.formatCol(f,1,m,b,a,o),c[c.length]='<td role="gridcell" '+q+">"+m+"</td>";if(c.unshift(e.constructTr(a,!1,r,o,b)),c[c.length]="</tr>",0===e.rows.length)$e(e.grid.bDiv).find("table").first().append(c.join(""));else switch(l){case"last":$e(e.rows[e.rows.length-1]).after(c.join("")),h=e.rows.length-1;break;case"first":$e(e.rows[0]).after(c.join("")),h=1;break;case"after":(h=$e(e).jqGrid("getGridRowById",d))&&($e(e.rows[h.rowIndex+1]).hasClass("ui-subgrid")?$e(e.rows[h.rowIndex+1]).after(c):$e(h).after(c.join("")),h=h.rowIndex+1);break;case"before":(h=$e(e).jqGrid("getGridRowById",d))&&($e(h).before(c.join("")),h=h.rowIndex-1)}if(!0===e.p.subGrid&&$e(e).jqGrid("addSubGrid",p+g,h),e.p.records++,e.p.reccount++,$e(e).triggerHandler("jqGridAfterInsertRow",[a,b,b]),n&&e.p.afterInsertRow.call(e,a,b,b),i++,"local"===e.p.datatype)switch(o[e.p.localReader.id]=_,l){case"first":e.p.data.unshift(o);break;case"last":e.p.data.push(o);break;case"before":case"after":e.p.data.splice(h-1,0,o)}o={},1===e.p.reccount&&(h=$e(e).jqGrid("getGridRowById","norecs"))&&h.rowIndex&&0<h.rowIndex&&$e(e.rows[h.rowIndex]).remove()}"local"===e.p.datatype&&e.refreshIndex(),e.updatepager(!0,!0),y=!0})),y},footerData:function(a,s,l,d,c){var p,u=!1,g={};function h(e){for(var t in e)if(e.hasOwnProperty(t))return;return 1}return"boolean"!=typeof l&&(l=!0),void 0===d&&(d=0),void 0===c&&(c=!0),a=(a=void 0===a?"get":a).toLowerCase(),this.each(function(){var t,i,e,r=this,o=this.p.colModel.length,n=!1;return!(!r.grid||!r.p.footerrow||"set"===a&&h(s))&&("getlength"===a?(e=$e(".ui-jqgrid-ftable tr",r.grid.sDiv).length,g=e||0,!1):(r.p.frozenColumns&&"get"!==a&&c&&($e(r).jqGrid("destroyFrozenColumns"),n=!0),u=!0,"addrow"===a&&(e=$e(".ui-jqgrid-ftable tr",r.grid.sDiv).eq(0).clone(),$e("td",e).html("&nbsp;"),$e(".ui-jqgrid-ftable",r.grid.sDiv).append(e),h(s)||(a="set",d=$e(".ui-jqgrid-stable tr",r.grid.sDiv).length-1)),"delrow"===a&&0<(d=void 0===d?$e(".ui-jqgrid-stable tr",r.grid.sDiv).length-1:d)&&$e(".ui-jqgrid-ftable tr",r.grid.sDiv).eq(d).remove(),o*=parseInt(d,10),"get"!==a&&"set"!==a||$e(this.p.colModel).each(function(e){p=this.name,"set"===a?void 0!==s[p]&&(t=l?r.formatter("",s[p],e,s,"edit"):s[p],i=this.title?{title:$e.jgrid.stripHtml(t)}:{},$e("tr.footrow td",r.grid.sDiv).eq(e+o).html(t).attr(i),u=!0):"get"===a&&(g[p]=l?$e.unformat.call(r,$e("tr.footrow td",r.grid.sDiv).eq(e+o),{colModel:r.p.colModel[e]},e):$e("tr.footrow td",r.grid.sDiv).eq(e+o).html())}),"remove"===a&&($e(r.grid.sDiv).remove(),r.grid.sDiv=null,r.p.footerrow=!1),void(n&&$e(r).jqGrid("setFrozenColumns"))))}),"get"===a||"getlength"===a?g:u},headerData:function(a,s,l,d,c){var p,u=!1,g={};function h(e){for(var t in e)if(e.hasOwnProperty(t))return;return 1}return"boolean"!=typeof l&&(l=!0),void 0===d&&(d=0),void 0===c&&(c=!0),a=(a=void 0===a?"get":a).toLowerCase(),this.each(function(){var t,i,e,r=this,o=this.p.colModel.length,n=!1;return!(!r.grid||!r.p.headerrow||"set"===a&&h(s))&&("getlength"===a?(e=$e(".ui-jqgrid-hrtable tr",r.grid.hrDiv).length,g=e||0,!0):(r.p.frozenColumns&&"get"!==a&&c&&($e(r).jqGrid("destroyFrozenColumns"),n=!0),u=!0,"addrow"===a&&(e=$e(".ui-jqgrid-hrtable tr",r.grid.hrDiv).eq(0).clone(),$e("td",e).html("&nbsp;"),$e(".ui-jqgrid-hrtable",r.grid.hrDiv).append(e),h(s)||(a="set",d=$e(".ui-jqgrid-hrtable tr",r.grid.hrDiv).length-1)),"delrow"===a&&0<(d=void 0===d?$e(".ui-jqgrid-hrtable tr",r.grid.hrDiv).length-1:d)&&$e(".ui-jqgrid-hrtable tr",r.grid.hrDiv).eq(d).remove(),o*=parseInt(d,10),"get"!==a&&"set"!==a||$e(this.p.colModel).each(function(e){p=this.name,"set"===a?void 0!==s[p]&&(t=l?r.formatter("",s[p],e,s,"edit"):s[p],i=this.title?{title:$e.jgrid.stripHtml(t)}:{},$e("tr.hrheadrow td",r.grid.hrDiv).eq(e+o).html(t).attr(i),u=!0):"get"===a&&(g[p]=l?$e.unformat.call(r,$e("tr.hrheadrow td",r.grid.hrDiv).eq(e+o),{colModel:r.p.colModel[e]},e):$e("tr.hrheadrow td",r.grid.hrDiv).eq(e+o).html())}),"remove"===a&&($e(r.grid.hrDiv).remove(),r.grid.hrDiv=null,r.p.headerrow=!1),void(n&&$e(r).jqGrid("setFrozenColumns"))))}),"get"===a||"getlength"===a?g:u},showHideCol:function(d,c){return this.each(function(){var t,i=this,r=!1,o=$e.jgrid.cell_width?0:i.p.cellLayout,e=!1;if(i.grid){"string"==typeof d&&(d=[d]);var n=""===(c="none"!==c?"":"none"),a=null,s=$e(i).jqGrid("isGroupHeaderOn");if(i.p.frozenColumns&&($e(i).jqGrid("destroyFrozenColumns"),e=!0),s&&($e(i).jqGrid("destroyGroupHeader",!1),a=$e.extend([],i.p.groupHeader),i.p.groupHeader=null),i.p.colSpanHeader.length&&$e(i).jqGrid("destroyColSpanHeader",!1),$e(this.p.colModel).each(function(e){-1!==$e.inArray(this.name,d)&&this.hidden===n&&($e("tr[role=row]",i.grid.hDiv).each(function(){$e(this.cells[e]).css("display",c)}),$e(i.rows).each(function(){$e(this).hasClass("jqgroup")||$e(this.cells[e]).css("display",c)}),i.p.footerrow&&$e("tr.footrow td",i.grid.sDiv).eq(e).css("display",c),i.p.headerrow&&$e("tr.hrheadrow td",i.grid.hrDiv).eq(e).css("display",c),t=parseInt(this.width,10),"none"===c?i.p.tblwidth-=t+o:i.p.tblwidth+=t+o,this.hidden=!n,r=!0,$e(i).triggerHandler("jqGridShowHideCol",[n,this.name,e]))}),!0===r&&(!0!==i.p.shrinkToFit||isNaN(i.p.height)||(i.p.tblwidth+=parseInt(i.p.scrollOffset,10)),$e(i).jqGrid("setGridWidth",!0===i.p.shrinkToFit?i.p.tblwidth-(isNaN(i.p.height)?0:parseInt(i.p.scrollOffset,10)):i.p.width)),s&&a)for(var l=0;l<a.length;l++)$e(i).jqGrid("setGroupHeaders",a[l]);i.p.colSpanHeader.length&&$e(i).jqGrid("setColSpanHeader",i.p.colSpanHeader),e&&$e(i).jqGrid("setFrozenColumns")}})},hideCol:function(e){return this.each(function(){$e(this).jqGrid("showHideCol",e,"none")})},showCol:function(e){return this.each(function(){$e(this).jqGrid("showHideCol",e,"")})},hideSearchCol:function(t){return this.each(function(){try{var e=this.p._avc.indexOf(t);-1<e&&(this.p._avc.splice(e,1),this.p._fthc.push(t),$e(this).jqGrid("showHideCol",t,"none"))}catch(e){}})},showSearchCol:function(t){return this.each(function(){try{var e=this.p._fthc.indexOf(t);-1<e&&(this.p._fthc.splice(e,1),this.p._avc.push(t),$e(this).jqGrid("showHideCol",t,""))}catch(e){}})},remapColumns:function(r,e,t){function i(t){var i=t.length?$e.makeArray(t):$e.extend({},t);$e.each(r,function(e){t[e]=i[this]})}var o=this.get(0);function n(e,t){$e(">tr"+(t||""),e).each(function(){var t=this,i=$e.makeArray(t.cells);$e.each(r,function(){var e=i[this];e&&t.appendChild(e)})})}i(o.p.colModel),i(o.p.colNames),i(o.grid.headers),n($e(o.grid.hDiv).find("thead").first(),t&&":not(.ui-jqgrid-labels)"),e&&n($e("#"+$e.jgrid.jqID(o.p.id)+" tbody").first(),".jqgfirstrow, tr.jqgrow, tr.jqfoot, tr.jqgroup"),o.p.footerrow&&n($e(o.grid.sDiv).find("tbody").first()),o.p.headerrow&&n($e(o.grid.hrDiv).find("tbody").first()),o.p.remapColumns&&(o.p.remapColumns.length?i(o.p.remapColumns):o.p.remapColumns=$e.makeArray(r)),o.p.lastsort=$e.inArray(o.p.lastsort,r),o.p.treeGrid&&(o.p.expColInd=$e.inArray(o.p.expColInd,r)),$e(o).triggerHandler("jqGridRemapColumns",[r,e,t])},setGridWidth:function(v,w,b){return this.each(function(){if(this.grid){var e,t,i=this,r=!1,o=0,n=$e.jgrid.cell_width?0:i.p.cellLayout,a=0,s=!1,l=i.p.scrollOffset,d=0,c=-1!==i.p.styleUI.search("Bootstrap")?2:0;if("boolean"!=typeof w&&(w=i.p.shrinkToFit),"boolean"!=typeof b&&(b=!0),!isNaN(v)&&!((v=parseInt(v,10))<i.p.minGridWidth||v>i.p.maxGridWidth)){if(i.grid.width=i.p.width=v,$e("#gbox_"+$e.jgrid.jqID(i.p.id)).css("width",v+"px"),$e("#gview_"+$e.jgrid.jqID(i.p.id)).css("width",v+"px"),$e(i.grid.bDiv).css("width",v-c+"px"),$e(i.grid.hDiv).css("width",v-c+"px"),i.p.pager&&$e(i.p.pager).css("width",v-c+"px"),i.p.toppager&&$e(i.p.toppager).css("width",v-c+"px"),!0===i.p.toolbar[0]&&($e(i.grid.uDiv).css("width",v-c+"px"),"both"===i.p.toolbar[1])&&$e(i.grid.ubDiv).css("width",v-c+"px"),i.p.footerrow&&$e(i.grid.sDiv).css("width",v-c+"px"),i.p.headerrow&&$e(i.grid.hrDiv).css("width",v-c+"px"),(e=$e(i).jqGrid("isGroupHeaderOn"))&&$e(i).jqGrid("destroyGroupHeader",!1),i.p.frozenColumns&&b&&($e(i).jqGrid("destroyFrozenColumns"),r=!0),!1===w&&!0===i.p.forceFit&&(i.p.forceFit=!1),!0===w){if($e.each(i.p.colModel,function(){!1===this.hidden&&(h=this.widthOrg,o+=h+n,this.fixed?d+=h+n:a++)}),0===a)return;i.p.tblwidth=o;var p=v-n*a-d,u=$e("#norecs","#"+$e.jgrid.jqID(i.p.id)).eq(0),g=(isNaN(i.p.height)||($e(i.grid.bDiv)[0].clientHeight<=$e(i.grid.bDiv)[0].scrollHeight||i.rows.length===u.length+1||"scroll"===$e(i.grid.bDiv).css("overflow-y"))&&(s=!0,p-=l),(o=0)<i.grid.cols.length);if($e.each(i.p.colModel,function(e){!1!==this.hidden||this.fixed||(h=this.widthOrg,(h=Math.round(p*h/(i.p.tblwidth-n*a-d)))<0)||(this.width=h,o+=h,i.grid.headers[e].width=h,i.grid.headers[e].el.style.width=h+"px",i.p.footerrow&&(i.grid.footers[e].style.width=h+"px"),i.p.headerrow&&(i.grid.hrheaders[e].style.width=h+"px"),g&&(i.grid.cols[e].style.width=h+"px"),t=e)}),!t)return;u=0,s?v-d-(o+n*a)!==l&&(u=v-d-(o+n*a)-l):0!==Math.abs(v-d-(o+n*a))&&(u=v-d-(o+n*a)-c),i.p.colModel[t].width+=u,i.p.tblwidth=o+u+n*a+d,i.p.tblwidth>v?(s=i.p.tblwidth-parseInt(v,10),i.p.tblwidth=v,h=i.p.colModel[t].width=i.p.colModel[t].width-s):i.p.tblwidth===v?(h=i.p.colModel[t].width=i.p.colModel[t].width-c,i.p.tblwidth=v-c):h=i.p.colModel[t].width;var l=$e(i.grid.bDiv)[0].scrollWidth>$e(i.grid.bDiv).width()&&0!=c?-1:0,h=i.p.colModel[t].width+=l;i.grid.headers[t].width=h,i.grid.headers[t].el.style.width=h+"px",g&&(i.grid.cols[t].style.width=h+"px"),i.p.footerrow&&(i.grid.footers[t].style.width=h+"px"),i.p.headerrow&&(i.grid.hrheaders[t].style.width=h+"px")}if($e(i.grid.bDiv).find("table").first().css("width",i.p.tblwidth+"px"),$e(i.grid.hDiv).find("table").first().css("width",i.p.tblwidth+"px"),i.grid.hDiv.scrollLeft=i.grid.bDiv.scrollLeft,i.p.footerrow&&$e(i.grid.sDiv).find("table").first().css("width",i.p.tblwidth+"px"),i.p.headerrow&&$e(i.grid.hrDiv).find("table").first().css("width",i.p.tblwidth+"px"),e){var f=$e.extend([],i.p.groupHeader);i.p.groupHeader=null;for(var m=0;m<f.length;m++)$e(i).jqGrid("setGroupHeaders",f[m]);i.grid.hDiv.scrollLeft=i.grid.bDiv.scrollLeft}r&&$e(i).jqGrid("setFrozenColumns")}}})},setGridHeight:function(o,n,a){return this.each(function(){var e,t,i,r=this;r.grid&&(e=$e(r.grid.bDiv),t=$e(r.grid.hDiv).outerHeight(),"boolean"!=typeof a&&(a=!0),!(i=!1)===(n="boolean"!=typeof n?!1:n)&&(r.p.pager&&(t+=$e(r.p.pager).outerHeight()),r.p.toppager&&(t+=$e(r.p.toppager).outerHeight()),!0===r.p.toolbar[0]&&(t+=$e(r.grid.uDiv).outerHeight(),"both"===r.p.toolbar[1])&&(t+=$e(r.grid.ubDiv).outerHeight()),r.p.footerrow&&(t+=$e(r.grid.sDiv).outerHeight()),r.p.headerrow&&(t+=$e(r.grid.hrDiv).outerHeight()),r.p.caption&&(t+=$e(r.grid.cDiv).outerHeight()),t<o)&&(o-=t),r.p.frozenColumns&&a&&($e(r).jqGrid("destroyFrozenColumns"),i=!0),e.css({height:o+(isNaN(o)?"":"px")}),r.p.height=o,i&&$e(r).jqGrid("setFrozenColumns"),r.p.scroll)&&r.grid.populateVisible()})},maxGridHeight:function(r,o,n){return this.each(function(){var e,t,i=this;i.grid&&(void 0===n&&(n=25),e=$e(i.grid.bDiv),"set"!==r||isNaN(o)?"remove"===r&&(t=["100%","auto"].includes(i.p.height)&&$e(i.grid.bDiv).height()<$e(i).height(),e.css("max-height",""),t)&&$e("#"+$e.jgrid.jqID(i.p.id)).jqGrid("setGridWidth",i.p.width-i.p.scrollOffset+2,!1,!1):(o=parseFloat(o))>parseFloat(n)&&(e.css("max-height",o),["100%","auto"].includes(i.p.height))&&$e(i.grid.bDiv).height()<$e(i).height()&&$e("#"+$e.jgrid.jqID(i.p.id)).jqGrid("setGridWidth",i.p.width+i.p.scrollOffset-2,!1,!1))})},setCaption:function(t){return this.each(function(){var e=$e(this).jqGrid("getStyleUI",this.p.styleUI+".common","cornertop",!0);this.p.caption=t,$e(".ui-jqgrid-title, .ui-jqgrid-title-rtl",this.grid.cDiv).html(t),$e(this.grid.cDiv).show(),$e(this.grid.hDiv).removeClass(e)})},setLabel:function(n,a,s,l){return this.each(function(){var e=this,t=-1;if(e.grid&&!$e.jgrid.isNull(n)&&0<=(t=isNaN(n)?$e.jgrid.getElemByAttrVal(e.p.colModel,"name",n,!0):parseInt(n,10))){var i=$e("tr.ui-jqgrid-labels th",e.grid.hDiv).eq(t);if(a){var r=$e(".s-ico",i),o=$e(".colmenu",i);try{$e("[id^=jqgh_]",i).empty().html(a).append(r).append(o)}catch(e){}e.p.colNames[t]=a,e.p.frozenColumns&&(i=$e("tr.ui-jqgrid-labels th",e.grid.fhDiv).eq(t),r=$e(".s-ico",i),$e("[id^=jqgh_]",i).empty().html(a).append(r))}s&&("string"==typeof s?$e(i).addClass(s):$e(i).css(s)),"object"==typeof l&&$e(i).attr(l);o=e.p.colModel[t];o.autosize_headers&&(r=$e.jgrid.getFont(i[0]),o.canvas_width=$e.jgrid.getTextWidth($e("div",i)[0].outerText,r)+(o.colmenu?$e.jgrid.floatNum($e(".colmenuspan",i).parent().width()):0)+$e.jgrid.floatNum($e("div",i).css("padding-left"))+$e.jgrid.floatNum($e("div",i).css("padding-right"))+$e.jgrid.floatNum($e(".ui-jqgrid-resize",i).width()))}})},setSortIcon:function(s,l){return this.each(function(){var e,t,i,r=this,o=-1,n=1;if(r.grid){$e.jgrid.isNull(l)?n=r.p.colNames.length:o=isNaN(l)?$e.jgrid.getElemByAttrVal(r.p.colModel,"name",l,!0):parseInt(l,10);for(var a=0;a<n;a++)0<=o&&(a=o),"cb"!==(e=r.p.colModel[a].name)&&"subgrid"!==e&&"rn"!==e&&"sc"===e&&(e=$e("tr.ui-jqgrid-labels th",r.grid.hDiv).eq(a),t=r.p.colNames[a],i=e.find(".s-ico"),"left"===s?e.find("div.ui-th-div").first().empty().addClass("ui-icon-left").append(i).append(t):"right"===s&&e.find("div.ui-th-div").first().empty().removeClass("ui-icon-left").append(t).append(i),r.p.frozenColumns)&&(e=$e("tr.ui-jqgrid-labels th",r.grid.fhDiv).eq(a),t=r.p.colNames[a],i=e.find(".s-ico"),"left"===s?e.find("div.ui-th-div").first().empty().addClass("ui-icon-left").append(i).append(t):"right"===s&&e.find("div.ui-th-div").first().empty().removeClass("ui-icon-left").append(t).append(i))}})},setCell:function(a,s,l,d,c,p){return this.each(function(){var e=this,t=-1;if(e.grid&&0<=(t=isNaN(s)?$e.jgrid.getElemByAttrVal(e.p.colModel,"name",s,!0):parseInt(s,10))&&(r=$e(e).jqGrid("getGridRowById",a))){var i,r,o={},n=e.p.colModel[t];try{i=r.cells[t]}catch(e){}i&&(""===l&&!0!==p||((o=$e(e).jqGrid("getRowData",a,"local"===e.p.datatype))[n.name]=l,r=e.formatter(a,l,t,o,"edit"),o=n.title?{title:$e.jgrid.stripHtml(r)}:{},(e.p.treeGrid&&e.p.ExpandColumn===n.name?$e("span",$e(i)):$e(i)).html(r).attr(o),"local"===e.p.datatype&&void 0!==(r=e.p._index[$e.jgrid.stripPref(e.p.idPrefix,a)])&&(e.p.data[r][n.name]=l)),"string"==typeof d?$e(i).addClass(d):d&&$e(i).css(d),"object"==typeof c&&$e(i).attr(c),e.p.frozenColumns)&&t<=e.p.frozenColCount&&(o=$e(i).clone(),$e("#"+a+" td","#"+$e.jgrid.jqID(e.p.id+"_frozen")).eq(t).replaceWith(o))}})},getCell:function(r,o,n){var a,s=!1;return"boolean"!=typeof n&&(n=!1),this.each(function(){var e,t=this,i=-1;if(t.grid&&0<=(i=isNaN(o)?$e.jgrid.getElemByAttrVal(t.p.colModel,"name",o,!0):parseInt(o,10))&&(e=$e(t).jqGrid("getGridRowById",r)))if(a=$e("td",e).eq(i),n)s=a;else{try{s=$e.unformat.call(t,a,{rowId:e.id,colModel:t.p.colModel[i]},i)}catch(e){s=$e.jgrid.htmlDecode(a.html())}t.p.treeGrid&&s&&t.p.ExpandColumn===o&&(s=$e("<div>"+s+"</div>").find("span").first().html())}}),s},getCol:function(a,s,l){var d,c,p,u,g=[],h=0,f=("boolean"!=typeof s&&(s=!1),void 0===l&&(l=!1),$e.jgrid.getFont(this[0]));return this.each(function(){var t=this,i=-1,e=t.p.colModel;if(t.grid&&0<=(i=isNaN(a)?$e.jgrid.getElemByAttrVal(t.p.colModel,"name",a,!0):parseInt(a,10))){var r=t.rows.length,o=0,n=0;if(r&&0<r){for(;o<r;o++)if($e(t.rows[o]).hasClass("jqgrow")&&"norecs"!==t.rows[o].id)if("maxwidth"===l)void 0===p&&(p=e[i].autosize_headers?e[i].canvas_width:0),p=Math.max($e.jgrid.getTextWidth(t.rows[o].cells[i].outerText,f),p);else{try{d=$e.unformat.call(t,$e(t.rows[o].cells[i]),{rowId:t.rows[o].id,colModel:t.p.colModel[i]},i)}catch(e){d=$e.jgrid.htmlDecode(t.rows[o].cells[i].innerHTML)}l?(u=$e.jgrid.floatNum(d),h+=u,void 0===p&&(p=c=u),c=Math.min(c,u),p=Math.max(p,u),n++):s?g.push({id:t.rows[o].id,value:d}):g.push(d)}if(l)switch(l.toLowerCase()){case"sum":g=h;break;case"avg":g=h/n;break;case"count":g=n;break;case"min":g=c;break;case"max":case"maxwidth":g=p}}}}),g},clearGridData:function(i,r){return this.each(function(){var e,t=this;t.grid&&("boolean"!=typeof i&&(i=!1),"boolean"!=typeof r&&(r=!1),t.p.deepempty?$e("#"+$e.jgrid.jqID(t.p.id)+" tbody").first().find("tr").slice(1).remove():(e=$e("#"+$e.jgrid.jqID(t.p.id)+" tbody").first().find("tr").first()[0],$e("#"+$e.jgrid.jqID(t.p.id)+" tbody").first().empty().append(e)),t.p.footerrow&&i&&$e(".ui-jqgrid-ftable td",t.grid.sDiv).html("&#160;"),t.p.headerrow&&r&&$e(".ui-jqgrid-hrtable td",t.grid.hrDiv).html("&#160;"),t.p.selrow=null,t.p.selarrrow=[],t.p.savedRow=[],t.p.records=0,t.p.page=1,t.p.lastpage=0,t.p.reccount=0,t.p.data=[],t.p._index={},t.p.groupingView._locgr=!1,t.updatepager(!0,!1))})},getInd:function(e,t){var i,r=!1;return this.each(function(){(i=$e(this).jqGrid("getGridRowById",e))&&(r=!0===t?i:i.rowIndex)}),r},bindKeys:function(e){var l=$e.extend({onEnter:null,onSpace:null,onLeftKey:null,onRightKey:null,onSelectRow:!0,scrollingRows:!0},e||{});return this.each(function(){var s=this;$e("body").is("[role]")||$e("body").attr("role","application"),s.p.scrollrows=l.scrollingRows,$e(s).on("keydown",function(e){var t,i,r=$e(s).find("tr[tabindex=0]")[0],o=s.p.treeReader.expanded_field;if(r){var n=s.p.selrow,a=s.p._index[$e.jgrid.stripPref(s.p.idPrefix,r.id)];if(37===e.keyCode||38===e.keyCode||39===e.keyCode||40===e.keyCode){if(38===e.keyCode){if(t="",(i=r.previousSibling)&&$e(i).hasClass("jqgrow")){if($e(i).is(":hidden")){for(;i;)if(i=i.previousSibling,!$e(i).is(":hidden")&&$e(i).hasClass("jqgrow")){t=i.id;break}}else t=i.id;$e(s).jqGrid("setSelection",t,l.onSelectRow,e)}$e(s).triggerHandler("jqGridKeyUp",[t,n,e]),$e.jgrid.isFunction(l.onUpKey)&&l.onUpKey.call(s,t,n,e),e.preventDefault()}if(40===e.keyCode){if(t="",(i=r.nextSibling)&&$e(i).hasClass("jqgrow")){if($e(i).is(":hidden")){for(;i;)if(i=i.nextSibling,!$e(i).is(":hidden")&&$e(i).hasClass("jqgrow")){t=i.id;break}}else t=i.id;$e(s).jqGrid("setSelection",t,l.onSelectRow,e)}$e(s).triggerHandler("jqGridKeyDown",[t,n,e]),$e.jgrid.isFunction(l.onDownKey)&&l.onDownKey.call(s,t,n,e),e.preventDefault()}37===e.keyCode&&(s.p.treeGrid&&s.p.data[a][o]&&$e(r).find("div.treeclick").trigger("click"),$e(s).triggerHandler("jqGridKeyLeft",[s.p.selrow,e]),$e.jgrid.isFunction(l.onLeftKey))&&l.onLeftKey.call(s,s.p.selrow,e),39===e.keyCode&&(s.p.treeGrid&&!s.p.data[a][o]&&$e(r).find("div.treeclick").trigger("click"),$e(s).triggerHandler("jqGridKeyRight",[s.p.selrow,e]),$e.jgrid.isFunction(l.onRightKey))&&l.onRightKey.call(s,s.p.selrow,e)}else 13===e.keyCode?(e.preventDefault(),$e(s).triggerHandler("jqGridKeyEnter",[s.p.selrow,e]),$e.jgrid.isFunction(l.onEnter)&&l.onEnter.call(s,s.p.selrow,e)):32===e.keyCode&&($e(s).triggerHandler("jqGridKeySpace",[s.p.selrow,e]),$e.jgrid.isFunction(l.onSpace))&&l.onSpace.call(s,s.p.selrow,e)}}).on("click",function(e){$e(e.target).is("input, textarea, select")||$e(e.target,s.rows).closest("tr.jqgrow").focus()})})},unbindKeys:function(){return this.each(function(){$e(this).off("keydown")})},getLocalRow:function(e){var t,i=!1;return this.each(function(){void 0!==e&&0<=(t=this.p._index[$e.jgrid.stripPref(this.p.idPrefix,e)])&&(i=this.p.data[t])}),i},progressBar:function(o){return o=$e.extend({htmlcontent:"",method:"hide",loadtype:"disable"},o||{}),this.each(function(){var e,t="show"===o.method,i=$e("#load_"+$e.jgrid.jqID(this.p.id)),r=$e(window).scrollTop();switch(""!==o.htmlcontent&&i.html(o.htmlcontent),o.loadtype){case"disable":break;case"enable":i.toggle(t);break;case"block":$e("#lui_"+$e.jgrid.jqID(this.p.id)).css(t?{top:0,left:0,height:$e("#gbox_"+$e.jgrid.jqID(this.p.id)).height(),width:$e("#gbox_"+$e.jgrid.jqID(this.p.id)).width(),"z-index":1e4,position:"absolute"}:{}).toggle(t),i.toggle(t)}i.is(":visible")&&(e=i.offsetParent(),i.css("top",""),i.offset().top<r)&&(r=Math.min(10+r-e.offset().top,e.height()-i.height()),i.css("top",r+"px"))})},getColProp:function(e){var t=this[0];return!!t.grid&&$e.jgrid.getElemByAttrVal(t.p.colModel,"name",e,!1)},setColProp:function(t,i){return this.each(function(){var e;this.grid&&$e.isPlainObject(i)&&0<=(e=$e.jgrid.getElemByAttrVal(this.p.colModel,"name",t,!0))&&$e.extend(!0,this.p.colModel[e],i)})},sortGrid:function(n,a,s){return this.each(function(){var e,t,i=this,r=-1,o=!1;if(i.grid){for(n=n||i.p.sortname,e=0;e<i.p.colModel.length;e++)if(i.p.colModel[e].index===n||i.p.colModel[e].name===n){r=e,!0===i.p.frozenColumns&&!0===i.p.colModel[e].frozen&&(o=i.grid.fhDiv.find("#"+i.p.id+"_"+n));break}-1!==r&&(t=i.p.colModel[r].sortable,o=o||i.grid.headers[r].el,"boolean"!=typeof a&&(a=!1),t="boolean"!=typeof t||t)&&i.sortData("jqgh_"+i.p.id+"_"+n,r,a,s,o)}})},setGridState:function(r){return this.each(function(){var e,t,i;this.grid&&(t=$e(e=this).jqGrid("getStyleUI",this.p.styleUI+".base","icon_caption_open",!0),i=$e(this).jqGrid("getStyleUI",this.p.styleUI+".base","icon_caption_close",!0),"hidden"===r?($e(".ui-jqgrid-bdiv, .ui-jqgrid-hdiv","#gview_"+$e.jgrid.jqID(e.p.id)).slideUp("fast"),e.p.pager&&$e(e.p.pager).slideUp("fast"),e.p.toppager&&$e(e.p.toppager).slideUp("fast"),!0===e.p.toolbar[0]&&("both"===e.p.toolbar[1]&&$e(e.grid.ubDiv).slideUp("fast"),$e(e.grid.uDiv).slideUp("fast")),e.p.footerrow&&$e(".ui-jqgrid-sdiv","#gbox_"+$e.jgrid.jqID(e.p.id)).slideUp("fast"),e.p.headerrow&&$e(".ui-jqgrid-hrdiv","#gbox_"+$e.jgrid.jqID(e.p.id)).slideUp("fast"),$e(".ui-jqgrid-headlink",e.grid.cDiv).removeClass(t).addClass(i),e.p.gridstate="hidden"):"visible"===r&&($e(".ui-jqgrid-hdiv, .ui-jqgrid-bdiv","#gview_"+$e.jgrid.jqID(e.p.id)).slideDown("fast"),e.p.pager&&$e(e.p.pager).slideDown("fast"),e.p.toppager&&$e(e.p.toppager).slideDown("fast"),!0===e.p.toolbar[0]&&("both"===e.p.toolbar[1]&&$e(e.grid.ubDiv).slideDown("fast"),$e(e.grid.uDiv).slideDown("fast")),e.p.footerrow&&$e(".ui-jqgrid-sdiv","#gbox_"+$e.jgrid.jqID(e.p.id)).slideDown("fast"),e.p.headerrow&&$e(".ui-jqgrid-hrdiv","#gbox_"+$e.jgrid.jqID(e.p.id)).slideDown("fast"),$e(".ui-jqgrid-headlink",e.grid.cDiv).removeClass(i).addClass(t),e.p.gridstate="visible"))})},setFrozenColumns:function(){return this.each(function(){if(this.grid){var e,t,i,r,o,n,a,s=this,l=s.p.colModel,d=0,c=l.length,p=$e(s).jqGrid("getStyleUI",s.p.styleUI+".base","headerDiv",!0,"ui-jqgrid-hdiv"),u=$e(s).jqGrid("getStyleUI",s.p.styleUI+".common","hover",!0),g="border-box"===$e("#gbox_"+$e.jgrid.jqID(s.p.id)).css("box-sizing")?1:0;if(!0!==s.p.subGrid&&!0!==s.p.treeGrid&&!0!==s.p.cellEdit&&!s.p.scroll&&!s.p.frozenColumns){for(s.p.frozenColCount=-1;d<c&&!0===l[d].frozen;)s.p.frozenColCount=d,d++;0<=s.p.frozenColCount&&(n=$e(".ui-jqgrid-hdiv","#gview_"+$e.jgrid.jqID(s.p.id)).height(),e=$e(".ui-jqgrid-bdiv","#gview_"+$e.jgrid.jqID(s.p.id)).position(),t=$e(".ui-jqgrid-hdiv","#gview_"+$e.jgrid.jqID(s.p.id)).position(),s.grid.fhDiv=$e('<div style="position:absolute;'+("rtl"===s.p.direction?"right:0px;":"left:0px;")+"top:"+t.top+"px;height:"+(n-g)+'px;" class="frozen-div '+p+'"></div>'),s.grid.fbDiv=$e('<div style="position:absolute;'+("rtl"===s.p.direction?"right:0px;":"left:0px;")+"top:"+e.top+'px;overflow-y:hidden" class="frozen-bdiv ui-jqgrid-bdiv"></div>'),$e("#gview_"+$e.jgrid.jqID(s.p.id)).append(s.grid.fhDiv),t=$e(".ui-jqgrid-htable","#gview_"+$e.jgrid.jqID(s.p.id)).clone(!0),$e(t).width(1),$e(s.grid.fhDiv).append(t),$e(s).jqGrid("isGroupHeaderOn")?($e("tr.jqg-third-row-header",s.grid.hDiv).height(),$e("tr.jqg-first-row-header, tr.jqg-third-row-header",t).each(function(){$e("th",this).slice(s.p.frozenColCount+1).remove()}),r=i=-1,$e("tr.jqg-second-row-header th",t).each(function(){if(o=parseInt($e(this).attr("colspan"),10),parseInt($e(this).attr("rowspan"),10)&&(i++,r++),o&&(i+=o,r++),i===s.p.frozenColCount)return r=s.p.frozenColCount,!1}),i!==s.p.frozenColCount&&(r=s.p.frozenColCount),$e("tr.jqg-second-row-header",t).each(function(){$e("th",this).slice(r+1).remove()}),n=$e("tr.jqg-second-row-header th",t).filter(function(){return"none"!==$e(this).css("display")}).first(),"object"===$e.jgrid.type(n)&&n.length&&"hidden"!==n.css("visibility")&&""===$e.jgrid.trim(n[0].outerText)&&n.html("&nbsp;"),n=$e("tr.jqg-third-row-header th",t).filter(function(){return"none"!==$e(this).css("display")}).first(),"object"===$e.jgrid.type(n)&&n.length&&"hidden"!==n.css("visibility")&&""===$e.jgrid.trim(n[0].outerText)&&$e("div",n).prepend("&nbsp;")):(a=[],$e("#gview_"+$e.jgrid.jqID(s.p.id)+" .ui-jqgrid-htable > thead >tr").each(function(e,t){a.push(parseInt($e(this).height(),10))}),$e("thead >tr",t).each(function(){$e("th",this).slice(s.p.frozenColCount+1).remove()}),$e("thead >tr",t).each(function(e){0===e&&--a[e],$e(this).height(a[e])})),$e.jgrid.msie()||$e(t).css("height","100%"),$e(s.grid.fhDiv).mousemove(function(e){if(s.grid.resizing)return s.grid.dragMove(e),!1}),s.p.sortable&&$e.fn.sortable&&$e(s.grid.fhDiv).find("tr.ui-jqgrid-labels th").addClass("sortable-disabled"),s.p.headerrow&&(s.grid.fhrDiv=$e('<div style="position:absolute;'+("rtl"===s.p.direction?"right:0px;":"left:0px;")+'top:0px;" class="frozen-hrdiv ui-jqgrid-hrdiv "></div>'),$e("#gview_"+$e.jgrid.jqID(s.p.id)).append(s.grid.fhrDiv)),s.p.footerrow&&(s.grid.fsDiv=$e('<div style="position:absolute;'+("rtl"===s.p.direction?"right:0px;":"left:0px;")+'top:0px;" class="frozen-sdiv ui-jqgrid-sdiv"></div>'),$e("#gview_"+$e.jgrid.jqID(s.p.id)).append(s.grid.fsDiv)),$e("#gview_"+$e.jgrid.jqID(s.p.id)).append(s.grid.fbDiv),$e(s.grid.fbDiv).on("mousewheel DOMMouseScroll",function(e){s.grid.bDiv.scrollTop+="mousewheel"===e.type?-e.originalEvent.wheelDelta/10:6*e.originalEvent.detail}),!0===s.p.hoverrows&&$e("#"+$e.jgrid.jqID(s.p.id)).off("mouseover mouseout"),$e(s).on("jqGridAfterGridComplete.setFrozenColumns",function(){$e("#"+$e.jgrid.jqID(s.p.id)+"_frozen").remove(),$e(s.grid.fbDiv).height($e(s.grid.bDiv)[0].clientHeight);var e,r=[],t=($e("#"+$e.jgrid.jqID(s.p.id)+" tr[role=row].jqgrow").each(function(){r.push($e(this).height())}),$e("#"+$e.jgrid.jqID(s.p.id)).clone(!0));$e("tr[role=row]",t).each(function(){$e("td[role=gridcell]",this).slice(s.p.frozenColCount+1).remove()}),$e(t).width(1).attr("id",s.p.id+"_frozen"),$e(s.grid.fbDiv).append(t),$e("tr[role=row].jqgrow",t).each(function(e,t){var i;$e(this).height(r[e]),.3<=Math.abs($e(this).height()-r[e])&&(i=$e("td:visible",this).first()).height(r[e]-Math.round(parseFloat(i.css("border-bottom-width"))))}),s.rows[1]&&"norecs"===s.rows[1].id&&$e("#norecs td",t).html(""),$e(s.grid.fbDiv)[0].scrollTop=$e(s.grid.bDiv)[0].scrollTop,!0===s.p.hoverrows&&($e("tr.jqgrow",t).hover(function(){$e(this).addClass(u),$e("#"+$e.jgrid.jqID(this.id),"#"+$e.jgrid.jqID(s.p.id)).addClass(u)},function(){$e(this).removeClass(u),$e("#"+$e.jgrid.jqID(this.id),"#"+$e.jgrid.jqID(s.p.id)).removeClass(u)}),$e("tr.jqgrow","#"+$e.jgrid.jqID(s.p.id)).hover(function(){$e(this).addClass(u),$e("#"+$e.jgrid.jqID(this.id),"#"+$e.jgrid.jqID(s.p.id)+"_frozen").addClass(u)},function(){$e(this).removeClass(u),$e("#"+$e.jgrid.jqID(this.id),"#"+$e.jgrid.jqID(s.p.id)+"_frozen").removeClass(u)})),s.p.headerrow&&(t=$e(s.grid.hrDiv).position(),$e("table",s.grid.fhrDiv).remove(),e=$e(".ui-jqgrid-hrtable","#gview_"+$e.jgrid.jqID(s.p.id)).clone(!0),$e("tr",e).each(function(){$e("td",this).slice(s.p.frozenColCount+1).remove()}),$e(e).width(1),$e(s.grid.fhrDiv).css("top",t.top+"px").append(e)),s.p.footerrow&&(t=$e(s.grid.sDiv).position(),$e("table",s.grid.fsDiv).remove(),e=$e(".ui-jqgrid-ftable","#gview_"+$e.jgrid.jqID(s.p.id)).clone(!0),$e("tr",e).each(function(){$e("td",this).slice(s.p.frozenColCount+1).remove()}),$e(e).width(1),$e(s.grid.fsDiv).css("top",t.top+"px").append(e))}),s.grid.hDiv.loading||$e(s).triggerHandler("jqGridAfterGridComplete.setFrozenColumns"),s.p.frozenColumns=!0,$e(s).triggerHandler("onFrozenColumnsCall"))}}})},destroyFrozenColumns:function(){return this.each(function(){var e,t,i;this.grid&&!0===this.p.frozenColumns&&(t=$e(e=this).jqGrid("getStyleUI",e.p.styleUI+".common","hover",!0),$e(e.grid.fhDiv).remove(),$e(e.grid.fbDiv).remove(),e.grid.fhDiv=null,e.grid.fbDiv=null,e.p.footerrow&&($e(e.grid.fsDiv).remove(),e.grid.fsDiv=null),e.p.headerrow&&($e(e.grid.fhrDiv).remove(),e.grid.fhrDiv=null),$e(this).off(".setFrozenColumns"),!0===e.p.hoverrows&&$e("#"+$e.jgrid.jqID(e.p.id)).on({mouseover:function(e){i=$e(e.target).closest("tr.jqgrow"),"ui-subgrid"!==$e(i).attr("class")&&$e(i).addClass(t)},mouseout:function(e){i=$e(e.target).closest("tr.jqgrow"),$e(i).removeClass(t)}}),this.p.frozenColumns=!1,this.p.frozenColCount=-1)})},resizeColumn:function(a,s,l,d){return this.each(function(){var e,t,i=this.grid,r=this.p,o=r.colModel,n=o.length;if("boolean"!=typeof l&&(l=!1),"boolean"!=typeof d&&(d=!0),"string"==typeof a){for(e=0;e<n;e++)if(o[e].name===a){a=e;break}}else a=parseInt(a,10);if((o[a].resizable||l)&&!o[a].hidden&&(s=parseFloat(s),!("number"!=typeof a||a<0||a>o.length-1||"number"!=typeof s))){if(s<r.minColWidth&&(s=r.minColWidth),r.forceFit)for(r.nv=0,e=a+1;e<n;e++)if(!0!==o[e].hidden){r.nv=e-a;break}if(i.resizing={idx:a},t=s-i.headers[a].width,r.forceFit){if(i.headers[a+r.nv].width-t<r.minColWidth)return;i.headers[a+r.nv].newWidth=i.headers[a+r.nv].width-t}i.newWidth=r.tblwidth+t,i.headers[a].newWidth=s,i.dragEnd(!1,d)}})},getStyleUI:function(e,t,i,r){var o="",n="";try{var a=e.split(".");switch(i||(o="class=",n='"'),$e.jgrid.isNull(r)&&(r=""),a.length){case 1:o+=n+$e.jgrid.trim(r+" "+$e.jgrid.styleUI[a[0]][t]+n);break;case 2:o+=n+$e.jgrid.trim(r+" "+$e.jgrid.styleUI[a[0]][a[1]][t]+n)}}catch(e){o=""}return o},resizeGrid:function(e,d,c,p){return this.each(function(){var s=this,l=!1;void 0===e&&(e=500),"boolean"!=typeof d&&(d=!0),"boolean"!=typeof c&&(c=!0),"boolean"!=typeof p&&(p=!0),setTimeout(function(){try{var e,t,i,r,o,n,a;s.p.frozenColumns&&p&&($e("#"+$e.jgrid.jqID(s.p.id)).jqGrid("destroyFrozenColumns"),l=!0),d&&(e=$e(window).width(),t=$e("#gbox_"+$e.jgrid.jqID(s.p.id)).parent().width(),i=s.p.width,i=3<e-t?t:e,$e(s.grid.bDiv).css("max-height")&&["100%","auto"].includes(s.p.height)&&$e(s.grid.bDiv).height()<$e(s).height()?$e("#"+$e.jgrid.jqID(s.p.id)).jqGrid("setGridWidth",i+s.p.scrollOffset-2,!1,!1):$e("#"+$e.jgrid.jqID(s.p.id)).jqGrid("setGridWidth",i,s.p.shrinkToFit,!1)),"auto"!==s.p.height&&"100%"!==s.p.height&&c&&(a=s.p.height,r=-1===s.p.styleUI.search("Bootstrap")||isNaN(s.p.height)?0:2,a=3<(o=$e(window).height())-(n=$e("#gbox_"+$e.jgrid.jqID(s.p.id)).parent().height())?n:o,$e("#"+$e.jgrid.jqID(s.p.id)).jqGrid("setGridHeight",a-r,!0,!1)),s.p.frozenRows&&$e(s).trigger("jqGridAfterGridComplete.setFrozenRows"),l&&$e("#"+$e.jgrid.jqID(s.p.id)).jqGrid("setFrozenColumns")}catch(e){}},e)})},colMenuAdd:function(e,t){var i=this[0].p.styleUI,i=$e.jgrid.styleUI[i].colmenu;return t=$e.extend({title:"Item",icon:i.icon_new_item,funcname:null,position:"last",closeOnRun:!0,exclude:"",id:null,items:[]},t||{}),this.each(function(){t.colname="all"===e?"_all_":e;t.id=$e.jgrid.isNull(t.id,!0)?$e.jgrid.randId():t.id,this.p.colMenuCustom[t.id]=t})},colMenuDelete:function(e){return this.each(function(){this.p.colMenuCustom.hasOwnProperty(e)&&delete this.p.colMenuCustom[e]})},menubarAdd:function(o){var i,n,e=this[0].p.styleUI,a=$e.jgrid.styleUI[e].common;return this.each(function(){var r=this;if(Array.isArray(o))for(var e=0;e<o.length;e++){(i=o[e]).id||(i.id=$e.jgrid.randId());var t="";i.icon&&(t='<span class="'+a.icon_base+" "+i.icon+'"></span>'),i.position||(i.position="last"),i.closeoncall||(i.closeoncall=!0),i.divider?(n='<li class="ui-menu-item divider" role="separator"></li>',i.cick=null):n='<li class="ui-menu-item" role="presentation"><a id="'+i.id+'" class="g-menu-item" tabindex="0" role="menuitem" ><table class="ui-common-table"><tr><td class="menu_icon">'+t+'</td><td class="menu_text">'+i.title+"</td></tr></table></a></li>","last"===i.position?$e("#"+this.p.id+"_menubar").append(n):$e("#"+this.p.id+"_menubar").prepend(n)}$e("li a","#"+this.p.id+"_menubar").each(function(e,i){$e(o).each(function(e,t){if(t.id===i.id&&$e.jgrid.isFunction(t.click))return $e(i).on("click",function(e){t.click.call(r,e)}),!1}),$e(this).hover(function(e){$e(this).addClass(a.hover),e.stopPropagation()},function(e){$e(this).removeClass(a.hover)})})})},menubarDelete:function(e){return this.each(function(){$e("#"+e,"#"+this.p.id+"_menubar").remove()})},addColSearchMenu:function(){return this.each(function(){var e=this;$e(e).colMenuAdd("sc",{title:"Reset",position:"first",id:"reset",funcname:function(){$e("input[id^='jqs_']","#"+this.p.id).each(function(e){$e(this).val("")}),$e(this)[0].p._results={},$e(this).jqGrid("showCol",this.p._avc)}}),$e(e).colMenuAdd("sc",{separator:!0,id:"groupOp"}),$e(e).colMenuAdd("sc",{separator:!0,id:"operOp"}),$e(e).colMenuAdd("sc",{separator:!0,id:"close",funcname:function(){return!0}}),$e(e).on("jqGridcolMenuBeforeProcess.custom",function(e,t){if("custom"===t.module&&"sc"===t.column){var i,r,o,n=$e.jgrid.getRegional(this,"search"),a=this.p.searchColOptions,s=$e.jgrid.getMethod("getStyleUI"),l=this.p.styleUI+".base";if("reset"===t.action.id&&(t.action.title=n.Reset||"Reset",t.action.icon=s(this.p.styleUI+".colmenu","icon_reset",!0,"")),"close"===t.action.id&&(t.action.title=n.Close||"Close",t.action.icon=s(this.p.styleUI+".colmenu","icon_close",!0,"")),"groupOp"===t.action.id){for(i=s(l,"searchSelect",!1,"search-col-input"),t.action.title=""+(n.Operand||"Operand: "),t.action.title+="<select data-grid-id="+this.p.id+' id="opselect"  '+i+">",i=s(this.p.styleUI+".colmenu","icon_group_op",!0,""),t.action.icon=i,r=0;r<n.groupOps.length;r++)o=a.searchOp===n.groupOps[r].op?"selected":"",t.action.title+='<option value="'+n.groupOps[r].op+'" '+o+">"+n.groupOps[r].text+"</option>";t.action.title+="</select>",setTimeout(function(){$e("#opselect").on("change",function(){var e=$e("#"+$e(this).attr("data-grid-id"))[0];e.p.searchColOptions.searchOp=$e(this).val(),$e.jgrid.myfunc(e.p.id)})},200)}if("operOp"===t.action.id){for(i=s(l,"searchSelect",!1,"search-col-input"),t.action.title=n.Operation||"Oper : ",t.action.title+="<select data-grid-id="+this.p.id+' id="selectoper"  '+i+">",i=s(this.p.styleUI+".colmenu","icon_oper_op",!0,""),t.action.icon=i,r=0;r<n.odata.length;r++)o=a.operand===n.odata[r].oper?"selected":"",a.aOperands.includes(n.odata[r].oper)&&(t.action.title+='<option value="'+n.odata[r].oper+'" '+o+">"+n.odata[r].text+"</option>");t.action.title+="</select>",setTimeout(function(){$e("#selectoper").on("change",function(){var e=$e("#"+$e(this).attr("data-grid-id"))[0];e.p.searchColOptions.operand=$e(this).val(),$e.jgrid.myfunc(e.p.id)})},200)}}})})},disableColMenu:function(e){return this.each(function(){$e(this.grid.hDiv).find("tr #jqgh_"+this.p.id+"_"+e+" > .colmenu").css("display","none")})},enableColMenu:function(e){return this.each(function(){$e(this.grid.hDiv).find("tr #jqgh_"+this.p.id+"_"+e+" > .colmenu").css("display","inline")})}})});js/minified/jqModal.js000064400000005135151676727230010715 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)}(function(a){"use strict";a.fn.jqm=function(e){var t={overlay:50,closeoverlay:!0,overlayClass:"jqmOverlay",closeClass:"jqmClose",trigger:".jqModal",ajax:u,ajaxText:"",target:u,modal:u,toTop:u,onShow:u,onHide:u,onLoad:u};return this.each(function(){if(this._jqm)return c[this._jqm].c=a.extend({},c[this._jqm].c,e);o++,this._jqm=o,c[o]={c:a.extend(t,a.jqm.params,e),a:u,w:a(this).addClass("jqmID"+o),s:o},t.trigger&&a(this).jqmAddTrigger(t.trigger)})},a.fn.jqmAddClose=function(e){return i(this,e,"jqmHide")},a.fn.jqmAddTrigger=function(e){return i(this,e,"jqmShow")},a.fn.jqmShow=function(e){return this.each(function(){a.jqm.open(this._jqm,e)})},a.fn.jqmHide=function(e){return this.each(function(){a.jqm.close(this._jqm,e)})},a.jqm={hash:{},open:function(e,t){var o=c[e],n=o.c,i="."+n.closeClass,s=0<(s=parseInt(o.w.css("z-index")))?s:3e3,r=a("<div></div>").css({height:"100%",width:"100%",position:"fixed",left:0,top:0,"z-index":s-1,opacity:n.overlay/100});return o.a||(o.t=t,o.a=!0,o.w.css("z-index",s),n.modal?(d[0]||setTimeout(function(){new f("bind")},1),d.push(e)):0<n.overlay?n.closeoverlay&&o.w.jqmAddClose(r):r=u,o.o=r?r.addClass(n.overlayClass).prependTo("body"):u,n.ajax?(s=n.target||o.w,e=n.ajax,s="string"==typeof s?a(s,o.w):a(s),e="@"===e.substr(0,1)?a(t).attr(e.substring(1)):e,s.html(n.ajaxText).load(e,function(){n.onLoad&&n.onLoad.call(this,o),i&&o.w.jqmAddClose(a(i,o.w)),h(o)})):i&&o.w.jqmAddClose(a(i,o.w)),n.toTop&&o.o&&o.w.before('<span id="jqmP'+o.w[0]._jqm+'"></span>').insertAfter(o.o),n.onShow?n.onShow(o):o.w.show(),h(o)),u},close:function(e){e=c[e];return e.a&&(e.a=u,d[0]&&(d.pop(),d[0]||new f("unbind")),e.c.toTop&&e.o&&a("#jqmP"+e.w[0]._jqm).after(e.w).remove(),e.c.onHide?e.c.onHide(e):(e.w.hide(),e.o&&e.o.remove())),u},params:{}};var o=0,c=a.jqm.hash,d=[],u=!1,h=function(e){void 0===e.c.focusField&&(e.c.focusField=0),0<=e.c.focusField&&t(e)},t=function(e){try{a(":input:visible",e.w)[parseInt(e.c.focusField,10)].focus()}catch(e){}},f=function(e){a(document)[e]("keypress",n)[e]("keydown",n)[e]("mousedown",n)},n=function(o){var e=c[d[d.length-1]],n=!a(o.target).parents(".jqmID"+e.s)[0];return n&&a(".jqmID"+e.s).each(function(){var e=a(this),t=e.offset();if(t.top<=o.pageY&&o.pageY<=t.top+e.height()&&t.left<=o.pageX&&o.pageX<=t.left+e.width())return n=!1}),!n},i=function(e,t,o){return e.each(function(){var e=this._jqm;a(t).each(function(){this[o]||(this[o]=[],a(this).click(function(){for(var e in{jqmShow:1,jqmHide:1})for(var t in this[e])c[this[e][t]]&&c[this[e][t]].w[e](this);return u})),this[o].push(e)})})}});js/minified/grid.aria.js000064400000032704151676727230011170 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","./grid.base"],e):e(jQuery)}(function(b){"use strict";b.extend(b.jgrid,{focusableElementsList:[">a[href]",">button:not([disabled])",">area[href]",">input:not([disabled])",">select:not([disabled])",">textarea:not([disabled])",">iframe",">object",">embed",">*[tabindex]",">*[contenteditable]"]}),b.jgrid.extend({ariaBodyGrid:function(e){var f=b.extend({onEnterCell:null,onKeyCheck:null,customCellAction:null},e||{});return this.each(function(){var n=this,t=b.jgrid.getMethod("getStyleUI"),a=t(n.p.styleUI+".common","highlight",!0);function l(e,i){return!isNaN(e)&&!isNaN(i)&&0<=e&&0<=i&&n.rows.length&&e<n.rows.length&&i<n.p.colModel.length}function r(e,i){var t,i=n.p.iRow+i,r=n.p.iCol+e,o=n.rows.length,e=0!==e;return!!o&&(t=n.p.colModel.length,e&&(r<0&&2<=i&&(r=t-1,i--),t<=r)&&(r=0,i++),e||(i<1?(r--,n.rows[i=o-1]&&0<=r&&!n.rows[i].cells[r]&&i--):(o<=i||!n.rows[i].cells[r])&&(i=1,r++)),l(i,r)?{row:i,col:r}:!!l(n.p.iRow,n.p.iCol)&&{row:n.p.iRow,col:n.p.iCol})}function o(e,i){var t=r(e,i);if(!t)return!1;for(;b(n.rows[t.row].cells[t.col]).is(":hidden");)if(n.p.iRow=t.row,n.p.iCol=t.col,t=r(e,i),n.p.iRow===t.row&&n.p.iCol===t.col)return!1;return 0!==i&&b(n).jqGrid("setSelection",n.rows[t.row].id,!1,null,!1),t}function s(e){var i=n.p.page,t=n.p.lastpage;n.p.page!==(i=t<(i=(i+=e)<=0?1:i)?t:i)&&(n.p.page=i,n.grid.populate())}var i=b.jgrid.focusableElementsList.join(),d=(b(n).removeAttr("tabindex"),b(n).on("jqGridAfterGridComplete.setAriaGrid",function(e){b("tbody",n).first().find(">tr:not(.jqgfirstrow)>td:not(:hidden, :has("+i+"))").attr("tabindex",-1),b("tbody",n).first().find(">tr:not(.jqgfirstrow)").removeAttr("tabindex"),void 0!==n.p.iRow&&void 0!==n.p.iCol&&n.rows[n.p.iRow]&&b(n.rows[n.p.iRow].cells[n.p.iCol]).attr("tabindex",0).focus(function(){b(this).addClass(a)}).blur(function(){b(this).removeClass(a)})}),n.p.iRow=1,n.p.iCol=b.jgrid.getFirstVisibleCol(n),0),c=0,p=!!b.jgrid.isFunction(f.customCellAction)&&f.customCellAction,u=!!b.jgrid.isFunction(f.onKeyCheck)&&f.onKeyCheck;b(n).on("keydown",function(e){if((!n.p.navigationDisabled||!0!==n.p.navigationDisabled)&&!e.target.id.startsWith("jqs_"+n.p.id)&&(!u||u.call(n,n.rows[n.p.iRow].id,n.p.iRow,n.p.iCol,e))){var i;switch(e.which||e.keyCode){case 38:i=o(0,-1),d=i.row,c=i.col,e.preventDefault();break;case 40:i=o(0,1),d=i.row,c=i.col,e.preventDefault();break;case 37:i=o(-1,0),d=i.row,c=i.col,e.preventDefault();break;case 39:i=o(1,0),d=i.row,c=i.col,e.preventDefault();break;case 36:d=e.ctrlKey?1:n.p.iRow,c=0,e.preventDefault();break;case 35:d=e.ctrlKey?n.rows.length-1:n.p.iRow,c=n.p.colModel.length-1,e.preventDefault();break;case 33:s(-1),c=n.p.iCol,d=n.p.iRow,e.preventDefault();break;case 34:s(1),c=n.p.iCol,(d=n.p.iRow)>n.rows.length-1&&(d=n.rows.length-1,n.p.iRow=n.rows.length-1),e.preventDefault();break;case 13:return void(b.jgrid.isFunction(f.onEnterCell)&&(f.onEnterCell.call(n,n.rows[n.p.iRow].id,n.p.iRow,n.p.iCol,e),e.preventDefault()));case 113:try{b(n).jqGrid("editCell",n.p.iRow,n.p.iCol,!0,e)}catch(e){}break;default:return void(p&&p.call(n,n.rows[n.p.iRow].id,n.p.iRow,n.p.iCol,e))}setTimeout(function(){b(n).jqGrid("focusBodyCell",d,c,t,a)},50)}}),b(n).on("jqGridBeforeSelectRow.ariaGridClick",function(){return!1}),b(n).on("jqGridCellSelect.ariaGridClick",function(e,i,t,r,o){var l,o=o.target;0<n.p.iRow&&0<=n.p.iCol&&b(n.rows[n.p.iRow].cells[n.p.iCol]).attr("tabindex",-1),(b(o).is("td")||b(o).is("th")||o.id.startsWith("jqs_"+n.p.id))&&(n.p.iCol=o.cellIndex,l=b(o).closest("tr.jqgrow"),n.p.iRow=l[0].rowIndex,b(o).attr("tabindex",0).addClass(a).focus().blur(function(){b(this).removeClass(a)}))}),n.p.ariaBody=!0})},excelLikeGrid:function(e){var C=b.extend({beforeDeleteCell:null,customCellAction:null,customUndoFunction:null,specialChars:["~","!","@","#","$","%","^","&","*","(",")","_","+","{","}",":",'"',"|","<",">","?",",",".","/",";","\\","[","]"],addonChars:!1,onKeyCheck:null},e||{});return this.each(function(){var n=this,a=b.jgrid.getMethod("getStyleUI"),s=a(n.p.styleUI+".common","highlight",!0),d=(n.p.F2key=!1,{isValidCell:function(e,i){return!isNaN(e)&&!isNaN(i)&&0<=e&&0<=i&&n.rows.length&&e<n.rows.length&&i<n.p.colModel.length},getNextCell:function(e,i){var i=n.p.iRow+i,t=n.p.iCol+e,r=n.rows.length,e=0!==e,o=n.p.frozenColumns?n.p.frozenColCount+1:0;return!!r&&(r=n.p.colModel.length,e&&(t=t<o?o:t)===r&&(t=r),e||n.rows[i]&&0<=t&&!n.rows[i].cells[t]&&i--,this.isValidCell(i,t)?{row:i,col:t}:!!this.isValidCell(n.p.iRow,n.p.iCol)&&{row:n.p.iRow,col:n.p.iCol})},getNextVisibleCell:function(e,i){var t=this.getNextCell(e,i);if(!t)return!1;for(;b(n.rows[t.row].cells[t.col]).is(":hidden");)if(n.p.iRow=t.row,n.p.iCol=t.col,t=this.getNextCell(e,i),n.p.iRow===t.row&&n.p.iCol===t.col)return!1;return 0!==i&&b(n).jqGrid("setSelection",n.rows[t.row].id,!1,null,!1),t},movePage:function(e){var i=n.p.page,t=n.p.lastpage;n.p.page!==(i=t<(i=(i+=e)<=0?1:i)?t:i)&&(n.p.page=i,n.grid.populate())}}),i=b.jgrid.focusableElementsList.join(),c=(b(n).removeAttr("tabindex"),b(n).on("jqGridAfterGridComplete.setAriaGrid",function(e){b("tbody",n).first().find(">tr:not(.jqgfirstrow)>td:not(:hidden, :has("+i+"))").attr("tabindex",-1),b("tbody",n).first().find(">tr:not(.jqgfirstrow)").removeAttr("tabindex"),void 0!==n.p.iRow&&void 0!==n.p.iCol&&n.rows[n.p.iRow]&&b(n.rows[n.p.iRow].cells[n.p.iCol]).attr("tabindex",0).focus(function(){b(this).addClass(s)}).blur(function(){b(this).removeClass(s)})}),n.p.iRow=1,n.p.iCol=b.jgrid.getFirstVisibleCol(n),n.p.ariaBody=!0,0),p=0,u=!!b.jgrid.isFunction(C.customCellAction)&&C.customCellAction,f=!!b.jgrid.isFunction(C.beforeDeleteCell)&&C.beforeDeleteCell,h=new Set(C.specialChars),w=!1,g=(n.addEventListener("paste",function(e){w&&(e=(e.clipboardData||window.clipboardData).getData("text"),b(n).jqGrid("saveCell",n.p.iRow,n.p.iCol,e),w=!1)}),!!b.jgrid.isFunction(C.onKeyCheck)&&C.onKeyCheck);b(n).on("keydown",function(e){if((!n.p.navigationDisabled||!0!==n.p.navigationDisabled)&&!e.target.id.startsWith("jqs_"+n.p.id)&&(!g||g.call(n,n.rows[n.p.iRow].id,n.p.iRow,n.p.iCol,e,d))){var i=e.which||e.keyCode,t=e.ctrlKey||17===i;switch(i){case 38:r=d.getNextVisibleCell(0,-1),c=r.row,p=r.col,e.preventDefault();break;case 40:case 13:r=d.getNextVisibleCell(0,1),c=r.row,p=r.col,e.preventDefault();break;case 37:r=d.getNextVisibleCell(-1,0),c=r.row,p=r.col,e.preventDefault();break;case 39:r=d.getNextVisibleCell(1,0),c=r.row,p=r.col,e.preventDefault();break;case 36:c=e.ctrlKey?1:n.p.iRow,p=n.p.frozenColumns?n.p.frozenColCount+1:0,e.preventDefault();break;case 35:c=e.ctrlKey?n.rows.length-1:n.p.iRow,p=n.p.colModel.length-1,e.preventDefault();break;case 33:d.movePage(-1),p=n.p.iCol,c=n.p.iRow,e.preventDefault();break;case 34:d.movePage(1),p=n.p.iCol,(c=n.p.iRow)>n.rows.length-1&&(c=n.rows.length-1,n.p.iRow=n.rows.length-1),e.preventDefault();break;case 9:r=e.shiftKey?d.getNextVisibleCell(-1,0):d.getNextVisibleCell(1,0),c=r.row,p=r.col,e.preventDefault();break;case 113:try{b(n).jqGrid("editCell",n.p.iRow,n.p.iCol,!0,e,!1),n.p.F2key=!0}catch(e){}break;case 8:case 46:var r=!0;!0===(r=f?f.call(n,n.rows[n.p.iRow].id,n.p.iRow,n.p.iCol,e):r)&&b(n).jqGrid("saveCell",n.p.iRow,n.p.iCol,"");break;case 86:if(t)return w=!0;break;case 90:if(t)return r=!0,(r=b.jgrid.isFunction(C.customUndoFunction)?C.customUndoFunction.call(n,n.rows[n.p.iRow].id,n.p.iRow,n.p.iCol,e):r)&&n.p.savedValues&&b(n).jqGrid("getCell",n.rows[n.p.iRow].id,n.p.colModel[n.p.iCol].name,!1)===n.p.savedValues.newvalue&&n.p.iRow===n.p.savedValues.indexRow&&b(n).jqGrid("saveCell",n.p.iRow,n.p.iCol,n.p.savedValues.oldvalue),!0;break;default:var r=/^[a-z]$/i.test(e.key),o=/^[0-9]$/i.test(e.key),l=!1;return C.addonChars&&(l=C.addonChars.test(e.key)),(r||o||h.has(e.key)||l)&&b(n).jqGrid("editCell",n.p.iRow,n.p.iCol,!0,e,!0),void(u&&u.call(n,n.rows[n.p.iRow].id,n.p.iRow,n.p.iCol,e))}setTimeout(function(){b(n).jqGrid("focusBodyCell",c,p,a,s)},50)}}),b(n).on("jqGridBeforeSelectRow.ariaGridClick",function(){return!1}),b(n).on("jqGridCellSelect.ariaGridClick",function(e,i,t,r,o){var l,o=o.target;0<n.p.iRow&&0<=n.p.iCol&&b(n.rows[n.p.iRow].cells[n.p.iCol]).attr("tabindex",-1),(b(o).is("td")||b(o).is("th")||o.id.startsWith("jqs_"+n.p.id))&&(n.p.iCol=o.cellIndex,n.p.savedRow.length&&b(n).jqGrid("saveCell",n.p.savedRow[0].id,n.p.savedRow[0].ic),l=b(o).closest("tr.jqgrow"),n.p.iRow=l[0].rowIndex,b(o).attr("tabindex",0).addClass(s).focus().blur(function(){b(this).removeClass(s)}))}).on("jqGridDblClickRow.ariaGridDblClick",function(e,i,t,r,o){b(n).jqGrid("editCell",t,r,!0,o,!1),n.p.F2key=!0})})},focusBodyCell:function(n,a,s,d){return this.each(function(){var e,i=this,t=s||b.jgrid.getMethod("getStyleUI"),r=d||t(i.p.styleUI+".common","highlight",!0),o=b.jgrid.focusableElementsList.join();function l(e){return b(o,e)[0]}void 0!==n&&void 0!==a?!isNaN(i.p.iRow)&&!isNaN(i.p.iCol)&&0<=i.p.iCol&&(e=l(i.rows[i.p.iRow].cells[i.p.iCol]),b(e||i.rows[i.p.iRow].cells[i.p.iCol]).attr("tabindex",-1)):(n=i.p.iRow,a=i.p.iCol),n=parseInt(n,10),a=parseInt(a,10),0<n&&0<=a&&(e=l(i.rows[n].cells[a]),b(e||i.rows[n].cells[a]).attr("tabindex",0).addClass(r).focus().blur(function(){b(this).removeClass(r)}),i.p.iRow=n,i.p.iCol=a)})},resetAriaBody:function(){return this.each(function(){var i=this,t=!1,e=(i.p.ariaBody=!1,b(i).attr("tabindex","0").off("keydown").off("jqGridBeforeSelectRow.ariaGridClick").off("jqGridCellSelect.ariaGridClick").off("jqGridAfterGridComplete.setAriaGrid"),b.jgrid.focusableElementsList.join());b("tbody",i).first().find(">tr:not(.jqgfirstrow)>td:not(:hidden, :has("+e+"))").removeAttr("tabindex").off("focus"),b("tbody",i).first().find(">tr:not(.jqgfirstrow)").attr("tabindex",-1);try{i.removeEventListener("paste",function(e){t&&(e=(e.clipboardData||window.clipboardData).getData("text"),b(i).jqGrid("saveCell",i.p.iRow,i.p.iCol,e),t=!1)},!0)}catch(e){}})},ariaHeaderGrid:function(e){var t=b.extend({onHeaderKeyCheck:null},e||{});return this.each(function(){var o=this,e=b.jgrid.getMethod("getStyleUI")(o.p.styleUI+".common","highlight",!0),i=b("#gbox_"+o.p.id).find(".ui-jqgrid-hbox>table").first(),l=!!b.jgrid.isFunction(t.onHeaderKeyCheck)&&t.onHeaderKeyCheck;b("tr.ui-jqgrid-labels",i).on("keydown",function(e){var i=o.p.selHeadInd,t=e.which||e.keyCode,r=o.grid.headers.length;if(!l||l.call(o,i,e))switch(t){case 37:if(0<=i-1){for(i--;b(o.grid.headers[i].el).is(":hidden")&&0<=i-1&&!(--i<0););0<=i&&(b(o.grid.headers[i].el).focus(),b(o.grid.headers[o.p.selHeadInd].el).attr("tabindex","-1"),o.p.selHeadInd=i,e.preventDefault())}break;case 39:if(i+1<r){for(i++;b(o.grid.headers[i].el).is(":hidden")&&i+1<r&&!(r-1<++i););i<r&&(b(o.grid.headers[i].el).focus(),b(o.grid.headers[o.p.selHeadInd].el).attr("tabindex","-1"),o.p.selHeadInd=i,e.preventDefault())}break;case 13:b(o.grid.headers[i].el).find("div").first().trigger("click"),e.preventDefault();break;default:return}}),b("tr.ui-jqgrid-labels>th:not(:hidden)",i).attr("tabindex",-1).focus(function(){b(this).addClass(e).attr("tabindex","0")}).blur(function(){b(this).removeClass(e)}),o.p.selHeadInd=b.jgrid.getFirstVisibleCol(o),b(o.grid.headers[o.p.selHeadInd].el).attr("tabindex","0")})},focusHeaderCell:function(i){return this.each(function(){var e=this;0<=(i=void 0===i?e.p.selHeadInd:i)&&i<e.p.colModel.length&&(b(e.grid.headers[e.p.selHeadInd].el).attr("tabindex","-1"),b(e.grid.headers[i].el).focus(),e.p.selHeadInd=i)})},resetAriaHeader:function(){return this.each(function(){var e=b("#gbox_"+this.p.id).find(".ui-jqgrid-hbox>table").first();b("tr.ui-jqgrid-labels",e).off("keydown"),b("tr.ui-jqgrid-labels>th:not(:hidden)",e).removeAttr("tabindex").off("focus blur")})},ariaPagerGrid:function(){return this.each(function(){var r=this,e=b.jgrid.getMethod("getStyleUI"),i=e(r.p.styleUI+".common","highlight",!0),o="."+e(r.p.styleUI+".common","disabled",!0),l=b(".ui-pg-button",r.p.pager),n=l.length;l.attr("tabindex","-1").focus(function(){b(this).addClass(i)}).blur(function(){b(this).removeClass(i)}),r.p.navIndex=0,setTimeout(function(){var e=l.not(o).first().attr("tabindex","0");r.p.navIndex=e[0]&&e[0].cellIndex?e[0].cellIndex-1:0},100),b(r.p.pager).find("table.ui-pager-table tr").first().on("keydown",function(e){var i=e.which||e.keyCode,t=r.p.navIndex;switch(i){case 37:if(0<=t-1){for(t--;b(l[t]).is(o)&&0<=t-1&&!(--t<0););0<=t&&(b(l[r.p.navIndex]).attr("tabindex","-1"),b(l[t]).attr("tabindex","0").focus(),r.p.navIndex=t),e.preventDefault()}break;case 39:if(t+1<n){for(t++;b(l[t]).is(o)&&t+1<n+1&&!(n-1<++t););t<n&&(b(l[r.p.navIndex]).attr("tabindex","-1"),b(l[t]).attr("tabindex","0").focus(),r.p.navIndex=t),e.preventDefault()}break;case 13:b(e.originalEvent.srcElement).hasClass("ui-pg-input")||(b(l[t]).trigger("click"),e.preventDefault());break;default:return}})})},focusPagerCell:function(t){return this.each(function(){var e=b(".ui-pg-button",this.p.pager),i=e.length;0<=(t=void 0===t?this.p.navIndex:t)&&t<i&&(b(e[this.p.navIndex]).attr("tabindex","-1"),b(e[t]).attr("tabindex","0").focus(),this.p.navIndex=t)})},resetAriaPager:function(){return this.each(function(){b(".ui-pg-button",this.p.pager).removeAttr("tabindex").off("focus"),b(this.p.pager).find("table.ui-pager-table tr").first().off("keydown")})},setAriaGrid:function(e){var i=b.extend({header:!0,body:!0,pager:!0,onEnterCell:null,customCellAction:null,excel:!1},e||{});return this.each(function(){i.header&&b(this).jqGrid("ariaHeaderGrid",i),i.body&&(i.excel?b(this).jqGrid("excelLikeGrid",i):b(this).jqGrid("ariaBodyGrid",i)),i.pager&&b(this).jqGrid("ariaPagerGrid")})},resetAriaGrid:function(e){var i=b.extend({header:!0,body:!0,pager:!0},e||{});return this.each(function(){i.body&&b(this).jqGrid("resetAriaBody"),i.header&&b(this).jqGrid("resetAriaHeader"),i.pager&&b(this).jqGrid("resetAriaPager")})}})});js/minified/grid.transposed.js000064400000003401151676727230012426 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","./grid.base"],e):e(jQuery)}(function(u){"use strict";u.jgrid.extend({transposeSetup:function(s,e){var i=[],l=[],d=!1,c=u.extend({},e||{});return this.each(function(){var e,r,o=Object.keys(s[c.baseindex]);c.excludeSrcCols.length&&(o=o.filter(function(e){return!c.excludeSrcCols.includes(e)}));for(var a=0;a<o.length;a++){r=0,(e={}).col_name=o[a],d||i.push({name:"col_name"}),r++;for(var t=0;t<s.length;t++){var n=s[t];e[c.nameprefix+r]=n[o[a]],d||i.push({name:c.nameprefix+r,label:c.labelprefix+r}),r++}d=!0,l.push(e)}}),{colModel:i,rows:l}},jqTranspose:function(o,i,l,a){return i=u.extend({nameprefix:"col",labelprefix:"value ",baseindex:0,beforeCreateGrid:null,RowAsHeader:0,loadMsg:!1,excludeSrcCols:[]},i||{}),this.each(function(){var s=this,e=l&&l.regional?l.regional:"en";function r(e,r){Array.isArray(e)||(e=[]);var o=jQuery(s).jqGrid("transposeSetup",e,i);if(u.jgrid.isFunction(i.beforeCreateGrid)&&i.beforeCreateGrid.call(s,o,e),!1!==r.RowAsHeader&&0<=r.RowAsHeader&&o.rows.length&&r.RowAsHeader<o.rows.length){var a,t=o.rows[r.RowAsHeader],n=0;for(a in t)Object.prototype.hasOwnProperty.call(t,a)&&(o.colModel[n].label=t[a]),n++;o.rows.splice(r.RowAsHeader,1)}e=u.jgrid.from.call(s,o.rows);jQuery(s).jqGrid(u.extend(!0,{datastr:e.select(),datatype:"jsonstring",colModel:o.colModel,jsonReader:{repeatitems:!1},viewrecords:!0},l||{})),i.loadMsg&&u(".loading_pivot").remove()}i.loadMsg&&u("<div class='loading_pivot ui-state-default ui-state-active row'>"+u.jgrid.getRegional(s,"regional."+e+".defaults.loadtext")+"</div>").insertBefore(s).show(),"string"==typeof o?u.ajax(u.extend({url:o,dataType:"json",success:function(e){r(u.jgrid.getAccessor(e,a&&a.reader?a.reader:"rows"),i)}},a||{})):r(o,i)})}})});js/minified/jqDnR.js000064400000003423151676727230010342 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)}(function(u){"use strict";u.fn.jqDrag=function(e){return n(this,e,"d")},u.fn.jqResize=function(e,t){return n(this,e,"r",t)},u.jqDnR={dnr:{},e:0,drag:function(e){return"d"==r.k?f.css({left:r.X+e.pageX-r.pX,top:r.Y+e.pageY-r.pY}):(f.css({width:Math.max(e.pageX-r.pX+r.W,0),height:Math.max(e.pageY-r.pY+r.H,0)}),i&&a.css({width:Math.max(e.pageX-i.pX+i.W,0),height:Math.max(e.pageY-i.pY+i.H,0)})),!1},stop:function(){u(document).off("mousemove",e.drag).off("mouseup",e.stop)}};var a,i,e=u.jqDnR,r=e.dnr,f=e.e,n=function(e,t,n,o){return e.each(function(){(t=t?u(t,e):e).on("mousedown",{e:e,k:n},function(e){var t=e.data,n={};if(f=t.e,a=!!o&&u(o),"relative"!=f.css("position"))try{f.position(n)}catch(e){}if(r={X:n.left||p("left")||0,Y:n.top||p("top")||0,W:p("width")||f[0].scrollWidth||0,H:p("height")||f[0].scrollHeight||0,pX:e.pageX,pY:e.pageY,k:t.k},i=!(!a||"d"==t.k)&&{X:n.left||s("left")||0,Y:n.top||s("top")||0,W:a[0].offsetWidth||s("width")||0,H:a[0].offsetHeight||s("height")||0,pX:e.pageX,pY:e.pageY,k:t.k},u("input.hasDatepicker",f[0])[0])try{u("input.hasDatepicker",f[0]).datepicker("hide")}catch(e){}return u(document).mousemove(u.jqDnR.drag).mouseup(u.jqDnR.stop),!1})})},p=function(e){return parseInt(f.css(e),10)||!1},s=function(e){return parseInt(a.css(e),10)||!1};u.fn.tinyDraggable=function(e){var i=u.extend({handle:0,exclude:0},e);return this.each(function(){var n,o,a=u(this);(i.handle?u(i.handle,a):a).on({mousedown:function(e){var t;i.exclude&&~u.inArray(e.target,u(i.exclude,a))||(e.preventDefault(),t=a.offset(),n=e.pageX-t.left,o=e.pageY-t.top,u(document).on("mousemove.drag",function(e){a.offset({top:e.pageY-o,left:e.pageX-n})}))},mouseup:function(e){u(document).off("mousemove.drag")}})})}});js/minified/grid.pivot.js000064400000016745151676727230011424 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","./grid.base","./grid.grouping"],e):e(jQuery)}(function(Q){"use strict";Q.assocArraySize=function(e){var r,o=0;for(r in e)e.hasOwnProperty(r)&&o++;return o},Q.jgrid.extend({pivotSetup:function(F,e){var H=[],A=[],k=[],G=[],M=[],z={grouping:!0,groupingView:{groupField:[],groupSummary:[],groupSummaryPos:[]}},V=[],q=Q.extend({rowTotals:!1,rowTotalsText:"Total",colTotals:!1,groupSummary:!0,groupSummaryPos:"header",frozenStaticCols:!1},e||{});return this.each(function(){var d,f,p,e,r,c=this,o=F.length,t=0;function i(e,r,o){e=function(e,r){var o,t,i,n=[];if(!this||"function"!=typeof e||e instanceof RegExp)throw new TypeError;for(i=this.length,o=0;o<i;o++)if(this.hasOwnProperty(o)&&(t=this[o],e.call(r,t,o,this))){n.push(t);break}return n}.call(e,r,o);return 0<e.length?e[0]:null}function n(e,r){var o,t=0,i=!0;for(o in e)if(e.hasOwnProperty(o)){if(e[o]!=this[t]){i=!1;break}if(++t>=this.length)break}return i&&(b=r),i}function a(e,r,o,t){var i,n,a,l,s=r.length,g="",u=[],m=1;for(Array.isArray(o)?(a=o.length,u=o):(a=1,u[0]=o),M=[],n=(G=[]).root=0;n<a;n++){for(var d,f=[],p=0;p<s;p++){if(l="string"==typeof r[p].aggregator?r[p].aggregator:"cust",null==o)d=i=Q.jgrid.trim(r[p].member)+"_"+l,u[0]=r[p].label||l+" "+Q.jgrid.trim(r[p].member);else{d=o[n].replace(/\s+/g,"");try{i=1===s?g+d:g+d+"_"+l+"_"+String(p)}catch(e){}u[n]=o[n]}i=isNaN(parseInt(i,10))?i:i+" ","avg"===r[p].aggregator&&(l=-1===b?A.length+"_"+i:b+"_"+i,h[l]?h[l]++:h[l]=1,m=h[l]),t[i]=f[i]=function(e,r,o,t,i){var n;if(Q.jgrid.isFunction(e))n=e.call(c,r,o,t);else switch(e){case"sum":n=Q.jgrid.floatNum(r)+Q.jgrid.floatNum(t[o]);break;case"count":""!==r&&null!=r||(r=0),n=t.hasOwnProperty(o)?r+1:0;break;case"min":n=""===r||null==r?Q.jgrid.floatNum(t[o]):Math.min(Q.jgrid.floatNum(r),Q.jgrid.floatNum(t[o]));break;case"max":n=""===r||null==r?Q.jgrid.floatNum(t[o]):Math.max(Q.jgrid.floatNum(r),Q.jgrid.floatNum(t[o]));break;case"avg":n=(Q.jgrid.floatNum(r)*(i-1)+Q.jgrid.floatNum(t[o]))/i}return n}(r[p].aggregator,t[i],r[p].member,e,m)}g+=o&&null!=o[n]?o[n].replace(/\s+/g,""):"",G[i]=f,M[i]=u[n]}return t}if(q.rowTotals&&0<q.yDimension.length&&(e=q.yDimension[0].dataName,q.yDimension.splice(0,0,{dataName:e}),q.yDimension[0].converter=function(){return"_r_Totals"}),d=Array.isArray(q.xDimension)?q.xDimension.length:0,f=q.yDimension.length,p=Array.isArray(q.aggregates)?q.aggregates.length:0,0===d||0===p)throw"xDimension or aggregates optiona are not set!";for(y=0;y<d;y++)r={name:q.xDimension[y].dataName,frozen:q.frozenStaticCols},null==q.xDimension[y].isGroupField&&(q.xDimension[y].isGroupField=!0),r=Q.extend(!0,r,q.xDimension[y]),H.push(r);for(var l=d-1,s={},h=[];t<o;){for(var g=F[t],u=[],m=[],v={},y=0;u[y]=Q.jgrid.trim(g[q.xDimension[y].dataName]),v[q.xDimension[y].dataName]=u[y],++y<d;);var x,j=0,b=-1;if(x=i(A,n,u)){if(0<=b){if(j=0,1<=f){for(j=0;j<f;j++)m[j]=Q.jgrid.trim(g[q.yDimension[j].dataName]),void 0===m[j]?m[j]=null:q.yDimension[j].converter&&Q.jgrid.isFunction(q.yDimension[j].converter)&&(m[j]=q.yDimension[j].converter.call(this,m[j],u,m));x=a(g,q.aggregates,m,x)}else 0===f&&(x=a(g,q.aggregates,null,x));A[b]=x}}else{if(j=0,1<=f){for(j=0;j<f;j++)m[j]=Q.jgrid.trim(g[q.yDimension[j].dataName]),void 0===m[j]?m[j]=null:q.yDimension[j].converter&&Q.jgrid.isFunction(q.yDimension[j].converter)&&(m[j]=q.yDimension[j].converter.call(this,m[j],u,m));v=a(g,q.aggregates,m,v)}else 0===f&&(v=a(g,q.aggregates,null,v));A.push(v)}var w,D=0,N=null,O=null;for(w in G)if(G.hasOwnProperty(w)){if(0===D)N=(s=s.children&&void 0!==s.children?s:{text:w,level:0,children:[],label:w}).children;else{for(O=null,y=0;y<N.length;y++)if(N[y].text===w){O=N[y];break}N=(O||(N.push({children:[],text:w,level:D,fields:G[w],label:M[w]}),N[N.length-1])).children}D++}t++}var S,h=null,T=[],C=H.length,P=C;if(0<f&&(V[f-1]={useColSpanStyle:!1,groupHeaders:[]}),!function e(r){var o,t,i,n,a;for(i in r)if(r.hasOwnProperty(i)){if("object"!=typeof r[i]){if("level"===i){if(void 0===T[r.level]&&(T[r.level]="",0<r.level)&&-1===r.text.indexOf("_r_Totals")&&(V[r.level-1]={useColSpanStyle:!1,groupHeaders:[]}),T[r.level]!==r.text&&r.children.length&&-1===r.text.indexOf("_r_Totals")&&0<r.level){V[r.level-1].groupHeaders.push({titleText:r.label,numberOfColumns:0});var l=V[r.level-1].groupHeaders.length-1,s=0==l?P:C;if(r.level-1==(q.rowTotals?1:0)&&0<l){for(var g=0,u=0;u<l;u++)g+=V[r.level-1].groupHeaders[u].numberOfColumns;g&&(s=g+d)}H[s]&&(V[r.level-1].groupHeaders[l].startColumnName=H[s].name,V[r.level-1].groupHeaders[l].numberOfColumns=H.length-s),C=H.length}T[r.level]=r.text}if(r.level===f&&"level"===i&&0<f)if(1<p){var m=1;for(o in r.fields)r.fields.hasOwnProperty(o)&&(1===m&&V[f-1].groupHeaders.push({startColumnName:o,numberOfColumns:1,titleText:r.label||r.text}),m++);V[f-1].groupHeaders[V[f-1].groupHeaders.length-1].numberOfColumns=m-1}else V.splice(f-1,1)}if(null!=r[i]&&"object"==typeof r[i]&&e(r[i]),"level"===i&&0<r.level&&(r.level===(0===f?r.level:f)||-1!==T[r.level].indexOf("_r_Totals")))for(o in t=0,r.fields)if(r.fields.hasOwnProperty(o)){for(n in a={},q.aggregates[t])if(q.aggregates[t].hasOwnProperty(n))switch(n){case"member":case"label":case"aggregator":break;default:a[n]=q.aggregates[t][n]}1<p?(a.name=o,a.label=q.aggregates[t].label||r.label):(a.name=r.text,a.label="_r_Totals"===r.text?q.rowTotalsText:r.label),H.push(a),t++}}}(s),q.colTotals)for(var _=A.length;_--;)for(y=d;y<H.length;y++)S=H[y].name,k[S]?k[S]+=Q.jgrid.floatNum(A[_][S]):k[S]=Q.jgrid.floatNum(A[_][S]);if(0<l)for(y=0;y<l;y++)H[y].isGroupField&&(z.groupingView.groupField.push(H[y].name),z.groupingView.groupSummary.push(q.groupSummary),z.groupingView.groupSummaryPos.push(q.groupSummaryPos));else z.grouping=!1;z.sortname=H[l].name,z.groupingView.hideFirstGroupCol=!0}),{colModel:H,rows:A,groupOptions:z,groupHeaders:V,summary:k}},jqPivot:function(o,g,u,t){return this.each(function(){var s=this,e=u.regional||"en";function r(e){Q.jgrid.isFunction(g.onInitPivot)&&g.onInitPivot.call(s),Array.isArray(e)||(e=[]);var r,o,t,i,n=jQuery(s).jqGrid("pivotSetup",e,g),e=0<Q.assocArraySize(n.summary),a=Q.jgrid.from.call(s,n.rows);for(g.ignoreCase&&(a=a.ignoreCase()),r=0;r<n.groupOptions.groupingView.groupField.length;r++)o=g.xDimension[r].sortorder||"asc",t=g.xDimension[r].sorttype||"text",a.orderBy(n.groupOptions.groupingView.groupField[r],o,t,"",t);if(i=g.xDimension.length,u.sortname){for(o=u.sortorder||"asc",t="text",r=0;r<i;r++)if(g.xDimension[r].dataName===u.sortname){t=g.xDimension[r].sorttype||"text";break}a.orderBy(u.sortname,o,t,"",t)}else n.groupOptions.sortname&&i&&(o=g.xDimension[i-1].sortorder||"asc",t=g.xDimension[i-1].sorttype||"text",a.orderBy(n.groupOptions.sortname,o,t,"",t));jQuery(s).jqGrid(Q.extend(!0,{datastr:Q.extend(a.select(),e?{userdata:n.summary}:{}),datatype:"jsonstring",footerrow:e,userDataOnFooter:e,colModel:n.colModel,viewrecords:!0,formatFooterData:!0===g.colTotals,sortname:g.xDimension[0].dataName},n.groupOptions,u||{}));var l=n.groupHeaders;if(l.length)for(r=0;r<l.length;r++)l[r]&&l[r].groupHeaders.length&&jQuery(s).jqGrid("setGroupHeaders",l[r]);g.frozenStaticCols&&jQuery(s).jqGrid("setFrozenColumns"),Q.jgrid.isFunction(g.onCompletePivot)&&g.onCompletePivot.call(s),g.loadMsg&&Q(".loading_pivot").remove()}void 0===g.loadMsg&&(g.loadMsg=!0),g.loadMsg&&Q("<div class='loading_pivot ui-state-default ui-state-active row'>"+Q.jgrid.getRegional(s,"regional."+e+".defaults.loadtext")+"</div>").insertBefore(s).show(),"string"==typeof o?Q.ajax(Q.extend({url:o,dataType:"json",success:function(e){r(Q.jgrid.getAccessor(e,t&&t.reader?t.reader:"rows"))}},t||{})):r(o)})}})});js/minified/jquery.sortable.js000064400000003575151676727230012465 0ustar00!function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)}(function(s){"use strict";var d,o=s();s.fn.html5sortable=function(r){var t=String(r);return r=s.extend({connectWith:!1},r),this.each(function(){var e,n,i,a;/^enable|disable|destroy$/.test(t)?(i=s(this).children(s(this).data("items")).attr("draggable","enable"===t),"destroy"===t&&i.add(this).removeData("connectWith items").off("dragstart.h5s dragend.h5s selectstart.h5s dragover.h5s dragenter.h5s drop.h5s")):(i=s(this).children(r.items),a=s("<"+(/^ul|ol$/i.test(this.tagName)?"li":/^tbody$/i.test(this.tagName)?"tr":"div")+' class="sortable-placeholder '+r.placeholderClass+'">').html("&nbsp;"),i.find(r.handle).mousedown(function(){e=!0}).mouseup(function(){e=!1}),s(this).data("items",r.items),o=o.add(a),r.connectWith&&s(r.connectWith).add(this).data("connectWith",r.connectWith),i.attr("draggable","true").on("dragstart.h5s",function(t){if(r.handle&&!e)return!1;e=!1;t=t.originalEvent.dataTransfer;t.effectAllowed="move",t.setData("Text","dummy"),n=(d=s(this)).addClass("sortable-dragging").index()}).on("dragend.h5s",function(){d&&(d.removeClass("sortable-dragging").show(),o.detach(),n!==d.index()&&d.parent().trigger("sortupdate",{item:d,startindex:n,endindex:d.index()}),d=null)}).not("a[href], img").on("selectstart.h5s",function(){return this.dragDrop&&this.dragDrop(),!1}).end().add([this,a]).on("dragover.h5s dragenter.h5s drop.h5s",function(t){return!i.is(d)&&r.connectWith!==s(d).parent().data("connectWith")||("drop"===t.type?(t.stopPropagation(),o.filter(":visible").after(d),d.trigger("dragend.h5s")):(t.preventDefault(),t.originalEvent.dataTransfer.dropEffect="move",i.is(this)?(r.forcePlaceholderSize&&a.height(d.outerHeight()),d.hide(),s(this)[a.index()<s(this).index()?"after":"before"](a),o.not(a).detach()):o.is(this)||s(this).children(r.items).length||(o.detach(),s(this).append(a))),!1)}))})}});js/minified/jquery.fmatter.js000064400000026322151676727230012307 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","./grid.base"],e):e(jQuery)}(function(v){"use strict";v.fmatter={},v.extend(v.fmatter,{isBoolean:function(e){return"boolean"==typeof e},isObject:function(e){return e&&("object"==typeof e||v.jgrid.isFunction(e))||!1},isString:function(e){return"string"==typeof e},isNumber:function(e){return"number"==typeof e&&isFinite(e)},isValue:function(e){return this.isObject(e)||this.isString(e)||this.isNumber(e)||this.isBoolean(e)},isEmpty:function(e){return!(!this.isString(e)&&this.isValue(e)||this.isValue(e)&&""!==v.jgrid.trim(e).replace(/\&nbsp\;/gi,"").replace(/\&#160\;/gi,""))}}),v.fn.fmatter=function(e,t,i,r,o){var n=t;i=v.extend({},v.jgrid.getRegional(this,"formatter"),i);try{n=v.fn.fmatter[e].call(this,t,i,r,o)}catch(e){}return n},v.fmatter.util={NumberFormat:function(e,t){if(v.fmatter.isNumber(e)||(e*=1),v.fmatter.isNumber(e)){var i=e<0,r=String(e),o=t.decimalSeparator||".";if(v.fmatter.isNumber(t.decimalPlaces)){var n=t.decimalPlaces,a=(r=String(Number(Math.round(e+"e"+n)+"e-"+n))).lastIndexOf(".");if(0<n)for(a<0?a=(r+=o).length-1:"."!==o&&(r=r.replace(".",o));r.length-1-a<n;)r+="0"}if(t.thousandsSeparator){for(var l=t.thousandsSeparator,d=(a=-1<(a=r.lastIndexOf(o))?a:r.length,r.substring(a)),s=-1,f=a;0<f;f--)++s%3==0&&f!==a&&(!i||1<f)&&(d=l+d),d=r.charAt(f-1)+d;r=d}return r=t.prefix?t.prefix+r:r,r=t.suffix?r+t.suffix:r}return e}},v.fn.fmatter.defaultFormat=function(e,t){return v.fmatter.isValue(e)&&""!==e?e:t.defaultValue||"&#160;"},v.fn.fmatter.email=function(e,t){return v.fmatter.isEmpty(e)?v.fn.fmatter.defaultFormat(e,t):'<a href="mailto:'+e+'">'+e+"</a>"},v.fn.fmatter.checkbox=function(e,t){var i=v.extend({},t.checkbox),r=Object.keys(v.jgrid.regional)[0],i=(t=!0===(i=void 0!==t.colModel&&void 0!==t.colModel.formatoptions?v.extend({},i,t.colModel.formatoptions):i).disabled?'disabled="disabled"':"",!v.fmatter.isEmpty(e)&&void 0!==e||(e=v.fn.fmatter.defaultFormat(e,i)),(e=((e=String(e))+"").toLowerCase()).search(/(false|f|0|no|n|off|undefined)/i)<0?" checked='checked' ":""),o=v.jgrid.regional[r].defaults.valueCheckbox,n=v.jgrid.regional[r].defaults.valT,r=v.jgrid.regional[r].defaults.valF,n=void 0!==o&&"true"===e?o+" "+n:void 0!==o&&"false"===e?o+" "+r:e;return'<input title="'+n+'" type="checkbox" '+i+' value="'+e+'" offval="no" '+t+"/>"},v.fn.fmatter.link=function(e,t){var i={target:t.target},r="";return(i=void 0!==t.colModel&&void 0!==t.colModel.formatoptions?v.extend({},i,t.colModel.formatoptions):i).target&&(r="target="+i.target),v.fmatter.isEmpty(e)?v.fn.fmatter.defaultFormat(e,t):"<a "+r+' href="'+e+'">'+e+"</a>"},v.fn.fmatter.showlink=function(e,t){var i={baseLinkUrl:t.baseLinkUrl,showAction:t.showAction,addParam:t.addParam||"",target:t.target,idName:t.idName},r="";return(i=void 0!==t.colModel&&void 0!==t.colModel.formatoptions?v.extend({},i,t.colModel.formatoptions):i).target&&(r="target="+i.target),i=i.baseLinkUrl+i.showAction+"?"+i.idName+"="+t.rowId+i.addParam,v.fmatter.isString(e)||v.fmatter.isNumber(e)?"<a "+r+' href="'+i+'">'+e+"</a>":v.fn.fmatter.defaultFormat(e,t)},v.fn.fmatter.integer=function(e,t){var i=v.extend({},t.integer);return void 0!==t.colModel&&void 0!==t.colModel.formatoptions&&(i=v.extend({},i,t.colModel.formatoptions)),v.fmatter.isEmpty(e)?i.defaultValue:v.fmatter.util.NumberFormat(e,i)},v.fn.fmatter.number=function(e,t){var i=v.extend({},t.number);return void 0!==t.colModel&&void 0!==t.colModel.formatoptions&&(i=v.extend({},i,t.colModel.formatoptions)),v.fmatter.isEmpty(e)?i.defaultValue:v.fmatter.util.NumberFormat(e,i)},v.fn.fmatter.currency=function(e,t){var i=v.extend({},t.currency);return void 0!==t.colModel&&void 0!==t.colModel.formatoptions&&(i=v.extend({},i,t.colModel.formatoptions)),v.fmatter.isEmpty(e)?i.defaultValue:v.fmatter.util.NumberFormat(e,i)},v.fn.fmatter.date=function(e,t,i,r){var o=v.extend({},t.date);return!(o=void 0!==t.colModel&&void 0!==t.colModel.formatoptions?v.extend({},o,t.colModel.formatoptions):o).reformatAfterEdit&&"edit"===r||v.fmatter.isEmpty(e)?v.fn.fmatter.defaultFormat(e,t):v.jgrid.parseDate.call(this,o.srcformat,e,o.newformat,o)},v.fn.fmatter.select=function(e,t){e=String(e);var i,r,o=!1,n=[];if(void 0!==t.colModel.formatoptions?(o=t.colModel.formatoptions.value,i=void 0===t.colModel.formatoptions.separator?":":t.colModel.formatoptions.separator,r=void 0===t.colModel.formatoptions.delimiter?";":t.colModel.formatoptions.delimiter):void 0!==t.colModel.editoptions&&(o=t.colModel.editoptions.value,i=void 0===t.colModel.editoptions.separator?":":t.colModel.editoptions.separator,r=void 0===t.colModel.editoptions.delimiter?";":t.colModel.editoptions.delimiter),o){var a,l=!0==(null!=t.colModel.editoptions&&!0===t.colModel.editoptions.multiple),d=[];if(l&&(d=e.split(","),d=v.map(d,function(e){return v.jgrid.trim(e)})),v.fmatter.isString(o)){for(var s=o.split(r),f=0,c=0;c<s.length;c++)if(2<(a=s[c].split(i)).length&&(a[1]=v.map(a,function(e,t){if(0<t)return e}).join(i)),l)-1<v.inArray(a[0],d)&&(n[f]=a[1],f++);else if(v.jgrid.trim(a[0])===v.jgrid.trim(e)){n[0]=a[1];break}}else v.fmatter.isObject(o)&&(l?n=v.map(d,function(e){return o[e]}):n[0]=o[e]||"")}return""===(e=n.join(", "))?v.fn.fmatter.defaultFormat(e,t):e},v.fn.fmatter.rowactions=function(e){function t(e){v.jgrid.isFunction(s.afterRestore)&&s.afterRestore.call(a,e),d.find("div.ui-inline-edit,div.ui-inline-del").show(),d.find("div.ui-inline-save,div.ui-inline-cancel").hide()}var i=v(this).closest("tr.jqgrow"),r=i.attr("id"),o=v(this).closest("table.ui-jqgrid-btable").attr("id").replace(/_frozen([^_]*)$/,"$1"),n=v("#"+o),a=n[0],o=a.p,l=o.colModel[v.jgrid.getCellIndex(this)],d=l.frozen?v("tr#"+r+" td",n).eq(v.jgrid.getCellIndex(this)).find("> div"):v(this).parent(),s={extraparam:{}},f=(void 0!==l.formatoptions&&(l=v.extend(!0,{},l.formatoptions),s=v.extend(s,l)),void 0!==o.editOptions&&(s.editOptions=o.editOptions),void 0!==o.delOptions&&(s.delOptions=o.delOptions),i.hasClass("jqgrid-new-row")&&(s.extraparam[o.prmNames.oper]=o.prmNames.addoper),{keys:s.keys,oneditfunc:s.onEdit,successfunc:s.onSuccess,url:s.url,extraparam:s.extraparam,aftersavefunc:function(e,t){v.jgrid.isFunction(s.afterSave)&&s.afterSave.call(a,e,t),d.find("div.ui-inline-edit,div.ui-inline-del").show(),d.find("div.ui-inline-save,div.ui-inline-cancel").hide()},errorfunc:s.onError,afterrestorefunc:t,restoreAfterError:s.restoreAfterError,mtype:s.mtype});switch(e){case"edit":n.jqGrid("editRow",r,f),n[0].p.beforeAction&&(d.find("div.ui-inline-edit,div.ui-inline-del").hide(),d.find("div.ui-inline-save,div.ui-inline-cancel").show(),n.triggerHandler("jqGridAfterGridComplete"));break;case"save":n.jqGrid("saveRow",r,f)&&(d.find("div.ui-inline-edit,div.ui-inline-del").show(),d.find("div.ui-inline-save,div.ui-inline-cancel").hide(),n.triggerHandler("jqGridAfterGridComplete"));break;case"cancel":n.jqGrid("restoreRow",r,t),d.find("div.ui-inline-edit,div.ui-inline-del").show(),d.find("div.ui-inline-save,div.ui-inline-cancel").hide(),n.triggerHandler("jqGridAfterGridComplete");break;case"del":n.jqGrid("delGridRow",r,s.delOptions);break;case"formedit":n.jqGrid("setSelection",r),n.jqGrid("editGridRow",r,s.editOptions)}},v.fn.fmatter.actions=function(e,t){var i={keys:!1,editbutton:!0,delbutton:!0,editformbutton:!1},r=t.rowId,o="",n=v.jgrid.getRegional(this,"nav"),a=v.jgrid.styleUI[t.styleUI||"jQueryUI"].fmatter,l=v.jgrid.styleUI[t.styleUI||"jQueryUI"].common;return void 0!==t.colModel.formatoptions&&(i=v.extend(i,t.colModel.formatoptions)),void 0===r||v.fmatter.isEmpty(r)?"":(t="onmouseover=jQuery(this).addClass('"+l.hover+"'); onmouseout=jQuery(this).removeClass('"+l.hover+"');  ",i.editformbutton?o+="<div title='"+n.edittitle+"' style='float:left;cursor:pointer;' class='ui-pg-div ui-inline-edit' "+("id='jEditButton_"+r+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'formedit'); "+t)+"><span class='"+l.icon_base+" "+a.icon_edit+"'></span></div>":i.editbutton&&(o+="<div title='"+n.edittitle+"' style='float:left;cursor:pointer;' class='ui-pg-div ui-inline-edit' "+("id='jEditButton_"+r+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'edit'); "+t)+"><span class='"+l.icon_base+" "+a.icon_edit+"'></span></div>"),i.delbutton&&(o+="<div title='"+n.deltitle+"' style='float:left;' class='ui-pg-div ui-inline-del' "+("id='jDeleteButton_"+r+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'del'); "+t)+"><span class='"+l.icon_base+" "+a.icon_del+"'></span></div>"),"<div  class='jqgrid_actions' style='margin-left:8px;'>"+(o=(o+="<div title='"+n.savetitle+"' style='float:left;display:none' class='ui-pg-div ui-inline-save' "+("id='jSaveButton_"+r+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'save'); "+t)+"><span class='"+l.icon_base+" "+a.icon_save+"'></span></div>")+("<div title='"+n.canceltitle+"' style='float:left;display:none;' class='ui-pg-div ui-inline-cancel' "+("id='jCancelButton_"+r+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'cancel'); "+t)+"><span class='"+l.icon_base+" "+a.icon_cancel+"'></span></div>"))+"</div>")},v.unformat=function(e,t,i,r){var o=t.colModel.formatter,n=t.colModel.formatoptions||{},a=/([\.\*\_\'\(\)\{\}\+\?\\])/g,l=t.colModel.unformat||v.fn.fmatter[o]&&v.fn.fmatter[o].unformat;if(void 0!==l&&v.jgrid.isFunction(l))c=l.call(this,v(e).text(),t,e);else if(void 0!==o&&v.fmatter.isString(o)){var d,s=v.jgrid.getRegional(this,"formatter")||{};switch(o){case"integer":f=(n=v.extend({},s.integer,n)).thousandsSeparator.replace(a,"\\$1"),d=new RegExp(f,"g"),c=v(e).text().replace(d,"");break;case"number":f=(n=v.extend({},s.number,n)).thousandsSeparator.replace(a,"\\$1"),d=new RegExp(f,"g"),c=v(e).text().replace(d,"").replace(n.decimalSeparator,".");break;case"currency":f=(n=v.extend({},s.currency,n)).thousandsSeparator.replace(a,"\\$1"),d=new RegExp(f,"g"),c=v(e).text(),n.prefix&&n.prefix.length&&(c=c.slice(n.prefix.length)),c=(c=n.suffix&&n.suffix.length?c.slice(0,c.length-n.suffix.length):c).replace(d,"").replace(n.decimalSeparator,".");break;case"checkbox":var f=t.colModel.editoptions?t.colModel.editoptions.value.split(":"):["Yes","No"],c=v("input",e).is(":checked")?f[0]:f[1];break;case"select":c=v.unformat.select(e,t,i,r);break;case"actions":return"";default:c=v(e).text()}}return void 0!==c?c:!0===r?v(e).text():v.jgrid.htmlDecode(v(e).html())},v.unformat.select=function(e,t,i,r){var o=[],n=v(e).text();if(!0===r)return n;var a=v.extend({},void 0!==t.colModel.formatoptions?t.colModel.formatoptions:t.colModel.editoptions),l=void 0===a.separator?":":a.separator,e=void 0===a.delimiter?";":a.delimiter;if(a.value){var d,s=a.value,f=!0===a.multiple,c=[];if(f&&(c=n.split(","),c=v.map(c,function(e){return v.jgrid.trim(e)})),v.fmatter.isString(s)){for(var u=s.split(e),m=0,p=0;p<u.length;p++)if(2<(d=u[p].split(l)).length&&(d[1]=v.map(d,function(e,t){if(0<t)return e}).join(l)),a.decodeValue&&!0===a.decodeValue&&(d[1]=v.jgrid.htmlDecode(d[1])),f)-1<v.inArray(v.jgrid.trim(d[1]),c)&&(o[m]=d[0],m++);else if(v.jgrid.trim(d[1])===v.jgrid.trim(n)){o[0]=d[0];break}}else(v.fmatter.isObject(s)||Array.isArray(s))&&(f||(c[0]=n),o=v.map(c,function(i){var r;if(v.each(s,function(e,t){if(t===i)return r=e,!1}),void 0!==r)return r}));return o.join(", ")}return n||""},v.unformat.date=function(e,t){var i=v.jgrid.getRegional(this,"formatter.date")||{};return void 0!==t.formatoptions&&(i=v.extend({},i,t.formatoptions)),v.fmatter.isEmpty(e)?v.fn.fmatter.defaultFormat(e,t):v.jgrid.parseDate.call(this,i.newformat,e,i.srcformat,i)}});js/minified/grid.celledit.js000064400000035440151676727230012041 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","./grid.base"],e):e(jQuery)}(function(G){"use strict";G.jgrid.extend({editCell:function(c,f,u,g,C){return this.each(function(){var e,i,l,t=this,r=G(this).jqGrid("getStyleUI",t.p.styleUI+".common","highlight",!0),o=G(this).jqGrid("getStyleUI",t.p.styleUI+".common","disabled",!0),d=t.p.ariaBody?"":G(this).jqGrid("getStyleUI",t.p.styleUI+".common","hover",!0),s=G(this).jqGrid("getStyleUI",t.p.styleUI+".celledit","inputClass",!0),a=G(this).jqGrid("getStyleUI",t.p.styleUI+".celledit","selectClass",!0);if(t.grid&&!0===t.p.cellEdit&&!G(t.rows[c]).hasClass(o)){if(f=parseInt(f,10),t.p.selrow=t.rows[c].id,t.p.knv||t.p.ariaBody||G(t).jqGrid("GridNav"),0<t.p.savedRow.length){if(!0===u&&c==t.p.iRow&&f==t.p.iCol)return;G(t).jqGrid("saveCell",t.p.savedRow[0].id,t.p.savedRow[0].ic)}else window.setTimeout(function(){G("#"+G.jgrid.jqID(t.p.knv)).attr("tabindex","-1").focus()},1);if("subgrid"!==(e=(o=t.p.colModel[f]).name)&&"cb"!==e&&"rn"!==e&&"sc"!==e){try{l=G(t.rows[c].cells[f])}catch(e){l=G("td",t.rows[c]).eq(f)}if(0<=parseInt(t.p.iCol,10)&&0<=parseInt(t.p.iRow,10)&&void 0!==t.p.iRowId&&(n=G(t).jqGrid("getGridRowById",t.p.iRowId),G(n).removeClass("selected-row "+d).find("td").eq(t.p.iCol).removeClass("edit-cell "+r)),l.addClass("edit-cell "+r),G(t.rows[c]).addClass("selected-row "+d),!0!==o.editable||!0!==u||l.hasClass("not-editable-cell")||G.jgrid.isFunction(t.p.isCellEditable)&&!t.p.isCellEditable.call(t,e,c,f))i=l.html().replace(/\&#160\;/gi,""),G(t).triggerHandler("jqGridCellSelect",[t.rows[c].id,f,i,g]),G.jgrid.isFunction(t.p.onCellSelect)&&t.p.onCellSelect.call(t,t.rows[c].id,f,i,g);else{try{i=G.unformat.call(t,l,{rowId:t.rows[c].id,colModel:o},f)}catch(e){i=o.edittype&&"textarea"===o.edittype?l.text():l.html()}t.p.autoencode&&(i=G.jgrid.htmlDecode(i)),o.edittype||(o.edittype="text"),t.p.savedRow.push({id:c,ic:f,name:e,v:i,rowId:t.rows[c].id});try{("&nbsp;"===i||"&#160;"===i||1===i.length&&160===i.charCodeAt(0))&&(i="")}catch(e){}G.jgrid.isFunction(t.p.formatCell)&&void 0!==(n=t.p.formatCell.call(t,t.rows[c].id,e,i,c,f))&&(i=n),G(t).triggerHandler("jqGridBeforeEditCell",[t.rows[c].id,e,i,c,f]),G.jgrid.isFunction(t.p.beforeEditCell)&&t.p.beforeEditCell.call(t,t.rows[c].id,e,i,c,f);var n,r=G.extend({},o.editoptions||{},{id:c+"_"+e,name:e,rowId:t.rows[c].id,oper:"edit",module:"cell"}),p=(C&&(i=g.key),G.jgrid.createEl.call(t,o.edittype,r,i,!0,G.extend({},G.jgrid.ajaxOptions,t.p.ajaxSelectOptions||{})));-1<G.inArray(o.edittype,["text","textarea","password"])?G(p).addClass(s):"select"===o.edittype&&G(p).addClass(a),l.html("").append(p).attr("tabindex","0"),G.jgrid.bindEv.call(t,p,r),window.setTimeout(function(){G(p).focus()},1),G("input, select, textarea",l).on("keydown",function(e){var i=e.key;if(27===e.keyCode&&(!(0<G("input.hasDatepicker",l).length)||G(".ui-datepicker").is(":hidden")?G(t).jqGrid("restoreCell",c,f):G("input.hasDatepicker",l).datepicker("hide")),13===e.keyCode&&e.altKey&&"TEXTAREA"===this.nodeName)return this.value=this.value+"\r",e.preventDefault(),!0;if(13===e.keyCode&&!e.shiftKey)return e.preventDefault(),G(t).jqGrid("saveCell",c,f),c<t.rows.length-1&&C&&G(t).jqGrid("focusBodyCell",c+1,f),!1;if(9===e.keyCode&&!C){if(t.grid.hDiv.loading)return!1;e.shiftKey?t.p.ariaBody?(G(t).jqGrid("saveCell",c,f),1<f&&G(t).jqGrid("focusBodyCell",c,f-1)):!G(t).jqGrid("prevCell",c,f,e)&&t.p.editNextRowCell&&0<c-1&&t.rows[c-1]&&(c--,G(t).jqGrid("prevCell",c,t.p.colModel.length,e)):t.p.ariaBody?(G(t).jqGrid("saveCell",c,f),f<t.p.colModel.length-1&&G(t).jqGrid("focusBodyCell",c,f+1)):!G(t).jqGrid("nextCell",c,f,e)&&t.p.editNextRowCell&&t.rows[c+1]&&(c++,G(t).jqGrid("nextCell",c,0,e))}!C&&t.p.F2key&&t.p.ariaBody&&"F2"===e.key&&(G(t).jqGrid("saveCell",c,f),G(t).jqGrid("focusBodyCell",c,f),t.p.F2key=!1),C&&("ArrowUp"===i&&(G(t).jqGrid("saveCell",c,f),1<c)&&G(t).jqGrid("focusBodyCell",c-1,f),"ArrowDown"===i&&(G(t).jqGrid("saveCell",c,f),c<t.p.rows.length-1)&&G(t).jqGrid("focusBodyCell",c+1,f),"ArrowLeft"===i&&(G(t).jqGrid("saveCell",c,f),1<f)&&G(t).jqGrid("focusBodyCell",c,f-1),"ArrowRight"===i&&(G(t).jqGrid("saveCell",c,f),f<t.p.colModel.length-1)&&G(t).jqGrid("focusBodyCell",c,f+1),9===e.keyCode)&&(G(t).jqGrid("saveCell",c,f),e.shiftKey?1<f&&G(t).jqGrid("focusBodyCell",c,f-1):f<t.p.colModel.length-1&&G(t).jqGrid("focusBodyCell",c,f+1)),e.stopPropagation()}),G(t).triggerHandler("jqGridAfterEditCell",[t.rows[c].id,e,i,c,f]),G.jgrid.isFunction(t.p.afterEditCell)&&t.p.afterEditCell.call(t,t.rows[c].id,e,i,c,f)}t.p.iCol=f,t.p.iRow=c,t.p.iRowId=t.rows[c].id}}})},saveCell:function(q,b,m){return this.each(function(){var r=this,e=r.p.colModel[b],o=e.name,d=G(r).jqGrid("getGridRowById",r.rows[q].id),s=G("td",d).eq(b),a=(void 0!==m&&(t=G.unformat.call(r,s,{rowId:r.rows[q].id,colModel:e},b),r.p.savedRow.push({id:q,ic:b,name:o,v:t,rowId:r.rows[q].id}),r.p.savedValues={oldvalue:t,newvalue:m,indexRow:q}),1<=r.p.savedRow.length?0:null),n=G.jgrid.getRegional(this,"errors"),p=G.jgrid.getRegional(this,"edit");if(r.grid&&!0===r.p.cellEdit){if(null!==a){var c=G.jgrid.jqID(o),f=G(s).offset();if(void 0===m)switch(e.edittype){case"select":var l,u,g=e.editoptions.multiple?(i=G("#"+q+"_"+c,d),l=[],(u=G(i).val())?u.join(","):u="",G("option:selected",i).each(function(e,i){l[e]=G(i).text()}),l.join(",")):(u=G("#"+q+"_"+c+" option:selected",d).val(),G("#"+q+"_"+c+" option:selected",d).text());e.formatter&&(g=u);break;case"checkbox":var i=["Yes","No"];e.editoptions&&e.editoptions.value&&(i=e.editoptions.value.split(":")),u=G("#"+q+"_"+c,d).is(":checked")?i[0]:i[1],g=u;break;case"password":case"text":case"textarea":case"button":u=G("#"+q+"_"+c,d).val(),g=u;break;case"custom":try{if(!e.editoptions||!G.jgrid.isFunction(e.editoptions.custom_value))throw"e1";if(void 0===(u=e.editoptions.custom_value.call(r,G(".customelement",s),"get")))throw"e2";g=u}catch(e){"e1"===e?G.jgrid.info_dialog(n.errcap,"function 'custom_value' "+p.msg.nodefined,p.bClose,{styleUI:r.p.styleUI}):"e2"===e?G.jgrid.info_dialog(n.errcap,"function 'custom_value' "+p.msg.novalue,p.bClose,{styleUI:r.p.styleUI}):G.jgrid.info_dialog(n.errcap,e.message,p.bClose,{styleUI:r.p.styleUI})}}else{if(!0!==e.editable||s.hasClass("not-editable-cell")||G.jgrid.isFunction(r.p.isCellEditable)&&!r.p.isCellEditable.call(r,o,q,b))return g=u=m,void r.p.savedRow.splice(0,1);g=u=m}if(g!==r.p.savedRow[a].v){var t=G(r).triggerHandler("jqGridBeforeSaveCell",[r.p.savedRow[a].rowId,o,u,q,b]),C=(t&&(g=u=t),G.jgrid.isFunction(r.p.beforeSaveCell)&&(t=r.p.beforeSaveCell.call(r,r.p.savedRow[a].rowId,o,u,q,b))&&(g=u=t),G.jgrid.checkValues.call(r,u,b)),v=!1;if(!0===C[0]){var t=G(r).triggerHandler("jqGridBeforeSubmitCell",[r.p.savedRow[a].rowId,o,u,q,b])||{},w=(G.jgrid.isFunction(r.p.beforeSubmitCell)&&(t=(t=r.p.beforeSubmitCell.call(r,r.p.savedRow[a].rowId,o,u,q,b))||{}),G(r).triggerHandler("jqGridOnSubmitCell",[r.p.savedRow[a].rowId,o,u,q,b]));if(void 0===w&&(w=!0),!1===(w=G.jgrid.isFunction(r.p.onSubmitCell)&&void 0===(w=r.p.onSubmitCell(r.p.savedRow[a].rowId,o,u,q,b))?!0:w))return;0<G("input.hasDatepicker",s).length&&G("input.hasDatepicker",s).datepicker("hide");var h={};if("remote"===r.p.cellsubmit)if(r.p.cellurl){r.p.autoencode&&(u=G.jgrid.htmlEncode(u)),e.editoptions&&e.editoptions.NullIfEmpty&&""===u&&(u="null",v=!0),h[o]=u;var w=r.p.prmNames,j=w.id,y=w.oper;h[j]=G.jgrid.stripPref(r.p.idPrefix,r.p.savedRow[a].rowId),h[y]=w.editoper,h=G.extend(t,h),G(r).jqGrid("progressBar",{method:"show",loadtype:r.p.loadui,htmlcontent:G.jgrid.getRegional(r,"defaults.savetext")}),r.grid.hDiv.loading=!0,G.ajax(G.extend({url:r.p.cellurl,data:G.jgrid.isFunction(r.p.serializeCellData)?r.p.serializeCellData.call(r,h,o):h,type:"POST",success:function(e,i,l){var t;G(r).jqGrid("progressBar",{method:"hide",loadtype:r.p.loadui}),r.grid.hDiv.loading=!1,"success"===i&&(!0===(t=!0===(t=G(r).triggerHandler("jqGridAfterSubmitCell",[r,l,h[j],o,u,q,b])||[!0,""])[0]&&G.jgrid.isFunction(r.p.afterSubmitCell)?r.p.afterSubmitCell.call(r,l,h[j],o,u,q,b):t)[0]?(v&&(u=""),G(s).empty(),G(r).jqGrid("setCell",r.p.savedRow[a].rowId,b,g,!1,!1,!0),s=G("td",d).eq(b),G(s).addClass("dirty-cell"),G(d).addClass("edited"),G(r).triggerHandler("jqGridAfterSaveCell",[r.p.savedRow[a].rowId,o,u,q,b]),G.jgrid.isFunction(r.p.afterSaveCell)&&r.p.afterSaveCell.call(r,r.p.savedRow[a].rowId,o,u,q,b),r.p.savedRow.splice(0,1)):(G(r).triggerHandler("jqGridErrorCell",[l,i]),G.jgrid.isFunction(r.p.errorCell)?r.p.errorCell.call(r,l,i):G.jgrid.info_dialog(n.errcap,t[1],p.bClose,{styleUI:r.p.styleUI,top:f.top+30,left:f.left,onClose:function(){r.p.restoreCellonFail||G("#"+q+"_"+c,d).focus()}}),r.p.restoreCellonFail&&G(r).jqGrid("restoreCell",q,b)))},error:function(e,i,l){G("#lui_"+G.jgrid.jqID(r.p.id)).hide(),r.grid.hDiv.loading=!1,G(r).triggerHandler("jqGridErrorCell",[e,i,l]),G.jgrid.isFunction(r.p.errorCell)?r.p.errorCell.call(r,e,i,l):G.jgrid.info_dialog(n.errcap,e.status+" : "+e.statusText+"<br/>"+i,p.bClose,{styleUI:r.p.styleUI,top:f.top+30,left:f.left,onClose:function(){r.p.restoreCellonFail||G("#"+q+"_"+c,d).focus()}}),r.p.restoreCellonFail&&G(r).jqGrid("restoreCell",q,b)}},G.jgrid.ajaxOptions,r.p.ajaxCellOptions||{}))}else try{G.jgrid.info_dialog(n.errcap,n.nourl,p.bClose,{styleUI:r.p.styleUI}),r.p.restoreCellonFail&&G(r).jqGrid("restoreCell",q,b)}catch(e){}"clientArray"===r.p.cellsubmit?(G(s).empty(),G(r).jqGrid("setCell",r.p.savedRow[a].rowId,b,g,!1,!1,!0),s=G("td",d).eq(b),G(s).addClass("dirty-cell"),G(d).addClass("edited"),G(r).triggerHandler("jqGridAfterSaveCell",[r.p.savedRow[a].rowId,o,u,q,b]),G.jgrid.isFunction(r.p.afterSaveCell)&&r.p.afterSaveCell.call(r,r.p.savedRow[a].rowId,o,u,q,b),r.p.savedRow.splice(0,1)):"storage"===r.p.cellsubmit&&((h=r.p.savedRow[a])[o]=u,h[r.p.keyName]=G.jgrid.stripPref(r.p.idPrefix,r.p.savedRow[a].rowId),G(r).jqGrid("updateStorageRecord",h).then(function(e){"complete"===e.type&&(G(s).empty(),G(r).jqGrid("setCell",r.p.savedRow[a].rowId,b,g,!1,!1,!0),s=G("td",d).eq(b),G(s).addClass("dirty-cell"),G(d).addClass("edited"),G(r).triggerHandler("jqGridAfterSaveCell",[r.p.savedRow[a].rowId,o,u,q,b]),G.jgrid.isFunction(r.p.afterSaveCell)&&r.p.afterSaveCell.call(r,r.p.savedRow[a].rowId,o,u,q,b),r.p.savedRow.splice(0,1))}).catch(function(e){G.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")}))}else try{G.jgrid.isFunction(r.p.validationCell)?r.p.validationCell.call(r,G("#"+q+"_"+c,d),C[1],q,b):(window.setTimeout(function(){G.jgrid.info_dialog(n.errcap,u+" "+C[1],p.bClose,{styleUI:r.p.styleUI,top:f.top+30,left:f.left,onClose:function(){r.p.restoreCellonFail||G("#"+q+"_"+c,d).focus()}})},50),r.p.restoreCellonFail&&G(r).jqGrid("restoreCell",q,b))}catch(e){alert(C[1])}}else G(r).jqGrid("restoreCell",q,b)}window.setTimeout(function(){G("#"+G.jgrid.jqID(r.p.knv)).attr("tabindex","-1").focus(),r.p.ariaBody&&G(r).jqGrid("focusBodyCell",r.p.iRow,r.p.iCol)},0)}})},restoreCell:function(t,r){return this.each(function(){var e=this,i=1<=e.p.savedRow.length?0:null;if(e.grid&&!0===e.p.cellEdit){if(null!==i){var l=G(e).jqGrid("getGridRowById",e.p.savedRow[i].rowId),l=G("td",l).eq(r);if(G.jgrid.isFunction(G.fn.datepicker))try{G("input.hasDatepicker",l).datepicker("hide")}catch(e){}G(l).empty().attr("tabindex","-1"),G(e).jqGrid("setCell",e.p.savedRow[0].rowId,r,e.p.savedRow[i].v,!1,!1,!0),G(e).triggerHandler("jqGridAfterRestoreCell",[e.p.savedRow[i].rowId,e.p.savedRow[i].v,t,r]),G.jgrid.isFunction(e.p.afterRestoreCell)&&e.p.afterRestoreCell.call(e,e.p.savedRow[i].rowId,e.p.savedRow[i].v,t,r),e.p.savedRow.splice(0,1)}window.setTimeout(function(){G("#"+e.p.knv).attr("tabindex","-1").focus(),e.p.ariaBody&&G(e).jqGrid("focusBodyCell",e.p.iRow,e.p.iCol)},0)}})},nextCell:function(t,r,o){var d;return this.each(function(){var e,i=this,l=!1;if(i.grid&&!0===i.p.cellEdit){for(e=r+1;e<i.p.colModel.length;e++)if(!0===i.p.colModel[e].editable&&(!G.jgrid.isFunction(i.p.isCellEditable)||i.p.isCellEditable.call(i,i.p.colModel[e].name,t,e))){l=e;break}!1!==l?(d=!0,G(i).jqGrid("editCell",t,l,!0,o)):(d=!1,0<i.p.savedRow.length&&G(i).jqGrid("saveCell",t,r))}}),d},prevCell:function(t,r,o){var d;return this.each(function(){var e,i=this,l=!1;if(!i.grid||!0!==i.p.cellEdit)return!1;for(e=r-1;0<=e;e--)if(!0===i.p.colModel[e].editable&&(!G.jgrid.isFunction(i.p.isCellEditable)||i.p.isCellEditable.call(i,i.p.colModel[e].name,t,e))){l=e;break}!1!==l?(d=!0,G(i).jqGrid("editCell",t,l,!0,o)):(d=!1,0<i.p.savedRow.length&&G(i).jqGrid("saveCell",t,r))}),d},GridNav:function(){return this.each(function(){var e,i,l,s=this;function t(e,i,l){var t,r,o,d;"v"===l.slice(0,1)&&(t=G(s.grid.bDiv)[0].clientHeight,d=G(s.grid.bDiv)[0].scrollTop,r=s.rows[e].offsetTop+s.rows[e].clientHeight,o=s.rows[e].offsetTop,"vd"===l&&t<=r&&(G(s.grid.bDiv)[0].scrollTop=G(s.grid.bDiv)[0].scrollTop+s.rows[e].clientHeight),"vu"===l)&&o<d&&(G(s.grid.bDiv)[0].scrollTop=G(s.grid.bDiv)[0].scrollTop-s.rows[e].clientHeight),"h"===l&&(t=G(s.grid.bDiv)[0].clientWidth,r=G(s.grid.bDiv)[0].scrollLeft,o=s.rows[e].cells[i].offsetLeft+s.rows[e].cells[i].clientWidth,d=s.rows[e].cells[i].offsetLeft,o>=t+parseInt(r,10)?G(s.grid.bDiv)[0].scrollLeft=G(s.grid.bDiv)[0].scrollLeft+s.rows[e].cells[i].clientWidth:d<r&&(G(s.grid.bDiv)[0].scrollLeft=G(s.grid.bDiv)[0].scrollLeft-s.rows[e].cells[i].clientWidth))}function r(e,i){var l,t;if("lft"===i)for(l=e+1,t=e;0<=t;t--)if(!0!==s.p.colModel[t].hidden){l=t;break}if("rgt"===i)for(l=e-1,t=e;t<s.p.colModel.length;t++)if(!0!==s.p.colModel[t].hidden){l=t;break}return l}s.grid&&!0===s.p.cellEdit&&(s.p.knv=s.p.id+"_kn",e=G("<div style='position:fixed;top:0px;width:1px;height:1px;' tabindex='0'><div tabindex='-1' style='width:1px;height:1px;' id='"+s.p.knv+"'></div></div>"),G(e).insertBefore(s.grid.cDiv),G("#"+s.p.knv).focus().keydown(function(e){switch(l=e.keyCode,"rtl"===s.p.direction&&(37===l?l=39:39===l&&(l=37)),l){case 38:0<s.p.iRow-1&&(t(s.p.iRow-1,s.p.iCol,"vu"),G(s).jqGrid("editCell",s.p.iRow-1,s.p.iCol,!1,e));break;case 40:s.p.iRow+1<=s.rows.length-1&&(t(s.p.iRow+1,s.p.iCol,"vd"),G(s).jqGrid("editCell",s.p.iRow+1,s.p.iCol,!1,e));break;case 37:0<=s.p.iCol-1&&(i=r(s.p.iCol-1,"lft"),t(s.p.iRow,i,"h"),G(s).jqGrid("editCell",s.p.iRow,i,!1,e));break;case 39:s.p.iCol+1<=s.p.colModel.length-1&&(i=r(s.p.iCol+1,"rgt"),t(s.p.iRow,i,"h"),G(s).jqGrid("editCell",s.p.iRow,i,!1,e));break;case 13:0<=parseInt(s.p.iCol,10)&&0<=parseInt(s.p.iRow,10)&&(e.preventDefault(),G(s).jqGrid("editCell",s.p.iRow,s.p.iCol,!0,e));break;default:return!0}return!1}))})},getChangedCells:function(o){var e=[];return o=o||"all",this.each(function(){var t,r=this;r.grid&&!0===r.p.cellEdit&&G(r.rows).each(function(i){var l={};G(this).hasClass("edited")&&(G("td",this).each(function(e){if("cb"!==(t=r.p.colModel[e].name)&&"subgrid"!==t&&"sc"!==t)if("dirty"===o){if(G(this).hasClass("dirty-cell"))try{l[t]=G.unformat.call(r,this,{rowId:r.rows[i].id,colModel:r.p.colModel[e]},e)}catch(e){l[t]=G.jgrid.htmlDecode(G(this).html())}}else try{l[t]=G.unformat.call(r,this,{rowId:r.rows[i].id,colModel:r.p.colModel[e]},e)}catch(e){l[t]=G.jgrid.htmlDecode(G(this).html())}}),l.id=this.id,e.push(l))})}),e}})});js/minified/grid.treegrid.js000064400000046060151676727230012061 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","./grid.base"],e):e(jQuery)}(function(N){"use strict";N.jgrid.extend({setTreeNode:function(u,G){return this.each(function(){var t=this;if(t.grid&&t.p.treeGrid){var e,r,i,d,a,s=t.p.expColInd,l=t.p.treeReader.expanded_field,n=t.p.treeReader.leaf_field,p=t.p.treeReader.level_field,o=t.p.treeReader.icon_field,h=t.p.treeReader.loaded,f=N.jgrid.styleUI[t.p.styleUI||"jQueryUI"].common,c=u;for(N(t).triggerHandler("jqGridBeforeSetTreeNode",[c,G]),N.jgrid.isFunction(t.p.beforeSetTreeNode)&&t.p.beforeSetTreeNode.call(t,c,G);u<G;){var g=N.jgrid.stripPref(t.p.idPrefix,t.rows[u].id),g=t.p._index[g],g=t.p.data[g];"nested"!==t.p.treeGridModel||g[n]||(i=parseInt(g[t.p.treeReader.left_field],10),e=parseInt(g[t.p.treeReader.right_field],10),g[n]=e===i+1?"true":"false",t.rows[u].cells[t.p._treeleafpos].innerHTML=g[n]),e=parseInt(g[p],10),i=0===t.p.tree_root_level?(r=e+1,e):(r=e)-1,d="<div class='tree-wrap tree-wrap-"+t.p.direction+"' style='width:"+18*r+"px;'>",d+="<div style='"+("rtl"===t.p.direction?"right:":"left:")+18*i+"px;' class='"+f.icon_base+" ",void 0!==g[h]&&("true"===g[h]||!0===g[h]?g[h]=!0:g[h]=!1),a="true"===g[n]||!0===g[n]?(d+=(void 0!==g[o]&&""!==g[o]?g[o]:t.p.treeIcons.leaf)+" tree-leaf treeclick",g[n]=!0,"leaf"):(g[n]=!1,""),g[l]=("true"===g[l]||!0===g[l])&&(g[h]||void 0===g[h]),!1===g[l]?d+=!0===g[n]?"'":t.p.treeIcons.plus+" tree-plus treeclick'":d+=!0===g[n]?"'":t.p.treeIcons.minus+" tree-minus treeclick'",d+="></div></div>",N(t.rows[u].cells[s]).wrapInner("<span class='cell-wrapper"+a+"'></span>").prepend(d),e===parseInt(t.p.tree_root_level,10)||N(t).jqGrid("isVisibleNode",g)||N(t.rows[u]).css("display","none"),N(t.rows[u].cells[s]).find("div.treeclick").on("click",function(e){e=e.target||e.srcElement,e=N.jgrid.stripPref(t.p.idPrefix,N(e,t.rows).closest("tr.jqgrow")[0].id),e=t.p._index[e];t.p.data[e][n]||(t.p.data[e][l]?(N(t).jqGrid("collapseRow",t.p.data[e]),N(t).jqGrid("collapseNode",t.p.data[e])):(N(t).jqGrid("expandRow",t.p.data[e]),N(t).jqGrid("expandNode",t.p.data[e])))}),!0===t.p.ExpandColClick&&N(t.rows[u].cells[s]).find("span.cell-wrapper").css("cursor","pointer").on("click",function(e){var e=e.target||e.srcElement,e=N.jgrid.stripPref(t.p.idPrefix,N(e,t.rows).closest("tr.jqgrow")[0].id),r=t.p._index[e];t.p.data[r][n]||(t.p.data[r][l]?(N(t).jqGrid("collapseRow",t.p.data[r]),N(t).jqGrid("collapseNode",t.p.data[r])):(N(t).jqGrid("expandRow",t.p.data[r]),N(t).jqGrid("expandNode",t.p.data[r]))),N(t).jqGrid("setSelection",e)}),u++}N(t).triggerHandler("jqGridAfterSetTreeNode",[c,G]),N.jgrid.isFunction(t.p.afterSetTreeNode)&&t.p.afterSetTreeNode.call(t,c,G)}})},setTreeGrid:function(){return this.each(function(){var e,r,t,i,d=this,a=0,s=!1,l=[],n=N.jgrid.styleUI[d.p.styleUI||"jQueryUI"].treegrid;if(d.p.treeGrid){for(t in d.p.treedatatype||N.extend(d.p,{treedatatype:d.p.datatype}),d.p.loadonce&&(d.p.treedatatype="local"),d.p.subGrid=!1,d.p.altRows=!1,d.p.treeGrid_bigData||(d.p.pgbuttons=!1,d.p.pginput=!1,d.p.rowList=[]),d.p.gridview=!0,null!==d.p.rowTotal||d.p.treeGrid_bigData||(d.p.rowNum=1e4),d.p.multiselect=!1,d.p.expColInd=0,e=n.icon_plus,"jQueryUI"===d.p.styleUI&&(e+="rtl"===d.p.direction?"w":"e"),d.p.treeIcons=N.extend({plus:e,minus:n.icon_minus,leaf:n.icon_leaf},d.p.treeIcons||{}),"nested"===d.p.treeGridModel?d.p.treeReader=N.extend({level_field:"level",left_field:"lft",right_field:"rgt",leaf_field:"isLeaf",expanded_field:"expanded",loaded:"loaded",icon_field:"icon"},d.p.treeReader):"adjacency"===d.p.treeGridModel&&(d.p.treeReader=N.extend({level_field:"level",parent_id_field:"parent",leaf_field:"isLeaf",expanded_field:"expanded",loaded:"loaded",icon_field:"icon"},d.p.treeReader)),d.p.colModel)if(d.p.colModel.hasOwnProperty(t))for(i in(r=d.p.colModel[t].name)!==d.p.ExpandColumn||s||(s=!0,d.p.expColInd=a),a++,r!==d.p.treeReader.level_field&&r!==d.p.treeReader.left_field&&r!==d.p.treeReader.right_field||(d.p.colModel[t].sorttype="integer"),d.p.treeReader)d.p.treeReader.hasOwnProperty(i)&&d.p.treeReader[i]===r&&l.push(r);N.each(d.p.treeReader,function(e,r){r&&-1===N.inArray(r,l)&&("leaf_field"===e&&(d.p._treeleafpos=a),a++,d.p.colNames.push(r),d.p.colModel.push({name:r,width:1,hidden:!0,sortable:!1,resizable:!1,hidedlg:!0,editable:!0,search:!1}))})}})},expandRow:function(s){this.each(function(){var e,r,t,i,d,a=this;a.p.treeGrid_bigData||(e=a.p.lastpage),a.grid&&a.p.treeGrid&&(r=N(a).jqGrid("getNodeChildren",s),t=a.p.treeReader.expanded_field,i=s[a.p.localReader.id],!1===(d=(d=void 0===(d=N(a).triggerHandler("jqGridBeforeExpandTreeGridRow",[i,s,r]))?!0:d)&&N.jgrid.isFunction(a.p.beforeExpandTreeGridRow)?a.p.beforeExpandTreeGridRow.call(a,i,s,r):d)||(N(r).each(function(){var e=a.p.idPrefix+N.jgrid.getAccessor(this,a.p.localReader.id);N(N(a).jqGrid("getGridRowById",e)).css("display",""),this[t]&&N(a).jqGrid("expandRow",this)}),N(a).triggerHandler("jqGridAfterExpandTreeGridRow",[i,s,r]),N.jgrid.isFunction(a.p.afterExpandTreeGridRow)&&a.p.afterExpandTreeGridRow.call(a,i,s,r),a.p.treeGrid_bigData)||(a.p.lastpage=e))})},collapseRow:function(a){this.each(function(){var e,r,t,i,d=this;d.grid&&d.p.treeGrid&&(e=N(d).jqGrid("getNodeChildren",a),r=d.p.treeReader.expanded_field,t=a[d.p.localReader.id],!1!==(i=(i=void 0===(i=N(d).triggerHandler("jqGridBeforeCollapseTreeGridRow",[t,a,e]))?!0:i)&&N.jgrid.isFunction(d.p.beforeCollapseTreeGridRow)?d.p.beforeCollapseTreeGridRow.call(d,t,a,e):i))&&(N(e).each(function(){var e=d.p.idPrefix+N.jgrid.getAccessor(this,d.p.localReader.id);N(N(d).jqGrid("getGridRowById",e)).css("display","none"),this[r]&&N(d).jqGrid("collapseRow",this)}),N(d).triggerHandler("jqGridAfterCollapseTreeGridRow",[t,a,e]),N.jgrid.isFunction(d.p.afterCollapseTreeGridRow))&&d.p.afterCollapseTreeGridRow.call(d,t,a,e)})},getRootNodes:function(){var d=[];return this.each(function(){var e,r,t=this,i=t.p.data;if(t.grid&&t.p.treeGrid)switch(t.p.treeGridModel){case"nested":e=t.p.treeReader.level_field,N(i).each(function(){parseInt(this[e],10)===parseInt(t.p.tree_root_level,10)&&d.push(this)});break;case"adjacency":r=t.p.treeReader.parent_id_field,N(i).each(function(){null!==this[r]&&"null"!==String(this[r]).toLowerCase()||d.push(this)})}}),d},getNodeDepth:function(r){var t=null;return this.each(function(){if(this.grid&&this.p.treeGrid)switch(this.p.treeGridModel){case"nested":var e=this.p.treeReader.level_field;t=parseInt(r[e],10)-parseInt(this.p.tree_root_level,10);break;case"adjacency":t=N(this).jqGrid("getNodeAncestors",r).length}}),t},getNodeParent:function(h){var f=null;return this.each(function(){var e=this;if(e.grid&&e.p.treeGrid)switch(e.p.treeGridModel){case"nested":var r=e.p.treeReader.left_field,t=e.p.treeReader.right_field,i=e.p.treeReader.level_field,d=parseInt(h[r],10),a=parseInt(h[t],10),s=parseInt(h[i],10);N(this.p.data).each(function(){if(parseInt(this[i],10)===s-1&&parseInt(this[r],10)<d&&parseInt(this[t],10)>a)return f=this,!1});break;case"adjacency":for(var l=e.p.treeReader.parent_id_field,n=e.p.localReader.id,p=h[n],o=e.p._index[p];o--;)if(String(e.p.data[o][n])===String(N.jgrid.stripPref(e.p.idPrefix,h[l]))){f=e.p.data[o];break}}}),f},getNodeChildren:function(f){var c=[];return this.each(function(){var e=this;if(e.grid&&e.p.treeGrid){var r,t=this.p.data.length;switch(e.p.treeGridModel){case"nested":for(var i=e.p.treeReader.left_field,d=e.p.treeReader.right_field,a=e.p.treeReader.level_field,s=parseInt(f[i],10),l=parseInt(f[d],10),n=parseInt(f[a],10),p=0;p<t;p++)(r=e.p.data[p])&&parseInt(r[a],10)===n+1&&parseInt(r[i],10)>s&&parseInt(r[d],10)<l&&c.push(r);break;case"adjacency":var o=e.p.treeReader.parent_id_field,h=e.p.localReader.id;for(p=0;p<t;p++)(r=e.p.data[p])&&String(r[o])===String(N.jgrid.stripPref(e.p.idPrefix,f[h]))&&c.push(r)}}}),c},getFullTreeNode:function(h,f){var c=[];return this.each(function(){var r,t,i,d=this,a=d.p.treeReader.expanded_field;if(d.grid&&d.p.treeGrid)switch(null!=f&&"boolean"==typeof f||(f=!1),d.p.treeGridModel){case"nested":var e=d.p.treeReader.left_field,s=d.p.treeReader.right_field,l=d.p.treeReader.level_field,n=parseInt(h[e],10),p=parseInt(h[s],10),o=parseInt(h[l],10);N(this.p.data).each(function(){parseInt(this[l],10)>=o&&parseInt(this[e],10)>=n&&parseInt(this[e],10)<=p&&(f&&(this[a]=!0),c.push(this))});break;case"adjacency":h&&(c.push(h),t=d.p.treeReader.parent_id_field,i=d.p.localReader.id,N(this.p.data).each(function(e){for(r=c.length,e=0;e<r;e++)if(String(N.jgrid.stripPref(d.p.idPrefix,c[e][i]))===String(this[t])){f&&(this[a]=!0),c.push(this);break}}))}}),c},getNodeAncestors:function(r,t,i){var d=[];return void 0===t&&(t=!1),this.each(function(){if(this.grid&&this.p.treeGrid){i=void 0!==i&&this.p.treeReader.expanded_field;for(var e=N(this).jqGrid("getNodeParent",r);e;){if(i)try{e[i]=!0}catch(e){}t?d.unshift(e):d.push(e),e=N(this).jqGrid("getNodeParent",e)}}}),d},isVisibleNode:function(t){var i=!0;return this.each(function(){var e,r;this.grid&&this.p.treeGrid&&(e=N(this).jqGrid("getNodeAncestors",t),r=this.p.treeReader.expanded_field,N(e).each(function(){if(!(i=i&&this[r]))return!1}))}),i},isNodeLoaded:function(i){var d;return this.each(function(){var e,r,t=this;t.grid&&t.p.treeGrid&&(e=t.p.treeReader.leaf_field,r=t.p.treeReader.loaded,d=void 0!==i&&(void 0!==i[r]?i[r]:!!(i[e]||0<N(t).jqGrid("getNodeChildren",i).length)))}),d},setLeaf:function(d,a,s){return this.each(function(){var e=N.jgrid.getAccessor(d,this.p.localReader.id),r=N("#"+e,this.grid.bDiv)[0],t=this.p.treeReader.leaf_field;try{var i=this.p._index[e];null!=i&&(this.p.data[i][t]=a)}catch(e){}!0===a?N("div.treeclick",r).removeClass(this.p.treeIcons.minus+" tree-minus "+this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.leaf+" tree-leaf"):!1===a&&(e=this.p.treeIcons.minus+" tree-minus",s&&(e=this.p.treeIcons.plus+" tree-plus"),N("div.treeclick",r).removeClass(this.p.treeIcons.leaf+" tree-leaf").addClass(e))})},reloadNode:function(o,h){return this.each(function(){var e,r,t,i,d,a,s,l,n,p;this.grid&&this.p.treeGrid&&(r=this.p.localReader.id,e=this.p.selrow,N(this).jqGrid("delChildren",o[r]),(h=void 0===h?!1:h)||jQuery._data(this,"events").jqGridAfterSetTreeNode||N(this).on("jqGridAfterSetTreeNode.reloadNode",function(){var e,r,t=this.p.treeReader.leaf_field;this.p.reloadnode&&(e=this.p.reloadnode,r=N(this).jqGrid("getNodeChildren",e),e[t]&&r.length?N(this).jqGrid("setLeaf",e,!1):e[t]||0!==r.length||N(this).jqGrid("setLeaf",e,!0)),this.p.reloadnode=!1}),r=this.p.treeReader.expanded_field,t=this.p.treeReader.parent_id_field,i=this.p.treeReader.loaded,d=this.p.treeReader.level_field,a=this.p.treeReader.leaf_field,s=this.p.treeReader.left_field,l=this.p.treeReader.right_field,n=N.jgrid.getAccessor(o,this.p.localReader.id),p=N("#"+n,this.grid.bDiv)[0],o[r]=!0,o[a]||N("div.treeclick",p).removeClass(this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.minus+" tree-minus"),this.p.treeANode=p.rowIndex,this.p.datatype=this.p.treedatatype,this.p.reloadnode=o,h&&(this.p.treeANode=0<p.rowIndex?p.rowIndex-1:1,N(this).jqGrid("delRowData",n)),"nested"===this.p.treeGridModel?N(this).jqGrid("setGridParam",{postData:{nodeid:n,n_left:o[s],n_right:o[l],n_level:o[d]}}):N(this).jqGrid("setGridParam",{postData:{nodeid:n,parentid:o[t],n_level:o[d]}}),N(this).trigger("reloadGrid"),o[i]=!0,"nested"===this.p.treeGridModel?N(this).jqGrid("setGridParam",{selrow:e,postData:{nodeid:"",n_left:"",n_right:"",n_level:""}}):N(this).jqGrid("setGridParam",{selrow:e,postData:{nodeid:"",parentid:"",n_level:""}}))})},expandNode:function(o){return this.each(function(){var e,r,t,i,d,a,s,l,n,p;this.grid&&this.p.treeGrid&&(e=this.p.treeReader.expanded_field,r=this.p.treeReader.parent_id_field,t=this.p.treeReader.loaded,i=this.p.treeReader.level_field,d=this.p.treeReader.left_field,a=this.p.treeReader.right_field,o[e]||(s=N.jgrid.getAccessor(o,this.p.localReader.id),l=N("#"+this.p.idPrefix+N.jgrid.jqID(s),this.grid.bDiv)[0],n=this.p._index[s],!1!==(p=(p=void 0===(p=N(this).triggerHandler("jqGridBeforeExpandTreeGridNode",[s,o]))?!0:p)&&N.jgrid.isFunction(this.p.beforeExpandTreeGridNode)?this.p.beforeExpandTreeGridNode.call(this,s,o):p)&&(N(this).jqGrid("isNodeLoaded",this.p.data[n])?(o[e]=!0,N("div.treeclick",l).removeClass(this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.minus+" tree-minus")):this.grid.hDiv.loading||(o[e]=!0,N("div.treeclick",l).removeClass(this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.minus+" tree-minus"),this.p.treeANode=l.rowIndex,this.p.datatype=this.p.treedatatype,"nested"===this.p.treeGridModel?N(this).jqGrid("setGridParam",{postData:{nodeid:s,n_left:o[d],n_right:o[a],n_level:o[i]}}):N(this).jqGrid("setGridParam",{postData:{nodeid:s,parentid:o[r],n_level:o[i]}}),N(this).trigger("reloadGrid"),o[t]=!0,"nested"===this.p.treeGridModel?N(this).jqGrid("setGridParam",{postData:{nodeid:"",n_left:"",n_right:"",n_level:""}}):N(this).jqGrid("setGridParam",{postData:{nodeid:"",parentid:"",n_level:""}})),N(this).triggerHandler("jqGridAfterExpandTreeGridNode",[s,o]),N.jgrid.isFunction(this.p.afterExpandTreeGridNode))&&this.p.afterExpandTreeGridNode.call(this,s,o)))})},collapseNode:function(d){return this.each(function(){var e,r,t,i;this.grid&&this.p.treeGrid&&(e=this.p.treeReader.expanded_field,d[e])&&(r=N.jgrid.getAccessor(d,this.p.localReader.id),t=N("#"+this.p.idPrefix+N.jgrid.jqID(r),this.grid.bDiv)[0],(i=void 0===(i=N(this).triggerHandler("jqGridBeforeCollapseTreeGridNode",[r,d]))?!0:i)&&N.jgrid.isFunction(this.p.beforeCollapseTreeGridNode)&&(i=this.p.beforeCollapseTreeGridNode.call(this,r,d)),(d[e]=!1)!==i)&&(N("div.treeclick",t).removeClass(this.p.treeIcons.minus+" tree-minus").addClass(this.p.treeIcons.plus+" tree-plus"),N(this).triggerHandler("jqGridAfterCollapseTreeGridNode",[r,d]),N.jgrid.isFunction(this.p.afterCollapseTreeGridNode))&&this.p.afterCollapseTreeGridNode.call(this,r,d)})},SortTree:function(o,h,f,c){return this.each(function(){if(this.grid&&this.p.treeGrid){var e,r,t,i,d,a=[],s=this,l=N(this).jqGrid("getRootNodes",s.p.search),l=N.jgrid.from.call(this,l);for(Boolean(s.p.sortTreeByNodeType)&&(d=s.p.sortTreeNodeOrder&&"desc"===s.p.sortTreeNodeOrder.toLowerCase()?"d":"a",l.orderBy(s.p.treeReader.leaf_field,d,f,c)),l.orderBy(o,h,f,c),e=0,r=(i=l.select()).length;e<r;e++)t=i[e],a.push(t),N(this).jqGrid("collectChildrenSortTree",a,t,o,h,f,c);var n=N(this).jqGrid("getDataIDs"),p=1;N.each(a,function(e){var r=N.jgrid.getAccessor(this,s.p.localReader.id);-1!==N.inArray(r,n)&&(N("#"+N.jgrid.jqID(s.p.id)+" tbody tr").eq(p).after(N("#"+N.jgrid.jqID(s.p.id)+" tbody tr#"+N.jgrid.jqID(r))),p++)}),i=l=null}})},searchTree:function(t){var i,d,a,s,l,n,p,o=t.length||0,h=[],f=[],c=[];return this.each(function(){if(this.grid&&this.p.treeGrid&&o)for(i=this.p.localReader.id,p=0;p<o;p++){var e;if(h=N(this).jqGrid("getNodeAncestors",t[p],!0,!0),Boolean(this.p.FullTreeSearchResult)?(e=N(this).jqGrid("getFullTreeNode",t[p],!0),h=h.concat(e)):h.push(t[p]),d=h[0][i],-1!==N.inArray(d,f))for(l=0,a=h.length;l<a;l++){var r=!1;for(n=0,s=c.length;n<s;n++)if(h[l][i]===c[n][i]){r=!0;break}r||c.push(h[l])}else f.push(d),c=c.concat(h)}}),c},collectChildrenSortTree:function(a,s,l,n,p,o){return this.each(function(){if(this.grid&&this.p.treeGrid){var e,r,t,i,d=N(this).jqGrid("getNodeChildren",s,this.p.search),d=N.jgrid.from.call(this,d);for(d.orderBy(l,n,p,o),e=0,r=(i=d.select()).length;e<r;e++)t=i[e],a.push(t),N(this).jqGrid("collectChildrenSortTree",a,t,l,n,p,o)}})},setTreeRow:function(e,r){var t=!1;return this.each(function(){this.grid&&this.p.treeGrid&&(t=N(this).jqGrid("setRowData",e,r))}),t},delTreeNode:function(c,g){return this.each(function(){var e,r,t,i,d=this,a=d.p.localReader.id,s=d.p.treeReader.left_field,l=d.p.treeReader.right_field;if(d.grid&&d.p.treeGrid){c=N.jgrid.stripPref(d.p.idPrefix,c);var n=d.p._index[c];if(g&&(r=N(this).jqGrid("getNodeParent",d.p.data[n])),void 0!==n){var p,o,h=(p=parseInt(d.p.data[n][l],10))-parseInt(d.p.data[n][s],10)+1,f=N(d).jqGrid("getFullTreeNode",d.p.data[n]);if(0<f.length)for(e=0;e<f.length;e++)N(d).jqGrid("delRowData",d.p.idPrefix+f[e][a]);if("nested"===d.p.treeGridModel){if((t=N.jgrid.from.call(d,d.p.data).greater(s,p,{stype:"integer"}).select()).length)for(i in t)t.hasOwnProperty(i)&&(t[i][s]=parseInt(t[i][s],10)-h);if((t=N.jgrid.from.call(d,d.p.data).greater(l,p,{stype:"integer"}).select()).length)for(i in t)t.hasOwnProperty(i)&&(t[i][l]=parseInt(t[i][l],10)-h)}g&&(p=this.p.treeReader.leaf_field,o=N(this).jqGrid("getNodeChildren",r),r[p]&&o.length?N(this).jqGrid("setLeaf",r,!1):n[p]||0!==o.length||N(this).jqGrid("setLeaf",r,!0))}}})},delChildren:function(h){return this.each(function(){var e,r,t=this,i=t.p.localReader.id,d=t.p.treeReader.left_field,a=t.p.treeReader.right_field;if(t.grid&&t.p.treeGrid){h=N.jgrid.stripPref(t.p.idPrefix,h);var s=t.p._index[h];if(void 0!==s){var l,n=(l=parseInt(t.p.data[s][a],10))-parseInt(t.p.data[s][d],10)+1,p=N(t).jqGrid("getFullTreeNode",t.p.data[s]);if(0<p.length)for(var o=0;o<p.length;o++)p[o][i]!==h&&N(t).jqGrid("delRowData",t.p.idPrefix+p[o][i]);if("nested"===t.p.treeGridModel){if((e=N.jgrid.from(t.p.data).greater(d,l,{stype:"integer"}).select()).length)for(r in e)e.hasOwnProperty(r)&&(e[r][d]=parseInt(e[r][d],10)-n);if((e=N.jgrid.from(t.p.data).greater(a,l,{stype:"integer"}).select()).length)for(r in e)e.hasOwnProperty(r)&&(e[r][a]=parseInt(e[r][a],10)-n)}}}})},addChildNode:function(e,r,t,i){var d=this[0];if(t){var a,s=d.p.treeReader.expanded_field,l=d.p.treeReader.leaf_field,n=d.p.treeReader.level_field,p=d.p.treeReader.parent_id_field,o=d.p.treeReader.left_field,h=d.p.treeReader.right_field,f=d.p.treeReader.loaded,c=0,g=r;if(void 0===i&&(i=!1),null==e){if(0<=(x=d.p.data.length-1))for(;0<=x;)c=Math.max(c,parseInt(d.p.data[x][d.p.localReader.id],10)),x--;e=c+1}var u,G,j=N(d).jqGrid("getInd",r),v=!1;if(null==r||""===r)g=r=null,R="last",q=d.p.tree_root_level,x=d.p.data.length+1;else{var _,R="after",I=N.jgrid.stripPref(d.p.idPrefix,r),I=d.p._index[I],q=(r=(_=d.p.data[I])[d.p.localReader.id],parseInt(_[n],10)+1),w=N(d).jqGrid("getFullTreeNode",_),x=w.length?(g=x=w[w.length-1][d.p.localReader.id],N(d).jqGrid("getInd",d.p.idPrefix+g)):N(d).jqGrid("getInd",d.p.idPrefix+r);if(_[l]&&(_[s]=v=!0,N(d.rows[j]).find("span.cell-wrapperleaf").removeClass("cell-wrapperleaf").addClass("cell-wrapper").end().find("div.tree-leaf").removeClass(d.p.treeIcons.leaf+" tree-leaf").addClass(d.p.treeIcons.minus+" tree-minus"),d.p.data[I][l]=!1,_[f]=!0),!1===x)throw"Parent item with id: "+g+" ("+r+") can't be found";x++}if(w=x+1,void 0===t[s]&&(t[s]=!1),void 0===t[f]&&(t[f]=!1),t[n]=q,void 0===t[l]&&(t[l]=!0),"adjacency"===d.p.treeGridModel&&(t[p]=r),"nested"===d.p.treeGridModel)if(null!==r){if(a=parseInt(_[h],10),(u=N.jgrid.from.call(d,d.p.data).greaterOrEquals(h,a,{stype:"integer"}).select()).length)for(G in u)u.hasOwnProperty(G)&&(u[G][o]=u[G][o]>a?parseInt(u[G][o],10)+2:u[G][o],u[G][h]=u[G][h]>=a?parseInt(u[G][h],10)+2:u[G][h]);t[o]=a,t[h]=a+1}else{if(a=parseInt(N(d).jqGrid("getCol",h,!1,"max"),10),(u=N.jgrid.from.call(d,d.p.data).greater(o,a,{stype:"integer"}).select()).length)for(G in u)u.hasOwnProperty(G)&&(u[G][o]=parseInt(u[G][o],10)+2);if((u=N.jgrid.from.call(d,d.p.data).greater(h,a,{stype:"integer"}).select()).length)for(G in u)u.hasOwnProperty(G)&&(u[G][h]=parseInt(u[G][h],10)+2);t[o]=a+1,t[h]=a+2}(null===r||N(d).jqGrid("isNodeLoaded",_)||v)&&(N(d).jqGrid("addRowData",e,t,R,d.p.idPrefix+g),N(d).jqGrid("setTreeNode",x,w)),_&&!_[s]&&i&&N(d.rows[j]).find("div.treeclick").click()}}})});js/minified/grid.jqueryui.js000064400000030226151676727230012126 0ustar00!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","./grid.base","jquery-ui/dialog","jquery-ui/draggable","jquery-ui/droppable","jquery-ui/resizable","jquery-ui/sortable","./addons/ui.multiselect"],e):e(jQuery)}(function(b){"use strict";var s;b.jgrid.msie()&&8===b.jgrid.msiever()&&(b.expr[":"].hidden=function(e){return 0===e.offsetWidth||0===e.offsetHeight||"none"===e.style.display}),b.jgrid._multiselect=!1,b.ui&&b.ui.multiselect&&(b.ui.multiselect.prototype._setSelected&&(s=b.ui.multiselect.prototype._setSelected,b.ui.multiselect.prototype._setSelected=function(e,t){var i,e=s.call(this,e,t);return t&&this.selectedList&&(i=this.element,this.selectedList.find("li").each(function(){b(this).data("optionLink")&&b(this).data("optionLink").remove().appendTo(i)})),e}),b.ui.multiselect.prototype.destroy&&(b.ui.multiselect.prototype.destroy=function(){this.element.show(),this.container.remove(),(void 0===b.Widget?b.widget:b.Widget).prototype.destroy.apply(this,arguments)}),b.jgrid._multiselect=!0),b.jgrid.extend({sortableColumns:function(d){return this.each(function(){var r=this,e=b.jgrid.jqID(r.p.id),t=!1;function i(){r.p.disableClick=!0,r.p.frozenColumns&&(b(r).jqGrid("destroyFrozenColumns"),t=!0)}function s(){setTimeout(function(){r.p.disableClick=!1,t&&(b(r).jqGrid("setFrozenColumns"),t=!1)},50)}var a,o,e={tolerance:"pointer",axis:"x",scrollSensitivity:"1",items:">th:not(:has(#jqgh_"+e+"_cb,#jqgh_"+e+"_rn,#jqgh_"+e+"_subgrid),:hidden)",cancel:".sortable-disabled",placeholder:{element:function(e){return b(document.createElement(e[0].nodeName)).addClass(e[0].className+" ui-sortable-placeholder ui-state-highlight").removeClass("ui-sortable-helper")[0]},update:function(e,t){t.height(e.currentItem.innerHeight()-parseInt(e.currentItem.css("paddingTop")||0,10)-parseInt(e.currentItem.css("paddingBottom")||0,10)),t.width(e.currentItem.innerWidth()-parseInt(e.currentItem.css("paddingLeft")||0,10)-parseInt(e.currentItem.css("paddingRight")||0,10))}},update:function(e,t){var t=b(t.item).parent(),t=b(">th",t),i=r.p.colModel,s={},a=r.p.id+"_",o=(b.each(i,function(e){s[this.name]=e}),[]);t.each(function(){var e=b(">div",this).get(0).id.replace(/^jqgh_/,"").replace(a,"");s.hasOwnProperty(e)&&o.push(s[e])}),b(r).jqGrid("remapColumns",o,!0,!0),b.jgrid.isFunction(r.p.sortable.update)&&r.p.sortable.update(o)}},e=(r.p.sortable.options?b.extend(e,r.p.sortable.options):b.jgrid.isFunction(r.p.sortable)&&(r.p.sortable={update:r.p.sortable}),e.start?(a=e.start,e.start=function(e,t){i(),a.call(this,e,t)}):e.start=i,e.stop?(o=e.stop,e.stop=function(e,t){s(),o.call(this,e,t)}):e.stop=s,r.p.sortable.exclude&&(e.items+=":not("+r.p.sortable.exclude+")"),d.sortable(e)),e=e.data("sortable")||e.data("uiSortable");null!=e&&(e.data("sortable").floating=!0)})},columnChooser:function(t){var i,s,a=this,r={},o=[],e=a.jqGrid("getGridParam","colModel"),d=b.extend([],a.jqGrid("getGridParam","colNames")),n=function(e){return b.ui.multiselect.prototype&&e.data(b.ui.multiselect.prototype.widgetFullName||b.ui.multiselect.prototype.widgetName)||e.data("ui-multiselect")||e.data("multiselect")},l=b.jgrid.getRegional(this[0],"col");if(!b("#colchooser_"+b.jgrid.jqID(a[0].p.id)).length){if(i=b('<div id="colchooser_'+a[0].p.id+'" style="position:relative;overflow:hidden"><div><select multiple="multiple"></select></div></div>'),s=b("select",i),t=b.extend({width:400,height:240,classname:null,groupHeaders:!1,done:function(e){e&&a.jqGrid("remapColumns",e,!0)},msel:"multiselect",dlog:"dialog",dialog_opts:{minWidth:470,dialogClass:"ui-jqdialog"},dlog_opts:function(e){var t={};return t[e.bSubmit]=function(){e.apply_perm(),e.cleanup(!1)},t[e.bCancel]=function(){e.cleanup(!0)},b.extend(!0,{buttons:t,close:function(){e.cleanup(!0)},modal:e.modal||!1,resizable:e.resizable||!0,width:e.width+70,resize:f},e.dialog_opts||{})},apply_perm:function(){var o=[];b("option",s).each(function(){b(this).is(":selected")?a.jqGrid("showCol",e[this.value].name):a.jqGrid("hideCol",e[this.value].name)}),b("option[selected]",s).each(function(){this.selected&&o.push(parseInt(this.value,10))}),b.each(o,function(){delete r[e[parseInt(this,10)].name]}),b.each(r,function(){var e,t,i,s,a=parseInt(this,10);e=o,t=a=a,o=0<=a?(s=(i=e.slice()).splice(a,Math.max(e.length-a,a)),i[a=a>e.length?e.length:a]=t,i.concat(s)):e}),t.done&&t.done.call(a,o),a.jqGrid("setGridWidth",a[0].p.width,a[0].p.shrinkToFit)},cleanup:function(e){m(t.dlog,i,"destroy"),m(t.msel,s,"destroy"),i.remove(),e&&t.done&&t.done.call(a)},msel_opts:{dividerLocation:.5}},l,t||{}),b.ui&&b.ui.multiselect&&b.ui.multiselect.defaults){if(!b.jgrid._multiselect)return void alert("Multiselect plugin loaded after jqGrid. Please load the plugin before the jqGrid!");t.msel_opts=b.extend(b.ui.multiselect.defaults,t.msel_opts)}if(a.jqGrid("isGroupHeaderOn")&&t.groupHeaders)for(var l=a[0].p.groupHeader.length,c=a[0].p.groupHeader[l-1],u=0;u<d.length;u++){var p=b.jgrid.inColumnHeader(e[u].name,c.groupHeaders);if(0<=p){d[u]=c.groupHeaders[p].titleText+"::"+d[u];for(var h=1;h<=c.groupHeaders[p].numberOfColumns-1;h++)d[u+h]=c.groupHeaders[p].titleText+"::"+d[u+h];u=u+c.groupHeaders[p].numberOfColumns-1}}t.caption&&i.attr("title",t.caption),t.classname&&(i.addClass(t.classname),s.addClass(t.classname)),t.width&&(b(">div",i).css({width:t.width,margin:"0 auto"}),s.css("width",t.width)),t.height&&(b(">div",i).css("height",t.height),s.css("height",t.height-10)),s.empty(),b.each(e,function(e){r[this.name]=e,this.hidedlg?this.hidden||o.push(e):s.append("<option value='"+e+"' "+(this.hidden?"":"selected='selected'")+">"+b.jgrid.stripHtml(d[e])+"</option>")}),l=b.jgrid.isFunction(t.dlog_opts)?t.dlog_opts.call(a,t):t.dlog_opts,m(t.dlog,i,l),l=b.jgrid.isFunction(t.msel_opts)?t.msel_opts.call(a,t):t.msel_opts,m(t.msel,s,l);var l=b("#colchooser_"+b.jgrid.jqID(a[0].p.id)),g=b(".ui-jqgrid").css("font-size")||"11px";l.parent().css("font-size",g),l.css({margin:"auto"}),l.find(">div").css({width:"100%",height:"100%",margin:"auto"}),(g=n(s)).container.css({width:"100%",height:"100%",margin:"auto"}),g.selectedContainer.css({width:100*g.options.dividerLocation+"%",height:"100%",margin:"auto",boxSizing:"border-box"}),g.availableContainer.css({width:100-100*g.options.dividerLocation+"%",height:"100%",margin:"auto",boxSizing:"border-box"}),g.selectedList.css("height","auto"),g.availableList.css("height","auto"),l=Math.max(g.selectedList.height(),g.availableList.height()),l=Math.min(l,b(window).height()),g.selectedList.css("height",l),g.availableList.css("height",l),f()}function m(e,t){e&&("string"==typeof e?b.fn[e]&&b.fn[e].apply(t,b.makeArray(arguments).slice(2)):b.jgrid.isFunction(e)&&e.apply(t,b.makeArray(arguments).slice(2)))}function f(){var e=n(s),t=e.container.closest(".ui-dialog-content");0<t.length&&"object"==typeof t[0].style?t[0].style.width="":t.css("width",""),e.selectedList.height(Math.max(e.selectedContainer.height()-e.selectedActions.outerHeight()-1,1)),e.availableList.height(Math.max(e.availableContainer.height()-e.availableActions.outerHeight()-1,1))}},sortableRows:function(a){return this.each(function(){var s=this;s.grid&&!s.p.treeGrid&&b.fn.sortable&&((a=b.extend({cursor:"move",axis:"y",items:" > .jqgrow"},a||{})).start&&b.jgrid.isFunction(a.start)?(a._start_=a.start,delete a.start):a._start_=!1,a.update&&b.jgrid.isFunction(a.update)?(a._update_=a.update,delete a.update):a._update_=!1,a.start=function(e,t){if(b(t.item).css("border-width","0"),b("td",t.item).each(function(e){this.style.width=s.grid.cols[e].style.width}),s.p.subGrid){var i=b(t.item).attr("id");try{b(s).jqGrid("collapseSubGridRow",i)}catch(e){}}a._start_&&a._start_.apply(this,[e,t])},a.update=function(e,t){b(t.item).css("border-width",""),!0===s.p.rownumbers&&b("td.jqgrid-rownum",s.rows).each(function(e){b(this).html(e+1+(parseInt(s.p.page,10)-1)*parseInt(s.p.rowNum,10))}),a._update_&&a._update_.apply(this,[e,t])},b(s).find("tbody").first().sortable(a),b("tbody",s).first().find(" > .jqgrow").disableSelection())})},gridDnD:function(s){return this.each(function(){var e,t,o=this;if(o.grid&&!o.p.treeGrid&&b.fn.draggable&&b.fn.droppable){var h;if(void 0===b("#jqgrid_dnd")[0]&&b("body").append("<table id='jqgrid_dnd' class='ui-jqgrid-dnd'></table>"),"string"==typeof s&&"updateDnD"===s&&!0===o.p.jqgdnd)i();else if((s=b.extend({drag:function(a){return b.extend({start:function(e,t){var i,s;if(o.p.subGrid){s=b(t.helper).attr("id");try{b(o).jqGrid("collapseSubGridRow",s)}catch(e){}}for(i=0;i<b.data(o,"dnd").connectWith.length;i++)0===b(b.data(o,"dnd").connectWith[i]).jqGrid("getGridParam","reccount")&&b(b.data(o,"dnd").connectWith[i]).jqGrid("addRowData","jqg_empty_row",{});t.helper.addClass("ui-state-highlight"),b("td",t.helper).each(function(e){this.style.width=o.grid.headers[e].width+"px"}),a.onstart&&b.jgrid.isFunction(a.onstart)&&a.onstart.call(b(o),e,t)},stop:function(e,t){var i,s;for(t.helper.dropped&&!a.dragcopy&&(void 0===(s=b(t.helper).attr("id"))&&(s=b(this).attr("id")),b(o).jqGrid("delRowData",s)),i=0;i<b.data(o,"dnd").connectWith.length;i++)b(b.data(o,"dnd").connectWith[i]).jqGrid("delRowData","jqg_empty_row");a.onstop&&b.jgrid.isFunction(a.onstop)&&a.onstop.call(b(o),e,t)}},a.drag_opts||{})},drop:function(p){return b.extend({accept:function(e){if(!b(e).hasClass("jqgrow"))return e;h=b(e).closest("table.ui-jqgrid-btable");var t,e=b(this).find("table.ui-jqgrid-btable").first()[0];return 0<h.length&&void 0!==b.data(h[0],"dnd")&&(t=b.data(h[0],"dnd").connectWith,-1!==b.inArray("#"+b.jgrid.jqID(e.id),t))},drop:function(e,t){if(b(t.draggable).hasClass("jqgrow")){var i,s,a=b(t.draggable).attr("id"),o=t.draggable.parent().parent().jqGrid("getRowData",a),r=[],a=b(this).find("table.ui-jqgrid-btable").first()[0];if(b.isPlainObject(o)&&(r=Object.keys(o)),!p.dropbyname){var d,n,l={},c=0,u=b("#"+b.jgrid.jqID(a.id)).jqGrid("getGridParam","colModel");try{for(d=0;d<u.length;d++)"cb"!==(n=u[d].name)&&"rn"!==n&&"subgrid"!==n&&"sc"!==n&&(void 0!==r[c]&&(l[n]=o[r[c]]),c++);o=l}catch(e){}}t.helper.dropped=!0,b.data(h[0],"dnd").beforedrop&&b.jgrid.isFunction(b.data(h[0],"dnd").beforedrop)&&null!=(i=b.data(h[0],"dnd").beforedrop.call(a,e,t,o,b(h[0]),b(a)))&&"object"==typeof i&&(o=i),t.helper.dropped&&(p.autoid&&(s=b.jgrid.isFunction(p.autoid)?p.autoid.call(a,o):(s=Math.ceil(1e3*Math.random()),p.autoidprefix+s)),b("#"+b.jgrid.jqID(a.id)).jqGrid("addRowData",s,o,p.droppos)),p.ondrop&&b.jgrid.isFunction(p.ondrop)&&p.ondrop.call(a,e,t,o)}}},p.drop_opts||{})},onstart:null,onstop:null,beforedrop:null,ondrop:null,drop_opts:{activeClass:"ui-state-active",hoverClass:"ui-state-hover",tolerance:"intersect"},drag_opts:{revert:"invalid",helper:"clone",cursor:"move",appendTo:"#jqgrid_dnd",zIndex:5e3},dragcopy:!1,dropbyname:!1,droppos:"first",autoid:!0,autoidprefix:"dnd_"},s||{})).connectWith)for(s.connectWith=s.connectWith.split(","),s.connectWith=b.map(s.connectWith,function(e){return b.jgrid.trim(e)}),b.data(o,"dnd",s),0===o.p.reccount||o.p.jqgdnd||i(),o.p.jqgdnd=!0,e=0;e<s.connectWith.length;e++)t=s.connectWith[e],b(t).closest(".ui-jqgrid-bdiv").droppable(b.jgrid.isFunction(s.drop)?s.drop.call(b(o),s):s.drop)}function i(){var e=b.data(o,"dnd");b("tr.jqgrow:not(.ui-draggable)",o).draggable(b.jgrid.isFunction(e.drag)?e.drag.call(b(o),e):e.drag)}})},gridResize:function(o){return this.each(function(){var i,e,t,s=this,a=b.jgrid.jqID(s.p.id);s.grid&&b.fn.resizable&&((o=b.extend({},{resizeclass:"ui-resizable-icon"},o||{})).alsoResize?(o._alsoResize_=o.alsoResize,delete o.alsoResize):o._alsoResize_=!1,o.stop&&b.jgrid.isFunction(o.stop)?(o._stop_=o.stop,delete o.stop):o._stop_=!1,e=o.resizeclass,"jQueryUI"!==s.p.styleUI&&(o.handles?o.handles.se?e+=" "+o.handles.se.replace(".",""):o.handles.se="."+e:(o.handles={},t=e.split(" "),o.handles.se="."+t[0]),e+=" ui-resizable-se ui-resizable-handle",b("#gbox_"+a).append('<span class="'+e+'"></span>')),o.stop=function(e,t){b(s).jqGrid("setGridParam",{height:b("#gview_"+a+" .ui-jqgrid-bdiv").height()}),b(s).jqGrid("setGridWidth",t.size.width,o.shrinkToFit),o._stop_&&o._stop_.call(s,e,t),s.p.caption&&b("#gbox_"+a).css({height:"auto"}),s.p.frozenColumns&&(i&&clearTimeout(i),i=setTimeout(function(){i&&clearTimeout(i),b("#"+a).jqGrid("destroyFrozenColumns"),b("#"+a).jqGrid("setFrozenColumns")}))},o._alsoResize_?o.alsoResize="#gview_"+a+" .ui-jqgrid-bdiv,"+o._alsoResize_:o.alsoResize=b(".ui-jqgrid-bdiv","#gview_"+a),delete o._alsoResize_,b("#gbox_"+a).resizable(o))})}})});js/jqModal.js000064400000007007151676727230007131 0ustar00/*
 * jqModal - Minimalist Modaling with jQuery
 *   (http://dev.iceburg.net/jquery/jqmodal/)
 *
 * Copyright (c) 2007,2008 Brice Burgess <bhb@iceburg.net>
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 * 
 * $Version: 07/06/2008 +r13
 */
/*jshint eqeqeq:false */
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
} (function( $ ) {
"use strict";
//module begin
$.fn.jqm=function(o){
var p={
overlay: 50,
closeoverlay : true,
overlayClass: 'jqmOverlay',
closeClass: 'jqmClose',
trigger: '.jqModal',
ajax: F,
ajaxText: '',
target: F,
modal: F,
toTop: F,
onShow: F,
onHide: F,
onLoad: F
};
return this.each(function(){if(this._jqm){ return H[this._jqm].c=$.extend({},H[this._jqm].c,o);} s++;this._jqm=s;
H[s]={c:$.extend(p,$.jqm.params,o),a:F,w:$(this).addClass('jqmID'+s),s:s};
if(p.trigger){$(this).jqmAddTrigger(p.trigger);}
});};

$.fn.jqmAddClose=function(e){return hs(this,e,'jqmHide');};
$.fn.jqmAddTrigger=function(e){return hs(this,e,'jqmShow');};
$.fn.jqmShow=function(t){return this.each(function(){$.jqm.open(this._jqm,t);});};
$.fn.jqmHide=function(t){return this.each(function(){$.jqm.close(this._jqm,t);});};

$.jqm = {
hash:{},
open:function(s,t){var h=H[s],c=h.c,cc='.'+c.closeClass,z=(parseInt(h.w.css('z-index')));z=(z>0)?z:3000;var o=$('<div></div>').css({height:'100%',width:'100%',position:'fixed',left:0,top:0,'z-index':z-1,opacity:c.overlay/100});if(h.a){return F;} h.t=t;h.a=true;h.w.css('z-index',z);
 if(c.modal) {if(!A[0]){setTimeout(function(){ new L('bind');},1); }A.push(s);}
 else if(c.overlay > 0) {if(c.closeoverlay) {h.w.jqmAddClose(o);}}
 else {o=F;}

 h.o=(o)?o.addClass(c.overlayClass).prependTo('body'):F;

 if(c.ajax) {var r=c.target||h.w,u=c.ajax;r=(typeof r === 'string')?$(r,h.w):$(r);u=(u.substr(0,1) === '@')?$(t).attr(u.substring(1)):u;
  r.html(c.ajaxText).load(u,function(){if(c.onLoad){c.onLoad.call(this,h);}if(cc){h.w.jqmAddClose($(cc,h.w));}e(h);});}
 else if(cc){h.w.jqmAddClose($(cc,h.w));}

 if(c.toTop&&h.o){h.w.before('<span id="jqmP'+h.w[0]._jqm+'"></span>').insertAfter(h.o);}
 (c.onShow)?c.onShow(h):h.w.show();e(h);return F;
},
close:function(s){var h=H[s];if(!h.a){return F;}h.a=F;
 if(A[0]){A.pop();if(!A[0]){new L('unbind');}}
 if(h.c.toTop&&h.o){$('#jqmP'+h.w[0]._jqm).after(h.w).remove();}
 if(h.c.onHide){h.c.onHide(h);}else{h.w.hide();if(h.o){h.o.remove();}} return F;
},
params:{}};
var s=0,H=$.jqm.hash,A=[],F=false,
e=function(h){ if(h.c.focusField===undefined) {h.c.focusField = 0;}if(h.c.focusField >=0 ) {f(h);} },
f=function(h){try{$(':input:visible',h.w)[parseInt(h.c.focusField,10)].focus();	}catch(_){}},
L=function(t){$(document)[t]("keypress",m)[t]("keydown",m)[t]("mousedown",m);},
m=function(e){var h=H[A[A.length-1]],r=(!$(e.target).parents('.jqmID'+h.s)[0]);if(r){$('.jqmID'+h.s).each(function(){var $self=$(this),offset=$self.offset();if(offset.top<=e.pageY && e.pageY<=offset.top+$self.height() && offset.left<=e.pageX && e.pageX<=offset.left+$self.width() ){r=false;return false;}});/*f(h);*/}return !r;},
hs=function(w,t,c){return w.each(function(){var s=this._jqm;$(t).each(function() {
 if(!this[c]){this[c]=[];$(this).click(function(){for(var i in {jqmShow:1,jqmHide:1}){for(var s in this[i]){if(H[this[i][s]]){H[this[i][s]].w[i](this);}}}return F;});}
 this[c].push(s);});});};
//module end
}));js/grid.aria.js000064400000062211151676727230007400 0ustar00/*jshint eqeqeq:false */
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"./grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {
"use strict";
//module begin
$.extend($.jgrid,{
	focusableElementsList : [
		'>a[href]',
		'>button:not([disabled])',
		'>area[href]',
		'>input:not([disabled])',
		'>select:not([disabled])',
		'>textarea:not([disabled])',
		'>iframe',
		'>object',
		'>embed',
		'>*[tabindex]',
		'>*[contenteditable]'
	]
});
$.jgrid.extend({
	ariaBodyGrid : function ( p ) {
		var o = $.extend({
			onEnterCell : null,
			onKeyCheck : null,
			customCellAction : null
		}, p || {});

		return this.each(function (){
			var $t = this,
			getstyle = $.jgrid.getMethod("getStyleUI"),
			highlight = getstyle($t.p.styleUI+'.common','highlight', true);

			// basic functions
			function isValidCell(row, col) {
				return (
					!isNaN(row) &&
					!isNaN(col) &&
					row >= 0 &&
					col >= 0 &&
					$t.rows.length &&
					row < $t.rows.length &&
					col < $t.p.colModel.length
				);
			}
			function getNextCell( dirX, dirY) {
				var row = $t.p.iRow + dirY; // set the default one when initialize grid
				var col = $t.p.iCol + dirX; // set the default .................
				var rowCount = $t.rows.length;
				var isLeftRight = dirX !== 0;

				if (!rowCount) {
					return false;
				}
				var colCount = $t.p.colModel.length;
				if (isLeftRight) {
					if (col < 0 && row >= 2) {
						col = colCount - 1;
						row--;
					}
					if (col >= colCount) {
						col = 0;
						row++;
					}
				}
				if (!isLeftRight) {
					if (row < 1) {
						col--;
						row = rowCount - 1;
						if ($t.rows[row] && col >= 0 && !$t.rows[row].cells[col]) {
						// Sometimes the bottom row is not completely filled in. In this case,
						// jump to the next filled in cell.
							row--;
						}
					}
					else if (row >= rowCount || !$t.rows[row].cells[col]) {
						row = 1;
						col++;
					}
				}
				if (isValidCell(row, col)) {
					return {
						row: row,
						col: col
					};
				} else if (isValidCell($t.p.iRow, $t.p.iCol)) {
					return {
						row: $t.p.iRow,
						col: $t.p.iCol
					};
				} else {
					return false;
				}
			}
			function getNextVisibleCell(dirX, dirY) {
				var nextCell = getNextCell( dirX, dirY);
				if (!nextCell) {
					return false;
				}

				while ( $($t.rows[nextCell.row].cells[nextCell.col]).is(":hidden") ) {
					$t.p.iRow = nextCell.row;
					$t.p.iCol = nextCell.col;
					nextCell = getNextCell(dirX, dirY);
					if ($t.p.iRow  === nextCell.row && $t.p.iCol  === nextCell.col) {
						// There are no more cells to try if getNextCell returns the current cell
						return false;
					}
				}
				if( dirY !== 0 ) {
					$($t).jqGrid('setSelection', $t.rows[nextCell.row].id, false, null, false);
				}

				return nextCell;
			}
			function movePage ( dir ) {
				var curpage = $t.p.page, last =$t.p.lastpage;
				curpage = curpage + dir;
				if( curpage <= 0) {
					curpage = 1;
				}
				if( curpage > last ) {
					curpage = last;
				}
				if(  $t.p.page === curpage ) {
					return;
				}
				$t.p.page = curpage;
				$t.grid.populate();
			}
			var focusableElementsSelector = $.jgrid.focusableElementsList.join();
			/*
			function hasFocusableChild( el) {
				return $(focusableElementsSelector, el)[0];
			}
			 * 
			 */
			$($t).removeAttr("tabindex");
			$($t).on('jqGridAfterGridComplete.setAriaGrid', function( e ) {
				//var grid = e.target;
				$("tbody", $t).first().find(">tr:not(.jqgfirstrow)>td:not(:hidden, :has("+focusableElementsSelector+"))").attr("tabindex", -1);
				$("tbody", $t).first().find(">tr:not(.jqgfirstrow)").removeAttr("tabindex");
				if($t.p.iRow !== undefined && $t.p.iCol !== undefined) {
					if($t.rows[$t.p.iRow]) {
					$($t.rows[$t.p.iRow].cells[$t.p.iCol])
						.attr('tabindex', 0)
						.focus( function() { $(this).addClass(highlight);})
						.blur( function () { $(this).removeClass(highlight);});
					}
				}
			});
			$t.p.iRow = 1;
			$t.p.iCol = $.jgrid.getFirstVisibleCol( $t );

			var focusRow=0, focusCol=0; // set the dafualt one
			var custAct = $.jgrid.isFunction( o.customCellAction ) ? o.customCellAction : false;
			var onKeyCheck = $.jgrid.isFunction(o.onKeyCheck) ? o.onKeyCheck : false;
			$($t).on('keydown', function(e) {
				if($t.p.navigationDisabled && $t.p.navigationDisabled === true) {
					return;
				}
				if(e.target.id.startsWith("jqs_"+$t.p.id)) {
					return;
				}
				if(onKeyCheck) {
					if(!onKeyCheck.call($t, $t.rows[$t.p.iRow].id, $t.p.iRow, $t.p.iCol, e) ) {
						return;
					}
				}
				var key = e.which || e.keyCode, nextCell;
				switch(key) {
					case (38) : // DOWN
						nextCell = getNextVisibleCell(0, -1);
						focusRow = nextCell.row;
						focusCol = nextCell.col;
						e.preventDefault();
						break;
					case (40) : // UP
						nextCell = getNextVisibleCell(0, 1);
						focusRow = nextCell.row;
						focusCol = nextCell.col;
						e.preventDefault();
						break;
					case (37) : // LEFT
						nextCell = getNextVisibleCell(-1, 0);
						focusRow = nextCell.row;
						focusCol = nextCell.col;
						e.preventDefault();
						break;
					case (39) : // RIGHT
						nextCell = getNextVisibleCell(1, 0);
						focusRow = nextCell.row;
						focusCol = nextCell.col;
						e.preventDefault();
						break;
					case 36 : // HOME
						if(e.ctrlKey) {
							focusRow = 1;
						} else {
							focusRow = $t.p.iRow;
						}
						focusCol = 0;
						e.preventDefault();
						break;
					case 35 : // END
						if(e.ctrlKey) {
							focusRow = $t.rows.length - 1;
						} else {
							focusRow = $t.p.iRow;
						}
						focusCol = $t.p.colModel.length - 1;
						e.preventDefault();
						break;
					case 33 : // PAGEUP

						movePage( -1 );
						focusCol = $t.p.iCol;
						focusRow = $t.p.iRow;
						e.preventDefault();
						break;
					case 34 : // PAGEDOWN
						movePage( 1 );
						focusCol = $t.p.iCol;
						focusRow = $t.p.iRow;
						if(focusRow > $t.rows.length-1) {
							focusRow = $t.rows.length-1;
							$t.p.iRow = $t.rows.length-1;
						}
						e.preventDefault();
						break;
					case 13 : // Enter
						if( $.jgrid.isFunction( o.onEnterCell )) {
							o.onEnterCell.call( $t, $t.rows[$t.p.iRow].id ,$t.p.iRow, $t.p.iCol, e);
							e.preventDefault();
						}
						return;
					case 113 : // F2
						try{
							$($t).jqGrid('editCell', $t.p.iRow, $t.p.iCol, true, e);
						} catch(e1){}
						break;
					default:
						if( custAct ) {
							custAct.call($t, $t.rows[$t.p.iRow].id ,$t.p.iRow, $t.p.iCol, e);
						}
						return;
				}
				setTimeout(function(){
					$($t).jqGrid("focusBodyCell", focusRow, focusCol, getstyle, highlight);
				},50);
			});
			$($t).on('jqGridBeforeSelectRow.ariaGridClick',function() {
				return false;
			});
			$($t).on('jqGridCellSelect.ariaGridClick', function(el1, id, status,tdhtml, e) {
				var el = e.target;
				if($t.p.iRow > 0 && $t.p.iCol >=0) {
					$($t.rows[$t.p.iRow].cells[$t.p.iCol]).attr("tabindex", -1);
				}
				if($(el).is("td") || $(el).is("th") || el.id.startsWith("jqs_"+$t.p.id)) {
					$t.p.iCol = el.cellIndex;
				} else {
					return;
				}
				var row = $(el).closest("tr.jqgrow");
				$t.p.iRow = row[0].rowIndex;
				$(el).attr("tabindex", 0)
					.addClass(highlight)
					.focus()
					.blur(function(){$(this).removeClass(highlight);});
			});
			$t.p.ariaBody = true;
		});
	},
	excelLikeGrid : function ( p ) {
		var o = $.extend({
			beforeDeleteCell : null,
			customCellAction : null,
			customUndoFunction : null,
			specialChars : [
				'~', '!','@', '#', '$','%','^','&','*','(',')','_', '+','{','}', ':', '"', '|','<','>','?',',','.','/',';','\\','[',']' 
			],
			addonChars : false, // ^[а-я]$/i
			onKeyCheck : null
		}, p || {});

		return this.each(function (){
			var $t = this,
			getstyle = $.jgrid.getMethod("getStyleUI"),
			highlight = getstyle($t.p.styleUI+'.common','highlight', true);
			$t.p.F2key = false;
			// basic functions
			var baseFunc = {
				isValidCell : function (row, col) {
				return (
					!isNaN(row) &&
					!isNaN(col) &&
					row >= 0 &&
					col >= 0 &&
					$t.rows.length &&
					row < $t.rows.length &&
					col < $t.p.colModel.length
				);
				},
				getNextCell: function ( dirX, dirY) {
				var row = $t.p.iRow + dirY; // set the default one when initialize grid
				var col = $t.p.iCol + dirX; // set the default .................
				var rowCount = $t.rows.length;
				var isLeftRight = dirX !== 0;
				var collimit = 	$t.p.frozenColumns ? $t.p.frozenColCount + 1 : 0;
				if (!rowCount) {
					return false;
				}

				var colCount = $t.p.colModel.length;
				if (isLeftRight) {
					if (col < collimit ) {
						col = collimit;
					}
					if (col === colCount) {
						col = colCount;
					}
				}
				if (!isLeftRight) {
						if ($t.rows[row] && col >= 0 && !$t.rows[row].cells[col]) {
							row--;
						}
				}
					if (this.isValidCell(row, col)) {
					return {
						row: row,
						col: col
					};
					} else if (this.isValidCell($t.p.iRow, $t.p.iCol)) {
					return {
						row: $t.p.iRow,
						col: $t.p.iCol
					};
				} else {
					return false;
				}
				},
				getNextVisibleCell : function (dirX, dirY) {
					var nextCell = this.getNextCell( dirX, dirY);
				if (!nextCell) {
					return false;
				}

				while ( $($t.rows[nextCell.row].cells[nextCell.col]).is(":hidden") ) {
					$t.p.iRow = nextCell.row;
					$t.p.iCol = nextCell.col;
						nextCell = this.getNextCell(dirX, dirY);
					if ($t.p.iRow  === nextCell.row && $t.p.iCol  === nextCell.col) {
						// There are no more cells to try if getNextCell returns the current cell
						return false;
					}
				}
				if( dirY !== 0 ) {
					$($t).jqGrid('setSelection', $t.rows[nextCell.row].id, false, null, false);
				}

				return nextCell;
				},
				movePage : function ( dir ) {
				var curpage = $t.p.page, last =$t.p.lastpage;
				curpage = curpage + dir;
				if( curpage <= 0) {
					curpage = 1;
				}
				if( curpage > last ) {
					curpage = last;
				}
				if(  $t.p.page === curpage ) {
					return;
				}
				$t.p.page = curpage;
				$t.grid.populate();
			}
			};
			var focusableElementsSelector = $.jgrid.focusableElementsList.join();
			/*
			function hasFocusableChild( el) {
				return $(focusableElementsSelector, el)[0];
			}
			 * 
			 */
			$($t).removeAttr("tabindex");
			$($t).on('jqGridAfterGridComplete.setAriaGrid', function( e ) {
				//var grid = e.target;
				$("tbody", $t).first().find(">tr:not(.jqgfirstrow)>td:not(:hidden, :has("+focusableElementsSelector+"))").attr("tabindex", -1);
				$("tbody", $t).first().find(">tr:not(.jqgfirstrow)").removeAttr("tabindex");
				if($t.p.iRow !== undefined && $t.p.iCol !== undefined) {
					if($t.rows[$t.p.iRow]) {
					$($t.rows[$t.p.iRow].cells[$t.p.iCol])
						.attr('tabindex', 0)
						.focus( function() { $(this).addClass(highlight);})
						.blur( function () { $(this).removeClass(highlight);});
					}
				}
			});
			$t.p.iRow = 1;
			$t.p.iCol = $.jgrid.getFirstVisibleCol( $t );
			$t.p.ariaBody = true;

			var focusRow=0, focusCol=0; // set the dafualt one
			var custAct = $.jgrid.isFunction( o.customCellAction ) ? o.customCellAction : false;
			var delCell = $.jgrid.isFunction( o.beforeDeleteCell ) ? o.beforeDeleteCell : false;
			var aKeys = new Set(o.specialChars);

			//var lastVisibleCol = $.jgrid.getLastVisibleCol( $t );
			//var firstVisibleCol = $.jgrid.getFirstVisibleCol( $t );

			var paste_to_cell = false;
			$t.addEventListener('paste', function (event) {
				if(paste_to_cell) {
					var paste = (event.clipboardData || window.clipboardData).getData('text');
					$($t).jqGrid('saveCell', $t.p.iRow, $t.p.iCol, paste);
					paste_to_cell = false;
				}
			});

			var onKeyCheck = $.jgrid.isFunction(o.onKeyCheck) ? o.onKeyCheck : false;
			$($t).on('keydown', function(e) {
				if($t.p.navigationDisabled && $t.p.navigationDisabled === true) {
					return;
				}
				if(e.target.id.startsWith("jqs_"+$t.p.id)) {
					return;
				}
				if(onKeyCheck) {
					if(!onKeyCheck.call($t, $t.rows[$t.p.iRow].id, $t.p.iRow, $t.p.iCol, e, baseFunc) ) {
						return;
					}
				}
				var key = e.which || e.keyCode, nextCell;
				var ctrl = e.ctrlKey ? e.ctrlKey : ((key === 17) ? true : false); // ctrl detection

				switch(key) {
					case (38) : // UP
						nextCell = baseFunc.getNextVisibleCell(0, -1);
						focusRow = nextCell.row;
						focusCol = nextCell.col;
						e.preventDefault();
						break;
					case (40) : // DOWN
					case 13 : // Enter
						nextCell = baseFunc.getNextVisibleCell(0, 1);
						focusRow = nextCell.row;
						focusCol = nextCell.col;
						e.preventDefault();
						break;
					case (37) : // LEFT
						nextCell = baseFunc.getNextVisibleCell(-1, 0);
						focusRow = nextCell.row;
						focusCol = nextCell.col;
						e.preventDefault();
						break;
					case (39) : // RIGHT
						nextCell = baseFunc.getNextVisibleCell(1, 0);
						focusRow = nextCell.row;
						focusCol = nextCell.col;
						e.preventDefault();
						break;
					case 36 : // HOME
						if(e.ctrlKey) {
							focusRow = 1;
						} else {
							focusRow = $t.p.iRow;
						}
						focusCol = $t.p.frozenColumns ? $t.p.frozenColCount + 1 : 0;
						e.preventDefault();
						break;
					case 35 : // END
						if(e.ctrlKey) {
							focusRow = $t.rows.length - 1;
						} else {
							focusRow = $t.p.iRow;
						}
						focusCol = $t.p.colModel.length - 1;
						e.preventDefault();
						break;
					case 33 : // PAGEUP

						baseFunc.movePage( -1 );
						focusCol = $t.p.iCol;
						focusRow = $t.p.iRow;
						e.preventDefault();
						break;
					case 34 : // PAGEDOWN
						baseFunc.movePage( 1 );
						focusCol = $t.p.iCol;
						focusRow = $t.p.iRow;
						if(focusRow > $t.rows.length-1) {
							focusRow = $t.rows.length-1;
							$t.p.iRow = $t.rows.length-1;
						}
						e.preventDefault();
						break;
					case 9 : //TAB
						if (e.shiftKey) {
							nextCell = baseFunc.getNextVisibleCell(-1, 0);
						} else {
							nextCell = baseFunc.getNextVisibleCell(1, 0);

						}
						focusRow = nextCell.row;
						focusCol = nextCell.col;
						e.preventDefault();
					break;
					case 113 : // F2
						try{
							$($t).jqGrid('editCell', $t.p.iRow, $t.p.iCol, true, e, false);
							$t.p.F2key = true;
						} catch(e1){}
						break;
					case 8: // DEL, BACKSPACE
					case 46:
						var retDel = true;
						if( delCell ) {
							retDel = delCell.call($t, $t.rows[$t.p.iRow].id ,$t.p.iRow, $t.p.iCol, e);
						}
						if(retDel === true) {
							$($t).jqGrid('saveCell', $t.p.iRow, $t.p.iCol, "");
						}
						break;
					case 86:
						if(ctrl) {
							paste_to_cell = true;
							return true;
						}
						break;
					case 90:
						if(ctrl) {
							var undofunc = true; 
							if( $.jgrid.isFunction( o.customUndoFunction ) ) {
								undofunc = o.customUndoFunction.call($t, $t.rows[$t.p.iRow].id ,$t.p.iRow, $t.p.iCol, e);
							}
							if( undofunc && $t.p.savedValues &&
								    $($t).jqGrid('getCell', $t.rows[$t.p.iRow].id, $t.p.colModel[$t.p.iCol].name, false)  === $t.p.savedValues.newvalue &&
								    $t.p.iRow ===  $t.p.savedValues.indexRow) {
								// undo
								$($t).jqGrid('saveCell', $t.p.iRow, $t.p.iCol, $t.p.savedValues.oldvalue);
							}
							return true;
						}
						break;
					default:
						var isLetter = /^[a-z]$/i.test(e.key);
						var isNumber = /^[0-9]$/i.test(e.key);
						var other = false;
						if(o.addonChars) {
							other = o.addonChars.test(e.key);
						}

						if(isLetter || isNumber || aKeys.has(e.key) || other) {
							$($t).jqGrid('editCell', $t.p.iRow, $t.p.iCol, true, e, true);
						}
						if( custAct ) {
							custAct.call($t, $t.rows[$t.p.iRow].id ,$t.p.iRow, $t.p.iCol, e);
						}
						return;
				}
				setTimeout(function(){
					$($t).jqGrid("focusBodyCell", focusRow, focusCol, getstyle, highlight);
				},50);
			});
			$($t).on('jqGridBeforeSelectRow.ariaGridClick',function() {
				return false;
			});
			$($t).on('jqGridCellSelect.ariaGridClick', function(el1, id, status,tdhtml, e) {
				var el = e.target;
				if($t.p.iRow > 0 && $t.p.iCol >=0) {
					$($t.rows[$t.p.iRow].cells[$t.p.iCol]).attr("tabindex", -1);
				}
				if($(el).is("td") || $(el).is("th") || el.id.startsWith("jqs_"+$t.p.id)) {
					$t.p.iCol = el.cellIndex;
				} else {
					return;
				}
				if($t.p.savedRow.length) {
					$($t).jqGrid("saveCell",$t.p.savedRow[0].id,$t.p.savedRow[0].ic);
				}
				var row = $(el).closest("tr.jqgrow");
				$t.p.iRow = row[0].rowIndex;
				$(el).attr("tabindex", 0)
					.addClass(highlight)
					.focus()
					.blur(function(){$(this).removeClass(highlight);});
			}).on('jqGridDblClickRow.ariaGridDblClick', function(el1,id, iRow, iCol, e){
				$($t).jqGrid('editCell', iRow, iCol, true, e, false);
				$t.p.F2key = true;
			});
		});
	},
	focusBodyCell : function(focusRow, focusCol, _s, _h) {
		return this.each(function (){
			var $t = this,
			getstyle = !_s ? $.jgrid.getMethod("getStyleUI") : _s,
			highlight = !_h ? getstyle($t.p.styleUI+'.common','highlight', true) : _h,
			focusableElementsSelector = $.jgrid.focusableElementsList.join(),
			fe;
			function hasFocusableChild( el) {
				return $(focusableElementsSelector, el)[0];
			}

			if(focusRow !== undefined && focusCol !== undefined) {
				if (!isNaN($t.p.iRow) && !isNaN($t.p.iCol) && $t.p.iCol >= 0) {
					fe = hasFocusableChild($t.rows[$t.p.iRow].cells[$t.p.iCol]);
					if( fe ) {
						$(fe).attr('tabindex', -1);
					} else {
						$($t.rows[$t.p.iRow].cells[$t.p.iCol]).attr('tabindex', -1);
					}
				}

			} else  {
				focusRow = $t.p.iRow;
				focusCol = $t.p.iCol;
			}
			focusRow = parseInt(focusRow, 10);
			focusCol = parseInt(focusCol, 10);
			if(focusRow > 0 && focusCol >=0) {
				fe = hasFocusableChild($t.rows[focusRow].cells[focusCol]);
				if( fe ) {
					$(fe).attr('tabindex', 0)
					.addClass(highlight)
					.focus()
					.blur( function () { $(this).removeClass(highlight); });
				}  else {
					$($t.rows[focusRow].cells[focusCol])
						.attr('tabindex', 0)
						.addClass(highlight)
						.focus()
						.blur(function () { $(this).removeClass(highlight); });
			}
			$t.p.iRow = focusRow;
			$t.p.iCol = focusCol;
			}
		});
	},
	resetAriaBody : function() {
		return this.each(function(){
			var $t = this, paste_to_cell = false;
			$t.p.ariaBody = false;
			$($t).attr("tabindex","0")
				.off('keydown')
				.off('jqGridBeforeSelectRow.ariaGridClick')
				.off('jqGridCellSelect.ariaGridClick')
				.off('jqGridAfterGridComplete.setAriaGrid');
			var focusableElementsSelector = $.jgrid.focusableElementsList.join();
			$("tbody",$t).first().find(">tr:not(.jqgfirstrow)>td:not(:hidden, :has("+focusableElementsSelector+"))").removeAttr("tabindex").off("focus");
			$("tbody",$t).first().find(">tr:not(.jqgfirstrow)").attr("tabindex", -1);
			try {
				$t.removeEventListener('paste', function(event) {
					if(paste_to_cell) {
						var paste = (event.clipboardData || window.clipboardData).getData('text');
						$($t).jqGrid('saveCell', $t.p.iRow, $t.p.iCol, paste);
						paste_to_cell = false;
					}
				}, true);
			} catch(e) {}
		});
	},
	ariaHeaderGrid : function( p ) {
		var o = $.extend({
			onHeaderKeyCheck : null
		}, p || {});		
		return this.each(function (){
			var $t = this,
			getstyle = $.jgrid.getMethod("getStyleUI"),
			highlight = getstyle($t.p.styleUI+'.common','highlight', true),
			htable = $("#gbox_"+$t.p.id).find(".ui-jqgrid-hbox>table").first();
			var onHeaderKeyCheck = $.jgrid.isFunction(o.onHeaderKeyCheck) ? o.onHeaderKeyCheck : false;

			$('tr.ui-jqgrid-labels', htable).on("keydown", function(e) {
				var currindex = $t.p.selHeadInd;
				var key = e.which || e.keyCode;
				var len = $t.grid.headers.length;
				if(onHeaderKeyCheck) {
					if(!onHeaderKeyCheck.call($t, currindex, e) ) {
						return;
					}
				}
				switch (key) {
					case 37: // left
						if(currindex-1 >= 0) {
							currindex--;
							while( $($t.grid.headers[currindex].el).is(':hidden') && currindex-1 >= 0) {
								currindex--;
								if(currindex < 0) {
									break;
								}
							}
							if(currindex >= 0) {
								$($t.grid.headers[currindex].el).focus();
								$($t.grid.headers[$t.p.selHeadInd].el).attr("tabindex", "-1");
								$t.p.selHeadInd = currindex;
								e.preventDefault();
							}
						}
						break;
					case 39: // right
						if(currindex+1 < len) {
							currindex++;
							while( $($t.grid.headers[currindex].el).is(':hidden') && currindex+1 <len) {
								currindex++;
								if( currindex > len-1) {
									break;
								}
							}
							if( currindex < len) {
								$($t.grid.headers[currindex].el).focus();
								$($t.grid.headers[$t.p.selHeadInd].el).attr("tabindex", "-1");
								$t.p.selHeadInd = currindex;
								e.preventDefault();
							}
						}
						break;
					case 13: // enter
						$($t.grid.headers[currindex].el).find("div").first().trigger('click');
						e.preventDefault();
						break;
					default:
						return;
				}
			});
			$('tr.ui-jqgrid-labels>th:not(:hidden)', htable).attr("tabindex", -1).focus(function(){
				$(this).addClass(highlight).attr("tabindex", "0");
			}).blur(function(){
				$(this).removeClass(highlight);
			});
			$t.p.selHeadInd = $.jgrid.getFirstVisibleCol( $t );
			$($t.grid.headers[$t.p.selHeadInd].el).attr("tabindex","0");
		});
	},
	focusHeaderCell : function( index) {
		return this.each( function(){
			var $t = this;
			if(index === undefined) {
				index = $t.p.selHeadInd;
			}
			if(index >= 0 && index < $t.p.colModel.length) {
				$($t.grid.headers[$t.p.selHeadInd].el).attr("tabindex", "-1");
				$($t.grid.headers[index].el).focus();
				$t.p.selHeadInd = index;
			}
		});
	},
	resetAriaHeader : function() {
		return this.each(function(){
			var htable = $("#gbox_" + this.p.id).find(".ui-jqgrid-hbox>table").first();
			$('tr.ui-jqgrid-labels', htable).off("keydown");
			$('tr.ui-jqgrid-labels>th:not(:hidden)', htable).removeAttr("tabindex").off("focus blur");
		});
	},
	ariaPagerGrid : function () {
		return this.each( function(){
			var $t = this,
			getstyle = $.jgrid.getMethod("getStyleUI"),
			highlight = getstyle($t.p.styleUI+'.common','highlight', true),
				disabled = "."+getstyle($t.p.styleUI+'.common','disabled', true),
				cels = $(".ui-pg-button",$t.p.pager),
				len = cels.length;

			cels.attr("tabindex","-1").focus(function(){
				$(this).addClass(highlight);
			}).blur(function(){
				$(this).removeClass(highlight);
			});

			$t.p.navIndex = 0;
			setTimeout( function() { // make another decision here
				var navIndex = cels.not(disabled).first().attr("tabindex", "0");
				$t.p.navIndex = (navIndex[0] && navIndex[0].cellIndex) ? navIndex[0].cellIndex-1 : 0;
			}, 100);

			$($t.p.pager).find("table.ui-pager-table tr").first().on("keydown", function(e) {
				var key = e.which || e.keyCode;

				var indexa = $t.p.navIndex;//currindex;
				switch (key) {
					case 37: // left
						if(indexa-1 >= 0) {
							indexa--;
							while( $(cels[indexa]).is(disabled) && indexa-1 >= 0) {
								indexa--;
								if(indexa < 0) {
									break;
								}
							}
							if(indexa >= 0) {
								$(cels[$t.p.navIndex]).attr("tabindex","-1");
								$(cels[indexa]).attr("tabindex","0").focus();
								$t.p.navIndex = indexa;
							}

							e.preventDefault();
						}
						break;
					case 39: // right
						if(indexa+1 < len) {
							indexa++;
							while( $(cels[indexa]).is(disabled) && indexa+1 < len + 1) {
								indexa++;
								if( indexa > len-1) {
									break;
								}
							}
							if( indexa < len) {
								$(cels[$t.p.navIndex]).attr("tabindex","-1");
								$(cels[indexa]).attr("tabindex","0").focus();
								$t.p.navIndex = indexa;
							}
							e.preventDefault();
						}
						break;
					case 13: // enter
					if(!$(e.originalEvent.srcElement).hasClass("ui-pg-input")) {
						$(cels[indexa]).trigger('click');
						e.preventDefault();
					}
						break;
					default:
						return;
				}
			});
		});
	},
	focusPagerCell : function( index) {
		return this.each( function(){
			var $t = this,
				cels = $(".ui-pg-button",$t.p.pager),
				len = cels.length;
			if(index === undefined) {
				index = $t.p.navIndex;
			}
			if(index >= 0 && index < len) {
				$(cels[$t.p.navIndex]).attr("tabindex","-1");
				$(cels[index]).attr("tabindex","0").focus();
				$t.p.navIndex = index;
			}
		});
	},
	resetAriaPager : function() {
		return this.each(function(){
			$(".ui-pg-button",this.p.pager).removeAttr("tabindex").off("focus");
			$(this.p.pager).find("table.ui-pager-table tr").first().off("keydown");
		});
	},
	setAriaGrid : function ( p ) {
		var o = $.extend({
			header : true,
			body : true,
			pager : true,
			onEnterCell : null,
			customCellAction : null,
			excel : false
		}, p || {});
		return this.each(function(){
			if( o.header ) {
				$(this).jqGrid('ariaHeaderGrid', o);
			}
			if( o.body ) {
				if(o.excel) {
					$(this).jqGrid('excelLikeGrid', o);
				} else {
					$(this).jqGrid('ariaBodyGrid', o);
			}
			}
			if( o.pager ) {
				$(this).jqGrid('ariaPagerGrid');
			}
		});
	},
	resetAriaGrid : function( p ) {
		var o = $.extend({
			header : true,
			body : true,
			pager : true
		}, p || {});
		return this.each(function(){
			var $t = this;
			if( o.body ) {
				$($t).jqGrid('resetAriaBody');
			}
			if( o.header ) {
				$($t).jqGrid('resetAriaHeader');
			}
			if( o.pager ) {
				$($t).jqGrid('resetAriaPager');
			}
		});
	}
// end aria grid
});
//module end
}));
js/jquery.jqGrid.js000064400003124524151676727230010307 0ustar00/**
*
* @license Guriddo jqGrid JS - v5.8.7 - 2024-06-01
* Copyright(c) 2008, Tony Tomov, tony@trirand.com
* 
* License: http://guriddo.net/?page_id=103334
*/
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([ 
			"jquery"
		], factory );
 	} else {
		// Browser globals
		factory( jQuery );
 	}
}(function( $ ) {
"use strict";
//module begin
$.jgrid = $.jgrid || {};
if(!$.jgrid.hasOwnProperty("defaults")) {
	$.jgrid.defaults = {};
}
$.extend($.jgrid,{
	version : "5.8.7",
	isNull : function( p, strict_eq) {
		if(strict_eq && strict_eq === true) {
			return p === null;
		} else {
			return p == null;
		}
	},
	trim : function (x) {
		if(typeof x === "string") {
			return x.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
		} else {
			return x;
		}
	},
	isFunction : function (x){
		return typeof x === 'function';
	},
	type : function (obj, fullClass) {
		// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof
		if (fullClass) {
			return (obj === null) ? '[object Null]' : Object.prototype.toString.call(obj);
		}
		if (obj == null) { return (obj + '').toLowerCase(); } // implicit toString() conversion
		var deepType = Object.prototype.toString.call(obj).slice(8,-1).toLowerCase();
		if (deepType === 'generatorfunction') { return 'function'; }
		return deepType.match(/^(array|bigint|date|error|function|generator|regexp|symbol)$/) ? deepType :
			(typeof obj === 'object' || typeof obj === 'function') ? 'object' : typeof obj;
	},	
	floatNum : function(val, defval) {
		if( defval === undefined ) {
			defval = 0;
		}
		val = parseFloat(val);
		return !isNaN(val) ?  val : defval;
	},
	htmlDecode : function(value){
		if(value && (value==='&nbsp;' || value==='&#160;' || (value.length===1 && value.charCodeAt(0)===160))) { return "";}
		return !value ? value : String(value).replace(/&gt;/g, ">").replace(/&lt;/g, "<").replace(/&quot;/g, '"').replace(/&amp;/g, "&");
	},
	htmlEncode : function (value){
		return !value ? value : String(value).replace(/&/g, "&amp;").replace(/\"/g, "&quot;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
	},
	template : function(format){ //jqgformat
		var args = $.makeArray(arguments).slice(1), j, al = args.length;
		if( $.jgrid.isNull(format) ) { 
			format = ""; 
		}
		return format.replace(/\{([\w\-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g, function(m,i){
			if(!isNaN(parseInt(i,10))) {
				return args[parseInt(i,10)];
			}
			for(j=0; j < al;j++) {
				if(Array.isArray(args[j])) {
					var nmarr = args[ j ],
					k = nmarr.length;
					while(k--) {
						if(i===nmarr[k].nm) {
							return nmarr[k].v;
						}
					}
				} else if(typeof args[j] === 'object' && args[j][i]) {
					return $.jgrid.isFunction(args[j][i]) ? args[j][i]() : args[j][i];
				}
			}
		});
	},
	msie : function () {
		return $.jgrid.msiever() > 0;
	},
	msiever : function () {
		var rv =0,
		sAgent = window.navigator.userAgent,
		Idx = sAgent.indexOf("MSIE");

		if (Idx > 0)  {
			rv = parseInt(sAgent.substring(Idx+ 5, sAgent.indexOf(".", Idx)));
		} else if ( !!navigator.userAgent.match(/Trident\/7\./) ) {
			rv = 11;
		}
		return rv;
	},
	getCellIndex : function (cell) {
		var c = $(cell);
		if (c.is('tr')) { return -1; }
		c = (!c.is('td') && !c.is('th') ? c.closest("td,th") : c)[0];
		if ($.jgrid.msie()) { return $.inArray(c, c.parentNode.cells); }
		return c.cellIndex;
	},
	stripHtml : function(v) {
		v = String(v);
		var regexp = /<("[^"]*"|'[^']*'|[^'">])*>/gi;
		if (v) {
			v = v.replace(regexp,"");
			return (v && v !== '&nbsp;' && v !== '&#160;') ? v.replace(/\"/g,"'") : "";
		}
		return v;
	},
	stripPref : function (pref, id) {
		var obj = $.jgrid.type( pref );
		if( obj === "string" || obj === "number") {
			pref =  String(pref);
			id = pref !== "" ? String(id).replace(String(pref), "") : id;
		}
		return id;
	},
	stripScript : function( v ) {
		return v.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, " ");
	},
	useJSON : true,
	runCode : function (obj){	
		return Function('"use strict";return (' + obj + ')')();
	},
	parse : function(jsonString) {
		var js = jsonString;
		if (js.slice(0,9) === "while(1);") { js = js.slice(9); }
		if (js.slice(0,2) === "/*") { js = js.slice(2,js.length-2); }
		if(!js) { js = "{}"; }
		return ($.jgrid.useJSON===true && typeof JSON === 'object' && typeof JSON.parse === 'function') ?
			JSON.parse(js) :
			$.jgrid.runCode( js );
			//eval('(' + js + ')');
	},
	dateToOADate :function  (date) {
		// Add 1462 in 1904 system (apple)
		var temp = new Date(date);
		// Set temp to start of day and get whole days between dates,
		var days = Math.round((temp.setHours(0,0,0,0) - new Date(1899, 11, 30)) / 8.64e7);
		// Get decimal part of day, OADate always assumes 24 hours in day
		var partDay = (Math.abs((date - temp) % 8.64e7) / 8.64e7).toFixed(10);
		return days + partDay.slice(1);
	},
	parseDate : function(format, date, newformat, opts) {
		var	token = /\\.|[dDjlNSwzWFmMntLoYyaABgGhHisueIOPTZcrU]/g,
		timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,
		timezoneClip = /[^-+\dA-Z]/g,
		msDateRegExp = new RegExp("^\/Date\\((([-+])?[0-9]+)(([-+])([0-9]{2})([0-9]{2}))?\\)\/$"),
		msMatch = ((typeof date === 'string') ? date.match(msDateRegExp): null),
		pad = function (value, length) {
			value = String(value);
			length = parseInt(length,10) || 2;
			while (value.length < length)  { value = '0' + value; }
			return value;
		},
		insStr = function( value, pos, ch) {
			value = String(value);
			return value.slice(0, pos) + ch + value.slice(pos);
		},
		ts = {m : 1, d : 1, y : 1970, h : 0, i : 0, s : 0, u:0},
		timestamp=0, dM, k,hl,
		h12to24 = function(ampm, h){
			if (ampm === 0){ if (h === 12) { h = 0;} }
			else { if (h !== 12) { h += 12; } }
			return h;
		},
		offset =0;
		if(opts === undefined) {
			opts = $.jgrid.getRegional(this, "formatter.date");//$.jgrid.formatter.date;
		}
		// old lang files
		if(opts === undefined) {
			opts = {};
		}
		if(opts.parseRe === undefined ) {
			opts.parseRe = /[#%\\\/:_;.,\t\s-]/;
		}
		if(opts.AmPm === undefined ) {
			opts.AmPm = ["am","pm","AM","PM"];
		}
		if( opts.masks && opts.masks.hasOwnProperty(format) ) { format = opts.masks[format]; }
		if(date && !$.jgrid.isNull( date ) ) {
			if( !isNaN( date - 0 ) && String(format).toLowerCase() === "u") {
				//Unix timestamp
				timestamp = new Date( parseFloat(date)*1000 );
				opts.validate = false;
			} else if(date.constructor === Date) {
				timestamp = date;
				opts.validate = false;
			} else if( msMatch !== null ) {
				// Microsoft date format support
				timestamp = new Date(parseInt(msMatch[1], 10));
				if (msMatch[3]) {
					offset = Number(msMatch[5]) * 60 + Number(msMatch[6]);
					offset *= ((msMatch[4] === '-') ? 1 : -1);
					offset -= timestamp.getTimezoneOffset();
					timestamp.setTime(Number(Number(timestamp) + (offset * 60 * 1000)));
				}
				opts.validate = false;
			} else {
				//Support ISO8601Long that have Z at the end to indicate UTC timezone
				if(opts.srcformat === 'ISO8601Long' && date.charAt(date.length - 1) === 'Z') {
					offset -= (new Date()).getTimezoneOffset();
				}
				date = String(date).replace(/\T/g,"#").replace(/\t/,"%").split(opts.parseRe);
				format = format.replace(/\T/g,"#").replace(/\t/,"%").split(opts.parseRe);
				// parsing for month names
				for(k=0,hl=format.length;k<hl;k++){
					switch ( format[k] ) {
						case 'M':
							dM = $.inArray(date[k],opts.monthNames);
							if(dM !== -1 && dM < 12){date[k] = dM+1; ts.m = date[k];}
							break;
						case 'F':
							dM = $.inArray(date[k],opts.monthNames,12);
							if(dM !== -1 && dM > 11){date[k] = dM+1-12; ts.m = date[k];}
							break;
						case 'n':
							format[k] = 'm';
							break;
						case 'j':
							format[k] = 'd';
							break;
						case 'a':
							dM = $.inArray(date[k],opts.AmPm);
							if(dM !== -1 && dM < 2 && date[k] === opts.AmPm[dM]){
								date[k] = dM;
								ts.h = h12to24(date[k], ts.h);
							}
							break;
						case 'A':
							dM = $.inArray(date[k],opts.AmPm);
							if(dM !== -1 && dM > 1 && date[k] === opts.AmPm[dM]){
								date[k] = dM-2;
								ts.h = h12to24(date[k], ts.h);
							}
							break;
						case 'g':
							ts.h = parseInt(date[k], 10);
							break;
					}
					if(date[k] !== undefined) {
						ts[format[k].toLowerCase()] = parseInt(date[k],10);
					}
				}
				if(ts.f) {ts.m = ts.f;}
				if( ts.m === 0 && ts.y === 0 && ts.d === 0) {
					return "&#160;" ;
				}
				ts.m = parseInt(ts.m,10)-1;
				var ty = ts.y;
				if (ty >= 70 && ty <= 99) {ts.y = 1900+ts.y;}
				else if (ty >=0 && ty <=69) {ts.y= 2000+ts.y;}
				timestamp = new Date(ts.y, ts.m, ts.d, ts.h, ts.i, ts.s, ts.u);
				//Apply offset to show date as local time.
				if(offset !== 0) {
					timestamp.setTime(Number(Number(timestamp) + (offset * 60 * 1000)));
				}
			}
		} else {
			timestamp = new Date(ts.y, ts.m, ts.d, ts.h, ts.i, ts.s, ts.u);
		}
		if(opts && opts.validate === true ) { // validation
			var valid_date =  new Date(ts.y, (+ts.m), ts.d, ts.h, ts.i);
			return (Boolean(+valid_date) && valid_date.getDate() === ts.d && valid_date.getHours() === ts.h && valid_date.getMinutes() === ts.i);
		}
		if(opts.userLocalTime && offset === 0) {
			offset -= (new Date()).getTimezoneOffset();
			if( offset !== 0 ) {
				timestamp.setTime(Number(Number(timestamp) + (offset * 60 * 1000)));
			}
		}
		if( newformat === undefined ) {
			return timestamp;
		}
		if( opts.masks && opts.masks.hasOwnProperty(newformat) )  {
			newformat = opts.masks[newformat];
		} else if ( !newformat ) {
			newformat = 'Y-m-d';
		}
		var
			G = timestamp.getHours(),
			i = timestamp.getMinutes(),
			j = timestamp.getDate(),
			n = timestamp.getMonth() + 1,
			o = timestamp.getTimezoneOffset(),
			s = timestamp.getSeconds(),
			u = timestamp.getMilliseconds(),
			w = timestamp.getDay(),
			Y = timestamp.getFullYear(),
			N = (w + 6) % 7 + 1,
			z = (new Date(Y, n - 1, j) - new Date(Y, 0, 1)) / 86400000,
			flags = {
				// Day
				d: pad(j),
				D: opts.dayNames[w],
				j: j,
				l: opts.dayNames[w + 7],
				N: N,
				S: opts.S(j),
				//j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th',
				w: w,
				z: z,
				// Week
				W: N < 5 ? Math.floor((z + N - 1) / 7) + 1 : Math.floor((z + N - 1) / 7) || ((new Date(Y - 1, 0, 1).getDay() + 6) % 7 < 4 ? 53 : 52),
				// Month
				F: opts.monthNames[n - 1 + 12],
				m: pad(n),
				M: opts.monthNames[n - 1],
				n: n,
				t: '?',
				// Year
				L: '?',
				o: '?',
				Y: Y,
				y: String(Y).substring(2),
				// Time
				a: G < 12 ? opts.AmPm[0] : opts.AmPm[1],
				A: G < 12 ? opts.AmPm[2] : opts.AmPm[3],
				B: '?',
				g: G % 12 || 12,
				G: G,
				h: pad(G % 12 || 12),
				H: pad(G),
				i: pad(i),
				s: pad(s),
				u: u,
				// Timezone
				e: '?',
				I: '?',
				O: (o > 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4),
				P: (o > 0 ? "-" : "+") + insStr( pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4), -2, ":"),
				T: (String(timestamp).match(timezone) || [""]).pop().replace(timezoneClip, ""),
				Z: '?',
				// Full Date/Time
				c: '?',
				r: '?',
				U: Math.floor(timestamp / 1000)
			};
		return newformat.replace(token, function ($0) {
			return flags.hasOwnProperty($0) ? flags[$0] : $0.substring(1);
		});
	},
	jqID : function(sid){
		return String(sid).replace(/[!"#$%&'()*+,.\/:; <=>?@\[\\\]\^`{|}~]/g,"\\$&");
	},
	guid : 1,
	uidPref: 'jqg',
	randId : function( prefix )	{
		return (prefix || $.jgrid.uidPref) + ($.jgrid.guid++);
	},
	getAccessor : function(obj, expr) {
		var ret,p,prm = [], i;
		if( typeof expr === 'function') { return expr(obj); }
		ret = obj[expr];
		if(ret===undefined) {
			try {
				if ( typeof expr === 'string' ) {
					prm = expr.split('.');
				}
				i = prm.length;
				if( i ) {
					ret = obj;
					while (ret && i--) {
						p = prm.shift();
						ret = ret[p];
					}
				}
			} catch (e) {}
		}
		return ret;
	},
	getXmlData: function (obj, expr, returnObj) {
		var ret, m = typeof expr === 'string' ? expr.match(/^(.*)\[(\w+)\]$/) : null;
		if (typeof expr === 'function') { return expr(obj); }
		if (m && m[2]) {
			// m[2] is the attribute selector
			// m[1] is an optional element selector
			// examples: "[id]", "rows[page]"
			return m[1] ? $(m[1], obj).attr(m[2]) : $(obj).attr(m[2]);
		}
		ret = $(expr, obj);
		if (returnObj) { return ret; }
		//$(expr, obj).filter(':last'); // we use ':last' to be more compatible with old version of jqGrid
		return ret.length > 0 ? $(ret).text() : undefined;
	},
	cellWidth : function () {
		var $testDiv = $("<div class='ui-jqgrid' style='left:10000px'><table class='ui-jqgrid-btable ui-common-table' style='width:5px;'><tr class='jqgrow'><td style='width:5px;display:block;'></td></tr></table></div>"),
		testCell = $testDiv.appendTo("body")
			.find("td")
			.width();
		$testDiv.remove();
		return Math.abs(testCell-5) > 0.1;
	},
	isLocalStorage : function () {
		try {
			return 'localStorage' in window && window.localStorage !== null;
		} catch (e) {
			return false;
		}
	},
	getRegional : function(inst, param, def_val) {
		var ret;
		if(def_val !== undefined) {
			return def_val;
		}
		if(inst.p && inst.p.regional && $.jgrid.regional) {
				ret = $.jgrid.getAccessor( $.jgrid.regional[inst.p.regional] || {}, param);
		}
		if(ret === undefined ) {
			ret = $.jgrid.getAccessor( $.jgrid, param);
		}
		return ret;
	},
	isMobile : function() {
		try {
			if(/Android|webOS|iPhone|iPad|iPod|pocket|psp|kindle|avantgo|blazer|midori|Tablet|Palm|maemo|plucker|phone|BlackBerry|symbian|IEMobile|mobile|ZuneWP7|Windows Phone|Opera Mini/i.test(navigator.userAgent)) {
				return true;
			}
			return false;
		} catch(e)	{
			return false;
		}
	},
	cell_width : true,
	scrollbarWidth : function() {
		// http://jdsharp.us/jQuery/minute/calculate-scrollbar-width.php
		var div = $('<div style="width:50px;height:50px;overflow:hidden;position:absolute;top:-200px;left:-200px;"><div style="height:100px;"></div>');
		$('body').append(div);
		var w1 = $('div', div).innerWidth();
		div.css('overflow-y', 'scroll');
		var w2 = $('div', div).innerWidth();
		$(div).remove();
		return (w1 - w2) < 0 ? 18 : (w1 - w2);
	},
	scrollbarHeight : function() {
		var div = $('<div style="width:50px;overflow-x:scroll;position:absolute;top:-200px;left:-200px;"<span>1234567890</span></div>');
		$('body').append(div);
		var w1 = $(div).outerHeight();
		var w2 = $(div)[0].scrollHeight;
		$(div).remove();
		return (w1 - w2) < 0 ? 18 : (w1 - w2);
	},
	ajaxOptions: {},
	from : function(source){
		// Original Author Hugo Bonacci
		// License MIT http://jlinq.codeplex.com/license
		var $t = this,
		QueryObject=function(d,q){
		if(typeof d==="string"){
			d=$.data(d);
		}
		var self=this,
		_data=d,
		_usecase=true,
		_trim=false,
		_query=q,
		_stripNum = /[\$,%]/g,
		_lastCommand=null,
		_lastField=null,
		_orDepth=0,
		_negate=false,
		_queuedOperator="",
		_sorting=[],
		_useProperties=true;
		if(typeof d==="object"&&d.push) {
			if(d.length>0){
				if(typeof d[0]!=="object"){
					_useProperties=false;
				}else{
					_useProperties=true;
				}
			}
		}else{
			throw "data provides is not an array";
		}
		this._hasData=function(){
			return _data===null?false:_data.length===0?false:true;
		};
		this._getStr=function(s){
			var phrase=[];
			if(_trim){
				phrase.push("$.jgrid.trim(");
			}
			phrase.push("String("+s+")");
			if(_trim){
				phrase.push(")");
			}
			if(!_usecase){
				phrase.push(".toLowerCase()");
			}
			return phrase.join("");
		};
		this._strComp=function(val){
			if(typeof val==="string"){
				return".toString()";
			}
			return"";
		};
		this._group=function(f,u){
			return({field:f.toString(),unique:u,items:[]});
		};
		this._toStr=function(phrase){
			if(_trim){
				phrase=$.jgrid.trim(phrase);
			}
			phrase=phrase.toString().replace(/\\/g,'\\\\').replace(/\"/g,'\\"');
			return _usecase ? phrase : phrase.toLowerCase();
		};
		this._funcLoop=function(func){
			var results=[];
			$.each(_data,function(i,v){
				results.push(func(v));
			});
			return results;
		};
		this._append=function(s){
			var i;
			if(_query===null){
				_query="";
			} else {
				_query+=_queuedOperator === "" ? " && " :_queuedOperator;
			}
			for (i=0;i<_orDepth;i++){
				_query+="(";
			}
			if(_negate){
				_query+="!";
			}
			_query+="("+s+")";
			_negate=false;
			_queuedOperator="";
			_orDepth=0;
		};
		this._setCommand=function(f,c){
			_lastCommand=f;
			_lastField=c;
		};
		this._resetNegate=function(){
			_negate=false;
		};
		this._repeatCommand=function(f,v){
			if(_lastCommand===null){
				return self;
			}
			if(f!==null&&v!==null){
				return _lastCommand(f,v);
			}
			if(_lastField===null){
				return _lastCommand(f);
			}
			if(!_useProperties){
				return _lastCommand(f);
			}
			return _lastCommand(_lastField,f);
		};
		this._equals=function(a,b){
			return(self._compare(a,b,1)===0);
		};
		this._compare=function(a,b,d){
			var toString = Object.prototype.toString;
			if( d === undefined) { d = 1; }
			if(a===undefined) { a = null; }
			if(b===undefined) { b = null; }
			if(a===null && b===null){
				return 0;
			}
			if(a===null&&b!==null){
				return 1;
			}
			if(a!==null&&b===null){
				return -1;
			}
			if( (toString.call(a) === '[object Date]' && toString.call(b) === '[object Date]') || 
				(typeof a === "number" && typeof b === "number") ) {
				return a > b ? d : a < b ? -d : 0;
			}
			var ret = String(a).localeCompare(String(b));
			return ret < 0 ? -d : ret > 0 ? d : 0;
		};
		this._performSort=function(){
			if(_sorting.length===0){return;}
			_data=self._doSort(_data,0);
		};
		this._doSort=function(d,q){
			var by=_sorting[q].by,
			dir=_sorting[q].dir,
			type = _sorting[q].type,
			dfmt = _sorting[q].datefmt,
			sfunc = _sorting[q].sfunc;
			if(q===_sorting.length-1){
				return self._getOrder(d, by, dir, type, dfmt, sfunc);
			}
			q++;
			var values=self._getGroup(d,by,dir,type,dfmt), results=[], i, j, sorted;
			for(i=0;i<values.length;i++){
				sorted=self._doSort(values[i].items,q);
				for(j=0;j<sorted.length;j++){
					results.push(sorted[j]);
				}
			}
			return results;
		};
		this._getOrder=function(data,by,dir,type, dfmt, sfunc){
			var sortData=[],_sortData=[], newDir = dir==="a" ? 1 : -1, i,ab,j,
			findSortKey;

			if(type === undefined ) { type = "text"; }
			if (type === 'float' || type=== 'number' || type=== 'currency' || type=== 'numeric') {
				findSortKey = function($cell) {
					var key = parseFloat( String($cell).replace(_stripNum, ''));
					return isNaN(key) ? Number.NEGATIVE_INFINITY : key;
				};
			} else if (type==='int' || type==='integer') {
				findSortKey = function($cell) {
					return $cell ? parseFloat(String($cell).replace(_stripNum, '')) : Number.NEGATIVE_INFINITY;
				};
			} else if(type === 'date' || type === 'datetime') {
				findSortKey = function($cell) {
					return $.jgrid.parseDate.call($t, dfmt, $cell).getTime();
				};
			} else if($.jgrid.isFunction(type)) {
				findSortKey = type;
			} else {
				findSortKey = function($cell) {
					$cell = $cell ? $.jgrid.trim(String($cell)) : "";
					return _usecase ? $cell : $cell.toLowerCase();
				};
			}
			$.each(data,function(i,v){
				ab = by!=="" ? $.jgrid.getAccessor(v,by) : v;
				if(ab === undefined) { ab = ""; }
				ab = findSortKey(ab, v);
				_sortData.push({ 'vSort': ab,'index':i});
			});
			if($.jgrid.isFunction(sfunc)) {
				_sortData.sort(function(a,b){
					return sfunc.call(this,a.vSort, b.vSort, newDir, a, b);
				});
			} else {
				_sortData.sort(function(a,b){
					return self._compare(a.vSort, b.vSort,newDir);
				});
			}
			j=0;
			var nrec= data.length;
			// overhead, but we do not change the original data.
			while(j<nrec) {
				i = _sortData[j].index;
				sortData.push(data[i]);
				j++;
			}
			return sortData;
		};
		this._getGroup=function(data,by,dir,type, dfmt){
			var results=[],
			group=null,
			last=null, val;
			$.each(self._getOrder(data,by,dir,type, dfmt),function(i,v){
				val = $.jgrid.getAccessor(v, by);
				if($.jgrid.isNull(val)) { val = ""; }
				if(!self._equals(last,val)){
					last=val;
					if(group !== null){
						results.push(group);
					}
					group=self._group(by,val);
				}
				group.items.push(v);
			});
			if(group !== null){
				results.push(group);
			}
			return results;
		};
		this.ignoreCase=function(){
			_usecase=false;
			return self;
		};
		this.useCase=function(){
			_usecase=true;
			return self;
		};
		this.trim=function(){
			_trim=true;
			return self;
		};
		this.noTrim=function(){
			_trim=false;
			return self;
		};
		this.execute=function(){
			var match=_query, results=[];
			if(match === null){
				return self;
			}
			$.each(_data,function(){
				if($.jgrid.runCode.call($t, match.replace(/this/g, JSON.stringify(this)) ) ){ //eval(match)
					results.push(this);
				}
			});
			_data=results;
			return self;
		};
		this.data=function(){
			return _data;
		};
		this.select=function(f){
			self._performSort();
			if(!self._hasData()){ return[]; }
			self.execute();
			if($.jgrid.isFunction(f)){
				var results=[];
				$.each(_data,function(i,v){
					results.push(f(v));
				});
				return results;
			}
			return _data;
		};
		this.hasMatch=function(){
			if(!self._hasData()) { return false; }
			self.execute();
			return _data.length>0;
		};
		this.andNot=function(f,v,x){
			_negate=!_negate;
			return self.and(f,v,x);
		};
		this.orNot=function(f,v,x){
			_negate=!_negate;
			return self.or(f,v,x);
		};
		this.not=function(f,v,x){
			return self.andNot(f,v,x);
		};
		this.and=function(f,v,x){
			_queuedOperator=" && ";
			if(f===undefined){
				return self;
			}
			return self._repeatCommand(f,v,x);
		};
		this.or=function(f,v,x){
			_queuedOperator=" || ";
			if(f===undefined) { return self; }
			return self._repeatCommand(f,v,x);
		};
		this.orBegin=function(){
			_orDepth++;
			return self;
		};
		this.orEnd=function(){
			if (_query !== null){
				_query+=")";
			}
			return self;
		};
		this.isNot=function(f){
			_negate=!_negate;
			return self.is(f);
		};
		this.is=function(f){
			self._append('this.'+f);
			self._resetNegate();
			return self;
		};
		this._compareValues=function(func,f,v,how,t){
			var fld;
			if(_useProperties){
				fld='jQuery.jgrid.getAccessor(this,\''+f+'\')';
			}else{
				fld='this';
			}
			if(v===undefined) { v = null; }
			//var val=v===null?f:v,
			var val =v,
			swst = t.stype === undefined ? "text" : t.stype;
			if(v !== null) {
			switch(swst) {
				case 'int':
				case 'integer':
					val = (isNaN(Number(val)) || val==="") ? Number.NEGATIVE_INFINITY : val; // To be fixed with more inteligent code
					fld = 'parseInt('+fld+',10)';
					val = 'parseInt('+val+',10)';
					break;
				case 'float':
				case 'number':
				case 'numeric':
					val = String(val).replace(_stripNum, '');
					val = (isNaN(Number(val)) || val==="") ? Number.NEGATIVE_INFINITY : Number(val); // To be fixed with more inteligent code
					fld = 'parseFloat('+fld+')';
					val = 'parseFloat('+val+')';
					break;
				case 'date':
				case 'datetime':
					val = String($.jgrid.parseDate.call($t, t.srcfmt || 'Y-m-d',val).getTime());
					fld = 'jQuery.jgrid.parseDate.call(jQuery("#'+$.jgrid.jqID($t.p.id)+'")[0],"'+t.srcfmt+'",'+fld+').getTime()';
					break;
				default :
					fld=self._getStr(fld);
					val=self._getStr('"'+self._toStr(val)+'"');
			}
			}
			self._append(fld+' '+how+' '+val);
			self._setCommand(func,f);
			self._resetNegate();
			return self;
		};
		this.equals=function(f,v,t){
			return self._compareValues(self.equals,f,v,"==",t);
		};
		this.notEquals=function(f,v,t){
			return self._compareValues(self.equals,f,v,"!==",t);
		};
		this.isNull = function(f,v,t){
			return self._compareValues(self.equals,f,null,"===",t);
		};
		this.greater=function(f,v,t){
			return self._compareValues(self.greater,f,v,">",t);
		};
		this.less=function(f,v,t){
			return self._compareValues(self.less,f,v,"<",t);
		};
		this.greaterOrEquals=function(f,v,t){
			return self._compareValues(self.greaterOrEquals,f,v,">=",t);
		};
		this.lessOrEquals=function(f,v,t){
			return self._compareValues(self.lessOrEquals,f,v,"<=",t);
		};
		this.startsWith=function(f,v){
			//var val = $.jgrid.isNull(v) ? f: v,
			//length=_trim ? $.jgrid.trim(val.toString()).length : val.toString().length;
			if(_useProperties){
				//self._append(self._getStr('jQuery.jgrid.getAccessor(this,\''+f+'\')')+'.slice(0,'+length+') == '+self._getStr('"'+self._toStr(v)+'"'));
				self._append(self._getStr('jQuery.jgrid.getAccessor(this,\''+f+'\')')+'.startsWith('+self._getStr('"'+self._toStr(v)+'"')+')');
			}else{
				//if ( !$.jgrid.isNull(v) ) { length=_trim?$.jgrid.trim(v.toString()).length:v.toString().length; }
				self._append(self._getStr('this')+'.startsWith(' +self._getStr('"'+self._toStr(f)+'"')+')');
			}
			self._setCommand(self.startsWith,f);
			self._resetNegate();
			return self;
		};
		this.endsWith=function(f,v){
			//var val = $.jgrid.isNull(v) ? f: v,
			//length=_trim ? $.jgrid.trim(val.toString()).length:val.toString().length;
			if(_useProperties){
				//self._append(self._getStr('jQuery.jgrid.getAccessor(this,\''+f+'\')')+'.substr('+self._getStr('jQuery.jgrid.getAccessor(this,\''+f+'\')')+'.length-'+length+','+length+') == "'+self._toStr(v)+'"');
				self._append(self._getStr('jQuery.jgrid.getAccessor(this,\''+f+'\')')+'.endsWith('+self._getStr('"'+self._toStr(v)+'"')+')');
			} else {
				//self._append(self._getStr('this')+'.substr('+self._getStr('this')+'.length-"'+self._toStr(f)+'".length,"'+self._toStr(f)+'".length) == "'+self._toStr(f)+'"');
				self._append(self._getStr('this')+'.endsWith(' +self._getStr('"'+self._toStr(f)+'"')+')');
			}
			self._setCommand(self.endsWith,f);
			self._resetNegate();
			return self;
		};
		this.contains=function(f,v){
			if(_useProperties){
				self._append(self._getStr('jQuery.jgrid.getAccessor(this,\''+f+'\')')+'.indexOf("'+self._toStr(v)+'",0) > -1');
			}else{
				self._append(self._getStr('this')+'.indexOf("'+self._toStr(f)+'",0) > -1');
			}
			self._setCommand(self.contains,f);
			self._resetNegate();
			return self;
		};
		this.user=function(op, f, v){
			var _a = '$("#'+$t.p.id+'")[0]';
			self._append(_a + '.p.customFilterDef.' + op + '.action.call('+_a+' ,{rowItem: this, searchName:"' + f + '",searchValue:"' + v + '"})');
			self._setCommand(self.user,f);
			self._resetNegate();
			return self;
		};
		this.inData = function (f, v, t) {
			var vl =  v === undefined ? "" : self._getStr("\"" + self._toStr(v) + "\"");
			if( _useProperties ) {
				self._append(vl + '.split(\''+',' + '\')' + '.indexOf( jQuery.jgrid.getAccessor(this,\''+f+'\') ) > -1');
			} else {
				self._append(vl + '.split(\''+',' + '\')' + '.indexOf(this.'+f+') > -1');
			}
			self._setCommand(self.inData, f);
			self._resetNegate();
			return self;
		};
		this.groupBy=function(by,dir,type, datefmt){
			if(!self._hasData()){
				return null;
			}
			return self._getGroup(_data,by,dir,type, datefmt);
		};
		this.orderBy=function(by,dir,stype, dfmt, sfunc){
			dir = $.jgrid.isNull(dir) ? "a" :$.jgrid.trim(dir.toString().toLowerCase());
			if( $.jgrid.isNull(stype) ) { stype = "text"; }
			if( $.jgrid.isNull(dfmt) ) { dfmt = "Y-m-d"; }
			if( $.jgrid.isNull(sfunc) ) { sfunc = false; }
			if(dir==="desc"||dir==="descending"){dir="d";}
			if(dir==="asc"||dir==="ascending"){dir="a";}
			_sorting.push({by:by,dir:dir,type:stype, datefmt: dfmt, sfunc: sfunc});
			return self;
		};
		return self;
		};
	return new QueryObject(source,null);
	},
	getMethod: function (name) {
        return this.getAccessor($.fn.jqGrid, name);
	},
	extend : function(methods) {
		$.extend($.fn.jqGrid,methods);
		if (!this.no_legacy_api) {
			$.fn.extend(methods);
		}
	},
	clearBeforeUnload : function( jqGridId ) {
		var $t = $("#"+$.jgrid.jqID( jqGridId ))[0], grid;
		if(!$t.grid) { return;}
		grid = $t.grid;
		if ($.jgrid.isFunction(grid.emptyRows)) {
			grid.emptyRows.call($t, true, true); // this work quick enough and reduce the size of memory leaks if we have someone
		}

		$(document).off("mouseup.jqGrid" + $t.p.id );
		$(grid.hDiv).off("mousemove"); // TODO add namespace
		$($t).off();
		var i, l = grid.headers.length,
		removevents = ['formatCol','sortData','updatepager','refreshIndex','setHeadCheckBox','constructTr','formatter','addXmlData','addJSONData','grid','p', 'addLocalData'];
		for (i = 0; i < l; i++) {
			grid.headers[i].el = null;
		}

		for( i in grid) {
			if( grid.hasOwnProperty(i)) {
				grid[i] = null;
			}
		}
		// experimental
		for( i in $t.p) {
			if($t.p.hasOwnProperty(i)) {
				$t.p[i] = Array.isArray($t.p[i]) ? [] : null;
			}
		}
		l = removevents.length;
		for(i = 0; i < l; i++) {
			if($t.hasOwnProperty(removevents[i])) {
				$t[removevents[i]] = null;
				delete($t[removevents[i]]);
			}
		}
	},
	gridUnload : function ( jqGridId ) {
		if(!jqGridId) { return; }
		jqGridId = $.jgrid.trim(jqGridId);
		if(jqGridId.indexOf("#") === 0) {
			jqGridId = jqGridId.substring(1);
		}

		var $t = $("#"+ $.jgrid.jqID(jqGridId))[0];
		if ( !$t.grid ) {return;}
		var defgrid = {id: $($t).attr('id'),cl: $($t).attr('class')};
		if ($t.p.pager) {
			$($t.p.pager).off().empty().removeClass("ui-state-default ui-jqgrid-pager ui-corner-bottom");
		}
		var newtable = document.createElement('table');
		newtable.className = defgrid.cl;
		var gid = $.jgrid.jqID($t.id);
		$(newtable).removeClass("ui-jqgrid-btable ui-common-table").insertBefore("#gbox_"+gid);
		if( $($t.p.pager).parents("#gbox_"+gid).length === 1 ) {
			$($t.p.pager).insertBefore("#gbox_"+gid);
		}
		$.jgrid.clearBeforeUnload( jqGridId );
		$("#gbox_"+gid).remove();
		$(newtable).attr({id:defgrid.id});
		$("#alertmod_"+$.jgrid.jqID(jqGridId)).remove();
	},
	gridDestroy : function ( jqGridId ) {
		if(!jqGridId) { return; }
		jqGridId = $.jgrid.trim(jqGridId);
		if(jqGridId.indexOf("#") === 0) {
			jqGridId = jqGridId.substring(1);
		}
		var $t = $("#"+ $.jgrid.jqID(jqGridId))[0];
		if ( !$t || !$t.grid ) {return;}
		if ( $t.p.pager ) { // if not part of grid
			$($t.p.pager).remove();
		}
		try {
			$.jgrid.clearBeforeUnload( jqGridId );
			$("#gbox_"+$.jgrid.jqID(jqGridId)).remove();
		} catch (_) {}
	},
	isElementInViewport : function(el) {
		var rect = el.getBoundingClientRect();
		return (
			rect.left >= 0 &&
			rect.right <= (window.innerWidth || document.documentElement.clientWidth)
		);
	},
	getTextWidth : function(text, font) {
		if (!jQuery._cacheCanvas) {
			var canvas = document.createElement('canvas');
			var docFragment = document.createDocumentFragment();
			docFragment.appendChild(canvas);
			jQuery._cacheCanvas = canvas.getContext("2d");
		}
		if(font) {
			jQuery._cacheCanvas.font = font;
		}
		return jQuery._cacheCanvas.measureText( $.jgrid.stripHtml( text ) ).width;
	},
	getFont : function (instance) {
		var getfont = window.getComputedStyle( instance, null );
		return getfont.getPropertyValue( 'font-style' ) + " " +
				getfont.getPropertyValue( 'font-variant' ) + " " +
				getfont.getPropertyValue( 'font-weight' ) + " " +
				getfont.getPropertyValue( 'font-size' ) + " " +
				getfont.getPropertyValue( 'font-family');
	},
	setSelNavIndex : function ($t,  selelem ) {
		var cels = $(".ui-pg-button",$t.p.pager);
		$.each(cels, function(i,n) {
			if(selelem===n) {
				$t.p.navIndex = i;
				return false;
			}
		});
		$(selelem).attr("tabindex","0");		
	},
	splitSearch : function (p) {
		/*
		p : {
			mergeOper : 'OR',
			filterInput : null,
			filterToolbar : null,
			searchGrid : null
		}
		 */
		var rules = "{\"groupOp\":\"" + p.mergeOper + "\",\"groups\":[", i=0; //],\"groups\":[
		for( var property in p) {
			if(p.hasOwnProperty(property)) {
				if(property !== 'mergeOper') {
					rules += (p[property] !== null && p[property] !== "" && typeof p[property] !=='boolean' ) ? p[property] + ",": "";
					i++;
				}
			}
		}
		if( rules.indexOf("[", rules.length - "[".length)  === -1 ) {
			rules = rules.slice(0, -1);
		}
		rules += "]}";
		return rules;
	},
	getElemByAttrVal : function( elem, attr, value, position) {
		if( typeof position !== 'boolean' ) {
			position = false;
		}
		var len = Array.isArray(elem) ? elem.length : 0, i=0, ret = {}, pos = -1;
		if( len > 0 ) {
			while( i < len) {
				if( elem[i][attr] === value) {
					ret = elem[i];
					pos = i;
					break;
				}
				i++;
			}
		}
		return position ? pos : ret;
	},
	searchColOnEnter : function(gridid, rid, t, e ) {
		var tb = $("#"+gridid)[0], i;
		if(!tb.grid) {
			return;
		}
		var opt = tb.p.searchColOptions, res, val, frozen= false;
		try {
			val = t.value;
		} catch (e1){
			val = "";
		}
		if(tb.p.frozenColumns) {
			$(tb.grid.bDiv).find(".jqgrid-searchcol >input#jqs_"+tb.p.id+"_"+rid).focus().val(val);
			frozen = true;
		}

		if(!tb.p._ftsc) {
			// store originally hidden columns
			tb.p._ftsc = true;
			tb.p._fthc = [];
			tb.p._avc =[];
			for(i=0; i<tb.p.colModel.length; i++) {
				if(tb.p.colModel[i].hidden) {
					tb.p._fthc.push(tb.p.colModel[i].name);
				} else {
					tb.p._avc.push(tb.p.colModel[i].name);
				}
			}
			tb.p._results = {};
		}// else {
		//}
		var _cnth = [...new Set([...opt._cnth ,...opt.visibleColumns])], // exclude search here
				_cnthSet = new Set([..._cnth,...tb.p._fthc]); // add hidden columns
		//$(tb).jqGrid('hideCol',tb.p._avc.filter(x=>!_cnth.includes(x)));
		$(tb).jqGrid('hideCol',tb.p._avc.filter(function(x) { 
			return !_cnth.includes(x);
		}));
		
		//======================================================================
		function get_result (id) {
			var datarow = $(tb).jqGrid('getRowData', id), vall;
			var _cts =[];
			if(datarow && val) {
				for(var key in datarow) {
					if(!_cnthSet.has(key)) {
						if(datarow.hasOwnProperty(key)) {
							vall = val;
							if(!opt.useCase) {
								datarow[key] = datarow[key].toLowerCase();
								vall = val.toLowerCase();
							} 
							if(opt.aOperands.includes(opt.operand)) {
								switch( opt.operand) {
									case 'cn': // contain
										res = datarow[key].search(vall) !== -1; // find the column containing the search str
										break;
										case 'eq': // equal
										res = datarow[key] === vall;
										break;
									case 'ne': // not equal
										res = datarow[key] !== vall;
										break;
									case 'bw': // startWith
										res = datarow[key].substring(0, vall.length) === vall;
										break;
									case 'ew': // endWith
										var this_len = datarow[key].length;
										res = datarow[key].substring(this_len - vall.length, this_len) === vall;
									break;
								}
							}
							if(res) {
								_cts.push(key);
							}
						}
					}
				}
				tb.p._results[id] = {v:val, r:_cts};
			} else if(datarow && val==="") {
				if(tb.p._results[id]) {
					delete tb.p._results[id];
				}
			}
		}
		//======================================================================
		
		if(tb.grid && (rid === null || rid === undefined) ) { // reload
			for(var key in tb.p._results) {
				if(tb.p._results.hasOwnProperty(key)) {
					val = tb.p._results[key].v;
					get_result (key);
				}
			}
		} else if(tb.grid && (rid !== null || rid !== undefined)) {
			get_result (rid);
		}
		var to_show = [], count = 0;
		for(i in tb.p._results) {
			if(opt.searchOp.toUpperCase() === "OR") {
				to_show = [...new Set([...to_show, ...tb.p._results[i].r])]; // use union to meet OR
			} else if(opt.searchOp.toUpperCase() === "AND") {
				if(count===0) {
					to_show = tb.p._results[i].r;
				} else {
					//to_show = to_show.filter(x => tb.p._results[i].r.includes(x)); // use intersection
					to_show = to_show.filter( function(x) { return  tb.p._results[i].r.includes(x); }); // use intersection
				}
				count++;
			}
		}
		if($.isEmptyObject(tb.p._results)) { // if nosearch show all
			to_show = tb.p._avc;
		}
		var swap = to_show.concat(_cnth);

		$(tb).jqGrid('showCol',swap);
		if(tb.p.frozenColumns) {
			//setTimeout(function(){
				$(tb.grid.fbDiv).find(".jqgrid-searchcol >input#jqs_"+tb.p.id+"_"+rid).val("").focus().val(val);
			//}, 60);
		}
		if(tb.p.frozenRows) {
			if(frozen) { // for future processing
				tb.p.frozenColumns = false;
			}
			$(tb).trigger('jqGridAfterGridComplete.setFrozenRows');
			if(frozen) { // for future processing
				tb.p.frozenColumns = true;
			}
		}
		
		/// let intersection = arrA.filter(x => arrB.includes(x));
		/// let difference = arrA.filter(x => !arrB.includes(x));
		/// let difference = arrA
                 //.filter(x => !arrB.includes(x))
                 //.concat(arrB.filter(x => !arrA.includes(x)));
				 
		/// let union = [...new Set([...arrA, ...arrB])];
	},
	searchColOnKey : function(gridid, rid, t, e ) {
		switch(e.key) {
			case 'ArrowRight':
			case 'ArrowDown':
			case 'ArrowUp':
			case 'ArrowLeft':
			case 'PageUp':
			case 'PageDown':
			case 'Alt':
			case 'Control':
			case 'Tab':
			case 'Escape':
			case 'Shift':
				return;
			default :
		}
		setTimeout(function() {
			$.jgrid.searchColOnEnter(gridid, rid, t,e);
		}, 50);
	},
	comboGrid : function ( elemId, opt, gridopt ) {
		/*
		opt  = {
			data : "", // string, array or function
			return_fld : "", //string or function
			deaultSearch : "bw"
		};
		*/
		var gridId =  $.jgrid.randId("combo");
		var divId = "div"+gridId;
		var save_datatype = gridopt.datatype;
		gridopt.datatype = 'local';
		gridopt.onSelectRow = function(id) {
			var srow = $("#"+gridId).jqGrid('getRowData',id);
			if(!$.isEmptyObject(srow)) {
				var ret = $.jgrid.isFunction( opt.return_fld ) ? opt.return_fld.call(this, srow) : srow[opt.return_fld];
				$("#"+elemId).val( ret );
				$("#"+divId).hide();
			}
		};
		gridopt.data = [];
		gridopt.scrollrows = true;
		$('body').append("<div id='"+divId+"'><table id='"+gridId+"'></table>");
		if(gridopt.pager) {
			$('body').append("<div id='"+gridopt.pager+"'></div>");
		}
		$('body').append("</div>");
		$("#"+gridId).jqGrid( gridopt );
		$("#"+gridId).jqGrid('bindKeys', {onSelectRow : false});
		$("#"+elemId).attr("autocomplete","off").data("comboGrid", {grid:gridId, divgrid: divId});
		var coord = document.getElementById(elemId).getBoundingClientRect();
		
		$("#"+divId).css({"background-color": "inherit", position:"absolute", top:(coord.top+50)+"px", left: (coord.left+10)+"px", zIndex: 20000}).hide();
		$("#"+elemId).on("keydown", function(e){
			var gID = $(this).data("comboGrid").grid, dID=$(this).data("comboGrid").divgrid, self = this;
			//e.preventDefault();
			if($("#"+dID).is(":hidden")) {
				coord = document.getElementById(elemId).getBoundingClientRect();
				//var coord = $("#"+elemId).position();
				$("#"+dID).show().css({top:(coord.top+50)+"px", left: (coord.left+10)+"px"});
			}
			var timer;

			if($.inArray(e.key, ['Enter', 'Escape', 'ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight']) > -1) {
			var eee =  $.Event('keydown'), $t = this;

			switch (e.key) {
				case 'Enter' :
					// select the row
					var srow = $("#"+gID).jqGrid('getRowData',$("#"+gID)[0].p.selrow);
					if(!$.isEmptyObject(srow)) {
						$t.value = srow[opt.return_fld];
						$("#"+dID).hide();
					}
					break;
				case 'Escape' :
					$("#"+dID).hide();
					break;
				case 'ArrowUp' :
					eee.keyCode = 38;
					$("#"+gID).trigger(eee);
					break;
				case 'ArrowDown' :
					//console.log(eee);
					eee.keyCode = 40;
					$("#"+gID).trigger(eee);
					break;
			}
			} else {
				if(timer) { clearTimeout(timer); }
				timer = setTimeout(function(){ 
					$("#"+gID).jqGrid('filterInput', self.value, {defaultSearch: opt.defaultSearch || 'bw', selectFirstFound : true});
				}, 100);
			}
		});
		if(opt.data) {
			if(typeof opt.data === 'string') {
				$("#"+gridId).jqGrid('setGridParam', {url : opt.data});
			} else if (Array.isArray(opt.data) ) {
				$("#"+gridId).jqGrid('setGridParam', {data : opt.data});
			}
		}
		$("#"+gridId).jqGrid('setGridParam', { datatype : save_datatype });

	},
	inColumnHeader : function (text, columnHeaders) {
		var length = columnHeaders.length, i;
		for (i = 0; i < length; i++) {
			if (columnHeaders[i].startColumnName === text) {
				return i;
			}
		}
		return -1;
	},
	isServiceCol : function( name ) {
		return ['cb', 'rn','subgrid', 'sc'].includes( name );
	},
	normalizeDbData : function( input, colModel ) {
		if(!Array.isArray(input)) {
			input = [input];
		}
		for(let key = 0; key < input.length; key++) {
			for(let i = 0; i < colModel.length; i++) {
				let cm = colModel[i];
				if(!$.jgrid.isServiceCol( cm.name ) && input[key].hasOwnProperty(cm.name)) {
					let type = cm.sorttype || cm.stype || cm.formatter || 'text';
					switch(type) 
					{
						case 'int':
						case 'integer':
							input[key][cm.name] = parseInt(input[key][cm.name],10);
							break;
						case 'float':
						case 'number':
						case 'numeric':
						case 'currency':
							input[key][cm.name] = parseFloat(input[key][cm.name]);
							break;
						case 'date': // future development
						case 'datetime':
							cm.formatoptions.reformatAfterEdit = true;
							input[key][cm.name] = $.jgrid.parseDate.call(this, cm.formatoptions.newformat, input[key][cm.name], cm.formatoptions.srcformat || 'Y-m-d');
							break;
					}
				}
			}
		}
		return input;
	},
	isVisible : function(e) {
		return !!( e.offsetWidth || e.offsetHeight || e.getClientRects().length );
	},
	styleUI : {
		jQueryUI : {
			common : {
				disabled: "ui-state-disabled",
				highlight : "ui-state-highlight",
				hover : "ui-state-hover",
				cornerall: "ui-corner-all",
				cornertop: "ui-corner-top",
				cornerbottom : "ui-corner-bottom",
				hidden : "ui-helper-hidden",
				icon_base : "ui-icon",
				overlay : "ui-widget-overlay",
				active : "ui-state-active",
				error : "ui-state-error",
				button : "ui-state-default ui-corner-all",
				content : "ui-widget-content",
				shadow : ""
			},
			base : {
				entrieBox : "ui-widget ui-widget-content ui-corner-all", // entrie div  incl everthing
				viewBox : "", // view diw
				headerTable : "",
				headerBox : "ui-state-default",
				rowTable : "",
				rowBox : "ui-widget-content",
				stripedTable : "ui-jqgrid-table-striped",
				footerTable : "",
				footerBox : "ui-widget-content",
				headerRowTable : "",
				headerRowBox : "ui-widget-content",
				headerDiv : "ui-state-default",
				gridtitleBox : "ui-widget-header ui-corner-top ui-helper-clearfix",
				customtoolbarBox : "ui-state-default",
				//overlayBox: "ui-widget-overlay",
				loadingBox : "ui-state-default ui-state-active",
				rownumBox :  "ui-state-default",
				scrollBox : "ui-widget-content",
				multiBox : "",
				searchBox : "ui-widget-content ui-corner-all",
				searchSelect : "ui-widget-content ui-corner-all",
				pagerBox : "ui-state-default ui-corner-bottom",
				pagerTable : "",
				toppagerBox : "ui-state-default",
				pgInput : "ui-corner-all",
				pgSelectBox : "ui-widget-content ui-corner-all",
				pgButtonBox : "ui-corner-all",
				icon_first : "ui-icon-seek-first",
				icon_prev : "ui-icon-seek-prev",
				icon_next: "ui-icon-seek-next",
				icon_end: "ui-icon-seek-end",
				icon_asc : "ui-icon-triangle-1-n",
				icon_desc : "ui-icon-triangle-1-s",
				icon_caption_open : "ui-icon-circle-triangle-n",
				icon_caption_close : "ui-icon-circle-triangle-s"
			},
			modal : {
				modal : "ui-widget ui-widget-content ui-corner-all ui-dialog",
				header : "ui-widget-header ui-corner-all ui-helper-clearfix",
				content :"ui-widget-content",
				body : "ui-widget-content",
				footer : "ui-widget-content",
				resizable : "ui-resizable-handle ui-resizable-se",
				icon_close : "ui-icon-closethick",
				icon_resizable : "ui-icon-gripsmall-diagonal-se"
			},
			celledit : {
				inputClass : "ui-widget-content ui-corner-all",
				selectClass: "ui-widget-content ui-corner-all"
			},
			inlinedit : {
				inputClass : "ui-widget-content ui-corner-all",
				selectClass: "ui-widget-content ui-corner-all",
				icon_edit_nav : "ui-icon-pencil",
				icon_add_nav : "ui-icon-plus",
				icon_save_nav : "ui-icon-disk",
				icon_cancel_nav : "ui-icon-cancel"
			},
			formedit : {
				labelClass : "",
				inputClass : "ui-widget-content ui-corner-all",
				selectClass: "ui-widget-content ui-corner-all",
				icon_prev : "ui-icon-triangle-1-w",
				icon_next : "ui-icon-triangle-1-e",
				icon_save : "ui-icon-disk",
				icon_close : "ui-icon-close",
				icon_del : "ui-icon-scissors",
				icon_cancel : "ui-icon-cancel"
			},
			navigator : {
				icon_edit_nav : "ui-icon-pencil",
				icon_add_nav : "ui-icon-plus",
				icon_del_nav : "ui-icon-trash",
				icon_search_nav : "ui-icon-search",
				icon_refresh_nav : "ui-icon-refresh",
				icon_view_nav : "ui-icon-document",
				icon_newbutton_nav : "ui-icon-newwin"
			},
			grouping : {
				icon_plus : 'ui-icon-circlesmall-plus',
				icon_minus : 'ui-icon-circlesmall-minus'
			},
			filter : {
				table_widget : 'ui-widget ui-widget-content',
				srSelect : 'ui-widget-content ui-corner-all',
				srInput : 'ui-widget-content ui-corner-all',
				menu_widget : 'ui-widget ui-widget-content ui-corner-all',
				icon_search : 'ui-icon-search',
				icon_reset : 'ui-icon-arrowreturnthick-1-w',
				icon_query :'ui-icon-comment'
			},
			subgrid : {
				icon_plus : 'ui-icon-plus',
				icon_minus : 'ui-icon-minus',
				icon_open : 'ui-icon-carat-1-sw'
			},
			treegrid : {
				icon_plus : 'ui-icon-triangle-1-',
				icon_minus : 'ui-icon-triangle-1-s',
				icon_leaf : 'ui-icon-radio-off'
			},
			fmatter : {
				icon_edit : "ui-icon-pencil",
				icon_add : "ui-icon-plus",
				icon_save : "ui-icon-disk",
				icon_cancel : "ui-icon-cancel",
				icon_del : "ui-icon-trash"
			},
			colmenu : {
				menu_widget : 'ui-widget ui-widget-content ui-corner-all',
				input_checkbox : "ui-widget ui-widget-content",
				filter_select: "ui-widget-content ui-corner-all",
				filter_input : "ui-widget-content ui-corner-all",
				icon_menu : "ui-icon-comment",
				icon_search_menu : "ui-icon-grip-dotted-vertical",
				icon_sort_asc : "ui-icon-arrow-1-n",
				icon_sort_desc : "ui-icon-arrow-1-s",
				icon_columns : "ui-icon-extlink",
				icon_filter : "ui-icon-calculator",
				icon_group : "ui-icon-grip-solid-horizontal",
				icon_freeze : "ui-icon-grip-solid-vertical",
				icon_move: "ui-icon-arrow-4",
				icon_new_item : "ui-icon-newwin",
				icon_toolbar_menu : "ui-icon-document",
				icon_group_op :"ui-icon-bullet",
				icon_oper_op : "ui-icon-transfer-e-w",
				icon_reset : "ui-icon-arrowreturnthick-1-w",
				icon_close : "ui-icon-close"
			}
		},
		Bootstrap : {
			common : {
				disabled: "ui-disabled",
				highlight : "success",
				hover : "active",
				cornerall: "",
				cornertop: "",
				cornerbottom : "",
				hidden : "",
				icon_base : "glyphicon",
				overlay: "ui-overlay",
				active : "active",
				error : "bg-danger",
				button : "btn btn-default",
				content : "",
				shadow : ""
			},
			base : {
				entrieBox : "",
				viewBox : "table-responsive",
				headerTable : "table table-bordered",
				headerBox : "",
				rowTable : "table table-bordered",
				rowBox : "",
				stripedTable : "table-striped",
				footerTable : "table table-bordered",
				footerBox : "",
				headerRowTable : "table table-bordered",
				headerRowBox : "",
				headerDiv : "",
				gridtitleBox : "",
				customtoolbarBox : "",
				//overlayBox: "ui-overlay",
				loadingBox : "row",
				rownumBox :  "active",
				scrollBox : "",
				multiBox : "checkbox",
				pagerBox : "",
				pagerTable : "table",
				toppagerBox : "",
				pgInput : "form-control",
				pgSelectBox : "form-control",
				pgButtonBox : "",
				icon_first : "glyphicon-step-backward",
				icon_prev : "glyphicon-backward",
				icon_next: "glyphicon-forward",
				icon_end: "glyphicon-step-forward",
				icon_asc : "glyphicon-triangle-top",
				icon_desc : "glyphicon-triangle-bottom",
				icon_caption_open : "glyphicon-circle-arrow-up",
				icon_caption_close : "glyphicon-circle-arrow-down"
			},
			modal : {
				modal : "modal",
				content :"modal-content",
				header : "modal-header",
				title : "modal-title",
				body :"modal-body",
				footer :"modal-footer",
				resizable : "ui-resizable-handle ui-resizable-se",
				icon_close : "glyphicon-remove-circle",
				icon_resizable : "glyphicon-import"
			},
			celledit : {
				inputClass : 'form-control',
				selectClass: 'form-control'
			},
			inlinedit : {
				inputClass : 'form-control',
				selectClass: 'form-control',
				icon_edit_nav : "glyphicon-edit",
				icon_add_nav : "glyphicon-plus",
				icon_save_nav : "glyphicon-save",
				icon_cancel_nav : "glyphicon-remove-circle"
			},
			formedit : {
				labelClass : "", 
				inputClass : "form-control",
				selectClass: 'form-control',
				icon_prev : "glyphicon-step-backward",
				icon_next : "glyphicon-step-forward",
				icon_save : "glyphicon-save",
				icon_close : "glyphicon-remove-circle",
				icon_del : "glyphicon-trash",
				icon_cancel : "glyphicon-remove-circle"
			},
			navigator : {
				icon_edit_nav : "glyphicon-edit",
				icon_add_nav : "glyphicon-plus",
				icon_del_nav : "glyphicon-trash",
				icon_search_nav : "glyphicon-search",
				icon_refresh_nav : "glyphicon-refresh",
				icon_view_nav : "glyphicon-info-sign",
				icon_newbutton_nav : "glyphicon-new-window"
			},
			grouping : {
				icon_plus : 'glyphicon-triangle-right',
				icon_minus : 'glyphicon-triangle-bottom'
			},
			filter : {
				table_widget : 'table table-condensed',
				srSelect : 'form-control',
				srInput : 'form-control',
				menu_widget : '',
				icon_search : 'glyphicon-search',
				icon_reset : 'glyphicon-refresh',
				icon_query :'glyphicon-comment'
			},
			subgrid : {
				icon_plus : 'glyphicon-triangle-right',
				icon_minus : 'glyphicon-triangle-bottom',
				icon_open : 'glyphicon-indent-left'
			},
			treegrid : {
				icon_plus : 'glyphicon-triangle-right',
				icon_minus : 'glyphicon-triangle-bottom',
				icon_leaf : 'glyphicon-unchecked'
			},
			fmatter : {
				icon_edit : "glyphicon-edit",
				icon_add : "glyphicon-plus",
				icon_save : "glyphicon-save",
				icon_cancel : "glyphicon-remove-circle",
				icon_del : "glyphicon-trash"
			},
			colmenu : {
				menu_widget : '',
				input_checkbox : "",
				filter_select: "form-control",
				filter_input : "form-control",
				icon_menu : "glyphicon-menu-hamburger",
				icon_sort_asc : "glyphicon-sort-by-alphabet",
				icon_sort_desc : "glyphicon-sort-by-alphabet-alt",
				icon_columns : "glyphicon-list-alt",
				icon_filter : "glyphicon-filter",
				icon_group : "glyphicon-align-left",
				icon_freeze : "glyphicon-object-align-horizontal",
				icon_move: "glyphicon-move",
				icon_new_item : "glyphicon-new-window",
				icon_toolbar_menu : "glyphicon-menu-hamburger"
			}
		},
		Bootstrap4 : {
			common : {
				disabled: "ui-disabled",
				highlight : "table-success",
				hover : "table-active",
				cornerall: "",
				cornertop: "",
				cornerbottom : "",
				hidden : "",
				overlay: "ui-overlay",
				active : "active",
				error : "alert-danger",
				button : "btn btn-light",
				content : "",
				shadow : "shadow p-3 mb-5 bg-white rounded"
			},
			base : {
				entrieBox : "",
				viewBox : "table-responsive",
				headerTable : "table table-bordered",
				headerBox : "",
				rowTable : "table table-bordered",
				rowBox : "",
				stripedTable : "table-striped",
				footerTable : "table table-bordered",
				footerBox : "",
				headerRowTable : "table table-bordered",
				headerRowBox : "",
				headerDiv : "",
				gridtitleBox : "",
				customtoolbarBox : "",
				//overlayBox: "ui-overlay",
				loadingBox : "row",
				rownumBox :  "active",
				scrollBox : "",
				multiBox : "checkbox",
				searchBox : "form-control",				
				searchSelect : "form-control form-control-sm",
				pagerBox : "",
				pagerTable : "table",
				toppagerBox : "",
				pgInput : "form-control",
				pgSelectBox : "form-control",
				pgButtonBox : ""
			},
			modal : {
				modal : "modal",
				content :"modal-content",
				header : "modal-header",
				title : "modal-title",
				body :"modal-body",
				footer :"modal-footer",				
				resizable : "ui-resizable-handle ui-resizable-se",
				icon_close : "oi-circle-x",
				icon_resizable : "oi-circle-x"
			},
			celledit : {
				inputClass : 'form-control',
				selectClass: 'form-control'
			},
			inlinedit : {
				inputClass : 'form-control',
				selectClass: 'form-control'
			},
			formedit : {
				labelClass : "form-label", 
				inputClass : "form-control",
				selectClass: 'form-control'
			},
			navigator : {
			},
			grouping : {
			},
			filter : {
				table_widget : 'table table-condensed',
				srSelect : 'form-control',
				srInput : 'form-control',
				menu_widget : ''
			},
			subgrid : {
			},
			treegrid : {
			},
			fmatter : {
			},
			colmenu : {
				menu_widget : '',
				input_checkbox : "",
				filter_select: "form-control",
				filter_input : "form-control"
			}
		},
		Bootstrap5 : {
			common : {
				disabled: "ui-disabled",
				highlight : "table-success",
				hover : "table-active",
				cornerall: "",
				cornertop: "",
				cornerbottom : "",
				hidden : "",
				overlay: "ui-overlay",
				active : "active",
				error : "alert alert-danger",
				button : "btn btn-light",
				content : "",
				shadow : "shadow p-3 mb-5 bg-body rounded"
			},
			base : {
				entrieBox : "",
				viewBox : "table-responsive",
				headerTable : "table table-bordered",
				headerBox : "",
				rowTable : "table table-bordered",
				rowBox : "",
				stripedTable : "table-striped",
				footerTable : "table table-bordered",
				footerBox : "",
				headerRowTable : "table table-bordered",
				headerRowBox : "",
				headerDiv : "",
				gridtitleBox : "",
				customtoolbarBox : "",
				//overlayBox: "ui-overlay",
				loadingBox : "row",
				rownumBox :  "active",
				scrollBox : "",
				multiBox : "checkbox",
				searchBox : "form-control",				
				searchSelect : "form-select",
				pagerBox : "",
				pagerTable : "table",
				toppagerBox : "",
				pgInput : "form-control",
				pgSelectBox : "form-select",
				pgButtonBox : ""
			},
			modal : {
				modal : "modal",
				header : "modal-header",
				title : "modal-title",
				content :"modal-content",
				body :"modal-body",
				footer :"modal-footer",				
				resizable : "ui-resizable-handle ui-resizable-se",
				icon_close : "oi-circle-x",
				icon_resizable : "oi-circle-x"
			},
			celledit : {
				inputClass : 'form-control',
				selectClass: 'form-select'
			},
			inlinedit : {
				inputClass : 'form-control',
				selectClass: 'form-select'
			},
			formedit : {
				labelClass : "form-label", 
				inputClass : "form-control",
				selectClass: 'form-select'
			},
			navigator : {
			},
			grouping : {
			},
			filter : {
				table_widget : 'table table-sm',
				srSelect : 'form-select',
				srInput : 'form-control',
				menu_widget : ''
			},
			subgrid : {
			},
			treegrid : {
			},
			fmatter : {
			},
			colmenu : {
				menu_widget : '',
				input_checkbox : "",
				filter_select: "form-select",
				filter_input : "form-control"
			}
		}
	},
	iconSet : {
		Iconic : {
			common : {
				icon_base : "oi"
			},
			base : {
				icon_first : "oi-media-step-backward",
				icon_prev : "oi-caret-left",
				icon_next: "oi-caret-right",
				icon_end: "oi-media-step-forward",
				icon_asc : "oi-caret-top",
				icon_desc : "oi-caret-bottom",
				icon_caption_open : "oi-collapse-up",
				icon_caption_close : "oi-expand-down"
			},
			modal : {
				icon_close : "oi-circle-x",
				icon_resizable : "oi-plus"
			},
			inlinedit : {
				icon_edit_nav : "oi-pencil",
				icon_add_nav : "oi-plus",
				icon_save_nav : "oi-check",
				icon_cancel_nav : "oi-action-undo"
			},
			formedit : {
				icon_prev : "oi-chevron-left",
				icon_next : "oi-chevron-right",
				icon_save : "oi-check",
				icon_close : "oi-ban",
				icon_del : "oi-delete",
				icon_cancel : "oi-ban"
			},
			navigator : {
				icon_edit_nav : "oi-pencil",
				icon_add_nav : "oi-plus",
				icon_del_nav : "oi-trash",
				icon_search_nav : "oi-zoom-in",
				icon_refresh_nav : "oi-reload",
				icon_view_nav : "oi-browser",
				icon_newbutton_nav : "oi-book"
			},
			grouping : {
				icon_plus : 'oi-caret-right',
				icon_minus : 'oi-caret-bottom'
			},
			filter : {
				icon_search : 'oi-magnifying-glass',
				icon_reset : 'oi-reload',
				icon_query :'oi-comment-square'
			},
			subgrid : {
				icon_plus : 'oi-chevron-right',
				icon_minus : 'oi-chevron-bottom',
				icon_open : 'oi-expand-left'
			},
			treegrid : {
				icon_plus : 'oi-plus',
				icon_minus : 'oi-minus',
				icon_leaf : 'oi-media-record'
			},
			fmatter : {
				icon_edit : "oi-pencil",
				icon_add : "oi-plus",
				icon_save : "oi-check",
				icon_cancel : "oi-action-undo",
				icon_del : "oi-trash"
			},
			colmenu : {
				icon_menu : "oi-list",
				icon_sort_asc : "oi-sort-ascending",
				icon_sort_desc : "oi-sort-descending",
				icon_columns : "oi-project",
				icon_filter : "oi-magnifying-glass",
				icon_group : "oi-list-rich",
				icon_freeze : "oi-spreadsheet",
				icon_move: "oi-move",
				icon_new_item : "oi-external-link",
				icon_toolbar_menu : "oi-menu",
				icon_group_op :"",
				icon_oper_op : "",
				icon_reset : "oi-reload",
				icon_close : "oi-ban"				
			}
		},
		Octicons : {
			common : {
				icon_base : "octicon"
			},
			base : {
				icon_first : "octicon-triangle-left",
				icon_prev : "octicon-chevron-left",
				icon_next: "octicon-chevron-right",
				icon_end: "octicon-triangle-right",
				icon_asc : "octicon-triangle-up",
				icon_desc : "octicon-triangle-down",
				icon_caption_open : "octicon-triangle-up",
				icon_caption_close : "octicon-triangle-down"
			},
			modal : {
				icon_close : "octicon-x",
				icon_resizable : "octicon-plus"
			},
			inlinedit : {
				icon_edit_nav : "octicon-pencil",
				icon_add_nav : "octicon-plus",
				icon_save_nav : "octicon-check",
				icon_cancel_nav : "octicon-circle-slash"
			},
			formedit : {
				icon_prev : "octicon-chevron-left",
				icon_next : "octicon-chevron-right",
				icon_save : "octicon-check",
				icon_close : "octicon-x",
				icon_del : "octicon-trashcan",
				icon_cancel : "octicon-circle-slash"
			},
			navigator : {
				icon_edit_nav : "octicon-pencil",
				icon_add_nav : "octicon-plus",
				icon_del_nav : "octicon-trashcan",
				icon_search_nav : "octicon-search",
				icon_refresh_nav : "octicon-sync",
				icon_view_nav : "octicon-file",
				icon_newbutton_nav : "octicon-link-external"
			},
			grouping : {
				icon_plus : 'octicon-triangle-right',
				icon_minus : 'octicon-triangle-down'
			},
			filter : {
				icon_search : 'octicon-search',
				icon_reset : 'octicon-sync',
				icon_query :'octicon-file-code'
			},
			subgrid : {
				icon_plus : 'octicon-triangle-right',
				icon_minus : 'octicon-triangle-down',
				icon_open : 'octicon-git-merge'
			},
			treegrid : {
				icon_plus : 'octicon-triangle-right',
				icon_minus : 'octicon-triangle-down',
				icon_leaf : 'octicon-primitive-dot'
			},
			fmatter : {
				icon_edit : "octicon-pencil",
				icon_add : "octicon-plus",
				icon_save : "octicon-check",
				icon_cancel : "octicon-circle-slash",
				icon_del : "octicon-trashcan"
			},
			colmenu : {
				icon_menu : "octicon-grabber",
				icon_sort_asc : "octicon-arrow-up",
				icon_sort_desc : "octicon-arrow-down",
				icon_columns : "octicon-repo",
				icon_filter : "octicon-search",
				icon_group : "octicon-list-unordered",
				icon_freeze : "octicon-repo",
				icon_move: "octicon-git-compare",
				icon_new_item : "octicon-link-external",
				icon_toolbar_menu : "octicon-three-bars",
				icon_group_op :"",
				icon_oper_op : "",
				icon_reset : "octicon-sync",
				icon_close : "octicon-x"				
			}
		},
		fontAwesome : {
			common : {
				icon_base : "fas"
			},
			base : {
				icon_first : "fa-step-backward",
				icon_prev : "fa-backward",
				icon_next: "fa-forward",
				icon_end: "fa-step-forward",
				icon_asc : "fa-caret-up",
				icon_desc : "fa-caret-down",
				icon_caption_open : "fa-caret-square-up",
				icon_caption_close : "fa-caret-square-down "
			},
			modal : {
				icon_close : "fa-window-close",
				icon_resizable : "fa-plus"
			},
			inlinedit : {
				icon_edit_nav : "fa-edit",
				icon_add_nav : "fa-plus",
				icon_save_nav : "fa-save",
				icon_cancel_nav : "fa-replay"
			},
			formedit : {
				icon_prev : "fa-chevron-left",
				icon_next : "fa-chevron-right",
				icon_save : "fa-save",
				icon_close : "fa-window-close",
				icon_del : "fa-trash",
				icon_cancel : "fa-times"
			},
			navigator : {
				icon_edit_nav : "fa-edit",
				icon_add_nav : "fa-plus",
				icon_del_nav : "fa-trash",
				icon_search_nav : "fa-search",
				icon_refresh_nav : "fa-sync",
				icon_view_nav : "fa-sticky-note",
				icon_newbutton_nav : "fa-external-link-alt"
			},
			grouping : {
				icon_plus : 'fa-caret-right',
				icon_minus : 'fa-caret-down'
			},
			filter : {
				icon_search : 'fa-search',
				icon_reset : 'fa-reply',
				icon_query :'fa-pen-square '
			},
			subgrid : {
				icon_plus : 'fa-arrow-circle-right',
				icon_minus : 'fa-arrow-circle-down',
				icon_open : 'fa-ellipsis-v'
			},
			treegrid : {
				icon_plus : 'fa-plus',
				icon_minus : 'fa-minus',
				icon_leaf : 'fa-circle'
			},
			fmatter : {
				icon_edit : "fa-edit",
				icon_add : "fa-plus",
				icon_save : "fa-save",
				icon_cancel : "fa-undo",
				icon_del : "fa-trash"
			},
			colmenu : {
				icon_menu : "fa-ellipsis-v",
				icon_sort_asc : "fa-sort-amount-up",
				icon_sort_desc : "fa-sort-amount-down",
				icon_columns : "fa-columns",
				icon_filter : "fa-filter",
				icon_group : "fa-object-group",
				icon_freeze : "fa-snowflake",
				icon_move: "fa-expand-arrows-alt",
				icon_new_item : "fa-external-link-alt",
				icon_toolbar_menu : "fa-list",
				icon_group_op :"",
				icon_oper_op : "",
				icon_reset : "fa-reply",
				icon_close : "fa-window-close"
				
			}
		},
		Bootstrap5 : {
			common : {
				icon_base : "bi"
			},
			base : {
				icon_first : "bi-chevron-bar-left",
				icon_prev : "bi-chevron-left",
				icon_next: "bi-chevron-right",
				icon_end: "bi-chevron-bar-right",
				icon_asc : "bi-caret-up-fill",
				icon_desc : "bi-caret-down-fill",
				icon_caption_open : "bi-arrows-collapse",
				icon_caption_close : "bi-arrows-expand"
			},
			modal : {
				icon_close : "bi-x-lg",
				icon_resizable : "bi-box-arrow-in-down-right"
			},
			inlinedit : {
				icon_edit_nav : "bi-pencil-square",
				icon_add_nav : "bi-plus-square",
				icon_save_nav : "bi-save",
				icon_cancel_nav : "bi-x-square"
			},
			formedit : {
				icon_prev : "bi-chevron-left",
				icon_next : "bi-chevron-right",
				icon_save : "bi-save",
				icon_close : "bi-x-square",
				icon_del : "bi-trash",
				icon_cancel : "bi-x-octagon"
			},
			navigator : {
				icon_edit_nav : "bi-pencil-square",
				icon_add_nav : "bi-plus-square",
				icon_del_nav : "bi-trash",
				icon_search_nav : "bi-search",
				icon_refresh_nav : "bi-arrow-clockwise",
				icon_view_nav : "bi-view-list",
				icon_newbutton_nav : "bi-window"
			},
			grouping : {
				icon_plus : 'bi-caret-right',
				icon_minus : 'bi-caret-down'
			},
			filter : {
				icon_search : 'bi-search',
				icon_reset : 'bi-arrow-clockwise',
				icon_query :'bi-journal-code'
			},
			subgrid : {
				icon_plus : 'bi-chevron-right',
				icon_minus : 'bi-chevron-down',
				icon_open : 'bi-arrow-bar-right'
			},
			treegrid : {
				icon_plus : 'bi-plus-square-dotted',
				icon_minus : 'bi-dash-square-dotted',
				icon_leaf : 'bi-circle'
			},
			fmatter : {
				icon_edit : "bi-pencil-square",
				icon_add : "bi-plus-square",
				icon_save : "bi-save",
				icon_cancel : "bi-x-square",
				icon_del : "bi-trash"
			},
			colmenu : {
				icon_menu : "bi-list",
				icon_sort_asc : "bi-sort-alpha-down",
				icon_sort_desc : "bi-sort-alpha-up",
				icon_columns : "bi-columns",
				icon_filter : "bi-search",
				icon_group : "bi-collection-play",
				icon_freeze : "bi-layout-text-sidebar-reverse",
				icon_move: "bi-arrows-move",
				icon_new_item : "bi-window",
				icon_toolbar_menu : "bi-card-text",
				icon_group_op :"",
				icon_oper_op : "",
				icon_reset : "bi-arrow-clockwise",
				icon_close : "bi-x-square"				
			}
		}
	}
});

$.fn.jqGrid = function( pin ) {
	if (typeof pin === 'string') {
		var fn = $.jgrid.getMethod(pin);
		if (!fn) {
			throw "jqGrid - No such method: " + pin;
		}
		var args = $.makeArray(arguments).slice(1);
		return fn.apply(this,args);
	}
	return this.each( function() {
		if(this.grid) {return;}
		var localData;
		if ( !$.jgrid.isNull(pin) && pin.data !== undefined) {
			localData = pin.data;
			pin.data = [];
		}

		var p = $.extend(true,{
			url: "",
			height: 150,
			defaultColWidth : 150,
			page: 1,
			rowNum: 20,
			rowTotal : null,
			records: 0,
			pager: "",
			pgbuttons: true,
			pginput: true,
			colModel: [],
			rowList: [],
			colNames: [],
			sortorder: "asc",
			sortname: "",
			datatype: "xml",
			mtype: "GET",
			altRows: false,
			selarrrow: [],
			preserveSelection : false,
			savedRow: [],
			shrinkToFit: true,
			xmlReader: {},
			jsonReader: {},
			subGrid: false,
			subGridModel :[],
			reccount: 0,
			lastpage: 0,
			lastsort: 0,
			selrow: null,
			beforeSelectRow: null,
			onSelectRow: null,
			onSortCol: null,
			ondblClickRow: null,
			onRightClickRow: null,
			onPaging: null,
			onSelectAll: null,
			onInitGrid : null,
			loadComplete: null,
			gridComplete: null,
			loadError: null,
			loadBeforeSend: null,
			afterInsertRow: null,
			beforeRequest: null,
			beforeProcessing : null,
			onHeaderClick: null,
			viewrecords: false,
			loadonce: false,
			multiselect: false,
			multikey: false,
			multiboxonly : false,
			multimail : false,
			multiselectWidth: 30,
			onMultiSleect : null,
			editurl: null,
			search: false,
			caption: "",
			hidegrid: true,
			hiddengrid: false,
			postData: {},
			userData: {},
			treeGrid : false,
			treeGridModel : 'nested',
			treeReader : {},
			treeANode : -1,
			ExpandColumn: null,
			tree_root_level : 0,
			prmNames: {
				page:"page",
				rows:"rows",
				sort: "sidx",
				order: "sord",
				search:"_search",
				nd:"nd",
				id:"id",
				oper:"oper",
				editoper:"edit",
				addoper:"add",
				deloper:"del",
				subgridid:"id",
				npage: null,
				totalrows:"totalrows"
			},
			forceFit : false,
			gridstate : "visible",
			cellEdit: false,
			cellsubmit: "remote",
			nv:0,
			loadui: "enable",
			toolbar: [false,""],
			scroll: false,
			deselectAfterSort : true,
			scrollrows : false,
			autowidth: false,
			scrollOffset : $.jgrid.scrollbarWidth() + 3, // one extra for windows
			cellLayout: 5,
			subGridWidth: 20,
			gridview: true,
			rownumWidth: 35,
			rownumbers : false,
			pagerpos: 'center',
			recordpos: 'right',
			footerrow : false,
			userDataOnFooter : false,
			headerrow : false,
			userDataOnHeader : false,
			hoverrows : true,
			viewsortcols : [false,'vertical',true],
			resizeclass : '',
			autoencode : false,
			remapColumns : [],
			ajaxGridOptions :{},
			direction : "ltr",
			toppager: false,
			headertitles: false,
			scrollTimeout: 40,
			data : [],
			_index : {},
			grouping : false,
			groupingView : {
				groupField:[],
				groupOrder:[],
				groupText:[],
				groupColumnShow:[],
				groupSummary:[],
				showSummaryOnHide: false,
				sortitems:[],
				sortnames:[],
				summary:[],
				summaryval:[],
				plusicon: '',
				minusicon: '',
				displayField: [],
				groupSummaryPos:[],
				formatDisplayField : [],
				_locgr : false
			},
			groupHeaderOn : false,
			ignoreCase : true,
			cmTemplate : {},
			idPrefix : "",
			multiSort :  false,
			minColWidth : 33,
			minGridWidth : 100,
			maxGridWidth : 3000,
			scrollPopUp : false,
			scrollTopOffset: 0, // pixel
			scrollLeftOffset : "100%", //percent
			scrollMaxBuffer : 0,
			storeNavOptions: false,
			regional :  "en",
			styleUI : "jQueryUI",
			iconSet : "Iconic",
			responsive : false,
			forcePgButtons : false,
			resizeHeight : true,
			restoreCellonFail : true,
			editNextRowCell : false,
			colFilters : {},
			colMenu : false,
			colMenuCustom : {},
			colMenuColumnDone : null,
			colMenuBeforeProcess : null,
			colSpanHeader : [],
			// tree pagging
			treeGrid_bigData: false,
			treeGrid_rootParams: {otherData:{}},
			treeGrid_beforeRequest: null,
			treeGrid_afterLoadComplete: null,
			useNameForSearch : false,
			formatFooterData : false,
			formatHeaderData : false,
			mergeSearch : false,
			searchModules : {
				mergeOper : 'AND',
				filterInput : true,
				filterToolbar : true,
				searchGrid : true,
				colMenuSearch : true
			},
			emptyRecordRow : true,
			ariaBody : false,
			searchCols : false,
			searchColOptions : {
				colWidth : 90,
				searchOp : "OR", //default
				operand : "cn", // default
				useCase : false, // for searching
				colName : "Search Col", // header title 
				colmenu : true, // special colmenu
				searchOnEnter : true,
				aOperands : ['cn', 'bw', 'ew', 'eq', 'ne'], // allowed options
				_cnth : ['cb', 'rn', 'sc', 'subgrid', 'col_name'], // internal (just in case)
				visibleColumns : []
			},
			dbconfig: {
				dbname : "",
				dbversion : -1,
				dbtable : "",
				deleteIfExists : false,
				loadIfExists : false,
				isKeyInData : false,
				dataUrl : "",
				reader : null,
				beforeInsertData : null,
				fetchOptions : {}
			}
		}, $.jgrid.defaults , pin );
		if (localData !== undefined) {
			p.data = localData;
			pin.data = localData;
		}
		var ts= this, grid={
			headers:[],
			cols:[],
			footers: [],
			hrheaders : [],
			dragStart: function(i,x,y) {
				var gridLeftPos = $(this.bDiv).offset().left,
					minW = parseInt( (p.colModel[i].minResizeWidth ? p.colModel[i].minResizeWidth : p.minColWidth), 10);
				if(isNaN( minW )) {
					minW = 33;
				}
				this.resizing = { idx: i, startX: x.pageX, sOL : x.pageX - gridLeftPos, minW :  minW  };
				this.hDiv.style.cursor = "col-resize";
				this.curGbox = $("#rs_m"+$.jgrid.jqID(p.id),"#gbox_"+$.jgrid.jqID(p.id));
				this.curGbox.css({display:"block",left:x.pageX-gridLeftPos,top:y[1],height:y[2]});
				$(ts).triggerHandler("jqGridResizeStart", [x, i]);
				if($.jgrid.isFunction(p.resizeStart)) { p.resizeStart.call(ts,x,i); }
				document.onselectstart=function(){return false;};
			},
			dragMove: function(x) {
				if(this.resizing) {
					var diff = x.pageX-this.resizing.startX,
					h = this.headers[this.resizing.idx],
					newWidth = p.direction === "ltr" ? h.width + diff : h.width - diff, hn, nWn;
					if(newWidth > this.resizing.minW) {
						this.curGbox.css({left:this.resizing.sOL+diff});
						if(p.forceFit===true ){
							hn = this.headers[this.resizing.idx+p.nv];
							nWn = p.direction === "ltr" ? hn.width - diff : hn.width + diff;
							if(nWn > this.resizing.minW ) {
								h.newWidth = newWidth;
								hn.newWidth = nWn;
							}
						} else {
							this.newWidth = p.direction === "ltr" ? p.tblwidth+diff : p.tblwidth-diff;
							h.newWidth = newWidth;
						}
					}
				}
			},
			dragEnd: function( events, forceFrozen ) {
				this.hDiv.style.cursor = "default";
				if(forceFrozen === undefined) {
					forceFrozen = true;
				}
				if(this.resizing) {
					var idx = this.resizing.idx,
					nw = this.headers[idx].newWidth || this.headers[idx].width;
					nw = parseFloat(nw);
					this.resizing = false;
					$("#rs_m"+$.jgrid.jqID(p.id)).css("display","none");
					p.colModel[idx].width = nw;
					this.headers[idx].width = nw;
					this.headers[idx].el.style.width = nw + "px";
					this.cols[idx].style.width = nw+"px";
					if(this.footers.length>0) {this.footers[idx].style.width = nw+"px";}
					if(this.hrheaders.length>0) {this.hrheaders[idx].style.width = nw+"px";}
					if(p.forceFit===true){
						nw = this.headers[idx+p.nv].newWidth || this.headers[idx+p.nv].width;
						this.headers[idx+p.nv].width = nw;
						this.headers[idx+p.nv].el.style.width = nw + "px";
						this.cols[idx+p.nv].style.width = nw+"px";
						if(this.footers.length>0) {this.footers[idx+p.nv].style.width = nw+"px";}
						if(this.hrheaders.length>0) {this.hrheaders[idx+p.nv].style.width = nw+"px";}
						p.colModel[idx+p.nv].width = nw;
					} else {
						p.tblwidth = this.newWidth || p.tblwidth;
						$(this.bDiv).find('table').first().css("width",p.tblwidth+"px");
						$(this.hDiv).find('table').first().css("width",p.tblwidth+"px");
						this.hDiv.scrollLeft = this.bDiv.scrollLeft;
						if(p.footerrow) {
							$(this.sDiv).find('table').first().css("width",p.tblwidth+"px");
							this.sDiv.scrollLeft = this.bDiv.scrollLeft;
						}
						if(p.headerrow) {
							$(this.hrDiv).find('table').first().css("width",p.tblwidth+"px");
							this.hrDiv.scrollLeft = this.bDiv.scrollLeft;
						}
					}
					if(events) {
						$(ts).triggerHandler("jqGridResizeStop", [nw, idx]);
						if($.jgrid.isFunction(p.resizeStop)) { p.resizeStop.call(ts,nw,idx); }
					}
					if(p.frozenColumns && forceFrozen) {
						$("#"+$.jgrid.jqID(p.id)).jqGrid("destroyFrozenColumns");
						$("#"+$.jgrid.jqID(p.id)).jqGrid("setFrozenColumns");		
					}
				}
				this.curGbox = null;
				document.onselectstart=function(){return true;};
			},
			populateVisible: function() {
				if (grid.timer) { clearTimeout(grid.timer); }
				grid.timer = null;
				var dh = $(grid.bDiv).height();
				if (!dh) { return; }
				var table = $(grid.bDiv).find("table").first();
				var rows, rh;
				if(table[0].rows.length) {
					try {
						rows = table[0].rows[1];
						rh = rows ? $(rows).outerHeight() || grid.prevRowHeight : grid.prevRowHeight;
					} catch (pv) {
						rh = grid.prevRowHeight;
					}
				}
				if (!rh) { return; }
				grid.prevRowHeight = rh;
				var rn = p.rowNum;
				var scrollTop = grid.scrollTop = grid.bDiv.scrollTop;
				var ttop = Math.round(table.position().top) - scrollTop;
				var tbot = ttop + table.height();
				var div = rh * rn;
				var page, npage, empty;
				if ( tbot < dh && ttop <= 0 &&
					(p.lastpage===undefined||(parseInt((tbot + scrollTop + div - 1) / div,10) || 0) <= p.lastpage))
				{
					npage = parseInt((dh - tbot + div - 1) / div,10) || 1;
					if (tbot >= 0 || npage < 2 || p.scroll === true) {
						page = ( Math.round((tbot + scrollTop) / div) || 0) + 1;
						ttop = -1;
					} else {
						ttop = 1;
					}
				}
				if (ttop > 0) {
					page = ( parseInt(scrollTop / div,10) || 0 ) + 1;
					npage = (parseInt((scrollTop + dh) / div,10) || 0) + 2 - page;
					empty = true;
				}
				if (npage) {
					if (p.lastpage && (page > p.lastpage || p.lastpage===1 || (page === p.page && page===p.lastpage)) ) {
						return;
					}
					if (grid.hDiv.loading) {
						grid.timer = setTimeout(grid.populateVisible, p.scrollTimeout);
					} else {
						p.page = page;
						if( p.scrollMaxBuffer > 0 ) {
							if( rn > 0 && p.scrollMaxBuffer < rn ) {
								p.scrollMaxBuffer = rn + 1;
							}
							if(p.reccount  > (p.scrollMaxBuffer - (rn > 0 ? rn : 0) )  ) {
								empty = true;
							}
						}
						if (empty) {
							grid.selectionPreserver(table[0]);
							grid.emptyRows.call(table[0], false, false);
						}
						grid.populate(npage);
					}
					if(p.scrollPopUp && !$.jgrid.isNull(p.lastpage)) {
						$("#scroll_g"+p.id).show().html( $.jgrid.template( $.jgrid.getRegional(ts, "defaults.pgtext", p.pgtext) , p.page, p.lastpage)).css({ "top": p.scrollTopOffset+scrollTop*((parseInt(p.height,10) - 45)/ (parseInt(rh,10)*parseInt(p.records,10))) +"px", "left" : p.scrollLeftOffset});
						$(this).mouseout(function(){
							$("#scroll_g"+p.id).hide();
						});
					}
				}
			},
			scrollGrid: function() {
				if(!grid.bScroll) {
					grid.hScroll  = true;

					if(p.scroll) {
						var scrollTop = grid.bDiv.scrollTop;
						if(grid.scrollTop === undefined) { grid.scrollTop = 0; }
						if (scrollTop !== grid.scrollTop) {
							grid.scrollTop = scrollTop;
							if (grid.timer) { clearTimeout(grid.timer); }
							grid.timer = setTimeout(grid.populateVisible, p.scrollTimeout);
						}
					}
					grid.hDiv.scrollLeft = grid.bDiv.scrollLeft;
					if(p.footerrow) {
						grid.sDiv.scrollLeft = grid.bDiv.scrollLeft;
					}
					if(p.headerrow) {
						grid.hrDiv.scrollLeft = grid.bDiv.scrollLeft;
					}
					if(p.frozenColumns) {
						$(grid.fbDiv).scrollTop( grid.bDiv.scrollTop );
					}
					try {
						$("#column_menu").remove();
					} catch (e) {}
				}
				grid.bScroll = false;
			},
			selectionPreserver : function(ts) {
				var p = ts.p,
				sr = p.selrow, sra = p.selarrrow ? $.makeArray(p.selarrrow) : null,
				left = ts.grid.bDiv.scrollLeft,
				restoreSelection = function() {
					var i;
					//p.selrow = null;
					//p.selarrrow = [];
					if(p.multiselect && sra && sra.length>0) {
						for(i=0;i<sra.length;i++){
							if (sra[i]) {
								$(ts).jqGrid("setSelection", sra[i], false, "_sp_");
							}
						}
					}
					if (!p.multiselect && sr) {
						$(ts).jqGrid("setSelection", sr, false, null);
					}
					ts.grid.bDiv.scrollLeft = left;
					$(ts).off('.selectionPreserver', restoreSelection);
				};
				$(ts).on('jqGridGridComplete.selectionPreserver', restoreSelection);
			},
			hScroll : false,
			bScroll : false
		};
		if( this.tagName.toUpperCase() !== 'TABLE' || $.jgrid.isNull(this.id) ) {
			alert("Element is not a table or has no id!");
			return;
		}
		if(document.documentMode !== undefined ) { // IE only
			if(document.documentMode <= 5) {
				alert("Grid can not be used in this ('quirks') mode!");
				return;
			}
		}
		var i =0, lr, lk, dir, spsh;
		for( lk in $.jgrid.regional ){
			if($.jgrid.regional.hasOwnProperty(lk)) {
				if(i===0) { lr = lk; }
				i++;
			}
		}
		if(i === 1 && lr !== p.regional) {
			p.regional = lr;
		}
		$(this).empty().attr("tabindex","0");
		this.p = p ;
		this.p.useProp = !!$.fn.prop;
		if(this.p.colNames.length === 0) {
			for (i=0;i<this.p.colModel.length;i++){
				this.p.colNames[i] = this.p.colModel[i].label || this.p.colModel[i].name;
			}
		}
		if( this.p.colNames.length !== this.p.colModel.length ) {
			alert($.jgrid.getRegional(this,"errors.model"));
			return;
		}
		if(ts.p.styleUI === 'Bootstrap4') {
			if($.jgrid.iconSet.hasOwnProperty(ts.p.iconSet)) {
				$.extend(true, $.jgrid.styleUI.Bootstrap4, $.jgrid.iconSet[ts.p.iconSet]);
			}
		}
		if(ts.p.styleUI === 'Bootstrap5') {
			if($.jgrid.iconSet.hasOwnProperty(ts.p.iconSet)) {
				$.extend(true, $.jgrid.styleUI.Bootstrap5, $.jgrid.iconSet[ts.p.iconSet]);
			}
		}
		var getstyle = $.jgrid.getMethod("getStyleUI"),
		stylemodule = ts.p.styleUI + ".common",
		disabled = getstyle(stylemodule,'disabled', true),
		highlight = getstyle(stylemodule,'highlight', true),
		hover = getstyle(stylemodule,'hover', true),
		cornerall = getstyle(stylemodule,'cornerall', true),
		iconbase = getstyle(stylemodule,'icon_base', true),
		colmenustyle = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].colmenu,
		isMSIE = $.jgrid.msie(),
		gv, sortarr = [], sortord = [], sotmp=[];
		stylemodule = ts.p.styleUI + ".base";
		gv = $("<div "+getstyle(stylemodule, 'viewBox', false, 'ui-jqgrid-view')+" ></div>");
		ts.p.direction = $.jgrid.trim(ts.p.direction.toLowerCase());
		ts.p._ald = false;
		if($.inArray(ts.p.direction,["ltr","rtl"]) === -1) { ts.p.direction = "ltr"; }
		dir = ts.p.direction;

		$(gv).insertBefore(this);
		$(this).appendTo(gv);

		var eg = $("<div "+ getstyle(stylemodule, 'entrieBox', false, 'ui-jqgrid') +"></div>");
		$(eg).attr({"id" : "gbox_"+this.id,"dir":dir}).insertBefore(gv);
		$(gv).attr("id","gview_"+this.id).appendTo(eg);
		$("<div "+getstyle(ts.p.styleUI+'.common','overlay', false, 'jqgrid-overlay')+ " id='lui_"+this.id+"'></div>").insertBefore(gv);
		$("<div "+getstyle(stylemodule,'loadingBox', false, 'loading')+" id='load_"+this.id+"'>"+$.jgrid.getRegional(ts, "defaults.loadtext", this.p.loadtext)+"</div>").insertBefore(gv);

		$(this).attr({role:"grid","aria-multiselectable":!!this.p.multiselect,"aria-labelledby":"gbox_"+this.id});

		if(ts.p.datatype === 'indexeddb') { // datatype in databases
			$(ts).jqGrid('dbInit',ts.p.datatype );
		}
		var sortkeys = ["shiftKey","altKey","ctrlKey"],
		grid_font = $.jgrid.getFont( ts ) ,
		intNum = function(val, defval) {
			if( defval === undefined ) {
				defval = 0;
			}
			val = parseInt(val,10);
			return !isNaN(val) ? val : defval;
		},
		formatCol = function (pos, rowInd, tv, rawObject, rowId, rdata){
			var cm = ts.p.colModel[pos], cellAttrFunc,
			ral = cm.align, result="style=\"", clas = cm.classes, nm = cm.name, celp, acp=[];
			if(ral) { result += "text-align:"+ral+";"; }
			if(cm.hidden===true) { result += "display:none;"; }
			if(rowInd===0) {
				result += "width: "+grid.headers[pos].width+"px;";
			} else if ( $.jgrid.isFunction(cm.cellattr) || (typeof cm.cellattr === "string" && !$.jgrid.isNull( $.jgrid.cellattr ) && $.jgrid.isFunction($.jgrid.cellattr[cm.cellattr]))) {
				cellAttrFunc = $.jgrid.isFunction(cm.cellattr) ? cm.cellattr : $.jgrid.cellattr[cm.cellattr];
				celp = cellAttrFunc.call(ts, rowId, tv, rawObject, cm, rdata);
				if(celp && typeof celp === "string") {
					if(celp.indexOf('title') > -1) { cm.title=false;}
					if(celp.indexOf('class') > -1) { clas = undefined;}
					celp = String(celp).replace(/\s+\=/g, '=');
					acp = celp.split("style=");

					if(acp.length === 2 ) {
						acp[1] =  $.jgrid.trim(acp[1]);
						if(acp[1].indexOf("'") === 0 || acp[1].indexOf('"') === 0) {
							acp[1] = acp[1].substring(1);
						}
						result += acp[1].replace(/'/gi,'"');
					} else {
						result += "\"";
					}
				}
			}
			if(!acp.length ) { 
				acp[0] = ""; 
				result += "\"";
			} else if(acp.length > 2) {
				acp[0] = ""; 
			}
			result += (clas !== undefined ? (" class=\""+clas+"\"") :"") + ((cm.title && tv) ? (" title=\""+$.jgrid.stripHtml(tv)+"\"") :"");
			result += " aria-describedby=\""+ts.p.id+"_"+nm+"\"";
			return result + acp[0];
		},
		cellVal =  function (val) {
			return $.jgrid.isNull(val) || val === "" ? "&#160;" : (ts.p.autoencode ? $.jgrid.htmlEncode(val) : String(val));
		},
		formatter = function (rowId, cellval , colpos, rwdat, _act){
			var cm = ts.p.colModel[colpos],v;
			rowId = String(ts.p.idPrefix) !== "" ? $.jgrid.stripPref(ts.p.idPrefix, rowId) : rowId;
			var opts= {rowId: rowId, colModel:cm, gid:ts.p.id, pos:colpos, styleUI: ts.p.styleUI };
			if(cm.formatter !== undefined) {
				if($.jgrid.isFunction( cm.formatter ) ) {
					v = cm.formatter.call(ts,cellval,opts,rwdat,_act);
				} else if($.fmatter){
					v = $.fn.fmatter.call(ts,cm.formatter,cellval,opts,rwdat,_act);
				} else {
					v = cellVal(cellval);
				}
			} else {
				v = cellVal(cellval);
			}
			if(ts.p.autoResizing && cm.autosize) {
				if(!cm._maxsize) {
					cm._maxsize = cm.canvas_width;
				}
				cm._maxsize = Math.max( (!!$.jgrid.isFunction( cm.sizingStringFunc ) ? 
							cm.sizingStringFunc.call(ts, v, grid_font, opts, rwdat) : 
							$.jgrid.getTextWidth( v, grid_font ) ), 
					cm._maxsize );
			}
			return v;
		},
		addCell = function(rowId,cell,pos,irow, srvr, rdata) {
			var v,prp;
			v = formatter(rowId,cell,pos,srvr,'add');
			prp = formatCol( pos,irow, v, srvr, rowId, rdata);
			return "<td role=\"gridcell\" "+prp+">"+v+"</td>";
		},
		addMulti = function(rowid, pos, irow, checked, uiclass, srvr){
			var rowSelectTitle=$.jgrid.getRegional(ts, "defaults.selectLine");
			rowSelectTitle=rowSelectTitle ? rowSelectTitle : $.jgrid.regional['en'].defaults.selectLine;
			var	v = "<input role=\"checkbox\" title='"+rowSelectTitle+"' type=\"checkbox\""+" id=\"jqg_"+ts.p.id+"_"+rowid+"\" "+uiclass+" name=\"jqg_"+ts.p.id+"_"+rowid+"\"" + (checked ? "checked=\"checked\"" : "")+"/>",
			cm = ts.p.colModel[pos];
			if(cm.formatter !== undefined && $.jgrid.isFunction( cm.formatter )) {
				v = cm.formatter.call(ts,v,{rowId: rowid, colModel:cm, gid:ts.p.id, pos:pos, styleUI: ts.p.styleUI },srvr,'add');
			}
			var prp = formatCol( pos,irow, v, srvr, rowid, true);
			return "<td role=\"gridcell\" "+prp+">"+v+"</td>";
		},
		addRowNum = function (pos, irow, pG, rN, uiclass ) {
			var v =  (parseInt(pG,10)-1)*parseInt(rN,10)+1+irow,
			prp = formatCol( pos,irow,v, null, irow, true);
			return "<td role=\"gridcell\" "+uiclass+" "+prp+">"+v+"</td>";
		},
		addSearch = function(rowid, pos, irow, uiclass){
			var searchColEvent = ts.p.searchColOptions.searchOnEnter ? " onchange=\"$.jgrid.searchColOnEnter('"+ts.p.id+"',"+rowid+", this)\"" : " onkeydown=\"$.jgrid.searchColOnKey('"+ts.p.id+"',"+rowid+",this, event)\"";
			var	v = "<input type=\"text\""+" id=\"jqs_"+ts.p.id+"_"+rowid+"\" name=\"jqs_"+ts.p.id+"_"+rowid+"\" "+uiclass+ searchColEvent +"/>",
				prp = formatCol( pos,irow,'',null, rowid, true);
			return "<td role=\"gridcell\" "+prp+">"+v+"</td>";
		},
		reader = function (datatype) {
			var field, f=[], j=0, i;
			for(i =0; i<ts.p.colModel.length; i++){
				field = ts.p.colModel[i];
				if (field.name !== 'cb' && field.name !=='subgrid' && field.name !=='rn' && field.name !=='sc') {
					f[j]= datatype === "local" ?
					field.name :
					( (datatype==="xml" || datatype === "xmlstring") ? field.xmlmap || field.name : field.jsonmap || field.name );
					if(ts.p.keyName !== false && field.key===true ) {
						ts.p.keyName = f[j];
						ts.p.keyIndex = j;
					}
					j++;
				}
			}
			return f;
		},
		orderedCols = function (offset) {
			var order = ts.p.remapColumns;
			if (!order || !order.length) {
				order = $.map(ts.p.colModel, function(v,i) { return i; });
			}
			if (offset) {
				order = $.map(order, function(v) { return v<offset?null:v-offset; });
			}
			return order;
		},
		emptyRows = function (scroll, locdata) {
			var firstrow;
			if (this.p.deepempty) {
				$(this.rows).slice(1).remove();
			} else {
				firstrow = this.rows.length > 0 ? this.rows[0] : null;
				$(this.firstChild).empty().append(firstrow);
			}
			if (scroll && this.p.scroll) {
				$(this.grid.bDiv.firstChild).css({height: "auto"});
				$(this.grid.bDiv.firstChild.firstChild).css({height: "0px", display: "none"});
				if (this.grid.bDiv.scrollTop !== 0) {
					this.grid.bDiv.scrollTop = 0;
				}
			}
			if(locdata === true ) { //&& this.p.treeGrid && !this.p.loadonce ) {
				this.p.data = []; 
				this.p._index = {};
			}
		},
		normalizeData = function() {
			var p = ts.p, data = p.data, dataLength = data.length, i, j, cur, idn, idr, ccur, v, rd,
			localReader = p.localReader,
			colModel = p.colModel,
			cellName = localReader.cell,
			iOffset = (p.multiselect === true ? 1 : 0) + (p.subGrid === true ? 1 : 0) + (p.rownumbers === true ? 1 : 0) + (p.searchCols === true ? 1 : 0),
			br = p.scroll ? $.jgrid.randId() : 1,
			arrayReader, objectReader, rowReader;

			if (p.datatype !== "local" || localReader.repeatitems !== true) {
				return; // nothing to do
			}

			arrayReader = orderedCols(iOffset);
			objectReader = reader("local");
			// read ALL input items and convert items to be read by
			// $.jgrid.getAccessor with column name as the second parameter
			idn = p.keyName === false ?
				($.jgrid.isFunction(localReader.id) ? localReader.id.call(ts, data) : localReader.id) :
				p.keyName;
			for (i = 0; i < dataLength; i++) {
				cur = data[i];
				// read id in the same way like addJSONData do
				// probably it would be better to start with "if (cellName) {...}"
				// but the goal of the current implementation was just have THE SAME
				// id values like in addJSONData ...
				idr = $.jgrid.getAccessor(cur, idn);
				if (idr === undefined) {
					if (typeof idn === "number" &&  !$.jgrid.isNull( colModel[idn + iOffset]) ) {
						// reread id by name
						idr = $.jgrid.getAccessor(cur, colModel[idn + iOffset].name);
					}
					if (idr === undefined) {
						idr = br + i;
						if (cellName) {
							ccur = $.jgrid.getAccessor(cur, cellName) || cur;
							idr = !$.jgrid.isNull(ccur) && ccur[idn] !== undefined ? ccur[idn] : idr;
							ccur = null;
						}
					}
				}
				rd = { };
				rd[localReader.id] = idr;
				if (cellName) {
					cur = $.jgrid.getAccessor(cur, cellName) || cur;
				}
				rowReader = Array.isArray(cur) ? arrayReader : objectReader;
				for (j = 0; j < rowReader.length; j++) {
					v = $.jgrid.getAccessor(cur, rowReader[j]);
					rd[colModel[j + iOffset].name] = v;
				}
				data[i] = rd;
				//$.extend(true, data[i], rd);
			}
		},
		refreshIndex = function() {
			var datalen = ts.p.data.length, idname, i, val;

			idname =  ts.p.keyName !== false ? ts.p.keyName : idname = ts.p.localReader.id;
			ts.p._index = {};
			for(i =0;i < datalen; i++) {
				val = $.jgrid.getAccessor(ts.p.data[i],idname);
				if (val === undefined) { val=String(i+1); }
				ts.p._index[val] = i;
			}
		},
		constructTr = function(id, hide, classes, rd, cur ) {
			var tabindex = '-1', restAttr = '', attrName, style = hide ? 'display:none;' : '',
				//classes = getstyle(stylemodule, 'rowBox', true) + ts.p.direction + (altClass ? ' ' + altClass : '') + (selected ? ' ' + highlight : ''),
				rowAttrObj = $(ts).triggerHandler("jqGridRowAttr", [rd, cur, id]);
			if( typeof rowAttrObj !== "object" ) {
				rowAttrObj = $.jgrid.isFunction(ts.p.rowattr) ? ts.p.rowattr.call(ts, rd, cur, id) :
					(typeof ts.p.rowattr === "string" && !$.jgrid.isNull($.jgrid.rowattr) && $.jgrid.isFunction($.jgrid.rowattr[ts.p.rowattr]) ?
					$.jgrid.rowattr[ts.p.rowattr].call(ts, rd, cur, id) : {});
			}
			if(!$.isEmptyObject( rowAttrObj )) {
				if (rowAttrObj.hasOwnProperty("id")) {
					id = rowAttrObj.id;
					delete rowAttrObj.id;
				}
				if (rowAttrObj.hasOwnProperty("tabindex")) {
					tabindex = rowAttrObj.tabindex;
					delete rowAttrObj.tabindex;
				}
				if (rowAttrObj.hasOwnProperty("style")) {
					style += rowAttrObj.style;
					delete rowAttrObj.style;
				}
				if (rowAttrObj.hasOwnProperty("class")) {
					classes += ' ' + rowAttrObj['class'];
					delete rowAttrObj['class'];
				}
				// dot't allow to change role attribute
				try { delete rowAttrObj.role; } catch(ra){}
				for (attrName in rowAttrObj) {
					if (rowAttrObj.hasOwnProperty(attrName)) {
						restAttr += ' ' + attrName + '=' + rowAttrObj[attrName];
					}
				}
			}
			return '<tr role="row" id="' + id + '" tabindex="' + tabindex + '" class="' + classes + '"' +
				(style === '' ? '' : ' style="' + style + '"') + restAttr + '>';
		},
		//bvn13
		treeGrid_beforeRequest = function() {
			if (ts.p.treeGrid && ts.p.treeGrid_bigData) {
				if (	ts.p.postData.nodeid !== undefined &&
						typeof(ts.p.postData.nodeid) === 'string' &&
						( ts.p.postData.nodeid !== ""	||
							parseInt(ts.p.postData.nodeid,10) > 0 )
				) {
                    ts.p.postData.rows = 10000;
                    ts.p.postData.page = 1;
                    ts.p.treeGrid_rootParams.otherData.nodeid = ts.p.postData.nodeid;
				}
			}
		},
		treeGrid_afterLoadComplete = function() {
			if (ts.p.treeGrid && ts.p.treeGrid_bigData) {
				if (	ts.p.treeGrid_rootParams.otherData.nodeid !== undefined	&&
						typeof(ts.p.treeGrid_rootParams.otherData.nodeid) === 'string' &&
						(
							ts.p.treeGrid_rootParams.otherData.nodeid !== "" ||
                            parseInt(ts.p.treeGrid_rootParams.otherData.nodeid,10) > 0
						)
				) {
					if ( ts.p.treeGrid_rootParams !== undefined && !$.jgrid.isNull(ts.p.treeGrid_rootParams) ) {
						ts.p.page = ts.p.treeGrid_rootParams.page;
						ts.p.lastpage = ts.p.treeGrid_rootParams.lastpage;

						ts.p.postData.rows = ts.p.treeGrid_rootParams.postData.rows;
                        ts.p.postData.totalrows = ts.p.treeGrid_rootParams.postData.totalrows;

                        ts.p.treeGrid_rootParams.otherData.nodeid = "";
                        ts.updatepager(false,true);
					}
				} else {
					ts.p.treeGrid_rootParams = {
						page : ts.p.page,
						lastpage : ts.p.lastpage,
						postData : {
                            rows: ts.p.postData.rows,
                            totalrows: ts.p.postData.totalrows
                        },
                        rowNum : ts.p.rowNum,
                        rowTotal : ts.p.rowTotal,
                        otherData : {
                            nodeid : ""
                        }
					};
				}
			}
		},
		//-bvn13
		addXmlData = function (xml, rcnt, more, adjust) {
			var startReq = new Date(),
			locdata = (ts.p.datatype !== "local" && ts.p.loadonce) || ts.p.datatype === "xmlstring",
			xmlid = "_id_", xmlRd = ts.p.xmlReader,
			treeadjtmp =[],
			frd = ts.p.datatype === "local" ? "local" : "xml";
			if(locdata) {
				ts.p.data = [];
				ts.p._index = {};
				ts.p.localReader.id = xmlid;
			}
			ts.p.reccount = 0;
			if($.isXMLDoc(xml)) {
				if(ts.p.treeANode===-1 && !ts.p.scroll) {
					emptyRows.call(ts, false, false);
					rcnt=1;
				} else { rcnt = rcnt > 1 ? rcnt :1; }
			} else { return; }
			var self= $(ts), i,fpos,ir=0,v,si=0,addSubGridCell,idn, getId,f=[],F,rd ={},
					xmlr,rid, rowData=[], classes = getstyle(stylemodule, 'rowBox', true, 'jqgrow ui-row-'+ ts.p.direction),
					ni=ts.p.rownumbers===true ? 1 : 0,
					gi=ts.p.multiselect===true ? 1 : 0,
					sc = ts.p.searchCols ===true ? 1 : 0;
			if(ts.p.subGrid===true) {
				si = 1;
				addSubGridCell = $.jgrid.getMethod("addSubGridCell");
			}
			if(!xmlRd.repeatitems) {f = reader(frd);}
			if( ts.p.keyName===false) {
				idn = $.jgrid.isFunction( xmlRd.id ) ?  xmlRd.id.call(ts, xml) : xmlRd.id;
			} else {
				idn = ts.p.keyName;
			}
			if(xmlRd.repeatitems && ts.p.keyName && isNaN(idn)) {
				idn = ts.p.keyIndex;
			}
			if( String(idn).indexOf("[") === -1 ) {
				if (f.length) {
					getId = function( trow, k) {return $(idn,trow).text() || k;};
				} else {
					getId = function( trow, k) {return $(xmlRd.cell,trow).eq(idn).text() || k;};
				}
			}
			else {
				getId = function( trow, k) {return trow.getAttribute(idn.replace(/[\[\]]/g,"")) || k;};
			}
			ts.p.userData = {};
			ts.p.page = intNum($.jgrid.getXmlData(xml, xmlRd.page), ts.p.page);
			ts.p.lastpage = intNum($.jgrid.getXmlData(xml, xmlRd.total), 1);
			ts.p.records = intNum($.jgrid.getXmlData(xml, xmlRd.records));
			if($.jgrid.isFunction(xmlRd.userdata)) {
				ts.p.userData = xmlRd.userdata.call(ts, xml) || {};
			} else {
				$.jgrid.getXmlData(xml, xmlRd.userdata, true).each(function() {ts.p.userData[this.getAttribute("name")]= $(this).text();});
			}
			var gxml = $.jgrid.getXmlData( xml, xmlRd.root, true);
			gxml = $.jgrid.getXmlData( gxml, xmlRd.row, true);
			if (!gxml) { gxml = []; }
			var gl = gxml.length, j=0, grpdata=[], rn = parseInt(ts.p.rowNum,10), br=ts.p.scroll?$.jgrid.randId():1,
				tablebody = $(ts).find("tbody").first(),
				hiderow=false, groupingPrepare, selr;
			if(ts.p.grouping)  {
				hiderow = ts.p.groupingView.groupCollapse === true;
				groupingPrepare = $.jgrid.getMethod("groupingPrepare");
			}
			if (gl > 0 &&  ts.p.page <= 0) { ts.p.page = 1; }
			if(gxml && gl){
				if (adjust) { rn *= adjust+1; }
				var afterInsRow = $.jgrid.isFunction(ts.p.afterInsertRow),
				rnc = ni ? getstyle(stylemodule, 'rownumBox', false, 'jqgrid-rownum') :"",
				scc = sc ? getstyle(stylemodule, 'searchBox', false, '') :"",
				mlc = gi ? getstyle(stylemodule, 'multiBox', false, 'cbox'):"";

				while (j<gl) {
					xmlr = gxml[j];
					rid = getId(xmlr,br+j);
					rid  = ts.p.idPrefix + rid;
					if( ts.p.preserveSelection) {
						if( ts.p.multiselect) {
							selr = ts.p.selarrrow.indexOf( rid ) !== -1;
							spsh = selr ? spsh+1: spsh;
						} else {
							selr = (rid === ts.p.selrow);
						}
					}
					var iStartTrTag = rowData.length;
					rowData.push("");
					if( ni ) {
						rowData.push( addRowNum(0, j, ts.p.page, ts.p.rowNum, rnc ) );
					}
					if( gi ) {
						rowData.push( addMulti(rid, ni, j + 1, selr, mlc, xmlr) );
					}
					if( sc ){
						rowData.push( addSearch(rid, gi+ni, j + 1, scc) );
					}
					if( si ) {
						rowData.push( addSubGridCell.call(self, gi+ni+sc, j + 1) );
					}
					if(xmlRd.repeatitems){
						if (!F) { F=orderedCols(gi+si+ni+sc); }
						var cells = $.jgrid.getXmlData( xmlr, xmlRd.cell, true);
						$.each(F, function (k) {
							var cell = cells[this];
							if (!cell) { return false; }
							v = cell.textContent || cell.text || "";
							rd[ts.p.colModel[k+gi+si+ni+sc].name] = v;
							rowData.push( addCell(rid,v,k+gi+si+ni+sc,j+rcnt,xmlr, rd) );
						});
					} else {
						for(i = 0; i < f.length;i++) {
							v = $.jgrid.getXmlData( xmlr, f[i]);
							rd[ts.p.colModel[i+gi+si+ni+sc].name] = v;
							rowData.push( addCell(rid, v, i+gi+si+ni+sc, j+rcnt, xmlr, rd) );
						}
					}
					rowData[iStartTrTag] = constructTr(rid, hiderow, classes, rd, xmlr);
					rowData.push("</tr>");
					if(ts.p.grouping) {
						grpdata.push( rowData );
						if(!ts.p.groupingView._locgr) {
							groupingPrepare.call(self , rd, j );
						}
						rowData = [];
					}
					if(locdata || (ts.p.treeGrid === true && !(ts.p._ald)) ) {
						rd[xmlid] = $.jgrid.stripPref(ts.p.idPrefix, rid);
						ts.p.data.push(rd);
						ts.p._index[rd[xmlid]] = ts.p.data.length-1;
						if(ts.p.treeANode > -1 && ts.p.treeGridModel === 'adjacency') {
							treeadjtmp.push(rd);
						}
					}
					if(ts.p.gridview === false ) {
						tablebody.append(rowData.join(''));
						self.triggerHandler("jqGridAfterInsertRow", [rid, rd, xmlr]);
						if(afterInsRow) {ts.p.afterInsertRow.call(ts,rid,rd,xmlr);}
						rowData=[];
					}
					rd={};
					ir++;
					j++;
					if(ir===rn) {break;}
				}
			}
			spsh =  ir > 0 && ts.p.multiselect && ts.p.preserveSelection && ir === spsh ;
			if(ts.p.gridview === true) {
				fpos = ts.p.treeANode > -1 ? ts.p.treeANode: 0;
				if(ts.p.grouping) {
					if(!locdata) {
						self.jqGrid('groupingRender',grpdata,ts.p.colModel.length, ts.p.page, rn);
						grpdata = null;
					}
				} else if(ts.p.treeGrid === true && fpos > 0) {
					$(ts.rows[fpos]).after(rowData.join(''));
				} else {
					//$("tbody:first",t).append(rowData.join(''));
					tablebody.append(rowData.join(''));
					ts.grid.cols = ts.rows[0].cells; // update cached first row
				}
			}
			ts.p.totaltime = new Date() - startReq;
			rowData =null;
			if(ir>0) { if(ts.p.records===0) { ts.p.records=gl;} }
			if( ts.p.treeGrid === true) {
				try {self.jqGrid("setTreeNode", fpos+1, ir+fpos+1);} catch (e) {}
				if(ts.p.treeANode > -1 && ts.p.treeGridModel === 'adjacency') {
					v = ts.rows[ts.p.treeANode].id;
					v = ts.p._index[v]+1;
					if( v >= 1) {
						ts.p.data.splice(-(gl), gl);
						for(i=0; i < gl; i++) {
							ts.p.data.splice(v + i,0,treeadjtmp[i]);
						}
						refreshIndex();
					}
				}				
			}
			//if(!ts.p.treeGrid && !ts.p.scroll) {ts.grid.bDiv.scrollTop = 0;}
			ts.p.reccount=ir;
			ts.p.treeANode = -1;
			if(ts.p.userDataOnFooter) { self.jqGrid("footerData", "set", ts.p.userData, ts.p.formatFooterData, 0, false); }
			if(ts.p.userDataOnHeader) { self.jqGrid("headerData", "set", ts.p.userData, ts.p.formatHeaderData, 0, false); }
			if(locdata) {
				ts.p.records = gl;
				ts.p.lastpage = Math.ceil(gl/ rn);
			}
			if (!more) { ts.updatepager(false,true); }
			if(spsh) {
				setHeadCheckBox( true );
			}
			if(locdata) {
				while (ir<gl) {
					xmlr = gxml[ir];
					rid = getId(xmlr,ir+br);
					rid  = ts.p.idPrefix + rid;
					if(xmlRd.repeatitems){
						if (!F) { F=orderedCols(gi+si+ni+sc); }
						var cells2 = $.jgrid.getXmlData( xmlr, xmlRd.cell, true);
						$.each(F, function (k) {
							var cell = cells2[this];
							if (!cell) { return false; }
							v = cell.textContent || cell.text || "";
							rd[ts.p.colModel[k+gi+si+ni+sc].name] = v;
						});
					} else {
						for(i = 0; i < f.length;i++) {
							v = $.jgrid.getXmlData( xmlr, f[i]);
							rd[ts.p.colModel[i+gi+si+ni+sc].name] = v;
						}
					}
					rd[xmlid] = $.jgrid.stripPref(ts.p.idPrefix, rid);
					if( ts.p.grouping ) {
						groupingPrepare.call(self, rd, ir );
					}
					ts.p.data.push(rd);
					ts.p._index[rd[xmlid]] = ts.p.data.length-1;
					rd = {};
					ir++;
				}
				if(ts.p.grouping) {
					ts.p.groupingView._locgr = true;
					self.jqGrid('groupingRender', grpdata, ts.p.colModel.length, ts.p.page, rn);
					grpdata = null;
				}
			}
			if(ts.p.subGrid === true ) {
				try {self.jqGrid("addSubGrid",gi+ni);} catch (_){}
			}
		},
		addJSONData = function(data, rcnt, more, adjust) {
			var startReq = new Date();
			if(data) {
				if(ts.p.treeANode === -1 && !ts.p.scroll) {
					emptyRows.call(ts, false, false);
					rcnt=1;
				} else { rcnt = rcnt > 1 ? rcnt :1; }
			} else { return; }

			var dReader, frd;
			if(ts.p.datatype === "local") {
				dReader =  ts.p.localReader;
				frd= 'local';
			} else {
				dReader =  ts.p.jsonReader;
				frd='json';
			}

			var locid = "_id_",
				locdata = (ts.p.datatype !== "local" && ts.p.loadonce) || ts.p.datatype === "jsonstring",
				self = $(ts),
				ir=0,v,i,j,f=[],cur, addSubGridCell,
				gi = ts.p.multiselect ? 1 : 0,
				si = ts.p.subGrid ===true ? 1 : 0,
				ni = ts.p.rownumbers ===true ? 1 : 0,
				sc = ts.p.searchCols ===true ? 1 : 0,
				br = (ts.p.scroll && ts.p.datatype !== 'local') ? $.jgrid.randId() : 1,
				rn = parseInt(ts.p.rowNum,10),
				selected=false, selr,
				arrayReader=orderedCols(gi+si+ni+sc),
				objectReader=reader(frd),
				rowReader,len,drows,idn,rd={}, fpos, idr,rowData=[],
				treeadjtmp =[],
				classes = getstyle(stylemodule, 'rowBox', true, 'jqgrow ui-row-'+ ts.p.direction),
				afterInsRow = $.jgrid.isFunction(ts.p.afterInsertRow), grpdata=[],hiderow=false, groupingPrepare,
				tablebody = $(ts).find("tbody").first(),
				rnc = ni ? getstyle(stylemodule, 'rownumBox', false, 'jqgrid-rownum') :"",
				scc = sc ? getstyle(stylemodule, 'searchBox', false, '') :"",
				mlc = gi ? getstyle(stylemodule, 'multiBox', false, 'cbox'):"";

			if(locdata) {
				ts.p.data = [];
				ts.p._index = {};
				ts.p.localReader.id = locid;
			}

			ts.p.reccount = 0;
			ts.p.page = intNum($.jgrid.getAccessor(data,dReader.page), ts.p.page);
			ts.p.lastpage = intNum($.jgrid.getAccessor(data,dReader.total), 1);
			ts.p.records = intNum($.jgrid.getAccessor(data,dReader.records));
			ts.p.userData = $.jgrid.getAccessor(data,dReader.userdata) || {};
			
			if(si) {
				addSubGridCell = $.jgrid.getMethod("addSubGridCell");
			}
			if( ts.p.keyName===false ) {
				idn = $.jgrid.isFunction(dReader.id) ? dReader.id.call(ts, data) : dReader.id;
			} else {
				idn = ts.p.keyName;
			}
			if(dReader.repeatitems && ts.p.keyName && isNaN(idn)) {
				idn = ts.p.keyIndex;
			}
			drows = $.jgrid.getAccessor(data,dReader.root);
			if ( $.jgrid.isNull(drows) && Array.isArray(data)) { drows = data; }
			if (!drows) { drows = []; }
			len = drows.length; i = 0;
			if (len > 0 && ts.p.page <= 0) { ts.p.page = 1; }
			if (adjust) { rn *= adjust+1; }
			if(ts.p.datatype === "local" && !ts.p.deselectAfterSort) {
				selected = true;
			}
			if(ts.p.grouping)  {
				hiderow = ts.p.groupingView.groupCollapse === true;
				groupingPrepare = $.jgrid.getMethod("groupingPrepare");
			}
			while (i<len) {
				cur = drows[i];
				idr = $.jgrid.getAccessor(cur,idn);
				if(idr === undefined) {
					if (typeof idn === "number" && !$.jgrid.isNull( ts.p.colModel[idn+gi+si+ni+sc]) ) {
						// reread id by name
						idr = $.jgrid.getAccessor(cur,ts.p.colModel[idn+gi+si+ni+sc].name);
					}
					if(idr === undefined) {
						idr = br+i;
						if(f.length===0){
							if(dReader.cell){
								var ccur = $.jgrid.getAccessor(cur,dReader.cell) || cur;
								idr = !$.jgrid.isNull(ccur) && ccur[idn] !== undefined ? ccur[idn] : idr;
								ccur=null;
							}
						}
					}
				}
				idr  = ts.p.idPrefix + idr;
				if( selected || ts.p.preserveSelection) {
					if( ts.p.multiselect) {
						selr = ts.p.selarrrow.indexOf( idr ) !== -1;
						spsh = selr ? spsh+1: spsh;
					} else {
						selr = (idr === ts.p.selrow);
					}
				}
				var iStartTrTag = rowData.length;
				rowData.push("");
				if( ni ) {
					rowData.push( addRowNum(0, i, ts.p.page, ts.p.rowNum, rnc ) );
				}
				if( gi ){
					rowData.push( addMulti(idr, ni, i + 1, selr, mlc, cur) );
				}
				if( sc ){
					rowData.push( addSearch(idr, gi+ni, i + 1, scc) );
				}
				if( si ) {
					rowData.push( addSubGridCell.call(self ,gi+ni+sc,i + 1) );
				}
				rowReader=objectReader;
				if (dReader.repeatitems) {
					if(dReader.cell) {cur = $.jgrid.getAccessor(cur,dReader.cell) || cur;}
					if (Array.isArray(cur)) { rowReader=arrayReader; }
				}
				for (j=0;j<rowReader.length;j++) {
					v = $.jgrid.getAccessor(cur,rowReader[j]);
					rd[ts.p.colModel[j+gi+si+ni+sc].name] = v;
					rowData.push( addCell(idr,v,j+gi+si+ni+sc,i+rcnt,cur, rd) );
				}
				rowData[iStartTrTag] = constructTr(idr, hiderow, (selr ? classes + ' ' + highlight : classes), rd, cur);
				rowData.push( "</tr>" );
				if(ts.p.grouping) {
					grpdata.push( rowData );
					if(!ts.p.groupingView._locgr) {
						groupingPrepare.call(self , rd, i);
					}
					rowData = [];
				}
				if(locdata || (ts.p.treeGrid===true && !(ts.p._ald))) {
					rd[locid] = $.jgrid.stripPref(ts.p.idPrefix, idr);
					ts.p.data.push(rd);
					ts.p._index[rd[locid]] = ts.p.data.length-1;
					if(ts.p.treeANode > -1 && ts.p.treeGridModel === 'adjacency') {
						treeadjtmp.push(rd);
					}
				}
				if(ts.p.gridview === false ) {
					tablebody.append(rowData.join(''));
					self.triggerHandler("jqGridAfterInsertRow", [idr, rd, cur]);
					if(afterInsRow) {ts.p.afterInsertRow.call(ts,idr,rd,cur);}
					rowData=[];//ari=0;
				}
				rd={};
				ir++;
				i++;
				if(ir===rn) { break; }
			}
			spsh =  ir > 0 && ts.p.multiselect && (ts.p.preserveSelection || selected) && ir === spsh;
			if(ts.p.gridview === true ) {
				fpos = ts.p.treeANode > -1 ? ts.p.treeANode: 0;
				if(ts.p.grouping) {
					if(!locdata) {
						self.jqGrid('groupingRender', grpdata, ts.p.colModel.length, ts.p.page, rn);
						grpdata = null;
					}
				} else if(ts.p.treeGrid === true && fpos > 0) {
					$(ts.rows[fpos]).after(rowData.join(''));
				} else {
					tablebody.append(rowData.join(''));
					ts.grid.cols = ts.rows[0].cells;
				}
			}
			ts.p.totaltime = new Date() - startReq;
			rowData = null;
			if(ir>0) {
				if(ts.p.records===0) { ts.p.records=len; }
			}
			if( ts.p.treeGrid === true) {
				try {self.jqGrid("setTreeNode", fpos+1, ir+fpos+1);} catch (e) {}
				if(ts.p.treeANode > -1 && ts.p.treeGridModel === 'adjacency') {
					v = ts.rows[ts.p.treeANode].id;
					v = ts.p._index[v]+1;
					if( v >= 1) {
						ts.p.data.splice(-(len), len);
						for(i=0; i < len; i++) {
							ts.p.data.splice(v + i,0,treeadjtmp[i]);
						}
						refreshIndex();
					}
				}
			}
			//if(!ts.p.treeGrid && !ts.p.scroll) {ts.grid.bDiv.scrollTop = 0;}
			ts.p.reccount=ir;
			ts.p.treeANode = -1;
			if(ts.p.userDataOnFooter) { self.jqGrid("footerData", "set", ts.p.userData, ts.p.formatFooterData, 0, false); }
			if(ts.p.userDataOnHeader) { self.jqGrid("headerData", "set", ts.p.userData, ts.p.formatHeaderData, 0, false); }
			if(locdata) {
				ts.p.records = len;
				ts.p.lastpage = Math.ceil(len/ rn);
			}
			if (!more) { ts.updatepager(false,true); }
			if(spsh) {
				setHeadCheckBox( true );
			}
			if(locdata) {
				while (ir<len && drows[ir]) {
					cur = drows[ir];
					idr = $.jgrid.getAccessor(cur,idn);
					if(idr === undefined) {
						if (typeof idn === "number" && !$.jgrid.isNull(ts.p.colModel[idn+gi+si+ni+sc])) {
							// reread id by name
							idr = $.jgrid.getAccessor(cur,ts.p.colModel[idn+gi+si+ni+sc].name);
						}
						if(idr === undefined) {
							idr = br+ir;
							if(f.length===0){
								if(dReader.cell){
									var ccur2 = $.jgrid.getAccessor(cur,dReader.cell) || cur;
									idr = !$.jgrid.isNull(ccur2) && ccur2[idn] !== undefined ? ccur2[idn] : idr;
									ccur2=null;
								}
							}
						}
					}
					if(cur) {
						idr  = ts.p.idPrefix + idr;
						rowReader=objectReader;
						if (dReader.repeatitems) {
							if(dReader.cell) {cur = $.jgrid.getAccessor(cur,dReader.cell) || cur;}
							if (Array.isArray(cur)) { rowReader=arrayReader; }
						}

						for (j=0;j<rowReader.length;j++) {
							rd[ts.p.colModel[j+gi+si+ni+sc].name] = $.jgrid.getAccessor(cur,rowReader[j]);
						}
						rd[locid] = $.jgrid.stripPref(ts.p.idPrefix, idr);
						if(ts.p.grouping) {
							groupingPrepare.call(self, rd, ir );
						}
						ts.p.data.push(rd);
						ts.p._index[rd[locid]] = ts.p.data.length-1;
						rd = {};
					}
					ir++;
				}
				if(ts.p.grouping) {
					ts.p.groupingView._locgr = true;
					self.jqGrid('groupingRender', grpdata, ts.p.colModel.length, ts.p.page, rn);
					grpdata = null;
				}
			}
			if(ts.p.subGrid === true ) {
				try { self.jqGrid("addSubGrid",gi+ni+sc);} catch (_){}
			}
		},
		addIndexedDBData = async function ( retAll ) {
			return new Promise(function(resolve, reject){
			let INDEX_NAME = ts.p.sortname,
			ORDER = ts.p.sortorder.toLowerCase(),
			recordsperpage = parseInt(ts.p.rowNum,10),
			total=0, totalpages,
			page = parseInt(ts.p.page,10),
			srules, everyORsome = 'every',
			range = null;
			const _usecase = ts.p.ignoreCase;
			if(retAll) {
				page = 1;
				recordsperpage = 1000000;
			}
			if(!INDEX_NAME) {
				INDEX_NAME = ts.p.sortname = ts.p.colModel[0].index || ts.p.colModel[0].name;
			}
			if (ts.p.search === true) {
				srules = ts.p.postData.filters;
				if(srules) {
					if(typeof srules === "string") { srules = $.jgrid.parse(srules);}
					if(srules.groupOp === "OR") {
						everyORsome = 'some';
					}
					srules.rules.map(el=>{ 
						if(_usecase) {
							el.data = el.data.toLowerCase();
						}
						el.type = 'text';
						let col = $(ts).jqGrid('getColProp', el.field);
						let type = col.sorttype || col.stype;
						let conv =  !(el.op === 'bt' || el.op === 'in' || el.op === 'ni');
						switch(type) {
							case 'int':
							case 'integer':
								if(conv) {
									el.data = parseInt(el.data,10);
								}
								el.type='num';
								break;
							case 'float':
							case 'number':
							case 'numeric':
								if(conv) {
									el.data = parseFloat(el.data);
								}
								el.type='num';
								break;
						}
					});
				}
			}
			var compareFnMap = {
				'eq': function(queryObj, data, _uselwcs) { return (_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field])  === queryObj.data;},
				'ne': function(queryObj, data, _uselwcs) { return (_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]) !== queryObj.data;},
				'lt': function(queryObj, data, _uselwcs) { return (_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]) < queryObj.data;},
				'le': function(queryObj, data, _uselwcs) { return (_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]) <= queryObj.data;},
				'gt': function(queryObj, data, _uselwcs) { return (_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]) > queryObj.data;},
				'ge': function(queryObj, data, _uselwcs) { return (_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]) >= queryObj.data;},
				'bw': function(queryObj, data, _uselwcs) { return (_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]).indexOf(queryObj.data) === 0;},
				'bn': function(queryObj, data, _uselwcs) { return !((_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]).indexOf(queryObj.data) === 0);},
				'ew': function(queryObj, data, _uselwcs) { return (_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]).endsWith(queryObj.data);},
				'en': function(queryObj, data, _uselwcs) { return !((_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]).endsWith(queryObj.data));},
				'cn': function(queryObj, data, _uselwcs) { return (_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]).indexOf(queryObj.data) > -1;},
				'nc': function(queryObj, data, _uselwcs) { return !((_uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field])) > -1;},
				'in': function(queryObj, data, _uselwcs) { return queryObj.data.split(",").map(el=>{return (_uselwcs ? el.trim().toLowerCase() : el.trim());}).indexOf(data[queryObj.field]) > -1;},
				'ni': function(queryObj, data, _uselwcs) { return queryObj.data.split(",").map(el=>{return (_uselwcs ? el.trim().toLowerCase() : el.trim());}).indexOf(data[queryObj.field].trim()) === -1;},
				'nu': function(queryObj, data, _uselwcs) { return data[queryObj.field] === null;},
				'nn': function(queryObj, data, _uselwcs) { return data[queryObj.field] !== null;},
				'bt': function(queryObj, data, _uselwcs) { 
					let minmax = queryObj.data.split("...").map(el=>{return  queryObj.type === "num" ? el - 0 : el.trim();}); 
					try { 
						let r = _uselwcs ? data[queryObj.field].toLowerCase() : data[queryObj.field]; 
						return r >= minmax[0] && r <= minmax[1];
					} catch(e) { 
						return false;
					}
				}
			};

			const connection = window.indexedDB.open(ts.p.dbconfig.dbname);
			connection.onsuccess = function( e ) {
				const db = connection.result;
				const transaction = db.transaction(ts.p.dbconfig.dbtable, 'readonly');
				let retresult ={};
				retresult[ts.p.localReader.root] =[];
			    transaction.oncomplete = function(event) {
					if(ORDER === 'desc' || ts.p.grouping) { // we need here multi sorting too
						retresult[ts.p.localReader.root].sort(function(a,b){
							var low=[], high=[];
							if(ts.p.grouping) {
								for(let j =0;j<ts.p.groupingView.groupField.length; j++) {
									if(ts.p.groupingView.groupOrder[j] === 'asc') {
										low.push(a[ts.p.groupingView.groupField[j]]);
										high.push(b[ts.p.groupingView.groupField[j]]);
									} else {
										low.push(b[ts.p.groupingView.groupField[j]]);
										high.push(a[ts.p.groupingView.groupField[j]]);										
									}
								}
								if(ORDER === 'asc') {
									low.push(a[INDEX_NAME]);
									high.push(b[INDEX_NAME]);
								} else {
									low.push(b[INDEX_NAME]);
									high.push(a[INDEX_NAME]);										
								}
							} else {
								low = [b[INDEX_NAME]];
								high = [a[INDEX_NAME]];
							}
							return indexedDB.cmp(low,high);
						});
					}
					retresult[ts.p.localReader.root]= retresult[ts.p.localReader.root].slice( (page-1)*recordsperpage , page*recordsperpage );
					totalpages = Math.ceil(total / recordsperpage);
					retresult[ts.p.localReader.total] = totalpages;
					retresult[ts.p.localReader.page] = page;
					retresult[ts.p.localReader.records] = total;
					retresult[ts.p.localReader.userdata] = ts.p.userData;
					resolve(retresult);
				};
				
				transaction.onerror = function(event) {
					endReq();
					reject(event.target);
					//console.log(event.target);
				};
				const store = transaction.objectStore(ts.p.dbconfig.dbtable);
				const index = store.index( INDEX_NAME );
				index.count(range).onsuccess = (e) => {
					//console.log(e);
					if(ts.p.search && srules.rules.length) {
						total = 0;
					} else  {
						total = e.target.result;
					}
				};
				var limit = Math.pow(2,32) - 1;
				if(ts.p.search === false && ORDER === 'asc' && !ts.p.grouping) {
					limit = page*recordsperpage;
				}
				var res = index.getAll(range, limit);
			    res.onsuccess = event => {
					if(ts.p.search === true && srules.hasOwnProperty('rules') &&  srules.rules.length) {
						var lenn = res.result.length, i=0;
						
						while(i<lenn) {
							if(srules.rules[everyORsome](function(c) {
								return compareFnMap[c.op](c, res.result[i], _usecase && c.type === 'text');}) ) {
								total++;
								retresult[ts.p.localReader.root].push(res.result[i]);
							}
							i++;
						}
					}  else {
						retresult[ts.p.localReader.root] = res.result;
					}
				};
				res.onerror = function(event) {
					console.log(event);
				};
			};
		});},
		addLocalData = function( retAll ) {
			var st = ts.p.multiSort ? [] : "", sto=[], fndsort=false, cmtypes={}, grtypes=[], grindexes=[], srcformat, sorttype, newformat, sfld;
			if(!Array.isArray(ts.p.data)) {
				return;
			}
			var grpview = ts.p.grouping ? ts.p.groupingView : false, lengrp, gin, si;
			$.each(ts.p.colModel,function(){
                if ( !(this.name !== 'cb' && this.name !== 'subgrid' && this.name !== 'rn' && this.name !== 'sc') ) {
                    return true;
                }
				sorttype = this.sorttype || "text";
				si = this.index || this.name;
				if(sorttype === "date" || sorttype === "datetime") {
					if(this.formatter && typeof this.formatter === 'string' && this.formatter === 'date') {
						if(this.formatoptions && this.formatoptions.srcformat) {
							srcformat = this.formatoptions.srcformat;
						} else {
							srcformat = $.jgrid.getRegional(ts, "formatter.date.srcformat");
						}
						if(this.formatoptions && this.formatoptions.newformat) {
							newformat = this.formatoptions.newformat;
						} else {
							newformat = $.jgrid.getRegional(ts, "formatter.date.newformat");
						}
					} else {
						srcformat = newformat = this.datefmt || "Y-m-d";
					}
					cmtypes[si] = {"stype": sorttype, "srcfmt": srcformat,"newfmt":newformat, "sfunc": this.sortfunc || null, name : this.name};
				} else {
					cmtypes[si] = {"stype": sorttype, "srcfmt":'',"newfmt":'', "sfunc": this.sortfunc || null, name : this.name};
				}
				if(ts.p.grouping ) {
					for(gin =0, lengrp = grpview.groupField.length; gin< lengrp; gin++) {
						if( this.name === grpview.groupField[gin]) {
							grtypes[gin] = cmtypes[si];
							grindexes[gin]= si;
						}
					}
				}
				if(!ts.p.multiSort) {
					if(!fndsort && (si === ts.p.sortname)){
						st = si;
						fndsort = true;
					}
				}
			});
			if(ts.p.multiSort) {
				st =  sortarr;
				sto = sortord;
			}
			if(ts.p.treeGrid && ts.p._sort) {
				$(ts).jqGrid("SortTree", st, ts.p.sortorder, cmtypes[st].stype || 'text', cmtypes[st].srcfmt || '');
				return;
			}
			var compareFnMap = {
				'eq':function(queryObj) {return queryObj.equals;},
				'ne':function(queryObj) {return queryObj.notEquals;},
				'lt':function(queryObj) {return queryObj.less;},
				'le':function(queryObj) {return queryObj.lessOrEquals;},
				'gt':function(queryObj) {return queryObj.greater;},
				'ge':function(queryObj) {return queryObj.greaterOrEquals;},
				'cn':function(queryObj) {return queryObj.contains;},
				'nc':function(queryObj,op) {return op === "OR" ? queryObj.orNot().contains : queryObj.andNot().contains;},
				'bw':function(queryObj) {return queryObj.startsWith;},
				'bn':function(queryObj,op) {return op === "OR" ? queryObj.orNot().startsWith : queryObj.andNot().startsWith;},
				'en':function(queryObj,op) {return op === "OR" ? queryObj.orNot().endsWith : queryObj.andNot().endsWith;},
				'ew':function(queryObj) {return queryObj.endsWith;},
				"ni":function (queryObj, op) { return op === "OR" ? queryObj.orNot().inData : queryObj.andNot().inData; },
				"in":function (queryObj) { return queryObj.inData; },
				'nu':function(queryObj) {return queryObj.isNull;},
				'nn':function(queryObj,op) {return op === "OR" ? queryObj.orNot().isNull : queryObj.andNot().isNull;}

			},
			query = $.jgrid.from.call(ts, ts.p.data);
			if (ts.p.ignoreCase) { query = query.ignoreCase(); }
			function tojLinq ( group ) {
				var s = 0, index, gor, ror, opr, rule, fld;
				if (!$.jgrid.isNull(group.groups)) {
					gor = group.groups.length && group.groupOp.toString().toUpperCase() === "OR";
					if (gor) {
						query.orBegin();
					}
					for (index = 0; index < group.groups.length; index++) {
						if (s > 0 && gor) {
							query.or();
						}
						try {
							tojLinq(group.groups[index]);
						} catch (e) {alert(e);}
						s++;
					}
					if (gor) {
						query.orEnd();
					}
				}
				if (!$.jgrid.isNull(group.rules)) {
					//if(s>0) {
					//	var result = query.select();
					//	query = $.jgrid.from( result);
					//	if (ts.p.ignoreCase) { query = query.ignoreCase(); }
					//}
					try{
						ror = group.rules.length && group.groupOp.toString().toUpperCase() === "OR";
						if (ror) {
							query.orBegin();
						}
						var rulefld;
						for (index = 0; index < group.rules.length; index++) {
							rule = group.rules[index];
							opr = group.groupOp.toString().toUpperCase();
							if (compareFnMap[rule.op] && rule.field ) {
								if(s > 0 && opr && opr === "OR") {
									query = query.or();
								}
								rulefld = rule.field;
								if( ts.p.useNameForSearch) {
									if(cmtypes.hasOwnProperty(rule.field)) {
										rulefld = cmtypes[rule.field].name;
									}
								}
								try {
									fld = cmtypes[rule.field];
									if(fld.stype === 'date') {
										if(typeof fld.srcfmt === "string" && typeof fld.newfmt === "string" ) {
											rule.data = $.jgrid.parseDate.call(ts, fld.newfmt, rule.data, fld.srcfmt);
										}
									}
									query = compareFnMap[rule.op](query, opr)(rulefld, rule.data, fld);
								} catch (e) {}
							} else if( ts.p.customFilterDef !== undefined && ts.p.customFilterDef[rule.op] !== undefined  && $.jgrid.isFunction(ts.p.customFilterDef[rule.op].action)) {
								query = query.user.call(ts, rule.op, rule.field, rule.data);
							}
							s++;
						}
						if (ror) {
							query.orEnd();
						}
					} catch (g) {alert(g);}
				}
			}

			if (ts.p.search === true) {
				var srules = ts.p.postData.filters;
				if(srules) {
					if(typeof srules === "string") { srules = $.jgrid.parse(srules);}
					tojLinq( srules );
				} else {
					try {
						sfld = cmtypes[ts.p.postData.searchField];
						if(sfld.stype === 'date') {
							if(sfld.srcfmt && sfld.newfmt && sfld.srcfmt !== sfld.newfmt ) {
								ts.p.postData.searchString = $.jgrid.parseDate.call(ts, sfld.newfmt, ts.p.postData.searchString, sfld.srcfmt);
							}
						}
 						if(compareFnMap[ts.p.postData.searchOper]) {
						query = compareFnMap[ts.p.postData.searchOper](query)(ts.p.postData.searchField, ts.p.postData.searchString,cmtypes[ts.p.postData.searchField]);
						} else if( ts.p.customFilterDef !== undefined && ts.p.customFilterDef[ts.p.postData.searchOper] !== undefined  && $.jgrid.isFunction(ts.p.customFilterDef[ts.p.postData.searchOper].action)) {
							query = query.user.call(ts, ts.p.postData.searchOper, ts.p.postData.searchField, ts.p.postData.searchString);
						}
					} catch (se){}
				}
			}
			if(ts.p.treeGrid && ts.p.treeGridModel === "nested") {
				query.orderBy(ts.p.treeReader.left_field, 'asc', 'integer', '', null);
			}
			if(ts.p.treeGrid && ts.p.treeGridModel === "adjacency") {
				lengrp =0;
				st = null;
			}
			if(ts.p.grouping) {
				for(gin=0; gin<lengrp;gin++) {
					query.orderBy(grindexes[gin],grpview.groupOrder[gin],grtypes[gin].stype, grtypes[gin].srcfmt);
				}
			}
			if(ts.p.multiSort) {
				$.each(st,function(i){
					query.orderBy(this, sto[i], cmtypes[this].stype, cmtypes[this].srcfmt, cmtypes[this].sfunc);
				});
			} else {
				if (st && ts.p.sortorder && fndsort) {
					// to be fixed in case sortname has more than one field
					if(ts.p.sortorder.toUpperCase() === "DESC") {
						query.orderBy(ts.p.sortname, "d", cmtypes[st].stype, cmtypes[st].srcfmt, cmtypes[st].sfunc);
					} else {
						query.orderBy(ts.p.sortname, "a", cmtypes[st].stype, cmtypes[st].srcfmt, cmtypes[st].sfunc);
					}
				}
			}
			var queryResults = query.select(),
			recordsperpage = parseInt(ts.p.rowNum,10),
			total = queryResults.length,
			page = parseInt(ts.p.page,10),
			totalpages = Math.ceil(total / recordsperpage),
			retresult = {};
			if((ts.p.search || ts.p.resetsearch) && ts.p.grouping && ts.p.groupingView._locgr) {
				ts.p.groupingView.groups =[];
				var j, grPrepare = $.jgrid.getMethod("groupingPrepare"), key, udc;
				if(ts.p.footerrow && ts.p.userDataOnFooter) {
					for (key in ts.p.userData) {
						if(ts.p.userData.hasOwnProperty(key)) {
							ts.p.userData[key] = 0;
						}
					}
					udc = true;
				}
				for(j=0; j<total; j++) {
					if(udc) {
						for(key in ts.p.userData){
							if( ts.p.userData.hasOwnProperty( key ) ) {
								ts.p.userData[key] += parseFloat(queryResults[j][key] || 0);
							}
						}
					}
					grPrepare.call($(ts),queryResults[j],j, recordsperpage );
				}
			}
			if( retAll ) {
				return  queryResults;
			}
			if(ts.p.treeGrid && ts.p.search) {
				queryResults = $(ts).jqGrid("searchTree", queryResults);
			} else {
				queryResults = queryResults.slice( (page-1)*recordsperpage , page*recordsperpage );
			}
			query = null;
			cmtypes = null;
			retresult[ts.p.localReader.total] = totalpages;
			retresult[ts.p.localReader.page] = page;
			retresult[ts.p.localReader.records] = total;
			retresult[ts.p.localReader.root] = queryResults;
			retresult[ts.p.localReader.userdata] = ts.p.userData;
			queryResults = null;
			return  retresult;
		},
		updatepager = function(rn, dnd) {
			var cp, last, base, from,to,tot,fmt, pgboxes = "", sppg,
			pgid = ts.p.pager ? ts.p.pager.substring(1) : "",
			tspg = pgid ? "_"+pgid : "",
			tspg_t = ts.p.toppager ? "_"+ts.p.toppager.slice(1) : "";
			base = parseInt(ts.p.page,10)-1;
			if(base < 0) { base = 0; }
			base = base*parseInt(ts.p.rowNum,10);
			to = base + ts.p.reccount;
			if (ts.p.scroll) {
				var rows = $("tbody", ts.grid.bDiv).first().find("> tr").slice( 1 );
				if(to > ts.p.records) {
					to = ts.p.records;
				}
				base = to - rows.length;
				ts.p.reccount = rows.length;
				var rh = rows.outerHeight() || ts.grid.prevRowHeight;
				if (rh) {
					var top = base * rh;
					var height = parseInt(ts.p.records,10) * rh;
					$(ts.grid.bDiv).find(">div").first().css({height : height}).children("div").first().css({height:top,display:top?"":"none"});
					if (ts.grid.bDiv.scrollTop === 0 && ts.p.page > 1) {
						ts.grid.bDiv.scrollTop = ts.p.rowNum * (ts.p.page - 1) * rh;
					}
				}
				ts.grid.bDiv.scrollLeft = ts.grid.hDiv.scrollLeft;
			}
			pgboxes = ts.p.pager || "";
			pgboxes += ts.p.toppager ?  (pgboxes ? "," + ts.p.toppager : ts.p.toppager) : "";
			if(pgboxes) {
				fmt = $.jgrid.getRegional(ts, "formatter.integer");
				cp = intNum(ts.p.page);
				last = intNum(ts.p.lastpage);
				$(".selbox",pgboxes)[ this.p.useProp ? 'prop' : 'attr' ]("disabled",false);
				if(ts.p.pginput===true) {
					$('.ui-pg-input',pgboxes)[$('.ui-pg-input',pgboxes).first().is(':input')?'val':'html']( (last < cp) ? ts.p.lastpage : ts.p.page);
					sppg = ts.p.toppager ? '#sp_1'+tspg+",#sp_1"+tspg_t : '#sp_1'+tspg;
					$(sppg).html($.fmatter ? $.fmatter.util.NumberFormat(ts.p.lastpage,fmt):ts.p.lastpage);
				}
				if (ts.p.viewrecords){
					if(ts.p.reccount === 0) {
						$(".ui-paging-info",pgboxes).html($.jgrid.getRegional(ts, "defaults.emptyrecords", ts.p.emptyrecords ));
					} else {
						from = base+1;
						tot=ts.p.records;
						if($.fmatter) {
							from = $.fmatter.util.NumberFormat(from,fmt);
							to = $.fmatter.util.NumberFormat(to,fmt);
							tot = $.fmatter.util.NumberFormat(tot,fmt);
						}
						var rt = $.jgrid.getRegional(ts, "defaults.recordtext", ts.p.recordtext);
						$(".ui-paging-info",pgboxes).html($.jgrid.template( rt ,from,to,tot));
					}
				}
				if(ts.p.pgbuttons===true) {
					if(cp<=0) {cp = last = 0;}
					if(cp===1 || cp === 0) {
						$("#first"+tspg+", #prev"+tspg).addClass( disabled ).removeClass( hover );
						if(ts.p.toppager) { $("#first_t"+tspg_t+", #prev_t"+tspg_t).addClass( disabled ).removeClass( hover ); }
					} else {
						$("#first"+tspg+", #prev"+tspg).removeClass( disabled );
						if(ts.p.toppager) { $("#first_t"+tspg_t+", #prev_t"+tspg_t).removeClass( disabled ); }
					}
					if(cp===last || cp === 0) {
						$("#next"+tspg+", #last"+tspg).addClass( disabled ).removeClass( hover );
						if(ts.p.toppager) { $("#next_t"+tspg_t+", #last_t"+tspg_t).addClass( disabled ).removeClass( hover ); }
					} else {
						$("#next"+tspg+", #last"+tspg).removeClass( disabled );
						if(ts.p.toppager) { $("#next_t"+tspg_t+", #last_t"+tspg_t).removeClass( disabled ); }
					}
				}
			}
			if(rn===true && ts.p.rownumbers === true) {
				$(">td.jqgrid-rownum",ts.rows).each(function(i){
					$(this).html(base+1+i);
				});
			}
			if(ts.p.reccount === 0 ) {
				var classes = ts.p.emptyRecordRow ?
					getstyle(stylemodule, 'rowBox', true, 'jqgrow ui-row-'+ ts.p.direction+' not-editable-row not-editable-cell '+ disabled) :
					'jqgfirstrow not-editable-row not-editable-cell',
				tstr = constructTr("norecs", false, classes, {}, "");
		
				tstr += ts.p.emptyRecordRow ? 
				"<td style='text-align:center;' colspan='"+grid.headers.length+"'>"+$.jgrid.getRegional(ts, "defaults.emptyrecords", ts.p.emptyrecords )+"</td>" :
				"<td style='height:0.1px;visibility:hidden;' colspan='"+grid.headers.length+"'>&nbsp;</td>";
				tstr += "</tr>";
				$(grid.bDiv).find("table").first().append(tstr);
			}
			if(dnd && ts.p.jqgdnd) { $(ts).jqGrid('gridDnD','updateDnD');}
			$(ts).triggerHandler("jqGridGridComplete");
			if($.jgrid.isFunction(ts.p.gridComplete)) {ts.p.gridComplete.call(ts);}
			$(ts).triggerHandler("jqGridAfterGridComplete");
		},
		beginReq = function() {
			ts.grid.hDiv.loading = true;
			if(ts.p.hiddengrid) { return;}
			$(ts).jqGrid("progressBar", {method:"show", loadtype : ts.p.loadui, htmlcontent: $.jgrid.getRegional(ts, "defaults.loadtext", ts.p.loadtext) });
		},
		endReq = function() {
			ts.grid.hDiv.loading = false;
			$(ts).jqGrid("progressBar", {method:"hide", loadtype : ts.p.loadui });
		},
		beforeprocess = function(data, st, xhr) {
			var bfpcr = $(ts).triggerHandler("jqGridBeforeProcessing", [data,st,xhr]);
			bfpcr = (bfpcr === undefined || typeof(bfpcr) !== 'boolean') ? true : bfpcr;
			if ($.jgrid.isFunction(ts.p.beforeProcessing)) {
				if (ts.p.beforeProcessing.call(ts, data, st, xhr) === false) {
					bfpcr =  false;
				}
			}
			return bfpcr;
		},
		afterprocess = function(dstr, lcf) {
			$(ts).triggerHandler("jqGridLoadComplete", [dstr]);
			if(lcf) {ts.p.loadComplete.call(ts,dstr);}
			$(ts).triggerHandler("jqGridAfterLoadComplete", [dstr]);
			ts.p.datatype = "local";
			ts.p.datastr = null;
			endReq();
		},
		populate = function (npage) {
			if(!ts.grid.hDiv.loading) {
				var pvis = ts.p.scroll && npage === false,
				prm = {}, dt, dstr, pN=ts.p.prmNames;
				spsh = 0;
				if(ts.p.page <=0) { ts.p.page = Math.min(1,ts.p.lastpage); }
				if( !$.jgrid.isNull(pN.search, true) ) {prm[pN.search] = ts.p.search;}
				if(!$.jgrid.isNull(pN.nd, true) ) {prm[pN.nd] = new Date().getTime();}
				if(!$.jgrid.isNull(pN.rows, true) ) {prm[pN.rows]= ts.p.rowNum;}
				if(!$.jgrid.isNull(pN.page, true) ) {prm[pN.page]= ts.p.page;}
				if(!$.jgrid.isNull(pN.sort, true) ) {prm[pN.sort]= ts.p.sortname;}
				if(!$.jgrid.isNull(pN.order, true) ) {prm[pN.order]= ts.p.sortorder;}
				if(!$.jgrid.isNull(ts.p.rowTotal, true) && !$.jgrid.isNull(pN.totalrows, true) ) { prm[pN.totalrows]= ts.p.rowTotal; }

				var lcf = $.jgrid.isFunction(ts.p.loadComplete), lc = lcf ? ts.p.loadComplete : null;
				var adjust = 0;
				npage = npage || 1;
				if (npage > 1) {
					if( !$.jgrid.isNull(pN.npage, true) ) {
						prm[pN.npage] = npage;
						adjust = npage - 1;
						npage = 1;
					} else {
						lc = function(req) {
							ts.p.page++;
							ts.grid.hDiv.loading = false;
							if (lcf) {
								ts.p.loadComplete.call(ts,req);
							}
							populate(npage-1);
						};
					}
				} else if (!$.jgrid.isNull(pN.npage, true) ) {
					delete ts.p.postData[pN.npage];
				}
				if(ts.p.grouping) {
					$(ts).jqGrid('groupingSetup');
					var grp = ts.p.groupingView, gi, gs="", tmpordarr = [];
					for(gi=0;gi<grp.groupField.length;gi++) {
						var index = grp.groupField[gi];
						$.each(ts.p.colModel, function(cmIndex, cmValue) {
							if (cmValue.name === index && cmValue.index){
								index = cmValue.index;
							}
						} );
						tmpordarr.push(index +" "+grp.groupOrder[gi]);
					}
					gs = tmpordarr.join();
					if( $.jgrid.trim(prm[pN.sort]) !== "") {
						prm[pN.sort] = gs!=="" ? gs + " ,"+prm[pN.sort] : prm[pN.sort];
					} else {
						prm[pN.sort] = gs;
						prm[pN.order] = "";
					}
					if(ts.p.datatype==='local' && !grp._locgr) {
						ts.p.datatype = 'jsonstring';
						ts.p.datastr = ts.p.data;
					}
				}
				$.extend(ts.p.postData,prm);
				var rcnt = !ts.p.scroll ? 1 : ts.rows.length-1;
				if ($.jgrid.isFunction(ts.p.datatype)) {
					ts.p.datatype.call(ts,ts.p.postData,"load_"+ts.p.id, rcnt, npage, adjust);
					return;
				}
				var bfr = $(ts).triggerHandler("jqGridBeforeRequest");
				if (bfr === false || bfr === 'stop') { return; }
				if ($.jgrid.isFunction(ts.p.beforeRequest)) {
					bfr = ts.p.beforeRequest.call(ts);
					if (bfr === false || bfr === 'stop') { return; }
				}
				//bvn
				if ($.jgrid.isFunction(ts.treeGrid_beforeRequest)) {
					ts.treeGrid_beforeRequest.call(ts);
				}

				dt = ts.p.datatype.toLowerCase();
				switch(dt)
				{
				case "json":
				case "jsonp":
				case "xml":
				case "script":
					$.ajax($.extend({
						url:ts.p.url,
						type:ts.p.mtype,
						dataType: dt ,
						data: $.jgrid.isFunction(ts.p.serializeGridData)? ts.p.serializeGridData.call(ts,ts.p.postData) : ts.p.postData,
						success:function(data,st, xhr) {
							if(!beforeprocess(data, st,xhr)) {
								endReq();
								return;
							}
							if(dt === "xml") { addXmlData(data, rcnt,npage>1,adjust); }
							else { addJSONData(data, rcnt, npage>1, adjust); }
							$(ts).triggerHandler("jqGridLoadComplete", [data]);
							if(lc) { lc.call(ts,data); }
							$(ts).triggerHandler("jqGridAfterLoadComplete", [data]);
							if (pvis) { ts.grid.populateVisible(); }
							if (!ts.p.treeGrid_bigData) {
								if( ts.p.loadonce || ts.p.treeGrid) {ts.p.datatype = "local";}
							} else {
								if( ts.p.loadonce) {ts.p.datatype = "local";} //bvn13
							}
							data=null;
							if (npage === 1) { endReq(); }
							// bvn
							if ($.jgrid.isFunction(ts.treeGrid_afterLoadComplete)) {
								ts.treeGrid_afterLoadComplete.call(ts);
							}
						},
						error:function(xhr,st,err){
							$(ts).triggerHandler("jqGridLoadError", [xhr,st,err]);
							if($.jgrid.isFunction(ts.p.loadError)) { ts.p.loadError.call(ts,xhr,st,err); }
							if (npage === 1) { endReq(); }
							xhr=null;
						},
						beforeSend: function(xhr, settings ){
							var gotoreq = true;
							gotoreq = $(ts).triggerHandler("jqGridLoadBeforeSend", [xhr,settings]);
							if($.jgrid.isFunction(ts.p.loadBeforeSend)) {
								gotoreq = ts.p.loadBeforeSend.call(ts,xhr, settings);
							}
							if(gotoreq === undefined) { gotoreq = true; }
							if(gotoreq === false) {
								return false;
							}
							beginReq();
						}
					},$.jgrid.ajaxOptions, ts.p.ajaxGridOptions));
				break;
				case "xmlstring":
					beginReq();
					dstr = typeof ts.p.datastr !== 'string' ? ts.p.datastr : $.parseXML(ts.p.datastr);
					if(!beforeprocess(dstr, 200 , null)) {
						endReq();
						return;
					}
					addXmlData(dstr);
					afterprocess(dstr, lcf);
				break;
				case "jsonstring":
					beginReq();
					if(typeof ts.p.datastr === 'string') { dstr = $.jgrid.parse(ts.p.datastr); }
					else { dstr = ts.p.datastr; }
					if(!beforeprocess(dstr, 200 , null)) {
						endReq();
						return;
					}
					addJSONData(dstr);
					if(ts.p.grouping && ts.p.groupingView._locgr) {
						// back to original data???
						ts.p.data = dstr;
					}
					afterprocess(dstr, lcf);
				break;
				case "local":
				case "clientside":
					beginReq();
					ts.p.datatype = "local";
					ts.p._ald = true;
					var req = addLocalData( false );
					if(!beforeprocess(req, 200 , null)) {
						endReq();
						return;
					}
					addJSONData(req,rcnt,npage>1,adjust);
					$(ts).triggerHandler("jqGridLoadComplete", [req]);
					if(lc) { lc.call(ts,req); }
					$(ts).triggerHandler("jqGridAfterLoadComplete", [req]);
					if (pvis) { ts.grid.populateVisible(); }
					endReq();
					ts.p._ald = false;
				break;
				case "indexeddb":
					if(!ts.p.dbconfig.ready_req) {
						return;
				}
					beginReq();
					addIndexedDBData(false).then(function(res) {
						if(!beforeprocess(res, 200 , null)) {
							endReq();
							return;
						}
						addJSONData(res, rcnt, npage>1, adjust);
						$(ts).triggerHandler("jqGridLoadComplete", [res]);
						if(lc) { lc.call(ts,res); }
						$(ts).triggerHandler("jqGridAfterLoadComplete", [res]);
						if (pvis) { ts.grid.populateVisible(); }
						endReq();
						ts.p._ald = false;
					});
				break;				
				}
				ts.p._sort = false;
			}
		},
		setHeadCheckBox = function ( checked ) {
			$('#cb_'+$.jgrid.jqID(ts.p.id),ts.grid.hDiv)[ts.p.useProp ? 'prop': 'attr']("checked", checked);
			var fid = ts.p.frozenColumns ? ts.p.id+"_frozen" : "";
			if(fid) {
				$('#cb_'+$.jgrid.jqID(ts.p.id),ts.grid.fhDiv)[ts.p.useProp ? 'prop': 'attr']("checked", checked);
			}
		},
		setPager = function (pgid, tp){
			// TBD - consider escaping pgid with pgid = $.jgrid.jqID(pgid);
			var sep = "<td class='ui-pg-button "+disabled+"'><span class='ui-separator'></span></td>",
			pginp = "",
			pgl="<table class='ui-pg-table ui-common-table ui-paging-pager'><tbody><tr>",
			str="", pgcnt, lft, cent, rgt, twd, tdw, i, removebutt,
			clearVals = function(onpaging, thus){
				var ret;
				ret = $(ts).triggerHandler("jqGridPaging", [onpaging, thus]);
				if(ret==='stop') {return false;}
				if ($.jgrid.isFunction(ts.p.onPaging) ) { ret = ts.p.onPaging.call(ts,onpaging, thus); }
				if(ret==='stop') {return false;}
				ts.p.selrow = null;
				if(ts.p.multiselect) {
					if(!ts.p.preserveSelection) {
						ts.p.selarrrow =[];
					}
					setHeadCheckBox( false );
				}
				ts.p.savedRow = [];
				return true;
			};
			//pgid = pgid.substr(1);
			tp += "_" + pgid;
			pgcnt = "pg_"+pgid;
			lft = pgid+"_left"; cent = pgid+"_center"; rgt = pgid+"_right";
			$("#"+$.jgrid.jqID(pgid) )
			.append("<div id='"+pgcnt+"' class='ui-pager-control' role='group'><table " + getstyle(stylemodule, 'pagerTable', false, 'ui-pg-table ui-common-table ui-pager-table') + "><tbody><tr><td id='"+lft+"' align='left'></td><td id='"+cent+"' align='center' style='white-space:pre;'></td><td id='"+rgt+"' align='right'></td></tr></tbody></table></div>")
			.attr("dir", dir); 
			if(ts.p.rowList.length >0){
				str = "<td dir=\""+dir+"\">";
				str +="<select "+getstyle(stylemodule, 'pgSelectBox', false, 'ui-pg-selbox')+" size=\"1\" name=\"pg_sel_box\" role=\"listbox\" title=\""+($.jgrid.getRegional(ts,"defaults.pgrecs",ts.p.pgrecs) || "")+ "\">";
				var strnm;
				for(i=0;i<ts.p.rowList.length;i++){
					strnm = ts.p.rowList[i].toString().split(":");
					if(strnm.length === 1) {
						strnm[1] = strnm[0];
					}
					if (strnm[1].length == 0) {
						str +="<option role=\"option\" value=\""+strnm[0]+"\""+(( intNum(ts.p.rowNum,0) === intNum(strnm[0],0))?" aria-label=\""+strnm[1]+"\" selected=\"selected\"":"")+">"+strnm[1]+"</option>";
					} else {
						str +="<option role=\"option\" value=\""+strnm[0]+"\""+(( intNum(ts.p.rowNum,0) === intNum(strnm[0],0))?" selected=\"selected\"":"")+">"+strnm[1]+"</option>";
					}
				}
				str +="</select></td>";
			}
			if(dir==="rtl") { 
				pgl += str; 
				$("#"+rgt).attr("align","left");
			}
			if(ts.p.pginput===true) {
				pginp= "<td id='input"+tp+"' dir='"+dir+"'>"+$.jgrid.template( $.jgrid.getRegional(ts, "defaults.pgtext", ts.p.pgtext) || "","<input "+getstyle(stylemodule, 'pgInput', false, 'ui-pg-input') + " type='text' size='2' maxlength='7' value='0' role='textbox' name='jqgpginput'/>","<span id='sp_1_"+$.jgrid.jqID(pgid)+"'></span>")+"</td>";
			}
			var po=["first"+tp,"prev"+tp, "next"+tp,"last"+tp];
			if(ts.p.pgbuttons===true) {
				var btc=getstyle(stylemodule, 'pgButtonBox', true, 'ui-pg-button'),
						pot = [($.jgrid.getRegional(ts,"defaults.pgfirst",ts.p.pgfirst) || ""),
								($.jgrid.getRegional(ts,"defaults.pgprev",ts.p.pgprev) || ""),
								($.jgrid.getRegional(ts,"defaults.pgnext",ts.p.pgnext) || ""),
								($.jgrid.getRegional(ts,"defaults.pglast",ts.p.pglast) || "")],
									n1, n2,n3, n4, nn;
				if(dir==="rtl") {
					po.reverse();
					pot.reverse();
				}
				n1 = "<td id='"+po[0]+"' class='"+btc+"' title='"+ pot[0] +"'" + "><span " + getstyle(stylemodule, 'icon_first', false, iconbase)+"></span></td>";
				n2 = "<td id='"+po[1]+"' class='"+btc+"'  title='"+ pot[1] +"'" +"><span " + getstyle(stylemodule, 'icon_prev', false, iconbase)+"></span></td>";
				n3 = "<td id='"+po[2]+"' class='"+btc+"' title='"+ pot[2] +"'" +"><span " + getstyle(stylemodule, 'icon_next',false, iconbase)+"></span></td>";
				n4 = "<td id='"+po[3]+"' class='"+btc+"' title='"+ pot[3] +"'" +"><span " + getstyle(stylemodule, 'icon_end',false, iconbase)+"></span></td>";
				nn = pginp !== "" ? sep+pginp+sep:"";
				if (dir === 'ltr') {
					pgl += n1 + n2 + nn + n3 + n4;
				} else {
					pgl += n4 + n3  +nn + n2 + n1;
				}
			} else if (pginp !== "") {
				pgl += pginp;
			}
			if(dir==="ltr") {
				pgl += str;
			}
			pgl += "</tr></tbody></table>";
			pgid = $.jgrid.jqID(pgid);
			pgcnt = $.jgrid.jqID(pgcnt);
			if(ts.p.viewrecords===true) {
				$("td#"+pgid+"_"+ts.p.recordpos,"#"+pgcnt).append("<div dir='"+dir+"' class='ui-paging-info'></div>");
			}
			$("td#"+pgid+"_"+ts.p.pagerpos,"#"+pgcnt).append(pgl);
			tdw = $("#gbox_"+$.jgrid.jqID(ts.p.id)).css("font-size") || "11px";
			$("#gbox_"+$.jgrid.jqID(ts.p.id)).append("<div id='testpg' "+getstyle(stylemodule, 'entrieBox', false, 'ui-jqgrid')+" style='font-size:"+tdw+";visibility:hidden;' ></div>");
			twd = $(pgl).clone().appendTo("#testpg").width();
			$("#testpg").remove();
			if(twd > 0) {
				if(pginp !== "") { twd += 50; } //should be param
				removebutt = twd > $("td#"+pgid+"_"+ts.p.pagerpos,"#"+pgcnt).innerWidth();
				$("td#"+pgid+"_"+ts.p.pagerpos,"#"+pgcnt).width(twd);
			}
			ts.p._nvtd = [];
			ts.p._nvtd[0] = twd ? Math.floor((ts.p.width - twd)/2) : Math.floor(ts.p.width/3);
			ts.p._nvtd[1] = 0;
			pgl=null;
			$('.ui-pg-selbox',"#"+pgcnt).on('change',function() {
				if(!clearVals('records', this)) { return false; }
				ts.p.page = Math.round(ts.p.rowNum*(ts.p.page-1)/this.value-0.5)+1;
				ts.p.rowNum = this.value;
				if(ts.p.pager) { $('.ui-pg-selbox', ts.p.pager ).val(this.value); }
				if(ts.p.toppager) { $('.ui-pg-selbox', ts.p.toppager).val(this.value); }
				populate();
				return false;
			});
			if(ts.p.pgbuttons===true) {
				$(".ui-pg-button","#"+pgcnt).hover(function(){
					if($(this).hasClass(disabled)) {
						this.style.cursor='default';
					} else {
						$(this).addClass(hover);
						this.style.cursor='pointer';
					}
				},function() {
					if(!$(this).hasClass(disabled)) {
						$(this).removeClass(hover);
						this.style.cursor= "default";
					}
				});
				$("#first"+$.jgrid.jqID(tp)+", #prev"+$.jgrid.jqID(tp)+", #next"+$.jgrid.jqID(tp)+", #last"+$.jgrid.jqID(tp)).click( function() {
					if ($(this).hasClass(disabled)) {
						return false;
					}
					var cp = intNum(ts.p.page,1),
					last = intNum(ts.p.lastpage,1), selclick = false,
					fp=true, pp=true, np=true,lp=true;
					if(last ===0 || last===1) {
						fp=false;
						pp=false;
						np=false;
						lp=false;
					} else if( last>1 && cp >=1) {
						if( cp === 1) {
							fp=false;
							pp=false;
						} else if( cp===last){
							np=false;
							lp=false;
						}
					} else if( last>1 && cp===0 ) {
						np=false;
						lp=false;
						cp=last-1;
					}
					if(!clearVals(this.id.split("_")[0], this)) { return false; }
					if( this.id === 'first'+tp && fp ) { ts.p.page=1; selclick=true;}
					if( this.id === 'prev'+tp && pp) { ts.p.page=(cp-1); selclick=true;}
					if( this.id === 'next'+tp && np) { ts.p.page=(cp+1); selclick=true;}
					if( this.id === 'last'+tp && lp) { ts.p.page=last; selclick=true;}
					if(selclick) {
						populate();
					}
					$.jgrid.setSelNavIndex(ts, this);
					return false;
				});
			}
			if(ts.p.pginput===true) {
				$("#"+pgcnt).on('keypress','input.ui-pg-input', function(e) {
					var key = e.charCode || e.keyCode || 0;
					if(key === 13) {
						e.preventDefault();
						if(!clearVals('user', this)) { return false; }
						$(this).val( intNum( $(this).val(), 1));
						ts.p.page = ($(this).val()>0) ? $(this).val():ts.p.page;
						populate();
						return false;
					}
					return this;
				});
			}
			if(removebutt && ts.p.responsive && !ts.p.forcePgButtons) {
				$("#"+po[0]+",#"+po[3]+",#input"+$.jgrid.jqID(tp)).hide();
				$(".ui-paging-info", "td#"+pgid+"_"+ts.p.recordpos).hide();
				$(".ui-pg-selbox","td#"+pgid+"_"+ts.p.pagerpos).hide();
			}
		},
		multiSort = function(iCol, obj, sor ) {
			var cm = ts.p.colModel,selarr =[],
					/*ts.p.frozenColumns ?  (ts.p.autoResizing ? ts.grid.headers[iCol].el : obj) :*/  so="", sn;
			selarr.push(ts.grid.headers[iCol].el);
			if(ts.p.frozenColumns) { 
				selarr.push(obj);
			}

			$("span.ui-grid-ico-sort",selarr).addClass(disabled);
			$(selarr).attr({"aria-selected":"false","aria-sort" : "none"});
			sn = (cm[iCol].index || cm[iCol].name);
			if ( typeof sor === "undefined" )
			{
				if(cm[iCol].lso) {
					if(cm[iCol].lso==="asc") {
						cm[iCol].lso += "-desc";
						so = "desc";
					} else if(cm[iCol].lso==="desc") {
						cm[iCol].lso += "-asc";
						so = "asc";
					} else if(cm[iCol].lso==="asc-desc" || cm[iCol].lso==="desc-asc") {
						cm[iCol].lso="";
					}
				} else {
					cm[iCol].lso = so = cm[iCol].firstsortorder || 'asc';
				}
			}
			else {
				cm[iCol].lso = so = sor;
			}
			if( so ) {
				$("span.s-ico",selarr).show();
				$("span.ui-icon-"+so,selarr).removeClass(disabled);
				$(selarr).attr({"aria-selected":"true","aria-sort" : so+"ending"});
			} else {
				if(!ts.p.viewsortcols[0]) {
					$("span.s-ico",selarr).hide();
				}
			}
			var isn = sortarr.indexOf( sn );
			if( isn === -1 ) {
				sortarr.push( sn );
				sortord.push( so );
			} else {
				if( so ) {
					sortord[isn] = so;
				} else {
					sortord.splice( isn, 1 );
					sortarr.splice( isn, 1 );
				}
			}
			ts.p.sortorder = "";
			ts.p.sortname = "";
			for( var i = 0, len = sortarr.length; i < len ; i++) {
				if( i > 0) {
					ts.p.sortname += ", ";
				}
				ts.p.sortname += sortarr[ i ];
				if( i !== len -1) {
					ts.p.sortname += " "+sortord[ i ];
				}
			}
			ts.p.sortorder = sortord[ len -1 ];
			/*
			$.each(cm, function(i){
				if(this.lso) {
					if(i>0 && fs) {
						sort += ", ";
					}
					splas = this.lso.split("-");
					sort += cm[i].index || cm[i].name;
					sort += " "+splas[splas.length-1];
					fs = true;
					ts.p.sortorder = splas[splas.length-1];
				}
			});
			ls = sort.lastIndexOf(ts.p.sortorder);
			sort = sort.substring(0, ls);
			ts.p.sortname = sort;
			*/
		},
		sortData = function (index, idxcol,reload,sor, obj){
			if(!ts.p.colModel[idxcol].sortable) { return; }
			if(ts.p.savedRow.length > 0) {return;}
			if(!reload) {
				if( ts.p.lastsort === idxcol && ts.p.sortname !== "" ) {
					if( ts.p.sortorder === 'asc') {
						ts.p.sortorder = 'desc';
					} else if(ts.p.sortorder === 'desc') { ts.p.sortorder = 'asc';}
				} else { ts.p.sortorder = ts.p.colModel[idxcol].firstsortorder || 'asc'; }
				ts.p.page = 1;
			}
			if(ts.p.multiSort) {
				multiSort( idxcol, obj, sor);
			} else {
				if(sor) {
					if(ts.p.lastsort === idxcol && ts.p.sortorder === sor && !reload) { return; }
					ts.p.sortorder = sor;
				}
				var previousSelectedTh = ts.grid.headers[ts.p.lastsort] ? ts.grid.headers[ts.p.lastsort].el : null, newSelectedTh = /*ts.p.frozenColumns ?  obj :*/ ts.grid.headers[idxcol].el,
						newSelThFC = ts.p.frozenColumns ?  obj : null,
						//sortrule = $.trim(ts.p.viewsortcols[1] === 'single' ? hidden : disabled);
					usehide = ts.p.viewsortcols[1] === 'single' ? true : false, tmpicon;
				tmpicon = $(previousSelectedTh).find("span.ui-grid-ico-sort");
				tmpicon.addClass(disabled);
				if(usehide) {
					$(tmpicon).css("display","none");
				}
				$(previousSelectedTh).attr({"aria-selected":"false","aria-sort" : "none"});
				if(ts.p.frozenColumns) {
					tmpicon = ts.grid.fhDiv.find("span.ui-grid-ico-sort");
					tmpicon.addClass(disabled);
					if(usehide) { tmpicon.css("display","none"); }
					ts.grid.fhDiv.find("th").attr({"aria-selected":"false","aria-sort" : "none"});
				}
				tmpicon = $(newSelectedTh).find("span.ui-icon-"+ts.p.sortorder);
				tmpicon.removeClass(disabled);
				if(usehide) { tmpicon.css("display",""); }
				$(newSelectedTh).attr({"aria-selected":"true","aria-sort" : ts.p.sortorder + "ending"});
				if(ts.p.frozenColumns) {
					tmpicon = $(newSelThFC).find("span.ui-icon-"+ts.p.sortorder);
					tmpicon.removeClass(disabled);
					if(usehide) { tmpicon.css("display",""); }
					$(newSelThFC).attr({"aria-selected":"true","aria-sort" : ts.p.sortorder + "ending"});
					
				}
				if(!ts.p.viewsortcols[0]) {
					if(ts.p.lastsort !== idxcol) {
						if(ts.p.frozenColumns){
							ts.grid.fhDiv.find("span.s-ico").hide();
						}
						$("span.s-ico",previousSelectedTh).hide();
						$("span.s-ico",newSelectedTh).show();
						if(newSelThFC) { 
							$("span.s-ico",newSelThFC).show();
						}
					} else if (ts.p.sortname === "") { // if ts.p.lastsort === idxcol but ts.p.sortname === ""
						$("span.s-ico",newSelectedTh).show();
					}
				}
				index = index.substring(5 + ts.p.id.length + 1); // bad to be changed!?!
				ts.p.sortname = ts.p.colModel[idxcol].index || index;
			}
			if ($(ts).triggerHandler("jqGridSortCol", [ts.p.sortname, idxcol, ts.p.sortorder]) === 'stop') {
				ts.p.lastsort = idxcol;
				return;
			}
			if($.jgrid.isFunction(ts.p.onSortCol)) {
				if (ts.p.onSortCol.call(ts, ts.p.sortname, idxcol, ts.p.sortorder)==='stop') {
					ts.p.lastsort = idxcol;
					return;
				}
			}
			setHeadCheckBox(false);
			if(ts.p.datatype === "local") {
				if(ts.p.deselectAfterSort && !ts.p.preserveSelection) {
					$(ts).jqGrid("resetSelection");
				}
			} else {
				ts.p.selrow = null;
				if(ts.p.multiselect){
					if(!ts.p.preserveSelection) {
						ts.p.selarrrow =[];
					}
				}
				ts.p.savedRow =[];
			}
			if(ts.p.scroll) {
				var sscroll = ts.grid.bDiv.scrollLeft;
				emptyRows.call(ts, true, false);
				ts.grid.hDiv.scrollLeft = sscroll;
			}
			if(ts.p.subGrid && ts.p.datatype === 'local') {
				$("td.sgexpanded","#"+$.jgrid.jqID(ts.p.id)).each(function(){
					$(this).trigger("click");
				});
			}
			ts.p._sort = true;
			populate();
			ts.p.lastsort = idxcol;
			if(ts.p.sortname !== index && idxcol) {ts.p.lastsort = idxcol;}
		},
		setColWidth = function () {
			var initwidth = 0, brd=$.jgrid.cell_width? 0: intNum(ts.p.cellLayout,0), vc=0, lvc, 
					scw=intNum(ts.p.scrollOffset,0),cw,hs=false,aw,gw=0,cr, chrome_fix, lvmc;
			$.each(ts.p.colModel, function() {
				if(this.hidden === undefined) {this.hidden=false;}
				if(ts.p.grouping && ts.p.autowidth) {
					var ind = $.inArray(this.name, ts.p.groupingView.groupField);
					if(ind >= 0 && ts.p.groupingView.groupColumnShow.length > ind) {
						this.hidden = !ts.p.groupingView.groupColumnShow[ind];
					}
				}
				this.widthOrg = intNum(this.width,0);
				// 
				if(this.maxWidth && intNum(this.width,0) > intNum(this.maxWidth,0) ) {
					this.width = this.maxWidth;
				}
				//
				cw = intNum(this.width,0);
				if(this.hidden===false){
					initwidth += cw+brd;
					if(this.fixed) {
						gw += cw+brd;
					} else {
						vc++;
					}
				}
			});
			if(isNaN(ts.p.width)) {
				ts.p.width  = initwidth + ((ts.p.shrinkToFit ===false && !isNaN(ts.p.height)) ? scw : 0);
			}
			grid.width = parseInt(ts.p.width,10);
			ts.p.tblwidth = initwidth;
			if(ts.p.shrinkToFit ===false && ts.p.forceFit === true) {ts.p.forceFit=false;}
			if(ts.p.shrinkToFit===true && vc > 0) {
				aw = grid.width-brd*vc-gw;
				if(!isNaN(ts.p.height)) {
					aw -= scw;
					hs = true;
				}
				initwidth =0;
				var maxwidthcount = 0, diffmaxwidth = 0, notmax = [], notmaxwidth=0;
				$.each(ts.p.colModel, function(i) {
					if(this.hidden === false && !this.fixed){
						cw = Math.round(aw*this.width/(ts.p.tblwidth-brd*vc-gw));
						if(this.maxWidth && cw > this.maxWidth) {
							maxwidthcount++;
							diffmaxwidth += cw;
							this.width = this.maxWidth;
							lvmc = i;
						} else {
						this.width =cw;
							notmaxwidth += cw;
							notmax.push(i+"");
						}
						initwidth += this.width	;
						lvc = i;
					}
				});
				cr = 0;
				chrome_fix = -1;/*bstw === 0 ? -1 :0;*/
				initwidth += diffmaxwidth;
				var jj = -1;
				// maxWidth columns available
				if(maxwidthcount > 0 && vc > 0) {
					// do recalc
					var testsum = 0;
					for(var nmi=0;nmi<notmax.length; nmi++) {
						jj  = parseInt(notmax[nmi],10);
						testsum += Math.round(ts.p.colModel[jj].width*diffmaxwidth/notmaxwidth);
						ts.p.colModel[jj].width = ts.p.colModel[jj].width + Math.round(ts.p.colModel[jj].width*diffmaxwidth/notmaxwidth);
					}
					// in case recalculated sum diffrent from the remeining sum
					if(testsum !== diffmaxwidth) {
						ts.p.colModel[jj].width += diffmaxwidth-testsum;
					}
				}
				if (hs) {
					if(grid.width-gw-(initwidth+brd*vc) !== scw){
						cr = grid.width-gw-(initwidth+brd*vc)-scw;
					}
				} else if(!hs && Math.abs(grid.width-gw-(initwidth+brd*vc)) !== 0) {
					cr = grid.width-gw-(initwidth+brd*vc) - bstw;
				}
				if(jj >-1 && lvc === lvmc) { // in case last visible = last maxWidth column
					lvc = jj; // change it
				}
				ts.p.colModel[lvc].width += cr + chrome_fix;
				//}
				ts.p.tblwidth = initwidth+cr+brd*vc+gw;
				if(ts.p.tblwidth > ts.p.width) {
					ts.p.colModel[lvc].width -= (ts.p.tblwidth - parseInt(ts.p.width,10));
					ts.p.tblwidth = ts.p.width;
				}
			}
		},
		nextVisible= function(iCol) {
			var ret = iCol, j=iCol, i;
			for (i = iCol+1;i<ts.p.colModel.length;i++){
				if(ts.p.colModel[i].hidden !== true ) {
					j=i; break;
				}
			}
			return j-ret;
		},
		getOffset = function (iCol) {
			var $th = $(ts.grid.headers[iCol].el), ret = [$th.position().left + $th.outerWidth()];
			if(ts.p.direction==="rtl") { ret[0] = ts.p.width - ret[0]; }
			ret[0] -= ts.grid.bDiv.scrollLeft;
			ret.push($(ts.grid.hDiv).position().top);
			ret.push($(ts.grid.bDiv).offset().top - $(ts.grid.hDiv).offset().top + $(ts.grid.bDiv).height());
			return ret;
		},
		getColumnHeaderIndex = function (th) {
			var i, headers = ts.grid.headers, ci = $.jgrid.getCellIndex(th);
			for (i = 0; i < headers.length; i++) {
				if (th === headers[i].el) {
					ci = i;
					break;
				}
			}
			return ci;
		},
		buildColItems = function (top, left, parent, op) {
			var cm = ts.p.colModel, len = cm.length, i, cols=[], disp, all_visible = true, cols_nm=[],
			colNm = $.extend([], ts.p.colNames), iCol,
			common = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].common,
			texts = $.jgrid.getRegional(ts, "colmenu"), colArr =[],
			str1 = '<ul id="col_menu" class="ui-search-menu  ui-col-menu modal-content ' + common.shadow + '" role="menu" tabindex="0" style="left:'+left+'px;">';
			if( op.columns_selectAll ) {
				str1 += '<li class="ui-menu-item disabled" role="presentation" draggable="false"><a class="g-menu-item" tabindex="0" role="menuitem" ><table class="ui-common-table" ><tr><td class="menu_icon" title="'+texts.reorder+'"><span class="'+iconbase+' '+colmenustyle.icon_move+' notclick" style="visibility:hidden"></span></td><td class="menu_icon"><input id="chk_all" class="'+colmenustyle.input_checkbox+'" type="checkbox" name="check_all"></td><td class="menu_text">Check/Uncheck</td></tr></table></a></li>';
			}
			if(ts.p.colSpanHeader.length) { // fo future work Currently does not work
				for(var cj = 0;cj<ts.p.colSpanHeader.length;cj++) {
					var clitem = ts.p.colSpanHeader[cj];
					iCol = $.jgrid.getElemByAttrVal( cm, 'name', clitem.startColumnName, true);
					if(iCol >= 0) {
						colArr.push(iCol);
						colNm[iCol] = clitem.titleText;
					}
				}
			}
			if( $(ts).jqGrid('isGroupHeaderOn') /*&& opts.groupHeaders*/) {
				var gh_len = ts.p.groupHeader.length,
				// use the last set one
				groupH = ts.p.groupHeader[gh_len-1];

				for(var ij=0;ij<colNm.length; ij++){
					iCol = $.jgrid.inColumnHeader( cm[ij].name, groupH.groupHeaders);
					if(iCol>=0) {
						colNm[ij] = groupH.groupHeaders[iCol].titleText + "::" + colNm[ij];
						for(var jj= 1; jj<= groupH.groupHeaders[iCol].numberOfColumns-1; jj++) {
							colNm[ij+jj] = groupH.groupHeaders[iCol].titleText + "::" + colNm[ij+jj];
						}
						ij = ij+groupH.groupHeaders[iCol].numberOfColumns-1;
					}
				}
			}

			for(i=0;i<len;i++) {
				//if(!cm[i].hidedlg) { // column chooser
				var hid = !cm[i].hidden ? "checked" : "", 
					nm = cm[i].name, 
					lb = colNm[i]; //ts.p.colNames[i];
				disp = (nm === 'cb' || nm==='subgrid' || nm==='rn' || nm==='sc' ||  cm[i].hidedlg) ? "style='display:none'" :"";
				str1 += '<li '+disp+' class="ui-menu-item" role="presentation" draggable="true"><a class="g-menu-item" tabindex="0" role="menuitem" ><table class="ui-common-table" ><tr><td class="menu_icon" title="'+texts.reorder+'"><span class="'+iconbase+' '+colmenustyle.icon_move+' notclick"></span></td><td class="menu_icon"><input class="'+colmenustyle.input_checkbox+' chk_selected" type="checkbox" name="'+nm+'" '+hid+'></td><td class="menu_text">'+lb+'</td></tr></table></a></li>';
				cols.push(i);
				if( disp === "") {
					cols_nm.push(nm);
			}
				if(all_visible && hid==="") {
					all_visible = false;
				}
			}
			str1 += "</ul>";
			$(parent).append(str1);
			$("#col_menu").addClass("ui-menu " + colmenustyle.menu_widget);

			$("#chk_all", "#col_menu").prop("checked",all_visible);
			if(!$.jgrid.isElementInViewport($("#col_menu")[0])){
				$("#col_menu").css("left", - parseInt($("#column_menu").innerWidth(),10) +"px");
			}
			if($.fn.html5sortable()) {
				$("#col_menu").html5sortable({
					handle: 'span',
					items: ':not(.disabled)',
					forcePlaceholderSize: true }
				).on('sortupdate', function(e, ui) {
					cols.splice( ui.startindex,1);
					cols.splice(ui.endindex, 0, ui.startindex);
					$(ts).jqGrid("destroyFrozenColumns");
					$(ts).jqGrid("remapColumns", cols, true);
					$(ts).triggerHandler("jqGridColMenuColumnDone", [cols, null, null]);
					if($.jgrid.isFunction(ts.p.colMenuColumnDone)) {
						ts.p.colMenuColumnDone.call( ts, cols, null, null);
					}
					$(ts).jqGrid("setFrozenColumns");
					for(i=0;i<len;i++) {
						cols[i] = i;
					}
					if(1===2 /*colArr.length*/) { // setColSpanis on refresh. For future work
						$("#col_menu").remove();
						setTimeout(function(){
							buildColItems(top, left, parent, op);
						}, 0);
					}
				});
			} // NO jQuery UI
			$("#col_menu > li > a").on("click", function(e) {
				var checked, col_name;
				if($(e.target).hasClass('notclick')) {
					return;
				}
				if($(e.target).is(":input")) {
					checked = $(e.target).is(":checked");
				} else {
					checked = !$("input", this).is(":checked");
					$("input", this).prop("checked",checked);
				}

				col_name = $("input", this).attr('name');

				if(col_name === "check_all") {
					if(!checked) {
						$("input", "#col_menu" ).prop("checked",false);
						$(ts).jqGrid('hideCol', cols_nm);
					} else {
						$("input", "#col_menu" ).prop("checked",true);
						$(ts).jqGrid('showCol', cols_nm);
					}
				} else {
				$(ts).triggerHandler("jqGridColMenuColumnDone", [cols, col_name, checked]);
				if($.jgrid.isFunction(ts.p.colMenuColumnDone)) {
					ts.p.colMenuColumnDone.call( ts, cols, col_name, checked);
				}
				if(!checked) {
					$(ts).jqGrid('hideCol', col_name);
					$(this).parent().attr("draggable","false");
				} else {
					$(ts).jqGrid('showCol', col_name );
					$(this).parent().attr("draggable","true");
				}
					if(op.columns_selectAll) {
						$("#chk_all", "#col_menu").prop("checked",  $('.chk_selected:checked', "#col_menu").length === $('.chk_selected', "#col_menu").length );
					}
					$("#column_menu").remove();
				}
			}).hover(function(){
				$(this).addClass(hover);
			},function(){
				$(this).removeClass(hover);
			});
		},
		buildSearchBox = function (index, top, left, parent) {
			var cm = ts.p.colModel[index], rules, o1='',v1='',r1='',o2='',v2='', so, op, repstr='',selected, elem,
			numopts = ['eq','ne', 'lt', 'le', 'gt', 'ge', 'nu', 'nn', 'in', 'ni'],
			stropts = ['eq', 'ne', 'bw', 'bn', 'ew', 'en', 'cn', 'nc', 'nu', 'nn', 'in', 'ni'],
			strarr = ['text', 'string', 'blob'],
			texts = $.jgrid.getRegional(ts, "search"),
			common = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].common,
			classes = $.jgrid.styleUI[(p.styleUI || 'jQueryUI')].modal;

			if(!cm ) {
				return;
			}
			rules = ts.p.colFilters && ts.p.colFilters[cm.name] ?  ts.p.colFilters[cm.name] : false;
			if(rules && !$.isEmptyObject( rules )) {
				o1 = rules.oper1;
				v1 = rules.value1;
				r1 = rules.rule;
				o2 = rules.oper2;
				v2 = rules.value2;
			}
			if(! cm.searchoptions ) {
				cm.searchoptions = {};
			}
			if(cm.searchoptions.sopt) {
				so = cm.searchoptions.sopt;
			} else if( $.inArray(cm.sorttype, strarr) !== -1 ) {
				so = stropts;
			} else {
				so = numopts;
			}
			if(cm.searchoptions.groupOps) {
				op = cm.searchoptions.groupOps;
			} else  {
				op = texts.groupOps;
			}

			//elem = $('<ul id="search_menu" class="ui-search-menu modal-content" role="menu" tabindex="0" style="left:'+left+'px;top:'+top+'px;"></ul>');
			elem = $('<form></form>');
			var str1 = "<a id='bs_close' aria-label='Close'><span class='" + iconbase + " " + classes.icon_close + "'></span></a>";
			str1 += '<div>'+$.jgrid.getRegional(ts, "colmenu.searchTitle")+'</div>';
			str1 += '<div><select size="1" id="oper1" class="'+colmenustyle.filter_select+'">';
			$.each(texts.odata, function(i, n) {
				selected = n.oper === o1 ? 'selected="selected"' : '';
				if($.inArray(n.oper, so) !== -1) {
					repstr += '<option value="'+n.oper+'"  aria-label="'+n.text+'" '+selected+'>'+n.text+'</option>';
				}
			});
			str1 += repstr;
			str1 += '</select></div>';
			elem.append(str1);
			var df="";
			if(cm.searchoptions.defaultValue ) {
				df = $.jgrid.isFunction(cm.searchoptions.defaultValue) ? cm.searchoptions.defaultValue.call(ts) : cm.searchoptions.defaultValue;
			}
			//overwrite default value if restore from filters
			if( v1 ) {
				df = v1;
			}
			var soptions = $.extend(cm.searchoptions, {name:cm.index || cm.name, id: "sval1_" + ts.p.idPrefix+cm.name, oper:'search'}),
			input = $.jgrid.createEl.call(ts, cm.stype, soptions , df, false, $.extend({},$.jgrid.ajaxOptions, ts.p.ajaxSelectOptions || {}));
			$(input).addClass( colmenustyle.filter_input );
			str1 = $('<div></div>').append(input);
			elem.append(str1);
			// and/or
			str1 ='<div><select size="1" id="operand" class="'+colmenustyle.filter_select+'">';
			$.each(op, function(i, n){
				selected = n.op === r1 ? 'selected="selected"' : '';
				str1 += "<option value='"+n.op+"' "+selected+">"+n.text+"</option>";
			});
			str1 += '</select></div>';
			elem.append(str1);
			//oper2
			repstr ='';
			$.each(texts.odata, function(i, n) {
				selected = n.oper === o2 ? 'selected="selected"' : '';
				if($.inArray(n.oper, so) !== -1) {
					repstr += '<option value="'+n.oper+'" '+selected+'>'+n.text+'</option>';
				}
			});
			str1 = '<div><select size="1" id="oper2" class="'+colmenustyle.filter_select+'">' + repstr +'</select></div>';
			elem.append(str1);
			// value2
			if( v2 ) {
				df = v2;
			} else {
				df = "";
			}
			soptions = $.extend(cm.searchoptions, {name:cm.index || cm.name, id: "sval2_" + ts.p.idPrefix+cm.name, oper:'search'});
			input = $.jgrid.createEl.call(ts, cm.stype, soptions , df, false, $.extend({},$.jgrid.ajaxOptions, ts.p.ajaxSelectOptions || {}));
			$(input).addClass( colmenustyle.filter_input );
			str1 = $('<div></div>').append(input);
			elem.append(str1);
			// buttons
			str1 = "<div>";
			str1 +="<div class='search_buttons'><a tabindex='0' id='bs_reset' class='fm-button " + common.button +" ui-reset'>"+texts.Reset+"</a></div>";
			str1 +="<div class='search_buttons'><a tabindex='0' id='bs_search' class='fm-button " + common.button + " ui-search'>"+texts.Find+"</a></div>";
			str1 += "</div>";
			elem.append(str1);
			elem = $('<li class="ui-menu-item" role="presentation"></li>').append( elem );
			elem = $('<ul id="search_menu" class="ui-search-menu modal-content ' + common.shadow + '" role="menu" tabindex="0" style="left:'+left+'px;"></ul>').append(elem);
			$(parent).append(elem);
			$("#search_menu").addClass("ui-menu " + colmenustyle.menu_widget);

			if(!$.jgrid.isElementInViewport($("#search_menu")[0])){
				$("#search_menu").css("left", -parseInt($("#column_menu").innerWidth(),10) +"px");
			}

			$("#bs_reset, #bs_search", "#search_menu", "#bs_close").hover(function(){
				$(this).addClass(hover);
			},function(){
				$(this).removeClass(hover);
			});

			$("#bs_reset", elem).on('click', function(e){
				ts.p.colFilters[cm.name] = {};
				if(ts.p.mergeSearch === true && ts.p.searchModules.hasOwnProperty('colMenuSearch') && ts.p.searchModules.colMenuSearch !== false ) {
					ts.p.searchModules.colMenuSearch = buildFilters();
					$.extend(ts.p.postData,{filters: $.jgrid.splitSearch(ts.p.searchModules)});
					ts.p.search = true;
				} else {
					ts.p.postData.filters = buildFilters();
					ts.p.search = false;
					ts.p.resetsearch =  true;
				}
				df = "";
				if(cm.searchoptions.defaultValue ) {
					df = $.jgrid.isFunction(cm.searchoptions.defaultValue) ? cm.searchoptions.defaultValue.call(ts) : cm.searchoptions.defaultValue;
				}
				$("#sval1_" + ts.p.idPrefix+cm.name,"#search_menu").val(df);
				$("#sval2_" + ts.p.idPrefix+cm.name,"#search_menu").val("");
				if( $.jgrid.isFunction( ts.p.colMenuBeforeProcess )) {
					ts.p.colMenuBeforeProcess.call(ts, { module: 'filtering', action : 'reset', column : cm.name});
				}
				$(ts).trigger("reloadGrid");
				//$("#column_menu").remove();
			});
			$("#bs_search", elem).on('click', function(e){
				ts.p.colFilters[cm.name] = {
					oper1: $("#oper1","#search_menu").val(),
					value1: $("#sval1_" + ts.p.idPrefix+cm.name,"#search_menu").val(),
					rule: $("#operand","#search_menu").val(),
					oper2 : $("#oper2","#search_menu").val(),
					value2 : $("#sval2_" + ts.p.idPrefix+cm.name,"#search_menu").val()
				};
				if(ts.p.mergeSearch === true && ts.p.searchModules.hasOwnProperty('colMenuSearch') && ts.p.searchModules.colMenuSearch !== false ) {
					ts.p.searchModules.colMenuSearch = buildFilters();
					$.extend(ts.p.postData,{filters: $.jgrid.splitSearch(ts.p.searchModules)});
				} else {
					ts.p.postData.filters = buildFilters();
				}
				ts.p.search = true;
				if( $.jgrid.isFunction( ts.p.colMenuBeforeProcess )) {
					ts.p.colMenuBeforeProcess.call(ts, { module: 'filtering', action : 'search', column : cm.name});
				}
				$(ts).trigger("reloadGrid");
				$("#column_menu").remove();
			});
			$("#bs_close", elem).on('click', function(){
				$("#column_menu").remove();
			});
		},
		buildFilters = function() {
			var go = "AND",
			filters ="", i=0; //{\"groupOp\":\"" + go + "\",\"rules\":[], \"groups\" : [
			for (var item in ts.p.colFilters) {
				if(ts.p.colFilters.hasOwnProperty(item)) {
					var si = ts.p.colFilters[item];
					if(!$.isEmptyObject(si)) {
						if(si.value1==="" && si.value2==="") {
							break;
						}
						if(i>0) {
							filters += ",";
						}
						filters += "{\"groupOp\":\""+si.rule +"\",\"rules\":[";
						filters += "{\"field\":\"" + item + "\",";
						filters += "\"op\":\"" + si.oper1 + "\",";
						si.value1 +="";
						filters += "\"data\":\"" + si.value1.replace(/\\/g,'\\\\').replace(/\"/g,'\\"') + "\"}";
						if(si.value2) {
							filters += ",{\"field\":\"" + item + "\",";
							filters += "\"op\":\"" + si.oper2 + "\",";
							si.value2 +="";
							filters += "\"data\":\"" + si.value2.replace(/\\/g,'\\\\').replace(/\"/g,'\\"') + "\"}";
						}
						filters += "]";
						i++;
					} else {
						//console.log('empty object');
					}
				}
			}
			filters += "}";
			if( i === 0) {
				filters = "";
			}
			return filters;
		},
		buildGrouping = function( index, isgroup ) {
			var cm = ts.p.colModel[index],
				group = ts.p.groupingView;
			if(isgroup !== -1) {
				group.groupField.splice(isgroup,1);
			} else {
				group.groupField.push( cm.name);
			}
			if( $.jgrid.isFunction( ts.p.colMenuBeforeProcess )) {
				ts.p.colMenuBeforeProcess.call(ts, { module: 'grouping', action : (isgroup !== -1? 'ungroup' : 'group'), column : cm.name});
			}
			$(ts).jqGrid('groupingGroupBy', group.groupField );
			if(ts.p.frozenColumns) {
				$(ts).jqGrid("destroyFrozenColumns");
				$(ts).jqGrid("setFrozenColumns");
			}
		},
		buildFreeze = function( index, isfreeze ) {
			var cols = [], i, len = ts.p.colModel.length, lastfrozen = -1, cm = ts.p.colModel;
			for(i=0; i < len; i++) {
				if(cm[i].frozen) {
					lastfrozen = i;
				}
				cols.push(i);
			}
				// from position index to lastfrozen+1
			cols.splice( index, 1);
			cols.splice(lastfrozen + (isfreeze ? 1 : 0), 0, index);
			cm[index].frozen = isfreeze;
			if( $.jgrid.isFunction( ts.p.colMenuBeforeProcess )) {
				ts.p.colMenuBeforeProcess.call(ts, { module: 'freeze', action : isfreeze ? 'freeze' : 'unfreeze', column : cm[index].name});
			}
			$(ts).jqGrid("destroyFrozenColumns");
			$(ts).jqGrid("remapColumns", cols, true);
			$(ts).jqGrid("setFrozenColumns");
		},
		buildSubmenuItems = function (top, left, parent, id, cname) {
			var cm = ts.p.colModel, i,
			common = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].common,
			styles = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].colmenu,
			items = ts.p.colMenuCustom[id].items,
			str1 = '<ul id="col_menu" class="ui-search-menu  ui-col-menu modal-content ' + common.shadow + '" role="menu" tabindex="0" style="left:'+left+'px;">';
			items.forEach((item)=>{
				if(!item.icon) {
					item.icon = styles.icon_new_item;
				}
				if(item.id =="separator") {
					str1 += '<li class="ui-menu-item divider" role="separator"></li>';
				} else {
					str1 += '<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="' + item.id + '"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+iconbase+' '+item.icon+'"></span></td><td class="menu_text">'+item.title+'</td></tr></table></a></li>';
				}
			});
			str1 += "</ul>";
			$(parent).append(str1);	
			$("#col_menu").addClass("ui-menu " + colmenustyle.menu_widget);
			if(!$.jgrid.isElementInViewport($("#col_menu")[0])){
				$("#col_menu").css("left", - parseInt($("#column_menu").innerWidth(),10) +"px");
			}
			$("#col_menu > li > a").on("click", function(e) {
				var v = $(this).attr("data-value");
				//sobj = ts.grid.headers[index].el;
				var itm = items.find( (exec) => exec.id===v);
				if(itm) {
					if($.jgrid.isFunction(itm.funcname)) {
						itm.funcname.call(ts, cname);
						if(itm.closeOnRun) {
							$(this).remove();
						}
					}
				}
			}).hover(function(){
				$(this).addClass(hover);
			},function(){
				$(this).removeClass(hover);
			});
		},
		buildColMenu = function( index, left, top ){
			var menu_offset = $(grid.hDiv).height();
			if($(".ui-search-toolbar",grid.hDiv)[0] && !isNaN($(".ui-search-toolbar",grid.hDiv).height())) {
				menu_offset -= $(".ui-search-toolbar",grid.hDiv).height();
			}
			if( !$(grid.cDiv).is(":hidden") ){
				menu_offset += $(grid.cDiv).outerHeight();
			}
			if(ts.p.toolbar[1] && ts.p.toolbar[2] !== "bottom" && !$.jgrid.isNull( $(grid.uDiv), true) )  {
				menu_offset += $(grid.uDiv).outerHeight();
			}
			if( ts.p.toppager) {
				menu_offset += $("#"+ $.jgrid.jqID(ts.p.id) +"_toppager").outerHeight();
			}
			//$("#sopt_menu").remove();
			
			left = parseInt(left,10);
			top = menu_offset; /* + parseInt(top,10)*/
			var strb = '<ul id="column_menu" role="menu" tabindex="0">',
			str = '',
			stre = "</ul>",
			strl ='',
			cm = ts.p.colModel[index], op = $.extend({sorting:true, columns: true, filtering: true, seraching:true, grouping:true, freeze : true}, cm.coloptions),
			common = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].common,
			texts = $.jgrid.getRegional(ts, "colmenu"),
			label = ts.p.colNames[index],
			isgroup,
			isfreeze,
			menuData = [],
			cname = $.jgrid.trim(cm.name); // ???
			// sorting
			menuData.push( str );
			if(cm.sortable && op.sorting) {
				str = '<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="sortasc"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+iconbase+' '+colmenustyle.icon_sort_asc+'"></span></td><td class="menu_text">'+texts.sortasc+'</td></tr></table></a></li>';
				str += '<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="sortdesc"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+iconbase+' '+colmenustyle.icon_sort_desc+'"></span></td><td class="menu_text">'+texts.sortdesc+'</td></tr></table></a></li>';
				menuData.push( str );
			}
			if(op.columns) {
				str = '<li class="ui-menu-item divider" role="separator"></li>';
				str += '<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="columns"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+iconbase+' '+colmenustyle.icon_columns+'"></span></td><td class="menu_text">'+texts.columns+'</td></tr></table></a></li>';
				menuData.push( str );
			}
			if(op.filtering) {
				str = '<li class="ui-menu-item divider" role="separator"></li>';
				str += '<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="filtering"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+iconbase+' '+colmenustyle.icon_filter+'"></span></td><td class="menu_text">'+texts.filter + ' ' + label +'</td></tr></table></a></li>';
				menuData.push( str );
			}
			if(op.grouping) {
				isgroup = $.inArray(cm.name, ts.p.groupingView.groupField);
				str = '<li class="ui-menu-item divider" role="separator"></li>';
				str += '<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="grouping"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+iconbase+' '+colmenustyle.icon_group+'"></span></td><td class="menu_text">'+(isgroup !== -1 ?  texts.ungrouping: texts.grouping + ' ' + label)+'</td></tr></table></a></li>';
				menuData.push( str );
			}
			if(op.freeze) {
				if( !(ts.p.subGrid || ts.p.treeGrid || ts.p.cellEdit) ) {
					isfreeze = (cm.frozen && ts.p.frozenColumns) ? false : true;
					str = '<li class="ui-menu-item divider" role="separator"></li>';
					str += '<li class="ui-menu-item" role="presentation"><a class="g-menu-item" tabindex="0" role="menuitem" data-value="freeze"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+iconbase+' '+colmenustyle.icon_freeze+'"></span></td><td class="menu_text">'+(isfreeze ? (texts.freeze + " "+ label) : texts.unfreeze)+'</td></tr></table></a></li>';
					menuData.push( str );
				}
			}
			for( var key in ts.p.colMenuCustom) {
				if(ts.p.colMenuCustom.hasOwnProperty(key)) {
					var menuitem = ts.p.colMenuCustom[key];
					if( $.jgrid.isFunction( ts.p.colMenuBeforeProcess )) {
						ts.p.colMenuBeforeProcess.call(ts, { module: 'custom', action: menuitem , column : menuitem.colname});
					}
					$(ts).triggerHandler("jqGridcolMenuBeforeProcess", [{ module: 'custom', action: menuitem , column : menuitem.colname}]);
					var	exclude = menuitem.exclude.split(",");
					exclude = $.map(exclude, function(item){ return $.jgrid.trim(item);});
					if( menuitem.colname === cname  || (menuitem.colname === '_all_' && $.inArray(cname, exclude) === -1)) {
						var subid = menuitem.items.length ? "submenu": menuitem.id;
						strl = '<li class="ui-menu-item divider" role="separator"></li>';
						str = '<li class="ui-menu-item" role="presentation"><a id="'+menuitem.id+'" class="g-menu-item" tabindex="0" role="menuitem" data-value="' + subid + '"><table class="ui-common-table"><tr><td class="menu_icon"><span class="'+iconbase+' '+menuitem.icon+'"></span></td><td class="menu_text">'+menuitem.title+'</td></tr></table></a></li>';
						if(menuitem.position === 'last') {
							if(menuitem.separator) {
								menuData.push( strl );
							}
							menuData.push( str );
						} else if( menuitem.position === 'first') {
							if(menuitem.separator) {
								menuData.unshift( strl );
							}
							menuData.unshift( str );
						}
					}
				}
			}
			menuData.unshift( strb );
			menuData.push( stre );
			//str += "</ul>";
			$('#gbox_'+ts.p.id).append( menuData.join('') );
			$("#column_menu")
				.addClass("ui-search-menu modal-content column-menu jqgrid-column-menu ui-menu "+ common.shadow+ "  " + colmenustyle.menu_widget)
				.css({"left":left,"top":top});
			if(ts.p.direction === "ltr") {
				var wcm = $("#column_menu").width() + 26;
				$("#column_menu").css("left", (left- wcm)+'px');
			}
			$("#column_menu > li > a").hover(
				function(){
					$("#col_menu").remove();
					$("#search_menu").remove();
					var left1, top1;
					if($(this).attr("data-value") === 'columns') {
						left1 = $(this).parent().width()+8;
						top1 = $(this).parent().position().top - 5;
						buildColItems(top1, left1, $(this).parent(), op);
					}
					if($(this).attr("data-value") === 'filtering') {
						left1 = $(this).parent().width()+8;
						top1 = $(this).parent().position().top - 5;
						buildSearchBox(index, top1, left1, $(this).parent());
					}
					if($(this).attr("data-value") === 'submenu') {
						left1 = $(this).parent().width()+8;
						top1 = $(this).parent().position().top - 5;
						buildSubmenuItems(top1, left1, $(this).parent(), $(this).attr("id"), cname);
					}
					$(this).addClass(hover);
				},
				function(){ $(this).removeClass(hover); }
			).click(function(){
				var v = $(this).attr("data-value"),
				sobj = ts.grid.headers[index].el;
				if(v === 'sortasc' || v === 'sortdesc') {
					if( $.jgrid.isFunction( ts.p.colMenuBeforeProcess )) {
						ts.p.colMenuBeforeProcess.call(ts, { module: 'sorting', action: v === 'sortasc' ? 'asc' : 'desc' , column : cm.name});
					}
					sortData( "jqgh_"+ts.p.id+"_" + cm.name, index, true, (v === 'sortasc' ? 'asc' : 'desc'), sobj);
				} else if (v === 'grouping') {
					buildGrouping(index, isgroup);
				} else if( v==='freeze') {
					buildFreeze( index, isfreeze);
				}
				if(v === 'grouping' || v==='freeze') {
					$(this).remove();
				}
				if(ts.p.colMenuCustom.hasOwnProperty(v)) {
					var exec = ts.p.colMenuCustom[v];
					if($.jgrid.isFunction(exec.funcname)) {
						exec.funcname.call(ts, cname);
						if(exec.closeOnRun) {
							$(this).remove();
						}
					}
				}
			});
			if( parseFloat($("#column_menu").css("left")) < 0 ) {
				$("#column_menu").css("left", $(ts).css("left") );
			}
		},
		colTemplate;
		if(ts.p.colMenu || ts.p.menubar) {
			$("body").on('click', function(e){
				if(!$(e.target).closest("#column_menu").length) {
					try {
					$("#column_menu").remove();
					} catch (e1) {}
				}
				if(!$(e.target).closest(".ui-jqgrid-menubar").length) {
					try {
						$("#"+ts.p.id+"_menubar").hide();
					} catch (e1) {}
				}
			});
		}
		this.p.id = this.id;
		if(ts.p.autowidth===true) {
			var pw = $(eg).parent().width();
			tmpcm = $(window).width();
			ts.p.width = tmpcm - pw > 3 ?  pw: tmpcm-1;
		}		
		if ($.inArray(ts.p.multikey,sortkeys) === -1 ) {ts.p.multikey = false;}
		ts.p.keyName=false;
		for (i=0; i<ts.p.colModel.length;i++) {
			colTemplate = typeof ts.p.colModel[i].template === "string" ?
				( !$.jgrid.isNull($.jgrid.cmTemplate) && typeof $.jgrid.cmTemplate[ts.p.colModel[i].template] === "object" ? $.jgrid.cmTemplate[ts.p.colModel[i].template]: {}) :
				ts.p.colModel[i].template;
			ts.p.colModel[i] = $.extend(true, {}, ts.p.cmTemplate, colTemplate || {}, ts.p.colModel[i]);
			if (ts.p.keyName === false && ts.p.colModel[i].key===true) {
				ts.p.keyName = ts.p.colModel[i].name;
				ts.p.keyIndex = i;
			}
		}
		ts.p.sortorder = ts.p.sortorder.toLowerCase();
		$.jgrid.cell_width = $.jgrid.cellWidth();
		// calculate cellLayout
		var bstw2 = $("<table style='visibility:hidden'><tr class='jqgrow'><td>1</td></tr></table)").addClass(getstyle(stylemodule,"rowTable", true, 'ui-jqgrid-btable ui-common-table'));
		$(eg).append(bstw2);
		ts.p.cellLayout = $.jgrid.floatNum( $("td", bstw2).css('padding-left')) + $.jgrid.floatNum($("td", bstw2).css('padding-right'), 10) + 1;
		if(ts.p.cellLayout <=0 ) {
			ts.p.cellLayout = 5;
		}
		$(bstw2).remove();
		bstw2 = null;
		
		if(ts.p.grouping===true) {
			ts.p.scroll = false;
			ts.p.rownumbers = false;
			//ts.p.subGrid = false; expiremental
			ts.p.treeGrid = false;
			ts.p.gridview = true;
		}
		if(this.p.treeGrid === true) {
			try { $(this).jqGrid("setTreeGrid");} catch (_) {}
			if(ts.p.datatype !== "local") { 
				ts.p.localReader = { id: "_id_" };
			} else if(ts.p.keyName !== false) {
				ts.p.localReader = { id: ts.p.keyName };
			}
		}
		if(this.p.subGrid) {
			try { $(ts).jqGrid("setSubGrid");} catch (s){}
		}
		if(this.p.searchCols) {
			this.p.colNames.unshift(ts.p.searchColOptions.colName);
			this.p.colModel.unshift({name:'sc',width: ts.p.searchColOptions.colWidth,sortable:false,hidedlg:true,search:false,align:'left',fixed:true, frozen: true, colmenu: ts.p.searchColOptions.colmenu, classes : "jqgrid-searchcol", labelClasses: "jqgrid-searchcolumn",
					coloptions : {sorting:false, columns: false, filtering: false, seraching:false, grouping:false, freeze : false}});
		}
		if(this.p.multiselect) {
			var allRowsSelectTitle=$.jgrid.getRegional(ts, "defaults.selectAllLines");
			allRowsSelectTitle=allRowsSelectTitle ? allRowsSelectTitle : $.jgrid.regional['en'].defaults.selectAllLines;
			this.p.colNames.unshift("<input role='checkbox' id='cb_"+this.p.id+"' class='cbox' type='checkbox' title='"+allRowsSelectTitle+"'/>");
			this.p.colModel.unshift({name:'cb',width:$.jgrid.cell_width ? ts.p.multiselectWidth+ts.p.cellLayout : ts.p.multiselectWidth,sortable:false,resizable:false,hidedlg:true,search:false,align:'center',fixed:true, frozen: true, classes : "jqgrid-multibox", labelClasses: "jqgrid-multibox" });
		}
		if(this.p.rownumbers) {
			this.p.colNames.unshift("");
			this.p.colModel.unshift({name:'rn',width:ts.p.rownumWidth,sortable:false,resizable:false,hidedlg:true,search:false,align:'center',fixed:true, frozen : true, labelClasses: "jqgrid-rownumber"});
		}
		ts.p.xmlReader = $.extend(true,{
			root: "rows",
			row: "row",
			page: "rows>page",
			total: "rows>total",
			records : "rows>records",
			repeatitems: true,
			cell: "cell",
			id: "[id]",
			userdata: "userdata",
			subgrid: {root:"rows", row: "row", repeatitems: true, cell:"cell"}
		}, ts.p.xmlReader);
		ts.p.jsonReader = $.extend(true,{
			root: "rows",
			page: "page",
			total: "total",
			records: "records",
			repeatitems: true,
			cell: "cell",
			id: "id",
			userdata: "userdata",
			subgrid: {root:"rows", repeatitems: true, cell:"cell"}
		},ts.p.jsonReader);
		ts.p.localReader = $.extend(true,{
			root: "rows",
			page: "page",
			total: "total",
			records: "records",
			repeatitems: false,
			cell: "cell",
			id: "id",
			userdata: "userdata",
			subgrid: {root:"rows", repeatitems: true, cell:"cell"}
		},ts.p.localReader);
		if(ts.p.scroll){
			ts.p.pgbuttons = false; ts.p.pginput=false; ts.p.rowList=[];
		}
		if(ts.p.data.length) {
			normalizeData();
			refreshIndex();
		}
		var thead = "<thead role='rowgroup'><tr class='ui-jqgrid-labels' role='row'>",
		tdc, idn, w, res, sort ="",
		td, ptr, tbody, imgs, iac="", idc="", tmpcm;
		if(ts.p.shrinkToFit===true && ts.p.forceFit===true) {
			for (i=ts.p.colModel.length-1;i>=0;i--){
				if(!ts.p.colModel[i].hidden) {
					ts.p.colModel[i].resizable=false;
					break;
				}
			}
		}
		if(ts.p.viewsortcols[1] === 'horizontal') {
			iac=" ui-i-asc";
			idc=" ui-i-desc";
		} else if(ts.p.viewsortcols[1] === "single") {
			iac = " ui-single-sort-asc";
			idc = " ui-single-sort-desc";
			sort = " style='display:none'";
			ts.p.viewsortcols[0] = false;
		}
		tdc = isMSIE ?  "class='ui-th-div-ie'" :"";
		imgs = "<span class='s-ico' style='display:none'>";
		imgs += "<span sort='asc'  class='ui-grid-ico-sort ui-icon-asc"+iac+" ui-sort-"+dir+" "+disabled+" " + iconbase + " " + getstyle(stylemodule, 'icon_asc', true)+ "'" + sort + " aria-label='empty'><span style='display:none'>empty</span></span>";
		imgs += "<span sort='desc' class='ui-grid-ico-sort ui-icon-desc"+idc+" ui-sort-"+dir+" "+disabled+" " + iconbase + " " + getstyle(stylemodule, 'icon_desc', true)+"'" + sort + " aria-label='empty'><span style='display:none'>empty</span></span></span>";
		if(ts.p.multiSort) {
			if(ts.p.sortname ) {
			sortarr = ts.p.sortname.split(",");
			for (i=0; i < sortarr.length; i++) {
				sotmp = $.jgrid.trim(sortarr[i]).split(" ");
				sortarr[i] = $.jgrid.trim(sotmp[0]);
				sortord[i] = sotmp[1] ? $.jgrid.trim(sotmp[1]) : ts.p.sortorder || "asc";
			}
			}
		}
		for(i=0;i<this.p.colNames.length;i++){
			var tooltip = ts.p.headertitles ? (" title=\"" + (ts.p.colModel[i].tooltip ? ts.p.colModel[i].tooltip : $.jgrid.stripHtml(ts.p.colNames[i])) + "\"") : "";
			tmpcm = ts.p.colModel[i];
			if(!tmpcm.hasOwnProperty('colmenu')) {
				tmpcm.colmenu = (tmpcm.name === "rn" || tmpcm.name === "cb" || tmpcm.name === "subgrid") ? false : true;
			}
			thead += "<th id='"+ts.p.id+"_" + tmpcm.name+"' role='columnheader'  scope='col' "+getstyle(stylemodule,'headerBox',false, "ui-th-column ui-th-" + dir + " " + ( tmpcm.labelClasses || "") ) +  tooltip+">";
			idn = tmpcm.index || tmpcm.name;
			thead += "<div class='ui-th-div' id='jqgh_"+ts.p.id+"_"+tmpcm.name+"' "+tdc+">"+ts.p.colNames[i];
			if(!tmpcm.width)  {
				tmpcm.width = ts.p.defaultColWidth;
			} else {
				tmpcm.width = parseInt(tmpcm.width,10);
			}
			if(typeof tmpcm.title !== "boolean") {
				tmpcm.title = true;
			}
			tmpcm.lso = "";
			if (idn === ts.p.sortname) {
				ts.p.lastsort = i;
			}
			if(ts.p.multiSort) {
				sotmp = $.inArray(idn,sortarr);
				if( sotmp !== -1 ) {
					tmpcm.lso = sortord[sotmp];
				}
			}
			thead += imgs;
			if(ts.p.colMenu && tmpcm.colmenu) {
				thead += "<a title='"+$.jgrid.getRegional(ts,"colmenu.hovermenu")+"' class='"+(ts.p.direction==='ltr' ? "colmenu" : "colmenu-rtl") +"'><span class='colmenuspan "+iconbase+' '+colmenustyle.icon_menu+"'></span></a>";
			}
			thead += "</div></th>";
		}
		thead += "</tr></thead>";
		imgs = null;
		tmpcm = null;
		$(this).append(thead);
		$("thead tr",this).first().find("th").hover(
			function(){ $(this).addClass(hover);},
			function(){	$(this).removeClass(hover);}
		);
		if(this.p.multiselect) {
			var emp=[], chk;
			$('#cb_'+$.jgrid.jqID(ts.p.id),this).on('click',function(){
				if(!ts.p.preserveSelection) {
					ts.p.selarrrow = [];
				}
				var froz = ts.p.frozenColumns === true ? ts.p.id + "_frozen" : "";
				if (this.checked) {
					$(ts.rows).each(function(i) {
						if (i>0) {
							if(!$(this).hasClass("ui-subgrid") && !$(this).hasClass("jqgroup") && !$(this).hasClass(disabled) && !$(this).hasClass("jqfoot")){
								$("#jqg_"+$.jgrid.jqID(ts.p.id)+"_"+$.jgrid.jqID(this.id) )[ts.p.useProp ? 'prop': 'attr']("checked",true);
								$(this).addClass(highlight).attr("aria-selected","true");
								if(ts.p.preserveSelection) {
									if(ts.p.selarrrow.indexOf(this.id) === -1) {
										ts.p.selarrrow.push(this.id);
									}
								} else {
									ts.p.selarrrow.push(this.id);
								}
								ts.p.selrow = this.id;
								if(froz) {
									$("#jqg_"+$.jgrid.jqID(ts.p.id)+"_"+$.jgrid.jqID(this.id), ts.grid.fbDiv )[ts.p.useProp ? 'prop': 'attr']("checked",true);
									$("#"+$.jgrid.jqID(this.id), ts.grid.fbDiv).addClass(highlight);
								}
							}
						}
					});
					chk=true;
					emp=[];
				}
				else {
					$(ts.rows).each(function(i) {
						if(i>0) {
							if(!$(this).hasClass("ui-subgrid") && !$(this).hasClass("jqgroup") && !$(this).hasClass(disabled) && !$(this).hasClass("jqfoot")){
								$("#jqg_"+$.jgrid.jqID(ts.p.id)+"_"+$.jgrid.jqID(this.id) )[ts.p.useProp ? 'prop': 'attr']("checked", false);
								$(this).removeClass(highlight).attr("aria-selected","false");
								emp.push(this.id);
								if(ts.p.preserveSelection) {
									var curind = ts.p.selarrrow.indexOf(this.id);
									if(curind > -1) {
										ts.p.selarrrow.splice(curind, 1);
									}
								}
								if(froz) {
									$("#jqg_"+$.jgrid.jqID(ts.p.id)+"_"+$.jgrid.jqID(this.id), ts.grid.fbDiv )[ts.p.useProp ? 'prop': 'attr']("checked",false);
									$("#"+$.jgrid.jqID(this.id), ts.grid.fbDiv).removeClass(highlight);
								}
							}
						}
					});
					ts.p.selrow = null;
					chk=false;
				}
				$(ts).triggerHandler("jqGridSelectAll", [chk ? ts.p.selarrrow : emp, chk]);
				if($.jgrid.isFunction(ts.p.onSelectAll)) {ts.p.onSelectAll.call(ts, chk ? ts.p.selarrrow : emp,chk);}
				if($.jgrid.isFunction(ts.p.onMultiSelect)) {ts.p.onMultiSelect.call(ts, ts.p.selarrrow);}
				//si
			});
		}

		var tfoot = "", trhead="", bstw = ts.p.styleUI.search('Bootstrap') !== -1  ? 2 : 0;
		setColWidth();
		bstw2 = ts.p.styleUI.search('Bootstrap') !== -1;
		$(eg).css("width",grid.width+"px").append("<div class='ui-jqgrid-resize-mark' id='rs_m"+ts.p.id+"'>&#160;</div>");
		if(ts.p.scrollPopUp) {
			$(eg).append("<div "+ getstyle(stylemodule, 'scrollBox', false, 'loading ui-scroll-popup')+" id='scroll_g"+ts.p.id+"'></div>");
		}
		$(gv).css("width",grid.width+"px");
		thead = $(ts).find("thead").first().get(0);
		if(ts.p.footerrow) { 
			tfoot += "<table role='presentation' style='width:"+ts.p.tblwidth+"px' "+getstyle(stylemodule,'footerTable', false, 'ui-jqgrid-ftable ui-common-table')+ "><tbody><tr role='row' "+getstyle(stylemodule,'footerBox', false, 'footrow footrow-'+dir)+">"; 
		}
		if(ts.p.headerrow) { 
			trhead += "<table role='presentation' style='width:"+ts.p.tblwidth+"px' "+getstyle(stylemodule,'headerRowTable', false, 'ui-jqgrid-hrtable ui-common-table')+ "><tbody><tr role='row' "+getstyle(stylemodule,'headerRowBox', false, 'hrheadrow hrheadrow-'+dir)+">"; 
		}
		var thr = $(thead).find("tr").first(),
		firstr = "<tr class='jqgfirstrow "+ (ts.p.direction === "rtl"? "ui-row-rtl'" :"'") +" role='row'>",
		clicks =0,
		// header font for full autosize
		hdr_font = $.jgrid.getFont( $("th",thr).first()[0] );
		ts.p.disableClick=false;
		$("th",thr).each(function ( j ) {
			tmpcm = ts.p.colModel[j];
			w = tmpcm.width;
			if(tmpcm.resizable === undefined) {
				tmpcm.resizable = true;
			}
			if(tmpcm.resizable){
				res = document.createElement("span");
				$(res).html("&#160;").addClass('ui-jqgrid-resize ui-jqgrid-resize-'+dir)
				.css("cursor","col-resize");
				$(this).addClass(ts.p.resizeclass);
			} else {
				res = "";
			}
			$(this).css("width",w+"px").prepend(res);
			res = null;
			var hdcol = "", clcol ="";
			if( tmpcm.hidden ) {
				$(this).css("display","none");
				hdcol = "display:none;";
			}
			if(tmpcm.labelClasses) {
				clcol = "class='"+tmpcm.labelClasses+"'";
			}
			firstr += "<td "+clcol+" role='gridcell' style='height:0px;width:"+w+"px;"+hdcol+"'></td>";
			grid.headers[j] = { width: w, el: this };
			sort = tmpcm.sortable;
			if( typeof sort !== 'boolean') {
				tmpcm.sortable =  true;
				sort=true;
			}
			var nm = tmpcm.name;
			if( !(nm === 'cb' || nm==='subgrid' || nm==='rn' || nm==='sc') ) {
				if(ts.p.viewsortcols[2]){
					$(">div",this).addClass('ui-jqgrid-sortable');
				}
			}
			tmpcm.canvas_width = tmpcm.autosize_headers ? ($.jgrid.getTextWidth( $("div", this)[0].outerText, hdr_font) +
					(tmpcm.colmenu ? $.jgrid.floatNum( $(".colmenuspan", this).parent().width()) : 0) +
					$.jgrid.floatNum( $("div", this).css("padding-left")) + $.jgrid.floatNum( $("div", this).css("padding-right")) +
					$.jgrid.floatNum($(".ui-jqgrid-resize", this).width())) : 0;
			if(sort) {
				if(ts.p.multiSort) {
					if(ts.p.viewsortcols[0]) {
						$("div span.s-ico",this).show();
						if( tmpcm.lso ){
							$("div span.ui-icon-"+tmpcm.lso,this).removeClass(disabled).css("display","");
						}
					} else if( tmpcm.lso) {
						$("div span.s-ico",this).show();
						$("div span.ui-icon-"+tmpcm.lso,this).removeClass(disabled).css("display","");
					}
				} else {
					if(ts.p.viewsortcols[0]) {
						$("div span.s-ico",this).show();
						if(j===ts.p.lastsort){
							$("div span.ui-icon-"+ts.p.sortorder,this).removeClass(disabled).css("display","");
						}
					} else if(j === ts.p.lastsort && ts.p.sortname !== "") {
						$("div span.s-ico",this).show();
						$("div span.ui-icon-"+ts.p.sortorder,this).removeClass(disabled).css("display","");
					}
				}
			}
			if(ts.p.footerrow) {
				tfoot += "<td role='gridcell' "+formatCol(j,0,'', null, '', false)+">&#160;</td>";
			}
			if(ts.p.headerrow) {
				trhead += "<td role='gridcell' "+formatCol(j,0,'', null, '', false)+">&#160;</td>";
			}
		}).mousedown(function(e) {
			if ($(e.target).closest("th>span.ui-jqgrid-resize").length !== 1) { return; }
			var ci = getColumnHeaderIndex(this), cmax;
			e.preventDefault();
			clicks++;

			setTimeout(function() {
				clicks = 0;
			}, 400);

			if (clicks === 2) {
				// double click event handler
				try {
					if(ts.p.colModel[ci].autosize === true) {
						cmax = $(ts).jqGrid('getCol', ci, false, 'maxwidth');
						$(ts).jqGrid('resizeColumn', ci, cmax + ( bstw2 ? ts.p.cellLayout : 0 ) )
						.jqGrid('refreshGroupHeaders');
					}
				} catch(e1) {
				} finally {
					clicks = 0;
				}
				return;
			} else {
				if(ts.p.forceFit===true) {
					ts.p.nv= nextVisible(ci);
				}
				grid.dragStart(ci, e, getOffset(ci));
			}
			return false;
		}).click(function(e) {
			if (ts.p.disableClick) {
				ts.p.disableClick = false;
				return false;
			}
			var s = "th>div.ui-th-div",r,d;
			if (!ts.p.viewsortcols[2]) { s = "th>div>span>span.ui-grid-ico-sort"; }
			var t = $(e.target).closest(s);
			if (t.length !== 1) { return; }
			var ci;
			if(ts.p.frozenColumns) {
				var tid =  $(this)[0].id.substring( ts.p.id.length + 1 );
				ci = $.jgrid.getElemByAttrVal(ts.p.colModel, 'name', tid, true);
			} else {
				ci = getColumnHeaderIndex(this);
			}
			//
			if($(e.target).hasClass('colmenuspan')) {
				if( !$.jgrid.isNull($("#column_menu")[0]) ) {
					$("#column_menu").remove();
				}

				if(ci === undefined) { return; }
				var grid_offset = $("#gbox_"+ts.p.id).offset();
				var offset = $(this).offset(),
				left = ( offset.left ) - (grid_offset.left),
				top = 0;//( offset.top);
				if(ts.p.direction === "ltr") {
					left += $(this).outerWidth();
				}
				buildColMenu(ci, left, top);
				if(ts.p.menubar === true) {
					$("#"+ts.p.id+"_menubar").hide();
				}
				e.stopPropagation();
				return;
			}
			//
			if (!ts.p.viewsortcols[2]) { r=true;d=t.attr("sort"); }
			if( !$.jgrid.isNull(ci) ){
				sortData( $('div',this)[0].id, ci, r, d, this);
			}
			// added aria grid
			if(ts.p.selHeadInd !== undefined) {
				$(grid.headers[ts.p.selHeadInd].el).attr("tabindex", "-1");
			}
			ts.p.selHeadInd = ci;
			$(this).attr("tabindex", "0");
			// end aria
			//return false;
		});
		tmpcm = null;
		// reset font cache
		jQuery._cacheCanvas = null;
		if (ts.p.sortable && $.fn.sortable) {
			try {
				$(ts).jqGrid("sortableColumns", thr);
			} catch (e){}
		}
		if(ts.p.footerrow) { tfoot += "</tr></tbody></table>"; }
		if(ts.p.headerrow) { trhead += "</tr></tbody></table>"; }
		 
		firstr += "</tr>";
		tbody = document.createElement("tbody");
		//$(this).append(firstr);
		$(tbody).attr({"role":"rowgroup"});
		this.appendChild(tbody);
		$(this).addClass(getstyle(stylemodule,"rowTable", true, 'ui-jqgrid-btable ui-common-table')).append(firstr);
		if(ts.p.altRows) {
			$(this).addClass(getstyle(stylemodule,"stripedTable", true, ''));
		}
		//$(firstr).insertAfter(this);
		firstr = null;
		var hTable = $("<table "+getstyle(stylemodule,'headerTable',false,'ui-jqgrid-htable ui-common-table')+" style='width:"+ts.p.tblwidth+"px' role='grid' aria-labelledby='gbox_"+this.id+"'></table>").append(thead),
		hg = (ts.p.caption && ts.p.hiddengrid===true) ? true : false,
		hb = $("<div class='ui-jqgrid-hbox" + (dir==="rtl" ? "-rtl" : "" )+"'></div>");
		thead = null;
		grid.hDiv = document.createElement("div");
		grid.hDiv.style.width = (grid.width - bstw) + "px";
		grid.hDiv.className = getstyle(stylemodule,'headerDiv', true,'ui-jqgrid-hdiv');

		$(grid.hDiv).append(hb);
		$(hb).append(hTable);
		hTable = null;
		if(hg) { $(grid.hDiv).hide(); }
		if(ts.p.pager){
			// TBD -- escape ts.p.pager here?
			if(typeof ts.p.pager === "string") {if(ts.p.pager.slice(0,1) === "#") { ts.p.pager = ts.p.pager.substring(1);} }
			else { ts.p.pager = $(ts.p.pager).attr("id");}
			$("#"+$.jgrid.jqID(ts.p.pager)).css({width: (grid.width - bstw) +"px"}).addClass(getstyle(stylemodule,'pagerBox', true,'ui-jqgrid-pager')).appendTo(eg);
			if(hg) {
				$("#"+$.jgrid.jqID(ts.p.pager)).hide();
			}
			setPager(ts.p.pager,'');
			ts.p.pager = "#" + $.jgrid.jqID(ts.p.pager);
		}
		if( ts.p.cellEdit === false && ts.p.hoverrows === true) {
			$(ts).on({
				mouseover: function(e) {
					ptr = $(e.target).closest("tr.jqgrow");
					if($(ptr).attr("class") !== "ui-subgrid") {
						$(ptr).addClass(hover);
					}
				},
				mouseout: function(e) {
					ptr = $(e.target).closest("tr.jqgrow");
					$(ptr).removeClass(hover);
				}
			});
		}
		var ri,ci, tdHtml;
		function selectMultiRow(ri, scb, e, selection) {
			if((ts.p.multiselect && ts.p.multiboxonly) || ts.p.multimail ) {
				if(scb){
					$(ts).jqGrid("setSelection", ri, selection, e);
				} else if(  ts.p.multiboxonly && ts.p.multimail) {
					// execute onSelectRow
					$(ts).triggerHandler("jqGridSelectRow", [ri, false, e]);
					if( ts.p.onSelectRow) { ts.p.onSelectRow.call(ts, ri, false, e); }
				} else {
					var frz = ts.p.frozenColumns ? ts.p.id+"_frozen" : "";
					$(ts.p.selarrrow).each(function(i,n){
						var trid = $(ts).jqGrid('getGridRowById',n);
						if(trid) {
							$( trid ).removeClass(highlight);
						}
						$("#jqg_"+$.jgrid.jqID(ts.p.id)+"_"+$.jgrid.jqID(n))[ts.p.useProp ? 'prop': 'attr']("checked", false);
						if(frz) {
							$("#"+$.jgrid.jqID(n), "#"+$.jgrid.jqID(frz)).removeClass(highlight);
							$("#jqg_"+$.jgrid.jqID(ts.p.id)+"_"+$.jgrid.jqID(n), "#"+$.jgrid.jqID(frz))[ts.p.useProp ? 'prop': 'attr']("checked", false);
						}
					});
					ts.p.selarrrow = [];
					$(ts).jqGrid("setSelection", ri, selection, e);
				}
			} else {
				$(ts).jqGrid("setSelection", ri, selection, e);
			}
		}
		$(ts).before(grid.hDiv).on({
			'click': function(e) {
				td = e.target;
				ptr = $(td,ts.rows).closest("tr.jqgrow");
				if($(ptr).length === 0 || ptr[0].className.indexOf( disabled ) > -1 || ($(td,ts).closest("table.ui-jqgrid-btable").attr('id') || '').replace("_frozen","") !== ts.id ) {
					return this;
				}
				var scb = $(td).filter(":enabled").hasClass("cbox"),
				cSel = $(ts).triggerHandler("jqGridBeforeSelectRow", [ptr[0].id, e]);
				cSel = (cSel === false || cSel === 'stop') ? false : true;
				if ($.jgrid.isFunction(ts.p.beforeSelectRow)) {
					var allowRowSelect = ts.p.beforeSelectRow.call(ts, ptr[0].id, e);
					if (allowRowSelect === false || allowRowSelect === 'stop') {
						cSel = false;
					}
				}
				if(scb && cSel === false){
					$(e.target).prop('checked',!$(e.target).prop('checked'));
				}
				if (td.tagName === 'A' || ((td.tagName === 'INPUT' || td.tagName === 'TEXTAREA' || td.tagName === 'OPTION' || td.tagName === 'SELECT' ) && 
						!scb && 
						!(td.tagName === 'INPUT' && td.id.startsWith("jqs_"+ts.p.id))) )  { 
					return; 
				}
				ri = ptr[0].id;
				td = $(td).closest("tr.jqgrow>td");
				if (td.length > 0) {
					ci = $.jgrid.getCellIndex(td);
				}
				if(ts.p.cellEdit === true && !ts.p.ariaBody) {
					if(ts.p.multiselect && scb && cSel){
						$(ts).jqGrid("setSelection", ri ,true,e);
					} else if (td.length > 0) {
						try {
							$(ts).jqGrid("editCell", ptr[0].rowIndex, ci, true, e);
						} catch (_) {}
					}
					return;
				}
				if (td.length > 0) {
					tdHtml = $(td).closest("td,th").html();
					$(ts).triggerHandler("jqGridCellSelect", [ri,ci,tdHtml,e]);
					if($.jgrid.isFunction(ts.p.onCellSelect)) {
						ts.p.onCellSelect.call(ts,ri,ci,tdHtml,e);
					}
				}
				if (!cSel) {
					return;
				}
				if( ts.p.multimail && ts.p.multiselect) {
					if (e.shiftKey) {
						if (scb) {
							var initialRowSelect = $(ts).jqGrid('getGridParam', 'selrow'),

							CurrentSelectIndex = $(ts).jqGrid('getInd', ri),
							InitialSelectIndex = $(ts).jqGrid('getInd', initialRowSelect),
							startID = "",
							endID = "";
							if (CurrentSelectIndex > InitialSelectIndex) {
								startID = initialRowSelect;
								endID = ri;
							} else {
								startID = ri;
								endID = initialRowSelect;
							}
							var shouldSelectRow = false,
							shouldResetRow = false,
							perform_select = true;

							if( $.inArray( ri, ts.p.selarrrow) > -1) {
								perform_select = false;
							}

							$.each($(this).getDataIDs(), function(_, id){
								if ((shouldResetRow = id === startID || shouldResetRow)){
									$(ts).jqGrid('resetSelection', id);
								}
								return id !== endID;
							});
							if(perform_select) {
								$.each($(this).getDataIDs(), function(_, id){
									if ((shouldSelectRow = id === startID || shouldSelectRow)){
										$(ts).jqGrid('setSelection', id, false);
									}
									return id !== endID;
								});
							}

							ts.p.selrow = (CurrentSelectIndex > InitialSelectIndex) ? endID : startID;
							return;
						}
						window.getSelection().removeAllRanges();
					}
					selectMultiRow( ri, scb, e, false );
				} else if ( !ts.p.multikey ) {
					selectMultiRow( ri, scb, e, true );
				} else {
					if(e[ts.p.multikey]) {
						$(ts).jqGrid("setSelection", ri, true, e);
					} else if(ts.p.multiselect && scb) {
						scb = $("#jqg_"+$.jgrid.jqID(ts.p.id)+"_"+ri).is(":checked");
						$("#jqg_"+$.jgrid.jqID(ts.p.id)+"_"+ri)[ts.p.useProp ? 'prop' : 'attr']("checked", !scb);
					}
				}
			},
			'reloadGrid': function(e,opts) {
				if(ts.p.treeGrid ===true) {
					ts.p.datatype = ts.p.treedatatype;
				}
				opts = opts || {};
				if (opts.current) {
					ts.grid.selectionPreserver(ts);
				}
				if(ts.p.datatype==="local"){
					$(ts).jqGrid("resetSelection");
					if(ts.p.data.length) {
						normalizeData();
						refreshIndex();
					}
				} else if(!ts.p.treeGrid) {
					ts.p.selrow=null;
					if(ts.p.multiselect) {
						if(!ts.p.preserveSelection) {
							ts.p.selarrrow =[];
							setHeadCheckBox(false);
						}
					}
					ts.p.savedRow = [];
				}
				if(ts.p.scroll) {
					emptyRows.call(ts, true, false);
				}
				if (opts.page) {
					var page = opts.page;
					if (page > ts.p.lastpage) { page = ts.p.lastpage; }
					if (page < 1) { page = 1; }
					ts.p.page = page;
					if (ts.grid.prevRowHeight) {
						ts.grid.bDiv.scrollTop = (page - 1) * ts.grid.prevRowHeight * ts.p.rowNum;
					} else {
						ts.grid.bDiv.scrollTop = 0;
					}
				}
				if (ts.grid.prevRowHeight && ts.p.scroll && opts.page === undefined) {
					delete ts.p.lastpage;
					ts.grid.populateVisible();
				} else {
					ts.grid.populate();
				}
				if(ts.p.inlineNav===true) {$(ts).jqGrid('showAddEditButtons');}
				if(ts.p.searchCols) {
					if(!$.isEmptyObject(ts.p._results) ) {
						ts.p._results ={};
						$.jgrid.searchColOnEnter( ts.p.id, null );
					}
				}
				return false;
			},
			'dblclick' : function(e) {
				td = e.target;
				ptr = $(td,ts.rows).closest("tr.jqgrow");
				if($(ptr).length === 0 ){return;}
				ri = ptr[0].rowIndex;
				ci = $.jgrid.getCellIndex(td);
				var dbcr = $(ts).triggerHandler("jqGridDblClickRow", [$(ptr).attr("id"),ri,ci,e]);
				if( !$.jgrid.isNull(dbcr) ) { return dbcr; }
				if ($.jgrid.isFunction(ts.p.ondblClickRow)) {
					dbcr = ts.p.ondblClickRow.call(ts,$(ptr).attr("id"),ri,ci, e);
					if( !$.jgrid.isNull(dbcr) ) { return dbcr; }
				}
			},
			'contextmenu' : function(e) {
				td = e.target;
				ptr = $(td,ts.rows).closest("tr.jqgrow");
				if($(ptr).length === 0 ){return;}
				if(!ts.p.multiselect) {	$(ts).jqGrid("setSelection",ptr[0].id,true,e);	}
				ri = ptr[0].rowIndex;
				ci = $.jgrid.getCellIndex(td);
				var rcr = $(ts).triggerHandler("jqGridRightClickRow", [$(ptr).attr("id"),ri,ci,e]);
				if( !$.jgrid.isNull(rcr) ) { return rcr; }
				if ($.jgrid.isFunction(ts.p.onRightClickRow)) {
					rcr = ts.p.onRightClickRow.call(ts,$(ptr).attr("id"),ri,ci, e);
					if( !$.jgrid.isNull(rcr) ) { return rcr; }
				}
			}
		});
		//---
		grid.bDiv = document.createElement("div");
		if(isMSIE) { if(String(ts.p.height).toLowerCase() === "auto") { ts.p.height = "100%"; } }
		$(grid.bDiv)
			.append($('<div style="position:relative;"></div>').append('<div></div>').append(this))
			.addClass("ui-jqgrid-bdiv")
			.css({ height: ts.p.height+(isNaN(ts.p.height)?"":"px"), width: (grid.width - bstw)+"px"})
			.on("scroll", grid.scrollGrid);
		$(grid.bDiv).find("table").first().css({width:ts.p.tblwidth+"px"});
		if( !$.support.tbody ) { //IE
			if( $("tbody",this).length === 2 ) { $("tbody",this).slice( 1 ).remove();}
		}
		if(ts.p.multikey){
			if( $.jgrid.msie()) {
				$(grid.bDiv).on("selectstart",function(){return false;});
			} else {
				$(grid.bDiv).on("mousedown",function(){return false;});
			}
		}
		if(hg) { // hidden grid
			$(grid.bDiv).hide();
		}
		var icoo =  iconbase + " " + getstyle(stylemodule,'icon_caption_open', true),
		icoc =  iconbase + " " + getstyle(stylemodule,'icon_caption_close', true);
		grid.cDiv = document.createElement("div");
		var arf = ts.p.hidegrid===true ? $("<a role='link' class='ui-jqgrid-titlebar-close HeaderButton "+cornerall+"' title='"+($.jgrid.getRegional(ts, "defaults.showhide", ts.p.showhide) || "")+"'" + " />").hover(
			function(){ arf.addClass(hover);},
			function() {arf.removeClass(hover);})
		.append("<span class='ui-jqgrid-headlink " + icoo +"'></span>").css((dir==="rtl"?"left":"right"),"0px") : "";
		$(grid.cDiv).append(arf).append("<span class='ui-jqgrid-title'>"+ts.p.caption+"</span>")
		.addClass("ui-jqgrid-titlebar ui-jqgrid-caption"+(dir==="rtl" ? "-rtl" :"" )+" "+getstyle(stylemodule,'gridtitleBox',true));
///// toolbar menu
		if( ts.p.menubar === true) {
			//var fs =  $('.ui-jqgrid-view').css('font-size') || '11px';
			var arf1 = '<ul id="'+ts.p.id+'_menubar" class="ui-search-menu modal-content column-menu ui-menu jqgrid-caption-menu ' + colmenustyle.menu_widget+'" role="menubar" tabindex="0"></ul>';
			$("#gbox_"+ts.p.id).append(arf1);
			$(grid.cDiv).append("<a role='link' class='ui-jqgrid-menubar menubar-"+(dir==="rtl" ? "rtl" :"ltr" )+"' style=''><span class='colmenuspan "+iconbase+' '+colmenustyle.icon_toolbar_menu+"'></span></a>");
			$(".ui-jqgrid-menubar",grid.cDiv).hover(
					function(){ $(this).addClass(hover);},
					function() {$(this).removeClass(hover);
			}).on('click',function(e) {
				var pos = $(e.target).position();
				$("#"+ts.p.id+"_menubar").show();
				if(ts.p.direction==="rtl") {
					$("#"+ts.p.id+"_menubar").css({left : pos.left - $("#"+ts.p.id+"_menubar").width() - 20 });
				}
			});
		}
///// end toolbar menu
		$(grid.cDiv).insertBefore(grid.hDiv);
		if( ts.p.toolbar[0] ) {
			var tbstyle = getstyle(stylemodule, 'customtoolbarBox', true, 'ui-userdata');
			grid.uDiv = document.createElement("div");
			if(ts.p.toolbar[1] === "top") {$(grid.uDiv).insertBefore(grid.hDiv);}
			else if (ts.p.toolbar[1]==="bottom" ) {$(grid.uDiv).insertAfter(grid.hDiv);}
			if(ts.p.toolbar[1]==="both") {
				grid.ubDiv = document.createElement("div");
				$(grid.uDiv).addClass( tbstyle + " ui-userdata-top").attr("id","t_"+this.id).insertBefore(grid.hDiv).width(grid.width - bstw);
				$(grid.ubDiv).addClass( tbstyle + " ui-userdata-bottom").attr("id","tb_"+this.id).insertAfter(grid.hDiv).width(grid.width - bstw);
				if(hg)  {$(grid.ubDiv).hide();}
			} else {
				$(grid.uDiv).width(grid.width - bstw).addClass( tbstyle + " ui-userdata-top").attr("id","t_"+this.id);
			}
			if(hg) {$(grid.uDiv).hide();}
		}
		if(ts.p.toppager) {
			ts.p.toppager = $.jgrid.jqID(ts.p.id)+"_toppager";
			grid.topDiv = $("<div id='"+ts.p.toppager+"'></div>")[0];
			$(grid.topDiv).addClass(getstyle(stylemodule, 'toppagerBox', true, 'ui-jqgrid-toppager')).width(grid.width - bstw).insertBefore(grid.hDiv);
			setPager(ts.p.toppager,'_t');
			ts.p.toppager = "#"+ts.p.toppager;
		}
		if(ts.p.footerrow) {
			grid.sDiv = $("<div class='ui-jqgrid-sdiv'></div>")[0];
			hb = $("<div class='ui-jqgrid-hbox"+(dir==="rtl"?"-rtl":"")+"'></div>");
			$(grid.sDiv).append(hb).width(grid.width - bstw).insertAfter(grid.hDiv);
			$(hb).append(tfoot);
			grid.footers = $(".ui-jqgrid-ftable",grid.sDiv)[0].rows[0].cells;
			if(ts.p.rownumbers) { grid.footers[0].className = getstyle(stylemodule, 'rownumBox', true, 'jqgrid-rownum'); }
			if(hg) {$(grid.sDiv).hide();}
		}
		if(ts.p.headerrow) {
			grid.hrDiv = $("<div class='ui-jqgrid-hrdiv'></div>")[0];
			hb = $("<div class='ui-jqgrid-hbox"+(dir==="rtl"?"-rtl":"")+"'></div>");
			$(grid.hrDiv).append(hb).width(grid.width - bstw).insertAfter(grid.hDiv);
			$(hb).append(trhead);
			grid.hrheaders = $(".ui-jqgrid-hrtable",grid.hrDiv)[0].rows[0].cells;
			if(ts.p.rownumbers) { 
				grid.hrheaders[0].className = getstyle(stylemodule, 'rownumBox', true, 'jqgrid-rownum'); 
			}
			if(hg) {
				$(grid.nDiv).hide();
			}
		}
		hb = null;
		if(ts.p.caption) {
			var tdt = ts.p.datatype;
			if(ts.p.hidegrid===true) {
				$(".ui-jqgrid-titlebar-close",grid.cDiv).click( function(e){
					var onHdCl = $.jgrid.isFunction(ts.p.onHeaderClick),
					elems = ".ui-jqgrid-bdiv, .ui-jqgrid-hdiv, .ui-jqgrid-toppager, .ui-jqgrid-pager, .ui-jqgrid-sdiv, .ui-jqgrid-hrdiv",
					counter, self = this;
					if(ts.p.toolbar[0]===true) {
						if( ts.p.toolbar[1]==='both') {
							elems += ', #' + $(grid.ubDiv).attr('id');
						}
						elems += ', #' + $(grid.uDiv).attr('id');
					}
					counter = $(elems,"#gview_"+$.jgrid.jqID(ts.p.id)).length;

					if(ts.p.gridstate === 'visible') {
						$(elems,"#gbox_"+$.jgrid.jqID(ts.p.id)).slideUp("fast", function() {
							counter--;
							if (counter === 0) {
								$("span",self).removeClass(icoo).addClass(icoc);
								ts.p.gridstate = 'hidden';
								if($("#gbox_"+$.jgrid.jqID(ts.p.id)).hasClass("ui-resizable")) { $(".ui-resizable-handle","#gbox_"+$.jgrid.jqID(ts.p.id)).hide(); }
								$(ts).triggerHandler("jqGridHeaderClick", [ts.p.gridstate,e]);
								if(onHdCl) {if(!hg) {ts.p.onHeaderClick.call(ts,ts.p.gridstate,e);}}
							}
						});
					} else if(ts.p.gridstate === 'hidden'){
						$(elems,"#gbox_"+$.jgrid.jqID(ts.p.id)).slideDown("fast", function() {
							counter--;
							if (counter === 0) {
								$("span",self).removeClass(icoc).addClass(icoo);
								if(hg) {ts.p.datatype = tdt;populate();hg=false;}
								ts.p.gridstate = 'visible';
								if($("#gbox_"+$.jgrid.jqID(ts.p.id)).hasClass("ui-resizable")) { $(".ui-resizable-handle","#gbox_"+$.jgrid.jqID(ts.p.id)).show(); }
								$(ts).triggerHandler("jqGridHeaderClick", [ts.p.gridstate,e]);
								if(onHdCl) {if(!hg) {ts.p.onHeaderClick.call(ts,ts.p.gridstate,e);}}
							}
						});
					}
					return false;
				});
				if(hg) {ts.p.datatype="local"; $(".ui-jqgrid-titlebar-close",grid.cDiv).trigger("click");}
			}
		} else {
			$(grid.cDiv).hide();
			if(!ts.p.toppager) {
				$(grid.hDiv).addClass(getstyle(ts.p.styleUI+'.common', 'cornertop', true));
			}
		}
		if(ts.p.headerrow) {
			$(grid.hrDiv).after(grid.bDiv);
		} else {
			$(grid.hDiv).after(grid.bDiv);
		}
		$(grid.hDiv)
		.mousemove(function (e) {
			if(grid.resizing){grid.dragMove(e);return false;}
		});
		$(".ui-jqgrid-labels",grid.hDiv).on("selectstart", function () { return false; });
		$(document).on( "mouseup.jqGrid" + ts.p.id, function () {
			if(grid.resizing) {	grid.dragEnd( true ); return false;}
			return true;
		});
		
		if(ts.p.direction === 'rtl') {
			$(ts).on('jqGridAfterGridComplete.setRTLPadding',function(){
					var  vScrollWidth = grid.bDiv.offsetWidth - grid.bDiv.clientWidth,
					gridhbox = $(grid.hDiv).find("div").first();
					//ts.p.scrollOffset = vScrollWidth;
					// for future implementation
					if( vScrollWidth > 0 ) vScrollWidth += 2;
					if (gridhbox.hasClass("ui-jqgrid-hbox-rtl")) {
						$(grid.hDiv).find("div").first().css({paddingLeft: vScrollWidth + "px"});
					}
					grid.hDiv.scrollLeft = grid.bDiv.scrollLeft;
			});
		}
		if(ts.p.autoResizing) {
			$(ts).on('jqGridAfterGridComplete.setAutoSizeColumns',function(){
				var arfrozen = false, focused = false;
				if(ts.p.frozenColumns === true) {
					focused = $(':focus', '.frozen-div').attr("id");
					$(ts).jqGrid("destroyFrozenColumns");
					arfrozen = true;
				}
				
				if(ts.p.colSpanHeader.length > 0) {
					$(ts).jqGrid('destroyColSpanHeader',false);
				}
				$(ts.p.colModel).each(function(i){
					if (this.autosize && !this.hidden) {
						if(this._maxsize && this._maxsize > 0) {
							$(ts).jqGrid('resizeColumn', i, this._maxsize +  ts.p.cellLayout, false, false );
							//this._maxsize = this.canvas_width;
						}
					}
				});
				$(ts).jqGrid('refreshGroupHeaders');
				if(ts.p.colSpanHeader.length > 0) {
					$(ts).jqGrid('setColSpanHeader', ts.p.colSpanHeader);
				}				
				if(arfrozen) {
					$(ts).jqGrid("setFrozenColumns");
					if(focused) {
						setTimeout(function(){
							$("#"+focused, '.frozen-div').trigger('focus');
						},10);
					}
				}
			});
		}
		if(ts.p.searchCols) {
			$(ts).on("jqGridPaging.searchCols", function() {
				if(!$.isEmptyObject(ts.p._results) ) {
					ts.p._results ={};
					$.jgrid.searchColOnEnter( ts.p.id, null );
				}

			});
			$(ts).on("jqGridSortCol.searchCols", function() {
				if(!$.isEmptyObject(ts.p._results) ) {
					ts.p._results ={};
					$.jgrid.searchColOnEnter( ts.p.id, null );
				}

			});
			if(ts.p.colMenu && ts.p.searchColOptions.colmenu) {
				$(ts).jqGrid('addColSearchMenu');
			}
		}
		ts.formatCol = formatCol;
		ts.sortData = sortData;
		ts.updatepager = updatepager;
		ts.refreshIndex = refreshIndex;
		ts.setHeadCheckBox = setHeadCheckBox;
		ts.constructTr = constructTr;
		ts.formatter = function ( rowId, cellval , colpos, rwdat, act){return formatter(rowId, cellval , colpos, rwdat, act);};
		$.extend(grid,{populate : populate, emptyRows: emptyRows, beginReq: beginReq, endReq: endReq});
		this.grid = grid;
		ts.addXmlData = function(d) {addXmlData( d );};
		ts.addJSONData = function(d) {addJSONData( d );};
		ts.addLocalData = function(d) { return addLocalData( d );};
		ts.addIndexedDBData = function(d) { return addIndexedDBData( d );};
		ts.treeGrid_beforeRequest = function() { treeGrid_beforeRequest(); }; //bvn13
		ts.treeGrid_afterLoadComplete = function() {treeGrid_afterLoadComplete(); };
		this.grid.cols = this.rows[0].cells;
		if ($.jgrid.isFunction( ts.p.onInitGrid )) { ts.p.onInitGrid.call(ts); }
		$(ts).triggerHandler("jqGridInitGrid");
		populate();
		ts.p.hiddengrid=false;
		if(ts.p.responsive) {
			var supportsOrientationChange = "onorientationchange" in window,
			orientationEvent = supportsOrientationChange ? "orientationchange" : "resize";
			$(window).on( orientationEvent, function(){
				if($.jgrid.isVisible(ts)) {
					$(ts).jqGrid('resizeGrid', 500, true, ts.p.resizeHeight,true);
				}
			});
		}
	});
};
$.jgrid.extend({
	getGridParam : function(name, grid_module) {
		var $t = this[0], ret;
		if (!$t || !$t.grid) {return;}
		if(grid_module === undefined && typeof grid_module !== 'string') {
			grid_module = 'jqGrid'; //$t.p
		}
		ret = $t.p;
		if(grid_module !== 'jqGrid') {
			try {
				ret = $($t).data( grid_module );
			} catch (e) {
				ret = $t.p;
			}
		}
		if (!name) { return ret; }
		return ret[name] !== undefined ? ret[name] : null;
	},
	setGridParam : function (newParams, overwrite){
		return this.each(function(){
			if( $.jgrid.isNull(overwrite) ) {
				overwrite = false;
			}
			if (this.grid && typeof newParams === 'object') {
				if(overwrite === true) {
					var params = $.extend({}, this.p, newParams);
					this.p = params;
				} else {
					$.extend(true,this.p,newParams);
				}
			}
		});
	},
	getGridRowById : function ( rowid ) {
		var row;
		this.each( function(){
			try {
				row = this.rows.namedItem( rowid );
				/*
				var i = this.rows.length;
				while(i--) {
					if( rowid.toString() === this.rows[i].id) {
						row = this.rows[i];
						break;
					}
				}
				*/
			} catch ( e ) {
				row = $(this.grid.bDiv).find( "#" + $.jgrid.jqID( rowid ))[0];
			}
		});
		return row;
	},
	getGridRowByIndex : function (index) { //first row = 1
		var row = null;
		this.each(function(){
			var i = this.rows.length - 1;
			if(index >= 1 && i>=1 && index <= i) {
				row = this.rows[index];
			}
		});
		return row;
	},
	getDataIDs : function () {
		var ids=[], i=0, len, j=0;
		this.each(function(){
			len = this.rows.length;
			if(len && len>0){
				while(i<len) {
					if($(this.rows[i]).hasClass('jqgrow') && this.rows[i].id !== "norecs") {
						ids[j] = this.rows[i].id;
						j++;
					}
					i++;
				}
			}
		});
		return ids;
	},
	setSelection : function(selection,onsr, e, isHight) {
		return this.each(function(){
			var $t = this, stat,pt, ner, ia, tpsr, fid, csr, tfid,
			getstyle = $.jgrid.getMethod("getStyleUI"),
			highlight = getstyle($t.p.styleUI+'.common','highlight', true),
			disabled = getstyle($t.p.styleUI+'.common','disabled', true);
			if(selection === undefined) { return; }
			if(isHight === undefined ) { 
				isHight = true;
			}
			isHight = isHight === false ? false : true; 
			onsr = onsr === false ? false : true;
			pt=$($t).jqGrid('getGridRowById', selection);
			if(!pt || !pt.className || pt.className.indexOf( disabled ) > -1 ) { return; }
			function scrGrid(iR){
				var ch = $($t.grid.bDiv)[0].clientHeight,
				st = $($t.grid.bDiv)[0].scrollTop,
				rpos = $($t.rows[iR]).position().top,
				rh = $t.rows[iR].clientHeight;
				if(rpos+rh >= ch+st) { $($t.grid.bDiv)[0].scrollTop = rpos-(ch+st)+rh+st; }
				else if(rpos < ch+st) {
					if(rpos < st) {
						$($t.grid.bDiv)[0].scrollTop = rpos;
					}
				}
			}
			if($t.p.scrollrows===true) {
				ner = $($t).jqGrid('getGridRowById',selection).rowIndex;
				if(ner >=0 ){
					scrGrid(ner);
				}
			}
			if($t.p.frozenColumns === true ) {
				fid = $t.p.id+"_frozen";
			}
			if($t.p.frozenRows === true ) {
				tfid = $t.p.id+"_fr";
			}
			
			if(!$t.p.multiselect) {
				if(tfid) {
					$("#"+$.jgrid.jqID($t.p.selrow), "#"+$.jgrid.jqID(tfid)).removeClass(highlight);
				}
				if(pt.className !== "ui-subgrid") {
					if( $t.p.selrow !== pt.id ) {
						if( isHight ) {
							csr = $($t).jqGrid('getGridRowById', $t.p.selrow);
							if( csr ) {
								$(  csr ).removeClass(highlight).attr({"aria-selected":"false" , "tabindex" : "-1"});
							}
							$(pt).addClass(highlight).attr({"aria-selected":"true" ,"tabindex" : "0"});//.focus();
							if(fid) {
								$("#"+$.jgrid.jqID($t.p.selrow), "#"+$.jgrid.jqID(fid)).removeClass(highlight);
								$("#"+$.jgrid.jqID(selection), "#"+$.jgrid.jqID(fid)).addClass(highlight);
							}
						}
						stat = true;
					} else {
						stat = false;
					}
					$t.p.selrow = pt.id;
					if( onsr ) {
						$($t).triggerHandler("jqGridSelectRow", [pt.id, stat, e]);
						if( $t.p.onSelectRow) { $t.p.onSelectRow.call($t, pt.id, stat, e); }
					}
				}
			} else {
				//unselect selectall checkbox when deselecting a specific row
				$t.setHeadCheckBox( false );
				$t.p.selrow = pt.id;
				ia = $.inArray($t.p.selrow,$t.p.selarrrow);
				if (  ia === -1 ){
					if(pt.className !== "ui-subgrid") { $(pt).addClass(highlight).attr("aria-selected","true");}
					stat = true;
					$t.p.selarrrow.push($t.p.selrow);
				} else if( ia !== -1 && e === "_sp_") { 
					// selection preserver multiselect
					if(pt.className !== "ui-subgrid") { $(pt).addClass(highlight).attr("aria-selected","true");}
					stat = true;					
				} else {
					if(pt.className !== "ui-subgrid") { $(pt).removeClass(highlight).attr("aria-selected","false");}
					stat = false;
					$t.p.selarrrow.splice(ia,1);
					tpsr = $t.p.selarrrow[0];
					$t.p.selrow = (tpsr === undefined) ? null : tpsr;
				}
				$("#jqg_"+$.jgrid.jqID($t.p.id)+"_"+$.jgrid.jqID(pt.id))[$t.p.useProp ? 'prop': 'attr']("checked",stat);
				if(fid) {
					if(isHight) {
						if(ia === -1) {
							$("#"+$.jgrid.jqID(selection), "#"+$.jgrid.jqID(fid)).addClass(highlight);
						} else {
							$("#"+$.jgrid.jqID(selection), "#"+$.jgrid.jqID(fid)).removeClass(highlight);
						}
					}
					$("#jqg_"+$.jgrid.jqID($t.p.id)+"_"+$.jgrid.jqID(selection), "#"+$.jgrid.jqID(fid))[$t.p.useProp ? 'prop': 'attr']("checked",stat);
				}
				if( onsr ) {
					$($t).triggerHandler("jqGridSelectRow", [pt.id, stat, e]);
					if( $t.p.onSelectRow) { $t.p.onSelectRow.call($t, pt.id , stat, e); }
				}
				//si
				if($.jgrid.isFunction($t.p.onMultiSelect)) {$t.p.onMultiSelect.call($t, $t.p.selarrrow);}
				
			}
		});
	},
	resetSelection : function( rowid ){
		return this.each(function(){
			var t = this, sr, fid,
			getstyle = $.jgrid.getMethod("getStyleUI"),
			highlight = getstyle(t.p.styleUI+'.common','highlight', true),
			hover = getstyle(t.p.styleUI+'.common','hover', true);
			if( t.p.frozenColumns === true ) {
				fid = t.p.id+"_frozen";
			}
			if(rowid !== undefined ) {
				sr = rowid === t.p.selrow ? t.p.selrow : rowid;
				$("#"+$.jgrid.jqID(t.p.id)+" tbody").first().find("tr#"+$.jgrid.jqID(sr)).removeClass( highlight ).attr("aria-selected","false");
				if (fid) { $("#"+$.jgrid.jqID(sr), "#"+$.jgrid.jqID(fid)).removeClass( highlight ); }
				if(t.p.multiselect) {
					$("#jqg_"+$.jgrid.jqID(t.p.id)+"_"+$.jgrid.jqID(sr), "#"+$.jgrid.jqID(t.p.id))[t.p.useProp ? 'prop': 'attr']("checked",false);
					if(fid) { $("#jqg_"+$.jgrid.jqID(t.p.id)+"_"+$.jgrid.jqID(sr), "#"+$.jgrid.jqID(fid))[t.p.useProp ? 'prop': 'attr']("checked",false); }
					t.setHeadCheckBox( false);
					var ia = $.inArray($.jgrid.jqID(sr), t.p.selarrrow);
					if (  ia !== -1 ){
						t.p.selarrrow.splice(ia,1);
					}
				}
				if( t.p.onUnSelectRow) { t.p.onUnSelectRow.call(t, sr ); }
				sr = null;
			} else if(!t.p.multiselect) {
				if(t.p.selrow) {
					$("#"+$.jgrid.jqID(t.p.id)+" tbody").first().find("tr#"+$.jgrid.jqID(t.p.selrow)).removeClass( highlight ).attr("aria-selected","false");
					if(fid) { $("#"+$.jgrid.jqID(t.p.selrow), "#"+$.jgrid.jqID(fid)).removeClass( highlight ); }
					if( t.p.onUnSelectRow) { t.p.onUnSelectRow.call(t, t.p.selrow ); }
					t.p.selrow = null;
				}
			} else {
				$(t.p.selarrrow).each(function(i,n){
					$( $(t).jqGrid('getGridRowById',n) ).removeClass( highlight ).attr("aria-selected","false");
					$("#jqg_"+$.jgrid.jqID(t.p.id)+"_"+$.jgrid.jqID(n))[t.p.useProp ? 'prop': 'attr']("checked",false);
					if(fid) {
						$("#"+$.jgrid.jqID(n), "#"+$.jgrid.jqID(fid)).removeClass( highlight );
						$("#jqg_"+$.jgrid.jqID(t.p.id)+"_"+$.jgrid.jqID(n), "#"+$.jgrid.jqID(fid))[t.p.useProp ? 'prop': 'attr']("checked",false);
					}
					if( t.p.onUnSelectRow) { t.p.onUnSelectRow.call(t, n); }
				});
				t.setHeadCheckBox( false );
				t.p.selarrrow = [];
				t.p.selrow = null;
			}
			if(t.p.cellEdit === true) {
				if(parseInt(t.p.iCol,10)>=0  && parseInt(t.p.iRow,10)>=0) {
					$("td",t.rows[t.p.iRow]).eq(t.p.iCol).removeClass("edit-cell " + highlight );
					$(t.rows[t.p.iRow]).removeClass("selected-row " + hover );
				}
			}
			//t.p.savedRow = [];
			//si
			if($.jgrid.isFunction(t.p.onMultiSelect)) {t.p.onMultiSelect.call(t, t.p.selarrrow);}

		});
	},
	getRowData : function( rowid, usedata, treeindent, visibleTreeNodes ) {
		var res = {}, resall, getall=false, len, j=0;
		this.each(function(){
			var $t = this,nm,ind;
			if( $.jgrid.isNull(rowid) ) {
				getall = true;
				resall = [];
				len = $t.rows.length;
			} else {
				ind = $($t).jqGrid('getGridRowById', rowid);
				if(!ind) { return res; }
				len = 1;
			}
			if( !(usedata && usedata === true && $t.p.data.length > 0)  ) {
				usedata = false;
			}
			if( $.jgrid.isNull(treeindent) ) {
				treeindent = false;
			}
			if( $.jgrid.isNull(visibleTreeNodes) ) {
				visibleTreeNodes = false;
			}
			while(j<len){
				if(getall) {
					ind = $t.rows[j];
				}
				if( $(ind).hasClass('jqgrow') && ind.id !== "norecs") { // ignore first not visible row and norecs one
					if($t.p.treeGrid===true && visibleTreeNodes===true && $(ind).is(":hidden")) {
						j++;
						continue;
					}
					if(usedata) {
						res = res = $.extend( {}, $t.p.data[ $t.p._index[ $.jgrid.stripPref($t.p.idPrefix, ind.id) ] ] );
					} else {
						$(ind).children('td[role="gridcell"]').each( function(i) {
							nm = $t.p.colModel[i].name;
							if ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn' && nm !== 'sc') {
								if($t.p.treeGrid===true && nm === $t.p.ExpandColumn) {
									res[nm] = $.jgrid.htmlDecode( $(this).find("span").first().html() );
								} else {
									try {
										res[nm] = $.unformat.call($t,this,{rowId:ind.id, colModel:$t.p.colModel[i]},i);
									} catch (e){
										res[nm] = $.jgrid.htmlDecode($(this).html());
									}
								}
							}
						});
					}
					if($t.p.treeGrid===true && treeindent) {
						var level = $t.p.treeReader.level_field;
						treeindent += '';
						try {
							level = parseInt(res[level],10);
						} catch(e_) {
							level = 0;
						}
						res[$t.p.ExpandColumn] = treeindent.repeat( level ) + res[$t.p.ExpandColumn];
					}
					
					if(getall) { resall.push(res); res={}; }
				}
				j++;
			}
		});
		return resall || res;
	},
	delRowData : function(rowid) {
		var success = false, rowInd, ia, nextRow;
		this.each(function() {
			var $t = this;
			rowInd = $($t).jqGrid('getGridRowById', rowid);
			if(!rowInd) {
				return false;
			} else {
				rowid = rowInd.id;
			}
			if($t.p.subGrid) {
				nextRow = $(rowInd).next();
				if(nextRow.hasClass('ui-subgrid')) {
					nextRow.remove();
				}
			}
			$(rowInd).remove();
			$t.p.records--;
			$t.p.reccount--;
			$t.updatepager(true,false);
			success=true;
			if($t.p.frozenColumns) {
				$("#" + rowid, "#" + $.jgrid.jqID($t.p.id + "_frozen")).remove();
			}
			if($t.p.multiselect) {
				ia = $.inArray(rowid,$t.p.selarrrow);
				if(ia !== -1) { $t.p.selarrrow.splice(ia,1);}
			}
			if ($t.p.multiselect && $t.p.selarrrow.length > 0) {
				$t.p.selrow = $t.p.selarrrow[$t.p.selarrrow.length-1];
			} else {
				if( $t.p.selrow === rowid ) {
					$t.p.selrow = null;
				}
			}
			if($t.p.datatype === 'local') {
				var id = $.jgrid.stripPref($t.p.idPrefix, rowid),
				pos = $t.p._index[id];
				if(pos !== undefined) {
					$t.p.data.splice(pos,1);
					$t.refreshIndex();
				}
			}
		});
		return success;
	},
	setRowData : function(rowid, data, cssp, usegetrow) {
		var nm, success=true;
		this.each(function(){
			if(!this.grid) {return false;}
			var t = this, vl, ind, lcdata={}, jsondat, title;
			ind = $(this).jqGrid('getGridRowById', rowid);
			if(!ind) { 
				return false; 
			}
			if(usegetrow === true) {
				jsondat = $(t).jqGrid("getRowData", rowid, (t.p.datatype === 'local'));
			}
			if( data ) {
				if(usegetrow) {
					data = $.extend( jsondat, data);
				}
				try {
					$(this.p.colModel).each(function(i){
						nm = this.name;
						var dval =$.jgrid.getAccessor(data,nm);
						if( dval !== undefined) {
							lcdata[nm] = dval; //this.formatter && typeof this.formatter === 'string' && this.formatter === 'date' ? $.unformat.date.call(t,dval,this) : dval;
							vl = t.formatter( rowid, lcdata[nm], i, data, 'edit');
							title = this.title ? {"title":$.jgrid.stripHtml(vl)} : {};
							
							if(t.p.treeGrid===true && nm === t.p.ExpandColumn) {
								$("td[role='gridcell']",ind).eq(i).find("span[class*='cell-wrapper']").html(vl).attr(title);
							} else {
								$("td[role='gridcell']",ind).eq(i).html(vl).attr(title);
							}
							if(t.p.frozenColumns && i <= t.p.frozenColCount) {
								$("#"+rowid+" td[role='gridcell']", "#" + $.jgrid.jqID(t.p.id + "_frozen")).eq(i).html(vl).attr(title);
							}
						}
					});
					if(t.p.datatype === 'local') {
						var id = $.jgrid.stripPref(t.p.idPrefix, rowid),
						pos = t.p._index[id], key;
						if(t.p.treeGrid) {
							for(key in t.p.treeReader){
								if(t.p.treeReader.hasOwnProperty(key)) {
									delete lcdata[t.p.treeReader[key]];
								}
							}
						}
						if(pos !== undefined) {
							t.p.data[pos] = $.extend(true, t.p.data[pos], lcdata);
						}
						lcdata = null;
					}
				} catch (e) {
					success = false;
				}
			}
			if(success) {
				if(typeof cssp === 'string') {
					$(ind).addClass(cssp);
				} else if( !$.jgrid.isNull(cssp) && typeof cssp === 'object') {
					$(ind).css(cssp);
				}
				$(t).triggerHandler("jqGridAfterGridComplete");
			}
		});
		return success;
	},
	addRowData : function(rowid,rdata,pos,src) {
		if($.inArray( pos, ["first", "last", "before", "after"] ) === -1) {pos = "last";}
		var success = false, nm, row, rnc="", msc="", gi, si, ni,sind, i, v, prp="", aradd, cnm, data, cm, id;
		if(rdata) {
			if(Array.isArray(rdata)) {
				aradd=true;
				//pos = "last";
				cnm = rowid;
			} else {
				rdata = [rdata];
				aradd = false;
			}
			this.each(function() {
				var t = this, datalen = rdata.length;
				ni = t.p.rownumbers===true ? 1 :0;
				gi = t.p.multiselect ===true ? 1 :0;
				si = t.p.subGrid===true ? 1 :0;
				if(!aradd) {
					if(rowid !== undefined) { rowid = String(rowid);}
					else {
						rowid = $.jgrid.randId();
						if(t.p.keyName !== false) {
							cnm = t.p.keyName;
							if(rdata[0][cnm] !== undefined) { rowid = rdata[0][cnm]; }
						}
					}
				}
				var k = 0, classes = $(t).jqGrid('getStyleUI',t.p.styleUI+".base",'rowBox', true, 'jqgrow ui-row-'+ t.p.direction), lcdata = {},
				air = $.jgrid.isFunction(t.p.afterInsertRow) ? true : false;
				if(ni) {
					rnc = $(t).jqGrid('getStyleUI',t.p.styleUI+".base",'rownumBox', false, 'jqgrid-rownum');
				}
				if(gi) {
					msc = $(t).jqGrid('getStyleUI',t.p.styleUI+".base",'multiBox', false, 'cbox');
				}
				while(k < datalen) {
					data = rdata[k];
					row=[];
					if(aradd) {
						try {
							rowid = data[cnm];
							if(rowid===undefined) {
								rowid = $.jgrid.randId();
							}
						}
						catch (e) {rowid = $.jgrid.randId();}
					}
					id = rowid;
					rowid  = t.p.idPrefix + rowid;
					if(ni){
						prp = t.formatCol(0,1,'',null,rowid, true);
						row[row.length] = "<td role=\"gridcell\" " + rnc +" "+prp+">0</td>";
					}
					if(gi) {
						v = "<input role=\"checkbox\" type=\"checkbox\""+" id=\"jqg_"+t.p.id+"_"+rowid+"\" "+msc+"/>";
						prp = t.formatCol(ni,1,'', null, rowid, true);
						row[row.length] = "<td role=\"gridcell\" "+prp+">"+v+"</td>";
					}
					if(si) {
						row[row.length] = $(t).jqGrid("addSubGridCell",gi+ni,1);
					}
					for(i = gi+si+ni; i < t.p.colModel.length;i++){
						cm = t.p.colModel[i];
						nm = cm.name;
						lcdata[nm] = data[nm];
						v = t.formatter( rowid, $.jgrid.getAccessor(data,nm), i, data );
						prp = t.formatCol(i,1,v, data, rowid, lcdata);
						row[row.length] = "<td role=\"gridcell\" "+prp+">"+v+"</td>";
					}
					row.unshift( t.constructTr(rowid, false, classes, lcdata, data ) );
					row[row.length] = "</tr>";
					if(t.rows.length === 0){
						$(t.grid.bDiv).find("table").first().append(row.join(''));
					} else {
						switch (pos) {
							case 'last':
								$(t.rows[t.rows.length-1]).after(row.join(''));
								sind = t.rows.length-1;
								break;
							case 'first':
								$(t.rows[0]).after(row.join(''));
								sind = 1;
								break;
							case 'after':
								sind = $(t).jqGrid('getGridRowById', src);
								if (sind) {
									if($(t.rows[sind.rowIndex+1]).hasClass("ui-subgrid")) { $(t.rows[sind.rowIndex+1]).after(row); }
									else { $(sind).after(row.join('')); }
									sind=sind.rowIndex + 1;
								}
								break;
							case 'before':
								sind = $(t).jqGrid('getGridRowById', src);
								if(sind) {
									$(sind).before(row.join(''));
									sind=sind.rowIndex - 1;
								}
								break;
						}
					}
					if(t.p.subGrid===true) {
						$(t).jqGrid("addSubGrid",gi+ni, sind);
					}
					t.p.records++;
					t.p.reccount++;
					$(t).triggerHandler("jqGridAfterInsertRow", [rowid,data,data]);
					if(air) { t.p.afterInsertRow.call(t,rowid,data,data); }
					k++;
					if(t.p.datatype === 'local') {
						lcdata[t.p.localReader.id] = id;
						switch (pos) {
							case 'first':
							t.p.data.unshift(lcdata);
								break;
							case 'last':
							t.p.data.push(lcdata);
								break;
							case 'before':
							case 'after':
								t.p.data.splice(sind-1, 0, lcdata);
								break;
						}
					}
					lcdata = {};
					if(t.p.reccount === 1) {
						sind = $(t).jqGrid('getGridRowById', "norecs");
						if(sind && sind.rowIndex && sind.rowIndex > 0) {
							$(t.rows[sind.rowIndex]).remove();
						}
					}
				}
				if(t.p.datatype === 'local') {
					t.refreshIndex();
				}
				t.updatepager(true,true);
				success = true;
			});
		}
		return success;
	},
	footerData : function(action,data, format, index, destroyFrozen) {
		var nm, success=false, res={};
		function isEmpty(obj) {
			var i;
			for(i in obj) {
				if (obj.hasOwnProperty(i)) { return false; }
			}
			return true;
		}
		if(action === undefined) { action = "get"; }
		if(typeof format !== "boolean") { format  = true; }
		if(index === undefined ) { index = 0;}
		if(destroyFrozen === undefined) { destroyFrozen = true; }
		action = action.toLowerCase();
		this.each(function(){
			var t = this, vl, title, len = this.p.colModel.length, frozen = false;
			if(!t.grid || !t.p.footerrow) {return false;}
			if(action === "set") { if(isEmpty(data)) { return false; } }
			if(action === "getlength") {
				var rowlen = $(".ui-jqgrid-ftable tr", t.grid.sDiv).length;
				res =  rowlen ? rowlen : 0;
				return false;
			}
			if(t.p.frozenColumns && action !== 'get' && destroyFrozen) {
				$(t).jqGrid("destroyFrozenColumns");
				frozen = true;
			}
			success=true;
			if(action === 'addrow') {
				var test = $(".ui-jqgrid-ftable tr", t.grid.sDiv).eq(0).clone();
				$("td", test).html("&nbsp;");
				$(".ui-jqgrid-ftable", t.grid.sDiv ).append(test);
				if(!isEmpty(data)) {
					action = 'set';
					index =  $(".ui-jqgrid-stable tr", t.grid.sDiv).length - 1;
				}
			}			
			if(action === 'delrow') {
				if(index === undefined) {
					index =  $(".ui-jqgrid-stable tr", t.grid.sDiv).length - 1;
				}
				if(index > 0 ) {
					$(".ui-jqgrid-ftable tr", t.grid.sDiv).eq(index).remove();
				}
			}			
			len = len * parseInt(index,10);
			if(action === 'get' || action === 'set') {	
			$(this.p.colModel).each(function(i){
				nm = this.name;
				if(action === "set") {
					if( data[nm] !== undefined) {
						vl = format ? t.formatter( "", data[nm], i, data, 'edit') : data[nm];
						title = this.title ? {"title":$.jgrid.stripHtml(vl)} : {};
							$("tr.footrow td",t.grid.sDiv).eq(i + len).html(vl).attr(title);
						success = true;
					}
				} else if(action === "get") {
					res[nm] = format ? $.unformat.call (t,  $("tr.footrow td",t.grid.sDiv).eq(i + len), { 'colModel' : t.p.colModel[i] }, i) :
						$("tr.footrow td",t.grid.sDiv).eq(i + len).html();
				}
			});
			}
			if(action === 'remove') {
				$(t.grid.sDiv).remove();
				t.grid.sDiv  = null;
				t.p.footerrow = false;
			}
			if(frozen) {
				$(t).jqGrid("setFrozenColumns");
			}
		});
		return (action === "get" || action === "getlength") ? res : success;
	},
	headerData : function(action, data, format, index, destroyFrozen) {
		var nm, success=false, res={};
		function isEmpty(obj) {
			var i;
			for(i in obj) {
				if (obj.hasOwnProperty(i)) { return false; }
			}
			return true;
		}
		if(action === undefined) { action = "get"; }
		if(typeof format !== "boolean") { format  = true; }
		if(index === undefined ) { index=0;}
		if(destroyFrozen === undefined) { destroyFrozen = true; }
		action = action.toLowerCase();
		this.each(function(){
			var t = this, vl, title,len = this.p.colModel.length, frozen = false;
			if(!t.grid || !t.p.headerrow) {return false;}
			if(action === "set") { if(isEmpty(data)) { return false; } }
			if(action === "getlength") {
				var rowlen = $(".ui-jqgrid-hrtable tr", t.grid.hrDiv).length;
				res =  rowlen ? rowlen : 0;
				return true;
			}
			if(t.p.frozenColumns && action !== 'get' && destroyFrozen) {
				$(t).jqGrid("destroyFrozenColumns");
				frozen = true;
			}
			success=true;
			if(action === 'addrow') {
				var test = $(".ui-jqgrid-hrtable tr", t.grid.hrDiv).eq(0).clone();
				$("td", test).html("&nbsp;");
				$(".ui-jqgrid-hrtable", t.grid.hrDiv ).append(test);
				if(!isEmpty(data)) {
					action = 'set';
					index =  $(".ui-jqgrid-hrtable tr", t.grid.hrDiv).length - 1;
				}
			}			
			if(action === 'delrow') {
				if(index === undefined) {
					index =  $(".ui-jqgrid-hrtable tr", t.grid.hrDiv).length - 1;
				}
				if(index > 0 ) {
					$(".ui-jqgrid-hrtable tr", t.grid.hrDiv).eq(index).remove();
				}
			}			
			len = len * parseInt(index,10);
			if(action === 'get' || action === 'set') {		
			$(this.p.colModel).each(function(i){
				nm = this.name;
				if(action === "set") {
					if( data[nm] !== undefined) {
						vl = format ? t.formatter( "", data[nm], i, data, 'edit') : data[nm];
						title = this.title ? {"title":$.jgrid.stripHtml(vl)} : {};
							$("tr.hrheadrow td",t.grid.hrDiv).eq(i + len).html(vl).attr(title);
						success = true;
					}
				} else if(action === "get") {
					res[nm] = format ? $.unformat.call (t,  $("tr.hrheadrow td",t.grid.hrDiv).eq(i+len), { 'colModel' : t.p.colModel[i] }, i) :
						$("tr.hrheadrow td",t.grid.hrDiv).eq(i+len).html();					
				}
			});
			}
			if(action === 'remove') {
				$(t.grid.hrDiv).remove();
				t.grid.hrDiv  = null;
				t.p.headerrow = false;
			}
			if(frozen) {
				$(t).jqGrid("setFrozenColumns");
			}
		});
		return (action === "get" || action === "getlength") ? res : success;
	},
	showHideCol : function(colname,show) {
		return this.each(function() {
			var $t = this, fndh=false, brd=$.jgrid.cell_width ? 0: $t.p.cellLayout, cw, frozen = false;
			if (!$t.grid ) {return;}
			if( typeof colname === 'string') {colname=[colname];}
			show = show !== "none" ? "" : "none";
			var sw = show === "" ? true :false,
			gHead = null,
			gh = $($t).jqGrid("isGroupHeaderOn");
			if($t.p.frozenColumns) {
				$($t).jqGrid('destroyFrozenColumns');
				frozen = true;
			}
			if(gh) { 
				$($t).jqGrid('destroyGroupHeader', false);
				gHead = $.extend([],$t.p.groupHeader);
				$t.p.groupHeader = null;
			}
			if($t.p.colSpanHeader.length) {
				$($t).jqGrid('destroyColSpanHeader', false);
			}
			$(this.p.colModel).each(function(i) {
				if ($.inArray(this.name,colname) !== -1 && this.hidden === sw) {
					//if($t.p.frozenColumns === true && this.frozen === true) {
					//	return true;
					//}
					$("tr[role=row]",$t.grid.hDiv).each(function(){
						$(this.cells[i]).css("display", show);
					});
					$($t.rows).each(function(){
						if (!$(this).hasClass("jqgroup")) {
							$(this.cells[i]).css("display", show);
						}
					});
					if($t.p.footerrow) { $("tr.footrow td", $t.grid.sDiv).eq( i ).css("display", show); }
					if($t.p.headerrow) { $("tr.hrheadrow td", $t.grid.hrDiv).eq( i ).css("display", show); }
					cw =  parseInt(this.width,10);
					if(show === "none") {
						$t.p.tblwidth -= cw+brd;
					} else {
						$t.p.tblwidth += cw+brd;
					}
					this.hidden = !sw;
					fndh=true;
					$($t).triggerHandler("jqGridShowHideCol", [sw,this.name,i]);
				}
			});
			if(fndh===true) {
				if($t.p.shrinkToFit === true && !isNaN($t.p.height)) { 
					$t.p.tblwidth += parseInt($t.p.scrollOffset,10);
				}
				$($t).jqGrid("setGridWidth",$t.p.shrinkToFit === true ? $t.p.tblwidth - (!isNaN($t.p.height) ? parseInt($t.p.scrollOffset,10) : 0) : $t.p.width );
			}
			if( gh && gHead)  {
				for(var k =0; k < gHead.length; k++) {
					$($t).jqGrid('setGroupHeaders', gHead[k]);
				}
			}
			if($t.p.colSpanHeader.length) {
				$($t).jqGrid('setColSpanHeader', $t.p.colSpanHeader);
			}
			if(frozen) {
				$($t).jqGrid("setFrozenColumns");
			}
		});
	},
	hideCol : function (colname) {
		return this.each(function(){$(this).jqGrid("showHideCol",colname,"none");});
	},
	showCol : function(colname) {
		return this.each(function(){$(this).jqGrid("showHideCol",colname,"");});
	},
	hideSearchCol : function(colname) {
		return this.each(function(){
			try {
				var index = this.p._avc.indexOf(colname);
				if(index > -1 ) {
					this.p._avc.splice(index, 1);
					this.p._fthc.push( colname );
					$(this).jqGrid("showHideCol",colname,"none");
				}
			} catch(_e) {} 
		});
	},
	showSearchCol : function(colname) {
		return this.each(function(){
			try {
				var index = this.p._fthc.indexOf(colname);
				if(index > -1 ) {
					this.p._fthc.splice(index, 1);
					this.p._avc.push( colname );
					$(this).jqGrid("showHideCol",colname,"");
				}
			} catch(_e) {} 
		});
	},
	remapColumns : function(permutation, updateCells, keepHeader) {
		function resortArray(a) {
			var ac;
			if (a.length) {
				ac = $.makeArray(a);
			} else {
				ac = $.extend({}, a);
			}
			$.each(permutation, function(i) {
				a[i] = ac[this];
			});
		}
		var ts = this.get(0);
		function resortRows(parent, clobj) {
			$(">tr"+(clobj||""), parent).each(function() {
				var row = this;
				var elems = $.makeArray(row.cells);
				$.each(permutation, function() {
					var e = elems[this];
					if (e) {
						row.appendChild(e);
					}
				});
			});
		}
		resortArray(ts.p.colModel);
		resortArray(ts.p.colNames);
		resortArray(ts.grid.headers);
		resortRows( $(ts.grid.hDiv).find("thead").first() , keepHeader && ":not(.ui-jqgrid-labels)");
		if (updateCells) {
			resortRows($("#"+$.jgrid.jqID(ts.p.id)+" tbody").first(), ".jqgfirstrow, tr.jqgrow, tr.jqfoot, tr.jqgroup");
		}
		if (ts.p.footerrow) {
			resortRows( $(ts.grid.sDiv).find("tbody").first() );
		}
		if (ts.p.headerrow) {
			resortRows( $(ts.grid.hrDiv).find("tbody").first());
		}
		if (ts.p.remapColumns) {
			if (!ts.p.remapColumns.length){
				ts.p.remapColumns = $.makeArray(permutation);
			} else {
				resortArray(ts.p.remapColumns);
			}
		}
		ts.p.lastsort = $.inArray(ts.p.lastsort, permutation);
		if(ts.p.treeGrid) { ts.p.expColInd = $.inArray(ts.p.expColInd, permutation); }
		$(ts).triggerHandler("jqGridRemapColumns", [permutation, updateCells, keepHeader]);
	},
	setGridWidth : function(nwidth, shrink, usefrozen) {
		return this.each(function(){
			if (!this.grid ) {return;}
			var $t = this, cw, setgr, frozen = false,
			initwidth = 0, brd=$.jgrid.cell_width ? 0: $t.p.cellLayout, lvc, vc=0, hs=false, scw=$t.p.scrollOffset, aw, gw=0, cr, bstw = $t.p.styleUI.search('Bootstrap') !== -1  ? 2 : 0;

			if(typeof shrink !== 'boolean') {
				shrink=$t.p.shrinkToFit;
			}
			if( typeof usefrozen !== 'boolean' ) {
				usefrozen = true;
			}
			if(isNaN(nwidth)) {return;}
			nwidth = parseInt(nwidth,10);
			if(nwidth < $t.p.minGridWidth || nwidth > $t.p.maxGridWidth) {
				return;
			}
			$t.grid.width = $t.p.width = nwidth;
			$("#gbox_"+$.jgrid.jqID($t.p.id)).css("width",nwidth+"px");
			$("#gview_"+$.jgrid.jqID($t.p.id)).css("width",nwidth+"px");
			$($t.grid.bDiv).css("width",(nwidth - bstw) +"px");
			$($t.grid.hDiv).css("width",(nwidth - bstw) +"px");
			if($t.p.pager ) {
				$($t.p.pager).css("width",(nwidth - bstw) +"px");
			}
			if($t.p.toppager ) {
				$($t.p.toppager).css("width",(nwidth - bstw)+"px");
			}
			if($t.p.toolbar[0] === true){
				$($t.grid.uDiv).css("width",(nwidth - bstw)+"px");
				if($t.p.toolbar[1]==="both") {$($t.grid.ubDiv).css("width",(nwidth - bstw)+"px");}
			}
			if($t.p.footerrow) {
				$($t.grid.sDiv).css("width",(nwidth - bstw)+"px");
			}
			if($t.p.headerrow) {
				$($t.grid.hrDiv).css("width",(nwidth - bstw)+"px");
			}
			// if (group_header)
			setgr = $($t).jqGrid("isGroupHeaderOn");
			if(setgr) { 
				$($t).jqGrid('destroyGroupHeader', false); 
			}
			if($t.p.frozenColumns && usefrozen) {
				$($t).jqGrid("destroyFrozenColumns");
				frozen = true;
			}

			if(shrink ===false && $t.p.forceFit === true) {$t.p.forceFit=false;}
			if(shrink===true) {
				$.each($t.p.colModel, function() {
					if(this.hidden===false){
						cw = this.widthOrg;
						initwidth += cw+brd;
						if(this.fixed) {
							gw += cw+brd;
						} else {
							vc++;
						}
					}
				});
				if(vc  === 0) { return; }
				$t.p.tblwidth = initwidth;
				aw = nwidth-brd*vc-gw;
				var norec_row = $("#norecs", "#"+$.jgrid.jqID($t.p.id)).eq(0);
				if(!isNaN($t.p.height)) {
					if($($t.grid.bDiv)[0].clientHeight <= $($t.grid.bDiv)[0].scrollHeight || $t.rows.length === (norec_row.length + 1)  || $($t.grid.bDiv).css('overflow-y') === 'scroll'){
						hs = true;
						aw -= scw;
					}
				}
				initwidth =0;
				var cle = $t.grid.cols.length >0;
				$.each($t.p.colModel, function(i) {
					if(this.hidden === false && !this.fixed){
						cw = this.widthOrg;
						cw = Math.round(aw*cw/($t.p.tblwidth-brd*vc-gw));
						if (cw < 0) { return; }
						this.width =cw;
						initwidth += cw;
						$t.grid.headers[i].width=cw;
						$t.grid.headers[i].el.style.width=cw+"px";
						if($t.p.footerrow) { $t.grid.footers[i].style.width = cw+"px"; }
						if($t.p.headerrow) { $t.grid.hrheaders[i].style.width = cw+"px"; }
						if(cle) { $t.grid.cols[i].style.width = cw+"px"; }
						lvc = i;
					}
				});

				if (!lvc) { return; }

				cr =0;
				if (hs) {
					if(nwidth-gw-(initwidth+brd*vc) !== scw){
						cr = nwidth-gw-(initwidth+brd*vc)-scw;
					}
				} else if( !hs && Math.abs(nwidth-gw-(initwidth+brd*vc)) !== 0) {
					cr = nwidth-gw-(initwidth+brd*vc) - bstw; // + 1 pix to remove scroll
				}

				$t.p.colModel[lvc].width += cr;
				$t.p.tblwidth = initwidth+cr+brd*vc+gw;
				if($t.p.tblwidth > nwidth) {
					var delta = $t.p.tblwidth - parseInt(nwidth,10);
					$t.p.tblwidth = nwidth;
					cw = $t.p.colModel[lvc].width = $t.p.colModel[lvc].width-delta;
				} else if ($t.p.tblwidth === nwidth){
					cw = $t.p.colModel[lvc].width = $t.p.colModel[lvc].width-bstw;
					$t.p.tblwidth = nwidth - bstw;
				} else {
					cw= $t.p.colModel[lvc].width;
				}
				var has_scroll = ($($t.grid.bDiv)[0].scrollWidth > $($t.grid.bDiv).width()) && bstw !==0 ? -1 : 0;
				cw = $t.p.colModel[lvc].width += has_scroll;

				$t.grid.headers[lvc].width = cw;
				$t.grid.headers[lvc].el.style.width=cw+"px";
				if(cle) { $t.grid.cols[lvc].style.width = cw+"px"; }
				if($t.p.footerrow) {
					$t.grid.footers[lvc].style.width = cw+"px";
				}
				if($t.p.headerrow) {
					$t.grid.hrheaders[lvc].style.width = cw+"px";
				}
			}

			$($t.grid.bDiv).find('table').first().css("width",$t.p.tblwidth+"px");
			$($t.grid.hDiv).find('table').first().css("width",$t.p.tblwidth+"px");
			$t.grid.hDiv.scrollLeft = $t.grid.bDiv.scrollLeft;
			if($t.p.footerrow) {
				$($t.grid.sDiv).find('table').first().css("width",$t.p.tblwidth+"px");
			}
			if($t.p.headerrow) {
				$($t.grid.hrDiv).find('table').first().css("width",$t.p.tblwidth+"px");
			}

			if( setgr )  {
				var gHead = $.extend([],$t.p.groupHeader);
				$t.p.groupHeader = null;
				for(var k =0; k < gHead.length; k++) {
					$($t).jqGrid('setGroupHeaders', gHead[k]);
				}
				$t.grid.hDiv.scrollLeft = $t.grid.bDiv.scrollLeft;
			}
			if(frozen) {
				$($t).jqGrid("setFrozenColumns");
			}
		});
	},
	setGridHeight : function ( nh, entrie_grid, usefrozen ) {
		return this.each(function (){
			var $t = this;
			if(!$t.grid) {return;}
			var bDiv = $($t.grid.bDiv),
			static_height = $($t.grid.hDiv).outerHeight(), frozen = false;

			if( typeof entrie_grid !== 'boolean' ) {
				entrie_grid = false;
			}

			if( typeof usefrozen !== 'boolean' ) {
				usefrozen = true;
			}

			if(entrie_grid === true) {
				if($t.p.pager ) {
					static_height += $($t.p.pager).outerHeight();
				}
				if($t.p.toppager ) {
					static_height += $($t.p.toppager).outerHeight();
				}
				if($t.p.toolbar[0] === true){
					static_height += $($t.grid.uDiv).outerHeight();
					if($t.p.toolbar[1]==="both") {
						static_height += $($t.grid.ubDiv).outerHeight();
					}
				}
				if($t.p.footerrow) {
					static_height += $($t.grid.sDiv).outerHeight();
				}
				if($t.p.headerrow) {
					static_height +=  $($t.grid.hrDiv).outerHeight();
				}
				if($t.p.caption) {
					static_height +=  $($t.grid.cDiv).outerHeight();
				}
				if(nh > static_height) { // set it for the body
					nh = nh - static_height;
				}
			}
			if($t.p.frozenColumns && usefrozen) {
				$($t).jqGrid("destroyFrozenColumns");
				frozen = true;
			}
			bDiv.css({height: nh+(isNaN(nh)?"":"px")});
			$t.p.height = nh;
			if(frozen) {
				$($t).jqGrid("setFrozenColumns");
			}
			if ($t.p.scroll) { 
				$t.grid.populateVisible(); 
			}
		});
	},
	maxGridHeight : function( action, newhgh, minrh ) {
		return this.each(function() {
			var $t = this;
			if(!$t.grid) {
				return;
			}
			if(minrh===undefined) {
				minrh = 25;
			}
			var bDiv = $($t.grid.bDiv);
			if( action === 'set' && !isNaN(newhgh)) { // row min height
				newhgh = parseFloat(newhgh);
				if( newhgh > parseFloat(minrh) ) { // min row height
					bDiv.css("max-height", newhgh ); 
					if( ['100%','auto'].includes($t.p.height) && $($t.grid.bDiv).height() < $($t).height())  {
						$("#"+$.jgrid.jqID($t.p.id)).jqGrid('setGridWidth', $t.p.width+$t.p.scrollOffset-2, false, false );
					}
				}
			} else if( action === 'remove') {
				var test = ['100%','auto'].includes($t.p.height) && $($t.grid.bDiv).height() < $($t).height();
				bDiv.css("max-height", "");
				if(test) {
					$("#"+$.jgrid.jqID($t.p.id)).jqGrid('setGridWidth', $t.p.width-$t.p.scrollOffset+2, false, false );
				}
			}
		});
	},
	setCaption : function (newcap){
		return this.each(function(){
			var ctop = $(this).jqGrid('getStyleUI',this.p.styleUI+".common",'cornertop', true);
			this.p.caption=newcap;
			$(".ui-jqgrid-title, .ui-jqgrid-title-rtl",this.grid.cDiv).html(newcap);
			$(this.grid.cDiv).show();
			$(this.grid.hDiv).removeClass(ctop);
		});
	},
	setLabel : function(colname, nData, prop, attrp ){
		return this.each(function(){
			var $t = this, pos=-1;
			if(!$t.grid) {return;}
			if( !$.jgrid.isNull(colname) ) {
				if(isNaN(colname)) {
					pos = $.jgrid.getElemByAttrVal($t.p.colModel, 'name', colname, true);
				} else {
					pos = parseInt(colname,10);
				}
			} else { return; }
			if( pos >= 0 ) {
				var thecol = $("tr.ui-jqgrid-labels th",$t.grid.hDiv).eq( pos );
				if (nData){
					var ico = $(".s-ico",thecol),
					col_menu = $(".colmenu",thecol);
					try {
						$("[id^=jqgh_]",thecol).empty().html(nData).append(ico).append(col_menu);
					} catch (er) {}
					$t.p.colNames[pos] = nData;
					if($t.p.frozenColumns) {
						thecol = $("tr.ui-jqgrid-labels th",$t.grid.fhDiv).eq( pos );
						ico = $(".s-ico",thecol);
						$("[id^=jqgh_]",thecol).empty().html(nData).append(ico);
					}
				}
				if (prop) {
					if(typeof prop === 'string') {$(thecol).addClass(prop);} else {$(thecol).css(prop);}
				}
				if(typeof attrp === 'object') {$(thecol).attr(attrp);}
				var tmpcm = $t.p.colModel[pos];
				if( tmpcm.autosize_headers ) {
					var hdr_font = $.jgrid.getFont( thecol[0]);
					tmpcm.canvas_width = ($.jgrid.getTextWidth( $("div", thecol)[0].outerText, hdr_font) +
						(tmpcm.colmenu ? $.jgrid.floatNum( $(".colmenuspan", thecol).parent().width()) : 0) +
						$.jgrid.floatNum( $("div", thecol).css("padding-left")) + $.jgrid.floatNum( $("div", thecol).css("padding-right")) +	
						$.jgrid.floatNum($(".ui-jqgrid-resize", thecol).width()));
				}
			}
		});
	},
	setSortIcon : function(position, colname) {
		return this.each(function(){
			var $t = this, pos=-1, len=1,
			nm, thecol, htmlcol, ico;
			if(!$t.grid) {return;}
			if( !$.jgrid.isNull(colname) ) {
				if(isNaN(colname)) {
					pos = $.jgrid.getElemByAttrVal($t.p.colModel, 'name', colname, true);
				} else {
					pos = parseInt(colname,10);
				}
			} else {
				len = $t.p.colNames.length;
			}
			for(var i =0; i<len; i++) {
			if(pos>=0) {
					i = pos;
				}
				
				nm = $t.p.colModel[i].name;
				if(nm === 'cb' || nm==='subgrid' || nm==='rn' || nm !== 'sc') {
					continue;
				}
				thecol = $("tr.ui-jqgrid-labels th", $t.grid.hDiv).eq( i );
				htmlcol = $t.p.colNames[i];
				ico = thecol.find(".s-ico");

				if(position === 'left') {
					thecol.find("div.ui-th-div").first().empty().addClass("ui-icon-left").append(ico).append(htmlcol);				
				} else if(position === 'right') {
					thecol.find("div.ui-th-div").first().empty().removeClass("ui-icon-left").append(htmlcol).append(ico);
				}
				if($t.p.frozenColumns) {
					thecol = $("tr.ui-jqgrid-labels th", $t.grid.fhDiv).eq( i );
					htmlcol = $t.p.colNames[i];
					ico = thecol.find(".s-ico");

					if(position === 'left') {
						thecol.find("div.ui-th-div").first().empty().addClass("ui-icon-left").append(ico).append(htmlcol);				
					} else if(position === 'right') {
						thecol.find("div.ui-th-div").first().empty().removeClass("ui-icon-left").append(htmlcol).append(ico);
					}
				}
			}
		});
	},
	setCell : function(rowid,colname,nData,cssp,attrp, forceupd) {
		return this.each(function(){
			var $t = this, pos =-1, v, ind;
			if(!$t.grid) {return;}
			if(isNaN(colname)) {
				pos = $.jgrid.getElemByAttrVal($t.p.colModel, 'name', colname, true);
			} else {
				pos = parseInt(colname,10);
			}
			if(pos>=0) {
				ind = $($t).jqGrid('getGridRowById', rowid);
				if (ind){
					var tcell, title, rawdat={}, cm = $t.p.colModel[pos], index;
					try {
						tcell = ind.cells[pos];
					} catch(e){}
					if(tcell) {
						if(nData !== "" || forceupd === true ) {
							rawdat = $($t).jqGrid("getRowData", rowid, ($t.p.datatype === 'local'));
							rawdat[cm.name] = nData;
							v = $t.formatter(rowid, nData, pos, rawdat, 'edit');
							title = cm.title ? {"title":$.jgrid.stripHtml(v)} : {};
							
							if($t.p.treeGrid && $t.p.ExpandColumn === cm.name ) {
								$("span",$(tcell)).html(v).attr(title);
							} else {
								$(tcell).html(v).attr(title);
							}
							if($t.p.datatype === "local") {
								//nData = cm.formatter && typeof cm.formatter === 'string' && cm.formatter === 'date' ? $.unformat.date.call($t,nData,cm) : nData;
								index = $t.p._index[$.jgrid.stripPref($t.p.idPrefix, rowid)];
								if(index !== undefined) {
									$t.p.data[index][cm.name] = nData;
								}
							}
						}
						if(typeof cssp === 'string'){
							$(tcell).addClass(cssp);
						} else if(cssp) {
							$(tcell).css(cssp);
						}
						if(typeof attrp === 'object') {
							$(tcell).attr(attrp);
						}
						if($t.p.frozenColumns && pos <= $t.p.frozenColCount) {
							var fcell = $(tcell).clone();
							$("#"+rowid +" td", "#" + $.jgrid.jqID($t.p.id + "_frozen") ).eq( pos ).replaceWith(fcell);
						}
					}
				}
			}
		});
	},
	getCell : function(rowid, col, returnobject) {
		var ret = false, obj;
		if(typeof returnobject !== 'boolean') {
			returnobject = false;
		}
		this.each(function(){
			var $t=this, pos=-1, ind;
			if(!$t.grid) {return;}
			if(isNaN(col)) {
				pos = $.jgrid.getElemByAttrVal($t.p.colModel, 'name', col, true);
			} else {
				pos = parseInt(col,10);
			}
			if(pos>=0) {
				ind = $($t).jqGrid('getGridRowById', rowid);
				if(ind) {
					obj = $("td",ind).eq( pos );
					if( returnobject ) {
						ret = obj;
					} else {
						try {
							ret = $.unformat.call($t, obj ,{rowId:ind.id, colModel:$t.p.colModel[pos]},pos);
						} catch (e){
							ret = $.jgrid.htmlDecode( obj.html() );
						}
						if($t.p.treeGrid && ret && $t.p.ExpandColumn === col ) {
							ret = $( "<div>" + ret +"</div>").find("span").first().html();
						}
					}
				}
			}
		});
		return ret;
	},
	getCol : function (col, obj, mathopr) {
		var ret = [], val, sum=0, min, max, v;
		if( typeof obj !== 'boolean') {
			obj = false;
		}
		if(mathopr === undefined) { mathopr = false; }
		var font = $.jgrid.getFont( this[0] );

		this.each(function(){
			var $t=this, pos=-1, cm = $t.p.colModel;
			if(!$t.grid) {return;}
			if(isNaN(col)) {
				pos = $.jgrid.getElemByAttrVal($t.p.colModel, 'name', col, true);
			} else {
				pos = parseInt(col,10);
			}
			if( pos >= 0 ) {
				var ln = $t.rows.length, i = 0, dlen = 0;
				if (ln && ln>0){
					for(; i < ln; i++){
						if($($t.rows[i]).hasClass('jqgrow') && $t.rows[i].id !== "norecs") {

							if(mathopr === 'maxwidth') {
								if(max === undefined) { 
									max = cm[pos].autosize_headers ? cm[pos].canvas_width  : 0;
								}
								max = Math.max( $.jgrid.getTextWidth($t.rows[i].cells[pos].outerText, font), max);
								continue;
							}

							try {
								val = $.unformat.call($t,$($t.rows[i].cells[pos]),{rowId:$t.rows[i].id, colModel:$t.p.colModel[pos]},pos);
							} catch (e) {
								val = $.jgrid.htmlDecode($t.rows[i].cells[pos].innerHTML);
							}
							if(mathopr) {
								v = $.jgrid.floatNum(val);
								//if(!isNaN(v)) {
								sum += v;
								if (max === undefined) {max = min = v;}
								min = Math.min(min, v);
								max = Math.max(max, v);
								dlen++;
								//}
							} else if(obj) {
								ret.push( {id:$t.rows[i].id,value:val} );
							} else {
								ret.push( val );
							}
						}
					}
					if(mathopr) {
						switch(mathopr.toLowerCase()){
							case 'sum': ret =sum; break;
							case 'avg': ret = sum/dlen; break;
							case 'count': ret = dlen; break;
							case 'min': ret = min; break;
							case 'max': ret = max; break;
							case 'maxwidth': ret = max;
						}
					}
				}
			}
		});
		return ret;
	},
	clearGridData : function(clearfooter, clearheader) {
		return this.each(function(){
			var $t = this;
			if(!$t.grid) {return;}
			if(typeof clearfooter !== 'boolean') { clearfooter = false; }
			if(typeof clearheader !== 'boolean') { clearheader = false; }
			if($t.p.deepempty) {
				$("#"+$.jgrid.jqID($t.p.id)+" tbody").first().find("tr").slice( 1 ).remove();
			}
			else {
				var trf = $("#"+$.jgrid.jqID($t.p.id)+" tbody").first().find("tr").first()[0];
				$("#"+$.jgrid.jqID($t.p.id)+" tbody").first().empty().append(trf);
			}
			if($t.p.footerrow && clearfooter) { $(".ui-jqgrid-ftable td",$t.grid.sDiv).html("&#160;"); }
			if($t.p.headerrow && clearheader) { $(".ui-jqgrid-hrtable td",$t.grid.hrDiv).html("&#160;"); }
			$t.p.selrow = null; $t.p.selarrrow= []; $t.p.savedRow = [];
			$t.p.records = 0;$t.p.page=1;$t.p.lastpage=0;$t.p.reccount=0;
			$t.p.data = []; $t.p._index = {};
			$t.p.groupingView._locgr = false;
			$t.updatepager(true,false);
		});
	},
	getInd : function(rowid,rc){
		var ret =false,rw;
		this.each(function(){
			rw = $(this).jqGrid('getGridRowById', rowid);
			if(rw) {
				ret = rc===true ? rw: rw.rowIndex;
			}
		});
		return ret;
	},
	bindKeys : function( settings ){
		var o = $.extend({
			onEnter: null,
			onSpace: null,
			onLeftKey: null,
			onRightKey: null,
			onSelectRow : true,
			scrollingRows : true
		},settings || {});
		return this.each(function(){
			var $t = this;
			if( !$('body').is('[role]') ){$('body').attr('role','application');}
			$t.p.scrollrows = o.scrollingRows;
			$($t).on("keydown", function(event){
				var target = $($t).find('tr[tabindex=0]')[0], id, r, mind,
				expanded = $t.p.treeReader.expanded_field;
				//check for arrow keys
				if(target) {
					var previd = $t.p.selrow;
					mind = $t.p._index[$.jgrid.stripPref($t.p.idPrefix, target.id)];
					if(event.keyCode === 37 || event.keyCode === 38 || event.keyCode === 39 || event.keyCode === 40){
						// up key
						if(event.keyCode === 38 ){
							r = target.previousSibling;
							id = "";
							if(r && $(r).hasClass('jqgrow')) {
								if($(r).is(":hidden")) {
									while(r) {
										r = r.previousSibling;
										if(!$(r).is(":hidden") && $(r).hasClass('jqgrow')) {id = r.id;break;}
									}
								} else {
									id = r.id;
								}
								$($t).jqGrid('setSelection', id, o.onSelectRow, event);
							}
							$($t).triggerHandler("jqGridKeyUp", [id, previd, event]);
							if($.jgrid.isFunction(o.onUpKey)) {
								o.onUpKey.call($t, id, previd, event);
							}
							event.preventDefault();
						}
						//if key is down arrow
						if(event.keyCode === 40){
							r = target.nextSibling;
							id ="";
							if(r && $(r).hasClass('jqgrow')) {
								if($(r).is(":hidden")) {
									while(r) {
										r = r.nextSibling;
										if(!$(r).is(":hidden") && $(r).hasClass('jqgrow') ) {id = r.id;break;}
									}
								} else {
									id = r.id;
								}
								$($t).jqGrid('setSelection', id, o.onSelectRow, event);
							}
							$($t).triggerHandler("jqGridKeyDown", [id, previd, event]);
							if($.jgrid.isFunction(o.onDownKey)) {
								o.onDownKey.call($t, id, previd, event);
							}
							event.preventDefault();
						}
						// left
						if(event.keyCode === 37 ){
							if($t.p.treeGrid && $t.p.data[mind][expanded]) {
								$(target).find("div.treeclick").trigger('click');
							}
							$($t).triggerHandler("jqGridKeyLeft", [$t.p.selrow, event]);
							if($.jgrid.isFunction(o.onLeftKey)) {
								o.onLeftKey.call($t, $t.p.selrow, event);
							}
						}
						// right
						if(event.keyCode === 39 ){
							if($t.p.treeGrid && !$t.p.data[mind][expanded]) {
								$(target).find("div.treeclick").trigger('click');
							}
							$($t).triggerHandler("jqGridKeyRight", [$t.p.selrow, event]);
							if($.jgrid.isFunction(o.onRightKey)) {
								o.onRightKey.call($t, $t.p.selrow, event);
							}
						}
					}
					//check if enter was pressed on a grid or treegrid node
					else if( event.keyCode === 13 ){
						event.preventDefault();
						$($t).triggerHandler("jqGridKeyEnter", [$t.p.selrow, event]);
						if($.jgrid.isFunction(o.onEnter)) {
							o.onEnter.call($t, $t.p.selrow, event);
						}
					} else if(event.keyCode === 32) {
						$($t).triggerHandler("jqGridKeySpace", [$t.p.selrow, event]);
						if($.jgrid.isFunction(o.onSpace)) {
							o.onSpace.call($t, $t.p.selrow, event);
						}
					}
				}
			}).on('click', function(e) {
				if( !$(e.target).is("input, textarea, select") ) {
					$(e.target,$t.rows).closest("tr.jqgrow").focus();
				}
			});
		});
	},
	unbindKeys : function(){
		return this.each(function(){
			$(this).off('keydown');
		});
	},
	getLocalRow : function (rowid) {
		var ret = false, ind;
		this.each(function(){
			if(rowid !== undefined) {
				ind = this.p._index[$.jgrid.stripPref(this.p.idPrefix, rowid)];
				if(ind >= 0 ) {
					ret = this.p.data[ind];
				}
			}
		});
		return ret;
	},
	progressBar : function ( pr ) {
		pr = $.extend({
			htmlcontent : "",
			method : "hide",
			loadtype : "disable"
		}, pr || {});
		return this.each(function(){
			var sh = pr.method==="show" ? true : false,
			loadDiv = $("#load_"+$.jgrid.jqID(this.p.id)),
			offsetParent, top,
			scrollTop = $(window).scrollTop();
			if(pr.htmlcontent !== "") {
				loadDiv.html( pr.htmlcontent );
			}
			switch(pr.loadtype) {
				case "disable":
					break;
				case "enable":
					loadDiv.toggle( sh );
					break;
				case "block":
					$("#lui_"+$.jgrid.jqID(this.p.id)).css(sh ? {top: 0,left:0, height: $("#gbox_" + $.jgrid.jqID(this.p.id) ).height(), width:$("#gbox_" + $.jgrid.jqID(this.p.id)).width(), "z-index":10000, position:"absolute"} : {}).toggle( sh );
					loadDiv.toggle( sh );
					break;
			}
			if (loadDiv.is(':visible')) {
				offsetParent = loadDiv.offsetParent();
				loadDiv.css('top', '');
				if (loadDiv.offset().top < scrollTop) {
					top = Math.min(
						10 + scrollTop - offsetParent.offset().top,
						offsetParent.height() - loadDiv.height()
					);
					loadDiv.css('top', top + 'px');
				}
			}
		});
	},
	getColProp : function(colname){
		var $t = this[0];
		if ( !$t.grid ) { return false; }
		return $.jgrid.getElemByAttrVal($t.p.colModel, 'name', colname, false);
	},
	setColProp : function(colname, obj){
		//do not set width will not work
		return this.each(function(){
			if ( this.grid ) {
				if ( $.isPlainObject( obj ) ) {
					var i = $.jgrid.getElemByAttrVal(this.p.colModel, 'name', colname, true);
					if ( i >= 0 ) {
						$.extend(true, this.p.colModel[i],obj);
					}
				}
			}
		});
	},
	sortGrid : function(colname,reload, sor){
		return this.each(function(){
			var $t=this,idx=-1,i, sobj=false;
			if ( !$t.grid ) { return;}
			if ( !colname ) { colname = $t.p.sortname; }
			for ( i=0;i<$t.p.colModel.length;i++ ) {
				if ( $t.p.colModel[i].index === colname || $t.p.colModel[i].name === colname ) {
					idx = i;
					if($t.p.frozenColumns === true && $t.p.colModel[i].frozen === true) {
						sobj = $t.grid.fhDiv.find("#" + $t.p.id + "_" + colname);
					}
					break;
				}
			}
			if ( idx !== -1 ){
				var sort = $t.p.colModel[idx].sortable;
				if(!sobj) {
					sobj = $t.grid.headers[idx].el;
				}
				if ( typeof sort !== 'boolean' ) { sort =  true; }
				if ( typeof reload !=='boolean' ) { reload = false; }
				if ( sort ) { $t.sortData("jqgh_"+$t.p.id+"_" + colname, idx, reload, sor, sobj); }
			}
		});
	},
	setGridState : function(state) {
		return this.each(function(){
			if ( !this.grid ) {return;}
			var $t = this,
			open = $(this).jqGrid('getStyleUI',this.p.styleUI+".base",'icon_caption_open', true),
			close = $(this).jqGrid('getStyleUI',this.p.styleUI+".base",'icon_caption_close', true);

			if(state === 'hidden'){
				$(".ui-jqgrid-bdiv, .ui-jqgrid-hdiv","#gview_"+$.jgrid.jqID($t.p.id)).slideUp("fast");
				if($t.p.pager) {$($t.p.pager).slideUp("fast");}
				if($t.p.toppager) {$($t.p.toppager).slideUp("fast");}
				if($t.p.toolbar[0]===true) {
					if( $t.p.toolbar[1] === 'both') {
						$($t.grid.ubDiv).slideUp("fast");
					}
					$($t.grid.uDiv).slideUp("fast");
				}
				if($t.p.footerrow) { $(".ui-jqgrid-sdiv","#gbox_"+$.jgrid.jqID($t.p.id)).slideUp("fast"); }
				if($t.p.headerrow) { $(".ui-jqgrid-hrdiv","#gbox_"+$.jgrid.jqID($t.p.id)).slideUp("fast"); }
				$(".ui-jqgrid-headlink",$t.grid.cDiv).removeClass( open ).addClass( close );
				$t.p.gridstate = 'hidden';
			} else if(state === 'visible') {
				$(".ui-jqgrid-hdiv, .ui-jqgrid-bdiv","#gview_"+$.jgrid.jqID($t.p.id)).slideDown("fast");
				if($t.p.pager) {$($t.p.pager).slideDown("fast");}
				if($t.p.toppager) {$($t.p.toppager).slideDown("fast");}
				if($t.p.toolbar[0]===true) {
					if( $t.p.toolbar[1] === 'both') {
						$($t.grid.ubDiv).slideDown("fast");
					}
					$($t.grid.uDiv).slideDown("fast");
				}
				if($t.p.footerrow) { $(".ui-jqgrid-sdiv","#gbox_"+$.jgrid.jqID($t.p.id)).slideDown("fast"); }
				if($t.p.headerrow) { $(".ui-jqgrid-hrdiv","#gbox_"+$.jgrid.jqID($t.p.id)).slideDown("fast"); }
				$(".ui-jqgrid-headlink",$t.grid.cDiv).removeClass( close ).addClass( open );
				$t.p.gridstate = 'visible';
			}

		});
	},
	setFrozenColumns : function () {
		return this.each(function() {
			if ( !this.grid ) {return;}
			var $t = this, cm = $t.p.colModel,i=0, len = cm.length,
			hd= $($t).jqGrid('getStyleUI',$t.p.styleUI+".base",'headerDiv', true, 'ui-jqgrid-hdiv'),
			hover = $($t).jqGrid('getStyleUI',$t.p.styleUI+".common",'hover', true),
			borderbox = $("#gbox_"+$.jgrid.jqID($t.p.id)).css("box-sizing") === 'border-box',
			pixelfix = borderbox ? 1 : 0;
			// TODO treeGrid and grouping  Support
			if($t.p.subGrid === true ||
				$t.p.treeGrid === true ||
				$t.p.cellEdit === true ||
				/*$t.p.sortable ||*/ 
				$t.p.scroll ||
				$t.p.frozenColumns
				/* $t.p.grouping === true*/)
			{
				return;
			}
			// get the max index of frozen col
			$t.p.frozenColCount = -1;
			while(i<len)
			{
				// from left, no breaking frozen
				if(cm[i].frozen === true)
				{
					$t.p.frozenColCount = i;
				} else {
					break;
				}
				i++;
			}
			if( $t.p.frozenColCount >= 0) {
				var divhth =  $(".ui-jqgrid-hdiv","#gview_"+$.jgrid.jqID($t.p.id)).height(),
				bpos = $(".ui-jqgrid-bdiv","#gview_"+$.jgrid.jqID($t.p.id)).position(),
				bhpos = $(".ui-jqgrid-hdiv","#gview_"+$.jgrid.jqID($t.p.id)).position();
				
				$t.grid.fhDiv = $('<div style="position:absolute;' + ($t.p.direction === "rtl" ? 'right:0px;' : 'left:0px;') + 'top:'+bhpos.top+'px;height:'+(divhth - pixelfix)+'px;" class="frozen-div ' + hd +'"></div>');
				$t.grid.fbDiv = $('<div style="position:absolute;' + ($t.p.direction === "rtl" ? 'right:0px;' : 'left:0px;') + 'top:'+ bpos.top +'px;overflow-y:hidden" class="frozen-bdiv ui-jqgrid-bdiv"></div>');
				$("#gview_"+$.jgrid.jqID($t.p.id)).append($t.grid.fhDiv);
				var htbl = $(".ui-jqgrid-htable","#gview_"+$.jgrid.jqID($t.p.id)).clone(true),
				fthh = null;
				// groupheader support - only if useColSpanstyle is false
				$(htbl).width(1);
				$($t.grid.fhDiv).append(htbl);
				if( $($t).jqGrid('isGroupHeaderOn') )  {
					fthh = $("tr.jqg-third-row-header", $t.grid.hDiv).height();
					$("tr.jqg-first-row-header, tr.jqg-third-row-header", htbl).each(function(){
						$("th", this).slice( $t.p.frozenColCount + 1 ).remove();
					});
					var swapfroz = -1, fdel = -1, cs, rs;
					$("tr.jqg-second-row-header th", htbl).each(function(){
						cs= parseInt($(this).attr("colspan"),10);
						rs= parseInt($(this).attr("rowspan"),10);
						if(rs) {
							swapfroz++;
							fdel++;
						}
						if(cs) {
							swapfroz = swapfroz+cs;
							fdel++;
						}
						if(swapfroz === $t.p.frozenColCount) {
							fdel = $t.p.frozenColCount;
							return false;
						}
					});
					if(swapfroz !== $t.p.frozenColCount) {
						fdel = $t.p.frozenColCount;
					}
					$("tr.jqg-second-row-header", htbl).each(function(){
						$("th", this).slice( fdel + 1 ).remove();
					});
					var testws = $("tr.jqg-second-row-header th", htbl).filter( function() { 
						return $(this).css("display") !== "none"; 
					}).first();
					if($.jgrid.type(testws) === 'object' && testws.length && testws.css("visibility") !== 'hidden' && $.jgrid.trim(testws[0].outerText) === "") {
						testws.html('&nbsp;');
					}
					testws = $("tr.jqg-third-row-header th", htbl).filter( function() { return $(this).css("display") !== "none"; }).first();
					if($.jgrid.type(testws) === 'object' && testws.length && testws.css("visibility") !== 'hidden' && $.jgrid.trim(testws[0].outerText) === "") {
						$("div",testws).prepend('&nbsp;');
					}
				} else {
					var maxdh=[];
					$("#gview_"+$.jgrid.jqID($t.p.id) +" .ui-jqgrid-htable > thead >tr").each(function(i,n){
						maxdh.push(parseInt($(this).height(),10));
					});
					$("thead >tr",htbl).each(function(){
						$("th", this).slice( $t.p.frozenColCount + 1 ).remove();
					});
					$("thead >tr",htbl).each(function(i){
						if(i===0) {
							maxdh[i] -=1;
						}
						$(this).height(maxdh[i]);
					});
				}
				//if( fthh ) {
					//$("tr.jqg-third-row-header th", htbl).eq(0).height(fthh);
				//}
				//$(htbl).width(1);
				if(!$.jgrid.msie()) {
					$(htbl).css("height","100%");
				}
				// resizing stuff
				$($t.grid.fhDiv)//.append(htbl)
				.mousemove(function (e) {
					if($t.grid.resizing){ $t.grid.dragMove(e);return false; }
				});
				if ($t.p.sortable && $.fn.sortable) {
					// disable sortable with mouse on frozen columns
					$($t.grid.fhDiv).find("tr.ui-jqgrid-labels th").addClass("sortable-disabled");
				}
				if($t.p.headerrow) {
					$t.grid.fhrDiv = $('<div style="position:absolute;' + ($t.p.direction === "rtl" ? 'right:0px;' : 'left:0px;') + 'top:0px;" class="frozen-hrdiv ui-jqgrid-hrdiv "></div>');
					$("#gview_"+$.jgrid.jqID($t.p.id)).append($t.grid.fhrDiv);
				}				
				if($t.p.footerrow) {
					$t.grid.fsDiv = $('<div style="position:absolute;' + ($t.p.direction === "rtl" ? 'right:0px;' : 'left:0px;') + 'top:0px;" class="frozen-sdiv ui-jqgrid-sdiv"></div>');
					$("#gview_"+$.jgrid.jqID($t.p.id)).append($t.grid.fsDiv);
				}
				// data stuff
				//TODO support for setRowData
				$("#gview_"+$.jgrid.jqID($t.p.id)).append($t.grid.fbDiv);

				$($t.grid.fbDiv).on('mousewheel DOMMouseScroll', function (e) {
					$t.grid.bDiv.scrollTop += 
						e.type === "mousewheel" ?
							-e.originalEvent.wheelDelta / 10 :
							e.originalEvent.detail * 6;
				});

				if($t.p.hoverrows === true) {
					$("#"+$.jgrid.jqID($t.p.id)).off('mouseover mouseout');
				}
				//var hasscroll;
				$($t).on('jqGridAfterGridComplete.setFrozenColumns', function () {
					$("#"+$.jgrid.jqID($t.p.id)+"_frozen").remove();
					
				   // hasscroll = parseInt($($t.grid.bDiv)[0].scrollWidth,10) > parseInt($($t.grid.bDiv)[0].clientWidth,10);
					$($t.grid.fbDiv).height( $($t.grid.bDiv)[0].clientHeight ); //- (hasscroll ? 0 : $t.p.scrollOffset-3));
					// find max height
					var mh = [];
					$("#"+$.jgrid.jqID($t.p.id) + " tr[role=row].jqgrow").each(function(){
						mh.push( $(this).height() );
					});

					var btbl = $("#"+$.jgrid.jqID($t.p.id)).clone(true);
					$("tr[role=row]",btbl).each(function(){
						$("td[role=gridcell]", this).slice( $t.p.frozenColCount + 1).remove();
					});

					$(btbl).width(1).attr("id",$t.p.id+"_frozen");
					$($t.grid.fbDiv).append(btbl);
					// set the height
					$("tr[role=row].jqgrow",btbl).each(function(i, n){
						$(this).height( mh[i] );
						if( Math.abs($(this).height() - mh[i]) >= 0.3  ) {
							var tt = $("td:visible", this).first();
							tt.height(mh[i] - Math.round(parseFloat(tt.css("border-bottom-width")) ));
						}
					});
					if($t.rows[1] && $t.rows[1].id === 'norecs') {
						$("#norecs td", btbl).html("");
					}
					$($t.grid.fbDiv)[0].scrollTop = $($t.grid.bDiv)[0].scrollTop;
					if($t.p.hoverrows === true) {
						$("tr.jqgrow", btbl).hover(
							function(){ 
								$(this).addClass( hover ); 
								$("#"+$.jgrid.jqID(this.id), "#"+$.jgrid.jqID($t.p.id)).addClass( hover ); 
							},function(){ 
								$(this).removeClass( hover ); 
								$("#"+$.jgrid.jqID(this.id), "#"+$.jgrid.jqID($t.p.id)).removeClass( hover ); 
							}
						);
						$("tr.jqgrow", "#"+$.jgrid.jqID($t.p.id)).hover(
							function(){ 
								$(this).addClass( hover ); 
								$("#"+$.jgrid.jqID(this.id), "#"+$.jgrid.jqID($t.p.id)+"_frozen").addClass( hover );
							
							},
							function(){ 
								$(this).removeClass( hover );
								$("#"+$.jgrid.jqID(this.id), "#"+$.jgrid.jqID($t.p.id)+"_frozen").removeClass( hover ); 
							}
						);
					}
					//btbl=null;
					if($t.p.headerrow) {
						var bhtop = $($t.grid.hrDiv).position();
						$("table",$t.grid.fhrDiv).remove();
						var hrtbl = $(".ui-jqgrid-hrtable","#gview_"+$.jgrid.jqID($t.p.id)).clone(true);
						$("tr",hrtbl).each(function(){
							$("td", this).slice( $t.p.frozenColCount + 1 ).remove();
						});
						$(hrtbl).width(1);
						$($t.grid.fhrDiv).css("top", bhtop.top+"px").append(hrtbl);
					}				
					if($t.p.footerrow) {
						var bttop = $($t.grid.sDiv).position();
						$("table",$t.grid.fsDiv).remove();
						var ftbl = $(".ui-jqgrid-ftable","#gview_"+$.jgrid.jqID($t.p.id)).clone(true);
						$("tr",ftbl).each(function(){
							$("td", this).slice( $t.p.frozenColCount + 1 ).remove();
						});
						$(ftbl).width(1);
						$($t.grid.fsDiv).css("top", bttop.top+"px").append(ftbl);
					}
				});
				if(!$t.grid.hDiv.loading) {
					$($t).triggerHandler("jqGridAfterGridComplete.setFrozenColumns");
				}
				$t.p.frozenColumns = true;
				$($t).triggerHandler("onFrozenColumnsCall");
			}
		});
	},
	destroyFrozenColumns :  function() {
		return this.each(function() {
			if ( !this.grid ) {return;}
			if(this.p.frozenColumns === true) {
				var $t = this,
				hover = $($t).jqGrid('getStyleUI',$t.p.styleUI+".common",'hover', true);
				$($t.grid.fhDiv).remove();
				$($t.grid.fbDiv).remove();
				$t.grid.fhDiv = null; $t.grid.fbDiv=null;
				if($t.p.footerrow) {
					$($t.grid.fsDiv).remove();
					$t.grid.fsDiv = null;
				}
				if($t.p.headerrow) {
					$($t.grid.fhrDiv).remove();
					$t.grid.fhrDiv = null;
				}
				$(this).off('.setFrozenColumns');
				if($t.p.hoverrows === true) {
					var ptr;
					$("#"+$.jgrid.jqID($t.p.id)).on({
						'mouseover': function(e) {
							ptr = $(e.target).closest("tr.jqgrow");
							if($(ptr).attr("class") !== "ui-subgrid") {
								$(ptr).addClass( hover );
							}
						},
						'mouseout' : function(e) {
							ptr = $(e.target).closest("tr.jqgrow");
							$(ptr).removeClass( hover );
						}
					});
				}
				this.p.frozenColumns = false;
				this.p.frozenColCount = -1;
			}
		});
	},
	resizeColumn : function ( iCol, newWidth, forceresize, setfrozen ) {
		return this.each(function() {
			var tgrid = this.grid, pr = this.p,
				cm = pr.colModel, i, cmLen = cm.length, diff, diffnv;

			if( typeof forceresize !== 'boolean' ) {
				forceresize = false;
			}
			if( typeof setfrozen !== 'boolean' ) {
				setfrozen = true;
			}
			if(typeof iCol === "string" ) {
				for(i = 0; i < cmLen; i++) {
					if(cm[i].name === iCol) {
						iCol = i;
						break;
					}
				}
			} else {
				iCol = parseInt( iCol, 10 );
			}
			if( !cm[iCol].resizable && !forceresize || cm[iCol].hidden) {
				return;
			}
			newWidth = parseFloat( newWidth );
			// filters
			if(typeof iCol !== "number" || iCol < 0 || iCol > cm.length-1 || typeof newWidth !== "number" ) {
				return;
			}

			if( newWidth < pr.minColWidth ) { 
				newWidth = pr.minColWidth;
			}

			if( pr.forceFit ) {
				pr.nv = 0;
				for (i = iCol+1; i < cmLen; i++){
					if(cm[i].hidden !== true ) {
						pr.nv = i - iCol;
						break;
					}
				}
			}
			// use resize stuff
			tgrid.resizing = {idx : iCol };
			diff = newWidth - tgrid.headers[iCol].width;
			if(pr.forceFit) {
				diffnv = tgrid.headers[ iCol + pr.nv].width - diff;
				if(diffnv < pr.minColWidth) { return; }
				tgrid.headers[ iCol + pr.nv].newWidth = tgrid.headers[ iCol + pr.nv].width - diff;
			}
			tgrid.newWidth = pr.tblwidth + diff;
			tgrid.headers[ iCol ].newWidth = newWidth;
			tgrid.dragEnd( false, setfrozen );
		});
	},
	getStyleUI : function( styleui, classui, notclasstag, gridclass) {
		var ret = "", q = "";
		try {
			var stylemod = styleui.split(".");
			if(!notclasstag) {
				ret = "class=";
				q = "\"";
			}
			if( $.jgrid.isNull(gridclass) ) {
				gridclass = "";
			}
			switch(stylemod.length) {
				case 1 :
					ret += q + $.jgrid.trim(gridclass + " " + $.jgrid.styleUI[stylemod[0]][classui] + q);
					break;
				case 2 :
					ret += q + $.jgrid.trim(gridclass + " " + $.jgrid.styleUI[stylemod[0]][stylemod[1]][classui] + q);
			}
		} catch (cls) {
			ret = "";
		}
		return ret;
	},
	resizeGrid : function (timeout, width, height, refreshfrozen) {
		return this.each(function(){
			var $t = this, frozen = false;
			if(timeout === undefined) {
				timeout = 500;
			}
			if( typeof width !== 'boolean' ) {
				width = true;
			}
			if( typeof height !== 'boolean' ) {
				height = true;
			}
			if( typeof refreshfrozen !== 'boolean' ) {
				refreshfrozen = true;
			}

			setTimeout(function(){
				try {
					if($t.p.frozenColumns && refreshfrozen) {
						$("#"+$.jgrid.jqID($t.p.id)).jqGrid("destroyFrozenColumns");
						frozen = true;
					}
					if(width) {
						var winwidth = $(window).width(),
						parentwidth = $("#gbox_"+$.jgrid.jqID($t.p.id)).parent().width(),
						ww = $t.p.width;
						if( (winwidth-parentwidth) > 3 ) {
							ww = parentwidth;
						} else {
							ww = winwidth;
						}
						if( $($t.grid.bDiv).css("max-height") && ['100%','auto'].includes($t.p.height) && $($t.grid.bDiv).height() < $($t).height())  {
							$("#"+$.jgrid.jqID($t.p.id)).jqGrid('setGridWidth', ww+$t.p.scrollOffset-2, false, false );
						} else {
							$("#"+$.jgrid.jqID($t.p.id)).jqGrid('setGridWidth', ww, $t.p.shrinkToFit, false );
						}
					}

					if( !($t.p.height === 'auto' || $t.p.height === '100%') && height) {
						var wh = $t.p.height,
						bstw = $t.p.styleUI.search('Bootstrap') !== -1 && !isNaN($t.p.height) ? 2 : 0,
						winheight = $(window).height(),
						parentheight = $("#gbox_"+$.jgrid.jqID($t.p.id)).parent().height();
						
						if( (winheight-parentheight) > 3 ) {
							wh = parentheight;
						} else {
							wh = winheight;
						}
						$("#"+$.jgrid.jqID($t.p.id)).jqGrid('setGridHeight', wh - bstw, true, false);
					}
					if($t.p.frozenRows) {
						$($t).trigger('jqGridAfterGridComplete.setFrozenRows');
					}		
					if(frozen) {
						$("#"+$.jgrid.jqID($t.p.id)).jqGrid("setFrozenColumns");
					}
				} catch(e){}
			}, timeout);
		});
	},
	colMenuAdd : function (colname, options ) {
		var	currstyle = this[0].p.styleUI,
			styles = $.jgrid.styleUI[currstyle].colmenu;
		options = $.extend({
			title: 'Item',
			icon : styles.icon_new_item,
			funcname: null,
			position : "last",
			closeOnRun : true,
			exclude : "",
			id : null, 
			items : []
		}, options ||{});
		return this.each(function(){
			options.colname = colname === 'all' ? "_all_" : colname;
			var $t = this;
			options.id = $.jgrid.isNull(options.id, true) ? $.jgrid.randId(): options.id;
			$t.p.colMenuCustom[options.id] = options;
		});
	},
	colMenuDelete : function ( id ) {
		return this.each(function(){
			if(this.p.colMenuCustom.hasOwnProperty( id )) {
				delete this.p.colMenuCustom[ id ];
			}
		});
	},
	menubarAdd : function( items ) {
		var	currstyle = this[0].p.styleUI,
			styles = $.jgrid.styleUI[currstyle].common, item, str;

		return this.each(function(){
			var $t = this;
			if( Array.isArray(items)) {
				for(var i = 0; i < items.length; i++) {
					item = items[i];
					// icon, title, position, id, click
					if(!item.id ) {
						item.id = $.jgrid.randId();
					}
					var ico = '';
					if( item.icon) {
						ico = '<span class="'+styles.icon_base+' ' + item.icon+'"></span>';
					}
					if(!item.position) {
						item.position = 'last';
					}
					if(!item.closeoncall) {
						item.closeoncall = true;
					}
					if(item.divider) {
						str = '<li class="ui-menu-item divider" role="separator"></li>';
						item.cick = null;
					} else {
					str = '<li class="ui-menu-item" role="presentation"><a id="'+ item.id+'" class="g-menu-item" tabindex="0" role="menuitem" ><table class="ui-common-table"><tr><td class="menu_icon">'+ico+'</td><td class="menu_text">'+item.title+'</td></tr></table></a></li>';
					}
					if(item.position === 'last') {
						$("#"+this.p.id+"_menubar").append(str);
					} else {
						$("#"+this.p.id+"_menubar").prepend(str);
					}
				}
			}
			$("li a", "#"+this.p.id+"_menubar").each(function(i,n){
				$(items).each(function(j,f){
					if(f.id === n.id && $.jgrid.isFunction(f.click)) {
						$(n).on('click', function(e){
							f.click.call($t, e);
						});
						return false;
					}
				});
				$(this).hover(
					function(e){
						$(this).addClass(styles.hover);
						e.stopPropagation();
					},
					function(e){ $(this).removeClass(styles.hover);}
				);
			});
		});
	},
	menubarDelete : function( itemid ) {
		return this.each(function(){
			$("#"+itemid, "#"+this.p.id+"_menubar").remove();
		});
	},
	addColSearchMenu :  function() {
		return this.each(function(){
			var $t = this;
			$($t).colMenuAdd('sc',{
				title: 'Reset',
				position : "first",
				id :"reset",
				funcname : function() {
					$("input[id^='jqs_']", "#"+this.p.id ).each(function(i){
						$(this).val("");
					});
					$(this)[0].p._results ={};
					$(this).jqGrid('showCol', this.p._avc);
				}
			});
			$($t).colMenuAdd('sc',{
				separator : true,
				id:"groupOp"
			});
			$($t).colMenuAdd('sc',{
				separator : true,
				id:"operOp"
			});
			$($t).colMenuAdd('sc',{
				//title: 'Close',
				separator : true,
				id :"close",
				funcname : function() {
					return true;
				}
			});
			$($t).on("jqGridcolMenuBeforeProcess.custom", function(t, p){
				if(p.module === 'custom' && p.column === 'sc') {
					var regional = $.jgrid.getRegional(this, "search"),
						tstl, i, selected,
						sopt = this.p.searchColOptions,
						getstyle = $.jgrid.getMethod("getStyleUI"),
						stylemodule = this.p.styleUI + ".base";
					if(p.action.id === "reset") {
						p.action.title = regional.Reset || 'Reset';
						p.action.icon = getstyle(this.p.styleUI + ".colmenu", 'icon_reset', true, '');
					}
					if(p.action.id === "close") {
						p.action.title = regional.Close || 'Close';
						p.action.icon = getstyle(this.p.styleUI + ".colmenu", 'icon_close', true, '');
					}
					if(p.action.id === "groupOp") {
						tstl = getstyle(stylemodule, 'searchSelect', false, 'search-col-input');
						p.action.title = ""+(regional.Operand || "Operand: ")+"";
						p.action.title +='<select data-grid-id='+this.p.id+' id="opselect"  '+ tstl+'>';
						tstl = getstyle(this.p.styleUI + ".colmenu", 'icon_group_op', true, ''); 
						p.action.icon = tstl;
						for (i = 0;i< regional.groupOps.length; i++) {
							selected = sopt.searchOp === regional.groupOps[i].op ? "selected" : "";
							p.action.title += "<option value=\"" + regional.groupOps[i].op +"\" " + selected+">"+regional.groupOps[i].text+"</option>";
						}
						p.action.title += "</select>";
						setTimeout(function() {
							$("#opselect").on('change', function(){
								var gid =$("#"+ $(this).attr('data-grid-id'))[0];
								gid.p.searchColOptions.searchOp = $(this).val();
								$.jgrid.myfunc(gid.p.id);
								//$("#column_menu").remove();
							});
						}, 200);
					}
					if(p.action.id === "operOp") {
						tstl = getstyle(stylemodule, 'searchSelect', false, 'search-col-input');
						p.action.title = regional.Operation || "Oper : ";
						p.action.title += '<select data-grid-id='+this.p.id+' id="selectoper"  '+ tstl+'>';
						tstl = getstyle(this.p.styleUI + ".colmenu", 'icon_oper_op', true, ''); 
						p.action.icon = tstl;
						for (i = 0;i <  regional.odata.length; i++) {
							selected = sopt.operand === regional.odata[i].oper ? "selected" : "";
							if(sopt.aOperands.includes( regional.odata[i].oper )) {
								p.action.title += "<option value=\"" + regional.odata[i].oper +"\" " + selected+">"+regional.odata[i].text+"</option>";
							}
						}
						p.action.title += "</select>";
						setTimeout(function() {
							$("#selectoper").on('change', function(){
								var gid =$("#"+ $(this).attr('data-grid-id'))[0];
								gid.p.searchColOptions.operand = $(this).val();
								$.jgrid.myfunc(gid.p.id);
								//$("#column_menu").remove();
							});
						}, 200);
					}
				}
			});
		});
	},
	disableColMenu : function( colname ) {
		return this.each(function (){
			$(this.grid.hDiv).find("tr #jqgh_"+this.p.id+"_"+colname+" > .colmenu").css("display","none");
		});
	},
	enableColMenu : function( colname ) {
		return this.each(function (){
			$(this.grid.hDiv).find("tr #jqgh_"+this.p.id+"_"+colname+" > .colmenu").css("display","inline");
		});
	}
});

//module begin
$.jgrid.extend({
	editCell : function (iRow,iCol, ed, event, excel){
		return this.each(function (){
			var $t = this, nm, tmp,cc, cm,
			highlight = $(this).jqGrid('getStyleUI',$t.p.styleUI+'.common','highlight', true),
			disabled = $(this).jqGrid('getStyleUI',$t.p.styleUI+'.common','disabled', true),			
			hover = !$t.p.ariaBody ? $(this).jqGrid('getStyleUI',$t.p.styleUI+'.common','hover', true) : "",
			inpclass = $(this).jqGrid('getStyleUI',$t.p.styleUI+".celledit",'inputClass', true),
			selclass = $(this).jqGrid('getStyleUI',$t.p.styleUI+".celledit",'selectClass', true);

			if (!$t.grid || $t.p.cellEdit !== true) {return;}
			if ( $($t.rows[iRow]).hasClass(disabled) ) {return;}
			iCol = parseInt(iCol,10);
			// select the row that can be used for other methods
			$t.p.selrow = $t.rows[iRow].id;
			if (!$t.p.knv && !$t.p.ariaBody) {$($t).jqGrid("GridNav");}
			// check to see if we have already edited cell
			if ($t.p.savedRow.length>0) {
				// prevent second click on that field and enable selects
				if (ed===true ) {
					if(iRow == $t.p.iRow && iCol == $t.p.iCol){
						return;
					}
				}
				// save the cell
				$($t).jqGrid("saveCell",$t.p.savedRow[0].id,$t.p.savedRow[0].ic);
			} else {
				window.setTimeout(function () { $("#"+$.jgrid.jqID($t.p.knv)).attr("tabindex","-1").focus();},1);
			}
			cm = $t.p.colModel[iCol];
			nm = cm.name;
			if (nm==='subgrid' || nm==='cb' || nm==='rn' || nm==='sc') {return;}
			try {
				cc = $($t.rows[iRow].cells[iCol]);
			} catch(e) {
				cc = $("td",$t.rows[iRow]).eq( iCol );
			}
			if(parseInt($t.p.iCol,10)>=0  && parseInt($t.p.iRow,10)>=0 && $t.p.iRowId !== undefined) {
				var therow = $($t).jqGrid('getGridRowById', $t.p.iRowId);
				//$("td:eq("+$t.p.iCol+")",$t.rows[$t.p.iRow]).removeClass("edit-cell " + highlight);
				$(therow).removeClass("selected-row " + hover).find("td").eq( $t.p.iCol ).removeClass("edit-cell " + highlight);
			}
			cc.addClass("edit-cell " + highlight);
			$($t.rows[iRow]).addClass("selected-row " + hover);
			if (cm.editable===true && ed===true && !cc.hasClass("not-editable-cell") && (!$.jgrid.isFunction($t.p.isCellEditable) || $t.p.isCellEditable.call($t,nm,iRow,iCol))) {
				try {
					tmp =  $.unformat.call($t,cc,{rowId: $t.rows[iRow].id, colModel:cm},iCol);
				} catch (_) {
					tmp = ( cm.edittype && cm.edittype === 'textarea' ) ? cc.text() : cc.html();
				}
				if($t.p.autoencode) { tmp = $.jgrid.htmlDecode(tmp); }
				if (!cm.edittype) {cm.edittype = "text";}
				$t.p.savedRow.push({id:iRow, ic:iCol, name:nm, v:tmp, rowId: $t.rows[iRow].id });
				try {
					if(tmp === "&nbsp;" || tmp === "&#160;" || (tmp.length===1 && tmp.charCodeAt(0)===160) ) {tmp='';}
				} catch (etmp){}
				if($.jgrid.isFunction($t.p.formatCell)) {
					var tmp2 = $t.p.formatCell.call($t, $t.rows[iRow].id,nm,tmp,iRow,iCol);
					if(tmp2 !== undefined ) {tmp = tmp2;}
				}
				$($t).triggerHandler("jqGridBeforeEditCell", [$t.rows[iRow].id, nm, tmp, iRow, iCol]);
				if ($.jgrid.isFunction($t.p.beforeEditCell)) {
					$t.p.beforeEditCell.call($t, $t.rows[iRow].id,nm,tmp,iRow,iCol);
				}
				var opt = $.extend({}, cm.editoptions || {} ,{id:iRow+"_"+nm,name:nm,rowId: $t.rows[iRow].id, oper:'edit', module : 'cell'});
				if (excel) {
					tmp = event.key;
				}
				var elc = $.jgrid.createEl.call($t,cm.edittype,opt,tmp,true,$.extend({},$.jgrid.ajaxOptions,$t.p.ajaxSelectOptions || {}));
				if( $.inArray(cm.edittype, ['text','textarea','password']) > -1) {
					$(elc).addClass(inpclass);
				} else if(cm.edittype === 'select') {
					$(elc).addClass(selclass);
				}

				cc.html("").append(elc).attr("tabindex","0");
				$.jgrid.bindEv.call($t, elc, opt);
				window.setTimeout(function () { $(elc).focus();},1);
				$("input, select, textarea",cc).on("keydown",function(e) {
					var key = e.key;
					if (e.keyCode === 27) {
						if($("input.hasDatepicker",cc).length >0) {
							if( $(".ui-datepicker").is(":hidden") )  { $($t).jqGrid("restoreCell",iRow,iCol); }
							else { $("input.hasDatepicker",cc).datepicker('hide'); }
						} else {
							$($t).jqGrid("restoreCell",iRow,iCol);
						}
					} //ESC
					if (e.keyCode === 13 && e.altKey && this.nodeName === "TEXTAREA") {
						this.value = this.value + "\r";
						e.preventDefault();
						return true;
					}
					if (e.keyCode === 13 && !e.shiftKey) {
						e.preventDefault();
						$($t).jqGrid("saveCell",iRow,iCol);
						if(iRow < $t.rows.length-1 && excel) {
							$($t).jqGrid('focusBodyCell', iRow + 1 , iCol);
						} else {
							//setTimeout(function(){ $($t).jqGrid('focusBodyCell', iRow , iCol);},100);
						}
						// Prevent default action
						return false;
					} //Enter
					if (e.keyCode === 9 && !excel)  {
						if(!$t.grid.hDiv.loading ) {
							if (e.shiftKey) { //Shift TAb
								if($t.p.ariaBody) {
									$($t).jqGrid("saveCell", iRow , iCol);
									if(iCol >1 ) {
										$($t).jqGrid('focusBodyCell', iRow , iCol -1);
									}
								} else {
									var succ2 = $($t).jqGrid("prevCell", iRow, iCol, e);
									if(!succ2 && $t.p.editNextRowCell) {
										if(iRow-1 > 0 && $t.rows[iRow-1]) {
											iRow--;
											$($t).jqGrid("prevCell", iRow, $t.p.colModel.length, e);
										}
									}
								}
							} else {
								if($t.p.ariaBody) {
									$($t).jqGrid("saveCell", iRow , iCol);
									if(iCol < $t.p.colModel.length -1) {
										$($t).jqGrid('focusBodyCell', iRow , iCol + 1);
									}
								} else {
									var succ = $($t).jqGrid("nextCell", iRow, iCol, e);
									if(!succ && $t.p.editNextRowCell) {
										if($t.rows[iRow+1]) {
											iRow++;
											$($t).jqGrid("nextCell", iRow, 0, e);
										}
									}
								} //Tab
							}
						} else {
							return false;
						}
					}
					if(!excel && $t.p.F2key && $t.p.ariaBody && e.key === 'F2') {
						$($t).jqGrid("saveCell", iRow , iCol);
						$($t).jqGrid('focusBodyCell', iRow , iCol);
						$t.p.F2key = false;
					}
					if(excel) {
						if( key === 'ArrowUp') {
							$($t).jqGrid("saveCell", iRow , iCol);
							if(iRow >1 ) {
								$($t).jqGrid('focusBodyCell', iRow - 1 , iCol);
							}
						}
						if( key === 'ArrowDown' ) {
							$($t).jqGrid("saveCell", iRow , iCol);
							if(iRow < $t.p.rows.length-1 ) {
								$($t).jqGrid('focusBodyCell', iRow + 1 , iCol);
							}
						}
						if( key === 'ArrowLeft') {
							$($t).jqGrid("saveCell", iRow , iCol);
							if(iCol >1 ) {
								$($t).jqGrid('focusBodyCell', iRow , iCol -1);
							}
						}
						if( key === 'ArrowRight' ) {
							$($t).jqGrid("saveCell", iRow , iCol);
							if(iCol < $t.p.colModel.length -1) {
								$($t).jqGrid('focusBodyCell', iRow , iCol + 1);
							}
						}
						if (e.keyCode === 9)  {
							$($t).jqGrid("saveCell", iRow , iCol);
							if (e.shiftKey) {
								if(iCol >1 ) {
									$($t).jqGrid('focusBodyCell', iRow , iCol -1);
								}
							} else {
								if(iCol < $t.p.colModel.length -1) {
									$($t).jqGrid('focusBodyCell', iRow , iCol + 1);
								}
							}
						}
					}
					e.stopPropagation();
				});
				$($t).triggerHandler("jqGridAfterEditCell", [$t.rows[iRow].id, nm, tmp, iRow, iCol]);
				if ($.jgrid.isFunction($t.p.afterEditCell)) {
					$t.p.afterEditCell.call($t, $t.rows[iRow].id,nm,tmp,iRow,iCol);
				}
			} else {
				tmp = cc.html().replace(/\&#160\;/ig,'');
				$($t).triggerHandler("jqGridCellSelect", [$t.rows[iRow].id, iCol, tmp, event]);
				if ($.jgrid.isFunction($t.p.onCellSelect)) {
					$t.p.onCellSelect.call($t, $t.rows[iRow].id, iCol, tmp, event);
				}
			}
			$t.p.iCol = iCol; $t.p.iRow = iRow; $t.p.iRowId = $t.rows[iRow].id;
		});
	},
	saveCell : function (iRow, iCol, over_value){
		return this.each(function(){
			var $t= this, cm = $t.p.colModel[iCol], nm = cm.name, 
				trow = $($t).jqGrid("getGridRowById", $t.rows[iRow].id),
				cc = $('td', trow).eq( iCol ), tmp;
			if(over_value !== undefined ) {
				tmp = $.unformat.call($t, cc, {rowId: $t.rows[iRow].id, colModel:cm}, iCol);
				$t.p.savedRow.push( { id:iRow, ic:iCol, name:nm, v: tmp, rowId: $t.rows[iRow].id } );
				$t.p.savedValues = {oldvalue: tmp, newvalue: over_value, indexRow : iRow};
			}
			var fr = $t.p.savedRow.length >= 1 ? 0 : null,
			errors = $.jgrid.getRegional(this, 'errors'),
			edit =$.jgrid.getRegional(this, 'edit');
			if (!$t.grid || $t.p.cellEdit !== true) {return;}
			if(fr !== null) {
				var nmjq = $.jgrid.jqID(nm), v, v2,
				p = $(cc).offset();

				if( over_value === undefined ) {
				switch (cm.edittype) {
					case "select":
						if(!cm.editoptions.multiple) {
							v = $("#"+iRow+"_"+nmjq+" option:selected", trow ).val();
							v2 = $("#"+iRow+"_"+nmjq+" option:selected", trow).text();
						} else {
							var sel = $("#"+iRow+"_"+nmjq, trow), selectedText = [];
							v = $(sel).val();
							if(v) { v.join(",");} else { v=""; }
							$("option:selected",sel).each(
								function(i,selected){
									selectedText[i] = $(selected).text();
								}
							);
							v2 = selectedText.join(",");
						}
						if(cm.formatter) { v2 = v; }
						break;
					case "checkbox":
						var cbv  = ["Yes","No"];
						if(cm.editoptions && cm.editoptions.value){
							cbv = cm.editoptions.value.split(":");
						}
						v = $("#"+iRow+"_"+nmjq, trow).is(":checked") ? cbv[0] : cbv[1];
						v2=v;
						break;
					case "password":
					case "text":
					case "textarea":
					case "button" :
						v = $("#"+iRow+"_"+nmjq, trow).val();
						v2=v;
						break;
					case 'custom' :
						try {
							if(cm.editoptions && $.jgrid.isFunction(cm.editoptions.custom_value)) {
								v = cm.editoptions.custom_value.call($t, $(".customelement",cc),'get');
								if (v===undefined) { throw "e2";} else { v2=v; }
							} else { throw "e1"; }
						} catch (e) {
							if (e==="e1") { $.jgrid.info_dialog(errors.errcap, "function 'custom_value' " + edit.msg.nodefined, edit.bClose, {styleUI : $t.p.styleUI }); }
							else if (e==="e2") { $.jgrid.info_dialog(errors.errcap, "function 'custom_value' " + edit.msg.novalue, edit.bClose, {styleUI : $t.p.styleUI }); }
							else {$.jgrid.info_dialog(errors.errcap, e.message, edit.bClose, {styleUI : $t.p.styleUI }); }
						}
						break;
				}
				} else  {
					if (cm.editable===true && !cc.hasClass("not-editable-cell") && (!$.jgrid.isFunction($t.p.isCellEditable) || $t.p.isCellEditable.call($t,nm,iRow,iCol))) {
						v = over_value;
						v2 = v;
					} else {
						v = over_value;
						v2 = v;
						$t.p.savedRow.splice(0,1);
						return;
					}
				}
				// The common approach is if nothing changed do not do anything
				if (v2 !== $t.p.savedRow[fr].v){
					var vvv = $($t).triggerHandler("jqGridBeforeSaveCell", [$t.p.savedRow[fr].rowId, nm, v, iRow, iCol]);
					if (vvv) {v = vvv; v2=vvv;}
					if ($.jgrid.isFunction($t.p.beforeSaveCell)) {
						var vv = $t.p.beforeSaveCell.call($t, $t.p.savedRow[fr].rowId, nm, v, iRow, iCol);
						if (vv) {v = vv; v2=vv;}
					}
					var cv = $.jgrid.checkValues.call($t, v, iCol), nuem = false;
					if(cv[0] === true) {
						var addpost = $($t).triggerHandler("jqGridBeforeSubmitCell", [$t.p.savedRow[fr].rowId, nm, v, iRow, iCol]) || {};
						if ($.jgrid.isFunction($t.p.beforeSubmitCell)) {
							addpost = $t.p.beforeSubmitCell.call($t, $t.p.savedRow[fr].rowId, nm, v, iRow, iCol);
							if (!addpost) {addpost={};}
						}
						var retsub = $($t).triggerHandler("jqGridOnSubmitCell", [$t.p.savedRow[fr].rowId, nm, v, iRow, iCol]);
						if(retsub === undefined) {
							retsub = true;
						}
						if($.jgrid.isFunction($t.p.onSubmitCell) ) {
							retsub = $t.p.onSubmitCell($t.p.savedRow[fr].rowId, nm, v, iRow, iCol);
							if( retsub === undefined) {
								retsub = true;
							} 
						}
						if( retsub === false) {
							return;
						}
						if( $("input.hasDatepicker",cc).length >0) { $("input.hasDatepicker",cc).datepicker('hide'); }
						var postdata = {};
						if ($t.p.cellsubmit === 'remote') {
							if ($t.p.cellurl) {
								if($t.p.autoencode) { v = $.jgrid.htmlEncode(v); }
								if(cm.editoptions && cm.editoptions.NullIfEmpty && v === "") {
									v = 'null';
									nuem = true;
								}
								postdata[nm] = v;
								var opers = $t.p.prmNames,
								idname = opers.id,
								oper = opers.oper;
								
								postdata[idname] = $.jgrid.stripPref($t.p.idPrefix, $t.p.savedRow[fr].rowId);
								postdata[oper] = opers.editoper;
								postdata = $.extend(addpost,postdata);
								$($t).jqGrid("progressBar", {method:"show", loadtype : $t.p.loadui, htmlcontent: $.jgrid.getRegional($t,'defaults.savetext') });
								$t.grid.hDiv.loading = true;
								$.ajax( $.extend( {
									url: $t.p.cellurl,
									data :$.jgrid.isFunction($t.p.serializeCellData) ? $t.p.serializeCellData.call($t, postdata, nm) : postdata,
									type: "POST",
									success: function (anydata, stat, result) {
										$($t).jqGrid("progressBar", {method:"hide", loadtype : $t.p.loadui });
										$t.grid.hDiv.loading = false;
										if (stat === 'success') {
											var ret = $($t).triggerHandler("jqGridAfterSubmitCell", [$t, result, postdata[idname], nm, v, iRow, iCol]) || [true, ''];
											if (ret[0] === true && $.jgrid.isFunction($t.p.afterSubmitCell)) {
												ret = $t.p.afterSubmitCell.call($t, result, postdata[idname], nm, v, iRow, iCol);
											}
											if(ret[0] === true){
												if(nuem) {
													v = "";
												}
												$(cc).empty();
												$($t).jqGrid("setCell",$t.p.savedRow[fr].rowId, iCol, v2, false, false, true);
												cc = $('td', trow).eq( iCol );
												$(cc).addClass("dirty-cell");
												$(trow).addClass("edited");
												$($t).triggerHandler("jqGridAfterSaveCell", [$t.p.savedRow[fr].rowId, nm, v, iRow, iCol]);
												if ($.jgrid.isFunction($t.p.afterSaveCell)) {
													$t.p.afterSaveCell.call($t, $t.p.savedRow[fr].rowId, nm, v, iRow,iCol);
												}
												$t.p.savedRow.splice(0,1);
											} else {
												$($t).triggerHandler("jqGridErrorCell", [result, stat]);
												if ($.jgrid.isFunction($t.p.errorCell)) {
													$t.p.errorCell.call($t, result, stat);
												} else {
													$.jgrid.info_dialog(errors.errcap, ret[1], edit.bClose, {
														styleUI : $t.p.styleUI,
														top:p.top+30, 
														left:p.left ,
														onClose : function() {
															if(!$t.p.restoreCellonFail) {
																$("#"+iRow+"_"+nmjq, trow).focus();
															}
														}
													});
												}
												if( $t.p.restoreCellonFail) {
													$($t).jqGrid("restoreCell",iRow,iCol);
												}
											}
										}
									},
									error:function(res,stat,err) {
										$("#lui_"+$.jgrid.jqID($t.p.id)).hide();
										$t.grid.hDiv.loading = false;
										$($t).triggerHandler("jqGridErrorCell", [res, stat, err]);
										if ($.jgrid.isFunction($t.p.errorCell)) {
											$t.p.errorCell.call($t, res,stat,err);
										} else {
											$.jgrid.info_dialog(errors.errcap, res.status+" : "+res.statusText+"<br/>"+stat, edit.bClose, {
												styleUI : $t.p.styleUI,
												top:p.top+30, 
												left:p.left ,
												onClose : function() {
													if(!$t.p.restoreCellonFail) {
														$("#"+iRow+"_"+nmjq, trow).focus();
													}
												}
											});
										}
										if( $t.p.restoreCellonFail) {
											$($t).jqGrid("restoreCell", iRow, iCol);
										}
									}
								}, $.jgrid.ajaxOptions, $t.p.ajaxCellOptions || {}));
							} else {
								try {
									$.jgrid.info_dialog(errors.errcap,errors.nourl, edit.bClose, {styleUI : $t.p.styleUI });
									if( $t.p.restoreCellonFail) {
										$($t).jqGrid("restoreCell", iRow, iCol);
									}
								} catch (e) {}
							}
						}
						if ($t.p.cellsubmit === 'clientArray') {
							$(cc).empty();
							$($t).jqGrid("setCell", $t.p.savedRow[fr].rowId, iCol, v2, false, false, true);
							cc = $('td', trow).eq( iCol );
							$(cc).addClass("dirty-cell");
							$(trow).addClass("edited");
							$($t).triggerHandler("jqGridAfterSaveCell", [$t.p.savedRow[fr].rowId, nm, v, iRow, iCol]);
							if ($.jgrid.isFunction($t.p.afterSaveCell)) {
								$t.p.afterSaveCell.call($t, $t.p.savedRow[fr].rowId, nm, v, iRow, iCol);
							}
							$t.p.savedRow.splice(0,1);
						} else if($t.p.cellsubmit === 'storage') {
							postdata = $t.p.savedRow[fr];
							postdata[nm] = v;
							postdata[$t.p.keyName] = $.jgrid.stripPref($t.p.idPrefix, $t.p.savedRow[fr].rowId);
							$($t).jqGrid('updateStorageRecord', postdata)
							.then(function(e){
								if(e.type==="complete") {
									$(cc).empty();
									$($t).jqGrid("setCell", $t.p.savedRow[fr].rowId, iCol, v2, false, false, true);
									cc = $('td', trow).eq( iCol );
									$(cc).addClass("dirty-cell");
									$(trow).addClass("edited");
									$($t).triggerHandler("jqGridAfterSaveCell", [$t.p.savedRow[fr].rowId, nm, v, iRow, iCol]);
									if ($.jgrid.isFunction($t.p.afterSaveCell)) {
										$t.p.afterSaveCell.call($t, $t.p.savedRow[fr].rowId, nm, v, iRow, iCol);
									}
									$t.p.savedRow.splice(0,1);
									
								}
							})
							.catch(function(e) {
								$.jgrid.info_dialog("Error",e.target.error.name + " : "+e.target.error.message,'Close');
							});							
						}
					} else {
						try {
							if( $.jgrid.isFunction($t.p.validationCell) ) {
								$t.p.validationCell.call($t, $("#"+iRow+"_"+nmjq, trow), cv[1], iRow, iCol);
							} else {
								window.setTimeout(function(){
									$.jgrid.info_dialog(errors.errcap,v+ " " + cv[1], edit.bClose, {
										styleUI : $t.p.styleUI, 
										top:p.top+30, 
										left:p.left ,
										onClose : function() {
											if(!$t.p.restoreCellonFail) {
												$("#"+iRow+"_"+nmjq, trow).focus();
											}
										}
									});
								},50);
								if( $t.p.restoreCellonFail) {
									$($t).jqGrid("restoreCell", iRow, iCol);
								}
							}
						} catch (e) {
							alert(cv[1]);
						}
					}
				} else {
					$($t).jqGrid("restoreCell", iRow, iCol);
				}
			}
			window.setTimeout(function () { 
				$("#"+$.jgrid.jqID($t.p.knv)).attr("tabindex","-1").focus();
				if($t.p.ariaBody) {
					$($t).jqGrid('focusBodyCell', $t.p.iRow, $t.p.iCol);
				}
			},0);
		});
	},
	restoreCell : function(iRow, iCol) {
		return this.each(function(){
			var $t= this, fr = $t.p.savedRow.length >= 1 ? 0 : null;
			if (!$t.grid || $t.p.cellEdit !== true ) {return;}
			if(fr !== null) {
				var trow = $($t).jqGrid("getGridRowById", $t.p.savedRow[fr].rowId),
				cc = $('td', trow).eq( iCol );
				// datepicker fix
				if($.jgrid.isFunction($.fn.datepicker)) {
					try {
						$("input.hasDatepicker",cc).datepicker('hide');
					} catch (e) {}
				}
				$(cc).empty().attr("tabindex","-1");
				$($t).jqGrid("setCell", $t.p.savedRow[0].rowId, iCol, $t.p.savedRow[fr].v, false, false, true);
				$($t).triggerHandler("jqGridAfterRestoreCell", [$t.p.savedRow[fr].rowId, $t.p.savedRow[fr].v, iRow, iCol]);
				if ($.jgrid.isFunction($t.p.afterRestoreCell)) {
					$t.p.afterRestoreCell.call($t, $t.p.savedRow[fr].rowId, $t.p.savedRow[fr].v, iRow, iCol);
				}				
				$t.p.savedRow.splice(0,1);
			}
			window.setTimeout(function () { 
				$("#"+$t.p.knv).attr("tabindex","-1").focus();
				if($t.p.ariaBody) {
					$($t).jqGrid('focusBodyCell', $t.p.iRow, $t.p.iCol);
				}
			},0);
		});
	},
	nextCell : function (iRow, iCol, event) {
		var ret;
		this.each(function (){
			var $t = this, nCol=false, i;
			if (!$t.grid || $t.p.cellEdit !== true) {return;}
			// try to find next editable cell
			for (i=iCol+1; i<$t.p.colModel.length; i++) {
				if ( $t.p.colModel[i].editable ===true && (!$.jgrid.isFunction($t.p.isCellEditable) || $t.p.isCellEditable.call($t, $t.p.colModel[i].name,iRow,i))) {
					nCol = i; break;
				}
			}
			if(nCol !== false) {
				ret = true;
				$($t).jqGrid("editCell", iRow, nCol, true, event);
			} else {
				ret = false;
				if ($t.p.savedRow.length >0) {
					$($t).jqGrid("saveCell",iRow,iCol);
				}
			}
		});
		return ret;
	},
	prevCell : function (iRow, iCol, event) {
		var ret;
		this.each(function (){
			var $t = this, nCol=false, i;
			if (!$t.grid || $t.p.cellEdit !== true) {return false;}
			// try to find next editable cell
			for (i=iCol-1; i>=0; i--) {
				if ( $t.p.colModel[i].editable ===true && (!$.jgrid.isFunction($t.p.isCellEditable) || $t.p.isCellEditable.call($t, $t.p.colModel[i].name, iRow,i))) {
					nCol = i; 
					break;
				}
			}
			if(nCol !== false) {
				ret = true;
				$($t).jqGrid("editCell", iRow, nCol, true, event);
			} else {
				ret = false;
				if ($t.p.savedRow.length >0) {
					$($t).jqGrid("saveCell",iRow,iCol);
				}
			}
		});
		return ret;
	},
	GridNav : function() {
		return this.each(function () {
			var  $t = this;
			if (!$t.grid || $t.p.cellEdit !== true ) {return;}
			// trick to process keydown on non input elements
			$t.p.knv = $t.p.id + "_kn";
			var selection = $("<div style='position:fixed;top:0px;width:1px;height:1px;' tabindex='0'><div tabindex='-1' style='width:1px;height:1px;' id='"+$t.p.knv+"'></div></div>"),
			i, kdir;
			function scrollGrid(iR, iC, tp){
				if (tp.slice(0,1)==='v') {
					var ch = $($t.grid.bDiv)[0].clientHeight,
					st = $($t.grid.bDiv)[0].scrollTop,
					nROT = $t.rows[iR].offsetTop+$t.rows[iR].clientHeight,
					pROT = $t.rows[iR].offsetTop;
					if(tp === 'vd') {
						if(nROT >= ch) {
							$($t.grid.bDiv)[0].scrollTop = $($t.grid.bDiv)[0].scrollTop + $t.rows[iR].clientHeight;
						}
					}
					if(tp === 'vu'){
						if (pROT < st ) {
							$($t.grid.bDiv)[0].scrollTop = $($t.grid.bDiv)[0].scrollTop - $t.rows[iR].clientHeight;
						}
					}
				}
				if(tp==='h') {
					var cw = $($t.grid.bDiv)[0].clientWidth,
					sl = $($t.grid.bDiv)[0].scrollLeft,
					nCOL = $t.rows[iR].cells[iC].offsetLeft+$t.rows[iR].cells[iC].clientWidth,
					pCOL = $t.rows[iR].cells[iC].offsetLeft;
					if(nCOL >= cw+parseInt(sl,10)) {
						$($t.grid.bDiv)[0].scrollLeft = $($t.grid.bDiv)[0].scrollLeft + $t.rows[iR].cells[iC].clientWidth;
					} else if (pCOL < sl) {
						$($t.grid.bDiv)[0].scrollLeft = $($t.grid.bDiv)[0].scrollLeft - $t.rows[iR].cells[iC].clientWidth;
					}
				}
			}
			function findNextVisible(iC,act){
				var ind, i;
				if(act === 'lft') {
					ind = iC+1;
					for (i=iC;i>=0;i--){
						if ($t.p.colModel[i].hidden !== true) {
							ind = i;
							break;
						}
					}
				}
				if(act === 'rgt') {
					ind = iC-1;
					for (i=iC; i<$t.p.colModel.length;i++){
						if ($t.p.colModel[i].hidden !== true) {
							ind = i;
							break;
						}						
					}
				}
				return ind;
			}

			$(selection).insertBefore($t.grid.cDiv);
			$("#"+$t.p.knv)
			.focus()
			.keydown(function (e){
				kdir = e.keyCode;
				if($t.p.direction === "rtl") {
					if(kdir===37) { kdir = 39;}
					else if (kdir===39) { kdir = 37; }
				}
				switch (kdir) {
					case 38:
						if ($t.p.iRow-1 >0 ) {
							scrollGrid($t.p.iRow-1,$t.p.iCol,'vu');
							$($t).jqGrid("editCell",$t.p.iRow-1,$t.p.iCol,false,e);
						}
					break;
					case 40 :
						if ($t.p.iRow+1 <=  $t.rows.length-1) {
							scrollGrid($t.p.iRow+1,$t.p.iCol,'vd');
							$($t).jqGrid("editCell",$t.p.iRow+1,$t.p.iCol,false,e);
						}
					break;
					case 37 :
						if ($t.p.iCol -1 >=  0) {
							i = findNextVisible($t.p.iCol-1,'lft');
							scrollGrid($t.p.iRow, i,'h');
							$($t).jqGrid("editCell",$t.p.iRow, i,false,e);
						}
					break;
					case 39 :
						if ($t.p.iCol +1 <=  $t.p.colModel.length-1) {
							i = findNextVisible($t.p.iCol+1,'rgt');
							scrollGrid($t.p.iRow,i,'h');
							$($t).jqGrid("editCell",$t.p.iRow,i,false,e);
						}
					break;
					case 13:
						if (parseInt($t.p.iCol,10)>=0 && parseInt($t.p.iRow,10)>=0) {
							e.preventDefault();
							$($t).jqGrid("editCell",$t.p.iRow,$t.p.iCol,true,e);
						}
					break;
					default :
						return true;
				}
				return false;
			});
		});
	},
	getChangedCells : function (mthd) {
		var ret=[];
		if (!mthd) {mthd='all';}
		this.each(function(){
			var $t= this,nm;
			if (!$t.grid || $t.p.cellEdit !== true ) {return;}
			$($t.rows).each(function(j){
				var res = {};
				if ($(this).hasClass("edited")) {
					$('td',this).each( function(i) {
						nm = $t.p.colModel[i].name;
						if ( nm !== 'cb' && nm !== 'subgrid' && nm !=='sc') {
							if (mthd==='dirty') {
								if ($(this).hasClass('dirty-cell')) {
									try {
										res[nm] = $.unformat.call($t,this,{rowId:$t.rows[j].id, colModel:$t.p.colModel[i]},i);
									} catch (e){
										res[nm] = $.jgrid.htmlDecode($(this).html());
									}
								}
							} else {
								try {
									res[nm] = $.unformat.call($t,this,{rowId:$t.rows[j].id,colModel:$t.p.colModel[i]},i);
								} catch (e) {
									res[nm] = $.jgrid.htmlDecode($(this).html());
								}
							}
						}
					});
					res.id = this.id;
					ret.push(res);
				}
			});
		});
		return ret;
	}
/// end  cell editing
});

//module begin
$.extend($.jgrid,{
// Modal functions
	showModal : function(h) {
		h.w.show();
	},
	closeModal : function(h) {
		h.w.hide().attr("aria-hidden","true");
		if(h.o) {h.o.remove();}
	},
	hideModal : function (selector,o) {
		o = $.extend({jqm : true, gb :'', removemodal: false, formprop: false, form : ''}, o || {});
		var thisgrid = o.gb && typeof o.gb === "string" && o.gb.slice(0,6) === "#gbox_" ? $("#" + o.gb.slice(6))[0] : false;
		if(o.onClose) {
			var oncret = thisgrid ? o.onClose.call(thisgrid, selector) : o.onClose(selector);
			if (typeof oncret === 'boolean'  && !oncret ) { return; }
		}
		if( o.formprop && thisgrid  && o.form) {
			var frmgr, frmdata;
			if(o.form==='edit'){
				frmgr = '#' +$.jgrid.jqID("FrmGrid_"+ o.gb.slice(6));
				frmdata = "formProp";
			} else if( o.form === 'view') {
				frmgr = '#' +$.jgrid.jqID("ViewGrid_"+ o.gb.slice(6));
				frmdata = "viewProp";
			}
			$(thisgrid).data(frmdata, {
				top: $.jgrid.floatNum($(selector).css("top")),
				left : $.jgrid.floatNum($(selector).css("left")),
				width : $.jgrid.floatNum( $(selector)[0].style.width ),
				height : $.jgrid.floatNum( $(selector)[0].style.height ),
				dataheight : $(frmgr).height(),
				datawidth: $(frmgr).width()
			});
		}
		if ($.fn.jqm && o.jqm === true) {
			$(selector).attr("aria-hidden","true").jqmHide();
		} else {
			if(o.gb !== '') {
				try {
					$(o.gb).find(".jqgrid-overlay").first().hide();
				} catch (e){}
			}
			try { $(".jqgrid-overlay-modal").hide(); } catch (e) {}
			$(selector).hide().attr("aria-hidden","true");
		}
		if( o.removemodal ) {
			$(selector).remove();
		}
	},
//Helper functions
	findPos : function(obj) {
		var offset = $(obj).offset();
		return [offset.left,offset.top];
	},
	createModal : function(aIDs, content, p, insertSelector, posSelector, appendsel, css) {
		p = $.extend(true, {}, $.jgrid.jqModal || {}, p);
		var self = this,
			rtlsup = $(p.gbox).attr("dir") === "rtl" ? true : false,
			classes = $.jgrid.styleUI[(p.styleUI || 'jQueryUI')].modal,
			common = $.jgrid.styleUI[(p.styleUI || 'jQueryUI')].common,
			mw  = document.createElement('div');
		css = $.extend({}, css || {});
		mw.className= "ui-jqdialog " + classes.modal;
		mw.id = aIDs.themodal;
		var mh = document.createElement('div');
		mh.className = "ui-jqdialog-titlebar " + classes.header;
		mh.id = aIDs.modalhead;
		$(mh).append("<span class='ui-jqdialog-title "+classes.title+"'>"+p.caption+"</span>");
		var ahr= $("<a class='ui-jqdialog-titlebar-close "+common.cornerall+"' aria-label='Close'></a>")
		.hover(function(){ahr.addClass(common.hover);},
			function(){ahr.removeClass(common.hover);})
		.append("<span class='" + common.icon_base+" " + classes.icon_close + "'></span>");
		$(mh).append(ahr);
		if(rtlsup) {
			mw.dir = "rtl";
			$(".ui-jqdialog-title",mh).css("float","right");
			$(".ui-jqdialog-titlebar-close",mh).css("left",0.3+"em");
		} else {
			mw.dir = "ltr";
			$(".ui-jqdialog-title",mh).css("float","left");
			$(".ui-jqdialog-titlebar-close",mh).css("right",0.3+"em");
		}
		var mc = document.createElement('div');
		$(mc).addClass("ui-jqdialog-content " + classes.content).attr("id",aIDs.modalcontent);
		$(mc).append(content);
		mw.appendChild(mc);
		$(mw).prepend(mh);
		if(appendsel===true) { 
			$('body').append(mw); 
		} //append as first child in body -for alert dialog
		else if (typeof appendsel === "string") {
			$(appendsel).append(mw);
		} else {
			$(mw).insertBefore(insertSelector);
		}
		$(mw).css(css);
		if(p.jqModal === undefined) {p.jqModal = true;} // internal use
		var coord = {};
		if ( $.fn.jqm && p.jqModal === true) {
			if(p.left ===0 && p.top===0 && p.overlay) {
				var pos = [];
				pos = $.jgrid.findPos(posSelector);
				p.left = pos[0] + 4;
				p.top = pos[1] + 4;
				if( rtlsup && !appendsel) {
					p.left = $(p.gbox).outerWidth()- (!isNaN(p.width) ? parseInt(p.width,10) :300);// to do
				}
			}
			coord.top = p.top+"px";
			coord.left = p.left+"px";			
		} else if(p.left !==0 || p.top!==0) {
			coord.left = p.left+"px";
			coord.top = p.top+"px";
		}
		$("a.ui-jqdialog-titlebar-close",mh).click(function(){
			var oncm = $("#"+$.jgrid.jqID(aIDs.themodal)).data("onClose") || p.onClose;
			var gboxclose = $("#"+$.jgrid.jqID(aIDs.themodal)).data("gbox") || p.gbox;
			self.hideModal("#"+$.jgrid.jqID(aIDs.themodal),{gb:gboxclose,jqm:p.jqModal,onClose:oncm, removemodal: p.removemodal || false, formprop : !p.recreateForm || false, form: p.form || ''});
			return false;
		});
		if (p.width === 0 || !p.width) {p.width = 300;}
		if(p.height === 0 || !p.height) {p.height =200;}
		if(!p.zIndex) {
			var parentZ = $(insertSelector).parents("*[role=dialog]").first().css("z-index");
			if(parentZ) {
				p.zIndex = parseInt(parentZ,10)+2;
			} else {
				p.zIndex = 950;
			}
		}
		$(mw).css($.extend({
			width: isNaN(p.width) ? "auto": p.width+"px",
			height:isNaN(p.height) ? "auto" : p.height + "px",
			zIndex:p.zIndex,
			overflow: 'hidden'
		},coord))
		.attr({tabIndex: "-1","role":"dialog","aria-labelledby":aIDs.modalhead,"aria-hidden":"true"});
		if(p.drag === undefined) { p.drag=true;}
		if(p.resize === undefined) {p.resize=true;}
		if (p.drag) {
			$(mh).css('cursor','move');
			if($.fn.tinyDraggable) {
				//$(mw).jqDrag(mh);
				$(mw).tinyDraggable({ handle:"#"+$.jgrid.jqID(mh.id) });
			} else {
				try {
					$(mw).draggable({handle: $("#"+$.jgrid.jqID(mh.id))});
				} catch (e) {}
			}
		}
		if(p.resize) {
			if($.fn.jqResize) {
				$(mw).append("<div class='jqResize "+classes.resizable+" "+common.icon_base + " " +classes.icon_resizable+"'></div>");
				$("#"+$.jgrid.jqID(aIDs.themodal)).jqResize(".jqResize",aIDs.scrollelm ? "#"+$.jgrid.jqID(aIDs.scrollelm) : false);
			} else {
				try {
					$(mw).resizable({handles: 'se, sw',alsoResize: aIDs.scrollelm ? "#"+$.jgrid.jqID(aIDs.scrollelm) : false});
				} catch (r) {}
			}
		}
		if(p.closeOnEscape === true){
			$(mw).keydown( function( e ) {
				if( e.which === 27 ) {
					var cone = $("#"+$.jgrid.jqID(aIDs.themodal)).data("onClose") || p.onClose;
					self.hideModal("#"+$.jgrid.jqID(aIDs.themodal),{gb:p.gbox,jqm:p.jqModal,onClose: cone, removemodal: p.removemodal || false, formprop : !p.recreateForm || false, form: p.form || ''});
				}
			});
		}
	},
	viewModal : function (selector,o){
		o = $.extend({
			toTop: true,
			overlay: 10,
			modal: false,
			overlayClass : 'ui-widget-overlay', // to be fixed
			onShow: $.jgrid.showModal,
			onHide: $.jgrid.closeModal,
			gbox: '',
			jqm : true,
			jqM : true
		}, o || {});
		var style="";
		if(o.gbox) {
			var grid = $("#"+o.gbox.substring(6))[0];
			try {
				style = $(grid).jqGrid('getStyleUI',  grid.p.styleUI+'.common','overlay', false, 'jqgrid-overlay-modal');
				o.overlayClass = $(grid).jqGrid('getStyleUI',  grid.p.styleUI+'.common','overlay', true);
			} catch (em){}
		}
		if(o.focusField === undefined) {
			o.focusField = 0;
		}
		if(typeof o.focusField === "number" && o.focusField >= 0 ) {
			o.focusField = parseInt(o.focusField,10);
		} else if(typeof o.focusField === "boolean" && !o.focusField) {
			o.focusField = false;
		} else {
			o.focusField = 0;
		}
		if ($.fn.jqm && o.jqm === true) {
			if(o.jqM) { $(selector).attr("aria-hidden","false").jqm(o).jqmShow(); }
			else {$(selector).attr("aria-hidden","false").jqmShow();}
		} else {
			if(o.gbox !== '') {
				var zInd = parseInt($(selector).css("z-index")) - 1;
				if(o.modal) {
					if(!$(".jqgrid-overlay-modal")[0] ) {
						$('body').prepend("<div "+style+"></div>" );
					}
					$(".jqgrid-overlay-modal").css("z-index",zInd).show();
				} else {
					$(o.gbox).find(".jqgrid-overlay").first().css("z-index",zInd).show();
					$(selector).data("gbox",o.gbox);
				}
			}
			$(selector).show().attr("aria-hidden","false");
			if(o.focusField >= 0) {
				try{$(':input:visible',selector)[o.focusField].focus();}catch(_){}
			}
		}
	},
	info_dialog : function(caption, content,c_b, modalopt) {
		var mopt = {
			width:350,
			height:'auto',
			dataheight: 'auto',
			drag: true,
			resize: false,
			left:(window.innerWidth / 2) - 145,
			top:window.innerHeight / 2 - 150,
			zIndex : 1000,
			jqModal : true,
			modal : false,
			closeOnEscape : true,
			align: 'center',
			buttonalign : 'center',
			buttons : [], 
			overlay : 10,
			overlayClass : ''
		// {text:'textbutt', id:"buttid", onClick : function(){...}}
		// if the id is not provided we set it like info_button_+ the index in the array - i.e info_button_0,info_button_1...
		};
		$.extend(true, mopt, $.jgrid.jqModal || {}, {caption:"<b>"+caption+"</b>"}, modalopt || {});
		var jm = mopt.jqModal, self = this,
		classes = $.jgrid.styleUI[(mopt.styleUI || $.jgrid.defaults.styleUI || 'jQueryUI')].modal,
		common = $.jgrid.styleUI[(mopt.styleUI || $.jgrid.defaults.styleUI || 'jQueryUI')].common;
		if(!mopt.overlayClass) {
			mopt.overlayClass = common.overlay;
		}
		if($.fn.jqm && !jm) { jm = false; }
		// in case there is no jqModal
		var buttstr ="", i;
		if(mopt.buttons.length > 0) {
			for(i=0;i<mopt.buttons.length;i++) {
				if(mopt.buttons[i].id === undefined) { mopt.buttons[i].id = "info_button_"+i; }
				buttstr += "<a id='"+mopt.buttons[i].id+"' class='fm-button " + common.button+"'>"+mopt.buttons[i].text+"</a>";
			}
		}
		var dh = isNaN(mopt.dataheight) ? mopt.dataheight : mopt.dataheight+"px",
		cn = "text-align:"+mopt.align+";";
		var cnt = "<div id='info_id'>";
		cnt += "<div id='infocnt' class='"+classes.body+"' style='margin:0px;padding-bottom:1em;width:100%;overflow:auto;position:relative;height:"+dh+";"+cn+"'>"+content+"</div>";
		cnt += c_b ? "<div class='" + classes.footer + "' style='text-align:"+mopt.buttonalign+";padding-bottom:0.8em;padding-top:0.5em;background-image: none;border-width: 1px 0 0 0;'><a id='closedialog' class='fm-button " + common.button + "'>"+c_b+"</a>"+buttstr+"</div>" :
			buttstr !== ""  ? "<div class='" + classes.footer + "' style='text-align:"+mopt.buttonalign+";padding-bottom:0.8em;padding-top:0.5em;background-image: none;border-width: 1px 0 0 0;'>"+buttstr+"</div>" : "";
		cnt += "</div>";

		try {
			if($("#info_dialog").attr("aria-hidden") === "false") {
				$.jgrid.hideModal("#info_dialog",{jqm:jm});
			}
			$("#info_dialog").remove();
		} catch (e){}
		var fs =  $('.ui-jqgrid').css('font-size') || '11px';
		$.jgrid.createModal({
			themodal:'info_dialog',
			modalhead:'info_head',
			modalcontent:'info_content',
			scrollelm: 'infocnt'},
			cnt,
			mopt,
			'','',true, 
			{ "font-size":fs}
		);
		// attach onclick after inserting into the dom
		if(buttstr) {
			$.each(mopt.buttons,function(i){
				$("#"+$.jgrid.jqID(this.id),"#info_id").on('click',function(){mopt.buttons[i].onClick.call($("#info_dialog")); return false;});
			});
		}
		$("#closedialog", "#info_id").on('click',function(){
			self.hideModal("#info_dialog",{
				jqm:jm,
				onClose: $("#info_dialog").data("onClose") || mopt.onClose,
				gb: $("#info_dialog").data("gbox") || mopt.gbox
			});
			return false;
		});
		$(".fm-button","#info_dialog").hover(
			function(){$(this).addClass(common.hover);},
			function(){$(this).removeClass(common.hover);}
		);
		if($.jgrid.isFunction(mopt.beforeOpen) ) { mopt.beforeOpen(); }
		$.jgrid.viewModal("#info_dialog",{
			onHide: function(h) {
				h.w.hide().remove();
				if(h.o) { h.o.remove(); }
			},
			modal :mopt.modal,
			jqm:jm,
			overlay : mopt.overlay,
			overlayClass : mopt.overlayClass
		});
		if($.jgrid.isFunction(mopt.afterOpen) ) { mopt.afterOpen(); }
		try{ $("#info_dialog").focus();} catch (m){}
	},
	bindEv: function  (el, opt) {
		var $t = this;
		if($.jgrid.isFunction(opt.dataInit)) {
			opt.dataInit.call($t,el,opt);
		}
		if(opt.dataEvents) {
			$.each(opt.dataEvents, function() {
				var tfn = this.fn;
				if (this.data !== undefined) {
					$(el).on(this.type, this.data, function(ev) {tfn.call(this, ev, opt);});
				} else {
					$(el).on(this.type, function(ev){ tfn.call(this, ev, opt);} );
				}
			});
		}
	},
// Form Functions
	createEl : function(eltype,options,vl,autowidth, ajaxso) {
		var elem = "", $t = this;
		function setAttributes(elm, atr, exl ) {
			var exclude = ['dataInit','dataEvents','dataUrl', 'buildSelect','sopt', 'searchhidden', 'defaultValue', 'attr', 'custom_element', 'custom_value', 'oper'];
			exclude = exclude.concat(['cacheUrlData','delimiter','separator']);
			if(exl !== undefined && Array.isArray(exl)) {
				$.merge(exclude, exl);
			}
			$.each(atr, function(key, value){
				if($.inArray(key, exclude) === -1) {
					$(elm).attr(key,value);
				}
			});
			if(!atr.hasOwnProperty('id')) {
				$(elm).attr('id', $.jgrid.randId());
			}
		}
		switch (eltype)
		{
			case "textarea" :
				elem = document.createElement("textarea");
				if(autowidth) {
					if(!options.cols) { $(elem).css({width:"98%"});}
				} else if (!options.cols) { options.cols = 20; }
				if(!options.rows) { options.rows = 2; }
				if(vl==='&nbsp;' || vl==='&#160;' || (vl.length===1 && vl.charCodeAt(0)===160)) {vl="";}
				elem.value = vl;
				$(elem).attr({"role":"textbox","multiline":"true"});
				setAttributes(elem, options);
			break;
			case "checkbox" : //what code for simple checkbox
				elem = document.createElement("input");
				elem.type = "checkbox";
				if( !options.value ) {
					var vl1 = (vl+"").toLowerCase();
					if(vl1.search(/(false|f|0|no|n|off|undefined)/i)<0 && vl1!=="") {
						elem.checked=true;
						elem.defaultChecked=true;
						elem.value = vl;
					} else {
						elem.value = "on";
					}
					$(elem).attr("offval","off");
				} else {
					var cbval = options.value.split(":");
					if(vl === cbval[0]) {
						elem.checked=true;
						elem.defaultChecked=true;
					}
					elem.value = cbval[0];
					$(elem).attr("offval",cbval[1]);
				}
				$(elem).attr("role","checkbox");
				setAttributes(elem, options, ['value']);
			break;
			case "select" :
				elem = document.createElement("select");
				elem.setAttribute("role","listbox");
				var msl, ovm = [];
				if(options.multiple===true) {
					msl = true;
					elem.multiple="multiple";
					$(elem).attr("aria-multiselectable","true");
				} else { msl = false; }
				if(options.dataUrl != null) {
					var rowid = null, postData = options.postData || ajaxso.postData;
					try {
						rowid = options.rowId;
					} catch(e) {}

					if ($t.p && $t.p.idPrefix) {
						rowid = $.jgrid.stripPref($t.p.idPrefix, rowid);
					}
					$.ajax($.extend({
						url: $.jgrid.isFunction(options.dataUrl) ? options.dataUrl.call($t, rowid, vl, String(options.name)) : options.dataUrl,
						type : "GET",
						dataType: "html",
						data: $.jgrid.isFunction(postData) ? postData.call($t, rowid, vl, String(options.name)) : postData,
						context: {elem:elem, options:options, vl:vl},
						success: function(data){
							var ovm = [], elem = this.elem, vl = this.vl,
							options = $.extend({},this.options),
							msl = options.multiple===true,
							cU = options.cacheUrlData === true,
							oV ='', txt, mss =[],
							a = $.jgrid.isFunction(options.buildSelect) ? options.buildSelect.call($t,data) : data;
							if(typeof a === 'string') {
								a = $( $.jgrid.trim( a ) ).html();
							}
							if(a) {
								$(elem).append(a);
								setAttributes(elem, options, postData ? ['postData'] : undefined );
								if(options.size === undefined) { options.size =  msl ? 3 : 1;}
								if(msl) {
									var multiseparator = options.multiseparator === undefined ? ",": options.multiseparator;
									ovm = vl.split(multiseparator);									
									ovm = $.map(ovm,function(n){return $.jgrid.trim(n);});
								} else {
									ovm[0] = $.jgrid.trim(vl);
								}
								//$(elem).attr(options);
								//setTimeout(function(){
								$("option",elem).each(function(i){
									txt = $(this).text();
									vl = $(this).val();
									if(cU) {
										oV += (i!== 0 ? ";": "")+ vl+":"+txt; 
									}
									//if(i===0) { this.selected = ""; }
									// fix IE8/IE7 problem with selecting of the first item on multiple=true
									if (i === 0 && elem.multiple) { this.selected = false; }
									$(this).attr("role","option");
									if($.inArray($.jgrid.trim(txt),ovm) > -1 || $.inArray($.jgrid.trim(vl),ovm) > -1 ) {
										this.selected= "selected";
										mss.push(vl);
									}
								});
								if( options.hasOwnProperty('checkUpdate') ) {
									if (options.checkUpdate) {
										$t.p.savedData[options.name] = mss.join(",");
									}
								}
								if(cU) {
									if(options.oper === 'edit') {
										$($t).jqGrid('setColProp',options.name,{ editoptions: {buildSelect: null, dataUrl : null, value : oV} });
									} else if(options.oper === 'search') {
										$($t).jqGrid('setColProp',options.name,{ searchoptions: {dataUrl : null, value : oV} });
									} else if(options.oper ==='filter') {
										if($("#fbox_"+$t.p.id)[0].p) {
											var cols = $("#fbox_"+$t.p.id)[0].p.columns, nm;
											$.each(cols,function(i) {
												nm  =  this.index || this.name;
												if(options.name === nm) {
													this.searchoptions.dataUrl = null;
													this.searchoptions.value = oV;
													return false;
												}
											});
										}
									}
								}
								$($t).triggerHandler("jqGridAddEditAfterSelectUrlComplete", [elem]);
								//},0);
							}
						}
					},ajaxso || {}));
				} else if(options.value) {
					var i;
					if(options.size === undefined) {
						options.size = msl ? 3 : 1;
					}
					if(msl) {
						ovm = vl.split(",");
						ovm = $.map(ovm,function(n){return $.jgrid.trim(n);});
					}
					if(typeof options.value === 'function') { 
						options.value = options.value.call($t, vl, options); 
					}
					var so,sv, ov, oSv, key, value,
					sep = options.separator === undefined ? ":" : options.separator,
					delim = options.delimiter === undefined ? ";" : options.delimiter;
					if(typeof options.value === 'string') {
						so = options.value.split(delim);
						for(i=0; i<so.length;i++){
							sv = so[i].split(sep);
							if(sv.length > 2 ) {
								sv[1] = $.map(sv,function(n,ii){if(ii>0) { return n;} }).join(sep);
							}
							ov = document.createElement("option");
							ov.setAttribute("role","option");
							ov.value = sv[0]; 
							ov.innerHTML = sv[1];
							if (sv[1].length == 0) {
								ov.setAttribute("aria-label","none");
							}	
							elem.appendChild(ov);
							if (!msl &&  
									($.jgrid.trim(sv[0]) === $.jgrid.trim(vl) || 
									$.jgrid.trim(sv[1]) === $.jgrid.trim(vl))) {

								ov.selected ="selected"; 
							}
							if (msl && ($.inArray($.jgrid.trim(sv[1]), ovm)>-1 || $.inArray($.jgrid.trim(sv[0]), ovm)>-1)) {ov.selected ="selected";}
						}
					} else if (Object.prototype.toString.call(options.value) === "[object Array]") {
						oSv = options.value;
						// array of arrays [[Key, Value], [Key, Value], ...]
						for (i=0; i<oSv.length; i++) {
							if(oSv[i].length === 2) {
								key = oSv[i][0]; 
								value = oSv[i][1];
								ov = document.createElement("option");
								ov.setAttribute("role","option");
								ov.value = key; ov.innerHTML = value;
								if (value.length == 0) {
									ov.setAttribute("aria-label","none");
								}
								elem.appendChild(ov);
								if (!msl &&  ( $.jgrid.trim(key) === $.jgrid.trim(vl) || $.jgrid.trim(value) === $.jgrid.trim(vl)) ) { ov.selected ="selected"; }
								if (msl && ($.inArray($.jgrid.trim(value),ovm)>-1 || $.inArray($.jgrid.trim(key),ovm)>-1)) { ov.selected ="selected"; }
							}
						}
					} else if (typeof options.value === 'object') {
						oSv = options.value;
						for (key in oSv) {
							if (oSv.hasOwnProperty(key ) ){
								ov = document.createElement("option");
								ov.setAttribute("role","option");
								ov.value = key; ov.innerHTML = oSv[key];
								if (oSv[key].length == 0) {
									ov.setAttribute("aria-label","none");
								}
								elem.appendChild(ov);
								if (!msl &&  ( $.jgrid.trim(key) === $.jgrid.trim(vl) || $.jgrid.trim(oSv[key]) === $.jgrid.trim(vl)) ) { ov.selected ="selected"; }
								if (msl && ($.inArray($.jgrid.trim(oSv[key]),ovm)>-1 || $.inArray($.jgrid.trim(key),ovm)>-1)) { ov.selected ="selected"; }
							}
						}
					}
					setAttributes(elem, options, ['value']);
				} else {
					setAttributes(elem, options );
				}
			break;
			case "image" :
			case "file" :
				elem = document.createElement("input");
				elem.type = eltype;
				setAttributes(elem, options);
				break;
			case "custom" :
				elem = document.createElement("span");
				try {
					if($.jgrid.isFunction(options.custom_element)) {
						var celm = options.custom_element.call($t,vl,options);
						if(celm) {
							celm = $(celm).addClass("customelement").attr({id:options.id,name:options.name});
							$(elem).empty().append(celm);
						} else {
							throw "e2";
						}
					} else {
						throw "e1";
					}
				} catch (e) {
					var errors = $.jgrid.getRegional($t, 'errors'),
						edit =$.jgrid.getRegional($t, 'edit');

					if (e==="e1") { $.jgrid.info_dialog(errors.errcap,"function 'custom_element' "+edit.msg.nodefined, edit.bClose, {styleUI : $t.p.styleUI });}
					else if (e==="e2") { $.jgrid.info_dialog(errors.errcap,"function 'custom_element' "+edit.msg.novalue,edit.bClose, {styleUI : $t.p.styleUI });}
					else { $.jgrid.info_dialog(errors.errcap,typeof e==="string"?e:e.message,edit.bClose, {styleUI : $t.p.styleUI }); }
				}
			break;
			default :
				var role;
				if(eltype==="button") { role = "button"; }
				else { role = "textbox"; } // ???
				elem = document.createElement("input");
				elem.type = eltype;
				elem.value = vl;
				if(eltype !== "button"){
					if(autowidth) {
						if(!options.size) { $(elem).css({width:"96%"}); }
					} else if (!options.size) { options.size = 20; }
				}
				$(elem).attr("role",role);
				setAttributes(elem, options);
		}
		return elem;
	},
// Date Validation Javascript
	checkDate : function (format, date) {
		var daysInFebruary = function(year){
		// February has 29 days in any year evenly divisible by four,
		// EXCEPT for centurial years which are not also divisible by 400.
			return (((year % 4 === 0) && ( year % 100 !== 0 || (year % 400 === 0))) ? 29 : 28 );
		},
		tsp = {}, sep;
		format = format.toLowerCase();
		//we search for /,-,. for the date separator
		if(format.indexOf("/") !== -1) {
			sep = "/";
		} else if(format.indexOf("-") !== -1) {
			sep = "-";
		} else if(format.indexOf(".") !== -1) {
			sep = ".";
		} else {
			sep = "/";
		}
		format = format.split(sep);
		date = date.split(sep);
		if (date.length !== 3) { return false; }
		var j=-1,yln, dln=-1, mln=-1, i;
		for(i=0;i<format.length;i++){
			var dv =  isNaN(date[i]) ? 0 : parseInt(date[i],10);
			tsp[format[i]] = dv;
			yln = format[i];
			if(yln.indexOf("y") !== -1) { j=i; }
			if(yln.indexOf("m") !== -1) { mln=i; }
			if(yln.indexOf("d") !== -1) { dln=i; }
		}
		if (format[j] === "y" || format[j] === "yyyy") {
			yln=4;
		} else if(format[j] ==="yy"){
			yln = 2;
		} else {
			yln = -1;
		}
		var daysInMonth = [0,31,29,31,30,31,30,31,31,30,31,30,31],
		strDate;
		if (j === -1) {
			return false;
		}
			strDate = tsp[format[j]].toString();
			if(yln === 2 && strDate.length === 1) {yln = 1;}
			if (strDate.length !== yln || (tsp[format[j]]===0 && date[j]!=="00")){
				return false;
			}
		if(mln === -1) {
			return false;
		}
			strDate = tsp[format[mln]].toString();
			if (strDate.length<1 || tsp[format[mln]]<1 || tsp[format[mln]]>12){
				return false;
			}
		if(dln === -1) {
			return false;
		}
			strDate = tsp[format[dln]].toString();
			if (strDate.length<1 || tsp[format[dln]]<1 || tsp[format[dln]]>31 || (tsp[format[mln]]===2 && tsp[format[dln]]>daysInFebruary(tsp[format[j]])) || tsp[format[dln]] > daysInMonth[tsp[format[mln]]]){
				return false;
			}
		return true;
	},
	isEmpty : function(val)
	{
		if (val === undefined || val.match(/^\s+$/) || val === "")	{
			return true;
		}
		return false;
	},
	checkTime : function(time){
	// checks only hh:ss (and optional am/pm)
		var re = /^(\d{1,2}):(\d{2})([apAP][Mm])?$/,regs;
		if(!$.jgrid.isEmpty(time))
		{
			regs = time.match(re);
			if(regs) {
				if(regs[3]) {
					if(regs[1] < 1 || regs[1] > 12) { return false; }
				} else {
					if(regs[1] > 23) { return false; }
				}
				if(regs[2] > 59) {
					return false;
				}
			} else {
				return false;
			}
		}
		return true;
	},
	checkValues : function(val, valref, customobject, nam) {
		var edtrul,i, nm, dft, len, g = this, cm = g.p.colModel,
		msg = $.jgrid.getRegional(this, 'edit.msg'), fmtdate,
		isNum = function(vn) {
			vn = vn.toString();
			if(vn.length >= 2) {
				var chkv, dot;
				if(vn[0] === "-" ) {
					chkv = vn[1];
					if(vn[2]) { dot = vn[2];}
				} else {
					chkv = vn[0];
					if(vn[1]) { dot = vn[1];}
				}
				if( chkv === "0"  && dot !== ".") {
					return false; //octal
				} 
			}
			return typeof Number(vn) === 'number' && isFinite(vn); 
		};

		if(customobject === undefined) {
			if(typeof valref==='string'){
				for( i =0, len=cm.length;i<len; i++){
					if(cm[i].name===valref) {
						edtrul = cm[i].editrules;
						valref = i;
						if(cm[i].formoptions != null) { nm = cm[i].formoptions.label; }
						break;
					}
				}
			} else if(valref >=0) {
				edtrul = cm[valref].editrules;
			}
		} else {
			edtrul = customobject;
			nm = nam===undefined ? "_" : nam;
		}
		if(edtrul) {
			if(!nm) { nm = g.p.colNames != null ? g.p.colNames[valref] : cm[valref].label; }
			if(edtrul.required === true) {
				if( $.jgrid.isEmpty(val) )  { return [false,nm+": "+msg.required,""]; }
			}
			// force required
			var rqfield = edtrul.required === false ? false : true;
			if(edtrul.number === true) {
				if( !(rqfield === false && $.jgrid.isEmpty(val)) ) {
					if(!isNum(val)) { return [false,nm+": "+msg.number,""]; }
				}
			}
			if(edtrul.minValue !== undefined && !isNaN(edtrul.minValue)) {
				if ($.jgrid.floatNum(val) < $.jgrid.floatNum(edtrul.minValue) ) { return [false,nm+": "+msg.minValue+" "+edtrul.minValue,""];}
			}
			if(edtrul.maxValue !== undefined && !isNaN(edtrul.maxValue)) {
				if ($.jgrid.floatNum(val) > $.jgrid.floatNum(edtrul.maxValue) ) { return [false,nm+": "+msg.maxValue+" "+edtrul.maxValue,""];}
			}
			var filter;
			if(edtrul.email === true) {
				if( !(rqfield === false && $.jgrid.isEmpty(val)) ) {
				// taken from $ Validate plugin
					filter = /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i;
					if(!filter.test(val)) {return [false,nm+": "+msg.email,""];}
				}
			}
			if(edtrul.integer === true) {
				if( !(rqfield === false && $.jgrid.isEmpty(val)) ) {
					if(!isNum(val)) { return [false,nm+": "+msg.integer,""]; }
					if ((val % 1 !== 0) || (val.indexOf('.') !== -1)) { return [false,nm+": "+msg.integer,""];}
				}
			}
			if(edtrul.date === true) {
				if( !(rqfield === false && $.jgrid.isEmpty(val)) ) {
					if(cm[valref].formatoptions && cm[valref].formatoptions.newformat) {
						dft = cm[valref].formatoptions.newformat;
						fmtdate = $.jgrid.getRegional(g, 'formatter.date.masks');
						if(fmtdate && fmtdate.hasOwnProperty(dft) ) {
							dft = fmtdate[dft];
						}
					} else {
						dft = cm[valref].datefmt || "Y-m-d";
					}
					if(!$.jgrid.checkDate (dft, val)) { return [false,nm+": "+msg.date+" - "+dft,""]; }
				}
			}
			if(edtrul.time === true) {
				if( !(rqfield === false && $.jgrid.isEmpty(val)) ) {
					if(!$.jgrid.checkTime (val)) { return [false,nm+": "+msg.date+" - hh:mm (am/pm)",""]; }
				}
			}
			if(edtrul.url === true) {
				if( !(rqfield === false && $.jgrid.isEmpty(val)) ) {
					filter = /^(((https?)|(ftp)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&#;`~=%!]*)(\.\w{2,})?)*\/?)/i;
					if(!filter.test(val)) {return [false,nm+": "+msg.url,""];}
				}
			}
			if(edtrul.custom === true) {
				if( !(rqfield === false && $.jgrid.isEmpty(val)) ) {
					if($.jgrid.isFunction(edtrul.custom_func)) {
						var ret = edtrul.custom_func.call(g,val,nm,valref);
						return Array.isArray(ret) ? ret : [false,msg.customarray,""];
					}
					return [false,msg.customfcheck,""];
				}
			}
		}
		return [true,"",""];
	},
	validateForm : function(form) {
		var	f, field, formvalid = true;

		for (f = 0; f < form.elements.length; f++) {
			field = form.elements[f];
			// ignore buttons, fieldsets, etc.
			if (field.nodeName !== "INPUT" && field.nodeName !== "TEXTAREA" && field.nodeName !== "SELECT") continue;
			// is native browser validation available?
			if (typeof field.willValidate !== "undefined") {
				// native validation available
				if (field.nodeName === "INPUT" && field.type !== field.getAttribute("type")) {
					// input type not supported! Use legacy JavaScript validation
					field.setCustomValidity($.jgrid.LegacyValidation(field) ? "" : "error");
				}
				// native browser check display error
				field.reportValidity();
			} else {
				// native validation not available
				field.validity = field.validity || {};
				field.validity.valid = $.jgrid.LegacyValidation(field);
			}

			if (field.validity.valid) {
				// remove error styles and messages
			} else {
				// style field, show error, etc.
				// form is invalid
				//var message = field.validationMessage;
				formvalid = false;
				break;
			}
		}
		return formvalid;
	},
	// basic legacy validation checking
	LegacyValidation : function (field) {
	var	valid = true,
		val = field.value,
		type = field.getAttribute("type"),
		chkbox = (type === "checkbox" || type === "radio"),
		required = field.getAttribute("required"),
		minlength = field.getAttribute("minlength"),
		maxlength = field.getAttribute("maxlength"),
		pattern = field.getAttribute("pattern");

		// disabled fields should not be validated
		if ( field.disabled ) { 
			return valid;
		}
		// value required?
		valid = valid && (!required ||
			(chkbox && field.checked) ||
			(!chkbox && val !== "")
		);

		// minlength or maxlength set?
		valid = valid && (chkbox || (
			(!minlength || val.length >= minlength) &&
			(!maxlength || val.length <= maxlength)
		));

		// test pattern
		if (valid && pattern) {
			pattern = new RegExp(pattern);
			valid = pattern.test(val);
		}

		return valid;
	},
	buildButtons : function ( buttons, source, commonstyle) {
		var icon, str;
		$.each(buttons, function(i,n) {
			// side, position, text, icon, click, id, index
			if(!n.id) {
				n.id = $.jgrid.randId();
			}
			if(!n.position) {
				n.position = 'last';
			}
			if(!n.side) {
				n.side = 'left';
			}
			icon = n.icon ? " fm-button-icon-" + n.side + "'><span class='" + commonstyle.icon_base + " " + n.icon + "'></span>" : "'>";
			str = "<a  data-index='"+i+"' id='" + n.id + "' class='fm-button " + commonstyle.button + icon + n.text+"</a>";
			if(n.position === "last" ) {
				source = source + str;
			} else {
				source = str + source;
			}
		});
		return source;
	},
	setSelNavIndex : function ($t,  selelem ) {
		var cels = $(".ui-pg-button",$t.p.pager);
		$.each(cels, function(i,n) {
			if(selelem===n) {
				$t.p.navIndex = i;
				return false;
			}
		});
		$(selelem).attr("tabindex","0");		
	},
	getFirstVisibleCol : function( $t ) {
		var ret = -1;
		for(var i = 0;i<$t.p.colModel.length;i++) {
			if($t.p.colModel[i].hidden !== true ) {
				ret = i;
				break;
			}
		}
		return ret;
	},
	getLastVisibleCol : function( $t ) {
		var ret = -1;
		for(var i = $t.p.colModel.length - 1; i>=0; i--) {
			if($t.p.colModel[i].hidden !== true ) {
				ret = i;
				break;
			}	
		}
		return ret;
	},
	/* post data to server get or post without ajax */
	postForm : function (path, params, method) {
		method = method || 'post';
		
	    var form = document.createElement('form');
		form.setAttribute('method', method);
		form.setAttribute('action', path);
		for (var key in params) {
			if (params.hasOwnProperty(key)) {
				var hiddenField = document.createElement('input');
				hiddenField.setAttribute('type', 'hidden');
				hiddenField.setAttribute('name', key);
				hiddenField.setAttribute('value', params[key]);

				form.appendChild(hiddenField);
			}
		}

		document.body.appendChild(form);
		form.submit();
		form.parentNode.removeChild(form);
	}	
});

//module begin
$.fn.jqFilter = function( arg ) {
	if (typeof arg === 'string') {

		var fn = $.fn.jqFilter[arg];
		if (!fn) {
			throw ("jqFilter - No such method: " + arg);
		}
		var args = $.makeArray(arguments).slice(1);
		return fn.apply(this,args);
	}

	var p = $.extend(true,{
		filter: null,
		columns: [],
		sortStrategy: null,
		onChange : null,
		afterRedraw : null,
		checkValues : null,
		error: false,
		errmsg : "",
		errorcheck : true,
		showQuery : true,
		sopt : null,
		ops : [],
		operands : null,
		numopts : ['eq','ne', 'lt', 'le', 'gt', 'ge', 'nu', 'nn', 'in', 'ni'],
		stropts : ['eq', 'ne', 'bw', 'bn', 'ew', 'en', 'cn', 'nc', 'nu', 'nn', 'in', 'ni'],
		strarr : ['text', 'string', 'blob'],
		groupOps : [{ op: "AND", text: "AND" },	{ op: "OR",  text: "OR" }],
		groupButton : true,
		ruleButtons : true,
		uniqueSearchFields : false,
		direction : "ltr",
		addsubgrup : "Add subgroup",
		addrule : "Add rule",
		delgroup : "Delete group",
		delrule : "Delete rule",
		autoencode : false,
		unaryOperations : []
	}, $.jgrid.filter, arg || {});
	return this.each( function() {
		if (this.filter) {return;}
		this.p = p;
		// setup filter in case if they is not defined
		if (this.p.filter === null || this.p.filter === undefined) {
			this.p.filter = {
				groupOp: this.p.groupOps[0].op,
				rules: [],
				groups: []
			};
		}

		// Sort the columns if the sort strategy is provided.
		if (this.p.sortStrategy != null && $.jgrid.isFunction(this.p.sortStrategy)) {
			this.p.columns.sort(this.p.sortStrategy);
		}

		var i, len = this.p.columns.length, cl,
		isIE = /msie/i.test(navigator.userAgent) && !window.opera;

		// translating the options
		this.p.initFilter = $.extend(true,{},this.p.filter);
		//this.p.initFilter = {};
		// set default values for the columns if they are not set
		if( !len ) {return;}
		for(i=0; i < len; i++) {
			cl = this.p.columns[i];
			if( cl.stype ) {
				// grid compatibility
				cl.inputtype = cl.stype;
			} else if(!cl.inputtype) {
				cl.inputtype = 'text';
			}
			if( cl.sorttype ) {
				// grid compatibility
				cl.searchtype = cl.sorttype;
			} else if (!cl.searchtype) {
				cl.searchtype = 'string';
			}
			if(cl.hidden === undefined) {
				// jqGrid compatibility
				cl.hidden = false;
			}
			if(!cl.label) {
				cl.label = cl.name;
			}
			if(cl.index) {
				cl.name = cl.index;
			}
			if(!cl.hasOwnProperty('searchoptions')) {
				cl.searchoptions = {};
			}
			if(!cl.hasOwnProperty('searchrules')) {
				cl.searchrules = {};
			}
			if(cl.search === undefined) {
				cl.inlist = true;
			} else {
				cl.inlist = cl.search;
			}
		}
		var getGrid = function () {
			return $("#" + $.jgrid.jqID(p.id))[0] || null;
		},

		$tg = getGrid(),
		classes = $.jgrid.styleUI[($tg.p.styleUI || 'jQueryUI')].filter,
		common = $.jgrid.styleUI[($tg.p.styleUI || 'jQueryUI')].common;


		if(this.p.showQuery) {
			$(this).append("<table class='queryresult " + classes.table_widget + "' style='display:block;max-width:440px;border:0px none;' dir='"+this.p.direction+"'><tbody><tr><td class='query'></td></tr></tbody></table>");
		}
		/*
		 *Perform checking.
		 *
		*/
		var checkData = function(val, colModelItem) {
			var ret = [true,""], $t = getGrid();
			if($.jgrid.isFunction(colModelItem.searchrules)) {
				ret = colModelItem.searchrules.call($t, val, colModelItem);
			} else if($.jgrid && $.jgrid.checkValues) {
				try {
					ret = $.jgrid.checkValues.call($t, val, -1, colModelItem.searchrules, colModelItem.label);
				} catch (e) {}
			}
			if(ret && ret.length && ret[0] === false) {
				p.error = !ret[0];
				p.errmsg = ret[1];
			}
		};
		/* moving to common
		randId = function() {
			return Math.floor(Math.random()*10000).toString();
		};
		*/

		this.onchange = function (  ){
			// clear any error
			this.p.error = false;
			this.p.errmsg="";
			return $.jgrid.isFunction(this.p.onChange) ? this.p.onChange.call( this, this.p ) : false;
		};
		/*
		 * Redraw the filter every time when new field is added/deleted
		 * and field is  changed
		 */
		this.reDraw = function() {
			$(this).find("table.group").first().remove();
			var t = this.createTableForGroup(p.filter, null);
			$(this).append(t);
			if($.jgrid.isFunction(this.p.afterRedraw) ) {
				this.p.afterRedraw.call(this, this.p);
			}
		};
		/*
		 * Creates a grouping data for the filter
		 * @param group - object
		 * @param parentgroup - object
		 */
		this.createTableForGroup = function(group, parentgroup) {
			var that = this,  i;
			// this table will hold all the group (tables) and rules (rows)
			var table = $("<table class='group " + classes.table_widget +" ui-search-table' style='border:0px none;'><tbody></tbody></table>"),
			// create error message row
			align = "left";
			if(this.p.direction === "rtl") {
				align = "right";
				table.attr("dir","rtl");
			}
			if(parentgroup === null) {
				table.append("<tr class='error' style='display:none;'><th colspan='5' class='" + common.error + "' align='"+align+"'></th></tr>");
			}

			var tr = $("<tr></tr>");
			table.append(tr);
			// this header will hold the group operator type and group action buttons for
			// creating subgroup "+ {}", creating rule "+" or deleting the group "-"
			var th = $("<th colspan='5' align='"+align+"'></th>");
			tr.append(th);

			if(this.p.ruleButtons === true) {
			// dropdown for: choosing group operator type
			var groupOpSelect = $("<select size='1' name='select_group_op' class='opsel " + classes.srSelect + "'></select>");
			th.append(groupOpSelect);
			// populate dropdown with all posible group operators: or, and
			var str= "", selected;
			for (i = 0; i < p.groupOps.length; i++) {
				selected =  group.groupOp === that.p.groupOps[i].op ? " selected='selected'" :"";
				str += "<option value='"+that.p.groupOps[i].op+"'" + selected+">"+that.p.groupOps[i].text+"</option>";
			}

			groupOpSelect
			.append(str)
			.on('change',function() {
				group.groupOp = $(groupOpSelect).val();
				that.onchange(); // signals that the filter has changed
			});
			}
			// button for adding a new subgroup
			var inputAddSubgroup ="<span></span>";
			if(this.p.groupButton) {
				inputAddSubgroup = $("<input type='button' value='+ {}' title='" +that.p.addsubgrup+"' class='add-group " + common.button + "' name='newsubgroup'/>");
				inputAddSubgroup.on('click',function() {
					if (group.groups === undefined ) {
						group.groups = [];
					}

					group.groups.push({
						groupOp: p.groupOps[0].op,
						rules: [],
						groups: []
					}); // adding a new group

					that.reDraw(); // the html has changed, force reDraw

					that.onchange(); // signals that the filter has changed
					return false;
				});
			}
			th.append(inputAddSubgroup);
			if(this.p.ruleButtons === true) {
			// button for adding a new rule
			var inputAddRule = $("<input type='button' value='+' title='"+that.p.addrule+"' class='add-rule ui-add " + common.button + "'/ name='newrule'>"), cm;
			inputAddRule.on('click',function() {
				//if(!group) { group = {};}
				if (group.rules === undefined) {
					group.rules = [];
				}
				for (i = 0; i < that.p.columns.length; i++) {
				// but show only serchable and serchhidden = true fields
					var searchable = (that.p.columns[i].search === undefined) ?  true: that.p.columns[i].search,
					hidden = (that.p.columns[i].hidden === true),
					ignoreHiding = (that.p.columns[i].searchoptions.searchhidden === true);
					if ((ignoreHiding && searchable) || (searchable && !hidden)) {
						cm = that.p.columns[i];
						break;
					}
				}
				if( !cm ) {
					return false;
				}
				var opr;
				if( cm.searchoptions.sopt ) {opr = cm.searchoptions.sopt;}
				else if(that.p.sopt) { opr= that.p.sopt; }
				else if  ( $.inArray(cm.searchtype, that.p.strarr) !== -1 ) {opr = that.p.stropts;}
				else {opr = that.p.numopts;}

				group.rules.push({
					field: cm.name,
					op: opr[0],
					data: ""
				}); // adding a new rule

				that.reDraw(); // the html has changed, force reDraw
				// for the moment no change have been made to the rule, so
				// this will not trigger onchange event
				return false;
			});
			th.append(inputAddRule);
			}

			// button for delete the group
			if (parentgroup !== null) { // ignore the first group
				var inputDeleteGroup = $("<input type='button' value='-' title='"+that.p.delgroup+"' class='delete-group " + common.button + "'/ name='delgroup'>");
				th.append(inputDeleteGroup);
				inputDeleteGroup.on('click',function() {
				// remove group from parent
					for (i = 0; i < parentgroup.groups.length; i++) {
						if (parentgroup.groups[i] === group) {
							parentgroup.groups.splice(i, 1);
							break;
						}
					}

					that.reDraw(); // the html has changed, force reDraw

					that.onchange(); // signals that the filter has changed
					return false;
				});
			}

			// append subgroup rows
			if (group.groups !== undefined) {
				for (i = 0; i < group.groups.length; i++) {
					var trHolderForSubgroup = $("<tr></tr>");
					table.append(trHolderForSubgroup);

					var tdFirstHolderForSubgroup = $("<td class='first'></td>");
					trHolderForSubgroup.append(tdFirstHolderForSubgroup);

					var tdMainHolderForSubgroup = $("<td colspan='4'></td>");
					tdMainHolderForSubgroup.append(this.createTableForGroup(group.groups[i], group));
					trHolderForSubgroup.append(tdMainHolderForSubgroup);
				}
			}
			if(group.groupOp === undefined) {
				group.groupOp = that.p.groupOps[0].op;
			}

			// append rules rows
			var suni = that.p.ruleButtons && that.p.uniqueSearchFields, ii;
			if( suni ) {
				for ( ii = 0; ii < that.p.columns.length; ii++) {
					if(that.p.columns[ii].inlist) {
						that.p.columns[ii].search = true;
					}
				}
			}
			if (group.rules !== undefined) {
				for (i = 0; i < group.rules.length; i++) {
					table.append(
                       this.createTableRowForRule(group.rules[i], group)
					);
					if( suni ) {
						var field = group.rules[i].field;
						for ( ii = 0; ii < that.p.columns.length; ii++) {
							if(field === that.p.columns[ii].name) {
								that.p.columns[ii].search = false;
								break;
							}
						}
					}
				}
			}
			return table;
		};
		/*
		 * Create the rule data for the filter
		 */
		this.createTableRowForRule = function(rule, group ) {
			// save current entity in a variable so that it could
			// be referenced in anonimous method calls

			var that=this, $t = getGrid(), tr = $("<tr></tr>"),
			//document.createElement("tr"),

			// first column used for padding
			//tdFirstHolderForRule = document.createElement("td"),
			i, op, trpar, cm, str="", selected;
			//tdFirstHolderForRule.setAttribute("class", "first");
			tr.append("<td class='first'></td>");


			// create field container
			var ruleFieldTd = $("<td class='columns'></td>");
			tr.append(ruleFieldTd);


			// dropdown for: choosing field
			var ruleFieldSelect = $("<select size='1' name='select_field' class='" + classes.srSelect + "'></select>"), ina, aoprs = [];
			ruleFieldTd.append(ruleFieldSelect);
			ruleFieldSelect.on('change',function() {
				if( that.p.ruleButtons && that.p.uniqueSearchFields ) {
					var prev = parseInt($(this).data('curr'),10),
					curr = this.selectedIndex;
					if(prev >= 0 ) {
						that.p.columns[prev].search = true;
						$(this).data('curr', curr);
						that.p.columns[curr].search = false;
					}
				}

				rule.field = $(ruleFieldSelect).val();

				trpar = $(this).parents("tr").first();
				$(".data",trpar).empty();
				for (i=0;i<that.p.columns.length;i++) {
					if(that.p.columns[i].name ===  rule.field) {
						cm = that.p.columns[i];
						break;
					}
				}
				if(!cm) {return;}
				cm.searchoptions.id = $.jgrid.randId();
				cm.searchoptions.name = rule.field;
				cm.searchoptions.oper = 'filter';

				if(isIE && cm.inputtype === "text") {
					if(!cm.searchoptions.size) {
						cm.searchoptions.size = 10;
					}
				}
				var elm = $.jgrid.createEl.call($t, cm.inputtype,cm.searchoptions, "", true, that.p.ajaxSelectOptions || {}, true);
				$(elm).addClass("input-elm " + (cm.inputtype === 'select' ? classes.srSelect : classes.srInput) );
				//that.createElement(rule, "");

				if( cm.searchoptions.sopt ) {op = cm.searchoptions.sopt;}
				else if(that.p.sopt) { op= that.p.sopt; }
				else if  ($.inArray(cm.searchtype, that.p.strarr) !== -1) {op = that.p.stropts;}
				else {op = that.p.numopts;}
				// operators
				var s ="", so = 0;
				aoprs = [];
				$.each(that.p.ops, function() { aoprs.push(this.oper); });
				for ( i = 0 ; i < op.length; i++) {
					ina = $.inArray(op[i],aoprs);
					if(ina !== -1) {
						if(so===0) {
							rule.op = that.p.ops[ina].oper;
						}
						s += "<option value='"+that.p.ops[ina].oper+"'>"+that.p.ops[ina].text+"</option>";
						so++;
					}
				}
				$(".selectopts",trpar).empty().append( s );
				$(".selectopts",trpar)[0].selectedIndex = 0;
				if( $.jgrid.msie() && $.jgrid.msiever() < 9) {
					var sw = parseInt($("select.selectopts",trpar)[0].offsetWidth, 10) + 1;
					$(".selectopts",trpar).width( sw );
					$(".selectopts",trpar).css("width","auto");
				}
				// data
				$(".data",trpar).append( elm );
				$.jgrid.bindEv.call($t, elm, cm.searchoptions);
				$(".input-elm",trpar).on('change',function( e ) {
					var elem = e.target;
					if( cm.inputtype === 'custom' && $.jgrid.isFunction(cm.searchoptions.custom_value) ) {
						rule.data =  cm.searchoptions.custom_value.call($t, $(".customelement", this), 'get');
					} else {
						rule.data = $(elem).val();
					}
					if(cm.inputtype === 'select' && cm.searchoptions.multiple ) {
						rule.data = rule.data.join(",");
					}
					that.onchange(); // signals that the filter has changed
				});
				setTimeout(function(){ //IE, Opera, Chrome
				rule.data = $(elm).val();
				if(rule.op === 'nu' || rule.op === 'nn' || $.inArray(rule.op, that.p.unaryOperations) >=0 ) {
					$(elm).attr('readonly','true');
					$(elm).attr('disabled','true');
				}
				
				if(cm.inputtype === 'select' && cm.searchoptions.multiple && Array.isArray(rule.data)) {
					rule.data = rule.data.join(",");
				}
				that.onchange();  // signals that the filter has changed
				}, 0);
			});

			// populate drop down with user provided column definitions
			var j=0;
			for (i = 0; i < that.p.columns.length; i++) {
				// but show only serchable and serchhidden = true fields
				var searchable = (that.p.columns[i].search === undefined) ? true: that.p.columns[i].search,
				hidden = (that.p.columns[i].hidden === true),
				ignoreHiding = (that.p.columns[i].searchoptions.searchhidden === true);
				if ((ignoreHiding && searchable) || (searchable && !hidden)) {
					selected = "";
					if(rule.field === that.p.columns[i].name) {
						selected = " selected='selected'";
						j=i;
					}
					str += "<option value='"+that.p.columns[i].name+"'" +selected+">"+that.p.columns[i].label+"</option>";
				}
			}
			ruleFieldSelect.append( str );
			ruleFieldSelect.data('curr', j);


			// create operator container
			var ruleOperatorTd = $("<td class='operators'></td>");
			tr.append(ruleOperatorTd);
			cm = p.columns[j];
			// create it here so it can be referentiated in the onchange event
			//var RD = that.createElement(rule, rule.data);
			cm.searchoptions.id = $.jgrid.randId();
			if(isIE && cm.inputtype === "text") {
				if(!cm.searchoptions.size) {
					cm.searchoptions.size = 10;
				}
			}
			cm.searchoptions.name = rule.field;
			cm.searchoptions.oper = 'filter';
			var ruleDataInput = $.jgrid.createEl.call($t, cm.inputtype,cm.searchoptions, rule.data, true, that.p.ajaxSelectOptions || {}, true);
			if(rule.op === 'nu' || rule.op === 'nn' || $.inArray(rule.op, that.p.unaryOperations) >=0 ) {
				$(ruleDataInput).attr('readonly','true');
				$(ruleDataInput).attr('disabled','true');
			} //retain the state of disabled text fields in case of null ops
			// dropdown for: choosing operator
			var ruleOperatorSelect = $("<select size='1' name='select_oper' class='selectopts " + classes.srSelect + "'></select>");
			ruleOperatorTd.append(ruleOperatorSelect);
			ruleOperatorSelect.on('change',function() {
				rule.op = $(ruleOperatorSelect).val();
				trpar = $(this).parents("tr").first();
				var rd = $(".input-elm",trpar)[0];
				if (rule.op === "nu" || rule.op === "nn" || $.inArray(rule.op, that.p.unaryOperations) >= 0 ) { // disable for operator "is null" and "is not null"
					rule.data = "";
					if(rd.tagName.toUpperCase() !== 'SELECT') { rd.value = ""; }
					rd.setAttribute("readonly", "true");
					rd.setAttribute("disabled", "true");
				} else {
					if(rd.tagName.toUpperCase() === 'SELECT') { rule.data = rd.value; }
					rd.removeAttribute("readonly");
					rd.removeAttribute("disabled");
				}

				that.onchange();  // signals that the filter has changed
			});

			// populate drop down with all available operators
			if( cm.searchoptions.sopt ) {op = cm.searchoptions.sopt;}
			else if(that.p.sopt) { op= that.p.sopt; }
			else if  ($.inArray(cm.searchtype, that.p.strarr) !== -1) {op = that.p.stropts;}
			else {op = that.p.numopts;}
			str="";
			$.each(that.p.ops, function() { aoprs.push(this.oper); });
			for ( i = 0; i < op.length; i++) {
				ina = $.inArray(op[i],aoprs);
				if(ina !== -1) {
					selected = rule.op === that.p.ops[ina].oper ? " selected='selected'" : "";
					str += "<option value='"+that.p.ops[ina].oper+"'"+selected+">"+that.p.ops[ina].text+"</option>";
				}
			}
			ruleOperatorSelect.append( str );
			// create data container
			var ruleDataTd = $("<td class='data'></td>");
			tr.append(ruleDataTd);

			// textbox for: data
			// is created previously
			//ruleDataInput.setAttribute("type", "text");
			ruleDataTd.append(ruleDataInput);
			$.jgrid.bindEv.call($t, ruleDataInput, cm.searchoptions);
			$(ruleDataInput)
			.addClass("input-elm " + (cm.inputtype === 'select' ? classes.srSelect : classes.srInput) )
			.on('change', function() {
				rule.data = cm.inputtype === 'custom' ? cm.searchoptions.custom_value.call($t, $(".customelement", this),'get') : $(this).val();
				that.onchange(); // signals that the filter has changed
			});

			// create action container
			var ruleDeleteTd = $("<td></td>");
			tr.append(ruleDeleteTd);

			// create button for: delete rule
			if(this.p.ruleButtons === true) {
			var ruleDeleteInput = $("<input type='button' value='-' title='"+that.p.delrule+"' class='delete-rule ui-del " + common.button + "'/ name='delrule'>");
			ruleDeleteTd.append(ruleDeleteInput);
			//$(ruleDeleteInput).html("").height(20).width(30).button({icons: {  primary: "ui-icon-minus", text:false}});
			ruleDeleteInput.on('click',function() {
				// remove rule from group
				for (i = 0; i < group.rules.length; i++) {
					if (group.rules[i] === rule) {
						group.rules.splice(i, 1);
						break;
					}
				}

				that.reDraw(); // the html has changed, force reDraw

				that.onchange(); // signals that the filter has changed
				return false;
			});
			}
			return tr;
		};

		this.getStringForGroup = function(group) {
			var s = "(", index;
			if (group.groups !== undefined) {
				for (index = 0; index < group.groups.length; index++) {
					if (s.length > 1) {
						s += " " + group.groupOp + " ";
					}
					try {
						s += this.getStringForGroup(group.groups[index]);
					} catch (eg) {alert(eg);}
				}
			}

			if (group.rules !== undefined) {
				try{
					for (index = 0; index < group.rules.length; index++) {
						if (s.length > 1) {
							s += " " + group.groupOp + " ";
						}
						s += this.getStringForRule(group.rules[index]);
					}
				} catch (e) {alert(e);}
			}

			s += ")";

			if (s === "()") {
				return ""; // ignore groups that don't have rules
			}
			return s;
		};
		this.getStringForRule = function(rule) {
			var opUF = "",opC="", i, cm, ret, val,
			numtypes = ['int', 'integer', 'float', 'number', 'currency']; // jqGrid
			for (i = 0; i < this.p.ops.length; i++) {
				if (this.p.ops[i].oper === rule.op) {
					opUF = this.p.operands.hasOwnProperty(rule.op) ? this.p.operands[rule.op] : "";
					opC = this.p.ops[i].oper;
					break;
				}
			}
			for (i=0; i<this.p.columns.length; i++) {
				if(this.p.columns[i].name === rule.field) {
					cm = this.p.columns[i];
					break;
				}
			}
			if (cm === undefined) { return ""; }
			val = this.p.autoencode ? $.jgrid.htmlEncode(rule.data) : rule.data;
			if(opC === 'bw' || opC === 'bn') { val = val+"%"; }
			if(opC === 'ew' || opC === 'en') { val = "%"+val; }
			if(opC === 'cn' || opC === 'nc') { val = "%"+val+"%"; }
			if(opC === 'in' || opC === 'ni') { val = " ("+val+")"; }
			if(p.errorcheck) { checkData(rule.data, cm); }
			if($.inArray(cm.searchtype, numtypes) !== -1 || opC === 'nn' || opC === 'nu' || $.inArray(rule.op, this.p.unaryOperations) >= 0 ) { 
				ret = rule.field + " " + opUF + " " + val; 
			} else { 
				ret = rule.field + " " + opUF + " \"" + val + "\""; 
			}
			return ret;
		};
		this.resetFilter = function () {
			this.p.filter = $.extend(true,{},this.p.initFilter);
			this.reDraw();
			this.onchange();
		};
		this.hideError = function() {
			$("th."+common.error, this).html("");
			$("tr.error", this).hide();
		};
		this.showError = function() {
			$("th."+common.error, this).html( $.jgrid.stripScript( this.p.errmsg ));
			$("tr.error", this).show();
		};
		this.toUserFriendlyString = function() {
			return this.getStringForGroup(p.filter);
		};
		this.toString = function() {
			// this will obtain a string that can be used to match an item.
			var that = this;
			function getStringRule(rule) {
				if(that.p.errorcheck) {
					var i, cm;
					for (i=0; i<that.p.columns.length; i++) {
						if(that.p.columns[i].name === rule.field) {
							cm = that.p.columns[i];
							break;
						}
					}
					if(cm) {checkData(rule.data, cm);}
				}
				return rule.op + "(item." + rule.field + ",'" + rule.data + "')";
			}

			function getStringForGroup(group) {
				var s = "(", index;

				if (group.groups !== undefined) {
					for (index = 0; index < group.groups.length; index++) {
						if (s.length > 1) {
							if (group.groupOp === "OR") {
								s += " || ";
							}
							else {
								s += " && ";
							}
						}
						s += getStringForGroup(group.groups[index]);
					}
				}

				if (group.rules !== undefined) {
					for (index = 0; index < group.rules.length; index++) {
						if (s.length > 1) {
							if (group.groupOp === "OR") {
								s += " || ";
							}
							else  {
								s += " && ";
							}
						}
						s += getStringRule(group.rules[index]);
					}
				}

				s += ")";

				if (s === "()") {
					return ""; // ignore groups that don't have rules
				}
				return s;
			}

			return getStringForGroup(this.p.filter);
		};

		// Here we init the filter
		this.reDraw();

		if(this.p.showQuery) {
			this.onchange();
		}
		// mark is as created so that it will not be created twice on this element
		this.filter = true;
	});
};
$.extend($.fn.jqFilter,{
	/*
	 * Return SQL like string. Can be used directly
	 */
	toSQLString : function()
	{
		var s ="";
		this.each(function(){
			s = this.toUserFriendlyString();
		});
		return s;
	},
	/*
	 * Return filter data as object.
	 */
	filterData : function()
	{
		var s;
		this.each(function(){
			s = this.p.filter;
		});
		return s;

	},
	getParameter : function (param) {
		var ret = null;
		if(param !== undefined) {
			this.each(function(i,n){
				if (n.p.hasOwnProperty(param) ) {
					ret = n.p[param];
				}
			});
		}
		return ret ? ret : this[0].p;	},
	resetFilter: function() {
		return this.each(function(){
			this.resetFilter();
		});
	},
	addFilter: function (pfilter) {
		if (typeof pfilter === "string") {
			pfilter = $.jgrid.parse( pfilter );
		}
		this.each(function(){
			this.p.filter = pfilter;
			this.reDraw();
			this.onchange();
		});
	}

});
$.extend($.jgrid,{
	filterRefactor : function ( p  )  {
		/*ruleGroup : {}, ssfield:[], splitSelect:",", groupOpSelect:"OR"*/
		var filters={} /*?*/, rules, k, rule, ssdata, group, rf;
		try {
			filters = typeof p.ruleGroup === "string" ? $.jgrid.parse(p.ruleGroup) : p.ruleGroup;
			if(filters.rules && filters.rules.length) {
				rules = filters.rules;
				for(k=0; k < rules.length; k++) {
					rule = rules[k];
					rf = rule.field;
					if($.inArray(rf, p.ssfield) > -1 ) {
						ssdata = rule.data.split(p.splitSelect);
						if(ssdata.length > 1) {
							if(filters.groups === undefined) {
								filters.groups = [];
							}
							group = { groupOp: p.groupOpSelect, groups: [], rules: [] };
							filters.groups.push(group);
							$.each(ssdata,function(l) {
								if (ssdata[l]) {
									group.rules.push({ data: ssdata[l],	op: rule.op, field: rule.field});
								}
							});
							rules.splice(k, 1);
							k--;
						}
					}
				}
			}
		} catch(e) {}
		return filters;
	}
});
$.jgrid.extend({
	filterToolbar : function(p){
		var regional =  $.jgrid.getRegional(this[0], 'search');
		p = $.extend({
			autosearch: true,
			autosearchDelay: 500,
			searchOnEnter : true,
			beforeSearch: null,
			afterSearch: null,
			beforeClear: null,
			afterClear: null,
			onClearSearchValue : null,
			url : '',
			stringResult: false,
			groupOp: 'AND',
			defaultSearch : "bw",
			searchOperators : false,
			resetIcon : "x",
			splitSelect : ",",
			groupOpSelect : "OR",
			errorcheck : true,
			operands : { "eq" :"==", "ne":"!","lt":"<","le":"<=","gt":">","ge":">=","bw":"^","bn":"!^","in":"=","ni":"!=","ew":"|","en":"!@","cn":"~","nc":"!~","nu":"#","nn":"!#", "bt":"..."},
			disabledKeys :  [9, 16, 17,18,19, 20, 33, 34, 35,36,37,38,39,40,30, 45,112,113,114,115,116,117,118,119,120,121,122,123, 144, 145]
		}, regional , p  || {});
		return this.each(function(){
			var $t = this, unaryOpers=[];
			if($t.p.filterToolbar) { return; }
			if(!$($t).data('filterToolbar')) {
				$($t).data('filterToolbar', p);
			}
			if($t.p.force_regional) {
				p = $.extend(p, regional);
			}
			if ($t.p.customFilterDef !== undefined) {
				for(var uskey in $t.p.customFilterDef) {
					if($t.p.customFilterDef.hasOwnProperty(uskey)  && !p.operands.hasOwnProperty(uskey) ) {
						p.odata.push({ oper: uskey, text: $t.p.customFilterDef[uskey].text} );
						p.operands[uskey] = $t.p.customFilterDef[uskey].operand;
						if($t.p.customFilterDef[uskey].unary === true) {
							unaryOpers.push(uskey);
						}
					}
				}
			}
			var classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].filter,
			common = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].common,
			base = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].base,

			triggerToolbar = function( currentPage) {
				if(typeof(currentPage) === "undefined"){
					currentPage = 1;
				}
				var sdata={}, j=0, v, nm, sopt={},so, ms = false, ssfield = [], msfield = [], afrcol={}, arcustom=[],
					bbt =false, sop, ret=[true,"",""], err=false;
				$.each($t.p.colModel,function(){
					var $elem, fcol = false;
					nm = this.index || this.name;
					sop = this.searchoptions || {};

					if(this.frozen===true && $t.p.frozenColumns === true) {
						$elem = $("#gs_"+ $t.p.idPrefix + $.jgrid.jqID(this.name), $t.grid.fhDiv );
						fcol = true;
					} else {
						$elem = $("#gs_"+ $t.p.idPrefix + $.jgrid.jqID(this.name), $t.grid.hDiv);
					}
					//var $elem = $("#gs_"+ $t.p.idPrefix + $.jgrid.jqID(this.name),  ?  $t.grid.fhDiv : $t.grid.hDiv);
					// in case frozen col is outside the rule list
					if($elem[0] === undefined) {
						$elem = $("#gs_"+ $t.p.idPrefix + $.jgrid.jqID(this.name), $t.grid.hDiv);
					}
					if(p.searchOperators &&  sop.searchOperMenu) {
						so = $elem.parents("table.ui-search-table").find("td.ui-search-oper").children("a").attr("soper") || p.defaultSearch;
					} else {
						so  = (sop.sopt) ? sop.sopt[0] : this.stype==='select' ?  'eq' : p.defaultSearch;
					}
					if( this.stype === "custom" && $.jgrid.isFunction(sop.custom_value) && $elem.length > 0 ) {
						v = sop.custom_value.call($t, $elem, "get");
						arcustom.push(nm);
					} else {
						v = $elem.val();
					}
					// detect multiselect
					if(this.stype === 'select' && sop.multiple && Array.isArray(v)) {
						if(v.length > 0) {
							ms = true;
							ssfield.push(nm);
							v= v.length === 1 ? v[0] : v;
						} else {
							v = "";
						}
					} else if( so !== "bt" && this.stype === 'text' && sop.splitSearchWord === true) {
						msfield.push(nm);
					}
					if(this.searchrules && p.errorcheck) {
						if($.jgrid.isFunction( this.searchrules)) {
							ret = this.searchrules.call($t, v, this);
						} else if($.jgrid && $.jgrid.checkValues) {
							ret = $.jgrid.checkValues.call($t, v, -1, this.searchrules, this.label || this.name);
						}
						if(ret && ret.length && ret[0] === false ) {
							if(this.searchrules.hasOwnProperty('validationError') ){
								err = this.searchrules.validationError;
							}
							return false;
						}
					}
					if(so==="bt") {
						bbt = true;
					}
					if(fcol && (nm !== 'cb' && nm!== 'rn' && nm !== 'subgrid' && nm !== 'sc') ) {
						afrcol[nm] = v;
					}
					if(v || so==="nu" || so==="nn" || $.inArray(so, unaryOpers) >=0) {
						sdata[nm] = v;
						sopt[nm] = so;
						j++;
					} else {
						try {
							delete $t.p.postData[nm];
						} catch (z) {}
					}
				});
				if(ret[0] === false ) {
					if($.jgrid.isFunction(err)) {
						err.call($t, ret[1]);
					} else {
						var errors = $.jgrid.getRegional($t, 'errors');
						$.jgrid.info_dialog(errors.errcap, ret[1], '', {styleUI : $t.p.styleUI });
					}
					return;
				}
				var sd =  j>0 ? true : false;
				if(p.stringResult === true || $t.p.datatype === "local" || p.searchOperators === true)
				{
					var ruleGroup = "{\"groupOp\":\"" + p.groupOp + "\",\"rules\":[";
					var gi=0;
					$.each(sdata,function(i,n){
						if (gi > 0) {ruleGroup += ",";}
						ruleGroup += "{\"field\":\"" + i + "\",";
						ruleGroup += "\"op\":\"" + sopt[i] + "\",";
						n+="";
						ruleGroup += "\"data\":\"" + n.replace(/\\/g,'\\\\').replace(/\"/g,'\\"') + "\"}";
						gi++;
					});
					ruleGroup += "]}";
					// multiselect
					var filters, rules, k, rule, ssdata, group;
					if(ms) {
						filters = $.jgrid.filterRefactor({
							ruleGroup : ruleGroup,
							ssfield : ssfield,
							splitSelect : p.splitSelect,
							groupOpSelect : p.groupOpSelect
						});
						//ruleGroup = JSON.stringify( filters );
					}
					if(bbt) {
						if(!$.isPlainObject(filters)) {
							filters = $.jgrid.parse(ruleGroup);
						}
						if(filters.rules && filters.rules.length) {
							rules = filters.rules;
							for(k=0;k < rules.length; k++) {
								rule = rules[k];
								if(rule.op === "bt") {
									ssdata = rule.data.split("...");
									if(ssdata.length > 1) {
										if(filters.groups === undefined) {
											filters.groups = [];
										}
										group = { groupOp: 'AND', groups: [], rules: [] };
										filters.groups.push(group);
										$.each(ssdata,function(l) {
											var btop = l === 0 ? 'ge' : 'le';
											if(ssdata[l]) {
												group.rules.push({ data: ssdata[l], op: btop, field: rule.field});
											}
										});
										rules.splice(k, 1);
										k--;
									}
								}
							}
						}
					}
					if(  msfield.length ) {
						filters = $.jgrid.filterRefactor({
							ruleGroup : ruleGroup,
							ssfield : msfield,
							splitSelect : sop.splitSearchSeparator || ";",
							groupOpSelect : "OR"
						});
					}
					if(bbt || ms || msfield.length) {
						ruleGroup = JSON.stringify( filters );
					}
					if($t.p.mergeSearch === true && $t.p.searchModules.hasOwnProperty('filterToolbar') && $t.p.searchModules.filterToolbar !== false ) {
						if(gi > 0) {
							$t.p.searchModules.filterToolbar = ruleGroup;
						} else {
							$t.p.searchModules.filterToolbar = null;
						}
						sd = true;
						$.extend($t.p.postData,{filters: $.jgrid.splitSearch($t.p.searchModules)});
					} else {
						$.extend($t.p.postData,{filters:ruleGroup});
					}
					
					$.each(['searchField', 'searchString', 'searchOper'], function(i, n){
						if($t.p.postData.hasOwnProperty(n)) { delete $t.p.postData[n];}
					});
				} else {
					$.extend($t.p.postData,sdata);
				}
				var saveurl;
				if(p.url) {
					saveurl = $t.p.url;
					$($t).jqGrid("setGridParam", { url: p.url });
				}
				var bsr = $($t).triggerHandler("jqGridToolbarBeforeSearch") === 'stop' ? true : false;
				if(!bsr && $.jgrid.isFunction(p.beforeSearch)){bsr = p.beforeSearch.call($t);}
				if(!bsr) { $($t).jqGrid("setGridParam",{search:sd}).trigger("reloadGrid",[ { page: currentPage } ] ); }
				if(saveurl) {$($t).jqGrid("setGridParam",{url:saveurl});}
				$($t).triggerHandler("jqGridToolbarAfterSearch");
				if($.jgrid.isFunction(p.afterSearch)){p.afterSearch.call($t);}
				if($t.p.frozenColumns) {
					setToolbarFozenVal(afrcol,sopt,ssfield, arcustom );
				}
			},
			clearToolbar = function(trigger){
				var sdata={}, so={}, j=0, nm, $elem, v;
				trigger = (typeof trigger !== 'boolean') ? true : trigger;
				$.each($t.p.colModel,function(){
					$elem = $("#gs_"+$t.p.idPrefix+$.jgrid.jqID(this.name),(this.frozen===true && $t.p.frozenColumns === true) ?  $t.grid.fhDiv : $t.grid.hDiv);
					if(this.searchoptions && this.searchoptions.defaultValue !== undefined) {
						v = this.searchoptions.defaultValue;
					} else {
						v = undefined;
					}
					nm = this.index || this.name;
					so[nm] = this.searchoptions && this.searchoptions.sopt ? this.searchoptions.sopt[0] : p.defaultSearch || 'eq';
					switch (this.stype) {
						case 'select' :
							$elem.find("option").each(function (i){
								if(i===0) { this.selected = true; }
								if ($(this).val() === v) {
									this.selected = true;
									return false;
								}
							});
							if ( v !== undefined ) {
								// post the key and not the text
								sdata[nm] = v;
								j++;
							} else {
								try {
									delete $t.p.postData[nm];
								} catch(e) {}
							}
							break;
						case 'text':
							$elem.val(v || "");
							if(v !== undefined) {
								sdata[nm] = v;
								j++;
							} else {
								try {
									delete $t.p.postData[nm];
								} catch (y){}
							}
							break;
						case 'custom':
							if ($.jgrid.isFunction(this.searchoptions.custom_value) && $elem.length > 0 ) {
								this.searchoptions.custom_value.call($t, $elem, "set", v || "");
							}
							break;
					}
				});
				var sd =  j>0 ? true : false;
				$t.p.resetsearch =  true;
				if(p.stringResult === true || $t.p.datatype === "local") {
					var ruleGroup = "{\"groupOp\":\"" + p.groupOp + "\",\"rules\":[";
					var gi=0;
					$.each(sdata,function(i,n){
						if (gi > 0) {ruleGroup += ",";}
						ruleGroup += "{\"field\":\"" + i + "\",";
						ruleGroup += "\"op\":\"" + so[i] + "\",";
						n+="";
						ruleGroup += "\"data\":\"" + n.replace(/\\/g,'\\\\').replace(/\"/g,'\\"') + "\"}";
						gi++;
						if(p.searchOperators) {
							$elem = $("#gs_"+$t.p.idPrefix+$.jgrid.jqID(i),(this.frozen===true && $t.p.frozenColumns === true) ?  $t.grid.fhDiv : $t.grid.hDiv);
							$elem.parents("table.ui-search-table").find("td.ui-search-oper").children("a").attr("soper", so[i]).html(p.operands[so[i]]);
						}
					});
					ruleGroup += "]}";
					if($t.p.mergeSearch === true && $t.p.searchModules.hasOwnProperty('filterToolbar') && $t.p.searchModules.filterToolbar !== false ) {
						if(gi > 0) {
							$t.p.searchModules.filterToolbar = ruleGroup;
						} else {
							$t.p.searchModules.filterToolbar = null;
						}
						sd = true;
						$.extend($t.p.postData,{filters: $.jgrid.splitSearch($t.p.searchModules)});
					} else {
						$.extend($t.p.postData,{filters:ruleGroup});
					}
					
					$.each(['searchField', 'searchString', 'searchOper'], function(i, n){
						if($t.p.postData.hasOwnProperty(n)) { delete $t.p.postData[n];}
					});
				} else {
					$.extend($t.p.postData,sdata);
				}
				var saveurl;
				if(p.url) {
					saveurl = $t.p.url;
					$($t).jqGrid("setGridParam",{url:p.url});
				}
				var bcv = $($t).triggerHandler("jqGridToolbarBeforeClear") === 'stop' ? true : false;
				if(!bcv && $.jgrid.isFunction(p.beforeClear)){bcv = p.beforeClear.call($t);}
				if(!bcv) {
					if(trigger) {
						$($t).jqGrid("setGridParam",{search:sd}).trigger("reloadGrid",[{page:1}]);
					}
				}
				if(saveurl) {$($t).jqGrid("setGridParam",{url:saveurl});}
				$($t).triggerHandler("jqGridToolbarAfterClear");
				if($.jgrid.isFunction(p.afterClear)){p.afterClear();}
			},
			toggleToolbar = function(){
				var trow = $("tr.ui-search-toolbar",$t.grid.hDiv);
				if($t.p.frozenColumns === true) {
					$($t).jqGrid('destroyFrozenColumns');
				}
				if(trow.css("display") === 'none') {
					trow.show();
				} else {
					trow.hide();
				}
				if($t.p.frozenColumns === true) {
					$($t).jqGrid("setFrozenColumns");
				}
			},
			buildRuleMenu = function( elem, left, top ){
				$("#sopt_menu").remove();

				left=parseInt(left,10);
				top=parseInt(top,10) + 18;

				var fs =  $('.ui-jqgrid').css('font-size') || '11px',
					str = '<ul id="sopt_menu" class="ui-search-menu modal-content" role="menu" tabindex="0" style="font-size:'+fs+';left:'+left+'px;top:'+top+'px;">',
					selected = $(elem).attr("soper"), selclass,
					aoprs = [], ina,
					i, nm = $(elem).attr("colname");
				i = $.jgrid.getElemByAttrVal($t.p.colModel, 'name', nm, true);
				if( i === -1 ) {
					return;
				}
				var cm = $t.p.colModel[i], options = $.extend({}, cm.searchoptions);
				if(!options.sopt) {
					options.sopt = [];
					options.sopt[0]= cm.stype==='select' ?  'eq' : p.defaultSearch;
				}
				$.each(p.odata, function() { aoprs.push(this.oper); });
				for ( i = 0 ; i < options.sopt.length; i++) {
					ina = $.inArray(options.sopt[i],aoprs);
					if(ina !== -1) {
						selclass = selected === p.odata[ina].oper ? common.highlight : "";
						str += '<li class="ui-menu-item '+selclass+'" role="presentation"><a class="'+ common.cornerall+' g-menu-item" tabindex="0" role="menuitem" value="'+p.odata[ina].oper+'" oper="'+p.operands[p.odata[ina].oper]+'"><table class="ui-common-table"><tr><td class="opersign">'+p.operands[p.odata[ina].oper]+'</td><td>'+ p.odata[ina].text+'</td></tr></table></a></li>';
					}
				}
				str += "</ul>";
				$('body').append(str);
				$("#sopt_menu").addClass("ui-menu " + classes.menu_widget);
				$("#sopt_menu > li > a").hover(
					function(){ $(this).addClass(common.hover); },
					function(){ $(this).removeClass(common.hover); }
				).click(function() {
					var v = $(this).attr("value"),
					oper = $(this).attr("oper");
					$($t).triggerHandler("jqGridToolbarSelectOper", [v, oper, elem]);
					$("#sopt_menu").hide();
					$(elem).text(oper).attr("soper",v);
					if(p.autosearch===true){
						var inpelm = $(elem).parent().next().children()[0];
						if( $(inpelm).val() || v==="nu" || v ==="nn" || $.inArray(v, unaryOpers) >=0) {
							triggerToolbar();
						}
					}
				});
			},
			setToolbarFozenVal = function( ffields, soper, smultiselect, arcustom) {
				var orgCol = $(".ui-search-toolbar", $t.grid.hDiv),
					frozenCol = $(".ui-search-toolbar", $t.grid.fhDiv);
				$.each(ffields, function(i,n){ 
					// multiselect
					// operations
					if(p.searchOperators) {
						var oper = soper[i];
						if(oper) {
							$(".ui-search-table .ui-search-oper [colname='userId']", orgCol).attr({'soper': oper}).text( p.operands[oper]);
							$(".ui-search-table .ui-search-oper [colname='userId']", frozenCol).attr({'soper': oper}).text( p.operands[oper]);
						}
					}
					// custom element
					if( $.inArray(i, arcustom) > -1) {
						var col = $.jgrid.getElemByAttrVal( $t.p.colModel, 'name', i );
						if ( col && col.searchoptions ) {
							var soptf = col.searchoptions || {};
							if( $.jgrid.isFunction( soptf.custom_value ) ) {
								var $elem = $("#gs_"+ $t.p.idPrefix + $.jgrid.jqID(i), $t.grid.fhDiv ),
								$elem2 = $("#gs_"+ $t.p.idPrefix + $.jgrid.jqID(i), $t.grid.hDiv);

								soptf.custom_value.call($t, $elem, "set", n);
								soptf.custom_value.call($t, $elem2, "set", n);
							}
 						}
					} else {
						$("#gs_"+ $t.p.idPrefix + $.jgrid.jqID(i), orgCol).val( n );
						$("#gs_"+ $t.p.idPrefix + $.jgrid.jqID(i), frozenCol).val( n );
					}
				});
			};
			// create the row
			var tr = $("<tr class='ui-search-toolbar' role='row'></tr>"),
			timeoutHnd, rules, filterobj;
			if( p.restoreFromFilters ) {
				if( $t.p.mergeSearch === true && $t.p.searchModules.hasOwnProperty('filterToolbar') && $t.p.searchModules.filterToolbar !== false) {
					filterobj = $t.p.searchModules.filterToolbar;
				} else {
					filterobj = $t.p.postData.filters;
				}
				if(filterobj) {
					if( typeof filterobj === "string") {
						filterobj = $.jgrid.parse( filterobj );
					}
					rules = (filterobj.rules && filterobj.rules.length) ? filterobj.rules : false;
				}
			}
			//p.disabledKeys = new Set(p.disabledKeys); // experimental 
			var dKeys = new Set(p.disabledKeys);
			if(dKeys.size !== p.disabledKeys.length) { // ie11
				for(var jj=0; jj< p.disabledKeys.length; jj++) {
					dKeys = new Set();
					dKeys.add(p.disabledKeys[jj]);
				}
			}
			var filterLabel;
			if (regional.filterFor) {
				filterLabel = regional.filterFor;
			}
			if($t.p.colSpanHeader.length) {
				$($t).jqGrid('destroyColSpanHeader', false);
			}
			
			$.each($t.p.colModel,function(ci){
				var cm=this, soptions, select="", sot="=", so, i, st, csv, df, elem, restores,
				th = $("<th role='columnheader' class='" + base.headerBox+" ui-th-"+$t.p.direction+" "+(cm.labelClasses || "")+"' id='gsh_" + $t.p.id + "_" + cm.name + "'></th>"),
				thd = $("<div><span aria-label=\"empty\" style=\"display: none;\">empty</span></div>"),
				stbl = $("<table class='ui-search-table' cellspacing='0'><tr><td class='ui-search-oper' headers=''></td><td class='ui-search-input' headers=''></td><td class='ui-search-clear' headers=''></td></tr></table>");
				if(this.hidden===true) { $(th).css("display","none");}
				this.search = this.search === false ? false : true;
				if(this.stype === undefined) {this.stype='text';}
				this.searchoptions = this.searchoptions || {};
				if(this.searchoptions.searchOperMenu === undefined) {
					this.searchoptions.searchOperMenu = true;
				}
				var title;
				if(filterLabel !== undefined){
					title = filterLabel + " " + $t.p.colNames[ci];
				} else {
					title = $t.p.colNames[ci];
				}
				soptions = $.extend({},this.searchoptions , {name:cm.index || cm.name, id: "gs_"+$t.p.idPrefix+cm.name, oper:'search', title:title});
				if(this.search){
					if( p.restoreFromFilters && rules) {
						restores = false;
						for( var is = 0; is < rules.length; is++) {
							if(rules[is].field ) {
								var snm = cm.index || cm.name;
								if( snm === rules[is].field) {
									restores = rules[is];
									break;
								}
							}
						}
					}
					if(p.searchOperators) {
						so  = (soptions.sopt) ? soptions.sopt[0] : cm.stype==='select' ?  'eq' : p.defaultSearch;
						// overwrite  search operators
						if( p.restoreFromFilters && restores) {
							so = restores.op;
						}
						for(i = 0;i<p.odata.length;i++) {
							if(p.odata[i].oper === so) {
								sot = p.operands[so] || "";
								break;
							}
						}
						st = soptions.searchtitle != null ? soptions.searchtitle : p.operandTitle;
						select = this.searchoptions.searchOperMenu ? "<a title='"+st+"' soper='"+so+"' class='soptclass' colname='"+this.name+"'>"+sot+"</a>" : "";
					}
					$("td",stbl).eq( 0 ).attr("columname", cm.name).append(select);
					if(soptions.clearSearch === undefined) {
						soptions.clearSearch = true;
					}
					if(soptions.clearSearch) {
						csv = p.resetTitle || 'Clear Search Value';
						$("td",stbl).eq( 2 ).append("<a title='"+csv+"' tabindex='0' style='padding-right: 0.3em;padding-left: 0.3em;' class='clearsearchclass'>"+p.resetIcon+"</a>");
					} else {
						$("td", stbl).eq( 2 ).hide();
					}
					if(this.surl) {
						soptions.dataUrl = this.surl;
					}
					df="";
					if(soptions.defaultValue ) {
						df = $.jgrid.isFunction(soptions.defaultValue) ? soptions.defaultValue.call($t) : soptions.defaultValue;
					}
					//overwrite default value if restore from filters
					if( p.restoreFromFilters && restores) {
						df = restores.data;
					}
					elem = $.jgrid.createEl.call($t, this.stype, soptions , df, false, $.extend({},$.jgrid.ajaxOptions, $t.p.ajaxSelectOptions || {}));
					if( this.stype !== 'custom') {
						if(this.stype==='select') {
							$(elem).addClass( classes.srSelect );
						} else  {
							$(elem).addClass( classes.srInput );
						}
					}
					$("td",stbl).eq( 1 ).append(elem);
					$(thd).append(stbl);
					if(soptions.dataEvents == null ) {
						soptions.dataEvents = [];
					}
					switch (this.stype)
					{
					case "select":
						if(p.autosearch === true) {
							soptions.dataEvents.push({
								type : "change",
								fn : function() {
									triggerToolbar();
									return false;
								}
							});
						}
						break;
					case "text":
					case "custom":
						if(p.autosearch===true){
							if(p.searchOnEnter) {
								soptions.dataEvents.push({
									type: "keypress",
									fn : function(e) {
										var key = e.charCode || e.keyCode || 0;
										if(key === 13){
											e.preventDefault();
											triggerToolbar();
											return false;
										}
										return this;
									}
								});
							} else {
								soptions.dataEvents.push({
									type: "keydown",
									fn : function(e) {
										var key = e.which;
										if( dKeys.has(key)) {
											// do nothing
										} else if( key === 13 ) {
											e.preventDefault();
											return false;
										} else {
											if(timeoutHnd) { clearTimeout(timeoutHnd); }
											timeoutHnd = setTimeout(function(){triggerToolbar();}, p.autosearchDelay);
										}
									}
								});
							}
						}
						break;
					}

					$.jgrid.bindEv.call($t, elem , soptions);
				}
				$(th).append(thd);
				$(tr).append(th);
				if(!p.searchOperators || select === "") {
					$("td",stbl).eq( 0 ).hide();
				}
			});
			$("table thead",$t.grid.hDiv).append(tr);
			if(p.searchOperators) {
				$(".soptclass",tr).click(function(e){
					var offset = $(this).offset(),
					left = ( offset.left ),
					top = ( offset.top);
					buildRuleMenu(this, left, top );
					e.stopPropagation();
				});
				$("body").on('click', function(e){
					if(e.target.className !== "soptclass") {
						$("#sopt_menu").remove();
					}
				});
			}
			$(".clearsearchclass",tr).click(function() {
				var ptr = $(this).parents("tr").first(),
					colname = $("td.ui-search-oper", ptr).attr('columname'), 
					coli=0,
					soper = $("td.ui-search-oper a", ptr).attr('soper'), 
					cm,
					vv;
				coli = $.jgrid.getElemByAttrVal($t.p.colModel, 'name', colname, true);
				if(coli === -1 ) {
					return false;
				}
				cm = $t.p.colModel[coli];
				var sval  = $.extend( {}, cm.searchoptions || {} ),
					dval = sval.defaultValue ? sval.defaultValue : "",
					elem;
				if(cm.stype === "select") {
					elem = $("td.ui-search-input select", ptr);
					if(dval) {
						elem.val( dval );
					} else {
						elem[0].selectedIndex = 0;
					}
				} else {
					elem = $("td.ui-search-input input", ptr);
					elem.val( dval );
				}
				$($t).triggerHandler("jqGridToolbarClearVal",[elem[0], coli, sval, dval]);
				if($.jgrid.isFunction(p.onClearSearchValue)) {
					p.onClearSearchValue.call($t, elem[0], coli, sval, dval);
				}
				var operText = "";
				if(soper==="nu" || soper==="nn" || $.inArray(soper, unaryOpers) >=0) {
					vv = sval.sopt ?
							sval.sopt[0] :
							cm.stype === "select" ?
								"eq" : 
								p.defaultSearch;
						operText = $t.p.customFilterDef != null && $t.p.customFilterDef[vv] != null ? 
						$t.p.customFilterDef[vv].operand :
						p.operands[vv] || "";
						if(vv === soper) {
							$("td.ui-search-oper a", ptr).attr('soper', 'dummy').text(operText);
						} else {
							$("td.ui-search-oper a", ptr).attr('soper',vv).text(operText);
						}
						
				}
				
				// ToDo custom search type
				if(p.autosearch===true){
					triggerToolbar();
					if(vv === soper) { 
						$("td.ui-search-oper a", ptr).attr('soper',vv).text(operText);
					}
				}
			});
			$(".clearsearchclass",tr).keydown(function(event) {
				if (event.keyCode === 13) {
					event.preventDefault();
					$(".clearsearchclass", tr).trigger("click");
				}
			});
			$($t.grid.hDiv).on("scroll", function(e){
				if(!$t.grid.hScroll) {
					$t.grid.bScroll = true;
				$t.grid.bDiv.scrollLeft = $t.grid.hDiv.scrollLeft;
					if($t.p.footerrow) {
						$t.grid.sDiv.scrollLeft = $t.grid.bDiv.scrollLeft;
					}
					if($t.p.headerrow) {
						$t.grid.hrDiv.scrollLeft = $t.grid.bDiv.scrollLeft;
					}
				}
				$t.grid.hScroll = false;
			});
			if($t.p.colSpanHeader.length) {
				setTimeout(function() { $($t).jqGrid('setColSpanHeader');},0);
			}			
			this.p.filterToolbar = true;
			this.triggerToolbar = triggerToolbar;
			this.clearToolbar = clearToolbar;
			this.toggleToolbar = toggleToolbar;
		});
	},
	destroyFilterToolbar: function () {
		return this.each(function () {
			if (!this.p.filterToolbar) {
				return;
			}
			this.triggerToolbar = null;
			this.clearToolbar = null;
			this.toggleToolbar = null;
			this.p.filterToolbar = false;
			$(this.grid.hDiv).find("table thead tr.ui-search-toolbar").remove();
		});
	},
	refreshFilterToolbar : function ( p ) {
		p = $.extend(true, {
			filters : "",
			onClearVal : null,
			onSetVal : null
		}, p || {});
		return this.each(function () {
			var $t = this, cm = $t.p.colModel, i, l = $t.p.colModel.length, params,
			searchitem, filters, rules, rule, ssfield =[], ia;
			// clear the values on toolbar.
			// do not call clearToolbar
			if(!$t.p.filterToolbar) {
				return;
			}
			params = $($t).data('filterToolbar');
			for (i = 0; i < l; i++) {
				ssfield.push(cm[i].index || cm[i].name);
				searchitem = $("#gs_" +$t.p.idPrefix+ $.jgrid.jqID(cm[i].name));
				switch (cm[i].stype) {
					case 'select' :
					case 'text' :
						searchitem.val("");
						break;
				}
				if($.jgrid.isFunction(p.onClearVal)) {
					p.onClearVal.call($t, searchitem, cm[i].name);
				}
			}
			function setrules (filter) {
				if(filter && filter.rules) { // condition to exit
					rules = filter.rules;
					l = rules.length;
					for (i = 0; i < l; i++) {
						rule = rules[i];
						ia = $.inArray(rule.field, ssfield);
						if( ia !== -1) {
							searchitem = $("#gs_" + $t.p.idPrefix + $.jgrid.jqID(cm[ia].name));
							// problem for between operator
							if ( searchitem.length > 0) {
								if (cm[ia].stype === "select") {
									searchitem.find("option[value='" + $.jgrid.jqID(rule.data) + "']").prop('selected', true);
								} else if (cm[ia].stype === "text") {
									searchitem.val(rule.data);
								}
								if($.jgrid.isFunction(p.onSetVal)) {
									p.onSetVal.call($t, searchitem, cm[ia].name);
								}
								if( params && params.searchOperators) {
									var fsi = searchitem.parent().prev();
									if( fsi.hasClass("ui-search-oper") ) {
										$(".soptclass", fsi ).attr("soper", rule.op);
										if(params.operands.hasOwnProperty(rule.op)) {
											$(".soptclass", fsi ).html( $.jgrid.stripScript( params.operands[rule.op] ) );
										}
									}
								}
							}
					    }
					}
					if(filter.groups) {
						for(var k=0;k<filter.groups.length;k++) {
							setrules(filter.groups[k]);
						}
					}
				}
			}
			if (typeof (p.filters) === "string") {
				if(p.filters.length) {
					filters = p.filters;
				// flat filters only
				} else if( $t.p.postData.hasOwnProperty("filters")) {
					filters = $t.p.postData.filters;
				}
				filters = $.jgrid.parse(filters);
			}
	        if ($.isPlainObject(filters)) {
				setrules( filters );
	        }
		});
	},
	searchGrid : function (p) {
		var regional =  $.jgrid.getRegional(this[0], 'search');
		p = $.extend(true, {
			recreateFilter: false,
			drag: true,
			sField:'searchField',
			sValue:'searchString',
			sOper: 'searchOper',
			sFilter: 'filters',
			loadDefaults: true, // this options activates loading of default filters from grid's postData for Multipe Search only.
			beforeShowSearch: null,
			afterShowSearch : null,
			onInitializeSearch: null,
			afterRedraw : null,
			afterChange: null,
			sortStrategy: null,
			closeAfterSearch : false,
			closeAfterReset: false,
			closeOnEscape : false,
			searchOnEnter : false,
			multipleSearch : false,
			multipleGroup : false,
			//cloneSearchRowOnAdd: true,
			top : 0,
			left: 0,
			jqModal : true,
			modal: false,
			resize : true,
			width: 450,
			height: 'auto',
			dataheight: 'auto',
			showQuery: false,
			errorcheck : true,
			sopt: null,
			stringResult: undefined,
			onClose : null,
			onSearch : null,
			onReset : null,
			toTop : true,
			overlay : 30,
			columns : [],
			tmplNames : null,
			tmplFilters : null,
			tmplLabel : ' Template: ',
			showOnLoad: false,
			layer: null,
			splitSelect : ",",
			groupOpSelect : "OR",
			operands : { "eq" :"=", "ne":"<>","lt":"<","le":"<=","gt":">","ge":">=","bw":"LIKE","bn":"NOT LIKE","in":"IN","ni":"NOT IN","ew":"LIKE","en":"NOT LIKE","cn":"LIKE","nc":"NOT LIKE","nu":"IS NULL","nn":"ISNOT NULL"},
			buttons :[]
		}, regional,  p || {});
		return this.each(function() {
			var $t = this;
			if(!$t.grid) {return;}
			var fid = "fbox_"+$t.p.id,
			showFrm = true,
			mustReload = true,
			IDs = {themodal:'searchmod'+fid,modalhead:'searchhd'+fid,modalcontent:'searchcnt'+fid, scrollelm : fid},
			defaultFilters,//  = ($.isPlainObject($t.p._savedFilter) && !$.isEmptyObject($t.p._savedFilter ) ) ? $t.p._savedFilter :  $t.p.postData[p.sFilter],
			fl,
			unaryOpers = [],
			classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].filter,
			common = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].common;
			p.styleUI = $t.p.styleUI;
			if($.isPlainObject($t.p._savedFilter) && !$.isEmptyObject($t.p._savedFilter )) {
				defaultFilters = $t.p._savedFilter;
			} else if($t.p.mergeSearch === true && $t.p.searchModules.hasOwnProperty('searchGrid') && $t.p.searchModules.searchGrid !== false ) {
				$.extend($t.p.postData,{filters: $.jgrid.splitSearch($t.p.searchModules)});
				defaultFilters =  $t.p.postData[p.sFilter];
			} else {
				defaultFilters = $t.p.postData[p.sFilter];
			}
			if(typeof defaultFilters === "string") {
				defaultFilters = $.jgrid.parse( defaultFilters );
			}
			if(p.recreateFilter === true) {
				$("#"+$.jgrid.jqID(IDs.themodal)).remove();
			}
			function showFilter(_filter) {
				showFrm = $($t).triggerHandler("jqGridFilterBeforeShow", [_filter]);
				if(showFrm === undefined) {
					showFrm = true;
				}
				if(showFrm && $.jgrid.isFunction(p.beforeShowSearch)) {
					showFrm = p.beforeShowSearch.call($t,_filter);
				}
				if(showFrm) {
					$.jgrid.viewModal("#"+$.jgrid.jqID(IDs.themodal),{gbox:"#gbox_"+$.jgrid.jqID( $t.p.id ),jqm:p.jqModal, modal:p.modal, overlay: p.overlay, toTop: p.toTop});
					$($t).triggerHandler("jqGridFilterAfterShow", [_filter]);
					if($.jgrid.isFunction(p.afterShowSearch)) {
						p.afterShowSearch.call($t, _filter);
					}
				}
			}
			if ( $("#"+$.jgrid.jqID(IDs.themodal))[0] !== undefined ) {
				showFilter($("#fbox_"+$.jgrid.jqID( $t.p.id )));
			} else {
				var fil = $("<div><div id='"+fid+"' class='searchFilter' style='overflow:auto'></div></div>").insertBefore("#gview_"+$.jgrid.jqID($t.p.id)),
				align = "left", butleft ="";
				if($t.p.direction === "rtl") {
					align = "right";
					butleft = " style='text-align:left'";
					fil.attr("dir","rtl");
				}
				var columns = $.extend([],$t.p.colModel),
				bS  ="<a id='"+fid+"_search' class='fm-button " + common.button + " fm-button-icon-right ui-search'><span class='" + common.icon_base + " " +classes.icon_search + "'></span>"+p.Find+"</a>",
				bC  ="<a id='"+fid+"_reset' class='fm-button " + common.button +" fm-button-icon-left ui-reset'><span class='" + common.icon_base + " " +classes.icon_reset + "'></span>"+p.Reset+"</a>",
				bQ = "", tmpl="", colnm, found = false, bt, cmi=-1, ms = false, ssfield = [];
				if(p.showQuery) {
					bQ ="<a id='"+fid+"_query' class='fm-button " + common.button + " fm-button-icon-left'><span class='" + common.icon_base + " " +classes.icon_query + "'></span>Query</a>";
				}
				var user_buttons = $.jgrid.buildButtons( p.buttons, bQ+ bS, common);

				// groupheaders names
				var groupH = null;
				if( $($t).jqGrid('isGroupHeaderOn') ) {
					var htable = $("table.ui-jqgrid-htable", $t.grid.hDiv), 
					secRow = htable.find(".jqg-second-row-header"),
					gh_len = $t.p.groupHeader.length;
					// use the last set one
					if(secRow[0] !== undefined) {
						groupH = $t.p.groupHeader[gh_len-1];
					}
				}
				if(!p.columns.length) {
					if(groupH !== null) {
						for(var ij=0;ij<columns.length; ij++){
							var iCol = $.jgrid.inColumnHeader( columns[ij].name, groupH.groupHeaders);
							if(iCol>=0) {
								columns[ij].label = groupH.groupHeaders[iCol].titleText + "::" + $t.p.colNames[ij];
								for(var jj= 1; jj<= groupH.groupHeaders[iCol].numberOfColumns-1; jj++) {
									columns[ij+jj].label = groupH.groupHeaders[iCol].titleText + "::"+$t.p.colNames[ij+jj];
								}
								ij = ij+groupH.groupHeaders[iCol].numberOfColumns-1;
							}
						}
					}
					$.each(columns, function(i,n){
						if(!n.label) {
							n.label = $t.p.colNames[i];
						}
						// find first searchable column and set it if no default filter
						if(!found) {
							var searchable = (n.search === undefined) ?  true: n.search ,
							hidden = (n.hidden === true),
							ignoreHiding = (n.searchoptions && n.searchoptions.searchhidden === true);
							if ((ignoreHiding && searchable) || (searchable && !hidden)) {
								found = true;
								colnm = n.index || n.name;
								cmi =i;
							}
						}
						if( n.stype==="select" &&  n.searchoptions && n.searchoptions.multiple) {
							ms = true;
							ssfield.push( n.index || n.name );
						}
					});
				} else {
					columns = p.columns;
					cmi = 0;
					colnm = columns[0].index || columns[0].name;
				}
				// old behaviour
				if( (!defaultFilters && colnm) || p.multipleSearch === false  ) {
					var cmop = "eq";
					if(cmi >=0 && columns[cmi].searchoptions && columns[cmi].searchoptions.sopt) {
						cmop = columns[cmi].searchoptions.sopt[0];
					} else if(p.sopt && p.sopt.length) {
						cmop = p.sopt[0];
					}
					defaultFilters = {groupOp: "AND", rules: [{field: colnm, op: cmop, data: ""}]};
				}
				found = false;
				if(p.tmplNames && p.tmplNames.length) {
					found = true;
					tmpl = "<tr><td class='ui-search-label'>"+ p.tmplLabel +"</td>";
					tmpl += "<td><select size='1' name='select_template' class='ui-template " + classes.srSelect + "'>";
					tmpl += "<option value='default'>Default</option>";
					$.each(p.tmplNames, function(i,n){
						tmpl += "<option value='"+i+"'>"+n+"</option>";
					});
					tmpl += "</select></td></tr>";
				}
				if ($t.p.customFilterDef !== undefined) {
					for(var uskey in $t.p.customFilterDef) {
						if($t.p.customFilterDef.hasOwnProperty(uskey)  && !p.operands.hasOwnProperty(uskey) ) {
							p.odata.push({ oper: uskey, text: $t.p.customFilterDef[uskey].text} );
							p.operands[uskey] = $t.p.customFilterDef[uskey].operand;
							if($t.p.customFilterDef[uskey].unary === true) {
								unaryOpers.push(uskey);
						}
					}
				}
				}
				bt = "<table class='EditTable' style='border:0px none;margin-top:5px' id='"+fid+"_2'><tbody><tr><td colspan='2'><hr class='" + common.content + "' style='margin:1px'/></td></tr>"+tmpl+"<tr><td class='EditButton' style='text-align:"+align+"'>"+bC+"</td><td class='EditButton' "+butleft+">"+ user_buttons +"</td></tr></tbody></table>";
				fid = $.jgrid.jqID( fid);
				$("#"+fid).jqFilter({
					columns: columns,
					sortStrategy: p.sortStrategy,
					filter: p.loadDefaults ? defaultFilters : null,
					showQuery: p.showQuery,
					errorcheck : p.errorcheck,
					sopt: p.sopt,
					groupButton : p.multipleGroup,
					ruleButtons : p.multipleSearch,
					uniqueSearchFields : p.uniqueSearchFields,
					afterRedraw : p.afterRedraw,
					ops : p.odata,
					operands : p.operands,
					ajaxSelectOptions: $t.p.ajaxSelectOptions,
					groupOps: p.groupOps,
					addsubgrup : p.addsubgrup,
					addrule : p.addrule,
					delgroup : p.delgroup,
					delrule : p.delrule,
					autoencode : $t.p.autoencode,
					unaryOperations : unaryOpers,
					onChange : function() {
						if(this.p.showQuery) {
							$('.query',this).text(this.toUserFriendlyString());
						}
						if ($.jgrid.isFunction(p.afterChange)) {
							p.afterChange.call($t, $("#"+fid), p);
						}
					},
					direction : $t.p.direction,
					id: $t.p.id
				});
				fil.append( bt );
				$("#"+fid+"_2").find("[data-index]").each(function(){
					var index = parseInt($(this).attr('data-index'),10);
					if(index >=0 ) {
						$(this).on('click', function(e) {
							p.buttons[index].click.call($t, $("#"+fid), p, e);
						});
					}
				});
				if(found && p.tmplFilters && p.tmplFilters.length) {
					$(".ui-template", fil).on('change', function(){
						var curtempl = $(this).val();
						if(curtempl==="default") {
							$("#"+fid).jqFilter('addFilter', defaultFilters);
						} else {
							$("#"+fid).jqFilter('addFilter', p.tmplFilters[parseInt(curtempl,10)]);
						}
						return false;
					});
				}
				if(p.multipleGroup === true) {p.multipleSearch = true;}
				$($t).triggerHandler("jqGridFilterInitialize", [$("#"+fid)]);
				if($.jgrid.isFunction(p.onInitializeSearch) ) {
					p.onInitializeSearch.call($t, $("#"+fid));
				}
				p.gbox = "#gbox_"+$.jgrid.jqID($t.p.id);//fid;
				var fs =  $('.ui-jqgrid').css('font-size') || '11px';
				if (p.layer) {
					$.jgrid.createModal(IDs ,fil,p,"#gview_"+$.jgrid.jqID($t.p.id),$("#gbox_"+$.jgrid.jqID($t.p.id))[0], (typeof p.layer ==="string" ? "#"+$.jgrid.jqID(p.layer) : p.layer), (typeof p.layer ==="string" ?  {position: "relative", "font-size":fs} :{ "font-size":fs} ) );
				} else {
					$.jgrid.createModal(IDs ,fil,p,"#gview_"+$.jgrid.jqID($t.p.id),$("#gbox_"+$.jgrid.jqID($t.p.id))[0], null, { "font-size":fs});
				}
				if (p.searchOnEnter || p.closeOnEscape) {
					$("#"+$.jgrid.jqID(IDs.themodal)).keydown(function (e) {
						var $target = $(e.target);
						if (p.searchOnEnter && e.which === 13 && // 13 === $.ui.keyCode.ENTER
								!$target.hasClass('add-group') && !$target.hasClass('add-rule') &&
								!$target.hasClass('delete-group') && !$target.hasClass('delete-rule') &&
								(!$target.hasClass("fm-button") || !$target.is("[id$=_query]"))) {
							e.preventDefault();
							$("#"+fid+"_search").click();
							return false;
						}
						if (p.closeOnEscape && e.which === 27) { // 27 === $.ui.keyCode.ESCAPE
							$("#"+$.jgrid.jqID(IDs.modalhead)).find(".ui-jqdialog-titlebar-close").click();
							return false;
						}
					});
				}
				if(bQ) {
					$("#"+fid+"_query").on('click', function(){
						$(".queryresult", fil).toggle();
						return false;
					});
				}
				if (p.stringResult===undefined) {
					// to provide backward compatibility, inferring stringResult value from multipleSearch
					p.stringResult = p.multipleSearch;
				}
				$("#"+fid+"_search").on('click', function(){
					var sdata={}, filters;
					fl = $("#"+fid);
					fl.find(".input-elm:focus").change();
					if( ms && p.multipleSearch) {
						$t.p._savedFilter = {};
						filters = $.jgrid.filterRefactor({
							ruleGroup: $.extend(true, {}, fl.jqFilter('filterData')),
							ssfield : ssfield,
							splitSelect : p.splitSelect,
							groupOpSelect : p.groupOpSelect
						});
						$t.p._savedFilter = $.extend(true, {}, fl.jqFilter('filterData'));
					} else {
						filters = fl.jqFilter('filterData');
					}
					if(p.errorcheck) {
						fl[0].hideError();
						if(!p.showQuery) {fl.jqFilter('toSQLString');}
						if(fl[0].p.error) {
							fl[0].showError();
							return false;
						}
					}

					if(p.stringResult) {
						sdata[p.sFilter] = JSON.stringify( filters );
						$.each([p.sField,p.sValue, p.sOper], function() {sdata[this] = "";});
					} else {
						if(p.multipleSearch) {
							sdata[p.sFilter] = filters;
							$.each([p.sField,p.sValue, p.sOper], function() {sdata[this] = "";});
						} else {
							sdata[p.sField] = filters.rules[0].field;
							sdata[p.sValue] = filters.rules[0].data;
							sdata[p.sOper] = filters.rules[0].op;
							sdata[p.sFilter] = "";
						}
					}
					if(typeof sdata[p.sFilter] !== "string") {
						sdata[p.sFilter] = JSON.stringify( sdata[p.sFilter] );
					}
					$t.p.search = true;
					if($t.p.mergeSearch === true && $t.p.searchModules.hasOwnProperty('searchGrid') && $t.p.searchModules.searchGrid !== false  && p.multipleSearch) {
						if(sdata[p.sFilter] !==  "") {
							$t.p.searchModules.searchGrid = sdata[p.sFilter];
						} else {
							$t.p.searchModules.searchGrid = null;
						}
						$.extend($t.p.postData,{filters: $.jgrid.splitSearch($t.p.searchModules)});						
					} else {
						$.extend($t.p.postData,sdata);
					}
					mustReload = $($t).triggerHandler("jqGridFilterSearch");
					if( mustReload === undefined) {
						mustReload = true;
					}
					if(mustReload && $.jgrid.isFunction(p.onSearch) ) {
						mustReload = p.onSearch.call($t, $t.p.filters);
					}
					if (mustReload !== false) {
						$($t).trigger("reloadGrid",[{page:1}]);
					}
					if(p.closeAfterSearch) {
						$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID($t.p.id),jqm:p.jqModal,onClose: p.onClose});
					}
					return false;
				});
				$("#"+fid+"_reset").on('click', function(){
					var sdata={},
					fl = $("#"+fid);
					$t.p.search = false;
					$t.p.resetsearch =  true;
					if(p.multipleSearch===false) {
						sdata[p.sField] = sdata[p.sValue] = sdata[p.sOper] = "";
					} else {
						sdata[p.sFilter] = "";
					}
					fl[0].resetFilter();
					if(found) {
						$(".ui-template", fil).val("default");
					}
					if($t.p.mergeSearch === true && $t.p.searchModules.hasOwnProperty('searchGrid') && $t.p.searchModules.searchGrid !== false ) {
						$t.p.searchModules.searchGrid = null;
						$.extend($t.p.postData,{filters: $.jgrid.splitSearch($t.p.searchModules)});
						$t.p.search = true;
					} else {
						$.extend($t.p.postData,sdata);
					}
					mustReload = $($t).triggerHandler("jqGridFilterReset");
					if(mustReload === undefined) {
						mustReload = true;
					}
					if(mustReload && $.jgrid.isFunction(p.onReset) ) {
						mustReload = p.onReset.call($t);
					}
					if(mustReload !== false) {
						$($t).trigger("reloadGrid",[{page:1}]);
					}
					if (p.closeAfterReset) {
						$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID($t.p.id),jqm:p.jqModal,onClose: p.onClose});
					}
					return false;
				});
				showFilter($("#"+fid));
				$(".fm-button:not(."+common.disabled+")",fil).hover(
					function(){$(this).addClass(common.hover);},
					function(){$(this).removeClass(common.hover);}
				);
			}
		});
	},
	filterInput : function( val, p) {
		p = $.extend(true, {
			defaultSearch : 'cn',
			groupOp : 'OR',
			searchAll : false,
			beforeSearch : null,
			afterSearch : null,
			selectFirstFound : false,
			firstFoundTimeout : 30
		}, p || {});
		return this.each(function(){
			var $t = this;
			if(!$t.grid) {return;}
			var nm, sop,ruleGroup = "{\"groupOp\":\"" + p.groupOp + "\",\"rules\":[", gi=0, so, searchable;
			val +="";
			//if($t.p.datatype !== 'local') { return; }
			$.each($t.p.colModel,function(){
				nm = this.index || this.name;
				sop = this.searchoptions || {};
				so  = p.defaultSearch ? p.defaultSearch : (sop.sopt) ? sop.sopt[0] : p.defaultSearch;
				searchable =  this.search === undefined  ? true : this.search;
				if ((searchable || p.searchAll) && val !== "") {
					if (gi > 0) {ruleGroup += ",";}
					ruleGroup += "{\"field\":\"" + nm + "\",";
					ruleGroup += "\"op\":\"" + so + "\",";
					ruleGroup += "\"data\":\"" + val.replace(/\\/g,'\\\\').replace(/\"/g,'\\"') + "\"}";
					gi++;
				}
			});
			ruleGroup += "]}";
			if($t.p.mergeSearch === true && $t.p.searchModules.hasOwnProperty('filterInput') && $t.p.searchModules.filterInput !== false  ) {
				if(gi > 0) {
					$t.p.searchModules.filterInput = ruleGroup;
				} else {
					$t.p.searchModules.filterInput = null;
				}
				$.extend($t.p.postData,{filters: $.jgrid.splitSearch($t.p.searchModules)});
			} else {
				$.extend($t.p.postData,{filters:ruleGroup});
			}
			$.each(['searchField', 'searchString', 'searchOper'], function(i, n){
				if($t.p.postData.hasOwnProperty(n)) { delete $t.p.postData[n];}
			});
			var bsr = $($t).triggerHandler("jqGridFilterInputBeforeSearch") === 'stop' ? true : false;
			if(!bsr && $.jgrid.isFunction(p.beforeSearch)){bsr = p.beforeSearch.call($t);}
			if(!bsr) { $($t).jqGrid("setGridParam",{search:true}).trigger("reloadGrid",[{page:1}]); }
			if(p.selectFirstFound ) {
				setTimeout(function(){
					var row = $($t).jqGrid('getGridRowByIndex', 1);
					$($t).jqGrid("setSelection", row.id, false);
				}, p.firstFoundTimeout);
			}
			$($t).triggerHandler("jqGridFilterInputAfterSearch");
			if($.jgrid.isFunction(p.afterSearch)){p.afterSearch.call($t);}
		});
	},
	autoSelect : function (o) {
		o = $.extend(true,{
			field : "",
			direction : "asc",
			src_date : "Y-m-d",
			allValues : "All",
			count_item : true,
			create_value : true
		}, o || {} );
		return this.each(function() {
			var $t = this, item, sdata="";
			if( o.field && $t.p.data && Array.isArray( $t.p.data )) {
				var query, res, s_cnt, tmp = [], cm,
				result, i;

				try {
					query = $.jgrid.from.call($t, $t.p.data);
					result = query.groupBy( o.field, o.direction, "text", o.src_date);
					i = result.length;
				} catch(e) {

				}
				if(result && result.length) {
					res =  $("#gsh_"+$t.p.id+"_"+o.field).find("td.ui-search-input > select");
					i = result.length;
					if(o.allValues) {
						sdata = "<option value=''>"+ o.allValues +"</option>";
						tmp.push(":" + o.allValues);
					}
					while(i--) {
						item = result[i];
						s_cnt = o.count_item ? " (" +item.items.length+")" : "";
						sdata += "<option value='"+item.unique+"'>"+ item.unique + s_cnt+"</option>";
						tmp.push(item.unique+":"+item.unique + s_cnt);
					}
					res.append(sdata);
					res.on('change',function(){
						$t.triggerToolbar();
					});
					if( o.create_value ) {
						cm = $.jgrid.getElemByAttrVal($t.p.colModel, 'name', o.field, false);
						if( !$.isEmptyObject( cm ) ) {
							if( cm.searchoptions ) {
								$.extend(cm.searchoptions, {value: tmp.join(";")});
							} else {
								cm.searchoptions = {};
								cm.searchoptions.value = tmp.join(";");
							}
						}
					}
				}
			}
		});
	}
});

//module begin
var rp_ge = {};
$.jgrid.extend({
	editGridRow : function(rowid, p){
		var regional =  $.jgrid.getRegional(this[0], 'edit'),
			currstyle = this[0].p.styleUI,
			styles = $.jgrid.styleUI[currstyle].formedit,
			commonstyle = $.jgrid.styleUI[currstyle].common;

		p = $.extend(true, {
			top : 0,
			left: 0,
			width: '500',
			datawidth: 'auto',
			height: 'auto',
			dataheight: 'auto',
			modal: false,
			overlay : 30,
			drag: true,
			resize: true,
			url: null,
			mtype : "POST",
			clearAfterAdd :true,
			closeAfterEdit : false,
			reloadAfterSubmit : true,
			onInitializeForm: null,
			beforeInitData: null,
			beforeShowForm: null,
			afterShowForm: null,
			beforeSubmit: null,
			afterSubmit: null,
			onclickSubmit: null,
			afterComplete: null,
			onclickPgButtons : null,
			afterclickPgButtons: null,
			editData : {},
			recreateForm : false,
			jqModal : true,
			closeOnEscape : false,
			addedrow : "first",
			topinfo : '',
			bottominfo: '',
			saveicon : [],
			closeicon : [],
			savekey: [false,13],
			navkeys: [false,38,40],
			checkOnSubmit : false,
			checkOnUpdate : false,
			processing : false,
			onClose : null,
			ajaxEditOptions : {},
			serializeEditData : null,
			viewPagerButtons : true,
			overlayClass : commonstyle.overlay,
			removemodal : true,
			form: 'edit',
			template : null,
			focusField : true,
			editselected : false,
			html5Check : false,
			buttons : []
		}, regional, p || {});
		rp_ge[$(this)[0].p.id] = p;
		return this.each(function(){
			var $t = this;
			if (!$t.grid || !rowid) {return;}
			$t.p.savedData = {};
			var gID = $t.p.id,
			frmgr = "FrmGrid_"+gID, frmtborg = "TblGrid_"+gID, frmtb = "#"+$.jgrid.jqID(frmtborg), frmtb2,
			IDs = {themodal:'editmod'+gID,modalhead:'edithd'+gID,modalcontent:'editcnt'+gID, scrollelm : frmgr},
			showFrm = true, maxCols = 1, maxRows=0,	postdata, diff, frmoper,
			templ = typeof rp_ge[$t.p.id].template === "string" && rp_ge[$t.p.id].template.length > 0,
			errors =$.jgrid.getRegional(this, 'errors');
			rp_ge[$t.p.id].styleUI = $t.p.styleUI || 'jQueryUI';
			if($.jgrid.isMobile()) {
				rp_ge[$t.p.id].resize = false;
			}
			if (rowid === "new") {
				rowid = "_empty";
				frmoper = "add";
				p.caption=rp_ge[$t.p.id].addCaption;
			} else {
				p.caption=rp_ge[$t.p.id].editCaption;
				frmoper = "edit";
			}
			if(!p.recreateForm) {
				if( $($t).data("formProp") ) {
					$.extend(rp_ge[$(this)[0].p.id], $($t).data("formProp"));
				}
			}
			var closeovrl = true;
			if(p.checkOnUpdate && p.jqModal && !p.modal) {
				closeovrl = false;
			}
			function getFormData(){
				var a2 ={}, i;
				$(frmtb).find(".FormElement").each(function() {
					var celm = $(".customelement", this);
					if (celm.length) {
						var  elem = celm[0], nm = $(elem).attr('name');
						$.each($t.p.colModel, function(){
							if(this.name === nm && this.editoptions && $.jgrid.isFunction(this.editoptions.custom_value)) {
								try {
									let cvr = this.editoptions.custom_value.call($t, $("#"+$.jgrid.jqID(nm),frmtb),'get');
									if( cvr === "#ignoreme#") {
										
									} else if (crv === undefined) {
										throw "e1";
									} else {
										postdata[nm] = cvr;
									}
								} catch (e) {
									if (e==="e1") {$.jgrid.info_dialog(errors.errcap,"function 'custom_value' "+rp_ge[$(this)[0]].p.msg.novalue,rp_ge[$(this)[0]].p.bClose, {styleUI : rp_ge[$(this)[0]].p.styleUI });}
									else {$.jgrid.info_dialog(errors.errcap,e.message,rp_ge[$(this)[0]].p.bClose, {styleUI : rp_ge[$(this)[0]].p.styleUI });}
								}
								return true;
							}
						});
					} else {
						switch ($(this).get(0).type) {
							case "checkbox":
								if($(this).is(":checked")) {
									postdata[this.name]= $(this).val();
								} else {
									var ofv = $(this).attr("offval");
									postdata[this.name]= ofv;
								}
							break;
							case "select-one":
								postdata[this.name]= $(this).val();
							break;
							case "select-multiple":
								postdata[this.name]= $(this).val();
								postdata[this.name] = postdata[this.name] ? postdata[this.name].join(",") : "";
							break;
							case "radio" :
								if(a2.hasOwnProperty(this.name)) {
									return true;
								} else {
									a2[this.name] = ($(this).attr("offval") === undefined) ? "off" : $(this).attr("offval");
								}
								break;
							default:
								postdata[this.name] = $(this).val();
						}
						if($t.p.autoencode) {
							postdata[this.name] = $.jgrid.htmlEncode(postdata[this.name]);
						}
					}
				});
				for(i in a2 ) {
					if( a2.hasOwnProperty(i)) {
						var val = $('input[name="'+i+'"]:checked',frmtb).val();
						postdata[i] = (val !== undefined) ? val : a2[i];
						if($t.p.autoencode) {
							postdata[i] = $.jgrid.htmlEncode(postdata[i]);
						}
					}
				}
				return true;
			}
			function createData(rowid,obj,tb,maxcols){
				var nm, hc,trdata, cnt=0,tmp, dc,elc, retpos=[], ind=false,
				tdtmpl = "<td class='CaptionTD'></td><td class='DataTD'></td>", tmpl="", i, ffld; //*2
				for (i =1; i<=maxcols;i++) {
					tmpl += tdtmpl;
				}
				if(rowid !== '_empty') {
					ind = $(obj).jqGrid("getInd",rowid);
				}
				$(obj.p.colModel).each( function(i) {
					nm = this.name;
					// hidden fields are included in the form
					if(this.editrules && this.editrules.edithidden === true) {
						hc = false;
					} else {
						hc = this.hidden === true ? true : false;
					}
					dc = hc ? "style='display:none'" : "";
					if ( nm !== 'cb' && nm !== 'subgrid' && this.editable===true && nm !== 'rn' && nm!=='sc') {
						if(ind === false) {
							tmp = "";
						} else {
							if(nm === obj.p.ExpandColumn && obj.p.treeGrid === true) {
								tmp = $("td[role='gridcell']",obj.rows[ind]).eq( i ).text();
							} else {
								try {
									tmp =  $.unformat.call(obj, $("td[role='gridcell']",obj.rows[ind]).eq( i ),{rowId:rowid, colModel:this},i);
								} catch (_) {
									tmp =  (this.edittype && this.edittype === "textarea") ? $("td[role='gridcell']",obj.rows[ind]).eq( i ).text() : $("td[role='gridcell']",obj.rows[ind]).eq( i ).html();
								}
								if(!tmp || tmp === "&nbsp;" || tmp === "&#160;" || (tmp.length===1 && tmp.charCodeAt(0)===160) ) {tmp='';}
							}
						}
						var opt = $.extend({}, this.editoptions || {} ,{id:nm,name:nm, rowId: rowid, oper:frmoper, module : 'form', checkUpdate : rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate}),
						frmopt = $.extend({}, {elmprefix:'',elmsuffix:'',rowabove:false,rowcontent:''}, this.formoptions || {}),
						rp = parseInt(frmopt.rowpos,10) || cnt+1,
						cp = parseInt((parseInt(frmopt.colpos,10) || 1)*2,10);
						if(rowid === "_empty" && opt.defaultValue ) {
							tmp = $.jgrid.isFunction(opt.defaultValue) ? opt.defaultValue.call($t) : opt.defaultValue;
						}
						if(!this.edittype) {
							this.edittype = "text";
						}
						if($t.p.autoencode) {
							tmp = $.jgrid.htmlDecode(tmp);
						}
						elc = $.jgrid.createEl.call($t,this.edittype,opt,tmp,false,$.extend({},$.jgrid.ajaxOptions,obj.p.ajaxSelectOptions || {}));
						//if(tmp === "" && this.edittype == "checkbox") {tmp = $(elc).attr("offval");}
						//if(tmp === "" && this.edittype == "select") {tmp = $("option:eq(0)",elc).text();}
						if(this.edittype === "select") {
							tmp = $(elc).val();
							if($(elc).get(0).type === 'select-multiple' && tmp) {
								tmp = tmp.join(",");
							}
						}
						if(this.edittype === 'checkbox') {
							if($(elc).is(":checked")) {
								tmp= $(elc).val();
							} else {
								tmp = $(elc).attr("offval");
							}
						}
						$(elc).addClass("FormElement");
						if(this.edittype === 'select') {
							$(elc).addClass( styles.selectClass );
						} else 	if( $.inArray(this.edittype, 
							['text','textarea','password', 
							'color', 'date', 'datetime', 'datetime-local','email','month',
							'number','range', 'search', 'tel', 'time', 'url','week'] ) > -1) {
							$(elc).addClass( styles.inputClass );
						}
						ffld = true;
						if(templ) {
							var ftmplfld = $(frm).find("#"+nm);
							if(ftmplfld.length){
								ftmplfld.replaceWith( elc );
							} else {
								ffld = false;
							}
						} else {
							//--------------------
							trdata = $(tb).find("tr[rowpos="+rp+"]");
							if(frmopt.rowabove) {
								var newdata = $("<tr><td class='contentinfo' colspan='"+(maxcols*2)+"'>"+frmopt.rowcontent+"</td></tr>");
								$(tb).append(newdata);
								newdata[0].rp = rp;
							}
							if ( trdata.length===0 ) {
								if(maxcols > 1) {
									trdata = $("<tr rowpos='"+rp+"'></tr>").addClass("FormData").attr("id","tr_"+nm);
								} else {
									trdata = $("<tr "+dc+" rowpos='"+rp+"'></tr>").addClass("FormData").attr("id","tr_"+nm);
								}
								$(trdata).append(tmpl);
								$(tb).append(trdata);
								trdata[0].rp = rp;
							}
							$("td",trdata[0]).eq( cp-2 ).html("<label for='"+nm+"' class='" + styles.labelClass + "'>"+ (frmopt.label === undefined ? obj.p.colNames[i]: frmopt.label) + "</label>");
							$("td",trdata[0]).eq( cp-1 ).append(frmopt.elmprefix).append(elc).append(frmopt.elmsuffix);
							if( maxcols > 1 && hc) {
								$("td",trdata[0]).eq( cp-2 ).hide();
								$("td",trdata[0]).eq( cp-1 ).hide();
							}
							//-------------------------
						}
						if( (rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) && ffld) {
							$t.p.savedData[nm] = tmp;
						}
						if(this.edittype==='custom' && $.jgrid.isFunction(opt.custom_value) ) {
							opt.custom_value.call($t, $("#"+nm, elc),'set',tmp);
						}
						$.jgrid.bindEv.call($t, elc, opt);
						retpos[cnt] = i;
						cnt++;
					}
				});
				if( cnt > 0) {
					var idrow;
					if(templ) {
						idrow = "<div class='FormData' style='display:none'><input class='FormElement' id='id_g' type='text' name='"+obj.p.id+"_id' value='"+rowid+"'/>";
						$(frm).append(idrow);
					} else {
						idrow = $("<tr class='FormData' style='display:none'><td class='CaptionTD'></td><td colspan='"+ (maxcols*2-1)+"' class='DataTD'><input class='FormElement' id='id_g' type='text' name='"+obj.p.id+"_id' value='"+rowid+"'/></td></tr>");
						idrow[0].rp = cnt+999;
						$(tb).append(idrow);
					} 
					//$(tb).append(idrow);
					if(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) {
						$t.p.savedData[obj.p.id+"_id"] = rowid;
					}
				}			
				return retpos;
			}
			function fillData(rowid,obj,fmid){
				var nm,cnt=0,tmp, fld,opt,vl,vlc;
				if(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) { 
					$t.p.savedData = {};
					$t.p.savedData[obj.p.id+"_id"]=rowid;
				}
				var cm = obj.p.colModel;
				if(rowid === '_empty') {
					$(cm).each(function(){
						nm = this.name;
						opt = $.extend({}, this.editoptions || {} );
						fld = $("#"+$.jgrid.jqID(nm),fmid);
						if(fld && fld.length && fld[0] !== null) {
							vl = "";
							if(this.edittype === 'custom' && $.jgrid.isFunction(opt.custom_value)) {
								opt.custom_value.call($t, $("#"+nm,fmid),'set',vl);
							} else if(opt.defaultValue ) {
								vl = $.jgrid.isFunction(opt.defaultValue) ? opt.defaultValue.call($t) : opt.defaultValue;
								if(fld[0].type==='checkbox') {
									vlc = vl.toLowerCase();
									if(vlc.search(/(false|f|0|no|n|off|undefined)/i)<0 && vlc!=="") {
										fld[0].checked = true;
										fld[0].defaultChecked = true;
										fld[0].value = vl;
									} else {
										fld[0].checked = false;
										fld[0].defaultChecked = false;
									}
								} else {fld.val(vl);}
							} else {
								if( fld[0].type==='checkbox' ) {
									fld[0].checked = false;
									fld[0].defaultChecked = false;
									vl = $(fld).attr("offval");
								} else if (fld[0].type && fld[0].type.slice(0,6)==='select') {
									fld[0].selectedIndex = 0;
								} else {
									fld.val(vl);
								}
							}
							if(rp_ge[$t.p.id].checkOnSubmit===true || rp_ge[$t.p.id].checkOnUpdate) {
								$t.p.savedData[nm] = vl;
							}
						}
					});
					$("#id_g",fmid).val(rowid);
					return;
				}
				var tre = $(obj).jqGrid("getInd",rowid,true);
				if(!tre) {return;}
				$('td[role="gridcell"]',tre).each( function(i) {
					nm = cm[i].name;
					// hidden fields are included in the form
					if ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn' && cm[i].editable===true && nm !== 'sc') {
						if(nm === obj.p.ExpandColumn && obj.p.treeGrid === true) {
							tmp = $(this).text();
						} else {
							try {
								tmp =  $.unformat.call(obj, $(this),{rowId:rowid, colModel:cm[i]},i);
							} catch (_) {
								tmp = cm[i].edittype==="textarea" ? $(this).text() : $(this).html();
							}
						}
						if($t.p.autoencode) {tmp = $.jgrid.htmlDecode(tmp);}
						if(rp_ge[$t.p.id].checkOnSubmit===true || rp_ge[$t.p.id].checkOnUpdate) { 
							$t.p.savedData[nm] = tmp;
						}
						nm = $.jgrid.jqID(nm);
						switch (cm[i].edittype) {
							case "select":
								var opv = tmp.split(",");
								opv = $.map(opv,function(n){return $.jgrid.trim(n);});
								$("#"+nm+" option",fmid).each(function(){
									if (!cm[i].editoptions.multiple && ($.jgrid.trim(tmp) === $.jgrid.trim($(this).text()) || opv[0] === $.jgrid.trim($(this).text()) || opv[0] === $.jgrid.trim($(this).val())) ){
										this.selected= true;
									} else if (cm[i].editoptions.multiple){
										if(  $.inArray($.jgrid.trim($(this).text()), opv ) > -1 || $.inArray($.jgrid.trim($(this).val()), opv ) > -1  ){
											this.selected = true;
										}else{
											this.selected = false;
										}
									} else {
										this.selected = false;
									}
								});
								if(rp_ge[$t.p.id].checkOnSubmit===true || rp_ge[$t.p.id].checkOnUpdate) {
									tmp = $("#"+nm,fmid).val();
									if(cm[i].editoptions.multiple) {
										tmp = tmp.join(",");
									}
									$t.p.savedData[nm] = tmp;
								}
								break;
							case "checkbox":
								tmp = String(tmp);
								if(cm[i].editoptions && cm[i].editoptions.value) {
									var cb = cm[i].editoptions.value.split(":");
									if(cb[0] === tmp) {
										$("#"+nm, fmid)[$t.p.useProp ? 'prop': 'attr']({"checked":true, "defaultChecked" : true});
									} else {
										$("#"+nm, fmid)[$t.p.useProp ? 'prop': 'attr']({"checked":false, "defaultChecked" : false});
									}
								} else {
									tmp = tmp.toLowerCase();
									if(tmp.search(/(false|f|0|no|n|off|undefined)/i)<0 && tmp!=="") {
										$("#"+nm, fmid)[$t.p.useProp ? 'prop': 'attr']("checked",true);
										$("#"+nm, fmid)[$t.p.useProp ? 'prop': 'attr']("defaultChecked",true); //ie
									} else {
										$("#"+nm, fmid)[$t.p.useProp ? 'prop': 'attr']("checked", false);
										$("#"+nm, fmid)[$t.p.useProp ? 'prop': 'attr']("defaultChecked", false); //ie
									}
								}
								if(rp_ge[$t.p.id].checkOnSubmit===true || rp_ge[$t.p.id].checkOnUpdate) {
									if($("#"+nm, fmid).is(":checked")) {
										tmp = $("#"+nm, fmid).val();
									} else {
										tmp = $("#"+nm, fmid).attr("offval");
									}
									$t.p.savedData[nm] = tmp;
								}
								break;
							case 'custom' :
								try {
									if(cm[i].editoptions && $.jgrid.isFunction(cm[i].editoptions.custom_value)) {
										cm[i].editoptions.custom_value.call($t, $("#"+nm, fmid),'set',tmp);
									} else {throw "e1";}
								} catch (e) {
									if (e==="e1") {$.jgrid.info_dialog(errors.errcap,"function 'custom_value' "+rp_ge[$(this)[0]].p.msg.nodefined,$.rp_ge[$(this)[0]].p.bClose, {styleUI : rp_ge[$(this)[0]].p.styleUI });}
									else {$.jgrid.info_dialog(errors.errcap,e.message,$.rp_ge[$(this)[0]].p.bClose, {styleUI : rp_ge[$(this)[0]].p.styleUI });}
								}
								break;
							default :
								if(tmp === "&nbsp;" || tmp === "&#160;" || (tmp.length===1 && tmp.charCodeAt(0)===160) ) {tmp='';}
								$("#"+nm,fmid).val(tmp);
						}
						cnt++;
					}
				});
				if(cnt>0) {
					$("#id_g",frmtb).val(rowid);
					if( rp_ge[$t.p.id].checkOnSubmit===true || rp_ge[$t.p.id].checkOnUpdate ) {
						$t.p.savedData[obj.p.id+"_id"] = rowid;
					}
				}
			}
			function setNulls() {
				$.each($t.p.colModel, function(i,n){
					if(n.editoptions && n.editoptions.NullIfEmpty === true) {
						if(postdata.hasOwnProperty(n.name) && postdata[n.name] === "") {
							postdata[n.name] = 'null';
						}
					}
				});
			}
			function postIt() {
				var copydata, ret=[true,"",""], onCS = {}, opers = $t.p.prmNames, idname, oper, key, selr, i, url;
				
				var retvals = $($t).triggerHandler("jqGridAddEditBeforeCheckValues", [postdata, $(frmgr), frmoper]);
				if(retvals && typeof retvals === 'object') {postdata = retvals;}
				
				if($.jgrid.isFunction(rp_ge[$t.p.id].beforeCheckValues)) {
					retvals = rp_ge[$t.p.id].beforeCheckValues.call($t, postdata, $(frmgr),frmoper);
					if(retvals && typeof retvals === 'object') {postdata = retvals;}
				}
				if(rp_ge[$t.p.id].html5Check) {
					if( !$.jgrid.validateForm(frm[0]) ) {
						return false;
					}
				}
				for( key in postdata ){
					if(postdata.hasOwnProperty(key)) {
						ret = $.jgrid.checkValues.call($t,postdata[key],key);
						if(ret[0] === false) {break;}
					}
				}
				setNulls();
				if(ret[0]) {
					onCS = $($t).triggerHandler("jqGridAddEditClickSubmit", [rp_ge[$t.p.id], postdata, frmoper]);
					if( onCS === undefined && $.jgrid.isFunction( rp_ge[$t.p.id].onclickSubmit)) { 
						onCS = rp_ge[$t.p.id].onclickSubmit.call($t, rp_ge[$t.p.id], postdata, frmoper) || {}; 
					}
					ret = $($t).triggerHandler("jqGridAddEditBeforeSubmit", [postdata, $(frmgr), frmoper]);
					if(ret === undefined) {
						ret = [true,"",""];
					}
					if( ret[0] && $.jgrid.isFunction(rp_ge[$t.p.id].beforeSubmit))  {
						ret = rp_ge[$t.p.id].beforeSubmit.call($t,postdata,$(frmgr), frmoper);
					}
				}

				if(ret[0] && !rp_ge[$t.p.id].processing) {
					rp_ge[$t.p.id].processing = true;
					$("#sData", frmtb+"_2").addClass( commonstyle.active );
					url = rp_ge[$t.p.id].url || $($t).jqGrid('getGridParam','editurl');
					oper = opers.oper;
					idname = (url === 'clientArray' || url==='storage') ? $t.p.keyName : opers.id;
					// we add to pos data array the action - the name is oper
					postdata[oper] = ($.jgrid.trim(postdata[$t.p.id+"_id"]) === "_empty") ? opers.addoper : opers.editoper;
					if(postdata[oper] !== opers.addoper) {
						postdata[idname] = postdata[$t.p.id+"_id"];
					} else {
						// check to see if we have allredy this field in the form and if yes lieve it
						if( postdata[idname] === undefined ) {postdata[idname] = postdata[$t.p.id+"_id"];}
					}
					delete postdata[$t.p.id+"_id"];
					postdata = $.extend(postdata,rp_ge[$t.p.id].editData,onCS);
					if($t.p.treeGrid === true)  {
						if(postdata[oper] === opers.addoper) {
						selr = $($t).jqGrid("getGridParam", 'selrow');
							var tr_par_id = $t.p.treeGridModel === 'adjacency' ? $t.p.treeReader.parent_id_field : 'parent_id';
							postdata[tr_par_id] = selr;
						}
						for(i in $t.p.treeReader){
							if($t.p.treeReader.hasOwnProperty(i)) {
								var itm = $t.p.treeReader[i];
								if(postdata.hasOwnProperty(itm)) {
									if(postdata[oper] === opers.addoper && i === 'parent_id_field') {continue;}
									delete postdata[itm];
								}
							}
						}
					}
					
					postdata[idname] = $.jgrid.stripPref($t.p.idPrefix, postdata[idname]);
					var ajaxOptions = $.extend({
						url: url,
						type: rp_ge[$t.p.id].mtype,
						data: $.jgrid.isFunction(rp_ge[$t.p.id].serializeEditData) ? rp_ge[$t.p.id].serializeEditData.call($t,postdata) :  postdata,
						success:function(res,status,data){
							var key;
							$("#sData", frmtb+"_2").removeClass( commonstyle.active );
							postdata[idname] = $t.p.idPrefix + postdata[idname];
							if(data.status >= 300 && data.status !== 304) {
								ret[0] = false;
								ret[1] = $($t).triggerHandler("jqGridAddEditErrorTextFormat", [data, frmoper]);
								if ($.jgrid.isFunction(rp_ge[$t.p.id].errorTextFormat)) {
									ret[1] = rp_ge[$t.p.id].errorTextFormat.call($t, data, frmoper);
								} else {
									ret[1] = status + " Status: '" + data.statusText + "'. Error code: " + data.status;
								}
							} else {
								// data is posted successful
								// execute aftersubmit with the returned data from server
								ret = $($t).triggerHandler("jqGridAddEditAfterSubmit", [data, postdata, frmoper]);
								if(ret === undefined) {
									ret = [true,"",""];
								}
								if( ret[0] && $.jgrid.isFunction(rp_ge[$t.p.id].afterSubmit) ) {
									ret = rp_ge[$t.p.id].afterSubmit.call($t, data,postdata, frmoper);
								}
							}
							if(ret[0] === false) {
								$(".FormError",frmgr).html(ret[1]);
								$(".FormError",frmgr).show();
							} else {
								if($t.p.autoencode) {
									$.each(postdata,function(n,v){
										postdata[n] = $.jgrid.htmlDecode(v);
									});
								}
								//rp_ge[$t.p.id].reloadAfterSubmit = rp_ge[$t.p.id].reloadAfterSubmit && $t.p.datatype != "local";
								// the action is add
								if(postdata[oper] === opers.addoper ) {
									//id processing
									// user not set the id ret[2]
									if(!ret[2]) {ret[2] = $.jgrid.randId();}
									if(postdata[idname] == null || postdata[idname] === ($t.p.idPrefix + "_empty") || postdata[idname] === ""){
										postdata[idname] = ret[2];
									} else {
										ret[2] = postdata[idname];
									}
									if(rp_ge[$t.p.id].reloadAfterSubmit) {
										$($t).trigger("reloadGrid");
									} else {
										if($t.p.treeGrid === true){
											$($t).jqGrid("addChildNode",ret[2],selr,postdata );
										} else {
											$($t).jqGrid("addRowData",ret[2],postdata,p.addedrow);
										}
									}
									if(rp_ge[$t.p.id].closeAfterAdd) {
										if($t.p.treeGrid !== true){
											$($t).jqGrid("setSelection",ret[2]);
										}
										$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});
									} else if (rp_ge[$t.p.id].clearAfterAdd) {
										fillData("_empty", $t, frmgr);
									}
								} else {
									// the action is update
									if(rp_ge[$t.p.id].reloadAfterSubmit) {
										$($t).trigger("reloadGrid");
										if( !rp_ge[$t.p.id].closeAfterEdit ) {setTimeout(function(){$($t).jqGrid("setSelection",postdata[idname]);},1000);}
									} else {
										if($t.p.treeGrid === true) {
											$($t).jqGrid("setTreeRow", postdata[idname],postdata);
										} else {
											$($t).jqGrid("setRowData", postdata[idname],postdata);
										}
									}
									if(rp_ge[$t.p.id].closeAfterEdit) {$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});}
								}
								if( $.jgrid.isFunction(rp_ge[$t.p.id].afterComplete) || Object.prototype.hasOwnProperty.call($._data( $($t)[0], 'events' ), 'jqGridAddEditAfterComplete') ) {
									copydata = data;
									setTimeout(function(){
										$($t).triggerHandler("jqGridAddEditAfterComplete", [copydata, postdata, $(frmgr), frmoper]);
										try { 
											rp_ge[$t.p.id].afterComplete.call($t, copydata, postdata, $(frmgr), frmoper);
										} catch(excacmp) {
											//do nothing
										}
										copydata=null;
									},500);
								}
								if(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) {
									$(frmgr).data("disabled",false);
									if($t.p.savedData[$t.p.id+"_id"] !== "_empty"){
										for(key in $t.p.savedData) {
											if($t.p.savedData.hasOwnProperty(key) && postdata[key]) {
												$t.p.savedData[key] = postdata[key];
											}
										}
									}
								}
							}
							rp_ge[$t.p.id].processing=false;
							try{$(':input:visible',frmgr)[0].focus();} catch (e){}
						}
					}, $.jgrid.ajaxOptions, rp_ge[$t.p.id].ajaxEditOptions );

					if (!ajaxOptions.url && !rp_ge[$t.p.id].useDataProxy) {
						if ($.jgrid.isFunction($t.p.dataProxy)) {
							rp_ge[$t.p.id].useDataProxy = true;
						} else {
							ret[0]=false;ret[1] += " "+errors.nourl;
						}
					}
					if (ret[0]) {
						if (rp_ge[$t.p.id].useDataProxy) {
							var dpret = $t.p.dataProxy.call($t, ajaxOptions, "set_"+$t.p.id); 
							if(dpret === undefined) {
								dpret = [true, ""];
							}
							if(dpret[0] === false ) {
								ret[0] = false;
								ret[1] = dpret[1] || "Error processing the row!" ;
							} else {
								if(ajaxOptions.data.oper === opers.addoper && rp_ge[$t.p.id].closeAfterAdd ) {
									$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});
								}
								if(ajaxOptions.data.oper === opers.editoper && rp_ge[$t.p.id].closeAfterEdit ) {
									$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});
								}
							}
						} else {
							if(ajaxOptions.url === "clientArray") {
								rp_ge[$t.p.id].reloadAfterSubmit = false;
								postdata = ajaxOptions.data;
								ajaxOptions.success(postdata,'',{status:200, statusText:''});
							} else if(ajaxOptions.url === "storage"){
								if(postdata[oper] === opers.addoper) {
									if(postdata[idname] === "_empty") {
										postdata[idname] = "";
									}
									$($t).jqGrid('addStorageRecord', postdata)
									.then(function(e){
										if(e.type==="complete") {
											ajaxOptions.success(postdata,'',{status:200, statusText:''});
										}
									})
									.catch(function(e) {
										$.jgrid.info_dialog("Error",e.target.error.name + " : "+e.target.error.message,'Close');
									});
								} else if(postdata[oper] === opers.editoper) {
									$($t).jqGrid('updateStorageRecord', postdata)
									.then(function(e){
										if(e.type==="complete") {
											ajaxOptions.success(postdata,'',{status:200, statusText:''});
										}
									})
									.catch(function(e) {
										$.jgrid.info_dialog("Error",e.target.error.name + " : "+e.target.error.message,'Close');
									});									
								}
							} else {
								$.ajax(ajaxOptions); 
							}
						}
					}
				}
				if(ret[0] === false) {
					$(frmgr).scrollTop(0);
					$(".FormError",frmgr).html(ret[1]);
					$(".FormError",frmgr).show();
					// return;
				}
			}
			function compareData(nObj, oObj ) {
				var ret = false,key;
				ret = !( $.isPlainObject(nObj) && $.isPlainObject(oObj) && Object.getOwnPropertyNames(nObj).length === Object.getOwnPropertyNames(oObj).length);
				if(!ret) {
					for (key in oObj) {
						if(oObj.hasOwnProperty(key) )  {
							if(nObj.hasOwnProperty(key) ) {
								if( nObj[key] !== oObj[key] ) {
									ret = true;
									break;
								}
							} else {
								ret = true;
								break;
							}
						}
					}
				}
				return ret;
			}
			function checkUpdates () {
				var stat = true;
				$(".FormError",frmgr).hide();
				if(rp_ge[$t.p.id].checkOnUpdate) {
					postdata = {};
					getFormData();
					diff = compareData(postdata, $t.p.savedData);
					if(diff) {
						$(frmgr).data("disabled",true);
						$(".confirm","#"+IDs.themodal).show();
						stat = false;
					}
				}
				return stat;
			}
			function restoreInline() {
				var i;
				if (rowid !== "_empty" && $t.p.savedRow !== undefined && $t.p.savedRow.length > 0 && $.jgrid.isFunction($.fn.jqGrid.restoreRow)) {
					for (i=0;i<$t.p.savedRow.length;i++) {
						if ($t.p.savedRow[i].id === rowid) {
							$($t).jqGrid('restoreRow',rowid);
							break;
						}
					}
				}
			}
			function updateNav(cr, posarr){
				var totr = posarr[1].length-1;
				if (cr===0) {
					$("#pData",frmtb2).addClass( commonstyle.disabled );
				} else if( posarr[1][cr-1] !== undefined && $("#"+$.jgrid.jqID(posarr[1][cr-1])).hasClass( commonstyle.disabled )) {
						$("#pData",frmtb2).addClass( commonstyle.disabled );
				} else {
					$("#pData",frmtb2).removeClass( commonstyle.disabled );
				}
				
				if (cr===totr) {
					$("#nData",frmtb2).addClass( commonstyle.disabled );
				} else if( posarr[1][cr+1] !== undefined && $("#"+$.jgrid.jqID(posarr[1][cr+1])).hasClass( commonstyle.disabled )) {
					$("#nData",frmtb2).addClass( commonstyle.disabled );
				} else {
					$("#nData",frmtb2).removeClass( commonstyle.disabled );
				}
			}
			function getCurrPos() {
				var rowsInGrid =  $($t).jqGrid("getDataIDs"),
				selrow = $("#id_g",frmtb).val(), pos;
				if($t.p.multiselect && rp_ge[$t.p.id].editselected) {
					var arr = [];
					for(var i=0, len = rowsInGrid.length;i<len;i++) {
						if($.inArray(rowsInGrid[i],$t.p.selarrrow) !== -1) {
							arr.push(rowsInGrid[i]);
						}
					}
					pos = $.inArray(selrow,arr);
					return [pos, arr];
				} else {
					pos = $.inArray(selrow,rowsInGrid);
				}
				return [pos,rowsInGrid];
			}
			function parseTemplate ( template ){
				var   tmpl ="";
				if(typeof template === "string") {
					tmpl = template.replace(/\{([\w\-]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g, function(m,i){
						return '<span id="'+ i+ '" ></span>';
					});
				}
				return tmpl;
			}
			function syncSavedData () {
				if(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) {

					var a1=[], a2={};
					a1 = $.map($t.p.savedData, function(v, i){
						return i;
					});
					$(".FormElement", frm ).each(function(){
						if( $.jgrid.trim(this.name) !== "" && a1.indexOf(this.name) === -1 ) {
							var tv = $(this).val(), tt = $(this).get(0).type;
							if( tt === 'checkbox') {
								if(!$(this).is(":checked")) {
									tv = $(this).attr("offval");
								}
							} else if(tt === 'select-multiple') {
								tv = tv.join(",");
							} else if(tt === 'radio') {
								if(a2.hasOwnProperty(this.name)) {
									return true;
								} else {
									a2[this.name] = ($(this).attr("offval") === undefined) ? "off" : $(this).attr("offval");
								}
							}
							$t.p.savedData[this.name] = tv;
						}
					});
					for(var i in a2 ) {
						if( a2.hasOwnProperty(i)) {
							var val = $('input[name="'+i+'"]:checked',frm).val();
							$t.p.savedData[i] = (val !== undefined) ? val : a2[i];
						}
					}
				}
			}
			var dh = isNaN(rp_ge[$(this)[0].p.id].dataheight) ? rp_ge[$(this)[0].p.id].dataheight : rp_ge[$(this)[0].p.id].dataheight+"px",
			dw = isNaN(rp_ge[$(this)[0].p.id].datawidth) ? rp_ge[$(this)[0].p.id].datawidth : rp_ge[$(this)[0].p.id].datawidth+"px",
			frm = $("<form name='FormPost' id='"+frmgr+"' class='FormGrid' onSubmit='return false;' style='width:"+dw+";height:"+dh+";'></form>").data("disabled",false),
			tbl;
			if(templ) {
				tbl = parseTemplate( rp_ge[$(this)[0].p.id].template );
				frmtb2 = frmtb;
			} else {
				tbl = $("<table id='"+frmtborg+"' class='EditTable ui-common-table'><tbody></tbody></table>");
				frmtb2 = frmtb+"_2";
			}
			frmgr = "#"+ $.jgrid.jqID(frmgr);
			// errors
			$(frm).append("<div class='FormError " + commonstyle.error + "' style='display:none;'></div>" );
			// topinfo
			$(frm).append("<div class='tinfo topinfo'>"+rp_ge[$t.p.id].topinfo+"</div>");

			$($t.p.colModel).each( function() {
				var fmto = this.formoptions;
				maxCols = Math.max(maxCols, fmto ? fmto.colpos || 0 : 0 );
				maxRows = Math.max(maxRows, fmto ? fmto.rowpos || 0 : 0 );
			});
			$(frm).append(tbl);

			showFrm = $($t).triggerHandler("jqGridAddEditBeforeInitData", [frm, frmoper]);
			if(showFrm === undefined) {
				showFrm = true;
			}
			if(showFrm && $.jgrid.isFunction(rp_ge[$t.p.id].beforeInitData)) {
				showFrm = rp_ge[$t.p.id].beforeInitData.call($t,frm, frmoper);
			}
			if(showFrm === false) {return;}

			restoreInline();
			// set the id.
			// use carefull only to change here colproperties.
			// create data
			createData(rowid,$t,tbl,maxCols);
			// buttons at footer
			var rtlb = $t.p.direction === "rtl" ? true :false,
			bp = rtlb ? "nData" : "pData",
			bn = rtlb ? "pData" : "nData";
			var bP = "<a id='"+bp+"' class='fm-button " + commonstyle.button + "'><span class='" + commonstyle.icon_base + " " + styles.icon_prev+ "'></span></a>",
			bN = "<a id='"+bn+"' class='fm-button " + commonstyle.button + "'><span class='" + commonstyle.icon_base + " " + styles.icon_next+ "'></span></a>",
			bS  ="<a id='sData' class='fm-button " + commonstyle.button + "'>"+p.bSubmit+"</a>",
			bC  ="<a id='cData' class='fm-button " + commonstyle.button + "'>"+p.bCancel+"</a>",
			user_buttons = ( Array.isArray( rp_ge[$t.p.id].buttons ) ? $.jgrid.buildButtons( rp_ge[$t.p.id].buttons, bS + bC, commonstyle ) : bS + bC );
			var bt = "<table style='height:auto' class='EditTable ui-common-table' id='"+frmtborg+"_2'><tbody><tr><td colspan='2'><hr class='"+commonstyle.content+"' style='margin:1px'/></td></tr><tr id='Act_Buttons'><td class='navButton'>"+(rtlb ? bN+bP : bP+bN)+"</td><td class='EditButton'>"+ user_buttons +"</td></tr>";
			//bt += "<tr style='display:none' class='binfo'><td class='bottominfo' colspan='2'>"+rp_ge[$t.p.id].bottominfo+"</td></tr>";
			bt += "</tbody></table>";
			if(maxRows >  0) {
				var sd=[];
				$.each($(tbl)[0].rows,function(i,r){
					sd[i] = r;
				});
				sd.sort(function(a,b){
					if(a.rp > b.rp) {return 1;}
					if(a.rp < b.rp) {return -1;}
					return 0;
				});
				$.each(sd, function(index, row) {
					$('tbody',tbl).append(row);
				});
			}
			p.gbox = "#gbox_"+$.jgrid.jqID(gID);
			var cle = false;
			if(p.closeOnEscape===true){
				p.closeOnEscape = false;
				cle = true;
			}
			var tms;
			if(templ) {
				$(frm).find("#pData").replaceWith( bP );
				$(frm).find("#nData").replaceWith( bN );
				$(frm).find("#sData").replaceWith( bS );
				$(frm).find("#cData").replaceWith( bC );
				tms = $("<div id="+frmtborg+"></div>").append(frm);
			} else {
				tms = $("<div></div>").append(frm).append(bt);
			}
			
			$(frm).append("<div class='binfo topinfo bottominfo'>"+rp_ge[$t.p.id].bottominfo+"</div>");
			var fs =  $('.ui-jqgrid').css('font-size') || '11px';
			$.jgrid.createModal(IDs, tms, rp_ge[$(this)[0].p.id], "#gview_"+$.jgrid.jqID($t.p.id), $("#gbox_"+$.jgrid.jqID($t.p.id))[0], null, {"font-size": fs});

			if(rtlb) {
				$("#pData, #nData",frmtb+"_2").css("float","right");
				$(".EditButton",frmtb+"_2").css("text-align","left");
			}

			if(rp_ge[$t.p.id].topinfo) {$(".tinfo", frmgr).show();}
			if(rp_ge[$t.p.id].bottominfo) {$(".binfo",frmgr).show();}

			tms = null;bt=null;
			$("#"+$.jgrid.jqID(IDs.themodal)).keydown( function( e ) {
				var wkey = e.target;
				if ($(frmgr).data("disabled")===true ) {return false;}//??
				if(rp_ge[$t.p.id].savekey[0] === true && e.which === rp_ge[$t.p.id].savekey[1]) { // save
					if(wkey.tagName !== "TEXTAREA") {
						$("#sData", frmtb+"_2").trigger("click");
						return false;
					}
				}
				if(e.which === 27) {
					if(!checkUpdates()) {return false;}
					if(cle)	{$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:p.gbox,jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});}
					return false;
				}
				if(rp_ge[$t.p.id].navkeys[0]===true) {
					if($("#id_g",frmtb).val() === "_empty") {return true;}
					if(e.which === rp_ge[$t.p.id].navkeys[1]){ //up
						$("#pData", frmtb2).trigger("click");
						return false;
					}
					if(e.which === rp_ge[$t.p.id].navkeys[2]){ //down
						$("#nData", frmtb2).trigger("click");
						return false;
					}
				}
			});
			if(p.checkOnUpdate) {
				$("a.ui-jqdialog-titlebar-close span","#"+$.jgrid.jqID(IDs.themodal)).removeClass("jqmClose");
				$("a.ui-jqdialog-titlebar-close","#"+$.jgrid.jqID(IDs.themodal)).off("click")
				.click(function(){
					if(!checkUpdates()) {return false;}
					$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});
					return false;
				});
			}
			p.saveicon = $.extend([true,"left", styles.icon_save ],p.saveicon);
			p.closeicon = $.extend([true,"left", styles.icon_close ],p.closeicon);
			// beforeinitdata after creation of the form
			if(p.saveicon[0]===true) {
				$("#sData",frmtb2).addClass(p.saveicon[1] === "right" ? 'fm-button-icon-right' : 'fm-button-icon-left')
				.append("<span class='"+commonstyle.icon_base + " " +p.saveicon[2]+"'></span>");
			}
			if(p.closeicon[0]===true) {
				$("#cData",frmtb2).addClass(p.closeicon[1] === "right" ? 'fm-button-icon-right' : 'fm-button-icon-left')
				.append("<span class='" + commonstyle.icon_base +" "+p.closeicon[2]+"'></span>");
			}
			if(rp_ge[$t.p.id].checkOnSubmit || rp_ge[$t.p.id].checkOnUpdate) {
				bS  ="<a id='sNew' class='fm-button "+commonstyle.button + "' style='z-index:1002'>"+p.bYes+"</a>";
				bN  ="<a id='nNew' class='fm-button "+commonstyle.button + "' style='z-index:1002;margin-left:5px'>"+p.bNo+"</a>";
				bC  ="<a id='cNew' class='fm-button "+commonstyle.button + "' style='z-index:1002;margin-left:5px;'>"+p.bExit+"</a>";
				var zI = p.zIndex  || 999;zI ++;
				$("#"+IDs.themodal).append("<div class='"+ p.overlayClass+" jqgrid-overlay confirm' style='z-index:"+zI+";display:none;position:absolute;'>&#160;"+"</div><div class='confirm ui-jqconfirm "+commonstyle.content+"' style='z-index:"+(zI+1)+"'>"+p.saveData+"<br/><br/>"+bS+bN+bC+"</div>");
				$("#sNew","#"+$.jgrid.jqID(IDs.themodal)).click(function(){
					postIt();
					$(frmgr).data("disabled",false);
					$(".confirm","#"+$.jgrid.jqID(IDs.themodal)).hide();
					return false;
				});
				$("#nNew","#"+$.jgrid.jqID(IDs.themodal)).click(function(){
					$(".confirm","#"+$.jgrid.jqID(IDs.themodal)).hide();
					$(frmgr).data("disabled",false);
					setTimeout(function(){$(":input:visible",frmgr)[0].focus();},0);
					return false;
				});
				$("#cNew","#"+$.jgrid.jqID(IDs.themodal)).click(function(){
					$(".confirm","#"+$.jgrid.jqID(IDs.themodal)).hide();
					$(frmgr).data("disabled",false);
					$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});
					return false;
				});
			}
			// here initform 
			$($t).triggerHandler("jqGridAddEditInitializeForm", [$(frmgr), frmoper]);
			if($.jgrid.isFunction(rp_ge[$t.p.id].onInitializeForm)) { rp_ge[$t.p.id].onInitializeForm.call($t,$(frmgr), frmoper);}
			if(rowid==="_empty" || !rp_ge[$t.p.id].viewPagerButtons) {$("#pData,#nData",frmtb2).hide();} else {$("#pData,#nData",frmtb2).show();}
			$($t).triggerHandler("jqGridAddEditBeforeShowForm", [$(frmgr), frmoper]);
			if($.jgrid.isFunction(rp_ge[$t.p.id].beforeShowForm)) { rp_ge[$t.p.id].beforeShowForm.call($t, $(frmgr), frmoper);}
			syncSavedData();
			$("#"+$.jgrid.jqID(IDs.themodal)).data("onClose",rp_ge[$t.p.id].onClose);
			$.jgrid.viewModal("#"+$.jgrid.jqID(IDs.themodal),{
				gbox:"#gbox_"+$.jgrid.jqID(gID),
				jqm:p.jqModal, 
				overlay: p.overlay,
				modal:p.modal, 
				overlayClass: p.overlayClass,
				focusField : p.focusField,
				onHide :  function(h) {
					var fw = $('#editmod'+gID)[0].style.width ,
						//rtlsup = $("#gbox_"+$.jgrid.jqID(gID)).attr("dir") === "rtl" ? true : false,
						mdh = $('#editmod'+gID)[0].style.height;
						mdh = ['100%','auto'].includes(mdh) ? mdh : $.jgrid.floatNum(mdh, 200);
						fw = ['100%','auto'].includes(fw) ? fw : $.jgrid.floatNum(fw, 300);
					$($t).data("formProp", {
						top: $.jgrid.floatNum($(h.w).css("top")),
						left :  parseFloat($(h.w).css("left")),
						width : fw,
						height :  mdh ,
						dataheight : $(frmgr).height(),
						datawidth: $(frmgr).width()
					});
					h.w.remove();
					if(h.o) {h.o.remove();}
				}
			});
			if(!closeovrl) {
				$("." + $.jgrid.jqID(p.overlayClass)).click(function(){
					if(!checkUpdates()) {return false;}
					$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});
					return false;
				});
			}
			$(".fm-button","#"+$.jgrid.jqID(IDs.themodal)).hover(
				function(){$(this).addClass( commonstyle.hover );},
				function(){$(this).removeClass( commonstyle.hover );}
			);
			$("#sData", frmtb2).click(function(){
				postdata = {};
				$(".FormError",frmgr).hide();
				// all depend on ret array
				//ret[0] - succes
				//ret[1] - msg if not succes
				//ret[2] - the id  that will be set if reload after submit false
				getFormData();
				if(postdata[$t.p.id+"_id"] === "_empty")	{
					postIt();
				} else if(p.checkOnSubmit===true ) {
					diff = compareData(postdata, $t.p.savedData);
					if(diff) {
						$(frmgr).data("disabled",true);
						$(".confirm","#"+$.jgrid.jqID(IDs.themodal)).show();
					} else {
						postIt();
					}
				} else {
					postIt();
				}
				return false;
			});
			$("#cData", frmtb2).click(function(){
				if(!checkUpdates()) {return false;}
				$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal,onClose: rp_ge[$t.p.id].onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});
				return false;
			});
			// user buttons bind
			$(frmtb2).find("[data-index]").each(function(){
				var index = parseInt($(this).attr('data-index'),10);
				if(index >=0 ) {
					if( p.buttons[index].hasOwnProperty('click')) {
						$(this).on('click', function(e) {
							p.buttons[index].click.call($t, $(frmgr)[0], rp_ge[$t.p.id], e);
						});
					}
				}
			});

			$("#nData", frmtb2).click(function(){
				if(!checkUpdates()) {return false;}
				$(".FormError",frmgr).hide();
				var npos = getCurrPos();
				npos[0] = parseInt(npos[0],10);
				if(npos[0] !== -1 && npos[1][npos[0]+1]) {
					$($t).triggerHandler("jqGridAddEditClickPgButtons", ['next',$(frmgr),npos[1][npos[0]]]);
					var nposret;
					if($.jgrid.isFunction(p.onclickPgButtons)) {
						nposret = p.onclickPgButtons.call($t, 'next',$(frmgr),npos[1][npos[0]]);
						if( nposret !== undefined && nposret === false ) {return false;}
					}
					if( $("#"+$.jgrid.jqID(npos[1][npos[0]+1])).hasClass( commonstyle.disabled )) {return false;}
					fillData(npos[1][npos[0]+1],$t,frmgr);
					if(!($t.p.multiselect &&  rp_ge[$t.p.id].editselected)) {
						$($t).jqGrid("setSelection",npos[1][npos[0]+1]);
					}
					$($t).triggerHandler("jqGridAddEditAfterClickPgButtons", ['next',$(frmgr),npos[1][npos[0]]]);
					if($.jgrid.isFunction(p.afterclickPgButtons)) {
						p.afterclickPgButtons.call($t, 'next',$(frmgr),npos[1][npos[0]+1]);
					}
					syncSavedData();
					updateNav(npos[0]+1,npos);
				}
				return false;
			});
			$("#pData", frmtb2).click(function(){
				if(!checkUpdates()) {return false;}
				$(".FormError",frmgr).hide();
				var ppos = getCurrPos();
				if(ppos[0] !== -1 && ppos[1][ppos[0]-1]) {
					$($t).triggerHandler("jqGridAddEditClickPgButtons", ['prev',$(frmgr),ppos[1][ppos[0]]]);
					var pposret;
					if($.jgrid.isFunction(p.onclickPgButtons)) {
						pposret = p.onclickPgButtons.call($t, 'prev',$(frmgr),ppos[1][ppos[0]]);
						if( pposret !== undefined && pposret === false ) {return false;}
					}
					if( $("#"+$.jgrid.jqID(ppos[1][ppos[0]-1])).hasClass( commonstyle.disabled )) {return false;}
					fillData(ppos[1][ppos[0]-1],$t,frmgr);
					if(!($t.p.multiselect &&  rp_ge[$t.p.id].editselected)) {
						$($t).jqGrid("setSelection",ppos[1][ppos[0]-1]);
					}
					$($t).triggerHandler("jqGridAddEditAfterClickPgButtons", ['prev',$(frmgr),ppos[1][ppos[0]]]);
					if($.jgrid.isFunction(p.afterclickPgButtons)) {
						p.afterclickPgButtons.call($t, 'prev',$(frmgr),ppos[1][ppos[0]-1]);
					}
					syncSavedData();
					updateNav(ppos[0]-1,ppos);
				}
				return false;
			});
			$($t).triggerHandler("jqGridAddEditAfterShowForm", [$(frmgr), frmoper]);
			if($.jgrid.isFunction(rp_ge[$t.p.id].afterShowForm)) { rp_ge[$t.p.id].afterShowForm.call($t, $(frmgr), frmoper); }
			var posInit =getCurrPos();
			updateNav(posInit[0],posInit);
			this.refreshEditForm = function( rid, force ) {
				if ( force === undefined) {
					force = false;
				}
				if( force || rowid === rid) {
					fillData(rid, this, frmgr);
				}
				if(force) {
					rowid = rid;
				}
			};
		});
	},
	viewGridRow : function(rowid, p){
		var regional =  $.jgrid.getRegional(this[0], 'view'),
			currstyle = this[0].p.styleUI,
			styles = $.jgrid.styleUI[currstyle].formedit,
			commonstyle = $.jgrid.styleUI[currstyle].common;

		p = $.extend(true, {
			top : 0,
			left: 0,
			width: 500,
			datawidth: 'auto',
			height: 'auto',
			dataheight: 'auto',
			modal: false,
			overlay: 30,
			drag: true,
			resize: true,
			jqModal: true,
			closeOnEscape : false,
			labelswidth: 'auto',
			closeicon: [],
			navkeys: [false,38,40],
			onClose: null,
			beforeShowForm : null,
			beforeInitData : null,
			viewPagerButtons : true,
			recreateForm : false,
			removemodal: true,
			form: 'view',
			buttons : []
		}, regional, p || {});
		rp_ge[$(this)[0].p.id] = p;
		return this.each(function(){
			var $t = this;
			if (!$t.grid || !rowid) {return;}
			var gID = $t.p.id,
			frmgr = "ViewGrid_"+$.jgrid.jqID( gID  ), frmtb = "ViewTbl_" + $.jgrid.jqID( gID ),
			frmgr_id = "ViewGrid_"+gID, frmtb_id = "ViewTbl_"+gID,
			IDs = {themodal:'viewmod'+gID,modalhead:'viewhd'+gID,modalcontent:'viewcnt'+gID, scrollelm : frmgr},
			showFrm = true,
			maxCols = 1, maxRows=0;
			rp_ge[$t.p.id].styleUI = $t.p.styleUI || 'jQueryUI';
			if(!p.recreateForm) {
				if( $($t).data("viewProp") ) {
					$.extend(rp_ge[$(this)[0].p.id], $($t).data("viewProp"));
				}
			}
			function focusaref(){ //Sfari 3 issues
				if(rp_ge[$t.p.id].closeOnEscape===true || rp_ge[$t.p.id].navkeys[0]===true) {
					setTimeout(function(){$(".ui-jqdialog-titlebar-close","#"+$.jgrid.jqID(IDs.modalhead)).attr("tabindex", "-1").focus();},0);
				}
			}
			function createData(rowid,obj,tb,maxcols){
				var nm, hc,trdata, cnt=0,tmp, dc, retpos=[], ind=false, i,
				tdtmpl = "<td class='CaptionTD form-view-label " + commonstyle.content + "' width='"+p.labelswidth+"'></td><td class='DataTD form-view-data ui-helper-reset "  + commonstyle.content +"'></td>", tmpl="",
				tdtmpl2 = "<td class='CaptionTD form-view-label " + commonstyle.content +"'></td><td class='DataTD form-view-data " + commonstyle.content +"'></td>",
				fmtnum = ['integer','number','currency'],max1 =0, max2=0 ,maxw,setme, viewfld;
				for (i=1;i<=maxcols;i++) {
					tmpl += i === 1 ? tdtmpl : tdtmpl2;
				}
				// find max number align rigth with property formatter
				$(obj.p.colModel).each( function() {
					if(this.editrules && this.editrules.edithidden === true) {
						hc = false;
					} else {
						hc = this.hidden === true ? true : false;
					}
					if(!hc && this.align==='right') {
						if(this.formatter && $.inArray(this.formatter,fmtnum) !== -1 ) {
							max1 = Math.max(max1,parseInt(this.width,10));
						} else {
							max2 = Math.max(max2,parseInt(this.width,10));
						}
					}
				});
				maxw  = max1 !==0 ? max1 : max2 !==0 ? max2 : 0;
				ind = $(obj).jqGrid("getInd",rowid);
				$(obj.p.colModel).each( function(i) {
					nm = this.name;
					setme = false;
					// hidden fields are included in the form
					if(this.editrules && this.editrules.edithidden === true) {
						hc = false;
					} else {
						hc = this.hidden === true ? true : false;
					}
					dc = hc ? "style='display:none'" : "";
					viewfld = (typeof this.viewable !== 'boolean') ? true : this.viewable;
					if ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn' && viewfld && nm !== 'sc') {
						if(ind === false) {
							tmp = "";
						} else {
							if(nm === obj.p.ExpandColumn && obj.p.treeGrid === true) {
								tmp = $("td",obj.rows[ind]).eq( i ).text();
							} else {
								tmp = $("td",obj.rows[ind]).eq( i ).html();
							}
						}
						setme = this.align === 'right' && maxw !==0 ? true : false;
						var frmopt = $.extend({},{rowabove:false,rowcontent:''}, this.formoptions || {}),
						rp = parseInt(frmopt.rowpos,10) || cnt+1,
						cp = parseInt((parseInt(frmopt.colpos,10) || 1)*2,10);
						if(frmopt.rowabove) {
							var newdata = $("<tr><td class='contentinfo' colspan='"+(maxcols*2)+"'>"+frmopt.rowcontent+"</td></tr>");
							$(tb).append(newdata);
							newdata[0].rp = rp;
						}
						trdata = $(tb).find("tr[rowpos="+rp+"]");
						if ( trdata.length===0 ) {
							trdata = $("<tr "+dc+" rowpos='"+rp+"'></tr>").addClass("FormData").attr("id","trv_"+nm);
							$(trdata).append(tmpl);
							$(tb).append(trdata);
							trdata[0].rp = rp;
						}
						$("td",trdata[0]).eq( cp-2 ).html('<b>'+ (frmopt.label === undefined ? obj.p.colNames[i]: frmopt.label)+'</b>');
						$("td",trdata[0]).eq( cp-1 ).append("<span>"+tmp+"</span>").attr("id","v_"+nm);
						if(setme){
							$("td",trdata[0]).eq( cp-1 ).find('span').css({ 'text-align':'right',width:maxw+"px" });
						}
						retpos[cnt] = i;
						cnt++;
					}
				});
				if( cnt > 0) {
					var idrow = $("<tr class='FormData' style='display:none'><td class='CaptionTD'></td><td colspan='"+ (maxcols*2-1)+"' class='DataTD'><input class='FormElement' id='id_g' type='text' name='id' value='"+rowid+"'/></td></tr>");
					idrow[0].rp = cnt+99;
					$(tb).append(idrow);
				}
				return retpos;
			}
			function fillData(rowid,obj){
				var nm, hc,cnt=0,tmp,trv;
				trv = $(obj).jqGrid("getInd",rowid,true);
				if(!trv) {return;}
				$('td',trv).each( function(i) {
					nm = obj.p.colModel[i].name;
					// hidden fields are included in the form
					if(obj.p.colModel[i].editrules && obj.p.colModel[i].editrules.edithidden === true) {
						hc = false;
					} else {
						hc = obj.p.colModel[i].hidden === true ? true : false;
					}
					if ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn' && nm !== 'sc') {
						if(nm === obj.p.ExpandColumn && obj.p.treeGrid === true) {
							tmp = $(this).text();
						} else {
							tmp = $(this).html();
						}
						nm = $.jgrid.jqID("v_"+nm);
						$("#"+nm+" span","#"+frmtb).html(tmp);
						if (hc) {$("#"+nm,"#"+frmtb).parents("tr").first().hide();}
						cnt++;
					}
				});
				if(cnt>0) {$("#id_g","#"+frmtb).val(rowid);}
			}
			function updateNav(cr,posarr){
				var totr = posarr[1].length-1;
				if (cr===0) {
					$("#pData","#"+frmtb+"_2").addClass( commonstyle.disabled );
				} else if( posarr[1][cr-1] !== undefined && $("#"+$.jgrid.jqID(posarr[1][cr-1])).hasClass(commonstyle.disabled)) {
					$("#pData",frmtb+"_2").addClass( commonstyle.disabled );
				} else {
					$("#pData","#"+frmtb+"_2").removeClass( commonstyle.disabled );
				}
				if (cr===totr) {
					$("#nData","#"+frmtb+"_2").addClass( commonstyle.disabled );
				} else if( posarr[1][cr+1] !== undefined && $("#"+$.jgrid.jqID(posarr[1][cr+1])).hasClass( commonstyle.disabled )) {
					$("#nData",frmtb+"_2").addClass( commonstyle.disabled );
				} else {
					$("#nData","#"+frmtb+"_2").removeClass( commonstyle.disabled );
				}
			}
			function getCurrPos() {
				var rowsInGrid =  $($t).jqGrid("getDataIDs"),
				selrow = $("#id_g","#"+frmtb).val(), pos;
				if($t.p.multiselect && rp_ge[$t.p.id].viewselected) {
					var arr = [];
					for(var i=0, len = rowsInGrid.length;i<len;i++) {
						if($.inArray(rowsInGrid[i],$t.p.selarrrow) !== -1) {
							arr.push(rowsInGrid[i]);
						}
					}
					pos = $.inArray(selrow,arr);
					return [pos, arr];
				} else {
					pos = $.inArray(selrow,rowsInGrid);
				}
				return [pos,rowsInGrid];
			}

			var dh = isNaN(rp_ge[$(this)[0].p.id].dataheight) ? rp_ge[$(this)[0].p.id].dataheight : rp_ge[$(this)[0].p.id].dataheight+"px",
			dw = isNaN(rp_ge[$(this)[0].p.id].datawidth) ? rp_ge[$(this)[0].p.id].datawidth : rp_ge[$(this)[0].p.id].datawidth+"px",
			frm = $("<form name='FormPost' id='"+frmgr_id+"' class='FormGrid' style='width:"+dw+";height:"+dh+";'></form>"),
			tbl =$("<table id='"+frmtb_id+"' class='EditTable ViewTable'><tbody></tbody></table>");
			$($t.p.colModel).each( function() {
				var fmto = this.formoptions;
				maxCols = Math.max(maxCols, fmto ? fmto.colpos || 0 : 0 );
				maxRows = Math.max(maxRows, fmto ? fmto.rowpos || 0 : 0 );
			});
			// set the id.
			$(frm).append(tbl);
			showFrm = $($t).triggerHandler("jqGridViewRowBeforeInitData", [frm]);
			if(showFrm === undefined) {
				showFrm = true;
			}
			if(showFrm && $.jgrid.isFunction(rp_ge[$t.p.id].beforeInitData)) {
				showFrm = rp_ge[$t.p.id].beforeInitData.call($t, frm);
			}
			if(showFrm === false) {return;}

			createData(rowid, $t, tbl, maxCols);
			var rtlb = $t.p.direction === "rtl" ? true :false,
			bp = rtlb ? "nData" : "pData",
			bn = rtlb ? "pData" : "nData",
				// buttons at footer
			bP = "<a id='"+bp+"' class='fm-button " + commonstyle.button + "'><span class='" + commonstyle.icon_base + " " + styles.icon_prev+ "'></span></a>",
			bN = "<a id='"+bn+"' class='fm-button " + commonstyle.button + "'><span class='" + commonstyle.icon_base + " " + styles.icon_next+ "'></span></a>",
			bC  ="<a id='cData' class='fm-button " + commonstyle.button + "'>"+p.bClose+"</a>",
			user_buttons = ( Array.isArray( rp_ge[$t.p.id].buttons ) ? $.jgrid.buildButtons( rp_ge[$t.p.id].buttons, bC, commonstyle ) : bC );
			if(maxRows >  0) {
				var sd=[];
				$.each($(tbl)[0].rows,function(i,r){
					sd[i] = r;
				});
				sd.sort(function(a,b){
					if(a.rp > b.rp) {return 1;}
					if(a.rp < b.rp) {return -1;}
					return 0;
				});
				$.each(sd, function(index, row) {
					$('tbody',tbl).append(row);
				});
			}
			p.gbox = "#gbox_"+$.jgrid.jqID(gID);
			var bt = $("<div></div>").append(frm).append("<table border='0' class='EditTable' id='"+frmtb+"_2'><tbody><tr id='Act_Buttons'><td class='navButton' width='"+p.labelswidth+"'>"+(rtlb ? bN+bP : bP+bN)+"</td><td class='EditButton'>"+ user_buttons+"</td></tr></tbody></table>"),
			fs =  $('.ui-jqgrid').css('font-size') || '11px';
			
			$.jgrid.createModal(IDs,bt, rp_ge[$(this)[0].p.id],"#gview_"+$.jgrid.jqID($t.p.id),$("#gview_"+$.jgrid.jqID($t.p.id))[0], null, {"font-size":fs});
			if(rtlb) {
				$("#pData, #nData","#"+frmtb+"_2").css("float","right");
				$(".EditButton","#"+frmtb+"_2").css("text-align","left");
			}
			if(!p.viewPagerButtons) {$("#pData, #nData","#"+frmtb+"_2").hide();}
			bt = null;
			$("#"+IDs.themodal).keydown( function( e ) {
				if(e.which === 27) {
					if(rp_ge[$t.p.id].closeOnEscape) {$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:p.gbox,jqm:p.jqModal, onClose: p.onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});}
					return false;
				}
				if(p.navkeys[0]===true) {
					if(e.which === p.navkeys[1]){ //up
						$("#pData", "#"+frmtb+"_2").trigger("click");
						return false;
					}
					if(e.which === p.navkeys[2]){ //down
						$("#nData", "#"+frmtb+"_2").trigger("click");
						return false;
					}
				}
			});
			p.closeicon = $.extend([true,"left", styles.icon_close ],p.closeicon);
			if(p.closeicon[0]===true) {
				$("#cData","#"+frmtb+"_2").addClass(p.closeicon[1] === "right" ? 'fm-button-icon-right' : 'fm-button-icon-left')
				.append("<span class='" + commonstyle.icon_base+ " " +p.closeicon[2]+"'></span>");
			}
			$($t).triggerHandler("jqGridViewRowBeforeShowForm", [$("#"+frmgr)]);
			if($.jgrid.isFunction(p.beforeShowForm)) {p.beforeShowForm.call($t,$("#"+frmgr));}

			$.jgrid.viewModal("#"+$.jgrid.jqID(IDs.themodal),{
				gbox:"#gbox_"+$.jgrid.jqID(gID),
				jqm:p.jqModal,
				overlay: p.overlay, 
				modal:p.modal,
				onHide :  function(h) {
					var rtlsup = $("#gbox_"+$.jgrid.jqID(gID)).attr("dir") === "rtl" ? true : false,
						fw = parseFloat($('#viewmod'+gID)[0].style.width);
					$($t).data("viewProp", {
						top:parseFloat($(h.w).css("top")),
						left : rtlsup ? ( $("#gbox_"+$.jgrid.jqID(gID)).outerWidth() - fw - parseFloat($(h.w).css("left")) + 12 ) : parseFloat($(h.w).css("left")),
						width : $(h.w).width(),
						height : $(h.w).height(),
						dataheight : $("#"+frmgr).height(),
						datawidth: $("#"+frmgr).width()
					});
					h.w.remove();
					if(h.o) {h.o.remove();}
				}
			});
			$(".fm-button:not(." + commonstyle.disabled + ")","#"+frmtb+"_2").hover(
				function(){$(this).addClass( commonstyle.hover );},
				function(){$(this).removeClass( commonstyle.hover );}
			);
			focusaref();
			$("#cData", "#"+frmtb+"_2").click(function(){
				$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: p.onClose, removemodal: rp_ge[$t.p.id].removemodal, formprop: !rp_ge[$t.p.id].recreateForm, form: rp_ge[$t.p.id].form});
				return false;
			});
			$("#"+frmtb+"_2").find("[data-index]").each(function(){
				var index = parseInt($(this).attr('data-index'),10);
				if(index >=0 ) {
					if( p.buttons[index].hasOwnProperty('click')) {
						$(this).on('click', function(e) {
							p.buttons[index].click.call($t, $("#"+frmgr_id)[0], rp_ge[$t.p.id], e);
						});
					}
				}
			});

			$("#nData", "#"+frmtb+"_2").click(function(){
				$("#FormError","#"+frmtb).hide();
				var npos = getCurrPos();
				npos[0] = parseInt(npos[0],10);
				if(npos[0] !== -1 && npos[1][npos[0]+1]) {
					$($t).triggerHandler("jqGridViewRowClickPgButtons", ['next',$("#"+frmgr),npos[1][npos[0]]]);
					if($.jgrid.isFunction(p.onclickPgButtons)) {
						p.onclickPgButtons.call($t,'next',$("#"+frmgr),npos[1][npos[0]]);
					}
					fillData(npos[1][npos[0]+1],$t);
					if(!($t.p.multiselect &&  rp_ge[$t.p.id].viewselected)) {
						$($t).jqGrid("setSelection",npos[1][npos[0]+1]);
					}
					$($t).triggerHandler("jqGridViewRowAfterClickPgButtons", ['next',$("#"+frmgr),npos[1][npos[0]+1]]);
					if($.jgrid.isFunction(p.afterclickPgButtons)) {
						p.afterclickPgButtons.call($t,'next',$("#"+frmgr),npos[1][npos[0]+1]);
					}
					updateNav(npos[0]+1,npos);
				}
				focusaref();
				return false;
			});
			$("#pData", "#"+frmtb+"_2").click(function(){
				$("#FormError","#"+frmtb).hide();
				var ppos = getCurrPos();
				if(ppos[0] !== -1 && ppos[1][ppos[0]-1]) {
					$($t).triggerHandler("jqGridViewRowClickPgButtons", ['prev',$("#"+frmgr),ppos[1][ppos[0]]]);
					if($.jgrid.isFunction(p.onclickPgButtons)) {
						p.onclickPgButtons.call($t,'prev',$("#"+frmgr),ppos[1][ppos[0]]);
					}
					fillData(ppos[1][ppos[0]-1],$t);
					if(!($t.p.multiselect &&  rp_ge[$t.p.id].viewselected)) {
						$($t).jqGrid("setSelection",ppos[1][ppos[0]-1]);
					}
					$($t).triggerHandler("jqGridViewRowAfterClickPgButtons", ['prev',$("#"+frmgr),ppos[1][ppos[0]-1]]);
					if($.jgrid.isFunction(p.afterclickPgButtons)) {
						p.afterclickPgButtons.call($t,'prev',$("#"+frmgr),ppos[1][ppos[0]-1]);
					}
					updateNav(ppos[0]-1,ppos);
				}
				focusaref();
				return false;
			});
			var posInit =getCurrPos();
			updateNav(posInit[0],posInit);
			this.refreshViewForm = function( rid, force ) {
				if ( force === undefined) {
					force = false;
				}
				if( force || rowid === rid) {
					fillData(rid, this);
				}
				if(force) {
					rowid = rid;
				}
			};
		});
	},
	delGridRow : function(rowids,p) {
		var regional =  $.jgrid.getRegional(this[0], 'del'),
			currstyle = this[0].p.styleUI,
			styles = $.jgrid.styleUI[currstyle].formedit,
			commonstyle = $.jgrid.styleUI[currstyle].common;

		p = $.extend(true, {
			top : 0,
			left: 0,
			width: 300,
			height: 'auto',
			dataheight : 'auto',
			modal: false,
			overlay: 30,
			drag: true,
			resize: true,
			url : '',
			mtype : "POST",
			reloadAfterSubmit: true,
			beforeShowForm: null,
			beforeInitData : null,
			afterShowForm: null,
			beforeSubmit: null,
			onclickSubmit: null,
			afterSubmit: null,
			jqModal : true,
			closeOnEscape : false,
			delData: {},
			delicon : [],
			cancelicon : [],
			onClose : null,
			ajaxDelOptions : {},
			processing : false,
			serializeDelData : null,
			useDataProxy : false
		}, regional, p ||{});
		rp_ge[$(this)[0].p.id] = p;
		return this.each(function(){
			var $t = this;
			if (!$t.grid ) {return;}
			if(!rowids) {return;}
			var gID = $t.p.id, onCS = {},
			showFrm = true,
			dtbl = "DelTbl_"+$.jgrid.jqID(gID),postd, idname, opers, oper,
			dtbl_id = "DelTbl_" + gID,
			IDs = {themodal:'delmod'+gID,modalhead:'delhd'+gID,modalcontent:'delcnt'+gID, scrollelm: dtbl};
			rp_ge[$t.p.id].styleUI = $t.p.styleUI || 'jQueryUI';
			if (Array.isArray(rowids)) {rowids = rowids.join();}
			if ( $("#"+$.jgrid.jqID(IDs.themodal))[0] !== undefined ) {

				showFrm = $($t).triggerHandler("jqGridDelRowBeforeInitData", [$("#"+dtbl)]);
				if(showFrm === undefined) {
					showFrm = true;
				}
				if(showFrm && $.jgrid.isFunction(rp_ge[$t.p.id].beforeInitData)) {
					showFrm = rp_ge[$t.p.id].beforeInitData.call($t, $("#"+dtbl));
				}
				if(showFrm === false) {return;}

				$("#DelData>td","#"+dtbl).text(rowids);
				$("#DelError","#"+dtbl).hide();
				if( rp_ge[$t.p.id].processing === true) {
					rp_ge[$t.p.id].processing=false;
					$("#dData", "#"+dtbl).removeClass( commonstyle.active );
				}
				$($t).triggerHandler("jqGridDelRowBeforeShowForm", [$("#"+dtbl)]);
				if($.jgrid.isFunction( rp_ge[$t.p.id].beforeShowForm  )) {
					rp_ge[$t.p.id].beforeShowForm.call($t,$("#"+dtbl));
				}
				$.jgrid.viewModal("#"+$.jgrid.jqID(IDs.themodal),{gbox:"#gbox_"+$.jgrid.jqID(gID),jqm:rp_ge[$t.p.id].jqModal, overlay: rp_ge[$t.p.id].overlay, modal:rp_ge[$t.p.id].modal});
				$($t).triggerHandler("jqGridDelRowAfterShowForm", [$("#"+dtbl)]);
				if($.jgrid.isFunction( rp_ge[$t.p.id].afterShowForm )) {
					rp_ge[$t.p.id].afterShowForm.call($t, $("#"+dtbl));
				}
			} else {
				var dh = isNaN(rp_ge[$t.p.id].dataheight) ? rp_ge[$t.p.id].dataheight : rp_ge[$t.p.id].dataheight+"px",
				dw = isNaN(p.datawidth) ? p.datawidth : p.datawidth+"px",
				tbl = "<div id='"+dtbl_id+"' class='formdata' style='width:"+dw+";overflow:auto;position:relative;height:"+dh+";'>";
				tbl += "<table class='DelTable'><tbody>";
				// error data
				tbl += "<tr id='DelError' style='display:none'><td class='" + commonstyle.error +"'></td></tr>";
				tbl += "<tr id='DelData' style='display:none'><td >"+rowids+"</td></tr>";
				tbl += "<tr><td class=\"delmsg\" style=\"white-space:pre;\">"+rp_ge[$t.p.id].msg+"</td></tr><tr><td >&#160;</td></tr>";
				// buttons at footer
				tbl += "</tbody></table></div>";
				var bS  = "<a id='dData' class='fm-button " + commonstyle.button + "'>"+p.bSubmit+"</a>",
				bC  = "<a id='eData' class='fm-button " + commonstyle.button + "'>"+p.bCancel+"</a>",
				user_buttons = ( Array.isArray( rp_ge[$t.p.id].buttons ) ? $.jgrid.buildButtons( rp_ge[$t.p.id].buttons, bS + bC, commonstyle ) : bS + bC ),
				fs =  $('.ui-jqgrid').css('font-size') || '11px';

				tbl += "<table class='EditTable ui-common-table' id='"+dtbl+"_2'><tbody><tr><td><hr class='" + commonstyle.content + "' style='margin:1px'/></td></tr><tr><td class='DelButton EditButton'>"+ user_buttons +"</td></tr></tbody></table>";
				p.gbox = "#gbox_"+$.jgrid.jqID(gID);
				$.jgrid.createModal(IDs,tbl, rp_ge[$t.p.id] ,"#gview_"+$.jgrid.jqID($t.p.id),$("#gview_"+$.jgrid.jqID($t.p.id))[0], null, {"font-size": fs});

				$(".fm-button","#"+dtbl+"_2").hover(
					function(){$(this).addClass( commonstyle.hover );},
					function(){$(this).removeClass( commonstyle.hover );}
				);
				p.delicon = $.extend([true,"left", styles.icon_del ],rp_ge[$t.p.id].delicon);
				p.cancelicon = $.extend([true,"left", styles.icon_cancel ],rp_ge[$t.p.id].cancelicon);
				if(p.delicon[0]===true) {
					$("#dData","#"+dtbl+"_2").addClass(p.delicon[1] === "right" ? 'fm-button-icon-right' : 'fm-button-icon-left')
					.append("<span class='" + commonstyle.icon_base + " " + p.delicon[2]+"'></span>");
				}
				if(p.cancelicon[0]===true) {
					$("#eData","#"+dtbl+"_2").addClass(p.cancelicon[1] === "right" ? 'fm-button-icon-right' : 'fm-button-icon-left')
					.append("<span class='" + commonstyle.icon_base + " " + p.cancelicon[2]+"'></span>");
				}
				$("#dData","#"+dtbl+"_2").click(function(){
					var ret=[true,""], pk,
					postdata = $("#DelData>td","#"+dtbl).text(); //the pair is name=val1,val2,...
					onCS = {};
					onCS = $($t).triggerHandler("jqGridDelRowClickSubmit", [rp_ge[$t.p.id], postdata]);
					if(onCS === undefined && $.jgrid.isFunction( rp_ge[$t.p.id].onclickSubmit ) ) {
						onCS = rp_ge[$t.p.id].onclickSubmit.call($t, rp_ge[$t.p.id], postdata) || {};
					}
					ret = $($t).triggerHandler("jqGridDelRowBeforeSubmit", [postdata]);
					if(ret === undefined) {
						ret = [true,"",""];
					}
					if( ret[0] && $.jgrid.isFunction(rp_ge[$t.p.id].beforeSubmit))  {
						ret = rp_ge[$t.p.id].beforeSubmit.call($t, postdata);
					}
					if(ret[0] && !rp_ge[$t.p.id].processing) {
						rp_ge[$t.p.id].processing = true;
						opers = $t.p.prmNames;
						postd = $.extend({},rp_ge[$t.p.id].delData, onCS);
						oper = opers.oper;
						postd[oper] = opers.deloper;
						idname = opers.id;
						postdata = String(postdata).split(",");
						if(!postdata.length) { return false; }
						for(pk in postdata) {
							if(postdata.hasOwnProperty(pk)) {
								postdata[pk] = $.jgrid.stripPref($t.p.idPrefix, postdata[pk]);
							}
						}
						postd[idname] = postdata.join();
						$(this).addClass( commonstyle.active );
						var ajaxOptions = $.extend({
							url: rp_ge[$t.p.id].url || $($t).jqGrid('getGridParam','editurl'),
							type: rp_ge[$t.p.id].mtype,
							data: $.jgrid.isFunction(rp_ge[$t.p.id].serializeDelData) ? rp_ge[$t.p.id].serializeDelData.call($t,postd) : postd,
							success:function(res, status, data){
								var i;
								$("#dData", "#"+dtbl+"_2").removeClass( commonstyle.active );
								if(data.status >= 300 && data.status !== 304) {
									ret[0] = false;
									ret[1] = $($t).triggerHandler("jqGridDelRowErrorTextFormat", [data]);
									if ($.jgrid.isFunction(rp_ge[$t.p.id].errorTextFormat)) {
										ret[1] = rp_ge[$t.p.id].errorTextFormat.call($t, data);
									}
									if(ret[1] === undefined) {
										ret[1] = status + " Status: '" + data.statusText + "'. Error code: " + data.status;
									}
								} else {
									// data is posted successful
									// execute aftersubmit with the returned data from server
									ret = $($t).triggerHandler("jqGridDelRowAfterSubmit", [data, postd]);
									if(ret === undefined) {
										ret = [true,"",""];
									}
									if( ret[0] && $.jgrid.isFunction(rp_ge[$t.p.id].afterSubmit) ) {
										ret = rp_ge[$t.p.id].afterSubmit.call($t, data, postd);
									}
								}
								if(ret[0] === false) {
									$("#DelError>td","#"+dtbl).html(ret[1]);
									$("#DelError","#"+dtbl).show();
								} else {
									if(rp_ge[$t.p.id].reloadAfterSubmit && $t.p.datatype !== "local") {
										$($t).trigger("reloadGrid");
									} else {
										if($t.p.treeGrid===true){
												try {$($t).jqGrid("delTreeNode",$t.p.idPrefix+postdata[0], true);} catch(e){}
										} else {
											for(i=0;i<postdata.length;i++) {
												$($t).jqGrid("delRowData",$t.p.idPrefix+ postdata[i]);
											}
										}
										$t.p.selrow = null;
										$t.p.selarrrow = [];
									}
									if($.jgrid.isFunction(rp_ge[$t.p.id].afterComplete) || Object.prototype.hasOwnProperty.call($._data( $($t)[0], 'events' ), 'jqGridDelRowAfterComplete')) {
										var copydata = data;
										setTimeout(function(){
											$($t).triggerHandler("jqGridDelRowAfterComplete", [copydata, postd]);
											try {
												rp_ge[$t.p.id].afterComplete.call($t, copydata, postd);
											} catch(eacg) {
												// do nothing
											}
										},500);
									}
								}
								rp_ge[$t.p.id].processing=false;
								if(ret[0]) {$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose});}
							}
						}, $.jgrid.ajaxOptions, rp_ge[$t.p.id].ajaxDelOptions);


						if (!ajaxOptions.url && !rp_ge[$t.p.id].useDataProxy) {
							if ($.jgrid.isFunction($t.p.dataProxy)) {
								rp_ge[$t.p.id].useDataProxy = true;
							} else {
								ret[0]=false;ret[1] += " "+$.jgrid.getRegional($t, 'errors.nourl');
							}
						}
						if (ret[0]) {
							if (rp_ge[$t.p.id].useDataProxy) {
								var dpret = $t.p.dataProxy.call($t, ajaxOptions, "del_"+$t.p.id); 
								if(dpret === undefined) {
									dpret = [true, ""];
								}
								if(dpret[0] === false ) {
									ret[0] = false;
									ret[1] = dpret[1] || "Error deleting the selected row!" ;
								} else {
									$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:p.jqModal, onClose: rp_ge[$t.p.id].onClose});
								}
							}
							else {
								if(ajaxOptions.url === "clientArray") {
									postd = ajaxOptions.data;
									ajaxOptions.success({status:200, statusText:''},'');
								} else if( ajaxOptions.url === "storage") {
									$($t).jqGrid('deleteStorageRecord', postdata)
									.then(function(e){
										if(e.type==="complete") {
											ajaxOptions.success(postdata,'',{status:200, statusText:''});
										}
									})
									.catch(function(e) {
										$.jgrid.info_dialog("Error",e.target.error.name + " : "+e.target.error.message,'Close');
									});
								} else {
									$.ajax(ajaxOptions); 
								}
							}
						}
					}

					if(ret[0] === false) {
						$("#DelError>td","#"+dtbl).html(ret[1]);
						$("#DelError","#"+dtbl).show();
					}
					return false;
				});
				$("#eData", "#"+dtbl+"_2").click(function(){
					$.jgrid.hideModal("#"+$.jgrid.jqID(IDs.themodal),{gb:"#gbox_"+$.jgrid.jqID(gID),jqm:rp_ge[$t.p.id].jqModal, onClose: rp_ge[$t.p.id].onClose});
					return false;
				});
				$("#"+dtbl+"_2").find("[data-index]").each(function(){
					var index = parseInt($(this).attr('data-index'),10);
					if(index >=0 ) {
						if( p.buttons[index].hasOwnProperty('click')) {
							$(this).on('click', function(e) {
								p.buttons[index].click.call($t, $("#"+dtbl_id)[0], rp_ge[$t.p.id], e);
							});
						}
					}
				});

				showFrm = $($t).triggerHandler("jqGridDelRowBeforeInitData", [$("#"+dtbl)]);
				if(showFrm === undefined) {
					showFrm = true;
				}
				if(showFrm && $.jgrid.isFunction(rp_ge[$t.p.id].beforeInitData)) {
					showFrm = rp_ge[$t.p.id].beforeInitData.call($t, $("#"+dtbl));
				}
				if(showFrm === false) {return;}
				$($t).triggerHandler("jqGridDelRowBeforeShowForm", [$("#"+dtbl)]);
				if($.jgrid.isFunction( rp_ge[$t.p.id].beforeShowForm  )) {
					rp_ge[$t.p.id].beforeShowForm.call($t,$("#"+dtbl));
				}
				$.jgrid.viewModal("#"+$.jgrid.jqID(IDs.themodal),{gbox:"#gbox_"+$.jgrid.jqID(gID),jqm:rp_ge[$t.p.id].jqModal, overlay: rp_ge[$t.p.id].overlay, modal:rp_ge[$t.p.id].modal});
				$($t).triggerHandler("jqGridDelRowAfterShowForm", [$("#"+dtbl)]);
				if($.jgrid.isFunction( rp_ge[$t.p.id].afterShowForm )) {
					rp_ge[$t.p.id].afterShowForm.call($t,$("#"+dtbl));
				}
			}
			if(rp_ge[$t.p.id].closeOnEscape===true) {
				setTimeout(function(){$(".ui-jqdialog-titlebar-close","#"+$.jgrid.jqID(IDs.modalhead)).attr("tabindex","-1").focus();},0);
			}
		});
	},
	navGrid : function (elem, p, pEdit, pAdd, pDel, pSearch, pView) {
		var regional =  $.jgrid.getRegional(this[0], 'nav'),
			currstyle = this[0].p.styleUI,
			styles = $.jgrid.styleUI[currstyle].navigator,
			commonstyle = $.jgrid.styleUI[currstyle].common;
		p = $.extend({
			edit: true,
			editicon: styles.icon_edit_nav,
			add: true,
			addicon: styles.icon_add_nav,
			del: true,
			delicon: styles.icon_del_nav,
			search: true,
			searchicon: styles.icon_search_nav,
			refresh: true,
			refreshicon: styles.icon_refresh_nav,
			refreshstate: 'firstpage',
			view: false,
			viewicon : styles.icon_view_nav,
			position : "left",
			closeOnEscape : true,
			beforeRefresh : null,
			afterRefresh : null,
			cloneToTop : false,
			alertwidth : 200,
			alertheight : 'auto',
			alerttop: null,
			alertleft: null,
			alertzIndex : null,
			dropmenu : false,
			navButtonText : ''
		}, regional, p ||{});
		return this.each(function() {
			if(this.p.navGrid) {return;}
			var $t = this, twd, tdw, o;
			if(!$t.grid || typeof elem !== 'string') {return;}
			if(!$($t).data('navGrid')) {
				$($t).data('navGrid',p);
			}
			// speedoverhead, but usefull for future 
			o = $($t).data('navGrid');
			if($t.p.force_regional) {
				o = $.extend(o, regional);
			}
			if(!o.alerttop && !o.alertleft) {
				var pos=$.jgrid.findPos(this);
				pos[0]=Math.round(pos[0]);
				pos[1]=Math.round(pos[1]);
				var hg = isNaN(this.p.height) ? $($t.grid.bDiv).height(): this.p.height;
				if(hg === 0) {
					hg = 200;
				}
				o.alertleft = pos[0] + (this.p.width/2)-parseInt(o.alertwidth,10)/2;
				o.alerttop = pos[1] + (hg/2)-25;
			}
			var alert_info = function(){
				 $.jgrid.info_dialog(o.alertcap,"<div>"+o.alerttext+"</div><span tabindex='0'><span tabindex='-1' id='jqg_alrt'></span></span>","",{
						jqModal:true,
						drag:true,
						resize:true,
						caption:o.alertcap,
					width:o.alertwidth,
					height: o.alertheight,
						top:o.alerttop,
						left:o.alertleft,
						closeOnEscape:o.closeOnEscape, 
					styleUI: $t.p.styleUI,
					zIndex: o.alertzIndex}
				);
			};
			var clone = 1, i,
			onHoverIn = function () {
				if (!$(this).hasClass(commonstyle.disabled)) {
					$(this).addClass(commonstyle.hover);
				}
			},
			onHoverOut = function () {
				$(this).removeClass(commonstyle.hover);
			};
			if(o.cloneToTop && $t.p.toppager) {clone = 2;}
			for(i = 0; i<clone; i++) {
				var tbd,
				navtbl = $("<table class='ui-pg-table navtable ui-common-table'><tbody><tr></tr></tbody></table>"),
				sep = "<td class='ui-pg-button " +commonstyle.disabled + "' style='width:4px;'><span class='ui-separator'></span></td>",
				pgid, elemids;
				if(i===0) {
					pgid = elem;
					if(pgid.indexOf("#") === 0 ) {
						pgid = pgid.substring(1);
						pgid = "#"+ $.jgrid.jqID( pgid );
					}
					elemids = $t.p.id;
					if(pgid === $t.p.toppager) {
						elemids += "_top";
						clone = 1;
					}
				} else {
					pgid = $t.p.toppager;
					elemids = $t.p.id+"_top";
				}
				if($t.p.direction === "rtl") {
					$(navtbl).attr("dir","rtl").css("float","right");
				}
				pAdd = pAdd || {};
				if (o.add) {
					tbd = $("<td class='ui-pg-button "+commonstyle.cornerall+"'></td>");
					$(tbd).append("<div class='ui-pg-div'><span class='"+commonstyle.icon_base +" " +o.addicon+"'></span>"+o.addtext+"</div>");
					$("tr",navtbl).append(tbd);
					$(tbd,navtbl)
					.attr({"title":o.addtitle || "",id : pAdd.id || "add_"+elemids})
					.click(function(){
						if (!$(this).hasClass( commonstyle.disabled )) {
							$.jgrid.setSelNavIndex( $t, this);
							if ($.jgrid.isFunction( o.addfunc )) {
								o.addfunc.call($t);
							} else {
								$($t).jqGrid("editGridRow","new",pAdd);
							}
						}
						return false;
					}).hover(onHoverIn, onHoverOut);
					tbd = null;
				}
				pEdit = pEdit || {};
				if (o.edit) {
					tbd = $("<td class='ui-pg-button "+commonstyle.cornerall+"'></td>");
					$(tbd).append("<div class='ui-pg-div'><span class='"+commonstyle.icon_base+" "+o.editicon+"'></span>"+o.edittext+"</div>");
					$("tr",navtbl).append(tbd);
					$(tbd,navtbl)
					.attr({"title":o.edittitle || "",id: pEdit.id || "edit_"+elemids})
					.click(function(){
						if (!$(this).hasClass( commonstyle.disabled )) {
							var sr = $t.p.selrow;
							if (sr) {
								$.jgrid.setSelNavIndex( $t, this);
								if($.jgrid.isFunction( o.editfunc ) ) {
									o.editfunc.call($t, sr);
								} else {
									$($t).jqGrid("editGridRow",sr,pEdit);
								}
							} else {
								alert_info();
								$("#jqg_alrt").focus();
							}
						}
						return false;
					}).hover(onHoverIn, onHoverOut);
					tbd = null;
				}
				pView = pView || {};
				if (o.view) {
					tbd = $("<td class='ui-pg-button "+commonstyle.cornerall+"'></td>");
					$(tbd).append("<div class='ui-pg-div'><span class='"+commonstyle.icon_base+" "+o.viewicon+"'></span>"+o.viewtext+"</div>");
					$("tr",navtbl).append(tbd);
					$(tbd,navtbl)
					.attr({"title":o.viewtitle || "",id: pView.id || "view_"+elemids})
					.click(function(){
						if (!$(this).hasClass( commonstyle.disabled )) {
							var sr = $t.p.selrow;
							if (sr) {
								$.jgrid.setSelNavIndex( $t, this);
								if($.jgrid.isFunction( o.viewfunc ) ) {
									o.viewfunc.call($t, sr);
								} else {
									$($t).jqGrid("viewGridRow",sr,pView);
								}
							} else {
								alert_info();
								$("#jqg_alrt").focus();
							}
						}
						return false;
					}).hover(onHoverIn, onHoverOut);
					tbd = null;
				}
				pDel = pDel || {};
				if (o.del) {
					tbd = $("<td class='ui-pg-button "+commonstyle.cornerall+"'></td>");
					$(tbd).append("<div class='ui-pg-div'><span class='"+commonstyle.icon_base+" "+o.delicon+"'></span>"+o.deltext+"</div>");
					$("tr",navtbl).append(tbd);
					$(tbd,navtbl)
					.attr({"title":o.deltitle || "",id: pDel.id || "del_"+elemids})
					.click(function(){
						if (!$(this).hasClass( commonstyle.disabled )) {
							var dr;
							if($t.p.multiselect) {
								dr = $t.p.selarrrow;
								if(dr.length===0) {dr = null;}
							} else {
								dr = $t.p.selrow;
							}
							if(dr){
								$.jgrid.setSelNavIndex( $t, this);
								if($.jgrid.isFunction( o.delfunc )){
									o.delfunc.call($t, dr);
								}else{
									$($t).jqGrid("delGridRow",dr,pDel);
								}
							} else  {
								alert_info();
							}
						}
						return false;
					}).hover(onHoverIn, onHoverOut);
					tbd = null;
				}
				if(o.add || o.edit || o.del || o.view) {$("tr",navtbl).append(sep);}
				pSearch = pSearch || {};
				if (o.search) {
					tbd = $("<td class='ui-pg-button "+commonstyle.cornerall+"'></td>");
					$(tbd).append("<div class='ui-pg-div'><span class='"+commonstyle.icon_base+" "+o.searchicon+"'></span>"+o.searchtext+"</div>");
					$("tr",navtbl).append(tbd);
					$(tbd,navtbl)
					.attr({"title":o.searchtitle  || "",id:pSearch.id || "search_"+elemids})
					.click(function(){
						if (!$(this).hasClass( commonstyle.disabled )) {
							$.jgrid.setSelNavIndex( $t, this);
							if($.jgrid.isFunction( o.searchfunc )) {
								o.searchfunc.call($t, pSearch);
							} else {
								$($t).jqGrid("searchGrid",pSearch);
							}
						}
						return false;
					}).hover(onHoverIn, onHoverOut);
					if (pSearch.showOnLoad && pSearch.showOnLoad === true) {
						$(tbd,navtbl).click();
					}
					tbd = null;
				}
				if (o.refresh) {
					tbd = $("<td class='ui-pg-button "+commonstyle.cornerall+"'></td>");
					$(tbd).append("<div class='ui-pg-div'><span class='"+commonstyle.icon_base+" "+o.refreshicon+"'></span>"+o.refreshtext+"</div>");
					$("tr",navtbl).append(tbd);
					$(tbd,navtbl)
					.attr({"title":o.refreshtitle  || "",id: "refresh_"+elemids})
					.click(function(){
						if (!$(this).hasClass( commonstyle.disabled )) {
							if($.jgrid.isFunction(o.beforeRefresh)) {o.beforeRefresh.call($t);}
							$t.p.search = false;
							$t.p.resetsearch =  true;
							try {
								if( o.refreshstate !== 'currentfilter') {
									var gID = $t.p.id;
									$t.p.postData.filters ="";
									try {
										$("#fbox_"+$.jgrid.jqID(gID)).jqFilter('resetFilter');
									} catch(ef) {}
									if($.jgrid.isFunction($t.clearToolbar)) {$t.clearToolbar.call($t,false);}
								}
							} catch (e) {}
							switch (o.refreshstate) {
								case 'firstpage':
									$($t).trigger("reloadGrid", [{page:1}]);
									break;
								case 'current':
								case 'currentfilter':
									$($t).trigger("reloadGrid", [{current:true}]);
									break;
							}
							if($.jgrid.isFunction(o.afterRefresh)) {o.afterRefresh.call($t);}
							$.jgrid.setSelNavIndex( $t, this);
						}
						return false;
					}).hover(onHoverIn, onHoverOut);
					tbd = null;
				}
				tdw = $(".ui-jqgrid").css("font-size") || "11px";
				$('body').append("<div id='testpg2' class='ui-jqgrid "+$.jgrid.styleUI[currstyle].base.entrieBox+"' style='font-size:"+tdw+";visibility:hidden;' ></div>");
				twd = $(navtbl).clone().appendTo("#testpg2").width();
				$("#testpg2").remove();
				
				if($t.p._nvtd) {
					if(o.dropmenu) {
						navtbl = null;
						$($t).jqGrid('_buildNavMenu', pgid, elemids, $.extend(p,{'ainfo':alert_info}), pEdit, pAdd, pDel, pSearch, pView );						
					} else if(twd > $t.p._nvtd[0] ) {
						if($t.p.responsive) {
							navtbl = null;
							$($t).jqGrid('_buildNavMenu', pgid, elemids, $.extend(p,{'ainfo':alert_info}), pEdit, pAdd, pDel, pSearch, pView );
						} else {
							$(pgid+"_"+o.position,pgid).append(navtbl).width(twd);
						}
						$t.p._nvtd[0] = twd;
					} else {
						$(pgid+"_"+o.position,pgid).append(navtbl);
					}
					$t.p._nvtd[1] = twd;
				}
				$t.p.navGrid = true;
			}
			if($t.p.storeNavOptions) {
				$t.p.navOptions = o;
				$t.p.editOptions = pEdit;
				$t.p.addOptions = pAdd;
				$t.p.delOptions = pDel;
				$t.p.searchOptions = pSearch;
				$t.p.viewOptions = pView;
				$t.p.navButtons =[];
			}

		});
	},
	navButtonAdd : function (elem, p) {
		var	currstyle = this[0].p.styleUI,
			styles = $.jgrid.styleUI[currstyle].navigator;
		p = $.extend({
			caption : "newButton",
			title: '',
			buttonicon : styles.icon_newbutton_nav,
			onClickButton: null,
			position : "last",
			cursor : 'pointer',
			internal : false
		}, p ||{});
		return this.each(function() {
			if(!this.grid || typeof elem !== 'string') {return;}
			if( elem.indexOf("#") === 0 ) {
				elem = elem.substring(1);
			}
			elem = "#" +  $.jgrid.jqID(elem);
			var findnav = $(".navtable",elem)[0], $t = this,
			//getstyle = $.jgrid.getMethod("getStyleUI"),
			disabled = $.jgrid.styleUI[currstyle].common.disabled,
			hover = $.jgrid.styleUI[currstyle].common.hover,
			cornerall = $.jgrid.styleUI[currstyle].common.cornerall,
			iconbase = $.jgrid.styleUI[currstyle].common.icon_base;

			if ($t.p.storeNavOptions && !p.internal) {
				$t.p.navButtons.push([elem,p]);
			}

			if (findnav) {
				if( p.id && $("#"+$.jgrid.jqID(p.id), findnav)[0] !== undefined )  {return;}
				var tbd = $("<td></td>");
				if(p.buttonicon.toString().toUpperCase() === "NONE") {
                    $(tbd).addClass('ui-pg-button '+cornerall).append("<div class='ui-pg-div'>"+p.caption+"</div>");
				} else	{
					$(tbd).addClass('ui-pg-button '+cornerall).append("<div class='ui-pg-div'><span class='"+iconbase+" "+p.buttonicon+"'></span>"+p.caption+"</div>");
				}
				if(p.id) {$(tbd).attr("id",p.id);}
				if(p.position==='first'){
					if(findnav.rows[0].cells.length ===0 ) {
						$("tr",findnav).append(tbd);
					} else {
						$("tr td",findnav).eq( 0 ).before(tbd);
					}
				} else {
					$("tr",findnav).append(tbd);
				}
				$(tbd,findnav)
				.attr("title",p.title  || "")
				.click(function(e){
					if (!$(this).hasClass(disabled)) {
						$.jgrid.setSelNavIndex( $t, this);
						if ($.jgrid.isFunction(p.onClickButton) ) {p.onClickButton.call($t,e);}
					}
					return false;
				})
				.hover(
					function () {
						if (!$(this).hasClass(disabled)) {
							$(this).addClass(hover);
						}
					},
					function () {$(this).removeClass(hover);}
				);
			} else {
				findnav = $(".dropdownmenu",elem)[0];
				if (findnav) {
					var id = $(findnav).val(),
					eid = p.id || $.jgrid.randId(),
					item = $('<li class="ui-menu-item" role="presentation"><a class="'+ cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+eid+'">'+(p.caption || p.title)+'</a></li>');
					if(id) {
						if(p.position === 'first') {
							$("#"+id).prepend( item );
						} else {
							$("#"+id).append( item );
						}
						$(item).on("click", function(e){
							if (!$(this).hasClass(disabled)) {
								$("#"+id).hide();
								if ($.jgrid.isFunction(p.onClickButton) ) {
									p.onClickButton.call($t,e);
								}
							}
							return false;
						}).find("a")
						.hover(
							function () {
								if (!$(this).hasClass(disabled)) {
									$(this).addClass(hover);
								}
							},
							function () {$(this).removeClass(hover);}
						);
					}
				}
			}
		});
	},
	navSeparatorAdd:function (elem,p) {
		var	currstyle = this[0].p.styleUI,
			commonstyle = $.jgrid.styleUI[currstyle].common;
		p = $.extend({
			sepclass : "ui-separator",
			sepcontent: '',
			position : "last"
		}, p ||{});
		return this.each(function() {
			if( !this.grid)  {return;}
			if( typeof elem === "string" && elem.indexOf("#") !== 0) {elem = "#"+$.jgrid.jqID(elem);}
			var findnav = $(".navtable",elem)[0], sep, id;
			if ( this.p.storeNavOptions ) {
				this.p.navButtons.push([elem,p]);
			}
			
			if(findnav) {
				sep = "<td class='ui-pg-button "+ commonstyle.disabled +"' style='width:4px;'><span class='"+p.sepclass+"'></span>"+p.sepcontent+"</td>";
				if (p.position === 'first') {
					if (findnav.rows[0].cells.length === 0) {
						$("tr", findnav).append(sep);
					} else {
						$("tr td", findnav).eq( 0 ).before(sep);
					}
				} else {
					$("tr", findnav).append(sep);
				}
			} else {
				findnav = $(".dropdownmenu",elem)[0];
				sep = "<li class='ui-menu-item " +commonstyle.disabled + "' style='width:100%' role='presentation'><hr class='ui-separator-li'></li>";
				if(findnav) {
					id = $(findnav).val();
					if(id) {
						if(p.position === "first") {
							$("#"+id).prepend( sep );
						} else {
							$("#"+id).append( sep );
						}
					}
				}
			}
		});
	},
	_buildNavMenu : function ( elem, elemids, p, pEdit, pAdd, pDel, pSearch, pView ) {
		return this.each(function() {
			var $t = this,
			//actions = ['add','edit', 'del', 'view', 'search','refresh'],
			regional =  $.jgrid.getRegional($t, 'nav'),
			currstyle = $t.p.styleUI,
			//styles = $.jgrid.styleUI[currstyle].navigator,
			classes = $.jgrid.styleUI[currstyle].filter,
			commonstyle = $.jgrid.styleUI[currstyle].common,
			mid = "form_menu_"+$.jgrid.randId(),
			bt = p.navButtonText ? p.navButtonText : regional.selectcaption || 'Actions',
			act = "<button class='dropdownmenu "+commonstyle.button+"' value='"+mid+"'>" + bt +"</button>";
			$(elem+"_"+p.position, elem).append( act );
			var _buildMenu = function() {
				var fs =  $('.ui-jqgrid').css('font-size') || '11px',
				eid, itm,
				str = $('<ul id="'+mid+'" class="ui-nav-menu modal-content ui-menu column-menu jqgrid-column-menu ' + commonstyle.shadow + '" role="menu" tabindex="0" style="display:none;font-size:'+fs+'"></ul>');
				if( p.add ) {
					pAdd = pAdd || {};
					eid = pAdd.id || "add_"+elemids;
					itm = $('<li class="ui-menu-item" role="presentation"><a class="'+ commonstyle.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+eid+'">'+(p.addtext.trim() || p.addtitle)+'</a></li>').click(function(){
						if (!$(this).hasClass( commonstyle.disabled )) {
							if ($.jgrid.isFunction( p.addfunc )) {
								p.addfunc.call($t);
							} else {
								$($t).jqGrid("editGridRow","new",pAdd);
							}
							$(str).hide();
						}
						return false;
					});
					$(str).append(itm);
				}
				if( p.edit ) {
					pEdit = pEdit || {};
					eid = pEdit.id || "edit_"+elemids;
					itm = $('<li class="ui-menu-item" role="presentation"><a class="'+ commonstyle.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+eid+'">'+(p.edittext.trim() || p.edittitle)+'</a></li>').click(function(){
						if (!$(this).hasClass( commonstyle.disabled )) {
							var sr = $t.p.selrow;
							if (sr) {
								if($.jgrid.isFunction( p.editfunc ) ) {
									p.editfunc.call($t, sr);
								} else {
									$($t).jqGrid("editGridRow",sr,pEdit);
								}
							} else {
								p.ainfo();
								$("#jqg_alrt").focus();
							}
							$(str).hide();
						}
						return false;
					});
					$(str).append(itm);
				}
				if( p.view ) {
					pView = pView || {};
					eid = pView.id || "view_"+elemids;
					itm = $('<li class="ui-menu-item" role="presentation"><a class="'+ commonstyle.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+eid+'">'+(p.viewtext.trim() || p.viewtitle)+'</a></li>').click(function(){
						if (!$(this).hasClass( commonstyle.disabled )) {
							var sr = $t.p.selrow;
							if (sr) {
								if($.jgrid.isFunction( p.editfunc ) ) {
									p.viewfunc.call($t, sr);
								} else {
									$($t).jqGrid("viewGridRow",sr,pView);
								}
							} else {
								p.ainfo();
								$("#jqg_alrt").focus();
							}
							$(str).hide();
						}
						return false;
					});
					$(str).append(itm);
				}
				if( p.del ) {
					pDel = pDel || {};
					eid = pDel.id || "del_"+elemids;
					itm = $('<li class="ui-menu-item" role="presentation"><a class="'+ commonstyle.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+eid+'">'+(p.deltext.trim() || p.deltitle)+'</a></li>').click(function(){
						if (!$(this).hasClass( commonstyle.disabled )) {
							var dr;
							if($t.p.multiselect) {
								dr = $t.p.selarrrow;
								if(dr.length===0) {dr = null;}
							} else {
								dr = $t.p.selrow;
							}
							if(dr){
								if($.jgrid.isFunction( p.delfunc )){
									p.delfunc.call($t, dr);
								}else{
									$($t).jqGrid("delGridRow",dr,pDel);
								}
							} else  {
								p.ainfo();
							}
							$(str).hide();
						}
						return false;
					});
					$(str).append(itm);
				}
				if(p.add || p.edit || p.del || p.view) {
					$(str).append("<li class='ui-menu-item " +commonstyle.disabled + "' style='width:100%' role='presentation'><hr class='ui-separator-li'></li>");
				}
				if( p.search ) {
					pSearch = pSearch || {};
					eid = pSearch.id || "search_"+elemids;
					itm = $('<li class="ui-menu-item" role="presentation"><a class="'+ commonstyle.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+eid+'">'+(p.searchtext.trim() || p.searchtitle)+'</a></li>').click(function(){
						if (!$(this).hasClass( commonstyle.disabled )) {
							if($.jgrid.isFunction( p.searchfunc )) {
								p.searchfunc.call($t, pSearch);
							} else {
								$($t).jqGrid("searchGrid",pSearch);
							}
							$(str).hide();
						}
						return false;
					});
					$(str).append(itm);
					if (pSearch.showOnLoad && pSearch.showOnLoad === true) {
						$( itm ).click();
					}
				}
				if( p.refresh ) {
					eid = pSearch.id || "search_"+elemids;
					itm = $('<li class="ui-menu-item" role="presentation"><a class="'+ commonstyle.cornerall+' g-menu-item" tabindex="0" role="menuitem" id="'+eid+'">'+(p.refreshtext || p.refreshtitle)+'</a></li>').click(function(){
						if (!$(this).hasClass( commonstyle.disabled )) {
							if($.jgrid.isFunction(p.beforeRefresh)) {p.beforeRefresh.call($t);}
							$t.p.search = false;
							$t.p.resetsearch =  true;
							try {
								if( p.refreshstate !== 'currentfilter') {
									var gID = $t.p.id;
									$t.p.postData.filters ="";
									try {
										$("#fbox_"+$.jgrid.jqID(gID)).jqFilter('resetFilter');
									} catch(ef) {}
									if($.jgrid.isFunction($t.clearToolbar)) {$t.clearToolbar.call($t,false);}
								}
							} catch (e) {}
							switch (p.refreshstate) {
								case 'firstpage':
									$($t).trigger("reloadGrid", [{page:1}]);
									break;
								case 'current':
								case 'currentfilter':
									$($t).trigger("reloadGrid", [{current:true}]);
									break;
							}
							if($.jgrid.isFunction(p.afterRefresh)) {p.afterRefresh.call($t);}
							$(str).hide();
						}
						return false;
					});
					$(str).append(itm);
				}
				$(str).hide();
				$('body').append(str);
				$("#"+mid).addClass("ui-menu " + classes.menu_widget);
				$("#"+mid+" > li > a").hover(
					function(){ $(this).addClass(commonstyle.hover); },
					function(){ $(this).removeClass(commonstyle.hover); }
				);
			};
			_buildMenu();
			$(".dropdownmenu", elem+"_"+p.position).on("click", function( e ){
				var offset = $(this).offset(),
				left = ( offset.left ),
				top = parseInt( offset.top),
				bid =$(this).val();
				//if( $("#"+mid)[0] === undefined)  {
					//_buildMenu();
				//}
				$("#"+bid).show().css({"top":top - ($("#"+bid).height() + 35)+"px", "left":left+"px"});
				e.stopPropagation();
			});
			$("body").on('click', function(e){
				if(!$(e.target).hasClass("dropdownmenu")) {
					$("#"+mid).hide();
				}
			});
		});
	},
	GridToForm : function( rowid, formid ) {
		return this.each(function(){
			var $t = this, i;
			if (!$t.grid) {return;}
			var rowdata = $($t).jqGrid("getRowData",rowid);
			if (rowdata) {
				for(i in rowdata) {
					if(rowdata.hasOwnProperty(i)) {
					if ( $("[name="+$.jgrid.jqID(i)+"]",formid).is("input:radio") || $("[name="+$.jgrid.jqID(i)+"]",formid).is("input:checkbox"))  {
						$("[name="+$.jgrid.jqID(i)+"]",formid).each( function() {
							if( $(this).val() == rowdata[i] ) {
								$(this)[$t.p.useProp ? 'prop': 'attr']("checked",true);
							} else {
								$(this)[$t.p.useProp ? 'prop': 'attr']("checked", false);
							}
						});
					} else {
					// this is very slow on big table and form.
						$("[name="+$.jgrid.jqID(i)+"]",formid).val(rowdata[i]);
					}
				}
			}
			}
		});
	},
	FormToGrid : function(rowid, formid, mode, position){
		return this.each(function() {
			var $t = this;
			if(!$t.grid) {return;}
			if(!mode) {mode = 'set';}
			if(!position) {position = 'first';}
			var fields = $(formid).serializeArray();
			var griddata = {};
			$.each(fields, function(i, field){
				griddata[field.name] = field.value;
			});
			if(mode==='add') {$($t).jqGrid("addRowData",rowid,griddata, position);}
			else if(mode==='set') {$($t).jqGrid("setRowData",rowid,griddata);}
		});
	}
});

//module begin
$.jgrid.extend({
	groupingInit : function () {
		return this.each(function (){
			var $t = this;
			$.extend ($t.p.groupingView, {
				groupField :[],
				groupOrder:[],
				groupText:[],
				groupColumnShow:[],
				groupSummary:[],
				showSummaryOnHide: false,
				sortitems:[],
				sortnames:[],
				summary:[],
				summaryval:[],
				plusicon: '',
				minusicon: '',
				displayField: [],
				groupSummaryPos:[],
				formatDisplayField : [],
				_locgr : false
			}, true);
		});
	},
	groupingSetup : function () {
		return this.each(function (){
			var $t = this, i, j, cml, cm = $t.p.colModel, grp = $t.p.groupingView,
			classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].grouping;
			if(grp !== null && ( (typeof grp === 'object') || $.jgrid.isFunction(grp) ) ) {
				if(!grp.plusicon) { grp.plusicon = classes.icon_plus;}
				if(!grp.minusicon) { grp.minusicon = classes.icon_minus;}
				if(!grp.groupField.length) {
					$t.p.grouping = false;
				} else {
					if (grp.visibiltyOnNextGrouping === undefined) {
						grp.visibiltyOnNextGrouping = [];
					}

					grp.lastvalues=[];
					if(!grp._locgr) {
						grp.groups =[];
					}
					grp.counters =[];
					for(i=0;i<grp.groupField.length;i++) {
						if(!grp.groupOrder[i]) {
							grp.groupOrder[i] = 'asc';
						}
						if(!grp.groupText[i]) {
							grp.groupText[i] = '{0}';
						}
						if( typeof grp.groupColumnShow[i] !== 'boolean') {
							grp.groupColumnShow[i] = true;
						}
						if( typeof grp.groupSummary[i] !== 'boolean') {
							grp.groupSummary[i] = false;
						}
						if( !grp.groupSummaryPos[i]) {
							grp.groupSummaryPos[i] = 'footer';
						}
						if(grp.groupColumnShow[i] === true) {
							grp.visibiltyOnNextGrouping[i] = true;
							$($t).jqGrid('showCol',grp.groupField[i]);
						} else {
							grp.visibiltyOnNextGrouping[i] = $("#"+$.jgrid.jqID($t.p.id+"_"+grp.groupField[i])).is(":visible");
							$($t).jqGrid('hideCol',grp.groupField[i]);
						}
					}
					grp.summary =[];
					if(grp.hideFirstGroupCol) {
						if(Array.isArray(grp.formatDisplayField) && !$.jgrid.isFunction(grp.formatDisplayField[0] ) ) {
							grp.formatDisplayField[0] = function (v) { return v;};
						}
					}
					for(j=0, cml = cm.length; j < cml; j++) {
						if(grp.hideFirstGroupCol) {
							if(!cm[j].hidden && grp.groupField[0] === cm[j].name) {
								cm[j].formatter = function(){return '';};
							}
						}
						if(cm[j].summaryType ) {
							if(cm[j].summaryDivider) {
								grp.summary.push({nm:cm[j].name,st:cm[j].summaryType, v: '', sd:cm[j].summaryDivider, vd:'', sr: cm[j].summaryRound, srt: cm[j].summaryRoundType || 'round'});
							} else {
								grp.summary.push({nm:cm[j].name,st:cm[j].summaryType, v: '', sr: cm[j].summaryRound, srt: cm[j].summaryRoundType || 'round'});
							}
						}
					}
				}
			} else {
				$t.p.grouping = false;
			}
		});
	},
	groupingPrepare : function ( record, irow ) {
		this.each(function(){
			var grp = this.p.groupingView, $t= this, i,
			sumGroups = function() {
				if ($.jgrid.isFunction(this.st)) {
					this.v = this.st.call($t, this.v, this.nm, record);
				} else {
					this.v = $($t).jqGrid('groupingCalculations.handler',this.st, this.v, this.nm, this.sr, this.srt, record);
					if(this.st.toLowerCase() === 'avg' && this.sd) {
						this.vd = $($t).jqGrid('groupingCalculations.handler',this.st, this.vd, this.sd, this.sr, this.srt, record);
					}
				}
			},
			grlen = grp.groupField.length, 
			fieldName,
			v,
			displayName,
			displayValue,
			changed = 0;
			for(i=0;i<grlen;i++) {
				fieldName = grp.groupField[i];
				displayName = grp.displayField[i];
				v = record[fieldName];
				displayValue = displayName == null ? null : record[displayName];

				if( displayValue == null ) {
					displayValue = v;
				}
				if( v !== undefined ) {
					if(irow === 0 ) {
						// First record always starts a new group
						grp.groups.push({idx:i,dataIndex:fieldName,value:v, displayValue: displayValue, startRow: irow, cnt:1, summary : [] } );
						grp.lastvalues[i] = v;
						grp.counters[i] = {cnt:1, pos:grp.groups.length-1, summary: $.extend(true,[],grp.summary)};
						$.each(grp.counters[i].summary, sumGroups);
						grp.groups[grp.counters[i].pos].summary = grp.counters[i].summary;
					} else {
						if (typeof v !== "object" && (Array.isArray(grp.isInTheSameGroup) && $.jgrid.isFunction(grp.isInTheSameGroup[i]) ? ! grp.isInTheSameGroup[i].call($t, grp.lastvalues[i], v, i, grp): grp.lastvalues[i] !== v)) {
							// This record is not in same group as previous one
							grp.groups.push({idx:i,dataIndex:fieldName,value:v, displayValue: displayValue, startRow: irow, cnt:1, summary : [] } );
							grp.lastvalues[i] = v;
							changed = 1;
							grp.counters[i] = {cnt:1, pos:grp.groups.length-1, summary: $.extend(true,[],grp.summary)};
							$.each(grp.counters[i].summary, sumGroups);
							grp.groups[grp.counters[i].pos].summary = grp.counters[i].summary;
						} else {
							if (changed === 1) {
								// This group has changed because an earlier group changed.
								grp.groups.push({idx:i,dataIndex:fieldName,value:v, displayValue: displayValue, startRow: irow, cnt:1, summary : [] } );
								grp.lastvalues[i] = v;
								grp.counters[i] = {cnt:1, pos:grp.groups.length-1, summary: $.extend(true,[],grp.summary)};
								$.each(grp.counters[i].summary, sumGroups);
								grp.groups[grp.counters[i].pos].summary = grp.counters[i].summary;
							} else {
								grp.counters[i].cnt += 1;
								grp.groups[grp.counters[i].pos].cnt = grp.counters[i].cnt;
								$.each(grp.counters[i].summary, sumGroups);
								grp.groups[grp.counters[i].pos].summary = grp.counters[i].summary;
							}
						}
					}
				}
			}
			//gdata.push( rData );
		});
		return this;
	},
	groupingToggle : function(hid){
		this.each(function(){
			var $t = this,
			grp = $t.p.groupingView,
			strpos = hid.split('_'),
			num = parseInt(strpos[strpos.length-2], 10);
			strpos.splice(strpos.length-2,2);
			var uid = strpos.join("_"),
			minus = grp.minusicon,
			plus = grp.plusicon,
			tar = $("#"+$.jgrid.jqID(hid)),
			r = tar.length ? tar[0].nextSibling : null,
			tarspan = $("#"+$.jgrid.jqID(hid)+" span."+"tree-wrap-"+$t.p.direction),
			getGroupingLevelFromClass = function (className) {
				var nums = $.map(className.split(" "), function (item) {
					if (item.substring(0, uid.length + 1) === uid + "_") {
						return parseInt(item.substring(uid.length + 1), 10);
					}
				});
				return nums.length > 0 ? nums[0] : undefined;
			},
			itemGroupingLevel,
			showData,
			collapsed = false,
			footLevel,
			skip = false,
			frz = $t.p.frozenColumns ? $t.p.id+"_frozen" : false,
			tar2 = frz ? $("#"+$.jgrid.jqID(hid), "#"+$.jgrid.jqID(frz) ) : false,
			r2 = (tar2 && tar2.length) ? tar2[0].nextSibling : null;
			if( tarspan.hasClass(minus) ) {
				if(r){
					while(r) {
						itemGroupingLevel = getGroupingLevelFromClass(r.className);
						if (itemGroupingLevel !== undefined && itemGroupingLevel <= num) {
							break;
						}
						footLevel = parseInt($(r).attr("jqfootlevel") ,10);
						skip = isNaN(footLevel) ? false : 
						 (grp.showSummaryOnHide && footLevel >= num);
						if( !skip) {
							$(r).hide();
						}
						r = r.nextSibling;
						if(frz) {
							if(!skip) {
								$(r2).hide();
							}
							r2 = r2.nextSibling;
						}
					}
				}
				tarspan.removeClass(minus).addClass(plus);
				collapsed = true;
			} else {
				if(r){
					showData = undefined;
					while(r) {
						itemGroupingLevel = getGroupingLevelFromClass(r.className);
						footLevel = parseInt($(r).attr("jqfootlevel") ,10);
						if (showData === undefined) {
							showData = itemGroupingLevel === undefined; // if the first row after the opening group is data row then show the data rows
						}
						skip = $(r).hasClass("ui-subgrid") && $(r).hasClass("ui-sg-collapsed");
						if (itemGroupingLevel !== undefined) {
							if (itemGroupingLevel <= num) {
								break;// next item of the same lever are found
							}
							if (itemGroupingLevel === num + 1) {
								if(!skip) {
									$(r).show().find(">td>span."+"tree-wrap-"+$t.p.direction).removeClass(minus).addClass(plus);
									if(frz) {
										$(r2).show().find(">td>span."+"tree-wrap-"+$t.p.direction).removeClass(minus).addClass(plus);
									}
								}
							}
						} else if (showData) {
							if(!skip) {
								$(r).show();
								if(frz) {
									$(r2).show();
								}
							}
						} else if(!isNaN(footLevel) &&  footLevel >=0 &&  footLevel === num) {
								$(r).show();
								if(frz) {
									$(r2).show();
							}
						}
						r = r.nextSibling;
						if(frz) {
							r2 = r2.nextSibling;
						}
					}
				}
				tarspan.removeClass(plus).addClass(minus);
			}
			if(frz && $t.p.height === 'auto'){
				$t.grid.fbDiv.height($($t).height());
				if($t.grid.fsDiv) {
					var hasscroll = $($t.grid.bDiv)[0].scrollWidth > $($t.grid.bDiv)[0].clientWidth,
					//scrollbar height
					scrollh = hasscroll ? $.jgrid.scrollbarHeight() : 0;
					$t.grid.fsDiv.css('top', ($t.grid.fbDiv.position().top + $($t).height()) + scrollh + 'px');
				}
			}
			$($t).triggerHandler("jqGridGroupingClickGroup", [hid , collapsed]);
			if( $.jgrid.isFunction($t.p.onClickGroup)) { $t.p.onClickGroup.call($t, hid , collapsed); }

		});
		return false;
	},
	groupingRender : function (grdata, colspans, page, rn ) {
		return this.each(function(){
			var $t = this,
			grp = $t.p.groupingView,
			str = "", icon = "", hid, clid, pmrtl = grp.groupCollapse ? grp.plusicon : grp.minusicon, gv, cp=[], len =grp.groupField.length,
			//classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')]['grouping'],
			common = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].common;

			pmrtl = pmrtl+" tree-wrap-"+$t.p.direction; 
			$.each($t.p.colModel, function (i,n){
				var ii;
				for(ii=0;ii<len;ii++) {
					if(grp.groupField[ii] === n.name ) {
						cp[ii] = i;
						break;
					}
				}
			});
			var toEnd = 0;
			function findGroupIdx( ind , offset, grp) {
				var ret = false, i;
				if(offset===0) {
					ret = grp[ind];
				} else {
					var id = grp[ind].idx;
					if(id===0) { 
						ret = grp[ind]; 
					}  else {
						for(i=ind;i >= 0; i--) {
							if(grp[i].idx === id-offset) {
								ret = grp[i];
								break;
							}
						}
					}
				}
				return ret;
			}
			function buildSummaryTd(i, ik, grp, foffset, fstr) {
				var fdata = findGroupIdx(i, ik, grp),
				cm = $t.p.colModel,
				vv, grlen = fdata.cnt, str="", k , isput = false, tmpdata, tplfld;
				for(k=foffset; k<colspans;k++) {
					if(cm[k].hidden ) {
						tmpdata = "<td role=\"gridcell\" "+$t.formatCol(k,1,'')+">&#160;</td>";
					} else if(!isput && fstr) {
						tmpdata = fstr;
						isput = true;
					} else {
						tmpdata = "<td role=\"gridcell\" "+$t.formatCol(k,1,'')+">&#160;</td>";
					}
					$.each(fdata.summary,function(){
						if(this.nm === cm[k].name) {
							
							tplfld = (cm[k].summaryTpl) ? cm[k].summaryTpl :  "{0}";
							
							vv = this.v;
							try {
								this.groupCount = fdata.cnt;
								this.groupIndex = fdata.dataIndex;
								this.groupValue = fdata.value;
								//vv = $t.formatter('', vv, k, this);
							} catch (ef) {
								//vv = this.v;
							}
							tmpdata= "<td role=\"gridcell\" "+$t.formatCol(k,1,'')+">"+$.jgrid.template(tplfld, vv, fdata.cnt, fdata.dataIndex, fdata.displayValue, fdata.summary)+ "</td>";
							return false;
						}
					});
					str += tmpdata;
				}
				return str;
			}
			var sumreverse = $.makeArray(grp.groupSummary), mul;
			sumreverse.reverse();
			mul = $t.p.multiselect ? " colspan=\"2\"" : "";
			$.each(grp.groups,function(i,n){
				if(grp._locgr) {
					if( !(n.startRow +n.cnt > (page-1)*rn && n.startRow < page*rn)) {
						return true;
					}
				}
				toEnd++;
				clid = $t.p.id+"ghead_"+n.idx;
				hid = clid+"_"+i;
				icon = "<span style='cursor:pointer;margin-right:8px;margin-left:5px;' class='" + common.icon_base +" "+pmrtl+"' onclick=\"jQuery('#"+$.jgrid.jqID($t.p.id)+"').jqGrid('groupingToggle','"+hid+"');return false;\"></span>";
				try {
					if (Array.isArray(grp.formatDisplayField) && $.jgrid.isFunction(grp.formatDisplayField[n.idx])) {
						gv = grp.formatDisplayField[n.idx].call($t, n.displayValue, n.value, $t.p.colModel[cp[n.idx]], n.idx, grp);
					} else {
						gv = $t.formatter(hid, n.displayValue, cp[n.idx], n.value );
					}
				} catch (egv) {
					gv = n.displayValue;
				}
				var grpTextStr = ''; 
				// format summary values if formatter
				for( var kk =0;kk< n.summary.length; kk++) {  
					var nv = n.summary[kk];
					var ci = $.jgrid.getElemByAttrVal($t.p.colModel, 'name', nv.nm, true);
					if(ci>=0) {
						if(typeof nv.st === 'string' && nv.st.toLowerCase() === 'avg') {
							if(nv.sd && nv.vd) { 
								nv.v = (nv.v/nv.vd);
							} else if(nv.v && n.cnt > 0) {
								nv.v = (nv.v/n.cnt);
							}
						}
						nv.uv = nv.v;
						try {
							nv.v = $t.formatter('',nv.v, ci, this);
						} catch (e) {}
					}
				}
				
				if($.jgrid.isFunction(grp.groupText[n.idx])) { 
					grpTextStr = grp.groupText[n.idx].call($t, gv, n.cnt, n.summary);
				} else {
					grpTextStr = $.jgrid.template.call($t, grp.groupText[n.idx], gv, n.cnt, n.summary);
				}
				if( !(typeof grpTextStr ==='string' || typeof grpTextStr ==='number' ) ) {
					grpTextStr = gv;
				}
				if(grp.groupSummaryPos[n.idx] === 'header')  {
					str += "<tr id=\""+hid+"\"" +(grp.groupCollapse && n.idx>0 ? " style=\"display:none;\" " : " ") + "role=\"row\" class= \"" + common.content + " jqgroup ui-row-"+$t.p.direction+" "+clid+"\">";
					str += buildSummaryTd(i, 0, grp.groups, (mul==="" ? 0 : 1), "<td role=\"gridcell\" style=\"padding-left:"+(n.idx * 12) + "px;"+"\"" + mul +">" + icon+grpTextStr + "</td>" );
					str += "</tr>";
				} else {
					str += "<tr id=\""+hid+"\"" +(grp.groupCollapse && n.idx>0 ? " style=\"display:none;\" " : " ") + "role=\"row\" class= \"" + common.content + " jqgroup ui-row-"+$t.p.direction+" "+clid+"\"><td style=\"padding-left:"+(n.idx * 12) + "px;"+"\" colspan=\""+(grp.groupColumnShow[n.idx] === false ? colspans-1 : colspans)+"\">" + icon + grpTextStr + "</td></tr>";
				}
				var leaf = len-1 === n.idx; 
				if( leaf ) {
					var gg = grp.groups[i+1], kk, ik, offset = 0, sgr = n.startRow,
					end = gg !== undefined ?  gg.startRow : grp.groups[i].startRow + grp.groups[i].cnt;
					if(grp._locgr) {
						offset = (page-1)*rn;
						if(offset > n.startRow) {
							sgr = offset;
						}
					}
					for(kk=sgr;kk<end;kk++) {
						if(!grdata[kk - offset]) { break; }
						str += grdata[kk - offset].join('');
					}
					if(grp.groupSummaryPos[n.idx] !== 'header') {
						var jj;
						if (gg !== undefined) {
							for (jj = 0; jj < grp.groupField.length; jj++) {
								if (gg.dataIndex === grp.groupField[jj]) {
									break;
								}
							}
							toEnd = grp.groupField.length - jj;
						}
						for (ik = 0; ik < toEnd; ik++) {
							if(!sumreverse[ik]) { continue; }
							var hhdr = "";
							if(grp.groupCollapse && !grp.showSummaryOnHide) {
								hhdr = " style=\"display:none;\"";
							}
							str += "<tr"+hhdr+" jqfootlevel=\""+(n.idx-ik)+"\" role=\"row\" class=\"" + common.content + " jqfoot ui-row-"+$t.p.direction+"\">";
							str += buildSummaryTd(i, ik, grp.groups, 0, false);
							str += "</tr>";
						}
						toEnd = jj;
					}
				}
			});
			$("#"+$.jgrid.jqID($t.p.id)+" tbody").first().append(str);
			// free up memory
			str = null;
		});
	},
	groupingGroupBy : function (name, options ) {
		return this.each(function(){
			var $t = this;
			if(typeof name === "string") {
				name = [name];
			}
			var grp = $t.p.groupingView;
			$t.p.grouping = true;
			grp._locgr = false;
			//Set default, in case visibilityOnNextGrouping is undefined 
			if (grp.visibiltyOnNextGrouping === undefined) {
				grp.visibiltyOnNextGrouping = [];
			}
			var i;
			// show previous hidden groups if they are hidden and weren't removed yet
			for(i=0;i<grp.groupField.length;i++) {
				if(!grp.groupColumnShow[i] && grp.visibiltyOnNextGrouping[i]) {
					$($t).jqGrid('showCol',grp.groupField[i]);
				}
			}
			// set visibility status of current group columns on next grouping
			for(i=0;i<name.length;i++) {
				grp.visibiltyOnNextGrouping[i] = $("#"+$.jgrid.jqID($t.p.id)+"_"+$.jgrid.jqID(name[i])).is(":visible");
			}
			$t.p.groupingView = $.extend($t.p.groupingView, options || {});
			grp.groupField = name;
			$($t).trigger("reloadGrid");
		});
	},
	groupingRemove : function (current, grpViewInit) {
		return this.each(function(){
			var $t = this;
			if(current === undefined) {
				current = true;
			}
			if(grpViewInit === undefined) {
				grpViewInit = false;
			}
			$t.p.grouping = false;
			if(current===true) {
				var grp = $t.p.groupingView, i;
				// show previous hidden groups if they are hidden and weren't removed yet
				for(i=0;i<grp.groupField.length;i++) {
				if (!grp.groupColumnShow[i] && grp.visibiltyOnNextGrouping[i]) {
						$($t).jqGrid('showCol', grp.groupField);
					}
				}
				$("#"+$.jgrid.jqID($t.p.id)+" tbody").first().find("tr.jqgroup, tr.jqfoot").remove();
				$("#"+$.jgrid.jqID($t.p.id)+" tbody").first().find("tr.jqgrow:hidden").show();
			} else {
				$($t).trigger("reloadGrid");
			}
			if(grpViewInit) {
				$($t).jqGrid('groupingInit');
			}
		});
	},
	groupingCalculations : {
		handler: function(fn, v, field, round, roundType, rc) {
			var funcs = {
				sum: function() {
					return $.jgrid.floatNum(v) + $.jgrid.floatNum(rc[field]);
				},

				min: function() {
					if(v==="") {
						return $.jgrid.floatNum(rc[field]);
					}
					return Math.min($.jgrid.floatNum(v),$.jgrid.floatNum(rc[field]));
				},

				max: function() {
					if(v==="") {
						return $.jgrid.floatNum(rc[field]);
					}
					return Math.max($.jgrid.floatNum(v),$.jgrid.floatNum(rc[field]));
				},

				count: function() {
					if(v==="") {v=0;}
					if(rc.hasOwnProperty(field)) {
						return v+1;
					}
					return 0;
				},

				avg: function() {
					// the same as sum, but at end we divide it
					// so use sum instead of duplicating the code (?)
					return funcs.sum();
				}
			};

			if(!funcs[fn]) {
				throw "jqGrid Grouping No such method: " + fn;
			}
			var res = funcs[fn]();

			if (round != null) {
				if (roundType === 'fixed') {
					res = res.toFixed(round);
				} else {
					var mul = Math.pow(10, round);
					res = Math.round(res * mul) / mul;
				}
			}

			return res;
		}	
	},
	groupingResetCalcs : function () {
		return this.each(function(){
			this.p.groupingView._locgr = false;
		});
	},
	setColSpanHeader : function( o ) {
		return this.each(function(){
			var ts = this,
			i, cmi, skip = 0, th, $th, thStyle, k,
			iCol,
			cghi,
			//startColumnName,
			numberOfColumns,
			titleText,
                        toolTip,
			cVisibleColumns,
			className,
			colModel = ts.p.colModel,
			cml = colModel.length,
			ths = ts.grid.headers,
			$htable = $("table.ui-jqgrid-htable", ts.grid.hDiv),
			$thead = $htable.children("thead"),
			$firstHeaderRow = $htable.find(".jqg-first-row-header"),
			$focusElem = false,
			frozen = false,
			//classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')]['grouping'],
			numberOfHeadRows = $thead.children("tr").length;
			//base = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].base;
			if(Array.isArray( o )) {
				ts.p.colSpanHeader =  o;
			}
			if($firstHeaderRow[0] === undefined) {
				$firstHeaderRow = $('<tr>', {role: "row", "aria-hidden": "true"}).addClass("jqg-first-row-header").css("height", "auto");
			} else {
				$firstHeaderRow.empty();
			}
			if(ts.p.frozenColumns) {
				$(ts).jqGrid("destroyFrozenColumns");
				frozen = true;
			}
			for (i = 0; i < cml; i++) {
				th = ths[i].el;
				$th = $(th);
				cmi = colModel[i];
				// build the next cell for the first header row
				thStyle = { height: '0px', width: ths[i].width + 'px', display: (cmi.hidden ? 'none' : '')};
				$("<th>", {role: 'gridcell'}).css(thStyle).addClass("ui-first-th-"+ts.p.direction + " " + (cmi.labelClasses || "") ).appendTo($firstHeaderRow);
			}
			$thead.prepend($firstHeaderRow);

			//$firstRow = $thead.find("tr.jqg-first-row-header");
			$(ts).on('jqGridResizeStop.setGroupHeaders', function (e, nw, idx) {
				$firstHeaderRow.find('th').eq(idx)[0].style.width = nw + "px";
			});
			for (i = 0; i < cml; i++) {
				th = ths[i].el;
				$th = $(th);
				cmi = colModel[i];
				iCol = $.jgrid.inColumnHeader(cmi.name, ts.p.colSpanHeader);
				if (iCol >= 0) {
					cghi = ts.p.colSpanHeader[iCol];
					numberOfColumns = cghi.numberOfColumns;
					titleText = cghi.titleText || "";
					className = cghi.className || "";
					toolTip = cghi.toolTip || "";
					// caclulate the number of visible columns from the next numberOfColumns columns
					for (cVisibleColumns = 0, iCol = 0; iCol < numberOfColumns && (i + iCol < cml); iCol++) {
						if (!colModel[i + iCol].hidden) {
							cVisibleColumns++;
						}
					}

					if(cVisibleColumns > 0) {
						$th.attr("colspan", String(cVisibleColumns));
						if(numberOfHeadRows > 1) {
							for(k=1;k<numberOfHeadRows; k++) {
								$("tr",$thead).eq(k+1).find("th").eq(i).attr("colspan", String(cVisibleColumns));
							}
						}
					}
					if (titleText) {
						var fl = $th.find("div.ui-th-div")[0];
						cghi.savedLabel = fl.innerHTML;
						fl.innerHTML = titleText;
						if(typeof toolTip === "string" && toolTip !== "") {
							$th.attr("title", toolTip);
						} else if (ts.p.headertitles) {
							$th.attr("title", titleText);
						}
					}
					$th.addClass(className);
					for( skip=0;skip < numberOfColumns-1;skip++) {
						$(ths[skip+i+1].el).hide();
						ts.p.colModel[skip+i+1].hidedlg = true;
						ts.p.colModel[skip+i+1]._colspancell = true;
						if(numberOfHeadRows > 1) {
							for(k=1;k<numberOfHeadRows; k++) {
								$("tr",$thead).eq(k+1).find("th").eq(i+skip+1).hide();
							}
						}
					}
				}
			}
			
			if( $focusElem ) {
				try {
					$($focusElem).focus();
				} catch(fe) {}
			}
			if(frozen) {
				$(ts).jqGrid("setFrozenColumns");
			}

		});
	},
	destroyColSpanHeader : function(emptyColSpan) {
		if(emptyColSpan === undefined) {
			emptyColSpan = true;
		}
		return this.each(function(){
			var ts = this,
			$htable = $("table.ui-jqgrid-htable", ts.grid.hDiv),
			clitem, fl, k, j, itm, cellInd,
			$thead = $htable.children("thead");
			$("tr.jqg-first-row-header", $thead).remove();
			if(ts.p.colSpanHeader.length) {
				for(j = 0;j<ts.p.colSpanHeader.length;j++) {
					clitem = ts.p.colSpanHeader[j];
					cellInd = $.jgrid.getElemByAttrVal( ts.p.colModel, 'name', clitem.startColumnName, true);
					if(cellInd < 0 ) {
						continue;
					}
					for(k = cellInd+1; k < cellInd + clitem.numberOfColumns; k++) {
						ts.p.colModel[k].hidedlg=false;
						ts.p.colModel[k]._colspancell=false;
					}
					$(">tr", $thead).each(function( i, n) {
						itm = $("th",n).eq(cellInd);
						if(!itm.className) {
							itm.className = "";
						}
						$(itm).attr("colspan","").removeClass( itm.className );
						if($(n).hasClass('ui-jqgrid-labels')) {
							fl = itm.find("div.ui-th-div")[0];
							fl.innerHTML = clitem.savedLabel;
						}
						for(k=1;k<clitem.numberOfColumns;k++) {
							$("th", n).eq(cellInd+k).show();
						}
					});
				}
			}
			if(emptyColSpan) {
				ts.p.colSpanHeader =[];
			}
		});
	},
	setGroupHeaders : function ( o ) {
		o = $.extend({
			useColSpanStyle :  false,
			groupHeaders: []
		},o  || {});
		return this.each(function(){
			var ts = this,
			i, cmi, skip = 0, $tr, $colHeader, th, $th, thStyle,
			iCol,
			cghi,
			//startColumnName,
			numberOfColumns,
			titleText,
			toolTip,
			cVisibleColumns,
			className,
			colModel = ts.p.colModel,
			cml = colModel.length,
			ths = ts.grid.headers,
			$htable = $("table.ui-jqgrid-htable", ts.grid.hDiv),
			$trLabels = $htable.children("thead").children("tr.ui-jqgrid-labels").last().addClass("jqg-second-row-header"),
			$thead = $htable.children("thead"),
			$theadInTable,
			$firstHeaderRow = $htable.find(".jqg-first-row-header"),
			$firstRow,
			$focusElem = false,
			frozen = false,
			//classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')]['grouping'],
			base = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].base;
			if(!ts.p.groupHeader) {
				ts.p.groupHeader = [];
			}
			ts.p.groupHeader.push(o);
			ts.p.groupHeaderOn = true;
			if($firstHeaderRow[0] === undefined) {
				$firstHeaderRow = $('<tr>', {role: "row", "aria-hidden": "true"}).addClass("jqg-first-row-header").css("height", "auto");
			} else {
				$firstHeaderRow.empty();
			}
			if(ts.p.frozenColumns) {
				$(ts).jqGrid("destroyFrozenColumns");
				frozen = true;
			}
			
			if( $(document.activeElement).is('input') || $(document.activeElement).is('textarea') ) {
				$focusElem = document.activeElement;
			}
			$(ts).prepend($thead);

			$tr = $('<tr>', {role: "row"}).addClass("ui-jqgrid-labels jqg-third-row-header");
			for (i = 0; i < cml; i++) {
				th = ths[i].el;
				$th = $(th);
				cmi = colModel[i];
				// build the next cell for the first header row
				thStyle = { height: '0px', width: ths[i].width + 'px', display: (cmi.hidden ? 'none' : '')};
				$("<th>", {role: 'gridcell'}).css(thStyle).addClass("ui-first-th-"+ts.p.direction + " " + (cmi.labelClasses || "") ).appendTo($firstHeaderRow);

				th.style.width = ""; // remove unneeded style
				iCol = $.jgrid.inColumnHeader(cmi.name, o.groupHeaders);
				if (iCol >= 0) {
					cghi = o.groupHeaders[iCol];
					numberOfColumns = cghi.numberOfColumns;
					titleText = cghi.titleText;
					toolTip = cghi.toolTip || "";
					className = cghi.className || "";
					// caclulate the number of visible columns from the next numberOfColumns columns
					for (cVisibleColumns = 0, iCol = 0; iCol < numberOfColumns && (i + iCol < cml); iCol++) {
						if (!colModel[i + iCol].hidden) {
							cVisibleColumns++;
						}
					}

					// The next numberOfColumns headers will be moved in the next row
					// in the current row will be placed the new column header with the titleText.
					// The text will be over the cVisibleColumns columns
					$colHeader = $('<th>').attr({role: "columnheader"})
						.addClass(base.headerBox+ " ui-th-column-header ui-th-"+ts.p.direction+" "+className + " "+(cmi.labelClasses || ""))
						//.css({'height':'22px', 'border-top': '0 none'})
						.html(titleText);
					if(cVisibleColumns > 0) {
						$colHeader.attr("colspan", String(cVisibleColumns));
					}
					if(typeof toolTip === "string" && toolTip !== "") {
						$colHeader.attr("title", toolTip);
					} else if (ts.p.headertitles) {
						$colHeader.attr("title", $colHeader.text());
					}
					// hide if not a visible cols
					if( cVisibleColumns === 0) {
						$colHeader.hide();
					}

					$th.before($colHeader); // insert new column header before the current
					$tr.append(th);         // move the current header in the next row

					// set the coumter of headers which will be moved in the next row
					skip = numberOfColumns - 1;
				} else {
					if (skip === 0) {
						if (o.useColSpanStyle) {
							// expand the header height to n rows
							var rowspan = $th.attr("rowspan") ? parseInt($th.attr("rowspan"),10) + 1 : 2;
							$th.attr("rowspan", rowspan);
						} else {
							$('<th>', {role: "columnheader"})
								.addClass(base.headerBox+" ui-th-column-header ui-th-"+ts.p.direction)
								.css({"display": cmi.hidden ? 'none' : ''})
								.insertBefore($th);
							$tr.append(th);
						}
					} else {
						// move the header to the next row
						//$th.css({"padding-top": "2px", height: "19px"});
						$tr.append(th);
						skip--;
					}
				}
			}
			$theadInTable = $(ts).children("thead");
			$theadInTable.prepend($firstHeaderRow);
			$tr.insertAfter($trLabels);
			$htable.append($theadInTable);

			if (o.useColSpanStyle) {
				// Increase the height of resizing span of visible headers
				$htable.find("span.ui-jqgrid-resize").each(function () {
					var $parent = $(this).parent();
					if ($parent.is(":visible")) {
						this.style.cssText = 'height: ' + $parent.height() + 'px !important; cursor: col-resize;';
					}
				});

				// Set position of the sortable div (the main lable)
				// with the column header text to the middle of the cell.
				// One should not do this for hidden headers.
				$htable.find("div.ui-jqgrid-sortable").each(function () {
					var $ts = $(this), $parent = $ts.parent();
					if ($parent.is(":visible") && $parent.is(":has(span.ui-jqgrid-resize)")) {
						// minus 4px from the margins of the resize markers
						$ts.css('top', ($parent.height() - $ts.outerHeight()) / 2  - 4 +  'px');
					}
				});
			}

			$firstRow = $theadInTable.find("tr.jqg-first-row-header");
			$(ts).on('jqGridResizeStop.setGroupHeaders', function (e, nw, idx) {
				$firstRow.find('th').eq(idx)[0].style.width = nw + "px";
			});
			if( $focusElem ) {
				try {
					$($focusElem).focus();
				} catch(fe) {}
			}
			var testws = $("tr.jqg-second-row-header th").eq( 0 );
			if( $.jgrid.type(testws)==='object' && testws.length && $.jgrid.trim(testws[0].outerText) === "" ) {
				$("tr.jqg-second-row-header th").eq( 0 ).prepend('&nbsp;');
			}
			if(frozen) {
				$(ts).jqGrid("setFrozenColumns");
			}			
			$(ts).triggerHandler("afterSetGroupHandler", [o]);
			
		});				
	},
	destroyGroupHeader : function(nullHeader) {
		if(nullHeader === undefined) {
			nullHeader = true;
		}
		return this.each(function()
		{
			var $t = this, $tr, i, l, headers, $th, $resizing, grid = $t.grid,
			thead = $("table.ui-jqgrid-htable thead", grid.hDiv), cm = $t.p.colModel, hc, frozen = false;
			if(!grid) { return; }
			if($t.p.frozenColumns) {
				$($t).jqGrid("destroyFrozenColumns");
				frozen = true;
			}

			$(this).off('.setGroupHeaders');
			$t.p.groupHeaderOn = false;
			$tr = $("<tr>", {role: "row"}).addClass("ui-jqgrid-labels");
			headers = grid.headers;
			for (i = 0, l = headers.length; i < l; i++) {
				hc = cm[i].hidden ? "none" : "";
				$th = $(headers[i].el)
					.width( $('tr.jqg-first-row-header th', thead).eq( i ).width() )
					.css('display',hc);
				try {
					$th.removeAttr("rowSpan");
				} catch (rs) {
					//IE 6/7
					$th.attr("rowSpan",1);
				}
				$tr.append($th);
				$resizing = $th.children("span.ui-jqgrid-resize");
				if ($resizing.length>0) {// resizable column
					$resizing[0].style.height = "";
				}
				$th.children("div")[0].style.top = "";
			}
			$(thead).children('tr.ui-jqgrid-labels').remove();
			$(thead).children('tr.jqg-first-row-header').remove();
			$(thead).prepend($tr);

			if(nullHeader === true) {
				$($t).jqGrid('setGridParam',{ 'groupHeader': null});
			}
			if(frozen) {
				$($t).jqGrid("setFrozenColumns");
			}
			$($t).off("afterSetGroupHandler");
		});
	},
	isGroupHeaderOn : function () {
		var $t = this[0];
		return $t.p.groupHeaderOn === true && $t.p.groupHeader && (Array.isArray($t.p.groupHeader) || $.jgrid.isFunction($t.p.groupHeader) );
	}, 
	refreshGroupHeaders : function() {
		return this.each(function(){
			var ts = this,
			gHead,
			gh = $(ts).jqGrid("isGroupHeaderOn");
			if(gh) { 
				$(ts).jqGrid('destroyGroupHeader', false);
				gHead = $.extend([],ts.p.groupHeader);
				ts.p.groupHeader = null;
			}
			if( gh && gHead)  {
				for(var k =0; k < gHead.length; k++) {
					$(ts).jqGrid('setGroupHeaders', gHead[k]);
				}
			}
		});
	}
});

//module begin
$.jgrid = $.jgrid || {};
$.extend($.jgrid,{
	saveState : function ( jqGridId, o ) {
		o = $.extend({
			useStorage : true,
			storageType : "localStorage", // localStorage or sessionStorage
			beforeSetItem : null,
			compression: false,
			compressionModule :  'LZString', // object by example gzip, LZString
			compressionMethod : 'compressToUTF16', // string by example zip, compressToUTF16
			debug : false,
			saveData : true
		}, o || {});
		if(!jqGridId) { return; }
		var gridstate = "", data = "", ret, $t = $("#"+jqGridId)[0], tmp;
		// to use navigator set storeNavOptions to true in grid options
		if(!$t.grid) { return;}
		tmp = $($t).data('inlineNav');
		if(tmp && $t.p.inlineNav) {
			$($t).jqGrid('setGridParam',{_iN: tmp});
		}
		tmp = $($t).data('filterToolbar');
		if(tmp && $t.p.filterToolbar) {
			$($t).jqGrid('setGridParam',{_fT: tmp});
		}
		gridstate  =  $($t).jqGrid('jqGridExport', { exptype : "jsonstring", ident:"", root:"", data : o.saveData });
		data = '';
		if( o.saveData ) {
			data = $($t.grid.bDiv).find(".ui-jqgrid-btable tbody").first().html();
			var firstrow  = data.indexOf("</tr>");
			data = data.slice(firstrow + 5);
		}
		if($.jgrid.isFunction(o.beforeSetItem)) {
			ret = o.beforeSetItem.call($t, gridstate);
			if(ret != null) {
				gridstate = ret;
			}
		}
		if(o.debug) {
			$("#gbox_tree").prepend('<a id="link_save" target="_blank" download="jqGrid_dump.txt">Click to save Dump Data</a>');
			var temp = [], file, properties = {}, url;
			temp.push("Grid Options\n");
			temp.push(gridstate);
			temp.push("\n");
			temp.push("GridData\n");
			temp.push(data);
			properties.type = 'plain/text;charset=utf-8'; // Specify the file's mime-type.
			try {
				file = new File(temp, "jqGrid_dump.txt", properties);
			} catch (e) {
				file = new Blob(temp, properties);
			}
			url = URL.createObjectURL(file);
			$("#link_save").attr("href",url).on('click',function(){
				$(this).remove();
			});
		}
		if(o.compression) {
			if(o.compressionModule) {
				try {
					ret = window[o.compressionModule][o.compressionMethod](gridstate);
					if(ret != null) {
						gridstate = ret;
						data = window[o.compressionModule][o.compressionMethod](data);
					}
				} catch (e) {
					// can not execute a compression.
				}
			}
		}
		if(o.useStorage && $.jgrid.isLocalStorage()) {
			try {
				window[o.storageType].setItem("jqGrid"+$t.p.id, gridstate);
				window[o.storageType].setItem("jqGrid"+$t.p.id+"_data", data);
			} catch (e) {
				if(e.code === 22) { // chrome is 21
					// just for now. we should make some additionla changes and eventually clear some local items
					alert("Local storage limit is over!");
				}
			}
		}
		return gridstate;
	},
	loadState : function (jqGridId, gridstring, o) {
		o = $.extend({
			useStorage : true,
			storageType : "localStorage",
			clearAfterLoad: false,  // clears the jqGrid localStorage items aftre load
			beforeSetGrid : null,
			afterSetGrid : null,
			decompression: false,
			decompressionModule :  'LZString', // object by example gzip, LZString
			decompressionMethod : 'decompressFromUTF16', // string by example unzip, decompressFromUTF16
			restoreData : true
		}, o || {});
		if(!jqGridId) { return; }
		var ret, tmp, $t = $("#"+jqGridId)[0], data, iN, fT;
		if(o.useStorage) {
			try {
				gridstring = window[o.storageType].getItem("jqGrid"+$t.id);
				data = window[o.storageType].getItem("jqGrid"+$t.id+"_data");
			} catch (e) {
				// can not get data
			}
		}
		if(!gridstring) { return; }
		if(o.decompression) {
			if(o.decompressionModule) {
			try {
					ret = window[o.decompressionModule][o.decompressionMethod]( gridstring );
					if(ret != null ) {
						gridstring = ret;
						data = window[o.decompressionModule][o.decompressionMethod]( data );
					}
				} catch (e) {
					// decompression can not be done
				}
			}
		}
		ret = $.jgrid.parseFunc( gridstring );
		if( ret && $.jgrid.type(ret) === 'object') {
			if($t.grid) {
				$.jgrid.gridUnload( jqGridId );
			}
			if($.jgrid.isFunction(o.beforeSetGrid)) {
				tmp = o.beforeSetGrid( ret );
				if(tmp && $.jgrid.type(tmp) === 'object') {
					ret = tmp;
				}
			}
			// some preparings
			var retfunc = function( param ) { var p; p = param; return p;},
			prm = {
				"reccount" : ret.reccount,
				"records" : ret.records,
				"lastpage" : ret.lastpage,
				"shrinkToFit" : retfunc( ret.shrinkToFit),
				"data": retfunc(ret.data),
				"datatype" : retfunc(ret.datatype),
				"grouping" : retfunc(ret.grouping)
			};
			ret.shrinkToFit = false;
			ret.data = [];
			ret.datatype = 'local';
			ret.grouping = false;
			//ret.navGrid = false;

			if(ret.inlineNav) {
				iN = retfunc( ret._iN );
				ret._iN = null; delete ret._iN;
			}
			if(ret.filterToolbar) {
				fT = retfunc( ret._fT );
				ret._fT = null; delete ret._fT;
			}
			var grid = $("#"+jqGridId).jqGrid( ret );
			grid.jqGrid('delRowData','norecs');
			if( o.restoreData && $.jgrid.trim( data ) !== '') {
				grid.append( data );
			}
			grid.jqGrid( 'setGridParam', prm);
			if(ret.storeNavOptions && ret.navGrid) {
				// set to false so that nav grid can be run
				grid[0].p.navGrid = false;
				grid.jqGrid('navGrid', ret.pager, ret.navOptions, ret.editOptions, ret.addOptions, ret.delOptions, ret.searchOptions, ret.viewOptions);
				if(ret.navButtons && ret.navButtons.length) {
					for(var b = 0; b < ret.navButtons.length; b++) {
						if( 'sepclass'  in ret.navButtons[b][1]) {
							grid.jqGrid('navSeparatorAdd', ret.navButtons[b][0], ret.navButtons[b][1]);
						} else {
							grid.jqGrid('navButtonAdd', ret.navButtons[b][0], ret.navButtons[b][1]);
						}
					}
				}
			}
			// refresh index
			grid[0].refreshIndex();
			// subgrid
			if(ret.subGrid) {
				var ms = ret.multiselect === 1 ? 1 : 0,
					rn = ret.rownumbers === true ? 1 :0;
				grid.jqGrid('addSubGrid', ms + rn);
				// reopen the sugrid in order to maintain the subgrid state.
				// currently only one level is supported
				// todo : supposrt for unlimited  levels
				$.each(grid[0].rows, function(i, srow){
					if( $(srow).hasClass('ui-sg-expanded') ) {
						// reopen the subgrid
						$(grid[0].rows[i-1]).find('td.sgexpanded').click().click();
					}
				});
			}
			// treegrid
			if(ret.treeGrid) {
				var i = 1, len = grid[0].rows.length,
				expCol = ret.expColInd,
				isLeaf = ret.treeReader.leaf_field,
				expanded = ret.treeReader.expanded_field;
				// optimization of code needed here
				while(i<len) {
					$(grid[0].rows[i].cells[expCol])
						.find("div.treeclick")
						.on("click",function(e){
							var target = e.target || e.srcElement,
							ind2 =$.jgrid.stripPref(ret.idPrefix,$(target,grid[0].rows).closest("tr.jqgrow")[0].id),
							pos = grid[0].p._index[ind2];
							if(!grid[0].p.data[pos][isLeaf]){
								if(grid[0].p.data[pos][expanded]){
									grid.jqGrid("collapseRow",grid[0].p.data[pos]);
									grid.jqGrid("collapseNode",grid[0].p.data[pos]);
								} else {
									grid.jqGrid("expandRow",grid[0].p.data[pos]);
									grid.jqGrid("expandNode",grid[0].p.data[pos]);
								}
							}
							return false;
						});
					if(ret.ExpandColClick === true) {
						$(grid[0].rows[i].cells[expCol])
							.find("span.cell-wrapper")
							.css("cursor","pointer")
							.on("click",function(e) {
								var target = e.target || e.srcElement,
								ind2 =$.jgrid.stripPref(ret.idPrefix,$(target,grid[0].rows).closest("tr.jqgrow")[0].id),
								pos = grid[0].p._index[ind2];
								if(!grid[0].p.data[pos][isLeaf]){
									if(grid[0].p.data[pos][expanded]){
										grid.jqGrid("collapseRow", grid[0].p.data[pos]);
										grid.jqGrid("collapseNode", grid[0].p.data[pos]);
									} else {
										grid.jqGrid("expandRow", grid[0].p.data[pos]);
										grid.jqGrid("expandNode", grid[0].p.data[pos]);
									}
								}
								grid.jqGrid("setSelection",ind2);
								return false;
						});
					}
					i++;
				}
			}
			// multiselect
			if(ret.multiselect) {
				$.each(ret.selarrrow, function(){
					$("#jqg_" + jqGridId + "_"+this)[ret.useProp ? 'prop': 'attr']("checked", "checked");
				});
			}
			// grouping
			if(grid.jqGrid('isGroupHeaderOn')) {
				grid.jqGrid('refreshGroupHeaders');
			}
			// searchcol
			if(ret.searchCols) {
				for(var key in ret._results) {
					if(ret._results.hasOwnProperty(key)) {
						$("#jqs_" + jqGridId + "_"+key).val(ret._results[key].v);
					}
				}
			}
			// pivotgrid
			// 
			// inline navigator
			if(ret.inlineNav && iN) {
				grid.jqGrid('setGridParam', { inlineNav:false });
				grid.jqGrid('inlineNav', ret.pager, iN);
			}
			// toolbar filter
			if(ret.filterToolbar && fT) {
				grid.jqGrid('setGridParam', { filterToolbar:false });
				fT.restoreFromFilters = true;
				grid.jqGrid('filterToolbar', fT);
			}
			// finally frozenColums
			if( ret.frozenColumns ) {
				grid.jqGrid('setFrozenColumns');
			}
			grid[0].updatepager(true, true);

			if($.jgrid.isFunction(o.afterSetGrid)) {
				o.afterSetGrid( grid );
			}
			if(o.clearAfterLoad) {
				window[o.storageType].removeItem("jqGrid"+$t.id);
				window[o.storageType].removeItem("jqGrid"+$t.id + "_data");
			}
		} else {
			alert("can not convert to object");
		}
	},
	isGridInStorage : function ( jqGridId, options ) {
		var o = {
			storageType: "localStorage"
		};
		o =  $.extend(o , options || {});
		var ret, gridstring, data;
		try {
			gridstring = window[o.storageType].getItem("jqGrid"+jqGridId);
			data = window[o.storageType].getItem("jqGrid" + jqGridId + "_data");
			ret = gridstring != null && data != null && typeof gridstring === "string" && typeof data === "string" ;
		} catch (e) {
			ret = false;
		}
		return ret;
	},
	setRegional : function( jqGridId , options) {
		var o = {
			storageType: "sessionStorage"
		};
		o =  $.extend(o , options || {});

		if( !o.regional ) {
			return;
		}

		$.jgrid.saveState( jqGridId, o );

		o.beforeSetGrid = function(params) {
			params.regional = o.regional;
			params.force_regional = true;
			return params;
		};

		$.jgrid.loadState( jqGridId, null, o);
		// check for formatter actions
		var grid = $("#"+jqGridId)[0],
		model = $(grid).jqGrid('getGridParam','colModel'), i=-1, nav = $.jgrid.getRegional(grid, 'nav');
		$.each(model,function(k){
			if(this.formatter && this.formatter === 'actions') {
				i = k;
				return false;
			}
		});
		if(i !== -1 && nav) {
			$("#"+jqGridId + " tbody tr").each(function(){
				var td = this.cells[i];
				$(td).find(".ui-inline-edit").attr("title",nav.edittitle);
				$(td).find(".ui-inline-del").attr("title",nav.deltitle);
				$(td).find(".ui-inline-save").attr("title",nav.savetitle);
				$(td).find(".ui-inline-cancel").attr("title",nav.canceltitle);
			});
		}
		try {
			window[o.storageType].removeItem("jqGrid"+grid.id);
			window[o.storageType].removeItem("jqGrid"+grid.id+"_data");
		} catch (e) {}
	},
	jqGridImport : function(jqGridId, o) {
		o = $.extend({
			imptype : "xml", // xml, json, xmlstring, jsonstring
			impstring: "",
			impurl: "",
			mtype: "GET",
			impData : {},
			xmlGrid :{
				config : "root>grid",
				data: "root>rows"
			},
			jsonGrid :{
				config : "grid",
				data: "data"
			},
			ajaxOptions :{}
		}, o || {});
		var $t = (jqGridId.indexOf("#") === 0 ? "": "#") + $.jgrid.jqID(jqGridId);
		var xmlConvert = function (xml,o) {
			var cnfg = $(o.xmlGrid.config,xml)[0];
			var xmldata = $(o.xmlGrid.data,xml)[0], jstr, jstr1, key;
			if($.grid.xmlToJSON ) {
				jstr = $.jgrid.xmlToJSON( cnfg );
				//jstr = $.jgrid.parse(jstr);
				for(key in jstr) {
					if(jstr.hasOwnProperty(key)) {
						jstr1=jstr[key];
					}
				}
				if(xmldata) {
				// save the datatype
					var svdatatype = jstr.grid.datatype;
					jstr.grid.datatype = 'xmlstring';
					jstr.grid.datastr = xml;
					$($t).jqGrid( jstr1 ).jqGrid("setGridParam",{datatype:svdatatype});
				} else {
					setTimeout(function() { $($t).jqGrid( jstr1 ); },0);
				}
			} else {
				alert("xml2json or parse are not present");
			}
		};
		var jsonConvert = function (jsonstr,o){
			if (jsonstr && typeof jsonstr === 'string') {
				var json = $.jgrid.parseFunc(jsonstr);
				var gprm = json[o.jsonGrid.config];
				var jdata = json[o.jsonGrid.data];
				if(jdata) {
					var svdatatype = gprm.datatype;
					gprm.datatype = 'jsonstring';
					gprm.datastr = jdata;
					$($t).jqGrid( gprm ).jqGrid("setGridParam",{datatype:svdatatype});
				} else {
					$($t).jqGrid( gprm );
				}
			}
		};
		switch (o.imptype){
			case 'xml':
				$.ajax($.extend({
					url:o.impurl,
					type:o.mtype,
					data: o.impData,
					dataType:"xml",
					complete: function(xml,stat) {
						if(stat === 'success') {
							xmlConvert(xml.responseXML,o);
							$($t).triggerHandler("jqGridImportComplete", [xml, o]);
							if($.jgrid.isFunction(o.importComplete)) {
								o.importComplete(xml);
							}
						}
						xml=null;
					}
				}, o.ajaxOptions));
				break;
			case 'xmlstring' :
				// we need to make just the conversion and use the same code as xml
				if(o.impstring && typeof o.impstring === 'string') {
					var xmld = $.parseXML(o.impstring);
					if(xmld) {
						xmlConvert(xmld,o);
						$($t).triggerHandler("jqGridImportComplete", [xmld, o]);
						if($.jgrid.isFunction(o.importComplete)) {
							o.importComplete(xmld);
						}
					}
				}
				break;
			case 'json':
				$.ajax($.extend({
					url:o.impurl,
					type:o.mtype,
					data: o.impData,
					dataType:"json",
					complete: function(json) {
						try {
							jsonConvert(json.responseText,o );
							$($t).triggerHandler("jqGridImportComplete", [json, o]);
							if($.jgrid.isFunction(o.importComplete)) {
								o.importComplete(json);
							}
						} catch (ee){}
						json=null;
					}
				}, o.ajaxOptions ));
				break;
			case 'jsonstring' :
				if(o.impstring && typeof o.impstring === 'string') {
					jsonConvert(o.impstring,o );
					$($t).triggerHandler("jqGridImportComplete", [o.impstring, o]);
					if($.jgrid.isFunction(o.importComplete)) {
						o.importComplete(o.impstring);
					}
				}
				break;
		}
	}
});
	$.jgrid.extend({
		jqGridExport : function(o) {
			o = $.extend({
				exptype : "xmlstring",
				root: "grid",
				ident: "\t",
				addOptions : {},
				data : true
			}, o || {});
			var ret = null;
			this.each(function () {
				if(!this.grid) { return;}
				var gprm = $.extend(true, {}, $(this).jqGrid("getGridParam"), o.addOptions);
				// we need to check for:
				// 1.multiselect, 2.subgrid  3. treegrid and remove the unneded columns from colNames
				if(gprm.rownumbers) {
					gprm.colNames.splice(0,1);
					gprm.colModel.splice(0,1);
				}
				if(gprm.multiselect) {
					gprm.colNames.splice(0,1);
					gprm.colModel.splice(0,1);
				}
				if(gprm.searchCols) {
					gprm.colNames.splice(0,1);
					gprm.colModel.splice(0,1);
				}
				if(gprm.subGrid) {
					gprm.colNames.splice(0,1);
					gprm.colModel.splice(0,1);
				}
				gprm.knv = null;
				if(!o.data) {
					gprm.data = [];
					gprm._index = {};
				}
				switch (o.exptype) {
					case 'xmlstring' :
						ret = "<"+o.root+">"+ $.jgrid.jsonToXML( gprm, {xmlDecl:""} )+"</"+o.root+">";
						break;
					case 'jsonstring' :
						ret =  $.jgrid.stringify( gprm );
						if(o.root) { ret = "{"+ o.root +":"+ret+"}"; }
						break;
				}
			});
			return ret;
		},
		excelExport : function(o) {
			o = $.extend({
				exptype : "remote",
				url : null,
				oper: "oper",
				tag: "excel",
				beforeExport : null,
				exporthidden : false,
				exportgrouping: false,
				exportOptions : {},
				method : 'GET'
			}, o || {});
			return this.each(function(){
				if(!this.grid) { return;}
				var url;
				if(o.exptype === "remote") {
					var pdata = $.extend({},this.p.postData), expg;
					pdata[o.oper] = o.tag;
					if($.jgrid.isFunction(o.beforeExport)) {
						var result = o.beforeExport.call(this, pdata );
						if( $.isPlainObject( result ) ) {
							pdata = result;
						}
					}
					if(o.exporthidden) {
						var cm = this.p.colModel, i, len = cm.length, newm=[];
						for(i=0; i< len; i++) {
							if(cm[i].hidden === undefined) { cm[i].hidden = false; }
							newm.push({name:cm[i].name, hidden:cm[i].hidden});
						}
						var newm1 = JSON.stringify( newm );
						if(typeof newm1 === 'string' ) {
							pdata.colModel = newm1;
						}
					}
					if(o.exportgrouping) {
						expg = JSON.stringify( this.p.groupingView );
						if(typeof expg === 'string' ) {
							pdata.groupingView = expg;
						}
					}
					try {
						$.jgrid.postForm(o.url, pdata, o.method);
					} catch (e) {
						var params = jQuery.param(pdata);
						if(o.url.indexOf("?") !== -1) { url = o.url+"&"+params; }
						else { url = o.url+"?"+params; }
						window.location = url;
					}
				}
			});
		}
    });

//module begin
$.jgrid.inlineEdit = $.jgrid.inlineEdit || {};
$.jgrid.extend({
//Editing
	editRow : function(rowid,keys,oneditfunc,successfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc) {
		// Compatible mode old versions
		var o={}, args = $.makeArray(arguments).slice(1), $t = this[0];

		if( $.jgrid.type(args[0]) === "object" ) {
			o = args[0];
		} else {
			if (keys !== undefined) { o.keys = keys; }
			if ($.jgrid.isFunction(oneditfunc)) { o.oneditfunc = oneditfunc; }
			if ($.jgrid.isFunction(successfunc)) { o.successfunc = successfunc; }
			if (url !== undefined) { o.url = url; }
			if (extraparam !== undefined) { o.extraparam = extraparam; }
			if ($.jgrid.isFunction(aftersavefunc)) { o.aftersavefunc = aftersavefunc; }
			if ($.jgrid.isFunction(errorfunc)) { o.errorfunc = errorfunc; }
			if ($.jgrid.isFunction(afterrestorefunc)) { o.afterrestorefunc = afterrestorefunc; }
			// last two not as param, but as object (sorry)
			//if (restoreAfterError !== undefined) { o.restoreAfterError = restoreAfterError; }
			//if (mtype !== undefined) { o.mtype = mtype || "POST"; }
		}
		o = $.extend(true, {
			keys : false,
			keyevent : "keydown",
			onEnter : null,
			onEscape : null,
			oneditfunc: null,
			successfunc: null,
			url: null,
			extraparam: {},
			aftersavefunc: null,
			errorfunc: null,
			afterrestorefunc: null,
			restoreAfterError: true,
			mtype: "POST",
			focusField : true,
			saveui : "enable",
			savetext : $.jgrid.getRegional($t,'defaults.savetext')
		}, $.jgrid.inlineEdit, o );

		// End compatible
		return this.each(function(){
			var nm, tmp, editable, cnt=0, focus=null, svr={}, ind,cm, bfer,
			inpclass = $(this).jqGrid('getStyleUI',$t.p.styleUI+".inlinedit",'inputClass', true),
			selclass = $(this).jqGrid('getStyleUI',$t.p.styleUI+".inlinedit",'selectClass', true);
			if (!$t.grid ) { return; }
			ind = $($t).jqGrid("getInd",rowid,true);
			if( ind === false ) {return;}
			$t.p.beforeAction = true;
			bfer = $.jgrid.isFunction( o.beforeEditRow ) ? o.beforeEditRow.call($t,o, rowid) :  undefined;
			if( bfer === undefined ) {
				bfer = true;
			}
			if(!bfer) {
				$t.p.beforeAction = false;
				return;
			}
			editable = $(ind).attr("editable") || "0";
			if (editable === "0" && !$(ind).hasClass("not-editable-row")) {
				cm = $t.p.colModel;
				$(ind).children('td[role="gridcell"]').each( function(i) {
					nm = cm[i].name;
					var treeg = $t.p.treeGrid===true && nm === $t.p.ExpandColumn;
					if(treeg) { tmp = $(this).find("span").first().html();}
					else {
						try {
							tmp = $.unformat.call($t,this,{rowId:rowid, colModel:cm[i]},i);
						} catch (_) {
							tmp =  ( cm[i].edittype && cm[i].edittype === 'textarea' ) ? $(this).text() : $(this).html();
						}
					}
					if ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn' && nm !== 'sc') {
						if($t.p.autoencode) { tmp = $.jgrid.htmlDecode(tmp); }
						//svr[nm]=tmp;
						if(cm[i].editable===true) {
							svr[nm]=tmp;
							if(focus===null) { focus = i; }
							if (treeg) { $(this).find("span").first().html(""); }
							else { $(this).html(""); }
							var opt = $.extend({},cm[i].editoptions || {},{id:rowid+"_"+nm,name:nm,rowId:rowid, oper:'edit', module : 'inline'});
							if(!cm[i].edittype) { cm[i].edittype = "text"; }
							if(tmp === "&nbsp;" || tmp === "&#160;" || (tmp !== null && tmp.length===1 && tmp.charCodeAt(0)===160) ) {tmp='';}
							var elc = $.jgrid.createEl.call($t,cm[i].edittype,opt,tmp,true,$.extend({},$.jgrid.ajaxOptions,$t.p.ajaxSelectOptions || {}));
							$(elc).addClass("editable inline-edit-cell");
							if( $.inArray(cm[i].edittype, ['text','textarea','password']) > -1) {
								$(elc).addClass( inpclass );
							} else if (cm[i].edittype === 'select') {
								$(elc).addClass( selclass );
							}
							if(treeg) { $(this).find("span").first().append(elc); }
							else { $(this).append(elc); }
							$.jgrid.bindEv.call($t, elc, opt);
							//Again IE
							if(cm[i].edittype === "select" && cm[i].editoptions!==undefined && cm[i].editoptions.multiple===true  && cm[i].editoptions.dataUrl===undefined && $.jgrid.msie()) {
								$(elc).width($(elc).width());
							}
							cnt++;
						}
					}
				});
				if(cnt > 0) {
					svr.id = rowid; $t.p.savedRow.push(svr);
					$(ind).attr("editable","1");
					if(o.focusField ) {
						if(typeof o.focusField === 'number' && parseInt(o.focusField,10) <= cm.length) {
							focus = o.focusField;
						}
						setTimeout(function(){
							var fe = $("td", ind).eq( focus ).find(":input:visible").not(":disabled");
							if(fe.length > 0) {
								fe.focus();
							}
						},0);
					}
					if(o.keys===true) {
						$(ind).on( o.keyevent ,function(e) {
							if (e.keyCode === 27) {
								if($.jgrid.isFunction( o.onEscape )) {
									o.onEscape.call($t, rowid, o, e);
									return true;
								}
								$($t).jqGrid("restoreRow",rowid, o);
								if($t.p.inlineNav) {
									try {
										$($t).jqGrid('showAddEditButtons');
									} catch (eer1) {}
								}
								return false;
							}
							if (e.keyCode === 13) {
								e.preventDefault();
								if($.jgrid.isFunction( o.onEnter )) {
									o.onEnter.call($t, rowid, o, e);
									return true;
								}
								if(e.target.tagName === 'TEXTAREA') { return true; }
								if( $($t).jqGrid("saveRow", rowid, o ) ) {
									if($t.p.inlineNav) {
										try {
											$($t).jqGrid('showAddEditButtons');
										} catch (eer2) {}
									}
								}
								return false;
							}
						});
					}
					$($t).triggerHandler("jqGridInlineEditRow", [rowid, o]);
					if( $.jgrid.isFunction(o.oneditfunc)) { o.oneditfunc.call($t, rowid); }
				}
			}
		});
	},
	saveRow : function(rowid, successfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc) {
		// Compatible mode old versions
		var args = $.makeArray(arguments).slice(1), o = {}, $t = this[0];

		if( $.jgrid.type(args[0]) === "object" ) {
			o = args[0];
		} else {
			if ($.jgrid.isFunction(successfunc)) { o.successfunc = successfunc; }
			if (url !== undefined) { o.url = url; }
			if (extraparam !== undefined) { o.extraparam = extraparam; }
			if ($.jgrid.isFunction(aftersavefunc)) { o.aftersavefunc = aftersavefunc; }
			if ($.jgrid.isFunction(errorfunc)) { o.errorfunc = errorfunc; }
			if ($.jgrid.isFunction(afterrestorefunc)) { o.afterrestorefunc = afterrestorefunc; }
		}
		o = $.extend(true, {
			successfunc: null,
			url: null,
			extraparam: {},
			aftersavefunc: null,
			errorfunc: null,
			afterrestorefunc: null,
			restoreAfterError: true,
			mtype: "POST",
			saveui : "enable",
			savetext : $.jgrid.getRegional($t,'defaults.savetext')
		}, $.jgrid.inlineEdit, o );
		// End compatible

		var success = false, nm, tmp={}, tmp2={}, tmp3= {}, editable, fr, cv, ind, nullIfEmpty=false,
		error = $.jgrid.trim( $($t).jqGrid('getStyleUI', $t.p.styleUI+'.common', 'error', true) );
		if (!$t.grid ) { return success; }
		ind = $($t).jqGrid("getInd",rowid,true);
		if(ind === false) {return success;}
		var errors = $.jgrid.getRegional($t, 'errors'),
		edit =$.jgrid.getRegional($t, 'edit'),
		bfsr = $.jgrid.isFunction( o.beforeSaveRow ) ? o.beforeSaveRow.call($t,o, rowid) :  undefined;
		if( bfsr === undefined ) {
			bfsr = true;
		}
		if(!bfsr) { return; }
		editable = $(ind).attr("editable");
		o.url = o.url || $t.p.editurl;
		if (editable==="1") {
			var cm, index, elem;
			$(ind).children('td[role="gridcell"]').each(function(i) {
				cm = $t.p.colModel[i];
				nm = cm.name;
				elem = "";
				if ( nm !== 'cb' && nm !== 'subgrid' && cm.editable===true && nm !== 'rn'  && nm !== 'sc' && !$(this).hasClass('not-editable-cell')) {
					switch (cm.edittype) {
						case "checkbox":
							var cbv = ["Yes","No"];
							if(cm.editoptions && cm.editoptions.value) {
								cbv = cm.editoptions.value.split(":");
							}
							tmp[nm]=  $("input",this).is(":checked") ? cbv[0] : cbv[1];
							elem = $("input",this);
							break;
						case 'text':
						case 'password':
						case 'textarea':
						case "button" :
							tmp[nm]=$("input, textarea",this).val();
							elem = $("input, textarea",this);
							break;
						case 'select':
							if(!cm.editoptions.multiple) {
								tmp[nm] = $("select option:selected",this).val();
								tmp2[nm] = $("select option:selected", this).text();
							} else {
								var sel = $("select",this), selectedText = [];
								tmp[nm] = $(sel).val();
								if(tmp[nm]) { tmp[nm]= tmp[nm].join(","); } else { tmp[nm] =""; }
								$("select option:selected",this).each(
									function(i,selected){
										selectedText[i] = $(selected).text();
									}
								);
								tmp2[nm] = selectedText.join(",");
							}
							if(cm.formatter) { tmp2={}; }
							elem = $("select",this);
							break;
						case 'custom' :
							try {
								if(cm.editoptions && $.jgrid.isFunction(cm.editoptions.custom_value)) {
									tmp[nm] = cm.editoptions.custom_value.call($t, $(".customelement",this),'get');
									if (tmp[nm] === undefined) { throw "e2"; }
								} else { throw "e1"; }
							} catch (e) {
								if (e==="e1") { $.jgrid.info_dialog(errors.errcap,"function 'custom_value' "+edit.msg.nodefined,edit.bClose, {styleUI : $t.p.styleUI }); }
								else { $.jgrid.info_dialog(errors.errcap,e.message,edit.bClose, {styleUI : $t.p.styleUI }); }
							}
							break;
					}
					cv = $.jgrid.checkValues.call($t,tmp[nm],i);
					if(cv[0] === false) {
						index = i;
						return false;
					}
					if($t.p.autoencode) { tmp[nm] = $.jgrid.htmlEncode(tmp[nm]); }
					if(o.url !== 'clientArray' && cm.editoptions && cm.editoptions.NullIfEmpty === true) {
						if(tmp[nm] === "") {
							tmp3[nm] = 'null';
							nullIfEmpty = true;
						}
					}
				}
			});
			if (cv[0] === false){
				try {
					if( $.jgrid.isFunction($t.p.validationCell) ) {
						$t.p.validationCell.call($t, elem, cv[1], ind.rowIndex, index);
					} else {
						var tr = $($t).jqGrid('getGridRowById', rowid),
							positions = $.jgrid.findPos(tr);
						$.jgrid.info_dialog(errors.errcap,cv[1],edit.bClose,{
							left:positions[0],
							top:positions[1]+$(tr).outerHeight(),
							styleUI : $t.p.styleUI,
							onClose: function(){
								if(index >= 0 ) {
									$("#"+rowid+"_" +$t.p.colModel[index].name).focus();
								}
							}
						});
					}
				} catch (e) {
					alert(cv[1]);
				}
				return success;
			}
			var idname, opers = $t.p.prmNames, oldRowId = rowid;
			if ($t.p.keyName === false) {
				idname = opers.id;
			} else {
				idname = $t.p.keyName;
			}
			if(!$.isEmptyObject(tmp)) {
				tmp[opers.oper] = opers.editoper;
				if (tmp[idname] === undefined || tmp[idname]==="") {
					tmp[idname] = rowid;
				} else if (ind.id !== $t.p.idPrefix + tmp[idname]) {
					// rename rowid
					var oldid = $.jgrid.stripPref($t.p.idPrefix, rowid);
					if ($t.p._index[oldid] !== undefined) {
						$t.p._index[tmp[idname]] = $t.p._index[oldid];
						delete $t.p._index[oldid];
					}
					rowid = $t.p.idPrefix + tmp[idname];
					$(ind).attr("id", rowid);
					if ($t.p.selrow === oldRowId) {
						$t.p.selrow = rowid;
					}
					if (Array.isArray($t.p.selarrrow)) {
						var i = $.inArray(oldRowId, $t.p.selarrrow);
						if (i>=0) {
							$t.p.selarrrow[i] = rowid;
						}
					}
					if ($t.p.multiselect) {
						var newCboxId = "jqg_" + $t.p.id + "_" + rowid;
						$("input.cbox",ind)
							.attr("id", newCboxId)
							.attr("name", newCboxId);
					}
					// TODO: to test the case of frozen columns
				}
				if($t.p.inlineData === undefined) { $t.p.inlineData ={}; }
				tmp = $.extend({},tmp,$t.p.inlineData,o.extraparam);
			}
			if (o.url === 'clientArray') {
				tmp = $.extend({},tmp, tmp2);
				if($t.p.autoencode) {
					$.each(tmp,function(n,v){
						tmp[n] = $.jgrid.htmlDecode(v);
					});
				}
				tmp = $.jgrid.isFunction($t.p.serializeRowData) ? $t.p.serializeRowData.call($t, tmp) : tmp;
				var k, resp = $($t).jqGrid("setRowData",rowid,tmp);
				$(ind).attr("editable","0");
				for(k=0;k<$t.p.savedRow.length;k++) {
					if( String($t.p.savedRow[k].id) === String(oldRowId)) {fr = k; break;}
				}
				$($t).triggerHandler("jqGridInlineAfterSaveRow", [rowid, resp, tmp, o]);
				if( $.jgrid.isFunction(o.aftersavefunc) ) { o.aftersavefunc.call($t, rowid, resp, tmp, o); }
				if(fr >= 0) { $t.p.savedRow.splice(fr,1); }
				success = true;
				$(ind).removeClass("jqgrid-new-row").off("keydown");
			} else if(o.url === 'storage') {
				tmp = $.extend({},tmp, tmp2);
				if($t.p.autoencode) {
					$.each(tmp,function(n,v){
						tmp[n] = $.jgrid.htmlDecode(v);
					});
				}
				tmp = $.jgrid.isFunction($t.p.serializeRowData) ? $t.p.serializeRowData.call($t, tmp) : tmp;
				if($(ind).hasClass("jqgrid-new-row")) {
					$($t).jqGrid('addStorageRecord', tmp)
					.then(function(e){
						if(e.type==="complete") {
							var k, resp = $($t).jqGrid("setRowData",rowid,tmp);
							$(ind).attr("editable","0");
							for(k=0;k<$t.p.savedRow.length;k++) {
								if( String($t.p.savedRow[k].id) === String(oldRowId)) {fr = k; break;}
							}
							$($t).triggerHandler("jqGridInlineAfterSaveRow", [rowid, resp, tmp, o]);
							if( $.jgrid.isFunction(o.aftersavefunc) ) { o.aftersavefunc.call($t, rowid, resp, tmp, o); }
							if(fr >= 0) { $t.p.savedRow.splice(fr,1); }
							success = true;
							$(ind).removeClass("jqgrid-new-row").off("keydown");
							if($t.p.inlineNav===true) {$($t).jqGrid('showAddEditButtons');}
						}
					})
					.catch(function(e) {
						$.jgrid.info_dialog("Error",e.target.error.name + " : "+e.target.error.message,'Close');
					});
			} else {
					$($t).jqGrid('updateStorageRecord', tmp)
					.then(function(e){
						if(e.type==="complete") {
							var k, resp = $($t).jqGrid("setRowData",rowid,tmp);
							$(ind).attr("editable","0");
							for(k=0;k<$t.p.savedRow.length;k++) {
								if( String($t.p.savedRow[k].id) === String(oldRowId)) {fr = k; break;}
							}
							$($t).triggerHandler("jqGridInlineAfterSaveRow", [rowid, resp, tmp, o]);
							if( $.jgrid.isFunction(o.aftersavefunc) ) { o.aftersavefunc.call($t, rowid, resp, tmp, o); }
							if(fr >= 0) { $t.p.savedRow.splice(fr,1); }
							success = true;
							$(ind).off("keydown");
							if($t.p.inlineNav===true) {$($t).jqGrid('showAddEditButtons');}
						}
					})
					.catch(function(e) {
						$.jgrid.info_dialog("Error",e.target.error.name + " : "+e.target.error.message,'Close');
					});			
				}
			} else {
				$($t).jqGrid("progressBar", {method:"show", loadtype : o.saveui, htmlcontent: o.savetext });
				tmp3 = $.extend({},tmp,tmp3);
				tmp3[idname] = $.jgrid.stripPref($t.p.idPrefix, tmp3[idname]);
				$.ajax($.extend({
					url:o.url,
					data: $.jgrid.isFunction($t.p.serializeRowData) ? $t.p.serializeRowData.call($t, tmp3) : tmp3,
					type: o.mtype,
					async : false, //?!?
					success: function(resuly,stat,res){
						$($t).jqGrid("progressBar", {method:"hide", loadtype : o.saveui, htmlcontent: o.savetext});
						if (stat === "success"){
							var ret = true, sucret, k;
							sucret = $($t).triggerHandler("jqGridInlineSuccessSaveRow", [res, rowid, o]);
							if ( !Array.isArray(sucret) ) {sucret = [true, tmp3];}
							if (sucret[0] && $.jgrid.isFunction(o.successfunc)) {sucret = o.successfunc.call($t, res);}
							if( Array.isArray(sucret) ) {
								// expect array - status, data, rowid
								ret = sucret[0];
								tmp = sucret[1] || tmp;
							} else {
								ret = sucret;
							}
							if (ret===true) {
								if($t.p.autoencode) {
									$.each(tmp,function(n,v){
										tmp[n] = $.jgrid.htmlDecode(v);
									});
								}
								if(nullIfEmpty) {
									$.each(tmp,function( n ){
										if(tmp[n] === 'null' ) {
											tmp[n] = '';
										}
									});
								}
								tmp = $.extend({},tmp, tmp2);
								$($t).jqGrid("setRowData",rowid,tmp);
								$(ind).attr("editable","0");
								for(k=0;k<$t.p.savedRow.length;k++) {
									if( String($t.p.savedRow[k].id) === String(rowid)) {fr = k; break;}
								}
								$($t).triggerHandler("jqGridInlineAfterSaveRow", [rowid, res, tmp, o]);
								if( $.jgrid.isFunction(o.aftersavefunc) ) { o.aftersavefunc.call($t, rowid, res, tmp, o); }
								if(fr >= 0) { $t.p.savedRow.splice(fr,1); }
								success = true;
								$(ind).removeClass("jqgrid-new-row").off("keydown");
							} else {
								$($t).triggerHandler("jqGridInlineErrorSaveRow", [rowid, res, stat, null, o]);
								if($.jgrid.isFunction(o.errorfunc) ) {
									o.errorfunc.call($t, rowid, res, stat, null);
								}
								if(o.restoreAfterError === true) {
									$($t).jqGrid("restoreRow",rowid, o);
								}
							}
						}
					},
					error:function(res,stat,err){
						$("#lui_"+$.jgrid.jqID($t.p.id)).hide();
						$($t).triggerHandler("jqGridInlineErrorSaveRow", [rowid, res, stat, err, o]);
						if($.jgrid.isFunction(o.errorfunc) ) {
							o.errorfunc.call($t, rowid, res, stat, err);
						} else {
							var rT = res.responseText || res.statusText;
							try {
								$.jgrid.info_dialog(errors.errcap,'<div class="'+error+'">'+ rT +'</div>', edit.bClose, {buttonalign:'right', styleUI : $t.p.styleUI });
							} catch(e) {
								alert(rT);
							}
						}
						if(o.restoreAfterError === true) {
							$($t).jqGrid("restoreRow",rowid, o);
						}
					}
				}, $.jgrid.ajaxOptions, $t.p.ajaxRowOptions || {}));
			}
		}
		return success;
	},
	restoreRow : function(rowid, afterrestorefunc) {
		// Compatible mode old versions
		var args = $.makeArray(arguments).slice(1), o={};

		if( $.jgrid.type(args[0]) === "object" ) {
			o = args[0];
		} else {
			if ($.jgrid.isFunction(afterrestorefunc)) { o.afterrestorefunc = afterrestorefunc; }
		}
		o = $.extend(true, {}, $.jgrid.inlineEdit, o );

		// End compatible

		return this.each(function(){
			var $t= this, fr=-1, ind, ares={}, k;
			if (!$t.grid ) { return; }
			ind = $($t).jqGrid("getInd",rowid,true);
			if(ind === false) {return;}
			var bfcr = $.jgrid.isFunction( o.beforeCancelRow ) ?	o.beforeCancelRow.call($t, o, rowid) :  undefined;
			if( bfcr === undefined ) {
				bfcr = true;
			}
			if(!bfcr) { return; }
			for(k=0;k<$t.p.savedRow.length;k++) {
				if( String($t.p.savedRow[k].id) === String(rowid)) {fr = k; break;}
			}
			if(fr >= 0) {
				if($.jgrid.isFunction($.fn.datepicker)) {
					try {
						$("input.hasDatepicker","#"+$.jgrid.jqID(ind.id)).datepicker('hide');
					} catch (e) {}
				}
				$.each($t.p.colModel, function(){
					if( $t.p.savedRow[fr].hasOwnProperty(this.name)) {
						ares[this.name] = $t.p.savedRow[fr][this.name];
					}
				});
				$($t).jqGrid("setRowData",rowid,ares);
				$(ind).attr("editable","0").off("keydown");
				$t.p.savedRow.splice(fr,1);
				if($("#"+$.jgrid.jqID(rowid), "#"+$.jgrid.jqID($t.p.id)).hasClass("jqgrid-new-row")){
					setTimeout(function(){
						$($t).jqGrid("delRowData",rowid);
						$($t).jqGrid('showAddEditButtons');
					},0);
				}
			}
			$($t).triggerHandler("jqGridInlineAfterRestoreRow", [rowid]);
			if ($.jgrid.isFunction(o.afterrestorefunc))
			{
				o.afterrestorefunc.call($t, rowid);
			}
		});
	},
	addRow : function ( p ) {
		p = $.extend(true, {
			rowID : null,
			initdata : {},
			position :"first",
			useDefValues : true,
			useFormatter : false,
			addRowParams : {extraparam:{}}
		},p  || {});
		return this.each(function(){
			if (!this.grid ) { return; }
			var $t = this;
			$t.p.beforeAction = true;
			var bfar = $.jgrid.isFunction( p.beforeAddRow ) ?	p.beforeAddRow.call($t,p.addRowParams) :  undefined;
			if( bfar === undefined ) {
				bfar = true;
			}
			if(!bfar) {
				$t.p.beforeAction = false;
				return;
			}
			p.rowID = $.jgrid.isFunction(p.rowID) ? p.rowID.call($t, p) : ( (p.rowID != null) ? p.rowID : $.jgrid.randId());
			if(p.useDefValues === true) {
				$($t.p.colModel).each(function(){
					if( this.editoptions && this.editoptions.defaultValue ) {
						var opt = this.editoptions.defaultValue,
						tmp = $.jgrid.isFunction(opt) ? opt.call($t) : opt;
						p.initdata[this.name] = tmp;
					}
				});
			}
			$($t).jqGrid('addRowData', p.rowID, p.initdata, p.position);
			p.rowID = $t.p.idPrefix + p.rowID;
			$("#"+$.jgrid.jqID(p.rowID), "#"+$.jgrid.jqID($t.p.id)).addClass("jqgrid-new-row");
			if(p.useFormatter) {
				$("#"+$.jgrid.jqID(p.rowID)+" .ui-inline-edit", "#"+$.jgrid.jqID($t.p.id)).click();
			} else {
				var opers = $t.p.prmNames,
				oper = opers.oper;
				p.addRowParams.extraparam[oper] = opers.addoper;
				$($t).jqGrid('editRow', p.rowID, p.addRowParams);
				$($t).jqGrid('setSelection', p.rowID);
			}
		});
	},
	inlineNav : function (elem, o) {
		var $t = this[0],
		regional =  $.jgrid.getRegional($t, 'nav'),
		icons = $.jgrid.styleUI[$t.p.styleUI].inlinedit;
		o = $.extend(true,{
			edit: true,
			editicon: icons.icon_edit_nav,
			add: true,
			addicon:icons.icon_add_nav,
			save: true,
			saveicon: icons.icon_save_nav,
			cancel: true,
			cancelicon: icons.icon_cancel_nav,
			addParams : {addRowParams: {extraparam: {}}},
			editParams : {},
			restoreAfterSelect : true,
			saveAfterSelect : false
		}, regional, o ||{});
		return this.each(function(){
			if (!this.grid  || this.p.inlineNav) { return; }
			var gID = $.jgrid.jqID($t.p.id),
			disabled = $.jgrid.trim( $($t).jqGrid('getStyleUI', $t.p.styleUI+'.common', 'disabled', true) );
			// check to see if navgrid is started, if not call it with all false parameters.
			if(!$t.p.navGrid) {
				$($t).jqGrid('navGrid',elem, {refresh:false, edit: false, add: false, del: false, search: false, view: false});
			}
			if(!$($t).data('inlineNav')) {
				$($t).data('inlineNav',o);
			}
			if($t.p.force_regional) {
				o = $.extend(o, regional);
			}

			$t.p.inlineNav = true;
			// detect the formatactions column
			if(o.addParams.useFormatter === true) {
				var cm = $t.p.colModel,i;
				for (i = 0; i<cm.length; i++) {
					if(cm[i].formatter && cm[i].formatter === "actions" ) {
						if(cm[i].formatoptions) {
							var defaults =  {
								keys:false,
								onEdit : null,
								onSuccess: null,
								afterSave:null,
								onError: null,
								afterRestore: null,
								extraparam: {},
								url: null
							},
							ap = $.extend( defaults, cm[i].formatoptions );
							o.addParams.addRowParams = {
								"keys" : ap.keys,
								"oneditfunc" : ap.onEdit,
								"successfunc" : ap.onSuccess,
								"url" : ap.url,
								"extraparam" : ap.extraparam,
								"aftersavefunc" : ap.afterSave,
								"errorfunc": ap.onError,
								"afterrestorefunc" : ap.afterRestore
							};
						}
						break;
					}
				}
			}
			if(o.add) {
				$($t).jqGrid('navButtonAdd', elem,{
					caption : o.addtext,
					title : o.addtitle,
					buttonicon : o.addicon,
					id : $t.p.id+"_iladd",
					internal : true,
					onClickButton : function () {
						if($t.p.beforeAction === undefined) {
							$t.p.beforeAction = true;
						}
						$($t).jqGrid('addRow', o.addParams);
						if(!o.addParams.useFormatter && $t.p.beforeAction) {
							$("#"+gID+"_ilsave").removeClass( disabled );
							$("#"+gID+"_ilcancel").removeClass( disabled );
							$("#"+gID+"_iladd").addClass( disabled );
							$("#"+gID+"_iledit").addClass( disabled );
						}
					}
				});
			}
			if(o.edit) {
				$($t).jqGrid('navButtonAdd', elem,{
					caption : o.edittext,
					title : o.edittitle,
					buttonicon : o.editicon,
					id : $t.p.id+"_iledit",
					internal : true,
					onClickButton : function () {
						var sr = $($t).jqGrid('getGridParam','selrow');
						if(sr) {
							if($t.p.beforeAction === undefined) {
								$t.p.beforeAction = true;
							}
							$($t).jqGrid('editRow', sr, o.editParams);
							if($t.p.beforeAction) {
								$("#"+gID+"_ilsave").removeClass( disabled );
								$("#"+gID+"_ilcancel").removeClass( disabled );
								$("#"+gID+"_iladd").addClass( disabled );
								$("#"+gID+"_iledit").addClass( disabled );
							}
						} else {
							$.jgrid.viewModal("#alertmod_"+gID, {gbox:"#gbox_"+gID,jqm:true});$("#jqg_alrt").focus();
						}
					}
				});
			}
			if(o.save) {
				$($t).jqGrid('navButtonAdd', elem,{
					caption : o.savetext || '',
					title : o.savetitle || 'Save row',
					buttonicon : o.saveicon,
					id : $t.p.id+"_ilsave",
					internal : true,
					onClickButton : function () {
						var sr = $t.p.savedRow[0].id;
						if(sr) {
							var opers = $t.p.prmNames,
							oper = opers.oper, tmpParams = o.editParams;
							if($("#"+$.jgrid.jqID(sr), "#"+gID ).hasClass("jqgrid-new-row")) {
								o.addParams.addRowParams.extraparam[oper] = opers.addoper;
								tmpParams = o.addParams.addRowParams;
							} else {
								if(!o.editParams.extraparam) {
									o.editParams.extraparam = {};
								}
								o.editParams.extraparam[oper] = opers.editoper;
							}
							if( $($t).jqGrid('saveRow', sr, tmpParams) ) {
								$($t).jqGrid('showAddEditButtons');
							}
						} else {
							$.jgrid.viewModal("#alertmod_"+gID, {gbox:"#gbox_"+gID,jqm:true});$("#jqg_alrt").focus();
						}
					}
				});
				$("#"+gID+"_ilsave").addClass( disabled );
			}
			if(o.cancel) {
				$($t).jqGrid('navButtonAdd', elem,{
					caption : o.canceltext || '',
					title : o.canceltitle || 'Cancel row editing',
					buttonicon : o.cancelicon,
					id : $t.p.id+"_ilcancel",
					internal : true,
					onClickButton : function () {
						var sr = $t.p.savedRow[0].id, cancelPrm = o.editParams;
						if(sr) {
							if($("#"+$.jgrid.jqID(sr), "#"+gID ).hasClass("jqgrid-new-row")) {
								cancelPrm = o.addParams.addRowParams;
							}
							$($t).jqGrid('restoreRow', sr, cancelPrm);
							$($t).jqGrid('showAddEditButtons');
						} else {
							$.jgrid.viewModal("#alertmod",{gbox:"#gbox_"+gID,jqm:true});$("#jqg_alrt").focus();
						}
					}
				});
				$("#"+gID+"_ilcancel").addClass( disabled );
			}
			if(o.restoreAfterSelect === true || o.saveAfterSelect === true) {
				$($t).on("jqGridBeforeSelectRow.inlineNav", function( event, id ) {
					if($t.p.savedRow.length > 0 && $t.p.inlineNav===true && ( id !== $t.p.selrow && $t.p.selrow !==null) ) {
						var success = true;
						if($t.p.selrow === o.addParams.rowID ) {
							$($t).jqGrid('delRowData', $t.p.selrow);
						} else {
							if(o.restoreAfterSelect === true) {
								$($t).jqGrid('restoreRow', $t.p.selrow, o.editParams);
							} else {
								success = $($t).jqGrid('saveRow', $t.p.selrow, o.editParams);
							}
						}
						if(success) {
							$($t).jqGrid('showAddEditButtons');
						}
					}
				});
			}

		});
	},
	showAddEditButtons : function()  {
		return this.each(function(){
			if (!this.grid ) { return; }
			var gID = $.jgrid.jqID(this.p.id),
			disabled = $.jgrid.trim( $(this).jqGrid('getStyleUI', this.p.styleUI+'.common', 'disabled', true) );
			$("#"+gID+"_ilsave").addClass( disabled );
			$("#"+gID+"_ilcancel").addClass( disabled );
			$("#"+gID+"_iladd").removeClass( disabled );
			$("#"+gID+"_iledit").removeClass( disabled );
		});
	},
	showSaveCancelButtons : function()  {
		return this.each(function(){
			if (!this.grid ) { return; }
			var gID = $.jgrid.jqID(this.p.id),
			disabled = $.jgrid.trim( $(this).jqGrid('getStyleUI', this.p.styleUI+'.common', 'disabled', true) );
			$("#"+gID+"_ilsave").removeClass( disabled );
			$("#"+gID+"_ilcancel").removeClass( disabled );
			$("#"+gID+"_iladd").addClass( disabled );
			$("#"+gID+"_iledit").addClass( disabled );
		});
	}
//end inline edit
});

//module begin
if ($.jgrid.msie() && $.jgrid.msiever()===8) {
	$.expr[":"].hidden = function(elem) {
		return elem.offsetWidth === 0 || elem.offsetHeight === 0 ||
			elem.style.display === "none";
	};
}
// requiere load multiselect before grid
$.jgrid._multiselect = false;
if($.ui) {
	if ($.ui.multiselect ) {
		if($.ui.multiselect.prototype._setSelected) {
			var setSelected = $.ui.multiselect.prototype._setSelected;
			$.ui.multiselect.prototype._setSelected = function(item,selected) {
				var ret = setSelected.call(this,item,selected);
				if (selected && this.selectedList) {
					var elt = this.element;
					this.selectedList.find('li').each(function() {
						if ($(this).data('optionLink')) {
							$(this).data('optionLink').remove().appendTo(elt);
						}
					});
				}
				return ret;
			};
		}
		if($.ui.multiselect.prototype.destroy) {
			$.ui.multiselect.prototype.destroy = function() {
				this.element.show();
				this.container.remove();
				if ($.Widget === undefined) {
					$.widget.prototype.destroy.apply(this, arguments);
				} else {
					$.Widget.prototype.destroy.apply(this, arguments);
				}
			};
		}
		$.jgrid._multiselect = true;
	}
}
        
$.jgrid.extend({
	sortableColumns : function (tblrow)
	{
		return this.each(function (){
			var ts = this, tid= $.jgrid.jqID( ts.p.id ), frozen = false;
			function start() {
				ts.p.disableClick = true;
				if(ts.p.frozenColumns) {
					$(ts).jqGrid("destroyFrozenColumns");
					frozen = true;
				}
			}
			function stop() { 
				setTimeout(function () { 
					ts.p.disableClick = false; 
					if(frozen) {
						$(ts).jqGrid("setFrozenColumns");
						frozen = false;
					}
				}, 50); 
			}
			var sortable_opts = {
				"tolerance" : "pointer",
				"axis" : "x",
				"scrollSensitivity": "1",
				"items": '>th:not(:has(#jqgh_'+tid+'_cb'+',#jqgh_'+tid+'_rn'+',#jqgh_'+tid+'_subgrid),:hidden)',
				"cancel": ".sortable-disabled",
				"placeholder": {
					element: function(item) {
						var el = $(document.createElement(item[0].nodeName))
						.addClass(item[0].className+" ui-sortable-placeholder ui-state-highlight")
						.removeClass("ui-sortable-helper")[0];
						return el;
					},
					update: function(self, p) {
						p.height(self.currentItem.innerHeight() - parseInt(self.currentItem.css('paddingTop')||0, 10) - parseInt(self.currentItem.css('paddingBottom')||0, 10));
						p.width(self.currentItem.innerWidth() - parseInt(self.currentItem.css('paddingLeft')||0, 10) - parseInt(self.currentItem.css('paddingRight')||0, 10));
					}
				},
				"update": function(event, ui) {
					var p = $(ui.item).parent(),
					th = $(">th", p),
					colModel = ts.p.colModel,
					cmMap = {}, tid= ts.p.id+"_";
					$.each(colModel, function(i) { cmMap[this.name]=i; });
					var permutation = [];
					th.each(function() {
						var id = $(">div", this).get(0).id.replace(/^jqgh_/, "").replace(tid,"");
							if (cmMap.hasOwnProperty(id)) {
								permutation.push(cmMap[id]);
							}
					});
	
					$(ts).jqGrid("remapColumns",permutation, true, true);
					if ($.jgrid.isFunction(ts.p.sortable.update)) {
						ts.p.sortable.update(permutation);
					}
				}
			};
			if (ts.p.sortable.options) {
				$.extend(sortable_opts, ts.p.sortable.options);
			} else if ($.jgrid.isFunction(ts.p.sortable)) {
				ts.p.sortable = { "update" : ts.p.sortable };
			}
			if (sortable_opts.start) {
				var s = sortable_opts.start;
				sortable_opts.start = function(e,ui) {
					start();
					s.call(this,e,ui);
				};
			} else {
				sortable_opts.start = start;
			}
			if (sortable_opts.stop) {
				var st = sortable_opts.stop;
				sortable_opts.stop = function(e,ui) {
					stop();
					st.call(this,e,ui);
				};
			} else {
				sortable_opts.stop = stop;
			}
			if (ts.p.sortable.exclude) {
				sortable_opts.items += ":not("+ts.p.sortable.exclude+")";
			}
			var $e = tblrow.sortable(sortable_opts), dataObj = $e.data("sortable") || $e.data("uiSortable");
			if (dataObj != null) {
				dataObj.data("sortable").floating = true;
			}
		});
	},
    columnChooser : function(opts) {
		var self = this, selector, select, colMap = {}, fixedCols = [], dopts, mopts, $dialogContent, multiselectData, listHeight,
			colModel = self.jqGrid("getGridParam", "colModel"),
			colNames = $.extend( [], self.jqGrid("getGridParam", "colNames")),
			getMultiselectWidgetData = function ($elem) {
				return ($.ui.multiselect.prototype && $elem.data($.ui.multiselect.prototype.widgetFullName || $.ui.multiselect.prototype.widgetName)) ||
					$elem.data("ui-multiselect") || $elem.data("multiselect");
			},
			regional =  $.jgrid.getRegional(this[0], 'col');

		if ($("#colchooser_" + $.jgrid.jqID(self[0].p.id)).length) { return; }
		selector = $('<div id="colchooser_'+self[0].p.id+'" style="position:relative;overflow:hidden"><div><select multiple="multiple"></select></div></div>');
		select = $('select', selector);
		function insert(perm,i,v) {
			var a, b;
			if(i>=0){
				a = perm.slice();
				b = a.splice(i,Math.max(perm.length-i,i));
				if(i>perm.length) { i = perm.length; }
				a[i] = v;
				return a.concat(b);
			}
			return perm;
		}
		function call(fn, obj) {
			if (!fn) { return; }
			if (typeof fn === 'string') {
				if ($.fn[fn]) {
					$.fn[fn].apply(obj, $.makeArray(arguments).slice(2));
				}
			} else if ($.jgrid.isFunction(fn)) {
				fn.apply(obj, $.makeArray(arguments).slice(2));
			}
		}
		function resize_select() {

			var widgetData = getMultiselectWidgetData(select),
			$thisDialogContent = widgetData.container.closest(".ui-dialog-content");
			if ($thisDialogContent.length > 0 && typeof $thisDialogContent[0].style === "object") {
				$thisDialogContent[0].style.width = "";
			} else {
				$thisDialogContent.css("width", ""); // or just remove width style
			}

			widgetData.selectedList.height(Math.max(widgetData.selectedContainer.height() - widgetData.selectedActions.outerHeight() -1, 1));
			widgetData.availableList.height(Math.max(widgetData.availableContainer.height() - widgetData.availableActions.outerHeight() -1, 1));
		}

		opts = $.extend({
			width : 400,
			height : 240,
			classname : null,
			groupHeaders : false,
			done : function(perm) { 
				if (perm) { 
					self.jqGrid("remapColumns", perm, true); 
				}
			},
			/* msel is either the name of a ui widget class that
			   extends a multiselect, or a function that supports
			   creating a multiselect object (with no argument,
			   or when passed an object), and destroying it (when
			   passed the string "destroy"). */
			msel : "multiselect",
			/* "msel_opts" : {}, */

			/* dlog is either the name of a ui widget class that 
			   behaves in a dialog-like way, or a function, that
			   supports creating a dialog (when passed dlog_opts)
			   or destroying a dialog (when passed the string
			   "destroy")
			   */
			dlog : "dialog",
			dialog_opts : {
				minWidth: 470,
				dialogClass: "ui-jqdialog"
			},
			/* dlog_opts is either an option object to be passed 
			   to "dlog", or (more likely) a function that creates
			   the options object.
			   The default produces a suitable options object for
			   ui.dialog */
			dlog_opts : function(options) {
				var buttons = {};
				buttons[options.bSubmit] = function() {
					options.apply_perm();
					options.cleanup(false);
				};
				buttons[options.bCancel] = function() {
					options.cleanup(true);
				};
				return $.extend(true, {
					buttons: buttons,
					close: function() {
						options.cleanup(true);
					},
					modal: options.modal || false,
					resizable: options.resizable || true,
					width: options.width + 70,
					resize: resize_select
				}, options.dialog_opts || {});
			},
			/* Function to get the permutation array, and pass it to the
			   "done" function */
			apply_perm : function() {
				var perm = [];
				$('option',select).each(function() {
					if ($(this).is(":selected")) {
						self.jqGrid("showCol", colModel[this.value].name);
					} else {
						self.jqGrid("hideCol", colModel[this.value].name);
					}
				});
				
				//fixedCols.slice(0);
				$('option[selected]',select).each(function() {
					if(this.selected) {
						perm.push(parseInt(this.value,10)); 
					}
				});
				$.each(perm, function() { 
					delete colMap[colModel[parseInt(this,10)].name]; 
				});
				$.each(colMap, function() {
					var ti = parseInt(this,10);
					perm = insert(perm,ti,ti);
				});
				if (opts.done) {
					opts.done.call(self, perm);
				}
				self.jqGrid("setGridWidth", self[0].p.width, self[0].p.shrinkToFit);
			},
			/* Function to cleanup the dialog, and select. Also calls the
			   done function with no permutation (to indicate that the
			   columnChooser was aborted */
			cleanup : function(calldone) {
				call(opts.dlog, selector, 'destroy');
				call(opts.msel, select, 'destroy');
				selector.remove();
				if (calldone && opts.done) {
					opts.done.call(self);
				}
			},
			msel_opts : {
				dividerLocation : 0.5
			}
		}, regional, opts || {} );
		if($.ui) {
			if ($.ui.multiselect && $.ui.multiselect.defaults) {
				if (!$.jgrid._multiselect) {
					// should be in language file
					alert("Multiselect plugin loaded after jqGrid. Please load the plugin before the jqGrid!");
					return;
				}
				// ??? the next line uses $.ui.multiselect.defaults which will be typically undefined
				opts.msel_opts = $.extend($.ui.multiselect.defaults, opts.msel_opts);
			}
		}
		if( self.jqGrid('isGroupHeaderOn') && opts.groupHeaders) {
			var gh_len = self[0].p.groupHeader.length,
			// use the last set one
			groupH = self[0].p.groupHeader[gh_len-1];
			
			for(var ij=0;ij<colNames.length; ij++){
				var iCol = $.jgrid.inColumnHeader( colModel[ij].name, groupH.groupHeaders);
				if(iCol>=0) {
					colNames[ij] = groupH.groupHeaders[iCol].titleText + "::" + colNames[ij];
					for(var jj= 1; jj<= groupH.groupHeaders[iCol].numberOfColumns-1; jj++) {
						colNames[ij+jj] = groupH.groupHeaders[iCol].titleText + "::" + colNames[ij+jj];
					}
					ij = ij+groupH.groupHeaders[iCol].numberOfColumns-1;
				}
			}
		}

		if (opts.caption) {
			selector.attr("title", opts.caption);
		}
		if (opts.classname) {
			selector.addClass(opts.classname);
			select.addClass(opts.classname);
		}
		if (opts.width) {
			$(">div",selector).css({width: opts.width,margin:"0 auto"});
			select.css("width", opts.width);
		}
		if (opts.height) {
			$(">div",selector).css("height", opts.height);
			select.css("height", opts.height - 10);
		}

		select.empty();
		$.each(colModel, function(i) {
			colMap[this.name] = i;
			if (this.hidedlg) {
				if (!this.hidden) {
					fixedCols.push(i);
				}
				return;
			}

			select.append("<option value='"+i+"' "+
						  (this.hidden?"":"selected='selected'")+">"+$.jgrid.stripHtml(colNames[i])+"</option>");
		});

		dopts = $.jgrid.isFunction(opts.dlog_opts) ? opts.dlog_opts.call(self, opts) : opts.dlog_opts;
		call(opts.dlog, selector, dopts);
		mopts = $.jgrid.isFunction(opts.msel_opts) ? opts.msel_opts.call(self, opts) : opts.msel_opts;
		call(opts.msel, select, mopts);

		// fix height of elements of the multiselect widget
		$dialogContent = $("#colchooser_" + $.jgrid.jqID(self[0].p.id));
		// fix fontsize
		var fs =  $('.ui-jqgrid').css('font-size') || '11px';
		$dialogContent.parent().css("font-size",fs);

		$dialogContent.css({ margin: "auto" });
		$dialogContent.find(">div").css({ width: "100%", height: "100%", margin: "auto" });

		multiselectData = getMultiselectWidgetData(select);
		multiselectData.container.css({ width: "100%", height: "100%", margin: "auto" });

		multiselectData.selectedContainer.css({ width: multiselectData.options.dividerLocation * 100 + "%", height: "100%", margin: "auto", boxSizing: "border-box" });
		multiselectData.availableContainer.css({ width: (100 - multiselectData.options.dividerLocation * 100) + "%", height: "100%", margin: "auto", boxSizing: "border-box" });

		// set height for both selectedList and availableList
		multiselectData.selectedList.css("height", "auto");
		multiselectData.availableList.css("height", "auto");
		listHeight = Math.max(multiselectData.selectedList.height(), multiselectData.availableList.height());
		listHeight = Math.min(listHeight, $(window).height());
		multiselectData.selectedList.css("height", listHeight);
		multiselectData.availableList.css("height", listHeight);
		
		resize_select();
	},
	sortableRows : function (opts) {
		// Can accept all sortable options and events
		return this.each(function(){
			var $t = this;
			if(!$t.grid) { return; }
			// Currently we disable a treeGrid sortable
			if($t.p.treeGrid) { return; }
			if($.fn.sortable) {
				opts = $.extend({
					"cursor":"move",
					"axis" : "y",
					"items": " > .jqgrow"
					},
				opts || {});
				if(opts.start && $.jgrid.isFunction(opts.start)) {
					opts._start_ = opts.start;
					delete opts.start;
				} else {opts._start_=false;}
				if(opts.update && $.jgrid.isFunction(opts.update)) {
					opts._update_ = opts.update;
					delete opts.update;
				} else {opts._update_ = false;}
				opts.start = function(ev,ui) {
					$(ui.item).css("border-width","0");
					$("td",ui.item).each(function(i){
						this.style.width = $t.grid.cols[i].style.width;
					});
					if($t.p.subGrid) {
						var subgid = $(ui.item).attr("id");
						try {
							$($t).jqGrid('collapseSubGridRow',subgid);
						} catch (e) {}
					}
					if(opts._start_) {
						opts._start_.apply(this,[ev,ui]);
					}
				};
				opts.update = function (ev,ui) {
					$(ui.item).css("border-width","");
					if($t.p.rownumbers === true) {
						$("td.jqgrid-rownum",$t.rows).each(function( i ){
							$(this).html( i+1+(parseInt($t.p.page,10)-1)*parseInt($t.p.rowNum,10) );
						});
					}
					if(opts._update_) {
						opts._update_.apply(this,[ev,ui]);
					}
				};
				$($t).find("tbody").first().sortable(opts);
				$("tbody",$t).first().find(" > .jqgrow").disableSelection();
			}
		});
	},
	gridDnD : function(opts) {
		return this.each(function(){
		var $t = this, i, cn;
		if(!$t.grid) { return; }
		// Currently we disable a treeGrid drag and drop
		if($t.p.treeGrid) { return; }
		if(!$.fn.draggable || !$.fn.droppable) { return; }
		function updateDnD ()
		{
			var datadnd = $.data($t,"dnd");
			$("tr.jqgrow:not(.ui-draggable)",$t).draggable($.jgrid.isFunction(datadnd.drag) ? datadnd.drag.call($($t),datadnd) : datadnd.drag);
		}
		var appender = "<table id='jqgrid_dnd' class='ui-jqgrid-dnd'></table>";
		if($("#jqgrid_dnd")[0] === undefined) {
			$('body').append(appender);
		}

		if(typeof opts === 'string' && opts === 'updateDnD' && $t.p.jqgdnd===true) {
			updateDnD();
			return;
		}
		var tid;
		opts = $.extend({
			"drag" : function (opts) {
				return $.extend({
					start : function (ev, ui) {
						var i, subgid;
						// if we are in subgrid mode try to collapse the node
						if($t.p.subGrid) {
							subgid = $(ui.helper).attr("id");
							try {
								$($t).jqGrid('collapseSubGridRow',subgid);
							} catch (e) {}
						}
						// hack
						// drag and drop does not insert tr in table, when the table has no rows
						// we try to insert new empty row on the target(s)
						for (i=0;i<$.data($t,"dnd").connectWith.length;i++){
							if($($.data($t,"dnd").connectWith[i]).jqGrid('getGridParam','reccount') === 0 ){
								$($.data($t,"dnd").connectWith[i]).jqGrid('addRowData','jqg_empty_row',{});
							}
						}
						ui.helper.addClass("ui-state-highlight");
						$("td",ui.helper).each(function(i) {
							this.style.width = $t.grid.headers[i].width+"px";
						});
						if(opts.onstart && $.jgrid.isFunction(opts.onstart) ) { opts.onstart.call($($t),ev,ui); }
					},
					stop :function(ev,ui) {
						var i, ids;
						if(ui.helper.dropped && !opts.dragcopy) {
							ids = $(ui.helper).attr("id");
							if(ids === undefined) { ids = $(this).attr("id"); }
							$($t).jqGrid('delRowData',ids );
						}
						// if we have a empty row inserted from start event try to delete it
						for (i=0;i<$.data($t,"dnd").connectWith.length;i++){
							$($.data($t,"dnd").connectWith[i]).jqGrid('delRowData','jqg_empty_row');
						}
						if(opts.onstop && $.jgrid.isFunction(opts.onstop) ) { opts.onstop.call($($t),ev,ui); }
					}
				},opts.drag_opts || {});
			},
			"drop" : function (opts) {
				return $.extend({
					accept: function(d) {
						if (!$(d).hasClass('jqgrow')) { return d;}
						tid = $(d).closest("table.ui-jqgrid-btable");
						var target = $(this).find('table.ui-jqgrid-btable').first()[0];
						if(tid.length > 0 && $.data(tid[0],"dnd") !== undefined) {
							var cn = $.data(tid[0],"dnd").connectWith;
							return $.inArray('#'+$.jgrid.jqID(target.id),cn) !== -1 ? true : false;
						}
						return false;
					},
					drop: function(ev, ui) {
						if (!$(ui.draggable).hasClass('jqgrow')) { 
							return; 
						}
						var accept = $(ui.draggable).attr("id"),
							getdata = ui.draggable.parent().parent().jqGrid('getRowData',accept),
							keysd = [],
							target = $(this).find('table.ui-jqgrid-btable').first()[0];					
							if($.isPlainObject( getdata)) {
								keysd = Object.keys(getdata);
							}
						if(!opts.dropbyname) {
							var j, tmpdata = {}, nm, ki=0;
							var dropmodel = $("#"+$.jgrid.jqID(target.id)).jqGrid('getGridParam','colModel');
							try {
								for(j=0;j<dropmodel.length;j++) {
									nm = dropmodel[j].name;
									if( !(nm === 'cb' || nm === 'rn' || nm === 'subgrid' || nm === 'sc' )) {
										if (keysd[ki] !== undefined) {
											tmpdata[nm] = getdata[keysd[ki]];
										}
										ki++;
									}
								}
								getdata = tmpdata;
							} catch (e) {}
						}
						ui.helper.dropped = true;
						if($.data(tid[0],"dnd").beforedrop && $.jgrid.isFunction($.data(tid[0],"dnd").beforedrop) ) {
							//parameters to this callback - event, element, data to be inserted, sender, reciever
							// should return object which will be inserted into the reciever
							var datatoinsert = $.data(tid[0],"dnd").beforedrop.call(target,ev,ui,getdata,$(tid[0]),$(target));
							if (datatoinsert !== undefined && datatoinsert !== null && typeof datatoinsert === "object") { getdata = datatoinsert; }
						}
						if(ui.helper.dropped) {
							var grid;
							if(opts.autoid) {
								if($.jgrid.isFunction(opts.autoid)) {
									grid = opts.autoid.call(target,getdata);
								} else {
									grid = Math.ceil(Math.random()*1000);
									grid = opts.autoidprefix+grid;
								}
							}
							// NULL is interpreted as undefined while null as object
							$("#"+$.jgrid.jqID(target.id)).jqGrid('addRowData',grid,getdata,opts.droppos);
						}
						if(opts.ondrop && $.jgrid.isFunction(opts.ondrop) ) { opts.ondrop.call(target,ev,ui, getdata); }
					}}, opts.drop_opts || {});
			},
			"onstart" : null,
			"onstop" : null,
			"beforedrop": null,
			"ondrop" : null,
			"drop_opts" : {
				"activeClass": "ui-state-active",
				"hoverClass": "ui-state-hover",
				"tolerance": "intersect"
			},
			"drag_opts" : {
				"revert": "invalid",
				"helper": "clone",
				"cursor": "move",
				"appendTo" : "#jqgrid_dnd",
				"zIndex": 5000
			},
			"dragcopy": false,
			"dropbyname" : false,
			"droppos" : "first",
			"autoid" : true,
			"autoidprefix" : "dnd_"
		}, opts || {});
		
		if(!opts.connectWith) { return; }
		opts.connectWith = opts.connectWith.split(",");
		opts.connectWith = $.map(opts.connectWith,function(n){return $.jgrid.trim(n);});
		$.data($t,"dnd",opts);
		
		if($t.p.reccount !== 0 && !$t.p.jqgdnd) {
			updateDnD();
		}
		$t.p.jqgdnd = true;
		for (i=0;i<opts.connectWith.length;i++){
			cn =opts.connectWith[i];
			$(cn).closest('.ui-jqgrid-bdiv').droppable($.jgrid.isFunction(opts.drop) ? opts.drop.call($($t),opts) : opts.drop);
		}
		});
	},
	gridResize : function(opts) {
		return this.each(function(){
			var $t = this, gID = $.jgrid.jqID($t.p.id), req;
			if(!$t.grid || !$.fn.resizable) { return; }
			opts = $.extend(
				{}, 
				{ resizeclass : "ui-resizable-icon" },
				opts || {}
			);
			if(opts.alsoResize ) {
				opts._alsoResize_ = opts.alsoResize;
				delete opts.alsoResize;
			} else {
				opts._alsoResize_ = false;
			}
			if(opts.stop && $.jgrid.isFunction(opts.stop)) {
				opts._stop_ = opts.stop;
				delete opts.stop;
			} else {
				opts._stop_ = false;
			}
			var class_to_add = opts.resizeclass;
			if($t.p.styleUI !== "jQueryUI") {
				if(opts.handles) {
					if(opts.handles.se) {
						class_to_add += " " +opts.handles.se.replace(".","");
					} else {
						opts.handles.se = "."+class_to_add;
					}
				} else {
					opts.handles = {};
					var test = class_to_add.split(' ');
					opts.handles.se = "."+test[0];
				}
				class_to_add += " ui-resizable-se ui-resizable-handle";
			
				$("#gbox_"+gID).append('<span class="'+class_to_add+'"></span>');
			}
			opts.stop = function (ev, ui) {
				$($t).jqGrid('setGridParam',{height:$("#gview_"+gID+" .ui-jqgrid-bdiv").height()});
				$($t).jqGrid('setGridWidth',ui.size.width,opts.shrinkToFit);
				if(opts._stop_) { opts._stop_.call($t,ev,ui); }
				if($t.p.caption) {
					$("#gbox_"+ gID).css({ 'height': 'auto' });
				}
				if($t.p.frozenColumns) {
					if (req ) clearTimeout(req);
					req = setTimeout(function(){
						if (req ) clearTimeout(req);
						$("#" + gID).jqGrid("destroyFrozenColumns");
						$("#" + gID).jqGrid("setFrozenColumns");
					});
				}
			};
			if(opts._alsoResize_) {
				opts.alsoResize = "#gview_"+gID+" .ui-jqgrid-bdiv,"+opts._alsoResize_ ;
			} else {
				opts.alsoResize = $(".ui-jqgrid-bdiv","#gview_"+gID);
			}
			delete opts._alsoResize_;
			$("#gbox_"+gID).resizable(opts);
		});
	}
});

//module begin
function _pivotfilter (fn, context) {
	/*jshint validthis: true */
	var i,
		value,
		result = [],
		length;
		
	if (!this || typeof fn !== 'function' || (fn instanceof RegExp)) {
		throw new TypeError();
	}

	length = this.length;

	for (i = 0; i < length; i++) {
		if (this.hasOwnProperty(i)) {
			value = this[i];
			if (fn.call(context, value, i, this)) {
				result.push(value);
				// We need break in order to cancel loop 
				// in case the row is found
				break;
			}
		}
	}
	return result;
}
$.assocArraySize = function(obj) {
    // http://stackoverflow.com/a/6700/11236
    var size = 0, key;
    for (key in obj) {
        if (obj.hasOwnProperty(key)) {
        	size++;
        }
    }
    return size;
};

$.jgrid.extend({
	pivotSetup : function( data, options ){
		// data should come in json format
		// The function return the new colModel and the transformed data
		// again with group setup options which then will be passed to the grid
		var columns =[],
		pivotrows =[],
		summaries = [],
		member=[],
		labels=[],
		groupOptions = {
			grouping : true,
			groupingView :  {
				groupField : [],
				groupSummary: [],
				groupSummaryPos:[]
			}
		},
		headers = [],
		o = $.extend ( {
			rowTotals : false,
			rowTotalsText : 'Total',
			// summary columns
			colTotals : false,
			groupSummary : true,
			groupSummaryPos :  'header',
			frozenStaticCols : false
		}, options || {});
		this.each(function(){

			var 
				$t = this,
				row,
				rowindex,
				i,
				
				rowlen = data.length,
				xlen, ylen, aggrlen,
				tmp,
				newObj,
				r=0;
			// utility funcs
			/* 
			 * Filter the data to a given criteria. Return the firt occurance
			 */
			function find(ar, fun, extra) {
				var res;
				res = _pivotfilter.call(ar, fun, extra);
				return res.length > 0 ? res[0] : null;
			}
			/*
			 * Check if the grouped row column exist (See find)
			 * If the row is not find in pivot rows retun null,
			 * otherviese the column
			 */
			function findGroup(item, index) {
				/*jshint validthis: true */
				var j = 0, ret = true, i;
				for(i in item) {
					if( item.hasOwnProperty(i) ) {
						if(item[i] != this[j]) {
							ret =  false;
							break;
						}
						j++;
						if(j>=this.length) {
							break;
						}
					}
				}
				if(ret) {
					rowindex =  index;
				}
				return ret;
			}
			/*
			 * Perform calculations of the pivot values.
			 */
			function calculation(oper, v, field, rc, _cnt)  {
				var ret;
				if( $.jgrid.isFunction(oper)) {
					ret = oper.call($t, v, field, rc);
				} else {
					switch (oper) {
						case  "sum" : 
							ret = $.jgrid.floatNum(v) + $.jgrid.floatNum(rc[field]);
							break;
						case "count" :
							if(v==="" || v == null) {
								v=0;
							}
							if(rc.hasOwnProperty(field)) {
								ret = v+1;
							} else {
								ret = 0;
							}
							break;
						case "min" : 
							if(v==="" || v == null) {
								ret = $.jgrid.floatNum(rc[field]);
							} else {
								ret =Math.min($.jgrid.floatNum(v),$.jgrid.floatNum(rc[field]));
							}
							break;
						case "max" : 
							if(v==="" || v == null) {
								ret = $.jgrid.floatNum(rc[field]);
							} else {
								ret = Math.max($.jgrid.floatNum(v),$.jgrid.floatNum(rc[field]));
							}
							break;
						case "avg" : //avg grouping
							ret = ($.jgrid.floatNum(v) * (_cnt -1) + $.jgrid.floatNum(rc[field]) ) /_cnt;
							break;	
					}
				}
				return ret;
			}
			/*
			 * The function agragates the values of the pivot grid.
			 * Return the current row with pivot summary values
			 */
			function agregateFunc ( row, aggr, value, curr) {
				// default is sum
				var arrln = aggr.length, i, label, j, jv, mainval="",swapvals=[], swapstr, _cntavg = 1, lbl;
				if( Array.isArray(value) ) {
					jv = value.length;
					swapvals = value;
				} else {
					jv = 1;
					swapvals[0]=value;
				}
				member = [];
				labels = [];
				member.root = 0;
				for(j=0;j<jv;j++) {
					var  tmpmember = [], vl;
					for(i=0; i < arrln; i++) {
						swapstr = typeof aggr[i].aggregator === 'string' ? aggr[i].aggregator : 'cust';
							
						if(value == null) {
							label = $.jgrid.trim(aggr[i].member)+"_" + swapstr;
							vl = label;
							swapvals[0]= aggr[i].label || (swapstr + " " +$.jgrid.trim(aggr[i].member));
						} else {
							vl = value[j].replace(/\s+/g, '');
							try {
								label = (arrln === 1 ? mainval + vl : mainval + vl + "_" + swapstr + "_" + String(i));
							} catch(e) {}
							swapvals[j] = value[j];
						}
						//if(j<=1 && vl !==  '_r_Totals' && mainval === "") { // this does not fix full the problem
							//mainval = vl;
						//}
						label = !isNaN(parseInt(label,10)) ? label + " " : label;
						if(aggr[i].aggregator === 'avg') {
							lbl = rowindex === -1 ? pivotrows.length+"_"+label : rowindex+"_"+label;
							if(!_avg[lbl]) {
								_avg[lbl] = 1;
							} else {
								_avg[lbl]++;
							}
							_cntavg = _avg[lbl];
						}						
						curr[label] =  tmpmember[label] = calculation( aggr[i].aggregator, curr[label], aggr[i].member, row, _cntavg);
					}
					mainval += (value && value[j] != null) ? value[j].replace(/\s+/g, '') : '';
					//vl = !isNaN(parseInt(vl,10)) ? vl + " " : vl;
					member[label] = tmpmember;
					labels[label] = swapvals[j];
				}
				return curr;
			}
			// Making the row totals without to add in yDimension
			if(o.rowTotals && o.yDimension.length > 0) {
				var dn = o.yDimension[0].dataName;
				o.yDimension.splice(0,0,{dataName:dn});
				o.yDimension[0].converter =  function(){ return '_r_Totals'; };
			}
			// build initial columns (colModel) from xDimension
			xlen = Array.isArray(o.xDimension) ? o.xDimension.length : 0;
			ylen = o.yDimension.length;
			aggrlen  = Array.isArray(o.aggregates) ? o.aggregates.length : 0;
			if(xlen === 0 || aggrlen === 0) {
				throw("xDimension or aggregates optiona are not set!");
			}
			var colc;
			for(i = 0; i< xlen; i++) {
				colc = {name:o.xDimension[i].dataName, frozen: o.frozenStaticCols};
				if(o.xDimension[i].isGroupField == null) {
					o.xDimension[i].isGroupField =  true;
				}
				colc = $.extend(true, colc, o.xDimension[i]);
				columns.push( colc );
			}
			var groupfields = xlen - 1, tree={}, _avg=[];
			//tree = { text: 'root', leaf: false, children: [] };
			//loop over alll the source data
			while( r < rowlen ) {
				row = data[r];
				var xValue = [];
				var yValue = []; 
				tmp = {};
				i = 0;
				// build the data from xDimension
				do {
					xValue[i]  = $.jgrid.trim(row[o.xDimension[i].dataName]);
					tmp[o.xDimension[i].dataName] = xValue[i];
					i++;
				} while( i < xlen );
				
				var k = 0;
				rowindex = -1;
				// check to see if the row is in our new pivotrow set
				newObj = find(pivotrows, findGroup, xValue);
				if(!newObj) {
					// if the row is not in our set
					k = 0;
					// if yDimension is set
					if(ylen>=1) {
						// build the cols set in yDimension
						for(k=0;k<ylen;k++) {
							yValue[k] = $.jgrid.trim(row[o.yDimension[k].dataName]);
							if(yValue[k] === undefined) {
								yValue[k] = null;
								continue;
							}
							// Check to see if we have user defined conditions
							if(o.yDimension[k].converter && $.jgrid.isFunction(o.yDimension[k].converter)) {
								yValue[k] = o.yDimension[k].converter.call(this, yValue[k], xValue, yValue);
							}
						}
						// make the colums based on aggregates definition 
						// and return the members for late calculation
						tmp = agregateFunc( row, o.aggregates, yValue, tmp );
					} else  if( ylen === 0 ) {
						// if not set use direct the aggregates 
						tmp = agregateFunc( row, o.aggregates, null, tmp );
					}
					// add the result in pivot rows
					pivotrows.push( tmp );
				} else {
					// the pivot exists
					if( rowindex >= 0) {
						k = 0;
						// make the recalculations 
						if(ylen>=1) {
							for(k=0;k<ylen;k++) {
								yValue[k] = $.jgrid.trim(row[o.yDimension[k].dataName]);
								if(yValue[k] === undefined) {
									yValue[k] = null;
									continue;
								}				
								if(o.yDimension[k].converter && $.jgrid.isFunction(o.yDimension[k].converter)) {
									yValue[k] = o.yDimension[k].converter.call(this, yValue[k], xValue, yValue);
								}
							}
							newObj = agregateFunc( row, o.aggregates, yValue, newObj );
						} else  if( ylen === 0 ) {
							newObj = agregateFunc( row, o.aggregates, null, newObj );
						}
						// update the row
						pivotrows[rowindex] = newObj;
					}
				}
				var kj=0, current = null,existing = null, kk;
				// Build a JSON tree from the member (see aggregateFunc) 
				// to make later the columns 
				// 
				for (kk in member) {
					if(member.hasOwnProperty( kk )) {
						if(kj === 0) {
							if (!tree.children||tree.children === undefined){
								tree = { text: kk, level : 0, children: [], label: kk  };
							}
							current = tree.children;
						} else {
							existing = null;
							for (i=0; i < current.length; i++) {
								if (current[i].text === kk) {
								//current[i].fields=member[kk];
									existing = current[i];
									break;
								}
							}
							if (existing) {
								current = existing.children;
							} else {
								current.push({ children: [], text: kk, level: kj,  fields: member[kk], label: labels[kk] });
								current = current[current.length - 1].children;
							}
						}
						kj++;
					}
				}
				r++;
			}
			_avg = null; // free mem
			var  lastval=[], initColLen = columns.length, swaplen = initColLen;
			if(ylen>0) {
				headers[ylen-1] = {	useColSpanStyle: false,	groupHeaders: []};
			}
			/*
			 * Recursive function which uses the tree to build the 
			 * columns from the pivot values and set the group Headers
			 */
			function list(items) {
				var l, j, key, k, col;
				for (key in items) {	 // iterate
					if (items.hasOwnProperty(key)) {
					// write amount of spaces according to level
					// and write name and newline
						if(typeof items[key] !== "object") {
							// If not a object build the header of the appropriate level
							if( key === 'level') {
								if(lastval[items.level] === undefined) {
									lastval[items.level] ='';
									if(items.level>0 && items.text.indexOf('_r_Totals') === -1) {
										headers[items.level-1] = {
											useColSpanStyle: false,
											groupHeaders: []
										};
									}
								}
								if(lastval[items.level] !== items.text && items.children.length && items.text.indexOf('_r_Totals') === -1 ) {
									if(items.level>0) {
										headers[items.level-1].groupHeaders.push({
											titleText: items.label,
											numberOfColumns : 0
										});
										var collen = headers[items.level-1].groupHeaders.length-1,
										colpos = collen === 0 ? swaplen : initColLen;//+aggrlen;
										if(items.level-1=== (o.rowTotals ? 1 : 0)) {
											if(collen>0) {
												var l1=0;
												for(var kk=0; kk<collen; kk++) { 
													l1 += headers[items.level-1].groupHeaders[kk].numberOfColumns;
												}
												if(l1) {
													colpos = l1  + xlen;
												}
											}
										}
										if(columns[colpos]) {
											headers[items.level-1].groupHeaders[collen].startColumnName = columns[colpos].name;
											headers[items.level-1].groupHeaders[collen].numberOfColumns = columns.length - colpos;
										}
										initColLen = columns.length;
									}
								}
								lastval[items.level] = items.text;
							}
							// This is in case when the member contain more than one summary item
							if(items.level === ylen  && key==='level' && ylen >0) {
								if( aggrlen > 1){
									var ll=1;
									for( l in items.fields) {
										if(items.fields.hasOwnProperty(l)) {
											if(ll===1) {
												headers[ylen-1].groupHeaders.push({startColumnName: l, numberOfColumns: 1, titleText: items.label || items.text});
											}
											ll++;
										}
									}
									headers[ylen-1].groupHeaders[headers[ylen-1].groupHeaders.length-1].numberOfColumns = ll-1;
								} else {
									headers.splice(ylen-1,1);
								}
							}
						}
						// if object, call recursively
						if (items[key] != null && typeof items[key] === "object") {
							list(items[key]);
						}
						// Finally build the columns
						if( key === 'level') {
							if( items.level > 0 &&  (items.level === (ylen===0?items.level:ylen) || lastval[items.level].indexOf('_r_Totals') !== -1 ) ){
								j=0;
								for(l in items.fields) {
									if(items.fields.hasOwnProperty( l ) ) {
										col = {};
										for(k in o.aggregates[j]) {
											if(o.aggregates[j].hasOwnProperty(k)) {
												switch( k ) {
													case 'member':
													case 'label':
													case 'aggregator':
														break;
													default:
														col[k] = o.aggregates[j][k];
												}
											}
										}	
										if(aggrlen > 1) {
											col.name = l;
											col.label = o.aggregates[j].label || items.label;
										} else {
											col.name = items.text;
											col.label = items.text==='_r_Totals' ? o.rowTotalsText : items.label;
										}
										columns.push (col);
										j++;
									}
								}
							}
						}
					}
				}
			}

			list( tree );
			var nm;
			// loop again trougth the pivot rows in order to build grand total 
			if(o.colTotals) {
				var plen = pivotrows.length;
				while(plen--) {
					for(i=xlen;i<columns.length;i++) {
						nm = columns[i].name;
						if(!summaries[nm]) {
							summaries[nm] = $.jgrid.floatNum(pivotrows[plen][nm]);
						} else {
							summaries[nm] += $.jgrid.floatNum(pivotrows[plen][nm]);
						}
					}
				}
			}
			// based on xDimension  levels build grouping 
			if( groupfields > 0) {
				for(i=0;i<groupfields;i++) {
					if(columns[i].isGroupField) {
						groupOptions.groupingView.groupField.push(columns[i].name);
						groupOptions.groupingView.groupSummary.push(o.groupSummary);
						groupOptions.groupingView.groupSummaryPos.push(o.groupSummaryPos);
					}
				}
			} else {
				// no grouping is needed
				groupOptions.grouping = false;
			}
			groupOptions.sortname = columns[groupfields].name;
			groupOptions.groupingView.hideFirstGroupCol = true;
		});
		// return the final result.
		return { "colModel" : columns, "rows": pivotrows, "groupOptions" : groupOptions, "groupHeaders" :  headers, summary : summaries };
	},
	jqPivot : function( data, pivotOpt, gridOpt, ajaxOpt) {
		return this.each(function(){
			var $t = this,
				regional = gridOpt.regional ? gridOpt.regional : "en";
			if(pivotOpt.loadMsg === undefined) {
				pivotOpt.loadMsg = true;
			}
			if(pivotOpt.loadMsg) {
				$("<div class='loading_pivot ui-state-default ui-state-active row'>"+$.jgrid.getRegional($t, "regional."+regional+".defaults.loadtext")+"</div>").insertBefore($t).show();
			}

			function pivot( data) {
				if( $.jgrid.isFunction( pivotOpt.onInitPivot ) ) {
					pivotOpt.onInitPivot.call( $t );
				}
				if( !Array.isArray(data) ) {
					//throw "data provides is not an array";
					data = [];
				}
				var pivotGrid = jQuery($t).jqGrid('pivotSetup',data, pivotOpt),
				footerrow = $.assocArraySize(pivotGrid.summary) > 0 ? true : false,
				query= $.jgrid.from.call($t, pivotGrid.rows), i, so, st, len;
				if(pivotOpt.ignoreCase) {
					query = query.ignoreCase();
				}
				for(i=0; i< pivotGrid.groupOptions.groupingView.groupField.length; i++) {
					so = pivotOpt.xDimension[i].sortorder ? pivotOpt.xDimension[i].sortorder : 'asc';
					st = pivotOpt.xDimension[i].sorttype ? pivotOpt.xDimension[i].sorttype : 'text';
					query.orderBy(pivotGrid.groupOptions.groupingView.groupField[i], so, st, '', st);
				}
				len = pivotOpt.xDimension.length;
				if(gridOpt.sortname) { // should be a part of xDimension
					so = gridOpt.sortorder ? gridOpt.sortorder : 'asc';
					st = 'text';
					for( i=0; i< len; i++) {
						if(pivotOpt.xDimension[i].dataName === gridOpt.sortname) {
							st = pivotOpt.xDimension[i].sorttype ? pivotOpt.xDimension[i].sorttype : 'text';
							break;
						}
					}
					query.orderBy(gridOpt.sortname, so, st, '', st);
				} else {
					if(pivotGrid.groupOptions.sortname && len) {
						so = pivotOpt.xDimension[len-1].sortorder ? pivotOpt.xDimension[len-1].sortorder : 'asc';
						st = pivotOpt.xDimension[len-1].sorttype ? pivotOpt.xDimension[len-1].sorttype : 'text';
						query.orderBy(pivotGrid.groupOptions.sortname, so, st, '', st);					
					}
				}
				jQuery($t).jqGrid($.extend(true, {
					datastr: $.extend(query.select(),footerrow ? {userdata:pivotGrid.summary} : {}),
					datatype: "jsonstring",
					footerrow : footerrow,
					userDataOnFooter: footerrow,
					colModel: pivotGrid.colModel,
					viewrecords: true,
					formatFooterData : pivotOpt.colTotals === true ? true : false,
					sortname: pivotOpt.xDimension[0].dataName // ?????
				}, pivotGrid.groupOptions, gridOpt || {}));
				var gHead = pivotGrid.groupHeaders;
				if(gHead.length) {
					for( i = 0;i < gHead.length ; i++) {
						if(gHead[i] && gHead[i].groupHeaders.length) {
							jQuery($t).jqGrid('setGroupHeaders',gHead[i]);
						}
					}
				}
				if(pivotOpt.frozenStaticCols) {
					jQuery($t).jqGrid("setFrozenColumns");
				}
				if( $.jgrid.isFunction( pivotOpt.onCompletePivot ) ) {
					pivotOpt.onCompletePivot.call( $t );
				}
				if(pivotOpt.loadMsg) {
					$(".loading_pivot").remove();
				}
			}
						
			if(typeof data === "string") {
				$.ajax($.extend({
					url : data,
					dataType: 'json',
					success : function(response) {
						pivot($.jgrid.getAccessor(response, ajaxOpt && ajaxOpt.reader ? ajaxOpt.reader: 'rows') );
					}
				}, ajaxOpt || {}) );
			} else {
				pivot( data );
			}
		});
	}
});

//module begin
$.jgrid.extend({
setSubGrid : function () {
	return this.each(function (){
		var $t = this, cm, i,
		classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].subgrid,
		suboptions = {
			plusicon : classes.icon_plus,
			minusicon : classes.icon_minus,
			openicon:  classes.icon_open,
			expandOnLoad:  false,
			selectOnExpand : false,
			selectOnCollapse : false,
			reloadOnExpand : true,
			onErrorLoadData : null
		};
		$t.p.subGridOptions = $.extend(suboptions, $t.p.subGridOptions || {});
		$t.p.colNames.unshift("");
		$t.p.colModel.unshift({name:'subgrid',width: $.jgrid.cell_width ?  $t.p.subGridWidth+$t.p.cellLayout : $t.p.subGridWidth,sortable: false,resizable:false,hidedlg:true,search:false,fixed:true});
		cm = $t.p.subGridModel;
		if(cm[0]) {
			cm[0].align = $.extend([],cm[0].align || []);
			for(i=0;i<cm[0].name.length;i++) { cm[0].align[i] = cm[0].align[i] || 'left';}
		}
	});
},
addSubGridCell :function (pos,iRow) {
	var prp='', ic, sid, icb ;
	this.each(function(){
		prp = this.formatCol(pos,iRow);
		sid= this.p.id;
		ic = this.p.subGridOptions.plusicon;
		icb = $.jgrid.styleUI[(this.p.styleUI || 'jQueryUI')].common;
	});
	return "<td role=\"gridcell\" aria-describedby=\""+sid+"_subgrid\" class=\"ui-sgcollapsed sgcollapsed\" "+prp+"><a style='cursor:pointer;' class='ui-sghref'><span class='" + icb.icon_base +" "+ic+"'></span></a></td>";
},
addSubGrid : function( pos, sind ) {
	return this.each(function(){
		var ts = this;
		if (!ts.grid ) { return; }
		var base = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].base,
			common = $.jgrid.styleUI[(ts.p.styleUI || 'jQueryUI')].common,
			errors = $.jgrid.getRegional(this, 'errors');
		//-------------------------
		var subGridCell = function(trdiv,cell,pos)
		{
			var tddiv = $("<td align='"+ts.p.subGridModel[0].align[pos]+"'></td>").html(cell);
			$(trdiv).append(tddiv);
		};
		var subGridXml = function(sjxml, sbid){
			var tddiv, i,  sgmap,
			dummy = $("<table class='" + base.rowTable + " ui-common-table'><tbody></tbody></table>"),
			trdiv = $("<tr></tr>");
			for (i = 0; i<ts.p.subGridModel[0].name.length; i++) {
				tddiv = $("<th class='" + base.headerBox+" ui-th-subgrid ui-th-column ui-th-"+ts.p.direction+"'></th>");
				$(tddiv).html(ts.p.subGridModel[0].name[i]);
				$(tddiv).width( ts.p.subGridModel[0].width[i]);
				$(trdiv).append(tddiv);
			}
			$(dummy).append(trdiv);
			if (sjxml){
				sgmap = ts.p.xmlReader.subgrid;
				$(sgmap.root+" "+sgmap.row, sjxml).each( function(){
					trdiv = $("<tr class='" + common.content+" ui-subtblcell'></tr>");
					if(sgmap.repeatitems === true) {
						$(sgmap.cell,this).each( function(i) {
							subGridCell(trdiv, $(this).text() || '&#160;',i);
						});
					} else {
						var f = ts.p.subGridModel[0].mapping || ts.p.subGridModel[0].name;
						if (f) {
							for (i=0;i<f.length;i++) {
								subGridCell(trdiv, $.jgrid.getXmlData(this, f[i]) || '&#160;',i);
							}
						}
					}
					$(dummy).append(trdiv);
				});
			}
			var pID = $(ts.grid.bDiv).find("table").first().attr("id")+"_";
			$("#"+$.jgrid.jqID(pID+sbid)).append(dummy);
			ts.grid.hDiv.loading = false;
			$("#load_"+$.jgrid.jqID(ts.p.id)).hide();
			return false;
		};
		var subGridJson = function(sjxml, sbid){
			var tddiv,result,i,cur, sgmap,j,
			dummy = $("<table class='" + base.rowTable + " ui-common-table'><tbody></tbody></table>"),
			trdiv = $("<tr></tr>");
			for (i = 0; i<ts.p.subGridModel[0].name.length; i++) {
				tddiv = $("<th class='" + base.headerBox + " ui-th-subgrid ui-th-column ui-th-"+ts.p.direction+"'></th>");
				$(tddiv).html(ts.p.subGridModel[0].name[i]);
				$(tddiv).width( ts.p.subGridModel[0].width[i]);
				$(trdiv).append(tddiv);
			}
			$(dummy).append(trdiv);
			if (sjxml){
				sgmap = ts.p.jsonReader.subgrid;
				result = $.jgrid.getAccessor(sjxml, sgmap.root);
				if ( result !== undefined ) {
					for (i=0;i<result.length;i++) {
						cur = result[i];
						trdiv = $("<tr class='" + common.content+" ui-subtblcell'></tr>");
						if(sgmap.repeatitems === true) {
							if(sgmap.cell) { cur=cur[sgmap.cell]; }
							for (j=0;j<cur.length;j++) {
								subGridCell(trdiv, cur[j] || '&#160;',j);
							}
						} else {
							var f = ts.p.subGridModel[0].mapping || ts.p.subGridModel[0].name;
							if(f.length) {
								for (j=0;j<f.length;j++) {
									subGridCell(trdiv, $.jgrid.getAccessor(cur, f[j] ) || '&#160;',j);
								}
							}
						}
						$(dummy).append(trdiv);
					}
				}
			}
			var pID = $(ts.grid.bDiv).find("table").first().attr("id")+"_";
			$("#"+$.jgrid.jqID(pID+sbid)).append(dummy);
			ts.grid.hDiv.loading = false;
			$("#load_"+$.jgrid.jqID(ts.p.id)).hide();
			return false;
		};
		var populatesubgrid = function( rd )
		{
			var sid,dp, i, j;
			sid = $(rd).attr("id");
			dp = {nd_: (new Date().getTime())};
			dp[ts.p.prmNames.subgridid]=sid;
			if(!ts.p.subGridModel[0]) { return false; }
			if(ts.p.subGridModel[0].params) {
				for(j=0; j < ts.p.subGridModel[0].params.length; j++) {
					for(i=0; i<ts.p.colModel.length; i++) {
						if(ts.p.colModel[i].name === ts.p.subGridModel[0].params[j]) {
							dp[ts.p.colModel[i].name]= $("td", rd).eq( i ).text().replace(/\&#160\;/ig,'');
						}
					}
				}
			}
			if(!ts.grid.hDiv.loading) {
				ts.grid.hDiv.loading = true;
				$("#load_"+$.jgrid.jqID(ts.p.id)).show();
				if(!ts.p.subgridtype) { ts.p.subgridtype = ts.p.datatype; }
				if($.jgrid.isFunction(ts.p.subgridtype)) {
					ts.p.subgridtype.call(ts, dp);
				} else {
					ts.p.subgridtype = ts.p.subgridtype.toLowerCase();
				}
				switch(ts.p.subgridtype) {
					case "xml":
					case "json":
					$.ajax($.extend({
						type:ts.p.mtype,
						url: $.jgrid.isFunction(ts.p.subGridUrl) ? ts.p.subGridUrl.call(ts, dp) : ts.p.subGridUrl,
						dataType:ts.p.subgridtype,
						data: $.jgrid.isFunction(ts.p.serializeSubGridData)? ts.p.serializeSubGridData.call(ts, dp) : dp,
						success: function(res, stat, sxml) {
							if(ts.p.subgridtype === "xml") {
								subGridXml(sxml.responseXML, sid);
							} else {
								subGridJson($.jgrid.parse(sxml.responseText), sid);
							}
							sxml=null;
						}, 
						error : function(res, stat, err) {
							if($.jgrid.isFunction(ts.p.subGridOptions.onErrorLoadData) ) {
								ts.p.subGridOptions.onErrorLoadData.call(ts, rowid, res, stat, err);
							} else {
								var rT = res.responseText +" <br/>"+res.statusText;
								try {
									$.jgrid.info_dialog(errors.errcap,'<div class="'+common.error+'">'+ rT +'</div>', edit.bClose, {buttonalign:'right', styleUI : ts.p.styleUI });
								} catch(e) {
									alert(rT);
								}
							}							
						}
					}, $.jgrid.ajaxOptions, ts.p.ajaxSubgridOptions || {}));
					break;
				}
			}
			return false;
		};
		var _id, pID,atd, nhc=0, bfsc, $r;
		$.each(ts.p.colModel,function(){
			if(this.hidden === true || this.name === 'rn' || this.name === 'cb'  || this.name === 'sc' ) {
				nhc++;
			}
		});
		var len = ts.rows.length, i=1,hsret, ishsg = $.jgrid.isFunction(ts.p.isHasSubGrid);
		if( sind !== undefined && sind > 0) {
			i = sind;
			len = sind+1;
		}
		while(i < len) {
			if($(ts.rows[i]).hasClass('jqgrow')) {
				if(ts.p.scroll) {
					$(ts.rows[i].cells[pos]).off('click');
				}
				hsret = null;
				if(ishsg) {
					hsret = ts.p.isHasSubGrid.call(ts, ts.rows[i].id);
				}
				if(hsret === false) {
					ts.rows[i].cells[pos].innerHTML = "";
				} else {
					$(ts.rows[i].cells[pos]).on('click', function() {
						var tr = $(this).parent("tr")[0];
						pID = ts.p.id;
						_id = tr.id;
						$r = $("#" + pID + "_" + _id + "_expandedContent");
						if($(this).hasClass("sgcollapsed")) {
							bfsc = $(ts).triggerHandler("jqGridSubGridBeforeExpand", [pID + "_" + _id, _id]);
							bfsc = (bfsc === false || bfsc === 'stop') ? false : true;
							if(bfsc && $.jgrid.isFunction(ts.p.subGridBeforeExpand)) {
								bfsc = ts.p.subGridBeforeExpand.call(ts, pID+"_"+_id,_id);
							}
							if(bfsc === false) {return false;}

							if(ts.p.subGridOptions.reloadOnExpand === true || ( ts.p.subGridOptions.reloadOnExpand === false && !$r.hasClass('ui-subgrid') ) ) {
								atd = pos >=1 ? "<td colspan='"+pos+"'>&#160;</td>":"";
								$(tr).after( "<tr role='row' id='" + pID + "_" + _id + "_expandedContent" + "' class='ui-subgrid ui-sg-expanded'>"+atd+"<td class='" + common.content +" subgrid-cell'><span class='" + common.icon_base +" "+ts.p.subGridOptions.openicon+"'></span></td><td colspan='"+parseInt(ts.p.colNames.length-1-nhc,10)+"' class='" + common.content +" subgrid-data'><div id="+pID+"_"+_id+" class='tablediv'></div></td></tr>" );
								$(ts).triggerHandler("jqGridSubGridRowExpanded", [pID + "_" + _id, _id]);
								if( $.jgrid.isFunction(ts.p.subGridRowExpanded)) {
									ts.p.subGridRowExpanded.call(ts, pID+"_"+ _id,_id);
								} else {
									populatesubgrid(tr);
								}
							} else {
								$r.show().removeClass("ui-sg-collapsed").addClass("ui-sg-expanded");
							}
							$(this).html("<a style='cursor:pointer;' class='ui-sghref'><span class='" + common.icon_base +" "+ts.p.subGridOptions.minusicon+"'></span></a>").removeClass("sgcollapsed").addClass("sgexpanded");
							if(ts.p.subGridOptions.selectOnExpand) {
								$(ts).jqGrid('setSelection',_id);
							}
						} else if($(this).hasClass("sgexpanded")) {
							bfsc = $(ts).triggerHandler("jqGridSubGridRowColapsed", [pID + "_" + _id, _id]);
							bfsc = (bfsc === false || bfsc === 'stop') ? false : true;
							if( bfsc &&  $.jgrid.isFunction(ts.p.subGridRowColapsed)) {
								bfsc = ts.p.subGridRowColapsed.call(ts, pID+"_"+_id,_id );
							}
							if(bfsc===false) {return false;}
							if(ts.p.subGridOptions.reloadOnExpand === true) {
								$r.remove(".ui-subgrid");
							} else if($r.hasClass('ui-subgrid')) { // incase of dynamic deleting
								$r.hide().addClass("ui-sg-collapsed").removeClass("ui-sg-expanded");
							}
							$(this).html("<a style='cursor:pointer;' class='ui-sghref'><span class='"+common.icon_base +" "+ts.p.subGridOptions.plusicon+"'></span></a>").removeClass("sgexpanded").addClass("sgcollapsed");
							if(ts.p.subGridOptions.selectOnCollapse) {
								$(ts).jqGrid('setSelection',_id);
							}
						}
						return false;
					});
				}
			}
			i++;
		}
		if(ts.p.subGridOptions.expandOnLoad === true) {
			var offset = 0;
			if(ts.p.multiselect) { offset++;}
			if(ts.p.rownumbers) { offset++;}
			$(ts.rows).filter('.jqgrow').each(function(index,row){
				$(row.cells[offset]).click();
			});
		}
		ts.subGridXml = function(xml,sid) {subGridXml(xml,sid);};
		ts.subGridJson = function(json,sid) {subGridJson(json,sid);};
	});
},
expandSubGridRow : function(rowid) {
	return this.each(function () {
		var $t = this;
		if(!$t.grid && !rowid) {return;}
		if($t.p.subGrid===true) {
			var rc = $(this).jqGrid("getInd",rowid,true);
			if(rc) {
				var sgc = $("td.sgcollapsed",rc)[0];
				if(sgc) {
					$(sgc).trigger("click");
				}
			}
		}
	});
},
collapseSubGridRow : function(rowid) {
	return this.each(function () {
		var $t = this;
		if(!$t.grid && !rowid) {return;}
		if($t.p.subGrid===true) {
			var rc = $(this).jqGrid("getInd",rowid,true);
			if(rc) {
				var sgc = $("td.sgexpanded",rc)[0];
				if(sgc) {
					$(sgc).trigger("click");
				}
			}
		}
	});
},
toggleSubGridRow : function(rowid) {
	return this.each(function () {
		var $t = this;
		if(!$t.grid && !rowid) {return;}
		if($t.p.subGrid===true) {
			var rc = $(this).jqGrid("getInd",rowid,true);
			if(rc) {
				var sgc = $("td.sgcollapsed",rc)[0];
				if(sgc) {
					$(sgc).trigger("click");
				} else {
					sgc = $("td.sgexpanded",rc)[0];
					if(sgc) {
						$(sgc).trigger("click");
					}
				}
			}
		}
	});
}
});

//module begin
$.jgrid.extend({
	setTreeNode : function(i, len){
		return this.each(function(){
			var $t = this;
			if( !$t.grid || !$t.p.treeGrid ) {return;}
			var expCol = $t.p.expColInd,
			expanded = $t.p.treeReader.expanded_field,
			isLeaf = $t.p.treeReader.leaf_field,
			level = $t.p.treeReader.level_field,
			icon = $t.p.treeReader.icon_field,
			loaded = $t.p.treeReader.loaded,  lft, rgt, curLevel, ident,lftpos, twrap,
			ldat, lf,
			common = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].common,
			index = i;
			$($t).triggerHandler("jqGridBeforeSetTreeNode", [index, len]);
			if($.jgrid.isFunction($t.p.beforeSetTreeNode)) {
				$t.p.beforeSetTreeNode.call($t, index, len);
			}
			while(i<len) {
				var ind = $.jgrid.stripPref($t.p.idPrefix, $t.rows[i].id), dind = $t.p._index[ind], expan;
				ldat = $t.p.data[dind];
				//$t.rows[i].level = ldat[level];
				if($t.p.treeGridModel === 'nested') {
					if(!ldat[isLeaf]) {
					lft = parseInt(ldat[$t.p.treeReader.left_field],10);
					rgt = parseInt(ldat[$t.p.treeReader.right_field],10);
					// NS Model
						ldat[isLeaf] = (rgt === lft+1) ? 'true' : 'false';
						$t.rows[i].cells[$t.p._treeleafpos].innerHTML = ldat[isLeaf];
					}
				}
				//else {
					//row.parent_id = rd[$t.p.treeReader.parent_id_field];
				//}
				curLevel = parseInt(ldat[level],10);
				if($t.p.tree_root_level === 0) {
					ident = curLevel+1;
					lftpos = curLevel;
				} else {
					ident = curLevel;
					lftpos = curLevel -1;
				}
				twrap = "<div class='tree-wrap tree-wrap-"+$t.p.direction+"' style='width:"+(ident*18)+"px;'>";
				twrap += "<div style='"+($t.p.direction==="rtl" ? "right:" : "left:")+(lftpos*18)+"px;' class='"+common.icon_base+" ";


				if(ldat[loaded] !== undefined) {
					if(ldat[loaded]==="true" || ldat[loaded]===true) {
						ldat[loaded] = true;
					} else {
						ldat[loaded] = false;
					}
				}
				if(ldat[isLeaf] === "true" || ldat[isLeaf] === true) {
					twrap += ((ldat[icon] !== undefined && ldat[icon] !== "") ? ldat[icon] : $t.p.treeIcons.leaf)+" tree-leaf treeclick";
					ldat[isLeaf] = true;
					lf="leaf";
				} else {
					ldat[isLeaf] = false;
					lf="";
				}
				ldat[expanded] = ((ldat[expanded] === "true" || ldat[expanded] === true) ? true : false) && (ldat[loaded] || ldat[loaded] === undefined);
				if(ldat[expanded] === false) {
					twrap += ((ldat[isLeaf] === true) ? "'" : $t.p.treeIcons.plus+" tree-plus treeclick'");
				} else {
					twrap += ((ldat[isLeaf] === true) ? "'" : $t.p.treeIcons.minus+" tree-minus treeclick'");
				}
				
				twrap += "></div></div>";
				$($t.rows[i].cells[expCol]).wrapInner("<span class='cell-wrapper"+lf+"'></span>").prepend(twrap);

				if(curLevel !== parseInt($t.p.tree_root_level,10)) {
					//var pn = $($t).jqGrid('getNodeParent',ldat);
					//expan = pn && pn.hasOwnProperty(expanded) ? pn[expanded] : true;
					expan = $($t).jqGrid('isVisibleNode',ldat); // overhead
					if( !expan ){
						$($t.rows[i]).css("display","none");
					}
				}
				$($t.rows[i].cells[expCol])
					.find("div.treeclick")
					.on("click",function(e){
						var target = e.target || e.srcElement,
						ind2 =$.jgrid.stripPref($t.p.idPrefix,$(target,$t.rows).closest("tr.jqgrow")[0].id),
						pos = $t.p._index[ind2];
						if(!$t.p.data[pos][isLeaf]){
							if($t.p.data[pos][expanded]){
								$($t).jqGrid("collapseRow",$t.p.data[pos]);
								$($t).jqGrid("collapseNode",$t.p.data[pos]);
							} else {
								$($t).jqGrid("expandRow",$t.p.data[pos]);
								$($t).jqGrid("expandNode",$t.p.data[pos]);
							}
						}
						//return false;
					});
				if($t.p.ExpandColClick === true) {
					$($t.rows[i].cells[expCol])
						.find("span.cell-wrapper")
						.css("cursor","pointer")
						.on("click",function(e) {
							var target = e.target || e.srcElement,
							ind2 =$.jgrid.stripPref($t.p.idPrefix,$(target,$t.rows).closest("tr.jqgrow")[0].id),
							pos = $t.p._index[ind2];
							if(!$t.p.data[pos][isLeaf]){
								if($t.p.data[pos][expanded]){
									$($t).jqGrid("collapseRow",$t.p.data[pos]);
									$($t).jqGrid("collapseNode",$t.p.data[pos]);
								} else {
									$($t).jqGrid("expandRow",$t.p.data[pos]);
									$($t).jqGrid("expandNode",$t.p.data[pos]);
								}
							}
							$($t).jqGrid("setSelection",ind2);
							//return false;
						});
				}
				i++;
			}
			$($t).triggerHandler("jqGridAfterSetTreeNode", [index, len]);			
			if($.jgrid.isFunction($t.p.afterSetTreeNode)) {
				$t.p.afterSetTreeNode.call($t, index, len);
			}
		});
	},
	setTreeGrid : function() {
		return this.each(function (){
			var $t = this, i=0, pico, ecol = false, nm, key, tkey, dupcols=[],
			classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].treegrid;
			if(!$t.p.treeGrid) {return;}
			if(!$t.p.treedatatype ) {$.extend($t.p,{treedatatype: $t.p.datatype});}
			if($t.p.loadonce) { $t.p.treedatatype = 'local'; }
			$t.p.subGrid = false;$t.p.altRows =false;
			//bvn
			if (!$t.p.treeGrid_bigData) { 
				$t.p.pgbuttons = false;
				$t.p.pginput = false;
				$t.p.rowList = [];
			}
			$t.p.gridview =  true;
			//bvn
			if($t.p.rowTotal === null && !$t.p.treeGrid_bigData ) { $t.p.rowNum = 10000; }
			$t.p.multiselect = false;
			// $t.p.rowList = [];
			$t.p.expColInd = 0;
			pico = classes.icon_plus;
			if($t.p.styleUI === 'jQueryUI') {
				pico += ($t.p.direction==="rtl" ? 'w' : 'e');
			}
			$t.p.treeIcons = $.extend({plus:pico, minus: classes.icon_minus, leaf: classes.icon_leaf},$t.p.treeIcons || {});
			if($t.p.treeGridModel === 'nested') {
				$t.p.treeReader = $.extend({
					level_field: "level",
					left_field:"lft",
					right_field: "rgt",
					leaf_field: "isLeaf",
					expanded_field: "expanded",
					loaded: "loaded",
					icon_field: "icon"
				},$t.p.treeReader);
			} else if($t.p.treeGridModel === 'adjacency') {
				$t.p.treeReader = $.extend({
					level_field: "level",
					parent_id_field: "parent",
					leaf_field: "isLeaf",
					expanded_field: "expanded",
					loaded: "loaded",
					icon_field: "icon"
				},$t.p.treeReader );
			}
			for ( key in $t.p.colModel){
				if($t.p.colModel.hasOwnProperty(key)) {
					nm = $t.p.colModel[key].name;
					if( nm === $t.p.ExpandColumn && !ecol ) {
						ecol = true;
						$t.p.expColInd = i;
					}
					i++;
					//
					if( nm === $t.p.treeReader.level_field || nm === $t.p.treeReader.left_field || nm === $t.p.treeReader.right_field) {
						$t.p.colModel[key].sorttype = "integer";
					}
					for(tkey in $t.p.treeReader) {
						if($t.p.treeReader.hasOwnProperty(tkey) && $t.p.treeReader[tkey] === nm) {
							dupcols.push(nm);
						}
					}
				}
			}
			$.each($t.p.treeReader,function(j,n){
				if(n && $.inArray(n, dupcols) === -1){
					if(j==='leaf_field') { $t.p._treeleafpos= i; }
				i++;
					$t.p.colNames.push(n);
					$t.p.colModel.push({name:n,width:1,hidden:true,sortable:false,resizable:false,hidedlg:true,editable:true,search:false});
				}
			});			
		});
	},
	expandRow: function (record){
		this.each(function(){
			var $t = this, $rootpages;
			//bvn
			if (!$t.p.treeGrid_bigData) {
				$rootpages = $t.p.lastpage;
			}
			if(!$t.grid || !$t.p.treeGrid) {return;}
			var childern = $($t).jqGrid("getNodeChildren",record),
			//if ($($t).jqGrid("isVisibleNode",record)) {
			expanded = $t.p.treeReader.expanded_field,
			rowid  = record[$t.p.localReader.id],
			ret = $($t).triggerHandler("jqGridBeforeExpandTreeGridRow", [rowid, record, childern]);
			if(ret === undefined ) {
				ret = true;
			}
			if(ret && $.jgrid.isFunction($t.p.beforeExpandTreeGridRow)) {
				ret =  $t.p.beforeExpandTreeGridRow.call($t, rowid, record, childern);
			}
			if( ret === false ) { return; }
			$(childern).each(function(){
				var id  = $t.p.idPrefix + $.jgrid.getAccessor(this,$t.p.localReader.id);
				$($($t).jqGrid('getGridRowById', id)).css("display","");
				if(this[expanded]) {
					$($t).jqGrid("expandRow",this);
				}
			});
			$($t).triggerHandler("jqGridAfterExpandTreeGridRow", [rowid, record, childern]);
			if($.jgrid.isFunction($t.p.afterExpandTreeGridRow)) {
				$t.p.afterExpandTreeGridRow.call($t, rowid, record, childern);
			}
			//bvn
			if (!$t.p.treeGrid_bigData) {
				$t.p.lastpage = $rootpages;
			}
			//}
		});
	},
	collapseRow : function (record) {
		this.each(function(){
			var $t = this;
			if(!$t.grid || !$t.p.treeGrid) {return;}
			var childern = $($t).jqGrid("getNodeChildren",record),
			expanded = $t.p.treeReader.expanded_field,
			rowid  = record[$t.p.localReader.id],
			ret = $($t).triggerHandler("jqGridBeforeCollapseTreeGridRow", [rowid, record, childern]);
			if(ret === undefined ) {
				ret = true;
			}			
			if(ret &&  $.jgrid.isFunction($t.p.beforeCollapseTreeGridRow)) { 
				ret = $t.p.beforeCollapseTreeGridRow.call($t, rowid, record, childern);
			}
			if( ret === false ) { return; }
			$(childern).each(function(){
				var id  = $t.p.idPrefix + $.jgrid.getAccessor(this,$t.p.localReader.id);
				$($($t).jqGrid('getGridRowById', id)).css("display","none");
				if(this[expanded]){
					$($t).jqGrid("collapseRow",this);
				}
			});
			$($t).triggerHandler("jqGridAfterCollapseTreeGridRow", [rowid, record, childern]);
			if($.jgrid.isFunction($t.p.afterCollapseTreeGridRow)) {
				$t.p.afterCollapseTreeGridRow.call($t, rowid, record, childern);
			}			
		});
	},
	// NS ,adjacency models
	getRootNodes : function() {
		var result = [];
		this.each(function(){
			var $t = this, level, parent_id, view = $t.p.data;
			if(!$t.grid || !$t.p.treeGrid) {return;}

			switch ($t.p.treeGridModel) {
				case 'nested' :
					level = $t.p.treeReader.level_field;
					$(view).each(function() {
						if(parseInt(this[level],10) === parseInt($t.p.tree_root_level,10)) {
							result.push(this);
						}
					});
					break;
				case 'adjacency' :
					parent_id = $t.p.treeReader.parent_id_field;
					$(view).each(function(){
						if(this[parent_id] === null || String(this[parent_id]).toLowerCase() === "null") {
							result.push(this);
						}
					});
					break;
			}
		});
		return result;
	},
	getNodeDepth : function(rc) {
		var ret = null;
		this.each(function(){
			if(!this.grid || !this.p.treeGrid) {return;}
			var $t = this;
			switch ($t.p.treeGridModel) {
				case 'nested' :
					var level = $t.p.treeReader.level_field;
					ret = parseInt(rc[level],10) - parseInt($t.p.tree_root_level,10);
					break;
				case 'adjacency' :
					ret = $($t).jqGrid("getNodeAncestors",rc).length;
					break;
			}
		});
		return ret;
	},
	getNodeParent : function(rc) {
		var result = null;
		this.each(function(){
			var $t = this;
			if(!$t.grid || !$t.p.treeGrid) {return;}
			switch ($t.p.treeGridModel) {
				case 'nested' :
					var lftc = $t.p.treeReader.left_field,
					rgtc = $t.p.treeReader.right_field,
					levelc = $t.p.treeReader.level_field,
					lft = parseInt(rc[lftc],10), rgt = parseInt(rc[rgtc],10), level = parseInt(rc[levelc],10);
					$(this.p.data).each(function(){
						if(parseInt(this[levelc],10) === level-1 && parseInt(this[lftc],10) < lft && parseInt(this[rgtc],10) > rgt) {
							result = this;
							return false;
						}
					});
					break;
				case 'adjacency' :
					var parent_id = $t.p.treeReader.parent_id_field,
					dtid = $t.p.localReader.id,
					ind = rc[dtid], pos = $t.p._index[ind];
					while(pos--) {
						if( String( $t.p.data[pos][dtid]) === String( $.jgrid.stripPref($t.p.idPrefix, rc[parent_id]) ) ) {
							result = $t.p.data[pos];
							break;
						}
					}
					break;
			}
		});
		return result;
	},
	getNodeChildren : function(rc ) {
		var result = [];
		this.each(function(){
			var $t = this;
			if(!$t.grid || !$t.p.treeGrid) {return;}
			var i, len = this.p.data.length, row;
			switch ($t.p.treeGridModel) {
				case 'nested' :
					var lftc = $t.p.treeReader.left_field,
					rgtc = $t.p.treeReader.right_field,
					levelc = $t.p.treeReader.level_field,
					lft = parseInt(rc[lftc],10), rgt = parseInt(rc[rgtc],10), level = parseInt(rc[levelc],10);
					for(i=0; i  < len; i++) {
						row = $t.p.data[i];
						if(row && parseInt(row[levelc],10) === level+1 && parseInt(row[lftc],10) > lft && parseInt(row[rgtc],10) < rgt) {
							result.push(row);
						}
					}
					break;
				case 'adjacency' :
					var parent_id = $t.p.treeReader.parent_id_field,
					dtid = $t.p.localReader.id;
					for(i=0; i  < len; i++) {
						row = $t.p.data[i];
						if(row && String(row[parent_id]) === String( $.jgrid.stripPref($t.p.idPrefix, rc[dtid]) ) ) {
							result.push(row);
						}
					}
					break;
			}
		});
		return result;
	},
	getFullTreeNode : function(rc, expand) {
		var result = [];
		this.each(function(){
			var $t = this, len,expanded = $t.p.treeReader.expanded_field;
			if(!$t.grid || !$t.p.treeGrid) {return;}
			if(expand == null || typeof expand !== 'boolean') {
				expand = false;
			}
			switch ($t.p.treeGridModel) {
				case 'nested' :
					var lftc = $t.p.treeReader.left_field,
					rgtc = $t.p.treeReader.right_field,
					levelc = $t.p.treeReader.level_field,
					lft = parseInt(rc[lftc],10), rgt = parseInt(rc[rgtc],10), level = parseInt(rc[levelc],10);
					$(this.p.data).each(function(){
						if(parseInt(this[levelc],10) >= level && parseInt(this[lftc],10) >= lft && parseInt(this[lftc],10) <= rgt) {
							if(expand) { this[expanded] = true; }
							result.push(this);
						}
					});
					break;
				case 'adjacency' :
					if(rc) {
						result.push(rc);
						var parent_id = $t.p.treeReader.parent_id_field,
						dtid = $t.p.localReader.id;
						$(this.p.data).each(function(i){
							len = result.length;
							for (i = 0; i < len; i++) {
								if ( String( $.jgrid.stripPref($t.p.idPrefix, result[i][dtid]) ) === String( this[parent_id] ) ) {
									if(expand) { this[expanded] = true; }
									result.push(this);
									break;
								}
							}
						});
					}
					break;
			}
		});
		return result;
	},	
	// End NS, adjacency Model
	getNodeAncestors : function(rc, reverse, expanded) {
		var ancestors = [];
		if(reverse === undefined ) {
			reverse = false;
		}
		this.each(function(){
			if(!this.grid || !this.p.treeGrid) {return;}
			if(expanded === undefined ) {
				expanded = false;
			} else {
				expanded = this.p.treeReader.expanded_field;
			}
			var parent = $(this).jqGrid("getNodeParent",rc);
			while (parent) {
				if(expanded) {
					try{
						parent[expanded] = true;
					} catch (etn) {}
				}
				if(reverse) {
					ancestors.unshift(parent);
				} else {
					ancestors.push(parent);
				}
				parent = $(this).jqGrid("getNodeParent",parent);	
			}
		});
		return ancestors;
	},
	isVisibleNode : function(rc) {
		var result = true;
		this.each(function(){
			var $t = this;
			if(!$t.grid || !$t.p.treeGrid) {return;}
			var ancestors = $($t).jqGrid("getNodeAncestors",rc),
			expanded = $t.p.treeReader.expanded_field;
			$(ancestors).each(function(){
				result = result && this[expanded];
				if(!result) {return false;}
			});
		});
		return result;
	},
	isNodeLoaded : function(rc) {
		var result;
		this.each(function(){
			var $t = this;
			if(!$t.grid || !$t.p.treeGrid) {return;}
			var isLeaf = $t.p.treeReader.leaf_field,
			loaded = $t.p.treeReader.loaded;
			if(rc !== undefined ) {
				if(rc[loaded] !== undefined) {
					result = rc[loaded];
				} else if( rc[isLeaf] || $($t).jqGrid("getNodeChildren",rc).length > 0){
					result = true;
				} else {
					result = false;
				}
			} else {
				result = false;
			}
		});
		return result;
	},
	setLeaf : function (rc, state, collapsed) {
		return this.each(function(){
			var id = $.jgrid.getAccessor(rc,this.p.localReader.id),
			rc1 = $("#"+id,this.grid.bDiv)[0],
			isLeaf = this.p.treeReader.leaf_field;
			try {
				var dr = this.p._index[id];
				if(dr != null) {
					this.p.data[dr][isLeaf] = state;
				}
			} catch(E){}
			if(state === true) {
				// set it in data
				$("div.treeclick",rc1).removeClass(this.p.treeIcons.minus+" tree-minus "+this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.leaf +" tree-leaf");
			} else if(state === false) {
				var ico = this.p.treeIcons.minus+" tree-minus";
				if(collapsed) {
					ico = this.p.treeIcons.plus+" tree-plus";
				}
				$("div.treeclick",rc1).removeClass(this.p.treeIcons.leaf +" tree-leaf").addClass( ico );
			}	
		});
	},
	reloadNode: function(rc, reloadcurrent) {
		return this.each(function(){
			if(!this.grid || !this.p.treeGrid) {return;}
			var rid = this.p.localReader.id,
			currselection  = this.p.selrow;

			$(this).jqGrid("delChildren", rc[rid]);

			if(reloadcurrent=== undefined) {
				reloadcurrent = false;
			}
			
			if(!reloadcurrent) {
				if(!jQuery._data( this, "events" ).jqGridAfterSetTreeNode) {
					$(this).on("jqGridAfterSetTreeNode.reloadNode", function(){
						var isLeaf = this.p.treeReader.leaf_field;
						if(this.p.reloadnode ) {
							var rc = this.p.reloadnode,
							chld = $(this).jqGrid('getNodeChildren', rc);
							if(rc[isLeaf] && chld.length) {
								$(this).jqGrid('setLeaf', rc, false);
							} else if(!rc[isLeaf] && chld.length === 0) {
								$(this).jqGrid('setLeaf', rc, true);
							}
						}
						this.p.reloadnode = false;
					});
				}
			}
			var expanded = this.p.treeReader.expanded_field,
			parent = this.p.treeReader.parent_id_field,
			loaded = this.p.treeReader.loaded,
			level = this.p.treeReader.level_field,
			isLeaf = this.p.treeReader.leaf_field,
			lft = this.p.treeReader.left_field,
			rgt = this.p.treeReader.right_field;

			var id = $.jgrid.getAccessor(rc,this.p.localReader.id),
			rc1 = $("#"+id,this.grid.bDiv)[0];

			rc[expanded] = true;
			if(!rc[isLeaf]) {
				$("div.treeclick",rc1).removeClass(this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.minus+" tree-minus");
			}
			this.p.treeANode = rc1.rowIndex;
			this.p.datatype = this.p.treedatatype;
			this.p.reloadnode = rc;
			if(reloadcurrent) {
				this.p.treeANode = rc1.rowIndex > 0 ? rc1.rowIndex - 1 : 1;
				$(this).jqGrid('delRowData', id);
			}
			if(this.p.treeGridModel === 'nested') {
				$(this).jqGrid("setGridParam",{postData:{nodeid:id,n_left:rc[lft],n_right:rc[rgt],n_level:rc[level]}});
			} else {
				$(this).jqGrid("setGridParam",{postData:{nodeid:id,parentid:rc[parent],n_level:rc[level]}} );
			}
			$(this).trigger("reloadGrid");
			
			rc[loaded] = true;
			if(this.p.treeGridModel === 'nested') {
				$(this).jqGrid("setGridParam",{selrow: currselection, postData:{nodeid:'',n_left:'',n_right:'',n_level:''}});
			} else {
				$(this).jqGrid("setGridParam",{selrow: currselection, postData:{nodeid:'',parentid:'',n_level:''}});
			}
		});
	},
	expandNode : function(rc) {
		return this.each(function(){
			if(!this.grid || !this.p.treeGrid) {return;}
			var $t = this,
			expanded = this.p.treeReader.expanded_field,
			parent = this.p.treeReader.parent_id_field,
			loaded = this.p.treeReader.loaded,
			level = this.p.treeReader.level_field,
			lft = this.p.treeReader.left_field,
			rgt = this.p.treeReader.right_field;

			if(!rc[expanded]) {
				var id = $.jgrid.getAccessor(rc,this.p.localReader.id),
				rc1 = $("#" + this.p.idPrefix + $.jgrid.jqID(id),this.grid.bDiv)[0],
				position = this.p._index[id],
				ret = $($t).triggerHandler("jqGridBeforeExpandTreeGridNode", [id, rc]);
				if(ret === undefined ) {
					ret = true;
				}			
				if( ret && $.jgrid.isFunction(this.p.beforeExpandTreeGridNode) ) {
					ret =  this.p.beforeExpandTreeGridNode.call(this, id, rc );
				}
				if( ret === false ) { return; }

				if( $(this).jqGrid("isNodeLoaded",this.p.data[position]) ) {
					rc[expanded] = true;
					$("div.treeclick",rc1).removeClass(this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.minus+" tree-minus");
				} else if (!this.grid.hDiv.loading) {
					rc[expanded] = true;
					$("div.treeclick",rc1).removeClass(this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.minus+" tree-minus");
					this.p.treeANode = rc1.rowIndex;
					this.p.datatype = this.p.treedatatype;
					if(this.p.treeGridModel === 'nested') {
						$(this).jqGrid("setGridParam",{postData:{nodeid:id,n_left:rc[lft],n_right:rc[rgt],n_level:rc[level]}});
					} else {
						$(this).jqGrid("setGridParam",{postData:{nodeid:id,parentid:rc[parent],n_level:rc[level]}} );
					}
					$(this).trigger("reloadGrid");
					rc[loaded] = true;
					if(this.p.treeGridModel === 'nested') {
						$(this).jqGrid("setGridParam",{postData:{nodeid:'',n_left:'',n_right:'',n_level:''}});
					} else {
						$(this).jqGrid("setGridParam",{postData:{nodeid:'',parentid:'',n_level:''}}); 
					}
				}
				$($t).triggerHandler("jqGridAfterExpandTreeGridNode", [id, rc]);
				if($.jgrid.isFunction(this.p.afterExpandTreeGridNode)) {
					this.p.afterExpandTreeGridNode.call(this, id, rc );
				}
			}
		});
	},
	collapseNode : function(rc) {
		return this.each(function(){
			if(!this.grid || !this.p.treeGrid) {return;}
			var expanded = this.p.treeReader.expanded_field,
			$t = this;
			if(rc[expanded]) {
				var id = $.jgrid.getAccessor(rc,this.p.localReader.id),
				rc1 = $("#" + this.p.idPrefix + $.jgrid.jqID(id),this.grid.bDiv)[0],
				ret = $($t).triggerHandler("jqGridBeforeCollapseTreeGridNode", [id, rc]);
				if(ret === undefined ) {
					ret = true;
				}			
				if( ret &&  $.jgrid.isFunction(this.p.beforeCollapseTreeGridNode) ) {
					ret = this.p.beforeCollapseTreeGridNode.call(this, id, rc );
				}
				rc[expanded] = false;
				if( ret === false ) { return; }
				$("div.treeclick",rc1).removeClass(this.p.treeIcons.minus+" tree-minus").addClass(this.p.treeIcons.plus+" tree-plus");
				$($t).triggerHandler("jqGridAfterCollapseTreeGridNode", [id, rc]);
				if($.jgrid.isFunction(this.p.afterCollapseTreeGridNode)) {
					this.p.afterCollapseTreeGridNode.call(this, id, rc );
				}
			}
		});
	},
	SortTree : function( sortname, newDir, st, datefmt) {
		return this.each(function(){
			if(!this.grid || !this.p.treeGrid) {return;}
			var i, len,
			rec, records = [], $t = this, query, roots,
			rt = $(this).jqGrid("getRootNodes", $t.p.search);
			// Sorting roots
			query = $.jgrid.from.call(this, rt);
			// sort tree by node type
			if( Boolean($t.p.sortTreeByNodeType)) {
				var ord = ($t.p.sortTreeNodeOrder && $t.p.sortTreeNodeOrder.toLowerCase() === 'desc') ? 'd' : 'a'; 
				query.orderBy($t.p.treeReader.leaf_field, ord, st, datefmt);
			}
			query.orderBy(sortname, newDir, st, datefmt);
			roots = query.select();
			// Sorting children
			for (i = 0, len = roots.length; i < len; i++) {
				rec = roots[i];
				records.push(rec);
				$(this).jqGrid("collectChildrenSortTree",records, rec, sortname, newDir, st, datefmt);
			}
			var ids = $(this).jqGrid("getDataIDs"), j=1;
			$.each(records, function(index) {
				var id  = $.jgrid.getAccessor(this, $t.p.localReader.id);
				if($.inArray(id, ids) !== -1) {
					$('#'+$.jgrid.jqID($t.p.id)+ ' tbody tr').eq( j ).after($('#'+$.jgrid.jqID($t.p.id)+' tbody tr#'+$.jgrid.jqID(id)));
					j++;
				}
			});
			query = null;roots=null;records=null;
		});
	},
	searchTree : function ( recs ) {
		var n = recs.length || 0, ancestors=[], lid, roots=[], result=[],tid, alen, rlen, j, k, i;
		this.each(function(){
			if(!this.grid || !this.p.treeGrid) {
				return;
			}
			if(n) {
				lid = this.p.localReader.id;
				//while( i-- ) { // reverse 
				for( i=0; i<n; i++ ) {
					ancestors = $(this).jqGrid('getNodeAncestors', recs[i], true, true);
					//add the searched item
					if( Boolean(this.p.FullTreeSearchResult) ) {
						var fnode = $(this).jqGrid('getFullTreeNode', recs[i], true);
						ancestors = ancestors.concat(fnode);
					} else {
						ancestors.push(recs[i]);
					}
					tid = ancestors[0][lid]; 
					if($.inArray(tid, roots ) !== -1) { // ignore repeated, but add missing
						for( j = 0, alen = ancestors.length; j < alen; j++) {
							//$.inArray ?!?
							var found = false;
							for( k=0, rlen = result.length; k < rlen; k++) {
								if(ancestors[j][lid] === result[k][lid]) {
									found = true;
									break;
								}
							}
							if(!found) {
								result.push(ancestors[j]);
							}
						}
							continue;
					} else {
						roots.push( tid );
					}
					result = result.concat( ancestors );
				}	
			}
		});
		return result;
	},
	collectChildrenSortTree : function(records, rec, sortname, newDir,st, datefmt) {
		return this.each(function(){
			if(!this.grid || !this.p.treeGrid) {return;}
			var i, len,
			child, ch, query, children;
			ch = $(this).jqGrid("getNodeChildren",rec, this.p.search);
			query = $.jgrid.from.call(this, ch);
			query.orderBy(sortname, newDir, st, datefmt);
			children = query.select();
			for (i = 0, len = children.length; i < len; i++) {
				child = children[i];
				records.push(child);
				$(this).jqGrid("collectChildrenSortTree",records, child, sortname, newDir, st, datefmt); 
			}
		});
	},
	// experimental 
	setTreeRow : function(rowid, data) {
		var success=false;
		this.each(function(){
			var t = this;
			if(!t.grid || !t.p.treeGrid) {return;}
			success = $(t).jqGrid("setRowData", rowid, data);
		});
		return success;
	},
	delTreeNode : function (rowid, reload) {
		return this.each(function () {
			var $t = this, rid = $t.p.localReader.id, i,
			left = $t.p.treeReader.left_field, parent,
			right = $t.p.treeReader.right_field, myright, width, res, key;
			if(!$t.grid || !$t.p.treeGrid) {return;}
			rowid = $.jgrid.stripPref($t.p.idPrefix, rowid);
			var rc = $t.p._index[rowid];
			if(typeof reload === undefined) {
				reload = false;
			}
			if(reload) {
				parent = $(this).jqGrid("getNodeParent",$t.p.data[rc]);
			}
			if (rc !== undefined) {
				// nested
				myright = parseInt($t.p.data[rc][right],10);
				width = myright -  parseInt($t.p.data[rc][left],10) + 1;
				var dr = $($t).jqGrid("getFullTreeNode",$t.p.data[rc]);
				if(dr.length>0){
					for (i=0;i<dr.length;i++){
						$($t).jqGrid("delRowData", $t.p.idPrefix + dr[i][rid]);
					}
				}
				if( $t.p.treeGridModel === "nested") {
					// ToDo - update grid data
					res = $.jgrid.from.call($t, $t.p.data)
						.greater(left,myright,{stype:'integer'})
						.select();
					if(res.length) {
						for( key in res) {
							if(res.hasOwnProperty(key)) {
								res[key][left] = parseInt(res[key][left],10) - width ;
							}
						}
					}
					res = $.jgrid.from.call($t, $t.p.data)
						.greater(right,myright,{stype:'integer'})
						.select();
					if(res.length) {
						for( key in res) {
							if(res.hasOwnProperty(key)) {
								res[key][right] = parseInt(res[key][right],10) - width ;
							}
						}
					}
				}
				if(reload) {
					var isLeaf = this.p.treeReader.leaf_field;
					var chld = $(this).jqGrid('getNodeChildren', parent);
					if(parent[isLeaf] && chld.length) {
						$(this).jqGrid('setLeaf', parent, false);
					} else if(!rc[isLeaf] && chld.length === 0) {
						$(this).jqGrid('setLeaf', parent, true);
					}
				}
			}
		});
	},
	delChildren : function (rowid) {
		return this.each(function () {
			var $t = this, rid = $t.p.localReader.id,
			left = $t.p.treeReader.left_field,
			right = $t.p.treeReader.right_field, myright, width, res, key;
			if(!$t.grid || !$t.p.treeGrid) {return;}
			rowid = $.jgrid.stripPref($t.p.idPrefix, rowid);
			var rc = $t.p._index[rowid];
			if (rc !== undefined) {
				// nested
				myright = parseInt($t.p.data[rc][right],10);
				width = myright -  parseInt($t.p.data[rc][left],10) + 1;
				var dr = $($t).jqGrid("getFullTreeNode",$t.p.data[rc]);
				if(dr.length>0){
					for (var i=0;i<dr.length;i++){
						if(dr[i][rid] !== rowid)
							$($t).jqGrid("delRowData", $t.p.idPrefix + dr[i][rid]);
					}
				}
				if( $t.p.treeGridModel === "nested") {
					// ToDo - update grid data
					res = $.jgrid.from($t.p.data)
						.greater(left,myright,{stype:'integer'})
						.select();
					if(res.length) {
						for( key in res) {
							if(res.hasOwnProperty(key)) {
								res[key][left] = parseInt(res[key][left],10) - width ;
							}
						}
					}
					res = $.jgrid.from($t.p.data)
						.greater(right,myright,{stype:'integer'})
						.select();
					if(res.length) {
						for( key in res) {
							if(res.hasOwnProperty(key)) {
								res[key][right] = parseInt(res[key][right],10) - width ;
							}
						}
					}
				}
			}
		});
	},
	addChildNode : function( nodeid, parentid, data, expandData ) {
		//return this.each(function(){
		var $t = this[0];
		if(data) {
			// we suppose tha the id is autoincremet and
			var expanded = $t.p.treeReader.expanded_field,
			isLeaf = $t.p.treeReader.leaf_field,
			level = $t.p.treeReader.level_field,
			//icon = $t.p.treeReader.icon_field,
			parent = $t.p.treeReader.parent_id_field,
			left = $t.p.treeReader.left_field,
			right = $t.p.treeReader.right_field,
			loaded = $t.p.treeReader.loaded,
			method, parentindex, parentdata, parentlevel, i, len, max=0, rowind = parentid, leaf, maxright;
			if(expandData===undefined) {expandData = false;}
			if ( nodeid == null ) {
				i = $t.p.data.length-1;
				if(	i>= 0 ) {
					while(i>=0){max = Math.max(max, parseInt($t.p.data[i][$t.p.localReader.id],10)); i--;}
				}
				nodeid = max+1;
			}
			var prow = $($t).jqGrid('getInd', parentid);
			leaf = false;
			// if not a parent we assume root
			if ( parentid === undefined  || parentid === null || parentid==="") {
				parentid = null;
				rowind = null;
				method = 'last';
				parentlevel = $t.p.tree_root_level;
				i = $t.p.data.length+1;
			} else {
				method = 'after';
				var mid = $.jgrid.stripPref($t.p.idPrefix, parentid);
				parentindex = $t.p._index[mid];
				parentdata = $t.p.data[parentindex];
				parentid = parentdata[$t.p.localReader.id];
				parentlevel = parseInt(parentdata[level],10)+1;
				var childs = $($t).jqGrid('getFullTreeNode', parentdata);
				// if there are child nodes get the last index of it
				if(childs.length) {
					i = childs[childs.length-1][$t.p.localReader.id];
					rowind = i;
					i = $($t).jqGrid('getInd',  $t.p.idPrefix + rowind);
				} else {
					i = $($t).jqGrid('getInd',  $t.p.idPrefix + parentid);
				}
				// if the node is leaf
				if(parentdata[isLeaf]) {
					leaf = true;
					parentdata[expanded] = true;
					//var prow = $($t).jqGrid('getInd', parentid);
					$($t.rows[prow])
						.find("span.cell-wrapperleaf").removeClass("cell-wrapperleaf").addClass("cell-wrapper")
						.end()
						.find("div.tree-leaf").removeClass($t.p.treeIcons.leaf+" tree-leaf").addClass($t.p.treeIcons.minus+" tree-minus");
					$t.p.data[parentindex][isLeaf] = false;
					parentdata[loaded] = true;
				}
				// incremet th index of child to be inserted
				if( i === false ) {
					throw "Parent item with id: " + rowind + " ("+ parentid+") can't be found";
					//return;
				} else {
					i++;
				}
			}
			len = i+1;

			if( data[expanded]===undefined)  {data[expanded]= false;}
			if( data[loaded]===undefined )  { data[loaded] = false;}
			data[level] = parentlevel;
			if( data[isLeaf]===undefined) {data[isLeaf]= true;}
			if( $t.p.treeGridModel === "adjacency") {
				data[parent] = parentid;
			}
			if( $t.p.treeGridModel === "nested") {
				// this method requiere more attention
				var query, res, key;
				//maxright = parseInt(maxright,10);
				// ToDo - update grid data
				if(parentid !== null) {
					maxright = parseInt(parentdata[right],10);
					query = $.jgrid.from.call($t, $t.p.data);
					query = query.greaterOrEquals(right,maxright,{stype:'integer'});
					res = query.select();
					if(res.length) {
						for( key in res) {
							if(res.hasOwnProperty(key)) {
								res[key][left] = res[key][left] > maxright ? parseInt(res[key][left],10) +2 : res[key][left];
								res[key][right] = res[key][right] >= maxright ? parseInt(res[key][right],10) +2 : res[key][right];
							}
						}
					}
					data[left] = maxright;
					data[right]= maxright+1;
				} else {
					maxright = parseInt( $($t).jqGrid('getCol', right, false, 'max'), 10);
					res = $.jgrid.from.call($t, $t.p.data)
						.greater(left,maxright,{stype:'integer'})
						.select();
					if(res.length) {
						for( key in res) {
							if(res.hasOwnProperty(key)) {
								res[key][left] = parseInt(res[key][left],10) +2 ;
							}
						}
					}
					res = $.jgrid.from.call($t, $t.p.data)
						.greater(right,maxright,{stype:'integer'})
						.select();
					if(res.length) {
						for( key in res) {
							if(res.hasOwnProperty(key)) {
								res[key][right] = parseInt(res[key][right],10) +2 ;
							}
						}
					}
					data[left] = maxright+1;
					data[right] = maxright + 2;
				}
			}
			if( parentid === null || $($t).jqGrid("isNodeLoaded",parentdata) || leaf ) {
					$($t).jqGrid('addRowData', nodeid, data, method, $t.p.idPrefix + rowind);
					$($t).jqGrid('setTreeNode', i, len);
			}
			if(parentdata && !parentdata[expanded] && expandData) {
				$($t.rows[prow])
					.find("div.treeclick")
					.click();
			}
		}
		//});
	}
});

//module begin
$.fn.jqDrag=function(h){return i(this,h,'d');};
$.fn.jqResize=function(h,ar){return i(this,h,'r',ar);};
$.jqDnR={
	dnr:{},
	e:0,
	drag:function(v){
		if(M.k == 'd'){E.css({left:M.X+v.pageX-M.pX,top:M.Y+v.pageY-M.pY});}
		else {
			E.css({width:Math.max(v.pageX-M.pX+M.W,0),height:Math.max(v.pageY-M.pY+M.H,0)});
			if(M1){E1.css({width:Math.max(v.pageX-M1.pX+M1.W,0),height:Math.max(v.pageY-M1.pY+M1.H,0)});}
		}
		return false;
	},
	stop:function(){
		//E.css('opacity',M.o);
		$(document).off('mousemove',J.drag).off('mouseup',J.stop);
	}
};
var J=$.jqDnR,M=J.dnr,E=J.e,E1,M1,
i=function(e,h,k,aR){
	return e.each(function(){
		h=(h)?$(h,e):e;
		h.on('mousedown',{e:e,k:k},function(v){
			var d=v.data,p={};E=d.e;E1 = aR ? $(aR) : false;
			// attempt utilization of dimensions plugin to fix IE issues
			if(E.css('position') != 'relative'){try{E.position(p);}catch(e){}}
			M={
				X:p.left||f('left')||0,
				Y:p.top||f('top')||0,
				W:f('width')||E[0].scrollWidth||0,
				H:f('height')||E[0].scrollHeight||0,
				pX:v.pageX,
				pY:v.pageY,
				k:d.k
				//o:E.css('opacity')
			};
			// also resize
			if(E1 && d.k != 'd'){
				M1={
					X:p.left||f1('left')||0,
					Y:p.top||f1('top')||0,
					W:E1[0].offsetWidth||f1('width')||0,
					H:E1[0].offsetHeight||f1('height')||0,
					pX:v.pageX,
					pY:v.pageY,
					k:d.k
				};
			} else {M1 = false;}			
			//E.css({opacity:0.8});
			if($("input.hasDatepicker",E[0])[0]) {
			try {$("input.hasDatepicker",E[0]).datepicker('hide');}catch (dpe){}
			}
			$(document).mousemove($.jqDnR.drag).mouseup($.jqDnR.stop);
			return false;
		});
	});
},
f=function(k){return parseInt(E.css(k),10)||false;},
f1=function(k){return parseInt(E1.css(k),10)||false;};
/*
	jQuery tinyDraggable v1.0.2
    Copyright (c) 2014 Simon Steinberger / Pixabay
    GitHub: https://github.com/Pixabay/jQuery-tinyDraggable
    More info: https://pixabay.com/blog/posts/p-52/
	License: http://www.opensource.org/licenses/mit-license.php
*/
$.fn.tinyDraggable = function(options){
	var settings = $.extend({ handle: 0, exclude: 0 }, options);
	return this.each(function(){
	    var dx, dy, el = $(this), handle = settings.handle ? $(settings.handle, el) : el;
        handle.on({
        mousedown: function(e){
			if (settings.exclude && ~$.inArray(e.target, $(settings.exclude, el))) { return; }
			e.preventDefault();
			var os = el.offset(); dx = e.pageX-os.left, dy = e.pageY-os.top;
			$(document).on('mousemove.drag', function(e){ el.offset({top: e.pageY-dy, left: e.pageX-dx}); });
			},
			mouseup: function(e){ $(document).off('mousemove.drag'); }
		});
	});
};

//module begin
$.fn.jqm=function(o){
var p={
overlay: 50,
closeoverlay : true,
overlayClass: 'jqmOverlay',
closeClass: 'jqmClose',
trigger: '.jqModal',
ajax: F,
ajaxText: '',
target: F,
modal: F,
toTop: F,
onShow: F,
onHide: F,
onLoad: F
};
return this.each(function(){if(this._jqm){ return H[this._jqm].c=$.extend({},H[this._jqm].c,o);} s++;this._jqm=s;
H[s]={c:$.extend(p,$.jqm.params,o),a:F,w:$(this).addClass('jqmID'+s),s:s};
if(p.trigger){$(this).jqmAddTrigger(p.trigger);}
});};

$.fn.jqmAddClose=function(e){return hs(this,e,'jqmHide');};
$.fn.jqmAddTrigger=function(e){return hs(this,e,'jqmShow');};
$.fn.jqmShow=function(t){return this.each(function(){$.jqm.open(this._jqm,t);});};
$.fn.jqmHide=function(t){return this.each(function(){$.jqm.close(this._jqm,t);});};

$.jqm = {
hash:{},
open:function(s,t){var h=H[s],c=h.c,cc='.'+c.closeClass,z=(parseInt(h.w.css('z-index')));z=(z>0)?z:3000;var o=$('<div></div>').css({height:'100%',width:'100%',position:'fixed',left:0,top:0,'z-index':z-1,opacity:c.overlay/100});if(h.a){return F;} h.t=t;h.a=true;h.w.css('z-index',z);
 if(c.modal) {if(!A[0]){setTimeout(function(){ new L('bind');},1); }A.push(s);}
 else if(c.overlay > 0) {if(c.closeoverlay) {h.w.jqmAddClose(o);}}
 else {o=F;}

 h.o=(o)?o.addClass(c.overlayClass).prependTo('body'):F;

 if(c.ajax) {var r=c.target||h.w,u=c.ajax;r=(typeof r === 'string')?$(r,h.w):$(r);u=(u.substr(0,1) === '@')?$(t).attr(u.substring(1)):u;
  r.html(c.ajaxText).load(u,function(){if(c.onLoad){c.onLoad.call(this,h);}if(cc){h.w.jqmAddClose($(cc,h.w));}e(h);});}
 else if(cc){h.w.jqmAddClose($(cc,h.w));}

 if(c.toTop&&h.o){h.w.before('<span id="jqmP'+h.w[0]._jqm+'"></span>').insertAfter(h.o);}
 (c.onShow)?c.onShow(h):h.w.show();e(h);return F;
},
close:function(s){var h=H[s];if(!h.a){return F;}h.a=F;
 if(A[0]){A.pop();if(!A[0]){new L('unbind');}}
 if(h.c.toTop&&h.o){$('#jqmP'+h.w[0]._jqm).after(h.w).remove();}
 if(h.c.onHide){h.c.onHide(h);}else{h.w.hide();if(h.o){h.o.remove();}} return F;
},
params:{}};
var s=0,H=$.jqm.hash,A=[],F=false,
e=function(h){ if(h.c.focusField===undefined) {h.c.focusField = 0;}if(h.c.focusField >=0 ) {f(h);} },
f=function(h){try{$(':input:visible',h.w)[parseInt(h.c.focusField,10)].focus();	}catch(_){}},
L=function(t){$(document)[t]("keypress",m)[t]("keydown",m)[t]("mousedown",m);},
m=function(e){var h=H[A[A.length-1]],r=(!$(e.target).parents('.jqmID'+h.s)[0]);if(r){$('.jqmID'+h.s).each(function(){var $self=$(this),offset=$self.offset();if(offset.top<=e.pageY && e.pageY<=offset.top+$self.height() && offset.left<=e.pageX && e.pageX<=offset.left+$self.width() ){r=false;return false;}});/*f(h);*/}return !r;},
hs=function(w,t,c){return w.each(function(){var s=this._jqm;$(t).each(function() {
 if(!this[c]){this[c]=[];$(this).click(function(){for(var i in {jqmShow:1,jqmHide:1}){for(var s in this[i]){if(H[this[i][s]]){H[this[i][s]].w[i](this);}}}return F;});}
 this[c].push(s);});});};

//module begin
	$.fmatter = {};
	//opts can be id:row id for the row, rowdata:the data for the row, colmodel:the column model for this column
	//example {id:1234,}
	$.extend($.fmatter,{
		isBoolean : function(o) {
			return typeof o === 'boolean';
		},
		isObject : function(o) {
			return (o && (typeof o === 'object' || $.jgrid.isFunction(o))) || false;
		},
		isString : function(o) {
			return typeof o === 'string';
		},
		isNumber : function(o) {
			return typeof o === 'number' && isFinite(o);
		},
		isValue : function (o) {
			return (this.isObject(o) || this.isString(o) || this.isNumber(o) || this.isBoolean(o));
		},
		isEmpty : function(o) {
			if(!this.isString(o) && this.isValue(o)) {
				return false;
			}
			if (!this.isValue(o)){
				return true;
			}
			o = $.jgrid.trim(o).replace(/\&nbsp\;/ig,'').replace(/\&#160\;/ig,'');
			return o==="";	
		}
	});
	$.fn.fmatter = function(formatType, cellval, opts, rwd, act) {
		// build main options before element iteration
		var v=cellval;
		opts = $.extend({}, $.jgrid.getRegional(this, 'formatter') , opts);

		try {
			v = $.fn.fmatter[formatType].call(this, cellval, opts, rwd, act);
		} catch(fe){}
		return v;
	};
	$.fmatter.util = {
		// Taken from YAHOO utils
		NumberFormat : function(nData,opts) {
			if(!$.fmatter.isNumber(nData)) {
				nData *= 1;
			}
			if($.fmatter.isNumber(nData)) {
				var bNegative = (nData < 0);
				var sOutput = String(nData);
				var sDecimalSeparator = opts.decimalSeparator || ".";
				var nDotIndex;
				if($.fmatter.isNumber(opts.decimalPlaces)) {
					// Round to the correct decimal place
					var nDecimalPlaces = opts.decimalPlaces;
					//var nDecimal = Math.pow(10, nDecimalPlaces);
					//sOutput = String(Math.round(nData*nDecimal)/nDecimal);
					// see http://www.jacklmoore.com/notes/rounding-in-javascript/
					sOutput = String(Number(Math.round(nData+'e'+nDecimalPlaces)+'e-'+nDecimalPlaces));
					nDotIndex = sOutput.lastIndexOf(".");
					if(nDecimalPlaces > 0) {
					// Add the decimal separator
						if(nDotIndex < 0) {
							sOutput += sDecimalSeparator;
							nDotIndex = sOutput.length-1;
						}
						// Replace the "."
						else if(sDecimalSeparator !== "."){
							sOutput = sOutput.replace(".",sDecimalSeparator);
						}
					// Add missing zeros
						while((sOutput.length - 1 - nDotIndex) < nDecimalPlaces) {
							sOutput += "0";
						}
					}
				}
				if(opts.thousandsSeparator) {
					var sThousandsSeparator = opts.thousandsSeparator;
					nDotIndex = sOutput.lastIndexOf(sDecimalSeparator);
					nDotIndex = (nDotIndex > -1) ? nDotIndex : sOutput.length;
					var sNewOutput = sOutput.substring(nDotIndex);
					var nCount = -1, i;
					for (i=nDotIndex; i>0; i--) {
						nCount++;
						if ((nCount%3 === 0) && (i !== nDotIndex) && (!bNegative || (i > 1))) {
							sNewOutput = sThousandsSeparator + sNewOutput;
						}
						sNewOutput = sOutput.charAt(i-1) + sNewOutput;
					}
					sOutput = sNewOutput;
				}
				// Prepend prefix
				sOutput = (opts.prefix) ? opts.prefix + sOutput : sOutput;
				// Append suffix
				sOutput = (opts.suffix) ? sOutput + opts.suffix : sOutput;
				return sOutput;
				
			}
			return nData;
		}
	};
	$.fn.fmatter.defaultFormat = function(cellval, opts) {
		return ($.fmatter.isValue(cellval) && cellval!=="" ) ?  cellval : opts.defaultValue || "&#160;";
	};
	$.fn.fmatter.email = function(cellval, opts) {
		if(!$.fmatter.isEmpty(cellval)) {
			return "<a href=\"mailto:" + cellval + "\">" + cellval + "</a>";
		}
		return $.fn.fmatter.defaultFormat(cellval,opts );
	};
	$.fn.fmatter.checkbox =function(cval, opts) {
		var op = $.extend({},opts.checkbox), ds, checkboxVal, valtrue, valfalse, lang = Object.keys($.jgrid.regional)[0], title;
		if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {
			op = $.extend({},op,opts.colModel.formatoptions);
		}
		if(op.disabled===true) {ds = "disabled=\"disabled\"";} else {ds="";}
		if($.fmatter.isEmpty(cval) || cval === undefined ) {cval = $.fn.fmatter.defaultFormat(cval,op);}
		cval=String(cval);
		cval=(cval+"").toLowerCase();
		var bchk = cval.search(/(false|f|0|no|n|off|undefined)/i)<0 ? " checked='checked' " : "";
		checkboxVal = $.jgrid.regional[lang].defaults.valueCheckbox;
		valtrue= $.jgrid.regional[lang].defaults.valT;	
		valfalse= $.jgrid.regional[lang].defaults.valF;
		if((checkboxVal !== undefined) && (cval==="true")) {
			title = checkboxVal + " " + valtrue;
		}
		else if (checkboxVal !== undefined && cval==="false") {
			title = checkboxVal+ " " + valfalse;
		}
		else {
			title = cval;
		}
		return "<input title=\""+title+"\" type=\"checkbox\" " + bchk  + " value=\""+ cval+"\" offval=\"no\" "+ds+ "/>";
	};
	$.fn.fmatter.link = function(cellval, opts) {
		var op = {target:opts.target};
		var target = "";
		if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {
			op = $.extend({},op,opts.colModel.formatoptions);
		}
		if(op.target) {target = 'target=' + op.target;}
		if(!$.fmatter.isEmpty(cellval)) {
			return "<a "+target+" href=\"" + cellval + "\">" + cellval + "</a>";
		}
		return $.fn.fmatter.defaultFormat(cellval,opts);
	};
	$.fn.fmatter.showlink = function(cellval, opts) {
		var op = {baseLinkUrl: opts.baseLinkUrl,showAction:opts.showAction, addParam: opts.addParam || "", target: opts.target, idName: opts.idName},
		target = "", idUrl;
		if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {
			op = $.extend({},op,opts.colModel.formatoptions);
		}
		if(op.target) {target = 'target=' + op.target;}
		idUrl = op.baseLinkUrl+op.showAction + '?'+ op.idName+'='+opts.rowId+op.addParam;
		if($.fmatter.isString(cellval) || $.fmatter.isNumber(cellval)) {	//add this one even if its blank string
			return "<a "+target+" href=\"" + idUrl + "\">" + cellval + "</a>";
		}
		return $.fn.fmatter.defaultFormat(cellval,opts);
	};
	$.fn.fmatter.integer = function(cellval, opts) {
		var op = $.extend({},opts.integer);
		if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {
			op = $.extend({},op,opts.colModel.formatoptions);
		}
		if($.fmatter.isEmpty(cellval)) {
			return op.defaultValue;
		}
		return $.fmatter.util.NumberFormat(cellval,op);
	};
	$.fn.fmatter.number = function (cellval, opts) {
		var op = $.extend({},opts.number);
		if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {
			op = $.extend({},op,opts.colModel.formatoptions);
		}
		if($.fmatter.isEmpty(cellval)) {
			return op.defaultValue;
		}
		return $.fmatter.util.NumberFormat(cellval,op);
	};
	$.fn.fmatter.currency = function (cellval, opts) {
		var op = $.extend({},opts.currency);
		if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {
			op = $.extend({},op,opts.colModel.formatoptions);
		}
		if($.fmatter.isEmpty(cellval)) {
			return op.defaultValue;
		}
		return $.fmatter.util.NumberFormat(cellval,op);
	};
	$.fn.fmatter.date = function (cellval, opts, rwd, act) {
		var op = $.extend({},opts.date);
		if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {
			op = $.extend({},op,opts.colModel.formatoptions);
		}
		if(!op.reformatAfterEdit && act === 'edit'){
			return $.fn.fmatter.defaultFormat(cellval, opts);
		}
		if(!$.fmatter.isEmpty(cellval)) {
			return $.jgrid.parseDate.call(this, op.srcformat,cellval,op.newformat,op);
		}
		return $.fn.fmatter.defaultFormat(cellval, opts);
	};
	$.fn.fmatter.select = function (cellval,opts) {
		// jqGrid specific
		cellval = String(cellval);
		var oSelect = false, ret=[], sep, delim;
		if(opts.colModel.formatoptions !== undefined){
			oSelect= opts.colModel.formatoptions.value;
			sep = opts.colModel.formatoptions.separator === undefined ? ":" : opts.colModel.formatoptions.separator;
			delim = opts.colModel.formatoptions.delimiter === undefined ? ";" : opts.colModel.formatoptions.delimiter;
		} else if(opts.colModel.editoptions !== undefined){
			oSelect= opts.colModel.editoptions.value;
			sep = opts.colModel.editoptions.separator === undefined ? ":" : opts.colModel.editoptions.separator;
			delim = opts.colModel.editoptions.delimiter === undefined ? ";" : opts.colModel.editoptions.delimiter;
		}
		if (oSelect) {
			var	msl =  (opts.colModel.editoptions != null && opts.colModel.editoptions.multiple === true) === true ? true : false,
			scell = [], sv;
			if(msl) {scell = cellval.split(",");scell = $.map(scell,function(n){return $.jgrid.trim(n);});}
			if ($.fmatter.isString(oSelect)) {
				// mybe here we can use some caching with care ????
				var so = oSelect.split(delim), j=0, i;
				for(i=0; i<so.length;i++){
					sv = so[i].split(sep);
					if(sv.length > 2 ) {
						sv[1] = $.map(sv,function(n,i){if(i>0) {return n;}}).join(sep);
					}
					if(msl) {
						if($.inArray(sv[0],scell)>-1) {
							ret[j] = sv[1];
							j++;
						}
					} else if($.jgrid.trim(sv[0]) === $.jgrid.trim(cellval)) {
						ret[0] = sv[1];
						break;
					}
				}
			} else if($.fmatter.isObject(oSelect)) {
				// this is quicker
				if(msl) {
					ret = $.map(scell, function(n){
						return oSelect[n];
					});
				} else {
					ret[0] = oSelect[cellval] || "";
				}
			}
		}
		cellval = ret.join(", ");
		return  cellval === "" ? $.fn.fmatter.defaultFormat(cellval,opts) : cellval;
	};
	$.fn.fmatter.rowactions = function(act) {
		var $tr = $(this).closest("tr.jqgrow"),
			rid = $tr.attr("id"),
			$id = $(this).closest("table.ui-jqgrid-btable").attr('id').replace(/_frozen([^_]*)$/,'$1'),
			$grid = $("#"+$id),
			$t = $grid[0],
			p = $t.p,
			cm = p.colModel[$.jgrid.getCellIndex(this)],
			$actionsDiv = cm.frozen ? $("tr#"+rid+" td", $grid).eq( $.jgrid.getCellIndex(this) ).find("> div") :$(this).parent(),
			op = {
				extraparam: {}
			},
			saverow = function(rowid, res) {
				if($.jgrid.isFunction(op.afterSave)) { op.afterSave.call($t, rowid, res); }
				$actionsDiv.find("div.ui-inline-edit,div.ui-inline-del").show();
				$actionsDiv.find("div.ui-inline-save,div.ui-inline-cancel").hide();
			},
			restorerow = function(rowid) {
				if($.jgrid.isFunction(op.afterRestore)) { op.afterRestore.call($t, rowid); }
				$actionsDiv.find("div.ui-inline-edit,div.ui-inline-del").show();
				$actionsDiv.find("div.ui-inline-save,div.ui-inline-cancel").hide();
			};

		if (cm.formatoptions !== undefined) {
			// Deep clone before copying over to op, to avoid creating unintentional references.
			// Otherwise, the assignment of op.extraparam[p.prmNames.oper] below may persist into the colModel config.
			var formatoptionsClone = $.extend(true, {}, cm.formatoptions);
			op = $.extend(op, formatoptionsClone);
		}
		if (p.editOptions !== undefined) {
			op.editOptions = p.editOptions;
		}
		if (p.delOptions !== undefined) {
			op.delOptions = p.delOptions;
		}
		if ($tr.hasClass("jqgrid-new-row")){
			op.extraparam[p.prmNames.oper] = p.prmNames.addoper;
		}
		var actop = {
			keys: op.keys,
			oneditfunc: op.onEdit,
			successfunc: op.onSuccess,
			url: op.url,
			extraparam: op.extraparam,
			aftersavefunc: saverow,
			errorfunc: op.onError,
			afterrestorefunc: restorerow,
			restoreAfterError: op.restoreAfterError,
			mtype: op.mtype
		};
		switch(act)
		{
			case 'edit':
				$grid.jqGrid('editRow', rid, actop);
				if($grid[0].p.beforeAction) {
					$actionsDiv.find("div.ui-inline-edit,div.ui-inline-del").hide();
					$actionsDiv.find("div.ui-inline-save,div.ui-inline-cancel").show();
					$grid.triggerHandler("jqGridAfterGridComplete");
				}
				break;
			case 'save':
				if ($grid.jqGrid('saveRow', rid, actop)) {
					$actionsDiv.find("div.ui-inline-edit,div.ui-inline-del").show();
					$actionsDiv.find("div.ui-inline-save,div.ui-inline-cancel").hide();
					$grid.triggerHandler("jqGridAfterGridComplete");
				}
				break;
			case 'cancel' :
				$grid.jqGrid('restoreRow', rid, restorerow);
				$actionsDiv.find("div.ui-inline-edit,div.ui-inline-del").show();
				$actionsDiv.find("div.ui-inline-save,div.ui-inline-cancel").hide();
				$grid.triggerHandler("jqGridAfterGridComplete");
				break;
			case 'del':
				$grid.jqGrid('delGridRow', rid, op.delOptions);
				break;
			case 'formedit':
				$grid.jqGrid('setSelection', rid);
				$grid.jqGrid('editGridRow', rid, op.editOptions);
				break;
		}
	};
	$.fn.fmatter.actions = function(cellval,opts) {
		var op={keys:false, editbutton:true, delbutton:true, editformbutton: false},
			rowid=opts.rowId, str="",ocl,
			nav = $.jgrid.getRegional(this, 'nav'),
			classes = $.jgrid.styleUI[(opts.styleUI || 'jQueryUI')].fmatter,
			common = $.jgrid.styleUI[(opts.styleUI || 'jQueryUI')].common;
		if(opts.colModel.formatoptions !== undefined) {
			op = $.extend(op,opts.colModel.formatoptions);
		}
		if(rowid === undefined || $.fmatter.isEmpty(rowid)) {return "";}
		var hover = "onmouseover=jQuery(this).addClass('" + common.hover +"'); onmouseout=jQuery(this).removeClass('" + common.hover +"');  ";
		if(op.editformbutton){ 
			ocl = "id='jEditButton_"+rowid+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'formedit'); " + hover;
			str += "<div title='"+nav.edittitle+"' style='float:left;cursor:pointer;' class='ui-pg-div ui-inline-edit' "+ocl+"><span class='" + common.icon_base +" "+classes.icon_edit +"'></span></div>";
		} else if(op.editbutton){
			ocl = "id='jEditButton_"+rowid+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'edit'); " + hover;
			str += "<div title='"+nav.edittitle+"' style='float:left;cursor:pointer;' class='ui-pg-div ui-inline-edit' "+ocl+"><span class='" + common.icon_base +" "+classes.icon_edit +"'></span></div>";
		}
		if(op.delbutton) {
			ocl = "id='jDeleteButton_"+rowid+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'del'); " + hover;
			str += "<div title='"+nav.deltitle+"' style='float:left;' class='ui-pg-div ui-inline-del' "+ocl+"><span class='" + common.icon_base +" "+classes.icon_del +"'></span></div>";
		}
		ocl = "id='jSaveButton_"+rowid+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'save'); " + hover;
		str += "<div title='"+nav.savetitle+"' style='float:left;display:none' class='ui-pg-div ui-inline-save' "+ocl+"><span class='" + common.icon_base +" "+classes.icon_save +"'></span></div>";
		ocl = "id='jCancelButton_"+rowid+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'cancel'); " + hover;
		str += "<div title='"+nav.canceltitle+"' style='float:left;display:none;' class='ui-pg-div ui-inline-cancel' "+ocl+"><span class='" + common.icon_base +" "+classes.icon_cancel +"'></span></div>";
		return "<div  class='jqgrid_actions' style='margin-left:8px;'>" + str + "</div>";
	};
	$.unformat = function (cellval,options,pos,cnt) {
		// specific for jqGrid only
		var ret, formatType = options.colModel.formatter,
		op =options.colModel.formatoptions || {}, sep,
		re = /([\.\*\_\'\(\)\{\}\+\?\\])/g,
		unformatFunc = options.colModel.unformat||($.fn.fmatter[formatType] && $.fn.fmatter[formatType].unformat);
		if(unformatFunc !== undefined && $.jgrid.isFunction(unformatFunc) ) {
			ret = unformatFunc.call(this, $(cellval).text(), options, cellval);
		} else if(formatType !== undefined && $.fmatter.isString(formatType) ) {
			var opts = $.jgrid.getRegional(this, 'formatter') || {}, stripTag;
			switch(formatType) {
				case 'integer' :
					op = $.extend({},opts.integer,op);
					sep = op.thousandsSeparator.replace(re,"\\$1");
					stripTag = new RegExp(sep, "g");
					ret = $(cellval).text().replace(stripTag,'');
					break;
				case 'number' :
					op = $.extend({},opts.number,op);
					sep = op.thousandsSeparator.replace(re,"\\$1");
					stripTag = new RegExp(sep, "g");
					ret = $(cellval).text().replace(stripTag,"").replace(op.decimalSeparator,'.');
					break;
				case 'currency':
					op = $.extend({},opts.currency,op);
					sep = op.thousandsSeparator.replace(re,"\\$1");
					stripTag = new RegExp(sep, "g");
					ret = $(cellval).text();
					if (op.prefix && op.prefix.length) {
						ret = ret.slice(op.prefix.length);
					}
					if (op.suffix && op.suffix.length) {
						ret = ret.slice(0, ret.length - op.suffix.length);
					}
					ret = ret.replace(stripTag,'').replace(op.decimalSeparator,'.');
					break;
				case 'checkbox':
					var cbv = (options.colModel.editoptions) ? options.colModel.editoptions.value.split(":") : ["Yes","No"];
					ret = $('input',cellval).is(":checked") ? cbv[0] : cbv[1];
					break;
				case 'select' :
					ret = $.unformat.select(cellval,options,pos,cnt);
					break;
				case 'actions':
					return "";
				default:
					ret= $(cellval).text();
			}
		}
		return ret !== undefined ? ret : cnt===true ? $(cellval).text() : $.jgrid.htmlDecode($(cellval).html());
	};
	$.unformat.select = function (cellval,options,pos,cnt) {
		// Spacial case when we have local data and perform a sort
		// cnt is set to true only in sortDataArray
		var ret = [];
		var cell = $(cellval).text();
		if(cnt===true) {return cell;}
		var op = $.extend({}, options.colModel.formatoptions !== undefined ? options.colModel.formatoptions: options.colModel.editoptions),
		sep = op.separator === undefined ? ":" : op.separator,
		delim = op.delimiter === undefined ? ";" : op.delimiter;
		
		if(op.value){
			var oSelect = op.value,
			msl =  op.multiple === true ? true : false,
			scell = [], sv;
			if(msl) {scell = cell.split(",");scell = $.map(scell,function(n){return $.jgrid.trim(n);});}
			if ($.fmatter.isString(oSelect)) {
				var so = oSelect.split(delim), j=0, i;
				for(i=0; i<so.length;i++){
					sv = so[i].split(sep);
					if(sv.length > 2 ) {
						sv[1] = $.map(sv,function(n,i){if(i>0) {return n;}}).join(sep);
					}
					if(op.decodeValue && op.decodeValue===true) {
						sv[1] = $.jgrid.htmlDecode(sv[1]);
					}
					if(msl) {
						if($.inArray($.jgrid.trim(sv[1]),scell)>-1) {
							ret[j] = sv[0];
							j++;
						}
					} else if($.jgrid.trim(sv[1]) === $.jgrid.trim(cell)) {
						ret[0] = sv[0];
						break;
					}
				}
			} else if( $.fmatter.isObject(oSelect) || Array.isArray(oSelect) ){
				if(!msl) {scell[0] =  cell;}
				ret = $.map(scell, function(n){
					var rv;
					$.each(oSelect, function(i,val){
						if (val === n) {
							rv = i;
							return false;
						}
					});
					if( rv !== undefined ) {return rv;}
				});
			}
			return ret.join(", ");
		}
		return cell || "";
	};
	$.unformat.date = function (cellval, opts) {
		var op = $.jgrid.getRegional(this, 'formatter.date') || {};
		if(opts.formatoptions !== undefined) {
			op = $.extend({},op,opts.formatoptions);
		}		
		if(!$.fmatter.isEmpty(cellval)) {
			return $.jgrid.parseDate.call(this, op.newformat,cellval,op.srcformat,op);
		}
		return $.fn.fmatter.defaultFormat(cellval, opts);
	};

//module begin
var dragging, placeholders = $();
$.fn.html5sortable = function(options) {
	var method = String(options);
	options = $.extend({
		connectWith: false
	}, options);
	return this.each(function() {
		var items;
		if (/^enable|disable|destroy$/.test(method)) {
			items = $(this).children($(this).data('items')).attr('draggable', method === 'enable');
			if (method === 'destroy') {
				items.add(this).removeData('connectWith items')
					.off('dragstart.h5s dragend.h5s selectstart.h5s dragover.h5s dragenter.h5s drop.h5s');
			}
			return;
		}
		var isHandle, index; 
		items = $(this).children(options.items);
		var placeholder = $('<' + (/^ul|ol$/i.test(this.tagName) ? 'li' : /^tbody$/i.test(this.tagName) ? 'tr' : 'div') +
            ' class="sortable-placeholder ' + options.placeholderClass + '">').html('&nbsp;');
        items.find(options.handle).mousedown(function() {
			isHandle = true;
		}).mouseup(function() {
			isHandle = false;
		});
		$(this).data('items', options.items);
		placeholders = placeholders.add(placeholder);
		if (options.connectWith) {
			$(options.connectWith).add(this).data('connectWith', options.connectWith);
		}
		items.attr('draggable', 'true').on('dragstart.h5s', function(e) {
			if (options.handle && !isHandle) {
				return false;
			}
			isHandle = false;
			var dt = e.originalEvent.dataTransfer;
			dt.effectAllowed = 'move';
			dt.setData('Text', 'dummy');
			index = (dragging = $(this)).addClass('sortable-dragging').index();
		}).on('dragend.h5s', function() {
			if (!dragging) {
				return;
			}
			dragging.removeClass('sortable-dragging').show();
			placeholders.detach();
			if (index !== dragging.index()) {
				dragging.parent().trigger('sortupdate', {item: dragging, startindex: index, endindex: dragging.index()});
			}
			dragging = null;
		}).not('a[href], img').on('selectstart.h5s', function() {
			this.dragDrop && this.dragDrop();
			return false;
		}).end().add([this, placeholder]).on('dragover.h5s dragenter.h5s drop.h5s', function(e) {
			if (!items.is(dragging) && options.connectWith !== $(dragging).parent().data('connectWith')) {
				return true;
			}
			if (e.type === 'drop') {
				e.stopPropagation();
				placeholders.filter(':visible').after(dragging);
				dragging.trigger('dragend.h5s');
				return false;
			}
			e.preventDefault();
			e.originalEvent.dataTransfer.dropEffect = 'move';
			if (items.is(this)) {
				if (options.forcePlaceholderSize) {
					placeholder.height(dragging.outerHeight());
				}
				dragging.hide();
				$(this)[placeholder.index() < $(this).index() ? 'after' : 'before'](placeholder);
				placeholders.not(placeholder).detach();
			} else if (!placeholders.is(this) && !$(this).children(options.items).length) {
				placeholders.detach();
				$(this).append(placeholder);
			}
			return false;
		});
	});
};

//module begin
$.extend($.jgrid,{
//window.jqGridUtils = {
	isJSON : function (mixed) {
		if (typeof mixed !== 'string') {
			mixed = JSON.stringify( mixed );
		}
		try {
			JSON.parse( mixed );
			return true;
		} catch (e) {
			return false;
		}
	},
	stringify : function(obj) {
		return JSON.stringify(obj,function(key, value){
            return (typeof value === 'function' ) ? value.toString() : value;
        });
	},
	parseFunc : function(str) {
		return JSON.parse(str,function(key, value){
			if(typeof value === "string" && value.indexOf("function") !== -1) {
				var sv = value.split(" ");
				sv[0] = $.jgrid.trim( sv[0].toLowerCase() );
				if( (sv[0].indexOf('function') === 0) && value.trim().slice(-1) === "}") {
					return  $.jgrid.runCode( value ); //eval('('+value+')');
				} else {
					return value;
				}
			}
			return value;
		});
	},
	encode : function ( text ) { // repeated, but should not depend on grid
		return String(text).replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/"/g,'&quot;');
	},
	jsonToXML : function ( tree, options ) {
		var o = $.extend( {
			xmlDecl : '<?xml version="1.0" encoding="UTF-8" ?>\n',
			attr_prefix : '-',
			encode : true
		}, options || {}),
		that = this,
		scalarToxml = function ( name, text ) {
			if ( name === "#text" ) {
				return (o.encode ? that.encode(text) : text);
			} else if(typeof(text) ==='function') {
				return "<"+name+"><![CDATA["+ text +"]]></"+name+">\n";
			} if(text === "") {
				return "<"+name+">__EMPTY_STRING_</"+name+">\n";
			} else {
				return "<"+name+">"+(o.encode ? that.encode(text) : text )+"</"+name+">\n";
			}
		},
		arrayToxml = function ( name, array ) {
			var out = [];
		    for( var i=0; i<array.length; i++ ) {
				var val = array[i];
		        if ( typeof(val) === "undefined" || val == null ) {
					out[out.length] = "<"+name+" />";
				} else if ( typeof(val) === "object" && val.constructor == Array ) {
					out[out.length] = arrayToxml( name, val );
				} else if ( typeof(val) === "object" ) {
					out[out.length] = hashToxml( name, val );
				} else {
					out[out.length] = scalarToxml( name, val );
				}
			}
			if(!out.length) {
				out[0] = "<"+ name+">__EMPTY_ARRAY_</"+name+">\n";
			}
			return out.join("");
		},
		hashToxml = function ( name, tree ) {
			var elem = [];
		    var attr = [];
		    for( var key in tree ) {
				if ( ! tree.hasOwnProperty(key) ) continue;
				var val = tree[key];
				if ( key.charAt(0) !==  o.attr_prefix ) {
					if ( val == null ) { // null or undefined
		               elem[elem.length] = "<"+key+" />";
					} else if ( typeof(val) === "object" && val.constructor === Array ) {
		                elem[elem.length] = arrayToxml( key, val );
		            } else if ( typeof(val) === "object" ) {
						elem[elem.length] = hashToxml( key, val );
					} else {
						elem[elem.length] = scalarToxml( key, val );
					}
				} else {
					attr[attr.length] = " "+(key.substring(1))+'="'+(o.encode ? that.encode( val ) : val)+'"';
				}
			}
			var jattr = attr.join("");
			var jelem = elem.join("");
			if ( name == null ) { // null or undefined
				// no tag
			} else if ( elem.length > 0 ) {
				if ( jelem.match( /\n/ )) {
					jelem = "<"+name+jattr+">\n"+jelem+"</"+name+">\n";
				} else {
					jelem = "<"+name+jattr+">"  +jelem+"</"+name+">\n";
				}
			} else {
				jelem = "<"+name+jattr+" />\n";
			}
			return jelem;
		};

		var xml = hashToxml( null, tree );
		return o.xmlDecl + xml;
	},
	xmlToJSON : function ( root, options ) {
		var o = $.extend ( {
			force_array : [], //[ "rdf:li", "item", "-xmlns" ];
			attr_prefix : '-'
		}, options || {} );
		
		if(!root) { return; }
		
	    var __force_array = {};
		if ( o.force_array ) {
			for( var i=0; i< o.force_array.length; i++ ) {
				__force_array[o.force_array[i]] = 1;
			}
		}
		
		if(typeof root === 'string') {
			root = $.parseXML(root);
		} 
		if(root.documentElement) {
			root = root.documentElement;
		}
		var addNode = function ( hash, key, cnts, val ) {
			if(typeof val === 'string') {
				if( val.indexOf('function') !== -1) {
					val =  $.jgrid.runCode( val ); //eval( '(' + val +')'); // we need this in our implement
				} else {
					switch(val) {
						case '__EMPTY_ARRAY_' :
							val = [];
							break;
						case '__EMPTY_STRING_':
							val = "";
							break;
						case "false" :
							val = false;
							break;
						case "true":
							val = true;
							break;
					}
				}
			} 
			if ( __force_array[key] ) {
				if ( cnts === 1 ) {
					hash[key] = [];
				}
				hash[key][hash[key].length] = val;      // push
			} else if ( cnts === 1 ) {                   // 1st sibling
				hash[key] = val;
			} else if ( cnts === 2 ) {                   // 2nd sibling
				hash[key] = [ hash[key], val ];
			} else {                                    // 3rd sibling and more
				hash[key][hash[key].length] = val;
			}
		},
		parseElement = function ( elem ) {
			//  COMMENT_NODE
			if ( elem.nodeType === 7 ) {
				return;
			}

			//  TEXT_NODE CDATA_SECTION_NODE
			if ( elem.nodeType === 3 || elem.nodeType === 4 ) {
				var bool = elem.nodeValue.match( /[^\x00-\x20]/ );
				if ( bool == null ) return;     // ignore white spaces
				return elem.nodeValue;
			}
			
			var retval,	cnt = {}, i, key, val;

			//  parse attributes
			if ( elem.attributes && elem.attributes.length ) {
				retval = {};
				for ( i=0; i<elem.attributes.length; i++ ) {
					key = elem.attributes[i].nodeName;
					if ( typeof(key) !== "string" )  {
						continue;
					}
					val = elem.attributes[i].nodeValue;
					if ( ! val ) {
						continue;
					}
					key = o.attr_prefix + key;
					if ( typeof(cnt[key]) === "undefined" ) {
						cnt[key] = 0;
					}
					cnt[key] ++;
					addNode( retval, key, cnt[key], val );
				}
			}

			//  parse child nodes (recursive)
			if ( elem.childNodes && elem.childNodes.length ) {
				var textonly = true;
				if ( retval ) {
					textonly = false;
				}        // some attributes exists
				for ( i=0; i<elem.childNodes.length && textonly; i++ ) {
					var ntype = elem.childNodes[i].nodeType;
					if ( ntype === 3 || ntype === 4 ) {
						continue;
					}
					textonly = false;
				}
				if ( textonly ) {
					if ( ! retval ) {
						retval = "";
					}
					for ( i=0; i<elem.childNodes.length; i++ ) {
						retval += elem.childNodes[i].nodeValue;
					}
				} else {
					if ( ! retval ) {
						retval = {};
					}
					for ( i=0; i<elem.childNodes.length; i++ ) {
						key = elem.childNodes[i].nodeName;
						if ( typeof(key) !== "string" ) {
							continue;
						}
						val = parseElement( elem.childNodes[i] );
						if ( !val ) {
							continue;
						}
						if ( typeof(cnt[key]) === "undefined" ) {
							cnt[key] = 0;
						}
						cnt[key] ++;
						addNode( retval, key, cnt[key], val );
					}
				}
			}
			return retval;
		};
		
	    var json = parseElement( root );   // parse root node
		if ( __force_array[root.nodeName] ) {
			json = [ json ];
		}
		if ( root.nodeType !== 11 ) {            // DOCUMENT_FRAGMENT_NODE
			var tmp = {};
			tmp[root.nodeName] = json;          // root nodeName
			json = tmp;
		}
		return json;
	},
	saveAs : function (data, fname, opts) {
		opts = $.extend(true,{
			type : 'plain/text;charset=utf-8'
		}, opts || {});

		var file, url, tmp = []; 

		fname = fname == null || fname === '' ? 'jqGridFile.txt' : fname;

		if( !Array.isArray(data) ) {
			tmp[0]= data ;
		} else {
			tmp = data;	
		}
		try {
			file = new File(tmp, fname, opts);
		} catch (e) {
			file = new Blob(tmp, opts);
		}
		if ( window.navigator && window.navigator.msSaveOrOpenBlob) {
			window.navigator.msSaveOrOpenBlob( file , fname );
		} else {
			url = URL.createObjectURL(file);
			var a = document.createElement("a");
			a.href = url;
			a.download = fname;
			document.body.appendChild(a);
			a.click();
			setTimeout(function() {
				document.body.removeChild(a);
				window.URL.revokeObjectURL(url);
			}, 0);
		}
	},
	csvToArray : function (str, delimiter) {
		if(delimiter === undefined) {delimiter =",";}
		var headers=[],arrMatches, arr=[], objr = {}, k=0, len, lines=0;
		var objPattern = new RegExp(
			(
			// Delimiters.
			"(\\" + delimiter + "|\\r?\\n|\\r|^)" +
			// Quoted fields.
			"(?:\"([^\"]*(?:\"\"[^\"]*)*)\"|" +
			// Standard fields.
			"([^\"\\" + delimiter + "\\r\\n]*))"
			),
		"gi");

		while (arrMatches = objPattern.exec(str)) {
			var strMatchedDelimiter = arrMatches[1];
			if ( strMatchedDelimiter.length && strMatchedDelimiter !== delimiter ) {
				lines++;
				objr = {};
				k=0;
			}
			var strMatchedValue;
			if (arrMatches[2]) {
				strMatchedValue = arrMatches[2].replace(new RegExp("\"\"", "g"),"\"");
			} else {
				strMatchedValue = arrMatches[3];
			}
			if(lines === 0 ) {
				headers.push(strMatchedValue);
				len = headers.length;
			} else {
				objr[headers[k]] = strMatchedValue;
				if(k===len-1) {
					arr.push(objr);
				} else {
					k++;
				}
			}
		}
		return arr;
	}
});

//module begin

$.jgrid = $.jgrid || {};


$.extend($.jgrid,{
	formatCell : function ( cellval , colpos, rwdat, cm, $t, etype){
		var v;
		if(cm.formatter !== undefined) {
			var opts= {rowId: '', colModel:cm, gid: $t.p.id, pos:colpos, styleUI: '', isExported : true, exporttype : etype };
			if($.jgrid.isFunction( cm.formatter ) ) {
				v = cm.formatter.call($t,cellval,opts,rwdat);
			} else if($.fmatter){
				v = $.fn.fmatter.call($t,cm.formatter,cellval,opts,rwdat);
			} else {
				v = cellval;
			}
		} else {
			v = cellval;
		}
		return v;
	},
	formatCellCsv : function (v, p) {
		v = v == null ? '' : String(v);
		try {
			v = $.jgrid.stripHtml( v.replace(p._regexsep ,p.separatorReplace).replace(/\r\n/g, p.replaceNewLine).replace(/\n/g, p.replaceNewLine));
		} catch (_e) {
			v="";
		}
		if(p.escquote) {
			v = v.replace(p._regexquot, p.escquote + p.quote);
		}
		if( v.indexOf(p.separator) === -1 || v.indexOf(p.qoute) === -1) {
			v = p.quote + v + p.quote;
		}
		return v;
	},

	excelCellPos : function ( n ){
		var ordA = 'A'.charCodeAt(0),
		ordZ = 'Z'.charCodeAt(0),
		len = ordZ - ordA + 1,
		s = "";

		while( n >= 0 ) {
			s = String.fromCharCode(n % len + ordA) + s;
			n = Math.floor(n / len) - 1;
		}

		return s;
	},

	makeNode : function ( root, elemName, options ) {
		var currNode = root.createElement( elemName );

		if ( options ) {
			if ( options.attr ) {
				$(currNode).attr( options.attr );
			}
			if( options.children ) {
				$.each( options.children, function ( key, value ) {
					currNode.appendChild( value );
				});
			}
			if( options.hasOwnProperty('text') ) {
				currNode.appendChild( root.createTextNode( options.text ) );
			}
		}
		return currNode;
	},
	xmlToZip : function ( zip, obj ) {
		var $t = this,
		xmlserialiser = new XMLSerializer(),
		// IE >= 9
		ieExcel = xmlserialiser.serializeToString(
			$.parseXML( $.jgrid.excelStrings['xl/worksheets/sheet1.xml'] ) )
			.indexOf( 'xmlns:r' ) === -1,
		newDir, worksheet, i, ien, attr, attrs = [], str;

		$.each( obj, function ( name, val ) {
			if ( $.isPlainObject( val ) ) {
				newDir = zip.folder( name );
				$t.xmlToZip( newDir, val );
			} else {
				if ( ieExcel ) {
					worksheet = val.childNodes[0];
					for ( i=worksheet.attributes.length-1 ; i>=0 ; i-- ) {
						var attrName = worksheet.attributes[i].nodeName;
						var attrValue = worksheet.attributes[i].nodeValue;

						if ( attrName.indexOf( ':' ) !== -1 ) {
							attrs.push( { name: attrName, value: attrValue } );

							worksheet.removeAttribute( attrName );
						}
					}

					for ( i=0, ien=attrs.length ; i<ien ; i++ ) {
						attr = val.createAttribute( attrs[i].name.replace( ':', '_dt_b_namespace_token_' ) );
						attr.value = attrs[i].value;
						worksheet.setAttributeNode( attr );
					}
				}
				// suuport of all browsers
				str = xmlserialiser.serializeToString(val);
				// Fix IE's XML
				if ( ieExcel ) {
					if ( str.indexOf( '<?xml' ) === -1 ) {
						str = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+str;
					}
					str = str.replace( /_dt_b_namespace_token_/g, ':' );
				}

				str = str
					.replace( /<row xmlns="" /g, '<row ' )
					.replace( /<cols xmlns="">/g, '<cols>' )
					.replace( /<mergeCells xmlns="" /g, '<mergeCells ' )
					.replace( /<numFmt xmlns="" /g, '<numFmt ' )
					.replace( /<xf xmlns="" /g, '<xf ' );

				zip.file( name, str );
			}
		} );
	},
	excelStrings  : {
		"_rels/.rels":
			'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+
			'<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">'+
				'<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/>'+
			'</Relationships>',

		"xl/_rels/workbook.xml.rels":
			'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+
			'<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">'+
				'<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet1.xml"/>'+
				'<Relationship Id="rId2" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/>'+
			'</Relationships>',

		"[Content_Types].xml":
			'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+
			'<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">'+
				'<Default Extension="xml" ContentType="application/xml" />'+
				'<Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml" />'+
				'<Default Extension="jpeg" ContentType="image/jpeg" />'+
				'<Override PartName="/xl/workbook.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml" />'+
				'<Override PartName="/xl/worksheets/sheet1.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml" />'+
				'<Override PartName="/xl/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml" />'+
			'</Types>',

		"xl/workbook.xml":
			'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+
			'<workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">'+
				'<fileVersion appName="xl" lastEdited="5" lowestEdited="5" rupBuild="24816"/>'+
				'<workbookPr showInkAnnotation="0" autoCompressPictures="0"/>'+
				'<bookViews>'+
					'<workbookView xWindow="0" yWindow="0" windowWidth="25600" windowHeight="19020" tabRatio="500"/>'+
				'</bookViews>'+
				'<sheets>'+
					'<sheet name="Sheet1" sheetId="1" r:id="rId1"/>'+
				'</sheets>'+
			'</workbook>',

		"xl/worksheets/sheet1.xml":
			'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'+
			'<worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac">'+
				'<sheetData/>'+
			'</worksheet>',

		"xl/styles.xml":
			'<?xml version="1.0" encoding="UTF-8"?>'+
			'<styleSheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac">'+
				'<numFmts count="7">'+
					'<numFmt numFmtId="164" formatCode="#,##0.00_-\ [$$-45C]"/>'+
					'<numFmt numFmtId="165" formatCode="&quot;£&quot;#,##0.00"/>'+
					'<numFmt numFmtId="166" formatCode="[$€-2]\ #,##0.00"/>'+
					'<numFmt numFmtId="167" formatCode="0.0%"/>'+
					'<numFmt numFmtId="168" formatCode="#,##0;(#,##0)"/>'+
					'<numFmt numFmtId="169" formatCode="#,##0.00;(#,##0.00)"/>'+
					'<numFmt numFmtId="170" formatCode="yyyy/mm/dd;@"/>'+
				'</numFmts>'+
				'<fonts count="5" x14ac:knownFonts="1">'+
					'<font>'+
						'<sz val="11" />'+
						'<name val="Calibri" />'+
					'</font>'+
					'<font>'+
						'<sz val="11" />'+
						'<name val="Calibri" />'+
						'<color rgb="FFFFFFFF" />'+
					'</font>'+
					'<font>'+
						'<sz val="11" />'+
						'<name val="Calibri" />'+
						'<b />'+
					'</font>'+
					'<font>'+
						'<sz val="11" />'+
						'<name val="Calibri" />'+
						'<i />'+
					'</font>'+
					'<font>'+
						'<sz val="11" />'+
						'<name val="Calibri" />'+
						'<u />'+
					'</font>'+
				'</fonts>'+
				'<fills count="6">'+
					'<fill>'+
						'<patternFill patternType="none" />'+
					'</fill>'+
					'<fill/>'+
					'<fill>'+
						'<patternFill patternType="solid">'+
							'<fgColor rgb="FFD9D9D9" />'+
							'<bgColor indexed="64" />'+
						'</patternFill>'+
					'</fill>'+
					'<fill>'+
						'<patternFill patternType="solid">'+
							'<fgColor rgb="FFD99795" />'+
							'<bgColor indexed="64" />'+
						'</patternFill>'+
					'</fill>'+
					'<fill>'+
						'<patternFill patternType="solid">'+
							'<fgColor rgb="ffc6efce" />'+
							'<bgColor indexed="64" />'+
						'</patternFill>'+
					'</fill>'+
					'<fill>'+
						'<patternFill patternType="solid">'+
							'<fgColor rgb="ffc6cfef" />'+
							'<bgColor indexed="64" />'+
						'</patternFill>'+
					'</fill>'+
				'</fills>'+
				'<borders count="2">'+
					'<border>'+
						'<left />'+
						'<right />'+
						'<top />'+
						'<bottom />'+
						'<diagonal />'+
					'</border>'+
					'<border diagonalUp="false" diagonalDown="false">'+
						'<left style="thin">'+
							'<color auto="1" />'+
						'</left>'+
						'<right style="thin">'+
							'<color auto="1" />'+
						'</right>'+
						'<top style="thin">'+
							'<color auto="1" />'+
						'</top>'+
						'<bottom style="thin">'+
							'<color auto="1" />'+
						'</bottom>'+
						'<diagonal />'+
					'</border>'+
				'</borders>'+
				'<cellStyleXfs count="1">'+
					'<xf numFmtId="0" fontId="0" fillId="0" borderId="0" />'+
				'</cellStyleXfs>'+
				'<cellXfs count="69">'+
					'<xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="1" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="2" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="3" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="4" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="0" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="1" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="2" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="3" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="4" fillId="2" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="0" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="1" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="2" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="3" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="4" fillId="3" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="0" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="1" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="2" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="3" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="4" fillId="4" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="0" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="1" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="2" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="3" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="4" fillId="5" borderId="0" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="0" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="1" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="2" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="3" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="4" fillId="0" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="0" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="1" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="2" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="3" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="4" fillId="2" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="0" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="1" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="2" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="3" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="4" fillId="3" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="0" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="1" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="2" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="3" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="4" fillId="4" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="0" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="1" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="2" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="3" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="4" fillId="5" borderId="1" applyFont="1" applyFill="1" applyBorder="1"/>'+
					'<xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1">'+
						'<alignment horizontal="left"/>'+
					'</xf>'+
					'<xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1">'+
						'<alignment horizontal="center"/>'+
					'</xf>'+
					'<xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1">'+
						'<alignment horizontal="right"/>'+
					'</xf>'+
					'<xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1">'+
						'<alignment horizontal="fill"/>'+
					'</xf>'+
					'<xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1">'+
						'<alignment textRotation="90"/>'+
					'</xf>'+
					'<xf numFmtId="0" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1">'+
						'<alignment wrapText="1"/>'+
					'</xf>'+
					'<xf numFmtId="9"   fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+
					'<xf numFmtId="164" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+
					'<xf numFmtId="165" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+
					'<xf numFmtId="166" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+
					'<xf numFmtId="167" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+
					'<xf numFmtId="168" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+
					'<xf numFmtId="169" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+
					'<xf numFmtId="3" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+
					'<xf numFmtId="4" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+
					'<xf numFmtId="1" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+
					'<xf numFmtId="2" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+
					'<xf numFmtId="170" fontId="0" fillId="0" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyNumberFormat="1"/>'+
					'<xf numFmtId="49" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/>'+
				'</cellXfs>'+
				'<cellStyles count="1">'+
					'<cellStyle name="Normal" xfId="0" builtinId="0" />'+
				'</cellStyles>'+
				'<dxfs count="0" />'+
				'<tableStyles count="0" defaultTableStyle="TableStyleMedium9" defaultPivotStyle="PivotStyleMedium4" />'+
			'</styleSheet>'
	},
	excelParsers : [
		{ match: /^\-?\d+\.\d%$/,       style: 60, fmt: function (d) { return d/100; } }, // Precent with d.p.
		{ match: /^\-?\d+\.?\d*%$/,     style: 56, fmt: function (d) { return d/100; } }, // Percent
		{ match: /^\-?\$[\d,]+.?\d*$/,  style: 57 }, // Dollars
		{ match: /^\-?£[\d,]+.?\d*$/,   style: 58 }, // Pounds
		{ match: /^\-?€[\d,]+.?\d*$/,   style: 59 }, // Euros
		{ match: /^\-?\d+$/,            style: 65 }, // Numbers without thousand separators
		{ match: /^\-?\d+\.\d{2}$/,     style: 66 }, // Numbers 2 d.p. without thousands separators
		{ match: /^\([\d,]+\)$/,        style: 61, fmt: function (d) { return -1 * d.replace(/[\(\)]/g, ''); } },  // Negative numbers indicated by brackets
		{ match: /^\([\d,]+\.\d{2}\)$/, style: 62, fmt: function (d) { return -1 * d.replace(/[\(\)]/g, ''); } },  // Negative numbers indicated by brackets - 2d.p.
		{ match: /^\-?[\d,]+$/,         style: 63 }, // Numbers with thousand separators
		{ match: /^\-?[\d,]+\.\d{2}$/,  style: 64 },  // Numbers with 2 d.p. and thousands separators
		{ match: /^\d{4}\-\d{2}\-\d{2}$/, style: 67 }, // Dates
		{ match: /(https?:\/\/(?:www\.|(?!www))[^\s\.]+\.[^\s]{2,}|www\.[^\s]+\.[^\s]{2,})/gi, style : 4} // hyperlink
	],
	addExcelStyle : function ( obj, options, alignment, styleSh) {
		options = $.extend({
			numFmtId : "0",
			fontId: "0",
			fillId: "0",
			borderId: "0",
			applyFont:"1",
			applyFill:"1",
			applyBorder:"1",
			xfId:"0",
			applyNumberFormat:"0",
			applyAlignment  : "0"
		}, options || {});
		alignment =  $.extend({
			horizontal: "left", // left, center, right, fill, justified
			indent: "0", // indent from left
			shrinkToFit : "1", //"0"
			textRotation : "0", // in degree
			vertical : "center", // top, bottom
			wrapText : "0"
		}, alignment || {});
		if( $.isEmptyObject( obj )) {
			obj.excel_parsers = true;
		}
		//var	styleSh = $.parseXML( $.jgrid.excelStrings['xl/styles.xml']), //xlsx.xl["styles.xml"];
		var formats = styleSh.getElementsByTagName("numFmts")[0],
		celsX = styleSh.getElementsByTagName("cellXfs")[0];

		var format=null, style=null;

		for(var k in obj) {
			if(obj.hasOwnProperty(k)) {
				if(k.indexOf('format') !== -1) {
					format = k;
				}
				if(k.indexOf('style') !== -1) {
					style = k;
				}
			}
		}
		if(style && !obj[style]) {
			// add the sformatter
			var count = 0,
			maxfmtid =0,
			fmnt, mycell;

			if(format && obj[format]) {
				fmnt= $(formats.getElementsByTagName("numFmt"));
				$.each( fmnt, function(i,n) {
					count++;
					maxfmtid = Math.max(maxfmtid,  parseInt( $(n).attr("numFmtId"), 10) );
				});
				mycell = $.jgrid.makeNode( styleSh , "numFmt", {attr: {numFmtId : maxfmtid + 1, formatCode : obj[format] } });
				formats.appendChild( mycell );
				$(formats).attr("count", count + 1);
			}

			var numid = maxfmtid !== 0 ? maxfmtid + 1 +"" : "0";
			count = 0;
			options.numFmtId = numid;
			mycell = options.applyAlignment === "1" ?
				$.jgrid.makeNode( styleSh , "xf", { 
					attr: options , 
					children: [	$.jgrid.makeNode( styleSh, 'alignment', {  attr : alignment } ) ]
				}) :
				$.jgrid.makeNode( styleSh , "xf", { 
					attr: options 
				});
			celsX.appendChild( mycell );
			count = $('cellXfs xf', styleSh).length;
			$(celsX).attr("count", count);
			obj[style] = count - 1;
		}
		return obj;
	},
	newExcelStyle : function ( xlsx, options ) {
		options = $.extend(true, {
			font : { size : 11, name : 'Calibri', options :""}, // options <b/> <i/> <u/>
			color : { patternType : "solid", fgColor : "FFFFFFF", bgColor : 64 } // bgColor if number 0-64
		}, options || {});
		//PatterType can be one of the following
		/*
			none, solid,darkDown,darkGray,darkGrid,darkHorizontal,darkTrellis,
			darkUp,darkVertical,gray0625,gray125,lightDown,lightGray,lightGrid
			lightHorizontal,lightTrellis,lightUp,lightVertical,mediumGray
		*/
		//styleSheet.childNodes[0].childNodes[0] ==> number formats  <numFmts count="6"> </numFmts>
		//styleSheet.childNodes[0].childNodes[1] ==> fonts           <fonts count="5" x14ac:knownFonts="1"> </fonts>
		//styleSheet.childNodes[0].childNodes[2] ==> fills           <fills count="6"> </fills>
		//styleSheet.childNodes[0].childNodes[3] ==> borders         <borders count="2"> </borders>
		//styleSheet.childNodes[0].childNodes[4] ==> cell style xfs  <cellStyleXfs count="1"> </cellStyleXfs>
		//styleSheet.childNodes[0].childNodes[5] ==> cell xfs        <cellXfs count="69"> </cellXfs>
		//on the last line we have the 69 currently built in styles (0 - 68)

		var sSh = xlsx.xl['styles.xml'];
		var lastXfIndex   = $('cellXfs xf', sSh).length - 1;
		var lastFontIndex = $('fonts font', sSh).length - 1;
		var lastFillIndex = $('fills fill', sSh).length - 1;


		var font1 =
        '<font>'+
                '<sz val="'+options.font.size+'" />'+
                '<name val="'+options.font.name+'" />'+
                options.font.options +
        '</font>';
		sSh.childNodes[0].childNodes[1].innerHTML += font1; //new font
		var bgcolor = 'indexed=';
		if(parseInt(options.color.bgColor,10) >= 0 ) {
			bgcolor = 'rgb=';
		}
		bgcolor += '"'+options.color.bgColor+'"';
		var color1 = 
			'<fill>'+
			'<patternFill patternType="'+options.color.patternType+'">'+
			'<fgColor rgb="'+options.color.fgColor+'" />'+
			'<bgColor ' + bgcolor+' />'+
			'</patternFill>'+
		'</fill>';		
		sSh.childNodes[0].childNodes[2].innerHTML += color1; //new color
        var s1 = '<xf numFmtId="0" fontId="'+(lastFontIndex+1)+'" fillId="'+(lastFillIndex+1)+'" borderId="0" applyFont="1" applyFill="1" applyBorder="1" xfId="0" applyAlignment="1"></xf>';
		sSh.childNodes[0].childNodes[5].innerHTML += s1;
		return (lastXfIndex + 1);
	}
});
/********************************************************************
*
* due to speed, every export method will have separate module
* to collect grouped data
*
*********************************************************************/
$.jgrid.extend({
	exportToCsv : function ( p ) {
		p = $.extend(true, {
			separator: ",",
			separatorReplace : " ",
			quote : '"',
			escquote : '"',
			newLine : "\r\n", // navigator.userAgent.match(/Windows/) ?	'\r\n' : '\n';
			replaceNewLine : " ",
			includeCaption : true,
			includeLabels : true,
			includeGroupHeader : true,
			includeFooter: true,
			includeHeader: true,
			fileName : "jqGridExport.csv",
			mimetype : "text/csv;charset=utf-8",
			returnAsString : false,
			onBeforeExport : null,
			treeindent : ' ',
			visibleTreeNodes : false,
			loadIndicator : true // can be a function
		}, p || {});
		var ret ="";
		this.each(function(){

			p._regexsep = new RegExp(p.separator, "g");
			p._regexquot = new RegExp(p.quote, "g");

			var $t = this,
			// get the filtered data
			data1 = $t.p.treeGrid ? $($t).jqGrid('getRowData', null, true, p.treeindent, p.visibleTreeNodes) : $t.addLocalData( true ), //this.addLocalData( true ),
			dlen = data1.length,
			cm = $t.p.colModel,
			cmlen = cm.length,
			clbl = $t.p.colNames,
			i, j=0, row, str = '' , tmp, k,
			cap = "", hdr = "", ftr="",	lbl="", albl=[], htr="";
			function groupToCsv (grdata, p) {
				var str="",
				grp = $t.p.groupingView,
				cp=[], len =grp.groupField.length,
				cm = $t.p.colModel,
				colspans = cm.length,
				toEnd = 0;

				$.each(cm, function (i,n){
					var ii;
					for(ii=0;ii<len;ii++) {
						if(grp.groupField[ii] === n.name ) {
							cp[ii] = i;
							break;
						}
					}
				});
				function findGroupIdx( ind , offset, grp) {
					var ret = false, i;
					if(offset===0) {
						ret = grp[ind];
					} else {
						var id = grp[ind].idx;
						if(id===0) {
							ret = grp[ind];
						}  else {
							for(i=ind;i >= 0; i--) {
								if(grp[i].idx === id-offset) {
									ret = grp[i];
									break;
								}
							}
						}
					}
					return ret;
				}
				function buildSummaryTd(i, ik, grp, foffset) {
					var fdata = findGroupIdx(i, ik, grp),
					//cm = $t.p.colModel,
					vv, grlen = fdata.cnt, k, retarr= new Array(p.collen), j=0;
					for(k=foffset; k<colspans;k++) {
						if(!cm[k]._expcol) {
							continue;
						}
						var tplfld = "{0}";
						$.each(fdata.summary,function(){
							if(this.nm === cm[k].name) {
								if(cm[k].summaryTpl)  {
									tplfld = cm[k].summaryTpl;
								}
								vv = this.v;
								if(typeof this.st === 'string' && this.st.toLowerCase() === 'avg') {
									if(this.sd && this.vd) {
										vv = (this.v/this.vd);
									} else if(this.v && grlen > 0) {
										vv = (this.v/grlen);
									}
								}
								try {
									this.groupCount = fdata.cnt;
									this.groupIndex = fdata.dataIndex;
									this.groupValue = fdata.value;
									vv = $t.formatter('', vv, k, this);
								} catch (ef) {
									vv = this.v;
								}
								retarr[j] =
									$.jgrid.formatCellCsv(
									$.jgrid.stripHtml(
									$.jgrid.template(tplfld,vv)
									), p ) ;
								return false;
							}
						});
						j++;
					}
					return retarr;
				}
				var sumreverse = $.makeArray(grp.groupSummary), gv, k;
				sumreverse.reverse();
				if($t.p.datatype === 'local' && !$t.p.loadonce) {
					$($t).jqGrid('groupingSetup');
					var groupingPrepare = $.jgrid.getMethod("groupingPrepare");
					for(var ll=0; ll < dlen; ll++) {
						groupingPrepare.call($($t), data1[ll], ll);
					}
				}
				$.each(grp.groups,function(i,n){
					toEnd++;
					try {
						if (Array.isArray(grp.formatDisplayField) && $.jgrid.isFunction(grp.formatDisplayField[n.idx])) {
							gv = grp.formatDisplayField[n.idx].call($t, n.displayValue, n.value, $t.p.colModel[cp[n.idx]], n.idx, grp);
						} else {
							gv = $t.formatter('', n.displayValue, cp[n.idx], n.value );
						}
					} catch (egv) {
						gv = n.displayValue;
					}
					var grpTextStr = '';
					if($.jgrid.isFunction(grp.groupText[n.idx])) {
						grpTextStr = grp.groupText[n.idx].call($t, gv, n.cnt, n.summary);
					} else {
						grpTextStr = $.jgrid.template(grp.groupText[n.idx], gv, n.cnt, n.summary);
					}
					if( !(typeof grpTextStr ==='string' || typeof grpTextStr ==='number' ) ) {
						grpTextStr = gv;
					}
					var arr;
					if(grp.groupSummaryPos[n.idx] === 'header')  {
						arr = buildSummaryTd(i, 0, grp.groups, 0 /*grp.groupColumnShow[n.idx] === false ? (mul ==="" ? 2 : 3) : ((mul ==="") ? 1 : 2)*/ );
					} else {
						arr = new Array(p.collen);
					}
					arr[0] = $.jgrid.formatCellCsv( $.jgrid.stripHtml( grpTextStr ), p);
					str +=  arr.join( p.separator ) + p.newLine;
					var leaf = len-1 === n.idx;
					if( leaf ) {
						var gg = grp.groups[i+1], kk, ik, offset = 0, sgr = n.startRow, to,
						end = gg !== undefined ?  gg.startRow : grp.groups[i].startRow + grp.groups[i].cnt;
						for(kk=sgr;kk<end;kk++) {
							if(!grdata[kk - offset]) { break; }
							to = grdata[kk - offset];
							k = 0;
							for(ik = 0; ik < cm.length; ik++) {
								if(cm[ik]._expcol) {
									arr[k] = $.jgrid.formatCellCsv(
										$.jgrid.formatCell( $.jgrid.getAccessor(to, cm[ik].name), ik, to, cm[ik], $t, 'csv' ) , p);
									k++;
								}
							}
							str += arr.join( p.separator ) + p.newLine;
						}

						if(grp.groupSummaryPos[n.idx] !== 'header') {
							var jj;
							if (gg !== undefined) {
								for (jj = 0; jj < grp.groupField.length; jj++) {
									if (gg.dataIndex === grp.groupField[jj]) {
										break;
									}
								}
								toEnd = grp.groupField.length - jj;
							}
							for (ik = 0; ik < toEnd; ik++) {
								if(!sumreverse[ik]) { continue; }
								arr = buildSummaryTd(i, ik, grp.groups, 0);
								str += arr.join( p.separator ) + p.newLine;
							}
							toEnd = jj;
						}
					}
				});
				return str;
			}
			if( $.jgrid.isFunction( p.loadIndicator )) {
				p.loadIndicator.call($t,'show');
			} else if(p.loadIndicator) {
				$($t).jqGrid("progressBar", {method:"show", loadtype : $t.p.loadui, htmlcontent: $.jgrid.getRegional($t,'defaults.loadtext') });
			}
			// end group function
			var def = [], key;
			$.each(cm,function(i,n) {
				n._expcol = true;
				if(n.exportcol === undefined) {
					if(n.hidden) {
						n._expcol = false;
					}
				} else {
					n._expcol = n.exportcol;
				}
				if(n.name === 'cb' || n.name === 'rn' || n.name === 'subgrid' || n.name === 'sc') {
					n._expcol = false;
				}
				if(n._expcol) {
					albl.push( $.jgrid.formatCellCsv( clbl[i], p) );
					def.push( n.name ); // clbl[i];
				}
			});

			if(p.includeLabels) {
				lbl = albl.join( p.separator ) + p.newLine;
			}

			p.collen = albl.length;

			if( $t.p.grouping ) {
				var savlcgr = $t.p.groupingView._locgr ? true : false;
				$t.p.groupingView._locgr = false;
				str += groupToCsv(data1, p);
				$t.p.groupingView._locgr  = savlcgr;

			}  else {
				while(j < dlen) {
					row = data1[j];
					tmp = [];
					k =0;
					for(i = 0; i < cmlen; i++) {
						if(cm[i]._expcol) {
							tmp[k] = $.jgrid.formatCellCsv( $.jgrid.formatCell( $.jgrid.getAccessor(row, cm[i].name) , i, row, cm[i], $t, 'csv' ), p );
							k++;
						}
					}
					str += tmp.join( p.separator ) + p.newLine;
					j++;
				}
			}
			data1 = null; // free
			// get the column length.
			tmp = new Array(p.collen);
			if(p.includeCaption && $t.p.caption) {
				j=p.collen;
				while(--j) {tmp[j]="";}
				tmp[0] = $.jgrid.formatCellCsv( $t.p.caption, p );
				cap += tmp.join( p.separator ) + p.newLine;
			}
			if(p.includeGroupHeader && $($t).jqGrid('isGroupHeaderOn')) {
				var gh = $t.p.groupHeader;
				for (i=0;i < gh.length; i++) {
					var ghdata = gh[i].groupHeaders;
					j = 0; tmp = [];
					for(key=0; key<def.length; key++ ) {
						//if(!def.hasOwnProperty( key )) {
						//	continue;
						//}
						tmp[j] = '';
						for(k=0;k<ghdata.length;k++) {
							if(ghdata[k].startColumnName === def[key]) {
								tmp[j]= $.jgrid.formatCellCsv( ghdata[k].titleText, p);
							}
						}
						j++;
					}
					hdr += tmp.join( p.separator ) + p.newLine;
				}
			}
			var hlen, il;
			if(p.includeFooter && $t.p.footerrow) {
				// already formated
				hlen = $($t).jqGrid("footerData", "getlength");
				var frows, fc;
				for(il=0;il<hlen;il++) {
					frows = $($t).jqGrid("footerData", "get", null, false, il, false);
					i=0; tmp=[];
					while(i < p.collen){
						fc = def[i];
						if(frows.hasOwnProperty(fc) ) {
							tmp.push( $.jgrid.formatCellCsv( $.jgrid.stripHtml( frows[fc] ), p ) );
						}
						i++;
					}
					ftr += tmp.join( p.separator ) + p.newLine;
				}
			}
			if(p.includeHeader && $t.p.headerrow) {
				var hrows, hc;
				hlen = $($t).jqGrid("headerData", "getlength");
				for(il=0;il<hlen;il++) {
					hrows = $($t).jqGrid("headerData", "get", null, false, il, false);
				i=0; tmp=[];
				while(i < p.collen){
						hc = def[i];
					if(hrows.hasOwnProperty(hc) ) {
						tmp.push( $.jgrid.formatCellCsv( $.jgrid.stripHtml( hrows[hc] ), p ) );
					}
					i++;
				}
				htr += tmp.join( p.separator ) + p.newLine;
			}
			}
			ret = cap + hdr + lbl + htr + str + ftr;
			if( $.jgrid.isFunction( p.loadIndicator )) {
				p.loadIndicator.call($t,'hide');
			} else if(p.loadIndicator) {
				$($t).jqGrid("progressBar", {method:"hide", loadtype : $t.p.loadui });
			}
			if($.jgrid.isFunction( p.onBeforeExport) ) {
				ret = p.onBeforeExport.call($t,ret);
				if(!ret) {
					throw "Before export does not return data!";
				}
			}
			if (p.returnAsString) {
				//return ret;
			} else {
				// add BOM fix Excel
				if(p.mimetype.toUpperCase().indexOf("UTF-8") !== -1) {
					ret = '\ufeff' + ret;
				}
				$.jgrid.saveAs( ret, p.fileName, { type : p.mimetype });
			}
		});
		return ret;
	},
	/*
	 *
	 * @param object o - settings for the export
	 * @returns excel 2007 document
	 * The method requiere jsZip lib in order to create excel document
	 */
	exportToExcel : function ( o ) {
		o = $.extend(true, {
			includeLabels : true,
			includeGroupHeader : true,
			includeFooter: true,
			includeHeader: true,
			fileName : "jqGridExport.xlsx",
			mimetype : "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
			maxlength : 40, // maxlength for visible string data
			onBeforeExport : null,
			customizeData : null,
			replaceStr : null,
			treeindent : ' ',
			visibleTreeNodes : false,
			loadIndicator : true // can be a function
		}, o || {} );
		this.each(function() {
			var $t = this,
			es = $.jgrid.excelStrings,
			rowPos = 0,
			rels = $.parseXML( es['xl/worksheets/sheet1.xml']),
			relsGet = rels.getElementsByTagName( "sheetData" )[0],
			styleSh = $.parseXML( es['xl/styles.xml']), //xlsx.xl["styles.xml"];

			//= styleSh.getElementsByTagName("numFmts")[0],
			//celsX = styleSh.getElementsByTagName("cellXfs")[0],

			xlsx = {
				_rels: {
					".rels": $.parseXML( es['_rels/.rels'])
				},
				xl: {
					_rels: {
						"workbook.xml.rels": $.parseXML( es['xl/_rels/workbook.xml.rels'])
					},
					"workbook.xml": $.parseXML( es['xl/workbook.xml']),
					"styles.xml": styleSh, //$.parseXML( es['xl/styles.xml']),
					"worksheets": {
						"sheet1.xml": rels
					}
				},
				"[Content_Types].xml": $.parseXML( es['[Content_Types].xml'])
			},
			cm = $t.p.colModel,
			i=0, j, ien,
			data = {
				body  : $t.p.treeGrid ? $($t).jqGrid('getRowData', null, true, o.treeindent, o.visibleTreeNodes) : $t.addLocalData( true ),
				header : [],
				footer : [],
				width : [],
				map : [],
				parser :[],
				labels : [],
				hidden : [],
				mergecell:[]
			};
			var defaultHeaderStyle = $.jgrid.addExcelStyle( {excel_header_style:""}, {fontId :"2", applyAlignment : "1"} , {horizontal: "center", vertical :"center"}, styleSh).excel_header_style;
			for ( j=0, ien=cm.length ; j<ien ; j++ ) {
				cm[j]._expcol = true;
				if(cm[j].exportcol === undefined) {
					if(cm[j].hidden) {
						cm[j]._expcol = false;
					}
				} else {
					cm[j]._expcol = cm[j].exportcol;
				}
				if(cm[j]._colspancell === undefined) {
					cm[j]._colspancell = false;
				}
				if( $.jgrid.isServiceCol(cm[j].name) || !cm[j]._expcol ) {
					data.hidden.push(cm[j].name);
					continue;
				}
				data.header[i] = cm[j].name;
				data.width[ i ] = 5;
				data.map[i] = j;
				//data.parser[j] = $.jgrid.addExcelStyle( cm[j].hasOwnProperty('exportoptions') ? $.extend( {}, cm[j].exportoptions ) : {} );
				data.labels[i] = $t.p.colNames[j];
				if(cm[j].hasOwnProperty('exportoptions')) {
					var ef={}, ehf={};
					if(cm[j].exportoptions.excel_format) {
						ef = $.jgrid.addExcelStyle( { excel_format : cm[j].exportoptions.excel_format, excel_style : cm[j].exportoptions.excel_style || ""}, {}, {}, styleSh );
					}
					if(cm[j].exportoptions.excel_header_format) {
						ehf = $.jgrid.addExcelStyle( { excel_header_format : cm[j].exportoptions.excel_header_format, excel_header_style : cm[j].exportoptions.excel_header_style || ""}, {fontId:"2",applyAlignment:"1" },{horizontal:"center"}, styleSh );
					}
					data.parser[j] = $.extend (ef,ehf);
					if(cm[j].exportoptions.replace_format) {
						data.parser[j].replace_format = cm[j].exportoptions.replace_format;
					}
					if(cm[j].exportoptions.replace_header_format) {
						data.parser[j].replace_header_format = cm[j].exportoptions.replace_header_format;
					}
				} else {
					data.parser[j] =  { excel_parsers : true };
				}
				
				i++;
			}
			if ( o.includeFooter || $t.p.footerrow) {
				var dfl = $($t).jqGrid("footerData", "getlength"), dil, dfooter;
				for(dil=0; dil<dfl; dil++) {
					dfooter = $($t).jqGrid("footerData", "get", null, false, dil, false);
					for( i in dfooter) {
						if(dfooter.hasOwnProperty(i)) {
							dfooter[i] = $.jgrid.stripHtml(dfooter[i]);
					}
				}
					data.footer.push( dfooter);
			}
			}
			if( $.jgrid.isFunction(o.customizeData) ) {
				o.customizeData.call($t, data);
			}
			function _replStrFunc (v) {
				return v.replace(/</g, '&lt;')
						.replace(/>/g, '&gt;')
						.replace(/[\x00-\x09\x0B\x0C\x0E-\x1F\x7F-\x9F]/g, '');
			}
			function _makeCellSpecial ( p, v ) {
				return $.jgrid.makeNode(
						rels,
						'c',
						{
							attr: p,
							children: [	$.jgrid.makeNode( rels, 'v', { text: v } ) ]
						});
			}
			function _makeCellFunction ( p, v ) {
				return $.jgrid.makeNode(
						rels,
						'c',
						{
							attr: p,
							children: [	$.jgrid.makeNode( rels, 'f', { text: v } ) ]
						});
			}
			function _makeCellString ( cellId, text, estyle ) {
				if( estyle === undefined) {
					estyle = 68;
				}
				return $.jgrid.makeNode(
						rels,
						'c',
						{
							attr: { t: 'inlineStr', r: cellId, s: estyle },
							children:{ row: $.jgrid.makeNode( rels, 'is',
								{
									children: {
										row: $.jgrid.makeNode( rels, 't', {	text: text} )
									}
								})
							}
						} );
			}
			function linkParse(strLinkHTML) {
				var oDiv, oNode;

				(oDiv = document.createElement('div')).innerHTML = strLinkHTML;
				oNode = oDiv.firstChild;
				if(oNode.nodeName === 'A' ) {
					return [oNode.href,oNode.text];
				} else if (oNode.nodeName === '#text') {
					return [oNode.textContent,oNode.textContent];
				}
				return false;

			}

			var _replStr = $.jgrid.isFunction(o.replaceStr) ? o.replaceStr : _replStrFunc,
			currentRow, rowNode,
			addRow = function ( row, header, labels, skipfirstcol ) {
				if(labels===undefined) {
					labels = false;
				}
				if(skipfirstcol===undefined) {
					skipfirstcol = false;
				}
				currentRow = rowPos+1;
				rowNode = $.jgrid.makeNode( rels, "row", { attr: {r:currentRow} } );
				var maxieenum = 15, text, omit;
				for ( var i =0; i < data.header.length; i++) {
					// key = cm[i].name;
					// Concat both the Cell Columns as a letter and the Row of the cell.
					var cellId = $.jgrid.excelCellPos(i) + '' + currentRow,
					cell,
					match,
					v= (Array.isArray(row) && header) ? data.labels[i] : $.jgrid.getAccessor( row,  data.header[i] );
					if ( v == null ) {
						v = '';
					}
					if(!header) {
						omit = (i===0 && skipfirstcol);
						v = omit || (skipfirstcol && v==='') ? v : $.jgrid.formatCell( v, data.map[i], row, cm[data.map[i]], $t, 'excel');
						// convert whitespace from formatter to empty string
						if(v && (v==='&nbsp;' || v==='&#160;' || (v.length===1 && v.charCodeAt(0)===160))) { 
							v = '';
						}
					}
					data.width[i] = Math.max(data.width[i], Math.min(parseInt(v.toString().length,10), o.maxlength) );
					cell = null;
					var expo = data.parser[data.map[i]];
					if( header && labels) {
						if(expo.replace_header_format) {
							v = expo.replace_header_format(v);
						}
						if(expo.excel_header_style !== undefined) {
							if(expo.excel_header_style === 'text') {
								cell = _makeCellString( cellId, v);
							} else if (expo.excel_header_style <= 55) { 
								cell = _makeCellString( cellId, v, expo.excel_header_style);
								//cell = _makeCellSpecial( {r: cellId,s: expo.excel_style}, v );
							} else {
								cell = _makeCellSpecial( {r: cellId,s: expo.excel_header_style}, v );
							}
						} else {
							cell = _makeCellString( cellId, v, defaultHeaderStyle);
						}
						rowNode.appendChild( cell );
					} else if( expo.excel_parsers === true && !cell) {
						for ( var j=0, jen=$.jgrid.excelParsers.length ; j<jen ; j++ ) {
							var special = $.jgrid.excelParsers[j];

							if ( v.match && ! v.match(/^0\d+/) && v.match( special.match ) ) {
								var a = v;
								v = v.replace(/[^\d\.\-]/g, '');
								if ( special.fmt ) {
									v = special.fmt( v );
								}
								if(special.style === 67) { //Dates
									cell = _makeCellSpecial( { t: 'd', r: cellId, s: special.style }, v);
								}  else if(special.style === 4) { // hyperlink
									v = linkParse (a);
									if(v) {
										cell = _makeCellFunction( { t: 'str', r: cellId, s: special.style }, 'HYPERLINK(\"'+v[0]+'\",\"'+v[1]+'\")');
									} else {
										cell = _makeCellString( cellId, a);
									}
								} else {
									if(  $.inArray( special.style, ["63", "64", "65", "66"]) ) { // Numbers

										if( v.toString().length > maxieenum ) {
											text = ! a.replace ? a : _replStr(a);
											cell = _makeCellString( cellId, text);
											rowNode.appendChild( cell );
											break;
										}
									}
									cell = _makeCellSpecial( {r: cellId,s: special.style}, v );
								}
								rowNode.appendChild( cell );
								break;
							}
						}
					} else if( expo.excel_style !== undefined  && !header && !cell) {
						if(expo.replace_format) {
							v = expo.replace_format(v);
						}
						if(expo.excel_style === 'text') {
							cell = _makeCellString( cellId, v);
						} else if (expo.excel_style <= 55) { 
							cell = _makeCellString( cellId, v, expo.excel_style);
							//cell = _makeCellSpecial( {r: cellId,s: expo.excel_style}, v );
						} else {
						cell = _makeCellSpecial( {r: cellId,s: expo.excel_style}, v );
						}
						rowNode.appendChild( cell );
					}
					if( ! cell ) {
						// Detect numbers - don't match numbers with leading zeros or a negative
						if(v.match) {
							match = v.match(/^-?([1-9]\d+)(\.(\d+))?$/);
						}
						if ( (typeof v === 'number' && v.toString().length <= maxieenum) || (
								match &&
								(match[1].length + (match[2] ? match[3].length : 0) <= maxieenum))
						) {
							cell = _makeCellSpecial( {t: 'n', r: cellId }, v );
						} else {
							// Replace non standard characters for text output
							text = ! v.replace ? v : _replStr(v);
							cell = _makeCellString( cellId, text);
						}
						rowNode.appendChild( cell );
					}
				}
				relsGet.appendChild(rowNode);
				rowPos++;
			};
//=========================================================================
			function groupToExcel ( grdata ) {
				var grp = $t.p.groupingView,
				cp=[], len =grp.groupField.length,
				colspans = cm.length,
				toEnd = 0;
					$.each(cm, function (i,n){
					var ii;
					for(ii=0;ii<len;ii++) {
						if(grp.groupField[ii] === n.name ) {
							cp[ii] = i;
							break;
						}
					}
				});
				function findGroupIdx( ind , offset, grp) {
					var ret = false, i;
					if(offset===0) {
						ret = grp[ind];
					} else {
						var id = grp[ind].idx;
						if(id===0) {
							ret = grp[ind];
						}  else {
							for(i=ind;i >= 0; i--) {
								if(grp[i].idx === id-offset) {
									ret = grp[i];
									break;
								}
							}
						}
					}
					return ret;
				}
				function buildSummaryTd(i, ik, grp, foffset) {
					var fdata = findGroupIdx(i, ik, grp),
					//cm = $t.p.colModel,
					vv, grlen = fdata.cnt, k, retarr = emptyData(data.header);
					for(k=foffset; k<colspans;k++) {
						if(!cm[k]._expcol) {
							continue;
						}
						var tplfld = "{0}";
						$.each(fdata.summary,function(){
							if(this.nm === cm[k].name) {
								if(cm[k].summaryTpl)  {
									tplfld = cm[k].summaryTpl;
								}
								vv = this.v;
								if(typeof this.st === 'string' && this.st.toLowerCase() === 'avg') {
									if(this.sd && this.vd) {
										vv = (this.v/this.vd);
									} else if(this.v && grlen > 0) {
										vv = (this.v/grlen);
									}
								}
								try {
									this.groupCount = fdata.cnt;
									this.groupIndex = fdata.dataIndex;
									this.groupValue = fdata.value;
									//vv = $t.formatter('', this.v, k, this);
									//vv = this.v;
								} catch (ef) {
									vv = this.v;
								}
								retarr[this.nm] = $.jgrid.stripHtml( $.jgrid.template(tplfld,vv) );
								return false;
							}
						});
					}
					return retarr;
				}
				function emptyData ( d ) {
					var clone = {};
					for(var key=0;key<d.length; key++ ) {
						clone[ d[key] ] = "";
					}
					return clone;
				}
				var sumreverse = $.makeArray(grp.groupSummary), gv;
				sumreverse.reverse();
				if($t.p.datatype === 'local' && !$t.p.loadonce) {
					$($t).jqGrid('groupingSetup');
					var groupingPrepare = $.jgrid.getMethod("groupingPrepare");
					for(var ll=0; ll < data.body.length; ll++) {
						groupingPrepare.call($($t), data.body[ll], ll);
					}
				}
				$.each(grp.groups,function(i,n){
					toEnd++;
					try {
						if (Array.isArray(grp.formatDisplayField) && $.jgrid.isFunction(grp.formatDisplayField[n.idx])) {
							gv = grp.formatDisplayField[n.idx].call($t, n.displayValue, n.value, $t.p.colModel[cp[n.idx]], n.idx, grp);
						} else {
							gv = $t.formatter('', n.displayValue, cp[n.idx], n.value );
						}
					} catch (egv) {
						gv = n.displayValue;
					}
					var grpTextStr = '';
					if($.jgrid.isFunction(grp.groupText[n.idx])) {
						grpTextStr = grp.groupText[n.idx].call($t, gv, n.cnt, n.summary);
					} else {
						grpTextStr = $.jgrid.template(grp.groupText[n.idx], gv, n.cnt, n.summary);
					}
					if( !(typeof grpTextStr ==='string' || typeof grpTextStr ==='number' ) ) {
						grpTextStr = gv;
					}
					var arr;
					if(grp.groupSummaryPos[n.idx] === 'header')  {
						arr = buildSummaryTd(i, 0, grp.groups, 0 /*grp.groupColumnShow[n.idx] === false ? (mul ==="" ? 2 : 3) : ((mul ==="") ? 1 : 2)*/ );
					} else {
						arr = emptyData(data.header);
					}
					var fkey = Object.keys(arr);
					arr[fkey[0]] = $.jgrid.stripHtml( new Array(n.idx*5).join(' ') + grpTextStr );
					addRow( arr, false, false, true );
					var leaf = len-1 === n.idx;
					if( leaf ) {
						var gg = grp.groups[i+1], kk, ik, offset = 0, sgr = n.startRow,
						end = gg !== undefined ?  gg.startRow : grp.groups[i].startRow + grp.groups[i].cnt;
						for(kk=sgr;kk<end;kk++) {
							if(!grdata[kk - offset]) { break; }
							var to = grdata[kk - offset];
							addRow( to, false );
						}

						if(grp.groupSummaryPos[n.idx] !== 'header') {
							var jj;
							if (gg !== undefined) {
								for (jj = 0; jj < grp.groupField.length; jj++) {
									if (gg.dataIndex === grp.groupField[jj]) {
										break;
									}
								}
								toEnd = grp.groupField.length - jj;
							}
							for (ik = 0; ik < toEnd; ik++) {
								if(!sumreverse[ik]) { continue; }
								arr = buildSummaryTd(i, ik, grp.groups, 0);
								addRow( arr, false, false, true );
							}
							toEnd = jj;
						}
					}
				});
			}
//============================================================================
			if( $.jgrid.isFunction( o.loadIndicator )) {
				o.loadIndicator.call($t, 'show');
			} else if(o.loadIndicator) {
				$($t).jqGrid("progressBar", {method:"show", loadtype : $t.p.loadui, htmlcontent: $.jgrid.getRegional($t,'defaults.loadtext') });
			}
			$( 'sheets sheet', xlsx.xl['workbook.xml'] ).attr( 'name', o.sheetName );
			var mrow =0,  gh , mergecell=[],key, l, clone ={}, ind, ghdata, start, end;
			if(o.includeGroupHeader && $($t).jqGrid('isGroupHeaderOn') ) {
				gh = $t.p.groupHeader;
				for (l = 0; l < gh.length; l++) {
					ghdata = gh[l].groupHeaders;
					var colspan = gh[l].useColSpanStyle && gh.length === 1, colToSkip=[],
					ghputin = [], colInHeader = [], k, nok, cpos, fk;
					mrow++;
					// column to skip
					if(colspan) {
						for(k = 0; k < ghdata.length; k++) {
							key = ghdata[k].startColumnName;
							nok = ghdata[k].numberOfColumns;
							cpos = $.jgrid.getElemByAttrVal (cm,  'name', key, true) ;
							for(fk = cpos; fk < cpos + ghdata[k].numberOfColumns;fk++) {
								colInHeader[cm[fk].name] = key;
								ind = data.header.indexOf(cm[fk].name);
								if(  ind !== -1) {
									colToSkip.push(ind);
								}
							}
						}
					}
					
					for(j = 0; j < data.header.length; j++  ) {
						key = data.header[j];
						clone[key] = colspan ? data.labels[j] : "";
						start = -1; end = -1;
						for(k = 0; k < ghdata.length; k++) {
							if(ghdata[k].startColumnName === key) {
								ghputin.push(key);
								clone[key] = ghdata[k].titleText;
								nok = ghdata[k].numberOfColumns;
								cpos = $.jgrid.getElemByAttrVal (cm,  'name', key, true) ;
								for(fk = cpos; fk < cpos + ghdata[k].numberOfColumns;fk++) {
									if(cm[fk].hidden === true) {
										nok--;
									}
								}
								start = $.jgrid.excelCellPos(j) + mrow;
								end = $.jgrid.excelCellPos(j+ nok - 1) + mrow;

								mergecell.push({ ref: start+":"+end });
									}
								}
						if(start === -1 && end === -1 && colspan && colToSkip.indexOf(j) === -1) {
							start = $.jgrid.excelCellPos(j) + mrow;
							end = $.jgrid.excelCellPos(j) + (mrow + 1);
							mergecell.push({ ref: start+":"+end });
						}
					}
					// we are lost - need to find way					
					if(ghputin.length < ghdata.length) {
						for(k=0;k < data.hidden.length;k++) {
							var icol = $.jgrid.inColumnHeader(data.hidden[k], ghdata);
							// if hidden startColumnName 
							if(icol >= 0 ) {
								key = data.hidden[k];
								for(var key2 in colInHeader) {
									if(colInHeader[key2] === key) {
										if(clone[key2]) { // first visible in group
											clone[key2] = ghdata[icol].titleText;
											ind  = data.header.indexOf(key2);
											nok = ghdata[icol].numberOfColumns;
											cpos = $.jgrid.getElemByAttrVal (cm,  'name', key, true) ;
											for(fk = cpos; fk < cpos + ghdata[icol].numberOfColumns;fk++) {
												if(cm[fk].hidden === true) {
													nok--;
												}
											}
											start = $.jgrid.excelCellPos(ind) + mrow;
											end = $.jgrid.excelCellPos(ind+ nok - 1) + mrow;
											mergecell.push({ ref: start+":"+end });
											break;
										}
									}
								}
							}
						}
					}					
					addRow( clone, true, true );
				}

				//$('row c', rels).attr( 's', defaultHeaderStyle ); // bold

					}
			if ( o.includeLabels ) {
				if($t.p.colSpanHeader.length) {
					mrow++; gh = $t.p.colSpanHeader; clone ={};
					for(j = 0; j < data.header.length; j++  ) {
						key = data.header[j];
						clone[key] =  data.labels[j];
						for (l = 0; l < gh.length; l++) {
							ghdata = gh[l];
							if(ghdata.startColumnName === key) {
								clone[key] = ghdata.titleText;
								start = $.jgrid.excelCellPos(j) + mrow;
								end = $.jgrid.excelCellPos(j+ghdata.numberOfColumns -1) + mrow;
								mergecell.push({ ref: start+":"+end });
							}
						}
					}
					addRow( clone, true, true );
				} else {
				addRow( data.header, true, true );
				}
			
				//$('row', rels).last().find('c').attr( 's', '2' ); // bold
			}
			if (data.mergecell.length) {
			  mergecell = mergecell.concat(data.mergecell);
			}
			if(mergecell.length) {
				var merge = $.jgrid.makeNode( rels, 'mergeCells', {
					attr : {
						count : mergecell.length
					}
				});
				$('worksheet', rels).append( merge );
				for(i=0;i<mergecell.length;i++) {
					merge.appendChild($.jgrid.makeNode(rels, 'mergeCell',{
						attr:  mergecell[i]
					}));
				}
			}
			if ( o.includeHeader || $t.p.headerrow) {
				var hlen = $($t).jqGrid("headerData", "getlength"), il, hdata;
				for(il=0; il < hlen; il++) {
					hdata = $($t).jqGrid("headerData", "get", null, false, il, false);
				for( i in hdata) {
					if(hdata.hasOwnProperty(i)) {
						hdata[i] = $.jgrid.stripHtml(hdata[i]);
					}
				}
				if(!$.isEmptyObject(hdata)) {
					addRow( hdata, true );
					$('row', rels).last().find('c').attr( 's', '2' ); // bold
				}
			}
			}
			if( $t.p.grouping ) {
				var savlcgr = $t.p.groupingView._locgr ? true : false;
				$t.p.groupingView._locgr = false;
				groupToExcel(data.body);
				$t.p.groupingView._locgr = savlcgr;
			} else {
				for ( var n=0, ie=data.body.length ; n<ie ; n++ ) {
					addRow( data.body[n], false );
				}
			}
			if ( o.includeFooter || $t.p.footerrow) {
				if(!$.isEmptyObject(data.footer)) {
					if(Array.isArray(data.footer)) {
						for(var n=0;n<data.footer.length;n++) {
							addRow( data.footer[n], true );
							$('row', rels).last().find('c').attr( 's', '2' ); // bold
						}
					} else {
						addRow( data.footer, true );
						$('row', rels).last().find('c').attr( 's', '2' ); // bold						
					}
				}
			}

			// Set column widths
			var cols = $.jgrid.makeNode( rels, 'cols' );
			$('worksheet', rels).prepend( cols );

			for ( i=0, ien=data.width.length ; i<ien ; i++ ) {
				cols.appendChild( $.jgrid.makeNode( rels, 'col', {
					attr: {
						min: i+1,
						max: i+1,
						width: data.width[i],
						customWidth: 1
					}
				} ) );
			}
			if($.jgrid.isFunction( o.onBeforeExport) ) {
				o.onBeforeExport.call($t, xlsx, rowPos );
			}
			data = null; // free memory
			try {
				var zip = new JSZip();
				var zipConfig = {
					type: 'blob',
					mimeType: o.mimetype
				};
				$.jgrid.xmlToZip( zip, xlsx );
				if ( zip.generateAsync ) {
					// JSZip 3+
					zip.generateAsync( zipConfig )
					.then( function ( blob ) {
						$.jgrid.saveAs( blob, o.fileName, { type : o.mimetype } );
					});
				} else {
					// JSZip 2.5
					$.jgrid.saveAs( zip.generate( zipConfig ), o.fileName, { type : o.mimetype } );				}
			} catch(e) {
				throw e;
			} finally {
				if( $.jgrid.isFunction( o.loadIndicator )) {
					o.loadIndicator.call($t, 'hide');
				} else if(o.loadIndicator) {
					$($t).jqGrid("progressBar", {method:"hide", loadtype : $t.p.loadui });
				}
			}
		});
	},
	exportToPdf : function (o) {
		o = $.extend(true,{
			title: null,
			orientation: 'portrait',
			pageSize: 'A4',
			description: null,
			onBeforeExport: null,
			download: 'download',
			includeLabels : true,
			includeGroupHeader : true,
			includeFooter : true,
			includeHeader : true,
			fileName : "jqGridExport.pdf",
			mimetype : "application/pdf",
			treeindent : "-",
			visibleTreeNodes : false,
			centerTableOnPage : false,
			loadIndicator : true // can be a function

		}, o || {} );
		return this.each(function() {
			var $t = this, rows = [], j, cm = $t.p.colModel, ien, obj = {}, key,
			data = $t.p.treeGrid ? $($t).jqGrid('getRowData', null, true, o.treeindent, o.visibleTreeNodes) : $t.addLocalData( true ),  def = [], i=0, map=[], test=[], widths = [],  align={};
// Group function
			function groupToPdf ( grdata ) {
				var grp = $t.p.groupingView,
				cp=[], len =grp.groupField.length,
				cm = $t.p.colModel,
				colspans = cm.length,
				toEnd = 0;

				$.each(cm, function (i,n){
					var ii;
					for(ii=0;ii<len;ii++) {
						if(grp.groupField[ii] === n.name ) {
							cp[ii] = i;
							break;
						}
					}
				});

				function constructRow( row, fmt, skipfirstcol ) {
					var k =0, test=[], ommit, val;
					if(skipfirstcol === undefined ) {
						skipfirstcol = false;
					}
					//row = data[i];
					for( var key=0; key < def.length; key++ ) {
						ommit = !(key === 0 && skipfirstcol);// ? false : true;
						val = row[def[key]];
						obj = {
							text: val == null || val === '' ? '' : (fmt && ommit ? $.jgrid.formatCell( val + '', map[k], data[i], cm[map[k]], $t, 'pdf') : val),
							alignment : align[key],
							style : 'tableBody'
						};
						test.push(obj);
						k++;
					}
					return test;
				}

				function findGroupIdx( ind , offset, grp) {
					var ret = false, i;
					if(offset===0) {
						ret = grp[ind];
					} else {
						var id = grp[ind].idx;
						if(id===0) {
							ret = grp[ind];
						}  else {
							for(i=ind;i >= 0; i--) {
								if(grp[i].idx === id-offset) {
									ret = grp[i];
									break;
								}
							}
						}
					}
					return ret;
				}

				function buildSummaryTd(i, ik, grp, foffset) {
					var fdata = findGroupIdx(i, ik, grp),
					//cm = $t.p.colModel,
					vv, grlen = fdata.cnt, k, retarr = emptyData(def);
					for(k=foffset; k<colspans;k++) {
						if(!cm[k]._expcol) {
							continue;
						}
						var tplfld = "{0}";
						$.each(fdata.summary,function(){
							if(this.nm === cm[k].name) {
								if(cm[k].summaryTpl)  {
									tplfld = cm[k].summaryTpl;
								}
								vv = this.v;
								if(typeof this.st === 'string' && this.st.toLowerCase() === 'avg') {
									if(this.sd && this.vd) {
										vv = (this.v/this.vd);
									} else if(this.v && grlen > 0) {
										vv = (this.v/grlen);
									}
								}
								try {
									this.groupCount = fdata.cnt;
									this.groupIndex = fdata.dataIndex;
									this.groupValue = fdata.value;
									//vv = this.v;
								} catch (ef) {
									vv = this.v;
								}
								retarr[this.nm] = $.jgrid.stripHtml( $.jgrid.template(tplfld,vv) );
								return false;
							}
						});
					}
					return retarr;
				}

				function emptyData ( d ) {
					var clone = {};
					for(var key = 0; key< d.length; key++ ) {
						clone[d[key]] = "";
					}
					return clone;
				}

				var sumreverse = $.makeArray(grp.groupSummary), gv;
				sumreverse.reverse();
				if($t.p.datatype === 'local' && !$t.p.loadonce) {
					$($t).jqGrid('groupingSetup');
					var groupingPrepare = $.jgrid.getMethod("groupingPrepare");
					for(var ll=0; ll < data.length; ll++) {
						groupingPrepare.call($($t), data[ll], ll);
					}
				}
				$.each(grp.groups,function(i,n){
					toEnd++;
					try {
						if (Array.isArray(grp.formatDisplayField) && $.jgrid.isFunction(grp.formatDisplayField[n.idx])) {
							gv = grp.formatDisplayField[n.idx].call($t, n.displayValue, n.value, $t.p.colModel[cp[n.idx]], n.idx, grp);
						} else {
							gv = $t.formatter('', n.displayValue, cp[n.idx], n.value );
						}
					} catch (egv) {
						gv = n.displayValue;
					}
					var grpTextStr = '';
					if($.jgrid.isFunction(grp.groupText[n.idx])) {
						grpTextStr = grp.groupText[n.idx].call($t, gv, n.cnt, n.summary);
					} else {
						grpTextStr = $.jgrid.template(grp.groupText[n.idx], gv, n.cnt, n.summary);
					}
					if( !(typeof grpTextStr ==='string' || typeof grpTextStr ==='number' ) ) {
						grpTextStr = gv;
					}
					var arr;
					if(grp.groupSummaryPos[n.idx] === 'header')  {
						arr = buildSummaryTd(i, 0, grp.groups, 0 /*grp.groupColumnShow[n.idx] === false ? (mul ==="" ? 2 : 3) : ((mul ==="") ? 1 : 2)*/ );
					} else {
						arr = emptyData(def);
					}
					var fkey = Object.keys(arr);
					arr[fkey[0]] = $.jgrid.stripHtml( new Array(n.idx*5).join(' ') + grpTextStr );
					rows.push( constructRow (arr, true, true) );
					var leaf = len-1 === n.idx;
					if( leaf ) {
						var gg = grp.groups[i+1], kk, ik, offset = 0, sgr = n.startRow,
						end = gg !== undefined ?  gg.startRow : grp.groups[i].startRow + grp.groups[i].cnt;
						for(kk=sgr;kk<end;kk++) {
							if(!grdata[kk - offset]) { break; }
							var to = grdata[kk - offset];
							rows.push( constructRow (to, true) );
						}

						if(grp.groupSummaryPos[n.idx] !== 'header') {
							var jj;
							if (gg !== undefined) {
								for (jj = 0; jj < grp.groupField.length; jj++) {
									if (gg.dataIndex === grp.groupField[jj]) {
										break;
									}
								}
								toEnd = grp.groupField.length - jj;
							}
							for (ik = 0; ik < toEnd; ik++) {
								if(!sumreverse[ik]) { continue; }
								arr = buildSummaryTd(i, ik, grp.groups, 0);
								rows.push( constructRow (arr, true, true) );
							}
							toEnd = jj;
						}
					}
				});
			}
//============================================================================
			if( $.jgrid.isFunction( o.loadIndicator )) {
				o.loadIndicator.call($t, 'show');
			} else if(o.loadIndicator) {
				$($t).jqGrid("progressBar", {method:"show", loadtype : $t.p.loadui, htmlcontent: $.jgrid.getRegional($t,'defaults.loadtext') });
			}
			var k;
			for ( j=0, ien=cm.length ; j<ien ; j++ ) {
				cm[j]._expcol = true;
				if(cm[j].exportcol === undefined ) {
					if(cm[j].hidden) {
						cm[j]._expcol = false;
					}
				} else {
					cm[j]._expcol = cm[j].exportcol;
				}
				if( $.jgrid.isServiceCol(cm[j].name)  || !cm[j]._expcol ) {
					continue;
				}
				obj = { text:  $t.p.colNames[j], style: 'tableHeader' };
				test.push( obj );
				def[i]  = cm[j].name;
				map[i] = j;
				widths.push(cm[j].width);
				align[cm[j].name] = cm[j].align || 'left';
				i++;
			}
			var gh, clone;
			if(o.includeGroupHeader && $($t).jqGrid('isGroupHeaderOn') ) {
				gh = $t.p.groupHeader;
				for (i=0;i < gh.length; i++) {
					clone = [];
					var ghdata = gh[i].groupHeaders,
					colSpan = gh[i].useColSpanStyle;
					for(key=0; key < cm.length; key++ ) {
						/*
						if(colSpan) {
							obj = {text: $t.p.colNames[key], style: 'tableHeader', rowSpan : 2, verticalAlign : "center"};
						} else {
							obj = {text:'', style: 'tableHeader'};
						}
						*/
						var put_me = true;
						if( $.jgrid.isServiceCol( cm[key].name ) || !cm[key]._expcol ) {
							put_me = false;
						} else {
							if(colSpan) {
								obj = {text: $t.p.colNames[key], style: 'tableHeader', rowSpan : 2, verticalAlign : "center"};
							} else {
								obj = {text:'', style: 'tableHeader'};
							}		
						}
						for(k=0;k<ghdata.length;k++) {
							if(ghdata[k].startColumnName === cm[key].name) {
								var nok = ghdata[k].numberOfColumns;
								for(var fk = key; fk<key+ghdata[k].numberOfColumns;fk++) {
									if(cm[fk].hidden === true) {
										nok--;
									}
								}
								obj = {
									text : ghdata[k].titleText,
									colSpan: nok, /*ghdata[k].numberOfColumns,*/
									style: 'tableHeader'
								};
								if(put_me===false && nok >0) {
									put_me = true;
									key=key+(ghdata[k].numberOfColumns-nok);
								}
							}
						}
						if(put_me) {
							clone.push(obj);
						}
						//j++;
					}
					rows.push(clone);
				}
			}

			if(o.includeLabels) {
				if($t.p.colSpanHeader.length) {
					gh = $t.p.colSpanHeader;
					clone = [];
					for(key=0; key < def.length; key++ ) {
						obj = {text: $t.p.colNames[key], style: 'tableHeader', verticalAlign : "center"};
						for(k=0;k<gh.length;k++) {
							if(gh[k].startColumnName === def[key]) {
								obj = {
									text : gh[k].titleText,
									colSpan: gh[k].numberOfColumns,
									style: 'tableHeader'
								};
							}
						}
						clone.push(obj);
						j++;
					}
					rows.push( clone );
				} else { 
				rows.push( test );
			}
			}
			var hlen, il;
			if ( o.includeHeader && $t.p.headerrow) {
				var hdata;
				hlen = $($t).jqGrid("headerData", "getlength");
				for(il=0; il < hlen; il++) {
					hdata = $($t).jqGrid("headerData", "get", null, false, il, false);
				test=[];
				for( key =0; key< def.length; key++) {
					obj  =  {
						text : $.jgrid.stripHtml( $.jgrid.getAccessor(hdata, def[key]) ),
						style : 'tableFooter',
						alignment : align[def[key]]
					};
					test.push( obj );
				}
				rows.push( test );
			}
			}
			if($t.p.grouping) {
				var savlcgr = $t.p.groupingView._locgr ? true : false;
				$t.p.groupingView._locgr = false;
				groupToPdf(data);
				$t.p.groupingView._locgr = savlcgr;
			} else {
				var row;
				for ( i=0, ien=data.length ; i<ien ; i++ ) {
					k =0;
					test=[];
					row = data[i];
					for( key = 0;key < def.length; key++ ) {
						obj	= {
							text: row[def[key]] == null ? '' : $.jgrid.stripHtml($.jgrid.formatCell( $.jgrid.getAccessor(row, def[key]) + '', map[k], data[i], cm[map[k]], $t, 'pdf')),
							alignment : align[def[key]],
							style : 'tableBody'
						};
						test.push(obj);
						k++;
					}
					rows.push(test);
				}
			}

			if ( o.includeFooter && $t.p.footerrow) {
				hlen = $($t).jqGrid("footerData", "getlength");
				for(il=0; il < hlen; il++) {				
					var fdata = $($t).jqGrid("footerData", "get", null, false, il, false);
				test=[];
				for( key =0; key< def.length; key++) {
					obj  =  {
						text : $.jgrid.stripHtml( $.jgrid.getAccessor(fdata, def[key]) ),
						style : 'tableFooter',
						alignment : align[def[key]]
					};
					test.push( obj );
				}
				rows.push( test );
			}
			}
			var tblcnt = {
				style : 'tableExample',
				widths : widths,
				table: {
					headerRows: (gh!=null) ? 0 : 1,
					body: rows
				}
			};
			if(o.centerTableOnPage) {
				tblcnt = {
					columns : [
						{ width: '*', text: '' },
					{
						style : 'tableExample',
							width: 'auto',
						widths : widths,
						table: {
							headerRows: (gh!=null) ? 0 : 1,
							body: rows
							},
							alignment: "center"
						},
						{ width: '*', text: '' }
					]
				};
			}
			var doc = {
				pageSize: o.pageSize,
				pageOrientation: o.orientation,
				content: [ tblcnt ],
				styles: {
					tableHeader: {
						bold: true,
						fontSize: 11,
						color: '#2e6e9e',
						fillColor: '#dfeffc',
						alignment: 'center'
					},
					tableBody: {
						fontSize: 10
					},
					tableFooter: {
						bold: true,
						fontSize: 11,
						color: '#2e6e9e',
						fillColor: '#dfeffc'
					},
					title: {
						alignment: 'center',
						fontSize: 15
					},
					description: {}
				},
				defaultStyle: {
					fontSize: 10
				}
			};
			if ( o.description ) {
				doc.content.unshift( {
					text: o.description,
					style: 'description',
					margin: [ 0, 0, 0, 12 ]
				} );
			}

			if ( o.title ) {
				doc.content.unshift( {
					text: o.title,
					style: 'title',
					margin: [ 0, 0, 0, 12 ]
				} );
			}
			if( $.jgrid.isFunction( o.onBeforeExport ) ) {
				o.onBeforeExport.call($t, doc);
			}
			try {
				var pdf = pdfMake.createPdf( doc );
				pdf.getDataUrl(function(url) {
					if( $.jgrid.isFunction( o.loadIndicator )) {
						o.loadIndicator.call($t, 'hide');
					} else if(o.loadIndicator) {
						$($t).jqGrid("progressBar", {method:"hide", loadtype : $t.p.loadui });
					}
				});
				if ( o.download === 'open' ) {
					pdf.open();
				} else {
					pdf.getBuffer( function (buffer) {
						$.jgrid.saveAs( buffer, o.fileName, {type: o.mimetype } );
					} );
				}

			} catch(e) {
				throw e;
			}
		});
	},
	exportToHtml : function ( o ) {
		o = $.extend(true,{
			title: '',
			onBeforeExport: null,
			includeLabels : true,
			includeGroupHeader : true,
			includeFooter: true,
			includeHeader: true,
			tableClass : 'jqgridprint',
			autoPrint : false,
			topText : '',
			bottomText : '',
			returnAsString : false,
			treeindent : '&nbsp;',
			visibleTreeNodes : false,
			loadIndicator : true // can be a function
		}, o || {} );
		var ret;
		this.each(function() {
			var $t = this,
			cm = $t.p.colModel,
			i=0, j, ien, //obj={},
			data = {
				body  : $t.p.treeGrid ? $($t).jqGrid('getRowData', null, true, o.treeindent, o.visibleTreeNodes) : $t.addLocalData( true ),
				header : [],
				footer : [],
				width : [],
				map : [],
				align:[]
			};
			for ( j=0, ien=cm.length ; j<ien ; j++ ) {
				cm[j]._expcol = true;
				if(cm[j].exportcol === undefined) {
					if(cm[j].hidden) {
						cm[j]._expcol = false;
					}
				} else {
					cm[j]._expcol = cm[j].exportcol;
				}
				if( cm[j].name === 'cb' || cm[j].name === 'rn' ||  cm[j].name === 'subgrid' || cm[j].name === 'sc' || !cm[j]._expcol) {
					continue;
				}
				data.header[i] = cm[j].name;
				data.width[ i ] = cm[j].width;
				data.map[i] = j;
				data.align[i] = cm[j].align || 'left';
				i++;
			}

			var _link = document.createElement( 'a' );

			var _styleToAbs = function( el ) {
				var clone = $(el).clone()[0];

				if ( clone.nodeName.toLowerCase() === 'link' ) {
					clone.href = _relToAbs( clone.href );
				}

				return clone.outerHTML;
			};

			var _relToAbs = function( href ) {
				// Assign to a link on the original page so the browser will do all the
				// hard work of figuring out where the file actually is
				_link.href = href;
				var linkHost = _link.host;

				// IE doesn't have a trailing slash on the host
				// Chrome has it on the pathname
				if ( linkHost.indexOf('/') === -1 && _link.pathname.indexOf('/') !== 0) {
					linkHost += '/';
				}

				return _link.protocol+"//"+linkHost+_link.pathname+_link.search;
			};

			var addRow = function ( d, tag , style ) {
				var str = '<tr>', stl;
				for ( var i=0, ien=d.length ; i<ien ; i++ ) {
					stl = (style === true ? " style=width:"+data.width[i]+"px;":"");
					str += '<'+tag+stl+'>'+$t.p.colNames[data.map[i]]+'</'+tag+'>';
				}

				return str + '</tr>';
			};
			var addBodyRow = function ( d, tag, frm, style, colsp) {
				var str = '<tr>', f, stl;
				//style = true;

				for ( var i=0, ien = data.header.length; i< ien; i++ ) {
					if(colsp) {
						stl = ' colspan= "'+ (data.header.length) +'"' + " style=text-align:left";
					} else {
						stl = (style === true ? " style=width:"+data.width[i]+"px;text-align:"+data.align[i]+";" : " style=text-align:"+data.align[i]+";");
					}
					f= data.header[i];
					if (d.hasOwnProperty(f) ) {
						str += '<'+tag+stl+'>'+ (frm ? $.jgrid.formatCell( $.jgrid.getAccessor( d, f ), data.map[i], d, cm[data.map[i]], $t, 'html') : d[f])+'</'+tag+'>';
					}
					if(colsp) {
						break;
					}
				}

				return str + '</tr>';
			};
//=========================================================================
			function groupToHtml ( grdata ) {
				var grp = $t.p.groupingView,
				cp=[], len =grp.groupField.length,
				colspans = cm.length,
				toEnd = 0, retstr="";
				$.each(cm, function (i,n){
					var ii;
					for(ii=0;ii<len;ii++) {
						if(grp.groupField[ii] === n.name ) {
							cp[ii] = i;
							break;
						}
					}
				});
				function findGroupIdx( ind , offset, grp) {
					var ret = false, i;
					if(offset===0) {
						ret = grp[ind];
					} else {
						var id = grp[ind].idx;
						if(id===0) {
							ret = grp[ind];
						}  else {
							for(i=ind;i >= 0; i--) {
								if(grp[i].idx === id-offset) {
									ret = grp[i];
									break;
								}
							}
						}
					}
					return ret;
				}
				function buildSummaryTd(i, ik, grp, foffset) {
					var fdata = findGroupIdx(i, ik, grp),
					//cm = $t.p.colModel,
					vv, grlen = fdata.cnt, k, retarr = emptyData(data.header);
					for(k=foffset; k<colspans;k++) {
						if(!cm[k]._expcol) {
							continue;
						}
						var tplfld = "{0}";
						$.each(fdata.summary,function(){
							if(this.nm === cm[k].name) {
								if(cm[k].summaryTpl)  {
									tplfld = cm[k].summaryTpl;
								}
								vv = this.v;
								if(typeof this.st === 'string' && this.st.toLowerCase() === 'avg') {
									if(this.sd && this.vd) {
										vv = (this.v/this.vd);
									} else if(this.v && grlen > 0) {
										vv = (this.v/grlen);
									}
								}
								try {
									this.groupCount = fdata.cnt;
									this.groupIndex = fdata.dataIndex;
									this.groupValue = fdata.value;
									//vv = $t.formatter('', this.v, k, this);
									//vv = this.v;
								} catch (ef) {
									vv = this.v;
								}
								retarr[this.nm] = $.jgrid.stripHtml( $.jgrid.template(tplfld,vv) );
								return false;
							}
						});
					}
					return retarr;
				}
				function emptyData ( d ) {
					var clone = {};
					for(var key=0;key<d.length; key++ ) {
						clone[ d[key] ] = "";
					}
					return clone;
				}
				var sumreverse = $.makeArray(grp.groupSummary), gv;
				sumreverse.reverse();
				if($t.p.datatype === 'local' && !$t.p.loadonce) {
					$($t).jqGrid('groupingSetup');
					var groupingPrepare = $.jgrid.getMethod("groupingPrepare");
					for(var ll=0; ll < data.body.length; ll++) {
						groupingPrepare.call($($t), data.body[ll], ll);
					}
				}
				$.each(grp.groups,function(i,n){
					toEnd++;
					try {
						if (Array.isArray(grp.formatDisplayField) && $.jgrid.isFunction(grp.formatDisplayField[n.idx])) {
							gv = grp.formatDisplayField[n.idx].call($t, n.displayValue, n.value, $t.p.colModel[cp[n.idx]], n.idx, grp);
						} else {
							gv = $t.formatter('', n.displayValue, cp[n.idx], n.value );
						}
					} catch (egv) {
						gv = n.displayValue;
					}
					var grpTextStr = '';
					if($.jgrid.isFunction(grp.groupText[n.idx])) {
						grpTextStr = grp.groupText[n.idx].call($t, gv, n.cnt, n.summary);
					} else {
						grpTextStr = $.jgrid.template(grp.groupText[n.idx], gv, n.cnt, n.summary);
					}
					if( !(typeof grpTextStr ==='string' || typeof grpTextStr ==='number' ) ) {
						grpTextStr = gv;
					}
					var arr, colSpan = false;
					if(grp.groupSummaryPos[n.idx] === 'header')  {
						arr = buildSummaryTd(i, 0, grp.groups, 0 /*grp.groupColumnShow[n.idx] === false ? (mul ==="" ? 2 : 3) : ((mul ==="") ? 1 : 2)*/ );
					} else {
						arr = emptyData(data.header);
						colSpan = true;
					}
					var fkey = Object.keys(arr);
					arr[fkey[0]] =  new Array(n.idx*5).join(' ') + grpTextStr ;
					retstr += addBodyRow( arr, 'td', true, toEnd === 1, colSpan  );
					var leaf = len-1 === n.idx;
					if( leaf ) {
						var gg = grp.groups[i+1], kk, ik, offset = 0, sgr = n.startRow,
						end = gg !== undefined ?  gg.startRow : grp.groups[i].startRow + grp.groups[i].cnt;
						for(kk=sgr;kk<end;kk++) {
							if(!grdata[kk - offset]) { break; }
							var to = grdata[kk - offset];
							retstr += addBodyRow( to, 'td', true );
							//addRow( to, false );
						}

						if(grp.groupSummaryPos[n.idx] !== 'header') {
							var jj;
							if (gg !== undefined) {
								for (jj = 0; jj < grp.groupField.length; jj++) {
									if (gg.dataIndex === grp.groupField[jj]) {
										break;
									}
								}
								toEnd = grp.groupField.length - jj;
							}
							for (ik = 0; ik < toEnd; ik++) {
								if(!sumreverse[ik]) { continue; }
								arr = buildSummaryTd(i, ik, grp.groups, 0);
								retstr += addBodyRow( arr, 'td', true );
								//addRow( arr, true );
							}
							toEnd = jj;
						}
					}
				});
				return retstr;
			}
			if( $.jgrid.isFunction( o.loadIndicator )) {
				o.loadIndicator.call($t, 'show');
			} else if(o.loadIndicator) {
				$($t).jqGrid("progressBar", {method:"show", loadtype : $t.p.loadui, htmlcontent: $.jgrid.getRegional($t,'defaults.loadtext') });
			}

			var html = '<table class="'+o.tableClass+'">';

			if ( o.includeLabels ) {
				html += '<thead>'+ addRow( data.header, 'th', true ) +'</thead>';
			}

			html += '<tbody>';
			var hlen, il;
			if ( o.includeHeader && $t.p.headerrow ) {
				var hdata;
				hlen = $($t).jqGrid("footerData", "getlength");
				for(il=0; il < hlen; il++) {
					for(il=0; il < hlen; il++) {				
						hdata = $($t).jqGrid("headerData", "get", null, false, il, false);
				html += addBodyRow( hdata, 'td' , false);
			}
				}
			}
			if( $t.p.grouping ) {
				var savlcgr = $t.p.groupingView._locgr ? true : false;
				$t.p.groupingView._locgr = false;
				html += groupToHtml(data.body);
				$t.p.groupingView._locgr = savlcgr;
			} else {
				for ( i=0, ien=data.body.length ; i<ien ; i++ ) {
					html += addBodyRow( data.body[i], 'td', true, (i===0?true:false) );
				}
			}

			if ( o.includeFooter && $t.p.footerrow ) {
				hlen = $($t).jqGrid("footerData", "getlength");
				for(il=0; il < hlen; il++) {				
					data.footer[il] = $($t).jqGrid("footerData", "get", null, false, il, false);
					html += addBodyRow( data.footer[il], 'td' , false);
			}
			}
			html += '</tbody>';
			html += '</table>';
			if (o.returnAsString ) {
				ret = html;
			} else {
				// Open a new window for the printable table
				var win = window.open( '', '' );
				win.document.close();

				var head = o.title ? '<title>'+o.title+'</title>' : '';
				$('style, link').each( function () {
					head += _styleToAbs( this );
				} );

				try {
					win.document.head.innerHTML = head; // Work around for Edge
				}
				catch (e) {
					$(win.document.head).html( head ); // Old IE
				}

				win.document.body.innerHTML =
					(o.title ? '<h1>'+o.title+'</h1>' : '') +
					'<div>'+(o.topText || '')+'</div>'+
					html+
					'<div>'+(o.bottomText || '')+'</div>';

				$(win.document.body).addClass('html-view');

				$('img', win.document.body).each( function ( i, img ) {
					img.setAttribute( 'src', _relToAbs( img.getAttribute('src') ) );
				} );

				if( $.jgrid.isFunction( o.onBeforeExport ) ) {
					o.onBeforeExport.call($t, win);
				}

				if(Boolean(win.chrome)) {
					if ( o.autoPrint ) {
						win.print();
						win.close();
					}
				} else {
					setTimeout( function () {
						if ( o.autoPrint ) {
							win.print();
							win.close();
						}
					}, 1000 );
				}
			}
			if( $.jgrid.isFunction( o.loadIndicator )) {
				o.loadIndicator.call($t, 'hide');
			} else if(o.loadIndicator) {
				$($t).jqGrid("progressBar", {method:"hide", loadtype : $t.p.loadui });
			}
		});
		return ret;
	}
});

//module begin
$.extend($.jgrid,{
	focusableElementsList : [
		'>a[href]',
		'>button:not([disabled])',
		'>area[href]',
		'>input:not([disabled])',
		'>select:not([disabled])',
		'>textarea:not([disabled])',
		'>iframe',
		'>object',
		'>embed',
		'>*[tabindex]',
		'>*[contenteditable]'
	]
});
$.jgrid.extend({
	ariaBodyGrid : function ( p ) {
		var o = $.extend({
			onEnterCell : null,
			onKeyCheck : null,
			customCellAction : null
		}, p || {});

		return this.each(function (){
			var $t = this,
			getstyle = $.jgrid.getMethod("getStyleUI"),
			highlight = getstyle($t.p.styleUI+'.common','highlight', true);

			// basic functions
			function isValidCell(row, col) {
				return (
					!isNaN(row) &&
					!isNaN(col) &&
					row >= 0 &&
					col >= 0 &&
					$t.rows.length &&
					row < $t.rows.length &&
					col < $t.p.colModel.length
				);
			}
			function getNextCell( dirX, dirY) {
				var row = $t.p.iRow + dirY; // set the default one when initialize grid
				var col = $t.p.iCol + dirX; // set the default .................
				var rowCount = $t.rows.length;
				var isLeftRight = dirX !== 0;

				if (!rowCount) {
					return false;
				}
				var colCount = $t.p.colModel.length;
				if (isLeftRight) {
					if (col < 0 && row >= 2) {
						col = colCount - 1;
						row--;
					}
					if (col >= colCount) {
						col = 0;
						row++;
					}
				}
				if (!isLeftRight) {
					if (row < 1) {
						col--;
						row = rowCount - 1;
						if ($t.rows[row] && col >= 0 && !$t.rows[row].cells[col]) {
						// Sometimes the bottom row is not completely filled in. In this case,
						// jump to the next filled in cell.
							row--;
						}
					}
					else if (row >= rowCount || !$t.rows[row].cells[col]) {
						row = 1;
						col++;
					}
				}
				if (isValidCell(row, col)) {
					return {
						row: row,
						col: col
					};
				} else if (isValidCell($t.p.iRow, $t.p.iCol)) {
					return {
						row: $t.p.iRow,
						col: $t.p.iCol
					};
				} else {
					return false;
				}
			}
			function getNextVisibleCell(dirX, dirY) {
				var nextCell = getNextCell( dirX, dirY);
				if (!nextCell) {
					return false;
				}

				while ( $($t.rows[nextCell.row].cells[nextCell.col]).is(":hidden") ) {
					$t.p.iRow = nextCell.row;
					$t.p.iCol = nextCell.col;
					nextCell = getNextCell(dirX, dirY);
					if ($t.p.iRow  === nextCell.row && $t.p.iCol  === nextCell.col) {
						// There are no more cells to try if getNextCell returns the current cell
						return false;
					}
				}
				if( dirY !== 0 ) {
					$($t).jqGrid('setSelection', $t.rows[nextCell.row].id, false, null, false);
				}

				return nextCell;
			}
			function movePage ( dir ) {
				var curpage = $t.p.page, last =$t.p.lastpage;
				curpage = curpage + dir;
				if( curpage <= 0) {
					curpage = 1;
				}
				if( curpage > last ) {
					curpage = last;
				}
				if(  $t.p.page === curpage ) {
					return;
				}
				$t.p.page = curpage;
				$t.grid.populate();
			}
			var focusableElementsSelector = $.jgrid.focusableElementsList.join();
			/*
			function hasFocusableChild( el) {
				return $(focusableElementsSelector, el)[0];
			}
			 * 
			 */
			$($t).removeAttr("tabindex");
			$($t).on('jqGridAfterGridComplete.setAriaGrid', function( e ) {
				//var grid = e.target;
				$("tbody", $t).first().find(">tr:not(.jqgfirstrow)>td:not(:hidden, :has("+focusableElementsSelector+"))").attr("tabindex", -1);
				$("tbody", $t).first().find(">tr:not(.jqgfirstrow)").removeAttr("tabindex");
				if($t.p.iRow !== undefined && $t.p.iCol !== undefined) {
					if($t.rows[$t.p.iRow]) {
					$($t.rows[$t.p.iRow].cells[$t.p.iCol])
						.attr('tabindex', 0)
						.focus( function() { $(this).addClass(highlight);})
						.blur( function () { $(this).removeClass(highlight);});
					}
				}
			});
			$t.p.iRow = 1;
			$t.p.iCol = $.jgrid.getFirstVisibleCol( $t );

			var focusRow=0, focusCol=0; // set the dafualt one
			var custAct = $.jgrid.isFunction( o.customCellAction ) ? o.customCellAction : false;
			var onKeyCheck = $.jgrid.isFunction(o.onKeyCheck) ? o.onKeyCheck : false;
			$($t).on('keydown', function(e) {
				if($t.p.navigationDisabled && $t.p.navigationDisabled === true) {
					return;
				}
				if(e.target.id.startsWith("jqs_"+$t.p.id)) {
					return;
				}
				if(onKeyCheck) {
					if(!onKeyCheck.call($t, $t.rows[$t.p.iRow].id, $t.p.iRow, $t.p.iCol, e) ) {
						return;
					}
				}
				var key = e.which || e.keyCode, nextCell;
				switch(key) {
					case (38) : // DOWN
						nextCell = getNextVisibleCell(0, -1);
						focusRow = nextCell.row;
						focusCol = nextCell.col;
						e.preventDefault();
						break;
					case (40) : // UP
						nextCell = getNextVisibleCell(0, 1);
						focusRow = nextCell.row;
						focusCol = nextCell.col;
						e.preventDefault();
						break;
					case (37) : // LEFT
						nextCell = getNextVisibleCell(-1, 0);
						focusRow = nextCell.row;
						focusCol = nextCell.col;
						e.preventDefault();
						break;
					case (39) : // RIGHT
						nextCell = getNextVisibleCell(1, 0);
						focusRow = nextCell.row;
						focusCol = nextCell.col;
						e.preventDefault();
						break;
					case 36 : // HOME
						if(e.ctrlKey) {
							focusRow = 1;
						} else {
							focusRow = $t.p.iRow;
						}
						focusCol = 0;
						e.preventDefault();
						break;
					case 35 : // END
						if(e.ctrlKey) {
							focusRow = $t.rows.length - 1;
						} else {
							focusRow = $t.p.iRow;
						}
						focusCol = $t.p.colModel.length - 1;
						e.preventDefault();
						break;
					case 33 : // PAGEUP

						movePage( -1 );
						focusCol = $t.p.iCol;
						focusRow = $t.p.iRow;
						e.preventDefault();
						break;
					case 34 : // PAGEDOWN
						movePage( 1 );
						focusCol = $t.p.iCol;
						focusRow = $t.p.iRow;
						if(focusRow > $t.rows.length-1) {
							focusRow = $t.rows.length-1;
							$t.p.iRow = $t.rows.length-1;
						}
						e.preventDefault();
						break;
					case 13 : // Enter
						if( $.jgrid.isFunction( o.onEnterCell )) {
							o.onEnterCell.call( $t, $t.rows[$t.p.iRow].id ,$t.p.iRow, $t.p.iCol, e);
							e.preventDefault();
						}
						return;
					case 113 : // F2
						try{
							$($t).jqGrid('editCell', $t.p.iRow, $t.p.iCol, true, e);
						} catch(e1){}
						break;
					default:
						if( custAct ) {
							custAct.call($t, $t.rows[$t.p.iRow].id ,$t.p.iRow, $t.p.iCol, e);
						}
						return;
				}
				setTimeout(function(){
					$($t).jqGrid("focusBodyCell", focusRow, focusCol, getstyle, highlight);
				},50);
			});
			$($t).on('jqGridBeforeSelectRow.ariaGridClick',function() {
				return false;
			});
			$($t).on('jqGridCellSelect.ariaGridClick', function(el1, id, status,tdhtml, e) {
				var el = e.target;
				if($t.p.iRow > 0 && $t.p.iCol >=0) {
					$($t.rows[$t.p.iRow].cells[$t.p.iCol]).attr("tabindex", -1);
				}
				if($(el).is("td") || $(el).is("th") || el.id.startsWith("jqs_"+$t.p.id)) {
					$t.p.iCol = el.cellIndex;
				} else {
					return;
				}
				var row = $(el).closest("tr.jqgrow");
				$t.p.iRow = row[0].rowIndex;
				$(el).attr("tabindex", 0)
					.addClass(highlight)
					.focus()
					.blur(function(){$(this).removeClass(highlight);});
			});
			$t.p.ariaBody = true;
		});
	},
	excelLikeGrid : function ( p ) {
		var o = $.extend({
			beforeDeleteCell : null,
			customCellAction : null,
			customUndoFunction : null,
			specialChars : [
				'~', '!','@', '#', '$','%','^','&','*','(',')','_', '+','{','}', ':', '"', '|','<','>','?',',','.','/',';','\\','[',']' 
			],
			addonChars : false, // ^[а-я]$/i
			onKeyCheck : null
		}, p || {});

		return this.each(function (){
			var $t = this,
			getstyle = $.jgrid.getMethod("getStyleUI"),
			highlight = getstyle($t.p.styleUI+'.common','highlight', true);
			$t.p.F2key = false;
			// basic functions
			var baseFunc = {
				isValidCell : function (row, col) {
				return (
					!isNaN(row) &&
					!isNaN(col) &&
					row >= 0 &&
					col >= 0 &&
					$t.rows.length &&
					row < $t.rows.length &&
					col < $t.p.colModel.length
				);
				},
				getNextCell: function ( dirX, dirY) {
				var row = $t.p.iRow + dirY; // set the default one when initialize grid
				var col = $t.p.iCol + dirX; // set the default .................
				var rowCount = $t.rows.length;
				var isLeftRight = dirX !== 0;
				var collimit = 	$t.p.frozenColumns ? $t.p.frozenColCount + 1 : 0;
				if (!rowCount) {
					return false;
				}

				var colCount = $t.p.colModel.length;
				if (isLeftRight) {
					if (col < collimit ) {
						col = collimit;
					}
					if (col === colCount) {
						col = colCount;
					}
				}
				if (!isLeftRight) {
						if ($t.rows[row] && col >= 0 && !$t.rows[row].cells[col]) {
							row--;
						}
				}
					if (this.isValidCell(row, col)) {
					return {
						row: row,
						col: col
					};
					} else if (this.isValidCell($t.p.iRow, $t.p.iCol)) {
					return {
						row: $t.p.iRow,
						col: $t.p.iCol
					};
				} else {
					return false;
				}
				},
				getNextVisibleCell : function (dirX, dirY) {
					var nextCell = this.getNextCell( dirX, dirY);
				if (!nextCell) {
					return false;
				}

				while ( $($t.rows[nextCell.row].cells[nextCell.col]).is(":hidden") ) {
					$t.p.iRow = nextCell.row;
					$t.p.iCol = nextCell.col;
						nextCell = this.getNextCell(dirX, dirY);
					if ($t.p.iRow  === nextCell.row && $t.p.iCol  === nextCell.col) {
						// There are no more cells to try if getNextCell returns the current cell
						return false;
					}
				}
				if( dirY !== 0 ) {
					$($t).jqGrid('setSelection', $t.rows[nextCell.row].id, false, null, false);
				}

				return nextCell;
				},
				movePage : function ( dir ) {
				var curpage = $t.p.page, last =$t.p.lastpage;
				curpage = curpage + dir;
				if( curpage <= 0) {
					curpage = 1;
				}
				if( curpage > last ) {
					curpage = last;
				}
				if(  $t.p.page === curpage ) {
					return;
				}
				$t.p.page = curpage;
				$t.grid.populate();
			}
			};
			var focusableElementsSelector = $.jgrid.focusableElementsList.join();
			/*
			function hasFocusableChild( el) {
				return $(focusableElementsSelector, el)[0];
			}
			 * 
			 */
			$($t).removeAttr("tabindex");
			$($t).on('jqGridAfterGridComplete.setAriaGrid', function( e ) {
				//var grid = e.target;
				$("tbody", $t).first().find(">tr:not(.jqgfirstrow)>td:not(:hidden, :has("+focusableElementsSelector+"))").attr("tabindex", -1);
				$("tbody", $t).first().find(">tr:not(.jqgfirstrow)").removeAttr("tabindex");
				if($t.p.iRow !== undefined && $t.p.iCol !== undefined) {
					if($t.rows[$t.p.iRow]) {
					$($t.rows[$t.p.iRow].cells[$t.p.iCol])
						.attr('tabindex', 0)
						.focus( function() { $(this).addClass(highlight);})
						.blur( function () { $(this).removeClass(highlight);});
					}
				}
			});
			$t.p.iRow = 1;
			$t.p.iCol = $.jgrid.getFirstVisibleCol( $t );
			$t.p.ariaBody = true;

			var focusRow=0, focusCol=0; // set the dafualt one
			var custAct = $.jgrid.isFunction( o.customCellAction ) ? o.customCellAction : false;
			var delCell = $.jgrid.isFunction( o.beforeDeleteCell ) ? o.beforeDeleteCell : false;
			var aKeys = new Set(o.specialChars);

			//var lastVisibleCol = $.jgrid.getLastVisibleCol( $t );
			//var firstVisibleCol = $.jgrid.getFirstVisibleCol( $t );

			var paste_to_cell = false;
			$t.addEventListener('paste', function (event) {
				if(paste_to_cell) {
					var paste = (event.clipboardData || window.clipboardData).getData('text');
					$($t).jqGrid('saveCell', $t.p.iRow, $t.p.iCol, paste);
					paste_to_cell = false;
				}
			});

			var onKeyCheck = $.jgrid.isFunction(o.onKeyCheck) ? o.onKeyCheck : false;
			$($t).on('keydown', function(e) {
				if($t.p.navigationDisabled && $t.p.navigationDisabled === true) {
					return;
				}
				if(e.target.id.startsWith("jqs_"+$t.p.id)) {
					return;
				}
				if(onKeyCheck) {
					if(!onKeyCheck.call($t, $t.rows[$t.p.iRow].id, $t.p.iRow, $t.p.iCol, e, baseFunc) ) {
						return;
					}
				}
				var key = e.which || e.keyCode, nextCell;
				var ctrl = e.ctrlKey ? e.ctrlKey : ((key === 17) ? true : false); // ctrl detection

				switch(key) {
					case (38) : // UP
						nextCell = baseFunc.getNextVisibleCell(0, -1);
						focusRow = nextCell.row;
						focusCol = nextCell.col;
						e.preventDefault();
						break;
					case (40) : // DOWN
					case 13 : // Enter
						nextCell = baseFunc.getNextVisibleCell(0, 1);
						focusRow = nextCell.row;
						focusCol = nextCell.col;
						e.preventDefault();
						break;
					case (37) : // LEFT
						nextCell = baseFunc.getNextVisibleCell(-1, 0);
						focusRow = nextCell.row;
						focusCol = nextCell.col;
						e.preventDefault();
						break;
					case (39) : // RIGHT
						nextCell = baseFunc.getNextVisibleCell(1, 0);
						focusRow = nextCell.row;
						focusCol = nextCell.col;
						e.preventDefault();
						break;
					case 36 : // HOME
						if(e.ctrlKey) {
							focusRow = 1;
						} else {
							focusRow = $t.p.iRow;
						}
						focusCol = $t.p.frozenColumns ? $t.p.frozenColCount + 1 : 0;
						e.preventDefault();
						break;
					case 35 : // END
						if(e.ctrlKey) {
							focusRow = $t.rows.length - 1;
						} else {
							focusRow = $t.p.iRow;
						}
						focusCol = $t.p.colModel.length - 1;
						e.preventDefault();
						break;
					case 33 : // PAGEUP

						baseFunc.movePage( -1 );
						focusCol = $t.p.iCol;
						focusRow = $t.p.iRow;
						e.preventDefault();
						break;
					case 34 : // PAGEDOWN
						baseFunc.movePage( 1 );
						focusCol = $t.p.iCol;
						focusRow = $t.p.iRow;
						if(focusRow > $t.rows.length-1) {
							focusRow = $t.rows.length-1;
							$t.p.iRow = $t.rows.length-1;
						}
						e.preventDefault();
						break;
					case 9 : //TAB
						if (e.shiftKey) {
							nextCell = baseFunc.getNextVisibleCell(-1, 0);
						} else {
							nextCell = baseFunc.getNextVisibleCell(1, 0);

						}
						focusRow = nextCell.row;
						focusCol = nextCell.col;
						e.preventDefault();
					break;
					case 113 : // F2
						try{
							$($t).jqGrid('editCell', $t.p.iRow, $t.p.iCol, true, e, false);
							$t.p.F2key = true;
						} catch(e1){}
						break;
					case 8: // DEL, BACKSPACE
					case 46:
						var retDel = true;
						if( delCell ) {
							retDel = delCell.call($t, $t.rows[$t.p.iRow].id ,$t.p.iRow, $t.p.iCol, e);
						}
						if(retDel === true) {
							$($t).jqGrid('saveCell', $t.p.iRow, $t.p.iCol, "");
						}
						break;
					case 86:
						if(ctrl) {
							paste_to_cell = true;
							return true;
						}
						break;
					case 90:
						if(ctrl) {
							var undofunc = true; 
							if( $.jgrid.isFunction( o.customUndoFunction ) ) {
								undofunc = o.customUndoFunction.call($t, $t.rows[$t.p.iRow].id ,$t.p.iRow, $t.p.iCol, e);
							}
							if( undofunc && $t.p.savedValues &&
								    $($t).jqGrid('getCell', $t.rows[$t.p.iRow].id, $t.p.colModel[$t.p.iCol].name, false)  === $t.p.savedValues.newvalue &&
								    $t.p.iRow ===  $t.p.savedValues.indexRow) {
								// undo
								$($t).jqGrid('saveCell', $t.p.iRow, $t.p.iCol, $t.p.savedValues.oldvalue);
							}
							return true;
						}
						break;
					default:
						var isLetter = /^[a-z]$/i.test(e.key);
						var isNumber = /^[0-9]$/i.test(e.key);
						var other = false;
						if(o.addonChars) {
							other = o.addonChars.test(e.key);
						}

						if(isLetter || isNumber || aKeys.has(e.key) || other) {
							$($t).jqGrid('editCell', $t.p.iRow, $t.p.iCol, true, e, true);
						}
						if( custAct ) {
							custAct.call($t, $t.rows[$t.p.iRow].id ,$t.p.iRow, $t.p.iCol, e);
						}
						return;
				}
				setTimeout(function(){
					$($t).jqGrid("focusBodyCell", focusRow, focusCol, getstyle, highlight);
				},50);
			});
			$($t).on('jqGridBeforeSelectRow.ariaGridClick',function() {
				return false;
			});
			$($t).on('jqGridCellSelect.ariaGridClick', function(el1, id, status,tdhtml, e) {
				var el = e.target;
				if($t.p.iRow > 0 && $t.p.iCol >=0) {
					$($t.rows[$t.p.iRow].cells[$t.p.iCol]).attr("tabindex", -1);
				}
				if($(el).is("td") || $(el).is("th") || el.id.startsWith("jqs_"+$t.p.id)) {
					$t.p.iCol = el.cellIndex;
				} else {
					return;
				}
				if($t.p.savedRow.length) {
					$($t).jqGrid("saveCell",$t.p.savedRow[0].id,$t.p.savedRow[0].ic);
				}
				var row = $(el).closest("tr.jqgrow");
				$t.p.iRow = row[0].rowIndex;
				$(el).attr("tabindex", 0)
					.addClass(highlight)
					.focus()
					.blur(function(){$(this).removeClass(highlight);});
			}).on('jqGridDblClickRow.ariaGridDblClick', function(el1,id, iRow, iCol, e){
				$($t).jqGrid('editCell', iRow, iCol, true, e, false);
				$t.p.F2key = true;
			});
		});
	},
	focusBodyCell : function(focusRow, focusCol, _s, _h) {
		return this.each(function (){
			var $t = this,
			getstyle = !_s ? $.jgrid.getMethod("getStyleUI") : _s,
			highlight = !_h ? getstyle($t.p.styleUI+'.common','highlight', true) : _h,
			focusableElementsSelector = $.jgrid.focusableElementsList.join(),
			fe;
			function hasFocusableChild( el) {
				return $(focusableElementsSelector, el)[0];
			}

			if(focusRow !== undefined && focusCol !== undefined) {
				if (!isNaN($t.p.iRow) && !isNaN($t.p.iCol) && $t.p.iCol >= 0) {
					fe = hasFocusableChild($t.rows[$t.p.iRow].cells[$t.p.iCol]);
					if( fe ) {
						$(fe).attr('tabindex', -1);
					} else {
						$($t.rows[$t.p.iRow].cells[$t.p.iCol]).attr('tabindex', -1);
					}
				}

			} else  {
				focusRow = $t.p.iRow;
				focusCol = $t.p.iCol;
			}
			focusRow = parseInt(focusRow, 10);
			focusCol = parseInt(focusCol, 10);
			if(focusRow > 0 && focusCol >=0) {
				fe = hasFocusableChild($t.rows[focusRow].cells[focusCol]);
				if( fe ) {
					$(fe).attr('tabindex', 0)
					.addClass(highlight)
					.focus()
					.blur( function () { $(this).removeClass(highlight); });
				}  else {
					$($t.rows[focusRow].cells[focusCol])
						.attr('tabindex', 0)
						.addClass(highlight)
						.focus()
						.blur(function () { $(this).removeClass(highlight); });
			}
			$t.p.iRow = focusRow;
			$t.p.iCol = focusCol;
			}
		});
	},
	resetAriaBody : function() {
		return this.each(function(){
			var $t = this, paste_to_cell = false;
			$t.p.ariaBody = false;
			$($t).attr("tabindex","0")
				.off('keydown')
				.off('jqGridBeforeSelectRow.ariaGridClick')
				.off('jqGridCellSelect.ariaGridClick')
				.off('jqGridAfterGridComplete.setAriaGrid');
			var focusableElementsSelector = $.jgrid.focusableElementsList.join();
			$("tbody",$t).first().find(">tr:not(.jqgfirstrow)>td:not(:hidden, :has("+focusableElementsSelector+"))").removeAttr("tabindex").off("focus");
			$("tbody",$t).first().find(">tr:not(.jqgfirstrow)").attr("tabindex", -1);
			try {
				$t.removeEventListener('paste', function(event) {
					if(paste_to_cell) {
						var paste = (event.clipboardData || window.clipboardData).getData('text');
						$($t).jqGrid('saveCell', $t.p.iRow, $t.p.iCol, paste);
						paste_to_cell = false;
					}
				}, true);
			} catch(e) {}
		});
	},
	ariaHeaderGrid : function( p ) {
		var o = $.extend({
			onHeaderKeyCheck : null
		}, p || {});		
		return this.each(function (){
			var $t = this,
			getstyle = $.jgrid.getMethod("getStyleUI"),
			highlight = getstyle($t.p.styleUI+'.common','highlight', true),
			htable = $("#gbox_"+$t.p.id).find(".ui-jqgrid-hbox>table").first();
			var onHeaderKeyCheck = $.jgrid.isFunction(o.onHeaderKeyCheck) ? o.onHeaderKeyCheck : false;

			$('tr.ui-jqgrid-labels', htable).on("keydown", function(e) {
				var currindex = $t.p.selHeadInd;
				var key = e.which || e.keyCode;
				var len = $t.grid.headers.length;
				if(onHeaderKeyCheck) {
					if(!onHeaderKeyCheck.call($t, currindex, e) ) {
						return;
					}
				}
				switch (key) {
					case 37: // left
						if(currindex-1 >= 0) {
							currindex--;
							while( $($t.grid.headers[currindex].el).is(':hidden') && currindex-1 >= 0) {
								currindex--;
								if(currindex < 0) {
									break;
								}
							}
							if(currindex >= 0) {
								$($t.grid.headers[currindex].el).focus();
								$($t.grid.headers[$t.p.selHeadInd].el).attr("tabindex", "-1");
								$t.p.selHeadInd = currindex;
								e.preventDefault();
							}
						}
						break;
					case 39: // right
						if(currindex+1 < len) {
							currindex++;
							while( $($t.grid.headers[currindex].el).is(':hidden') && currindex+1 <len) {
								currindex++;
								if( currindex > len-1) {
									break;
								}
							}
							if( currindex < len) {
								$($t.grid.headers[currindex].el).focus();
								$($t.grid.headers[$t.p.selHeadInd].el).attr("tabindex", "-1");
								$t.p.selHeadInd = currindex;
								e.preventDefault();
							}
						}
						break;
					case 13: // enter
						$($t.grid.headers[currindex].el).find("div").first().trigger('click');
						e.preventDefault();
						break;
					default:
						return;
				}
			});
			$('tr.ui-jqgrid-labels>th:not(:hidden)', htable).attr("tabindex", -1).focus(function(){
				$(this).addClass(highlight).attr("tabindex", "0");
			}).blur(function(){
				$(this).removeClass(highlight);
			});
			$t.p.selHeadInd = $.jgrid.getFirstVisibleCol( $t );
			$($t.grid.headers[$t.p.selHeadInd].el).attr("tabindex","0");
		});
	},
	focusHeaderCell : function( index) {
		return this.each( function(){
			var $t = this;
			if(index === undefined) {
				index = $t.p.selHeadInd;
			}
			if(index >= 0 && index < $t.p.colModel.length) {
				$($t.grid.headers[$t.p.selHeadInd].el).attr("tabindex", "-1");
				$($t.grid.headers[index].el).focus();
				$t.p.selHeadInd = index;
			}
		});
	},
	resetAriaHeader : function() {
		return this.each(function(){
			var htable = $("#gbox_" + this.p.id).find(".ui-jqgrid-hbox>table").first();
			$('tr.ui-jqgrid-labels', htable).off("keydown");
			$('tr.ui-jqgrid-labels>th:not(:hidden)', htable).removeAttr("tabindex").off("focus blur");
		});
	},
	ariaPagerGrid : function () {
		return this.each( function(){
			var $t = this,
			getstyle = $.jgrid.getMethod("getStyleUI"),
			highlight = getstyle($t.p.styleUI+'.common','highlight', true),
				disabled = "."+getstyle($t.p.styleUI+'.common','disabled', true),
				cels = $(".ui-pg-button",$t.p.pager),
				len = cels.length;

			cels.attr("tabindex","-1").focus(function(){
				$(this).addClass(highlight);
			}).blur(function(){
				$(this).removeClass(highlight);
			});

			$t.p.navIndex = 0;
			setTimeout( function() { // make another decision here
				var navIndex = cels.not(disabled).first().attr("tabindex", "0");
				$t.p.navIndex = (navIndex[0] && navIndex[0].cellIndex) ? navIndex[0].cellIndex-1 : 0;
			}, 100);

			$($t.p.pager).find("table.ui-pager-table tr").first().on("keydown", function(e) {
				var key = e.which || e.keyCode;

				var indexa = $t.p.navIndex;//currindex;
				switch (key) {
					case 37: // left
						if(indexa-1 >= 0) {
							indexa--;
							while( $(cels[indexa]).is(disabled) && indexa-1 >= 0) {
								indexa--;
								if(indexa < 0) {
									break;
								}
							}
							if(indexa >= 0) {
								$(cels[$t.p.navIndex]).attr("tabindex","-1");
								$(cels[indexa]).attr("tabindex","0").focus();
								$t.p.navIndex = indexa;
							}

							e.preventDefault();
						}
						break;
					case 39: // right
						if(indexa+1 < len) {
							indexa++;
							while( $(cels[indexa]).is(disabled) && indexa+1 < len + 1) {
								indexa++;
								if( indexa > len-1) {
									break;
								}
							}
							if( indexa < len) {
								$(cels[$t.p.navIndex]).attr("tabindex","-1");
								$(cels[indexa]).attr("tabindex","0").focus();
								$t.p.navIndex = indexa;
							}
							e.preventDefault();
						}
						break;
					case 13: // enter
					if(!$(e.originalEvent.srcElement).hasClass("ui-pg-input")) {
						$(cels[indexa]).trigger('click');
						e.preventDefault();
					}
						break;
					default:
						return;
				}
			});
		});
	},
	focusPagerCell : function( index) {
		return this.each( function(){
			var $t = this,
				cels = $(".ui-pg-button",$t.p.pager),
				len = cels.length;
			if(index === undefined) {
				index = $t.p.navIndex;
			}
			if(index >= 0 && index < len) {
				$(cels[$t.p.navIndex]).attr("tabindex","-1");
				$(cels[index]).attr("tabindex","0").focus();
				$t.p.navIndex = index;
			}
		});
	},
	resetAriaPager : function() {
		return this.each(function(){
			$(".ui-pg-button",this.p.pager).removeAttr("tabindex").off("focus");
			$(this.p.pager).find("table.ui-pager-table tr").first().off("keydown");
		});
	},
	setAriaGrid : function ( p ) {
		var o = $.extend({
			header : true,
			body : true,
			pager : true,
			onEnterCell : null,
			customCellAction : null,
			excel : false
		}, p || {});
		return this.each(function(){
			if( o.header ) {
				$(this).jqGrid('ariaHeaderGrid', o);
			}
			if( o.body ) {
				if(o.excel) {
					$(this).jqGrid('excelLikeGrid', o);
				} else {
					$(this).jqGrid('ariaBodyGrid', o);
			}
			}
			if( o.pager ) {
				$(this).jqGrid('ariaPagerGrid');
			}
		});
	},
	resetAriaGrid : function( p ) {
		var o = $.extend({
			header : true,
			body : true,
			pager : true
		}, p || {});
		return this.each(function(){
			var $t = this;
			if( o.body ) {
				$($t).jqGrid('resetAriaBody');
			}
			if( o.header ) {
				$($t).jqGrid('resetAriaHeader');
			}
			if( o.pager ) {
				$($t).jqGrid('resetAriaPager');
			}
		});
	}
// end aria grid
});

//module begin
$.jgrid.extend({
	transposeSetup : function( data, options ){
		// return the final result.
		var columns =[], rows=[],  model = false,
		o = $.extend ( {}, options || {});
		this.each(function(){
			// trnsform data and build colModel
			var keys = Object.keys(data[o.baseindex]), rowobj, col;
			if(o.excludeSrcCols.length) {
				keys = keys.filter(function(item) {
					return !o.excludeSrcCols.includes(item);
				});
			}
			// for all columns
			for(var i =0; i<  keys.length; i++) {
				rowobj = {}; col=0;
				
				rowobj.col_name = keys[i];
				
				if(!model) {
					// build colmodel first item
					columns.push({name:"col_name"});
				}
				col++;
				  
				 
				// loop in every row and put it as column
				for(var j=0; j< data.length; j++) {
					var tmp = data[j];
					rowobj[o.nameprefix + col]= tmp[keys[i]];
					if(!model) {
						// colModel next items
						columns.push({name:o.nameprefix + col, label : o.labelprefix + col});
					}
					col++;
				}
				// colModel is build
				model = true;
				rows.push(rowobj);
			}
		});
		return { "colModel" : columns, "rows": rows };
	},
	jqTranspose : function( data, transpOpt, gridOpt, ajaxOpt) {
		transpOpt = $.extend ( {
			nameprefix : "col",  // prefix for the creted name in colModel + index
			labelprefix : "value ", // prefix for the colNames titles + index
			baseindex : 0, // which is the base index from source data to transpose rows to cols
			beforeCreateGrid : null, // even befor creating the jqGrid. passed is a object 
									// containing colModel and data (rows)
			RowAsHeader : 0,
			loadMsg : false,
			excludeSrcCols :[]
		}, transpOpt || {} );
		return this.each(function(){
			var $t = this,
				regional = (gridOpt && gridOpt.regional) ? gridOpt.regional : "en";
			if(transpOpt.loadMsg) {
				$("<div class='loading_pivot ui-state-default ui-state-active row'>"+$.jgrid.getRegional($t, "regional."+regional+".defaults.loadtext")+"</div>").insertBefore($t).show();
			}

			function transpose( data, o) {
				if(!Array.isArray(data)) {
					//throw "data provides is not an array";
					data = [];
				}
				var transpGrid = jQuery($t).jqGrid('transposeSetup',data, transpOpt);
				if($.jgrid.isFunction(transpOpt.beforeCreateGrid)) {
					transpOpt.beforeCreateGrid.call($t, transpGrid, data);
				}
				if(o.RowAsHeader !== false &&
						o.RowAsHeader >=0 &&
						transpGrid.rows.length &&
						o.RowAsHeader < transpGrid.rows.length) {

					var labels = transpGrid.rows[o.RowAsHeader], i=0;
					for(var key in labels) {
						if( Object.prototype.hasOwnProperty.call(labels, key) ){
						//labels.hasOwnProperty(key)) {
							transpGrid.colModel[i].label = labels[key];
						}
						i++;
					}
					transpGrid.rows.splice(o.RowAsHeader,1);
				}
				var query= $.jgrid.from.call($t, transpGrid.rows);
				jQuery($t).jqGrid($.extend(true, {
					datastr: query.select(),
					datatype: "jsonstring",
					colModel: transpGrid.colModel,
					jsonReader : {
						repeatitems : false
					},
					viewrecords: true
					//sortname: transpOpt.xDimension[0].dataName // ?????
				}, gridOpt || {}));
				if(transpOpt.loadMsg) {
					$(".loading_pivot").remove();
				}
			}
						
			if(typeof data === "string") {
				$.ajax($.extend({
					url : data,
					dataType: 'json',
					success : function(response) {
						transpose($.jgrid.getAccessor(response, ajaxOpt && ajaxOpt.reader ? ajaxOpt.reader: 'rows'), transpOpt );
					}
				}, ajaxOpt || {}) );
			} else {
				transpose( data, transpOpt );
			}
		});
	}
});

//module begin
$.jgrid.extend({
	setupFrozenRows : function ( options ){
		var prm = $.extend({
			first : 0,
			last : 0,
			rowids :[],
			saveFirstLastId : false,
			classes : ""
		}, options || {});

		return this.each(function(){
			// restrictions
			if(this.p.subGrid === true ||
				this.p.treeGrid === true ||
				this.p.cellEdit === true ||
				/*$t.p.sortable ||*/ 
				this.p.scroll ||
				this.p.frozenColumns === true ||
				this.p.frozenRows === true||
				this.p.grouping === true)
			{
				return;
			}
			if(prm.first <= 0 && prm.last <= 0 && prm.rowids.length ===0 ) {
				return;
			}


			var $t = this, i, j, len,
				borderbox = $("#"+$.jgrid.jqID($t.p.id)).css("box-sizing") === 'border-box',
				pixelfix = borderbox ? 1 : 0,
				tid = '#'+$.jgrid.jqID($t.p.id),
				tvid ='#gview_'+$.jgrid.jqID($t.p.id),
				//hth = $(".ui-jqgrid-htable", tvid).height(),//Get the height of the column header to set the top value
				hgh = document.getElementById("gbox_"+$t.p.id).getBoundingClientRect().top,
				hth = document.getElementById($t.p.id).getBoundingClientRect().top,
				htw = $(tvid).width(),//Get the width of the content
				frowms = [],//store frozen rows
				fbDiv = $('<div style="position:absolute;left:0px;top:'+(hth-hgh-pixelfix)+'px;height:0px;overflow-x:hidden;" class="frozen-rdiv ui-jqgrid-rdiv"></div>');

			$(tvid).append(fbDiv);
			$('.frozen-rdiv', tvid).css('width',htw-($.jgrid.scrollbarWidth()+2));
			frowms.push($('.jqgfirstrow', tid).clone(true));

			if(prm.rowids && prm.rowids.length > 0 ) {
				for( i =0;i<prm.rowids.length; i++ ) {
					j = $t.rows.length;
					while( j-- ) {
						if($t.rows[j].id === prm.rowids[i]) {
							frowms.push($($t.rows[j]).clone(true));
							$($t.rows[j]).insertBefore($t.rows[i+1]);
							break;
						}
					}
				}
			} else if(prm.first > 0) {
				for(i = 0; i < prm.first; i++) {
					frowms.push($($t.rows[i+1]).clone(true));
					if(prm.saveFirstLastId) {
						if(!prm.rowids) {
							prm.rowids =[];
						}
						prm.rowids.push($t.rows[i+1].id);
					}
				}
			} else if(prm.last > 0) {
				j = $t.rows.length;
				for(i = 0; i < prm.last; i++) {
					frowms.splice(1,0,$($t.rows[j-1]).clone(true));
					if(prm.saveFirstLastId) {
						if(!prm.rowids) {
							prm.rowids =[];
						}
						prm.rowids.unshift($t.rows[j-1].id);
					}
					$($t.rows[j-1]).insertBefore($t.rows[1]);
				}
			} else {
				return;
			}

			fbDiv.css("height", 'auto');
			var out = $(tid).clone(true);//Get the <table><tbody></tbody></table> tag
			out.children('tbody').empty();

			for(j = 0 ,len = frowms.length; j <len; j++){//Loop insert the cloned row into the <tbody></tbody> tag
				frowms[j].addClass(prm.classes).appendTo(out);
			}
			out.appendTo(fbDiv);
			var tfid = $t.p.id +"_fr";
			$(tid, fbDiv).attr("id", tfid);
			tfid = '#'+$.jgrid.jqID(tfid);

			/*
			* Set the events required in freezing
			* */
			var getstyle = $.jgrid.getMethod("getStyleUI"),
			stylemodule = $t.p.styleUI + ".common",
			//disabled = getstyle(stylemodule,'disabled', true),
			highlight = getstyle(stylemodule,'highlight', true),
			hover = getstyle(stylemodule,'hover', true);
			$('.frozen-rdiv', tvid).on('click','tr',function(){//click on the frozen line to add a highlight effect
				if($t.p.selrow) {
					$($t).jqGrid('resetSelection',$t.p.selrow);
				}
				var index = $(this).index();
				$(this).addClass(highlight).siblings().removeClass(highlight);
				$t.p.selrow = this.id;
				$('.frozen-rdiv tr').eq(index).addClass(highlight).siblings().removeClass(highlight);
			});
			$(tfid).on('click',function(){//When the click is a frozen column, the highlighting effect of the frozen column is clear
				$('.frozen-rdiv tbody').children('tr').each(function(){
					$(this).removeClass(highlight);
				});
			});

			var bdiv = $(tvid +" .ui-jqgrid-bdiv").first();
			bdiv.on('scroll', function(){//Set the left and right scroll of the frozen line
				var curX = this.scrollLeft;
				$('.frozen-rdiv').scrollLeft(curX);
			});

			$('.frozen-rdiv tr').hover(//Set the effect of moving the mouse on the frozen line
				function(){
					var index = $(this).index();
					$('.frozen-rdiv tr').eq(index).addClass(hover);
				},
				function(){
					var index = $(this).index();
					$('.frozen-rdiv tr').eq(index).removeClass(hover);
				}
			);
			if($t.p.rownumbers) {
				var find_index = false;
				try {
					$($t.rows[0].cells).each(function(k){
						if( $(this).hasClass('jqgrid-rownumber')) {
							find_index = k;
							return false;
						}
					});
					if(find_index !== false) {
						j = $t.rows.length;
						i=1;
						while (i<j) {
							$($t.rows[i].cells[find_index]).html( i );
							i++;
						}
						j = $(tfid)[0].rows.length;
						i=1;					
						while (i<j) {
							$(tfid)[0].rows[i].cells[find_index].innerHTML =  i ;
							i++;
						}
					}
				} catch(e){}
			}

			$t.grid.frbDiv = fbDiv;
			$t.p.frozenRows = true;
			$t.p.frozenRowsPrm = prm;
		});
	},
	destroyFrozenRows : function(deep) {
		return this.each(function(){
			this.grid.frbDiv.remove();
			this.p.frozenRows = false;
			if(deep) {
				this.p.frozenRowsPrm = null;
			}
		});
	},
	setFrozenRows : function( options ) {
		return this.each(function(){
			
			if( this.p.records > 0 ) {
				$(this).jqGrid("setupFrozenRows", options);
			}

			$(this).on('jqGridAfterGridComplete.setFrozenRows', function () {  
				if(this.p.frozenRowsPrm && !$.isEmptyObject(this.p.frozenRowsPrm)) {
					$(this).jqGrid("destroyFrozenRows");
					$(this).jqGrid("setupFrozenRows", this.p.frozenRowsPrm);
				} else {
					$(this).jqGrid("setupFrozenRows", options);
				}
			});
			$(this).on('jqGridResizeStop.setFrozenRows', function () {
				if(this.p.frozenRowsPrm) {
					try {
						$(this).jqGrid("destroyFrozenRows");
						var test = this.p.frozenRowsPrm.last > 0 && !this.p.frozenRowsPrm.saveFirstLastId && this.p.frozenRowsPrm.first === 0; 
						if(test) {
							this.p.frozenRowsPrm.first = this.p.frozenRowsPrm.last;
						}
						$(this).jqGrid("setupFrozenRows", this.p.frozenRowsPrm);
						if(test) {
							this.p.frozenRowsPrm.first = 0;
						}
					} catch(e){}
				}
			});
		});
	}
});

//module begin
$.jgrid.extend({
	dbInit : function (dbtype) {
		return this.each(function (){
			switch (dbtype) {
				case  'indexeddb':
					$(this).jqGrid('_initIndexedDB_');
				break;
			}
		});
	},
	_initIndexedDB_ : function() { 
	this.each(function(){
		var ts = this;
		indexedDB.databases().then(function(r) { 
			const connection  = indexedDB.open(ts.p.dbconfig.dbname /*, ts.p.dbconfig.dbversion*/);
			connection.onupgradeneeded = (e) => {
				console.info('Database created: '+ts.p.dbconfig.dbname);
			};
			connection.onsuccess = function(e) {
				const db = e.target.result;
				var version =  parseInt(db.version),
				idcol = $.jgrid.getElemByAttrVal(ts.p.colModel, 'key', true);

				async function getIndexedDbData( skipCreate ) {
					var data, options = ts.p.dbconfig;
					if(typeof options.dataUrl === 'string') {
						try {
						let req = await fetch(options.dataUrl, options.fetchOptions);	
							data = await req.json();
							if(options.reader !== null) {
								data = $.jgrid.getAccessor(data, options.reader);
							}
						} catch(error) {
							console.log("Error:" +error);
							return;
						}
						if($.jgrid.isFunction(options.beforeInsertData)) {
							data = options.beforeInsertData.call(ts, data);
						}
					} else if(Array.isArray(options.dataUrl)) {
						data = options.dataUrl;
					}
						ts.p.dbconfig.dbversion = version + 1;
					var secondconn = indexedDB.open(options.dbname, version + 1/*, ts.p.dbconfig.dbversion*/);
						secondconn.onupgradeneeded = function (e) {
							var db = e.target.result;
							if(!skipCreate) {
								const objectStore = db.createObjectStore(ts.p.dbconfig.dbtable, {keyPath: idcol.name});
								for(let i =0;i<ts.p.colModel.length; i++) {
									let cm = ts.p.colModel[i];
									if(cm.name === idcol.name) {
										objectStore.createIndex(cm.name, cm.name, { unique: true });
									} else {
										objectStore.createIndex(cm.name, cm.name, { unique: false });
									}
								}
							}
							const transaction = e.target.transaction;
							const objectStore1 = transaction.objectStore(ts.p.dbconfig.dbtable);
							objectStore1.transaction.oncomplete = function(e){
								// data added
								//ts.p.dbconfig.loadIfExists = false;
							};
							objectStore1.transaction.onerror = function(e){
								$.jgrid.info_dialog("Error",e.target.error.name + " : "+e.target.error.message,'Close');
							};
							for(var row of data){
								if(!ts.p.dbconfig.isKeyInData) {
									row[idcol.name] = Math.random().toString(16).slice(2);
								}
								objectStore1.put(row);
							}
							ts.p.dbconfig.ready_req = true;
							ts.grid.populate();
						};
						secondconn.onerror =(e) => {
							$.jgrid.info_dialog("Error",e.target.error.name + " : "+e.target.error.message,'Close');
						};
					}
					if($.isEmptyObject(idcol)) {
						$.jgrid.info_dialog("Warning","Missed key: No uniquie key is set in colModel. Creating table fail",'Close');
						return;
					}
					if( !db.objectStoreNames.contains(ts.p.dbconfig.dbtable) ) {
						db.close();
						getIndexedDbData( false );
				} else if(ts.p.dbconfig.loadIfExists || ts.p.dbconfig.deleteIfExists) {
					const tr = db.transaction(ts.p.dbconfig.dbtable, "readwrite");
						const oS = tr.objectStore(ts.p.dbconfig.dbtable);
						const countRequest = oS.count();
						countRequest.onsuccess = () => {						
							if(countRequest.result > 0)  {
							if(ts.p.dbconfig.deleteIfExists) {
								const objectStoreRequest = oS.clear();
								objectStoreRequest.onsuccess = (event) => {
									// report the success of our request
									console.log("All records are cleared");
									db.close();
									getIndexedDbData( true );
								};
								objectStoreRequest.onerror = (e) => {
									// report the success of our request
									$.jgrid.info_dialog("Error",e.target.error.name + " : "+e.target.error.message,'Close');
								};
							} else if(ts.p.dbconfig.loadIfExists) {
								db.close();
								getIndexedDbData( true );								
								} else {
									db.close();
									ts.p.dbconfig.ready_req = true;
									ts.grid.populate();
								}
							} else {
							db.close();
							getIndexedDbData( true );			
						}
					};
				} else {
					db.close();
					ts.p.dbconfig.ready_req = true;
					ts.grid.populate();
				}
			};
			connection.onerror =(e) => {
				$.jgrid.info_dialog("Error",e.target.error.name + " : "+e.target.error.message,'Close');
			};
		});	
	});},
	updateStorageRecord : async function (data, keyName) {
		let ts = this[0], dbcfg = ts.p.dbconfig, type = ts.p.datatype;
		return new Promise(function(resolve, reject){
			if(!Array.isArray(data)) {
				data = [data];
			}
			if(!keyName) {
				keyName = ts.p.keyName;
			}
			data = $.jgrid.normalizeDbData.call(ts, data, ts.p.colModel );
			switch(type) {
				case 'indexeddb' :
					const DBOpenRequest = window.indexedDB.open(dbcfg.dbname /*, dbcfg.dbversion*/);
					DBOpenRequest.onsuccess = (event) => {
						const db = DBOpenRequest.result;
						const transaction = db.transaction(dbcfg.dbtable, "readwrite");
						transaction.oncomplete = (event) => {
							resolve(event);
							console.log("Transaction completed succefully");
						};
						transaction.onerror = (event) => {
							reject(event);
							try {
								$.jgrid.info_dialog.call("Error", event.target.error, "Close", {styleUI : ts.p.styleUI});
							} catch (e) {
								console.log(event.target.error);
							}
						};
						const objectStore = transaction.objectStore(dbcfg.dbtable);
						for(let i=0;i<data.length;i++) {
							if(!data[i].hasOwnProperty(keyName) || data[i][keyName] === "") {
								transaction.abort();
								break;
							}
							const req2 = objectStore.openCursor();
							req2.onsuccess = (e) => {
								 const cursor = e.target.result;
								 if(!cursor) {
									 return;
								 }
								var updateData = cursor.value;
								if(updateData[keyName] === data[i][keyName]) {
									delete data[i].oper;
									updateData = Object.assign(updateData, data[i]);
									const updateRequest = cursor.update(updateData);
									return;
								} else {
									 cursor.continue();
								}
								};
							req2.onerror = (e) => {
								console.log(e.target.error);
							};
						}
					};
				break;
			} 
		});
	},
	addStorageRecord : async function (data, keyName) {
		let ts = this[0], dbcfg = ts.p.dbconfig, type = ts.p.datatype;
		return new Promise(function(resolve, reject){
			if(!Array.isArray(data)) {
				data = [data];
			}
			if(!keyName) {
				keyName = ts.p.keyName;
			}
			data = $.jgrid.normalizeDbData.call(ts, data, ts.p.colModel );
			switch(type) {
				case 'indexeddb' :
					const DBOpenRequest = window.indexedDB.open(dbcfg.dbname /*, dbcfg.dbversion*/);
					DBOpenRequest.onsuccess = (event) => {
						const db = DBOpenRequest.result;
						const transaction = db.transaction(dbcfg.dbtable, "readwrite");
						transaction.oncomplete = (event) => {
							resolve(event);
							console.log("Transaction completed succefully");
						};
						transaction.onerror = (event) => {
							reject(event);
							try {
								$.jgrid.info_dialog.call("Error", event.target.error, "Close", {styleUI : ts.p.styleUI});
							} catch (e) {
								console.log(event.target.error);
							}
						};
						const objectStore = transaction.objectStore(dbcfg.dbtable);
						for(let i=0;i<data.length;i++) {
							if(!data[i].hasOwnProperty(keyName) || data[i][keyName] === "") {
								data[i][keyName] = Math.random().toString(16).slice(2);
							}
							var objectStoreRequest = objectStore.add(data[i]);
							objectStoreRequest.onsuccess = (event) => {
								//console.log(event.type, objectStoreRequest.result);
							};
						}
					};
				break;
			} 
		});
	},
	deleteStorageRecord : async function (data, keyName) {
		let ts = this[0], dbcfg = ts.p.dbconfig, type = ts.p.datatype;
		return new Promise(function(resolve, reject){
			if(!Array.isArray(data)) {
				data = data.split(",");
			}	
			if(!keyName) {
				keyName = ts.p.keyName;
			}
			switch(type) {
				case 'indexeddb' :
					var test =[], obj={};
					for (let i=0;i<data.length;i++) {
						obj[keyName] = data[i];
						test.push(obj);
					}
					// detect keytype
					test = $.jgrid.normalizeDbData.call(ts, test, ts.p.colModel );			
					const DBOpenRequest = window.indexedDB.open(dbcfg.dbname /*, dbcfg.dbversion*/);
					DBOpenRequest.onsuccess = (event) => {
						const db = DBOpenRequest.result;
						const transaction = db.transaction(dbcfg.dbtable, "readwrite");
						transaction.oncomplete = (event) => {
							resolve(event);
							console.log("Transaction completed succefully");
						};
						transaction.onerror = (event) => {
							reject(event);
							try {
								$.jgrid.info_dialog.call("Error", event.target.error, "Close", {styleUI : ts.p.styleUI});
							} catch (e) {
								console.log(event.target.error);
							}
						};
						const objectStore = transaction.objectStore(dbcfg.dbtable);
						for(let i=0;i<data.length;i++) {
							var objectStoreRequest = objectStore.delete(test[i][keyName]);
							objectStoreRequest.onsuccess = (event) => {
								console.log("Deleted record: " + data[i]);
							};							
						}
					};
				break;
			} 
		});
	}	
});

}));js/addons/ui.multiselect.js000064400000026776151676727230011776 0ustar00/*
 * jQuery UI Multiselect
 *
 * Authors:
 *  Michael Aufreiter (quasipartikel.at)
 *  Yanick Rochon (yanick.rochon[at]gmail[dot]com)
 * 
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 * 
 * http://www.quasipartikel.at/multiselect/
 *
 * 
 * Depends:
 *	ui.core.js
 *	ui.sortable.js
 *
 * Optional:
 * localization (http://plugins.jquery.com/project/localisation)
 * scrollTo (http://plugins.jquery.com/project/ScrollTo)
 * 
 * Todo:
 *  Make batch actions faster
 *  Implement dynamic insertion through remote calls
 */


(function($) {

$.widget("ui.multiselect", {
  options: {
		sortable: true,
		searchable: true,
		doubleClickable: true,
		animated: 'fast',
		show: 'slideDown',
		hide: 'slideUp',
		dividerLocation: 0.6,
		availableFirst: false,
		nodeComparator: function(node1,node2) {
			var text1 = node1.text(),
			    text2 = node2.text();
			return text1 == text2 ? 0 : (text1 < text2 ? -1 : 1);
		}
	},
	_create: function() {
		this.element.hide();
		this.id = this.element.attr("id");
		this.container = $('<div class="ui-multiselect ui-helper-clearfix ui-widget"></div>').insertAfter(this.element);
		this.count = 0; // number of currently selected options
		this.selectedContainer = $('<div class="selected"></div>').appendTo(this.container);
		this.availableContainer = $('<div class="available"></div>')[this.options.availableFirst?'prependTo': 'appendTo'](this.container);
		this.selectedActions = $('<div class="actions ui-widget-header ui-helper-clearfix"><span class="count">0 '+$.ui.multiselect.locale.itemsCount+'</span><a href="#" class="remove-all">'+$.ui.multiselect.locale.removeAll+'</a></div>').appendTo(this.selectedContainer);
		this.availableActions = $('<div class="actions ui-widget-header ui-helper-clearfix"><input type="text" class="search empty ui-widget-content ui-corner-all"/><a href="#" class="add-all">'+$.ui.multiselect.locale.addAll+'</a></div>').appendTo(this.availableContainer);
		this.selectedList = $('<ul class="selected connected-list"><li class="ui-helper-hidden-accessible"></li></ul>').bind('selectstart', function(){return false;}).appendTo(this.selectedContainer);
		this.availableList = $('<ul class="available connected-list"><li class="ui-helper-hidden-accessible"></li></ul>').bind('selectstart', function(){return false;}).appendTo(this.availableContainer);
		
		var that = this;

		// set dimensions
		this.container.width(this.element.width()+1);
		this.selectedContainer.width(Math.floor(this.element.width()*this.options.dividerLocation));
		this.availableContainer.width(Math.floor(this.element.width()*(1-this.options.dividerLocation)));

		// fix list height to match <option> depending on their individual header's heights
		this.selectedList.height(Math.max(this.element.height()-this.selectedActions.height(),1));
		this.availableList.height(Math.max(this.element.height()-this.availableActions.height(),1));
		
		if ( !this.options.animated ) {
			this.options.show = 'show';
			this.options.hide = 'hide';
		}
		this.useProp = !!$.fn.prop;
		// init lists
		this._populateLists(this.element.find('option'));
		
		// make selection sortable
		if (this.options.sortable) {
			this.selectedList.sortable({
				placeholder: 'ui-state-highlight',
				axis: 'y',
				update: function(event, ui) {
					// apply the new sort order to the original selectbox
					that.selectedList.find('li').each(function() {
						if ($(this).data('optionLink'))
							$(this).data('optionLink').remove().appendTo(that.element);
					});
				},
				receive: function(event, ui) {
					ui.item.data('optionLink')[ this.useProp ? 'prop' : 'attr' ]('selected', true);
					// increment count
					that.count += 1;
					that._updateCount();
					// workaround, because there's no way to reference 
					// the new element, see http://dev.jqueryui.com/ticket/4303
					that.selectedList.children('.ui-draggable').each(function() {
						$(this).removeClass('ui-draggable');
						$(this).data('optionLink', ui.item.data('optionLink'));
						$(this).data('idx', ui.item.data('idx'));
						that._applyItemState($(this), true);
					});
			
					// workaround according to http://dev.jqueryui.com/ticket/4088
					setTimeout(function() { ui.item.remove(); }, 1);
				}
			});
		}
		
		// set up livesearch
		if (this.options.searchable) {
			this._registerSearchEvents(this.availableContainer.find('input.search'));
		} else {
			$('.search').hide();
		}
		
		// batch actions
		this.container.find(".remove-all").click(function() {
			var options = that.element.find('option:selected');
			if (that.selectedList.children('li').length > 1) {
				that.selectedList.children('li').each(function(i) {
					if ($(this).is(":visible")) $(options[i-1])[ that.useProp ? 'prop' : 'attr' ]('selected', false); 
				});
			} else {
				options[ that.useProp ? 'prop' : 'attr' ]('selected', false);
			}
			that._populateLists(that.element.find('option'));
			return false;
		});
		
		this.container.find(".add-all").click(function() {
			var options = that.element.find('option').not(":selected");
			if (that.availableList.children('li:hidden').length > 1) {
				that.availableList.children('li').each(function(i) {
					if ($(this).is(":visible")) $(options[i-1])[ that.useProp ? 'prop' : 'attr' ]('selected', true); 
				});
			} else {
				options[ that.useProp ? 'prop' : 'attr' ]('selected', true);
			}
			that._populateLists(that.element.find('option'));
			return false;
		});
	},
	destroy: function() {
		this.element.show();
		this.container.remove();

		$.Widget.prototype.destroy.apply(this, arguments);
	},
	_populateLists: function(options) {
		this.selectedList.children('.ui-element').remove();
		this.availableList.children('.ui-element').remove();
		this.count = 0;

		var that = this;
		var items = $(options.map(function(i) {
	      var item = that._getOptionNode(this).appendTo(this.selected ? that.selectedList : that.availableList).show();

			if (this.selected) that.count += 1;
			that._applyItemState(item, this.selected);
			item.data('idx', i);
			return item[0];
    }));
		
		// update count
		this._updateCount();
		that._filter.apply(this.availableContainer.find('input.search'), [that.availableList]);
  },
	_updateCount: function() {
		this.element.trigger('change');
		this.selectedContainer.find('span.count').text(this.count+" "+$.ui.multiselect.locale.itemsCount);
	},
	_getOptionNode: function(option) {
		option = $(option);
		var node = $('<li class="ui-state-default ui-element" title="'+option.text()+'"><span class="ui-icon"></span>'+option.text()+'<a href="#" class="action"><span class="ui-corner-all ui-icon"></span></a></li>').hide();
		node.data('optionLink', option);
		return node;
	},
	// clones an item with associated data
	// didn't find a smarter away around this
	_cloneWithData: function(clonee) {
		var clone = clonee.clone(false,false);
		clone.data('optionLink', clonee.data('optionLink'));
		clone.data('idx', clonee.data('idx'));
		return clone;
	},
	_setSelected: function(item, selected) {
		item.data('optionLink')[ this.useProp ? 'prop' : 'attr' ]('selected', selected);

		if (selected) {
			var selectedItem = this._cloneWithData(item);
			item[this.options.hide](this.options.animated, function() { $(this).remove(); });
			selectedItem.appendTo(this.selectedList).hide()[this.options.show](this.options.animated);
			
			this._applyItemState(selectedItem, true);
			return selectedItem;
		} else {
			
			// look for successor based on initial option index
			var items = this.availableList.find('li'), comparator = this.options.nodeComparator;
			var succ = null, i = item.data('idx'), direction = comparator(item, $(items[i]));

			// TODO: test needed for dynamic list populating
			if ( direction ) {
				while (i>=0 && i<items.length) {
					direction > 0 ? i++ : i--;
					if ( direction != comparator(item, $(items[i])) ) {
						// going up, go back one item down, otherwise leave as is
						succ = items[direction > 0 ? i : i+1];
						break;
					}
				}
			} else {
				succ = items[i];
			}
			
			var availableItem = this._cloneWithData(item);
			succ ? availableItem.insertBefore($(succ)) : availableItem.appendTo(this.availableList);
			item[this.options.hide](this.options.animated, function() { $(this).remove(); });
			availableItem.hide()[this.options.show](this.options.animated);
			
			this._applyItemState(availableItem, false);
			return availableItem;
		}
	},
	_applyItemState: function(item, selected) {
		if (selected) {
			if (this.options.sortable)
				item.children('span').addClass('ui-icon-arrowthick-2-n-s').removeClass('ui-helper-hidden').addClass('ui-icon');
			else
				item.children('span').removeClass('ui-icon-arrowthick-2-n-s').addClass('ui-helper-hidden').removeClass('ui-icon');
			item.find('a.action span').addClass('ui-icon-minus').removeClass('ui-icon-plus');
			this._registerRemoveEvents(item.find('a.action'));
			
		} else {
			item.children('span').removeClass('ui-icon-arrowthick-2-n-s').addClass('ui-helper-hidden').removeClass('ui-icon');
			item.find('a.action span').addClass('ui-icon-plus').removeClass('ui-icon-minus');
			this._registerAddEvents(item.find('a.action'));
		}
		
		this._registerDoubleClickEvents(item);
		this._registerHoverEvents(item);
	},
	// taken from John Resig's liveUpdate script
	_filter: function(list) {
		var input = $(this);
		var rows = list.children('li'),
			cache = rows.map(function(){
				
				return $(this).text().toLowerCase();
			});
		
		var term = $.trim(input.val().toLowerCase()), scores = [];
		
		if (!term) {
			rows.show();
		} else {
			rows.hide();

			cache.each(function(i) {
				if (this.indexOf(term)>-1) { scores.push(i); }
			});

			$.each(scores, function() {
				$(rows[this]).show();
			});
		}
	},
	_registerDoubleClickEvents: function(elements) {
		if (!this.options.doubleClickable) return;
		elements.dblclick(function(ev) {
			if ($(ev.target).closest('.action').length === 0) {
				// This may be triggered with rapid clicks on actions as well. In that
				// case don't trigger an additional click.
				elements.find('a.action').click();
			}
		});
	},
	_registerHoverEvents: function(elements) {
		elements.removeClass('ui-state-hover');
		elements.mouseover(function() {
			$(this).addClass('ui-state-hover');
		});
		elements.mouseout(function() {
			$(this).removeClass('ui-state-hover');
		});
	},
	_registerAddEvents: function(elements) {
		var that = this;
		elements.click(function() {
			var item = that._setSelected($(this).parent(), true);
			that.count += 1;
			that._updateCount();
			return false;
		});
		
		// make draggable
		if (this.options.sortable) {
			elements.each(function() {
				$(this).parent().draggable({
					connectToSortable: that.selectedList,
					helper: function() {
						var selectedItem = that._cloneWithData($(this)).width($(this).width() - 50);
						selectedItem.width($(this).width());
						return selectedItem;
					},
					appendTo: that.container,
					containment: that.container,
					revert: 'invalid'
				});
			});		  
		}
	},
	_registerRemoveEvents: function(elements) {
		var that = this;
		elements.click(function() {
			that._setSelected($(this).parent(), false);
			that.count -= 1;
			that._updateCount();
			return false;
		});
 	},
	_registerSearchEvents: function(input) {
		var that = this;

		input.focus(function() {
			$(this).addClass('ui-state-active');
		})
		.blur(function() {
			$(this).removeClass('ui-state-active');
		})
		.keypress(function(e) {
			if (e.keyCode == 13)
				return false;
		})
		.keyup(function() {
			that._filter.apply(this, [that.availableList]);
		});
	}
});
		
$.extend($.ui.multiselect, {
	locale: {
		addAll:'Add all',
		removeAll:'Remove all',
		itemsCount:'items selected'
	}
});


})(jQuery);
js/grid.transposed.js000064400000007467151676727230010662 0ustar00/*jshint eqeqeq:false */
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"./grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {
"use strict";
//module begin
$.jgrid.extend({
	transposeSetup : function( data, options ){
		// return the final result.
		var columns =[], rows=[],  model = false,
		o = $.extend ( {}, options || {});
		this.each(function(){
			// trnsform data and build colModel
			var keys = Object.keys(data[o.baseindex]), rowobj, col;
			if(o.excludeSrcCols.length) {
				keys = keys.filter(function(item) {
					return !o.excludeSrcCols.includes(item);
				});
			}
			// for all columns
			for(var i =0; i<  keys.length; i++) {
				rowobj = {}; col=0;
				
				rowobj.col_name = keys[i];
				
				if(!model) {
					// build colmodel first item
					columns.push({name:"col_name"});
				}
				col++;
				  
				 
				// loop in every row and put it as column
				for(var j=0; j< data.length; j++) {
					var tmp = data[j];
					rowobj[o.nameprefix + col]= tmp[keys[i]];
					if(!model) {
						// colModel next items
						columns.push({name:o.nameprefix + col, label : o.labelprefix + col});
					}
					col++;
				}
				// colModel is build
				model = true;
				rows.push(rowobj);
			}
		});
		return { "colModel" : columns, "rows": rows };
	},
	jqTranspose : function( data, transpOpt, gridOpt, ajaxOpt) {
		transpOpt = $.extend ( {
			nameprefix : "col",  // prefix for the creted name in colModel + index
			labelprefix : "value ", // prefix for the colNames titles + index
			baseindex : 0, // which is the base index from source data to transpose rows to cols
			beforeCreateGrid : null, // even befor creating the jqGrid. passed is a object 
									// containing colModel and data (rows)
			RowAsHeader : 0,
			loadMsg : false,
			excludeSrcCols :[]
		}, transpOpt || {} );
		return this.each(function(){
			var $t = this,
				regional = (gridOpt && gridOpt.regional) ? gridOpt.regional : "en";
			if(transpOpt.loadMsg) {
				$("<div class='loading_pivot ui-state-default ui-state-active row'>"+$.jgrid.getRegional($t, "regional."+regional+".defaults.loadtext")+"</div>").insertBefore($t).show();
			}

			function transpose( data, o) {
				if(!Array.isArray(data)) {
					//throw "data provides is not an array";
					data = [];
				}
				var transpGrid = jQuery($t).jqGrid('transposeSetup',data, transpOpt);
				if($.jgrid.isFunction(transpOpt.beforeCreateGrid)) {
					transpOpt.beforeCreateGrid.call($t, transpGrid, data);
				}
				if(o.RowAsHeader !== false &&
						o.RowAsHeader >=0 &&
						transpGrid.rows.length &&
						o.RowAsHeader < transpGrid.rows.length) {

					var labels = transpGrid.rows[o.RowAsHeader], i=0;
					for(var key in labels) {
						if( Object.prototype.hasOwnProperty.call(labels, key) ){
						//labels.hasOwnProperty(key)) {
							transpGrid.colModel[i].label = labels[key];
						}
						i++;
					}
					transpGrid.rows.splice(o.RowAsHeader,1);
				}
				var query= $.jgrid.from.call($t, transpGrid.rows);
				jQuery($t).jqGrid($.extend(true, {
					datastr: query.select(),
					datatype: "jsonstring",
					colModel: transpGrid.colModel,
					jsonReader : {
						repeatitems : false
					},
					viewrecords: true
					//sortname: transpOpt.xDimension[0].dataName // ?????
				}, gridOpt || {}));
				if(transpOpt.loadMsg) {
					$(".loading_pivot").remove();
				}
			}
						
			if(typeof data === "string") {
				$.ajax($.extend({
					url : data,
					dataType: 'json',
					success : function(response) {
						transpose($.jgrid.getAccessor(response, ajaxOpt && ajaxOpt.reader ? ajaxOpt.reader: 'rows'), transpOpt );
					}
				}, ajaxOpt || {}) );
			} else {
				transpose( data, transpOpt );
			}
		});
	}
});
//module end
}));
js/jqDnR.js000064400000006204151676727230006556 0ustar00/*
 * jqDnR - Minimalistic Drag'n'Resize for jQuery.
 *
 * Copyright (c) 2007 Brice Burgess <bhb@iceburg.net>, http://www.iceburg.net
 * Licensed under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 * 
 * $Version: 2007.08.19 +r2
 */
/*jshint eqeqeq:false */
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
} (function( $ ) {
"use strict";
//module begin
$.fn.jqDrag=function(h){return i(this,h,'d');};
$.fn.jqResize=function(h,ar){return i(this,h,'r',ar);};
$.jqDnR={
	dnr:{},
	e:0,
	drag:function(v){
		if(M.k == 'd'){E.css({left:M.X+v.pageX-M.pX,top:M.Y+v.pageY-M.pY});}
		else {
			E.css({width:Math.max(v.pageX-M.pX+M.W,0),height:Math.max(v.pageY-M.pY+M.H,0)});
			if(M1){E1.css({width:Math.max(v.pageX-M1.pX+M1.W,0),height:Math.max(v.pageY-M1.pY+M1.H,0)});}
		}
		return false;
	},
	stop:function(){
		//E.css('opacity',M.o);
		$(document).off('mousemove',J.drag).off('mouseup',J.stop);
	}
};
var J=$.jqDnR,M=J.dnr,E=J.e,E1,M1,
i=function(e,h,k,aR){
	return e.each(function(){
		h=(h)?$(h,e):e;
		h.on('mousedown',{e:e,k:k},function(v){
			var d=v.data,p={};E=d.e;E1 = aR ? $(aR) : false;
			// attempt utilization of dimensions plugin to fix IE issues
			if(E.css('position') != 'relative'){try{E.position(p);}catch(e){}}
			M={
				X:p.left||f('left')||0,
				Y:p.top||f('top')||0,
				W:f('width')||E[0].scrollWidth||0,
				H:f('height')||E[0].scrollHeight||0,
				pX:v.pageX,
				pY:v.pageY,
				k:d.k
				//o:E.css('opacity')
			};
			// also resize
			if(E1 && d.k != 'd'){
				M1={
					X:p.left||f1('left')||0,
					Y:p.top||f1('top')||0,
					W:E1[0].offsetWidth||f1('width')||0,
					H:E1[0].offsetHeight||f1('height')||0,
					pX:v.pageX,
					pY:v.pageY,
					k:d.k
				};
			} else {M1 = false;}			
			//E.css({opacity:0.8});
			if($("input.hasDatepicker",E[0])[0]) {
			try {$("input.hasDatepicker",E[0]).datepicker('hide');}catch (dpe){}
			}
			$(document).mousemove($.jqDnR.drag).mouseup($.jqDnR.stop);
			return false;
		});
	});
},
f=function(k){return parseInt(E.css(k),10)||false;},
f1=function(k){return parseInt(E1.css(k),10)||false;};
/*
	jQuery tinyDraggable v1.0.2
    Copyright (c) 2014 Simon Steinberger / Pixabay
    GitHub: https://github.com/Pixabay/jQuery-tinyDraggable
    More info: https://pixabay.com/blog/posts/p-52/
	License: http://www.opensource.org/licenses/mit-license.php
*/
$.fn.tinyDraggable = function(options){
	var settings = $.extend({ handle: 0, exclude: 0 }, options);
	return this.each(function(){
	    var dx, dy, el = $(this), handle = settings.handle ? $(settings.handle, el) : el;
        handle.on({
        mousedown: function(e){
			if (settings.exclude && ~$.inArray(e.target, $(settings.exclude, el))) { return; }
			e.preventDefault();
			var os = el.offset(); dx = e.pageX-os.left, dy = e.pageY-os.top;
			$(document).on('mousemove.drag', function(e){ el.offset({top: e.pageY-dy, left: e.pageX-dx}); });
			},
			mouseup: function(e){ $(document).off('mousemove.drag'); }
		});
	});
};
//module end
}));js/grid.pivot.js000064400000043665151676727230007641 0ustar00/*jshint eqeqeq:false */
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"./grid.base",
			"./grid.grouping"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {
"use strict";
// To optimize the search we need custom array filter
// This code is taken from
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter
//module begin
function _pivotfilter (fn, context) {
	/*jshint validthis: true */
	var i,
		value,
		result = [],
		length;
		
	if (!this || typeof fn !== 'function' || (fn instanceof RegExp)) {
		throw new TypeError();
	}

	length = this.length;

	for (i = 0; i < length; i++) {
		if (this.hasOwnProperty(i)) {
			value = this[i];
			if (fn.call(context, value, i, this)) {
				result.push(value);
				// We need break in order to cancel loop 
				// in case the row is found
				break;
			}
		}
	}
	return result;
}
$.assocArraySize = function(obj) {
    // http://stackoverflow.com/a/6700/11236
    var size = 0, key;
    for (key in obj) {
        if (obj.hasOwnProperty(key)) {
        	size++;
        }
    }
    return size;
};

$.jgrid.extend({
	pivotSetup : function( data, options ){
		// data should come in json format
		// The function return the new colModel and the transformed data
		// again with group setup options which then will be passed to the grid
		var columns =[],
		pivotrows =[],
		summaries = [],
		member=[],
		labels=[],
		groupOptions = {
			grouping : true,
			groupingView :  {
				groupField : [],
				groupSummary: [],
				groupSummaryPos:[]
			}
		},
		headers = [],
		o = $.extend ( {
			rowTotals : false,
			rowTotalsText : 'Total',
			// summary columns
			colTotals : false,
			groupSummary : true,
			groupSummaryPos :  'header',
			frozenStaticCols : false
		}, options || {});
		this.each(function(){

			var 
				$t = this,
				row,
				rowindex,
				i,
				
				rowlen = data.length,
				xlen, ylen, aggrlen,
				tmp,
				newObj,
				r=0;
			// utility funcs
			/* 
			 * Filter the data to a given criteria. Return the firt occurance
			 */
			function find(ar, fun, extra) {
				var res;
				res = _pivotfilter.call(ar, fun, extra);
				return res.length > 0 ? res[0] : null;
			}
			/*
			 * Check if the grouped row column exist (See find)
			 * If the row is not find in pivot rows retun null,
			 * otherviese the column
			 */
			function findGroup(item, index) {
				/*jshint validthis: true */
				var j = 0, ret = true, i;
				for(i in item) {
					if( item.hasOwnProperty(i) ) {
						if(item[i] != this[j]) {
							ret =  false;
							break;
						}
						j++;
						if(j>=this.length) {
							break;
						}
					}
				}
				if(ret) {
					rowindex =  index;
				}
				return ret;
			}
			/*
			 * Perform calculations of the pivot values.
			 */
			function calculation(oper, v, field, rc, _cnt)  {
				var ret;
				if( $.jgrid.isFunction(oper)) {
					ret = oper.call($t, v, field, rc);
				} else {
					switch (oper) {
						case  "sum" : 
							ret = $.jgrid.floatNum(v) + $.jgrid.floatNum(rc[field]);
							break;
						case "count" :
							if(v==="" || v == null) {
								v=0;
							}
							if(rc.hasOwnProperty(field)) {
								ret = v+1;
							} else {
								ret = 0;
							}
							break;
						case "min" : 
							if(v==="" || v == null) {
								ret = $.jgrid.floatNum(rc[field]);
							} else {
								ret =Math.min($.jgrid.floatNum(v),$.jgrid.floatNum(rc[field]));
							}
							break;
						case "max" : 
							if(v==="" || v == null) {
								ret = $.jgrid.floatNum(rc[field]);
							} else {
								ret = Math.max($.jgrid.floatNum(v),$.jgrid.floatNum(rc[field]));
							}
							break;
						case "avg" : //avg grouping
							ret = ($.jgrid.floatNum(v) * (_cnt -1) + $.jgrid.floatNum(rc[field]) ) /_cnt;
							break;	
					}
				}
				return ret;
			}
			/*
			 * The function agragates the values of the pivot grid.
			 * Return the current row with pivot summary values
			 */
			function agregateFunc ( row, aggr, value, curr) {
				// default is sum
				var arrln = aggr.length, i, label, j, jv, mainval="",swapvals=[], swapstr, _cntavg = 1, lbl;
				if( Array.isArray(value) ) {
					jv = value.length;
					swapvals = value;
				} else {
					jv = 1;
					swapvals[0]=value;
				}
				member = [];
				labels = [];
				member.root = 0;
				for(j=0;j<jv;j++) {
					var  tmpmember = [], vl;
					for(i=0; i < arrln; i++) {
						swapstr = typeof aggr[i].aggregator === 'string' ? aggr[i].aggregator : 'cust';
							
						if(value == null) {
							label = $.jgrid.trim(aggr[i].member)+"_" + swapstr;
							vl = label;
							swapvals[0]= aggr[i].label || (swapstr + " " +$.jgrid.trim(aggr[i].member));
						} else {
							vl = value[j].replace(/\s+/g, '');
							try {
								label = (arrln === 1 ? mainval + vl : mainval + vl + "_" + swapstr + "_" + String(i));
							} catch(e) {}
							swapvals[j] = value[j];
						}
						//if(j<=1 && vl !==  '_r_Totals' && mainval === "") { // this does not fix full the problem
							//mainval = vl;
						//}
						label = !isNaN(parseInt(label,10)) ? label + " " : label;
						if(aggr[i].aggregator === 'avg') {
							lbl = rowindex === -1 ? pivotrows.length+"_"+label : rowindex+"_"+label;
							if(!_avg[lbl]) {
								_avg[lbl] = 1;
							} else {
								_avg[lbl]++;
							}
							_cntavg = _avg[lbl];
						}						
						curr[label] =  tmpmember[label] = calculation( aggr[i].aggregator, curr[label], aggr[i].member, row, _cntavg);
					}
					mainval += (value && value[j] != null) ? value[j].replace(/\s+/g, '') : '';
					//vl = !isNaN(parseInt(vl,10)) ? vl + " " : vl;
					member[label] = tmpmember;
					labels[label] = swapvals[j];
				}
				return curr;
			}
			// Making the row totals without to add in yDimension
			if(o.rowTotals && o.yDimension.length > 0) {
				var dn = o.yDimension[0].dataName;
				o.yDimension.splice(0,0,{dataName:dn});
				o.yDimension[0].converter =  function(){ return '_r_Totals'; };
			}
			// build initial columns (colModel) from xDimension
			xlen = Array.isArray(o.xDimension) ? o.xDimension.length : 0;
			ylen = o.yDimension.length;
			aggrlen  = Array.isArray(o.aggregates) ? o.aggregates.length : 0;
			if(xlen === 0 || aggrlen === 0) {
				throw("xDimension or aggregates optiona are not set!");
			}
			var colc;
			for(i = 0; i< xlen; i++) {
				colc = {name:o.xDimension[i].dataName, frozen: o.frozenStaticCols};
				if(o.xDimension[i].isGroupField == null) {
					o.xDimension[i].isGroupField =  true;
				}
				colc = $.extend(true, colc, o.xDimension[i]);
				columns.push( colc );
			}
			var groupfields = xlen - 1, tree={}, _avg=[];
			//tree = { text: 'root', leaf: false, children: [] };
			//loop over alll the source data
			while( r < rowlen ) {
				row = data[r];
				var xValue = [];
				var yValue = []; 
				tmp = {};
				i = 0;
				// build the data from xDimension
				do {
					xValue[i]  = $.jgrid.trim(row[o.xDimension[i].dataName]);
					tmp[o.xDimension[i].dataName] = xValue[i];
					i++;
				} while( i < xlen );
				
				var k = 0;
				rowindex = -1;
				// check to see if the row is in our new pivotrow set
				newObj = find(pivotrows, findGroup, xValue);
				if(!newObj) {
					// if the row is not in our set
					k = 0;
					// if yDimension is set
					if(ylen>=1) {
						// build the cols set in yDimension
						for(k=0;k<ylen;k++) {
							yValue[k] = $.jgrid.trim(row[o.yDimension[k].dataName]);
							if(yValue[k] === undefined) {
								yValue[k] = null;
								continue;
							}
							// Check to see if we have user defined conditions
							if(o.yDimension[k].converter && $.jgrid.isFunction(o.yDimension[k].converter)) {
								yValue[k] = o.yDimension[k].converter.call(this, yValue[k], xValue, yValue);
							}
						}
						// make the colums based on aggregates definition 
						// and return the members for late calculation
						tmp = agregateFunc( row, o.aggregates, yValue, tmp );
					} else  if( ylen === 0 ) {
						// if not set use direct the aggregates 
						tmp = agregateFunc( row, o.aggregates, null, tmp );
					}
					// add the result in pivot rows
					pivotrows.push( tmp );
				} else {
					// the pivot exists
					if( rowindex >= 0) {
						k = 0;
						// make the recalculations 
						if(ylen>=1) {
							for(k=0;k<ylen;k++) {
								yValue[k] = $.jgrid.trim(row[o.yDimension[k].dataName]);
								if(yValue[k] === undefined) {
									yValue[k] = null;
									continue;
								}				
								if(o.yDimension[k].converter && $.jgrid.isFunction(o.yDimension[k].converter)) {
									yValue[k] = o.yDimension[k].converter.call(this, yValue[k], xValue, yValue);
								}
							}
							newObj = agregateFunc( row, o.aggregates, yValue, newObj );
						} else  if( ylen === 0 ) {
							newObj = agregateFunc( row, o.aggregates, null, newObj );
						}
						// update the row
						pivotrows[rowindex] = newObj;
					}
				}
				var kj=0, current = null,existing = null, kk;
				// Build a JSON tree from the member (see aggregateFunc) 
				// to make later the columns 
				// 
				for (kk in member) {
					if(member.hasOwnProperty( kk )) {
						if(kj === 0) {
							if (!tree.children||tree.children === undefined){
								tree = { text: kk, level : 0, children: [], label: kk  };
							}
							current = tree.children;
						} else {
							existing = null;
							for (i=0; i < current.length; i++) {
								if (current[i].text === kk) {
								//current[i].fields=member[kk];
									existing = current[i];
									break;
								}
							}
							if (existing) {
								current = existing.children;
							} else {
								current.push({ children: [], text: kk, level: kj,  fields: member[kk], label: labels[kk] });
								current = current[current.length - 1].children;
							}
						}
						kj++;
					}
				}
				r++;
			}
			_avg = null; // free mem
			var  lastval=[], initColLen = columns.length, swaplen = initColLen;
			if(ylen>0) {
				headers[ylen-1] = {	useColSpanStyle: false,	groupHeaders: []};
			}
			/*
			 * Recursive function which uses the tree to build the 
			 * columns from the pivot values and set the group Headers
			 */
			function list(items) {
				var l, j, key, k, col;
				for (key in items) {	 // iterate
					if (items.hasOwnProperty(key)) {
					// write amount of spaces according to level
					// and write name and newline
						if(typeof items[key] !== "object") {
							// If not a object build the header of the appropriate level
							if( key === 'level') {
								if(lastval[items.level] === undefined) {
									lastval[items.level] ='';
									if(items.level>0 && items.text.indexOf('_r_Totals') === -1) {
										headers[items.level-1] = {
											useColSpanStyle: false,
											groupHeaders: []
										};
									}
								}
								if(lastval[items.level] !== items.text && items.children.length && items.text.indexOf('_r_Totals') === -1 ) {
									if(items.level>0) {
										headers[items.level-1].groupHeaders.push({
											titleText: items.label,
											numberOfColumns : 0
										});
										var collen = headers[items.level-1].groupHeaders.length-1,
										colpos = collen === 0 ? swaplen : initColLen;//+aggrlen;
										if(items.level-1=== (o.rowTotals ? 1 : 0)) {
											if(collen>0) {
												var l1=0;
												for(var kk=0; kk<collen; kk++) { 
													l1 += headers[items.level-1].groupHeaders[kk].numberOfColumns;
												}
												if(l1) {
													colpos = l1  + xlen;
												}
											}
										}
										if(columns[colpos]) {
											headers[items.level-1].groupHeaders[collen].startColumnName = columns[colpos].name;
											headers[items.level-1].groupHeaders[collen].numberOfColumns = columns.length - colpos;
										}
										initColLen = columns.length;
									}
								}
								lastval[items.level] = items.text;
							}
							// This is in case when the member contain more than one summary item
							if(items.level === ylen  && key==='level' && ylen >0) {
								if( aggrlen > 1){
									var ll=1;
									for( l in items.fields) {
										if(items.fields.hasOwnProperty(l)) {
											if(ll===1) {
												headers[ylen-1].groupHeaders.push({startColumnName: l, numberOfColumns: 1, titleText: items.label || items.text});
											}
											ll++;
										}
									}
									headers[ylen-1].groupHeaders[headers[ylen-1].groupHeaders.length-1].numberOfColumns = ll-1;
								} else {
									headers.splice(ylen-1,1);
								}
							}
						}
						// if object, call recursively
						if (items[key] != null && typeof items[key] === "object") {
							list(items[key]);
						}
						// Finally build the columns
						if( key === 'level') {
							if( items.level > 0 &&  (items.level === (ylen===0?items.level:ylen) || lastval[items.level].indexOf('_r_Totals') !== -1 ) ){
								j=0;
								for(l in items.fields) {
									if(items.fields.hasOwnProperty( l ) ) {
										col = {};
										for(k in o.aggregates[j]) {
											if(o.aggregates[j].hasOwnProperty(k)) {
												switch( k ) {
													case 'member':
													case 'label':
													case 'aggregator':
														break;
													default:
														col[k] = o.aggregates[j][k];
												}
											}
										}	
										if(aggrlen > 1) {
											col.name = l;
											col.label = o.aggregates[j].label || items.label;
										} else {
											col.name = items.text;
											col.label = items.text==='_r_Totals' ? o.rowTotalsText : items.label;
										}
										columns.push (col);
										j++;
									}
								}
							}
						}
					}
				}
			}

			list( tree );
			var nm;
			// loop again trougth the pivot rows in order to build grand total 
			if(o.colTotals) {
				var plen = pivotrows.length;
				while(plen--) {
					for(i=xlen;i<columns.length;i++) {
						nm = columns[i].name;
						if(!summaries[nm]) {
							summaries[nm] = $.jgrid.floatNum(pivotrows[plen][nm]);
						} else {
							summaries[nm] += $.jgrid.floatNum(pivotrows[plen][nm]);
						}
					}
				}
			}
			// based on xDimension  levels build grouping 
			if( groupfields > 0) {
				for(i=0;i<groupfields;i++) {
					if(columns[i].isGroupField) {
						groupOptions.groupingView.groupField.push(columns[i].name);
						groupOptions.groupingView.groupSummary.push(o.groupSummary);
						groupOptions.groupingView.groupSummaryPos.push(o.groupSummaryPos);
					}
				}
			} else {
				// no grouping is needed
				groupOptions.grouping = false;
			}
			groupOptions.sortname = columns[groupfields].name;
			groupOptions.groupingView.hideFirstGroupCol = true;
		});
		// return the final result.
		return { "colModel" : columns, "rows": pivotrows, "groupOptions" : groupOptions, "groupHeaders" :  headers, summary : summaries };
	},
	jqPivot : function( data, pivotOpt, gridOpt, ajaxOpt) {
		return this.each(function(){
			var $t = this,
				regional = gridOpt.regional ? gridOpt.regional : "en";
			if(pivotOpt.loadMsg === undefined) {
				pivotOpt.loadMsg = true;
			}
			if(pivotOpt.loadMsg) {
				$("<div class='loading_pivot ui-state-default ui-state-active row'>"+$.jgrid.getRegional($t, "regional."+regional+".defaults.loadtext")+"</div>").insertBefore($t).show();
			}

			function pivot( data) {
				if( $.jgrid.isFunction( pivotOpt.onInitPivot ) ) {
					pivotOpt.onInitPivot.call( $t );
				}
				if( !Array.isArray(data) ) {
					//throw "data provides is not an array";
					data = [];
				}
				var pivotGrid = jQuery($t).jqGrid('pivotSetup',data, pivotOpt),
				footerrow = $.assocArraySize(pivotGrid.summary) > 0 ? true : false,
				query= $.jgrid.from.call($t, pivotGrid.rows), i, so, st, len;
				if(pivotOpt.ignoreCase) {
					query = query.ignoreCase();
				}
				for(i=0; i< pivotGrid.groupOptions.groupingView.groupField.length; i++) {
					so = pivotOpt.xDimension[i].sortorder ? pivotOpt.xDimension[i].sortorder : 'asc';
					st = pivotOpt.xDimension[i].sorttype ? pivotOpt.xDimension[i].sorttype : 'text';
					query.orderBy(pivotGrid.groupOptions.groupingView.groupField[i], so, st, '', st);
				}
				len = pivotOpt.xDimension.length;
				if(gridOpt.sortname) { // should be a part of xDimension
					so = gridOpt.sortorder ? gridOpt.sortorder : 'asc';
					st = 'text';
					for( i=0; i< len; i++) {
						if(pivotOpt.xDimension[i].dataName === gridOpt.sortname) {
							st = pivotOpt.xDimension[i].sorttype ? pivotOpt.xDimension[i].sorttype : 'text';
							break;
						}
					}
					query.orderBy(gridOpt.sortname, so, st, '', st);
				} else {
					if(pivotGrid.groupOptions.sortname && len) {
						so = pivotOpt.xDimension[len-1].sortorder ? pivotOpt.xDimension[len-1].sortorder : 'asc';
						st = pivotOpt.xDimension[len-1].sorttype ? pivotOpt.xDimension[len-1].sorttype : 'text';
						query.orderBy(pivotGrid.groupOptions.sortname, so, st, '', st);					
					}
				}
				jQuery($t).jqGrid($.extend(true, {
					datastr: $.extend(query.select(),footerrow ? {userdata:pivotGrid.summary} : {}),
					datatype: "jsonstring",
					footerrow : footerrow,
					userDataOnFooter: footerrow,
					colModel: pivotGrid.colModel,
					viewrecords: true,
					formatFooterData : pivotOpt.colTotals === true ? true : false,
					sortname: pivotOpt.xDimension[0].dataName // ?????
				}, pivotGrid.groupOptions, gridOpt || {}));
				var gHead = pivotGrid.groupHeaders;
				if(gHead.length) {
					for( i = 0;i < gHead.length ; i++) {
						if(gHead[i] && gHead[i].groupHeaders.length) {
							jQuery($t).jqGrid('setGroupHeaders',gHead[i]);
						}
					}
				}
				if(pivotOpt.frozenStaticCols) {
					jQuery($t).jqGrid("setFrozenColumns");
				}
				if( $.jgrid.isFunction( pivotOpt.onCompletePivot ) ) {
					pivotOpt.onCompletePivot.call( $t );
				}
				if(pivotOpt.loadMsg) {
					$(".loading_pivot").remove();
				}
			}
						
			if(typeof data === "string") {
				$.ajax($.extend({
					url : data,
					dataType: 'json',
					success : function(response) {
						pivot($.jgrid.getAccessor(response, ajaxOpt && ajaxOpt.reader ? ajaxOpt.reader: 'rows') );
					}
				}, ajaxOpt || {}) );
			} else {
				pivot( data );
			}
		});
	}
});
//module end
}));
js/jquery.sortable.js000064400000006437151676727230010701 0ustar00/*
 * 
 * HTML5 Sortable jQuery Plugin
 * 
 * Original code Copyright 2012 Ali Farhadi.
 *
 * This version is maintained by Tony Tomov <tony@trirand.com>
 * 
 * Released under the MIT license.
 */
/*jshint eqeqeq:false */
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
} (function( $ ) {
"use strict";
//module begin
var dragging, placeholders = $();
$.fn.html5sortable = function(options) {
	var method = String(options);
	options = $.extend({
		connectWith: false
	}, options);
	return this.each(function() {
		var items;
		if (/^enable|disable|destroy$/.test(method)) {
			items = $(this).children($(this).data('items')).attr('draggable', method === 'enable');
			if (method === 'destroy') {
				items.add(this).removeData('connectWith items')
					.off('dragstart.h5s dragend.h5s selectstart.h5s dragover.h5s dragenter.h5s drop.h5s');
			}
			return;
		}
		var isHandle, index; 
		items = $(this).children(options.items);
		var placeholder = $('<' + (/^ul|ol$/i.test(this.tagName) ? 'li' : /^tbody$/i.test(this.tagName) ? 'tr' : 'div') +
            ' class="sortable-placeholder ' + options.placeholderClass + '">').html('&nbsp;');
        items.find(options.handle).mousedown(function() {
			isHandle = true;
		}).mouseup(function() {
			isHandle = false;
		});
		$(this).data('items', options.items);
		placeholders = placeholders.add(placeholder);
		if (options.connectWith) {
			$(options.connectWith).add(this).data('connectWith', options.connectWith);
		}
		items.attr('draggable', 'true').on('dragstart.h5s', function(e) {
			if (options.handle && !isHandle) {
				return false;
			}
			isHandle = false;
			var dt = e.originalEvent.dataTransfer;
			dt.effectAllowed = 'move';
			dt.setData('Text', 'dummy');
			index = (dragging = $(this)).addClass('sortable-dragging').index();
		}).on('dragend.h5s', function() {
			if (!dragging) {
				return;
			}
			dragging.removeClass('sortable-dragging').show();
			placeholders.detach();
			if (index !== dragging.index()) {
				dragging.parent().trigger('sortupdate', {item: dragging, startindex: index, endindex: dragging.index()});
			}
			dragging = null;
		}).not('a[href], img').on('selectstart.h5s', function() {
			this.dragDrop && this.dragDrop();
			return false;
		}).end().add([this, placeholder]).on('dragover.h5s dragenter.h5s drop.h5s', function(e) {
			if (!items.is(dragging) && options.connectWith !== $(dragging).parent().data('connectWith')) {
				return true;
			}
			if (e.type === 'drop') {
				e.stopPropagation();
				placeholders.filter(':visible').after(dragging);
				dragging.trigger('dragend.h5s');
				return false;
			}
			e.preventDefault();
			e.originalEvent.dataTransfer.dropEffect = 'move';
			if (items.is(this)) {
				if (options.forcePlaceholderSize) {
					placeholder.height(dragging.outerHeight());
				}
				dragging.hide();
				$(this)[placeholder.index() < $(this).index() ? 'after' : 'before'](placeholder);
				placeholders.not(placeholder).detach();
			} else if (!placeholders.is(this) && !$(this).children(options.items).length) {
				placeholders.detach();
				$(this).append(placeholder);
			}
			return false;
		});
	});
};
//module end
}));js/jquery.fmatter.js000064400000045762151676727230010534 0ustar00/*
**
 * formatter for values but most of the values if for jqGrid
 * Some of this was inspired and based on how YUI does the table datagrid but in jQuery fashion
 * we are trying to keep it as light as possible
 * Joshua Burnett josh@9ci.com	
 * http://www.greenbill.com
 *
 * Changes from Tony Tomov tony@trirand.com
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl-2.0.html
 * 
**/
/*jshint eqeqeq:false */
/*global jQuery, define */

(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"./grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {
"use strict";
//module begin
	$.fmatter = {};
	//opts can be id:row id for the row, rowdata:the data for the row, colmodel:the column model for this column
	//example {id:1234,}
	$.extend($.fmatter,{
		isBoolean : function(o) {
			return typeof o === 'boolean';
		},
		isObject : function(o) {
			return (o && (typeof o === 'object' || $.jgrid.isFunction(o))) || false;
		},
		isString : function(o) {
			return typeof o === 'string';
		},
		isNumber : function(o) {
			return typeof o === 'number' && isFinite(o);
		},
		isValue : function (o) {
			return (this.isObject(o) || this.isString(o) || this.isNumber(o) || this.isBoolean(o));
		},
		isEmpty : function(o) {
			if(!this.isString(o) && this.isValue(o)) {
				return false;
			}
			if (!this.isValue(o)){
				return true;
			}
			o = $.jgrid.trim(o).replace(/\&nbsp\;/ig,'').replace(/\&#160\;/ig,'');
			return o==="";	
		}
	});
	$.fn.fmatter = function(formatType, cellval, opts, rwd, act) {
		// build main options before element iteration
		var v=cellval;
		opts = $.extend({}, $.jgrid.getRegional(this, 'formatter') , opts);

		try {
			v = $.fn.fmatter[formatType].call(this, cellval, opts, rwd, act);
		} catch(fe){}
		return v;
	};
	$.fmatter.util = {
		// Taken from YAHOO utils
		NumberFormat : function(nData,opts) {
			if(!$.fmatter.isNumber(nData)) {
				nData *= 1;
			}
			if($.fmatter.isNumber(nData)) {
				var bNegative = (nData < 0);
				var sOutput = String(nData);
				var sDecimalSeparator = opts.decimalSeparator || ".";
				var nDotIndex;
				if($.fmatter.isNumber(opts.decimalPlaces)) {
					// Round to the correct decimal place
					var nDecimalPlaces = opts.decimalPlaces;
					//var nDecimal = Math.pow(10, nDecimalPlaces);
					//sOutput = String(Math.round(nData*nDecimal)/nDecimal);
					// see http://www.jacklmoore.com/notes/rounding-in-javascript/
					sOutput = String(Number(Math.round(nData+'e'+nDecimalPlaces)+'e-'+nDecimalPlaces));
					nDotIndex = sOutput.lastIndexOf(".");
					if(nDecimalPlaces > 0) {
					// Add the decimal separator
						if(nDotIndex < 0) {
							sOutput += sDecimalSeparator;
							nDotIndex = sOutput.length-1;
						}
						// Replace the "."
						else if(sDecimalSeparator !== "."){
							sOutput = sOutput.replace(".",sDecimalSeparator);
						}
					// Add missing zeros
						while((sOutput.length - 1 - nDotIndex) < nDecimalPlaces) {
							sOutput += "0";
						}
					}
				}
				if(opts.thousandsSeparator) {
					var sThousandsSeparator = opts.thousandsSeparator;
					nDotIndex = sOutput.lastIndexOf(sDecimalSeparator);
					nDotIndex = (nDotIndex > -1) ? nDotIndex : sOutput.length;
					var sNewOutput = sOutput.substring(nDotIndex);
					var nCount = -1, i;
					for (i=nDotIndex; i>0; i--) {
						nCount++;
						if ((nCount%3 === 0) && (i !== nDotIndex) && (!bNegative || (i > 1))) {
							sNewOutput = sThousandsSeparator + sNewOutput;
						}
						sNewOutput = sOutput.charAt(i-1) + sNewOutput;
					}
					sOutput = sNewOutput;
				}
				// Prepend prefix
				sOutput = (opts.prefix) ? opts.prefix + sOutput : sOutput;
				// Append suffix
				sOutput = (opts.suffix) ? sOutput + opts.suffix : sOutput;
				return sOutput;
				
			}
			return nData;
		}
	};
	$.fn.fmatter.defaultFormat = function(cellval, opts) {
		return ($.fmatter.isValue(cellval) && cellval!=="" ) ?  cellval : opts.defaultValue || "&#160;";
	};
	$.fn.fmatter.email = function(cellval, opts) {
		if(!$.fmatter.isEmpty(cellval)) {
			return "<a href=\"mailto:" + cellval + "\">" + cellval + "</a>";
		}
		return $.fn.fmatter.defaultFormat(cellval,opts );
	};
	$.fn.fmatter.checkbox =function(cval, opts) {
		var op = $.extend({},opts.checkbox), ds, checkboxVal, valtrue, valfalse, lang = Object.keys($.jgrid.regional)[0], title;
		if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {
			op = $.extend({},op,opts.colModel.formatoptions);
		}
		if(op.disabled===true) {ds = "disabled=\"disabled\"";} else {ds="";}
		if($.fmatter.isEmpty(cval) || cval === undefined ) {cval = $.fn.fmatter.defaultFormat(cval,op);}
		cval=String(cval);
		cval=(cval+"").toLowerCase();
		var bchk = cval.search(/(false|f|0|no|n|off|undefined)/i)<0 ? " checked='checked' " : "";
		checkboxVal = $.jgrid.regional[lang].defaults.valueCheckbox;
		valtrue= $.jgrid.regional[lang].defaults.valT;	
		valfalse= $.jgrid.regional[lang].defaults.valF;
		if((checkboxVal !== undefined) && (cval==="true")) {
			title = checkboxVal + " " + valtrue;
		}
		else if (checkboxVal !== undefined && cval==="false") {
			title = checkboxVal+ " " + valfalse;
		}
		else {
			title = cval;
		}
		return "<input title=\""+title+"\" type=\"checkbox\" " + bchk  + " value=\""+ cval+"\" offval=\"no\" "+ds+ "/>";
	};
	$.fn.fmatter.link = function(cellval, opts) {
		var op = {target:opts.target};
		var target = "";
		if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {
			op = $.extend({},op,opts.colModel.formatoptions);
		}
		if(op.target) {target = 'target=' + op.target;}
		if(!$.fmatter.isEmpty(cellval)) {
			return "<a "+target+" href=\"" + cellval + "\">" + cellval + "</a>";
		}
		return $.fn.fmatter.defaultFormat(cellval,opts);
	};
	$.fn.fmatter.showlink = function(cellval, opts) {
		var op = {baseLinkUrl: opts.baseLinkUrl,showAction:opts.showAction, addParam: opts.addParam || "", target: opts.target, idName: opts.idName},
		target = "", idUrl;
		if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {
			op = $.extend({},op,opts.colModel.formatoptions);
		}
		if(op.target) {target = 'target=' + op.target;}
		idUrl = op.baseLinkUrl+op.showAction + '?'+ op.idName+'='+opts.rowId+op.addParam;
		if($.fmatter.isString(cellval) || $.fmatter.isNumber(cellval)) {	//add this one even if its blank string
			return "<a "+target+" href=\"" + idUrl + "\">" + cellval + "</a>";
		}
		return $.fn.fmatter.defaultFormat(cellval,opts);
	};
	$.fn.fmatter.integer = function(cellval, opts) {
		var op = $.extend({},opts.integer);
		if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {
			op = $.extend({},op,opts.colModel.formatoptions);
		}
		if($.fmatter.isEmpty(cellval)) {
			return op.defaultValue;
		}
		return $.fmatter.util.NumberFormat(cellval,op);
	};
	$.fn.fmatter.number = function (cellval, opts) {
		var op = $.extend({},opts.number);
		if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {
			op = $.extend({},op,opts.colModel.formatoptions);
		}
		if($.fmatter.isEmpty(cellval)) {
			return op.defaultValue;
		}
		return $.fmatter.util.NumberFormat(cellval,op);
	};
	$.fn.fmatter.currency = function (cellval, opts) {
		var op = $.extend({},opts.currency);
		if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {
			op = $.extend({},op,opts.colModel.formatoptions);
		}
		if($.fmatter.isEmpty(cellval)) {
			return op.defaultValue;
		}
		return $.fmatter.util.NumberFormat(cellval,op);
	};
	$.fn.fmatter.date = function (cellval, opts, rwd, act) {
		var op = $.extend({},opts.date);
		if(opts.colModel !== undefined && opts.colModel.formatoptions !== undefined) {
			op = $.extend({},op,opts.colModel.formatoptions);
		}
		if(!op.reformatAfterEdit && act === 'edit'){
			return $.fn.fmatter.defaultFormat(cellval, opts);
		}
		if(!$.fmatter.isEmpty(cellval)) {
			return $.jgrid.parseDate.call(this, op.srcformat,cellval,op.newformat,op);
		}
		return $.fn.fmatter.defaultFormat(cellval, opts);
	};
	$.fn.fmatter.select = function (cellval,opts) {
		// jqGrid specific
		cellval = String(cellval);
		var oSelect = false, ret=[], sep, delim;
		if(opts.colModel.formatoptions !== undefined){
			oSelect= opts.colModel.formatoptions.value;
			sep = opts.colModel.formatoptions.separator === undefined ? ":" : opts.colModel.formatoptions.separator;
			delim = opts.colModel.formatoptions.delimiter === undefined ? ";" : opts.colModel.formatoptions.delimiter;
		} else if(opts.colModel.editoptions !== undefined){
			oSelect= opts.colModel.editoptions.value;
			sep = opts.colModel.editoptions.separator === undefined ? ":" : opts.colModel.editoptions.separator;
			delim = opts.colModel.editoptions.delimiter === undefined ? ";" : opts.colModel.editoptions.delimiter;
		}
		if (oSelect) {
			var	msl =  (opts.colModel.editoptions != null && opts.colModel.editoptions.multiple === true) === true ? true : false,
			scell = [], sv;
			if(msl) {scell = cellval.split(",");scell = $.map(scell,function(n){return $.jgrid.trim(n);});}
			if ($.fmatter.isString(oSelect)) {
				// mybe here we can use some caching with care ????
				var so = oSelect.split(delim), j=0, i;
				for(i=0; i<so.length;i++){
					sv = so[i].split(sep);
					if(sv.length > 2 ) {
						sv[1] = $.map(sv,function(n,i){if(i>0) {return n;}}).join(sep);
					}
					if(msl) {
						if($.inArray(sv[0],scell)>-1) {
							ret[j] = sv[1];
							j++;
						}
					} else if($.jgrid.trim(sv[0]) === $.jgrid.trim(cellval)) {
						ret[0] = sv[1];
						break;
					}
				}
			} else if($.fmatter.isObject(oSelect)) {
				// this is quicker
				if(msl) {
					ret = $.map(scell, function(n){
						return oSelect[n];
					});
				} else {
					ret[0] = oSelect[cellval] || "";
				}
			}
		}
		cellval = ret.join(", ");
		return  cellval === "" ? $.fn.fmatter.defaultFormat(cellval,opts) : cellval;
	};
	$.fn.fmatter.rowactions = function(act) {
		var $tr = $(this).closest("tr.jqgrow"),
			rid = $tr.attr("id"),
			$id = $(this).closest("table.ui-jqgrid-btable").attr('id').replace(/_frozen([^_]*)$/,'$1'),
			$grid = $("#"+$id),
			$t = $grid[0],
			p = $t.p,
			cm = p.colModel[$.jgrid.getCellIndex(this)],
			$actionsDiv = cm.frozen ? $("tr#"+rid+" td", $grid).eq( $.jgrid.getCellIndex(this) ).find("> div") :$(this).parent(),
			op = {
				extraparam: {}
			},
			saverow = function(rowid, res) {
				if($.jgrid.isFunction(op.afterSave)) { op.afterSave.call($t, rowid, res); }
				$actionsDiv.find("div.ui-inline-edit,div.ui-inline-del").show();
				$actionsDiv.find("div.ui-inline-save,div.ui-inline-cancel").hide();
			},
			restorerow = function(rowid) {
				if($.jgrid.isFunction(op.afterRestore)) { op.afterRestore.call($t, rowid); }
				$actionsDiv.find("div.ui-inline-edit,div.ui-inline-del").show();
				$actionsDiv.find("div.ui-inline-save,div.ui-inline-cancel").hide();
			};

		if (cm.formatoptions !== undefined) {
			// Deep clone before copying over to op, to avoid creating unintentional references.
			// Otherwise, the assignment of op.extraparam[p.prmNames.oper] below may persist into the colModel config.
			var formatoptionsClone = $.extend(true, {}, cm.formatoptions);
			op = $.extend(op, formatoptionsClone);
		}
		if (p.editOptions !== undefined) {
			op.editOptions = p.editOptions;
		}
		if (p.delOptions !== undefined) {
			op.delOptions = p.delOptions;
		}
		if ($tr.hasClass("jqgrid-new-row")){
			op.extraparam[p.prmNames.oper] = p.prmNames.addoper;
		}
		var actop = {
			keys: op.keys,
			oneditfunc: op.onEdit,
			successfunc: op.onSuccess,
			url: op.url,
			extraparam: op.extraparam,
			aftersavefunc: saverow,
			errorfunc: op.onError,
			afterrestorefunc: restorerow,
			restoreAfterError: op.restoreAfterError,
			mtype: op.mtype
		};
		switch(act)
		{
			case 'edit':
				$grid.jqGrid('editRow', rid, actop);
				if($grid[0].p.beforeAction) {
					$actionsDiv.find("div.ui-inline-edit,div.ui-inline-del").hide();
					$actionsDiv.find("div.ui-inline-save,div.ui-inline-cancel").show();
					$grid.triggerHandler("jqGridAfterGridComplete");
				}
				break;
			case 'save':
				if ($grid.jqGrid('saveRow', rid, actop)) {
					$actionsDiv.find("div.ui-inline-edit,div.ui-inline-del").show();
					$actionsDiv.find("div.ui-inline-save,div.ui-inline-cancel").hide();
					$grid.triggerHandler("jqGridAfterGridComplete");
				}
				break;
			case 'cancel' :
				$grid.jqGrid('restoreRow', rid, restorerow);
				$actionsDiv.find("div.ui-inline-edit,div.ui-inline-del").show();
				$actionsDiv.find("div.ui-inline-save,div.ui-inline-cancel").hide();
				$grid.triggerHandler("jqGridAfterGridComplete");
				break;
			case 'del':
				$grid.jqGrid('delGridRow', rid, op.delOptions);
				break;
			case 'formedit':
				$grid.jqGrid('setSelection', rid);
				$grid.jqGrid('editGridRow', rid, op.editOptions);
				break;
		}
	};
	$.fn.fmatter.actions = function(cellval,opts) {
		var op={keys:false, editbutton:true, delbutton:true, editformbutton: false},
			rowid=opts.rowId, str="",ocl,
			nav = $.jgrid.getRegional(this, 'nav'),
			classes = $.jgrid.styleUI[(opts.styleUI || 'jQueryUI')].fmatter,
			common = $.jgrid.styleUI[(opts.styleUI || 'jQueryUI')].common;
		if(opts.colModel.formatoptions !== undefined) {
			op = $.extend(op,opts.colModel.formatoptions);
		}
		if(rowid === undefined || $.fmatter.isEmpty(rowid)) {return "";}
		var hover = "onmouseover=jQuery(this).addClass('" + common.hover +"'); onmouseout=jQuery(this).removeClass('" + common.hover +"');  ";
		if(op.editformbutton){ 
			ocl = "id='jEditButton_"+rowid+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'formedit'); " + hover;
			str += "<div title='"+nav.edittitle+"' style='float:left;cursor:pointer;' class='ui-pg-div ui-inline-edit' "+ocl+"><span class='" + common.icon_base +" "+classes.icon_edit +"'></span></div>";
		} else if(op.editbutton){
			ocl = "id='jEditButton_"+rowid+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'edit'); " + hover;
			str += "<div title='"+nav.edittitle+"' style='float:left;cursor:pointer;' class='ui-pg-div ui-inline-edit' "+ocl+"><span class='" + common.icon_base +" "+classes.icon_edit +"'></span></div>";
		}
		if(op.delbutton) {
			ocl = "id='jDeleteButton_"+rowid+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'del'); " + hover;
			str += "<div title='"+nav.deltitle+"' style='float:left;' class='ui-pg-div ui-inline-del' "+ocl+"><span class='" + common.icon_base +" "+classes.icon_del +"'></span></div>";
		}
		ocl = "id='jSaveButton_"+rowid+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'save'); " + hover;
		str += "<div title='"+nav.savetitle+"' style='float:left;display:none' class='ui-pg-div ui-inline-save' "+ocl+"><span class='" + common.icon_base +" "+classes.icon_save +"'></span></div>";
		ocl = "id='jCancelButton_"+rowid+"' onclick=jQuery.fn.fmatter.rowactions.call(this,'cancel'); " + hover;
		str += "<div title='"+nav.canceltitle+"' style='float:left;display:none;' class='ui-pg-div ui-inline-cancel' "+ocl+"><span class='" + common.icon_base +" "+classes.icon_cancel +"'></span></div>";
		return "<div  class='jqgrid_actions' style='margin-left:8px;'>" + str + "</div>";
	};
	$.unformat = function (cellval,options,pos,cnt) {
		// specific for jqGrid only
		var ret, formatType = options.colModel.formatter,
		op =options.colModel.formatoptions || {}, sep,
		re = /([\.\*\_\'\(\)\{\}\+\?\\])/g,
		unformatFunc = options.colModel.unformat||($.fn.fmatter[formatType] && $.fn.fmatter[formatType].unformat);
		if(unformatFunc !== undefined && $.jgrid.isFunction(unformatFunc) ) {
			ret = unformatFunc.call(this, $(cellval).text(), options, cellval);
		} else if(formatType !== undefined && $.fmatter.isString(formatType) ) {
			var opts = $.jgrid.getRegional(this, 'formatter') || {}, stripTag;
			switch(formatType) {
				case 'integer' :
					op = $.extend({},opts.integer,op);
					sep = op.thousandsSeparator.replace(re,"\\$1");
					stripTag = new RegExp(sep, "g");
					ret = $(cellval).text().replace(stripTag,'');
					break;
				case 'number' :
					op = $.extend({},opts.number,op);
					sep = op.thousandsSeparator.replace(re,"\\$1");
					stripTag = new RegExp(sep, "g");
					ret = $(cellval).text().replace(stripTag,"").replace(op.decimalSeparator,'.');
					break;
				case 'currency':
					op = $.extend({},opts.currency,op);
					sep = op.thousandsSeparator.replace(re,"\\$1");
					stripTag = new RegExp(sep, "g");
					ret = $(cellval).text();
					if (op.prefix && op.prefix.length) {
						ret = ret.slice(op.prefix.length);
					}
					if (op.suffix && op.suffix.length) {
						ret = ret.slice(0, ret.length - op.suffix.length);
					}
					ret = ret.replace(stripTag,'').replace(op.decimalSeparator,'.');
					break;
				case 'checkbox':
					var cbv = (options.colModel.editoptions) ? options.colModel.editoptions.value.split(":") : ["Yes","No"];
					ret = $('input',cellval).is(":checked") ? cbv[0] : cbv[1];
					break;
				case 'select' :
					ret = $.unformat.select(cellval,options,pos,cnt);
					break;
				case 'actions':
					return "";
				default:
					ret= $(cellval).text();
			}
		}
		return ret !== undefined ? ret : cnt===true ? $(cellval).text() : $.jgrid.htmlDecode($(cellval).html());
	};
	$.unformat.select = function (cellval,options,pos,cnt) {
		// Spacial case when we have local data and perform a sort
		// cnt is set to true only in sortDataArray
		var ret = [];
		var cell = $(cellval).text();
		if(cnt===true) {return cell;}
		var op = $.extend({}, options.colModel.formatoptions !== undefined ? options.colModel.formatoptions: options.colModel.editoptions),
		sep = op.separator === undefined ? ":" : op.separator,
		delim = op.delimiter === undefined ? ";" : op.delimiter;
		
		if(op.value){
			var oSelect = op.value,
			msl =  op.multiple === true ? true : false,
			scell = [], sv;
			if(msl) {scell = cell.split(",");scell = $.map(scell,function(n){return $.jgrid.trim(n);});}
			if ($.fmatter.isString(oSelect)) {
				var so = oSelect.split(delim), j=0, i;
				for(i=0; i<so.length;i++){
					sv = so[i].split(sep);
					if(sv.length > 2 ) {
						sv[1] = $.map(sv,function(n,i){if(i>0) {return n;}}).join(sep);
					}
					if(op.decodeValue && op.decodeValue===true) {
						sv[1] = $.jgrid.htmlDecode(sv[1]);
					}
					if(msl) {
						if($.inArray($.jgrid.trim(sv[1]),scell)>-1) {
							ret[j] = sv[0];
							j++;
						}
					} else if($.jgrid.trim(sv[1]) === $.jgrid.trim(cell)) {
						ret[0] = sv[0];
						break;
					}
				}
			} else if( $.fmatter.isObject(oSelect) || Array.isArray(oSelect) ){
				if(!msl) {scell[0] =  cell;}
				ret = $.map(scell, function(n){
					var rv;
					$.each(oSelect, function(i,val){
						if (val === n) {
							rv = i;
							return false;
						}
					});
					if( rv !== undefined ) {return rv;}
				});
			}
			return ret.join(", ");
		}
		return cell || "";
	};
	$.unformat.date = function (cellval, opts) {
		var op = $.jgrid.getRegional(this, 'formatter.date') || {};
		if(opts.formatoptions !== undefined) {
			op = $.extend({},op,opts.formatoptions);
		}		
		if(!$.fmatter.isEmpty(cellval)) {
			return $.jgrid.parseDate.call(this, op.newformat,cellval,op.srcformat,op);
		}
		return $.fn.fmatter.defaultFormat(cellval, opts);
	};
//module end
}));
js/grid.celledit.js000064400000063125151676727230010256 0ustar00/*jshint eqeqeq:false */
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"./grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {
/**
 * all events and options here are aded anonynous and not in the base grid
 * since the array is to big. Here is the order of execution.
 * From this point we use jQuery isFunction
 * formatCell
 * beforeEditCell,
 * onCellSelect (used only for noneditable cels)
 * afterEditCell,
 * beforeSaveCell, (called before validation of values if any)
 * beforeSubmitCell (if cellsubmit remote (ajax))
 * onSubmitCell
 * afterSubmitCell(if cellsubmit remote (ajax)),
 * afterSaveCell,
 * errorCell,
 * validationCell
 * serializeCellData - new
 * Options
 * cellsubmit (remote,clientArray) (added in grid options)
 * cellurl
 * ajaxCellOptions
 * restoreCellonFail
* */
"use strict";
//module begin
$.jgrid.extend({
	editCell : function (iRow,iCol, ed, event, excel){
		return this.each(function (){
			var $t = this, nm, tmp,cc, cm,
			highlight = $(this).jqGrid('getStyleUI',$t.p.styleUI+'.common','highlight', true),
			disabled = $(this).jqGrid('getStyleUI',$t.p.styleUI+'.common','disabled', true),			
			hover = !$t.p.ariaBody ? $(this).jqGrid('getStyleUI',$t.p.styleUI+'.common','hover', true) : "",
			inpclass = $(this).jqGrid('getStyleUI',$t.p.styleUI+".celledit",'inputClass', true),
			selclass = $(this).jqGrid('getStyleUI',$t.p.styleUI+".celledit",'selectClass', true);

			if (!$t.grid || $t.p.cellEdit !== true) {return;}
			if ( $($t.rows[iRow]).hasClass(disabled) ) {return;}
			iCol = parseInt(iCol,10);
			// select the row that can be used for other methods
			$t.p.selrow = $t.rows[iRow].id;
			if (!$t.p.knv && !$t.p.ariaBody) {$($t).jqGrid("GridNav");}
			// check to see if we have already edited cell
			if ($t.p.savedRow.length>0) {
				// prevent second click on that field and enable selects
				if (ed===true ) {
					if(iRow == $t.p.iRow && iCol == $t.p.iCol){
						return;
					}
				}
				// save the cell
				$($t).jqGrid("saveCell",$t.p.savedRow[0].id,$t.p.savedRow[0].ic);
			} else {
				window.setTimeout(function () { $("#"+$.jgrid.jqID($t.p.knv)).attr("tabindex","-1").focus();},1);
			}
			cm = $t.p.colModel[iCol];
			nm = cm.name;
			if (nm==='subgrid' || nm==='cb' || nm==='rn' || nm==='sc') {return;}
			try {
				cc = $($t.rows[iRow].cells[iCol]);
			} catch(e) {
				cc = $("td",$t.rows[iRow]).eq( iCol );
			}
			if(parseInt($t.p.iCol,10)>=0  && parseInt($t.p.iRow,10)>=0 && $t.p.iRowId !== undefined) {
				var therow = $($t).jqGrid('getGridRowById', $t.p.iRowId);
				//$("td:eq("+$t.p.iCol+")",$t.rows[$t.p.iRow]).removeClass("edit-cell " + highlight);
				$(therow).removeClass("selected-row " + hover).find("td").eq( $t.p.iCol ).removeClass("edit-cell " + highlight);
			}
			cc.addClass("edit-cell " + highlight);
			$($t.rows[iRow]).addClass("selected-row " + hover);
			if (cm.editable===true && ed===true && !cc.hasClass("not-editable-cell") && (!$.jgrid.isFunction($t.p.isCellEditable) || $t.p.isCellEditable.call($t,nm,iRow,iCol))) {
				try {
					tmp =  $.unformat.call($t,cc,{rowId: $t.rows[iRow].id, colModel:cm},iCol);
				} catch (_) {
					tmp = ( cm.edittype && cm.edittype === 'textarea' ) ? cc.text() : cc.html();
				}
				if($t.p.autoencode) { tmp = $.jgrid.htmlDecode(tmp); }
				if (!cm.edittype) {cm.edittype = "text";}
				$t.p.savedRow.push({id:iRow, ic:iCol, name:nm, v:tmp, rowId: $t.rows[iRow].id });
				try {
					if(tmp === "&nbsp;" || tmp === "&#160;" || (tmp.length===1 && tmp.charCodeAt(0)===160) ) {tmp='';}
				} catch (etmp){}
				if($.jgrid.isFunction($t.p.formatCell)) {
					var tmp2 = $t.p.formatCell.call($t, $t.rows[iRow].id,nm,tmp,iRow,iCol);
					if(tmp2 !== undefined ) {tmp = tmp2;}
				}
				$($t).triggerHandler("jqGridBeforeEditCell", [$t.rows[iRow].id, nm, tmp, iRow, iCol]);
				if ($.jgrid.isFunction($t.p.beforeEditCell)) {
					$t.p.beforeEditCell.call($t, $t.rows[iRow].id,nm,tmp,iRow,iCol);
				}
				var opt = $.extend({}, cm.editoptions || {} ,{id:iRow+"_"+nm,name:nm,rowId: $t.rows[iRow].id, oper:'edit', module : 'cell'});
				if (excel) {
					tmp = event.key;
				}
				var elc = $.jgrid.createEl.call($t,cm.edittype,opt,tmp,true,$.extend({},$.jgrid.ajaxOptions,$t.p.ajaxSelectOptions || {}));
				if( $.inArray(cm.edittype, ['text','textarea','password']) > -1) {
					$(elc).addClass(inpclass);
				} else if(cm.edittype === 'select') {
					$(elc).addClass(selclass);
				}

				cc.html("").append(elc).attr("tabindex","0");
				$.jgrid.bindEv.call($t, elc, opt);
				window.setTimeout(function () { $(elc).focus();},1);
				$("input, select, textarea",cc).on("keydown",function(e) {
					var key = e.key;
					if (e.keyCode === 27) {
						if($("input.hasDatepicker",cc).length >0) {
							if( $(".ui-datepicker").is(":hidden") )  { $($t).jqGrid("restoreCell",iRow,iCol); }
							else { $("input.hasDatepicker",cc).datepicker('hide'); }
						} else {
							$($t).jqGrid("restoreCell",iRow,iCol);
						}
					} //ESC
					if (e.keyCode === 13 && e.altKey && this.nodeName === "TEXTAREA") {
						this.value = this.value + "\r";
						e.preventDefault();
						return true;
					}
					if (e.keyCode === 13 && !e.shiftKey) {
						e.preventDefault();
						$($t).jqGrid("saveCell",iRow,iCol);
						if(iRow < $t.rows.length-1 && excel) {
							$($t).jqGrid('focusBodyCell', iRow + 1 , iCol);
						} else {
							//setTimeout(function(){ $($t).jqGrid('focusBodyCell', iRow , iCol);},100);
						}
						// Prevent default action
						return false;
					} //Enter
					if (e.keyCode === 9 && !excel)  {
						if(!$t.grid.hDiv.loading ) {
							if (e.shiftKey) { //Shift TAb
								if($t.p.ariaBody) {
									$($t).jqGrid("saveCell", iRow , iCol);
									if(iCol >1 ) {
										$($t).jqGrid('focusBodyCell', iRow , iCol -1);
									}
								} else {
									var succ2 = $($t).jqGrid("prevCell", iRow, iCol, e);
									if(!succ2 && $t.p.editNextRowCell) {
										if(iRow-1 > 0 && $t.rows[iRow-1]) {
											iRow--;
											$($t).jqGrid("prevCell", iRow, $t.p.colModel.length, e);
										}
									}
								}
							} else {
								if($t.p.ariaBody) {
									$($t).jqGrid("saveCell", iRow , iCol);
									if(iCol < $t.p.colModel.length -1) {
										$($t).jqGrid('focusBodyCell', iRow , iCol + 1);
									}
								} else {
									var succ = $($t).jqGrid("nextCell", iRow, iCol, e);
									if(!succ && $t.p.editNextRowCell) {
										if($t.rows[iRow+1]) {
											iRow++;
											$($t).jqGrid("nextCell", iRow, 0, e);
										}
									}
								} //Tab
							}
						} else {
							return false;
						}
					}
					if(!excel && $t.p.F2key && $t.p.ariaBody && e.key === 'F2') {
						$($t).jqGrid("saveCell", iRow , iCol);
						$($t).jqGrid('focusBodyCell', iRow , iCol);
						$t.p.F2key = false;
					}
					if(excel) {
						if( key === 'ArrowUp') {
							$($t).jqGrid("saveCell", iRow , iCol);
							if(iRow >1 ) {
								$($t).jqGrid('focusBodyCell', iRow - 1 , iCol);
							}
						}
						if( key === 'ArrowDown' ) {
							$($t).jqGrid("saveCell", iRow , iCol);
							if(iRow < $t.p.rows.length-1 ) {
								$($t).jqGrid('focusBodyCell', iRow + 1 , iCol);
							}
						}
						if( key === 'ArrowLeft') {
							$($t).jqGrid("saveCell", iRow , iCol);
							if(iCol >1 ) {
								$($t).jqGrid('focusBodyCell', iRow , iCol -1);
							}
						}
						if( key === 'ArrowRight' ) {
							$($t).jqGrid("saveCell", iRow , iCol);
							if(iCol < $t.p.colModel.length -1) {
								$($t).jqGrid('focusBodyCell', iRow , iCol + 1);
							}
						}
						if (e.keyCode === 9)  {
							$($t).jqGrid("saveCell", iRow , iCol);
							if (e.shiftKey) {
								if(iCol >1 ) {
									$($t).jqGrid('focusBodyCell', iRow , iCol -1);
								}
							} else {
								if(iCol < $t.p.colModel.length -1) {
									$($t).jqGrid('focusBodyCell', iRow , iCol + 1);
								}
							}
						}
					}
					e.stopPropagation();
				});
				$($t).triggerHandler("jqGridAfterEditCell", [$t.rows[iRow].id, nm, tmp, iRow, iCol]);
				if ($.jgrid.isFunction($t.p.afterEditCell)) {
					$t.p.afterEditCell.call($t, $t.rows[iRow].id,nm,tmp,iRow,iCol);
				}
			} else {
				tmp = cc.html().replace(/\&#160\;/ig,'');
				$($t).triggerHandler("jqGridCellSelect", [$t.rows[iRow].id, iCol, tmp, event]);
				if ($.jgrid.isFunction($t.p.onCellSelect)) {
					$t.p.onCellSelect.call($t, $t.rows[iRow].id, iCol, tmp, event);
				}
			}
			$t.p.iCol = iCol; $t.p.iRow = iRow; $t.p.iRowId = $t.rows[iRow].id;
		});
	},
	saveCell : function (iRow, iCol, over_value){
		return this.each(function(){
			var $t= this, cm = $t.p.colModel[iCol], nm = cm.name, 
				trow = $($t).jqGrid("getGridRowById", $t.rows[iRow].id),
				cc = $('td', trow).eq( iCol ), tmp;
			if(over_value !== undefined ) {
				tmp = $.unformat.call($t, cc, {rowId: $t.rows[iRow].id, colModel:cm}, iCol);
				$t.p.savedRow.push( { id:iRow, ic:iCol, name:nm, v: tmp, rowId: $t.rows[iRow].id } );
				$t.p.savedValues = {oldvalue: tmp, newvalue: over_value, indexRow : iRow};
			}
			var fr = $t.p.savedRow.length >= 1 ? 0 : null,
			errors = $.jgrid.getRegional(this, 'errors'),
			edit =$.jgrid.getRegional(this, 'edit');
			if (!$t.grid || $t.p.cellEdit !== true) {return;}
			if(fr !== null) {
				var nmjq = $.jgrid.jqID(nm), v, v2,
				p = $(cc).offset();

				if( over_value === undefined ) {
				switch (cm.edittype) {
					case "select":
						if(!cm.editoptions.multiple) {
							v = $("#"+iRow+"_"+nmjq+" option:selected", trow ).val();
							v2 = $("#"+iRow+"_"+nmjq+" option:selected", trow).text();
						} else {
							var sel = $("#"+iRow+"_"+nmjq, trow), selectedText = [];
							v = $(sel).val();
							if(v) { v.join(",");} else { v=""; }
							$("option:selected",sel).each(
								function(i,selected){
									selectedText[i] = $(selected).text();
								}
							);
							v2 = selectedText.join(",");
						}
						if(cm.formatter) { v2 = v; }
						break;
					case "checkbox":
						var cbv  = ["Yes","No"];
						if(cm.editoptions && cm.editoptions.value){
							cbv = cm.editoptions.value.split(":");
						}
						v = $("#"+iRow+"_"+nmjq, trow).is(":checked") ? cbv[0] : cbv[1];
						v2=v;
						break;
					case "password":
					case "text":
					case "textarea":
					case "button" :
						v = $("#"+iRow+"_"+nmjq, trow).val();
						v2=v;
						break;
					case 'custom' :
						try {
							if(cm.editoptions && $.jgrid.isFunction(cm.editoptions.custom_value)) {
								v = cm.editoptions.custom_value.call($t, $(".customelement",cc),'get');
								if (v===undefined) { throw "e2";} else { v2=v; }
							} else { throw "e1"; }
						} catch (e) {
							if (e==="e1") { $.jgrid.info_dialog(errors.errcap, "function 'custom_value' " + edit.msg.nodefined, edit.bClose, {styleUI : $t.p.styleUI }); }
							else if (e==="e2") { $.jgrid.info_dialog(errors.errcap, "function 'custom_value' " + edit.msg.novalue, edit.bClose, {styleUI : $t.p.styleUI }); }
							else {$.jgrid.info_dialog(errors.errcap, e.message, edit.bClose, {styleUI : $t.p.styleUI }); }
						}
						break;
				}
				} else  {
					if (cm.editable===true && !cc.hasClass("not-editable-cell") && (!$.jgrid.isFunction($t.p.isCellEditable) || $t.p.isCellEditable.call($t,nm,iRow,iCol))) {
						v = over_value;
						v2 = v;
					} else {
						v = over_value;
						v2 = v;
						$t.p.savedRow.splice(0,1);
						return;
					}
				}
				// The common approach is if nothing changed do not do anything
				if (v2 !== $t.p.savedRow[fr].v){
					var vvv = $($t).triggerHandler("jqGridBeforeSaveCell", [$t.p.savedRow[fr].rowId, nm, v, iRow, iCol]);
					if (vvv) {v = vvv; v2=vvv;}
					if ($.jgrid.isFunction($t.p.beforeSaveCell)) {
						var vv = $t.p.beforeSaveCell.call($t, $t.p.savedRow[fr].rowId, nm, v, iRow, iCol);
						if (vv) {v = vv; v2=vv;}
					}
					var cv = $.jgrid.checkValues.call($t, v, iCol), nuem = false;
					if(cv[0] === true) {
						var addpost = $($t).triggerHandler("jqGridBeforeSubmitCell", [$t.p.savedRow[fr].rowId, nm, v, iRow, iCol]) || {};
						if ($.jgrid.isFunction($t.p.beforeSubmitCell)) {
							addpost = $t.p.beforeSubmitCell.call($t, $t.p.savedRow[fr].rowId, nm, v, iRow, iCol);
							if (!addpost) {addpost={};}
						}
						var retsub = $($t).triggerHandler("jqGridOnSubmitCell", [$t.p.savedRow[fr].rowId, nm, v, iRow, iCol]);
						if(retsub === undefined) {
							retsub = true;
						}
						if($.jgrid.isFunction($t.p.onSubmitCell) ) {
							retsub = $t.p.onSubmitCell($t.p.savedRow[fr].rowId, nm, v, iRow, iCol);
							if( retsub === undefined) {
								retsub = true;
							} 
						}
						if( retsub === false) {
							return;
						}
						if( $("input.hasDatepicker",cc).length >0) { $("input.hasDatepicker",cc).datepicker('hide'); }
						var postdata = {};
						if ($t.p.cellsubmit === 'remote') {
							if ($t.p.cellurl) {
								if($t.p.autoencode) { v = $.jgrid.htmlEncode(v); }
								if(cm.editoptions && cm.editoptions.NullIfEmpty && v === "") {
									v = 'null';
									nuem = true;
								}
								postdata[nm] = v;
								var opers = $t.p.prmNames,
								idname = opers.id,
								oper = opers.oper;
								
								postdata[idname] = $.jgrid.stripPref($t.p.idPrefix, $t.p.savedRow[fr].rowId);
								postdata[oper] = opers.editoper;
								postdata = $.extend(addpost,postdata);
								$($t).jqGrid("progressBar", {method:"show", loadtype : $t.p.loadui, htmlcontent: $.jgrid.getRegional($t,'defaults.savetext') });
								$t.grid.hDiv.loading = true;
								$.ajax( $.extend( {
									url: $t.p.cellurl,
									data :$.jgrid.isFunction($t.p.serializeCellData) ? $t.p.serializeCellData.call($t, postdata, nm) : postdata,
									type: "POST",
									success: function (anydata, stat, result) {
										$($t).jqGrid("progressBar", {method:"hide", loadtype : $t.p.loadui });
										$t.grid.hDiv.loading = false;
										if (stat === 'success') {
											var ret = $($t).triggerHandler("jqGridAfterSubmitCell", [$t, result, postdata[idname], nm, v, iRow, iCol]) || [true, ''];
											if (ret[0] === true && $.jgrid.isFunction($t.p.afterSubmitCell)) {
												ret = $t.p.afterSubmitCell.call($t, result, postdata[idname], nm, v, iRow, iCol);
											}
											if(ret[0] === true){
												if(nuem) {
													v = "";
												}
												$(cc).empty();
												$($t).jqGrid("setCell",$t.p.savedRow[fr].rowId, iCol, v2, false, false, true);
												cc = $('td', trow).eq( iCol );
												$(cc).addClass("dirty-cell");
												$(trow).addClass("edited");
												$($t).triggerHandler("jqGridAfterSaveCell", [$t.p.savedRow[fr].rowId, nm, v, iRow, iCol]);
												if ($.jgrid.isFunction($t.p.afterSaveCell)) {
													$t.p.afterSaveCell.call($t, $t.p.savedRow[fr].rowId, nm, v, iRow,iCol);
												}
												$t.p.savedRow.splice(0,1);
											} else {
												$($t).triggerHandler("jqGridErrorCell", [result, stat]);
												if ($.jgrid.isFunction($t.p.errorCell)) {
													$t.p.errorCell.call($t, result, stat);
												} else {
													$.jgrid.info_dialog(errors.errcap, ret[1], edit.bClose, {
														styleUI : $t.p.styleUI,
														top:p.top+30, 
														left:p.left ,
														onClose : function() {
															if(!$t.p.restoreCellonFail) {
																$("#"+iRow+"_"+nmjq, trow).focus();
															}
														}
													});
												}
												if( $t.p.restoreCellonFail) {
													$($t).jqGrid("restoreCell",iRow,iCol);
												}
											}
										}
									},
									error:function(res,stat,err) {
										$("#lui_"+$.jgrid.jqID($t.p.id)).hide();
										$t.grid.hDiv.loading = false;
										$($t).triggerHandler("jqGridErrorCell", [res, stat, err]);
										if ($.jgrid.isFunction($t.p.errorCell)) {
											$t.p.errorCell.call($t, res,stat,err);
										} else {
											$.jgrid.info_dialog(errors.errcap, res.status+" : "+res.statusText+"<br/>"+stat, edit.bClose, {
												styleUI : $t.p.styleUI,
												top:p.top+30, 
												left:p.left ,
												onClose : function() {
													if(!$t.p.restoreCellonFail) {
														$("#"+iRow+"_"+nmjq, trow).focus();
													}
												}
											});
										}
										if( $t.p.restoreCellonFail) {
											$($t).jqGrid("restoreCell", iRow, iCol);
										}
									}
								}, $.jgrid.ajaxOptions, $t.p.ajaxCellOptions || {}));
							} else {
								try {
									$.jgrid.info_dialog(errors.errcap,errors.nourl, edit.bClose, {styleUI : $t.p.styleUI });
									if( $t.p.restoreCellonFail) {
										$($t).jqGrid("restoreCell", iRow, iCol);
									}
								} catch (e) {}
							}
						}
						if ($t.p.cellsubmit === 'clientArray') {
							$(cc).empty();
							$($t).jqGrid("setCell", $t.p.savedRow[fr].rowId, iCol, v2, false, false, true);
							cc = $('td', trow).eq( iCol );
							$(cc).addClass("dirty-cell");
							$(trow).addClass("edited");
							$($t).triggerHandler("jqGridAfterSaveCell", [$t.p.savedRow[fr].rowId, nm, v, iRow, iCol]);
							if ($.jgrid.isFunction($t.p.afterSaveCell)) {
								$t.p.afterSaveCell.call($t, $t.p.savedRow[fr].rowId, nm, v, iRow, iCol);
							}
							$t.p.savedRow.splice(0,1);
						} else if($t.p.cellsubmit === 'storage') {
							postdata = $t.p.savedRow[fr];
							postdata[nm] = v;
							postdata[$t.p.keyName] = $.jgrid.stripPref($t.p.idPrefix, $t.p.savedRow[fr].rowId);
							$($t).jqGrid('updateStorageRecord', postdata)
							.then(function(e){
								if(e.type==="complete") {
									$(cc).empty();
									$($t).jqGrid("setCell", $t.p.savedRow[fr].rowId, iCol, v2, false, false, true);
									cc = $('td', trow).eq( iCol );
									$(cc).addClass("dirty-cell");
									$(trow).addClass("edited");
									$($t).triggerHandler("jqGridAfterSaveCell", [$t.p.savedRow[fr].rowId, nm, v, iRow, iCol]);
									if ($.jgrid.isFunction($t.p.afterSaveCell)) {
										$t.p.afterSaveCell.call($t, $t.p.savedRow[fr].rowId, nm, v, iRow, iCol);
									}
									$t.p.savedRow.splice(0,1);
									
								}
							})
							.catch(function(e) {
								$.jgrid.info_dialog("Error",e.target.error.name + " : "+e.target.error.message,'Close');
							});							
						}
					} else {
						try {
							if( $.jgrid.isFunction($t.p.validationCell) ) {
								$t.p.validationCell.call($t, $("#"+iRow+"_"+nmjq, trow), cv[1], iRow, iCol);
							} else {
								window.setTimeout(function(){
									$.jgrid.info_dialog(errors.errcap,v+ " " + cv[1], edit.bClose, {
										styleUI : $t.p.styleUI, 
										top:p.top+30, 
										left:p.left ,
										onClose : function() {
											if(!$t.p.restoreCellonFail) {
												$("#"+iRow+"_"+nmjq, trow).focus();
											}
										}
									});
								},50);
								if( $t.p.restoreCellonFail) {
									$($t).jqGrid("restoreCell", iRow, iCol);
								}
							}
						} catch (e) {
							alert(cv[1]);
						}
					}
				} else {
					$($t).jqGrid("restoreCell", iRow, iCol);
				}
			}
			window.setTimeout(function () { 
				$("#"+$.jgrid.jqID($t.p.knv)).attr("tabindex","-1").focus();
				if($t.p.ariaBody) {
					$($t).jqGrid('focusBodyCell', $t.p.iRow, $t.p.iCol);
				}
			},0);
		});
	},
	restoreCell : function(iRow, iCol) {
		return this.each(function(){
			var $t= this, fr = $t.p.savedRow.length >= 1 ? 0 : null;
			if (!$t.grid || $t.p.cellEdit !== true ) {return;}
			if(fr !== null) {
				var trow = $($t).jqGrid("getGridRowById", $t.p.savedRow[fr].rowId),
				cc = $('td', trow).eq( iCol );
				// datepicker fix
				if($.jgrid.isFunction($.fn.datepicker)) {
					try {
						$("input.hasDatepicker",cc).datepicker('hide');
					} catch (e) {}
				}
				$(cc).empty().attr("tabindex","-1");
				$($t).jqGrid("setCell", $t.p.savedRow[0].rowId, iCol, $t.p.savedRow[fr].v, false, false, true);
				$($t).triggerHandler("jqGridAfterRestoreCell", [$t.p.savedRow[fr].rowId, $t.p.savedRow[fr].v, iRow, iCol]);
				if ($.jgrid.isFunction($t.p.afterRestoreCell)) {
					$t.p.afterRestoreCell.call($t, $t.p.savedRow[fr].rowId, $t.p.savedRow[fr].v, iRow, iCol);
				}				
				$t.p.savedRow.splice(0,1);
			}
			window.setTimeout(function () { 
				$("#"+$t.p.knv).attr("tabindex","-1").focus();
				if($t.p.ariaBody) {
					$($t).jqGrid('focusBodyCell', $t.p.iRow, $t.p.iCol);
				}
			},0);
		});
	},
	nextCell : function (iRow, iCol, event) {
		var ret;
		this.each(function (){
			var $t = this, nCol=false, i;
			if (!$t.grid || $t.p.cellEdit !== true) {return;}
			// try to find next editable cell
			for (i=iCol+1; i<$t.p.colModel.length; i++) {
				if ( $t.p.colModel[i].editable ===true && (!$.jgrid.isFunction($t.p.isCellEditable) || $t.p.isCellEditable.call($t, $t.p.colModel[i].name,iRow,i))) {
					nCol = i; break;
				}
			}
			if(nCol !== false) {
				ret = true;
				$($t).jqGrid("editCell", iRow, nCol, true, event);
			} else {
				ret = false;
				if ($t.p.savedRow.length >0) {
					$($t).jqGrid("saveCell",iRow,iCol);
				}
			}
		});
		return ret;
	},
	prevCell : function (iRow, iCol, event) {
		var ret;
		this.each(function (){
			var $t = this, nCol=false, i;
			if (!$t.grid || $t.p.cellEdit !== true) {return false;}
			// try to find next editable cell
			for (i=iCol-1; i>=0; i--) {
				if ( $t.p.colModel[i].editable ===true && (!$.jgrid.isFunction($t.p.isCellEditable) || $t.p.isCellEditable.call($t, $t.p.colModel[i].name, iRow,i))) {
					nCol = i; 
					break;
				}
			}
			if(nCol !== false) {
				ret = true;
				$($t).jqGrid("editCell", iRow, nCol, true, event);
			} else {
				ret = false;
				if ($t.p.savedRow.length >0) {
					$($t).jqGrid("saveCell",iRow,iCol);
				}
			}
		});
		return ret;
	},
	GridNav : function() {
		return this.each(function () {
			var  $t = this;
			if (!$t.grid || $t.p.cellEdit !== true ) {return;}
			// trick to process keydown on non input elements
			$t.p.knv = $t.p.id + "_kn";
			var selection = $("<div style='position:fixed;top:0px;width:1px;height:1px;' tabindex='0'><div tabindex='-1' style='width:1px;height:1px;' id='"+$t.p.knv+"'></div></div>"),
			i, kdir;
			function scrollGrid(iR, iC, tp){
				if (tp.slice(0,1)==='v') {
					var ch = $($t.grid.bDiv)[0].clientHeight,
					st = $($t.grid.bDiv)[0].scrollTop,
					nROT = $t.rows[iR].offsetTop+$t.rows[iR].clientHeight,
					pROT = $t.rows[iR].offsetTop;
					if(tp === 'vd') {
						if(nROT >= ch) {
							$($t.grid.bDiv)[0].scrollTop = $($t.grid.bDiv)[0].scrollTop + $t.rows[iR].clientHeight;
						}
					}
					if(tp === 'vu'){
						if (pROT < st ) {
							$($t.grid.bDiv)[0].scrollTop = $($t.grid.bDiv)[0].scrollTop - $t.rows[iR].clientHeight;
						}
					}
				}
				if(tp==='h') {
					var cw = $($t.grid.bDiv)[0].clientWidth,
					sl = $($t.grid.bDiv)[0].scrollLeft,
					nCOL = $t.rows[iR].cells[iC].offsetLeft+$t.rows[iR].cells[iC].clientWidth,
					pCOL = $t.rows[iR].cells[iC].offsetLeft;
					if(nCOL >= cw+parseInt(sl,10)) {
						$($t.grid.bDiv)[0].scrollLeft = $($t.grid.bDiv)[0].scrollLeft + $t.rows[iR].cells[iC].clientWidth;
					} else if (pCOL < sl) {
						$($t.grid.bDiv)[0].scrollLeft = $($t.grid.bDiv)[0].scrollLeft - $t.rows[iR].cells[iC].clientWidth;
					}
				}
			}
			function findNextVisible(iC,act){
				var ind, i;
				if(act === 'lft') {
					ind = iC+1;
					for (i=iC;i>=0;i--){
						if ($t.p.colModel[i].hidden !== true) {
							ind = i;
							break;
						}
					}
				}
				if(act === 'rgt') {
					ind = iC-1;
					for (i=iC; i<$t.p.colModel.length;i++){
						if ($t.p.colModel[i].hidden !== true) {
							ind = i;
							break;
						}						
					}
				}
				return ind;
			}

			$(selection).insertBefore($t.grid.cDiv);
			$("#"+$t.p.knv)
			.focus()
			.keydown(function (e){
				kdir = e.keyCode;
				if($t.p.direction === "rtl") {
					if(kdir===37) { kdir = 39;}
					else if (kdir===39) { kdir = 37; }
				}
				switch (kdir) {
					case 38:
						if ($t.p.iRow-1 >0 ) {
							scrollGrid($t.p.iRow-1,$t.p.iCol,'vu');
							$($t).jqGrid("editCell",$t.p.iRow-1,$t.p.iCol,false,e);
						}
					break;
					case 40 :
						if ($t.p.iRow+1 <=  $t.rows.length-1) {
							scrollGrid($t.p.iRow+1,$t.p.iCol,'vd');
							$($t).jqGrid("editCell",$t.p.iRow+1,$t.p.iCol,false,e);
						}
					break;
					case 37 :
						if ($t.p.iCol -1 >=  0) {
							i = findNextVisible($t.p.iCol-1,'lft');
							scrollGrid($t.p.iRow, i,'h');
							$($t).jqGrid("editCell",$t.p.iRow, i,false,e);
						}
					break;
					case 39 :
						if ($t.p.iCol +1 <=  $t.p.colModel.length-1) {
							i = findNextVisible($t.p.iCol+1,'rgt');
							scrollGrid($t.p.iRow,i,'h');
							$($t).jqGrid("editCell",$t.p.iRow,i,false,e);
						}
					break;
					case 13:
						if (parseInt($t.p.iCol,10)>=0 && parseInt($t.p.iRow,10)>=0) {
							e.preventDefault();
							$($t).jqGrid("editCell",$t.p.iRow,$t.p.iCol,true,e);
						}
					break;
					default :
						return true;
				}
				return false;
			});
		});
	},
	getChangedCells : function (mthd) {
		var ret=[];
		if (!mthd) {mthd='all';}
		this.each(function(){
			var $t= this,nm;
			if (!$t.grid || $t.p.cellEdit !== true ) {return;}
			$($t.rows).each(function(j){
				var res = {};
				if ($(this).hasClass("edited")) {
					$('td',this).each( function(i) {
						nm = $t.p.colModel[i].name;
						if ( nm !== 'cb' && nm !== 'subgrid' && nm !=='sc') {
							if (mthd==='dirty') {
								if ($(this).hasClass('dirty-cell')) {
									try {
										res[nm] = $.unformat.call($t,this,{rowId:$t.rows[j].id, colModel:$t.p.colModel[i]},i);
									} catch (e){
										res[nm] = $.jgrid.htmlDecode($(this).html());
									}
								}
							} else {
								try {
									res[nm] = $.unformat.call($t,this,{rowId:$t.rows[j].id,colModel:$t.p.colModel[i]},i);
								} catch (e) {
									res[nm] = $.jgrid.htmlDecode($(this).html());
								}
							}
						}
					});
					res.id = this.id;
					ret.push(res);
				}
			});
		});
		return ret;
	}
/// end  cell editing
});
//module end
}));
js/grid.treegrid.js000064400000100661151676727230010273 0ustar00/*jshint eqeqeq:false */
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"./grid.base"
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {
"use strict";
//module begin
$.jgrid.extend({
	setTreeNode : function(i, len){
		return this.each(function(){
			var $t = this;
			if( !$t.grid || !$t.p.treeGrid ) {return;}
			var expCol = $t.p.expColInd,
			expanded = $t.p.treeReader.expanded_field,
			isLeaf = $t.p.treeReader.leaf_field,
			level = $t.p.treeReader.level_field,
			icon = $t.p.treeReader.icon_field,
			loaded = $t.p.treeReader.loaded,  lft, rgt, curLevel, ident,lftpos, twrap,
			ldat, lf,
			common = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].common,
			index = i;
			$($t).triggerHandler("jqGridBeforeSetTreeNode", [index, len]);
			if($.jgrid.isFunction($t.p.beforeSetTreeNode)) {
				$t.p.beforeSetTreeNode.call($t, index, len);
			}
			while(i<len) {
				var ind = $.jgrid.stripPref($t.p.idPrefix, $t.rows[i].id), dind = $t.p._index[ind], expan;
				ldat = $t.p.data[dind];
				//$t.rows[i].level = ldat[level];
				if($t.p.treeGridModel === 'nested') {
					if(!ldat[isLeaf]) {
					lft = parseInt(ldat[$t.p.treeReader.left_field],10);
					rgt = parseInt(ldat[$t.p.treeReader.right_field],10);
					// NS Model
						ldat[isLeaf] = (rgt === lft+1) ? 'true' : 'false';
						$t.rows[i].cells[$t.p._treeleafpos].innerHTML = ldat[isLeaf];
					}
				}
				//else {
					//row.parent_id = rd[$t.p.treeReader.parent_id_field];
				//}
				curLevel = parseInt(ldat[level],10);
				if($t.p.tree_root_level === 0) {
					ident = curLevel+1;
					lftpos = curLevel;
				} else {
					ident = curLevel;
					lftpos = curLevel -1;
				}
				twrap = "<div class='tree-wrap tree-wrap-"+$t.p.direction+"' style='width:"+(ident*18)+"px;'>";
				twrap += "<div style='"+($t.p.direction==="rtl" ? "right:" : "left:")+(lftpos*18)+"px;' class='"+common.icon_base+" ";


				if(ldat[loaded] !== undefined) {
					if(ldat[loaded]==="true" || ldat[loaded]===true) {
						ldat[loaded] = true;
					} else {
						ldat[loaded] = false;
					}
				}
				if(ldat[isLeaf] === "true" || ldat[isLeaf] === true) {
					twrap += ((ldat[icon] !== undefined && ldat[icon] !== "") ? ldat[icon] : $t.p.treeIcons.leaf)+" tree-leaf treeclick";
					ldat[isLeaf] = true;
					lf="leaf";
				} else {
					ldat[isLeaf] = false;
					lf="";
				}
				ldat[expanded] = ((ldat[expanded] === "true" || ldat[expanded] === true) ? true : false) && (ldat[loaded] || ldat[loaded] === undefined);
				if(ldat[expanded] === false) {
					twrap += ((ldat[isLeaf] === true) ? "'" : $t.p.treeIcons.plus+" tree-plus treeclick'");
				} else {
					twrap += ((ldat[isLeaf] === true) ? "'" : $t.p.treeIcons.minus+" tree-minus treeclick'");
				}
				
				twrap += "></div></div>";
				$($t.rows[i].cells[expCol]).wrapInner("<span class='cell-wrapper"+lf+"'></span>").prepend(twrap);

				if(curLevel !== parseInt($t.p.tree_root_level,10)) {
					//var pn = $($t).jqGrid('getNodeParent',ldat);
					//expan = pn && pn.hasOwnProperty(expanded) ? pn[expanded] : true;
					expan = $($t).jqGrid('isVisibleNode',ldat); // overhead
					if( !expan ){
						$($t.rows[i]).css("display","none");
					}
				}
				$($t.rows[i].cells[expCol])
					.find("div.treeclick")
					.on("click",function(e){
						var target = e.target || e.srcElement,
						ind2 =$.jgrid.stripPref($t.p.idPrefix,$(target,$t.rows).closest("tr.jqgrow")[0].id),
						pos = $t.p._index[ind2];
						if(!$t.p.data[pos][isLeaf]){
							if($t.p.data[pos][expanded]){
								$($t).jqGrid("collapseRow",$t.p.data[pos]);
								$($t).jqGrid("collapseNode",$t.p.data[pos]);
							} else {
								$($t).jqGrid("expandRow",$t.p.data[pos]);
								$($t).jqGrid("expandNode",$t.p.data[pos]);
							}
						}
						//return false;
					});
				if($t.p.ExpandColClick === true) {
					$($t.rows[i].cells[expCol])
						.find("span.cell-wrapper")
						.css("cursor","pointer")
						.on("click",function(e) {
							var target = e.target || e.srcElement,
							ind2 =$.jgrid.stripPref($t.p.idPrefix,$(target,$t.rows).closest("tr.jqgrow")[0].id),
							pos = $t.p._index[ind2];
							if(!$t.p.data[pos][isLeaf]){
								if($t.p.data[pos][expanded]){
									$($t).jqGrid("collapseRow",$t.p.data[pos]);
									$($t).jqGrid("collapseNode",$t.p.data[pos]);
								} else {
									$($t).jqGrid("expandRow",$t.p.data[pos]);
									$($t).jqGrid("expandNode",$t.p.data[pos]);
								}
							}
							$($t).jqGrid("setSelection",ind2);
							//return false;
						});
				}
				i++;
			}
			$($t).triggerHandler("jqGridAfterSetTreeNode", [index, len]);			
			if($.jgrid.isFunction($t.p.afterSetTreeNode)) {
				$t.p.afterSetTreeNode.call($t, index, len);
			}
		});
	},
	setTreeGrid : function() {
		return this.each(function (){
			var $t = this, i=0, pico, ecol = false, nm, key, tkey, dupcols=[],
			classes = $.jgrid.styleUI[($t.p.styleUI || 'jQueryUI')].treegrid;
			if(!$t.p.treeGrid) {return;}
			if(!$t.p.treedatatype ) {$.extend($t.p,{treedatatype: $t.p.datatype});}
			if($t.p.loadonce) { $t.p.treedatatype = 'local'; }
			$t.p.subGrid = false;$t.p.altRows =false;
			//bvn
			if (!$t.p.treeGrid_bigData) { 
				$t.p.pgbuttons = false;
				$t.p.pginput = false;
				$t.p.rowList = [];
			}
			$t.p.gridview =  true;
			//bvn
			if($t.p.rowTotal === null && !$t.p.treeGrid_bigData ) { $t.p.rowNum = 10000; }
			$t.p.multiselect = false;
			// $t.p.rowList = [];
			$t.p.expColInd = 0;
			pico = classes.icon_plus;
			if($t.p.styleUI === 'jQueryUI') {
				pico += ($t.p.direction==="rtl" ? 'w' : 'e');
			}
			$t.p.treeIcons = $.extend({plus:pico, minus: classes.icon_minus, leaf: classes.icon_leaf},$t.p.treeIcons || {});
			if($t.p.treeGridModel === 'nested') {
				$t.p.treeReader = $.extend({
					level_field: "level",
					left_field:"lft",
					right_field: "rgt",
					leaf_field: "isLeaf",
					expanded_field: "expanded",
					loaded: "loaded",
					icon_field: "icon"
				},$t.p.treeReader);
			} else if($t.p.treeGridModel === 'adjacency') {
				$t.p.treeReader = $.extend({
					level_field: "level",
					parent_id_field: "parent",
					leaf_field: "isLeaf",
					expanded_field: "expanded",
					loaded: "loaded",
					icon_field: "icon"
				},$t.p.treeReader );
			}
			for ( key in $t.p.colModel){
				if($t.p.colModel.hasOwnProperty(key)) {
					nm = $t.p.colModel[key].name;
					if( nm === $t.p.ExpandColumn && !ecol ) {
						ecol = true;
						$t.p.expColInd = i;
					}
					i++;
					//
					if( nm === $t.p.treeReader.level_field || nm === $t.p.treeReader.left_field || nm === $t.p.treeReader.right_field) {
						$t.p.colModel[key].sorttype = "integer";
					}
					for(tkey in $t.p.treeReader) {
						if($t.p.treeReader.hasOwnProperty(tkey) && $t.p.treeReader[tkey] === nm) {
							dupcols.push(nm);
						}
					}
				}
			}
			$.each($t.p.treeReader,function(j,n){
				if(n && $.inArray(n, dupcols) === -1){
					if(j==='leaf_field') { $t.p._treeleafpos= i; }
				i++;
					$t.p.colNames.push(n);
					$t.p.colModel.push({name:n,width:1,hidden:true,sortable:false,resizable:false,hidedlg:true,editable:true,search:false});
				}
			});			
		});
	},
	expandRow: function (record){
		this.each(function(){
			var $t = this, $rootpages;
			//bvn
			if (!$t.p.treeGrid_bigData) {
				$rootpages = $t.p.lastpage;
			}
			if(!$t.grid || !$t.p.treeGrid) {return;}
			var childern = $($t).jqGrid("getNodeChildren",record),
			//if ($($t).jqGrid("isVisibleNode",record)) {
			expanded = $t.p.treeReader.expanded_field,
			rowid  = record[$t.p.localReader.id],
			ret = $($t).triggerHandler("jqGridBeforeExpandTreeGridRow", [rowid, record, childern]);
			if(ret === undefined ) {
				ret = true;
			}
			if(ret && $.jgrid.isFunction($t.p.beforeExpandTreeGridRow)) {
				ret =  $t.p.beforeExpandTreeGridRow.call($t, rowid, record, childern);
			}
			if( ret === false ) { return; }
			$(childern).each(function(){
				var id  = $t.p.idPrefix + $.jgrid.getAccessor(this,$t.p.localReader.id);
				$($($t).jqGrid('getGridRowById', id)).css("display","");
				if(this[expanded]) {
					$($t).jqGrid("expandRow",this);
				}
			});
			$($t).triggerHandler("jqGridAfterExpandTreeGridRow", [rowid, record, childern]);
			if($.jgrid.isFunction($t.p.afterExpandTreeGridRow)) {
				$t.p.afterExpandTreeGridRow.call($t, rowid, record, childern);
			}
			//bvn
			if (!$t.p.treeGrid_bigData) {
				$t.p.lastpage = $rootpages;
			}
			//}
		});
	},
	collapseRow : function (record) {
		this.each(function(){
			var $t = this;
			if(!$t.grid || !$t.p.treeGrid) {return;}
			var childern = $($t).jqGrid("getNodeChildren",record),
			expanded = $t.p.treeReader.expanded_field,
			rowid  = record[$t.p.localReader.id],
			ret = $($t).triggerHandler("jqGridBeforeCollapseTreeGridRow", [rowid, record, childern]);
			if(ret === undefined ) {
				ret = true;
			}			
			if(ret &&  $.jgrid.isFunction($t.p.beforeCollapseTreeGridRow)) { 
				ret = $t.p.beforeCollapseTreeGridRow.call($t, rowid, record, childern);
			}
			if( ret === false ) { return; }
			$(childern).each(function(){
				var id  = $t.p.idPrefix + $.jgrid.getAccessor(this,$t.p.localReader.id);
				$($($t).jqGrid('getGridRowById', id)).css("display","none");
				if(this[expanded]){
					$($t).jqGrid("collapseRow",this);
				}
			});
			$($t).triggerHandler("jqGridAfterCollapseTreeGridRow", [rowid, record, childern]);
			if($.jgrid.isFunction($t.p.afterCollapseTreeGridRow)) {
				$t.p.afterCollapseTreeGridRow.call($t, rowid, record, childern);
			}			
		});
	},
	// NS ,adjacency models
	getRootNodes : function() {
		var result = [];
		this.each(function(){
			var $t = this, level, parent_id, view = $t.p.data;
			if(!$t.grid || !$t.p.treeGrid) {return;}

			switch ($t.p.treeGridModel) {
				case 'nested' :
					level = $t.p.treeReader.level_field;
					$(view).each(function() {
						if(parseInt(this[level],10) === parseInt($t.p.tree_root_level,10)) {
							result.push(this);
						}
					});
					break;
				case 'adjacency' :
					parent_id = $t.p.treeReader.parent_id_field;
					$(view).each(function(){
						if(this[parent_id] === null || String(this[parent_id]).toLowerCase() === "null") {
							result.push(this);
						}
					});
					break;
			}
		});
		return result;
	},
	getNodeDepth : function(rc) {
		var ret = null;
		this.each(function(){
			if(!this.grid || !this.p.treeGrid) {return;}
			var $t = this;
			switch ($t.p.treeGridModel) {
				case 'nested' :
					var level = $t.p.treeReader.level_field;
					ret = parseInt(rc[level],10) - parseInt($t.p.tree_root_level,10);
					break;
				case 'adjacency' :
					ret = $($t).jqGrid("getNodeAncestors",rc).length;
					break;
			}
		});
		return ret;
	},
	getNodeParent : function(rc) {
		var result = null;
		this.each(function(){
			var $t = this;
			if(!$t.grid || !$t.p.treeGrid) {return;}
			switch ($t.p.treeGridModel) {
				case 'nested' :
					var lftc = $t.p.treeReader.left_field,
					rgtc = $t.p.treeReader.right_field,
					levelc = $t.p.treeReader.level_field,
					lft = parseInt(rc[lftc],10), rgt = parseInt(rc[rgtc],10), level = parseInt(rc[levelc],10);
					$(this.p.data).each(function(){
						if(parseInt(this[levelc],10) === level-1 && parseInt(this[lftc],10) < lft && parseInt(this[rgtc],10) > rgt) {
							result = this;
							return false;
						}
					});
					break;
				case 'adjacency' :
					var parent_id = $t.p.treeReader.parent_id_field,
					dtid = $t.p.localReader.id,
					ind = rc[dtid], pos = $t.p._index[ind];
					while(pos--) {
						if( String( $t.p.data[pos][dtid]) === String( $.jgrid.stripPref($t.p.idPrefix, rc[parent_id]) ) ) {
							result = $t.p.data[pos];
							break;
						}
					}
					break;
			}
		});
		return result;
	},
	getNodeChildren : function(rc ) {
		var result = [];
		this.each(function(){
			var $t = this;
			if(!$t.grid || !$t.p.treeGrid) {return;}
			var i, len = this.p.data.length, row;
			switch ($t.p.treeGridModel) {
				case 'nested' :
					var lftc = $t.p.treeReader.left_field,
					rgtc = $t.p.treeReader.right_field,
					levelc = $t.p.treeReader.level_field,
					lft = parseInt(rc[lftc],10), rgt = parseInt(rc[rgtc],10), level = parseInt(rc[levelc],10);
					for(i=0; i  < len; i++) {
						row = $t.p.data[i];
						if(row && parseInt(row[levelc],10) === level+1 && parseInt(row[lftc],10) > lft && parseInt(row[rgtc],10) < rgt) {
							result.push(row);
						}
					}
					break;
				case 'adjacency' :
					var parent_id = $t.p.treeReader.parent_id_field,
					dtid = $t.p.localReader.id;
					for(i=0; i  < len; i++) {
						row = $t.p.data[i];
						if(row && String(row[parent_id]) === String( $.jgrid.stripPref($t.p.idPrefix, rc[dtid]) ) ) {
							result.push(row);
						}
					}
					break;
			}
		});
		return result;
	},
	getFullTreeNode : function(rc, expand) {
		var result = [];
		this.each(function(){
			var $t = this, len,expanded = $t.p.treeReader.expanded_field;
			if(!$t.grid || !$t.p.treeGrid) {return;}
			if(expand == null || typeof expand !== 'boolean') {
				expand = false;
			}
			switch ($t.p.treeGridModel) {
				case 'nested' :
					var lftc = $t.p.treeReader.left_field,
					rgtc = $t.p.treeReader.right_field,
					levelc = $t.p.treeReader.level_field,
					lft = parseInt(rc[lftc],10), rgt = parseInt(rc[rgtc],10), level = parseInt(rc[levelc],10);
					$(this.p.data).each(function(){
						if(parseInt(this[levelc],10) >= level && parseInt(this[lftc],10) >= lft && parseInt(this[lftc],10) <= rgt) {
							if(expand) { this[expanded] = true; }
							result.push(this);
						}
					});
					break;
				case 'adjacency' :
					if(rc) {
						result.push(rc);
						var parent_id = $t.p.treeReader.parent_id_field,
						dtid = $t.p.localReader.id;
						$(this.p.data).each(function(i){
							len = result.length;
							for (i = 0; i < len; i++) {
								if ( String( $.jgrid.stripPref($t.p.idPrefix, result[i][dtid]) ) === String( this[parent_id] ) ) {
									if(expand) { this[expanded] = true; }
									result.push(this);
									break;
								}
							}
						});
					}
					break;
			}
		});
		return result;
	},	
	// End NS, adjacency Model
	getNodeAncestors : function(rc, reverse, expanded) {
		var ancestors = [];
		if(reverse === undefined ) {
			reverse = false;
		}
		this.each(function(){
			if(!this.grid || !this.p.treeGrid) {return;}
			if(expanded === undefined ) {
				expanded = false;
			} else {
				expanded = this.p.treeReader.expanded_field;
			}
			var parent = $(this).jqGrid("getNodeParent",rc);
			while (parent) {
				if(expanded) {
					try{
						parent[expanded] = true;
					} catch (etn) {}
				}
				if(reverse) {
					ancestors.unshift(parent);
				} else {
					ancestors.push(parent);
				}
				parent = $(this).jqGrid("getNodeParent",parent);	
			}
		});
		return ancestors;
	},
	isVisibleNode : function(rc) {
		var result = true;
		this.each(function(){
			var $t = this;
			if(!$t.grid || !$t.p.treeGrid) {return;}
			var ancestors = $($t).jqGrid("getNodeAncestors",rc),
			expanded = $t.p.treeReader.expanded_field;
			$(ancestors).each(function(){
				result = result && this[expanded];
				if(!result) {return false;}
			});
		});
		return result;
	},
	isNodeLoaded : function(rc) {
		var result;
		this.each(function(){
			var $t = this;
			if(!$t.grid || !$t.p.treeGrid) {return;}
			var isLeaf = $t.p.treeReader.leaf_field,
			loaded = $t.p.treeReader.loaded;
			if(rc !== undefined ) {
				if(rc[loaded] !== undefined) {
					result = rc[loaded];
				} else if( rc[isLeaf] || $($t).jqGrid("getNodeChildren",rc).length > 0){
					result = true;
				} else {
					result = false;
				}
			} else {
				result = false;
			}
		});
		return result;
	},
	setLeaf : function (rc, state, collapsed) {
		return this.each(function(){
			var id = $.jgrid.getAccessor(rc,this.p.localReader.id),
			rc1 = $("#"+id,this.grid.bDiv)[0],
			isLeaf = this.p.treeReader.leaf_field;
			try {
				var dr = this.p._index[id];
				if(dr != null) {
					this.p.data[dr][isLeaf] = state;
				}
			} catch(E){}
			if(state === true) {
				// set it in data
				$("div.treeclick",rc1).removeClass(this.p.treeIcons.minus+" tree-minus "+this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.leaf +" tree-leaf");
			} else if(state === false) {
				var ico = this.p.treeIcons.minus+" tree-minus";
				if(collapsed) {
					ico = this.p.treeIcons.plus+" tree-plus";
				}
				$("div.treeclick",rc1).removeClass(this.p.treeIcons.leaf +" tree-leaf").addClass( ico );
			}	
		});
	},
	reloadNode: function(rc, reloadcurrent) {
		return this.each(function(){
			if(!this.grid || !this.p.treeGrid) {return;}
			var rid = this.p.localReader.id,
			currselection  = this.p.selrow;

			$(this).jqGrid("delChildren", rc[rid]);

			if(reloadcurrent=== undefined) {
				reloadcurrent = false;
			}
			
			if(!reloadcurrent) {
				if(!jQuery._data( this, "events" ).jqGridAfterSetTreeNode) {
					$(this).on("jqGridAfterSetTreeNode.reloadNode", function(){
						var isLeaf = this.p.treeReader.leaf_field;
						if(this.p.reloadnode ) {
							var rc = this.p.reloadnode,
							chld = $(this).jqGrid('getNodeChildren', rc);
							if(rc[isLeaf] && chld.length) {
								$(this).jqGrid('setLeaf', rc, false);
							} else if(!rc[isLeaf] && chld.length === 0) {
								$(this).jqGrid('setLeaf', rc, true);
							}
						}
						this.p.reloadnode = false;
					});
				}
			}
			var expanded = this.p.treeReader.expanded_field,
			parent = this.p.treeReader.parent_id_field,
			loaded = this.p.treeReader.loaded,
			level = this.p.treeReader.level_field,
			isLeaf = this.p.treeReader.leaf_field,
			lft = this.p.treeReader.left_field,
			rgt = this.p.treeReader.right_field;

			var id = $.jgrid.getAccessor(rc,this.p.localReader.id),
			rc1 = $("#"+id,this.grid.bDiv)[0];

			rc[expanded] = true;
			if(!rc[isLeaf]) {
				$("div.treeclick",rc1).removeClass(this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.minus+" tree-minus");
			}
			this.p.treeANode = rc1.rowIndex;
			this.p.datatype = this.p.treedatatype;
			this.p.reloadnode = rc;
			if(reloadcurrent) {
				this.p.treeANode = rc1.rowIndex > 0 ? rc1.rowIndex - 1 : 1;
				$(this).jqGrid('delRowData', id);
			}
			if(this.p.treeGridModel === 'nested') {
				$(this).jqGrid("setGridParam",{postData:{nodeid:id,n_left:rc[lft],n_right:rc[rgt],n_level:rc[level]}});
			} else {
				$(this).jqGrid("setGridParam",{postData:{nodeid:id,parentid:rc[parent],n_level:rc[level]}} );
			}
			$(this).trigger("reloadGrid");
			
			rc[loaded] = true;
			if(this.p.treeGridModel === 'nested') {
				$(this).jqGrid("setGridParam",{selrow: currselection, postData:{nodeid:'',n_left:'',n_right:'',n_level:''}});
			} else {
				$(this).jqGrid("setGridParam",{selrow: currselection, postData:{nodeid:'',parentid:'',n_level:''}});
			}
		});
	},
	expandNode : function(rc) {
		return this.each(function(){
			if(!this.grid || !this.p.treeGrid) {return;}
			var $t = this,
			expanded = this.p.treeReader.expanded_field,
			parent = this.p.treeReader.parent_id_field,
			loaded = this.p.treeReader.loaded,
			level = this.p.treeReader.level_field,
			lft = this.p.treeReader.left_field,
			rgt = this.p.treeReader.right_field;

			if(!rc[expanded]) {
				var id = $.jgrid.getAccessor(rc,this.p.localReader.id),
				rc1 = $("#" + this.p.idPrefix + $.jgrid.jqID(id),this.grid.bDiv)[0],
				position = this.p._index[id],
				ret = $($t).triggerHandler("jqGridBeforeExpandTreeGridNode", [id, rc]);
				if(ret === undefined ) {
					ret = true;
				}			
				if( ret && $.jgrid.isFunction(this.p.beforeExpandTreeGridNode) ) {
					ret =  this.p.beforeExpandTreeGridNode.call(this, id, rc );
				}
				if( ret === false ) { return; }

				if( $(this).jqGrid("isNodeLoaded",this.p.data[position]) ) {
					rc[expanded] = true;
					$("div.treeclick",rc1).removeClass(this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.minus+" tree-minus");
				} else if (!this.grid.hDiv.loading) {
					rc[expanded] = true;
					$("div.treeclick",rc1).removeClass(this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.minus+" tree-minus");
					this.p.treeANode = rc1.rowIndex;
					this.p.datatype = this.p.treedatatype;
					if(this.p.treeGridModel === 'nested') {
						$(this).jqGrid("setGridParam",{postData:{nodeid:id,n_left:rc[lft],n_right:rc[rgt],n_level:rc[level]}});
					} else {
						$(this).jqGrid("setGridParam",{postData:{nodeid:id,parentid:rc[parent],n_level:rc[level]}} );
					}
					$(this).trigger("reloadGrid");
					rc[loaded] = true;
					if(this.p.treeGridModel === 'nested') {
						$(this).jqGrid("setGridParam",{postData:{nodeid:'',n_left:'',n_right:'',n_level:''}});
					} else {
						$(this).jqGrid("setGridParam",{postData:{nodeid:'',parentid:'',n_level:''}}); 
					}
				}
				$($t).triggerHandler("jqGridAfterExpandTreeGridNode", [id, rc]);
				if($.jgrid.isFunction(this.p.afterExpandTreeGridNode)) {
					this.p.afterExpandTreeGridNode.call(this, id, rc );
				}
			}
		});
	},
	collapseNode : function(rc) {
		return this.each(function(){
			if(!this.grid || !this.p.treeGrid) {return;}
			var expanded = this.p.treeReader.expanded_field,
			$t = this;
			if(rc[expanded]) {
				var id = $.jgrid.getAccessor(rc,this.p.localReader.id),
				rc1 = $("#" + this.p.idPrefix + $.jgrid.jqID(id),this.grid.bDiv)[0],
				ret = $($t).triggerHandler("jqGridBeforeCollapseTreeGridNode", [id, rc]);
				if(ret === undefined ) {
					ret = true;
				}			
				if( ret &&  $.jgrid.isFunction(this.p.beforeCollapseTreeGridNode) ) {
					ret = this.p.beforeCollapseTreeGridNode.call(this, id, rc );
				}
				rc[expanded] = false;
				if( ret === false ) { return; }
				$("div.treeclick",rc1).removeClass(this.p.treeIcons.minus+" tree-minus").addClass(this.p.treeIcons.plus+" tree-plus");
				$($t).triggerHandler("jqGridAfterCollapseTreeGridNode", [id, rc]);
				if($.jgrid.isFunction(this.p.afterCollapseTreeGridNode)) {
					this.p.afterCollapseTreeGridNode.call(this, id, rc );
				}
			}
		});
	},
	SortTree : function( sortname, newDir, st, datefmt) {
		return this.each(function(){
			if(!this.grid || !this.p.treeGrid) {return;}
			var i, len,
			rec, records = [], $t = this, query, roots,
			rt = $(this).jqGrid("getRootNodes", $t.p.search);
			// Sorting roots
			query = $.jgrid.from.call(this, rt);
			// sort tree by node type
			if( Boolean($t.p.sortTreeByNodeType)) {
				var ord = ($t.p.sortTreeNodeOrder && $t.p.sortTreeNodeOrder.toLowerCase() === 'desc') ? 'd' : 'a'; 
				query.orderBy($t.p.treeReader.leaf_field, ord, st, datefmt);
			}
			query.orderBy(sortname, newDir, st, datefmt);
			roots = query.select();
			// Sorting children
			for (i = 0, len = roots.length; i < len; i++) {
				rec = roots[i];
				records.push(rec);
				$(this).jqGrid("collectChildrenSortTree",records, rec, sortname, newDir, st, datefmt);
			}
			var ids = $(this).jqGrid("getDataIDs"), j=1;
			$.each(records, function(index) {
				var id  = $.jgrid.getAccessor(this, $t.p.localReader.id);
				if($.inArray(id, ids) !== -1) {
					$('#'+$.jgrid.jqID($t.p.id)+ ' tbody tr').eq( j ).after($('#'+$.jgrid.jqID($t.p.id)+' tbody tr#'+$.jgrid.jqID(id)));
					j++;
				}
			});
			query = null;roots=null;records=null;
		});
	},
	searchTree : function ( recs ) {
		var n = recs.length || 0, ancestors=[], lid, roots=[], result=[],tid, alen, rlen, j, k, i;
		this.each(function(){
			if(!this.grid || !this.p.treeGrid) {
				return;
			}
			if(n) {
				lid = this.p.localReader.id;
				//while( i-- ) { // reverse 
				for( i=0; i<n; i++ ) {
					ancestors = $(this).jqGrid('getNodeAncestors', recs[i], true, true);
					//add the searched item
					if( Boolean(this.p.FullTreeSearchResult) ) {
						var fnode = $(this).jqGrid('getFullTreeNode', recs[i], true);
						ancestors = ancestors.concat(fnode);
					} else {
						ancestors.push(recs[i]);
					}
					tid = ancestors[0][lid]; 
					if($.inArray(tid, roots ) !== -1) { // ignore repeated, but add missing
						for( j = 0, alen = ancestors.length; j < alen; j++) {
							//$.inArray ?!?
							var found = false;
							for( k=0, rlen = result.length; k < rlen; k++) {
								if(ancestors[j][lid] === result[k][lid]) {
									found = true;
									break;
								}
							}
							if(!found) {
								result.push(ancestors[j]);
							}
						}
							continue;
					} else {
						roots.push( tid );
					}
					result = result.concat( ancestors );
				}	
			}
		});
		return result;
	},
	collectChildrenSortTree : function(records, rec, sortname, newDir,st, datefmt) {
		return this.each(function(){
			if(!this.grid || !this.p.treeGrid) {return;}
			var i, len,
			child, ch, query, children;
			ch = $(this).jqGrid("getNodeChildren",rec, this.p.search);
			query = $.jgrid.from.call(this, ch);
			query.orderBy(sortname, newDir, st, datefmt);
			children = query.select();
			for (i = 0, len = children.length; i < len; i++) {
				child = children[i];
				records.push(child);
				$(this).jqGrid("collectChildrenSortTree",records, child, sortname, newDir, st, datefmt); 
			}
		});
	},
	// experimental 
	setTreeRow : function(rowid, data) {
		var success=false;
		this.each(function(){
			var t = this;
			if(!t.grid || !t.p.treeGrid) {return;}
			success = $(t).jqGrid("setRowData", rowid, data);
		});
		return success;
	},
	delTreeNode : function (rowid, reload) {
		return this.each(function () {
			var $t = this, rid = $t.p.localReader.id, i,
			left = $t.p.treeReader.left_field, parent,
			right = $t.p.treeReader.right_field, myright, width, res, key;
			if(!$t.grid || !$t.p.treeGrid) {return;}
			rowid = $.jgrid.stripPref($t.p.idPrefix, rowid);
			var rc = $t.p._index[rowid];
			if(typeof reload === undefined) {
				reload = false;
			}
			if(reload) {
				parent = $(this).jqGrid("getNodeParent",$t.p.data[rc]);
			}
			if (rc !== undefined) {
				// nested
				myright = parseInt($t.p.data[rc][right],10);
				width = myright -  parseInt($t.p.data[rc][left],10) + 1;
				var dr = $($t).jqGrid("getFullTreeNode",$t.p.data[rc]);
				if(dr.length>0){
					for (i=0;i<dr.length;i++){
						$($t).jqGrid("delRowData", $t.p.idPrefix + dr[i][rid]);
					}
				}
				if( $t.p.treeGridModel === "nested") {
					// ToDo - update grid data
					res = $.jgrid.from.call($t, $t.p.data)
						.greater(left,myright,{stype:'integer'})
						.select();
					if(res.length) {
						for( key in res) {
							if(res.hasOwnProperty(key)) {
								res[key][left] = parseInt(res[key][left],10) - width ;
							}
						}
					}
					res = $.jgrid.from.call($t, $t.p.data)
						.greater(right,myright,{stype:'integer'})
						.select();
					if(res.length) {
						for( key in res) {
							if(res.hasOwnProperty(key)) {
								res[key][right] = parseInt(res[key][right],10) - width ;
							}
						}
					}
				}
				if(reload) {
					var isLeaf = this.p.treeReader.leaf_field;
					var chld = $(this).jqGrid('getNodeChildren', parent);
					if(parent[isLeaf] && chld.length) {
						$(this).jqGrid('setLeaf', parent, false);
					} else if(!rc[isLeaf] && chld.length === 0) {
						$(this).jqGrid('setLeaf', parent, true);
					}
				}
			}
		});
	},
	delChildren : function (rowid) {
		return this.each(function () {
			var $t = this, rid = $t.p.localReader.id,
			left = $t.p.treeReader.left_field,
			right = $t.p.treeReader.right_field, myright, width, res, key;
			if(!$t.grid || !$t.p.treeGrid) {return;}
			rowid = $.jgrid.stripPref($t.p.idPrefix, rowid);
			var rc = $t.p._index[rowid];
			if (rc !== undefined) {
				// nested
				myright = parseInt($t.p.data[rc][right],10);
				width = myright -  parseInt($t.p.data[rc][left],10) + 1;
				var dr = $($t).jqGrid("getFullTreeNode",$t.p.data[rc]);
				if(dr.length>0){
					for (var i=0;i<dr.length;i++){
						if(dr[i][rid] !== rowid)
							$($t).jqGrid("delRowData", $t.p.idPrefix + dr[i][rid]);
					}
				}
				if( $t.p.treeGridModel === "nested") {
					// ToDo - update grid data
					res = $.jgrid.from($t.p.data)
						.greater(left,myright,{stype:'integer'})
						.select();
					if(res.length) {
						for( key in res) {
							if(res.hasOwnProperty(key)) {
								res[key][left] = parseInt(res[key][left],10) - width ;
							}
						}
					}
					res = $.jgrid.from($t.p.data)
						.greater(right,myright,{stype:'integer'})
						.select();
					if(res.length) {
						for( key in res) {
							if(res.hasOwnProperty(key)) {
								res[key][right] = parseInt(res[key][right],10) - width ;
							}
						}
					}
				}
			}
		});
	},
	addChildNode : function( nodeid, parentid, data, expandData ) {
		//return this.each(function(){
		var $t = this[0];
		if(data) {
			// we suppose tha the id is autoincremet and
			var expanded = $t.p.treeReader.expanded_field,
			isLeaf = $t.p.treeReader.leaf_field,
			level = $t.p.treeReader.level_field,
			//icon = $t.p.treeReader.icon_field,
			parent = $t.p.treeReader.parent_id_field,
			left = $t.p.treeReader.left_field,
			right = $t.p.treeReader.right_field,
			loaded = $t.p.treeReader.loaded,
			method, parentindex, parentdata, parentlevel, i, len, max=0, rowind = parentid, leaf, maxright;
			if(expandData===undefined) {expandData = false;}
			if ( nodeid == null ) {
				i = $t.p.data.length-1;
				if(	i>= 0 ) {
					while(i>=0){max = Math.max(max, parseInt($t.p.data[i][$t.p.localReader.id],10)); i--;}
				}
				nodeid = max+1;
			}
			var prow = $($t).jqGrid('getInd', parentid);
			leaf = false;
			// if not a parent we assume root
			if ( parentid === undefined  || parentid === null || parentid==="") {
				parentid = null;
				rowind = null;
				method = 'last';
				parentlevel = $t.p.tree_root_level;
				i = $t.p.data.length+1;
			} else {
				method = 'after';
				var mid = $.jgrid.stripPref($t.p.idPrefix, parentid);
				parentindex = $t.p._index[mid];
				parentdata = $t.p.data[parentindex];
				parentid = parentdata[$t.p.localReader.id];
				parentlevel = parseInt(parentdata[level],10)+1;
				var childs = $($t).jqGrid('getFullTreeNode', parentdata);
				// if there are child nodes get the last index of it
				if(childs.length) {
					i = childs[childs.length-1][$t.p.localReader.id];
					rowind = i;
					i = $($t).jqGrid('getInd',  $t.p.idPrefix + rowind);
				} else {
					i = $($t).jqGrid('getInd',  $t.p.idPrefix + parentid);
				}
				// if the node is leaf
				if(parentdata[isLeaf]) {
					leaf = true;
					parentdata[expanded] = true;
					//var prow = $($t).jqGrid('getInd', parentid);
					$($t.rows[prow])
						.find("span.cell-wrapperleaf").removeClass("cell-wrapperleaf").addClass("cell-wrapper")
						.end()
						.find("div.tree-leaf").removeClass($t.p.treeIcons.leaf+" tree-leaf").addClass($t.p.treeIcons.minus+" tree-minus");
					$t.p.data[parentindex][isLeaf] = false;
					parentdata[loaded] = true;
				}
				// incremet th index of child to be inserted
				if( i === false ) {
					throw "Parent item with id: " + rowind + " ("+ parentid+") can't be found";
					//return;
				} else {
					i++;
				}
			}
			len = i+1;

			if( data[expanded]===undefined)  {data[expanded]= false;}
			if( data[loaded]===undefined )  { data[loaded] = false;}
			data[level] = parentlevel;
			if( data[isLeaf]===undefined) {data[isLeaf]= true;}
			if( $t.p.treeGridModel === "adjacency") {
				data[parent] = parentid;
			}
			if( $t.p.treeGridModel === "nested") {
				// this method requiere more attention
				var query, res, key;
				//maxright = parseInt(maxright,10);
				// ToDo - update grid data
				if(parentid !== null) {
					maxright = parseInt(parentdata[right],10);
					query = $.jgrid.from.call($t, $t.p.data);
					query = query.greaterOrEquals(right,maxright,{stype:'integer'});
					res = query.select();
					if(res.length) {
						for( key in res) {
							if(res.hasOwnProperty(key)) {
								res[key][left] = res[key][left] > maxright ? parseInt(res[key][left],10) +2 : res[key][left];
								res[key][right] = res[key][right] >= maxright ? parseInt(res[key][right],10) +2 : res[key][right];
							}
						}
					}
					data[left] = maxright;
					data[right]= maxright+1;
				} else {
					maxright = parseInt( $($t).jqGrid('getCol', right, false, 'max'), 10);
					res = $.jgrid.from.call($t, $t.p.data)
						.greater(left,maxright,{stype:'integer'})
						.select();
					if(res.length) {
						for( key in res) {
							if(res.hasOwnProperty(key)) {
								res[key][left] = parseInt(res[key][left],10) +2 ;
							}
						}
					}
					res = $.jgrid.from.call($t, $t.p.data)
						.greater(right,maxright,{stype:'integer'})
						.select();
					if(res.length) {
						for( key in res) {
							if(res.hasOwnProperty(key)) {
								res[key][right] = parseInt(res[key][right],10) +2 ;
							}
						}
					}
					data[left] = maxright+1;
					data[right] = maxright + 2;
				}
			}
			if( parentid === null || $($t).jqGrid("isNodeLoaded",parentdata) || leaf ) {
					$($t).jqGrid('addRowData', nodeid, data, method, $t.p.idPrefix + rowind);
					$($t).jqGrid('setTreeNode', i, len);
			}
			if(parentdata && !parentdata[expanded] && expandData) {
				$($t.rows[prow])
					.find("div.treeclick")
					.click();
			}
		}
		//});
	}
});
//module end
}));
js/jquery.jqGrid.min.js.map000064400002616705151676727230011653 0ustar00{"version":3,"file":"jquery.jqGrid.min.js","sources":["jquery.jqGrid.js"],"names":["factory","define","amd","jQuery","$","jgrid","hasOwnProperty","defaults","extend","version","isNull","p","strict_eq","trim","x","replace","isFunction","type","obj","fullClass","Object","prototype","toString","call","toLowerCase","deepType","slice","match","floatNum","val","defval","undefined","parseFloat","isNaN","htmlDecode","value","length","charCodeAt","String","htmlEncode","template","format","j","args","makeArray","arguments","al","m","i","parseInt","Array","isArray","nmarr","k","nm","v","msie","msiever","rv","sAgent","window","navigator","userAgent","Idx","indexOf","substring","getCellIndex","cell","c","is","closest","inArray","parentNode","cells","cellIndex","stripHtml","stripPref","pref","id","stripScript","useJSON","runCode","Function","parse","jsonString","js","JSON","dateToOADate","date","temp","Date","Math","round","setHours","abs","toFixed","parseDate","newformat","opts","pad","h12to24","ampm","h","dM","hl","msDateRegExp","RegExp","msMatch","ts","d","y","s","u","timestamp","offset","getRegional","this","parseRe","AmPm","masks","constructor","validate","Number","getTimezoneOffset","setTime","srcformat","charAt","split","monthNames","f","ty","valid_date","Boolean","getDate","getHours","getMinutes","userLocalTime","G","n","getMonth","o","getSeconds","getMilliseconds","w","getDay","Y","getFullYear","N","z","flags","D","dayNames","l","S","W","floor","F","M","t","L","a","A","B","g","H","e","I","O","P","pos","ch","T","pop","Z","r","U","$0","jqID","sid","guid","uidPref","randId","prefix","getAccessor","expr","ret","prm","shift","getXmlData","returnObj","attr","text","cellWidth","$testDiv","testCell","appendTo","find","width","remove","isLocalStorage","localStorage","inst","param","def_val","regional","isMobile","test","cell_width","scrollbarWidth","div","w1","append","innerWidth","w2","css","scrollbarHeight","outerHeight","scrollHeight","ajaxOptions","from","source","$t","q","data","self","_data","_usecase","_trim","_query","_stripNum","_lastCommand","_lastField","_orDepth","_negate","_queuedOperator","_sorting","_useProperties","push","_hasData","_getStr","phrase","join","_strComp","_group","field","unique","items","_toStr","_funcLoop","func","results","each","_append","_setCommand","_resetNegate","_repeatCommand","_equals","b","_compare","localeCompare","_performSort","_doSort","by","dir","dfmt","datefmt","sfunc","_getOrder","sorted","values","_getGroup","ab","findSortKey","sortData","_sortData","newDir","nrec","$cell","key","NEGATIVE_INFINITY","getTime","vSort","index","sort","group","last","ignoreCase","useCase","noTrim","execute","stringify","select","hasMatch","andNot","and","orNot","or","not","orBegin","orEnd","isNot","_compareValues","how","fld","swst","stype","srcfmt","equals","notEquals","greater","less","greaterOrEquals","lessOrEquals","startsWith","endsWith","contains","user","op","_a","inData","vl","groupBy","orderBy","getMethod","name","fn","jqGrid","methods","no_legacy_api","clearBeforeUnload","jqGridId","grid","emptyRows","document","off","hDiv","headers","removevents","el","gridUnload","defgrid","newtable","gid","cl","pager","empty","removeClass","createElement","className","insertBefore","parents","gridDestroy","_","isElementInViewport","rect","getBoundingClientRect","left","right","documentElement","clientWidth","getTextWidth","font","canvas","_cacheCanvas","createDocumentFragment","appendChild","getContext","measureText","getFont","instance","getfont","getComputedStyle","getPropertyValue","setSelNavIndex","selelem","cels","navIndex","splitSearch","property","rules","mergeOper","getElemByAttrVal","elem","position","len","searchColOnEnter","gridid","rid","tb","res","opt","searchColOptions","frozen","e1","frozenColumns","bDiv","focus","_ftsc","_fthc","_avc","colModel","hidden","_results","_cnth","Set","visibleColumns","_cnthSet","filter","includes","get_result","to_show","count","searchOp","toUpperCase","swap","isEmptyObject","concat","fbDiv","frozenRows","trigger","vall","datarow","_cts","has","aOperands","operand","search","this_len","searchColOnKey","setTimeout","comboGrid","elemId","gridopt","gridId","divId","save_datatype","datatype","coord","onSelectRow","srow","return_fld","hide","scrollrows","divgrid","getElementById","background-color","top","zIndex","on","timer","gID","dID","show","eee","Event","selrow","keyCode","clearTimeout","defaultSearch","selectFirstFound","url","inColumnHeader","columnHeaders","startColumnName","isServiceCol","normalizeDbData","input","let","cm","sorttype","formatter","formatoptions","reformatAfterEdit","isVisible","offsetWidth","offsetHeight","getClientRects","styleUI","jQueryUI","common","disabled","highlight","hover","cornerall","cornertop","cornerbottom","icon_base","overlay","active","error","button","content","shadow","base","entrieBox","viewBox","headerTable","headerBox","rowTable","rowBox","stripedTable","footerTable","footerBox","headerRowTable","headerRowBox","headerDiv","gridtitleBox","customtoolbarBox","loadingBox","rownumBox","scrollBox","multiBox","searchBox","searchSelect","pagerBox","pagerTable","toppagerBox","pgInput","pgSelectBox","pgButtonBox","icon_first","icon_prev","icon_next","icon_end","icon_asc","icon_desc","icon_caption_open","icon_caption_close","modal","header","body","footer","resizable","icon_close","icon_resizable","celledit","inputClass","selectClass","inlinedit","icon_edit_nav","icon_add_nav","icon_save_nav","icon_cancel_nav","formedit","labelClass","icon_save","icon_del","icon_cancel","icon_del_nav","icon_search_nav","icon_refresh_nav","icon_view_nav","icon_newbutton_nav","grouping","icon_plus","icon_minus","table_widget","srSelect","srInput","menu_widget","icon_search","icon_reset","icon_query","subgrid","icon_open","treegrid","icon_leaf","fmatter","icon_edit","icon_add","colmenu","input_checkbox","filter_select","filter_input","icon_menu","icon_search_menu","icon_sort_asc","icon_sort_desc","icon_columns","icon_filter","icon_group","icon_freeze","icon_move","icon_new_item","icon_toolbar_menu","icon_group_op","icon_oper_op","Bootstrap","title","Bootstrap4","Bootstrap5","iconSet","Iconic","Octicons","fontAwesome","pin","localData","height","defaultColWidth","page","rowNum","rowTotal","records","pgbuttons","pginput","rowList","colNames","sortorder","sortname","mtype","altRows","selarrrow","preserveSelection","savedRow","shrinkToFit","xmlReader","jsonReader","subGrid","subGridModel","reccount","lastpage","lastsort","beforeSelectRow","onSortCol","ondblClickRow","onRightClickRow","onPaging","onSelectAll","onInitGrid","loadComplete","gridComplete","loadError","loadBeforeSend","afterInsertRow","beforeRequest","beforeProcessing","onHeaderClick","viewrecords","loadonce","multiselect","multikey","multiboxonly","multimail","multiselectWidth","onMultiSleect","editurl","caption","hidegrid","hiddengrid","postData","userData","treeGrid","treeGridModel","treeReader","treeANode","ExpandColumn","tree_root_level","prmNames","rows","order","nd","oper","editoper","addoper","deloper","subgridid","npage","totalrows","forceFit","gridstate","cellEdit","cellsubmit","nv","loadui","toolbar","scroll","deselectAfterSort","autowidth","scrollOffset","cellLayout","subGridWidth","gridview","rownumWidth","rownumbers","pagerpos","recordpos","footerrow","userDataOnFooter","headerrow","userDataOnHeader","hoverrows","viewsortcols","resizeclass","autoencode","remapColumns","ajaxGridOptions","direction","toppager","headertitles","scrollTimeout","_index","groupingView","groupField","groupOrder","groupText","groupColumnShow","groupSummary","showSummaryOnHide","sortitems","sortnames","summary","summaryval","plusicon","minusicon","displayField","groupSummaryPos","formatDisplayField","_locgr","groupHeaderOn","cmTemplate","idPrefix","multiSort","minColWidth","minGridWidth","maxGridWidth","scrollPopUp","scrollTopOffset","scrollLeftOffset","scrollMaxBuffer","storeNavOptions","responsive","forcePgButtons","resizeHeight","restoreCellonFail","editNextRowCell","colFilters","colMenu","colMenuCustom","colMenuColumnDone","colMenuBeforeProcess","colSpanHeader","treeGrid_bigData","treeGrid_rootParams","otherData","treeGrid_beforeRequest","treeGrid_afterLoadComplete","useNameForSearch","formatFooterData","formatHeaderData","mergeSearch","searchModules","filterInput","filterToolbar","searchGrid","colMenuSearch","emptyRecordRow","ariaBody","searchCols","colWidth","colName","searchOnEnter","dbconfig","dbname","dbversion","dbtable","deleteIfExists","loadIfExists","isKeyInData","dataUrl","reader","beforeInsertData","fetchOptions","cols","footers","hrheaders","dragStart","gridLeftPos","minW","minResizeWidth","resizing","idx","startX","pageX","sOL","style","cursor","curGbox","display","triggerHandler","resizeStart","onselectstart","dragMove","newWidth","hn","nWn","diff","tblwidth","dragEnd","events","forceFrozen","nw","first","scrollLeft","sDiv","hrDiv","resizeStop","populateVisible","dh","rh","rn","scrollTop","ttop","tbot","table","prevRowHeight","pv","loading","selectionPreserver","populate","html","pgtext","mouseout","scrollGrid","bScroll","hScroll","restoreSelection","sra","sr","tagName","alert","documentMode","lr","lk","spsh","useProp","prop","label","colTemplate","getstyle","stylemodule","iconbase","colmenustyle","isMSIE","sortarr","sortord","sotmp","gv","eg","_ald","grid_font","loadtext","role","aria-multiselectable","aria-labelledby","intNum","formatCol","rowInd","tv","rawObject","rowId","rdata","ral","align","result","clas","classes","acp","cellattr","celp","cellVal","cellval","colpos","rwdat","_act","autoResizing","autosize","_maxsize","canvas_width","max","sizingStringFunc","addCell","irow","srvr","addMulti","rowid","checked","uiclass","rowSelectTitle","selectLine","addRowNum","pG","rN","addSearch","searchColEvent","xmlmap","jsonmap","keyName","keyIndex","orderedCols","map","locdata","firstrow","deepempty","firstChild","normalizeData","cur","idn","idr","ccur","rd","arrayReader","objectReader","rowReader","dataLength","localReader","cellName","iOffset","br","repeatitems","refreshIndex","datalen","idname","constructTr","attrName","tabindex","restAttr","rowAttrObj","rowattr","ra","addXmlData","xml","rcnt","more","adjust","startReq","xmlid","xmlRd","treeadjtmp","frd","isXMLDoc","fpos","addSubGridCell","getId","xmlr","groupingPrepare","selr","ir","si","rowData","ni","gi","sc","gxml","trow","eq","getAttribute","total","userdata","root","gl","row","grpdata","tablebody","hiderow","groupCollapse","afterInsRow","rnc","scc","mlc","iStartTrTag","textContent","after","totaltime","splice","ceil","updatepager","setHeadCheckBox","cells2","addJSONData","dReader","drows","ccur2","locid","selected","addIndexedDBData","async","retAll","Promise","resolve","reject","INDEX_NAME","ORDER","recordsperpage","totalpages","srules","everyORsome","filters","groupOp","col","conv","compareFnMap","queryObj","_uselwcs","ne","lt","le","gt","ge","bw","bn","ew","en","cn","nc","in","nu","nn","bt","minmax","connection","indexedDB","open","onsuccess","transaction","retresult","oncomplete","event","low","high","cmp","onerror","endReq","target","objectStore","limit","pow","getAll","lenn","console","log","addLocalData","st","sto","fndsort","cmtypes","grtypes","grindexes","lengrp","gin","grpview","newfmt","sortfunc","_sort","query","tojLinq","gor","opr","rule","rulefld","ror","groups","customFilterDef","action","sfld","searchField","searchString","searchOper","se","left_field","queryResults","resetsearch","udc","grPrepare","beginReq","method","loadtype","htmlcontent","beforeprocess","xhr","bfpcr","afterprocess","dstr","lcf","datastr","dt","pvis","pN","min","lc","req","grp","tmpordarr","cmIndex","cmValue","gs","bfr","ajax","dataType","serializeGridData","success","err","beforeSend","settings","gotoreq","parseXML","ready_req","then","fhDiv","setPager","pgid","tp","clearVals","onpaging","thus","pgcnt","removebutt","sep","pginp","pgl","str","lft","cent","rgt","strnm","pgrecs","n1","n2","n3","n4","po","btc","pot","pgfirst","pgprev","pgnext","pglast","reverse","tdw","twd","clone","_nvtd","hasClass","addClass","click","cp","selclick","fp","pp","np","lp","charCode","preventDefault","iCol","sor","selarr","so","isn","aria-selected","aria-sort","sn","lso","firstsortorder","idxcol","reload","sortable","previousSelectedTh","newSelectedTh","newSelThFC","usehide","tmpicon","sscroll","getColumnHeaderIndex","th","ci","buildColItems","parent","all_visible","cols_nm","colNm","texts","colArr","str1","columns_selectAll","reorder","cj","clitem","titleText","gh_len","groupHeader","groupH","ij","groupHeaders","jj","numberOfColumns","disp","hid","lb","hidedlg","html5sortable","handle","forcePlaceholderSize","ui","startindex","endindex","col_name","buildSearchBox","df","o1","v1","r1","o2","v2","repstr","oper1","value1","oper2","value2","searchoptions","sopt","groupOps","odata","defaultValue","soptions","createEl","ajaxSelectOptions","Reset","Find","buildFilters","module","column","item","buildGrouping","isgroup","buildFreeze","isfreeze","lastfrozen","buildSubmenuItems","cname","styles","forEach","icon","itm","exec","funcname","closeOnRun","menubar","pw","tmpcm","bstw2","unshift","fixed","labelClasses","coloptions","sorting","columns","filtering","seraching","freeze","allRowsSelectTitle","selectAllLines","tdc","td","ptr","imgs","emp","chk","thead","iac","idc","tooltip","froz","curind","onMultiSelect","lvc","cw","aw","lvmc","tfoot","trhead","bstw","initwidth","brd","vc","scw","hs","gw","ind","widthOrg","maxWidth","maxwidthcount","diffmaxwidth","notmax","notmaxwidth","cr","testsum","nmi","get","thr","firstr","clicks","hdr_font","disableClick","prepend","hdcol","clcol","autosize_headers","outerText","mousedown","cmax","$th","outerWidth","tid","menuitem","exclude","grid_offset","buildColMenu","menu_offset","cDiv","uDiv","strl","menuData","sortasc","sortdesc","ungrouping","unfreeze","colname","subid","separator","wcm","left1","top1","sobj","stopPropagation","selHeadInd","tbody","ri","tdHtml","tdt","hTable","hg","hb","icoo","mouseover","before","CurrentSelectIndex","InitialSelectIndex","startID","endID","shouldSelectRow","shouldResetRow","perform_select","scb","cSel","allowRowSelect","onCellSelect","shiftKey","initialRowSelect","getDataIDs","getSelection","removeAllRanges","selectMultiRow","rowIndex","reloadGrid","treedatatype","current","inlineNav","dblclick","dbcr","contextmenu","rcr","support","icoc","arf","showhide","arf1","tbstyle","insertAfter","ubDiv","topDiv","nDiv","counter","onHdCl","elems","slideUp","slideDown","mousemove","vScrollWidth","paddingLeft","arfrozen","focused","dnd","to","tot","sppg","tstr","tspg","tspg_t","children","pgboxes","fmt","util","NumberFormat","emptyrecords","rt","recordtext","jqgdnd","act","nodeid","orientationEvent","selection","frz","trid","apply","getGridParam","grid_module","setGridParam","newParams","overwrite","params","getGridRowById","namedItem","getGridRowByIndex","ids","setSelection","onsr","isHight","stat","pt","fid","tfid","rpos","ner","iR","clientHeight","ia","tpsr","csr","resetSelection","onUnSelectRow","iRow","getRowData","usedata","treeindent","visibleTreeNodes","resall","getall","unformat","level","level_field","e_","repeat","delRowData","nextRow","next","setRowData","cssp","usegetrow","jsondat","lcdata","dval","frozenColCount","addRowData","src","sind","aradd","cnm","msc","prp","air","footerData","destroyFrozen","isEmpty","rowlen","headerData","showHideCol","fndh","sw","gHead","gh","hideCol","showCol","hideSearchCol","_e","showSearchCol","permutation","updateCells","keepHeader","resortArray","ac","resortRows","clobj","expColInd","setGridWidth","nwidth","shrink","usefrozen","setgr","norec_row","cle","delta","has_scroll","scrollWidth","setGridHeight","nh","entrie_grid","static_height","maxGridHeight","newhgh","minrh","setCaption","newcap","ctop","setLabel","nData","attrp","thecol","ico","col_menu","er","setSortIcon","htmlcol","setCell","forceupd","tcell","rawdat","fcell","replaceWith","getCell","returnobject","getCol","mathopr","sum","ln","dlen","innerHTML","clearGridData","clearfooter","clearheader","trf","getInd","rc","rw","bindKeys","onEnter","onSpace","onLeftKey","onRightKey","scrollingRows","expanded","expanded_field","previd","mind","previousSibling","onUpKey","nextSibling","onDownKey","unbindKeys","getLocalRow","progressBar","pr","offsetParent","sh","loadDiv","toggle","z-index","getColProp","setColProp","isPlainObject","sortGrid","setGridState","state","close","setFrozenColumns","bpos","htbl","swapfroz","fdel","cs","testws","maxdh","hd","pixelfix","divhth","bhpos","fhrDiv","fsDiv","originalEvent","wheelDelta","detail","ftbl","mh","btbl","tt","bhtop","hrtbl","bttop","destroyFrozenColumns","resizeColumn","forceresize","setfrozen","tgrid","cmLen","getStyleUI","styleui","classui","notclasstag","gridclass","stylemod","cls","resizeGrid","timeout","refreshfrozen","winwidth","parentwidth","ww","winheight","parentheight","wh","colMenuAdd","options","currstyle","colMenuDelete","menubarAdd","closeoncall","divider","cick","menubarDelete","itemid","addColSearchMenu","tstl","Close","Operand","myfunc","Operation","disableColMenu","enableColMenu","editCell","ed","excel","tmp","cc","inpclass","selclass","knv","ic","iRowId","therow","editable","isCellEditable","edittype","etmp","formatCell","tmp2","beforeEditCell","editoptions","elc","bindEv","datepicker","altKey","nodeName","F2key","afterEditCell","saveCell","over_value","fr","savedValues","oldvalue","newvalue","indexRow","errors","edit","nmjq","selectedText","multiple","sel","cbv","custom_value","info_dialog","errcap","msg","nodefined","bClose","novalue","message","vvv","cv","beforeSaveCell","vv","checkValues","nuem","addpost","retsub","beforeSubmitCell","onSubmitCell","postdata","cellurl","NullIfEmpty","opers","serializeCellData","anydata","afterSubmitCell","afterSaveCell","errorCell","onClose","status","statusText","ajaxCellOptions","nourl","catch","validationCell","restoreCell","afterRestoreCell","nextCell","nCol","prevCell","GridNav","kdir","iC","sl","nCOL","pCOL","nROT","offsetTop","pROT","offsetLeft","findNextVisible","keydown","getChangedCells","mthd","showModal","closeModal","hideModal","selector","frmgr","frmdata","thisgrid","jqm","gb","removemodal","formprop","form","oncret","dataheight","datawidth","jqmHide","findPos","createModal","aIDs","insertSelector","posSelector","appendsel","jqModal","rtlsup","gbox","mw","themodal","ahr","modalhead","mc","modalcontent","oncm","gboxclose","recreateForm","parentZ","overflow","tabIndex","aria-hidden","drag","resize","tinyDraggable","draggable","jqResize","scrollelm","handles","alsoResize","closeOnEscape","which","cone","viewModal","toTop","overlayClass","onShow","onHide","jqM","em","focusField","jqmShow","zInd","c_b","modalopt","mopt","innerHeight","buttonalign","buttons","jm","buttstr","cnt","fs","font-size","onClick","beforeOpen","afterOpen","dataInit","dataEvents","tfn","ev","eltype","ajaxso","setAttributes","elm","atr","exl","merge","multiline","cbval","defaultChecked","vl1","setAttribute","msl","ovm","context","txt","cU","cacheUrlData","oV","mss","buildSelect","size","multiseparator","checkUpdate","savedData","sv","ov","oSv","delim","delimiter","ii","custom_element","celm","checkDate","tsp","dln","mln","dv","yln","strDate","year","checkTime","time","regs","valref","customobject","nam","isNum","vn","chkv","dot","isFinite","edtrul","dft","editrules","formoptions","required","rqfield","number","minValue","maxValue","email","integer","fmtdate","custom","custom_func","customarray","customfcheck","validateForm","formvalid","elements","willValidate","setCustomValidity","LegacyValidation","reportValidity","validity","valid","chkbox","minlength","maxlength","pattern","buildButtons","commonstyle","side","getFirstVisibleCol","getLastVisibleCol","postForm","path","hiddenField","submit","removeChild","jqFilter","arg","sortStrategy","onChange","afterRedraw","errmsg","errorcheck","showQuery","ops","operands","numopts","stropts","strarr","groupButton","ruleButtons","uniqueSearchFields","addsubgrup","addrule","delgroup","delrule","unaryOperations","isIE","opera","initFilter","inputtype","searchtype","searchrules","inlist","getGrid","$tg","checkData","colModelItem","onchange","reDraw","createTableForGroup","parentgroup","that","tr","groupOpSelect","inputAddSubgroup","inputAddRule","searchable","searchhidden","inputDeleteGroup","trHolderForSubgroup","tdFirstHolderForSubgroup","tdMainHolderForSubgroup","suni","createTableRowForRule","trpar","ina","ruleFieldTd","ruleFieldSelect","aoprs","curr","prev","selectedIndex","ruleOperatorTd","ruleDataInput","ruleOperatorSelect","removeAttribute","ruleDataTd","ruleDeleteTd","ruleDeleteInput","getStringForGroup","getStringForRule","opUF","opC","resetFilter","hideError","showError","toUserFriendlyString","toSQLString","filterData","getParameter","addFilter","pfilter","filterRefactor","ssdata","rf","ruleGroup","ssfield","splitSelect","autosearch","autosearchDelay","beforeSearch","afterSearch","beforeClear","afterClear","onClearSearchValue","stringResult","searchOperators","resetIcon","disabledKeys","unaryOpers","force_regional","uskey","unary","timeoutHnd","filterobj","filterLabel","triggerToolbar","currentPage","sop","sdata","ms","msfield","afrcol","arcustom","bbt","$elem","fcol","searchOperMenu","splitSearchWord","validationError","saveurl","sd","splitSearchSeparator","bsr","setToolbarFozenVal","ffields","soper","smultiselect","orgCol","frozenCol","soptf","$elem2","dKeys","restoreFromFilters","add","filterFor","sot","thd","stbl","restores","searchtitle","operandTitle","clearSearch","csv","resetTitle","surl","inpelm","coli","sval","operText","clearToolbar","bcv","toggleToolbar","destroyFilterToolbar","refreshFilterToolbar","onClearVal","onSetVal","searchitem","setrules","fsi","recreateFilter","sField","sValue","sOper","sFilter","loadDefaults","beforeShowSearch","afterShowSearch","onInitializeSearch","afterChange","closeAfterSearch","closeAfterReset","multipleSearch","multipleGroup","onSearch","onReset","tmplNames","tmplFilters","tmplLabel","showOnLoad","layer","defaultFilters","fl","showFrm","mustReload","IDs","_savedFilter","showFilter","colnm","fil","butleft","bS","bC","bQ","tmpl","found","cmi","user_buttons","secRow","cmop","curtempl","$target","change","_filter","searchAll","firstFoundTimeout","autoSelect","src_date","allValues","count_item","create_value","s_cnt","setSelected","rp_ge","editGridRow","clearAfterAdd","closeAfterEdit","reloadAfterSubmit","onInitializeForm","beforeInitData","beforeShowForm","afterShowForm","beforeSubmit","afterSubmit","onclickSubmit","afterComplete","onclickPgButtons","afterclickPgButtons","editData","addedrow","topinfo","bottominfo","saveicon","closeicon","savekey","navkeys","checkOnSubmit","checkOnUpdate","processing","ajaxEditOptions","serializeEditData","viewPagerButtons","editselected","html5Check","frmoper","tbl","frmtborg","frmtb","maxCols","maxRows","templ","closeovrl","addCaption","editCaption","dw","frm","frmtb2","fmto","rowpos","restoreRow","createData","hc","trdata","dc","ffld","maxcols","edithidden","newdata","frmopt","elmprefix","elmsuffix","rowabove","rowcontent","rp","ftmplfld","idrow","rtlb","bP","bN","bSubmit","bCancel","tms","posInit","wkey","checkUpdates","bYes","bNo","bExit","zI","saveData","postIt","syncSavedData","fw","mdh","getFormData","compareData","nposret","npos","getCurrPos","fillData","updateNav","pposret","ppos","refreshEditForm","force","a2","ofv","cvr","crv","fmid","vlc","tre","opv","copydata","onCS","retvals","beforeCheckValues","tr_par_id","parent_id_field","errorTextFormat","closeAfterAdd","excacmp","useDataProxy","dataProxy","dpret","nObj","oObj","getOwnPropertyNames","posarr","totr","rowsInGrid","arr","a1","viewGridRow","labelswidth","frmgr_id","frmtb_id","maxw","setme","viewfld","tdtmpl","tdtmpl2","fmtnum","max1","max2","viewable","text-align","focusaref","viewselected","refreshViewForm","trv","delGridRow","rowids","delData","delicon","cancelicon","ajaxDelOptions","serializeDelData","postd","dtbl","dtbl_id","pk","eacg","navGrid","pEdit","pAdd","pDel","pSearch","pView","editicon","addicon","del","searchicon","refresh","refreshicon","refreshstate","view","viewicon","beforeRefresh","afterRefresh","cloneToTop","alertwidth","alertheight","alerttop","alertleft","alertzIndex","dropmenu","navButtonText","alert_info","alertcap","alerttext","onHoverIn","onHoverOut","tbd","elemids","navtbl","addtext","addtitle","addfunc","edittext","edittitle","editfunc","viewtext","viewtitle","viewfunc","deltext","deltitle","dr","delfunc","searchtext","searchfunc","refreshtext","refreshtitle","ef","ainfo","navOptions","editOptions","addOptions","delOptions","searchOptions","viewOptions","navButtons","navButtonAdd","buttonicon","onClickButton","internal","eid","findnav","navSeparatorAdd","sepclass","sepcontent","_buildNavMenu","mid","selectcaption","bid","GridToForm","formid","rowdata","FormToGrid","mode","fields","griddata","serializeArray","groupingInit","groupingSetup","cml","visibiltyOnNextGrouping","lastvalues","counters","hideFirstGroupCol","summaryType","summaryDivider","vd","summaryRound","srt","summaryRoundType","record","fieldName","displayValue","sumGroups","grlen","changed","displayName","dataIndex","startRow","isInTheSameGroup","groupingToggle","getGroupingLevelFromClass","nums","uid","itemGroupingLevel","showData","footLevel","strpos","num","minus","plus","tar","tarspan","collapsed","skip","tar2","r2","scrollh","onClickGroup","groupingRender","grdata","colspans","clid","pmrtl","toEnd","buildSummaryTd","ik","foffset","fstr","tmpdata","tplfld","fdata","isput","groupCount","groupIndex","groupValue","mul","sumreverse","egv","grpTextStr","kk","uv","hhdr","gg","sgr","end","groupingGroupBy","groupingRemove","grpViewInit","groupingCalculations","handler","roundType","funcs","avg","groupingResetCalcs","setColSpanHeader","thStyle","cghi","toolTip","cVisibleColumns","ths","$htable","$thead","$firstHeaderRow","numberOfHeadRows","savedLabel","_colspancell","destroyColSpanHeader","emptyColSpan","cellInd","setGroupHeaders","useColSpanStyle","$tr","$firstRow","rowspan","$trLabels","$focusElem","activeElement","$colHeader","$theadInTable","$parent","cssText","$ts","fe","destroyGroupHeader","nullHeader","$resizing","removeAttr","rs","isGroupHeaderOn","refreshGroupHeaders","saveState","useStorage","storageType","beforeSetItem","compression","compressionModule","compressionMethod","debug","_iN","_fT","exptype","ident","file","properties","File","Blob","URL","createObjectURL","setItem","code","loadState","gridstring","clearAfterLoad","beforeSetGrid","afterSetGrid","decompression","decompressionModule","decompressionMethod","restoreData","iN","fT","getItem","parseFunc","retfunc","expCol","isLeaf","leaf_field","srcElement","ind2","ExpandColClick","removeItem","isGridInStorage","setRegional","model","nav","savetitle","canceltitle","jqGridImport","imptype","impstring","impurl","impData","xmlGrid","config","jsonGrid","xmlConvert","jstr","jstr1","cnfg","xmldata","xmlToJSON","svdatatype","jsonConvert","jsonstr","gprm","json","jdata","xmld","complete","responseXML","importComplete","responseText","ee","jqGridExport","jsonToXML","xmlDecl","excelExport","tag","beforeExport","exporthidden","exportgrouping","exportOptions","pdata","newm","newm1","expg","location","inlineEdit","editRow","keys","oneditfunc","successfunc","extraparam","aftersavefunc","errorfunc","afterrestorefunc","keyevent","onEscape","restoreAfterError","saveui","savetext","bfer","svr","beforeAction","beforeEditRow","treeg","eer1","eer2","saveRow","tmp3","nullIfEmpty","positions","bfsr","beforeSaveRow","oldRowId","oldid","newCboxId","inlineData","serializeRowData","resp","resuly","sucret","rT","ajaxRowOptions","ares","bfcr","beforeCancelRow","addRow","rowID","initdata","useDefValues","useFormatter","addRowParams","bfar","beforeAddRow","icons","save","cancel","addParams","editParams","restoreAfterSelect","saveAfterSelect","ap","onEdit","onSuccess","afterSave","onError","afterRestore","tmpParams","canceltext","cancelPrm","showAddEditButtons","showSaveCancelButtons","_multiselect","_setSelected","elt","selectedList","element","destroy","container","Widget","widget","sortableColumns","tblrow","start","stop","sortable_opts","tolerance","axis","scrollSensitivity","placeholder","update","currentItem","cmMap","$e","dataObj","floating","columnChooser","colMap","fixedCols","getMultiselectWidgetData","widgetFullName","widgetName","classname","done","perm","msel","dlog","dialog_opts","minWidth","dialogClass","dlog_opts","apply_perm","cleanup","resize_select","ti","calldone","msel_opts","dividerLocation","margin","dopts","mopts","$dialogContent","multiselectData","selectedContainer","boxSizing","availableContainer","availableList","listHeight","widgetData","$thisDialogContent","selectedActions","availableActions","sortableRows","_start_","_update_","subgid","disableSelection","gridDnD","droppable","updateDnD","helper","connectWith","onstart","dropped","dragcopy","onstop","drag_opts","drop","accept","datatoinsert","getdata","keysd","dropbyname","ki","dropmodel","beforedrop","autoid","random","autoidprefix","droppos","ondrop","drop_opts","activeClass","hoverClass","revert","datadnd","gridResize","class_to_add","_alsoResize_","_stop_","assocArraySize","pivotSetup","pivotrows","summaries","member","labels","groupOptions","rowTotals","rowTotalsText","colTotals","frozenStaticCols","xlen","ylen","aggrlen","dn","colc","ar","fun","extra","TypeError","findGroup","rowindex","agregateFunc","aggr","jv","lbl","arrln","mainval","swapvals","_cntavg","tmpmember","swapstr","aggregator","_avg","_cnt","yDimension","dataName","converter","xDimension","aggregates","isGroupField","groupfields","tree","xValue","yValue","newObj","kj","existing","lastval","initColLen","swaplen","list","collen","l1","ll","plen","jqPivot","pivotOpt","gridOpt","ajaxOpt","pivot","onInitPivot","pivotGrid","onCompletePivot","loadMsg","response","setSubGrid","suboptions","openicon","expandOnLoad","selectOnExpand","selectOnCollapse","reloadOnExpand","onErrorLoadData","subGridOptions","icb","addSubGrid","_id","pID","atd","bfsc","$r","hsret","subGridCell","trdiv","tddiv","subGridXml","sjxml","sbid","sgmap","dummy","mapping","subGridJson","nhc","ishsg","isHasSubGrid","subGridBeforeExpand","subGridRowExpanded","populatesubgrid","dp","nd_","subgridtype","subGridUrl","serializeSubGridData","sxml","ajaxSubgridOptions","subGridRowColapsed","expandSubGridRow","sgc","collapseSubGridRow","toggleSubGridRow","setTreeNode","curLevel","lftpos","twrap","lf","icon_field","loaded","beforeSetTreeNode","dind","ldat","right_field","_treeleafpos","treeIcons","leaf","wrapInner","afterSetTreeNode","setTreeGrid","pico","tkey","ecol","dupcols","expandRow","$rootpages","childern","beforeExpandTreeGridRow","afterExpandTreeGridRow","collapseRow","beforeCollapseTreeGridRow","afterCollapseTreeGridRow","getRootNodes","parent_id","getNodeDepth","getNodeParent","lftc","rgtc","levelc","dtid","getNodeChildren","getFullTreeNode","expand","getNodeAncestors","ancestors","etn","isVisibleNode","isNodeLoaded","setLeaf","rc1","E","reloadNode","reloadcurrent","currselection","jqGridAfterSetTreeNode","chld","reloadnode","n_left","n_right","n_level","parentid","expandNode","beforeExpandTreeGridNode","afterExpandTreeGridNode","collapseNode","beforeCollapseTreeGridNode","afterCollapseTreeGridNode","SortTree","rec","roots","ord","sortTreeByNodeType","sortTreeNodeOrder","searchTree","recs","lid","alen","rlen","fnode","FullTreeSearchResult","collectChildrenSortTree","child","setTreeRow","delTreeNode","myright","delChildren","addChildNode","expandData","maxright","rowind","prow","parentlevel","parentdata","parentindex","childs","jqDrag","jqDnR","dnr","X","pX","pageY","pY","M1","E1","J","aR","f1","dpe","mouseup","dx","dy","os","closeoverlay","closeClass","ajaxText","onLoad","_jqm","jqmAddTrigger","jqmAddClose","hash","opacity","prependTo","substr","load","$self","isBoolean","isObject","isString","isNumber","isValue","formatType","rwd","bNegative","sOutput","sDecimalSeparator","decimalSeparator","decimalPlaces","nDecimalPlaces","nDotIndex","lastIndexOf","thousandsSeparator","sThousandsSeparator","sNewOutput","nCount","suffix","defaultFormat","checkbox","cval","lang","bchk","ds","checkboxVal","valueCheckbox","valtrue","valT","valfalse","valF","link","showlink","baseLinkUrl","showAction","addParam","idName","idUrl","currency","oSelect","scell","rowactions","restorerow","$actionsDiv","$id","$grid","actop","formatoptionsClone","actions","editbutton","delbutton","editformbutton","re","unformatFunc","stripTag","decodeValue","dragging","placeholders","isHandle","removeData","placeholderClass","dataTransfer","effectAllowed","setData","detach","dragDrop","dropEffect","isJSON","mixed","encode","attr_prefix","scalarToxml","arrayToxml","array","out","hashToxml","jattr","jelem","force_array","__force_array","addNode","cnts","parseElement","nodeType","nodeValue","retval","attributes","childNodes","textonly","ntype","saveAs","fname","msSaveOrOpenBlob","href","download","revokeObjectURL","csvToArray","arrMatches","objr","lines","objPattern","strMatchedDelimiter","strMatchedValue","etype","isExported","exporttype","formatCellCsv","_regexsep","separatorReplace","replaceNewLine","escquote","_regexquot","quote","qoute","excelCellPos","ordA","fromCharCode","makeNode","elemName","currNode","createTextNode","xmlToZip","zip","worksheet","ien","xmlserialiser","XMLSerializer","ieExcel","serializeToString","excelStrings","attrs","folder","attrValue","createAttribute","setAttributeNode","_rels/.rels","xl/_rels/workbook.xml.rels","[Content_Types].xml","xl/workbook.xml","xl/worksheets/sheet1.xml","xl/styles.xml","excelParsers","addExcelStyle","alignment","styleSh","numFmtId","fontId","fillId","borderId","applyFont","applyFill","applyBorder","xfId","applyNumberFormat","applyAlignment","horizontal","indent","textRotation","vertical","wrapText","excel_parsers","maxfmtid","mycell","formats","getElementsByTagName","celsX","fmnt","formatCode","numid","newExcelStyle","xlsx","color","patternType","fgColor","bgColor","sSh","xl","lastXfIndex","lastFontIndex","lastFillIndex","font1","bgcolor","color1","s1","exportToCsv","newLine","includeCaption","includeLabels","includeGroupHeader","includeFooter","includeHeader","fileName","mimetype","returnAsString","onBeforeExport","loadIndicator","data1","cmlen","clbl","cap","hdr","ftr","albl","htr","groupToCsv","retarr","_expcol","summaryTpl","hrows","def","exportcol","savlcgr","ghdata","frows","fc","hlen","il","exportToExcel","customizeData","replaceStr","ehf","es","rowPos","rels","relsGet","_rels",".rels","workbook.xml.rels","workbook.xml","styles.xml","worksheets","sheet1.xml","parser","mergecell","defaultHeaderStyle","excel_header_style","exportoptions","excel_format","excel_style","excel_header_format","replace_format","replace_header_format","dfooter","dfl","dil","_makeCellSpecial","_makeCellString","cellId","estyle","currentRow","rowNode","_replStr","skipfirstcol","strLinkHTML","oDiv","expo","jen","special","oNode","groupToExcel","emptyData","sheetName","mrow","nok","cpos","fk","colspan","colToSkip","ghputin","colInHeader","ref","icol","key2","hdata","ie","customWidth","JSZip","zipConfig","mimeType","generateAsync","blob","generate","exportToPdf","orientation","pageSize","description","centerTableOnPage","widths","groupToPdf","constructRow","colSpan","put_me","rowSpan","verticalAlign","tblcnt","headerRows","doc","pageOrientation","tableHeader","bold","fontSize","fillColor","tableBody","tableFooter","defaultStyle","pdf","pdfMake","createPdf","getDataUrl","getBuffer","buffer","exportToHtml","tableClass","autoPrint","topText","bottomText","_link","_relToAbs","linkHost","host","pathname","protocol","addBodyRow","colsp","stl","groupToHtml","retstr","fkey","win","head","outerHTML","img","chrome","print","focusableElementsList","ariaBodyGrid","onEnterCell","onKeyCheck","customCellAction","isValidCell","getNextCell","dirX","dirY","colCount","rowCount","isLeftRight","getNextVisibleCell","movePage","curpage","focusableElementsSelector","focusRow","blur","focusCol","custAct","navigationDisabled","ctrlKey","el1","tdhtml","excelLikeGrid","beforeDeleteCell","customUndoFunction","specialChars","addonChars","baseFunc","collimit","delCell","aKeys","paste_to_cell","addEventListener","paste","clipboardData","getData","ctrl","retDel","undofunc","isLetter","other","focusBodyCell","_s","_h","hasFocusableChild","resetAriaBody","removeEventListener","ariaHeaderGrid","onHeaderKeyCheck","htable","currindex","focusHeaderCell","resetAriaHeader","ariaPagerGrid","indexa","focusPagerCell","resetAriaPager","setAriaGrid","resetAriaGrid","transposeSetup","rowobj","baseindex","excludeSrcCols","nameprefix","labelprefix","jqTranspose","transpOpt","beforeCreateGrid","RowAsHeader","transpose","transpGrid","setupFrozenRows","saveFirstLastId","tvid","hgh","hth","htw","frowms","siblings","curX","find_index","frbDiv","frozenRowsPrm","destroyFrozenRows","deep","setFrozenRows","dbInit","dbtype","_initIndexedDB_","databases","onupgradeneeded","info","db","idcol","getIndexedDbData","skipCreate","await","fetch","secondconn","createObjectStore","keyPath","createIndex","objectStore1","put","objectStoreNames","oS","countRequest","objectStoreRequest","clear","updateStorageRecord","dbcfg","DBOpenRequest","abort","req2","openCursor","updateData","assign","continue","addStorageRecord","deleteStorageRecord","delete"],"mappings":"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"}js/grid.jqueryui.js000064400000053631151676727230010347 0ustar00/*jshint evil:true, eqeqeq:false, eqnull:true, devel:true */
/*global jQuery, define */
(function( factory ) {
	"use strict";
	if ( typeof define === "function" && define.amd ) {
		// AMD. Register as an anonymous module.
		define([
			"jquery",
			"./grid.base",
			"jquery-ui/dialog",
			"jquery-ui/draggable",
			"jquery-ui/droppable",
			"jquery-ui/resizable",
			"jquery-ui/sortable",
			"./addons/ui.multiselect"		
		], factory );
	} else {
		// Browser globals
		factory( jQuery );
	}
}(function( $ ) {/*
**
 * jqGrid addons using jQuery UI 
 * Author: Mark Williams
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl-2.0.html
 * depends on jQuery UI 
**/
"use strict";
//module begin
if ($.jgrid.msie() && $.jgrid.msiever()===8) {
	$.expr[":"].hidden = function(elem) {
		return elem.offsetWidth === 0 || elem.offsetHeight === 0 ||
			elem.style.display === "none";
	};
}
// requiere load multiselect before grid
$.jgrid._multiselect = false;
if($.ui) {
	if ($.ui.multiselect ) {
		if($.ui.multiselect.prototype._setSelected) {
			var setSelected = $.ui.multiselect.prototype._setSelected;
			$.ui.multiselect.prototype._setSelected = function(item,selected) {
				var ret = setSelected.call(this,item,selected);
				if (selected && this.selectedList) {
					var elt = this.element;
					this.selectedList.find('li').each(function() {
						if ($(this).data('optionLink')) {
							$(this).data('optionLink').remove().appendTo(elt);
						}
					});
				}
				return ret;
			};
		}
		if($.ui.multiselect.prototype.destroy) {
			$.ui.multiselect.prototype.destroy = function() {
				this.element.show();
				this.container.remove();
				if ($.Widget === undefined) {
					$.widget.prototype.destroy.apply(this, arguments);
				} else {
					$.Widget.prototype.destroy.apply(this, arguments);
				}
			};
		}
		$.jgrid._multiselect = true;
	}
}
        
$.jgrid.extend({
	sortableColumns : function (tblrow)
	{
		return this.each(function (){
			var ts = this, tid= $.jgrid.jqID( ts.p.id ), frozen = false;
			function start() {
				ts.p.disableClick = true;
				if(ts.p.frozenColumns) {
					$(ts).jqGrid("destroyFrozenColumns");
					frozen = true;
				}
			}
			function stop() { 
				setTimeout(function () { 
					ts.p.disableClick = false; 
					if(frozen) {
						$(ts).jqGrid("setFrozenColumns");
						frozen = false;
					}
				}, 50); 
			}
			var sortable_opts = {
				"tolerance" : "pointer",
				"axis" : "x",
				"scrollSensitivity": "1",
				"items": '>th:not(:has(#jqgh_'+tid+'_cb'+',#jqgh_'+tid+'_rn'+',#jqgh_'+tid+'_subgrid),:hidden)',
				"cancel": ".sortable-disabled",
				"placeholder": {
					element: function(item) {
						var el = $(document.createElement(item[0].nodeName))
						.addClass(item[0].className+" ui-sortable-placeholder ui-state-highlight")
						.removeClass("ui-sortable-helper")[0];
						return el;
					},
					update: function(self, p) {
						p.height(self.currentItem.innerHeight() - parseInt(self.currentItem.css('paddingTop')||0, 10) - parseInt(self.currentItem.css('paddingBottom')||0, 10));
						p.width(self.currentItem.innerWidth() - parseInt(self.currentItem.css('paddingLeft')||0, 10) - parseInt(self.currentItem.css('paddingRight')||0, 10));
					}
				},
				"update": function(event, ui) {
					var p = $(ui.item).parent(),
					th = $(">th", p),
					colModel = ts.p.colModel,
					cmMap = {}, tid= ts.p.id+"_";
					$.each(colModel, function(i) { cmMap[this.name]=i; });
					var permutation = [];
					th.each(function() {
						var id = $(">div", this).get(0).id.replace(/^jqgh_/, "").replace(tid,"");
							if (cmMap.hasOwnProperty(id)) {
								permutation.push(cmMap[id]);
							}
					});
	
					$(ts).jqGrid("remapColumns",permutation, true, true);
					if ($.jgrid.isFunction(ts.p.sortable.update)) {
						ts.p.sortable.update(permutation);
					}
				}
			};
			if (ts.p.sortable.options) {
				$.extend(sortable_opts, ts.p.sortable.options);
			} else if ($.jgrid.isFunction(ts.p.sortable)) {
				ts.p.sortable = { "update" : ts.p.sortable };
			}
			if (sortable_opts.start) {
				var s = sortable_opts.start;
				sortable_opts.start = function(e,ui) {
					start();
					s.call(this,e,ui);
				};
			} else {
				sortable_opts.start = start;
			}
			if (sortable_opts.stop) {
				var st = sortable_opts.stop;
				sortable_opts.stop = function(e,ui) {
					stop();
					st.call(this,e,ui);
				};
			} else {
				sortable_opts.stop = stop;
			}
			if (ts.p.sortable.exclude) {
				sortable_opts.items += ":not("+ts.p.sortable.exclude+")";
			}
			var $e = tblrow.sortable(sortable_opts), dataObj = $e.data("sortable") || $e.data("uiSortable");
			if (dataObj != null) {
				dataObj.data("sortable").floating = true;
			}
		});
	},
    columnChooser : function(opts) {
		var self = this, selector, select, colMap = {}, fixedCols = [], dopts, mopts, $dialogContent, multiselectData, listHeight,
			colModel = self.jqGrid("getGridParam", "colModel"),
			colNames = $.extend( [], self.jqGrid("getGridParam", "colNames")),
			getMultiselectWidgetData = function ($elem) {
				return ($.ui.multiselect.prototype && $elem.data($.ui.multiselect.prototype.widgetFullName || $.ui.multiselect.prototype.widgetName)) ||
					$elem.data("ui-multiselect") || $elem.data("multiselect");
			},
			regional =  $.jgrid.getRegional(this[0], 'col');

		if ($("#colchooser_" + $.jgrid.jqID(self[0].p.id)).length) { return; }
		selector = $('<div id="colchooser_'+self[0].p.id+'" style="position:relative;overflow:hidden"><div><select multiple="multiple"></select></div></div>');
		select = $('select', selector);
		function insert(perm,i,v) {
			var a, b;
			if(i>=0){
				a = perm.slice();
				b = a.splice(i,Math.max(perm.length-i,i));
				if(i>perm.length) { i = perm.length; }
				a[i] = v;
				return a.concat(b);
			}
			return perm;
		}
		function call(fn, obj) {
			if (!fn) { return; }
			if (typeof fn === 'string') {
				if ($.fn[fn]) {
					$.fn[fn].apply(obj, $.makeArray(arguments).slice(2));
				}
			} else if ($.jgrid.isFunction(fn)) {
				fn.apply(obj, $.makeArray(arguments).slice(2));
			}
		}
		function resize_select() {

			var widgetData = getMultiselectWidgetData(select),
			$thisDialogContent = widgetData.container.closest(".ui-dialog-content");
			if ($thisDialogContent.length > 0 && typeof $thisDialogContent[0].style === "object") {
				$thisDialogContent[0].style.width = "";
			} else {
				$thisDialogContent.css("width", ""); // or just remove width style
			}

			widgetData.selectedList.height(Math.max(widgetData.selectedContainer.height() - widgetData.selectedActions.outerHeight() -1, 1));
			widgetData.availableList.height(Math.max(widgetData.availableContainer.height() - widgetData.availableActions.outerHeight() -1, 1));
		}

		opts = $.extend({
			width : 400,
			height : 240,
			classname : null,
			groupHeaders : false,
			done : function(perm) { 
				if (perm) { 
					self.jqGrid("remapColumns", perm, true); 
				}
			},
			/* msel is either the name of a ui widget class that
			   extends a multiselect, or a function that supports
			   creating a multiselect object (with no argument,
			   or when passed an object), and destroying it (when
			   passed the string "destroy"). */
			msel : "multiselect",
			/* "msel_opts" : {}, */

			/* dlog is either the name of a ui widget class that 
			   behaves in a dialog-like way, or a function, that
			   supports creating a dialog (when passed dlog_opts)
			   or destroying a dialog (when passed the string
			   "destroy")
			   */
			dlog : "dialog",
			dialog_opts : {
				minWidth: 470,
				dialogClass: "ui-jqdialog"
			},
			/* dlog_opts is either an option object to be passed 
			   to "dlog", or (more likely) a function that creates
			   the options object.
			   The default produces a suitable options object for
			   ui.dialog */
			dlog_opts : function(options) {
				var buttons = {};
				buttons[options.bSubmit] = function() {
					options.apply_perm();
					options.cleanup(false);
				};
				buttons[options.bCancel] = function() {
					options.cleanup(true);
				};
				return $.extend(true, {
					buttons: buttons,
					close: function() {
						options.cleanup(true);
					},
					modal: options.modal || false,
					resizable: options.resizable || true,
					width: options.width + 70,
					resize: resize_select
				}, options.dialog_opts || {});
			},
			/* Function to get the permutation array, and pass it to the
			   "done" function */
			apply_perm : function() {
				var perm = [];
				$('option',select).each(function() {
					if ($(this).is(":selected")) {
						self.jqGrid("showCol", colModel[this.value].name);
					} else {
						self.jqGrid("hideCol", colModel[this.value].name);
					}
				});
				
				//fixedCols.slice(0);
				$('option[selected]',select).each(function() {
					if(this.selected) {
						perm.push(parseInt(this.value,10)); 
					}
				});
				$.each(perm, function() { 
					delete colMap[colModel[parseInt(this,10)].name]; 
				});
				$.each(colMap, function() {
					var ti = parseInt(this,10);
					perm = insert(perm,ti,ti);
				});
				if (opts.done) {
					opts.done.call(self, perm);
				}
				self.jqGrid("setGridWidth", self[0].p.width, self[0].p.shrinkToFit);
			},
			/* Function to cleanup the dialog, and select. Also calls the
			   done function with no permutation (to indicate that the
			   columnChooser was aborted */
			cleanup : function(calldone) {
				call(opts.dlog, selector, 'destroy');
				call(opts.msel, select, 'destroy');
				selector.remove();
				if (calldone && opts.done) {
					opts.done.call(self);
				}
			},
			msel_opts : {
				dividerLocation : 0.5
			}
		}, regional, opts || {} );
		if($.ui) {
			if ($.ui.multiselect && $.ui.multiselect.defaults) {
				if (!$.jgrid._multiselect) {
					// should be in language file
					alert("Multiselect plugin loaded after jqGrid. Please load the plugin before the jqGrid!");
					return;
				}
				// ??? the next line uses $.ui.multiselect.defaults which will be typically undefined
				opts.msel_opts = $.extend($.ui.multiselect.defaults, opts.msel_opts);
			}
		}
		if( self.jqGrid('isGroupHeaderOn') && opts.groupHeaders) {
			var gh_len = self[0].p.groupHeader.length,
			// use the last set one
			groupH = self[0].p.groupHeader[gh_len-1];
			
			for(var ij=0;ij<colNames.length; ij++){
				var iCol = $.jgrid.inColumnHeader( colModel[ij].name, groupH.groupHeaders);
				if(iCol>=0) {
					colNames[ij] = groupH.groupHeaders[iCol].titleText + "::" + colNames[ij];
					for(var jj= 1; jj<= groupH.groupHeaders[iCol].numberOfColumns-1; jj++) {
						colNames[ij+jj] = groupH.groupHeaders[iCol].titleText + "::" + colNames[ij+jj];
					}
					ij = ij+groupH.groupHeaders[iCol].numberOfColumns-1;
				}
			}
		}

		if (opts.caption) {
			selector.attr("title", opts.caption);
		}
		if (opts.classname) {
			selector.addClass(opts.classname);
			select.addClass(opts.classname);
		}
		if (opts.width) {
			$(">div",selector).css({width: opts.width,margin:"0 auto"});
			select.css("width", opts.width);
		}
		if (opts.height) {
			$(">div",selector).css("height", opts.height);
			select.css("height", opts.height - 10);
		}

		select.empty();
		$.each(colModel, function(i) {
			colMap[this.name] = i;
			if (this.hidedlg) {
				if (!this.hidden) {
					fixedCols.push(i);
				}
				return;
			}

			select.append("<option value='"+i+"' "+
						  (this.hidden?"":"selected='selected'")+">"+$.jgrid.stripHtml(colNames[i])+"</option>");
		});

		dopts = $.jgrid.isFunction(opts.dlog_opts) ? opts.dlog_opts.call(self, opts) : opts.dlog_opts;
		call(opts.dlog, selector, dopts);
		mopts = $.jgrid.isFunction(opts.msel_opts) ? opts.msel_opts.call(self, opts) : opts.msel_opts;
		call(opts.msel, select, mopts);

		// fix height of elements of the multiselect widget
		$dialogContent = $("#colchooser_" + $.jgrid.jqID(self[0].p.id));
		// fix fontsize
		var fs =  $('.ui-jqgrid').css('font-size') || '11px';
		$dialogContent.parent().css("font-size",fs);

		$dialogContent.css({ margin: "auto" });
		$dialogContent.find(">div").css({ width: "100%", height: "100%", margin: "auto" });

		multiselectData = getMultiselectWidgetData(select);
		multiselectData.container.css({ width: "100%", height: "100%", margin: "auto" });

		multiselectData.selectedContainer.css({ width: multiselectData.options.dividerLocation * 100 + "%", height: "100%", margin: "auto", boxSizing: "border-box" });
		multiselectData.availableContainer.css({ width: (100 - multiselectData.options.dividerLocation * 100) + "%", height: "100%", margin: "auto", boxSizing: "border-box" });

		// set height for both selectedList and availableList
		multiselectData.selectedList.css("height", "auto");
		multiselectData.availableList.css("height", "auto");
		listHeight = Math.max(multiselectData.selectedList.height(), multiselectData.availableList.height());
		listHeight = Math.min(listHeight, $(window).height());
		multiselectData.selectedList.css("height", listHeight);
		multiselectData.availableList.css("height", listHeight);
		
		resize_select();
	},
	sortableRows : function (opts) {
		// Can accept all sortable options and events
		return this.each(function(){
			var $t = this;
			if(!$t.grid) { return; }
			// Currently we disable a treeGrid sortable
			if($t.p.treeGrid) { return; }
			if($.fn.sortable) {
				opts = $.extend({
					"cursor":"move",
					"axis" : "y",
					"items": " > .jqgrow"
					},
				opts || {});
				if(opts.start && $.jgrid.isFunction(opts.start)) {
					opts._start_ = opts.start;
					delete opts.start;
				} else {opts._start_=false;}
				if(opts.update && $.jgrid.isFunction(opts.update)) {
					opts._update_ = opts.update;
					delete opts.update;
				} else {opts._update_ = false;}
				opts.start = function(ev,ui) {
					$(ui.item).css("border-width","0");
					$("td",ui.item).each(function(i){
						this.style.width = $t.grid.cols[i].style.width;
					});
					if($t.p.subGrid) {
						var subgid = $(ui.item).attr("id");
						try {
							$($t).jqGrid('collapseSubGridRow',subgid);
						} catch (e) {}
					}
					if(opts._start_) {
						opts._start_.apply(this,[ev,ui]);
					}
				};
				opts.update = function (ev,ui) {
					$(ui.item).css("border-width","");
					if($t.p.rownumbers === true) {
						$("td.jqgrid-rownum",$t.rows).each(function( i ){
							$(this).html( i+1+(parseInt($t.p.page,10)-1)*parseInt($t.p.rowNum,10) );
						});
					}
					if(opts._update_) {
						opts._update_.apply(this,[ev,ui]);
					}
				};
				$($t).find("tbody").first().sortable(opts);
				$("tbody",$t).first().find(" > .jqgrow").disableSelection();
			}
		});
	},
	gridDnD : function(opts) {
		return this.each(function(){
		var $t = this, i, cn;
		if(!$t.grid) { return; }
		// Currently we disable a treeGrid drag and drop
		if($t.p.treeGrid) { return; }
		if(!$.fn.draggable || !$.fn.droppable) { return; }
		function updateDnD ()
		{
			var datadnd = $.data($t,"dnd");
			$("tr.jqgrow:not(.ui-draggable)",$t).draggable($.jgrid.isFunction(datadnd.drag) ? datadnd.drag.call($($t),datadnd) : datadnd.drag);
		}
		var appender = "<table id='jqgrid_dnd' class='ui-jqgrid-dnd'></table>";
		if($("#jqgrid_dnd")[0] === undefined) {
			$('body').append(appender);
		}

		if(typeof opts === 'string' && opts === 'updateDnD' && $t.p.jqgdnd===true) {
			updateDnD();
			return;
		}
		var tid;
		opts = $.extend({
			"drag" : function (opts) {
				return $.extend({
					start : function (ev, ui) {
						var i, subgid;
						// if we are in subgrid mode try to collapse the node
						if($t.p.subGrid) {
							subgid = $(ui.helper).attr("id");
							try {
								$($t).jqGrid('collapseSubGridRow',subgid);
							} catch (e) {}
						}
						// hack
						// drag and drop does not insert tr in table, when the table has no rows
						// we try to insert new empty row on the target(s)
						for (i=0;i<$.data($t,"dnd").connectWith.length;i++){
							if($($.data($t,"dnd").connectWith[i]).jqGrid('getGridParam','reccount') === 0 ){
								$($.data($t,"dnd").connectWith[i]).jqGrid('addRowData','jqg_empty_row',{});
							}
						}
						ui.helper.addClass("ui-state-highlight");
						$("td",ui.helper).each(function(i) {
							this.style.width = $t.grid.headers[i].width+"px";
						});
						if(opts.onstart && $.jgrid.isFunction(opts.onstart) ) { opts.onstart.call($($t),ev,ui); }
					},
					stop :function(ev,ui) {
						var i, ids;
						if(ui.helper.dropped && !opts.dragcopy) {
							ids = $(ui.helper).attr("id");
							if(ids === undefined) { ids = $(this).attr("id"); }
							$($t).jqGrid('delRowData',ids );
						}
						// if we have a empty row inserted from start event try to delete it
						for (i=0;i<$.data($t,"dnd").connectWith.length;i++){
							$($.data($t,"dnd").connectWith[i]).jqGrid('delRowData','jqg_empty_row');
						}
						if(opts.onstop && $.jgrid.isFunction(opts.onstop) ) { opts.onstop.call($($t),ev,ui); }
					}
				},opts.drag_opts || {});
			},
			"drop" : function (opts) {
				return $.extend({
					accept: function(d) {
						if (!$(d).hasClass('jqgrow')) { return d;}
						tid = $(d).closest("table.ui-jqgrid-btable");
						var target = $(this).find('table.ui-jqgrid-btable').first()[0];
						if(tid.length > 0 && $.data(tid[0],"dnd") !== undefined) {
							var cn = $.data(tid[0],"dnd").connectWith;
							return $.inArray('#'+$.jgrid.jqID(target.id),cn) !== -1 ? true : false;
						}
						return false;
					},
					drop: function(ev, ui) {
						if (!$(ui.draggable).hasClass('jqgrow')) { 
							return; 
						}
						var accept = $(ui.draggable).attr("id"),
							getdata = ui.draggable.parent().parent().jqGrid('getRowData',accept),
							keysd = [],
							target = $(this).find('table.ui-jqgrid-btable').first()[0];					
							if($.isPlainObject( getdata)) {
								keysd = Object.keys(getdata);
							}
						if(!opts.dropbyname) {
							var j, tmpdata = {}, nm, ki=0;
							var dropmodel = $("#"+$.jgrid.jqID(target.id)).jqGrid('getGridParam','colModel');
							try {
								for(j=0;j<dropmodel.length;j++) {
									nm = dropmodel[j].name;
									if( !(nm === 'cb' || nm === 'rn' || nm === 'subgrid' || nm === 'sc' )) {
										if (keysd[ki] !== undefined) {
											tmpdata[nm] = getdata[keysd[ki]];
										}
										ki++;
									}
								}
								getdata = tmpdata;
							} catch (e) {}
						}
						ui.helper.dropped = true;
						if($.data(tid[0],"dnd").beforedrop && $.jgrid.isFunction($.data(tid[0],"dnd").beforedrop) ) {
							//parameters to this callback - event, element, data to be inserted, sender, reciever
							// should return object which will be inserted into the reciever
							var datatoinsert = $.data(tid[0],"dnd").beforedrop.call(target,ev,ui,getdata,$(tid[0]),$(target));
							if (datatoinsert !== undefined && datatoinsert !== null && typeof datatoinsert === "object") { getdata = datatoinsert; }
						}
						if(ui.helper.dropped) {
							var grid;
							if(opts.autoid) {
								if($.jgrid.isFunction(opts.autoid)) {
									grid = opts.autoid.call(target,getdata);
								} else {
									grid = Math.ceil(Math.random()*1000);
									grid = opts.autoidprefix+grid;
								}
							}
							// NULL is interpreted as undefined while null as object
							$("#"+$.jgrid.jqID(target.id)).jqGrid('addRowData',grid,getdata,opts.droppos);
						}
						if(opts.ondrop && $.jgrid.isFunction(opts.ondrop) ) { opts.ondrop.call(target,ev,ui, getdata); }
					}}, opts.drop_opts || {});
			},
			"onstart" : null,
			"onstop" : null,
			"beforedrop": null,
			"ondrop" : null,
			"drop_opts" : {
				"activeClass": "ui-state-active",
				"hoverClass": "ui-state-hover",
				"tolerance": "intersect"
			},
			"drag_opts" : {
				"revert": "invalid",
				"helper": "clone",
				"cursor": "move",
				"appendTo" : "#jqgrid_dnd",
				"zIndex": 5000
			},
			"dragcopy": false,
			"dropbyname" : false,
			"droppos" : "first",
			"autoid" : true,
			"autoidprefix" : "dnd_"
		}, opts || {});
		
		if(!opts.connectWith) { return; }
		opts.connectWith = opts.connectWith.split(",");
		opts.connectWith = $.map(opts.connectWith,function(n){return $.jgrid.trim(n);});
		$.data($t,"dnd",opts);
		
		if($t.p.reccount !== 0 && !$t.p.jqgdnd) {
			updateDnD();
		}
		$t.p.jqgdnd = true;
		for (i=0;i<opts.connectWith.length;i++){
			cn =opts.connectWith[i];
			$(cn).closest('.ui-jqgrid-bdiv').droppable($.jgrid.isFunction(opts.drop) ? opts.drop.call($($t),opts) : opts.drop);
		}
		});
	},
	gridResize : function(opts) {
		return this.each(function(){
			var $t = this, gID = $.jgrid.jqID($t.p.id), req;
			if(!$t.grid || !$.fn.resizable) { return; }
			opts = $.extend(
				{}, 
				{ resizeclass : "ui-resizable-icon" },
				opts || {}
			);
			if(opts.alsoResize ) {
				opts._alsoResize_ = opts.alsoResize;
				delete opts.alsoResize;
			} else {
				opts._alsoResize_ = false;
			}
			if(opts.stop && $.jgrid.isFunction(opts.stop)) {
				opts._stop_ = opts.stop;
				delete opts.stop;
			} else {
				opts._stop_ = false;
			}
			var class_to_add = opts.resizeclass;
			if($t.p.styleUI !== "jQueryUI") {
				if(opts.handles) {
					if(opts.handles.se) {
						class_to_add += " " +opts.handles.se.replace(".","");
					} else {
						opts.handles.se = "."+class_to_add;
					}
				} else {
					opts.handles = {};
					var test = class_to_add.split(' ');
					opts.handles.se = "."+test[0];
				}
				class_to_add += " ui-resizable-se ui-resizable-handle";
			
				$("#gbox_"+gID).append('<span class="'+class_to_add+'"></span>');
			}
			opts.stop = function (ev, ui) {
				$($t).jqGrid('setGridParam',{height:$("#gview_"+gID+" .ui-jqgrid-bdiv").height()});
				$($t).jqGrid('setGridWidth',ui.size.width,opts.shrinkToFit);
				if(opts._stop_) { opts._stop_.call($t,ev,ui); }
				if($t.p.caption) {
					$("#gbox_"+ gID).css({ 'height': 'auto' });
				}
				if($t.p.frozenColumns) {
					if (req ) clearTimeout(req);
					req = setTimeout(function(){
						if (req ) clearTimeout(req);
						$("#" + gID).jqGrid("destroyFrozenColumns");
						$("#" + gID).jqGrid("setFrozenColumns");
					});
				}
			};
			if(opts._alsoResize_) {
				opts.alsoResize = "#gview_"+gID+" .ui-jqgrid-bdiv,"+opts._alsoResize_ ;
			} else {
				opts.alsoResize = $(".ui-jqgrid-bdiv","#gview_"+gID);
			}
			delete opts._alsoResize_;
			$("#gbox_"+gID).resizable(opts);
		});
	}
});
//module end
}));
css/ui.jqgrid-bootstrap5.css000064400000063721151676727230012073 0ustar00/*Grid*/
:root {
	--tbl-brd-color: #ddd;
}
.ui-jqgrid {
	position: relative; 
	border: 1px solid var(--tbl-brd-color, #ddd);      /*default*/
	-webkit-border-radius: 3px;
	-moz-border-radius: 3px;
	border-radius: 3px;
	line-height:  normal; /*calc(2px + 1rem + 2px); */
}
.ui-jqgrid .ui-jqgrid-view {
	position: relative;
	left:0; 
	top: 0; 
	padding: 0;
}
.ui-jqgrid .ui-common-table {}

/* Caption*/
.ui-jqgrid .ui-jqgrid-titlebar {
	font-weight: normal;
	min-height:37px; 
	padding: 4px 8px; 
	position: relative; 
	margin-right: 2px;
	border-bottom: 1px solid var(--tbl-brd-color, #ddd); /* #ddd default*/

}
.ui-jqgrid .ui-jqgrid-caption {
	text-align: left;
    background-color: var(--bs-body-bg, #fff);
}
.ui-jqgrid .ui-jqgrid-title { 
	/*padding-top: .475rem; */
	vertical-align: middle;
	line-height: 28px;
}
.ui-jqgrid .ui-jqgrid-titlebar-close { 
	/*
	color: inherit; 
	position: absolute;
	top: 50%;
	margin: -10px 7px 0 0; 
	padding: 1px;
	width : 30px;
	cursor:pointer;
 */
	display: block;
	margin: 0px 0px;
	float: right;
	text-decoration: none;
	color: inherit;
	padding: 0px 5px;
}
.ui-jqgrid .ui-jqgrid-titlebar-close span { 
	display: block; 
	margin: 1px; 
}
.ui-jqgrid .ui-jqgrid-titlebar-close:hover {  
	background-color: var(--tbl-brd-color, #ddd); /*#ddd*/
	opacity: 1.5;
}

/* Header*/
.ui-jqgrid .ui-jqgrid-hdiv {
	position: relative; 
	margin: 0;
	padding: 0; 
	overflow: hidden;
}
.ui-jqgrid .ui-jqgrid-hbox {
	float: left; 
	padding-right: 20px;
}
.ui-jqgrid .ui-jqgrid-htable { 
	margin-bottom: 0; 
	table-layout: fixed; 
	/*border-top: 0 none !important;*/
}
.ui-jqgrid .ui-jqgrid-htable thead th {
	overflow : hidden; 
	/*border-bottom : 0 none;
	border-top: 0 none;*/
	padding-right: 2px;
}
.ui-jqgrid .ui-jqgrid-htable thead th div {
	overflow: hidden; 
	position:relative;
}
.ui-th-column, .ui-jqgrid .ui-jqgrid-htable th.ui-th-column {
	overflow: hidden;
	white-space: nowrap;
}
.ui-th-column-header, 
.ui-jqgrid .ui-jqgrid-htable th.ui-th-column-header {
	overflow: hidden;
	white-space: nowrap;
}
.ui-th-ltr, .ui-jqgrid .ui-jqgrid-htable th.ui-th-ltr {}
.ui-th-rtl, .ui-jqgrid .ui-jqgrid-htable th.ui-th-rtl {text-align: center; }
.ui-first-th-ltr { }
.ui-first-th-rtl { 
	
}
.ui-jqgrid tr.jqg-first-row-header th {
	height:auto; 
	border-top:none; 
	padding-bottom: 0;
	padding-top: 0;
	border-bottom: none; 
	border-left: none;
	padding-right: 2px;
	
	/*text-align: center;*/
}
.ui-jqgrid tr.jqg-first-row-header {
	border-top: 0 none;
	border-bottom: 0 none;
}
.ui-jqgrid tr.jqg-second-row-header th
/*.ui-jqgrid tr.jqg-third-row-header th*/
{
	/*border-top:none;*/
	text-align: center;
}
.ui-jqgrid tr.jqg-third-row-header th
{
	/*border-top: 1px solid #dee2e6;*/
}
.ui-jqgrid .ui-th-div-ie {
	white-space: nowrap; 
	/*height:17px;*/
}
.ui-jqgrid .ui-jqgrid-resize {
	height:20px !important;
	position: relative; 
	cursor :e-resize;
	display: inline;
	overflow: hidden;
}
.ui-jqgrid .ui-grid-ico-sort { 
	margin-left:5px; 
	overflow:hidden;
	position:absolute;
	right: auto;
}
.ui-jqgrid .ui-icon-asc {
	margin-top:-2px;
}
.ui-jqgrid .ui-icon-desc {
	margin-top:6px;
}
.ui-jqgrid .ui-i-asc {
	margin-top:2px;
}
.ui-jqgrid .ui-i-desc {
	margin-top:2px;
	margin-left:15px;
}
.ui-jqgrid .ui-single-sort-asc {
	margin-top:0;
}
.ui-jqgrid .ui-single-sort-desc {}
.ui-jqgrid .ui-jqgrid-sortable {
	cursor:pointer;
}
.ui-jqgrid tr.ui-search-toolbar {
	border-bottom-color: var(--tbl-brd-color, #ddd);
	
}
.ui-jqgrid tr.ui-search-toolbar th {
	padding:  0.45rem;
	border-top: 1px solid #dee2e6;
}
.ui-jqgrid .ui-search-table td.ui-search-clear 
{
	font-size: inherit;
}
.ui-jqgrid tr.ui-search-toolbar td input { 
	font-size: inherit;
	padding: 3px 0;
}
.ui-jqgrid tr.ui-search-toolbar select {
	font-size: inherit;
	padding: 3px 0;
}
.ui-jqgrid .ui-th-column > .ui-th-div  {
	padding-left: 7px;
}
.ui-jqgrid th.ui-th-column.jqgrid-multibox > .ui-th-div  {
	padding-left: 0px;
}

.ui-jqgrid .ui-icon-left .ui-grid-ico-sort {
	margin-left: -9px;
}
.ui-jqgrid .ui-jqgrid-htable tr.ui-jqgrid-labels 
{
	border-top-width: 0px;
	border-bottom-color: var(--tbl-brd-color, #ddd);
}
.ui-jqgrid .ui-jqgrid-htable tr.ui-jqgrid-labels:last-child th {
	padding-top: 8px; 
	padding-bottom: 8px; 
}

/* Body */ 
.ui-jqgrid .table-bordered,
.ui-jqgrid .table-bordered td,
.ui-jqgrid .table-bordered th.ui-th-ltr
{
	border-left:0px none !important;
}
.ui-jqgrid .table-bordered th.ui-th-rtl
{
	border-right:0px none !important;
	border-left-color: var(--tbl-brd-color, #ddd);
}
.ui-jqgrid .table-bordered tr.ui-row-rtl td
{
	border-right:0px none !important;
	border-left: 1px solid var(--tbl-brd-color, #ddd) !important;
}
div.tablediv > .table-bordered {
	border-left : 1px solid var(--tbl-brd-color, #ddd) !important;
}
.ui-jqgrid .ui-jqgrid-bdiv table.table-bordered td {
	border-top: 0px none;
}

.ui-subgrid .ui-jqgrid .ui-pager-control .ui-pager-table td {
	border-top: 0px none;
	border-right: 0px none;
	border-bottom: 0 none;
}

.ui-jqgrid .ui-jqgrid-bdiv {
	position: relative; 
	margin: 0; 
	padding:0; 
	overflow: auto; 
	text-align:left; 
}
.ui-jqgrid .ui-jqgrid-btable {
	table-layout: fixed; 
	border-left:none ; 
	/*border-top:none; */
	margin-bottom: 0px
}
.ui-jqgrid tr.jqgrow {  
	outline-style: none; 
}
.ui-jqgrid tr.jqgroup {  
	outline-style: none; 
}
.ui-jqgrid .ui-jqgrid-btable tbody tr.jqgrow td { 
	overflow: hidden; 
	white-space: pre; 
	padding-right: 2px;
}
.ui-jqgrid tr.jqgfirstrow {
	border-top-width: 0px; 
}
.ui-jqgrid tr.jqgfirstrow  td {
	height:auto; 
	border-top:none; 
	padding-bottom: 0;
	padding-top: 0;
	border-bottom: none; 
	padding-right: 2px;
}
.ui-jqgrid tr.jqgroup td { 
	white-space: nowrap;
}
.ui-jqgrid tr.jqfoot td {
	white-space: nowrap;
	padding-right: 2px;
}
.ui-jqgrid tr.ui-row-ltr td {}
.ui-jqgrid tr.ui-row-rtl td {}
.ui-jqgrid td.jqgrid-rownum {
	padding-left: 3px;
	padding-right: 3px !important;
}
.ui-jqgrid .ui-jqgrid-resize-mark { 
	width:2px; 
	left:0; 
	background-color:#777; 
	cursor: e-resize; 
	cursor: col-resize; 
	position:absolute; 
	top:0; 
	height:100px; 
	overflow:hidden; 
	display:none; 
	border:0 none; 
	z-index: 99999;

}
/* Footer, Header row*/
.ui-jqgrid .ui-jqgrid-hrdiv,
.ui-jqgrid .ui-jqgrid-sdiv {
	position: relative; 
	margin: 0;
	padding: 0; 
	overflow: hidden; 
	border-left: 0 none !important; 
	border-top : 0 none !important; 
	border-right : 0 none !important;
}
.ui-jqgrid .ui-jqgrid-hrtable,
.ui-jqgrid .ui-jqgrid-ftable {
	table-layout:fixed;
	margin-bottom:0 !important;
	/*border: 0 none;	*/
}
.ui-jqgrid tr.hrheadrow td,
.ui-jqgrid tr.footrow td {
	font-weight: bold; 
	overflow: hidden; 
	white-space:nowrap; 
	padding-right: 2px;
}
.ui-jqgrid tr.footrow td { 
	border-bottom: 0px none;
	border-color: var(--tbl-brd-color, #ddd);      /*default*/	
}
.ui-jqgrid tr.footrow { 
	border-color: var(--tbl-brd-color, #ddd);      /*default*/	
	border-bottom: 0px none;
}

.ui-jqgrid tr.hrheadrow td {
	border-top: 0px none var(--tbl-brd-color, #ddd);
}
.ui-jqgrid tr.hrheadrow-ltr td,
.ui-jqgrid tr.footrow-ltr td {
	text-align:left;
}
.ui-jqgrid tr.hrheadrow-rtl td,
.ui-jqgrid tr.footrow-rtl td {
	text-align:right;
}

/* Pager*/
.ui-jqgrid .ui-jqgrid-pager,
.ui-jqgrid .ui-jqgrid-toppager
{ 
	border-left-width: 0px;
	border-top: 1px solid var(--tbl-brd-color, #ddd);  
	/*padding : 4px 0px;*/
	position: relative; 
	/*height: auto; */
	white-space: nowrap;
	overflow: hidden;
}
.ui-jqgrid .ui-jqgrid-toppager {
	border-top-width :0;
	border-bottom : 1px solid var(--tbl-brd-color, #ddd);
}
.ui-jqgrid .ui-jqgrid-toppager .ui-pager-control, 
.ui-jqgrid .ui-jqgrid-pager .ui-pager-control {
	position: relative;
	border-left: 0;
	border-bottom: 0;
	border-top: 0; 
	/*height: 30px;*/
}
.ui-jqgrid .ui-pg-table {
	position: relative; 
	padding: 1px 0; 
	width:auto; 
	margin: 0;
}
.ui-jqgrid .ui-pg-table td {
	font-weight:normal; 
	vertical-align:middle; 
	/*padding:0px 6px;*/
}
.ui-jqgrid .ui-pager-control .ui-pager-table td {
	border-top : 0px none !important;
	min-height : 20px !important;
	border-bottom: 0px none;
}

.ui-jqgrid .ui-pg-button  { 
	height:auto; 
}
.ui-jqgrid  .ui-paging-pager td {
	padding : 0 5px;
}
.ui-jqgrid .ui-pg-button span { 
	display: block; 
	margin: 0px 3px; 
	float:left;
}
.ui-pager-control > .ui-pg-table > tbody > tr > td {
	padding : 0.375rem  0.375rem;
}
.ui-jqgrid .ui-pg-button:hover {  }
.ui-jqgrid .ui-disabled:hover {}
.ui-jqgrid .ui-pg-input,
.ui-jqgrid .ui-jqgrid-toppager .ui-pg-input { 
	display: inline-block;
	height:auto;
	width: 50px;
	font-size: inherit; 
	margin:0;
	line-height: inherit;
	/*border: none; */
	padding: 3px 3px
}
.ui-jqgrid .ui-pg-selbox, 
.ui-jqgrid .ui-jqgrid-toppager .ui-pg-selbox {
	font-size: inherit; 
	line-height:inherit; 
	display:block; 
	margin: 0;
	width : 55px;
	padding: 3px 25px 3px 3px; 
	border:2px 2px solid #ccc;
}
.ui-jqgrid .ui-separator {
	height: 16px; 
	border : none;
	border-left: 2px solid #ccc ; /*default*/
	
}
.ui-separator-li {
	height: 2px; 
	border : none;
	border-top: 2px solid #ccc ;  /*default*/
	margin: 0; padding: 0; width:100%
}
.ui-jqgrid .ui-jqgrid-pager .ui-pg-div,
.ui-jqgrid .ui-jqgrid-toppager .ui-pg-div
{
	float:left;
	position:relative; 
}
.ui-jqgrid .ui-jqgrid-pager .ui-pg-button,
.ui-jqgrid .ui-jqgrid-toppager .ui-pg-button
{ 
	cursor:pointer; 
}
.ui-jqgrid .ui-jqgrid-pager .ui-pg-div  span,
.ui-jqgrid .ui-jqgrid-toppager .ui-pg-div  span
{
	float:left;
}
.ui-jqgrid td input, 
.ui-jqgrid td select, 
.ui-jqgrid td textarea { 
	margin: 0;
}
.ui-jqgrid td textarea {
	width:auto;
	height:auto;
}
.ui-jqgrid .ui-jqgrid-pager .ui-pager-table,
.ui-jqgrid .ui-jqgrid-toppager .ui-pager-table
{
	width:100%;
	table-layout:fixed;
	height:100%;
}
.ui-jqgrid .ui-jqgrid-pager .ui-paging-info,
.ui-jqgrid .ui-jqgrid-toppager .ui-paging-info
{ 
	font-weight: normal;
	height:auto; 
	margin-top:3px;
	margin-right:4px;
	display: inline;
}
.ui-jqgrid .ui-jqgrid-pager .ui-paging-pager,
.ui-jqgrid .ui-jqgrid-toppager .ui-paging-pager
{
	table-layout:auto;
	height:100%;
}
.ui-jqgrid .ui-jqgrid-pager .navtable,
.ui-jqgrid .ui-jqgrid-toppager .navtable
{
	float:left;
	table-layout:auto;
	height:100%;
}
.ui-jqgrid .ui-jqgrid-pager .navtable td,
.ui-jqgrid .ui-jqgrid-toppager .navtable td 
{ 
	padding : 0 5px;
	overflow: hidden;
}

/*Subgrid*/
.ui-jqgrid .ui-jqgrid-btable .ui-sgcollapsed {
	height: 100%;
	padding: 0 0;
	padding-right: 0px !important;
	vertical-align: middle;
}

.ui-jqgrid .ui-sgcollapsed a.ui-sghref span {
    display: table-cell;
    text-align:center;
    vertical-align: middle;
}
/*octicons fix*/
.ui-jqgrid .ui-sgcollapsed a.ui-sghref span.octicon {
	padding-left: 7px;
}

.ui-jqgrid .ui-jqgrid-btable .ui-sgcollapsed span {
	display: block;
}
.ui-jqgrid .ui-subgrid {
	margin:0;
	padding:0; 
	width:100%;
}
.ui-jqgrid .ui-subgrid table {
	table-layout: fixed;
}
.ui-jqgrid .ui-subgrid tr.ui-subtblcell td {}
.ui-jqgrid .ui-subgrid td.subgrid-data {
	border-top:  0 none !important;
}
.ui-jqgrid .ui-subgrid td.subgrid-cell { 
	vertical-align: middle
}
.ui-jqgrid a.ui-sghref {
	text-decoration: none;
	color : #010101; /*default*/
	display: table;
    position: relative;
    height: 100%;
    width: 100%;
}
.ui-jqgrid .ui-th-subgrid {height:20px;}
.tablediv > .row { margin: 0 0}

/*Table striped fix 
.ui-jqgrid-view .table-striped tbody tr:nth-of-type(2n+1)
{
    background-color: inherit;
}
.ui-jqgrid-view .table-striped > tbody > tr:nth-child(odd) > td,
.ui-jqgrid-view .table-striped > tbody > tr:nth-child(odd) > th {
  background-color: rgba(0,0,0,.05);
}
*/

/* loading */
.ui-jqgrid .loading,
.loading_pivot {
	position: absolute; 
	top: 45%;
	left: 45%;
	width: auto;
	z-index:101;
	padding: 6px; 
	margin: 5px;
	text-align: center;
	display: none;
	border: 1px solid var(--tbl-brd-color, #ddd);  /*default*/
	font-size: 14px;
	background-color: #d9edf7;
}
.ui-jqgrid .jqgrid-overlay { 
	display:none;
	z-index:100;
}
/* IE * html .jqgrid-overlay {width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');} */
* .jqgrid-overlay iframe {
	position:absolute;
	top:0;
	left:0;
	z-index:-1;
}
/* IE width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}*/
/* end loading div */

/* Toolbar */
.ui-jqgrid .ui-userdata {
	padding: 4px 0px; 
	overflow: hidden; 
	min-height: 32px; 
}
.ui-jqgrid .ui-userdata-top {
	border-left-width: 0px;    /*default*/
	border-bottom: 1px solid var(--tbl-brd-color, #ddd);	
}
.ui-jqgrid .ui-userdata-bottom {
	border-left-width: 0px;    /*default*/
	border-top: 1px solid var(--tbl-brd-color, #ddd);	
}
/*Modal Window */
.ui-jqdialog.modal-content { 
	display: none; 
	position: absolute; 
}
.ui-jqdialog { 
	display: none; 
	width: 500px; 
	position: absolute; 
	/*padding: 5px; */
	overflow:visible;
	background-color:#fff;
	border: 1px solid var(--tbl-brd-color, #ddd);
	box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px;
	
}
.ui-jqdialog .ui-jqdialog-titlebar {
	padding: 0em 0em; 
	/*min-height: 38px; */
	border-bottom: 1px solid var(--tbl-brd-color, #ddd)
}
.ui-jqdialog .ui-jqdialog-title { 
	margin: .3em 0 .4em;  
	font-weight: bold;
	padding-left :6px;
	padding-right:6px;
	padding-top:6px;
} 
.ui-jqdialog .ui-jqdialog-titlebar-close { 
	position: absolute;  
	top: 0%; 
	margin: 0px -7px 0 0; 
	padding: 8px;  
	cursor:pointer;
	color :inherit;
}

.ui-jqdialog .ui-jqdialog-titlebar-close span {  }
.ui-jqdialog .ui-jqdialog-titlebar-close:hover, 
.ui-jqdialog .ui-jqdialog-titlebar-close:focus 
{ 
	padding: 8px; 
}
.ui-jqdialog-content, .ui-jqdialog .ui-jqdialog-content { 
	border: 0; 
	padding: .3em .2em; 
	background: none; 
	height:auto;
}
.ui-jqdialog-content .ui-search-table td, .ui-jqdialog-content .ui-search-table th  {
    border-width:  0px;
    border-style: none;
}
[id^=alertmod] .ui-jqdialog-content div {
	text-align: center;
	margin: 10px 5px;
}
[id^=delmod] .ui-jqdialog-content div {
	text-align: center;
	margin: 10px 5px 0 5px;

}
.ui-jqdialog .ui-jqconfirm {
	padding: .4em 1em; 
	border-width:3px;
	position:absolute;
	bottom:10px;
	right:10px;
	overflow:visible;
	display:none;
	height:120px;
	width:220px;
	text-align:center;
	background-color: #fff;
	border-radius: 4px;
	-webkit-border-radius: 4px;
	-moz-border-radius: 4px;
}
.ui-jqdialog>.ui-resizable-se { }
.ui-jqgrid>.ui-resizable-se { }
.jqgrid-overlay-modal {
	display : none;
}
/* end Modal window*/
/* Form edit */
.ui-jqdialog-content .FormGrid { 
	margin: 0 8px 0 8px; 
	overflow:auto;
	position:relative;
}
.ui-jqdialog-content .EditTable { 
	width: 100%; 
	margin-bottom:0; 
}
.ui-jqdialog-content .DelTable { 
	width: 100%; 
	margin-bottom:0;
}
.EditTable td input, 
.EditTable td select, 
.EditTable td textarea { 
	width: 100%;
	display: inline-block;
}
.EditTable td textarea { 
	width:auto; 
	height:auto;
}
.EditTable .FormData td { 
	height:37px !important;
}
.ui-jqdialog-content td.EditButton {
	text-align: right; 
	padding: 3px 1px 3px 0;
}
.ui-jqdialog-content td.navButton {
	text-align: center; 
	border-left: 0 none;
	border-top: 0 none;
	border-right: 0 none; 
	padding-bottom:5px; 
	padding-top:5px;
}
.ui-jqdialog-content input.FormElement {
	/*padding: .5em .3em; */
	/*margin-bottom: 5px;*/
	/*font-size: inherit;*/
}
.ui-jqdialog-content select.FormElement {
	padding:.3em; 
	margin-bottom: 3px;
	font-size: inherit;
}
.ui-jqdialog-content .data-line {
	padding-top:.1em;
	border: 0 none;
}

.ui-jqdialog-content .CaptionTD {
/**	vertical-align: middle;
	border: 0 none; 
	padding: 2px;
	white-space: nowrap;
*/
}
.ui-jqdialog-content .DataTD {
	
	padding: 4px 4px;
	border: 0 none; 
	/*vertical-align: top;*/
}
.ui-jqdialog-content .form-view-data {
	white-space:pre
}
.fm-button {  }
.fm-button-icon-left { 
	margin-left: 4px; 
	margin-right: 4px;  
}
.fm-button-icon-right { 
	margin-left: 4px; 
	margin-right: 4px; 
}
.fm-button-icon-left  {  }
.fm-button-icon-right  { }
#nData, #pData { 
	margin-left: 4px; 
	margin-right: 4px; 
}
#sData span, #cData span { 
	margin-left: 5px;
}
/* End Eorm edit */
/*.ui-jqgrid .edit-cell {}*/
.ui-jqgrid .selected-row, 
div.ui-jqgrid .selected-row td {
	font-style : normal;
}
/* inline edit actions button*/
.ui-inline-del, .ui-inline-cancel {
    margin: 0 7px;
	font-size: 0.9rem;
	cursor : pointer;
}
.ui-inline-save, .ui-inline-edit {
    margin: 0 7px;
	font-size: 0.9rem;
	cursor : pointer;
}
.ui-jqgrid .inline-edit-cell {}
/* Tree Grid */
.ui-jqgrid .tree-wrap {
	float: left; 
	position: relative;
	height: 18px;
	white-space: nowrap;
	overflow: hidden;
}
.ui-jqgrid .tree-minus {
	position: absolute; 
	height: 18px; 
	width: 18px; 
	overflow: hidden;
}
.ui-jqgrid .tree-plus {
	position: absolute;	
	height: 18px; 
	width: 18px;	
	overflow: hidden;
}
.ui-jqgrid .tree-leaf {
	position: absolute;	
	height: 18px; 
	width: 18px;
	overflow: hidden;
}
.ui-jqgrid .treeclick {
	cursor: pointer;
}
/* moda dialog */
* iframe.jqm {
	position:absolute;
	top:0;
	left:0;
	z-index:-1;
}
/*	 width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}*/
.ui-jqgrid-dnd tr td {
	border-right-width: 1px;
	border-right-color: inherit;
	border-right-style: solid; 
	height:20px
}
/* RTL Support */
.ui-jqgrid .ui-jqgrid-caption-rtl {
	text-align: right;
}
.ui-jqgrid .ui-jqgrid-hbox-rtl {
	float: right; 
	/*padding-left: 20px;*/
}
.ui-jqgrid .ui-jqgrid-resize-ltr {
	float: right;
	margin: -2px -2px -2px 0;
	height:100%;
}
.ui-jqgrid .ui-jqgrid-resize-rtl {
	float: left;
	margin: -2px -2px -2px -0px;
}
.ui-jqgrid .ui-sort-rtl {
	
}
.ui-jqgrid .tree-wrap-ltr {
	float: left;
}
.ui-jqgrid .tree-wrap-rtl {
	float: right;
}
.ui-jqgrid .ui-ellipsis {
	-moz-text-overflow:ellipsis;
	text-overflow:ellipsis;
}
/* Toolbar Search Menu. Nav menu */
.ui-search-menu, 
.ui-nav-menu {
	position: absolute !important; 
	padding: 2px 5px; 
	z-index:99999;
}
.ui-nav-menu {
	padding: 8px 8px; 
}
.ui-search-menu.ui-menu .ui-menu-item,
.ui-nav-menu.ui-menu .ui-menu-item
{ 
	list-style-image: none; 
	padding-right: 0; 
	padding-left: 0; 
}
.ui-search-menu.ui-menu .ui-menu-item a, 
.ui-nav-menu.ui-menu .ui-menu-item a 
{ 
	display: block; 
}
.ui-search-menu.ui-menu .ui-menu-item a.g-menu-item:hover,
.ui-nav-menu.ui-menu .ui-menu-item a.g-menu-item:hover 
{ 
	margin: -1px; 
	font-weight: normal; 
}
.ui-jqgrid .ui-search-table { 
	padding: 0; 
	border: 0 none; 
	height:20px; 
	width:100%;
}
.ui-jqgrid .ui-search-table .ui-search-oper { 
	width:20px; 
	text-align: center;
}
a.g-menu-item, a.soptclass, a.clearsearchclass { 
	cursor: pointer; 
} 

.ui-menu-item a.g-menu-item .opersign 
{
	width : 23px;
}

.ui-jqgrid .ui-jqgrid-view input,
.ui-jqgrid .ui-jqgrid-view select,
.ui-jqgrid .ui-jqgrid-view textarea,
.ui-jqgrid .ui-jqgrid-view button {
    /*font-size: 11px*/
}
.ui-jqgrid .ui-scroll-popup {
	width: 100px;
}
.ui-search-table select,
.ui-search-table input 
{
	padding: 0px 0px;
}
	
.ui-disabled {
	opacity: .35;
	filter:Alpha(Opacity=35); /* support: IE8 */
	background-image: none;
}
.ui-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0,0,0,0.5);
	opacity: .3;
	filter: Alpha(Opacity=30); /* support: IE8 */
}
 
.ui-jqgrid-pager .ui-pg-table .ui-pg-button:hover,
.ui-jqgrid-toppager .ui-pg-table .ui-pg-button:hover
{
	background-color: var(--tbl-brd-color, #ddd);
}
.ui-jqgrid-corner  {
	 border-radius: 5px
}
.ui-resizable-handle {
	position: absolute;
	display: block;
	left : auto;
}
.ui-jqdialog .ui-resizable-se {
	width: 12px;
	height: 12px;
	right: 0px;
	bottom: 4px;
	left : auto;
	top: auto;
	background-position: 16px 16px;
}
.ui-resizable-icon {
	resize: both;
	overflow: auto;
}
.ui-resizable-se {
	cursor: se-resize;
	width: 12px;
	height: 12px;
	right: 1px;
	bottom: 1px;
}
.ui-top-corner {
	border-top-left-radius: 5px;
	border-top-right-radius: 5px;
}
.ui-bottom-corner {
	border-bottom-left-radius: 5px;
	border-bottom-right-radius: 5px;
}

.ui-search-table {
	margin-bottom: 0;
}
.ui-search-table .columns, .ui-search-table .operators {
	padding-right: 5px;
	width : 33%;
}
.ui-search-table .columns select,
.ui-search-table .operators select,
.ui-search-table .data select,
.ui-search-table .data input
{
	padding : 5px 2px;
	font-size: inherit;
}


.ui-search-table .opsel {
	float :left;
	width : 100px;
	margin-right : 5px;
	padding : 5px 2px;
	font-size: inherit;
}
.add-group, .add-rule, .delete-group {
	width: 14%;	
	margin-right : 5px;
}
.delete-rule {
	width : 15px;
}
ul.ui-search-menu, ul.ui-nav-menu {
	 list-style-type:  none;
	 width: auto;
}
ul.ui-search-menu li a, 
ul.ui-nav-menu li a,
.soptclass, 
.clearsearchclass {
	text-decoration: none;
	color : #010101;
}
ul.ui-search-menu li a:hover, ul.ui-nav-menu li a:hover, a.soptclass:hover, a.clearsearchclass:hover {
	background-color: var(--tbl-brd-color, #ddd);
	padding: 1px 1px;
	text-decoration: none;
}
ul.ui-search-menu li, ul.ui-nav-menu li {
	padding : 5px 5px;
}
.ui-menu-item hr {
	margin-bottom: 0px;
	margin-top:0px;
}

.ui-search-oper a.soptclass 
{
	padding-left: 0.4em !important;
	padding-right: 0.4em !important;
}

.searchFilter .ui-search-table td,
.searchFilter .ui-search-table th
{
	border-top: 0px none !important;
	/*padding: .45rem;*/
}

.searchFilter .queryresult {
	margin-bottom: 5px;
}
.searchFilter .queryresult tr td{
	border-top: 0px none;
	padding : .45rem;
	border-color: var(--tbl-brd-color, #ddd);
}
.ui-search-label { 
	padding-left: 5px;
}

.frozen-div, .frozen-bdiv, .frozen-sdiv, .frozen-hrdiv, .frozen-rdiv {
	background-color: #fff;
}
.frozen-div .ui-jqgrid-htable {
	border-bottom: 0px none;
}

/*
.ui-jqgrid .ui-jqgrid-caption,
.ui-jqgrid .ui-jqgrid-pager,
.ui-jqgrid .ui-jqgrid-toppager,
.ui-jqgrid .ui-jqgrid-htable thead th,
.ui-jqgrid .ui-userdata-top,
.ui-jqgrid .ui-userdata-bottom,
.ui-jqgrid .ui-jqgrid-hdiv,
.ui-jqdialog .ui-jqdialog-titlebar
{
    background-image: none, linear-gradient(to bottom, #fff 0px, #e0e0e0 100%);
    background-repeat: repeat-x;
    border-color: #ccc;
    text-shadow: 0 1px 0 #fff;
}
*/
/* Column menu */
.ui-jqgrid .ui-jqgrid-htable .colmenu {
	position:absolute;
	right:1px;
	height:100%;
	color : inherit;
	width: 16px;
	/*cursor: context-menu;*/
}
.ui-jqgrid .ui-jqgrid-htable .colmenu-rtl {
	right: auto;
	left : 1px;
	position:absolute;
	height:100%;
	color : black;
}
.ui-jqgrid .ui-jqgrid-htable .colmenuspan {
	display:inline-block;
	padding-left: 7px;
}

.ui-jqgrid .ui-jqgrid-htable .ui-th-div {
	/*height:17px;
	margin-top:5px;*/
}
.column-menu, .ui-search-menu {
	padding: 8px 8px;
	background-color: #fff;
	border: 1px solid var(--tbl-brd-color, #ddd);;	
}
.column-menu .divider {
	background-color: #e5e5e5; 
	height: 1px;
	padding:0 0;
	margin: 5px 0;  
	overflow: hidden;
}
.ui-menu-item .ui-common-table .menu_icon {
	padding-right: 2px;
	padding-left: 8px;
}
td.menu_text {
	width: auto;
	padding-left: 1px;
	white-space: nowrap;
}
#search_menu .ui-menu-item div {
	padding: 3px 0;
	white-space: nowrap;
}

#search_menu  .search_buttons {
	display:inline-block;
	width:50%;
	padding: 3px 3px;
}
#search_menu  #bs_close {
	position: absolute;
	padding:  0px 0px;
	top: 0px;
	right: 0px;
}

.search_buttons .btn-default:hover {
	padding-bottom: 6px;
	padding-top: 6px;
}
.search_buttons #bs_reset {
	margin-right: 3px;
	padding: 0;
}
.search_buttons #bs_search {
	margin-left: 3px;
	padding: 0;
}
div[id^='searchcnt'] .fm-button .oi,
div[id^='searchcnt'] .fm-button .octicon
{
	padding-right:  4px;
}
/*menubar*/
.ui-jqgrid .ui-jqgrid-menubar {
	margin: 6px 5px;
	width:16px;
	height:16px;
}
.ui-jqgrid a.ui-jqgrid-menubar {
	text-decoration: none;
	color : #010101; /*default*/
}
.ui-jqgrid .ui-jqgrid-menubar:hover {
	margin: 6px 5px;
	background-color: var(--tbl-brd-color, #ddd);
	text-decoration: none;
}
.ui-jqgrid .menubar-rtl {
	float : right;
}

.ui-jqgrid .menubar-ltr {
	float : left;
}
/*printing*/

.jqgridprint {
	width : 100%;
	font-size: 13px;
}

.jqgridprint th,
.jqgridprint td {
	padding: 4px 4px 4px 4px ;
	text-align: center ;
}
.jqgridprint th {
	border-bottom: 2px solid #333333 ;
}
.jqgridprint td {
	border-bottom: 1px dotted #999999 ;
}

.jqgridprint tfoot td {
	border-bottom-width: 0px ;
	border-top: 2px solid #333333 ;
	padding-top: 20px ;
}
.ui-jqgrid td.ui-search-input,
.ui-jqgrid td.ui-search-clear,
.ui-jqgrid .ui-search-table .ui-search-oper
{
	border: 0 none;
	padding: 0 0;
	vertical-align: middle;
}

.ui-jqgrid .jqgrid-caption-menu 
{ 
	left:0;
	top:30px;
	position:absolute;
	display:none;
	font-size: inherit;
	width : auto;
}
.ui-jqgrid .jqgrid-column-menu
{
	font-size:inherit;
	width:auto;
	position :absolute;
}
.ui-jqgrid .ui-menu-item form
{
	margin: 0 8px;
}
.ui-jqgrid .ui-menu-item form input,
.ui-jqgrid .ui-menu-item form select,
.ui-jqgrid .ui-menu-item form a
{
	font-size: inherit;
	padding : 0.3rem
}
.ui-jqdialog-content .EditTable .EditButton a {
	font-size: inherit;
	padding: .275rem .375rem
}
.ui-jqdialog-content .EditTable .EditButton a > :first-child {
	padding: 0 4px;
}
.ui-jqdialog-content td.navButton a {
	font-size: inherit;
	padding: .275rem .375rem
}
.ui-jqgrid .dropdownmenu 
{
	padding: 0;
	font-size: inherit;
}
.ui-jqgrid th.jqgrid-multibox,
.ui-jqgrid td.jqgrid-multibox
{
	padding-left: 7px;
	padding-right: 7px !important;
	line-height: normal;
}
.ui-jqgrid th.jqgrid-multibox {
	text-align: center
}

.ui-jqgrid-btable tbody tr.table-active:hover > td,
.ui-jqgrid-htable thead tr > th.table-active:hover
{
  color: #212529;
  background-color: rgba(0, 0, 0, 0.075);
}

.ui-jqgrid-btable tbody tr.table-success > td
{
  background-color: #c3e6cb !important;
}

.ui-jqgrid-btable tbody tr.table-success.table-active > td 
{
	background-color: rgba(0, 0, 0, 0.075)  !important;
}
.EditButton a.table-active:hover, .navButton a.table-active:hover  {
	background-color: rgba(0, 0, 0, 0.075)  !important;
}
.ui-jqgrid .search-col-input
{
	padding: 2px 3px !important;
	font-size: inherit;
}
.ui-jqgrid .jqgrid-searchcol {
	padding:  1px 1px;
}

.jqgrid-searchcol > .form-control {
	padding:  3px 3px;
}
a.colmenu .colmenuspan 
{
	cursor: pointer;
}
.ui-jqgrid td.jqgrid-searchcol  input {
	width: 100%;
	overflow: auto;
}
#info_dialog {
	border: 1px solid var(--tbl-brd-color, #ddd);
	box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px;
}
.ui-col-menu {
	overflow: auto;
	height: 17em;
}
/*uncomment  this if you use ie11*/
/* <script>window.MSInputMethodContext && document.documentMode && document.write('<script src="https://cdn.jsdelivr.net/gh/nuxodin/ie11CustomProperties@4.1.0/ie11CustomProperties.min.js"><\/script>');</script>*/
css/ui.jqgrid-bootstrap-ui.css000064400000001226151676727230012411 0ustar00/*
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
*/
/* 
    Created on : Mar 16, 2015, 10:24:01 AM
    Author     : tony
*/

.ui-jqgrid tr.jqgrow td { height: 26px;}
.ui-jqgrid .ui-pg-input,.ui-jqgrid .ui-jqgrid-toppager .ui-pg-input { height:20px }
.ui-state-hover
{
    border: .15em solid;
	border-color: inherit;

}
.ui-jqdialog .ui-jqdialog-titlebar  {
	height:29px;
	border-color: inherit;
}

.ui-jqdialog-content input.FormElement {
    padding: 0.25em;
}

.fm-button {
    height:30px;
}
#nData, #pData { height:20px; width:18px; }css/ui.jqgrid.css000064400000047477151676727230010005 0ustar00/*Grid*/
.ui-jqgrid {
	position: relative;
	-moz-box-sizing: content-box; 
	-webkit-box-sizing: content-box; 
	box-sizing: content-box;
	font-size:11px;
}
.ui-jqgrid .ui-jqgrid-view {
	position: relative;
	left:0; 
	top: 0; 
	padding: 0;
	/*font-size:11px;*/
	z-index:100;
}
.ui-jqgrid .ui-common-table {border-width: 0px; border-style: none; border-spacing: 0px; padding: 0;}
/* caption*/
.ui-jqgrid .ui-jqgrid-titlebar {
	height:19px; 
	padding: .3em .2em .2em .3em; 
	position: relative; 
	font-size: 12px; 
	border-left: 0 none;
	border-right: 0 none; 
	border-top: 0 none;
	box-sizing:content-box;
}
.ui-jqgrid .ui-jqgrid-caption {text-align: left;}
.ui-jqgrid .ui-jqgrid-title {
	padding: .2em .1em .1em;
	/*position: absolute; */
}
.ui-jqgrid .ui-jqgrid-titlebar-close { position: absolute;top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height:18px; cursor:pointer;}
.ui-jqgrid .ui-jqgrid-titlebar-close span { display: block; margin: 1px; }
.ui-jqgrid .ui-jqgrid-titlebar-close:hover { padding: 0; }
.ui-jqgrid .menubar:hover {  border: 0 none;}
/* header*/
.ui-jqgrid .ui-jqgrid-hdiv {position: relative; margin: 0;padding: 0; overflow: hidden; border-left: 0 none !important; border-top : 0 none !important; border-right : 0 none !important;}
.ui-jqgrid .ui-jqgrid-hbox {float: left; padding-right: 20px;}
.ui-jqgrid .ui-jqgrid-htable {table-layout:fixed;margin:0;border-collapse: separate;}
.ui-jqgrid .ui-jqgrid-htable th { height: 27px; padding: 0 2px 0 2px;}
.ui-jqgrid .ui-jqgrid-htable th div {overflow: hidden; position:relative;margin: .1em 0em .1em 0em;}
.ui-th-column, .ui-jqgrid .ui-jqgrid-htable th.ui-th-column {overflow: hidden;white-space: nowrap;text-align:center;border-top : 0 none;border-bottom : 0 none;}
.ui-th-column-header, .ui-jqgrid .ui-jqgrid-htable th.ui-th-column-header {overflow: hidden;white-space: nowrap;text-align:center;border-top : 0 none; height: 26px;}
.ui-th-ltr, .ui-jqgrid .ui-jqgrid-htable th.ui-th-ltr {border-left : 0 none;}
.ui-th-rtl, .ui-jqgrid .ui-jqgrid-htable th.ui-th-rtl {border-right : 0 none;}
.ui-first-th-ltr {border-right: 1px solid; }
.ui-first-th-rtl {border-left: 1px solid; }
.ui-jqgrid .ui-th-div-ie {white-space: nowrap; height:17px;}
.ui-jqgrid .ui-jqgrid-resize {height:20px !important;position: relative; cursor :e-resize;display: inline;overflow: hidden;}
.ui-jqgrid .ui-grid-ico-sort {overflow:hidden;position:absolute;display:inline; cursor: pointer !important;}
.ui-jqgrid .ui-icon-asc {margin-top:-3px; height:12px;}
.ui-jqgrid .ui-icon-desc {margin-top:3px;margin-left:-1px;height:12px;}
.ui-jqgrid .ui-i-asc {margin-top:0;height:18px;}
.ui-jqgrid .ui-i-desc {margin-top:0;margin-left:12px;height:18px;}
.ui-jqgrid .ui-single-sort-asc {margin-top:-1px;height:18px;}
.ui-jqgrid .ui-single-sort-desc {margin-top:0;height:18px;}
.ui-jqgrid .ui-icon-left .s-ico {margin-right: 16px;}
.ui-jqgrid .ui-jqgrid-sortable {cursor:pointer;height:14px}
.ui-jqgrid tr.ui-search-toolbar th { border-bottom: 0px none}
.ui-jqgrid .ui-search-table td.ui-search-clear { width:25px;}
.ui-jqgrid tr.ui-search-toolbar td input { padding-right: 0px; width: 95%;}
.ui-jqgrid tr.ui-search-toolbar select {}
/* body */ 
.ui-jqgrid .ui-jqgrid-bdiv {position: relative; margin: 0; padding:0; overflow: auto; text-align:left;z-index: 101;}
.ui-jqgrid .ui-jqgrid-btable {table-layout:fixed; margin:0; outline-style: none; border-collapse: separate;}
.ui-jqgrid tr.jqgrow,
.ui-jqgrid tr.jqgroup 
	{ outline-style: none; }
.ui-jqgrid tr.jqgrow td,
.ui-jqgrid tr.jqgroup td
{	font-weight: normal; 
	overflow: hidden; 
	white-space: pre; 
	height: 23px;
	padding: 1px 2px 1px 2px;
	border-bottom-width: 1px; 
	border-bottom-color: inherit; 
	border-bottom-style: solid;
}
.ui-jqgrid tr.jqgfirstrow td {padding: 0 2px 0 2px;border-right-width: 1px; border-right-style: solid; height:auto;}
.ui-jqgrid tr.jqfoot td {font-weight: bold; overflow: hidden; white-space: pre; height: 22px;padding: 0 2px 0 2px;border-bottom-width: 1px; border-bottom-color: inherit; border-bottom-style: solid;}
.ui-jqgrid tr.ui-row-ltr td {text-align:left;border-right-width: 1px; border-right-color: inherit; border-right-style: solid;}
.ui-jqgrid tr.ui-row-rtl td {text-align:right;border-left-width: 1px; border-left-color: inherit; border-left-style: solid;}
.ui-jqgrid td.jqgrid-rownum { padding: 0 2px 0 2px; margin: 0; border: 0 none;}
.ui-jqgrid .ui-jqgrid-resize-mark { width:2px; left:0; background-color:#777; cursor: e-resize; cursor: col-resize; position:absolute; top:0; height:100px; overflow:hidden; display:none; border:0 none; z-index: 99999;}
.ui-jqgrid-table-striped > tbody > tr:nth-of-type(odd) {
	opacity: .7;
	font-weight: normal;
}
/* footer */
.ui-jqgrid .ui-jqgrid-sdiv {position: relative; margin: 0;padding: 0; overflow: hidden; border-left: 0 none !important; border-top : 0 none !important; border-right : 0 none !important;}
.ui-jqgrid .ui-jqgrid-ftable {table-layout:fixed; margin-bottom:0;border-collapse: separate;}
.ui-jqgrid tr.footrow td {font-weight: bold; overflow: hidden; white-space:nowrap; height: 23px;padding: 1px 2px 1px 2px;border-top-width: 1px; border-top-color: inherit; border-top-style: solid;border-bottom: 0 none;}
.ui-jqgrid tr.footrow-ltr td {text-align:left;border-right-width: 1px; border-right-color: inherit; border-right-style: solid;}
.ui-jqgrid tr.footrow-rtl td {text-align:right;border-left-width: 1px; border-left-color: inherit; border-left-style: solid;}
/* headerrow */
.ui-jqgrid .ui-jqgrid-hrdiv {position: relative; margin: 0;padding: 0; overflow: hidden; border-left: 0 none !important; border-top : 0 none !important; border-right : 0 none !important;}
.ui-jqgrid .ui-jqgrid-hrtable {table-layout:fixed; margin-bottom:0;border-collapse: separate;}
.ui-jqgrid tr.hrheadrow td { overflow: hidden; white-space:nowrap; height: 23px;padding: 1px 2px 1px 2px;border-bottom-width: 1px; border-bottom-color: inherit; border-bottom-style: solid;border-top: 0 none;}
.ui-jqgrid tr.hrheadrow-ltr td {text-align:left;border-right-width: 1px; border-right-color: inherit; border-right-style: solid;}
.ui-jqgrid tr.hrheadrow-rtl td {text-align:right;border-left-width: 1px; border-left-color: inherit; border-left-style: solid;}
/* Pager*/
.ui-jqgrid .ui-jqgrid-pager { 
	border-left: 0 none !important;
	border-right: 0 none !important; 
	border-bottom: 0 none !important; 
	border-top: 0 none; 
	margin: 0 !important; 
	padding: 0 !important; 
	position: relative; 
	height: auto; 
	min-height: 28px; 
	white-space: nowrap;
	overflow: hidden;
	/*font-size:11px; */
	z-index:100
}
.ui-jqgrid .ui-jqgrid-toppager .ui-pager-control, .ui-jqgrid .ui-jqgrid-pager .ui-pager-control {position: relative;border-left: 0;border-bottom: 0;border-top: 0; height: 28px;}
.ui-jqgrid .ui-pg-table {position: relative; padding: 1px 0; width:auto; margin: 0;}
.ui-jqgrid .ui-pg-table td {font-weight:normal; vertical-align:middle; padding:0px 1px;}
.ui-jqgrid .ui-pg-button  { height:auto}
.ui-jqgrid .ui-pg-button span { display: block; margin: 2px; float:left;}
.ui-jqgrid .ui-pg-button:hover { padding: 0;}
.ui-jqgrid .ui-state-disabled:hover {padding:0px;}
.ui-jqgrid .ui-pg-input,.ui-jqgrid .ui-jqgrid-toppager .ui-pg-input { height:14px;width: auto;font-size:.9em; margin:0;line-height: inherit;border: none; padding: 3px 2px}
.ui-jqgrid .ui-pg-selbox, .ui-jqgrid .ui-jqgrid-toppager .ui-pg-selbox {font-size:.9em; line-height:inherit; display:block; height:19px; margin: 0; padding: 3px 0px; border:none;}
.ui-jqgrid .ui-separator {height: 18px; border-left: 2px solid #ccc ;}
.ui-separator-li {height: 2px; border : none;border-top: 2px solid #ccc ; margin: 0; padding: 0; width:100%}
.ui-jqgrid  .dropdownmenu {
	padding: 3px 0 3px 0;
	margin-left: 4px;
}
.ui-jqgrid .ui-jqgrid-pager .ui-pg-div,
.ui-jqgrid .ui-jqgrid-toppager .ui-pg-div
{padding:1px 0;float:left;position:relative; line-height: 20px;}
.ui-jqgrid .ui-jqgrid-pager .ui-pg-button,
.ui-jqgrid .ui-jqgrid-toppager .ui-pg-button
{ cursor:pointer; }
.ui-jqgrid .ui-jqgrid-pager .ui-pg-div  span.ui-icon,
.ui-jqgrid .ui-jqgrid-toppager .ui-pg-div  span.ui-icon
{float:left;margin: 2px; width:18px;}
.ui-jqgrid td input, .ui-jqgrid td select, .ui-jqgrid td textarea { margin: 0; padding-top:5px;padding-bottom: 5px;}
.ui-jqgrid td textarea {width:auto;height:auto;}
.ui-jqgrid .ui-jqgrid-toppager {border-left: 0 none !important;border-right: 0 none !important; border-top: 0 none !important; margin: 0 !important; padding: 0 !important; position: relative;white-space: nowrap;overflow: hidden;}
.ui-jqgrid .ui-jqgrid-pager .ui-pager-table,
.ui-jqgrid .ui-jqgrid-toppager .ui-pager-table 
{
	width:100%;
	table-layout:fixed;
	height:100%;
}
.ui-jqgrid .ui-jqgrid-pager .ui-paging-info,
.ui-jqgrid .ui-jqgrid-toppager .ui-paging-info
{ 
	font-weight: normal;
	height:auto; 
	margin-top:3px;
	margin-right:4px;
	display: inline;
}
.ui-jqgrid .ui-jqgrid-pager .ui-paging-pager,
.ui-jqgrid .ui-jqgrid-toppager .ui-paging-pager
{
	table-layout:auto;
	height:100%;
}
.ui-jqgrid .ui-jqgrid-pager .navtable,
.ui-jqgrid .ui-jqgrid-toppager .navtable
{
	float:left;
	table-layout:auto;
	height:100%;
}
.ui-jqgrid .ui-jqgrid-pager .navtable td,
.ui-jqgrid .ui-jqgrid-toppager .navtable td 
{ 
	overflow: hidden;
}


/*.ui-jqgrid .ui-jqgrid-toppager .ui-pg-div {padding:1px 0;float:left;position:relative; line-height: 20px; margin-right:3px;}
.ui-jqgrid .ui-jqgrid-toppager .ui-pg-button { cursor:pointer; }
.ui-jqgrid .ui-jqgrid-toppager .ui-pg-div  span.ui-icon {float:left;margin: 2px; width:18px;}
*/

/*subgrid*/
.ui-jqgrid .ui-jqgrid-btable .ui-sgcollapsed span {display: block;}
.ui-jqgrid .ui-subgrid {margin:0;padding:0; width:100%;}
.ui-jqgrid .ui-subgrid table {table-layout: fixed;}
.ui-jqgrid .ui-subgrid tr.ui-subtblcell td {height:18px;border-right-width: 1px; border-right-color: inherit; border-right-style: solid;border-bottom-width: 1px; border-bottom-color: inherit; border-bottom-style: solid;}
.ui-jqgrid .ui-subgrid td.subgrid-data {border-top:  0 none !important; border-left: 0 none !important;}
.ui-jqgrid .ui-subgrid td.subgrid-cell {border-width: 0 1px 1px 0;}
.ui-jqgrid .ui-th-subgrid {height:20px;}
/* loading */
.ui-jqgrid .loading,
.loading_pivot {
	position: absolute; 
	top: 45%;
	left: 45%;
	width: auto;
	z-index:101;
	padding: 6px;
	margin: 5px;
	text-align: center;
	font-weight: bold;
	display: none;
	border-width: 2px !important;
	/*font-size:11px;*/
}
.ui-jqgrid .jqgrid-overlay {display:none;}
/* IE * html .jqgrid-overlay {width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');} */
* .jqgrid-overlay iframe {position:absolute;top:0;left:0;z-index:-1;}
/* IE width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}*/
/* end loading div */
/* toolbar */
.ui-jqgrid .ui-userdata {border-left: 0 none;    border-right: 0 none;	height : 27px;overflow: hidden;	}
/*Modal Window */
.ui-jqdialog { 
	/*font-size:11px !important; */
}
.ui-jqdialog { 
	display: none; 
	width: 300px; 
	position: absolute; 
	padding: .2em; 
	/*font-size:11px;*/
	overflow:visible;
	box-sizing:content-box;
}
.ui-jqdialog .ui-jqdialog-titlebar { 
	padding: .3em .2em; 
	position: relative; height:20px;
	box-sizing:content-box;
}
.ui-jqdialog .ui-jqdialog-title { margin: .3em .2em .2em .2em;} 
.ui-jqdialog .ui-jqdialog-titlebar-close { position: absolute;  top: 50%; width: 19px; margin: -12px 0 0 0; padding: 1px; height: 18px; cursor:pointer;}

.ui-jqdialog .ui-jqdialog-titlebar-close span { display: block; margin: 1px; }
.ui-jqdialog .ui-jqdialog-titlebar-close:hover, .ui-jqdialog .ui-jqdialog-titlebar-close:focus { padding: 0; }
.ui-jqdialog-content, .ui-jqdialog .ui-jqdialog-content { border: 0; padding: .3em .2em; background: none; height:auto;}
.ui-jqdialog .ui-jqconfirm {padding: .4em 1em; border-width:3px;position:absolute;bottom:10px;right:10px;overflow:visible;display:none;height:80px;width:220px;text-align:center;}
.ui-jqdialog>.ui-resizable-se { 
	bottom: 2px; 
	right: 2px;
	background-position: -64px -224px;
}
.ui-jqgrid>.ui-resizable-se { bottom: -3px; right: -3px }
.ui-resizable-icon {
	resize: both;
	overflow: auto;
}
.jqgrid-overlay-modal {	display : none; }
/* end Modal window*/
/* Form edit */
.ui-jqdialog-content .FormGrid {margin: 0; overflow:auto;position:relative;}
.ui-jqdialog-content .EditTable { width: 100%; margin-bottom:0;}
.ui-jqdialog-content .DelTable { width: 100%; margin-bottom:0;}
.EditTable td input, .EditTable td select, .EditTable td textarea {margin: 0;}
.EditTable td textarea { width:auto; height:auto;}
.ui-jqdialog-content td.EditButton {text-align: right;border-top: 0 none;border-left: 0 none;border-right: 0 none; padding-bottom:5px; padding-top:5px;}
.ui-jqdialog-content td.navButton {text-align: center; border-left: 0 none;border-top: 0 none;border-right: 0 none; padding-bottom:5px; padding-top:5px;}
.ui-jqdialog-content input.FormElement {
	padding: .5em .3em; 
	margin-bottom: 3px;
	font-size: inherit;
}
.ui-jqdialog-content select.FormElement {
	padding:.3em; 
	margin-bottom: 3px;
	font-size: inherit;
}
.ui-jqdialog-content .data-line {padding-top:.1em;border: 0 none;}

.ui-jqdialog-content .CaptionTD {vertical-align: middle;border: 0 none; padding: 2px;white-space: nowrap;}
.ui-jqdialog-content .DataTD {
	padding: 2px; 
	border: 0 none; 
	vertical-align: middle;
}
.ui-jqdialog-content .form-view-data {white-space:pre}
.fm-button { 
	height: 18px; 
	display: inline-block; 
	margin:2px 4px 0 0; 
	padding: .6em .5em .2em .5em; 
	text-decoration:none !important; 
	cursor:pointer; 
	position: relative; 
	text-align: center; 
	box-sizing:content-box;
}
.fm-button-icon-left { padding-left: 1.9em; }
.fm-button-icon-right { padding-right: 1.9em; }
.fm-button-icon-left .ui-icon { right: auto; left: .2em; margin-left: 0; position: absolute; top: 50%; margin-top: -8px; }
.fm-button-icon-right .ui-icon { left: auto; right: .2em; margin-left: 0; position: absolute; top: 50%; margin-top: -8px;}
#nData, #pData { float: left; margin:3px;padding: 0; width: 15px; }
.ViewTable {
	border-width: 0; 
	border-style: none; 
	border-spacing: 1px;
	padding: 4px;
	table-layout: fixed;
}
.ViewTable .CaptionTD, .ViewTable .DataTD {padding : 4px;} 
/* End Eorm edit */
/*cell edit*/
.ui-jqgrid .edit-cell {
	padding: 4px 0px 4px 4px;
}
.ui-jqgrid .selected-row, div.ui-jqgrid .selected-row td {font-style : normal;border-left: 0 none;}
/* inline edit actions button*/
.ui-inline-del.ui-state-hover span, .ui-inline-edit.ui-state-hover span,
.ui-inline-save.ui-state-hover span, .ui-inline-cancel.ui-state-hover span {
    margin: -1px;
}
.ui-inline-del, .ui-inline-cancel {
    margin-left: 8px;
}

.ui-jqgrid .inline-edit-cell {
	padding: 4px 0px 4px 4px;
}
/* Tree Grid */
.ui-jqgrid .tree-wrap {float: left; position: relative;height: 18px;white-space: nowrap;overflow: hidden;}
.ui-jqgrid .tree-minus {position: absolute; height: 18px; width: 18px; overflow: hidden;}
.ui-jqgrid .tree-plus {position: absolute;	height: 18px; width: 18px;	overflow: hidden;}
.ui-jqgrid .tree-leaf {position: absolute;	height: 18px; width: 18px;overflow: hidden;}
.ui-jqgrid .treeclick {cursor: pointer;}
/* moda dialog */
* iframe.jqm {position:absolute;top:0;left:0;z-index:-1;}
/*	 width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}*/
.ui-jqgrid-dnd tr td {border-right-width: 1px; border-right-color: inherit; border-right-style: solid; height:20px}
/* RTL Support */
.ui-jqgrid .ui-jqgrid-caption-rtl {text-align: right;}
.ui-jqgrid .ui-jqgrid-hbox-rtl {float: right;}
.ui-jqgrid .ui-jqgrid-resize-ltr {float: right;margin: -2px -2px -2px 0;}
.ui-jqgrid .ui-jqgrid-resize-rtl {float: left;margin: -2px 0 -1px -3px;}
.ui-jqgrid .ui-sort-rtl {left:0;}
.ui-jqgrid .tree-wrap-ltr {float: left;}
.ui-jqgrid .tree-wrap-rtl {float: right;}
.ui-jqgrid .ui-ellipsis {-moz-text-overflow:ellipsis;text-overflow:ellipsis;}

/* Toolbar Search Menu , Nav menu*/
.ui-search-menu, 
.ui-nav-menu {
	position: absolute; 
	padding: 2px 5px; 
	z-index:99999;
	-webkit-box-shadow: 7px 7px 5px 0px rgba(50, 50, 50, 0.75);
	-moz-box-shadow:    7px 7px 5px 0px rgba(50, 50, 50, 0.75);
	box-shadow:         7px 7px 5px 0px rgba(50, 50, 50, 0.75);
}
.ui-search-menu.ui-menu .ui-menu-item,
.ui-nav-menu.ui-menu .ui-menu-item
{ 
	list-style-image: none; 
	padding-right: 0; 
	padding-left: 0; 
}
.ui-search-menu.ui-menu .ui-menu-item a, 
.ui-nav-menu.ui-menu .ui-menu-item a 
{ 
	display: block; 
}
.ui-search-menu.ui-menu .ui-menu-item a.g-menu-item:hover,
.ui-nav-menu.ui-menu .ui-menu-item a.g-menu-item:hover 
{ 
	margin: -1px; 
	font-weight: normal; 
}
.ui-jqgrid .ui-search-table { padding: 0; border: 0 none; height:20px; width:100%;}
.ui-jqgrid .ui-search-table .ui-search-oper { width:20px; }
a.g-menu-item, a.soptclass, a.clearsearchclass { cursor: pointer; } 
.ui-jqgrid .ui-jqgrid-view input,
.ui-jqgrid .ui-jqgrid-view select,
.ui-jqgrid .ui-jqgrid-view textarea,
.ui-jqgrid .ui-jqgrid-view button {
    font-size: inherit;
}

.ui-search-menu a.soptclass 
{
	padding-left: 0.4em;
	padding-right: 0.4em
}

.ui-menu-item a.g-menu-item .opersign 
{
	width : 20px;
}


.ui-jqgrid .ui-scroll-popup {width: 95px;}
.ui-search-table select,
.ui-search-table input 
{
	padding: 4px 3px;
}

.ui-jqgrid .ui-pg-table .ui-pg-button.ui-state-disabled:hover > .ui-separator {
	margin-left: 3px;
	margin-right: 3px;
}

.ui-jqgrid .ui-pg-table .ui-pg-button.ui-state-disabled:hover > .ui-pg-div > .ui-icon {
	margin-left: 3px;
	margin-right: 3px;
}
/* Column menu */
.ui-jqgrid .ui-jqgrid-htable .colmenu
{
	position:absolute;
	right:1px;
	height:100%;
	color : black;
}
.ui-jqgrid .ui-jqgrid-htable .colmenu-rtl
{
	right: auto;
	left : 1px;
	position:absolute;
	height:100%;
	color : black;
}
.ui-jqgrid .ui-jqgrid-htable .colmenuspan
{
	display:inline-block;
}
.ui-jqgrid .ui-jqgrid-htable .ui-th-div {
	height:17px;
	margin-top:5px;
}
th.jqgrid-multibox .ui-th-div {
	margin-top:2px !important;
	padding-bottom: 4px;
}
.column-menu, .ui-search-menu {
	padding: 10px 10px;
}
.column-menu .divider {
	background-color: #e5e5e5; 
	height: 1px;
	padding:0 0;
	margin: 5px 0;  
	overflow: hidden;
}
.ui-menu-item .ui-common-table .menu_icon {
	white-space: pre;
	padding-right: 4px;
	padding-left: 4px;
	width : auto;
}
.ui-menu-item .ui-common-table .menu_icon .ui-icon {
	display : inline-block;
	position: relative;
}
td.menu_text {
	width: auto;
	white-space: nowrap;
}
.ui-search-menu .ui-menu-item {
	padding : 0 0;
}
.ui-col-menu .ui-menu-item td.menu_text{
	padding-top: 0;
	padding-bottom: 0;
	padding-left : 1px;
}
.ui-col-menu .ui-menu-item td.menu_icon{
	padding-top: 0;
	padding-bottom: 0;
	vertical-align: middle;
}
.ui-col-menu .ui-menu-item td.menu_icon input{
	margin: 2px 0;
	
}
#search_menu .ui-menu-item div {
	margin: 3px 0;
	white-space: nowrap;
}

#search_menu .ui-menu-item div input,
#search_menu .ui-menu-item div select
{
	padding: 3px 2px;
}
#search_menu  .search_buttons {
	display:inline-block;
	width:50%;
}
#search_menu  #bs_close {
	position: absolute;
	padding:  0px 0px;
	top: 8px;
	right: 19px;
}

#column_menu.ui-menu .ui-menu-item {
	position :static;
}
/*menubar*/
.ui-jqgrid .ui-jqgrid-menubar {
	margin: 0px 5px;
	width:19px;
	height:18px;
}
.ui-jqgrid .ui-jqgrid-menubar:hover {
	border: 0 none;
}
.ui-jqgrid .menubar-rtl {
	float : right;
}

.ui-jqgrid .menubar-ltr {
	float : left;
}
/*printing*/

.jqgridprint {
	width : 100%;
	font-size: 13px;
}

.jqgridprint th,
.jqgridprint td {
	padding: 4px 4px 4px 4px ;
	text-align: center ;
}
.jqgridprint th {
	border-bottom: 2px solid #333333 ;
}
.jqgridprint td {
	border-bottom: 1px dotted #999999 ;
}

.jqgridprint tfoot td {
	border-bottom-width: 0px ;
	border-top: 2px solid #333333 ;
	padding-top: 20px ;
}

.ui-jqgrid .jqgrid-caption-menu 
{ 
	left:0;
	top:30px;
	position:absolute;
	display:none;
	font-size: inherit;
	width : auto;
}
.ui-jqgrid .jqgrid-column-menu
{
	font-size:inherit;
	width:auto;
	position: absolute;
}

.ui-jqgrid .search-col-input
{
	padding: 3px 2px;
}
.ui-jqgrid td.jqgrid-searchcol input {
	width: 100%;
	overflow: auto;
}

.ui-jqgrid .frozen-rdiv  {
	z-index: 10000;
}
.ui-col-menu {
	overflow: auto;
	height: 17em;
}
css/ui.jqgrid-bootstrap4.css000064400000056465151676727230012101 0ustar00/*Grid*/
.ui-jqgrid {
	position: relative; 
	border: 1px solid #ddd;      /*default*/
	-webkit-border-radius: 3px;
	-moz-border-radius: 3px;
	border-radius: 3px;
	line-height:  normal; /*calc(2px + 1rem + 2px); */        
}
.ui-jqgrid .ui-jqgrid-view {
	position: relative;
	left:0; 
	top: 0; 
	padding: 0;
}
.ui-jqgrid .ui-common-table {}

/* Caption*/
.ui-jqgrid .ui-jqgrid-titlebar {
	font-weight: normal;
	min-height:37px; 
	padding: 4px 8px; 
	position: relative; 
	margin-right: 2px;
	border-bottom: 1px solid #ddd; /*default*/

}
.ui-jqgrid .ui-jqgrid-caption {
	text-align: left;
}
.ui-jqgrid .ui-jqgrid-title { 
	/*padding-top: .475rem; */
	vertical-align: middle;
	line-height: 28px;
}
.ui-jqgrid .ui-jqgrid-titlebar-close { 
	color: inherit; 
	position: absolute;
	top: 50%; 
	margin: -7px 7px 0 0; 
	padding: 1px; 
	cursor:pointer;
}
.ui-jqgrid .ui-jqgrid-titlebar-close span { 
	display: block; 
	margin: 1px; 
}
.ui-jqgrid .ui-jqgrid-titlebar-close:hover {  }

/* Header*/
.ui-jqgrid .ui-jqgrid-hdiv {
	position: relative; 
	margin: 0;
	padding: 0; 
	overflow: hidden;
}
.ui-jqgrid .ui-jqgrid-hbox {
	float: left; 
	padding-right: 20px;
}
.ui-jqgrid .ui-jqgrid-htable { 
	margin-bottom: 0; 
	table-layout: fixed; 
	border-top: 0 none !important;
}
.ui-jqgrid .ui-jqgrid-htable thead th {
	overflow : hidden; 
	border-bottom : 0 none;
	border-top: 0 none;
	padding-right: 2px;
}
.ui-jqgrid .ui-jqgrid-htable thead th div {
	overflow: hidden; 
	position:relative;
}
.ui-th-column, .ui-jqgrid .ui-jqgrid-htable th.ui-th-column {
	overflow: hidden;
	white-space: nowrap;
}
.ui-th-column-header, 
.ui-jqgrid .ui-jqgrid-htable th.ui-th-column-header {
	overflow: hidden;
	white-space: nowrap;
}
.ui-th-ltr, .ui-jqgrid .ui-jqgrid-htable th.ui-th-ltr {}
.ui-th-rtl, .ui-jqgrid .ui-jqgrid-htable th.ui-th-rtl {text-align: center; }
.ui-first-th-ltr { }
.ui-first-th-rtl { }
.ui-jqgrid tr.jqg-first-row-header th {
	height:auto; 
	border-top:none; 
	padding-bottom: 0;
	padding-top: 0;
	border-bottom: none; 
	border-left: none;
	padding-right: 2px;
	/*text-align: center;*/
}
.ui-jqgrid tr.jqg-second-row-header th
/*.ui-jqgrid tr.jqg-third-row-header th*/
{
	/*border-top:none;*/
	text-align: center;
}
.ui-jqgrid tr.jqg-third-row-header th
{
	border-top: 1px solid #dee2e6;
}
.ui-jqgrid .ui-th-div-ie {
	white-space: nowrap; 
	/*height:17px;*/
}
.ui-jqgrid .ui-jqgrid-resize {
	height:20px !important;
	position: relative; 
	cursor :e-resize;
	display: inline;
	overflow: hidden;
}
.ui-jqgrid .ui-grid-ico-sort { 
	margin-left:5px; 
	overflow:hidden;
	position:absolute;
	right: auto;
	font-size:12px;
}
.ui-jqgrid .ui-icon-asc {
	margin-top:2px;
}
.ui-jqgrid .ui-icon-desc {
	margin-top:8px;
}
.ui-jqgrid .ui-i-asc {
	margin-top:4px;
}
.ui-jqgrid .ui-i-desc {
	margin-top:4px;
	margin-left:13px;
}
.ui-jqgrid .ui-single-sort-asc {
	margin-top:0;
}
.ui-jqgrid .ui-single-sort-desc {}
.ui-jqgrid .ui-jqgrid-sortable {
	cursor:pointer;
}
.ui-jqgrid tr.ui-search-toolbar th {
	padding:  0.45rem;
	border-top: 1px solid #dee2e6;
}
.ui-jqgrid .ui-search-table td.ui-search-clear 
{
	font-size: inherit;
}
.ui-jqgrid tr.ui-search-toolbar td input { 
	font-size: inherit;
	padding: 3px 0;
}
.ui-jqgrid tr.ui-search-toolbar select {
	font-size: inherit;
	padding: 0;
}
.ui-jqgrid .ui-th-column > .ui-th-div  {
	padding-left: 7px;
}
.ui-jqgrid th.ui-th-column.jqgrid-multibox > .ui-th-div  {
	padding-left: 0px;
}

.ui-jqgrid .ui-icon-left .ui-grid-ico-sort {
	margin-left: -9px;
}

/* Body */ 
.ui-jqgrid .table-bordered,
.ui-jqgrid .table-bordered td,
.ui-jqgrid .table-bordered th.ui-th-ltr
{
	border-left:0px none !important;
}
.ui-jqgrid .table-bordered th.ui-th-rtl
{
	border-right:0px none !important;
}
.ui-jqgrid .table-bordered tr.ui-row-rtl td
{
	border-right:0px none !important;
	border-left: 1px solid #ddd !important;
}
div.tablediv > .table-bordered {
	border-left : 1px solid #ddd !important;
}
.ui-jqgrid .ui-jqgrid-bdiv table.table-bordered td {
	border-top: 0px none;
}

.ui-subgrid .ui-jqgrid .ui-pager-control .ui-pager-table td {
	border-top: 0px none;
	border-right: 0px none;
	border-bottom: 0 none;
}

.ui-jqgrid .ui-jqgrid-bdiv {
	position: relative; 
	margin: 0; 
	padding:0; 
	overflow: auto; 
	text-align:left; 
}
.ui-jqgrid .ui-jqgrid-btable {
	table-layout: fixed; 
	border-left:none ; 
	border-top:none; 
	margin-bottom: 0px
}
.ui-jqgrid tr.jqgrow {  
	outline-style: none; 
}
.ui-jqgrid tr.jqgroup {  
	outline-style: none; 
}
.ui-jqgrid .ui-jqgrid-btable tbody tr.jqgrow td { 
	overflow: hidden; 
	white-space: pre; 
	padding-right: 2px;
}
.ui-jqgrid tr.jqgfirstrow  td {
	height:auto; 
	border-top:none; 
	padding-bottom: 0;
	padding-top: 0;
	border-bottom: none; 
	padding-right: 2px;
}
.ui-jqgrid tr.jqgroup td { 
	white-space: nowrap;
}
.ui-jqgrid tr.jqfoot td {
	white-space: nowrap;
}
.ui-jqgrid tr.ui-row-ltr td {}
.ui-jqgrid tr.ui-row-rtl td {}
.ui-jqgrid td.jqgrid-rownum {
	padding-left: 3px;
	padding-right: 3px !important;
}
.ui-jqgrid .ui-jqgrid-resize-mark { 
	width:2px; 
	left:0; 
	background-color:#777; 
	cursor: e-resize; 
	cursor: col-resize; 
	position:absolute; 
	top:0; 
	height:100px; 
	overflow:hidden; 
	display:none; 
	border:0 none; 
	z-index: 99999;

}
/* Footer, Header row*/
.ui-jqgrid .ui-jqgrid-hrdiv,
.ui-jqgrid .ui-jqgrid-sdiv {
	position: relative; 
	margin: 0;
	padding: 0; 
	overflow: hidden; 
	border-left: 0 none !important; 
	border-top : 0 none !important; 
	border-right : 0 none !important;
}
.ui-jqgrid .ui-jqgrid-hrtable,
.ui-jqgrid .ui-jqgrid-ftable {
	table-layout:fixed;
	margin-bottom:0 !important;
	border: 0px none;	
}
.ui-jqgrid tr.hrheadrow td,
.ui-jqgrid tr.footrow td {
	font-weight: bold; 
	overflow: hidden; 
	white-space:nowrap; 
	padding-right: 2px;
}
.ui-jqgrid tr.footrow td { 
	border-bottom: 0px none;
}
.ui-jqgrid tr.hrheadrow td {
	border-top: 0px none;
}
.ui-jqgrid tr.hrheadrow-ltr td,
.ui-jqgrid tr.footrow-ltr td {
	text-align:left;
}
.ui-jqgrid tr.hrheadrow-rtl td,
.ui-jqgrid tr.footrow-rtl td {
	text-align:right;
}

/* Pager*/
.ui-jqgrid .ui-jqgrid-pager,
.ui-jqgrid .ui-jqgrid-toppager
{ 
	border-left-width: 0px;
	border-top: 1px solid #ddd;  
	/*padding : 4px 0px;*/
	position: relative; 
	/*height: auto; */
	white-space: nowrap;
	overflow: hidden;
}
.ui-jqgrid .ui-jqgrid-toppager {
	border-top-width :0;
	border-bottom : 1px solid #ddd;
}
.ui-jqgrid .ui-jqgrid-toppager .ui-pager-control, 
.ui-jqgrid .ui-jqgrid-pager .ui-pager-control {
	position: relative;
	border-left: 0;
	border-bottom: 0;
	border-top: 0; 
	/*height: 30px;*/
}
.ui-jqgrid .ui-pg-table {
	position: relative; 
	padding: 1px 0; 
	width:auto; 
	margin: 0;
}
.ui-jqgrid .ui-pg-table td {
	font-weight:normal; 
	vertical-align:middle; 
	/*padding:0px 6px;*/
}
.ui-jqgrid .ui-pager-control .ui-pager-table td {
	border-top : 0px none !important;
	min-height : 20px !important;
}

.ui-jqgrid .ui-pg-button  { 
	height:auto; 
}
.ui-jqgrid  .ui-paging-pager td {
	padding : 0 5px;
}
.ui-jqgrid .ui-pg-button span { 
	display: block; 
	margin: 3px 2px; 
	float:left;
}
.ui-jqgrid .ui-pg-button:hover {  }
.ui-jqgrid .ui-disabled:hover {}
.ui-jqgrid .ui-pg-input,
.ui-jqgrid .ui-jqgrid-toppager .ui-pg-input { 
	display: inline-block;
	height:auto;
	width: auto;
	font-size: inherit; 
	margin:0;
	line-height: inherit;
	/*border: none; */
	padding: 0px 3px
}
.ui-jqgrid .ui-pg-selbox, 
.ui-jqgrid .ui-jqgrid-toppager .ui-pg-selbox {
	font-size: inherit; 
	line-height:inherit; 
	display:block; 
	margin: 0;
	width : auto;
	padding: 0px 0px 0px 3px; 
	border:none;
}
.ui-jqgrid .ui-separator {
	height: 16px; 
	border : none;
	border-left: 2px solid #ccc ; /*default*/
	
}
.ui-separator-li {
	height: 2px; 
	border : none;
	border-top: 2px solid #ccc ;  /*default*/
	margin: 0; padding: 0; width:100%
}
.ui-jqgrid .ui-jqgrid-pager .ui-pg-div,
.ui-jqgrid .ui-jqgrid-toppager .ui-pg-div
{
	float:left;
	position:relative; 
}
.ui-jqgrid .ui-jqgrid-pager .ui-pg-button,
.ui-jqgrid .ui-jqgrid-toppager .ui-pg-button
{ 
	cursor:pointer; 
}
.ui-jqgrid .ui-jqgrid-pager .ui-pg-div  span,
.ui-jqgrid .ui-jqgrid-toppager .ui-pg-div  span
{
	float:left;
}
.ui-jqgrid td input, 
.ui-jqgrid td select, 
.ui-jqgrid td textarea { 
	margin: 0;
}
.ui-jqgrid td textarea {
	width:auto;
	height:auto;
}
.ui-jqgrid .ui-jqgrid-pager .ui-pager-table,
.ui-jqgrid .ui-jqgrid-toppager .ui-pager-table
{
	width:100%;
	table-layout:fixed;
	height:100%;
}
.ui-jqgrid .ui-jqgrid-pager .ui-paging-info,
.ui-jqgrid .ui-jqgrid-toppager .ui-paging-info
{ 
	font-weight: normal;
	height:auto; 
	margin-top:3px;
	margin-right:4px;
	display: inline;
}
.ui-jqgrid .ui-jqgrid-pager .ui-paging-pager,
.ui-jqgrid .ui-jqgrid-toppager .ui-paging-pager
{
	table-layout:auto;
	height:100%;
}
.ui-jqgrid .ui-jqgrid-pager .navtable,
.ui-jqgrid .ui-jqgrid-toppager .navtable
{
	float:left;
	table-layout:auto;
	height:100%;
}
.ui-jqgrid .ui-jqgrid-pager .navtable td,
.ui-jqgrid .ui-jqgrid-toppager .navtable td 
{ 
	padding : 0 5px;
	overflow: hidden;
}

/*Subgrid*/
.ui-jqgrid .ui-jqgrid-btable .ui-sgcollapsed {
	height: 100%;
	padding: 0 0;
	padding-right: 0px !important;
	vertical-align: middle;
}

.ui-jqgrid .ui-sgcollapsed a.ui-sghref span {
    display: table-cell;
    text-align:center;
    vertical-align: middle;
}
/*octicons fix*/
.ui-jqgrid .ui-sgcollapsed a.ui-sghref span.octicon {
	padding-left: 7px;
}

.ui-jqgrid .ui-jqgrid-btable .ui-sgcollapsed span {
	display: block;
}
.ui-jqgrid .ui-subgrid {
	margin:0;
	padding:0; 
	width:100%;
}
.ui-jqgrid .ui-subgrid table {
	table-layout: fixed;
}
.ui-jqgrid .ui-subgrid tr.ui-subtblcell td {}
.ui-jqgrid .ui-subgrid td.subgrid-data {
	border-top:  0 none !important;
}
.ui-jqgrid .ui-subgrid td.subgrid-cell { 
	vertical-align: middle
}
.ui-jqgrid a.ui-sghref {
	text-decoration: none;
	color : #010101; /*default*/
	display: table;
    position: relative;
    height: 100%;
    width: 100%;
}
.ui-jqgrid .ui-th-subgrid {height:20px;}
.tablediv > .row { margin: 0 0}

/*Table striped fix 
.ui-jqgrid-view .table-striped tbody tr:nth-of-type(2n+1)
{
    background-color: inherit;
}
.ui-jqgrid-view .table-striped > tbody > tr:nth-child(odd) > td,
.ui-jqgrid-view .table-striped > tbody > tr:nth-child(odd) > th {
  background-color: rgba(0,0,0,.05);
}
*/

/* loading */
.ui-jqgrid .loading,
.loading_pivot {
	position: absolute; 
	top: 45%;
	left: 45%;
	width: auto;
	z-index:101;
	padding: 6px; 
	margin: 5px;
	text-align: center;
	display: none;
	border: 1px solid #ddd;  /*default*/
	font-size: 14px;
	background-color: #d9edf7;
}
.ui-jqgrid .jqgrid-overlay { 
	display:none;
	z-index:100;
}
/* IE * html .jqgrid-overlay {width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');} */
* .jqgrid-overlay iframe {
	position:absolute;
	top:0;
	left:0;
	z-index:-1;
}
/* IE width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}*/
/* end loading div */

/* Toolbar */
.ui-jqgrid .ui-userdata {
	padding: 4px 0px; 
	overflow: hidden; 
	min-height: 32px; 
}
.ui-jqgrid .ui-userdata-top {
	border-left-width: 0px;    /*default*/
	border-bottom: 1px solid #ddd;	
}
.ui-jqgrid .ui-userdata-bottom {
	border-left-width: 0px;    /*default*/
	border-top: 1px solid #ddd;	
}
/*Modal Window */
.ui-jqdialog.modal-content { 
	display: none; 
	position: absolute; 
}
.ui-jqdialog { 
	display: none; 
	width: 500px; 
	position: absolute; 
	/*padding: 5px; */
	overflow:visible;
}
.ui-jqdialog .ui-jqdialog-titlebar {
	padding: .1em .1em; 
	min-height: 38px; 
}
.ui-jqdialog .ui-jqdialog-title { 
	margin: .3em 0 .2em;  
	font-weight: bold;
	padding-left :6px;
	padding-right:6px;
	padding-top:6px;
} 
.ui-jqdialog .ui-jqdialog-titlebar-close { 
	position: absolute;  
	top: 0%; 
	margin: 3px 5px 0 0; 
	padding: 8px;  
	cursor:pointer;
}

.ui-jqdialog .ui-jqdialog-titlebar-close span {  }
.ui-jqdialog .ui-jqdialog-titlebar-close:hover, 
.ui-jqdialog .ui-jqdialog-titlebar-close:focus 
{ 
	padding: 8px; 
}
.ui-jqdialog-content, .ui-jqdialog .ui-jqdialog-content { 
	border: 0; 
	padding: .3em .2em; 
	background: none; 
	height:auto;
}
.ui-jqdialog .ui-jqconfirm {
	padding: .4em 1em; 
	border-width:3px;
	position:absolute;
	bottom:10px;
	right:10px;
	overflow:visible;
	display:none;
	height:120px;
	width:220px;
	text-align:center;
	background-color: #fff;
	border-radius: 4px;
	-webkit-border-radius: 4px;
	-moz-border-radius: 4px;
}
.ui-jqdialog>.ui-resizable-se { }
.ui-jqgrid>.ui-resizable-se { }
.jqgrid-overlay-modal {
	display : none;
}
/* end Modal window*/
/* Form edit */
.ui-jqdialog-content .FormGrid { 
	margin: 0 8px 0 8px; 
	overflow:auto;
	position:relative;
}
.ui-jqdialog-content .EditTable { 
	width: 100%; 
	margin-bottom:0; 
}
.ui-jqdialog-content .DelTable { 
	width: 100%; 
	margin-bottom:0;
}
.EditTable td input, 
.EditTable td select, 
.EditTable td textarea { 
	width: 100%;
	display: inline-block;
}
.EditTable td textarea { 
	width:auto; 
	height:auto;
}
.EditTable .FormData td { 
	height:37px !important;
}
.ui-jqdialog-content td.EditButton {
	text-align: right; 
	padding: 3px 1px 3px 0;
}
.ui-jqdialog-content td.navButton {
	text-align: center; 
	border-left: 0 none;
	border-top: 0 none;
	border-right: 0 none; 
	padding-bottom:5px; 
	padding-top:5px;
}
.ui-jqdialog-content input.FormElement {
	padding: .5em .3em; 
	margin-bottom: 5px;
	font-size: inherit;
}
.ui-jqdialog-content select.FormElement {
	padding:.3em; 
	margin-bottom: 3px;
	font-size: inherit;
}
.ui-jqdialog-content .data-line {
	padding-top:.1em;
	border: 0 none;
}

.ui-jqdialog-content .CaptionTD {
	vertical-align: middle;
	border: 0 none; 
	padding: 2px;
	white-space: nowrap;
}
.ui-jqdialog-content .DataTD {
	padding: 2px 5px;
	border: 0 none; 
	/*vertical-align: top;*/
}
.ui-jqdialog-content .form-view-data {
	white-space:pre
}
.fm-button {  }
.fm-button-icon-left { 
	margin-left: 4px; 
	margin-right: 4px;  
}
.fm-button-icon-right { 
	margin-left: 4px; 
	margin-right: 4px; 
}
.fm-button-icon-left  {  }
.fm-button-icon-right  { }
#nData, #pData { 
	margin-left: 4px; 
	margin-right: 4px; 
}
#sData span, #cData span { 
	margin-left: 5px;
}
/* End Eorm edit */
/*.ui-jqgrid .edit-cell {}*/
.ui-jqgrid .selected-row, 
div.ui-jqgrid .selected-row td {
	font-style : normal;
}
/* inline edit actions button*/
.ui-inline-del, .ui-inline-cancel {
    margin-left: 14px;
}
.ui-jqgrid .inline-edit-cell {}
/* Tree Grid */
.ui-jqgrid .tree-wrap {
	float: left; 
	position: relative;
	height: 18px;
	white-space: nowrap;
	overflow: hidden;
}
.ui-jqgrid .tree-minus {
	position: absolute; 
	height: 18px; 
	width: 18px; 
	overflow: hidden;
}
.ui-jqgrid .tree-plus {
	position: absolute;	
	height: 18px; 
	width: 18px;	
	overflow: hidden;
}
.ui-jqgrid .tree-leaf {
	position: absolute;	
	height: 18px; 
	width: 18px;
	overflow: hidden;
}
.ui-jqgrid .treeclick {
	cursor: pointer;
}
/* moda dialog */
* iframe.jqm {
	position:absolute;
	top:0;
	left:0;
	z-index:-1;
}
/*	 width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}*/
.ui-jqgrid-dnd tr td {
	border-right-width: 1px;
	border-right-color: inherit;
	border-right-style: solid; 
	height:20px
}
/* RTL Support */
.ui-jqgrid .ui-jqgrid-caption-rtl {
	text-align: right;
}
.ui-jqgrid .ui-jqgrid-hbox-rtl {
	float: right; 
	/*padding-left: 20px;*/
}
.ui-jqgrid .ui-jqgrid-resize-ltr {
	float: right;
	margin: -2px -2px -2px 0;
	height:100%;
}
.ui-jqgrid .ui-jqgrid-resize-rtl {
	float: left;
	margin: -2px -2px -2px -0px;
}
.ui-jqgrid .ui-sort-rtl {
	
}
.ui-jqgrid .tree-wrap-ltr {
	float: left;
}
.ui-jqgrid .tree-wrap-rtl {
	float: right;
}
.ui-jqgrid .ui-ellipsis {
	-moz-text-overflow:ellipsis;
	text-overflow:ellipsis;
}
/* Toolbar Search Menu. Nav menu */
.ui-search-menu, 
.ui-nav-menu {
	position: absolute !important; 
	padding: 2px 5px; 
	z-index:99999;
}
.ui-nav-menu {
	padding: 8px 8px; 
}
.ui-search-menu.ui-menu .ui-menu-item,
.ui-nav-menu.ui-menu .ui-menu-item
{ 
	list-style-image: none; 
	padding-right: 0; 
	padding-left: 0; 
}
.ui-search-menu.ui-menu .ui-menu-item a, 
.ui-nav-menu.ui-menu .ui-menu-item a 
{ 
	display: block; 
}
.ui-search-menu.ui-menu .ui-menu-item a.g-menu-item:hover,
.ui-nav-menu.ui-menu .ui-menu-item a.g-menu-item:hover 
{ 
	margin: -1px; 
	font-weight: normal; 
}
.ui-jqgrid .ui-search-table { 
	padding: 0; 
	border: 0 none; 
	height:20px; 
	width:100%;
}
.ui-jqgrid .ui-search-table .ui-search-oper { 
	width:20px; 
	text-align: center;
}
a.g-menu-item, a.soptclass, a.clearsearchclass { 
	cursor: pointer; 
} 

.ui-menu-item a.g-menu-item .opersign 
{
	width : 23px;
}

.ui-jqgrid .ui-jqgrid-view input,
.ui-jqgrid .ui-jqgrid-view select,
.ui-jqgrid .ui-jqgrid-view textarea,
.ui-jqgrid .ui-jqgrid-view button {
    /*font-size: 11px*/
}
.ui-jqgrid .ui-scroll-popup {
	width: 100px;
}
.ui-search-table select,
.ui-search-table input 
{
	padding: 0px 0px;
}
	
.ui-disabled {
	opacity: .35;
	filter:Alpha(Opacity=35); /* support: IE8 */
	background-image: none;
}
.ui-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0,0,0,0.5);
	opacity: .3;
	filter: Alpha(Opacity=30); /* support: IE8 */
}
 
.ui-jqgrid-pager .ui-pg-table .ui-pg-button:hover,
.ui-jqgrid-toppager .ui-pg-table .ui-pg-button:hover
{
	background-color: #ddd;
}
.ui-jqgrid-corner  {
	 border-radius: 5px
}
.ui-resizable-handle {
	position: absolute;
	display: block;
	left : auto;
}
.ui-jqdialog .ui-resizable-se {
	width: 12px;
	height: 12px;
	right: -5px;
	bottom: -3px;
	left : auto;
	top: auto;
	background-position: 16px 16px;
}
.ui-resizable-icon {
	resize: both;
	overflow: auto;
}
.ui-resizable-se {
	cursor: se-resize;
	width: 12px;
	height: 12px;
	right: 1px;
	bottom: 1px;
}
.ui-top-corner {
	border-top-left-radius: 5px;
	border-top-right-radius: 5px;
}
.ui-bottom-corner {
	border-bottom-left-radius: 5px;
	border-bottom-right-radius: 5px;
}

.ui-search-table {
	margin-bottom: 0;
}
.ui-search-table .columns, .ui-search-table .operators {
	padding-right: 5px;
}
.ui-search-table .columns select,
.ui-search-table .operators select,
.ui-search-table .data select,
.ui-search-table .data input
{
	padding : 5px 2px;
	font-size: inherit;
}


.ui-search-table .opsel {
	float :left;
	width : 100px;
	margin-right : 5px;
	padding : 5px 2px;
	font-size: inherit;
}
.add-group, .add-rule, .delete-group {
	width: 14%;	
	margin-right : 5px;
}
.delete-rule {
	width : 15px;
}
ul.ui-search-menu, ul.ui-nav-menu {
	 list-style-type:  none;
	 width: auto;
}
ul.ui-search-menu li a, 
ul.ui-nav-menu li a,
.soptclass, 
.clearsearchclass {
	text-decoration: none;
	color : #010101;
}
ul.ui-search-menu li a:hover, ul.ui-nav-menu li a:hover, a.soptclass:hover, a.clearsearchclass:hover {
	background-color: #ddd;
	padding: 1px 1px;
	text-decoration: none;
}
ul.ui-search-menu li, ul.ui-nav-menu li {
	padding : 5px 5px;
}
.ui-menu-item hr {
	margin-bottom: 0px;
	margin-top:0px;
}

.ui-search-oper a.soptclass 
{
	padding-left: 0.4em !important;
	padding-right: 0.4em !important;
}

.searchFilter .ui-search-table td,
.searchFilter .ui-search-table th
{
	border-top: 0px none !important;
	padding: .45rem;
}

.searchFilter .queryresult {
	margin-bottom: 5px;
}
.searchFilter .queryresult tr td{
	border-top: 0px none;
	padding : .45rem;
}
.ui-search-label { 
	padding-left: 5px;
}

.frozen-div, .frozen-bdiv, .frozen-sdiv, .frozen-hrdiv, .frozen-rdiv {
	background-color: #fff;
}
.frozen-div .ui-jqgrid-htable {
	border-bottom: 0px none;
}
/*
.ui-jqgrid .ui-jqgrid-caption,
.ui-jqgrid .ui-jqgrid-pager,
.ui-jqgrid .ui-jqgrid-toppager,
.ui-jqgrid .ui-jqgrid-htable thead th,
.ui-jqgrid .ui-userdata-top,
.ui-jqgrid .ui-userdata-bottom,
.ui-jqgrid .ui-jqgrid-hdiv,
.ui-jqdialog .ui-jqdialog-titlebar
{
    background-image: none, linear-gradient(to bottom, #fff 0px, #e0e0e0 100%);
    background-repeat: repeat-x;
    border-color: #ccc;
    text-shadow: 0 1px 0 #fff;
}
*/
/* Column menu */
.ui-jqgrid .ui-jqgrid-htable .colmenu {
	position:absolute;
	right:1px;
	height:100%;
	color : black;
	width: 16px;
	/*cursor: context-menu;*/
}
.ui-jqgrid .ui-jqgrid-htable .colmenu-rtl {
	right: auto;
	left : 1px;
	position:absolute;
	height:100%;
	color : black;
}
.ui-jqgrid .ui-jqgrid-htable .colmenuspan {
	display:inline-block;
	padding-left: 7px;
}

.ui-jqgrid .ui-jqgrid-htable .ui-th-div {
	/*height:17px;
	margin-top:5px;*/
}
.column-menu, .ui-search-menu {
	padding: 8px 8px;
}
.column-menu .divider {
	background-color: #e5e5e5; 
	height: 1px;
	padding:0 0;
	margin: 5px 0;  
	overflow: hidden;
}
.ui-menu-item .ui-common-table .menu_icon {
	padding-right: 2px;
	padding-left: 8px;
}
td.menu_text {
	width: auto;
	padding-left: 1px;
	white-space: nowrap;
}
#search_menu .ui-menu-item div {
	padding: 3px 0;
	white-space: nowrap;
}

#search_menu  .search_buttons {
	display:inline-block;
	width:50%;
	padding: 3px 3px;
}
#search_menu  #bs_close {
	position: absolute;
	padding:  0px 0px;
	top: 0px;
	right: 0px;
}

.search_buttons .btn-default:hover {
	padding-bottom: 6px;
	padding-top: 6px;
}
.search_buttons #bs_reset {
	margin-right: 3px;
	padding: 0;
}
.search_buttons #bs_search {
	margin-left: 3px;
	padding: 0;
}
div[id^='searchcnt'] .fm-button .oi,
div[id^='searchcnt'] .fm-button .octicon
{
	padding-right:  4px;
}
/*menubar*/
.ui-jqgrid .ui-jqgrid-menubar {
	margin: 6px 5px;
	width:16px;
	height:16px;
}
.ui-jqgrid a.ui-jqgrid-menubar {
	text-decoration: none;
	color : #010101; /*default*/
}
.ui-jqgrid .ui-jqgrid-menubar:hover {
	margin: 6px 5px;
	background-color: #ddd;
	text-decoration: none;
}
.ui-jqgrid .menubar-rtl {
	float : right;
}

.ui-jqgrid .menubar-ltr {
	float : left;
}
/*printing*/

.jqgridprint {
	width : 100%;
	font-size: 13px;
}

.jqgridprint th,
.jqgridprint td {
	padding: 4px 4px 4px 4px ;
	text-align: center ;
}
.jqgridprint th {
	border-bottom: 2px solid #333333 ;
}
.jqgridprint td {
	border-bottom: 1px dotted #999999 ;
}

.jqgridprint tfoot td {
	border-bottom-width: 0px ;
	border-top: 2px solid #333333 ;
	padding-top: 20px ;
}
.ui-jqgrid td.ui-search-input,
.ui-jqgrid td.ui-search-clear,
.ui-jqgrid .ui-search-table .ui-search-oper
{
	border: 0 none;
	padding: 0 0;
	vertical-align: middle;
}

.ui-jqgrid .jqgrid-caption-menu 
{ 
	left:0;
	top:30px;
	position:absolute;
	display:none;
	font-size: inherit;
	width : auto;
}
.ui-jqgrid .jqgrid-column-menu
{
	font-size:inherit;
	width:auto;
	position :absolute;
}
.ui-jqgrid .ui-menu-item form
{
	margin: 0 8px;
}
.ui-jqgrid .ui-menu-item form input,
.ui-jqgrid .ui-menu-item form select,
.ui-jqgrid .ui-menu-item form a
{
	font-size: inherit;
	padding : 0.3rem
}
.ui-jqdialog-content .EditTable .EditButton a {
	font-size: inherit;
	padding: .275rem .375rem
}
.ui-jqdialog-content .EditTable .EditButton a > :first-child {
	padding: 0 4px;
}
.ui-jqdialog-content td.navButton a {
	font-size: inherit;
	padding: .275rem .375rem
}
.ui-jqgrid .dropdownmenu 
{
	padding: 0;
	font-size: inherit;
}
.ui-jqgrid th.jqgrid-multibox,
.ui-jqgrid td.jqgrid-multibox
{
	padding-left: 7px;
	padding-right: 7px !important;
	line-height: normal;
}
.ui-jqgrid th.jqgrid-multibox {
	text-align: center
}

.ui-jqgrid-btable tbody tr.table-active:hover > td,
.ui-jqgrid-htable thead tr > th.table-active:hover
{
  color: #212529;
  background-color: rgba(0, 0, 0, 0.075);
}

.ui-jqgrid-btable tbody tr.table-success > td
{
  background-color: #c3e6cb !important;
}

.ui-jqgrid-btable tbody tr.table-success.table-active > td 
{
	background-color: rgba(0, 0, 0, 0.075)  !important;
}
.ui-jqgrid .search-col-input
{
	padding: 1px 1px !important;
}
.ui-jqgrid .jqgrid-searchcol {
	padding:  1px 1px;
}

.jqgrid-searchcol > .form-control {
	padding:  1px 1px;
}
a.colmenu .colmenuspan 
{
	cursor: pointer;
}
.ui-jqgrid td.jqgrid-searchcol  input {
	width: 100%;
	overflow: auto;
}
.ui-col-menu {
	overflow: auto;
	height: 17em;
}css/addons/ui.multiselect.css000064400000003536151676727230012313 0ustar00/* Multiselect
----------------------------------*/

.ui-multiselect { border: solid 1px; font-size: 0.8em; }
.ui-multiselect ul { -moz-user-select: none; }
.ui-multiselect li { margin: 0; padding: 0; cursor: default; line-height: 20px; height: 20px; font-size: 11px; list-style: none; }
.ui-multiselect li a { color: #999; text-decoration: none; padding: 0; display: block; float: left; cursor: pointer;}
.ui-multiselect li.ui-draggable-dragging { padding-left: 10px; }

.ui-multiselect div.selected { position: relative; padding: 0; margin: 0; border: 0; float:left; }
.ui-multiselect ul.selected { position: relative; padding: 0; overflow: auto; overflow-x: hidden; background: #fff; margin: 0; list-style: none; border: 0; position: relative; width: 100%; }
.ui-multiselect ul.selected li { }

.ui-multiselect div.available { position: relative; padding: 0; margin: 0; border: 0; float:left; border-left: 1px solid; }
.ui-multiselect ul.available { position: relative; padding: 0; overflow: auto; overflow-x: hidden; background: #fff; margin: 0; list-style: none; border: 0; width: 100%; }
.ui-multiselect ul.available li { padding-left: 10px; }
 
.ui-multiselect .ui-state-default { border: none; margin-bottom: 1px; position: relative; padding-left: 20px;}
.ui-multiselect .ui-state-hover { border: none; }
.ui-multiselect .ui-widget-header {border: none; font-size: 11px; margin-bottom: 1px;}
 
.ui-multiselect .add-all { float: right; padding: 7px;}
.ui-multiselect .remove-all { float: right; padding: 7px;}
.ui-multiselect .search { float: left; padding: 4px;}
.ui-multiselect .count { float: left; padding: 7px;}

.ui-multiselect li span.ui-icon-arrowthick-2-n-s { position: absolute; left: 2px; }
.ui-multiselect li a.action { position: absolute; right: 2px; top: 2px; }
 
.ui-multiselect input.search { height: 14px; padding: 1px; opacity: 0.5; margin: 4px; width: 100px; }css/ui.jqgrid-bootstrap.css000064400000046112151676727230012001 0ustar00/*Grid*/
.ui-jqgrid {
	position: relative; 
	border: 1px solid #ddd;      /*default*/
	-webkit-border-radius: 3px;
	-moz-border-radius: 3px;
	border-radius: 3px;
}
.ui-jqgrid .ui-jqgrid-view {
	position: relative;
	left:0; 
	top: 0; 
	padding: 0;
}
.ui-jqgrid .ui-common-table {}

/* Caption*/
.ui-jqgrid .ui-jqgrid-titlebar {
	font-weight: normal;
	min-height:37px; 
	padding: 4px 8px; 
	position: relative; 
	margin-right: 2px;
	border-bottom: 1px solid #ddd; /*default*/

}
.ui-jqgrid .ui-jqgrid-caption {
	text-align: left;
}
.ui-jqgrid .ui-jqgrid-title { 
	padding-top: 5px; 
	vertical-align: middle;
	position: absolute;
}

.ui-jqgrid .ui-jqgrid-titlebar-close { 
	color: inherit; 
	position: absolute;
	top: 50%; 
	margin: -10px 7px 0 0; 
	padding: 1px; 
	cursor:pointer;
}
.ui-jqgrid .ui-jqgrid-titlebar-close span { 
	display: block; 
	margin: 1px; 
}
.ui-jqgrid .ui-jqgrid-titlebar-close:hover {  }

/* Header*/
.ui-jqgrid .ui-jqgrid-hdiv {
	position: relative; 
	margin: 0;
	padding: 0; 
	overflow: hidden;
}
.ui-jqgrid .ui-jqgrid-hbox {
	float: left; 
	padding-right: 20px;
}
.ui-jqgrid .ui-jqgrid-htable { 
	margin-bottom: 0; 
	table-layout: fixed; 
	border-top:none;
}
.ui-jqgrid .ui-jqgrid-htable thead th {
	overflow : hidden; 
	border-bottom : none;
	padding-right: 2px;
}
.ui-jqgrid .ui-jqgrid-htable thead th div {
	overflow: hidden; 
	position:relative;
}
.ui-th-column, .ui-jqgrid .ui-jqgrid-htable th.ui-th-column {
	overflow: hidden;
	white-space: nowrap;
}
.ui-th-column-header, 
.ui-jqgrid .ui-jqgrid-htable th.ui-th-column-header {
	overflow: hidden;
	white-space: nowrap;
}
.ui-th-ltr, .ui-jqgrid .ui-jqgrid-htable th.ui-th-ltr {}
.ui-th-rtl, .ui-jqgrid .ui-jqgrid-htable th.ui-th-rtl {text-align: center; }
.ui-first-th-ltr { }
.ui-first-th-rtl { }
.ui-jqgrid tr.jqg-first-row-header th {
	height:auto; 
	border-top:none; 
	padding-bottom: 0;
	padding-top: 0;
	border-bottom: none; 
	padding-right: 2px;
	text-align: center;
}
.ui-jqgrid tr.jqg-second-row-header th,
.ui-jqgrid tr.jqg-third--row-header th
{
	border-top:none;
	text-align: center;
}

.ui-jqgrid .ui-th-div-ie {
	white-space: nowrap; 
	height:17px;
}
.ui-jqgrid .ui-jqgrid-resize {
	height:20px !important;
	position: relative; 
	cursor :e-resize;
	display: inline;
	overflow: hidden;
}
.ui-jqgrid .ui-grid-ico-sort { 
	margin-left:5px; 
	overflow:hidden;
	position:absolute;
	right: auto;
	font-size:12px;
}
.ui-jqgrid .ui-icon-asc {
	margin-top:-3px;
}
.ui-jqgrid .ui-icon-desc {
	margin-top:4px;
}
.ui-jqgrid .ui-i-asc {
	margin-top:0;
}
.ui-jqgrid .ui-i-desc {
	margin-top:0;
	margin-right:13px;
}
.ui-jqgrid .ui-single-sort-asc {
	margin-top:0;
}
.ui-jqgrid .ui-single-sort-desc {}
.ui-jqgrid .ui-jqgrid-sortable {
	cursor:pointer;
}
.ui-jqgrid tr.ui-search-toolbar th { }
.ui-jqgrid .ui-search-table td.ui-search-clear { }
.ui-jqgrid tr.ui-search-toolbar td > input { }
.ui-jqgrid tr.ui-search-toolbar select {}

.ui-jqgrid .ui-th-column > .ui-th-div  {
	padding-left: 14px;
}
.ui-jqgrid .ui-icon-left .ui-grid-ico-sort {
	margin-left: -14px;
}


/* Body */ 
.ui-jqgrid .table-bordered,
.ui-jqgrid .table-bordered td,
.ui-jqgrid .table-bordered th.ui-th-ltr
{
	border-left:0px none !important;
}
.ui-jqgrid .table-bordered th.ui-th-rtl
{
	border-right:0px none !important;
}
.ui-jqgrid .table-bordered tr.ui-row-rtl td
{
	border-right:0px none !important;
	border-left: 1px solid #ddd !important;
}
div.tablediv > .table-bordered {
	border-left : 1px solid #ddd !important;
}
.ui-jqgrid  .ui-jqgrid-bdiv table.table-bordered td {
	border-top: 0px none;
}
.ui-jqgrid .ui-jqgrid-bdiv {
	position: relative; 
	margin: 0; 
	padding:0; 
	overflow: auto; 
	text-align:left; 
}
.ui-jqgrid .ui-jqgrid-btable {
	table-layout: fixed; 
	border-left:none ; 
	border-top:none; 
	margin-bottom: 0px
}
.ui-jqgrid tr.jqgrow {  
	outline-style: none; 
}
.ui-jqgrid tr.jqgroup {  
	outline-style: none; 
}
.ui-jqgrid .ui-jqgrid-btable tbody tr.jqgrow td { 
	overflow: hidden; 
	white-space: pre; 
	padding-right: 2px;
}
.ui-jqgrid tr.jqgfirstrow  td {
	height:auto; 
	border-top:none; 
	padding-bottom: 0;
	padding-top: 0;
	border-bottom: none; 
	padding-right: 2px;
}
.ui-jqgrid tr.jqgroup td { 
	white-space: nowrap;
}
.ui-jqgrid tr.jqfoot td {
	white-space: nowrap;
}
.ui-jqgrid tr.ui-row-ltr td {}
.ui-jqgrid tr.ui-row-rtl td {}
.ui-jqgrid td.jqgrid-rownum { }
.ui-jqgrid .ui-jqgrid-resize-mark { 
	width:2px; 
	left:0; 
	background-color:#777; 
	cursor: e-resize; 
	cursor: col-resize; 
	position:absolute; 
	top:0; 
	height:100px; 
	overflow:hidden; 
	display:none; 
	border:0 none; 
	z-index: 99999;

}
/* Footer */
.ui-jqgrid .ui-jqgrid-sdiv {
	position: relative; 
	margin: 0;
	padding: 0; 
	overflow: hidden; 
	border-left: 0 none !important; 
	border-top : 0 none !important; 
	border-right : 0 none !important;
}
.ui-jqgrid .ui-jqgrid-ftable {
	table-layout:fixed;
	margin-bottom:0;
}

.ui-jqgrid tr.footrow td {
	font-weight: bold; 
	overflow: hidden; 
	white-space:nowrap; 
	padding-right: 2px;
	border-bottom: 0px none;
}
.ui-jqgrid tr.footrow-ltr td {
	text-align:left;
}
.ui-jqgrid tr.footrow-rtl td {
	text-align:right;
}

/* Pager*/
.ui-jqgrid .ui-jqgrid-pager,
.ui-jqgrid .ui-jqgrid-toppager
{ 
	border-left-width: 0px;
	border-top: 1px solid #ddd;  
	/*padding : 4px 0px;*/
	position: relative; 
	/*height: auto; */
	white-space: nowrap;
	overflow: hidden;
}
.ui-jqgrid .ui-jqgrid-toppager {
	border-top-width :0;
	border-bottom : 1px solid #ddd;
}
.ui-jqgrid .ui-jqgrid-toppager .ui-pager-control, 
.ui-jqgrid .ui-jqgrid-pager .ui-pager-control {
	position: relative;
	border-left: 0;
	border-bottom: 0;
	border-top: 0; 
	/*height: 30px;*/
}
.ui-jqgrid .ui-pg-table {
	position: relative; 
	padding: 1px 0; 
	width:auto; 
	margin: 0;
}
.ui-jqgrid .ui-pg-table td {
	font-weight:normal; 
	vertical-align:middle; 
	/*padding:0px 6px;*/
}
.ui-jqgrid .ui-pager-control .ui-pager-table td {
	border-top : 0px none !important;
	min-height : 20px !important;
}
.ui-jqgrid .ui-pg-button  { 
	height:auto; 
}
.ui-jqgrid  .ui-paging-pager td {
	padding : 0 5px;
}
.ui-jqgrid .ui-pg-button span { 
	display: block; 
	margin: 0px 2px; 
	float:left;
}
.ui-jqgrid .ui-pg-button:hover {  }
.ui-jqgrid .ui-disabled:hover {}
.ui-jqgrid .ui-pg-input,
.ui-jqgrid .ui-jqgrid-toppager .ui-pg-input { 
	display: inline-block;
	height:auto;
	width: auto;
	font-size:.9em; 
	margin:0;
	line-height: inherit;
	border: none; 
	padding: 0px 3px
}
.ui-jqgrid .ui-pg-selbox, 
.ui-jqgrid .ui-jqgrid-toppager .ui-pg-selbox {
	font-size:.9em; 
	line-height:inherit; 
	display:block; 
	height:22px; 
	margin: 0; 
	padding: 3px 0px 3px 3px; 
	border:none;
}
.ui-jqgrid .ui-separator {
	height: 18px; 
	border : none;
	border-left: 2px solid #ccc ; /*default*/
	
}
.ui-separator-li {
	height: 2px; 
	border : none;
	border-top: 2px solid #ccc ;  /*default*/
	margin: 0; padding: 0; width:100%
}
.ui-jqgrid .ui-jqgrid-pager .ui-pg-div,
.ui-jqgrid .ui-jqgrid-toppager .ui-pg-div
{
	float:left;
	position:relative; 
}
.ui-jqgrid .ui-jqgrid-pager .ui-pg-button,
.ui-jqgrid .ui-jqgrid-toppager .ui-pg-button
{ 
	cursor:pointer; 
}
.ui-jqgrid .ui-jqgrid-pager .ui-pg-div  span,
.ui-jqgrid .ui-jqgrid-toppager .ui-pg-div  span
{
	float:left;
}
.ui-jqgrid td input, 
.ui-jqgrid td select, 
.ui-jqgrid td textarea { 
	margin: 0;
}
.ui-jqgrid td textarea {
	width:auto;
	height:auto;
}
.ui-jqgrid .ui-jqgrid-pager .ui-pager-table,
.ui-jqgrid .ui-jqgrid-toppager .ui-pager-table
{
	width:100%;
	table-layout:fixed;
	height:100%;
}
.ui-jqgrid .ui-jqgrid-pager .ui-paging-info,
.ui-jqgrid .ui-jqgrid-toppager .ui-paging-info
{ 
	font-weight: normal;
	height:auto; 
	margin-top:3px;
	margin-right:4px;
	display: inline;
}
.ui-jqgrid .ui-jqgrid-pager .ui-paging-pager,
.ui-jqgrid .ui-jqgrid-toppager .ui-paging-pager
{
	table-layout:auto;
	height:100%;
}
.ui-jqgrid .ui-jqgrid-pager .navtable,
.ui-jqgrid .ui-jqgrid-toppager .navtable
{
	float:left;
	table-layout:auto;
	height:100%;
}
.ui-jqgrid .ui-jqgrid-pager .navtable td,
.ui-jqgrid .ui-jqgrid-toppager .navtable td 
{ 
	padding : 0 5px;
}

/*Subgrid*/

.ui-jqgrid .ui-jqgrid-btable .ui-sgcollapsed span {
	display: block;
}
.ui-jqgrid .ui-subgrid {
	margin:0;
	padding:0; 
	width:100%;
}
.ui-jqgrid .ui-subgrid table {
	table-layout: fixed;
}
.ui-jqgrid .ui-subgrid tr.ui-subtblcell td {}
.ui-jqgrid .ui-subgrid td.subgrid-data {
	border-top:  0 none !important;
}
.ui-jqgrid .ui-subgrid td.subgrid-cell { 
	vertical-align: middle
}
.ui-jqgrid a.ui-sghref {
	text-decoration: none;
	color : #010101; /*default*/
}
.ui-jqgrid .ui-th-subgrid {height:20px;}
.tablediv > .row { margin: 0 0}
/* loading */
.ui-jqgrid .loading,
.loading_pivot {
	position: absolute; 
	top: 45%;
	left: 45%;
	width: auto;
	z-index:101;
	padding: 6px; 
	margin: 5px;
	text-align: center;
	display: none;
	border: 1px solid #ddd;  /*default*/
	font-size: 14px;
	background-color: #d9edf7;
}
.ui-jqgrid .jqgrid-overlay { 
	display:none;
}
/* IE * html .jqgrid-overlay {width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');} */
* .jqgrid-overlay iframe {
	position:absolute;
	top:0;
	left:0;
	z-index:-1;
}
/* IE width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}*/
/* end loading div */

/* Toolbar */
.ui-jqgrid .ui-userdata {
	padding: 4px 0px; 
	overflow: hidden; 
	min-height: 32px; 
}
.ui-jqgrid .ui-userdata-top {
	border-left-width: 0px;    /*default*/
	border-bottom: 1px solid #ddd;	
}
.ui-jqgrid .ui-userdata-bottom {
	border-left-width: 0px;    /*default*/
	border-top: 1px solid #ddd;	
}
/*Modal Window */
.ui-jqdialog { }
.ui-jqdialog { 
	display: none; 
	width: 500px; 
	position: absolute; 
	/*padding: 5px; */
	overflow:visible;
}
.ui-jqdialog .ui-jqdialog-titlebar {
	padding: .1em .1em; 
	min-height: 35px; 
}
.ui-jqdialog .ui-jqdialog-title { 
	margin: .3em 0 .2em;  
	font-weight: bold;
	padding-left :6px;
	padding-right:6px;
} 
.ui-jqdialog .ui-jqdialog-titlebar-close { 
	position: absolute;  
	top: 0%; 
	margin: 3px 5px 0 0; 
	padding: 8px;  
	cursor:pointer;
}

.ui-jqdialog .ui-jqdialog-titlebar-close span {  }
.ui-jqdialog .ui-jqdialog-titlebar-close:hover, 
.ui-jqdialog .ui-jqdialog-titlebar-close:focus { 
	padding: 8px; 
}
.ui-jqdialog-content, .ui-jqdialog .ui-jqdialog-content { 
	border: 0; 
	padding: .3em .2em; 
	background: none; 
	height:auto;
}
.ui-jqdialog .ui-jqconfirm {
	padding: .4em 1em; 
	border-width:3px;
	position:absolute;
	bottom:10px;
	right:10px;
	overflow:visible;
	display:none;
	height:120px;
	width:220px;
	text-align:center;
	background-color: #fff;
	border-radius: 4px;
	-webkit-border-radius: 4px;
	-moz-border-radius: 4px;
}
.ui-jqdialog>.ui-resizable-se { }
.ui-jqgrid>.ui-resizable-se { }
.jqgrid-overlay-modal {
	display : none;
}
/* end Modal window*/
/* Form edit */
.ui-jqdialog-content .FormGrid { 
	margin: 0 8px 0 8px; 
	overflow:auto;
	position:relative;
}
.ui-jqdialog-content .EditTable { 
	width: 100%; 
	margin-bottom:0; 
}
.ui-jqdialog-content .DelTable { 
	width: 100%; 
	margin-bottom:0;
}
.EditTable td input, 
.EditTable td select, 
.EditTable td textarea { 
	width: 98%; 
	display: inline-block;
}
.EditTable td textarea { 
	width:auto; 
	height:auto;
}
.EditTable .FormData td { 
	height:37px !important;
}
.ui-jqdialog-content td.EditButton {
	text-align: right; 
	padding: 5px 5px 5px 0;
}
.ui-jqdialog-content td.navButton {
	text-align: center; 
	border-left: 0 none;
	border-top: 0 none;
	border-right: 0 none; 
	padding-bottom:5px; 
	padding-top:5px;
}
.ui-jqdialog-content input.FormElement {
	padding: .5em .3em; 
	margin-bottom: 5px
}
.ui-jqdialog-content select.FormElement {
	padding:.3em; 
	margin-bottom: 3px;
}
.ui-jqdialog-content .data-line {
	padding-top:.1em;
	border: 0 none;
}

.ui-jqdialog-content .CaptionTD {
	vertical-align: middle;
	border: 0 none; 
	padding: 2px;
	white-space: nowrap;
}
.ui-jqdialog-content .DataTD {
	padding: 2px; 
	border: 0 none; 
	vertical-align: top;
}
.ui-jqdialog-content .form-view-data {
	white-space:pre
}
.fm-button {  }
.fm-button-icon-left { 
	margin-left: 4px; 
	margin-right: 4px;  
}
.fm-button-icon-right { 
	margin-left: 4px; 
	margin-right: 4px; 
}
.fm-button-icon-left  {  }
.fm-button-icon-right  { }
#nData, #pData { 
	margin-left: 4px; 
	margin-right: 4px; 
}
#sData span, #cData span { 
	margin-left: 5px;
}
/* End Eorm edit */
/*.ui-jqgrid .edit-cell {}*/
.ui-jqgrid .selected-row, 
div.ui-jqgrid .selected-row td {
	font-style : normal;
}
/* inline edit actions button*/
.ui-inline-del, .ui-inline-cancel {
    margin-left: 14px;
}
.ui-jqgrid .inline-edit-cell {}
/* Tree Grid */
.ui-jqgrid .tree-wrap {
	float: left; 
	position: relative;
	height: 18px;
	white-space: nowrap;
	overflow: hidden;
}
.ui-jqgrid .tree-minus {
	position: absolute; 
	height: 18px; 
	width: 18px; 
	overflow: hidden;
}
.ui-jqgrid .tree-plus {
	position: absolute;	
	height: 18px; 
	width: 18px;	
	overflow: hidden;
}
.ui-jqgrid .tree-leaf {
	position: absolute;	
	height: 18px; 
	width: 18px;
	overflow: hidden;
}
.ui-jqgrid .treeclick {
	cursor: pointer;
}
/* moda dialog */
* iframe.jqm {
	position:absolute;
	top:0;
	left:0;
	z-index:-1;
}
/*	 width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}*/
.ui-jqgrid-dnd tr td {
	border-right-width: 1px;
	border-right-color: inherit;
	border-right-style: solid; 
	height:20px
}
/* RTL Support */
.ui-jqgrid .ui-jqgrid-caption-rtl {
	text-align: right;
}
.ui-jqgrid .ui-jqgrid-hbox-rtl {
	float: right; 
	/*padding-left: 20px;*/
}
.ui-jqgrid .ui-jqgrid-resize-ltr {
	float: right;
	margin: -2px -2px -2px 0;
	height:100%;
}
.ui-jqgrid .ui-jqgrid-resize-rtl {
	float: left;
	margin: -2px -2px -2px -0px;
}
.ui-jqgrid .ui-sort-rtl {
	
}
.ui-jqgrid .tree-wrap-ltr {
	float: left;
}
.ui-jqgrid .tree-wrap-rtl {
	float: right;
}
.ui-jqgrid .ui-ellipsis {
	-moz-text-overflow:ellipsis;
	text-overflow:ellipsis;
}
/* Toolbar Search Menu. Nav menu */
.ui-search-menu, 
.ui-nav-menu {
	position: absolute; 
	padding: 2px 5px; 
	z-index:99999;
}
.ui-search-menu.ui-menu .ui-menu-item,
.ui-nav-menu.ui-menu .ui-menu-item
{ 
	list-style-image: none; 
	padding-right: 0; 
	padding-left: 0; 
}
.ui-search-menu.ui-menu .ui-menu-item a, 
.ui-nav-menu.ui-menu .ui-menu-item a 
{ 
	display: block; 
}
.ui-search-menu.ui-menu .ui-menu-item a.g-menu-item:hover,
.ui-nav-menu.ui-menu .ui-menu-item a.g-menu-item:hover 
{ 
	margin: -1px; 
	font-weight: normal; 
}
.ui-jqgrid .ui-search-table { 
	padding: 0; 
	border: 0 none; 
	height:20px; 
	width:100%;
}
.ui-jqgrid .ui-search-table .ui-search-oper { 
	width:20px; 
}
a.g-menu-item, a.soptclass, a.clearsearchclass { 
	cursor: pointer; 
} 
.ui-jqgrid .ui-jqgrid-view input,
.ui-jqgrid .ui-jqgrid-view select,
.ui-jqgrid .ui-jqgrid-view textarea,
.ui-jqgrid .ui-jqgrid-view button {
    /*font-size: 11px*/
}
.ui-jqgrid .ui-scroll-popup {
	width: 100px;
}
.ui-search-table select,
.ui-search-table input 
{
	padding: 4px 3px;
}
	
.ui-disabled {
	opacity: .35;
	filter:Alpha(Opacity=35); /* support: IE8 */
	background-image: none;
}
.ui-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0,0,0,0.5);
	opacity: .3;
	filter: Alpha(Opacity=30); /* support: IE8 */
}
 
.ui-jqgrid-pager .ui-pg-table .ui-pg-button:hover,
.ui-jqgrid-toppager .ui-pg-table .ui-pg-button:hover
{
	background-color: #ddd;
}
.ui-jqgrid-corner  {
	 border-radius: 5px
}
.ui-resizable-handle {
	/*position: absolute;*/
	display: block;
	left :auto;
}
.ui-jqdialog .ui-resizable-se {
	width: 12px;
	height: 12px;
	right: -5px;
	bottom: -5px;
	background-position: 16px 16px;
	position : absolute;
	right: 2px;
	top: 97%;
}
.ui-resizable-se {
	cursor: se-resize;
	width: 12px;
	height: 12px;
	right: 1px;
	bottom: 1px;
}
.ui-resizable-icon {
	resize: both;
	overflow: auto;
}
.ui-top-corner {
	border-top-left-radius: 5px;
	border-top-right-radius: 5px;
}
.ui-bottom-corner {
	border-bottom-left-radius: 5px;
	border-bottom-right-radius: 5px;
}

.ui-search-table {
	margin-bottom: 0;
}
.ui-search-table .columns, .ui-search-table .operators {
	padding-right: 5px;
}
.opsel {
	float :left;
	width : 100px;
	margin-right : 5px;
}
.add-group, .add-rule, .delete-group {
	width: 14%;	
	margin-right : 5px;
}
.delete-rule {
	width : 15px;
}
ul.ui-search-menu, ul.ui-nav-menu {
	 list-style-type:  none;
}
ul.ui-search-menu li a, 
ul.ui-nav-menu li a,
.soptclass, 
.clearsearchclass {
	text-decoration: none;
	color : #010101;
}
ul.ui-search-menu li a:hover, ul.ui-nav-menu li a:hover, a.soptclass:hover, a.clearsearchclass:hover {
	background-color: #ddd;
	padding: 1px 1px;
	text-decoration: none;
}
ul.ui-search-menu li, ul.ui-nav-menu li {
	padding : 5px 5px;
}
.ui-menu-item hr {
	margin-bottom: 0px;
	margin-top:0px;
}

.searchFilter .ui-search-table td,
.searchFilter .ui-search-table th
{
	border-top: 0px none !important;
}

.searchFilter .queryresult {
	margin-bottom: 5px;
}
.searchFilter .queryresult tr td{
	border-top: 0px none;
}
.ui-search-label { 
	padding-left: 5px;
}

.frozen-div, .frozen-bdiv {
	background-color: #fff;
}

/*
.ui-jqgrid .ui-jqgrid-caption,
.ui-jqgrid .ui-jqgrid-pager,
.ui-jqgrid .ui-jqgrid-toppager,
.ui-jqgrid .ui-jqgrid-htable thead th,
.ui-jqgrid .ui-userdata-top,
.ui-jqgrid .ui-userdata-bottom,
.ui-jqgrid .ui-jqgrid-hdiv,
.ui-jqdialog .ui-jqdialog-titlebar
{
    background-image: none, linear-gradient(to bottom, #fff 0px, #e0e0e0 100%);
    background-repeat: repeat-x;
    border-color: #ccc;
    text-shadow: 0 1px 0 #fff;
}
*/
/* Column menu */
.ui-jqgrid .ui-jqgrid-htable .colmenu {
	position:absolute;
	right:1px;
	height:100%;
	color : black;
}
.ui-jqgrid .ui-jqgrid-htable .colmenu-rtl {
	right: auto;
	left : 1px;
}
.ui-jqgrid .ui-jqgrid-htable .colmenuspan {
	display:inline-block;
}

.ui-jqgrid .ui-jqgrid-htable .ui-th-div {
	height:17px;
	margin-top:5px;
}
.column-menu, .ui-search-menu {
	padding: 10px 15px;
}
.column-menu .divider {
	background-color: #e5e5e5; 
	height: 1px;
	padding:0 0;
	margin: 5px 0;  
	overflow: hidden;
}
.ui-menu-item .ui-common-table .menu_icon {
	padding-right: 8px;
	padding-left: 8px;
}
td.menu_text {
	width: auto;
	padding-left: 1px;
	white-space: nowrap;
}
#search_menu .ui-menu-item div {
	padding: 3px 0;
	white-space: nowrap;
}

#search_menu  .search_buttons {
	display:inline-block;
	width:50%;
	padding: 3px 3px;
}
.search_buttons .btn-default:hover {
	padding-bottom: 6px;
	padding-top: 6px;
}
.search_buttons #bs_reset {
	margin-right: 3px;
}
.search_buttons #bs_search {
	margin-left: 3px;
}
/*menubar*/
.ui-jqgrid .ui-jqgrid-menubar {
	margin: 5px 5px;
	width:16px;
	height:16px;
}
.ui-jqgrid a.ui-jqgrid-menubar {
	text-decoration: none;
	color : #010101; /*default*/
}
.ui-jqgrid .ui-jqgrid-menubar:hover {
	margin: 5px 5px;
	background-color: #ddd;
	text-decoration: none;
}
.ui-jqgrid .menubar-rtl {
	float : right;
}

.ui-jqgrid .menubar-ltr {
	float : left;
}
/*printing*/

.jqgridprint {
	width : 100%;
	font-size: 13px;
}

.jqgridprint th,
.jqgridprint td {
	padding: 4px 4px 4px 4px ;
	text-align: center ;
}
.jqgridprint th {
	border-bottom: 2px solid #333333 ;
}
.jqgridprint td {
	border-bottom: 1px dotted #999999 ;
}

.jqgridprint tfoot td {
	border-bottom-width: 0px ;
	border-top: 2px solid #333333 ;
	padding-top: 20px ;
}
.ui-jqgrid .jqgrid-caption-menu 
{ 
	left:0;
	top:30px;
	position:absolute;
	display:none;
	font-size: inherit;
	width : auto;
}
.ui-jqgrid .jqgrid-column-menu
{
	font-size:inherit;
	width:auto;
	position :absolute;
}
build_gradle000064400000006033151676727230007126 0ustar00configurations {
    jscompiler
}

repositories {
    mavenCentral()
}

dependencies {
    jscompiler 'com.google.javascript:closure-compiler:v20141120'
}

def srcdir = new File('js')
def distdir = new File('dist')

def jqGridFile = new File(distdir, 'jquery.jqGrid.js')
def jqGridMinFile = new File(distdir, 'jquery.jqGrid.min.js')
def jqGridSrcMapFile = new File(distdir, 'jquery.jqGrid.map.js')

task init() {
    description = "Create distribution directory: $distdir.absolutePath"

    outputs.dir distdir

    doLast {
        if (!distdir.exists()) {
            distdir.mkdirs()
        }
    }
}

task jqgrid(dependsOn: 'init') {
    description = "Concatinate all javascript files into one javascript file: $jqGridFile.absolutePath"
    def files = fileTree(dir: srcdir, include: '*.js', exclude: 'jquery.jqGrid.js')
    inputs.file files
    outputs.file jqGridFile

    doLast {
        ant.concat(destfile: jqGridFile) {
            files.each { fileset(file: it) }
        }
    }
}

task 'jqgrid-min'(dependsOn: 'jqgrid') {
    description = "Minimize $jqGridFile.absolutePath to $jqGridMinFile.absolutePath"
    inputs.file jqGridFile
    outputs.file jqGridMinFile

    doLast {
        ant.taskdef(name: 'jscompile', classname: 'com.google.javascript.jscomp.ant.CompileTask', classpath: configurations.jscompiler.asPath)
        ant.jscompile(output: jqGridMinFile, warning: 'QUIET', sourceMapFormat: 'V3', sourceMapOutputFile: jqGridSrcMapFile, debug: logger.debugEnabled) {
            ant.sources(dir: jqGridFile.parent) {
                ant.file(name: jqGridFile.name)
            }
        }
    }
}

task 'min-files'(dependsOn: 'init') {
    def minDir = new File(distdir, 'min')
    description = "Minimize all javascript files to $minDir.absolutePath"
    def files = fileTree(dir: srcdir, include: '*.js')
    inputs.file files
    outputs.dir minDir

    doLast {
        if (!minDir.exists()) {
            minDir.mkdirs()
        }
        ant.taskdef(name: 'jscompile', classname: 'com.google.javascript.jscomp.ant.CompileTask', classpath: configurations.jscompiler.asPath)
        files.each { File f ->
            ant.jscompile(output: new File(minDir, f.name), warning: 'QUIET', debug: logger.debugEnabled) {
                ant.sources(dir: f.parent) {
                    ant.file(name: f.name)
                }
            }
        }
    }
}

task i18n(type: Copy, dependsOn: 'init') {
    def i18nDir = new File(distdir, 'i18n')
    description = "Copy all i18n files to $i18nDir.absolutePath"

    from new File(srcdir, 'i18n')
    into i18nDir
    include('grid.locale-*.js')
}

task clean() {
    description = "Delete distribution directory: $distdir.absolutePath"

    doLast {
        if (distdir.exists()) {
            distdir.deleteDir()
        }
    }
}

task build(dependsOn: ['jqgrid-min', 'min-files', 'i18n']) {
    description = "Build the entire distribution"
}


task wrap(type: Wrapper) {
    gradleVersion = '1.0-milestone-8a'
}
README.md000064400000001415151676727230006044 0ustar00jqGrid
======

jQuery grid plugin

jqGrid is an Ajax-enabled JavaScript control that provides solutions for 
representing and manipulating tabular data on the web. Since the grid is a 
client-side solution, loading data dynamically through Ajax callbacks, it can be
integrated with any server-side technology, including PHP, ASP, Java Servlets, 
JSP, ColdFusion, and Perl.


* Official website: [www.guriddo.net](http://www.guriddo.net)
* Official download: [www.guriddo.net/?page_id=103292](http://www.guriddo.net/?page_id=103292)
* Licensing: [www.guriddo.net/?page_id=103334](http://www.guriddo.net/?page_id=103334)
* Support: [www.guriddo.net/?page_id=912](http://www.guriddo.net/?page_id=912)
* Demo: [www.guriddo.net/demo/guriddojs](http://www.guriddo.net/demo/guriddojs/)


install.txt000064400000004047151676727230007000 0ustar00Installation

Download the jqGrid package from the www.trirand/blog site section downloads.
Note the new download manager where you can choose which modules you want to
include in the download.

In order to use jqGrid 3.5, first a UI theme css file should be loaded.
Download the desired theme (or build a custom one) from jQueryUI site
(www.jqueryui.com) and point in your link tag in head section the path to the
theme css

<link rel="stylesheet" type="text/css" media="screen" href="path_to_ui_css_file/jquery-ui-1.7.1.custom.css" />

where the path_to_ui_css_file is a valid path to the ui theme file

Extract the jqGrid package and copy the ui.jqgrid.css from css directory to
your webserver directory. It is not necessary that the jqgrid css file is in
the same directory as those of the jquery ui css.

<link rel="stylesheet" type="text/css" media="screen" href="path_to_jqgrid_css_file/ui.jqgrid.css" />

Starting with this version, jqGrid does not use a loader (which loads the
needed files one by one), but all the needed code is contained in one file.
The desired modules can be built using the jqGrid download manager from the
site pointed above. In order to use this, first a language file should be
loaded and then the jqgrid file.

Copy the desired language file from js/i18n directory to your web server
directory where you store the java script files. Every language file is
named grid.locale-XX.js, where XX is a two-letter code for the language.
Copy the jquery.jqGid.min.js file to the same or other valid directory in
your web server

Include both the files in script tags in the head section

<script src="path_to_js_files/grid.locale-en.js" type="text/javascript"></script>
<script src="path_to_js_files/jquery.jqGrid.min.js" type="text/javascript"></script>

For debugging purposes, I have created a grid.loader.js which does the same
loading of the files as in previous versions. The location of the file is in
src directory of the package. In order to use this, the variable pathojsfiles
should be adjusted to point to the appropriate folder - see 3.4.x docs.

plugins/grid.setcolumns.js000064400000012611151676727230011724 0ustar00;(function($){
/**
 * jqGrid extension for manipulating columns properties
 * Piotr Roznicki roznicki@o2.pl
 * http://www.roznicki.prv.pl
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl-2.0.html
**/
$.jgrid.extend({
	setColumns : function(p) {
		p = $.extend({
			top : 0,
			left: 0,
			width: 200,
			height: 'auto',
			dataheight: 'auto',
			modal: false,
			drag: true,
			beforeShowForm: null,
			afterShowForm: null,
			afterSubmitForm: null,
			closeOnEscape : true,
			ShrinkToFit : false,
			jqModal : false,
			saveicon: [true,"left","ui-icon-disk"],
			closeicon: [true,"left","ui-icon-close"],
			onClose : null,
			colnameview : true,
			closeAfterSubmit : true,
			updateAfterCheck : false,
			recreateForm : false
		}, $.jgrid.col, p ||{});
		return this.each(function(){
			var $t = this;
			if (!$t.grid ) { return; }
			var onBeforeShow = typeof p.beforeShowForm === 'function' ? true: false;
			var onAfterShow = typeof p.afterShowForm === 'function' ? true: false;
			var onAfterSubmit = typeof p.afterSubmitForm === 'function' ? true: false;			
			var gID = $t.p.id,
			dtbl = "ColTbl_"+gID,
			IDs = {themodal:'colmod'+gID,modalhead:'colhd'+gID,modalcontent:'colcnt'+gID, scrollelm: dtbl};
			if(p.recreateForm===true && $("#"+IDs.themodal).html() != null) {
				$("#"+IDs.themodal).remove();
			}
			if ( $("#"+IDs.themodal).html() != null ) {
				if(onBeforeShow) { p.beforeShowForm($("#"+dtbl)); }
				$.jgrid.viewModal("#"+IDs.themodal,{gbox:"#gbox_"+gID,jqm:p.jqModal, jqM:false, modal:p.modal});
				if(onAfterShow) { p.afterShowForm($("#"+dtbl)); }
			} else {
				var dh = isNaN(p.dataheight) ? p.dataheight : p.dataheight+"px";
				var formdata = "<div id='"+dtbl+"' class='formdata' style='width:100%;overflow:auto;position:relative;height:"+dh+";'>";
				formdata += "<table class='ColTable' cellspacing='1' cellpading='2' border='0'><tbody>";
				for(i=0;i<this.p.colNames.length;i++){
					if(!$t.p.colModel[i].hidedlg) { // added from T. Tomov
						formdata += "<tr><td style='white-space: pre;'><input type='checkbox' style='margin-right:5px;' id='col_" + this.p.colModel[i].name + "' class='cbox' value='T' " + 
						((this.p.colModel[i].hidden===false)?"checked":"") + "/>" +  "<label for='col_" + this.p.colModel[i].name + "'>" + this.p.colNames[i] + ((p.colnameview) ? " (" + this.p.colModel[i].name + ")" : "" )+ "</label></td></tr>";
					}
				}
				formdata += "</tbody></table></div>"
				var bS  = !p.updateAfterCheck ? "<a href='javascript:void(0)' id='dData' class='fm-button ui-state-default ui-corner-all'>"+p.bSubmit+"</a>" : "",
				bC  ="<a href='javascript:void(0)' id='eData' class='fm-button ui-state-default ui-corner-all'>"+p.bCancel+"</a>";
				formdata += "<table border='0' class='EditTable' id='"+dtbl+"_2'><tbody><tr style='display:block;height:3px;'><td></td></tr><tr><td class='DataTD ui-widget-content'></td></tr><tr><td class='ColButton EditButton'>"+bS+"&#160;"+bC+"</td></tr></tbody></table>";
				p.gbox = "#gbox_"+gID;
				$.jgrid.createModal(IDs,formdata,p,"#gview_"+$t.p.id,$("#gview_"+$t.p.id)[0]);
				if(p.saveicon[0]==true) {
					$("#dData","#"+dtbl+"_2").addClass(p.saveicon[1] == "right" ? 'fm-button-icon-right' : 'fm-button-icon-left')
					.append("<span class='ui-icon "+p.saveicon[2]+"'></span>");
				}
				if(p.closeicon[0]==true) {
					$("#eData","#"+dtbl+"_2").addClass(p.closeicon[1] == "right" ? 'fm-button-icon-right' : 'fm-button-icon-left')
					.append("<span class='ui-icon "+p.closeicon[2]+"'></span>");
				}
				if(!p.updateAfterCheck) {
					$("#dData","#"+dtbl+"_2").click(function(e){
						for(i=0;i<$t.p.colModel.length;i++){
							if(!$t.p.colModel[i].hidedlg) { // added from T. Tomov
								var nm = $t.p.colModel[i].name.replace(/\./g, "\\.");
								if($("#col_" + nm,"#"+dtbl).attr("checked")) {
									$($t).jqGrid("showCol",$t.p.colModel[i].name);
									$("#col_" + nm,"#"+dtbl).attr("defaultChecked",true); // Added from T. Tomov IE BUG
								} else {
									$($t).jqGrid("hideCol",$t.p.colModel[i].name);
									$("#col_" + nm,"#"+dtbl).attr("defaultChecked",""); // Added from T. Tomov IE BUG
								}
							}
						}
						if(p.ShrinkToFit===true) {
							$($t).jqGrid("setGridWidth",$t.grid.width-0.001,true);
						}
						if(p.closeAfterSubmit) $.jgrid.hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal, onClose: p.onClose});
						if (onAfterSubmit) { p.afterSubmitForm($("#"+dtbl)); }
						return false;
					});
				} else {
					$(":input","#"+dtbl).click(function(e){
						var cn = this.id.substr(4);
						if(cn){
							if(this.checked) {
								$($t).jqGrid("showCol",cn);
							} else {
								$($t).jqGrid("hideCol",cn);
							}
							if(p.ShrinkToFit===true) {
								$($t).jqGrid("setGridWidth",$t.grid.width-0.001,true);
							}
						}
						return this;
					});
				}
				$("#eData", "#"+dtbl+"_2").click(function(e){
					$.jgrid.hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal, onClose: p.onClose});
					return false;
				});
				$("#dData, #eData","#"+dtbl+"_2").hover(
				   function(){$(this).addClass('ui-state-hover');}, 
				   function(){$(this).removeClass('ui-state-hover');}
				);				
				if(onBeforeShow) { p.beforeShowForm($("#"+dtbl)); }
				$.jgrid.viewModal("#"+IDs.themodal,{gbox:"#gbox_"+gID,jqm:p.jqModal, jqM: true, modal:p.modal});
				if(onAfterShow) { p.afterShowForm($("#"+dtbl)); }
			}
		});
	}
});
})(jQuery);plugins/grid.addons.js000064400000062222151676727230011003 0ustar00(function($){
/*
 * jqGrid methods without support. Use as you wish
 * Tony Tomov tony@trirand.com
 * http://trirand.com/blog/
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl-2.0.html
 *
 * This list of deprecated methods.
 * If you instead want to use them, please include this file after the grid main file.
 * Some methods will be then overwritten.
 *
 */
/*global jQuery, $ */

$.jgrid.extend({
// This is the ols search Filter method used in navigator.
	searchGrid : function (p) {
		p = $.extend({
			recreateFilter: false,
			drag: true,
			sField:'searchField',
			sValue:'searchString',
			sOper: 'searchOper',
			sFilter: 'filters',
            loadDefaults: true, // this options activates loading of default filters from grid's postData for Multipe Search only.
			beforeShowSearch: null,
			afterShowSearch : null,
			onInitializeSearch: null,
			closeAfterSearch : false,
			closeAfterReset: false,
			closeOnEscape : false,
			multipleSearch : false,
			cloneSearchRowOnAdd: true,
			// translation
			// if you want to change or remove the order change it in sopt
			// ['bw','eq','ne','lt','le','gt','ge','ew','cn']
			sopt: null,
			// Note: stringResult is intentionally declared "undefined by default".
			//  you are velcome to define stringResult expressly in the options you pass to searchGrid()
			//  stringResult is a "safeguard" measure to insure we post sensible data when communicated as form-encoded
			//  see http://github.com/tonytomov/jqGrid/issues/#issue/36
			//
			//  If this value is not expressly defined in the incoming options,
			// lower in the code we will infer the value based on value of multipleSearch
			stringResult: undefined,
			onClose : null,
			// useDataProxy allows ADD, EDIT and DEL code to bypass calling $.ajax
			// directly when grid's 'dataProxy' property (grid.p.dataProxy) is a function.
			// Used for "editGridRow" and "delGridRow" below and automatically flipped to TRUE
			// when ajax setting's 'url' (grid's 'editurl') property is undefined.
			// When 'useDataProxy' is true, instead of calling $.ajax.call(gridDOMobj, o, i) we call
			// gridDOMobj.p.dataProxy.call(gridDOMobj, o, i)
			//
			// Behavior is extremely similar to when 'datatype' is a function, but arguments are slightly different.
			// Normally the following is fed to datatype.call(a, b, c):
			//   a = Pointer to grid's table DOM element, b = grid.p.postdata, c = "load_"+grid's ID
			// In cases of "edit" and "del" the following is fed:
			//   a = Pointer to grid's table DOM element (same),
			//   b = extended Ajax Options including postdata in "data" property. (different object type)
			//   c = "set_"+grid's ID in case of "edit" and "del_"+grid's ID in case of "del" (same type, different content)
			// The major difference is that complete ajax options object, with attached "complete" and "error"
			// callback functions is fed instead of only post data.
			// This allows you to emulate a $.ajax call (including calling "complete"/"error"),
			// while retrieving the data locally in the browser.
			useDataProxy: false,
			overlay : true
		}, $.jgrid.search, p || {});
		return this.each(function() {
			var $t = this;
			if(!$t.grid) {return;}
			var fid = "fbox_"+$t.p.id,
			showFrm = true;
            function applyDefaultFilters(gridDOMobj, filterSettings) {
				/*
                gridDOMobj = ointer to grid DOM object ( $(#list)[0] )
                What we need from gridDOMobj:
                gridDOMobj.SearchFilter is the pointer to the Search box, once it's created.
                gridDOMobj.p.postData - dictionary of post settings. These can be overriden at grid creation to
                contain default filter settings. We will parse these and will populate the search with defaults.
                filterSettings - same settings object you (would) pass to $().jqGrid('searchGrid', filterSettings);
                */

                // Pulling default filter settings out of postData property of grid's properties.:
                var defaultFilters = gridDOMobj.p.postData[filterSettings.sFilter];
                // example of what we might get: {"groupOp":"and","rules":[{"field":"amount","op":"eq","data":"100"}]}
				// suppose we have imported this with grid import, the this is a string.
				if(typeof(defaultFilters) == "string") {
					defaultFilters = $.jgrid.parse(defaultFilters);
				}
                if (defaultFilters) {
                    if (defaultFilters.groupOp) {
                        gridDOMobj.SearchFilter.setGroupOp(defaultFilters.groupOp);
                    }
                    if (defaultFilters.rules) {
                        var f, i = 0, li = defaultFilters.rules.length, success = false;
                        for (; i < li; i++) {
                            f = defaultFilters.rules[i];
                            // we are not trying to counter all issues with filter declaration here. Just the basics to avoid lookup exceptions.
                            if (f.field !== undefined && f.op !== undefined && f.data !== undefined) {
                                success = gridDOMobj.SearchFilter.setFilter({
                                    'sfref':gridDOMobj.SearchFilter.$.find(".sf:last"),
                                    'filter':$.extend({},f)
                                });
								if (success) { gridDOMobj.SearchFilter.add(); }
                            }
                        }
                    }
				}
            } // end of applyDefaultFilters
			function hideFilter(selector) {
				if(p.onClose){
					var fclm = p.onClose(selector);
					if(typeof fclm == 'boolean' && !fclm) { return; }
				}
				selector.hide();
				if(p.overlay === true) {
					$(".jqgrid-overlay:first","#gbox_"+$t.p.id).hide();
				}
			}
			function showFilter(){
				var fl = $(".ui-searchFilter").length;
				if(fl > 1) {
					var zI = $("#"+fid).css("zIndex");
					$("#"+fid).css({zIndex:parseInt(zI,10)+fl});
				}
				$("#"+fid).show();
				if(p.overlay === true) {
					$(".jqgrid-overlay:first","#gbox_"+$t.p.id).show();
				}
				try{$(':input:visible',"#"+fid)[0].focus();}catch(_){}
			}
			function searchFilters(filters) {
				var hasFilters = (filters !== undefined),
				grid = $("#"+$t.p.id),
				sdata={};
				if(p.multipleSearch===false) {
					sdata[p.sField] = filters.rules[0].field;
					sdata[p.sValue] = filters.rules[0].data;
					sdata[p.sOper] = filters.rules[0].op;
					if(sdata.hasOwnProperty(p.sFilter) ) {
						delete sdata[p.sFilter];
					}
				} else {
					sdata[p.sFilter] = filters;
					$.each([p.sField, p.sValue, p.sOper], function(i, n){
						if(sdata.hasOwnProperty(n)) { delete sdata[n];}
					});
				}
				grid[0].p.search = hasFilters;
				$.extend(grid[0].p.postData,sdata);
				grid.trigger("reloadGrid",[{page:1}]);
				if(p.closeAfterSearch) { hideFilter($("#"+fid)); }
			}
			function resetFilters(op) {
				var reload = op && op.hasOwnProperty("reload") ? op.reload : true,
				grid = $("#"+$t.p.id),
				sdata={};
				grid[0].p.search = false;
				if(p.multipleSearch===false) {
					sdata[p.sField] = sdata[p.sValue] = sdata[p.sOper] = "";
				} else {
					sdata[p.sFilter] = "";
				}
				$.extend(grid[0].p.postData,sdata);
				if(reload) {
					grid.trigger("reloadGrid",[{page:1}]);
				}
				if(p.closeAfterReset) { hideFilter($("#"+fid)); }
			}
			if($.fn.searchFilter) {
				if(p.recreateFilter===true) {$("#"+fid).remove();}
				if( $("#"+fid).html() != null ) {
					if ( $.isFunction(p.beforeShowSearch) ) {
						showFrm = p.beforeShowSearch($("#"+fid));
						if(typeof(showFrm) == "undefined") {
							showFrm = true;
						}
					}
					if(showFrm === false) { return; }
					showFilter();
					if( $.isFunction(p.afterShowSearch) ) { p.afterShowSearch($("#"+fid)); }
				} else {
					var fields = [],
					colNames = $("#"+$t.p.id).jqGrid("getGridParam","colNames"),
					colModel = $("#"+$t.p.id).jqGrid("getGridParam","colModel"),
					stempl = ['eq','ne','lt','le','gt','ge','bw','bn','in','ni','ew','en','cn','nc'],
					j,pos,k,oprtr=[];
					if (p.sopt !==null) {
						k=0;
						for(j=0;j<p.sopt.length;j++) {
							if( (pos= $.inArray(p.sopt[j],stempl)) != -1 ){
								oprtr[k] = {op:p.sopt[j],text: p.odata[pos].text};
								k++;
							}
						}
					} else {
						for(j=0;j<stempl.length;j++) {
							oprtr[j] = {op:stempl[j],text: p.odata[j].text};
						}
					}
				    $.each(colModel, function(i, v) {
				        var searchable = (typeof v.search === 'undefined') ?  true: v.search ,
				        hidden = (v.hidden === true),
						soptions = $.extend({}, {text: colNames[i], itemval: v.index || v.name}, this.searchoptions),
						ignoreHiding = (soptions.searchhidden === true);
						if(typeof soptions.sopt !== 'undefined') {
							k=0;
							soptions.ops =[];
							if(soptions.sopt.length>0) {
								for(j=0;j<soptions.sopt.length;j++) {
									if( (pos= $.inArray(soptions.sopt[j],stempl)) != -1 ){
										soptions.ops[k] = {op:soptions.sopt[j],text: p.odata[pos].text};
										k++;
									}
								}
							}
						}
						if(typeof(this.stype) === 'undefined') { this.stype='text'; }
						if(this.stype == 'select') {
							if ( soptions.dataUrl !== undefined) {}
							else {
								var eov;
								if(soptions.value) {
									eov = soptions.value;
								} else if(this.editoptions) {
									eov = this.editoptions.value;
								}
								if(eov) {
									soptions.dataValues =[];
									if(typeof(eov) === 'string') {
										var so = eov.split(";"),sv;
										for(j=0;j<so.length;j++) {
											sv = so[j].split(":");
											soptions.dataValues[j] ={value:sv[0],text:sv[1]};
										}
									} else if (typeof(eov) === 'object') {
										j=0;
										for (var key in eov) {
											if(eov.hasOwnProperty(key)) {
												soptions.dataValues[j] ={value:key,text:eov[key]};
												j++;
											}
										}
									}
								}
							}
						}
				        if ((ignoreHiding && searchable) || (searchable && !hidden)) {
							fields.push(soptions);
						}
					});
					if(fields.length>0){
						$("<div id='"+fid+"' role='dialog' tabindex='-1'></div>").insertBefore("#gview_"+$t.p.id);
						// Before we create searchFilter we need to decide if we want to get back a string or a JS object.
						//  see http://github.com/tonytomov/jqGrid/issues/#issue/36 for background on the issue.
						// If p.stringResult is defined, it was explisitly passed to us by user. Honor the choice, whatever it is.
						if (p.stringResult===undefined) {
							// to provide backward compatibility, inferring stringResult value from multipleSearch
							p.stringResult = p.multipleSearch;
						}
						// we preserve the return value here to retain access to .add() and other good methods of search form.
						$t.SearchFilter = $("#"+fid).searchFilter(fields, { groupOps: p.groupOps, operators: oprtr, onClose:hideFilter, resetText: p.Reset, searchText: p.Find, windowTitle: p.caption,  rulesText:p.rulesText, matchText:p.matchText, onSearch: searchFilters, onReset: resetFilters,stringResult:p.stringResult, ajaxSelectOptions: $.extend({},$.jgrid.ajaxOptions,$t.p.ajaxSelectOptions ||{}), clone: p.cloneSearchRowOnAdd });
						$(".ui-widget-overlay","#"+fid).remove();
						if($t.p.direction=="rtl") { $(".ui-closer","#"+fid).css("float","left"); }
						if (p.drag===true) {
							$("#"+fid+" table thead tr:first td:first").css('cursor','move');
							if(jQuery.fn.jqDrag) {
								$("#"+fid).jqDrag($("#"+fid+" table thead tr:first td:first"));
							} else {
								try {
									$("#"+fid).draggable({handle: $("#"+fid+" table thead tr:first td:first")});
								} catch (e) {}
							}
						}
						if(p.multipleSearch === false) {
							$(".ui-del, .ui-add, .ui-del, .ui-add-last, .matchText, .rulesText", "#"+fid).hide();
							$("select[name='groupOp']","#"+fid).hide();
						}
                        if (p.multipleSearch === true && p.loadDefaults === true) {
                            applyDefaultFilters($t, p);
                        }
						if ( $.isFunction(p.onInitializeSearch) ) { p.onInitializeSearch( $("#"+fid) ); }
						if ( $.isFunction(p.beforeShowSearch) ) {
							showFrm = p.beforeShowSearch($("#"+fid));
							if(typeof(showFrm) == "undefined") {
								showFrm = true;
							}
						}
						if(showFrm === false) { return; }
						showFilter();
						if( $.isFunction(p.afterShowSearch) ) { p.afterShowSearch($("#"+fid)); }
						if(p.closeOnEscape===true){
							$("#"+fid).keydown( function( e ) {
								if( e.which == 27 ) {
									hideFilter($("#"+fid));
								}
								if (e.which == 13) {
									$(".ui-search", this).click();
								}
							});
						}
					}
				}
			}
		});
	},
	// methods taken from grid.custom.
	updateGridRows : function (data, rowidname, jsonreader) {
		var nm, success=false, title;
		this.each(function(){
			var t = this, vl, ind, srow, sid;
			if(!t.grid) {return false;}
			if(!rowidname) { rowidname = "id"; }
			if( data  && data.length >0 ) {
				$(data).each(function(j){
					srow = this;
					ind = t.rows.namedItem(srow[rowidname]);
					if(ind) {
						sid = srow[rowidname];
						if(jsonreader === true){
							if(t.p.jsonReader.repeatitems === true) {
								if(t.p.jsonReader.cell) {srow = srow[t.p.jsonReader.cell];}
								for (var k=0;k<srow.length;k++) {
									vl = t.formatter( sid, srow[k], k, srow, 'edit');
									title = t.p.colModel[k].title ? {"title":$.jgrid.stripHtml(vl)} : {};
									if(t.p.treeGrid===true && nm == t.p.ExpandColumn) {
										$("td:eq("+k+") > span:first",ind).html(vl).attr(title);
									} else {
										$("td:eq("+k+")",ind).html(vl).attr(title);
									}
								}
								success = true;
								return true;
							}
						}
						$(t.p.colModel).each(function(i){
							nm = jsonreader===true ? this.jsonmap || this.name :this.name;
							if( srow[nm] !== undefined) {
								vl = t.formatter( sid, srow[nm], i, srow, 'edit');
								title = this.title ? {"title":$.jgrid.stripHtml(vl)} : {};
								if(t.p.treeGrid===true && nm == t.p.ExpandColumn) {
									$("td:eq("+i+") > span:first",ind).html(vl).attr(title);
								} else {
									$("td:eq("+i+")",ind).html(vl).attr(title);
								}
								success = true;
							}
						});
					}
				});
			}
		});
		return success;
	},
	// Form search - sorry for this method. Instead use ne jqFilter method.
	filterGrid : function(gridid,p){
		p = $.extend({
			gridModel : false,
			gridNames : false,
			gridToolbar : false,
			filterModel: [], // label/name/stype/defval/surl/sopt
			formtype : "horizontal", // horizontal/vertical
			autosearch: true, // if set to false a serch button should be enabled.
			formclass: "filterform",
			tableclass: "filtertable",
			buttonclass: "filterbutton",
			searchButton: "Search",
			clearButton: "Clear",
			enableSearch : false,
			enableClear: false,
			beforeSearch: null,
			afterSearch: null,
			beforeClear: null,
			afterClear: null,
			url : '',
			marksearched: true
		},p  || {});
		return this.each(function(){
			var self = this;
			this.p = p;
			if(this.p.filterModel.length === 0 && this.p.gridModel===false) { alert("No filter is set"); return;}
			if( !gridid) {alert("No target grid is set!"); return;}
			this.p.gridid = gridid.indexOf("#") != -1 ? gridid : "#"+gridid;
			var gcolMod = $(this.p.gridid).jqGrid("getGridParam",'colModel');
			if(gcolMod) {
				if( this.p.gridModel === true) {
					var thegrid = $(this.p.gridid)[0];
					var sh;
					// we should use the options search, edittype, editoptions
					// additionally surl and defval can be added in grid colModel
					$.each(gcolMod, function (i,n) {
						var tmpFil = [];
						this.search = this.search === false ? false : true;
						if(this.editrules && this.editrules.searchhidden === true) {
							sh = true;
						} else {
							if(this.hidden === true ) {
								sh = false;
							} else {
								sh = true;
							}
						}
						if( this.search === true && sh === true) {
							if(self.p.gridNames===true) {
								tmpFil.label = thegrid.p.colNames[i];
							} else {
								tmpFil.label = '';
							}
							tmpFil.name = this.name;
							tmpFil.index = this.index || this.name;
							// we support only text and selects, so all other to text
							tmpFil.stype = this.edittype || 'text';
							if(tmpFil.stype != 'select' ) {
								tmpFil.stype = 'text';
							}
							tmpFil.defval = this.defval || '';
							tmpFil.surl = this.surl || '';
							tmpFil.sopt = this.editoptions || {};
							tmpFil.width = this.width;
							self.p.filterModel.push(tmpFil);
						}
					});
				} else {
					$.each(self.p.filterModel,function(i,n) {
						for(var j=0;j<gcolMod.length;j++) {
							if(this.name == gcolMod[j].name) {
								this.index = gcolMod[j].index || this.name;
								break;
							}
						}
						if(!this.index) {
							this.index = this.name;
						}
					});
				}
			} else {
				alert("Could not get grid colModel"); return;
			}
			var triggerSearch = function() {
				var sdata={}, j=0, v;
				var gr = $(self.p.gridid)[0], nm;
                gr.p.searchdata = {};
				if($.isFunction(self.p.beforeSearch)){self.p.beforeSearch();}
				$.each(self.p.filterModel,function(i,n){
                    nm = this.index;
					if(this.stype === 'select') {
						v = $("select[name="+nm+"]",self).val();
						if(v) {
							sdata[nm] = v;
							if(self.p.marksearched){
								$("#jqgh_"+this.name,gr.grid.hDiv).addClass("dirty-cell");
							}
							j++;
						} else {
							if(self.p.marksearched){
								$("#jqgh_"+this.name,gr.grid.hDiv).removeClass("dirty-cell");
							}
                               try {
                                   delete gr.p.postData[this.index];
                               } catch (e) {}
						}
					} else {
						v = $("input[name="+nm+"]",self).val();
						if(v) {
							sdata[nm] = v;
							if(self.p.marksearched){
								$("#jqgh_"+this.name,gr.grid.hDiv).addClass("dirty-cell");
							}
							j++;
						} else {
							if(self.p.marksearched){
								$("#jqgh_"+this.name,gr.grid.hDiv).removeClass("dirty-cell");
							}
								try {
									delete gr.p.postData[this.index];
                            } catch(x) {}
						}
					}
				});
				var sd =  j>0 ? true : false;
                $.extend(gr.p.postData,sdata);
				var saveurl;
				if(self.p.url) {
					saveurl = $(gr).jqGrid("getGridParam",'url');
					$(gr).jqGrid("setGridParam",{url:self.p.url});
				}
			    $(gr).jqGrid("setGridParam",{search:sd}).trigger("reloadGrid",[{page:1}]);
				if(saveurl) {$(gr).jqGrid("setGridParam",{url:saveurl});}
				if($.isFunction(self.p.afterSearch)){self.p.afterSearch();}
			};
			var clearSearch = function(){
				var sdata={}, v, j=0;
				var gr = $(self.p.gridid)[0], nm;
				if($.isFunction(self.p.beforeClear)){self.p.beforeClear();}
				$.each(self.p.filterModel,function(i,n){
                    nm = this.index;
					v = (this.defval) ? this.defval : "";
					if(!this.stype){this.stype='text';}
					switch (this.stype) {
						case 'select' :
							var v1;
							$("select[name="+nm+"] option",self).each(function (i){
                                if(i===0) { this.selected = true; }
								if ($(this).text() == v) {
									this.selected = true;
									v1 = $(this).val();
									return false;
								}
							});
							if(v1) {
								// post the key and not the text
								sdata[nm] = v1;
								if(self.p.marksearched){
									$("#jqgh_"+this.name,gr.grid.hDiv).addClass("dirty-cell");
								}
								j++;
							} else {
								if(self.p.marksearched){
									$("#jqgh_"+this.name,gr.grid.hDiv).removeClass("dirty-cell");
								}
                                try {
                                    delete gr.p.postData[this.index];
                                } catch (e) {}
							}
							break;
						case 'text':
							$("input[name="+nm+"]",self).val(v);
							if(v) {
								sdata[nm] = v;
								if(self.p.marksearched){
									$("#jqgh_"+this.name,gr.grid.hDiv).addClass("dirty-cell");
								}
								j++;
							} else {
								if(self.p.marksearched){
									$("#jqgh_"+this.name,gr.grid.hDiv).removeClass("dirty-cell");
								}
                                try {
                                    delete gr.p.postData[this.index];
                                } catch (k) {}
							}
                            break;
					}
				});
				var sd =  j>0 ? true : false;
                $.extend(gr.p.postData,sdata);
				var saveurl;
				if(self.p.url) {
					saveurl = $(gr).jqGrid("getGridParam",'url');
					$(gr).jqGrid("setGridParam",{url:self.p.url});
				}
				$(gr).jqGrid("setGridParam",{search:sd}).trigger("reloadGrid",[{page:1}]);
				if(saveurl) {$(gr).jqGrid("setGridParam",{url:saveurl});}
				if($.isFunction(self.p.afterClear)){self.p.afterClear();}
			};
			var tbl;
			var formFill = function(){
				var tr = document.createElement("tr");
				var tr1, sb, cb,tl,td;
				if(self.p.formtype=='horizontal'){
					$(tbl).append(tr);
				}
				$.each(self.p.filterModel,function(i,n){
					tl = document.createElement("td");
					$(tl).append("<label for='"+this.name+"'>"+this.label+"</label>");
					td = document.createElement("td");
					var $t=this;
					if(!this.stype) { this.stype='text';}
					switch (this.stype)
					{
					case "select":
						if(this.surl) {
							// data returned should have already constructed html select
							$(td).load(this.surl,function(){
								if($t.defval) { $("select",this).val($t.defval); }
								$("select",this).attr({name:$t.index || $t.name, id: "sg_"+$t.name});
								if($t.sopt) { $("select",this).attr($t.sopt); }
								if(self.p.gridToolbar===true && $t.width) {
									$("select",this).width($t.width);
								}
								if(self.p.autosearch===true){
									$("select",this).change(function(e){
										triggerSearch();
										return false;
									});
								}
							});
						} else {
							// sopt to construct the values
							if($t.sopt.value) {
								var oSv = $t.sopt.value;
								var elem = document.createElement("select");
								$(elem).attr({name:$t.index || $t.name, id: "sg_"+$t.name}).attr($t.sopt);
								var so, sv, ov;
								if(typeof oSv === "string") {
									so = oSv.split(";");
									for(var k=0; k<so.length;k++){
										sv = so[k].split(":");
										ov = document.createElement("option");
										ov.value = sv[0]; ov.innerHTML = sv[1];
										if (sv[1]==$t.defval) { ov.selected ="selected"; }
										elem.appendChild(ov);
									}
								} else if(typeof oSv === "object" ) {
									for ( var key in oSv) {
										if(oSv.hasOwnProperty(key)) {
											i++;
											ov = document.createElement("option");
											ov.value = key; ov.innerHTML = oSv[key];
											if (oSv[key]==$t.defval) { ov.selected ="selected"; }
											elem.appendChild(ov);
										}
									}
								}
								if(self.p.gridToolbar===true && $t.width) {
									$(elem).width($t.width);
								}
								$(td).append(elem);
								if(self.p.autosearch===true){
									$(elem).change(function(e){
										triggerSearch();
										return false;
									});
								}
							}
						}
						break;
					case 'text':
						var df = this.defval ? this.defval: "";
						$(td).append("<input type='text' name='"+(this.index || this.name)+"' id='sg_"+this.name+"' value='"+df+"'/>");
						if($t.sopt) { $("input",td).attr($t.sopt); }
						if(self.p.gridToolbar===true && $t.width) {
							if($.browser.msie) {
								$("input",td).width($t.width-4);
							} else {
								$("input",td).width($t.width-2);
							}
						}
						if(self.p.autosearch===true){
							$("input",td).keypress(function(e){
								var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
								if(key == 13){
									triggerSearch();
									return false;
								}
								return this;
							});
						}
						break;
					}
					if(self.p.formtype=='horizontal'){
						if(self.p.gridToolbar===true && self.p.gridNames===false) {
							$(tr).append(td);
						} else {
							$(tr).append(tl).append(td);
						}
						$(tr).append(td);
					} else {
						tr1 = document.createElement("tr");
						$(tr1).append(tl).append(td);
						$(tbl).append(tr1);
					}
				});
				td = document.createElement("td");
				if(self.p.enableSearch === true){
					sb = "<input type='button' id='sButton' class='"+self.p.buttonclass+"' value='"+self.p.searchButton+"'/>";
					$(td).append(sb);
					$("input#sButton",td).click(function(){
						triggerSearch();
						return false;
					});
				}
				if(self.p.enableClear === true) {
					cb = "<input type='button' id='cButton' class='"+self.p.buttonclass+"' value='"+self.p.clearButton+"'/>";
					$(td).append(cb);
					$("input#cButton",td).click(function(){
						clearSearch();
						return false;
					});
				}
				if(self.p.enableClear === true || self.p.enableSearch === true) {
					if(self.p.formtype=='horizontal') {
						$(tr).append(td);
					} else {
						tr1 = document.createElement("tr");
						$(tr1).append("<td>&#160;</td>").append(td);
						$(tbl).append(tr1);
					}
				}
			};
			var frm = $("<form name='SearchForm' style=display:inline;' class='"+this.p.formclass+"'></form>");
			tbl =$("<table class='"+this.p.tableclass+"' cellspacing='0' cellpadding='0' border='0'><tbody></tbody></table>");
			$(frm).append(tbl);
			formFill();
			$(this).append(frm);
			this.triggerSearch = triggerSearch;
			this.clearSearch = clearSearch;
		});
	}

});
})(jQuery);
plugins/searchFilter.css000064400000000611151676727230011370 0ustar00.ui-searchFilter { display: none; position: absolute; z-index: 770; overflow: visible;}
.ui-searchFilter table {position:relative; margin:0em; width:auto}
.ui-searchFilter table td {margin: 0em; padding: 1px;}
.ui-searchFilter table td input, .ui-searchFilter table td select {margin: 0.1em;}
.ui-searchFilter .ui-state-default { cursor: pointer; }
.ui-searchFilter .divider hr {margin: 1px; }plugins/jquery.searchFilter.js000064400000111631151676727230012537 0ustar00/* Plugin:      searchFilter v1.2.9
 * Author:      Kasey Speakman (kasey@cornerspeed.com)
 * License:     Dual Licensed, MIT and GPL v2 (http://www.gnu.org/licenses/gpl-2.0.html)
 *
 * REQUIREMENTS:
 *    jQuery 1.3+           (http://jquery.com/)
 *    A Themeroller Theme   (http://jqueryui.com/themeroller/)
 *
 * SECURITY WARNING
 *    You should always implement server-side checking to ensure that
 *    the query will fail when forged/invalid data is received.
 *    Clever users can send any value they want through JavaScript and HTTP POST/GET.
 *
 * THEMES
 *    Simply include the CSS file for your Themeroller theme.
 *
 * DESCRIPTION
 *     This plugin creates a new searchFilter object in the specified container
 *
 * INPUT TYPE
 *     fields:  an array of field objects. each object has the following properties:
 *              text: a string containing the display name of the field (e.g. "Field 1")
 *              itemval: a string containing the actual field name (e.g. "field1")
 *              optional properties:
 *                  ops: an array of operators in the same format as jQuery.fn.searchFilter.defaults.operators
 *                       that is: [ { op: 'gt', text: 'greater than'}, { op:'lt', text: 'less than'}, ... ]
 *                       if not specified, the passed-in options used, and failting that, jQuery.fn.searchFilter.defaults.operators will be used
 *                  *** NOTE ***
 *                  Specifying a dataUrl or dataValues property means that a <select ...> (drop-down-list) will be generated
 *                  instead of a text input <input type='text'.../> where the user would normally type in their search data
 *                  ************
 *                  dataUrl: a url that will return the html select for this field, this url will only be called once for this field
 *                  dataValues: the possible values for this field in the form [ { text: 'Data Display Text', value: 'data_actual_value' }, { ... } ]
 *                  dataInit: a function that you can use to initialize the data field. this function is passed the jQuery-fied data element
 *                  dataEvents: list of events to apply to the data element. uses $("#id").bind(type, [data], fn) to bind events to data element
 *              *** JSON of this object could look like this: ***
 *               var fields = [
 *                 {
 *                   text: 'Field Display Name',
 *                   itemval: 'field_actual_name',
 *                   // below this are optional values
 *                   ops: [ // this format is the same as jQuery.fn.searchFilter.defaults.operators
 *                     { op: 'gt', text: 'greater than' },
 *                     { op: 'lt', text: 'less than' }
 *                   ],
 *                   dataUrl: 'http://server/path/script.php?propName=propValue', // using this creates a select for the data input instead of an input type='text'
 *                   dataValues: [ // using this creates a select for the data input instead of an input type='text'
 *                     { text: 'Data Value Display Name', value: 'data_actual_value' },
 *                     { ... }
 *                   ],
 *                   dataInit: function(jElem) { jElem.datepicker(options); },
 *                   dataEvents: [ // these are the same options that you pass to $("#id").bind(type, [data], fn)
 *                     { type: 'click', data: { i: 7 }, fn: function(e) { console.log(e.data.i); } },
 *                     { type: 'keypress', fn: function(e) { console.log('keypress'); } }
 *                   ]
 *                 },
 *                 { ... }
 *               ]
 *     options: name:value properties containing various creation options
 *              see jQuery.fn.searchFilter.defaults for the overridable options
 *
 * RETURN TYPE: This plugin returns a SearchFilter object, which has additional SearchFilter methods:
 *     Methods
 *         add:    Adds a filter. added to the end of the list unless a jQuery event object or valid row number is passed.
 *         del:    Removes a filter. removed from the end of the list unless a jQuery event object or valid row number is passed.
 *         reset:  resets filters back to original state (only one blank filter), and calls onReset
 *         search: puts the search rules into an object and calls onSearch with it
 *         close:  calls the onClose event handler
 *
 * USAGE
 *     HTML
 *         <head>
 *             ...
 *             <script src="path/to/jquery.min.js" type="text/javascript"></script>
 *             <link href="path/to/themeroller.css" rel="Stylesheet" type="text/css" />
 *             <script src="path/to/jquery.searchFilter.js" type="text/javascript"></script>
 *             <link href="path/to/jquery.searchFilter.css" rel="Stylesheet" type="text/css" />
 *             ...
 *         </head>
 *         <body>
 *             ...
 *             <div id='mySearch'></div>
 *             ...
 *         </body>
 *     JQUERY
 *         Methods
 *             initializing: $("#mySearch").searchFilter([{text: "Field 1", value: "field1"},{text: "Field 2", value: "field2"}], {onSearch: myFilterRuleReceiverFn, onReset: myFilterResetFn });
 *         Manual Methods (there's no need to call these methods unless you are trying to manipulate searchFilter with script)
 *             add:          $("#mySearch").searchFilter().add();     // appends a blank filter
 *                           $("#mySearch").searchFilter().add(0);    // copies the first filter as second
 *             del:          $("#mySearch").searchFilter().del();     // removes the bottom filter
 *                           $("#mySearch").searchFilter().del(1);    // removes the second filter
 *             search:       $("#mySearch").searchFilter().search();  // invokes onSearch, passing it a ruleGroup object
 *             reset:        $("#mySearch").searchFilter().reset();   // resets rules and invokes onReset
 *             close:        $("#mySearch").searchFilter().close();   // without an onClose handler, equivalent to $("#mySearch").hide();
 * 
 * NOTE: You can get the jQuery object back from the SearchFilter object by chaining .$
 *     Example
 *         $("#mySearch").searchFilter().add().add().reset().$.hide();
 *     Verbose Example
 *         $("#mySearch")      // gets jQuery object for the HTML element with id="mySearch"
 *             .searchFilter() // gets the SearchFilter object for an existing search filter
 *             .add()          // adds a new filter to the end of the list
 *             .add()          // adds another new filter to the end of the list
 *             .reset()        // resets filters back to original state, triggers onReset
 *             .$              // returns jQuery object for $("#mySearch")
 *             .hide();        // equivalent to $("#mySearch").hide();
 */

jQuery.fn.searchFilter = function(fields, options) {

    function SearchFilter(jQ, fields, options) {


        //---------------------------------------------------------------
        // PUBLIC VARS
        //---------------------------------------------------------------

        this.$ = jQ; // makes the jQuery object available as .$ from the return value


        //---------------------------------------------------------------
        // PUBLIC FUNCTIONS
        //---------------------------------------------------------------

        this.add = function(i) {
            if (i == null) jQ.find(".ui-add-last").click();
            else jQ.find(".sf:eq(" + i + ") .ui-add").click();
            return this;
        };

        this.del = function(i) {
            if (i == null) jQ.find(".sf:last .ui-del").click();
            else jQ.find(".sf:eq(" + i + ") .ui-del").click();
            return this;
        };

        this.search = function(e) {
            jQ.find(".ui-search").click();
            return this;
        };

        this.reset = function(o) {
            if(o===undefined) o = false;
            jQ.find(".ui-reset").trigger('click',[o]);
            return this;
        };

        this.close = function() {
            jQ.find(".ui-closer").click();
            return this;
        };



        //---------------------------------------------------------------
        // "CONSTRUCTOR" (in air quotes)
        //---------------------------------------------------------------

        if (fields != null) { // type coercion matches undefined as well as null


            //---------------------------------------------------------------
            // UTILITY FUNCTIONS
            //---------------------------------------------------------------

            function hover() {
                jQuery(this).toggleClass("ui-state-hover");
                return false;
            }

            function active(e) {
                jQuery(this).toggleClass("ui-state-active", (e.type == "mousedown"));
                return false;
            }

            function buildOpt(value, text) {
                return "<option value='" + value + "'>" + text + "</option>";
            }

            function buildSel(className, options, isHidden) {
                return "<select class='" + className + "'" + (isHidden ? " style='display:none;'" : "") + ">" + options + "</select>";
            }

            function initData(selector, fn) {
                var jElem = jQ.find("tr.sf td.data " + selector);
                if (jElem[0] != null)
                    fn(jElem);
            }

            function bindDataEvents(selector, events) {
                var jElem = jQ.find("tr.sf td.data " + selector);
                if (jElem[0] != null) {
                    jQuery.each(events, function() {
                        if (this.data != null)
                            jElem.bind(this.type, this.data, this.fn);
                        else
                            jElem.bind(this.type, this.fn);
                    });
                }
            }


            //---------------------------------------------------------------
            // SUPER IMPORTANT PRIVATE VARS
            //---------------------------------------------------------------

            // copies jQuery.fn.searchFilter.defaults.options properties onto an empty object, then options onto that
            var opts = jQuery.extend({}, jQuery.fn.searchFilter.defaults, options);

            // this is keeps track of the last asynchronous setup
            var highest_late_setup = -1;


            //---------------------------------------------------------------
            // CREATION PROCESS STARTS
            //---------------------------------------------------------------

            // generate the global ops
            var gOps_html = "";
            jQuery.each(opts.groupOps, function() { gOps_html += buildOpt(this.op, this.text); });
            gOps_html = "<select name='groupOp'>" + gOps_html + "</select>";

            /* original content - doesn't minify very well
            jQ
            .html("") // clear any old content
            .addClass("ui-searchFilter") // add classes
            .append( // add content
            "\
            <div class='ui-widget-overlay' style='z-index: -1'>&nbsp;</div>\
            <table class='ui-widget-content ui-corner-all'>\
            <thead>\
            <tr>\
            <td colspan='5' class='ui-widget-header ui-corner-all' style='line-height: 18px;'>\
            <div class='ui-closer ui-state-default ui-corner-all ui-helper-clearfix' style='float: right;'>\
            <span class='ui-icon ui-icon-close'></span>\
            </div>\
            " + opts.windowTitle + "\
            </td>\
            </tr>\
            </thead>\
            <tbody>\
            <tr class='sf'>\
            <td class='fields'></td>\
            <td class='ops'></td>\
            <td class='data'></td>\
            <td><div class='ui-del ui-state-default ui-corner-all'><span class='ui-icon ui-icon-minus'></span></div></td>\
            <td><div class='ui-add ui-state-default ui-corner-all'><span class='ui-icon ui-icon-plus'></span></div></td>\
            </tr>\
            <tr>\
            <td colspan='5' class='divider'><div>&nbsp;</div></td>\
            </tr>\
            </tbody>\
            <tfoot>\
            <tr>\
            <td colspan='3'>\
            <span class='ui-reset ui-state-default ui-corner-all' style='display: inline-block; float: left;'><span class='ui-icon ui-icon-arrowreturnthick-1-w' style='float: left;'></span><span style='line-height: 18px; padding: 0 7px 0 3px;'>" + opts.resetText + "</span></span>\
            <span class='ui-search ui-state-default ui-corner-all' style='display: inline-block; float: right;'><span class='ui-icon ui-icon-search' style='float: left;'></span><span style='line-height: 18px; padding: 0 7px 0 3px;'>" + opts.searchText + "</span></span>\
            <span class='matchText'>" + opts.matchText + "</span> \
            " + gOps_html + " \
            <span class='rulesText'>" + opts.rulesText + "</span>\
            </td>\
            <td>&nbsp;</td>\
            <td><div class='ui-add-last ui-state-default ui-corner-all'><span class='ui-icon ui-icon-plusthick'></span></div></td>\
            </tr>\
            </tfoot>\
            </table>\
            ");
            /* end hard-to-minify code */
            /* begin easier to minify code */
            jQ.html("").addClass("ui-searchFilter").append("<div class='ui-widget-overlay' style='z-index: -1'>&#160;</div><table class='ui-widget-content ui-corner-all'><thead><tr><td colspan='5' class='ui-widget-header ui-corner-all' style='line-height: 18px;'><div class='ui-closer ui-state-default ui-corner-all ui-helper-clearfix' style='float: right;'><span class='ui-icon ui-icon-close'></span></div>" + opts.windowTitle + "</td></tr></thead><tbody><tr class='sf'><td class='fields'></td><td class='ops'></td><td class='data'></td><td><div class='ui-del ui-state-default ui-corner-all'><span class='ui-icon ui-icon-minus'></span></div></td><td><div class='ui-add ui-state-default ui-corner-all'><span class='ui-icon ui-icon-plus'></span></div></td></tr><tr><td colspan='5' class='divider'><hr class='ui-widget-content' style='margin:1px'/></td></tr></tbody><tfoot><tr><td colspan='3'><span class='ui-reset ui-state-default ui-corner-all' style='display: inline-block; float: left;'><span class='ui-icon ui-icon-arrowreturnthick-1-w' style='float: left;'></span><span style='line-height: 18px; padding: 0 7px 0 3px;'>" + opts.resetText + "</span></span><span class='ui-search ui-state-default ui-corner-all' style='display: inline-block; float: right;'><span class='ui-icon ui-icon-search' style='float: left;'></span><span style='line-height: 18px; padding: 0 7px 0 3px;'>" + opts.searchText + "</span></span><span class='matchText'>" + opts.matchText + "</span> " + gOps_html + " <span class='rulesText'>" + opts.rulesText + "</span></td><td>&#160;</td><td><div class='ui-add-last ui-state-default ui-corner-all'><span class='ui-icon ui-icon-plusthick'></span></div></td></tr></tfoot></table>");
            /* end easier-to-minify code */

            var jRow = jQ.find("tr.sf");
            var jFields = jRow.find("td.fields");
            var jOps = jRow.find("td.ops");
            var jData = jRow.find("td.data");

            // generate the defaults
            var default_ops_html = "";
            jQuery.each(opts.operators, function() { default_ops_html += buildOpt(this.op, this.text); });
            default_ops_html = buildSel("default", default_ops_html, true);
            jOps.append(default_ops_html);
            var default_data_html = "<input type='text' class='default' style='display:none;' />";
            jData.append(default_data_html);

            // generate the field list as a string
            var fields_html = "";
            var has_custom_ops = false;
            var has_custom_data = false;
            jQuery.each(fields, function(i) {
                var field_num = i;
                fields_html += buildOpt(this.itemval, this.text);
                // add custom ops if they exist
                if (this.ops != null) {
                    has_custom_ops = true;
                    var custom_ops = "";
                    jQuery.each(this.ops, function() { custom_ops += buildOpt(this.op, this.text); });
                    custom_ops = buildSel("field" + field_num, custom_ops, true);
                    jOps.append(custom_ops);
                }
                // add custom data if it is given
                if (this.dataUrl != null) {
                    if (i > highest_late_setup) highest_late_setup = i;
                    has_custom_data = true;
                    var dEvents = this.dataEvents;
                    var iEvent = this.dataInit;
                    var bs = this.buildSelect;
                    jQuery.ajax(jQuery.extend({
                        url : this.dataUrl,
                        complete: function(data) {
                            var $d;
                            if(bs != null) $d =jQuery("<div />").append(bs(data));
                            else $d = jQuery("<div />").append(data.responseText);
                            $d.find("select").addClass("field" + field_num).hide();
                            jData.append($d.html());
                            if (iEvent) initData(".field" + i, iEvent);
                            if (dEvents) bindDataEvents(".field" + i, dEvents);
                            if (i == highest_late_setup) { // change should get called no more than twice when this searchFilter is constructed
                                jQ.find("tr.sf td.fields select[name='field']").change();
                            }
                        }
                    },opts.ajaxSelectOptions));
                } else if (this.dataValues != null) {
                    has_custom_data = true;
                    var custom_data = "";
                    jQuery.each(this.dataValues, function() { custom_data += buildOpt(this.value, this.text); });
                    custom_data = buildSel("field" + field_num, custom_data, true);
                    jData.append(custom_data);
                } else if (this.dataEvents != null || this.dataInit != null) {
                    has_custom_data = true;
                    var custom_data = "<input type='text' class='field" + field_num + "' />";
                    jData.append(custom_data);
                }
                // attach events to data if they exist
                if (this.dataInit != null && i != highest_late_setup)
                    initData(".field" + i, this.dataInit);
                if (this.dataEvents != null && i != highest_late_setup)
                    bindDataEvents(".field" + i, this.dataEvents);
            });
            fields_html = "<select name='field'>" + fields_html + "</select>";
            jFields.append(fields_html);

            // setup the field select with an on-change event if there are custom ops or data
            var jFSelect = jFields.find("select[name='field']");
            if (has_custom_ops) jFSelect.change(function(e) {
                var index = e.target.selectedIndex;
                var td = jQuery(e.target).parents("tr.sf").find("td.ops");
                td.find("select").removeAttr("name").hide(); // disown and hide all elements
                var jElem = td.find(".field" + index);
                if (jElem[0] == null) jElem = td.find(".default"); // if there's not an element for that field, use the default one
                jElem.attr("name", "op").show();
                return false;
            });
            else jOps.find(".default").attr("name", "op").show();
            if (has_custom_data) jFSelect.change(function(e) {
                var index = e.target.selectedIndex;
                var td = jQuery(e.target).parents("tr.sf").find("td.data");
                td.find("select,input").removeClass("vdata").hide(); // disown and hide all elements
                var jElem = td.find(".field" + index);
                if (jElem[0] == null) jElem = td.find(".default"); // if there's not an element for that field, use the default one
                jElem.show().addClass("vdata");
                return false;
            });
            else jData.find(".default").show().addClass("vdata");
            // go ahead and call the change event and setup the ops and data values
            if (has_custom_ops || has_custom_data) jFSelect.change();

            // bind events
            jQ.find(".ui-state-default").hover(hover, hover).mousedown(active).mouseup(active); // add hover/active effects to all buttons
            jQ.find(".ui-closer").click(function(e) {
                opts.onClose(jQuery(jQ.selector));
                return false;
            });
            jQ.find(".ui-del").click(function(e) {
                var row = jQuery(e.target).parents(".sf");
                if (row.siblings(".sf").length > 0) { // doesn't remove if there's only one filter left
                    if (opts.datepickerFix === true && jQuery.fn.datepicker !== undefined)
                        row.find(".hasDatepicker").datepicker("destroy"); // clean up datepicker's $.data mess
                    row.remove(); // also unbinds
                } else { // resets the filter if it's the last one
                    row.find("select[name='field']")[0].selectedIndex = 0;
                    row.find("select[name='op']")[0].selectedIndex = 0;
                    row.find(".data input").val(""); // blank all input values
                    row.find(".data select").each(function() { this.selectedIndex = 0; }); // select first option on all selects
                    row.find("select[name='field']").change(function(event){event.stopPropagation();}); // trigger any change events
                }
                return false;
            });
            jQ.find(".ui-add").click(function(e) {
                var row = jQuery(e.target).parents(".sf");
                var newRow = row.clone(true).insertAfter(row);
                newRow.find(".ui-state-default").removeClass("ui-state-hover ui-state-active");
                if (opts.clone) {
                    newRow.find("select[name='field']")[0].selectedIndex = row.find("select[name='field']")[0].selectedIndex;
                    var stupid_browser = (newRow.find("select[name='op']")[0] == null); // true for IE6
                    if (!stupid_browser)
                        newRow.find("select[name='op']").focus()[0].selectedIndex = row.find("select[name='op']")[0].selectedIndex;
                    var jElem = newRow.find("select.vdata");
                    if (jElem[0] != null) // select doesn't copy it's selected index when cloned
                        jElem[0].selectedIndex = row.find("select.vdata")[0].selectedIndex;
                } else {
                    newRow.find(".data input").val(""); // blank all input values
                    newRow.find("select[name='field']").focus();
                }
                if (opts.datepickerFix === true && jQuery.fn.datepicker !== undefined) { // using $.data to associate data with document elements is Not Good
                    row.find(".hasDatepicker").each(function() {
                        var settings = jQuery.data(this, "datepicker").settings;
                        newRow.find("#" + this.id).unbind().removeAttr("id").removeClass("hasDatepicker").datepicker(settings);
                    });
                }
                newRow.find("select[name='field']").change(function(event){event.stopPropagation();} );
                return false;
            });
            jQ.find(".ui-search").click(function(e) {
                var ui = jQuery(jQ.selector); // pointer to search box wrapper element
                var ruleGroup;
                var group_op = ui.find("select[name='groupOp'] :selected").val(); // puls "AND" or "OR"
                if (!opts.stringResult) {
                    ruleGroup = {
                        groupOp: group_op,
                        rules: []
                    };
                } else {
                    ruleGroup = "{\"groupOp\":\"" + group_op + "\",\"rules\":[";
                }
                ui.find(".sf").each(function(i) {
                    var tField = jQuery(this).find("select[name='field'] :selected").val();
                    var tOp = jQuery(this).find("select[name='op'] :selected").val();
                    var tData = jQuery(this).find("input.vdata,select.vdata :selected").val();
                    tData += "";
                    if (!opts.stringResult) {
                        ruleGroup.rules.push({
                            field: tField,
                            op: tOp,
                            data: tData
                        });
                    } else {
						tData = tData.replace(/\\/g,'\\\\').replace(/\"/g,'\\"');
                        if (i > 0) ruleGroup += ",";
                        ruleGroup += "{\"field\":\"" + tField + "\",";
                        ruleGroup += "\"op\":\"" + tOp + "\",";
                        ruleGroup += "\"data\":\"" + tData + "\"}";
                    }
                });
                if (opts.stringResult) ruleGroup += "]}";
                opts.onSearch(ruleGroup);
                return false;
            });
            jQ.find(".ui-reset").click(function(e,op) {
                var ui = jQuery(jQ.selector);
                ui.find(".ui-del").click(); // removes all filters, resets the last one
                ui.find("select[name='groupOp']")[0].selectedIndex = 0; // changes the op back to the default one
                opts.onReset(op);
                return false;
            });
            jQ.find(".ui-add-last").click(function() {
                var row = jQuery(jQ.selector + " .sf:last");
                var newRow = row.clone(true).insertAfter(row);
                newRow.find(".ui-state-default").removeClass("ui-state-hover ui-state-active");
                newRow.find(".data input").val(""); // blank all input values
                newRow.find("select[name='field']").focus();
                if (opts.datepickerFix === true && jQuery.fn.datepicker !== undefined) { // using $.data to associate data with document elements is Not Good
                    row.find(".hasDatepicker").each(function() {
                        var settings = jQuery.data(this, "datepicker").settings;
                        newRow.find("#" + this.id).unbind().removeAttr("id").removeClass("hasDatepicker").datepicker(settings);
                    });
                }
                newRow.find("select[name='field']").change(function(event){event.stopPropagation();});
                return false;
            });

            this.setGroupOp = function(setting) {
                /* a "setter" for groupping argument.
                 *  ("AND" or "OR")
                 *
                 * Inputs:
                 *  setting - a string
                 *
                 * Returns:
                 *  Does not return anything. May add success / failure reporting in future versions.
                 *
                 *  author: Daniel Dotsenko (dotsa@hotmail.com)
                 */
                selDOMobj = jQ.find("select[name='groupOp']")[0];
                var indexmap = {}, l = selDOMobj.options.length, i;
                for (i=0; i<l; i++) {
                    indexmap[selDOMobj.options[i].value] = i;
                }
                selDOMobj.selectedIndex = indexmap[setting];
                jQuery(selDOMobj).change(function(event){event.stopPropagation();});
            };

            this.setFilter = function(settings) {
                /* a "setter" for an arbitrary SearchFilter's filter line.
                 * designed to abstract the DOM manipulations required to infer
                 * a particular filter is a fit to the search box.
                 *
                 * Inputs:
                 *  settings - an "object" (dictionary)
                 *   index (optional*) (to be implemented in the future) : signed integer index (from top to bottom per DOM) of the filter line to fill.
                 *           Negative integers (rooted in -1 and lower) denote position of the line from the bottom.
                 *   sfref (optional*) : DOM object referencing individual '.sf' (normally a TR element) to be populated. (optional)
                 *   filter (mandatory) : object (dictionary) of form {'field':'field_value','op':'op_value','data':'data value'}
                 *
                 * * It is mandatory to have either index or sfref defined.
                 *
                 * Returns:
                 *  Does not return anything. May add success / failure reporting in future versions.
                 *
                 *  author: Daniel Dotsenko (dotsa@hotmail.com)
                 */

                var o = settings['sfref'], filter = settings['filter'];
                
                // setting up valueindexmap that we will need to manipulate SELECT elements.
                var fields = [], i, j , l, lj, li,
                    valueindexmap = {};
                    // example of valueindexmap:
                    // {'field1':{'index':0,'ops':{'eq':0,'ne':1}},'fieldX':{'index':1,'ops':{'eq':0,'ne':1},'data':{'true':0,'false':1}}},
                    // if data is undefined it's a INPUT field. If defined, it's SELECT
                selDOMobj = o.find("select[name='field']")[0];
                for (i=0, l=selDOMobj.options.length; i<l; i++) {
                    valueindexmap[selDOMobj.options[i].value] = {'index':i,'ops':{}};
                    fields.push(selDOMobj.options[i].value);
                }
                for (i=0, li=fields.length; i < li; i++) {
                    selDOMobj = o.find(".ops > select[class='field"+i+"']")[0];
                    if (selDOMobj) {
                        for (j=0, lj=selDOMobj.options.length; j<lj; j++) {
                            valueindexmap[fields[i]]['ops'][selDOMobj.options[j].value] = j;
                        }
                    }
                    selDOMobj = o.find(".data > select[class='field"+i+"']")[0];
                    if (selDOMobj) {
                        valueindexmap[fields[i]]['data'] = {}; // this setting is the flag that 'data' is contained in a SELECT
                        for (j=0, lj=selDOMobj.options.length; j<lj; j++) {
                            valueindexmap[fields[i]]['data'][selDOMobj.options[j].value] = j;
                        }
                    }
                } // done populating valueindexmap

                // preparsing the index values for SELECT elements.
                var fieldvalue, fieldindex, opindex, datavalue, dataindex;
                fieldvalue = filter['field'];
				if (valueindexmap[fieldvalue]) {
					fieldindex = valueindexmap[fieldvalue]['index'];
				}
                if (fieldindex != null) {
                    opindex = valueindexmap[fieldvalue]['ops'][filter['op']];
                    if(opindex === undefined) {
                        for(i=0,li=options.operators.length; i<li;i++) {
                            if(options.operators[i].op == filter.op ){
                                opindex = i;
                                break;
                            }
                        }
                    }
                    datavalue = filter['data'];
                    if (valueindexmap[fieldvalue]['data'] == null) {
                        dataindex = -1; // 'data' is not SELECT, Making the var 'defined'
                    } else {
                        dataindex = valueindexmap[fieldvalue]['data'][datavalue]; // 'undefined' may come from here.
                    }
                }
                // only if values for 'field' and 'op' and 'data' are 'found' in mapping...
                if (fieldindex != null && opindex != null && dataindex != null) {
                    o.find("select[name='field']")[0].selectedIndex = fieldindex;
                    o.find("select[name='field']").change();
                    o.find("select[name='op']")[0].selectedIndex = opindex;
                    o.find("input.vdata").val(datavalue); // if jquery does not find any INPUT, it does not set any. This means we deal with SELECT
                    o = o.find("select.vdata")[0];
                    if (o) {
                        o.selectedIndex = dataindex;
                    }
					return true
                } else {
					return false
				}
            }; // end of this.setFilter fn
        } // end of if fields != null
    }
    return new SearchFilter(this, fields, options);
};

jQuery.fn.searchFilter.version = '1.2.9';

/* This property contains the default options */
jQuery.fn.searchFilter.defaults = {

    /*
     * PROPERTY
     * TYPE:        boolean 
     * DESCRIPTION: clone a row if it is added from an existing row
     *              when false, any new added rows will be blank.
     */
    clone: true,

    /*
     * PROPERTY
     * TYPE:        boolean 
     * DESCRIPTION: current version of datepicker uses a data store,
     *              which is incompatible with $().clone(true)
     */
    datepickerFix: true,

    /*
     * FUNCTION
     * DESCRIPTION: the function that will be called when the user clicks Reset
     * INPUT TYPE:  JS object if stringResult is false, otherwise is JSON string
     */
    onReset: function(data) { alert("Reset Clicked. Data Returned: " + data) },

    /*
     * FUNCTION
     * DESCRIPTION: the function that will be called when the user clicks Search
     * INPUT TYPE:  JS object if stringResult is false, otherwise is JSON string
     */
    onSearch: function(data) { alert("Search Clicked. Data Returned: " + data) },

    /*
     * FUNCTION
     * DESCRIPTION: the function that will be called when the user clicks the Closer icon
     *              or the close() function is called
     *              if left null, it simply does a .hide() on the searchFilter
     * INPUT TYPE:  a jQuery object for the searchFilter
     */
    onClose: function(jElem) { jElem.hide(); },

    /* 
     * PROPERTY
     * TYPE:        array of objects, each object has the properties op and text 
     * DESCRIPTION: the selectable operators that are applied between rules
     *              e.g. for {op:"AND", text:"all"}
     *                  the search filter box will say: match all rules
     *                  the server should interpret this as putting the AND op between each rule:
     *                      rule1 AND rule2 AND rule3
     *              text will be the option text, and op will be the option value
     */
    groupOps: [
        { op: "AND", text: "all" },
        { op: "OR",  text: "any" }
    ],


    /* 
     * PROPERTY
     * TYPE:        array of objects, each object has the properties op and text 
     * DESCRIPTION: the operators that will appear as drop-down options
     *              text will be the option text, and op will be the option value
     */
    operators: [
        { op: "eq", text: "is equal to" },
        { op: "ne", text: "is not equal to" },
        { op: "lt", text: "is less than" },
        { op: "le", text: "is less or equal to" },
        { op: "gt", text: "is greater than" },
        { op: "ge", text: "is greater or equal to" },
        { op: "in", text: "is in" },
        { op: "ni", text: "is not in" },
        { op: "bw", text: "begins with" },
        { op: "bn", text: "does not begin with" },
        { op: "ew", text: "ends with" },
        { op: "en", text: "does not end with" },
        { op: "cn", text: "contains" },
        { op: "nc", text: "does not contain" }
    ],

    /*
     * PROPERTY
     * TYPE:        string
     * DESCRIPTION: part of the phrase: _match_ ANY/ALL rules
     */
    matchText: "match",

    /*
     * PROPERTY
     * TYPE:        string
     * DESCRIPTION: part of the phrase: match ANY/ALL _rules_
     */
    rulesText: "rules",

    /*
     * PROPERTY
     * TYPE:        string
     * DESCRIPTION: the text that will be displayed in the reset button
     */
    resetText: "Reset",
    
    /*
     * PROPERTY
     * TYPE:        string
     * DESCRIPTION: the text that will be displayed in the search button
     */
    searchText: "Search",
    
    /*
     * PROPERTY
     * TYPE:        boolean
     * DESCRIPTION: a flag that, when set, will make the onSearch and onReset return strings instead of objects
     */
    stringResult: true,    
    
    /*
     * PROPERTY
     * TYPE:        string
     * DESCRIPTION: the title of the searchFilter window
     */
    windowTitle: "Search Rules",
    /*
     * PROPERTY
     * TYPE:        object
     * DESCRIPTION: options to extend the ajax request
     */
    ajaxSelectOptions : {}
}; /* end of searchFilter */plugins/jquery.contextmenu.js000064400000010322151676727230012470 0ustar00/*
 * ContextMenu - jQuery plugin for right-click context menus
 *
 * Author: Chris Domigan
 * Contributors: Dan G. Switzer, II
 * Parts of this plugin are inspired by Joern Zaefferer's Tooltip plugin
 *
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 *
 * Version: r2
 * Date: 16 July 2007
 *
 * For documentation visit http://www.trendskitchens.co.nz/jquery/contextmenu/
 *
 */

(function($) {

 	var menu, shadow, content, hash, currentTarget;
  var defaults = {
    menuStyle: {
      listStyle: 'none',
      padding: '1px',
      margin: '0px',
      backgroundColor: '#fff',
      border: '1px solid #999',
      width: '100px'
    },
    itemStyle: {
      margin: '0px',
      color: '#000',
      display: 'block',
      cursor: 'default',
      padding: '3px',
      border: '1px solid #fff',
      backgroundColor: 'transparent'
    },
    itemHoverStyle: {
      border: '1px solid #0a246a',
      backgroundColor: '#b6bdd2'
    },
    eventPosX: 'pageX',
    eventPosY: 'pageY',
    shadow : true,
    onContextMenu: null,
    onShowMenu: null
 	};

  $.fn.contextMenu = function(id, options) {
    if (!menu) {                                      // Create singleton menu
      menu = $('<div id="jqContextMenu"></div>')
               .hide()
               .css({position:'absolute', zIndex:'500'})
               .appendTo('body')
               .bind('click', function(e) {
                 e.stopPropagation();
               });
    }
    if (!shadow) {
      shadow = $('<div></div>')
                 .css({backgroundColor:'#000',position:'absolute',opacity:0.2,zIndex:499})
                 .appendTo('body')
                 .hide();
    }
    hash = hash || [];
    hash.push({
      id : id,
      menuStyle: $.extend({}, defaults.menuStyle, options.menuStyle || {}),
      itemStyle: $.extend({}, defaults.itemStyle, options.itemStyle || {}),
      itemHoverStyle: $.extend({}, defaults.itemHoverStyle, options.itemHoverStyle || {}),
      bindings: options.bindings || {},
      shadow: options.shadow || options.shadow === false ? options.shadow : defaults.shadow,
      onContextMenu: options.onContextMenu || defaults.onContextMenu,
      onShowMenu: options.onShowMenu || defaults.onShowMenu,
      eventPosX: options.eventPosX || defaults.eventPosX,
      eventPosY: options.eventPosY || defaults.eventPosY
    });

    var index = hash.length - 1;
    $(this).bind('contextmenu', function(e) {
      // Check if onContextMenu() defined
      var bShowContext = (!!hash[index].onContextMenu) ? hash[index].onContextMenu(e) : true;
	  currentTarget = e.target;
      if (bShowContext) {
		display(index, this, e );
		return false;
	  }
    });
    return this;
  };

  function display(index, trigger, e ) {
    var cur = hash[index];
    content = $('#'+cur.id).find('ul:first').clone(true);
    content.css(cur.menuStyle).find('li').css(cur.itemStyle).hover(
      function() {
        $(this).css(cur.itemHoverStyle);
      },
      function(){
        $(this).css(cur.itemStyle);
      }
    ).find('img').css({verticalAlign:'middle',paddingRight:'2px'});

    // Send the content to the menu
    menu.html(content);

    // if there's an onShowMenu, run it now -- must run after content has been added
		// if you try to alter the content variable before the menu.html(), IE6 has issues
		// updating the content
    if (!!cur.onShowMenu) menu = cur.onShowMenu(e, menu);

    $.each(cur.bindings, function(id, func) {
      $('#'+id, menu).bind('click', function() {
        hide();
        func(trigger, currentTarget);
      });
    });

    menu.css({'left':e[cur.eventPosX],'top':e[cur.eventPosY]}).show();
    if (cur.shadow) shadow.css({width:menu.width(),height:menu.height(),left:e.pageX+2,top:e.pageY+2}).show();
    $(document).one('click', hide);
  }

  function hide() {
    menu.hide();
    shadow.hide();
  }

  // Apply defaults
  $.contextMenu = {
    defaults : function(userDefaults) {
      $.each(userDefaults, function(i, val) {
        if (typeof val == 'object' && defaults[i]) {
          $.extend(defaults[i], val);
        }
        else defaults[i] = val;
      });
    }
  };

})(jQuery);

$(function() {
  $('div.contextMenu').hide();
});plugins/jquery.tablednd.js000064400000041014151676727230011676 0ustar00/**
 * TableDnD plug-in for JQuery, allows you to drag and drop table rows
 * You can set up various options to control how the system will work
 * Copyright (c) Denis Howlett <denish@isocra.com>
 * Licensed like jQuery, see http://docs.jquery.com/License.
 *
 * Configuration options:
 * 
 * onDragStyle
 *     This is the style that is assigned to the row during drag. There are limitations to the styles that can be
 *     associated with a row (such as you can't assign a border--well you can, but it won't be
 *     displayed). (So instead consider using onDragClass.) The CSS style to apply is specified as
 *     a map (as used in the jQuery css(...) function).
 * onDropStyle
 *     This is the style that is assigned to the row when it is dropped. As for onDragStyle, there are limitations
 *     to what you can do. Also this replaces the original style, so again consider using onDragClass which
 *     is simply added and then removed on drop.
 * onDragClass
 *     This class is added for the duration of the drag and then removed when the row is dropped. It is more
 *     flexible than using onDragStyle since it can be inherited by the row cells and other content. The default
 *     is class is tDnD_whileDrag. So to use the default, simply customise this CSS class in your
 *     stylesheet.
 * onDrop
 *     Pass a function that will be called when the row is dropped. The function takes 2 parameters: the table
 *     and the row that was dropped. You can work out the new order of the rows by using
 *     table.rows.
 * onDragStart
 *     Pass a function that will be called when the user starts dragging. The function takes 2 parameters: the
 *     table and the row which the user has started to drag.
 * onAllowDrop
 *     Pass a function that will be called as a row is over another row. If the function returns true, allow 
 *     dropping on that row, otherwise not. The function takes 2 parameters: the dragged row and the row under
 *     the cursor. It returns a boolean: true allows the drop, false doesn't allow it.
 * scrollAmount
 *     This is the number of pixels to scroll if the user moves the mouse cursor to the top or bottom of the
 *     window. The page should automatically scroll up or down as appropriate (tested in IE6, IE7, Safari, FF2,
 *     FF3 beta
 * dragHandle
 *     This is the name of a class that you assign to one or more cells in each row that is draggable. If you
 *     specify this class, then you are responsible for setting cursor: move in the CSS and only these cells
 *     will have the drag behaviour. If you do not specify a dragHandle, then you get the old behaviour where
 *     the whole row is draggable.
 * 
 * Other ways to control behaviour:
 *
 * Add class="nodrop" to any rows for which you don't want to allow dropping, and class="nodrag" to any rows
 * that you don't want to be draggable.
 *
 * Inside the onDrop method you can also call $.tableDnD.serialize() this returns a string of the form
 * <tableID>[]=<rowID1>&<tableID>[]=<rowID2> so that you can send this back to the server. The table must have
 * an ID as must all the rows.
 *
 * Other methods:
 *
 * $("...").tableDnDUpdate() 
 * Will update all the matching tables, that is it will reapply the mousedown method to the rows (or handle cells).
 * This is useful if you have updated the table rows using Ajax and you want to make the table draggable again.
 * The table maintains the original configuration (so you don't have to specify it again).
 *
 * $("...").tableDnDSerialize()
 * Will serialize and return the serialized string as above, but for each of the matching tables--so it can be
 * called from anywhere and isn't dependent on the currentTable being set up correctly before calling
 *
 * Known problems:
 * - Auto-scoll has some problems with IE7  (it scrolls even when it shouldn't), work-around: set scrollAmount to 0
 * 
 * Version 0.2: 2008-02-20 First public version
 * Version 0.3: 2008-02-07 Added onDragStart option
 *                         Made the scroll amount configurable (default is 5 as before)
 * Version 0.4: 2008-03-15 Changed the noDrag/noDrop attributes to nodrag/nodrop classes
 *                         Added onAllowDrop to control dropping
 *                         Fixed a bug which meant that you couldn't set the scroll amount in both directions
 *                         Added serialize method
 * Version 0.5: 2008-05-16 Changed so that if you specify a dragHandle class it doesn't make the whole row
 *                         draggable
 *                         Improved the serialize method to use a default (and settable) regular expression.
 *                         Added tableDnDupate() and tableDnDSerialize() to be called when you are outside the table
 */
jQuery.tableDnD = {
    /** Keep hold of the current table being dragged */
    currentTable : null,
    /** Keep hold of the current drag object if any */
    dragObject: null,
    /** The current mouse offset */
    mouseOffset: null,
    /** Remember the old value of Y so that we don't do too much processing */
    oldY: 0,

    /** Actually build the structure */
    build: function(options) {
        // Set up the defaults if any

        this.each(function() {
            // This is bound to each matching table, set up the defaults and override with user options
            this.tableDnDConfig = jQuery.extend({
                onDragStyle: null,
                onDropStyle: null,
				// Add in the default class for whileDragging
				onDragClass: "tDnD_whileDrag",
                onDrop: null,
                onDragStart: null,
                scrollAmount: 5,
				serializeRegexp: /[^\-]*$/, // The regular expression to use to trim row IDs
				serializeParamName: null, // If you want to specify another parameter name instead of the table ID
                dragHandle: null // If you give the name of a class here, then only Cells with this class will be draggable
            }, options || {});
            // Now make the rows draggable
            jQuery.tableDnD.makeDraggable(this);
        });

        // Now we need to capture the mouse up and mouse move event
        // We can use bind so that we don't interfere with other event handlers
        jQuery(document)
            .bind('mousemove', jQuery.tableDnD.mousemove)
            .bind('mouseup', jQuery.tableDnD.mouseup);

        // Don't break the chain
        return this;
    },

    /** This function makes all the rows on the table draggable apart from those marked as "NoDrag" */
    makeDraggable: function(table) {
        var config = table.tableDnDConfig;
		if (table.tableDnDConfig.dragHandle) {
			// We only need to add the event to the specified cells
			var cells = jQuery("td."+table.tableDnDConfig.dragHandle, table);
			cells.each(function() {
				// The cell is bound to "this"
                jQuery(this).mousedown(function(ev) {
                    jQuery.tableDnD.dragObject = this.parentNode;
                    jQuery.tableDnD.currentTable = table;
                    jQuery.tableDnD.mouseOffset = jQuery.tableDnD.getMouseOffset(this, ev);
                    if (config.onDragStart) {
                        // Call the onDrop method if there is one
                        config.onDragStart(table, this);
                    }
                    return false;
                });
			})
		} else {
			// For backwards compatibility, we add the event to the whole row
	        var rows = jQuery("tr", table); // get all the rows as a wrapped set
	        rows.each(function() {
				// Iterate through each row, the row is bound to "this"
				var row = jQuery(this);
				if (! row.hasClass("nodrag")) {
	                row.mousedown(function(ev) {
	                    if (ev.target.tagName == "TD") {
	                        jQuery.tableDnD.dragObject = this;
	                        jQuery.tableDnD.currentTable = table;
	                        jQuery.tableDnD.mouseOffset = jQuery.tableDnD.getMouseOffset(this, ev);
	                        if (config.onDragStart) {
	                            // Call the onDrop method if there is one
	                            config.onDragStart(table, this);
	                        }
	                        return false;
	                    }
	                }).css("cursor", "move"); // Store the tableDnD object
				}
			});
		}
	},

	updateTables: function() {
		this.each(function() {
			// this is now bound to each matching table
			if (this.tableDnDConfig) {
				jQuery.tableDnD.makeDraggable(this);
			}
		})
	},

    /** Get the mouse coordinates from the event (allowing for browser differences) */
    mouseCoords: function(ev){
        if(ev.pageX || ev.pageY){
            return {x:ev.pageX, y:ev.pageY};
        }
        return {
            x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
            y:ev.clientY + document.body.scrollTop  - document.body.clientTop
        };
    },

    /** Given a target element and a mouse event, get the mouse offset from that element.
        To do this we need the element's position and the mouse position */
    getMouseOffset: function(target, ev) {
        ev = ev || window.event;

        var docPos    = this.getPosition(target);
        var mousePos  = this.mouseCoords(ev);
        return {x:mousePos.x - docPos.x, y:mousePos.y - docPos.y};
    },

    /** Get the position of an element by going up the DOM tree and adding up all the offsets */
    getPosition: function(e){
        var left = 0;
        var top  = 0;
        /** Safari fix -- thanks to Luis Chato for this! */
        if (e.offsetHeight == 0) {
            /** Safari 2 doesn't correctly grab the offsetTop of a table row
            this is detailed here:
            http://jacob.peargrove.com/blog/2006/technical/table-row-offsettop-bug-in-safari/
            the solution is likewise noted there, grab the offset of a table cell in the row - the firstChild.
            note that firefox will return a text node as a first child, so designing a more thorough
            solution may need to take that into account, for now this seems to work in firefox, safari, ie */
            e = e.firstChild; // a table cell
        }
		if (e && e.offsetParent) {
        	while (e.offsetParent){
            	left += e.offsetLeft;
            	top  += e.offsetTop;
            	e     = e.offsetParent;
        	}

        	left += e.offsetLeft;
        	top  += e.offsetTop;
        }

        return {x:left, y:top};
    },

    mousemove: function(ev) {
        if (jQuery.tableDnD.dragObject == null) {
            return;
        }

        var dragObj = jQuery(jQuery.tableDnD.dragObject);
        var config = jQuery.tableDnD.currentTable.tableDnDConfig;
        var mousePos = jQuery.tableDnD.mouseCoords(ev);
        var y = mousePos.y - jQuery.tableDnD.mouseOffset.y;
        //auto scroll the window
	    var yOffset = window.pageYOffset;
	 	if (document.all) {
	        // Windows version
	        //yOffset=document.body.scrollTop;
	        if (typeof document.compatMode != 'undefined' &&
	             document.compatMode != 'BackCompat') {
	           yOffset = document.documentElement.scrollTop;
	        }
	        else if (typeof document.body != 'undefined') {
	           yOffset=document.body.scrollTop;
	        }

	    }
		    
		if (mousePos.y-yOffset < config.scrollAmount) {
	    	window.scrollBy(0, -config.scrollAmount);
	    } else {
            var windowHeight = window.innerHeight ? window.innerHeight
                    : document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight;
            if (windowHeight-(mousePos.y-yOffset) < config.scrollAmount) {
                window.scrollBy(0, config.scrollAmount);
            }
        }


        if (y != jQuery.tableDnD.oldY) {
            // work out if we're going up or down...
            var movingDown = y > jQuery.tableDnD.oldY;
            // update the old value
            jQuery.tableDnD.oldY = y;
            // update the style to show we're dragging
			if (config.onDragClass) {
				dragObj.addClass(config.onDragClass);
			} else {
	            dragObj.css(config.onDragStyle);
			}
            // If we're over a row then move the dragged row to there so that the user sees the
            // effect dynamically
            var currentRow = jQuery.tableDnD.findDropTargetRow(dragObj, y);
            if (currentRow) {
                // TODO worry about what happens when there are multiple TBODIES
                if (movingDown && jQuery.tableDnD.dragObject != currentRow) {
                    jQuery.tableDnD.dragObject.parentNode.insertBefore(jQuery.tableDnD.dragObject, currentRow.nextSibling);
                } else if (! movingDown && jQuery.tableDnD.dragObject != currentRow) {
                    jQuery.tableDnD.dragObject.parentNode.insertBefore(jQuery.tableDnD.dragObject, currentRow);
                }
            }
        }

        return false;
    },

    /** We're only worried about the y position really, because we can only move rows up and down */
    findDropTargetRow: function(draggedRow, y) {
        var rows = jQuery.tableDnD.currentTable.rows;
        for (var i=0; i<rows.length; i++) {
            var row = rows[i];
            var rowY    = this.getPosition(row).y;
            var rowHeight = parseInt(row.offsetHeight)/2;
            if (row.offsetHeight == 0) {
                rowY = this.getPosition(row.firstChild).y;
                rowHeight = parseInt(row.firstChild.offsetHeight)/2;
            }
            // Because we always have to insert before, we need to offset the height a bit
            if ((y > rowY - rowHeight) && (y < (rowY + rowHeight))) {
                // that's the row we're over
				// If it's the same as the current row, ignore it
				if (row == draggedRow) {return null;}
                var config = jQuery.tableDnD.currentTable.tableDnDConfig;
                if (config.onAllowDrop) {
                    if (config.onAllowDrop(draggedRow, row)) {
                        return row;
                    } else {
                        return null;
                    }
                } else {
					// If a row has nodrop class, then don't allow dropping (inspired by John Tarr and Famic)
                    var nodrop = jQuery(row).hasClass("nodrop");
                    if (! nodrop) {
                        return row;
                    } else {
                        return null;
                    }
                }
                return row;
            }
        }
        return null;
    },

    mouseup: function(e) {
        if (jQuery.tableDnD.currentTable && jQuery.tableDnD.dragObject) {
            var droppedRow = jQuery.tableDnD.dragObject;
            var config = jQuery.tableDnD.currentTable.tableDnDConfig;
            // If we have a dragObject, then we need to release it,
            // The row will already have been moved to the right place so we just reset stuff
			if (config.onDragClass) {
	            jQuery(droppedRow).removeClass(config.onDragClass);
			} else {
	            jQuery(droppedRow).css(config.onDropStyle);
			}
            jQuery.tableDnD.dragObject   = null;
            if (config.onDrop) {
                // Call the onDrop method if there is one
                config.onDrop(jQuery.tableDnD.currentTable, droppedRow);
            }
            jQuery.tableDnD.currentTable = null; // let go of the table too
        }
    },

    serialize: function() {
        if (jQuery.tableDnD.currentTable) {
            return jQuery.tableDnD.serializeTable(jQuery.tableDnD.currentTable);
        } else {
            return "Error: No Table id set, you need to set an id on your table and every row";
        }
    },

	serializeTable: function(table) {
        var result = "";
        var tableId = table.id;
        var rows = table.rows;
        for (var i=0; i<rows.length; i++) {
            if (result.length > 0) result += "&";
            var rowId = rows[i].id;
            if (rowId && rowId && table.tableDnDConfig && table.tableDnDConfig.serializeRegexp) {
                rowId = rowId.match(table.tableDnDConfig.serializeRegexp)[0];
            }

            result += tableId + '[]=' + rowId;
        }
        return result;
	},

	serializeTables: function() {
        var result = "";
        this.each(function() {
			// this is now bound to each matching table
			result += jQuery.tableDnD.serializeTable(this);
		});
        return result;
    },
	destroy:function(){
    	jQuery(document)
        .unbind('mousemove', jQuery.tableDnD.mousemove)
        .unbind('mouseup', jQuery.tableDnD.mouseup);
    }
}

jQuery.fn.extend(
	{
		tableDnD : jQuery.tableDnD.build,
		tableDnDUpdate : jQuery.tableDnD.updateTables,
		tableDnDSerialize: jQuery.tableDnD.serializeTables,
		unTableDnD : jQuery.tableDnD.destroy
	}
);
plugins/grid.postext.js000064400000003011151676727230011230 0ustar00;(function($){
/**
 * jqGrid extension
 * Paul Tiseo ptiseo@wasteconsultants.com
 * 
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl-2.0.html
**/ 
$.jgrid.extend({
	getPostData : function(){
		var $t = this[0];
		if(!$t.grid) { return; }
		return $t.p.postData;
	},
	setPostData : function( newdata ) {
		var $t = this[0];
		if(!$t.grid) { return; }
		// check if newdata is correct type
		if ( typeof(newdata) === 'object' ) {
			$t.p.postData = newdata;
		}
		else {
			alert("Error: cannot add a non-object postData value. postData unchanged.");
		}
	},
	appendPostData : function( newdata ) { 
		var $t = this[0];
		if(!$t.grid) { return; }
		// check if newdata is correct type
		if ( typeof(newdata) === 'object' ) {
			$.extend($t.p.postData, newdata);
		}
		else {
			alert("Error: cannot append a non-object postData value. postData unchanged.");
		}
	},
	setPostDataItem : function( key, val ) {
		var $t = this[0];
		if(!$t.grid) { return; }
		$t.p.postData[key] = val;
	},
	getPostDataItem : function( key ) {
		var $t = this[0];
		if(!$t.grid) { return; }
		return $t.p.postData[key];
	},
	removePostDataItem : function( key ) {
		var $t = this[0];
		if(!$t.grid) { return; }
		delete $t.p.postData[key];
	},
	getUserData : function(){
		var $t = this[0];
		if(!$t.grid) { return; }
		return $t.p.userData;
	},
	getUserDataItem : function( key ) {
		var $t = this[0];
		if(!$t.grid) { return; }
		return $t.p.userData[key];
	}
});
})(jQuery);plugins/grid.tbltogrid.js000064400000006071151676727230011525 0ustar00/*
 Transform a table to a jqGrid.
 Peter Romianowski <peter.romianowski@optivo.de> 
 If the first column of the table contains checkboxes or
 radiobuttons then the jqGrid is made selectable.
*/
// Addition - selector can be a class or id
function tableToGrid(selector, options) {
jQuery(selector).each(function() {
	if(this.grid) {return;} //Adedd from Tony Tomov
	// This is a small "hack" to make the width of the jqGrid 100%
	jQuery(this).width("99%");
	var w = jQuery(this).width();

	// Text whether we have single or multi select
	var inputCheckbox = jQuery('tr td:first-child input[type=checkbox]:first', jQuery(this));
	var inputRadio = jQuery('tr td:first-child input[type=radio]:first', jQuery(this));
	var selectMultiple = inputCheckbox.length > 0;
	var selectSingle = !selectMultiple && inputRadio.length > 0;
	var selectable = selectMultiple || selectSingle;
	//var inputName = inputCheckbox.attr("name") || inputRadio.attr("name");

	// Build up the columnModel and the data
	var colModel = [];
	var colNames = [];
	jQuery('th', jQuery(this)).each(function() {
		if (colModel.length === 0 && selectable) {
			colModel.push({
				name: '__selection__',
				index: '__selection__',
				width: 0,
				hidden: true
			});
			colNames.push('__selection__');
		} else {
			colModel.push({
				name: jQuery(this).attr("id") || jQuery.trim(jQuery.jgrid.stripHtml(jQuery(this).html())).split(' ').join('_'),
				index: jQuery(this).attr("id") || jQuery.trim(jQuery.jgrid.stripHtml(jQuery(this).html())).split(' ').join('_'),
				width: jQuery(this).width() || 150
			});
			colNames.push(jQuery(this).html());
		}
	});
	var data = [];
	var rowIds = [];
	var rowChecked = [];
	jQuery('tbody > tr', jQuery(this)).each(function() {
		var row = {};
		var rowPos = 0;
		jQuery('td', jQuery(this)).each(function() {
			if (rowPos === 0 && selectable) {
				var input = jQuery('input', jQuery(this));
				var rowId = input.attr("value");
				rowIds.push(rowId || data.length);
				if (input.is(":checked")) {
					rowChecked.push(rowId);
				}
				row[colModel[rowPos].name] = input.attr("value");
			} else {
				row[colModel[rowPos].name] = jQuery(this).html();
			}
			rowPos++;
		});
		if(rowPos >0) { data.push(row); }
	});

	// Clear the original HTML table
	jQuery(this).empty();

	// Mark it as jqGrid
	jQuery(this).addClass("scroll");

	jQuery(this).jqGrid(jQuery.extend({
		datatype: "local",
		width: w,
		colNames: colNames,
		colModel: colModel,
		multiselect: selectMultiple
		//inputName: inputName,
		//inputValueCol: imputName != null ? "__selection__" : null
	}, options || {}));

	// Add data
	var a;
	for (a = 0; a < data.length; a++) {
		var id = null;
		if (rowIds.length > 0) {
			id = rowIds[a];
			if (id && id.replace) {
				// We have to do this since the value of a checkbox
				// or radio button can be anything 
				id = encodeURIComponent(id).replace(/[.\-%]/g, "_");
			}
		}
		if (id === null) {
			id = a + 1;
		}
		jQuery(this).jqGrid("addRowData",id, data[a]);
	}

	// Set the selection
	for (a = 0; a < rowChecked.length; a++) {
		jQuery(this).jqGrid("setSelection",rowChecked[a]);
	}
});
};
bower.json000064400000000326151676727230006576 0ustar00{
	"name": "jqGrid",
	"main": [
		"js/i18n/grid.locale-en.js",
		"js/jquery.jqGrid.js",
		"css/ui.jqgrid.css"
	],
	"dependencies": {
		"jquery": ">=1.7.0",
		"jquery-ui": ">=1.7.0"
	},
	"license": "CC-BY-NC-3.0"
}