function Dropdown(div) {
	this.button;
	this.content;
	this.defaultLabel;
	this.defaultValue;
	this.value = null;
	this._onChoiceCallback = function(data) {}; // Override this function with dropdown.onChoice( function() {  ........
	
	this.init = function(div) {
		this.defaultLabel = $(div).data('defaultLabel');
		this.defaultValue = $(div).data('defaultValue');
		
		this.button = $('a.dropdown-button', div);
		this.button.click( function(obj){ return function(evt) { return obj._onClick(evt); }}(this) );
		
		this.content = $('ul.dropdown-content', div);
		this.content.mouseleave( function() { $(this).hide(); } );
		$('a', this.content).click( function(obj) { return function(evt) { return obj._onChoice(evt); }}(this) );
	}
	
	this._onClick = function(evt) {
		this.content.toggle();
		return false;
	}
	
	this._onChoice = function(evt) {
		var target = $(evt.target);
		this.button.html( target.html() );
		this.value = target.data('value');
		this._onChoiceCallback( this.value );
		this.content.hide();
		return false;
	}
	
	this.reset = function() {
		this.content.hide();
		this.value = this.defaultValue;
		this.button.html( this.defaultLabel );
	}
	
	this.onChoice = function( func ) {
		this._onChoiceCallback = func;
	}
	
	this.init(div);
}
