whole_func_string: function (el, outerClick) {
              // Get index of popup ID inside of visiblePopupsArray
              var popupIdIndex = $.inArray(el.id, visiblePopupsArray);
  
              // If popup is not opened, ignore the rest of the function
              if (popupIdIndex === -1) {
                  return;
              }
  
              if(opentimer) clearTimeout(opentimer);
  
              var $body = $('body');
              var $el = $(el);
              var options = $el.data('popupoptions');
              var $wrapper = $('#' + el.id + '_wrapper');
              var $background = $('#' + el.id + '_background');
  
              $el.data('popup-visible', false);
  
              if (visiblePopupsArray.length === 1) {
                  $('html').removeClass('popup_visible').removeClass('popup_visible_' + el.id);
              } else {
                  if($('html').hasClass('popup_visible_' + el.id)) {
                      $('html').removeClass('popup_visible_' + el.id);
                  }
              }
  
              // Remove popup from the visiblePopupsArray
              visiblePopupsArray.splice(popupIdIndex, 1);
  
              if($wrapper.hasClass('popup_wrapper_visible')) {
                  $wrapper.removeClass('popup_wrapper_visible');
              }
  
              // Focus back on saved element
              if (options.keepfocus && !outerClick) {
                  setTimeout(function() {
                      if ($($el.data('focusedelementbeforepopup')).is(':visible')) {
                          $el.data('focusedelementbeforepopup').focus();
                      }
                  }, 0);
              }
  
              // Hide popup
              $wrapper.css({
                  'visibility': 'hidden',
                  'opacity': 0
              });
              $el.css({
                  'visibility': 'hidden',
                  'opacity': 0
              });
  
              // Hide background
              if (options.background) {
                  $background.css({
                      'visibility': 'hidden',
                      'opacity': 0
                  });
              }
  
              // Reveal main content to screen readers
              $(options.pagecontainer).attr('aria-hidden', false);
  
              // Hide popup content from screen readers
              $el.attr('aria-hidden', true);
  
              // `onclose` callback event
              callback(el, lastclicked[el.id], options.onclose);
  
              if (transitionsupport && $el.css('transition-duration') !== '0s') {
                  $el.one('transitionend', function() {
  
                      if (!($el.data('popup-visible'))) {
                          if (options.detach) {
                              $el.detach();
                          } else {
                              $el.hide();
                          }
                      }
  
                      // Re-enable scrolling of background layer, if needed
                      if (options.scrolllock) {
                          setTimeout(function() {
                              if ($.grep(visiblePopupsArray, function(eid) { return $("#"+eid).data('popupoptions').scrolllock }).length) {
                                  // Some "scolllock=true" popup is currently visible, leave scrolling disabled
                                  return;
                              }
                              $body.css({
                                  overflow: 'visible',
                                  'margin-right': bodymarginright
                              });
                          }, 10); // 10ms added for CSS transition in Firefox which doesn't like overflow:auto
                      }
  
                      callback(el, lastclicked[el.id], options.closetransitionend);
                  });
              } else {
                  if (options.detach) {
                      $el.detach();
                  } else {
                      $el.hide();
                  }
  
                  // Re-enable scrolling of background layer, if needed
                  if (options.scrolllock) {
                      setTimeout(function() {
                          if ($.grep(visiblePopupsArray, function(eid) { return $("#"+eid).data('popupoptions').scrolllock }).length) {
                              // Some "scrolllock=true" popup is currently visible, leave scrolling disabled
                              return;
                          }
                          $body.css({
                              overflow: 'visible',
                              'margin-right': bodymarginright
                          });
                      }, 10); // 10ms added for CSS transition in Firefox which doesn't like overflow:auto
                  }
  
                  callback(el, lastclicked[el.id], options.closetransitionend);
              }
  
              if (options.type == 'tooltip') {
                  $(window).off('resize.' + el.id);
              }
          }
