(function(){
var Item_search = function() {
}
Item_search.SUGGEST_TIME = 500;// Suggestまでの時間（ミリ秒）

Item_search.prototype = {
	tid : null,      // suggest タイマーID
	preinput : null, // 前回の検索文字列
	p_list : null, // 取得リストの保存用
	add_staff_list : [],
	item_list : [],
	item_counter : 100000000,
	
	search_suggest : function(name,list,url) {
		$.ajax({
			url: url,
			type: "POST",
			data: {
				name: $(name).val()
			},
			cache: true,
			dataType: "json",
			success: function(data) {
				isch.p_list = data;
				$(list).empty();
				$.each(isch.p_list,function(i,item){
					$("<option>")
						.attr("value",i)
						.append(item.name)
						.prependTo(list);
				});
				$(name).focus();
			}
		});
	},

	suggest : function(name,list,url,force) {
	    this.stop_suggest();

	    if (force) this.preinput = null;
	    this.tid = setTimeout(function(){isch.do_suggest(name,list,url)}, Item_search.SUGGEST_TIME);
	},

	stop_suggest : function() {
	    clearTimeout(this.tid);
	},

	do_suggest : function(name,list,url) {
		var str = null;
	     $(list).hide();
	    str = $(name).val();
	    if (str == null || str.length == 0) return;
	    if (this.preinput == str) return;
	    this.preinput = str;

	   // Suggestを表示
		this.search_suggest(name,list,url);
	   $(list)
			.show()
			[0].selectedIndex = 0;
	},


	bind_suggest_list : function(name,list,url) {

		$(name).keyup(function(e) {
		    if(e.keyCode == 27) {
		        $(list).hide();
			} else if(e.keyCode == 13) {
		        $(list).hide();
				return false;
		    } else if(e.keyCode == 40) {
				if ($(list).is(":visible")) {
		            $(list).focus()[0].selectedIndex = 0;
		            $(this).val(isch.p_list[$(list).val()].name);
		        } else {
		            isch.suggest(name,list,url,true);
		        }
			} else {
				isch.suggest(name,list,url);
			}
		});


		$(list)
			.change(function(){
				$(name).val(isch.p_list[$(this).val()].name);
			})
			.keyup(function(e){
				if (e.keyCode == 9) {	// tab
					$(this).hide();
					$(name).focus();
				} else if (e.keyCode == 13) {	// Enter
					$(this).hide();
					$(name).focus();
				} else if (e.keyCode == 27) {	 // Esc
					$(this).hide();
					$(name).focus();
					$(name).val('');
				}
			})
			.dblclick(function(){
				$(this).hide();
			})
			.hide();
	}

}
window.isch = new Item_search();
})();


$(function(){

	//if(navigator.platform=='Win32' || $.browser.safari) {
	//	$('#item-suggest-list').hide();
	//	$('#item-keyword').suggest("/item/search_item2",{});
	//	alert('use jquery.suggest');
	//} else {
		isch.bind_suggest_list("#item-keyword","#item-suggest-list","/item/search_item");
	//	alert('use item_suggest');
	//}


});
