/*
 * $Id:$
 *
 * This is a javascript file used for voting purposes
 */

function prepVote(entryId) {
    function input(d) {
        var found = d.getElementsByTagName ? d.getElementsByTagName("input") : [];
        if(found.length == 0) {
            return {};
        } else {
            return found[0];
        }
    }

    var scale = $('rating_' + entryId);
    var save     = $('save_' + entryId);
    save.disabled = false;
    save.style.display = 'block';
    save.onclick = function() {
        $A(scale.childNodes).each(function(d) {
                                      var c = input(d);
                                      if(c.name && c.checked) {
                                          setCookie("r" + entryId, c.value, 720);
                                          recordVote(entryId, c.value);
                                      }
                                  });
        this.disabled = true;
        $A(scale.childNodes).each(function(d) {
                                      var c = input(d);
                                      if(c.name && !c.checked) {
                                          c.disabled = true;
                                      }
                                      if(c.name) {
                                          c.onclick = function() {};
                                      }
                                  });
    }
}

function recordVote(entryId, rating) {
    function onfail(t, ex) {
        makeErrorHandler(alert)(ex);
    }

    new Ajax.Request('vote.php', {
                         method: 'post',
                         parameters: { entry_id: entryId, rating: rating },
                         onSuccess: function(transport) {
                             var data = transport.responseText.evalJSON();
                             if(data && data.rating_id) {
                                 return;
                             } else {
                                 alert("entry_id: " + entryId + ", " + rating + ", response: " + transport.responseText);
                             }
                         },
                         onException: onfail,
                         onFailure: onfail
                     });
}