Favorites = {

	initialize: function() {
/*
		Sortable.create('favorites-list', {
			handle: 'dragger'
			onComplete: function() {};
		});
*/
		Favorites.initializeAdders();
	},

	/**
	 * Creates ajaxical favoritizers.
	 */
	initializeAdders: function() {
		Element.insert(document.body, '<div id="favorites-login-overlay">&nbsp;</div><div id="favorites-login-message"><p>You must be logged in to add favorites.</p><p><a href="/users/login/">Log In</a></p><img alt="Close" height="18" id="favorites-login-message-close" src="/img/close-icon.png" width="18" /></div>');
		new Effect.Opacity('favorites-login-overlay', { from: 0.7, to: 0.7 });
		var closeOverlay = function() { $('favorites-login-message').hide(); $('favorites-login-overlay').hide(); };
		$('favorites-login-message-close').observe('click', closeOverlay);
		$('favorites-login-overlay').observe('click', closeOverlay).hide();
		$('favorites-login-message').hide();
		document.observe('click', closeOverlay);
		$$('a.add').each(function(el) {
			el.observe('click', function(e) {
				try {
					new Ajax.Request(el.href, {
						onSuccess: function(t) {
							if(t.responseText == 'success') {
								el.addClassName('done');
								// el.update('Added to favorites');
								if(el.hasClassName('lectureDetail')) el.update('Added to favorites');
								else if (el.hasClassName('picks')) el.update('&nbsp;');
								else el.update('Added to favorites');
								AE.trackEvent('video-add-favorite', el.next('a.thumb').href);
								el.href = '#';
							} else if(t.responseText == 'log in') {
								$('favorites-login-message').setStyle({
									left: Event.pointerX(e) + 'px',
									top: Event.pointerY(e) + 'px',
									z_index: 10000
								}).show();

								$('favorites-login-overlay').show();
								var docY = parseInt($(document.body).getHeight());
								if(docY > parseInt($('favorites-login-overlay').getHeight())) {
									$('favorites-login-overlay').setStyle({
										height: docY+'px'
									});
								};

								el.removeClassName('processing');
								if(el.hasClassName('lectureDetail')) el.update('Add to Favorites');
								else if (el.hasClassName('picks')) el.update('&nbsp;');
								else el.update('favorites');
							}
							else window.location = el.href;
						}
					});
					el.addClassName('processing');
					if(el.hasClassName('lectureDetail')) el.update('Adding to Favorites');
					else if (el.hasClassName('picks')) el.update('&nbsp;');
					else el.update('adding to favorites...');
					Event.stop(e);
					return false;
				} catch(e) {};
				return true;
			});
		});

		$$('ul#favorites-list li div.delete a').each(function(el){
			Event.observe(el, 'click', function(e){
				Event.stop(e);
				AE.trackEvent('video-remove-favorite', el.up('li').down('div.video a').href);
				window.location = el.href;
			});
		});
	}

}; document.observe('dom:loaded', Favorites.initialize);