webshims-rails 1.11.3.1 → 1.11.6

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 +4 -4
  2. data/lib/webshims-rails/version.rb +2 -2
  3. data/vendor/assets/javascripts/webshims/extras/modernizr-custom.js +114 -104
  4. data/vendor/assets/javascripts/webshims/extras/mousepress.js +5 -5
  5. data/vendor/assets/javascripts/webshims/polyfiller.js +156 -207
  6. data/vendor/assets/javascripts/webshims/shims/$ajax.js +862 -0
  7. data/vendor/assets/javascripts/webshims/shims/FlashCanvas/flashcanvas.js +20 -0
  8. data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/flashcanvas.js +20 -0
  9. data/vendor/assets/javascripts/webshims/shims/color-picker.js +12 -12
  10. data/vendor/assets/javascripts/webshims/shims/combos/1.js +62 -32
  11. data/vendor/assets/javascripts/webshims/shims/combos/10.js +192 -509
  12. data/vendor/assets/javascripts/webshims/shims/combos/11.js +96 -415
  13. data/vendor/assets/javascripts/webshims/shims/combos/12.js +36 -26
  14. data/vendor/assets/javascripts/webshims/shims/combos/13.js +36 -26
  15. data/vendor/assets/javascripts/webshims/shims/combos/14.js +1007 -359
  16. data/vendor/assets/javascripts/webshims/shims/combos/15.js +310 -235
  17. data/vendor/assets/javascripts/webshims/shims/combos/16.js +313 -237
  18. data/vendor/assets/javascripts/webshims/shims/combos/17.js +96 -415
  19. data/vendor/assets/javascripts/webshims/shims/combos/18.js +1003 -678
  20. data/vendor/assets/javascripts/webshims/shims/combos/19.js +1085 -387
  21. data/vendor/assets/javascripts/webshims/shims/combos/2.js +161 -127
  22. data/vendor/assets/javascripts/webshims/shims/combos/20.js +1086 -388
  23. data/vendor/assets/javascripts/webshims/shims/combos/21.js +168 -96
  24. data/vendor/assets/javascripts/webshims/shims/combos/22.js +36 -27
  25. data/vendor/assets/javascripts/webshims/shims/combos/23.js +2 -1
  26. data/vendor/assets/javascripts/webshims/shims/combos/24.js +411 -172
  27. data/vendor/assets/javascripts/webshims/shims/combos/25.js +1085 -387
  28. data/vendor/assets/javascripts/webshims/shims/combos/26.js +96 -94
  29. data/vendor/assets/javascripts/webshims/shims/combos/3.js +163 -140
  30. data/vendor/assets/javascripts/webshims/shims/combos/30.js +166 -141
  31. data/vendor/assets/javascripts/webshims/shims/combos/31.js +159 -126
  32. data/vendor/assets/javascripts/webshims/shims/combos/4.js +103 -109
  33. data/vendor/assets/javascripts/webshims/shims/combos/5.js +98 -417
  34. data/vendor/assets/javascripts/webshims/shims/combos/6.js +101 -418
  35. data/vendor/assets/javascripts/webshims/shims/combos/7.js +168 -142
  36. data/vendor/assets/javascripts/webshims/shims/combos/8.js +165 -141
  37. data/vendor/assets/javascripts/webshims/shims/combos/9.js +195 -510
  38. data/vendor/assets/javascripts/webshims/shims/details.js +2 -2
  39. data/vendor/assets/javascripts/webshims/shims/dom-extend.js +96 -94
  40. data/vendor/assets/javascripts/webshims/shims/es5.js +908 -264
  41. data/vendor/assets/javascripts/webshims/shims/excanvas.js +16 -1
  42. data/vendor/assets/javascripts/webshims/shims/form-combat.js +147 -0
  43. data/vendor/assets/javascripts/webshims/shims/form-core.js +60 -31
  44. data/vendor/assets/javascripts/webshims/shims/form-datalist-lazy.js +114 -33
  45. data/vendor/assets/javascripts/webshims/shims/form-datalist.js +3 -1
  46. data/vendor/assets/javascripts/webshims/shims/form-message.js +7 -15
  47. data/vendor/assets/javascripts/webshims/shims/form-native-extend.js +2 -2
  48. data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +88 -410
  49. data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +143 -93
  50. data/vendor/assets/javascripts/webshims/shims/form-shim-extend2.js +268 -79
  51. data/vendor/assets/javascripts/webshims/shims/form-validation.js +116 -81
  52. data/vendor/assets/javascripts/webshims/shims/form-validators.js +23 -10
  53. data/vendor/assets/javascripts/webshims/shims/forms-picker.js +605 -9
  54. data/vendor/assets/javascripts/webshims/shims/geolocation.js +51 -39
  55. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-de.js +78 -33
  56. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-en.js +24 -6
  57. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-nl.js +110 -49
  58. data/vendor/assets/javascripts/webshims/shims/json-storage.js +3 -1
  59. data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +2 -1
  60. data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +81 -30
  61. data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +131 -54
  62. data/vendor/assets/javascripts/webshims/shims/plugins/jquery.ui.position.js +497 -0
  63. data/vendor/assets/javascripts/webshims/shims/range-ui.js +8 -5
  64. data/vendor/assets/javascripts/webshims/shims/sizzle.js +2026 -0
  65. data/vendor/assets/javascripts/webshims/shims/styles/forms-ext.css +401 -521
  66. data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-ext.scss +1 -1
  67. data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +94 -82
  68. data/vendor/assets/javascripts/webshims/shims/styles/shim.css +250 -321
  69. data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
  70. data/vendor/assets/javascripts/webshims/shims/track-ui.js +1 -1
  71. data/vendor/assets/javascripts/webshims/shims/track.js +34 -25
  72. metadata +7 -3
