Spade

Mini Shell

Directory:~$ /proc/self/root/home/lmsyaran/www/pusher/
Upload File

[Home] [System Details] [Kill Me]
Current File:~$ //proc/self/root/home/lmsyaran/www/pusher/validate.zip

PKe�[�
�]77css/customMessages.cssnu�[���body {

}

.center {
	text-align: center;
}


PKe�[�j��css/screenshot.pngnu�[����PNG


IHDR�v�*T�YiCCPICC
Profilex�XgTM����9�sN�s�EҐ�d0�%(J��(�("J�$�A@1����"H�
��޳g��ٚ�5�ܺ}�����uX�<�‚aBB�"l�ty��]xpS���Hx�#�t�����֞hop\r/��?�z�D����a/�Hr�o#x�\��'����B���
�O�a�p���7�����C|z��<=#�
>A�<1d?$q	,]�w@(thk��=�`�G|$BB��0�x�+�߿����ߘ��~�?�9��~@dX���?�/���h�y�ntHO

޿�
9�=����ߜ��������z��}#m��(�a+�?�8���O���8���V��6�pd����o�{������D���V�!������(��=ށޡ�#~�Q<:�,��1	%KI������
��i{�럛]���n
����"�g�6������<huE���l���I��#b���Le0Ⱥ��p~
$�P�@S`	�3pd�B@8@"HY�(%�T���:h-���
x���`|��X[� J�b��!AH��T M�2�l
g��B�h(J���\���@7�;P��B/�hZ�6aL�`NX��U`����~p8����"��7�]�
���?ë(�"��P�(I�
Je�rA��"P�P��BT�Ն�C���Q���h,�̓�D����h2:}��.A_E7�{������ÁǨaL0N?�aL�sӄ��<�|��a�X&�0Vk�u�b������N�(v����Xq�8
�%��K���:pc��
<ύ���]�$|!�ߎ���(h()�(,)�)�P�PTQ�Q�P|��"��	;B
!�PD�'�^V�D"Q�hM �
���3ğ$:�I��J�&�&U�:I/H+���B�ڔ.�Q��)k(P��ܠ����2��:NUJ�L5F����Z�Z�ڍ:������"
���'�1�R�;44�����!�ٴ�����t8:!::o��J�t��(z~z=z2}2}}/�,�0�	C
C�u�a�%F:FF�X�R���L(&!&�`��F��L�̜�:�>���c��,�,�,>,�,7X��l�����ema}͆fc�f;�v���m���]��̞���>�s�q�p�sTrq�rrqq�qs>�\�b���
���j�Z�����������ȣ��S��ó��k��{�w�w�O�Ϟ/���k~�
�/>7�����@�@���
������9�>�u!a!G�t��yaa�8�:�W"�"Z"�""OE��*�A��E���b�b�b�b#ⰸ�x��y�Q	���D�D�Ą$IRG2F�NrF�I�\*I�Eꫴ����Y�>�_2�2�2U2/e�dMe�d�d�����r�rO�)�
�˷�WW�Q��0�H�h���ح�����T���,��\�<� b����H���z\���O5%�(�F�o��A������7����qIcZ�G�C�����V��;m~mo�+�s:�:�:�t����F�6������G��g�����1�3�3�3\2R4�7�4���5�0�4!�Ԙ,�*�5�1#�ٚ���33�0o��-L-�,^�����X�X�Y���
��k����.��h#k�`�gKo�n[k�f�k�c��^�>ھہ�ա�a�Q�1�q�I��Ӡ3�s�s�������>�*���>?(|0�`��[��}wjwO�[G�Z�mOK�
�U/�2�%������w�����O�Ϝ��o�?�_�߂����b�^@I��@��
ˠ��`��!���;�t�A�=���
K�W/_�0��	E�l�b@62C�"ѩ�31�1�1�ߊ��
�:"v$��\�a��xt<9�;�7!1a���KǠc^Ǻ��O9��щ���Ġ��I2I�I?���R8SN�̦�֥Q�E�M�����D�89�!�Q��+�;s
K&�0k;��=pJ�Tѩ�Ӿ��s�r.���	=��٫���q��yy�<���?
��
���E��.2/j-(>S�]�_�T��FGYF�y��c�/ԗs�g�o^�8y��Rs�PEa%�2��c�CU�e��5Wخd]٩���js��F�����6����[��z��u�����n0��j
�
�nz�|�h��}K�V�m��eM�M��P�����V���;�w���ۚ�Jݭ��{��>�vB{J�nG\�jgX�b�_�l�{��N��X����>zh��A�N_�#�G������*
6)5=V|�4�4�<�<�D�I���1���q��OM�>�l���	׉�I���/�O�Lm�<�
�*�5���7o*ފ��1�4}Ff�������#�oH�H��p�{�f^n�ނ�“O>}��yk1�헲�"_o�6����{����֕�
?�W�V߬��m�gn�n\���o�qsn��6n�hGt��ٯW�!��a����(��}}X����':����@��ȦF0-�+�̠op���Q��|�W(f��b*�:��=�7�gF2��7�v�f.N��6�e~neA!#a=5QE1q.	ZI��Լ�̐l�\�|�B�b�R��AcUE5.u���}���Z%�9:��zY�9��yF��&��fg�O[d�?i�j�l�l�b�l�b����t�9�%�@�k�7ow���g�W49��O�o��-���G��AS��!��ka�p��H�(�h������Vi���IX>�:Ns�-�'�?�/�'�#�%��$u!��������陜Wg&�>���+-9��h��QIOigٽ���o_l��^��iջ�߮�\%�0���I]S��_���S��M�Ɛ[�7�7kIlM��ޖq7�ީ���s:r;�J��T���?����������]�]#O�6�]�xz�Y��ĉ����_�R~-���-��_�_f����|_�!��9�y��O�v>\|����o�K�ߝ�uW$��bV��^�?ܸ��l3m+l�eG��.���_�u�Q8e�İa�p�P�[D��E�N-D�GG��`D3�3o�������,�̣��ϗ�_#�$�*�"|S�h�X�x��1�p)/i{#Yu9IynZEHqYiF��J�j�Z���}A��ZZb�l:T�h��5�o�3F���&=��f��/Z��O�<bf`�kK��ww8���d�l�bv��U󠲛��������Y�[�G�W�O�_6@6P&H:X2I�����u"�#���sb.�;|d&n5w����q�z��I��V)V��i���O�df�fie��R:-�#yF�H�H�p�p�p��9�"�b��R�2��L��i/�]b�`���,}E�Z�~�Y�M�㵃׽�n�6��<ޘq�����wZzZG�L���ro�t�;����9���>��y$߯8�<�:��x߰ƈ��Q�1�q�f�,��L�M:�p�:����k�7ߺL���S�|O��w��K?��\T�����K]��+V
d�&�Ŭmx���4��ܖ��źK�o�ǢT�D�7ކ�$a�$J�H��Ɩ�1�6�-&	�*V�L�%Nk�j�o�2|��
����o�6�5�7I4Jސ���&sU�J�|��9�\�L�d��5_u�}ښ
��:\�z���<�<F<�\&���fL�4��8K�r�j�z�f�v�n�~�a��Ӛ������u{�>���s������Ϭ��9��������๐��C_��"�H�(�h���bC�$�eǗ%�mA�i�������)���ie�gN�f�fe̶<�sZ>G��Y�\�<�|l��Y�Z�T��C����#�.
TTV
]�2\=ru�f��q��k���o�7�|�8z����ͳ-s���|i[��|����������=���V���6�e���ó#�O^�N���?}������S�/�^�Ns�m�ߌ�;�Y��B�?���s��=
�J?�-�q�j�Ma��;�2�
�a��FX'l~Rl�p���/�.��?:�^N�*p���0Gj��,!��
+J�T�?`8@;a�����5�0���#
�(��-����`�C�4��T���t�"�=��aZXv��+�S����Q�H�恮@�Hb�1�X��:�9�n��a
y��p��hDl$q�2Hk�>�TfT]�j�M4�4�i�h����
���O3�2�b<�$�t�فy�%�U���	vQ�1�xN~�A�(n.��#�b�����p=�)B�8�~�,Q1�q�b	OI	�
�G��2!��r�r��(6(U(���婟�w^�Z�V���΢��ʆ6F��Y&��Cf�-X��[FXUZO�R��'9�w\s�p�<P�:���y�x6y�y��$��3��ӆ��I�����=vX/�%N*��������W��Sn�)���0Μ�8�+��l�H~x!����eO/�]t���q�auYML��u��
���'�[�u��k������\<�;���s��������Ύd�w�T�����{����F�������D���@h"���]!#ZB+x^�O`���!eD#
Cq�*p
���0���p�E��Q�P}hZ����16�2�V����I�q��"�&�;�C���H
�?�H)U)��ʩ9�Ki8i*hEio�iӍл�e8�H�Xɤ�4��B`�e�`]a+e7d_��iŹ������3ěƧ���R̈́��
׉�#����Hx��O�H&HVG�U��B��9�ʇTȪ�jN�N�\4<4�����t�t���'��(��L�M̲�oZ��D[�Y�m��������wh��lu[�P�<���M���[�+�6�.�z7�)<2�I�t�٘�X�#��*�1�H���&o�MG�<�ɖU{J���3!�y5f�ߋ�KJW�W��_�Wܯ��"Y�PSSt]�~���1��w�z+����;�w�z8�=rH��%�k=����b������w���xl>�}����#a�O�-�����3
��8oDY:N�2p
Q���k�
�!FHQ�l�@(фnC#�"L��a8.�{�?���z��A��c�f��I��c�������2nEAGE1I�$\&Rc��$3R+�|Q���6�c�Wh�h�h��`�Lz�r	�6F3ƷL��T̵,�,�����^��pHs��L�R�z�]�c�����W�)Ў�saF���
�[�Ȕt��ڔ��"{B�M^SA@�F	����������hk�iYi��V����Č�LBLϘ��O�'Y�[�XW�L�1��:�;>wfq9p��;7�0�{^��w�/��˿#�;(1�}��k�4�#�F�ƴƊ9ϐp��xV"UR~
gjm��ɁL���Sgs�Ό�F��/�-yV�uA�"t��2��y5�����2�49n�4Ͷ�i�{�~u�ծ�:zG��PC��zO��v>��B��묷�3��?>R�}�Yt���ty��u��N[�;={�G����e�t������\��[��;�H��
�����=g,
eH��a�쉽�����E+G[�	pHYs��
IDATx�]	\TU�?�3������H����h.������af��[��f�i�[���AQ�[.��!��"�(`�
2ì0�s�e��0
À�s~��9��s�<�����d2b)I<=&x���C�����;�N�+�!�"��!�<k&Dhd�gP�
��ȳf�`@�FFy��Eq�"��!�<k&Dhd�gP�
��ȳf�`@�FFy��Eq�"��!�<k&Dhd�gP�
��ȳf�`@�FFy��Eq�"��!�<k&Dhd�gP�
��ȳf�`@�FF�����N��Jv�}i�է=�����ŭ�c-~�v7�"Њ�C�Q�x��K��d�ꗦ=&��Uτ�h��A���{1�9;t�"�u���ͱ"�
6#`�<K��|X�z��1���[����Ld�`=yv9��!���!`����=/?j��oI$��������ON)�
�m��n��1r����oκ~W��
�J����ݍ���Z��q�n�,�I$FDx�/�f'e��{�h5ij�;�T�;yIq�A�d�q��%'e��%���\�S}�M!����RJD�DR&��$��Y�
��Øi�@���垓��Z5��t���P�NU�I��΂_JU�����n����!�#���n˜��)ȉ��1���"�K�w�.�ϺMȅ�Jh$��h�V=�F��j�]j�ڔjZ�4<�@�ѡ]���g�mUHόk{w!��˅J�>B�;yl�#�s���\�kU\�	K��fI�!v�Zv1
Օhr��ޝ)W��K,27Gu@�Dˈalj61�"َA��pe��I?2��=bUD�n��Y�]Ԍ�
:ب@��Q�fi��p��%�EV��gO����ʱ�s]}0,'�;]#?/���;~�"Y�b1"P�����6s��Y��:�����A��:4cs�^����	��sl�V�˳��T��,	�(�ؙ|&.�ڷ�s�s�?ɕ��»��'�P�mC����7�>�}t�
|�Xvp,�4���о9��UYY��=k4ۅبC�4���@.�j�%
ӊ#��,�<�xzL��E��W�C���ղ�Q�^i����f�@�aX`W=�H��.
[;��_�}�b�b�O�5�_��(��3L
�
Gg:���@f���l}�zyԷ.�C�@�!Y�[��S�"Z��M���"\�ݿ�u�>E���[X��{�Ou���6TM$������l�ua�
�ږų?�8�@x��X`U�|V��@#*�����S\�*��m[����|�-�-.ó@����A$A)�-!X5@�Y���ʭ
P`R0f�dKKKKJJry@y�K����Ȯ	H��	��eK>\��"�E�÷-+��
��J�T
�VaD@����Ѫ"�ZVn���Yp�!$K����Sѹ�=�c[��4�E"C�n�n���e���$�,c���&-�l3�"vk�0�,س��K�!Y��|At��rl��ߤCo{��j�A,��	�������}���-�
kMچ�;k�U����E��g�	�R��g�]g��8<���j�$ۼе��9J%L7L:L=,X�`I��h�ky�%�
K#
`���Y�ɂP�d�U/�4B7(��I�Ā��`1���bȳ�0u��}#��,�KpR�뀺����O���k*���e`z�y���F��
����y���j�*)�b�,X�
���ߠ>(a�V��E�faN�V4rj�0�1fa��Y׼y�L�fh��<��5��cg#���
a��G��,m�Xc�v��x���i����)دPr�cĿ�p=���
�ɒ�?�pA0+Ƕh����sz�1��b��Sg�g�z��5sX���f1��y�L#V"0Kt&�?��S'/N�jə_���12���g���͙-x��J�t��]�ݺ�-xu���^,	^�n�V�mQ�E�_u�&N]��t��,ߞ�z��5sX��6�<�j��X�j2�5��;��lz�p6��kHT|�G��{E�h�Ϗh�[���l_-|I��|}���gjs��rb0�`(]�	f��W�ÖLU��{Jz羯�6�C@�r
-�ځ锕m��zLv�Vu�t6�&�VOVk�	|���G�x0׆&\=�ϙ�I;(hKȽ��YU�E"�X�O=Ƌ?�ғ�;:�ś�R~J����KU@��Œ(�$2l���
yi��P��`�H���U����������l�
�Y���'���4�-֤�Ǽ�Q��b���IW	F��ں�節��}�oK���S�
�ݘ"��Y���p㏋3�R�}�z�ά��K'S�����9�´
��K��}�nlW��(F�t�)���|�ߑ����!żL;9�-�)�v���ڳv5���#"0K|��saF��<�.�׎3�Ss$7w��D�Q�=�t*�����<���g����Ru��a/����t,|-�$�I*��]�>�R�W�������o\fH��T�����+qu�9�(Vo�w�l�޸Z}���W�G��ʅa�/�֕wv���+p�{:���6����^��T��/A�Y��9W���J�C�`���!������q�q��b����ʗ}Kߋѕ�9�Ւ�n[�/�l��NLs
[6�W1)�\~K3m��A3�%Ex���>u���������O�+��
r$�)���	�Λ��'���)�5w��v	��;;�VTd��܀IZ��q��ɝ�I8D�~筊�x�}���vk��t!��Hz�B*\���K�݈A��T]�q�\o�B����u#Z=g�s\�!=Q��V3�r�D�}�*t����\1�����
��\5���Փ�~[�/�
Z�l�XlE��d��T��BC��Nu�C%���9�|��/pS��Zb����e;=����91�]FJ��?���rp
[p����
o���ڟ�Uɸ�r��Cn����o99�Z��j8+V2shy�����Q�u}F1\�f&�v��?�
��$�y���4zp��cLNe���)�t�PMM)�C[��p�@�q/��K�;���Z���6���_�¨���ў��	D-Z*~>`�r�=��G��TH�����T~]���&&D���J��"3�&��(I�'�!�NK^���3î����Zq�P�_j��B�*��UuL1N[j�R}R�{��ͥ��݀#�/�(/�s��M�����w]�	���a1�-��bα{�����s�O~�$ׂ��-�!�f�!�J#v�@�˾�<�׎[$Z]�f3��[}�b�[��/`�Ul��b�L�kƑз��y�>ѭ������
��霏1~�9�]N����ӓ�F9�{xP�ϵ!���|��V�1P�6;����\�6��CzDY�(�\�՞7�(+�U�M���<u&��\�*O�LG&��I���n�r-kF��(�N_��k�?X�z��sy�o���>���H�>]������������r9l����?nE'�Æ=�q�qB����|W�}���C�	tņts�E�c�Br��Nc��WU����`�#�cH��	ϊ�0$V�b��0��f�&��bt�
�ػY�z��N�;*:t��ǧC�R����>G[��R�{4D�=��y�Yjm����[��:fQ��!�#�?|5��{��U�se�M��=cF���95/a��٢�f�`�E"`r�A���3ǰ���,�^w`ÿ�۷ư�%����5
��f�j�T�P���X�F�zS�H1끽Bꯗ]�,���S6%��SQ9�.�X��
J�����]Bn��/��ͅ.mј!��������5
�D��
����P���M��`a0+Ī������t�>���ǿ�����7n\�!du���Q�T4|�a�]��Ç�Ґ�zO��s�w����Z���ፕ��B�~�f�R7�cBh	/�^H�����t7^!_�z����3f�>|���!3�d+���ጤ���7@�<;y9#ehH\z4ؾz-u((V��A�+V?����5Ha�;�DbN*�6$�.5��{��lA
UN}Y,fU��v|�ų|W��/n�������/ҫ�w�[��}����F�<"�_���ww��#:m�	�GR�Ҏ�*"��ڙ
���#����pM,�:���])	�V����Z��}��e�k�SR�L�4Ɍzu���IN�݅�ҫ�::q�]ߞ���Z�}�z��g��Mx��h�Щ)A�i)�f�����s��ȶ�RҒ��9�x��PT��'��5ݖ�*��
gs��l���R�'���P�f@@ן��2��K��=�J��d��6M�Ԕ�wA�BQ��ch�/D�����GH<�~�;��
s�JH�J���^/�:v�|y������]�I��^]��s�|d7.\,�깖R����[IPԚ9c�A��ą��Ύ\�:W��!�	��2;h6<�M�}9)C��";n*!�S��c���3�W�s�q�6m�tx����#9��l�߿���6+#���՜�l/0��͌ó��)�T"�v��MOa?>�ٳ�uM3��C�B"�̙��2����`���֤�/�Ֆ��M_l�	�KVEv
c����g��yn��O~~{���f�]V٢���iW���)s}�ÕYI�#{3^`���6�K�m�����*�(��,oq؈�$;������ã掘7~�B�6.�Ȇ��Z6k�_$�g�ݵj���<�X�E	�`�0<g�S��YJ%�,
;�)�n���-<��g<N�A�zծ�D����.b��n}|���\��ỳq�Zէ}�l�U�Qs|�<27�`5e�ވ;=���E���U����ZD�7r�k��%��2��Ѕ�e8�h[H���g����M\T�m_Ęy��K��_V$+�?���󦎚P4�=�v-b�
<˸��:xV+�f���~�Z����(;�s`�g�Ҿ��ѐ�@�eH��ѣ�ENWv׵�e_qx�K���4���Z�d/H<�fŰ$梵/�,L]��W��3�J3�,W&�W�IHn^�L~#sς��]�^<\�ܒ+��c>��W��u��3o]I_���&�<1�,[�EvQQvrܲeUb5$�ǑԹl�!�ˋn��qa����7f꽺�����������߻7t�@�c�7�^����ؘ�O��7
�pj���O�S�o�O��\���3i<$��^���,��:P�C+hk���C���&�����,���7��`$n�8#�k/|��j|�ʕx@
*@��𞞻k�SZ��ʗc�Y.#WVf����ع�g����F��ś��3�AALE鋛�
��dz�ƨ��OTZ����`ꏋ���b���P¸�����g&NLy��<�4�r`LZggg�ς�`xB��RYv玶��ُ�X
J���3i�$ů�JF��{�P�=��w�^�K�e�]���n�vm׀��&]��x��Vg����A��zH$��`1�2hج�����r�Z�%�A}�^-��y^R���(�2"�J�,�S���Ւ���r�	%�ʞ�j�B��H%�R�z�BA���^XǾ`6���6�V���4p+T������a���1��:�HNcx�H"��������ξt˿g'Şʼ4�O�8Ps�?<�fj�g�Q6,��B�R���,�6���B�W=9�Ҙg����})���byi�GxBa5��W��P�z
��K�y�X7pX�!V�dis�zO�C��LHH?~|mV-C�P������Í�y�>��T��ܑi���zU����#2ۅ�.�~K���g���Vg�\LNHF�x�~�5sh��D�4�S�X�+�g�z=A>���
VmM�5Y��j<�,P-س
�7:D�{Ћ�b�WۅبC�4gf��zP��D���(�<�аIkA�!Y8��X�|cX<DL�Ϛ�ƣG��=�M��B>�K�g��-A�0w�MB1"�0ne[d�z��E��m˰-!���
�
y���a�V�sv��h��jJɂeʜ�p�xrr�#�^݂��'&����XTk"����m�p.���m�����,��5�d7X!l��-fg�)�P$M9Ֆ&����p�,Y
Yp�B}S�F,p=�6�uhI�m�����h@�@�@�@�@�@��~z��#��6Ll��ؗ={��զ0�G��*��Z��U�j�J�]	@��F�++Q��wV�E}=-٧to"=Q��G��x�옧>
�#"�(�³_�v%%%�(�a�㓭���#'Eb'���	.�"�43nv1<�)�zZ�
���9ȳv>A���!�P-�m"x���V-���Md���<ۨp�0D>x�����$�5#�<ۚg��T
�6��)��r�yC�D�qp{V7�o��Mܽ��3�Sӫ�/>��ϗ&����9�ZAMD�aؿ={+*<"!MޭOG��k��w<�<h��k�ѽ�y�%�&�;@Zvo�)��'�{蛯O�%�֌��[��_�~Xc?�@kB���Y���Oo�F����޸�#t_�gwz�E1�l��D�U
`��&����_r��)��}�_�=�6�L�'�k��b*�Iڼ�`��
"�>�5z�����|��ӣY�6���u[�9!w���c����|�g��Ds+#r͆L�n�����pMqF�*��h��5�R_��\;�`ӵY�yr_Ė���_~��iZe�l�x�*�?�W���u?j��m_���"�"���5�r%��磙}y�}$���l8J��9cXI���o�m������H�a���?B�Y+�#�s	�C�����<�N}�N��Q�יd�k��OF�ݲ�ﵓ}�&gՂ
W���o�
.<����L�2kռ
WE����/f�m�~َ�ו�di"Ҽ���KX�V^�����]��uŠ7n��n����h��@��Y�g���]N�4��i~���r�GG��]��_P�����ף��ϼ��@wB_�B#�L�,�k{��zOZ�bZ$�~z$��Gg��/�{}�/!���v&e�L����*��n�d
<��@�m�浇kI?@�77-y6���==��o9#鎠Q��׾Bm�
�ku��jҊ
�@Ɂ��Ծ���WG���3Xm�<"���#`�<K��Q�	���
 ��
�h��d��0zDtf�����t��ؑ4�B�NM�^G��)��R�\ݹt�Nc�H1�\���H�
BW	��.�ɖ�[�J{��Ͻ��Ȑ��5[�2��;��
�}��Q�\e�j��X���"��=ϲ��S�2�}�6�aD��`@�vǫVH
^�_|�I)}Nj�NU�X(����ZS�a�a��DO��s��U5�r�r�bUx�;PoU�*���"�84�y�·"��\�C���٩p{Lԥ
�����|v,ן�r�M�b*����ݞy��)"zʨ�wWAmhܼ�.���x�~��im�N�Y���r���'o�C�B���D����?�UMm�g�Z����÷�g�|�Q�>i@;��L��L��)ބd�/��pƵkY��ݖtM)�2�";�.�ۤ�[��e��g��J��
0��,�()#c��]
w��~c)��K���Gέ[�g~?��\�-̴�����E�ڜ�[|+�����~�b&"�������'���%K���v~����W����L`����ʾ�w��77��r��
t]�⠗�/0v�V�y��	ы(	pSl�d"xa鋹�vfFo�

���?�7s:��+�~�6/��vF�`<��_|lre[_b�������j���Q�E���_7�Z[c&�"��c#��ɨGFk�#�����oU�Cc�P�^�)h�v�2�
IDAT%j�
�ŕw�j�J_R��X,f�K�+K����~�i�W*��|�;�*�>�L|�^�J�f������z�պ�X3[#���U'#kO:v[S�QN�4����q���H����v
�90
Ӛ�@�f�9;��bo��C��/XS���9�z�fc�A�B�1y�aa�u�{+��2_�~�ĥ�?,u�DpH�g�6�g�O�Z�"�4�zޠ��Ć�"�4ȳ�=v�
���V2�8LDh6��?O�4�1"�
M��}�l��ldP$"� ���
G�� �@m
�ֆ�#�"�8
�6�(@��@��
�GD�q@�mQ
"� �!�<[2�� �@�
�<�88�D@jCy�6d0@��Ay�qpD)�"�Ԇ�lm�`>"�
���l��RD�
��ڐ�|D@����
�"Pȳ�!���"�4ȳ��#JAD�6�gkC�Dh�gG��
�@m �ֆ�#�"�8 �6�(@��h�N��Z[ߘ�
�@k@�iy�Ul
kLj u#�~���RD@lEy�V�="�
u#�<[7>X� ��� �ڊ
�GD�n�g��KD��Y[��"�ԍ�l�`)"�
�"�<k+��@��@��,ED�V�gmE�#�"P7ȳuュ�"�؊�b{D@�Fy�n|�@[@��Al�
�@�
�֍�"�"`+ȳ�"��D��ٺ�RD@lEy�V�="�
u#�<[7>X� ��� �ڊ
�GD�n�g��KD��Y[��"�ԍ@��+^w��Tv=?��\Ԧ}��BV��+���o��V�"�@#`wԢ�����,Ө�z!���ɛ3��Y�J�M0k�OMՏGo���&��q��::[0��}�?Q���'�z��HY��߲	/>vF����a@�"`~�#k,m�\H)Y9���?ٚ��=V��H�~�oEt�}�zv��>����=���rU�!�"`vg�	;�M�����'	��/��/$�|15HI��)}�7��-��7�!ă=v����τ�I��^��	��H챏�H[��;�b`�;7?ސ�]�޿-�6f��ޏ�H����}`��!���|yfw������}�x��'�8p��B߱�����<�ܧ�ٻs�%B�'�/��@o���8H�E������M�F�HDx<O�=!��sY���_o@�c[!������nR7�����[ƪ��;��v�rV�^�H�U��s	IT�ǥs��	g<������?�$._y_���2��;�x��3)�|�'��O�6��	�93f#����@h��gO��j�O
�^{}�g����wGm��T��)�s��:��,�۽�ϓ��nM���&�)���-ݱ8~U.�Hq�M���ȗƴ�u:e;��d��}{{�.9Ae��8q���^����TNg����c��K�Y^i?>���'��T���Ja����
�!P�yd�hl�
��gA��L9E�B�b&w������kȳ�0�{��Yr�*��r������RBʫ�3���_�	V��l,����я	IمXZ�;�'-�^Yv�葐��T�S��C��Ը}�S�
0��m)�
K�iod{�բ!c��a@��wo8vMֲ�y�!��̍/�}wJ�%�߃$�Bs��O���t��d�Dr+��/#�
H�[�2ꢧ	4�^����U��F�P���������3�ʁRR��(._Uz���ƥ����ݓ�2Ϗ�:�{��g�_]�`ŭ�e������o�A�`0�c�d5c��6*�(BlԡY�s8v�fIv�UqsƲ�qST��Qse0����:ydDpe?^�"���I)o��3��������-:�MAv��<ߖ��C���w�'I6��xyv$Wn��	�=E�՝�19
�F>�N.e���gx7nnf^��$ok�vK�ujSiO���6�zw�>�M����=�aF�D�!S8��`�VJzH��z�Ngcg��
�F��9C�p����GP�96L+��Y�WU�B�'7]�ת�<7�vH��(���u�X����?^�??=���/U6��ܶ�g3oL�+&w�pߌ��`L)}oͥI���羻�J��[ٗ�̧���#I��-�4��1=�W:���~<G�ތ�C���C�@�����XNŵ�`��TkTee�ۻ
RQ���.�A=7s#�Y�T����	P�0�82�=��$�<�B�5Y�*j~�^-�_!����ZY�(w�r3ˮ9�r�}
!NB�P�����e:=q�V�-W+5

����i��9��ð��z:���!\8��l�p$���x;~�!�z�F!�؜aR`U
X8:ӁG&20�Z��Ȳ�&<�W�m+��͙���R���V��č�8�v\J�E�F-B1��`H��V0��t��V�eS-3
�"\�ݿ�6�{���6
q��lC�D�|>_
�2�� @���gh�QU�@x��X`U�|V��@#*�����S\�*��m[������-��-.ó@����A$A)�-!X5&�Y���ʭ
P`R0f�dKKKKJJry@y�K����	�0c�A��	f�[V�;|�����խ[D��2NQ���0K��J��oF��$�Upa喏�ɘW�@����A>>�;ۣ;��OH3�P$2t�&��mP^^v~~	M�`�2�.m�Za�"�6�,b���ĉ=�X�Y�d�u��DG;��'��M:�F�g���n��b]�~��0���Oȩ۷���Z���ڰ֤mȽ�&]%(h^{��*�
x�p�Ɋ����vN��]KꝣT�tä����e��,���g[���4&��Q��,K�I�h�(¡�I�Āʰ`1���bȳ5���]"��,�KpR�뀺�E��RYT��`����>��&;h
�\�@����.h
�nq��@��E"X���b�:2�oP8X����,�I�!�1[B�Y�1+�R�Z�gk�Z!4�V��
A�![D�Y�b���L|��",��PXc�vL�N�S���sZ��lE�O�9���	�M"e���V������4���|���G�͉F���%���r��s�32|׍��p'�<�T�X��_�p���i�>K~3�0攧sZ�5��#�YsD0�X��,љ9���u���	Y-^����(�W��g�=�;p庸L��<K:v�vu��N���TV�׻'GR�j��.�g:q	Ws�"+�y�[<��N�9�8�^��wW����YR�1�8��1V�oP��&"`�XM�B�f�sǾ�M/�&�-Q=�]9�ǽ��0�~��@��*3�9~�r-|I��|}���gr9�TsC91h���7=B1!���߃u�T)�����o�ģ�pu�*!f�3q��W�XŨ5s�B8��UzB��'Фw�$�e닣=��G\;̵��W{�j%�s�i�
�r/�l�G�]�����y��]z�{G�:I^Ji�)Ѿ�+�/UE�3��g�Ȱq\�5�)�C�����"9?�W}x��7V�z���T�WJ9
8ބܠ��a�������PaA��[�����e��
~�\b�:�e`%�)����Y�C2��
U-���j�3�9�>鳲9i���3���u������ʭ��0��ݑ�0
^��ɠ=kws�
9�ė:f����^��z��z�l
7w��D�Q�=�t*�����<���g��}R�n�"�����΃��U�NR����ٗ¾B�gG���+|��*��/�1eв��/u��җ_Vl?�<�9��\�,�Q.Sĥ�� O�"q�:;�Qi&r�-rV�����1�7�-Თ�d������]N�IՒ���>
϶�%�؊@l�_Ť�r�-ʹ!���FՅ��d����>u���������O�+��
r$�)���	�Λ��'���)�e�(Q�A�f�Î��vC�
Ά�/�]���På�*�1����.��V2�/l&b�\��H�?~Z�?���M�q�*�b��N�sB�Dii����N&0�J��
���sՒ&	%����҉�a[D��d��T��Bu]��Eߒ�1�H��.�+��M]�k�a�7����0������lv)�n�T���554p��VJ�QZ=j�NR��Š�1��U�Įx�6��/|�u�X��O{6��r��k�T�M)P����T)GH�\^q1��[��Q����CGkVO(]XZ�|d�&��@5Y��`/��/#ڳ�5Ѩ��!��,Ƒ�0ӛ�6*$j�qzt*���Htr�=9d�����,�;�+J�InH�Ӓלk�'8��
��HK&��NE��$%RtR|E�5��lU�1���
��;�r�k�	����O��H��i�Ah���I�*V���_K�%}�qP���A�E��D
�e�r�q�D�ٛК�܊��"'~��*��X1p���5�
�S����n�o�7}�T0��dH��,��屆;���Ao�w�[�k�����zm$���^��4�ƹ~O5�;YL��bv]BkBY�c��̑D�s�ڄL�3��ͤ�y)�L⺈�d�,���
�al�ӊcn p^c�����r�
+??�8�}܇
k�D���qB����c�rx@�z}֏z$˰��:�&��rT��~ϰsj��u�0$�����d�����Y�fs�)9v�=t萏�O��R���|����KW'��:;�{�B��G������yqLr�ܵK���eG�6H�m�"`r�A���i��
=ǰ�no�+Xj���H��Y�9��aU��!�E�JVo�)f=�WH����Q��	{1'->����)��J��DRR��"_,귾@_k[,@�D��
����XbQ��#��X�
�j8vij6���JHg���r-%�=���?�/S6r�XM�W�	?|Cm�
�2"`p"1'\z��}�h�谲UTN}Y,fU��JT�'��tחRs�UV�O��$���w_��<����G�"�
�+�
6=�>tO>�=�DG@@׿?�	�,	���*�����J���졽tl�82W_	���3U"��_��4��ΦpR�D"�Y6=���xg���5M�=ˬ�H4s怆�Dnn�$�-o�5i�g��ݿ�"�����_ۇҕ'���yA��gጂ{�b�8K����a'>�֭���ூÁ����`�?�Z����u�p�E�߭��S^^��!3�0.Z���7�����
���/��	��`@�����g�Riv~>�,
T�Z�ZU]x>�_�=JH���=z�h��Z�s˩z=�e�iU.<ץuT�[qH�bA��hVK�a.Z{���ղ�"�����S=�f�Xe�7^^^�d�;���ǡ7&��P(�S��ݝxz��}[}��u涘�w�Y
Yx��?<�d�ԁ�PZA[���ee0�0�0�X�`I8��@}y���lj�Pwx~��|_��_kP�1i����?��◕ʲ;w��~|`�QBƄ�I�&)~�U2jT�@���޽{�/�tTw��^�Q�۵]���u��㽻�sZI��/SA���!��B��ˠa�����ôf3(`Ci5L;K�B��8
�߿�P(��1��:�HNcx�H"�����n�Z���}��N��XW�S����YW��U����L
�,8
��� YP
���ۛ�Z��>"�$0�s^1�
��e��!Yڜ��Ӆ�.'Ə_�Uː,�������p�o^�O�����
�Q��#2ۅبC�4gff��Z�Z�ar!09
Y�l��&v��g��i����7�+�g�z=A>���
VmM�5Y��j<�,P-س
�7:�{Ћ�b�WۅبC�4gf��zP��D���(�<�аIkA�!Y8��X�|cX<DL�Ϛ�ƣG��=�M��B>�KiӦ
�ȅs��$�#B��V�E&�g�[h޶����^!�`��g6l0g�(��M��$�,X���G�'''�1��-8�~b"H�0���pA@�&��K��6
�r)��F!��܌L͒
QSMv�†���"`v֙�%AҔ�PmiR�@�_��`�ɂ3�j6�`��!�(�Q�بCKjn�|�$,p,�@���2J�+�+�!��H�a�c��F���ٓ��6��Q>"�D�W�\���𠭢T�Tjw�J���4j]Y����.��i�>5�{�b>�ų0�g�<��Q��FA���b�c())�G�w��l���9�(��;A��x�NpA5�
�8�!��p���Y�0O��Ӓm@����@���	B��j�o��`�
%�j�dl"U]��F��!�C���$!
0����<�8��B����uL��\�c�j�
���#ٳ�F
���a��n��x\\
v���D���{��1J�‰�n�6�§�եh�w�
«�/[	�A����xB�ze���jG�����%�����2�/�yŝ5�����Ȅ2:G��G�&�����ۏ"��E��\��3]��j�u��u�x������i~�T�s��_�,��bݼws$5��X��ؚx��?#��+0b@Z2�7�~$2�X�=`S>����v����/��ؿ,k璨?��_M���ں��Qa�IY–��wh�>��
�=$+�t�֭Q����>�L}�a
Y������6���>�)�X����b(�nR��c�{�p>EZ
���/o�n׮�_�&��M���	�Z�޴.��&/�O��r4PG<=��O^��γ���7����޶�q�	?up��iA�N���|G��	Fc�\�%D4k΄N�~#gL�"BK>A��+L�J��0m,��e��6*L
�@�C�xV��	NY��l�0r��n�Ε���}�O���B�)��K�v�=�|{Ȳp���ce���A�&\�Ӻ,5�U�/�,#j��\E�6��1
�@+D�}!�`��Q�k)��}�ԍ0zf��Iڵ�;���5�Q�	��&>��-{3E^�#&ϙ>ҏK�}�h�G���}i|��	Y�a^���FY,��}-��Ƚ���q~l߲���
-�gk�{�^�dH�}��k;��Y3k�G�Y���#2�Y�b��f�G����_{3l��
!z����y����߫��
�׈�]j<�HU^�>oނ�ȝ�3���S�f"�@�p�S����_<����i_[��mK�-�>~qĴZ�M��L�^�~�
e$?����O�L�����W$��.}��Mv��G�����ڙ"�W��n�Bv��O�nYP�ڰb���LM0�
-�g	���+���+6���0=�����|���׾2��&z�`ѓ���YO�A^D�SHy*��w�������yl�`(9����Vsy��"����-|�;�ާ.R0
�@+C�ax֙����m$�S��g�y&���Pl!Â��yL�kl���͡���\�������y���FvUF���0�PDd|�L�7�I�!�U�[ؒpfEQw���J�q��Z����"��ْܬ�3g������g�d�ɩ�?M��g��(Kr�|��h=r;�5}��c�+/�8��
;��s���V�wf̘��Ak�9jZ"KX��ʒ��_���#��o��De{c����3�>*ӷ#UVM���;��[|���=�b
�>l0-�Z5h�@Z6V_R?|8��|C�ZV�u��
���>	�L˿�l0��%�+OS4K�U��oTw�����QmD�Y,5=�U��.c�/��jC–p�����d?Z�`�u�><�.���}�*�q5�Ҽ��{Mt�dB�s�L����
-�Lfd��<�xzL��yV����
IDAT�`��߀�V�@}�@�V�v�j��j��5hJ�e
=O��ΝqTUQ‡�z�P�γ֧��e�\�	����*�k��~
V�8l��=��mM�F9�M�0��l�ă���Jsu4�g����r]�g�>��ԧ�e���
-�϶�q
�"�:@�m��F�������{B�։�l�w5"�<<�g��"��N��yx��u��@Z*�ų
~f��N�@Z�7h��C@�Fy֮��C���l�D"��5ȳv==�"���g[�$�D��@����A�D�
�<�&�� v��]O*�
-��0�8D�k�g�zzP9Dh ϶�I�!
��]#�<k�Ӄ�!�@@y�L"@��Y��T@Zȳ-`q�"`�
���r�"�@�m��C@�Fy֮��C���l�D"��5M�?���W�T@�&F�iy�Ul��C�"���&	UD�Fy֡��G@y�&	UD�Fy֡��G@y�&	UD�Fy֡��G@y�&	UD�Fy֡��G@y�&	UD�Fy֡��G@y�&	UD�Fy֡��G@y�&	UD�Fy֡��G@y�&	UD�Fy֡��G@y�&	UD�Fy֡��G@y�&	UD�Fy֡��G@y�&	UD�Fy֡��G@y�&	UD�F�gګw��}�%Z/	�_��x�צ<�˃[����1������w�c��*a>"�
̈́�]ڳj#
}�uBR֤����+7����w�*�.�y�D��О�D���=�|
�9sM�m����ܙ
��{xK�<���ވ��_
�g����js���2x�h�̃)k��!S"��kC�j_)Dx�إ=K���G׻�fzQ�����k�e�D2e���D��zq‡*�*�O�p�\����P
ٶ�|��
�'��2��XDx�4�={��U��Ԁ�5��֨����^�8i�\y�T�C٧�D��>�������m�+�@�&���y;e\�Q��IN�'����}�_���SS�A����݂5lZ��l�ry�?����?^���v���}p1�Q��q)���ƈ��%�/"`��1a���<k��y��z���[|�"E��N����M��Q8�k	Q�a:
�S�ǭ���{�y
)U"�
́����ɟ{�d�D��I��Ǩ����O������xbzw���������������E�ܗTLFO
{�T#�@�0�fIvQ3�+�`��"�F��9��a�k�dY�_�����ؖ�$<?�ғ�ܸ�_����m����㕧��BOh_A�a�_?th�}Bj����ߝD�J~'I��z��cb�@�ʈ�	�L��GP�Mu�*R���t:U*/o!6�Ќ�z�#'''8�2̱aZqd2��d!I<=&x��k��U��.�r�}
O
��_[P+�z���+�uh�rM��$��5�b݇��)c����=ŵ��P��_g�g���[���Z+���#�y���[@1�1�(�t�e�4l�GA\���@�|Z-S
�
�e`�
�a�]�t#C�pQ@�V	|8���r��ƾ��Fb��ҜaR`U
X8:ӁG&2����lƈM�`H��V�F��D�Z-�j�vE����p����[XXX=�%�؆��d�|�@
�-�.���E�mɫ��0�7�L��V-++S��@#*���Fz���UD�۶�����/mk�m�p���
6X"�J�m����
�ZVn���1$[ZZZRR�����]:t0�oODvM@�N
��.[������w++��
��J�T
�VO�``X�h�ȳV���[>&c\`�ɒ�w��Tt�l��ؖ?!�4B��Э��[�Ayy��%4ɂ1�X��Ek�I�<�L����+�1�,xc�g��eH�)?_�矜2��\F�س|Uk�g
b��_?MX��'�����FW-xlamXk�6�ޙ��
�"�0�,8aU*�,��L����SS�da�(�F��T�t���e��,���gqY!�0�
��,�d�,Y'E�/kTk����L�
&��,	�!�<�2'G�0`x�%8��u@�"�S��~`����>�Y���ā0�h�j���]��i���@��D��3���"�o`-bX��#g�Y������Wo�����B�ݎ��<k\X��#@sl��(-|�8�z#���
�wS��C�5[֘-��15���sZ�����s
�k~���1CO�rCz�$��*\�ʩ�rf}F��ʰ�7�Q̂�*42��p��D}�7e=k��hϚ#�iD�Jf�Τ�p���	Y-9�+�Sr��Es���<�m�X�zǮ�n]	��:]�t/�	�w7n	+���I�b�0��n�.�-�s��6g8�r��׏��8u���A=�Q��6�e�$���Q�Mu�gMP`h���p�"�}%�^2�Md��_ѕ}�+��D�t?Np�1n��/�c�}��%Y�K,�U�����	��ʉA[��
+[1��c'�
X���JY���@�J��Q�y%&]՝67��x�PQ��
X�������	2u"gY#;����`P�A��64���W��y�������K+��Q��\	e���Áܥ'1�wt�7/�4��h��ۗ�"�@��Q�3Id�8.m�Ҕ�FQ��S����>���+�=Qveb"̑3�c���:=�}�B�i�����y��k��
�Tu�wх�T�s�E	{{@[�$Ũ9ƾ�"���7�xz��PM�=��=��8�]1i9oG���WL��V~�q���u��t��ڟ/�{�g�B�.�V��]�.��T{<�zy&�V:�>˚p��L&����xj�S�
�<%F9:m��^���dОm���.[�ė:f����^��z�8Ml��qs�xH����3H硂���_��x��|�>)U�?N�r�{{H���BLR��"���/�}����+}/��*c�
f��O�\=T�r�*��R&���~�°җW��;�����Д���o��,�.��g�FJ�-�L9^nN�²��w��q��?S���w288n�N���p?���ɳ�p���\v�)ܧ�]NnS�XQ��j*�6�h�7*>K"�6Os��]���
Zp�nN�R��T��CCjC�n��Y��Tʑ�-�k�	���fZ�گ��j�3��:b+!W�Sr��iv�	
r$Sɽڝ7y#��>y�IH@��-��ڑ\��l��jE�L�㒳�9.Ѫ"�2���!���
�k.+?��'��P�5��<[�{lEz��m0��•i��
��ɲ��N�����t��9|�|�;�
~�drz~��Y*j)?�ӿ^��;�C�y��3�;;@[V�A�P
��k€|��51��Ո�mM'g\���
&�&7K��F�g�vjP1�A�����G�S�P	v��q��߹���E:��oto,�a����}ω��2R���&���k�B踀C}ﰖox�U�5��Y���C�Ӷ���w�:
4~+��H��t�ק�TH�r����Ub*c�ӣ�r!LӅ��@�>d
z�wT���Ns�����P~�G(���P]���s�	�-�6嫋���
�|�P=G�χ���X5�)��9���=Щ��&"��
6��ⷒ�GX����(I�'�!�NK^s�~�l8�n
|����i���\�i������<o.MyZ�ΤpN�D�}�t��+��m�&�K��/�6Ϫ��1�>N���ϖQ��xV=M9x���p��:ҕ�`~�K҉���	���H�Y'�55y`��V��l���
�����{)B�Z�J̲Y���29��XPN�$��
��5��$���8�G:��*���)��E�/��5������μ�ֳ���jY��7�呾}�Ve5%��-;�e�rpиE�Յl��d�VD���9�<�P��NJ�3��ՠos��]���~�v�x�L��L�tzDY�(�\G0����ϵ!���|������K���`�"��Zu�Rm���h�.O���W�U�k�e���)UA��aÚ	��h���e:�#%���k�k#*zy��#�
׷�O��}h�W��C]����Ղ��VM��>
��)�s�`G�ݪ�㼇.d�[y�꼞G-��jw6�3e�����p���U��̠��6��ٕu��zY���|�������>4f��q�tÕWe�D�}�߼8*#h~|��FJVl�����3᳓���Q^#4Gd��׬Qp<��}���W͊
�Q���2b��\ـډV��}̲贛�{0�*X�D��9�_Ře�H.��{V�țVG}e���L#��0όJ��R��j��f�̡���S߿꿗��GG�z@�F)�w~�m`+C�
+??��g���Æ5��z�����k���*p��5���3MqBBH�~ڳQ�G=&Ogr8��Խ��D��e���oA=U}�?��abUw�@��Ī�t����_v5�֤ZU;H�;Z���/>>>:t�J���
�_���v��WOq�T>�bNZ|!scSf���r��w����9�����g��x�
ٕ��9W�f�%q�'����o|AVfȊ���M�\�Ÿ�W�ΏN��9��2�֕=�ϋڕq5'9:524�xT���zt�!�Jy��
.nA������K���u5����JȿXN2��G�#a��х�ۗF�qk�_V33j�>�~�v����adf�,dNlR�=�.]��F7"3*�K�sLc�¼�#+�Pɂ��*�1�8�ꍒV�cl�3�ҡ>E�����x*jEHg�,�����Pݱ�L�F5�!�I�ڎ�aG<K�2ߧ3PHg����^	�4w�����w�s�d��R��w�gόΘ7���Tڵ�s�ɛȡ��������l2�	0ry���{�U�}9%6c��^��p����+��U����$rH�u�WZJ�|Rj�W-"�yc�B"�J����ԇWϠs���X�|EL={a*!˦���,�YA�1�
�S��7�W6�zOQu>��3��=4<*j�oD������]�\��$��I��=@�eƅ̈*��&��.�d/�L."���͍_�Gb)�ː/��잷,SM�G��Jx�9���L�'�x���7�E�Sj�G���B�=4�x��o��p�Fz�!�ӯ���a��7J�eV��~�!c&�@�za�B�\���I�_��c��l�l�nZ�P{�Yj���-x�I���q�3��
�<���l4}dW�"$}F�'$�|�1~��~�.���<.������t!�[�	��Wg���X�'��:0��s�q$���YI��O�R�n[�Q��ZaӾ#�	��򢃞���ݗ���<��S�Rwxr�L(�2{��NȎ
���lWJFFr�b}��=W�w.��v_JZ�#Go��G�����ltt�ٌ#
W
�%S���}h�¯z.K�57n��#�*<��]R��?B3���ȅ�]z{�*Ղ���#+����xa��젵��zז��{�I�7��~1%z\�A��I�Aw�R��7�-�=��Сc�7qD=�M\��&zU��Cq��=�o_����Gd���%�C�dWgZ}���1���&���~����8���OI92qtPe���8,��Ҿ�
|nC�J2wa�Z���#_<�l�YMe/�
r�6X�U��cO�c�^���_@攁ݼ���V$6��>ɟ��B�|ʆ�/��-����^�L*�Ύ\�:W��!�	��2;h�}ȕ��7��J��|��B�_#s��5$P���:eӑ>�z^���$��3���g���=��Lf��ׁedJ�a����_�V@Yx+���\���J
O�Ё���(2x^j�̱Œ�C$*�i�4��c��U���Ǟ}�&O��R��[G�F�Y��2���H�X-�έ��@�!A��pӔ�w�l�ӟ�'�E�90��T�s=,r����!(��y}��s�w���0�߁+��z}���;N�@q{j�����H���0��ȸ����R�V�f�X!�9O\���pT�͞e�(�5���jFʾwǥ������&��Jz{���)��>5�2�d73���=4|��
ǭ�h�s#F�\�
���~�M�����⁁��۶>����E��ܫ}���v'_�v�B��^�m(Ü�^8f���~O�/�?(@�u���ȡ~��ev5?Q�&A��*YT��{�r�T/XR�M`�;s��a,ߟȾq�`�Q=���a�ٛ�����ެ"K��S����#�Xؙz}��s�n޼y��M��R�螖��V�<��ʿ�hM]�3�<7Z�R�H�Χ�THo7F;=}5C�YI�#{3y�J�Yjap4*Oj�Q���.��r�T��	�]��,��Zh'�m/���n���u��N�$$j�O���3�d���#�:dz���܎����|�?�h��9ۡ½�̓6���H�,*��WcX�9��t�"/����?��;�(�|��00(}��ă%+�W����tMb$�|W�<Y�
WVe]��}&ÁF��d�.K4t�H�x�wT��b2s2���9�k�����g�����U��QS]U
}��g�GX��пC�-�zkV���������Y:gҴҩ=���
`�0[��j��<�د��i��3=�K��c<7��J�9�D�-��-s�hI���@y��]�-ى�5(�%U}����ԥ������3�4Mx������{�B
��h����X�
���h�nb�l��$�2}�f����q.��p`cm�)�Kt�K%��u�再i&�se��j��{mn1o�-�sQ_ҧ�,Z)��6g)%�c�Ov�=l͜K?b�tl���gk�'!]9�d�ڛ7j��s޺N27�c�2�J��k������ٴ��^]~�ݷ�[�ԽL����o�/y���Z
%	�=z�����2O�4���ҡ%S�$5J܏��ǘ(�4uϋ��a7d��=�>A�BY|��O�(޽���2�����[N��:��
;�+F�Q��\y��n�)�苧mV@��3F��I�Fm�NJ�^}*h
��/+��JB!�
����¥�R_]חc��)k�X1�����{�ota�r�o���:x0�ݸ*��
����ذ煰�e�m{U�Y_�ͩ���'̎b;��9O֍���ҽ7(NДߤ�\t�R����|���WL	(�h+�a�f��q1,��{f��˽w�W���:�3�K�gzD�r����6D�)����e�~W���fn�t�e
���<�!�E��%��sw]���c(-�ژ&TJ=��,j���8�$&�p�*M��9�ڊ<u$8��D7_�W\�η�&̽`nq+�+#g�N��7��֬T���f	:.O����)/�
��RaM�o���tɇ˫��s,�gm��}�՗?��Ϟ�7��/W�?�B�Bc��K�C����L��y�Ƭ��Cc6���Sv���}'�Έ��'�Zަg!�v�;;tFd0�zhQ��,���!3�#$tY�k�{����;d�j.�S�¶E�n7.jr>�ޜ�/bޘ0j��Q�qE��٫�DŽ!ɨQ�P�Ws�_�0�͘2t'�p�pA*���'@��S�����<_�zt���c����lHvf�k��VO>���f��6��a��2~�V�R�f��w����&P5(�n,��q�)�c����hIi-&6��2&>z'��xw�,����ÖN�@2��5��j���]Hw_�]�'Y����A���9<����ڐ$��.��׫K�x�E��2M��E��VvͬOX}ù�.0z��O��ݦ3�~�:�)��j5>���bn/,Pg�ʦ�Cd��߻IDAT��zO8smM�
]n�,#�s����U[����W'�JVfxǍ����.KtҐp6yI��:C#��`B.+ɵ���$v�/�4�%2���ͥ�,]�����FAYJy'�p�u
���^�Tb��GaU;$ゕX���#Z8T׼�`\
S��X�5��nN����P+��&��z�B�-��(!֝	zdZ��0Y��D���֬�CbT��)�������W���~=���0Q�V�R=�X����u��o���޿�Ԭ{]����=�%���'K�?�{-��]ՠiFtu>q�T�賂��R��ul���#Yw�{���<��wLc��^��ä�W�����t�3�H#�UxҘ}֫[��{_�S�Q��փI���c�u�������C�����)%�)j�x�2�K�U��˴����_=�}��_�?�Fu�Ey�&��K�C\n�C�mRS�%J3OzE�����٠뷘;4p���.Uo����G�Z��x,��ڋ�"�d\�?��ڸeH�`5-XW
M�HA�A��[Wd�Ҫ�BZ��,�8�a�f�&������)�L~��6���&��
��'n�G]�E�h��U����̘6Os���ͫL�j"�_��ꃷ\��v��v���Z�N=ºG)���e@d�1�y]�Viv�O�g����-��{`����?xɳ2<�5�m����Su���vtz]��_r�3:�o���L�瞶D�*P���rO�l��"/lN(j����U�%/�aêg�k�ܞ�_��n,�5ۡLZ��{�Y3���x��C��$�����Ec���NWM�zn����vC��l�K���V�9b�-����K*U��l������.׮q���H�ƴ7t��n���%�n������o�]"Ƹ�pRs�[}s!T�T�
��^l����6N��	�.LwpKm~qm���ul�9ី�yq���9?�_b���_���BNƛJ�˽���҅�ȿR�W?����M�?���!�6�����R���#:X�mu���)�&w��0KR&^2�_#���euz��	�6g�:��>9�J�\*����|�|���]'��C6��oD�)����_N1��/xg?��	�7�ꮱ����B�`,&k�,����9��u�C>�������"�B8�v~��D4�/q���<�o�'oU���+7l����*��C:�|V���
��Q�4���+X
��	�L��W'aL-�_=��?ќ�77jtF�ώD�T:6�0��kT���^xӁ���W���.���"�������~����T/�>�@���^��ݗ%a�7(F��.��l��sCI���@f��xp�:��DS�7�70��������?	�R��y[�(��f
�7����Ӹ!:��R��Z|�X�+��f�wK1�*u�K�L��f�Y���F$�H:&N��J�5dW�M��ؙ��>����}�bk���x_�_���e6ۉ�K����`���u���r��\͉�QӼӧ�0��3�}�v��?�й��zZ����Ʋ/bTT����(a������E�`T�'l5'g���ܾb�i^����0�G����Ӥ�<xв/������[���9�r������%恤ı�뺝���@!`����6�QGN�Ķ��b�l^Y����,���۩�Zj,\�+��P�S�,���*��'�N��He�VG��ƥ��x}(9J�A	7n*)�:h-�Z-&
\�0�+�E�Υ�(��'��>:�٘���
ة:r[�{�b��u�%f7:��E�(q'$�I���ېUW���ӳr�*[����pU��h)��Y�V&��W�r�([��+(����
B���lp	�q_���KJKA@7\�e��`P}�.<p�b�%a=h��Yq�]�����=X�u���=^G��X�=^b�W�^���:����W��.����8k���	:+��pS�5P5w1��4��
�%6nO��]����.	\��A�j���t�ପ(�ߘm��-���o�t�{�~�nhQQQhh�1�:˼|�[D��������L��˫P�z�֭ھ}Uii���_-�G,��9U��$���h��b4�I���FFՖ0R�1��>}\n�*�J}���iBg�[FU�ۺ����o��m��wG&����;:���)�};Jڷoͺuu�IAa�Fl=c0�&O��J�
���)�]�ý��ui�ח4�:
D�ے�/d���}C�N7np��EEgN�#qz�ҏX���~�=^K/l�x�ƨ��y����x];e�ѢҊ��G1��ڽh�<��v�s�}�I�,�r��V׮]���Ww�?�\r���X�rb�,D�m/��P���
%��
��|��t����ht4����.\a�
���\:~'�<*fM��#1��=^�}��5*ș]ZWWWɡ\�x�Y��.+Ӗ�`!T�X%��9s����&ٮ��H��݋q	�p"��툽v�ހ�v�M.~s���!��/��EӠ��<��}
(,.\��Z�Y��=^;�uA�l�Q8�4��w�@R.�,�,�<x�
��r�kCj!�����{fz{{㎅��z�.}:����~u��S�̤����Q����b�}X8x
�p��ki՜�9��6ءTt$x�=^-��Fۖ����p_	�<��E���r�tq��dNNNtttS�ZAd������׷K�.��ŷ�c�Z��k{�����|��c�g��9OJ�E������ƅB�YԮ����������f��ЍE�!�P[��^�G��*z�
��ғ�~�YH-�����:L��8���z)���2<s�E��G��y��Q0�Y;��Ig!
�,n0+�7����cAy��Z��ÇO�<Y,���"�R�u놽;��\[2iE���CVv$O��L)�����py���R��ڍ�;���by�Bd�3�F|�������C^�L��
79
�Ctc����>)�v0s���;�I{4�'���Q[5��"C"���u�CA�ph	����t��ǃ(,z�Y�"�%e�WZ�`�����e�H掶GGbAu!��hB:!��Q�)$ï�W�>��D־�U[p��엧��u�)"�F0�`��:-&�*�4*�6��H�F�Q�+�?���𣾙=�_�<���I���KgQ�_M��OO��HZ��s���1TVVb*�a��K�m�p��C_�Jy('!�t:�$\�D��э��.Ag�f�7�'k�y���	��:yQ��Aj�e�
&<PB��D��5d��t�UqRfDJ$V�$0���L�t�3�>ս������/��j��F�&D��h:�����~�J�X��{��7�Ӭ^��4f�HF�FM��8MK2�	J�1g\����KC�D�t�>n������7K̤�-X�]͇�kG�wU���
%�UY��S�/�?s�sr�[��6��2�|��-9�fK���k�
26�����l�Ui����P�+����s�
K�''��0�R�&��`"@�9g����R��,ySZZ��0ϒc�m;r��\S���𤴷�D�罷�}���ozooޙ�x%�ܺu�Ͷj�D�ha��)[Ӷ&���7��g�[�?�ʉl��ooZ�
Sm�g>��?3s�Ad�f�o"@:0g�Y���v�H��7`��o~_%�ǽ���/.ش,̯k�ԥ�#=Kr>�)��ii�JfL�m^�5i�B��,�:
�/
d��x�d���&�)�SU^���^5?�wנ�+��c��?�M&^�������yŢTD��{ή�Lf}/#s�m��9{<���~=�F���ؙ�79���y1�W����4��7?b`s'����Y}꩟	'��W�n����E���3rD�t
N���V���Qt`�^�@�������>��2��iU5B�Vd֚^͑�"���
�M�ۗ�!�Ӣ�z�H?�}�XC��Q
�@��Y��OWn9�'��"0�t��G���Y��?ޘYȂg&M0=�j��e/����o�b���������ݨ	"Ё	�����YKS�Bd7m^X�M����U@S�ۗ�K�Vlfr���&֍i������%��+��f/���b�����|���z��
_����Z<��5��G�@�
�2�z$L*9����ߔ0A,�\��Z�dL��4し���C�D�5��8WQ�ի�⭄7��G/�<��M���"���5�@�X7�/8s�T�jh~ļ��z�	�G�@"��:�*ܘ��S�,�5�{?8\xoa����Q���/��*�q}J7Qe~c��j��&��b��c�a�R�"�Ld~�N�0��a#����K�q��+_�=.��8%�
�C7���p�"���4�)+W���x����g\��N�3`���S9`��R�׾�/�%ٹ][�=�-3uU�g/W=�[ϛ�Ξ�r��YX�H��l&���`\��������E`�D0?�k�U��ao�����Nx�zjrc��<e��W�<{���k\�.u�l�o��'zӠBC�B:
g�Y����<��=\�Y�5��V$���#�3|�_aJ���=%�H��3{S�0�ɫv,f�m�)C��p����L�a��t��O]�����I�x��[��Iknߴ	�˹œ����|Z&�O"�	H�˹�I
ݡ��S&��ax�B���~�[�>M�
<w���୒X��
0B@#����d��)����i�M'���[��Fs/���p��|
+Д�	#��-���� �n�϶Fe)"@��#
@:���)��THg;UsSe�xHgt:% ���l�jn�,
�����7���G��NI�h3�v�l3>�1
D�Q4n�(A�'D��&@:k��"@%@:�(A�'D��&@:k��"@%@:�(A�'D��&@:k��"@%@:�(A�'D��&@:k��"@%@:�(A�'D��&@:k��"@%@:�(A�'D��&@:k��"@%@:�(A�'D��&@:k��"@%@:�(A�'D��&@:k��"@%@:�(A�'D��&@:k��"@%@:�(A�'D��&������U�%�X"@�@�&ж:K�U��WՎ���q��P�4D��	���ώ,�
�!@:�J��"`?�Y�ّ%
D�9Hg�C��"@�'@:k?;�$D�4���E�����ǸIEND�B`�PKe�[
���css/template.cssnu�[���body
{
	background: #ececec;
}

form.formular, .validationEngineContainer {
	font-family: tahoma, verdana, "sans-serif";
	font-size: 12px;
	padding: 20px;
	border: 1px solid #A5A8B8;
	width: 300px;
	margin: 0 auto;
}
.formular fieldset {
	margin-top: 20px;
	padding: 15px;
	border: 1px solid #B5B8C8;
}

.formular legend {
	font-size: 12px;
	color: #15428B;
	font-weight: 900;
}

.formular fieldset label {
	float: none;
	text-align: inherit;
	display:block;
	width: auto;
}

.formular label span {
	color: #000;
}

.formular input,.formular select,.formular textarea {
	display: block;  /* this breaks relative positioning */
	margin-bottom: 5px;
}

.formular .text-input {
	width: 250px;
	color: #555;
	padding: 4px;
	border: 1px solid #B5B8C8;
	font-size: 14px;
	margin-top: 4px;
	background: #FFF repeat-x;
}

.formular textarea {
	width: 250px;
	height: 70px;
	color: #555;
	padding: 4px;
	border: 1px solid #B5B8C8;
	font-size: 14px;
	margin-top: 4px;
	background: #FFF repeat-x;
}

.formular .infos {
	background: #FFF;
	color: #333;
	font-size: 12px;
	padding: 10px;
	margin-bottom: 10px;
}

.formular span.checkbox, .formular .checkbox, .formular .radio {
	display: inline;
}

.formular .submit {
	
	border: 1px solid #AAA;
	padding: 4px;
	margin-top: 20px;
	float: right;
	text-decoration: none;
	cursor: pointer;
}

.formular hr {
	clear: both;
	visibility: hidden;
}

.formular .fc-error {
	width: 350px;
	color: #555;
	padding: 4px;
	border: 1px solid #B5B8C8;
	font-size: 12px;
	margin-bottom: 15px;
	background: #FFEAEA;
}

.formular input[data-prompt-position="inline"] {
	display: inline;
}

.footnote {
	font-size: 11px;
	color: #666;
	font-style: italic;
}

.prompt-target {
	border: 1px dotted #666;
	min-height: 21px;
}

.inline-prompts label>span{
	display: inline-block;
	width: 250px;
}

.inline-prompts .text-input+.formError{
	margin-left: 10px;
}

.prompt-summary .inline {
	display: block;
}PKe�[ ��

css/validationEngine.jquery.cssnu�[���


/* Z-INDEX */
 .formError { z-index: 990; }
    .formError .formErrorContent { z-index: 991; }
    .formError .formErrorArrow { z-index: 996; }

    .ui-dialog .formError { z-index: 5000; }
    .ui-dialog .formError .formErrorContent { z-index: 5001; }
    .ui-dialog .formError .formErrorArrow { z-index: 5006; }




.inputContainer {
	position: relative;
	float: left;
}

.formError {
	position: absolute;
	top: 300px;
	left: 300px;
	display: block;
	cursor: pointer;
	text-align: left;
}

.formError.inline {
	position: relative;
	top: 0;
	left: 0;
	display: inline-block;
}

.ajaxSubmit {
	padding: 20px;
	background: #55ea55;
	border: 1px solid #999;
	display: none;
}

.formError .formErrorContent {
	width: 100%;
	background: #ee0101;
	position:relative;
	color: #fff;
	min-width: 120px;
	font-size: 11px;
	border: 2px solid #ddd;
	box-shadow: 0 0 6px #000;
	-moz-box-shadow: 0 0 6px #000;
	-webkit-box-shadow: 0 0 6px #000;
	-o-box-shadow: 0 0 6px #000;
	padding: 4px 10px 4px 10px;
	border-radius: 6px;
	-moz-border-radius: 6px;
	-webkit-border-radius: 6px;
	-o-border-radius: 6px;
}

.formError.inline .formErrorContent {
	box-shadow: none;
	-moz-box-shadow: none;
	-webkit-box-shadow: none;
	-o-box-shadow: none;
	border: none;
	border-radius: 0;
	-moz-border-radius: 0;
	-webkit-border-radius: 0;
	-o-border-radius: 0;
}

.greenPopup .formErrorContent {
	background: #33be40;
}

.blackPopup .formErrorContent {
	background: #393939;
	color: #FFF;
}

.formError .formErrorArrow {
	width: 15px;
	margin: -2px 0 0 13px;
	position:relative;
}
body[dir='rtl'] .formError .formErrorArrow,
body.rtl .formError .formErrorArrow {
	margin: -2px 13px 0 0;
}

.formError .formErrorArrowBottom {
	box-shadow: none;
	-moz-box-shadow: none;
	-webkit-box-shadow: none;
	-o-box-shadow: none;
	margin: 0px 0 0 12px;
	top:2px;
}

.formError .formErrorArrow div {
	border-left: 2px solid #ddd;
	border-right: 2px solid #ddd;
	box-shadow: 0 2px 3px #444;
	-moz-box-shadow: 0 2px 3px #444;
	-webkit-box-shadow: 0 2px 3px #444;
	-o-box-shadow: 0 2px 3px #444;
	font-size: 0px;
	height: 1px;
	background: #ee0101;
	margin: 0 auto;
	line-height: 0;
	font-size: 0;
	display: block;
}

.formError .formErrorArrowBottom div {
	box-shadow: none;
	-moz-box-shadow: none;
	-webkit-box-shadow: none;
	-o-box-shadow: none;
}

.greenPopup .formErrorArrow div {
	background: #33be40;
}

.blackPopup .formErrorArrow div {
	background: #393939;
	color: #FFF;
}

.formError .formErrorArrow .line10 {
	width: 15px;
	border: none;
}

.formError .formErrorArrow .line9 {
	width: 13px;
	border: none;
}

.formError .formErrorArrow .line8 {
	width: 11px;
}

.formError .formErrorArrow .line7 {
	width: 9px;
}

.formError .formErrorArrow .line6 {
	width: 7px;
}

.formError .formErrorArrow .line5 {
	width: 5px;
}

.formError .formErrorArrow .line4 {
	width: 3px;
}

.formError .formErrorArrow .line3 {
	width: 1px;
	border-left: 2px solid #ddd;
	border-right: 2px solid #ddd;
	border-bottom: 0 solid #ddd;
}

.formError .formErrorArrow .line2 {
	width: 3px;
	border: none;
	background: #ddd;
}

.formError .formErrorArrow .line1 {
	width: 1px;
	border: none;
	background: #ddd;
}
PKe�[�	Y�
�
js/contrib/other-validations.jsnu�[���/*
 This file contains validations that are too specific to be part of the
core
 Please reference the file AFTER the translation file or the rules will be
overwritten
 Use at your own risk. We can't provide support for most of the
validations
*/
(function($){
	if($.validationEngineLanguage == undefined ||
$.validationEngineLanguage.allRules == undefined )
		alert("Please include other-validations.js AFTER the translation
file");
	else {
		$.validationEngineLanguage.allRules["postcodeUK"] = {
		        // UK zip codes
		        "regex":
/^([A-PR-UWYZa-pr-uwyz]([0-9]{1,2}|([A-HK-Ya-hk-y][0-9]|[A-HK-Ya-hk-y][0-9]([0-9]|[ABEHMNPRV-Yabehmnprv-y]))|[0-9][A-HJKS-UWa-hjks-uw])\
{0,1}[0-9][ABD-HJLNP-UW-Zabd-hjlnp-uw-z]{2}|([Gg][Ii][Rr]\
0[Aa][Aa])|([Ss][Aa][Nn]\ {0,1}[Tt][Aa]1)|([Bb][Ff][Pp][Oo]\
{0,1}([Cc]\/[Oo]\
)?[0-9]{1,4})|(([Aa][Ss][Cc][Nn]|[Bb][Bb][Nn][Dd]|[BFSbfs][Ii][Qq][Qq]|[Pp][Cc][Rr][Nn]|[Ss][Tt][Hh][Ll]|[Tt][Dd][Cc][Uu]|[Tt][Kk][Cc][Aa])\
{0,1}1[Zz][Zz]))$/,
				"alertText": "* Invalid postcode"
		};
		$.validationEngineLanguage.allRules["postcodeNL"] = {
                // NL zip codes |  Accepts 1234AA format zipcodes
                "regex": /^\d{4}[a-zA-Z]{2}?$/,
                "alertText": "* Ongeldige postcode, formaat
moet 1234AA zijn"
        };
		$.validationEngineLanguage.allRules["postcodeUS"] = {
		        // US zip codes | Accepts 12345 and 12345-1234 format zipcodes
                "regex": /^\d{5}(-\d{4})?$/,
                "alertText": "* Invalid zipcode"
		};
		$.validationEngineLanguage.allRules["postcodeDE"] = {
		        // Germany zip codes | Accepts 12345 format zipcodes
                "regex": /^\d{5}?$/,
                "alertText": "* Invalid zipcode"
		};
		$.validationEngineLanguage.allRules["postcodeAT"] = {
		        // Austrian zip codes | Accepts 1234 format zipcodes
                "regex": /^\d{4}?$/,
                "alertText": "* Invalid zipcode"
		};
		$.validationEngineLanguage.allRules["postcodePL"] = {
		        // Polish zip codes | Accepts 80-000 format zipcodes
                "regex": /^\d{2}-\d{3}$/,
                "alertText": "* Niepoprawny kod pocztowy,
poprawny format to: 12-345"
		};
		
    $.validationEngineLanguage.allRules["postcodeJP"] = {
      // JP zip codes | Accepts 123 and 123-1234 format zipcodes
      "regex": /^\d{3}(-\d{4})?$/,
      "alertText": "*
郵便番号が正しくありません"
    };
		$.validationEngineLanguage.allRules["onlyLetNumSpec"] = {
				// Good for database fields
				"regex": /^[0-9a-zA-Z_-]+$/,
				"alertText": "* Only Letters, Numbers, hyphen(-) and
underscore(_) allowed"
		};
	//	# more validations may be added after this point
	}
})(jQuery);
PKe�[cK��&&js/jquery.validationEngine.jsnu�[���/*
 * Inline Form Validation Engine 2.6.2, jQuery plugin
 *
 * Copyright(c) 2010, Cedric Dugas
 * http://www.position-absolute.com
 *
 * 2.0 Rewrite by Olivier Refalo
 * http://www.crionics.com
 *
 * Form validation engine allowing custom regex rules to be added.
 * Licensed under the MIT License
 */
HDP.jQuery(function($) {

	"use strict";

	var methods = {

		/**
		* Kind of the constructor, called before any action
		* @param {Map} user options
		*/
		init: function(options) {
			var form = this;
			if (!form.data('jqv') || form.data('jqv') == null )
{
				options = methods._saveOptions(form, options);
				// bind all formError elements to close on click
				$(document).on("click", ".formError", function() {
					$(this).fadeOut(150, function() {
						// remove prompt once invisible
						$(this).parent('.formErrorOuter').remove();
						$(this).remove();
					});
				});
			}
			return this;
		 },
		/**
		* Attachs jQuery.validationEngine to form.submit and field.blur events
		* Takes an optional params: a list of options
		* ie. jQuery("#formID1").validationEngine('attach',
{promptPosition : "centerRight"});
		*/
		attach: function(userOptions) {

			var form = this;
			var options;

			if(userOptions)
				options = methods._saveOptions(form, userOptions);
			else
				options = form.data('jqv');

			options.validateAttribute =
(form.find("[data-validation-engine*=validate]").length) ?
"data-validation-engine" : "class";
			if (options.binded) {

				// delegate fields
				form.on(options.validationEventTrigger,
"["+options.validateAttribute+"*=validate]:not([type=checkbox]):not([type=radio]):not(.datepicker)",
methods._onFieldEvent);
				form.on("click",
"["+options.validateAttribute+"*=validate][type=checkbox],["+options.validateAttribute+"*=validate][type=radio]",
methods._onFieldEvent);
				form.on(options.validationEventTrigger,"["+options.validateAttribute+"*=validate][class*=datepicker]",
{"delay": 300}, methods._onFieldEvent);
			}
			if (options.autoPositionUpdate) {
				$(window).bind("resize", {
					"noAnimation": true,
					"formElem": form
				}, methods.updatePromptsPosition);
			}
			form.on("click","a[data-validation-engine-skip],
a[class*='validate-skip'], button[data-validation-engine-skip],
button[class*='validate-skip'],
input[data-validation-engine-skip],
input[class*='validate-skip']",
methods._submitButtonClick);
			form.removeData('jqv_submitButton');

			// bind form.submit
			form.on("submit", methods._onSubmitEvent);
			return this;
		},
		/**
		* Unregisters any bindings that may point to jQuery.validaitonEngine
		*/
		detach: function() {

			var form = this;
			var options = form.data('jqv');

			// unbind fields
			form.find("["+options.validateAttribute+"*=validate]").not("[type=checkbox]").off(options.validationEventTrigger,
methods._onFieldEvent);
			form.find("["+options.validateAttribute+"*=validate][type=checkbox],[class*=validate][type=radio]").off("click",
methods._onFieldEvent);

			// unbind form.submit
			form.off("submit", methods._onSubmitEvent);
			form.removeData('jqv');
            
			form.off("click", "a[data-validation-engine-skip],
a[class*='validate-skip'], button[data-validation-engine-skip],
button[class*='validate-skip'],
input[data-validation-engine-skip],
input[class*='validate-skip']",
methods._submitButtonClick);
			form.removeData('jqv_submitButton');

			if (options.autoPositionUpdate)
				$(window).off("resize", methods.updatePromptsPosition);

			return this;
		},
		/**
		* Validates either a form or a list of fields, shows prompts
accordingly.
		* Note: There is no ajax form validation with this method, only field
ajax validation are evaluated
		*
		* @return true if the form validates, false if it fails
		*/
		validate: function() {
			var element = $(this);
			var valid = null;

			if (element.is("form") ||
element.hasClass("validationEngineContainer")) {
				if (element.hasClass('validating')) {
					// form is already validating.
					// Should abort old validation and start new one. I don't know
how to implement it.
					return false;
				} else {				
					element.addClass('validating');
					var options = element.data('jqv');
					var valid = methods._validateFields(this);

					// If the form doesn't validate, clear the 'validating'
class before the user has a chance to submit again
					setTimeout(function(){
						element.removeClass('validating');
					}, 100);
					if (valid && options.onSuccess) {
						options.onSuccess();
					} else if (!valid && options.onFailure) {
						options.onFailure();
					}
				}
			} else if (element.is('form') ||
element.hasClass('validationEngineContainer')) {
				element.removeClass('validating');
			} else {
				// field validation
				var form = element.closest('form,
.validationEngineContainer'),
					options = (form.data('jqv')) ? form.data('jqv') :
$.validationEngine.defaults,
					valid = methods._validateField(element, options);

				if (valid && options.onFieldSuccess)
					options.onFieldSuccess();
				else if (options.onFieldFailure && options.InvalidFields.length
> 0) {
					options.onFieldFailure();
				}
			}
			if(options.onValidationComplete) {
				// !! ensures that an undefined return is interpreted as return false
but allows a onValidationComplete() to possibly return true and have form
continue processing
				return !!options.onValidationComplete(form, valid);
			}
			return valid;
		},
		/**
		*  Redraw prompts position, useful when you change the DOM state when
validating
		*/
		updatePromptsPosition: function(event) {

			if (event && this == window) {
				var form = event.data.formElem;
				var noAnimation = event.data.noAnimation;
			}
			else
				var form = $(this.closest('form,
.validationEngineContainer'));

			var options = form.data('jqv');
			// No option, take default one
			form.find('['+options.validateAttribute+'*=validate]').not(":disabled").each(function(){
				var field = $(this);
				if (options.prettySelect && field.is(":hidden"))
				  field = form.find("#" + options.usePrefix +
field.attr('id') + options.useSuffix);
				var prompt = methods._getPrompt(field);
				var promptText = $(prompt).find(".formErrorContent").html();

				if(prompt)
					methods._updatePrompt(field, $(prompt), promptText, undefined, false,
options, noAnimation);
			});
			return this;
		},
		/**
		* Displays a prompt on a element.
		* Note that the element needs an id!
		*
		* @param {String} promptText html text to display type
		* @param {String} type the type of bubble: 'pass' (green),
'load' (black) anything else (red)
		* @param {String} possible values topLeft, topRight, bottomLeft,
centerRight, bottomRight
		*/
		showPrompt: function(promptText, type, promptPosition, showArrow) {
			var form = this.closest('form, .validationEngineContainer');
			var options = form.data('jqv');
			// No option, take default one
			if(!options)
				options = methods._saveOptions(this, options);
			if(promptPosition)
				options.promptPosition=promptPosition;
			options.showArrow = showArrow==true;

			methods._showPrompt(this, promptText, type, false, options);
			return this;
		},
		/**
		* Closes form error prompts, CAN be invidual
		*/
		hide: function() {
			 var form = $(this).closest('form,
.validationEngineContainer');
			 var options = form.data('jqv');
			 var fadeDuration = (options && options.fadeDuration) ?
options.fadeDuration : 0.3;
			 var closingtag;
			 
			 if($(this).is("form") ||
$(this).hasClass("validationEngineContainer")) {
				 closingtag =
"parentForm"+methods._getClassName($(this).attr("id"));
			 } else {
				 closingtag = methods._getClassName($(this).attr("id"))
+"formError";
			 }
			 $('.'+closingtag).fadeTo(fadeDuration, 0.3, function() {
				 $(this).parent('.formErrorOuter').remove();
				 $(this).remove();
			 });
			 return this;
		 },
		 /**
		 * Closes all error prompts on the page
		 */
		 hideAll: function() {

			 var form = this;
			 var options = form.data('jqv');
			 var duration = options ? options.fadeDuration:300;
			 $('.formError').fadeTo(duration, 300, function() {
				 $(this).parent('.formErrorOuter').remove();
				 $(this).remove();
			 });
			 return this;
		 },
		/**
		* Typically called when user exists a field using tab or a mouse click,
triggers a field
		* validation
		*/
		_onFieldEvent: function(event) {
			var field = $(this);
			var form = field.closest('form, .validationEngineContainer');
			var options = form.data('jqv');
			options.eventTrigger = "field";
			// validate the current field
			window.setTimeout(function() {
				methods._validateField(field, options);
				if (options.InvalidFields.length == 0 &&
options.onFieldSuccess) {
					options.onFieldSuccess();
				} else if (options.InvalidFields.length > 0 &&
options.onFieldFailure) {
					options.onFieldFailure();
				}
			}, (event.data) ? event.data.delay : 0);

		},
		/**
		* Called when the form is submited, shows prompts accordingly
		*
		* @param {jqObject}
		*            form
		* @return false if form submission needs to be cancelled
		*/
		_onSubmitEvent: function() {
			var form = $(this);
			var options = form.data('jqv');
			
			//check if it is trigger from skipped button
			if (form.data("jqv_submitButton")){
				var submitButton = $("#" +
form.data("jqv_submitButton"));
				if (submitButton){
					if (submitButton.length > 0){
						if (submitButton.hasClass("validate-skip") ||
submitButton.attr("data-validation-engine-skip") ==
"true")
							return true;
					}
				}
			}

			options.eventTrigger = "submit";

			// validate each field 
			// (- skip field ajax validation, not necessary IF we will perform an
ajax form validation)
			var r=methods._validateFields(form);

			if (r && options.ajaxFormValidation) {
				methods._validateFormWithAjax(form, options);
				// cancel form auto-submission - process with async call
onAjaxFormComplete
				return false;
			}

			if(options.onValidationComplete) {
				// !! ensures that an undefined return is interpreted as return false
but allows a onValidationComplete() to possibly return true and have form
continue processing
				return !!options.onValidationComplete(form, r);
			}
			return r;
		},
		/**
		* Return true if the ajax field validations passed so far
		* @param {Object} options
		* @return true, is all ajax validation passed so far (remember ajax is
async)
		*/
		_checkAjaxStatus: function(options) {
			var status = true;
			$.each(options.ajaxValidCache, function(key, value) {
				if (!value) {
					status = false;
					// break the each
					return false;
				}
			});
			return status;
		},
		
		/**
		* Return true if the ajax field is validated
		* @param {String} fieldid
		* @param {Object} options
		* @return true, if validation passed, false if false or doesn't
exist
		*/
		_checkAjaxFieldStatus: function(fieldid, options) {
			return options.ajaxValidCache[fieldid] == true;
		},
		/**
		* Validates form fields, shows prompts accordingly
		*
		* @param {jqObject}
		*            form
		* @param {skipAjaxFieldValidation}
		*            boolean - when set to true, ajax field validation is
skipped, typically used when the submit button is clicked
		*
		* @return true if form is valid, false if not, undefined if ajax form
validation is done
		*/
		_validateFields: function(form) {
			var options = form.data('jqv');

			// this variable is set to true if an error is found
			var errorFound = false;

			// Trigger hook, start validation
			form.trigger("jqv.form.validating");
			// first, evaluate status of non ajax fields
			var first_err=null;
			form.find('['+options.validateAttribute+'*=validate]').not(":disabled").each(
function() {
				var field = $(this);
				var names = [];
				if ($.inArray(field.attr('name'), names) < 0) {
					errorFound |= methods._validateField(field, options);
					if (errorFound && first_err==null)
						if (field.is(":hidden") && options.prettySelect)
							first_err = field = form.find("#" + options.usePrefix +
methods._jqSelector(field.attr('id')) + options.useSuffix);
						else {

							//Check if we need to adjust what element to show the prompt on
							//and and such scroll to instead
							if(field.data('jqv-prompt-at') instanceof jQuery ){
								field = field.data('jqv-prompt-at');
							} else if(field.data('jqv-prompt-at')) {
								field = $(field.data('jqv-prompt-at'));
							}
							first_err=field;
						}
					if (options.doNotShowAllErrosOnSubmit)
						return false;
					names.push(field.attr('name'));

					//if option set, stop checking validation rules after one error is
found
					if(options.showOneMessage == true && errorFound){
						return false;
					}
				}
			});

			// second, check to see if all ajax calls completed ok
			// errorFound |= !methods._checkAjaxStatus(options);

			// third, check status and scroll the container accordingly
			form.trigger("jqv.form.result", [errorFound]);

			if (errorFound) {
				if (options.scroll) {
					var destination=first_err.offset().top;
					var fixleft = first_err.offset().left;

					//prompt positioning adjustment support. Usage:
positionType:Xshift,Yshift (for ex.: bottomLeft:+20 or bottomLeft:-20,+10)
					var positionType=options.promptPosition;
					if (typeof(positionType)=='string' &&
positionType.indexOf(":")!=-1)
						positionType=positionType.substring(0,positionType.indexOf(":"));

					if (positionType!="bottomRight" &&
positionType!="bottomLeft") {
						var prompt_err= methods._getPrompt(first_err);
						if (prompt_err) {
							destination=prompt_err.offset().top;
						}
					}
					
					// Offset the amount the page scrolls by an amount in px to accomodate
fixed elements at top of page
					if (options.scrollOffset) {
						destination -= options.scrollOffset;
					}

					// get the position of the first error, there should be at least one,
no need to check this
					//var destination =
form.find(".formError:not('.greenPopup'):first").offset().top;
					if (options.isOverflown) {
						var overflowDIV = $(options.overflownDIV);
						if(!overflowDIV.length) return false;
						var scrollContainerScroll = overflowDIV.scrollTop();
						var scrollContainerPos = -parseInt(overflowDIV.offset().top);

						destination += scrollContainerScroll + scrollContainerPos - 5;
						var scrollContainer = $(options.overflownDIV +
":not(:animated)");

						scrollContainer.animate({ scrollTop: destination }, 1100,
function(){
							if(options.focusFirstField) first_err.focus();
						});

					} else {
						$("html, body").animate({
							scrollTop: destination
						}, 1100, function(){
							if(options.focusFirstField) first_err.focus();
						});
						$("html, body").animate({scrollLeft: fixleft},1100)
					}

				} else if(options.focusFirstField)
					first_err.focus();
				return false;
			}
			return true;
		},
		/**
		* This method is called to perform an ajax form validation.
		* During this process all the (field, value) pairs are sent to the server
which returns a list of invalid fields or true
		*
		* @param {jqObject} form
		* @param {Map} options
		*/
		_validateFormWithAjax: function(form, options) {

			var data = form.serialize();
									var type = (options.ajaxFormValidationMethod) ?
options.ajaxFormValidationMethod : "GET";
			var url = (options.ajaxFormValidationURL) ?
options.ajaxFormValidationURL : form.attr("action");
									var dataType = (options.dataType) ? options.dataType :
"json";
			$.ajax({
				type: type,
				url: url,
				cache: false,
				dataType: dataType,
				data: data,
				form: form,
				methods: methods,
				options: options,
				beforeSend: function() {
					return options.onBeforeAjaxFormValidation(form, options);
				},
				error: function(data, transport) {
					methods._ajaxError(data, transport);
				},
				success: function(json) {
					if ((dataType == "json") && (json !== true)) {
						// getting to this case doesn't necessary means that the form is
invalid
						// the server may return green or closing prompt actions
						// this flag helps figuring it out
						var errorInForm=false;
						for (var i = 0; i < json.length; i++) {
							var value = json[i];

							var errorFieldId = value[0];
							var errorField = $($("#" + errorFieldId)[0]);

							// make sure we found the element
							if (errorField.length == 1) {

								// promptText or selector
								var msg = value[2];
								// if the field is valid
								if (value[1] == true) {

									if (msg == ""  || !msg){
										// if for some reason, status==true and error="", just
close the prompt
										methods._closePrompt(errorField);
									} else {
										// the field is valid, but we are displaying a green prompt
										if (options.allrules[msg]) {
											var txt = options.allrules[msg].alertTextOk;
											if (txt)
												msg = txt;
										}
										if (options.showPrompts) methods._showPrompt(errorField, msg,
"pass", false, options, true);
									}
								} else {
									// the field is invalid, show the red error prompt
									errorInForm|=true;
									if (options.allrules[msg]) {
										var txt = options.allrules[msg].alertText;
										if (txt)
											msg = txt;
									}
									if(options.showPrompts) methods._showPrompt(errorField, msg,
"", false, options, true);
								}
							}
						}
						options.onAjaxFormComplete(!errorInForm, form, json, options);
					} else
						options.onAjaxFormComplete(true, form, json, options);

				}
			});

		},
		/**
		* Validates field, shows prompts accordingly
		*
		* @param {jqObject}
		*            field
		* @param {Array[String]}
		*            field's validation rules
		* @param {Map}
		*            user options
		* @return false if field is valid (It is inversed for *fields*, it return
false on validate and true on errors.)
		*/
		_validateField: function(field, options, skipAjaxValidation) {
			if (!field.attr("id")) {
				field.attr("id", "form-validation-field-" +
$.validationEngine.fieldIdCounter);
				++$.validationEngine.fieldIdCounter;
			}

           if (!options.validateNonVisibleFields &&
(field.is(":hidden") && !options.prettySelect ||
field.parent().is(":hidden")))
				return false;

			var rulesParsing = field.attr(options.validateAttribute);
			var getRules = /validate\[(.*)\]/.exec(rulesParsing);

			if (!getRules)
				return false;
			var str = getRules[1];
			var rules = str.split(/\[|,|\]/);

			// true if we ran the ajax validation, tells the logic to stop messing
with prompts
			var isAjaxValidator = false;
			var fieldName = field.attr("name");
			var promptText = "";
			var promptType = "";
			var required = false;
			var limitErrors = false;
			options.isError = false;
			options.showArrow = true;
			
			// If the programmer wants to limit the amount of error messages per
field,
			if (options.maxErrorsPerField > 0) {
				limitErrors = true;
			}

			var form = $(field.closest("form,
.validationEngineContainer"));
			// Fix for adding spaces in the rules
			for (var i = 0; i < rules.length; i++) {
				rules[i] = rules[i].replace(" ", "");
				// Remove any parsing errors
				if (rules[i] === '') {
					delete rules[i];
				}
			}

			for (var i = 0, field_errors = 0; i < rules.length; i++) {
				
				// If we are limiting errors, and have hit the max, break
				if (limitErrors && field_errors >=
options.maxErrorsPerField) {
					// If we haven't hit a required yet, check to see if there is one
in the validation rules for this
					// field and that it's index is greater or equal to our current
index
					if (!required) {
						var have_required = $.inArray('required', rules);
						required = (have_required != -1 &&  have_required >= i);
					}
					break;
				}
				
				
				var errorMsg = undefined;
				switch (rules[i]) {

					case "required":
						required = true;
						errorMsg = methods._getErrorMessage(form, field, rules[i], rules, i,
options, methods._required);
						break;
					case "custom":
						errorMsg = methods._getErrorMessage(form, field, rules[i], rules, i,
options, methods._custom);
						break;
					case "groupRequired":
						// Check is its the first of group, if not, reload validation with
first field
						// AND continue normal validation on present field
						var classGroup =
"["+options.validateAttribute+"*=" +rules[i + 1]
+"]";
						var firstOfGroup = form.find(classGroup).eq(0);
						if(firstOfGroup[0] != field[0]){

							methods._validateField(firstOfGroup, options, skipAjaxValidation); 
							options.showArrow = true;

						}
						errorMsg = methods._getErrorMessage(form, field, rules[i], rules, i,
options, methods._groupRequired);
						if(errorMsg)  required = true;
						options.showArrow = false;
						break;
					case "ajax":
						// AJAX defaults to returning it's loading message
						errorMsg = methods._ajax(field, rules, i, options);
						if (errorMsg) {
							promptType = "load";
						}
						break;
					case "minSize":
						errorMsg = methods._getErrorMessage(form, field, rules[i], rules, i,
options, methods._minSize);
						break;
					case "maxSize":
						errorMsg = methods._getErrorMessage(form, field, rules[i], rules, i,
options, methods._maxSize);
						break;
					case "min":
						errorMsg = methods._getErrorMessage(form, field, rules[i], rules, i,
options, methods._min);
						break;
					case "max":
						errorMsg = methods._getErrorMessage(form, field, rules[i], rules, i,
options, methods._max);
						break;
					case "past":
						errorMsg = methods._getErrorMessage(form, field,rules[i], rules, i,
options, methods._past);
						break;
					case "future":
						errorMsg = methods._getErrorMessage(form, field,rules[i], rules, i,
options, methods._future);
						break;
					case "dateRange":
						var classGroup =
"["+options.validateAttribute+"*=" + rules[i + 1] +
"]";
						options.firstOfGroup = form.find(classGroup).eq(0);
						options.secondOfGroup = form.find(classGroup).eq(1);

						//if one entry out of the pair has value then proceed to run through
validation
						if (options.firstOfGroup[0].value || options.secondOfGroup[0].value)
{
							errorMsg = methods._getErrorMessage(form, field,rules[i], rules, i,
options, methods._dateRange);
						}
						if (errorMsg) required = true;
						options.showArrow = false;
						break;

					case "dateTimeRange":
						var classGroup =
"["+options.validateAttribute+"*=" + rules[i + 1] +
"]";
						options.firstOfGroup = form.find(classGroup).eq(0);
						options.secondOfGroup = form.find(classGroup).eq(1);

						//if one entry out of the pair has value then proceed to run through
validation
						if (options.firstOfGroup[0].value || options.secondOfGroup[0].value)
{
							errorMsg = methods._getErrorMessage(form, field,rules[i], rules, i,
options, methods._dateTimeRange);
						}
						if (errorMsg) required = true;
						options.showArrow = false;
						break;
					case "maxCheckbox":
						field = $(form.find("input[name='" + fieldName +
"']"));
						errorMsg = methods._getErrorMessage(form, field, rules[i], rules, i,
options, methods._maxCheckbox);
						break;
					case "minCheckbox":
						field = $(form.find("input[name='" + fieldName +
"']"));
						errorMsg = methods._getErrorMessage(form, field, rules[i], rules, i,
options, methods._minCheckbox);
						break;
					case "equals":
						errorMsg = methods._getErrorMessage(form, field, rules[i], rules, i,
options, methods._equals);
						break;
					case "funcCall":
						errorMsg = methods._getErrorMessage(form, field, rules[i], rules, i,
options, methods._funcCall);
						break;
					case "creditCard":
						errorMsg = methods._getErrorMessage(form, field, rules[i], rules, i,
options, methods._creditCard);
						break;
					case "condRequired":
						errorMsg = methods._getErrorMessage(form, field, rules[i], rules, i,
options, methods._condRequired);
						if (errorMsg !== undefined) {
							required = true;
						}
						break;

					default:
				}
				
				var end_validation = false;
				
				// If we were passed back an message object, check what the status was
to determine what to do
				if (typeof errorMsg == "object") {
					switch (errorMsg.status) {
						case "_break":
							end_validation = true;
							break;
						// If we have an error message, set errorMsg to the error message
						case "_error":
							errorMsg = errorMsg.message;
							break;
						// If we want to throw an error, but not show a prompt, return early
with true
						case "_error_no_prompt":
							return true;
							break;
						// Anything else we continue on
						default:
							break;
					}
				}
				
				// If it has been specified that validation should end now, break
				if (end_validation) {
					break;
				}
				
				// If we have a string, that means that we have an error, so add it to
the error message.
				if (typeof errorMsg == 'string') {
					promptText += errorMsg + "<br/>";
					options.isError = true;
					field_errors++;
				}	
			}
			// If the rules required is not added, an empty field is not validated
			if(!required && !(field.val()) && field.val().length
< 1) options.isError = false;

			// Hack for radio/checkbox group button, the validation go into the
			// first radio/checkbox of the group
			var fieldType = field.prop("type");
			var positionType=field.data("promptPosition") ||
options.promptPosition;

			if ((fieldType == "radio" || fieldType ==
"checkbox") && form.find("input[name='" +
fieldName + "']").size() > 1) {
				if(positionType === 'inline') {
					field = $(form.find("input[name='" + fieldName +
"'][type!=hidden]:last"));
				} else {
				field = $(form.find("input[name='" + fieldName +
"'][type!=hidden]:first"));
				}
				options.showArrow = false;
			}

			if(field.is(":hidden") && options.prettySelect) {
				field = form.find("#" + options.usePrefix +
methods._jqSelector(field.attr('id')) + options.useSuffix);
			}

			if (options.isError && options.showPrompts){
				methods._showPrompt(field, promptText, promptType, false, options);
			}else{
				if (!isAjaxValidator) methods._closePrompt(field);
			}

			if (!isAjaxValidator) {
				field.trigger("jqv.field.result", [field, options.isError,
promptText]);
			}

			/* Record error */
			var errindex = $.inArray(field[0], options.InvalidFields);
			if (errindex == -1) {
				if (options.isError)
				options.InvalidFields.push(field[0]);
			} else if (!options.isError) {
				options.InvalidFields.splice(errindex, 1);
			}
				
			methods._handleStatusCssClasses(field, options);
	
			/* run callback function for each field */
			if (options.isError && options.onFieldFailure)
				options.onFieldFailure(field);

			if (!options.isError && options.onFieldSuccess)
				options.onFieldSuccess(field);

			return options.isError;
		},
		/**
		* Handling css classes of fields indicating result of validation 
		*
		* @param {jqObject}
		*            field
		* @param {Array[String]}
		*            field's validation rules            
		* @private
		*/
		_handleStatusCssClasses: function(field, options) {
			/* remove all classes */
			if(options.addSuccessCssClassToField)
				field.removeClass(options.addSuccessCssClassToField);
			
			if(options.addFailureCssClassToField)
				field.removeClass(options.addFailureCssClassToField);
			
			/* Add classes */
			if (options.addSuccessCssClassToField && !options.isError)
				field.addClass(options.addSuccessCssClassToField);
			
			if (options.addFailureCssClassToField && options.isError)
				field.addClass(options.addFailureCssClassToField);		
		},
		
		 /********************
		  * _getErrorMessage
		  *
		  * @param form
		  * @param field
		  * @param rule
		  * @param rules
		  * @param i
		  * @param options
		  * @param originalValidationMethod
		  * @return {*}
		  * @private
		  */
		 _getErrorMessage:function (form, field, rule, rules, i, options,
originalValidationMethod) {
			 // If we are using the custon validation type, build the index for the
rule.
			 // Otherwise if we are doing a function call, make the call and return
the object
			 // that is passed back.
	 		 var rule_index = jQuery.inArray(rule, rules);
			 if (rule === "custom" || rule === "funcCall") {
				 var custom_validation_type = rules[rule_index + 1];
				 rule = rule + "[" + custom_validation_type + "]";
				 // Delete the rule from the rules array so that it doesn't try to
call the
			    // same rule over again
			    delete(rules[rule_index]);
			 }
			 // Change the rule to the composite rule, if it was different from the
original
			 var alteredRule = rule;


			 var element_classes = (field.attr("data-validation-engine"))
? field.attr("data-validation-engine") :
field.attr("class");
			 var element_classes_array = element_classes.split(" ");

			 // Call the original validation method. If we are dealing with dates or
checkboxes, also pass the form
			 var errorMsg;
			 if (rule == "future" || rule == "past"  || rule ==
"maxCheckbox" || rule == "minCheckbox") {
				 errorMsg = originalValidationMethod(form, field, rules, i, options);
			 } else {
				 errorMsg = originalValidationMethod(field, rules, i, options);
			 }

			 // If the original validation method returned an error and we have a
custom error message,
			 // return the custom message instead. Otherwise return the original
error message.
			 if (errorMsg != undefined) {
				 var custom_message = methods._getCustomErrorMessage($(field),
element_classes_array, alteredRule, options);
				 if (custom_message) errorMsg = custom_message;
			 }
			 return errorMsg;

		 },
		 _getCustomErrorMessage:function (field, classes, rule, options) {
			var custom_message = false;
			var validityProp = /^custom\[.*\]$/.test(rule) ?
methods._validityProp["custom"] : methods._validityProp[rule];
			 // If there is a validityProp for this rule, check to see if the field
has an attribute for it
			if (validityProp != undefined) {
				custom_message =
field.attr("data-errormessage-"+validityProp);
				// If there was an error message for it, return the message
				if (custom_message != undefined) 
					return custom_message;
			}
			custom_message = field.attr("data-errormessage");
			 // If there is an inline custom error message, return it
			if (custom_message != undefined) 
				return custom_message;
			var id = '#' + field.attr("id");
			// If we have custom messages for the element's id, get the message
for the rule from the id.
			// Otherwise, if we have custom messages for the element's classes,
use the first class message we find instead.
			if (typeof options.custom_error_messages[id] != "undefined"
&&
				typeof options.custom_error_messages[id][rule] != "undefined"
) {
						  custom_message =
options.custom_error_messages[id][rule]['message'];
			} else if (classes.length > 0) {
				for (var i = 0; i < classes.length && classes.length > 0;
i++) {
					 var element_class = "." + classes[i];
					if (typeof options.custom_error_messages[element_class] !=
"undefined" &&
						typeof options.custom_error_messages[element_class][rule] !=
"undefined") {
							custom_message =
options.custom_error_messages[element_class][rule]['message'];
							break;
					}
				}
			}
			if (!custom_message &&
				typeof options.custom_error_messages[rule] != "undefined"
&&
				typeof options.custom_error_messages[rule]['message'] !=
"undefined"){
					 custom_message =
options.custom_error_messages[rule]['message'];
			 }
			 return custom_message;
		 },
		 _validityProp: {
			 "required": "value-missing",
			 "custom": "custom-error",
			 "groupRequired": "value-missing",
			 "ajax": "custom-error",
			 "minSize": "range-underflow",
			 "maxSize": "range-overflow",
			 "min": "range-underflow",
			 "max": "range-overflow",
			 "past": "type-mismatch",
			 "future": "type-mismatch",
			 "dateRange": "type-mismatch",
			 "dateTimeRange": "type-mismatch",
			 "maxCheckbox": "range-overflow",
			 "minCheckbox": "range-underflow",
			 "equals": "pattern-mismatch",
			 "funcCall": "custom-error",
			 "creditCard": "pattern-mismatch",
			 "condRequired": "value-missing"
		 },
		/**
		* Required validation
		*
		* @param {jqObject} field
		* @param {Array[String]} rules
		* @param {int} i rules index
		* @param {Map}
		*            user options
		* @param {bool} condRequired flag when method is used for internal
purpose in condRequired check
		* @return an error string if validation failed
		*/
		_required: function(field, rules, i, options, condRequired) {
			switch (field.prop("type")) {
				case "text":
				case "password":
				case "textarea":
				case "file":
				case "select-one":
				case "select-multiple":
				default:
					var field_val      = $.trim( field.val()                              
);
					var dv_placeholder = $.trim(
field.attr("data-validation-placeholder") );
					var placeholder    = $.trim( field.attr("placeholder")      
          );
					if (
						   ( !field_val                                    )
						|| ( dv_placeholder && field_val == dv_placeholder )
						|| ( placeholder    && field_val == placeholder    )
					) {
						return options.allrules[rules[i]].alertText;
					}
					break;
				case "radio":
				case "checkbox":
					// new validation style to only check dependent field
					if (condRequired) {
						if (!field.attr('checked')) {
							return options.allrules[rules[i]].alertTextCheckboxMultiple;
						}
						break;
					}
					// old validation style
					var form = field.closest("form,
.validationEngineContainer");
					var name = field.attr("name");
					if (form.find("input[name='" + name +
"']:checked").size() == 0) {
						if (form.find("input[name='" + name +
"']:visible").size() == 1)
							return options.allrules[rules[i]].alertTextCheckboxe;
						else
							return options.allrules[rules[i]].alertTextCheckboxMultiple;
					}
					break;
			}
		},
		/**
		* Validate that 1 from the group field is required
		*
		* @param {jqObject} field
		* @param {Array[String]} rules
		* @param {int} i rules index
		* @param {Map}
		*            user options
		* @return an error string if validation failed
		*/
		_groupRequired: function(field, rules, i, options) {
			var classGroup = "["+options.validateAttribute+"*="
+rules[i + 1] +"]";
			var isValid = false;
			// Check all fields from the group
			field.closest("form,
.validationEngineContainer").find(classGroup).each(function(){
				if(!methods._required($(this), rules, i, options)){
					isValid = true;
					return false;
				}
			}); 

			if(!isValid) {
		  return options.allrules[rules[i]].alertText;
		}
		},
		/**
		* Validate rules
		*
		* @param {jqObject} field
		* @param {Array[String]} rules
		* @param {int} i rules index
		* @param {Map}
		*            user options
		* @return an error string if validation failed
		*/
		_custom: function(field, rules, i, options) {
			var customRule = rules[i + 1];
			var rule = options.allrules[customRule];
			var fn;
			if(!rule) {
				alert("jqv:custom rule not found - "+customRule);
				return;
			}
			
			if(rule["regex"]) {
				 var ex=rule.regex;
					if(!ex) {
						alert("jqv:custom regex not found - "+customRule);
						return;
					}
					var pattern = new RegExp(ex);

					if (!pattern.test(field.val())) return
options.allrules[customRule].alertText;
					
			} else if(rule["func"]) {
				fn = rule["func"]; 
				 
				if (typeof(fn) !== "function") {
					alert("jqv:custom parameter 'function' is no function -
"+customRule);
						return;
				}
				 
				if (!fn(field, rules, i, options))
					return options.allrules[customRule].alertText;
			} else {
				alert("jqv:custom type not allowed "+customRule);
					return;
			}
		},
		/**
		* Validate custom function outside of the engine scope
		*
		* @param {jqObject} field
		* @param {Array[String]} rules
		* @param {int} i rules index
		* @param {Map}
		*            user options
		* @return an error string if validation failed
		*/
		_funcCall: function(field, rules, i, options) {
			var functionName = rules[i + 1];
			var fn;
			if(functionName.indexOf('.') >-1)
			{
				var namespaces = functionName.split('.');
				var scope = window;
				while(namespaces.length)
				{
					scope = scope[namespaces.shift()];
				}
				fn = scope;
			}
			else
				fn = window[functionName] || options.customFunctions[functionName];
			if (typeof(fn) == 'function')
				return fn(field, rules, i, options);

		},
		/**
		* Field match
		*
		* @param {jqObject} field
		* @param {Array[String]} rules
		* @param {int} i rules index
		* @param {Map}
		*            user options
		* @return an error string if validation failed
		*/
		_equals: function(field, rules, i, options) {
			var equalsField = rules[i + 1];

			if (field.val() != $("#" + equalsField).val())
				return options.allrules.equals.alertText;
		},
		/**
		* Check the maximum size (in characters)
		*
		* @param {jqObject} field
		* @param {Array[String]} rules
		* @param {int} i rules index
		* @param {Map}
		*            user options
		* @return an error string if validation failed
		*/
		_maxSize: function(field, rules, i, options) {
			var max = rules[i + 1];
			var len = field.val().length;

			if (len > max) {
				var rule = options.allrules.maxSize;
				return rule.alertText + max + rule.alertText2;
			}
		},
		/**
		* Check the minimum size (in characters)
		*
		* @param {jqObject} field
		* @param {Array[String]} rules
		* @param {int} i rules index
		* @param {Map}
		*            user options
		* @return an error string if validation failed
		*/
		_minSize: function(field, rules, i, options) {
			var min = rules[i + 1];
			var len = field.val().length;

			if (len < min) {
				var rule = options.allrules.minSize;
				return rule.alertText + min + rule.alertText2;
			}
		},
		/**
		* Check number minimum value
		*
		* @param {jqObject} field
		* @param {Array[String]} rules
		* @param {int} i rules index
		* @param {Map}
		*            user options
		* @return an error string if validation failed
		*/
		_min: function(field, rules, i, options) {
			var min = parseFloat(rules[i + 1]);
			var len = parseFloat(field.val());

			if (len < min) {
				var rule = options.allrules.min;
				if (rule.alertText2) return rule.alertText + min + rule.alertText2;
				return rule.alertText + min;
			}
		},
		/**
		* Check number maximum value
		*
		* @param {jqObject} field
		* @param {Array[String]} rules
		* @param {int} i rules index
		* @param {Map}
		*            user options
		* @return an error string if validation failed
		*/
		_max: function(field, rules, i, options) {
			var max = parseFloat(rules[i + 1]);
			var len = parseFloat(field.val());

			if (len >max ) {
				var rule = options.allrules.max;
				if (rule.alertText2) return rule.alertText + max + rule.alertText2;
				//orefalo: to review, also do the translations
				return rule.alertText + max;
			}
		},
		/**
		* Checks date is in the past
		*
		* @param {jqObject} field
		* @param {Array[String]} rules
		* @param {int} i rules index
		* @param {Map}
		*            user options
		* @return an error string if validation failed
		*/
		_past: function(form, field, rules, i, options) {

			var p=rules[i + 1];
			var fieldAlt = $(form.find("input[name='" +
p.replace(/^#+/, '') + "']"));
			var pdate;

			if (p.toLowerCase() == "now") {
				pdate = new Date();
			} else if (undefined != fieldAlt.val()) {
				if (fieldAlt.is(":disabled"))
					return;
				pdate = methods._parseDate(fieldAlt.val());
			} else {
				pdate = methods._parseDate(p);
			}
			var vdate = methods._parseDate(field.val());

			if (vdate > pdate ) {
				var rule = options.allrules.past;
				if (rule.alertText2) return rule.alertText +
methods._dateToString(pdate) + rule.alertText2;
				return rule.alertText + methods._dateToString(pdate);
			}
		},
		/**
		* Checks date is in the future
		*
		* @param {jqObject} field
		* @param {Array[String]} rules
		* @param {int} i rules index
		* @param {Map}
		*            user options
		* @return an error string if validation failed
		*/
		_future: function(form, field, rules, i, options) {

			var p=rules[i + 1];
			var fieldAlt = $(form.find("input[name='" +
p.replace(/^#+/, '') + "']"));
			var pdate;

			if (p.toLowerCase() == "now") {
				pdate = new Date();
			} else if (undefined != fieldAlt.val()) {
				if (fieldAlt.is(":disabled"))
					return;
				pdate = methods._parseDate(fieldAlt.val());
			} else {
				pdate = methods._parseDate(p);
			}
			var vdate = methods._parseDate(field.val());

			if (vdate < pdate ) {
				var rule = options.allrules.future;
				if (rule.alertText2)
					return rule.alertText + methods._dateToString(pdate) +
rule.alertText2;
				return rule.alertText + methods._dateToString(pdate);
			}
		},
		/**
		* Checks if valid date
		*
		* @param {string} date string
		* @return a bool based on determination of valid date
		*/
		_isDate: function (value) {
			var dateRegEx = new
RegExp(/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$|^(?:(?:(?:0?[13578]|1[02])(\/|-)31)|(?:(?:0?[1,3-9]|1[0-2])(\/|-)(?:29|30)))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(?:(?:0?[1-9]|1[0-2])(\/|-)(?:0?[1-9]|1\d|2[0-8]))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(0?2(\/|-)29)(\/|-)(?:(?:0[48]00|[13579][26]00|[2468][048]00)|(?:\d\d)?(?:0[48]|[2468][048]|[13579][26]))$/);
			return dateRegEx.test(value);
		},
		/**
		* Checks if valid date time
		*
		* @param {string} date string
		* @return a bool based on determination of valid date time
		*/
		_isDateTime: function (value){
			var dateTimeRegEx = new
RegExp(/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])\s+(1[012]|0?[1-9]){1}:(0?[1-5]|[0-6][0-9]){1}:(0?[0-6]|[0-6][0-9]){1}\s+(am|pm|AM|PM){1}$|^(?:(?:(?:0?[13578]|1[02])(\/|-)31)|(?:(?:0?[1,3-9]|1[0-2])(\/|-)(?:29|30)))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^((1[012]|0?[1-9]){1}\/(0?[1-9]|[12][0-9]|3[01]){1}\/\d{2,4}\s+(1[012]|0?[1-9]){1}:(0?[1-5]|[0-6][0-9]){1}:(0?[0-6]|[0-6][0-9]){1}\s+(am|pm|AM|PM){1})$/);
			return dateTimeRegEx.test(value);
		},
		//Checks if the start date is before the end date
		//returns true if end is later than start
		_dateCompare: function (start, end) {
			return (new Date(start.toString()) < new Date(end.toString()));
		},
		/**
		* Checks date range
		*
		* @param {jqObject} first field name
		* @param {jqObject} second field name
		* @return an error string if validation failed
		*/
		_dateRange: function (field, rules, i, options) {
			//are not both populated
			if ((!options.firstOfGroup[0].value &&
options.secondOfGroup[0].value) || (options.firstOfGroup[0].value
&& !options.secondOfGroup[0].value)) {
				return options.allrules[rules[i]].alertText +
options.allrules[rules[i]].alertText2;
			}

			//are not both dates
			if (!methods._isDate(options.firstOfGroup[0].value) ||
!methods._isDate(options.secondOfGroup[0].value)) {
				return options.allrules[rules[i]].alertText +
options.allrules[rules[i]].alertText2;
			}

			//are both dates but range is off
			if (!methods._dateCompare(options.firstOfGroup[0].value,
options.secondOfGroup[0].value)) {
				return options.allrules[rules[i]].alertText +
options.allrules[rules[i]].alertText2;
			}
		},
		/**
		* Checks date time range
		*
		* @param {jqObject} first field name
		* @param {jqObject} second field name
		* @return an error string if validation failed
		*/
		_dateTimeRange: function (field, rules, i, options) {
			//are not both populated
			if ((!options.firstOfGroup[0].value &&
options.secondOfGroup[0].value) || (options.firstOfGroup[0].value
&& !options.secondOfGroup[0].value)) {
				return options.allrules[rules[i]].alertText +
options.allrules[rules[i]].alertText2;
			}
			//are not both dates
			if (!methods._isDateTime(options.firstOfGroup[0].value) ||
!methods._isDateTime(options.secondOfGroup[0].value)) {
				return options.allrules[rules[i]].alertText +
options.allrules[rules[i]].alertText2;
			}
			//are both dates but range is off
			if (!methods._dateCompare(options.firstOfGroup[0].value,
options.secondOfGroup[0].value)) {
				return options.allrules[rules[i]].alertText +
options.allrules[rules[i]].alertText2;
			}
		},
		/**
		* Max number of checkbox selected
		*
		* @param {jqObject} field
		* @param {Array[String]} rules
		* @param {int} i rules index
		* @param {Map}
		*            user options
		* @return an error string if validation failed
		*/
		_maxCheckbox: function(form, field, rules, i, options) {

			var nbCheck = rules[i + 1];
			var groupname = field.attr("name");
			var groupSize = form.find("input[name='" + groupname +
"']:checked").size();
			if (groupSize > nbCheck) {
				options.showArrow = false;
				if (options.allrules.maxCheckbox.alertText2)
					 return options.allrules.maxCheckbox.alertText + " " +
nbCheck + " " + options.allrules.maxCheckbox.alertText2;
				return options.allrules.maxCheckbox.alertText;
			}
		},
		/**
		* Min number of checkbox selected
		*
		* @param {jqObject} field
		* @param {Array[String]} rules
		* @param {int} i rules index
		* @param {Map}
		*            user options
		* @return an error string if validation failed
		*/
		_minCheckbox: function(form, field, rules, i, options) {

			var nbCheck = rules[i + 1];
			var groupname = field.attr("name");
			var groupSize = form.find("input[name='" + groupname +
"']:checked").size();
			if (groupSize < nbCheck) {
				options.showArrow = false;
				return options.allrules.minCheckbox.alertText + " " + nbCheck
+ " " + options.allrules.minCheckbox.alertText2;
			}
		},
		/**
		* Checks that it is a valid credit card number according to the
		* Luhn checksum algorithm.
		*
		* @param {jqObject} field
		* @param {Array[String]} rules
		* @param {int} i rules index
		* @param {Map}
		*            user options
		* @return an error string if validation failed
		*/
		_creditCard: function(field, rules, i, options) {
			//spaces and dashes may be valid characters, but must be stripped to
calculate the checksum.
			var valid = false, cardNumber = field.val().replace(/ +/g,
'').replace(/-+/g, '');

			var numDigits = cardNumber.length;
			if (numDigits >= 14 && numDigits <= 16 &&
parseInt(cardNumber) > 0) {

				var sum = 0, i = numDigits - 1, pos = 1, digit, luhn = new String();
				do {
					digit = parseInt(cardNumber.charAt(i));
					luhn += (pos++ % 2 == 0) ? digit * 2 : digit;
				} while (--i >= 0)

				for (i = 0; i < luhn.length; i++) {
					sum += parseInt(luhn.charAt(i));
				}
				valid = sum % 10 == 0;
			}
			if (!valid) return options.allrules.creditCard.alertText;
		},
		/**
		* Ajax field validation
		*
		* @param {jqObject} field
		* @param {Array[String]} rules
		* @param {int} i rules index
		* @param {Map}
		*            user options
		* @return nothing! the ajax validator handles the prompts itself
		*/
		 _ajax: function(field, rules, i, options) {

			 var errorSelector = rules[i + 1];
			 var rule = options.allrules[errorSelector];
			 var extraData = rule.extraData;
			 var extraDataDynamic = rule.extraDataDynamic;
			 var data = {
				"fieldId" : field.attr("id"),
				"fieldValue" : field.val()
			 };

			 if (typeof extraData === "object") {
				$.extend(data, extraData);
			 } else if (typeof extraData === "string") {
				var tempData = extraData.split("&");
				for(var i = 0; i < tempData.length; i++) {
					var values = tempData[i].split("=");
					if (values[0] && values[0]) {
						data[values[0]] = values[1];
					}
				}
			 }

			 if (extraDataDynamic) {
				 var tmpData = [];
				 var domIds = String(extraDataDynamic).split(",");
				 for (var i = 0; i < domIds.length; i++) {
					 var id = domIds[i];
					 if ($(id).length) {
						 var inputValue = field.closest("form,
.validationEngineContainer").find(id).val();
						 var keyValue = id.replace('#', '') +
'=' + escape(inputValue);
						 data[id.replace('#', '')] = inputValue;
					 }
				 }
			 }
			 
			 // If a field change event triggered this we want to clear the cache
for this ID
			 if (options.eventTrigger == "field") {
				delete(options.ajaxValidCache[field.attr("id")]);
			 }
			 if (options.eventTrigger == 'submit')
			 {												
					options.isError =
!options.ajaxValidCache[field.attr("id")];												 	
			 }
			 // If there is an error or if the the field is already validated, do
not re-execute AJAX
			 if (!options.isError &&
!methods._checkAjaxFieldStatus(field.attr("id"), options)) {
				 $.ajax({
					 type: options.ajaxFormValidationMethod,
					 url: rule.url,
					 cache: false,
					 dataType: "json",
					 data: data,
					 field: field,
					 rule: rule,
					 methods: methods,
					 options: options,
					 beforeSend: function() {},
					 error: function(data, transport) {
						 methods._ajaxError(data, transport);
					 },
					 success: function(json) {

						 // asynchronously called on success, data is the json answer from
the server
						 var errorFieldId = json[0];
						 //var errorField = $($("#" + errorFieldId)[0]);
						 var errorField = $("#"+ errorFieldId).eq(0);

						 // make sure we found the element
						 if (errorField.length == 1) {
							 var status = json[1];
							 // read the optional msg from the server
							 var msg = json[2];
							 if (!status) {
								 // Houston we got a problem - display an red prompt
								 options.ajaxValidCache[errorFieldId] = false;
								 options.isError = true;

								 // resolve the msg prompt
								 if(msg) {
									 if (options.allrules[msg]) {
										 var txt = options.allrules[msg].alertText;
										 if (txt) {
											msg = txt;
							}
									 }
								 }
								 else
									msg = rule.alertText;

								 if (options.showPrompts) methods._showPrompt(errorField, msg,
"", true, options);
							 } else {
								 options.ajaxValidCache[errorFieldId] = true;

								 // resolves the msg prompt
								 if(msg) {
									 if (options.allrules[msg]) {
										 var txt = options.allrules[msg].alertTextOk;
										 if (txt) {
											msg = txt;
							}
									 }
								 }
								 else
								 msg = rule.alertTextOk;

								 if (options.showPrompts) {
									 // see if we should display a green prompt
									 if (msg)
										methods._showPrompt(errorField, msg, "pass", true,
options);
									 else
										methods._closePrompt(errorField);
								}
								
								 // If a submit form triggered this, we want to re-submit the form
								 ///NO NO, I never want to re submit the form, so I will comment
this line
								 /*if (options.eventTrigger == "submit")
									field.closest("form").submit();*/
							 }
						 }
						 errorField.trigger("jqv.field.result", [errorField,
options.isError, msg]);
					 }
				 });
				 
				 return rule.alertTextLoad;
			 }
		 },
		/**
		* Common method to handle ajax errors
		*
		* @param {Object} data
		* @param {Object} transport
		*/
		_ajaxError: function(data, transport) {
			if(data.status == 0 && transport == null)
				alert("The page is not served from a server! ajax call
failed");
			else if(typeof console != "undefined")
				console.log("Ajax error: " + data.status + " " +
transport);
		},
		/**
		* date -> string
		*
		* @param {Object} date
		*/
		_dateToString: function(date) {
			return
date.getFullYear()+"-"+(date.getMonth()+1)+"-"+date.getDate();
		},
		/**
		* Parses an ISO date
		* @param {String} d
		*/
		_parseDate: function(d) {

			var dateParts = d.split("-");
			if(dateParts==d)
				dateParts = d.split("/");
			if(dateParts==d) {
				dateParts = d.split(".");
				return new Date(dateParts[2], (dateParts[1] - 1), dateParts[0]);
			}
			return new Date(dateParts[0], (dateParts[1] - 1) ,dateParts[2]);
		},
		/**
		* Builds or updates a prompt with the given information
		*
		* @param {jqObject} field
		* @param {String} promptText html text to display type
		* @param {String} type the type of bubble: 'pass' (green),
'load' (black) anything else (red)
		* @param {boolean} ajaxed - use to mark fields than being validated with
ajax
		* @param {Map} options user options
		*/
		 _showPrompt: function(field, promptText, type, ajaxed, options,
ajaxform) {
		 	//Check if we need to adjust what element to show the prompt on
			if(field.data('jqv-prompt-at') instanceof jQuery ){
				field = field.data('jqv-prompt-at');
			} else if(field.data('jqv-prompt-at')) {
				field = $(field.data('jqv-prompt-at'));
			}

			 var prompt = methods._getPrompt(field);
			 // The ajax submit errors are not see has an error in the form,
			 // When the form errors are returned, the engine see 2 bubbles, but
those are ebing closed by the engine at the same time
			 // Because no error was found befor submitting
			 if(ajaxform) prompt = false;
			 // Check that there is indded text
			 if($.trim(promptText)){ 
				 if (prompt)
					methods._updatePrompt(field, prompt, promptText, type, ajaxed,
options);
				 else
					methods._buildPrompt(field, promptText, type, ajaxed, options);
			}
		 },
		/**
		* Builds and shades a prompt for the given field.
		*
		* @param {jqObject} field
		* @param {String} promptText html text to display type
		* @param {String} type the type of bubble: 'pass' (green),
'load' (black) anything else (red)
		* @param {boolean} ajaxed - use to mark fields than being validated with
ajax
		* @param {Map} options user options
		*/
		_buildPrompt: function(field, promptText, type, ajaxed, options) {

			// create the prompt
			var prompt = $('<div>');
			prompt.addClass(methods._getClassName(field.attr("id")) +
"formError");
			// add a class name to identify the parent form of the prompt
			prompt.addClass("parentForm"+methods._getClassName(field.closest('form,
.validationEngineContainer').attr("id")));
			prompt.addClass("formError");

			switch (type) {
				case "pass":
					prompt.addClass("greenPopup");
					break;
				case "load":
					prompt.addClass("blackPopup");
					break;
				default:
					/* it has error  */
					//alert("unknown popup type:"+type);
			}
			if (ajaxed)
				prompt.addClass("ajaxed");

			// create the prompt content
			var promptContent =
$('<div>').addClass("formErrorContent").html(promptText).appendTo(prompt);

			// determine position type
			var positionType=field.data("promptPosition") ||
options.promptPosition;

			// create the css arrow pointing at the field
			// note that there is no triangle on max-checkbox and radio
			if (options.showArrow) {
				var arrow =
$('<div>').addClass("formErrorArrow");

				//prompt positioning adjustment support. Usage:
positionType:Xshift,Yshift (for ex.: bottomLeft:+20 or bottomLeft:-20,+10)
				if (typeof(positionType)=='string') 
				{
					var pos=positionType.indexOf(":");
					if(pos!=-1)
						positionType=positionType.substring(0,pos);
				}

				switch (positionType) {
					case "bottomLeft":
					case "bottomRight":
						prompt.find(".formErrorContent").before(arrow);
						arrow.addClass("formErrorArrowBottom").html('<div
class="line1"><!-- --></div><div
class="line2"><!-- --></div><div
class="line3"><!-- --></div><div
class="line4"><!-- --></div><div
class="line5"><!-- --></div><div
class="line6"><!-- --></div><div
class="line7"><!-- --></div><div
class="line8"><!-- --></div><div
class="line9"><!-- --></div><div
class="line10"><!-- --></div>');
						break;
					case "topLeft":
					case "topRight":
						arrow.html('<div class="line10"><!--
--></div><div class="line9"><!--
--></div><div class="line8"><!--
--></div><div class="line7"><!--
--></div><div class="line6"><!--
--></div><div class="line5"><!--
--></div><div class="line4"><!--
--></div><div class="line3"><!--
--></div><div class="line2"><!--
--></div><div class="line1"><!--
--></div>');
						prompt.append(arrow);
						break;
				}
			}
			// Add custom prompt class
			if (options.addPromptClass)
				prompt.addClass(options.addPromptClass);

            // Add custom prompt class defined in element
            var requiredOverride =
field.attr('data-required-class');
            if(requiredOverride !== undefined) {
                prompt.addClass(requiredOverride);
            } else {
                if(options.prettySelect) {
                    if($('#' +
field.attr('id')).next().is('select')) {
                        var prettyOverrideClass = $('#' +
field.attr('id').substr(options.usePrefix.length).substring(options.useSuffix.length)).attr('data-required-class');
                        if(prettyOverrideClass !== undefined) {
                            prompt.addClass(prettyOverrideClass);
                        }
                    }
                }
            }

			prompt.css({
				"opacity": 0
			});
			if(positionType === 'inline') {
				prompt.addClass("inline");
				if(typeof field.attr('data-prompt-target') !==
'undefined' &&
$('#'+field.attr('data-prompt-target')).length > 0)
{
					prompt.appendTo($('#'+field.attr('data-prompt-target')));
				} else {
					field.after(prompt);
				}
			} else {
				field.before(prompt);				
			}
			
			var pos = methods._calculatePosition(field, prompt, options);
			prompt.css({
				'position': positionType === 'inline' ?
'relative' : 'absolute',
				"top": pos.callerTopPosition,
				"left": pos.callerleftPosition,
				"marginTop": pos.marginTopSize,
				"opacity": 0
			}).data("callerField", field);
			

			if (options.autoHidePrompt) {
				setTimeout(function(){
					prompt.animate({
						"opacity": 0
					},function(){
						prompt.closest('.formErrorOuter').remove();
						prompt.remove();
					});
				}, options.autoHideDelay);
			} 
			return prompt.animate({
				"opacity": 0.87
			});
		},
		/**
		* Updates the prompt text field - the field for which the prompt
		* @param {jqObject} field
		* @param {String} promptText html text to display type
		* @param {String} type the type of bubble: 'pass' (green),
'load' (black) anything else (red)
		* @param {boolean} ajaxed - use to mark fields than being validated with
ajax
		* @param {Map} options user options
		*/
		_updatePrompt: function(field, prompt, promptText, type, ajaxed, options,
noAnimation) {

			if (prompt) {
				if (typeof type !== "undefined") {
					if (type == "pass")
						prompt.addClass("greenPopup");
					else
						prompt.removeClass("greenPopup");

					if (type == "load")
						prompt.addClass("blackPopup");
					else
						prompt.removeClass("blackPopup");
				}
				if (ajaxed)
					prompt.addClass("ajaxed");
				else
					prompt.removeClass("ajaxed");

				prompt.find(".formErrorContent").html(promptText);

				var pos = methods._calculatePosition(field, prompt, options);
				var css = {"top": pos.callerTopPosition,
				"left": pos.callerleftPosition,
				"marginTop": pos.marginTopSize};

				if (noAnimation)
					prompt.css(css);
				else
					prompt.animate(css);
			}
		},
		/**
		* Closes the prompt associated with the given field
		*
		* @param {jqObject}
		*            field
		*/
		 _closePrompt: function(field) {
			 var prompt = methods._getPrompt(field);
			 if (prompt)
				 prompt.fadeTo("fast", 0, function() {
					 prompt.parent('.formErrorOuter').remove();
					 prompt.remove();
				 });
		 },
		 closePrompt: function(field) {
			 return methods._closePrompt(field);
		 },
		/**
		* Returns the error prompt matching the field if any
		*
		* @param {jqObject}
		*            field
		* @return undefined or the error prompt (jqObject)
		*/
		_getPrompt: function(field) {
				var formId = $(field).closest('form,
.validationEngineContainer').attr('id');
			var className = methods._getClassName(field.attr("id")) +
"formError";
				var match = $("." + methods._escapeExpression(className) +
'.parentForm' + methods._getClassName(formId))[0];
			if (match)
			return $(match);
		},
		/**
		  * Returns the escapade classname
		  *
		  * @param {selector}
		  *            className
		  */
		  _escapeExpression: function (selector) {
			  return
selector.replace(/([#;&,\.\+\*\~':"\!\^$\[\]\(\)=>\|])/g,
"\\$1");
		  },
		/**
		 * returns true if we are in a RTLed document
		 *
		 * @param {jqObject} field
		 */
		isRTL: function(field)
		{
			var $document = $(document);
			var $body = $('body');
			var rtl =
				(field && field.hasClass('rtl')) ||
				(field && (field.attr('dir') ||
'').toLowerCase()==='rtl') ||
				$document.hasClass('rtl') ||
				($document.attr('dir') ||
'').toLowerCase()==='rtl' ||
				$body.hasClass('rtl') ||
				($body.attr('dir') ||
'').toLowerCase()==='rtl';
			return Boolean(rtl);
		},
		/**
		* Calculates prompt position
		*
		* @param {jqObject}
		*            field
		* @param {jqObject}
		*            the prompt
		* @param {Map}
		*            options
		* @return positions
		*/
		_calculatePosition: function (field, promptElmt, options) {

			var promptTopPosition, promptleftPosition, marginTopSize;
			var fieldWidth 	= field.width();
			var fieldLeft 	= field.position().left; 
			var fieldTop 	=  field.position().top;
			var fieldHeight 	=  field.height();	
			var promptHeight = promptElmt.height();


			// is the form contained in an overflown container?
			promptTopPosition = promptleftPosition = 0;
			// compensation for the arrow
			marginTopSize = -promptHeight;
		

			//prompt positioning adjustment support
			//now you can adjust prompt position
			//usage: positionType:Xshift,Yshift
			//for example:
			//   bottomLeft:+20 means bottomLeft position shifted by 20 pixels right
horizontally
			//   topRight:20, -15 means topRight position shifted by 20 pixels to
right and 15 pixels to top
			//You can use +pixels, - pixels. If no sign is provided than + is
default.
			var positionType=field.data("promptPosition") ||
options.promptPosition;
			var shift1="";
			var shift2="";
			var shiftX=0;
			var shiftY=0;
			if (typeof(positionType)=='string') {
				//do we have any position adjustments ?
				if (positionType.indexOf(":")!=-1) {
					shift1=positionType.substring(positionType.indexOf(":")+1);
					positionType=positionType.substring(0,positionType.indexOf(":"));

					//if any advanced positioning will be needed (percents or something
else) - parser should be added here
					//for now we use simple parseInt()

					//do we have second parameter?
					if (shift1.indexOf(",") !=-1) {
						shift2=shift1.substring(shift1.indexOf(",") +1);
						shift1=shift1.substring(0,shift1.indexOf(","));
						shiftY=parseInt(shift2);
						if (isNaN(shiftY)) shiftY=0;
					};

					shiftX=parseInt(shift1);
					if (isNaN(shift1)) shift1=0;

				};
			};

			
			switch (positionType) {
				default:
				case "topRight":
					promptleftPosition +=  fieldLeft + fieldWidth - 30;
					promptTopPosition +=  fieldTop;
					break;

				case "topLeft":
					promptTopPosition +=  fieldTop;
					promptleftPosition += fieldLeft; 
					break;

				case "centerRight":
					promptTopPosition = fieldTop+4;
					marginTopSize = 0;
					promptleftPosition= fieldLeft + field.outerWidth(true)+5;
					break;
				case "centerLeft":
					promptleftPosition = fieldLeft - (promptElmt.width() + 2);
					promptTopPosition = fieldTop+4;
					marginTopSize = 0;
					
					break;

				case "bottomLeft":
					promptTopPosition = fieldTop + field.height() + 5;
					marginTopSize = 0;
					promptleftPosition = fieldLeft;
					break;
				case "bottomRight":
					promptleftPosition = fieldLeft + fieldWidth - 30;
					promptTopPosition =  fieldTop +  field.height() + 5;
					marginTopSize = 0;
					break;
				case "inline":
					promptleftPosition = 0;
					promptTopPosition = 0;
					marginTopSize = 0;
			};

		

			//apply adjusments if any
			promptleftPosition += shiftX;
			promptTopPosition  += shiftY;

			return {
				"callerTopPosition": promptTopPosition + "px",
				"callerleftPosition": promptleftPosition + "px",
				"marginTopSize": marginTopSize + "px"
			};
		},
		/**
		* Saves the user options and variables in the form.data
		*
		* @param {jqObject}
		*            form - the form where the user option should be saved
		* @param {Map}
		*            options - the user options
		* @return the user options (extended from the defaults)
		*/
		 _saveOptions: function(form, options) {

			 // is there a language localisation ?
			 if ($.validationEngineLanguage)
			 var allRules = $.validationEngineLanguage.allRules;
			 else
			 $.error("jQuery.validationEngine rules are not loaded, plz add
localization files to the page");
			 // --- Internals DO NOT TOUCH or OVERLOAD ---
			 // validation rules and i18
			 $.validationEngine.defaults.allrules = allRules;

			 var userOptions =
$.extend(true,{},$.validationEngine.defaults,options);

			 form.data('jqv', userOptions);
			 return userOptions;
		 },

		 /**
		 * Removes forbidden characters from class name
		 * @param {String} className
		 */
		 _getClassName: function(className) {
			 if(className)
				 return className.replace(/:/g, "_").replace(/\./g,
"_");
					  },
		/**
		 * Escape special character for jQuery selector
		 * http://totaldev.com/content/escaping-characters-get-valid-jquery-id
		 * @param {String} selector
		 */
		 _jqSelector: function(str){
			return
str.replace(/([;&,\.\+\*\~':"\!\^#$%@\[\]\(\)=>\|])/g,
'\\$1');
		},
		/**
		* Conditionally required field
		*
		* @param {jqObject} field
		* @param {Array[String]} rules
		* @param {int} i rules index
		* @param {Map}
		* user options
		* @return an error string if validation failed
		*/
		_condRequired: function(field, rules, i, options) {
			var idx, dependingField;

			for(idx = (i + 1); idx < rules.length; idx++) {
				dependingField = jQuery("#" + rules[idx]).first();

				/* Use _required for determining wether dependingField has a value.
				 * There is logic there for handling all field types, and default
value; so we won't replicate that here
				 * Indicate this special use by setting the last parameter to true so
we only validate the dependingField on chackboxes and radio buttons (#462)
				 */
				if (dependingField.length && methods._required(dependingField,
["required"], 0, options, true) == undefined) {
					/* We now know any of the depending fields has a value,
					 * so we can validate this field as per normal required code
					 */
					return methods._required(field, ["required"], 0, options);
				}
			}
		},

	    _submitButtonClick: function(event) {
	        var button = $(this);
	        var form = button.closest('form,
.validationEngineContainer');
	        form.data("jqv_submitButton",
button.attr("id"));
	    }
		  };

	 /**
	 * Plugin entry point.
	 * You may pass an action as a parameter or a list of options.
	 * if none, the init and attach methods are being called.
	 * Remember: if you pass options, the attached method is NOT called
automatically
	 *
	 * @param {String}
	 *            method (optional) action
	 */
	 $.fn.validationEngine = function(method) {

		 var form = $(this);
		 if(!form[0]) return form;  // stop here if the form does not exist

		 if (typeof(method) == 'string' && method.charAt(0) !=
'_' && methods[method]) {

			 // make sure init is called once
			 if(method != "showPrompt" && method !=
"hide" && method != "hideAll")
			 methods.init.apply(form);

			 return methods[method].apply(form,
Array.prototype.slice.call(arguments, 1));
		 } else if (typeof method == 'object' || !method) {

			 // default constructor with or without arguments
			 methods.init.apply(form, arguments);
			 return methods.attach.apply(form);
		 } else {
			 $.error('Method ' + method + ' does not exist in
jQuery.validationEngine');
		 }
	};



	// LEAK GLOBAL OPTIONS
	$.validationEngine= {fieldIdCounter: 0,defaults:{

		// Name of the event triggering field validation
		validationEventTrigger: "blur",
		// Automatically scroll viewport to the first error
		scroll: true,
		// Focus on the first input
		focusFirstField:true,
		// Show prompts, set to false to disable prompts
		showPrompts: true,
       // Should we attempt to validate non-visible input fields contained
in the form? (Useful in cases of tabbed containers, e.g. jQuery-UI tabs)
       validateNonVisibleFields: false,
		// Opening box position, possible locations are: topLeft,
		// topRight, bottomLeft, centerRight, bottomRight, inline
		// inline gets inserted after the validated field or into an element
specified in data-prompt-target
		promptPosition: "topRight",
		bindMethod:"bind",
		// internal, automatically set to true when it parse a _ajax rule
		inlineAjax: false,
		// if set to true, the form data is sent asynchronously via ajax to the
form.action url (get)
		ajaxFormValidation: false,
		// The url to send the submit ajax validation (default to action)
		ajaxFormValidationURL: false,
		// HTTP method used for ajax validation
		ajaxFormValidationMethod: 'get',
		// Ajax form validation callback method: boolean onComplete(form, status,
errors, options)
		// retuns false if the form.submit event needs to be canceled.
		onAjaxFormComplete: $.noop,
		// called right before the ajax call, may return false to cancel
		onBeforeAjaxFormValidation: $.noop,
		// Stops form from submitting and execute function assiciated with it
		onValidationComplete: false,

		// Used when you have a form fields too close and the errors messages are
on top of other disturbing viewing messages
		doNotShowAllErrosOnSubmit: false,
		// Object where you store custom messages to override the default error
messages
		custom_error_messages:{},
		// true if you want to vind the input fields
		binded: true,
		// set to true, when the prompt arrow needs to be displayed
		showArrow: true,
		// did one of the validation fail ? kept global to stop further ajax
validations
		isError: false,
		// Limit how many displayed errors a field can have
		maxErrorsPerField: false,
		
		// Caches field validation status, typically only bad status are
created.
		// the array is used during ajax form validation to detect issues early
and prevent an expensive submit
		ajaxValidCache: {},
		// Auto update prompt position after window resize
		autoPositionUpdate: false,

		InvalidFields: [],
		onFieldSuccess: false,
		onFieldFailure: false,
		onSuccess: false,
		onFailure: false,
		validateAttribute: "class",
		addSuccessCssClassToField: "",
		addFailureCssClassToField: "",
		
		// Auto-hide prompt
		autoHidePrompt: false,
		// Delay before auto-hide
		autoHideDelay: 10000,
		// Fade out duration while hiding the validations
		fadeDuration: 0.3,
	 // Use Prettify select library
	 prettySelect: false,
	 // Add css class on prompt
	 addPromptClass : "",
	 // Custom ID uses prefix
	 usePrefix: "",
	 // Custom ID uses suffix
	 useSuffix: "",
	 // Only show one message per error prompt
	 showOneMessage: false
	}};
	$(function(){$.validationEngine.defaults.promptPosition =
methods.isRTL()?'topLeft':"topRight"});
});


PKe�[�~
�$�$*js/languages/jquery.validationEngine-cz.jsnu�[���(function($){
    $.fn.validationEngineLanguage = function(){
    };
    $.validationEngineLanguage = {
        newLang: function(){
            $.validationEngineLanguage.allRules = {
                "required": { // Add your regex rules here, you
can take telephone as an example
                    "regex": "none",
                    "alertText": "* Tato položka je
povinná",
                    "alertTextCheckboxMultiple": "* Prosím
vyberte jednu možnost",
                    "alertTextCheckboxe": "* Tato položka
je povinná"
                },
                 "requiredInFunction": { 
                    "func": function(field, rules, i, options){
                        return (field.val() == "test") ? true :
false;
                    },
                    "alertText": "* Pole se musí rovnat
test"
                },
                "minSize": {
                    "regex": "none",
                    "alertText": "* Minimálně ",
                    "alertText2": " znaky"
                },
                "maxSize": {
                    "regex": "none",
                    "alertText": "* Maximálně ",
                    "alertText2": " znaky"
                },
				"groupRequired": {
                    "regex": "none",
                    "alertText": "* Musíte zadat jedno z
nasledujících polí"
                },
                "min": {
                    "regex": "none",
                    "alertText": "* Minimální hodnota je
"
                },
                "max": {
                    "regex": "none",
                    "alertText": "* Maximální hodnota je
"
                },
                "past": {
                    "regex": "none",
                    "alertText": "* Datum před "
                },
                "future": {
                    "regex": "none",
                    "alertText": "* Datum po "
                },	
                "maxCheckbox": {
                    "regex": "none",
                    "alertText": "* Počet vybraných
položek přesáhl limit"
                },
                "minCheckbox": {
                    "regex": "none",
                    "alertText": "* Prosím vyberte ",
                    "alertText2": " volbu"
                },
                "equals": {
                    "regex": "none",
                    "alertText": "* Pole se
neshodují"
                },
                "creditCard": {
                    "regex": "none",
                    "alertText": "* Neplatné číslo
kreditní karty"
                },
                "CZphone": {
                    // telefoní číslo
                    "regex": /^([\+][0-9]{1,3}[
\.\-])([0-9]{3}[\-][0-9]{3}[\-][0-9]{3})$/,
                    "alertText": "* Neplatné telefoní
číslo, zadejte ve formátu +420 598-598-895"
                },
                "phone": {
                    // credit: jquery.h5validate.js / orefalo
                    "regex": /^([\+][0-9]{1,3}[
\.\-])?([\(]{1}[0-9]{2,6}[\)])?([0-9 \.\-\/]{3,20})((x|ext|extension)[
]?[0-9]{1,4})?$/,
                    "alertText": "* Neplatné telefoní
číslo"
                },
                "email": {
                    // Shamelessly lifted from Scott Gonzalez via the
Bassistance Validation plugin
http://projects.scottsplayground.com/email_address_validation/
                    "regex":
/^((([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,
                    "alertText": "* Neplatná emailová
adresa"
                },
                "integer": {
                    "regex": /^[\-\+]?\d+$/,
                    "alertText": "* Zadejte pouze
čísla"
                },
                "number": {
                    // Number, including positive, negative, and floating
decimal. credit: orefalo
                    "regex":
/^[\-\+]?((([0-9]{1,3})([,][0-9]{3})*)|([0-9]+))?([\.]([0-9]+))?$/,
                    "alertText": "* Neplatné číslo"
                },
                "CZdate": {
                    // datum ve formátu jak se používá v čr
                    "regex": /^(0[1-9]|[12][0-9]|3[01])[.
/.](0[1-9]|1[012])[. /.](19|20)\d{2}$/,
                    "alertText": "* Neplatné datum, datum
musí být ve formátu den.měsíc.rok (dd.mm.rrrr)"
                },
                "date": {
                    // Date in ISO format. Credit: bassistance
                    "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/,
                    "alertText": "* Neplatné datum, datum
musí být ve formátu YYYY-MM-DD"
                },
                "ipv4": {
                    "regex":
/^((([01]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))[.]){3}(([0-1]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))$/,
                    "alertText": "* Neplatná
IP adresa"
                },
                //česká syntaxe pro rodné číslo
                "rc": {
                    "regex":
/^\d{2}((0[1-9]|1[012])|(5[1-9]|6[012]))(0[1-9]|[12][0-9]|3[01])\/([0-9]{2,4})$/,
                    "alertText": "* Neplatné rodné
číslo, tvar musí být 895431/4567"
                },
                //poštovní směrovací číslo
                "psc": {
                    "regex": /^\d{3}[ \.\-]\d{2}$/,
                    "alertText": "* Neplatné poštovní
směrovací číslo, tvar musí být 456 45"
                },
                "url": {
                    "regex":
/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([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])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,
                    "alertText": "* Neplatný odkaz"
                },
                "onlyNumberSp": {
                    "regex": /^[0-9\ ]+$/,
                    "alertText": "* Pouze čísla"
                },
                "onlyLetterSp": {
                    "regex": /^[a-zA-Z\ \']+$/,
                    "alertText": "* Pouze písmena"
                },
                "onlyLetterNumber": {
                    "regex": /^[0-9a-zA-Z]+$/,
                    "alertText": "* Pouze písmena a
číslice"
                },
                // --- CUSTOM RULES -- Those are specific to the demos,
they can be removed or changed to your likings
                "ajaxUserCall": {
                    "url": "ajaxValidateFieldUser",
                    // you may want to pass extra data on the ajax call
                    "extraData": "name=eric",
                    "alertText": "* Uživatelské jméno je
již použito",
                    "alertTextLoad": "* Ověřování,
prosím čekejte"
                },
                "ajaxNameCall": {
                    // remote json service location
                    "url": "ajaxValidateFieldName",
                    // error
                    "alertText": "* Uživatelské jméno je
již použito",
                    // if you provide an "alertTextOk", it will
show as a green prompt when the field validates
                    "alertTextOk": "* Toto jméno je k
dispozici",
                    // speaks by itself
                    "alertTextLoad": "* Ověřování,
prosím čekejte"
                },
                "validate2fields": {
                    "alertText": "* Prosím napište
HELLO"
                }
            };
            
        }
    };
    $.validationEngineLanguage.newLang();
})(jQuery);
PKe�[���ڷ�*js/languages/jquery.validationEngine-da.jsnu�[���(function($){
    $.fn.validationEngineLanguage = function(){
    };
    $.validationEngineLanguage = {
        newLang: function(){
            $.validationEngineLanguage.allRules = {
                "required": { // Add your regex rules here, you
can take telephone as an example
                    "regex": "none",
                    "alertText": "* Dette felt kræves
udfyldt",
                    "alertTextCheckboxMultiple": "* Vælg
venligst en af mulighederne",
                    "alertTextCheckboxe": "* Dette felt er
krævet"
                },
                "requiredInFunction": { 
                    "func": function(field, rules, i, options){
                        return (field.val() == "test") ? true :
false;
                    },
                    "alertText": "* Field must equal
test"
                },
                "minSize": {
                    "regex": "none",
                    "alertText": "* Minimum ",
                    "alertText2": " tegn tilladt"
                },
                "maxSize": {
                    "regex": "none",
                    "alertText": "* Maksimum ",
                    "alertText2": " tegn tilladt"
                },
				"groupRequired": {
                    "regex": "none",
                    "alertText": "* You must fill one of the
following fields"
                },
                "min": {
                    "regex": "none",
                    "alertText": "* Den mindste værdi er
"
                },
                "max": {
                    "regex": "none",
                    "alertText": "* Den maksimale værdi er
"
                },
                "past": {
                    "regex": "none",
                    "alertText": "* Datoen skal være før
"
                },
                "future": {
                    "regex": "none",
                    "alertText": "* Datoen skal være efter
"
                },	
                "maxCheckbox": {
                    "regex": "none",
                    "alertText": "* Antallet af valg
overskredet"
                },
                "minCheckbox": {
                    "regex": "none",
                    "alertText": "* Vælg venligst ",
                    "alertText2": " muligheder"
                },
                "equals": {
                    "regex": "none",
                    "alertText": "* Felterne er ikke
ens"
                },
                "creditCard": {
                    "regex": "none",
                    "alertText": "* Ugyldigt
kreditkortnummer"
                },
                "phone": {
                    // credit: jquery.h5validate.js / orefalo
                    "regex": /^([\+][0-9]{1,3}[
\.\-])?([\(]{1}[0-9]{2,6}[\)])?([0-9 \.\-\/]{3,20})((x|ext|extension)[
]?[0-9]{1,4})?$/,
                    "alertText": "* Ikke gyldig
telefonnummer"
                },
                "email": {
                    // Shamelessly lifted from Scott Gonzalez via the
Bassistance Validation plugin
http://projects.scottsplayground.com/email_address_validation/
                    "regex":
/^((([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,
                    "alertText": "* Ikke gyldig
e-mail"
                },
                "integer": {
                    "regex": /^[\-\+]?\d+$/,
                    "alertText": "* Ikke et korrekt
tal"
                },
                "number": {
                    // Number, including positive, negative, and floating
decimal. credit: orefalo
                    "regex":
/^[\-\+]?((([0-9]{1,3})([,][0-9]{3})*)|([0-9]+))?([\.]([0-9]+))?$/,
                    "alertText": "* Ugyldig
decimaltal"
                },
                "date": {
                    "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/,
                    "alertText": "* Ugyldig dato, skal være
i formatet ÅÅÅÅ-MM-DD"
                },
                "ipv4": {
                	"regex":
/^((([01]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))[.]){3}(([0-1]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))$/,
                    "alertText": "* Ugyldig IP
adresse"
                },
                "url": {
                    "regex":
/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([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])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,
                    "alertText": "* Ugyldig URL"
                },
                "onlyNumberSp": {
                    "regex": /^[0-9\ ]+$/,
                    "alertText": "* Kun tal"
                },
                "onlyLetterSp": {
                    "regex": /^[a-zA-Z\ \']+$/,
                    "alertText": "* Kun bogstaver"
                },
                "onlyLetterNumber": {
                    "regex": /^[0-9a-zA-Z]+$/,
                    "alertText": "* Ingen specialtegn
tilladt"
                },
                // --- CUSTOM RULES -- Those are specific to the demos,
they can be removed or changed to your likings
                "ajaxUserCall": {
                    "url": "ajaxValidateFieldUser",
                    // you may want to pass extra data on the ajax call
                    "extraData": "name=eric",
                    "alertText": "* Denne bruger er allerede
taget",
                    "alertTextLoad": "* Kontrollere, vent
venligst"
                },
                "ajaxNameCall": {
                    // remote json service location
                    "url": "ajaxValidateFieldName",
                    // error
                    "alertText": "* Dette navn er allerede
taget",
                    // if you provide an "alertTextOk", it will
show as a green prompt when the field validates
                    "alertTextOk": "* Dette navn er
ledig",
                    // speaks by itself
                    "alertTextLoad": "* Kontrollere, vent
venligst"
                },
                "validate2fields": {
                    "alertText": "* Indsæt venligst
HELLO"
                }
            };
            
        }
    };
    $.validationEngineLanguage.newLang();
})(jQuery);PKe�[
?J1��*js/languages/jquery.validationEngine-de.jsnu�[���(function($){
    $.fn.validationEngineLanguage = function(){
    };
    $.validationEngineLanguage = {
        newLang: function(){
            $.validationEngineLanguage.allRules = {
                "required": { // Add your regex rules here, you
can take telephone as an example
                    "regex": "none",
                    "alertText": "* Dieses Feld ist ein
Pflichtfeld",
                    "alertTextCheckboxMultiple": "* Bitte
wählen Sie eine Option",
                    "alertTextCheckboxe": "* Dieses Feld ist
ein Pflichtfeld"
                },
                "requiredInFunction": { 
                    "func": function(field, rules, i, options){
                        return (field.val() == "test") ? true :
false;
                    },
                    "alertText": "* Field must equal
test"
                },
                "minSize": {
                    "regex": "none",
                    "alertText": "* Mindestens ",
                    "alertText2": " Zeichen benötigt"
                },
                "maxSize": {
                    "regex": "none",
                    "alertText": "* Maximal ",
                    "alertText2": " Zeichen erlaubt"
                },
				"groupRequired": {
                    "regex": "none",
                    "alertText": "* Sie müssen mindestens
eines dieser Felder ausfüllen"
                },
                "min": {
                    "regex": "none",
                    "alertText": "* Mindestwert ist "
                },
                "max": {
                    "regex": "none",
                    "alertText": "* Maximalwert ist "
                },
                "past": {
                    "regex": "none",
                    "alertText": "* Datum vor "
                },
                "future": {
                    "regex": "none",
                    "alertText": "* Datum nach "
                },	
                "maxCheckbox": {
                    "regex": "none",
                    "alertText": "* Maximale Anzahl
Markierungen überschritten"
                },
                "minCheckbox": {
                    "regex": "none",
                    "alertText": "* Bitte wählen Sie
",
                    "alertText2": " Optionen"
                },
                "equals": {
                    "regex": "none",
                    "alertText": "* Felder stimmen nicht
überein"
                },
                "creditCard": {
                    "regex": "none",
                    "alertText": "* Ungültige
Kreditkartennummer"
                },
                "phone": {
                    // credit: jquery.h5validate.js / orefalo
                    "regex": /^([\+][0-9]{1,3}[
\.\-])?([\(]{1}[0-9]{1,6}[\)])?([0-9 \.\-\/]{3,20})((x|ext|extension)[
]?[0-9]{1,4})?$/,
                    "alertText": "* Ungültige
Telefonnummer"
                },
                "email": {
                    // Shamelessly lifted from Scott Gonzalez via the
Bassistance Validation plugin
http://projects.scottsplayground.com/email_address_validation/
                    "regex":
/^((([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,
                    "alertText": "* Ungültige
E-Mail-Adresse"
                },
                "integer": {
                    "regex": /^[\-\+]?\d+$/,
                    "alertText": "* Keine gültige
Ganzzahl"
                },
                "number": {
                    // Number, including positive, negative, and floating
decimal. credit: orefalo
                    "regex":
/^[\-\+]?((([0-9]{1,3})([,][0-9]{3})*)|([0-9]+))?([\.]([0-9]+))?$/,
                    "alertText": "* Keine gültige
Fließkommazahl"
                },
                "date": {
                    // Date in ISO format. Credit: bassistance
                    "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/,
                    "alertText": "* Ungültiges
Datumsformat, erwartet wird das Format JJJJ-MM-TT"
                },
                "ipv4": {
                	"regex":
/^((([01]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))[.]){3}(([0-1]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))$/,
                    "alertText": "* Ungültige
IP-Adresse"
                },
                "url": {
                    "regex":
/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([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])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,
                    "alertText": "* Ungültige URL"
                },
                "onlyLetterSp": {
	                 "regex": /^[a-zA-ZäüöÄÜÖßs\
\\\']+$/,
                     "alertText": "* Nur Buchstaben
erlaubt"
                },
				"onlyLetterNumber": {
					"regex": /^[0-9a-zA-ZäüöÄÜÖßs-]+$/,
					"alertText": "* Keine Sonderzeichen erlaubt"
				},
                // --- CUSTOM RULES -- Those are specific to the demos,
they can be removed or changed to your likings
                "ajaxUserCall": {
                    "url": "ajaxValidateFieldUser",
                    // you may want to pass extra data on the ajax call
                    "extraData": "name=eric",
                    "alertText": "* Dieser Benutzer ist
bereits vergeben",
                    "alertTextLoad": "* Überprüfe Angaben,
bitte warten"
                },
                "ajaxNameCall": {
                    // remote json service location
                    "url": "ajaxValidateFieldName",
                    // error
                    "alertText": "* Dieser Name ist bereits
vergeben",
                    // if you provide an "alertTextOk", it will
show as a green prompt when the field validates
                    "alertTextOk": "* Dieser Name ist
verfügbar",
                    // speaks by itself
                    "alertTextLoad": "* Überprüfe Angaben,
bitte warten"
                },
                "validate2fields": {
                    "alertText": "* Bitte HELLO
eingeben"
                }
            };
            
        }
    };
    $.validationEngineLanguage.newLang();
})(jQuery);


    
PKe�[���++*js/languages/jquery.validationEngine-en.jsnu�[���(function($){
    $.fn.validationEngineLanguage = function(){
    };
    $.validationEngineLanguage = {
        newLang: function(){
            $.validationEngineLanguage.allRules = {
                "required": { // Add your regex rules here, you
can take telephone as an example
                    "regex": "none",
                    "alertText": "* This field is
required",
                    "alertTextCheckboxMultiple": "* Please
select an option",
                    "alertTextCheckboxe": "* This checkbox
is required",
                    "alertTextDateRange": "* Both date range
fields are required"
                },
                "requiredInFunction": { 
                    "func": function(field, rules, i, options){
                        return (field.val() == "test") ? true :
false;
                    },
                    "alertText": "* Field must equal
test"
                },
                "dateRange": {
                    "regex": "none",
                    "alertText": "* Invalid ",
                    "alertText2": "Date Range"
                },
                "dateTimeRange": {
                    "regex": "none",
                    "alertText": "* Invalid ",
                    "alertText2": "Date Time Range"
                },
                "minSize": {
                    "regex": "none",
                    "alertText": "* Minimum ",
                    "alertText2": " characters
required"
                },
                "maxSize": {
                    "regex": "none",
                    "alertText": "* Maximum ",
                    "alertText2": " characters
allowed"
                },
				"groupRequired": {
                    "regex": "none",
                    "alertText": "* You must fill one of the
following fields"
                },
                "min": {
                    "regex": "none",
                    "alertText": "* Minimum value is "
                },
                "max": {
                    "regex": "none",
                    "alertText": "* Maximum value is "
                },
                "past": {
                    "regex": "none",
                    "alertText": "* Date prior to "
                },
                "future": {
                    "regex": "none",
                    "alertText": "* Date past "
                },	
                "maxCheckbox": {
                    "regex": "none",
                    "alertText": "* Maximum ",
                    "alertText2": " options allowed"
                },
                "minCheckbox": {
                    "regex": "none",
                    "alertText": "* Please select ",
                    "alertText2": " options"
                },
                "equals": {
                    "regex": "none",
                    "alertText": "* Fields do not
match"
                },
                "creditCard": {
                    "regex": "none",
                    "alertText": "* Invalid credit card
number"
                },
                "phone": {
                    // credit: jquery.h5validate.js / orefalo
                    "regex": /^([\+][0-9]{1,3}[\
\.\-])?([\(]{1}[0-9]{2,6}[\)])?([0-9\ \.\-\/]{3,20})((x|ext|extension)[\
]?[0-9]{1,4})?$/,
                    "alertText": "* Invalid phone
number"
                },
                "email": {
                    // HTML5 compatible email regex (
http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#
   e-mail-state-%28type=email%29 )
                    "regex":
/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,
                    "alertText": "* Invalid email
address"
                },
                "integer": {
                    "regex": /^[\-\+]?\d+$/,
                    "alertText": "* Not a valid
integer"
                },
                "number": {
                    // Number, including positive, negative, and floating
decimal. credit: orefalo
                    "regex":
/^[\-\+]?((([0-9]{1,3})([,][0-9]{3})*)|([0-9]+))?([\.]([0-9]+))?$/,
                    "alertText": "* Invalid floating decimal
number"
                },
                "date": {                    
                    //	Check if date is valid by leap year
			"func": function (field) {
					var pattern = new
RegExp(/^(\d{4})[\/\-\.](0?[1-9]|1[012])[\/\-\.](0?[1-9]|[12][0-9]|3[01])$/);
					var match = pattern.exec(field.val());
					if (match == null)
					   return false;
	
					var year = match[1];
					var month = match[2]*1;
					var day = match[3]*1;					
					var date = new Date(year, month - 1, day); // because months starts
from 0.
	
					return (date.getFullYear() == year && date.getMonth() ==
(month - 1) && date.getDate() == day);
				},                		
			 "alertText": "* Invalid date, must be in YYYY-MM-DD
format"
                },
                "ipv4": {
                    "regex":
/^((([01]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))[.]){3}(([0-1]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))$/,
                    "alertText": "* Invalid IP
address"
                },
                "url": {
                    "regex":
/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([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])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,
                    "alertText": "* Invalid URL"
                },
                "onlyNumberSp": {
                    "regex": /^[0-9\ ]+$/,
                    "alertText": "* Numbers only"
                },
                "onlyLetterSp": {
                    "regex": /^[a-zA-Z\ \']+$/,
                    "alertText": "* Letters only"
                },
                "onlyLetterNumber": {
                    "regex": /^[0-9a-zA-Z]+$/,
                    "alertText": "* No special characters
allowed"
                },
                // --- CUSTOM RULES -- Those are specific to the demos,
they can be removed or changed to your likings
                "ajaxUserCall": {
                	"url":
"index.php?option=com_osmembership&task=validate_username",
                    // you may want to pass extra data on the ajax call
                    "extraData": "name=eric",
                    "alertText": "* This user is already
taken",
                },
                "ajaxEmailCall": {
                	"url":
"index.php?option=com_osmembership&task=validate_email",
                    // you may want to pass extra data on the ajax call
                    "extraData": "email=eric",
                    "alertText": "* This email is already
taken",
                },
				"ajaxUserCallPhp": {
                	"url":
"index.php?option=com_osmembership&task=validate_username",
                    // you may want to pass extra data on the ajax call
                    "extraData": "name=eric",
                    // if you provide an "alertTextOk", it will
show as a green prompt when the field validates
                    "alertTextOk": "* This username is
available",
                    "alertText": "* This user is already
taken",
                    "alertTextLoad": "* Validating, please
wait"
                },
                "ajaxNameCall": {
                    // remote json service location
                    "url": "ajaxValidateFieldName",
                    // error
                    "alertText": "* This name is already
taken",
                    // if you provide an "alertTextOk", it will
show as a green prompt when the field validates
                    "alertTextOk": "* This name is
available",
                    // speaks by itself
                    "alertTextLoad": "* Validating, please
wait"
                },
				 "ajaxNameCallPhp": {
	                    // remote json service location
	                    "url":
"phpajax/ajaxValidateFieldName.php",
	                    // error
	                    "alertText": "* This name is already
taken",
	                    // speaks by itself
	                    "alertTextLoad": "* Validating, please
wait"
	                },
                "validate2fields": {
                    "alertText": "* Please input
HELLO"
                },
	            //tls warning:homegrown not fielded 
                "dateFormat":{
                    "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$|^(?:(?:(?:0?[13578]|1[02])(\/|-)31)|(?:(?:0?[1,3-9]|1[0-2])(\/|-)(?:29|30)))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(?:(?:0?[1-9]|1[0-2])(\/|-)(?:0?[1-9]|1\d|2[0-8]))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(0?2(\/|-)29)(\/|-)(?:(?:0[48]00|[13579][26]00|[2468][048]00)|(?:\d\d)?(?:0[48]|[2468][048]|[13579][26]))$/,
                    "alertText": "* Invalid Date"
                },
                //tls warning:homegrown not fielded 
				"dateTimeFormat": {
	                "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])\s+(1[012]|0?[1-9]){1}:(0?[1-5]|[0-6][0-9]){1}:(0?[0-6]|[0-6][0-9]){1}\s+(am|pm|AM|PM){1}$|^(?:(?:(?:0?[13578]|1[02])(\/|-)31)|(?:(?:0?[1,3-9]|1[0-2])(\/|-)(?:29|30)))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^((1[012]|0?[1-9]){1}\/(0?[1-9]|[12][0-9]|3[01]){1}\/\d{2,4}\s+(1[012]|0?[1-9]){1}:(0?[1-5]|[0-6][0-9]){1}:(0?[0-6]|[0-6][0-9]){1}\s+(am|pm|AM|PM){1})$/,
                    "alertText": "* Invalid Date or Date
Format",
                    "alertText2": "Expected Format: ",
                    "alertText3": "mm/dd/yyyy hh:mm:ss AM|PM
or ", 
                    "alertText4": "yyyy-mm-dd hh:mm:ss
AM|PM"
	            }
            };
            
        }
    };

    $.validationEngineLanguage.newLang();
    
})(jQuery);
PKe�[9�U��*js/languages/jquery.validationEngine-es.jsnu�[���
(function($){
    $.fn.validationEngineLanguage = function(){
    };
    $.validationEngineLanguage = {
        newLang: function(){
            $.validationEngineLanguage.allRules = {
                "required": { // Add your regex rules here, you
can take telephone as an example
                    "regex": "none",
                    "alertText": "* Este campo es
obligatorio",
                    "alertTextCheckboxMultiple": "* Por
favor seleccione una opción",
                    "alertTextCheckboxe": "* Este checkbox
es obligatorio"
                },
                "requiredInFunction": { 
                    "func": function(field, rules, i, options){
                        return (field.val() == "test") ? true :
false;
                    },
                    "alertText": "* Field must equal
test"
                },
                "minSize": {
                    "regex": "none",
                    "alertText": "* Mínimo de ",
                    "alertText2": " caracteres
autorizados"
                },
				"groupRequired": {
                    "regex": "none",
                    "alertText": "* Debe de rellenar al
menos uno de los siguientes campos"
                },
                "maxSize": {
                    "regex": "none",
                    "alertText": "* Máximo de ",
                    "alertText2": " caracteres
autorizados"
                },
		        "min": {
                    "regex": "none",
                    "alertText": "* El valor mínimo es
"
                },
                "max": {
                    "regex": "none",
                    "alertText": "* El valor máximo es
"
                },
		        "past": {
                    "regex": "none",
                    "alertText": "* Fecha anterior a "
                },
                "future": {
                    "regex": "none",
                    "alertText": "* Fecha posterior a
"
                },	
                "maxCheckbox": {
                    "regex": "none",
                    "alertText": "* Se ha excedido el
número de opciones permitidas"
                },
                "minCheckbox": {
                    "regex": "none",
                    "alertText": "* Por favor seleccione
",
                    "alertText2": " opciones"
                },
                "equals": {
                    "regex": "none",
                    "alertText": "* Los campos no
coinciden"
                },
                "creditCard": {
                    "regex": "none",
                    "alertText": "* La tarjeta de crédito
no es válida"
                },
                "phone": {
                    // credit: jquery.h5validate.js / orefalo
                    "regex": /^([\+][0-9]{1,3}[
\.\-])?([\(]{1}[0-9]{2,6}[\)])?([0-9 \.\-\/]{3,20})((x|ext|extension)[
]?[0-9]{1,4})?$/,
                    "alertText": "* Número de teléfono
inválido"
                },
                "email": {
                    // Shamelessly lifted from Scott Gonzalez via the
Bassistance Validation plugin
http://projects.scottsplayground.com/email_address_validation/
                    "regex":
/^((([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,
                    "alertText": "* Correo inválido"
                },
                "integer": {
                    "regex": /^[\-\+]?\d+$/,
                    "alertText": "* No es un valor entero
válido"
                },
                "number": {
                    // Number, including positive, negative, and floating
decimal. credit: orefalo
                    "regex":
/^[\-\+]?((([0-9]{1,3})([,][0-9]{3})*)|([0-9]+))?([\.]([0-9]+))?$/,
                    "alertText": "* No es un valor decimal
válido"
                },
                "date": {
                    "regex":
/^(0?[1-9]|[12][0-9]|3[01])[\/\-](0?[1-9]|1[012])[\/\-]\d{4}$/,
                    "alertText": "* Fecha inválida, por
favor utilize el formato DD/MM/AAAA"
                },
                "ipv4": {
                	"regex":
/^((([01]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))[.]){3}(([0-1]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))$/,
                    "alertText": "* Direccion IP
inválida"
                },
                "url": {
                    "regex":
/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([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])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,
                    "alertText": "* URL Inválida"
                },
                "onlyNumberSp": {
                    "regex": /^[0-9\ ]+$/,
                    "alertText": "* Sólo números"
                },
			    "onlyLetterSp": {
                    "regex": /^[a-zA-Z\ \']+$/,
                    "alertText": "* Sólo letras"
                },
                "onlyLetterNumber": {
                    "regex": /^[0-9a-zA-Z]+$/,
                    "alertText": "* No se permiten
caracteres especiales"
                },
				// --- CUSTOM RULES -- Those are specific to the demos, they can be
removed or changed to your likings
                "ajaxUserCall": {
                    "url": "ajaxValidateFieldUser",
					// you may want to pass extra data on the ajax call
                    "extraData": "name=eric",
                    "alertTextLoad": "* Cargando, espere por
favor",
                    "alertText": "* Este nombre de usuario
ya se encuentra usado"
                },
                "ajaxNameCall": {
					// remote json service location
                    "url": "ajaxValidateFieldName",
					// error
                    "alertText": "* Este nombre ya se
encuentra usado",
					// if you provide an "alertTextOk", it will show as a green
prompt when the field validates
                    "alertTextOk": "* Este nombre está
disponible",
					// speaks by itself
                    "alertTextLoad": "* Cargando, espere por
favor"
                },
                "validate2fields": {
                    "alertText": "* Por favor entrar
HELLO"
                }
            };
            
        }
    };
    $.validationEngineLanguage.newLang();
})(jQuery);

PKe�[��axx*js/languages/jquery.validationEngine-et.jsnu�[���(function($){
    $.fn.validationEngineLanguage = function(){
    };
    $.validationEngineLanguage = {
        newLang: function(){
            $.validationEngineLanguage.allRules = {
                "required": { // Add your regex rules here, you
can take telephone as an example
                    "regex": "none",
                    "alertText": "*  See väli on
nõutud",
                    "alertTextCheckboxMultiple": "* Palun
valige üks valik",
                    "alertTextCheckboxe": "* Linnuke on
nõutud",
                    "alertTextDateRange": "* Mõlemad
kuupäeva valikud on nõutud"
                },
                "requiredInFunction": { 
                    "func": function(field, rules, i, options){
                        return (field.val() == "test") ? true :
false;
                    },
                    "alertText": "* Field must equal
test"
                },
                "dateRange": {
                    "regex": "none",
                    "alertText": "* Vigane ",
                    "alertText2": "Kuupäev valik"
                },
                "dateTimeRange": {
                    "regex": "none",
                    "alertText": "* Vigane ",
                    "alertText2": "Aja valik"
                },
                "minSize": {
                    "regex": "none",
                    "alertText": "* Minimaalselt ",
                    "alertText2": " märki lubatud"
                },
                "maxSize": {
                    "regex": "none",
                    "alertText": "* Maksimaalselt ",
                    "alertText2": " märki lubatud"
                },
    			"groupRequired": {
                    "regex": "none",
                    "alertText": "* Palun täidke üks
järgnevatest väljadest"
                },
                "min": {
                    "regex": "none",
                    "alertText": "* Minimaalne väärtus on
"
                },
                "max": {
                    "regex": "none",
                    "alertText": "* Maksimaalne väärtus on
"
                },
                "past": {
                    "regex": "none",
                    "alertText": "* Kuupäev enne "
                },
                "future": {
                    "regex": "none",
                    "alertText": "* Kuupäev peale "
                },	
                "maxCheckbox": {
                    "regex": "none",
                    "alertText": "* Maksimaalselt ",
                    "alertText2": " valikut lubatud"
                },
                "minCheckbox": {
                    "regex": "none",
                    "alertText": "* Palun vali ",
                    "alertText2": " valik(ut)"
                },
                "equals": {
                    "regex": "none",
                    "alertText": "* Väljad ei kattu"
                },
                "creditCard": {
                    "regex": "none",
                    "alertText": "* Kehtetu krediitkaardi
number"
                },
                "phone": {
                    // credit: jquery.h5validate.js / orefalo
                    "regex": /^([\+][0-9]{1,3}[\
\.\-])?([\(]{1}[0-9]{2,6}[\)])?([0-9\ \.\-\/]{3,20})((x|ext|extension)[\
]?[0-9]{1,4})?$/,
                    "alertText": "* Vigane telefoni
number"
                },
                "email": {
                    // Shamelessly lifted from Scott Gonzalez via the
Bassistance Validation plugin
http://projects.scottsplayground.com/email_address_validation/
                    "regex":
/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/,
                    "alertText": "* Vigane emaili
aadres"
                },
                "integer": {
                    "regex": /^[\-\+]?\d+$/,
                    "alertText": "* Mittesobiv number"
                },
                "number": {
                    // Number, including positive, negative, and floating
decimal. credit: orefalo
                    "regex":
/^[\-\+]?((([0-9]{1,3})([,][0-9]{3})*)|([0-9]+))?([\.]([0-9]+))?$/,
                    "alertText": "* Vigane väärtus"
                },
                "date": {
                    "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/,
                    "alertText": "* Vigane kuupäev. Peab
olema AAAA-KK-PP formaadis"
                },
                "ipv4": {
                    "regex":
/^((([01]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))[.]){3}(([0-1]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))$/,
                    "alertText": "* Vigane IP aadress"
                },
                "url": {
                    "regex":
/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([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])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,
                    "alertText": "* Vigane URL"
                },
                "onlyNumberSp": {
                    "regex": /^[0-9\ ]+$/,
                    "alertText": "* Numbrid ainult"
                },
                "onlyLetterSp": {
                    "regex": /^[a-zA-Z\ \']+$/,
                    "alertText": "* Tähed ainult"
                },
                "onlyLetterNumber": {
                    "regex": /^[0-9a-zA-Z]+$/,
                    "alertText": "* Eri tähemärke ei
lubata"
                },
	            //tls warning:homegrown not fielded 
                "dateFormat":{
                    "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$|^(?:(?:(?:0?[13578]|1[02])(\/|-)31)|(?:(?:0?[1,3-9]|1[0-2])(\/|-)(?:29|30)))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(?:(?:0?[1-9]|1[0-2])(\/|-)(?:0?[1-9]|1\d|2[0-8]))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(0?2(\/|-)29)(\/|-)(?:(?:0[48]00|[13579][26]00|[2468][048]00)|(?:\d\d)?(?:0[48]|[2468][048]|[13579][26]))$/,
                    "alertText": "* Vigane kuupäev"
                },
                //tls warning:homegrown not fielded 
				"dateTimeFormat": {
	                "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])\s+(1[012]|0?[1-9]){1}:(0?[1-5]|[0-6][0-9]){1}:(0?[0-6]|[0-6][0-9]){1}\s+(am|pm|AM|PM){1}$|^(?:(?:(?:0?[13578]|1[02])(\/|-)31)|(?:(?:0?[1,3-9]|1[0-2])(\/|-)(?:29|30)))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^((1[012]|0?[1-9]){1}\/(0?[1-9]|[12][0-9]|3[01]){1}\/\d{2,4}\s+(1[012]|0?[1-9]){1}:(0?[1-5]|[0-6][0-9]){1}:(0?[0-6]|[0-6][0-9]){1}\s+(am|pm|AM|PM){1})$/,
                    "alertText": "* Vigane kuupäev või
kuupäeva formaat",
                    "alertText2": "Eeldatud formaat:
",
                    "alertText3": "mm/dd/yyyy hh:mm:ss AM|PM
või ", 
                    "alertText4": "yyyy-mm-dd hh:mm:ss
AM|PM"
	            }
            };
            
        }
    };
    $.validationEngineLanguage.newLang();
})(jQuery);PKe�[��h�q.q.*js/languages/jquery.validationEngine-fa.jsnu�[���(function($){
    $.fn.validationEngineLanguage = function(){
    };
    $.validationEngineLanguage = {
        newLang: function(){
            $.validationEngineLanguage.allRules = {
                "required": { // Add your regex rules here, you
can take telephone as an example
                    "regex": "none",
                    "alertText": "* این فیلد
ضروری است",
                    "alertTextCheckboxMultiple": "* لطفا
یک گزینه را انتخاب کنید",
                    "alertTextCheckboxe": "* این چک
باکس ضروری است",
                    "alertTextDateRange": "* هر دو
فیلد‌های بازه‌ی تاریخی ضروری هستند"
                },
                "requiredInFunction": { 
                    "func": function(field, rules, i, options){
                        return (field.val() == "test") ? true :
false;
                    },
                    "alertText": "* Field must equal
test"
                },
                "dateRange": {
                    "regex": "none",
                    "alertText": "* بازه‌ی
تاریخی ",
                    "alertText2": "نامعتبر"
                },
                "dateTimeRange": {
                    "regex": "none",
                    "alertText": "* بازه‌ی
زمانی",
                    "alertText2": "نامعتبر"
                },
                "minSize": {
                    "regex": "none",
                    "alertText": "* حداقل ",
                    "alertText2": " حرف ضروری
است"
                },
                "maxSize": {
                    "regex": "none",
                    "alertText": "* حداکثر ",
                    "alertText2": " حرف وارد
کنید"
                },
				"groupRequired": {
                    "regex": "none",
                    "alertText": "* شما باید یکی
از فیلد‌های زیر را پر کنید"
                },
                "min": {
                    "regex": "none",
                    "alertText": "* کمترین مقدار
معتبر ",
					"alertText2": " است"
                },
                "max": {
                    "regex": "none",
                    "alertText": "* بیش‌ترین
مقدار معتبر ",
					"alertText2": "است"
                },
                "past": {
                    "regex": "none",
                    "alertText": "* تاریخ‌های
قبل از "
                },
                "future": {
                    "regex": "none",
                    "alertText": "* تاریخ‌های
بعد از "
                },	
                "maxCheckbox": {
                    "regex": "none",
                    "alertText": "* بیش‌ترین
گزینه‌ی قابل انتخاب ",
                    "alertText2": " است"
                },
                "minCheckbox": {
                    "regex": "none",
                    "alertText": "* لطفا ",
                    "alertText2": " مورد انتخاب
کنید"
                },
                "equals": {
                    "regex": "none",
                    "alertText": "* فیلد نامعتبر
است"
                },
                "creditCard": {
                    "regex": "none",
                    "alertText": "شماره کارت
اعتباری اشتباه"
                },
                "phone": {
                    // credit: jquery.h5validate.js / orefalo
                    "regex": /^([\+][0-9]{1,3}[
\.\-])?([\(]{1}[0-9]{2,6}[\)])?([0-9 \.\-\/]{3,20})((x|ext|extension)[
]?[0-9]{1,4})?$/,
                    "alertText": "* شماره تلفن
معتبر وارد کنید"
                },
                "email": {
                    // Shamelessly lifted from Scott Gonzalez via the
Bassistance Validation plugin
http://projects.scottsplayground.com/email_address_validation/
                    "regex":
/^((([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,
                    "alertText": "* نشانی
الکترونیکی معتبر وارد کنید"
                },
                "integer": {
                    "regex": /^[\-\+]?\d+$/,
                    "alertText": "* عدد معتبر
وارد کنید"
                },
                "number": {
                    // Number, including positive, negative, and floating
decimal. credit: orefalo
                    "regex":
/^[\-\+]?((([0-9]{1,3})([,][0-9]{3})*)|([0-9]+))?([\.]([0-9]+))?$/,
                    "alertText": "* عدد اعشاری
معتبر وارد کنید"
                },
                "date": {
                    "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/,
                    "alertText": "* تاریخ باید به
شکل سال/ماه/روز"
                },
                "ipv4": {
                    "regex":
/^((([01]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))[.]){3}(([0-1]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))$/,
                    "alertText": "* IP معتبر وارد
کنید"
                },
                "url": {
                    "regex":
/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([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])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,
                    "alertText": "* نشانی معتبر
وارد کنید"
                },
                "onlyNumberSp": {
                    "regex": /^[0-9\ ]+$/,
                    "alertText": "* فقط اعداد"
                },
                "onlyLetterSp": {
                    "regex": /^[a-zA-Z\ \']+$/,
                    "alertText": "* فقط حروف
انگلیسی"
                },
                "onlyLetterNumber": {
                    "regex": /^[0-9a-zA-Z]+$/,
                    "alertText": "* فقط اعداد و
حروف انگلیسی وارد کنید"
                },
                // --- CUSTOM RULES -- Those are specific to the demos,
they can be removed or changed to your likings
                "ajaxUserCall": {
                    "url": "ajaxValidateFieldUser",
                    // you may want to pass extra data on the ajax call
                    "extraData": "name=eric",
                    "alertText": "* این
نام‌کاربری تکراری است",
                    "alertTextLoad": "* درحال
اعتبار سنجی، لطفا صبر کنید"
                },
				"ajaxUserCallPhp": {
                    "url":
"phpajax/ajaxValidateFieldUser.php",
                    // you may want to pass extra data on the ajax call
                    "extraData": "name=eric",
                    // if you provide an "alertTextOk", it will
show as a green prompt when the field validates
                    "alertTextOk": "* این نام
کاربری آزاد است",
                    "alertText": "* این
نام‌کاربری تکراری است",
                    "alertTextLoad": "* درحال
اعتبار سنجی، لطفا صبر کنید"
                },
                "ajaxNameCall": {
                    // remote json service location
                    "url": "ajaxValidateFieldName",
                    // error
                    "alertText": "* این نام
پیش‌تر ثبت شده است",
                    // if you provide an "alertTextOk", it will
show as a green prompt when the field validates
                    "alertTextOk": "* این نام آزاد
است",
                    // speaks by itself
                    "alertTextLoad": "* درحال
اعتبار سنجی، لطفا صبر کنید"
                },
				 "ajaxNameCallPhp": {
	                    // remote json service location
	                    "url":
"phpajax/ajaxValidateFieldName.php",
	                    // error
	                    "alertText": "* این نام
تکراری است",
	                    // speaks by itself
	                    "alertTextLoad": "* درحال
اعتبار سنجی، لطفا صبر کنید"
	                },
                "validate2fields": {
                    "alertText": "* لطفا مقدار
HELLO را وارد کنید"
                },
	            //tls warning:homegrown not fielded 
                "dateFormat":{
                    "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$|^(?:(?:(?:0?[13578]|1[02])(\/|-)31)|(?:(?:0?[1,3-9]|1[0-2])(\/|-)(?:29|30)))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(?:(?:0?[1-9]|1[0-2])(\/|-)(?:0?[1-9]|1\d|2[0-8]))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(0?2(\/|-)29)(\/|-)(?:(?:0[48]00|[13579][26]00|[2468][048]00)|(?:\d\d)?(?:0[48]|[2468][048]|[13579][26]))$/,
                    "alertText": "* تاریخ
نامعتبر"
                },
                //tls warning:homegrown not fielded 
				"dateTimeFormat": {
	                "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])\s+(1[012]|0?[1-9]){1}:(0?[1-5]|[0-6][0-9]){1}:(0?[0-6]|[0-6][0-9]){1}\s+(am|pm|AM|PM){1}$|^(?:(?:(?:0?[13578]|1[02])(\/|-)31)|(?:(?:0?[1,3-9]|1[0-2])(\/|-)(?:29|30)))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^((1[012]|0?[1-9]){1}\/(0?[1-9]|[12][0-9]|3[01]){1}\/\d{2,4}\s+(1[012]|0?[1-9]){1}:(0?[1-5]|[0-6][0-9]){1}:(0?[0-6]|[0-6][0-9]){1}\s+(am|pm|AM|PM){1})$/,
                    "alertText": "* تاریخ
نامعتبر است یا شکل معتبری ندارد",
                    "alertText2": "شکل‌های مورد
معتبر: ",
                    "alertText3": "mm/dd/yyyy hh:mm:ss AM|PM
or ", 
                    "alertText4": "yyyy-mm-dd hh:mm:ss
AM|PM"
	            }
            };
            
        }
    };

    $.validationEngineLanguage.newLang();
    
})(jQuery);PKe�[���"*js/languages/jquery.validationEngine-fi.jsnu�[���(function($){
    $.fn.validationEngineLanguage = function(){
    };
    $.validationEngineLanguage = {
        newLang: function(){
            $.validationEngineLanguage.allRules = {
                "required": { // Add your regex rules here, you
can take telephone as an example
                    "regex": "none",
                    "alertText": "*  Kenttä on
pakollinen",
                    "alertTextCheckboxMultiple": "* Yksi
valikoima, kiitos",
                    "alertTextCheckboxe": "* Tarkistusmerkki
on pakollinen"
                },
                "requiredInFunction": { 
                    "func": function(field, rules, i, options){
                        return (field.val() == "test") ? true :
false;
                    },
                    "alertText": "* Field must equal
test"
                },
                "minSize": {
                    "regex": "none",
                    "alertText": "* Vähintään ",
                    "alertText2": " merkkiä sallittu"
                },
                "maxSize": {
                    "regex": "none",
                    "alertText": "* Enintään ",
                    "alertText2": " merkkiä sallittu"
                },
                "min": {
                    "regex": "none",
                    "alertText": "* Vähittäisluku on
"
                },
                "max": {
                    "regex": "none",
                    "alertText": "* Enimmäisluku on "
                },
                "past": {
                    "regex": "none",
                    "alertText": "* Päivämäärä ennen
"
                },
                "future": {
                    "regex": "none",
                    "alertText": "* Päivämäärä jälkeen
"
                },	
                "maxCheckbox": {
                    "regex": "none",
                    "alertText": "* Enintään ",
                    "alertText2": " valikoimaa
sallittu"
                },
                "minCheckbox": {
                    "regex": "none",
                    "alertText": "* Valitse ",
                    "alertText2": " valikoima(a)"
                },
                "equals": {
                    "regex": "none",
                    "alertText": "* Kentät eivät
täsmää"
                },
                "creditCard": {
                    "regex": "none",
                    "alertText": "* Luottokortin numero ei
kelpaa"
                },
                "phone": {
                    // credit: jquery.h5validate.js / orefalo
                    "regex": /^([\+][0-9]{1,3}[
\.\-])?([\(]{1}[0-9]{2,6}[\)])?([0-9 \.\-\/]{3,20})((x|ext|extension)[
]?[0-9]{1,4})?$/,
                    "alertText": "* Viallinen
puhelinnumero"
                },
                "email": {
                    // Shamelessly lifted from Scott Gonzalez via the
Bassistance Validation plugin
http://projects.scottsplayground.com/email_address_validation/
                    "regex":
/^((([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,
                    "alertText": "* Viallinen
sähköpostiosoite"
                },
                "integer": {
                    "regex": /^[\-\+]?\d+$/,
                    "alertText": "* Sopimaton numero"
                },
                "number": {
                    // Number, including positive, negative, and floating
decimal. credit: orefalo
                    "regex":
/^[\-\+]?((([0-9]{1,3})([,][0-9]{3})*)|([0-9]+))?([\.]([0-9]+))?$/,
                    "alertText": "* Viallinen luku"
                },
                "date": {
                    "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/,
                    "alertText": "* Viallinen
päivämäärä. Päivämäärän  täytyy olla VVVV-KK-PP muodossa"
                },
                "ipv4": {
                    "regex":
/^((([01]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))[.]){3}(([0-1]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))$/,
                    "alertText": "* Viallinen
IP-osoite"
                },
                "url": {
                    "regex":
/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([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])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,
                    "alertText": "* Viallinen URL"
                },
                "onlyNumberSp": {
                    "regex": /^[0-9\ ]+$/,
                    "alertText": "* Ainostaan
numeroin"
                },
                "onlyLetterSp": {
                    "regex": /^[a-zA-Z\ \']+$/,
                    "alertText": "* Ainoastaan
kirjaimin"
                },
                "onlyLetterNumber": {
                    "regex": /^[0-9a-zA-Z]+$/,
                    "alertText": "* Erikoismerkit eivät ole
sallittuja"
                }
            };
            
        }
    };
    $.validationEngineLanguage.newLang();
})(jQuery);PKe�[����*js/languages/jquery.validationEngine-fr.jsnu�[���(function($){
    $.fn.validationEngineLanguage = function(){
    };
    $.validationEngineLanguage = {
        newLang: function(){
            $.validationEngineLanguage.allRules = {
                "required": {
                    "regex": "none",
                    "alertText": "* Ce champ est
requis",
                    "alertTextCheckboxMultiple": "* Choisir
une option",
                    "alertTextCheckboxe": "* Cette option
est requise"
                },
                "requiredInFunction": { 
                    "func": function(field, rules, i, options){
                        return (field.val() == "test") ? true :
false;
                    },
                    "alertText": "* Field must equal
test"
                },
               "minSize": {
                    "regex": "none",
                    "alertText": "* Minimum ",
                    "alertText2": " caractères
requis"
                },
				"groupRequired": {
                    "regex": "none",
                    "alertText": "* Vous devez remplir un
des champs suivant"
                },
                "maxSize": {
                    "regex": "none",
                    "alertText": "* Maximum ",
                    "alertText2": " caractères
requis"
                },
		        "min": {
                    "regex": "none",
                    "alertText": "* Valeur minimum requise
"
                },
                "max": {
                    "regex": "none",
                    "alertText": "* Valeur maximum requise
"
                },
		        "past": {
                    "regex": "none",
                    "alertText": "* Date antérieure au
"
                },
                "future": {
                    "regex": "none",
                    "alertText": "* Date postérieure au
"
                },
                "maxCheckbox": {
                    "regex": "none",
                    "alertText": "* Nombre max de choix
excédé"
                },
                "minCheckbox": {
                    "regex": "none",
                    "alertText": "* Veuillez choisir
",
                    "alertText2": " options"
                },
                "equals": {
                    "regex": "none",
                    "alertText": "* Votre champ n'est
pas identique"
                },
                "creditCard": {
                    "regex": "none",
                    "alertText": "* Numéro de carte
bancaire valide"
                },
                "phone": {
                    // credit: jquery.h5validate.js / orefalo
                    "regex": /^([\+][0-9]{1,3}[
\.\-])?([\(]{1}[0-9]{2,6}[\)])?([0-9 \.\-\/]{3,20})((x|ext|extension)[
]?[0-9]{1,4})?$/,
                    "alertText": "* Numéro de téléphone
invalide"
                },
                "email": {
                    // Shamelessly lifted from Scott Gonzalez via the
Bassistance Validation plugin
http://projects.scottsplayground.com/email_address_validation/
                    "regex":
/^((([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,
                    "alertText": "* Adresse email
invalide"
                },
                "integer": {
                    "regex": /^[\-\+]?\d+$/,
                    "alertText": "* Nombre entier
invalide"
                },
                "number": {
                    // Number, including positive, negative, and floating
decimal. credit: orefalo
                    "regex":
/^[\-\+]?((([0-9]{1,3})([,][0-9]{3})*)|([0-9]+))?([\.]([0-9]+))?$/,
                    "alertText": "* Nombre flottant
invalide"
                },
                "date": {
                    "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/,
                    "alertText": "* Date invalide, format
YYYY-MM-DD requis"
                },
                "ipv4": {
                	"regex":
/^((([01]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))[.]){3}(([0-1]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))$/,
                    "alertText": "* Adresse IP
invalide"
                },
                "url": {
                    "regex":
/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([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])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,
                    "alertText": "* URL invalide"
                },
                "onlyNumberSp": {
                    "regex": /^[0-9\ ]+$/,
                    "alertText": "* Seuls les chiffres sont
acceptés"
                },
                "onlyLetterSp": {
                    "regex":
/^[a-zA-Z\u00C0-\u00D6\u00D9-\u00F6\u00F9-\u00FD\ \']+$/,
                    "alertText": "* Seules les lettres sont
acceptées"
                },
                "onlyLetterNumber": {
                    "regex":
/^[0-9a-zA-Z\u00C0-\u00D6\u00D9-\u00F6\u00F9-\u00FD]+$/,
                    "alertText": "* Aucun caractère
spécial n'est accepté"
                },
				// --- CUSTOM RULES -- Those are specific to the demos, they can be
removed or changed to your likings
                "ajaxUserCall": {
                    "url": "ajaxValidateFieldUser",
                    "extraData": "name=eric",
                    "alertTextLoad": "* Chargement, veuillez
attendre",
                    "alertText": "* Ce nom est déjà
pris"
                },
                "ajaxNameCall": {
                    "url": "ajaxValidateFieldName",
                    "alertText": "* Ce nom est déjà
pris",
                    "alertTextOk": "*Ce nom est
disponible",
                    "alertTextLoad": "* Chargement, veuillez
attendre"
                },
                "validate2fields": {
                    "alertText": "Veuillez taper le mot
HELLO"
                }
            };
        }
    };
    $.validationEngineLanguage.newLang();
})(jQuery);PKe�[0��=�*�**js/languages/jquery.validationEngine-hr.jsnu�[���(function($){
    $.fn.validationEngineLanguage = function(){
    };
    $.validationEngineLanguage = {
        newLang: function(){
            $.validationEngineLanguage.allRules = {
                "required": { // Add your regex rules here, you
can take telephone as an example
                    "regex": "none",
                    "alertText": "* Ovo polje je
obavezno",
                    "alertTextCheckboxMultiple": "* Molimo
odaberite opciju",
                    "alertTextCheckboxe": "* Ovaj odabir je
obavezan",
                    "alertTextDateRange": "* Oba datuma su
obavezna"
                },
                "requiredInFunction": { 
                    "func": function(field, rules, i, options){
                        return (field.val() == "test") ? true :
false;
                    },
                    "alertText": "* Field must equal
test"
                },
                "dateRange": {
                    "regex": "none",
                    "alertText": "* Greška ",
                    "alertText2": "Raspon datuma"
                },
                "dateTimeRange": {
                    "regex": "none",
                    "alertText": "* Greška ",
                    "alertText2": "Raspon vremena i
datuma"
                },
                "minSize": {
                    "regex": "none",
                    "alertText": "* Minimalno ",
                    "alertText2": " dozvoljenih
znakova"
                },
                "maxSize": {
                    "regex": "none",
                    "alertText": "* Maksimalno ",
                    "alertText2": " dozvoljenih
znakova"
                },
				"groupRequired": {
                    "regex": "none",
                    "alertText": "* Morate popuniti jedno od
obaveznih polja"
                },
                "min": {
                    "regex": "none",
                    "alertText": "* Minimalna vrijednost je
"
                },
                "max": {
                    "regex": "none",
                    "alertText": "* Maksimalna vrijednost je
"
                },
                "past": {
                    "regex": "none",
                    "alertText": "* Datum raniji od "
                },
                "future": {
                    "regex": "none",
                    "alertText": "* Datum nakon "
                },
                "maxCheckbox": {
                    "regex": "none",
                    "alertText": "* Maksimalno ",
                    "alertText2": " dozvoljenih
opcija"
                },
                "minCheckbox": {
                    "regex": "none",
                    "alertText": "* Molimo odaberite
",
                    "alertText2": " opcija"
                },
                "equals": {
                    "regex": "none",
                    "alertText": "* Polja se ne
podudaraju"
                },
                "creditCard": {
                    "regex": "none",
                    "alertText": "* Neispravan broj kreditne
kartice"
                },
                "phone": {
                    // credit: jquery.h5validate.js / orefalo
                    "regex": /^([\+][0-9]{1,3}[
\.\-])?([\(]{1}[0-9]{2,6}[\)])?([0-9 \.\-\/]{3,20})((x|ext|extension)[
]?[0-9]{1,4})?$/,
                    "alertText": "* Pogrešan unos
telefonskog broja"
                },
                "email": {
                    // Shamelessly lifted from Scott Gonzalez via the
Bassistance Validation plugin
http://projects.scottsplayground.com/email_address_validation/
                    "regex":
/^((([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,
                    "alertText": "* Neispravna email
adresa"
                },
                "integer": {
                    "regex": /^[\-\+]?\d+$/,
                    "alertText": "* Neispravno unesen
broj"
                },
                "number": {
                    // Number, including positive, negative, and floating
decimal. credit: orefalo
                    "regex":
/^[\-\+]?((([0-9]{1,3})([,][0-9]{3})*)|([0-9]+))?([\.]([0-9]+))?$/,
                    "alertText": "* Neispravan broj sa
pomičnim zarezom"
                },
                "date": {
                    "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/,
                    "alertText": "* Neispravan unos datuma,
ispravan format je GGGG-MM-DD"
                },
                "ipv4": {
                    "regex":
/^((([01]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))[.]){3}(([0-1]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))$/,
                    "alertText": "* neispravna IP
adresa"
                },
                "url": {
                    "regex":
/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([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])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,
                    "alertText": "* Neispravan URL"
                },
                "onlyNumberSp": {
                    "regex": /^[0-9\ ]+$/,
                    "alertText": "* Dozvoljeni su samo
brojevi"
                },
                "onlyLetterSp": {
                    "regex": /^[a-zA-Z\ \']+$/,
                    "alertText": "* Dozvoljena su samo
slova"
                },
                "onlyLetterNumber": {
                    "regex": /^[0-9a-zA-Z]+$/,
                    "alertText": "* Nisu dozvoljeni
specijalni znakovi"
                },
                // --- CUSTOM RULES -- Those are specific to the demos,
they can be removed or changed to your likings
                "ajaxUserCall": {
                    "url": "ajaxValidateFieldUser",
                    // you may want to pass extra data on the ajax call
                    "extraData": "name=eric",
                    "alertText": "* This user is already
taken",
                    "alertTextLoad": "* Validating, please
wait"
                },
				"ajaxUserCallPhp": {
                    "url":
"phpajax/ajaxValidateFieldUser.php",
                    // you may want to pass extra data on the ajax call
                    "extraData": "name=eric",
                    // if you provide an "alertTextOk", it will
show as a green prompt when the field validates
                    "alertTextOk": "* This username is
available",
                    "alertText": "* This user is already
taken",
                    "alertTextLoad": "* Validating, please
wait"
                },
                "ajaxNameCall": {
                    // remote json service location
                    "url": "ajaxValidateFieldName",
                    // error
                    "alertText": "* This name is already
taken",
                    // if you provide an "alertTextOk", it will
show as a green prompt when the field validates
                    "alertTextOk": "* This name is
available",
                    // speaks by itself
                    "alertTextLoad": "* Validating, please
wait"
                },
				 "ajaxNameCallPhp": {
	                    // remote json service location
	                    "url":
"phpajax/ajaxValidateFieldName.php",
	                    // error
	                    "alertText": "* This name is already
taken",
	                    // speaks by itself
	                    "alertTextLoad": "* Validating, please
wait"
	                },
                "validate2fields": {
                    "alertText": "* Please input
HELLO"
                },
	            //tls warning:homegrown not fielded
                "dateFormat":{
                    "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$|^(?:(?:(?:0?[13578]|1[02])(\/|-)31)|(?:(?:0?[1,3-9]|1[0-2])(\/|-)(?:29|30)))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(?:(?:0?[1-9]|1[0-2])(\/|-)(?:0?[1-9]|1\d|2[0-8]))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(0?2(\/|-)29)(\/|-)(?:(?:0[48]00|[13579][26]00|[2468][048]00)|(?:\d\d)?(?:0[48]|[2468][048]|[13579][26]))$/,
                    "alertText": "* Neispravan datum"
                },
                //tls warning:homegrown not fielded
				"dateTimeFormat": {
	                "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])\s+(1[012]|0?[1-9]){1}:(0?[1-5]|[0-6][0-9]){1}:(0?[0-6]|[0-6][0-9]){1}\s+(am|pm|AM|PM){1}$|^(?:(?:(?:0?[13578]|1[02])(\/|-)31)|(?:(?:0?[1,3-9]|1[0-2])(\/|-)(?:29|30)))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^((1[012]|0?[1-9]){1}\/(0?[1-9]|[12][0-9]|3[01]){1}\/\d{2,4}\s+(1[012]|0?[1-9]){1}:(0?[1-5]|[0-6][0-9]){1}:(0?[0-6]|[0-6][0-9]){1}\s+(am|pm|AM|PM){1})$/,
                    "alertText": "* Neispravan format
datuma",
                    "alertText2": "Očekivani format:
",
                    "alertText3": "mm/dd/gggg hh:mm:ss ili
",
                    "alertText4": "gggg-mm-dd hh:mm:ss
"
	            }
            };

        }
    };
    $.validationEngineLanguage.newLang();
})(jQuery);PKe�[�W�D((*js/languages/jquery.validationEngine-hu.jsnu�[���(function($){
    $.fn.validationEngineLanguage = function(){
    };
    $.validationEngineLanguage = {
        newLang: function(){
            $.validationEngineLanguage.allRules = {
                "required": { // Add your regex rules here, you
can take telephone as an example
                    "regex": "none",
                    "alertText": "* Ezt a mezőt ki kell
tölteni",
                    "alertTextCheckboxMultiple": "* Kérem
válasszon egy opciót",
                    "alertTextCheckboxe": "* Ez az opció be
kell legyen jelölve",
                    "alertTextDateRange": "* Mindkét dátum
mezőt ki kell tölteni"
                },
                "requiredInFunction": { 
                    "func": function(field, rules, i, options){
                        return (field.val() == "test") ? true :
false;
                    },
                    "alertText": "* Field must equal
test"
                },
                "dateRange": {
                    "regex": "none",
                    "alertText": "* Érvénytelen ",
                    "alertText2": "Dátum tartomány"
                },
                "dateTimeRange": {
                    "regex": "none",
                    "alertText": "* Érvénytelen ",
                    "alertText2": "Dátum-idő
tartomány"
                },
                "minSize": {
                    "regex": "none",
                    "alertText": "* Minimum ",
                    "alertText2": " karakter kell
legyen"
                },
                "maxSize": {
                    "regex": "none",
                    "alertText": "* Maximum ",
                    "alertText2": " karakter lehet"
                },
				"groupRequired": {
                    "regex": "none",
                    "alertText": "* Az alábbi mezők
valamelyikét ki kell tölteni"
                },
                "min": {
                    "regex": "none",
                    "alertText": "* A minimum érték
"
                },
                "max": {
                    "regex": "none",
                    "alertText": "* A maximum érték
"
                },
                "past": {
                    "regex": "none",
                    "alertText": "* Dátum ez előtt "
                },
                "future": {
                    "regex": "none",
                    "alertText": "* Dátum ez után "
                },	
                "maxCheckbox": {
                    "regex": "none",
                    "alertText": "* Maximum ",
                    "alertText2": " opció lehet
bejelölve"
                },
                "minCheckbox": {
                    "regex": "none",
                    "alertText": "* Kérjük válasszon
",
                    "alertText2": " opciót"
                },
                "equals": {
                    "regex": "none",
                    "alertText": "* A mezők nem
egyeznek"
                },
                "creditCard": {
                    "regex": "none",
                    "alertText": "* Érvénytelen
kártyaszám"
                },
                "phone": {
                    // credit: jquery.h5validate.js / orefalo
                    "regex": /^([\+][0-9]{1,3}[\
\.\-])?([\(]{1}[0-9]{2,6}[\)])?([0-9\ \.\-\/]{3,20})((m|mell|mellék)[\
]?[0-9]{1,4})?$/,
                    "alertText": "* Érvénytelen
telefonszám"
                },
                "email": {
                    // HTML5 compatible email regex (
http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#
   e-mail-state-%28type=email%29 )
                    "regex":
/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/,
                    "alertText": "* Hibás E-mail
cím"
                },
                "integer": {
                    "regex": /^[\-\+]?\d+$/,
                    "alertText": "* Nem érvényes (egész)
szám"
                },
                "number": {
                    // Number, including positive, negative, and floating
decimal. credit: orefalo
                    "regex":
/^[\-\+]?((([0-9]{1,3})([,][0-9]{3})*)|([0-9]+))?([\.]([0-9]+))?$/,
                    "alertText": "* Érvénytelen
szám"
                },
                "date": {
                    "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/,
                    "alertText": "* Érvénytelen dátum,
ÉÉÉÉ-HH-NN formátumban kell megadni"
                },
                "ipv4": {
                    "regex":
/^((([01]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))[.]){3}(([0-1]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))$/,
                    "alertText": "* Érvénytelen IP
cím"
                },
                "url": {
                    "regex":
/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([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])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,
                    "alertText": "* Érvénytelen URL"
                },
                "onlyNumberSp": {
                    "regex": /^[0-9\ ]+$/,
                    "alertText": "* Csak számokat"
                },
                "onlyLetterSp": {
                    "regex": /^[a-zA-Z\ \']+$/,
                    "alertText": "* Csak betűket"
                },
                "onlyLetterNumber": {
                    "regex": /^[0-9a-zA-Z]+$/,
                    "alertText": "* Spéci karakterek nem
engedélyezettek"
                },
                // --- CUSTOM RULES -- Those are specific to the demos,
they can be removed or changed to your likings
                "ajaxUserCall": {
                    "url": "ajaxValidateFieldUser",
                    // you may want to pass extra data on the ajax call
                    "extraData": "name=eric",
                    "alertText": "* This user is already
taken",
                    "alertTextLoad": "* Validating, please
wait"
                },
				"ajaxUserCallPhp": {
                    "url":
"phpajax/ajaxValidateFieldUser.php",
                    // you may want to pass extra data on the ajax call
                    "extraData": "name=eric",
                    // if you provide an "alertTextOk", it will
show as a green prompt when the field validates
                    "alertTextOk": "* This username is
available",
                    "alertText": "* This user is already
taken",
                    "alertTextLoad": "* Validating, please
wait"
                },
                "ajaxNameCall": {
                    // remote json service location
                    "url": "ajaxValidateFieldName",
                    // error
                    "alertText": "* This name is already
taken",
                    // if you provide an "alertTextOk", it will
show as a green prompt when the field validates
                    "alertTextOk": "* This name is
available",
                    // speaks by itself
                    "alertTextLoad": "* Validating, please
wait"
                },
				 "ajaxNameCallPhp": {
	                    // remote json service location
	                    "url":
"phpajax/ajaxValidateFieldName.php",
	                    // error
	                    "alertText": "* This name is already
taken",
	                    // speaks by itself
	                    "alertTextLoad": "* Validating, please
wait"
	                },
                "validate2fields": {
                    "alertText": "* Please input
HELLO"
                },
	            //tls warning:homegrown not fielded 
                "dateFormat":{
                    "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$|^(?:(?:(?:0?[13578]|1[02])(\/|-)31)|(?:(?:0?[1,3-9]|1[0-2])(\/|-)(?:29|30)))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(?:(?:0?[1-9]|1[0-2])(\/|-)(?:0?[1-9]|1\d|2[0-8]))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(0?2(\/|-)29)(\/|-)(?:(?:0[48]00|[13579][26]00|[2468][048]00)|(?:\d\d)?(?:0[48]|[2468][048]|[13579][26]))$/,
                    "alertText": "* Invalid Date"
                },
                //tls warning:homegrown not fielded 
				"dateTimeFormat": {
	                "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])\s+(1[012]|0?[1-9]){1}:(0?[1-5]|[0-6][0-9]){1}:(0?[0-6]|[0-6][0-9]){1}\s+(am|pm|AM|PM){1}$|^(?:(?:(?:0?[13578]|1[02])(\/|-)31)|(?:(?:0?[1,3-9]|1[0-2])(\/|-)(?:29|30)))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^((1[012]|0?[1-9]){1}\/(0?[1-9]|[12][0-9]|3[01]){1}\/\d{2,4}\s+(1[012]|0?[1-9]){1}:(0?[1-5]|[0-6][0-9]){1}:(0?[0-6]|[0-6][0-9]){1}\s+(am|pm|AM|PM){1})$/,
                    "alertText": "* Invalid Date or Date
Format",
                    "alertText2": "Expected Format: ",
                    "alertText3": "mm/dd/yyyy hh:mm:ss AM|PM
or ", 
                    "alertText4": "yyyy-mm-dd hh:mm:ss
AM|PM"
	            }
            };
            
        }
    };

    $.validationEngineLanguage.newLang();
    
})(jQuery);
PKe�[eg5L��*js/languages/jquery.validationEngine-it.jsnu�[���(function($){
    $.fn.validationEngineLanguage = function(){};
    $.validationEngineLanguage = {
        newLang: function(){
            $.validationEngineLanguage.allRules = {
                "required": { // Add your regex rules here, you
can take telephone as an example
                    "regex": "none",
                    "alertText": "* Campo richiesto",
                    "alertTextCheckboxMultiple": "* Per
favore selezionare un'opzione",
                    "alertTextCheckboxe": "* E'
richiesta la selezione della casella"
                },
                "requiredInFunction": { 
                    "func": function(field, rules, i, options){
                        return (field.val() == "test") ? true :
false;
                    },
                    "alertText": "* Field must equal
test"
                },
                "length": {
                    "regex": "none",
                    "alertText": "* Fra ",
                    "alertText2": " e ",
                    "alertText3": " caratteri
permessi"
                },
                "maxCheckbox": {
                    "regex": "none",
                    "alertText": "* Numero di caselle da
selezionare in eccesso"
                },
				"groupRequired": {
                    "regex": "none",
                    "alertText": "* You must fill one of the
following fields"
                },
                "minCheckbox": {
                    "regex": "none",
                    "alertText": "* Per favore selezionare
",
                    "alertText2": " opzioni"
                },
                "equals": {
                    "regex": "none",
                    "alertText": "* I campi non
corrispondono"
                },
                "creditCard": {
                    "regex": "none",
                    "alertText": "* Non valido numero di
carta di credito"
                },
                "phone": {
                    // credit: jquery.h5validate.js / orefalo
                    "regex": /^([\+][0-9]{1,3}[
\.\-])?([\(]{1}[0-9]{2,6}[\)])?([0-9 \.\-\/]{3,20})((x|ext|extension)[
]?[0-9]{1,4})?$/,
                    "alertText": "* Numero di telefono non
corretto"
                },
                "email": {
                    // Shamelessly lifted from Scott Gonzalez via the
Bassistance Validation plugin
http://projects.scottsplayground.com/email_address_validation/
                    "regex":
/^((([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,
                    "alertText": "* Indirizzo non
corretto"
                },
                "integer": {
                    "regex": /^[\-\+]?\d+$/,
                    "alertText": "* Numero intero non
corretto"
                },
                "number": {
                    // Number, including positive, negative, and floating
decimal. Credit: bassistance
                    "regex":
/^[\-\+]?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)$/,
                    "alertText": "* Numero decimale non
corretto"
                },
                "date": {
                    "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/,
                    "alertText": "* Data non  corretta,
re-inserire secondo formato AAAA-MM-GG"
                },
                
                "ipv4": {
                	"regex":
/^((([01]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))[.]){3}(([0-1]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))$/,
                    "alertText": "* IP non corretto"
                },
                "url": {
                    "regex":
/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([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])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,
                    "alertText": "* URL non corretta"
                },
                "onlyNumber": {
                    "regex": /^[0-9\ ]+$/,
                    "alertText": "* Solo numeri"
                },
				"onlyLetter": {
                    "regex": /^[a-zA-Z\ \']+$/,
                    "alertText": "* Solo lettere"
                },
                "validate2fields": {
                    "nname": "validate2fields",
                    "alertText": "* Occorre inserire nome e
cognome"
                },
                "noSpecialCharacters": {
                    "regex": /^[0-9a-zA-Z]+$/,
                    "alertText": "* Caratteri speciali non
permessi"
                },
                "ajaxUserCall": {
                    "file": "ajaxValidateFieldName",
                    "extraData": "name=eric",
                    "alertTextLoad": "* Caricamento,
attendere per favore",
                    "alertText": "* Questo user � gi�
stato utilizzato"
                },
                "ajaxNameCall": {
                    "file": "ajaxValidateFieldName",
                    "alertText": "* Questo nome � gi�
stato utilizzato",
                    "alertTextOk": "* Questo nome �
disponibile",
                    "alertTextLoad": "* Caricamento,
attendere per favore"
                }

            };
            
        }
    };
    $.validationEngineLanguage.newLang();
})(jQuery);PKe�[S=�08#8#*js/languages/jquery.validationEngine-ja.jsnu�[���;/*****************************************************************
 * Japanese language file for jquery.validationEngine.js (ver2.0)
 *
 * Transrator: tomotomo ( Tomoyuki SUGITA )
 * http://tomotomoSnippet.blogspot.com/
 * Licenced under the MIT Licence
 *******************************************************************/
(function($){
    $.fn.validationEngineLanguage = function(){
    };
    $.validationEngineLanguage = {
        newLang: function(){
            $.validationEngineLanguage.allRules = {
                "required": { // Add your regex rules here, you
can take telephone as an example
                    "regex": "none",
                    "alertText": "*
必須項目です",
                    "alertTextCheckboxMultiple": "*
選択してください",
                    "alertTextCheckboxe": "*
チェックボックスをチェックしてください"
                },
                "requiredInFunction": { 
                    "func": function(field, rules, i, options){
                        return (field.val() == "test") ? true :
false;
                    },
                    "alertText": "* Field must equal
test"
                },
                "minSize": {
                    "regex": "none",
                    "alertText": "* ",
                    "alertText2":
"文字以上にしてください"
                },
				"groupRequired": {
                    "regex": "none",
                    "alertText": "* You must fill one of the
following fields"
                },
                "maxSize": {
                    "regex": "none",
                    "alertText": "* ",
                    "alertText2":
"文字以下にしてください"
                },
                "min": {
                    "regex": "none",
                    "alertText": "* ",
                    "alertText2": "
以上の数値にしてください"
                },
                "max": {
                    "regex": "none",
                    "alertText": "* ",
                    "alertText2": "
以下の数値にしてください"
                },
                "past": {
                    "regex": "none",
                    "alertText": "* ",
                    "alertText2": "
より過去の日付にしてください"
                },
                "future": {
                    "regex": "none",
                    "alertText": "* ",
                    "alertText2": "
より最近の日付にしてください"
                },	
                "maxCheckbox": {
                    "regex": "none",
                    "alertText": "*
チェックしすぎです"
                },
                "minCheckbox": {
                    "regex": "none",
                    "alertText": "* ",
                    "alertText2":
"つ以上チェックしてください"
                },
                "equals": {
                    "regex": "none",
                    "alertText": "*
入力された値が一致しません"
                },
                "creditCard": {
                    "regex": "none",
                    "alertText": "*
無効なクレジットカード番号"
                },
                "phone": {
                    // credit: jquery.h5validate.js / orefalo
                    "regex": /^([\+][0-9]{1,3}[
\.\-])?([\(]{1}[0-9]{2,6}[\)])?([0-9 \.\-\/]{3,20})((x|ext|extension)[
]?[0-9]{1,4})?$/,
                    "alertText": "*
電話番号が正しくありません"
                },
                "email": {
                    // Shamelessly lifted from Scott Gonzalez via the
Bassistance Validation plugin
http://projects.scottsplayground.com/email_address_validation/
                    "regex":
/^((([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,
                    "alertText": "*
メールアドレスが正しくありません"
                },
                "integer": {
                    "regex": /^[\-\+]?\d+$/,
                    "alertText": "*
整数を半角で入力してください"
                },
                "number": {
                    // Number, including positive, negative, and floating
decimal. credit: orefalo
                    "regex":
/^[\-\+]?((([0-9]{1,3})([,][0-9]{3})*)|([0-9]+))?([\.]([0-9]+))?$/,
                    "alertText": "*
数値を半角で入力してください"
                },
                "date": {
                    "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/,
                    "alertText": "* 日付は半角で
YYYY-MM-DD の形式で入力してください"
                },
                "ipv4": {
                	"regex":
/^((([01]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))[.]){3}(([0-1]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))$/,
                    "alertText": "*
IPアドレスが正しくありません"
                },
                "url": {
                    "regex":
/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([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])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,
                    "alertText": "*
URLが正しくありません"
                },
                "onlyNumberSp": {
                    "regex": /^[0-9\ ]+$/,
                    "alertText": "*
半角数字で入力してください"
                },
                "onlyLetterSp": {
                    "regex": /^[a-zA-Z\ \']+$/,
                    "alertText": "*
半角アルファベットで入力してください"
                },
                "onlyLetterNumber": {
                    "regex": /^[0-9a-zA-Z]+$/,
                    "alertText": "*
半角英数で入力してください"
                },
                // --- CUSTOM RULES -- Those are specific to the demos,
they can be removed or changed to your likings
                "ajaxUserCall": {
                    "url": "ajaxValidateFieldUser",
                    // you may want to pass extra data on the ajax call
                    "extraData": "name=eric",
                    "alertText": "* This user is already
taken",
                    "alertTextLoad": "* Validating, please
wait"
                },
                "ajaxNameCall": {
                    // remote json service location
                    "url": "ajaxValidateFieldName",
                    // error
                    "alertText": "* This name is already
taken",
                    // if you provide an "alertTextOk", it will
show as a green prompt when the field validates
                    "alertTextOk": "* This name is
available",
                    // speaks by itself
                    "alertTextLoad": "* Validating, please
wait"
                },
                "validate2fields": {
                    "alertText": "*
『HELLO』と入力してください"
                }
            };
            
        }
    };
    $.validationEngineLanguage.newLang();
})(jQuery);


    
PKe�[kb��xx*js/languages/jquery.validationEngine-nl.jsnu�[���(function($){
	$.fn.validationEngineLanguage = function(){
	};
	$.validationEngineLanguage = {
	    newLang: function(){
	        $.validationEngineLanguage.allRules = {
	            "required": { // Add your regex rules here, you can
take telephone as an example
	                "regex": "geen",
	                "alertText": "* Dit veld is
verplicht",
	                "alertTextCheckboxMultiple": "* Selecteer
a.u.b. een optie",
	                "alertTextCheckboxe": "* Dit selectievakje
is verplicht"
	            },
	            "requiredInFunction": { 
                    "func": function(field, rules, i, options){
                        return (field.val() == "test") ? true :
false;
                    },
                    "alertText": "* Field must equal
test"
                	    },
	            "minSize": {
	                "regex": "none",
	                "alertText": "* Minimaal ",
	                "alertText2": " karakters toegestaan"
	            },
	            "maxSize": {
	                "regex": "none",
	                "alertText": "* Maximaal ",
	                "alertText2": " karakters toegestaan"
	            },
				"groupRequired": {
                    "regex": "none",
                    "alertText": "* You must fill one of the
following fields"
                },
	            "min": {
	                "regex": "none",
	                "alertText": "* Minimale waarde is "
	            },
	            "max": {
	                "regex": "none",
	                "alertText": "* Maximale waarde is "
	            },
	            "past": {
	                "regex": "none",
	                "alertText": "* Datum voorafgaand aan
"
	            },
	            "future": {
	                "regex": "none",
	                "alertText": "* Datum na "
	            },
	            "maxCheckbox": {
	                "regex": "none",
	                "alertText": "* Toegestane aantal vinkjes
overschreden"
	            },
	            "minCheckbox": {
	                "regex": "none",
	                "alertText": "* Selecteer a.u.b. ",
	                "alertText2": " opties"
	            },
	            "equals": {
	                "regex": "none",
	                "alertText": "* Velden komen niet
overeen"
	            },
                "creditCard": {
                    "regex": "none",
                    "alertText": "* Ongeldige credit card
nummer"
                },
	            "phone": {
	                // credit: jquery.h5validate.js / orefalo
	                "regex": /^([\+][0-9]{1,3}[
\.\-])?([\(]{1}[0-9]{2,6}[\)])?([0-9 \.\-\/]{3,20})((x|ext|extension)[
]?[0-9]{1,4})?$/,
	                "alertText": "* Ongeldig
telefoonnummer"
	            },
	            "email": {
	                // Shamelessly lifted from Scott Gonzalez via the
Bassistance Validation plugin
http://projects.scottsplayground.com/email_address_validation/
	                "regex":
/^((([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,
	                "alertText": "* Ongeldig e-mailadres"
	            },
	            "integer": {
	                "regex": /^[\-\+]?\d+$/,
	                "alertText": "* Ongeldig geheel
getal"
	            },
	            "number": {
	                // Number, including positive, negative, and floating
decimal. credit: orefalo
	                "regex":
/^[\-\+]?((([0-9]{1,3})([,][0-9]{3})*)|([0-9]+))?([\.]([0-9]+))?$/,
	                "alertText": "* Ongeldig drijvende comma
getal"
	            },
	            "date": {
	                "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/,
	                "alertText": "* Ongeldige datum, formaat
moet JJJJ-MM-DD zijn"
	            },
	            "ipv4": {
	            	"regex":
/^((([01]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))[.]){3}(([0-1]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))$/,
	                "alertText": "* Ongeldig IP-adres"
	            },
	            "url": {
                    "regex":
/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([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])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,
	                "alertText": "* Ongeldige URL"
	            },
	            "onlyNumberSp": {
	                "regex": /^[0-9\ ]+$/,
	                "alertText": "* Alleen cijfers"
	            },
	            "onlyLetterSp": {
	                "regex": /^[a-zA-Z\ \']+$/,
	                "alertText": "* Alleen leestekens"
	            },
	            "onlyLetterNumber": {
	                "regex": /^[0-9a-zA-Z]+$/,
	                "alertText": "* Geen vreemde tekens
toegestaan"
	            },
	            // --- CUSTOM RULES -- Those are specific to the demos, they
can be removed or changed to your likings
	            "ajaxUserCall": {
	                "url": "ajaxValidateFieldUser",
	                // you may want to pass extra data on the ajax call
	                "extraData": "name=eric",
	                "alertText": "* Deze gebruiker bestaat
al",
	                "alertTextLoad": "* Bezig met valideren,
even geduld aub"
	            },
	            "ajaxNameCall": {
	                // remote json service location
	                "url": "ajaxValidateFieldName",
	                // error
	                "alertText": "* Deze naam bestaat
al",
	                // if you provide an "alertTextOk", it will show
as a green prompt when the field validates
	                "alertTextOk": "* Deze naam is
beschikbaar",
	                // speaks by itself
	                "alertTextLoad": "* Bezig met valideren,
even geduld aub"
	            },
	            "validate2fields": {
	                "alertText": "* Voer aub HELLO in"
	            }
	        };

	    }
	};
	$.validationEngineLanguage.newLang();
})(jQuery);

PKe�[��ն)�)*js/languages/jquery.validationEngine-no.jsnu�[���(function($){
    $.fn.validationEngineLanguage = function(){
    };
    $.validationEngineLanguage = {
        newLang: function(){
            $.validationEngineLanguage.allRules = {
                "required": { // Add your regex rules here, you
can take telephone as an example
                    "regex": "none",
                    "alertText": "* Dette feltet er
påkrevd",
                    "alertTextCheckboxMultiple": "* Velg et
alternativ",
                    "alertTextCheckboxe": "* Denne boksen er
påkrevd",
                    "alertTextDateRange": "* Begge datofelt
må fylles ut"
                },
                "requiredInFunction": { 
                    "func": function(field, rules, i, options){
                        return (field.val() == "test") ? true :
false;
                    },
                    "alertText": "* Feltet må være lik
test"
                },
                "dateRange": {
                    "regex": "none",
                    "alertText": "* Ugyldig ",
                    "alertText2": "Datointervall"
                },
                "dateTimeRange": {
                    "regex": "none",
                    "alertText": "* Ugyldig ",
                    "alertText2": "Tidsintervall"
                },
                "minSize": {
                    "regex": "none",
                    "alertText": "* Minimum ",
                    "alertText2": " bokstaver tillatt"
                },
                "maxSize": {
                    "regex": "none",
                    "alertText": "* Maksimalt ",
                    "alertText2": " bokstaver tillatt"
                },
				"groupRequired": {
                    "regex": "none",
                    "alertText": "* Du må fylle ett av de
følgende feltene"
                },
                "min": {
                    "regex": "none",
                    "alertText": "* Minimumsverdi er "
                },
                "max": {
                    "regex": "none",
                    "alertText": "* Maksimumsverdi er
"
                },
                "past": {
                    "regex": "none",
                    "alertText": "* Dato før "
                },
                "future": {
                    "regex": "none",
                    "alertText": "* Dato etter "
                },	
                "maxCheckbox": {
                    "regex": "none",
                    "alertText": "* Maksimalt ",
                    "alertText2": " alternativer
tillatt"
                },
                "minCheckbox": {
                    "regex": "none",
                    "alertText": "* Vennligst velg ",
                    "alertText2": " alternativer"
                },
                "equals": {
                    "regex": "none",
                    "alertText": "* Feltene samsvarer
ikke"
                },
                "creditCard": {
                    "regex": "none",
                    "alertText": "* Ugyldig
kredittkortnummer"
                },
                "phone": {
                    // credit: jquery.h5validate.js / orefalo
                    "regex": /^([\+][0-9]{1,3}[\
\.\-])?([\(]{1}[0-9]{2,6}[\)])?([0-9\ \.\-\/]{3,20})((x|ext|extension)[\
]?[0-9]{1,4})?$/,
                    "alertText": "* Ugyldig
telefonnummer"
                },
                "email": {
                    // HTML5 compatible email regex (
http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#
   e-mail-state-%28type=email%29 )
                    "regex":
/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/,
                    "alertText": "* Ugyldig
e-postadresse"
                },
                "integer": {
                    "regex": /^[\-\+]?\d+$/,
                    "alertText": "* Ikke et gyldig
heltall"
                },
                "number": {
                    // Number, including positive, negative, and floating
decimal. credit: orefalo
                    "regex":
/^[\-\+]?((([0-9]{1,3})([,][0-9]{3})*)|([0-9]+))?([\.]([0-9]+))?$/,
                    "alertText": "* Ugyldig
desimaltall"
                },
                "date": {                    
                    //	Check if date is valid by leap year
			"func": function (field) {
					var pattern = new
RegExp(/^(\d{4})[\/\-\.](0?[1-9]|1[012])[\/\-\.](0?[1-9]|[12][0-9]|3[01])$/);
					var match = pattern.exec(field.val());
					if (match == null)
					   return false;
	
					var year = match[1];
					var month = match[2]*1;
					var day = match[3]*1;					
					var date = new Date(year, month - 1, day); // because months starts
from 0.
	
					return (date.getFullYear() == year && date.getMonth() ==
(month - 1) && date.getDate() == day);
				},                		
			 "alertText": "* Ugyldig dato, må være i formatet
ÅÅÅÅ-MM-DD"
                },
                "ipv4": {
                    "regex":
/^((([01]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))[.]){3}(([0-1]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))$/,
                    "alertText": "* Ugyldig
IP-adresse"
                },
                "url": {
                    "regex":
/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([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])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,
                    "alertText": "* Ugyldig
nettadresse"
                },
                "onlyNumberSp": {
                    "regex": /^[0-9\ ]+$/,
                    "alertText": "* Kun tall"
                },
                "onlyLetterSp": {
                    "regex": /^[a-zA-Z\ \']+$/,
                    "alertText": "* Kun bokstaver"
                },
                "onlyLetterNumber": {
                    "regex": /^[0-9a-zA-Z]+$/,
                    "alertText": "* Ingen spesielle tegn er
tillatt"
                },
                // --- CUSTOM RULES -- Those are specific to the demos,
they can be removed or changed to your likings
                "ajaxUserCall": {
                    "url": "ajaxValidateFieldUser",
                    // you may want to pass extra data on the ajax call
                    "extraData": "name=eric",
                    "alertText": "* Denne brukeren er
allerede tatt",
                    "alertTextLoad": "* Validerer, vennligst
vent"
                },
				"ajaxUserCallPhp": {
                    "url":
"phpajax/ajaxValidateFieldUser.php",
                    // you may want to pass extra data on the ajax call
                    "extraData": "name=eric",
                    // if you provide an "alertTextOk", it will
show as a green prompt when the field validates
                    "alertTextOk": "* Denne brukeren er
tilgjengelig",
                    "alertText": "* Denne brukeren er
allerede tatt",
                    "alertTextLoad": "* Validerer, vennligst
vent"
                },
                "ajaxNameCall": {
                    // remote json service location
                    "url": "ajaxValidateFieldName",
                    // error
                    "alertText": "* Dette navnet er allerede
tatt",
                    // if you provide an "alertTextOk", it will
show as a green prompt when the field validates
                    "alertTextOk": "* Dette navnet er
tilgjengelig",
                    // speaks by itself
                    "alertTextLoad": "* Validerer, vennligst
vent"
                },
				 "ajaxNameCallPhp": {
	                    // remote json service location
	                    "url":
"phpajax/ajaxValidateFieldName.php",
	                    // error
	                    "alertText": "* Dette navnet er
allerede tatt",
	                    // speaks by itself
	                    "alertTextLoad": "* Validerer,
vennligst vent"
	                },
                "validate2fields": {
                    "alertText": "* Vennligst skriv
HELLO"
                },
	            //tls warning:homegrown not fielded 
                "dateFormat":{
                    "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$|^(?:(?:(?:0?[13578]|1[02])(\/|-)31)|(?:(?:0?[1,3-9]|1[0-2])(\/|-)(?:29|30)))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(?:(?:0?[1-9]|1[0-2])(\/|-)(?:0?[1-9]|1\d|2[0-8]))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(0?2(\/|-)29)(\/|-)(?:(?:0[48]00|[13579][26]00|[2468][048]00)|(?:\d\d)?(?:0[48]|[2468][048]|[13579][26]))$/,
                    "alertText": "* Ugyldig dato"
                },
                //tls warning:homegrown not fielded 
				"dateTimeFormat": {
	                "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])\s+(1[012]|0?[1-9]){1}:(0?[1-5]|[0-6][0-9]){1}:(0?[0-6]|[0-6][0-9]){1}\s+(am|pm|AM|PM){1}$|^(?:(?:(?:0?[13578]|1[02])(\/|-)31)|(?:(?:0?[1,3-9]|1[0-2])(\/|-)(?:29|30)))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^((1[012]|0?[1-9]){1}\/(0?[1-9]|[12][0-9]|3[01]){1}\/\d{2,4}\s+(1[012]|0?[1-9]){1}:(0?[1-5]|[0-6][0-9]){1}:(0?[0-6]|[0-6][0-9]){1}\s+(am|pm|AM|PM){1})$/,
                    "alertText": "* Ugyldig dato eller
datoformat",
                    "alertText2": "Forventet format:
",
                    "alertText3": "mm/dd/åååå tt:mm:ss
AM|PM or ", 
                    "alertText4": "åååå-mm-dd tt:mm:ss
AM|PM"
	            }
            };
            
        }
    };

    $.validationEngineLanguage.newLang();
    
})(jQuery);
PKe�[d�\8!8!*js/languages/jquery.validationEngine-pl.jsnu�[���(function($){
    $.fn.validationEngineLanguage = function(){
    };
    $.validationEngineLanguage = {
        newLang: function(){
            $.validationEngineLanguage.allRules = {
                "required": { // Add your regex rules here, you
can take telephone as an example
                    "regex": "none",
                    "alertText": "* Pole wymagane",
                    "alertTextCheckboxMultiple": "* Proszę
wybrać opcję",
                    "alertTextCheckboxe": "* Pole
wymagane"
                },
                "requiredInFunction": { 
                    "func": function(field, rules, i, options){
                        return (field.val() == "test") ? true :
false;
                    },
                    "alertText": "* Field must equal
test"
                },
                "minSize": {
                    "regex": "none",
                    "alertText": "* Minimalna liczba znaków
to ",
                    "alertText2": ""
                },
                "maxSize": {
                    "regex": "none",
                    "alertText": "* Maksymalna liczba
znaków to ",
                    "alertText2": ""
                },
	     "groupRequired": {
                    "regex": "none",
                   "alertText": "* Proszę wypełnić
wymienione opcje"
                },
                "min": {
                    "regex": "none",
                    "alertText": "* Najmniejsza wartość to
"
                },
                "max": {
                    "regex": "none",
                    "alertText": "* Największa wartość to
"
                },
                "past": {
                    "regex": "none",
                    "alertText": "* Data musi być
wcześniejsza niż "
                },
                "future": {
                    "regex": "none",
                    "alertText": "* Data musi być
późniejsza niż "
                },	
                "maxCheckbox": {
                    "regex": "none",
                    "alertText": "* Przekroczona maksymalna
liczba opcji"
                },
                "minCheckbox": {
                    "regex": "none",
                    "alertText": "* Minimalna liczba opcji
to ",
                    "alertText2": ""
                },
                "equals": {
                    "regex": "none",
                    "alertText": "* Pola nie są
jednakowe"
                },
                "creditCard": {
                    "regex": "none",
                    "alertText": "* Nieprawidłowy numer
karty kredytowej"
                },
                "phone": {
                    // credit: jquery.h5validate.js / orefalo
                    "regex": /^([\+][0-9]{1,3}[
\.\-])?([\(]{1}[0-9]{2,6}[\)])?([0-9 \.\-\/]{3,20})((x|ext|extension)[
]?[0-9]{1,4})?$/,
                    "alertText": "* Nieprawidłowy numer
telefonu"
                },
                "email": {
                    // Shamelessly lifted from Scott Gonzalez via the
Bassistance Validation plugin
http://projects.scottsplayground.com/email_address_validation/
                    "regex":
/^((([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,
                    "alertText": "* Nieprawidłowy adres
e-mail"
                },
                "integer": {
                    "regex": /^[\-\+]?\d+$/,
                    "alertText": "* Nieprawidłowa liczba
całkowita"
                },
                "number": {
                    // Number, including positive, negative, and floating
decimal. credit: orefalo
                    "regex":
/^[\-\+]?((([0-9]{1,3})([,][0-9]{3})*)|([0-9]+))?([\.]([0-9]+))?$/,
                    "alertText": "* Nieprawidłowa liczba
dziesiętna"
                },
                "CZdate": {
                    // Date in Polish format, regex taken from Czech
translation
                    "regex": /^(0[1-9]|[12][0-9]|3[01])[.
/.](0[1-9]|1[012])[. /.](19|20)\d{2}$/,
                    "alertText": "* Data musi być w postaci
DD.MM.RRRR"
                },
                "date": {
                    "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/,
                    "alertText": "* Data musi być w postaci
RRRR-MM-DD"
                },
                "ipv4": {
                    "regex":
/^((([01]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))[.]){3}(([0-1]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))$/,
                    "alertText": "* Nieprawidłowy adres
IP"
                },
                "url": {
                    "regex":
/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([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])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,
                    "alertText": "* Nieprawidłowy adres
internetowy"
                },
                "onlyNumberSp": {
                    "regex": /^[0-9\ ]+$/,
                    "alertText": "* Tylko liczby"
                },
                "onlyLetterSp": {
                    "regex": /^[a-zA-Z\ \']+$/,
                    "alertText": "* Tylko litery"
                },
                "onlyLetterNumber": {
                    "regex": /^[0-9a-zA-Z]+$/,
                    "alertText": "* Tylko litery i
liczby"
                },
                // --- CUSTOM RULES -- Those are specific to the demos,
they can be removed or changed to your likings
                "ajaxUserCall": {
                    "url": "ajaxValidateFieldUser",
                    // you may want to pass extra data on the ajax call
                    "extraData": "name=eric",
                    "alertText": "* Nazwa użytkownika jest
już zajęta",
                    "alertTextLoad": "* Walidacja, proszę
czekać"
                },
                "ajaxNameCall": {
                    // remote json service location
                    "url": "ajaxValidateFieldName",
                    // error
                    "alertText": "* Nazwa jest już
zajęta",
                    // if you provide an "alertTextOk", it will
show as a green prompt when the field validates
                    "alertTextOk": "* Nazwa jest
dostępna",
                    // speaks by itself
                    "alertTextLoad": "* Walidacja, proszę
czekać"
                },
                "validate2fields": {
                    "alertText": "* Proszę wpisać
HELLO"
                }
            };
            
        }
    };
    $.validationEngineLanguage.newLang();
})(jQuery);
PKe�[���5*5**js/languages/jquery.validationEngine-pt.jsnu�[���(function($){
    $.fn.validationEngineLanguage = function(){
    };
    $.validationEngineLanguage = {
        newLang: function(){
            $.validationEngineLanguage.allRules = {
                "required": { // Add your regex rules here, you
can take telephone as an example
                    "regex": "none",
                    "alertText": "* Campo
obrigatório",
                    "alertTextCheckboxMultiple": "*
Selecione uma opção",
					"alertTextCheckboxe": "* Selecione uma ou mais
opções",
                    "alertTextDateRange": "* Ambos os campos
de datas são obrigatórios"
                },
                "requiredInFunction": { 
                    "func": function(field, rules, i, options){
                        return (field.val() == "test") ? true :
false;
                    },
                    "alertText": "* Field must equal
test"
                },
                "dateRange": {
                    "regex": "none",
                    "alertText": "* Inválido ",
                    "alertText2": "Date Range"
                },
                "dateTimeRange": {
                    "regex": "none",
                    "alertText": "* Inválido ",
                    "alertText2": "Intervalo de tempo da
data"
                },
                "minSize": {
                    "regex": "none",
                    "alertText": "* Mínimo ",
                    "alertText2": " carateres
permitidos"
                },
                "maxSize": {
                    "regex": "none",
                    "alertText": "* Máximo ",
                    "alertText2": " carateres
permitidos"
                },
				"groupRequired": {
                    "regex": "none",
                    "alertText": "* Tem de preencher um dos
seguintes campos"
                },
                "min": {
                    "regex": "none",
					"alertText": "* O valor mínimo é "
                },
                "max": {
                    "regex": "none",
                    "alertText": "* O valor máximo é
"
                },
                "past": {
                    "regex": "none",
                    "alertText": "* Data anterior a "
                },
                "future": {
                    "regex": "none",
                    "alertText": "* Data posterior a "
                },	
                "maxCheckbox": {
                    "regex": "none",
					"alertText": "* O número máximo ",
					"alertText2": " de escolhas foi ultrapassado"
                },
                "minCheckbox": {
                    "regex": "none",
                    "alertText": "* Selecione ",
                    "alertText2": " opções"
                },
                "equals": {
                    "regex": "none",
                    "alertText": "* Os campos não
correspondem"
                },
                "creditCard": {
                    "regex": "none",
					"alertText": "* Número do cartão de crédito
inválido"
                },
                "phone": {
                    // credit: jquery.h5validate.js / orefalo
                    "regex": /^([\+][0-9]{1,3}[\
\.\-])?([\(]{1}[0-9]{2,6}[\)])?([0-9\ \.\-\/]{3,20})((x|ext|extension)[\
]?[0-9]{1,4})?$/,
                    "alertText": "* Número de telefone
inválido"
                },
                "email": {
                    // HTML5 compatible email regex (
http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#
   e-mail-state-%28type=email%29 )
                    "regex":
/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,
                    "alertText": "* Endereço de email
inválido"
                },
                "integer": {
                    "regex": /^[\-\+]?\d+$/,
                    "alertText": "* Não é um número
inteiro"
                },
                "number": {
                    // Number, including positive, negative, and floating
decimal. credit: orefalo
                    "regex":
/^[\-\+]?((([0-9]{1,3})([,][0-9]{3})*)|([0-9]+))?([\.]([0-9]+))?$/,
                    "alertText": "* Não é um número
decimal"
                },
                "date": {                    
                    //	Check if date is valid by leap year
			"func": function (field) {
					var pattern = new
RegExp(/^(\d{4})[\/\-\.](0?[1-9]|1[012])[\/\-\.](0?[1-9]|[12][0-9]|3[01])$/);
					var match = pattern.exec(field.val());
					if (match == null)
					   return false;
	
					var year = match[1];
					var month = match[2]*1;
					var day = match[3]*1;					
					var date = new Date(year, month - 1, day); // because months starts
from 0.
	
					return (date.getFullYear() == year && date.getMonth() ==
(month - 1) && date.getDate() == day);
				},                		
			 "alertText": "* Data inválida, o formato deve de ser
AAAA-MM-DD (ex.2012-12-31)"
                },
                "ipv4": {
                    "regex":
/^((([01]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))[.]){3}(([0-1]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))$/,
                    "alertText": "* Número IP
inválido"
                },
                "url": {
                    "regex":
/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([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])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,
					"alertText": "* Endereço URL inválido"
                },
                "onlyNumberSp": {
                    "regex": /^[0-9\ ]+$/,
                    "alertText": "* Só é permitido
números"
                },
                "onlyLetterSp": {
                    "regex": /^[a-zA-Z\ \']+$/,
                    "alertText": "* Só é permitido
letras"
                },
                "onlyLetterNumber": {
                    "regex": /^[0-9a-zA-Z]+$/,
                    "alertText": "* Só são permitidos
letras e números"
                },
                // --- CUSTOM RULES -- Those are specific to the demos,
they can be removed or changed to your likings
                "ajaxUserCall": {
                    "url": "ajaxValidateFieldUser",
                    // you may want to pass extra data on the ajax call
                    "extraData": "name=eric",
					"alertText": "* Este nome de utilizador já está sendo
utilizado",
                    "alertTextLoad": "* A validar, por favor
aguarde"
                },
				"ajaxUserCallPhp": {
                    "url":
"phpajax/ajaxValidateFieldUser.php",
                    // you may want to pass extra data on the ajax call
                    "extraData": "name=eric",
                    // if you provide an "alertTextOk", it will
show as a green prompt when the field validates
                    "alertTextOk": "* Este nome de
utilizador está disponível",
                    "alertText": "* Este nome de utilizador
já está sendo utilizado",
                    "alertTextLoad": "* A validar, por favor
aguarde"
                },
                "ajaxNameCall": {
                    // remote json service location
                    "url": "ajaxValidateFieldName",
                    // error
					"alertText": "* Este nome já está a ser
utilizado",
                    // if you provide an "alertTextOk", it will
show as a green prompt when the field validates
					"alertTextOk": "* Este nome está disponível",
                    // speaks by itself
                    "alertTextLoad": "* A validar, por favor
aguarde"
                },
				 "ajaxNameCallPhp": {
	                    // remote json service location
	                    "url":
"phpajax/ajaxValidateFieldName.php",
	                    // error
	                    "alertText": "* Este nome já está a
ser utilizado",
	                    // speaks by itself
	                    "alertTextLoad": "* A validar, por
favor aguarde"
	                },
                "validate2fields": {
					"alertText": "* Por favor escreva HELLO"
                },
	            //tls warning:homegrown not fielded 
                "dateFormat":{
                    "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$|^(?:(?:(?:0?[13578]|1[02])(\/|-)31)|(?:(?:0?[1,3-9]|1[0-2])(\/|-)(?:29|30)))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(?:(?:0?[1-9]|1[0-2])(\/|-)(?:0?[1-9]|1\d|2[0-8]))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(0?2(\/|-)29)(\/|-)(?:(?:0[48]00|[13579][26]00|[2468][048]00)|(?:\d\d)?(?:0[48]|[2468][048]|[13579][26]))$/,
					"alertText": "* Data inválida"
                },
                //tls warning:homegrown not fielded 
				"dateTimeFormat": {
	                "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])\s+(1[012]|0?[1-9]){1}:(0?[1-5]|[0-6][0-9]){1}:(0?[0-6]|[0-6][0-9]){1}\s+(am|pm|AM|PM){1}$|^(?:(?:(?:0?[13578]|1[02])(\/|-)31)|(?:(?:0?[1,3-9]|1[0-2])(\/|-)(?:29|30)))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^((1[012]|0?[1-9]){1}\/(0?[1-9]|[12][0-9]|3[01]){1}\/\d{2,4}\s+(1[012]|0?[1-9]){1}:(0?[1-5]|[0-6][0-9]){1}:(0?[0-6]|[0-6][0-9]){1}\s+(am|pm|AM|PM){1})$/,
					"alertText": "* Data inválida ou mal formatada",
                    "alertText2": "Formato esperado:
",
                    "alertText3": "mm/dd/aaaa hh:mm:ss AM|PM
ou ", 
                    "alertText4": "aaaa-mm-dd hh:mm:ss
AM|PM"
	            }
            };
            
        }
    };

    $.validationEngineLanguage.newLang();
    
})(jQuery);
PKe�[l��-js/languages/jquery.validationEngine-pt_BR.jsnu�[���(function($){
    $.fn.validationEngineLanguage = function(){};
    $.validationEngineLanguage = {
        newLang: function(){
            $.validationEngineLanguage.allRules = {
                "required": {
                    "regex": "none",
                    "alertText": "* Este campo é
obrigatório",
                    "alertTextCheckboxMultiple": "* Favor
selecionar uma opção",
                    "alertTextCheckboxe": "* Este checkbox
é obrigatório",
                    "alertTextDateRange": "* Ambas as datas
do intervalo são obrigatórias"
                },
                "requiredInFunction": { 
                    "func": function(field, rules, i, options){
                        return (field.val() == "test") ? true :
false;
                    },
                    "alertText": "* Field must equal
test"
                },
                "dateRange": {
                    "regex": "none",
                    "alertText": "* Intervalo de datas
inválido"
                },
                "dateTimeRange": {
                    "regex": "none",
                    "alertText": "* Intervalo de data e hora
inválido"
                },
                "minSize": {
                    "regex": "none",
                    "alertText": "* Permitido o mínimo de
",
                    "alertText2": " caractere(s)"
                },
                "maxSize": {
                    "regex": "none",
                    "alertText": "* Permitido o máximo de
",
                    "alertText2": " caractere(s)"
                },
				"groupRequired": {
                    "regex": "none",
                    "alertText": "* Você deve preencher um
dos seguintes campos"
                },
                "min": {
                    "regex": "none",
                    "alertText": "* Valor mínimo é "
                },
                "max": {
                    "regex": "none",
                    "alertText": "* Valor máximo é "
                },
                "past": {
                    "regex": "none",
                    "alertText": "* Data anterior a "
                },
                "future": {
                    "regex": "none",
                    "alertText": "* Data posterior a "
                },	
                "maxCheckbox": {
                    "regex": "none",
                    "alertText": "* Máximo de ",
                    "alertText2": " opções
permitidas"
                },
                "minCheckbox": {
                    "regex": "none",
                    "alertText": "* Favor selecionar
",
                    "alertText2": " opção(ões)"
                },
                "equals": {
                    "regex": "none",
                    "alertText": "* Os campos não
correspondem"
                },
                "creditCard": {
                    "regex": "none",
                    "alertText": "* Número de cartão de
crédito inválido"
                },
                "phone": {
                    "regex": /^([\+][0-9]{1,3}[
\.\-])?([\(]{1}[0-9]{2,6}[\)])?([0-9 \.\-\/]{3,20})((x|ext|extension)[
]?[0-9]{1,4})?$/,
                    "alertText": "* Número de telefone
inválido"
                },
                "email": {
                    "regex":
/^((([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,
                    "alertText": "* Endereço de email
inválido"
                },
                "integer": {
                    "regex": /^[\-\+]?\d+$/,
                    "alertText": "* Número inteiro
inválido"
                },
                "number": {
                    "regex":
/^[\-\+]?((([0-9]{1,3})([,][0-9]{3})*)|([0-9]+))?([\.]([0-9]+))?$/,
                    "alertText": "* Número decimal
inválido"
                },
                "date": {
                    "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/,
                    "alertText": "* Data inválida, deve ser
no formato AAAA-MM-DD"
                },
                "ipv4": {
                    "regex":
/^((([01]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))[.]){3}(([0-1]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))$/,
                    "alertText": "* Endereço IP
inválido"
                },
                "url": {
                    "regex":
/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([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])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,
                    "alertText": "* URL inválida"
                },
                "onlyNumberSp": {
                    "regex": /^[0-9\ ]+$/,
                    "alertText": "* Apenas números"
                },
                "onlyLetterSp": {
                    "regex": /^[a-zA-Z\ \']+$/,
                    "alertText": "* Apenas letras"
                },
                "onlyLetterNumber": {
                    "regex": /^[0-9a-zA-Z]+$/,
                    "alertText": "* Não são permitidos
caracteres especiais"
                },
                "real": {
                	// Brazilian (Real - R$) money format
                	"regex":
/^([1-9]{1}[\d]{0,2}(\.[\d]{3})*(\,[\d]{0,2})?|[1-9]{1}[\d]{0,}(\,[\d]{0,2})?|0(\,[\d]{0,2})?|(\,[\d]{1,2})?)$/,
                    "alertText": "* Número decimal
inválido"
                }
            };
            
        }
    };

    $.validationEngineLanguage.newLang();
    
})(jQuery);
PKe�[“��p,p,*js/languages/jquery.validationEngine-ro.jsnu�[���(function($){
    $.fn.validationEngineLanguage = function(){
    };
    $.validationEngineLanguage = {
        newLang: function(){
            $.validationEngineLanguage.allRules = {
                "required": { // Add your regex rules here, you
can take telephone as an example
                    "regex": "none",
                    "alertText": "* Camp obligatoriu",
                    "alertTextCheckboxMultiple": "*
Selecteaza o optiune",
                    "alertTextCheckboxe": "* Optiune
obligatorie",
                    "alertTextDateRange": "* Campurile data
cu ajutorul carora se stabileste perioada sunt obligatorii"
                },
                "requiredInFunction": { 
                    "func": function(field, rules, i, options){
                        return (field.val() == "test") ? true :
false;
                    },
                    "alertText": "* Field must equal
test"
                },
                "dateRange": {
                    "regex": "none",
                    "alertText": "* Perioada ",
                    "alertText2": "este invalida"
                },
                "dateTimeRange": {
                    "regex": "none",
                    "alertText": "* Intervalul de timp
",
                    "alertText2": "este invalid"
                },
                "minSize": {
                    "regex": "none",
                    "alertText": "* Sunt permise cel putin
",
                    "alertText2": " caractere"
                },
                "maxSize": {
                    "regex": "none",
                    "alertText": "* Sunt permise maxim
",
                    "alertText2": " caractere"
                },
                "groupRequired": {
                    "regex": "none",
                    "alertText": "* Trebuie sa completezi
unul dintre urmatoarele campuri"
                },
                "min": {
                    "regex": "none",
                    "alertText": "* Valoarea minim admisa
este "
                },
                "max": {
                    "regex": "none",
                    "alertText": "* Valoarea maxim admisa
este "
                },
                "past": {
                    "regex": "none",
                    "alertText": "* Data trebuie sa fie una
anterioara fata de "
                },
                "future": {
                    "regex": "none",
                    "alertText": "* Data este una din trecut
fata de "
                },
                "maxCheckbox": {
                    "regex": "none",
                    "alertText": "* Maximul de optiuni
permise este ",
                    "alertText2": ""
                },
                "minCheckbox": {
                    "regex": "none",
                    "alertText": "* Selecteaza minim
",
                    "alertText2": " optiuni"
                },
                "equals": {
                    "regex": "none",
                    "alertText": "* Campurile nu au fost
completate identic"
                },
                "creditCard": {
                    "regex": "none",
                    "alertText": "* Nevalid num?rul de card
de credit"
                },
                "phone": {
                    // credit: jquery.h5validate.js / orefalo
                    "regex": /^([\+][0-9]{1,3}[
\.\-])?([\(]{1}[0-9]{2,6}[\)])?([0-9 \.\-\/]{3,20})((x|ext|extension)[
]?[0-9]{1,4})?$/,
                    "alertText": "* Numarul de telefon este
scris eronat"
                },
                "email": {
                    // Shamelessly lifted from Scott Gonzalez via the
Bassistance Validation plugin
http://projects.scottsplayground.com/email_address_validation/
                    "regex":
/^((([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,
                    "alertText": "* Adresa e-mail este
scrisa gresit"
                },
                "integer": {
                    "regex": /^[\-\+]?\d+$/,
                    "alertText": "* Nu este un numar
intreg"
                },
                "number": {
                    // Number, including positive, negative, and floating
decimal. credit: orefalo
                    "regex":
/^[\-\+]?((([0-9]{1,3})([,][0-9]{3})*)|([0-9]+))?([\.]([0-9]+))?$/,
                    "alertText": "* Trebuie sa fie un
numar"
                },
                "date": {
                    "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/,
                    "alertText": "* Data nu este corecta.
Aceasta trebuie sa fie scrisa sub forma YYYY-MM-DD"
                },
                "ipv4": {
                    "regex":
/^((([01]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))[.]){3}(([0-1]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))$/,
                    "alertText": "* Adresa IP nu este
corecta"
                },
                "url": {
                    "regex":
/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([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])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,
                    "alertText": "* URL gresit"
                },
                "onlyNumberSp": {
                    "regex": /^[0-9\ ]+$/,
                    "alertText": "* Sunt permise doar
numerele"
                },
                "onlyLetterSp": {
                    "regex": /^[a-zA-Z\ \']+$/,
                    "alertText": "* Sunt admise doar
literele"
                },
                "onlyLetterNumber": {
                    "regex": /^[0-9a-zA-Z]+$/,
                    "alertText": "* Trebuie sa folosesti
doar litere si numere intregi"
                },
                // --- CUSTOM RULES -- Those are specific to the demos,
they can be removed or changed to your likings
                "ajaxUserCall": {
                    "url": "ajaxValidateFieldUser",
                    // you may want to pass extra data on the ajax call
                    "extraData": "name=eric",
                    "alertText": "* Numele utilizator nu
este disponibil",
                    "alertTextLoad": "* Se efectueaza
validarea. Asteapta..."
                },
                "ajaxUserCallPhp": {
                    "url":
"phpajax/ajaxValidateFieldUser.php",
                    // you may want to pass extra data on the ajax call
                    "extraData": "name=eric",
                    // if you provide an "alertTextOk", it will
show as a green prompt when the field validates
                    "alertTextOk": "* Numele utilizator este
disponibil",
                    "alertText": "* Numele utilizator nu
este disponibil",
                    "alertTextLoad": "* Se efectueaza
validarea. Asteapta..."
                },
                "ajaxNameCall": {
                    // remote json service location
                    "url": "ajaxValidateFieldName",
                    // error
                    "alertText": "* Numele nu este
disponibil",
                    // if you provide an "alertTextOk", it will
show as a green prompt when the field validates
                    "alertTextOk": "* Numele este
disponibil",
                    // speaks by itself
                    "alertTextLoad": "* Se efectueaza
validarea. Asteapta..."
                },
                "ajaxNameCallPhp": {
                        // remote json service location
                        "url":
"phpajax/ajaxValidateFieldName.php",
                        // error
                        "alertText": "* Numele nu este
disponibil",
                        // speaks by itself
                        "alertTextLoad": "* Se efectueaza
validarea. Asteapta..."
                    },
                "validate2fields": {
                    "alertText": "* Scrie: HELLO"
                },
                //tls warning:homegrown not fielded
                "dateFormat":{
                    "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$|^(?:(?:(?:0?[13578]|1[02])(\/|-)31)|(?:(?:0?[1,3-9]|1[0-2])(\/|-)(?:29|30)))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(?:(?:0?[1-9]|1[0-2])(\/|-)(?:0?[1-9]|1\d|2[0-8]))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(0?2(\/|-)29)(\/|-)(?:(?:0[48]00|[13579][26]00|[2468][048]00)|(?:\d\d)?(?:0[48]|[2468][048]|[13579][26]))$/,
                    "alertText": "* Data nu este
corecta"
                },
                //tls warning:homegrown not fielded
                "dateTimeFormat": {
                    "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])\s+(1[012]|0?[1-9]){1}:(0?[1-5]|[0-6][0-9]){1}:(0?[0-6]|[0-6][0-9]){1}\s+(am|pm|AM|PM){1}$|^(?:(?:(?:0?[13578]|1[02])(\/|-)31)|(?:(?:0?[1,3-9]|1[0-2])(\/|-)(?:29|30)))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^((1[012]|0?[1-9]){1}\/(0?[1-9]|[12][0-9]|3[01]){1}\/\d{2,4}\s+(1[012]|0?[1-9]){1}:(0?[1-5]|[0-6][0-9]){1}:(0?[0-6]|[0-6][0-9]){1}\s+(am|pm|AM|PM){1})$/,
                    "alertText": "* Data nu este corecta sau
formatul acesteia este unul gresit",
                    "alertText2": "Formatele recunoscute
sunt: ",
                    "alertText3": "mm/dd/yyyy hh:mm:ss AM|PM
sau ",
                    "alertText4": "yyyy-mm-dd hh:mm:ss
AM|PM"
                }
            };

        }
    };
    $.validationEngineLanguage.newLang();
})(jQuery);PKe�[7��""""*js/languages/jquery.validationEngine-ru.jsnu�[���(function($){
    $.fn.validationEngineLanguage = function(){
	};
    $.validationEngineLanguage = {
        newLang: function(){
            $.validationEngineLanguage.allRules = {
                "required": { // Add your regex rules here, you
can take telephone as an example
                    "regex": "none",
                    "alertText": "* Необходимо
заполнить",
                    "alertTextCheckboxMultiple": "* Вы
должны выбрать вариант",
                    "alertTextCheckboxe": "*
Необходимо отметить"
                },
                "requiredInFunction": { 
                    "func": function(field, rules, i, options){
                        return (field.val() == "test") ? true :
false;
                    },
                    "alertText": "* Значением
поля должно быть test"
                },
                "minSize": {
                    "regex": "none",
                    "alertText": "* Минимум ",
                    "alertText2": "
символа(ов)"
                },
                "maxSize": {
                    "regex": "none",
                    "alertText": "* Максимум
",
                    "alertText2": "
символа(ов)"
                },
		"groupRequired": {
                    "regex": "none",
                    "alertText": "* Вы должны
заполнить одно из следующих полей"
                },
                "min": {
                    "regex": "none",
                    "alertText": "* Минимальное
значение "
                },
                "max": {
                    "regex": "none",
                    "alertText": "* Максимальное
значение "
                },
                "past": {
                    "regex": "none",
                    "alertText": "* Дата до "
                },
                "future": {
                    "regex": "none",
                    "alertText": "* Дата от "
                },	
                "maxCheckbox": {
                    "regex": "none",
                    "alertText": "* Нельзя
выбрать столько вариантов"
                },
                "minCheckbox": {
                    "regex": "none",
                    "alertText": "* Пожалуйста,
выберите ",
                    "alertText2": " опцию(ии)"
                },
                "equals": {
                    "regex": "none",
                    "alertText": "* Поля не
совпадают"
                },
                "creditCard": {
                    "regex": "none",
                    "alertText": "* Неверный
номер кредитной карты"
                },
                "phone": {
                    // credit: jquery.h5validate.js / orefalo
                    "regex": /^([\+][0-9]{1,3}[
\.\-])?([\(]{1}[0-9]{2,6}[\)])?([0-9 \.\-\/]{3,20})((x|ext|extension)[
]?[0-9]{1,4})?$/,
                    "alertText": "* Неправильный
формат телефона"
                },
                "email": {
                    // Shamelessly lifted from Scott Gonzalez via the
Bassistance Validation plugin
http://projects.scottsplayground.com/email_address_validation/
                    "regex":
/^((([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,
                    "alertText": "* Неверный
формат email"
                },
                "integer": {
                    "regex": /^[\-\+]?\d+$/,
                    "alertText": "* Не целое
число"
                },
                "number": {
                    // Number, including positive, negative, and floating
decimal. credit: orefalo
                    "regex":
/^[\-\+]?((([0-9]{1,3})([,][0-9]{3})*)|([0-9]+))?([\.]([0-9]+))?$/,
                    "alertText": "* Неправильное
число с плавающей точкой"
                },
                "date": {
                    "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/,
                    "alertText": "* Неправильная
дата (должно быть в ДД.MM.ГГГГ формате)"
                },
                "ipv4": {
                	"regex":
/^((([01]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))[.]){3}(([0-1]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))$/,
                    "alertText": "* Неправильный
IP-адрес"
                },
                "url": {
                    "regex":
/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([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])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,
                    "alertText": "* Неправильный
URL"
                },
                "onlyNumberSp": {
                    "regex": /^[0-9\ ]+$/,
                    "alertText": "* Только
числа"
                },
                "onlyLetterSp": {
                    "regex": /^[a-zA-Z\u0400-\u04FF\
\']+$/,
                    "alertText": "* Только
буквы"
                },
                "onlyLetterNumber": {
                    "regex": /^[0-9a-zA-Z\u0400-\u04FF]+$/,
                    "alertText": "* Запрещены
специальные символы"
                },
                // --- CUSTOM RULES -- Those are specific to the demos,
they can be removed or changed to your likings
                "ajaxUserCall": {
                    "url": "ajaxValidateFieldUser",
                    // you may want to pass extra data on the ajax call
                    "extraData": "name=eric",
                    "alertText": "* Этот
пользователь уже занят",
                    "alertTextLoad": "* Проверка,
подождите..."
                },
                "ajaxNameCall": {
                    // remote json service location
                    "url": "ajaxValidateFieldName",
                    // error
                    "alertText": "* Это имя уже
занято",
                    // if you provide an "alertTextOk", it will
show as a green prompt when the field validates
                    "alertTextOk": "* Это имя
доступно",
                    // speaks by itself
                    "alertTextLoad": "* Проверка,
подождите..."
                },
                "validate2fields": {
                    "alertText": "* Пожалуйста,
введите HELLO"
                }
            };
            
        }
    };
    $.validationEngineLanguage.newLang();
})(jQuery);

PKe�[8wԷ�#�#*js/languages/jquery.validationEngine-se.jsnu�[���(function($){
    $.fn.validationEngineLanguage = function(){
    };
    $.validationEngineLanguage = {
        newLang: function(){
            $.validationEngineLanguage.allRules = {
                "required": { // Add your regex rules here, you
can take telephone as an example
                    "regex": "none",
                    "alertText": "* Det här fältet
krävs",
                    "alertTextCheckboxMultiple": "* Var god
välj ett alternativ",
                    "alertTextCheckboxe": "* Den här
kryssrutan måste anges"
                },
                "requiredInFunction": { 
                    "func": function(field, rules, i, options){
                        return (field.val() == "test") ? true :
false;
                    },
                    "alertText": "* Field must equal
test"
                },
                "minSize": {
                    "regex": "none",
                    "alertText": "* Minimum ",
                    "alertText2": " tecken"
                },
                "maxSize": {
                    "regex": "none",
                    "alertText": "* Maximalt ",
                    "alertText2": " antal tecken"
                },
				"groupRequired": {
                    "regex": "none",
                    "alertText": "* You must fill one of the
following fields"
                },
                "min": {
                    "regex": "none",
                    "alertText": "* Minsta möjliga värde
är "
                },
                "max": {
                    "regex": "none",
                    "alertText": "* Maxvärdet är "
                },
                "past": {
                    "regex": "none",
                    "alertText": "* Datum måste vara före
"
                },
                "future": {
                    "regex": "none",
                    "alertText": "* Datum efter "
                },	
                "maxCheckbox": {
                    "regex": "none",
                    "alertText": "* Maximalt ",
                    "alertText2": " alternativ får
väljas"
                },
                "minCheckbox": {
                    "regex": "none",
                    "alertText": "* Var god välj ",
                    "alertText2": " alternativ"
                },
                "equals": {
                    "regex": "none",
                    "alertText": "* Fält överensstämmer
inte"
                },
                "creditCard": {
                    "regex": "none",
                    "alertText": "* Ogiltigt
kreditkortsnummer"
                },
                "phone": {
                    // credit: jquery.h5validate.js / orefalo
                    "regex": /^([\+][0-9]{1,3}[
\.\-])?([\(]{1}[0-9]{2,6}[\)])?([0-9 \.\-\/]{3,20})((x|ext|extension)[
]?[0-9]{1,4})?$/,
                    "alertText": "* Ogiltigt
telefonnummer"
                },
                "email": {
                    // Shamelessly lifted from Scott Gonzalez via the
Bassistance Validation plugin
http://projects.scottsplayground.com/email_address_validation/
                    "regex":
/^((([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,
                    "alertText": "* Ogiltig
e-postadress"
                },
                "integer": {
                    "regex": /^[\-\+]?\d+$/,
                    "alertText": "* Inte korrekt numeriskt
värde"
                },
                "number": {
                    // Number, including positive, negative, and floating
decimal. credit: orefalo
                    "regex":
/^[\-\+]?((([0-9]{1,3})([,][0-9]{3})*)|([0-9]+))?([\.]([0-9]+))?$/,
                    "alertText": "* Inte korrekt
decimalvärde"
                },
                "date": {
                    "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/,
                    "alertText": "* Ogiltigt datum, måste
vara i YYYY-MM-DD -format"
                },
                "ipv4": {
                    "regex":
/^((([01]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))[.]){3}(([0-1]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))$/,
                    "alertText": "* Ogiltig IP-adress"
                },
                "url": {
                    "regex":
/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([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])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,
                    "alertText": "* Ogiltig URL"
                },
                "onlyNumberSp": {
                    "regex": /^[0-9\ ]+$/,
                    "alertText": "* Enbart siffror"
                },
                "onlyLetterSp": {
                    "regex": /^[a-zA-Z\ \']+$/,
                    "alertText": "* Enbart bokstäver"
                },
                "onlyLetterNumber": {
                    "regex": /^[0-9a-zA-Z]+$/,
                    "alertText": "* Inga
specialtecken"
                },
                // --- CUSTOM RULES -- Those are specific to the demos,
they can be removed or changed to your likings
                "ajaxUserCall": {
                    "url": "ajaxValidateFieldUser",
                    // you may want to pass extra data on the ajax call
                    "extraData": "name=eric",
                    "alertText": "* Användarnamnet är
upptaget",
                    "alertTextLoad": "* Validerar, var god
vänta"
                },
				"ajaxUserCallPhp": {
                    "url":
"phpajax/ajaxValidateFieldUser.php",
                    // you may want to pass extra data on the ajax call
                    "extraData": "name=eric",
                    // if you provide an "alertTextOk", it will
show as a green prompt when the field validates
                    "alertTextOk": "* Användarnamnet är
tillgängligt",
                    "alertText": "* Användarnamnet är
upptaget",
                    "alertTextLoad": "* Validerar, var god
vänta"
                },
                "ajaxNameCall": {
                    // remote json service location
                    "url": "ajaxValidateFieldName",
                    // error
                    "alertText": "* Användarnamnet är
upptaget",
                    // if you provide an "alertTextOk", it will
show as a green prompt when the field validates
                    "alertTextOk": "* Användarnamnet är
tillgängligt",
                    // speaks by itself
                    "alertTextLoad": "* Validerar, var god
vänta"
                },
				 "ajaxNameCallPhp": {
	                    // remote json service location
	                    "url":
"phpajax/ajaxValidateFieldName.php",
	                    // error
	                    "alertText": "* Användarnamnet är
upptaget",
	                    // speaks by itself
	                    "alertTextLoad": "* Validerar, var god
vänta"
	                },
                "validate2fields": {
                    "alertText": "* Ange text HELLO"
                }
            };
            
        }
    };
    $.validationEngineLanguage.newLang();
})(jQuery);PKe�[�Ȅ��$�$*js/languages/jquery.validationEngine-tr.jsnu�[���(function($){
    $.fn.validationEngineLanguage = function(){
    };
    $.validationEngineLanguage = {
        newLang: function(){
            $.validationEngineLanguage.allRules = {
                "required": { // Add your regex rules here, you
can take telephone as an example
                    "regex": "none",
                    "alertText": "* Bu alan
zorunludur",
                    "alertTextCheckboxMultiple": "* Lütfen
bir seçeneği işaretleyiniz",
                    "alertTextCheckboxe": "* Bu onay kutusu
zorunludur"
                },
                "requiredInFunction": { 
                    "func": function(field, rules, i, options){
                        return (field.val() == "test") ? true :
false;
                    },
                    "alertText": "* Field must equal
test"
                },
                "minSize": {
                    "regex": "none",
                    "alertText": "* Bu alana en az ",
                    "alertText2": " karakter girmelisiniz
"
                },
                "maxSize": {
                    "regex": "none",
                    "alertText": "* Bu alana en fazla
",
                    "alertText2": " karakter
girebilirsiniz"
                },
				"groupRequired": {
                    "regex": "none",
                    "alertText": "* You must fill one of the
following fields"
                },
                "min": {
                    "regex": "none",
                    "alertText": "* Geçerli en küçük
değer: "
                },
                "max": {
                    "regex": "none",
                    "alertText": "* Geçerli en yüksek
değer: "
                },
                "past": {
                    "regex": "none",
                    "alertText": "* Lütfen ",
                    "alertText2": " tarihinden daha ileri
bir tarih giriniz "
                },
                "future": {
                    "regex": "none",
                    "alertText": "* Lütfen ",
                    "alertText2": " tarihinden daha geri bir
tarih giriniz "

                },	
                "maxCheckbox": {
                    "regex": "none",
                    "alertText": "* En fazla ",
                    "alertText2": " onay kutusu
işaretleyebilirsiniz"
                },
                "minCheckbox": {
                    "regex": "none",
                    "alertText": "* Lütfen en az ",
                    "alertText2": " onay kutusunu
işaretleyiniz"
                },
                "equals": {
                    "regex": "none",
                    "alertText": "* Değerler aynı
olmalı"
                },
                "creditCard": {
                    "regex": "none",
                    "alertText": "* Geçersiz kredi kartı
numarası"
                },
                "phone": {
                    // credit: jquery.h5validate.js / orefalo
                    "regex": /^([\+][0-9]{1,3}[
\.\-])?([\(]{1}[0-9]{2,6}[\)])?([0-9 \.\-\/]{3,20})((x|ext|extension)[
]?[0-9]{1,4})?$/,
                    "alertText": "* Geçersiz telefon
numarası"
                },
                "email": {
                    // Shamelessly lifted from Scott Gonzalez via the
Bassistance Validation plugin
http://projects.scottsplayground.com/email_address_validation/
                    "regex":
/^((([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,
                    "alertText": "* Geçersiz eposta
adresi"
                },
                "integer": {
                    "regex": /^[\-\+]?\d+$/,
                    "alertText": "* Geçerli bir tam sayı
değil"
                },
                "number": {
                    // Number, including positive, negative, and floating
decimal. credit: orefalo
                    "regex":
/^[\-\+]?((([0-9]{1,3})([,][0-9]{3})*)|([0-9]+))?([\.]([0-9]+))?$/,
                    "alertText": "* Geçerli bir noktalı
sayı değil"
                },
                "date": {
                    "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/,
                    "alertText": "* Geçersiz tarih. Tarih
YYYY-MM-DD formatında olmalı"
                },
                "ipv4": {
                    "regex":
/^((([01]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))[.]){3}(([0-1]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))$/,
                    "alertText": "* Geçersiz IP
adresi"
                },
                "url": {
                    "regex":
/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([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])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,
                    "alertText": "* Geçersiz URL"
                },
                "onlyNumberSp": {
                    "regex": /^[0-9\ ]+$/,
                    "alertText": "* Bu alanda sadece rakam
olmalı"
                },
                "onlyLetterSp": {
                    "regex": /^[a-zA-Z\ \']+$/,
                    "alertText": "* Bu alanda sadece harf
olmalı"
                },
                "onlyLetterNumber": {
                    "regex": /^[0-9a-zA-Z]+$/,
                    "alertText": "* Bu alanda özel
karakterler olamaz"
                },
                // --- CUSTOM RULES -- Those are specific to the demos,
they can be removed or changed to your likings
                "ajaxUserCall": {
                    "url": "ajaxValidateFieldUser",
                    // you may want to pass extra data on the ajax call
                    "extraData": "name=eric",
                    "alertText": "* Bu kullanıcı adı
kullanımda",
                    "alertTextLoad": "* Doğrulanıyor,
lütfen bekleyiniz"
                },
				"ajaxUserCallPhp": {
                    "url":
"phpajax/ajaxValidateFieldUser.php",
                    // you may want to pass extra data on the ajax call
                    "extraData": "name=eric",
                    // if you provide an "alertTextOk", it will
show as a green prompt when the field validates
                    "alertTextOk": "* Bu kullanıcı adını
kullanabilirsiniz",
                    "alertText": "* Bu kullanıcı adı
kullanımda",
                    "alertTextLoad": "* Doğrulanıyor,
lütfen bekleyiniz"
                },
                "ajaxNameCall": {
                    // remote json service location
                    "url": "ajaxValidateFieldName",
                    // error
                    "alertText": "* Bu isim
kullanımda",
                    // if you provide an "alertTextOk", it will
show as a green prompt when the field validates
                    "alertTextOk": "* Bu isim
kullanılabilir",
                    // speaks by itself
                    "alertTextLoad": "* Doğrulanıyor,
lütfen bekleyiniz"
                },
				 "ajaxNameCallPhp": {
	                    // remote json service location
	                    "url":
"phpajax/ajaxValidateFieldName.php",
	                    // error
	                    "alertText": "* Bu isim
kullanımda",
	                    // speaks by itself
	                    "alertTextLoad": "* Doğrulanıyor,
lütfen bekleyiniz"
	                },
                "validate2fields": {
                    "alertText": "* Lütfen
'HELLO' yazın"
                }
            };
            
        }
    };
    $.validationEngineLanguage.newLang();
})(jQuery);PKe�[\��))*js/languages/jquery.validationEngine-vi.jsnu�[���(function($){
    $.fn.validationEngineLanguage = function(){
    };
    $.validationEngineLanguage = {
        newLang: function(){
            $.validationEngineLanguage.allRules = {
                "required": { // Add your regex rules here, you
can take telephone as an example
                    "regex": "none",
                    "alertText": "* Trường này bắt
buộc",
                    "alertTextCheckboxMultiple": "* Vui
lòng chọn một tùy chọn",
                    "alertTextCheckboxe": "* Checkbox này
bắt buộc",
                    "alertTextDateRange": "* Cả hai
trường ngày tháng đều bắt buộc"
                },
                "requiredInFunction": { 
                    "func": function(field, rules, i, options){
                        return (field.val() == "test") ? true :
false;
                    },
                    "alertText": "* Giá trị của
trường phải là test"
                },
                "dateRange": {
                    "regex": "none",
                    "alertText": "* Không đúng ",
                    "alertText2": "Khoảng ngày
tháng"
                },
                "dateTimeRange": {
                    "regex": "none",
                    "alertText": "* Không đúng ",
                    "alertText2": "Khoảng thời
gian"
                },
                "minSize": {
                    "regex": "none",
                    "alertText": "* Tối thiểu ",
                    "alertText2": " số ký tự được
cho phép"
                },
                "maxSize": {
                    "regex": "none",
                    "alertText": "* Tối đa ",
                    "alertText2": " số ký tự được
cho phép"
                },
				"groupRequired": {
                    "regex": "none",
                    "alertText": "* Bạn phải điền
một trong những trường sau"
                },
                "min": {
                    "regex": "none",
                    "alertText": "* Giá trị nhỏ nhất
là "
                },
                "max": {
                    "regex": "none",
                    "alertText": "* Giá trị lớn nhất
là "
                },
                "past": {
                    "regex": "none",
                    "alertText": "* Ngày kéo dài tới
"
                },
                "future": {
                    "regex": "none",
                    "alertText": "* Ngày đã qua "
                },	
                "maxCheckbox": {
                    "regex": "none",
                    "alertText": "* Tối đa ",
                    "alertText2": " số tùy chọn
được cho phép"
                },
                "minCheckbox": {
                    "regex": "none",
                    "alertText": "* Vui lòng chọn
",
                    "alertText2": " các tùy chọn"
                },
                "equals": {
                    "regex": "none",
                    "alertText": "* Giá trị các
trường không giống nhau"
                },
                "creditCard": {
                    "regex": "none",
                    "alertText": "* Số thẻ tín dụng
sai"
                },
                "phone": {
                    // credit: jquery.h5validate.js / orefalo
                    "regex": /^([\+][0-9]{1,3}[\
\.\-])?([\(]{1}[0-9]{2,6}[\)])?([0-9\ \.\-\/]{3,20})((x|ext|extension)[\
]?[0-9]{1,4})?$/,
                    "alertText": "* Số điện thoại
sai"
                },
                "email": {
                    // HTML5 compatible email regex (
http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#
   e-mail-state-%28type=email%29 )
                    "regex":
/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/,
                    "alertText": "* Địa chỉ thư
điện tử sai"
                },
                "integer": {
                    "regex": /^[\-\+]?\d+$/,
                    "alertText": "* Không đúng là số
nguyên"
                },
                "number": {
                    // Number, including positive, negative, and floating
decimal. credit: orefalo
                    "regex":
/^[\-\+]?((([0-9]{1,3})([,][0-9]{3})*)|([0-9]+))?([\.]([0-9]+))?$/,
                    "alertText": "* Không đúng là số
thập phân"
                },
                "date": {
                    "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/,
                    "alertText": "* Ngày sai, phải có
định dạng YYYY-MM-DD"
                },
                "ipv4": {
                    "regex":
/^((([01]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))[.]){3}(([0-1]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))$/,
                    "alertText": "* Địa chỉ IP
sai"
                },
                "url": {
                    "regex":
/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([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])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,
                    "alertText": "* URL sai"
                },
                "onlyNumberSp": {
                    "regex": /^[0-9\ ]+$/,
                    "alertText": "* Chỉ điền
số"
                },
                "onlyLetterSp": {
                    "regex": /^[a-zA-Z\ \']+$/,
                    "alertText": "* Chỉ điền
chữ"
                },
                "onlyLetterNumber": {
                    "regex": /^[0-9a-zA-Z]+$/,
                    "alertText": "* Không được chứa
ký tự đặc biệt"
                },
                // --- CUSTOM RULES -- Those are specific to the demos,
they can be removed or changed to your likings
                "ajaxUserCall": {
                    "url": "ajaxValidateFieldUser",
                    // you may want to pass extra data on the ajax call
                    "extraData": "name=eric",
                    "alertText": "* Tên này được
dùng",
                    "alertTextLoad": "* Đang xác nhận,
vui lòng chờ"
                },
				"ajaxUserCallPhp": {
                    "url":
"phpajax/ajaxValidateFieldUser.php",
                    // you may want to pass extra data on the ajax call
                    "extraData": "name=eric",
                    // if you provide an "alertTextOk", it will
show as a green prompt when the field validates
                    "alertTextOk": "* Tên người dùng
này có thể dùng được",
                    "alertText": "* Tên người dùng này
đã được sử dụng",
                    "alertTextLoad": "* Đang xác nhận,
vui lòng chờ"
                },
                "ajaxNameCall": {
                    // remote json service location
                    "url": "ajaxValidateFieldName",
                    // error
                    "alertText": "* Tên này được
dùng",
                    // if you provide an "alertTextOk", it will
show as a green prompt when the field validates
                    "alertTextOk": "* Tên này có thể
dùng",
                    // speaks by itself
                    "alertTextLoad": "* Đang xác nhận,
vui lòng chờ"
                },
				 "ajaxNameCallPhp": {
	                    // remote json service location
	                    "url":
"phpajax/ajaxValidateFieldName.php",
	                    // error
	                    "alertText": "* Tên này được
dùng",
	                    // speaks by itself
	                    "alertTextLoad": "* Đang xác nhận,
vui lòng chờ"
	                },
                "validate2fields": {
                    "alertText": "* Vui lòng nhập vào
HELLO"
                },
	            //tls warning:homegrown not fielded 
                "dateFormat":{
                    "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$|^(?:(?:(?:0?[13578]|1[02])(\/|-)31)|(?:(?:0?[1,3-9]|1[0-2])(\/|-)(?:29|30)))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(?:(?:0?[1-9]|1[0-2])(\/|-)(?:0?[1-9]|1\d|2[0-8]))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(0?2(\/|-)29)(\/|-)(?:(?:0[48]00|[13579][26]00|[2468][048]00)|(?:\d\d)?(?:0[48]|[2468][048]|[13579][26]))$/,
                    "alertText": "* Ngày sai"
                },
                //tls warning:homegrown not fielded 
				"dateTimeFormat": {
	                "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])\s+(1[012]|0?[1-9]){1}:(0?[1-5]|[0-6][0-9]){1}:(0?[0-6]|[0-6][0-9]){1}\s+(am|pm|AM|PM){1}$|^(?:(?:(?:0?[13578]|1[02])(\/|-)31)|(?:(?:0?[1,3-9]|1[0-2])(\/|-)(?:29|30)))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^((1[012]|0?[1-9]){1}\/(0?[1-9]|[12][0-9]|3[01]){1}\/\d{2,4}\s+(1[012]|0?[1-9]){1}:(0?[1-5]|[0-6][0-9]){1}:(0?[0-6]|[0-6][0-9]){1}\s+(am|pm|AM|PM){1})$/,
                    "alertText": "* Ngày sai hoặc định
dạng ngày sai",
                    "alertText2": "Định dạng đúng
là: ",
                    "alertText3": "mm/dd/yyyy hh:mm:ss AM|PM
hay ", 
                    "alertText4": "yyyy-mm-dd hh:mm:ss
AM|PM"
	            }
            };
            
        }
    };

    $.validationEngineLanguage.newLang();
    
})(jQuery);
PKe�[�	�:+:+-js/languages/jquery.validationEngine-zh_CN.jsnu�[���(function($){
    $.fn.validationEngineLanguage = function(){
    };
    $.validationEngineLanguage = {
        newLang: function(){
            $.validationEngineLanguage.allRules = {
                "required": { // Add your regex rules here, you
can take telephone as an example
                    "regex": "none",
                    "alertText": "*
此处不可空白",
                    "alertTextCheckboxMultiple": "*
请选择一个项目",
                    "alertTextCheckboxe": "*
您必须钩选此栏",
                    "alertTextDateRange": "*
日期范围不可空白"
                },
                "requiredInFunction": { 
                    "func": function(field, rules, i, options){
                        return (field.val() == "test") ? true :
false;
                    },
                    "alertText": "* Field must equal
test"
                },
                "dateRange": {
                    "regex": "none",
                    "alertText": "* 无效的 ",
                    "alertText2": " 日期范围"
                },
                "dateTimeRange": {
                    "regex": "none",
                    "alertText": "* 无效的 ",
                    "alertText2": " 时间范围"
                },
                "minSize": {
                    "regex": "none",
                    "alertText": "* 最少 ",
                    "alertText2": " 个字符"
                },
                "maxSize": {
                    "regex": "none",
                    "alertText": "* 最多 ",
                    "alertText2": " 个字符"
                },
				"groupRequired": {
                    "regex": "none",
                    "alertText": "*
你必需选填其中一个栏位"
                },
                "min": {
                    "regex": "none",
                    "alertText": "* 最小值為 "
                },
                "max": {
                    "regex": "none",
                    "alertText": "* 最大值为 "
                },
                "past": {
                    "regex": "none",
                    "alertText": "* 日期必需早于
"
                },
                "future": {
                    "regex": "none",
                    "alertText": "* 日期必需晚于
"
                },	
                "maxCheckbox": {
                    "regex": "none",
                    "alertText": "* 最多选取 ",
                    "alertText2": " 个项目"
                },
                "minCheckbox": {
                    "regex": "none",
                    "alertText": "* 请选择 ",
                    "alertText2": " 个项目"
                },
                "equals": {
                    "regex": "none",
                    "alertText": "*
请输入与上面相同的密码"
                },
                "creditCard": {
                    "regex": "none",
                    "alertText": "*
无效的信用卡号码"
                },
                "phone": {
                    // credit: jquery.h5validate.js / orefalo
                    "regex": /^([\+][0-9]{1,3}[
\.\-])?([\(]{1}[0-9]{2,6}[\)])?([0-9 \.\-\/]{3,20})((x|ext|extension)[
]?[0-9]{1,4})?$/,
                    "alertText": "*
无效的电话号码"
                },
                "email": {
                    // Shamelessly lifted from Scott Gonzalez via the
Bassistance Validation plugin
http://projects.scottsplayground.com/email_address_validation/
                    "regex":
/^((([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,
                    "alertText": "*
邮件地址无效"
                },
                "integer": {
                    "regex": /^[\-\+]?\d+$/,
                    "alertText": "*
不是有效的整数"
                },
                "number": {
                    // Number, including positive, negative, and floating
decimal. credit: orefalo
                    "regex":
/^[\-\+]?((([0-9]{1,3})([,][0-9]{3})*)|([0-9]+))?([\.]([0-9]+))?$/,
                    "alertText": "* 无效的数字"
                },
                "date": {
                    "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/,
                    "alertText": "*
无效的日期,格式必需为 YYYY-MM-DD"
                },
                "ipv4": {
                    "regex":
/^((([01]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))[.]){3}(([0-1]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))$/,
                    "alertText": "* 无效的 IP
地址"
                },
                "url": {
                    "regex":
/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([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])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,
                    "alertText": "* Invalid URL"
                },
                "onlyNumberSp": {
                    "regex": /^[0-9\ ]+$/,
                    "alertText": "* 只能填数字"
                },
                "onlyLetterSp": {
                    "regex": /^[a-zA-Z\ \']+$/,
                    "alertText": "*
只接受英文字母大小写"
                },
                "onlyLetterNumber": {
                    "regex": /^[0-9a-zA-Z]+$/,
                    "alertText": "*
不接受特殊字符"
                },
                // --- CUSTOM RULES -- Those are specific to the demos,
they can be removed or changed to your likings
                "ajaxUserCall": {
                    "url": "ajaxValidateFieldUser",
                    // you may want to pass extra data on the ajax call
                    "extraData": "name=eric",
                    "alertText": "*
此名称已被其他人使用",
                    "alertTextLoad": "*
正在确认名称是否有其他人使用,请稍等。"
                },
				"ajaxUserCallPhp": {
                    "url":
"phpajax/ajaxValidateFieldUser.php",
                    // you may want to pass extra data on the ajax call
                    "extraData": "name=eric",
                    // if you provide an "alertTextOk", it will
show as a green prompt when the field validates
                    "alertTextOk": "*
此帐号名称可以使用",
                    "alertText": "*
此名称已被其他人使用",
                    "alertTextLoad": "*
正在确认帐号名称是否有其他人使用,请稍等。"
                },
                "ajaxNameCall": {
                    // remote json service location
                    "url": "ajaxValidateFieldName",
                    // error
                    "alertText": "*
此名称可以使用",
                    // if you provide an "alertTextOk", it will
show as a green prompt when the field validates
                    "alertTextOk": "*
此名称已被其他人使用",
                    // speaks by itself
                    "alertTextLoad": "*
正在确认名称是否有其他人使用,请稍等。"
                },
				 "ajaxNameCallPhp": {
	                    // remote json service location
	                    "url":
"phpajax/ajaxValidateFieldName.php",
	                    // error
	                    "alertText": "*
此名称已被其他人使用",
	                    // speaks by itself
	                    "alertTextLoad": "*
正在确认名称是否有其他人使用,请稍等。"
	                },
                "validate2fields": {
                    "alertText": "* 请输入 HELLO"
                },
	            //tls warning:homegrown not fielded 
                "dateFormat":{
                    "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$|^(?:(?:(?:0?[13578]|1[02])(\/|-)31)|(?:(?:0?[1,3-9]|1[0-2])(\/|-)(?:29|30)))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(?:(?:0?[1-9]|1[0-2])(\/|-)(?:0?[1-9]|1\d|2[0-8]))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(0?2(\/|-)29)(\/|-)(?:(?:0[48]00|[13579][26]00|[2468][048]00)|(?:\d\d)?(?:0[48]|[2468][048]|[13579][26]))$/,
                    "alertText": "*
无效的日期格式"
                },
                //tls warning:homegrown not fielded 
				"dateTimeFormat": {
	                "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])\s+(1[012]|0?[1-9]){1}:(0?[1-5]|[0-6][0-9]){1}:(0?[0-6]|[0-6][0-9]){1}\s+(am|pm|AM|PM){1}$|^(?:(?:(?:0?[13578]|1[02])(\/|-)31)|(?:(?:0?[1,3-9]|1[0-2])(\/|-)(?:29|30)))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^((1[012]|0?[1-9]){1}\/(0?[1-9]|[12][0-9]|3[01]){1}\/\d{2,4}\s+(1[012]|0?[1-9]){1}:(0?[1-5]|[0-6][0-9]){1}:(0?[0-6]|[0-6][0-9]){1}\s+(am|pm|AM|PM){1})$/,
                    "alertText": "*
无效的日期或时间格式",
                    "alertText2": "可接受的格式:
",
                    "alertText3": "mm/dd/yyyy hh:mm:ss AM|PM
或 ", 
                    "alertText4": "yyyy-mm-dd hh:mm:ss
AM|PM"
	            }
            };
            
        }
    };
    $.validationEngineLanguage.newLang();
})(jQuery);
PKe�[~(�R+R+-js/languages/jquery.validationEngine-zh_TW.jsnu�[���(function($){
    $.fn.validationEngineLanguage = function(){
    };
    $.validationEngineLanguage = {
        newLang: function(){
            $.validationEngineLanguage.allRules = {
                "required": { // Add your regex rules here, you
can take telephone as an example
                    "regex": "none",
                    "alertText": "*
此欄位不可空白",
                    "alertTextCheckboxMultiple": "*
請選擇一個項目",
                    "alertTextCheckboxe": "*
您必需勾選此欄位",
                    "alertTextDateRange": "*
日期範圍欄位都不可空白"
                },
                "requiredInFunction": { 
                    "func": function(field, rules, i, options){
                        return (field.val() == "test") ? true :
false;
                    },
                    "alertText": "* Field must equal
test"
                },
                "dateRange": {
                    "regex": "none",
                    "alertText": "* 無效的 ",
                    "alertText2": " 日期範圍"
                },
                "dateTimeRange": {
                    "regex": "none",
                    "alertText": "* 無效的 ",
                    "alertText2": " 時間範圍"
                },
                "minSize": {
                    "regex": "none",
                    "alertText": "* 最少 ",
                    "alertText2": " 個字元"
                },
                "maxSize": {
                    "regex": "none",
                    "alertText": "* 最多 ",
                    "alertText2": " 個字元"
                },
				"groupRequired": {
                    "regex": "none",
                    "alertText": "*
你必需選填其中一個欄位"
                },
                "min": {
                    "regex": "none",
                    "alertText": "* 最小值為 "
                },
                "max": {
                    "regex": "none",
                    "alertText": "* 最大值為 "
                },
                "past": {
                    "regex": "none",
                    "alertText": "* 日期必需早於
"
                },
                "future": {
                    "regex": "none",
                    "alertText": "* 日期必需晚於
"
                },	
                "maxCheckbox": {
                    "regex": "none",
                    "alertText": "* 最多選取 ",
                    "alertText2": " 個項目"
                },
                "minCheckbox": {
                    "regex": "none",
                    "alertText": "* 請選取 ",
                    "alertText2": " 個項目"
                },
                "equals": {
                    "regex": "none",
                    "alertText": "*
欄位內容不相符"
                },
                "creditCard": {
                    "regex": "none",
                    "alertText": "*
无效的信用卡号码"
                },
                "phone": {
                    // credit: jquery.h5validate.js / orefalo
                    "regex": /^([\+][0-9]{1,3}[
\.\-])?([\(]{1}[0-9]{2,6}[\)])?([0-9 \.\-\/]{3,20})((x|ext|extension)[
]?[0-9]{1,4})?$/,
                    "alertText": "*
無效的電話號碼"
                },
                "email": {
                    // Shamelessly lifted from Scott Gonzalez via the
Bassistance Validation plugin
http://projects.scottsplayground.com/email_address_validation/
                    "regex":
/^((([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,
                    "alertText": "* Invalid email
address"
                },
                "integer": {
                    "regex": /^[\-\+]?\d+$/,
                    "alertText": "*
不是有效的整數"
                },
                "number": {
                    // Number, including positive, negative, and floating
decimal. credit: orefalo
                    "regex":
/^[\-\+]?((([0-9]{1,3})([,][0-9]{3})*)|([0-9]+))?([\.]([0-9]+))?$/,
                    "alertText": "* 無效的數字"
                },
                "date": {
                    "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/,
                    "alertText": "*
無效的日期,格式必需為 YYYY-MM-DD"
                },
                "ipv4": {
                    "regex":
/^((([01]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))[.]){3}(([0-1]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))$/,
                    "alertText": "* 無效的 IP
位址"
                },
                "url": {
                    "regex":
/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([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])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,
                    "alertText": "* Invalid URL"
                },
                "onlyNumberSp": {
                    "regex": /^[0-9\ ]+$/,
                    "alertText": "* 只能填數字"
                },
                "onlyLetterSp": {
                    "regex": /^[a-zA-Z\ \']+$/,
                    "alertText": "*
只接受英文字母大小寫"
                },
                "onlyLetterNumber": {
                    "regex": /^[0-9a-zA-Z]+$/,
                    "alertText": "*
不接受特殊字元"
                },
                // --- CUSTOM RULES -- Those are specific to the demos,
they can be removed or changed to your likings
                "ajaxUserCall": {
                    "url": "ajaxValidateFieldUser",
                    // you may want to pass extra data on the ajax call
                    "extraData": "name=eric",
                    "alertText": "*
此名稱已經被其他人使用",
                    "alertTextLoad": "*
正在確認名稱是否有其他人使用,請稍等。"
                },
				"ajaxUserCallPhp": {
                    "url":
"phpajax/ajaxValidateFieldUser.php",
                    // you may want to pass extra data on the ajax call
                    "extraData": "name=eric",
                    // if you provide an "alertTextOk", it will
show as a green prompt when the field validates
                    "alertTextOk": "*
此帳號名稱可以使用",
                    "alertText": "*
此帳號名稱已經被其他人使用",
                    "alertTextLoad": "*
正在確認帳號名稱是否有其他人使用,請稍等。"
                },
                "ajaxNameCall": {
                    // remote json service location
                    "url": "ajaxValidateFieldName",
                    // error
                    "alertText": "*
此名稱可以使用",
                    // if you provide an "alertTextOk", it will
show as a green prompt when the field validates
                    "alertTextOk": "*
此名稱已經被其他人使用",
                    // speaks by itself
                    "alertTextLoad": "*
正在確認名稱是否有其他人使用,請稍等。"
                },
				 "ajaxNameCallPhp": {
	                    // remote json service location
	                    "url":
"phpajax/ajaxValidateFieldName.php",
	                    // error
	                    "alertText": "*
此名稱已經被其他人使用",
	                    // speaks by itself
	                    "alertTextLoad": "*
正在確認名稱是否有其他人使用,請稍等。"
	                },
                "validate2fields": {
                    "alertText": "* 請輸入 HELLO"
                },
	            //tls warning:homegrown not fielded 
                "dateFormat":{
                    "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$|^(?:(?:(?:0?[13578]|1[02])(\/|-)31)|(?:(?:0?[1,3-9]|1[0-2])(\/|-)(?:29|30)))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(?:(?:0?[1-9]|1[0-2])(\/|-)(?:0?[1-9]|1\d|2[0-8]))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(0?2(\/|-)29)(\/|-)(?:(?:0[48]00|[13579][26]00|[2468][048]00)|(?:\d\d)?(?:0[48]|[2468][048]|[13579][26]))$/,
                    "alertText": "*
無效的日期格式"
                },
                //tls warning:homegrown not fielded 
				"dateTimeFormat": {
	                "regex":
/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])\s+(1[012]|0?[1-9]){1}:(0?[1-5]|[0-6][0-9]){1}:(0?[0-6]|[0-6][0-9]){1}\s+(am|pm|AM|PM){1}$|^(?:(?:(?:0?[13578]|1[02])(\/|-)31)|(?:(?:0?[1,3-9]|1[0-2])(\/|-)(?:29|30)))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^((1[012]|0?[1-9]){1}\/(0?[1-9]|[12][0-9]|3[01]){1}\/\d{2,4}\s+(1[012]|0?[1-9]){1}:(0?[1-5]|[0-6][0-9]){1}:(0?[0-6]|[0-6][0-9]){1}\s+(am|pm|AM|PM){1})$/,
                    "alertText": "*
無效的日期或時間格式",
                    "alertText2": "可接受的格式:
",
                    "alertText3": "mm/dd/yyyy hh:mm:ss AM|PM
或 ", 
                    "alertText4": "yyyy-mm-dd hh:mm:ss
AM|PM"
	            }
            };
            
        }
    };
    $.validationEngineLanguage.newLang();
})(jQuery);
PKe�[�
�]77css/customMessages.cssnu�[���PKe�[�j��}css/screenshot.pngnu�[���PKe�[
�����css/template.cssnu�[���PKe�[
��

�css/validationEngine.jquery.cssnu�[���PKe�[�	Y�
�
C�js/contrib/other-validations.jsnu�[���PKe�[cK��&&H�js/jquery.validationEngine.jsnu�[���PKe�[�~
�$�$*��js/languages/jquery.validationEngine-cz.jsnu�[���PKe�[���ڷ�*��js/languages/jquery.validationEngine-da.jsnu�[���PKe�[
?J1��*�js/languages/jquery.validationEngine-de.jsnu�[���PKe�[���++*/js/languages/jquery.validationEngine-en.jsnu�[���PKe�[9�U��*hZjs/languages/jquery.validationEngine-es.jsnu�[���PKe�[��axx*�zjs/languages/jquery.validationEngine-et.jsnu�[���PKe�[��h�q.q.*y�js/languages/jquery.validationEngine-fa.jsnu�[���PKe�[���"*D�js/languages/jquery.validationEngine-fi.jsnu�[���PKe�[����*��js/languages/jquery.validationEngine-fr.jsnu�[���PKe�[0��=�*�**�js/languages/jquery.validationEngine-hr.jsnu�[���PKe�[�W�D((*�.js/languages/jquery.validationEngine-hu.jsnu�[���PKe�[eg5L��*WWjs/languages/jquery.validationEngine-it.jsnu�[���PKe�[S=�08#8#*�sjs/languages/jquery.validationEngine-ja.jsnu�[���PKe�[kb��xx*�js/languages/jquery.validationEngine-nl.jsnu�[���PKe�[��ն)�)*�js/languages/jquery.validationEngine-no.jsnu�[���PKe�[d�\8!8!*��js/languages/jquery.validationEngine-pl.jsnu�[���PKe�[���5*5**�js/languages/jquery.validationEngine-pt.jsnu�[���PKe�[l��-,js/languages/jquery.validationEngine-pt_BR.jsnu�[���PKe�[“��p,p,*�Ijs/languages/jquery.validationEngine-ro.jsnu�[���PKe�[7��""""*Vvjs/languages/jquery.validationEngine-ru.jsnu�[���PKe�[8wԷ�#�#*Ҙjs/languages/jquery.validationEngine-se.jsnu�[���PKe�[�Ȅ��$�$*¼js/languages/jquery.validationEngine-tr.jsnu�[���PKe�[\��))*��js/languages/jquery.validationEngine-vi.jsnu�[���PKe�[�	�:+:+-kjs/languages/jquery.validationEngine-zh_CN.jsnu�[���PKe�[~(�R+R+-7js/languages/jquery.validationEngine-zh_TW.jsnu�[���PKv�b