if(jQuery){(function($){$.extend($.fn,{singleSelect:function(options,callback){var defaults={layerStackIndex:0,fieldName:"",fieldIdName:"",noneSelected:"Select",inputClass:"",listClass:"",listWidth:"",listTop:30,listLeft:2,listDirection:"down",selectAll:false,arr:new Array()};var options=$.extend(defaults,options);var hasfocus=0;$(this).each(function(){var select=$(this);$(select).parent().css("z-index",(100+options.layerStackIndex));var html='<input type="text" readonly="readonly" id="'+options.fieldIdName+'_txt" class="'+options.inputClass+'" value="" style="z-index: '+(100+options.layerStackIndex)+'; cursor: default;" />';html+='<ul class="'+options.listClass+'" style="position: absolute; z-index: '+(120+options.layerStackIndex)+'; display: none;">';$(select).children("option").each(function(){if(options.selectAll==false){if($(this).val()!=""){html+='<li id="'+$(this).val()+'"';if($(this).is(":selected")){html+=' class="sel"'}html+=">"+$(this).html()+"</li>"}}else{html+='<li id="'+$(this).val()+'"';if($(this).is(":selected")){html+=' class="sel"'}html+=">"+$(this).html()+"</li>"}options.arr.push($(this).val())});html+="</ul>";html+='<input type="hidden" name="'+options.fieldName+'" id="'+options.fieldIdName+'" value="" />';$(select).after(html);$(select).next("."+options.inputClass).mouseover(function(){$(this).addClass("hover")}).mouseout(function(){$(this).removeClass("hover")}).click(function(){if($(this).hasClass("active")){$(this).singleSelectOptionsHide()}else{$(this).singleSelectOptionsShow(options)}return false}).focus(function(){$(this).addClass("focus")}).blur(function(){$(this).removeClass("focus");if($(this).hasClass("active")&&hasfocus>0){}else{$(this).singleSelectOptionsHide()}});$(select).next("."+options.inputClass).next("."+options.listClass).find("li").click(function(){$(this).parent().parent().find("li").removeClass("sel");$(this).addClass("sel");$(this).parent().singleSelectUpdateSelected(options);$(this).parent().parent().prev("."+options.inputClass).focus();if(callback){callback($(this))}});$(select).next("."+options.inputClass).next("."+options.listClass).each(function(){$(this).singleSelectUpdateSelected(options)});$(select).next("."+options.inputClass).next("."+options.listClass).find("li").mouseover(function(){hasfocus=1;$(this).parent().find("li").removeClass("hover");$(this).addClass("hover")}).mouseout(function(){hasfocus=-1;$(this).parent().find("li").removeClass("hover")});$(select).next("."+options.inputClass).keydown(function(e){if($(this).next("."+options.listClass).is(":visible")){if(e.keyCode==9){$(this).addClass("focus").trigger("click");$(this).focus().next(":input").focus();return true}if(e.keyCode==27||e.keyCode==37||e.keyCode==39){$(this).addClass("focus").trigger("click")}if(e.keyCode==40){if(!$(this).next("."+options.listClass).find("li").hasClass("hover")){$(this).next("."+options.listClass).find("li:first").addClass("hover")}else{$(this).next("."+options.listClass).find("li.hover").removeClass("hover").next("li").addClass("hover");if(!$(this).next("."+options.listClass).find("li").hasClass("hover")){$(this).next("."+options.listClass).find("li:first").addClass("hover")}}return false}if(e.keyCode==38){if(!$(this).next("."+options.listClass).find("li").hasClass("hover")){$(this).next("."+options.listClass).find("li:first").addClass("hover")}else{$(this).next("."+options.listClass).find("li.hover").removeClass("hover").prev("li").addClass("hover");if(!$(this).next("."+options.listClass).find("li").hasClass("hover")){$(this).next("."+options.listClass).find("li:last").addClass("hover")}}return false}if(e.keyCode==13||e.keyCode==32){if(!$(this).next("."+options.listClass).find("li.hover").hasClass("sel")){$(this).next("."+options.listClass).find("li").removeClass("sel");$(this).next("."+options.listClass).find("li.hover").addClass("sel");$(this).next("."+options.listClass).singleSelectUpdateSelected(options);if(callback){callback($(this))}}}return false}else{if(e.keyCode==38||e.keyCode==40||e.keyCode==13||e.keyCode==32){$(this).removeClass("focus").trigger("click");$(this).next("."+options.listClass).find("li:first").addClass("hover");return false}if(e.keyCode==9){$(this).focus().next(":input").focus();return true}}if(e.keyCode==13){return false}});$(select).css({display:"none",visibilty:"hidden"})})},singleSelectOptionsHide:function(){$(this).hasfocus=0;$(this).removeClass("active").next("ul").hide()},singleSelectOptionsShow:function(options){$(this).next("."+options.listClass).find("li").removeClass("hover");$(this).addClass("active").next("."+options.listClass).show();if(options.listWidth==""){$(this).next("."+options.listClass).css({width:($(this).outerWidth()-14)+"px"})}else{$(this).next("."+options.listClass).css({width:options.listWidth+"px"})}if(options.listDirection=="up"){var offset=$(this).next("."+options.listClass).outerHeight();$(this).next("."+options.listClass).css({top:-(offset)+"px"})}else{$(this).next("."+options.listClass).css({top:options.listTop+"px"})}$(this).next("."+options.listClass).css({left:options.listLeft+"px"});singleSelectCurrent=$(this);var timer="";$(this).next("."+options.listClass).hover(function(){clearTimeout(timer)},function(){timer=setTimeout('$(singleSelectCurrent).singleSelectOptionsHide(); $(singleSelectCurrent).unbind("hover");',250)})},singleSelectUpdateSelected:function(options){var s=i=idx=0;$(this).find("li").each(function(){if($(this).hasClass("sel")){s++;idx=i}i++});if(s==0){$(this).next("input[name="+options.fieldName+"]").val("");$(this).prev("input."+options.inputClass).val(options.noneSelected)}else{$(this).next("input[name="+options.fieldName+"]").val(options.arr[idx+1]);$(this).prev("input."+options.inputClass).val($(this).find("li.sel").text())}$(this).prev("input."+options.inputClass).singleSelectOptionsHide()},singleSelectReset:function(){$(this).parent().find("ul").find("li:first").click()},singleSelectOption:function(id){if($(this).parent().find("ul").find("li[id="+id+"]").length){$(this).parent().find("ul").find("li[id="+id+"]").click()}}})})(jQuery)};