
(function() {
	
	var defaults = {
			
			
	};
	
	$.extend($.fn, {
		
		scroller: function( overrides ) {
			
			var options = {
				btnText: '&bull;',
				btnUlClass: 'buttons',
				currentBtnClass: 'current'
			};
			$.extend( options, overrides );
			
			// for each element selected
			$(this).each( function() {
				
				var wrapper = $(this);
				var items = wrapper.children();
				
				var clipperWidth = wrapper.width();
				
				var itemWidth = items.outerWidth();
				itemWidth += parseInt(items.css('margin-left').replace('px'));
				itemWidth += parseInt(items.css('margin-right').replace('px'));
				
				var itemHeight = items.outerHeight();
				itemHeight += parseInt(items.css('margin-top').replace('px'));
				itemHeight += parseInt(items.css('margin-bottom').replace('px'));
				
				wrapper.width(itemWidth*items.length);
				
				// create clipper
				var clipper = $('<div/>')
						.css('width',clipperWidth+'px')
						.css('height',itemHeight+'px')
						.css('overflow','hidden')
						.css('position','relative');
				clipper = wrapper.wrap( clipper ).parents('div:first');
				wrapper.css('position','absolute')
						.css('top',0)
						.css('left',0);
				
				// calculate total segments
				var segments = Math.ceil((itemWidth*items.length)/clipperWidth);
				
				// create links
				var btnsUl = $('<ul/>');
				btnsUl.addClass(options.btnUlClass);
				clipper.after( btnsUl );
				
				var btns = [];
				
				for( var i = 0; i < segments; i++ ) {
					
					var li = $('<li/>');
					var a = $('<a/>');
					a.attr('href','#');
					if( typeof(options.btnText) == 'function' )
						a.html( options.btnText( i ) );
					else
						a.html( options.btnText );
					li.appendTo( btnsUl );
					a.appendTo( li );
					
					a.bind( 'click', { index: i }, function(e) {
						wrapper.animate({
							left: -(clipperWidth*e.data.index)
						});
						$('a.' + options.currentBtnClass,btnsUl).removeClass(options.currentBtnClass);
						$(this).addClass(options.currentBtnClass);
						e.preventDefault();
					});
					
				}
				
				$('a:first',btnsUl).addClass(options.currentBtnClass);
				
			});
			
		}
	
	});
	
	$('.galleryWrapper, .galleryWrapper02').each( function() { 
		
		var wrapper = $(this);
		var links = $('.stripNavigation a,.stripNavigation02 a',wrapper);
		var imageStrip = $('.imageStrip,.imageStrip02',wrapper)
			.css('position','relative');
		var blocks = imageStrip.children();
		var slider = $('<div></div>').css('position','absolute').width(((imageStrip.width())*blocks.length)+'px');
		slider = blocks.wrapAll( slider ).parents('div:first');
		
		links.first().addClass('active');
		
		var index = 0;
		var currentIndex = 0;
		var interval = null;
		
		links.each( function() {
			var link = $(this).bind('change',{index:index}, function(e) {
				
				slider.animate({
					left: -(imageStrip.width() * e.data.index)
				});
				links.removeClass('active');
				$(this).addClass('active');
				e.preventDefault();
			})
			.click( function(e) {
				$(this).trigger('change');
				clearInterval( interval );
				interval = null;
				e.preventDefault();
			});
			index++;
		});
	
	});
	
})();
