﻿/*
* 取得夯作者資料
*/
;if (window.jQuery) (function ($) {
    var imgroot = 'http://www.fiito.com';
    var categoryink_fadeIn_Timer = 300;
    var categoryink_fadeOut_Timer = 300;

    /* 產生作品單元 */
    function createWorkUnit(ink) {
        var div = createEl('div');

        if (ink == undefined)
            return div;

        var img = createEl('img').css({ width: 80, height: 80 }).attr('src', imgroot + '/' + ink.p);
        div.append(img)
           .append(createEl('p', 'title').append(createEl('a').attr('href', ink.k).text(ink.t)))
           .append(createEl('p', 'artist').append(createEl('a').attr('href', ink.h).text(ink.m)))
           .append(createEl('p', 'detail').append(createEl('span').html(_lang_ink_view + ' ' + ink.r + '<br />' + _lang_ink_like + ' ' + ink.pc + ' | ' + _lang_ink_comment + ' ' + ink.c)));
        return div;
    }

    /* 產生完整的分類作品單元 */
    function createCategoryUnit(el, title, key, last) {
        var unit = createEl('div', 'categoryUnit').attr('key', key);

        unit.append(createEl('h3').text(title))
            .append(createEl('div', 'workUnit').text('loading...'));

        if (last)
            unit.find('.workUnit').addClass('last');

        return unit;
    }
    function createVline() {
        var vline = createEl('div', 'vLine');
        return vline;
    }

    /* 載入指定類別 (key) 的資料到 el 中 */
    function loadData(key, el) {
        var workUnit = el.find('.workUnit');
        var index = workUnit.attr('index');

        // 讀取下一個作品
        $.ajax({
            type: 'get',
            url: '/json/categoryink',
            dataType: 'json',
            data: { key: key, index: index },
            cache: false,
            async: false,
            complete: function () {
                complete = true;
            },
            failure: function () {
                alert('資料載入發生錯誤');
            },
            success: function (json) {
                if (json.status) {
                    workUnit.fadeOut(categoryink_fadeOut_Timer, function () {
                        var el = $(this);
                        el.html('').append(createWorkUnit(json.ink)).attr('index', json.index).fadeIn(categoryink_fadeIn_Timer);
                    });
                }
            }
        });
    }

    $.fn.loadCategory = function (opts) {
        var el = $(this);
        el.find('div.categoryUnit').remove();
        var global_timer = opts.timer;

        $.each(opts.items, function (index, item) {
            var unit = createCategoryUnit(el, item.title, item.key, index == opts.items.length - 1);

            el.append(unit);
            if (item.vline)
                el.append(createVline());

            // 更新的時間頻率間隔
            var timer = (item.timer === undefined) ? global_timer : item.timer;

            // 第一次載入時進行載入目前 key 類型的分類作品
            $.ajax({
                type: 'get',
                url: '/json/categoryink',
                dataType: 'json',
                data: { key: item.key },
                cache: false,
                failure: function () {
                    alert('資料載入發生錯誤');
                },
                success: function (json) {
                    var categoryUnit = el.find('div[key="' + item.key + '"]');
                    var workUnit = categoryUnit.find('.workUnit').html('');

                    if (json == null)
                        return;

                    if (json.status == false)
                        return;

                    workUnit.append(createWorkUnit(json.ink)).attr('index', json.index);

                    //if (json.count > 1) { // 如果總數量 > 1 才做定時更新
                    if (false) {
                        // 設定定時更新作品
                        window.setInterval(function () {
                            loadData(item.key, unit);
                        }, timer);
                    }
                }
            });
        });
    };
})(jQuery);
