
(function($){$.fn.selectbox=function(options){var settings={selectClass:'jSelectbox',selectionClass:'selected',optionClass:'jOption',oContainerClass:'optionContainer',animation:true}
if(options){settings=$.extend(settings,options);}
this.each(function(i,e){var $e=$(e);var $html=getHTML($e,settings);initSelect($html,$e);$e.after($html).hide();})
function getHTML($e){var $select=$('<div></div>').addClass(settings.selectClass).data('elem',$e);var $selected=$('<div><div></div></div>').addClass(settings.selectionClass);var $optionCn=$('<div></div>').addClass(settings.oContainerClass).css({'position':'absolute','z-index':9999});$select.append($selected);$select.append($optionCn);var $eOptions=$e.find('option');var opLength=$eOptions.length;for(var i=0;i<opLength;i++){var $option=$('<div></div>').css('position','relative').addClass(settings.optionClass).text($($eOptions[i]).text()).data('value',$($eOptions[i]).val())
$optionCn.append($option);}
return $select;}
function initSelect($select,$e){var $options=$select.find('.'+settings.optionClass);var $selection=$select.find('.'+settings.selectionClass);$options.click(function(){var index=$(this).index();var myOption=$e.find('option:eq('+index+')');doSelection(myOption,$select);})
$selection.click(function(){if($select.find('.'+settings.optionClass+':visible').length){close($select);}else{open($select);}})
var selectedOption=$e.find('option[selected]');var firstOption=$e.find('option:eq(0)');var startOption=selectedOption||firstOption;doSelection(startOption,$select);}
function open($select){$select.find('.'+settings.oContainerClass).show();if(settings.animation){$select.find('.'+settings.optionClass).each(function(i,e){var $e=$(e);var pos=$e.position().top;$e.css('top',-pos).animate({'top':0},50)})}}
function close($select){$select.find('.'+settings.oContainerClass).hide();}
function doSelection(option,$select){var $o=$(option);var $selection=$select.find('.'+settings.selectionClass);$selection.find('>*').text($o.text());close($select);$o.siblings('option').removeAttr('selected');$o.attr('selected','selected');}}}(jQuery))
