| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196 | 
							- /**
 
-  * @file
 
-  * Attaches the behaviors for the Overlay child pages.
 
-  */
 
- (function ($) {
 
- /**
 
-  * Attach the child dialog behavior to new content.
 
-  */
 
- Drupal.behaviors.overlayChild = {
 
-   attach: function (context, settings) {
 
-     // Make sure this behavior is not processed more than once.
 
-     if (this.processed) {
 
-       return;
 
-     }
 
-     this.processed = true;
 
-     // If we cannot reach the parent window, break out of the overlay.
 
-     if (!parent.Drupal || !parent.Drupal.overlay) {
 
-       window.location = window.location.href.replace(/([?&]?)render=overlay&?/g, '$1').replace(/\?$/, '');
 
-     }
 
-     var settings = settings.overlayChild || {};
 
-     // If the entire parent window should be refreshed when the overlay is
 
-     // closed, pass that information to the parent window.
 
-     if (settings.refreshPage) {
 
-       parent.Drupal.overlay.refreshPage = true;
 
-     }
 
-     // If a form has been submitted successfully, then the server side script
 
-     // may have decided to tell the parent window to close the popup dialog.
 
-     if (settings.closeOverlay) {
 
-       parent.Drupal.overlay.bindChild(window, true);
 
-       // Use setTimeout to close the child window from a separate thread,
 
-       // because the current one is busy processing Drupal behaviors.
 
-       setTimeout(function () {
 
-         if (typeof settings.redirect == 'string') {
 
-           parent.Drupal.overlay.redirect(settings.redirect);
 
-         }
 
-         else {
 
-           parent.Drupal.overlay.close();
 
-         }
 
-       }, 1);
 
-       return;
 
-     }
 
-     // If one of the regions displaying outside the overlay needs to be
 
-     // reloaded immediately, let the parent window know.
 
-     if (settings.refreshRegions) {
 
-       parent.Drupal.overlay.refreshRegions(settings.refreshRegions);
 
-     }
 
-     // Ok, now we can tell the parent window we're ready.
 
-     parent.Drupal.overlay.bindChild(window);
 
-     // IE8 crashes on certain pages if this isn't called; reason unknown.
 
-     window.scrollTo(window.scrollX, window.scrollY);
 
-     // Attach child related behaviors to the iframe document.
 
-     Drupal.overlayChild.attachBehaviors(context, settings);
 
-     // There are two links within the message that informs people about the
 
-     // overlay and how to disable it. Make sure both links are visible when
 
-     // either one has focus and add a class to the wrapper for styling purposes.
 
-     $('#overlay-disable-message', context)
 
-       .focusin(function () {
 
-         $(this).addClass('overlay-disable-message-focused');
 
-         $('a.element-focusable', this).removeClass('element-invisible');
 
-       })
 
-       .focusout(function () {
 
-         $(this).removeClass('overlay-disable-message-focused');
 
-         $('a.element-focusable', this).addClass('element-invisible');
 
-       });
 
-   }
 
- };
 
- /**
 
-  * Overlay object for child windows.
 
-  */
 
- Drupal.overlayChild = Drupal.overlayChild || {
 
-   behaviors: {}
 
- };
 
- Drupal.overlayChild.prototype = {};
 
- /**
 
-  * Attach child related behaviors to the iframe document.
 
-  */
 
- Drupal.overlayChild.attachBehaviors = function (context, settings) {
 
-   $.each(this.behaviors, function () {
 
-     this(context, settings);
 
-   });
 
- };
 
- /**
 
-  * Capture and handle clicks.
 
-  *
 
-  * Instead of binding a click event handler to every link we bind one to the
 
-  * document and handle events that bubble up. This also allows other scripts
 
-  * to bind their own handlers to links and also to prevent overlay's handling.
 
-  */
 
- Drupal.overlayChild.behaviors.addClickHandler = function (context, settings) {
 
-   $(document).bind('click.drupal-overlay mouseup.drupal-overlay', $.proxy(parent.Drupal.overlay, 'eventhandlerOverrideLink'));
 
- };
 
- /**
 
-  * Modify forms depending on their relation to the overlay.
 
-  *
 
-  * By default, forms are assumed to keep the flow in the overlay. Thus their
 
-  * action attribute get a ?render=overlay suffix.
 
-  */
 
- Drupal.overlayChild.behaviors.parseForms = function (context, settings) {
 
-   $('form', context).once('overlay', function () {
 
-     // Obtain the action attribute of the form.
 
-     var action = $(this).attr('action');
 
-     // Keep internal forms in the overlay.
 
-     if (action == undefined || (action.indexOf('http') != 0 && action.indexOf('https') != 0)) {
 
-       action += (action.indexOf('?') > -1 ? '&' : '?') + 'render=overlay';
 
-       $(this).attr('action', action);
 
-     }
 
-     // Submit external forms into a new window.
 
-     else {
 
-       $(this).attr('target', '_new');
 
-     }
 
-   });
 
- };
 
- /**
 
-  * Replace the overlay title with a message while loading another page.
 
-  */
 
- Drupal.overlayChild.behaviors.loading = function (context, settings) {
 
-   var $title;
 
-   var text = Drupal.t('Loading');
 
-   var dots = '';
 
-   $(document).bind('drupalOverlayBeforeLoad.drupal-overlay.drupal-overlay-child-loading', function () {
 
-     $title = $('#overlay-title').text(text);
 
-     var id = setInterval(function () {
 
-       dots = (dots.length > 10) ? '' : dots + '.';
 
-       $title.text(text + dots);
 
-     }, 500);
 
-   });
 
- };
 
- /**
 
-  * Switch active tab immediately.
 
-  */
 
- Drupal.overlayChild.behaviors.tabs = function (context, settings) {
 
-   var $tabsLinks = $('#overlay-tabs > li > a');
 
-   $('#overlay-tabs > li > a').bind('click.drupal-overlay', function () {
 
-     var active_tab = Drupal.t('(active tab)');
 
-     $tabsLinks.parent().siblings().removeClass('active').find('element-invisible:contains(' + active_tab + ')').appendTo(this);
 
-     $(this).parent().addClass('active');
 
-   });
 
- };
 
- /**
 
-  * If the shortcut add/delete button exists, move it to the overlay titlebar.
 
-  */
 
- Drupal.overlayChild.behaviors.shortcutAddLink = function (context, settings) {
 
-   // Remove any existing shortcut button markup from the titlebar.
 
-   $('#overlay-titlebar').find('.add-or-remove-shortcuts').remove();
 
-   // If the shortcut add/delete button exists, move it to the titlebar.
 
-   var $addToShortcuts = $('.add-or-remove-shortcuts');
 
-   if ($addToShortcuts.length) {
 
-     $addToShortcuts.insertAfter('#overlay-title');
 
-   }
 
-   $(document).bind('drupalOverlayBeforeLoad.drupal-overlay.drupal-overlay-child-loading', function () {
 
-     $('#overlay-titlebar').find('.add-or-remove-shortcuts').remove();
 
-   });
 
- };
 
- /**
 
-  * Use displacement from parent window.
 
-  */
 
- Drupal.overlayChild.behaviors.alterTableHeaderOffset = function (context, settings) {
 
-   if (Drupal.settings.tableHeaderOffset) {
 
-     Drupal.overlayChild.prevTableHeaderOffset = Drupal.settings.tableHeaderOffset;
 
-   }
 
-   Drupal.settings.tableHeaderOffset = 'Drupal.overlayChild.tableHeaderOffset';
 
- };
 
- /**
 
-  * Callback for Drupal.settings.tableHeaderOffset.
 
-  */
 
- Drupal.overlayChild.tableHeaderOffset = function () {
 
-   var topOffset = Drupal.overlayChild.prevTableHeaderOffset ? eval(Drupal.overlayChild.prevTableHeaderOffset + '()') : 0;
 
-   return topOffset + parseInt($(document.body).css('marginTop'));
 
- };
 
- })(jQuery);
 
 
  |