Effect.SlideUp_Idiomas = function(element) {
  if($('Select_Off').style.display != 'none'){
    element = $(element);
    element.cleanWhitespace();
    var oldInnerBottom = $(element.firstChild).getStyle('bottom');
    return new Effect.Scale(element, window.opera ? 0 : 1,
     Object.extend({ scaleContent: false, 
      scaleX: false, 
      scaleMode: 'box',
      scaleFrom: 100,
      restoreAfterFinish: true,
      beforeStartInternal: function(effect) {
        effect.element.makePositioned();
        effect.element.firstChild.makePositioned();
        if(window.opera) effect.element.setStyle({top: ''});
        effect.element.makeClipping();
        effect.element.show(); },  
      afterUpdateInternal: function(effect) {
        effect.element.firstChild.setStyle({bottom:
          (effect.dims[0] - effect.element.clientHeight) + 'px' }); },
      afterFinishInternal: function(effect) {
        $('Select_On').style.display = 'block';
        $('Select_Off').style.display = 'none';
        $('Select_On').className = 'select_idioma';
        effect.element.hide();
        effect.element.undoClipping();
        effect.element.firstChild.undoPositioned();
        effect.element.undoPositioned();
        effect.element.setStyle({bottom: oldInnerBottom}); }
     }, arguments[1] || {})
    );
  }
}


Effect.SlideDown_Idiomas = function(element) {
  element = $(element);
  element.cleanWhitespace();
  // SlideDown need to have the content of the element wrapped in a container element with fixed height!
  var oldInnerBottom = $(element.firstChild).getStyle('bottom');
  var elementDimensions = element.getDimensions();
  return new Effect.Scale(element, 100, Object.extend({ 
    scaleContent: false, 
    scaleX: false, 
    scaleFrom: window.opera ? 0 : 1,
    scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},
    restoreAfterFinish: true,
    afterSetup: function(effect) {
      effect.element.makePositioned();
      effect.element.firstChild.makePositioned();
      if(window.opera) effect.element.setStyle({top: ''});
      effect.element.makeClipping();
      effect.element.setStyle({height: '0px'});
      effect.element.show(); },
    afterUpdateInternal: function(effect) {
      effect.element.firstChild.setStyle({bottom:
        (effect.dims[0] - effect.element.clientHeight) + 'px' }); 
    },
    afterFinishInternal: function(effect) {
      $('Select_On').style.display = 'none';
      $('Select_Off').style.display = 'block';
      $('Select_Off').style.background = 'transparent url(css/images/box_select_idioma_on.gif) no-repeat center left';
      effect.element.undoClipping(); 
      // IE will crash if child is undoPositioned first
      if(/MSIE/.test(navigator.userAgent) && !window.opera){
        effect.element.undoPositioned();
        effect.element.firstChild.undoPositioned();
      }else{
        effect.element.firstChild.undoPositioned();
        effect.element.undoPositioned();
      }
      effect.element.firstChild.setStyle({bottom: oldInnerBottom}); }
    }, arguments[1] || {})
  );
}
