$.widget( "ui.combobox", {
  _create: function() {
    var self = this;
    var select = this.element.hide(),
      selected = select.children( ":selected" ),
      value = selected.val() ? selected.text() : "";
	
	var elem_name = select.attr('name');
	select
		.attr('name', elem_name + "_select")
		.attr('id', elem_name + "_select");
	
    var input = $( "<input size='4' maxlength='5' />" )
      .insertAfter(select)
	  .attr('name', elem_name)
	  .attr('id', elem_name)
	  .addClass(elem_name + '_input')
      .val( value )
      .autocomplete({
        delay: 0,
        minLength: 0,
        source: function(request, response) {
          var matcher = new RegExp( $.ui.autocomplete.escapeRegex(request.term), "i" );
          response( select.children("option" ).map(function() {
            var text = $( this ).text();
            if ( this.value && ( !request.term || matcher.test(text) ) )
              return {
                label: text.replace(
                  new RegExp(
                    "(?![^&;]+;)(?!<[^<>]*)(" +
                    $.ui.autocomplete.escapeRegex(request.term) +
                    ")(?![^<>]*>)(?![^&;]+;)", "gi"),
                  "<strong>$1</strong>"),
                value: text,
                option: this
              };
          }) );
        },
        select: function( event, ui ) {
          ui.item.option.selected = true;
          self._trigger( "selected", event, {
            item: ui.item.option
          });
        }
      })
	  .addClass("ui-corner-left ui-corner-right");
   
    input.data( "autocomplete" )._renderItem = function( ul, item ) {
		ul.css("overflow", "scroll").height(150);
		var link = $("<a>" + item.label + "</a>").css("font-size", "10px");
      	return $( "<li></li>" )
			.css("word-wrap", "normal")
			.css("word-break","keep-all")
			.data( "item.autocomplete", item )
	        .append( link )
    	    .appendTo( ul );
    };
   
    $( "<a> </a>" )
    .attr( "tabIndex", -1 )
    .attr( "title", "時刻表示" )
    .addClass(elem_name + '_button')
    .insertAfter( input )
    .button({
      icons: {
        primary: "ui-icon-triangle-1-s"
      },
      text: false
    })
    .removeClass( "ui-corner-all" )
    .addClass( "ui-corner-right ui-button-icon" )
    .click(function() {
      // close if already visible
      if (input.autocomplete("widget").is(":visible")) {
        input.autocomplete("close");
        return;
      }
      // pass empty string as value to search for, displaying all results
      input.autocomplete("search", "");
      input.focus();
	  return false;
    });
  }
});

//not ready to dispath
$(document).ready(function(){
	var d=new Date();
	var time = $("#time");
    $("#date").datepicker({ dateFormat: 'yymmdd' });
    time.combobox();        			
    var search_type = $("#search_type"); 
    var stp = search_type.val();
    switch(stp){
    case "now":
    case "first":
    case "last":
    	$("#date").attr('disabled', 'disabled');
    	$("input.time_input").attr('disabled', 'disabled');
    	$("a.time_button").hide();
    	break;
    }
    
    search_type.change(function(){
    	switch($(this).val()){
    	case "now":
    	case "first":
    	case "last":
    		$("#date").attr('disabled', 'disabled');
    		$("input.time_input").attr('disabled', 'disabled');
        	$("a.time_button").hide();
    		break;
    	default:
    		$("#date").removeAttr('disabled');
    		$("input.time_input").removeAttr('disabled');	
        	$("a.time_button").show();
    	
    	}
    });
});
