var http_request = new Array();var handled = new Array();var scanqueue = new Array();var i=1, maxedout=0, sq=-1, nextscan=-1, lastNextStart=0; var inprogress=0; var retry = 0; var currdc = 0; var dc = new Array(); dc[0] = "74.125.47.104"; // yw-in-f104.google.com dc[1] = "72.14.209.104"; // bf-in-f104.google.com dc[2] = "64.233.163.189"; // bs-in-f189.google.com dc[3] = "72.14.235.184"; // mad01s03-in-f184.google.com dc[4] = "209.85.135.17"; // mu-in-f17.google.com function URLencode(sStr) { return escape(sStr).replace(/\+/g, '%2B').replace(/\"/g,'%22').replace(/\'/g, '%27').replace(/\&/g, '%26'); } function makeRequest(url, i) { if (window.XMLHttpRequest) { // Mozilla, Safari, etc. http_request[i] = new XMLHttpRequest(); if (http_request[i].overrideMimeType) { http_request[i].overrideMimeType('text/xml'); } } else if (window.ActiveXObject) { // IE try { http_request[i] = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request[i] = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { } } } if (!http_request[i]) { return false; } http_request[i].onreadystatechange = function(){handleResponse(i)}; http_request[i].open('GET', url, true); http_request[i].send(null); return true; } function handleResponse(i){ var tmplink, tmpanchor; if(http_request[i].readyState == 4){ var resultsdiv = document.getElementById('resultsdiv'); resultsdiv.style.display = "block"; var xmldoc = http_request[i].responseXML; var ret = xmldoc.getElementsByTagName('scanresult').item(0); var errNum = ret.getElementsByTagName('errNum').item(0).firstChild.data; var errDesc = ret.getElementsByTagName('errDesc').item(0).firstChild.data; var thisdc = ret.getElementsByTagName('dc').item(0).firstChild.data; var thisdcName = ret.getElementsByTagName('dcName').item(0).firstChild.data; var thispage = Math.round(ret.getElementsByTagName('page').item(0).firstChild.data); var thisstart = ret.getElementsByTagName('start').item(0).firstChild.data; var domainIn = ret.getElementsByTagName('domainIn').item(0).firstChild.data; var domainChecked = ret.getElementsByTagName('domainChecked').item(0).firstChild.data; var kwd = unescape(ret.getElementsByTagName('kwd').item(0).firstChild.data); var found = Math.round(ret.getElementsByTagName('found').item(0).firstChild.data); var foundURL = ret.getElementsByTagName('foundURL').item(0).firstChild.data; var foundTitle = ret.getElementsByTagName('foundTitle').item(0).firstChild.data; var nextPageAvail = ret.getElementsByTagName('nextPageAvail').item(0).firstChild.data; var nextStart = ret.getElementsByTagName('nextStart').item(0).firstChild.data; if(errNum==4){ //sleep on it var phrase = URLencode(kwd); var callstr = 'scan(\''+ domainIn + '\', \'' + phrase + '\', ' + thispage + ')'; setTimeout(callstr, 850); return true; } if(errNum==5){ //timeout out, retry var phrase = URLencode(kwd); retry++; scan(domainIn, phrase, thispage, retry); return true; } retry = 0; if(found>0){ var thisResult, thisRank; thisResult = document.getElementById(thisdc); thisRank = document.getElementById(thisdc+'-rnk'); var pos = ((thispage - 1) * 100) + found; thisResult.innerHTML = foundURL; thisRank.innerHTML = pos; if(currdc<5){ currdc++; lastNextStart=0; scan(domainIn, kwd, 1); } }else if(nextPageAvail=='true' && nextStart!=lastNextStart && thispage<2){ lastNextStart = nextStart; var phrase = URLencode(kwd); scan(domainIn, phrase, thispage + 1); }else{ var thisResult, thisRank; thisResult = document.getElementById(thisdc); thisRank = document.getElementById(thisdc+'-rnk'); thisResult.innerHTML = domainChecked; thisRank.innerHTML = "Not in top 200"; if(currdc<5){ currdc++; lastNextStart=0; scan(domainIn, kwd, 1); } } }else{ //alert('There was a problem with the request. ReadyState:' + http_request[i].readyState); } } function startScan(){ if(inprogress!=0){ return false; }else{ inprogress=1; } //call to fancy DHTML goes here } function scan(domain, phrase, page, retry){ i++; phrase = URLencode(phrase) resdiv = document.getElementById(dc[currdc]); rnkdiv = document.getElementById(dc[currdc]+'-rnk'); if(retry==undefined){ resdiv.innerHTML = "{scanning page "+page+"}"; }else{ resdiv.innerHTML = "{scanning page "+page+" (retry #" + retry + ")}"; } rnkdiv.innerHTML = ""; if(i<=1400){ makeRequest('gmdc-scan.php?dc='+dc[currdc]+'&domain='+domain+'&term='+phrase+'&page='+page, i); }else{ alert(i); maxedout = 1; }; return true; } String.prototype.trim = function(){ return this.replace(/^\s+|\s+$/g,""); } function doform(){ var term = document.getElementById("term").value; term = term.trim(); var domainstr = document.getElementById("chkdomain").value; domainstr = domainstr.trim(); if(term.length>2 && domainstr.length>5){ var thereset = document.getElementById("reset-switch"); thereset.style.display = "inline"; var thetoolform = document.getElementById("toolform"); thetoolform.style.display = "none"; var theresultsdiv = document.getElementById("resultsdiv"); theresultsdiv.style.display = "block"; var theprogressdiv = document.getElementById("progress"); theprogressdiv.style.display = "block"; var thekwdspan = document.getElementById("checkkeywords"); thekwdspan.innerHTML = term; var thedomainspan = document.getElementById("checkdomain"); thedomainspan.innerHTML = domainstr; scan(domainstr, term, 1); } }