﻿var CategoryMethods = {
    GetSubCategoryHandler: null,
    GetSubCategory: function(cid, target, successCallback) {
        if (CategoryMethods.GetSubCategoryHandler != null)
            CategoryMethods.GetSubCategoryHandler.abort();

        CategoryMethods.GetSubCategoryHandler = $.ajax(
            {
                type: 'POST',
                url: '/Handlers/Categories/CategoryHandler.ashx',
                xhr: function() {
                    return ($.browser.msie && $.browser.version.substr(0, 1) <= 7)
                        ? new ActiveXObject('Microsoft.XMLHTTP')
                        : new XMLHttpRequest();
                },
                data: '{"Action":"GET-SUB-CATEGORIES", "CID":"' + cid + '"}',
                dataType: 'json',
                contentType: 'application/json; charset=utf-8',

                success: function(result) {
                    if (result == null)
                        return;

                    if (result.HasError) {
                        FancyboxHandler.ShowFancybox(result.ErrorHeadline, result.Errors[0]);
                        CategoryMethods.Cleanup();
                    } else {
                        CategoryMethods.PresentResult(result, target);
                        (successCallback || $.noop)();
                    }
                },

                error: function(err) {
                    if (err.statusText == 'abort')
                        return;

                    CategoryMethods.Cleanup();
                },

                complete: function() {
                    CategoryMethods.GetSubCategoryHandler = null;
                }
            });
    },

    PresentResult: function(result, target) {
        var speed = 500;
        var content = $('#category_template').tmpl(result);
        content.insertAfter(target.parent().find('a'));
        content.fadeIn(speed, function() {
        });
        target.parent().find('ul.ul-loading').fadeOut(speed, function() {

        });
        target.parent().find('ul.ul-loading').remove();
    },
    Cleanup: function() {
        $('#left_menu ul.ul-loading').remove();
    }
};
