// When object is available, do function fn.
function when(obj, fn) {
  if (Object.isString(obj)) obj = /^[\w-]+$/.test(obj) ? $(obj) : $(document.body).down(obj);
  if (Object.isArray(obj) && !obj.length) return;
  if (obj) fn(obj);
}

function restripe(form_row, new_row) {
  if(!$(form_row).toggleClassName('zebra').hasClassName('zebra')) {
		$(new_row).toggleClassName('zebra');
	}
	return;
}

function clearRadioButtons(input_name) {
	var r = document.getElementsByName(input_name);
	for (var i = 0; i < r.length; i++) { r[i].checked = false; }
}

function toggleCheckboxes(input_name) {
	var r = document.getElementsByName(input_name);
	for (var i = 0; i < r.length; i++) {
		if(r[i].checked) { r[i].checked = false; }
		else { r[i].checked = true; }
	}
}

function zebra(row) {
	if(!row.previous() || !row.previous().hasClassName('zebra')) {row.addClassName('zebra');}
}


/* -- Jed's Accordion --  */
function accToggle(trigger, accordion) {
	var sticky = false;
	
	if(!accordion) {
	  accordion = trigger.element().next();
	}
	else {
		accordion = $(accordion);
	}
	
  accordion.adjacent('.collapsible_section').each(function(el){
    if(el.hasClassName('accRevealed') && $(el).visible()) {
      new Effect.SlideUp(el,{duration:0.4}); 
      el.removeClassName('accRevealed');
			if(el.hasClassName('accSticky')) {
				sticky = true;
			}
    }   
  });
  
	if(!accordion.visible()) {
	  new Effect.SlideDown(accordion,{duration:0.4});
	  accordion.addClassName('accRevealed');
  }
	else {
		if(!accordion.hasClassName('accSticky')) {
			new Effect.SlideUp(accordion,{duration:0.4}); 
	    accordion.removeClassName('accRevealed');
		}
	}
}

document.observe('dom:loaded', function() {
	when('notice', function(notice) {flash_notice(notice)});

	when($$('table.doZebra tbody tr'), function(e) {
		e.each(function(r) { zebra(r) });
	});
	
	when($$('.accItem'), function(e) {
		e.each(function(el) {
	    el.previous().addClassName('accTrigger').observe('click', accToggle.bindAsEventListener(this, el));
	    if(!el.hasClassName('accRevealed')) { el.hide(); } 
	  });
	});
	
	// when($$("abbr,acronym,.help,.doToolTip"), function(e){
	// 	e.each(function(el) { new Tooltip(el, {mouseFollow: false, appearDuration: .10,delay: 0, opacity: .95}); });
	// });
});
