| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 | 
							- (function($) {
 
- /**
 
-  * Attaches the tree behavior to the term widget form.
 
-  */
 
- Drupal.behaviors.termReferenceTree = {
 
-   attach: function(context, settings) {
 
-     // Bind the term expand/contract button to slide toggle the list underneath.
 
-     $('.term-reference-tree-button', context).once('term-reference-tree-button').click(function() {
 
-       $(this).toggleClass('term-reference-tree-collapsed');
 
-       $(this).siblings('ul').slideToggle('fast');
 
-     });
 
-     // An expand all button (unimplemented)
 
-     /*
 
-     $('.expandbutton').click(function() {
 
-       $(this).siblings('.term-reference-tree-button').trigger('click');
 
-     });
 
-     */
 
-     $('.term-reference-tree', context).once('term-reference-tree').each(function() {
 
-       // On page load, check whether the maximum number of choices is already selected.
 
-       // If so, disable the other options.
 
-       var tree = $(this);
 
-       checkMaxChoices(tree, false);
 
-       $(this).find('input[type=checkbox]').change(function() {
 
-         checkMaxChoices(tree, $(this));
 
-       });
 
-       //On page load, check if the user wants a cascading selection.
 
-       if($(this).hasClass('term-reference-tree-select-parents')) {
 
-         $(this).find('.form-checkbox').parent().addClass('select-parents');
 
-       }
 
-       //On page load, check if the user wants a cascading selection.
 
-       if($(this).hasClass('term-reference-tree-cascading-selection')) {
 
-         var mode_select = $(this).hasClass('term-reference-tree-cascading-selection-mode-select');
 
-         var mode_deselect = $(this).hasClass('term-reference-tree-cascading-selection-mode-deselect');
 
-         //Check children when checkboxes are clicked.
 
-         $(this).find('.form-checkbox').change(function(event) {
 
-           var event_target = $(event.target);
 
-           var event_target_checked = event_target.is(':checked');
 
-           var control_id = event_target.attr('id');
 
-           var children = event_target.parent().next().children().find('> :not(ul) > input[id^="' + control_id + '-children"]');
 
-           if (!mode_select && !mode_deselect) {
 
-             if(event_target_checked) {
 
-               $(children).filter(':not(:checked)').click().trigger('change');
 
-             }
 
-             else {
 
-               $(children).filter(':checked').click().trigger('change');
 
-             }
 
-           } else if (mode_select && event_target_checked) {
 
-             $(children).filter(':not(:checked)').click().trigger('change');
 
-           } else if (mode_deselect && !event_target_checked) {
 
-             $(children).filter(':checked').click().trigger('change');
 
-           }
 
-         });
 
-         //End process checkbox changes.
 
-       } //End Want a cascading checking.
 
-     });
 
-     // track_list
 
-     // just unselect items in tree on track_list button remove click
 
-     // let builtin ajax form do the heavy work
 
-     $('.term-reference-tree-track-list input[type="submit"][value="remove"]', context).click(function(e){
 
-       e.preventDefault();
 
-       var key = $(this).attr('term-reference-tree-key');
 
-       $('input[type="checkbox"][value="'+key+'"]', $(this).parents('.term-reference-tree'))
 
-         .prop('checked', false)
 
-         .trigger('change');
 
-       return false;
 
-     });
 
-   }
 
- };
 
- // This helper function checks if the maximum number of choices is already selected.
 
- // If so, it disables all the other options.  If not, it enables them.
 
- function checkMaxChoices(item, checkbox) {
 
-   var maxChoices = -1;
 
-   try {
 
-     maxChoices = parseInt(Drupal.settings.term_reference_tree.trees[item.attr('id')]['max_choices']);
 
-   }
 
-   catch (e){}
 
-   var count = item.find(':checked').length;
 
-   if(maxChoices > 0 && count >= maxChoices) {
 
-     item.find('input[type=checkbox]:not(:checked)').attr('disabled', 'disabled').parent().addClass('disabled');
 
-   } else {
 
-     item.find('input[type=checkbox]').removeAttr('disabled').parent().removeClass('disabled');
 
-   }
 
-   if(checkbox) {
 
-     if(item.hasClass('term-reference-tree-select-parents')) {
 
-       if(checkbox.prop('checked')) {
 
-         checkbox.parents('ul.term-reference-tree-level li').children('div.form-item').find('input[type=checkbox]').each(function() {
 
-           $(this).prop('checked', true);
 
-         });
 
-       }
 
-     }
 
-   }
 
- }
 
- })(jQuery);
 
 
  |