﻿/*
* 取得夯作者資料
*/
;if (window.jQuery) (function ($) {
    var imgroot = 'http://www.fiito.com';

    /* 產生作品描述 */
    function createDesc(title, href, desc, view, push, comment) {
        var span = createEl('span');
        span.append(createEl('h3', 'title').append(createEl('a').attr('href', href).text(title)))
            .append(createEl('p', 'discription').text(desc))
            .append(createEl('p', 'detail').html(_lang_ink_view + ' ' + view + '<br />' + _lang_ink_like + ' ' + push + ' | ' + _lang_ink_comment + ' ' + comment));
        return span;
    }

    /* 產生 3 張作品縮圖 */
    function createNewWork(inks) {
        var span = createEl('span');
        var newWork = createEl('div', 'newWork');
        var desc;
        $.each(inks, function (index, ink) {
            var img = createEl('img', (index > 0 ? 'small' : '')).attr({'src': imgroot + '/' + ink.p, 'alt': ink.t, 'title': ink.t});
            var a = createEl('a').attr('href', ink.k).append(img);
            newWork.append(a);
            if (index == 0) {
                // 產生第一個作品的描述資訊
                desc = createDesc(ink.t, ink.k, ink.d, ink.r, ink.pc, ink.c);
            }
        });
        span.append(newWork);

        if (desc !== null)
            span.append(desc);
        return span;
    }

    /* 產生作者資訊 */
    function createArtistBox(name, home, avatars, ink_count) {
        var artistBox = createEl('div', 'artistBox');
        artistBox.append(createEl('img').attr('src', imgroot + avatars).attr('alt', name).attr('title', name))
                 .append(createEl('h3', 'artist').append(createEl('a').attr('href', home).text(name)))
                 .append(createEl('p', 'discription').text(String.format(_lang_hotartist_drawings, ink_count)));
        return artistBox;
    }

    /* 產生單一作品項目 */
    function createWorkUnit(data) {
        var workunit = createEl('div', 'workUnit');
        workunit.append(createArtistBox(data.name, data.home, data.avatars, data.ink_count))
                .append(createNewWork(data.inks));
        return workunit;
    }

    /* 產生一頁的作品清單 */
    function createWorkList(el, data, start, end) {
        if (start > data.end) {
            var opts = el.data('opts');
            var loadcount = opts.pageSize * opts.maxPageCount;
            var loadend = start + loadcount;

            if (loadend > data.total) loadend = data.total;

            // need reload data
            $.ajax({
                type: 'get',
                url: '/json/hotartist',
                dataType: 'json',
                data: { start: start, end: loadend },
                cache: false,
                async: false,
                complete: function () {
                    complete = true;
                },
                failure: function () {
                    alert('資料載入發生錯誤');
                },
                success: function (json) {
                    if ($.fn.loadScrollData == undefined) {
                        alert('scroller module not found.');
                        return;
                    }
                    for (var i = 0; i < json.datacount; i++) {
                        data.data.push(json.data[i]);
                        data.datacount += 1;
                    }
                }
            });
        }

        var worklist = createEl('div', 'workList');
        for (var i = (start - 1); i < end; i++) {
            if (data.data[i] === undefined)
                break;
            worklist.append(createWorkUnit(data.data[i]));
        }
        return worklist;
    }

    /* 載入資料 */
    function loadData(el, defaultType, pageSize, maxPageCount) {
        var loading = el.find('.loading').hide(); /* 找到"載入中"的標籤物件，並隱藏起來 */

        $.ajax({
            type: 'get',
            url: '/json/hotartist',
            dataType: 'json',
            data: {},
            cache: false,
            async: true,
            beforeSend: function () {
                loading.show();
            },
            complete: function () {
                complete = true;
                loading.hide();
            },
            failure: function () {
                alert('資料載入發生錯誤');
            },
            success: function (json) {
                if ($.fn.loadScrollData == undefined) {
                    alert('scroller module not found.');
                    return;
                }
                el.loadScrollData(json, createWorkList);
            }
        });
    }

    $.fn.getHotArtistData = function (params) {
        var el = $(this);
        var opts = el.data('opts');

        /* 載入資料 */
        loadData(el, '', opts.pageSize, opts.maxPageCount);
    };
})(jQuery);
