var http_request = new Array();var handled = new Array();var scanqueue = new Array();var i=1, maxedout=0, sq=-1, nextscan=-1; var inprogress=0; var uniquelinks = new Array; var totlinksfound = 0, uniquelinksfound = 0, questlinksfound = 0; var pagesscanned = 0; function applyEvent(theObj, theEvent, theFunction){ if(window.addEventListener){ // Mozilla, Netscape, Firefox theObj.addEventListener(theEvent, theFunction, false); }else{ // IE theObj.attachEvent('on' + theEvent, theFunction); }; }; function showHelp(e){ var thisele; if(!(typeof event == "undefined")){ // Internet Explorer thisele = event.srcElement; }else if(this){ // Netscape and Firefox thisele = this; }; var thismenu = document.getElementById(thisele.getAttribute('menu')); var xcoord=0; var ycoord=0; if(typeof event == "undefined"){ xcoord+=e.pageX -300; ycoord+=e.pageY - 165; }else if(typeof window.event !="undefined"){ xcoord+=thisele.scrollLeft+event.clientX -300; ycoord+=thisele.scrollTop+document.getElementsByTagName('body')[0].scrollTop+event.clientY - 165; }; thismenu.style.left=xcoord+"px"; thismenu.style.top=ycoord+"px"; }; function clearHelp(e){ var thisele; if(!(typeof event == "undefined")){ // Internet Explorer thisele = event.srcElement; }else if(this){ // Netscape and Firefox thisele = this; }; thismenu = document.getElementById(thisele.getAttribute('menu')); thismenu.style.left = -500+"px"; }; function spacify(strIn){ var newstr = ""; while(strIn.length>60){ newstr = newstr + strIn.substring(0,60) + " "; strIn = strIn.substring(60); }; return newstr + strIn; }; 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 xmldoc = http_request[i].responseXML; var ret = xmldoc.getElementsByTagName('scanresult').item(0); var ret_err = ret.getElementsByTagName('err').item(0).firstChild.data; var ret_notvaliddata = ret.getElementsByTagName('notvaliddata').item(0).firstChild.data; if(ret_err!=0){ alert(ret_err + "\n" + ret_notvaliddata); }else{ pagesscanned++; var resultsdiv = document.getElementById('resultsdiv'); resultsdiv.style.display = "block"; var reqid = ret.getElementsByTagName('reqid').item(0).firstChild.data; var requrl = ret.getElementsByTagName('requrl').item(0).firstChild.data; var responsecode = ret.getElementsByTagName('responsecode').item(0).firstChild.data; var numlinks = Math.round(ret.getElementsByTagName('numlinks').item(0).firstChild.data); var numquestlinks = Math.round(ret.getElementsByTagName('numquestionable').item(0).firstChild.data); var blogpercent = Math.max(ret.getElementsByTagName('blogpercent').item(0).firstChild.data,-1000); var linksfound = ret.getElementsByTagName('linksfound').item(0); var thelinks = linksfound.getElementsByTagName('linkurl'); var theanchors = linksfound.getElementsByTagName('linkanchor'); var theaflags = linksfound.getElementsByTagName('linkquestionable'); var thelinkdomains = linksfound.getElementsByTagName('linkdomain'); var thefoundondomains = linksfound.getElementsByTagName('foundondomain'); var newdivs = new Array; var isunique; var oldqlength = scanqueue.length; for(j=0;j\n"; thedisplay += "URL: " + tmplink + "
" + "Anchor text: " + tmpanchor; newdivs[j].innerHTML = thedisplay; resultsdiv.appendChild(newdivs[j]); }; var addthis = true, numthisdoms=0; if(scanqueue.length<40){ for(r=0;r2){ addthis = false; }; }else{ addthis = false; }; if(addthis){ sq++; scanqueue[sq] = new Array; scanqueue[sq][0] = tmplink; scanqueue[sq][1] = tmplnkdom; scanqueue[sq][2] = tmpfoundon; }; uniquelinks[uniquelinks.length] = tmplink; uniquelinksfound++; }; } totlinksfound = totlinksfound + numlinks; questlinksfound = questlinksfound + numquestlinks; document.getElementById('linksfound').innerHTML = totlinksfound; document.getElementById('uniquelinksfound').innerHTML = uniquelinksfound; document.getElementById('questlinksfound').innerHTML = questlinksfound; document.getElementById('pagesscanned').innerHTML = pagesscanned; //update the queue item var uthis; var l = reqid; uthis = document.getElementById("qspan" + l); uthis.innerHTML = uthis.innerHTML + "
Scanned: "; uthis.innerHTML = uthis.innerHTML + numlinks + " links found, "; uthis.innerHTML = uthis.innerHTML + numquestlinks + " questionable links found, "; uthis.innerHTML = uthis.innerHTML + " header returned: " + responsecode; var imgdiv = document.getElementById("qdivr" + l); if(responsecode==403){ var denyimg = document.createElement('img'); denyimg.setAttribute('src', '/images/403.gif'); denyimg.setAttribute('alt', '403 Forbidden'); denyimg.setAttribute('title', '403 Forbidden'); denyimg.setAttribute('menu', 'forbidhelp'); imgdiv.innerHTML = ""; imgdiv.appendChild(denyimg); applyEvent(denyimg, 'mousemove', showHelp); applyEvent(denyimg, 'mouseout', clearHelp); }else{ if(responsecode==301 || responsecode==302){ var redirtype=""; if(responsecode==301){ redirtype = "301 Redirect"; }else{ redirtype = "302 Redirect"; }; var redirimg = document.createElement('img'); redirimg.setAttribute('src', '/images/redir.gif'); redirimg.setAttribute('alt', redirtype); redirimg.setAttribute('title', redirtype); redirimg.setAttribute('menu', 'redirhelp'); imgdiv.innerHTML = ""; imgdiv.appendChild(redirimg); applyEvent(redirimg, 'mousemove', showHelp); applyEvent(redirimg, 'mouseout', clearHelp); }else{ if(responsecode==404){ var redximg = document.createElement('img'); redximg.setAttribute('src', '/images/redx.gif'); redximg.setAttribute('alt', '404 Not Found'); redximg.setAttribute('title', '404 Not Found'); redximg.setAttribute('menu', 'missinghelp'); imgdiv.innerHTML = ""; imgdiv.appendChild(redximg); applyEvent(redximg, 'mousemove', showHelp); applyEvent(redximg, 'mouseout', clearHelp); }else{ if(numquestlinks==0){ var gcheckimg = document.createElement('img'); gcheckimg.setAttribute('src', '/images/gcheck.gif'); gcheckimg.setAttribute('alt', 'Page Checks Clean'); gcheckimg.setAttribute('title', 'Page Checks Clean'); gcheckimg.setAttribute('menu', 'cleanhelp'); imgdiv.innerHTML = ""; imgdiv.appendChild(gcheckimg); applyEvent(gcheckimg, 'mousemove', showHelp); applyEvent(gcheckimg, 'mouseout', clearHelp); }else{ var warnimg = document.createElement('img'); warnimg.setAttribute('src', '/images/ywarning.gif'); warnimg.setAttribute('alt', 'Potential Bad Neighborhood'); warnimg.setAttribute('title', 'Potential Bad Neighborhood'); warnimg.setAttribute('menu', 'warninghelp'); imgdiv.innerHTML = ""; imgdiv.appendChild(warnimg); applyEvent(warnimg, 'mousemove', showHelp); applyEvent(warnimg, 'mouseout', clearHelp); }; }; }; }; var imgdivb = document.getElementById("qdivrb" + l); var bar; if(numlinks<=40){ bar = 1; }else if(numlinks>40 && numlinks<=80){ bar = 2; }else if(numlinks>80 && numlinks<=100){ bar = 3; }else if(numlinks>100 && numlinks<=120){ bar = 4; }else if(numlinks>120 && numlinks<=140){ bar = 5; }else if(numlinks>140 && numlinks<=300){ bar = 6; }else if(numlinks>300){ bar = 7; }; var barimg = document.createElement('img'); barimg.setAttribute('src', '/images/bars' + bar + '.gif'); barimg.setAttribute('alt', 'Link Density Gauge'); barimg.setAttribute('title', 'Link Density Gauge'); barimg.setAttribute('menu', 'linkdensityhelp'); imgdivb.appendChild(barimg); applyEvent(barimg, 'mousemove', showHelp); applyEvent(barimg, 'mouseout', clearHelp); var imgdivc = document.getElementById("qdivrc" + l); if(blogpercent<=40){ imgdivc.innerHTML = "No Blogspam Detected"; }else{ var bspamimg = document.createElement('img'); bspamimg.setAttribute('src', '/images/blogspam.gif'); bspamimg.setAttribute('alt', 'Possible Blogspam Detected (' + blogpercent + '%)'); bspamimg.setAttribute('title', 'Possible Blogspam Detected (' + blogpercent + '%)'); bspamimg.setAttribute('menu', 'blogspamhelp'); imgdivc.appendChild(bspamimg); applyEvent(bspamimg, 'mousemove', showHelp); applyEvent(bspamimg, 'mouseout', clearHelp); }; document.getElementById("qdiv" + l).style.backgroundColor = "#FFF5F6"; //quick display for queue var newqlength = scanqueue.length; var newqdivs = new Array; var newqspans = new Array; var newqdivresults = new Array; var newqdivresultsb = new Array; var newqdivresultsc = new Array; var pform = document.getElementById('progressform'); for(x=oldqlength;xFound on: " + scanqueue[x][2] +"\n"; newqdivresults[x] = document.createElement('div'); newqdivresults[x].setAttribute("className", "qdivresult"); newqdivresults[x].setAttribute("class", "qdivresult"); newqdivresults[x].setAttribute("id", "qdivr" + x); newqdivresultsb[x] = document.createElement('div'); newqdivresultsb[x].setAttribute("className", "qdivresult"); newqdivresultsb[x].setAttribute("class", "qdivresult"); newqdivresultsb[x].setAttribute("id", "qdivrb" + x); newqdivresultsc[x] = document.createElement('div'); newqdivresultsc[x].setAttribute("className", "qdivresult"); newqdivresultsc[x].setAttribute("class", "qdivresult"); newqdivresultsc[x].setAttribute("id", "qdivrc" + x); newqdivs[x].appendChild(newqdivresults[x]); newqdivs[x].appendChild(newqdivresultsb[x]); newqdivs[x].appendChild(newqdivresultsc[x]); newqdivs[x].appendChild(newqspans[x]); pform.appendChild(newqdivs[x]); }; }; // move to the next one if(nextscan+1