/************************************************************\*\************************************************************/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 }}