home *** CD-ROM | disk | FTP | other *** search
- // Copyright 1999 Macromedia, Inc. All rights reserved
-
- var helpDoc = MM.HELP_objEMailLink;
-
- //--------------- GLOBAL VARIABLES ---------------
-
- var gDialogShown = false;
- var gDefaultEmail = 'email@domain_name_here.com';
-
- //--------------- API FUNCTIONS ---------------
-
- function objectTag() {
- var EmailFld;
- var InsertText;
-
- if (gDialogShown) {
- EmailFld = document.MainForm.EmailFld.value;
- InsertText = document.MainForm.TextFld.value;
- // Save preferences.
- savePreferences();
- } else {
- setPreferences();
- EmailFld = document.MainForm.EmailFld.value;
- if (!EmailFld) EmailFld = gDefaultEmail;
- InsertText = document.MainForm.TextFld.value;
- if (!InsertText) InsertText = EmailFld;
- }
- var rtnString = '<a href="mailto:' + EmailFld + '">' + InsertText + '<'+'/a>'
-
- var curDOM = dw.getDocumentDOM('document');
- // Other Settings
- if (isCurSelectionTextOnly(curDOM)) {
- curDOM.insertHTML(rtnString, true); // Replaces current selection.
- rtnString = ''; // Set return value to empty, tag already inserted.
- }
- gDialogShown = false; // Reset show dialog global.
- return rtnString;
- }
-
- //--------------- LOCAL FUNCTIONS ---------------
-
- // Description: Determines if the current selection is contained within a text node.
- // Parameters: DOM - checked for valid, returns false if no DOM.
- function isCurSelectionTextOnly(curDOM) {
- var rtnBool = false;
- if (curDOM != null) {
- var curNode = curDOM.getSelectedNode();
- if (curNode.nodeType == Node.TEXT_NODE) { // Return true if we are a text node.
- rtnBool = true;
- } else { // Return true if the selection is contained within a single text node.
- if (curNode.hasChildNodes() && curNode.childNodes[0].nodeType == Node.TEXT_NODE) {
- var curSel = curDOM.getSelection();
- var nodeOffset = dw.nodeToOffsets(curNode.childNodes[0]);
- if ((nodeOffset[0] <= curSel[0]) && (curSel[1] <= nodeOffset[1])) {
- rtnBool = true;
- } } } }
- return rtnBool;
- }
-
- function setPreferences() {
- var metaFile, curVal;
- if (typeof MMNotes == 'undefined') {return;} // Check for MMNotes extension.
- metaFile = MMNotes.open(document.URL, false);
- if (metaFile) {
- // Form specific settings.
- curVal = MMNotes.get(metaFile, 'MM_pref_E-Mail');
- if (curVal) document.MainForm.EmailFld.value = curVal;
- MMNotes.close(metaFile);
- }
-
- var curDOM = dw.getDocumentDOM('document');
- // Other Settings
- if (isCurSelectionTextOnly(curDOM)) {
- var curSel = curDOM.getSelection();
- document.MainForm.TextFld.value = curDOM.documentElement.outerHTML.slice(curSel[0],curSel[1]);
- }
- }
-
- function savePreferences() {
- if (typeof MMNotes == 'undefined') {return;} // Check for MMNotes extension.
- var metaFile, curVal;
- metaFile = MMNotes.open(document.URL, true);
- if (metaFile) {
- curVal = MMNotes.set(metaFile, 'MM_pref_E-Mail', document.MainForm.EmailFld.value);
- MMNotes.close(metaFile);
- }
- }
-
- function initUI() {
- // Initialize the form dialog.
- // Set Saved Preferences.
- setPreferences();
-
- document.MainForm.TextFld.focus(); //set focus on textbox
- document.MainForm.TextFld.select(); //set insertion point into textbox
- gDialogShown = true;
- }
-