

Ajax.Responders.register({
  onCreate: function(request) {
    if (request.options.onlyLatestOfClass && Ajax.currentRequests[request.options.onlyLatestOfClass]) {
            // if a request of this class is already in progress, attempt to abort it before launching this new request
           try { Ajax.currentRequests[request.options.onlyLatestOfClass].transport.abort(); } catch(e) {}
        }
        // keep note of this request object so we can cancel it if superceded
        Ajax.currentRequests[request.options.onlyLatestOfClass] = request;
  },
    onComplete: function(request) {
    if (request.options.onlyLatestOfClass) {
            // remove the request from our cache once completed so it can be garbage collected
             Ajax.currentRequests[request.options.onlyLatestOfClass] = null;
        }
    }
});


var lastChecked = "";

function goWhois()
{
	
	var domainName = document.getElementById('whois_domainname').value.toLowerCase();		
	if (domainName!="" && checkDomain(domainName) && lastChecked!=("whois."+domainName))
	{	
		domainName = domainName.toLowerCase();
		lastChecked = "whois."+domainName;

		document.getElementById('output').innerHTML = "<h3><font color=red>searching please wait....</font></h3>";
	
		var url = 'whois/ajax.php';
		var pars = 'hack=no&service=whois&dom='+domainName+'';
		
		var myAjax = new Ajax.Updater( 'output', url, { method: 'get', parameters: pars });

	}
}

function goLongWhois()
{
	
	var domainName = document.getElementById('long_whois_domainname').value.toLowerCase();		
	if (domainName!="" && checkDomain(domainName) && lastChecked!=("long_whois."+domainName))
	{	
		domainName = domainName.toLowerCase();
		lastChecked = "long_whois."+domainName;

		document.getElementById('output').innerHTML = "<h3><font color=red>searching please wait....</font></h3>";
	
		var url = 'whois/ajax.php';
		var pars = 'hack=no&service=longwhois&dom='+domainName+'';
		
		var myAjax = new Ajax.Updater( 'output', url, { method: 'get', parameters: pars });

	}
}

function goPing()
{
	var domainName = document.getElementById('ping_domainname').value.toLowerCase();		
	if (domainName!="" && checkDomain(domainName) && lastChecked!=("ping."+domainName))
	{	
		domainName = domainName.toLowerCase();
		lastChecked = "ping."+domainName;

		document.getElementById('output').innerHTML = "<h3><font color=red>searching please wait....</font></h3>";

		var url = 'whois/ajax.php';
		var pars = 'hack=no&service=ping&dom='+domainName+'';
		
		var myAjax = new Ajax.Updater( 'output', url, { method: 'get', parameters: pars });
	}
}



function goHttpHeaders()
{
	var urlval = document.getElementById('http_url').value;		
	if (urlval!="" && lastChecked!=("httpheaders."+urlval))
	{	
		lastChecked = "httpheaders."+urlval;

		document.getElementById('output').innerHTML = "";

		var url = '/http-headers/ajax.php';
		var pars = 'query='+urlval+'';
		
		var myAjax = new Ajax.Updater( 'output', url, { method: 'get', parameters: pars, onlyLatestOfClass:"htmlfetcher" });
	}
}


function goDns()
{
	var domainName = document.getElementById('dns_domainname').value.toLowerCase();		
	if (domainName!="" && checkDomain(domainName) && lastChecked!=("dns."+domainName))
	{	
		domainName = domainName.toLowerCase();
		lastChecked = "dns."+domainName;

		document.getElementById('output').innerHTML = "<h3><font color=red>searching please wait....</font></h3>";

		var url = 'whois/ajax.php';
		var pars = 'hack=no&service=dns&dom='+domainName+'';
		
		var myAjax = new Ajax.Updater( 'output', url, { method: 'get', parameters: pars });

	}
}

function getPageRank()
{
	var domainName = document.getElementById('get_pagerank').value.toLowerCase();		
	if (domainName!="" && checkDomain(domainName) && lastChecked!=("pagerank."+domainName))
	{	
		domainName = domainName.toLowerCase();
		lastChecked = "pagerank."+domainName;

		document.getElementById('output').innerHTML = "<h3><font color=red>searching please wait....</font></h3>";

		var url = 'includes/pagerank.php';
		var pars = 'hack=no&service=pagerank&dom='+domainName+'';
		
		var myAjax = new Ajax.Updater( 'output', url, { method: 'post', parameters: pars });

	}
}

