/[webpac]/trunk2/out/js/highlight.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/highlight.js

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

revision 394 by dpavlin, Wed Jul 21 21:53:12 2004 UTC revision 397 by dpavlin, Thu Jul 22 19:07:16 2004 UTC
# Line 1  Line 1 
1  //  //
2  // google.js  // google.js
3  // Google Highlighter  // Google Highlighter
4  //  //
5  // Copyright(C)2001 - 2003  // Copyright(C)2001 - 2003
6  // Cal Henderson <cal@iamcal.com>  // Cal Henderson <cal@iamcal.com>
7  //  //
8  // Thanks to Ian Beveridge for bugfixes  // Thanks to Ian Beveridge for bugfixes
9  //  //
10  // This code may be freely redistributed,  // This code may be freely redistributed,
11  // providing this message remains intact.  // providing this message remains intact.
12  //  //
13    
14  var google_text_color = '#000000';  var google_text_color = '#000000';
15    
16  var google_link_colors = new Array('#ffff66','#a0ffff','#99ff99','#ff9999','#ff66ff');  var google_link_colors = new Array('#ffff66','#a0ffff','#99ff99','#ff9999','#ff66ff');
17    
18  function init_google(){  function init_google(){
19          var pattern = /query=/i;          var pattern = /query=/i;
20          if (pattern.exec(document.referrer) != null){          var url_args;
21                  var url_parts = document.referrer.split('?');  
22                  if (url_parts[1]){          if (pattern.exec(document.referrer) != null) {
23                          var url_args = url_parts[1].split('&');                  var url_parts = document.referrer.split('?');
24                          for(var i=0; i<url_args.length; i++){                  if (url_parts[1]) url_args = url_parts[1];
25                                  var keyval = url_args[i].split('=');          } else if (pattern.exec(location.search.substring(1)) != null) {
26                                  if (keyval[0] == 'query'){                  url_args = location.search.substring(1);
27                                          go_google(decode_url(keyval[1]));          }
28                                          return;                  
29                                  }          if (url_args){
30                          }                  var url_args = url_args.split('&');
31                  }                  for(var i=0; i<url_args.length; i++){
32          }                          var keyval = url_args[i].split('=');
33  }                          if (keyval[0] == 'query'){
34                                    go_google(decode_url(keyval[1]));
35  function decode_url(url){                                  return;
36          return unescape(url.replace(/\+/g,' '));                          }
37  }                  }
38            }
39  function go_google(terms){  }
40          terms = terms.replace(/\"/g,"");  
41          var terms_split = terms.split(' ');  function decode_url(url){
42          var c = 0;          return l2_unescape(url.replace(/\+/g,' '));
43          for(var i=0; i<terms_split.length; i++){  }
44                  highlight_goolge(terms_split[i], document.body,google_link_colors[c]);  
45                  c = (c == google_link_colors.length-1)?0:c+1;  function go_google(terms){
46          }          terms = terms.replace(/\"/g,"");
47  }          var terms_split = terms.split(' ');
48            var c = 0;
49  function highlight_goolge(term, container, color){          for(var i=0; i<terms_split.length; i++){
50          var term_low = term.toLowerCase();                  highlight_goolge(terms_split[i], document.body,google_link_colors[c]);
51                    c = (c == google_link_colors.length-1)?0:c+1;
52          for(var i=0; i<container.childNodes.length; i++){          }
53                  var node = container.childNodes[i];  }
54    
55                  if (node.nodeType == 3){  function highlight_goolge(term, container, color){
56                          var data = node.data;          var term_low = term.toLowerCase();
57                          var data_low = data.toLowerCase();  
58                          if (data_low.indexOf(term_low) != -1){          for(var i=0; i<container.childNodes.length; i++){
59                                  //term found!                  var node = container.childNodes[i];
60                                  var new_node = document.createElement('SPAN');  
61                                  node.parentNode.replaceChild(new_node,node);                  if (node.nodeType == 3){
62                                  var result;                          var data = node.data;
63                                  while((result = data_low.indexOf(term_low)) != -1){                          var data_low = data.toLowerCase();
64                                          new_node.appendChild(document.createTextNode(data.substr(0,result)));                          if (data_low.indexOf(term_low) != -1){
65                                          new_node.appendChild(create_node_google(document.createTextNode(data.substr(result,term.length)),color));                                  //term found!
66                                          data = data.substr(result + term.length);                                  var new_node = document.createElement('SPAN');
67                                          data_low = data_low.substr(result + term.length);                                  node.parentNode.replaceChild(new_node,node);
68                                  }                                  var result;
69                                  new_node.appendChild(document.createTextNode(data));                                  while((result = data_low.indexOf(term_low)) != -1){
70                          }                                          new_node.appendChild(document.createTextNode(data.substr(0,result)));
71                  }else{                                          new_node.appendChild(create_node_google(document.createTextNode(data.substr(result,term.length)),color));
72                          //recurse                                          data = data.substr(result + term.length);
73                          highlight_goolge(term, node, color);                                          data_low = data_low.substr(result + term.length);
74                  }                                  }
75          }                                  new_node.appendChild(document.createTextNode(data));
76  }                          }
77                    }else{
78  function create_node_google(child, color){                          //recurse
79          var node = document.createElement('SPAN');                          highlight_goolge(term, node, color);
80          node.style.backgroundColor = color;                  }
81          node.style.color = google_text_color;          }
82          node.appendChild(child);  }
83          return node;  
84  }  function create_node_google(child, color){
85            var node = document.createElement('SPAN');
86            node.style.backgroundColor = color;
87            node.style.color = google_text_color;
88            node.appendChild(child);
89            return node;
90    }
91    

Legend:
Removed from v.394  
changed lines
  Added in v.397

  ViewVC Help
Powered by ViewVC 1.1.26