var removecount=0, checkedcount=0;
var count, tablelength, initcount, newentries, ifirstname,removetext='', ilastname, iemail
enabledbuttons=new Array() 
//alert('memberlist.js loaded')
function init() {
  if (xGetElementById('memberlist')) {
      var table = xGetElementById('memberlist');
      tablelength = table.rows.length; 
      initcount = tablelength-2;count=initcount; newentries=0;
//alert('tablelength:'+tablelength+' initcount:'+initcount+' count:'+count);
   }   
  if (xGetElementById('membercount')){ //alert(xGetElementById('membercountinp').value);
  Form=xGetElementById('membercountinp').form;
  xInnerHtml('membercount',''+count);
 Form.membercountinp.value=count;
// alert(Form.name+' '+count)
}
checkbuttons=xGetElementsByAttribute('input','type','checkbox',ProcessCheckboxes)
//alert(checkedcount+' boxes checked')
logoff=xGetElementById('endsession')
if (logoff) {xAddEventListener(document,'focus',ExtendCookie,true);
	     xAddEventListener(document,'click',ExtendCookie,true);
            // xAddEventListener(logoff,'click',RemoveCookie,true)
             }
//xInnerHtml('javaout','Hello')
mainformv=xGetElementById('mainform');
//mainformv=document.mainform
if (mainformv.accessedit) {enabledbuttons=new Array('viewselected');alert('no write access')}
else {enabledbuttons=new Array('deleteselected','editselected','viewselected') }
//alert(enabledbuttons.length)
}
function RemoveCookie() {
//  alert(xGetCookie('userid'))
  xDeleteCookie('userid','/cgi-bin/nmr')
//  alert(xGetCookie('userid'))
}
function ExtendCookie() {
cname='userid'
myhost=window.location.hostname
myfullpath=window.location.pathname
pathstart=myfullpath.indexOf('/')
pathend=myfullpath.lastIndexOf('/')+1
mypath=myfullpath.substr(pathstart,pathend-pathstart)
nowms=new Date().getTime()
expires=new Date(nowms+120*1000)
if (xGetCookie(cname)) {
  cvalue=xGetCookie('userid')
//  xInnerHtml('javaout','Hello'+cvalue+' '+expires.toGMTString()+' '+mypath+' '+myhost)
  xSetCookie('userid',cvalue,expires,mypath,myhost,false)
}
}
function GetColumNoByTitle(table,title) {
   numcols=table.colums.length;
   alert(numcols+' columns')
}
function addRowToTable(tableid)
{
if (!tableid) tableid='memberlist'
var tbl = document.getElementById(tableid);
var lastRow = tbl.rows.length-1;
var numcols = tbl.rows[lastRow].cells.length;
var curdate = new Date(); // alert(curdate)
curday=padint(curdate.getDate(),2)
curmonth=padint(curdate.getMonth()+1,2)
curyear=padint(curdate.getFullYear(),4)
curdatestr=curmonth+'/'+curday+'/'+curyear
//alert(curmonth+'/'+curday+'/'+curyear)
// if there's no header row in the table, then iteration = lastRow + 1
var iteration = lastRow;
var row = tbl.insertRow(lastRow);
//First Cell with remove button
var cell1 = row.insertCell(0);
removeid='remove-'+iteration;
var el = document.createElement('input');
el.setAttribute('type', 'button');
el.setAttribute('value','Remove');
el.setAttribute('id', removeid)
el.OnClick = removeNewRowFromTable;
cell1.appendChild(el);
xAddEventListener(removeid,'click',removeNewRowFromTable);

// Second Cell with entry number
var cellLeft = row.insertCell(1);
var textNode = document.createTextNode(iteration);
cellLeft.appendChild(textNode);

// next cells for input
for (i=2;i<numcols;i++) {
  entryno=i-1;
  var cellRight = row.insertCell(i);
  var el = document.createElement('input');
  el.setAttribute('type', 'text');
  el.setAttribute('size', '8');
  el.setAttribute('name', 'entry'+iteration+'-'+entryno);
  el.setAttribute('id', 'entry'+iteration+'-'+entryno);
//  var setdate = new Array()
//  setdate=xGetElementsByClassName('adddate',tbl.rows[0].cells[i],'th'); alert(xInnerHtml(tbl.rows[0].cells[i])+' '+setdate.length)
//  if (setdate.length == 1) 
//alert(xInnerHtml(tbl.rows[0].cells[i]))
  nextyear=Number(curyear)+1;
  if (xInnerHtml(tbl.rows[0].cells[i]) == 'Date added') el.setAttribute('value', curmonth+'/'+curday+'/'+curyear)
  if (xInnerHtml(tbl.rows[0].cells[i]) == 'Date joined') el.setAttribute('value', curmonth+'/'+curday+'/'+curyear)
  if (xInnerHtml(tbl.rows[0].cells[i])  == 'Expiration Date') el.setAttribute('value', curmonth+'/'+curday+'/'+nextyear)
if (xInnerHtml(tbl.rows[lastRow+1].cells[i]) == 'Date added') el.setAttribute('value', curmonth+'/'+curday+'/'+curyear)
if (xInnerHtml(tbl.rows[lastRow+1].cells[i]) == 'Date joined') el.setAttribute('value', curmonth+'/'+curday+'/'+curyear)
if (xInnerHtml(tbl.rows[lastRow+1].cells[i]) == 'Expiration Date') el.setAttribute('value', curmonth+'/'+curday+'/'+nextyear)
//  el.setAttribute('size', '40');
//  el.onkeypress = keyPressTest;
  cellRight.appendChild(el);
}
count=count+1;
newentries=newentries+1;
counterinp=xGetElementById('membercountinp')
counterinp.value=count;
xInnerHtml('membercount',''+count);
for (i=1; i<=2; i++) { 
      savebutton=xGetElementById('save_'+i)
      savebutton.disabled=false
     }
window.location='#bottom';
}
function AddListserv() {
var rownum;
var firstnew=initcount+1;
var endcount=initcount+newentries;
//alert(initcount+'+'+newentries+'='+endcount)
var iemail=xGetElementById('iemail')
var iname=xGetElementById('iname')
var ifirstname=xGetElementById('ifirstname')
//alert(ifirstname.value+' '+iname.value+' '+iemail.value)
if (newentries > 0){
   for (i=firstnew;i<=endcount;i++) {
//      alert('initial:'+i)
     
       nameentry='entry'+i+'-'+iname.value;
       firstnameentry='entry'+i+'-'+ifirstname.value;
       emailentry='entry'+i+'-'+iemail.value;
       var addemail=xGetElementById(emailentry); 
       var addname=xGetElementById(nameentry); 
       var addfirstname=xGetElementById(firstnameentry)
       var addcmd=xGetElementById('emailadd')
//       alert(i+':'+addemail.value+':'+addfirstname.value+':'+addname.value)
       if (addemail.value != '') {
          document.EditList.emailtext.value=document.EditList.emailtext.value+
addcmd.value+addemail.value+' \n'   // try inserting name also: ('+addfirstname.value+' '+addname.value+')
//alert('hello')
       }
     }
alert('The following e-mail will be sent:\n'+document.EditList.emailtext.value);
}
}
function keyPressTest(e, obj)
{
var validateChkb = document.getElementById('chkValidateOnKeyPress');
if (validateChkb.checked) {
var displayObj = document.getElementById('spanOutput');
var key;
if(window.event) {Update
key = window.event.keyCode; 
}
else if(e.which) {
key = e.which;
}
var objId;
if (obj != null) {
objId = obj.id;
} else {
objId = this.id;
}
displayObj.innerHTML = objId + ' : '+String.fromCharCode(key);
 }
 }
