whole_func_string: function (el, ordinal) {
              var $el = $(el);
  
              if ($el.data('popup-visible')) return;
  
              // Initialize if not initialized. Required for: $('#popup').popup('show')
              if (!$el.data('popup-initialized')) {
                  methods._init(el);
              }
              $el.attr('data-popup-initialized', 'true');
  
              var $body = $('body');
              var options = $el.data('popupoptions');
              var $wrapper = $('#' + el.id + '_wrapper');
              var $background = $('#' + el.id + '_background');
  
              // `beforeopen` callback event
              callback(el, ordinal, options.beforeopen);
  
              // Remember last clicked place
              lastclicked[el.id] = ordinal;
  
              // Add popup id to visiblePopupsArray
              setTimeout(function() {
                  visiblePopupsArray.push(el.id);
              }, 0);
  
              // Calculating maximum z-index
              if (options.autozindex) {
  
                  var elements = document.getElementsByTagName('*');
                  var len = elements.length;
                  var maxzindex = 0;
  
                  for(var i=0; i<len; i++){
  
                      var elementzindex = $(elements[i]).css('z-index');
  
                      if(elementzindex !== 'auto'){
  
                        elementzindex = parseInt(elementzindex, 10);
  
                        if(maxzindex < elementzindex){
                          maxzindex = elementzindex;
                        }
                      }
                  }
  
                  zindexvalues[el.id] = maxzindex;
  
                  // Add z-index to the background
                  if (options.background) {
                      if (zindexvalues[el.id] >= 0) {
                          $('#' + el.id + '_background').css({
                              zIndex: (zindexvalues[el.id] + 1)
                          });
                      }
                  }
  
                  // Add z-index to the wrapper
                  if (zindexvalues[el.id] >= 0) {
                      $wrapper.css({
                          zIndex: (zindexvalues[el.id] + 2)
                      });
                  }
              }
  
              if (options.detach) {
                  $wrapper.prepend(el);
                  $el.show();
              } else {
                  $el.show();
              }
  
              opentimer = setTimeout(function() {
                  $wrapper.css({
                      visibility: 'visible',
                      opacity: 1
                  });
  
                  $('html').addClass('popup_visible').addClass('popup_visible_' + el.id);
                  $wrapper.addClass('popup_wrapper_visible');
              }, 20); // 20ms required for opening animation to occur in FF
  
              // Disable background layer scrolling when popup is opened
              if (options.scrolllock) {
                  $body.css('overflow', 'hidden');
                  if ($body.height() > $window.height()) {
                      $body.css('margin-right', bodymarginright + scrollbarwidth);
                  }
              }
  
              $el.css({
                  'visibility': 'visible',
                  'opacity': 1
              });
  
              // Show background
              if (options.background) {
                  $background.css({
                      'visibility': 'visible',
                      'opacity': options.opacity
                  });
  
                  // Fix IE8 issue with background not appearing
                  setTimeout(function() {
                      $background.css({
                          'opacity': options.opacity
                      });
                  }, 0);
              }
  
              $el.data('popup-visible', true);
  
              // Position popup
              methods.reposition(el, ordinal);
  
              // Remember which element had focus before opening a popup
              $el.data('focusedelementbeforepopup', document.activeElement);
  
              // Make holder div programatically focusable with tabindex:-1 (tabindex:0 is keyboard focusable)
              $el.attr('tabindex', -1);
  
              // Focus the popup or user specified element.
              // Initial timeout of 50ms is set to give some time to popup to show after clicking on
              // `open` element, and after animation is complete to prevent background scrolling.
              setTimeout(function() {
                  if (options.focuselement === 'closebutton') { // e.g. focuselement:'closebutton'
                      $('#' + el.id + ' .' + el.id + closesuffix + ':first').focus();
                  } else if (options.focuselement) { // e.g. focuselement:'#my-close-button'
                      $(options.focuselement).focus();
                  } else if (options.focuselement === true || options.keepfocus) { // e.g. focuselement:true OR keepfocus:true
                      $el.focus();
                  }
              }, options.focusdelay);
  
              // Hide main content from screen readers
              if (options.keepfocus) {
                  $(options.pagecontainer).attr('aria-hidden', true);
              }
  
              // Reveal popup content to screen readers
              $el.attr('aria-hidden', false);
  
              callback(el, ordinal, options.onopen);
  
              if (transitionsupport) {
                  $wrapper.one('transitionend', function() {
                      callback(el, ordinal, options.opentransitionend);
                  });
              } else {
                  callback(el, ordinal, options.opentransitionend);
              }
  
              // Handler: Reposition tooltip when window is resized
              if (options.type == 'tooltip') {
                  $(window).on('resize.' + el.id, function () {
                      methods.reposition(el, ordinal);
                  });
              }
          }
