// ##################################################
// DECLAIR VARIABLES
var lastcontentwidth=0,lastcontentheight=0;
var lastwindowWidth=0,lastwindowHeight=0,lastscrollOffsetX=0,lastscrollOffsetY=0;
var transfaderdiv_obj=null, loadingmsgdiv_obj=null, popuppaneldiv_obj=null, popupfaderdiv_obj=null;
var transfaderdiv_html='<div id="transfaderdiv" class="transfader"></div>';
var loadingmsgdiv_html='<div id="loadingmsgdiv" class="loadingmsg"></div>';
var popupfaderdiv_html='<div id="popupfaderdiv" class="transfader"></div>';
var popuppaneldiv_html='<div id="popuppaneldiv" class="popuppanel"></div>';
var grhhtml='<div id="grhdiv" style="display:none;position:absolute;"></div>';
document.write(grhhtml);
document.write(popupfaderdiv_html);
document.write(popuppaneldiv_html);
document.write(transfaderdiv_html);
document.write(loadingmsgdiv_html);

// DEFINE ARRAYS
var current_table=Array();
var current_divprefix=Array();//prefix for the current _pagetitle, _navigation, _paging, and _content
var current_parentarid=Array();
var current_funct=Array();//BROWSE, STRUCT or EDIT
var current_fields=Array();
var current_sortfield=Array();
var current_sortdir=Array();
var current_targetidentityfield=Array();
var current_identityfield=Array();
var current_identity=Array();
var current_istablelist=Array();
var current_pageid=Array();
var current_navcommand=Array();
var current_rowcount=Array();
var current_rowsperpage=Array();

var objcache_name=Array();
var objcache_obj=Array();

var structedit_fieldname='';
var navstack=Array();
var navstack_last=-1;
var default_rowsperpage=10;//will come in later when we allow user to select # of rows per page
var jstoexecute=Array();
var reloadingstructedit=false;

var readonly_fields=',ID,TableName,';
var hiddenstruct_fields=',FieldSort,OverviewSort,DefaultSearch,';

var alreadyclicked=false;
var alreadyclickedbutton=false;
var f_ID=null,f_FieldAlias=null,f_FieldType=null,f_DefaultValue=null,f_Hidden=null,f_FieldSort=null,f_OverviewSort=null,f_Image_Width=null,f_Image_Height=null,f_Thumbnail_Width=null,f_Thumbnail_Height=null,f_Is_Checkbox=null,f_DefaultSearch=null;

// BASE/POLE(SHAFT) OPTIONS
var Base_ID='';
var Base_Image='';
var Base_Height=0;
var Poll_ID='';
var Poll_Image='';
var Poll_Height=0;
var Poll_Diameter=0;
var PollImageWidth='';
var PollImageHeight='';
var Pole_Top_ID='';
var Pole_Mounting_Options_ID='';
var Pole_Electrical_Options_ID='';
var Pole_Assembly_Color_ID='';
var Tenon_Image = "/_uploaded_files/tenon_bottom.gif";
var Tenon_Image_Top = "/_uploaded_files/tenon_top.gif";

// LUMINAIRE OPTIONS
var Luminaire_Image='';
var Luminaire_ID='';
var Lens_Option_ID = '';
var Optical_Option_ID = '';
var Electrical_Option_ID = '';
var Style_Option_Luminaire_ID = '';
var Mounting_Options_ID = '';
var Source_ID = '';
var Voltage_ID = '';
var Socket_ID = '';
var Electrical_Assembly_ID = '';
var Luminaire_Assembly_Color_ID = '';

// BOLLARD OPTIONS
var Bollard_ID = '';

// ARM
var Post_Mount_Arm = '';
var Post_Mount_Arm_ID = '';
var Arm_Arangement_ID = '';
var Arm_Mount_Options_ID = '';
var Arm_Tenon_ID = '';
var Arm_Assembly_Color_ID = '';

// MISC OPTIONS
var PartNumber1 = '';
var PartNumber2 = '';
var PartNumber3 = '';
var PartNumber4 = '';
var PartNumber5 = '';


function ClearDiv(p_DivID) {
	p_htmlstr = ' ';
	if (document.getElementById) {
		document.getElementById(p_DivID).innerHTML = p_htmlstr;
	} else {
		with (document.layers[p_DivID].document) {
			open();
			write(p_htmlstr);
			close();
		}
	}
}

