﻿// JScript File

function getWords(url)
{
    url=url.replace("+"," ").replace("+"," ").replace("+"," ");
    var start=url.toString().lastIndexOf("?q");
    if (start<0)
        start=url.toString().lastIndexOf("&q");
    
    start+=3;
    var end=url.toString().indexOf("&",start);
    if (end<0)
        end=document.location.toString().length;
    url=url.replace('.',' ').replace('+',' ');
    
    var pageName=unescape(url.substring(start,end));
    pageName=pageName.replace("+"," ").replace('.',' ').replace("site:www.fotovallescrivia.it ","");
   // document.write("url: "+url+"<br>start: "+start+"; end: "+end+"; string: "+pageName+"; words: "+pageName.split(' ')+"<br>");
    return pageName.split(' ');
    
}

function highlight(words,elemento)
{
    //document.write("<br>HIGHLIGHT me:"+elemento +" "+elemento.nodeName+" "+elemento.nodeValue+"; parent: "+elemento.parentNode +" "+elemento.parentNode.nodeName+" "+elemento.parentNode.nodeValue+"<br>");
   // document.write("Replacing "+words+" inside "+elemento.parentNode.innerHTML+"<br>");//okkio, rallenta molto!
    
    var c;
    var t=elemento.parentNode.innerHTML.toString();
    var testo=elemento.nodeValue;
    var testot=testo;
    for (c=0;c<words.length;c++)
    {
    
    //if (t.indexOf('class="sottolineato"')<0)
    {
        //rgb(90,152,197)
        var reg = new RegExp(words[c], "i");
        testot=testot.replace(reg,'<span style="background-color:rgb(80,80,80);" class="sottolineato">'+words[c]+'</span>');
        //elemento.parentNode.innerHTML=elemento.parentNode.innerHTML.toString().replace(words[c],'<span style="background-color:rgb(90,152,197);" class="sottolineato">'+words[c]+'</span>');
    }
        //ci vorrebbe replace(/parola/i,"nuovaparola"), per il case inseneitive, ma non so la sintassi da usare se "parola" è una variabile
    }
    elemento.parentNode.innerHTML=t.toString().replace(testo,testot);
    //funge solo con 1 o 2 parole.. boh
    
}


function process(url,referrer,elemento)
{process1(url,referrer,elemento,0);}

function process1(url,referrer,elemento,depth)
{

   var queryurl=url;

 //document.writeln("Depth: "+depth+"; processing element:"+elemento+" name:"+elemento.nodeName+" with "+elemento.childNodes.length+" child nodes:<br>");
   
   var i=0;
 /*  for  (i=0;i<elemento.childNodes.length;i++)
        document.write(elemento.childNodes[i]+" "+elemento.childNodes[i].nodeName+" value:"+elemento.childNodes[i].nodeValue+"<br>");
   document.write("---------------------------<br>");*/

   //se c'è la q nel referrer, e il referrer non è il mio sito, uso la q del referrer
   if((referrer.toString().lastIndexOf("?q=")>-1||referrer.toString().lastIndexOf("&q=")>-1)&&(referrer.toString().lastIndexOf("http://www.fotovallescrivia.it")<0||referrer.toString().lastIndexOf("http://www.fotovallescrivia.it")>50))
        queryurl = referrer;

//se non ce la q, esco.
    if (queryurl.toString().lastIndexOf("?q=")<0&&queryurl.toString().lastIndexOf("&q=")<0)
        return;
    if(depth>80)//se non esiste nessuno dei termini cercati fa ricorsioni infinite.. così evito!
        return;
   
   
   if ((elemento.childNodes.length>0&&elemento.innerHTML.toString().indexOf("outlined")<0))
   {
        
        for  (i=0;i<elemento.childNodes.length;i++)
        {
            //document.write("--"+elemento.childNodes[i]+" "+elemento.childNodes[i].nodeName+";<br>");
            process1(url,referrer,elemento.childNodes[i],++depth);
         }
          //document.write("----------------------------------------------------<br>");
    }
    else
    {
    if (elemento.nodeName=="#text")
        highlight(getWords(queryurl.toString()),elemento);
        //document.write("referrer: "+referrer + "; queryurl: "+queryurl+ "words: "+getWords(queryurl.toString())+"<br>");
        
        }
}
