(action (let E (loc "*Err" err) (set E (head 1 (val E)))) (form NIL (unless *Post (=: obj (new! '(+Member)))) ( NIL NIL NIL ( NIL ,"firstname" (gui '(+E/R +TextField) '(fname : home obj) 10)) ( NIL ,"lastname" (gui '(+E/R +TextField) '(lname : home obj) 10)) ( NIL ,"username" (gui '(+E/R +MinLen +AlNum) '(uname : home obj) 6 10)) ( NIL ,"password" (gui '(+E/R +PwdCheck +MinLen +PwField) '(pwd : home obj) '(val> (: home pwd2)) 6 10)) ( NIL ,"password again" (gui 'pwd2 '(+PwField) 10 )) ( NIL ,"email" (gui '(+E/R +EmailField) '(email : home obj) 10)) ( NIL ,"zip" (gui '(+E/R +MinLen +NumField) '(zip : home obj) 6 10)) ( NIL ,"city" (gui '(+E/R +TextField) '(city : home obj) (asSelect> '+City))) ( NIL ,"birthdate" (
(gui '(+E/R +Fmt +Chart) '(bdate : home obj) '((Dat) (list (date Dat))) '((Lst) (and (caar Lst) (cadar Lst) (caddr (car Lst)) (date (car Lst)))) 3 ) (gui 1 '(+TextField) (getYears> '+Gh 18)) (gui 2 '(+Map +TextField) (make (for (I . M) *MonFmt (link (cons M I)))) *MonFmt) (gui 3 '(+TextField) (getDays> '+Gh)))) ( NIL ,"cellphone" (
(gui '(+E/R +Chart) '(cellnr : home obj) 2 '((Str) (let Len (length (find '((P) (pre? P Str)) (asSelect> '+CellPrefix))) (setq Str (chop Str)) (list (list (pack (cut Len 'Str)) (format (pack Str)))))) '((Lst) (pack (caar Lst) (cadar Lst)))) (gui 1 '(+TextField) (asSelect> '+CellPrefix)) (gui 2 '(+MinLen +NumField) 7 10 ))) ( NIL (gui '(+Button) ,"save" '(url "@start"))))))