// $Id: reset.js,v 1.2.2.1 2007/01/05 09:06:02 max Exp $ function reset_form(formname, localDef) { var x, y, z, localDef, hash_radio; var form = document.forms.namedItem(formname); if (!form) return false; var hash_radio = []; for (x = 0; x < form.elements.length; x++) { var obj = form.elements[x]; if ((obj.tagName == 'INPUT' || obj.tagName == 'SELECT' || obj.tagName == 'TEXTAREA') && obj.name != '' && obj.type != 'hidden') { var reset_value = ''; var found = false; for (y = 0; y < localDef.length && !found; y++) { if (obj.name == localDef[y][0] || obj.id == localDef[y][0]) { reset_value = localDef[y][1]; found = true; } } if (!found) continue; if (obj.tagName == 'SELECT') { obj.selectedIndex = obj.multiple ? -1 : 0; reset_value = reset_value.valueOf(); var selectedItems = []; if (reset_value.length > 0) selectedItems = reset_value.split(','); for (z = 0; z < obj.options.length; z++) { for (y = 0; y < selectedItems.length; y++) { if (obj.options[z].value == selectedItems[y] || obj.options[z].text == selectedItems[y]) { obj.options[z].selected = true; } } } } else if (obj.tagName == 'INPUT' && obj.type == 'radio') { var is_found = false; for (z = 0; z < hash_radio.length; z++) { if (hash_radio[z][0] == obj.name) { is_found = hash_radio[z][1]; break; } } if (is_found == 'F') continue; obj.checked = (obj.value == reset_value || is_found === false); hash_radio[hash_radio.length] = new Array(obj.name, (obj.value == reset_value) ? "F" : ""); } else if (obj.tagName == 'INPUT' && obj.type == 'checkbox') { obj.checked = reset_value; } else { obj.value = reset_value; } if (!obj.disabled) { if(obj.onclick) obj.onclick.apply(obj); if (obj.onchange) obj.onchange.apply(obj); } } } }