home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2006 January / Gamestar_80_2006-01_dvd.iso / Utility / 5-11_xp-2k_dd_ccc_wdm_enu_27345.exe / Data1.cab / _82F21C06AB2C459B9470B438147A0655 < prev    next >
Text File  |  2003-09-15  |  11KB  |  418 lines

  1. // Copyright (c) 2000-2003 Quadralay Corporation.  All rights reserved.
  2. //
  3.  
  4. function  WWHStringUtilities_GetBaseURL(ParamURL)
  5. {
  6.   var  BaseURL;
  7.   var  Parts;
  8.  
  9.  
  10.   // Remove URL parameters
  11.   //
  12.   BaseURL = ParamURL;
  13.   if (BaseURL.indexOf("?") != -1)
  14.   {
  15.     Parts = BaseURL.split("?");
  16.     BaseURL = Parts[0];
  17.   }
  18.  
  19.   // Trim down to last referenced directory
  20.   //
  21.   BaseURL = ParamURL.substring(0, ParamURL.lastIndexOf("/"));
  22.  
  23.   // Attempt to match known WWHelp directories
  24.   //
  25.   Parts = BaseURL.split("/wwhelp/wwhimpl/common/html");
  26.   if (Parts[0] == BaseURL)
  27.   {
  28.     Parts = BaseURL.split("/wwhelp/wwhimpl/java/html");
  29.   }
  30.   if (Parts[0] == BaseURL)
  31.   {
  32.     Parts = BaseURL.split("/wwhelp/wwhimpl/js/html");
  33.   }
  34.  
  35.   // Append trailing slash for this directory
  36.   //
  37.   BaseURL = Parts[0] + "/";
  38.  
  39.   return BaseURL;
  40. }
  41.  
  42. function  WWHStringUtilities_SearchReplace(ParamString,
  43.                                            ParamSearchString,
  44.                                            ParamReplaceString)
  45. {
  46.   var  ResultString;
  47.   var  Index;
  48.  
  49.  
  50.   ResultString = ParamString;
  51.  
  52.   if ((ParamSearchString.length > 0) &&
  53.       (ResultString.length > 0))
  54.   {
  55.     Index = 0;
  56.     while ((Index = ResultString.indexOf(ParamSearchString, Index)) != -1)
  57.     {
  58.       ResultString = ResultString.substring(0, Index) + ParamReplaceString + ResultString.substring(Index + ParamSearchString.length, ResultString.length);
  59.       Index += ParamReplaceString.length;
  60.     }
  61.   }
  62.  
  63.   return ResultString;
  64. }
  65.  
  66. function  WWHStringUtilities_FormatMessage(ParamMessage,
  67.                                            ParamReplacement1,
  68.                                            ParamReplacement2,
  69.                                            ParamReplacement3,
  70.                                            ParamReplacement4)
  71. {
  72.   var  VarFormattedMessage;
  73.   var  VarSearchString;
  74.   var  VarReplacementStringIndex;
  75.   var  VarIndex;
  76.   var  VarReplacementString;
  77.  
  78.  
  79.   VarFormattedMessage = ParamMessage;
  80.   if (VarFormattedMessage.length > 0)
  81.   {
  82.     VarSearchString = "%s";
  83.     VarReplacementStringIndex = 1;
  84.     VarIndex = 0;
  85.     while ((VarIndex = VarFormattedMessage.indexOf(VarSearchString, VarIndex)) != -1)
  86.     {
  87.       VarReplacementString = null;
  88.       if (VarReplacementStringIndex <= 4)
  89.       {
  90.         VarReplacementString = eval("ParamReplacement" + VarReplacementStringIndex);
  91.       }
  92.  
  93.       if ((typeof(VarReplacementString) != "undefined") &&
  94.           (VarReplacementString != null))
  95.       {
  96.         VarFormattedMessage = VarFormattedMessage.substring(0, VarIndex) + VarReplacementString + VarFormattedMessage.substring(VarIndex + VarSearchString.length, VarFormattedMessage.length);
  97.  
  98.         VarIndex += VarReplacementString.length;
  99.       }
  100.       else
  101.       {
  102.         VarIndex += VarSearchString.length;
  103.       }
  104.  
  105.       VarReplacementStringIndex += 1;
  106.     }
  107.   }
  108.  
  109.   return VarFormattedMessage;
  110. }
  111.  
  112. function  WWHStringUtilities_EscapeHTML(ParamHTML)
  113. {
  114.   var  EscapedHTML = ParamHTML;
  115.  
  116.  
  117.   // Escape problematic characters
  118.   // & < > "
  119.   //
  120.   EscapedHTML = WWHStringUtilities_SearchReplace(EscapedHTML, "&", "&");
  121.   EscapedHTML = WWHStringUtilities_SearchReplace(EscapedHTML, "<", "<");
  122.   EscapedHTML = WWHStringUtilities_SearchReplace(EscapedHTML, ">", ">");
  123.   EscapedHTML = WWHStringUtilities_SearchReplace(EscapedHTML, "\"", """);
  124.  
  125.   return EscapedHTML;
  126. }
  127.  
  128. function  WWHStringUtilities_UnescapeHTML(ParamHTML)
  129. {
  130.   var  Text = ParamHTML;
  131.   var  EscapedExpression;
  132.   var  EscapedCharacter;
  133.   var  CharacterCode;
  134.   var  JavaScriptCharacter;
  135.  
  136.  
  137.   // Unescape problematic characters
  138.   //
  139.   // & < > "
  140.   //
  141.   Text = WWHStringUtilities_SearchReplace(Text, "&", "&");
  142.   Text = WWHStringUtilities_SearchReplace(Text, "<", "<");
  143.   Text = WWHStringUtilities_SearchReplace(Text, ">", ">");
  144.   Text = WWHStringUtilities_SearchReplace(Text, """, "\"");
  145.  
  146.   // If any still exist, replace them with normal character
  147.   //
  148.   if (Text.indexOf("&#") != -1)
  149.   {
  150.     EscapedExpression = new RegExp("&#([0-9]+);");
  151.  
  152.     while (EscapedExpression.test(Text))
  153.     {
  154.       EscapedCharacter = EscapedExpression.lastMatch();
  155.       CharacterCode = parseInt(EscapedExpression.$1);
  156.  
  157.       // Turn character code into escaped JavaScript character
  158.       //
  159.       JavaScriptCharacter = eval("\\u" + WWHStringUtilities_DecimalToHex(CharacterCode));
  160.  
  161.       // Replace in string
  162.       //
  163.       Text = WWHStringUtilities_SearchReplace(Text, EscapedCharacter, JavaScriptCharacter);
  164.     }
  165.   }
  166.  
  167.   return Text;
  168. }
  169.  
  170. function  WWHStringUtilities_DecimalToHex(ParamNumber)
  171. {
  172.   var  HexNumber = "";
  173.  
  174.  
  175.   HexNumber += WWHStringUtilities_HexDigit(ParamNumber >> 12);
  176.   HexNumber += WWHStringUtilities_HexDigit(ParamNumber >>  8);
  177.   HexNumber += WWHStringUtilities_HexDigit(ParamNumber >>  4);
  178.   HexNumber += WWHStringUtilities_HexDigit(ParamNumber >>  0);
  179.  
  180.   return HexNumber;
  181. }
  182.  
  183. function  WWHStringUtilities_HexDigit(ParamDigit)
  184. {
  185.   var  HexDigit;
  186.   var  MaskedDigit = ParamDigit & 0x0F;
  187.  
  188.  
  189.   // Translate to hex characters 'a' - 'f' if necessary
  190.   //
  191.   if (MaskedDigit == 10)
  192.   {
  193.     HexDigit = "a";
  194.   }
  195.   else if (MaskedDigit == 11)
  196.   {
  197.     HexDigit = "b";
  198.   }
  199.   else if (MaskedDigit == 12)
  200.   {
  201.     HexDigit = "c";
  202.   }
  203.   else if (MaskedDigit == 13)
  204.   {
  205.     HexDigit = "d";
  206.   }
  207.   else if (MaskedDigit == 14)
  208.   {
  209.     HexDigit = "e";
  210.   }
  211.   else if (MaskedDigit == 15)
  212.   {
  213.     HexDigit = "f";
  214.   }
  215.   else
  216.   {
  217.     HexDigit = MaskedDigit;
  218.   }
  219.  
  220.   return HexDigit;
  221. }
  222.  
  223. function  WWHStringUtilities_GetURLFilePathOnly(ParamURL)
  224. {
  225.   var  VarFilePathOnly;
  226.   var  VarIndex;
  227.  
  228.  
  229.   VarFilePathOnly = ParamURL;
  230.  
  231.   // Trim off any parameters
  232.   //
  233.   VarIndex = VarFilePathOnly.indexOf("?");
  234.   if (VarIndex != -1)
  235.   {
  236.     VarFilePathOnly = VarFilePathOnly.substring(0, VarIndex);
  237.   }
  238.  
  239.   // Trim off named anchor
  240.   //
  241.   VarIndex = VarFilePathOnly.indexOf("#");
  242.   if (VarIndex != -1)
  243.   {
  244.     VarFilePathOnly = VarFilePathOnly.substring(0, VarIndex);
  245.   }
  246.  
  247.   return VarFilePathOnly;
  248. }
  249.  
  250. function  WWHStringUtilities_EscapeURLForJavaScriptAnchor(ParamURL)
  251. {
  252.   var  EscapedURL = ParamURL;
  253.  
  254.  
  255.   // Escape problematic characters
  256.   // \ " ' < >
  257.   //
  258.   EscapedURL = WWHStringUtilities_SearchReplace(EscapedURL, "\\", "\\\\");
  259.   EscapedURL = WWHStringUtilities_SearchReplace(EscapedURL, "\"", "\\u0022");
  260.   EscapedURL = WWHStringUtilities_SearchReplace(EscapedURL, "'", "\\u0027");
  261.   EscapedURL = WWHStringUtilities_SearchReplace(EscapedURL, "<", "\\u003c");
  262.   EscapedURL = WWHStringUtilities_SearchReplace(EscapedURL, ">", "\\u003e");
  263.  
  264.   return EscapedURL;
  265. }
  266.  
  267. function  WWHStringUtilities_EscapeForJavaScript(ParamString)
  268. {
  269.   var  EscapedString = ParamString;
  270.  
  271.  
  272.   // Escape problematic characters
  273.   // \ " '
  274.   //
  275.   EscapedString = WWHStringUtilities_SearchReplace(EscapedString, "\\", "\\\\");
  276.   EscapedString = WWHStringUtilities_SearchReplace(EscapedString, "\"", "\\u0022");
  277.   EscapedString = WWHStringUtilities_SearchReplace(EscapedString, "'", "\\u0027");
  278.   EscapedString = WWHStringUtilities_SearchReplace(EscapedString, "\n", "\\u000a");
  279.   EscapedString = WWHStringUtilities_SearchReplace(EscapedString, "\r", "\\u000d");
  280.  
  281.   return EscapedString;
  282. }
  283.  
  284. function  WWHStringUtilities_EscapeRegExp(ParamWord)
  285. {
  286.   var  WordRegExpPattern = ParamWord;
  287.  
  288.  
  289.   // Escape special characters
  290.   // \ ( ) [ ] . ? + ^ $
  291.   //
  292.   WordRegExpPattern = WWHStringUtilities_SearchReplace(WordRegExpPattern, "\\", "\\\\");
  293.   WordRegExpPattern = WWHStringUtilities_SearchReplace(WordRegExpPattern, ".", "\\.");
  294.   WordRegExpPattern = WWHStringUtilities_SearchReplace(WordRegExpPattern, "?", "\\?");
  295.   WordRegExpPattern = WWHStringUtilities_SearchReplace(WordRegExpPattern, "+", "\\+");
  296.   WordRegExpPattern = WWHStringUtilities_SearchReplace(WordRegExpPattern, "|", "\\|");
  297.   WordRegExpPattern = WWHStringUtilities_SearchReplace(WordRegExpPattern, "^", "\\^");
  298.   WordRegExpPattern = WWHStringUtilities_SearchReplace(WordRegExpPattern, "$", "\\$");
  299.   WordRegExpPattern = WWHStringUtilities_SearchReplace(WordRegExpPattern, "(", "\\(");
  300.   WordRegExpPattern = WWHStringUtilities_SearchReplace(WordRegExpPattern, ")", "\\)");
  301.   WordRegExpPattern = WWHStringUtilities_SearchReplace(WordRegExpPattern, "{", "\\{");
  302.   WordRegExpPattern = WWHStringUtilities_SearchReplace(WordRegExpPattern, "}", "\\}");
  303.   WordRegExpPattern = WWHStringUtilities_SearchReplace(WordRegExpPattern, "[", "\\[");
  304.   WordRegExpPattern = WWHStringUtilities_SearchReplace(WordRegExpPattern, "]", "\\]");
  305.  
  306.   // Windows IE 4.0 is brain dead
  307.   //
  308.   WordRegExpPattern = WWHStringUtilities_SearchReplace(WordRegExpPattern, "/", "[/]");
  309.  
  310.   // Convert * to .*
  311.   //
  312.   WordRegExpPattern = WWHStringUtilities_SearchReplace(WordRegExpPattern, "*", ".*");
  313.  
  314.   return WordRegExpPattern;
  315. }
  316.  
  317. function  WWHStringUtilities_WordToRegExpPattern(ParamWord)
  318. {
  319.   var  WordRegExpPattern;
  320.  
  321.  
  322.   // Escape special characters
  323.   // Convert * to .*
  324.   //
  325.   WordRegExpPattern = WWHStringUtilities_EscapeRegExp(ParamWord);
  326.  
  327.   // Add ^ and $ to force whole string match
  328.   //
  329.   WordRegExpPattern = "^" + WordRegExpPattern + "$";
  330.  
  331.   return WordRegExpPattern;
  332. }
  333.  
  334. function  WWHStringUtilities_WordToRegExpWithSpacePattern(ParamWord)
  335. {
  336.   var  WordRegExpPattern;
  337.  
  338.  
  339.   // Escape special characters
  340.   // Convert * to .*
  341.   //
  342.   WordRegExpPattern = WWHStringUtilities_EscapeRegExp(ParamWord);
  343.  
  344.   // Add ^ and $ to force whole string match
  345.   // Allow trailing whitespace
  346.   //
  347.   WordRegExpPattern = "^" + WordRegExpPattern + " *$";
  348.  
  349.   return WordRegExpPattern;
  350. }
  351.  
  352. function  WWHStringUtilities_ExtractStyleAttribute(ParamAttribute,
  353.                                                    ParamFontStyle)
  354. {
  355.   var  Attribute = "";
  356.   var  AttributeIndex;
  357.   var  AttributeStart;
  358.  
  359.  
  360.   AttributeIndex = ParamFontStyle.indexOf(ParamAttribute, 0);
  361.   if (AttributeIndex != -1)
  362.   {
  363.     AttributeStart = ParamFontStyle.indexOf(":", AttributeIndex);
  364.  
  365.     if (AttributeStart != -1)
  366.     {
  367.       AttributeStart += 1;
  368.  
  369.       AttributeEnd = ParamFontStyle.indexOf(";", AttributeStart);
  370.       if (AttributeEnd == -1)
  371.       {
  372.         AttributeEnd = ParamFontStyle.length;
  373.       }
  374.  
  375.       Attribute = ParamFontStyle.substring(AttributeStart + 1, AttributeEnd);
  376.     }
  377.   }
  378.  
  379.   return Attribute;
  380. }
  381.  
  382. function  WWHStringBuffer_Object()
  383. {
  384.   this.mStringList        = new Array();
  385.   this.mStringListEntries = 0;
  386.   this.mSize              = 0;
  387.  
  388.   this.fSize      = WWHStringBuffer_Size;
  389.   this.fReset     = WWHStringBuffer_Reset;
  390.   this.fAppend    = WWHStringBuffer_Append;
  391.   this.fGetBuffer = WWHStringBuffer_GetBuffer;
  392. }
  393.  
  394. function  WWHStringBuffer_Size()
  395. {
  396.   return this.mSize;
  397. }
  398.  
  399. function  WWHStringBuffer_Reset()
  400. {
  401.   this.mStringListEntries = 0;
  402.   this.mSize              = 0;
  403. }
  404.  
  405. function  WWHStringBuffer_Append(ParamString)
  406. {
  407.   this.mSize += ParamString.length;
  408.   this.mStringList[this.mStringListEntries] = ParamString;
  409.   this.mStringListEntries++;
  410. }
  411.  
  412. function  WWHStringBuffer_GetBuffer()
  413. {
  414.   this.mStringList.length = this.mStringListEntries;
  415.  
  416.   return this.mStringList.join("");
  417. }
  418.