var dropDown = new Class({
	
	//implements
	Implements: [Options],

	//options
	options: {
		id: '',
		evento: 'click'
	},
	//initialization
	initialize: function(options) {
		//set options
		this.setOptions(options);
		//init elements
		this.initElements();
	},
	
	initElements:function(){
		var root = this;
		$$('#' + this.options.id + ' a.dropdown').addEvents({
			'mouseenter': function() { root.actions(this, "hover") },
			'mouseleave': function() { root.actions(this, "out") }
		});
		
		$$('#' + this.options.id ).addEvents({
			'mouseleave': function() { root.actions(this, "reset") }
		});
		
		// Mouse Over
		if( this.options.evento == 'mouseover'){
			$$('#' + this.options.id + ' a.dropdown').addEvent( "mouseover", function(e){
				e.stop();
				root.actions(this, "active");
			});
		}
		// Click
		if( this.options.evento == 'click'){
			$$('#' + this.options.id + ' a.dropdown').addEvent( "click", function(e){
				e.stop();
				root.actions(this, "active");
			});
		}
		// Click su Document
		$(document).addEvent('click', function(e) {
			if (!$(e.target).getParents('#' + this.options.id ).length > 0) { root.actions(this,"reset"); }
		}.bind(this));
	},
	
	actions: function(target, mode ){
		if (mode == "reset" || mode == "active") {
			$$('#' + this.options.id + ' a.dropdown').removeClass('active');
			$$('#' + this.options.id + ' div.submenu').setStyles({'opacity': '0'});
		}
		switch (mode) {
		case "active":
			target.addClass('active');
			if( target.getNext() )
			target.getNext().setStyles({'display': 'block', 'opacity': '1'});
			break;
		case "hover":
			break;
		case "out":
		}
	}
});
