function displayUsers()
{
     var url='modules.php?mod=adminusers';
     displayText('maincontent',url);           
     return false;
}

function displayUsersPage(pageno)
{
     url='modules.php?mod=adminusers&pageno='+pageno+userFilterURL();
     displayText('maincontent',url);
} 

function addUser()
{
     var url='modules.php?mod=adminusers&req=add';
     displayText('maincontent',url);           
     return false;
}

function insertUser()
{
     var form = document.getElementById('userform');
     if (!validateUserForm(form))
          return false;

     var url='modules.php?mod=adminusers&req=insert'+
               '&first='+encodeURIComponent(form.first.value)+
               '&last='+encodeURIComponent(form.last.value)+
               '&addr1='+encodeURIComponent(form.addr1.value)+
               '&addr2='+encodeURIComponent(form.addr2.value)+
               '&city='+encodeURIComponent(form.city.value)+
               '&state='+encodeURIComponent(form.state.value)+
               '&zip='+encodeURIComponent(form.zip.value)+
               '&country='+encodeURIComponent(form.country.value)+
               '&homeno='+encodeURIComponent(form.homeno.value)+
               '&faxno='+encodeURIComponent(form.faxno.value)+
               '&workno='+encodeURIComponent(form.workno.value)+
               '&email='+encodeURIComponent(form.email.value)+
			'&group='+encodeURIComponent(form.group.value)+
               '&Category='+encodeURIComponent(form.Category.value)+
               '&basicsass='+encodeURIComponent(form.basicsass.value)+
               '&DOB='+encodeURIComponent(form.DOB.value)+
               '&Expertise='+encodeURIComponent(form.Expertise.value)+
               '&CC='+encodeURIComponent(form.CC.value)+
               '&heard='+encodeURIComponent(form.heard.value)+
               '&status='+encodeURIComponent(form.status.value)+
               '&chksass='+encodeURIComponent(form.chksass.value)+
               '&transactionID='+encodeURIComponent(form.transactionID.value)+
               '&transactionresult='+encodeURIComponent(form.transactionresult.value)+
               '&transactionamount='+encodeURIComponent(form.transactionamount.value)+
               '&transactiondate='+encodeURIComponent(form.transactiondate.value)+
               '&passwd='+encodeURIComponent(form.pass1.value)+
               '&sass='+encodeURIComponent(form.sass.value)+
               '&Membership_type='+encodeURIComponent(form.Membership_type.value)+
               '&selectedMembership='+encodeURIComponent(form.selectedMembership.value)+
               '&datejoined='+encodeURIComponent(form.datejoined.value)+
               '&alias1='+encodeURIComponent(form.alias1.value)+
               '&alias2='+encodeURIComponent(form.alias2.value)+
               '&alias3='+encodeURIComponent(form.alias3.value);

     ret = serverFunction(url);

     displayUsers();
     return false;

}

function editUser(userid)
{
     var url='modules.php?mod=adminusers&req=edit&userid='+userid;
     displayText('maincontent',url);           
     return false;
}

function updateUser()
{
     var form = document.getElementById('userform');

     if (!validateUserForm(form))
          return false;

     var url='modules.php?mod=adminusers&req=update'+
          '&userID='+encodeURIComponent(form.userID.value)+
               '&first='+encodeURIComponent(form.first.value)+
               '&last='+encodeURIComponent(form.last.value)+
               '&addr1='+encodeURIComponent(form.addr1.value)+
               '&addr2='+encodeURIComponent(form.addr2.value)+
               '&city='+encodeURIComponent(form.city.value)+
               '&state='+encodeURIComponent(form.state.value)+
               '&zip='+encodeURIComponent(form.zip.value)+
               '&country='+encodeURIComponent(form.country.value)+
               '&homeno='+encodeURIComponent(form.homeno.value)+
               '&faxno='+encodeURIComponent(form.faxno.value)+
               '&workno='+encodeURIComponent(form.workno.value)+
               '&email='+encodeURIComponent(form.email.value)+
			'&group='+encodeURIComponent(form.group.value)+
               '&Category='+encodeURIComponent(form.Category.value)+
               '&basicsass='+encodeURIComponent(form.basicsass.value)+
               '&DOB='+encodeURIComponent(form.DOB.value)+
               '&Expertise='+encodeURIComponent(form.Expertise.value)+
               '&CC='+encodeURIComponent(form.CC.value)+
               '&heard='+encodeURIComponent(form.heard.value)+
               '&status='+encodeURIComponent(form.status.value)+
               '&chksass='+encodeURIComponent(form.chksass.value)+
               '&transactionID='+encodeURIComponent(form.transactionID.value)+
               '&transactionresult='+encodeURIComponent(form.transactionresult.value)+
               '&transactionamount='+encodeURIComponent(form.transactionamount.value)+
               '&transactiondate='+encodeURIComponent(form.transactiondate.value)+
               '&passwd='+encodeURIComponent(form.pass1.value)+
               '&sass='+encodeURIComponent(form.sass.value)+
               '&Membership_type='+encodeURIComponent(form.Membership_type.value)+
               '&selectedMembership='+encodeURIComponent(form.selectedMembership.value)+
               '&datejoined='+encodeURIComponent(form.datejoined.value)+
               '&alias1='+encodeURIComponent(form.alias1.value)+
               '&alias2='+encodeURIComponent(form.alias2.value)+
               '&alias3='+encodeURIComponent(form.alias3.value)+
			   '&confirm='+encodeURIComponent(form.confirm.value);
//     url = url + addCheckboxesURL();

     ret = serverFunction(url);
     displayUsers();
     return false;
}

