protected function addMemberAccountFields($page)
 {
     // create default field records
     $memberFields = singleton('Member')->getMemberFormFields()->dataFields();
     $pageFieldNames = array();
     foreach ($page->Fields() as $pageField) {
         $pageFieldNames[] = $pageField->MemberField;
     }
     foreach ($memberFields as $memberField) {
         if (!in_array($memberField->name, $pageFieldNames)) {
             $profileField = new MembersAccountField();
             $profileField->MemberField = $memberField->name;
             $profileField->AccountPageID = $page->ID;
             $profileField->write();
         } else {
             // remove field from $pageFieldNmes
             $key = array_search($memberField->name, $pageFieldNames);
             unset($pageFieldNames[$key]);
         }
     }
     // for each remaining item in $pageFieldNames delete the MemberAccountField
     foreach ($pageFieldNames as $name) {
         $toRemove = MembersAccountField::get()->filter('MemberField', $name);
         foreach ($toRemove as $removeField) {
             $removeField->delete();
         }
     }
 }
 protected function getMemberFields()
 {
     if (!self::$member_fields) {
         self::$member_fields = singleton('Member')->getMemberFormFields();
     }
     return self::$member_fields;
 }