var CUR_DOMAIN;
function checkDomainAvailability(domain, texts)
{
    $.ajax({
       type: "GET",
       url: webUrl + "lib/ajax/domain.ajax.php",
       data: "mode=check&domain="+domain,
       dataType : "json",
       success : function(jsonData, textStatus, XMLHttpRequest){
         if (jsonData.success==true) {
             showResult(domain, true, "", texts);
         } else if (jsonData.error=="unavailable"){
             showResult(domain, false, jsonData.error, texts);
         } else { // invalid
             showResult(domain, false, jsonData.error, texts);
         }
         resetForm();
       },
       error : function(XMLHttpRequest, textStatus, errorThrown){
        alert(textStatus);
       }

    });
}
function resetForm() {
   $("img.loader").remove();
   $("#btnSubmit").css("cursor", "pointer").fadeTo("fast", 1);
}
function showResult(domain, success, error, texts) {
    CUR_DOMAIN = domain;
    if (success) {
       message = "<strong>" + domain + "</strong> " + texts.available;
       message = message.replace("\{DOMAINE\}", encodeURI(domain.toLowerCase()));
    } else if (!success && error=="unavailable") {
        message = "<strong>" + domain + "</strong> " + texts.unavailable;
    } else if (!success && error=="invalid") {
        message = "<strong>" + domain + "</strong> " + texts.invalid;
    }
    $("#domainResult").html(message).attr("class", error).fadeTo("normal", 1, function(){
        if (!success && error=="unavailable") {
            bindGetDomainWhois();
        }
    });

}

function bindGetDomainWhois(){
    $("a", "#domainResult").click(function(){
        getDomainWhois(CUR_DOMAIN);
        return false;
    });
}

function getDomainWhois(domain) {
    $("a", "#domainResult").unbind("click").fadeTo("normal", .5);
    $.ajax({
       type: "GET",
       url: webUrl + "lib/ajax/domain.ajax.php",
       data: "mode=whois&domain="+domain,
       success : function(textData, textStatus, XMLHttpRequest){
         //alert(textData);
         showWhoisData(textData);
       },
       error : function(XMLHttpRequest, textStatus, errorThrown){
        alert(textStatus);
       }

    });
}
function showWhoisData(whoisHtml){
   var result = $("#domainResult");
   // Remove whoisInfo
   $("a", result).hide();
   $("div#whoisInfo").remove();

   var info = $('<div id="whoisInfo"><a class="close" href="#">X</a><div class="info">'+whoisHtml+'</div></div>');
   info.insertAfter(result);

   // Close
   $("a.close", info).click(function(){
       $("a", result).fadeTo("normal", 1);
       bindGetDomainWhois();
       $("div#whoisInfo").remove();
       return false;
   });

   $("div#whoisInfo").slideDown();
}