function UpdateDiv(p_DivID, p_htmlstr) {
	if (document.getElementById) {
		document.getElementById(p_DivID).innerHTML= p_htmlstr;
	} else {
		with (document.layers[p_DivID].document) {
			open();
			write(p_htmlstr);
			close();
		}
	}
}


function UpdateDivAppend(p_DivID, p_htmlstr) {
	if (document.getElementById) {
		if (document.getElementById(p_DivID)) {
			document.getElementById(p_DivID).innerHTML=document.getElementById(p_DivID).innerHTML + p_htmlstr;
		} else {
			//alert("a:" + p_DivID);
		}
	} else {
		with (document.layers[p_DivID].document) {
			open();
			write(p_htmlstr);
			close();
		}
	}
}


// ##################################################
// STANDARD INPUT / OUTPUT FUNCTIONS
function getpaginghtml(arid){
  var pages=Math.ceil(current_rowcount[arid]/current_rowsperpage[arid]);
  var paginghtml='';
  var pageslots=(pages>10)?10:pages;
  var leftslots=Math.floor(pageslots/2);
  var rightslots=pageslots-leftslots;
  var pagefrom=current_pageid[arid]-leftslots;//start off centered. Then apply boundaries
  var pageto=current_pageid[arid]+rightslots;
  if (pagefrom<1){
    pageto+=(1-pagefrom);
    pagefrom=1;
  }
  if (pageto>pages){
    pagefrom-=(pageto-pages);
    if (pagefrom<1) pagefrom=1;
    pageto=pages;
  }
    
  paginghtml+=' &nbsp; <a href="#" onclick="return refreshtable('+arid+');" class=recordpanellinks>[ Refresh ]</a>';

  
  if (current_funct[arid]=='STRUCT') {
	  paginghtml+=' &nbsp; <a href="#" onclick="CreateLinkTableName('+arid+'); return false;" class=recordpanellinks>[ Create Admin Link ]</a>';
    paginghtml+=' &nbsp; <a href="#" onclick="return dostruct('+arid+',\''+current_identity[arid]+'\');" class=recordpanellinks>[ Close ]</a>';
  }
  if (current_funct[arid]=='EDIT') {
    paginghtml+=' &nbsp; <a href="#" onclick="return closeedit('+arid+');" class=recordpanellinks>[ Close ]</a>';
  }
  paginghtml+='<br>';
  paginghtml+=' &nbsp; <span class=recordpanellinks>('+current_rowcount[arid]+' records)</span>';
  if (current_istablelist[arid]) {
    paginghtml+=' &nbsp; <a href="#" onclick="clickhandler(); return docreatetable();">[ Add New ]</a>';
  } else {
    if (current_funct[arid]=='STRUCT') {
      paginghtml+=' &nbsp; <a href="#" onclick="clickhandler(); return doeditstruct('+arid+',\'(NEW)\')">[ Add New ]</a>';
    } else {
      paginghtml+=' &nbsp; <a href="#" onclick="clickhandler(); return doedit('+arid+',\'(NEW)\')">[ Add New ]</a>';
    }
  }
  paginghtml+='<br>';
  
  if (current_pageid[arid]<=1)
    paginghtml+='<span class=paging_disabled>[previous]</span>';
  else
    paginghtml+='<a href="#" onclick="return turntopage('+arid+','+(current_pageid[arid]-1)+');">[previous]</a>';
  for (var p=pagefrom;p<=pageto;p++){
    if (p==current_pageid[arid]) {
      paginghtml+=' &nbsp;<span class=paging_disabled>'+p+'</span>';
    } else {
      paginghtml+=' &nbsp;<a href="#" onclick="return turntopage('+arid+','+p+');">'+p+'</a>';
    }
  }
  if (current_pageid[arid]>=pages)
    paginghtml+=' &nbsp;<span class=paging_disabled>[next]</span>';
  else
    paginghtml+=' &nbsp;<a href="#" onclick="return turntopage('+arid+','+(current_pageid[arid]+1)+');">[next]</a>';
      
  
  return paginghtml;
}

function getnavhtml(arid){
 var navhtml='';
 if (navstack_last>=0)
    navhtml='Back to ';
  for (var i=0;i<=navstack_last;i++){
    navhtml+=' <a href="#" onclick="return navstack_goto('+i+')">&lt;&lt; '+navstack[i][1]+'</a>';
  }
  return navhtml;
}

