// 
//  jQuery Slideshow
//  Used for proprietary GC slideshow features
//  
//  @author: Justin Jones (justin@jstnjns.com) http://www.jstnjns.com/
//  @version: 1.0
//  @copyright: 2010 Justin Jones. All rights reserved.
//  @requires: jQuery
//  @requires: jQuery Slider
//  @requires: jQuery Player
//

(function($) {
	$.fn.slideshow = function(section, options) {
		
		return $(this).each(function() {
			
			var $this = $(this).empty(),
				
				settings = {};
				
			$.extend(true, settings, $.fn.slideshow.defaults, options);
			if(typeof section == 'undefined') section == 'SITE';
			
			$.ajax({
				url			: '/api/json/features/' + section + '_SLIDESHOW',
				dataType	: 'json',
				success		: function(data) {

					$.each(data, function(i, slide) {
						
						var $frame = $(settings.wrapFrameIn),
							$section = $(settings.wrapFrameSectionIn),
							$header = $(settings.wrapFrameHeaderIn)
										.append($(settings.wrapFrameTitleIn)
											.text(slide.title)),
							$content = $(settings.wrapFrameContentIn);

						if(slide.source.match(/(flv|mp4|m4v)$/i)) {
							
							// Video
							var $video = $('<div id="video_player-' + i + '">').player(slide.source, settings.player);

							$content.append($video);
							
						} else if(slide.source.match(/(jpe?g|png|gif)$/i)) {
							
							// Image
							if(slide.url) {
							
								var $image = $('<a />')
												.attr('href', slide.url)
												.append('<img src="' + slide.source + '"/>');
							
							} else {
								
								var $image = $('<img src="' + slide.source + '"/>');
							
							}
							
							$content.append($image);
							
						} else {
							
							// Custom
							$content.append(slide.source);
							
						}
						
						$this.append(
							$frame.append(
								$section.append($header, $content)
							)
						);
						
					});
					
					$this.slider(settings.slider);
				}
			});
			
		});
		
	};
	
	$.fn.slideshow.defaults = {
		wrapFrameIn			: '<div class="item frame" />',
		wrapFrameSectionIn	: '<div class="section" />',
		wrapFrameTitleIn	: '<h3 class="title" />',
		wrapFrameHeaderIn	: '<div class="header" />',
		wrapFrameContentIn	: '<div class="content" />',
		
		slider				: {},
		player				: {},
		
		callback			: function() {}
	};
	
})(jQuery);
