/////////////////
// 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);
}