function is_editingfield(arid){
  return (current_funct[arid]=='EDIT' && current_funct[current_parentarid[arid]]=='STRUCT');
}

function getobj_cache(objname){
 for (var i=0;i<objcache_name.length;i++){
  if (objcache_name[i]==objname)
   return objcache_obj[i];
 }
 var obj=getobj(objname);
 objcache_name[objcache_name.length]=objname;
 objcache_obj[objcache_obj.length]=obj;
 return obj;
}

// SHOWS ERROR
function showerror(id,othermsg){
  alreadyclickedbutton=false;
  var msg='Error '+id;
  if (othermsg!=null) msg=othermsg;
  alert(msg);
}

// WRITES DATA TO A DIV
function WriteInnerHTML(p_DivID,p_htmlstr){
  if (document.getElementById) {
    document.getElementById(p_DivID).innerHTML= p_htmlstr;
  } else {
    with (document.layers[p_DivID].document) {
      open();
      write(p_htmlstr);
      close();
    }
  }
}

// LOAD TABLE
function writetabledata(arid,tablehtml){ //writes the data to the container divs
  hideloading();
  var parentobjname=current_divprefix[current_parentarid[arid]]+'_'+current_parentarid[arid]+'_'+current_identity[arid];//current_divprefix[current_parentarid[arid]];
  if (current_funct[arid]=='EDIT') {
    parentobjname='popuppaneldiv';
  }
  //changetext(parentobjname+'_pagetitle',getpaneltitle(arid));
  //changetext(parentobjname+'_navigation',getnavhtml(arid));
  //changetext(parentobjname+'_paging',getpaginghtml(arid));
  changetext(parentobjname+'_content',tablehtml);
  if (current_funct[arid]=='EDIT') {
    //get rendered width and height with same method as getrendered.. functions in common.js
    testtablehtml='<div style="width:766px;">'+tablehtml+'</div>';
    var grhobj=getobj_cache('grhdiv');
    changetext(grhobj,testtablehtml.replace(/display\:/i,'z:').replace(/height\:/i,''));
    setopacity(grhobj,0);
    showobj(grhobj);
    var contentwidth=getwidth(grhobj);
    var contentheight=getheight(grhobj);
    hideobj(grhobj);
    changetext(grhobj,'');
    showpopuppanel(arid,contentwidth,contentheight);
  }
  //debug(tablehtml);
}

function showloadinggif() {
	WriteInnerHTML ('Listings', '<div align=center id="Listings_0_"><img src="/ajax/loading.gif"></div>');
}
function showloading(arid){
  if (loadingmsgdiv_obj==null){
    loadingmsgdiv_obj=getobj('loadingmsgdiv');
    //changetext(loadingmsgdiv_obj,'Loading...');
  }
  var parentobjname=current_divprefix[current_parentarid[arid]]+'_'+current_parentarid[arid]+'_'+current_identity[arid];
  if (current_funct[arid]=='EDIT') parentobjname='popuppaneldiv';
  var parentobj=getobj(parentobjname);
  if (!parentobj) return;
  showtransfader(parentobj);
  var rect=findrect(parentobj);
  rect[1]=rect[1]+rect[3]/2;
  rect[3]=40;
  setrect(loadingmsgdiv_obj,rect);
  showobj(loadingmsgdiv_obj);
}

// HIDE LAODING DIV
function hideloading(){
  hidetransfader();
  hideobj(loadingmsgdiv_obj);
}

function hidetransfader(){
  hideobj(transfaderdiv_obj);
}

function showtransfader(objtofade){
  if (transfaderdiv_obj==null) transfaderdiv_obj=getobj('transfaderdiv');
  var rect=findrect(objtofade);
  if (rect[3]<80) rect[3]=80;
  var styleborderwidth=5;
  if (!is_ie) {//ie draws borders on the inside
    rect[2]-=styleborderwidth*2;
    rect[3]-=styleborderwidth*2;
  }
  setrect(transfaderdiv_obj,rect);
  setopacity(transfaderdiv_obj,30);
  showobj(transfaderdiv_obj);
}

