
(function($){
$.fn.slideselect = function (options) {

	var opt = {
		prevButtonId: 'slideselect_prev',
		nextButtonId: 'slideselect_next',
		visibleItems: 6,
		itemWidth: 73,
		animSpeed: 250
	};

	if (options) $.extend(opt, options);

	return this.each (function () {

		var self = $(this);
		var slidediv = $('div',self);
		var elements = $('a',self);
		var elementCount = elements.length;

		elements.click(function(e){
			setImg(this);
			e.preventDefault();
		});

		if (elementCount > 0)
			setImg(elements[0]);

		if (elementCount <= opt.visibleItems) {
			$('#'+opt.prevButtonId).hide();
			$('#'+opt.nextButtonId).hide();
            $('div#slideselect').css('margin-left','0px');
			if (elementCount == 1) {
				self.hide();
			}
			return;
		} 
		slidediv.css('width',elementCount*opt.itemWidth);

		// bind events to specified buttons
		$('#'+opt.prevButtonId).click(movePrev);
		$('#'+opt.nextButtonId).click(moveNext);

		// bind mousewheel event to container
		self.mousewheel(function(e, delta){
			if (delta < 0) moveNext();
			if (delta > 0) movePrev();
			return false;
		});

		// Move handling
		var _moveRunning = false;

		function movePrev() {
			if (_moveRunning) return false;
			_moveRunning = true;

			$('a:last',slidediv).prependTo(slidediv);
			slidediv.css('left','-'+opt.itemWidth+'px');
			slidediv.animate({left:'+='+opt.itemWidth+'px'},opt.animSpeed,'swing',function(){_moveRunning = false});

			return false;
		};

		function moveNext() {
			if (_moveRunning) return false;
			_moveRunning = true;

			slidediv.animate({left:'-='+opt.itemWidth+'px'},opt.animSpeed,'swing',function(){
				$('a:first',slidediv).appendTo(slidediv);
				slidediv.css('left',0);
				_moveRunning = false;
			});

			return false;
		};

		function setImg(ele) {
			var img = $(ele).attr('href');
			var cap = $(ele).attr('data-caption');
			$('#slideshow_detail').css('background',"#e9e9e9 url('"+img+"') no-repeat center center");
			$('#slideshow_text').text(cap);
		}

	});
};
})(jQuery);

// Mousewheel plugin
// Fixed Opera scroll direction
(function($){$.event.special.mousewheel={setup:function(){var handler=$.event.special.mousewheel.handler;if($.browser.mozilla)$(this).bind('mousemove.mousewheel',function(event){$.data(this,'mwcursorposdata',{pageX:event.pageX,pageY:event.pageY,clientX:event.clientX,clientY:event.clientY});});if(this.addEventListener)this.addEventListener(($.browser.mozilla?'DOMMouseScroll':'mousewheel'),handler,false);else
this.onmousewheel=handler;},teardown:function(){var handler=$.event.special.mousewheel.handler;$(this).unbind('mousemove.mousewheel');if(this.removeEventListener)this.removeEventListener(($.browser.mozilla?'DOMMouseScroll':'mousewheel'),handler,false);else
this.onmousewheel=function(){};$.removeData(this,'mwcursorposdata');},handler:function(event){var args=Array.prototype.slice.call(arguments,1);event=$.event.fix(event||window.event);$.extend(event,$.data(this,'mwcursorposdata')||{});var delta=0,returnValue=true;if(event.wheelDelta)delta=event.wheelDelta/120;if(event.detail)delta=-event.detail/3;if($.browser.opera)delta=event.wheelDelta;event.data=event.data||{};event.type="mousewheel";args.unshift(delta);args.unshift(event);return $.event.handle.apply(this,args);}};$.fn.extend({mousewheel:function(fn){return fn?this.bind("mousewheel",fn):this.trigger("mousewheel");},unmousewheel:function(fn){return this.unbind("mousewheel",fn);}});})(jQuery);
