jQuery.fn.dropDown = function(settings) {
	return this.each(function() { 
		var object = $(this);
		var objectString = this.id;
		var selected = object.find("option[selected]");
		var options = $("option", object);
		object.addClass('hidden');
		$(settings.target).append('<dl id="target-'+objectString+'" class="dropdown-'+objectString+' dropdown"></dl>');
		$("#target-"+objectString).append('<dt><a href="#">' + selected.text() + '<span class="value">' + selected.val() + '</span></a></dt>');
		$("#target-"+objectString).append('<dd><ul></ul></dd>');
		
		options.each(function(){
			$("#target-"+ objectString + " dd ul").append('<li><a href="#">' + $(this).text() + '<span class="value">' + $(this).val() + '</span></a></li>');
		});
		
		$(".dropdown-"+objectString+" dt a").click(function() {
			$(".dropdown-"+objectString+" dd ul").toggle();
			return false;
		});
		
		$(document).bind('click', function(e) {
			var $clicked = $(e.target);
			if (! $clicked.parents().hasClass("dropdown-"+objectString))
			$(".dropdown-"+objectString+" dd ul").hide();
		});
		
		$(".dropdown-"+objectString+" dd ul li a").click(function() {
			var text = $(this).html();
			$(".dropdown-"+objectString+" dt a").html(text);
			$(".dropdown-"+objectString+" dd ul").hide();
			object.val($(this).find("span.value").html())
			return false;
		});
		
	});
}	
