(function($) {

	$.fn.dropdown = function(options) {
			var defaults = {
							url:null,
							selected:null,
							params:null,
							data:null,
							firstoption:null,
							refresh:false,
							success:null
					};

			options = $.extend({},defaults, options);

			this.each(function() {

				var el = this;

				if(options.url!=null){
					$.getJSON(options.url,options.params,function(json){
						options.data = json.data;
						$(this).dropdown.populateData(el,options);
						if(options.success!=null){
							options.success();
						}
					});
				}
			});
			return this;
		}

	$.fn.dropdown.populateData = function(el,options){

		var data = options.data;
		var firstoption = options.firstoption;
		var selected = (options.selected!=null)?options.selected.split(',') : new Array();

		if(typeof(firstoption) == 'object'){
			el.length = 1; //reset options
			el.options[0].value= firstoption.id;
			el.options[0].text = firstoption.name;
		}else
		{
			el.length = 0; //reset options
		}

		if(data!=null || data!=undefined){
			for(var i = 0; i < data.length; i++){
				el.length++;
				el.options[el.length-1].value= data[i].id;
				el.options[el.length-1].text = data[i].name;

				for(var j=0; j < selected.length; j++){
					if(selected[j] == el.options[el.length-1].value) el.options[el.length-1].selected=true;
				}
			}
		}
	}

})(jQuery);
