
/**
 * Asynchronous Get Call backs
 */
var getvote_callbacks = {
    
    success : function (o) {
        
        var voteresponse = [];
        try {
            voteresponse = YAHOO.lang.JSON.parse(o.responseText);
        }
        catch (x) {
            alert("JSON Parse Failed!" + x);
            return;
        }
        var err = 0;
        if (voteresponse.error == "no_auth")
        {
            if ((typeof(no_auth_alert) !== 'undefined') && no_auth_alert != '')
            {
                alert(no_auth_alert);
            }
            else
            {
                alert ("You need to be logged into perform this action. Please login to MySQL.com and try again.");
            }
            err=1;
        }
        
        if (voteresponse.error == "no_more")
        {
            if ((typeof(no_more_alert) !== 'undefined') && no_more_alert != '')
            {
                alert(no_more_alert);
            }
            else
            {
                alert ("You have already used up the votes available to you in a 24 hour period. Please try again later.");
            }
            err = 1;
        }
        
        if (voteresponse.error == "invalid_vote")
        {
            if ((typeof(invalid_vote_alert) !== 'undefined') && invalid_vote_alert != '')
            {
                alert(invalid_vote_alert);
            }
            else
            {
                alert ("An invalid vote was submitted. Cannot be processed.");
            }
            err = 1;
        }
        
        if (voteresponse.error == "already_voted")
        {
            if ((typeof(already_voted_alert) !== 'undefined') && already_voted_alert != '')
            {
                alert(already_voted_alert);
            }
            else
            {
                alert ("You have already voted for this entry and the time to change your vote has passed.");
            }
            err = 1;
        }
        
        if (voteresponse.success == 1 && err == 0)
        {
            if (voteresponse.vote == 1)
            {
                document.getElementById('thumbup_' + voteresponse.entryid).innerHTML = "<img align=\"middle\" src=\"/common/images/thumbs_up_green.jpg\" border=\"0\">";
                document.getElementById('thumbdown_' + voteresponse.entryid).innerHTML = "<img align=\"middle\" src=\"/common/images/thumbs_down_blue.jpg\" border=\"0\">";
            }
            
            if (voteresponse.vote == -1)
            {
                document.getElementById('thumbup_' + voteresponse.entryid).innerHTML = "<img align=\"middle\" src=\"/common/images/thumbs_up_blue.jpg\" border=\"0\">";
                document.getElementById('thumbdown_' + voteresponse.entryid).innerHTML = "<img align=\"middle\" src=\"/common/images/thumbs_down_red.jpg\" border=\"0\">";
            }
            document.getElementById('votesleft').innerHTML = voteresponse.votesleft;
            document.getElementById('votesplus_' + voteresponse.entryid).innerHTML = voteresponse.votesplus;
            document.getElementById('votesminus_' + voteresponse.entryid).innerHTML = voteresponse.votesminus;
            document.getElementById('current_gmtime').innerHTML = voteresponse.current_gmtime;
        }
    },
    
    failure : function (o) {
        if (!YAHOO.util.Connect.isCallInProgress(o)) {
            alert('Async call failed');
        }
    },
    
    timeout : 6000
}

/**
 * Vote
 */
function entry_vote(entry_id, user_id, vote)
{
    if (entry_id > 0 && user_id > 0 && (vote == 1 || vote == -1))
    {
        YAHOO.util.Connect.asyncRequest('GET', vote_location + "?entry_id=" + entry_id + "&user_id=" + user_id + "&vote=" + vote, getvote_callbacks);
    }
}

