All pastes #561711 Raw Copy code Copy link Edit

kifffkifff

public unlisted javascript v1 · immutable
#561711 ·published 2007-06-12 15:34 UTC
rendered paste body
/************************************************************\*\************************************************************/function hexdec(str){    return parseInt(str,16);}/************************************************************\*\************************************************************/function zeroFill(a,b){    var z = hexdec(80000000);    if (z & a)    {        a = a>>1;        a &= ~z;        a |= 0x40000000;        a = a>>(b-1);     }    else    {        a = a >> b;    }    return (a);}/************************************************************\*\************************************************************/function mix(a,b,c){    a -= b; a -= c; a ^= (zeroFill(c,13));    b -= c; b -= a; b ^= (a<<8);    c -= a; c -= b; c ^= (zeroFill(b,13));    a -= b; a -= c; a ^= (zeroFill(c,12));    b -= c; b -= a; b ^= (a<<16);    c -= a; c -= b; c ^= (zeroFill(b,5));    a -= b; a -= c; a ^= (zeroFill(c,3));    b -= c; b -= a; b ^= (a<<10);    c -= a; c -= b; c ^= (zeroFill(b,15));    var ret = new Array((a),(b),(c));    return ret;}/************************************************************\*\************************************************************/function GoogleCH(url,length){    var init = 0xE6359A60;    if (arguments.length == 1)      length = url.length;    var a = 0x9E3779B9;    var b = 0x9E3779B9;    var c = 0xE6359A60;    var k = 0;    var len = length;    var mixo = new Array();    while(len >= 12)    {        a += (url[k+0] +(url[k+1]<<8) +(url[k+2]<<16) +(url[k+3]<<24));        b += (url[k+4] +(url[k+5]<<8) +(url[k+6]<<16) +(url[k+7]<<24));        c += (url[k+8] +(url[k+9]<<8) +(url[k+10]<<16)+(url[k+11]<<24));        mixo = mix(a,b,c);        a = mixo[0]; b = mixo[1]; c = mixo[2];        k += 12;        len -= 12;    }    c += length;    switch(len)    {        case 11:        c += url[k+10]<<24;        case 10:        c+=url[k+9]<<16;        case 9 :        c+=url[k+8]<<8;        case 8 :        b+=(url[k+7]<<24);        case 7 :        b+=(url[k+6]<<16);        case 6 :        b+=(url[k+5]<<8);        case 5 :        b+=(url[k+4]);        case 4 :        a+=(url[k+3]<<24);        case 3 :        a+=(url[k+2]<<16);        case 2 :        a+=(url[k+1]<<8);        case 1 :        a+=(url[k+0]);    }    mixo = mix(a,b,c);    if (mixo[2] < 0)    return (0x100000000 + mixo[2]);    else    return mixo[2];}/************************************************************\*\************************************************************/function strord(string){    var result = new Array();    for(i=0;i<string.length;i++)    {        result[i] = string[i].charCodeAt(0);    }    return result;}/************************************************************\*\************************************************************/function c32to8bit(arr32){    var arr8 = new Array();    for(i=0;i<arr32.length;i++)    {      for (bitOrder=i*4;bitOrder<=i*4+3;bitOrder++)      {            arr8[bitOrder]=arr32[i]&255;            arr32[i]=zeroFill(arr32[i], 8);        }    }    return arr8;}/************************************************************\*\************************************************************/function myfmod(x,y){   var i = Math.floor(x/y);        return (x - i*y);}/************************************************************\*\************************************************************/function GoogleNewCh(ch){   ch = (((ch/7) << 2) | ((myfmod(ch,13))&7));   prbuf = new Array();   prbuf[0] = ch;   for(i = 1; i < 20; i++) {            prbuf[i] = prbuf[i-1]-9;   }   ch = GoogleCH(c32to8bit(prbuf), 80);   return ch;}var gXMLHttpRequest;//var gch = 0;function URLencode(sStr){return encodeURIComponent(sStr).replace(/\+/g,"%2B").replace(/\//g,"%2F");}function setPagerankStatus(){    var temp = gXMLHttpRequest.responseText;    var foo = temp.match(/Rank_.*?:.*?:(\d+)/i);    @@alert("pagerank="+foo[1]);//trouver une manière de renvoyer la valeur, ou bien l'attribuer au style font-size du lien en cours}function initPagerankStatus(){		var htmlDocument = window._content.document;//définit la page en cours	var liens = htmlDocument.getElementsByTagName("a");// récupère les liens		for(i=0;i<liens.length;i++){				var lienActuel=liens[i];		var urlLienActuel = lienActuel.getAttribute("href");	    		var url = urlLienActuel;		url = url.replace(/\?.*$/g,'?');				var reqgr = "info:" + url;		var reqgre = "info:" + URLencode(url);		var gch = GoogleCH(strord(reqgr));		gch = "6" + GoogleNewCh(gch);	        // en laissant le code si dessous (et peut etre un peu au dessus) la boucle ne se fait plus (s'execute une seule fois)		var querystring = "http://toolbarqueries.google.com/search?client=navclient-auto&ch=" + gch + "&features=Rank&q=" + reqgre;						//alert(querystring);		gXMLHttpRequest = new XMLHttpRequest();		gXMLHttpRequest.onload = setPagerankStatus;		gXMLHttpRequest.open("GET", querystring);		gXMLHttpRequest.send(null);	                        // là il faudrait que je fasse :                // lienActuel.setAttribute("style", "font-size="+(resultatPageRank*10)+"px";                // mais je n'arrive pas à récupérer le pagerank       }}