// charrnet.js

function submitData() {
	return submitData("dataForm");
}

function hasChanges(frm) {
	var hasChanges = false;
	
	if(frm) {
		hasChanges = formHasChanges(frm);
	} else {
		for(var i = 0; i < document.forms.length && !hasChanges; i++) {
			hasChanges = formHasChanges(document.forms[i]);
		}
	}
	
	return hasChanges;
}

function formHasChanges(frm) {
	var hasChanges = false;
	
	for(var j = 0; j < frm.elements.length && !hasChanges; j++) {
		var el = frm.elements[j];
		
		switch(el.type) {
			case "text":
				hasChanges = (el.defaultValue != undefined && el.value != el.defaultValue); break;
			case "radio":
				hasChanges = (el.defaultChecked != undefined && el.checked != el.defaultChecked); break;
			case "checkbox":
				if(!el.length) {
					hasChanges = (el.defaultChecked != undefined && el.checked != el.defaultChecked);
				} else {
					for(var k = 0; k < el.length && !hasChanges; k++) {
						hasChanges = (el[k].defaultChecked != undefined && el[k].checked != el[k].defaultChecked);
					}
				}
				break;
			case "select-one":
			case "select-multi":
				for(var k = 0; k < el.options.length && !hasChanges; k++) {
					hasChanges = (el.options[k].defaultSelected != undefined && el.options[k].selected != el.options[k].defaultSelected);
				}
				break;
		}
	}
	
	return hasChanges;
}