//
// globals
//
var _bcFavs = { 
        Link: null,
        Name: null,
        Type: null,
        Item: null 
};


//
// toggle fav link
//
function bcToggleFav(bAdded, sName, iType, iID) {    
    var lnkFav = _bcFavs.Link;
    var imgFav = $(lnkFav).children("img");    
    var sFImg = $(imgFav).attr("src");    
    lnkFav.onclick = null; // hard-unbind required;
    if (bAdded) {
        sFImg = sFImg.replace(/icnFavsAdd.png/gi,"icnFavsDel.png");
        $(lnkFav).unbind().click(function() { return bcDelFavorite(this, sName, iType, iID); });    
        $(imgFav).attr({ "src": sFImg, "title": "delete favorite" });
    } else {
        sFImg = sFImg.replace(/icnFavsDel.png/gi,"icnFavsAdd.png");                                    
        $(lnkFav).unbind().click(function() { return bcAddFavorite(this, sName, iType, iID); });     
        $(imgFav).attr({ "src": sFImg, "title": "add favorite" });           
    }
}


//
// add fav
//
function bcAddFavorite(lnkFav, sName, iType, iID) {    
	var sPrompt = (sName=='') ? '' : '"' + unescape(sName) + '"\n\n';
	if (confirm(sPrompt + "Add to your favorites?")) {
        _bcFavs.Link = lnkFav; 
        $.getJSON("../_api/favorites_json.ashx?method=100&id=" + iID + "&type=" + iType + "&name=" + escape(sName) + "&ts=" + (new Date()).getTime(), function(json, textStatus) {
            if (textStatus == "success") {
                var iStatus = parseInt(json[0].status);
                if (iStatus < 1) {
                    var sError;
                    switch (iStatus) {
                        case -3: sError = "Sorry! You have reached your max limit of favorites.\nPlease delete some from your list before you add more."; break;
                        case -2: sError = "Invalid Request: Invalid parameter."; break;                        
                        case -1: sError = "Sorry! Only Premium citizens can add favorites."; break;
                        default: sError = "You are currently not signed on.\nPlease sign on to your account first."; break;
                    }
                    alert(sError);
                }
                else {
                    bcToggleFav(true, json[0].name, json[0].type, json[0].item);                    
                }
            }
        });
	}
	return false;
}


//
// del fav
//
function bcDelFavorite(lnkFav,sName,iType,iID) {   
    var sPrompt = (sName=='') ? '' : '"' + unescape(sName) + '"\n\n';	
	if (confirm(sPrompt + "Remove from your favorites?")) {
        _bcFavs.Link = lnkFav; 
	    $.getJSON("../_api/favorites_json.ashx?method=110&id=" + iID + "&type=" + iType + "&name=" + escape(sName) + "&ts=" + (new Date()).getTime(), function(json, textStatus) {
            if (textStatus == "success") {
                var iStatus = parseInt(json[0].status);
                if (iStatus < 1) {
                    var sError;
                    switch (iStatus) {
                        case -2: sError = "Invalid Request: The favorite was not found."; break;
                        case -1: sError = "Invalid Request: Invalid parameter."; break;
                        default: sError = "You are currently not signed on.\nPlease sign on to your account first."; break;
                    }
                    alert(sError);
                }
                else {
                    bcToggleFav(false, json[0].name, json[0].type, json[0].item);                    
//                    if (typeof bcCallbackRefresh == "function") {
//                        bcCallbackRefresh();
//                    } else {
//                        document.location.reload(true);
//                    }                                    
                }
            }
        });	
	}
	return false;
}

