function ismaxlength(obj) { var mlength = obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : "" if (obj.getAttribute && obj.value.length > mlength) obj.value = obj.value.substring(0, mlength) } var lastPotterChangedElement; var lastPotterChangeTimeout; function processPotterInputChange(element) { if (lastPotterChangedElement){ var lastId = lastPotterChangedElement.id; var thisId = element.id; lastId = lastId.substring(0, lastId.lastIndexOf('|')); thisId = thisId.substring(0, thisId.lastIndexOf('|')); if( lastId != thisId){ doProcessPotterInputChange(lastPotterChangedElement); } } lastPotterChangedElement = element; if ( lastPotterChangeTimeout ) { clearTimeout(lastPotterChangeTimeout); } lastPotterChangeTimeout = setTimeout('potterCheckChangeTrigger()', 1); } function potterCheckChangeTrigger() { doProcessPotterInputChange(lastPotterChangedElement); lastPotterChangeTimeout = null; lastPotterChangedElement = null; } function potterClearChangeTrigger() { if ( lastPotterChangeTimeout ) { clearTimeout(lastPotterChangeTimeout); } lastPotterChangeTimeout = null; lastPotterChangedElement = null; return true; } function doProcessPotterInputChange(element) { if( !document.getElementById(element.id) ){ //alert('Ignoring ajax form sending, as main form has aready been submitted.'); return; } var formulary = element.form; var elementName = element.name; var _backup_bean = getFormInputValue(formulary, '_f:bean'); var _backup_prop = getFormInputValue(formulary, '_f:prop'); var _backup_pAction = getFormInputValue(formulary, 'pAction'); var _backup_handler = getFormInputValue(formulary, 'mvchandler'); var _backup_action = getFormInputValue(formulary, 'action'); /*var _backup_FormAction = formulary.action; */ prepareFormForHandler(formulary, 'com.polymita.potter.dynForms.processing.formProcessing.FormChangeHandler', 'process'); setFormInputValue( formulary, 'modifiedFieldName', elementName ); var formBody = getFormBody(formulary, false); setFormInputValue(formulary, '_f:bean', _backup_bean); setFormInputValue(formulary, '_f:prop', _backup_prop); setFormInputValue(formulary, 'pAction', _backup_pAction); setFormInputValue(formulary, 'mvchandler', _backup_handler); setFormInputValue(formulary, 'action', _backup_action); /*formulary.action = _backup_FormAction; */ var url = "Controller"; var formProcessor = new Object(); formProcessor.onresponse = function() { if (formProcessor.formRequest.readyState == 4) { if (formProcessor.formRequest.status == 200) { var xmlResponse = formProcessor.formRequest.responseXML; //alert("Received response "+formProcessor.formRequest.responseText); if (xmlResponse != null) { //alert("Received XML response "+xmlResponse); var setValues = xmlResponse.documentElement.getElementsByTagName('setvalue'); //alert("setValues="+setValues+" with size "+ (setValues?setValues.length:0) ); for (i = 0; i < setValues.length; i++) { var fieldId = setValues[i].getAttribute("name"); var fieldValue = setValues[i].getAttribute("value"); /*alert("Putting field "+fieldId+" = "+fieldValue);*/ formulary.elements[fieldId].value = fieldValue; } var setListValues = xmlResponse.documentElement.getElementsByTagName('setListValues'); //alert("setListValues ="+setListValues+" with size "+ (setListValues?setListValues.length:0) ); for (i = 0; i < setListValues.length; i++) { var fieldId = setListValues[i].getAttribute("name"); var formField = formulary.elements[fieldId]; if ( formField.nodeName.toLowerCase() == 'select') { var selectedValue = formField.options[formField.selectedIndex].value; var optionsToAdd = setListValues[i].getElementsByTagName("option"); if(optionsToAdd.length>0){ formField.options.length=1; //Leave first null element formField.disabled = false; for(j = 0; j