function showpopuppanel(arid,contentwidth,contentheight){
  if (popupfaderdiv_obj==null) popupfaderdiv_obj=getobj('popupfaderdiv');
  if (popuppaneldiv_obj==null){
    popuppaneldiv_obj=getobj('popuppaneldiv');
//    changetext(popuppaneldiv_obj,'Loading...');
  }
  popuppaneldiv_obj.className='popuppanel'+(is_editingfield(arid)?'2':'');
  setopacity(popupfaderdiv_obj,30);
  popup_doresize(contentwidth,contentheight);
  setTimeout('popup_doresize()',200);
  showobj(popupfaderdiv_obj);
  showobj(popuppaneldiv_obj);
}

function hidepopuppanel(){
  hideobj(popuppaneldiv_obj);
  hideobj(popupfaderdiv_obj);
}

function popup_doresize(contentwidth,contentheight){
 var isonlycheck=false;
 if (contentwidth==null || contentheight==null){
   isonlycheck=true;
   contentwidth=lastcontentwidth;
   contentheight=lastcontentheight;
 } else {
   lastwindowWidth=0;
   lastwindowHeight=0;
   lastscrollOffsetX=0;
   lastscrollOffsetY=0;
 }
 lastcontentwidth=contentwidth;
 lastcontentheight=contentheight;
 
 contentheight+=180;//compensate for title, nav bar and bar on bottom
 contentwidth=(contentwidth<500?contentwidth=500:contentwidth);
 
 if (popuppaneldiv_obj==null) popuppaneldiv_obj=getobj("popuppaneldiv");
 getWindowSize();
 getScrollXY();
 if (isonlycheck) {//before we use up another tick, only continue if the window status has changed
   if (windowWidth==lastwindowWidth && windowHeight==lastwindowHeight && scrollOffsetX==lastscrollOffsetX && scrollOffsetY==lastscrollOffsetY){
     setTimeout('popup_doresize()',500);
     return;
   }
 }
 lastwindowWidth=windowWidth;
 lastwindowHeight=windowHeight;
 lastscrollOffsetX=scrollOffsetX;
 lastscrollOffsetY=scrollOffsetY;
 var minx=scrollOffsetX;
 var maxx=windowWidth+scrollOffsetX;
 var miny=scrollOffsetY;
 var maxy=windowHeight+scrollOffsetY;
 var distx=maxx-minx;
 var disty=maxy-miny;
 var docwidth=getpagewidth();
 var docheight=getpageheight();
 var px,py,pw,ph;
 if (docheight<windowHeight) docheight=document.body.height=windowHeight;
 var styleborderwidth=10;
 
 //popup shadow rect
 px=minx;
 py=miny;
 pw=maxx-minx;
 ph=maxy-miny;
 if (!is_ie) {//ie draws borders on the inside
   pw-=styleborderwidth*2;
   ph-=styleborderwidth*2;
 }
 var rect=Array(px,py,pw,ph);
 setrect(popupfaderdiv_obj,rect);
 
 //popup rect
 if (contentwidth>0){
   var newdistx=(distx>contentwidth)?contentwidth:distx;
   var newdisty=(disty>contentheight)?contentheight:disty;
   minx+=(distx-newdistx)/2;
   maxx-=(distx-newdistx)/2;
   miny+=(disty-newdisty)/2;
   maxy-=(disty-newdisty)/2;
 } 
 px=minx + 30;
 py=miny + 30;
 pw=maxx-minx-60;
 ph=maxy-miny-60;
 if (!is_ie) {//ie draws borders on the inside
   pw-=styleborderwidth*2;
   ph-=styleborderwidth*2;
 }
 rect=Array(px,py,pw,ph);
 setrect(popuppaneldiv_obj,rect);
 setTimeout('popup_doresize()',500);
}
//window.onresize=popup_doresize;
//window.onscroll=popup_doresize;

lastarid=0;
function getfreearid(){
  for (var i=0;i<=lastarid;i++){
    if (mt(current_table[i])){debug(i); return i;}
  }
  lastarid++;
  debug(lastarid);
  return lastarid;
}

function debug(txt){
  getobj('debug').value=txt.toString().replace(/\>/g,'\>\r\n');
}

