//namespace pro domreg01
var domreg01 = {};

//aktuálně zadané doménové jméno
domreg01.domainName = null;

//poslední hledané doménové jméno
domreg01.lastSearched = null;

//je poslední hledaná doména volná
domreg01.volna = null;

/**
 * Fce na pročištění doménového jména od nepovolených znaků
 * @param string domainName Doménové jméno, které se má pročistit
 * @return string Pročištěné doménové jméno
 */
domreg01.purgeDomainName = function(domainName) {
    if (domainName.length == 0) { return domainName; }
    domainName = domainName.toLowerCase();  
    domainName = domainName.replace(/[^a-zA-Z0-9-]+/g, "");
    domainName = domainName.substring(0,63);
    return domainName;
}

// uložený ajaxový request, kterým se naposled zjišťovala dostupnost domény
domreg01.ajaxRequest = null;

/**
 * Obarví doménu
 * @param string domainName Doménové jméno k obarvení
 */
domreg01.colorDomainName = function(domainName) {
    return '<span class="basket-domena">www.<strong>' + domainName + '</strong>.cz</span>';
}

/**
 * Pokud dojde k zadání textu do pole domény
 */
domreg01.formChange = function() {
    domreg01.domainName = domreg01.purgeDomainName($F("domainName"));

/*
    try {  //zastaví se starý request
        domreg01.ajaxRequest.transport.abort();
    }   
    catch(e) {} 
  */

    //vrátí se zpět do formuláře -> ve výsledku uživatel nemůže zadat jiné než povolené znaky
    $("domainName").value = domreg01.domainName;


 
    //odobarvení
    $('domainInfoBox').className = "";
   // $('search_submit').className = "search_submit disabled";
    domreg01.volna = false;
    
    //pokud je doménové jméno příliž krátké, tak se nekontroluje
    if (domreg01.domainName.length < 1) {
        $('domainInfoBox').innerHTML = "";
        return;
    }
    //pokud se nezměnilo od posledního hledání, tak se nekontroluje
    if (domreg01.domainName == domreg01.lastSearched) {
        return;
    } else {
    try {  //zastaví se starý request
        domreg01.ajaxRequest.transport.abort();
    }   
    catch(e) {} 

    }

        
    $('domainInfoBox').innerHTML = '<div class="left">Probíhá ověřování domény ' + domreg01.colorDomainName(domreg01.domainName) + '. </div><div class="left2"><img src="http://www.kvapem.cz/www/images/design/loading.gif" /></div>';

    domreg01.lastSearched = domreg01.domainName;
    //zjistíme, zda je doména volná
    domreg01.ajaxRequest = new Ajax.Request('http://www.kvapem.cz/kosikhttp/jeDomenaVolna/domain/' + domreg01.domainName, {
        method:'get',
        onSuccess: function(q) {
            var response = q.responseText.evalJSON();
            /* pokud se vrátil výsledek pro jinou doménu, než je aktuálně ve formuláři,
               tak se hledá znovu */
            if (response.domainName !== $F("domainName")) {
                domreg01.formChange();
                return;
            }
            else {
                domreg01.lastSearched = response.domainName;
                if (response.availability == false) {  //obsazená
                    $('domainInfoBox').innerHTML = '<div class="left">Doména ' + 
                    domreg01.colorDomainName(response.domainName) + 
                        ' je <a href="/whois/check/domena/' + response.domainName + '.cz"><strong class="red">obsazená</strong></a>.</div>'
                         ;//+ '<div class="left2"><input type="button" class="inline submitBasket" '
                         //+ 'value="Whois" onclick="alert("@td")" /></div>';
                }
                else if (response.availability == true) { //volnás
                    $('domainInfoBox').innerHTML = '<div class="left">' +
                    '<div class="inline"> Doména ' + 
                    domreg01.colorDomainName(response.domainName) +
                        ' je <strong class="green">volná</strong>.</div></div>' +
                        '<div class="left2"><input type="button" class="inline submitBasket"' +
                        ' value="Přidat do košíku" onclick="domreg01.basket.add();" /></div>';
                   // $('search_submit').className = "search_submit";
                    domreg01.volna = true;
                }
                else if (response.availability == 'e') { //chybná doména
                    $('domainInfoBox').className = "red";
                    $('domainInfoBox').innerHTML = "Doména " + domreg01.colorDomainName(response.domainName) + " je neplatná.";

                }
            }
        }});
}

