webshims-rails 1.10.10 → 1.10.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. checksums.yaml +8 -8
  2. data/MIT_LICENSE.txt +3 -1
  3. data/lib/webshims-rails/version.rb +2 -2
  4. data/vendor/assets/javascripts/webshims/polyfiller.js +8 -9
  5. data/vendor/assets/javascripts/webshims/shims/combos/1.js +91 -58
  6. data/vendor/assets/javascripts/webshims/shims/combos/10.js +247 -101
  7. data/vendor/assets/javascripts/webshims/shims/combos/11.js +241 -96
  8. data/vendor/assets/javascripts/webshims/shims/combos/12.js +79 -58
  9. data/vendor/assets/javascripts/webshims/shims/combos/13.js +79 -12
  10. data/vendor/assets/javascripts/webshims/shims/combos/14.js +6 -5
  11. data/vendor/assets/javascripts/webshims/shims/combos/15.js +68 -75
  12. data/vendor/assets/javascripts/webshims/shims/combos/16.js +147 -133
  13. data/vendor/assets/javascripts/webshims/shims/combos/17.js +288 -143
  14. data/vendor/assets/javascripts/webshims/shims/combos/18.js +288 -143
  15. data/vendor/assets/javascripts/webshims/shims/combos/19.js +85 -63
  16. data/vendor/assets/javascripts/webshims/shims/combos/2.js +97 -91
  17. data/vendor/assets/javascripts/webshims/shims/combos/20.js +85 -17
  18. data/vendor/assets/javascripts/webshims/shims/combos/21.js +17 -17
  19. data/vendor/assets/javascripts/webshims/shims/combos/23.js +79 -58
  20. data/vendor/assets/javascripts/webshims/shims/combos/24.js +17 -16
  21. data/vendor/assets/javascripts/webshims/shims/combos/25.js +85 -63
  22. data/vendor/assets/javascripts/webshims/shims/combos/26.js +6 -5
  23. data/vendor/assets/javascripts/webshims/shims/combos/27.js +0 -46
  24. data/vendor/assets/javascripts/webshims/shims/combos/28.js +6 -5
  25. data/vendor/assets/javascripts/webshims/shims/combos/29.js +13 -6
  26. data/vendor/assets/javascripts/webshims/shims/combos/3.js +47 -31
  27. data/vendor/assets/javascripts/webshims/shims/combos/30.js +47 -59
  28. data/vendor/assets/javascripts/webshims/shims/combos/31.js +18 -33
  29. data/vendor/assets/javascripts/webshims/shims/combos/4.js +35 -31
  30. data/vendor/assets/javascripts/webshims/shims/combos/5.js +304 -157
  31. data/vendor/assets/javascripts/webshims/shims/combos/6.js +304 -185
  32. data/vendor/assets/javascripts/webshims/shims/combos/7.js +126 -117
  33. data/vendor/assets/javascripts/webshims/shims/combos/8.js +126 -89
  34. data/vendor/assets/javascripts/webshims/shims/combos/9.js +247 -129
  35. data/vendor/assets/javascripts/webshims/shims/dom-extend.js +6 -5
  36. data/vendor/assets/javascripts/webshims/shims/form-core.js +12 -0
  37. data/vendor/assets/javascripts/webshims/shims/form-datalist-lazy.js +3 -0
  38. data/vendor/assets/javascripts/webshims/shims/form-datalist.js +0 -28
  39. data/vendor/assets/javascripts/webshims/shims/form-message.js +29 -26
  40. data/vendor/assets/javascripts/webshims/shims/form-native-extend.js +16 -14
  41. data/vendor/assets/javascripts/webshims/shims/form-number-date-api.js +47 -47
  42. data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +241 -96
  43. data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +21 -16
  44. data/vendor/assets/javascripts/webshims/shims/form-validation.js +17 -16
  45. data/vendor/assets/javascripts/webshims/shims/forms-picker.js +173 -41
  46. data/vendor/assets/javascripts/webshims/shims/geolocation.js +17 -17
  47. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ar.js +35 -33
  48. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ch-ZN.js +32 -30
  49. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-de.txt +17 -13
  50. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-el.js +32 -30
  51. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-en.txt +4 -1
  52. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-es.js +30 -28
  53. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-fr.js +35 -32
  54. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-he.js +32 -30
  55. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-hi.js +32 -30
  56. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-hu.js +32 -30
  57. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-it.js +32 -30
  58. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ja.js +32 -30
  59. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-lt.js +37 -36
  60. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-nl.js +32 -30
  61. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pl.js +5 -2
  62. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pt-PT.js +33 -30
  63. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ru.js +3 -1
  64. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-sv.js +32 -30
  65. data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +79 -12
  66. data/vendor/assets/javascripts/webshims/shims/styles/forms.png +0 -0
  67. data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +126 -121
  68. data/vendor/assets/javascripts/webshims/shims/styles/shim.css +100 -111
  69. data/vendor/assets/javascripts/webshims/shims/swfmini.js +0 -46
  70. data/vendor/assets/javascripts/webshims/shims/track-ui.js +13 -6
  71. data/webshims-rails.gemspec +1 -0
  72. metadata +4 -3
@@ -165,52 +165,6 @@ var swfmini = function() {
165
165
  }
166
166
 
167
167
 
