﻿
 onload=function(){ 
 var ProDescription=document.getElementById("pro_description");
 if (ProDescription!=null)
 {
 var keyword=new keywords(); 
  keyword.body=document.getElementById("pro_description"); // --要高亮显示关键词的 HTML 元素 
  keyword.flag=''; // --传递要匹配的关键词, 使用正则匹配. 
  keyword.func=iLink; // --自定义链接函数, 可选, 参数为 yourfunc(sMatch, sBgCor, sFgCor); 
  keyword.go(); // --执行本程序 
  keyword=null; 
 } 
  function iLink(sMatch, sBgCor, sFgCor){ 
  return '<a target="_blank" class="MatchKeywords" href="http://www.nanxiashu.com/Search.html?Keywords='+sMatch+'&proclassid=&Issearch=OK">'+sMatch+'</a>';
 } 
 //style="background-color:'+sBgCor+'color:'+sFgCor+'"
 /*-----------------------------------------------------------------------------------*\ 
  * shawl.qiu javascript dom 关键词高亮类 v1.0 
 \*-----------------------------------------------------------------------------------*/ 
 //---------------------------------begin class keywords()-------------------------------// 
 function keywords(){ // shawl.qiu code 
  //------------------------------------begin public variable 
  //---------------begin 
  //---------------end about 
  this.body=document.body; 
  this.flag=''; 
  this.func=''; 
  this.iFlag1='@@'; 
  this.iFlag2='##'; 
  //------------------------------------end public variable 
    //------------------------------------begin public method 
  this.go=function(){ 
   fGetWord(tl.body); 
  }; 
  //------------------------------------end public method 
    //------------------------------------begin private variable 
  var tl=this; 
  var tlTemp=''; 
  //------------------------------------end private variable 
   //------------------------------------begin private method 
  function fGetWord(oEle){ 
   for(var i=0, j=oEle.childNodes.length; i<j; i++){ 
    var oTemp=oEle.childNodes[i]; 
    if(oTemp.nodeType==1){  
     arguments.callee(oTemp); 
    } else if (oTemp.nodeType==3){ 
     var oRe=new RegExp(tl.flag,'gi'); 
          if(oRe.test(oTemp.data)){ 
      var sTemp=oTemp.data; 
       sTemp=sTemp.replace(oRe,function(sMatch){ 
        if(tlTemp.indexOf(tl.iFlag1+sMatch+tl.iFlag1+tl.iFlag2)==-1){ 
         var sBgCor=fRndCor(10, 20); 
         var sFgCor=fRndCor(230, 255); 
         tlTemp+=tl.iFlag1+sMatch+tl.iFlag1+tl.iFlag2+sBgCor+tl.iFlag2+sFgCor; 
         return fReturnStr(oTemp, sMatch, sBgCor, sFgCor); 
        } else { 
         var sBgCor=sFgCor=''; 
         var iRe=new RegExp(tl.iFlag1+'('+sMatch+')'+tl.iFlag1+tl.iFlag2+'(.*?)'+ 
          tl.iFlag2+'(.*?)('+tl.iFlag1+'|'+tl.iFlag2+'|$)','i'); 
         tlTemp.replace(iRe, function($0,$1,$2,$3){
          sBgCor=$2;sFgCor=$3; 
         }); 
         return fReturnStr(oTemp, sMatch, sBgCor, sFgCor); 
        }// end if 3 
       }); 
             if(typeof sTemp!='undefined'){ 
       if(sTemp=='')break; 
       var oSpan=document.createElement('span'); 
        oSpan.innerHTML=sTemp; 
        oTemp.parentNode.replaceChild(oSpan, oTemp); 
        oSpan=null; 
      } // end if 3 
           } // end if 2 
          oRe=null; 
    } // end if 1 
   } // end for 
  } // end function fGetWord(oEle) 
    function fReturnStr(oNode, sMatch, sBgCor, sFgCor){ 
    if(tl.func==''||oNode.parentNode.nodeName=='A'){ 
     return sMatch; 
    } else { 
     return tl.func(sMatch, sBgCor, sFgCor); 
    } 
  } // end function fReturnStr(oNode, sMatch, sBgCor, sFgCor) 
    function fRndCor(under, over){ 
   if(arguments.length==1){ 
    var over=under; 
     under=0; 
   }else if(arguments.length==0){ 
    var under=0; 
    var over=255; 
   } 
   var r=fRandomBy(under, over).toString(16); 
    r=fStrPadStr(r, r, 2); 
   var g=fRandomBy(under, over).toString(16); 
    g=fStrPadStr(g, g, 2); 
   var b=fRandomBy(under, over).toString(16); 
    b=fStrPadStr(b, b, 2); 
    //defaultStatus=r+' '+g+' '+b 
   return '#'+(r+g+b).toUpperCase()+';'; 
  } // shawl.qiu code 
    function fRandomBy(under, over){ 
   switch(arguments.length){ 
    case 1: return parseInt(Math.random()*under+1); 
    case 2: return parseInt(Math.random()*(over-under+1) + under); 
    default: return 0; 
   } 
  }  // shawl.qiu code 
    function fStrPadStr(sSrc, sPad, nLen){ 
   if(!sSrc)return false; 
   if(!sPad)sPad='0'; 
   if(!nLen)nLen=2; 
   sSrc+=''; 
   if(sSrc.length>=nLen)return sSrc; 
   sPad=new Array(nLen+1).join(sPad); 
   var re=new RegExp('.*(.{'+(nLen)+'})$'); 
   return (sPad+sSrc).replace(re,'$1'); 
  } 
  //------------------------------------end private method 
 } // shawl.qiu code 
 //---------------------------------end class keywords()---------------------------------// 
  } 