func_code_string: function (el, ordinal) {
              var $el = $(el);
  
              if ($el.data('popup-visible')) return;
  
              // Initialize if not initialized. Required for: $('#popup').popup('show')
              if (!$el.data('popup-initialized')) {
                  methods._init(el);
              }
              $el.attr('data-popup-initialized', 'true');
  
              var $body = $('body');
              var options = $el.data('popupoptions');
              var $wrapper = $('#' + el.id + '_wrapper');
              var $background = $('#' + el.id + '_background');
  
              // `beforeopen` callback event
              callback(el, ordinal, options.beforeopen);
  
              // Remember last clicked place
              lastclicked[el.id] = ordinal;
  
              // Add popup id to visiblePopupsArray
              setTimeout(function() {
                  visiblePopupsArray.push(el.id);
              }, 0);
  
              // Calculating maximum z-index
              if (options.autozindex) {
  
                  var elements = document.getElementsByTagName('*');
                  var len = elements.length;
                  var maxzindex = 0;
  
                  for(var i=0; i<len; i++){
  
                      var elementzindex = $(elements[i]).css('z-index');
  
                      if(elementzindex !== 'auto'){
  
                        elementzindex = parseInt(elementzindex, 10);
  
                        if(maxzindex < elementzindex){
                          maxzindex = elementzindex;
                        }
                      }
                  }
  
                  zindexvalues[el.id] = maxzindex;
  
                  // Add z-index to the background
                  if (options.background) {
                      if (zindexvalues[el.id] >= 0) {
                          $('#' + el.id + '_background').css({
                              zIndex: (zindexvalues[el.id] + 1)
                          });
                      }
                  }
  
                  // Add z-index to the wrapper
                  if (zindexvalues[el.id] >= 0) {
                      $wrapper.css({
                          zIndex: (zindexvalues[el.id] + 2)
                      });
                  }
              }
  
              if (options.detach) {
                  $wrapper.prepend(el);
                  $el.show();
              } else {
                  $el.show();
              }
  
              opentimer = setTimeout(function() {
                  $wrapper.css({
                      visibility: 'visible',
                      opacity: 1
                  });
  
                  $('html').addClass('popup_visible').addClass('popup_visible_' + el.id);
                  $wrapper.addClass('popup_wrapper_visible');
              }, 20); // 20ms required for opening animation to occur in FF
  
              // Disable background layer scrolling when popup is opened
              if (options.scrolllock) {
                  $body.css('overflow', 'hidden');
                  if ($body.height() > $window.height()) {
                      $body.css('margin-right', bodymarginright + scrollbarwidth);
                  }
              }
  
              $el.css({
                  'visibility': 'visible',
                  'opacity': 1
              });
  
              // Show background
              if (options.background) {
                  $background.css({
                      'visibility': 'visible',
                      'opacity': options.opacity
                  });
  
                  // Fix IE8 issue with background not appearing
                  setTimeout(function() {
                      $background.css({
                          'opacity': options.opacity
                      });
                  }, 0);
              }
  
              $el.data('popup-visible', true);
  
              // Position popup
              methods.reposition(el, ordinal);
  
              // Remember which element had focus before opening a popup
              $el.data('focusedelementbeforepopup', document.activeElement);
  
              // Make holder div programatically focusable with tabindex:-1 (tabindex:0 is keyboard focusable)
              $el.attr('tabindex', -1);
  
              // Focus the popup or user specified element.
              // Initial timeout of 50ms is set to give some time to popup to show after clicking on
              // `open` element, and after animation is complete to prevent background scrolling.
              setTimeout(function() {
                  if (options.focuselement === 'closebutton') { // e.g. focuselement:'closebutton'
                      $('#' + el.id + ' .' + el.id + closesuffix + ':first').focus();
                  } else if (options.focuselement) { // e.g. focuselement:'#my-close-button'
                      $(options.focuselement).focus();
                  } else if (options.focuselement === true || options.keepfocus) { // e.g. focuselement:true OR keepfocus:true
                      $el.focus();
                  }
              }, options.focusdelay);
  
              // Hide main content from screen readers
              if (options.keepfocus) {
                  $(options.pagecontainer).attr('aria-hidden', true);
              }
  
              // Reveal popup content to screen readers
              $el.attr('aria-hidden', false);
  
              callback(el, ordinal, options.onopen);
  
              if (transitionsupport) {
                  $wrapper.one('transitionend', function() {
                      callback(el, ordinal, options.opentransitionend);
                  });
              } else {
                  callback(el, ordinal, options.opentransitionend);
              }
  
              // Handler: Reposition tooltip when window is resized
              if (options.type == 'tooltip') {
                  $(window).on('resize.' + el.id, function () {
                      methods.reposition(el, ordinal);
                  });
              }
          }
func_documentation_string: Show method
  
  @param {object} el - popup instance DOM node
  @param {number} ordinal - order number of an `open` element