Effect.DropSide = function(element) {
  element = $(element);
  var oldStyle = {
    top: element.getStyle('top'),
    left: element.getStyle('left'),
    opacity: element.getInlineOpacity() };
  return new Effect.Parallel(
    [ new Effect.Move(element, {x: 30, y: 0, sync: true }), 
      new Effect.Opacity(element, { sync: true, to: 0.0 }) ],
    Object.extend(
      { duration: 0.5,
        beforeSetup: function(effect) {
          effect.effects[0].element.makePositioned(); 
        },
        afterFinishInternal: function(effect) {
          effect.effects[0].element.hide().undoPositioned().setStyle(oldStyle);
        } 
      }, arguments[1] || { }));
};

function labelize() {
  var labelizers = $$('.labelize');
  for (var i=0; i < labelizers.length; i++) {
    var text_field = labelizers[i];
    var label = text_field.up('.input_container').previous('.label_container').down('label');
    var fill_text_holder = text_field.up('.input_container').next('input.holder');
    if (text_field.value == '') {
      text_field.value = label.innerHTML;
      text_field.title = label.innerHTML;
      text_field.addClassName('grayed_out');
      if (text_field.hasClassName('password')) {
        text_field.type = 'text';
      }
    }
    fill_text_holder.value = label.innerHTML;
    label.remove();
    text_field.observe('focus', function() {
      if (this.value == this.title) {
        this.value = '';
        this.removeClassName('grayed_out');
        if (this.hasClassName('password')) {
          this.type = 'password';
          this.select();
        }
      }
    });
    text_field.observe('blur', function() {
      if (this.value == '') {
        this.value = this.title;
        this.addClassName('grayed_out');
        if (this.hasClassName('password')) {
          this.type = 'text';
        }
      }
    });
  }
}

function selectTab(element, multiplier) {
  var tab_bar = element.up('.tab_bar');
  var tabs = tab_bar.childElements();
  for (var i=0; i < tabs.length; i++) {
    tabs[i].removeClassName('selected');
  };
  element.addClassName('selected');
  var view = tab_bar.next('.view');
  var width = view.getWidth();
  var container = view.down('.tab_displays');
  new Effect.Move(container, {
    x: -multiplier*width, y: 0, mode: 'absolute',
    duration: 0.5,
    transition: Effect.Transitions.spring
  });
}



function checkAllOrNone(element, checkboxes) {
  var checkStatus = element.checked;
  for (var i = 0; i < checkboxes.length; i++) {
    checkboxes[i].checked = checkStatus;
  }
}
function checkOrUncheck(element, checkboxes, main_checkbox) {
  main_checkbox.checked = true;
  for (var i = 0; i < checkboxes.length; i++) {
    if (!checkboxes[i].checked) {
      main_checkbox.checked = false;
      break;
    }
  }
}

function equalHeight(element_array) {
  var max_height = 0;
  for (var i=0; i < element_array.length; i++) {
    element_height = element_array[i].getHeight();
    if (element_height > max_height) {
      max_height = element_height
    }
  }
  for (var i=0; i < element_array.length; i++) {
    element_array[i].style.height = max_height+'px';
  };
}

function mark_for_destroy(element) {
  $(element).up('p').previous('.should_destroy').value = 1;
  $(element).up('.existend_upload').hide();
}