iqvoc 3.5.6 → 3.5.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. data/CHANGELOG.md +9 -0
  2. data/Gemfile +3 -2
  3. data/Gemfile.lock +71 -65
  4. data/README.md +5 -4
  5. data/app/assets/javascripts/framework.js +1 -1
  6. data/app/assets/javascripts/iqvoc/entityselect.js.erb +20 -19
  7. data/app/assets/javascripts/iqvoc/entityselect_qualified.js.erb +45 -0
  8. data/app/assets/javascripts/iqvoc/iqvoc.js +2 -2
  9. data/app/assets/javascripts/iqvoc/manifest.js +1 -0
  10. data/app/assets/stylesheets/framework.css +1 -1
  11. data/app/assets/stylesheets/iqvoc/iqvoc.css.erb +28 -22
  12. data/app/controllers/collections/hierarchical_controller.rb +2 -2
  13. data/app/controllers/collections_controller.rb +0 -1
  14. data/app/controllers/concepts/alphabetical_controller.rb +0 -1
  15. data/app/controllers/concepts/hierarchical_controller.rb +0 -1
  16. data/app/controllers/concepts/untranslated_controller.rb +0 -1
  17. data/app/controllers/concepts_controller.rb +0 -1
  18. data/app/controllers/instance_configuration_controller.rb +2 -2
  19. data/app/controllers/pages_controller.rb +0 -1
  20. data/app/controllers/rdf_controller.rb +0 -2
  21. data/app/controllers/search_results_controller.rb +0 -1
  22. data/app/controllers/user_sessions_controller.rb +5 -4
  23. data/app/helpers/application_helper.rb +8 -4
  24. data/app/helpers/widget_helper.rb +39 -0
  25. data/app/models/collection/base.rb +4 -0
  26. data/app/models/concept/base.rb +59 -10
  27. data/app/models/concept/relation/base.rb +20 -0
  28. data/app/models/concept/relation/reverse_relation_extension.rb +4 -3
  29. data/app/models/concept/skos/base.rb +1 -1
  30. data/app/views/collections/_collection.html.erb +5 -0
  31. data/app/views/concepts/_visualization.html.erb +1 -1
  32. data/app/views/errors/access_denied.html.erb +6 -2
  33. data/app/views/layouts/_controls.html.erb +1 -1
  34. data/app/views/layouts/application.html.erb +2 -3
  35. data/app/views/pages/about.html.erb +2 -0
  36. data/app/views/partials/concept/relation/_base.html.erb +1 -1
  37. data/app/views/partials/concept/relation/_edit_base.html.erb +2 -5
  38. data/app/views/partials/concept/relation/_edit_ranked.html.erb +13 -0
  39. data/app/views/partials/concept/relation/_ranked.html.erb +12 -0
  40. data/app/views/partials/concept/relation/skos/broader/_mono.html.erb +1 -1
  41. data/app/views/partials/note/_base.html.erb +1 -1
  42. data/app/views/user_sessions/_form.html.erb +10 -0
  43. data/app/views/user_sessions/new.html.erb +1 -9
  44. data/config/application.rb +4 -1
  45. data/config/database.yml +8 -0
  46. data/config/initializers/heroku.rb +24 -0
  47. data/config/initializers/iqvoc.rb +2 -2
  48. data/config/locales/activerecord.en.yml +1 -1
  49. data/config/locales/de.yml +1 -3
  50. data/config/locales/en.yml +1 -3
  51. data/db/migrate/20101208103531_add_type_to_collection_contents.rb +0 -2
  52. data/db/migrate/20120326102037_add_rank_to_concept_relations.rb +5 -0
  53. data/db/schema.rb +12 -1
  54. data/lib/iqvoc/ability.rb +3 -1
  55. data/lib/iqvoc/controller_extensions.rb +12 -29
  56. data/lib/iqvoc/environments/production.rb +2 -0
  57. data/lib/iqvoc/environments/test.rb +0 -3
  58. data/lib/iqvoc/{data_helper.rb → inline_data_helper.rb} +1 -3
  59. data/lib/iqvoc/maker.rb +2 -1
  60. data/lib/iqvoc/origin.rb +23 -24
  61. data/lib/iqvoc/rankable.rb +34 -0
  62. data/lib/iqvoc/version.rb +1 -1
  63. data/test/factories.rb +1 -1
  64. data/test/integration/alphabetical_test.rb +2 -1
  65. data/test/integration/authentication_test.rb +1 -1
  66. data/test/integration/browse_concepts_and_labels_test.rb +2 -1
  67. data/test/integration/concept_scheme_test.rb +1 -1
  68. data/test/integration/edit_concepts_test.rb +1 -1
  69. data/test/integration/instance_configuration_test.rb +1 -1
  70. data/test/integration/search_test.rb +6 -5
  71. data/test/integration/tree_test.rb +1 -1
  72. data/test/integration/untranslated_test.rb +2 -1
  73. data/test/integration_test_helper.rb +0 -29
  74. data/test/unit/concept_test.rb +17 -6
  75. data/test/unit/hygiene_test.rb +15 -5
  76. data/test/unit/origin_test.rb +7 -4
  77. data/vendor/assets/javascripts/{jquery-ui-1.8.16.custom.js → jquery-ui-1.8.20.custom.js} +146 -71
  78. data/vendor/assets/stylesheets/{jquery-ui-1.8.16.custom.css → jquery-ui-1.8.20.custom.css} +16 -19
  79. metadata +32 -27
  80. data/app/views/errors/multiple_choices.html.erb +0 -11
  81. data/lib/iqvoc/rdf_helper.rb +0 -67
  82. data/lib/ojdbc14.jar +0 -0