func_code_string: function (el, outerClick) {
              // Get index of popup ID inside of visiblePopupsArray
              var popupIdIndex = $.inArray(el.id, visiblePopupsArray);
  
              // If popup is not opened, ignore the rest of the function
              if (popupIdIndex === -1) {
                  return;
              }
  
              if(opentimer) clearTimeout(opentimer);
  
              var $body = $('body');
              var $el = $(el);
              var options = $el.data('popupoptions');
              var $wrapper = $('#' + el.id + '_wrapper');
              var $background = $('#' + el.id + '_background');
  
              $el.data('popup-visible', false);
  
              if (visiblePopupsArray.length === 1) {
                  $('html').removeClass('popup_visible').removeClass('popup_visible_' + el.id);
              } else {
                  if($('html').hasClass('popup_visible_' + el.id)) {
                      $('html').removeClass('popup_visible_' + el.id);
                  }
              }
  
              // Remove popup from the visiblePopupsArray
              visiblePopupsArray.splice(popupIdIndex, 1);
  
              if($wrapper.hasClass('popup_wrapper_visible')) {
                  $wrapper.removeClass('popup_wrapper_visible');
              }
  
              // Focus back on saved element
              if (options.keepfocus && !outerClick) {
                  setTimeout(function() {
                      if ($($el.data('focusedelementbeforepopup')).is(':visible')) {
                          $el.data('focusedelementbeforepopup').focus();
                      }
                  }, 0);
              }
  
              // Hide popup
              $wrapper.css({
                  'visibility': 'hidden',
                  'opacity': 0
              });
              $el.css({
                  'visibility': 'hidden',
                  'opacity': 0
              });
  
              // Hide background
              if (options.background) {
                  $background.css({
                      'visibility': 'hidden',
                      'opacity': 0
                  });
              }
  
              // Reveal main content to screen readers
              $(options.pagecontainer).attr('aria-hidden', false);
  
              // Hide popup content from screen readers
              $el.attr('aria-hidden', true);
  
              // `onclose` callback event
              callback(el, lastclicked[el.id], options.onclose);
  
              if (transitionsupport && $el.css('transition-duration') !== '0s') {
                  $el.one('transitionend', function() {
  
                      if (!($el.data('popup-visible'))) {
                          if (options.detach) {
                              $el.detach();
                          } else {
                              $el.hide();
                          }
                      }
  
                      // Re-enable scrolling of background layer, if needed
                      if (options.scrolllock) {
                          setTimeout(function() {
                              if ($.grep(visiblePopupsArray, function(eid) { return $("#"+eid).data('popupoptions').scrolllock }).length) {
                                  // Some "scolllock=true" popup is currently visible, leave scrolling disabled
                                  return;
                              }
                              $body.css({
                                  overflow: 'visible',
                                  'margin-right': bodymarginright
                              });
                          }, 10); // 10ms added for CSS transition in Firefox which doesn't like overflow:auto
                      }
  
                      callback(el, lastclicked[el.id], options.closetransitionend);
                  });
              } else {
                  if (options.detach) {
                      $el.detach();
                  } else {
                      $el.hide();
                  }
  
                  // Re-enable scrolling of background layer, if needed
                  if (options.scrolllock) {
                      setTimeout(function() {
                          if ($.grep(visiblePopupsArray, function(eid) { return $("#"+eid).data('popupoptions').scrolllock }).length) {
                              // Some "scrolllock=true" popup is currently visible, leave scrolling disabled
                              return;
                          }
                          $body.css({
                              overflow: 'visible',
                              'margin-right': bodymarginright
                          });
                      }, 10); // 10ms added for CSS transition in Firefox which doesn't like overflow:auto
                  }
  
                  callback(el, lastclicked[el.id], options.closetransitionend);
              }
  
              if (options.type == 'tooltip') {
                  $(window).off('resize.' + el.id);
              }
          }
func_documentation_string: Hide method
  
  @param object el - popup instance DOM node
  @param boolean outerClick - click on the outer content below popup