function setValueAndSubmit(elementId, value) {
	var element = document.getElementById(elementId);
	element.value = value;
	element.form.submit();
}

function toggleVisibility(elementId) {
    var visible;
    var element = document.getElementById(elementId);
    var visibilityCookie = new Cookie(document, "visible", 24);
    visibilityCookie.load();
	if (element.style.display == "") {
		element.style.display = "none";
		visible = false;
		visibilityCookie[elementId] = "0";
	} else {
		element.style.display = "";
		visible = true;
		visibilityCookie[elementId] = "1";
	}
	visibilityCookie.store();
	return visible;
}

function hide(elementId) {
    var element = document.getElementById(elementId);
    var visibilityCookie = new Cookie(document, "visible", 24);
    visibilityCookie.load();
	element.style.display = "none";
	visibilityCookie[elementId] = "0";
	visibilityCookie.store();
}

function show(elementId) {
    var element = document.getElementById(elementId);
    var visibilityCookie = new Cookie(document, "visible", 24);
    visibilityCookie.load();
	element.style.display = "";
	visibilityCookie[elementId] = "1";
	visibilityCookie.store();
}

// Selects all checkboxes based on name rather than id
function selectAllCheckboxes(parentCheckbox, checkboxName) {
    var checkboxes = document.getElementsByName(checkboxName);
    for (var i = 0; i < checkboxes.length; i++) {
        checkboxes[i].checked = parentCheckbox.checked;
    }
}

function doSubmit(submitButton, hiddenSubmitId, action, disableIds) {
    if (disableIds != null) {
        for (var i = 0; i < disableIds.length; i++) {
            var element = document.getElementById(disableIds[i]);
            element.disabled = true;
        }
    }
    submitButton.value = "Please wait...";
    submitButton.disabled = true;
    var hiddenSubmit = document.getElementById(hiddenSubmitId);
    hiddenSubmit.value = action;
    hiddenSubmit.form.submit();
}

// Limits the length of an object's value and displays a popup message when the limit has been exceeded
function limitLength(o, length) {
    var limitExceeded = false;
    if (o.value.length > length) {
        limitExceeded = true;
    } else {
        return;
    }
    o.value = o.value.substr(0, length);
    if (limitExceeded) {
        var msg = "Data truncated. Maximum input length of ";
        msg += length;
        msg += " characters exceeded.";
        alert(msg);
    }
}

