$.fn.imageViewer = function(src, options){
	var settings = {
		canvas: "",
		prev: "",
		next: "",
		activeClass: "active"
	};
	if( options ) $.extend(settings, options);

	var $src = $(src); //src ir ul elements ar linkiem uz atteliem
	var $lis = $src.find('li');
	var $as = $src.find('a');
	var $viewer = $(settings.canvas);
	var $prev = $(settings.prev);
	var $next = $(settings.next);
	
	var $img = $('<img style="display:none;position:relative;"/>').appendTo( $viewer );
	var active = 0;
	var last = $as.length;
	
	var w = $viewer.innerWidth();
	var h = $viewer.innerHeight();

	$as.click(function(){
		var $this = $(this);
		active = $as.index($this);
		$img.show().fadeOut('fast', function(){
			var newimg = $this.attr('href');
			$img
			.attr('src', newimg)
			.load(function(){
				$img.css('width', 'auto').css('height', 'auto')
				var iw = $img.width();
				var ih = $img.height();
				if(iw > w || ih > h){
					var scale = Math.max(iw / w, ih / h);
					$img
					.css('width', iw = parseInt(iw / scale) )
					.css('height', ih = parseInt(ih / scale) );
				}
				$img
				.css('margin-left', parseInt((w - iw) / 2) )
				.css('margin-top', parseInt((h - ih) / 2) )
				.hide()
				.fadeIn('fast');
			});
		});  
			
		$lis.removeClass( settings.activeClass );
		$this.closest('li').addClass( settings.activeClass );
		return false;
	});
	
	$as.eq(0).click().click(); //hack for IE
	
	$prev.click(function(){
		$as.eq( (active - 1 + last) % last ).click();
	});
	
	$next.click(function(){
		$as.eq( (active + 1 + last) % last ).click();
	});
	
	return this;
}

