﻿/**
 * Image gallery
 * Version: 3 Mar 2010
 * Depends on jQuery 1.4.1
 */
(function(){ jQuery.fn.imageGallery = function(config){ config = jQuery.extend({ selected: 0, speed: 400, events: "click", position: "top"
},config); var target = this; var selected = config.selected; var speed = config.speed; var events = config.events; var position = config.position; var current = selected; var items = []; var constructor = function(){ if(position.toLowerCase() == "top") jQuery(target).prepend(jQuery("<div />").addClass("gallery-stage")); else jQuery(target).append(jQuery("<div />").addClass("gallery-stage")); jQuery("div.gallery-stage", target).append(jQuery("<div />").addClass("gallery-image")); jQuery("div.gallery-stage", target).append(jQuery("<div />").addClass("gallery-caps")); jQuery("div.gallery-image", target).prepend(jQuery("<img />").addClass("gallery-this")); jQuery("ul > li", target).map(function(i){ var item = []; item["src"] = jQuery("a", this).attr("href"); item["caps"] = jQuery("a img", this).attr("alt").replace(/\[/gi, "<").replace(/\]/gi, ">"); item["alt"] = item["caps"].replace(/<\/?[^>]+>/gi, ""); items.push(item); jQuery("div.gallery-image", target).prepend(jQuery("<img />").attr("src", item["src"]).hide()); if(i == selected){ jQuery("img.gallery-this", target).attr("src", item["src"]); jQuery("div.gallery-caps", target).text(item["alt"]);}
jQuery("a", this).attr({href:"javascript:void(0);"}); if(events == "mouseover") jQuery(this).mouseover(function(){ changeImage(i);}); else jQuery(this).click(function(){ changeImage(i);}); jQuery(this).addClass("gallery-item"); if(i == selected) jQuery(this).addClass("gallery-item-selected");});}
var changeImage = function(value){ if(current != value){ jQuery("ul > li", target).map(function(i){ jQuery(this).removeClass("gallery-item-selected");}); jQuery("ul > li", target).eq(value).addClass("gallery-item-selected"); jQuery("img.gallery-this", target).hide(); showImage(value); jQuery("img.gallery-this", target).fadeIn(speed); current = value;}
}
var showImage = function(value){ if(items.length < value) value = 0; jQuery("img.gallery-this", target).attr({src:items[value]["src"], alt:items[value]["alt"]}); var imageWidth = jQuery("img.gallery-this", target).width(); var imageHeight = jQuery("img.gallery-this", target).height(); jQuery("div.gallery-image", target).css({"width": imageWidth, "height": imageHeight}); jQuery("div.gallery-caps", target).html(items[value]["caps"]);}
constructor();}
})(jQuery);