﻿/*
bxGallery v1.1
Plugin developed by: Steven Wanderski
http://bxgalleryplugin.com
http://stevenwanderski.com

Released under the GPL license:
http://www.gnu.org/licenses/gpl.html
*/

(function($) {
    $.fn.extend({ bxGallery: function(options) {
    var defaults = { maxwidth: '', maxheight: '', thumbwidth: 80, thumbcrop: false, croppercent: .35, thumbplacement: 'bottom', thumbcontainer: '', opacity: .7, load_text: '', load_image: 'http://i302.photobucket.com/albums/nn92/wandoledzep/spinner.gif', wrapperclass: 'outer' }
        var options = $.extend(defaults, options); var o = options; var cont = ''; var caption = ''; var $outer = ''; var $orig = this; var tall = 0; var wide = 0; var showing = 0; var i = 0; var k = $orig.find('img').size(); var current; preload_img(); function preload_img() {
            $orig.hide(); if (o.load_text != '') { $orig.before('<div id="loading">' + o.load_text + '</div>'); } else { $orig.before('<div id="loading"><img src="' + o.load_image + '" /></div>'); }
            $orig.parent().find('#loading').css({ 'textAlign': 'center', 'width': o.maxwidth }); $orig.find('img').each(function() { var the_source = $(this).attr('src'); var the_img = new Image(); the_img.onload = function() { preload_check(); }; the_img.src = the_source; });
        }
        function preload_check() { i++; if (i == k) { init(); } }
        function init() { set_layout(); set_main_img(); place_thumbcontainer(); set_thumbs(); }
        function set_layout() { 
            $orig.parent().find('#loading').hide(); 
            //$orig.show(); 
            $orig.wrap('<div class="' + o.wrapperclass + '"></div>'); 
            $outer = $orig.parent(); 
            $orig.find('li').css({ 'position': 'absolute' }); 
        }
        function set_main_img() {
            $orig.find('img').each(function() {
                var $this = $(this); var $imgheight = $this.height(); var $imgwidth = $this.width(); if ($this.attr('title') != '') { caption = $this.attr('title'); $this.parent().append('<div class="caption">' + caption + '</div>'); }
                if (o.maxwidth != '') { if ($this.width() > o.maxwidth) { $this.width(o.maxwidth); $this.height(($imgheight / $imgwidth) * o.maxwidth); } }
                if (o.maxheight != '') { if ($this.height() > o.maxheight) { $this.height(o.maxheight); $this.width(($imgwidth / $imgheight) * o.maxheight); } }
                if ($this.height() + $this.parent().find('.caption').height() > tall) { tall = $this.height() + $this.parent().find('.caption').height(); }
                if ($this.width() > wide) { wide = $this.width(); }
                cont += '<li><img alt="' + $this.attr('alt') + '" src="' + $this.attr('src') + '" /></li>';
            }); $orig.find('li:not(:first)').hide(); $orig.height(tall); $orig.width(wide); $outer.find('.caption').width(wide);
        }
        function place_thumbcontainer() {
            if (o.thumbplacement == 'top') { $outer.prepend('<ul class="thumbs">' + cont + '</ul>'); $outer.find('.thumbs').css({ 'overflow': 'auto' }); } else if (o.thumbplacement == 'left') { $outer.prepend('<ul class="thumbs">' + cont + '</ul>'); $orig.css({ 'float': 'left' }); $outer.find('.thumbs').css({ 'float': 'left' }); } else if (o.thumbplacement == 'bottom') { $outer.append('<ul class="thumbs">' + cont + '</ul>'); } else if (o.thumbplacement == 'right') { $outer.append('<ul class="thumbs">' + cont + '</ul>'); $orig.css({ 'float': 'left' }); $outer.find('.thumbs').css({ 'float': 'left' }); }
            $outer.append('<div style="clear:both"></div>'); if (o.thumbcontainer != '') { $outer.find('.thumbs').width(o.thumbcontainer); } 
        }
        function set_thumbs() {
           
            $outer.find('.thumbs li').each(function() {
                var $this = $(this);
                var $img = $this.find('img'); 
                var $imgwidth = $img.width(); 
                var $imgheight = $img.height(); 
                if (o.thumbcrop) { 
                    $img.width($imgwidth * o.croppercent); $img.height(($imgheight / $imgwidth) * $img.width()); $this.css({ 'float': 'left', 'width': o.thumbwidth, 'height': o.thumbwidth, 'overflow': 'hidden', 'cursor': 'pointer' }); } else { $img.width(o.thumbwidth); $img.height(($imgheight / $imgwidth) * o.thumbwidth); $this.css({ 'float': 'left', 'cursor': 'pointer' }); $this.height($img.height()); 
                }
                $this.click(function() { 
                            var x = $outer.find('.thumbs li').index($this); 
                            if (showing != x) { 
                                $orig.find('li').fadeOut(); 
                                $orig.find('li').eq(x).fadeIn(); 
                                showing = x; } 
                               
                               var urlImagen = $this.find('img').attr("src");
                               var alt = $this.find('img').attr("alt");
                               $("#ImagenDetalle").attr("src",urlImagen);
                               $(".ref").text(alt);
                           
                           });
            });
           var $thumb = $outer.find('.thumbs li'); $thumb.eq(0).addClass('on'); $thumb.not('.on').fadeTo(0, o.opacity); $thumb.click(function() { var t = $(this); var i = $thumb.index(this); if (current != i) { $thumb.removeClass('on'); t.addClass('on'); $thumb.not('.on').fadeTo(200, o.opacity); current = i; } }).hover(function() { $(this).stop().fadeTo(200, 1); }, function() { $(this).not('.on').stop().fadeTo(200, o.opacity); });
        } 
    } 
    });
})(jQuery);

