/**
 * config.content
 * config.window   window
 * config.thumb
 * config.title
 * config.numThumbs
 * config.numThumbsAcross
 * config.width   video/image width
 * config.height  video/image height
 * config.time    
 */
VimeoHome = function(config) {
	var _config = config;
	var _playlist = null;
	//var _content = $(document.getElementById(_config.content));
	var _content;
	var _vimeoThumb = $(document.getElementById(_config.thumb));
	var _container;
	var _vimeoTitle = $(document.getElementById(_config.title));
	var _vimeoPlayer;
	var _iframex;
	var _currIndex = 0;
	var _titlex;

	var windowInit = function() {
		var _window = $(document.createElement('div'));
		_content = $(document.getElementById(_config.content));
		$(_content).prepend(_window);
		_container = $(document.createElement('div'));
		_vimeoPlayer = $(document.createElement('div'));
		$(_window).css('position', 'relative');
		$(_window).css('width', _config.width);
		$(_window).css('height', _config.height);
		$(_container).css('overflow', 'hidden');
		$(_container).css('position', 'absolute');
		$(_container).css('width', _config.width);
		$(_container).css('height', _config.height);
		$(_vimeoPlayer).css('position', 'absolute');
		$(_vimeoPlayer).css('z-index', 1);
		$(_vimeoPlayer).css('top', 0);
		$(_vimeoPlayer).css('left', 0);
		$(_container).append(_vimeoPlayer);
		$(_window).append(_container);
	}
	var playlistCallback = function(playlist) {
		var divx;
		var titlex;
		var pos = 0;

		_playlist = playlist;
		createTitleDiv();
		createSmallThumb();
		$(_titlex).html(_playlist[0].title);
	}
	var loadPlayer = function(urlx) {
		windowInit();
		_iframex = document.createElement('iframe');
		$(_vimeoPlayer).append(_iframex);
		$(_iframex).attr('id', 'player_1');
		$(_iframex).attr('src', urlx);
		$(_iframex).attr('width', _config.width);
		$(_iframex).attr('height', _config.height);
		$(_iframex).attr('frameborder', 0);

		new Froogaloop().init(_iframex);
		_iframex.addEvent('onLoad', playerLoaded);

	}
	var playerInit = function() {
		//debugx('playerInit');
		_iframex.addEvent('onLoad', playerLoaded);
	}
	var playerCallback = function(playerId) {
		//debugx('callback = ' + playerId);
	}
	var playerLoaded = function() {
		_iframex.addEvent('onPlay', playerCallback);
		_iframex.addEvent('onPause', playerCallback);
		_iframex.addEvent('onSeek', playerCallback);
		_iframex.addEvent('onProgress', playerCallback);
		_iframex.api('api_play', null);
		//_iframex.api('api_unload', null);
	}
	var playMovie = function(index) {
		var urlx = 'http://player.vimeo.com/video/' + _playlist[index].id + '?js_api=1&js_swf_id=player_1'
	
		if (! _iframex) {
			$(_vimeoPlayer).css('z-index', 20);
			loadPlayer(urlx);
		} else {
			$(_iframex).attr('src', urlx);
			$(_vimeoPlayer).css('z-index', 20);
			_iframex.api('api_play', null);
		}
	}
	var showTitle = function(index) {
		if (index != _currIndex) {
			//debugx('pushup ' + index + ' ' + _currIndex);
			$(_titlex).html(_playlist[index].title);
			_currIndex = index;
		}
	}
	var createSmallThumb = function() {
		var divx;
		var imgx;
		var anch;
		var clearx;

		for (var i=0;i<_playlist.length;i++) {
			divx = $(document.createElement('div'));
			imgx = $(document.createElement('img'));
			anch = $(document.createElement('a'));
			$(divx).css('float', 'left');
			$(divx).css('margin', 1);
			$(imgx).attr('src', _playlist[i].thumbnail_small);
			$(anch).attr('href', '#');
			$(anch).attr('idx', i);
			$(imgx).css('text-decoration', 'none');
			$(imgx).css('border', '0 none');
			$(imgx).attr('idx', i);
			$(anch).mouseover({index: i},
				function(e) {
					//debugx(e.data.index);
					showTitle(e.data.index);
				}
			);
			$(anch).click({index: i},
				function(e) {
					//debugx(e.data.index);
					playMovie(e.data.index);
				}
			);
			$(anch).append(imgx);
			$(divx).append(anch);
			$(_vimeoThumb).append(divx);
			if ((i + 1) % config.numThumbsAcross == 0) {
				clearx = $(document.createElement('div'));
				$(clearx).css('clear', 'both');
				$(_vimeoThumb).append(clearx);
			}
			if ((i + 1) == config.numThumbs) break;
		}
		clearx = $(document.createElement('div'));
		$(clearx).css('clear', 'both');
		$(_vimeoThumb).append(clearx);
	}
	var createTitleDiv = function() {
		var titleDiv = $(document.createElement('div'));
		var topx = _config.height - 40;

		_titlex = $(document.createElement('div'));
		$(titleDiv).css('width', '100%');
		$(titleDiv).css('height', 40);
		$(_titlex).css('width', '100%');
		$(_titlex).css('color', '#000000');
		$(_titlex).css('text-align', 'center');
		$(_titlex).css('padding-top', 10);
		$(_titlex).css('font-family', 'verdana');
		$(_titlex).css('font-size', 12);
		$(_titlex).html('title');
		$(_vimeoTitle).append(_titlex);
		$(_vimeoTitle).append(titleDiv);
	}
	var loadPlayList = function() {
		jQuery.getJSON("http://vimeo.com/api/v2/jeffcavins/videos.json?callback=?", playlistCallback);
	}
	this.load = function() {
		$(document).ready(function() {
			loadPlayList();
		});
	}
}

debugx = function(text) {
	var db = document.getElementById('debug');
	db.innerHTML = db.innerHTML + ' ' + text;
}

