
var objXHR;
var Name   = "";
var Domain = "";

function validateForm( )
{
	var objFV = new FormValidator("frmDomain");
	
	if (!objFV.validate("txtName", "B", "Please enter the Domain Name to Check its Availability."))
		return false;
	
	if (!isValidName(objFV.value("txtName")))
	{
		alert("Please enter a valid Domain Name!");
		
		objFV.focus("txtName");
		objFV.select("txtName");
		
		return false;
	}

	checkAvailability(objFV.value("txtName"), objFV.value("ddDomain"));
	
	return false;
}

function viewWhois( )
{
	var win = window.open(("php/viewWhois.php?Name=" + Name + "&Domain=" + Domain), "WHOIS", "top=0, left=0, width=500, height=500, scrollbars=yes");
	win.focus( );
}

function isValidName(sName)
{
	if (sName.substring(0, 7) == "http://")
		sName = sName.substring(7, sName.length);
		
	if (sName.substring(0, 4) == "www.")
		sName = sName.substring(4, sName.length);
		
	var sValidChars = "abcdefghijklmnopqrstuvwxyz0123456789-";

	for (var i = 0; i < sName.length; i++)
	{
		var sLetter = sName.charAt(i).toLowerCase( );

		if (sValidChars.indexOf(sLetter) != -1)
			continue;

		return false;
	}

	return true;
}

function checkAvailability(sName, sDomain)
{
 	Name   = sName;
 	Domain = sDomain;
 	
 	document.getElementById("Status").style.display   = "block";

 	objXHR = createXHR( );
 
 	objXHR.onreadystatechange = setResult;
  	objXHR.open("POST","php/checkAvailability.php", true);
	objXHR.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
 	objXHR.send("Name=" + sName + "&Domain=" + sDomain);
}

function setResult( )
{
  	if (objXHR.readyState == 4)
  	{
  		if(objXHR.status == 200)
  		{
  			document.getElementById("Status").style.display   = "none";
  			
  			var iCode   = parseInt(objXHR.responseText);
  			var sResult = "";
  			
  			switch(iCode)
  			{
  				case 101 : sResult = '<img src="images/available.jpg" width="19" height="19" alt="Domain Available" title="Domain Available" align="left" style="margin-right:10px;"> <b style="color:#0060b6; font-size:13px; line-height:19px;">101 : Domain Available</b>';
  				           break;
  				           
  				case 102 : sResult = '<img src="images/taken.jpg" width="19" height="19" alt="Domain Taken" title="Domain Taken" align="left" style="margin-right:10px;"> <b style="color:#555555; font-size:13px; line-height:19px;">102 : Domain Taken</b> [<a href="javascript:viewWhois( );">Whois Record</a>]';
  				           break;
  				           
  				case 103 : sResult = '<img src="images/taken.jpg" width="19" height="19" alt="Domain Expired" title="Domain Expired" align="left" style="margin-right:10px;"> <b style="color:#f58b59; font-size:13px; line-height:19px;">103: Domain Expired / De-activated</b> [<a href="javascript:viewWhois( );">Whois Record</a>]';
  				           break;
  				           
  				case  -1 : sResult = '<img src="images/error.jpg" width="19" height="19" alt="Error" title="Error" align="left" style="margin-right:10px;"> <b style="color:#ff0000; font-size:13px; line-height:19px;">-1 : Error Occurred while checking domain status</b>';
  				           break;
  				           
  				case  -2 : sResult = '<img src="images/error.jpg" width="19" height="19" alt="Error" title="Error" align="left" style="margin-right:10px;"> <b style="color:#ff0000; font-size:13px; line-height:19px;">-2 : Invalid Domain Name</b>';
  				           break;
  			}
  			
  			document.getElementById("Availability").innerHTML = sResult;
  		}
  	} 	
}