$.fn.combobox = function (options) {

    var defaults = {
        dropDownHeight: 120,
        itemLimit: 10
    }

    var options = $.extend(defaults, options);


    return this.each(function () {

        var arr = new Array();
        var obj = $(this);

        var count = 0;
        $(obj).find("option").each(function () {
            arr[$(this).val()] = $(this).text();
            count++;
        })

        /* hide selected form */
        $(obj).hide();
		
		/* Set selected Item */	

        var list = '<div id="list"><ul>';

        var dropdownWidth = $(obj).find("select").width();

        var firstItem = '';
		
		
		var selectDefault = $("#"+$(obj).attr("id")+" select option:selected").text();
		
        for (index in arr) {
            if (firstItem == '') {
            	
				if (selectDefault) {
					firstItem = selectDefault
				} else { 
					firstItem = arr[index];
				}
            }
            list = list + "<li title='" + index + "'>" + arr[index] + "</li>";
        }

        list = list + "</ul></div>";

        $(obj).after('<div id="' + $(obj).attr("id") + '-form" class="formCombo"><div id="comboContainer"><div id="content">' + firstItem + '</div><div id="button"></div></div>' + list + '</div>');
		
		//&#9660;

        var objId = "#" + $(obj).attr("id") + "-form";

        $(objId).find("#list").hide();

        $(objId).find("#button").click(function () {

            if ($(this).hasClass("open")) {
                $(this).parent().next().hide();
                $(this).removeClass("open");
            } else {
                $(this).parent().next().show();
                $(this).addClass("open");
            }

        });

        if ($(objId).find("#list ul li").length > defaults.itemLimit) {
            $(objId).find("#list").css({
                "height": defaults.dropDownHeight + "px",
                overflow: "auto"
            });
        }

        $(objId).find("#list ul li").click(function () {
            var itemVal = $(this).text();
            $(objId).find("#content").text(itemVal);
            $(this).parent().parent().hide();

            $(obj).val($(this).attr("title"));

            $(objId).find("#button").removeClass("open");
        });


    });

}