@@ -1,7 +1,7 @@
1
1
  /*!
2
- * jQuery UI 1.8.16
2
+ * jQuery UI 1.8.20
3
3
  *
4
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
4
+ * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
5
5
  * Dual licensed under the MIT or GPL Version 2 licenses.
6
6
  * http://jquery.org/license
7
7
  *
@@ -18,7 +18,7 @@ if ( $.ui.version ) {
18
18
  }
19
19
 
20
20
  $.extend( $.ui, {
21
- version: "1.8.16",
21
+ version: "1.8.20",
22
22
 
23
23
  keyCode: {
24
24
  ALT: 18,
@@ -225,6 +225,11 @@ $(function() {
225
225
  var body = document.body,
226
226
  div = body.appendChild( div = document.createElement( "div" ) );
227
227
 
228
+ // access offsetHeight before setting the style to prevent a layout bug
229
+ // in IE 9 which causes the elemnt to continue to take up space even
230
+ // after it is removed from the DOM (#8026)
231
+ div.offsetHeight;
232
+
228
233
  $.extend( div.style, {
229
234
  minHeight: "100px",
230
235
  height: "auto",
@@ -313,9 +318,9 @@ $.extend( $.ui, {
313
318
 
314
319
  })( jQuery );
315
320
  /*!
316
- * jQuery UI Widget 1.8.16
321
+ * jQuery UI Widget 1.8.20
317
322
  *
318
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
323
+ * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
319
324
  * Dual licensed under the MIT or GPL Version 2 licenses.
320
325
  * http://jquery.org/license
321
326
  *
@@ -553,21 +558,25 @@ $.Widget.prototype = {
553
558
  },
554
559
 
555
560
  _trigger: function( type, event, data ) {
556
- var callback = this.options[ type ];
561
+ var prop, orig,
562
+ callback = this.options[ type ];
557
563
 
564
+ data = data || {};
558
565
  event = $.Event( event );
559
566
  event.type = ( type === this.widgetEventPrefix ?
560
567
  type :
561
568
  this.widgetEventPrefix + type ).toLowerCase();
562
- data = data || {};
569
+ // the original event may come from any element
570
+ // so we need to reset the target on the new event
571
+ event.target = this.element[ 0 ];
563
572
 
564
573
  // copy original event properties over to the new event
565
- // this would happen if we could call $.event.fix instead of $.Event
566
- // but we don't have a way to force an event to be fixed multiple times
567
- if ( event.originalEvent ) {
568
- for ( var i = $.event.props.length, prop; i; ) {
569
- prop = $.event.props[ --i ];
570
- event[ prop ] = event.originalEvent[ prop ];
574
+ orig = event.originalEvent;
575
+ if ( orig ) {
576
+ for ( prop in orig ) {
577
+ if ( !( prop in event ) ) {
578
+ event[ prop ] = orig[ prop ];
579
+ }
571
580
  }
572
581
  }
573
582
 
@@ -580,10 +589,10 @@ $.Widget.prototype = {
580
589
  };
581
590
 
582
591
  })( jQuery );
583
- /*
584
- * jQuery UI Position 1.8.16
592
+ /*!
593
+ * jQuery UI Position 1.8.20
585
594
  *
586
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
595
+ * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
587
596
  * Dual licensed under the MIT or GPL Version 2 licenses.
588
597
  * http://jquery.org/license
589
598
  *
@@ -596,6 +605,7 @@ $.ui = $.ui || {};
596
605
  var horizontalPositions = /left|center|right/,
597
606
  verticalPositions = /top|center|bottom/,
598
607
  center = "center",
608
+ support = {},
599
609
  _position = $.fn.position,
600
610
  _offset = $.fn.offset;
601
611
 
@@ -703,9 +713,11 @@ $.fn.position = function( options ) {
703
713
  position.top -= elemHeight / 2;
704
714
  }
705
715
 
706
- // prevent fractions (see #5280)
707
- position.left = Math.round( position.left );
708
- position.top = Math.round( position.top );
716
+ // prevent fractions if jQuery version doesn't support them (see #5280)
717
+ if ( !support.fractions ) {
718
+ position.left = Math.round( position.left );
719
+ position.top = Math.round( position.top );
720
+ }
709
721
 
710
722
  collisionPosition = {
711
723
  left: position.left - marginLeft,
@@ -831,11 +843,54 @@ if ( !$.offset.setOffset ) {
831
843
  };
832
844
  }
833
845
 
846
+ // fraction support test (older versions of jQuery don't support fractions)
847
+ (function () {
848
+ var body = document.getElementsByTagName( "body" )[ 0 ],
849
+ div = document.createElement( "div" ),
850
+ testElement, testElementParent, testElementStyle, offset, offsetTotal;
851
+
852
+ //Create a "fake body" for testing based on method used in jQuery.support
853
+ testElement = document.createElement( body ? "div" : "body" );
854
+ testElementStyle = {
855
+ visibility: "hidden",
856
+ width: 0,
857
+ height: 0,
858
+ border: 0,
859
+ margin: 0,
860
+ background: "none"
861
+ };
862
+ if ( body ) {
863
+ $.extend( testElementStyle, {
864
+ position: "absolute",
865
+ left: "-1000px",
866
+ top: "-1000px"
867
+ });
868
+ }
869
+ for ( var i in testElementStyle ) {
870
+ testElement.style[ i ] = testElementStyle[ i ];
871
+ }
872
+ testElement.appendChild( div );
873
+ testElementParent = body || document.documentElement;
874
+ testElementParent.insertBefore( testElement, testElementParent.firstChild );
875
+
876
+ div.style.cssText = "position: absolute; left: 10.7432222px; top: 10.432325px; height: 30px; width: 201px;";
877
+
878
+ offset = $( div ).offset( function( _, offset ) {
879
+ return offset;
880
+ }).offset();
881
+
882
+ testElement.innerHTML = "";
883
+ testElementParent.removeChild( testElement );
884
+
885
+ offsetTotal = offset.top + offset.left + ( body ? 2000 : 0 );
886
+ support.fractions = offsetTotal > 21 && offsetTotal < 22;
887
+ })();
888
+
834
889
  }( jQuery ));
835
- /*
836
- * jQuery UI Autocomplete 1.8.16
890
+ /*!
891
+ * jQuery UI Autocomplete 1.8.20
837
892
  *
838
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
893
+ * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
839
894
  * Dual licensed under the MIT or GPL Version 2 licenses.
840
895
  * http://jquery.org/license
841
896
  *
@@ -871,6 +926,7 @@ $.widget( "ui.autocomplete", {
871
926
  var self = this,
872
927
  doc = this.element[ 0 ].ownerDocument,
873
928
  suppressKeyPress;
929
+ this.isMultiLine = this.element.is( "textarea" );
874
930
 
875
931
  this.element
876
932
  .addClass( "ui-autocomplete-input" )
@@ -896,14 +952,10 @@ $.widget( "ui.autocomplete", {
896
952
  self._move( "nextPage", event );
897
953
  break;
898
954
  case keyCode.UP:
899
- self._move( "previous", event );
900
- // prevent moving cursor to beginning of text field in some browsers
901
- event.preventDefault();
955
+ self._keyEvent( "previous", event );
902
956
  break;
903
957
  case keyCode.DOWN:
904
- self._move( "next", event );
905
- // prevent moving cursor to end of text field in some browsers
906
- event.preventDefault();
958
+ self._keyEvent( "next", event );
907
959
  break;
908
960
  case keyCode.ENTER:
909
961
  case keyCode.NUMPAD_ENTER:
@@ -965,9 +1017,6 @@ $.widget( "ui.autocomplete", {
965
1017
  }, 150 );
966
1018
  });
967
1019
  this._initSource();
968
- this.response = function() {
969
- return self._response.apply( self, arguments );
970
- };
971
1020
  this.menu = $( "<ul></ul>" )
972
1021
  .addClass( "ui-autocomplete" )
973
1022
  .appendTo( $( this.options.appendTo || "body", doc )[0] )
@@ -1049,6 +1098,13 @@ $.widget( "ui.autocomplete", {
1049
1098
  if ( $.fn.bgiframe ) {
1050
1099
  this.menu.element.bgiframe();
1051
1100
  }
1101
+ // turning off autocomplete prevents the browser from remembering the
1102
+ // value when navigating through history, so we re-enable autocomplete
1103
+ // if the page is unloaded before the widget is destroyed. #7790
1104
+ self.beforeunloadHandler = function() {
1105
+ self.element.removeAttr( "autocomplete" );
1106
+ };
1107
+ $( window ).bind( "beforeunload", self.beforeunloadHandler );
1052
1108
  },
1053
1109
 
1054
1110
  destroy: function() {
@@ -1059,6 +1115,7 @@ $.widget( "ui.autocomplete", {
1059
1115
  .removeAttr( "aria-autocomplete" )
1060
1116
  .removeAttr( "aria-haspopup" );
1061
1117
  this.menu.element.remove();
1118
+ $( window ).unbind( "beforeunload", this.beforeunloadHandler );
1062
1119
  $.Widget.prototype.destroy.call( this );
1063
1120
  },
1064
1121
 
@@ -1094,16 +1151,11 @@ $.widget( "ui.autocomplete", {
1094
1151
  url: url,
1095
1152
  data: request,
1096
1153
  dataType: "json",
1097
- autocompleteRequest: ++requestIndex,
1098
1154
  success: function( data, status ) {
1099
- if ( this.autocompleteRequest === requestIndex ) {
1100
- response( data );
1101
- }
1155
+ response( data );
1102
1156
  },
1103
1157
  error: function() {
1104
- if ( this.autocompleteRequest === requestIndex ) {
1105
- response( [] );
1106
- }
1158
+ response( [] );
1107
1159
  }
1108
1160
  });
1109
1161
  };
@@ -1134,10 +1186,26 @@ $.widget( "ui.autocomplete", {
1134
1186
  this.pending++;
1135
1187
  this.element.addClass( "ui-autocomplete-loading" );
1136
1188
 
1137
- this.source( { term: value }, this.response );
1189
+ this.source( { term: value }, this._response() );
1190
+ },
1191
+
1192
+ _response: function() {
1193
+ var that = this,
1194
+ index = ++requestIndex;
1195
+
1196
+ return function( content ) {
1197
+ if ( index === requestIndex ) {
1198
+ that.__response( content );
1199
+ }
1200
+
1201
+ that.pending--;
1202
+ if ( !that.pending ) {
1203
+ that.element.removeClass( "ui-autocomplete-loading" );
1204
+ }
1205
+ };
1138
1206
  },
1139
1207
 
1140
- _response: function( content ) {
1208
+ __response: function( content ) {
1141
1209
  if ( !this.options.disabled && content && content.length ) {
1142
1210
  content = this._normalize( content );
1143
1211
  this._suggest( content );
@@ -1145,10 +1213,6 @@ $.widget( "ui.autocomplete", {
1145
1213
  } else {
1146
1214
  this.close();
1147
1215
  }
1148
- this.pending--;
1149
- if ( !this.pending ) {
1150
- this.element.removeClass( "ui-autocomplete-loading" );
1151
- }
1152
1216
  },
1153
1217
 
1154
1218
  close: function( event ) {
@@ -1209,7 +1273,9 @@ $.widget( "ui.autocomplete", {
1209
1273
  _resizeMenu: function() {
1210
1274
  var ul = this.menu.element;
1211
1275
  ul.outerWidth( Math.max(
1212
- ul.width( "" ).outerWidth(),
1276
+ // Firefox wraps long text (possibly a rounding bug)
1277
+ // so we add 1px to avoid the wrapping (#7513)
1278
+ ul.width( "" ).outerWidth() + 1,
1213
1279
  this.element.outerWidth()
1214
1280
  ) );
1215
1281
  },
@@ -1244,6 +1310,14 @@ $.widget( "ui.autocomplete", {
1244
1310
 
1245
1311
  widget: function() {
1246
1312
  return this.menu.element;
1313
+ },
1314
+ _keyEvent: function( keyEvent, event ) {
1315
+ if ( !this.isMultiLine || this.menu.element.is( ":visible" ) ) {
1316
+ this._move( keyEvent, event );
1317
+
1318
+ // prevents moving cursor to beginning/end of the text field in some browsers
1319
+ event.preventDefault();
1320
+ }
1247
1321
  }
1248
1322
  });
1249
1323
 
@@ -1416,7 +1490,7 @@ $.widget("ui.menu", {
1416
1490
  }
1417
1491
 
1418
1492
  var base = this.active.offset().top,
1419
- height = this.element.height();
1493
+ height = this.element.height(),
1420
1494
  result = this.element.children(".ui-menu-item").filter(function() {
1421
1495
  var close = $(this).offset().top - base + height - $(this).height();
1422
1496
  // TODO improve approximation
@@ -1444,10 +1518,10 @@ $.widget("ui.menu", {
1444
1518
  });
1445
1519
 
1446
1520
  }(jQuery));
1447
- /*
1448
- * jQuery UI Datepicker 1.8.16
1521
+ /*!
1522
+ * jQuery UI Datepicker 1.8.20
1449
1523
  *
1450
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
1524
+ * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
1451
1525
  * Dual licensed under the MIT or GPL Version 2 licenses.
1452
1526
  * http://jquery.org/license
1453
1527
  *
@@ -1458,7 +1532,7 @@ $.widget("ui.menu", {
1458
1532
  */
