var BookmarkList = Class.create();

BookmarkList.prototype = {
	initialize: function(bookmarks) {
		this.addToList(bookmarks);
	},

	addToList: function(bookmarks) {
		temp = Array();
		this.bookmarks = Array();
		temp = bookmarks.split(',');
		for (var i = temp.length - 1; i >= 0; --i) {
			this.bookmarks[temp[i]] = true;
		}
	},

	addBookmark: function(id) {
		Element.hide('a_' + id);
		Element.show('l_' + id);
		var myAjax = new Ajax.Request('/index.php?c=bookmarks&a=add&ajax=1',
			{
				method: 'post',
				postBody: 'm_id=' + id + '&ts=' + new Date().getTime(),
				onComplete: (function(response) { this.successForAddBookmark(response); }).bind(this),
				asynchronous: true
		});
	},

	successForAddBookmark: function(response) {
		var ajax_response = ajax_response_msg(response.responseText);
		if (parseInt(ajax_response) > 0) {
			Element.hide('l_' + ajax_response);
			Element.show('r_' + ajax_response);
			this.bookmarks[ajax_response] = true;
		}
	},

	removeBookmark: function(id) {
		Element.hide('r_' + id);
		Element.show('l_' + id);
		var myAjax = new Ajax.Request('/index.php?c=bookmarks&a=remove&ajax=1',
			{
				method: 'post',
				postBody: 'm_id=' + id + '&ts=' + new Date().getTime(),
				onComplete: (function(response) { this.successForRemoveBookmark(response); }).bind(this),
				asynchronous: true
		});
	},

	successForRemoveBookmark: function(response) {
		var ajax_response = ajax_response_msg(response.responseText);
		if (parseInt(ajax_response) > 0) {
			Element.hide('l_' + ajax_response);
			Element.show('a_' + ajax_response);
			this.bookmarks[ajax_response] = false;
		}
	}
};

var bookmarks = new BookmarkList(bookmarked_ids);
if ($('profile_thumbnails_loader')) {
	Element.hide('profile_thumbnails');
	Element.show('profile_thumbnails_loader');
	if (window.p_bm) {
		bookmarks.addToList(window.p_bm);
	}
}
Event.observe(window, 'load', (function (e) { if ($('profile_thumbnails_loader')) { Element.hide('profile_thumbnails_loader'); Element.show('profile_thumbnails'); } }), false);
