// Function to hide current then show next slide, hiding any others first; nextSlideNum is optional; uses jquery for the effects
function showSlide(nextSlideNum)
{	
	// First, disable control buttons until function has completed
	var anchors = new Array();
	anchors = document.getElementsByTagName('a');
	var n = 1;
	
	for(i = 0; i < anchors.length; i++)
	{
		if(anchors[i].className == 'sliderNavButton')
		{
			if(IE7)
			{	
				document.getElementById('sliderNavButton-' + n).onclick=function(){javascript:void(0);};
			}
			
			else
			{
				document.getElementById('sliderNavButton-' + n).setAttribute('onclick', 'javascript:void(0);');
			}
			n++;
		}
	}
	
	var userClicked = 1;
	
	// Grab all the individual slides as DOM objects, store in array
	arrDivs = document.getElementsByTagName('div');
	var arrSlides = new Array();
	var n = 0;
	
	for(i = 0; i < arrDivs.length; i++)
	{
		if(arrDivs[i].className == 'slide')
		{
			arrSlides[n] = arrDivs[i];
			n++;
		}
	}			
	
	// Determine number of slides
	var numSlides = arrSlides.length;	
	
	// Prepare to handle call without argument - define current + next slide
	if(!nextSlideNum)
	{		
		for(i = 0; i < numSlides; i++)
		{
			if (arrSlides[i].style.display == 'block')
			{
				var curSlideNum = i + 1;
			}
		}
		
		if(curSlideNum > numSlides)
		{
			curSlideNum = 1;
		}		
		
		/*var ctrBtnId = event.srcElement.id;
		
		if(ctrBtnId)
		{
			var explodedId = ctrBtnId.split("-");
			var nextSlideNum = explodedId[1];
		}*/
		
		/*else
		{*/
			var nextSlideNum = curSlideNum + 1;
		
			if(nextSlideNum > numSlides)
			{
				nextSlideNum = 1;
			}
		/*}*/
	}
	
	// Define current + next slide
	else
	{
		for(i = 1; i <= numSlides; i++)
		{			
			if(document.getElementById('slide' + i).style.display == 'block')
			{
				var curSlideNum = i;
			}
		}
		
		if(nextSlideNum > numSlides)
		{
			nextSlideNum = 1;
		}
	}

	// Change ctrl button for current slide to "not selected", fade out the current slide and ensure all other slides are hidden 
	for(i = 1; i <= numSlides; i++)
	{							
		// Set the nav buttons to "not selected"
		document.getElementById('sliderNavButton-' + i).style.background = 'url(images/slider/slider-button.png) center no-repeat';
		
		// Hide any slide except the current, which we will fade out next 
		if(i != curSlideNum)
		{
			//$('#slide' + curSlideNum).dequeue();
			document.getElementById('slide' + i).style.display = 'none';
		}
		
		// Fade out current slide, calling empty function when complete - saves creating a timer
		else
		{	
			$('#slide' + i).fadeOut(800, function(){/* Animation complete */;});
		}		
	}
	
	// Function to restore controls + highlight the selected slide control button. Callback function after fading in
	function restoreCtrl()
	{
		var anchors = new Array();
	
		anchors = document.getElementsByTagName('a');
		
		var n = 1;
		
		for(i = 0; i < anchors.length; i++)
		{
			if(anchors[i].className == 'sliderNavButton')
			{				
				if(IE7)
				{	
					document.getElementById('sliderNavButton-' + n).onclick=function(){showSlide(); clearInterval(intervalId);};
				}
				
				else
				{
					document.getElementById('sliderNavButton-' + n).setAttribute('onclick', 'showSlide(' + n + '); clearInterval(intervalId);');
				}
				n++;
			}
		}
	}
	
	// Highlight selected nav button
	document.getElementById('sliderNavButton-' + nextSlideNum).style.background = 'url(images/slider/slider-button-selected.png) center no-repeat';
	
	// Wait for the time it takes to fade out the current slide, then show requested(next) slide, then restore controls once animation complete
	if (nextSlideNum == curSlideNum)
	{	
		$('#slide' + nextSlideNum).fadeIn(800, function(){restoreCtrl()});
	}
	
	else
	{	
		$('#slide' + nextSlideNum).delay(820).fadeIn(800, function(){restoreCtrl()});
	}
}

// Define userClicked as 
var userClicked = 0;

// Set style property to display none on all slides, which can then be easily changed to overrule css
window.onload = function()
{	
	// Unfortubnately we still have IE7 users, so we need to alter some methods in later functions if IE7.
	IE7 = (navigator.appVersion.indexOf('MSIE 7.')==-1) ? false : true;
	
	var anchors = new Array();
	anchors = document.getElementsByTagName('a');
	var n = 1;
	
	for(i = 0; i < anchors.length; i++)
	{
		if(anchors[i].className == 'sliderNavButton')
		{
			document.getElementById('sliderNavButton-' + n).setAttribute('href', 'javascript:void(0);');
			n++;
		}
	}
	
	// Show first slide
	//showSlide(1); // Uses jquery to fade in slide on page load
	document.getElementById('slide1').style.display='block';// Makes the first slide load as if it were part of regular content, i.e. no fade effect 
	
	var anchors = new Array();
	
	anchors = document.getElementsByTagName('a');
	
	var n = 1;
	
	for(i = 0; i < anchors.length; i++)
	{
		if(anchors[i].className == 'sliderNavButton')
		{				
			if(IE7)
			{	
				document.getElementById('sliderNavButton-' + n).onclick=function(){showSlide(n); clearInterval(intervalId);};
			}
			
			else
			{
				document.getElementById('sliderNavButton-' + n).setAttribute('onclick', 'showSlide(' + n + '); clearInterval(intervalId);');
			}
			n++;
		}
	}
	
	// Cycle between slides with interval in ms
	intervalId = window.setInterval("showSlide()", 6000);
	//setInterval("slideshow(5000)", 5000);
		
}
