var init = function () {
    post_url    = jQuery('form.rating').attr('action');
    jQuery('.star-rating').each(_SetStarRating);
}

var _clickastar = function () {
    stars = parseInt(jQuery(this).html());
    jQuery('form.rating input[name=stars]').attr('value', stars);
    _postStars();
    return false;
};

// event-handler for posting a message
var _postStars = function ( ) {
    jQuery.post(
        ABS_URI+post_url,
        {
            'token'     : jQuery('form.rating input[name=token]').val(),
            'mediatype' : jQuery('form.rating input[name=mediatype]').val(),
            'mediaid'   : jQuery('form.rating input[name=mediaid]').val(),
            'mid'       : jQuery('form.rating input[name=mid]').val(),
            'stars'     : jQuery('form.rating input[name=stars]').val()
        },
        function (data, textStatus, XMLHttpRequest) {
            if ( textStatus == 'success' ){
                if (data.result == false){
                    _displayErr( data );
                }else{
                    alert('Je stem is geregistreerd!');
                }
            }
        },
        'json'
    );
    return false;
}

// register error
var _displayErr = function (data) {
        switch ( data.message ) {
            case 'MISSING PARAMS':
                alert('Je stem is niet geregistreerd, ben je wel ingelogd?');
            break;

            case 'USER_ERROR':
            break;

            case 'TOKEN_ERROR':
            break;

            case 'HAS_VOTED':
                alert('Je kunt niet meer dan 1 keer reageren op een item.');
            break;
        }
}

_SetStarRating = function (i, object) {
    jQuery('a', object).click(_clickastar);
}

jQuery(document).ready(init);
