\documentclass{article}
\usepackage[designiv]{web}
\usepackage[usealtadobe]{grayhints}\previewOff


\addtoWebHeight{1in}
\def\cs#1{\texttt{\char`\\#1}}
\parindent0pt


\begin{document}

\begin{center}
    \large\bfseries Gray Hints
\end{center}
The `gray hint' technique requires modifications to the Format,
Keystroke, OnFocus, and OnBlur events.\medskip

\textField[\textColor{\matchGray}
    \TU{Enter your first name}
    \AA{\AAFormat{\FmtToGray{First Name}}
    \AAKeystroke{\KeyToGray}
    \AAOnFocus{\JS{\FocusToBlack}}
    \AAOnBlur{\JS{\BlurToBlack}}
}]{Name.First}{2in}{11bp}\cgBdry[1em]
\textField[\textColor{\matchGray}
    \TU{Enter your last name}
    \AA{\AAFormat{\FmtToGray{Last Name}}
    \AAKeystroke{\KeyToGray}
    \AAOnFocus{\JS{\FocusToBlack}}
    \AAOnBlur{\JS{\BlurToBlack}}
}]{Name.Last}{2in}{11bp}\cgBdry[1em]\vcgBdry[3bp]
\textField[\textColor{\matchGray}
    \TU{Enter a date of your choosing}
    \AA{\AAKeystroke{AFDate_KeystrokeEx("yyyy/mm/dd");\r\KeyToGray}
    \AAFormat{AFDate_FormatEx("yyyy/mm/dd");\r\FmtToGray{yyyy/mm/dd}}
    \AAKeystroke{\KeyToGray}
    \AAOnFocus{\JS{\FocusToBlack}}
    \AAOnBlur{\JS{\BlurToBlack}}
}]{Datefield}{1in}{11bp}\cgBdry[1em]\vcgBdry[6bp]


The next three fields perform calculations, the last one is the sum of the
first two. These are fields formatted as numbers. To prevent `Total' field
from displaying a zero (0) when the dependent fields are empty (and to
display its gray hint instead), a document JavaScript function was developed,
named \texttt{AllowCalc(cArray)}. This function returns \texttt{true} if any
of the fields listed in \texttt{cArray} has a value and returns
\texttt{false}, otherwise.\vcgBdry[6bp]

\textField[\TU{Enter an integer}
    \textColor{\matchGray}\AA{%
    \AAKeystroke{EFNumber_Keystroke(0,1,0,0,"",true);\r\KeyToGray}
    \AAFormat{EFNumber_Format(0,1,0,0,"",true);\r\FmtToGray{First Integer}}
    \AAOnFocus{\JS{\FocusToBlack}}
    \AAOnBlur{\JS{\BlurToBlack}}}
]{Integer.First}{1in}{11bp}\vcgBdry[3bp]
\textField[\TU{Enter an integer}
    \textColor{\matchGray}\AA{%
    \AAKeystroke{EFNumber_Keystroke(0,1,0,0,"",true);\r\KeyToGray}
    \AAFormat{EFNumber_Format(0,1,0,0,"",true);\r\FmtToGray{Second Integer}}
    \AAOnFocus{\JS{\FocusToBlack}}
    \AAOnBlur{\JS{\BlurToBlack}}}
]{Integer.Second}{1in}{11bp}\vcgBdry[3bp]
\textField[\TU{The total for first and second integers}
    \textColor{\matchGray}\AA{%
    \AAKeystroke{EFNumber_Keystroke(0,1,0,0,"",true);\r\KeyToGray}
    \AAFormat{EFNumber_Format(0,1,0,0,"",true);\r\FmtToGray{Total}}
    \AACalculate{var cArray=new Array("Integer");\r
        if (AllowCalc(cArray)) AFSimple_Calculate("SUM", cArray );\r\CalcToGray}
    \AAOnFocus{\JS{\FocusToBlack}}
    \AAOnBlur{\JS{\BlurToBlack}}}
]{TotalNumbers}{1in}{11bp}\vcgBdry[6bp]



The gray hint technique can apply to editable combo boxes as well.\vcgBdry[3bp]
\comboBox[\textColor{\matchGray}
    \TU{Enter or choose your favorite food}\Ff{\FfEdit}
    \AA{\AAFormat{\FmtToGray{Enter your favorite food}}
    \AAKeystroke{\KeyToGray}
    \AAOnFocus{\JS{\FocusToBlack}}
    \AAOnBlur{\JS{\BlurToBlack}}
}]{combo}{1.65in}{11bp}{(Meat)(Potatoes)(Rice)(Onions)(Pickles)}\cgBdry[1em]
\pushButton[\CA{Reset}
    \TU{Press to clear to clear all fields.}
    \A{\JS{this.resetForm();}}]{reset}{}{11bp}\vcgBdry[6bp]

The color scheme of the gray hints is changed using
\cs{normalGrayColors}. The initial value of \cs{textColor}, which sets the
color of the text, must match, for appearance sake, the choice for the gray
color; for this reason, the \cs{matchGray} command was developed.\vcgBdry[6bp]

\normalGrayColors{blue}{magenta}
%\normalGrayColors{color.blue}{color.magenta}

\textField[\textColor{\matchGray}
    \TU{Enter your favorite pet's name}
    \AA{\AAFormat{\FmtToGray{Pet's name}}
    \AAKeystroke{\KeyToGray}
    \AAOnFocus{\JS{\FocusToBlack}}
    \AAOnBlur{\JS{\BlurToBlack}}
}]{Pet}{1in}{11bp}

\end{document}


\begin{document}
\begin{center}\large\bfseries Gray Hints
\end{center}
The `gray hint' technique requires the modification of the Format,
Calculate, OnFocus, and OnBlur events.\medskip

\textField[\textColor{\matchGray}
    \TU{Enter your first name}\AA{%
\AAFormat{\FmtToGray{First Name}}
    \AAKeystroke{\KeyToGray}
    \AAOnFocus{\JS{\FocusToBlack}}
    \AAOnBlur{\JS{\BlurToBlack}}}]{Name.First}{2in}{11bp}\vcgBdry[3bp]


\pushButton[\CA{Reset}
    \TU{Press to clear to clear all fields.}
    \A{\JS{this.resetForm();}}]{reset}{}{11bp}

\end{document}