function writetablepanels(arid){ //writes the container divs, not the data
  var parentobjname=current_divprefix[current_parentarid[arid]]+'_'+current_parentarid[arid]+'_'+current_identity[arid];
  var classprefix=(current_funct[arid]=='STRUCT' || is_editingfield(arid))?'nested_':'';
  var htmlout='';
  if (current_funct[arid]=='EDIT') {
    parentobjname='popuppaneldiv';
    //    showpopuppanel(arid);
    if (getobj(parentobjname+'_container')) return;//tables already written    
    htmlout='<div id="'+parentobjname+'_container" class='+classprefix+'containerborder><table cellspacing=0 cellpadding=0 border=0 class='+classprefix+'pagetitlediv>';
    htmlout+='<tr>';
    htmlout+=' <td><table cellspacing=0 cellpadding=0 border=0>';
    htmlout+=' <tr>';
    htmlout+='  <td><div class='+classprefix+'pagetitle_popup id="'+parentobjname+'_pagetitle"></div></td>';
    htmlout+=' </tr>';
    htmlout+=' <tr>';
    htmlout+='  <td style="padding-left:30px;"><div class='+classprefix+'navigation id="'+parentobjname+'_navigation"></div></td>';
    htmlout+=' </tr>';
    htmlout+=' </table></td>';
    htmlout+=' <td align=right><div class='+classprefix+'paging id="'+parentobjname+'_paging"></div></td>';
    htmlout+='</tr>';
    htmlout+='</table>';
    htmlout+='<div align=center id="'+parentobjname+'_content"></div>';
    htmlout+='<table cellspacing=0 cellpadding=0 border=0 class='+classprefix+'pagetitlediv height=20><tr><td></td></tr></table></div>';
  } else {
   if (getobj(parentobjname+'_container')) return;//tables already written
    htmlout='<div id="'+parentobjname+'_container" class='+classprefix+'containerborder>';
    //htmlout+='<table cellspacing=0 cellpadding=0 border=0 class='+classprefix+'pagetitlediv>';
    //htmlout+='<tr>';
    //htmlout+=' <td><table cellspacing=0 cellpadding=0 border=0>';
    //htmlout+=' <tr>';
    //htmlout+='  <td><div class='+classprefix+'pagetitle id="'+parentobjname+'_pagetitle"></div></td>';
    //htmlout+='  <td style="padding-left:30px;"><div class='+classprefix+'navigation id="'+parentobjname+'_navigation"></div></td>';
    //htmlout+=' </tr>';
    //htmlout+=' </table></td>';
    //htmlout+=' <td align=right><div class='+classprefix+'paging id="'+parentobjname+'_paging"></div></td>';
    //htmlout+='</tr>';
    //htmlout+='</table>';
    htmlout+='<div align=center id="'+parentobjname+'_content"></div>';
    //htmlout+='<table cellspacing=0 cellpadding=0 border=0 class='+classprefix+'pagetitlediv height=20><tr><td></td></tr></table>';
    htmlout+='</div>';
  }
  changetext(parentobjname,htmlout);
}

//pops stack up to arid
function navstack_pop(arid){
  navstack_last--;//for time sake and since we know there are no nested children currently within the 'edit' panel, we are shortcutting here. Later, walk through the children
}

function navstack_push(arid){
  navstack_last++;
  current_pageid[arid]=1;
  var navarray=Array(arid,current_navcommand[arid],current_table[arid],current_fields[arid],current_targetidentityfield[arid],current_identityfield[arid],current_identity[arid],current_sortfield[arid],current_sortdir[arid],current_pageid[arid],current_funct[arid],current_divprefix[arid],current_parentarid[arid]);
  navstack[navstack_last]=navarray;
//  shownav(arid);
}

function navstack_goto(stackid){
  var navarray=navstack[stackid];
  arid=navarray[0];
  current_navcommand[arid]=navarray[1];
  current_table[arid]=navarray[2];
  current_fields[arid]=navarray[3];
  current_targetidentityfield[arid]=navarray[4];
  current_identityfield[arid]=navarray[5];
  current_identity[arid]=navarray[6];
  current_sortfield[arid]=navarray[7];
  current_sortdir[arid]=navarray[8];
  current_pageid[arid]=navarray[9];
  current_funct[arid]=navarray[10];
//  current_divprefix[arid]=navarray[11];//LEFT OFF
//  current_parentarid[arid]=navarray[12];
  navstack_last=stackid-1;
  refreshtable(arid);
//  shownav(arid);
  return false;
}

function turntopage(arid,pageid){
 current_pageid[arid]=pageid;
 refreshtable(arid);
 return false;
}

function destroychildren(arid){
  //destroy any child panels
  //returns true on success. False may be returned if an edit is locking a child panel (future todo)
  //note - only erases first level of children. If we have children nested within children, then handle that later.
  for (var thisarid=0;thisarid<=lastarid;thisarid++){
    if (current_parentarid[thisarid]==arid)
      if (!destroypanel(thisarid)) return false;
  }
  return true;
}

