var _CategorySlide = new Class({
    Implements: [Options],
    options: {
        'transition_time': 500,
        'category_selector': 'ul[class=category_list] h3 a',
        'sub_category_selector': 'ul[class=sub_category_list]',
        'sub_category_span_selector': 'div[class=sub_category_list]',
		'sub_category_links_selector': 'div[class=sub_category_list] ul li a',
        'sc_span_selector_id': 'category_dropdown_'
    },
    
    initialize: function(options) {
        this.setOptions(options);
		
        this.sub_categories = $$(this.options.sub_category_span_selector);
        this.sub_categories.each(function(el) {
            el.setStyle('height', 0);
        });
		this.sub_category_links = $$(this.options.sub_category_links_selector);
		this.sub_category_links.each(function(el) {
			if(el.href == window.location) {
				var par = el.getParent('div').getParent('li').getChildren('h3').getChildren('a')[0];
				
				this.add_event(par, true);
			}
		}.bind(this));
		
        this.categories = $$(this.options.category_selector);
        this.add_events();
    },
    
    add_events: function() {
        this.categories.each(function(el) {
            this.add_event(el);
        }.bind(this));    
    },
    
    add_event: function(el, overridden) {
		if(el.href == window.location || overridden) {
			(function() { this.click_event(el); }.bind(this)).delay(500);
		}
		/*
		el.addEvent('click', function(ev) {
            this.click_event(ev, el);
        }.bind(this));*/
    },
    
    click_event: function(el) {
        //new Event(ev).stop();
        var ul = $(this.options.sc_span_selector_id + el.getProperty('rel'));
		if(!ul) return false;
		
        var parent = ul.getParent('div');
        
        parent.set('tween', { duration: this.options.transition_time });
		
        if(parent.getStyle('height') == '0px') {
            parent.tween('height', ul.getStyle('height'));
        } else {
            parent.tween('height', 0);
        }
    }
    
    
});

window.addEvent('domready', function() {
    
    var CategorySlide = new _CategorySlide();
	
});
