/**
 * County Heating, JS functionality
 *
 */

var countyheating = {
	
	/**
	 * init()
	 * 
	 * JavaScript initialisation
	 */
	init: function() {
		
		/** initialise the slideshow in the header **/
		slideshow.init();
		
		countyheating.init_sidenavigation();
	}
	
	/**
	 * init_sidenavigation()
	 *
	 * Initialise side navigation
	 */
	,init_sidenavigation: function() {

		$('.side-navigation .parent').click(function() {
			
			$('.side-navigation ul ul:visible').slideUp();
			$(this).blur().parent().find('ul').slideToggle();
			return false;
			
		});

	}
	
};


var slideshow = {
	
	 container_class: '.slideshow'
	,previousButton_class: '.slideshow-previous a'
	,nextButton_class: '.slideshow-next a'
	,images_class: '.slideshow-images'
	
	,transition: 'fade' // fade | slide
	
	,slideshow: true
	,slideshow_time: 7000
	
	,images_width: 0
	,total_images: 0
	,current_image: 1
	
	,init: function() {

		slideshow.images_width = $(slideshow.images_class).width();
		slideshow.total_images = $(slideshow.images_class + ' li').length;
		$(slideshow.images_class + ' ul').width( slideshow.total_images * slideshow.images_width );
		
		slideshow.prepare_images();
		
		slideshow.listenfor_buttons();
		
		slideshow.automatic_slideshow();
		
	}
	
	,prepare_images: function() {
		
		if(slideshow.transition == 'fade') {
			
			$(slideshow.images_class + ' ul li').css({
				 'position': 'absolute'
				,'top': 0
				,'left': 0
			});
			
		}
		
	}
	
	,automatic_slideshow: function() {
		
		if(slideshow.slideshow == true) {
			
			slideshow.timer = setTimeout(function() {
				slideshow.action_show_nextimage();
			}, slideshow.slideshow_time);
			
		}
		
	}
	
	,listenfor_buttons: function() {
		
		$(slideshow.previousButton_class).click(function() {
			slideshow.action_button_clicked( this );
			slideshow.action_show_previousimage();
		});

		$(slideshow.nextButton_class).click(function() {
			slideshow.action_button_clicked( this );
			slideshow.action_show_nextimage();
		});

	}
	
	,action_button_clicked: function(elem) {
		
		$(elem).blur();
		
	}
	
	,action_show_nextimage: function() {
		
		slideshow.current_image++;
		
		if( slideshow.current_image > slideshow.total_images ) {
			slideshow.current_image = slideshow.total_images;
		}

		slideshow.animate('next');
		
	}
	
	,action_show_previousimage: function() {

		slideshow.current_image--;
		
		if( slideshow.current_image < 1 ) {
			slideshow.current_image = 1;
		}
		
		slideshow.animate('previous');
		
	}
	
	,animate: function( direction ) {

		if( slideshow.transition == 'fade' ) {
			
			slideshow.animate_fade(direction);
			
		} else {
		
			var marginLeft = slideshow.current_image * slideshow.images_width - slideshow.images_width;
			marginLeft = '-' + marginLeft + 'px';
	
			$(slideshow.images_class + ' ul').stop().animate({
				marginLeft: marginLeft
			}, 1000, null, function() {
			});

		}

		clearTimeout( slideshow.timer );
		slideshow.automatic_slideshow();

	}
	
	,animate_fade: function(direction) {

		if(direction == 'next') {
			
			$(slideshow.images_class + ' ul li:last').fadeOut('normal', function() {
				
				$(this).prependTo( slideshow.images_class + ' ul' ).show();
				
			});
			
		} else {
			
			$(slideshow.images_class + ' ul li:first')
			.hide()
			.appendTo( slideshow.images_class + ' ul' )
			.fadeIn('normal');

		}
		
	}
	
};


$(document).ready( countyheating.init );
