/**
 * @author Rand Huck
 */
DropDown = function(items, selected)
{
	var _wrapper = jQuery('<div class="stDropDown"></div>');
	var _selectedItem = null;
	var _this = this;
	_wrapper.html('<div class="dropDownMain"><div class="left"></div><div class="middle"></div><div class="right"></div></div><div class="list"></div>');
	var selectItem = function(label) {
		_selectedItem = label;
		_wrapper.find('.dropDownMain .middle').html(label);
	}
	
	if (selected) {
		selectItem(selected);
	}
	
	this.collapse = function() {
		_wrapper.removeClass('expanded');
	}
	
	this.collapse();
	
	var expand = function() {
		_wrapper.addClass('expanded');
	}
	
	var onMainClick = function()
	{
		if (_wrapper.hasClass('expanded')) {
			_this.collapse();
		}
		else {
			expand();
		}
	}
	
	var onMainMouseDown = function()
	{
		_wrapper.addClass('mousedown');
	}
	
	var onMainMouseUp = function()
	{
		_wrapper.removeClass('mousedown');
	}
	
	_wrapper.find('.dropDownMain').click(onMainClick);
	_wrapper.find('.dropDownMain').mousedown(onMainMouseDown);
	_wrapper.find('.dropDownMain').mouseup(onMainMouseUp);
	
	for (var i=0; i<items.length; i++) {
		var item = items[i];
		var label = item.label;
		var listItem = jQuery('<div class="listItem">' + label + '</div>');
		_wrapper.find('.list').append(listItem);
		var initItemClick = function(listItem, item)
		{
			listItem.mousedown(function() {
				selectItem(item.label);
				_this.collapse();
				item.onClick();
			});
		};
		initItemClick(listItem, item);
	}
	
	this.appendTo = function(jQueryElement)
	{
		jQueryElement.append(_wrapper);
	}
}

DropDownItem = function(label, onClick)
{
	this.label = label;
	this.onClick = onClick;
}