function destroypanel(arid){
  //returns true on success. False may be returned if an edit is locking the panel (todo later)
  if (current_funct[arid]=='EDIT') {
    var divname='popuppaneldiv';
    hidepopuppanel();
    changetext(divname,'');
  } else {
    var varparentarid=current_parentarid[arid];
    var divname=current_divprefix[varparentarid]+'_'+varparentarid+'_'+current_identity[arid];
    changetext(divname,'');
  }
  current_table[arid]='';
  return true;
}

function rowclickhandler(commandtxt){
  if (alreadyclicked){
    alreadyclicked=false;
    return;
  }
  eval(commandtxt);
}

function clickhandler(){
  alreadyclicked=true;
  return false;
}

function execute_jte(){
  for (var i=0;i<jstoexecute.length;i++){
    eval(jstoexecute[i]);
  }
}

function InitializePage(arid,table,fields,identityfield,identity,sortfield,sortdir,pageid,funct) {
  if (!destroychildren(arid)) return false;//since we are loading/reloading this recordset, any children panels need to be destroyed.
  current_table[arid]=denull(table);
  current_fields[arid]=denull(fields);
  current_identity[arid]=denull(identity);
  current_identityfield[arid]=denull(identityfield);
  
  if (current_table[arid]=='FieldNames') {// Since current_identityfield gets overwritten after recordset loaded, we lose the original query for FieldName queries. This "messy" fix was hardcoded for sake of time.
    if (!isonlynumeric(current_identity[arid])) current_identityfield[arid]='TableName';
  }
  
  current_sortfield[arid]=denull(sortfield);
  current_sortdir[arid]=denull(sortdir);
  current_funct[arid]=denull(funct,'BROWSE');
  current_istablelist[arid]=(current_table[arid]==AJXC_listtables_tablename)?true:false;
  current_pageid[arid]=denull(pageid,1);
  current_divprefix[arid]=current_divprefix[current_parentarid[arid]]+'_'+current_parentarid[arid]+'_'+current_identity[arid];
  
  if (current_istablelist[arid] || current_funct[arid]=='STRUCT')
    current_rowsperpage[arid]=100000;
  else
    current_rowsperpage[arid]=default_rowsperpage;
  
  if (mt(table)) return;
  orderby=trim(current_sortfield[arid]+' '+current_sortdir[arid]);
  
  if (current_funct[arid]=='STRUCT' && current_sortfield[arid]!='FieldName') {
    orderby=(mt(orderby)?'':orderby+',')+'FieldName ASC';
  }
  var where=(mt(current_identity[arid]))?'':current_identityfield[arid]+'=\''+current_identity[arid]+'\'';
  var data=current_fields[arid]+AJXC_Delim_1+current_table[arid]+AJXC_Delim_1+where+AJXC_Delim_1+orderby+AJXC_Delim_1+current_pageid[arid]+AJXC_Delim_1+current_rowsperpage[arid]+AJXC_Delim_1+current_funct[arid];
//  alert(arid+' '+data);

  writetablepanels(arid);
  showloading(arid);
}



function getpaneltitle(arid){
  var title=current_table[arid];
  if (title=='FieldNames') title=current_identity[arid];
  title=convert_underscores(title);
  if (current_istablelist[arid]) {
    current_navcommand[arid]='List All Tables';
    return 'Listing All Tables';
  }
  if (current_funct[arid]=='BROWSE') {
    current_navcommand[arid]='Browse '+title;
    return 'Displaying '+title;
  }
  if (current_funct[arid]=='STRUCT') {
    current_navcommand[arid]='Structure for '+title;
    return 'Structure for table '+title;
  }
  if (current_funct[arid]=='EDIT') {
    if (is_editingfield(arid)) {
      if (mt(structedit_fieldname)){
        current_navcommand[arid]='New Field';
        return 'New field for table '+current_identity[current_parentarid[arid]];
      } else {
        var tnfn=current_identity[current_parentarid[arid]]+'.'+structedit_fieldname;
        current_navcommand[arid]='Structure for '+tnfn;
        return 'Structure for field '+tnfn;
      }
    }
    current_navcommand[arid]='Edit '+title+' Record';
    return 'Editing '+title+' Record';
  }
}

// #########################

