home *** CD-ROM | disk | FTP | other *** search
/ Chip 2003 November / Chip_2003-11_cd2.bin / ruzne / painter / PAINTE~2.cab / _5A60022E27FB43A887C57210728BC443 < prev    next >
Text File  |  2003-01-06  |  7KB  |  173 lines

  1. // Copyright (c) 2000-2001 Quadralay Corporation.  All rights reserved.
  2. // 
  3.  
  4. function  Tabs_Object()
  5. {
  6.   this.mMessageKeys = new Array("Tabs TOC", "Tabs Index", "Tabs Search", "Tabs Favorites");
  7.   this.mXYPosition  = new Array(new Array(0,0), new Array(0,0), new Array(0,0), new Array(0,0));
  8.   this.mCurrentTab  = -1;
  9.  
  10.   this.fChangeTab          = Tabs_ChangeTab;
  11.   this.fChangeTabWithDelay = Tabs_ChangeTabWithDelay;
  12.   this.fUpdateXYPosition   = Tabs_UpdateXYPosition;
  13.   this.fGenerateStyles     = Tabs_GenerateStyles;
  14.   this.fDisplayTabs        = Tabs_DisplayTabs;
  15. }
  16.  
  17. function  Tabs_ChangeTab(ParamTabIndex)
  18. {
  19.   if ((this.mCurrentTab == -1) ||
  20.       (this.mCurrentTab != ParamTabIndex))
  21.   {
  22.     this.fUpdateXYPosition();
  23.  
  24.     this.mCurrentTab = ParamTabIndex;
  25.  
  26.     WWHelpTopFrame.WWHNavigation.WWHTabs.location.href = WWHelpTopFrame.WWHNavigation.WWHTabs.location.href;
  27.     WWHelpTopFrame.WWHNavigation.WWHSync.location.href = WWHelpTopFrame.WWHNavigation.WWHSync.location.href;
  28.   }
  29. }
  30.  
  31. function  Tabs_ChangeTabWithDelay(ParamTabIndex)
  32. {
  33.   setTimeout("WWHelpTopFrame.WWHelp.mTabs.fChangeTab(" + ParamTabIndex + ");", 100);
  34. }
  35.  
  36. function  Tabs_UpdateXYPosition()
  37. {
  38.   if (this.mCurrentTab != -1)
  39.   {
  40.     if ((WWHelpTopFrame.WWHelp.mBrowser == 1) ||  // Shorthand for Netscape
  41.         (WWHelpTopFrame.WWHelp.mBrowser == 4))  // Shorthand for Netscape
  42.     {
  43.       this.mXYPosition[this.mCurrentTab][0] = WWHelpTopFrame.WWHNavigation.WWHSync.window.pageXOffset;
  44.       this.mXYPosition[this.mCurrentTab][1] = WWHelpTopFrame.WWHNavigation.WWHSync.window.pageYOffset;
  45.     }
  46.     else if (WWHelpTopFrame.WWHelp.mBrowser == 2)  // Shorthand for IE
  47.     {
  48.       // Test required to avoid JavaScript error under IE5.5 on Windows
  49.       //
  50.       if (WWHelpTopFrame.WWHNavigation.WWHSync.document.body == null)
  51.       {
  52.         this.mXYPosition[this.mCurrentTab][0] = 0;
  53.         this.mXYPosition[this.mCurrentTab][1] = 0;
  54.       }
  55.       else
  56.       {
  57.         this.mXYPosition[this.mCurrentTab][0] = WWHelpTopFrame.WWHNavigation.WWHSync.document.body.scrollLeft;
  58.         this.mXYPosition[this.mCurrentTab][1] = WWHelpTopFrame.WWHNavigation.WWHSync.document.body.scrollTop;
  59.       }
  60.     }
  61.   }
  62. }
  63.  
  64. function  Tabs_GenerateStyles()
  65. {
  66.   // Generate style section
  67.   //
  68.   WWHelpTopFrame.WWHNavigation.WWHTabs.document.writeln("<style type=\"text/css\">");
  69.   WWHelpTopFrame.WWHNavigation.WWHTabs.document.writeln(" <!--");
  70.   WWHelpTopFrame.WWHNavigation.WWHTabs.document.writeln("  a  { text-decoration: none ;");
  71.   WWHelpTopFrame.WWHNavigation.WWHTabs.document.writeln("       color: " + WWHelpTopFrame.WWHelp.mMessages["Tabs Default Text Color"] + " }");
  72.   WWHelpTopFrame.WWHNavigation.WWHTabs.document.writeln("  th { color: " + WWHelpTopFrame.WWHelp.mMessages["Tabs Selected Text Color"] + " ;");
  73.   WWHelpTopFrame.WWHNavigation.WWHTabs.document.writeln("       font-family: " + WWHelpTopFrame.WWHelp.mMessages["Font Family"] + " ;");
  74.   WWHelpTopFrame.WWHNavigation.WWHTabs.document.writeln("       font-size: " + WWHelpTopFrame.WWHelp.mMessages["Font Size"] + " }");
  75.   WWHelpTopFrame.WWHNavigation.WWHTabs.document.writeln("  td { color: " + WWHelpTopFrame.WWHelp.mMessages["Tabs Default Text Color"] + " ;");
  76.   WWHelpTopFrame.WWHNavigation.WWHTabs.document.writeln("       font-family: " + WWHelpTopFrame.WWHelp.mMessages["Font Family"] + " ;");
  77.   WWHelpTopFrame.WWHNavigation.WWHTabs.document.writeln("       font-size: " + WWHelpTopFrame.WWHelp.mMessages["Font Size"] + " }");
  78.   WWHelpTopFrame.WWHNavigation.WWHTabs.document.writeln(" -->");
  79.   WWHelpTopFrame.WWHNavigation.WWHTabs.document.writeln("</style>");
  80. }
  81.  
  82. function  Tabs_DisplayTabs()
  83. {
  84.   var  NumDisplayedTabs;
  85.   var  MaxIndex;
  86.   var  Index;
  87.   var  Height = 24;
  88.   var  Width  = 80;
  89.   var  CellType;
  90.   var  BackgoundColor;
  91.   var  WrapPrefix;
  92.   var  WrapSuffix;
  93.   var  OnClick;
  94.   var  InitialTab = -1
  95.  
  96.  
  97.   // Calculate width based on number of displayed tabs
  98.   //
  99.   NumDisplayedTabs = 0;
  100.   for (MaxIndex = this.mMessageKeys.length, Index = 0 ; Index < MaxIndex ; Index++)
  101.   {
  102.     if (WWHelpTopFrame.WWHelp.mMessages[this.mMessageKeys[Index]].length > 0)
  103.     {
  104.       NumDisplayedTabs++;
  105.     }
  106.   }
  107.  
  108.   if (NumDisplayedTabs < 0)
  109.   {
  110.     NumDisplayedTabs = 1;
  111.   }
  112.  
  113.   Width = "\"" + 100/NumDisplayedTabs + "%\"";
  114.  
  115.   // Setup table for tab display
  116.   //
  117.   WWHelpTopFrame.WWHNavigation.WWHTabs.document.writeln("<table border=0 cellspacing=2 cellpadding=0 width=\"100%\">");
  118.   WWHelpTopFrame.WWHNavigation.WWHTabs.document.writeln("<tr>");
  119.  
  120.   for (MaxIndex = this.mMessageKeys.length, Index = 0 ; Index < MaxIndex ; Index++)
  121.   {
  122.     // Only display tabs with display names
  123.     //
  124.     if (WWHelpTopFrame.WWHelp.mMessages[this.mMessageKeys[Index]])
  125.     {
  126.       // Initialize mCurrentTab (only occurs on initial load)
  127.       //
  128.       if ((this.mCurrentTab == -1) &&
  129.           (InitialTab == -1))
  130.       {
  131.         // Update tab area and sync area as well
  132.         //
  133.         InitialTab = Index;
  134.       }
  135.  
  136.       // Display anchor only if not selected
  137.       //
  138.       if (Index == this.mCurrentTab)
  139.       {
  140.         CellType = "th";
  141.         BackgroundColor = WWHelpTopFrame.WWHelp.mMessages["Tabs Selected Tab Color"];
  142.         WrapPrefix = "<b>";
  143.         WrapSuffix = "</b>";
  144.         OnClick = "";
  145.       }
  146.       else
  147.       {
  148.         CellType = "td";
  149.         BackgroundColor = WWHelpTopFrame.WWHelp.mMessages["Tabs Default Tab Color"];
  150.         WrapPrefix = "<b><a href=\"javascript:WWHelpTopFrame.WWHelp.mTabs.fChangeTab(" + Index + ");\">";
  151.         WrapSuffix = "</a></b>";
  152.         OnClick = " onClick=\"WWHelpTopFrame.WWHelp.mTabs.fChangeTabWithDelay(" + Index + ");\"";
  153.       }
  154.  
  155.       WWHelpTopFrame.WWHNavigation.WWHTabs.document.write("<" + CellType + " nowrap align=center height=" + Height + " width=" + Width + " bgcolor=\"" + BackgroundColor + "\"" + OnClick + ">");
  156.       WWHelpTopFrame.WWHNavigation.WWHTabs.document.write(WrapPrefix);
  157.       WWHelpTopFrame.WWHNavigation.WWHTabs.document.write(WWHelpTopFrame.WWHelp.mMessages[this.mMessageKeys[Index]]);
  158.       WWHelpTopFrame.WWHNavigation.WWHTabs.document.write(WrapSuffix);
  159.       WWHelpTopFrame.WWHNavigation.WWHTabs.document.writeln("</" + CellType + ">");
  160.     }
  161.   }
  162.  
  163.   WWHelpTopFrame.WWHNavigation.WWHTabs.document.writeln("</tr>");
  164.   WWHelpTopFrame.WWHNavigation.WWHTabs.document.writeln("</table>");
  165.  
  166.   // Initialize display by calling change tab (only occurs on initial load)
  167.   //
  168.   if (InitialTab != -1)
  169.   {
  170.     setTimeout("WWHelpTopFrame.WWHelp.mTabs.fChangeTab(" + InitialTab + ");", 100);
  171.   }
  172. }
  173.