



function addToList (text_field, list_field) {
  newText = document.getElementById(text_field).value;
  theSel = document.getElementById(list_field);
  selectOptions = theSel.getElementsByTagName('option');

  newValue = 0;
  var newOpt1 = new Option(newText, newValue);
  theSel.options[selectOptions.length] = newOpt1;
  theSel.add(newOpt1)

}

function removeOption(selectId) {
  var selectList = document.getElementById(selectId);
  var selectOptions = selectList.getElementsByTagName('option');

for (var i = 0; i <= selectOptions.length - 1; i++) {
    var opt = selectOptions[i];
    if (opt.selected) {
      selectList.removeChild(opt);
      if (i == selectOptions.length)
        selectOptions[i-1].selected = 1;
      else
        selectOptions[i].selected = 1;
      return;
    }
  }
}

function moveOption(selectId, offset) {
  var selectList = document.getElementById(selectId);
  var selectOptions = selectList.getElementsByTagName('option');

  for (var i = 0; i <= selectOptions.length - 1; i++) {
    var opt = selectOptions[i];
    if (opt.selected) {
      newOffset = i + offset
      if (offset > 0)
        newOffset = Math.min (newOffset, selectOptions.length-1);
      else
        newOffset = Math.max (newOffset, 0);

      selectList.removeChild(opt);
      selectList.insertBefore(opt, selectOptions[newOffset]);
      return;
    }
  }
}

function copyText(dst, src) {
    document.getElementById(dst).value = document.getElementById(src).value;
}

// resizing text area appropriated from http://jroller.com/rmcmahon/entry/resizingtextarea_with_prototype
// I added the max-rows=50 lines; otherwise unchanged

var ResizingTextArea = Class.create({
    defaultRows: 1,

    initialize: function(field)
    {
        this.defaultRows = Math.max(field.rows, 1);
        this.resizeNeeded = this.resizeNeeded.bindAsEventListener(this);
        Event.observe(field, "click", this.resizeNeeded);
        Event.observe(field, "keyup", this.resizeNeeded);
    },

    resizeNeeded: function(event)
    {
        var t = Event.element(event);
        var lines = t.value.split('\n');
        var newRows = lines.length + 1;
        
        var oldRows = t.rows;
        for (var i = 0; i < lines.length; i++)
        {
            var line = lines[i];
            if (line.length >= t.cols) newRows += Math.floor(line.length / t.cols);
        }

        if(newRows > 50)
          newRows = 50;
        
        if (newRows > t.rows) t.rows = newRows;
        if (newRows < t.rows) t.rows = Math.max(this.defaultRows, newRows);
    }
});

function set_show_observer(field) {
  Element.observe(field, 'click', function(e) {
      x = $$('div.dependent');
      
      for (i=0; i< x.length; i++) {
        x[i].show();
        }
    })
}

function set_hide_observer(field) {
  Element.observe(field, 'click', function(e) {
      x = $$('div.dependent');
      
      for (i=0; i< x.length; i++) {
        x[i].hide();
        }
    })
}

function toggle_collapsible_section(id) {
  $(id + '_placeholder').toggle();
  $(id + '_collapsed').toggle()
}

function open_or_close_menu_item(id,want_open) {
 el = $(id)
 is_open = !(el.style.display=='none')
 if (want_open != is_open) {
 }
}
function left_nav_menu_select(want_open_id) {
  $$('ul.subnav').each( function(ul) {
    if ( (ul.id == want_open_id) == (ul.style.display=='none') ) {
      new Effect.toggle(ul.id,'slide', {duration: 0.2});
    }
  });
}