168
- /* Functions to abstract and display alternative content
169
- */
170
- function displayAltContent(obj) {
171
- if (ua.ie && ua.win && obj.readyState != 4) {
172
- // IE only: when a SWF is loading (AND: not available in cache) wait for the readyState of the object element to become 4 before removing it,
173
- // because you cannot properly cancel a loading SWF file without breaking browser load references, also obj.onreadystatechange doesn't work
174
- var el = createElement("div");
175
- obj.parentNode.insertBefore(el, obj); // insert placeholder div that will be replaced by the alternative content
176
- el.parentNode.replaceChild(abstractAltContent(obj), el);
177
- obj.style.display = "none";
178
- (function(){
179
- if (obj.readyState == 4) {
180
- obj.parentNode.removeChild(obj);
181
- }
182
- else {
183
- setTimeout(arguments.callee, 10);
184
- }
185
- })();
186
- }
187
- else {
188
- obj.parentNode.replaceChild(abstractAltContent(obj), obj);
189
- }
190
- }
191
-
192
- function abstractAltContent(obj) {
193
- var ac = createElement("div");
194
- if (ua.win && ua.ie) {
195
- ac.innerHTML = obj.innerHTML;
196
- }
197
- else {
198
- var nestedObj = obj.getElementsByTagName(OBJECT)[0];
199
- if (nestedObj) {
200
- var c = nestedObj.childNodes;
201
- if (c) {
202
- var cl = c.length;
203
- for (var i = 0; i < cl; i++) {
204
- if (!(c[i].nodeType == 1 && c[i].nodeName == "PARAM") && !(c[i].nodeType == 8)) {
205
- ac.appendChild(c[i].cloneNode(true));
206
- }
207
- }
208
- }
209
- }
210
- }
211
- return ac;
212
- }
213
-
214
168
  /* Cross-browser dynamic SWF creation
215
169
  */
