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);
                });
            }
        }
function (el, ordinal) {
            var $el = $(el);

            if ($el.data('popup-visible')) return;

            
            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');

            
            callback(el, ordinal, options.beforeopen);

            
            lastclicked[el.id] = ordinal;

            
            setTimeout(function() {
                visiblePopupsArray.push(el.id);
            }, 0);

            
            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;

                
                if (options.background) {
                    if (zindexvalues[el.id] >= 0) {
                        $('#' + el.id + '_background').css({
                            zIndex: (zindexvalues[el.id] + 1)
                        });
                    }
                }

                
                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); 

            
            if (options.scrolllock) {
                $body.css('overflow', 'hidden');
                if ($body.height() > $window.height()) {
                    $body.css('margin-right', bodymarginright + scrollbarwidth);
                }
            }

            $el.css({
                'visibility': 'visible',
                'opacity': 1
            });

            
            if (options.background) {
                $background.css({
                    'visibility': 'visible',
                    'opacity': options.opacity
                });

                
                setTimeout(function() {
                    $background.css({
                        'opacity': options.opacity
                    });
                }, 0);
            }

            $el.data('popup-visible', true);

            
            methods.reposition(el, ordinal);

            
            $el.data('focusedelementbeforepopup', document.activeElement);

            
            $el.attr('tabindex', -1);

            
            
            
            setTimeout(function() {
                if (options.focuselement === 'closebutton') { 
                    $('#' + el.id + ' .' + el.id + closesuffix + ':first').focus();
                } else if (options.focuselement) { 
                    $(options.focuselement).focus();
                } else if (options.focuselement === true || options.keepfocus) { 
                    $el.focus();
                }
            }, options.focusdelay);

            
            if (options.keepfocus) {
                $(options.pagecontainer).attr('aria-hidden', true);
            }

            
            $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);
            }

            
            if (options.type == 'tooltip') {
                $(window).on('resize.' + el.id, function () {
                    methods.reposition(el, ordinal);
                });
            }
        }
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 ) ; } ) ; } }
Show method

@param {object} el - popup instance DOM node
@param {number} ordinal - order number of an `open` element
Show method