$( function( ) {
    var modules = {
        "level": {
            "caption": '<tr><th class="number"/><th>人物</th><th>等级</th><th>声望</th><th>星币</th></tr>',
            "callback": function( json, buff ) {
                $.each( json, function( index, item ) {
                    buff.push('<tr><td class="number">' + (index + 1) + '</td><td>' + item["NAME"] + '</td><td>Lv.' + item["LEVEL"] + '</td><td>' + item["PRESTIGE"] + '</td><td>' + item["MONEY"] + '</td></tr>');
                    if ( index >= 4 )
                        return false;
                });
            }
        },

        "guild": {
            "caption": '<tr><th class="number"/><th>战队名称</th><th>队长</th><th>称号</th><th>星币</th></tr>',
            "callback": function( json, buff ) {
                $.each( json, function( index, item ) {
                    buff.push('<tr><td class="number">' + (index + 1) + '</td><td>' + item["NAME"] + '</td><td>' + item["CREATOR"] + '</td><td>' + item["LEVEL"]["TYPENAME"] + '</td><td>' + item["MONEY"] + '</td></tr>');
                    if ( index  >= 4 )
                        return false;
                });
            }
        }
    };

    var init = function( srv ) {
        var type = $("#rank .menu > a.active").attr("rel"),
            url = "http://" + srv + ".jzwar.com/jsdata/ranks/" + type + ".php?callback=?",
            wrapper = ['<tbody>', '</tbody>'],
            module = modules[type];

        $.getJSON( url, function( json ) {
            var buff = [ module.caption ];

            module.callback( json, buff );
            present( wrapper.join( buff.join("") ) );
        });
        $("#rank table[summary='rank']").html( wrapper.join( [ module.caption, '<tr><td colspan="5">loading...</td></tr>' ].join("") ) );
    };

    var present = function( html ) {
        $("#rank table[summary='rank']").html( html );
    };

    /* 初始化事件 */
    $("#rank select").change( function( ) {
        init($(this).val());
    });

    $("#rank div.menu a").click( function( ) {
        $("#rank div.menu a").removeClass("active");
        $(this).addClass("active");
        init($("#rank select").val());
        return false;
    });

    init( $("#rank select[name='server'] option:first-child").val() );
});
