(function($){

// Creating the sweetPages jQuery plugin:
$.fn.sweetPages = function(opts){
	
	// If no options were passed, create an empty opts object
	if(!opts) opts = {};
	
	var resultsPerPage = opts.perPage || 3;
	
	
	// The plugin works best for unordered lists, althugh ols would do just as well:
	var ul = this;
	var li = ul.find('li');
	var displaywidth = '192px' // SRA: Set width manually, line was:  ul.width();
	
	li.each(function(){
		// Calculating the height of each li element, and storing it with the data method:
		var el = $(this);
		el.data('height',el.outerHeight(true));
	});
	
	// Calculating the total number of pages:
	var pagesNumber = Math.ceil(li.length/resultsPerPage);
	
	// If the pages are less than two, do nothing:
	if(pagesNumber<2) return this;

	// Creating the controls div:
	var swControls = $('<div class="swControls">');
	
	for(var i=0;i<pagesNumber;i++)
	{
		// Slice a portion of the lis, and wrap it in a swPage div:
		li.slice(i*resultsPerPage,(i+1)*resultsPerPage).wrapAll('<div class="swPage" />');
		
		// Adding a link to the swControls div:
		swControls.append('<a href="" class="swShowPage"><span>'+(i+1)+'</span></a>');
	}

	ul.append(swControls);
	
	var maxHeight = 0;
	var totalWidth = 0;
	
	var swPage = ul.find('.swPage');
	swPage.each(function(){
		
		// Looping through all the newly created pages:
		
		var elem = $(this);

		var tmpHeight = 0;
		elem.find('li').each(function(){tmpHeight+=$(this).data('height');});

		if(tmpHeight>maxHeight)
			maxHeight = tmpHeight;

		totalWidth+=elem.outerWidth();
		
		elem.css('float','left').width(displaywidth);
	});
	
	swPage.wrapAll('<div class="swSlider" />');
	
	// Setting the height of the ul to the height of the tallest page:
	ul.height(maxHeight).width(displaywidth);
	
	var swSlider = ul.find('.swSlider');
	swSlider.append('<div class="clear" />').width(totalWidth);

	var hyperLinks = ul.find('a.swShowPage');
	
	hyperLinks.click(function(e){
		
		// If one of the control links is clicked, slide the swSlider div 
		// (which contains all the pages) and mark it as active:

		$(this).addClass('active').siblings().removeClass('active');
		
		swSlider.stop().animate({'margin-left':-(parseInt($(this).text())-1)*ul.width()},'medium');
        clearInterval(AutoAdvanceTimer);
		e.preventDefault();
	});
	
	// Mark the first link as active the first time this code runs:
	hyperLinks.eq(0).addClass('active');
	
	// Center the control div:
	swControls.css({
		//'left':'50%',
		//'margin-left':-swControls.width()/2
	});
	
	return this;
	
}})(jQuery);
 // A method for returning a randomized array:  
     Array.prototype.shuffle = function(deep){  
         var i = this.length, j, t;  
         while(i) {  
             j = Math.floor((i--) * Math.random());  
             t = deep && typeof this[i].shuffle!=='undefined' ? this[i].shuffle(deep) : this[i];  
             this[i] = this[j];  
             this[j] = t;  
         }  
         return this;  
     };  

var AutoAdvanceTimer

$(document).ready(function(){
	/* The following code is executed once the DOM is loaded */

	// randomize the order of the LI tags in the list
	var holder = $('#holder');
	var LI = $('li',holder).detach();
    var numItems = LI.length;
    
    while(LI.length>0) {  
        var j = Math.floor((LI.length) * Math.random());  
        var item = LI.eq(j);
        LI = LI.not(item[0]);
        item.appendTo(holder);  
    }  
         
	if( numItems>3) {
    	
    	// Calling the jQuery plugin and splitting the
    	// #holder UL into pages of 3 LIs each:
    	holder.sweetPages({perPage:3});
    	
    	var hyperLinks = holder.find('a.swShowPage');
    	var counter = 0; 
     
        function autoClick() { 
            hyperLinks
                .filter(function (index) { return index == counter % hyperLinks.length; }) // figure out correct link to click
                .click(); // and click it 
                // click will clear the interval
                AutoAdvanceTimer = setInterval(function () { autoClick(); }, 4 * 1000);  
            counter++; 
        }; // function to loop through divs and show correct div 
     
        //showDiv(); // show first div     
     
        
    	// The default behaviour of the plugin is to insert the 
    	// page links in the ul, but we need them in the main container:
    
    	var controls = $('.swControls').detach();
    	controls.appendTo('#paginator');
    	
    	AutoAdvanceTimer = setInterval(function () { autoClick(); }, 4 * 1000);  
	}
	
});

