[Помогите] Покупки в галереи

Тема в разделе "OpenCart", создана пользователем hennadyweb, 13 сен 2015.

  1. hennadyweb

    hennadyweb

    Регистрация:
    13 сен 2015
    Сообщения:
    2
    Симпатии:
    0
    Такой вопрос, клиенту нужно реализовать возможность добавлять товар в корзину из галереи. Т.е. зашел в галерею открыл фотку листаешь - листаешь понравилось купил, и дальше листаешь. Не знаю что и думать. Зарание спасибо.
     
  2. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Выведите к фткам id товаров, к которым они относятся и вставте кнопку покупки.
     
  3. hennadyweb

    hennadyweb

    Регистрация:
    13 сен 2015
    Сообщения:
    2
    Симпатии:
    0
    Нашел для себя решение, создать галерею в категории товаров при помощи существующей галереи на основании той которая есть в файле product. Все сделал галерея есть осталось вставить кнопку купить, и тут проблема что я не силен в js. М.б кто подскажет как вставить кнопку купить в код файла jquery.colorbox.js Ниже код зарание благодарю.
    PHP:
    // ColorBox v1.3.19 - jQuery lightbox plugin
    // (c) 2011 Jack Moore - jacklmoore.com
    // License: http://www.opensource.org/licenses/mit-license.php
    (function ($, documentwindow) {
        var
        
    // Default settings object.  
        // See http://jacklmoore.com/colorbox for details.
        
    defaults = {
            
    transition"elastic",
            
    speed300,
            
    widthfalse,
            
    initialWidth"600",
            
    innerWidthfalse,
            
    maxWidthfalse,
            
    heightfalse,
            
    initialHeight"450",
            
    innerHeightfalse,
            
    maxHeightfalse,
            
    scalePhotostrue,
            
    scrollingtrue,
            
    inlinefalse,
            
    htmlfalse,
            
    iframefalse,
            
    fastIframetrue,
            
    photofalse,
            
    hreffalse,
            
    titlefalse,
            
    relfalse,
            
    opacity0.9,
            
    preloadingtrue,
            
    current"image {current} of {total}",
            
    previous"previous",
            
    next"next",
            
    close"close",
            
    openfalse,
            
    returnFocustrue,
            
    repositiontrue,
            
    looptrue,
            
    slideshowfalse,
            
    slideshowAutotrue,
            
    slideshowSpeed2500,
            
    slideshowStart"start slideshow",
            
    slideshowStop"stop slideshow",
            
    onOpenfalse,
            
    onLoadfalse,
            
    onCompletefalse,
            
    onCleanupfalse,
            
    onClosedfalse,
            
    overlayClosetrue,      
            
    escKeytrue,
            
    arrowKeytrue,
            
    topfalse,
            
    bottomfalse,
            
    leftfalse,
            
    rightfalse,
            
    fixedfalse,
            
    dataundefined
        
    },
      
        
    // Abstracting the HTML and event identifiers for easy rebranding
        
    colorbox 'colorbox',
        
    prefix 'cbox',
        
    boxElement prefix 'Element',
      
        
    // Events  
        
    event_open prefix '_open',
        
    event_load prefix '_load',
        
    event_complete prefix '_complete',
        
    event_cleanup prefix '_cleanup',
        
    event_closed prefix '_closed',
        
    event_purge prefix '_purge',
      
        
    // Special Handling for IE
        
    isIE = !$.support.opacity && !$.support.style// IE7 & IE8
        
    isIE6 isIE && !window.XMLHttpRequest// IE6
        
    event_ie6 prefix '_IE6',

        
    // Cached jQuery Object Variables
        
    $overlay,
        
    $box,
        
    $wrap,
        
    $content,
        
    $topBorder,
        
    $leftBorder,
        
    $rightBorder,
        
    $bottomBorder,
        
    $related,
        
    $window,
        
    $loaded,
        
    $loadingBay,
        
    $loadingOverlay,
        
    $title,
        
    $current,
        
    $slideshow,
        
    $next,
        
    $prev,
        
    $close,
        
    $groupControls,
      
        
    // Variables for cached values or use across multiple functions
        
    settings,
        
    interfaceHeight,
        
    interfaceWidth,
        
    loadedHeight,
        
    loadedWidth,
        
    element,
        
    index,
        
    photo,
        
    open,
        
    active,
        
    closing,
        
    loadingTimer,
        
    publicMethod,
        
    div "div",
        
    init;

        
    // ****************
        // HELPER FUNCTIONS
        // ****************
      
        // Convience function for creating new jQuery objects
        
    function $tag(tagidcss) {
            var 
    element document.createElement(tag);

            if (
    id) {
                
    element.id prefix id;
            }

            if (
    css) {
                
    element.style.cssText css;
            }

            return $(
    element);
        }

        
    // Determine the next and previous members in a group.
        
    function getIndex(increment) {
            var
            
    max $related.length,
            
    newIndex = (index increment) % max;
          
            return (
    newIndex 0) ? max newIndex newIndex;
        }

        
    // Convert '%' and 'px' values to integers
        
    function setSize(sizedimension) {
            return 
    Math.round((/%/.test(size) ? ((dimension === 'x' $window.width() : $window.height()) / 100) : 1) * parseInt(size10));
        }
      
        
    // Checks an href to see if it is a photo.
        // There is a force photo option (photo: true) for hrefs that cannot be matched by this regex.
        
    function isImage(url) {
            return 
    settings.photo || /\.(gif|png|jpe?g|bmp|ico)((#|\?).*)?$/i.test(url);
        
    }
      
        
    // Assigns function results to their respective properties
        
    function makeSettings() {
            var 
    i;
            
    settings = $.extend({}, $.data(elementcolorbox));
          
            for (
    i in settings) {
                if ($.
    isFunction(settings) && i.slice(02) !== 'on') { // checks to make sure the function isn't one of the callbacks, they will be handled at the appropriate time.
                   
    settings settings.call(element);
                }
            }
          
            
    settings.rel settings.rel || element.rel || 'nofollow';
            
    settings.href settings.href || $(element).attr('href');
            
    settings.title settings.title || element.title;
          
            if (
    typeof settings.href === "string") {
                
    settings.href = $.trim(settings.href);
            }
        }

        function 
    trigger(eventcallback) {
            $.
    event.trigger(event);
            if (
    callback) {
                
    callback.call(element);
            }
        }

        
    // Slideshow functionality
        
    function slideshow() {
            var
            
    timeOut,
            
    className prefix "Slideshow_",
            
    click "click." prefix,
            
    start,
            
    stop,
            
    clear;
          
            if (
    settings.slideshow && $related[1]) {
                
    start = function () {
                    
    $slideshow
                        
    .text(settings.slideshowStop)
                        .
    unbind(click)
                        .
    bind(event_complete, function () {
                            if (
    settings.loop || $related[index 1]) {
                                
    timeOut setTimeout(publicMethod.nextsettings.slideshowSpeed);
                            }
                        })
                        .
    bind(event_load, function () {
                            
    clearTimeout(timeOut);
                        })
                        .
    one(click ' ' event_cleanupstop);
                    
    $box.removeClass(className "off").addClass(className "on");
                    
    timeOut setTimeout(publicMethod.nextsettings.slideshowSpeed);
                };
              
                
    stop = function () {
                    
    clearTimeout(timeOut);
                    
    $slideshow
                        
    .text(settings.slideshowStart)
                        .
    unbind([event_completeevent_loadevent_cleanupclick].join(' '))
                        .
    one(click, function () {
                            
    publicMethod.next();
                            
    start();
                        });
                    
    $box.removeClass(className "on").addClass(className "off");
                };
              
                if (
    settings.slideshowAuto) {
                    
    start();
                } else {
                    
    stop();
                }
            } else {
                
    $box.removeClass(className "off " className "on");
            }
        }

        function 
    launch(target) {
            if (!
    closing) {
              
                
    element target;
              
                
    makeSettings();
              
                
    $related = $(element);
              
                
    index 0;
              
                if (
    settings.rel !== 'nofollow') {
                    
    $related = $('.' boxElement).filter(function () {
                        var 
    relRelated = $.data(thiscolorbox).rel || this.rel;
                        return (
    relRelated === settings.rel);
                    });
                    
    index $related.index(element);
                  
                    
    // Check direct calls to ColorBox.
                    
    if (index === -1) {
                        
    $related $related.add(element);
                        
    index $related.length 1;
                    }
                }
              
                if (!
    open) {
                    
    open active true// Prevents the page-change action from queuing up if the visitor holds down the left or right keys.
                  
                    
    $box.show();
                  
                    if (
    settings.returnFocus) {
                        $(
    element).blur().one(event_closed, function () {
                            $(
    this).focus();
                        });
                    }
                  
                    
    // +settings.opacity avoids a problem in IE when using non-zero-prefixed-string-values, like '.5'
                    
    $overlay.css({"opacity": +settings.opacity"cursor"settings.overlayClose "pointer" "auto"}).show();
                  
                    
    // Opens inital empty ColorBox prior to content being loaded.
                    
    settings.setSize(settings.initialWidth'x');
                    
    settings.setSize(settings.initialHeight'y');
                    
    publicMethod.position();
                  
                    if (
    isIE6) {
                        
    $window.bind('resize.' event_ie6 ' scroll.' event_ie6, function () {
                            
    $overlay.css({width$window.width(), height$window.height(), top$window.scrollTop(), left$window.scrollLeft()});
                        }).
    trigger('resize.' event_ie6);
                    }
                  
                    
    trigger(event_opensettings.onOpen);
                  
                    
    $groupControls.add($title).hide();
                  
                    
    $close.html(settings.close).show();
                }
              
                
    publicMethod.load(true);
            }
        }

        
    // ColorBox's markup needs to be added to the DOM prior to being called
        // so that the browser will go ahead and load the CSS background images.
        
    function appendHTML() {
            if (!
    $box && document.body) {
                
    init false;

                
    $window = $(window);
                
    $box $tag(div).attr({idcolorbox'class'isIE prefix + (isIE6 'IE6' 'IE') : ''}).hide();
                
    $overlay $tag(div"Overlay"isIE6 'position:absolute' '').hide();
                
    $wrap $tag(div"Wrapper");
                
    $content $tag(div"Content").append(
                    
    $loaded $tag(div"LoadedContent"'width:0; height:0; overflow:hidden'),
                    
    $loadingOverlay $tag(div"LoadingOverlay").add($tag(div"LoadingGraphic")),
                    
    $title $tag(div"Title"),
                    
    $current $tag(div"Current"),
                    
    $next $tag(div"Next"),
                    
    $prev $tag(div"Previous"),
                    
    $slideshow $tag(div"Slideshow").bind(event_openslideshow),
                    
    $close $tag(div"Close")
                );
              
                
    $wrap.append// The 3x3 Grid that makes up ColorBox
                    
    $tag(div).append(
                        
    $tag(div"TopLeft"),
                        
    $topBorder $tag(div"TopCenter"),
                        
    $tag(div"TopRight")
                    ),
                    
    $tag(divfalse'clear:left').append(
                        
    $leftBorder $tag(div"MiddleLeft"),
                        
    $content,
                        
    $rightBorder $tag(div"MiddleRight")
                    ),
                    
    $tag(divfalse'clear:left').append(
                        
    $tag(div"BottomLeft"),
                        
    $bottomBorder $tag(div"BottomCenter"),
                        
    $tag(div"BottomRight")
                    )
                ).
    find('div div').css({'float''left'});
              
                
    $loadingBay $tag(divfalse'position:absolute; width:9999px; visibility:hidden; display:none');
              
                
    $groupControls $next.add($prev).add($current).add($slideshow);

                $(
    document.body).append($overlay$box.append($wrap$loadingBay));
            }
        }

        
    // Add ColorBox's event bindings
        
    function addBindings() {
            if (
    $box) {
                if (!
    init) {
                    
    init true;

                    
    // Cache values needed for size calculations
                    
    interfaceHeight $topBorder.height() + $bottomBorder.height() + $content.outerHeight(true) - $content.height();//Subtraction needed for IE6
                    
    interfaceWidth $leftBorder.width() + $rightBorder.width() + $content.outerWidth(true) - $content.width();
                    
    loadedHeight $loaded.outerHeight(true);
                    
    loadedWidth $loaded.outerWidth(true);
                  
                    
    // Setting padding to remove the need to do size conversions during the animation step.
                    
    $box.css({"padding-bottom"interfaceHeight"padding-right"interfaceWidth});

                    
    // Anonymous functions here keep the public method from being cached, thereby allowing them to be redefined on the fly.
                    
    $next.click(function () {
                        
    publicMethod.next();
                    });
                    
    $prev.click(function () {
                        
    publicMethod.prev();
                    });
                    
    $close.click(function () {
                        
    publicMethod.close();
                    });
                    
    $overlay.click(function () {
                        if (
    settings.overlayClose) {
                            
    publicMethod.close();
                        }
                    });
                  
                    
    // Key Bindings
                    
    $(document).bind('keydown.' prefix, function (e) {
                        var 
    key e.keyCode;
                        if (
    open && settings.escKey && key === 27) {
                            
    e.preventDefault();
                            
    publicMethod.close();
                        }
                        if (
    open && settings.arrowKey && $related[1]) {
                            if (
    key === 37) {
                                
    e.preventDefault();
                                
    $prev.click();
                            } else if (
    key === 39) {
                                
    e.preventDefault();
                                
    $next.click();
                            }
                        }
                    });

                    $(
    '.' boxElementdocument).live('click', function (e) {
                       
    // ignore non-left-mouse-clicks and clicks modified with ctrl / command, shift, or alt.
                       // See: http://jacklmoore.com/notes/click-events/
                       
    if (!(e.which || e.shiftKey || e.altKey || e.metaKey)) {
                           
    e.preventDefault();
                           
    launch(this);
                       }
                   });
                }
                return 
    true;
            }
            return 
    false;
        }

        
    // Don't do anything if ColorBox already exists.
        
    if ($.colorbox) {
            return;
        }

        
    // Append the HTML when the DOM loads
        
    $(appendHTML);


        
    // ****************
        // PUBLIC FUNCTIONS
        // Usage format: $.fn.colorbox.close();
        // Usage from within an iframe: parent.$.fn.colorbox.close();
        // ****************
      
        
    publicMethod = $.fn[colorbox] = $[colorbox] = function (optionscallback) {
            var 
    $this this;
          
            
    options options || {};
          
            
    appendHTML();

            if (
    addBindings()) {
                if (!
    $this[0]) {
                    if (
    $this.selector) { // if a selector was given and it didn't match any elements, go ahead and exit.
                       
    return $this;
                   }
                   
    // if no selector was given (ie. $.colorbox()), create a temporary element to work with
                    
    $this = $('<a/>');
                    
    options.open true// assume an immediate open
                
    }
              
                if (
    callback) {
                    
    options.onComplete callback;
                }
              
                
    $this.each(function () {
                    $.
    data(thiscolorbox, $.extend({}, $.data(thiscolorbox) || defaultsoptions));
                }).
    addClass(boxElement);
              
               if (($.
    isFunction(options.open) && options.open.call($this)) || options.open) {
                    
    launch($this[0]);
                }
            }
          
            return 
    $this;
        };

        
    publicMethod.position = function (speedloadedCallback) {
            var
            
    top 0,
            
    left 0,
            
    offset $box.offset(),
            
    scrollTop $window.scrollTop(),
            
    scrollLeft $window.scrollLeft();
          
            
    $window.unbind('resize.' prefix);

            
    // remove the modal so that it doesn't influence the document width/height       
            
    $box.css({top: -9e4left: -9e4});

            if (
    settings.fixed && !isIE6) {
                
    offset.top -= scrollTop;
                
    offset.left -= scrollLeft;
                
    $box.css({position'fixed'});
            } else {
                
    top scrollTop;
                
    left scrollLeft;
                
    $box.css({position'absolute'});
            }

            
    // keeps the top and left positions within the browser's viewport.
            
    if (settings.right !== false) {
                
    left += Math.max($window.width() - settings.loadedWidth interfaceWidth setSize(settings.right'x'), 0);
            } else if (
    settings.left !== false) {
                
    left += setSize(settings.left'x');
            } else {
                
    left += Math.round(Math.max($window.width() - settings.loadedWidth interfaceWidth0) / 2);
            }
          
            if (
    settings.bottom !== false) {
                
    top += Math.max($window.height() - settings.loadedHeight interfaceHeight setSize(settings.bottom'y'), 0);
            } else if (
    settings.top !== false) {
                
    top += setSize(settings.top'y');
            } else {
                
    top += Math.round(Math.max($window.height() - settings.loadedHeight interfaceHeight0) / 2);
            }

            
    $box.css({topoffset.topleftoffset.left});

            
    // setting the speed to 0 to reduce the delay between same-sized content.
            
    speed = ($box.width() === settings.loadedWidth && $box.height() === settings.loadedHeight) ? speed || 0;
          
            
    // this gives the wrapper plenty of breathing room so it's floated contents can move around smoothly,
            // but it has to be shrank down around the size of div#colorbox when it's done.  If not,
            // it can invoke an obscure IE bug when using iframes.
            
    $wrap[0].style.width $wrap[0].style.height "9999px";
          
            function 
    modalDimensions(that) {
                
    $topBorder[0].style.width $bottomBorder[0].style.width $content[0].style.width that.style.width;
                
    $content[0].style.height $leftBorder[0].style.height $rightBorder[0].style.height that.style.height;
            }
          
            
    $box.dequeue().animate({widthsettings.loadedWidthheightsettings.loadedHeighttoptopleftleft}, {
                
    durationspeed,
                
    complete: function () {
                    
    modalDimensions(this);
                  
                    
    active false;
                  
                    
    // shrink the wrapper down to exactly the size of colorbox to avoid a bug in IE's iframe implementation.
                    
    $wrap[0].style.width = (settings.loadedWidth interfaceWidth) + "px";
                    
    $wrap[0].style.height = (settings.loadedHeight interfaceHeight) + "px";
                  
                    if (
    settings.reposition) {
                       
    setTimeout(function () {  // small delay before binding onresize due to an IE8 bug.
                           
    $window.bind('resize.' prefixpublicMethod.position);
                       }, 
    1);
                   }

                    if (
    loadedCallback) {
                        
    loadedCallback();
                    }
                },
                
    step: function () {
                    
    modalDimensions(this);
                }
            });
        };

        
    publicMethod.resize = function (options) {
            if (
    open) {
                
    options options || {};
              
                if (
    options.width) {
                    
    settings.setSize(options.width'x') - loadedWidth interfaceWidth;
                }
                if (
    options.innerWidth) {
                    
    settings.setSize(options.innerWidth'x');
                }
                
    $loaded.css({widthsettings.w});
              
                if (
    options.height) {
                    
    settings.setSize(options.height'y') - loadedHeight interfaceHeight;
                }
                if (
    options.innerHeight) {
                    
    settings.setSize(options.innerHeight'y');
                }
                if (!
    options.innerHeight && !options.height) {
                    
    $loaded.css({height"auto"});
                    
    settings.$loaded.height();
                }
                
    $loaded.css({heightsettings.h});
              
                
    publicMethod.position(settings.transition === "none" settings.speed);
            }
        };

        
    publicMethod.prep = function (object) {
            if (!
    open) {
                return;
            }
          
            var 
    callbackspeed settings.transition === "none" settings.speed;
          
            
    $loaded.remove();
            
    $loaded $tag(div'LoadedContent').append(object);
          
            function 
    getWidth() {
                
    settings.settings.|| $loaded.width();
                
    settings.settings.mw && settings.mw settings.settings.mw settings.w;
                return 
    settings.w;
            }
            function 
    getHeight() {
                
    settings.settings.|| $loaded.height();
                
    settings.settings.mh && settings.mh settings.settings.mh settings.h;
                return 
    settings.h;
            }
          
            
    $loaded.hide()
            .
    appendTo($loadingBay.show())// content has to be appended to the DOM for accurate size calculations.
            
    .css({widthgetWidth(), overflowsettings.scrolling 'auto' 'hidden'})
            .
    css({heightgetHeight()})// sets the height independently from the width in case the new width influences the value of height.
            
    .prependTo($content);
          
            
    $loadingBay.hide();
          
            
    // floating the IMG removes the bottom line-height and fixed a problem where IE miscalculates the width of the parent element as 100% of the document width.
            //$(photo).css({'float': 'none', marginLeft: 'auto', marginRight: 'auto'});
          
            
    $(photo).css({'float''none'});
          
            
    // Hides SELECT elements in IE6 because they would otherwise sit on top of the overlay.
            
    if (isIE6) {
                $(
    'select').not($box.find('select')).filter(function () {
                    return 
    this.style.visibility !== 'hidden';
                }).
    css({'visibility''hidden'}).one(event_cleanup, function () {
                    
    this.style.visibility 'inherit';
                });
            }
          
            
    callback = function () {
                var 
    preloaditotal $related.lengthiframeframeBorder 'frameBorder'allowTransparency 'allowTransparency'completesrcimg;
              
                if (!
    open) {
                    return;
                }
              
                function 
    removeFilter() {
                    if (
    isIE) {
                        
    $box[0].style.removeAttribute('filter');
                    }
                }
              
                
    complete = function () {
                    
    clearTimeout(loadingTimer);
                    
    $loadingOverlay.hide();
                    
    trigger(event_completesettings.onComplete);
                };
              
                if (
    isIE) {
                    
    //This fadeIn helps the bicubic resampling to kick-in.
                    
    if (photo) {
                        
    $loaded.fadeIn(100);
                    }
                }
              
                
    $title.html(settings.title).add($loaded).show();
              
                if (
    total 1) { // handle grouping
                    
    if (typeof settings.current === "string") {
                        
    $current.html(settings.current.replace('{current}'index 1).replace('{total}'total)).show();
                    }
                  
                    
    $next[(settings.loop || index total 1) ? "show" "hide"]().html(settings.next);
                    
    $prev[(settings.loop || index) ? "show" "hide"]().html(settings.previous);
                  
                    if (
    settings.slideshow) {
                        
    $slideshow.show();
                    }
                  
                    
    // Preloads images within a rel group
                    
    if (settings.preloading) {
                        
    preload = [
                            
    getIndex(-1),
                            
    getIndex(1)
                        ];
                        while (
    $related[preload.pop()]) {
                            
    src = $.data(icolorbox).href || i.href;
                            if ($.
    isFunction(src)) {
                                
    src src.call(i);
                            }
                            if (
    isImage(src)) {
                                
    img = new Image();
                                
    img.src src;
                            }
                        }
                    }
                } else {
                    
    $groupControls.hide();
                }
              
                if (
    settings.iframe) {
                    
    iframe $tag('iframe')[0];
                  
                    if (
    frameBorder in iframe) {
                        
    iframe[frameBorder] = 0;
                    }
                    if (
    allowTransparency in iframe) {
                        
    iframe[allowTransparency] = "true";
                    }
                    
    // give the iframe a unique name to prevent caching
                    
    iframe.name prefix + (+new Date());
                    if (
    settings.fastIframe) {
                        
    complete();
                    } else {
                        $(
    iframe).one('load'complete);
                    }
                    
    iframe.src settings.href;
                    if (!
    settings.scrolling) {
                        
    iframe.scrolling "no";
                    }
                    $(
    iframe).addClass(prefix 'Iframe').appendTo($loaded).one(event_purge, function () {
                        
    iframe.src "//about:blank";
                    });
                } else {
                    
    complete();
                }
              
                if (
    settings.transition === 'fade') {
                    
    $box.fadeTo(speed1removeFilter);
                } else {
                    
    removeFilter();
                }
            };
          
            if (
    settings.transition === 'fade') {
                
    $box.fadeTo(speed0, function () {
                    
    publicMethod.position(0callback);
                });
            } else {
                
    publicMethod.position(speedcallback);
            }
        };

        
    publicMethod.load = function (launched) {
            var 
    hrefsetResizeprep publicMethod.prep;
          
            
    active true;
          
            
    photo false;
          
            
    element $related[index];
          
            if (!
    launched) {
                
    makeSettings();
            }
          
            
    trigger(event_purge);
          
            
    trigger(event_loadsettings.onLoad);
          
            
    settings.settings.height ?
                    
    setSize(settings.height'y') - loadedHeight interfaceHeight :
                    
    settings.innerHeight && setSize(settings.innerHeight'y');
          
            
    settings.settings.width ?
                    
    setSize(settings.width'x') - loadedWidth interfaceWidth :
                    
    settings.innerWidth && setSize(settings.innerWidth'x');
          
            
    // Sets the minimum dimensions for use in image scaling
            
    settings.mw settings.w;
            
    settings.mh settings.h;
          
            
    // Re-evaluate the minimum width and height based on maxWidth and maxHeight values.
            // If the width or height exceed the maxWidth or maxHeight, use the maximum values instead.
            
    if (settings.maxWidth) {
                
    settings.mw setSize(settings.maxWidth'x') - loadedWidth interfaceWidth;
                
    settings.mw settings.&& settings.settings.mw settings.settings.mw;
            }
            if (
    settings.maxHeight) {
                
    settings.mh setSize(settings.maxHeight'y') - loadedHeight interfaceHeight;
                
    settings.mh settings.&& settings.settings.mh settings.settings.mh;
            }
          
            
    href settings.href;
          
            
    loadingTimer setTimeout(function () {
                
    $loadingOverlay.show();
            }, 
    100);
          
            if (
    settings.inline) {
                
    // Inserts an empty placeholder where inline content is being pulled from.
                // An event is bound to put inline content back when ColorBox closes or loads new content.
                
    $tag(div).hide().insertBefore($(href)[0]).one(event_purge, function () {
                    $(
    this).replaceWith($loaded.children());
                });
                
    prep($(href));
            } else if (
    settings.iframe) {
                
    // IFrame element won't be added to the DOM until it is ready to be displayed,
                // to avoid problems with DOM-ready JS that might be trying to run in that iframe.
                
    prep(" ");
            } else if (
    settings.html) {
                
    prep(settings.html);
            } else if (
    isImage(href)) {
                $(
    photo = new Image())
                .
    addClass(prefix 'Photo')
                .
    error(function () {
                    
    settings.title false;
                    
    prep($tag(div'Error').text('This image could not be loaded'));
                })
                .
    load(function () {
                    var 
    percent;
                    
    photo.onload null//stops animated gifs from firing the onload repeatedly.
                  
                    
    if (settings.scalePhotos) {
                        
    setResize = function () {
                            
    photo.height -= photo.height percent;
                            
    photo.width -= photo.width percent;  
                        };
                        if (
    settings.mw && photo.width settings.mw) {
                            
    percent = (photo.width settings.mw) / photo.width;
                            
    setResize();
                        }
                        if (
    settings.mh && photo.height settings.mh) {
                            
    percent = (photo.height settings.mh) / photo.height;
                            
    setResize();
                        }
                    }
                  
                    if (
    settings.h) {
                        
    photo.style.marginTop Math.max(settings.photo.height0) / 'px';
                    }
                  
                    if (
    $related[1] && (settings.loop || $related[index 1])) {
                        
    photo.style.cursor 'pointer';
                        
    photo.onclick = function () {
                            
    publicMethod.next();
                        };
                    }
                  
                    if (
    isIE) {
                        
    photo.style.msInterpolationMode 'bicubic';
                    }
                  
                    
    setTimeout(function () { // A pause because Chrome will sometimes report a 0 by 0 size otherwise.
                        
    prep(photo);
                    }, 
    1);
                });
              
                
    setTimeout(function () { // A pause because Opera 10.6+ will sometimes not run the onload function otherwise.
                    
    photo.src href;
                }, 
    1);
            } else if (
    href) {
                
    $loadingBay.load(hrefsettings.data, function (datastatusxhr) {
                    
    prep(status === 'error' $tag(div'Error').text('Request unsuccessful: ' xhr.statusText) : $(this).contents());
                });
            }
        };
          
        
    // Navigates to the next page/image in a set.
        
    publicMethod.next = function () {
            if (!
    active && $related[1] && (settings.loop || $related[index 1])) {
                
    index getIndex(1);
                
    publicMethod.load();
            }
        };
      
        
    publicMethod.prev = function () {
            if (!
    active && $related[1] && (settings.loop || index)) {
                
    index getIndex(-1);
                
    publicMethod.load();
            }
        };

        
    // Note: to use this within an iframe use the following format: parent.$.fn.colorbox.close();
        
    publicMethod.close = function () {
            if (
    open && !closing) {
              
                
    closing true;
              
                
    open false;
              
                
    trigger(event_cleanupsettings.onCleanup);
              
                
    $window.unbind('.' prefix ' .' event_ie6);
              
                
    $overlay.fadeTo(2000);
              
                
    $box.stop().fadeTo(3000, function () {
                    
                    
    $box.add($overlay).css({'opacity'1cursor'auto'}).hide();
                  
                    
    trigger(event_purge);
                  
                    
    $loaded.remove();
                  
                    
    setTimeout(function () {
                        
    closing false;
                        
    trigger(event_closedsettings.onClosed);
                    }, 
    1);
                });
            }
        };

        
    // Removes changes ColorBox made to the document, but does not remove the plugin
        // from jQuery.
        
    publicMethod.remove = function () {
            $([]).
    add($box).add($overlay).remove();
            
    $box null;
            $(
    '.' boxElement)
                .
    removeData(colorbox)
                .
    removeClass(boxElement)
                .die();
        };

        
    // A method for fetching the current element ColorBox is referencing.
        // returns a jQuery object.
        
    publicMethod.element = function () {
            return $(
    element);
        };

        
    publicMethod.settings defaults;

    }(
    jQuerydocumentthis));