home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 2000 July / macformat-092.iso / Dreamweaver 3 / Configuration / Shared / MM / Scripts / CMN / niceName.js < prev    next >
Encoding:
Text File  |  1999-12-01  |  2.7 KB  |  72 lines

  1. //
  2. // Copyright 1999 Macromedia, Inc. All rights reserved.
  3. //
  4. //niceName.js
  5. //
  6. //given a full object reference, create a user friendly name
  7. //
  8. //--------------------------------------------------------------
  9. //
  10. //
  11. //niceNames(objRefArray,objTypeStr) {
  12. //nameReduce (objName) {
  13.  
  14.  
  15. //Converts an array of JS object references to an array of nice names.
  16. //For example, document.layers['layr1'].document.form1.img1 becomes
  17. //             image "img1" in form "form1" in layer "layr1"
  18. //Assumes all objects are of type objTypeStr, and the last token is the name
  19. //Note: I reverse the array of tokens to simplify nesting.
  20.  
  21. function niceNames(objRefArray,objTypeStr) {
  22.   var i, j, niceRef, tokens;
  23.   var niceNameArray = new Array(objRefArray.length);
  24.   for (i in objRefArray) {  //with object reference array
  25.     tokens = getTokens(objRefArray[i],".").reverse();   //split ref into tokens and rev order
  26.     if (tokens.length > 1) {
  27.       niceRef = objTypeStr + ' ' + nameReduce(tokens[0]);  //start building str, ie: image "foo"
  28.       if (tokens.length > 2) {  //reference includes some nesting...
  29.         if (tokens[1] != "document" && tokens[2] == "document") //inside form, add form reference
  30.           niceRef += ' ' + TYPE_Separator + ' ' + TYPE_Form + ' ' + nameReduce(tokens[1]);
  31.         for (j=1; j<tokens.length-1; j++) if (tokens[j].indexOf("layers[") == 0)
  32.             niceRef += ' ' + TYPE_Separator + ' ' + TYPE_Layer + ' ' + nameReduce(tokens[j]);
  33.         if (tokens[j] != "document")  //if top, parent, or window, expect frame
  34.           niceRef += ' ' + TYPE_Separator + ' ' + TYPE_Frame + ' ' + nameReduce(tokens[j-1]);
  35.       }
  36.     } else niceRef = objRefArray[i];
  37.     niceNameArray[i] = niceRef;
  38.   }
  39.   return niceNameArray;
  40. }
  41.  
  42.  
  43.  
  44. //Extracts a name or num from array string and quotes if necessary. So
  45. // myImg         => "myImg"
  46. // layers['foo'] => "foo"
  47. // embeds[0]     => 0
  48. // myImg[2]      => "myImg[2]"
  49.  
  50. function nameReduce (objName) {
  51.   var retVal, arrayTokens, pos;
  52.  
  53.   retVal = '"' + objName + '"';  //default is object wrapped in quotes
  54.   if ((pos=objName.indexOf("[")) > 0) {  //if it's an array
  55.     arrayTokens = getTokens(objName,"[]\"'");  //break up tokens
  56.     if (arrayTokens.length == 2) {  //if exactly two tokens
  57.       if ("frames layers forms embeds links anchors all".indexOf(arrayTokens[0]) != -1) { //if legal
  58.         if (arrayTokens[1] == ""+parseInt(arrayTokens[1])) //if a number
  59.           retVal = arrayTokens[1];
  60.         else                                               //else it's a string
  61.           retVal = '"' + arrayTokens[1] + '"';
  62.       } else { //move bracket number outside of quotes
  63.         retVal = '"'+objName.substring(0,pos)+'"'+objName.substring(pos);  //image1[0] => "image1"[0]
  64.       }
  65.     }
  66.   }
  67.   return retVal;
  68. }
  69.  
  70.  
  71.  
  72.