var progressKey=null;var numTotalRBLs=0;var numRBLsQueried=0;var numBlacklisted=0;var timeoutId=null;var lastMailserverIP=null;function queryRBLsForIP(b){try{if(timeoutId!=null){clearTimeout(timeoutId);timeoutId=null}numRBLsQueried=0;numBlacklisted=0;lastMailserverIP=b;$("#rbl-lookup-button").attr("disabled","true");$(".rbl-results").hide();$("#rbl-result-insertion-point").empty();$("#rbl-query-progress").empty();$("#rbl-query-progress").show();$(".rbl-query-status").show();$.getJSON("/blacklist-lookup",{host:b},function(c,d){if(d=="success"){if(c.error){if(c.error=="INVALID_IP"){outputError("Please specify a valid IP address like 127.0.0.2 or a valid hostname like mail.newslettertech.com")}else{if(c.error=="HOST_NOT_RESOLVED"){outputError("The host you specified could not be resolved into an IP address")}else{outputError("An unknown error occured.")}}queryFinished(true)}else{progressKey=c.progressKey;numTotalRBLs=c.numTotalRBLs;lastMailserverIP=c.ip;setQueryProgress();updateQueryProgress()}}else{alert(d)}})}catch(a){queryFinished();outputError(a.message)}}function outputError(a){$("#rbl-query-progress").html(a)}function setQueryProgress(){$("#rbl-query-progress").html("Checked "+lastMailserverIP+' against <span class="rblnumbers">'+numRBLsQueried+"</span>/"+numTotalRBLs+' RBLs. <span class="rbl-query-status"><img src="/images/loading.gif" /></span>')}function addResults(b,a){var c=$("#rbl-result-insertion-point");resultsShowing=false;for(resultsKey in b){if(!resultsShowing){resultsShowing=true;$(".rbl-results").show()}rblItem=b[resultsKey];if(!rblItem.lookupUrl){shorthtml=rblItem.shortName}else{shorthtml='<a href="'+rblItem.lookupUrl+lastMailserverIP+'" target="_blank">'+rblItem.shortName+"</a>"}if(a=="LISTED"){statusHtml='<img src="/images/status-red.png" alt="Listed in Blacklist" title="Listed in Blacklist" />'}else{if(a=="NETWORK PROBLEM/TIMEOUT"){statusHtml='<img src="/images/status-gray.png" alt="Network Problem/Timeout" title="Network Problem/Timeout" />'}}c.append("<tr><td>"+shorthtml+'</td><td class="status">'+statusHtml+"</td><td>"+rblItem.domainName+"</td><td>"+rblItem.longName+"</td></tr>")}}function updateQueryProgress(){$.getJSON("/blacklist-lookup-progress",{uid:progressKey},function(a,b){if(b=="success"){numRBLsQueried+=a.numLookupsCompleted;setQueryProgress();if(a.positiveResults){numBlacklisted+=a.positiveResults.length;addResults(a.positiveResults,"LISTED")}if(a.networkProblemResults){addResults(a.networkProblemResults,"NETWORK PROBLEM/TIMEOUT")}if(numRBLsQueried<numTotalRBLs){timeoutId=setTimeout("updateQueryProgress()",1000)}else{if(numRBLsQueried==numTotalRBLs){queryFinished()}}}else{alert("updateQueryProgress: "+b)}})}function queryFinished(a){$("#rbl-lookup-button").removeAttr("disabled");$(".rbl-query-status").hide();if(!a){if(numBlacklisted>0){spanclasses="rblnumbers blacklisted"}else{spanclasses="rblnumbers"}$("#rbl-query-progress").append("<div>IP "+lastMailserverIP+' is listed in <span class="'+spanclasses+'">'+numBlacklisted+"</span> Realtime Blacklist(s).</div>")}};