var ERROR_PREFIX = 'ERROR:'; 	 
var REDIRECT_PREFIX = 'REDIRECT:'; 	 
var ALERT_PREFIX = 'ALERT:'; 	 
  	 
function rpcError(req) { 	 
    try
    {
    if(req) { 	 
        var r = req.responseText; 	 
        if(ERROR_PREFIX == r.slice(0, ERROR_PREFIX.length)) { 	 
            r = r.slice(ERROR_PREFIX.length); 	 
            if(REDIRECT_PREFIX == r.slice(0, REDIRECT_PREFIX.length)) { 	 
                location.href = r.slice(REDIRECT_PREFIX.length); 	 
                return; 	 
            } 	 
            if(ALERT_PREFIX == r.slice(0, ALERT_PREFIX.length)) { 	 
                alert(r.slice(ALERT_PREFIX.length)); 	 
                return; 	 
            } 	 
        } 	 
    }
    }
    catch(e)
    {
       // error in error processing - fall through to unknown error
    } 	 
    //unknown error 	 
    location.href = '/ErrorPage'; 	 
} 	 
 	 
function vote(nVoteId, nVote) { 
    var resFunc = function(req) { 	 
        try {
            var resultObj = eval(req.responseText);
            document.getElementById('userlist-vote-detail').innerHTML = resultObj.nodes[0].text;
            document.getElementById('userlist-pop-detail').innerHTML = resultObj.nodes[1].text;
            starDisplayReturn(nVote);
        }
        catch(e) {} //voting error
    }
 	 
    var req = new HttpRpc('/ListController', rpcError, resFunc); 	 
    var params = new UrlParams(); 	 
    params.add('a', 'vt'); 	 
    params.add('listid', listid); 	 
    params.add('vote', nVote); 	 
 	if(nVoteId > 0) {
        params.add('vid', nVoteId);
    }
    req.sendRequest(params.toString()); 	 
}

function starDisplay(curVote, rollNum) {
    for(var i=0; i<rollNum; i++) {
        document.getElementById('star-' + i + '-w').style.display = 'none';
        document.getElementById('star-' + i + '-g').style.display = 'none';
        document.getElementById('star-' + i + '-y').style.display = 'inline';
    }
    for(var i=rollNum; i<curVote; i++) {
        document.getElementById('star-' + i + '-w').style.display = 'none';
        document.getElementById('star-' + i + '-g').style.display = 'inline';
        document.getElementById('star-' + i + '-y').style.display = 'none';
    }
    for(var i=4; i>=curVote && i>=rollNum; i--) {
        document.getElementById('star-' + i + '-w').style.display = 
            'inline';
        document.getElementById('star-' + i + '-g').style.display = 'none';
        document.getElementById('star-' + i + '-y').style.display = 'none';
    }

    for(var i=0; i<5; i++) {
        document.getElementById('star-text-' + i).style.display = 'none';
    }
    document.getElementById('star-text-' + (rollNum-1)).style.display = 'inline';

    var node = document.getElementById('vote_thanks');
    if(node) {
        node.style.display = 'none';
        document.getElementById('vote_change').style.display = 'inline';
    }
}

function starDisplayReturn(curVote) {
    for(var i=0; i<curVote; i++) {
        document.getElementById('star-' + i + '-w').style.display = 'none';
        document.getElementById('star-' + i + '-g').style.display = 'none';
        document.getElementById('star-' + i + '-y').style.display = 'inline';
    }
    if (curVote < 0)  curVote = 0;  // if curVote = -1, we just start at 0
    for(var i=curVote; i<5; i++) {
        document.getElementById('star-' + i + '-w').style.display = 
            'inline';
        document.getElementById('star-' + i + '-g').style.display = 'none';
        document.getElementById('star-' + i + '-y').style.display = 'none';
    }
    
    for(var i=0; i<5; i++) {
        document.getElementById('star-text-' + i).style.display = 'none';
    }
    if(curVote > 0) {
        document.getElementById('star-text-' + (curVote-1)).style.display = 
            'inline';
    }
    
    var node = document.getElementById('vote_thanks');
    if(node) {
        node.style.display = 'inline';
        document.getElementById('vote_change').style.display = 'none';
    }

}
   

