Index: expert.kz.dev/sites/all/modules/hierarchical_select/hierarchical_select.js
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- expert.kz.dev/sites/all/modules/hierarchical_select/hierarchical_select.js	(revision a926f0ab971414f02dc6b59fc1cbbce9ac6acc50)
+++ expert.kz.dev/sites/all/modules/hierarchical_select/hierarchical_select.js	(revision )
@@ -15,10 +15,6 @@
 
 Drupal.HierarchicalSelect.state = [];
 
-Drupal.HierarchicalSelect.context = function() {
-  return $("form .hierarchical-select-wrapper");
-};
-
 Drupal.HierarchicalSelect.initialize = function(hsid) {
   // Prevent JS errors when Hierarchical Select is loaded dynamically.
   if (undefined == Drupal.settings.HierarchicalSelect || undefined == Drupal.settings.HierarchicalSelect.settings["hs-" + hsid]) {
@@ -91,9 +87,9 @@
 };
 
 Drupal.HierarchicalSelect.transform = function(hsid) {
-  var removeString = $('#hierarchical-select-'+ hsid +'-wrapper .dropbox .dropbox-remove:first', Drupal.HierarchicalSelect.context).text();
+  var removeString = $('#hierarchical-select-'+ hsid +'-wrapper .dropbox .dropbox-remove:first').text();
 
-  $('#hierarchical-select-'+ hsid +'-wrapper', Drupal.HierarchicalSelect.context)
+  $('#hierarchical-select-'+ hsid +'-wrapper')
   // Remove the .nojs div.
   .find('.nojs').hide().end()
   // Find all .dropbox-remove cells in the dropbox table.
@@ -106,7 +102,7 @@
 };
 
 Drupal.HierarchicalSelect.resizable = function(hsid) {
-  var $selectsWrapper = $('#hierarchical-select-' + hsid + '-wrapper .hierarchical-select .selects', Drupal.HierarchicalSelect.context);
+  var $selectsWrapper = $('#hierarchical-select-' + hsid + '-wrapper .hierarchical-select .selects');
 
   // No select wrapper present: the user is creating a new item.
   if ($selectsWrapper.length == 0) {
@@ -237,13 +233,13 @@
 Drupal.HierarchicalSelect.prepareGETSubmit = function(hsid) {
   // Remove the name attributes of all form elements that end up in GET,
   // except for the "flat select" form element.
-  $('#hierarchical-select-'+ hsid +'-wrapper', Drupal.HierarchicalSelect.context)
+  $('#hierarchical-select-'+ hsid +'-wrapper')
   .find('input, select')
   .not('.flat-select')
   .removeAttr('name');
 
   // Update the name attribute of the "flat select" form element
-  var $flatSelect = $('#hierarchical-select-'+ hsid +'-wrapper .flat-select', Drupal.HierarchicalSelect.context);
+  var $flatSelect = $('#hierarchical-select-'+ hsid +'-wrapper .flat-select');
   var newName = $flatSelect.attr('name').replace(/^([a-zA-Z0-9_\-]*)(?:\[flat_select\]){1}(\[\])?$/, "$1$2");
   $flatSelect.attr('name', newName);
 
@@ -252,9 +248,9 @@
 
 Drupal.HierarchicalSelect.attachBindings = function(hsid) {
   var updateOpString = $('#hierarchical-select-'+ hsid +'-wrapper .update-button').val();
-  var addOpString = $('#hierarchical-select-'+ hsid +'-wrapper .hierarchical-select input', Drupal.HierarchicalSelect.context).val();
-  var createNewItemOpString = $('#hierarchical-select-'+ hsid +'-wrapper .hierarchical-select .create-new-item-create', Drupal.HierarchicalSelect.context).val();
-  var cancelNewItemOpString = $('#hierarchical-select-'+ hsid +'-wrapper .hierarchical-select .create-new-item-cancel', Drupal.HierarchicalSelect.context).val();
+  var addOpString = $('#hierarchical-select-'+ hsid +'-wrapper .hierarchical-select input').val();
+  var createNewItemOpString = $('#hierarchical-select-'+ hsid +'-wrapper .hierarchical-select .create-new-item-create').val();
+  var cancelNewItemOpString = $('#hierarchical-select-'+ hsid +'-wrapper .hierarchical-select .create-new-item-cancel').val();
 
   var data = {};
   data.hsid = hsid;
@@ -312,7 +308,7 @@
   // (anchors in the .dropbox-remove cells in the .dropbox table)
   .find('.dropbox .dropbox-remove a').unbind().click(function(_hsid) {
     return function() {
-      var isDisabled = $('#hierarchical-select-'+ hsid +'-wrapper', Drupal.HierarchicalSelect.context).attr('disabled');
+      var isDisabled = $('#hierarchical-select-'+ hsid +'-wrapper').attr('disabled');
 
       // If the hierarchical select is disabled, then ignore this click.
       if (isDisabled) {
@@ -334,7 +330,7 @@
       // Drop out the selects of the levels deeper than the select of the
       // level that just changed.
       var animationDelay = Drupal.settings.HierarchicalSelect.settings["hs-" + hsid]['animationDelay'];
-      var $animatedSelects = $('#hierarchical-select-'+ hsid +'-wrapper .hierarchical-select .selects select', Drupal.HierarchicalSelect.context).slice(lastUnchanged);
+      var $animatedSelects = $('#hierarchical-select-'+ hsid +'-wrapper .hierarchical-select .selects select').slice(lastUnchanged);
       if ($animatedSelects.size() > 0) {
         $animatedSelects.hide();
         for (var i = 0; i < $animatedSelects.size(); i++) {
@@ -362,7 +358,7 @@
   if (Drupal.settings.HierarchicalSelect.settings["hs-" + hsid].resizable) {
     // Restore the resize.  
     Drupal.HierarchicalSelect.resize(
-      $('#hierarchical-select-' + hsid + '-wrapper .hierarchical-select .selects select', Drupal.HierarchicalSelect.context),
+      $('#hierarchical-select-' + hsid + '-wrapper .hierarchical-select .selects select'),
       Drupal.HierarchicalSelect.state["hs-" + hsid].defaultHeight,
       Drupal.HierarchicalSelect.state["hs-" + hsid].resizedHeight,
       Drupal.HierarchicalSelect.state["hs-" + hsid].defaultSize,
@@ -372,13 +368,13 @@
 
   switch (updateType) {
     case 'update-hierarchical-select':
-      var $createNewItemInput = $('#hierarchical-select-'+ hsid +'-wrapper .hierarchical-select .create-new-item-input', Drupal.HierarchicalSelect.context);
+      var $createNewItemInput = $('#hierarchical-select-'+ hsid +'-wrapper .hierarchical-select .create-new-item-input');
       
       if ($createNewItemInput.size() == 0) {
         // Give focus to the level below the one that has changed, if it
         // exists.
         if (!$.browser.mozilla) { // Don't give focus in Firefox: the user would have to click twice before he can make a selection.
-          $('#hierarchical-select-'+ hsid +'-wrapper .hierarchical-select .selects select', Drupal.HierarchicalSelect.context)
+          $('#hierarchical-select-'+ hsid +'-wrapper .hierarchical-select .selects select')
           .slice(lastUnchanged, lastUnchanged + 1)
           .focus();
         }
@@ -392,7 +388,7 @@
       // Hide the loaded selects after the one that was just changed, then
       // drop them in.
       var animationDelay = Drupal.settings.HierarchicalSelect.settings["hs-" + hsid]['animationDelay'];
-      var $animatedSelects = $('#hierarchical-select-'+ hsid +'-wrapper .hierarchical-select .selects select', Drupal.HierarchicalSelect.context).slice(lastUnchanged);
+      var $animatedSelects = $('#hierarchical-select-'+ hsid +'-wrapper .hierarchical-select .selects select').slice(lastUnchanged);
       if ($animatedSelects.size() > 0) {
         $animatedSelects.hide();
         for (var i = 0; i < $animatedSelects.size(); i++) {
@@ -425,7 +421,7 @@
     case 'cancel-new-item':
       // After an item/level has been created/cancelled, reset focus to the
       // beginning of the hierarchical select.
-      $('#hierarchical-select-'+ hsid +'-wrapper .hierarchical-select .selects select', Drupal.HierarchicalSelect.context)
+      $('#hierarchical-select-'+ hsid +'-wrapper .hierarchical-select .selects select')
       .slice(0, 1)
       .focus();
 
@@ -443,12 +439,12 @@
 };
 
 Drupal.HierarchicalSelect.triggerEvents = function(hsid, updateType, settings) {
-  $('#hierarchical-select-'+ hsid +'-wrapper', Drupal.HierarchicalSelect.context)
+  $('#hierarchical-select-'+ hsid +'-wrapper')
   .trigger(updateType, [ hsid, settings ]);
 };
 
 Drupal.HierarchicalSelect.update = function(hsid, updateType, settings) {
-  var post = $('form:has(#hierarchical-select-' + hsid +'-wrapper)', Drupal.HierarchicalSelect.context).formToArray();
+  var post = $('form:has(#hierarchical-select-' + hsid +'-wrapper)').formToArray();
 
   // Pass the hierarchical_select id via POST.
   post.push({ name : 'hsid', value : hsid });
@@ -498,7 +494,7 @@
       {
         Drupal.HierarchicalSelect.preUpdateAnimations(hsid, updateType, lastUnchanged, function() {
           // Remove the sublevels.
-          $('#hierarchical-select-'+ hsid +'-wrapper .hierarchical-select .selects select', Drupal.HierarchicalSelect.context)
+          $('#hierarchical-select-'+ hsid +'-wrapper .hierarchical-select .selects select')
           .slice(lastUnchanged)
           .remove();
 
@@ -564,8 +560,11 @@
       
       // Attach behaviors. This is just after the HTML has been updated, so
       // it's as soon as we can.
-      Drupal.attachBehaviors(Drupal.HierarchicalSelect.context);
+      $("form .hierarchical-select-wrapper").each(function() {
+        Drupal.attachBehaviors($(this).parent());
+      });
 
+
       // Transform the hierarchical select and/or dropbox to the JS variant,
       // make it resizable again and re-enable the disabled form items.
       Drupal.HierarchicalSelect.enableForm(hsid);
@@ -617,7 +616,7 @@
 
 Drupal.ajax.prototype.commands.hierarchicalSelectUpdate = function(ajax, response, status, hsid) {
   // Replace the old HTML with the (relevant part of) retrieved HTML.
-  $('#hierarchical-select-'+ hsid +'-wrapper', Drupal.HierarchicalSelect.context)
+  $('#hierarchical-select-'+ hsid +'-wrapper')
   .parent('.form-item')
   .replaceWith($(response.output));
 };
