Advertisement
Guest User

Untitled

a guest
Mar 31st, 2015
228
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (function($){
  2.     $.fn.highlight = function( term, insensitive, t , c ) {
  3.         return this.each(function(){
  4.             t = t || 'mark';
  5.             c = c || 'hilite';
  6.             var node = this.firstChild,
  7.                 val,
  8.                 new_val,
  9.                 remove = [],
  10.                 skip = ['SCRIPT', 'STYLE', 'INPUT', 'SELECT', 'BUTTON', 'OBJECT', 'APPLET', 'TEXTAREA', 'PRE', 'CODE', 'EMBED', 'IFRAME'];
  11.  
  12.             if ( term && node && $.inArray(this.nodeName, skip) == -1 ) {
  13.                 var regex = new RegExp( term.replace(/([-.*+?^${}()|[\]\/\\])/g,"\\$1"), insensitive ? 'ig' : 'g');
  14.                
  15.                 do {
  16.                     if ( node.nodeType === 3 ) {
  17.                         val = node.nodeValue;
  18.                         new_val = val.replace( regex, function(x){
  19.                             return '<' + t + ' class="' + c + '">' + x + '</' + t + '>';
  20.                         } );
  21.                         if ( new_val !== val ) {
  22.                             $(node).before( new_val );
  23.                             remove.push( node );
  24.                         }
  25.                     }
  26.                 } while ( node = node.nextSibling );
  27.             }
  28.  
  29.             remove.length && $(remove).remove();
  30.         });
  31.     };  
  32.  
  33.   if (typeof(hlst_query) != 'undefined') {
  34.     if (hlst_query.length == 0) {
  35.         var ref = document.referrer.split('?');
  36. /*
  37. console.log('referer query parameters: ' + ref[1]);
  38. */
  39.         if (typeof(ref[1]) != 'undefined') {
  40.           var term;
  41.           if (document.referrer.indexOf(document.domain) < 9) {
  42.             term = 's';
  43.           } else if (document.referrer.indexOf('yahoo.com') > -1) {
  44.             term = 'p';
  45.           } else if (document.referrer.indexOf('goodsearch.com') > -1) {
  46.             term = 'keywords';
  47.           } else if (document.referrer.indexOf('mywebsearch.com') > -1) {
  48.             term = 'searchfor';
  49.           } else if (document.referrer.indexOf('baidu.') > -1) {
  50.             term = 'wd';
  51.           } else {
  52.             term = 'q';
  53.           }
  54. /*
  55. console.log('searchengine term: ' + term);
  56. */
  57.           var parms = ref[1].split('&');
  58. /*
  59. console.log('parms split into ' + parms.length);
  60. */
  61.           for (var i=0; i < parms.length; i++) {
  62. /*
  63. console.log('parameter ' + i + ': ' + parms[i]);
  64. */
  65.             var pos = parms[i].indexOf('=');
  66.             if (pos > 0) {
  67.                 if(term == parms[i].substring(0,pos)) {
  68.                   qstr = decodeURIComponent((parms[i].substring(pos+1)+'').replace(/\+/g, '%20'));
  69. /*
  70. console.log('search query found: ' + qstr);
  71. */
  72.                   qarr = qstr.match(/([^\s"]+)|"([^"]*)"/g) || [];
  73.                   for (var j=0; j < qarr.length; j++){
  74. /*
  75. console.log('added ' + qarr[j] + ' to search array');
  76. */
  77.                     hlst_query[j] = qarr[j].replace(/"/g,'');
  78.                   }
  79.                   break;
  80.                 }
  81.             }
  82.           }
  83.         }
  84.     }
  85.     var area, i, s;
  86.     var t = jQuery.support.opacity ? 'mark' : 'span';
  87.  
  88.     if (hlst_query.length != 0) {
  89.         for (s in hlst_areas){
  90.           area = $(hlst_areas[s]);
  91. /*
  92. console.log('testing area: ' + hlst_areas[s]);
  93. */
  94.             if (area.length != 0){
  95.               for (var l = 0; l < area.length; l++) {
  96.                 for (i in hlst_query){
  97. /*
  98. console.log('searching for: ' + hlst_query[i]);
  99. */
  100.                     $(hlst_areas[s] + ' *').highlight(hlst_query[i], true, t, 'hilite term-' + i);
  101.                 }
  102.               }
  103.               break;
  104.             }
  105.         }
  106.     }
  107.   }
  108.   if ('function'==typeof Cufon) Cufon.refresh();
  109. })(jQuery);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement