﻿/*
* Search DropdownList 0.9
* Copyright (c) 2011 Zhaojiping http://lastidea.net/
* Date: 2011-12-22
* Search DropdownList是一个模似google 搜索下拉菜单的Jquery插件
*/ 
(function($) { 
	$.fn.lastidea_net_search = function(options){
		var defaults = {
			ajaxURL : "",
			waitting: "waitting...",
			color: "black", 
			background: "white",
			border: "2px #ddd solid",
			"border-top": "0px",
			"border-right": "2px #ddd solid",
			"border-bottom": "2px #ddd solid",
			"border-left": "2px #ddd solid",
			top: 0,
			left: 0,
			width: 0,
			height: 210
		};        
		
		var opts = $.extend(defaults, options);
		
		$(this).focus(function(){ 
			$(this).keyup();
		});
		
		$(this).blur(function(){ 
			$(".lastidea_dropdownlist").hide();
		});
		
		$(this).keyup(function(){
			var obj = $(this);
			var thisId = "lastidea_dropdownlist" + $(this).attr("id")
			if ( $("#" + thisId).length > 0) {
				$("#lastidea_dropdownlist" + $(this).attr("id") ).show()
			}else{
				obj.after("<div class='lastidea_dropdownlist' id='"+ thisId +"'>" + opts.waitting + "</div>");
				
				$("#" + thisId ).css({
					color: opts.color,
					background: opts.background,
					border: opts.border,
					"border-top": opts.border_top,
					"border-right": opts.border_right,
					"border-bottom": opts.border_bottom,
					"border-left": opts.border_left,
					
					top: opts.top + parseInt(obj.offset().top) + parseInt(obj.outerHeight() - 1),
					left: opts.left + parseInt(obj.offset().left),
					width: opts.width  + parseInt(obj.width()),
					height: opts.height,
					
					position:"absolute",
					"z-index": "999",
					"overflow-y":"auto",
					"overflow-x":"hidden"
				}); 
			}
			
			if( $.trim(opts.ajaxURL) == "") alert("lastidea_net_search错误 : ajaxURL需要定义!");
			
			$.ajax({
				url:opts.ajaxURL, 
				data: "keywords=" + encodeURI(obj.val()),
				cache: true,
				success: function(data){
					$("#" + thisId).html(data);
					$("#" + thisId).find('a').blur(function(){
						obj.val($.trim($(this).html()));
					});
					$("#" + thisId).find('li').css({'border-bottom': opts.border + ' 1px', padding: '5px'});
					$("#" + thisId).find('a').css({display:'block', 'padding-left':'5px'});
				}
			});
		});  
	};

})(jQuery);	   

