// ID of the (hidden) form field used to store the JSON representation of the // object being edited in this page var sJsonFieldId = 'json_object'; // The memory representation of the object var oObj = {}; // Mapping between the fields of the form and the attribute of the current object // If aFieldsMap[2] contains 'foo' it means that oObj.foo corresponds to the field // of Id 'att_2' in the form var aFieldsMap = new Array; // Update the whole object from the form and also update its // JSON (serialized) representation in the (hidden) field function UpdateObjectFromForm(aFieldsMap, oObj) { for(i=0; i iCurrentStep) { // Check the values when moving forward if (CheckMandatoryFields('wizStep'+iCurrentStep)) { oCurrentStep.style.display = 'none'; ActivateStep(iNextStep); } } else { oCurrentStep.style.display = 'none'; ActivateStep(iNextStep); } } function ActivateStep(iTargetStep) { UpdateObjectFromForm(aFieldsMap, oObj); var oNextStep = document.getElementById('wizStep'+(iTargetStep)); window.location.href='#step'+iTargetStep; // If a handler for entering this step exists, call it if (typeof(this['OnEnterStep'+iTargetStep]) == 'function') { eval( 'OnEnterStep'+iTargetStep+'();'); } oNextStep.style.display = ''; G_iCurrentStep = iTargetStep; $('#wizStep'+(iTargetStep)).block({ message: null }); } function AjaxGetValuesDef(oObj, sClass, sAttCode, iFieldId) { var oJSON = document.getElementById(sJsonFieldId); $.get('ajax.render.php?class=' + sClass + '&json_obj=' + oJSON.value + '&att_code=' + sAttCode, { operation: "allowed_values" }, function(data){ //$('#field_'+iFieldId).html(data); } ); } function AjaxGetDefaultValue(oObj, sClass, sAttCode, iFieldId) { // Asynchronously call the server to provide a default value if the field is // empty if (oObj['m_aCurrValues'][sAttCode] == '') { var oJSON = document.getElementById(sJsonFieldId); $.get('ajax.render.php?class=' + sClass + '&json_obj=' + oJSON.value + '&att_code=' + sAttCode, { operation: "default_value" }, function(json_data){ var oObj = ReloadObjectFromServer(json_data); UpdateFieldFromObject(iFieldId, aFieldsMap, oObj) } ); } } function CheckMandatoryFields(sFormId) { $('#'+sFormId+' :submit').attr('disable', 'disabled'); $('#'+sFormId+' :button[type=submit]').attr('disable', 'disabled'); firstErrorId = ''; var iErrorsCount = 0; $('#'+sFormId+' :input.mandatory').each( function() { if (( this.value == '') || (this.value == 0)) { this.style.background = '#fcc'; iErrorsCount++; if (iErrorsCount == 1) { firstErrorId = this.id; } } else { this.style.background = '#fff'; } } ); if(iErrorsCount > 0) { alert('Please fill-in all mandatory fields before continuing.'); $('#'+sFormId+' :submit').attr('disable', ''); $('#'+sFormId+' :button[type=submit]').attr('disable', ''); if (firstErrorId != '') { $('#'+firstErrorId).focus(); } } return(iErrorsCount == 0); }