var intervalToCheckForChange = 300; // in milliseconds
var request;
var	statusDivJS;
var	isAvailableDivJS;
var	domainInput;
var	extensionInput;
var domainsAvailableInput;
var domainsAvailableInput2;
var isInProgress = false;
var disInProgress = false;
var prevCheckValue = ".com";
var whatDomainDivJS;
var intStartCheck;
var isLoaded = false;
var intFailedResponse;
var timesError = 0;
var ssajax = 'ss';
var buttonclicked = false;

function savey() {
//$('#linktarget').hide();
if (isInProgress == false){
if (buttonclicked == false){
$('#linktarget img').fadeTo("fast", 0.30);
buttonclicked = true;
if( $('#tagholder').is(':visible') ) {
    // it's visible, do something
}
else {
$('#tagholder').show();
}






whatDomainDivJS = document.getElementById("whatDomainDiv");
domainsAvailableInput2 = document.getElementById("domainsAvailable2");
$(domainsAvailableInput2).addTag(domainInput.value+"."+extensionInput.value,{focus:false});	}}
}
		

function checkDomain()
{
	if (isInProgress) return;
	buttonclicked = false;
	isInProgress = true;
	prevCheckValue = domainInput.value+"."+extensionInput.value;
	re = new RegExp("^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)*[a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?$");
	if (prevCheckValue.match(re) == null)
	{
		statusDivJS.innerHTML = "<img src='./images/template/prgc.gif' height='23' width='40' alt='in progress'>";
		//statusDivJS.innerHTML = "<span style='color:red;'>Invalid Domain (Letters, numbers and hypens only) <\/span>";
		isInProgress = false;
		return;
	}
	statusDivJS.innerHTML = "<img src='./images/template/prgb.gif' height='13' width='40' alt='in progress'>";
	//statusDivJS.innerHTML = "<span style='color:green;'><img src='./images/template/prga.gif' style='display:none;' height='13' width='40' alt='in progress'>Checking "+prevCheckValue+" ( <a href='#' onClick='abortRequest();return false;'>Abort<\/a> / <a href='#' onClick='retryRequest();return false;'>Retry<\/a> )<\/span>";
	if (window.XMLHttpRequest) { // Mozilla, Safari, ...
		request = new XMLHttpRequest();
	}
	else if (window.ActiveXObject) { // IE
		request = new ActiveXObject("Microsoft.XMLHTTP");
	}
	var requestUrl = "index.php?aj=&ma="+Math.random()+"&domain="+domainInput.value+"."+extensionInput.value;
	//document.location.href = requestUrl;return;
	request.open("GET",requestUrl,true);
	request.onreadystatechange = processResponse;
	intFailedResponse = setTimeout("failedResponse()",15000);
	try {request.send(null); }
	catch (e)
	{
		timesError++;
		statusDivJS.innerHTML = "<span style='color:red;'>Error connecting to server ("+timesError+"x)<\/span>";
	}
}

function failedResponse()
{
	if (!isInProgress) return;
	isInProgress = false;
	timesError++;
	statusDivJS.innerHTML = "<span style='color:red;'>Error connecting to server ("+timesError+"x)(<a href='#' onclick='checkDomain();return false;'>Retry<\/a>)<\/span>";
	request.abort();
	request = null;
}
function retryRequest()
{
	if (!isInProgress) return;
	request.abort();
	isInProgress = false;
	request = null;
	statusDivJS.innerHTML = "<span style='color:red;'>Retrying<\/span>";
	checkDomain();
}
function abortRequest()
{
	if (!isInProgress) return;
	request.abort();
	isInProgress = false;
	request = null;
	statusDivJS.innerHTML = "<span style='color:red;'>Aborted<\/span>";
}
function processResponse()
{
	statusDivJS = document.getElementById("statusDiv");
	if (request.readyState == 4)
	{
		clearTimeout(intFailedResponse);
		var requestXML = request.responseXML;
		if ((requestXML != null) && (typeof(requestXML) == "object") && (requestXML.getElementsByTagName("domainname")[0] != null))
		{
			statusDivJS.innerHTML = "<img src='./images/template/prga.gif' height='13' width='40' alt='in progress'>";
			//statusDivJS.innerHTML = "Done <br />(<a href='#' onClick='checkDomain();return false;'>Check again<\/a>)";
			isInProgress = false;
			var main = 'c'
			if (document.getElementById(main+'s'+'s') == null) return 'OK';
			var domain = requestXML.getElementsByTagName("domainname")[0].firstChild.data;
			var available = requestXML.getElementsByTagName("available")[0].firstChild.data;
			var errorMsg = "";
			var domainstring = domainInput.value;
			var tldExt = document.getElementById("extensionGen").value;
			if (requestXML.getElementsByTagName("errorMsg")[0].firstChild != null)
				errorMsg = requestXML.getElementsByTagName("errorMsg")[0].firstChild.data;
			if (available == "true")
			{
				
				available = "<span style='display:none; color:green;'><b>YES<\/b><\/span>" + "<a href='https://www.devgm.com/clients/domainchecker.php?direct=true&domain=" + domainstring + "&ext=." + tldExt +"'><img border='0'  alt='secure this domain' src='./images/template/seccure.png'/></a><a href='#' id='linktarget' onclick='savey();return false;'><img border='0' alt='save this domain' src='./images/template/save.png'/><\/a>"; 
				if (domainsAvailableInput.value.indexOf(domain +" ") == -1)
					domainsAvailableInput.value = domainsAvailableInput.value + domain +" \n";
				//	$(domainsAvailableInput2).addTag(domainInput.value + "." + tldExt,{focus:false});	 DJ AUTO ADD
			}
			else
			{
				available = "<span style='color:red; display:none;'>NO<\/span> <img border='0' alt='youcannotsave' src='./images/template/noseccure.png'/><img border='0' alt='you cannot favorite this domain' src='./images/template/nosave.png'/>";
			}
			if (errorMsg != "")
			{
				statusDivJS.innerHTML = errorMsg;
			}
			//whatDomainDivJS.innerHTML = "domain;
			isAvailableDivJS.innerHTML = available;
			isAvailableDivJS.innerHTML = available;
		}
		else
		{
			failedResponse();
			return;
		}
	}
	else if (request.readyState == 3)
	{
		statusDivJS.innerHTML = "Request sent...";
	}
}
function checkForChange()
{
	if (!isLoaded) return;
	//clearTimeout(intStartCheck);
	if (document.getElementById('c'+ssajax) == null)
		isInProgress = true;
	if (prevCheckValue != (domainInput.value+"."+extensionInput.value))
	{
		//intStartCheck = setTimeout("checkDomain()",intervalToCheckForChange);
			checkDomain();
	}
}

		
function bodyonLoad()
{
	statusDivJS = document.getElementById("statusDiv");
	isAvailableDivJS = document.getElementById("isAvailableDiv");
	domainInput =  document.getElementById("domain");
	extensionInput =  document.getElementById("extension");
	domainsAvailableInput = document.getElementById("domainsAvailable");
	domainsAvailableInput2 = document.getElementById("domainsAvailable2");
	whatDomainDivJS = document.getElementById("whatDomainDiv");
	isLoaded = true;
	setInterval("checkForChange()",intervalToCheckForChange);
}
window.onload=function(){
bodyonLoad();
}
