jQuery.fn.extend( {
	combobox : function(url) {
		if(arguments[1]){
			var fun=arguments[1];
		}
		$(this).each(function (i,obj){
			var obj=$(this);
			var tmpdiv=$('<div class="combobox" style="display: none;"><ul></ul></div>');
			obj.after(tmpdiv);
			obj.attr('autocomplete','off');
			tmpdiv.after('<input type="hidden" id="'+obj.attr('id')+'_val" name="'+obj.attr('id')+'" value="">');
			$(this).keyup(function (code){
				$('div.combobox').hide();
				obj.next('.combobox').show();
				var kw=$(this).val();
				if(kw){
					$.post(url,{'kw':kw},function (json){
						eval('var data='+json);
						$('#'+obj.attr('id')+'_val').val('');
						obj.next('.combobox').find('ul').remove();
						if(data.length<1){
							obj.next('.combobox').hide();
							return ;
							var tmpul=$('<ul></ul>');
							obj.next('.combobox').append(tmpul);
							tmpul.append('<li>沒有找到相關資料</li>');
							tmpul.find('li').click(function (){
								obj.next('.combobox').hide();
							})
						}else{
							var tmpul=$('<ul></ul>');
							obj.next('.combobox').append(tmpul);
							for(i=0;i<data.length;i++){
								if(i%2){
									var tmpli=$('<li class="sec" val="'+data[i].id+'">'+data[i].name+'</li>');
								}else{
									var tmpli=$('<li val="'+data[i].id+'">'+data[i].name+'</li>');
								}
								tmpul.append(tmpli);
								tmpli.hover(function (){
									$(this).addClass('over');
								},function (){
									$(this).removeClass('over');
								}).click(function (){
									$('#'+obj.attr('id')+'_val').val($(this).attr('val'));
									obj.val($(this).html());
									obj.next('.combobox').hide();
									if(fun){
										fun(obj,this);
									}
								});
							}
						}
						var offset = obj.offset();
						/*set top*/
						if($.browser.msie){
							offset.top-=1;
						}
						offset.top+=obj.height();
//						offset.top-=(0-obj.css('paddingTop').replace('px',''));
//						offset.top-=(0-obj.css('paddingBottom').replace('px',''));
//						offset.top-=(0-obj.css('borderTop').replace('px',''));
//						offset.top-=(0-obj.css('borderBottom').replace('px',''));
						//offset.top=obj.css('bottom').replace('px','');
						/*set top over*/
						obj.next('.combobox').css('top',offset.top);
						obj.next('.combobox').css('left',offset.left);
						obj.next('.combobox').css('width',(obj.width()-(-20))+'px');
						obj.next('.combobox').show();
					})
				}else{
					obj.next('.combobox').hide();
				}
			});
		})
	}
});
