/*
 * Checks the attached form for any data changes.  If data has NOT changed,
 * it updates the forms dataChanged hidden element with a value of false.
 * 
 * NOTE: This function expects to executed as the submit handler for the form being checked
 * NOTE: This function currently only handles hidden, text, checkbox, radio, and single-select drop downs.
 */
function checkDataChanges(formName) {
	try {
		var changed = false;
		var form = document.forms[formName];
		for(var i = 0; i < form.elements.length && !changed; i++) {
			if(form.elements[i].type == "text" || form.elements[i].type == "hidden") {
				if(form.elements[i].value != form.elements[i].defaultValue) {
					changed = true;
				}
			}
			else {
				if(form.elements[i].type == "select-one") {
					for(var j = 0; j < form.elements[i].options.length && !changed; j++) {
						if(form.elements[i].options[j].selected != form.elements[i].options[j].defaultSelected) {
							changed = true;
						}
					}
				}
				else {
					if(form.elements[i].type == "checkbox" || form.elements[i].type == "radio") {
						if(form.elements[i].checked != form.elements[i].defaultChecked) {
							changed = true;
						}
					}
				}
			}
		}

		if(!changed) {
			form.dataChanged.value = changed;
		}
	}
	catch(e) {
		// do nothing
	}

	return true;
}
