(function(){
	jQuery.fn.imageSlideshow = function ()
	{
		jQuery(this).each(function(n, el)
		{
			var $this = jQuery(el);
			$this.thumbnailContainer = jQuery('<div class="thumbnail-container"><\/div>');
			$this.current = 0;
			$this.totalSlides = 0;

			$this.goTo = function (slide)
			{
				if (slide<0)
				{
					slide = $this.totalSlides -1;
				}
				else if (slide > $this.totalSlides - 1)
				{
					slide = 0;
				}

				if ($this.totalSlides > 3)
				{
					$this.thumbnailContainer.animate({left:-92 * (slide > $this.totalSlides - 3 ? $this.totalSlides - 3 : slide)});
				}

				jQuery('a.active', $this.thumbnailContainer).removeClass('active');
				jQuery('a:eq('+slide+')', $this.thumbnailContainer).addClass('active');

				jQuery('a.preview.visible', $this)
					.hide()
					.removeClass('visible')
					.addClass('hidden');
				jQuery('a.preview:eq('+slide+')', $this)
					.show()
					.removeClass('hidden')
					.addClass('visible');
				$this.current = slide;
				return false;
			};

			$this.totalSlides = jQuery('a', $this)
				.addClass('preview')
				.wrapAll('<div class="slideshow"><\/div>')
				.wrapAll('<div class="slideshow-images"><\/div>')
				.each(function(m, image)
				{
					var $image = jQuery(image);
					if (!$image.hasClass('hidden'))
					{
						$image.addClass('visible');
					}

					var thumb = $image.attr('rel').split('|');
					thumb = thumb.length > 1 ? thumb[1] : thumb[0];
					
					jQuery('<a href="javascript:;"><\/a>')
						.append(
								jQuery('<img alt=""\/>')
									.attr('src', thumb)
							)
						.click(function(){return $this.goTo(m);})
						.addClass(m==0 ? 'active' : '')
						.appendTo($this.thumbnailContainer);
				}).length;

			jQuery('.slideshow', $this)
				.append(
						jQuery('<div class="thumbnails"><\/div>')
							.append(
									jQuery('<div class="thumbnail-images"><\/div>')
										.append($this.thumbnailContainer)
								)
							.append(
									jQuery('<a class="slideshow-previous" href="javascript:;"><!-- Go to the previous slide --><\/a>')
										.click(function(){return $this.goTo($this.current-1);})
								)
							.append(
									jQuery('<a class="slideshow-next" href="javascript:;"><!-- Go to the next slide --><\/a>')
										.click(function(){return $this.goTo($this.current+1);})
								)
					);
		});
	};

	jQuery(document).ready(function()
	{
		jQuery('.float-right.images').imageSlideshow();
	});
})();

(function(){
	jQuery.fn.headerSlideshow = function(){
		jQuery(this).each(function(n, el){
			var $this = jQuery(el);
			var images = jQuery('img', $this);
			if (images.length < 2) {
				return this;
			}

			$this.totalImages = images.length;
			$this.current = 0;
			$this.timer = setInterval(function(){$this.goTo(1);}, 3000);

			$this.goTo = function (direction)
			{
				if ($this.current + direction < 0)
				{
					$this.current = $this.totalImages - 1;
				}
				else if ($this.current + direction >= $this.totalImages)
				{
					$this.current = 0;
				}
				else {
					$this.current += direction;
				}
				
				var currentImage = jQuery('img.visible', $this).css({zIndex:500});
				var nextImage = jQuery('img:eq('+$this.current+')').css({zIndex:400}).addClass('visible').show();
				currentImage.fadeOut('slow').removeClass('visible');
			}

			$this
				.append(
						jQuery('<a href="javascript:;" class="header-slide-previous"><!-- Go to the previous slide --><\/a>')
							.animate({opacity:0.01})
							.click(function(){clearInterval($this.timer);$this.goTo(-1);})
							.mouseover(function(){jQuery(this).animate({opacity:1});})
							.mouseout(function(){jQuery(this).animate({opacity:0.01});})
					)
				.append(
						jQuery('<a href="javascript:;" class="header-slide-next"><!-- Go to the next slide --><\/a>')
							.animate({opacity:0.01})
							.click(function(){clearInterval($this.timer);$this.goTo(1);})
							.mouseover(function(){jQuery(this).animate({opacity:1});})
							.mouseout(function(){jQuery(this).animate({opacity:0.01});})
					)

			images.each(function(m, image){
				var $image = jQuery(image);
				if (m>0) {
					$image
						.removeClass('hidden')
						.hide();
				}
			});
		});
	};

	jQuery(document).ready(function(){
		jQuery('#header_images').headerSlideshow();
	});
})();