(function($){
  $.fn.extend({ 
 	  magicselect : function(options) { 	    
      if (!$.browser.msie || ($.browser.msie && $.browser.version > 6)){        
        return this.each(function() {
          selecteditem = $(this).find(':selected');
          jqms_html = '<div class="jqms">'
                 + '<input type="hidden" name="' + $(this).attr('name') + '" value="' + selecteditem.val() + '"/>'
                 + '<div class="jqms_open"><div>' + selecteditem.text() +  '</div></div>'
                 + '<ul class="jqms_elems">';
          $(this).each(function() {
            $('option', this).each(function() {
              jqms_html = jqms_html + '<li><span class="jqms_str">' + $(this).text() + '</span><span class="jqms_val">' + $(this).val() + '</span></li>'
            });
          });       
          jqms_html = jqms_html + '</ul></div>';
          $(this).after(jqms_html);
          
          var jqms = $(this).next('.jqms');          
          var jqms_opener = $('.jqms_open',jqms);
          var jqms_items = $('.jqms_elems',jqms);
          jqms_items.width(jqms_opener.width());
          $('.jqms_val',jqms).hide();
          $(this).remove();
                              
          jqms_opener.click(function(){
        	  if (jqms_items.is(':visible')) jqms_items.slideUp();
        	  else jqms_items.slideDown();
        	});
        	
        	$('li',jqms_items).click(function(){
            $('div',jqms_opener).text($('span.jqms_str',this).text());
            $('input',jqms).val($('span.jqms_val',this).text());
            jqms_items.slideUp();
        	}).hover(
            function(){ $(this).addClass('jqms_over'); },
            function(){ $(this).removeClass('jqms_over'); }
          );          
  
        });      
      }
    }
  })
})(jQuery);
