I have looked at many of files in lib/python/app and a other folders in the zope installation. I am looking for a way to change the interface a little. I see some recognizable stuff there, but can't figure out how most of the pages are created, how I could change them. I want to add a frame to the edit page so I can submit while editing without refreshing the page. I would have to put a frame and javascript function I wrote, and include below because it is very useful. This makes editing long docs in a textarea tolerable. I use it on a site with a lower frame where the user can see their changes and not lose their place as they edit/save. thanks, Richard function bgSubmit(frm) { frmHide = parent.frames["hidden"].document var nd="<form name='" + frm.name + "' action='" + frm.action + "' method='" + frm.method + "'>" for (i=0;i<document.forms[frm.name].elements.length;++i) { elem=document.forms[frm.name].elements[i] if (elem.type=="select-one" || elem.type=="select-multiple") { nd+="<select name='" + elem.name + "'" if (elem.type=="select-multiple") {nd+=" multiple "} nd+=">" for (x=0;x<elem.options.length;++x) { nd+="<option " if (elem.options[x].selected) {nd+="selected "} nd+="value='" + elem.options[x].value + "'>" + elem.options[x].text + "</option>" } nd+="</select>" }else if (elem.type=="textarea"){ nd +="<textarea name='" + elem.name + "'>" + elem.value + "</textarea>" } else { nd +="<input type='" + elem.type + "' name='" + elem.name + "' value='" + elem.value + "'" if (elem.checked) {nd+=" checked "} nd+=">" } } nd+="</form>" frmHide.open("text/html"); frmHide.write( nd ); frmHide.close(); parent.frames["hidden"].document.forms[0].submit() } //this function assume you have a frame named "hidden" and takes a form object as arg, e.g., bgSubmit (window.document.frmToSave)