on mouseUp  --  ask "author's last name..."  if it is not empty or the result is not "cancel" then put it into lastName  --  put f1(char 1 of lastName) into cutter  --  if cutter is in "a,e,i,o,u"  then -- for names beginning with  "A,E,I,O,U"    put f2(char 2 of lastName) after cutter    put char 3 to 4 of lastName into fu    repeat with x = 1 to the number of chars in fu      put fuChar(char x of fu) after cutter    end repeat  end if  --  if cutter is "s" then -- for names beginning with "S"    put f3(char 2 of lastName) after cutter    put char 3 to 4 of lastName into fu    repeat with x=1 to the number of chars in fu      put fuChar(char x of fu) after cutter    end repeat  end if  --  if char 1 of lastName is q then    if char 2 of lastName is in "a,,b,c,d,e,f,g,h,i" then put 1 after cutter -- for names beginnig with "QA-QI"    if char 2 of lastName is in "j,k,l,m,n,o,p,r,s,t" then put 2 after cutter -- for names beginning with "QT"    if char 2 of lastName is in u then put f4(char 3 of lastName) after cutter -- beginning with "QU"    put char 4 to 5 of lastName into fu    repeat with x=1 to the number of chars in fu      put fuChar(char x of fu) after cutter    end repeat  end if  --  if cutter is in "b,c,d,f,g,h,j,k,l,m,n,p,q,r,s,t,v,w,x,y,z" then    put f3(char 2 of lastName) after cutter    put char 3 to 4 of lastName into fu    repeat with x=1 to the number of chars in fu      put fuChar(char x of fu) after cutter    end repeat  end if  --  put cutter into cd field "newCutter"  --end mouseUpfunction fuChar aChar  if aChar is in "a,b" then return 1  if aChar is in "c,d" then return 2  if aChar is in "e,f" then return 3  if aChar is in "g,h" then return 4  if aChar is in "i,j,k,l" then return 5  if aChar is in "m,n,o" then return 6  if aChar is in "p,q,r" then return 7  if aChar is in "s,t,u" then return 8  if aChar is in "v,w,x,y,z" then return 9  return 0end fuCharfunction f1 aChar  get the charToNum of aChar  if it > 91 then subtract 32 from it -- make sure cutter's first char is upper case  return the numToChar of itend f1function f2 aChar  if aChar is in "a,b" then return 1  if aChar is in "c,d,e,f" then return 2  if aChar is in "g,h,i,j,k" then return 3  if aChar is in "l,m,m" then return 4  if aChar is in "n,o" then return 5  if aChar is in "p,q" then return 6  if aChar is in "r" then return 7  if aChar is in "s,t" then return 8  if aChar is in "u,v,w,x,y,z" then return 9  return 0end f2function f3 aChar  if aChar is "a" then return 1  if aChar is "b" then return 2  if aChar is "c" then return 3  if aChar is in "d,e" then return 4  if aChar is in "h,i,j,k" then return 5  if aChar is in "l,m,n,o,p" then return 6  if aChar is in "q,r,s,t" then return 7  if aChar is in "u,v" then return 8  if aChar is in "w,x,y,z" then return 9  return 0end f3function f4 aChar  if aChar is "a" then return 3  if aChar is "e" then return 4  if aChar is "i" then return 5  if aChar is "o" then return 6  if aChar is "r" then return 7  if aChar is "t" then return 8  if aChar is "y" then return 9  return 0end f4function f5 aChar  if aChar is "a" then return 1  if aChar is "b,c,d" then return 2  if aChar is "e" then return 3  if aChar is in "f,g" then return 4  if aChar is in "h,i,j,k" then return 5  if aChar is in "l,m,n,o,p" then return 6  if aChar is in "q,r,s,t" then return 7  if aChar is in "u,v,w,x" then return 8  if aChar is in "y,z" then return 9  return 0end f5