jQuery.getGenreList = (function( $ ) {
    var plugin,
        activateGenre,
        getList;

    activateGenre = function( genreData ) {
        genreData.equals = function( o ) {
            if( !o ) { return false; }
            return genre.id === o.id && genre.name === i.name;
        };

        return genreData;
    };

    getList = function( url, onList ) {
        $.ajax({
            url: url,
            dataType: 'json',
            success: function( result ) {
                var data = result.data || [];

                $.each( data, function( i, genre ) {
                    activateGenre( genre );
                });
                onList.apply( {}, [ data ] );
            },
            error: function( xhr, status, error ) {
                onList.apply( {}, [ null ] );
            }
        });
    };

    plugin = function( url, onList ) {
        return getList.apply( {}, [ url, onList ] );
    };

    return plugin;

})( jQuery );

