/**
 * jQuery lightBox plugin
 * This jQuery plugin was inspired and based on Lightbox 2 by Lokesh Dhakar (http://www.huddletogether.com/projects/lightbox2/)
 * and adapted to me for use like a plugin from jQuery.
 * @name jquery-lightbox-0.5.js
 * @author Leandro Vieira Pinho - http://leandrovieira.com
 * @version 0.5
 * @date April 11, 2008
 * @category jQuery plugin
 * @copyright (c) 2008 Leandro Vieira Pinho (leandrovieira.com)
 * @license CC Attribution-No Derivative Works 2.5 Brazil - http://creativecommons.org/licenses/by-nd/2.5/br/deed.en_US
 * @example Visit http://leandrovieira.com/projects/jquery/lightbox/ for more informations about this jQuery plugin
 */

// Offering a Custom Alias suport - More info: http://docs.jquery.com/Plugins/Authoring#Custom_Alias
var picTitle;
(function($) {
    /**
    * $ is an alias to jQuery object
    *
    */
    $.fn.lightBox = function(settings) {
        // Settings to configure the jQuery lightBox plugin how you like
        settings = jQuery.extend({
            // Configuration related to overlay
            overlayBgColor: '#000', 	// (string) Background color to overlay; inform a hexadecimal value like: #RRGGBB. Where RR, GG, and BB are the hexadecimal values for the red, green, and blue values of the color.
            overlayOpacity: 0.7, 	// (integer) Opacity value to overlay; inform: 0.X. Where X are number from 0 to 9
            // Configuration related to navigation
            fixedNavigation: false, 	// (boolean) Boolean that informs if the navigation (next and prev button) will be fixed or not in the interface.
            // Configuration related to images
            imageLoading: 'images/lightbox-ico-loading.gif', 	// (string) Path and the name of the loading icon
            imageBtnPrev: 'images/lightbox-btn-prev.gif', 		// (string) Path and the name of the prev button image
            imageBtnNext: 'images/lightbox-btn-next.gif', 		// (string) Path and the name of the next button image
            imageBtnClose: 'images/lightbox-btn-close.gif', 	// (string) Path and the name of the close btn
            imageBlank: 'images/lightbox-blank.gif', 		// (string) Path and the name of a blank image (one pixel)
            // Configuration related to container image box
            containerBorderSize: 10, 		// (integer) If you adjust the padding in the CSS for the container, #lightbox-container-image-box, you will need to update this value
            containerResizeSpeed: 400, 	// (integer) Specify the resize duration of container image. These number are miliseconds. 400 is default.
            // Configuration related to texts in caption. For example: Image 2 of 8. You can alter either "Image" and "of" texts.
            txtImage: 'Image', // (string) Specify text "Image"
            txtOf: 'of', 	// (string) Specify text "of"
            // Configuration related to keyboard navigation
            keyToClose: 'c', 	// (string) (c = close) Letter to close the jQuery lightBox interface. Beyond this letter, the letter X and the SCAPE key is used to.
            keyToPrev: 'p', 	// (string) (p = previous) Letter to show the previous image
            keyToNext: 'n', 	// (string) (n = next) Letter to show the next image.
            // Don´t alter these variables in any way
            imageArray: [],
            activeImage: 0
        }, settings);
        // Caching the jQuery object with all elements matched
        var jQueryMatchedObj = this; // This, in this context, refer to jQuery object
        /**
        * Initializing the plugin calling the start function
        *
        * @return boolean false
        */
        function _initialize() {
            _start(this, jQueryMatchedObj); // This, in this context, refer to object (link) which the user have clicked
            return false; // Avoid the browser following the link
        }
        /**
        * Start the jQuery lightBox plugin
        *
        * @param object objClicked The object (link) whick the user have clicked
        * @param object jQueryMatchedObj The jQuery object with all elements matched
        */
        function _start(objClicked, jQueryMatchedObj) {
            // Hime some elements to avoid conflict with overlay in IE. These elements appear above the overlay.
            $('embed, object, select').css({ 'visibility': 'hidden' });
            // Call the function to create the markup structure; style some elements; assign events in some elements.
            _set_interface();
            // Unset total images in imageArray
            settings.imageArray.length = 0;
            // Unset image active information
            settings.activeImage = 0;
            // We have an image set? Or just an image? Let´s see it.
            if (jQueryMatchedObj.length == 1) {
                settings.imageArray.push(new Array(objClicked.getAttribute('href'), objClicked.getAttribute('title')));
                picTitle = objClicked.getAttribute('title');
            } else {
                // Add an Array (as many as we have), with href and title atributes, inside the Array that storage the images references		
                for (var i = 0; i < jQueryMatchedObj.length; i++) {
                    settings.imageArray.push(new Array(jQueryMatchedObj[i].getAttribute('href'), jQueryMatchedObj[i].getAttribute('title')));
                    picTitle =  objClicked.getAttribute('title');
                }
            }
            while (settings.imageArray[settings.activeImage][0] != objClicked.getAttribute('href')) {
                settings.activeImage++;
            }
            // Call the function that prepares image exibition
            _set_image_to_view();
        }
        
        function _set_interface() {
            // Apply the HTML markup into body tag
            $('body').append('<div id="jquery-overlay"></div><div id="jquery-lightbox"><div id="lightbox-container-image-box"><div id="lightbox-container-image"><img id="lightbox-image"><div style="" id="lightbox-nav"><a href="#" id="lightbox-nav-btnPrev"></a><a href="#" id="lightbox-nav-btnNext"></a></div><div id="lightbox-loading"><a href="#" id="lightbox-loading-link"><img src="' + settings.imageLoading + '"></a></div></div></div><div id="lightbox-container-image-data-box"><div id="lightbox-container-image-data"><div id="lightbox-image-details"><span id="lightbox-image-details-caption"></span><span id="lightbox-image-details-currentNumber"></span></div><div id="lightbox-secNav"><a href="#" id="lightbox-secNav-btnClose"><img src="' + settings.imageBtnClose + '"></a></div></div></div></div>');
            // Get page sizes
            var arrPageSizes = ___getPageSize();
            // Style overlay and show it
            $('#jquery-overlay').css({
                backgroundColor: settings.overlayBgColor,
                opacity: settings.overlayOpacity,
                width: arrPageSizes[0],
                height: arrPageSizes[1]
            }).fadeIn();
            // Get page scroll
            var arrPageScroll = ___getPageScroll();
            // Calculate top and left offset for the jquery-lightbox div object and show it
            $('#jquery-lightbox').css({
                top: arrPageScroll[1] + (arrPageSizes[3] / 10),
                left: arrPageScroll[0]
            }).show();
            // Assigning click events in elements to close overlay
            $('#jquery-overlay,#jquery-lightbox').click(function() {
                _finish();
            });
            // Assign the _finish function to lightbox-loading-link and lightbox-secNav-btnClose objects
            $('#lightbox-loading-link,#lightbox-secNav-btnClose').click(function() {
                _finish();
                return false;
            });
            // If window was resized, calculate the new overlay dimensions
            $(window).resize(function() {
                // Get page sizes
                var arrPageSizes = ___getPageSize();
                // Style overlay and show it
                $('#jquery-overlay').css({
                    width: arrPageSizes[0],
                    height: arrPageSizes[1]
                });
                // Get page scroll
                var arrPageScroll = ___getPageScroll();
                // Calculate top and left offset for the jquery-lightbox div object and show it
                $('#jquery-lightbox').css({
                    top: arrPageScroll[1] + (arrPageSizes[3] / 10),
                    left: arrPageScroll[0]
                });
            });
        }
        /**
        * Prepares image exibition; doing a image´s preloader to calculate it´s size
        *
        */
        function _set_image_to_view() { // show the loading
            // Show the loading
            $('#lightbox-loading').show();
            if (settings.fixedNavigation) {
                $('#lightbox-image,#lightbox-container-image-data-box,#lightbox-image-details-currentNumber').hide();
            } else {
                // Hide some elements
                $('#lightbox-image,#lightbox-nav,#lightbox-nav-btnPrev,#lightbox-nav-btnNext,#lightbox-container-image-data-box,#lightbox-image-details-currentNumber').hide();
            }
            // Image preload process
            var objImagePreloader = new Image();
            objImagePreloader.onload = function() {
                $('#lightbox-image').attr('src', settings.imageArray[settings.activeImage][0]);
                // Perfomance an effect in the image container resizing it
                _resize_container_image_box(objImagePreloader.width, objImagePreloader.height);
                //	clear onLoad, IE behaves irratically with animated gifs otherwise
                objImagePreloader.onload = function() { };
            };
            objImagePreloader.src = settings.imageArray[settings.activeImage][0];
            //picTitle = settings.imageArray[settings.activeImage][1];
        };
        /**
        * Perfomance an effect in the image container resizing it
        *
        * @param integer intImageWidth The image´s width that will be showed
        * @param integer intImageHeight The image´s height that will be showed
        */
        function _resize_container_image_box(intImageWidth, intImageHeight) {
            // Get current width and height
            var intCurrentWidth = $('#lightbox-container-image-box').width();
            var intCurrentHeight = $('#lightbox-container-image-box').height();
            // Get the width and height of the selected image plus the padding
            var intWidth = (intImageWidth + (settings.containerBorderSize * 2)); // Plus the image´s width and the left and right padding value
            var intHeight = (intImageHeight + (settings.containerBorderSize * 2)); // Plus the image´s height and the left and right padding value
            // Diferences
            var intDiffW = intCurrentWidth - intWidth;
            var intDiffH = intCurrentHeight - intHeight;
            // Perfomance the effect
            $('#lightbox-container-image-box').animate({ width: intWidth, height: intHeight }, settings.containerResizeSpeed, function() { _show_image(); });
            if ((intDiffW == 0) && (intDiffH == 0)) {
                if ($.browser.msie) {
                    ___pause(250);
                } else {
                    ___pause(100);
                }
            }
            if (picTitle == '1') {
                $('#lightbox-container-image-data-box').css({ width: 600 });
                $('#lightbox-container-image-data-box').css({ overflow:'scroll' });
            }
            else{
            $('#lightbox-container-image-data-box').css({ width: 600 });
            $('#lightbox-container-image-data-box').css({ overflow:'hidden' });
            }
            $('#lightbox-nav-btnPrev,#lightbox-nav-btnNext').css({ height: intImageHeight + (settings.containerBorderSize * 2) });
        };
        /**
        * Show the prepared image
        *
        */
        function _show_image() {
            $('#lightbox-loading').hide();
            $('#lightbox-image').fadeIn(function() {
                _show_image_data();
                _set_navigation();
            });
            _preload_neighbor_images();
        };
        /**
        * Show the image information
        *
        */
        function _show_image_data() {
            $('#lightbox-container-image-data-box').slideDown('fast');
            $('#lightbox-image-details-caption').hide();
            var intCurrentHeight = $('#lightbox-container-image-box').height();
            if (picTitle == '1'){
                 if (settings.imageArray[settings.activeImage][1]) {
                    $('#lightbox-image-details-caption').html('<div style="font-size:14px;color:#b2d234;font-family:Arial;font-style:italic;font-weight:bold;margin-top:20px;">Sev Spagnolie</div>' + '<div style="font-size:14px;color:#444d53;font-family:Verdana;font-weight:bold;">Founder & Chief Executive Officer</div>' +
                    '<div style="font-size:14px;color:#444d53;font-family:Arial;font-weight:bold;">Integrated Printing Solutions</div><br/>' +
                    '<div style="font-size:10px;color:444d53;font-family:Verdana;">As the founder of Integrated Printing Solutions (IPS), Sev Spagnolie is at the heart and soul of the company.  Its success and culture are a direct reflection of this industry veteran&#39;s passion for innovation, quality products and processes, personal accountability, and a deep respect for what he considers his greatest asset, his employees.<br/><br/>' +
                            'After building years of experience in the printing industry, Sev Spagnolie founded Integrated Printing Solutions in 1997 and immediately invested in the most innovative solutions in the market &#45; plastic card production and personalization &#45; gaining a &#34;first to market&#34; advantage over other companies in the industry.  Sev led his IPS team to adopt an entrepreneurial approach to business that always starts with customers&#39; business objectives first, then employs creative, whole-business thinking to deliver the most innovative, cost-effective solutions with the highest overall value to clients.<br /><br />' +
                            'The results speak for themselves.  After a solid first year sales result, Sev and the IPS team were able to grow sales by 13 times in the first three years in business, and they have continued to grow sales revenue another 260% through 2010.  These results are an unprecedented achievement compared to the average growth in the industry over the same period, and IPS has maintained less than 3% turnover of its employees.<br/><br/>' +
                            'As a result of his keen vision and investments in new growth areas and strategic partnerships, as well as his ability to attract and inspire some of the brightest minds in the business, IPS has become one of the fastest growing, independently-owned companies in the print industry.<br /><br />' +
                            'Sev Spagnolie&#39;s insight into the world of business started at an early age.  As a teenager, Sev started in his parent&#39;s printing and publishing business in Southern California, learning the fundamentals of running a business from his father.  As a young businessman in his early 20s, he was given full responsibility for running the family business.  He developed a reputation, even back then, for harnessing the power of innovation, developing trusted business relationships, and offering the highest quality standards to customers.<br/><br/>' +
                            'Sev is a father of two, who always enjoys a good adventure, whether it&#39;s racing high-powered go-karts, scuba diving in exotic locales, traveling with his family, or boating on the scenic lakes of Colorado.  He is also an avid philanthropist and enjoys giving back to those in need.<br /><br />' +
                            
                    '</div>' ).show();}
            }
            if (picTitle == '2'){
                 if (settings.imageArray[settings.activeImage][1]) {
                    $('#lightbox-image-details-caption').html('<div style="font-size:14px;color:#b2d234;font-family:Verdana;font-style:italic;font-weight:bold;margin-top:10px;">David J. Gandini</div>' + '<div style="font-size:14px;color:#444d53;font-family:Verdana;font-weight:bold;">President and Chief Operating Officer</div><br/>' +
                    '<div style="font-size:10px;color:444d53;font-family:Verdana;">David J. Gandini is the president and chief operating officer of Integrated Printing Solutions (IPS). In this capacity, he oversees the day to day operations, strategic partnerships and planning for the company.  Dave joined IPS in 2002 and served as vice president of sales and general manager until his promotion to president and chief operating officer in January 2009. <br/><br/>' +
                            'Dave came to IPS as a 19-year veteran in the high-growth telecommunications industry with a proven record of success in raising capital, leading acquisition and integration initiatives, and growing and managing private companies.<br/><br/>' +
                            'Since his promotion, Dave has been responsible for leading several of the largest growth initiatives in the company&#39;s history, including the effort to triple the production capacity with a new facility in the mid-West adding needed redundancy and bringing products closer to major distribution points.  Dave and his team also attained critical secure status from VISA, MasterCard, and American Express, which has allowed IPS to expand into secure gift, debit, and credit card production.<br/><br/>' +
                            'Prior to joining IPS, Dave was the chief operating officer of First World Communications, a mid-sized Denver-based telecommunications company. While at First World, Dave was responsible for the day to day operation of the business, including sales, field operations, mergers and acquisitions, and internal expansions.  His experience also includes executive management positions with several other major players in the fiber optic and technology sectors.<br/><br/>' + 
                    '</div>' ).show();}
            }
            if (picTitle == '3'){
                 if (settings.imageArray[settings.activeImage][1]) {
                    $('#lightbox-image-details-caption').html('<div style="font-size:14px;color:#b2d234;font-family:Verdana;font-style:italic;font-weight:bold;margin-top:10px;">Jerry Wenzel</div>' + '<div style="font-size:14px;color:#444d53;font-family:Verdana;font-weight:bold;">Vice President of Finance</div><br/>' +
                    '<div style="font-size:10px;color:444d53;font-family:Verdana;">Jerry Wenzel is the vice president of finance and chief financial officer of Integrated Printing Solutions (IPS).  In this capacity, he is responsible for managing the finance and planning functions, as well as managing direct departmental reports, including Accounting, Credit, Human Resources, and Administration.  Additionally, Jerry has led the development plan for ownership and senior management to assess the capital structure, establish operational controls, minimize taxes, and identify potential acquisition or investor candidates.<br/><br/>' +
                    'Since starting with IPS in 2007, Jerry has made his mark by implementing numerous financial strategies with significant impact on the financial and cultural health of the company, including a program to obtain federal tax refunds by identifying changes and corrections to accounting policies and tax returns.  IPS was then able to use the tax refunds for working capital and business expansion.  Jerry was also the driving force behind the implementation of 401(k) and Section 125 plans that improved overall employee satisfaction at minimal cost to the company.<br /><br /> ' +
                    'Prior to joining IPS in 2007, he was executive vice president and chief financial officer for Ouray Sportswear, where, among other things, he implemented a computer system conversion that resulted in a six figure annual savings to the company. He also successfully negotiated the sale of the business from the ownership group to a private equity firm.  Jerry also has extensive experience as a certified public accountant and management consultant, working with public and privately held companies.<br /><br /> ' +
                    'Jerry graduated from the University of Wisconsin with a degree in Accountancy, is a Certified Public Accountant, is a member of the AICPA, and has served as a program instructor for the American Institute of Banking, the University of Denver and other business and professional organizations.<br /><br />' +
                    '</div>' ).show();}
            }
            /** Kent Gerwick  **/
            if (picTitle == '4'){
                if (settings.imageArray[settings.activeImage][1]) {
                    $('#lightbox-image-details-caption').html('<div style="font-size:14px;color:#b2d234;font-family:Verdana;font-style:italic;font-weight:bold;margin-top:10px;">Kent Gerwick</div>' + '<div style="font-size:14px;color:#444d53;font-family:Verdana;font-weight:bold;">Vice President of Sales</div><br/>' +
                    '<div style="font-size:10px;color:444d53;font-family:Verdana;">Kent Gerwick is the Vice President of Sales for Integrated Printing Solutions (IPS).  In this capacity, he is responsible for strategic and tactical sales and marketing activities for IPS. Kent is dedicated to building trusted business relationships with IPS&#39; clients using a collaborative, client-centric approach, coupled with creation of truly innovative new products.<br/><br/>' +
                            'Kent joined IPS in October 2011. Prior to that, Kent spent 20+ years in the financial services and prepaid markets with such companies as MoneyGram International, Meta Bank, and Vantiv.<br/><br/>' +
                            'Kent has a proven track record of building, growing, and leading best-in-class sales organizations.<br/><br/>' +
                                               '</div>' ).show();}
                }
               if (picTitle == '5'){
                 if (settings.imageArray[settings.activeImage][1]) {
                    $('#lightbox-image-details-caption').html('<div style="font-size:14px;color:#b2d234;font-family:Verdana;font-style:italic;font-weight:bold;margin-top:40px;">John Benjamin</div>' + '<div style="font-size:14px;color:#444d53;font-family:Verdana;font-weight:bold;">Vice President of Manufacturing</div><br/>' +
                    '<div style="font-size:10px;color:444d53;font-family:Verdana;">John Benjamin is the vice president of manufacturing for Integrated Printing Solutions (IPS).  In this capacity, he is responsible for internal manufacturing and external supplier management systems for IPS. He also brings a wealth of project management and systems implementation experience to the organization.<br/><br/>' +
                    'John joined IPS in 2008 after more than three decades of account management and custom manufacturing experience with companies across the U.S. <br/><br/>'+
                    'Since joining the company, John has revolutionized IPS&#39; manufacturing process to increase capacity and output, introduce innovative new heat-seal equipment, as well as streamline the production process to offer clients unprecedented turnaround on even the largest, most complex orders. Using “lean manufacturing” methods, John translated the theme of “efficiency based on optimization of flow” to a highly optimized, cost-effective manufacturing process that stands out as a model in the industry. <br/><br/>' +
                    'Prior to joining IPS, he was vice president and general manager at Cenveo, one of the largest diversified printing companies in North America, and plant manager at Dolan Wohlers. <br/><br/>' +
					'He also worked in the New York City advertising market as a client services manager and account executive, serving international and Fortune 100 clients. <br/><br/>' +
					'During his career, John has also served on advisory boards for commercial printing, graphic design and manufacturing interests.' +
                    
                    '</div>' ).show();}
               }
               if (picTitle == '6'){
                 if (settings.imageArray[settings.activeImage][1]) {
                    $('#lightbox-image-details-caption').html('<div style="font-size:14px;color:#b2d234;font-family:Verdana;font-style:italic;font-weight:bold;margin-top:40px;">Scott Bennett</div>' + '<div style="font-size:14px;color:#444d53;font-family:Verdana;font-weight:bold;">Chief Technology Officer</div><br/>' +
                    '<div style="font-size:10px;color:444d53;font-family:Verdana;">Scott is responsible for development of company infrastructure and production capabilities. He is also responsible ' +
                    'for quality assurance and oversees industry certifications for IPS.<br/><br/>' +
                    'Bennett joined IPS in 2004 as director of account services and was responsible for project management, inventory ' +
                    'control and client services. In 2006, he was promoted to vice president of business operations where he focused ' +
                    'attention on data programming and automation.<br/><br/>' +
                    'He played a key role in enabling IPS to attain secure status with American Express, MasterCard and VISA, while '+
                    'attaining PCI, HIPAA and GLBA certifications.<br/><br/>' +
                    'Prior to joining IPS, Bennett spent nearly two decades in the telecommunications industry in a variety of capacities, '+
                    'including infrastructure design and deployment, network architecture and customer service.<br/><br/>' +
                    'He is a graduate of Michigan State University, with a degree in telecommunications.' +
                    '</div>' ).show();}
               }
               if (picTitle == '7'){
                 if (settings.imageArray[settings.activeImage][1]) {
                    $('#lightbox-image-details-caption').html('<div style="font-size:14px;color:#b2d234;font-family:Verdana;font-style:italic;font-weight:bold;margin-top:40px;">Christopher Molke</div>' + '<div style="font-size:14px;color:#444d53;font-family:Verdana;font-weight:bold;">Vice President of Business Development</div><br/>' +
                    '<div style="font-size:10px;color:444d53;font-family:Verdana;">Christopher Molke is the vice president of business development for Integrated Printing Solutions (IPS).  In this capacity, he is responsible for strategic and tactical business development decisions for IPS.<br /><br />'+
                    'Prior to joining IPS in 2010, Chris founded Alchemy Plastics Inc. in Centennial, CO and was a director of new products for Vancouver-based PMC-Sierra where he successfully rolled-out the company&#39;s first integrated chip for advanced home media routers and gateways.<br /><br />' +
                    'He spent 10 years with AT&T and was heavily involved in the strategy and development of the next-generation Service Delivery Platform and Managed Application Services. Chris also managed turnkey sales regions with more than 120 people and $150 million in revenues, and worked around the world creating unique partnerships with leading software developers and system integrators, as well as chip and equipment manufactures.  ' +
                    '</div>' ).show();}
               }
            
            // If we have a image set, display 'Image X of X'
            if (settings.imageArray.length > 1) {
             //   $('#lightbox-image-details-currentNumber').html(settings.txtImage + ' ' + (settings.activeImage + 1) + ' ' + settings.txtOf + ' ' + settings.imageArray.length ).show();
            }
            //$('#lightbox-container-image-data-box').css({ height: intCurrentHeight });
            //  $('#lightbox-image-details-caption').css({ height: intCurrentHeight });
            $('#lightbox-container-image-data ').css({ height: intCurrentHeight });
        }
        /**
        * Display the button navigations
        *
        */
        function _set_navigation() {
            $('#lightbox-nav').show();

            // Instead to define this configuration in CSS file, we define here. And it´s need to IE. Just.
            $('#lightbox-nav-btnPrev,#lightbox-nav-btnNext').css({ 'background': 'transparent url(' + settings.imageBlank + ') no-repeat' });

            // Show the prev button, if not the first image in set
            if (settings.activeImage != 0) {
                if (settings.fixedNavigation) {
                    $('#lightbox-nav-btnPrev').css({ 'background': 'url(' + settings.imageBtnPrev + ') left 15% no-repeat' })
						.unbind()
						.bind('click', function() {
						    settings.activeImage = settings.activeImage - 1;
						    picTitle=settings.imageArray[settings.activeImage][1];
						    _set_image_to_view();
						    return false;
						});
                } else {
                    // Show the images button for Next buttons
                    $('#lightbox-nav-btnPrev').unbind().hover(function() {
                        $(this).css({ 'background': 'url(' + settings.imageBtnPrev + ') left 15% no-repeat' });
                    }, function() {
                        $(this).css({ 'background': 'transparent url(' + settings.imageBlank + ') no-repeat' });
                    }).show().bind('click', function() {
                        settings.activeImage = settings.activeImage - 1;
                        picTitle=settings.imageArray[settings.activeImage][1];
                        _set_image_to_view();
                        return false;
                    });
                }
            }

            // Show the next button, if not the last image in set
            if (settings.activeImage != (settings.imageArray.length - 1)) {
                if (settings.fixedNavigation) {
                    $('#lightbox-nav-btnNext').css({ 'background': 'url(' + settings.imageBtnNext + ') right 15% no-repeat' })
						.unbind()
						.bind('click', function() {
						    settings.activeImage = settings.activeImage + 1;
						    picTitle=settings.imageArray[settings.activeImage][1];
						    _set_image_to_view();
						    return false;
						});
                } else {
                    // Show the images button for Next buttons
                    $('#lightbox-nav-btnNext').unbind().hover(function() {
                        $(this).css({ 'background': 'url(' + settings.imageBtnNext + ') right 15% no-repeat' });
                    }, function() {
                        $(this).css({ 'background': 'transparent url(' + settings.imageBlank + ') no-repeat' });
                    }).show().bind('click', function() {
                        settings.activeImage = settings.activeImage + 1;
                        picTitle=settings.imageArray[settings.activeImage][1];
                        _set_image_to_view();
                        return false;
                    });
                }
            }
            // Enable keyboard navigation
            _enable_keyboard_navigation();
        }
        /**
        * Enable a support to keyboard navigation
        *
        */
        function _enable_keyboard_navigation() {
            $(document).keydown(function(objEvent) {
                _keyboard_action(objEvent);
            });
        }
        /**
        * Disable the support to keyboard navigation
        *
        */
        function _disable_keyboard_navigation() {
            $(document).unbind();
        }
        /**
        * Perform the keyboard actions
        *
        */
        function _keyboard_action(objEvent) {
            // To ie
            if (objEvent == null) {
                keycode = event.keyCode;
                escapeKey = 27;
                // To Mozilla
            } else {
                keycode = objEvent.keyCode;
                escapeKey = objEvent.DOM_VK_ESCAPE;
            }
            // Get the key in lower case form
            key = String.fromCharCode(keycode).toLowerCase();
            // Verify the keys to close the ligthBox
            if ((key == settings.keyToClose) || (key == 'x') || (keycode == escapeKey)) {
                _finish();
            }
            // Verify the key to show the previous image
            if ((key == settings.keyToPrev) || (keycode == 37)) {
                // If we´re not showing the first image, call the previous
                if (settings.activeImage != 0) {
                    settings.activeImage = settings.activeImage - 1;
                    _set_image_to_view();
                    _disable_keyboard_navigation();
                }
            }
            // Verify the key to show the next image
            if ((key == settings.keyToNext) || (keycode == 39)) {
                // If we´re not showing the last image, call the next
                if (settings.activeImage != (settings.imageArray.length - 1)) {
                    settings.activeImage = settings.activeImage + 1;
                    _set_image_to_view();
                    _disable_keyboard_navigation();
                }
            }
        }
        /**
        * Preload prev and next images being showed
        *
        */
        function _preload_neighbor_images() {
            if ((settings.imageArray.length - 1) > settings.activeImage) {
                objNext = new Image();
                objNext.src = settings.imageArray[settings.activeImage + 1][0];
            }
            if (settings.activeImage > 0) {
                objPrev = new Image();
                objPrev.src = settings.imageArray[settings.activeImage - 1][0];
            }
        }
        /**
        * Remove jQuery lightBox plugin HTML markup
        *
        */
        function _finish() {
            $('#jquery-lightbox').remove();
            $('#jquery-overlay').fadeOut(function() { $('#jquery-overlay').remove(); });
            // Show some elements to avoid conflict with overlay in IE. These elements appear above the overlay.
            $('embed, object, select').css({ 'visibility': 'visible' });
        }
        /**
        / THIRD FUNCTION
        * getPageSize() by quirksmode.com
        *
        * @return Array Return an array with page width, height and window width, height
        */
        function ___getPageSize() {
            var xScroll, yScroll;
            if (window.innerHeight && window.scrollMaxY) {
                xScroll = window.innerWidth + window.scrollMaxX;
                yScroll = window.innerHeight + window.scrollMaxY;
            } else if (document.body.scrollHeight > document.body.offsetHeight) { // all but Explorer Mac
                xScroll = document.body.scrollWidth;
                yScroll = document.body.scrollHeight;
            } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
                xScroll = document.body.offsetWidth;
                yScroll = document.body.offsetHeight;
            }
            var windowWidth, windowHeight;
            if (self.innerHeight) {	// all except Explorer
                if (document.documentElement.clientWidth) {
                    windowWidth = document.documentElement.clientWidth;
                } else {
                    windowWidth = self.innerWidth;
                }
                windowHeight = self.innerHeight;
            } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
                windowWidth = document.documentElement.clientWidth;
                windowHeight = document.documentElement.clientHeight;
            } else if (document.body) { // other Explorers
                windowWidth = document.body.clientWidth;
                windowHeight = document.body.clientHeight;
            }
            // for small pages with total height less then height of the viewport
            if (yScroll < windowHeight) {
                pageHeight = windowHeight;
            } else {
                pageHeight = yScroll;
            }
            // for small pages with total width less then width of the viewport
            if (xScroll < windowWidth) {
                pageWidth = xScroll;
            } else {
                pageWidth = windowWidth;
            }
            arrayPageSize = new Array(pageWidth, pageHeight, windowWidth, windowHeight);
            return arrayPageSize;
        };
        /**
        / THIRD FUNCTION
        * getPageScroll() by quirksmode.com
        *
        * @return Array Return an array with x,y page scroll values.
        */
        function ___getPageScroll() {
            var xScroll, yScroll;
            if (self.pageYOffset) {
                yScroll = self.pageYOffset;
                xScroll = self.pageXOffset;
            } else if (document.documentElement && document.documentElement.scrollTop) {	 // Explorer 6 Strict
                yScroll = document.documentElement.scrollTop;
                xScroll = document.documentElement.scrollLeft;
            } else if (document.body) {// all other Explorers
                yScroll = document.body.scrollTop;
                xScroll = document.body.scrollLeft;
            }
            arrayPageScroll = new Array(xScroll, yScroll);
            return arrayPageScroll;
        };
        /**
        * Stop the code execution from a escified time in milisecond
        *
        */
        function ___pause(ms) {
            var date = new Date();
            curDate = null;
            do { var curDate = new Date(); }
            while (curDate - date < ms);
        };
        // Return the jQuery object for chaining. The unbind method is used to avoid click conflict when the plugin is called more than once
        return this.unbind('click').click(_initialize);
    };
})(jQuery);       // Call and execute the function immediately passing the jQuery object
