123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247 |
- var CatchJSErrors = true;
- function catcherror() { return true; }
- if (CatchJSErrors)
- {
- window.onerror = catcherror;
- }
- function QueryString(key)
- {
- var value = null;
- for (var i=0;i<QueryString.keys.length;i++)
- {
- if (QueryString.keys[i]==key)
- {
- value = QueryString.values[i];
- break;
- }
- }
- return value;
- }
- function QueryString_Parse()
- {
- var query = window.location.search.substring(1);
- var pairs = query.split("&");
- for (var i=0;i<pairs.length;i++)
- {
- var pos = pairs[i].indexOf('=');
- if (pos >= 0)
- {
- var argname = pairs[i].substring(0,pos);
- var value = pairs[i].substring(pos+1);
- QueryString.keys[QueryString.keys.length] = argname;
- QueryString.values[QueryString.values.length] = value;
- }
- }
- }
- QueryString.keys = new Array();
- QueryString.values = new Array();
- QueryString_Parse();
- function getElement(id)
- {
- if (document.getElementById)
- return(document.getElementById(id));
- else if (document.all)
- return(document.all[id]);
- }
- function findPosY(obj)
- {
- var curtop = 0;
- if (obj.offsetParent)
- {
- while (obj.offsetParent)
- {
- curtop += obj.offsetTop
- obj = obj.offsetParent;
- }
- }
- else if (obj.y)
- curtop += obj.y;
- return curtop;
- }
- function SearchHiLite(text)
- {
- var SearchAsSubstring = 0;
- var hl;
- hl = QueryString("zoom_highlight");
- if (hl == "" || hl == null)
- {
- hl = QueryString("zoom_highlightsub");
- if (hl == "" || hl == null)
- return false;
- else
- SearchAsSubstring = 1;
- }
- hl = unescape(hl);
- hl = hl.toLowerCase();
-
-
-
- var re = /\"(.*?)\"|[^\\+\"]+/g;
- var term = hl.match(re);
-
-
- for (var i=0;i<term.length;i++)
- {
- if(term[i] != "")
- {
- if (term[i].indexOf("\"") != -1)
- {
-
- term[i]=term[i].replace(/\"/g,"");
- term[i]=term[i].replace(/\+/g," ");
- }
- else
- {
- term[i]=term[i].replace(/\+/g,"");
- }
- if (term[i].indexOf("*") != -1 || term[i].indexOf("?") != -1)
- {
-
- term[i] = term[i].replace(/\\/g, " ");
- term[i] = term[i].replace(/\^/g, " ");
-
- term[i] = term[i].replace(/\#/g, " ");
- term[i] = term[i].replace(/\$/g, " ");
- term[i] = term[i].replace(/\./g, " ");
-
-
-
- var wildcards = /\w/;
- if (wildcards.test(term[i]))
- {
- term[i] = term[i].replace(/\*/g, "[^\\s]*");
- term[i] = term[i].replace(/\?/g, "[^\\s]");
- }
- else
- term[i] = "";
- }
-
- if (term[i] != "")
- {
- if (SearchAsSubstring == 0)
- {
- term[i] = "(>|>[^<]+[\\b\\W])("+term[i]+")(<|[\\b\\W][^>]*<)";
- }
- else
- {
-
- var strWB="";
- if(term[i].substr(0,7)=="[^\\s]*") strWB="\\b";
- term[i] = "(>|>[^<]+)"+strWB+"("+term[i]+")([^>]*<)";
- }
- }
- }
- }
- text=text.replace(/&/ig, '&');
- text=text.replace(/ /ig, '');
- for (var i=0;i<term.length;i++)
- {
- if(term[i] != "")
- {
-
-
-
- var l = 0;
- re = new RegExp(term[i], "gi");
- var count = 0;
- text = ">" + text + "<";
- do
- {
- l=text.length;
- text=text.replace(re, '$1<span class="highlight" id="highlight" name="highlight">$2</span id="highlight">$3');
- count++;
- }
-
- while(l!=text.length && count<100);
- text = text.substring(1, text.length-1);
- }
- }
- text = text.replace(eval("//g"), '');
- text = text.replace(eval("//g"), ' ');
-
- return(text);
- }
- function jumpHL()
- {
- var d=getElement("highlight");
- if(d)
- {
- var y=findPosY(d);
-
- if(y < 100)
- window.scrollTo(0,0);
- else
- window.scrollTo(0,y-50);
- }
- }
- function highlight()
- {
- var x = document.body;
- if (x)
- {
- var strHTML=SearchHiLite(x.innerHTML);
- if (strHTML!=false) x.innerHTML = strHTML;
- jumpHL();
- }
- }
|