//+-------------------------------------------------- // // Dialog header file. This file contains functions // common to all the dialogs. // //--------------------------------------------------- #define SEC_MOUSE_BUTTON 2 #define HTML_KEY_ESC 27 //+--------------------------------------------------------------------- // // Synopsis: Disables or enables a button depending in // whether there is text in txtFileName. // // Arguments: fEvent Whether or not the f'n was called by an // event // // Macro Arguments: NAME Sets the name of the function // (set##NAME##State)and the name of the // constant (g_f##NAME##Enabled) // BUTTON The button we're setting the state of. // TEXTBOX The textbox querying. // // Returns: nothing // //---------------------------------------------------------------------- #define setState(NAME, BUTTON, TEXTBOX) function set##NAME##State(fEvent) \ { \ if (fEvent && (event.propertyName != "value")) \ { \ return; \ } \ \ if (("" == TEXTBOX.value) == g_f##NAME##Enabled) \ { \ BUTTON.disabled = g_f##NAME##Enabled; \ g_f##NAME##Enabled = !g_f##NAME##Enabled; \ } \ } \ var g_f##NAME##Enabled = false; \ //+------------------------------------------------------------------------- // // Synopsis: Opens the help file with the appropriate helpid // // Arguments: elm The element we're looking for help with // // Returns: nothing // //-------------------------------------------------------------------------- function callHelp(elm) { if (null != elm.helpid) { // // Have to convert the helpid to a string // window.showHelp(elm.helpfile, "" + parseInt(elm.helpid), "popup"); } else { // // Walk up the tree until we reach the body tag or // an element with a help id. // if ("BODY" != elm.tagName) { callHelp(elm.parentElement); } } } // callHelp //---------------------------------------------------------------------- // // Synopsis: Discard the user's changes and dismiss the dialog. // // Arguments: none // // Returns: nothing // //---------------------------------------------------------------------- function btnCancelClick() { window.close(); } // btnCancelClick //+---------------------------------------------------------------------- // // Synopsis: Returns a range based on elm // // Arguments: elm An element // // Returns: a text range // //----------------------------------------------------------------------- function getTextRange(elm) { var r = elm.parentTextEdit.createTextRange(); r.moveToElementText(elm); return r; } // getTextRange //+---------------------------------------------------------------------- // // Synopsis: Checks to see if the secondary mouse button was clicked // and fires help if it was. // // Arguments: none // // Retuens: nothing // //----------------------------------------------------------------------- function mouseClick() { // // First, let's make sure we're not in a textbox // if (window.event.srcElement.id.substring(0,3) == "txt") { return; } if (window.event.button == SEC_MOUSE_BUTTON) { callHelp(window.event.srcElement); } } // mouseClick //+---------------------------------------------------------------------- // // Synopsis: If the enter key is pressed while in a textbox, // we do not want the default functionality. Instead, // we close the dialog, doing nothing. // // Arguments: none // // Retutns: nothing // //----------------------------------------------------------------------- function txtDefaultESC() { if (event.keyCode == HTML_KEY_ESC) { window.close(); return; } } // txtDefaultESC window.onerror = HandleError var L_Dialog_ErrorMessage = "An error has occurred in this dialog."; var L_ErrorNumber_Text = "Error: "; //+------------------------------------------------------------------- // // Synopsis: Turns off error messages in dialogs // // Arguments: none // // returns: true (tells browser not to handle message) // //-------------------------------------------------------------------- function HandleError(message, url, line) { var str = L_Dialog_ErrorMessage + "\n\n" + L_ErrorNumber_Text + line + "\n" + message; alert (str); window.close(); return true; }