home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / WindowsServerTrial / server.iso / sources / install.wim / 2 / Windows / System32 / ieframe.dll / HTML / BIDIFIND.JS < prev    next >
Text File  |  2008-01-19  |  7KB  |  198 lines

  1. ∩╗┐//Find Text dialog box
  2.  
  3. //+---------------------------------------------------------------------
  4. //
  5. //  Synopsis:   Checks the status of the appropriate checkboxes and
  6. //              sets the flags for the findText method.
  7. //
  8. //  Arguments:  none
  9. //
  10. //  returns:    a number representing the flags for the findText
  11. //              method. (See OM spec for more info.)
  12. //
  13. //----------------------------------------------------------------------
  14.  
  15. function findFlags()
  16. {
  17.     var htmlMatchWord = 2;
  18.     var htmlMatchCase = 4;
  19.     var htmlMatchDiacritic =  536870912; // 0x20000000 FR_MATCHDIAC
  20.     var htmlMatchKashida =   1073741824; // 0x40000000 FR_MATCHKASHIDA
  21.     var htmlMatchAlefHamza = 2147483648; // 0x80000000 FR_MATCHALEFHAMZA
  22.  
  23.     return (htmlMatchWord * document.all.chkWholeWord.checked)
  24.         | (htmlMatchCase * document.all.chkMatchCase.checked)
  25.         | (htmlMatchDiacritic * document.all.chkMatchDiacritic.checked)
  26.         | (htmlMatchKashida * document.all.chkMatchKashida.checked)
  27.         | (htmlMatchAlefHamza * document.all.chkMatchAlefHamza.checked)
  28.  
  29. } // findFlags
  30.  
  31.  
  32. //+---------------------------------------------------------------------
  33. //
  34. //  Synopsis:   Sets the focus to the find button. Also determines
  35. //              whether something is selected in the document.
  36. //
  37. //  Arguments:  none
  38. //
  39. //  Returns:    nothing
  40. //
  41. //-----------------------------------------------------------------------
  42.  
  43. function loadBdy()
  44. {
  45.     // win.screenLeft == x-coordinate of the document window (not the frame)
  46.     // doc.body.clientoffsetWidth > doc.body.clientWidth
  47.     // doc.body.clientLeft > doc.body.offsetLeft
  48.     // document.body.offsetWidth == window.dialogWidth
  49.     // document.body.clientLeft == 0
  50.     // document.body.offsetLeft == 0
  51.     // Currently there is no way to get the total dialog width (only document width).
  52.     // Positioning of the dialog is done in dhuihand.cpp after the dialog is shown.
  53.  
  54.     //
  55.     //  Bind events to controls. This is done here to load the dialog
  56.     //  quicker.
  57.     //
  58.     btnFindPrev.onclick     = new 
  59.         Function("btnFindClick(false)");
  60.     btnFindPrev.ondblclick  = new
  61.         Function("btnFindClick(false)");
  62.     btnFindNext.onclick     = new 
  63.         Function("btnFindClick(true)");
  64.     btnFindNext.ondblclick  = new
  65.         Function("btnFindClick(true)");
  66.     btnCancel.onclick       = new Function("btnCancelClick2()");
  67.  
  68.     document.onmouseup  = new Function("mouseClick()");
  69.  
  70.     txtFindText.onpropertychange = new Function("setFindState(true)");
  71.     txtFindText.onfocus = new Function("txtFindText.select()");
  72.     txtFindText.onkeypress = new Function("txtDefaultESC()");
  73.  
  74.     g_fFindStartPoint = true;
  75.  
  76.     //
  77.     // enable RTL search items if document supports RTL charset - default is disabled=1
  78.     //
  79.     var docCharset = window.dialogArguments.document.charset;
  80.     if(docCharset == "" ||                  // plain text/unknown
  81.        docCharset == "utf-8" || // unicode
  82.        docCharset == "unicode-1-1-utf-8" ||
  83.        docCharset == "unicode-2-0-utf-8" || 
  84.        docCharset == "windows-1255" ||      // hebrew
  85.        docCharset == "dos-862" ||
  86.        docCharset == "iso-8859-8" ||
  87.        docCharset == "iso-8859-8-i" ||
  88.        docCharset == "windows-1256" ||      // arabic
  89.        docCharset == "asmo-708" || 
  90.        docCharset == "asmo-720" || 
  91.        docCharset == "dos-720" || 
  92.        docCharset == "iso-8859-6")
  93.     {
  94.         chkMatchDiacritic.disabled = 0;
  95.  
  96.         if(docCharset == "windows-1255" ||  // hebrew does not have kashida or alef hamza
  97.            docCharset == "dos-862" ||
  98.            docCharset == "iso-8859-8" ||
  99.            docCharset == "iso-8859-8-i")
  100.        {
  101.             chkMatchKashida.checked = 1;
  102.             chkMatchKashida.disabled = 1;
  103.             chkMatchAlefHamza.checked = 1;
  104.             chkMatchAlefHamza.disabled = 1;
  105.         }
  106.     }
  107.  
  108.     if ("" != window.dialogArguments.findText)
  109.     {
  110.         txtFindText.value = window.dialogArguments.findText;
  111.     }
  112.     txtFindText.focus();
  113.     txtFindText.select();
  114. }   //  loadBdy
  115.  
  116. //+---------------------------------------------------------------------
  117. //
  118. //  Synopsis:   Sets the find text so it can be used next time. 
  119. //
  120. //  Arguments:  none
  121. //
  122. //  Returns:    nothing
  123. //
  124. //-----------------------------------------------------------------------
  125.  
  126. function unloadBdy()
  127. {
  128.     window.onerror = SuppressError;
  129.     window.dialogArguments.findText = txtFindText.value;
  130.     window.onerror = HandleError;
  131. }   //  unloadBdy
  132.  
  133. function findStartPoint(fForward)
  134. {
  135.     if (g_fFindStartPoint)
  136.     {
  137.         g_fFindStartPoint = false;
  138.  
  139.         var win = window.dialogArguments.unsecuredWindowOfDocument;
  140.         var doc = window.dialogArguments.document;
  141.  
  142.         //
  143.         //  Are we in a frameset?
  144.         //
  145.         if (!g_fError && win.frames.length)
  146.         {
  147.             var win2;
  148.  
  149.             g_fFrameset = true;
  150.             g_arrFrames[0] = 0;
  151.             g_arrFrames[1] = -1;
  152.  
  153.             //
  154.             //  Search through the frameset for a selection
  155.             //
  156.             win2 = CrawlPath();
  157.    
  158.             // the find dialog gets it's own error handler
  159.             // until while we're not sure if the iframe
  160.             // is hosting trident. (It could host Word, 
  161.             // explorer, etc.)
  162.             window.onerror = FindHandleError;
  163.             doc2 = win2.document;
  164.             window.onerror = HandleError;
  165.  
  166.             while (doc2.selection.type == "None")
  167.             {
  168.                 if (MoveDoc(fForward))
  169.                 {
  170.                     win2 = CrawlPath();
  171.                     doc2 = win2.document;
  172.                 }
  173.                 else    // no selection. reset search
  174.                 {
  175.                     g_arrFrames[0] = fForward ? 0 : win.frames.length - 1;
  176.                     g_arrFrames[1] = -1;
  177.                     break;
  178.                 }
  179.             }
  180.             doc = GetFirstDoc();
  181.             g_docLastFound = doc;
  182.         }
  183.  
  184.         //
  185.         //  If a control is selected, select it as a text range.
  186.         //  Dont set the text range to the control if we are doing this
  187.         //  on wrap. That will scope the wrap to within the control.
  188.         //
  189.         if (!g_fWrapped && doc.selection.type == "Control")
  190.         {
  191.             var r = doc.selection.createRange();
  192.             r = getTextRange(r(0));
  193.             r.select();
  194.         }
  195.     }
  196. } //  findStartPoint
  197.  
  198.