1459
1533
  (function( $, undefined ) {
1460
1534
 
1461
- $.extend($.ui, { datepicker: { version: "1.8.16" } });
1535
+ $.extend($.ui, { datepicker: { version: "1.8.20" } });
1462
1536
 
1463
1537
  var PROP_NAME = 'datepicker';
1464
1538
  var dpuuid = new Date().getTime();
@@ -1679,7 +1753,10 @@ $.extend(Datepicker.prototype, {
1679
1753
  inst.trigger.click(function() {
1680
1754
  if ($.datepicker._datepickerShowing && $.datepicker._lastInput == input[0])
1681
1755
  $.datepicker._hideDatepicker();
1682
- else
1756
+ else if ($.datepicker._datepickerShowing && $.datepicker._lastInput != input[0]) {
1757
+ $.datepicker._hideDatepicker();
1758
+ $.datepicker._showDatepicker(input[0]);
1759
+ } else
1683
1760
  $.datepicker._showDatepicker(input[0]);
1684
1761
  return false;
1685
1762
  });
@@ -2063,8 +2140,8 @@ $.extend(Datepicker.prototype, {
2063
2140
  $.datepicker._updateDatepicker(inst);
2064
2141
  }
2065
2142
  }
2066
- catch (event) {
2067
- $.datepicker.log(event);
2143
+ catch (err) {
2144
+ $.datepicker.log(err);
2068
2145
  }
2069
2146
  }
2070
2147
  return true;
@@ -2082,10 +2159,10 @@ $.extend(Datepicker.prototype, {
2082
2159
  return;
2083
2160
  var inst = $.datepicker._getInst(input);
2084
2161
  if ($.datepicker._curInst && $.datepicker._curInst != inst) {
2085
- if ( $.datepicker._datepickerShowing ) {
2086
- $.datepicker._triggerOnClose($.datepicker._curInst);
2087
- }
2088
2162
  $.datepicker._curInst.dpDiv.stop(true, true);
2163
+ if ( inst && $.datepicker._datepickerShowing ) {
2164
+ $.datepicker._hideDatepicker( $.datepicker._curInst.input[0] );
2165
+ }
2089
2166
  }
2090
2167
  var beforeShow = $.datepicker._get(inst, 'beforeShow');
2091
2168
  var beforeShowSettings = beforeShow ? beforeShow.apply(input, [input, inst]) : {};
@@ -2234,14 +2311,6 @@ $.extend(Datepicker.prototype, {
2234
2311
  return [position.left, position.top];
2235
2312
  },
2236
2313
 
2237
- /* Trigger custom callback of onClose. */
2238
- _triggerOnClose: function(inst) {
2239
- var onClose = this._get(inst, 'onClose');
2240
- if (onClose)
2241
- onClose.apply((inst.input ? inst.input[0] : null),
2242
- [(inst.input ? inst.input.val() : ''), inst]);
2243
- },
2244
-
2245
2314
  /* Hide the date picker from view.
2246
2315
  @param input element - the input field attached to the date picker */
2247
2316
  _hideDatepicker: function(input) {
@@ -2253,7 +2322,6 @@ $.extend(Datepicker.prototype, {
2253
2322
  var duration = this._get(inst, 'duration');
2254
2323
  var postProcess = function() {
2255
2324
  $.datepicker._tidyDialog(inst);
2256
- this._curInst = null;
2257
2325
  };
2258
2326
  if ($.effects && $.effects[showAnim])
2259
2327
  inst.dpDiv.hide(showAnim, $.datepicker._get(inst, 'showOptions'), duration, postProcess);
@@ -2262,8 +2330,11 @@ $.extend(Datepicker.prototype, {
2262
2330
  (showAnim == 'fadeIn' ? 'fadeOut' : 'hide'))]((showAnim ? duration : null), postProcess);
2263
2331
  if (!showAnim)
2264
2332
  postProcess();
2265
- $.datepicker._triggerOnClose(inst);
2266
2333
  this._datepickerShowing = false;
2334
+ var onClose = this._get(inst, 'onClose');
2335
+ if (onClose)
2336
+ onClose.apply((inst.input ? inst.input[0] : null),
2337
+ [(inst.input ? inst.input.val() : ''), inst]);
2267
2338
  this._lastInput = null;
2268
2339
  if (this._inDialog) {
2269
2340
  this._dialogInput.css({ position: 'absolute', left: '0', top: '-100px' });
@@ -2285,12 +2356,16 @@ $.extend(Datepicker.prototype, {
2285
2356
  _checkExternalClick: function(event) {
2286
2357
  if (!$.datepicker._curInst)
2287
2358
  return;
2288
- var $target = $(event.target);
2289
- if ($target[0].id != $.datepicker._mainDivId &&
2359
+
2360
+ var $target = $(event.target),
2361
+ inst = $.datepicker._getInst($target[0]);
2362
+
2363
+ if ( ( ( $target[0].id != $.datepicker._mainDivId &&
2290
2364
  $target.parents('#' + $.datepicker._mainDivId).length == 0 &&
2291
2365
  !$target.hasClass($.datepicker.markerClassName) &&
2292
- !$target.hasClass($.datepicker._triggerClass) &&
2293
- $.datepicker._datepickerShowing && !($.datepicker._inDialog && $.blockUI))
2366
+ !$target.closest("." + $.datepicker._triggerClass).length &&
2367
+ $.datepicker._datepickerShowing && !($.datepicker._inDialog && $.blockUI) ) ) ||
2368
+ ( $target.hasClass($.datepicker.markerClassName) && $.datepicker._curInst != inst ) )
2294
2369
  $.datepicker._hideDatepicker();
2295
2370
  },
2296
2371
 
@@ -3260,7 +3335,7 @@ $.fn.datepicker = function(options){
3260
3335
  $.datepicker = new Datepicker(); // singleton instance
3261
3336
  $.datepicker.initialized = false;
3262
3337
  $.datepicker.uuid = new Date().getTime();
3263
- $.datepicker.version = "1.8.16";
3338
+ $.datepicker.version = "1.8.20";
3264
3339
 
3265
3340
  // Workaround for #4055
3266
3341
  // Add another global to avoid noConflict issues with inline event handlers
@@ -1,7 +1,7 @@
1
- /*
2
- * jQuery UI CSS Framework 1.8.16
1
+ /*!
2
+ * jQuery UI CSS Framework 1.8.20
3
3
  *
4
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
4
+ * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
5
5
  * Dual licensed under the MIT or GPL Version 2 licenses.
6
6
  * http://jquery.org/license
7
7
  *
@@ -13,12 +13,9 @@
13
13
  .ui-helper-hidden { display: none; }
14
14
  .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
15
15
  .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
16
- .ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
17
- .ui-helper-clearfix { display: inline-block; }
18
- /* required comment for clearfix to work in Opera \*/
19
- * html .ui-helper-clearfix { height:1%; }
20
- .ui-helper-clearfix { display:block; }
21
- /* end clearfix */
16
+ .ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; }
17
+ .ui-helper-clearfix:after { clear: both; }
18
+ .ui-helper-clearfix { zoom: 1; }
22
19
  .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
23
20
 
24
21
 
@@ -41,10 +38,10 @@
41
38
  .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
42
39
 
43
40
 
44
- /*
45
- * jQuery UI CSS Framework 1.8.16
41
+ /*!
42
+ * jQuery UI CSS Framework 1.8.20
46
43
  *
47
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
44
+ * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
48
45
  * Dual licensed under the MIT or GPL Version 2 licenses.
49
46
  * http://jquery.org/license
50
47
  *
@@ -287,10 +284,10 @@
287
284
 
288
285
  /* Overlays */
289
286
  .ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
290
- .ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*
291
- * jQuery UI Autocomplete 1.8.16
287
+ .ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*!
288
+ * jQuery UI Autocomplete 1.8.20
292
289
  *
293
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
290
+ * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
294
291
  * Dual licensed under the MIT or GPL Version 2 licenses.
295
292
  * http://jquery.org/license
296
293
  *
@@ -302,7 +299,7 @@
302
299
  * html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
303
300
 
304
301
  /*
305
- * jQuery UI Menu 1.8.16
302
+ * jQuery UI Menu 1.8.20
306
303
  *
307
304
  * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
308
305
  * Dual licensed under the MIT or GPL Version 2 licenses.
@@ -340,10 +337,10 @@
340
337
  font-weight: normal;
341
338
  margin: -1px;
342
339
  }
343
- /*
344
- * jQuery UI Datepicker 1.8.16
340
+ /*!
341
+ * jQuery UI Datepicker 1.8.20
345
342
  *
346
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
343
+ * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
347
344
  * Dual licensed under the MIT or GPL Version 2 licenses.
348
345
  * http://jquery.org/license
349
346
  *