DH_RATING_PLUGIN = {
    observedItems: [],
    
    init: function() {
        $$('a.rater').each(function(r) {
                if (DH_RATING_PLUGIN.observedItems.indexOf(r) == -1) {
                    DH_RATING_PLUGIN.observedItems.push(r);
                    r.observe('click', DH_RATING_PLUGIN.onClickHandler.bindAsEventListener(r));
                }
            });
    },

    onClickHandler: function(event) {
        var parameterString = this.href.replace(/.*\?(.*)/, "$1"); // onclick="sndReq('j=1&q=2&t=127.0.0.1&c=5');
        var parameterTokens = parameterString.split("&"); // onclick="sndReq('j=1,q=2,t=127.0.0.1,c=5');
        var parameterList = new Array();
        
        for (j = 0; j < parameterTokens.length; j++) {
            var parameterName = parameterTokens[j].replace(/(.*)=.*/, "$1"); // j
            var parameterValue = parameterTokens[j].replace(/.*=(.*)/, "$1"); // 1
            parameterList[parameterName] = parameterValue;
        }
        var theratingID = this.up('.rating-widget');
        var theVote = parameterList['j'];
        var theuserIP = parameterList['t'];
        var theunits = parameterList['c'];
        
        event.stop();
        new Ajax.Updater(theratingID, '/rating/recordRating?ajax=1&' + parameterString, {
                asynchronous:true,
                    evalScripts: false,
                    onComplete: DH_RATING_PLUGIN.init});
    }
};

YAHOO.util.Event.onDOMReady(DH_RATING_PLUGIN.init);

