/* jQuery ready state */
$(document).ready(function() {
	HomeController.initialize();
});

/* Namespaced JSON singleton */
var HomeController = (function() {

	var self = {
	
		"initialize": function() {
			/* Setup Flowplayer */
			self.video.attachFlowPlayer();
			
			/* Event listeners */
			$("div#video a.video-thumbnail").live("click",function() {
				self.video.updateVideoPlayer($(this).attr("href"));
				return false;
			});
			
			$("div#video div#left-nav a").live("click",function() {
				self.video.playlistScroll("left");
				return false;
			});
			
			$("div#video div#right-nav a").live("click",function() {
				self.video.playlistScroll("right");
				return false;
			});
		},
		
		"video": {
			"attachFlowPlayer": function() {
			
				/* Flowplayer */
				flowplayer("player", {src: "flash/flowplayer.commercial-3.2.1.swf", wmode: "transparent"}, {
					// product key from your account
					key: "#$fa3e02fa9fbccb3de2c",
					
					plugins: {
						/*controls: null*/
					}
						
				});
			},
			
			"updateVideoPlayer": function(href) {
				
				$("div#video a#player").remove();
				var player = $("<a></a>");
				$(player).attr("id","player");
				$(player).attr("href",href);
				$("div#video").prepend(player);
				
				self.video.attachFlowPlayer();
			},
			
			"playlistCols": function() {
				return $("div#playlist div.column");
			},
			
			"playlistPosition": 1,
			
			"playlistScroll": function(direction) {
				
				var columns = self.video.playlistCols();
				
				if (columns.length > 2) {
					
					switch(direction) {
						case "left":
							if ( self.video.playlistPosition > 1 ) {
								$(columns[self.video.playlistPosition-2]).toggle("fast");
								self.video.playlistPosition--;
							}
							break;
							
						case "right":
							if ( self.video.playlistPosition < columns.length - 1 ) {
								$(columns[self.video.playlistPosition-1]).toggle("fast");
								self.video.playlistPosition++;
							}
							break;
							
						default:
							break;
					}
				}
			}
		
		}
		
	};
	return self;
})();
