function niceSelect ( input , select )
  {
  var input = $(input) ;
  var select_list  = $(select+'_list') ;
  var select_field  = $(select+'_field') ;
  var divList = input.getParent().getElement('.divList') ;

  $('search').getElements('.divList').each(function(el){if(divList!=el)el.remove();});
  if ( divList )
    {
    divList.remove();
    return false;
    }
  
  var divList = new Element ('div').addClass('divList') ;
  var divScroller = new Element ('div').addClass('divScroller') ; ;

  select_list.getElements('option').each(function(el){
    var divItem = new Element ('a') ; 
    
    divItem.setProperty('class',el.getProperty('class'));
        
    divItem.addEvent('click', function(){
      input.setProperty('value',el.getProperty('value'));
      select_field.setProperty('value',el.getText());
      divList.remove();
      });
      
    divItem.setText	( el.getText() ) ; 
    divItem.addClass('divItem') ;
    divItem.setOpacity(.9);
    divItem.injectInside(divScroller);
    });
  
  divScroller.injectInside(divList);
  divList.injectAfter(select_list) ;   
  
  var sizes = divList.getSize(); 
  var sizes2 = divScroller.getSize();
  var divPosY = divList.getPosition().y ;
  var divSizeY = sizes.scrollSize.y ;
  var divSizeX = sizes.scrollSize.x ;
  var windowHeight = window.getHeight() ;
  var windowScroll = window.getScrollTop() ;
  var offset = 20 ;
  var divHeight = divPosY + divSizeY - windowScroll + offset;
  
  if ( divHeight > windowHeight )
    {
    var sliderWidth = 16; 
    var newDivHeight = windowHeight - divPosY + windowScroll - offset ;
    divList.setStyles({'height':newDivHeight});
    divScroller.setStyles({'height':newDivHeight,'marginRight':sliderWidth});
        
    var area = new Element ('div',{'id':'area'}).setStyles({'width':sliderWidth,'height':newDivHeight,'marginLeft':(divSizeX-sliderWidth),'marginTop':-newDivHeight});
    var knob = new Element ('div',{'id':'knob'});
    knob.injectInside(area);
    area.injectInside(divList);
    
    var perStep = 5 ; 
    var step = ( ( sizes2.scrollSize.y - newDivHeight ) / perStep ).round();
    
    var mySlide = new Slider(area,knob,{
    	steps: step,
    	mode: 'vertical',	
    	onChange: function(step){
    		  divScroller.scrollTo(0, step * perStep );
          }
      }).set(0);
    }
  return false;
  }

