/*
 * File: slideshow.js
 * Version: 1.0.0
 * Comments:   
 * Author: Ian Adams, www.picas.co.uk 
 * Copyright(c): 2010 - Ian Adams. All rights reserved.
 */
	


$(document).ready(function() {
	var slideSpeed = 700;
	var slideInterval = 10000;
	var slideWidth = 950;
	var slides = $('.slide');
	var slideCount = slides.length;
	
	var intervalSlide='';
	
	var buttonWidth = 20;
	var buttonMarginRight = 5;

	$(function() {
		
		//Remove all the scrollbars from the slideshow area
		$('#slideshow').css('overflow', 'hidden');
		
		//Set the width of the slider div
		$('#slider').css('width', slideWidth * slideCount);
		
		//REQUIRED for IE. DO NOT REMOVE
		$.moveSlider(slideWidth,slideCount,slideSpeed,1);
		
		//Initiate the slide show interval
	    intervalSlide = $.iniSlideInterval(slideWidth,slideCount,slideSpeed,slideInterval,0);
		
		$.displayButtons(slideCount,slideWidth,slideSpeed,slideInterval,buttonWidth,buttonMarginRight);
		
		//Pause slide routine
		$('#slider').hover(
			function() { clearInterval(intervalSlide); },
			function() { intervalSlide = $.iniSlideInterval(slideWidth,slideCount,slideSpeed,slideInterval,0); }
		);
		
		//Bind the click event to all of the internal span elements
		$('#buttons span').each(function(i) {
			$(this).bind('click', function() {
				//If clicked, clear any outstading intervals
				clearInterval(intervalSlide);
				//Move the slider to the selected location
				$.moveSlider(slideWidth,slideCount,slideSpeed,$(this).text());
				//Kick start the timer/interval for the next slide
				intervalSlide=$.iniSlideInterval(slideWidth,slideCount,slideSpeed,slideInterval,0);
			});
		});
	
	});
	
	$.relatedProductSlider('featured-items');
});

$.iniSlideInterval = function(parSlideWidth,parSlideCount,parSlideSpeed,parSlideInterval,parSlideNumber) {
	return setInterval('$.moveSlider('+parSlideWidth+','+parSlideCount+','+parSlideSpeed+','+parSlideNumber+')', parSlideInterval);
}

$.displayButtons = function(parSlideCount,parSlideWidth,parSlideSpeed,parSlideInterval,parBtnWidth,parBtnMarginRight) {
	var strHTML='<div id="buttons">';

	for (i=1; i<=parSlideCount; i++) {
		strHTML+='<span id="slide-number'+i+'">'+i+'</span>';
	}
	
	strHTML+='<span id="pause-btn">&nbsp;</span>';
	
	//Pause slide routine
	$('#slider').hover(
		function() {
			$('#pause-btn').fadeIn('slow');
		},
		function() {
			$('#pause-btn').fadeOut('slow');
		}
	);
	
	strHTML+='</div>';
	
	$(strHTML).insertAfter('#slider');
	
	//Set the width of the buttons container
	//Add 20 + px for the pause button
	$('#buttons').css('width', ((((parBtnWidth+parBtnMarginRight) * parSlideCount) + parBtnMarginRight) + 20));
	
	//Set the first button to 'selected'
	$('#buttons #slide-number1').css({
		'opacity': '1'
	});
	
	//When hovering over the buttons, change the cursor to a pointer
	$('#buttons span').hover(function() {
		$(this).css('cursor', 'pointer');
	});
//	return false;
}

$.selectedButton = function(parSlideCount,parSlideWidth,parNextPosition)
{
	for(i=0; i<parSlideCount; i++) {
		if ((-(i*parSlideWidth) == parNextPosition)) {
			$('#buttons #slide-number'+(i+1)).css({
				'opacity': '1'
			});
		} else {
			$('#buttons #slide-number'+(i+1)).css({
				'opacity': '0.4'
			});
		}
	}
}

$.moveSlider = function(parSlideWidth,parSlideCount,parSlideSpeed,parSlideNumber) {
	var nextPosition=0;
	
	if (parseInt(parSlideNumber)>0) {
		nextPosition = -((parSlideNumber-1)*parSlideWidth);
	} else {
		nextPosition = $.getCurrentPosition(parSlideWidth,parSlideCount);
	}
	
	$('#slider').animate({
		'marginLeft' : nextPosition
		},
		parSlideSpeed,
		'',
		$.selectedButton(parSlideCount,parSlideWidth,nextPosition)
	);
//	return false;
}

$.getCurrentPosition = function(parSlideWidth,parSlideCount) {
	var currentPosition=parseInt($('#slider').css('marginLeft'));
	var lastPosition=-((parSlideWidth*parSlideCount)-parSlideWidth);
	if (currentPosition>lastPosition) {
		currentPosition=(currentPosition-parSlideWidth);
	} else if (currentPosition<=lastPosition) {
		currentPosition=0;
	}
	return currentPosition;
}

$.relatedProductSlider = function(parType) {
	var slideDisplayed=8;
	var slideWidth=112;
	var slideDiv=$('#wrapper-'+parType+' .slider');
	var slideCount=$('#wrapper-'+parType+' .slider .product-container').length;
	var buttonLeft=$('#wrapper-'+parType+' .left img');
	var buttonRight=$('#wrapper-'+parType+' .right img');
	
	$('#wrapper-'+parType+' .slide-container').css({ height: '209px', overflow: 'hidden' });
	$(buttonLeft).css({ opacity: '0.4', cursor: 'default' });
	
	if (slideCount>slideDisplayed) {
		$(buttonRight).css({ opacity: 1, cursor: 'pointer' });
		$(buttonRight).bind('click', function() {
			$(slideDiv).animate({ marginLeft: -(slideWidth*slideDisplayed)+'px' }, 500 );
			$(buttonRight).css({ opacity: '0.4', cursor: 'default' });
			$(buttonLeft).css({ opacity: 1, cursor: 'pointer' });
		});
	} else {
		$(buttonRight).css({ opacity: '0.4', cursor: 'default' });
	}
	
	$(buttonLeft).bind('click', function() {
		if ($(slideDiv).css('marginLeft')!='0px') {
			$(slideDiv).animate({ marginLeft: '0px' }, 500 );
			$(buttonLeft).css({ opacity: '0.4', cursor: 'default' });
			$(buttonRight).css({ opacity: 1, cursor: 'pointer' });
		}
	});
}
