/*
 * 	 styleSelect - apply style to a select box
 *   (http://www.8stream.com)
 *
 * 	 Copyright (c) 2009 Siim Sindonen, 8STREAM <siim@8stream.com>
 *   Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 * 
 *   Requires jQuery version: >= 1.3.2
 * 	 $Version: 1.2.1 | 22.09.2009
 */
 
(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).addClass(mainSelect.attr('class')).attr('id',selectId).insertBefore(mainSelect);var subContainer=$('<ul></ul>').addClass(mainSelect.attr('class')).css({'position':'absolute','z-index':'100','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').css('width','122px').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': '73px','background-position':(-561-(182-73)) + 'px -281px'})}});$('.'+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);