function FormManager(formId)
{this.form=document.getElementById(formId);this.editedObjects=new Array();this.edited=function(domElement){this.addEditedElement(domElement);}
this.shouldSave=function(){return(this.editedObjects.length>0);}
this.addEditedElement=function(domElement){for(var i=this.editedObjects.length-1;i>-1;i--)
if(this.editedObjects[i]==domElement)
return;this.editedObjects[this.editedObjects.length]=domElement;}
this.submit=function(button){this.setEdited();this.setAction(button.id);this.form.submit();}
this.setAction=function(action){var actionField=this.getField('action');if(!actionField)
{actionField=document.createElement('input');actionField.setAttribute('type','hidden');actionField.setAttribute('name','action');this.form.appendChild(actionField);}
actionField.value=action;}
this.setEdited=function(){var editedField=this.getField('edited');if(!editedField)
{editedField=document.createElement('input');editedField.setAttribute('type','hidden');editedField.setAttribute('name','edited');this.form.appendChild(editedField);}
editedField.value="";for(var i=0;i<this.editedObjects.length;i++)
{if(i>0)
editedField.value+=",'"+this.editedObjects[i].name+"'";else
editedField.value="'"+this.editedObjects[i].name+"'";}}
this.getField=function(name){var fields=document.getElementsByName(name);var field=null,parentField=null,length;for(var i=0;fields&&i<fields.length;i++)
{field=fields[i];parentField=field;while(parentField&&parentField!=this.form)
parentField=parentField.parentNode;if(parentField)return field;}
return null;}}