(function($) { $.fn.extend({ slider: function(options) { var settings = $.extend({ speed: 500 }, options); return this.each(function() { var slidercontents = $(this).addclass('image-slider-contents'); var slider = $('
').addclass('image-slider').attr('id', slidercontents.attr('id')); var backbutton = $('
').addclass('image-slider-back'); var forwardbutton = $('
').addclass('image-slider-forward'); slidercontents.removeattr('id'); slidercontents.before(slider); slider.append(backbutton); slider.append(slidercontents); slider.append(forwardbutton); var total = $('> div', slidercontents).length; var left = 0; var w; var width; var maxscroll; slider.append($('
').css('display', 'none').addclass('preview').append($('
').addclass('img-large') .append($('
').html(' ').click(function(e) { e.stoppropagation(); e.stopimmediatepropagation(); //display previous image var img = $(this).parent().find('img'); var index = parseint(img.attr('class')); img.removeattr('class'); if (index > 1) { index--; var src = $('.' + index + ' div img').attr('src'); var txt = $('.' + index + ' div a').html(); /* $('.preview').find('.label').html(txt); $('.preview').find('img').addclass('' + (index) + '').css('opacity', '0').attr('src', src).stop(false, true).animate({ opacity: 1 }, 1000);*/ } else $('.preview').find('img').addclass('' + (index) + ''); }).addclass('left').css('opacity', '0.5').hover(function() { $(this).css('opacity', '1') }, function() { $(this).css('opacity', '0.5') })) .append($('
').html(' ').click(function(e) { e.stoppropagation(); e.stopimmediatepropagation(); //display next image var img = $(this).parent().find('img'); var index = parseint(img.attr('class')); img.removeattr('class'); if (index < total) { index++; var src = $('.' + index + ' div img').attr('src'); var txt = $('.' + index + ' div a').html(); $('.preview').find('.label').html(txt); $('.preview').find('img').addclass('' + (index) + '').css('opacity', '0').attr('src', src).stop(false, true).animate({ opacity: 1 }, 1000); } else $('.preview').find('img').addclass('' + (index) + '') }).addclass('right').css('opacity', '0.5').hover(function() { $(this).css('opacity', '1') }, function() { $(this).css('opacity', '0.5') })) .append($(''))).append($('
').addclass('label').css('opacity', '0.8')) .append($('
').addclass('close').click(function(e) { $(this).parent().fadeout("slow"); }))); $(document).click(function(e) { if ($('.preview').css('display') == 'block') $('.preview').fadeout("slow"); }); function initialize() { var tempelements = $('> div', slidercontents); var allelements = new array(); tempelements.each(function(index, el) { allelements.push($('
').addclass('' + (index + 1) + '').addclass('outer').append(el)); }); allelements = $(allelements); $('> div', slidercontents).remove(); var wrapper = $('
').addclass('contents-wrapper'); allelements.each(function(index, el) { wrapper.append($(el)); }); slidercontents.append(wrapper); var w = $('.outer:eq(0)', slidercontents).outerwidth() + parsefloat($('.outer:eq(0)', slidercontents).css('margin-left')) + parsefloat($('.outer:eq(0)', slidercontents).css('margin-right')); var width = (total + 1) * w; var maxscroll = width - $('.image-slider-contents').outerwidth(); wrapper.css({ width: width }); $('> div > div', slidercontents).css('display', ''); $('.outer', slidercontents).each(function(index) { $(this).prepend($('').attr('src', 'images/zoom.png').addclass('zoom') .css({ cursor: 'pointer', 'position': 'absolute', 'float': 'right', right:-10, top: -12, width: 34, height: 32 })); }); $('.outer a').click(function(e) { e.stoppropagation(); e.stopimmediatepropagation(); }); $('.outer').hover(function() { $(this).addclass('active'); }, function() { $(this).removeclass('active'); }).click( function(e) { e.stoppropagation(); e.stopimmediatepropagation(); var cls = $(this).attr('class').split(' ')[0]; var p = $(this).find('div'); var img = p.find('img').attr('src'); var preview = $('.preview'); var l = $('.image-slider').width() / 2 - preview.outerwidth() / 2; var t = (p.offset().top - preview.height()); t -= t / 2; preview.css({ left:302, top: 0 }); var text = p.find('a').html(); preview.find('img').attr('src', img).addclass(cls); preview.find('.label').html(text); preview.fadein("slow"); }); forwardbutton.click(function() { left -= w; if (left + maxscroll >= 0) { $('.contents-wrapper').stop(false, true).animate({ left: '-=' + w }, settings.speed); } else left += w; }); backbutton.click(function() { if (left < 0) { left += w; $('.contents-wrapper').stop(false, true).animate({ left: '+=' + w }, settings.speed); } }); } initialize(); function getdimensions(value) { return value + 'px'; } }); } }); })(jquery);