;
(function($) {

    $(function() {
        var $obj = $('fieldset.post_category');
        var $tab = $obj.find('ul.category_list');
        var $tabItem = $tab.find('li.category');
        var $contentArea = $obj.find('div.contentBox');
        var $postDivbox = $contentArea.find('div.postListBox');
        var $pagination = $obj.find('div.pagination');
        var selectedCategory = window.selectCategory;
        $pagination.data('pagination', {
            'page' : 1,
            'itemId' : 'official'
        });

        $tab.data('categoryStatus', selectedCategory);

        $tabItem.find('a').click(function() {
            var $this = $(this);
            var itemId = $this.closest('li').attr('item_id');

            printMoreStatus('reset', itemId);

            return false;
        });

        $pagination.find('.viewNextPage').click(function() {
            var $this = $(this);
            var data = $pagination.data('pagination');
            var page = parseInt(data.page) + 1;
            var itemId = data.itemId;

            printMore(itemId, page);

            return false;
        });

    });

}) (jQuery);

function printMoreStatus(type, itemId, content, page_navigation) {
    var $obj = jQuery('.post_category');
    var $tab = $obj.find('ul.category_list');
    var $contentArea = $obj.find('div.contentBox');
    var $pagination = $obj.find('div.pagination');
    var $pageDiv = jQuery('<div class="pageDiv" page="1"></div>');

    if(type == 'reset') {
        $pagination.find('.viewNextPage').show();
        $pagination.find('.no_more_page').hide();

        $tab.data('categoryStatus').tabObj.removeClass('active');
        $tab.data('categoryStatus').postBoxObj.hide();

        $pagination.data('pagination', {
            'page' : 1,
            'itemId' : itemId
        });

        $tab.data('categoryStatus').postBoxObj.find('.pageDiv:first').nextAll().remove();

        $tab.data('categoryStatus', {
            'itemId' : itemId,
            'tabObj' : $tab.find('#categoryTab'+itemId),
            'postBoxObj' : $contentArea.find('#category_'+itemId)
        });

        $tab.data('categoryStatus').tabObj.addClass('active');
        $tab.data('categoryStatus').postBoxObj.show();
    }

    if(type == 'loadding') {
        $pagination.find('.loadding').show();
        $pagination.find('.viewNextPage').hide();

    } else if(type == 'loaded') {
        $obj.find('#category_'+itemId).append($pageDiv.clone().attr('page', parseInt(page_navigation.cur_page)).html(content)).show();
        $pagination.find('.loadding').hide();
        $pagination.find('.viewNextPage').blur();

        if(page_navigation.total_page > parseInt(page_navigation.cur_page)) {
            $pagination.find('.viewNextPage').show();
        } else {
            $pagination.find('.viewNextPage').hide();
            $pagination.find('.no_more_page').show();
        }
        $pagination.data('pagination').page = parseInt(page_navigation.cur_page);
    }
}

function printMore(itemId, page) {
    var $obj = jQuery('.post_category');
    var $pagination = $obj.find('div.pagination');

    if(page >= 2) printMoreStatus('loadding');

    var params = new Array();
    var query_id;
    params['page'] = page;
    var response_tags = new Array('error', 'message', 'page_navigation', 'content');

    if(itemId == 'project') {
        params['module_srl'] = project_modules;
    } else if(itemId == 'official') {
        params['module_srl'] = official_modules;
    } else if(itemId == 'newpost') {
		params['exclude_module_srl'] = official_modules + ',' + project_modules;
	}

    exec_xml('blogmanager', 'getBlogmanagerDocumentList', params, function(ret) {
        printMoreStatus('loaded', itemId, ret['content'], ret['page_navigation']);
    }, response_tags);

    return false;
}