216
170
  function createSWF(attObj, parObj, id) {
@@ -499,8 +453,9 @@ var swfmini = function() {
499
453
  //DOM-Extension helper
500
454
  webshims.register('dom-extend', function($, webshims, window, document, undefined){
501
455
  "use strict";
502
-
503
- webshims.assumeARIA = $.support.getSetAttribute || Modernizr.canvas || Modernizr.video || Modernizr.boxsizing;
456
+ var supportHrefNormalized = !('hrefNormalized' in $.support) || $.support.hrefNormalized;
457
+ var supportGetSetAttribute = !('getSetAttribute' in $.support) || $.support.getSetAttribute;
458
+ webshims.assumeARIA = supportGetSetAttribute || Modernizr.canvas || Modernizr.video || Modernizr.boxsizing;
504
459
 
505
460
  if($('<input type="email" />').attr('type') == 'text' || $('<form />').attr('novalidate') === "" || ('required' in $('<input />')[0].attributes)){
506
461
  webshims.error("IE browser modes are busted in IE10. Please test your HTML/CSS/JS with a real IE version or at least IETester or similiar tools");
@@ -510,8 +465,8 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
510
465
  webshims.error("Webshims needs jQuery 1.8+ to work properly. Please update your jQuery version or downgrade webshims.");
511
466
  }
512
467
 
513
- if(webshims.cfg.extendNative === 1){
514
- webshims.warn("extendNative configuration will be set to false by default with next release. In case you rely on it set it to 'true' otherwise to 'false'. See http://bit.ly/16OOTQO");
468
+ if(webshims.cfg.extendNative === undefined){
469
+ webshims.warn("extendNative configuration was set to false by default with this release. In case you rely on it set it to 'true' otherwise to 'false'. See http://bit.ly/16OOTQO");
515
470
  }
516
471
 
517
472
  if (!webshims.cfg.no$Switch) {
@@ -1183,7 +1138,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1183
1138
 
1184
1139
  anchor.setAttribute('href', href+'' );
1185
1140
 
1186
- if(!$.support.hrefNormalized){
1141
+ if(!supportHrefNormalized){
1187
1142
  try {
1188
1143
  $(anchor).insertAfter(this);
1189
1144
  ret = anchor.getAttribute('href', 4);
@@ -1624,6 +1579,10 @@ webshims.register('form-core', function($, webshims, window, document, undefined
1624
1579
  options.customMessages = true;
1625
1580
  toLoad.push('form-message');
1626
1581
  }
1582
+ if(options.customDatalist){
1583
+ options.fD = true;
1584
+ toLoad.push('form-datalist');
1585
+ }
1627
1586
  if(options.addValidators){
1628
1587
  toLoad.push('form-validators');
1629
1588
  }
@@ -1762,6 +1721,14 @@ webshims.register('form-core', function($, webshims, window, document, undefined
1762
1721
  return false;
1763
1722
  }
1764
1723
  });
1724
+ if(typeof message == 'object'){
1725
+ if(validity.typeMismatch && message.badInput){
1726
+ message = message.badInput;
1727
+ }
1728
+ if(validity.badInput && message.typeMismatch){
1729
+ message = message.typeMismatch;
1730
+ }
1731
+ }
1765
1732
  }
1766
1733
  }
1767
1734
 
@@ -1842,9 +1809,8 @@ webshims.register('form-core', function($, webshims, window, document, undefined
1842
1809
 
1843
1810
  webshims.register('form-message', function($, webshims, window, document, undefined, options){
1844
1811
  "use strict";
1845
- if(options.overrideMessages){
1812
+ if(options.lazyCustomMessages){
1846
1813
  options.customMessages = true;
1847
- webshims.error('overrideMessages is deprecated. use customMessages instead.');
1848
1814
  }
1849
1815
  var validityMessages = webshims.validityMessages;
1850
1816
 
@@ -1854,7 +1820,10 @@ webshims.register('form-message', function($, webshims, window, document, undefi
1854
1820
  typeMismatch: {
1855
1821
  defaultMessage: 'Please enter a valid value.',
1856
1822
  email: 'Please enter an email address.',
1857
- url: 'Please enter a URL.',
1823
+ url: 'Please enter a URL.'
1824
+ },
1825
+ badInput: {
1826
+ defaultMessage: 'Please enter a valid value.',
1858
1827
  number: 'Please enter a number.',
1859
1828
  date: 'Please enter a date.',
1860
1829
  time: 'Please enter a time.',
@@ -1907,13 +1876,16 @@ webshims.register('form-message', function($, webshims, window, document, undefi
1907
1876
  typeMismatch: {
1908
1877
  defaultMessage: '{%value} ist in diesem Feld nicht zulässig.',
1909
1878
  email: '{%value} ist keine gültige E-Mail-Adresse.',
1910
- url: '{%value} ist kein(e) gültige(r) Webadresse/Pfad.',
1911
- number: '{%value} ist keine Nummer.',
1912
- date: '{%value} ist kein Datum.',
1913
- time: '{%value} ist keine Uhrzeit.',
1914
- month: '{%value} ist in diesem Feld nicht zulässig.',
1915
- range: '{%value} ist keine Nummer.',
1916
- "datetime-local": '{%value} ist kein Datum-Uhrzeit Format.'
1879
+ url: '{%value} ist kein(e) gültige(r) Webadresse/Pfad.'
1880
+ },
1881
+ badInput: {
1882
+ defaultMessage: 'Geben Sie einen zulässigen Wert ein.',
1883
+ number: 'Geben Sie eine Nummer ein.',
1884
+ date: 'Geben Sie ein Datum ein.',
1885
+ time: 'Geben Sie eine Uhrzeit ein.',
1886
+ month: 'Geben Sie einen Monat mit Jahr ein.',
1887
+ range: 'Geben Sie eine Nummer.',
1888
+ "datetime-local": 'Geben Sie ein Datum mit Uhrzeit ein.'
1917
1889
  },
1918
1890
  rangeUnderflow: {
1919
1891
  defaultMessage: '{%value} ist zu niedrig. {%min} ist der unterste Wert, den Sie benutzen können.'
@@ -1961,11 +1933,17 @@ webshims.register('form-message', function($, webshims, window, document, undefi
1961
1933
 
1962
1934
  webshims.createValidationMessage = function(elem, name){
1963
1935
  var widget;
1964
- var message = getMessageFromObj(currentValidationMessage[name], elem);
1965
1936
  var type = $.prop(elem, 'type');
1937
+ var message = getMessageFromObj(currentValidationMessage[name], elem);
1938
+ if(!message && name == 'badInput'){
1939
+ message = getMessageFromObj(currentValidationMessage.typeMismatch, elem);
1940
+ }
1941
+ if(!message && name == 'typeMismatch'){
1942
+ message = getMessageFromObj(currentValidationMessage.badInput, elem);
1943
+ }
1966
1944
  if(!message){
1967
1945
  message = getMessageFromObj(validityMessages[''][name], elem) || $.prop(elem, 'validationMessage');
1968
- webshims.info('could not find errormessage for: '+ name +' / '+ type +'. in language: '+$.webshims.activeLang());
1946
+ webshims.info('could not find errormessage for: '+ name +' / '+ type +'. in language: '+webshims.activeLang());
1969
1947
  }
1970
1948
  if(message){
1971
1949
  ['value', 'min', 'max', 'title', 'maxlength', 'label'].forEach(function(attr){
@@ -2008,20 +1986,14 @@ webshims.register('form-message', function($, webshims, window, document, undefi
2008
1986
  webshims.activeLang({
2009
1987
  register: 'form-core',
2010
1988
  callback: function(val){
2011
- $.each(validityMessages, function(i, val){
2012
- if(validityMessages[val]){
2013
- currentValidationMessage = validityMessages[val];
2014
- return false;
2015
- }
2016
- });
1989
+ if(validityMessages[val]){
1990
+ currentValidationMessage = validityMessages[val];
1991
+ }
2017
1992
  }
2018
1993
  });
2019
1994
 
2020
1995
  implementProperties.forEach(function(messageProp){
2021
- var skipNames = {
2022
- valid: 1,
2023
- badInput: 1
2024
- };
1996
+
2025
1997
  webshims.defineNodeNamesProperty(['fieldset', 'output', 'button'], messageProp, {
2026
1998
  prop: {
2027
1999
  value: '',
@@ -2050,16 +2022,14 @@ webshims.register('form-message', function($, webshims, window, document, undefi
2050
2022
  if(message){return message;}
2051
2023
  }
2052
2024
  $.each(validity, function(name, prop){
2053
- if(skipNames[name] || !prop){return;}
2025
+ if(name == 'valid' || !prop){return;}
2054
2026
 
2055
2027
  message = webshims.createValidationMessage(elem, name);
2056
2028
  if(message){
2057
2029
  return false;
2058
2030
  }
2059
2031
  });
2060
- if(!message && validity.badInput){
2061
- message = webshims.createValidationMessage(elem, 'typeMismatch') || webshims.createValidationMessage(elem, 'valueMissing');
2062
- }
2032
+
2063
2033
  return message || '';
2064
2034
  },
2065
2035
  writeable: false
@@ -2168,34 +2138,6 @@ webshims.register('form-datalist', function($, webshims, window, document, undef
2168
2138
  }
2169
2139
  };
2170
2140
 
2171
- if(formsCFG.customDatalist && (!listSupport || !('selectedOption' in $('<input />')[0]))){
2172
- //currently not supported x-browser (FF4 has not implemented and is not polyfilled )
2173
- inputListProto.selectedOption = {
2174
- prop: {
2175
- writeable: false,
2176
- get: function(){
2177
- var elem = this;
2178
- var list = $.prop(elem, 'list');
2179
- var ret = null;
2180
- var value, options;
2181
- if(!list){return ret;}
2182
- value = $.prop(elem, 'value');
2183
- if(!value){return ret;}
2184
- options = $.prop(list, 'options');
2185
- if(!options.length){return ret;}
2186
- $.each(options, function(i, option){
2187
- if(value == $.prop(option, 'value')){
2188
- ret = option;
2189
- return false;
2190
- }
2191
- });
2192
- return ret;
2193
- }
2194
- }
2195
- };
2196
- }
2197
-
2198
-
2199
2141
  if(listSupport){
2200
2142
  //options only return options, if option-elements are rooted: but this makes this part of HTML5 less backwards compatible
2201
2143
  if(!($('<datalist><select><option></option></select></datalist>').prop('options') || []).length ){
@@ -2374,7 +2316,8 @@ webshims.register('form-datalist', function($, webshims, window, document, undef
2374
2316
  }
2375
2317
  });
2376
2318
  };
2377
- var options = webshims.cfg.mediaelement;
2319
+ var wsCfg = webshims.cfg;
2320
+ var options = wsCfg.mediaelement;
2378
2321
  var hasFullTrackSupport;
2379
2322
  var hasSwf;
2380
2323
  if(!options){
@@ -2461,7 +2404,7 @@ webshims.register('form-datalist', function($, webshims, window, document, undef
2461
2404
  }
2462
2405
  hasFullTrackSupport = Modernizr.track && !bugs.track;
2463
2406
 
2464
- webshims.register('mediaelement-core', function($, webshims, window, document, undefined){
2407
+ webshims.register('mediaelement-core', function($, webshims, window, document, undefined, options){
2465
2408
  hasSwf = swfmini.hasFlashPlayerVersion('9.0.115');
2466
2409
  $('html').addClass(hasSwf ? 'swf' : 'no-swf');
2467
2410
  var mediaelement = webshims.mediaelement;
@@ -2545,11 +2488,21 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2545
2488
  var loadTrackUi = function(){
2546
2489
  if(loadTrackUi.loaded){return;}
2547
2490
  loadTrackUi.loaded = true;
2548
- webshims.ready('WINDOWLOAD', function(){
2549
- loadThird();
2550
- webshims.loader.loadList(['track-ui']);
2551
- });
2491
+ if(!options.noAutoTrack){
2492
+ webshims.ready('WINDOWLOAD', function(){
2493
+ loadThird();
2494
+ webshims.loader.loadList(['track-ui']);
2495
+ });
2496
+ }
2552
2497
  };
2498
+ // var loadMediaGroup = function(){
2499
+ // if(!loadMediaGroup.loaded){
2500
+ // loadMediaGroup.loaded = true;
2501
+ // webshims.ready(window.MediaController ? 'WINDOWLOAD' : 'DOM', function(){
2502
+ // webshims.loader.loadList(['mediagroup']);
2503
+ // });
2504
+ // }
2505
+ // };
2553
2506
  var loadYt = (function(){
2554
2507
  var loaded;
2555
2508
  return function(){
@@ -2574,6 +2527,11 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2574
2527
  d: ['dom-support']
2575
2528
  });
2576
2529
 
2530
+
2531
+ // webshims.addModule('mediagroup', {
2532
+ // d: ['mediaelement', 'dom-support']
2533
+ // });
2534
+
2577
2535
  mediaelement.mimeTypes = {
2578
2536
  audio: {
2579
2537
  //ogm shouldn´t be used!
@@ -2872,8 +2830,6 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2872
2830
 
2873
2831
  };
2874
2832
 
2875
-
2876
-
2877
2833
  webshims.ready('dom-support', function(){
2878
2834
  handleMedia = true;
2879
2835
 
@@ -2882,7 +2838,8 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2882
2838
  }
2883
2839
 
2884
2840
  ['audio', 'video'].forEach(function(nodeName){
2885
- var supLoad = webshims.defineNodeNameProperty(nodeName, 'load', {
2841
+ var supLoad, supController;
2842
+ supLoad = webshims.defineNodeNameProperty(nodeName, 'load', {
2886
2843
  prop: {
2887
2844
  value: function(){
2888
2845
  var data = webshims.data(this, 'mediaelement');
@@ -2913,7 +2870,59 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2913
2870
  }
2914
2871
  }
2915
2872
  });
2873
+
2874
+ // supController = webshims.defineNodeNameProperty(nodeName, 'controller', {
2875
+ // prop: {
2876
+ // get: function(type){
2877
+ // if(!loadMediaGroup.loaded){
2878
+ // loadMediaGroup();
2879
+ // }
2880
+ // if(mediaelement.controller){
2881
+ // return mediaelement.controller[nodeName].get.apply(this, arguments);
2882
+ // }
2883
+ // return supController.prop._supget && supController.prop._supget.apply(this, arguments);
2884
+ // },
2885
+ // set: function(){
2886
+ // var that = this;
2887
+ // var args = arguments;
2888
+ // if(!loadMediaGroup.loaded){
2889
+ // loadMediaGroup();
2890
+ // }
2891
+ // if(mediaelement.controller){
2892
+ // return mediaelement.controller[nodeName].set.apply(that, args);
2893
+ // } else {
2894
+ // webshims.ready('mediagroup', function(){
2895
+ // mediaelement.controller[nodeName].set.apply(that, args);
2896
+ // });
2897
+ // }
2898
+ // return supController.prop._supset && supController.prop._supset.apply(this, arguments);
2899
+ // }
2900
+ // }
2901
+ // });
2902
+
2903
+ // webshims.ready('mediagroup', function(){
2904
+ // mediaelement.controller[nodeName].sup = supController;
2905
+ // });
2916
2906
  });
2907
+
2908
+ // webshims.onNodeNamesPropertyModify(['audio', 'video'], ['mediaGroup'], {
2909
+ // set: function(){
2910
+ // var that = this;
2911
+ // var args = arguments;
2912
+ // if(!loadMediaGroup.loaded){
2913
+ // loadMediaGroup();
2914
+ // }
2915
+ // if(mediaelement.mediagroup){
2916
+ // mediaelement.mediagroup.set.apply(that, args);
2917
+ // } else {
2918
+ // webshims.ready('mediagroup', function(){
2919
+ // mediaelement.mediagroup.set.apply(that, args);
2920
+ // });
2921
+ // }
2922
+ // },
2923
+ // initAttr: true
2924
+ // });
2925
+
2917
2926
  webshims.onNodeNamesPropertyModify(['audio', 'video'], ['src', 'poster'], {
2918
2927
  set: function(){
2919
2928
  var elem = this;
@@ -2935,6 +2944,9 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2935
2944
  if(!loadTrackUi.loaded && $('track', media).length){
2936
2945
  loadTrackUi();
2937
2946
  }
2947
+ // if(!loadMediaGroup.loaded && this.getAttribute('mediagroup')){
2948
+ // loadMediaGroup();
2949
+ // }
2938
2950
  media = null;
2939
2951
  });
2940
2952
  });
@@ -2950,9 +2962,6 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2950
2962
  handleMedia = true;
2951
2963
  return false;
2952
2964
  }
2953
- if((!hasFullTrackSupport || webshims.modules.track.options.override) && !loadTrackUi.loaded && $('track', this).length){
2954
- loadTrackUi();
2955
- }
2956
2965
  })
2957
2966
  ;
2958
2967
  }
@@ -165,52 +165,6 @@ var swfmini = function() {
165
165
  }
166
166
 
167
167
 
168
- /* Functions to abstract and display alternative content
169
- */
170
- function displayAltContent(obj) {
171
- if (ua.ie && ua.win && obj.readyState != 4) {
172
- // IE only: when a SWF is loading (AND: not available in cache) wait for the readyState of the object element to become 4 before removing it,
173
- // because you cannot properly cancel a loading SWF file without breaking browser load references, also obj.onreadystatechange doesn't work
174
- var el = createElement("div");
175
- obj.parentNode.insertBefore(el, obj); // insert placeholder div that will be replaced by the alternative content
176
- el.parentNode.replaceChild(abstractAltContent(obj), el);
177
- obj.style.display = "none";
178
- (function(){
179
- if (obj.readyState == 4) {
180
- obj.parentNode.removeChild(obj);
181
- }
182
- else {
183
- setTimeout(arguments.callee, 10);
184
- }
185
- })();
186
- }
187
- else {
188
- obj.parentNode.replaceChild(abstractAltContent(obj), obj);
189
- }
190
- }
191
-
192
- function abstractAltContent(obj) {
193
- var ac = createElement("div");
194
- if (ua.win && ua.ie) {
195
- ac.innerHTML = obj.innerHTML;
196
- }
197
- else {
198
- var nestedObj = obj.getElementsByTagName(OBJECT)[0];
199
- if (nestedObj) {
200
- var c = nestedObj.childNodes;
201
- if (c) {
202
- var cl = c.length;
203
- for (var i = 0; i < cl; i++) {
204
- if (!(c[i].nodeType == 1 && c[i].nodeName == "PARAM") && !(c[i].nodeType == 8)) {
205
- ac.appendChild(c[i].cloneNode(true));
206
- }
207
- }
208
- }
209
- }
210
- }
211
- return ac;
212
- }
213
-
214
168
  /* Cross-browser dynamic SWF creation
215
169
  */
216
170
  function createSWF(attObj, parObj, id) {
@@ -499,8 +453,9 @@ var swfmini = function() {
499
453
  //DOM-Extension helper
500
454
  webshims.register('dom-extend', function($, webshims, window, document, undefined){
501
455
  "use strict";
502
-
503
- webshims.assumeARIA = $.support.getSetAttribute || Modernizr.canvas || Modernizr.video || Modernizr.boxsizing;
456
+ var supportHrefNormalized = !('hrefNormalized' in $.support) || $.support.hrefNormalized;
457
+ var supportGetSetAttribute = !('getSetAttribute' in $.support) || $.support.getSetAttribute;
458
+ webshims.assumeARIA = supportGetSetAttribute || Modernizr.canvas || Modernizr.video || Modernizr.boxsizing;
504
459
 
505
460
  if($('<input type="email" />').attr('type') == 'text' || $('<form />').attr('novalidate') === "" || ('required' in $('<input />')[0].attributes)){
506
461
  webshims.error("IE browser modes are busted in IE10. Please test your HTML/CSS/JS with a real IE version or at least IETester or similiar tools");
@@ -510,8 +465,8 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
510
465
  webshims.error("Webshims needs jQuery 1.8+ to work properly. Please update your jQuery version or downgrade webshims.");
511
466
  }
512
467
 
513
- if(webshims.cfg.extendNative === 1){
514
- webshims.warn("extendNative configuration will be set to false by default with next release. In case you rely on it set it to 'true' otherwise to 'false'. See http://bit.ly/16OOTQO");
468
+ if(webshims.cfg.extendNative === undefined){
469
+ webshims.warn("extendNative configuration was set to false by default with this release. In case you rely on it set it to 'true' otherwise to 'false'. See http://bit.ly/16OOTQO");
515
470
  }
516
471
 
517
472
  if (!webshims.cfg.no$Switch) {
@@ -1183,7 +1138,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1183
1138
 
1184
1139
  anchor.setAttribute('href', href+'' );
1185
1140
 
1186
- if(!$.support.hrefNormalized){
1141
+ if(!supportHrefNormalized){
1187
1142
  try {
1188
1143
  $(anchor).insertAfter(this);
1189
1144
  ret = anchor.getAttribute('href', 4);
@@ -1624,6 +1579,10 @@ webshims.register('form-core', function($, webshims, window, document, undefined
1624
1579
  options.customMessages = true;
1625
1580
  toLoad.push('form-message');
1626
1581
  }
1582
+ if(options.customDatalist){
1583
+ options.fD = true;
1584
+ toLoad.push('form-datalist');
1585
+ }
1627
1586
  if(options.addValidators){
1628
1587
  toLoad.push('form-validators');
1629
1588
  }
@@ -1762,6 +1721,14 @@ webshims.register('form-core', function($, webshims, window, document, undefined
1762
1721
  return false;
1763
1722
  }
1764
1723
  });
1724
+ if(typeof message == 'object'){
1725
+ if(validity.typeMismatch && message.badInput){
1726
+ message = message.badInput;
1727
+ }
1728
+ if(validity.badInput && message.typeMismatch){
1729
+ message = message.typeMismatch;
1730
+ }
1731
+ }
1765
1732
  }
1766
1733
  }
1767
1734
 
@@ -1842,9 +1809,8 @@ webshims.register('form-core', function($, webshims, window, document, undefined
1842
1809
 
1843
1810
  webshims.register('form-message', function($, webshims, window, document, undefined, options){
1844
1811
  "use strict";
1845
- if(options.overrideMessages){
1812
+ if(options.lazyCustomMessages){
1846
1813
  options.customMessages = true;
1847
- webshims.error('overrideMessages is deprecated. use customMessages instead.');
1848
1814
  }
1849
1815
  var validityMessages = webshims.validityMessages;
1850
1816
 
@@ -1854,7 +1820,10 @@ webshims.register('form-message', function($, webshims, window, document, undefi
1854
1820
  typeMismatch: {
1855
1821
  defaultMessage: 'Please enter a valid value.',
1856
1822
  email: 'Please enter an email address.',
1857
- url: 'Please enter a URL.',
1823
+ url: 'Please enter a URL.'
1824
+ },
1825
+ badInput: {
1826
+ defaultMessage: 'Please enter a valid value.',
1858
1827
  number: 'Please enter a number.',
1859
1828
  date: 'Please enter a date.',
1860
1829
  time: 'Please enter a time.',
@@ -1907,13 +1876,16 @@ webshims.register('form-message', function($, webshims, window, document, undefi
1907
1876
  typeMismatch: {
1908
1877
  defaultMessage: '{%value} ist in diesem Feld nicht zulässig.',
1909
1878
  email: '{%value} ist keine gültige E-Mail-Adresse.',
1910
- url: '{%value} ist kein(e) gültige(r) Webadresse/Pfad.',
1911
- number: '{%value} ist keine Nummer.',
1912
- date: '{%value} ist kein Datum.',
1913
- time: '{%value} ist keine Uhrzeit.',
1914
- month: '{%value} ist in diesem Feld nicht zulässig.',
1915
- range: '{%value} ist keine Nummer.',
1916
- "datetime-local": '{%value} ist kein Datum-Uhrzeit Format.'
1879
+ url: '{%value} ist kein(e) gültige(r) Webadresse/Pfad.'
1880
+ },
1881
+ badInput: {
1882
+ defaultMessage: 'Geben Sie einen zulässigen Wert ein.',
1883
+ number: 'Geben Sie eine Nummer ein.',
1884
+ date: 'Geben Sie ein Datum ein.',
1885
+ time: 'Geben Sie eine Uhrzeit ein.',
1886
+ month: 'Geben Sie einen Monat mit Jahr ein.',
1887
+ range: 'Geben Sie eine Nummer.',
1888
+ "datetime-local": 'Geben Sie ein Datum mit Uhrzeit ein.'
1917
1889
  },
1918
1890
  rangeUnderflow: {
1919
1891
  defaultMessage: '{%value} ist zu niedrig. {%min} ist der unterste Wert, den Sie benutzen können.'
@@ -1961,11 +1933,17 @@ webshims.register('form-message', function($, webshims, window, document, undefi
1961
1933
 
1962
1934
  webshims.createValidationMessage = function(elem, name){
1963
1935
  var widget;
1964
- var message = getMessageFromObj(currentValidationMessage[name], elem);
1965
1936
  var type = $.prop(elem, 'type');
1937
+ var message = getMessageFromObj(currentValidationMessage[name], elem);
1938
+ if(!message && name == 'badInput'){
1939
+ message = getMessageFromObj(currentValidationMessage.typeMismatch, elem);
1940
+ }
1941
+ if(!message && name == 'typeMismatch'){
1942
+ message = getMessageFromObj(currentValidationMessage.badInput, elem);
1943
+ }
1966
1944
  if(!message){
1967
1945
  message = getMessageFromObj(validityMessages[''][name], elem) || $.prop(elem, 'validationMessage');
1968
- webshims.info('could not find errormessage for: '+ name +' / '+ type +'. in language: '+$.webshims.activeLang());
1946
+ webshims.info('could not find errormessage for: '+ name +' / '+ type +'. in language: '+webshims.activeLang());
1969
1947
  }
1970
1948
  if(message){
1971
1949
  ['value', 'min', 'max', 'title', 'maxlength', 'label'].forEach(function(attr){
@@ -2008,20 +1986,14 @@ webshims.register('form-message', function($, webshims, window, document, undefi
2008
1986
  webshims.activeLang({
2009
1987
  register: 'form-core',
2010
1988
  callback: function(val){
2011
- $.each(validityMessages, function(i, val){
2012
- if(validityMessages[val]){
2013
- currentValidationMessage = validityMessages[val];
2014
- return false;
2015
- }
2016
- });
1989
+ if(validityMessages[val]){
1990
+ currentValidationMessage = validityMessages[val];
1991
+ }
2017
1992
  }
2018
1993
  });
2019
1994
 
2020
1995
  implementProperties.forEach(function(messageProp){
2021
- var skipNames = {
2022
- valid: 1,
2023
- badInput: 1
2024
- };
1996
+
2025
1997
  webshims.defineNodeNamesProperty(['fieldset', 'output', 'button'], messageProp, {
2026
1998
  prop: {
2027
1999
  value: '',
@@ -2050,16 +2022,14 @@ webshims.register('form-message', function($, webshims, window, document, undefi
2050
2022
  if(message){return message;}
2051
2023
  }
2052
2024
  $.each(validity, function(name, prop){
2053
- if(skipNames[name] || !prop){return;}
2025
+ if(name == 'valid' || !prop){return;}
2054
2026
 
2055
2027
  message = webshims.createValidationMessage(elem, name);
2056
2028
  if(message){
2057
2029
  return false;
2058
2030
  }
2059
2031
  });
2060
- if(!message && validity.badInput){
2061
- message = webshims.createValidationMessage(elem, 'typeMismatch') || webshims.createValidationMessage(elem, 'valueMissing');
2062
- }
2032
+
2063
2033
  return message || '';
2064
2034
  },
2065
2035
  writeable: false
@@ -2085,7 +2055,8 @@ webshims.register('form-message', function($, webshims, window, document, undefi
2085
2055
  }
2086
2056
  });
2087
2057
  };
2088
- var options = webshims.cfg.mediaelement;
2058
+ var wsCfg = webshims.cfg;
2059
+ var options = wsCfg.mediaelement;
2089
2060
  var hasFullTrackSupport;
2090
2061
  var hasSwf;
2091
2062
  if(!options){
@@ -2172,7 +2143,7 @@ webshims.register('form-message', function($, webshims, window, document, undefi
2172
2143
  }
2173
2144
  hasFullTrackSupport = Modernizr.track && !bugs.track;
2174
2145
 
2175
- webshims.register('mediaelement-core', function($, webshims, window, document, undefined){
2146
+ webshims.register('mediaelement-core', function($, webshims, window, document, undefined, options){
2176
2147
  hasSwf = swfmini.hasFlashPlayerVersion('9.0.115');
2177
2148
  $('html').addClass(hasSwf ? 'swf' : 'no-swf');
2178
2149
  var mediaelement = webshims.mediaelement;
@@ -2256,11 +2227,21 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2256
2227
  var loadTrackUi = function(){
2257
2228
  if(loadTrackUi.loaded){return;}
2258
2229
  loadTrackUi.loaded = true;
2259
- webshims.ready('WINDOWLOAD', function(){
2260
- loadThird();
2261
- webshims.loader.loadList(['track-ui']);
2262
- });
2230
+ if(!options.noAutoTrack){
2231
+ webshims.ready('WINDOWLOAD', function(){
2232
+ loadThird();
2233
+ webshims.loader.loadList(['track-ui']);
2234
+ });
2235
+ }
2263
2236
  };
2237
+ // var loadMediaGroup = function(){
2238
+ // if(!loadMediaGroup.loaded){
2239
+ // loadMediaGroup.loaded = true;
2240
+ // webshims.ready(window.MediaController ? 'WINDOWLOAD' : 'DOM', function(){
2241
+ // webshims.loader.loadList(['mediagroup']);
2242
+ // });
2243
+ // }
2244
+ // };
2264
2245
  var loadYt = (function(){
2265
2246
  var loaded;
2266
2247
  return function(){
@@ -2285,6 +2266,11 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2285
2266
  d: ['dom-support']
2286
2267
  });
2287
2268
 
2269
+
2270
+ // webshims.addModule('mediagroup', {
2271
+ // d: ['mediaelement', 'dom-support']
2272
+ // });
2273
+
2288
2274
  mediaelement.mimeTypes = {
2289
2275
  audio: {
2290
2276
  //ogm shouldn´t be used!
@@ -2583,8 +2569,6 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2583
2569
 
2584
2570
  };
2585
2571
 
2586
-
2587
-
2588
2572
  webshims.ready('dom-support', function(){
2589
2573
  handleMedia = true;
2590
2574
 
@@ -2593,7 +2577,8 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2593
2577
  }
2594
2578
 
2595
2579
  ['audio', 'video'].forEach(function(nodeName){
2596
- var supLoad = webshims.defineNodeNameProperty(nodeName, 'load', {
2580
+ var supLoad, supController;
2581
+ supLoad = webshims.defineNodeNameProperty(nodeName, 'load', {
2597
2582
  prop: {
2598
2583
  value: function(){
2599
2584
  var data = webshims.data(this, 'mediaelement');
@@ -2624,7 +2609,59 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2624
2609
  }
2625
2610
  }
2626
2611
  });
2612
+
2613
+ // supController = webshims.defineNodeNameProperty(nodeName, 'controller', {
2614
+ // prop: {
2615
+ // get: function(type){
2616
+ // if(!loadMediaGroup.loaded){
2617
+ // loadMediaGroup();
2618
+ // }
2619
+ // if(mediaelement.controller){
2620
+ // return mediaelement.controller[nodeName].get.apply(this, arguments);
2621
+ // }
2622
+ // return supController.prop._supget && supController.prop._supget.apply(this, arguments);
2623
+ // },
2624
+ // set: function(){
2625
+ // var that = this;
2626
+ // var args = arguments;
2627
+ // if(!loadMediaGroup.loaded){
2628
+ // loadMediaGroup();
2629
+ // }
2630
+ // if(mediaelement.controller){
2631
+ // return mediaelement.controller[nodeName].set.apply(that, args);
2632
+ // } else {
2633
+ // webshims.ready('mediagroup', function(){
2634
+ // mediaelement.controller[nodeName].set.apply(that, args);
2635
+ // });
2636
+ // }
2637
+ // return supController.prop._supset && supController.prop._supset.apply(this, arguments);
2638
+ // }
2639
+ // }
2640
+ // });
2641
+
2642
+ // webshims.ready('mediagroup', function(){
2643
+ // mediaelement.controller[nodeName].sup = supController;
2644
+ // });
2627
2645
  });
2646
+
2647
+ // webshims.onNodeNamesPropertyModify(['audio', 'video'], ['mediaGroup'], {
2648
+ // set: function(){
2649
+ // var that = this;
2650
+ // var args = arguments;
2651
+ // if(!loadMediaGroup.loaded){
2652
+ // loadMediaGroup();
2653
+ // }
2654
+ // if(mediaelement.mediagroup){
2655
+ // mediaelement.mediagroup.set.apply(that, args);
2656
+ // } else {
2657
+ // webshims.ready('mediagroup', function(){
2658
+ // mediaelement.mediagroup.set.apply(that, args);
2659
+ // });
2660
+ // }
2661
+ // },
2662
+ // initAttr: true
2663
+ // });
2664
+
2628
2665
  webshims.onNodeNamesPropertyModify(['audio', 'video'], ['src', 'poster'], {
2629
2666
  set: function(){
2630
2667
  var elem = this;
@@ -2646,6 +2683,9 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2646
2683
  if(!loadTrackUi.loaded && $('track', media).length){
2647
2684
  loadTrackUi();
2648
2685
  }
2686
+ // if(!loadMediaGroup.loaded && this.getAttribute('mediagroup')){
2687
+ // loadMediaGroup();
2688
+ // }
2649
2689
  media = null;
2650
2690
  });
2651
2691
  });
@@ -2661,9 +2701,6 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2661
2701
  handleMedia = true;
2662
2702
  return false;
2663
2703
  }
2664
- if((!hasFullTrackSupport || webshims.modules.track.options.override) && !loadTrackUi.loaded && $('track', this).length){
2665
- loadTrackUi();
2666
- }
2667
2704
  })
2668
2705
  ;
2669
2706
  }