(function($){$.fn.styleSelect=function(options){var tabindex=1;var opts=$.extend({},$.fn.styleSelect.defaults,options);$('input,select,textarea,button').each(function(){var input=$(this);if(!input.attr('tabindex')){input.attr('tabindex',tabindex);tabindex++;}});
return this.each(function(){mainSelect=$(this);var mainId=mainSelect.attr('name');var styledTabIndex=mainSelect.attr('tabindex');var date=new Date;var selectId='selectbox_'+mainId+date.getTime();mainSelect.hide();var mainContainer=$('<div tabindex="'+styledTabIndex+'"></div>').css({position:'relative'}).addClass(opts.styleClass).attr('id',selectId).insertBefore(mainSelect);var subContainer=$('<ul></ul>').css({'position':'absolute','z-index':'100'-styledTabIndex,'top':opts.optionsTop,'left':opts.optionsLeft}).appendTo($(mainContainer)).hide();var optionsList="";mainSelect.find('option').each(function(){optionsList+='<li id="'+$(this).val()+'"';if($(this).attr('class'))optionsList+=' class="'+$(this).attr('class')+'" ';optionsList+='>';optionsList+='<span style="display: block;"';if($(this).attr('selected'))optionsList+=' class="selected" ';optionsList+='>';optionsList+=$(this).text();optionsList+='</span>';optionsList+='</li>';});subContainer.append(optionsList);checkSelected(opts.styleClass,opts.optionsWidth);$('#'+selectId).click(function(){$(this).find('ul').slideToggle(opts.speed);});$('#'+selectId+' li').click(function(){doSelection($(this));});$('#'+selectId).keydown(function(event){var active=$(this).find('.selected').parent();if(event.keyCode==40||event.keyCode==39){doSelection(active.next());}
if(event.keyCode==37||event.keyCode==38){doSelection(active.prev());}if(event.keyCode==13||event.keyCode==0){$(this).find('ul').slideToggle(opts.speed);}
if(event.keyCode==9){$(this).find('ul').hide(opts.speed);}});var doSelection=function(item){item.siblings().find("span").removeClass('selected');item.find("span").addClass('selected');var selectedItem=item.attr('id');var realSelector=$('select[name="'+mainId+'"]');realSelector.siblings().selected=false;realSelector.find('option[value="'+selectedItem+'"]').attr('selected','selected');realSelector.trigger(opts.selectTrigger);checkSelected(opts.styleClass,opts.optionsWidth);}
$('#'+selectId).click(function(e){e.stopPropagation();});$(document).click(function(){$('#'+selectId+' ul').hide();});});}
function checkSelected(mainClass,mainWidth){$('.'+mainClass).each(function(){var elementList=$(this).find('ul');$(this).find('span').each(function(){var spanClass=$(this).attr("class");if(spanClass=="passiveSelect"||spanClass=="activeSelect")$(this).remove();});var selectedName=$(this).find('.selected');$('<span></span>').text(selectedName.text()).attr('id',selectedName.parent().attr('id')).addClass('passiveSelect').appendTo($(this));if(mainWidth===0){$(this).css({'width':elementList.width()});}});$('.'+mainClass+' span').each(function(){if($(this).attr('id')){$(this).removeClass();$(this).addClass('activeSelect');}});}$.fn.styleSelect.defaults={optionsTop:'26px',optionsLeft:'0px',optionsWidth:0,styleClass:'selectMenu',speed:0,selectTrigger:'change'};})(jQuery);
