
VideoSlide = function(element) {
	this.element = $(element);
	
	this.images = this.element.find('a');
	this.images.remove();
	
	this.playOverlay = $('<img src="images/global/video_overlay.png" class="overlay" />');
	this.element.append(this.playOverlay);
	
	this.left = $('<a class="left" href=""><img src="images/global/slide_left_inactive.gif" /></a>');
	this.left[0].videoSlide = this;
	this.left.click(function() { this.videoSlide.select(this.videoSlide.current-1); return false; });
	this.right = $('<a class="right" href=""><img src="images/global/slide_right_inactive.gif" /></a>');
	this.right[0].videoSlide = this;
	this.right.click(function() { this.videoSlide.select(this.videoSlide.current+1); return false; });
	this.dots = $('<div class="dots"></div>');
	this.dots.append(this.left, this.right);
	
	this.thumbs = $('<div class="thumbs"></div>');
	
	var clear = $('<div class="clear"></div>');
	
	this.element.append(this.thumbs, this.dots, clear);
	
	this.count = 0;
	for(var i = 0; i < this.images.length; i++) {
		this.count++;
		var thumb = $('<div class="thumb"></div>');
		thumb.append(this.images[i]);
		var img = $(this.images[i]).find('img');
		thumb.append($('<div class="caption">'+img.attr('title')+'</div>'));
		this.thumbs.append(thumb);
		var a = $('<a href="" class="dot"><img src="images/global/slide_dot_inactive.gif" /></a>');
		a[0].videoSlideNum = i;
		a[0].videoSlide = this;
		a.click(function() { this.videoSlide.select(this.videoSlideNum); return false; });
		this.dots.append(a);
	}
	
	this.select(0);
}

VideoSlide.prototype = {
	select: function(n) {
		var _this = this;
		if(!$.isReady) {
			$(function() { _this.select(n); });
			return;
		}
		
		n = Math.max(0, Math.min(this.count - 1, n));
		this.current = n;
		
		var thumb = this.thumbs.find('.thumb:eq('+n+')');
		thumb.fadeIn();
		
		var img = thumb.find('img');
		
		if(!img[0].complete && !img[0].isloaded) {
			img.load(function() { this.isloaded = true; _this.select(n) });
			return;
		}
		
		this.thumbs.find('.thumb:not(.thumb:eq('+n+'))').fadeOut();
		this.thumbs.css('height', thumb.innerHeight());
		this.playOverlay.css({ top: img.height() / 2 - 21, left: img.width() / 2 - 21 });
		
		if(this.playOverlay.parent()[0].tagName == 'A')
			this.playOverlay.unwrap();
		this.playOverlay.wrap(thumb.find('a').clone().empty());
		
		this.dots.find('a.dot:eq('+n+') img').attr('src', 'images/global/slide_dot_active.gif');
		this.dots.find('a.dot:not(a.dot:eq('+n+')) img').attr('src', 'images/global/slide_dot_inactive.gif');
		
		this.dots.find('a.left img').attr('src', n == 0 ? 'images/global/slide_left_inactive.gif' : 'images/global/slide_left_active.gif');
		this.dots.find('a.right img').attr('src', n >= this.count-1 ? 'images/global/slide_right_inactive.gif' : 'images/global/slide_right_active.gif');
	}
};