http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/6b90be61/semantic/dist/components/form.min.css
----------------------------------------------------------------------
diff --git a/semantic/dist/components/form.min.css 
b/semantic/dist/components/form.min.css
new file mode 100755
index 0000000..889d927
--- /dev/null
+++ b/semantic/dist/components/form.min.css
@@ -0,0 +1,9 @@
+/*!
+ * # Semantic UI 2.2.6 - Form
+ * http://github.com/semantic-org/semantic-ui/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */.ui.form{position:relative;max-width:100%}.ui.form>p{margin:1em 0}.ui.form 
.field{clear:both;margin:0 0 1em}.ui.form .field:last-child,.ui.form 
.fields:last-child .field{margin-bottom:0}.ui.form .fields 
.field{clear:both;margin:0}.ui.form .field>label{display:block;margin:0 0 
.28571429rem;color:#262626;font-size:.92857143em;font-weight:700;text-transform:none}.ui.form
 input:not([type]),.ui.form input[type=date],.ui.form input[type=url],.ui.form 
input[type=datetime-local],.ui.form input[type=email],.ui.form 
input[type=number],.ui.form input[type=password],.ui.form 
input[type=search],.ui.form input[type=tel],.ui.form input[type=time],.ui.form 
input[type=text],.ui.form input[type=file],.ui.form 
textarea{width:100%;vertical-align:top}.ui.form 
::-webkit-datetime-edit,.ui.form 
::-webkit-inner-spin-button{height:1.2142em}.ui.form input:not([type]),.ui.form 
input[type=date],.ui.form input[type=url],.ui.form 
input[type=datetime-local],.ui.form input[type=email],.ui.form 
input[type=number]
 ,.ui.form input[type=password],.ui.form input[type=search],.ui.form 
input[type=tel],.ui.form input[type=time],.ui.form input[type=text],.ui.form 
input[type=file]{font-family:Lato,'Helvetica 
Neue',Arial,Helvetica,sans-serif;margin:0;outline:0;-webkit-appearance:none;tap-highlight-color:rgba(255,255,255,0);line-height:1.2142em;padding:.67861429em
 1em;font-size:1em;background:#EBEBEB;border:1px solid 
rgba(34,36,38,.15);color:#262626;border-radius:.28571429rem;box-shadow:0 0 0 0 
transparent inset;-webkit-transition:color .1s ease,border-color .1s 
ease;transition:color .1s ease,border-color .1s ease}.ui.form 
textarea{margin:0;-webkit-appearance:none;tap-highlight-color:rgba(255,255,255,0);padding:.78571429em
 1em;background:#EBEBEB;border:1px solid 
rgba(34,36,38,.15);outline:0;color:#262626;border-radius:.28571429rem;box-shadow:0
 0 0 0 transparent inset;-webkit-transition:color .1s ease,border-color .1s 
ease;transition:color .1s ease,border-color .1s 
ease;font-size:1em;line-height:1.2857;
 resize:vertical}.ui.form 
textarea:not([rows]){height:12em;min-height:8em;max-height:24em}.ui.form 
input[type=checkbox],.ui.form textarea{vertical-align:top}.ui.form 
input.attached{width:auto}.ui.form 
select{display:block;height:auto;width:100%;background:#EBEBEB;border:1px solid 
rgba(34,36,38,.15);border-radius:.28571429rem;box-shadow:0 0 0 0 transparent 
inset;padding:.62em 1em;color:#262626;-webkit-transition:color .1s 
ease,border-color .1s ease;transition:color .1s ease,border-color .1s 
ease}.ui.form .field>.selection.dropdown{width:100%}.ui.form 
.field>.selection.dropdown>.dropdown.icon{float:right}.ui.form 
.inline.field>.selection.dropdown,.ui.form .inline.fields 
.field>.selection.dropdown{width:auto}.ui.form 
.inline.field>.selection.dropdown>.dropdown.icon,.ui.form .inline.fields 
.field>.selection.dropdown>.dropdown.icon{float:none}.ui.form .field 
.ui.input,.ui.form .fields .field .ui.input,.ui.form .wide.field 
.ui.input{width:100%}.ui.form .inline.field:not(.wide) .ui.input,.u
 i.form .inline.fields .field:not(.wide) 
.ui.input{width:auto;vertical-align:middle}.ui.form .field .ui.input 
input,.ui.form .fields .field .ui.input input{width:auto}.ui.form .eight.fields 
.ui.input input,.ui.form .five.fields .ui.input input,.ui.form .four.fields 
.ui.input input,.ui.form .nine.fields .ui.input input,.ui.form .seven.fields 
.ui.input input,.ui.form .six.fields .ui.input input,.ui.form .ten.fields 
.ui.input input,.ui.form .three.fields .ui.input input,.ui.form .two.fields 
.ui.input input,.ui.form .wide.field .ui.input 
input{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;width:0}.ui.form 
.error.message,.ui.form .success.message,.ui.form 
.warning.message{display:none}.ui.form 
.message:first-child{margin-top:0}.ui.form .field 
.prompt.label{white-space:normal;background:#EBEBEB!important;border:1px solid 
#E0B4B4!important;color:#9F3A38!important}.ui.form .inline.field 
.prompt,.ui.form .inline.fields .field .prompt{vertical-align:top;margin:-.25em 
0 -.5em .5em}.ui.form
  .inline.field .prompt:before,.ui.form .inline.fields .field 
.prompt:before{border-width:0 0 1px 
1px;bottom:auto;right:auto;top:50%;left:0}.ui.form .field.field 
input:-webkit-autofill{box-shadow:0 0 0 100px ivory 
inset!important;border-color:#E5DFA1!important}.ui.form .field.field 
input:-webkit-autofill:focus{box-shadow:0 0 0 100px ivory 
inset!important;border-color:#D5C315!important}.ui.form .error.error 
input:-webkit-autofill{box-shadow:0 0 0 100px #FFFAF0 
inset!important;border-color:#E0B4B4!important}.ui.form 
::-webkit-input-placeholder{color:#e5e5e5}.ui.form 
:-ms-input-placeholder{color:#e5e5e5}.ui.form 
::-moz-placeholder{color:#e5e5e5}.ui.form 
:focus::-webkit-input-placeholder{color:#999}.ui.form 
:focus:-ms-input-placeholder{color:#999}.ui.form 
:focus::-moz-placeholder{color:#999}.ui.form .error 
::-webkit-input-placeholder{color:#e7bdbc}.ui.form .error 
:-ms-input-placeholder{color:#e7bdbc!important}.ui.form .error 
::-moz-placeholder{color:#e7bdbc}.ui.form .error :focus::-webki
 t-input-placeholder{color:#da9796}.ui.form .error 
:focus:-ms-input-placeholder{color:#da9796!important}.ui.form .error 
:focus::-moz-placeholder{color:#da9796}.ui.form 
input:not([type]):focus,.ui.form input[type=date]:focus,.ui.form 
input[type=url]:focus,.ui.form input[type=datetime-local]:focus,.ui.form 
input[type=email]:focus,.ui.form input[type=number]:focus,.ui.form 
input[type=password]:focus,.ui.form input[type=search]:focus,.ui.form 
input[type=tel]:focus,.ui.form input[type=time]:focus,.ui.form 
input[type=text]:focus,.ui.form 
input[type=file]:focus{color:rgba(0,0,0,.95);border-color:#85B7D9;border-radius:.28571429rem;background:#EBEBEB;box-shadow:0
 0 0 0 rgba(34,36,38,.35) inset}.ui.form 
textarea:focus{color:rgba(0,0,0,.95);border-color:#85B7D9;border-radius:.28571429rem;background:#EBEBEB;box-shadow:0
 0 0 0 rgba(34,36,38,.35) inset;-webkit-appearance:none}.ui.form.success 
.success.message:not(:empty){display:block}.ui.form.success 
.compact.success.message:not(:empty){display:i
 nline-block}.ui.form.success 
.icon.success.message:not(:empty){display:-webkit-box;display:-ms-flexbox;display:flex}.ui.form.warning
 .warning.message:not(:empty){display:block}.ui.form.warning 
.compact.warning.message:not(:empty){display:inline-block}.ui.form.warning 
.icon.warning.message:not(:empty){display:-webkit-box;display:-ms-flexbox;display:flex}.ui.form.error
 .error.message:not(:empty){display:block}.ui.form.error 
.compact.error.message:not(:empty){display:inline-block}.ui.form.error 
.icon.error.message:not(:empty){display:-webkit-box;display:-ms-flexbox;display:flex}.ui.form
 .field.error .input,.ui.form .field.error label,.ui.form .fields.error .field 
.input,.ui.form .fields.error .field label{color:#9F3A38}.ui.form .field.error 
.corner.label,.ui.form .fields.error .field 
.corner.label{border-color:#9F3A38;color:#EBEBEB}.ui.form .field.error 
input:not([type]),.ui.form .field.error input[type=date],.ui.form .field.error 
input[type=url],.ui.form .field.error input[type=dateti
 me-local],.ui.form .field.error input[type=email],.ui.form .field.error 
input[type=number],.ui.form .field.error input[type=password],.ui.form 
.field.error input[type=search],.ui.form .field.error input[type=tel],.ui.form 
.field.error input[type=time],.ui.form .field.error input[type=text],.ui.form 
.field.error input[type=file],.ui.form .field.error select,.ui.form 
.field.error textarea,.ui.form .fields.error .field input:not([type]),.ui.form 
.fields.error .field input[type=date],.ui.form .fields.error .field 
input[type=url],.ui.form .fields.error .field 
input[type=datetime-local],.ui.form .fields.error .field 
input[type=email],.ui.form .fields.error .field input[type=number],.ui.form 
.fields.error .field input[type=password],.ui.form .fields.error .field 
input[type=search],.ui.form .fields.error .field input[type=tel],.ui.form 
.fields.error .field input[type=time],.ui.form .fields.error .field 
input[type=text],.ui.form .fields.error .field input[type=file],.ui.form 
.fields.error .f
 ield select,.ui.form .fields.error .field 
textarea{background:#FFF6F6;border-color:#E0B4B4;color:#9F3A38;border-radius:'';box-shadow:none}.ui.form
 .field.error input:not([type]):focus,.ui.form .field.error 
input[type=date]:focus,.ui.form .field.error input[type=url]:focus,.ui.form 
.field.error input[type=datetime-local]:focus,.ui.form .field.error 
input[type=email]:focus,.ui.form .field.error input[type=number]:focus,.ui.form 
.field.error input[type=password]:focus,.ui.form .field.error 
input[type=search]:focus,.ui.form .field.error input[type=tel]:focus,.ui.form 
.field.error input[type=time]:focus,.ui.form .field.error 
input[type=text]:focus,.ui.form .field.error input[type=file]:focus,.ui.form 
.field.error select:focus,.ui.form .field.error 
textarea:focus{background:#FFF6F6;border-color:#E0B4B4;color:#9F3A38;-webkit-appearance:none;box-shadow:none}.ui.form
 .field.error select{-webkit-appearance:menulist-button}.ui.form .field.error 
.ui.dropdown,.ui.form .field.error .ui.dropdown .
 item,.ui.form .field.error .ui.dropdown .text,.ui.form .fields.error .field 
.ui.dropdown,.ui.form .fields.error .field .ui.dropdown 
.item{background:#FFF6F6;color:#9F3A38}.ui.form .field.error 
.ui.dropdown,.ui.form .field.error .ui.dropdown:hover,.ui.form .fields.error 
.field .ui.dropdown,.ui.form .fields.error .field 
.ui.dropdown:hover{border-color:#E0B4B4!important}.ui.form .field.error 
.ui.dropdown:hover .menu,.ui.form .fields.error .field .ui.dropdown:hover 
.menu{border-color:#E0B4B4}.ui.form .field.error 
.ui.multiple.selection.dropdown>.label,.ui.form .fields.error .field 
.ui.multiple.selection.dropdown>.label{background-color:#EACBCB;color:#9F3A38}.ui.form
 .field.error .ui.dropdown .menu .item:hover,.ui.form .field.error .ui.dropdown 
.menu .selected.item,.ui.form .fields.error .field .ui.dropdown .menu 
.item:hover,.ui.form .fields.error .field .ui.dropdown .menu 
.selected.item{background-color:#FBE7E7}.ui.form .field.error .ui.dropdown 
.menu .active.item,.ui.form .fields.error
  .field .ui.dropdown .menu 
.active.item{background-color:#FDCFCF!important}.ui.form .field.error 
.checkbox:not(.toggle):not(.slider) .box,.ui.form .field.error 
.checkbox:not(.toggle):not(.slider) label,.ui.form .fields.error .field 
.checkbox:not(.toggle):not(.slider) .box,.ui.form .fields.error .field 
.checkbox:not(.toggle):not(.slider) label{color:#9F3A38}.ui.form .field.error 
.checkbox:not(.toggle):not(.slider) .box:before,.ui.form .field.error 
.checkbox:not(.toggle):not(.slider) label:before,.ui.form .fields.error .field 
.checkbox:not(.toggle):not(.slider) .box:before,.ui.form .fields.error .field 
.checkbox:not(.toggle):not(.slider) 
label:before{background:#FFF6F6;border-color:#E0B4B4}.ui.form .field.error 
.checkbox .box:after,.ui.form .field.error .checkbox label:after,.ui.form 
.fields.error .field .checkbox .box:after,.ui.form .fields.error .field 
.checkbox label:after{color:#9F3A38}.ui.form .disabled.field,.ui.form 
.disabled.fields .field,.ui.form .field :disabled{pointer-even
 ts:none;opacity:.45}.ui.form .field.disabled>label,.ui.form 
.fields.disabled>label{opacity:.45}.ui.form .field.disabled 
:disabled{opacity:1}.ui.loading.form{position:relative;cursor:default;pointer-events:none}.ui.loading.form:before{position:absolute;content:'';top:0;left:0;background:rgba(255,255,255,.8);width:100%;height:100%;z-index:100}.ui.loading.form:after{position:absolute;content:'';top:50%;left:50%;margin:-1.5em
 0 0 -1.5em;width:3em;height:3em;-webkit-animation:form-spin .6s 
linear;animation:form-spin .6s 
linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border-color:#54595B
 rgba(0,0,0,.1) 
rgba(0,0,0,.1);border-style:solid;border-width:.2em;box-shadow:0 0 0 1px 
transparent;visibility:visible;z-index:101}@-webkit-keyframes 
form-spin{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes
 form-spin{from{-webkit-transform:rotate(0);transform:rotate(0)}
 to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.ui.form 
.required.field>.checkbox:after,.ui.form .required.field>label:after,.ui.form 
.required.fields.grouped>label:after,.ui.form 
.required.fields:not(.grouped)>.field>.checkbox:after,.ui.form 
.required.fields:not(.grouped)>.field>label:after{margin:-.2em 0 0 
.2em;content:'*';color:#E24614}.ui.form .required.field>label:after,.ui.form 
.required.fields.grouped>label:after,.ui.form 
.required.fields:not(.grouped)>.field>label:after{display:inline-block;vertical-align:top}.ui.form
 .required.field>.checkbox:after,.ui.form 
.required.fields:not(.grouped)>.field>.checkbox:after{position:absolute;top:0;left:100%}.ui.form
 .inverted.segment .ui.checkbox .box,.ui.form .inverted.segment .ui.checkbox 
label,.ui.form .inverted.segment label,.ui.inverted.form 
.inline.field>label,.ui.inverted.form .inline.field>p,.ui.inverted.form 
.inline.fields .field>label,.ui.inverted.form .inline.fields 
.field>p,.ui.inverted.form .inline.fields>labe
 l,.ui.inverted.form .ui.checkbox .box,.ui.inverted.form .ui.checkbox 
label,.ui.inverted.form label{color:rgba(255,255,255,.9)}.ui.inverted.form 
input:not([type]),.ui.inverted.form input[type=date],.ui.inverted.form 
input[type=url],.ui.inverted.form input[type=datetime-local],.ui.inverted.form 
input[type=email],.ui.inverted.form input[type=number],.ui.inverted.form 
input[type=password],.ui.inverted.form input[type=search],.ui.inverted.form 
input[type=tel],.ui.inverted.form input[type=time],.ui.inverted.form 
input[type=text],.ui.inverted.form 
input[type=file]{background:#EBEBEB;border-color:rgba(255,255,255,.1);color:#262626;box-shadow:none}.ui.form
 .grouped.fields{display:block;margin:0 0 1em}.ui.form 
.grouped.fields:last-child{margin-bottom:0}.ui.form 
.grouped.fields>label{margin:0 0 
.28571429rem;color:#262626;font-size:.92857143em;font-weight:700;text-transform:none}.ui.form
 .grouped.fields .field,.ui.form .grouped.inline.fields 
.field{display:block;margin:.5em 0;padding:0}.ui.form
  
.fields{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;margin:0
 -.5em 1em}.ui.form .fields>.field{-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 
1 auto;padding-left:.5em;padding-right:.5em}.ui.form 
.fields>.field:first-child{border-left:none;box-shadow:none}.ui.form 
.two.fields>.field,.ui.form .two.fields>.fields{width:50%}.ui.form 
.three.fields>.field,.ui.form .three.fields>.fields{width:33.33333333%}.ui.form 
.four.fields>.field,.ui.form .four.fields>.fields{width:25%}.ui.form 
.five.fields>.field,.ui.form .five.fields>.fields{width:20%}.ui.form 
.six.fields>.field,.ui.form .six.fields>.fields{width:16.66666667%}.ui.form 
.seven.fields>.field,.ui.form .seven.fields>.fields{width:14.28571429%}.ui.form 
.eight.fields>.field,.ui.form .eight.fields>.fields{width:12.5%}.ui.form 
.nine.fields>.field,.ui.form .nine.fields>.fields{width:11.11111111%}.ui.form 
.ten.fields>.field,.ui.form .ten.
 fields>.fields{width:10%}@media only screen and (max-width:767px){.ui.form 
.fields{-ms-flex-wrap:wrap;flex-wrap:wrap}.ui.form 
.eight.fields>.field,.ui.form .eight.fields>.fields,.ui.form 
.five.fields>.field,.ui.form .five.fields>.fields,.ui.form 
.four.fields>.field,.ui.form .four.fields>.fields,.ui.form 
.nine.fields>.field,.ui.form .nine.fields>.fields,.ui.form 
.seven.fields>.field,.ui.form .seven.fields>.fields,.ui.form 
.six.fields>.field,.ui.form .six.fields>.fields,.ui.form 
.ten.fields>.field,.ui.form .ten.fields>.fields,.ui.form 
.three.fields>.field,.ui.form .three.fields>.fields,.ui.form 
.two.fields>.field,.ui.form .two.fields>.fields,.ui.form [class*="equal 
width"].fields>.field,.ui[class*="equal width"].form 
.fields>.field{width:100%!important;margin:0 0 1em}}.ui.form .fields 
.wide.field{width:6.25%;padding-left:.5em;padding-right:.5em}.ui.form 
.one.wide.field{width:6.25%!important}.ui.form 
.two.wide.field{width:12.5%!important}.ui.form 
.three.wide.field{width:18.75%!importan
 t}.ui.form .four.wide.field{width:25%!important}.ui.form 
.five.wide.field{width:31.25%!important}.ui.form 
.six.wide.field{width:37.5%!important}.ui.form 
.seven.wide.field{width:43.75%!important}.ui.form 
.eight.wide.field{width:50%!important}.ui.form 
.nine.wide.field{width:56.25%!important}.ui.form 
.ten.wide.field{width:62.5%!important}.ui.form 
.eleven.wide.field{width:68.75%!important}.ui.form 
.twelve.wide.field{width:75%!important}.ui.form 
.thirteen.wide.field{width:81.25%!important}.ui.form 
.fourteen.wide.field{width:87.5%!important}.ui.form 
.fifteen.wide.field{width:93.75%!important}.ui.form 
.sixteen.wide.field{width:100%!important}@media only screen and 
(max-width:767px){.ui.form .fields>.eight.wide.field,.ui.form 
.fields>.eleven.wide.field,.ui.form .fields>.fifteen.wide.field,.ui.form 
.fields>.five.wide.field,.ui.form .fields>.four.wide.field,.ui.form 
.fields>.fourteen.wide.field,.ui.form .fields>.nine.wide.field,.ui.form 
.fields>.seven.wide.field,.ui.form .fields>.six.wide.fie
 ld,.ui.form .fields>.sixteen.wide.field,.ui.form 
.fields>.ten.wide.field,.ui.form .fields>.thirteen.wide.field,.ui.form 
.fields>.three.wide.field,.ui.form .fields>.twelve.wide.field,.ui.form 
.fields>.two.wide.field,.ui.form .five.fields>.field,.ui.form 
.five.fields>.fields,.ui.form .four.fields>.field,.ui.form 
.four.fields>.fields,.ui.form .three.fields>.field,.ui.form 
.three.fields>.fields,.ui.form .two.fields>.field,.ui.form 
.two.fields>.fields{width:100%!important}.ui.form 
.fields{margin-bottom:0}}.ui.form [class*="equal 
width"].fields>.field,.ui[class*="equal width"].form 
.fields>.field{width:100%;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 
auto}.ui.form .inline.fields{margin:0 0 
1em;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.ui.form 
.inline.fields .field{margin:0;padding:0 1em 0 0}.ui.form 
.inline.field>label,.ui.form .inline.field>p,.ui.form .inline.fields 
.field>label,.ui.form .inline.fields .field>p,.ui.form 
.inline.fields>label{display:inline-block
 
;width:auto;margin-top:0;margin-bottom:0;vertical-align:baseline;font-size:.92857143em;font-weight:700;color:#262626;text-transform:none}.ui.form
 .inline.fields>label{margin:.035714em 1em 0 0}.ui.form 
.inline.field>input,.ui.form .inline.field>select,.ui.form .inline.fields 
.field>input,.ui.form .inline.fields 
.field>select{display:inline-block;width:auto;margin-top:0;margin-bottom:0;vertical-align:middle;font-size:1em}.ui.form
 .inline.field>:first-child,.ui.form .inline.fields 
.field>:first-child{margin:0 .85714286em 0 0}.ui.form 
.inline.field>:only-child,.ui.form .inline.fields 
.field>:only-child{margin:0}.ui.form .inline.fields 
.wide.field{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.ui.form
 .inline.fields .wide.field>input,.ui.form .inline.fields 
.wide.field>select{width:100%}.ui.mini.form{font-size:.78571429rem}.ui.tiny.form{font-size:.85714286rem}.ui.small.form{font-size:.92857143rem}.ui.form{font-size:
 
1rem}.ui.large.form{font-size:1.14285714rem}.ui.big.form{font-size:1.28571429rem}.ui.huge.form{font-size:1.42857143rem}.ui.massive.form{font-size:1.71428571rem}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft/blob/6b90be61/semantic/dist/components/form.min.js
----------------------------------------------------------------------
diff --git a/semantic/dist/components/form.min.js 
b/semantic/dist/components/form.min.js
new file mode 100644
index 0000000..c37404c
--- /dev/null
+++ b/semantic/dist/components/form.min.js
@@ -0,0 +1,10 @@
+/*!
+ * # Semantic UI 2.2.6 - Form Validation
+ * http://github.com/semantic-org/semantic-ui/
+ *
+ *
+ * Released under the MIT license
+ * http://opensource.org/licenses/MIT
+ *
+ */
+!function(e,t,n,r){"use strict";t="undefined"!=typeof 
t&&t.Math==Math?t:"undefined"!=typeof 
self&&self.Math==Math?self:Function("return this")(),e.fn.form=function(t){var 
i,a=e(this),o=a.selector||"",l=(new 
Date).getTime(),s=[],u=arguments[0],c=arguments[1],f="string"==typeof 
u,d=[].slice.call(arguments,1);return a.each(function(){var 
p,m,g,h,v,b,y,x,k,E,w,C,V,R,S,F,A,T,j=e(this),D=this,O=[],z=!1;T={initialize:function(){T.get.settings(),f?(A===r&&T.instantiate(),T.invoke(u)):(A!==r&&A.invoke("destroy"),T.verbose("Initializing
 form 
validation",j,x),T.bindEvents(),T.set.defaults(),T.instantiate())},instantiate:function(){T.verbose("Storing
 instance of 
module",T),A=T,j.data(S,T)},destroy:function(){T.verbose("Destroying previous 
module",A),T.removeEvents(),j.removeData(S)},refresh:function(){T.verbose("Refreshing
 selector 
cache"),p=j.find(w.field),m=j.find(w.group),g=j.find(w.message),h=j.find(w.prompt),v=j.find(w.submit),b=j.find(w.clear),y=j.find(w.reset)},submit:function(){T.verbos
 e("Submitting 
form",j),j.submit()},attachEvents:function(t,n){n=n||"submit",e(t).on("click"+F,function(e){T[n](),e.preventDefault()})},bindEvents:function(){T.verbose("Attaching
 form 
events"),j.on("submit"+F,T.validate.form).on("blur"+F,w.field,T.event.field.blur).on("click"+F,w.submit,T.submit).on("click"+F,w.reset,T.reset).on("click"+F,w.clear,T.clear),x.keyboardShortcuts&&j.on("keydown"+F,w.field,T.event.field.keydown),p.each(function(){var
 
t=e(this),n=t.prop("type"),r=T.get.changeEvent(n,t);e(this).on(r+F,T.event.field.change)})},clear:function(){p.each(function(){var
 
t=e(this),n=t.parent(),r=t.closest(m),i=r.find(w.prompt),a=t.data(E.defaultValue)||"",o=n.is(w.uiCheckbox),l=n.is(w.uiDropdown),s=r.hasClass(C.error);s&&(T.verbose("Resetting
 error on field",r),r.removeClass(C.error),i.remove()),l?(T.verbose("Resetting 
dropdown 
value",n,a),n.dropdown("clear")):o?t.prop("checked",!1):(T.verbose("Resetting 
field value",t,a),t.val(""))})},reset:function(){p.each(function(){var t=e(thi
 
s),n=t.parent(),i=t.closest(m),a=i.find(w.prompt),o=t.data(E.defaultValue),l=n.is(w.uiCheckbox),s=n.is(w.uiDropdown),u=i.hasClass(C.error);o!==r&&(u&&(T.verbose("Resetting
 error on field",i),i.removeClass(C.error),a.remove()),s?(T.verbose("Resetting 
dropdown value",n,o),n.dropdown("restore defaults")):l?(T.verbose("Resetting 
checkbox value",n,o),t.prop("checked",o)):(T.verbose("Resetting field 
value",t,o),t.val(o)))})},is:{bracketedRule:function(e){return 
e.type&&e.type.match(x.regExp.bracket)},empty:function(e){return!e||0===e.length||(e.is('input[type="checkbox"]')?!e.is(":checked"):T.is.blank(e))},blank:function(t){return""===e.trim(t.val())},valid:function(){var
 t=!0;return T.verbose("Checking if form is 
valid"),e.each(k,function(e,n){T.validate.field(n,e)||(t=!1)}),t}},removeEvents:function(){j.off(F),p.off(F),v.off(F),p.off(F)},event:{field:{keydown:function(t){var
 
n=e(this),r=t.which,i=n.is(w.input),a=n.is(w.checkbox),o=n.closest(w.uiDropdown).length>0,l={enter:13,escape:27};
 r==l.escape&&(T.verbose("Escape key pressed blurring 
field"),n.blur()),t.ctrlKey||r!=l.enter||!i||o||a||(z||(n.one("keyup"+F,T.event.field.keyup),T.submit(),T.debug("Enter
 pressed on input submitting 
form")),z=!0)},keyup:function(){z=!1},blur:function(t){var 
n=e(this),r=n.closest(m),i=T.get.validation(n);r.hasClass(C.error)?(T.debug("Revalidating
 
field",n,i),i&&T.validate.field(i)):"blur"!=x.on&&"change"!=x.on||i&&T.validate.field(i)},change:function(t){var
 
n=e(this),r=n.closest(m),i=T.get.validation(n);("change"==x.on||r.hasClass(C.error)&&x.revalidate)&&(clearTimeout(T.timer),T.timer=setTimeout(function(){T.debug("Revalidating
 
field",n,T.get.validation(n)),T.validate.field(i)},x.delay))}}},get:{ancillaryValue:function(e){return!(!e.type||!e.value&&!T.is.bracketedRule(e))&&(e.value!==r?e.value:e.type.match(x.regExp.bracket)[1]+"")},ruleName:function(e){return
 
T.is.bracketedRule(e)?e.type.replace(e.type.match(x.regExp.bracket)[0],""):e.type},changeEvent:function(e,t){return"checkbox
 
"==e||"radio"==e||"hidden"==e||t.is("select")?"change":T.get.inputEvent()},inputEvent:function(){return
 
n.createElement("input").oninput!==r?"input":n.createElement("input").onpropertychange!==r?"propertychange":"keyup"},prompt:function(e,t){var
 
n,r,i,a=T.get.ruleName(e),o=T.get.ancillaryValue(e),l=e.prompt||x.prompt[a]||x.text.unspecifiedRule,s=l.search("{value}")!==-1,u=l.search("{name}")!==-1;return(u||s)&&(r=T.get.field(t.identifier)),s&&(l=l.replace("{value}",r.val())),u&&(n=r.closest(w.group).find("label").eq(0),i=1==n.length?n.text():r.prop("placeholder")||x.text.unspecifiedField,l=l.replace("{name}",i)),l=l.replace("{identifier}",t.identifier),l=l.replace("{ruleValue}",o),e.prompt||T.verbose("Using
 default validation prompt for 
type",l,a),l},settings:function(){if(e.isPlainObject(t)){var 
n,i=Object.keys(t),a=i.length>0&&(t[i[0]].identifier!==r&&t[i[0]].rules!==r);a?(x=e.extend(!0,{},e.fn.form.settings,c),k=e.extend({},e.fn.form.settings.defaults,t),T.error(x.error.oldSyntax,
 D),T.verbose("Extending settings from legacy 
parameters",k,x)):(t.fields&&(n=Object.keys(t.fields),("string"==typeof 
t.fields[n[0]]||e.isArray(t.fields[n[0]]))&&e.each(t.fields,function(n,r){"string"==typeof
 
r&&(r=[r]),t.fields[n]={rules:[]},e.each(r,function(e,r){t.fields[n].rules.push({type:r})})})),x=e.extend(!0,{},e.fn.form.settings,t),k=e.extend({},e.fn.form.settings.defaults,x.fields),T.verbose("Extending
 settings",k,x))}else 
x=e.fn.form.settings,k=e.fn.form.settings.defaults,T.verbose("Using default 
form 
validation",k,x);R=x.namespace,E=x.metadata,w=x.selector,C=x.className,V=x.error,S="module-"+R,F="."+R,A=j.data(S),T.refresh()},field:function(t){return
 T.verbose("Finding field with 
identifier",t),p.filter("#"+t).length>0?p.filter("#"+t):p.filter('[name="'+t+'"]').length>0?p.filter('[name="'+t+'"]'):p.filter('[name="'+t+'[]"]').length>0?p.filter('[name="'+t+'[]"]'):p.filter("[data-"+E.validate+'="'+t+'"]').length>0?p.filter("[data-"+E.validate+'="'+t+'"]'):e("<input/>")},fie
 lds:function(t){var n=e();return 
e.each(t,function(e,t){n=n.add(T.get.field(t))}),n},validation:function(t){var 
n,r;return!!k&&(e.each(k,function(e,i){r=i.identifier||e,T.get.field(r)[0]==t[0]&&(i.identifier=r,n=i)}),n||!1)},value:function(e){var
 t,n=[];return n.push(e),t=T.get.values.call(D,n),t[e]},values:function(t){var 
n=e.isArray(t)?T.get.fields(t):p,r={};return n.each(function(t,n){var 
i=e(n),a=(i.prop("type"),i.prop("name")),o=i.val(),l=i.is(w.checkbox),s=i.is(w.radio),u=a.indexOf("[]")!==-1,c=!!l&&i.is(":checked");a&&(u?(a=a.replace("[]",""),r[a]||(r[a]=[]),l?c?r[a].push(o||!0):r[a].push(!1):r[a].push(o)):s?c&&(r[a]=o):l?c?r[a]=o||!0:r[a]=!1:r[a]=o)}),r}},has:{field:function(e){return
 T.verbose("Checking for existence of a field with 
identifier",e),"string"!=typeof 
e&&T.error(V.identifier,e),p.filter("#"+e).length>0||(p.filter('[name="'+e+'"]').length>0||p.filter("[data-"+E.validate+'="'+e+'"]').length>0)}},add:{prompt:function(t,n){var
 i=T.get.field(t),a=i.closest(m),o=a.ch
 ildren(w.prompt),l=0!==o.length;n="string"==typeof n?[n]:n,T.verbose("Adding 
field error 
state",t),a.addClass(C.error),x.inline&&(l||(o=x.templates.prompt(n),o.appendTo(a)),o.html(n[0]),l?T.verbose("Inline
 errors are disabled, no inline error 
added",t):x.transition&&e.fn.transition!==r&&j.transition("is 
supported")?(T.verbose("Displaying error with css 
transition",x.transition),o.transition(x.transition+" 
in",x.duration)):(T.verbose("Displaying error with fallback javascript 
animation"),o.fadeIn(x.duration)))},errors:function(e){T.debug("Adding form 
error 
messages",e),T.set.error(),g.html(x.templates.error(e))}},remove:{prompt:function(t){var
 
n=T.get.field(t),i=n.closest(m),a=i.children(w.prompt);i.removeClass(C.error),x.inline&&a.is(":visible")&&(T.verbose("Removing
 prompt for field",t),x.transition&&e.fn.transition!==r&&j.transition("is 
supported")?a.transition(x.transition+" 
out",x.duration,function(){a.remove()}):a.fadeOut(x.duration,function(){a.remove()}))}},set:{success:funct
 
ion(){j.removeClass(C.error).addClass(C.success)},defaults:function(){p.each(function(){var
 
t=e(this),n=t.filter(w.checkbox).length>0,r=n?t.is(":checked"):t.val();t.data(E.defaultValue,r)})},error:function(){j.removeClass(C.success).addClass(C.error)},value:function(e,t){var
 n={};return 
n[e]=t,T.set.values.call(D,n)},values:function(t){e.isEmptyObject(t)||e.each(t,function(t,n){var
 
r,i=T.get.field(t),a=i.parent(),o=e.isArray(n),l=a.is(w.uiCheckbox),s=a.is(w.uiDropdown),u=i.is(w.radio)&&l,c=i.length>0;c&&(o&&l?(T.verbose("Selecting
 
multiple",n,i),a.checkbox("uncheck"),e.each(n,function(e,t){r=i.filter('[value="'+t+'"]'),a=r.parent(),r.length>0&&a.checkbox("check")})):u?(T.verbose("Selecting
 radio 
value",n,i),i.filter('[value="'+n+'"]').parent(w.uiCheckbox).checkbox("check")):l?(T.verbose("Setting
 checkbox 
value",n,a),n===!0?a.checkbox("check"):a.checkbox("uncheck")):s?(T.verbose("Setting
 dropdown value",n,a),a.dropdown("set selected",n)):(T.verbose("Setting field 
value",n,i),i.val(n)
 ))})}},validate:{form:function(e,t){var 
n=T.get.values();if(z)return!1;if(O=[],T.is.valid()){if(T.debug("Form has no 
validation errors, submitting"),T.set.success(),t!==!0)return 
x.onSuccess.call(D,e,n)}else if(T.debug("Form has 
errors"),T.set.error(),x.inline||T.add.errors(O),j.data("moduleApi")!==r&&e.stopImmediatePropagation(),t!==!0)return
 x.onFailure.call(D,O,n)},field:function(t,n){var 
i=t.identifier||n,a=T.get.field(i),o=!!t.depends&&T.get.field(t.depends),l=!0,s=[];return
 t.identifier||(T.debug("Using field name as 
identifier",i),t.identifier=i),a.prop("disabled")?(T.debug("Field is disabled. 
Skipping",i),l=!0):t.optional&&T.is.blank(a)?(T.debug("Field is optional and 
blank. Skipping",i),l=!0):t.depends&&T.is.empty(o)?(T.debug("Field depends on 
another value that is not present or empty. 
Skipping",o),l=!0):t.rules!==r&&e.each(t.rules,function(e,n){T.has.field(i)&&!T.validate.rule(t,n)&&(T.debug("Field
 is invalid",i,n.type),s.push(T.get.prompt(n,t)),l=!1)}),l?(T.remove.prompt
 
(i,s),x.onValid.call(a),!0):(O=O.concat(s),T.add.prompt(i,s),x.onInvalid.call(a,s),!1)},rule:function(t,n){var
 
i=T.get.field(t.identifier),a=(n.type,i.val()),o=T.get.ancillaryValue(n),l=T.get.ruleName(n),s=x.rules[l];return
 e.isFunction(s)?(a=a===r||""===a||null===a?"":e.trim(a+""),s.call(i,a,o)):void 
T.error(V.noRule,l)}},setting:function(t,n){if(e.isPlainObject(t))e.extend(!0,x,t);else{if(n===r)return
 
x[t];x[t]=n}},internal:function(t,n){if(e.isPlainObject(t))e.extend(!0,T,t);else{if(n===r)return
 
T[t];T[t]=n}},debug:function(){!x.silent&&x.debug&&(x.performance?T.performance.log(arguments):(T.debug=Function.prototype.bind.call(console.info,console,x.name+":"),T.debug.apply(console,arguments)))},verbose:function(){!x.silent&&x.verbose&&x.debug&&(x.performance?T.performance.log(arguments):(T.verbose=Function.prototype.bind.call(console.info,console,x.name+":"),T.verbose.apply(console,arguments)))},error:function(){x.silent||(T.error=Function.prototype.bind.call(console.error,console
 
,x.name+":"),T.error.apply(console,arguments))},performance:{log:function(e){var
 t,n,r;x.performance&&(t=(new 
Date).getTime(),r=l||t,n=t-r,l=t,s.push({Name:e[0],Arguments:[].slice.call(e,1)||"",Element:D,"Execution
 
Time":n})),clearTimeout(T.performance.timer),T.performance.timer=setTimeout(T.performance.display,500)},display:function(){var
 
t=x.name+":",n=0;l=!1,clearTimeout(T.performance.timer),e.each(s,function(e,t){n+=t["Execution
 Time"]}),t+=" "+n+"ms",o&&(t+=" '"+o+"'"),a.length>1&&(t+=" 
("+a.length+")"),(console.group!==r||console.table!==r)&&s.length>0&&(console.groupCollapsed(t),console.table?console.table(s):e.each(s,function(e,t){console.log(t.Name+":
 "+t["Execution 
Time"]+"ms")}),console.groupEnd()),s=[]}},invoke:function(t,n,a){var 
o,l,s,u=A;return n=n||d,a=D||a,"string"==typeof t&&u!==r&&(t=t.split(/[\. 
]/),o=t.length-1,e.each(t,function(n,i){var 
a=n!=o?i+t[n+1].charAt(0).toUpperCase()+t[n+1].slice(1):t;if(e.isPlainObject(u[a])&&n!=o)u=u[a];else{if(u[a]!==r)return
 l=u[a]
 ,!1;if(!e.isPlainObject(u[i])||n==o)return 
u[i]!==r&&(l=u[i],!1);u=u[i]}})),e.isFunction(l)?s=l.apply(a,n):l!==r&&(s=l),e.isArray(i)?i.push(s):i!==r?i=[i,s]:s!==r&&(i=s),l}},T.initialize()}),i!==r?i:this},e.fn.form.settings={name:"Form",namespace:"form",debug:!1,verbose:!1,performance:!0,fields:!1,keyboardShortcuts:!0,on:"submit",inline:!1,delay:200,revalidate:!0,transition:"scale",duration:200,onValid:function(){},onInvalid:function(){},onSuccess:function(){return!0},onFailure:function(){return!1},metadata:{defaultValue:"default",validate:"validate"},regExp:{bracket:/\[(.*)\]/i,decimal:/^\d*(\.)\d+/,email:/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,escape:/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,flags:/^\/(.*)\/(.*)?/,integer:/^\-?\d+$/,number:/^\-?\d*(\.\d+)?$/,url:/(https?:\/\/(?:www\.|(?!www))[^\s\.]+\.[^\s]{2,}|www\.[^\s]+\.[^\s]{2,})/i},text:{unspecifiedRule:"Please
 enter a valid value",unspecifiedField:"This field"},prompt:
 {empty:"{name} must have a value",checked:"{name} must be 
checked",email:"{name} must be a valid e-mail",url:"{name} must be a valid 
url",regExp:"{name} is not formatted correctly",integer:"{name} must be an 
integer",decimal:"{name} must be a decimal number",number:"{name} must be set 
to a number",is:'{name} must be "{ruleValue}"',isExactly:'{name} must be 
exactly "{ruleValue}"',not:'{name} cannot be set to 
"{ruleValue}"',notExactly:'{name} cannot be set to exactly 
"{ruleValue}"',contain:'{name} cannot contain 
"{ruleValue}"',containExactly:'{name} cannot contain exactly 
"{ruleValue}"',doesntContain:'{name} must contain  
"{ruleValue}"',doesntContainExactly:'{name} must contain exactly 
"{ruleValue}"',minLength:"{name} must be at least {ruleValue} 
characters",length:"{name} must be at least {ruleValue} 
characters",exactLength:"{name} must be exactly {ruleValue} 
characters",maxLength:"{name} cannot be longer than {ruleValue} 
characters",match:"{name} must match {ruleValue} field",differ
 ent:"{name} must have a different value than {ruleValue} 
field",creditCard:"{name} must be a valid credit card number",minCount:"{name} 
must have at least {ruleValue} choices",exactCount:"{name} must have exactly 
{ruleValue} choices",maxCount:"{name} must have {ruleValue} or less 
choices"},selector:{checkbox:'input[type="checkbox"], 
input[type="radio"]',clear:".clear",field:"input, textarea, 
select",group:".field",input:"input",message:".error.message",prompt:".prompt.label",radio:'input[type="radio"]',reset:'.reset:not([type="reset"])',submit:'.submit:not([type="submit"])',uiCheckbox:".ui.checkbox",uiDropdown:".ui.dropdown"},className:{error:"error",label:"ui
 prompt label",pressed:"down",success:"success"},error:{identifier:"You must 
specify a string identifier for each field",method:"The method you called is 
not defined.",noRule:"There is no rule matching the one you 
specified",oldSyntax:"Starting in 2.0 forms now only take a single settings 
object. Validation settings converted t
 o new syntax automatically."},templates:{error:function(t){var n='<ul 
class="list">';return 
e.each(t,function(e,t){n+="<li>"+t+"</li>"}),n+="</ul>",e(n)},prompt:function(t){return
 e("<div/>").addClass("ui basic red pointing prompt 
label").html(t[0])}},rules:{empty:function(t){return!(t===r||""===t||e.isArray(t)&&0===t.length)},checked:function(){return
 e(this).filter(":checked").length>0},email:function(t){return 
e.fn.form.settings.regExp.email.test(t)},url:function(t){return 
e.fn.form.settings.regExp.url.test(t)},regExp:function(t,n){if(n instanceof 
RegExp)return t.match(n);var 
r,i=n.match(e.fn.form.settings.regExp.flags);return 
i&&(n=i.length>=2?i[1]:n,r=i.length>=3?i[2]:""),t.match(new 
RegExp(n,r))},integer:function(t,n){var 
i,a,o,l=e.fn.form.settings.regExp.integer;return 
n&&["",".."].indexOf(n)===-1&&(n.indexOf("..")==-1?l.test(n)&&(i=a=n-0):(o=n.split("..",2),l.test(o[0])&&(i=o[0]-0),l.test(o[1])&&(a=o[1]-0))),l.test(t)&&(i===r||t>=i)&&(a===r||t<=a)},decimal:function(t){return
  e.fn.form.settings.regExp.decimal.test(t)},number:function(t){return 
e.fn.form.settings.regExp.number.test(t)},is:function(e,t){return 
t="string"==typeof t?t.toLowerCase():t,e="string"==typeof 
e?e.toLowerCase():e,e==t},isExactly:function(e,t){return 
e==t},not:function(e,t){return e="string"==typeof 
e?e.toLowerCase():e,t="string"==typeof 
t?t.toLowerCase():t,e!=t},notExactly:function(e,t){return 
e!=t},contains:function(t,n){return 
n=n.replace(e.fn.form.settings.regExp.escape,"\\$&"),t.search(new 
RegExp(n,"i"))!==-1},containsExactly:function(t,n){return 
n=n.replace(e.fn.form.settings.regExp.escape,"\\$&"),t.search(new 
RegExp(n))!==-1},doesntContain:function(t,n){return 
n=n.replace(e.fn.form.settings.regExp.escape,"\\$&"),t.search(new 
RegExp(n,"i"))===-1},doesntContainExactly:function(t,n){return 
n=n.replace(e.fn.form.settings.regExp.escape,"\\$&"),t.search(new 
RegExp(n))===-1},minLength:function(e,t){return 
e!==r&&e.length>=t},length:function(e,t){return e!==r&&e.length>=t},exactLengt
 h:function(e,t){return e!==r&&e.length==t},maxLength:function(e,t){return 
e!==r&&e.length<=t},match:function(t,n){var i;e(this);return 
e('[data-validate="'+n+'"]').length>0?i=e('[data-validate="'+n+'"]').val():e("#"+n).length>0?i=e("#"+n).val():e('[name="'+n+'"]').length>0?i=e('[name="'+n+'"]').val():e('[name="'+n+'[]"]').length>0&&(i=e('[name="'+n+'[]"]')),i!==r&&t.toString()==i.toString()},different:function(t,n){var
 i;e(this);return 
e('[data-validate="'+n+'"]').length>0?i=e('[data-validate="'+n+'"]').val():e("#"+n).length>0?i=e("#"+n).val():e('[name="'+n+'"]').length>0?i=e('[name="'+n+'"]').val():e('[name="'+n+'[]"]').length>0&&(i=e('[name="'+n+'[]"]')),i!==r&&t.toString()!==i.toString()},creditCard:function(t,n){var
 
r,i,a={visa:{pattern:/^4/,length:[16]},amex:{pattern:/^3[47]/,length:[15]},mastercard:{pattern:/^5[1-5]/,length:[16]},discover:{pattern:/^(6011|622(12[6-9]|1[3-9][0-9]|[2-8][0-9]{2}|9[0-1][0-9]|92[0-5]|64[4-9])|65)/,length:[16]},unionPay:{pattern:/^(62|88)/,length:[1
 
6,17,18,19]},jcb:{pattern:/^35(2[89]|[3-8][0-9])/,length:[16]},maestro:{pattern:/^(5018|5020|5038|6304|6759|676[1-3])/,length:[12,13,14,15,16,17,18,19]},dinersClub:{pattern:/^(30[0-5]|^36)/,length:[14]},laser:{pattern:/^(6304|670[69]|6771)/,length:[16,17,18,19]},visaElectron:{pattern:/^(4026|417500|4508|4844|491(3|7))/,length:[16]}},o={},l=!1,s="string"==typeof
 n&&n.split(",");if("string"==typeof 
t&&0!==t.length){if(s&&(e.each(s,function(n,r){i=a[r],i&&(o={length:e.inArray(t.length,i.length)!==-1,pattern:t.search(i.pattern)!==-1},o.length&&o.pattern&&(l=!0))}),!l))return!1;if(r={number:e.inArray(t.length,a.unionPay.length)!==-1,pattern:t.search(a.unionPay.pattern)!==-1},r.number&&r.pattern)return!0;for(var
 
u=t.length,c=0,f=[[0,1,2,3,4,5,6,7,8,9],[0,2,4,6,8,1,3,5,7,9]],d=0;u--;)d+=f[c][parseInt(t.charAt(u),10)],c^=1;return
 d%10===0&&d>0}},minCount:function(e,t){return 
0==t||(1==t?""!==e:e.split(",").length>=t)},exactCount:function(e,t){return 
0==t?""===e:1==t?""!==e&&e.search(",")===
 -1:e.split(",").length==t},maxCount:function(e,t){return 
0!=t&&(1==t?e.search(",")===-1:e.split(",").length<=t)}}}}(jQuery,window,document);
\ No newline at end of file


Reply via email to