function doCompleteRegistration( pForm ) {
   var bValid = true;
   try {
      if( pForm.elements['personalemail'].value == '' ||
          pForm.elements['personalemailcheck'].value == '' ||
          pForm.elements['password'].value == '' ||
          pForm.elements['passwordcheck'].value == '' ) {
         alert( "Personal Email, Personal Email check, Password, and Password check are required fields." );
         bValid = false;
      } else if( ( pForm.elements['personalemail'].value != pForm.elements['personalemailcheck'].value ) ||
          ( pForm.elements['password'].value != pForm.elements['passwordcheck'].value ) ) {
         alert( "Personal Email and Personal Email must match, and Password and Password must match." );
         bValid = false;
      } else if( pForm.elements['personalemail'].value.lastIndexOf("@") >= pForm.elements['personalemail'].value.lastIndexOf(".") - 1 ) {
         alert( "Please enter a valid email address");
         bValid = false;
      } else if( pForm.elements['password'].value.length<8 ) {
         alert( "Password must be at least 8 characters in length" );
         bValid = false;
      }
   }
   catch(e) {
      alert("Could not process a completed registration.  Please press the 'reload/refresh' button on your browser and then try again.");
      bValid = false;
   }
   if(bValid)
      pForm.submit();
}

var Registration = new function() {

   this.loadOffices = function( strCompanyId, bMulti ) {
      if(typeof bMulti=="undefined")bMulti=false;
      CyberCore.setInnerHtml('frmOfficeIdContainer', '<img src="/images/actions/loading_sm.gif" style="vertical-align:middle"> Looking up offices...' );
      try {
         var pResponseXml = g_CyberAjaxQueue.fetchUrl('/public/soa/getOfficeList.php', 'compid=' + CyberUrlEncode(strCompanyId) ).responseXML;
         var pOffices = CyberParseXMLToJS( pResponseXml );
         if( (typeof pOffices.offices) != 'object' ) {
            CyberCore.setInnerHtml('frmOfficeIdContainer', 'No offices were found.  Please check your Company #, and make sure you have entered your CREST EDG "COMP ID" value exactly.' );
            return;
         }

         //Assert: We have offices
         var strHtml = '';
         aOffices = CyberCore.makeArray(pOffices.offices.office);

         for(var i=0;i<aOffices.length;i++) {
           if(!bMulti)
               strHtml += '<label><input type=radio name="officeid" value="'+aOffices[i].OFFICE_ID+'"> ' + aOffices[i].OFFICE_ID + ' - '+ aOffices[i].ADDRESS1 +'</label>';
            else
               strHtml += '<label><input type=checkbox name="officeid[]" value="'+aOffices[i].OFFICE_KEY+'"> ' + aOffices[i].OFFICE_ID + ' - '+ aOffices[i].ADDRESS1 +'</label><br/>';
         }
         CyberCore.setInnerHtml('frmOfficeIdContainer', strHtml );
      } catch( e ) {
         //debug: alert( e.message );
         CyberCore.setInnerHtml('frmOfficeIdContainer', 'Could not load office list.  Please try pressing the reload button on your browser and re-entering your data.  If the problem persists, please contact the help desk.' );
      }
   }
}


