function checkAll(begin, on_off) {
	for (j=0;j<document.forms.length;j++) {
		e=document.forms[j].elements;
		for (i=0;i < e.length;i++) {
			if (e[i].name==begin) e[i].checked=on_off;
		}
	}
	
	return;
}

function docheckAll(formname, field, fields) {
	if (eval('document.' + formname + '.' + field + '.checked')) {
		checkAll(fields, true);
	} else {
		checkAll(fields, false);
	}
	
	return;
}

function checkMain(elementid,on_off) {
	document.getElementById(elementid).checked = on_off;
}

function charCounterUpdate(field_obj, counter, maxchars, error_classname, error_msg) {
	var base_class = field_obj.className;
	
	//if the error class name is already part of the class name, strip it out
	var error_classname_index = base_class.indexOf(error_classname);
	if(error_classname_index >= 0) {
		base_class = base_class.substr(0,error_classname_index-1) + base_class.substr(error_classname_index + error_classname.length, base_class.length);
	}
	
	if(field_obj.value.length > maxchars) { // if too long
			field_obj.className = base_class + ' ' + error_classname;
			document.getElementById(counter).innerHTML = error_msg;
			document.getElementById(counter).className = error_classname;
	} else {
		field_obj.className = base_class;
		document.getElementById(counter).innerHTML = field_obj.value.length;
		document.getElementById(counter).className = '';
	}
}

function show_children_details(value) {
	if (value == 1 || value == 3) {
		show_elements_by_class_name('children_group', true, 'tr');
	} else {
		show_elements_by_class_name('children_group', false, 'tr');
		document.getElementById('has_children').value = 0;
		document.getElementById('extra_children_at_home').value = 0;
		slider_has_children.updateSlider();
		slider_extra_children_at_home.updateSlider();
	}
}

function show_ministry_details(value) {
	if (1 == value) { // Other ...
		show_elements_by_class_name('ministry_group', true, 'tr');
		$(".associated_ministry").addClass('toppad');
		$(".associated_ministry").removeClass('doublepad');
	} else {
		show_elements_by_class_name('ministry_group', false, 'tr');
		document.getElementById('extra_ministry_other').value = '';
		$(".associated_ministry").addClass('doublepad');
		$(".associated_ministry").removeClass('toppad');
	}
}

// This function requires that dom.js and tools.js be present
function show_elements_by_class_name(class_name, show, tag) {
	var elements = DOM.getElementsByClassName(class_name, tag);
	for (var i in elements) {
		if (show) {
			DOM.replaceClass(elements[i], "displaynone", "");
			elements[i].style.display = "";
		} else {
			DOM.replaceClass(elements[i], "displaynone", "");
			DOM.addClass(elements[i], "displaynone");
			elements[i].style.display = "block";
		}
	}
}


