home *** CD-ROM | disk | FTP | other *** search
/ Flash MX Savvy / FlashMX Savvy.iso / pc / WIN / UltraDev / UltraDev_Trial.exe / Disk1 / data1.cab / Configuration_En / Commands / Flash Button.js < prev    next >
Encoding:
JavaScript  |  2000-12-11  |  18.3 KB  |  542 lines

  1. // Copyright 2000 Macromedia, Inc. All rights reserved.
  2.  
  3. //*************** GLOBAL CONSTANTS *****************
  4. var helpDoc = MM.HELP_objFlashButton;
  5. var TYPE_STR = "Flash Button";
  6. var STYLE_EXT_STR = "swt";
  7. var TYPE_PARAMETER = "dwType";
  8. var BUTTON_TEXT_PARAMETER = "Button Text";
  9. var BUTTON_URL_PARAMETER = "Button URL";
  10. var BUTTON_TARGET_PARAMETER = "Button Target";
  11. var BUTTON_FONT_PARAMETER = "Button Font";
  12. var BUTTON_SIZE_PARAMETER = "Button Size";
  13. var YIELD_PATH = "../Shared/MM/Images/yield.gif";
  14. var DEFAULT_SIZE = 15;
  15. var MAX_PREVIEW_WIDTH = 230;
  16. var MAX_PREVIEW_HEIGHT = 50;
  17. var MAX_FILE_LENGTH = 23;
  18. //*************** GLOBAL VARIABLES *****************
  19. // UI Elements
  20. var MENU_FONTS, MENU_TARGET;
  21. var LIST_STYLES;
  22. var TEXT_LABEL, TEXT_LINK, TEXT_BG, TEXT_SAVEAS, TEXT_SIZE;
  23. var COLORP_BG;
  24. var SWF_SAMPLE;
  25. var AREA_WARNING;
  26. // other globals
  27. var FILE_CONFIG_PATH = dw.getConfigurationPath();
  28. var FILE_BUTTON_STYLES_PATH = FILE_CONFIG_PATH + "/Flash Objects/Flash Buttons";
  29. var FILE_CURRENT_DOC_PATH;
  30. var ARRAY_TARGET_STR = new Array("","_blank","_parent","_self","_top");
  31. var REEDIT_SWF_PATH="";
  32. var FLAG_OVERWRITE = new Object();
  33. FLAG_OVERWRITE.state = false;
  34. FLAG_OVERWRITE.reEdit = false;
  35. var FILE_BUTTON_PREVIEW_PATH = FILE_CONFIG_PATH + "/Flash Objects/Flash Buttons Preview";
  36. var LAST_SIZE=DEFAULT_SIZE;
  37. //******************* API **********************
  38. function commandButtons()
  39. {
  40.    return new Array( BTN_OK,  "cmdOK(); "
  41.                    , BTN_Apply, "cmdApply();"
  42.                    , BTN_Cancel, "cmdCancel();"
  43.                    , BTN_GetMoreStyles,'moreStyles();'
  44.                    , BTN_Help, 'displayHelp()');
  45. }
  46.  
  47. function cmdOK()
  48. {
  49.   var done = insertButtonHTML();
  50.   if (done)
  51.     window.close();
  52. }
  53.  
  54. function cmdApply()
  55. {
  56.  var filename = document.saveAsField.getAttribute("value");
  57.  insertButtonHTML();
  58.  FLAG_OVERWRITE.state = true;
  59.  FLAG_OVERWRITE.file = addExtention(filename, "swf");
  60. }
  61.  
  62. function cmdCancel()
  63. {
  64.   window.close();
  65. }
  66.  
  67. function moreStyles()
  68. {
  69.   dreamweaver.browseDocument('http://dynamic.macromedia.com/bin/MM/exchange/dreamweaver/main.jsp');
  70.   window.close();
  71. }
  72.  
  73. function receiveArguments(swfPath)
  74. {
  75.   var fileName, fileObj;
  76.   if (swfPath)
  77.   {
  78.     REEDIT_SWF_PATH = swfPath;
  79.     fileObj = new File(REEDIT_SWF_PATH);
  80.     fileName = fileObj.getName();
  81.     FLAG_OVERWRITE.state = true;
  82.     FLAG_OVERWRITE.reEdit = true;
  83.     FLAG_OVERWRITE.file = fileName;
  84.   }
  85. }
  86. //***************** LOCAL FUNCTIONS  ******************
  87.  
  88. function initializeUI()
  89. {
  90.   var i, fileObj, filterFunction, targetArray,currentSwfPath, swfButtonParams;
  91.   var fileName, filesArray, fontArray;
  92.   FILE_CURRENT_DOC_PATH = dw.getDocumentPath("document");
  93.       //Global UI Controls
  94.   LIST_STYLES = new ListControl("stylesList");
  95.   MENU_TARGET = new ListControl("targetMenu");
  96.   MENU_FONTS = new ListControl("fontMenu");
  97.   TEXT_SIZE = document.sizeField;
  98.   TEXT_LABEL = document.labelField;
  99.   TEXT_LINK = document.linkField;
  100.   TEXT_BG = document.bgColorField;
  101.   TEXT_SAVEAS = document.saveAsField;
  102.   COLORP_BG = document.bgColorPicker;
  103.   SWF_SAMPLE = document.swfPreview;
  104.   AREA_WARNING = document.warningMsg;
  105.     // set the Styles list
  106.   fileObj = new File(FILE_BUTTON_STYLES_PATH);
  107.   filterFunction =  new Function("x", "return x.isFile() && (x.getExtension().toLowerCase()=='swt');");
  108.   filesArray = fileObj.listFolder(filterFunction);
  109.   if (filesArray.length>0)
  110.     LIST_STYLES.setAll(getMenuList(filesArray),filesArray);
  111.   else
  112.   {
  113.     alert(MSG_NoTemplatesFound);
  114.     window.close();
  115.     return "";
  116.   }
  117.   // set font menu
  118.   fontArray = filterFonts(dw.getSystemFontList("TrueType"));
  119.   if (!fontArray)
  120.   {
  121.     alert(MSG_NoFontsInstalled);
  122.     window.close();
  123.     return "";
  124.   }
  125.   else
  126.     MENU_FONTS.setAll(fontArray,fontArray);
  127.   TEXT_SIZE.value = DEFAULT_SIZE;
  128.     // set the Preview field
  129.   updateUI("stylesList");
  130.     // set target menu
  131.   docFrames = dw.getDocumentDOM().getFrameNames();
  132.   targetArray = ARRAY_TARGET_STR;
  133.   if (docFrames)
  134.    targetArray = targetArray.concat(docFrames);
  135.   MENU_TARGET.setAll(targetArray, targetArray);
  136.     // set the default file name
  137.   TEXT_SAVEAS.setAttribute("value",createUniqueFilename("button", getDocumentDir(FILE_CURRENT_DOC_PATH),MAX_FILE_LENGTH));
  138.   if (REEDIT_SWF_PATH)
  139.   {
  140.     REEDIT_SWF_PATH =File.getFullUrl(REEDIT_SWF_PATH, FILE_CURRENT_DOC_PATH);  // modify button does not pass in full path
  141.     swfButtonParams = SWFFile.readFile(REEDIT_SWF_PATH);
  142.     swfButtonParams.unshift("templatePath");
  143. //    if (navigator.platform != "Win32")
  144.     if (!hasDoubleByteChar(swfButtonParams[1]))
  145.       swfButtonParams[1] = unescape(swfButtonParams[1]);
  146.     if (swfButtonParams.length % 2 != 0) // if last parameter has no value array is odd
  147.       swfButtonParams.push("");
  148.     populateUI(swfButtonParams,absoluteToRelativeURL(REEDIT_SWF_PATH, FILE_CURRENT_DOC_PATH,true));
  149.   }
  150.  
  151.   TEXT_LABEL.focus();
  152.   TEXT_LABEL.select();
  153.   return "";
  154. }
  155.  
  156. function updateUI(itemName)
  157. {
  158.   var currentStyle, browseURL, colorCP, colorF,previewFile, theLink, sizeArray;
  159.   switch(itemName)
  160.   {
  161.     case "stylesList":
  162.     {
  163.       currentStyle = LIST_STYLES.getValue();
  164.       stylePath = FILE_BUTTON_STYLES_PATH + "/"+ currentStyle;
  165.       previewFile = currentStyle.replace(/.swt/,".swf");
  166.       if (DWfile.exists(FILE_BUTTON_PREVIEW_PATH+"/"+previewFile))
  167.       {
  168.         // [gc] read in default settings from swf preview file
  169.         var defaultParams = SWFFile.readFile(FILE_BUTTON_PREVIEW_PATH+"/"+previewFile);
  170.         defaultParams.unshift("templatePath");
  171.         if (defaultParams.length % 2 != 0) // if last parameter has no value array is odd
  172.         defaultParams.push("");
  173.         var theFont = getValueFromParameters(BUTTON_FONT_PARAMETER, defaultParams);
  174.         var theSize = getValueFromParameters(BUTTON_SIZE_PARAMETER, defaultParams);
  175.         if (!REEDIT_SWF_PATH && theFont )
  176.         {
  177.           if ( !MENU_FONTS.pickValue(theFont) )
  178.           {
  179.             var warnMsg = MSG_DefaultFontDoesNotExist;
  180.             warnMsg = warnMsg.replace(/%s/,theFont);
  181.             AREA_WARNING.innerHTML = createWarningMsgHTML(warnMsg, YIELD_PATH);
  182.           }
  183.           else
  184.             AREA_WARNING.innerHTML = "";
  185.         }
  186.         if (!REEDIT_SWF_PATH && theSize)
  187.           TEXT_SIZE.value = theSize/20;
  188.         sizeArray = SWFFile.getNaturalSize(FILE_BUTTON_PREVIEW_PATH+"/"+previewFile);
  189.         SWF_SAMPLE.setAttribute("SRC",FILE_BUTTON_PREVIEW_PATH+"/"+previewFile);
  190.       }
  191.       else
  192.       {
  193.         if (AREA_WARNING.innerHTML != "")
  194.           AREA_WARNING.innerHTML = "";
  195.         sizeArray = SWFFile.getNaturalSize(stylePath);
  196.         SWF_SAMPLE.setAttribute("SRC",stylePath);
  197.       }
  198.      // resize preview area to natural size of template
  199.       if (sizeArray)
  200.       {
  201.         SWF_SAMPLE.setAttribute("WIDTH",sizeArray[0] > MAX_PREVIEW_WIDTH ? MAX_PREVIEW_WIDTH : sizeArray[0]);
  202.         SWF_SAMPLE.setAttribute("HEIGHT",sizeArray[1] > MAX_PREVIEW_HEIGHT ? MAX_PREVIEW_HEIGHT : sizeArray[1]);
  203.       }
  204.       break;
  205.     }
  206.     case "sizeField":
  207.     {
  208.       if (!isInteger(TEXT_SIZE.value))
  209.       {
  210.         TEXT_SIZE.value = LAST_SIZE;
  211.       }
  212.       else
  213.         LAST_SIZE = TEXT_SIZE.value
  214.     }
  215.     case "linkField":
  216.     {
  217. //    if (TEXT_LINK.value)
  218. //      document.targetMenu.setAttribute("disabled", "false");
  219. //    else
  220. //      document.targetMenu.setAttribute("disabled", "true");
  221.       theLink = TEXT_LINK.value;
  222.       if (isSiteRelative(theLink))
  223.         AREA_WARNING.innerHTML = createWarningMsgHTML(MSG_SiteRelLinkWarning, YIELD_PATH);
  224.       else if (isDocRel(theLink) && theLink!="#")
  225.         AREA_WARNING.innerHTML = createWarningMsgHTML(MSG_DocRelLinkWarning, YIELD_PATH);
  226.       else if (theLink.indexOf("file:///")!=-1)
  227.         AREA_WARNING.innerHTML = createWarningMsgHTML(MSG_LocalURLLinkWarning, YIELD_PATH);
  228.       else
  229.         AREA_WARNING.innerHTML = "";
  230.       break;
  231.     }
  232.     case "linkButton":
  233.     {
  234.       browseURL = dreamweaver.browseForFileURL("select",LABEL_Select, false, true);
  235.       if (browseURL)
  236.         TEXT_LINK.setAttribute("value", browseURL);
  237.       updateUI("linkField");
  238.       break;
  239.     }
  240.     case "bgColorPicker":
  241.     {
  242.       updateColorPicker("colorPicker",COLORP_BG,TEXT_BG);
  243.       break;
  244.     }
  245.     case "bgColorField":
  246.     {
  247.       updateColorPicker("colorField",COLORP_BG,TEXT_BG);
  248.       break;
  249.     }
  250.     case "saveAsButton":
  251.     {
  252.       browseURL = dreamweaver.browseForFileURL("save",LABEL_Select, false, true);
  253.       browseURL = absoluteToRelativeURL(browseURL, FILE_CURRENT_DOC_PATH,false);
  254.       if (browseURL)
  255.         TEXT_SAVEAS.setAttribute("value", browseURL);
  256.       break;
  257.     }
  258.   }
  259. }
  260.  
  261. function generateParametersArray()
  262. {
  263.   var retVal = new Array();
  264.   var theLink = TEXT_LINK.value;
  265.   if (!theLink)
  266.     theLink = "javascript:;";   // this fixes the crash on netscape when getURL=""
  267.   retVal[0] = TYPE_PARAMETER;
  268.   retVal[1] = TYPE_STR;
  269.   retVal[2] = BUTTON_TEXT_PARAMETER;
  270.   retVal[3] = TEXT_LABEL.value;
  271.   retVal[4] = BUTTON_URL_PARAMETER;
  272.   retVal[5] = theLink;
  273.   retVal[6] = BUTTON_TARGET_PARAMETER;
  274.   retVal[7] = MENU_TARGET.get();
  275.   retVal[8] = BUTTON_FONT_PARAMETER;
  276.   retVal[9] = MENU_FONTS.get();
  277.   retVal[10] = BUTTON_SIZE_PARAMETER
  278.   retVal[11] = convertPtToTwip(TEXT_SIZE.value);
  279.   return retVal;
  280. }
  281.  
  282. function createFlashTag(swfURL)
  283. {
  284.   var retVal= new Array();
  285.   var theLink = TEXT_LINK.value;
  286.   var docRelURL = absoluteToRelativeURL(swfURL, FILE_CURRENT_DOC_PATH,true);
  287.   var baseValue = ".";
  288.   var sizeArray = SWFFile.getNaturalSize(swfURL);
  289.   var width, height;
  290.   var bgcolor = TEXT_BG.value;
  291.  
  292.   if (sizeArray)
  293.   {
  294.     width = sizeArray[0];
  295.     height = sizeArray[1];
  296.   }
  297.   else
  298.   {
  299.     width = 32;
  300.     height = 32;
  301.   }
  302.   retVal.push('<OBJECT CLASSID="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"');
  303.   retVal.push(' CODEBASE="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=4,0,2,0"');
  304.   retVal.push(' WIDTH="' + width + '" HEIGHT="'+ height + '">\n');
  305.   retVal.push('<PARAM NAME=movie VALUE="' + docRelURL + '"> <PARAM NAME=quality VALUE=high>\n' );
  306.   if (isDocRel(theLink))
  307.     retVal.push('<PARAM NAME="BASE" VALUE="' + baseValue + '">\n');
  308.   retVal.push('<PARAM NAME="BGCOLOR" VALUE="' + bgcolor + '">\n');
  309.   retVal.push('<EMBED SRC="' + docRelURL +'"');
  310.   if (isDocRel(theLink))
  311.     retVal.push( ' BASE="' + baseValue+ '" ');
  312.   retVal.push(   ' quality=high PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" ' +
  313.          'TYPE="application/x-shockwave-flash" ');
  314.   retVal.push('WIDTH="' + width + '" HEIGHT="'+ height +'" ');
  315.   retVal.push('BGCOLOR="' + bgcolor + '">' +'</EMBED>\n' + '</OBJECT>');
  316.   return  retVal.join("");
  317. }
  318.  
  319. function insertButtonHTML()
  320. {
  321.   var data, outputFilePath,templateFile,currentStyle, canCreateFile=false;
  322.   var success=false, createFileMsg;
  323.   var theLink = TEXT_LINK.value;
  324.   var fileName = TEXT_SAVEAS.value;
  325.   var dom = dw.getDocumentDOM();
  326.   var selectedNode,wasPlaying, temp1, temp2;
  327.   if (dom.canStopPlugin())
  328.   {
  329.     dom.stopPlugin();
  330.     wasPlaying = true;
  331.   }
  332.   if (fileName.charAt(0) == " ")
  333.   {
  334.     alert(MSG_FilenameStartWithSpace);
  335.     return false;
  336.   }
  337.   if (!fileName)
  338.     alert(MSG_SaveAsFieldIsEmpty);
  339.   else if ((outputFilePath = resolveFilePath(fileName,FILE_CURRENT_DOC_PATH,"swf")) == "")
  340.     alert(errMsg(MSG_InvalidFileName,fileName));
  341.   else
  342.   {
  343.     outputFilePath = truncateFileName(MAX_FILE_LENGTH, outputFilePath);
  344.     if (!checkLink(theLink,outputFilePath,FILE_CURRENT_DOC_PATH))
  345.       return false;
  346.     if (DWfile.exists(outputFilePath) && DWfile.getAttributes(outputFilePath)=="R")
  347.     {
  348.       alert(errMsg(MSG_ReadOnlyFile,outputFilePath));
  349.       return false;
  350.     }
  351.     if (!DWfile.exists(outputFilePath) || (FLAG_OVERWRITE.state == true && FLAG_OVERWRITE.file == addExtention(fileName, "swf")))
  352.       canCreateFile=true;
  353.     else if (confirm(errMsg(MSG_FileAlreadyExists, outputFilePath)))
  354.       canCreateFile=true;
  355.     if (canCreateFile==true)
  356.     {
  357.       data = generateParametersArray();
  358.       currentStyle = LIST_STYLES.getValue();
  359.       templateFile = FILE_BUTTON_STYLES_PATH + "/" + currentStyle;
  360.       MM.setBusyCursor();
  361.       if (navigator.platform == "Win32")
  362.         createFileMsg = SWFFile.createFile(templateFile,data,outputFilePath);
  363.       else{
  364.         temp1 = (hasDoubleByteChar(templateFile)) ?   templateFile : escape(templateFile);
  365.         temp2 = (hasDoubleByteChar(outputFilePath)) ?   outputFilePath : escape(outputFilePath);
  366.         createFileMsg = SWFFile.createFile(temp1,data,temp2);
  367.       }
  368.       MM.clearBusyCursor();
  369.       if (createFileMsg=="noError")
  370.       {
  371.         if (!FLAG_OVERWRITE.reEdit)
  372.           dom.insertHTML(createFlashTag(outputFilePath), FLAG_OVERWRITE.state);
  373.         else
  374.         {
  375.           selectedNode = dom.getSelectedNode();
  376.           editButtonAttribute(outputFilePath,currentStyle,selectedNode);
  377. // **** next line is a hack that needs to be removed when setSelectedNode bug fixed
  378.           selectedNode.outerHTML = selectedNode.outerHTML;
  379. //        dom.setSelectedNode(selectedNode);
  380.         }
  381.         dom.notifyFlashObjectChanged();
  382.         success = true;
  383.       }
  384.       else
  385.         alert(generatorErrorMsg(createFileMsg,fileName));
  386.     }
  387.   }
  388.   if (wasPlaying)
  389.     dom.playPlugin();
  390.   return success;
  391. }
  392.  
  393. function populateUI(paramArray, fileName)
  394. {
  395.   var templatePath = getValueFromParameters("templatePath", paramArray);
  396.   var textLabel = getValueFromParameters(BUTTON_TEXT_PARAMETER, paramArray);
  397.   var theLink = getValueFromParameters(BUTTON_URL_PARAMETER, paramArray);
  398.   var theTarget = getValueFromParameters(BUTTON_TARGET_PARAMETER, paramArray);
  399.   var theFont = getValueFromParameters(BUTTON_FONT_PARAMETER, paramArray);
  400.   var theSize = getValueFromParameters(BUTTON_SIZE_PARAMETER, paramArray);
  401.   var tempFile = new File(templatePath);
  402.   var styleName = tempFile.getName();
  403.   var docDOM = dw.getDocumentDOM('document');
  404.   var bgcolor = getSelectedNodeAttr("BGCOLOR",docDOM);
  405.  
  406.   FLAG_OVERWRITE.style = tempFile.getSimpleName();
  407.   FLAG_OVERWRITE.width = getSelectedNodeAttr("WIDTH",docDOM);
  408.   FLAG_OVERWRITE.height = getSelectedNodeAttr("HEIGHT",docDOM);
  409.   if (!LIST_STYLES.pickValue(styleName))
  410.   {
  411.     if (!confirm(errMsg(MSG_TemplateNotFound, styleName)))
  412.     window.close();
  413.   }
  414.   if (!MENU_FONTS.pickValue(theFont))
  415.   {
  416.     if (!confirm(errMsg(MSG_FontDoesNotExist,theFont)))
  417.     window.close();
  418.   }
  419.   updateUI("stylesList");
  420. //  if (textLabel)
  421.     TEXT_LABEL.value = textLabel;
  422.   if (theLink && theLink !="javascript:;")
  423.     TEXT_LINK.value = theLink;
  424.   if (theTarget)  // ***** check to see if target exists
  425.     if (!MENU_TARGET.pickValue(theTarget))
  426.       {
  427.         if (!confirm(errMsg(MSG_FrameNotFound, theTarget)))
  428.           window.close();
  429.       }
  430.   TEXT_SAVEAS.value = fileName;
  431.   TEXT_SIZE.value = theSize/20;
  432.   if (bgcolor)
  433.     TEXT_BG.value = bgcolor;
  434.   updateUI('bgColorField');
  435.   return true;
  436. }
  437.  
  438. function generatorErrorMsg(createFileMsg,currentStyle,fileName)
  439. {
  440.   var generatorMsgArray = new Array("invalidData","initGeneratorFailed","outOfMemory","unknownError");
  441.   var returnMsgArray;
  442.   if ( "macos" == DWfile.getPlatform() )
  443.     returnMsgArray = new Array(MSG_InvalidData,MSG_InitGeneratorFailedMac,MSG_OutOfMemory,MSG_UnknownError);
  444.   else
  445.     returnMsgArray = new Array(MSG_InvalidData,MSG_InitGeneratorFailed,MSG_OutOfMemory,MSG_UnknownError);
  446.   var retVal = "";
  447.   if (createFileMsg == "invalidTemplateFile")
  448.     retVal = errMsg(MSG_InvalidButtonStyle,currentStyle);
  449.   else if (createFileMsg == "invalidOutputFile")
  450.     retVal = errMsg(MSG_InvalidFileName,fileName);
  451.   else
  452.   {
  453.     for (var i=0;i<generatorMsgArray.length;i++)
  454.     {
  455.       if (createFileMsg == generatorMsgArray[i])
  456.       {
  457.         retVal = returnMsgArray[i];
  458.         break;
  459.       }
  460.     }
  461.   }
  462.   return retVal;
  463. }
  464.  
  465. function editButtonAttribute(outputFilePath,currentStyle,selectedNode)
  466. {
  467.   var sizeArray = SWFFile.getNaturalSize(outputFilePath);
  468.   var bgcolor = TEXT_BG.value;
  469.   var width = sizeArray[0];
  470.   var height = sizeArray[1];
  471.   var theLink = TEXT_LINK.value;
  472.   var docRelURL = absoluteToRelativeURL(outputFilePath, FILE_CURRENT_DOC_PATH,true);
  473.   var tagsToAdd = new Array();
  474.   if (outputFilePath != REEDIT_SWF_PATH)
  475.   {
  476.     setFlashAttribute("PARAM","MOVIE",docRelURL,selectedNode,tagsToAdd);
  477.     setFlashAttribute("EMBED","SRC",docRelURL,selectedNode);
  478.   }
  479.  
  480.   var currentStyleName = currentStyle;
  481.   var index = currentStyleName.lastIndexOf(".");
  482.   if (index != -1)
  483.     currentStyleName = currentStyleName.substring(0,index);
  484.   if (currentStyleName != FLAG_OVERWRITE.style)
  485.   {
  486.     setFlashAttribute("OBJECT","WIDTH",width,selectedNode);
  487.     setFlashAttribute("OBJECT","HEIGHT",height,selectedNode);
  488.     setFlashAttribute("EMBED","WIDTH",width,selectedNode);
  489.     setFlashAttribute("EMBED","HEIGHT",height,selectedNode);
  490.   }
  491.   setFlashAttribute("EMBED","BGCOLOR",bgcolor,selectedNode);
  492.   setFlashAttribute("PARAM","BGCOLOR",bgcolor,selectedNode,tagsToAdd);
  493.   if (isDocRel(theLink))
  494.   {
  495.     setFlashAttribute("PARAM","BASE",".",selectedNode,tagsToAdd);
  496.     setFlashAttribute("EMBED","BASE",".",selectedNode);
  497.   }
  498.   else
  499.   {
  500.     setFlashAttribute("PARAM","BASE","",selectedNode,tagsToAdd,true);
  501.     setFlashAttribute("EMBED","BASE","",selectedNode);
  502.   }
  503.   if (tagsToAdd.length>0)
  504.     selectedNode.innerHTML = tagsToAdd.join("") + selectedNode.innerHTML;
  505. }
  506.  
  507. function getMenuItemNames(fileURL)
  508. {
  509.   var dom = dreamweaver.getDocumentDOM(fileURL);
  510.   var menuitemArray = new Array();
  511.   var retArray = new Array();
  512.  
  513.   menuitemArray = dom.getElementsByTagName("menuitem");
  514.   for (var i=0; i<menuitemArray.length; i++)
  515.   {
  516.     retArray[menuitemArray[i].getAttribute("FILE")] = menuitemArray[i].getAttribute("NAME");
  517.   }
  518.   return retArray;
  519. }
  520.  
  521. function getMenuList(fileList)
  522. {
  523.   var menuFile = FILE_CONFIG_PATH + "/Commands/Flash Button.xml"
  524.   var fileLabelHash = getMenuItemNames(menuFile);
  525.   var retArray = new Array();
  526.   var label,index;
  527.   for (var i=0; i<fileList.length;i++)
  528.   {
  529.     label = fileLabelHash[fileList[i]];
  530.     if (!label)
  531.     {
  532.       index = fileList[i].lastIndexOf(".");
  533.       if (index != -1)
  534.         label = fileList[i].substring(0, index);
  535.       else
  536.         label = fileList[i];
  537.     }
  538.     retArray.push(label);
  539.   }
  540.   return retArray;
  541. }
  542.