
//	-------------------------------------
//	JQuery Progressive Loading Slide Show
//	2008-10-25
//	-------------------------------------

//	Function Usage
//	--------------
//	f_ss(string fv_ss_id,int fv_ss_row_cur,json fj_ss_data);
//
//	fv_ss_id = Main Container ID
//	fv_ss_row_cur = Zero Indexed Array Starting Position
//	fj_ss_data = JSON Data Array

//	Default Settings
//	----------------

	var fv_ss_time_pause = 1000; // Pause Between Slides (milliseconds)
	var fv_ss_time_fade = 1500; // Transition Completion Speed (milliseconds)

//	Expected JSON Data Array
//	------------------------
//	({
//		"slides": [
//			{
//				"img": {
//					"src":"absolute or relative url"
//				},
//				"caption": {
//					"txt":"text"
//				},
//				"link": "absolute or relative url" (Optional)
//			}
//		]
//	});

//	HTML Output
//	-----------
//	<div class="ss_slide" id="{ fv_ss_id + fv_ss_row_cur }" onclick="slides[].link">
//		<div class="ss_img"><img src="slides[].img.src" /></div>
//		<div class="ss_caption">slides[].caption.txt</div>
//	</div>

//
//	-------------------------------------
//

function f_ss(fv_ss_id,fv_ss_row_cur,fj_ss_data) {

	if (fj_ss_data.slides.length > 0) {

	fv_ss_row_cur = fv_ss_row_cur;
	fv_ss_id_cur = fv_ss_id+fv_ss_row_cur;
	fv_ss_row_nxt = ((fv_ss_row_cur < fj_ss_data.slides.length-1) ? (fv_ss_row_cur+1) : 0);
	fv_ss_id_nxt = fv_ss_id+fv_ss_row_nxt;

	// Create/Load Current (if not exists)
	if ($("#" + fv_ss_id_cur).length == 0) {
		$("<div/>")
			.addClass("ss_slide")
			.attr("id",fv_ss_id_cur)
			.animate({opacity:1},0)
			.append(
				$("<div/>")
					.addClass("ss_img")
					.html(
						$("<img/>").attr("src",fj_ss_data.slides[fv_ss_row_cur].img.src)
					)
			)
			.append(
				$("<div/>")
					.addClass("ss_caption")
					.html(
						fj_ss_data.slides[fv_ss_row_cur].caption.txt
					)
			)
			.prependTo("#" + fv_ss_id);
	}

	// Create/Load Next {Behind Current} (if not exists)
	if ($("#" + fv_ss_id_nxt).length == 0) {
		$("<div/>")
			.addClass("ss_slide")
			.attr("id",fv_ss_id_nxt)
			.animate({opacity:1},0)
			.append(
				$("<div/>")
					.addClass("ss_img")
					.html(
						$("<img/>").attr("src",fj_ss_data.slides[fv_ss_row_nxt].img.src)
					)
			)
			.append(
				$("<div/>")
					.addClass("ss_caption")
					.html(
						fj_ss_data.slides[fv_ss_row_nxt].caption.txt
					)
			)
			.prependTo("#" + fv_ss_id);
	} else {
		if (fv_ss_row_nxt > 0) {
			$("#" + fv_ss_id_nxt).animate({opacity:1},0);
		}
	}
	
	// Apply Link (if exists)
	if (fj_ss_data.slides[fv_ss_row_cur].link) {
		$("#" + fv_ss_id)
			.css("cursor","pointer")
			.bind('click',function(){
				location.href = fj_ss_data.slides[fv_ss_row_cur].link;
			});
	} else {
		$("#" + fv_ss_id)
			.css("cursor","default")
			.unbind('click');
	}
	
	// Pause
	$("#" + fv_ss_id).animate({opacity:1},fv_ss_time_pause,function(){
		if (fv_ss_row_nxt > 0) {
			// Fade out Current
			$("#" + fv_ss_id_cur).animate({opacity:0},fv_ss_time_fade,function(){
				// Next
				f_ss(fv_ss_id,fv_ss_row_nxt,fj_ss_data);
			});
		} else {
			// Fade In Next
			$("#" + fv_ss_id_nxt).animate({opacity:1},fv_ss_time_fade,function(){
				// Next
				f_ss(fv_ss_id,fv_ss_row_nxt,fj_ss_data);
			});
		}
	});
	
	}
}