$(function() {
    //工房トップアナウンス
    $('#announce').cycle({
        fx: 'fade',
        speed: 4000,
        delay: -1000,
        sync: 1
        });

    //工房トップ新着ブック
    $.each(['book1', 'book2', 'book3'], function() {
            $('#'+this).cycle({
                fx: 'scrollUp',
                delay: -1800 + Math.random()*2000,
                sync: 1
                });
        });

    //道具選択を表示
    if ($('#selected-items').length) {
        var MAX = 15;
        var selected = [];

        $('#select-item').click(function() {
            $.getScript(simplemodal, function() {
                var page = 1;
                var targets = $('#item-list li.item-target');
                var prev = $('#item-list a.prev');
                var next = $('#item-list a.next');
                var item_num = targets.length;
                var page_num = Math.ceil(item_num/MAX);

                $('#item-list').modal({
                    overlay: 65,
                    overlayCss: {backgroundColor:'#ffcc33'},
                    containerCss: {
                        backgroundColor: 'transparent',
                        width: 600,
                        height: 450,
                        padding: 0
                    },
                    onOpen: function(dialog) {
                        make_pagination();

                        dialog.overlay.fadeIn('fast', function() {
                            dialog.data.hide();
                            dialog.container.fadeIn('fast', function() {
                                dialog.data.slideDown('slow');
                            });
                        });
                        var items = $('#items').val();
                        if (items) {
                            $.each(items.split(','), function(i, v) {
                                $('#item-'+v).addClass("selected");
                            });
                        }
                    },
                    onClose: function(dialog) {
                        dialog.data.fadeOut('fast', function() {
                            dialog.container.hide('fast', function() {
                                dialog.overlay.slideUp('slow', function() {
                                    $.modal.close();
                                });
                            });
                        });
                    }
                });
                //do nothing
                $('#item-list a.cancel').click(function() {
                    $.modal.close();
                    return false;
                });
                // update selected list
                $('#item-list a.select').click(function() {
                    render_list();
                    $.modal.close();
                    return false;
                });
                targets.click(function() {
                    var itemid = $(this).get(0).id.replace('item-', '');
                    update_selection(itemid);
                    $(this).toggleClass("selected");
                    return false;
                });
                prev.click(function() {
                    if (page > 1) --page;
                    make_pagination();
                    return false;
                });
                next.click(function() {
                    if (page < page_num) ++page;
                    make_pagination();
                    return false;
                });

                function make_pagination() {
                    var offset = (page-1)*MAX;

                    targets.hide();
                    for (var i=offset, sz=offset+MAX; i<sz; ++i) {
                        targets.eq(i).show();
                    }
                    if (page == 1) {
                        prev.addClass('dead');
                    }
                    else {
                        prev.removeClass('dead');
                    }
                    if (page == page_num) {
                        next.addClass('dead');
                    }
                    else {
                        next.removeClass('dead');
                    }
                }
            });
        });

        function render_list() {
            var buf = [];
            for (var i=0, sz=selected.length; i<sz; ++i) {
                var itemid = selected[i];
                var itemname = $('#item-'+itemid).text();
                var img = $('#item-'+itemid+' img').attr('src');
                var url = $('#item-'+itemid+' a').attr('href');

                buf.push(
                    '<li id="selected-',itemid,'">',
                    '<span class="selected-img">','<img alt="',itemname,'" src="',img,'" />','</span>',
                    '<span class="name">',itemname,'</span>',
                    '<a href="#" class="btn-delete">',
                    '<img src="/static/images/atelier/btn-deleteitem_off.gif" width="22" height="18" alt = "delete" onmouseover = "this.src=\'/static/images/atelier/btn-deleteitem_on.gif\'" onmouseout = "this.src=\'/static/images/atelier/btn-deleteitem_off.gif\'" class="btn-del" />',
                    '</a>',
                    '</li>'
                );
            }
            $('#selected-items').html(buf.join(''));
            $('#items').val(selected.join(','));

            $('#selected-items a.btn-delete').click(function() {
                var itemid = $(this).parent().get(0).id.replace('selected-', '');
                update_selection(itemid);
                $('#selected-'+itemid).remove();
                $('#items').val(selected.join(','));
                return false;
            });
        }
        function update_selection(itemid) {
            var has = false;
            for (var i=0, sz=selected.length; i<sz; ++i) {
                if (selected[i] == itemid) {
                    has = true;
                    selected.splice(i, 1);
                }
            }
            if (!has) {
                selected.push(itemid);
            }
        }

        (function load() {
            var items = $('#items').val();
            if (items) {
                $.each(items.split(','), function(i, v) {
                    update_selection(v);
                });
                render_list();
            }
        })()
    }
});
