function categoriesWidget()
{
    this.i = 0;
    
    this.collapse = function( id )
    {
        var tree = $( id+'-categories-tree' );
        
        if( !tree )
        {
            return false;
        }
        
        var categories = tree.getElements( 'div' );
    
        if( !categories[0] )
        {
            return false;
        }
    
        for( var i = 0; i < categories.length; i++ )
        {
            var link = categories[i].getElement( 'a' );
            var href = link.getAttribute( 'href' ).split( '/' ).reverse();
                href = href[1];
        
            if( categories[i+1] )
            { 
                var subcategories = categories[i+1].getElement( 'div' );

                if( subcategories != null )
                {
                    subcategories.setAttribute( 'id', 'subcategory-'+href );
                    subcategories.className = 'subcategory';
            
                    categories[i].setAttribute( 'id', 'category-'+href );
                    categories[i].addEvent( 'click', function()
                    {
                        var id = this.getAttribute( 'id' ).replace( 'category-', '' );
                        categoriesWidget.displayCategory( id );
                    } );
                
                    if( !categories[i].hasClass( 'select' ) && !categories[i].hasClass( 'open' ) )
                    {
                        categories[i+1].style.display = 'none';    
                    }
            
                   // categories[i].appendChild ( document.createTextNode('aaa') );
            
                    i++;
                    
                    this.i++;
                }
            }
        }
    }

    this.displayCategory = function( id )
    {
        
        var subcategory = $( 'subcategory-'+id ).parentNode;
        var category = $( 'category-'+id );
    
        if( !category || !subcategory )
        {
            return false;
        }
    
        if( category.className == 'open' )
        {
            subcategory.style.display = 'none';
            category.className = 'close';    
        }
        else
        {
            subcategory.style.display = 'block'; 
            category.className = 'open';
        }    
    }
}

var categoriesWidget = new categoriesWidget();

window.addEvent( 'domready', function()
{
    categoriesWidget.collapse( 'paid' );
    categoriesWidget.collapse( 'free' );
});