webshims-rails 0.4.5 → 0.4.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. data/lib/webshims-rails/version.rb +2 -2
  2. data/vendor/assets/javascripts/webshims/extras/custom-validity.js +253 -253
  3. data/vendor/assets/javascripts/webshims/extras/modernizr-custom.js +534 -534
  4. data/vendor/assets/javascripts/webshims/extras/mousepress.js +60 -60
  5. data/vendor/assets/javascripts/webshims/minified/polyfiller.js +1 -1
  6. data/vendor/assets/javascripts/webshims/minified/shims/combos/10.js +1 -1
  7. data/vendor/assets/javascripts/webshims/minified/shims/combos/12.js +1 -1
  8. data/vendor/assets/javascripts/webshims/minified/shims/combos/16.js +1 -1
  9. data/vendor/assets/javascripts/webshims/minified/shims/combos/17.js +1 -1
  10. data/vendor/assets/javascripts/webshims/minified/shims/combos/19.js +1 -1
  11. data/vendor/assets/javascripts/webshims/minified/shims/combos/2.js +1 -1
  12. data/vendor/assets/javascripts/webshims/minified/shims/combos/20.js +1 -1
  13. data/vendor/assets/javascripts/webshims/minified/shims/combos/21.js +1 -1
  14. data/vendor/assets/javascripts/webshims/minified/shims/combos/22.js +1 -1
  15. data/vendor/assets/javascripts/webshims/minified/shims/combos/23.js +1 -1
  16. data/vendor/assets/javascripts/webshims/minified/shims/combos/24.js +1 -1
  17. data/vendor/assets/javascripts/webshims/minified/shims/combos/25.js +1 -1
  18. data/vendor/assets/javascripts/webshims/minified/shims/combos/26.js +1 -1
  19. data/vendor/assets/javascripts/webshims/minified/shims/combos/27.js +1 -1
  20. data/vendor/assets/javascripts/webshims/minified/shims/combos/3.js +1 -1
  21. data/vendor/assets/javascripts/webshims/minified/shims/combos/4.js +1 -1
  22. data/vendor/assets/javascripts/webshims/minified/shims/combos/5.js +1 -1
  23. data/vendor/assets/javascripts/webshims/minified/shims/combos/59.js +1 -1
  24. data/vendor/assets/javascripts/webshims/minified/shims/combos/8.js +1 -1
  25. data/vendor/assets/javascripts/webshims/minified/shims/combos/9.js +1 -1
  26. data/vendor/assets/javascripts/webshims/minified/shims/form-core.js +1 -1
  27. data/vendor/assets/javascripts/webshims/minified/shims/form-message.js +1 -1
  28. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-de.txt +33 -33
  29. data/vendor/assets/javascripts/webshims/minified/shims/i18n/errormessages-en.txt +34 -34
  30. data/vendor/assets/javascripts/webshims/minified/shims/mediaelement-core.js +1 -1
  31. data/vendor/assets/javascripts/webshims/minified/shims/mediaelement-jaris.js +1 -1
  32. data/vendor/assets/javascripts/webshims/minified/shims/mediaelement-swf.js +1 -1
  33. data/vendor/assets/javascripts/webshims/minified/shims/swf/JarisFLVPlayer.swf +0 -0
  34. data/vendor/assets/javascripts/webshims/polyfiller.js +1188 -1188
  35. data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/README +82 -82
  36. data/vendor/assets/javascripts/webshims/shims/combos/1.js +1752 -1752
  37. data/vendor/assets/javascripts/webshims/shims/combos/10.js +3310 -3311
  38. data/vendor/assets/javascripts/webshims/shims/combos/11.js +1631 -1631
  39. data/vendor/assets/javascripts/webshims/shims/combos/12.js +1695 -1696
  40. data/vendor/assets/javascripts/webshims/shims/combos/13.js +1098 -1098
  41. data/vendor/assets/javascripts/webshims/shims/combos/14.js +477 -477
  42. data/vendor/assets/javascripts/webshims/shims/combos/15.js +317 -317
  43. data/vendor/assets/javascripts/webshims/shims/combos/16.js +2177 -2154
  44. data/vendor/assets/javascripts/webshims/shims/combos/17.js +2354 -2319
  45. data/vendor/assets/javascripts/webshims/shims/combos/18.js +1322 -1322
  46. data/vendor/assets/javascripts/webshims/shims/combos/19.js +2262 -2238
  47. data/vendor/assets/javascripts/webshims/shims/combos/2.js +2376 -2340
  48. data/vendor/assets/javascripts/webshims/shims/combos/20.js +1557 -1558
  49. data/vendor/assets/javascripts/webshims/shims/combos/21.js +1745 -1733
  50. data/vendor/assets/javascripts/webshims/shims/combos/22.js +2360 -2361
  51. data/vendor/assets/javascripts/webshims/shims/combos/23.js +2342 -2331
  52. data/vendor/assets/javascripts/webshims/shims/combos/24.js +2859 -2836
  53. data/vendor/assets/javascripts/webshims/shims/combos/25.js +1547 -1548
  54. data/vendor/assets/javascripts/webshims/shims/combos/26.js +2178 -2155
  55. data/vendor/assets/javascripts/webshims/shims/combos/27.js +3311 -3312
  56. data/vendor/assets/javascripts/webshims/shims/combos/3.js +3058 -3022
  57. data/vendor/assets/javascripts/webshims/shims/combos/4.js +807 -771
  58. data/vendor/assets/javascripts/webshims/shims/combos/5.js +1063 -1027
  59. data/vendor/assets/javascripts/webshims/shims/combos/59.js +1745 -1709
  60. data/vendor/assets/javascripts/webshims/shims/combos/6.js +384 -384
  61. data/vendor/assets/javascripts/webshims/shims/combos/7.js +640 -640
  62. data/vendor/assets/javascripts/webshims/shims/combos/8.js +1546 -1547
  63. data/vendor/assets/javascripts/webshims/shims/combos/9.js +2507 -2508
  64. data/vendor/assets/javascripts/webshims/shims/details.js +148 -148
  65. data/vendor/assets/javascripts/webshims/shims/dom-extend.js +949 -949
  66. data/vendor/assets/javascripts/webshims/shims/es5.js +802 -802
  67. data/vendor/assets/javascripts/webshims/shims/excanvas.js +924 -924
  68. data/vendor/assets/javascripts/webshims/shims/form-core.js +630 -606
  69. data/vendor/assets/javascripts/webshims/shims/form-datalist.js +681 -681
  70. data/vendor/assets/javascripts/webshims/shims/form-message.js +176 -164
  71. data/vendor/assets/javascripts/webshims/shims/form-native-extend.js +255 -255
  72. data/vendor/assets/javascripts/webshims/shims/form-number-date-api.js +383 -383
  73. data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +1568 -1568
  74. data/vendor/assets/javascripts/webshims/shims/geolocation.js +168 -168
  75. data/vendor/assets/javascripts/webshims/shims/i18n/errormessages-ar.js +32 -32
  76. data/vendor/assets/javascripts/webshims/shims/i18n/errormessages-ch-ZN.js +32 -32
  77. data/vendor/assets/javascripts/webshims/shims/i18n/errormessages-de.txt +33 -33
  78. data/vendor/assets/javascripts/webshims/shims/i18n/errormessages-el.js +32 -32
  79. data/vendor/assets/javascripts/webshims/shims/i18n/errormessages-en.txt +34 -34
  80. data/vendor/assets/javascripts/webshims/shims/i18n/errormessages-es.js +31 -31
  81. data/vendor/assets/javascripts/webshims/shims/i18n/errormessages-fr.js +32 -32
  82. data/vendor/assets/javascripts/webshims/shims/i18n/errormessages-he.js +32 -32
  83. data/vendor/assets/javascripts/webshims/shims/i18n/errormessages-hi.js +32 -32
  84. data/vendor/assets/javascripts/webshims/shims/i18n/errormessages-hu.js +32 -32
  85. data/vendor/assets/javascripts/webshims/shims/i18n/errormessages-it.js +32 -32
  86. data/vendor/assets/javascripts/webshims/shims/i18n/errormessages-ja.js +32 -32
  87. data/vendor/assets/javascripts/webshims/shims/i18n/errormessages-nl.js +32 -32
  88. data/vendor/assets/javascripts/webshims/shims/i18n/errormessages-pt-PT.js +32 -32
  89. data/vendor/assets/javascripts/webshims/shims/i18n/errormessages-ru.js +31 -31
  90. data/vendor/assets/javascripts/webshims/shims/i18n/errormessages-sv.js +32 -32
  91. data/vendor/assets/javascripts/webshims/shims/json-storage.js +308 -308
  92. data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +596 -597
  93. data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +891 -891
  94. data/vendor/assets/javascripts/webshims/shims/mediaelement-native-fix.js +98 -98
  95. data/vendor/assets/javascripts/webshims/shims/mediaelement-swf.js +960 -960
  96. data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +543 -543
  97. data/vendor/assets/javascripts/webshims/shims/styles/shim.css +697 -697
  98. data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
  99. metadata +2 -4
  100. data/vendor/assets/javascripts/webshims/minified/shims/range-ui.js +0 -1
  101. data/vendor/assets/javascripts/webshims/shims/range-ui.js +0 -66
