(function( $ ){

   $.fn.thumbgallery = function( options ) {  

    var settings = {
      'max'         : 15,
      'navClass'	: 'thumbnav',
      'navElmClass' : ''
    };
	
	
    return this.each(function(index, container) {        
      if ( options ) { 
        $.extend( settings, options );
      }

      var items = null;
      var pages = new Array();
      var totalPages = 0;
      var currentPage = $('<div></div>');
      var currentPageIndex = 0;
      var selectedPage = 0;
      items = $(container).find('a').detach();
      
      //Split items into page div's
      items.each(function(iind, item) {
      
      	if(iind < settings.max)
      	{
      		//Set real src on the first visible page
      		var src = $(item).children().first().attr('realsrc');
      		$(item).children().first().attr('src', src);
      		$(item).children().first().removeAttr('realsrc');
      	}
      	if(currentPageIndex >= settings.max)
      	{      		
      		totalPages++;
      		pages.push(currentPage);
      		currentPage = $('<div></div>').data('page', totalPages);
      		currentPageIndex = 0;      		      	
      	}
  		currentPage.append(item);
     	currentPageIndex++;
      });
      totalPages++;
      pages.push(currentPage);
      	
      		      
      currentPage = pages[0];
      $(container).append(currentPage);
      currentPage.fadeIn();
      //Build navigation
      var nav = $('<ul></ul>');
      nav.addClass(settings.navClass);
      for(var i = 0; i < totalPages; i++)
      {
      	var navA = $('<a href="javascript:void();" page="'+i+'">'+(i+1)+'</a>');
      	navA.click(function() {
      		var ind = $(this).attr('page');
      		if(selectedPage == ind) return;
      		selectedPage = ind;
			$(currentPage).fadeOut(200, function() {
				var toshow = pages[ind];
				$(toshow).hide();
				$(currentPage).replaceWith(toshow); 
				currentPage = toshow;
				var images = $(currentPage).find('img');
				images.each(function(iiii, image) {
					if($(image).attr('realsrc') != 'undefined')
					{
						$(image).attr('src', $(image).attr('realsrc'));
					}				
				});				
				$(currentPage).fadeIn();
			});	
			$(this).parent().parent().find('a').removeClass('on');
			$(this).addClass('on');		
      	});
      	if(i == 0) navA.addClass('on');
      	var li = $("<li></li>");
      	li.addClass(settings.navElmClass);
      	li.append(navA);
      	nav.append(li);
      	
      }
      $(container).append(nav);
      
    });

  };
})( jQuery );
