// Function returns a random number between 1 and n
function rand(n){return(Math.floor(Math.random()*n+1));}

jQuery(document).ready(function(){
 
  // Get all panels
  var panels = jQuery('#slider .panel');
  
  // Get total count of panels
  var total_items = panels.length;
  
  // Generate numbers for nav
  var navNums = '';
  var i = 1;
  jQuery.each(panels, function(index, object){
	newNum = '<span title="' + jQuery(object).attr('value') + '">' + jQuery(object).attr('value') + '</span>';
	if(i != total_items){newNum = newNum + ' | ';}
	navNums = navNums + newNum;
	i++;
  });
  
  // Insert numbers into nav
  jQuery('#sliderSelections').html(navNums);
  
  // Create getSlide function
  function getSlide(slideNum){
	  // Find number of current panel
	  var current_value = Number(jQuery("#slider [rel='current']").attr('value'));

	  // Update number to new panel
	  var new_value = slideNum;
	  if(new_value > total_items){new_value = 1;}
	  
	  // Assign variables for ease of use
	  var cur_item = jQuery('#panel-' + current_value);
	  var new_item = jQuery('#panel-' + new_value);
	  
	  // Add / Remove rel attributes
	  cur_item.attr('rel', '');
	  new_item.attr('rel', 'current');
	  
	  // Fade in / out
	  cur_item.fadeOut('fast', function(){
		new_item.fadeIn('fast');
	  });
  }
  
  var slideNav = jQuery('#sliderSelections span');
  jQuery.each(slideNav, function(index, object){
	jQuery(object).click(function(){
	  getSlide(jQuery(object).attr('title'));
	});
  });
  
  // Set number for first panel
  var start_value = rand(total_items);
  
  // Hide all panels
  jQuery('#slider .panel').hide();
  
  // Show initial panel
  jQuery('#panel-' + start_value).show();
  
  // Set rel attribute to 'current'
  jQuery('#panel-' + start_value).attr('rel', 'current');
  
  // Move forward
  function moveForward(){
	  // Find number of current panel
	  var current_value = Number(jQuery("#slider [rel='current']").attr('value'));

	  // Update number to new panel
	  var new_value = current_value + 1;
	  if(new_value > total_items){new_value = 1;}
	  
	  // Assign variables for ease of use
	  var cur_item = jQuery('#panel-' + current_value);
	  var new_item = jQuery('#panel-' + new_value);
	  
	  // Add / Remove rel attributes
	  cur_item.attr('rel', '');
	  new_item.attr('rel', 'current');
	  
	  // Fade in / out
	  cur_item.fadeOut('fast', function(){
		new_item.fadeIn('fast');
	  });
  }
  
  // Move backward
  function moveBackward(){	  
	  // Find number of current panel
	  var current_value = Number(jQuery("#slider [rel='current']").attr('value'));
	  
	  // Update number to new panel
	  var new_value = current_value - 1;
	  if(new_value == 0){new_value = total_items;}
	  
	  // Assign variables for ease of use
	  var cur_item = jQuery('#panel-' + current_value);
	  var new_item = jQuery('#panel-' + new_value);
	  
	  // Add / Remove rel attributes
	  cur_item.attr('rel', '');
	  new_item.attr('rel', 'current');
	  
	  // Fade in / out
	  cur_item.fadeOut('fast', function(){
		new_item.fadeIn('fast');
	  });
  }
  
  // Creat click functions for navigational divs
  jQuery('#moveForward').click(function(){
	moveForward();
  });
  jQuery('#moveBackward').click(function(){
	moveBackward();
  });
  
  // If more than one item exists
  if(total_items > 1){
	// Cycle through panels
	setInterval(function(){
	  moveForward();
	}, 6000 );
  }
  else {
	  jQuery('#sliderNav').hide();
  }

});