//namespace pro fce pro práci s košíkem
domreg01.basket = {}

/**
 * Je košík prázdný
 */
domreg01.basket.isEmpty = true;


/**
 * Přidání domény do košíku
 */
domreg01.basket.add = function() {
/*
    if (domreg01.volna == false || domreg01.domainName == null) {
        return;
    }
*/
    domreg01.domainName = $("domainName").value;
    if (domreg01.basket.content == 0) {
        a = '<table class="form">';
        a += '<tr>';
        a += '<td><span class="basket-domena">www.<strong>' +
                domreg01.domainName +'</strong>.cz</span></td>';
        a += '<td><img src="http://www.kvapem.cz/' +
                'www/images/design/loading.gif" /></td>';
        a += '</tr>';
        a += '</table>';
        $('domainNameBasket').innerHTML = a;
        $('domainNameBasket').show();
        $('info_text').hide();
    } else {
        domreg01.basket.contentTmp = domreg01.domainName + '.cz';
        domreg01.basket.redraw();
    }
    new Ajax.Request('http://www.kvapem.cz/kosik/adddomaintobasket/domain/' + domreg01.domainName, {
        method:'get',
        onSuccess: function() {
            domreg01.basket.get();  //překreslení košíku
            $("domainName").value = "";  //vyprázdnění pole pro doménu
            domreg01.formChange();
            $("domainName").focus();  //aktivace pole
        }
    });
}

//obsah košíku po vrácení ajaxem
domreg01.basket.content = null;

domreg01.basket.contentTmp = null;

/**
 * Načte obsah košíku do proměnné, zavolá překreslení
 */
domreg01.basket.get = function() {
    new Ajax.Request('http://www.kvapem.cz/kosikhttp/getBasketContent', {  //načtení košíku ze serveru
        method:'get',
        onSuccess: function(q) {
            var response = q.responseText;
            domreg01.basket.content = response;
            domreg01.basket.contentTmp = null;
            domreg01.basket.redraw();
        }
    });
}

/**
 * Překreslení košíku
 */
domreg01.basket.redraw = function() {
    if (domreg01.basket.content == null) {
        domreg01.basket.get();
        return;
    }
    
    $('domainNameBasket').innerHTML = '';
    //pokud je košík prázdný, tak server vrací 0
    if (domreg01.basket.content == '0') {
        $('domainNameBasket').innerHTML += '<span class="empty_basket">Košík je prázdný.<br/><br/></span>';
        domreg01.basket.isEmpty = true;
        $('price').innerHTML = '';
        $('objednatButton').hide();
        $('domainNameBasket').hide();
        $('info_text').show();
        $('price').hide();
    }
    else {
        domreg01.basket.isEmpty = false;
        response = domreg01.basket.content.evalJSON();
        if (domreg01.basket.contentTmp != null) {
            response.domain[response.domain.length] = domreg01.basket.contentTmp;    
        }
        response.domain = response.domain.sort();
        a = '<table class="form">';
        for(i = 0; i < response.domain.length; i++) {
            a += '<tr>';
            a += '<td><span class="basket-domena">www.<strong>' +
               response.domain[i].substr(0,response.domain[i].length-3) +
              '</strong>.cz</span></td>';
            if (domreg01.basket.contentTmp == response.domain[i]) {
                a += '<td><img src="./www/images/design/loading.gif" /></td>';
            } else {
                a += '<td><a onclick="domreg01.basket.remove(\'' + 
                response.domain[i] + '\')"><img class="krizek" ' +
                        'src="./www/images/design/krizek.gif" /></a></td>';
            }
            a += '</tr>';
        }
        a += '</table>';
        $('domainNameBasket').innerHTML = a;
        $('price').innerHTML = '<strong>' + response.cena + ',-</strong> Kč bez DPH';
        $('objednatButton').show();
        $('domainNameBasket').show();
        $('info_text').hide();
        $('price').setStyle({display: 'block'});
    }
    $('domainName').focus();
}

/**
 * Odstranění domény z košíku
 * @param string domain Doménové jméno, které se má odebrat z košíku
 */
domreg01.basket.remove = function(domain) {
    new Ajax.Request('http://www.kvapem.cz/kosik/removeDomainFromBasket/domain/' + domain, {
        method:'get',
        onSuccess: function() {
            domreg01.basket.get();
        }
    });
}

