var $select=function (opt,mode){
	var my=this,o=opt||{};
	my.b=[];my.sui=[];my.num=[];my.style=[];
	my.key=function(event,y,z){
		switch(event.keyCode) {// 绑定方向键
			case 38 : my.num[y][z]--;break;
			case 40 : my.num[y][z]++;break;
			default : return;
		};
		my.keyfun(my.num[y][z],y,z,1);
	};
	my.keyfun=function(x,y,z,m){ // 显示当前样式及后续操作
		var lis=$(my.sui[y][z][1]).children();
		var len=lis.length;
		if(x<0) my.num[y][z]=x=len+x;
		x=x%len;
		lis.each(function(j,b){$(b).removeClass(my.style[y]);});
		$(lis[x]).addClass(my.style[y]);
		if(m) my.keyfun2(x,y,z,lis);
	};
	my.keyfun2=function(x,y,z,lis){ // 改变输入框值
		my.sui[y][z][2].value=lis[x].value;
		my.sui[y][z][0].innerHTML=lis[x].innerHTML
	};
	$.each(o,function(e,s){
		my.b[e]=[];my.sui[e]=[];my.num[e]=[];my.style[e]=s;
		$(e).each(function(a,b){ // a键值，b对象
			my.num[e][a]=0;
			my.b[e][a]=$(b);
			my.sui[e][a]=my.b[e][a].children();
			if(!my.sui[e][a][2] || my.sui[e][a][2].tagName!='INPUT'){
				if(mode) alert('下拉框格式错误');
				return false;
			};
			my.sui[e][a][1].style.display='none';
			$(my.b[e][a]).click(function(){
				$(my.sui[e][a][1]).slideToggle("fast");
				return false;
			});
			$(document).click(function(){
				$(my.sui[e][a][1]).slideUp("fast");
			});
			// 绑定键盘事件
			// 此功能需要使用label for联动到input，且input不可隐藏(可以全屏定位left取-2000)
			$(my.sui[e][a][2]).keydown(function(event){my.key(event,e,a);});
			$(my.sui[e][a][1]).children().each(function(k,li){
				// 默认值
				if($(li).hasClass(s)){
					my.sui[e][a][0].innerHTML=li.innerHTML;
					my.sui[e][a][2].value=li.value;
				};
				// 绑定鼠标滑过事件
				$(li).mouseover(function(){
					if(li==this){
						my.keyfun(k,e,a);
						my.num[e][a]=k;
					};
				});
				// 绑定点击列表事件
				$(li).click(function(){
					if(li==this){
						my.keyfun(k,e,a,1);
						my.num[e][a]=k;
					};
				});
			});
			
		});
	});
	if(mode) alert('当前为调试模式');
};
// 待升级:二级或多级下拉菜单
new $select({
	'.selects,#id1,#id2':'selected',// 下拉框元素:当前列表项样式，使用jquery选择器，可以是class、id、tag，可输入多个
	'.class2':'selected2'
});