//MH
(function( $ ){
	$.fn.imagescroll = function( options ) {  
		var settings = {
			'numbershown' : '1',
			'autoscroll' : 'false',
			'speed' : '600',
			'callback' : false,
			'wrapAround': false,
			'autoPlay':false
		};
		
		return this.each(function() {        
			if ( options ) { 
				$.extend( settings, options );
			}
			
			function checkVisibility(selected,offset){
				//var selected = this;
				var numbershown = settings.numbershown;
				offset = offset||0;
				
				if( $(selected).find('.image .allimages .imgContainer').length == 0 ){
					$(selected).find('.image .arrow').hide();
					return $(selected);
				}				
				var numberOfImages=($(selected).find('.image .allimages .imgContainer').length);
				var width=$(selected).find('.image .allimages .imgContainer:first').width();
				var maxWidth=numberOfImages*width;
				$(selected).find('.image .allimages').css('width', maxWidth+'px');
				
				var pos=parseInt($(selected).find('.image .allimages').css('margin-left'))+offset;					
				
				if ( settings.wrapAround ){	
					if ( pos>=0 ) {
						pos=-maxWidth+width+width;
						$(selected).find('.image .allimages').css({'marginLeft':pos+'px'});
					}else if ( pos<=-maxWidth+width ){
						pos=-width;
						$(selected).find('.image .allimages').css({'marginLeft':pos+'px'});
					}
				}
				
				if ( pos>=0 ){
					$(selected).find('.image .arrow:first').hide();
				} else {
					$(selected).find('.image .arrow:first').show();
				}
				if ( pos<=-maxWidth+width){
					$(selected).find('.image .arrow:last').hide();
				} else {
					$(selected).find('.image .arrow:last').show();
				}
				//call callback
				if ( typeof(settings.callback)==="function" ){
					currentImage=pos*-1/width +1;
					if ( settings.wrapAround ){					
						numberOfImages-=2;
						currentImage-=1;
					}					
					settings.callback($(selected),currentImage,numberOfImages);
				}
				return $(selected);
			}
			
			var numbershown=settings.numbershown;
			var speed=settings.speed;
			var selected=this;
			if ( $(selected).data('imagescrollLoaded') == true ) { return checkVisibility(selected); }
			
			if ( $(selected).find('.image.container .allimages').length==0 ) {
				//fake innerwrap
				var t =$(selected).children();
				$(selected).append('<div class="image container"><div class="allimages"></div><div class="arrow left"></div><div class="arrow right"></div></div>');
				$(selected).find('.image.container .allimages').append(t);
				$(selected).find('.allimages').children().wrap('<div class="imgContainer"></div>');
			}

			if ( settings.wrapAround ){
				var last=$(selected).find('.allimages').children(':last').clone().addClass('wrapAroundLast');
				var first=$(selected).find('.allimages').children(':first').clone().addClass('wrapAroundFirst');
				$(selected)
					.find('.allimages')
					.append(first)
					.prepend(last)
					.css({'marginLeft':'-'+first.width()+'px'});
			}

		
			$(selected).find('.image .arrow')
			.hover(function(){$(this).addClass("over");},function(){$(this).removeClass("over");})
			.click(function(){
				if ( $(selected).find('.image .allimages:animated').length > 0 ) { return; }
				
				var width=$(selected).find('.image .allimages .imgContainer:first').width();
				var pos=parseInt($(selected).find('.image .allimages').css('margin-left'));
				if ( $(this).hasClass('right') ){
					$(selected).find('.image .allimages').animate({'marginLeft':(pos-width)+'px'}, {duration:speed, complete:function(){checkVisibility(selected)}});
				} else {				
					$(selected).find('.image .allimages').animate({'marginLeft':(pos+width)+'px'}, {duration:speed, complete:function(){checkVisibility(selected)}});
				}				
				if ( $(this).hasClass('over') ) { 
					settings.autoPlay=false; 
					window.clearTimeout($(selected).data('autoPlay'));
				}
				if ( settings.autoPlay ){
					if ( typeof(settings.autoPlay)==='string' && parseInt(settings.autoPlay)=='NaN') {
						settings.autoPlay=$.fx.speeds[settings.autoPlay];
					}else{
						settings.autoPlay=parseInt(settings.autoPlay);
					}
					$(selected).data('autoPlay',window.setTimeout(function(){
							$(selected).find('.image .arrow:last:visible').click();
					},settings.autoPlay));
				}
			});
			
			$(selected).data('imagescrollLoaded',true);		
			checkVisibility(selected);
			if ( settings.autoPlay ){
				if ( typeof(settings.autoPlay)==='string' && parseInt(settings.autoPlay)=='NaN') {
					settings.autoPlay=$.fx.speeds[settings.autoPlay];
				}else{
					settings.autoPlay=parseInt(settings.autoPlay);
				}
				$(selected).data('autoPlay',window.setTimeout(function(){
						$(selected).find('.image .arrow:last:visible').click();
				},settings.autoPlay));
			}
		});
	};
})( jQuery );

