(function( $ ){

    var settings = {
        'lang'             : 'it' ,
        'previous'         : '0'
    };
            
    var methods = {
        init : function( options ) {
            
            return this.each(function(){
                // If options exist, lets merge them
                // with our default settings
                if ( options ) { 
                    $.extend( settings, options );
                }
            });
       
        },
        loadCategories : function( parent ) {
            return this.each(function(){
                var $this = $(this);
                
                $.ajax({
                    url: '/home/getSubCategories',
                    type: 'POST',
                    data: {
                        'lang'   : settings.lang, 
                        'parent' : parent
                    },
                    success: function(data){
                        var ret = $.parseJSON(data);
                        settings.previous = ret.cat_id;
                        $this.fadeOut('fast', function(){
                            $this.html(ret.html);
                            $this.fadeIn('fast');
                            bindClick();
                        });
                    },
                    error: function(jqXHR, textStatus, errorThrown){
                    }
                });
                
                
            });
        },
        loadActivitiesbyDetailas : function( parent, child ) {
            return this.each(function(){
                
                var $this = $(this);
                
                $.ajax({
                    url: '/home/getSubCategoriesbyDetail',
                    type: 'POST',
                    data: {
                        'lang'   : settings.lang, 
                        'parent' : parent,
                        'child' : child
                    },
                    success: function(data){
                        var ret = $.parseJSON(data);
                        settings.previous = ret.cat_id;
                        $this.fadeOut('fast', function(){
                            $this.html(ret.html);
                            $this.fadeIn('fast');
                            $('#cat_'+settings.previous).parent('.categoria_list_item ').removeClass('b');
                            $('#cat_'+settings.previous).parent('.categoria_list_item ').removeClass('colornew');
                            $('#cat_'+child).parent('.categoria_list_item ').addClass('b');
                            $('#cat_'+child).parent('.categoria_list_item ').addClass('colornew');
                            settings.previous = child;
                            bindClick();
                        });                       
                    }
                });
                
                
            });
        },
        loadActivities : function( category ) {
            return this.each(function(){
                var $this = $(this);
                $('#activity_filter').val('');
                $(this).fadeOut('fast',function(){
                    $this.load('/home/getActivities',{
                        'lang'   : settings.lang,
                        'category' : category
                    },function(){
                        $('#cat_'+settings.previous).parent('.categoria_list_item ').removeClass('b');
                        $('#cat_'+settings.previous).parent('.categoria_list_item ').removeClass('colornew');
                        $('#cat_'+category).parent('.categoria_list_item ').addClass('b');
                        $('#cat_'+category).parent('.categoria_list_item ').addClass('colornew');
                        settings.previous = category;
                        $this.fadeIn('fast');
                        bindClick();
                    });
                });
       
            });
        },
        loadFilteredActivities : function( word ) {
            return this.each(function(){
                $(this).load('/home/getFilteredActivities',{
                    'lang'     : settings.lang,
                    'category' : settings.previous,
                    'word'     : $.trim(word)
                });
            });            
        },
        loadFilteredAllActivities : function( word ) {
            return this.each(function(){
                $(this).load('/home/getAllActivities',{
                    'lang'     : settings.lang,
                    'word'     : $.trim(word)
                });
            });
        },
        back : function( ) {

            var $this = $(this);
            $(this).fadeOut('fast',function(){
                $this.load('/home/ReloadDynamic',function(){
                    $this.fadeIn('fast');
                    bindClick();
                });
            });

        }
    };

    $.fn.CategoriesInterface = function( method ) {
    
        if ( methods[method] ) {
            return methods[method].apply( this, Array.prototype.slice.call( arguments, 1 ));
        } else if ( typeof method === 'object' || ! method ) {
            return methods.init.apply( this, arguments );
        } else {
            $.error( 'Method ' +  method + ' does not exist on jQuery.CategoriesInterface' );
        }    
  
    };

})( jQuery );