@@ -1,165 +1,177 @@
1
- jQuery.webshims.register('form-message', function($, webshims, window, document, undefined, options){
2
- "use strict";
3
- var validityMessages = webshims.validityMessages;
4
-
5
- var implementProperties = (options.overrideMessages || options.customMessages) ? ['customValidationMessage'] : [];
6
-
7
- validityMessages['en'] = $.extend(true, {
8
- typeMismatch: {
9
- email: 'Please enter an email address.',
10
- url: 'Please enter a URL.',
11
- number: 'Please enter a number.',
12
- date: 'Please enter a date.',
13
- time: 'Please enter a time.',
14
- range: 'Invalid input.',
15
- "datetime-local": 'Please enter a datetime.'
16
- },
17
- rangeUnderflow: {
18
- defaultMessage: 'Value must be greater than or equal to {%min}.'
19
- },
20
- rangeOverflow: {
21
- defaultMessage: 'Value must be less than or equal to {%max}.'
22
- },
23
- stepMismatch: 'Invalid input.',
24
- tooLong: 'Please enter at most {%maxlength} character(s). You entered {%valueLen}.',
25
-
26
- patternMismatch: 'Invalid input. {%title}',
27
- valueMissing: {
28
- defaultMessage: 'Please fill out this field.',
29
- checkbox: 'Please check this box if you want to proceed.'
30
- }
31
- }, (validityMessages['en'] || validityMessages['en-US'] || {}));
32
-
33
-
34
- ['select', 'radio'].forEach(function(type){
35
- validityMessages['en'].valueMissing[type] = 'Please select an option.';
36
- });
37
-
38
- ['date', 'time', 'datetime-local'].forEach(function(type){
39
- validityMessages.en.rangeUnderflow[type] = 'Value must be at or after {%min}.';
40
- });
41
- ['date', 'time', 'datetime-local'].forEach(function(type){
42
- validityMessages.en.rangeOverflow[type] = 'Value must be at or before {%max}.';
43
- });
44
-
45
- validityMessages['en-US'] = validityMessages['en-US'] || validityMessages['en'];
46
- validityMessages[''] = validityMessages[''] || validityMessages['en-US'];
47
-
48
- validityMessages['de'] = $.extend(true, {
49
- typeMismatch: {
50
- email: '{%value} ist keine zulässige E-Mail-Adresse',
51
- url: '{%value} ist keine zulässige Webadresse',
52
- number: '{%value} ist keine Nummer!',
53
- date: '{%value} ist kein Datum',
54
- time: '{%value} ist keine Uhrzeit',
55
- range: '{%value} ist keine Nummer!',
56
- "datetime-local": '{%value} ist kein Datum-Uhrzeit Format.'
57
- },
58
- rangeUnderflow: {
59
- defaultMessage: '{%value} ist zu niedrig. {%min} ist der unterste Wert, den Sie benutzen können.'
60
- },
61
- rangeOverflow: {
62
- defaultMessage: '{%value} ist zu hoch. {%max} ist der oberste Wert, den Sie benutzen können.'
63
- },
64
- stepMismatch: 'Der Wert {%value} ist in diesem Feld nicht zulässig. Hier sind nur bestimmte Werte zulässig. {%title}',
65
- tooLong: 'Der eingegebene Text ist zu lang! Sie haben {%valueLen} Zeichen eingegeben, dabei sind {%maxlength} das Maximum.',
66
- patternMismatch: '{%value} hat für dieses Eingabefeld ein falsches Format! {%title}',
67
- valueMissing: {
68
- defaultMessage: 'Bitte geben Sie einen Wert ein',
69
- checkbox: 'Bitte aktivieren Sie das Kästchen'
70
- }
71
- }, (validityMessages['de'] || {}));
72
-
73
- ['select', 'radio'].forEach(function(type){
74
- validityMessages['de'].valueMissing[type] = 'Bitte wählen Sie eine Option aus';
75
- });
76
-
77
- ['date', 'time', 'datetime-local'].forEach(function(type){
78
- validityMessages.de.rangeUnderflow[type] = '{%value} ist zu früh. {%min} ist die früheste Zeit, die Sie benutzen können.';
79
- });
80
- ['date', 'time', 'datetime-local'].forEach(function(type){
81
- validityMessages.de.rangeOverflow[type] = '{%value} ist zu spät. {%max} ist die späteste Zeit, die Sie benutzen können.';
82
- });
83
-
84
- var currentValidationMessage = validityMessages[''];
85
-
86
-
87
- webshims.createValidationMessage = function(elem, name){
88
- var message = currentValidationMessage[name];
89
- if(message && typeof message !== 'string'){
90
- message = message[ $.prop(elem, 'type') ] || message[ (elem.nodeName || '').toLowerCase() ] || message[ 'defaultMessage' ];
91
- }
92
- if(message){
93
- ['value', 'min', 'max', 'title', 'maxlength', 'label'].forEach(function(attr){
94
- if(message.indexOf('{%'+attr) === -1){return;}
95
- var val = ((attr == 'label') ? $.trim($('label[for="'+ elem.id +'"]', elem.form).text()).replace(/\*$|:$/, '') : $.attr(elem, attr)) || '';
96
- if(name == 'patternMismatch' && attr == 'title' && !val){
97
- webshims.error('no title for patternMismatch provided. Always add a title attribute.');
98
- }
99
- message = message.replace('{%'+ attr +'}', val);
100
- if('value' == attr){
101
- message = message.replace('{%valueLen}', val.length);
102
- }
103
- });
104
- }
105
- return message || '';
106
- };
107
-
108
-
109
- if(webshims.bugs.validationMessage || !Modernizr.formvalidation || webshims.bugs.bustedValidity){
110
- implementProperties.push('validationMessage');
111
- }
112
-
113
- webshims.activeLang({
114
- langObj: validityMessages,
115
- module: 'form-core',
116
- callback: function(langObj){
117
- currentValidationMessage = langObj;
118
- }
119
- });
120
-
121
- implementProperties.forEach(function(messageProp){
122
- webshims.defineNodeNamesProperty(['fieldset', 'output', 'button'], messageProp, {
123
- prop: {
124
- value: '',
125
- writeable: false
126
- }
127
- });
128
- ['input', 'select', 'textarea'].forEach(function(nodeName){
129
- var desc = webshims.defineNodeNameProperty(nodeName, messageProp, {
130
- prop: {
131
- get: function(){
132
- var elem = this;
133
- var message = '';
134
- if(!$.prop(elem, 'willValidate')){
135
- return message;
136
- }
137
-
138
- var validity = $.prop(elem, 'validity') || {valid: 1};
139
-
140
- if(validity.valid){return message;}
141
- message = webshims.getContentValidationMessage(elem, validity);
142
-
143
- if(message){return message;}
144
-
145
- if(validity.customError && elem.nodeName){
146
- message = (Modernizr.formvalidation && !webshims.bugs.bustedValidity && desc.prop._supget) ? desc.prop._supget.call(elem) : webshims.data(elem, 'customvalidationMessage');
147
- if(message){return message;}
148
- }
149
- $.each(validity, function(name, prop){
150
- if(name == 'valid' || !prop){return;}
151
-
152
- message = webshims.createValidationMessage(elem, name);
153
- if(message){
154
- return false;
155
- }
156
- });
157
- return message || '';
158
- },
159
- writeable: false
160
- }
161
- });
162
- });
163
-
164
- });
1
+ jQuery.webshims.register('form-message', function($, webshims, window, document, undefined, options){
2
+ "use strict";
3
+ var validityMessages = webshims.validityMessages;
4
+
5
+ var implementProperties = (options.overrideMessages || options.customMessages) ? ['customValidationMessage'] : [];
6
+
7
+ validityMessages['en'] = $.extend(true, {
8
+ typeMismatch: {
9
+ email: 'Please enter an email address.',
10
+ url: 'Please enter a URL.',
11
+ number: 'Please enter a number.',
12
+ date: 'Please enter a date.',
13
+ time: 'Please enter a time.',
14
+ range: 'Invalid input.',
15
+ "datetime-local": 'Please enter a datetime.'
16
+ },
17
+ rangeUnderflow: {
18
+ defaultMessage: 'Value must be greater than or equal to {%min}.'
19
+ },
20
+ rangeOverflow: {
21
+ defaultMessage: 'Value must be less than or equal to {%max}.'
22
+ },
23
+ stepMismatch: 'Invalid input.',
24
+ tooLong: 'Please enter at most {%maxlength} character(s). You entered {%valueLen}.',
25
+
26
+ patternMismatch: 'Invalid input. {%title}',
27
+ valueMissing: {
28
+ defaultMessage: 'Please fill out this field.',
29
+ checkbox: 'Please check this box if you want to proceed.'
30
+ }
31
+ }, (validityMessages['en'] || validityMessages['en-US'] || {}));
32
+
33
+
34
+ ['select', 'radio'].forEach(function(type){
35
+ if(typeof validityMessages['en'].valueMissing == 'object'){
36
+ validityMessages['en'].valueMissing[type] = 'Please select an option.';
37
+ }
38
+ });
39
+
40
+ ['date', 'time', 'datetime-local'].forEach(function(type){
41
+ if(typeof validityMessages['en'].rangeUnderflow == 'object'){
42
+ validityMessages.en.rangeUnderflow[type] = 'Value must be at or after {%min}.';
43
+ }
44
+ });
45
+ ['date', 'time', 'datetime-local'].forEach(function(type){
46
+ if(typeof validityMessages['en'].rangeOverflow == 'object'){
47
+ validityMessages.en.rangeOverflow[type] = 'Value must be at or before {%max}.';
48
+ }
49
+ });
50
+
51
+ validityMessages['en-US'] = validityMessages['en-US'] || validityMessages['en'];
52
+ validityMessages[''] = validityMessages[''] || validityMessages['en-US'];
53
+
54
+ validityMessages['de'] = $.extend(true, {
55
+ typeMismatch: {
56
+ email: '{%value} ist keine zulässige E-Mail-Adresse',
57
+ url: '{%value} ist keine zulässige Webadresse',
58
+ number: '{%value} ist keine Nummer!',
59
+ date: '{%value} ist kein Datum',
60
+ time: '{%value} ist keine Uhrzeit',
61
+ range: '{%value} ist keine Nummer!',
62
+ "datetime-local": '{%value} ist kein Datum-Uhrzeit Format.'
63
+ },
64
+ rangeUnderflow: {
65
+ defaultMessage: '{%value} ist zu niedrig. {%min} ist der unterste Wert, den Sie benutzen können.'
66
+ },
67
+ rangeOverflow: {
68
+ defaultMessage: '{%value} ist zu hoch. {%max} ist der oberste Wert, den Sie benutzen können.'
69
+ },
70
+ stepMismatch: 'Der Wert {%value} ist in diesem Feld nicht zulässig. Hier sind nur bestimmte Werte zulässig. {%title}',
71
+ tooLong: 'Der eingegebene Text ist zu lang! Sie haben {%valueLen} Zeichen eingegeben, dabei sind {%maxlength} das Maximum.',
72
+ patternMismatch: '{%value} hat für dieses Eingabefeld ein falsches Format! {%title}',
73
+ valueMissing: {
74
+ defaultMessage: 'Bitte geben Sie einen Wert ein',
75
+ checkbox: 'Bitte aktivieren Sie das Kästchen'
76
+ }
77
+ }, (validityMessages['de'] || {}));
78
+
79
+ ['select', 'radio'].forEach(function(type){
80
+ if(typeof validityMessages['de'].valueMissing == 'object'){
81
+ validityMessages['de'].valueMissing[type] = 'Bitte wählen Sie eine Option aus';
82
+ }
83
+ });
84
+
85
+ ['date', 'time', 'datetime-local'].forEach(function(type){
86
+ if(typeof validityMessages['de'].rangeUnderflow == 'object'){
87
+ validityMessages.de.rangeUnderflow[type] = '{%value} ist zu früh. {%min} ist die früheste Zeit, die Sie benutzen können.';
88
+ }
89
+ });
90
+ ['date', 'time', 'datetime-local'].forEach(function(type){
91
+ if(typeof validityMessages['de'].rangeOverflow == 'object'){
92
+ validityMessages.de.rangeOverflow[type] = '{%value} ist zu spät. {%max} ist die späteste Zeit, die Sie benutzen können.';
93
+ }
94
+ });
95
+
96
+ var currentValidationMessage = validityMessages[''];
97
+
98
+
99
+ webshims.createValidationMessage = function(elem, name){
100
+ var message = currentValidationMessage[name];
101
+ if(message && typeof message !== 'string'){
102
+ message = message[ $.prop(elem, 'type') ] || message[ (elem.nodeName || '').toLowerCase() ] || message[ 'defaultMessage' ];
103
+ }
104
+ if(message){
105
+ ['value', 'min', 'max', 'title', 'maxlength', 'label'].forEach(function(attr){
106
+ if(message.indexOf('{%'+attr) === -1){return;}
107
+ var val = ((attr == 'label') ? $.trim($('label[for="'+ elem.id +'"]', elem.form).text()).replace(/\*$|:$/, '') : $.attr(elem, attr)) || '';
108
+ if(name == 'patternMismatch' && attr == 'title' && !val){
109
+ webshims.error('no title for patternMismatch provided. Always add a title attribute.');
110
+ }
111
+ message = message.replace('{%'+ attr +'}', val);
112
+ if('value' == attr){
113
+ message = message.replace('{%valueLen}', val.length);
114
+ }
115
+ });
116
+ }
117
+ return message || '';
118
+ };
119
+
120
+
121
+ if(webshims.bugs.validationMessage || !Modernizr.formvalidation || webshims.bugs.bustedValidity){
122
+ implementProperties.push('validationMessage');
123
+ }
124
+
125
+ webshims.activeLang({
126
+ langObj: validityMessages,
127
+ module: 'form-core',
128
+ callback: function(langObj){
129
+ currentValidationMessage = langObj;
130
+ }
131
+ });
132
+
133
+ implementProperties.forEach(function(messageProp){
134
+ webshims.defineNodeNamesProperty(['fieldset', 'output', 'button'], messageProp, {
135
+ prop: {
136
+ value: '',
137
+ writeable: false
138
+ }
139
+ });
140
+ ['input', 'select', 'textarea'].forEach(function(nodeName){
141
+ var desc = webshims.defineNodeNameProperty(nodeName, messageProp, {
142
+ prop: {
143
+ get: function(){
144
+ var elem = this;
145
+ var message = '';
146
+ if(!$.prop(elem, 'willValidate')){
147
+ return message;
148
+ }
149
+
150
+ var validity = $.prop(elem, 'validity') || {valid: 1};
151
+
152
+ if(validity.valid){return message;}
153
+ message = webshims.getContentValidationMessage(elem, validity);
154
+
155
+ if(message){return message;}
156
+
157
+ if(validity.customError && elem.nodeName){
158
+ message = (Modernizr.formvalidation && !webshims.bugs.bustedValidity && desc.prop._supget) ? desc.prop._supget.call(elem) : webshims.data(elem, 'customvalidationMessage');
159
+ if(message){return message;}
160
+ }
161
+ $.each(validity, function(name, prop){
162
+ if(name == 'valid' || !prop){return;}
163
+
164
+ message = webshims.createValidationMessage(elem, name);
165
+ if(message){
166
+ return false;
167
+ }
168
+ });
169
+ return message || '';
170
+ },
171
+ writeable: false
172
+ }
173
+ });
174
+ });
175
+
176
+ });
165
177
  });
@@ -1,256 +1,256 @@
1
- jQuery.webshims.register('form-native-extend', function($, webshims, window, doc, undefined, options){
2
- "use strict";
3
- var Modernizr = window.Modernizr;
4
- var modernizrInputTypes = Modernizr.inputtypes;
5
- if(!Modernizr.formvalidation || webshims.bugs.bustedValidity){return;}
6
- var typeModels = webshims.inputTypes;
7
- var validityRules = {};
8
-
9
- webshims.addInputType = function(type, obj){
10
- typeModels[type] = obj;
11
- };
12
-
13
- webshims.addValidityRule = function(type, fn){
14
- validityRules[type] = fn;
15
- };
16
-
17
- webshims.addValidityRule('typeMismatch',function (input, val, cache, validityState){
18
- if(val === ''){return false;}
19
- var ret = validityState.typeMismatch;
20
- if(!('type' in cache)){
21
- cache.type = (input[0].getAttribute('type') || '').toLowerCase();
22
- }
23
-
24
- if(typeModels[cache.type] && typeModels[cache.type].mismatch){
25
- ret = typeModels[cache.type].mismatch(val, input);
26
- }
27
- return ret;
28
- });
29
-
30
- var overrideNativeMessages = options.overrideMessages;
31
-
32
- var overrideValidity = (!modernizrInputTypes.number || !modernizrInputTypes.time || !modernizrInputTypes.range || overrideNativeMessages);
33
- var validityProps = ['customError','typeMismatch','rangeUnderflow','rangeOverflow','stepMismatch','tooLong','patternMismatch','valueMissing','valid'];
34
-
35
- var validityChanger = (overrideNativeMessages)? ['value', 'checked'] : ['value'];
36
- var validityElements = [];
37
- var testValidity = function(elem, init){
38
- if(!elem){return;}
39
- var type = (elem.getAttribute && elem.getAttribute('type') || elem.type || '').toLowerCase();
40
-
41
- if(!overrideNativeMessages && !typeModels[type]){
42
- return;
43
- }
44
-
45
- if(overrideNativeMessages && !init && type == 'radio' && elem.name){
46
- $(doc.getElementsByName( elem.name )).each(function(){
47
- $.prop(this, 'validity');
48
- });
49
- } else {
50
- $.prop(elem, 'validity');
51
- }
52
- };
53
-
54
- var oldSetCustomValidity = {};
55
- ['input', 'textarea', 'select'].forEach(function(name){
56
- var desc = webshims.defineNodeNameProperty(name, 'setCustomValidity', {
57
- prop: {
58
- value: function(error){
59
- error = error+'';
60
- var elem = (name == 'input') ? $(this).getNativeElement()[0] : this;
61
- desc.prop._supvalue.call(elem, error);
62
-
63
- if(webshims.bugs.validationMessage){
64
- webshims.data(elem, 'customvalidationMessage', error);
65
- }
66
- if(overrideValidity){
67
- webshims.data(elem, 'hasCustomError', !!(error));
68
- testValidity(elem);
69
- }
70
- }
71
- }
72
- });
73
- oldSetCustomValidity[name] = desc.prop._supvalue;
74
- });
75
-
76
-
77
- if(overrideValidity || overrideNativeMessages){
78
- validityChanger.push('min');
79
- validityChanger.push('max');
80
- validityChanger.push('step');
81
- validityElements.push('input');
82
- }
83
- if(overrideNativeMessages){
84
- validityChanger.push('required');
85
- validityChanger.push('pattern');
86
- validityElements.push('select');
87
- validityElements.push('textarea');
88
- }
89
-
90
- if(overrideValidity){
91
- var stopValidity;
92
- validityElements.forEach(function(nodeName){
93
-
94
- var oldDesc = webshims.defineNodeNameProperty(nodeName, 'validity', {
95
- prop: {
96
- get: function(){
97
- if(stopValidity){return;}
98
- var elem = (nodeName == 'input') ? $(this).getNativeElement()[0] : this;
99
-
100
- var validity = oldDesc.prop._supget.call(elem);
101
-
102
- if(!validity){
103
- return validity;
104
- }
105
- var validityState = {};
106
- validityProps.forEach(function(prop){
107
- validityState[prop] = validity[prop];
108
- });
109
-
110
- if( !$.prop(elem, 'willValidate') ){
111
- return validityState;
112
- }
113
- stopValidity = true;
114
- var jElm = $(elem),
115
- cache = {type: (elem.getAttribute && elem.getAttribute('type') || '').toLowerCase(), nodeName: (elem.nodeName || '').toLowerCase()},
116
- val = jElm.val(),
117
- customError = !!(webshims.data(elem, 'hasCustomError')),
118
- setCustomMessage
119
- ;
120
- stopValidity = false;
121
- validityState.customError = customError;
122
-
123
- if( validityState.valid && validityState.customError ){
124
- validityState.valid = false;
125
- } else if(!validityState.valid) {
126
- var allFalse = true;
127
- $.each(validityState, function(name, prop){
128
- if(prop){
129
- allFalse = false;
130
- return false;
131
- }
132
- });
133
-
134
- if(allFalse){
135
- validityState.valid = true;
136
- }
137
-
138
- }
139
-
140
- $.each(validityRules, function(rule, fn){
141
- validityState[rule] = fn(jElm, val, cache, validityState);
142
- if( validityState[rule] && (validityState.valid || !setCustomMessage) && (overrideNativeMessages || (typeModels[cache.type] && typeModels[cache.type].mismatch)) ) {
143
- oldSetCustomValidity[nodeName].call(elem, webshims.createValidationMessage(elem, rule));
144
- validityState.valid = false;
145
- setCustomMessage = true;
146
- }
147
- });
148
- if(validityState.valid){
149
- oldSetCustomValidity[nodeName].call(elem, '');
150
- webshims.data(elem, 'hasCustomError', false);
151
- } else if(overrideNativeMessages && !setCustomMessage && !customError){
152
- $.each(validityState, function(name, prop){
153
- if(name !== 'valid' && prop){
154
- oldSetCustomValidity[nodeName].call(elem, webshims.createValidationMessage(elem, name));
155
- return false;
156
- }
157
- });
158
- }
159
- return validityState;
160
- },
161
- writeable: false
162
-
163
- }
164
- });
165
- });
166
-
167
- validityChanger.forEach(function(prop){
168
- webshims.onNodeNamesPropertyModify(validityElements, prop, function(s){
169
- testValidity(this);
170
- });
171
- });
172
-
173
- if(doc.addEventListener){
174
- var inputThrottle;
175
- var testPassValidity = function(e){
176
- if(!('form' in e.target)){return;}
177
- var form = e.target.form;
178
- clearTimeout(inputThrottle);
179
- testValidity(e.target);
180
- if(form && overrideNativeMessages){
181
- $('input', form).each(function(){
182
- if(this.type == 'password'){
183
- testValidity(this);
184
- }
185
- });
186
- }
187
- };
188
-
189
- doc.addEventListener('change', testPassValidity, true);
190
-
191
- if(overrideNativeMessages){
192
- doc.addEventListener('blur', testPassValidity, true);
193
- doc.addEventListener('keydown', function(e){
194
- if(e.keyCode != 13){return;}
195
- testPassValidity(e);
196
- }, true);
197
- }
198
-
199
- doc.addEventListener('input', function(e){
200
- clearTimeout(inputThrottle);
201
- inputThrottle = setTimeout(function(){
202
- testValidity(e.target);
203
- }, 290);
204
- }, true);
205
- }
206
-
207
- var validityElementsSel = validityElements.join(',');
208
-
209
- webshims.addReady(function(context, elem){
210
- $(validityElementsSel, context).add(elem.filter(validityElementsSel)).each(function(){
211
- $.prop(this, 'validity');
212
- });
213
- });
214
-
215
-
216
- if(overrideNativeMessages){
217
- webshims.ready('DOM form-message', function(){
218
- webshims.activeLang({
219
- register: 'form-core',
220
- callback: function(){
221
- $('input, select, textarea')
222
- .getNativeElement()
223
- .each(function(){
224
- if(webshims.data(this, 'hasCustomError')){return;}
225
- var elem = this;
226
- var validity = $.prop(elem, 'validity') || {valid: true};
227
- var nodeName;
228
- if(validity.valid){return;}
229
- nodeName = (elem.nodeName || '').toLowerCase();
230
- $.each(validity, function(name, prop){
231
- if(name !== 'valid' && prop){
232
- oldSetCustomValidity[nodeName].call(elem, webshims.createValidationMessage(elem, name));
233
- return false;
234
- }
235
- });
236
- })
237
- ;
238
- }
239
- });
240
- });
241
- }
242
-
243
- } //end: overrideValidity
244
-
245
- webshims.defineNodeNameProperty('input', 'type', {
246
- prop: {
247
- get: function(){
248
- var elem = this;
249
- var type = (elem.getAttribute('type') || '').toLowerCase();
250
- return (webshims.inputTypes[type]) ? type : elem.type;
251
- }
252
- }
253
- });
254
-
255
-
1
+ jQuery.webshims.register('form-native-extend', function($, webshims, window, doc, undefined, options){
2
+ "use strict";
3
+ var Modernizr = window.Modernizr;
4
+ var modernizrInputTypes = Modernizr.inputtypes;
5
+ if(!Modernizr.formvalidation || webshims.bugs.bustedValidity){return;}
6
+ var typeModels = webshims.inputTypes;
7
+ var validityRules = {};
8
+
9
+ webshims.addInputType = function(type, obj){
10
+ typeModels[type] = obj;
11
+ };
12
+
13
+ webshims.addValidityRule = function(type, fn){
14
+ validityRules[type] = fn;
15
+ };
16
+
17
+ webshims.addValidityRule('typeMismatch',function (input, val, cache, validityState){
18
+ if(val === ''){return false;}
19
+ var ret = validityState.typeMismatch;
20
+ if(!('type' in cache)){
21
+ cache.type = (input[0].getAttribute('type') || '').toLowerCase();
22
+ }
23
+
24
+ if(typeModels[cache.type] && typeModels[cache.type].mismatch){
25
+ ret = typeModels[cache.type].mismatch(val, input);
26
+ }
27
+ return ret;
28
+ });
29
+
30
+ var overrideNativeMessages = options.overrideMessages;
31
+
32
+ var overrideValidity = (!modernizrInputTypes.number || !modernizrInputTypes.time || !modernizrInputTypes.range || overrideNativeMessages);
33
+ var validityProps = ['customError','typeMismatch','rangeUnderflow','rangeOverflow','stepMismatch','tooLong','patternMismatch','valueMissing','valid'];
34
+
35
+ var validityChanger = (overrideNativeMessages)? ['value', 'checked'] : ['value'];
36
+ var validityElements = [];
37
+ var testValidity = function(elem, init){
38
+ if(!elem){return;}
39
+ var type = (elem.getAttribute && elem.getAttribute('type') || elem.type || '').toLowerCase();
40
+
41
+ if(!overrideNativeMessages && !typeModels[type]){
42
+ return;
43
+ }
44
+
45
+ if(overrideNativeMessages && !init && type == 'radio' && elem.name){
46
+ $(doc.getElementsByName( elem.name )).each(function(){
47
+ $.prop(this, 'validity');
48
+ });
49
+ } else {
50
+ $.prop(elem, 'validity');
51
+ }
52
+ };
53
+
54
+ var oldSetCustomValidity = {};
55
+ ['input', 'textarea', 'select'].forEach(function(name){
56
+ var desc = webshims.defineNodeNameProperty(name, 'setCustomValidity', {
57
+ prop: {
58
+ value: function(error){
59
+ error = error+'';
60
+ var elem = (name == 'input') ? $(this).getNativeElement()[0] : this;
61
+ desc.prop._supvalue.call(elem, error);
62
+
63
+ if(webshims.bugs.validationMessage){
64
+ webshims.data(elem, 'customvalidationMessage', error);
65
+ }
66
+ if(overrideValidity){
67
+ webshims.data(elem, 'hasCustomError', !!(error));
68
+ testValidity(elem);
69
+ }
70
+ }
71
+ }
72
+ });
73
+ oldSetCustomValidity[name] = desc.prop._supvalue;
74
+ });
75
+
76
+
77
+ if(overrideValidity || overrideNativeMessages){
78
+ validityChanger.push('min');
79
+ validityChanger.push('max');
80
+ validityChanger.push('step');
81
+ validityElements.push('input');
82
+ }
83
+ if(overrideNativeMessages){
84
+ validityChanger.push('required');
85
+ validityChanger.push('pattern');
86
+ validityElements.push('select');
87
+ validityElements.push('textarea');
88
+ }
89
+
90
+ if(overrideValidity){
91
+ var stopValidity;
92
+ validityElements.forEach(function(nodeName){
93
+
94
+ var oldDesc = webshims.defineNodeNameProperty(nodeName, 'validity', {
95
+ prop: {
96
+ get: function(){
97
+ if(stopValidity){return;}
98
+ var elem = (nodeName == 'input') ? $(this).getNativeElement()[0] : this;
99
+
100
+ var validity = oldDesc.prop._supget.call(elem);
101
+
102
+ if(!validity){
103
+ return validity;
104
+ }
105
+ var validityState = {};
106
+ validityProps.forEach(function(prop){
107
+ validityState[prop] = validity[prop];
108
+ });
109
+
110
+ if( !$.prop(elem, 'willValidate') ){
111
+ return validityState;
112
+ }
113
+ stopValidity = true;
114
+ var jElm = $(elem),
115
+ cache = {type: (elem.getAttribute && elem.getAttribute('type') || '').toLowerCase(), nodeName: (elem.nodeName || '').toLowerCase()},
116
+ val = jElm.val(),
117
+ customError = !!(webshims.data(elem, 'hasCustomError')),
118
+ setCustomMessage
119
+ ;
120
+ stopValidity = false;
121
+ validityState.customError = customError;
122
+
123
+ if( validityState.valid && validityState.customError ){
124
+ validityState.valid = false;
125
+ } else if(!validityState.valid) {
126
+ var allFalse = true;
127
+ $.each(validityState, function(name, prop){
128
+ if(prop){
129
+ allFalse = false;
130
+ return false;
131
+ }
132
+ });
133
+
134
+ if(allFalse){
135
+ validityState.valid = true;
136
+ }
137
+
138
+ }
139
+
140
+ $.each(validityRules, function(rule, fn){
141
+ validityState[rule] = fn(jElm, val, cache, validityState);
142
+ if( validityState[rule] && (validityState.valid || !setCustomMessage) && (overrideNativeMessages || (typeModels[cache.type] && typeModels[cache.type].mismatch)) ) {
143
+ oldSetCustomValidity[nodeName].call(elem, webshims.createValidationMessage(elem, rule));
144
+ validityState.valid = false;
145
+ setCustomMessage = true;
146
+ }
147
+ });
148
+ if(validityState.valid){
149
+ oldSetCustomValidity[nodeName].call(elem, '');
150
+ webshims.data(elem, 'hasCustomError', false);
151
+ } else if(overrideNativeMessages && !setCustomMessage && !customError){
152
+ $.each(validityState, function(name, prop){
153
+ if(name !== 'valid' && prop){
154
+ oldSetCustomValidity[nodeName].call(elem, webshims.createValidationMessage(elem, name));
155
+ return false;
156
+ }
157
+ });
158
+ }
159
+ return validityState;
160
+ },
161
+ writeable: false
162
+
163
+ }
164
+ });
165
+ });
166
+
167
+ validityChanger.forEach(function(prop){
168
+ webshims.onNodeNamesPropertyModify(validityElements, prop, function(s){
169
+ testValidity(this);
170
+ });
171
+ });
172
+
173
+ if(doc.addEventListener){
174
+ var inputThrottle;
175
+ var testPassValidity = function(e){
176
+ if(!('form' in e.target)){return;}
177
+ var form = e.target.form;
178
+ clearTimeout(inputThrottle);
179
+ testValidity(e.target);
180
+ if(form && overrideNativeMessages){
181
+ $('input', form).each(function(){
182
+ if(this.type == 'password'){
183
+ testValidity(this);
184
+ }
185
+ });
186
+ }
187
+ };
188
+
189
+ doc.addEventListener('change', testPassValidity, true);
190
+
191
+ if(overrideNativeMessages){
192
+ doc.addEventListener('blur', testPassValidity, true);
193
+ doc.addEventListener('keydown', function(e){
194
+ if(e.keyCode != 13){return;}
195
+ testPassValidity(e);
196
+ }, true);
197
+ }
198
+
199
+ doc.addEventListener('input', function(e){
200
+ clearTimeout(inputThrottle);
201
+ inputThrottle = setTimeout(function(){
202
+ testValidity(e.target);
203
+ }, 290);
204
+ }, true);
205
+ }
206
+
207
+ var validityElementsSel = validityElements.join(',');
208
+
209
+ webshims.addReady(function(context, elem){
210
+ $(validityElementsSel, context).add(elem.filter(validityElementsSel)).each(function(){
211
+ $.prop(this, 'validity');
212
+ });
213
+ });
214
+
215
+
216
+ if(overrideNativeMessages){
217
+ webshims.ready('DOM form-message', function(){
218
+ webshims.activeLang({
219
+ register: 'form-core',
220
+ callback: function(){
221
+ $('input, select, textarea')
222
+ .getNativeElement()
223
+ .each(function(){
224
+ if(webshims.data(this, 'hasCustomError')){return;}
225
+ var elem = this;
226
+ var validity = $.prop(elem, 'validity') || {valid: true};
227
+ var nodeName;
228
+ if(validity.valid){return;}
229
+ nodeName = (elem.nodeName || '').toLowerCase();
230
+ $.each(validity, function(name, prop){
231
+ if(name !== 'valid' && prop){
232
+ oldSetCustomValidity[nodeName].call(elem, webshims.createValidationMessage(elem, name));
233
+ return false;
234
+ }
235
+ });
236
+ })
237
+ ;
238
+ }
239
+ });
240
+ });
241
+ }
242
+
243
+ } //end: overrideValidity
244
+
245
+ webshims.defineNodeNameProperty('input', 'type', {
246
+ prop: {
247
+ get: function(){
248
+ var elem = this;
249
+ var type = (elem.getAttribute('type') || '').toLowerCase();
250
+ return (webshims.inputTypes[type]) ? type : elem.type;
251
+ }
252
+ }
253
+ });
254
+
255
+
256
256
  });