home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 2000 July / macformat-092.iso / Dreamweaver 3 / Configuration / Objects / Forms / formInsert.js < prev    next >
Encoding:
Text File  |  1999-12-01  |  2.9 KB  |  98 lines

  1. //
  2. // Copyright 1999 Macromedia, Inc. All rights reserved.
  3. //
  4. //formInsert.js
  5. //
  6.  
  7. // Determine if the form object should be automatically wrapped in form.
  8. function getFormAddPref () {
  9.   var autoAdd, rtnValue = 'ASK';
  10.   var path = dreamweaver.getConfigurationPath() + '/Objects/Forms/formInsert.js';
  11.   var metaFile;
  12.   metaFile = MMNotes.open(path, false);
  13.   if (metaFile) {
  14.     autoAdd = MMNotes.get(metaFile, 'PREF_autoAdd');
  15.     if (autoAdd) rtnValue = autoAdd;
  16.     MMNotes.close(metaFile);
  17.   }
  18.   return rtnValue;
  19. }
  20.  
  21. function setFormAddPref (setValue) {
  22.   var path = dreamweaver.getConfigurationPath() + '/Objects/Forms/formInsert.js';
  23.   var metaFile;
  24.  
  25.   metaFile = MMNotes.open(path, true); // Force create the note file.
  26.   if (metaFile) {
  27.     if (setValue) autoAdd = MMNotes.set(metaFile, 'PREF_autoAdd', setValue);
  28.     MMNotes.close(metaFile);
  29.   }
  30. }
  31.  
  32. // Copyright 1999 Macromedia, Inc. All rights reserved.
  33.  
  34. function userConfirmAdd() {
  35.   var retVal = false;
  36.   var cmdName = 'ConfirmDS.htm';
  37.   var cmdFile = dreamweaver.getConfigurationPath() + '/Commands/' + cmdName;
  38.   
  39.   var cmdDOM = dreamweaver.getDocumentDOM(cmdFile);
  40.   if (cmdDOM) {
  41.     var cmdWin = cmdDOM.parentWindow;
  42.     // Pass one arg for OK/Cancel, or extra args to define btns
  43.     cmdWin.render(MSG_AutoFormAdd, BTN_Yes, BTN_No);
  44.     dreamweaver.popupCommand(cmdName);
  45.     retVal = (MMNotes.Confirm_RESULT == BTN_Yes); // Reference to confirm global result.
  46.     if (MMNotes.Confirm_DONOTSHOW) {
  47.       if (retVal) setFormAddPref('ADDFORM');
  48.       else setFormAddPref('NOFORM');
  49.     } else {
  50.       // setFormAddPref('ASK'); // Default value.
  51.     }
  52.   }
  53.   return retVal;
  54. }
  55.  
  56. function stripWhite(inStr) {
  57.   if (!inStr) return inStr;
  58.   var i, j; // Start and ending characters.
  59.   var whiteChar = ' \t\r\n\v\f';
  60.   for (i = 0; i < inStr.length ; i++) 
  61.     {if (whiteChar.indexOf(inStr.charAt(i))== -1) break;}
  62.   for (j = inStr.length; j > 0; j--) 
  63.     {if (whiteChar.indexOf(inStr.charAt(j-1))== -1) break;}
  64.   return inStr.substring(i, j);
  65. }
  66.  
  67. function returnFormTag(rtnStr) {
  68.   rtnStr = stripWhite(rtnStr);
  69.  
  70.   // Set variable for use only if input type is file
  71.   var encType = (rtnStr.indexOf('type="file"') != -1)?'enctype="multipart/form-data"':'';
  72.  
  73.   // If wrap form field preference is set.
  74.   if (!selectionInsideTag('form')) {
  75.     switch (getFormAddPref()) {
  76.     case 'ADDFORM':
  77.       // Check if there is a form around the current selection and wrap the returned tag.
  78.       rtnStr = '<form name="'+ makeUniqueName('form','form') + '" ' + encType +'>' + rtnStr + '\</form>';
  79.       break;
  80.  
  81.     case 'NOFORM':
  82.       // No form requested, do nothing.
  83.       break;
  84.       
  85.     case 'ASK':
  86.     default:
  87.       // Ask for confirmation before adding.
  88.       if (userConfirmAdd()) {
  89.           rtnStr = '<form name="'+ makeUniqueName('form','form') + '" ' + encType +'>' + rtnStr + '\</form>';
  90.       }
  91.       break;
  92.     }
  93.   }
  94.   
  95.   // Return the text field.
  96.   return rtnStr;
  97. }
  98.