YAHOO.namespace("youporn.favorites");

YAHOO.youporn.favorites = function () {
	var status_el;
	var button_el;
	var oFavButton;
	var status_el_avail = false;
	var cur_video_id;
	
	function getToken() {
		return Math.round(Math.random() * 65535);
	}
	
	function setStatus(text) {
		if (status_el_avail) {
			status_el.get('element').innerHTML = '<span class="favoritesStatusText">' + text + '</span>';
		}
	}
	
	function makeRequest() {
		var callback = {
			success: function(o) { 
				YAHOO.log(o.responseText); 
				setStatus('Saved.');
			},

			failure: function(o) {
				if (o.status == 0) {
					setStatus('Communication failure. Please report this problem. (FATAL)');
				} else if (o.status == -1) {
					setStatus('Request timed out. Please try again later.');
				} else {
					setStatus('Request error. Please report this problem. (' + o.status + ')');
				}
				
				//oFavButton.set('disabled', false);
			},

			timeout: 5000
		};
		var transaction = YAHOO.util.Connect.asyncRequest('POST', '/favorites/add', callback, 'video_id=' + cur_video_id + '&token=' + getToken()); 
	}
	
	function onFavButtonClick(e) {
		if (YAHOO.youporn.global.isLoggedIn()) {
			setStatus('Saving...');
			//oFavButton.set('disabled', true);
			makeRequest();
		} else {
			alert('You are not logged in. Please login to use this feature.');
		}
	}
	
	return {
		init: function (video_id) {
			status_el = new YAHOO.util.Element('favoritesStatus');
			status_el.on('contentReady', function() { 
				status_el_avail = true; 
			});
			
			button_el = new YAHOO.util.Element('favoritesButton');
			button_el.on('click', onFavButtonClick);
			button_el.on('contentReady', function() {
				button_el.removeClass('hidden');
			});
			
			// var config = {
			//	label: '<span class="favouritesbutton">Save to Favorites</span>',
			//	id: "favouritesbutton",
			//	container: "favourites"
			//};
			//oFavButton = new YAHOO.widget.Button(config);
			//oFavButton.on("click", onFavButtonClick);
			
			cur_video_id = video_id;
		},
		
		remove: function (video_id) {
			if (confirm('Are you sure you want to remove this video from your favorites?')) {
				document.remove_form.video_id.value = video_id;
				document.remove_form.previous.value = location.href;
				document.remove_form.submit();			
			}
		},
		
		tooltip: function () {
			var contextElements = YAHOO.util.Dom.getElementsByClassName('remove_button', 'img', 'videoscontainer');
			var tt = new YAHOO.widget.Tooltip("tt", { context:contextElements, text:"Remove from favorites" });
		}
	};
}();

//YAHOO.youporn.favourites.init();
