// JavaScript Document


 //<![CDATA[
 

	//setup scrolling
	$(function() {
		
		//setup listener
		$('.preview .thumbnail a').click(showAsset);
		
		//if the first asset is a video, show the video player
				addVideo('default_vid', 
			'/media/Projects/1/lexus_feature_v4.f4v', 
			'/cache/Projects/1/715_405c/lexus_posterframe.jpg');
				
		//add click advancement to images
		$('#current_preview img').live('click', function() { 
			
			//get next thumb
			var next_thumb = getNextThumbLink();
			
			//trigger click on it
			next_thumb.trigger('click');
			
		});
		
	});
	
	//get the next thumbnail link in the asset list
	function getNextThumbLink() {
		
		//find current
		var now_thumb = $('.preview .thumbnail .current').parent();
		var count = now_thumb.parent().children('.thumbnail').length;
		
		//get next thumb
		var index = now_thumb.parent().children('.thumbnail').index(now_thumb)+1;
		if (index >= count) index = 0;
		var next_thumb = now_thumb.parent().children().eq(index).find('a');
		return next_thumb;
	}

	//show a new asset
	function showAsset(e) {

		//stop click
		e.preventDefault();
		
		//identify parts
		var old_thumb = $('.thumbnail .current');
		var new_thumb = $(e.currentTarget);
		var old_asset_url = old_thumb.attr('href');
		var new_asset_url = new_thumb.attr('href');
		if (!showAsset.old_asset) showAsset.old_asset = $('#current_preview *');
		var old_asset = showAsset.old_asset;
		
		//determine file type
		var ext = new_asset_url.substr(new_asset_url.lastIndexOf('.')+1);
		if (ext == 'jpg' || ext == 'jpeg' || ext == 'gif' || ext == 'png') var type = 'image';
		else var type = 'movie';
		
		//no double click
		if (old_asset_url == new_asset_url) return;

		//toggle current
		old_thumb.removeClass('current');
		new_thumb.addClass('current');
		
		//show loader
		var loader = new_thumb.find('.loader');
		loader.fadeIn();
		
		//transition
		var transition = function() {
			var span = 500;
			new_asset.animate({opacity:1}, span, null, function() { old_asset.remove(); });
			$("#current_preview").animate({height:new_asset.height()}, span);
			showAsset.old_asset = new_asset;
			loader.stop();
			loader.fadeOut();
		}

		//image asset
		if (type == 'image') {
			$("#current_preview").append('<img src="'+new_asset_url+'" alt="" />');
			var new_asset = $('#current_preview img:last');
			new_asset.css({opacity:0, position:'absolute', top: 0, left: 0});
			new_asset.load(transition);
			
		//movie asset
		} else if (type == 'movie') {
			var id = 'id'+Math.floor(Math.random()*1000);
			$("#current_preview").append('<div class="asset_movie"><div id="'+id+'">Need flash player</div></div>');
			var poster = new_thumb.find('img').attr('src').replace('75_42c','715_405c');
			addVideo(id, new_asset_url, poster);
			var new_asset = $('#current_preview div:last');
			new_asset.css({opacity:0, position:'absolute'});	
			transition();
		}
	}
	
	//replace the div with the player
	function addVideo(id, url, poster) {
		var flashvars = {
			file : url,
			//image: poster, // disabled because of the flickr it calls.  Once live review this
			autostart : true,
			controlbar : 'none',
			skin : '/swf/player_skin.swf',
			id : id,
			icons: false,
			abouttext : 'BKWLD',
			aboutlink: 'http://bkwld.com',
			stretching : 'fill' //uniform,fill,exactfit,none,
		};                                                                                                          
		var params = { menu: 'false'};
		swfobject.embedSWF("/swf/player.swf?menu=false", id, "715", "405", "9.0.0","/swf/expressInstall.swf", flashvars, params);
	}
	
	//whenever a player is initiated, JW calls this
	function playerReady(thePlayer) {
		player = document.getElementById(thePlayer.id);
		addListeners(player);
	}
	
	//add listener to a video
	function addListeners(player) {
		if (player) player.addModelListener("STATE", "stateListener");
		else setTimeout(function() { addListeners(player) },100);
	}
	
	//show state
	function stateListener(msg) {
		if (msg.newstate == 'COMPLETED') {
			var next_thumb = getNextThumbLink();
			next_thumb.trigger('click');
		}
	}

	    //]]>