function deleteUser(id,name,who)
{
     if (id == who)
          {
          alert('You cannot delete your own account.');
          return false;
          }
     if (id==1)
          {
          alert('You cannot delete a root user.');
          return false;
          }
     if (confirm("Are you sure you want to delete "+name))
          {
          url='modules.php?mod=adminusers&req=delete&id='+id;
          ret=serverFunction(url);
          displayText('maincontent','modules.php?mod=adminusers');         
          }
     return false;
}

function setUserSearchFilter()
{
     var url = 'modules.php?mod=adminusers'+userFilterURL();
     displayText('maincontent',url);
     var filter = document.getElementById('userfilter');
     filter.focus();

     // check for IE, extra code needed to keep focus on filter field.
      if (window.ActiveXObject) {
        var txtRange = filter.createTextRange();
        txtRange.moveStart( "character", filter.value.length);
        txtRange.moveEnd( "character", 0 );
        txtRange.select();
      }		
}

function userFilterURL()
{
     var filterdata = document.getElementById('userfilter').value;
     var field = document.getElementById('filterfield').value;

/*     if (document.getElementById('volunteer').checked==true) 
          var volunteer = '1'; 
     else 
          var volunteer = '0'; 
*/
     var url='&filter='+encodeURIComponent(filterdata)+
             '&field='+encodeURIComponent(field);
//             '&volunteer='+encodeURIComponent(volunteer);

     // put check box values for any optional field check boxes from bsp_users
     url = url; // + addCheckboxesURL();
     return url;
}

function addCheckboxesURL()
{
     var url='';
     for (x = 1; x <= 5; x++)
          {
          if (document.getElementById('chkbox'+x))
               {
               if (document.getElementById('chkbox'+x).checked == true)
                    url = url + '&chkbox'+x+'=1';
               else
                    url = url + '&chkbox'+x+'=0';
               }
          else
               url = url + '&chkbox'+x+'=0';
          }
     return url
}


function printUserReport(report)
{
     if (report == 0)
          return false;

     switch (report)
          {
          case 'labels':
               var url = 'modules.php?mod=adminusers&req=labels';
               if ( ! confirm("You've selected to print mailing labels.\nLoad Avery 5160/8160 labels into you printer\nand then select Print from the window menu."))
                    return false;
               break;
          case 'list':
               var url = 'modules.php?mod=adminusers&req=list';
               if ( ! confirm("You've selected to print a members list. Press OK to print or Cancel.\nWhen the window with your list appear select Print from the window menu."))
                    return false;
               break;
          }
     var win = window.open(url,'win','left=40,top=40,width=980,height=600,menubar=1,resizable=1,scrollbars=1'); 
     //win.print();
}



function validateUserForm(form)
{
     var error_message = "The following required fields are missing:";
     var errors=0;

     // if this is an update only check password if they entered data.
     if (form.userID.value==0 || (form.userID.value > 0 && ! isEmpty(form.pass1)) )
          {
           if (form.group.value == 0)
          {
          error_message = error_message + "\n\n\tYou must select a group";
          errors=1;
          }
          if (isEmpty(form.first))
          {
          error_message = error_message + "\n\tFirst Name";
          errors=1;
          }
           if (isEmpty(form.last))
          {
          error_message = error_message + "\n\tLast Name";
          errors=1;
          }
          if (isEmpty(form.pass1))
               {
               error_message = error_message + "\n\tPassword 1";
               errors=1;
               }

          if (isEmpty(form.pass2))
               {
               error_message = error_message + "\n\tPassword 2";
               errors=1;
               }
          if (form.pass1.textLength < 8 || form.pass2.textLength < 8)
               {
               error_message = error_message + "\n\tPassword must be minimum 8 characters.";
               errors=1;
               } 
          if (form.pass1.value != form.pass2.value)
               {
               error_message = error_message + "\n\tPassword entries do not match.";
               errors=1;
               }
          if (isEmpty(form.addr1))
               {
               error_message = error_message + "\n\tAddress 1";
               errors=1;
               }
         if (isEmpty(form.city))
               {
               error_message = error_message + "\n\tCity";
              errors=1;
             }
           if (form.state.value == 0)
             {
          	error_message = error_message + "\n\tState is missing";
         	 errors=1;
             }  
          if (isEmpty(form.zip))
               {
               error_message = error_message + "\n\tzip";
               errors=1;
               }
          } 
 
     if (!validEmail(form.email.value) && !isEmpty(form.email))
          {
          error_message = error_message + "\t\nEmail is formatted incorrectly";
          errors=1;
          }
      if (isEmpty(form.alias1))
           {
           error_message = error_message + "\n\tNeeds one alias";
           errors=1;
           }
     if (errors==0)
          return true;
     alert(error_message);
     return false;       
}