function removeRowFromTableOld(tableid,rownum){
 var tbl =document.getElementById(tableid);
 var lastRow = tbl.rows.length;
 realrownum=rownum-removecount
 if (rownum != '' & rownum <= lastRow) {
     FirstName=xGetElementById('entry'+rownum+'-2').value; 
     Name=FirstName+' '+xGetElementById('entry'+rownum+'-1').value
    if (confirm('Delete '+Name+' (Entry '+rownum+' ?)') ) {
       tbl.deleteRow(realrownum);
       removecount++
    }
  }
   count=count-1; //alert(membercount+'='+lastRow+'-'+removecount)
   document.EditList.membercountinp.value=count;
   xInnerHtml('membercount',''+count);     
}
function removeRowFromTable(rembut) {
   var tbl = document.getElementById('memberlist');
   tablelength=tbl.rows.length
   var lastRow = tablelength-1;
   rembutid=rembut.id 
   Form=rembut.form
   var iemail=xGetElementById('iemail')
   var iname=xGetElementById('iname')
   var ifirstname=xGetElementById('ifirstname')
//alert(iemail.value+' '+iname.value+' '+ifirstname.value+' '+Form.name)
//   alert(rembutid) //
   temp=rembutid.split('-')
   rownum=temp[1];
   for (i=0;i<tbl.rows.length;i++) {
      curcell = tbl.rows[i].cells[1]
      curtext=ts_getInnerText(curcell)
//      xInnerHtml('javaout',xInnerHtml('javaout')+'<BR> Row '+i+'/'+tablelength+':'+curtext)
      if (rownum == curtext) 
          {clickrownum=i; }
   }
   clickrownum=rownum-removecount
   if (rownum != '' & clickrownum <= lastRow) {
     if (Form.name == 'EditList') {
        FirstName=xGetElementById('entry'+rownum+'-'+ifirstname.value).value; 
     Name=FirstName+' '+xGetElementById('entry'+rownum+'-'+iname.value).value
     Email=xGetElementById('entry'+rownum+'-'+iemail.value).value
   }
   else {
      icellfirstname=Number(ifirstname_js.value)+1; icellname=Number(iname_js.value)+1; icellemail=Number(iemail_js.value)+1
      curcell = tbl.rows[rownum].cells[icellfirstname]; FirstName=xInnerHtml(curcell)
      curcell = tbl.rows[rownum].cells[icellname]; Name=FirstName+' '+xInnerHtml(curcell)
      curcell = tbl.rows[rownum].cells[icellemail]; Email=xGetElementsByTagName('a',curcell)[0].text; 
//      alert(icellfirstname+' '+icellname+' '+icellemail+' '+Name+' '+Email)
   } 
     if (confirm('Delete '+Name+' (entry '+rownum+'/'+count+') ?') ) { 
//        emailentry='entry'+rownum+'-'+iemail.value;
//        var removeemail=xGetElementById(emailentry) 
//        alert('First variable set')
        var removecmd=xGetElementById('emailremove')
        var emailtext=xGetElementById('emailtext')
//        alert(removecmd.value+removeemail.value)
//        if (removeemail.value != '') {
         if (Email  != '') {
        emailtext.value=emailtext.value+removecmd.value+Email+'\n' }
//        alert('rownum:'+rownum+' clickrownum:'+clickrownum+'removecmd:'+removecmd.value+Email+' emailtext:'+emailtext.value)
        tbl.deleteRow(clickrownum); 
        removecount++; count=count-1;  
      }    
   }
   Form.membercountinp.value=count;
//   alert(removeemail.value)

//   alert(removeemail.value+' : '+document.EditList.emailtext.value) 
   xInnerHtml('membercount',''+count);   
}

