
// put user-interface (wrt an HTML page) JavaScript functions here

// good for auto-tabbing to the next input field once the max length of the current field is reached
function moveOnMax(field, nextFieldID){
	if (field.value.length >= field.maxLength) {
		document.getElementById(nextFieldID).focus();
	}
}

// good for OPTIONALLY clearing the value so long as it only contains the given value
function clear_value_on_match(el_id, value) {
	if ($(el_id).value == value) {
		$(el_id).value = '';
	}
}

// you should attach this to "onkeydown" and "onkeyup" events on a textarea.
// this requires prototype.
function char_limit_check(limit_field_id, limit, countdown_id) {
	if ($(limit_field_id).value.length > limit) {
		$(limit_field_id).value = $(limit_field_id).value.substring(0, limit);
	} else {
		if ($(countdown_id)) {
			$(countdown_id).innerHTML = limit - $(limit_field_id).value.length;
		}
	}
}

// you should attach this to "onkeydown" and "onkeyup" events on a textarea.
// this requires jquery 
function char_limit_check_jquery(limit_field_id, limit, countdown_id) {
	if ($('#' + limit_field_id).val().length > limit) {
		$('#' + limit_field_id).val($('#' + limit_field_id).val().substring(0, limit));
	} else {
		if ($('#' + countdown_id)) {
			$('#' + countdown_id).innerHTML = limit - $('#' + limit_field_id).val().length;
		}
	}
}

function go_to_top_of_page() {
	window.scrollTo(0, 0);
}

function disable_if_unchecked(checkbox_id, element_ids, enable_if_checked) {
	if ($('#' + checkbox_id).is(':checked')) {
		if (enable_if_checked) {
			for (var i = 0; i < element_ids.length; i++) {
				$('#' + element_ids[i]).attr('disabled', false);
			}
		}
	} else {
		for (var i = 0; i < element_ids.length; i++) {
			$('#' + element_ids[i]).attr('disabled', true);
		}
	}
}

function uncheck_if_unchecked(checkbox_id, element_ids, check_if_checked) {
	if ($('#' + checkbox_id).is(':checked')) {
		if (check_if_checked) {
			for (var i = 0; i < element_ids.length; i++) {
				$('#' + element_ids[i]).attr('checked', true);
			}
		}
	} else {
		for (var i = 0; i < element_ids.length; i++) {
			$('#' + element_ids[i]).attr('checked', false);
		}
	}
}

function check_if_checked(checkbox_id, element_ids) {
	if ($('#' + checkbox_id).is(':checked')) {
		for (var i = 0; i < element_ids.length; i++) {
			$('#' + element_ids[i]).attr('checked', true);
		}
	}
}

function enable_if_checked(checkbox_id, element_ids) {
	if ($('#' + checkbox_id).is(':checked')) {
		for (var i = 0; i < element_ids.length; i++) {
			$('#' + element_ids[i]).attr('disabled', false);
		}
	}
}

