/[webpac]/trunk2/out/js/search.js
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk2/out/js/search.js

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 391 by dpavlin, Wed Jul 21 16:45:47 2004 UTC revision 496 by dpavlin, Sun Oct 10 06:03:06 2004 UTC
# Line 79  function intersect_results(data) Line 79  function intersect_results(data)
79   From David Flanagan's, _Javascript:_The Definitive_Guide_, pg. 294-5,   From David Flanagan's, _Javascript:_The Definitive_Guide_, pg. 294-5,
80    published by O'Reilly, 4th edition, 2002    published by O'Reilly, 4th edition, 2002
81  */  */
82    
83    var debug_div = null;
84    
85  function debug(msg)  function debug(msg)
86  {  {
87    return; // Disable debugging  //  return; // Disable debugging
88    
89    if(!debug.box)    if (! debug_div) debug_div = document.getElementById('debug');
   {  
     debug.box = document.createElement("div");  
     debug.box.setAttribute("style",  
                            "background-color:white" +  
                            "font-family: monospace; " +  
                            "border: solid black 3px; "+  
                            "padding: 10px;");  
   
     document.body.appendChild(debug.box);  
     debug.box.innerHTML = "<h1 style='test-align:cent'>Debugging Output</h1>";  
   }  
90    
91    var p = document.createElement("p");    // this will create debug div if it doesn't exist.
92    p.appendChild(document.createTextNode(msg));    if (! debug_div) {
93    debug.box.appendChild(p);          debug_div = document.createElement('div');
94            document.body.appendChild(debug_div);
95      }
96      if (debug_div) {
97            debug_div.appendChild(document.createTextNode(msg));
98            debug_div.appendChild(document.createElement("br"));
99      }
100  }  }
101    
 //  
   
102  // Convert a number into a base 62 alphanumeric number string  // Convert a number into a base 62 alphanumeric number string
103  function convert(num)  function convert(num)
104  {  {
# Line 133  function watchdog() Line 129  function watchdog()
129    watchdog_callback(new Array());    watchdog_callback(new Array());
130  }  }
131    
132    var xmldoc;
133    
134  // This function loads the XML document from the specified URL, and when  // This function loads the XML document from the specified URL, and when
135  // it is fully loaded, passes that document and the url to the specified  // it is fully loaded, passes that document and the url to the specified
136  // handler function.  This function works with any XML document  // handler function.  This function works with any XML document
# Line 152  function loadXML(url, handler, data, res Line 150  function loadXML(url, handler, data, res
150      if (document.implementation && document.implementation.createDocument)      if (document.implementation && document.implementation.createDocument)
151      {      {
152       // Create a new Document object       // Create a new Document object
153        var xmldoc = document.implementation.createDocument("", "", null);        xmldoc = document.implementation.createDocument("", "", null);
154    
155        // Specify what should happen when it finishes loading        // Specify what should happen when it finishes loading
156        xmldoc.onload = function() { handler(xmldoc, url, data, result_handler); }        xmldoc.onload = function() { handler(xmldoc, url, data, result_handler); }
# Line 162  function loadXML(url, handler, data, res Line 160  function loadXML(url, handler, data, res
160    
161        // And tell it what URL to load        // And tell it what URL to load
162        xmldoc.load(url);        xmldoc.load(url);
163          return true;
164      }      }
165      // Otherwise use Microsoft's proprietary API for Internet Explorer      // Otherwise use Microsoft's proprietary API for Internet Explorer
166      // Something about not following standards once again      // Something about not following standards once again
167      else if (window.ActiveXObject)      else if (window.ActiveXObject)
168      {        {  
169        //var xmldoc = new ActiveXObject("MSXML2.DOMDocument");   // Create doc.        xmldoc = new ActiveXObject("Microsoft.XMLDOM");   // Create doc.
170        var xmldoc = new ActiveXObject("Microsoft.XMLDOM");   // Create doc.        if (! xmldoc) xmldoc = new ActiveXObject("MSXML2.DOMDocument");   // Create doc.
171        // Specify onload        // Specify onload
172        xmldoc.onreadystatechange = function()        xmldoc.onreadystatechange = function()
173        {                      {              
174          if (xmldoc.readyState == 4) handler(xmldoc, url, data, result_handler);          if (xmldoc.readyState == 4) handler(xmldoc, url, data, result_handler);
175        }        }
176        xmldoc.load(url);                                     // Start loading!        xmldoc.load(url);                                     // Start loading!
177          return true;
178      }      }
179        // else fallback on usage of iframes to load xml (Opera 7.53 without Java and maybe old Mac browsers)
180        else {
181          debug("using iframe xml loader - experimental and slow");
182          if (! window.xml_iframe) {
183            debug("creating iframe");
184            window.xml_iframe = document.createElement('div');
185            window.xml_iframe.innerHTML = '<iframe src="'+url+'" name="xml_iframe" height="0" width="0" style="display: none;"></iframe>';
186            document.body.appendChild(window.xml_iframe);
187          } else {
188            debug("loading xml in existing iframe");
189            window.frames.xml_iframe.window.document.location.href = url;
190          }
191    
192          // set timeout to re-check if iframe is loaded
193          window.iframe_timeout = window.setInterval('iframe_xml_loaded();',100);
194    
195          // save some data for iframe_xml_loaded()
196          window.xml_handler = handler;
197          window.xml_url = url;
198          window.xml_data = data;
199          window.xml_result_handler = result_handler;
200          return true;
201        }
202        clearTimeout(watchdog_id);
203        debug("Browser incompatilibity: can't request XML document by one of supported methods");
204        return false;
205    }    }
206    catch(ex)    catch(ex)
207    {    {
# Line 189  function loadXML(url, handler, data, res Line 215  function loadXML(url, handler, data, res
215    return true;    return true;
216  }  }
217    
218    function iframe_xml_loaded() {
219      debug("iframe_xmldoc_loaded");
220      if (! window.frames['xml_iframe']) return;
221      var xml = eval('window.frames.xml_iframe.window.document');
222      if (xml) {
223            clearTimeout(window.iframe_timeout);
224            debug("calling handler with ("+window.xml_url+","+window.xml_data+",...)");
225            window.xml_handler(window.frames.xml_iframe.window.document, window.xml_url, window.xml_data, window.xml_result_handler);
226      } else {
227            debug("can't eval iframe with xml");
228      }
229    }
230    
231  function loadData(xmldoc, url, pos, result_handler)  function loadData(xmldoc, url, pos, result_handler)
232  {  {
233    clearTimeout(watchdog_id);    clearTimeout(watchdog_id);

Legend:
Removed from v.391  
changed lines
  Added in v.496

  ViewVC Help
Powered by ViewVC 1.1.26