///////////////// // UI + DHTML // ///////////////// var blog_favourites = new Array(); // toggles the favourite icons depending on whether the blog entry is a favourite function changeFavIcons(blogId, isFav) { var stars = document.getElementsByName("star_" + blogId); for (var i = 0; i < stars.length; i++) { if(isFav) { stars[i].style.display = 'inline'; } else { stars[i].style.display = 'none'; } } var addfavIcons = document.getElementsByName("addfav_icon_" + blogId); var remfavIcons = document.getElementsByName("remfav_icon_" + blogId); for(var i = 0; i < addfavIcons.length; i++) { if (isFav) { addfavIcons[i].style.display = 'none'; remfavIcons[i].style.display = 'inline'; } else { addfavIcons[i].style.display = 'inline'; remfavIcons[i].style.display = 'none'; } } } //////////////////////////////////////// // DWR CALLS AND RESPECTIVE CALLBACKS // //////////////////////////////////////// function markAsFavourite(blogId) { if (blog_favourites[blogId] == 'ignored') { // if the blog was ignored, then we can't restore it properly without reloading the page dwrFavManager.markBlogAsFavourite(blogId, refreshCallback); } else { dwrFavManager.markBlogAsFavourite(blogId, markAsFavouriteCallback(blogId)); } } function markAsFavouriteCallback(blogId) { // edit icons changeFavIcons(blogId, true); // update client data state blog_favourites[blogId] = 'favourite'; } function unmarkAsFavourite(blogId) { dwrFavManager.unmarkBlog(blogId, unmarkAsFavouriteCallback(blogId)); } function unmarkAsFavouriteCallback(blogId) { // we don't need to worry about checking if the blog was ignored -> it can't be because if unmarkFav is called, it means blog was a fav // edit icons changeFavIcons(blogId, false); // update client data state blog_favourites[blogId] = 'neither'; } function markAsIgnored(blogId) { dwrFavManager.markBlogAsIgnored(blogId, refreshCallback); } function unmarkAsIgnored(blogId) { dwrFavManager.unmarkBlog(blogId, refreshCallback); } function refreshCallback() { // reload page so the ignored items are removed location.reload(true); }