@@ -10,8 +10,8 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
10
10
  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");
11
11
  }
12
12
 
13
- if(!$.parseHTML){
14
- webshims.error("Webshims needs jQuery 1.8+ to work properly. Please update your jQuery version or downgrade webshims.");
13
+ if('debug' in webshims){
14
+ webshims.error('Use webshims.setOptions("debug", true||false||"noCombo"); to debug flag');
15
15
  }
16
16
 
17
17
  if (!webshims.cfg.no$Switch) {
@@ -47,7 +47,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
47
47
  // '127.0.0.1': 1
48
48
  // };
49
49
  //
50
- // if( webshims.debug && (hostNames[location.hostname] || location.protocol == 'file:') ){
50
+ // if( webshims.cfg.debug && (hostNames[location.hostname] || location.protocol == 'file:') ){
51
51
  // var list = $('<ul class="webshims-debug-list" />');
52
52
  // webshims.errorLog.push = function(message){
53
53
  // list.appendTo('body');
@@ -479,7 +479,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
479
479
  };
480
480
 
481
481
  $.extend(webshims, {
482
-
483
482
  getID: (function(){
484
483
  var ID = new Date().getTime();
485
484
  return function(elem){
@@ -509,6 +508,51 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
509
508
  }
510
509
  });
511
510
  },
511
+ getOptions: (function(){
512
+ var regs = {};
513
+ var regFn = function(f, upper){
514
+ return upper.toLowerCase();
515
+ };
516
+ return function(elem, name, bases){
517
+ var data = elementData(elem, 'cfg'+name);
518
+ var dataName;
519
+ var cfg = {};
520
+
521
+ if(data){
522
+ return data;
523
+ }
524
+ data = $(elem).data();
525
+
526
+ if(!bases){
527
+ bases = [true, {}];
528
+ } else if(!Array.isArray(bases)){
529
+ bases = [true, {}, bases];
530
+ } else {
531
+ bases.unshift(true, {});
532
+ }
533
+
534
+ if(data && data[name]){
535
+ if(typeof data[name] == 'object'){
536
+ bases.push(data[name]);
537
+ } else {
538
+ webshims.error('data-'+ name +' attribute has to be a valid JSON, was: '+ data[name]);
539
+ }
540
+ }
541
+
542
+ if(!regs[name]){
543
+ regs[name] = new RegExp('^'+ name +'([A-Z])');
544
+ }
545
+
546
+ for(dataName in data){
547
+ if(regs[name].test(dataName)){
548
+ cfg[dataName.replace(regs[name], regFn)] = data[dataName];
549
+ }
550
+ }
551
+ bases.push(cfg);
552
+
553
+ return elementData(elem, 'cfg'+name, $.extend.apply($, bases));
554
+ };
555
+ })(),
512
556
  //http://www.w3.org/TR/html5/common-dom-interfaces.html#reflect
513
557
  createPropDefault: createPropDefault,
514
558
  data: elementData,
@@ -596,7 +640,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
596
640
  setInterval(this.test, 600);
597
641
  $(this.test);
598
642
  webshims.ready('WINDOWLOAD', this.test);
599
- $(document).on('updatelayout', this.handler);
643
+ $(document).on('updatelayout pageinit collapsibleexpand shown.bs.modal shown.bs.collapse slid.bs.carousel', this.handler);
600
644
  $(window).on('resize', this.handler);
601
645
  (function(){
602
646
  var oldAnimate = $.fn.animate;
@@ -954,109 +998,67 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
954
998
  }
955
999
  },
956
1000
 
957
- // set current Lang:
958
- // - webshims.activeLang(lang:string);
959
- // get current lang
960
- // - webshims.activeLang();
961
- // get current lang
962
- // webshims.activeLang({
963
- // register: moduleName:string,
964
- // callback: callback:function
965
- // });
966
- // get/set including remoteLang
967
- // - webshims.activeLang({
968
- // module: moduleName:string,
969
- // callback: callback:function,
970
- // langObj: languageObj:array/object
971
- // });
972
1001
  activeLang: (function(){
973
- var callbacks = [];
974
- var registeredCallbacks = {};
975
- var currentLang;
976
- var shortLang;
977
- var notLocal = /:\/\/|^\.*\//;
978
- var loadRemoteLang = function(data, lang, options){
979
- var langSrc;
980
- if(lang && options && $.inArray(lang, options.availableLangs || options.availabeLangs || []) !== -1){
981
- data.loading = true;
982
- langSrc = options.langSrc;
983
- if(!notLocal.test(langSrc)){
984
- langSrc = webshims.cfg.basePath+langSrc;
985
- }
986
- webshims.loader.loadScript(langSrc+lang+'.js', function(){
987
- if(data.langObj[lang]){
988
- data.loading = false;
989
- callLang(data, true);
990
- } else {
991
- $(function(){
992
- if(data.langObj[lang]){
993
- callLang(data, true);
994
- }
995
- data.loading = false;
1002
+ var curLang = [];
1003
+ var langDatas = [];
1004
+ var loading = {};
1005
+ var load = function(src, obj, loadingLang){
1006
+ obj._isLoading = true;
1007
+ if(loading[src]){
1008
+ loading[src].push(obj);
1009
+ } else {
1010
+ loading[src] = [obj];
1011
+ webshims.loader.loadScript(src, function(){
1012
+ if(loadingLang == curLang.join()){
1013
+ $.each(loading[src], function(i, obj){
1014
+ select(obj);
996
1015
  });
997
1016
  }
1017
+ delete loading[src];
998
1018
  });
999
- return true;
1000
1019
  }
1001
- return false;
1002
1020
  };
1003
- var callRegister = function(module){
1004
- if(registeredCallbacks[module]){
1005
- registeredCallbacks[module].forEach(function(data){
1006
- data.callback(currentLang, shortLang, '');
1007
- });
1008
- }
1009
- };
1010
- var callLang = function(data, _noLoop){
1011
- if(data.activeLang != currentLang && data.activeLang !== shortLang){
1012
- var options = modules[data.module].options;
1013
- if( data.langObj[currentLang] || (shortLang && data.langObj[shortLang]) ){
1014
- data.activeLang = currentLang;
1015
- data.callback(data.langObj[currentLang] || data.langObj[shortLang], currentLang);
1016
- callRegister(data.module);
1017
- } else if( !_noLoop &&
1018
- !loadRemoteLang(data, currentLang, options) &&
1019
- !loadRemoteLang(data, shortLang, options) &&
1020
- data.langObj[''] && data.activeLang !== '' ) {
1021
- data.activeLang = '';
1022
- data.callback(data.langObj[''], currentLang);
1023
- callRegister(data.module);
1021
+ var select = function(obj){
1022
+ var oldLang = obj.__active;
1023
+ var selectLang = function(i, lang){
1024
+ obj._isLoading = false;
1025
+ if(obj[lang] || obj.availableLangs.indexOf(lang) != -1){
1026
+ if(obj[lang]){
1027
+ obj.__active = obj[lang];
1028
+ } else {
1029
+ load(obj.langSrc+lang, obj, curLang.join());
1030
+ }
1031
+ return false;
1024
1032
  }
1033
+ };
1034
+ $.each(curLang, selectLang);
1035
+ if(!obj.__active){
1036
+ obj.__active = obj[''];
1037
+ }
1038
+ if(oldLang != obj.__active){
1039
+ $(obj).trigger('change');
1025
1040
  }
1026
1041
  };
1027
-
1028
-
1029
- var activeLang = function(lang){
1030
-
1031
- if(typeof lang == 'string' && lang !== currentLang){
1032
- currentLang = lang;
1033
- shortLang = currentLang.split('-')[0];
1034
- if(currentLang == shortLang){
1035
- shortLang = false;
1042
+ return function(lang){
1043
+ var shortLang;
1044
+ if(typeof lang == 'string'){
1045
+ if(curLang[0] != lang){
1046
+ curLang = [lang];
1047
+ shortLang = curLang[0].split('-')[0];
1048
+ if(shortLang && shortLang != lang){
1049
+ curLang.push(shortLang);
1050
+ }
1051
+ langDatas.forEach(select);
1036
1052
  }
1037
- $.each(callbacks, function(i, data){
1038
- callLang(data);
1039
- });
1040
1053
  } else if(typeof lang == 'object'){
1041
-
1042
- if(lang.register){
1043
- if(!registeredCallbacks[lang.register]){
1044
- registeredCallbacks[lang.register] = [];
1045
- }
1046
- registeredCallbacks[lang.register].push(lang);
1047
- lang.callback(currentLang, shortLang, '');
1048
- } else {
1049
- if(!lang.activeLang){
1050
- lang.activeLang = '';
1051
- }
1052
- callbacks.push(lang);
1053
- callLang(lang);
1054
+ if(!lang.__active){
1055
+ langDatas.push(lang);
1056
+ select(lang);
1054
1057
  }
1058
+ return lang.__active;
1055
1059
  }
1056
- return currentLang;
1060
+ return curLang[0];
1057
1061
  };
1058
-
1059
- return activeLang;
1060
1062
  })()
1061
1063
  });
1062
1064
 
@@ -10,8 +10,8 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
10
10
  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");
11
11
  }
12
12
 
13
- if(!$.parseHTML){
14
- webshims.error("Webshims needs jQuery 1.8+ to work properly. Please update your jQuery version or downgrade webshims.");
13
+ if('debug' in webshims){
14
+ webshims.error('Use webshims.setOptions("debug", true||false||"noCombo"); to debug flag');
15
15
  }
16
16
 
17
17
  if (!webshims.cfg.no$Switch) {
@@ -47,7 +47,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
47
47
  // '127.0.0.1': 1
48
48
  // };
49
49
  //
50
- // if( webshims.debug && (hostNames[location.hostname] || location.protocol == 'file:') ){
50
+ // if( webshims.cfg.debug && (hostNames[location.hostname] || location.protocol == 'file:') ){
51
51
  // var list = $('<ul class="webshims-debug-list" />');
52
52
  // webshims.errorLog.push = function(message){
53
53
  // list.appendTo('body');
@@ -479,7 +479,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
479
479
  };
480
480
 
481
481
  $.extend(webshims, {
482
-
483
482
  getID: (function(){
484
483
  var ID = new Date().getTime();
485
484
  return function(elem){
@@ -509,6 +508,51 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
509
508
  }
510
509
  });
511
510
  },
511
+ getOptions: (function(){
512
+ var regs = {};
513
+ var regFn = function(f, upper){
514
+ return upper.toLowerCase();
515
+ };
516
+ return function(elem, name, bases){
517
+ var data = elementData(elem, 'cfg'+name);
518
+ var dataName;
519
+ var cfg = {};
520
+
521
+ if(data){
522
+ return data;
523
+ }
524
+ data = $(elem).data();
525
+
526
+ if(!bases){
527
+ bases = [true, {}];
528
+ } else if(!Array.isArray(bases)){
529
+ bases = [true, {}, bases];
530
+ } else {
531
+ bases.unshift(true, {});
532
+ }
533
+
534
+ if(data && data[name]){
535
+ if(typeof data[name] == 'object'){
536
+ bases.push(data[name]);
537
+ } else {
538
+ webshims.error('data-'+ name +' attribute has to be a valid JSON, was: '+ data[name]);
539
+ }
540
+ }
541
+
542
+ if(!regs[name]){
543
+ regs[name] = new RegExp('^'+ name +'([A-Z])');
544
+ }
545
+
546
+ for(dataName in data){
547
+ if(regs[name].test(dataName)){
548
+ cfg[dataName.replace(regs[name], regFn)] = data[dataName];
549
+ }
550
+ }
551
+ bases.push(cfg);
552
+
553
+ return elementData(elem, 'cfg'+name, $.extend.apply($, bases));
554
+ };
555
+ })(),
512
556
  //http://www.w3.org/TR/html5/common-dom-interfaces.html#reflect
513
557
  createPropDefault: createPropDefault,
514
558
  data: elementData,
@@ -596,7 +640,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
596
640
  setInterval(this.test, 600);
597
641
  $(this.test);
598
642
  webshims.ready('WINDOWLOAD', this.test);
599
- $(document).on('updatelayout', this.handler);
643
+ $(document).on('updatelayout pageinit collapsibleexpand shown.bs.modal shown.bs.collapse slid.bs.carousel', this.handler);
600
644
  $(window).on('resize', this.handler);
601
645
  (function(){
602
646
  var oldAnimate = $.fn.animate;
@@ -954,109 +998,67 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
954
998
  }
955
999
  },
956
1000
 
957
- // set current Lang:
958
- // - webshims.activeLang(lang:string);
959
- // get current lang
960
- // - webshims.activeLang();
961
- // get current lang
962
- // webshims.activeLang({
963
- // register: moduleName:string,
964
- // callback: callback:function
965
- // });
966
- // get/set including remoteLang
967
- // - webshims.activeLang({
968
- // module: moduleName:string,
969
- // callback: callback:function,
970
- // langObj: languageObj:array/object
971
- // });
972
1001
  activeLang: (function(){
973
- var callbacks = [];
974
- var registeredCallbacks = {};
975
- var currentLang;
976
- var shortLang;
977
- var notLocal = /:\/\/|^\.*\//;
978
- var loadRemoteLang = function(data, lang, options){
979
- var langSrc;
980
- if(lang && options && $.inArray(lang, options.availableLangs || options.availabeLangs || []) !== -1){
981
- data.loading = true;
982
- langSrc = options.langSrc;
983
- if(!notLocal.test(langSrc)){
984
- langSrc = webshims.cfg.basePath+langSrc;
985
- }
986
- webshims.loader.loadScript(langSrc+lang+'.js', function(){
987
- if(data.langObj[lang]){
988
- data.loading = false;
989
- callLang(data, true);
990
- } else {
991
- $(function(){
992
- if(data.langObj[lang]){
993
- callLang(data, true);
994
- }
995
- data.loading = false;
1002
+ var curLang = [];
1003
+ var langDatas = [];
1004
+ var loading = {};
1005
+ var load = function(src, obj, loadingLang){
1006
+ obj._isLoading = true;
1007
+ if(loading[src]){
1008
+ loading[src].push(obj);
1009
+ } else {
1010
+ loading[src] = [obj];
1011
+ webshims.loader.loadScript(src, function(){
1012
+ if(loadingLang == curLang.join()){
1013
+ $.each(loading[src], function(i, obj){
1014
+ select(obj);
996
1015
  });
997
1016
  }
1017
+ delete loading[src];
998
1018
  });
999
- return true;
1000
1019
  }
1001
- return false;
1002
1020
  };
1003
- var callRegister = function(module){
1004
- if(registeredCallbacks[module]){
1005
- registeredCallbacks[module].forEach(function(data){
1006
- data.callback(currentLang, shortLang, '');
1007
- });
1008
- }
1009
- };
1010
- var callLang = function(data, _noLoop){
1011
- if(data.activeLang != currentLang && data.activeLang !== shortLang){
1012
- var options = modules[data.module].options;
1013
- if( data.langObj[currentLang] || (shortLang && data.langObj[shortLang]) ){
1014
- data.activeLang = currentLang;
1015
- data.callback(data.langObj[currentLang] || data.langObj[shortLang], currentLang);
1016
- callRegister(data.module);
1017
- } else if( !_noLoop &&
1018
- !loadRemoteLang(data, currentLang, options) &&
1019
- !loadRemoteLang(data, shortLang, options) &&
1020
- data.langObj[''] && data.activeLang !== '' ) {
1021
- data.activeLang = '';
1022
- data.callback(data.langObj[''], currentLang);
1023
- callRegister(data.module);
1021
+ var select = function(obj){
1022
+ var oldLang = obj.__active;
1023
+ var selectLang = function(i, lang){
1024
+ obj._isLoading = false;
1025
+ if(obj[lang] || obj.availableLangs.indexOf(lang) != -1){
1026
+ if(obj[lang]){
1027
+ obj.__active = obj[lang];
1028
+ } else {
1029
+ load(obj.langSrc+lang, obj, curLang.join());
1030
+ }
1031
+ return false;
1024
1032
  }
1033
+ };
1034
+ $.each(curLang, selectLang);
1035
+ if(!obj.__active){
1036
+ obj.__active = obj[''];
1037
+ }
1038
+ if(oldLang != obj.__active){
1039
+ $(obj).trigger('change');
1025
1040
  }
1026
1041
  };
1027
-
1028
-
1029
- var activeLang = function(lang){
1030
-
1031
- if(typeof lang == 'string' && lang !== currentLang){
1032
- currentLang = lang;
1033
- shortLang = currentLang.split('-')[0];
1034
- if(currentLang == shortLang){
1035
- shortLang = false;
1042
+ return function(lang){
1043
+ var shortLang;
1044
+ if(typeof lang == 'string'){
1045
+ if(curLang[0] != lang){
1046
+ curLang = [lang];
1047
+ shortLang = curLang[0].split('-')[0];
1048
+ if(shortLang && shortLang != lang){
1049
+ curLang.push(shortLang);
1050
+ }
1051
+ langDatas.forEach(select);
1036
1052
  }
1037
- $.each(callbacks, function(i, data){
1038
- callLang(data);
1039
- });
1040
1053
  } else if(typeof lang == 'object'){
1041
-
1042
- if(lang.register){
1043
- if(!registeredCallbacks[lang.register]){
1044
- registeredCallbacks[lang.register] = [];
1045
- }
1046
- registeredCallbacks[lang.register].push(lang);
1047
- lang.callback(currentLang, shortLang, '');
1048
- } else {
1049
- if(!lang.activeLang){
1050
- lang.activeLang = '';
1051
- }
1052
- callbacks.push(lang);
1053
- callLang(lang);
1054
+ if(!lang.__active){
1055
+ langDatas.push(lang);
1056
+ select(lang);
1054
1057
  }
1058
+ return lang.__active;
1055
1059
  }
1056
- return currentLang;
1060
+ return curLang[0];
1057
1061
  };
1058
-
1059
- return activeLang;
1060
1062
  })()
1061
1063
  });
1062
1064
 
@@ -1200,39 +1202,65 @@ webshims.register('form-core', function($, webshims, window, document, undefined
1200
1202
  return ret;
1201
1203
  };
1202
1204
 
1203
- $.extend($.expr[":"], {
1204
- "valid-element": function(elem){
1205
- return rElementsGroup.test(elem.nodeName || '') ? !hasInvalid(elem) :!!($.prop(elem, 'willValidate') && isValid(elem));
1206
- },
1207
- "invalid-element": function(elem){
1208
- return rElementsGroup.test(elem.nodeName || '') ? hasInvalid(elem) : !!($.prop(elem, 'willValidate') && !isValid(elem));
1209
- },
1210
- "required-element": function(elem){
1211
- return !!($.prop(elem, 'willValidate') && $.prop(elem, 'required'));
1212
- },
1213
- "user-error": function(elem){
1214
- return ($.prop(elem, 'willValidate') && $(elem).hasClass('user-error'));
1215
- },
1216
- "optional-element": function(elem){
1217
- return !!($.prop(elem, 'willValidate') && $.prop(elem, 'required') === false);
1205
+ var extendSels = function(){
1206
+ var exp = $.expr[":"];
1207
+ $.extend(exp, {
1208
+ "valid-element": function(elem){
1209
+ return rElementsGroup.test(elem.nodeName || '') ? !hasInvalid(elem) :!!($.prop(elem, 'willValidate') && isValid(elem));
1210
+ },
1211
+ "invalid-element": function(elem){
1212
+ return rElementsGroup.test(elem.nodeName || '') ? hasInvalid(elem) : !!($.prop(elem, 'willValidate') && !isValid(elem));
1213
+ },
1214
+ "required-element": function(elem){
1215
+ return !!($.prop(elem, 'willValidate') && $.prop(elem, 'required'));
1216
+ },
1217
+ "user-error": function(elem){
1218
+ return ($.prop(elem, 'willValidate') && $(elem).hasClass('user-error'));
1219
+ },
1220
+ "optional-element": function(elem){
1221
+ return !!($.prop(elem, 'willValidate') && $.prop(elem, 'required') === false);
1222
+ }
1223
+ });
1224
+
1225
+ ['valid', 'invalid', 'required', 'optional'].forEach(function(name){
1226
+ exp[name] = $.expr[":"][name+"-element"];
1227
+ });
1228
+
1229
+ // sizzle/jQuery has a bug with :disabled/:enabled selectors
1230
+ if(Modernizr.fieldsetdisabled && !$('<fieldset disabled=""><input /><fieldset>').find('input').is(':disabled')){
1231
+ $.extend(exp, {
1232
+ "enabled": function( elem ) {
1233
+ return elem.disabled === false && !$(elem).is('fieldset[disabled] *');
1234
+ },
1235
+
1236
+ "disabled": function( elem ) {
1237
+ return elem.disabled === true || ('disabled' in elem && $(elem).is('fieldset[disabled] *'));
1238
+ }
1239
+ });
1218
1240
  }
1219
- });
1220
-
1221
- ['valid', 'invalid', 'required', 'optional'].forEach(function(name){
1222
- $.expr[":"][name] = $.expr.filters[name+"-element"];
1223
- });
1224
-
1225
- //bug was partially fixed in 1.10.0 for IE9, but not IE8 (move to es5 as soon as 1.10.2 is used)
1226
- var pseudoFocus = $.expr[":"].focus;
1227
- $.expr[":"].focus = function(){
1228
- try {
1229
- return pseudoFocus.apply(this, arguments);
1230
- } catch(e){
1231
- webshims.error(e);
1241
+
1242
+
1243
+ //bug was partially fixed in 1.10.0 for IE9, but not IE8 (move to es5 as soon as 1.10.2 is used)
1244
+ if(typeof document.activeElement == 'unknown'){
1245
+ var pseudoFocus = exp.focus;
1246
+ exp.focus = function(){
1247
+ try {
1248
+ return pseudoFocus.apply(this, arguments);
1249
+ } catch(e){
1250
+ webshims.error(e);
1251
+ }
1252
+ return false;
1253
+ };
1232
1254
  }
1233
- return false;
1234
1255
  };
1235
1256
 
1257
+ if($.expr.filters){
1258
+ extendSels();
1259
+ } else {
1260
+ webshims.ready('sizzle', extendSels);
1261
+ }
1262
+
1263
+
1236
1264
  webshims.triggerInlineForm = function(elem, event){
1237
1265
  $(elem).trigger(event);
1238
1266
  };
@@ -1300,7 +1328,10 @@ webshims.register('form-core', function($, webshims, window, document, undefined
1300
1328
 
1301
1329
 
1302
1330
  webshims.getContentValidationMessage = function(elem, validity, key){
1303
- var message = $(elem).data('errormessage') || elem.getAttribute('x-moz-errormessage') || '';
1331
+ if(webshims.errorbox && webshims.errorbox.initIvalContentMessage){
1332
+ webshims.errorbox.initIvalContentMessage(elem);
1333
+ }
1334
+ var message = (webshims.getOptions && webshims.errorbox ? webshims.getOptions(elem, 'errormessage') : $(elem).data('errormessage')) || elem.getAttribute('x-moz-errormessage') || '';
1304
1335
  if(key && message[key]){
1305
1336
  message = message[key];
1306
1337
  } else if(message) {
@@ -1346,7 +1377,7 @@ webshims.register('form-core', function($, webshims, window, document, undefined
1346
1377
 
1347
1378
 
1348
1379
  $(document).on('focusin.lazyloadvalidation', function(e){
1349
- if('form' in e.target && (e.target.list || $(e.target).is(':invalid'))){
1380
+ if('form' in e.target){
1350
1381
  lazyLoad();
1351
1382
  }
1352
1383
  });
@@ -1386,6 +1417,7 @@ webshims.register('form-message', function($, webshims, window, document, undefi
1386
1417
  },
1387
1418
  stepMismatch: 'Invalid input.',
1388
1419
  tooLong: 'Please enter at most {%maxlength} character(s). You entered {%valueLen}.',
1420
+ tooShort: 'Please enter at least {%minlength} character(s). You entered {%valueLen}.',
1389
1421
  patternMismatch: 'Invalid input. {%title}',
1390
1422
  valueMissing: {
1391
1423
  defaultMessage: 'Please fill out this field.',
@@ -1442,6 +1474,7 @@ webshims.register('form-message', function($, webshims, window, document, undefi
1442
1474
  },
1443
1475
  stepMismatch: 'Der Wert {%value} ist in diesem Feld nicht zulässig. Hier sind nur bestimmte Werte zulässig. {%title}',
1444
1476
  tooLong: 'Der eingegebene Text ist zu lang! Sie haben {%valueLen} Zeichen eingegeben, dabei sind {%maxlength} das Maximum.',
1477
+ tooShort: 'Der eingegebene Text ist zu kurz! Sie haben {%valueLen} Zeichen eingegeben, dabei sind {%minlength} das Minimum.',
1445
1478
  patternMismatch: '{%value} hat für dieses Eingabefeld ein falsches Format. {%title}',
1446
1479
  valueMissing: {
1447
1480
  defaultMessage: 'Bitte geben Sie einen Wert ein.',
@@ -1493,7 +1526,7 @@ webshims.register('form-message', function($, webshims, window, document, undefi
1493
1526
  webshims.info('could not find errormessage for: '+ name +' / '+ type +'. in language: '+webshims.activeLang());
1494
1527
  }
1495
1528
  if(message){
1496
- ['value', 'min', 'max', 'title', 'maxlength', 'label'].forEach(function(attr){
1529
+ ['value', 'min', 'max', 'title', 'maxlength', 'minlength', 'label'].forEach(function(attr){
1497
1530
  if(message.indexOf('{%'+attr) === -1){return;}
1498
1531
  var val = ((attr == 'label') ? $.trim($('label[for="'+ elem.id +'"]', elem.form).text()).replace(/\*$|:$/, '') : $.prop(elem, attr)) || '';
1499
1532
  if(name == 'patternMismatch' && attr == 'title' && !val){
@@ -1523,20 +1556,10 @@ webshims.register('form-message', function($, webshims, window, document, undefi
1523
1556
  implementProperties.push('validationMessage');
1524
1557
  }
1525
1558
 
1526
- webshims.activeLang({
1527
- langObj: validityMessages,
1528
- module: 'form-core',
1529
- callback: function(langObj){
1530
- currentValidationMessage = langObj;
1531
- }
1532
- });
1533
- webshims.activeLang({
1534
- register: 'form-core',
1535
- callback: function(val){
1536
- if(validityMessages[val]){
1537
- currentValidationMessage = validityMessages[val];
1538
- }
1539
- }
1559
+ currentValidationMessage = webshims.activeLang(validityMessages);
1560
+
1561
+ $(validityMessages).on('change', function(e, data){
1562
+ currentValidationMessage = validityMessages.__active;
1540
1563
  });
1541
1564
 
1542
1565
  implementProperties.forEach(function(messageProp){