// 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();
	}
}

ReferralForm = {
    referralForms: 1,

    addForm: function(evt) {
		if (this.referralForms >= 20) return false;
        fldset = Event.findElement(evt, 'fieldset');
        newFldSet = '<fieldset id="referral-form-'+  (++this.referralForms) + '" class="referral-form">' + fldset.innerHTML.gsub(/Referral \([0-9]*\)/, 'Referral (' + this.referralForms + ')') + '</fieldset>';
        new Insertion.After(fldset, newFldSet);
        new Effect.ScrollTo($('referral-form-' + this.referralForms));
        new Effect.Highlight('referral-form-' + this.referralForms);
    },

    removeForm: function(evt) {
        if (this.referralForms == 1) return false;
        fldset = Event.findElement(evt, 'fieldset');
        num    = parseInt(fldset.id.match(/referral-form-([0-9]*)/)[1]) - 1;
        this.referralForms--;
        new Effect.Fade(fldset, { 
            duration: 0.25,
            afterFinish: function() { 
                fldset.remove();
                if ($('referral-form-' + num)) {
                    new Effect.ScrollTo('referral-form-' + num);
                }
            }
        });
    }
}


