var formValues=new Array();function MonitorUpdateForm(){};MonitorUpdateForm.monitorForms=function(){for(var i=0;i<document.forms.length;i++){var f=document.forms[i];if(f.onreset){f.oldOnReset=f.onreset;}f.onreset=function(event){if(this.oldOnReset){this.oldOnReset(event);}for(var j=0;j<this.elements.length;j++){var field=this.elements[j];ElementUtil.removeClass(field,"MonitorForm_modified");}};formValues[f.name]=new Array();for(var j=0;j<f.elements.length;j++){var field=f.elements[j];this.monitorField(field);}}};MonitorUpdateForm.monitorField=function(field){if(field.onchange){field.oldOnChange=field.onchange;}if("text"==field.type||"password"==field.type||"textarea"==field.type||"checkbox"==field.type){}else{var value=this.getValue(field);if(value!=null){this.setDefaultValue(field,value);}}field.onchange=function(event){if(MonitorUpdateForm.hasChanged(this)){ElementUtil.addClass(this,"MonitorForm_modified");}else{ElementUtil.removeClass(this,"MonitorForm_modified");}if(this.oldOnChange){this.oldOnChange(event);}}};MonitorUpdateForm.setDefaultValue=function(elem,value){formValues[elem.form.name][elem.name]=value;};MonitorUpdateForm.getDefaultValue=function(elem){if("text"==elem.type||"password"==elem.type||"textarea"==elem.type){return elem.defaultValue;}else if("checkbox"==elem.type){return elem.defaultChecked;}return formValues[elem.form.name][elem.name];};MonitorUpdateForm.getValue=function(elem){var value=null;if("text"==elem.type||"password"==elem.type||"textarea"==elem.type||"checkbox"==elem.type){value=elem.value;}else if("select-one"==elem.type){if(elem.selectedIndex>=0){value=elem.selectedIndex;}else{value=0;}}else if("select-multiple"==elem.type){value=new Array();for(var i=0;i<elem.options.length;i++){if(elem.options[i].selected){value[value.length]=i;}}}else if("radio"==elem.type){if(elem.defaultChecked){value=elem.value;}}return value;};MonitorUpdateForm.hasChanged=function(elem){return!this.equals(this.getDefaultValue(elem),this.getValue(elem));};MonitorUpdateForm.equals=function(val1,val2){var type1=typeof(val1);var type2=typeof(val2);if(type1!=type2){return false;}if(Array.prototype.isPrototypeOf(val1)){if(val1.length!=val2.length){return false;}for(var i=0;i<val1.length;i++){if(!this.equals(val1[i],val2[i])){return false;}}return true;}return val1==val2;};
