var getSaveBookmarkResourceURL;
var HP = HP || {};
HP.PFP = HP.PFP || {};
HP.PFP.Bookmark = HP.PFP.Bookmark || {};

HP.PFP.Bookmark.bookmarkResource = function (url, isPageReloaded) {
	const bookmarkIcon = document.getElementById("bookmarkIconId");
	bookmarkIcon.removeAttribute("data-title");
	Liferay.Util.fetch(url , {
		headers: {
	        'currentUrl': Liferay.ThemeDisplay.getPortalURL() + Liferay.currentURL
	    }
	}).then(function(response) {
		return response.json();
	}).then(function(response) {
		if(response && response.status) {
			bookmarkIcon.classList.remove("bookmark-portlet-on");
			bookmarkIcon.classList.remove("disabled");
			bookmarkIcon.classList.add("bookmark-portlet-off");
			bookmarkIcon.setAttribute("data-title", response.tooltip);
		} else {
			const getBookmarksCountResourceURL = Liferay.Util.PortletURL.createResourceURL(Liferay.ThemeDisplay.getLayoutURL(), {
				p_p_id: document.getElementById("bookmark_module_namespace").value,
				p_p_resource_id: '/bookmarks/get_count'
			});
			Liferay.Util.fetch(getBookmarksCountResourceURL)
				.then(function(response) {
					return response.json();
				}).then(function(response) {
					if(response && response.status) {
						if(response.count >= response.maxCount) {
							bookmarkIcon.classList.add("bookmark-portlet-on");
							bookmarkIcon.classList.remove("bookmark-portlet-off");
							bookmarkIcon.classList.add("disabled");
							bookmarkIcon.setAttribute("data-title", response.tooltip);
						} else {
							bookmarkIcon.classList.remove("bookmark-portlet-off");
							bookmarkIcon.classList.remove("disabled");
							bookmarkIcon.classList.add("bookmark-portlet-on");
							bookmarkIcon.setAttribute("data-title", response.tooltip);
						}
					}
				}).catch(() => {
					console.log("catch block")
				}
			);
		}
		
		if(!isPageReloaded) HP.PFP.Bookmark.hideElementWithDelay("bookmark-status-msg", 5000, response.message);
		
		const hpSidebar = document.getElementsByClassName("hp-sidebar");
		if(!isPageReloaded && response.status && hpSidebar && !hpSidebar[0].classList.contains('active') && hpSidebar[0].innerHTML.trim() !== "") {
			handleSideBar();
			isPageReloaded = true;
		}
		
		if(!isPageReloaded && hpSidebar.length > 0 && hpSidebar[0].classList.contains('active')) {
            closeEditWorkspaceView();
		}
		
		let workspaceWidgetList = document.getElementById("my_workspace");
		if(workspaceWidgetList && workspaceWidgetList.innerHTML.trim() === "") {
			workspaceWidgetList.innerHTML = '<div id="empty-msg" class="accordion-header"><p class="container">'+'Your\x20menu\x20is\x20empty\x2e\x20If\x20you\x20want\x20to\x20customize\x20it\x2c\x20click\x20\x26quot\x3bCustomize\x2e\x26quot\x3b'+'</p></div>';
		}
	}).catch(() => {
		console.log("catch block")
	});
}

HP.PFP.Bookmark.hideElementWithDelay = function(elementId, delay, statusMessage) {
  const element = document.getElementById(elementId);
  element.removeAttribute("style");
  element.innerText = statusMessage;

  setTimeout(() => {
	  element.style.transition = 'opacity 5s ease-in-out';
	  element.style.opacity = 0;
  }, delay);
}

Liferay.on(
  "allPortletsReady",

  	function () {
	  if(document.getElementById("bookmark_module_namespace")) {
		  const getBookmarkStatusResourceURL = Liferay.Util.PortletURL.createResourceURL(Liferay.ThemeDisplay.getLayoutURL(), {
			  p_p_id: document.getElementById("bookmark_module_namespace").value,
			  p_p_resource_id: '/bookmark/get_status'
		  });
	
		  HP.PFP.Bookmark.bookmarkResource(getBookmarkStatusResourceURL, true);
	  }
  	}
);
if(document.getElementById("bookmark_module_namespace")) {
	getSaveBookmarkResourceURL = Liferay.Util.PortletURL.createResourceURL(Liferay.ThemeDisplay.getLayoutURL(), {
		p_p_id: document.getElementById("bookmark_module_namespace").value,
		p_p_resource_id: '/bookmark/save_bookmark'
	});
}