function removeNewRowFromTable(evt) {
  var e = new xEvent(evt);
//   alert(e.target);
   var tbl = document.getElementById('memberlist');
   tablelength=tbl.rows.length
   var lastRow = tablelength-1;
   temp=e.target.id.split('-') 
   rownum=temp[1];
   for (i=0;i<tbl.rows.length;i++) {
      curcell = tbl.rows[i].cells[1]
      curtext=ts_getInnerText(curcell)
//      xInnerHtml('javaout',xInnerHtml('javaout')+'<BR> Row '+i+'/'+tablelength+':'+curtext)
      if (rownum == curtext) 
          {clickrownum=i; alert(clickrownum)}
   }
//   clickrownum=rownum-removecount
   if (rownum != '' & clickrownum <= lastRow) {
   
        FirstName=xGetElementById('entry'+rownum+'-2').value; 
     Name=FirstName+' '+xGetElementById('entry'+rownum+'-1').value
     if (confirm('Delete '+Name+' (entry '+rownum+'/'+count+') ?') ) { 
        emailentry='entry'+rownum+'-'+'4';
        var removeemail=xGetElementById(emailentry)
        if (removeemail.value != '') {
        document.EditList.emailtext.value=document.EditList.emailtext.value
+'delete scuwm gr8lake '+removeemail.value+'\n' }
        tbl.deleteRow(clickrownum); 
        removecount++; count=count-1;  
      }    
   }
   document.EditList.membercountinp.value=count;
//   alert(removeemail.value)

//   alert(removeemail.value+' : '+document.EditList.emailtext.value) 
   xInnerHtml('membercount',''+count);   
}
function alertExport() {
alert('A comma delimetered list will be generated.\n  Use the "Save As" function of your Browser and save the page'
+' as an ASCII  (.txt) file\nUse the "Back" button to return to your document');
}
function alertPrint() {
alert('A printable page will be created.\nUse the "Print" function of your Browser to print the page\n'
+'Use the "Back" button to return to your document')
}
function ProcessCheckboxes(but,evt) {
  if (but.value == 'select' | but.value == 'delete') {MarkRow(but,evt)}
  if (but.value == 'show') {HideColumn(but,evt)}  // temporary disabled
}
function MarkRow(but,evt) {
  curRow=xParent(xParent(but),'true')
   if (but.checked) {
       if (but.value == 'select') xBackground(curRow,'green')
       if (but.value == 'delete') {HideRow(but); removecount++} 
       checkedcount++ 
       for (bi=0; bi<enabledbuttons.length; bi++) {
         bid=enabledbuttons[bi]
         for (i=1; i<=2; i++) { 
           btn=xGetElementById(bid+'_'+i)
           if (btn && btn.disabled) { btn.disabled=false;  }
         }  
       }
  }
  else {
      xBackground(curRow,'transparent') 
//      alert('not checked')
      if (evt == 'click') { checkedcount--}
      if (checkedcount <= 0) {
         for (bi=0; bi<enabledbuttons.length; bi++) {
         bid=enabledbuttons[bi] 
           for (i=1; i<=2; i++) {
             btn=xGetElementById(bid+'_'+i); 
             if (btn) {btn.disabled=true}
           }
        }
      }
   }
//alert(but.name+'='+but.value+' New checkedcount='+checkedcount)
}
function PrepareDeleteMarked(but) {
if (but.checked) {
  myform=but.form
  myrow=xParent(xParent(but),'true'); //alert(xParent(but),'true')
  xBackground(myrow,'red')
  myindex=but.id.split('-')[1]
  myiname=Number(myform.iname_js.value)+1
  myifirstname=Number(myform.ifirstname_js.value)+1
  myiemail=Number(myform.iemail_js.value)+1
  myname=xInnerHtml(myrow.cells[myiname])
  myfirstname=xInnerHtml(myrow.cells[myifirstname])
  myemailcell=myrow.cells[myiemail] 
  myemail=xGetElementsByTagName('a',myemailcell)[0].text; 
  removetext=removetext+'\n'+myfirstname+' '+myname+' ('+myemail+')'
//  alert(but.id+' '+myindex+': '+myfirstname+' '+myname)
}
}
function HideRow(but) {
 if (but.checked) {
    but.value='delete'
    myrow=xParent(xParent(but),'true')
    xDisplay(myrow,'none')
    removecount++; count--
    xInnerHtml('membercount',''+count);
    but.form.elements['membercountinp'].value=count;
    
 } 
}
function HideColumn(but,evt) {
  mytable=xGetElementById('memberlist')
  numrows=mytable.rows.length
//  alert(but.name)
   colid=Number(but.name.split('-')[1]) 
//  alert('Button '+but.name+'('+xInnerHtml(mytable.rows[numrows-1].cells[colid])+') checked ? '+but.checked)
   if (but.checked) {
      if (navigator.appName=='Microsoft Internet Explorer') {disp='inline-block'}
      else {disp='table-cell'}
      col='yellow'
    }
   else {disp='none'; col='red'}
    olddisp=xDisplay(mytable.rows[0].cells[colid])
//    alert('iterating through all rows') 
  for (i=0;i<numrows;i++) {
    mycell=mytable.rows[i].cells[colid]
    xDisplay(mycell,disp)
//     xBackground(mycell,col)
  }
//  alert(xInnerHtml(mycell)+': Old:'+olddisp+' New:'+xDisplay(mycell))
}
function DeleteMarked(inp) {
  var myform=inp.form
//  alert('Searching for checked boxes in form '+myform.id)
  removetext='The following entries will be deleted:'
  checkbuttons=xGetElementsByAttribute('input','value','select',PrepareDeleteMarked)
  removetext=removetext+'\n '+checkedcount+'/'+checkbuttons.length+' Entries\nDo you want to continue ?'
  if (confirm(removetext)) {
    xGetElementsByAttribute('input','value','select',HideRow)
    for (i=1; i<=2; i++) { 
      savebutton=xGetElementById('save_'+i)
      savebutton.disabled=false
     } 
  }
  else {
    alert('request cancelled')    
  }  
}