function goIpToCity()
{
	var ipaddress = document.getElementById('ipaddress').value;		
	if (ipaddress!="" && verifyIP(ipaddress) && lastChecked!=("iptocity."+ipaddress))
	{	
		lastChecked = "iptocity."+ipaddress;

		document.getElementById('output').innerHTML = "<h3><font color=red>searching please wait....</font></h3>";

		var url = '/ip-to-city/ajax.php';
		var pars = 'query='+ipaddress+'';
		

		var myAjax = new Ajax.Updater( 'output', url, { method: 'get', parameters: pars });
	}
}




function goCheckAvail()
{
	
	var domainName = document.getElementById('checkavail_domainname').value.toLowerCase();		
	if (domainName!="" && checkDomain(domainName) && lastChecked!=("checkavail."+domainName))
	{	
		domainName = domainName.toLowerCase();
		lastChecked = "checkavail."+domainName;

		document.getElementById('output').innerHTML = "<h3><font color=red>searching please wait....</font></h3>";
	
		var url = 'whois/ajax.php';
		var pars = 'hack=no&service=status&dom='+domainName+'';
		
		var myAjax = new Ajax.Updater( 'output', url, { method: 'get', parameters: pars });
	}

}


function verifyIP (IPvalue) {
var isValidIp = true;

var ipPattern = /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/;
var ipArray = IPvalue.match(ipPattern);

if (IPvalue == "0.0.0.0")
isValidIp = false;
else if (IPvalue == "255.255.255.255")
isValidIp = false;
if (ipArray == null)
isValidIp = false;
else {
for (i = 0; i < 4; i++) {
thisSegment = ipArray[i];
if (thisSegment > 255) {
isValidIp = false;
i = 4;
}
if ((i == 0) && (thisSegment > 255)) {
isValidIp = false;
i = 4;
      }
   }
}

return isValidIp;
}

function checkAvailDomain(domainName)
{
	
var arr=new Array('.com','.net','.org','.info','.us','.biz','.in');
var val=true;
var dotPos=domainName.lastIndexOf(".");
var domainName1=domainName.substring(0,dotPos);
var tld=domainName.substring(dotPos,domainName.length);
if(dotPos>1&&dotPos<57){for(var i=0;i<arr.length;i++){if(tld==arr[i]){val=true;break;}else{val=false;}}
if(val==false){return false;}else{for(var j=0;j<domainName1.length;j++){var p=domainName1.charAt(j);var p2=p.charCodeAt(0);if((p2>47&&p2<59)||(p2>64&&p2<91)||(p2>96&&p2<123)||p2==45||p2==46){if((j==0||j==domainName1.length-1)&&p2==45){return false;}}else{return false;}}}}else{return false;}return true;}

function checkDomain(domainName){
	
if (verifyIP(domainName)==true)
	return true;

	var arr=new Array('.li','.mobi','.hu.com','.ac','.aero','.ag','.am','.as','.at','.au','.be','.biz','.edu.cn','.br','.br.com','.bz','.ca','.cc','.cd','.ch','.ck','.bt','.cl','.cn','.cn.com','.co.nz','.co.uk','.com','.com.br','.coop','.cx','.cz','.de','.de.com','.dk','.edu','.ee','.eu','.eu.com','.fi','.fj','.fm','.fr','.gb.com','.pt','.gb.net','.gg','.gm','.gov','.gov.il','.gov.uk','.pl','.gs','.hk','.hm','.hu','.id','.bg','.ac.uk','.id.au','.ie','.arpa','.il','.in','.info','.int','.ir','.is','.ru','.it','.je','.jp','.ke','.kr','.la','.lk','.lt','.ve','.lu','.lv','.mc','.mil','.ms','.mu','.museum','.mx','.my','.name','.nc','.net','.nl','.no','.no.com','.nu','.nz','.org','.pw','.qc.com','.re','.ro','.ru.com','.sa.com','.se','.se.com','.se.net','.sg','.sh','.si','.sk','.sm','.st','.tc','.tf','.th','.tj','.tm','.to','.tr','.tv','.tw','.ua','.uk','.uk.com','.uk.net','.us','.us.com','.uy.com','.vg','.web.com','.ws','.za.com');
var val=true;
var dotPos=domainName.lastIndexOf(".");
var domainName1=domainName.substring(0,dotPos);
var tld=domainName.substring(dotPos,domainName.length);
if(dotPos>1&&dotPos<57){for(var i=0;i<arr.length;i++){if(tld==arr[i]){val=true;break;}else{val=false;}}
if(val==false){return false;}else{for(var j=0;j<domainName1.length;j++){var p=domainName1.charAt(j);var p2=p.charCodeAt(0);if((p2>47&&p2<59)||(p2>64&&p2<91)||(p2>96&&p2<123)||p2==45||p2==46){if((j==0||j==domainName1.length-1)&&p2==45){return false;}}else{return false;}}}}else{return false;}return true;}




