// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults
function toggleChildren(elem, _class) {
  document.getElementsByClassName(_class).each(function(elem) { elem.toggle(); });
  elem = $(elem);
  if (elem) {
    if (Element.hasClassName(elem, 'collapsed')) {
      Element.removeClassName(elem, 'collapsed');
      Element.addClassName(elem, 'expanded');
    } else {
      Element.removeClassName(elem, 'expanded');
      Element.addClassName(elem, 'collapsed');
    }
  }
  return false;
}

Block = {
	toggle: function(elem) {
		Element.toggle(elem);
	},
	
  show: function(elem) {
    Element.setStyle(elem, { display: 'block' });
  },
  
  hide: function(elem) {
    Element.hide(elem);
  }
}

Loaders = {
	toggleSubmission: function(elem) {
		elem = $(elem);
		submission = document.getElementsByClassName('submission', elem).first();
		loader     = document.getElementsByClassName('loader', elem).first();
		submission.toggle();
		loader.toggle();
	}
}

FieldLine = {
	id: -1,
	
	addOne: function(list, markup) {
		FieldLine.id--;
		new Insertion.Bottom(list, markup.gsub('%%id%%', FieldLine.id));
	},
	
	remove: function(event) {
		parent = Event.findElement(event, 'ol') || Event.findElement(event, 'ul');
		if (parent.getElementsByTagName('li').length == 1) return;
		Event.findElement(event, 'li').remove();
	}
}

