function BookmarkManager() {

	var bookmarks = new Array();
	
	this.addBookmark = addBookmark;
	this.removeBookmark = removeBookmark;
	this.drawBookmarkList = drawBookmarkList;
	this.shutdown = shutdown;
	
	var bookmarksContent = null;
	
	load();
	
	function load() {
		if (standardapi) {
			var bookmarksString = standardapi.getUserData("bookmarks");
			if (bookmarksString) {
				bookmarks = bookmarksString.split(",");
			}
		}
	}
	
	function save() {
		if (standardapi) {
			standardapi.setUserData("bookmarks", bookmarks + "");
		}
	}
	
	function shutdown() {
		save();
	}
	
	function addBookmark(bookmark) {
		bookmarks.push(bookmark);
		if (bookmarksContent.popup) {
			bookmarksContent.update(engine.browserwindow[bookmarksContent.id].document);
		}
		else {
			bookmarksContent.update();
		}
	}
	
	function removeBookmark(bookmark) {
		var index = -1;
		for (var i = 0; i < bookmarks.length; i++) {
			if (bookmarks[i] == bookmark) {
				index = i;
				break;
			}
		}
		if (index > -1) {
			bookmarks.splice(index, 1);
			if (bookmarksContent.popup) {
				bookmarksContent.update(engine.browserwindow[bookmarksContent.id].document);
			}
			else {
				bookmarksContent.update();
			}
		}
	}
	
	function drawBookmarkList(content) {
		bookmarksContent = content;
		var currentStep = engine.getCurrentStep();
		var currentStepFound = false;
		
		var closeString = utils.getI18nValue("close");
		
		var html = "<table cellpadding=\"0\" cellspacing=\"0\" class=\"bookmarkslist\">";
		html += "<tr><td width=\"100%\" colspan=\"2\" class=\"bookmarkstitle\">" + utils.getI18nValue("bookmarks") + "</td><td class=\"bookmarkstitle\">";
		if (!content.popup) {
			html += "<a href=\"javascript:engine.toggle('bookmarks')\"><img src=\"img/close.gif\" alt=\"" + closeString + "\" border=\"0\"></a>";
		}
		html += "<br></td></tr>";
		if (bookmarks.length == 0) {
			html += "<tr><td colspan=\"3\" width=\"100%\" class=\"bookmark\">" + utils.getI18nValue("noBookmarksAvailable") + "</td></tr>";
		}
		else {
			for (var i = 0; i < bookmarks.length; i++) {
				var step = database.getStepById(bookmarks[i]);
				if (step) {
					html += "<tr><td colspan=\"2\" width=\"100%\" class=\"bookmarkslist\"><a href=\"javascript:engine.jumpToStep('" + step.id + "')\" class=\"bookmark\">";
					html += step.title;
					html += "</a></td>";
					html += "<td class=\"removebookmark\"><a class=\"removebookmark\" href=\"javascript:bookmarkmanager.removeBookmark('" + step.id + "')\"><img class=\"removebookmark\" alt=\"" + utils.getI18nValue("remove") + "\" src=\"img/delete16.gif\"/></a></td></tr>";
					if (step.id == currentStep.id) {
						currentStepFound = true;
					}
				}
				
			}
		}
		
		if (!currentStepFound) {
			html += "<tr><td colspan=\"3\" class=\"addbookmark\"><a href=\"javascript:bookmarkmanager.addBookmark('" + currentStep.id + "')\" class=\"bookmark\">[" + utils.getI18nValue("add") + "]</td>";
		}
		
		html += "</table>";
		return html;
	}
}
	
	
	
	
	






